summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--api/index.php2
-rw-r--r--backend.php11
-rwxr-xr-xclasses/api.php23
-rwxr-xr-xclasses/article.php118
-rw-r--r--classes/auth/base.php15
-rw-r--r--classes/config.php342
-rw-r--r--classes/counters.php60
-rwxr-xr-xclasses/db.php33
-rw-r--r--classes/db/migrations.php198
-rw-r--r--classes/dbupdater.php82
-rw-r--r--classes/debug.php24
-rw-r--r--classes/digest.php20
-rw-r--r--classes/diskcache.php2
-rw-r--r--classes/errors.php5
-rw-r--r--classes/feeditem.php2
-rwxr-xr-xclasses/feeditem/atom.php4
-rwxr-xr-xclasses/feeditem/common.php2
-rwxr-xr-xclasses/feeditem/rss.php4
-rwxr-xr-xclasses/feeds.php393
-rwxr-xr-xclasses/handler/public.php184
-rwxr-xr-xclasses/logger.php10
-rwxr-xr-xclasses/logger/sql.php31
-rw-r--r--classes/mailer.php22
-rw-r--r--classes/opml.php13
-rw-r--r--classes/plugin.php12
-rwxr-xr-xclasses/pluginhost.php75
-rwxr-xr-xclasses/pref/feeds.php253
-rwxr-xr-xclasses/pref/filters.php4
-rw-r--r--classes/pref/labels.php12
-rw-r--r--classes/pref/prefs.php920
-rw-r--r--classes/pref/system.php74
-rw-r--r--classes/pref/users.php151
-rw-r--r--classes/prefs.php6
-rwxr-xr-xclasses/rpc.php70
-rwxr-xr-xclasses/rssutils.php557
-rw-r--r--classes/sanitizer.php10
-rw-r--r--classes/urlhelper.php102
-rw-r--r--classes/userhelper.php250
-rw-r--r--composer.json8
-rw-r--r--composer.lock604
-rw-r--r--include/autoload.php21
-rwxr-xr-xinclude/controls.php6
-rw-r--r--include/controls_compat.php302
-rw-r--r--include/errorhandler.php2
-rw-r--r--include/functions.php161
-rwxr-xr-xinclude/login_form.php2
-rwxr-xr-xinclude/sanity_check.php215
-rw-r--r--include/sessions.php66
-rw-r--r--index.php13
-rw-r--r--js/App.js81
-rw-r--r--js/Article.js17
-rw-r--r--js/CommonDialogs.js55
-rw-r--r--js/CommonFilters.js20
-rw-r--r--js/Feeds.js36
-rwxr-xr-xjs/Headlines.js18
-rw-r--r--js/PrefFeedTree.js4
-rw-r--r--js/PrefHelpers.js589
-rw-r--r--js/PrefLabelTree.js9
-rw-r--r--js/PrefUsers.js46
-rwxr-xr-xjs/common.js83
-rw-r--r--js/tt-rss.js12
-rw-r--r--lib/iconfont/MaterialIcons-Regular.ijmap1
-rw-r--r--lib/iconfont/MaterialIcons-Regular.woffbin57620 -> 0 bytes
-rw-r--r--lib/iconfont/MaterialIcons-Regular.woff2bin44300 -> 0 bytes
-rw-r--r--lib/iconfont/README.md9
-rw-r--r--lib/iconfont/material-icons.css36
-rw-r--r--lib/phpqrcode/CHANGELOG38
-rw-r--r--lib/phpqrcode/INSTALL67
-rw-r--r--lib/phpqrcode/LICENSE165
-rw-r--r--lib/phpqrcode/README45
-rw-r--r--lib/phpqrcode/VERSION2
-rw-r--r--lib/phpqrcode/bindings/tcpdf/qrcode.php2875
-rw-r--r--lib/phpqrcode/cache/frame_1.dat2
-rw-r--r--lib/phpqrcode/cache/frame_1.pngbin126 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_10.datbin204 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_10.pngbin202 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_11.datbin210 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_11.pngbin205 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_12.datbin222 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_12.pngbin216 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_13.datbin223 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_13.pngbin210 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_14.datbin227 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_14.pngbin213 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_15.datbin242 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_15.pngbin219 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_16.dat1
-rw-r--r--lib/phpqrcode/cache/frame_16.pngbin211 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_17.datbin237 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_17.pngbin211 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_18.dat2
-rw-r--r--lib/phpqrcode/cache/frame_18.pngbin228 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_19.dat3
-rw-r--r--lib/phpqrcode/cache/frame_19.pngbin225 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_2.dat1
-rw-r--r--lib/phpqrcode/cache/frame_2.pngbin144 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_20.datbin250 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_20.pngbin225 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_21.dat1
-rw-r--r--lib/phpqrcode/cache/frame_21.pngbin235 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_22.dat3
-rw-r--r--lib/phpqrcode/cache/frame_22.pngbin226 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_23.dat3
-rw-r--r--lib/phpqrcode/cache/frame_23.pngbin220 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_24.dat1
-rw-r--r--lib/phpqrcode/cache/frame_24.pngbin242 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_25.dat3
-rw-r--r--lib/phpqrcode/cache/frame_25.pngbin242 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_26.dat2
-rw-r--r--lib/phpqrcode/cache/frame_26.pngbin244 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_27.datbin284 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_27.pngbin237 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_28.datbin318 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_28.pngbin234 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_29.dat2
-rw-r--r--lib/phpqrcode/cache/frame_29.pngbin232 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_3.dat1
-rw-r--r--lib/phpqrcode/cache/frame_3.pngbin147 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_30.datbin324 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_30.pngbin255 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_31.dat1
-rw-r--r--lib/phpqrcode/cache/frame_31.pngbin260 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_32.dat2
-rw-r--r--lib/phpqrcode/cache/frame_32.pngbin262 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_33.dat14
-rw-r--r--lib/phpqrcode/cache/frame_33.pngbin253 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_34.datbin331 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_34.pngbin256 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_35.datbin342 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_35.pngbin243 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_36.datbin370 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_36.pngbin272 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_37.datbin376 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_37.pngbin279 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_38.dat1
-rw-r--r--lib/phpqrcode/cache/frame_38.pngbin279 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_39.datbin404 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_39.pngbin264 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_4.dat1
-rw-r--r--lib/phpqrcode/cache/frame_4.pngbin149 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_40.dat2
-rw-r--r--lib/phpqrcode/cache/frame_40.pngbin267 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_5.dat1
-rw-r--r--lib/phpqrcode/cache/frame_5.pngbin150 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_6.datbin132 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_6.pngbin151 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_7.datbin196 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_7.pngbin189 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_8.datbin201 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_8.pngbin204 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_9.datbin206 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/frame_9.pngbin199 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_101_0.datbin157 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_105_0.datbin162 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_109_0.dat2
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_113_0.dat2
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_117_0.dat2
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_121_0.dat1
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_125_0.dat2
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_129_0.dat2
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_133_0.dat2
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_137_0.dat1
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_141_0.dat2
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_145_0.dat2
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_149_0.dat3
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_153_0.dat1
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_157_0.dat2
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_161_0.datbin241 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_165_0.dat2
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_169_0.dat2
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_173_0.dat1
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_177_0.dat2
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_21_0.datbin48 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_25_0.datbin57 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_29_0.datbin59 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_33_0.datbin62 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_37_0.datbin65 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_41_0.datbin68 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_45_0.datbin106 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_49_0.dat2
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_53_0.dat2
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_57_0.dat4
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_61_0.datbin119 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_65_0.datbin123 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_69_0.dat1
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_73_0.dat1
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_77_0.dat2
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_81_0.dat2
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_85_0.dat2
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_89_0.dat1
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_93_0.dat3
-rw-r--r--lib/phpqrcode/cache/mask_0/mask_97_0.datbin150 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_101_1.dat2
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_105_1.dat1
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_109_1.dat1
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_113_1.dat1
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_117_1.dat2
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_121_1.dat2
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_125_1.dat2
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_129_1.datbin164 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_133_1.dat1
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_137_1.dat3
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_141_1.dat2
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_145_1.dat1
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_149_1.dat1
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_153_1.dat2
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_157_1.dat2
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_161_1.dat1
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_165_1.dat1
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_169_1.dat1
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_173_1.dat1
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_177_1.dat1
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_21_1.datbin42 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_25_1.datbin48 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_29_1.datbin50 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_33_1.datbin53 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_37_1.datbin56 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_41_1.datbin58 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_45_1.datbin82 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_49_1.datbin84 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_53_1.datbin87 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_57_1.datbin92 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_61_1.dat1
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_65_1.datbin99 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_69_1.datbin102 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_73_1.datbin104 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_77_1.datbin110 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_81_1.datbin114 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_85_1.dat2
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_89_1.dat1
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_93_1.dat2
-rw-r--r--lib/phpqrcode/cache/mask_1/mask_97_1.dat2
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_101_2.dat3
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_105_2.dat1
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_109_2.dat2
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_113_2.dat1
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_117_2.dat2
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_121_2.datbin127 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_125_2.dat1
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_129_2.dat2
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_133_2.dat10
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_137_2.dat2
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_141_2.dat2
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_145_2.dat4
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_149_2.dat1
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_153_2.dat2
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_157_2.dat3
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_161_2.datbin190 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_165_2.dat2
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_169_2.datbin196 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_173_2.dat1
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_177_2.dat2
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_21_2.datbin35 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_25_2.datbin41 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_29_2.datbin45 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_33_2.datbin47 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_37_2.datbin47 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_41_2.dat1
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_45_2.datbin68 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_49_2.datbin70 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_53_2.datbin73 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_57_2.datbin76 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_61_2.datbin78 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_65_2.datbin89 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_69_2.datbin88 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_73_2.datbin94 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_77_2.dat1
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_81_2.dat2
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_85_2.dat2
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_89_2.dat1
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_93_2.datbin103 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_2/mask_97_2.dat2
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_101_3.dat1
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_105_3.dat1
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_109_3.dat1
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_113_3.dat2
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_117_3.dat4
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_121_3.datbin212 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_125_3.dat2
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_129_3.dat8
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_133_3.datbin216 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_137_3.dat2
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_141_3.dat2
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_145_3.dat3
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_149_3.dat1
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_153_3.dat2
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_157_3.datbin248 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_161_3.dat3
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_165_3.dat2
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_169_3.dat1
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_173_3.dat1
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_177_3.datbin312 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_21_3.datbin60 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_25_3.datbin75 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_29_3.datbin75 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_33_3.datbin79 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_37_3.datbin83 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_41_3.datbin85 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_45_3.dat2
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_49_3.datbin127 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_53_3.dat2
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_57_3.datbin126 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_61_3.dat2
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_65_3.dat2
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_69_3.dat2
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_73_3.dat2
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_77_3.dat2
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_81_3.dat2
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_85_3.datbin160 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_89_3.dat2
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_93_3.dat2
-rw-r--r--lib/phpqrcode/cache/mask_3/mask_97_3.datbin175 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_101_4.dat2
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_105_4.dat2
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_109_4.datbin182 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_113_4.dat2
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_117_4.dat2
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_121_4.datbin208 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_125_4.datbin213 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_129_4.datbin220 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_133_4.dat3
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_137_4.datbin248 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_141_4.datbin254 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_145_4.datbin255 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_149_4.dat2
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_153_4.dat2
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_157_4.dat1
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_161_4.dat1
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_165_4.dat3
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_169_4.datbin297 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_173_4.dat2
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_177_4.dat2
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_21_4.datbin57 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_25_4.datbin76 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_29_4.datbin78 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_33_4.datbin89 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_37_4.datbin86 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_41_4.datbin89 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_45_4.datbin120 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_49_4.datbin124 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_53_4.datbin128 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_57_4.datbin130 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_61_4.datbin132 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_65_4.dat2
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_69_4.dat1
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_73_4.dat3
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_77_4.dat2
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_81_4.dat3
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_85_4.datbin154 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_89_4.dat2
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_93_4.dat2
-rw-r--r--lib/phpqrcode/cache/mask_4/mask_97_4.datbin176 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_101_5.dat2
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_105_5.datbin224 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_109_5.datbin211 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_113_5.dat9
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_117_5.dat1
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_121_5.datbin256 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_125_5.dat2
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_129_5.datbin259 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_133_5.dat2
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_137_5.dat3
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_141_5.datbin297 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_145_5.datbin300 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_149_5.dat3
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_153_5.dat2
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_157_5.dat1
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_161_5.dat2
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_165_5.datbin332 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_169_5.dat1
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_173_5.dat4
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_177_5.dat11
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_21_5.datbin74 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_25_5.dat2
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_29_5.dat2
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_33_5.datbin106 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_37_5.datbin103 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_41_5.dat2
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_45_5.dat1
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_49_5.datbin146 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_53_5.dat1
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_57_5.dat2
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_61_5.dat1
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_65_5.datbin163 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_69_5.datbin167 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_73_5.datbin184 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_77_5.dat1
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_81_5.dat3
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_85_5.datbin186 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_89_5.dat2
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_93_5.dat2
-rw-r--r--lib/phpqrcode/cache/mask_5/mask_97_5.dat1
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_101_6.dat2
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_105_6.dat3
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_109_6.dat1
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_113_6.dat3
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_117_6.dat1
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_121_6.datbin309 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_125_6.dat1
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_129_6.datbin310 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_133_6.datbin296 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_137_6.dat2
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_141_6.dat10
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_145_6.datbin357 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_149_6.dat2
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_153_6.datbin367 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_157_6.dat1
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_161_6.datbin399 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_165_6.datbin400 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_169_6.dat1
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_173_6.dat1
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_177_6.dat14
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_21_6.dat1
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_25_6.dat1
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_29_6.dat3
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_33_6.datbin124 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_37_6.dat1
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_41_6.datbin132 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_45_6.datbin189 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_49_6.dat2
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_53_6.datbin195 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_57_6.dat2
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_61_6.dat2
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_65_6.dat1
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_69_6.dat1
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_73_6.datbin230 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_77_6.dat1
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_81_6.dat3
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_85_6.datbin229 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_89_6.datbin263 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_93_6.datbin276 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_6/mask_97_6.dat2
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_101_7.dat1
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_105_7.dat2
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_109_7.dat2
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_113_7.dat11
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_117_7.dat2
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_121_7.dat2
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_125_7.datbin288 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_129_7.datbin282 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_133_7.datbin281 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_137_7.dat5
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_141_7.dat1
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_145_7.dat2
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_149_7.dat1
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_153_7.dat2
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_157_7.dat2
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_161_7.dat1
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_165_7.dat1
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_169_7.datbin383 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_173_7.dat1
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_177_7.datbin407 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_21_7.dat4
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_25_7.dat1
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_29_7.dat2
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_33_7.dat1
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_37_7.datbin122 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_41_7.dat1
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_45_7.datbin173 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_49_7.dat1
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_53_7.dat1
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_57_7.dat1
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_61_7.dat2
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_65_7.dat1
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_69_7.datbin202 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_73_7.datbin221 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_77_7.datbin226 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_81_7.dat1
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_85_7.datbin213 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_89_7.datbin244 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_93_7.datbin248 -> 0 bytes
-rw-r--r--lib/phpqrcode/cache/mask_7/mask_97_7.dat2
-rw-r--r--lib/phpqrcode/index.php94
-rw-r--r--lib/phpqrcode/phpqrcode.php3312
-rw-r--r--lib/phpqrcode/qrbitstream.php180
-rw-r--r--lib/phpqrcode/qrconfig.php17
-rw-r--r--lib/phpqrcode/qrconst.php54
-rw-r--r--lib/phpqrcode/qrencode.php502
-rw-r--r--lib/phpqrcode/qrimage.php95
-rw-r--r--lib/phpqrcode/qrinput.php729
-rw-r--r--lib/phpqrcode/qrlib.php43
-rw-r--r--lib/phpqrcode/qrmask.php328
-rw-r--r--lib/phpqrcode/qrrscode.php210
-rw-r--r--lib/phpqrcode/qrspec.php592
-rw-r--r--lib/phpqrcode/qrsplit.php311
-rw-r--r--lib/phpqrcode/qrtools.php172
-rw-r--r--lib/phpqrcode/tools/merge.bat2
-rw-r--r--lib/phpqrcode/tools/merge.php70
-rw-r--r--lib/phpqrcode/tools/merge.sh2
-rw-r--r--lib/phpqrcode/tools/merged_config.php17
-rw-r--r--lib/phpqrcode/tools/merged_header.php36
-rw-r--r--lib/xsl_mop-up.js86
-rwxr-xr-xlocale/ar_SA/LC_MESSAGES/messages.mobin33971 -> 37354 bytes
-rw-r--r--locale/bg_BG/LC_MESSAGES/messages.mobin39363 -> 43186 bytes
-rw-r--r--locale/ca_CA/LC_MESSAGES/messages.mobin39124 -> 42815 bytes
-rw-r--r--locale/da_DK/LC_MESSAGES/messages.mobin16782 -> 19079 bytes
-rw-r--r--locale/de_DE/LC_MESSAGES/messages.mobin44791 -> 48741 bytes
-rw-r--r--locale/el_GR/LC_MESSAGES/messages.mobin22839 -> 26369 bytes
-rw-r--r--locale/eo/LC_MESSAGES/messages.mobin4210 -> 4302 bytes
-rw-r--r--locale/es_ES/LC_MESSAGES/messages.mobin42169 -> 45837 bytes
-rw-r--r--locale/es_LA/LC_MESSAGES/messages.mobin18024 -> 20514 bytes
-rw-r--r--locale/fa/LC_MESSAGES/messages.mobin53789 -> 58662 bytes
-rw-r--r--locale/fi_FI/LC_MESSAGES/messages.mobin30172 -> 32936 bytes
-rw-r--r--locale/fr_FR/LC_MESSAGES/messages.mobin48094 -> 52814 bytes
-rw-r--r--locale/hu_HU/LC_MESSAGES/messages.mobin28811 -> 31847 bytes
-rw-r--r--locale/it_IT/LC_MESSAGES/messages.mobin51894 -> 51901 bytes
-rw-r--r--locale/ja_JP/LC_MESSAGES/messages.mobin38835 -> 42787 bytes
-rw-r--r--locale/ko_KR/LC_MESSAGES/messages.mobin22308 -> 24883 bytes
-rw-r--r--locale/lv_LV/LC_MESSAGES/messages.mobin28535 -> 30705 bytes
-rw-r--r--locale/nb_NO/LC_MESSAGES/messages.mobin14753 -> 16463 bytes
-rw-r--r--locale/nl_NL/LC_MESSAGES/messages.mobin43506 -> 47330 bytes
-rw-r--r--locale/pl_PL/LC_MESSAGES/messages.mobin44937 -> 48838 bytes
-rwxr-xr-xlocale/pt_BR/LC_MESSAGES/messages.mobin40596 -> 44093 bytes
-rw-r--r--locale/pt_PT/LC_MESSAGES/messages.mobin25728 -> 28335 bytes
-rw-r--r--locale/ru_RU/LC_MESSAGES/messages.mobin59792 -> 59789 bytes
-rw-r--r--locale/sv_SE/LC_MESSAGES/messages.mobin33274 -> 36675 bytes
-rw-r--r--locale/tr_TR/LC_MESSAGES/messages.mobin27344 -> 30434 bytes
-rw-r--r--locale/uk_UA/LC_MESSAGES/messages.mobin55727 -> 60705 bytes
-rw-r--r--locale/zh_TW/LC_MESSAGES/messages.mobin36984 -> 40335 bytes
-rw-r--r--messages.pot2
-rw-r--r--phpstan.neon11
-rw-r--r--plugins/af_comics/filters/af_comics_cad.php9
-rw-r--r--plugins/af_comics/filters/af_comics_comicclass.php2
-rwxr-xr-xplugins/af_comics/filters/af_comics_comicpress.php2
-rw-r--r--plugins/af_comics/filters/af_comics_darklegacy.php8
-rw-r--r--plugins/af_comics/filters/af_comics_dilbert.php8
-rw-r--r--plugins/af_comics/filters/af_comics_gocomics.php2
-rw-r--r--plugins/af_comics/filters/af_comics_gocomics_farside.php2
-rw-r--r--plugins/af_comics/filters/af_comics_pa.php4
-rw-r--r--plugins/af_comics/filters/af_comics_pvp.php2
-rw-r--r--plugins/af_comics/filters/af_comics_tfd.php4
-rw-r--r--plugins/af_comics/filters/af_comics_twp.php4
-rw-r--r--plugins/af_comics/filters/af_comics_whomp.php8
-rwxr-xr-xplugins/af_comics/init.php2
-rw-r--r--plugins/af_fsckportal/init.php44
-rw-r--r--plugins/af_proxy_http/init.php256
-rw-r--r--plugins/af_psql_trgm/init.php2
-rw-r--r--plugins/af_readability/composer.json5
-rw-r--r--plugins/af_readability/composer.lock126
-rwxr-xr-xplugins/af_readability/init.php14
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/.coveralls.yml3
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/.gitattributes1
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/.gitignore4
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/.styleci.yml13
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/.travis.yml48
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/AUTHORS.md13
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/CHANGELOG.md145
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/CONTRIBUTING.md30
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/LICENSE201
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/Makefile30
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/README.md200
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/composer.json37
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/docker-compose.yml196
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/docker/php/Dockerfile8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/phpunit.xml16
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/src/Configuration.php (renamed from plugins/af_readability/vendor/andreskrey/Readability/Configuration.php)0
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMAttr.php (renamed from plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMAttr.php)0
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMCdataSection.php (renamed from plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMCdataSection.php)0
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMCharacterData.php (renamed from plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMCharacterData.php)0
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMComment.php (renamed from plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMComment.php)0
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMDocument.php (renamed from plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMDocument.php)0
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMDocumentFragment.php (renamed from plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMDocumentFragment.php)0
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMDocumentType.php (renamed from plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMDocumentType.php)0
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMElement.php (renamed from plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMElement.php)0
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMEntity.php (renamed from plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMEntity.php)0
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMEntityReference.php (renamed from plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMEntityReference.php)0
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMNode.php (renamed from plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMNode.php)0
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMNodeList.php (renamed from plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMNodeList.php)0
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMNotation.php (renamed from plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMNotation.php)0
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMProcessingInstruction.php (renamed from plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMProcessingInstruction.php)0
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMText.php (renamed from plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMText.php)0
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/NodeTrait.php (renamed from plugins/af_readability/vendor/andreskrey/Readability/Nodes/NodeTrait.php)0
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/NodeUtility.php (renamed from plugins/af_readability/vendor/andreskrey/Readability/Nodes/NodeUtility.php)0
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/src/ParseException.php (renamed from plugins/af_readability/vendor/andreskrey/Readability/ParseException.php)0
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/src/Readability.php (renamed from plugins/af_readability/vendor/andreskrey/Readability/Readability.php)0
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/ConfigurationTest.php92
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/ReadabilityTest.php148
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/TestPage.php61
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/001/config.json3
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/001/expected-images.json3
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/001/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/001/expected.html128
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/001/source.html233
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/002/expected-images.json1
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/002/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/002/expected.html415
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/002/source.html1131
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/003-metadata-preferred/expected-images.json1
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/003-metadata-preferred/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/003-metadata-preferred/expected.html18
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/003-metadata-preferred/source.html45
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/004-metadata-space-separated-properties/expected-images.json3
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/004-metadata-space-separated-properties/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/004-metadata-space-separated-properties/expected.html18
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/004-metadata-space-separated-properties/source.html36
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/aclu/config.json3
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/aclu/expected-images.json3
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/aclu/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/aclu/expected.html124
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/aclu/source.html1264
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ars-1/config.json3
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ars-1/expected-images.json3
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ars-1/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ars-1/expected.html44
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ars-1/source.html765
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url-base-element-relative/expected-images.json6
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url-base-element-relative/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url-base-element-relative/expected.html33
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url-base-element-relative/source.html44
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url-base-element/expected-images.json5
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url-base-element/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url-base-element/expected.html33
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url-base-element/source.html44
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url/expected-images.json6
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url/expected.html33
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url/source.html43
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/basic-tags-cleaning/expected-images.json1
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/basic-tags-cleaning/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/basic-tags-cleaning/expected.html18
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/basic-tags-cleaning/source.html36
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/bbc-1/expected-images.json7
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/bbc-1/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/bbc-1/expected.html17
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/bbc-1/source.html2557
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/blogger/expected-images.json6
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/blogger/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/blogger/expected.html57
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/blogger/source.html2064
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/breitbart/config.json3
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/breitbart/expected-images.json4
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/breitbart/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/breitbart/expected.html41
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/breitbart/source.html19848
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/bug-1255978/expected-images.json9
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/bug-1255978/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/bug-1255978/expected.html136
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/bug-1255978/source.html40907
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/buzzfeed-1/expected-images.json5
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/buzzfeed-1/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/buzzfeed-1/expected.html42
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/buzzfeed-1/source.html5294
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/challenges/expected-images.json3
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/challenges/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/challenges/expected.html35
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/challenges/source.html1744
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/clean-links/expected-images.json3
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/clean-links/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/clean-links/expected.html1386
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/clean-links/source.html1863
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnet-svg-classes/expected-images.json5
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnet-svg-classes/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnet-svg-classes/expected.html23
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnet-svg-classes/source.html662
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnet/expected-images.json4
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnet/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnet/expected.html43
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnet/source.html19356
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnn/expected-images.json3
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnn/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnn/expected.html51
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnn/source.html4190
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/comment-inside-script-parsing/expected-images.json1
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/comment-inside-script-parsing/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/comment-inside-script-parsing/expected.html18
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/comment-inside-script-parsing/source.html34
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/daringfireball-1/expected-images.json3
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/daringfireball-1/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/daringfireball-1/expected.html38
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/daringfireball-1/source.html151
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/different-sources-for-images/expected-images.json7
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/different-sources-for-images/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/different-sources-for-images/expected.html23
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/different-sources-for-images/source.html33
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ehow-1/config.json3
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ehow-1/expected-images.json14
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ehow-1/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ehow-1/expected.html94
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ehow-1/source.html934
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ehow-2/expected-images.json13
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ehow-2/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ehow-2/expected.html124
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ehow-2/source.html1621
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/embedded-videos/expected-images.json1
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/embedded-videos/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/embedded-videos/expected.html25
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/embedded-videos/source.html43
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/engadget/expected-images.json14
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/engadget/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/engadget/expected.html479
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/engadget/source.html3513
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/fortressofsolitude/config.json3
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/fortressofsolitude/expected-images.json4
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/fortressofsolitude/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/fortressofsolitude/expected.html1
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/fortressofsolitude/source.html141
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/gmw/expected-images.json6
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/gmw/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/gmw/expected.html58
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/gmw/source.html2103
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/heise/expected-images.json4
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/heise/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/heise/expected.html20
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/heise/source.html887
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/herald-sun-1/expected-images.json3
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/herald-sun-1/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/herald-sun-1/expected.html26
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/herald-sun-1/source.html1193
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/hidden-nodes/expected-images.json1
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/hidden-nodes/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/hidden-nodes/expected.html14
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/hidden-nodes/source.html29
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/hukumusume/expected-images.json7
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/hukumusume/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/hukumusume/expected.html39
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/hukumusume/source.html356
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/iab-1/expected-images.json4
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/iab-1/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/iab-1/expected.html30
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/iab-1/source.html1103
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ietf-1/expected-images.json1
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ietf-1/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ietf-1/expected.html1110
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ietf-1/source.html1269
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/infobae/expected-images.json7
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/infobae/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/infobae/expected.html1
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/infobae/source.html35
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/keep-images/expected-images.json17
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/keep-images/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/keep-images/expected.html381
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/keep-images/source.html833
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/la-nacion/expected-images.json4
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/la-nacion/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/la-nacion/expected.html85
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/la-nacion/source.html700
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lemonde-1/expected-images.json3
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lemonde-1/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lemonde-1/expected.html46
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lemonde-1/source.html1117
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lemonde-2/expected-images.json3
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lemonde-2/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lemonde-2/expected.html13
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lemonde-2/source.html1353
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/liberation-1/expected-images.json3
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/liberation-1/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/liberation-1/expected.html13
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/liberation-1/source.html1803
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lifehacker-post-comment-load/expected-images.json11
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lifehacker-post-comment-load/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lifehacker-post-comment-load/expected.html484
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lifehacker-post-comment-load/source.html1305
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lifehacker-working/expected-images.json11
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lifehacker-working/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lifehacker-working/expected.html484
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lifehacker-working/source.html1241
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/links-in-tables/expected-images.json5
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/links-in-tables/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/links-in-tables/expected.html174
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/links-in-tables/source.html3165
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lwn-1/config.json3
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lwn-1/expected-images.json6
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lwn-1/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lwn-1/expected.html373
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lwn-1/source.html820
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/marketwatch/config.json4
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/marketwatch/expected-images.json3
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/marketwatch/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/marketwatch/expected.html47
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/marketwatch/source.html1453
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-1/expected-images.json10
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-1/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-1/expected.html286
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-1/source.html705
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-2/expected-images.json3
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-2/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-2/expected.html1
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-2/source.html14
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-3/expected-images.json3
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-3/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-3/expected.html226
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-3/source.html4815
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/missing-paragraphs/expected-images.json1
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/missing-paragraphs/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/missing-paragraphs/expected.html50
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/missing-paragraphs/source.html64
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/mozilla-1/expected-images.json9
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/mozilla-1/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/mozilla-1/expected.html67
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/mozilla-1/source.html1348
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/mozilla-2/expected-images.json11
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/mozilla-2/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/mozilla-2/expected.html77
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/mozilla-2/source.html408
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/msn/expected-images.json4
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/msn/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/msn/expected.html18
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/msn/source.html13010
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/nytimes-1/expected-images.json4
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/nytimes-1/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/nytimes-1/expected.html37
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/nytimes-1/source.html5530
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/nytimes-2/expected-images.json4
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/nytimes-2/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/nytimes-2/expected.html41
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/nytimes-2/source.html5236
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/pixnet/expected-images.json48
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/pixnet/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/pixnet/expected.html280
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/pixnet/source.html4372
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-extra-brs/expected-images.json1
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-extra-brs/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-extra-brs/expected.html16
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-extra-brs/source.html32
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-extra-paragraphs/expected-images.json1
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-extra-paragraphs/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-extra-paragraphs/expected.html23
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-extra-paragraphs/source.html41
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-script-tags/expected-images.json1
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-script-tags/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-script-tags/expected.html19
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-script-tags/source.html43
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/reordering-paragraphs/expected-images.json1
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/reordering-paragraphs/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/reordering-paragraphs/expected.html26
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/reordering-paragraphs/source.html34
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/replace-brs/expected-images.json1
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/replace-brs/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/replace-brs/expected.html14
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/replace-brs/source.html28
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/replace-font-tags/expected-images.json1
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/replace-font-tags/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/replace-font-tags/expected.html17
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/replace-font-tags/source.html28
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-1/expected-images.json1
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-1/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-1/expected.html11
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-1/source.html26
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-2/expected-images.json1
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-2/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-2/expected.html11
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-2/source.html26
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-3/expected-images.json1
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-3/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-3/expected.html11
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-3/source.html26
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-4/expected-images.json1
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-4/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-4/expected.html11
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-4/source.html26
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/salon-1/expected-images.json3
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/salon-1/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/salon-1/expected.html206
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/salon-1/source.html2513
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/simplyfound-1/expected-images.json3
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/simplyfound-1/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/simplyfound-1/expected.html18
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/simplyfound-1/source.html426
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/social-buttons/expected-images.json1
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/social-buttons/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/social-buttons/expected.html33
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/social-buttons/source.html54
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/style-tags-removal/expected-images.json1
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/style-tags-removal/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/style-tags-removal/expected.html18
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/style-tags-removal/source.html42
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/svg-parsing/expected-images.json1
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/svg-parsing/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/svg-parsing/expected.html32
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/svg-parsing/source.html44
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/table-style-attributes/expected-images.json3
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/table-style-attributes/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/table-style-attributes/expected.html102
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/table-style-attributes/source.html167
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/telegraph/expected-images.json3
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/telegraph/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/telegraph/expected.html38
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/telegraph/source.html1821
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/title-and-h1-discrepancy/expected-images.json1
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/title-and-h1-discrepancy/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/title-and-h1-discrepancy/expected.html20
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/title-and-h1-discrepancy/source.html30
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/tmz-1/expected-images.json6
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/tmz-1/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/tmz-1/expected.html34
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/tmz-1/source.html1528
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/tumblr/expected-images.json3
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/tumblr/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/tumblr/expected.html11
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/tumblr/source.html793
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/uses-getfirstelementchild-function/expected-images.json3
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/uses-getfirstelementchild-function/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/uses-getfirstelementchild-function/expected.html115
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/uses-getfirstelementchild-function/source.html421
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wapo-1/expected-images.json4
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wapo-1/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wapo-1/expected.html144
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wapo-1/source.html1560
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wapo-2/expected-images.json5
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wapo-2/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wapo-2/expected.html101
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wapo-2/source.html1038
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/webmd-1/config.json3
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/webmd-1/expected-images.json3
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/webmd-1/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/webmd-1/expected.html48
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/webmd-1/source.html2411
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/webmd-2/expected-images.json3
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/webmd-2/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/webmd-2/expected.html23
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/webmd-2/source.html1299
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wikia/expected-images.json6
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wikia/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wikia/expected.html26
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wikia/source.html19998
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wikipedia/expected-images.json9
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wikipedia/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wikipedia/expected.html427
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wikipedia/source.html1652
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wordpress/expected-images.json6
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wordpress/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wordpress/expected.html29
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wordpress/source.html2228
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-1/expected-images.json4
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-1/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-1/expected.html45
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-1/source.html14670
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-2/expected-images.json3
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-2/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-2/expected.html34
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-2/source.html20539
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-3/expected-images.json4
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-3/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-3/expected.html44
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-3/source.html14949
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-4/expected-images.json3
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-4/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-4/expected.html9
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-4/source.html1234
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/youth/expected-images.json5
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/youth/expected-metadata.json8
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/youth/expected.html36
-rw-r--r--plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/youth/source.html10982
-rw-r--r--plugins/af_readability/vendor/autoload.php7
-rw-r--r--plugins/af_readability/vendor/composer/ClassLoader.php479
-rw-r--r--plugins/af_readability/vendor/composer/InstalledVersions.php301
-rw-r--r--plugins/af_readability/vendor/composer/LICENSE21
-rw-r--r--plugins/af_readability/vendor/composer/autoload_classmap.php10
-rw-r--r--plugins/af_readability/vendor/composer/autoload_namespaces.php9
-rw-r--r--plugins/af_readability/vendor/composer/autoload_psr4.php11
-rw-r--r--plugins/af_readability/vendor/composer/autoload_real.php57
-rw-r--r--plugins/af_readability/vendor/composer/autoload_static.php44
-rw-r--r--plugins/af_readability/vendor/composer/installed.json119
-rw-r--r--plugins/af_readability/vendor/composer/installed.php42
-rw-r--r--plugins/af_readability/vendor/composer/platform_check.php26
-rw-r--r--plugins/af_readability/vendor/psr/log/LICENSE19
-rw-r--r--plugins/af_readability/vendor/psr/log/Psr/Log/AbstractLogger.php (renamed from vendor/Psr/Log/AbstractLogger.php)0
-rw-r--r--plugins/af_readability/vendor/psr/log/Psr/Log/InvalidArgumentException.php (renamed from vendor/Psr/Log/InvalidArgumentException.php)0
-rw-r--r--plugins/af_readability/vendor/psr/log/Psr/Log/LogLevel.php (renamed from vendor/Psr/Log/LogLevel.php)0
-rw-r--r--plugins/af_readability/vendor/psr/log/Psr/Log/LoggerAwareInterface.php (renamed from vendor/Psr/Log/LoggerAwareInterface.php)0
-rw-r--r--plugins/af_readability/vendor/psr/log/Psr/Log/LoggerAwareTrait.php (renamed from vendor/Psr/Log/LoggerAwareTrait.php)0
-rw-r--r--plugins/af_readability/vendor/psr/log/Psr/Log/LoggerInterface.php125
-rw-r--r--plugins/af_readability/vendor/psr/log/Psr/Log/LoggerTrait.php142
-rw-r--r--plugins/af_readability/vendor/psr/log/Psr/Log/NullLogger.php30
-rw-r--r--plugins/af_readability/vendor/psr/log/Psr/Log/Test/DummyTest.php18
-rw-r--r--plugins/af_readability/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php138
-rw-r--r--plugins/af_readability/vendor/psr/log/Psr/Log/Test/TestLogger.php147
-rw-r--r--plugins/af_readability/vendor/psr/log/README.md58
-rw-r--r--plugins/af_readability/vendor/psr/log/composer.json26
-rwxr-xr-xplugins/af_redditimgur/init.php79
-rwxr-xr-xplugins/af_unburn/init.php83
-rw-r--r--plugins/af_youtube_embed/init.php2
-rw-r--r--plugins/af_zz_noautoplay/init.js41
-rw-r--r--plugins/af_zz_noautoplay/init.php23
-rw-r--r--plugins/af_zz_vidmute/init.php2
-rw-r--r--plugins/auth_internal/init.php322
-rw-r--r--plugins/auth_remote/init.php4
-rwxr-xr-xplugins/auto_assign_labels/init.php2
-rw-r--r--plugins/bookmarklets/init.php14
-rwxr-xr-xplugins/cache_starred_images/init.php2
-rw-r--r--plugins/close_button/init.php33
-rw-r--r--plugins/hotkeys_force_top/init.php2
-rw-r--r--plugins/hotkeys_noscroll/init.php2
-rw-r--r--plugins/hotkeys_swap_jk/init.php2
-rw-r--r--plugins/mail/init.php235
-rw-r--r--plugins/mail/mail.js51
-rw-r--r--plugins/mailto/init.js39
-rw-r--r--plugins/mailto/init.php95
-rw-r--r--plugins/no_iframes/init.php2
-rw-r--r--plugins/no_title_counters/init.js9
-rw-r--r--plugins/no_title_counters/init.php24
-rw-r--r--plugins/no_url_hashes/init.js9
-rw-r--r--plugins/no_url_hashes/init.php24
-rw-r--r--plugins/note/init.php2
-rw-r--r--plugins/nsfw/init.js14
-rw-r--r--plugins/nsfw/init.php50
-rw-r--r--plugins/nsfw/nsfw.pngbin0 -> 119 bytes
-rw-r--r--plugins/scored_oldest_first/init.php35
-rw-r--r--plugins/share/init.php7
-rw-r--r--plugins/shorten_expanded/init.php2
-rw-r--r--plugins/toggle_sidebar/init.php2
-rw-r--r--plugins/vf_shared/init.php69
-rw-r--r--prefs.php18
-rw-r--r--public.php3
-rw-r--r--schema/ttrss_schema_mysql.sql418
-rw-r--r--schema/ttrss_schema_pgsql.sql396
-rw-r--r--sql/mysql/migrations/10.sql (renamed from schema/versions/mysql/10.sql)0
-rw-r--r--sql/mysql/migrations/100.sql (renamed from schema/versions/mysql/100.sql)0
-rw-r--r--sql/mysql/migrations/101.sql (renamed from schema/versions/mysql/101.sql)0
-rw-r--r--sql/mysql/migrations/102.sql (renamed from schema/versions/mysql/102.sql)0
-rw-r--r--sql/mysql/migrations/103.sql (renamed from schema/versions/mysql/103.sql)0
-rw-r--r--sql/mysql/migrations/104.sql (renamed from schema/versions/mysql/104.sql)0
-rw-r--r--sql/mysql/migrations/105.sql (renamed from schema/versions/mysql/105.sql)0
-rw-r--r--sql/mysql/migrations/106.sql (renamed from schema/versions/mysql/106.sql)0
-rw-r--r--sql/mysql/migrations/107.sql (renamed from schema/versions/mysql/107.sql)0
-rw-r--r--sql/mysql/migrations/108.sql (renamed from schema/versions/mysql/108.sql)0
-rw-r--r--sql/mysql/migrations/109.sql (renamed from schema/versions/mysql/109.sql)0
-rw-r--r--sql/mysql/migrations/11.sql (renamed from schema/versions/mysql/11.sql)0
-rw-r--r--sql/mysql/migrations/110.sql (renamed from schema/versions/mysql/110.sql)0
-rw-r--r--sql/mysql/migrations/111.sql (renamed from schema/versions/mysql/111.sql)0
-rw-r--r--sql/mysql/migrations/112.sql (renamed from schema/versions/mysql/112.sql)0
-rw-r--r--sql/mysql/migrations/113.sql (renamed from schema/versions/mysql/113.sql)0
-rw-r--r--sql/mysql/migrations/114.sql (renamed from schema/versions/mysql/114.sql)0
-rw-r--r--sql/mysql/migrations/115.sql (renamed from schema/versions/mysql/115.sql)0
-rw-r--r--sql/mysql/migrations/116.sql (renamed from schema/versions/mysql/116.sql)0
-rw-r--r--sql/mysql/migrations/117.sql (renamed from schema/versions/mysql/117.sql)0
-rw-r--r--sql/mysql/migrations/118.sql (renamed from schema/versions/mysql/118.sql)0
-rw-r--r--sql/mysql/migrations/119.sql (renamed from schema/versions/mysql/119.sql)0
-rw-r--r--sql/mysql/migrations/12.sql (renamed from schema/versions/mysql/12.sql)0
-rw-r--r--sql/mysql/migrations/120.sql (renamed from schema/versions/mysql/120.sql)0
-rw-r--r--sql/mysql/migrations/121.sql (renamed from schema/versions/mysql/121.sql)0
-rw-r--r--sql/mysql/migrations/122.sql (renamed from schema/versions/mysql/122.sql)0
-rw-r--r--sql/mysql/migrations/123.sql (renamed from schema/versions/mysql/123.sql)0
-rw-r--r--sql/mysql/migrations/124.sql (renamed from schema/versions/mysql/124.sql)0
-rw-r--r--sql/mysql/migrations/125.sql (renamed from schema/versions/mysql/125.sql)0
-rw-r--r--sql/mysql/migrations/126.sql (renamed from schema/versions/mysql/126.sql)0
-rw-r--r--sql/mysql/migrations/127.sql (renamed from schema/versions/mysql/127.sql)0
-rw-r--r--sql/mysql/migrations/128.sql (renamed from schema/versions/mysql/128.sql)0
-rw-r--r--sql/mysql/migrations/129.sql (renamed from schema/versions/mysql/129.sql)0
-rw-r--r--sql/mysql/migrations/13.sql (renamed from schema/versions/mysql/13.sql)0
-rw-r--r--sql/mysql/migrations/130.sql (renamed from schema/versions/mysql/130.sql)0
-rw-r--r--sql/mysql/migrations/131.sql (renamed from schema/versions/mysql/131.sql)0
-rw-r--r--sql/mysql/migrations/132.sql (renamed from schema/versions/mysql/132.sql)0
-rw-r--r--sql/mysql/migrations/133.sql (renamed from schema/versions/mysql/133.sql)0
-rw-r--r--sql/mysql/migrations/134.sql (renamed from schema/versions/mysql/134.sql)0
-rw-r--r--sql/mysql/migrations/135.sql (renamed from schema/versions/mysql/135.sql)0
-rw-r--r--sql/mysql/migrations/136.sql (renamed from schema/versions/mysql/136.sql)0
-rw-r--r--sql/mysql/migrations/137.sql (renamed from schema/versions/mysql/137.sql)0
-rw-r--r--sql/mysql/migrations/138.sql (renamed from schema/versions/mysql/138.sql)0
-rw-r--r--sql/mysql/migrations/139.sql (renamed from schema/versions/mysql/139.sql)0
-rw-r--r--sql/mysql/migrations/14.sql (renamed from schema/versions/mysql/14.sql)0
-rw-r--r--sql/mysql/migrations/140.sql (renamed from schema/versions/mysql/140.sql)0
-rw-r--r--sql/mysql/migrations/141.sql (renamed from schema/versions/mysql/141.sql)0
-rw-r--r--sql/mysql/migrations/142.sql4
-rw-r--r--sql/mysql/migrations/143.sql2
-rw-r--r--sql/mysql/migrations/144.sql2
-rw-r--r--sql/mysql/migrations/15.sql (renamed from schema/versions/mysql/15.sql)0
-rw-r--r--sql/mysql/migrations/16.sql (renamed from schema/versions/mysql/16.sql)0
-rw-r--r--sql/mysql/migrations/17.sql (renamed from schema/versions/mysql/17.sql)0
-rw-r--r--sql/mysql/migrations/18.sql (renamed from schema/versions/mysql/18.sql)0
-rw-r--r--sql/mysql/migrations/19.sql (renamed from schema/versions/mysql/19.sql)0
-rw-r--r--sql/mysql/migrations/20.sql (renamed from schema/versions/mysql/20.sql)0
-rw-r--r--sql/mysql/migrations/21.sql (renamed from schema/versions/mysql/21.sql)0
-rw-r--r--sql/mysql/migrations/22.sql (renamed from schema/versions/mysql/22.sql)0
-rw-r--r--sql/mysql/migrations/23.sql (renamed from schema/versions/mysql/23.sql)0
-rw-r--r--sql/mysql/migrations/24.sql (renamed from schema/versions/mysql/24.sql)0
-rw-r--r--sql/mysql/migrations/25.sql (renamed from schema/versions/mysql/25.sql)0
-rw-r--r--sql/mysql/migrations/26.sql (renamed from schema/versions/mysql/26.sql)0
-rw-r--r--sql/mysql/migrations/27.sql (renamed from schema/versions/mysql/27.sql)0
-rw-r--r--sql/mysql/migrations/28.sql (renamed from schema/versions/mysql/28.sql)0
-rw-r--r--sql/mysql/migrations/29.sql (renamed from schema/versions/mysql/29.sql)0
-rw-r--r--sql/mysql/migrations/3.sql (renamed from schema/versions/mysql/3.sql)0
-rw-r--r--sql/mysql/migrations/30.sql (renamed from schema/versions/mysql/30.sql)0
-rw-r--r--sql/mysql/migrations/31.sql (renamed from schema/versions/mysql/31.sql)0
-rw-r--r--sql/mysql/migrations/32.sql (renamed from schema/versions/mysql/32.sql)0
-rw-r--r--sql/mysql/migrations/33.sql (renamed from schema/versions/mysql/33.sql)0
-rw-r--r--sql/mysql/migrations/34.sql (renamed from schema/versions/mysql/34.sql)0
-rw-r--r--sql/mysql/migrations/35.sql (renamed from schema/versions/mysql/35.sql)0
-rw-r--r--sql/mysql/migrations/36.sql (renamed from schema/versions/mysql/36.sql)0
-rw-r--r--sql/mysql/migrations/37.sql (renamed from schema/versions/mysql/37.sql)0
-rw-r--r--sql/mysql/migrations/38.sql (renamed from schema/versions/mysql/38.sql)0
-rw-r--r--sql/mysql/migrations/39.sql (renamed from schema/versions/mysql/39.sql)0
-rw-r--r--sql/mysql/migrations/4.sql (renamed from schema/versions/mysql/4.sql)0
-rw-r--r--sql/mysql/migrations/40.sql (renamed from schema/versions/mysql/40.sql)0
-rw-r--r--sql/mysql/migrations/41.sql (renamed from schema/versions/mysql/41.sql)0
-rw-r--r--sql/mysql/migrations/42.sql (renamed from schema/versions/mysql/42.sql)0
-rw-r--r--sql/mysql/migrations/43.sql (renamed from schema/versions/mysql/43.sql)0
-rw-r--r--sql/mysql/migrations/44.sql (renamed from schema/versions/mysql/44.sql)0
-rw-r--r--sql/mysql/migrations/45.sql (renamed from schema/versions/mysql/45.sql)0
-rw-r--r--sql/mysql/migrations/46.sql (renamed from schema/versions/mysql/46.sql)0
-rw-r--r--sql/mysql/migrations/47.sql (renamed from schema/versions/mysql/47.sql)0
-rw-r--r--sql/mysql/migrations/48.sql (renamed from schema/versions/mysql/48.sql)0
-rw-r--r--sql/mysql/migrations/49.sql (renamed from schema/versions/mysql/49.sql)0
-rw-r--r--sql/mysql/migrations/5.sql (renamed from schema/versions/mysql/5.sql)0
-rw-r--r--sql/mysql/migrations/50.sql (renamed from schema/versions/mysql/50.sql)0
-rw-r--r--sql/mysql/migrations/51.sql (renamed from schema/versions/mysql/51.sql)0
-rw-r--r--sql/mysql/migrations/52.sql (renamed from schema/versions/mysql/52.sql)0
-rw-r--r--sql/mysql/migrations/53.sql (renamed from schema/versions/mysql/53.sql)0
-rw-r--r--sql/mysql/migrations/54.sql (renamed from schema/versions/mysql/54.sql)0
-rw-r--r--sql/mysql/migrations/55.sql (renamed from schema/versions/mysql/55.sql)0
-rw-r--r--sql/mysql/migrations/56.sql (renamed from schema/versions/mysql/56.sql)0
-rw-r--r--sql/mysql/migrations/57.sql (renamed from schema/versions/mysql/57.sql)0
-rw-r--r--sql/mysql/migrations/58.sql (renamed from schema/versions/mysql/58.sql)0
-rw-r--r--sql/mysql/migrations/59.sql (renamed from schema/versions/mysql/59.sql)0
-rw-r--r--sql/mysql/migrations/6.sql (renamed from schema/versions/mysql/6.sql)0
-rw-r--r--sql/mysql/migrations/60.sql (renamed from schema/versions/mysql/60.sql)0
-rw-r--r--sql/mysql/migrations/61.sql (renamed from schema/versions/mysql/61.sql)0
-rw-r--r--sql/mysql/migrations/62.sql (renamed from schema/versions/mysql/62.sql)0
-rw-r--r--sql/mysql/migrations/63.sql (renamed from schema/versions/mysql/63.sql)0
-rw-r--r--sql/mysql/migrations/64.sql (renamed from schema/versions/mysql/64.sql)0
-rw-r--r--sql/mysql/migrations/65.sql (renamed from schema/versions/mysql/65.sql)0
-rw-r--r--sql/mysql/migrations/66.sql (renamed from schema/versions/mysql/66.sql)0
-rw-r--r--sql/mysql/migrations/67.sql (renamed from schema/versions/mysql/67.sql)0
-rw-r--r--sql/mysql/migrations/68.sql (renamed from schema/versions/mysql/68.sql)0
-rw-r--r--sql/mysql/migrations/69.sql (renamed from schema/versions/mysql/69.sql)0
-rw-r--r--sql/mysql/migrations/7.sql (renamed from schema/versions/mysql/7.sql)0
-rw-r--r--sql/mysql/migrations/70.sql (renamed from schema/versions/mysql/70.sql)0
-rw-r--r--sql/mysql/migrations/71.sql (renamed from schema/versions/mysql/71.sql)0
-rw-r--r--sql/mysql/migrations/72.sql (renamed from schema/versions/mysql/72.sql)0
-rw-r--r--sql/mysql/migrations/73.sql (renamed from schema/versions/mysql/73.sql)0
-rw-r--r--sql/mysql/migrations/74.sql (renamed from schema/versions/mysql/74.sql)0
-rw-r--r--sql/mysql/migrations/75.sql (renamed from schema/versions/mysql/75.sql)0
-rw-r--r--sql/mysql/migrations/76.sql (renamed from schema/versions/mysql/76.sql)0
-rw-r--r--sql/mysql/migrations/77.sql (renamed from schema/versions/mysql/77.sql)0
-rw-r--r--sql/mysql/migrations/78.sql (renamed from schema/versions/mysql/78.sql)0
-rw-r--r--sql/mysql/migrations/79.sql (renamed from schema/versions/mysql/79.sql)0
-rw-r--r--sql/mysql/migrations/8.sql (renamed from schema/versions/mysql/8.sql)0
-rw-r--r--sql/mysql/migrations/80.sql (renamed from schema/versions/mysql/80.sql)0
-rw-r--r--sql/mysql/migrations/81.sql (renamed from schema/versions/mysql/81.sql)0
-rw-r--r--sql/mysql/migrations/82.sql (renamed from schema/versions/mysql/82.sql)0
-rw-r--r--sql/mysql/migrations/83.sql (renamed from schema/versions/mysql/83.sql)0
-rw-r--r--sql/mysql/migrations/84.sql (renamed from schema/versions/mysql/84.sql)0
-rw-r--r--sql/mysql/migrations/85.sql (renamed from schema/versions/mysql/85.sql)0
-rw-r--r--sql/mysql/migrations/86.sql (renamed from schema/versions/mysql/86.sql)0
-rw-r--r--sql/mysql/migrations/87.sql (renamed from schema/versions/mysql/87.sql)0
-rw-r--r--sql/mysql/migrations/88.sql (renamed from schema/versions/mysql/88.sql)0
-rw-r--r--sql/mysql/migrations/89.sql (renamed from schema/versions/mysql/89.sql)0
-rw-r--r--sql/mysql/migrations/9.sql (renamed from schema/versions/mysql/9.sql)0
-rw-r--r--sql/mysql/migrations/90.sql (renamed from schema/versions/mysql/90.sql)0
-rw-r--r--sql/mysql/migrations/91.sql (renamed from schema/versions/mysql/91.sql)0
-rw-r--r--sql/mysql/migrations/92.sql (renamed from schema/versions/mysql/92.sql)0
-rw-r--r--sql/mysql/migrations/93.sql (renamed from schema/versions/mysql/93.sql)0
-rw-r--r--sql/mysql/migrations/94.sql (renamed from schema/versions/mysql/94.sql)0
-rw-r--r--sql/mysql/migrations/95.sql (renamed from schema/versions/mysql/95.sql)0
-rw-r--r--sql/mysql/migrations/96.sql (renamed from schema/versions/mysql/96.sql)0
-rw-r--r--sql/mysql/migrations/97.sql (renamed from schema/versions/mysql/97.sql)0
-rw-r--r--sql/mysql/migrations/98.sql (renamed from schema/versions/mysql/98.sql)0
-rw-r--r--sql/mysql/migrations/99.sql (renamed from schema/versions/mysql/99.sql)0
-rw-r--r--sql/mysql/schema.sql418
-rw-r--r--sql/pgsql/migrations/10.sql (renamed from schema/versions/pgsql/10.sql)0
-rw-r--r--sql/pgsql/migrations/100.sql (renamed from schema/versions/pgsql/100.sql)0
-rw-r--r--sql/pgsql/migrations/101.sql (renamed from schema/versions/pgsql/101.sql)0
-rw-r--r--sql/pgsql/migrations/102.sql (renamed from schema/versions/pgsql/102.sql)0
-rw-r--r--sql/pgsql/migrations/103.sql (renamed from schema/versions/pgsql/103.sql)0
-rw-r--r--sql/pgsql/migrations/104.sql (renamed from schema/versions/pgsql/104.sql)0
-rw-r--r--sql/pgsql/migrations/105.sql (renamed from schema/versions/pgsql/105.sql)0
-rw-r--r--sql/pgsql/migrations/106.sql (renamed from schema/versions/pgsql/106.sql)0
-rw-r--r--sql/pgsql/migrations/107.sql (renamed from schema/versions/pgsql/107.sql)0
-rw-r--r--sql/pgsql/migrations/108.sql (renamed from schema/versions/pgsql/108.sql)0
-rw-r--r--sql/pgsql/migrations/109.sql (renamed from schema/versions/pgsql/109.sql)0
-rw-r--r--sql/pgsql/migrations/11.sql (renamed from schema/versions/pgsql/11.sql)0
-rw-r--r--sql/pgsql/migrations/110.sql (renamed from schema/versions/pgsql/110.sql)0
-rw-r--r--sql/pgsql/migrations/111.sql (renamed from schema/versions/pgsql/111.sql)0
-rw-r--r--sql/pgsql/migrations/112.sql (renamed from schema/versions/pgsql/112.sql)0
-rw-r--r--sql/pgsql/migrations/113.sql (renamed from schema/versions/pgsql/113.sql)0
-rw-r--r--sql/pgsql/migrations/114.sql (renamed from schema/versions/pgsql/114.sql)0
-rw-r--r--sql/pgsql/migrations/115.sql (renamed from schema/versions/pgsql/115.sql)0
-rw-r--r--sql/pgsql/migrations/116.sql (renamed from schema/versions/pgsql/116.sql)0
-rw-r--r--sql/pgsql/migrations/117.sql (renamed from schema/versions/pgsql/117.sql)0
-rw-r--r--sql/pgsql/migrations/118.sql (renamed from schema/versions/pgsql/118.sql)0
-rw-r--r--sql/pgsql/migrations/119.sql (renamed from schema/versions/pgsql/119.sql)0
-rw-r--r--sql/pgsql/migrations/12.sql (renamed from schema/versions/pgsql/12.sql)0
-rw-r--r--sql/pgsql/migrations/120.sql (renamed from schema/versions/pgsql/120.sql)0
-rw-r--r--sql/pgsql/migrations/121.sql (renamed from schema/versions/pgsql/121.sql)0
-rw-r--r--sql/pgsql/migrations/122.sql (renamed from schema/versions/pgsql/122.sql)0
-rw-r--r--sql/pgsql/migrations/123.sql (renamed from schema/versions/pgsql/123.sql)0
-rw-r--r--sql/pgsql/migrations/124.sql (renamed from schema/versions/pgsql/124.sql)0
-rw-r--r--sql/pgsql/migrations/125.sql (renamed from schema/versions/pgsql/125.sql)0
-rw-r--r--sql/pgsql/migrations/126.sql (renamed from schema/versions/pgsql/126.sql)0
-rw-r--r--sql/pgsql/migrations/127.sql (renamed from schema/versions/pgsql/127.sql)0
-rw-r--r--sql/pgsql/migrations/128.sql (renamed from schema/versions/pgsql/128.sql)0
-rw-r--r--sql/pgsql/migrations/129.sql (renamed from schema/versions/pgsql/129.sql)0
-rw-r--r--sql/pgsql/migrations/13.sql (renamed from schema/versions/pgsql/13.sql)0
-rw-r--r--sql/pgsql/migrations/130.sql (renamed from schema/versions/pgsql/130.sql)0
-rw-r--r--sql/pgsql/migrations/131.sql (renamed from schema/versions/pgsql/131.sql)0
-rw-r--r--sql/pgsql/migrations/132.sql (renamed from schema/versions/pgsql/132.sql)0
-rw-r--r--sql/pgsql/migrations/133.sql (renamed from schema/versions/pgsql/133.sql)0
-rw-r--r--sql/pgsql/migrations/134.sql (renamed from schema/versions/pgsql/134.sql)0
-rw-r--r--sql/pgsql/migrations/135.sql (renamed from schema/versions/pgsql/135.sql)0
-rw-r--r--sql/pgsql/migrations/136.sql (renamed from schema/versions/pgsql/136.sql)0
-rw-r--r--sql/pgsql/migrations/137.sql (renamed from schema/versions/pgsql/137.sql)0
-rw-r--r--sql/pgsql/migrations/138.sql (renamed from schema/versions/pgsql/138.sql)0
-rw-r--r--sql/pgsql/migrations/139.sql (renamed from schema/versions/pgsql/139.sql)0
-rw-r--r--sql/pgsql/migrations/14.sql (renamed from schema/versions/pgsql/14.sql)0
-rw-r--r--sql/pgsql/migrations/140.sql (renamed from schema/versions/pgsql/140.sql)0
-rw-r--r--sql/pgsql/migrations/141.sql (renamed from schema/versions/pgsql/141.sql)0
-rw-r--r--sql/pgsql/migrations/142.sql4
-rw-r--r--sql/pgsql/migrations/143.sql2
-rw-r--r--sql/pgsql/migrations/144.sql2
-rw-r--r--sql/pgsql/migrations/15.sql (renamed from schema/versions/pgsql/15.sql)0
-rw-r--r--sql/pgsql/migrations/16.sql (renamed from schema/versions/pgsql/16.sql)0
-rw-r--r--sql/pgsql/migrations/17.sql (renamed from schema/versions/pgsql/17.sql)0
-rw-r--r--sql/pgsql/migrations/18.sql (renamed from schema/versions/pgsql/18.sql)0
-rw-r--r--sql/pgsql/migrations/19.sql (renamed from schema/versions/pgsql/19.sql)0
-rw-r--r--sql/pgsql/migrations/20.sql (renamed from schema/versions/pgsql/20.sql)0
-rw-r--r--sql/pgsql/migrations/21.sql (renamed from schema/versions/pgsql/21.sql)0
-rw-r--r--sql/pgsql/migrations/22.sql (renamed from schema/versions/pgsql/22.sql)0
-rw-r--r--sql/pgsql/migrations/23.sql (renamed from schema/versions/pgsql/23.sql)0
-rw-r--r--sql/pgsql/migrations/24.sql (renamed from schema/versions/pgsql/24.sql)0
-rw-r--r--sql/pgsql/migrations/25.sql (renamed from schema/versions/pgsql/25.sql)0
-rw-r--r--sql/pgsql/migrations/26.sql (renamed from schema/versions/pgsql/26.sql)0
-rw-r--r--sql/pgsql/migrations/27.sql (renamed from schema/versions/pgsql/27.sql)0
-rw-r--r--sql/pgsql/migrations/28.sql (renamed from schema/versions/pgsql/28.sql)0
-rw-r--r--sql/pgsql/migrations/29.sql (renamed from schema/versions/pgsql/29.sql)0
-rw-r--r--sql/pgsql/migrations/3.sql (renamed from schema/versions/pgsql/3.sql)0
-rw-r--r--sql/pgsql/migrations/30.sql (renamed from schema/versions/pgsql/30.sql)0
-rw-r--r--sql/pgsql/migrations/31.sql (renamed from schema/versions/pgsql/31.sql)0
-rw-r--r--sql/pgsql/migrations/32.sql (renamed from schema/versions/pgsql/32.sql)0
-rw-r--r--sql/pgsql/migrations/33.sql (renamed from schema/versions/pgsql/33.sql)0
-rw-r--r--sql/pgsql/migrations/34.sql (renamed from schema/versions/pgsql/34.sql)0
-rw-r--r--sql/pgsql/migrations/35.sql (renamed from schema/versions/pgsql/35.sql)0
-rw-r--r--sql/pgsql/migrations/36.sql (renamed from schema/versions/pgsql/36.sql)0
-rw-r--r--sql/pgsql/migrations/37.sql (renamed from schema/versions/pgsql/37.sql)0
-rw-r--r--sql/pgsql/migrations/38.sql (renamed from schema/versions/pgsql/38.sql)0
-rw-r--r--sql/pgsql/migrations/39.sql (renamed from schema/versions/pgsql/39.sql)0
-rw-r--r--sql/pgsql/migrations/4.sql (renamed from schema/versions/pgsql/4.sql)0
-rw-r--r--sql/pgsql/migrations/40.sql (renamed from schema/versions/pgsql/40.sql)0
-rw-r--r--sql/pgsql/migrations/41.sql (renamed from schema/versions/pgsql/41.sql)0
-rw-r--r--sql/pgsql/migrations/42.sql (renamed from schema/versions/pgsql/42.sql)0
-rw-r--r--sql/pgsql/migrations/43.sql (renamed from schema/versions/pgsql/43.sql)0
-rw-r--r--sql/pgsql/migrations/44.sql (renamed from schema/versions/pgsql/44.sql)0
-rw-r--r--sql/pgsql/migrations/45.sql (renamed from schema/versions/pgsql/45.sql)0
-rw-r--r--sql/pgsql/migrations/46.sql (renamed from schema/versions/pgsql/46.sql)0
-rw-r--r--sql/pgsql/migrations/47.sql (renamed from schema/versions/pgsql/47.sql)0
-rw-r--r--sql/pgsql/migrations/48.sql (renamed from schema/versions/pgsql/48.sql)0
-rw-r--r--sql/pgsql/migrations/49.sql (renamed from schema/versions/pgsql/49.sql)0
-rw-r--r--sql/pgsql/migrations/5.sql (renamed from schema/versions/pgsql/5.sql)0
-rw-r--r--sql/pgsql/migrations/50.sql (renamed from schema/versions/pgsql/50.sql)0
-rw-r--r--sql/pgsql/migrations/51.sql (renamed from schema/versions/pgsql/51.sql)0
-rw-r--r--sql/pgsql/migrations/52.sql (renamed from schema/versions/pgsql/52.sql)0
-rw-r--r--sql/pgsql/migrations/53.sql (renamed from schema/versions/pgsql/53.sql)0
-rw-r--r--sql/pgsql/migrations/54.sql (renamed from schema/versions/pgsql/54.sql)0
-rw-r--r--sql/pgsql/migrations/55.sql (renamed from schema/versions/pgsql/55.sql)0
-rw-r--r--sql/pgsql/migrations/56.sql (renamed from schema/versions/pgsql/56.sql)0
-rw-r--r--sql/pgsql/migrations/57.sql (renamed from schema/versions/pgsql/57.sql)0
-rw-r--r--sql/pgsql/migrations/58.sql (renamed from schema/versions/pgsql/58.sql)0
-rw-r--r--sql/pgsql/migrations/59.sql (renamed from schema/versions/pgsql/59.sql)0
-rw-r--r--sql/pgsql/migrations/6.sql (renamed from schema/versions/pgsql/6.sql)0
-rw-r--r--sql/pgsql/migrations/60.sql (renamed from schema/versions/pgsql/60.sql)0
-rw-r--r--sql/pgsql/migrations/61.sql (renamed from schema/versions/pgsql/61.sql)0
-rw-r--r--sql/pgsql/migrations/62.sql (renamed from schema/versions/pgsql/62.sql)0
-rw-r--r--sql/pgsql/migrations/63.sql (renamed from schema/versions/pgsql/63.sql)0
-rw-r--r--sql/pgsql/migrations/64.sql (renamed from schema/versions/pgsql/64.sql)0
-rw-r--r--sql/pgsql/migrations/65.sql (renamed from schema/versions/pgsql/65.sql)0
-rw-r--r--sql/pgsql/migrations/66.sql (renamed from schema/versions/pgsql/66.sql)0
-rw-r--r--sql/pgsql/migrations/67.sql (renamed from schema/versions/pgsql/67.sql)0
-rw-r--r--sql/pgsql/migrations/68.sql (renamed from schema/versions/pgsql/68.sql)0
-rw-r--r--sql/pgsql/migrations/69.sql (renamed from schema/versions/pgsql/69.sql)0
-rw-r--r--sql/pgsql/migrations/7.sql (renamed from schema/versions/pgsql/7.sql)0
-rw-r--r--sql/pgsql/migrations/70.sql (renamed from schema/versions/pgsql/70.sql)0
-rw-r--r--sql/pgsql/migrations/71.sql (renamed from schema/versions/pgsql/71.sql)0
-rw-r--r--sql/pgsql/migrations/72.sql (renamed from schema/versions/pgsql/72.sql)0
-rw-r--r--sql/pgsql/migrations/73.sql (renamed from schema/versions/pgsql/73.sql)0
-rw-r--r--sql/pgsql/migrations/74.sql (renamed from schema/versions/pgsql/74.sql)0
-rw-r--r--sql/pgsql/migrations/75.sql (renamed from schema/versions/pgsql/75.sql)0
-rw-r--r--sql/pgsql/migrations/76.sql (renamed from schema/versions/pgsql/76.sql)0
-rw-r--r--sql/pgsql/migrations/77.sql (renamed from schema/versions/pgsql/77.sql)0
-rw-r--r--sql/pgsql/migrations/78.sql (renamed from schema/versions/pgsql/78.sql)0
-rw-r--r--sql/pgsql/migrations/79.sql (renamed from schema/versions/pgsql/79.sql)0
-rw-r--r--sql/pgsql/migrations/8.sql (renamed from schema/versions/pgsql/8.sql)0
-rw-r--r--sql/pgsql/migrations/80.sql (renamed from schema/versions/pgsql/80.sql)0
-rw-r--r--sql/pgsql/migrations/81.sql (renamed from schema/versions/pgsql/81.sql)0
-rw-r--r--sql/pgsql/migrations/82.sql (renamed from schema/versions/pgsql/82.sql)0
-rw-r--r--sql/pgsql/migrations/83.sql (renamed from schema/versions/pgsql/83.sql)0
-rw-r--r--sql/pgsql/migrations/84.sql (renamed from schema/versions/pgsql/84.sql)0
-rw-r--r--sql/pgsql/migrations/85.sql (renamed from schema/versions/pgsql/85.sql)0
-rw-r--r--sql/pgsql/migrations/86.sql (renamed from schema/versions/pgsql/86.sql)0
-rw-r--r--sql/pgsql/migrations/87.sql (renamed from schema/versions/pgsql/87.sql)0
-rw-r--r--sql/pgsql/migrations/88.sql (renamed from schema/versions/pgsql/88.sql)0
-rw-r--r--sql/pgsql/migrations/89.sql (renamed from schema/versions/pgsql/89.sql)0
-rw-r--r--sql/pgsql/migrations/9.sql (renamed from schema/versions/pgsql/9.sql)0
-rw-r--r--sql/pgsql/migrations/90.sql (renamed from schema/versions/pgsql/90.sql)0
-rw-r--r--sql/pgsql/migrations/91.sql (renamed from schema/versions/pgsql/91.sql)0
-rw-r--r--sql/pgsql/migrations/92.sql (renamed from schema/versions/pgsql/92.sql)0
-rw-r--r--sql/pgsql/migrations/93.sql (renamed from schema/versions/pgsql/93.sql)0
-rw-r--r--sql/pgsql/migrations/94.sql (renamed from schema/versions/pgsql/94.sql)0
-rw-r--r--sql/pgsql/migrations/95.sql (renamed from schema/versions/pgsql/95.sql)0
-rw-r--r--sql/pgsql/migrations/96.sql (renamed from schema/versions/pgsql/96.sql)0
-rw-r--r--sql/pgsql/migrations/97.sql (renamed from schema/versions/pgsql/97.sql)0
-rw-r--r--sql/pgsql/migrations/98.sql (renamed from schema/versions/pgsql/98.sql)0
-rw-r--r--sql/pgsql/migrations/99.sql (renamed from schema/versions/pgsql/99.sql)0
-rw-r--r--sql/pgsql/schema.sql396
-rw-r--r--templates/digest_template_html.txt14
-rw-r--r--themes/compact.css120
-rw-r--r--themes/compact_night.css120
-rw-r--r--themes/light.css120
-rw-r--r--themes/light/defines.less8
-rw-r--r--themes/light/dijit_basic.less11
-rw-r--r--themes/light/prefs.less115
-rw-r--r--themes/light/tt-rss.less14
-rw-r--r--themes/night.css120
-rw-r--r--themes/night_blue.css120
-rwxr-xr-xupdate.php50
-rwxr-xr-xupdate_daemon2.php5
-rwxr-xr-xutils/rebase-translations.sh9
-rw-r--r--vendor/OTPHP/Base32.php85
-rw-r--r--vendor/OTPHP/HOTP.php74
-rw-r--r--vendor/OTPHP/LICENCE20
-rw-r--r--vendor/OTPHP/OTP.php120
-rw-r--r--vendor/OTPHP/OTPHP.php27
-rw-r--r--vendor/OTPHP/TOTP.php106
-rw-r--r--vendor/Psr/Log/LoggerInterface.php123
-rw-r--r--vendor/Psr/Log/LoggerTrait.php140
-rw-r--r--vendor/Psr/Log/NullLogger.php28
-rw-r--r--vendor/Psr/Log/Test/LoggerInterfaceTest.php140
-rw-r--r--vendor/autoload.php7
-rw-r--r--vendor/beberlei/assert/LICENSE11
-rw-r--r--vendor/beberlei/assert/composer.json63
-rw-r--r--vendor/beberlei/assert/lib/Assert/Assert.php96
-rw-r--r--vendor/beberlei/assert/lib/Assert/Assertion.php2825
-rw-r--r--vendor/beberlei/assert/lib/Assert/AssertionChain.php254
-rw-r--r--vendor/beberlei/assert/lib/Assert/AssertionFailedException.php35
-rw-r--r--vendor/beberlei/assert/lib/Assert/InvalidArgumentException.php76
-rw-r--r--vendor/beberlei/assert/lib/Assert/LazyAssertion.php230
-rw-r--r--vendor/beberlei/assert/lib/Assert/LazyAssertionException.php55
-rw-r--r--vendor/beberlei/assert/lib/Assert/functions.php80
-rw-r--r--vendor/beberlei/assert/phpstan-code.neon10
-rw-r--r--vendor/beberlei/assert/phpstan-tests.neon10
-rw-r--r--vendor/chillerlan/php-qrcode/.github/FUNDING.yml1
-rw-r--r--vendor/chillerlan/php-qrcode/.github/workflows/tests.yml55
-rw-r--r--vendor/chillerlan/php-qrcode/.gitignore5
-rw-r--r--vendor/chillerlan/php-qrcode/.scrutinizer.yml5
-rw-r--r--vendor/chillerlan/php-qrcode/.travis.yml19
-rw-r--r--vendor/chillerlan/php-qrcode/LICENSE21
-rw-r--r--vendor/chillerlan/php-qrcode/README.md392
-rw-r--r--vendor/chillerlan/php-qrcode/composer.json51
-rw-r--r--vendor/chillerlan/php-qrcode/examples/MyCustomOutput.php36
-rw-r--r--vendor/chillerlan/php-qrcode/examples/QRImageWithLogo.php81
-rw-r--r--vendor/chillerlan/php-qrcode/examples/QRImageWithText.php104
-rw-r--r--vendor/chillerlan/php-qrcode/examples/custom_output.php38
-rw-r--r--vendor/chillerlan/php-qrcode/examples/example_image.pngbin0 -> 2279 bytes
-rw-r--r--vendor/chillerlan/php-qrcode/examples/example_svg.pngbin0 -> 15925 bytes
-rw-r--r--vendor/chillerlan/php-qrcode/examples/fpdf.php47
-rw-r--r--vendor/chillerlan/php-qrcode/examples/html.php102
-rw-r--r--vendor/chillerlan/php-qrcode/examples/image.php60
-rw-r--r--vendor/chillerlan/php-qrcode/examples/imageWithLogo.php44
-rw-r--r--vendor/chillerlan/php-qrcode/examples/imageWithText.php33
-rw-r--r--vendor/chillerlan/php-qrcode/examples/imagick.php59
-rw-r--r--vendor/chillerlan/php-qrcode/examples/octocat.pngbin0 -> 2468 bytes
-rw-r--r--vendor/chillerlan/php-qrcode/examples/svg.php77
-rw-r--r--vendor/chillerlan/php-qrcode/examples/text.php68
-rw-r--r--vendor/chillerlan/php-qrcode/phpdoc.xml15
-rw-r--r--vendor/chillerlan/php-qrcode/phpmd.xml34
-rw-r--r--vendor/chillerlan/php-qrcode/phpunit.xml23
-rw-r--r--vendor/chillerlan/php-qrcode/public/index.html163
-rw-r--r--vendor/chillerlan/php-qrcode/public/qrcode.php97
-rw-r--r--vendor/chillerlan/php-qrcode/src/Data/AlphaNum.php65
-rw-r--r--vendor/chillerlan/php-qrcode/src/Data/Byte.php47
-rw-r--r--vendor/chillerlan/php-qrcode/src/Data/Kanji.php70
-rw-r--r--vendor/chillerlan/php-qrcode/src/Data/MaskPatternTester.php203
-rw-r--r--vendor/chillerlan/php-qrcode/src/Data/Number.php82
-rw-r--r--vendor/chillerlan/php-qrcode/src/Data/QRCodeDataException.php17
-rw-r--r--vendor/chillerlan/php-qrcode/src/Data/QRDataAbstract.php351
-rw-r--r--vendor/chillerlan/php-qrcode/src/Data/QRDataInterface.php187
-rw-r--r--vendor/chillerlan/php-qrcode/src/Data/QRMatrix.php733
-rw-r--r--vendor/chillerlan/php-qrcode/src/Helpers/BitBuffer.php75
-rw-r--r--vendor/chillerlan/php-qrcode/src/Helpers/Polynomial.php184
-rw-r--r--vendor/chillerlan/php-qrcode/src/Output/QRCodeOutputException.php17
-rw-r--r--vendor/chillerlan/php-qrcode/src/Output/QRFpdf.php112
-rw-r--r--vendor/chillerlan/php-qrcode/src/Output/QRImage.php208
-rw-r--r--vendor/chillerlan/php-qrcode/src/Output/QRImagick.php123
-rw-r--r--vendor/chillerlan/php-qrcode/src/Output/QRMarkup.php151
-rw-r--r--vendor/chillerlan/php-qrcode/src/Output/QROutputAbstract.php130
-rw-r--r--vendor/chillerlan/php-qrcode/src/Output/QROutputInterface.php55
-rw-r--r--vendor/chillerlan/php-qrcode/src/Output/QRString.php76
-rw-r--r--vendor/chillerlan/php-qrcode/src/QRCode.php310
-rw-r--r--vendor/chillerlan/php-qrcode/src/QRCodeException.php15
-rw-r--r--vendor/chillerlan/php-qrcode/src/QROptions.php61
-rw-r--r--vendor/chillerlan/php-qrcode/src/QROptionsTrait.php408
-rw-r--r--vendor/chillerlan/php-qrcode/tests/Data/AlphaNumTest.php44
-rw-r--r--vendor/chillerlan/php-qrcode/tests/Data/ByteTest.php38
-rw-r--r--vendor/chillerlan/php-qrcode/tests/Data/DatainterfaceTestAbstract.php65
-rw-r--r--vendor/chillerlan/php-qrcode/tests/Data/KanjiTest.php50
-rw-r--r--vendor/chillerlan/php-qrcode/tests/Data/MaskPatternTesterTest.php29
-rw-r--r--vendor/chillerlan/php-qrcode/tests/Data/NumberTest.php44
-rw-r--r--vendor/chillerlan/php-qrcode/tests/Data/QRMatrixTest.php260
-rw-r--r--vendor/chillerlan/php-qrcode/tests/Helpers/BitBufferTest.php53
-rw-r--r--vendor/chillerlan/php-qrcode/tests/Helpers/PolynomialTest.php42
-rw-r--r--vendor/chillerlan/php-qrcode/tests/Output/QRFpdfTest.php83
-rw-r--r--vendor/chillerlan/php-qrcode/tests/Output/QRImageTest.php69
-rw-r--r--vendor/chillerlan/php-qrcode/tests/Output/QRImagickTest.php66
-rw-r--r--vendor/chillerlan/php-qrcode/tests/Output/QRMarkupTest.php79
-rw-r--r--vendor/chillerlan/php-qrcode/tests/Output/QROutputTestAbstract.php71
-rw-r--r--vendor/chillerlan/php-qrcode/tests/Output/QRStringTest.php56
-rw-r--r--vendor/chillerlan/php-qrcode/tests/QRCodeTest.php140
-rw-r--r--vendor/chillerlan/php-qrcode/tests/QROptionsTest.php80
-rw-r--r--vendor/chillerlan/php-qrcode/tests/QRTestAbstract.php72
-rw-r--r--vendor/chillerlan/php-settings-container/.gitignore4
-rw-r--r--vendor/chillerlan/php-settings-container/.scrutinizer.yml5
-rw-r--r--vendor/chillerlan/php-settings-container/.travis.yml18
-rw-r--r--vendor/chillerlan/php-settings-container/LICENSE21
-rw-r--r--vendor/chillerlan/php-settings-container/README.md153
-rw-r--r--vendor/chillerlan/php-settings-container/composer.json40
-rw-r--r--vendor/chillerlan/php-settings-container/examples/advanced.php46
-rw-r--r--vendor/chillerlan/php-settings-container/examples/simple.php30
-rw-r--r--vendor/chillerlan/php-settings-container/phpmd.xml35
-rw-r--r--vendor/chillerlan/php-settings-container/phpunit.xml22
-rw-r--r--vendor/chillerlan/php-settings-container/src/SettingsContainerAbstract.php172
-rw-r--r--vendor/chillerlan/php-settings-container/src/SettingsContainerInterface.php104
-rw-r--r--vendor/chillerlan/php-settings-container/tests/ContainerTest.php105
-rw-r--r--vendor/chillerlan/php-settings-container/tests/TestContainer.php29
-rw-r--r--vendor/chillerlan/php-settings-container/tests/TestOptionsTrait.php42
-rw-r--r--vendor/composer/ClassLoader.php479
-rw-r--r--vendor/composer/InstalledVersions.php364
-rw-r--r--vendor/composer/LICENSE21
-rw-r--r--vendor/composer/autoload_classmap.php15
-rw-r--r--vendor/composer/autoload_files.php99
-rw-r--r--vendor/composer/autoload_namespaces.php9
-rw-r--r--vendor/composer/autoload_psr4.php15
-rw-r--r--vendor/composer/autoload_real.php75
-rw-r--r--vendor/composer/autoload_static.php173
-rw-r--r--vendor/composer/installed.json615
-rw-r--r--vendor/composer/installed.php106
-rw-r--r--vendor/composer/platform_check.php26
-rw-r--r--vendor/j4mie/idiorm/CONTRIBUTING.md16
-rw-r--r--vendor/j4mie/idiorm/README.markdown239
-rw-r--r--vendor/j4mie/idiorm/composer.json49
-rw-r--r--vendor/j4mie/idiorm/demo.php81
-rw-r--r--vendor/j4mie/idiorm/docs/Makefile153
-rw-r--r--vendor/j4mie/idiorm/docs/conf.py242
-rw-r--r--vendor/j4mie/idiorm/docs/configuration.rst378
-rw-r--r--vendor/j4mie/idiorm/docs/connections.rst80
-rw-r--r--vendor/j4mie/idiorm/docs/index.rst29
-rw-r--r--vendor/j4mie/idiorm/docs/installation.rst19
-rw-r--r--vendor/j4mie/idiorm/docs/make.bat190
-rw-r--r--vendor/j4mie/idiorm/docs/models.rst161
-rw-r--r--vendor/j4mie/idiorm/docs/philosophy.rst34
-rw-r--r--vendor/j4mie/idiorm/docs/querying.rst896
-rw-r--r--vendor/j4mie/idiorm/docs/transactions.rst21
-rw-r--r--vendor/j4mie/idiorm/idiorm.php2539
-rw-r--r--vendor/mervick/material-design-icons/.gitignore28
-rw-r--r--vendor/mervick/material-design-icons/Gruntfile.js63
-rw-r--r--vendor/mervick/material-design-icons/Gulpfile.js141
-rw-r--r--vendor/mervick/material-design-icons/LICENSE21
-rw-r--r--vendor/mervick/material-design-icons/README.md91
-rw-r--r--vendor/mervick/material-design-icons/bower.json33
-rw-r--r--vendor/mervick/material-design-icons/component.json37
-rw-r--r--vendor/mervick/material-design-icons/composer.json25
-rw-r--r--vendor/mervick/material-design-icons/css/material-icons.css2963
-rw-r--r--vendor/mervick/material-design-icons/css/material-icons.min.css2
-rw-r--r--vendor/mervick/material-design-icons/css/material-icons.min.css.map1
-rw-r--r--vendor/mervick/material-design-icons/demo/index.html121
-rw-r--r--vendor/mervick/material-design-icons/demo/js/data.js1
-rw-r--r--vendor/mervick/material-design-icons/demo/js/main.js194
-rw-r--r--vendor/mervick/material-design-icons/demo/style/main.css385
-rw-r--r--vendor/mervick/material-design-icons/demo/style/main.scss392
-rw-r--r--vendor/mervick/material-design-icons/fonts/LICENSE.txt393
-rw-r--r--vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.eot (renamed from lib/iconfont/MaterialIcons-Regular.eot)bin143258 -> 143258 bytes
-rw-r--r--vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.svg (renamed from lib/iconfont/MaterialIcons-Regular.svg)0
-rw-r--r--vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.ttf (renamed from lib/iconfont/MaterialIcons-Regular.ttf)bin128180 -> 128180 bytes
-rw-r--r--vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.woffbin0 -> 78776 bytes
-rw-r--r--vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.woff2bin0 -> 44396 bytes
-rw-r--r--vendor/mervick/material-design-icons/fonts/codepoints (renamed from lib/iconfont/codepoints)0
-rw-r--r--vendor/mervick/material-design-icons/index.js3
-rw-r--r--vendor/mervick/material-design-icons/package.json44
-rw-r--r--vendor/mervick/material-design-icons/scripts/codepoints2scss.sh30
-rw-r--r--vendor/mervick/material-design-icons/scripts/updatedemo.php61
-rw-r--r--vendor/mervick/material-design-icons/scss/_animated.scss36
-rw-r--r--vendor/mervick/material-design-icons/scss/_bordered-pulled.scss18
-rw-r--r--vendor/mervick/material-design-icons/scss/_core.scss30
-rw-r--r--vendor/mervick/material-design-icons/scss/_fixed-width.scss9
-rw-r--r--vendor/mervick/material-design-icons/scss/_icons.scss934
-rw-r--r--vendor/mervick/material-design-icons/scss/_larger.scss15
-rw-r--r--vendor/mervick/material-design-icons/scss/_list.scss21
-rw-r--r--vendor/mervick/material-design-icons/scss/_mixins.scss16
-rw-r--r--vendor/mervick/material-design-icons/scss/_path.scss18
-rw-r--r--vendor/mervick/material-design-icons/scss/_rotated-flipped.scss22
-rw-r--r--vendor/mervick/material-design-icons/scss/_stacked.scss22
-rw-r--r--vendor/mervick/material-design-icons/scss/_variables.scss11
-rw-r--r--vendor/mervick/material-design-icons/scss/material-icons.scss12
-rw-r--r--vendor/paragonie/constant_time_encoding/.gitignore2
-rw-r--r--vendor/paragonie/constant_time_encoding/.travis.yml24
-rw-r--r--vendor/paragonie/constant_time_encoding/LICENSE.txt48
-rw-r--r--vendor/paragonie/constant_time_encoding/README.md84
-rw-r--r--vendor/paragonie/constant_time_encoding/composer.json51
-rw-r--r--vendor/paragonie/constant_time_encoding/phpunit.xml.dist13
-rw-r--r--vendor/paragonie/constant_time_encoding/psalm.xml9
-rw-r--r--vendor/paragonie/constant_time_encoding/src/Base32.php471
-rw-r--r--vendor/paragonie/constant_time_encoding/src/Base32Hex.php111
-rw-r--r--vendor/paragonie/constant_time_encoding/src/Base64.php271
-rw-r--r--vendor/paragonie/constant_time_encoding/src/Base64DotSlash.php88
-rw-r--r--vendor/paragonie/constant_time_encoding/src/Base64DotSlashOrdered.php82
-rw-r--r--vendor/paragonie/constant_time_encoding/src/Base64UrlSafe.php95
-rw-r--r--vendor/paragonie/constant_time_encoding/src/Binary.php85
-rw-r--r--vendor/paragonie/constant_time_encoding/src/EncoderInterface.php52
-rw-r--r--vendor/paragonie/constant_time_encoding/src/Encoding.php260
-rw-r--r--vendor/paragonie/constant_time_encoding/src/Hex.php159
-rw-r--r--vendor/paragonie/constant_time_encoding/src/RFC4648.php175
-rw-r--r--vendor/paragonie/constant_time_encoding/tests/Base32HexTest.php49
-rw-r--r--vendor/paragonie/constant_time_encoding/tests/Base32Test.php50
-rw-r--r--vendor/paragonie/constant_time_encoding/tests/Base64DotSlashOrderedTest.php34
-rw-r--r--vendor/paragonie/constant_time_encoding/tests/Base64DotSlashTest.php34
-rw-r--r--vendor/paragonie/constant_time_encoding/tests/Base64Test.php79
-rw-r--r--vendor/paragonie/constant_time_encoding/tests/Base64UrlSafeTest.php58
-rw-r--r--vendor/paragonie/constant_time_encoding/tests/EncodingTest.php307
-rw-r--r--vendor/paragonie/constant_time_encoding/tests/HexTest.php39
-rw-r--r--vendor/paragonie/constant_time_encoding/tests/RFC4648Test.php84
-rw-r--r--vendor/spomky-labs/otphp/.github/CONTRIBUTING.md25
-rw-r--r--vendor/spomky-labs/otphp/.github/ISSUE_TEMPLATE.md16
-rw-r--r--vendor/spomky-labs/otphp/.github/PULL_REQUEST_TEMPLATE.md21
-rw-r--r--vendor/spomky-labs/otphp/.github/stale.yml17
-rw-r--r--vendor/spomky-labs/otphp/.php_cs.dist61
-rw-r--r--vendor/spomky-labs/otphp/CODE_OF_CONDUCT.md46
-rw-r--r--vendor/spomky-labs/otphp/LICENSE20
-rw-r--r--vendor/spomky-labs/otphp/composer.json50
-rw-r--r--vendor/spomky-labs/otphp/phpstan.neon13
-rw-r--r--vendor/spomky-labs/otphp/src/Factory.php115
-rw-r--r--vendor/spomky-labs/otphp/src/FactoryInterface.php23
-rw-r--r--vendor/spomky-labs/otphp/src/HOTP.php103
-rw-r--r--vendor/spomky-labs/otphp/src/HOTPInterface.php29
-rw-r--r--vendor/spomky-labs/otphp/src/OTP.php114
-rw-r--r--vendor/spomky-labs/otphp/src/OTPInterface.php97
-rw-r--r--vendor/spomky-labs/otphp/src/ParameterTrait.php196
-rw-r--r--vendor/spomky-labs/otphp/src/TOTP.php159
-rw-r--r--vendor/spomky-labs/otphp/src/TOTPInterface.php36
-rw-r--r--vendor/thecodingmachine/safe/LICENSE21
-rw-r--r--vendor/thecodingmachine/safe/README.md178
-rw-r--r--vendor/thecodingmachine/safe/composer.json123
-rw-r--r--vendor/thecodingmachine/safe/deprecated/Exceptions/ApcException.php11
-rw-r--r--vendor/thecodingmachine/safe/deprecated/Exceptions/LibeventException.php11
-rw-r--r--vendor/thecodingmachine/safe/deprecated/Exceptions/MssqlException.php11
-rw-r--r--vendor/thecodingmachine/safe/deprecated/Exceptions/StatsException.php11
-rw-r--r--vendor/thecodingmachine/safe/deprecated/apc.php238
-rw-r--r--vendor/thecodingmachine/safe/deprecated/functionsList.php56
-rw-r--r--vendor/thecodingmachine/safe/deprecated/libevent.php496
-rw-r--r--vendor/thecodingmachine/safe/deprecated/mssql.php426
-rw-r--r--vendor/thecodingmachine/safe/deprecated/stats.php108
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/.gitkeep0
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/ApacheException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/ApcuException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/ArrayException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/Bzip2Exception.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/CalendarException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/ClassobjException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/ComException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/CubridException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/DatetimeException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/DirException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/EioException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/ErrorfuncException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/ExecException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/FileinfoException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/FilesystemException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/FilterException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/FpmException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/FtpException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/FunchandException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/GmpException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/GnupgException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/HashException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/IbaseException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/IbmDb2Exception.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/IconvException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/ImageException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/ImapException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/InfoException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/IngresiiException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/InotifyException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/LdapException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/LibxmlException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/LzfException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/MailparseException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/MbstringException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/MiscException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/MsqlException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/MysqlException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/MysqliException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/MysqlndMsException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/MysqlndQcException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/NetworkException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/Oci8Exception.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/OpcacheException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/OutcontrolException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/PasswordException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/PcntlException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/PdfException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/PgsqlException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/PosixException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/PsException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/PspellException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/ReadlineException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/RpminfoException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/RrdException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/SemException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/SessionException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/ShmopException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/SimplexmlException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/SocketsException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/SodiumException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/SolrException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/SplException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/SqlsrvException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/SsdeepException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/Ssh2Exception.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/StreamException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/StringsException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/SwooleException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/UodbcException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/UopzException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/UrlException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/VarException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/XdiffException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/XmlException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/XmlrpcException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/YamlException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/YazException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/ZipException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/Exceptions/ZlibException.php11
-rw-r--r--vendor/thecodingmachine/safe/generated/apache.php177
-rw-r--r--vendor/thecodingmachine/safe/generated/apcu.php112
-rw-r--r--vendor/thecodingmachine/safe/generated/array.php464
-rw-r--r--vendor/thecodingmachine/safe/generated/bzip2.php96
-rw-r--r--vendor/thecodingmachine/safe/generated/calendar.php27
-rw-r--r--vendor/thecodingmachine/safe/generated/classobj.php25
-rw-r--r--vendor/thecodingmachine/safe/generated/com.php127
-rw-r--r--vendor/thecodingmachine/safe/generated/cubrid.php395
-rw-r--r--vendor/thecodingmachine/safe/generated/curl.php3156
-rw-r--r--vendor/thecodingmachine/safe/generated/datetime.php631
-rw-r--r--vendor/thecodingmachine/safe/generated/dir.php157
-rw-r--r--vendor/thecodingmachine/safe/generated/eio.php2071
-rw-r--r--vendor/thecodingmachine/safe/generated/errorfunc.php82
-rw-r--r--vendor/thecodingmachine/safe/generated/exec.php159
-rw-r--r--vendor/thecodingmachine/safe/generated/fileinfo.php75
-rw-r--r--vendor/thecodingmachine/safe/generated/filesystem.php1488
-rw-r--r--vendor/thecodingmachine/safe/generated/filter.php93
-rw-r--r--vendor/thecodingmachine/safe/generated/fpm.php22
-rw-r--r--vendor/thecodingmachine/safe/generated/ftp.php496
-rw-r--r--vendor/thecodingmachine/safe/generated/funchand.php47
-rw-r--r--vendor/thecodingmachine/safe/generated/functionsList.php1070
-rw-r--r--vendor/thecodingmachine/safe/generated/gmp.php87
-rw-r--r--vendor/thecodingmachine/safe/generated/gnupg.php168
-rw-r--r--vendor/thecodingmachine/safe/generated/hash.php61
-rw-r--r--vendor/thecodingmachine/safe/generated/ibase.php633
-rw-r--r--vendor/thecodingmachine/safe/generated/ibmDb2.php1221
-rw-r--r--vendor/thecodingmachine/safe/generated/iconv.php96
-rw-r--r--vendor/thecodingmachine/safe/generated/image.php2704
-rw-r--r--vendor/thecodingmachine/safe/generated/imap.php1481
-rw-r--r--vendor/thecodingmachine/safe/generated/info.php511
-rw-r--r--vendor/thecodingmachine/safe/generated/ingres-ii.php720
-rw-r--r--vendor/thecodingmachine/safe/generated/inotify.php44
-rw-r--r--vendor/thecodingmachine/safe/generated/json.php73
-rw-r--r--vendor/thecodingmachine/safe/generated/ldap.php1603
-rw-r--r--vendor/thecodingmachine/safe/generated/libxml.php43
-rw-r--r--vendor/thecodingmachine/safe/generated/lzf.php44
-rw-r--r--vendor/thecodingmachine/safe/generated/mailparse.php127
-rw-r--r--vendor/thecodingmachine/safe/generated/mbstring.php526
-rw-r--r--vendor/thecodingmachine/safe/generated/misc.php464
-rw-r--r--vendor/thecodingmachine/safe/generated/msql.php443
-rw-r--r--vendor/thecodingmachine/safe/generated/mysql.php938
-rw-r--r--vendor/thecodingmachine/safe/generated/mysqli.php42
-rw-r--r--vendor/thecodingmachine/safe/generated/mysqlndMs.php119
-rw-r--r--vendor/thecodingmachine/safe/generated/mysqlndQc.php103
-rw-r--r--vendor/thecodingmachine/safe/generated/network.php639
-rw-r--r--vendor/thecodingmachine/safe/generated/oci8.php1721
-rw-r--r--vendor/thecodingmachine/safe/generated/opcache.php42
-rw-r--r--vendor/thecodingmachine/safe/generated/openssl.php1088
-rw-r--r--vendor/thecodingmachine/safe/generated/outcontrol.php100
-rw-r--r--vendor/thecodingmachine/safe/generated/password.php126
-rw-r--r--vendor/thecodingmachine/safe/generated/pcntl.php166
-rw-r--r--vendor/thecodingmachine/safe/generated/pcre.php659
-rw-r--r--vendor/thecodingmachine/safe/generated/pdf.php1553
-rw-r--r--vendor/thecodingmachine/safe/generated/pgsql.php1878
-rw-r--r--vendor/thecodingmachine/safe/generated/posix.php329
-rw-r--r--vendor/thecodingmachine/safe/generated/ps.php1812
-rw-r--r--vendor/thecodingmachine/safe/generated/pspell.php451
-rw-r--r--vendor/thecodingmachine/safe/generated/readline.php157
-rw-r--r--vendor/thecodingmachine/safe/generated/rpminfo.php21
-rw-r--r--vendor/thecodingmachine/safe/generated/rrd.php23
-rw-r--r--vendor/thecodingmachine/safe/generated/sem.php367
-rw-r--r--vendor/thecodingmachine/safe/generated/session.php153
-rw-r--r--vendor/thecodingmachine/safe/generated/shmop.php68
-rw-r--r--vendor/thecodingmachine/safe/generated/simplexml.php94
-rw-r--r--vendor/thecodingmachine/safe/generated/sockets.php813
-rw-r--r--vendor/thecodingmachine/safe/generated/sodium.php58
-rw-r--r--vendor/thecodingmachine/safe/generated/solr.php22
-rw-r--r--vendor/thecodingmachine/safe/generated/spl.php139
-rw-r--r--vendor/thecodingmachine/safe/generated/sqlsrv.php429
-rw-r--r--vendor/thecodingmachine/safe/generated/ssdeep.php70
-rw-r--r--vendor/thecodingmachine/safe/generated/ssh2.php641
-rw-r--r--vendor/thecodingmachine/safe/generated/stream.php609
-rw-r--r--vendor/thecodingmachine/safe/generated/strings.php846
-rw-r--r--vendor/thecodingmachine/safe/generated/swoole.php108
-rw-r--r--vendor/thecodingmachine/safe/generated/uodbc.php1009
-rw-r--r--vendor/thecodingmachine/safe/generated/uopz.php40
-rw-r--r--vendor/thecodingmachine/safe/generated/url.php144
-rw-r--r--vendor/thecodingmachine/safe/generated/var.php60
-rw-r--r--vendor/thecodingmachine/safe/generated/xdiff.php236
-rw-r--r--vendor/thecodingmachine/safe/generated/xml.php95
-rw-r--r--vendor/thecodingmachine/safe/generated/xmlrpc.php22
-rw-r--r--vendor/thecodingmachine/safe/generated/yaml.php97
-rw-r--r--vendor/thecodingmachine/safe/generated/yaz.php438
-rw-r--r--vendor/thecodingmachine/safe/generated/zip.php71
-rw-r--r--vendor/thecodingmachine/safe/generated/zlib.php611
-rw-r--r--vendor/thecodingmachine/safe/lib/DateTime.php81
-rw-r--r--vendor/thecodingmachine/safe/lib/DateTimeImmutable.php262
-rw-r--r--vendor/thecodingmachine/safe/lib/Exceptions/CurlException.php15
-rw-r--r--vendor/thecodingmachine/safe/lib/Exceptions/JsonException.php12
-rw-r--r--vendor/thecodingmachine/safe/lib/Exceptions/OpensslException.php12
-rw-r--r--vendor/thecodingmachine/safe/lib/Exceptions/PcreException.php21
-rw-r--r--vendor/thecodingmachine/safe/lib/Exceptions/SafeExceptionInterface.php9
-rw-r--r--vendor/thecodingmachine/safe/lib/special_cases.php241
-rw-r--r--vendor/thecodingmachine/safe/rector-migrate-0.7.php1081
1713 files changed, 359483 insertions, 16260 deletions
diff --git a/.gitignore b/.gitignore
index c8aa69a4d..f6c86fa35 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,3 +11,4 @@ Thumbs.db
/cache/*/*
/lock/*
/.vscode/settings.json
+/vendor/**/.git
diff --git a/api/index.php b/api/index.php
index 430082f16..750a95721 100644
--- a/api/index.php
+++ b/api/index.php
@@ -46,7 +46,7 @@
UserHelper::load_user_plugins($_SESSION["uid"]);
}
- $method = strtolower($_REQUEST["op"]);
+ $method = strtolower($_REQUEST["op"] ?? "");
$handler = new API($_REQUEST);
diff --git a/backend.php b/backend.php
index 206d866b7..98c8eace6 100644
--- a/backend.php
+++ b/backend.php
@@ -51,6 +51,11 @@
UserHelper::load_user_plugins($_SESSION["uid"]);
}
+ if (Config::is_migration_needed()) {
+ print Errors::to_json(Errors::E_SCHEMA_MISMATCH);
+ return;
+ }
+
$purge_intervals = array(
0 => __("Use default"),
-1 => __("Never purge"),
@@ -96,7 +101,6 @@
$op = "pluginhandler";
} */
- // TODO: figure out if is this still needed
$op = str_replace("-", "_", $op);
$override = PluginHost::getInstance()->lookup_handler($op, $method);
@@ -135,6 +139,9 @@
} else {
if (method_exists($handler, "catchall")) {
$handler->catchall($method);
+ } else {
+ header("Content-Type: text/json");
+ print Errors::to_json(Errors::E_UNKNOWN_METHOD, ["info" => get_class($handler) . "->$method"]);
}
}
$handler->after();
@@ -154,6 +161,6 @@
}
header("Content-Type: text/json");
- print Errors::to_json(Errors::E_UNKNOWN_METHOD);
+ print Errors::to_json(Errors::E_UNKNOWN_METHOD, [ "info" => (isset($handler) ? get_class($handler) : "UNKNOWN:".$_REQUEST["op"]) . "->$method"]);
?>
diff --git a/classes/api.php b/classes/api.php
index a0ee773c1..a1ed7968c 100755
--- a/classes/api.php
+++ b/classes/api.php
@@ -1,7 +1,7 @@
<?php
class API extends Handler {
- const API_LEVEL = 15;
+ const API_LEVEL = 16;
const STATUS_OK = 0;
const STATUS_ERR = 1;
@@ -49,7 +49,7 @@ class API extends Handler {
}
function getVersion() {
- $rv = array("version" => get_version());
+ $rv = array("version" => Config::get_version());
$this->_wrap(self::STATUS_OK, $rv);
}
@@ -98,8 +98,8 @@ class API extends Handler {
}
function getUnread() {
- $feed_id = clean($_REQUEST["feed_id"]);
- $is_cat = clean($_REQUEST["is_cat"]);
+ $feed_id = clean($_REQUEST["feed_id"] ?? "");
+ $is_cat = clean($_REQUEST["is_cat"] ?? "");
if ($feed_id) {
$this->_wrap(self::STATUS_OK, array("unread" => getFeedUnread($feed_id, $is_cat)));
@@ -188,15 +188,15 @@ class API extends Handler {
if (is_numeric($feed_id)) $feed_id = (int) $feed_id;
- $limit = (int)clean($_REQUEST["limit"]);
+ $limit = (int)clean($_REQUEST["limit"] ?? 0 );
if (!$limit || $limit >= 200) $limit = 200;
- $offset = (int)clean($_REQUEST["skip"]);
+ $offset = (int)clean($_REQUEST["skip"] ?? 0);
$filter = clean($_REQUEST["filter"] ?? "");
$is_cat = self::_param_to_bool(clean($_REQUEST["is_cat"] ?? false));
$show_excerpt = self::_param_to_bool(clean($_REQUEST["show_excerpt"] ?? false));
- $show_content = self::_param_to_bool(clean($_REQUEST["show_content"]));
+ $show_content = self::_param_to_bool(clean($_REQUEST["show_content"] ?? false));
/* all_articles, unread, adaptive, marked, updated */
$view_mode = clean($_REQUEST["view_mode"] ?? null);
$include_attachments = self::_param_to_bool(clean($_REQUEST["include_attachments"] ?? false));
@@ -258,6 +258,10 @@ class API extends Handler {
break;
case 3:
$field = "note";
+ break;
+ case 4:
+ $field = "score";
+ break;
};
switch ($mode) {
@@ -273,6 +277,7 @@ class API extends Handler {
}
if ($field == "note") $set_to = $this->pdo->quote($data);
+ if ($field == "score") $set_to = (int) $data;
if ($field && $set_to && count($article_ids) > 0) {
@@ -363,6 +368,7 @@ class API extends Handler {
}
$this->_wrap(self::STATUS_OK, $articles);
+ // @phpstan-ignore-next-line
} else {
$this->_wrap(self::STATUS_ERR, array("error" => self::E_INCORRECT_USAGE));
}
@@ -786,7 +792,8 @@ class API extends Handler {
list ($flavor_image, $flavor_stream, $flavor_kind) = Article::_get_image($enclosures,
$line["content"], // unsanitized
- $line["site_url"]);
+ $line["site_url"],
+ $headline_row);
$headline_row["flavor_image"] = $flavor_image;
$headline_row["flavor_stream"] = $flavor_stream;
diff --git a/classes/article.php b/classes/article.php
index d8ae97257..04855ac9d 100755
--- a/classes/article.php
+++ b/classes/article.php
@@ -5,26 +5,23 @@ class Article extends Handler_Protected {
const ARTICLE_KIND_YOUTUBE = 3;
function redirect() {
- $id = (int) clean($_REQUEST['id'] ?? 0);
-
- $sth = $this->pdo->prepare("SELECT link FROM ttrss_entries, ttrss_user_entries
- WHERE id = ? AND id = ref_id AND owner_uid = ?
- LIMIT 1");
- $sth->execute([$id, $_SESSION['uid']]);
+ $article = ORM::for_table('ttrss_entries')
+ ->table_alias('e')
+ ->join('ttrss_user_entries', [ 'ref_id', '=', 'e.id'], 'ue')
+ ->where('ue.owner_uid', $_SESSION['uid'])
+ ->find_one((int)$_REQUEST['id']);
- if ($row = $sth->fetch()) {
- $article_url = UrlHelper::validate(str_replace("\n", "", $row['link']));
+ if ($article) {
+ $article_url = UrlHelper::validate($article->link);
if ($article_url) {
header("Location: $article_url");
- } else {
- header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
- print "URL of article $id is blank.";
+ return;
}
-
- } else {
- print_error(__("Article not found."));
}
+
+ header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
+ print "Article not found or has an empty URL.";
}
static function _create_published_article($title, $url, $content, $labels_str,
@@ -182,19 +179,6 @@ class Article extends Handler_Protected {
print json_encode(["id" => $ids, "score" => $score]);
}
- function getScore() {
- $id = clean($_REQUEST['id']);
-
- $sth = $this->pdo->prepare("SELECT score FROM ttrss_user_entries WHERE ref_id = ? AND owner_uid = ?");
- $sth->execute([$id, $_SESSION['uid']]);
- $row = $sth->fetch();
-
- $score = $row['score'];
-
- print json_encode(["id" => $id, "score" => (int)$score]);
- }
-
-
function setArticleTags() {
$id = clean($_REQUEST["id"]);
@@ -433,42 +417,39 @@ class Article extends Handler_Protected {
}
function getmetadatabyid() {
- $id = clean($_REQUEST['id']);
-
- $sth = $this->pdo->prepare("SELECT link, title FROM ttrss_entries, ttrss_user_entries
- WHERE ref_id = ? AND ref_id = id AND owner_uid = ?");
- $sth->execute([$id, $_SESSION['uid']]);
+ $article = ORM::for_table('ttrss_entries')
+ ->join('ttrss_user_entries', ['ref_id', '=', 'id'], 'ue')
+ ->where('ue.owner_uid', $_SESSION['uid'])
+ ->find_one((int)$_REQUEST['id']);
- if ($row = $sth->fetch()) {
- $link = $row['link'];
- $title = $row['title'];
-
- echo json_encode(["link" => $link, "title" => $title]);
+ if ($article) {
+ echo json_encode(["link" => $article->link, "title" => $article->title]);
+ } else {
+ echo json_encode([]);
}
}
static function _get_enclosures($id) {
+ $encs = ORM::for_table('ttrss_enclosures')
+ ->where('post_id', $id)
+ ->find_many();
- $pdo = Db::pdo();
-
- $sth = $pdo->prepare("SELECT * FROM ttrss_enclosures
- WHERE post_id = ? AND content_url != ''");
- $sth->execute([$id]);
-
- $rv = array();
+ $rv = [];
$cache = new DiskCache("images");
- while ($line = $sth->fetch(PDO::FETCH_ASSOC)) {
+ foreach ($encs as $enc) {
+ $cache_key = sha1($enc->content_url);
- if ($cache->exists(sha1($line["content_url"]))) {
- $line["content_url"] = $cache->get_url(sha1($line["content_url"]));
+ if ($cache->exists($cache_key)) {
+ $enc->content_url = $cache->get_url($cache_key);
}
- array_push($rv, $line);
+ array_push($rv, $enc->as_array());
}
return $rv;
+
}
static function _purge_orphans() {
@@ -562,17 +543,20 @@ class Article extends Handler_Protected {
return $rv;
}
- static function _get_image($enclosures, $content, $site_url) {
+ static function _get_image(array $enclosures, string $content, string $site_url, array $headline) {
$article_image = "";
$article_stream = "";
$article_kind = 0;
PluginHost::getInstance()->chain_hooks_callback(PluginHost::HOOK_ARTICLE_IMAGE,
- function ($result) use (&$article_image, &$article_stream, &$content) {
+ function ($result, $plugin) use (&$article_image, &$article_stream, &$content) {
list ($article_image, $article_stream, $content) = $result;
+
+ // run until first hard match
+ return !empty($article_image);
},
- $enclosures, $content, $site_url);
+ $enclosures, $content, $site_url, $headline);
if (!$article_image && !$article_stream) {
$tmpdoc = new DOMDocument();
@@ -645,17 +629,16 @@ class Article extends Handler_Protected {
if (count($article_ids) == 0)
return [];
- $id_qmarks = arr_qmarks($article_ids);
-
- $sth = Db::pdo()->prepare("SELECT DISTINCT label_cache FROM ttrss_entries e, ttrss_user_entries ue
- WHERE ue.ref_id = e.id AND id IN ($id_qmarks)");
-
- $sth->execute($article_ids);
+ $entries = ORM::for_table('ttrss_entries')
+ ->table_alias('e')
+ ->join('ttrss_user_entries', ['ref_id', '=', 'id'], 'ue')
+ ->where_in('id', $article_ids)
+ ->find_many();
$rv = [];
- while ($row = $sth->fetch()) {
- $labels = json_decode($row["label_cache"]);
+ foreach ($entries as $entry) {
+ $labels = json_decode($entry->label_cache);
if (isset($labels) && is_array($labels)) {
foreach ($labels as $label) {
@@ -672,19 +655,18 @@ class Article extends Handler_Protected {
if (count($article_ids) == 0)
return [];
- $id_qmarks = arr_qmarks($article_ids);
-
- $sth = Db::pdo()->prepare("SELECT DISTINCT feed_id FROM ttrss_entries e, ttrss_user_entries ue
- WHERE ue.ref_id = e.id AND id IN ($id_qmarks)");
-
- $sth->execute($article_ids);
+ $entries = ORM::for_table('ttrss_entries')
+ ->table_alias('e')
+ ->join('ttrss_user_entries', ['ref_id', '=', 'id'], 'ue')
+ ->where_in('id', $article_ids)
+ ->find_many();
$rv = [];
- while ($row = $sth->fetch()) {
- array_push($rv, $row["feed_id"]);
+ foreach ($entries as $entry) {
+ array_push($rv, $entry->feed_id);
}
- return $rv;
+ return array_unique($rv);
}
}
diff --git a/classes/auth/base.php b/classes/auth/base.php
index f18cc2d2d..82ea06e1b 100644
--- a/classes/auth/base.php
+++ b/classes/auth/base.php
@@ -23,13 +23,14 @@ abstract class Auth_Base extends Plugin implements IAuthModule {
if (!$password) $password = make_password();
- $salt = substr(bin2hex(get_random_bytes(125)), 0, 250);
- $pwd_hash = encrypt_password($password, $salt, true);
-
- $sth = $this->pdo->prepare("INSERT INTO ttrss_users
- (login,access_level,last_login,created,pwd_hash,salt)
- VALUES (LOWER(?), 0, null, NOW(), ?,?)");
- $sth->execute([$login, $pwd_hash, $salt]);
+ $user = ORM::for_table('ttrss_users')->create();
+
+ $user->salt = UserHelper::get_salt();
+ $user->login = mb_strtolower($login);
+ $user->pwd_hash = UserHelper::hash_password($password, $user->salt);
+ $user->access_level = 0;
+ $user->created = Db::NOW();
+ $user->save();
return UserHelper::find_user_by_login($login);
diff --git a/classes/config.php b/classes/config.php
index ee1d3cb4a..567a019c6 100644
--- a/classes/config.php
+++ b/classes/config.php
@@ -6,6 +6,8 @@ class Config {
const T_STRING = 2;
const T_INT = 3;
+ const SCHEMA_VERSION = 144;
+
// override defaults, defined below in _DEFAULTS[], via environment: DB_TYPE becomes TTRSS_DB_TYPE, etc
const DB_TYPE = "DB_TYPE";
@@ -53,6 +55,8 @@ class Config {
const HTTP_PROXY = "HTTP_PROXY";
const FORBID_PASSWORD_CHANGES = "FORBID_PASSWORD_CHANGES";
const SESSION_NAME = "SESSION_NAME";
+ const CHECK_FOR_PLUGIN_UPDATES = "CHECK_FOR_PLUGIN_UPDATES";
+ const ENABLE_PLUGIN_INSTALLER = "ENABLE_PLUGIN_INSTALLER";
private const _DEFAULTS = [
Config::DB_TYPE => [ "pgsql", Config::T_STRING ],
@@ -80,10 +84,10 @@ class Config {
Config::T_STRING ],
Config::CHECK_FOR_UPDATES => [ "true", Config::T_BOOL ],
Config::PLUGINS => [ "auth_internal", Config::T_STRING ],
- Config::LOG_DESTINATION => [ "sql", Config::T_STRING ],
+ Config::LOG_DESTINATION => [ Logger::LOG_DEST_SQL, Config::T_STRING ],
Config::LOCAL_OVERRIDE_STYLESHEET => [ "local-overrides.css",
Config::T_STRING ],
- Config::DAEMON_MAX_CHILD_RUNTIME => [ 1800, Config::T_STRING ],
+ Config::DAEMON_MAX_CHILD_RUNTIME => [ 1800, Config::T_INT ],
Config::DAEMON_MAX_JOBS => [ 2, Config::T_INT ],
Config::FEED_FETCH_TIMEOUT => [ 45, Config::T_INT ],
Config::FEED_FETCH_NO_CACHE_TIMEOUT => [ 15, Config::T_INT ],
@@ -102,12 +106,18 @@ class Config {
Config::HTTP_PROXY => [ "", Config::T_STRING ],
Config::FORBID_PASSWORD_CHANGES => [ "", Config::T_BOOL ],
Config::SESSION_NAME => [ "ttrss_sid", Config::T_STRING ],
+ Config::CHECK_FOR_PLUGIN_UPDATES => [ "true", Config::T_BOOL ],
+ Config::ENABLE_PLUGIN_INSTALLER => [ "true", Config::T_BOOL ],
];
private static $instance;
private $params = [];
private $schema_version = null;
+ private $version = [];
+
+ /** @var Db_Migrations $migrations */
+ private $migrations;
public static function get_instance() : Config {
if (self::$instance == null)
@@ -129,23 +139,109 @@ class Config {
list ($defval, $deftype) = $this::_DEFAULTS[$const];
- $this->params[$cvalue] = [ self::cast_to(!empty($override) ? $override : $defval, $deftype), $deftype ];
+ $this->params[$cvalue] = [ self::cast_to($override !== false ? $override : $defval, $deftype), $deftype ];
+ }
+ }
+ }
+
+ /* package maintainers who don't use git: if version_static.txt exists in tt-rss root
+ directory, its contents are displayed instead of git commit-based version, this could be generated
+ based on source git tree commit used when creating the package */
+
+ static function get_version(bool $as_string = true) {
+ return self::get_instance()->_get_version($as_string);
+ }
+
+ private function _get_version(bool $as_string = true) {
+ $root_dir = dirname(__DIR__);
+
+ if (empty($this->version)) {
+ $this->version["status"] = -1;
+
+ if (PHP_OS === "Darwin") {
+ $ttrss_version["version"] = "UNKNOWN (Unsupported, Darwin)";
+ } else if (file_exists("$root_dir/version_static.txt")) {
+ $this->version["version"] = trim(file_get_contents("$root_dir/version_static.txt")) . " (Unsupported)";
+ } else if (is_dir("$root_dir/.git")) {
+ $this->version = self::get_version_from_git($root_dir);
+
+ if ($this->version["status"] != 0) {
+ user_error("Unable to determine version: " . $this->version["version"], E_USER_WARNING);
+
+ $this->version["version"] = "UNKNOWN (Unsupported, Git error)";
+ }
+ } else {
+ $this->version["version"] = "UNKNOWN (Unsupported)";
}
}
+
+ return $as_string ? $this->version["version"] : $this->version;
}
- static function get_schema_version(bool $nocache = false) {
- return self::get_instance()->_schema_version($nocache);
+ static function get_version_from_git(string $dir) {
+ $descriptorspec = [
+ 1 => ["pipe", "w"], // STDOUT
+ 2 => ["pipe", "w"], // STDERR
+ ];
+
+ $rv = [
+ "status" => -1,
+ "version" => "",
+ "commit" => "",
+ "timestamp" => 0,
+ ];
+
+ $proc = proc_open("git --no-pager log --pretty=\"version-%ct-%h\" -n1 HEAD",
+ $descriptorspec, $pipes, $dir);
+
+ if (is_resource($proc)) {
+ $stdout = trim(stream_get_contents($pipes[1]));
+ $stderr = trim(stream_get_contents($pipes[2]));
+ $status = proc_close($proc);
+
+ $rv["status"] = $status;
+
+ list($check, $timestamp, $commit) = explode("-", $stdout);
+
+ if ($check == "version") {
+
+ $rv["version"] = strftime("%y.%m", (int)$timestamp) . "-$commit";
+ $rv["commit"] = $commit;
+ $rv["timestamp"] = $timestamp;
+
+ // proc_close() may return -1 even if command completed successfully
+ // so if it looks like we got valid data, we ignore it
+
+ if ($rv["status"] == -1)
+ $rv["status"] = 0;
+
+ } else {
+ $rv["version"] = T_sprintf("Git error [RC=%d]: %s", $status, $stderr);
+ }
+ }
+
+ return $rv;
}
- function _schema_version(bool $nocache = false) {
- if (empty($this->schema_version) || $nocache) {
- $row = Db::pdo()->query("SELECT schema_version FROM ttrss_version")->fetch();
+ static function get_migrations() : Db_Migrations {
+ return self::get_instance()->_get_migrations();
+ }
- $this->schema_version = (int) $row["schema_version"];
+ private function _get_migrations() : Db_Migrations {
+ if (empty($this->migrations)) {
+ $this->migrations = new Db_Migrations();
+ $this->migrations->initialize(dirname(__DIR__) . "/sql", "ttrss_version", true, self::SCHEMA_VERSION);
}
- return $this->schema_version;
+ return $this->migrations;
+ }
+
+ static function is_migration_needed() : bool {
+ return self::get_migrations()->is_migration_needed();
+ }
+
+ static function get_schema_version() : int {
+ return self::get_migrations()->get_version();
}
static function cast_to(string $value, int $type_hint) {
@@ -168,7 +264,7 @@ class Config {
private function _add(string $param, string $default, int $type_hint) {
$override = getenv($this::_ENVVAR_PREFIX . $param);
- $this->params[$param] = [ self::cast_to(!empty($override) ? $override : $default, $type_hint), $type_hint ];
+ $this->params[$param] = [ self::cast_to($override !== false ? $override : $default, $type_hint), $type_hint ];
}
static function add(string $param, string $default, int $type_hint = Config::T_STRING) {
@@ -183,4 +279,228 @@ class Config {
return $instance->_get($param);
}
+ /** this returns Config::SELF_URL_PATH sans trailing slash */
+ static function get_self_url() : string {
+ $self_url_path = self::get(Config::SELF_URL_PATH);
+
+ if (substr($self_url_path, -1) === "/") {
+ return substr($self_url_path, 0, -1);
+ } else {
+ return $self_url_path;
+ }
+ }
+
+ static function is_server_https() : bool {
+ return (!empty($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] != 'off')) ||
+ (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https');
+ }
+
+ /** generates reference self_url_path (no trailing slash) */
+ static function make_self_url() : string {
+ $proto = self::is_server_https() ? 'https' : 'http';
+ $self_url_path = $proto . '://' . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"];
+
+ $self_url_path = preg_replace("/\w+\.php(\?.*$)?$/", "", $self_url_path);
+
+ if (substr($self_url_path, -1) === "/") {
+ return substr($self_url_path, 0, -1);
+ } else {
+ return $self_url_path;
+ }
+ }
+
+ /* sanity check stuff */
+
+ private static function check_mysql_tables() {
+ $pdo = Db::pdo();
+
+ $sth = $pdo->prepare("SELECT engine, table_name FROM information_schema.tables WHERE
+ table_schema = ? AND table_name LIKE 'ttrss_%' AND engine != 'InnoDB'");
+ $sth->execute([self::get(Config::DB_NAME)]);
+
+ $bad_tables = [];
+
+ while ($line = $sth->fetch()) {
+ array_push($bad_tables, $line);
+ }
+
+ return $bad_tables;
+ }
+
+ static function sanity_check() {
+
+ /*
+ we don't actually need the DB object right now but some checks below might use ORM which won't be initialized
+ because it is set up in the Db constructor, which is why it's a good idea to invoke it as early as possible
+
+ it is a bit of a hack, maybe ORM should be initialized somewhere else (functions.php?)
+ */
+
+ $pdo = Db::pdo();
+
+ $errors = [];
+
+ if (strpos(self::get(Config::PLUGINS), "auth_") === false) {
+ array_push($errors, "Please enable at least one authentication module via PLUGINS");
+ }
+
+ if (function_exists('posix_getuid') && posix_getuid() == 0) {
+ array_push($errors, "Please don't run this script as root.");
+ }
+
+ if (version_compare(PHP_VERSION, '7.1.0', '<')) {
+ array_push($errors, "PHP version 7.1.0 or newer required. You're using " . PHP_VERSION . ".");
+ }
+
+ if (!class_exists("UConverter")) {
+ array_push($errors, "PHP UConverter class is missing, it's provided by the Internationalization (intl) module.");
+ }
+
+ if (!is_writable(self::get(Config::CACHE_DIR) . "/images")) {
+ array_push($errors, "Image cache is not writable (chmod -R 777 ".self::get(Config::CACHE_DIR)."/images)");
+ }
+
+ if (!is_writable(self::get(Config::CACHE_DIR) . "/upload")) {
+ array_push($errors, "Upload cache is not writable (chmod -R 777 ".self::get(Config::CACHE_DIR)."/upload)");
+ }
+
+ if (!is_writable(self::get(Config::CACHE_DIR) . "/export")) {
+ array_push($errors, "Data export cache is not writable (chmod -R 777 ".self::get(Config::CACHE_DIR)."/export)");
+ }
+
+ if (self::get(Config::SINGLE_USER_MODE) && class_exists("PDO")) {
+ if (UserHelper::get_login_by_id(1) != "admin") {
+ array_push($errors, "SINGLE_USER_MODE is enabled but default admin account (ID: 1) is not found.");
+ }
+ }
+
+ if (php_sapi_name() != "cli") {
+
+ if (self::get_schema_version() < 0) {
+ array_push($errors, "Base database schema is missing. Either load it manually or perform a migration (<code>update.php --update-schema</code>)");
+ }
+
+ $ref_self_url_path = self::make_self_url();
+
+ if ($ref_self_url_path) {
+ $ref_self_url_path = preg_replace("/\w+\.php$/", "", $ref_self_url_path);
+ }
+
+ if (self::get_self_url() == "http://example.org/tt-rss") {
+ $hint = $ref_self_url_path ? "(possible value: <b>$ref_self_url_path</b>)" : "";
+ array_push($errors,
+ "Please set SELF_URL_PATH to the correct value for your server: $hint");
+ }
+
+ if (self::get_self_url() != $ref_self_url_path) {
+ array_push($errors,
+ "Please set SELF_URL_PATH to the correct value detected for your server: <b>$ref_self_url_path</b> (you're using: <b>" . self::get_self_url() . "</b>)");
+ }
+ }
+
+ if (!is_writable(self::get(Config::ICONS_DIR))) {
+ array_push($errors, "ICONS_DIR defined in config.php is not writable (chmod -R 777 ".self::get(Config::ICONS_DIR).").\n");
+ }
+
+ if (!is_writable(self::get(Config::LOCK_DIRECTORY))) {
+ array_push($errors, "LOCK_DIRECTORY is not writable (chmod -R 777 ".self::get(Config::LOCK_DIRECTORY).").\n");
+ }
+
+ if (!function_exists("curl_init") && !ini_get("allow_url_fopen")) {
+ array_push($errors, "PHP configuration option allow_url_fopen is disabled, and CURL functions are not present. Either enable allow_url_fopen or install PHP extension for CURL.");
+ }
+
+ if (!function_exists("json_encode")) {
+ array_push($errors, "PHP support for JSON is required, but was not found.");
+ }
+
+ if (!class_exists("PDO")) {
+ array_push($errors, "PHP support for PDO is required but was not found.");
+ }
+
+ if (!function_exists("mb_strlen")) {
+ array_push($errors, "PHP support for mbstring functions is required but was not found.");
+ }
+
+ if (!function_exists("hash")) {
+ array_push($errors, "PHP support for hash() function is required but was not found.");
+ }
+
+ if (ini_get("safe_mode")) {
+ array_push($errors, "PHP safe mode setting is obsolete and not supported by tt-rss.");
+ }
+
+ if (!function_exists("mime_content_type")) {
+ array_push($errors, "PHP function mime_content_type() is missing, try enabling fileinfo module.");
+ }
+
+ if (!class_exists("DOMDocument")) {
+ array_push($errors, "PHP support for DOMDocument is required, but was not found.");
+ }
+
+ if (self::get(Config::DB_TYPE) == "mysql") {
+ $bad_tables = self::check_mysql_tables();
+
+ if (count($bad_tables) > 0) {
+ $bad_tables_fmt = [];
+
+ foreach ($bad_tables as $bt) {
+ array_push($bad_tables_fmt, sprintf("%s (%s)", $bt['table_name'], $bt['engine']));
+ }
+
+ $msg = "<p>The following tables use an unsupported MySQL engine: <b>" .
+ implode(", ", $bad_tables_fmt) . "</b>.</p>";
+
+ $msg .= "<p>The only supported engine on MySQL is InnoDB. MyISAM lacks functionality to run
+ tt-rss.
+ Please backup your data (via OPML) and re-import the schema before continuing.</p>
+ <p><b>WARNING: importing the schema would mean LOSS OF ALL YOUR DATA.</b></p>";
+
+
+ array_push($errors, $msg);
+ }
+ }
+
+ if (count($errors) > 0 && php_sapi_name() != "cli") { ?>
+ <!DOCTYPE html>
+ <html>
+ <head>
+ <title>Startup failed</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <link rel="stylesheet" type="text/css" href="themes/light.css">
+ </head>
+ <body class="sanity_failed flat ttrss_utility">
+ <div class="content">
+ <h1>Startup failed</h1>
+
+ <p>Please fix errors indicated by the following messages:</p>
+
+ <?php foreach ($errors as $error) { echo self::format_error($error); } ?>
+
+ <p>You might want to check tt-rss <a target="_blank" href="https://tt-rss.org/wiki.php">wiki</a> or the
+ <a target="_blank" href="https://community.tt-rss.org/">forums</a> for more information. Please search the forums before creating new topic
+ for your question.</p>
+ </div>
+ </body>
+ </html>
+
+ <?php
+ die;
+ } else if (count($errors) > 0) {
+ echo "Please fix errors indicated by the following messages:\n\n";
+
+ foreach ($errors as $error) {
+ echo " * " . strip_tags($error)."\n";
+ }
+
+ echo "\nYou might want to check tt-rss wiki or the forums for more information.\n";
+ echo "Please search the forums before creating new topic for your question.\n";
+
+ exit(1);
+ }
+ }
+
+ private static function format_error($msg) {
+ return "<div class=\"alert alert-danger\">$msg</div>";
+ }
}
diff --git a/classes/counters.php b/classes/counters.php
index b4602825c..8a8b8bc71 100644
--- a/classes/counters.php
+++ b/classes/counters.php
@@ -21,21 +21,20 @@ class Counters {
);
}
- static private function get_cat_children($cat_id, $owner_uid) {
- $pdo = Db::pdo();
-
- $sth = $pdo->prepare("SELECT id FROM ttrss_feed_categories WHERE parent_cat = ?
- AND owner_uid = ?");
- $sth->execute([$cat_id, $owner_uid]);
-
+ static private function get_cat_children(int $cat_id, int $owner_uid) {
$unread = 0;
$marked = 0;
- while ($line = $sth->fetch()) {
- list ($tmp_unread, $tmp_marked) = self::get_cat_children($line["id"], $owner_uid);
+ $cats = ORM::for_table('ttrss_feed_categories')
+ ->where('owner_uid', $owner_uid)
+ ->where('parent_cat', $cat_id)
+ ->find_many();
+
+ foreach ($cats as $cat) {
+ list ($tmp_unread, $tmp_marked) = self::get_cat_children($cat->id, $owner_uid);
- $unread += $tmp_unread + Feeds::_get_cat_unread($line["id"], $owner_uid);
- $marked += $tmp_marked + Feeds::_get_cat_marked($line["id"], $owner_uid);
+ $unread += $tmp_unread + Feeds::_get_cat_unread($cat->id, $owner_uid);
+ $marked += $tmp_marked + Feeds::_get_cat_marked($cat->id, $owner_uid);
}
return [$unread, $marked];
@@ -178,7 +177,7 @@ class Counters {
$has_img = false;
}
- // hide default un-updated timestamp i.e. 1980-01-01 (?) -fox
+ // hide default un-updated timestamp i.e. 1970-01-01 (?) -fox
if ((int)date('Y') - (int)date('Y', strtotime($line['last_updated'])) > 2)
$last_updated = '';
@@ -200,35 +199,22 @@ class Counters {
return $ret;
}
- private static function get_global($global_unread = -1) {
- $ret = [];
-
- if ($global_unread == -1) {
- $global_unread = Feeds::_get_global_unread();
- }
-
- $cv = [
- "id" => "global-unread",
- "counter" => (int) $global_unread
+ private static function get_global() {
+ $ret = [
+ [
+ "id" => "global-unread",
+ "counter" => (int) Feeds::_get_global_unread()
+ ]
];
- array_push($ret, $cv);
-
- $pdo = Db::pdo();
-
- $sth = $pdo->prepare("SELECT COUNT(id) AS fn FROM
- ttrss_feeds WHERE owner_uid = ?");
- $sth->execute([$_SESSION['uid']]);
- $row = $sth->fetch();
+ $subcribed_feeds = ORM::for_table('ttrss_feeds')
+ ->where('owner_uid', $_SESSION['uid'])
+ ->count();
- $subscribed_feeds = $row["fn"];
-
- $cv = [
+ array_push($ret, [
"id" => "subscribed-feeds",
- "counter" => (int) $subscribed_feeds
- ];
-
- array_push($ret, $cv);
+ "counter" => $subcribed_feeds
+ ]);
return $ret;
}
diff --git a/classes/db.php b/classes/db.php
index a760d4402..008275bca 100755
--- a/classes/db.php
+++ b/classes/db.php
@@ -1,27 +1,42 @@
<?php
class Db
{
- /* @var Db $instance */
+ /** @var Db $instance */
private static $instance;
private $link;
- /* @var PDO $pdo */
+ /** @var PDO $pdo */
private $pdo;
+ function __construct() {
+ ORM::configure(self::get_dsn());
+ ORM::configure('username', Config::get(Config::DB_USER));
+ ORM::configure('password', Config::get(Config::DB_PASS));
+ ORM::configure('return_result_sets', true);
+ }
+
+ static function NOW() {
+ return date("Y-m-d H:i:s", time());
+ }
+
private function __clone() {
//
}
- // this really shouldn't be used unless a separate PDO connection is needed
- // normal usage is Db::pdo()->prepare(...) etc
- public function pdo_connect() {
-
+ public static function get_dsn() {
$db_port = Config::get(Config::DB_PORT) ? ';port=' . Config::get(Config::DB_PORT) : '';
$db_host = Config::get(Config::DB_HOST) ? ';host=' . Config::get(Config::DB_HOST) : '';
+ return Config::get(Config::DB_TYPE) . ':dbname=' . Config::get(Config::DB_NAME) . $db_host . $db_port;
+ }
+
+ // this really shouldn't be used unless a separate PDO connection is needed
+ // normal usage is Db::pdo()->prepare(...) etc
+ public function pdo_connect() : PDO {
+
try {
- $pdo = new PDO(Config::get(Config::DB_TYPE) . ':dbname=' . Config::get(Config::DB_NAME) . $db_host . $db_port,
+ $pdo = new PDO(self::get_dsn(),
Config::get(Config::DB_USER),
Config::get(Config::DB_PASS));
} catch (Exception $e) {
@@ -49,7 +64,7 @@ class Db
return $pdo;
}
- public static function instance() {
+ public static function instance() : Db {
if (self::$instance == null)
self::$instance = new self();
@@ -60,7 +75,7 @@ class Db
if (self::$instance == null)
self::$instance = new self();
- if (!self::$instance->pdo) {
+ if (empty(self::$instance->pdo)) {
self::$instance->pdo = self::$instance->pdo_connect();
}
diff --git a/classes/db/migrations.php b/classes/db/migrations.php
new file mode 100644
index 000000000..3008af535
--- /dev/null
+++ b/classes/db/migrations.php
@@ -0,0 +1,198 @@
+<?php
+class Db_Migrations {
+
+ private $base_filename = "schema.sql";
+ private $base_path;
+ private $migrations_path;
+ private $migrations_table;
+ private $base_is_latest;
+ private $pdo;
+
+ private $cached_version;
+ private $cached_max_version;
+ private $max_version_override;
+
+ function __construct() {
+ $this->pdo = Db::pdo();
+ }
+
+ function initialize_for_plugin(Plugin $plugin, bool $base_is_latest = true, string $schema_suffix = "sql") {
+ $plugin_dir = PluginHost::getInstance()->get_plugin_dir($plugin);
+ $this->initialize($plugin_dir . "/${schema_suffix}",
+ strtolower("ttrss_migrations_plugin_" . get_class($plugin)),
+ $base_is_latest);
+ }
+
+ function initialize(string $root_path, string $migrations_table, bool $base_is_latest = true, int $max_version_override = 0) {
+ $this->base_path = "$root_path/" . Config::get(Config::DB_TYPE);
+ $this->migrations_path = $this->base_path . "/migrations";
+ $this->migrations_table = $migrations_table;
+ $this->base_is_latest = $base_is_latest;
+ $this->max_version_override = $max_version_override;
+ }
+
+ private function set_version(int $version) {
+ Debug::log("Updating table {$this->migrations_table} with version ${version}...", Debug::LOG_EXTENDED);
+
+ $sth = $this->pdo->query("SELECT * FROM {$this->migrations_table}");
+
+ if ($res = $sth->fetch()) {
+ $sth = $this->pdo->prepare("UPDATE {$this->migrations_table} SET schema_version = ?");
+ } else {
+ $sth = $this->pdo->prepare("INSERT INTO {$this->migrations_table} (schema_version) VALUES (?)");
+ }
+
+ $sth->execute([$version]);
+
+ $this->cached_version = $version;
+ }
+
+ function get_version() : int {
+ if (isset($this->cached_version))
+ return $this->cached_version;
+
+ try {
+ $sth = $this->pdo->query("SELECT * FROM {$this->migrations_table}");
+
+ if ($res = $sth->fetch()) {
+ return (int) $res['schema_version'];
+ } else {
+ return -1;
+ }
+ } catch (PDOException $e) {
+ $this->create_migrations_table();
+
+ return -1;
+ }
+ }
+
+ private function create_migrations_table() {
+ $this->pdo->query("CREATE TABLE IF NOT EXISTS {$this->migrations_table} (schema_version integer not null)");
+ }
+
+ private function migrate_to(int $version) {
+ try {
+ if ($version <= $this->get_version()) {
+ Debug::log("Refusing to apply version $version: current version is higher", Debug::LOG_VERBOSE);
+ return false;
+ }
+
+ if ($version == 0)
+ Debug::log("Loading base database schema...", Debug::LOG_VERBOSE);
+ else
+ Debug::log("Starting migration to $version...", Debug::LOG_VERBOSE);
+
+ $lines = $this->get_lines($version);
+
+ if (count($lines) > 0) {
+ // mysql doesn't support transactions for DDL statements
+ if (Config::get(Config::DB_TYPE) != "mysql")
+ $this->pdo->beginTransaction();
+
+ foreach ($lines as $line) {
+ Debug::log($line, Debug::LOG_EXTENDED);
+ try {
+ $this->pdo->query($line);
+ } catch (PDOException $e) {
+ Debug::log("Failed on line: $line", Debug::LOG_VERBOSE);
+ throw $e;
+ }
+ }
+
+ if ($version == 0 && $this->base_is_latest)
+ $this->set_version($this->get_max_version());
+ else
+ $this->set_version($version);
+
+ if (Config::get(Config::DB_TYPE) != "mysql")
+ $this->pdo->commit();
+
+ Debug::log("Migration finished, current version: " . $this->get_version(), Debug::LOG_VERBOSE);
+
+ Logger::log(E_USER_NOTICE, "Applied migration to version $version for {$this->migrations_table}");
+ } else {
+ Debug::log("Migration failed: schema file is empty or missing.", Debug::LOG_VERBOSE);
+ }
+
+ } catch (PDOException $e) {
+ Debug::log("Migration failed: " . $e->getMessage(), Debug::LOG_VERBOSE);
+ try {
+ $this->pdo->rollback();
+ } catch (PDOException $ie) {
+ //
+ }
+ throw $e;
+ }
+ }
+
+ function get_max_version() : int {
+ if ($this->max_version_override > 0)
+ return $this->max_version_override;
+
+ if (isset($this->cached_max_version))
+ return $this->cached_max_version;
+
+ $migrations = glob("{$this->migrations_path}/*.sql");
+
+ if (count($migrations) > 0) {
+ natsort($migrations);
+
+ $this->cached_max_version = (int) basename(array_pop($migrations), ".sql");
+
+ } else {
+ $this->cached_max_version = 0;
+ }
+
+ return $this->cached_max_version;
+ }
+
+ function is_migration_needed() : bool {
+ return $this->get_version() != $this->get_max_version();
+ }
+
+ function migrate() : bool {
+
+ if ($this->get_version() == -1) {
+ try {
+ $this->migrate_to(0);
+ } catch (PDOException $e) {
+ user_error("Failed to load base schema for {$this->migrations_table}: " . $e->getMessage(), E_USER_WARNING);
+ return false;
+ }
+ }
+
+ for ($i = $this->get_version() + 1; $i <= $this->get_max_version(); $i++) {
+ try {
+ $this->migrate_to($i);
+ } catch (PDOException $e) {
+ user_error("Failed to apply migration ${i} for {$this->migrations_table}: " . $e->getMessage(), E_USER_WARNING);
+ return false;
+ //throw $e;
+ }
+ }
+
+ return !$this->is_migration_needed();
+ }
+
+ private function get_lines(int $version) : array {
+ if ($version > 0)
+ $filename = "{$this->migrations_path}/${version}.sql";
+ else
+ $filename = "{$this->base_path}/{$this->base_filename}";
+
+ if (file_exists($filename)) {
+ $lines = array_filter(preg_split("/[\r\n]/", file_get_contents($filename)),
+ function ($line) {
+ return strlen(trim($line)) > 0 && strpos($line, "--") !== 0;
+ });
+
+ return array_filter(explode(";", implode("", $lines)), function ($line) {
+ return strlen(trim($line)) > 0 && !in_array(strtolower($line), ["begin", "commit"]);
+ });
+
+ } else {
+ user_error("Requested schema file ${filename} not found.", E_USER_ERROR);
+ return [];
+ }
+ }
+}
diff --git a/classes/dbupdater.php b/classes/dbupdater.php
deleted file mode 100644
index d1df31b40..000000000
--- a/classes/dbupdater.php
+++ /dev/null
@@ -1,82 +0,0 @@
-<?php
-class DbUpdater {
-
- private $pdo;
- private $db_type;
- private $need_version;
-
- function __construct($pdo, $db_type, $need_version) {
- $this->pdo = $pdo;
- $this->db_type = $db_type;
- $this->need_version = (int) $need_version;
- }
-
- function get_schema_version() {
- return Config::get_schema_version(true);
- }
-
- function is_update_required() {
- return $this->get_schema_version() < $this->need_version;
- }
-
- function get_schema_lines($version) {
- $filename = "schema/versions/".$this->db_type."/$version.sql";
-
- if (file_exists($filename)) {
- return explode(";", (string)preg_replace("/[\r\n]/", "", (string)file_get_contents($filename)));
- } else {
- user_error("DB Updater: schema file for version $version is not found.");
- return false;
- }
- }
-
- function update_to($version, $html_output = true) {
- if ($this->get_schema_version() == $version - 1) {
-
- $lines = $this->get_schema_lines($version);
-
- if (is_array($lines)) {
-
- $this->pdo->beginTransaction();
-
- foreach ($lines as $line) {
- if (strpos($line, "--") !== 0 && $line) {
-
- if ($html_output)
- print "<pre>$line</pre>";
- else
- Debug::log("> $line");
-
- try {
- $this->pdo->query($line); // PDO returns errors as exceptions now
- } catch (PDOException $e) {
- if ($html_output) {
- print "<div class='text-error'>Error: " . $e->getMessage() . "</div>";
- } else {
- Debug::log("Error: " . $e->getMessage());
- }
-
- $this->pdo->rollBack();
- return false;
- }
- }
- }
-
- $db_version = $this->get_schema_version();
-
- if ($db_version == $version) {
- $this->pdo->commit();
- return true;
- } else {
- $this->pdo->rollBack();
- return false;
- }
- } else {
- return false;
- }
- } else {
- return false;
- }
- }
-
-}
diff --git a/classes/debug.php b/classes/debug.php
index 3061c6893..2ae81e41a 100644
--- a/classes/debug.php
+++ b/classes/debug.php
@@ -1,14 +1,26 @@
<?php
class Debug {
- public static $LOG_DISABLED = -1;
- public static $LOG_NORMAL = 0;
- public static $LOG_VERBOSE = 1;
- public static $LOG_EXTENDED = 2;
+ const LOG_DISABLED = -1;
+ const LOG_NORMAL = 0;
+ const LOG_VERBOSE = 1;
+ const LOG_EXTENDED = 2;
+
+ /** @deprecated */
+ public static $LOG_DISABLED = self::LOG_DISABLED;
+
+ /** @deprecated */
+ public static $LOG_NORMAL = self::LOG_NORMAL;
+
+ /** @deprecated */
+ public static $LOG_VERBOSE = self::LOG_VERBOSE;
+
+ /** @deprecated */
+ public static $LOG_EXTENDED = self::LOG_EXTENDED;
private static $enabled = false;
private static $quiet = false;
private static $logfile = false;
- private static $loglevel = 0;
+ private static $loglevel = self::LOG_NORMAL;
public static function set_logfile($logfile) {
self::$logfile = $logfile;
@@ -34,7 +46,7 @@ class Debug {
return self::$loglevel;
}
- public static function log($message, $level = 0) {
+ public static function log($message, int $level = 0) {
if (!self::$enabled || self::$loglevel < $level) return false;
diff --git a/classes/digest.php b/classes/digest.php
index 26ca5221f..94e5cd1fc 100644
--- a/classes/digest.php
+++ b/classes/digest.php
@@ -78,7 +78,7 @@ class Digest
Debug::log("All done.");
}
- static function prepare_headlines_digest($user_id, $days = 1, $limit = 1000) {
+ static function prepare_headlines_digest(int $user_id, int $days = 1, int $limit = 1000) {
$tpl = new Templator();
$tpl_t = new Templator();
@@ -87,20 +87,22 @@ class Digest
$tpl_t->readTemplateFromFile("digest_template.txt");
$user_tz_string = get_pref(Prefs::USER_TIMEZONE, $user_id);
+
+ if ($user_tz_string == 'Automatic')
+ $user_tz_string = 'GMT';
+
$local_ts = TimeHelper::convert_timestamp(time(), 'UTC', $user_tz_string);
$tpl->setVariable('CUR_DATE', date('Y/m/d', $local_ts));
$tpl->setVariable('CUR_TIME', date('G:i', $local_ts));
- $tpl->setVariable('TTRSS_HOST', Config::get(Config::get(Config::SELF_URL_PATH)));
+ $tpl->setVariable('TTRSS_HOST', Config::get(Config::SELF_URL_PATH));
$tpl_t->setVariable('CUR_DATE', date('Y/m/d', $local_ts));
$tpl_t->setVariable('CUR_TIME', date('G:i', $local_ts));
- $tpl_t->setVariable('TTRSS_HOST', Config::get(Config::get(Config::SELF_URL_PATH)));
+ $tpl_t->setVariable('TTRSS_HOST', Config::get(Config::SELF_URL_PATH));
$affected_ids = array();
- $days = (int) $days;
-
if (Config::get(Config::DB_TYPE) == "pgsql") {
$interval_qpart = "ttrss_entries.date_updated > NOW() - INTERVAL '$days days'";
} else /* if (Config::get(Config::DB_TYPE) == "mysql") */ {
@@ -117,7 +119,7 @@ class Digest
link,
score,
content,
- " . SUBSTRING_FOR_DATE . "(last_updated,1,19) AS last_updated
+ ".SUBSTRING_FOR_DATE."(last_updated,1,19) AS last_updated
FROM
ttrss_user_entries,ttrss_entries,ttrss_feeds
LEFT JOIN
@@ -130,10 +132,8 @@ class Digest
AND unread = true
AND score >= 0
ORDER BY ttrss_feed_categories.title, ttrss_feeds.title, score DESC, date_updated DESC
- LIMIT :limit");
- $sth->bindParam(':user_id', intval($user_id, 10), PDO::PARAM_INT);
- $sth->bindParam(':limit', intval($limit, 10), PDO::PARAM_INT);
- $sth->execute();
+ LIMIT " . (int)$limit);
+ $sth->execute([':user_id' => $user_id]);
$headlines_count = 0;
$headlines = array();
diff --git a/classes/diskcache.php b/classes/diskcache.php
index 9c594acc5..d7ea26d3b 100644
--- a/classes/diskcache.php
+++ b/classes/diskcache.php
@@ -273,7 +273,7 @@ class DiskCache {
}
public function get_url($filename) {
- return get_self_url_prefix() . "/public.php?op=cached&file=" . basename($this->dir) . "/" . basename($filename);
+ return Config::get_self_url() . "/public.php?op=cached&file=" . basename($this->dir) . "/" . basename($filename);
}
// check for locally cached (media) URLs and rewrite to local versions
diff --git a/classes/errors.php b/classes/errors.php
index be175418e..3599c2639 100644
--- a/classes/errors.php
+++ b/classes/errors.php
@@ -5,8 +5,9 @@ class Errors {
const E_UNKNOWN_METHOD = "E_UNKNOWN_METHOD";
const E_UNKNOWN_PLUGIN = "E_UNKNOWN_PLUGIN";
const E_SCHEMA_MISMATCH = "E_SCHEMA_MISMATCH";
+ const E_URL_SCHEME_MISMATCH = "E_URL_SCHEME_MISMATCH";
- static function to_json(string $code) {
- return json_encode(["error" => ["code" => $code]]);
+ static function to_json(string $code, array $params = []) {
+ return json_encode(["error" => ["code" => $code, "params" => $params]]);
}
}
diff --git a/classes/feeditem.php b/classes/feeditem.php
index e30df3086..3a5e5dc09 100644
--- a/classes/feeditem.php
+++ b/classes/feeditem.php
@@ -9,7 +9,7 @@ abstract class FeedItem {
abstract function get_comments_url();
abstract function get_comments_count();
abstract function get_categories();
- abstract function _get_enclosures();
+ abstract function get_enclosures();
abstract function get_author();
abstract function get_language();
}
diff --git a/classes/feeditem/atom.php b/classes/feeditem/atom.php
index 3e092a048..a03080981 100755
--- a/classes/feeditem/atom.php
+++ b/classes/feeditem/atom.php
@@ -119,7 +119,7 @@ class FeedItem_Atom extends FeedItem_Common {
return $this->normalize_categories($cats);
}
- function _get_enclosures() {
+ function get_enclosures() {
$links = $this->elem->getElementsByTagName("link");
$encs = array();
@@ -138,7 +138,7 @@ class FeedItem_Atom extends FeedItem_Common {
}
}
- $encs = array_merge($encs, parent::_get_enclosures());
+ $encs = array_merge($encs, parent::get_enclosures());
return $encs;
}
diff --git a/classes/feeditem/common.php b/classes/feeditem/common.php
index 8f2b9188b..18afeaa94 100755
--- a/classes/feeditem/common.php
+++ b/classes/feeditem/common.php
@@ -78,7 +78,7 @@ abstract class FeedItem_Common extends FeedItem {
}
// this is common for both Atom and RSS types and deals with various media: elements
- function _get_enclosures() {
+ function get_enclosures() {
$encs = [];
$enclosures = $this->xpath->query("media:content", $this->elem);
diff --git a/classes/feeditem/rss.php b/classes/feeditem/rss.php
index f103ad787..1f7953c51 100755
--- a/classes/feeditem/rss.php
+++ b/classes/feeditem/rss.php
@@ -112,7 +112,7 @@ class FeedItem_RSS extends FeedItem_Common {
return $this->normalize_categories($cats);
}
- function _get_enclosures() {
+ function get_enclosures() {
$enclosures = $this->elem->getElementsByTagName("enclosure");
$encs = array();
@@ -129,7 +129,7 @@ class FeedItem_RSS extends FeedItem_Common {
array_push($encs, $enc);
}
- $encs = array_merge($encs, parent::_get_enclosures());
+ $encs = array_merge($encs, parent::get_enclosures());
return $encs;
}
diff --git a/classes/feeds.php b/classes/feeds.php
index b1b19500f..68d535481 100755
--- a/classes/feeds.php
+++ b/classes/feeds.php
@@ -200,17 +200,21 @@ class Feeds extends Handler_Protected {
$feed_id = $line["feed_id"];
- $label_cache = $line["label_cache"];
- $labels = false;
-
- if ($label_cache) {
- $label_cache = json_decode($label_cache, true);
+ if ($line["num_labels"] > 0) {
+ $label_cache = $line["label_cache"];
+ $labels = false;
if ($label_cache) {
- if ($label_cache["no-labels"] ?? false == 1)
- $labels = [];
- else
- $labels = $label_cache;
+ $label_cache = json_decode($label_cache, true);
+
+ if ($label_cache) {
+ if ($label_cache["no-labels"] ?? 0 == 1)
+ $labels = [];
+ else
+ $labels = $label_cache;
+ }
+ } else {
+ $labels = Article::_get_labels($id);
}
$line["labels"] = $labels;
@@ -218,10 +222,6 @@ class Feeds extends Handler_Protected {
$line["labels"] = [];
}
- /*if (!is_array($labels)) $labels = Article::_get_labels($id);
-
- $line["labels"] = Article::_get_labels($id);*/
-
if (count($topmost_article_ids) < 3) {
array_push($topmost_article_ids, $id);
}
@@ -251,21 +251,6 @@ class Feeds extends Handler_Protected {
$this->_mark_timestamp(" sanitize");
- PluginHost::getInstance()->chain_hooks_callback(PluginHost::HOOK_RENDER_ARTICLE_CDM,
- function ($result, $plugin) use (&$line) {
- $line = $result;
- $this->_mark_timestamp(" hook_render_cdm: " . get_class($plugin));
- },
- $line);
-
- $this->_mark_timestamp(" hook_render_cdm");
-
- $line['content'] = DiskCache::rewrite_urls($line['content']);
-
- $this->_mark_timestamp(" disk_cache_rewrite");
-
- $this->_mark_timestamp(" note");
-
if (!get_pref(Prefs::CDM_EXPANDED)) {
$line["cdm_excerpt"] = "<span class='collapse'>
<i class='material-icons' onclick='return Article.cdmUnsetActive(event)'
@@ -330,6 +315,20 @@ class Feeds extends Handler_Protected {
}
$this->_mark_timestamp(" color");
+ $this->_mark_timestamp(" pre-hook_render_cdm");
+
+ PluginHost::getInstance()->chain_hooks_callback(PluginHost::HOOK_RENDER_ARTICLE_CDM,
+ function ($result, $plugin) use (&$line) {
+ $line = $result;
+ $this->_mark_timestamp(" hook: " . get_class($plugin));
+ },
+ $line);
+
+ $this->_mark_timestamp(" hook_render_cdm");
+
+ $line['content'] = DiskCache::rewrite_urls($line['content']);
+
+ $this->_mark_timestamp(" disk_cache_rewrite");
/* we don't need those */
@@ -474,8 +473,9 @@ class Feeds extends Handler_Protected {
/* bump login timestamp if needed */
if (time() - $_SESSION["last_login_update"] > 3600) {
- $sth = $this->pdo->prepare("UPDATE ttrss_users SET last_login = NOW() WHERE id = ?");
- $sth->execute([$_SESSION['uid']]);
+ $user = ORM::for_table('ttrss_users')->find_one($_SESSION["uid"]);
+ $user->last_login = Db::NOW();
+ $user->save();
$_SESSION["last_login_update"] = time();
}
@@ -963,7 +963,7 @@ class Feeds extends Handler_Protected {
function add() {
$feed = clean($_REQUEST['feed']);
- $cat = clean($_REQUEST['cat']);
+ $cat = clean($_REQUEST['cat'] ?? '');
$need_auth = isset($_REQUEST['need_auth']);
$login = $need_auth ? clean($_REQUEST['login']) : '';
$pass = $need_auth ? clean($_REQUEST['pass']) : '';
@@ -985,21 +985,18 @@ class Feeds extends Handler_Protected {
* to get all possible feeds.
* 5 - Couldn't download the URL content.
* 6 - Content is an invalid XML.
+ * 7 - Error while creating feed database entry.
*/
static function _subscribe($url, $cat_id = 0,
- $auth_login = '', $auth_pass = '') {
-
- global $fetch_last_error;
- global $fetch_last_error_content;
- global $fetch_last_content_type;
+ $auth_login = '', $auth_pass = '') : array {
$pdo = Db::pdo();
$url = UrlHelper::validate($url);
- if (!$url) return array("code" => 2);
+ if (!$url) return ["code" => 2];
- $contents = @UrlHelper::fetch($url, false, $auth_login, $auth_pass);
+ $contents = UrlHelper::fetch($url, false, $auth_login, $auth_pass);
PluginHost::getInstance()->chain_hooks_callback(PluginHost::HOOK_SUBSCRIBE_FEED,
function ($result) use (&$contents) {
@@ -1008,14 +1005,14 @@ class Feeds extends Handler_Protected {
$contents, $url, $auth_login, $auth_pass);
if (empty($contents)) {
- if (preg_match("/cloudflare\.com/", $fetch_last_error_content)) {
- $fetch_last_error .= " (feed behind Cloudflare)";
+ if (preg_match("/cloudflare\.com/", UrlHelper::$fetch_last_error_content)) {
+ UrlHelper::$fetch_last_error .= " (feed behind Cloudflare)";
}
- return array("code" => 5, "message" => $fetch_last_error);
+ return array("code" => 5, "message" => UrlHelper::$fetch_last_error);
}
- if (mb_strpos($fetch_last_content_type, "html") !== false && self::_is_html($contents)) {
+ if (mb_strpos(UrlHelper::$fetch_last_content_type, "html") !== false && self::_is_html($contents)) {
$feedUrls = self::_get_feeds_from_html($url, $contents);
if (count($feedUrls) == 0) {
@@ -1027,35 +1024,33 @@ class Feeds extends Handler_Protected {
$url = key($feedUrls);
}
- if (!$cat_id) $cat_id = null;
+ $feed = ORM::for_table('ttrss_feeds')
+ ->where('feed_url', $url)
+ ->where('owner_uid', $_SESSION['uid'])
+ ->find_one();
- $sth = $pdo->prepare("SELECT id FROM ttrss_feeds
- WHERE feed_url = ? AND owner_uid = ?");
- $sth->execute([$url, $_SESSION['uid']]);
-
- if ($row = $sth->fetch()) {
- return array("code" => 0, "feed_id" => (int) $row["id"]);
+ if ($feed) {
+ return ["code" => 0, "feed_id" => $feed->id];
} else {
- $sth = $pdo->prepare(
- "INSERT INTO ttrss_feeds
- (owner_uid,feed_url,title,cat_id, auth_login,auth_pass,update_method,auth_pass_encrypted)
- VALUES (?, ?, ?, ?, ?, ?, 0, false)");
-
- $sth->execute([$_SESSION['uid'], $url, "[Unknown]", $cat_id, (string)$auth_login, (string)$auth_pass]);
-
- $sth = $pdo->prepare("SELECT id FROM ttrss_feeds WHERE feed_url = ?
- AND owner_uid = ?");
- $sth->execute([$url, $_SESSION['uid']]);
- $row = $sth->fetch();
-
- $feed_id = $row["id"];
-
- if ($feed_id) {
- RSSUtils::set_basic_feed_info($feed_id);
+ $feed = ORM::for_table('ttrss_feeds')->create();
+
+ $feed->set([
+ 'owner_uid' => $_SESSION['uid'],
+ 'feed_url' => $url,
+ 'title' => "[Unknown]",
+ 'cat_id' => $cat_id ? $cat_id : null,
+ 'auth_login' => (string)$auth_login,
+ 'auth_pass' => (string)$auth_pass,
+ 'update_method' => 0,
+ 'auth_pass_encrypted' => false,
+ ]);
+
+ if ($feed->save()) {
+ RSSUtils::update_basic_info($feed->id);
+ return ["code" => 1, "feed_id" => (int) $feed->id];
}
- return array("code" => 1, "feed_id" => (int) $feed_id);
-
+ return ["code" => 7];
}
}
@@ -1097,19 +1092,20 @@ class Feeds extends Handler_Protected {
return false;
}
- static function _find_by_url($feed_url, $owner_uid) {
- $sth = Db::pdo()->prepare("SELECT id FROM ttrss_feeds WHERE
- feed_url = ? AND owner_uid = ?");
- $sth->execute([$feed_url, $owner_uid]);
+ static function _find_by_url(string $feed_url, int $owner_uid) {
+ $feed = ORM::for_table('ttrss_feeds')
+ ->where('owner_uid', $owner_uid)
+ ->where('feed_url', $feed_url)
+ ->find_one();
- if ($row = $sth->fetch()) {
- return $row["id"];
+ if ($feed) {
+ return $feed->id;
+ } else {
+ return false;
}
-
- return false;
}
- static function _get_title($id, $cat = false) {
+ static function _get_title($id, bool $cat = false) {
$pdo = Db::pdo();
if ($cat) {
@@ -1156,7 +1152,7 @@ class Feeds extends Handler_Protected {
}
// only real cats
- static function _get_cat_marked($cat, $owner_uid = false) {
+ static function _get_cat_marked(int $cat, int $owner_uid = 0) {
if (!$owner_uid) $owner_uid = $_SESSION["uid"];
@@ -1179,7 +1175,7 @@ class Feeds extends Handler_Protected {
}
}
- static function _get_cat_unread($cat, $owner_uid = false) {
+ static function _get_cat_unread(int $cat, int $owner_uid = 0) {
if (!$owner_uid) $owner_uid = $_SESSION["uid"];
@@ -1213,7 +1209,7 @@ class Feeds extends Handler_Protected {
}
// only accepts real cats (>= 0)
- static function _get_cat_children_unread($cat, $owner_uid = false) {
+ static function _get_cat_children_unread(int $cat, int $owner_uid = 0) {
if (!$owner_uid) $owner_uid = $_SESSION["uid"];
$pdo = Db::pdo();
@@ -1232,7 +1228,7 @@ class Feeds extends Handler_Protected {
return $unread;
}
- static function _get_global_unread($user_id = false) {
+ static function _get_global_unread(int $user_id = 0) {
if (!$user_id) $user_id = $_SESSION["uid"];
@@ -1248,29 +1244,27 @@ class Feeds extends Handler_Protected {
return $row["count"];
}
- static function _get_cat_title($cat_id) {
-
- if ($cat_id == -1) {
- return __("Special");
- } else if ($cat_id == -2) {
- return __("Labels");
- } else {
-
- $pdo = Db::pdo();
-
- $sth = $pdo->prepare("SELECT title FROM ttrss_feed_categories WHERE
- id = ?");
- $sth->execute([$cat_id]);
-
- if ($row = $sth->fetch()) {
- return $row["title"];
- } else {
+ static function _get_cat_title(int $cat_id) {
+ switch ($cat_id) {
+ case 0:
return __("Uncategorized");
- }
+ case -1:
+ return __("Special");
+ case -2:
+ return __("Labels");
+ default:
+ $cat = ORM::for_table('ttrss_feed_categories')
+ ->find_one($cat_id);
+
+ if ($cat) {
+ return $cat->title;
+ } else {
+ return "UNKNOWN";
+ }
}
}
- private static function _get_label_unread($label_id, $owner_uid = false) {
+ private static function _get_label_unread($label_id, int $owner_uid = 0) {
if (!$owner_uid) $owner_uid = $_SESSION["uid"];
$pdo = Db::pdo();
@@ -1574,6 +1568,12 @@ class Feeds extends Handler_Protected {
$first_id = 0;
+ if (Config::get(Config::DB_TYPE) == "pgsql") {
+ $yyiw_qpart = "to_char(date_entered, 'IYYY-IW') AS yyiw";
+ } else {
+ $yyiw_qpart = "date_format(date_entered, '%Y-%u') AS yyiw";
+ }
+
if (is_numeric($feed)) {
// proper override_order applied above
if ($vfeed_query_part && !$ignore_vfeed_group && get_pref(Prefs::VFEED_GROUP_BY_FEED, $owner_uid)) {
@@ -1611,18 +1611,16 @@ class Feeds extends Handler_Protected {
if (Config::get(Config::DB_TYPE) == "pgsql") {
$sanity_interval_qpart = "date_entered >= NOW() - INTERVAL '1 hour' AND";
- $yyiw_qpart = "to_char(date_entered, 'IYYY-IW') AS yyiw";
$distinct_columns = str_replace("desc", "", strtolower($order_by));
$distinct_qpart = "DISTINCT ON (id, $distinct_columns)";
} else {
$sanity_interval_qpart = "date_entered >= DATE_SUB(NOW(), INTERVAL 1 hour) AND";
- $yyiw_qpart = "date_format(date_entered, '%Y-%u') AS yyiw";
$distinct_qpart = "DISTINCT"; //fallback
}
// except for Labels category
- if (get_pref(Prefs::HEADLINES_NO_DISTINCT) && !($feed == -2 && $cat_view)) {
+ if (get_pref(Prefs::HEADLINES_NO_DISTINCT, $owner_uid) && !($feed == -2 && $cat_view)) {
$distinct_qpart = "";
}
@@ -1691,6 +1689,7 @@ class Feeds extends Handler_Protected {
$vfeed_query_part
$content_query_part
author,score,
+ (SELECT count(label_id) FROM ttrss_user_labels2 WHERE article_id = ttrss_entries.id) AS num_labels,
(SELECT count(id) FROM ttrss_enclosures WHERE post_id = ttrss_entries.id) AS num_enclosures
FROM
$from_qpart
@@ -1715,41 +1714,46 @@ class Feeds extends Handler_Protected {
} else {
// browsing by tag
- if (Config::get(Config::DB_TYPE) == "pgsql") {
- $distinct_columns = str_replace("desc", "", strtolower($order_by));
- $distinct_qpart = "DISTINCT ON (id, $distinct_columns)";
+ if (get_pref(Prefs::HEADLINES_NO_DISTINCT, $owner_uid)) {
+ $distinct_qpart = "";
} else {
- $distinct_qpart = "DISTINCT"; //fallback
+ if (Config::get(Config::DB_TYPE) == "pgsql") {
+ $distinct_columns = str_replace("desc", "", strtolower($order_by));
+ $distinct_qpart = "DISTINCT ON (id, $distinct_columns)";
+ } else {
+ $distinct_qpart = "DISTINCT"; //fallback
+ }
}
$query = "SELECT $distinct_qpart
+ ttrss_entries.id AS id,
date_entered,
+ $yyiw_qpart,
guid,
- note,
- ttrss_entries.id as id,
- title,
+ ttrss_entries.title,
updated,
- unread,
- feed_id,
- marked,
- published,
+ label_cache,
+ tag_cache,
+ always_display_enclosures,
+ site_url,
+ note,
num_comments,
comments,
int_id,
- tag_cache,
- label_cache,
- link,
- lang,
uuid,
- last_read,
- (SELECT hide_images FROM ttrss_feeds WHERE id = feed_id) AS hide_images,
+ lang,
+ hide_images,
+ unread,feed_id,marked,published,link,last_read,
last_marked, last_published,
$since_id_part
$vfeed_query_part
$content_query_part
- author, score
- FROM ttrss_entries, ttrss_user_entries, ttrss_tags
+ author, score,
+ (SELECT count(label_id) FROM ttrss_user_labels2 WHERE article_id = ttrss_entries.id) AS num_labels,
+ (SELECT count(id) FROM ttrss_enclosures WHERE post_id = ttrss_entries.id) AS num_enclosures
+ FROM ttrss_entries, ttrss_user_entries, ttrss_tags, ttrss_feeds
WHERE
+ ttrss_feeds.id = ttrss_user_entries.feed_id AND
ref_id = ttrss_entries.id AND
ttrss_user_entries.owner_uid = ".$pdo->quote($owner_uid)." AND
post_int_id = int_id AND
@@ -1773,7 +1777,7 @@ class Feeds extends Handler_Protected {
}
- static function _get_parent_cats($cat, $owner_uid) {
+ static function _get_parent_cats(int $cat, int $owner_uid) {
$rv = array();
$pdo = Db::pdo();
@@ -1790,7 +1794,7 @@ class Feeds extends Handler_Protected {
return $rv;
}
- static function _get_child_cats($cat, $owner_uid) {
+ static function _get_child_cats(int $cat, int $owner_uid) {
$rv = array();
$pdo = Db::pdo();
@@ -1835,19 +1839,15 @@ class Feeds extends Handler_Protected {
return $rv;
}
- static function _cat_of_feed($feed) {
- $pdo = Db::pdo();
-
- $sth = $pdo->prepare("SELECT cat_id FROM ttrss_feeds
- WHERE id = ?");
- $sth->execute([$feed]);
+ // returns Uncategorized as 0
+ static function _cat_of(int $feed) : int {
+ $feed = ORM::for_table('ttrss_feeds')->find_one($feed);
- if ($row = $sth->fetch()) {
- return $row["cat_id"];
+ if ($feed) {
+ return (int)$feed->cat_id;
} else {
- return false;
+ return -1;
}
-
}
private function _color_of($name) {
@@ -1898,80 +1898,79 @@ class Feeds extends Handler_Protected {
return preg_match("/<html|DOCTYPE html/i", substr($content, 0, 8192)) !== 0;
}
- static function _add_cat($feed_cat, $parent_cat_id = false, $order_id = 0) {
+ static function _remove_cat(int $id, int $owner_uid) {
+ $cat = ORM::for_table('ttrss_feed_categories')
+ ->where('owner_uid', $owner_uid)
+ ->find_one($id);
- if (!$feed_cat) return false;
-
- $feed_cat = mb_substr($feed_cat, 0, 250);
- if (!$parent_cat_id) $parent_cat_id = null;
-
- $pdo = Db::pdo();
- $tr_in_progress = false;
-
- try {
- $pdo->beginTransaction();
- } catch (Exception $e) {
- $tr_in_progress = true;
- }
+ if ($cat)
+ $cat->delete();
+ }
- $sth = $pdo->prepare("SELECT id FROM ttrss_feed_categories
- WHERE (parent_cat = :parent OR (:parent IS NULL AND parent_cat IS NULL))
- AND title = :title AND owner_uid = :uid");
- $sth->execute([':parent' => $parent_cat_id, ':title' => $feed_cat, ':uid' => $_SESSION['uid']]);
+ static function _add_cat(string $title, int $owner_uid, int $parent_cat = null, int $order_id = 0) {
- if (!$sth->fetch()) {
+ $cat = ORM::for_table('ttrss_feed_categories')
+ ->where('owner_uid', $owner_uid)
+ ->where('parent_cat', $parent_cat)
+ ->where('title', $title)
+ ->find_one();
- $sth = $pdo->prepare("INSERT INTO ttrss_feed_categories (owner_uid,title,parent_cat,order_id)
- VALUES (?, ?, ?, ?)");
- $sth->execute([$_SESSION['uid'], $feed_cat, $parent_cat_id, (int)$order_id]);
+ if (!$cat) {
+ $cat = ORM::for_table('ttrss_feed_categories')->create();
- if (!$tr_in_progress) $pdo->commit();
+ $cat->set([
+ 'owner_uid' => $owner_uid,
+ 'parent_cat' => $parent_cat,
+ 'order_id' => $order_id,
+ 'title' => $title,
+ ]);
- return true;
+ return $cat->save();
}
- $pdo->commit();
-
return false;
}
- static function _get_access_key($feed_id, $is_cat, $owner_uid = false) {
-
- if (!$owner_uid) $owner_uid = $_SESSION["uid"];
+ static function _clear_access_keys(int $owner_uid) {
+ $key = ORM::for_table('ttrss_access_keys')
+ ->where('owner_uid', $owner_uid)
+ ->delete_many();
+ }
- $is_cat = bool_to_sql_bool($is_cat);
+ static function _update_access_key(string $feed_id, bool $is_cat, int $owner_uid) {
+ $key = ORM::for_table('ttrss_access_keys')
+ ->where('owner_uid', $owner_uid)
+ ->where('feed_id', $feed_id)
+ ->where('is_cat', $is_cat)
+ ->delete_many();
- $pdo = Db::pdo();
+ return self::_get_access_key($feed_id, $is_cat, $owner_uid);
+ }
- $sth = $pdo->prepare("SELECT access_key FROM ttrss_access_keys
- WHERE feed_id = ? AND is_cat = ?
- AND owner_uid = ?");
- $sth->execute([$feed_id, $is_cat, $owner_uid]);
+ static function _get_access_key(string $feed_id, bool $is_cat, int $owner_uid) {
+ $key = ORM::for_table('ttrss_access_keys')
+ ->where('owner_uid', $owner_uid)
+ ->where('feed_id', $feed_id)
+ ->where('is_cat', $is_cat)
+ ->find_one();
- if ($row = $sth->fetch()) {
- return $row["access_key"];
+ if ($key) {
+ return $key->access_key;
} else {
- $key = uniqid_short();
-
- $sth = $pdo->prepare("INSERT INTO ttrss_access_keys
- (access_key, feed_id, is_cat, owner_uid)
- VALUES (?, ?, ?, ?)");
+ $key = ORM::for_table('ttrss_access_keys')->create();
- $sth->execute([$key, $feed_id, $is_cat, $owner_uid]);
+ $key->owner_uid = $owner_uid;
+ $key->feed_id = $feed_id;
+ $key->is_cat = $is_cat;
+ $key->access_key = uniqid_short();
- return $key;
+ if ($key->save()) {
+ return $key->access_key;
+ }
}
}
- /**
- * Purge a feed old posts.
- *
- * @param mixed $feed_id The id of the purged feed.
- * @param mixed $purge_interval Olderness of purged posts.
- * @access public
- * @return mixed
- */
- static function _purge($feed_id, $purge_interval) {
+ static function _purge(int $feed_id, int $purge_interval) {
if (!$purge_interval) $purge_interval = self::_get_purge_interval($feed_id);
@@ -2041,22 +2040,14 @@ class Feeds extends Handler_Protected {
return $rows_deleted;
}
- private static function _get_purge_interval($feed_id) {
-
- $pdo = Db::pdo();
+ private static function _get_purge_interval(int $feed_id) {
+ $feed = ORM::for_table('ttrss_feeds')->find_one($feed_id);
- $sth = $pdo->prepare("SELECT purge_interval, owner_uid FROM ttrss_feeds
- WHERE id = ?");
- $sth->execute([$feed_id]);
-
- if ($row = $sth->fetch()) {
- $purge_interval = $row["purge_interval"];
- $owner_uid = $row["owner_uid"];
-
- if ($purge_interval == 0)
- $purge_interval = get_pref(Prefs::PURGE_OLD_DAYS, $owner_uid);
-
- return $purge_interval;
+ if ($feed) {
+ if ($feed->purge_interval != 0)
+ return $feed->purge_interval;
+ else
+ return get_pref(Prefs::PURGE_OLD_DAYS, $feed->owner_uid);
} else {
return -1;
}
diff --git a/classes/handler/public.php b/classes/handler/public.php
index e4572382e..2de073cc2 100755
--- a/classes/handler/public.php
+++ b/classes/handler/public.php
@@ -1,9 +1,10 @@
<?php
class Handler_Public extends Handler {
- private function generate_syndicated_feed($owner_uid, $feed, $is_cat,
- $limit, $offset, $search,
- $view_mode = false, $format = 'atom', $order = false, $orig_guid = false, $start_ts = false) {
+ // $feed may be a tag
+ private function generate_syndicated_feed(int $owner_uid, string $feed, bool $is_cat,
+ int $limit, int $offset, string $search, string $view_mode = "",
+ string $format = 'atom', string $order = "", string $orig_guid = "", string $start_ts = "") {
$note_style = "background-color : #fff7d5;
border-width : 1px; ".
@@ -48,10 +49,10 @@ class Handler_Public extends Handler {
//$tmppluginhost->load_data();
$handler = $tmppluginhost->get_feed_handler(
- PluginHost::feed_to_pfeed_id($feed));
+ PluginHost::feed_to_pfeed_id((int)$feed));
if ($handler) {
- $qfh_ret = $handler->get_headlines(PluginHost::feed_to_pfeed_id($feed), $params);
+ $qfh_ret = $handler->get_headlines(PluginHost::feed_to_pfeed_id((int)$feed), $params);
}
} else {
@@ -63,7 +64,7 @@ class Handler_Public extends Handler {
$feed_site_url = $qfh_ret[2];
/* $last_error = $qfh_ret[3]; */
- $feed_self_url = get_self_url_prefix() .
+ $feed_self_url = Config::get_self_url() .
"/public.php?op=rss&id=$feed&key=" .
Feeds::_get_access_key($feed, false, $owner_uid);
@@ -75,7 +76,7 @@ class Handler_Public extends Handler {
$tpl->readTemplateFromFile("generated_feed.txt");
$tpl->setVariable('FEED_TITLE', $feed_title, true);
- $tpl->setVariable('VERSION', get_version(), true);
+ $tpl->setVariable('VERSION', Config::get_version(), true);
$tpl->setVariable('FEED_URL', htmlspecialchars($feed_self_url), true);
$tpl->setVariable('SELF_URL', htmlspecialchars(get_self_url_prefix()), true);
@@ -151,7 +152,7 @@ class Handler_Public extends Handler {
$tpl->setVariable('ARTICLE_ENCLOSURE_LENGTH', "", true);
}
- list ($og_image, $og_stream) = Article::_get_image($enclosures, $line['content'], $feed_site_url);
+ list ($og_image, $og_stream) = Article::_get_image($enclosures, $line['content'], $feed_site_url, $line);
$tpl->setVariable('ARTICLE_OG_IMAGE', $og_image, true);
@@ -176,10 +177,8 @@ class Handler_Public extends Handler {
$feed['title'] = $feed_title;
$feed['feed_url'] = $feed_self_url;
-
- $feed['self_url'] = get_self_url_prefix();
-
- $feed['articles'] = array();
+ $feed['self_url'] = Config::get_self_url();
+ $feed['articles'] = [];
while ($line = $result->fetch()) {
@@ -304,7 +303,7 @@ class Handler_Public extends Handler {
$search = clean($_REQUEST["q"] ?? "");
$view_mode = clean($_REQUEST["view-mode"] ?? "");
$order = clean($_REQUEST["order"] ?? "");
- $start_ts = (int)clean($_REQUEST["ts"] ?? 0);
+ $start_ts = clean($_REQUEST["ts"] ?? "");
$format = clean($_REQUEST['format'] ?? "atom");
$orig_guid = clean($_REQUEST["orig_guid"] ?? false);
@@ -402,7 +401,7 @@ class Handler_Public extends Handler {
if ($_REQUEST['return'] && mb_strpos($return, Config::get(Config::SELF_URL_PATH)) === 0) {
header("Location: " . clean($_REQUEST['return']));
} else {
- header("Location: " . get_self_url_prefix());
+ header("Location: " . Config::get_self_url());
}
}
}
@@ -624,33 +623,57 @@ class Handler_Public extends Handler {
<!DOCTYPE html>
<html>
<head>
- <title>Database Updater</title>
+ <title>Tiny Tiny RSS: Database Updater</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <?= stylesheet_tag("themes/light.css") ?>
- <link rel="shortcut icon" type="image/png" href="images/favicon.png">
<link rel="icon" type="image/png" sizes="72x72" href="images/favicon-72px.png">
+ <link rel="shortcut icon" type="image/png" href="images/favicon.png">
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<?php
- echo stylesheet_tag("themes/light.css");
- echo javascript_tag("lib/dojo/dojo.js");
- echo javascript_tag("lib/dojo/tt-rss-layer.js");
- ?>
+ foreach (["lib/dojo/dojo.js",
+ "lib/dojo/tt-rss-layer.js",
+ "js/common.js",
+ "js/utility.js"] as $jsfile) {
+
+ echo javascript_tag($jsfile);
+
+ } ?>
+
+ <?php if (theme_exists(Config::get(Config::LOCAL_OVERRIDE_STYLESHEET))) {
+ echo stylesheet_tag(get_theme_path(Config::get(Config::LOCAL_OVERRIDE_STYLESHEET)));
+ } ?>
+
<style type="text/css">
- span.ok { color : #009000; font-weight : bold; }
- span.err { color : #ff0000; font-weight : bold; }
+ @media (prefers-color-scheme: dark) {
+ body {
+ background : #303030;
+ }
+ }
+
+ body.css_loading * {
+ display : none;
+ }
</style>
+
+ <script type="text/javascript">
+ require({cache:{}});
+ </script>
</head>
- <body class="flat ttrss_utility">
+ <body class="flat ttrss_utility css_loading">
<script type="text/javascript">
- require(['dojo/parser', "dojo/ready", 'dijit/form/Button','dijit/form/CheckBox', 'dijit/form/Form',
- 'dijit/form/Select','dijit/form/TextBox','dijit/form/ValidationTextBox'],function(parser, ready){
- ready(function() {
- parser.parse();
- });
- });
-
- function confirmOP() {
- return confirm("Update the database?");
+ const UtilityApp = {
+ init: function() {
+ require(['dojo/parser', "dojo/ready", 'dijit/form/Button','dijit/form/CheckBox', 'dijit/form/Form',
+ 'dijit/form/Select','dijit/form/TextBox','dijit/form/ValidationTextBox'],function(parser, ready){
+ ready(function() {
+ parser.parse();
+ });
+ });
+ }
+ }
+
+ function confirmDbUpdate() {
+ return confirm(__("Proceed with update?"));
}
</script>
@@ -661,72 +684,66 @@ class Handler_Public extends Handler {
<?php
@$op = clean($_REQUEST["subop"] ?? "");
- $updater = new DbUpdater(Db::pdo(), Config::get(Config::DB_TYPE), SCHEMA_VERSION);
-
- if ($op == "performupdate") {
- if ($updater->is_update_required()) {
- print "<h2>" . T_sprintf("Performing updates to version %d", SCHEMA_VERSION) . "</h2>";
+ $migrations = Config::get_migrations();
- for ($i = $updater->get_schema_version() + 1; $i <= SCHEMA_VERSION; $i++) {
- print "<ul>";
-
- print "<li class='text-info'>" . T_sprintf("Updating to version %d", $i) . "</li>";
+ if ($op == "performupdate") {
+ if ($migrations->is_migration_needed()) {
+ ?>
- print "<li>";
- $result = $updater->update_to($i, true);
- print "</li>";
+ <h2><?= T_sprintf("Performing updates to version %d", Config::SCHEMA_VERSION) ?></h2>
- if (!$result) {
- print "</ul>";
+ <code><pre class="small pre-wrap"><?php
+ Debug::set_enabled(true);
+ Debug::set_loglevel(Debug::LOG_VERBOSE);
+ $result = $migrations->migrate();
+ Debug::set_loglevel(Debug::LOG_NORMAL);
+ Debug::set_enabled(false);
+ ?></pre></code>
- print_error("One of the updates failed. Either retry the process or perform updates manually.");
+ <?php if (!$result) { ?>
+ <?= format_error("One of migrations failed. Either retry the process or perform updates manually.") ?>
- print "<form method='POST'>
- <input type='hidden' name='subop' value='performupdate'>
- <button type='submit' dojoType='dijit.form.Button' class='alt-danger' onclick='return confirmOP()'>".__("Try again")."</button>
- <a href='index.php'>".__("Return to Tiny Tiny RSS")."</a>
- </form>";
+ <form method="post">
+ <?= \Controls\hidden_tag('subop', 'performupdate') ?>
+ <?= \Controls\submit_tag(__("Update"), ["onclick" => "return confirmDbUpdate()"]) ?>
+ </form>
+ <?php } else { ?>
+ <?= format_notice("Update successful.") ?>
- return;
- } else {
- print "<li class='text-success'>" . __("Completed.") . "</li>";
- print "</ul>";
- }
- }
+ <a href="index.php"><?= __("Return to Tiny Tiny RSS") ?></a>
+ <?php }
- print_notice("Your Tiny Tiny RSS database is now updated to the latest version.");
+ } else { ?>
- print "<a href='index.php'>".__("Return to Tiny Tiny RSS")."</a>";
+ <?= format_notice("Database is already up to date.") ?>
- } else {
- print_notice("Tiny Tiny RSS database is up to date.");
+ <a href="index.php"><?= __("Return to Tiny Tiny RSS") ?></a>
- print "<a href='index.php'>".__("Return to Tiny Tiny RSS")."</a>";
+ <?php
}
} else {
- if ($updater->is_update_required()) {
+ if ($migrations->is_migration_needed()) {
- print "<h2>".T_sprintf("Tiny Tiny RSS database needs update to the latest version (%d to %d).",
- $updater->get_schema_version(), SCHEMA_VERSION)."</h2>";
+ ?>
+ <h2><?= T_sprintf("Database schema needs update to the latest version (%d to %d).",
+ Config::get_schema_version(), Config::SCHEMA_VERSION) ?></h2>
- if (Config::get(Config::DB_TYPE) == "mysql") {
- print_error("<strong>READ THIS:</strong> Due to MySQL limitations, your database is not completely protected while updating. ".
- "Errors may put it in an inconsistent state requiring manual rollback. <strong>BACKUP YOUR DATABASE BEFORE CONTINUING.</strong>");
- } else {
- print_warning("Please backup your database before proceeding.");
- }
+ <?= format_warning("Please backup your database before proceeding.") ?>
- print "<form method='POST'>
- <input type='hidden' name='subop' value='performupdate'>
- <button type='submit' dojoType='dijit.form.Button' class='alt-danger' onclick='return confirmOP()'>".__("Perform updates")."</button>
- </form>";
+ <form method="post">
+ <?= \Controls\hidden_tag('subop', 'performupdate') ?>
+ <?= \Controls\submit_tag(__("Update"), ["onclick" => "return confirmDbUpdate()"]) ?>
+ </form>
- } else {
+ <?php
+ } else { ?>
+
+ <?= format_notice("Database is already up to date.") ?>
- print_notice("Tiny Tiny RSS database is up to date.");
+ <a href="index.php"><?= __("Return to Tiny Tiny RSS") ?></a>
- print "<a href='index.php'>".__("Return to Tiny Tiny RSS")."</a>";
+ <?php
}
}
?>
@@ -779,7 +796,7 @@ class Handler_Public extends Handler {
$timestamp = date("Y-m-d", strtotime($timestamp));
- return "tag:" . parse_url(get_self_url_prefix(), PHP_URL_HOST) . ",$timestamp:/$id";
+ return "tag:" . parse_url(Config::get_self_url(), PHP_URL_HOST) . ",$timestamp:/$id";
}
// this should be used very carefully because this endpoint is exposed to unauthenticated users
@@ -817,9 +834,12 @@ class Handler_Public extends Handler {
}
}
- static function _render_login_form() {
+ static function _render_login_form(string $return_to = "") {
header('Cache-Control: public');
+ if ($return_to)
+ $_REQUEST['return'] = $return_to;
+
require_once "login_form.php";
exit;
}
diff --git a/classes/logger.php b/classes/logger.php
index 864b66743..f8abb5f84 100755
--- a/classes/logger.php
+++ b/classes/logger.php
@@ -3,6 +3,10 @@ class Logger {
private static $instance;
private $adapter;
+ const LOG_DEST_SQL = "sql";
+ const LOG_DEST_STDOUT = "stdout";
+ const LOG_DEST_SYSLOG = "syslog";
+
const ERROR_NAMES = [
1 => 'E_ERROR',
2 => 'E_WARNING',
@@ -51,13 +55,13 @@ class Logger {
function __construct() {
switch (Config::get(Config::LOG_DESTINATION)) {
- case "sql":
+ case self::LOG_DEST_SQL:
$this->adapter = new Logger_SQL();
break;
- case "syslog":
+ case self::LOG_DEST_SYSLOG:
$this->adapter = new Logger_Syslog();
break;
- case "stdout":
+ case self::LOG_DEST_STDOUT:
$this->adapter = new Logger_Stdout();
break;
default:
diff --git a/classes/logger/sql.php b/classes/logger/sql.php
index d21934aa6..784ebef31 100755
--- a/classes/logger/sql.php
+++ b/classes/logger/sql.php
@@ -3,12 +3,18 @@ class Logger_SQL implements Logger_Adapter {
private $pdo;
- function log_error(int $errno, string $errstr, string $file, int $line, $context) {
+ function __construct() {
+ $conn = get_class($this);
- // separate PDO connection object is used for logging
- if (!$this->pdo) $this->pdo = Db::instance()->pdo_connect();
+ ORM::configure(Db::get_dsn(), null, $conn);
+ ORM::configure('username', Config::get(Config::DB_USER), $conn);
+ ORM::configure('password', Config::get(Config::DB_PASS), $conn);
+ ORM::configure('return_result_sets', true, $conn);
+ }
- if ($this->pdo && get_schema_version() > 117) {
+ function log_error(int $errno, string $errstr, string $file, int $line, $context) {
+
+ if (Config::get_schema_version() > 117) {
// limit context length, DOMDocument dumps entire XML in here sometimes, which may be huge
$context = mb_substr($context, 0, 8192);
@@ -36,12 +42,19 @@ class Logger_SQL implements Logger_Adapter {
// this would cause a PDOException on insert below
$owner_uid = !empty($_SESSION["uid"]) ? $_SESSION["uid"] : null;
- $sth = $this->pdo->prepare("INSERT INTO ttrss_error_log
- (errno, errstr, filename, lineno, context, owner_uid, created_at) VALUES
- (?, ?, ?, ?, ?, ?, NOW())");
- $sth->execute([$errno, $errstr, $file, (int)$line, $context, $owner_uid]);
+ $entry = ORM::for_table('ttrss_error_log', get_class($this))->create();
+
+ $entry->set([
+ 'errno' => $errno,
+ 'errstr' => $errstr,
+ 'filename' => $file,
+ 'lineno' => (int)$line,
+ 'context' => $context,
+ 'owner_uid' => $owner_uid,
+ 'created_at' => Db::NOW(),
+ ]);
- return $sth->rowCount();
+ return $entry->save();
}
return false;
diff --git a/classes/mailer.php b/classes/mailer.php
index a4270ba88..564338f69 100644
--- a/classes/mailer.php
+++ b/classes/mailer.php
@@ -1,8 +1,6 @@
<?php
class Mailer {
- // TODO: support HTML mail (i.e. MIME messages)
-
- private $last_error = "Unable to send mail: check local configuration.";
+ private $last_error = "";
function mail($params) {
@@ -10,11 +8,10 @@ class Mailer {
$to_address = $params["to_address"];
$subject = $params["subject"];
$message = $params["message"];
- $message_html = $params["message_html"];
- $from_name = $params["from_name"] ? $params["from_name"] : Config::get(Config::SMTP_FROM_NAME);
- $from_address = $params["from_address"] ? $params["from_address"] : Config::get(Config::SMTP_FROM_ADDRESS);
-
- $additional_headers = $params["headers"] ? $params["headers"] : [];
+ $message_html = $params["message_html"] ?? "";
+ $from_name = $params["from_name"] ?? Config::get(Config::SMTP_FROM_NAME);
+ $from_address = $params["from_address"] ?? Config::get(Config::SMTP_FROM_ADDRESS);
+ $additional_headers = $params["headers"] ?? [];
$from_combined = $from_name ? "$from_name <$from_address>" : $from_address;
$to_combined = $to_name ? "$to_name <$to_address>" : $to_address;
@@ -40,11 +37,18 @@ class Mailer {
$headers = [ "From: $from_combined", "Content-Type: text/plain; charset=UTF-8" ];
- return mail($to_combined, $subject, $message, implode("\r\n", array_merge($headers, $additional_headers)));
+ $rc = mail($to_combined, $subject, $message, implode("\r\n", array_merge($headers, $additional_headers)));
+
+ if (!$rc) {
+ $this->set_error(error_get_last()['message']);
+ }
+
+ return $rc;
}
function set_error($message) {
$this->last_error = $message;
+ user_error("Error sending mail: $message", E_USER_WARNING);
}
function error() {
diff --git a/classes/opml.php b/classes/opml.php
index 6c7cab606..f8e9f6728 100644
--- a/classes/opml.php
+++ b/classes/opml.php
@@ -31,7 +31,7 @@ class OPML extends Handler_Protected {
<body class='claro ttrss_utility'>
<h1>".__('OPML Utility')."</h1><div class='content'>";
- Feeds::_add_cat("Imported feeds");
+ Feeds::_add_cat("Imported feeds", $owner_uid);
$this->opml_notice(__("Importing OPML..."));
@@ -151,7 +151,7 @@ class OPML extends Handler_Protected {
# export tt-rss settings
if ($include_settings) {
- $out .= "<outline text=\"tt-rss-prefs\" schema-version=\"".SCHEMA_VERSION."\">";
+ $out .= "<outline text=\"tt-rss-prefs\" schema-version=\"".Config::SCHEMA_VERSION."\">";
$sth = $this->pdo->prepare("SELECT pref_name, value FROM ttrss_user_prefs2 WHERE
profile IS NULL AND owner_uid = ? ORDER BY pref_name");
@@ -166,7 +166,7 @@ class OPML extends Handler_Protected {
$out .= "</outline>";
- $out .= "<outline text=\"tt-rss-labels\" schema-version=\"".SCHEMA_VERSION."\">";
+ $out .= "<outline text=\"tt-rss-labels\" schema-version=\"".Config::SCHEMA_VERSION."\">";
$sth = $this->pdo->prepare("SELECT * FROM ttrss_labels2 WHERE
owner_uid = ?");
@@ -183,7 +183,7 @@ class OPML extends Handler_Protected {
$out .= "</outline>";
- $out .= "<outline text=\"tt-rss-filters\" schema-version=\"".SCHEMA_VERSION."\">";
+ $out .= "<outline text=\"tt-rss-filters\" schema-version=\"".Config::SCHEMA_VERSION."\">";
$sth = $this->pdo->prepare("SELECT * FROM ttrss_filters2
WHERE owner_uid = ? ORDER BY id");
@@ -521,9 +521,8 @@ class OPML extends Handler_Protected {
if ($cat_id === false) {
$order_id = (int) $root_node->attributes->getNamedItem('ttrssSortOrder')->nodeValue;
- if (!$order_id) $order_id = 0;
- Feeds::_add_cat($cat_title, $parent_id, $order_id);
+ Feeds::_add_cat($cat_title, $_SESSION['uid'], $parent_id ? $parent_id : null, (int)$order_id);
$cat_id = $this->get_feed_category($cat_title, $parent_id);
}
@@ -635,7 +634,7 @@ class OPML extends Handler_Protected {
}
static function get_publish_url(){
- return get_self_url_prefix() .
+ return Config::get_self_url() .
"/public.php?op=publishOpml&key=" .
Feeds::_get_access_key('OPML:Publish', false, $_SESSION["uid"]);
}
diff --git a/classes/plugin.php b/classes/plugin.php
index 6c572467a..ecafa7888 100644
--- a/classes/plugin.php
+++ b/classes/plugin.php
@@ -2,11 +2,10 @@
abstract class Plugin {
const API_VERSION_COMPAT = 1;
- /** @var PDO */
+ /** @var PDO $pdo */
protected $pdo;
- /* @var PluginHost $host */
- abstract function init($host);
+ abstract function init(PluginHost $host);
abstract function about();
// return array(1.0, "plugin", "No description", "No author", false);
@@ -26,6 +25,10 @@ abstract class Plugin {
return false;
}
+ function csrf_ignore($method) {
+ return false;
+ }
+
function get_js() {
return "";
}
@@ -55,7 +58,4 @@ abstract class Plugin {
return vsprintf($this->__($msgid), $args);
}
- function csrf_ignore($method) {
- return false;
- }
}
diff --git a/classes/pluginhost.php b/classes/pluginhost.php
index b6f645a9c..17d1e0c5f 100755
--- a/classes/pluginhost.php
+++ b/classes/pluginhost.php
@@ -61,7 +61,7 @@ class PluginHost {
const HOOK_FEED_BASIC_INFO = "hook_feed_basic_info"; // hook_feed_basic_info($basic_info, $fetch_url, $owner_uid, $feed_id, $auth_login, $auth_pass) (byref)
const HOOK_SEND_LOCAL_FILE = "hook_send_local_file"; // hook_send_local_file($filename)
const HOOK_UNSUBSCRIBE_FEED = "hook_unsubscribe_feed"; // hook_unsubscribe_feed($feed_id, $owner_uid)
- const HOOK_SEND_MAIL = "hook_send_mail"; // hook_send_mail($mailer, $params)
+ const HOOK_SEND_MAIL = "hook_send_mail"; // hook_send_mail(Mailer $mailer, $params)
const HOOK_FILTER_TRIGGERED = "hook_filter_triggered"; // hook_filter_triggered($feed_id, $owner_uid, $article, $matched_filters, $matched_rules, $article_filters)
const HOOK_GET_FULL_TEXT = "hook_get_full_text"; // hook_get_full_text($url)
const HOOK_ARTICLE_IMAGE = "hook_article_image"; // hook_article_image($enclosures, $content, $site_url)
@@ -274,16 +274,14 @@ class PluginHost {
$class = trim($class);
$class_file = strtolower(basename(clean($class)));
- if (!is_dir(__DIR__ . "/../plugins/$class_file") &&
- !is_dir(__DIR__ . "/../plugins.local/$class_file")) continue;
-
// try system plugin directory first
- $file = __DIR__ . "/../plugins/$class_file/init.php";
- $vendor_dir = __DIR__ . "/../plugins/$class_file/vendor";
+ $file = dirname(__DIR__) . "/plugins/$class_file/init.php";
if (!file_exists($file)) {
- $file = __DIR__ . "/../plugins.local/$class_file/init.php";
- $vendor_dir = __DIR__ . "/../plugins.local/$class_file/vendor";
+ $file = dirname(__DIR__) . "/plugins.local/$class_file/init.php";
+
+ if (!file_exists($file))
+ continue;
}
if (!isset($this->plugins[$class])) {
@@ -296,27 +294,7 @@ class PluginHost {
if (class_exists($class) && is_subclass_of($class, "Plugin")) {
- // register plugin autoloader if necessary, for namespaced classes ONLY
- // layout corresponds to tt-rss main /vendor/author/Package/Class.php
-
- if (file_exists($vendor_dir)) {
- spl_autoload_register(function($class) use ($vendor_dir) {
-
- if (strpos($class, '\\') !== false) {
- list ($namespace, $class_name) = explode('\\', $class, 2);
-
- if ($namespace && $class_name) {
- $class_file = "$vendor_dir/$namespace/" . str_replace('\\', '/', $class_name) . ".php";
-
- if (file_exists($class_file))
- require_once $class_file;
- }
- }
- });
- }
-
$plugin = new $class($this);
-
$plugin_api = $plugin->api_version();
if ($plugin_api < self::API_VERSION) {
@@ -491,7 +469,7 @@ class PluginHost {
}
}
- function set(Plugin $sender, string $name, $value, bool $sync = true) {
+ function set(Plugin $sender, string $name, $value) {
$idx = get_class($sender);
if (!isset($this->storage[$idx]))
@@ -499,7 +477,19 @@ class PluginHost {
$this->storage[$idx][$name] = $value;
- if ($sync) $this->save_data(get_class($sender));
+ $this->save_data(get_class($sender));
+ }
+
+ function set_array(Plugin $sender, array $params) {
+ $idx = get_class($sender);
+
+ if (!isset($this->storage[$idx]))
+ $this->storage[$idx] = array();
+
+ foreach ($params as $name => $value)
+ $this->storage[$idx][$name] = $value;
+
+ $this->save_data(get_class($sender));
}
function get(Plugin $sender, string $name, $default_value = false) {
@@ -514,6 +504,14 @@ class PluginHost {
}
}
+ function get_array(Plugin $sender, string $name, array $default_value = []) {
+ $tmp = $this->get($sender, $name);
+
+ if (!is_array($tmp)) $tmp = $default_value;
+
+ return $tmp;
+ }
+
function get_all($sender) {
$idx = get_class($sender);
@@ -601,7 +599,7 @@ class PluginHost {
// handled by classes/pluginhandler.php, requires valid session
function get_method_url(Plugin $sender, string $method, $params = []) {
- return get_self_url_prefix() . "/backend.php?" .
+ return Config::get_self_url() . "/backend.php?" .
http_build_query(
array_merge(
[
@@ -614,7 +612,7 @@ class PluginHost {
// shortcut syntax (disabled for now)
/* function get_method_url(Plugin $sender, string $method, $params) {
- return get_self_url_prefix() . "/backend.php?" .
+ return Config::get_self_url() . "/backend.php?" .
http_build_query(
array_merge(
[
@@ -626,7 +624,7 @@ class PluginHost {
// WARNING: endpoint in public.php, exposed to unauthenticated users
function get_public_method_url(Plugin $sender, string $method, $params = []) {
if ($sender->is_public_method($method)) {
- return get_self_url_prefix() . "/public.php?" .
+ return Config::get_self_url() . "/public.php?" .
http_build_query(
array_merge(
[
@@ -637,4 +635,15 @@ class PluginHost {
user_error("get_public_method_url: requested method '$method' of '" . get_class($sender) . "' is private.");
}
}
+
+ function get_plugin_dir(Plugin $plugin) {
+ $ref = new ReflectionClass(get_class($plugin));
+ return dirname($ref->getFileName());
+ }
+
+ // TODO: use get_plugin_dir()
+ function is_local(Plugin $plugin) {
+ $ref = new ReflectionClass(get_class($plugin));
+ return basename(dirname(dirname($ref->getFileName()))) == "plugins.local";
+ }
}
diff --git a/classes/pref/feeds.php b/classes/pref/feeds.php
index 3b4afab26..788104d38 100755
--- a/classes/pref/feeds.php
+++ b/classes/pref/feeds.php
@@ -1,5 +1,10 @@
<?php
class Pref_Feeds extends Handler_Protected {
+ const E_ICON_FILE_TOO_LARGE = 'E_ICON_FILE_TOO_LARGE';
+ const E_ICON_RENAME_FAILED = 'E_ICON_RENAME_FAILED';
+ const E_ICON_UPLOAD_FAILED = 'E_ICON_UPLOAD_FAILED';
+ const E_ICON_UPLOAD_SUCCESS = 'E_ICON_UPLOAD_SUCCESS';
+
function csrf_ignore($method) {
$csrf_ignored = array("index", "getfeedtree", "savefeedorder");
@@ -22,14 +27,16 @@ class Pref_Feeds extends Handler_Protected {
return $rv;
}
- function renamecat() {
+ function renameCat() {
+ $cat = ORM::for_table("ttrss_feed_categories")
+ ->where("owner_uid", $_SESSION["uid"])
+ ->find_one($_REQUEST['id']);
+
$title = clean($_REQUEST['title']);
- $id = clean($_REQUEST['id']);
- if ($title) {
- $sth = $this->pdo->prepare("UPDATE ttrss_feed_categories SET
- title = ? WHERE id = ? AND owner_uid = ?");
- $sth->execute([$title, $id, $_SESSION['uid']]);
+ if ($cat && $title) {
+ $cat->title = $title;
+ $cat->save();
}
}
@@ -433,78 +440,67 @@ class Pref_Feeds extends Handler_Protected {
}
}
- function removeicon() {
- $feed_id = clean($_REQUEST["feed_id"]);
-
- $sth = $this->pdo->prepare("SELECT id FROM ttrss_feeds
- WHERE id = ? AND owner_uid = ?");
- $sth->execute([$feed_id, $_SESSION['uid']]);
+ function removeIcon() {
+ $feed_id = (int) $_REQUEST["feed_id"];
+ $icon_file = Config::get(Config::ICONS_DIR) . "/$feed_id.ico";
- if ($row = $sth->fetch()) {
- @unlink(Config::get(Config::ICONS_DIR) . "/$feed_id.ico");
+ $feed = ORM::for_table('ttrss_feeds')
+ ->where('owner_uid', $_SESSION['uid'])
+ ->find_one($feed_id);
- $sth = $this->pdo->prepare("UPDATE ttrss_feeds SET favicon_avg_color = NULL, favicon_last_checked = '1970-01-01'
- where id = ?");
- $sth->execute([$feed_id]);
+ if ($feed && file_exists($icon_file)) {
+ if (unlink($icon_file)) {
+ $feed->set([
+ 'favicon_avg_color' => null,
+ 'favicon_last_checked' => '1970-01-01',
+ 'favicon_is_custom' => false,
+ ]);
+ $feed->save();
+ }
}
}
- function uploadicon() {
- header("Content-type: text/html");
+ function uploadIcon() {
+ $feed_id = (int) $_REQUEST['feed_id'];
+ $tmp_file = tempnam(Config::get(Config::CACHE_DIR) . '/upload', 'icon');
- if (is_uploaded_file($_FILES['icon_file']['tmp_name'])) {
- $tmp_file = tempnam(Config::get(Config::CACHE_DIR) . '/upload', 'icon');
+ // default value
+ $rc = self::E_ICON_UPLOAD_FAILED;
- if (!$tmp_file)
- return;
+ $feed = ORM::for_table('ttrss_feeds')
+ ->where('owner_uid', $_SESSION['uid'])
+ ->find_one($feed_id);
- $result = move_uploaded_file($_FILES['icon_file']['tmp_name'], $tmp_file);
+ if ($feed && $tmp_file && move_uploaded_file($_FILES['icon_file']['tmp_name'], $tmp_file)) {
+ if (filesize($tmp_file) < Config::get(Config::MAX_FAVICON_FILE_SIZE)) {
- if (!$result) {
- return;
- }
- } else {
- return;
- }
+ $new_filename = Config::get(Config::ICONS_DIR) . "/$feed_id.ico";
- $icon_file = $tmp_file;
- $feed_id = clean($_REQUEST["feed_id"]);
- $rc = 2; // failed
+ if (file_exists($new_filename)) unlink($new_filename);
+ if (rename($tmp_file, $new_filename)) {
+ chmod($new_filename, 0644);
- if ($icon_file && is_file($icon_file) && $feed_id) {
- if (filesize($icon_file) < 65535) {
+ $feed->set([
+ 'favicon_avg_color' => null,
+ 'favicon_is_custom' => true,
+ ]);
- $sth = $this->pdo->prepare("SELECT id FROM ttrss_feeds
- WHERE id = ? AND owner_uid = ?");
- $sth->execute([$feed_id, $_SESSION['uid']]);
-
- if ($row = $sth->fetch()) {
- $new_filename = Config::get(Config::ICONS_DIR) . "/$feed_id.ico";
-
- if (file_exists($new_filename)) unlink($new_filename);
-
- if (rename($icon_file, $new_filename)) {
- chmod($new_filename, 644);
-
- $sth = $this->pdo->prepare("UPDATE ttrss_feeds SET
- favicon_avg_color = ''
- WHERE id = ?");
- $sth->execute([$feed_id]);
+ if ($feed->save()) {
+ $rc = self::E_ICON_UPLOAD_SUCCESS;
+ }
- $rc = Feeds::_get_icon($feed_id);
+ } else {
+ $rc = self::E_ICON_RENAME_FAILED;
}
- }
} else {
- $rc = 1;
+ $rc = self::E_ICON_FILE_TOO_LARGE;
}
}
- if ($icon_file && is_file($icon_file)) {
- unlink($icon_file);
- }
+ if (file_exists($tmp_file))
+ unlink($tmp_file);
- print $rc;
- return;
+ print json_encode(['rc' => $rc, 'icon_url' => Feeds::_get_icon($feed_id)]);
}
function editfeed() {
@@ -513,11 +509,11 @@ class Pref_Feeds extends Handler_Protected {
$feed_id = (int)clean($_REQUEST["id"]);
- $sth = $this->pdo->prepare("SELECT * FROM ttrss_feeds WHERE id = ? AND
- owner_uid = ?");
- $sth->execute([$feed_id, $_SESSION['uid']]);
+ $row = ORM::for_table('ttrss_feeds')
+ ->where("owner_uid", $_SESSION["uid"])
+ ->find_one($feed_id)->as_array();
- if ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
+ if ($row) {
ob_start();
PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_EDIT_FEED, $feed_id);
@@ -694,7 +690,7 @@ class Pref_Feeds extends Handler_Protected {
$purge_intl = (int) clean($_POST["purge_interval"] ?? 0);
$feed_id = (int) clean($_POST["id"] ?? 0); /* editSave */
$feed_ids = explode(",", clean($_POST["ids"] ?? "")); /* batchEditSave */
- $cat_id = (int) clean($_POST["cat_id"]);
+ $cat_id = (int) clean($_POST["cat_id"] ?? 0);
$auth_login = clean($_POST["auth_login"]);
$auth_pass = clean($_POST["auth_pass"]);
$private = checkbox_to_sql_bool(clean($_POST["private"] ?? ""));
@@ -710,7 +706,7 @@ class Pref_Feeds extends Handler_Protected {
$mark_unread_on_update = checkbox_to_sql_bool(
clean($_POST["mark_unread_on_update"] ?? ""));
- $feed_language = clean($_POST["feed_language"]);
+ $feed_language = clean($_POST["feed_language"] ?? "");
if (!$batch) {
@@ -720,48 +716,32 @@ class Pref_Feeds extends Handler_Protected {
$reset_basic_info = $orig_feed_url != $feed_url; */
- $sth = $this->pdo->prepare("UPDATE ttrss_feeds SET
- cat_id = :cat_id,
- title = :title,
- feed_url = :feed_url,
- site_url = :site_url,
- update_interval = :upd_intl,
- purge_interval = :purge_intl,
- auth_login = :auth_login,
- auth_pass = :auth_pass,
- auth_pass_encrypted = false,
- private = :private,
- cache_images = :cache_images,
- hide_images = :hide_images,
- include_in_digest = :include_in_digest,
- always_display_enclosures = :always_display_enclosures,
- mark_unread_on_update = :mark_unread_on_update,
- feed_language = :feed_language
- WHERE id = :id AND owner_uid = :uid");
-
- $sth->execute([":title" => $feed_title,
- ":cat_id" => $cat_id ? $cat_id : null,
- ":feed_url" => $feed_url,
- ":site_url" => $site_url,
- ":upd_intl" => $upd_intl,
- ":purge_intl" => $purge_intl,
- ":auth_login" => $auth_login,
- ":auth_pass" => $auth_pass,
- ":private" => (int)$private,
- ":cache_images" => (int)$cache_images,
- ":hide_images" => (int)$hide_images,
- ":include_in_digest" => (int)$include_in_digest,
- ":always_display_enclosures" => (int)$always_display_enclosures,
- ":mark_unread_on_update" => (int)$mark_unread_on_update,
- ":feed_language" => $feed_language,
- ":id" => $feed_id,
- ":uid" => $_SESSION['uid']]);
-
-/* if ($reset_basic_info) {
- RSSUtils::set_basic_feed_info($feed_id);
- } */
-
- PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_SAVE_FEED, $feed_id);
+ $feed = ORM::for_table('ttrss_feeds')
+ ->where('owner_uid', $_SESSION['uid'])
+ ->find_one($feed_id);
+
+ if ($feed) {
+
+ $feed->title = $feed_title;
+ $feed->cat_id = $cat_id ? $cat_id : null;
+ $feed->feed_url = $feed_url;
+ $feed->site_url = $site_url;
+ $feed->update_interval = $upd_intl;
+ $feed->purge_interval = $purge_intl;
+ $feed->auth_login = $auth_login;
+ $feed->auth_pass = $auth_pass;
+ $feed->private = (int)$private;
+ $feed->cache_images = (int)$cache_images;
+ $feed->hide_images = (int)$hide_images;
+ $feed->feed_language = $feed_language;
+ $feed->include_in_digest = (int)$include_in_digest;
+ $feed->always_display_enclosures = (int)$always_display_enclosures;
+ $feed->mark_unread_on_update = (int)$mark_unread_on_update;
+
+ $feed->save();
+
+ PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_SAVE_FEED, $feed_id);
+ }
} else {
$feed_data = array();
@@ -874,14 +854,14 @@ class Pref_Feeds extends Handler_Protected {
function removeCat() {
$ids = explode(",", clean($_REQUEST["ids"]));
foreach ($ids as $id) {
- $this->remove_feed_category($id, $_SESSION["uid"]);
+ Feeds::_remove_cat((int)$id, $_SESSION["uid"]);
}
}
function addCat() {
$feed_cat = clean($_REQUEST["cat"]);
- Feeds::_add_cat($feed_cat);
+ Feeds::_add_cat($feed_cat, $_SESSION['uid']);
}
function importOpml() {
@@ -1003,10 +983,6 @@ class Pref_Feeds extends Handler_Protected {
private function index_opml() {
?>
- <h3><?= __("Using OPML you can export and import your feeds, filters, labels and Tiny Tiny RSS settings.") ?></h3>
-
- <?php print_notice("Only main settings profile can be migrated using OPML.") ?>
-
<form id='opml_import_form' method='post' enctype='multipart/form-data'>
<label class='dijitButton'><?= __("Choose file...") ?>
<input style='display : none' id='opml_file' name='opml_file' type='file'>
@@ -1015,20 +991,24 @@ class Pref_Feeds extends Handler_Protected {
<input type='hidden' name='csrf_token' value="<?= $_SESSION['csrf_token'] ?>">
<input type='hidden' name='method' value='importOpml'>
<button dojoType='dijit.form.Button' class='alt-primary' onclick="return Helpers.OPML.import()" type="submit">
+ <?= \Controls\icon("file_upload") ?>
<?= __('Import OPML') ?>
</button>
</form>
<hr/>
+ <?php print_notice("Only main settings profile can be migrated using OPML.") ?>
+
<form dojoType='dijit.form.Form' id='opmlExportForm' style='display : inline-block'>
<button dojoType='dijit.form.Button' onclick='Helpers.OPML.export()'>
+ <?= \Controls\icon("file_download") ?>
<?= __('Export OPML') ?>
</button>
<label class='checkbox'>
<?= \Controls\checkbox_tag("include_settings", true, "1") ?>
- <?= __("Include settings") ?>
+ <?= __("Include tt-rss settings") ?>
</label>
</form>
@@ -1036,12 +1016,10 @@ class Pref_Feeds extends Handler_Protected {
<h2><?= __("Published OPML") ?></h2>
- <p>
- <?= __('Your OPML can be published publicly and can be subscribed by anyone who knows the URL below.') ?>
- <?= __("Published OPML does not include your Tiny Tiny RSS settings, feeds that require authentication or feeds hidden from Popular feeds.") ?>
- </p>
+ <?= format_notice("Your OPML can be published and then subscribed by anyone who knows the URL below. This won't include your settings nor authenticated feeds.") ?>
<button dojoType='dijit.form.Button' class='alt-primary' onclick="return Helpers.OPML.publish()">
+ <?= \Controls\icon("share") ?>
<?= __('Display published OPML URL') ?>
</button>
@@ -1052,14 +1030,16 @@ class Pref_Feeds extends Handler_Protected {
private function index_shared() {
?>
- <h3><?= __('Published articles can be subscribed by anyone who knows the following URL:') ?></h3>
+ <?= format_notice('Published articles can be subscribed by anyone who knows the following URL:') ?></h3>
<button dojoType='dijit.form.Button' class='alt-primary'
onclick="CommonDialogs.generatedFeed(-2, false)">
+ <?= \Controls\icon('share') ?>
<?= __('Display URL') ?>
</button>
<button class='alt-danger' dojoType='dijit.form.Button' onclick='return Helpers.Feeds.clearFeedAccessKeys()'>
+ <?= \Controls\icon('delete') ?>
<?= __('Clear all generated URLs') ?>
</button>
@@ -1188,12 +1168,6 @@ class Pref_Feeds extends Handler_Protected {
print json_encode($rv);
}
- private function remove_feed_category($id, $owner_uid) {
- $sth = $this->pdo->prepare("DELETE FROM ttrss_feed_categories
- WHERE id = ? AND owner_uid = ?");
- $sth->execute([$id, $owner_uid]);
- }
-
static function remove_feed($id, $owner_uid) {
if (PluginHost::getInstance()->run_hooks_until(PluginHost::HOOK_UNSUBSCRIBE_FEED, true, $id, $owner_uid))
@@ -1273,12 +1247,16 @@ class Pref_Feeds extends Handler_Protected {
}
}
+ function clearKeys() {
+ return Feeds::_clear_access_keys($_SESSION['uid']);
+ }
+
function getOPMLKey() {
print json_encode(["link" => OPML::get_publish_url()]);
}
function regenOPMLKey() {
- $this->update_feed_access_key('OPML:Publish',
+ Feeds::_update_access_key('OPML:Publish',
false, $_SESSION["uid"]);
print json_encode(["link" => OPML::get_publish_url()]);
@@ -1288,17 +1266,17 @@ class Pref_Feeds extends Handler_Protected {
$feed_id = clean($_REQUEST['id']);
$is_cat = clean($_REQUEST['is_cat']);
- $new_key = $this->update_feed_access_key($feed_id, $is_cat, $_SESSION["uid"]);
+ $new_key = Feeds::_update_access_key($feed_id, $is_cat, $_SESSION["uid"]);
print json_encode(["link" => $new_key]);
}
- function getsharedurl() {
+ function getSharedURL() {
$feed_id = clean($_REQUEST['id']);
$is_cat = clean($_REQUEST['is_cat']) == "true";
$search = clean($_REQUEST['search']);
- $link = get_self_url_prefix() . "/public.php?" . http_build_query([
+ $link = Config::get_self_url() . "/public.php?" . http_build_query([
'op' => 'rss',
'id' => $feed_id,
'is_cat' => (int)$is_cat,
@@ -1312,23 +1290,6 @@ class Pref_Feeds extends Handler_Protected {
]);
}
- private function update_feed_access_key($feed_id, $is_cat, $owner_uid) {
-
- // clear old value and generate new one
- $sth = $this->pdo->prepare("DELETE FROM ttrss_access_keys
- WHERE feed_id = ? AND is_cat = ? AND owner_uid = ?");
- $sth->execute([$feed_id, bool_to_sql_bool($is_cat), $owner_uid]);
-
- return Feeds::_get_access_key($feed_id, $is_cat, $owner_uid);
- }
-
- // Silent
- function clearKeys() {
- $sth = $this->pdo->prepare("DELETE FROM ttrss_access_keys WHERE
- owner_uid = ?");
- $sth->execute([$_SESSION['uid']]);
- }
-
private function calculate_children_count($cat) {
$c = 0;
diff --git a/classes/pref/filters.php b/classes/pref/filters.php
index a6ea9f982..29d309dbb 100755
--- a/classes/pref/filters.php
+++ b/classes/pref/filters.php
@@ -51,8 +51,8 @@ class Pref_Filters extends Handler_Protected {
$filter = array();
$filter["enabled"] = true;
- $filter["match_any_rule"] = checkbox_to_sql_bool(clean($_REQUEST["match_any_rule"]));
- $filter["inverse"] = checkbox_to_sql_bool(clean($_REQUEST["inverse"]));
+ $filter["match_any_rule"] = checkbox_to_sql_bool(clean($_REQUEST["match_any_rule"] ?? false));
+ $filter["inverse"] = checkbox_to_sql_bool(clean($_REQUEST["inverse"] ?? false));
$filter["rules"] = array();
$filter["actions"] = array("dummy-action");
diff --git a/classes/pref/labels.php b/classes/pref/labels.php
index 5bc094d55..2cdb919ce 100644
--- a/classes/pref/labels.php
+++ b/classes/pref/labels.php
@@ -8,14 +8,12 @@ class Pref_Labels extends Handler_Protected {
}
function edit() {
- $label_id = clean($_REQUEST['id']);
+ $label = ORM::for_table('ttrss_labels2')
+ ->where('owner_uid', $_SESSION['uid'])
+ ->find_one($_REQUEST['id']);
- $sth = $this->pdo->prepare("SELECT id, caption, fg_color, bg_color FROM ttrss_labels2 WHERE
- id = ? AND owner_uid = ?");
- $sth->execute([$label_id, $_SESSION['uid']]);
-
- if ($line = $sth->fetch(PDO::FETCH_ASSOC)) {
- print json_encode($line);
+ if ($label) {
+ print json_encode($label->as_array());
}
}
diff --git a/classes/pref/prefs.php b/classes/pref/prefs.php
index ba63d76b3..16c41df9d 100644
--- a/classes/pref/prefs.php
+++ b/classes/pref/prefs.php
@@ -1,4 +1,5 @@
<?php
+use chillerlan\QRCode;
class Pref_Prefs extends Handler_Protected {
@@ -7,6 +8,15 @@ class Pref_Prefs extends Handler_Protected {
private $pref_help_bottom = [];
private $pref_blacklist = [];
+ const PI_RES_ALREADY_INSTALLED = "PI_RES_ALREADY_INSTALLED";
+ const PI_RES_SUCCESS = "PI_RES_SUCCESS";
+ const PI_ERR_NO_CLASS = "PI_ERR_NO_CLASS";
+ const PI_ERR_NO_INIT_PHP = "PI_ERR_NO_INIT_PHP";
+ const PI_ERR_EXEC_FAILED = "PI_ERR_EXEC_FAILED";
+ const PI_ERR_NO_TEMPDIR = "PI_ERR_NO_TEMPDIR";
+ const PI_ERR_PLUGIN_NOT_FOUND = "PI_ERR_PLUGIN_NOT_FOUND";
+ const PI_ERR_NO_WORKDIR = "PI_ERR_NO_WORKDIR";
+
function csrf_ignore($method) {
$csrf_ignored = array("index", "updateself", "otpqrcode");
@@ -64,6 +74,7 @@ class Pref_Prefs extends Handler_Protected {
'BLOCK_SEPARATOR',
Prefs::SSL_CERT_SERIAL,
'BLOCK_SEPARATOR',
+ Prefs::DISABLE_CONDITIONAL_COUNTERS,
Prefs::HEADLINES_NO_DISTINCT,
],
__('Debugging') => [
@@ -105,6 +116,7 @@ class Pref_Prefs extends Handler_Protected {
Prefs::USER_CSS_THEME => array(__("Theme")),
Prefs::HEADLINES_NO_DISTINCT => array(__("Don't enforce DISTINCT headlines"), __("May produce duplicate entries")),
Prefs::DEBUG_HEADLINE_IDS => array(__("Show article and feed IDs"), __("In the headlines buffer")),
+ Prefs::DISABLE_CONDITIONAL_COUNTERS => array(__("Disable conditional counter updates"), __("May increase server load")),
];
// hidden in the main prefs UI (use to hide things that have description set above)
@@ -209,48 +221,45 @@ class Pref_Prefs extends Handler_Protected {
}
}
- function changeemail() {
+ function changePersonalData() {
+
+ $user = ORM::for_table('ttrss_users')->find_one($_SESSION['uid']);
+ $new_email = clean($_POST['email']);
- $email = clean($_POST["email"]);
- $full_name = clean($_POST["full_name"]);
- $active_uid = $_SESSION["uid"];
+ if ($user) {
+ $user->full_name = clean($_POST['full_name']);
- $sth = $this->pdo->prepare("SELECT email, login, full_name FROM ttrss_users WHERE id = ?");
- $sth->execute([$active_uid]);
+ if ($user->email != $new_email)
+ Logger::log(E_USER_NOTICE, "Email address of user ".$user->login." has been changed to ${new_email}.");
- if ($row = $sth->fetch()) {
- $old_email = $row["email"];
+ if ($user->email && $user->email != $new_email) {
- if ($old_email != $email) {
$mailer = new Mailer();
$tpl = new Templator();
$tpl->readTemplateFromFile("mail_change_template.txt");
- $tpl->setVariable('LOGIN', $row["login"]);
- $tpl->setVariable('NEWMAIL', $email);
+ $tpl->setVariable('LOGIN', $user->login);
+ $tpl->setVariable('NEWMAIL', $new_email);
$tpl->setVariable('TTRSS_HOST', Config::get(Config::SELF_URL_PATH));
$tpl->addBlock('message');
$tpl->generateOutputToString($message);
- $mailer->mail(["to_name" => $row["login"],
- "to_address" => $row["email"],
- "subject" => "[tt-rss] Mail address change notification",
+ $mailer->mail(["to_name" => $user->login,
+ "to_address" => $user->email,
+ "subject" => "[tt-rss] Email address change notification",
"message" => $message]);
+ $user->email = $new_email;
}
- }
- $sth = $this->pdo->prepare("UPDATE ttrss_users SET email = ?,
- full_name = ? WHERE id = ?");
- $sth->execute([$email, $full_name, $active_uid]);
+ $user->save();
+ }
print __("Your personal data has been saved.");
-
- return;
}
function resetconfig() {
@@ -261,21 +270,13 @@ class Pref_Prefs extends Handler_Protected {
private function index_auth_personal() {
- $sth = $this->pdo->prepare("SELECT email,full_name,otp_enabled,
- access_level FROM ttrss_users
- WHERE id = ?");
- $sth->execute([$_SESSION["uid"]]);
- $row = $sth->fetch();
-
- $email = htmlspecialchars($row["email"]);
- $full_name = htmlspecialchars($row["full_name"]);
- $otp_enabled = sql_bool_to_bool($row["otp_enabled"]);
+ $user = ORM::for_table('ttrss_users')->find_one($_SESSION['uid']);
?>
<form dojoType='dijit.form.Form'>
<?= \Controls\hidden_tag("op", "pref-prefs") ?>
- <?= \Controls\hidden_tag("method", "changeemail") ?>
+ <?= \Controls\hidden_tag("method", "changePersonalData") ?>
<script type="dojo/method" event="onSubmit" args="evt">
evt.preventDefault();
@@ -289,18 +290,19 @@ class Pref_Prefs extends Handler_Protected {
<fieldset>
<label><?= __('Full name:') ?></label>
- <input dojoType='dijit.form.ValidationTextBox' name='full_name' required='1' value="<?= $full_name ?>">
+ <input dojoType='dijit.form.ValidationTextBox' name='full_name' required='1' value="<?= htmlspecialchars($user->full_name) ?>">
</fieldset>
<fieldset>
<label><?= __('E-mail:') ?></label>
- <input dojoType='dijit.form.ValidationTextBox' name='email' required='1' value="<?= $email ?>">
+ <input dojoType='dijit.form.ValidationTextBox' name='email' required='1' value="<?= htmlspecialchars($user->email) ?>">
</fieldset>
<hr/>
<button dojoType='dijit.form.Button' type='submit' class='alt-primary'>
- <?= __("Save data") ?>
+ <?= \Controls\icon("save") ?>
+ <?= __("Save") ?>
</button>
</form>
<?php
@@ -313,7 +315,7 @@ class Pref_Prefs extends Handler_Protected {
$authenticator = false;
}
- $otp_enabled = $this->is_otp_enabled();
+ $otp_enabled = UserHelper::is_otp_enabled($_SESSION["uid"]);
if ($authenticator && method_exists($authenticator, "change_password")) {
?>
@@ -350,10 +352,6 @@ class Pref_Prefs extends Handler_Protected {
}
</script>
- <?php if ($otp_enabled) {
- print_notice(__("Changing your current password will disable OTP."));
- } ?>
-
<fieldset>
<label><?= __("Old password:") ?></label>
<input dojoType='dijit.form.ValidationTextBox' type='password' required='1' name='old_password'>
@@ -372,6 +370,7 @@ class Pref_Prefs extends Handler_Protected {
<hr/>
<button dojoType='dijit.form.Button' type='submit' class='alt-primary'>
+ <?= \Controls\icon("security") ?>
<?= __("Change password") ?>
</button>
</form>
@@ -385,7 +384,7 @@ class Pref_Prefs extends Handler_Protected {
}
private function index_auth_app_passwords() {
- print_notice("You can create separate passwords for API clients. Using one is required if you enable OTP.");
+ print_notice("Separate passwords used for API clients. Required if you enable OTP.");
?>
<div id='app_passwords_holder'>
@@ -395,31 +394,21 @@ class Pref_Prefs extends Handler_Protected {
<hr>
<button style='float : left' class='alt-primary' dojoType='dijit.form.Button' onclick="Helpers.AppPasswords.generate()">
- <?= __('Generate new password') ?>
+ <?= \Controls\icon("add") ?>
+ <?= __('Generate password') ?>
</button>
<button style='float : left' class='alt-danger' dojoType='dijit.form.Button'
onclick="Helpers.AppPasswords.removeSelected()">
- <?= __('Remove selected passwords') ?>
+ <?= \Controls\icon("delete") ?>
+ <?= __('Remove selected') ?>
</button>
<?php
}
- private function is_otp_enabled() {
- $sth = $this->pdo->prepare("SELECT otp_enabled FROM ttrss_users
- WHERE id = ?");
- $sth->execute([$_SESSION["uid"]]);
-
- if ($row = $sth->fetch()) {
- return sql_bool_to_bool($row["otp_enabled"]);
- }
-
- return false;
- }
-
private function index_auth_2fa() {
- $otp_enabled = $this->is_otp_enabled();
+ $otp_enabled = UserHelper::is_otp_enabled($_SESSION["uid"]);
if ($_SESSION["auth_module"] == "auth_internal") {
if ($otp_enabled) {
@@ -455,6 +444,7 @@ class Pref_Prefs extends Handler_Protected {
<hr/>
<button dojoType='dijit.form.Button' type='submit' class='alt-danger'>
+ <?= \Controls\icon("lock_open") ?>
<?= __("Disable OTP") ?>
</button>
@@ -464,19 +454,11 @@ class Pref_Prefs extends Handler_Protected {
} else {
- print_warning("You will need a compatible Authenticator to use this. Changing your password would automatically disable OTP.");
- print_notice("You will need to generate app passwords for the API clients if you enable OTP.");
+ print "<img src=".($this->_get_otp_qrcode_img()).">";
- if (function_exists("imagecreatefromstring")) {
- print "<h3>" . __("Scan the following code by the Authenticator application or copy the key manually") . "</h3>";
- $csrf_token_hash = sha1($_SESSION["csrf_token"]);
- print "<img alt='otp qr-code' src='backend.php?op=pref-prefs&method=otpqrcode&csrf_token_hash=$csrf_token_hash'>";
- } else {
- print_error("PHP GD functions are required to generate QR codes.");
- print "<h3>" . __("Use the following OTP key with a compatible Authenticator application") . "</h3>";
- }
+ print_notice("You will need to generate app passwords for API clients if you enable OTP.");
- $otp_secret = $this->otpsecret();
+ $otp_secret = UserHelper::get_otp_secret($_SESSION["uid"]);
?>
<form dojoType='dijit.form.Form'>
@@ -486,7 +468,7 @@ class Pref_Prefs extends Handler_Protected {
<fieldset>
<label><?= __("OTP Key:") ?></label>
- <input dojoType='dijit.form.ValidationTextBox' disabled='disabled' value="<?= $otp_secret ?>" size='32'>
+ <input dojoType='dijit.form.ValidationTextBox' disabled='disabled' value="<?= $otp_secret ?>" style='width : 215px'>
</fieldset>
<!-- TODO: return JSON from the backend call -->
@@ -519,6 +501,7 @@ class Pref_Prefs extends Handler_Protected {
<hr/>
<button dojoType='dijit.form.Button' type='submit' class='alt-primary'>
+ <?= \Controls\icon("lock") ?>
<?= __("Enable OTP") ?>
</button>
@@ -635,30 +618,27 @@ class Pref_Prefs extends Handler_Protected {
} else if ($pref_name == "USER_CSS_THEME") {
- $themes = array_merge(glob("themes/*.php"), glob("themes/*.css"), glob("themes.local/*.css"));
- $themes = array_map("basename", $themes);
- $themes = array_filter($themes, "theme_exists");
- asort($themes);
-
- if (!theme_exists($value)) $value = "";
+ $theme_files = array_map("basename",
+ array_merge(glob("themes/*.php"),
+ glob("themes/*.css"),
+ glob("themes.local/*.css")));
- print "<select name='$pref_name' id='$pref_name' dojoType='fox.form.Select'>";
+ asort($theme_files);
- $issel = $value == "" ? "selected='selected'" : "";
- print "<option $issel value=''>".__("default")."</option>";
+ $themes = [ "" => __("default") ];
- foreach ($themes as $theme) {
- $issel = $value == $theme ? "selected='selected'" : "";
- print "<option $issel value='$theme'>$theme</option>";
+ foreach ($theme_files as $file) {
+ $themes[$file] = basename($file, ".css");
}
+ ?>
- print "</select>";
+ <?= \Controls\select_hash($pref_name, $value, $themes) ?>
+ <?= \Controls\button_tag(\Controls\icon("palette") . " " . __("Customize"), "",
+ ["onclick" => "Helpers.Prefs.customizeCSS()"]) ?>
+ <?= \Controls\button_tag(\Controls\icon("open_in_new") . " " . __("More themes..."), "",
+ ["class" => "alt-info", "onclick" => "window.open(\"https://tt-rss.org/wiki/Themes\")"]) ?>
- print " <button dojoType=\"dijit.form.Button\" class='alt-info'
- onclick=\"Helpers.Prefs.customizeCSS()\">" . __('Customize') . "</button>";
-
- print " <button dojoType='dijit.form.Button' onclick='window.open(\"https://tt-rss.org/wiki/Themes\")'>
- <i class='material-icons'>open_in_new</i> ".__("More themes...")."</button>";
+ <?php
} else if ($pref_name == "DEFAULT_UPDATE_INTERVAL") {
@@ -685,6 +665,11 @@ class Pref_Prefs extends Handler_Protected {
print \Controls\checkbox_tag($pref_name, $is_checked, "true",
["disabled" => $is_disabled], "CB_$pref_name");
+ if ($pref_name == Prefs::DIGEST_ENABLE) {
+ print \Controls\button_tag(\Controls\icon("info") . " " . __('Preview'), '',
+ ['onclick' => 'Helpers.Digest.preview()', 'style' => 'margin-left : 10px']);
+ }
+
} else if (in_array($pref_name, ['FRESH_ARTICLE_MAX_AGE',
'PURGE_OLD_DAYS', 'LONG_DATE_FORMAT', 'SHORT_DATE_FORMAT'])) {
@@ -704,14 +689,14 @@ class Pref_Prefs extends Handler_Protected {
print \Controls\input_tag($pref_name, $value, "text", ["readonly" => true], "SSL_CERT_SERIAL");
- $cert_serial = htmlspecialchars(get_ssl_certificate_id());
+ $cert_serial = htmlspecialchars(self::_get_ssl_certificate_id());
$has_serial = ($cert_serial) ? true : false;
- print \Controls\button_tag(__('Register'), "", [
+ print \Controls\button_tag(\Controls\icon("security") . " " . __('Register'), "", [
"disabled" => !$has_serial,
"onclick" => "dijit.byId('SSL_CERT_SERIAL').attr('value', '$cert_serial')"]);
- print \Controls\button_tag(__('Clear'), "", [
+ print \Controls\button_tag(\Controls\icon("clear") . " " . __('Clear'), "", [
"class" => "alt-danger",
"onclick" => "dijit.byId('SSL_CERT_SERIAL').attr('value', '')"]);
@@ -719,11 +704,10 @@ class Pref_Prefs extends Handler_Protected {
"class" => "alt-info",
"onclick" => "window.open('https://tt-rss.org/wiki/SSL%20Certificate%20Authentication')"]);
- } else if ($pref_name == 'DIGEST_PREFERRED_TIME') {
+ } else if ($pref_name == Prefs::DIGEST_PREFERRED_TIME) {
print "<input dojoType=\"dijit.form.ValidationTextBox\"
id=\"$pref_name\" regexp=\"[012]?\d:\d\d\" placeHolder=\"12:00\"
name=\"$pref_name\" value=\"$value\">";
-
$item['help_text'] .= ". " . T_sprintf("Current server time: %s", date("H:i"));
} else {
$regexp = ($type_hint == Config::T_INT) ? 'regexp="^\d*$"' : '';
@@ -772,19 +756,21 @@ class Pref_Prefs extends Handler_Protected {
<div dojoType="dijit.layout.ContentPane" region="bottom">
<div dojoType="fox.form.ComboButton" type="submit" class="alt-primary">
- <span><?= __('Save configuration') ?></span>
+ <span> <?= __('Save configuration') ?></span>
<div dojoType="dijit.DropDownMenu">
<div dojoType="dijit.MenuItem" onclick="dijit.byId('changeSettingsForm').onSubmit(null, true)">
- <?= __("Save and exit preferences") ?>
+ <?= __("Save and exit") ?>
</div>
</div>
</div>
<button dojoType="dijit.form.Button" onclick="return Helpers.Profiles.edit()">
+ <?= \Controls\icon("settings") ?>
<?= __('Manage profiles') ?>
</button>
<button dojoType="dijit.form.Button" class="alt-danger" onclick="return Helpers.Prefs.confirmReset()">
+ <?= \Controls\icon("clear") ?>
<?= __('Reset to defaults') ?>
</button>
@@ -795,119 +781,73 @@ class Pref_Prefs extends Handler_Protected {
<?php
}
- private function index_plugins_system() {
- print_notice("System plugins are enabled in <strong>config.php</strong> for all users.");
-
- $system_enabled = array_map("trim", explode(",", (string)Config::get(Config::PLUGINS)));
-
- $tmppluginhost = new PluginHost();
- $tmppluginhost->load_all($tmppluginhost::KIND_ALL, $_SESSION["uid"], true);
-
- foreach ($tmppluginhost->get_plugins() as $name => $plugin) {
- $about = $plugin->about();
-
- if ($about[3] ?? false) {
- $is_checked = in_array($name, $system_enabled) ? "checked" : "";
- ?>
- <fieldset class='prefs plugin'>
- <label><?= $name ?>:</label>
- <label class='checkbox description text-muted' id="PLABEL-<?= htmlspecialchars($name) ?>">
- <input disabled='1' dojoType='dijit.form.CheckBox' <?= $is_checked ?> type='checkbox'><?= htmlspecialchars($about[1]) ?>
- </label>
-
- <?php if ($about[4] ?? false) { ?>
- <button dojoType='dijit.form.Button' class='alt-info'
- onclick='window.open("<?= htmlspecialchars($about[4]) ?>")'>
- <i class='material-icons'>open_in_new</i> <?= __("More info...") ?></button>
- <?php } ?>
-
- <div dojoType='dijit.Tooltip' connectId='PLABEL-<?= htmlspecialchars($name) ?>' position='after'>
- <?= htmlspecialchars(T_sprintf("v%.2f, by %s", $about[0], $about[2])) ?>
- </div>
- </fieldset>
- <?php
- }
- }
- }
-
- private function index_plugins_user() {
+ function getPluginsList() {
$system_enabled = array_map("trim", explode(",", (string)Config::get(Config::PLUGINS)));
$user_enabled = array_map("trim", explode(",", get_pref(Prefs::_ENABLED_PLUGINS)));
$tmppluginhost = new PluginHost();
$tmppluginhost->load_all($tmppluginhost::KIND_ALL, $_SESSION["uid"], true);
+ $rv = [];
+
foreach ($tmppluginhost->get_plugins() as $name => $plugin) {
$about = $plugin->about();
+ $is_local = $tmppluginhost->is_local($plugin);
+ $version = htmlspecialchars($this->_get_plugin_version($plugin));
+
+ array_push($rv, [
+ "name" => $name,
+ "is_local" => $is_local,
+ "system_enabled" => in_array($name, $system_enabled),
+ "user_enabled" => in_array($name, $user_enabled),
+ "has_data" => count($tmppluginhost->get_all($plugin)) > 0,
+ "is_system" => (bool)($about[3] ?? false),
+ "version" => $version,
+ "author" => $about[2] ?? "",
+ "description" => $about[1] ?? "",
+ "more_info" => $about[4] ?? "",
+ ]);
+ }
- if (empty($about[3]) || $about[3] == false) {
-
- $is_checked = "";
- $is_disabled = "";
-
- if (in_array($name, $system_enabled)) {
- $is_checked = "checked='1'";
- $is_disabled = "disabled='1'";
- } else if (in_array($name, $user_enabled)) {
- $is_checked = "checked='1'";
- }
-
- ?>
-
- <fieldset class='prefs plugin'>
- <label><?= $name ?>:</label>
- <label class='checkbox description text-muted' id="PLABEL-<?= htmlspecialchars($name) ?>">
- <input name='plugins[]' value="<?= htmlspecialchars($name) ?>"
- dojoType='dijit.form.CheckBox' <?= $is_checked ?> <?= $is_disabled ?> type='checkbox'>
- <?= htmlspecialchars($about[1]) ?>
- </input>
- </label>
-
- <?php if (count($tmppluginhost->get_all($plugin)) > 0) {
- if (in_array($name, $system_enabled) || in_array($name, $user_enabled)) { ?>
- <button dojoType='dijit.form.Button'
- onclick='Helpers.Prefs.clearPluginData("<?= htmlspecialchars($name) ?>")'>
- <i class='material-icons'>clear</i> <?= __("Clear data") ?></button>
- <?php }
- } ?>
-
- <?php if ($about[4] ?? false) { ?>
- <button dojoType='dijit.form.Button' class='alt-info'
- onclick='window.open("<?= htmlspecialchars($about[4]) ?>")'>
- <i class='material-icons'>open_in_new</i> <?= __("More info...") ?></button>
- <?php } ?>
-
- <div dojoType='dijit.Tooltip' connectId="PLABEL-<?= htmlspecialchars($name) ?>" position='after'>
- <?= htmlspecialchars(T_sprintf("v%.2f, by %s", $about[0], $about[2])) ?>
- </div>
+ usort($rv, function($a, $b) { return strcmp($a["name"], $b["name"]); });
- </fieldset>
- <?php
- }
- }
+ print json_encode(['plugins' => $rv, 'is_admin' => $_SESSION['access_level'] >= 10]);
}
function index_plugins() {
?>
<form dojoType="dijit.form.Form" id="changePluginsForm">
- <script type="dojo/method" event="onSubmit" args="evt">
- evt.preventDefault();
- if (this.validate()) {
- xhr.post("backend.php", this.getValues(), () => {
- Notify.close();
- if (confirm(__('Selected plugins have been enabled. Reload?'))) {
- window.location.reload();
- }
- })
- }
- </script>
<?= \Controls\hidden_tag("op", "pref-prefs") ?>
<?= \Controls\hidden_tag("method", "setplugins") ?>
<div dojoType="dijit.layout.BorderContainer" gutters="false">
+ <div region="top" dojoType='fox.Toolbar'>
+ <div class='pull-right'>
+ <input name="search" type="search" onkeyup='Helpers.Plugins.search()' dojoType="dijit.form.TextBox">
+ <button dojoType='dijit.form.Button' onclick='Helpers.Plugins.search()'>
+ <?= __('Search') ?>
+ </button>
+ </div>
+
+ <div dojoType='fox.form.DropDownButton'>
+ <span><?= __('Select') ?></span>
+ <div dojoType='dijit.Menu' style='display: none'>
+ <div onclick="Lists.select('prefs-plugin-list', true)"
+ dojoType='dijit.MenuItem'><?= __('All') ?></div>
+ <div onclick="Lists.select('prefs-plugin-list', false)"
+ dojoType='dijit.MenuItem'><?= __('None') ?></div>
+ </div>
+ </div>
+ </div>
+
<div dojoType="dijit.layout.ContentPane" region="center" style="overflow-y : auto">
- <?php
+
+ <script type="dojo/method" event="onShow">
+ Helpers.Plugins.reload();
+ </script>
+
+ <!-- <?php
if (!empty($_SESSION["safe_mode"])) {
print_error("You have logged in using safe mode, no user plugins will be actually enabled until you login again.");
}
@@ -929,24 +869,41 @@ class Pref_Prefs extends Handler_Protected {
) . " (<a href='https://tt-rss.org/wiki/FeedHandlerPlugins' target='_blank'>".__("More info...")."</a>)"
);
}
- ?>
+ ?> -->
- <h2><?= __("System plugins") ?></h2>
-
- <?php $this->index_plugins_system() ?>
-
- <h2><?= __("User plugins") ?></h2>
-
- <?php $this->index_plugins_user() ?>
+ <ul id="prefs-plugin-list" class="prefs-plugin-list list-unstyled">
+ <li class='text-center'><?= __("Loading, please wait...") ?></li>
+ </ul>
</div>
<div dojoType="dijit.layout.ContentPane" region="bottom">
- <button dojoType='dijit.form.Button' style='float : left' class='alt-info' onclick='window.open("https://tt-rss.org/wiki/Plugins")'>
- <i class='material-icons'>help</i> <?= __("More info...") ?>
- </button>
- <button dojoType='dijit.form.Button' class='alt-primary' type='submit'>
- <?= __("Enable selected plugins") ?>
+
+ <button dojoType='dijit.form.Button' class="alt-info pull-right" onclick='window.open("https://tt-rss.org/wiki/Plugins")'>
+ <i class='material-icons'>help</i>
+ <?= __("More info") ?>
</button>
+
+ <?= \Controls\button_tag(\Controls\icon("check") . " " .__("Enable selected"), "", ["class" => "alt-primary",
+ "onclick" => "Helpers.Plugins.enableSelected()"]) ?>
+
+ <?= \Controls\button_tag(\Controls\icon("refresh"), "", ["title" => __("Reload"), "onclick" => "Helpers.Plugins.reload()"]) ?>
+
+ <?php if ($_SESSION["access_level"] >= 10) { ?>
+ <?php if (Config::get(Config::CHECK_FOR_UPDATES) && Config::get(Config::CHECK_FOR_PLUGIN_UPDATES)) { ?>
+
+ <button class='alt-warning' dojoType='dijit.form.Button' onclick="Helpers.Plugins.update()">
+ <?= \Controls\icon("update") ?>
+ <?= __("Check for updates") ?>
+ </button>
+ <?php } ?>
+
+ <?php if (Config::get(Config::ENABLE_PLUGIN_INSTALLER)) { ?>
+ <button dojoType='dijit.form.Button' onclick="Helpers.Plugins.install()">
+ <?= \Controls\icon("add") ?>
+ <?= __("Install plugin") ?>
+ </button>
+ <?php } ?>
+ <?php } ?>
</div>
</div>
</form>
@@ -970,120 +927,44 @@ class Pref_Prefs extends Handler_Protected {
<div dojoType='dijit.layout.AccordionPane' selected='true' title="<i class='material-icons'>settings</i> <?= __('Preferences') ?>">
<?php $this->index_prefs() ?>
</div>
- <div dojoType='dijit.layout.AccordionPane' title="<i class='material-icons'>extension</i> <?= __('Plugins') ?>">
- <script type='dojo/method' event='onSelected' args='evt'>
- if (this.domNode.querySelector('.loading'))
- window.setTimeout(() => {
- xhr.post("backend.php", {op: 'pref-prefs', method: 'index_plugins'}, (reply) => {
- this.attr('content', reply);
- });
- }, 200);
- </script>
- <span class='loading'><?= __("Loading, please wait...") ?></span>
+ <div dojoType='dijit.layout.AccordionPane' style='padding : 0' title="<i class='material-icons'>extension</i> <?= __('Plugins') ?>">
+ <?php $this->index_plugins() ?>
</div>
<?php PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_TAB, "prefPrefs") ?>
</div>
<?php
}
- function toggleAdvanced() {
- $_SESSION["prefs_show_advanced"] = !$_SESSION["prefs_show_advanced"];
- }
-
- function otpsecret() {
- $sth = $this->pdo->prepare("SELECT salt, otp_enabled
- FROM ttrss_users
- WHERE id = ?");
- $sth->execute([$_SESSION['uid']]);
+ function _get_otp_qrcode_img() {
+ $secret = UserHelper::get_otp_secret($_SESSION["uid"]);
+ $login = UserHelper::get_login_by_id($_SESSION["uid"]);
- if ($row = $sth->fetch()) {
- $otp_enabled = sql_bool_to_bool($row["otp_enabled"]);
+ if ($secret && $login) {
+ $qrcode = new \chillerlan\QRCode\QRCode();
- if (!$otp_enabled) {
- $base32 = new \OTPHP\Base32();
- $secret = $base32->encode(mb_substr(sha1($row["salt"]), 0, 12), false);
+ $otpurl = "otpauth://totp/".urlencode($login)."?secret=$secret&issuer=".urlencode("Tiny Tiny RSS");
- return $secret;
- }
+ return $qrcode->render($otpurl);
}
return false;
}
- function otpqrcode() {
- $csrf_token_hash = clean($_REQUEST["csrf_token_hash"]);
-
- if (sha1($_SESSION["csrf_token"]) === $csrf_token_hash) {
- require_once "lib/phpqrcode/phpqrcode.php";
-
- $sth = $this->pdo->prepare("SELECT login
- FROM ttrss_users
- WHERE id = ?");
- $sth->execute([$_SESSION['uid']]);
-
- if ($row = $sth->fetch()) {
- $secret = $this->otpsecret();
- $login = $row['login'];
-
- if ($secret) {
- QRcode::png("otpauth://totp/".urlencode($login).
- "?secret=$secret&issuer=".urlencode("Tiny Tiny RSS"));
- }
- }
- } else {
- header("Content-Type: text/json");
- print Errors::to_json(Errors::E_UNAUTHORIZED);
- }
- }
-
function otpenable() {
-
$password = clean($_REQUEST["password"]);
- $otp = clean($_REQUEST["otp"]);
+ $otp_check = clean($_REQUEST["otp"]);
$authenticator = PluginHost::getInstance()->get_plugin($_SESSION["auth_module"]);
if ($authenticator->check_password($_SESSION["uid"], $password)) {
-
- $secret = $this->otpsecret();
-
- if ($secret) {
-
- $base32 = new \OTPHP\Base32();
-
- $topt = new \OTPHP\TOTP($secret);
-
- $otp_check = $topt->now();
-
- if ($otp == $otp_check) {
- $sth = $this->pdo->prepare("UPDATE ttrss_users
- SET otp_enabled = true WHERE id = ?");
-
- $sth->execute([$_SESSION['uid']]);
-
- print "OK";
- } else {
- print "ERROR:".__("Incorrect one time password");
- }
+ if (UserHelper::enable_otp($_SESSION["uid"], $otp_check)) {
+ print "OK";
+ } else {
+ print "ERROR:".__("Incorrect one time password");
}
-
} else {
print "ERROR:".__("Incorrect password");
}
-
- }
-
- static function isdefaultpassword() {
- $authenticator = PluginHost::getInstance()->get_plugin($_SESSION["auth_module"]);
-
- if ($authenticator &&
- method_exists($authenticator, "check_password") &&
- $authenticator->check_password($_SESSION["uid"], "password")) {
-
- return true;
- }
-
- return false;
}
function otpdisable() {
@@ -1116,9 +997,7 @@ class Pref_Prefs extends Handler_Protected {
"message" => $message]);
}
- $sth = $this->pdo->prepare("UPDATE ttrss_users SET otp_enabled = false WHERE
- id = ?");
- $sth->execute([$_SESSION['uid']]);
+ UserHelper::disable_otp($_SESSION["uid"]);
print "OK";
} else {
@@ -1128,12 +1007,306 @@ class Pref_Prefs extends Handler_Protected {
}
function setplugins() {
- if (is_array(clean($_REQUEST["plugins"])))
- $plugins = join(",", clean($_REQUEST["plugins"]));
- else
- $plugins = "";
+ $plugins = array_filter($_REQUEST["plugins"], 'clean') ?? [];
+
+ set_pref(Prefs::_ENABLED_PLUGINS, implode(",", $plugins));
+ }
+
+ function _get_plugin_version(Plugin $plugin) {
+ $about = $plugin->about();
+
+ if (!empty($about[0])) {
+ return T_sprintf("v%.2f, by %s", $about[0], $about[2]);
+ } else {
+ $ref = new ReflectionClass(get_class($plugin));
+
+ $plugin_dir = dirname($ref->getFileName());
+
+ if (basename($plugin_dir) == "plugins") {
+ return "";
+ }
+
+ if (is_dir("$plugin_dir/.git")) {
+ $ver = Config::get_version_from_git($plugin_dir);
+
+ return $ver["status"] == 0 ? T_sprintf("v%s, by %s", $ver["version"], $about[2]) : $ver["version"];
+ }
+ }
+ }
+
+ static function _get_updated_plugins() {
+ $root_dir = dirname(dirname(__DIR__)); # we're in classes/pref/
+ $plugin_dirs = array_filter(glob("$root_dir/plugins.local/*"), "is_dir");
+
+ $rv = [];
+
+ foreach ($plugin_dirs as $dir) {
+ if (is_dir("$dir/.git")) {
+ $plugin_name = basename($dir);
+
+ array_push($rv, ["plugin" => $plugin_name, "rv" => self::_plugin_needs_update($root_dir, $plugin_name)]);
+ }
+ }
+
+ $rv = array_values(array_filter($rv, function ($item) {
+ return $item["rv"]["need_update"];
+ }));
+
+ return $rv;
+ }
+
+ private static function _plugin_needs_update($root_dir, $plugin_name) {
+ $plugin_dir = "$root_dir/plugins.local/" . basename($plugin_name);
+ $rv = null;
+
+ if (is_dir($plugin_dir) && is_dir("$plugin_dir/.git")) {
+ $pipes = [];
+
+ $descriptorspec = [
+ //0 => ["pipe", "r"], // STDIN
+ 1 => ["pipe", "w"], // STDOUT
+ 2 => ["pipe", "w"], // STDERR
+ ];
+
+ $proc = proc_open("git fetch -q origin -a && git log HEAD..origin/master --oneline", $descriptorspec, $pipes, $plugin_dir);
+
+ if (is_resource($proc)) {
+ $rv = [
+ "stdout" => stream_get_contents($pipes[1]),
+ "stderr" => stream_get_contents($pipes[2]),
+ "git_status" => proc_close($proc),
+ ];
+ $rv["need_update"] = !empty($rv["stdout"]);
+ }
+ }
+
+ return $rv;
+ }
+
+
+ private function _update_plugin($root_dir, $plugin_name) {
+ $plugin_dir = "$root_dir/plugins.local/" . basename($plugin_name);
+ $rv = [];
+
+ if (is_dir($plugin_dir) && is_dir("$plugin_dir/.git")) {
+ $pipes = [];
+
+ $descriptorspec = [
+ //0 => ["pipe", "r"], // STDIN
+ 1 => ["pipe", "w"], // STDOUT
+ 2 => ["pipe", "w"], // STDERR
+ ];
+
+ $proc = proc_open("git fetch origin -a && git log HEAD..origin/master --oneline && git pull --ff-only origin master", $descriptorspec, $pipes, $plugin_dir);
+
+ if (is_resource($proc)) {
+ $rv["stdout"] = stream_get_contents($pipes[1]);
+ $rv["stderr"] = stream_get_contents($pipes[2]);
+ $rv["git_status"] = proc_close($proc);
+ }
+ }
+
+ return $rv;
+ }
+
+ // https://gist.github.com/mindplay-dk/a4aad91f5a4f1283a5e2#gistcomment-2036828
+ private function _recursive_rmdir(string $dir, bool $keep_root = false) {
+ // Handle bad arguments.
+ if (empty($dir) || !file_exists($dir)) {
+ return true; // No such file/dir$dir exists.
+ } elseif (is_file($dir) || is_link($dir)) {
+ return unlink($dir); // Delete file/link.
+ }
+
+ // Delete all children.
+ $files = new \RecursiveIteratorIterator(
+ new \RecursiveDirectoryIterator($dir, \RecursiveDirectoryIterator::SKIP_DOTS),
+ \RecursiveIteratorIterator::CHILD_FIRST
+ );
+
+ foreach ($files as $fileinfo) {
+ $action = $fileinfo->isDir() ? 'rmdir' : 'unlink';
+ if (!$action($fileinfo->getRealPath())) {
+ return false; // Abort due to the failure.
+ }
+ }
+
+ return $keep_root ? true : rmdir($dir);
+ }
+
+ // https://stackoverflow.com/questions/7153000/get-class-name-from-file
+ private function _get_class_name_from_file($file) {
+ $tokens = token_get_all(file_get_contents($file));
+
+ for ($i = 0; $i < count($tokens); $i++) {
+ if (isset($tokens[$i][0]) && $tokens[$i][0] == T_CLASS) {
+ for ($j = $i+1; $j < count($tokens); $j++) {
+ if (isset($tokens[$j][1]) && $tokens[$j][1] != " ") {
+ return $tokens[$j][1];
+ }
+ }
+ }
+ }
+ }
+
+ function uninstallPlugin() {
+ if ($_SESSION["access_level"] >= 10) {
+ $plugin_name = basename(clean($_REQUEST['plugin']));
+ $status = 0;
+
+ $plugin_dir = dirname(dirname(__DIR__)) . "/plugins.local/$plugin_name";
+
+ if (is_dir($plugin_dir)) {
+ $status = $this->_recursive_rmdir($plugin_dir);
+ }
+
+ print json_encode(['status' => $status]);
+ }
+ }
+
+ function installPlugin() {
+ if ($_SESSION["access_level"] >= 10 && Config::get(Config::ENABLE_PLUGIN_INSTALLER)) {
+ $plugin_name = basename(clean($_REQUEST['plugin']));
+ $all_plugins = $this->_get_available_plugins();
+ $plugin_dir = dirname(dirname(__DIR__)) . "/plugins.local";
+
+ $work_dir = "$plugin_dir/plugin-installer";
+
+ $rv = [ ];
+
+ if (is_dir($work_dir) || mkdir($work_dir)) {
+ foreach ($all_plugins as $plugin) {
+ if ($plugin['name'] == $plugin_name) {
+
+ $tmp_dir = tempnam($work_dir, $plugin_name);
+
+ if (file_exists($tmp_dir)) {
+ unlink($tmp_dir);
+
+ $pipes = [];
+
+ $descriptorspec = [
+ 1 => ["pipe", "w"], // STDOUT
+ 2 => ["pipe", "w"], // STDERR
+ ];
+
+ $proc = proc_open("git clone " . escapeshellarg($plugin['clone_url']) . " " . $tmp_dir,
+ $descriptorspec, $pipes, sys_get_temp_dir());
+
+ $status = 0;
+
+ if (is_resource($proc)) {
+ $rv["stdout"] = stream_get_contents($pipes[1]);
+ $rv["stderr"] = stream_get_contents($pipes[2]);
+ $status = proc_close($proc);
+ $rv["git_status"] = $status;
+
+ // yeah I know about mysterious RC = -1
+ if (file_exists("$tmp_dir/init.php")) {
+ $class_name = strtolower(basename($this->_get_class_name_from_file("$tmp_dir/init.php")));
+
+ if ($class_name) {
+ $dst_dir = "$plugin_dir/$class_name";
+
+ if (is_dir($dst_dir)) {
+ $rv['result'] = self::PI_RES_ALREADY_INSTALLED;
+ } else {
+ if (rename($tmp_dir, "$plugin_dir/$class_name")) {
+ $rv['result'] = self::PI_RES_SUCCESS;
+ }
+ }
+ } else {
+ $rv['result'] = self::PI_ERR_NO_CLASS;
+ }
+ } else {
+ $rv['result'] = self::PI_ERR_NO_INIT_PHP;
+ }
+
+ } else {
+ $rv['result'] = self::PI_ERR_EXEC_FAILED;
+ }
+ } else {
+ $rv['result'] = self::PI_ERR_NO_TEMPDIR;
+ }
+
+ // cleanup after failure
+ if ($tmp_dir && is_dir($tmp_dir)) {
+ $this->_recursive_rmdir($tmp_dir);
+ }
+
+ break;
+ }
+ }
+
+ if (empty($rv['result']))
+ $rv['result'] = self::PI_ERR_PLUGIN_NOT_FOUND;
+
+ } else {
+ $rv["result"] = self::PI_ERR_NO_WORKDIR;
+ }
+
+ print json_encode($rv);
+ }
+ }
+
+ private function _get_available_plugins() {
+ if ($_SESSION["access_level"] >= 10 && Config::get(Config::ENABLE_PLUGIN_INSTALLER)) {
+ return json_decode(UrlHelper::fetch(['url' => 'https://tt-rss.org/plugins.json']), true);
+ }
+ }
+ function getAvailablePlugins() {
+ if ($_SESSION["access_level"] >= 10) {
+ print json_encode($this->_get_available_plugins());
+ }
+ }
+
+ function checkForPluginUpdates() {
+ if ($_SESSION["access_level"] >= 10 && Config::get(Config::CHECK_FOR_UPDATES) && Config::get(Config::CHECK_FOR_PLUGIN_UPDATES)) {
+ $plugin_name = $_REQUEST["name"] ?? "";
+
+ $root_dir = dirname(dirname(__DIR__)); # we're in classes/pref/
- set_pref(Prefs::_ENABLED_PLUGINS, $plugins);
+ if (!empty($plugin_name)) {
+ $rv = [["plugin" => $plugin_name, "rv" => self::_plugin_needs_update($root_dir, $plugin_name)]];
+ } else {
+ $rv = self::_get_updated_plugins();
+ }
+
+ print json_encode($rv);
+ }
+ }
+
+ function updateLocalPlugins() {
+ if ($_SESSION["access_level"] >= 10) {
+ $plugins = explode(",", $_REQUEST["plugins"] ?? "");
+
+ # we're in classes/pref/
+ $root_dir = dirname(dirname(__DIR__));
+
+ $rv = [];
+
+ if (count($plugins) > 0) {
+ foreach ($plugins as $plugin_name) {
+ array_push($rv, ["plugin" => $plugin_name, "rv" => $this->_update_plugin($root_dir, $plugin_name)]);
+ }
+ // @phpstan-ignore-next-line
+ } else {
+ $plugin_dirs = array_filter(glob("$root_dir/plugins.local/*"), "is_dir");
+
+ foreach ($plugin_dirs as $dir) {
+ if (is_dir("$dir/.git")) {
+ $plugin_name = basename($dir);
+
+ $test = self::_plugin_needs_update($root_dir, $plugin_name);
+
+ if (!empty($test["o"]))
+ array_push($rv, ["plugin" => $plugin_name, "rv" => $this->_update_plugin($root_dir, $plugin_name)]);
+ }
+ }
+ }
+
+ print json_encode($rv);
+ }
}
function clearplugindata() {
@@ -1150,66 +1323,61 @@ class Pref_Prefs extends Handler_Protected {
}
function activateprofile() {
- $_SESSION["profile"] = (int) clean($_REQUEST["id"]);
+ $id = (int) $_REQUEST['id'] ?? 0;
+
+ $profile = ORM::for_table('ttrss_settings_profiles')
+ ->where('owner_uid', $_SESSION['uid'])
+ ->find_one($id);
- // default value
- if (!$_SESSION["profile"]) $_SESSION["profile"] = null;
+ if ($profile) {
+ $_SESSION["profile"] = $id;
+ } else {
+ $_SESSION["profile"] = null;
+ }
}
function remprofiles() {
- $ids = explode(",", clean($_REQUEST["ids"]));
+ $ids = $_REQUEST["ids"] ?? [];
- foreach ($ids as $id) {
- if ($_SESSION["profile"] != $id) {
- $sth = $this->pdo->prepare("DELETE FROM ttrss_settings_profiles WHERE id = ? AND
- owner_uid = ?");
- $sth->execute([$id, $_SESSION['uid']]);
- }
- }
+ ORM::for_table('ttrss_settings_profiles')
+ ->where('owner_uid', $_SESSION['uid'])
+ ->where_in('id', $ids)
+ ->where_not_equal('id', $_SESSION['profile'] ?? 0)
+ ->delete_many();
}
function addprofile() {
$title = clean($_REQUEST["title"]);
if ($title) {
- $this->pdo->beginTransaction();
-
- $sth = $this->pdo->prepare("SELECT id FROM ttrss_settings_profiles
- WHERE title = ? AND owner_uid = ?");
- $sth->execute([$title, $_SESSION['uid']]);
-
- if (!$sth->fetch()) {
+ $profile = ORM::for_table('ttrss_settings_profiles')
+ ->where('owner_uid', $_SESSION['uid'])
+ ->where('title', $title)
+ ->find_one();
- $sth = $this->pdo->prepare("INSERT INTO ttrss_settings_profiles (title, owner_uid)
- VALUES (?, ?)");
+ if (!$profile) {
+ $profile = ORM::for_table('ttrss_settings_profiles')->create();
- $sth->execute([$title, $_SESSION['uid']]);
-
- $sth = $this->pdo->prepare("SELECT id FROM ttrss_settings_profiles WHERE
- title = ? AND owner_uid = ?");
- $sth->execute([$title, $_SESSION['uid']]);
+ $profile->title = $title;
+ $profile->owner_uid = $_SESSION['uid'];
+ $profile->save();
}
-
- $this->pdo->commit();
}
}
function saveprofile() {
- $id = clean($_REQUEST["id"]);
- $title = clean($_REQUEST["title"]);
+ $id = (int)$_REQUEST["id"];
+ $title = clean($_REQUEST["value"]);
- if ($id == 0) {
- print __("Default profile");
- return;
- }
-
- if ($title) {
- $sth = $this->pdo->prepare("UPDATE ttrss_settings_profiles
- SET title = ? WHERE id = ? AND
- owner_uid = ?");
+ if ($title && $id) {
+ $profile = ORM::for_table('ttrss_settings_profiles')
+ ->where('owner_uid', $_SESSION['uid'])
+ ->find_one($id);
- $sth->execute([$title, $id, $_SESSION['uid']]);
- print $title;
+ if ($profile) {
+ $profile->title = $title;
+ $profile->save();
+ }
}
}
@@ -1217,18 +1385,19 @@ class Pref_Prefs extends Handler_Protected {
function getProfiles() {
$rv = [];
- $sth = $this->pdo->prepare("SELECT title,id FROM ttrss_settings_profiles
- WHERE owner_uid = ? ORDER BY title");
- $sth->execute([$_SESSION['uid']]);
+ $profiles = ORM::for_table('ttrss_settings_profiles')
+ ->where('owner_uid', $_SESSION['uid'])
+ ->order_by_expr('title')
+ ->find_many();
array_push($rv, ["title" => __("Default profile"),
"id" => 0,
"active" => empty($_SESSION["profile"])
]);
- while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
- $row["active"] = isset($_SESSION["profile"]) && $_SESSION["profile"] == $row["id"];
- array_push($rv, $row);
+ foreach ($profiles as $profile) {
+ $profile['active'] = ($_SESSION["profile"] ?? 0) == $profile->id;
+ array_push($rv, $profile->as_array());
};
print json_encode($rv);
@@ -1271,23 +1440,25 @@ class Pref_Prefs extends Handler_Protected {
<th align='right'><?= __("Last used") ?></th>
</tr>
<?php
- $sth = $this->pdo->prepare("SELECT id, title, created, last_used
- FROM ttrss_app_passwords WHERE owner_uid = ?");
- $sth->execute([$_SESSION['uid']]);
- while ($row = $sth->fetch()) { ?>
- <tr data-row-id='<?= $row['id'] ?>'>
+ $passwords = ORM::for_table('ttrss_app_passwords')
+ ->where('owner_uid', $_SESSION['uid'])
+ ->order_by_asc('title')
+ ->find_many();
+
+ foreach ($passwords as $pass) { ?>
+ <tr data-row-id='<?= $pass['id'] ?>'>
<td align='center'>
<input onclick='Tables.onRowChecked(this)' dojoType='dijit.form.CheckBox' type='checkbox'>
</td>
<td>
- <?= htmlspecialchars($row["title"]) ?>
+ <?= htmlspecialchars($pass["title"]) ?>
</td>
<td align='right' class='text-muted'>
- <?= TimeHelper::make_local_datetime($row['created'], false) ?>
+ <?= TimeHelper::make_local_datetime($pass['created'], false) ?>
</td>
<td align='right' class='text-muted'>
- <?= TimeHelper::make_local_datetime($row['last_used'], false) ?>
+ <?= TimeHelper::make_local_datetime($pass['last_used'], false) ?>
</td>
</tr>
<?php } ?>
@@ -1296,18 +1467,11 @@ class Pref_Prefs extends Handler_Protected {
<?php
}
- private function _encrypt_app_password($password) {
- $salt = substr(bin2hex(get_random_bytes(24)), 0, 24);
-
- return "SSHA-512:".hash('sha512', $salt . $password). ":$salt";
- }
-
- function deleteAppPassword() {
- $ids = explode(",", clean($_REQUEST['ids']));
- $ids_qmarks = arr_qmarks($ids);
-
- $sth = $this->pdo->prepare("DELETE FROM ttrss_app_passwords WHERE id IN ($ids_qmarks) AND owner_uid = ?");
- $sth->execute(array_merge($ids, [$_SESSION['uid']]));
+ function deleteAppPasswords() {
+ $passwords = ORM::for_table('ttrss_app_passwords')
+ ->where('owner_uid', $_SESSION['uid'])
+ ->where_in('id', $_REQUEST['ids'] ?? [])
+ ->delete_many();
$this->appPasswordList();
}
@@ -1315,17 +1479,41 @@ class Pref_Prefs extends Handler_Protected {
function generateAppPassword() {
$title = clean($_REQUEST['title']);
$new_password = make_password(16);
- $new_password_hash = $this->_encrypt_app_password($new_password);
+ $new_salt = UserHelper::get_salt();
+ $new_password_hash = UserHelper::hash_password($new_password, $new_salt, UserHelper::HASH_ALGOS[0]);
print_warning(T_sprintf("Generated password <strong>%s</strong> for %s. Please remember it for future reference.", $new_password, $title));
- $sth = $this->pdo->prepare("INSERT INTO ttrss_app_passwords
- (title, pwd_hash, service, created, owner_uid)
- VALUES
- (?, ?, ?, NOW(), ?)");
+ $password = ORM::for_table('ttrss_app_passwords')->create();
- $sth->execute([$title, $new_password_hash, Auth_Base::AUTH_SERVICE_API, $_SESSION['uid']]);
+ $password->title = $title;
+ $password->owner_uid = $_SESSION['uid'];
+ $password->pwd_hash = "$new_password_hash:$new_salt";
+ $password->service = Auth_Base::AUTH_SERVICE_API;
+ $password->created = Db::NOW();
+
+ $password->save();
$this->appPasswordList();
}
+
+ function previewDigest() {
+ print json_encode(Digest::prepare_headlines_digest($_SESSION["uid"], 1, 16));
+ }
+
+ static function _get_ssl_certificate_id() {
+ if ($_SERVER["REDIRECT_SSL_CLIENT_M_SERIAL"] ?? false) {
+ return sha1($_SERVER["REDIRECT_SSL_CLIENT_M_SERIAL"] .
+ $_SERVER["REDIRECT_SSL_CLIENT_V_START"] .
+ $_SERVER["REDIRECT_SSL_CLIENT_V_END"] .
+ $_SERVER["REDIRECT_SSL_CLIENT_S_DN"]);
+ }
+ if ($_SERVER["SSL_CLIENT_M_SERIAL"] ?? false) {
+ return sha1($_SERVER["SSL_CLIENT_M_SERIAL"] .
+ $_SERVER["SSL_CLIENT_V_START"] .
+ $_SERVER["SSL_CLIENT_V_END"] .
+ $_SERVER["SSL_CLIENT_S_DN"]);
+ }
+ return "";
+ }
}
diff --git a/classes/pref/system.php b/classes/pref/system.php
index 85635e753..c79b5095d 100644
--- a/classes/pref/system.php
+++ b/classes/pref/system.php
@@ -14,6 +14,20 @@ class Pref_System extends Handler_Administrative {
$this->pdo->query("DELETE FROM ttrss_error_log");
}
+ function sendTestEmail() {
+ $mail_address = clean($_REQUEST["mail_address"]);
+
+ $mailer = new Mailer();
+
+ $rc = $mailer->mail(["to_name" => "",
+ "to_address" => $mail_address,
+ "subject" => __("Test message from tt-rss"),
+ "message" => ("This message confirms that tt-rss can send outgoing mail.")
+ ]);
+
+ print json_encode(['rc' => $rc, 'error' => $mailer->error()]);
+ }
+
function getphpinfo() {
ob_start();
phpinfo();
@@ -103,12 +117,12 @@ class Pref_System extends Handler_Administrative {
<table width='100%' class='event-log'>
- <tr class='title'>
- <td width='5%'><?= __("Error") ?></td>
- <td><?= __("Filename") ?></td>
- <td><?= __("Message") ?></td>
- <td width='5%'><?= __("User") ?></td>
- <td width='5%'><?= __("Date") ?></td>
+ <tr>
+ <th width='5%'><?= __("Error") ?></th>
+ <th><?= __("Filename") ?></th>
+ <th><?= __("Message") ?></th>
+ <th width='5%'><?= __("User") ?></th>
+ <th width='5%'><?= __("Date") ?></th>
</tr>
<?php
@@ -151,16 +165,48 @@ class Pref_System extends Handler_Administrative {
$page = (int) ($_REQUEST["page"] ?? 0);
?>
<div dojoType='dijit.layout.AccordionContainer' region='center'>
- <div dojoType='dijit.layout.AccordionPane' style='padding : 0' title='<i class="material-icons">report</i> <?= __('Event Log') ?>'>
- <?php
- if (Config::get(Config::LOG_DESTINATION) == "sql") {
+ <?php if (Config::get(Config::LOG_DESTINATION) == Logger::LOG_DEST_SQL) { ?>
+ <div dojoType='dijit.layout.AccordionPane' style='padding : 0' title='<i class="material-icons">report</i> <?= __('Event log') ?>'>
+ <?php
$this->_log_viewer($page, $severity);
- } else {
- print_notice("Please set Config::get(Config::LOG_DESTINATION) to 'sql' in config.php to enable database logging.");
- }
- ?>
+ ?>
+ </div>
+ <?php } ?>
+ <div dojoType='dijit.layout.AccordionPane' style='padding : 0' title='<i class="material-icons">mail</i> <?= __('Mail configuration') ?>'>
+ <div dojoType="dijit.layout.ContentPane">
+
+ <form dojoType="dijit.form.Form">
+ <script type="dojo/method" event="onSubmit" args="evt">
+ evt.preventDefault();
+ if (this.validate()) {
+ xhr.json("backend.php", this.getValues(), (reply) => {
+ const msg = App.byId("mail-test-result");
+
+ if (reply.rc) {
+ msg.innerHTML = __("Mail sent.");
+ msg.className = 'alert alert-success';
+ } else {
+ msg.innerHTML = reply.error;
+ msg.className = 'alert alert-danger';
+ }
+
+ msg.show();
+ })
+ }
+ </script>
+
+ <?= \Controls\hidden_tag("op", "pref-system") ?>
+ <?= \Controls\hidden_tag("method", "sendTestEmail") ?>
+
+ <fieldset>
+ <label><?= __("To:") ?></label>
+ <?= \Controls\input_tag("mail_address", "", "text", ['required' => 1]) ?>
+ <?= \Controls\submit_tag(__("Send test email")) ?>
+ <span style="display: none; margin-left : 10px" class="alert alert-error" id="mail-test-result">...</span>
+ </fieldset>
+ </form>
+ </div>
</div>
-
<div dojoType='dijit.layout.AccordionPane' title='<i class="material-icons">info</i> <?= __('PHP Information') ?>'>
<script type='dojo/method' event='onSelected' args='evt'>
if (this.domNode.querySelector('.loading'))
diff --git a/classes/pref/users.php b/classes/pref/users.php
index 13f808cb3..2e3dc4b67 100644
--- a/classes/pref/users.php
+++ b/classes/pref/users.php
@@ -1,24 +1,22 @@
<?php
class Pref_Users extends Handler_Administrative {
function csrf_ignore($method) {
- $csrf_ignored = array("index");
-
- return array_search($method, $csrf_ignored) !== false;
+ return $method == "index";
}
function edit() {
- global $access_level_names;
-
- $id = (int)clean($_REQUEST["id"]);
+ $user = ORM::for_table('ttrss_users')
+ ->select_expr("id,login,access_level,email,full_name,otp_enabled")
+ ->find_one((int)$_REQUEST["id"])
+ ->as_array();
- $sth = $this->pdo->prepare("SELECT id, login, access_level, email FROM ttrss_users WHERE id = ?");
- $sth->execute([$id]);
+ global $access_level_names;
- if ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
+ if ($user) {
print json_encode([
- "user" => $row,
- "access_level_names" => $access_level_names
- ]);
+ "user" => $user,
+ "access_level_names" => $access_level_names
+ ]);
}
}
@@ -106,31 +104,32 @@ class Pref_Users extends Handler_Administrative {
}
function editSave() {
- $login = clean($_REQUEST["login"]);
- $uid = clean($_REQUEST["id"]);
- $access_level = (int) clean($_REQUEST["access_level"]);
- $email = clean($_REQUEST["email"]);
+ $id = (int)$_REQUEST['id'];
$password = clean($_REQUEST["password"]);
+ $user = ORM::for_table('ttrss_users')->find_one($id);
- // no blank usernames
- if (!$login) return;
+ if ($user) {
+ $login = clean($_REQUEST["login"]);
- // forbid renaming admin
- if ($uid == 1) $login = "admin";
+ if ($id == 1) $login = "admin";
+ if (!$login) return;
- if ($password) {
- $salt = substr(bin2hex(get_random_bytes(125)), 0, 250);
- $pwd_hash = encrypt_password($password, $salt, true);
- $pass_query_part = "pwd_hash = ".$this->pdo->quote($pwd_hash).",
- salt = ".$this->pdo->quote($salt).",";
- } else {
- $pass_query_part = "";
- }
+ $user->login = mb_strtolower($login);
+ $user->access_level = (int) clean($_REQUEST["access_level"]);
+ $user->email = clean($_REQUEST["email"]);
+ $user->otp_enabled = checkbox_to_sql_bool($_REQUEST["otp_enabled"]);
- $sth = $this->pdo->prepare("UPDATE ttrss_users SET $pass_query_part login = LOWER(?),
- access_level = ?, email = ?, otp_enabled = false WHERE id = ?");
- $sth->execute([$login, $access_level, $email, $uid]);
+ // force new OTP secret when next enabled
+ if (Config::get_schema_version() >= 143 && !$user->otp_enabled) {
+ $user->otp_secret = null;
+ }
+
+ $user->save();
+ }
+ if ($password) {
+ UserHelper::reset_password($id, false, $password);
+ }
}
function remove() {
@@ -152,24 +151,25 @@ class Pref_Users extends Handler_Administrative {
function add() {
$login = clean($_REQUEST["login"]);
- $tmp_user_pwd = make_password();
- $salt = substr(bin2hex(get_random_bytes(125)), 0, 250);
- $pwd_hash = encrypt_password($tmp_user_pwd, $salt, true);
if (!$login) return; // no blank usernames
if (!UserHelper::find_user_by_login($login)) {
- $sth = $this->pdo->prepare("INSERT INTO ttrss_users
- (login,pwd_hash,access_level,last_login,created, salt)
- VALUES (LOWER(?), ?, 0, null, NOW(), ?)");
- $sth->execute([$login, $pwd_hash, $salt]);
+ $new_password = make_password();
- if ($new_uid = UserHelper::find_user_by_login($login)) {
+ $user = ORM::for_table('ttrss_users')->create();
- print T_sprintf("Added user %s with password %s",
- $login, $tmp_user_pwd);
+ $user->salt = UserHelper::get_salt();
+ $user->login = mb_strtolower($login);
+ $user->pwd_hash = UserHelper::hash_password($new_password, $user->salt);
+ $user->access_level = 0;
+ $user->created = Db::NOW();
+ $user->save();
+ if ($new_uid = UserHelper::find_user_by_login($login)) {
+ print T_sprintf("Added user %s with password %s",
+ $login, $new_password);
} else {
print T_sprintf("Could not create user %s", $login);
}
@@ -200,11 +200,10 @@ class Pref_Users extends Handler_Administrative {
$sort = "login";
}
- $sort = $this->_validate_field($sort,
- ["login", "access_level", "created", "num_feeds", "created", "last_login"], "login");
+ if (!in_array($sort, ["login", "access_level", "created", "num_feeds", "created", "last_login"]))
+ $sort = "login";
if ($sort != "login") $sort = "$sort DESC";
-
?>
<div dojoType='dijit.layout.BorderContainer' gutters='false'>
@@ -249,42 +248,41 @@ class Pref_Users extends Handler_Administrative {
<table width='100%' class='users-list' id='users-list'>
- <tr class='title'>
- <td align='center' width='5%'> </td>
- <td width='20%'><a href='#' onclick="Users.reload('login')"><?= ('Login') ?></a></td>
- <td width='20%'><a href='#' onclick="Users.reload('access_level')"><?= ('Access Level') ?></a></td>
- <td width='10%'><a href='#' onclick="Users.reload('num_feeds')"><?= ('Subscribed feeds') ?></a></td>
- <td width='20%'><a href='#' onclick="Users.reload('created')"><?= ('Registered') ?></a></td>
- <td width='20%'><a href='#' onclick="Users.reload('last_login')"><?= ('Last login') ?></a></td>
+ <tr>
+ <th></th>
+ <th><a href='#' onclick="Users.reload('login')"><?= ('Login') ?></a></th>
+ <th><a href='#' onclick="Users.reload('access_level')"><?= ('Access Level') ?></a></th>
+ <th><a href='#' onclick="Users.reload('num_feeds')"><?= ('Subscribed feeds') ?></a></th>
+ <th><a href='#' onclick="Users.reload('created')"><?= ('Registered') ?></a></th>
+ <th><a href='#' onclick="Users.reload('last_login')"><?= ('Last login') ?></a></th>
</tr>
<?php
- $sth = $this->pdo->prepare("SELECT
- tu.id,
- login,access_level,email,
- ".SUBSTRING_FOR_DATE."(last_login,1,16) as last_login,
- ".SUBSTRING_FOR_DATE."(created,1,16) as created,
- (SELECT COUNT(id) FROM ttrss_feeds WHERE owner_uid = tu.id) AS num_feeds
- FROM
- ttrss_users tu
- WHERE
- (:search = '' OR login LIKE :search) AND tu.id > 0
- ORDER BY $sort");
- $sth->execute([":search" => $user_search ? "%$user_search%" : ""]);
-
- while ($row = $sth->fetch()) { ?>
-
- <tr data-row-id='<?= $row["id"] ?>' onclick='Users.edit(<?= $row["id"] ?>)' title="<?= __('Click to edit') ?>">
- <td align='center'>
+ $users = ORM::for_table('ttrss_users')
+ ->table_alias('u')
+ ->left_outer_join("ttrss_feeds", ["owner_uid", "=", "u.id"], 'f')
+ ->select_expr('u.*,COUNT(f.id) AS num_feeds')
+ ->where_like("login", $user_search ? "%$user_search%" : "%")
+ ->order_by_expr($sort)
+ ->group_by_expr('u.id')
+ ->find_many();
+
+ foreach ($users as $user) { ?>
+
+ <tr data-row-id='<?= $user["id"] ?>' onclick='Users.edit(<?= $user["id"] ?>)' title="<?= __('Click to edit') ?>">
+ <td class='checkbox'>
<input onclick='Tables.onRowChecked(this); event.stopPropagation();'
dojoType='dijit.form.CheckBox' type='checkbox'>
</td>
- <td><i class='material-icons'>person</i> <?= htmlspecialchars($row["login"]) ?></td>
- <td><?= $access_level_names[$row["access_level"]] ?></td>
- <td><?= $row["num_feeds"] ?></td>
- <td><?= TimeHelper::make_local_datetime($row["created"], false) ?></td>
- <td><?= TimeHelper::make_local_datetime($row["last_login"], false) ?></td>
+ <td width='30%'>
+ <i class='material-icons'>person</i>
+ <strong><?= htmlspecialchars($user["login"]) ?></strong>
+ </td>
+ <td><?= $access_level_names[$user["access_level"]] ?></td>
+ <td><?= $user["num_feeds"] ?></td>
+ <td class='text-muted'><?= TimeHelper::make_local_datetime($user["created"], false) ?></td>
+ <td class='text-muted'><?= TimeHelper::make_local_datetime($user["last_login"], false) ?></td>
</tr>
<?php } ?>
</table>
@@ -294,11 +292,4 @@ class Pref_Users extends Handler_Administrative {
<?php
}
- private function _validate_field($string, $allowed, $default = "") {
- if (in_array($string, $allowed))
- return $string;
- else
- return $default;
- }
-
}
diff --git a/classes/prefs.php b/classes/prefs.php
index 8eba40ad5..24f0f7a80 100644
--- a/classes/prefs.php
+++ b/classes/prefs.php
@@ -58,6 +58,8 @@ class Prefs {
const _PREFS_MIGRATED = "_PREFS_MIGRATED";
const HEADLINES_NO_DISTINCT = "HEADLINES_NO_DISTINCT";
const DEBUG_HEADLINE_IDS = "DEBUG_HEADLINE_IDS";
+ const DISABLE_CONDITIONAL_COUNTERS = "DISABLE_CONDITIONAL_COUNTERS";
+ const WIDESCREEN_MODE = "WIDESCREEN_MODE";
private const _DEFAULTS = [
Prefs::PURGE_OLD_DAYS => [ 60, Config::T_INT ],
@@ -76,7 +78,7 @@ class Prefs {
Prefs::DIGEST_ENABLE => [ false, Config::T_BOOL ],
Prefs::CONFIRM_FEED_CATCHUP => [ true, Config::T_BOOL ],
Prefs::CDM_AUTO_CATCHUP => [ false, Config::T_BOOL ],
- Prefs::_DEFAULT_VIEW_MODE => [ "adaptive", Config::T_BOOL ],
+ Prefs::_DEFAULT_VIEW_MODE => [ "adaptive", Config::T_STRING ],
Prefs::_DEFAULT_VIEW_LIMIT => [ 30, Config::T_INT ],
//Prefs::_PREFS_ACTIVE_TAB => [ "", Config::T_STRING ],
//Prefs::STRIP_UNSAFE_TAGS => [ true, Config::T_BOOL ],
@@ -116,6 +118,8 @@ class Prefs {
Prefs::_PREFS_MIGRATED => [ false, Config::T_BOOL ],
Prefs::HEADLINES_NO_DISTINCT => [ false, Config::T_BOOL ],
Prefs::DEBUG_HEADLINE_IDS => [ false, Config::T_BOOL ],
+ Prefs::DISABLE_CONDITIONAL_COUNTERS => [ false, Config::T_BOOL ],
+ Prefs::WIDESCREEN_MODE => [ false, Config::T_BOOL ],
];
const _PROFILE_BLACKLIST = [
diff --git a/classes/rpc.php b/classes/rpc.php
index aaaf4f8d5..35125ae04 100755
--- a/classes/rpc.php
+++ b/classes/rpc.php
@@ -121,7 +121,8 @@ class RPC extends Handler_Protected {
else
$label_ids = array_map("intval", clean($_REQUEST["label_ids"] ?? []));
- $counters = is_array($feed_ids) ? Counters::get_conditional($feed_ids, $label_ids) : Counters::get_all();
+ $counters = is_array($feed_ids) && !get_pref(Prefs::DISABLE_CONDITIONAL_COUNTERS) ?
+ Counters::get_conditional($feed_ids, $label_ids) : Counters::get_all();
$reply = [
'counters' => $counters,
@@ -151,7 +152,9 @@ class RPC extends Handler_Protected {
if (count($ids) > 0)
$this->markArticlesById($ids, $cmode);
- print json_encode(["message" => "UPDATE_COUNTERS", "feeds" => Article::_feeds_of($ids)]);
+ print json_encode(["message" => "UPDATE_COUNTERS",
+ "labels" => Article::_labels_of($ids),
+ "feeds" => Article::_feeds_of($ids)]);
}
function publishSelected() {
@@ -161,17 +164,30 @@ class RPC extends Handler_Protected {
if (count($ids) > 0)
$this->publishArticlesById($ids, $cmode);
- print json_encode(["message" => "UPDATE_COUNTERS", "feeds" => Article::_feeds_of($ids)]);
+ print json_encode(["message" => "UPDATE_COUNTERS",
+ "labels" => Article::_labels_of($ids),
+ "feeds" => Article::_feeds_of($ids)]);
}
function sanityCheck() {
$_SESSION["hasSandbox"] = clean($_REQUEST["hasSandbox"]) === "true";
$_SESSION["clientTzOffset"] = clean($_REQUEST["clientTzOffset"]);
+ $client_location = $_REQUEST["clientLocation"];
+
$error = Errors::E_SUCCESS;
+ $error_params = [];
+
+ $client_scheme = parse_url($client_location, PHP_URL_SCHEME);
+ $server_scheme = parse_url(Config::get_self_url(), PHP_URL_SCHEME);
- if (get_schema_version() != SCHEMA_VERSION) {
+ if (Config::is_migration_needed()) {
$error = Errors::E_SCHEMA_MISMATCH;
+ } else if ($client_scheme != $server_scheme) {
+ $error = Errors::E_URL_SCHEME_MISMATCH;
+ $error_params["client_scheme"] = $client_scheme;
+ $error_params["server_scheme"] = $server_scheme;
+ $error_params["self_url_path"] = Config::get_self_url();
}
if ($error == Errors::E_SUCCESS) {
@@ -183,7 +199,7 @@ class RPC extends Handler_Protected {
print json_encode($reply);
} else {
- print Errors::to_json($error);
+ print Errors::to_json($error, $error_params);
}
}
@@ -219,14 +235,12 @@ class RPC extends Handler_Protected {
//print json_encode(array("message" => "UPDATE_COUNTERS"));
}
- function setpanelmode() {
+ function setWidescreen() {
$wide = (int) clean($_REQUEST["wide"]);
- // FIXME should this use SESSION_COOKIE_LIFETIME and be renewed periodically?
- setcookie("ttrss_widescreen", (string)$wide,
- time() + 86400*365);
+ set_pref(Prefs::WIDESCREEN_MODE, $wide);
- print json_encode(array("wide" => $wide));
+ print json_encode(["wide" => $wide]);
}
static function updaterandomfeed_real() {
@@ -237,27 +251,27 @@ class RPC extends Handler_Protected {
if (Config::get(Config::DB_TYPE) == "pgsql") {
$update_limit_qpart = "AND ((
update_interval = 0
- AND p.value != '-1'
+ AND (p.value IS NULL OR p.value != '-1')
AND last_updated < NOW() - CAST((COALESCE(p.value, '$default_interval') || ' minutes') AS INTERVAL)
) OR (
update_interval > 0
AND last_updated < NOW() - CAST((update_interval || ' minutes') AS INTERVAL)
) OR (
update_interval >= 0
- AND p.value != '-1'
+ AND (p.value IS NULL OR p.value != '-1')
AND (last_updated = '1970-01-01 00:00:00' OR last_updated IS NULL)
))";
} else {
$update_limit_qpart = "AND ((
update_interval = 0
- AND p.value != '-1'
+ AND (p.value IS NULL OR p.value != '-1')
AND last_updated < DATE_SUB(NOW(), INTERVAL CONVERT(COALESCE(p.value, '$default_interval'), SIGNED INTEGER) MINUTE)
) OR (
update_interval > 0
AND last_updated < DATE_SUB(NOW(), INTERVAL update_interval MINUTE)
) OR (
update_interval >= 0
- AND p.value != '-1'
+ AND (p.value IS NULL OR p.value != '-1')
AND (last_updated = '1970-01-01 00:00:00' OR last_updated IS NULL)
))";
}
@@ -368,10 +382,10 @@ class RPC extends Handler_Protected {
}
function log() {
- $msg = clean($_REQUEST['msg']);
- $file = basename(clean($_REQUEST['file']));
- $line = (int) clean($_REQUEST['line']);
- $context = clean($_REQUEST['context']);
+ $msg = clean($_REQUEST['msg'] ?? "");
+ $file = basename(clean($_REQUEST['file'] ?? ""));
+ $line = (int) clean($_REQUEST['line'] ?? 0);
+ $context = clean($_REQUEST['context'] ?? "");
if ($msg) {
Logger::log_error(E_USER_WARNING,
@@ -382,12 +396,12 @@ class RPC extends Handler_Protected {
}
function checkforupdates() {
- $rv = [];
+ $rv = ["changeset" => [], "plugins" => []];
- $git_timestamp = false;
- $git_commit = false;
+ $version = Config::get_version(false);
- get_version($git_commit, $git_timestamp);
+ $git_timestamp = $version["timestamp"] ?? false;
+ $git_commit = $version["commit"] ?? false;
if (Config::get(Config::CHECK_FOR_UPDATES) && $_SESSION["access_level"] >= 10 && $git_timestamp) {
$content = @UrlHelper::fetch(["url" => "https://tt-rss.org/version.json"]);
@@ -399,10 +413,12 @@ class RPC extends Handler_Protected {
if ($git_timestamp < (int)$content["changeset"]["timestamp"] &&
$git_commit != $content["changeset"]["id"]) {
- $rv = $content["changeset"];
+ $rv["changeset"] = $content["changeset"];
}
}
}
+
+ $rv["plugins"] = Pref_Prefs::_get_updated_plugins();
}
print json_encode($rv);
@@ -427,8 +443,8 @@ class RPC extends Handler_Protected {
$params["default_view_mode"] = get_pref(Prefs::_DEFAULT_VIEW_MODE);
$params["default_view_limit"] = (int) get_pref(Prefs::_DEFAULT_VIEW_LIMIT);
$params["default_view_order_by"] = get_pref(Prefs::_DEFAULT_VIEW_ORDER_BY);
- $params["bw_limit"] = (int) $_SESSION["bw_limit"];
- $params["is_default_pw"] = Pref_Prefs::isdefaultpassword();
+ $params["bw_limit"] = (int) ($_SESSION["bw_limit"] ?? false);
+ $params["is_default_pw"] = UserHelper::is_default_password();
$params["label_base_index"] = LABEL_BASE_INDEX;
$theme = get_pref(Prefs::USER_CSS_THEME);
@@ -449,11 +465,11 @@ class RPC extends Handler_Protected {
$max_feed_id = $row["mid"];
$num_feeds = $row["nf"];
- $params["self_url_prefix"] = get_self_url_prefix();
+ $params["self_url_prefix"] = Config::get_self_url();
$params["max_feed_id"] = (int) $max_feed_id;
$params["num_feeds"] = (int) $num_feeds;
$params["hotkeys"] = $this->get_hotkeys_map();
- $params["widescreen"] = (int) ($_COOKIE["ttrss_widescreen"] ?? 0);
+ $params["widescreen"] = (int) get_pref(Prefs::WIDESCREEN_MODE);
$params['simple_update'] = Config::get(Config::SIMPLE_UPDATE_MODE);
$params["icon_indicator_white"] = $this->image_to_base64("images/indicator_white.gif");
$params["labels"] = Labels::get_all($_SESSION["uid"]);
diff --git a/classes/rssutils.php b/classes/rssutils.php
index 11a94162c..e6bf08ab1 100755
--- a/classes/rssutils.php
+++ b/classes/rssutils.php
@@ -21,7 +21,7 @@ class RSSUtils {
}
// Strips utf8mb4 characters (i.e. emoji) for mysql
- static function strip_utf8mb4($str) {
+ static function strip_utf8mb4(string $str) {
return preg_replace('/[\x{10000}-\x{10FFFF}]/u', "\xEF\xBF\xBD", $str);
}
@@ -52,10 +52,10 @@ class RSSUtils {
}
}
- static function update_daemon_common($limit = null, $options = []) {
+ static function update_daemon_common(int $limit = 0, array $options = []) {
if (!$limit) $limit = Config::get(Config::DAEMON_FEED_LIMIT);
- if (get_schema_version() != SCHEMA_VERSION) {
+ if (Config::get_schema_version() != Config::SCHEMA_VERSION) {
die("Schema version is wrong, please upgrade the database.\n");
}
@@ -78,27 +78,27 @@ class RSSUtils {
if (Config::get(Config::DB_TYPE) == "pgsql") {
$update_limit_qpart = "AND ((
update_interval = 0
- AND p.value != '-1'
+ AND (p.value IS NULL OR p.value != '-1')
AND last_updated < NOW() - CAST((COALESCE(p.value, '$default_interval') || ' minutes') AS INTERVAL)
) OR (
update_interval > 0
AND last_updated < NOW() - CAST((update_interval || ' minutes') AS INTERVAL)
) OR (
update_interval >= 0
- AND p.value != '-1'
+ AND (p.value IS NULL OR p.value != '-1')
AND (last_updated = '1970-01-01 00:00:00' OR last_updated IS NULL)
))";
} else {
$update_limit_qpart = "AND ((
update_interval = 0
- AND p.value != '-1'
+ AND (p.value IS NULL OR p.value != '-1')
AND last_updated < DATE_SUB(NOW(), INTERVAL CONVERT(COALESCE(p.value, '$default_interval'), SIGNED INTEGER) MINUTE)
) OR (
update_interval > 0
AND last_updated < DATE_SUB(NOW(), INTERVAL update_interval MINUTE)
) OR (
update_interval >= 0
- AND p.value != '-1'
+ AND (p.value IS NULL OR p.value != '-1')
AND (last_updated = '1970-01-01 00:00:00' OR last_updated IS NULL)
))";
}
@@ -229,11 +229,9 @@ class RSSUtils {
} else {
try {
if (!self::update_rss_feed($tline["id"], true)) {
- global $fetch_last_error;
-
Logger::log(E_USER_NOTICE,
sprintf("Update request for feed %d (%s, owner UID: %d) failed: %s.",
- $tline["id"], clean($tline["title"]), $tline["owner_uid"], clean($fetch_last_error)));
+ $tline["id"], clean($tline["title"]), $tline["owner_uid"], clean(UrlHelper::$fetch_last_error)));
}
Debug::log(sprintf("<= %.4f (sec) (not using a separate process)", microtime(true) - $fstarted));
@@ -271,8 +269,8 @@ class RSSUtils {
return $nf;
}
- // this is used when subscribing
- static function set_basic_feed_info($feed) {
+ /** this is used when subscribing; TODO: update to ORM */
+ static function update_basic_info(int $feed) {
$pdo = Db::pdo();
@@ -346,215 +344,197 @@ class RSSUtils {
}
}
- static function update_rss_feed($feed, $no_cache = false) {
+ static function update_rss_feed(int $feed, bool $no_cache = false) : bool {
- Debug::log("start", Debug::$LOG_VERBOSE);
+ Debug::log("start", Debug::LOG_VERBOSE);
$pdo = Db::pdo();
- $sth = $pdo->prepare("SELECT title, site_url FROM ttrss_feeds WHERE id = ?");
- $sth->execute([$feed]);
-
- if (!$row = $sth->fetch()) {
- Debug::log("feed $feed not found, skipping.");
- user_error("Attempt to update unknown/invalid feed $feed", E_USER_WARNING);
- return false;
- }
-
- $title = $row["title"];
- $site_url = $row["site_url"];
-
- // feed was batch-subscribed or something, we need to get basic info
- // this is not optimal currently as it fetches stuff separately TODO: optimize
- if ($title == "[Unknown]" || !$title || !$site_url) {
- Debug::log("setting basic feed info for $feed [$title, $site_url]...");
- self::set_basic_feed_info($feed);
+ if (Config::get(Config::DB_TYPE) == "pgsql") {
+ $favicon_interval_qpart = "favicon_last_checked < NOW() - INTERVAL '12 hour'";
+ } else {
+ $favicon_interval_qpart = "favicon_last_checked < DATE_SUB(NOW(), INTERVAL 12 HOUR)";
}
- $sth = $pdo->prepare("SELECT id,update_interval,auth_login,
- feed_url,auth_pass,cache_images,
- mark_unread_on_update, owner_uid,
- auth_pass_encrypted, feed_language,
- last_modified,
- ".SUBSTRING_FOR_DATE."(last_unconditional, 1, 19) AS last_unconditional
- FROM ttrss_feeds WHERE id = ?");
- $sth->execute([$feed]);
+ $feed_obj = ORM::for_table('ttrss_feeds')
+ ->select_expr("ttrss_feeds.*,
+ ".SUBSTRING_FOR_DATE."(last_unconditional, 1, 19) AS last_unconditional,
+ (favicon_is_custom IS NOT TRUE AND
+ (favicon_last_checked IS NULL OR $favicon_interval_qpart)) AS favicon_needs_check")
+ ->find_one($feed);
- if ($row = $sth->fetch()) {
+ if ($feed_obj) {
+ $feed_obj->last_update_started = Db::NOW();
+ $feed_obj->save();
- $owner_uid = $row["owner_uid"];
- $mark_unread_on_update = $row["mark_unread_on_update"];
+ $feed_language = mb_strtolower($feed_obj->feed_language);
- $sth = $pdo->prepare("UPDATE ttrss_feeds SET last_update_started = NOW()
- WHERE id = ?");
- $sth->execute([$feed]);
-
- $auth_login = $row["auth_login"];
- $auth_pass = $row["auth_pass"];
- $stored_last_modified = $row["last_modified"];
- $last_unconditional = $row["last_unconditional"];
- $cache_images = $row["cache_images"];
- $fetch_url = $row["feed_url"];
-
- $feed_language = mb_strtolower($row["feed_language"]);
-
- if (!$feed_language)
- $feed_language = mb_strtolower(get_pref(Prefs::DEFAULT_SEARCH_LANGUAGE, $owner_uid));
-
- if (!$feed_language)
- $feed_language = 'simple';
+ if (!$feed_language) $feed_language = mb_strtolower(get_pref(Prefs::DEFAULT_SEARCH_LANGUAGE, $feed_obj->owner_uid));
+ if (!$feed_language) $feed_language = 'simple';
} else {
+ Debug::log("error: feeds table record not found for feed: $feed");
return false;
}
+ // feed was batch-subscribed or something, we need to get basic info
+ // this is not optimal currently as it fetches stuff separately TODO: optimize
+ if ($feed_obj->title == "[Unknown]" || empty($feed_obj->title) || empty($feed_obj->site_url)) {
+ Debug::log("setting basic feed info for $feed...");
+ self::update_basic_info($feed);
+ }
+
$date_feed_processed = date('Y-m-d H:i');
- $cache_filename = Config::get(Config::CACHE_DIR) . "/feeds/" . sha1($fetch_url) . ".xml";
+ $cache_filename = Config::get(Config::CACHE_DIR) . "/feeds/" . sha1($feed_obj->feed_url) . ".xml";
$pluginhost = new PluginHost();
- $user_plugins = get_pref(Prefs::_ENABLED_PLUGINS, $owner_uid);
+ $user_plugins = get_pref(Prefs::_ENABLED_PLUGINS, $feed_obj->owner_uid);
$pluginhost->load(Config::get(Config::PLUGINS), PluginHost::KIND_ALL);
- $pluginhost->load((string)$user_plugins, PluginHost::KIND_USER, $owner_uid);
- //$pluginhost->load_data();
+ $pluginhost->load((string)$user_plugins, PluginHost::KIND_USER, $feed_obj->owner_uid);
$rss_hash = false;
$force_refetch = isset($_REQUEST["force_refetch"]);
$feed_data = "";
- Debug::log("running HOOK_FETCH_FEED handlers...", Debug::$LOG_VERBOSE);
+ Debug::log("running HOOK_FETCH_FEED handlers...", Debug::LOG_VERBOSE);
$start_ts = microtime(true);
$last_article_timestamp = 0;
+
+ $hff_owner_uid = $feed_obj->owner_uid;
+ $hff_feed_url = $feed_obj->feed_url;
+
$pluginhost->chain_hooks_callback(PluginHost::HOOK_FETCH_FEED,
function ($result, $plugin) use (&$feed_data, $start_ts) {
$feed_data = $result;
- Debug::log(sprintf("=== %.4f (sec) %s", microtime(true) - $start_ts, get_class($plugin)), Debug::$LOG_VERBOSE);
+ Debug::log(sprintf("=== %.4f (sec) %s", microtime(true) - $start_ts, get_class($plugin)), Debug::LOG_VERBOSE);
},
- $feed_data, $fetch_url, $owner_uid, $feed, $last_article_timestamp, $auth_login, $auth_pass);
+ $feed_data, $hff_feed_url, $hff_owner_uid, $feed, $last_article_timestamp, $auth_login, $auth_pass);
if ($feed_data) {
- Debug::log("feed data has been modified by a plugin.", Debug::$LOG_VERBOSE);
+ Debug::log("feed data has been modified by a plugin.", Debug::LOG_VERBOSE);
} else {
- Debug::log("feed data has not been modified by a plugin.", Debug::$LOG_VERBOSE);
+ Debug::log("feed data has not been modified by a plugin.", Debug::LOG_VERBOSE);
}
// try cache
if (!$feed_data &&
- file_exists($cache_filename) &&
is_readable($cache_filename) &&
- !$auth_login && !$auth_pass &&
+ !$feed_obj->auth_login && !$feed_obj->auth_pass &&
filemtime($cache_filename) > time() - 30) {
- Debug::log("using local cache [$cache_filename].", Debug::$LOG_VERBOSE);
+ Debug::log("using local cache: {$cache_filename}.", Debug::LOG_VERBOSE);
- @$feed_data = file_get_contents($cache_filename);
+ $feed_data = file_get_contents($cache_filename);
if ($feed_data) {
$rss_hash = sha1($feed_data);
}
} else {
- Debug::log("local cache will not be used for this feed", Debug::$LOG_VERBOSE);
+ Debug::log("local cache will not be used for this feed", Debug::LOG_VERBOSE);
}
- global $fetch_last_modified;
-
// fetch feed from source
if (!$feed_data) {
- Debug::log("last unconditional update request: $last_unconditional", Debug::$LOG_VERBOSE);
+ Debug::log("last unconditional update request: {$feed_obj->last_unconditional}", Debug::LOG_VERBOSE);
if (ini_get("open_basedir") && function_exists("curl_init")) {
- Debug::log("not using CURL due to open_basedir restrictions", Debug::$LOG_VERBOSE);
+ Debug::log("not using CURL due to open_basedir restrictions", Debug::LOG_VERBOSE);
}
- if (time() - strtotime($last_unconditional) > Config::get(Config::MAX_CONDITIONAL_INTERVAL)) {
- Debug::log("maximum allowed interval for conditional requests exceeded, forcing refetch", Debug::$LOG_VERBOSE);
+ if (time() - strtotime($feed_obj->last_unconditional) > Config::get(Config::MAX_CONDITIONAL_INTERVAL)) {
+ Debug::log("maximum allowed interval for conditional requests exceeded, forcing refetch", Debug::LOG_VERBOSE);
$force_refetch = true;
} else {
- Debug::log("stored last modified for conditional request: $stored_last_modified", Debug::$LOG_VERBOSE);
+ Debug::log("stored last modified for conditional request: {$feed_obj->last_modified}", Debug::LOG_VERBOSE);
}
- Debug::log("fetching [$fetch_url] (force_refetch: $force_refetch)...", Debug::$LOG_VERBOSE);
+ Debug::log("fetching {$feed_obj->feed_url} (force_refetch: $force_refetch)...", Debug::LOG_VERBOSE);
$feed_data = UrlHelper::fetch([
- "url" => $fetch_url,
- "login" => $auth_login,
- "pass" => $auth_pass,
+ "url" => $feed_obj->feed_url,
+ "login" => $feed_obj->auth_login,
+ "pass" => $feed_obj->auth_pass,
"timeout" => $no_cache ? Config::get(Config::FEED_FETCH_NO_CACHE_TIMEOUT) : Config::get(Config::FEED_FETCH_TIMEOUT),
- "last_modified" => $force_refetch ? "" : $stored_last_modified
+ "last_modified" => $force_refetch ? "" : $feed_obj->last_modified
]);
$feed_data = trim($feed_data);
- global $fetch_effective_url;
- global $fetch_effective_ip_addr;
+ Debug::log("fetch done.", Debug::LOG_VERBOSE);
+ Debug::log(sprintf("effective URL (after redirects): %s (IP: %s) ", UrlHelper::$fetch_effective_url, UrlHelper::$fetch_effective_ip_addr), Debug::LOG_VERBOSE);
+ Debug::log("server last modified: " . UrlHelper::$fetch_last_modified, Debug::LOG_VERBOSE);
- Debug::log("fetch done.", Debug::$LOG_VERBOSE);
- Debug::log("effective URL (after redirects): " . clean($fetch_effective_url) . " (IP: $fetch_effective_ip_addr)", Debug::$LOG_VERBOSE);
- Debug::log("source last modified: " . $fetch_last_modified, Debug::$LOG_VERBOSE);
-
- if ($feed_data && $fetch_last_modified != $stored_last_modified) {
- $sth = $pdo->prepare("UPDATE ttrss_feeds SET last_modified = ? WHERE id = ?");
- $sth->execute([substr($fetch_last_modified, 0, 245), $feed]);
+ if ($feed_data && UrlHelper::$fetch_last_modified != $feed_obj->last_modified) {
+ $feed_obj->last_modified = substr(UrlHelper::$fetch_last_modified, 0, 245);
+ $feed_obj->save();
}
// cache vanilla feed data for re-use
- if ($feed_data && !$auth_pass && !$auth_login && is_writable(Config::get(Config::CACHE_DIR) . "/feeds")) {
+ if ($feed_data && !$feed_obj->auth_pass && !$feed_obj->auth_login && is_writable(Config::get(Config::CACHE_DIR) . "/feeds")) {
$new_rss_hash = sha1($feed_data);
if ($new_rss_hash != $rss_hash) {
- Debug::log("saving $cache_filename", Debug::$LOG_VERBOSE);
- @file_put_contents($cache_filename, $feed_data);
+ Debug::log("saving to local cache: $cache_filename", Debug::LOG_VERBOSE);
+ file_put_contents($cache_filename, $feed_data);
}
}
}
if (!$feed_data) {
- global $fetch_last_error;
- global $fetch_last_error_code;
-
- Debug::log("unable to fetch: $fetch_last_error [$fetch_last_error_code]", Debug::$LOG_VERBOSE);
+ Debug::log(sprintf("unable to fetch: %s [%s]", UrlHelper::$fetch_last_error, UrlHelper::$fetch_last_error_code), Debug::LOG_VERBOSE);
// If-Modified-Since
- if ($fetch_last_error_code == 304) {
- Debug::log("source claims data not modified, nothing to do.", Debug::$LOG_VERBOSE);
+ if (UrlHelper::$fetch_last_error_code == 304) {
+ Debug::log("source claims data not modified, nothing to do.", Debug::LOG_VERBOSE);
$error_message = "";
- $sth = $pdo->prepare("UPDATE ttrss_feeds SET last_error = ?,
- last_successful_update = NOW(),
- last_updated = NOW() WHERE id = ?");
+ $feed_obj->set([
+ 'last_error' => '',
+ 'last_successful_update' => Db::NOW(),
+ 'last_updated' => Db::NOW(),
+ ]);
+
+ $feed_obj->save();
} else {
- $error_message = $fetch_last_error;
+ $error_message = UrlHelper::$fetch_last_error;
- $sth = $pdo->prepare("UPDATE ttrss_feeds SET last_error = ?,
- last_updated = NOW() WHERE id = ?");
- }
+ $feed_obj->set([
+ 'last_error' => $error_message,
+ 'last_updated' => Db::NOW(),
+ ]);
- $sth->execute([$error_message, $feed]);
+ $feed_obj->save();
+ }
return $error_message == "";
}
- Debug::log("running HOOK_FEED_FETCHED handlers...", Debug::$LOG_VERBOSE);
+ Debug::log("running HOOK_FEED_FETCHED handlers...", Debug::LOG_VERBOSE);
$feed_data_checksum = md5($feed_data);
+ // because chain_hooks_callback() accepts variables by value
+ $pff_owner_uid = $feed_obj->owner_uid;
+ $pff_feed_url = $feed_obj->feed_url;
+
$start_ts = microtime(true);
$pluginhost->chain_hooks_callback(PluginHost::HOOK_FEED_FETCHED,
function ($result, $plugin) use (&$feed_data, $start_ts) {
$feed_data = $result;
- Debug::log(sprintf("=== %.4f (sec) %s", microtime(true) - $start_ts, get_class($plugin)), Debug::$LOG_VERBOSE);
+ Debug::log(sprintf("=== %.4f (sec) %s", microtime(true) - $start_ts, get_class($plugin)), Debug::LOG_VERBOSE);
},
- $feed_data, $fetch_url, $owner_uid, $feed);
+ $feed_data, $pff_feed_url, $pff_owner_uid, $feed);
if (md5($feed_data) != $feed_data_checksum) {
- Debug::log("feed data has been modified by a plugin.", Debug::$LOG_VERBOSE);
+ Debug::log("feed data has been modified by a plugin.", Debug::LOG_VERBOSE);
} else {
- Debug::log("feed data has not been modified by a plugin.", Debug::$LOG_VERBOSE);
+ Debug::log("feed data has not been modified by a plugin.", Debug::LOG_VERBOSE);
}
$rss = new FeedParser($feed_data);
@@ -562,46 +542,29 @@ class RSSUtils {
if (!$rss->error()) {
- Debug::log("running HOOK_FEED_PARSED handlers...", Debug::$LOG_VERBOSE);
+ Debug::log("running HOOK_FEED_PARSED handlers...", Debug::LOG_VERBOSE);
// We use local pluginhost here because we need to load different per-user feed plugins
$start_ts = microtime(true);
$pluginhost->chain_hooks_callback(PluginHost::HOOK_FEED_PARSED,
function($result, $plugin) use ($start_ts) {
- Debug::log(sprintf("=== %.4f (sec) %s", microtime(true) - $start_ts, get_class($plugin)), Debug::$LOG_VERBOSE);
+ Debug::log(sprintf("=== %.4f (sec) %s", microtime(true) - $start_ts, get_class($plugin)), Debug::LOG_VERBOSE);
},
$rss, $feed);
- Debug::log("language: $feed_language", Debug::$LOG_VERBOSE);
- Debug::log("processing feed data...", Debug::$LOG_VERBOSE);
-
- if (Config::get(Config::DB_TYPE) == "pgsql") {
- $favicon_interval_qpart = "favicon_last_checked < NOW() - INTERVAL '12 hour'";
- } else {
- $favicon_interval_qpart = "favicon_last_checked < DATE_SUB(NOW(), INTERVAL 12 HOUR)";
- }
-
- $sth = $pdo->prepare("SELECT owner_uid,favicon_avg_color,
- (favicon_last_checked IS NULL OR $favicon_interval_qpart) AS
- favicon_needs_check
- FROM ttrss_feeds WHERE id = ?");
- $sth->execute([$feed]);
+ Debug::log("language: $feed_language", Debug::LOG_VERBOSE);
+ Debug::log("processing feed data...", Debug::LOG_VERBOSE);
- if ($row = $sth->fetch()) {
- $favicon_needs_check = $row["favicon_needs_check"];
- $favicon_avg_color = $row["favicon_avg_color"];
- $owner_uid = $row["owner_uid"];
- } else {
- return false;
- }
+ $site_url = mb_substr(rewrite_relative_url($feed_obj->feed_url, clean($rss->get_link())), 0, 245);
- $site_url = mb_substr(rewrite_relative_url($fetch_url, clean($rss->get_link())), 0, 245);
+ Debug::log("site_url: $site_url", Debug::LOG_VERBOSE);
+ Debug::log("feed_title: {$rss->get_title()}", Debug::LOG_VERBOSE);
- Debug::log("site_url: $site_url", Debug::$LOG_VERBOSE);
- Debug::log("feed_title: " . clean($rss->get_title()), Debug::$LOG_VERBOSE);
+ Debug::log("favicon: needs check: {$feed_obj->favicon_needs_check} is custom: {$feed_obj->favicon_is_custom} avg color: {$feed_obj->favicon_avg_color}",
+ Debug::LOG_VERBOSE);
- if ($favicon_needs_check || $force_refetch) {
+ if ($feed_obj->favicon_needs_check || $force_refetch) {
/* terrible hack: if we crash on floicon shit here, we won't check
* the icon avgcolor again (unless the icon got updated) */
@@ -609,70 +572,74 @@ class RSSUtils {
$favicon_file = Config::get(Config::ICONS_DIR) . "/$feed.ico";
$favicon_modified = file_exists($favicon_file) ? filemtime($favicon_file) : -1;
- Debug::log("checking favicon for feed $feed...", Debug::$LOG_VERBOSE);
-
- self::check_feed_favicon($site_url, $feed);
- $favicon_modified_new = file_exists($favicon_file) ? filemtime($favicon_file) : -1;
+ if (!$feed_obj->favicon_is_custom) {
+ Debug::log("favicon: trying to update favicon...", Debug::LOG_VERBOSE);
+ self::update_favicon($site_url, $feed);
- if ($favicon_modified_new > $favicon_modified)
- $favicon_avg_color = '';
+ if ((file_exists($favicon_file) ? filemtime($favicon_file) : -1) > $favicon_modified)
+ $feed_obj->favicon_avg_color = null;
+ }
- $favicon_colorstring = "";
- if (file_exists($favicon_file) && function_exists("imagecreatefromstring") && $favicon_avg_color == '') {
+ if (is_readable($favicon_file) && function_exists("imagecreatefromstring") && empty($feed_obj->favicon_avg_color)) {
require_once "colors.php";
- $sth = $pdo->prepare("UPDATE ttrss_feeds SET favicon_avg_color = 'fail' WHERE
- id = ?");
- $sth->execute([$feed]);
+ Debug::log("favicon: trying to calculate average color...", Debug::LOG_VERBOSE);
- $favicon_color = \Colors\calculate_avg_color($favicon_file);
+ $feed_obj->favicon_avg_color = 'fail';
+ $feed_obj->save();
- $favicon_colorstring = ",favicon_avg_color = " . $pdo->quote($favicon_color);
+ $feed_obj->favicon_avg_color = \Colors\calculate_avg_color($favicon_file);
+ $feed_obj->save();
- } else if ($favicon_avg_color == 'fail') {
- Debug::log("floicon failed on this file, not trying to recalculate avg color", Debug::$LOG_VERBOSE);
- }
+ Debug::log("favicon: avg color: {$feed_obj->favicon_avg_color}", Debug::LOG_VERBOSE);
- $sth = $pdo->prepare("UPDATE ttrss_feeds SET favicon_last_checked = NOW()
- $favicon_colorstring WHERE id = ?");
- $sth->execute([$feed]);
+ } else if ($feed_obj->favicon_avg_color == 'fail') {
+ Debug::log("floicon failed $favicon_file, not trying to recalculate avg color", Debug::LOG_VERBOSE);
+ }
}
- Debug::log("loading filters & labels...", Debug::$LOG_VERBOSE);
+ Debug::log("loading filters & labels...", Debug::LOG_VERBOSE);
- $filters = self::load_filters($feed, $owner_uid);
+ $filters = self::load_filters($feed, $feed_obj->owner_uid);
- if (Debug::get_loglevel() >= Debug::$LOG_EXTENDED) {
+ if (Debug::get_loglevel() >= Debug::LOG_EXTENDED) {
print_r($filters);
}
- Debug::log("" . count($filters) . " filters loaded.", Debug::$LOG_VERBOSE);
+ Debug::log("" . count($filters) . " filters loaded.", Debug::LOG_VERBOSE);
$items = $rss->get_items();
if (!is_array($items)) {
- Debug::log("no articles found.", Debug::$LOG_VERBOSE);
+ Debug::log("no articles found.", Debug::LOG_VERBOSE);
- $sth = $pdo->prepare("UPDATE ttrss_feeds
- SET last_updated = NOW(), last_unconditional = NOW(), last_error = '' WHERE id = ?");
- $sth->execute([$feed]);
+ $feed_obj->set([
+ 'last_updated' => Db::NOW(),
+ 'last_unconditional' => Db::NOW(),
+ 'last_error' => '',
+ ]);
+
+ $feed_obj->save();
return true; // no articles
}
- Debug::log("processing articles...", Debug::$LOG_VERBOSE);
+ Debug::log("processing articles...", Debug::LOG_VERBOSE);
$tstart = time();
foreach ($items as $item) {
$pdo->beginTransaction();
+ Debug::log("=================================================================================================================================",
+ Debug::LOG_VERBOSE);
+
if (Debug::get_loglevel() >= 3) {
print_r($item);
}
if (ini_get("max_execution_time") > 0 && time() - $tstart >= ini_get("max_execution_time") * 0.7) {
- Debug::log("looks like there's too many articles to process at once, breaking out", Debug::$LOG_VERBOSE);
+ Debug::log("looks like there's too many articles to process at once, breaking out.", Debug::LOG_VERBOSE);
$pdo->commit();
break;
}
@@ -686,15 +653,16 @@ class RSSUtils {
continue;
}
- $entry_guid_hashed_compat = 'SHA1:' . sha1("$owner_uid,$entry_guid");
- $entry_guid_hashed = json_encode(["ver" => 2, "uid" => $owner_uid, "hash" => 'SHA1:' . sha1($entry_guid)]);
- $entry_guid = "$owner_uid,$entry_guid";
+ $entry_guid_hashed_compat = 'SHA1:' . sha1("{$feed_obj->owner_uid},$entry_guid");
+ $entry_guid_hashed = json_encode(["ver" => 2, "uid" => $feed_obj->owner_uid, "hash" => 'SHA1:' . sha1($entry_guid)]);
+ $entry_guid = "$feed_obj->owner_uid,$entry_guid";
- Debug::log("guid $entry_guid (hash: $entry_guid_hashed compat: $entry_guid_hashed_compat)", Debug::$LOG_VERBOSE);
+ Debug::log("guid $entry_guid (hash: $entry_guid_hashed compat: $entry_guid_hashed_compat)", Debug::LOG_VERBOSE);
$entry_timestamp = (int)$item->get_date();
- Debug::log("orig date: " . $item->get_date(), Debug::$LOG_VERBOSE);
+ Debug::log(sprintf("orig date: %s (%s)", $item->get_date(), date("Y-m-d H:i:s", $item->get_date())),
+ Debug::LOG_VERBOSE);
$entry_title = strip_tags($item->get_title());
@@ -702,9 +670,9 @@ class RSSUtils {
$entry_language = mb_substr(trim($item->get_language()), 0, 2);
- Debug::log("title $entry_title", Debug::$LOG_VERBOSE);
- Debug::log("link $entry_link", Debug::$LOG_VERBOSE);
- Debug::log("language $entry_language", Debug::$LOG_VERBOSE);
+ Debug::log("title $entry_title", Debug::LOG_VERBOSE);
+ Debug::log("link $entry_link", Debug::LOG_VERBOSE);
+ Debug::log("language $entry_language", Debug::LOG_VERBOSE);
if (!$entry_title) $entry_title = date("Y-m-d H:i:s", $entry_timestamp);;
@@ -723,13 +691,13 @@ class RSSUtils {
$entry_author = strip_tags($item->get_author());
$entry_guid = mb_substr($entry_guid, 0, 245);
- Debug::log("author $entry_author", Debug::$LOG_VERBOSE);
- Debug::log("looking for tags...", Debug::$LOG_VERBOSE);
+ Debug::log("author $entry_author", Debug::LOG_VERBOSE);
+ Debug::log("looking for tags...", Debug::LOG_VERBOSE);
$entry_tags = $item->get_categories();
- Debug::log("tags found: " . join(", ", $entry_tags), Debug::$LOG_VERBOSE);
+ Debug::log("tags found: " . join(", ", $entry_tags), Debug::LOG_VERBOSE);
- Debug::log("done collecting data.", Debug::$LOG_VERBOSE);
+ Debug::log("done collecting data.", Debug::LOG_VERBOSE);
$sth = $pdo->prepare("SELECT id, content_hash, lang FROM ttrss_entries
WHERE guid IN (?, ?, ?)");
@@ -738,9 +706,9 @@ class RSSUtils {
if ($row = $sth->fetch()) {
$base_entry_id = $row["id"];
$entry_stored_hash = $row["content_hash"];
- $article_labels = Article::_get_labels($base_entry_id, $owner_uid);
+ $article_labels = Article::_get_labels($base_entry_id, $feed_obj->owner_uid);
- $existing_tags = Article::_get_tags($base_entry_id, $owner_uid);
+ $existing_tags = Article::_get_tags($base_entry_id, $feed_obj->owner_uid);
$entry_tags = array_unique(array_merge($entry_tags, $existing_tags));
} else {
$base_entry_id = false;
@@ -748,13 +716,13 @@ class RSSUtils {
$article_labels = array();
}
- Debug::log("looking for enclosures...", Debug::$LOG_VERBOSE);
+ Debug::log("looking for enclosures...", Debug::LOG_VERBOSE);
// enclosures
$enclosures = array();
- $encs = $item->_get_enclosures();
+ $encs = $item->get_enclosures();
if (is_array($encs)) {
foreach ($encs as $e) {
@@ -782,7 +750,7 @@ class RSSUtils {
}
}
- $article = array("owner_uid" => $owner_uid, // read only
+ $article = array("owner_uid" => $feed_obj->owner_uid, // read only
"guid" => $entry_guid, // read only
"guid_hashed" => $entry_guid_hashed, // read only
"title" => $entry_title,
@@ -798,33 +766,35 @@ class RSSUtils {
"num_comments" => $num_comments,
"enclosures" => $enclosures,
"feed" => array("id" => $feed,
- "fetch_url" => $fetch_url,
+ "fetch_url" => $feed_obj->feed_url,
"site_url" => $site_url,
- "cache_images" => $cache_images)
+ "cache_images" => $feed_obj->cache_images)
);
$entry_plugin_data = "";
$entry_current_hash = self::calculate_article_hash($article, $pluginhost);
- Debug::log("article hash: $entry_current_hash [stored=$entry_stored_hash]", Debug::$LOG_VERBOSE);
+ Debug::log("article hash: $entry_current_hash [stored=$entry_stored_hash]", Debug::LOG_VERBOSE);
if ($entry_current_hash == $entry_stored_hash && !isset($_REQUEST["force_rehash"])) {
- Debug::log("stored article seems up to date [IID: $base_entry_id], updating timestamp only", Debug::$LOG_VERBOSE);
+ Debug::log("stored article seems up to date [IID: $base_entry_id], updating timestamp only.", Debug::LOG_VERBOSE);
// we keep encountering the entry in feeds, so we need to
// update date_updated column so that we don't get horrible
// dupes when the entry gets purged and reinserted again e.g.
// in the case of SLOW SLOW OMG SLOW updating feeds
- $sth = $pdo->prepare("UPDATE ttrss_entries SET date_updated = NOW()
- WHERE id = ?");
- $sth->execute([$base_entry_id]);
+ $entry_obj = ORM::for_table('ttrss_entries')
+ ->find_one($base_entry_id)
+ ->set('date_updated', Db::NOW())
+ ->save();
$pdo->commit();
+
continue;
}
- Debug::log("hash differs, applying plugin filters:", Debug::$LOG_VERBOSE);
+ Debug::log("hash differs, running HOOK_ARTICLE_FILTER handlers...", Debug::LOG_VERBOSE);
$start_ts = microtime(true);
@@ -835,7 +805,7 @@ class RSSUtils {
$entry_plugin_data .= mb_strtolower(get_class($plugin)) . ",";
Debug::log(sprintf("=== %.4f (sec) %s", microtime(true) - $start_ts, get_class($plugin)),
- Debug::$LOG_VERBOSE);
+ Debug::LOG_VERBOSE);
},
$article);
@@ -845,7 +815,7 @@ class RSSUtils {
print "\n";
}
- Debug::log("plugin data: $entry_plugin_data", Debug::$LOG_VERBOSE);
+ Debug::log("plugin data: {$entry_plugin_data}", Debug::LOG_VERBOSE);
// Workaround: 4-byte unicode requires utf8mb4 in MySQL. See https://tt-rss.org/forum/viewtopic.php?f=1&t=3377&p=20077#p20077
if (Config::get(Config::DB_TYPE) == "mysql" && Config::get(Config::MYSQL_CHARSET) != "UTF8MB4") {
@@ -868,33 +838,35 @@ class RSSUtils {
// $article_filters should be renamed to something like $filter_actions; actual filter objects are in $matched_filters
$pluginhost->run_hooks(PluginHost::HOOK_FILTER_TRIGGERED,
- $feed, $owner_uid, $article, $matched_filters, $matched_rules, $article_filters);
+ $feed, $feed_obj->owner_uid, $article, $matched_filters, $matched_rules, $article_filters);
$matched_filter_ids = array_map(function($f) { return $f['id']; }, $matched_filters);
if (count($matched_filter_ids) > 0) {
- $filter_ids_qmarks = arr_qmarks($matched_filter_ids);
+ $filter_objs = ORM::for_table('ttrss_filters2')
+ ->where('owner_uid', $feed_obj->owner_uid)
+ ->where_in('id', $matched_filter_ids);
- $fsth = $pdo->prepare("UPDATE ttrss_filters2 SET last_triggered = NOW() WHERE
- id IN ($filter_ids_qmarks) AND owner_uid = ?");
-
- $fsth->execute(array_merge($matched_filter_ids, [$owner_uid]));
+ foreach ($filter_objs as $filter_obj) {
+ $filter_obj->set('last_triggered', Db::NOW());
+ $filter_obj->save();
+ }
}
- if (Debug::get_loglevel() >= Debug::$LOG_EXTENDED) {
- Debug::log("matched filters: ", Debug::$LOG_VERBOSE);
+ if (Debug::get_loglevel() >= Debug::LOG_EXTENDED) {
+ Debug::log("matched filters: ", Debug::LOG_VERBOSE);
if (count($matched_filters) != 0) {
print_r($matched_filters);
}
- Debug::log("matched filter rules: ", Debug::$LOG_VERBOSE);
+ Debug::log("matched filter rules: ", Debug::LOG_VERBOSE);
if (count($matched_rules) != 0) {
print_r($matched_rules);
}
- Debug::log("filter actions: ", Debug::$LOG_VERBOSE);
+ Debug::log("filter actions: ", Debug::LOG_VERBOSE);
if (count($article_filters) != 0) {
print_r($article_filters);
@@ -905,7 +877,7 @@ class RSSUtils {
$plugin_filter_actions = $pluginhost->get_filter_actions();
if (count($plugin_filter_names) > 0) {
- Debug::log("applying plugin filter actions...", Debug::$LOG_VERBOSE);
+ Debug::log("applying plugin filter actions...", Debug::LOG_VERBOSE);
foreach ($plugin_filter_names as $pfn) {
list($pfclass,$pfaction) = explode(":", $pfn["param"]);
@@ -913,18 +885,18 @@ class RSSUtils {
if (isset($plugin_filter_actions[$pfclass])) {
$plugin = $pluginhost->get_plugin($pfclass);
- Debug::log("... $pfclass: $pfaction", Debug::$LOG_VERBOSE);
+ Debug::log("... $pfclass: $pfaction", Debug::LOG_VERBOSE);
if ($plugin) {
$start = microtime(true);
$article = $plugin->hook_article_filter_action($article, $pfaction);
- Debug::log(sprintf("=== %.4f (sec)", microtime(true) - $start), Debug::$LOG_VERBOSE);
+ Debug::log(sprintf("=== %.4f (sec)", microtime(true) - $start), Debug::LOG_VERBOSE);
} else {
- Debug::log("??? $pfclass: plugin object not found.", Debug::$LOG_VERBOSE);
+ Debug::log("??? $pfclass: plugin object not found.", Debug::LOG_VERBOSE);
}
} else {
- Debug::log("??? $pfclass: filter plugin not registered.", Debug::$LOG_VERBOSE);
+ Debug::log("??? $pfclass: filter plugin not registered.", Debug::LOG_VERBOSE);
}
}
}
@@ -948,20 +920,20 @@ class RSSUtils {
$entry_timestamp_fmt = strftime("%Y/%m/%d %H:%M:%S", $entry_timestamp);
- Debug::log("date $entry_timestamp [$entry_timestamp_fmt]", Debug::$LOG_VERBOSE);
- Debug::log("num_comments: $num_comments", Debug::$LOG_VERBOSE);
+ Debug::log("date: $entry_timestamp ($entry_timestamp_fmt)", Debug::LOG_VERBOSE);
+ Debug::log("num_comments: $num_comments", Debug::LOG_VERBOSE);
- if (Debug::get_loglevel() >= Debug::$LOG_EXTENDED) {
- Debug::log("article labels:", Debug::$LOG_VERBOSE);
+ if (Debug::get_loglevel() >= Debug::LOG_EXTENDED) {
+ Debug::log("article labels:", Debug::LOG_VERBOSE);
if (count($article_labels) != 0) {
print_r($article_labels);
}
}
- Debug::log("force catchup: $entry_force_catchup", Debug::$LOG_VERBOSE);
+ Debug::log("force catchup: $entry_force_catchup", Debug::LOG_VERBOSE);
- if ($cache_images)
+ if ($feed_obj->cache_images)
self::cache_media($entry_content, $site_url);
$csth = $pdo->prepare("SELECT id FROM ttrss_entries
@@ -970,7 +942,7 @@ class RSSUtils {
if (!$row = $csth->fetch()) {
- Debug::log("base guid [$entry_guid or $entry_guid_hashed] not found, creating...", Debug::$LOG_VERBOSE);
+ Debug::log("base guid [$entry_guid or $entry_guid_hashed] not found, creating...", Debug::LOG_VERBOSE);
// base post entry does not exist, create it
@@ -1018,36 +990,36 @@ class RSSUtils {
if ($row = $csth->fetch()) {
- Debug::log("base guid found, checking for user record", Debug::$LOG_VERBOSE);
+ Debug::log("base guid found, checking for user record", Debug::LOG_VERBOSE);
$ref_id = $row['id'];
$entry_ref_id = $ref_id;
if (self::find_article_filter($article_filters, "filter")) {
- Debug::log("article is filtered out, nothing to do.", Debug::$LOG_VERBOSE);
+ Debug::log("article is filtered out, nothing to do.", Debug::LOG_VERBOSE);
$pdo->commit();
continue;
}
$score = self::calculate_article_score($article_filters) + $entry_score_modifier;
- Debug::log("initial score: $score [including plugin modifier: $entry_score_modifier]", Debug::$LOG_VERBOSE);
+ Debug::log("initial score: $score [including plugin modifier: $entry_score_modifier]", Debug::LOG_VERBOSE);
// check for user post link to main table
$sth = $pdo->prepare("SELECT ref_id, int_id FROM ttrss_user_entries WHERE
ref_id = ? AND owner_uid = ?");
- $sth->execute([$ref_id, $owner_uid]);
+ $sth->execute([$ref_id, $feed_obj->owner_uid]);
// okay it doesn't exist - create user entry
if ($row = $sth->fetch()) {
$entry_ref_id = $row["ref_id"];
$entry_int_id = $row["int_id"];
- Debug::log("user record FOUND: RID: $entry_ref_id, IID: $entry_int_id", Debug::$LOG_VERBOSE);
+ Debug::log("user record FOUND: RID: $entry_ref_id, IID: $entry_int_id", Debug::LOG_VERBOSE);
} else {
- Debug::log("user record not found, creating...", Debug::$LOG_VERBOSE);
+ Debug::log("user record not found, creating...", Debug::LOG_VERBOSE);
if ($score >= -500 && !self::find_article_filter($article_filters, 'catchup') && !$entry_force_catchup) {
$unread = 1;
@@ -1079,20 +1051,20 @@ class RSSUtils {
last_marked, last_published)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, '', '', '', ".$last_marked.", ".$last_published.")");
- $sth->execute([$ref_id, $owner_uid, $feed, $unread, $last_read_qpart, $marked,
+ $sth->execute([$ref_id, $feed_obj->owner_uid, $feed, $unread, $last_read_qpart, $marked,
$published, $score]);
$sth = $pdo->prepare("SELECT int_id FROM ttrss_user_entries WHERE
ref_id = ? AND owner_uid = ? AND
feed_id = ? LIMIT 1");
- $sth->execute([$ref_id, $owner_uid, $feed]);
+ $sth->execute([$ref_id, $feed_obj->owner_uid, $feed]);
if ($row = $sth->fetch())
$entry_int_id = $row['int_id'];
}
- Debug::log("resulting RID: $entry_ref_id, IID: $entry_int_id", Debug::$LOG_VERBOSE);
+ Debug::log("resulting RID: $entry_ref_id, IID: $entry_int_id", Debug::LOG_VERBOSE);
if (Config::get(Config::DB_TYPE) == "pgsql")
$tsvector_qpart = "tsvector_combined = to_tsvector(:ts_lang, :ts_content),";
@@ -1134,36 +1106,36 @@ class RSSUtils {
SET score = ? WHERE ref_id = ?");
$sth->execute([$score, $ref_id]);
- if ($mark_unread_on_update &&
+ if ($feed_obj->mark_unread_on_update &&
!$entry_force_catchup &&
!self::find_article_filter($article_filters, 'catchup')) {
- Debug::log("article updated, marking unread as requested.", Debug::$LOG_VERBOSE);
+ Debug::log("article updated, marking unread as requested.", Debug::LOG_VERBOSE);
$sth = $pdo->prepare("UPDATE ttrss_user_entries
SET last_read = null, unread = true WHERE ref_id = ?");
$sth->execute([$ref_id]);
} else {
- Debug::log("article updated, but we're forbidden to mark it unread.", Debug::$LOG_VERBOSE);
+ Debug::log("article updated, but we're forbidden to mark it unread.", Debug::LOG_VERBOSE);
}
}
- Debug::log("assigning labels [other]...", Debug::$LOG_VERBOSE);
+ Debug::log("assigning labels [other]...", Debug::LOG_VERBOSE);
foreach ($article_labels as $label) {
- Labels::add_article($entry_ref_id, $label[1], $owner_uid);
+ Labels::add_article($entry_ref_id, $label[1], $feed_obj->owner_uid);
}
- Debug::log("assigning labels [filters]...", Debug::$LOG_VERBOSE);
+ Debug::log("assigning labels [filters]...", Debug::LOG_VERBOSE);
self::assign_article_to_label_filters($entry_ref_id, $article_filters,
- $owner_uid, $article_labels);
+ $feed_obj->owner_uid, $article_labels);
- if ($cache_images)
+ if ($feed_obj->cache_images)
self::cache_enclosures($enclosures, $site_url);
- if (Debug::get_loglevel() >= Debug::$LOG_EXTENDED) {
- Debug::log("article enclosures:", Debug::$LOG_VERBOSE);
+ if (Debug::get_loglevel() >= Debug::LOG_EXTENDED) {
+ Debug::log("article enclosures:", Debug::LOG_VERBOSE);
print_r($enclosures);
}
@@ -1206,13 +1178,13 @@ class RSSUtils {
$boring_tags = array_map('trim',
explode(",", mb_strtolower(
- get_pref(Prefs::BLACKLISTED_TAGS, $owner_uid))));
+ get_pref(Prefs::BLACKLISTED_TAGS, $feed_obj->owner_uid))));
$entry_tags = FeedItem_Common::normalize_categories(
array_unique(
array_diff($entry_tags, $boring_tags)));
- Debug::log("filtered tags: " . implode(", ", $entry_tags), Debug::$LOG_VERBOSE);
+ Debug::log("filtered tags: " . implode(", ", $entry_tags), Debug::LOG_VERBOSE);
// Save article tags in the database
@@ -1227,10 +1199,10 @@ class RSSUtils {
VALUES (?, ?, ?)");
foreach ($entry_tags as $tag) {
- $tsth->execute([$tag, $entry_int_id, $owner_uid]);
+ $tsth->execute([$tag, $entry_int_id, $feed_obj->owner_uid]);
if (!$tsth->fetch()) {
- $usth->execute([$owner_uid, $tag, $entry_int_id]);
+ $usth->execute([$feed_obj->owner_uid, $tag, $entry_int_id]);
}
}
@@ -1243,52 +1215,58 @@ class RSSUtils {
$tsth->execute([
join(",", $entry_tags),
$entry_ref_id,
- $owner_uid
+ $feed_obj->owner_uid
]);
}
- Debug::log("article processed", Debug::$LOG_VERBOSE);
+ Debug::log("article processed.", Debug::LOG_VERBOSE);
$pdo->commit();
}
- Debug::log("purging feed...", Debug::$LOG_VERBOSE);
+ Debug::log("=================================================================================================================================",
+ Debug::LOG_VERBOSE);
+
+ Debug::log("purging feed...", Debug::LOG_VERBOSE);
Feeds::_purge($feed, 0);
- $sth = $pdo->prepare("UPDATE ttrss_feeds SET
- last_updated = NOW(),
- last_unconditional = NOW(),
- last_successful_update = NOW(),
- last_error = '' WHERE id = ?");
- $sth->execute([$feed]);
+ $feed_obj->set([
+ 'last_updated' => Db::NOW(),
+ 'last_unconditional' => Db::NOW(),
+ 'last_successful_update' => Db::NOW(),
+ 'last_error' => '',
+ ]);
+
+ $feed_obj->save();
} else {
$error_msg = mb_substr($rss->error(), 0, 245);
- Debug::log("fetch error: $error_msg", Debug::$LOG_VERBOSE);
+ Debug::log("fetch error: $error_msg", Debug::LOG_VERBOSE);
if (count($rss->errors()) > 1) {
foreach ($rss->errors() as $error) {
- Debug::log("+ $error", Debug::$LOG_VERBOSE);
+ Debug::log("+ $error", Debug::LOG_VERBOSE);
}
}
- $sth = $pdo->prepare("UPDATE ttrss_feeds SET
- last_error = ?,
- last_updated = NOW(),
- last_unconditional = NOW() WHERE id = ?");
- $sth->execute([$error_msg, $feed]);
+ $feed_obj->set([
+ 'last_updated' => Db::NOW(),
+ 'last_unconditional' => Db::NOW(),
+ 'last_error' => $error_msg,
+ ]);
+
+ $feed_obj->save();
unset($rss);
- Debug::log("update failed.", Debug::$LOG_VERBOSE);
+ Debug::log("update failed.", Debug::LOG_VERBOSE);
return false;
}
- Debug::log("update done.", Debug::$LOG_VERBOSE);
-
+ Debug::log("update done.", Debug::LOG_VERBOSE);
return true;
}
@@ -1304,13 +1282,9 @@ class RSSUtils {
$local_filename = sha1($src);
- Debug::log("cache_enclosures: downloading: $src to $local_filename", Debug::$LOG_VERBOSE);
+ Debug::log("cache_enclosures: downloading: $src to $local_filename", Debug::LOG_VERBOSE);
if (!$cache->exists($local_filename)) {
-
- global $fetch_last_error_code;
- global $fetch_last_error;
-
$file_content = UrlHelper::fetch(array("url" => $src,
"http_referrer" => $src,
"max_size" => Config::get(Config::MAX_CACHE_FILE_SIZE)));
@@ -1318,7 +1292,7 @@ class RSSUtils {
if ($file_content) {
$cache->put($local_filename, $file_content);
} else {
- Debug::log("cache_enclosures: failed with $fetch_last_error_code: $fetch_last_error");
+ Debug::log("cache_enclosures: failed with ".UrlHelper::$fetch_last_error_code.": ".UrlHelper::$fetch_last_error);
}
} else if (is_writable($local_filename)) {
$cache->touch($local_filename);
@@ -1333,13 +1307,10 @@ class RSSUtils {
$url = rewrite_relative_url($site_url, $url);
$local_filename = sha1($url);
- Debug::log("cache_media: checking $url", Debug::$LOG_VERBOSE);
+ Debug::log("cache_media: checking $url", Debug::LOG_VERBOSE);
if (!$cache->exists($local_filename)) {
- Debug::log("cache_media: downloading: $url to $local_filename", Debug::$LOG_VERBOSE);
-
- global $fetch_last_error_code;
- global $fetch_last_error;
+ Debug::log("cache_media: downloading: $url to $local_filename", Debug::LOG_VERBOSE);
$file_content = UrlHelper::fetch(array("url" => $url,
"http_referrer" => $url,
@@ -1348,7 +1319,7 @@ class RSSUtils {
if ($file_content) {
$cache->put($local_filename, $file_content);
} else {
- Debug::log("cache_media: failed with $fetch_last_error_code: $fetch_last_error");
+ Debug::log("cache_media: failed with ".UrlHelper::$fetch_last_error_code.": ".UrlHelper::$fetch_last_error);
}
} else if ($cache->is_writable($local_filename)) {
$cache->touch($local_filename);
@@ -1407,7 +1378,7 @@ class RSSUtils {
}
static function expire_lock_files() {
- Debug::log("Removing old lock files...", Debug::$LOG_VERBOSE);
+ Debug::log("Removing old lock files...", Debug::LOG_VERBOSE);
$num_deleted = 0;
@@ -1657,12 +1628,12 @@ class RSSUtils {
PluginHost::getInstance()->run_hooks(PluginHost::HOOK_HOUSE_KEEPING);
}
- static function check_feed_favicon($site_url, $feed) {
+ static function update_favicon(string $site_url, int $feed) {
$icon_file = Config::get(Config::ICONS_DIR) . "/$feed.ico";
$favicon_url = self::get_favicon_url($site_url);
if (!$favicon_url) {
- Debug::log("couldn't find favicon URL in $site_url", Debug::$LOG_VERBOSE);
+ Debug::log("favicon: couldn't find favicon URL in $site_url", Debug::LOG_VERBOSE);
return false;
}
@@ -1673,7 +1644,7 @@ class RSSUtils {
//'type' => 'image',
]);
if (!$contents) {
- Debug::log("fetching favicon $favicon_url failed", Debug::$LOG_VERBOSE);
+ Debug::log("favicon: fetching $favicon_url failed", Debug::LOG_VERBOSE);
return false;
}
@@ -1681,35 +1652,35 @@ class RSSUtils {
// Patterns gleaned from the file(1) source code.
if (preg_match('/^\x00\x00\x01\x00/', $contents)) {
// 0 string \000\000\001\000 MS Windows icon resource
- //error_log("check_feed_favicon: favicon_url=$favicon_url isa MS Windows icon resource");
+ //error_log("update_favicon: favicon_url=$favicon_url isa MS Windows icon resource");
}
elseif (preg_match('/^GIF8/', $contents)) {
// 0 string GIF8 GIF image data
- //error_log("check_feed_favicon: favicon_url=$favicon_url isa GIF image");
+ //error_log("update_favicon: favicon_url=$favicon_url isa GIF image");
}
elseif (preg_match('/^\x89PNG\x0d\x0a\x1a\x0a/', $contents)) {
// 0 string \x89PNG\x0d\x0a\x1a\x0a PNG image data
- //error_log("check_feed_favicon: favicon_url=$favicon_url isa PNG image");
+ //error_log("update_favicon: favicon_url=$favicon_url isa PNG image");
}
elseif (preg_match('/^\xff\xd8/', $contents)) {
// 0 beshort 0xffd8 JPEG image data
- //error_log("check_feed_favicon: favicon_url=$favicon_url isa JPG image");
+ //error_log("update_favicon: favicon_url=$favicon_url isa JPG image");
}
elseif (preg_match('/^BM/', $contents)) {
// 0 string BM PC bitmap (OS2, Windows BMP files)
- //error_log("check_feed_favicon, favicon_url=$favicon_url isa BMP image");
+ //error_log("update_favicon, favicon_url=$favicon_url isa BMP image");
}
else {
- //error_log("check_feed_favicon: favicon_url=$favicon_url isa UNKNOWN type");
- Debug::log("favicon $favicon_url type is unknown (not updating)", Debug::$LOG_VERBOSE);
+ //error_log("update_favicon: favicon_url=$favicon_url isa UNKNOWN type");
+ Debug::log("favicon $favicon_url type is unknown (not updating)", Debug::LOG_VERBOSE);
return false;
}
- Debug::log("setting contents of $icon_file", Debug::$LOG_VERBOSE);
+ Debug::log("favicon: saving to $icon_file", Debug::LOG_VERBOSE);
$fp = @fopen($icon_file, "w");
if (!$fp) {
- Debug::log("failed to open $icon_file for writing", Debug::$LOG_VERBOSE);
+ Debug::log("favicon: failed to open $icon_file for writing", Debug::LOG_VERBOSE);
return false;
}
@@ -1726,13 +1697,13 @@ class RSSUtils {
"\x1f" . "\x8b" . "\x08", 0) === 0;
}
- static function load_filters($feed_id, $owner_uid) {
+ static function load_filters(int $feed_id, int $owner_uid) {
$filters = array();
$feed_id = (int) $feed_id;
- $cat_id = (int)Feeds::_cat_of_feed($feed_id);
+ $cat_id = Feeds::_cat_of($feed_id);
- if ($cat_id == 0)
+ if (!$cat_id)
$null_cat_qpart = "cat_id IS NULL OR";
else
$null_cat_qpart = "";
@@ -1845,7 +1816,7 @@ class RSSUtils {
* @access public
* @return mixed The favicon URL, or false if none was found.
*/
- static function get_favicon_url($url) {
+ static function get_favicon_url(string $url) {
$favicon_url = false;
diff --git a/classes/sanitizer.php b/classes/sanitizer.php
index 52feb5e28..07766dc16 100644
--- a/classes/sanitizer.php
+++ b/classes/sanitizer.php
@@ -49,6 +49,10 @@ class Sanitizer {
return false;
}
+ private static function is_prefix_https() {
+ return parse_url(Config::get(Config::SELF_URL_PATH), PHP_URL_SCHEME) == 'https';
+ }
+
public static function sanitize($str, $force_remove_images = false, $owner = false, $site_url = false, $highlight_words = false, $article_id = false) {
if (!$owner && isset($_SESSION["uid"]))
@@ -60,7 +64,9 @@ class Sanitizer {
$doc->loadHTML('<?xml encoding="UTF-8">' . $res);
$xpath = new DOMXPath($doc);
- $rewrite_base_url = $site_url ? $site_url : get_self_url_prefix();
+ // is it a good idea to possibly rewrite urls to our own prefix?
+ // $rewrite_base_url = $site_url ? $site_url : Config::get_self_url();
+ $rewrite_base_url = $site_url ? $site_url : "http://domain.invalid/";
$entries = $xpath->query('(//a[@href]|//img[@src]|//source[@srcset|@src])');
@@ -125,7 +131,7 @@ class Sanitizer {
if (!self::iframe_whitelisted($entry)) {
$entry->setAttribute('sandbox', 'allow-scripts');
} else {
- if (is_prefix_https()) {
+ if (self::is_prefix_https()) {
$entry->setAttribute("src",
str_replace("http://", "https://",
$entry->getAttribute("src")));
diff --git a/classes/urlhelper.php b/classes/urlhelper.php
index bf2e22a76..55d5d1e6a 100644
--- a/classes/urlhelper.php
+++ b/classes/urlhelper.php
@@ -1,5 +1,14 @@
<?php
class UrlHelper {
+ static $fetch_last_error;
+ static $fetch_last_error_code;
+ static $fetch_last_error_content;
+ static $fetch_last_content_type;
+ static $fetch_last_modified;
+ static $fetch_effective_url;
+ static $fetch_effective_ip_addr;
+ static $fetch_curl_used;
+
static function build_url($parts) {
$tmp = $parts['scheme'] . "://" . $parts['host'];
@@ -158,23 +167,14 @@ class UrlHelper {
public static function fetch($options /* previously: 0: $url , 1: $type = false, 2: $login = false, 3: $pass = false,
4: $post_query = false, 5: $timeout = false, 6: $timestamp = 0, 7: $useragent = false*/) {
- global $fetch_last_error;
- global $fetch_last_error_code;
- global $fetch_last_error_content;
- global $fetch_last_content_type;
- global $fetch_last_modified;
- global $fetch_effective_url;
- global $fetch_effective_ip_addr;
- global $fetch_curl_used;
-
- $fetch_last_error = false;
- $fetch_last_error_code = -1;
- $fetch_last_error_content = "";
- $fetch_last_content_type = "";
- $fetch_curl_used = false;
- $fetch_last_modified = "";
- $fetch_effective_url = "";
- $fetch_effective_ip_addr = "";
+ self::$fetch_last_error = false;
+ self::$fetch_last_error_code = -1;
+ self::$fetch_last_error_content = "";
+ self::$fetch_last_content_type = "";
+ self::$fetch_curl_used = false;
+ self::$fetch_last_modified = "";
+ self::$fetch_effective_url = "";
+ self::$fetch_effective_ip_addr = "";
if (!is_array($options)) {
@@ -219,7 +219,7 @@ class UrlHelper {
$url = self::validate($url, true);
if (!$url) {
- $fetch_last_error = "Requested URL failed extended validation.";
+ self::$fetch_last_error = "Requested URL failed extended validation.";
return false;
}
@@ -227,13 +227,13 @@ class UrlHelper {
$ip_addr = gethostbyname($url_host);
if (!$ip_addr || strpos($ip_addr, "127.") === 0) {
- $fetch_last_error = "URL hostname failed to resolve or resolved to a loopback address ($ip_addr)";
+ self::$fetch_last_error = "URL hostname failed to resolve or resolved to a loopback address ($ip_addr)";
return false;
}
if (function_exists('curl_init') && !ini_get("open_basedir")) {
- $fetch_curl_used = true;
+ self::$fetch_curl_used = true;
$ch = curl_init($url);
@@ -306,13 +306,13 @@ class UrlHelper {
list ($key, $value) = explode(": ", $header);
if (strtolower($key) == "last-modified") {
- $fetch_last_modified = $value;
+ self::$fetch_last_modified = $value;
}
}
if (substr(strtolower($header), 0, 7) == 'http/1.') {
- $fetch_last_error_code = (int) substr($header, 9, 3);
- $fetch_last_error = $header;
+ self::$fetch_last_error_code = (int) substr($header, 9, 3);
+ self::$fetch_last_error = $header;
}
}
@@ -322,39 +322,39 @@ class UrlHelper {
}
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
- $fetch_last_content_type = curl_getinfo($ch, CURLINFO_CONTENT_TYPE);
+ self::$fetch_last_content_type = curl_getinfo($ch, CURLINFO_CONTENT_TYPE);
- $fetch_effective_url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
+ self::$fetch_effective_url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
- if (!self::validate($fetch_effective_url, true)) {
- $fetch_last_error = "URL received after redirection failed extended validation.";
+ if (!self::validate(self::$fetch_effective_url, true)) {
+ self::$fetch_last_error = "URL received after redirection failed extended validation.";
return false;
}
- $fetch_effective_ip_addr = gethostbyname(parse_url($fetch_effective_url, PHP_URL_HOST));
+ self::$fetch_effective_ip_addr = gethostbyname(parse_url(self::$fetch_effective_url, PHP_URL_HOST));
- if (!$fetch_effective_ip_addr || strpos($fetch_effective_ip_addr, "127.") === 0) {
- $fetch_last_error = "URL hostname received after redirection failed to resolve or resolved to a loopback address ($fetch_effective_ip_addr)";
+ if (!self::$fetch_effective_ip_addr || strpos(self::$fetch_effective_ip_addr, "127.") === 0) {
+ self::$fetch_last_error = "URL hostname received after redirection failed to resolve or resolved to a loopback address (".self::$fetch_effective_ip_addr.")";
return false;
}
- $fetch_last_error_code = $http_code;
+ self::$fetch_last_error_code = $http_code;
- if ($http_code != 200 || $type && strpos($fetch_last_content_type, "$type") === false) {
+ if ($http_code != 200 || $type && strpos(self::$fetch_last_content_type, "$type") === false) {
if (curl_errno($ch) != 0) {
- $fetch_last_error .= "; " . curl_errno($ch) . " " . curl_error($ch);
+ self::$fetch_last_error .= "; " . curl_errno($ch) . " " . curl_error($ch);
}
- $fetch_last_error_content = $contents;
+ self::$fetch_last_error_content = $contents;
curl_close($ch);
return false;
}
if (!$contents) {
- $fetch_last_error = curl_errno($ch) . " " . curl_error($ch);
+ self::$fetch_last_error = curl_errno($ch) . " " . curl_error($ch);
curl_close($ch);
return false;
}
@@ -372,7 +372,7 @@ class UrlHelper {
return $contents;
} else {
- $fetch_curl_used = false;
+ self::$fetch_curl_used = false;
if ($login && $pass){
$url_parts = array();
@@ -417,18 +417,18 @@ class UrlHelper {
$old_error = error_get_last();
- $fetch_effective_url = self::resolve_redirects($url, $timeout ? $timeout : Config::get(Config::FILE_FETCH_CONNECT_TIMEOUT));
+ self::$fetch_effective_url = self::resolve_redirects($url, $timeout ? $timeout : Config::get(Config::FILE_FETCH_CONNECT_TIMEOUT));
- if (!self::validate($fetch_effective_url, true)) {
- $fetch_last_error = "URL received after redirection failed extended validation.";
+ if (!self::validate(self::$fetch_effective_url, true)) {
+ self::$fetch_last_error = "URL received after redirection failed extended validation.";
return false;
}
- $fetch_effective_ip_addr = gethostbyname(parse_url($fetch_effective_url, PHP_URL_HOST));
+ self::$fetch_effective_ip_addr = gethostbyname(parse_url(self::$fetch_effective_url, PHP_URL_HOST));
- if (!$fetch_effective_ip_addr || strpos($fetch_effective_ip_addr, "127.") === 0) {
- $fetch_last_error = "URL hostname received after redirection failed to resolve or resolved to a loopback address ($fetch_effective_ip_addr)";
+ if (!self::$fetch_effective_ip_addr || strpos(self::$fetch_effective_ip_addr, "127.") === 0) {
+ self::$fetch_last_error = "URL hostname received after redirection failed to resolve or resolved to a loopback address (".self::$fetch_effective_ip_addr.")";
return false;
}
@@ -442,30 +442,30 @@ class UrlHelper {
$key = strtolower($key);
if ($key == 'content-type') {
- $fetch_last_content_type = $value;
+ self::$fetch_last_content_type = $value;
// don't abort here b/c there might be more than one
// e.g. if we were being redirected -- last one is the right one
} else if ($key == 'last-modified') {
- $fetch_last_modified = $value;
+ self::$fetch_last_modified = $value;
} else if ($key == 'location') {
- $fetch_effective_url = $value;
+ self::$fetch_effective_url = $value;
}
}
if (substr(strtolower($header), 0, 7) == 'http/1.') {
- $fetch_last_error_code = (int) substr($header, 9, 3);
- $fetch_last_error = $header;
+ self::$fetch_last_error_code = (int) substr($header, 9, 3);
+ self::$fetch_last_error = $header;
}
}
- if ($fetch_last_error_code != 200) {
+ if (self::$fetch_last_error_code != 200) {
$error = error_get_last();
- if ($error['message'] != $old_error['message']) {
- $fetch_last_error .= "; " . $error["message"];
+ if (($error['message'] ?? '') != ($old_error['message'] ?? '')) {
+ self::$fetch_last_error .= "; " . $error["message"];
}
- $fetch_last_error_content = $data;
+ self::$fetch_last_error_content = $data;
return false;
}
diff --git a/classes/userhelper.php b/classes/userhelper.php
index ca673cf58..ce26e6c71 100644
--- a/classes/userhelper.php
+++ b/classes/userhelper.php
@@ -1,6 +1,22 @@
<?php
+use OTPHP\TOTP;
+
class UserHelper {
+ const HASH_ALGO_SSHA512 = 'SSHA-512';
+ const HASH_ALGO_SSHA256 = 'SSHA-256';
+ const HASH_ALGO_MODE2 = 'MODE2';
+ const HASH_ALGO_SHA1X = 'SHA1X';
+ const HASH_ALGO_SHA1 = 'SHA1';
+
+ const HASH_ALGOS = [
+ self::HASH_ALGO_SSHA512,
+ self::HASH_ALGO_SSHA256,
+ self::HASH_ALGO_MODE2,
+ self::HASH_ALGO_SHA1X,
+ self::HASH_ALGO_SHA1
+ ];
+
static function authenticate(string $login = null, string $password = null, bool $check_only = false, string $service = null) {
if (!Config::get(Config::SINGLE_USER_MODE)) {
$user_id = false;
@@ -23,27 +39,24 @@ class UserHelper {
session_regenerate_id(true);
- $_SESSION["uid"] = $user_id;
- $_SESSION["auth_module"] = $auth_module;
+ $user = ORM::for_table('ttrss_users')->find_one($user_id);
- $pdo = Db::pdo();
- $sth = $pdo->prepare("SELECT login,access_level,pwd_hash FROM ttrss_users
- WHERE id = ?");
- $sth->execute([$user_id]);
- $row = $sth->fetch();
-
- $_SESSION["name"] = $row["login"];
- $_SESSION["access_level"] = $row["access_level"];
- $_SESSION["csrf_token"] = bin2hex(get_random_bytes(16));
+ if ($user) {
+ $_SESSION["uid"] = $user_id;
+ $_SESSION["auth_module"] = $auth_module;
+ $_SESSION["name"] = $user->login;
+ $_SESSION["access_level"] = $user->access_level;
+ $_SESSION["csrf_token"] = bin2hex(get_random_bytes(16));
+ $_SESSION["ip_address"] = UserHelper::get_user_ip();
+ $_SESSION["pwd_hash"] = $user->pwd_hash;
- $usth = $pdo->prepare("UPDATE ttrss_users SET last_login = NOW() WHERE id = ?");
- $usth->execute([$user_id]);
+ $user->last_login = Db::NOW();
+ $user->save();
- $_SESSION["ip_address"] = UserHelper::get_user_ip();
- $_SESSION["user_agent"] = sha1($_SERVER['HTTP_USER_AGENT']);
- $_SESSION["pwd_hash"] = $row["pwd_hash"];
+ return true;
+ }
- return true;
+ return false;
}
if ($login && $password && !$user_id && !$check_only)
@@ -75,7 +88,7 @@ class UserHelper {
if (!$pluginhost) $pluginhost = PluginHost::getInstance();
- if ($owner_uid && SCHEMA_VERSION >= 100 && empty($_SESSION["safe_mode"])) {
+ if ($owner_uid && Config::get_schema_version() >= 100 && empty($_SESSION["safe_mode"])) {
$plugins = get_pref(Prefs::_ENABLED_PLUGINS, $owner_uid);
$pluginhost->load((string)$plugins, PluginHost::KIND_USER, $owner_uid);
@@ -117,8 +130,9 @@ class UserHelper {
} else {
/* bump login timestamp */
- $sth = $pdo->prepare("UPDATE ttrss_users SET last_login = NOW() WHERE id = ?");
- $sth->execute([$_SESSION['uid']]);
+ $user = ORM::for_table('ttrss_users')->find_one($_SESSION["uid"]);
+ $user->last_login = Db::NOW();
+ $user->save();
$_SESSION["last_login_update"] = time();
}
@@ -146,20 +160,29 @@ class UserHelper {
if (isset($_SERVER[$hdr]))
return $_SERVER[$hdr];
}
- }
- static function find_user_by_login(string $login) {
- $pdo = Db::pdo();
+ return null;
+ }
- $sth = $pdo->prepare("SELECT id FROM ttrss_users WHERE
- LOWER(login) = LOWER(?)");
- $sth->execute([$login]);
+ static function get_login_by_id(int $id) {
+ $user = ORM::for_table('ttrss_users')
+ ->find_one($id);
- if ($row = $sth->fetch()) {
- return $row["id"];
- }
+ if ($user)
+ return $user->login;
+ else
+ return null;
+ }
- return false;
+ static function find_user_by_login(string $login) {
+ $user = ORM::for_table('ttrss_users')
+ ->where('login', $login)
+ ->find_one();
+
+ if ($user)
+ return $user->id;
+ else
+ return null;
}
static function logout() {
@@ -173,34 +196,167 @@ class UserHelper {
session_commit();
}
- static function reset_password($uid, $format_output = false) {
+ static function get_salt() {
+ return substr(bin2hex(get_random_bytes(125)), 0, 250);
+ }
- $pdo = Db::pdo();
+ static function reset_password($uid, $format_output = false, $new_password = "") {
- $sth = $pdo->prepare("SELECT login FROM ttrss_users WHERE id = ?");
- $sth->execute([$uid]);
+ $user = ORM::for_table('ttrss_users')->find_one($uid);
+ $message = "";
- if ($row = $sth->fetch()) {
+ if ($user) {
- $login = $row["login"];
+ $login = $user->login;
- $new_salt = substr(bin2hex(get_random_bytes(125)), 0, 250);
- $tmp_user_pwd = make_password();
+ $new_salt = self::get_salt();
+ $tmp_user_pwd = $new_password ? $new_password : make_password();
- $pwd_hash = encrypt_password($tmp_user_pwd, $new_salt, true);
+ $pwd_hash = self::hash_password($tmp_user_pwd, $new_salt, self::HASH_ALGOS[0]);
- $sth = $pdo->prepare("UPDATE ttrss_users
- SET pwd_hash = ?, salt = ?, otp_enabled = false
- WHERE id = ?");
- $sth->execute([$pwd_hash, $new_salt, $uid]);
+ $user->pwd_hash = $pwd_hash;
+ $user->salt = $new_salt;
+ $user->save();
$message = T_sprintf("Changed password of user %s to %s", "<strong>$login</strong>", "<strong>$tmp_user_pwd</strong>");
+ } else {
+ $message = __("User not found");
+ }
- if ($format_output)
- print_notice($message);
- else
- print $message;
+ if ($format_output)
+ print_notice($message);
+ else
+ print $message;
+ }
+ static function check_otp(int $owner_uid, int $otp_check) : bool {
+ $otp = TOTP::create(self::get_otp_secret($owner_uid, true));
+
+ return $otp->now() == $otp_check;
+ }
+
+ static function disable_otp(int $owner_uid) : bool {
+ $user = ORM::for_table('ttrss_users')->find_one($owner_uid);
+
+ if ($user) {
+ $user->otp_enabled = false;
+
+ // force new OTP secret when next enabled
+ if (Config::get_schema_version() >= 143) {
+ $user->otp_secret = null;
+ }
+
+ $user->save();
+
+ return true;
+ } else {
+ return false;
}
}
+
+ static function enable_otp(int $owner_uid, int $otp_check) : bool {
+ $secret = self::get_otp_secret($owner_uid);
+
+ if ($secret) {
+ $otp = TOTP::create($secret);
+ $user = ORM::for_table('ttrss_users')->find_one($owner_uid);
+
+ if ($otp->now() == $otp_check && $user) {
+
+ $user->otp_enabled = true;
+ $user->save();
+
+ return true;
+ }
+ }
+ return false;
+ }
+
+
+ static function is_otp_enabled(int $owner_uid) : bool {
+ $user = ORM::for_table('ttrss_users')->find_one($owner_uid);
+
+ if ($user) {
+ return $user->otp_enabled;
+ } else {
+ return false;
+ }
+ }
+
+ static function get_otp_secret(int $owner_uid, bool $show_if_enabled = false) {
+ $user = ORM::for_table('ttrss_users')->find_one($owner_uid);
+
+ if ($user) {
+
+ $salt_based_secret = mb_substr(sha1($user->salt), 0, 12);
+
+ if (Config::get_schema_version() >= 143) {
+ $secret = $user->otp_secret;
+
+ if (empty($secret)) {
+
+ /* migrate secret if OTP is already enabled, otherwise make a new one */
+ if ($user->otp_enabled) {
+ $user->otp_secret = $salt_based_secret;
+ } else {
+ $user->otp_secret = bin2hex(get_random_bytes(6));
+ }
+
+ $user->save();
+
+ $secret = $user->otp_secret;
+ }
+ } else {
+ $secret = $salt_based_secret;
+ }
+
+ if (!$user->otp_enabled || $show_if_enabled) {
+ return \ParagonIE\ConstantTime\Base32::encodeUpperUnpadded($secret);
+ }
+ }
+
+ return null;
+ }
+
+ static function is_default_password() {
+ $authenticator = PluginHost::getInstance()->get_plugin($_SESSION["auth_module"]);
+
+ if ($authenticator &&
+ method_exists($authenticator, "check_password") &&
+ $authenticator->check_password($_SESSION["uid"], "password")) {
+
+ return true;
+ }
+ return false;
+ }
+
+ static function hash_password(string $pass, string $salt, string $algo = "") {
+
+ if (!$algo) $algo = self::HASH_ALGOS[0];
+
+ $pass_hash = "";
+
+ switch ($algo) {
+ case self::HASH_ALGO_SHA1:
+ $pass_hash = sha1($pass);
+ break;
+ case self::HASH_ALGO_SHA1X:
+ $pass_hash = sha1("$salt:$pass");
+ break;
+ case self::HASH_ALGO_MODE2:
+ case self::HASH_ALGO_SSHA256:
+ $pass_hash = hash('sha256', $salt . $pass);
+ break;
+ case self::HASH_ALGO_SSHA512:
+ $pass_hash = hash('sha512', $salt . $pass);
+ break;
+ default:
+ user_error("hash_password: unknown hash algo: $algo", E_USER_ERROR);
+ }
+
+ if ($pass_hash)
+ return "$algo:$pass_hash";
+ else
+ return false;
+ }
}
diff --git a/composer.json b/composer.json
new file mode 100644
index 000000000..0c9ec0926
--- /dev/null
+++ b/composer.json
@@ -0,0 +1,8 @@
+{
+ "require": {
+ "spomky-labs/otphp": "^10.0",
+ "chillerlan/php-qrcode": "^3.3",
+ "mervick/material-design-icons": "^2.2",
+ "j4mie/idiorm": "^1.5"
+ }
+}
diff --git a/composer.lock b/composer.lock
new file mode 100644
index 000000000..40f171ada
--- /dev/null
+++ b/composer.lock
@@ -0,0 +1,604 @@
+{
+ "_readme": [
+ "This file locks the dependencies of your project to a known state",
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
+ "This file is @generated automatically"
+ ],
+ "content-hash": "e7f23b092328c903b06c8ae31bf13781",
+ "packages": [
+ {
+ "name": "beberlei/assert",
+ "version": "v3.2.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/beberlei/assert.git",
+ "reference": "d63a6943fc4fd1a2aedb65994e3548715105abcf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/beberlei/assert/zipball/d63a6943fc4fd1a2aedb65994e3548715105abcf",
+ "reference": "d63a6943fc4fd1a2aedb65994e3548715105abcf",
+ "shasum": ""
+ },
+ "require": {
+ "ext-ctype": "*",
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "ext-simplexml": "*",
+ "php": "^7"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "*",
+ "phpstan/phpstan-shim": "*",
+ "phpunit/phpunit": ">=6.0.0 <8"
+ },
+ "suggest": {
+ "ext-intl": "Needed to allow Assertion::count(), Assertion::isCountable(), Assertion::minCount(), and Assertion::maxCount() to operate on ResourceBundles"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Assert\\": "lib/Assert"
+ },
+ "files": [
+ "lib/Assert/functions.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-2-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Benjamin Eberlei",
+ "email": "[email protected]",
+ "role": "Lead Developer"
+ },
+ {
+ "name": "Richard Quadling",
+ "email": "[email protected]",
+ "role": "Collaborator"
+ }
+ ],
+ "description": "Thin assertion library for input validation in business models.",
+ "keywords": [
+ "assert",
+ "assertion",
+ "validation"
+ ],
+ "support": {
+ "issues": "https://github.com/beberlei/assert/issues",
+ "source": "https://github.com/beberlei/assert/tree/v3"
+ },
+ "time": "2019-12-19T17:51:41+00:00"
+ },
+ {
+ "name": "chillerlan/php-qrcode",
+ "version": "3.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/chillerlan/php-qrcode.git",
+ "reference": "d8bf297e6843a53aeaa8f3285ce04fc349d133d6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/chillerlan/php-qrcode/zipball/d8bf297e6843a53aeaa8f3285ce04fc349d133d6",
+ "reference": "d8bf297e6843a53aeaa8f3285ce04fc349d133d6",
+ "shasum": ""
+ },
+ "require": {
+ "chillerlan/php-settings-container": "^1.2",
+ "ext-mbstring": "*",
+ "php": "^7.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.5",
+ "setasign/fpdf": "^1.8.2"
+ },
+ "suggest": {
+ "chillerlan/php-authenticator": "Yet another Google authenticator! Also creates URIs for mobile apps.",
+ "setasign/fpdf": "Required to use the QR FPDF output."
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "chillerlan\\QRCode\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Kazuhiko Arase",
+ "homepage": "https://github.com/kazuhikoarase"
+ },
+ {
+ "name": "Smiley",
+ "email": "[email protected]",
+ "homepage": "https://github.com/codemasher"
+ },
+ {
+ "name": "Contributors",
+ "homepage": "https://github.com/chillerlan/php-qrcode/graphs/contributors"
+ }
+ ],
+ "description": "A QR code generator. PHP 7.2+",
+ "homepage": "https://github.com/chillerlan/php-qrcode",
+ "keywords": [
+ "phpqrcode",
+ "qr",
+ "qr code",
+ "qrcode",
+ "qrcode-generator"
+ ],
+ "support": {
+ "issues": "https://github.com/chillerlan/php-qrcode/issues",
+ "source": "https://github.com/chillerlan/php-qrcode/tree/3.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://www.paypal.com/donate?hosted_button_id=WLYUNAT9ZTJZ4",
+ "type": "custom"
+ },
+ {
+ "url": "https://ko-fi.com/codemasher",
+ "type": "ko_fi"
+ }
+ ],
+ "time": "2020-11-18T20:51:41+00:00"
+ },
+ {
+ "name": "chillerlan/php-settings-container",
+ "version": "1.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/chillerlan/php-settings-container.git",
+ "reference": "b9b0431dffd74102ee92348a63b4c33fc8ba639b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/chillerlan/php-settings-container/zipball/b9b0431dffd74102ee92348a63b4c33fc8ba639b",
+ "reference": "b9b0431dffd74102ee92348a63b4c33fc8ba639b",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "php": "^7.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "chillerlan\\Settings\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Smiley",
+ "email": "[email protected]",
+ "homepage": "https://github.com/codemasher"
+ }
+ ],
+ "description": "A container class for immutable settings objects. Not a DI container. PHP 7.2+",
+ "homepage": "https://github.com/chillerlan/php-settings-container",
+ "keywords": [
+ "PHP7",
+ "Settings",
+ "container",
+ "helper"
+ ],
+ "support": {
+ "issues": "https://github.com/chillerlan/php-settings-container/issues",
+ "source": "https://github.com/chillerlan/php-settings-container"
+ },
+ "time": "2019-09-10T00:09:44+00:00"
+ },
+ {
+ "name": "j4mie/idiorm",
+ "version": "v1.5.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/j4mie/idiorm.git",
+ "reference": "d23f97053ef5d0b988a02c6a71eb5c6118b2f5b4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/j4mie/idiorm/zipball/d23f97053ef5d0b988a02c6a71eb5c6118b2f5b4",
+ "reference": "d23f97053ef5d0b988a02c6a71eb5c6118b2f5b4",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.2.0"
+ },
+ "require-dev": {
+ "ext-pdo_sqlite": "*",
+ "phpunit/phpunit": "^4.8"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "idiorm.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-2-Clause",
+ "BSD-3-Clause",
+ "BSD-4-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Jamie Matthews",
+ "email": "[email protected]",
+ "homepage": "http://j4mie.org",
+ "role": "Developer"
+ },
+ {
+ "name": "Simon Holywell",
+ "email": "[email protected]",
+ "homepage": "http://simonholywell.com",
+ "role": "Maintainer"
+ },
+ {
+ "name": "Durham Hale",
+ "email": "[email protected]",
+ "homepage": "http://durhamhale.com",
+ "role": "Maintainer"
+ }
+ ],
+ "description": "A lightweight nearly-zero-configuration object-relational mapper and fluent query builder for PHP5",
+ "homepage": "http://j4mie.github.com/idiormandparis",
+ "keywords": [
+ "idiorm",
+ "orm",
+ "query builder"
+ ],
+ "support": {
+ "issues": "https://github.com/j4mie/idiorm/issues",
+ "source": "https://github.com/j4mie/idiorm"
+ },
+ "time": "2020-04-29T00:37:09+00:00"
+ },
+ {
+ "name": "mervick/material-design-icons",
+ "version": "2.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/mervick/material-design-icons.git",
+ "reference": "635435c8d3df3a6da3241648caf8a65d1c07cc1a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/mervick/material-design-icons/zipball/635435c8d3df3a6da3241648caf8a65d1c07cc1a",
+ "reference": "635435c8d3df3a6da3241648caf8a65d1c07cc1a",
+ "shasum": ""
+ },
+ "type": "library",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT",
+ "CC-BY-4.0"
+ ],
+ "authors": [
+ {
+ "name": "Andrey Izman",
+ "email": "[email protected]"
+ }
+ ],
+ "description": "Google Material Design Icons For Using With Bootstrap",
+ "homepage": "http://github.com/mervick/material-design-icons",
+ "keywords": [
+ "bootstrap",
+ "google",
+ "icons",
+ "icons-web-font",
+ "material",
+ "material-design",
+ "web-font"
+ ],
+ "support": {
+ "issues": "https://github.com/mervick/material-design-icons/issues",
+ "source": "http://github.com/mervick/material-design-icons"
+ },
+ "time": "2016-02-22T01:05:40+00:00"
+ },
+ {
+ "name": "paragonie/constant_time_encoding",
+ "version": "v2.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/paragonie/constant_time_encoding.git",
+ "reference": "f34c2b11eb9d2c9318e13540a1dbc2a3afbd939c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/f34c2b11eb9d2c9318e13540a1dbc2a3afbd939c",
+ "reference": "f34c2b11eb9d2c9318e13540a1dbc2a3afbd939c",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7|^8"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^6|^7|^8|^9",
+ "vimeo/psalm": "^1|^2|^3|^4"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "ParagonIE\\ConstantTime\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Paragon Initiative Enterprises",
+ "email": "[email protected]",
+ "homepage": "https://paragonie.com",
+ "role": "Maintainer"
+ },
+ {
+ "name": "Steve 'Sc00bz' Thomas",
+ "email": "[email protected]",
+ "homepage": "https://www.tobtu.com",
+ "role": "Original Developer"
+ }
+ ],
+ "description": "Constant-time Implementations of RFC 4648 Encoding (Base-64, Base-32, Base-16)",
+ "keywords": [
+ "base16",
+ "base32",
+ "base32_decode",
+ "base32_encode",
+ "base64",
+ "base64_decode",
+ "base64_encode",
+ "bin2hex",
+ "encoding",
+ "hex",
+ "hex2bin",
+ "rfc4648"
+ ],
+ "support": {
+ "email": "[email protected]",
+ "issues": "https://github.com/paragonie/constant_time_encoding/issues",
+ "source": "https://github.com/paragonie/constant_time_encoding"
+ },
+ "time": "2020-12-06T15:14:20+00:00"
+ },
+ {
+ "name": "spomky-labs/otphp",
+ "version": "v10.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Spomky-Labs/otphp.git",
+ "reference": "f44cce5a9db4b8da410215d992110482c931232f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Spomky-Labs/otphp/zipball/f44cce5a9db4b8da410215d992110482c931232f",
+ "reference": "f44cce5a9db4b8da410215d992110482c931232f",
+ "shasum": ""
+ },
+ "require": {
+ "beberlei/assert": "^3.0",
+ "ext-mbstring": "*",
+ "paragonie/constant_time_encoding": "^2.0",
+ "php": "^7.2|^8.0",
+ "thecodingmachine/safe": "^0.1.14|^1.0"
+ },
+ "require-dev": {
+ "php-coveralls/php-coveralls": "^2.0",
+ "phpstan/phpstan": "^0.12",
+ "phpstan/phpstan-beberlei-assert": "^0.12",
+ "phpstan/phpstan-deprecation-rules": "^0.12",
+ "phpstan/phpstan-phpunit": "^0.12",
+ "phpstan/phpstan-strict-rules": "^0.12",
+ "phpunit/phpunit": "^8.0",
+ "thecodingmachine/phpstan-safe-rule": "^1.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "v10.0": "10.0.x-dev",
+ "v9.0": "9.0.x-dev",
+ "v8.3": "8.3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "OTPHP\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Florent Morselli",
+ "homepage": "https://github.com/Spomky"
+ },
+ {
+ "name": "All contributors",
+ "homepage": "https://github.com/Spomky-Labs/otphp/contributors"
+ }
+ ],
+ "description": "A PHP library for generating one time passwords according to RFC 4226 (HOTP Algorithm) and the RFC 6238 (TOTP Algorithm) and compatible with Google Authenticator",
+ "homepage": "https://github.com/Spomky-Labs/otphp",
+ "keywords": [
+ "FreeOTP",
+ "RFC 4226",
+ "RFC 6238",
+ "google authenticator",
+ "hotp",
+ "otp",
+ "totp"
+ ],
+ "support": {
+ "issues": "https://github.com/Spomky-Labs/otphp/issues",
+ "source": "https://github.com/Spomky-Labs/otphp/tree/v10.0.1"
+ },
+ "time": "2020-01-28T09:24:19+00:00"
+ },
+ {
+ "name": "thecodingmachine/safe",
+ "version": "v1.3.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thecodingmachine/safe.git",
+ "reference": "a8ab0876305a4cdaef31b2350fcb9811b5608dbc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/a8ab0876305a4cdaef31b2350fcb9811b5608dbc",
+ "reference": "a8ab0876305a4cdaef31b2350fcb9811b5608dbc",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^0.12",
+ "squizlabs/php_codesniffer": "^3.2",
+ "thecodingmachine/phpstan-strict-rules": "^0.12"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "0.1-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Safe\\": [
+ "lib/",
+ "deprecated/",
+ "generated/"
+ ]
+ },
+ "files": [
+ "deprecated/apc.php",
+ "deprecated/libevent.php",
+ "deprecated/mssql.php",
+ "deprecated/stats.php",
+ "lib/special_cases.php",
+ "generated/apache.php",
+ "generated/apcu.php",
+ "generated/array.php",
+ "generated/bzip2.php",
+ "generated/calendar.php",
+ "generated/classobj.php",
+ "generated/com.php",
+ "generated/cubrid.php",
+ "generated/curl.php",
+ "generated/datetime.php",
+ "generated/dir.php",
+ "generated/eio.php",
+ "generated/errorfunc.php",
+ "generated/exec.php",
+ "generated/fileinfo.php",
+ "generated/filesystem.php",
+ "generated/filter.php",
+ "generated/fpm.php",
+ "generated/ftp.php",
+ "generated/funchand.php",
+ "generated/gmp.php",
+ "generated/gnupg.php",
+ "generated/hash.php",
+ "generated/ibase.php",
+ "generated/ibmDb2.php",
+ "generated/iconv.php",
+ "generated/image.php",
+ "generated/imap.php",
+ "generated/info.php",
+ "generated/ingres-ii.php",
+ "generated/inotify.php",
+ "generated/json.php",
+ "generated/ldap.php",
+ "generated/libxml.php",
+ "generated/lzf.php",
+ "generated/mailparse.php",
+ "generated/mbstring.php",
+ "generated/misc.php",
+ "generated/msql.php",
+ "generated/mysql.php",
+ "generated/mysqli.php",
+ "generated/mysqlndMs.php",
+ "generated/mysqlndQc.php",
+ "generated/network.php",
+ "generated/oci8.php",
+ "generated/opcache.php",
+ "generated/openssl.php",
+ "generated/outcontrol.php",
+ "generated/password.php",
+ "generated/pcntl.php",
+ "generated/pcre.php",
+ "generated/pdf.php",
+ "generated/pgsql.php",
+ "generated/posix.php",
+ "generated/ps.php",
+ "generated/pspell.php",
+ "generated/readline.php",
+ "generated/rpminfo.php",
+ "generated/rrd.php",
+ "generated/sem.php",
+ "generated/session.php",
+ "generated/shmop.php",
+ "generated/simplexml.php",
+ "generated/sockets.php",
+ "generated/sodium.php",
+ "generated/solr.php",
+ "generated/spl.php",
+ "generated/sqlsrv.php",
+ "generated/ssdeep.php",
+ "generated/ssh2.php",
+ "generated/stream.php",
+ "generated/strings.php",
+ "generated/swoole.php",
+ "generated/uodbc.php",
+ "generated/uopz.php",
+ "generated/url.php",
+ "generated/var.php",
+ "generated/xdiff.php",
+ "generated/xml.php",
+ "generated/xmlrpc.php",
+ "generated/yaml.php",
+ "generated/yaz.php",
+ "generated/zip.php",
+ "generated/zlib.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "PHP core functions that throw exceptions instead of returning FALSE on error",
+ "support": {
+ "issues": "https://github.com/thecodingmachine/safe/issues",
+ "source": "https://github.com/thecodingmachine/safe/tree/v1.3.3"
+ },
+ "time": "2020-10-28T17:51:34+00:00"
+ }
+ ],
+ "packages-dev": [],
+ "aliases": [],
+ "minimum-stability": "stable",
+ "stability-flags": [],
+ "prefer-stable": false,
+ "prefer-lowest": false,
+ "platform": [],
+ "platform-dev": [],
+ "plugin-api-version": "2.0.0"
+}
diff --git a/include/autoload.php b/include/autoload.php
index 19e00b9ea..4422a435c 100644
--- a/include/autoload.php
+++ b/include/autoload.php
@@ -1,24 +1,17 @@
<?php
spl_autoload_register(function($class) {
- $namespace = '';
- $class_name = $class;
- if (strpos($class, '\\') !== false)
- list ($namespace, $class_name) = explode('\\', $class, 2);
+ $root_dir = dirname(__DIR__); // we were in tt-rss/include
- $root_dir = dirname(__DIR__); // we're in tt-rss/include
+ // - internal tt-rss classes are loaded from classes/ and use special naming logic instead of namespaces
+ // - plugin classes are loaded by PluginHandler from plugins.local/ and plugins/
- // 1. third party libraries with namespaces are loaded from vendor/
- // 2. internal tt-rss classes are loaded from classes/ and use special naming logic instead of namespaces
- // 3. plugin classes are loaded by PluginHandler from plugins.local/ and plugins/ (TODO: use generic autoloader?)
-
- if ($namespace && $class_name) {
- $class_file = "$root_dir/vendor/$namespace/" . str_replace('\\', '/', $class_name) . ".php";
- } else {
- $class_file = "$root_dir/classes/" . str_replace("_", "/", strtolower($class)) . ".php";
- }
+ $class_file = "$root_dir/classes/" . str_replace("_", "/", strtolower($class)) . ".php";
if (file_exists($class_file))
include $class_file;
});
+
+ // also pull composer autoloader
+ require_once "vendor/autoload.php";
diff --git a/include/controls.php b/include/controls.php
index b65a166c2..a1a1bc59b 100755
--- a/include/controls.php
+++ b/include/controls.php
@@ -2,7 +2,7 @@
namespace Controls;
function attributes_to_string(array $attributes) {
- $rv = "";
+ $rv = [];
foreach ($attributes as $k => $v) {
@@ -10,10 +10,10 @@
if ($k === "disabled" && !sql_bool_to_bool($v))
continue;
- $rv .= "$k=\"" . htmlspecialchars($v) . "\"";
+ array_push($rv, "$k=\"" . htmlspecialchars($v) . "\"");
}
- return $rv;
+ return implode(" ", $rv);
}
// shortcut syntax (disabled)
diff --git a/include/controls_compat.php b/include/controls_compat.php
index a4e9ad73f..d1c2c12b5 100644
--- a/include/controls_compat.php
+++ b/include/controls_compat.php
@@ -1,27 +1,32 @@
<?php
-function stylesheet_tag($filename, $id = false) {
- $timestamp = filemtime($filename);
+function stylesheet_tag($filename, $attributes = []) {
- $id_part = $id ? "id=\"$id\"" : "";
+ $attributes_str = \Controls\attributes_to_string(
+ array_merge(
+ [
+ "href" => "$filename?" . filemtime($filename),
+ "rel" => "stylesheet",
+ "type" => "text/css",
+ "data-orig-href" => $filename
+ ],
+ $attributes));
- return "<link rel=\"stylesheet\" $id_part type=\"text/css\" data-orig-href=\"$filename\" href=\"$filename?$timestamp\"/>\n";
+ return "<link $attributes_str/>\n";
}
-function javascript_tag($filename) {
- $query = "";
+function javascript_tag($filename, $attributes = []) {
+ $attributes_str = \Controls\attributes_to_string(
+ array_merge(
+ [
+ "src" => "$filename?" . filemtime($filename),
+ "type" => "text/javascript",
+ "charset" => "utf-8"
+ ],
+ $attributes));
- if (!(strpos($filename, "?") === false)) {
- $query = substr($filename, strpos($filename, "?")+1);
- $filename = substr($filename, 0, strpos($filename, "?"));
- }
-
- $timestamp = filemtime($filename);
-
- if ($query) $timestamp .= "&$query";
-
- return "<script type=\"text/javascript\" charset=\"utf-8\" src=\"$filename?$timestamp\"></script>\n";
+ return "<script $attributes_str></script>\n";
}
function format_warning($msg, $id = "") {
@@ -47,268 +52,3 @@ function print_warning($msg) {
function print_error($msg) {
return print format_error($msg);
}
-
-// the following is deprecated and will be eventually removed
-
-/*function print_select($id, $default, $values, $attributes = "", $name = "") {
- if (!$name) $name = $id;
-
- print "<select name=\"$name\" id=\"$id\" $attributes>";
- foreach ($values as $v) {
- if ($v == $default)
- $sel = "selected=\"1\"";
- else
- $sel = "";
-
- $v = trim($v);
-
- print "<option value=\"$v\" $sel>$v</option>";
- }
- print "</select>";
-}
-
-function print_select_hash($id, $default, $values, $attributes = "", $name = "") {
- if (!$name) $name = $id;
-
- print "<select name=\"$name\" id='$id' $attributes>";
- foreach (array_keys($values) as $v) {
- if ($v == $default)
- $sel = 'selected="selected"';
- else
- $sel = "";
-
- $v = trim($v);
-
- print "<option $sel value=\"$v\">".$values[$v]."</option>";
- }
-
- print "</select>";
-}
-
-function format_hidden($name, $value) {
- return "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"$name\" value=\"$value\">";
-}
-
-function print_hidden($name, $value) {
- print format_hidden($name, $value);
-}
-
-function format_checkbox($id, $checked, $value = "", $attributes = "") {
- $checked_str = $checked ? "checked" : "";
- $value_str = $value ? "value=\"$value\"" : "";
-
- return "<input dojoType=\"dijit.form.CheckBox\" id=\"$id\" $value_str $checked_str $attributes name=\"$id\">";
-}
-
-function print_checkbox($id, $checked, $value = "", $attributes = "") {
- print format_checkbox($id, $checked, $value, $attributes);
-}
-
-function format_button($type, $value, $attributes = "") {
- return "<button dojoType=\"dijit.form.Button\" $attributes type=\"$type\">$value</button>";
-}
-
-function print_button($type, $value, $attributes = "") {
- print format_button($type, $value, $attributes);
-}
-
-function print_feed_multi_select($id, $default_ids = [],
- $attributes = "", $include_all_feeds = true,
- $root_id = null, $nest_level = 0) {
-
- $pdo = Db::pdo();
-
- print_r(in_array("CAT:6",$default_ids));
-
- if (!$root_id) {
- print "<select multiple=\true\" id=\"$id\" name=\"$id\" $attributes>";
- if ($include_all_feeds) {
- $is_selected = (in_array("0", $default_ids)) ? "selected=\"1\"" : "";
- print "<option $is_selected value=\"0\">".__('All feeds')."</option>";
- }
- }
-
- if (get_pref(Prefs::ENABLE_FEED_CATS)) {
-
- if (!$root_id) $root_id = null;
-
- $sth = $pdo->prepare("SELECT id,title,
- (SELECT COUNT(id) FROM ttrss_feed_categories AS c2 WHERE
- c2.parent_cat = ttrss_feed_categories.id) AS num_children
- FROM ttrss_feed_categories
- WHERE owner_uid = :uid AND
- (parent_cat = :root_id OR (:root_id IS NULL AND parent_cat IS NULL)) ORDER BY title");
-
- $sth->execute([":uid" => $_SESSION['uid'], ":root_id" => $root_id]);
-
- while ($line = $sth->fetch()) {
-
- for ($i = 0; $i < $nest_level; $i++)
- $line["title"] = " " . $line["title"];
-
- $is_selected = in_array("CAT:".$line["id"], $default_ids) ? "selected=\"1\"" : "";
-
- printf("<option $is_selected value='CAT:%d'>%s</option>",
- $line["id"], htmlspecialchars($line["title"]));
-
- if ($line["num_children"] > 0)
- print_feed_multi_select($id, $default_ids, $attributes,
- $include_all_feeds, $line["id"], $nest_level+1);
-
- $f_sth = $pdo->prepare("SELECT id,title FROM ttrss_feeds
- WHERE cat_id = ? AND owner_uid = ? ORDER BY title");
-
- $f_sth->execute([$line['id'], $_SESSION['uid']]);
-
- while ($fline = $f_sth->fetch()) {
- $is_selected = (in_array($fline["id"], $default_ids)) ? "selected=\"1\"" : "";
-
- $fline["title"] = " " . $fline["title"];
-
- for ($i = 0; $i < $nest_level; $i++)
- $fline["title"] = " " . $fline["title"];
-
- printf("<option $is_selected value='%d'>%s</option>",
- $fline["id"], htmlspecialchars($fline["title"]));
- }
- }
-
- if (!$root_id) {
- $is_selected = in_array("CAT:0", $default_ids) ? "selected=\"1\"" : "";
-
- printf("<option $is_selected value='CAT:0'>%s</option>",
- __("Uncategorized"));
-
- $f_sth = $pdo->prepare("SELECT id,title FROM ttrss_feeds
- WHERE cat_id IS NULL AND owner_uid = ? ORDER BY title");
- $f_sth->execute([$_SESSION['uid']]);
-
- while ($fline = $f_sth->fetch()) {
- $is_selected = in_array($fline["id"], $default_ids) ? "selected=\"1\"" : "";
-
- $fline["title"] = " " . $fline["title"];
-
- for ($i = 0; $i < $nest_level; $i++)
- $fline["title"] = " " . $fline["title"];
-
- printf("<option $is_selected value='%d'>%s</option>",
- $fline["id"], htmlspecialchars($fline["title"]));
- }
- }
-
- } else {
- $sth = $pdo->prepare("SELECT id,title FROM ttrss_feeds
- WHERE owner_uid = ? ORDER BY title");
- $sth->execute([$_SESSION['uid']]);
-
- while ($line = $sth->fetch()) {
-
- $is_selected = (in_array($line["id"], $default_ids)) ? "selected=\"1\"" : "";
-
- printf("<option $is_selected value='%d'>%s</option>",
- $line["id"], htmlspecialchars($line["title"]));
- }
- }
-
- if (!$root_id) {
- print "</select>";
- }
-}
-
-function print_feed_cat_select($id, $default_id, $attributes, $include_all_cats = true,
- $root_id = null, $nest_level = 0) {
-
- print format_feed_cat_select($id, $default_id, $attributes, $include_all_cats, $root_id, $nest_level);
-}
-
-function format_feed_cat_select($id, $default_id, $attributes, $include_all_cats = true,
- $root_id = null, $nest_level = 0) {
-
- $ret = "";
-
- if (!$root_id) {
- $ret .= "<select id=\"$id\" name=\"$id\" default=\"$default_id\" $attributes>";
- }
-
- $pdo = Db::pdo();
-
- if (!$root_id) $root_id = null;
-
- $sth = $pdo->prepare("SELECT id,title,
- (SELECT COUNT(id) FROM ttrss_feed_categories AS c2 WHERE
- c2.parent_cat = ttrss_feed_categories.id) AS num_children
- FROM ttrss_feed_categories
- WHERE owner_uid = :uid AND
- (parent_cat = :root_id OR (:root_id IS NULL AND parent_cat IS NULL)) ORDER BY title");
- $sth->execute([":uid" => $_SESSION['uid'], ":root_id" => $root_id]);
-
- $found = 0;
-
- while ($line = $sth->fetch()) {
- ++$found;
-
- if ($line["id"] == $default_id) {
- $is_selected = "selected=\"1\"";
- } else {
- $is_selected = "";
- }
-
- for ($i = 0; $i < $nest_level; $i++)
- $line["title"] = " " . $line["title"];
-
- if ($line["title"])
- $ret .= sprintf("<option $is_selected value='%d'>%s</option>",
- $line["id"], htmlspecialchars($line["title"]));
-
- if ($line["num_children"] > 0)
- $ret .= format_feed_cat_select($id, $default_id, $attributes,
- $include_all_cats, $line["id"], $nest_level+1);
- }
-
- if (!$root_id) {
- if ($include_all_cats) {
- if ($found > 0) {
- $ret .= "<option disabled=\"1\">―――――――――――――――</option>";
- }
-
- if ($default_id == 0) {
- $is_selected = "selected=\"1\"";
- } else {
- $is_selected = "";
- }
-
- $ret .= "<option $is_selected value=\"0\">".__('Uncategorized')."</option>";
- }
- $ret .= "</select>";
- }
-
- return $ret;
-}
-
-function print_label_select($name, $value, $attributes = "") {
-
- $pdo = Db::pdo();
-
- $sth = $pdo->prepare("SELECT caption FROM ttrss_labels2
- WHERE owner_uid = ? ORDER BY caption");
- $sth->execute([$_SESSION['uid']]);
-
- print "<select default=\"$value\" name=\"" . htmlspecialchars($name) .
- "\" $attributes>";
-
- while ($line = $sth->fetch()) {
-
- $issel = ($line["caption"] == $value) ? "selected=\"1\"" : "";
-
- print "<option value=\"".htmlspecialchars($line["caption"])."\"
- $issel>" . htmlspecialchars($line["caption"]) . "</option>";
-
- }
-
-# print "<option value=\"ADD_LABEL\">" .__("Add label...") . "</option>";
-
- print "</select>";
-
-
-}
-*/
diff --git a/include/errorhandler.php b/include/errorhandler.php
index 1908bd39c..2ad0be062 100644
--- a/include/errorhandler.php
+++ b/include/errorhandler.php
@@ -55,6 +55,8 @@ function ttrss_error_handler($errno, $errstr, $file, $line) {
if (class_exists("Logger"))
return Logger::log_error((int)$errno, $errstr, $file, (int)$line, $context);
+ else
+ return false;
}
function ttrss_fatal_handler() {
diff --git a/include/functions.php b/include/functions.php
index e0580a076..73d963803 100644
--- a/include/functions.php
+++ b/include/functions.php
@@ -1,15 +1,9 @@
<?php
- define('SCHEMA_VERSION', 141);
-
define('LABEL_BASE_INDEX', -1024);
define('PLUGIN_FEED_BASE_INDEX', -128);
- $fetch_last_error = false;
- $fetch_last_error_code = false;
- $fetch_last_content_type = false;
- $fetch_last_error_content = false; // curl only for the time being
- $fetch_effective_url = false;
- $fetch_curl_used = false;
+ /** constant is @deprecated, use Config::SCHEMA_VERSION instead */
+ define('SCHEMA_VERSION', Config::SCHEMA_VERSION);
if (version_compare(PHP_VERSION, '8.0.0', '<')) {
libxml_disable_entity_loader(true);
@@ -163,73 +157,74 @@
require_once 'controls.php';
require_once 'controls_compat.php';
- define('SELF_USER_AGENT', 'Tiny Tiny RSS/' . get_version() . ' (http://tt-rss.org/)');
+ define('SELF_USER_AGENT', 'Tiny Tiny RSS/' . Config::get_version() . ' (http://tt-rss.org/)');
ini_set('user_agent', SELF_USER_AGENT);
/* compat shims */
+ /** function is @deprecated */
+ function get_version() {
+ return Config::get_version();
+ }
+
+ /** function is @deprecated */
+ function get_schema_version() {
+ return Config::get_schema_version();
+ }
+
+ /** function is @deprecated */
function _debug($msg) {
Debug::log($msg);
}
- // @deprecated
+ /** function is @deprecated */
function getFeedUnread($feed, $is_cat = false) {
return Feeds::_get_counters($feed, $is_cat, true, $_SESSION["uid"]);
}
- // @deprecated
+ /** function is @deprecated */
function sanitize($str, $force_remove_images = false, $owner = false, $site_url = false, $highlight_words = false, $article_id = false) {
return Sanitizer::sanitize($str, $force_remove_images, $owner, $site_url, $highlight_words, $article_id);
}
- // @deprecated
+ /** function is @deprecated */
function fetch_file_contents($params) {
return UrlHelper::fetch($params);
}
- // @deprecated
+ /** function is @deprecated */
function rewrite_relative_url($url, $rel_url) {
return UrlHelper::rewrite_relative($url, $rel_url);
}
- // @deprecated
+ /** function is @deprecated */
function validate_url($url) {
return UrlHelper::validate($url);
}
- // @deprecated
+ /** function is @deprecated */
function authenticate_user($login, $password, $check_only = false, $service = false) {
return UserHelper::authenticate($login, $password, $check_only, $service);
}
- // @deprecated
+ /** function is @deprecated */
function smart_date_time($timestamp, $tz_offset = 0, $owner_uid = false, $eta_min = false) {
return TimeHelper::smart_date_time($timestamp, $tz_offset, $owner_uid, $eta_min);
}
- // @deprecated
+ /** function is @deprecated */
function make_local_datetime($timestamp, $long, $owner_uid = false, $no_smart_dt = false, $eta_min = false) {
return TimeHelper::make_local_datetime($timestamp, $long, $owner_uid, $no_smart_dt, $eta_min);
}
- /* end compat shims */
-
- function get_ssl_certificate_id() {
- if ($_SERVER["REDIRECT_SSL_CLIENT_M_SERIAL"] ?? false) {
- return sha1($_SERVER["REDIRECT_SSL_CLIENT_M_SERIAL"] .
- $_SERVER["REDIRECT_SSL_CLIENT_V_START"] .
- $_SERVER["REDIRECT_SSL_CLIENT_V_END"] .
- $_SERVER["REDIRECT_SSL_CLIENT_S_DN"]);
- }
- if ($_SERVER["SSL_CLIENT_M_SERIAL"] ?? false) {
- return sha1($_SERVER["SSL_CLIENT_M_SERIAL"] .
- $_SERVER["SSL_CLIENT_V_START"] .
- $_SERVER["SSL_CLIENT_V_END"] .
- $_SERVER["SSL_CLIENT_S_DN"]);
- }
- return "";
+ // this returns Config::SELF_URL_PATH sans ending slash
+ /** function is @deprecated by Config::get_self_url() */
+ function get_self_url_prefix() {
+ return Config::get_self_url();
}
+ /* end compat shims */
+
// this is used for user http parameters unless HTML code is actually needed
function clean($param) {
if (is_array($param)) {
@@ -241,6 +236,14 @@
}
}
+ function with_trailing_slash(string $str) : string {
+ if (substr($str, -1) === "/") {
+ return $str;
+ } else {
+ return "$str/";
+ }
+ }
+
function make_password($length = 12) {
$password = "";
$possible = "0123456789abcdfghjkmnpqrstvwxyzABCDFGHJKMNPQRSTVWXYZ*%+^";
@@ -303,10 +306,6 @@
return $s ? 1 : 0;
}
- function get_schema_version() {
- return Config::get_schema_version();
- }
-
function file_is_locked($filename) {
if (file_exists(Config::get(Config::LOCK_DIRECTORY) . "/$filename")) {
if (function_exists('flock')) {
@@ -371,34 +370,6 @@
return vsprintf(_ngettext(array_shift($args), array_shift($args), array_shift($args)), $args);
}
- function is_server_https() {
- return (!empty($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] != 'off')) ||
- (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https');
- }
-
- function is_prefix_https() {
- return parse_url(Config::get(Config::SELF_URL_PATH), PHP_URL_SCHEME) == 'https';
- }
-
- // this returns Config::get(Config::SELF_URL_PATH) sans ending slash
- function get_self_url_prefix() {
- if (strrpos(Config::get(Config::SELF_URL_PATH), "/") === strlen(Config::get(Config::SELF_URL_PATH))-1) {
- return substr(Config::get(Config::SELF_URL_PATH), 0, strlen(Config::get(Config::SELF_URL_PATH))-1);
- } else {
- return Config::get(Config::SELF_URL_PATH);
- }
- }
-
- function encrypt_password($pass, $salt = '', $mode2 = false) {
- if ($salt && $mode2) {
- return "MODE2:" . hash('sha256', $salt . $pass);
- } else if ($salt) {
- return "SHA1X:" . sha1("$salt:$pass");
- } else {
- return "SHA1:" . sha1($pass);
- }
- } // function encrypt_password
-
function init_plugins() {
PluginHost::getInstance()->load(Config::get(Config::PLUGINS), PluginHost::KIND_ALL);
@@ -471,63 +442,3 @@
return $ts;
}
- /* for package maintainers who don't use git: if version_static.txt exists in tt-rss root
- directory, its contents are displayed instead of git commit-based version, this could be generated
- based on source git tree commit used when creating the package */
-
- function get_version(&$git_commit = false, &$git_timestamp = false, &$last_error = false) {
- global $ttrss_version;
-
- if (is_array($ttrss_version) && isset($ttrss_version['version'])) {
- $git_commit = $ttrss_version['commit'];
- $git_timestamp = $ttrss_version['timestamp'];
- $last_error = $ttrss_version['last_error'] ?? "";
-
- return $ttrss_version['version'];
- } else {
- $ttrss_version = [];
- }
-
- $ttrss_version['version'] = "UNKNOWN (Unsupported)";
-
- date_default_timezone_set('UTC');
- $root_dir = dirname(__DIR__);
-
- if (PHP_OS === "Darwin") {
- $ttrss_version['version'] = "UNKNOWN (Unsupported, Darwin)";
- } else if (file_exists("$root_dir/version_static.txt")) {
- $ttrss_version['version'] = trim(file_get_contents("$root_dir/version_static.txt")) . " (Unsupported)";
- } else if (is_dir("$root_dir/.git")) {
- $rc = 0;
- $output = [];
-
- $cwd = getcwd();
-
- chdir($root_dir);
- exec('git --no-pager log --pretty="version: %ct %h" -n1 HEAD 2>&1', $output, $rc);
- chdir($cwd);
-
- if (is_array($output) && count($output) > 0) {
- list ($test, $timestamp, $commit) = explode(" ", $output[0], 3);
-
- if ($test == "version:") {
- $git_commit = $commit;
- $git_timestamp = $timestamp;
-
- $ttrss_version['version'] = strftime("%y.%m", (int)$timestamp) . "-$commit";
- $ttrss_version['commit'] = $commit;
- $ttrss_version['timestamp'] = $timestamp;
- }
- }
-
- if (!isset($ttrss_version['commit'])) {
- $last_error = "Unable to determine version (using $root_dir): RC=$rc; OUTPUT=" . implode("\n", $output);
-
- $ttrss_version["last_error"] = $last_error;
-
- user_error($last_error, E_USER_WARNING);
- }
- }
-
- return $ttrss_version['version'];
- }
diff --git a/include/login_form.php b/include/login_form.php
index 06bf57470..9efe0e238 100755
--- a/include/login_form.php
+++ b/include/login_form.php
@@ -85,7 +85,7 @@
</script>
-<?php $return = urlencode(make_self_url()) ?>
+<?php $return = urlencode(!empty($_REQUEST['return']) ? $_REQUEST['return'] : with_trailing_slash(Config::make_self_url())) ?>
<div class="container">
diff --git a/include/sanity_check.php b/include/sanity_check.php
deleted file mode 100755
index 4831209ba..000000000
--- a/include/sanity_check.php
+++ /dev/null
@@ -1,215 +0,0 @@
-<?php
- /* WARNING! If you modify this file, you are ON YOUR OWN! */
-
- function make_self_url() {
- $proto = is_server_https() ? 'https' : 'http';
-
- return $proto . '://' . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"];
- }
-
- function make_self_url_path() {
- if (!isset($_SERVER["HTTP_HOST"])) return false;
-
- $proto = is_server_https() ? 'https' : 'http';
- $url_path = $proto . '://' . $_SERVER["HTTP_HOST"] . parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH);
-
- return $url_path;
- }
-
- function check_mysql_tables() {
- $pdo = Db::pdo();
-
- $sth = $pdo->prepare("SELECT engine, table_name FROM information_schema.tables WHERE
- table_schema = ? AND table_name LIKE 'ttrss_%' AND engine != 'InnoDB'");
- $sth->execute([Config::get(Config::DB_NAME)]);
-
- $bad_tables = [];
-
- while ($line = $sth->fetch()) {
- array_push($bad_tables, $line);
- }
-
- return $bad_tables;
- }
-
- function initial_sanity_check() {
-
- $errors = array();
-
- if (!file_exists("config.php")) {
- array_push($errors, "Configuration file not found. Looks like you forgot to copy config.php-dist to config.php and edit it.");
- } else {
-
- if (!file_exists("config.php")) {
- array_push($errors, "Please copy config.php-dist to config.php");
- }
-
- if (strpos(Config::get(Config::PLUGINS), "auth_") === false) {
- array_push($errors, "Please enable at least one authentication module via Config::get(Config::PLUGINS) constant in config.php");
- }
-
- if (function_exists('posix_getuid') && posix_getuid() == 0) {
- array_push($errors, "Please don't run this script as root.");
- }
-
- if (version_compare(PHP_VERSION, '7.0.0', '<')) {
- array_push($errors, "PHP version 7.0.0 or newer required. You're using " . PHP_VERSION . ".");
- }
-
- if (!class_exists("UConverter")) {
- array_push($errors, "PHP UConverter class is missing, it's provided by the Internationalization (intl) module.");
- }
-
- if (!is_writable(Config::get(Config::CACHE_DIR) . "/images")) {
- array_push($errors, "Image cache is not writable (chmod -R 777 ".Config::get(Config::CACHE_DIR)."/images)");
- }
-
- if (!is_writable(Config::get(Config::CACHE_DIR) . "/upload")) {
- array_push($errors, "Upload cache is not writable (chmod -R 777 ".Config::get(Config::CACHE_DIR)."/upload)");
- }
-
- if (!is_writable(Config::get(Config::CACHE_DIR) . "/export")) {
- array_push($errors, "Data export cache is not writable (chmod -R 777 ".Config::get(Config::CACHE_DIR)."/export)");
- }
-
- if (Config::get(Config::SINGLE_USER_MODE) && class_exists("PDO")) {
- $pdo = Db::pdo();
-
- $res = $pdo->query("SELECT id FROM ttrss_users WHERE id = 1");
-
- if (!$res->fetch()) {
- array_push($errors, "Config::get(Config::SINGLE_USER_MODE) is enabled in config.php but default admin account is not found.");
- }
- }
-
- if (php_sapi_name() != "cli") {
- $ref_self_url_path = make_self_url_path();
-
- if ($ref_self_url_path) {
- $ref_self_url_path = preg_replace("/\w+\.php$/", "", $ref_self_url_path);
- }
-
- if (Config::get(Config::SELF_URL_PATH) == "http://example.org/tt-rss/") {
- $hint = $ref_self_url_path ? "(possible value: <b>$ref_self_url_path</b>)" : "";
- array_push($errors,
- "Please set Config::get(Config::SELF_URL_PATH) to the correct value for your server: $hint");
- }
-
- if ($ref_self_url_path &&
- (!defined('_SKIP_SELF_URL_PATH_CHECKS') || !_SKIP_SELF_URL_PATH_CHECKS) &&
- Config::get(Config::SELF_URL_PATH) != $ref_self_url_path && Config::get(Config::SELF_URL_PATH) != mb_substr($ref_self_url_path, 0, mb_strlen($ref_self_url_path)-1)) {
- array_push($errors,
- "Please set Config::get(Config::SELF_URL_PATH) to the correct value detected for your server: <b>$ref_self_url_path</b> (you're using: <b>" . Config::get(Config::SELF_URL_PATH) . "</b>)");
- }
- }
-
- if (!is_writable(Config::get(Config::ICONS_DIR))) {
- array_push($errors, "ICONS_DIR defined in config.php is not writable (chmod -R 777 ".Config::get(Config::ICONS_DIR).").\n");
- }
-
- if (!is_writable(Config::get(Config::LOCK_DIRECTORY))) {
- array_push($errors, "Config::get(Config::LOCK_DIRECTORY) defined in config.php is not writable (chmod -R 777 ".Config::get(Config::LOCK_DIRECTORY).").\n");
- }
-
- if (!function_exists("curl_init") && !ini_get("allow_url_fopen")) {
- array_push($errors, "PHP configuration option allow_url_fopen is disabled, and CURL functions are not present. Either enable allow_url_fopen or install PHP extension for CURL.");
- }
-
- if (!function_exists("json_encode")) {
- array_push($errors, "PHP support for JSON is required, but was not found.");
- }
-
- if (!class_exists("PDO")) {
- array_push($errors, "PHP support for PDO is required but was not found.");
- }
-
- if (!function_exists("mb_strlen")) {
- array_push($errors, "PHP support for mbstring functions is required but was not found.");
- }
-
- if (!function_exists("hash")) {
- array_push($errors, "PHP support for hash() function is required but was not found.");
- }
-
- if (ini_get("safe_mode")) {
- array_push($errors, "PHP safe mode setting is obsolete and not supported by tt-rss.");
- }
-
- if (!function_exists("mime_content_type")) {
- array_push($errors, "PHP function mime_content_type() is missing, try enabling fileinfo module.");
- }
-
- if (!class_exists("DOMDocument")) {
- array_push($errors, "PHP support for DOMDocument is required, but was not found.");
- }
-
- if (Config::get(Config::DB_TYPE) == "mysql") {
- $bad_tables = check_mysql_tables();
-
- if (count($bad_tables) > 0) {
- $bad_tables_fmt = [];
-
- foreach ($bad_tables as $bt) {
- array_push($bad_tables_fmt, sprintf("%s (%s)", $bt['table_name'], $bt['engine']));
- }
-
- $msg = "<p>The following tables use an unsupported MySQL engine: <b>" .
- implode(", ", $bad_tables_fmt) . "</b>.</p>";
-
- $msg .= "<p>The only supported engine on MySQL is InnoDB. MyISAM lacks functionality to run
- tt-rss.
- Please backup your data (via OPML) and re-import the schema before continuing.</p>
- <p><b>WARNING: importing the schema would mean LOSS OF ALL YOUR DATA.</b></p>";
-
-
- array_push($errors, $msg);
- }
- }
- }
-
- if (count($errors) > 0 && php_sapi_name() != "cli") { ?>
- <!DOCTYPE html>
- <html>
- <head>
- <title>Startup failed</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <link rel="stylesheet" type="text/css" href="themes/light.css">
- </head>
- <body class='sanity_failed claro ttrss_utility'>
- <div class="content">
-
- <h1>Startup failed</h1>
-
- <p>Tiny Tiny RSS was unable to start properly. This usually means a misconfiguration or an incomplete upgrade. Please fix
- errors indicated by the following messages:</p>
-
- <?php foreach ($errors as $error) { echo format_error($error); } ?>
-
- <p>You might want to check tt-rss <a href="https://tt-rss.org/wiki.php">wiki</a> or the
- <a href="https://community.tt-rss.org/">forums</a> for more information. Please search the forums before creating new topic
- for your question.</p>
-
- </div>
- </body>
- </html>
-
- <?php
- die;
- } else if (count($errors) > 0) {
- echo "Tiny Tiny RSS was unable to start properly. This usually means a misconfiguration or an incomplete upgrade.\n";
- echo "Please fix errors indicated by the following messages:\n\n";
-
- foreach ($errors as $error) {
- echo " * " . strip_tags($error)."\n";
- }
-
- echo "\nYou might want to check tt-rss wiki or the forums for more information.\n";
- echo "Please search the forums before creating new topic for your question.\n";
-
- exit(-1);
- }
- }
-
- initial_sanity_check();
-
-?>
diff --git a/include/sessions.php b/include/sessions.php
index 891a6b3fa..9044c609b 100644
--- a/include/sessions.php
+++ b/include/sessions.php
@@ -9,7 +9,7 @@
$session_expire = min(2147483647 - time() - 1, max(\Config::get(\Config::SESSION_COOKIE_LIFETIME), 86400));
$session_name = \Config::get(\Config::SESSION_NAME);
- if (is_server_https()) {
+ if (\Config::is_server_https()) {
ini_set("session.cookie_secure", "true");
}
@@ -22,41 +22,19 @@
function validate_session() {
if (\Config::get(\Config::SINGLE_USER_MODE)) return true;
- if (isset($_SESSION["ref_schema_version"]) && $_SESSION["ref_schema_version"] != \Config::get_schema_version()) {
- $_SESSION["login_error_msg"] =
- __("Session failed to validate (schema version changed)");
- return false;
- }
- $pdo = \Db::pdo();
+ $pdo = \Db::pdo();
if (!empty($_SESSION["uid"])) {
+ $user = \ORM::for_table('ttrss_users')->find_one($_SESSION["uid"]);
- if ($_SESSION["user_agent"] != sha1($_SERVER['HTTP_USER_AGENT'])) {
- $_SESSION["login_error_msg"] = __("Session failed to validate (UA changed).");
- return false;
- }
-
- $sth = $pdo->prepare("SELECT pwd_hash FROM ttrss_users WHERE id = ?");
- $sth->execute([$_SESSION['uid']]);
-
- // user not found
- if ($row = $sth->fetch()) {
- $pwd_hash = $row["pwd_hash"];
-
- if ($pwd_hash != $_SESSION["pwd_hash"]) {
-
- $_SESSION["login_error_msg"] =
- __("Session failed to validate (password changed)");
-
- return false;
- }
+ if ($user) {
+ if ($user->pwd_hash != $_SESSION["pwd_hash"]) {
+ $_SESSION["login_error_msg"] = __("Session failed to validate (password changed)");
+ return false;
+ }
} else {
-
- $_SESSION["login_error_msg"] =
- __("Session failed to validate (user not found)");
-
- return false;
-
+ $_SESSION["login_error_msg"] = __("Session failed to validate (user not found)");
+ return false;
}
}
@@ -127,17 +105,19 @@
return true;
}
- if (!\Config::get(\Config::SINGLE_USER_MODE)) {
- session_set_save_handler('\Sessions\ttrss_open',
- '\Sessions\ttrss_close', '\Sessions\ttrss_read',
- '\Sessions\ttrss_write', '\Sessions\ttrss_destroy',
- '\Sessions\ttrss_gc');
- register_shutdown_function('session_write_close');
- }
+ if (\Config::get_schema_version() >= 0) {
+ if (!\Config::get(\Config::SINGLE_USER_MODE)) {
+ session_set_save_handler('\Sessions\ttrss_open',
+ '\Sessions\ttrss_close', '\Sessions\ttrss_read',
+ '\Sessions\ttrss_write', '\Sessions\ttrss_destroy',
+ '\Sessions\ttrss_gc');
+ register_shutdown_function('session_write_close');
+ }
- if (!defined('NO_SESSION_AUTOSTART')) {
- if (isset($_COOKIE[session_name()])) {
- if (session_status() != PHP_SESSION_ACTIVE)
- session_start();
+ if (!defined('NO_SESSION_AUTOSTART')) {
+ if (isset($_COOKIE[session_name()])) {
+ if (session_status() != PHP_SESSION_ACTIVE)
+ session_start();
+ }
}
}
diff --git a/index.php b/index.php
index 0218db5e1..ba6e03376 100644
--- a/index.php
+++ b/index.php
@@ -13,14 +13,14 @@
require_once "autoload.php";
require_once "sessions.php";
require_once "functions.php";
- require_once "sanity_check.php";
+
+ Config::sanity_check();
if (!init_plugins()) return;
UserHelper::login_sequence();
header('Content-Type: text/html; charset=utf-8');
-
?>
<!DOCTYPE html>
<html>
@@ -31,7 +31,7 @@
<?php if ($_SESSION["uid"] && empty($_SESSION["safe_mode"])) {
$theme = get_pref(Prefs::USER_CSS_THEME);
if ($theme && theme_exists("$theme")) {
- echo stylesheet_tag(get_theme_path($theme), 'theme_css');
+ echo stylesheet_tag(get_theme_path($theme), ['id' => 'theme_css']);
}
} ?>
@@ -168,10 +168,10 @@
</div>
- <form id="toolbar-main" action="" style="order : 20" onsubmit='return false'>
+ <form id="toolbar-main" dojoType="dijit.form.Form" action="" style="order : 20" onsubmit="return false">
<select name="view_mode" title="<?= __('Show articles') ?>"
- onchange="App.onViewModeChanged()"
+ onchange="Feeds.onViewModeChanged()"
dojoType="fox.form.Select">
<option selected="selected" value="adaptive"><?= __('Adaptive') ?></option>
<option value="all_articles"><?= __('All Articles') ?></option>
@@ -179,11 +179,10 @@
<option value="published"><?= __('Published') ?></option>
<option value="unread"><?= __('Unread') ?></option>
<option value="has_note"><?= __('With Note') ?></option>
- <!-- <option value="noscores"><?= __('Ignore Scoring') ?></option> -->
</select>
<select title="<?= __('Sort articles') ?>"
- onchange="App.onViewModeChanged()"
+ onchange="Feeds.onViewModeChanged()"
dojoType="fox.form.Select" name="order_by">
<option selected="selected" value="default"><?= __('Default') ?></option>
diff --git a/js/App.js b/js/App.js
index bb8da578d..20498e692 100644
--- a/js/App.js
+++ b/js/App.js
@@ -18,6 +18,15 @@ const App = {
is_prefs: false,
LABEL_BASE_INDEX: -1024,
_translations: {},
+ Hash: {
+ get: function() {
+ return dojo.queryToObject(window.location.hash.substring(1));
+ },
+ set: function(params) {
+ const obj = dojo.queryToObject(window.location.hash.substring(1));
+ window.location.hash = dojo.objectToQuery({...obj, ...params});
+ }
+ },
l10n: {
ngettext: function(msg1, msg2, n) {
return self.__((parseInt(n) > 1) ? msg2 : msg1);
@@ -52,8 +61,9 @@ const App = {
return this.button_tag(value, "", {...{onclick: "App.dialogOf(this).hide()"}, ...attributes});
},
checkbox_tag: function(name, checked = false, value = "", attributes = {}, id = "") {
+ // checked !== '0' prevents mysql "boolean" false to be implicitly cast as true
return `<input dojoType="dijit.form.CheckBox" type="checkbox" name="${App.escapeHtml(name)}"
- ${checked ? "checked" : ""}
+ ${checked !== '0' && checked ? "checked" : ""}
${value ? `value="${App.escapeHtml(value)}"` : ""}
${this.attributes_to_string(attributes)} id="${App.escapeHtml(id)}">`
},
@@ -418,7 +428,7 @@ const App = {
if (error && error.code && error.code != App.Error.E_SUCCESS) {
console.warn("handleRpcJson: fatal error", error);
- this.Error.fatal(error.code);
+ this.Error.fatal(error.code, error.params);
return false;
}
@@ -547,6 +557,7 @@ const App = {
E_SUCCESS: "E_SUCCESS",
E_UNAUTHORIZED: "E_UNAUTHORIZED",
E_SCHEMA_MISMATCH: "E_SCHEMA_MISMATCH",
+ E_URL_SCHEME_MISMATCH: "E_URL_SCHEME_MISMATCH",
fatal: function (error, params = {}) {
if (error == App.Error.E_UNAUTHORIZED) {
window.location.href = "index.php";
@@ -554,9 +565,14 @@ const App = {
} else if (error == App.Error.E_SCHEMA_MISMATCH) {
window.location.href = "public.php?op=dbupdate";
return;
+ } else if (error == App.Error.E_URL_SCHEME_MISMATCH) {
+ params.description = __("URL scheme reported by your browser (%a) doesn't match server-configured SELF_URL_PATH (%b), check X-Forwarded-Proto.")
+ .replace("%a", params.client_scheme)
+ .replace("%b", params.server_scheme);
+ params.info = `SELF_URL_PATH: ${params.self_url_path}\nCLIENT_LOCATION: ${document.location.href}`
}
- return this.report(__("Fatal error: %s").replace("%s", error),
+ return this.report(error,
{...{title: __("Fatal error")}, ...params});
},
report: function(error, params = {}) {
@@ -587,10 +603,13 @@ const App = {
<div class='exception-contents'>
<h3>${message}</h3>
- <header>${__('Stack trace')}</header>
+ ${params.description ? `<p>${params.description}</p>` : ''}
+
+ ${error.stack ?
+ `<header>${__('Stack trace')}</header>
<section>
<textarea readonly='readonly'>${error.stack}</textarea>
- </section>
+ </section>` : ''}
${params && params.info ?
`
@@ -650,7 +669,8 @@ const App = {
op: "rpc",
method: "sanityCheck",
clientTzOffset: new Date().getTimezoneOffset() * 60,
- hasSandbox: "sandbox" in document.createElement("iframe")
+ hasSandbox: "sandbox" in document.createElement("iframe"),
+ clientLocation: window.location.href
};
xhr.json("backend.php", params, (reply) => {
@@ -757,18 +777,15 @@ const App = {
}
});
- const toolbar = document.forms["toolbar-main"];
-
- dijit.getEnclosingWidget(toolbar.view_mode).attr('value',
- this.getInitParam("default_view_mode"));
-
- dijit.getEnclosingWidget(toolbar.order_by).attr('value',
- this.getInitParam("default_view_order_by"));
+ dijit.byId('toolbar-main').setValues({
+ view_mode: this.getInitParam("default_view_mode"),
+ order_by: this.getInitParam("default_view_order_by")
+ });
this.setLoadingProgress(50);
this._widescreen_mode = this.getInitParam("widescreen");
- this.switchPanelMode(this._widescreen_mode);
+ this.setWidescreen(this._widescreen_mode);
Headlines.initScrollHandler();
@@ -801,10 +818,23 @@ const App = {
.then((reply) => {
console.log('update reply', reply);
- if (reply.id) {
- App.byId("updates-available").show();
+ const icon = App.byId("updates-available");
+
+ if (reply.changeset.id || reply.plugins.length > 0) {
+ icon.show();
+
+ const tips = [];
+
+ if (reply.changeset.id)
+ tips.push(__("Updates for Tiny Tiny RSS are available."));
+
+ if (reply.plugins.length > 0)
+ tips.push(__("Updates for some local plugins are available."));
+
+ icon.setAttribute("title", tips.join("\n"));
+
} else {
- App.byId("updates-available").hide();
+ icon.hide();
}
});
},
@@ -817,13 +847,6 @@ const App = {
document.title = tmp;
},
- onViewModeChanged: function() {
- const view_mode = document.forms["toolbar-main"].view_mode.value;
-
- App.findAll("body")[0].setAttribute("view-mode", view_mode);
-
- return Feeds.reloadCurrent('');
- },
hotkeyHandler: function(event) {
if (event.target.nodeName == "INPUT" || event.target.nodeName == "TEXTAREA") return;
@@ -843,7 +866,7 @@ const App = {
}
}
},
- switchPanelMode: function(wide) {
+ setWidescreen: function(wide) {
const article_id = Article.getActive();
if (wide) {
@@ -884,7 +907,7 @@ const App = {
if (article_id) Article.view(article_id);
- xhr.post("backend.php", {op: "rpc", method: "setpanelmode", wide: wide ? 1 : 0});
+ xhr.post("backend.php", {op: "rpc", method: "setWidescreen", wide: wide ? 1 : 0});
},
initHotkeyActions: function() {
if (this.is_prefs) {
@@ -1144,7 +1167,7 @@ const App = {
Cookie.set("ttrss_ci_width", 0);
Cookie.set("ttrss_ci_height", 0);
- this.switchPanelMode(this._widescreen_mode);
+ this.setWidescreen(this._widescreen_mode);
} else {
alert(__("Widescreen is not available in combined mode."));
}
@@ -1234,7 +1257,7 @@ const App = {
Cookie.set("ttrss_ci_width", 0);
Cookie.set("ttrss_ci_height", 0);
- this.switchPanelMode(this._widescreen_mode);
+ this.setWidescreen(this._widescreen_mode);
} else {
alert(__("Widescreen is not available in combined mode."));
}
@@ -1245,6 +1268,6 @@ const App = {
default:
console.log("quickMenuGo: unknown action: " + opid);
}
- }
+ },
}
diff --git a/js/Article.js b/js/Article.js
index 5f695561c..ed74051a6 100644
--- a/js/Article.js
+++ b/js/Article.js
@@ -144,10 +144,15 @@ const Article = {
).join(", ") : `${__("no tags")}`}</span>`;
},
renderLabels: function(id, labels) {
- return `<span class="labels" data-labels-for="${id}">${labels.map((label) => `
- <span class="label" data-label-id="${label[0]}"
- style="color : ${label[2]}; background-color : ${label[3]}">${App.escapeHtml(label[1])}</span>`
- ).join("")}</span>`;
+ return `<span class="labels" data-labels-for="${id}">
+ ${labels.map((label) => `
+ <a href="#" class="label" data-label-id="${label[0]}"
+ style="color : ${label[2]}; background-color : ${label[3]}"
+ onclick="event.stopPropagation(); Feeds.open({feed:'${label[0]}'})">
+ ${App.escapeHtml(label[1])}
+ </a>`
+ ).join("")}
+ </span>`;
},
renderEnclosures: function (enclosures) {
return `
@@ -317,7 +322,7 @@ const Article = {
},
editTags: function (id) {
const dialog = new fox.SingleUseDialog({
- title: __("Edit article Tags"),
+ title: __("Article tags"),
content: `
${App.FormFields.hidden_tag("id", id.toString())}
${App.FormFields.hidden_tag("op", "article")}
@@ -329,7 +334,7 @@ const Article = {
<section>
<textarea dojoType='dijit.form.SimpleTextarea' rows='4' disabled='true'
- id='tags_str' name='tags_str'></textarea>
+ id='tags_str' name='tags_str'>${__("Loading, please wait...")}</textarea>
<div class='autocomplete' id='tags_choices' style='display:none'></div>
</section>
diff --git a/js/CommonDialogs.js b/js/CommonDialogs.js
index 321ddf6d3..ab8441cac 100644
--- a/js/CommonDialogs.js
+++ b/js/CommonDialogs.js
@@ -3,7 +3,7 @@
/* eslint-disable new-cap */
/* eslint-disable no-new */
-/* global __, dojo, dijit, Notify, App, Feeds, xhrPost, xhr, Tables, fox */
+/* global __, dojo, dijit, Notify, App, Feeds, xhr, Tables, fox */
/* exported CommonDialogs */
const CommonDialogs = {
@@ -16,7 +16,7 @@ const CommonDialogs = {
{op: "feeds", method: "subscribeToFeed"},
(reply) => {
const dialog = new fox.SingleUseDialog({
- title: __("Subscribe to Feed"),
+ title: __("Subscribe to feed"),
content: `
<form onsubmit='return false'>
@@ -181,7 +181,7 @@ const CommonDialogs = {
}
} catch (e) {
- console.error(transport.responseText);
+ console.error(reply);
App.Error.report(e);
}
});
@@ -248,7 +248,7 @@ const CommonDialogs = {
${reply.map((row) => `
<tr data-row-id='${row.id}'>
- <td width='5%' align='center'>
+ <td class='checkbox'>
<input onclick='Tables.onRowChecked(this)' dojoType="dijit.form.CheckBox"
type="checkbox">
</td>
@@ -333,8 +333,12 @@ const CommonDialogs = {
const dialog = new fox.SingleUseDialog({
id: "feedEditDlg",
- title: __("Edit Feed"),
+ title: __("Edit feed"),
feed_title: "",
+ E_ICON_FILE_TOO_LARGE: 'E_ICON_FILE_TOO_LARGE',
+ E_ICON_RENAME_FAILED: 'E_ICON_RENAME_FAILED',
+ E_ICON_UPLOAD_FAILED: 'E_ICON_UPLOAD_FAILED',
+ E_ICON_UPLOAD_SUCCESS: 'E_ICON_UPLOAD_SUCCESS',
unsubscribe: function() {
if (confirm(__("Unsubscribe from %s?").replace("%s", this.feed_title))) {
dialog.hide();
@@ -361,20 +365,18 @@ const CommonDialogs = {
xhr.open( 'POST', 'backend.php', true );
xhr.onload = function () {
- console.log(this.responseText);
+ const ret = JSON.parse(this.responseText);
// TODO: make a notice box within panel content
- switch (parseInt(this.responseText)) {
- case 1:
- Notify.error("Upload failed: icon is too big.");
+ switch (ret.rc) {
+ case dialog.E_ICON_FILE_TOO_LARGE:
+ alert(__("Icon file is too large."));
break;
- case 2:
- Notify.error("Upload failed.");
+ case dialog.E_ICON_UPLOAD_FAILED:
+ alert(__("Upload failed."));
break;
- default:
+ case dialog.E_ICON_UPLOAD_SUCCESS:
{
- Notify.info("Upload complete.");
-
if (App.isPrefs())
dijit.byId("feedTree").reload();
else
@@ -383,12 +385,16 @@ const CommonDialogs = {
const icon = dialog.domNode.querySelector(".feedIcon");
if (icon) {
- icon.src = this.responseText;
+ icon.src = ret.icon_url;
icon.show();
}
input.value = "";
}
+ break;
+ default:
+ alert(this.responseText);
+ break;
}
};
@@ -400,9 +406,7 @@ const CommonDialogs = {
if (confirm(__("Remove stored feed icon?"))) {
Notify.progress("Removing feed icon...", true);
- const query = {op: "pref-feeds", method: "removeicon", feed_id: id};
-
- xhr.post("backend.php", query, () => {
+ xhr.post("backend.php", {op: "pref-feeds", method: "removeicon", feed_id: id}, () => {
Notify.info("Feed icon removed.");
if (App.isPrefs())
@@ -473,8 +477,8 @@ const CommonDialogs = {
<section>
<fieldset>
<input dojoType='dijit.form.ValidationTextBox' required='1'
- placeHolder="${__("Feed Title")}"
- style='font-size : 16px; width: 500px' name='title' value="${App.escapeHtml(feed.title)}">
+ placeHolder="${__("Feed title")}"
+ style='font-size : 16px; width: 530px' name='title' value="${App.escapeHtml(feed.title)}">
</fieldset>
<fieldset>
@@ -565,19 +569,21 @@ const CommonDialogs = {
<div dojoType="dijit.layout.ContentPane" title="${__('Icon')}">
<div><img class='feedIcon' style="${feed.icon ? "" : "display : none"}" src="${feed.icon ? App.escapeHtml(feed.icon) : ""}"></div>
- <label class="dijitButton">${__("Upload new icon...")}
+ <label class="dijitButton">
+ ${App.FormFields.icon("file_upload")}
+ ${__("Upload new icon...")}
<input style="display: none" type="file" onchange="App.dialogOf(this).uploadIcon(this)">
</label>
- ${App.FormFields.submit_tag(__("Remove"), {class: "alt-danger", onclick: "App.dialogOf(this).removeIcon("+feed_id+")"})}
+ ${App.FormFields.submit_tag(App.FormFields.icon("delete") + " " + __("Remove"), {class: "alt-danger", onclick: "App.dialogOf(this).removeIcon("+feed_id+")"})}
</div>
<div dojoType="dijit.layout.ContentPane" title="${__('Plugins')}">
${reply.plugin_data}
</div>
</div>
<footer>
- ${App.FormFields.button_tag(__("Unsubscribe"), "", {class: "pull-left alt-danger", onclick: "App.dialogOf(this).unsubscribe()"})}
- ${App.FormFields.submit_tag(__("Save"), {onclick: "App.dialogOf(this).execute()"})}
+ ${App.FormFields.button_tag(App.FormFields.icon("delete") + " " + __("Unsubscribe"), "", {class: "pull-left alt-danger", onclick: "App.dialogOf(this).unsubscribe()"})}
+ ${App.FormFields.submit_tag(App.FormFields.icon("save") + " " + __("Save"), {onclick: "App.dialogOf(this).execute()"})}
${App.FormFields.cancel_dialog_tag(__("Cancel"))}
</footer>
</form>
@@ -634,6 +640,7 @@ const CommonDialogs = {
onclick='window.open("https://tt-rss.org/wiki/GeneratedFeeds")'>
<i class='material-icons'>help</i> ${__("More info...")}</button>
<button dojoType='dijit.form.Button' onclick="return App.dialogOf(this).regenFeedKey('${feed}', '${is_cat}')">
+ ${App.FormFields.icon("refresh")}
${__('Generate new URL')}
</button>
<button dojoType='dijit.form.Button' class='alt-primary' type='submit'>
diff --git a/js/CommonFilters.js b/js/CommonFilters.js
index 0c138760d..1450458f8 100644
--- a/js/CommonFilters.js
+++ b/js/CommonFilters.js
@@ -11,7 +11,7 @@ const Filters = {
const dialog = new fox.SingleUseDialog({
id: "filterEditDlg",
- title: filter_id ? __("Edit Filter") : __("Create Filter"),
+ title: filter_id ? __("Edit filter") : __("Create new filter"),
ACTION_TAG: 4,
ACTION_SCORE: 6,
ACTION_LABEL: 7,
@@ -115,7 +115,7 @@ const Filters = {
const li = document.createElement('li');
li.addClassName("rule");
- li.innerHTML = `${App.FormFields.checkbox_tag("", false, {onclick: 'Lists.onRowChecked(this)'})}
+ li.innerHTML = `${App.FormFields.checkbox_tag("", false, "", {onclick: 'Lists.onRowChecked(this)'})}
<span class="name" onclick='App.dialogOf(this).onRuleClicked(this)'>${reply}</span>
<span class="payload" >${App.FormFields.hidden_tag("rule[]", rule)}</span>`;
@@ -147,7 +147,7 @@ const Filters = {
const li = document.createElement('li');
li.addClassName("action");
- li.innerHTML = `${App.FormFields.checkbox_tag("", false, {onclick: 'Lists.onRowChecked(this)'})}
+ li.innerHTML = `${App.FormFields.checkbox_tag("", false, "", {onclick: 'Lists.onRowChecked(this)'})}
<span class="name" onclick='App.dialogOf(this).onActionClicked(this)'>${reply}</span>
<span class="payload">${App.FormFields.hidden_tag("action[]", action)}</span>`;
@@ -229,7 +229,7 @@ const Filters = {
<footer>
${App.FormFields.button_tag(App.FormFields.icon("help") + " " + __("More info"), "", {class: 'pull-left alt-info',
onclick: "window.open('https://tt-rss.org/wiki/ContentFilters')"})}
- ${App.FormFields.submit_tag(__("Save rule"), {onclick: "App.dialogOf(this).execute()"})}
+ ${App.FormFields.submit_tag(App.FormFields.icon("save") + " " + __("Save"), {onclick: "App.dialogOf(this).execute()"})}
${App.FormFields.cancel_dialog_tag(__("Cancel"))}
</footer>
@@ -313,7 +313,7 @@ const Filters = {
"filterDlg_actionParamPlugin")}
</section>
<footer>
- ${App.FormFields.submit_tag(__("Save action"), {onclick: "App.dialogOf(this).execute()"})}
+ ${App.FormFields.submit_tag(App.FormFields.icon("save") + " " + __("Save"), {onclick: "App.dialogOf(this).execute()"})}
${App.FormFields.cancel_dialog_tag(__("Cancel"))}
</footer>
</form>
@@ -511,13 +511,13 @@ const Filters = {
<footer>
${filter_id ?
`
- ${App.FormFields.button_tag(__("Remove"), "", {class: "pull-left alt-danger", onclick: "App.dialogOf(this).removeFilter()"})}
- ${App.FormFields.button_tag(__("Test"), "", {class: "alt-info", onclick: "App.dialogOf(this).test()"})}
- ${App.FormFields.submit_tag(__("Save"), {onclick: "App.dialogOf(this).execute()"})}
+ ${App.FormFields.button_tag(App.FormFields.icon("delete") + " " + __("Remove"), "", {class: "pull-left alt-danger", onclick: "App.dialogOf(this).removeFilter()"})}
+ ${App.FormFields.button_tag(App.FormFields.icon("check_circle") + " " + __("Test"), "", {class: "alt-info", onclick: "App.dialogOf(this).test()"})}
+ ${App.FormFields.submit_tag(App.FormFields.icon("save") + " " + __("Save"), {onclick: "App.dialogOf(this).execute()"})}
${App.FormFields.cancel_dialog_tag(__("Cancel"))}
` : `
- ${App.FormFields.button_tag(__("Test"), "", {class: "alt-info", onclick: "App.dialogOf(this).test()"})}
- ${App.FormFields.submit_tag(__("Create"), {onclick: "App.dialogOf(this).execute()"})}
+ ${App.FormFields.button_tag(App.FormFields.icon("check_circle") + " " + __("Test"), "", {class: "alt-info", onclick: "App.dialogOf(this).test()"})}
+ ${App.FormFields.submit_tag(App.FormFields.icon("add") + " " + __("Create"), {onclick: "App.dialogOf(this).execute()"})}
${App.FormFields.cancel_dialog_tag(__("Cancel"))}
`}
</footer>
diff --git a/js/Feeds.js b/js/Feeds.js
index 5a2dee5cf..33a1fa3dc 100644
--- a/js/Feeds.js
+++ b/js/Feeds.js
@@ -117,15 +117,21 @@ const Feeds = {
},
reloadCurrent: function(method) {
if (this.getActive() != undefined) {
- console.log("reloadCurrent: " + method);
+ console.log("reloadCurrent", this.getActive(), this.activeIsCat(), method);
this.open({feed: this.getActive(), is_cat: this.activeIsCat(), method: method});
}
- return false; // block unneeded form submits
},
openDefaultFeed: function() {
this.open({feed: this._default_feed_id});
},
+ onViewModeChanged: function() {
+ // TODO: is this still needed?
+ App.find("body").setAttribute("view-mode",
+ dijit.byId("toolbar-main").getValues().view_mode);
+
+ return Feeds.reloadCurrent('');
+ },
openNextUnread: function() {
const is_cat = this.activeIsCat();
const nuf = this.getNextUnread(this.getActive(), is_cat);
@@ -236,12 +242,12 @@ const Feeds = {
//document.onkeypress = (event) => { return App.hotkeyHandler(event) };
window.onresize = () => { Headlines.scrollHandler(); }
- /* global hash_get */
- const hash_feed_id = hash_get('f');
- const hash_feed_is_cat = hash_get('c') == "1";
+ const hash = App.Hash.get();
+
+ console.log('got hash', hash);
- if (hash_feed_id != undefined) {
- this.open({feed: hash_feed_id, is_cat: hash_feed_is_cat});
+ if (hash.f != undefined) {
+ this.open({feed: parseInt(hash.f), is_cat: parseInt(hash.c)});
} else {
this.openDefaultFeed();
}
@@ -305,9 +311,12 @@ const Feeds = {
setActive: function(id, is_cat) {
console.log('setActive', id, is_cat);
- /* global hash_set */
- hash_set('f', id);
- hash_set('c', is_cat ? 1 : 0);
+ if ('requestIdleCallback' in window)
+ window.requestIdleCallback(() => {
+ App.Hash.set({f: id, c: is_cat ? 1 : 0});
+ });
+ else
+ App.Hash.set({f: id, c: is_cat ? 1 : 0});
this._active_feed_id = id;
this._active_feed_is_cat = is_cat;
@@ -366,10 +375,7 @@ const Feeds = {
}, 10 * 1000);
}
- //Form.enable("toolbar-main");
-
- let query = Object.assign({op: "feeds", method: "view", feed: feed},
- dojo.formToObject("toolbar-main"));
+ let query = {...{op: "feeds", method: "view", feed: feed}, ...dojo.formToObject("toolbar-main")};
if (method) query.m = method;
@@ -612,7 +618,7 @@ const Feeds = {
{class: 'alt-info pull-left', onclick: "window.open('https://tt-rss.org/wiki/SearchSyntax')"})}
` : ''}
- ${App.FormFields.submit_tag(__('Search'), {onclick: "App.dialogOf(this).execute()"})}
+ ${App.FormFields.submit_tag(App.FormFields.icon("search") + " " + __('Search'), {onclick: "App.dialogOf(this).execute()"})}
${App.FormFields.cancel_dialog_tag(__('Cancel'))}
</footer>
</form>
diff --git a/js/Headlines.js b/js/Headlines.js
index fd9bc6661..28e43be1f 100755
--- a/js/Headlines.js
+++ b/js/Headlines.js
@@ -278,7 +278,7 @@ const Headlines = {
}
},
loadMore: function () {
- const view_mode = document.forms["toolbar-main"].view_mode.value;
+ const view_mode = dijit.byId("toolbar-main").getValues().view_mode;
const unread_in_buffer = App.findAll("#headlines-frame > div[id*=RROW][class*=Unread]").length;
const num_all = App.findAll("#headlines-frame > div[id*=RROW]").length;
const num_unread = Feeds.getUnread(Feeds.getActive(), Feeds.activeIsCat());
@@ -819,19 +819,15 @@ const Headlines = {
Notify.close();
},
reverse: function () {
- const toolbar = document.forms["toolbar-main"];
- const order_by = dijit.getEnclosingWidget(toolbar.order_by);
+ const toolbar = dijit.byId("toolbar-main");
+ let order_by = toolbar.getValues().order_by;
- let value = order_by.attr('value');
-
- if (value != "date_reverse")
- value = "date_reverse";
+ if (order_by != "date_reverse")
+ order_by = "date_reverse";
else
- value = "default";
-
- order_by.attr('value', value);
+ order_by = App.getInitParam("default_view_order_by");
- Feeds.reloadCurrent();
+ toolbar.setValues({order_by: order_by});
},
selectionToggleUnread: function (params = {}) {
const cmode = params.cmode != undefined ? params.cmode : 2;
diff --git a/js/PrefFeedTree.js b/js/PrefFeedTree.js
index bb5d25e67..013c01262 100644
--- a/js/PrefFeedTree.js
+++ b/js/PrefFeedTree.js
@@ -300,7 +300,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dojo/_b
try {
const dialog = new fox.SingleUseDialog({
- title: __("Edit Multiple Feeds"),
+ title: __("Edit multiple feeds"),
/*getChildByName: function (name) {
let rv = null;
this.getChildren().forEach(
@@ -513,7 +513,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dojo/_b
<div class='panel panel-scrollable'>
<table width='100%' id='inactive-feeds-list'>
${reply.map((row) => `<tr data-row-id='${row.id}'>
- <td width='5%' align='center'>
+ <td class='checkbox'>
<input onclick='Tables.onRowChecked(this)' dojoType='dijit.form.CheckBox' type='checkbox'>
</td>
<td>
diff --git a/js/PrefHelpers.js b/js/PrefHelpers.js
index 62f6d91b1..3f738aa95 100644
--- a/js/PrefHelpers.js
+++ b/js/PrefHelpers.js
@@ -1,7 +1,7 @@
'use strict';
/* eslint-disable no-new */
-/* global __, dijit, dojo, Tables, xhrPost, Notify, xhr, App, fox */
+/* global __, dijit, dojo, Tables, Notify, xhr, App, fox */
const Helpers = {
AppPasswords: {
@@ -19,7 +19,7 @@ const Helpers = {
alert("No passwords selected.");
} else if (confirm(__("Remove selected app passwords?"))) {
- xhr.post("backend.php", {op: "pref-prefs", method: "deleteAppPassword", ids: rows.toString()}, (reply) => {
+ xhr.post("backend.php", {op: "pref-prefs", method: "deleteAppPasswords", "ids[]": rows}, (reply) => {
this.updateContent(reply);
Notify.close();
});
@@ -53,6 +53,33 @@ const Helpers = {
return false;
},
},
+ Digest: {
+ preview: function() {
+ const dialog = new fox.SingleUseDialog({
+ title: __("Digest preview"),
+ content: `
+ <div class='panel panel-scrollable digest-preview'>
+ <div class='text-center'>${__("Loading, please wait...")}</div>
+ </div>
+
+ <footer class='text-center'>
+ ${App.FormFields.submit_tag(__('Close this window'))}
+ </footer>
+ `
+ });
+
+ const tmph = dojo.connect(dialog, 'onShow', function () {
+ dojo.disconnect(tmph);
+
+ xhr.json("backend.php", {op: "pref-prefs", method: "previewDigest"}, (reply) => {
+ dialog.domNode.querySelector('.digest-preview').innerHTML = reply[0];
+ });
+ });
+
+ dialog.show();
+
+ }
+ },
System: {
//
},
@@ -97,7 +124,7 @@ const Helpers = {
edit: function() {
const dialog = new fox.SingleUseDialog({
id: "profileEditDlg",
- title: __("Settings Profiles"),
+ title: __("Manage profiles"),
getSelectedProfiles: function () {
return Tables.getSelected("pref-profiles-list");
},
@@ -108,12 +135,7 @@ const Helpers = {
if (confirm(__("Remove selected profiles? Active and default profiles will not be removed."))) {
Notify.progress("Removing selected profiles...", true);
- const query = {
- op: "pref-prefs", method: "remprofiles",
- ids: sel_rows.toString()
- };
-
- xhr.post("backend.php", query, () => {
+ xhr.post("backend.php", {op: "pref-prefs", method: "remprofiles", "ids[]": sel_rows}, () => {
Notify.close();
dialog.refresh();
});
@@ -161,7 +183,7 @@ const Helpers = {
<table width='100%' id='pref-profiles-list'>
${reply.map((profile) => `
<tr data-row-id="${profile.id}">
- <td width='5%'>
+ <td class='checkbox'>
${App.FormFields.checkbox_tag("", false, "", {onclick: 'Tables.onRowChecked(this)'})}
</td>
<td>
@@ -183,9 +205,9 @@ const Helpers = {
</div>
<footer>
- ${App.FormFields.button_tag(__('Remove selected profiles'), "",
+ ${App.FormFields.button_tag(App.FormFields.icon("delete") + " " +__('Remove selected profiles'), "",
{class: 'pull-left alt-danger', onclick: 'App.dialogOf(this).removeSelected()'})}
- ${App.FormFields.submit_tag(__('Activate profile'), {onclick: 'App.dialogOf(this).execute()'})}
+ ${App.FormFields.submit_tag(App.FormFields.icon("check") + " " + __('Activate profile'), {onclick: 'App.dialogOf(this).execute()'})}
${App.FormFields.cancel_dialog_tag(__('Cancel'))}
</footer>
</form>
@@ -217,58 +239,70 @@ const Helpers = {
},
Prefs: {
customizeCSS: function() {
- xhr.json("backend.php", {op: "pref-prefs", method: "customizeCSS"}, (reply) => {
-
- const dialog = new fox.SingleUseDialog({
- title: __("Customize stylesheet"),
- apply: function() {
- xhr.post("backend.php", this.attr('value'), () => {
- Element.show("css_edit_apply_msg");
- App.byId("user_css_style").innerText = this.attr('value');
- });
- },
- execute: function () {
- Notify.progress('Saving data...', true);
+ const dialog = new fox.SingleUseDialog({
+ title: __("Customize stylesheet"),
+ apply: function() {
+ xhr.post("backend.php", this.attr('value'), () => {
+ Element.show("css_edit_apply_msg");
+ App.byId("user_css_style").innerText = this.attr('value');
+ });
+ },
+ execute: function () {
+ Notify.progress('Saving data...', true);
- xhr.post("backend.php", this.attr('value'), () => {
- window.location.reload();
- });
- },
- content: `
- <div class='alert alert-info'>
- ${__("You can override colors, fonts and layout of your currently selected theme with custom CSS declarations here.")}
+ xhr.post("backend.php", this.attr('value'), () => {
+ window.location.reload();
+ });
+ },
+ content: `
+ <div class='alert alert-info'>
+ ${__("You can override colors, fonts and layout of your currently selected theme with custom CSS declarations here.")}
+ </div>
+
+ ${App.FormFields.hidden_tag('op', 'rpc')}
+ ${App.FormFields.hidden_tag('method', 'setpref')}
+ ${App.FormFields.hidden_tag('key', 'USER_STYLESHEET')}
+
+ <div id='css_edit_apply_msg' style='display : none'>
+ <div class='alert alert-warning'>
+ ${__("User CSS has been applied, you might need to reload the page to see all changes.")}
</div>
+ </div>
+
+ <textarea class='panel user-css-editor' disabled='true' dojoType='dijit.form.SimpleTextarea'
+ style='font-size : 12px;' name='value'>${__("Loading, please wait...")}</textarea>
+
+ <footer>
+ <button dojoType='dijit.form.Button' class='alt-success' onclick="App.dialogOf(this).apply()">
+ ${App.FormFields.icon("check")}
+ ${__('Apply')}
+ </button>
+ <button dojoType='dijit.form.Button' class='alt-primary' type='submit'>
+ ${App.FormFields.icon("refresh")}
+ ${__('Save and reload')}
+ </button>
+ <button dojoType='dijit.form.Button' onclick="App.dialogOf(this).hide()">
+ ${__('Cancel')}
+ </button>
+ </footer>
+ `
+ });
- ${App.FormFields.hidden_tag('op', 'rpc')}
- ${App.FormFields.hidden_tag('method', 'setpref')}
- ${App.FormFields.hidden_tag('key', 'USER_STYLESHEET')}
+ const tmph = dojo.connect(dialog, 'onShow', function () {
+ dojo.disconnect(tmph);
- <div id='css_edit_apply_msg' style='display : none'>
- <div class='alert alert-warning'>
- ${__("User CSS has been applied, you might need to reload the page to see all changes.")}
- </div>
- </div>
+ xhr.json("backend.php", {op: "pref-prefs", method: "customizeCSS"}, (reply) => {
- <textarea class='panel user-css-editor' dojoType='dijit.form.SimpleTextarea'
- style='font-size : 12px;' name='value'>${reply.value}</textarea>
-
- <footer>
- <button dojoType='dijit.form.Button' class='alt-success' onclick="App.dialogOf(this).apply()">
- ${__('Apply')}
- </button>
- <button dojoType='dijit.form.Button' class='alt-primary' type='submit'>
- ${__('Save and reload')}
- </button>
- <button dojoType='dijit.form.Button' onclick="App.dialogOf(this).hide()">
- ${__('Cancel')}
- </button>
- </footer>
- `
- });
+ const editor = dijit.getEnclosingWidget(dialog.domNode.querySelector(".user-css-editor"));
- dialog.show();
+ editor.attr('value', reply.value);
+ editor.attr('disabled', false);
+ });
});
+
+ dialog.show();
+
},
confirmReset: function() {
if (confirm(__("Reset to defaults?"))) {
@@ -278,20 +312,448 @@ const Helpers = {
});
}
},
- clearPluginData: function(name) {
- if (confirm(__("Clear stored data for this plugin?"))) {
+ refresh: function() {
+ xhr.post("backend.php", { op: "pref-prefs" }, (reply) => {
+ dijit.byId('prefsTab').attr('content', reply);
+ Notify.close();
+ });
+ },
+ },
+ Plugins: {
+ _list_of_plugins: [],
+ _search_query: "",
+ enableSelected: function() {
+ const form = dijit.byId("changePluginsForm");
+
+ if (form.validate()) {
+ xhr.post("backend.php", form.getValues(), () => {
+ Notify.close();
+ if (confirm(__('Selected plugins have been enabled. Reload?'))) {
+ window.location.reload();
+ }
+ })
+ }
+ },
+ search: function() {
+ this._search_query = dijit.byId("changePluginsForm").getValues().search;
+ this.render_contents();
+ },
+ reload: function() {
+ xhr.json("backend.php", {op: "pref-prefs", method: "getPluginsList"}, (reply) => {
+ this._list_of_plugins = reply;
+ this.render_contents();
+ });
+ },
+ render_contents: function() {
+ const container = document.querySelector(".prefs-plugin-list");
+
+ container.innerHTML = "";
+ let results_rendered = 0;
+
+ const is_admin = this._list_of_plugins.is_admin;
+
+ const search_tokens = this._search_query
+ .split(/ {1,}/)
+ .filter((stoken) => (stoken.length > 0 ? stoken : null));
+
+ this._list_of_plugins.plugins.forEach((plugin) => {
+
+ if (search_tokens.length == 0 ||
+ Object.values(plugin).filter((pval) =>
+ search_tokens.filter((stoken) =>
+ (pval.toString().indexOf(stoken) != -1 ? stoken : null)
+ ).length == search_tokens.length).length > 0) {
+
+ ++results_rendered;
+
+ // only user-enabled actually counts in the checkbox when saving because system plugin checkboxes are disabled (see below)
+ container.innerHTML += `
+ <li data-row-value="${App.escapeHtml(plugin.name)}" data-plugin-local="${plugin.is_local}" data-plugin-name="${App.escapeHtml(plugin.name)}" title="${plugin.is_system ? __("System plugins are enabled using global configuration.") : ""}">
+ <label class="checkbox ${plugin.is_system ? "system text-info" : ""}">
+ ${App.FormFields.checkbox_tag("plugins[]", plugin.user_enabled || plugin.system_enabled, plugin.name,
+ {disabled: plugin.is_system})}</div>
+ <span class='name'>${plugin.name}:</span>
+ </label>
+ <div class="description ${plugin.is_system ? "text-info" : ""}">
+ ${plugin.description}
+ </div>
+ <div class='actions'>
+ ${plugin.is_system ?
+ App.FormFields.button_tag(App.FormFields.icon("security"), "",
+ {disabled: true}) : ''}
+ ${plugin.more_info ?
+ App.FormFields.button_tag(App.FormFields.icon("help"), "",
+ {class: 'alt-info', onclick: `window.open("${App.escapeHtml(plugin.more_info)}")`}) : ''}
+ ${is_admin && plugin.is_local ?
+ App.FormFields.button_tag(App.FormFields.icon("update"), "",
+ {title: __("Update"), class: 'alt-warning', "data-update-btn-for-plugin": plugin.name, style: 'display : none',
+ onclick: `Helpers.Plugins.update("${App.escapeHtml(plugin.name)}")`}) : ''}
+ ${is_admin && plugin.has_data ?
+ App.FormFields.button_tag(App.FormFields.icon("clear"), "",
+ {title: __("Clear data"), onclick: `Helpers.Plugins.clearData("${App.escapeHtml(plugin.name)}")`}) : ''}
+ ${is_admin && plugin.is_local ?
+ App.FormFields.button_tag(App.FormFields.icon("delete"), "",
+ {title: __("Uninstall"), onclick: `Helpers.Plugins.uninstall("${App.escapeHtml(plugin.name)}")`}) : ''}
+ </div>
+ <div class='version text-muted'>${plugin.version}</div>
+ </li>
+ `;
+ } else {
+ // if plugin is outside of search scope, keep current value in case of saving (only user-enabled is needed)
+ container.innerHTML += App.FormFields.checkbox_tag("plugins[]", plugin.user_enabled, plugin.name, {style: 'display : none'});
+ }
+ });
+
+ if (results_rendered == 0) {
+ container.innerHTML += `<li class='text-center text-info'>${__("Could not find any plugins for this search query.")}</li>`;
+ }
+
+ dojo.parser.parse(container);
+
+ },
+ clearData: function(name) {
+ if (confirm(__("Clear stored data for %s?").replace("%s", name))) {
Notify.progress("Loading, please wait...");
- xhr.post("backend.php", {op: "pref-prefs", method: "clearplugindata", name: name}, () => {
+ xhr.post("backend.php", {op: "pref-prefs", method: "clearPluginData", name: name}, () => {
Helpers.Prefs.refresh();
});
}
},
- refresh: function() {
- xhr.post("backend.php", { op: "pref-prefs" }, (reply) => {
- dijit.byId('prefsTab').attr('content', reply);
- Notify.close();
+ uninstall: function(plugin) {
+ const msg = __("Uninstall plugin %s?").replace("%s", plugin);
+
+ if (confirm(msg)) {
+ Notify.progress("Loading, please wait...");
+
+ xhr.json("backend.php", {op: "pref-prefs", method: "uninstallPlugin", plugin: plugin}, (reply) => {
+ if (reply && reply.status == 1)
+ Helpers.Prefs.refresh();
+ else {
+ Notify.error("Plugin uninstallation failed.");
+ }
+ });
+
+ }
+ },
+ install: function() {
+ const dialog = new fox.SingleUseDialog({
+ PI_RES_ALREADY_INSTALLED: "PI_RES_ALREADY_INSTALLED",
+ PI_RES_SUCCESS: "PI_RES_SUCCESS",
+ PI_ERR_NO_CLASS: "PI_ERR_NO_CLASS",
+ PI_ERR_NO_INIT_PHP: "PI_ERR_NO_INIT_PHP",
+ PI_ERR_EXEC_FAILED: "PI_ERR_EXEC_FAILED",
+ PI_ERR_NO_TEMPDIR: "PI_ERR_NO_TEMPDIR",
+ PI_ERR_PLUGIN_NOT_FOUND: "PI_ERR_PLUGIN_NOT_FOUND",
+ PI_ERR_NO_WORKDIR: "PI_ERR_NO_WORKDIR",
+ title: __("Available plugins"),
+ need_refresh: false,
+ entries: false,
+ search_query: "",
+ installed_plugins: [],
+ onHide: function() {
+ if (this.need_refresh) {
+ Helpers.Prefs.refresh();
+ }
+ },
+ performInstall: function(plugin) {
+
+ const install_dialog = new fox.SingleUseDialog({
+ title: __("Plugin installer"),
+ content: `
+ <ul class="panel panel-scrollable contents">
+ <li class='text-center'>${__("Installing %s, please wait...").replace("%s", plugin)}</li>
+ </ul>
+
+ <footer class='text-center'>
+ ${App.FormFields.submit_tag(__("Close this window"))}
+ </footer>`
+ });
+
+ const tmph = dojo.connect(install_dialog, 'onShow', function () {
+ dojo.disconnect(tmph);
+
+ const container = install_dialog.domNode.querySelector(".contents");
+
+ xhr.json("backend.php", {op: "pref-prefs", method: "installPlugin", plugin: plugin}, (reply) => {
+ if (!reply) {
+ container.innerHTML = `<li class='text-center text-error'>${__("Operation failed: check event log.")}</li>`;
+ } else {
+ switch (reply.result) {
+ case dialog.PI_RES_SUCCESS:
+ container.innerHTML = `<li class='text-success text-center'>${__("Plugin has been installed.")}</li>`
+ dialog.need_refresh = true;
+ break;
+ case dialog.PI_RES_ALREADY_INSTALLED:
+ container.innerHTML = `<li class='text-success text-center'>${__("Plugin is already installed.")}</li>`
+ break;
+ default:
+ container.innerHTML = `
+ <li>
+ <h3 style="margin-top: 0">${plugin}</h3>
+ <div class='text-error'>${reply.result}</div>
+ ${reply.stderr ? `<pre class="small text-error pre-wrap">${reply.stderr}</pre>` : ''}
+ ${reply.stdour ? `<pre class="small text-success pre-wrap">${reply.stdout}</pre>` : ''}
+ <p class="small">
+ ${App.FormFields.icon("error_outline") + " " + __("Exited with RC: %d").replace("%d", reply.git_status)}
+ </p>
+ </li>
+ `;
+ }
+ }
+ });
+ });
+
+ install_dialog.show();
+
+ },
+ search: function() {
+ this.search_query = this.attr('value').search.toLowerCase();
+
+ if ('requestIdleCallback' in window)
+ window.requestIdleCallback(() => {
+ this.render_contents();
+ });
+ else
+ this.render_contents();
+ },
+ render_contents: function() {
+ const container = dialog.domNode.querySelector(".contents");
+
+ if (!dialog.entries) {
+ container.innerHTML = `<li class='text-center text-error'>${__("Operation failed: check event log.")}</li>`;
+ } else {
+ container.innerHTML = "";
+
+ let results_rendered = 0;
+
+ const search_tokens = dialog.search_query
+ .split(/ {1,}/)
+ .filter((stoken) => (stoken.length > 0 ? stoken : null));
+
+ dialog.entries.forEach((plugin) => {
+ const is_installed = (dialog.installed_plugins
+ .filter((p) => plugin.topics.map((t) => t.replace(/-/g, "_")).includes(p))).length > 0;
+
+ if (search_tokens.length == 0 ||
+ Object.values(plugin).filter((pval) =>
+ search_tokens.filter((stoken) =>
+ (pval.indexOf(stoken) != -1 ? stoken : null)
+ ).length == search_tokens.length).length > 0) {
+
+ ++results_rendered;
+
+ container.innerHTML += `
+ <li data-row-value="${App.escapeHtml(plugin.name)}" class="${is_installed ? "plugin-installed" : ""}">
+ ${App.FormFields.button_tag((is_installed ?
+ App.FormFields.icon("check") + " " +__("Already installed") :
+ App.FormFields.icon("file_download") + " " +__('Install')), "", {class: 'alt-primary pull-right',
+ disabled: is_installed,
+ onclick: `App.dialogOf(this).performInstall("${App.escapeHtml(plugin.name)}")`})}
+
+ <h3>${plugin.name}
+ <a target="_blank" href="${App.escapeHtml(plugin.html_url)}">
+ ${App.FormFields.icon("open_in_new_window")}
+ </a>
+ </h3>
+
+ <div class='small text-muted'>${__("Updated: %s").replace("%s", plugin.last_update)}</div>
+
+ <div class='description'>${plugin.description}</div>
+ </li>
+ `
+ }
+ });
+
+ if (results_rendered == 0) {
+ container.innerHTML = `<li class='text-center text-info'>${__("Could not find any plugins for this search query.")}</li>`;
+ }
+
+ dojo.parser.parse(container);
+ }
+ },
+ reload: function() {
+ const container = dialog.domNode.querySelector(".contents");
+ container.innerHTML = `<li class='text-center'>${__("Looking for plugins...")}</li>`;
+
+ xhr.json("backend.php", {op: "pref-prefs", method: "getAvailablePlugins"}, (reply) => {
+ dialog.entries = reply;
+ dialog.render_contents();
+ });
+ },
+ content: `
+ <div dojoType='fox.Toolbar'>
+ <div class='pull-right'>
+ <input name="search" placeholder="${__("Search...")}" type="search" dojoType="dijit.form.TextBox" onkeyup="App.dialogOf(this).search()">
+ </div>
+ <div style='height : 16px'>&nbsp;</div> <!-- disgusting -->
+ </div>
+
+ <ul style='clear : both' class="panel panel-scrollable-400px contents plugin-installer-list"> </ul>
+
+ <footer>
+ ${App.FormFields.button_tag(App.FormFields.icon("refresh") + " " +__("Refresh"), "", {class: 'alt-primary', onclick: 'App.dialogOf(this).reload()'})}
+ ${App.FormFields.cancel_dialog_tag(__("Close"))}
+ </footer>
+ `,
+ });
+
+ const tmph = dojo.connect(dialog, 'onShow', function () {
+ dojo.disconnect(tmph);
+
+ dialog.installed_plugins = [...document.querySelectorAll('*[data-plugin-name]')].map((p) => p.getAttribute('data-plugin-name'));
+
+ dialog.reload();
+ });
+
+ dialog.show();
+ },
+ update: function(name = null) {
+
+ const dialog = new fox.SingleUseDialog({
+ title: __("Update plugins"),
+ need_refresh: false,
+ plugins_to_update: [],
+ plugins_to_check: [],
+ onHide: function() {
+ if (this.need_refresh) {
+ Helpers.Prefs.refresh();
+ }
+ },
+ performUpdate: function() {
+ const container = dialog.domNode.querySelector(".update-results");
+
+ console.log('updating', dialog.plugins_to_update);
+ dialog.attr('title', __('Updating...'));
+
+ container.innerHTML = `<li class='text-center'>${__("Updating, please wait...")}</li>`;
+ let enable_update_btn = false;
+
+ xhr.json("backend.php", {op: "pref-prefs", method: "updateLocalPlugins", plugins: dialog.plugins_to_update.join(",")}, (reply) => {
+
+ if (!reply) {
+ container.innerHTML = `<li class='text-center text-error'>${__("Operation failed: check event log.")}</li>`;
+ } else {
+ container.innerHTML = "";
+
+ reply.forEach((p) => {
+ if (p.rv.git_status == 0)
+ dialog.need_refresh = true;
+ else
+ enable_update_btn = true;
+
+ container.innerHTML +=
+ `
+ <li>
+ <h3>${p.plugin}</h3>
+ ${p.rv.stderr ? `<pre class="small text-error pre-wrap">${p.rv.stderr}</pre>` : ''}
+ ${p.rv.stdout ? `<pre class="small text-success pre-wrap">${p.rv.stdout}</pre>` : ''}
+ <div class="small">
+ ${p.rv.git_status ? App.FormFields.icon("error_outline") + " " + __("Exited with RC: %d").replace("%d", p.rv.git_status) :
+ App.FormFields.icon("check") + " " + __("Update done.")}
+ </div>
+ </li>
+ `
+ });
+ }
+
+ dialog.attr('title', __('Updates complete'));
+ dijit.getEnclosingWidget(dialog.domNode.querySelector(".update-btn")).attr('disabled', !enable_update_btn);
+ });
+ },
+ checkNextPlugin: function() {
+ const name = dialog.plugins_to_check.shift();
+
+ if (name) {
+ this.checkUpdates(name);
+ } else {
+ const num_updated = dialog.plugins_to_update.length;
+
+ if (num_updated > 0)
+ dialog.attr('title',
+ App.l10n.ngettext('Updates pending for %d plugin', 'Updates pending for %d plugins', num_updated)
+ .replace("%d", num_updated));
+ else
+ dialog.attr('title', __("No updates available"));
+
+ dijit.getEnclosingWidget(dialog.domNode.querySelector(".update-btn"))
+ .attr('disabled', num_updated == 0);
+
+ }
+ },
+ checkUpdates: function(name) {
+ console.log('checkUpdates', name);
+
+ const container = dialog.domNode.querySelector(".update-results");
+
+ dialog.attr('title', __("Checking: %s").replace("%s", name));
+
+ //container.innerHTML = `<li class='text-center'>${__("Checking: %s...").replace("%s", name)}</li>`;
+
+ xhr.json("backend.php", {op: "pref-prefs", method: "checkForPluginUpdates", name: name}, (reply) => {
+
+ if (!reply) {
+ container.innerHTML += `<li class='text-error'>${__("%s: Operation failed: check event log.").replace("%s", name)}</li>`;
+ } else {
+
+ reply.forEach((p) => {
+ if (p.rv) {
+ if (p.rv.need_update) {
+ dialog.plugins_to_update.push(p.plugin);
+
+ const update_button = dijit.getEnclosingWidget(
+ App.find(`*[data-update-btn-for-plugin="${p.plugin}"]`));
+
+ if (update_button)
+ update_button.domNode.show();
+ }
+
+ if (p.rv.need_update || p.rv.git_status != 0) {
+ container.innerHTML +=
+ `
+ <li><h3>${p.plugin}</h3>
+ ${p.rv.stderr ? `<pre class="small text-error pre-wrap">${p.rv.stderr}</pre>` : ''}
+ ${p.rv.stdout ? `<pre class="small text-success pre-wrap">${p.rv.stdout}</pre>` : ''}
+ <div class="small">
+ ${p.rv.git_status ? App.FormFields.icon("error_outline") + " " + __("Exited with RC: %d").replace("%d", p.rv.git_status) :
+ App.FormFields.icon("check") + " " + __("Ready to update")}
+ </div>
+ </li>
+ `
+ }
+ }
+ dialog.checkNextPlugin();
+ });
+ }
+
+ });
+
+ },
+ content: `
+ <ul class="panel panel-scrollable plugin-updater-list update-results">
+ </ul>
+
+ <footer>
+ ${App.FormFields.button_tag(App.FormFields.icon("update") + " " + __("Update"), "", {disabled: true, class: "update-btn alt-primary", onclick: "App.dialogOf(this).performUpdate()"})}
+ ${App.FormFields.cancel_dialog_tag(__("Close"))}
+ </footer>
+ `,
});
+
+ const tmph = dojo.connect(dialog, 'onShow', function () {
+ dojo.disconnect(tmph);
+
+ dialog.plugins_to_update = [];
+
+ if (name) {
+ dialog.checkUpdates(name);
+ } else {
+ dialog.plugins_to_check = [...document.querySelectorAll('*[data-plugin-name][data-plugin-local=true]')].map((p) => p.getAttribute('data-plugin-name'));
+ dialog.checkNextPlugin();
+ }
+ });
+
+ dialog.show();
},
},
OPML: {
@@ -386,6 +848,7 @@ const Helpers = {
</section>
<footer class='text-center'>
<button dojoType='dijit.form.Button' onclick="return App.dialogOf(this).regenOPMLKey()">
+ ${App.FormFields.icon("refresh")}
${__('Generate new URL')}
</button>
<button dojoType='dijit.form.Button' type='submit' class='alt-primary'>
diff --git a/js/PrefLabelTree.js b/js/PrefLabelTree.js
index 2b78927c2..39e3f8315 100644
--- a/js/PrefLabelTree.js
+++ b/js/PrefLabelTree.js
@@ -68,8 +68,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dijit/f
const dialog = new fox.SingleUseDialog({
id: "labelEditDlg",
- title: __("Label Editor"),
- style: "width: 650px",
+ title: __("Edit label"),
setLabelColor: function (id, fg, bg) {
let kind = '';
@@ -121,10 +120,10 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dijit/f
content: `
<form onsubmit='return false'>
- <header>${__("Caption")}</header>
<section>
- <input style='font-size : 16px; color : ${fg_color}; background : ${bg_color}; transition : background 0.1s linear'
+ <input style='font-size : 16px; width : 550px; color : ${fg_color}; background : ${bg_color}; transition : background 0.1s linear'
id='labelEdit_caption'
+ placeholder="${__("Caption")}"
name='caption'
dojoType='dijit.form.ValidationTextBox'
required='true'
@@ -138,7 +137,6 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dijit/f
${App.FormFields.hidden_tag('fg_color', fg_color, {}, 'labelEdit_fgColor')}
${App.FormFields.hidden_tag('bg_color', bg_color, {}, 'labelEdit_bgColor')}
- <header>${__("Colors")}</header>
<section>
<table width='100%'>
<tr>
@@ -168,6 +166,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dijit/f
<footer>
<button dojoType='dijit.form.Button' type='submit' class='alt-primary' onclick='App.dialogOf(this).execute()'>
+ ${App.FormFields.icon("save")}
${__('Save')}
</button>
<button dojoType='dijit.form.Button' onclick='App.dialogOf(this).hide()'>
diff --git a/js/PrefUsers.js b/js/PrefUsers.js
index 3eb83b02a..7ce3cae94 100644
--- a/js/PrefUsers.js
+++ b/js/PrefUsers.js
@@ -1,16 +1,18 @@
'use strict'
-/* global __ */
-/* global xhrPost, xhr, dijit, Notify, Tables, App, fox */
+/* global __, xhr, dijit, Notify, Tables, App, fox */
const Users = {
reload: function(sort) {
- const user_search = App.byId("user_search");
- const search = user_search ? user_search.value : "";
+ return new Promise((resolve, reject) => {
+ const user_search = App.byId("user_search");
+ const search = user_search ? user_search.value : "";
- xhr.post("backend.php", { op: "pref-users", sort: sort, search: search }, (reply) => {
- dijit.byId('usersTab').attr('content', reply);
- Notify.close();
+ xhr.post("backend.php", { op: "pref-users", sort: sort, search: search }, (reply) => {
+ dijit.byId('usersTab').attr('content', reply);
+ Notify.close();
+ resolve();
+ }, (e) => { reject(e) });
});
},
add: function() {
@@ -20,8 +22,9 @@ const Users = {
Notify.progress("Adding user...");
xhr.post("backend.php", {op: "pref-users", method: "add", login: login}, (reply) => {
- alert(reply);
- Users.reload();
+ Users.reload().then(() => {
+ Notify.info(reply);
+ })
});
}
@@ -33,14 +36,16 @@ const Users = {
const dialog = new fox.SingleUseDialog({
id: "userEditDlg",
- title: __("User Editor"),
+ title: __("Edit user"),
execute: function () {
if (this.validate()) {
Notify.progress("Saving data...", true);
- xhr.post("backend.php", this.attr('value'), () => {
+ xhr.post("backend.php", this.attr('value'), (reply) => {
dialog.hide();
- Users.reload();
+ Users.reload().then(() => {
+ Notify.info(reply);
+ });
});
}
},
@@ -54,8 +59,6 @@ const Users = {
<div dojoType="dijit.layout.TabContainer" style="height : 400px">
<div dojoType="dijit.layout.ContentPane" title="${__('Edit user')}">
- <header>${__("User")}</header>
-
<section>
<fieldset>
<label>${__("Login:")}</label>
@@ -66,11 +69,9 @@ const Users = {
${admin_disabled ? App.FormFields.hidden_tag("login", user.login) : ''}
</fieldset>
- </section>
- <header>${__("Authentication")}</header>
+ <hr/>
- <section>
<fieldset>
<label>${__('Access level: ')}</label>
${App.FormFields.select_hash("access_level",
@@ -84,11 +85,15 @@ const Users = {
<input dojoType='dijit.form.TextBox' type='password' size='20'
placeholder='${__("Change password")}' name='password'>
</fieldset>
- </section>
+ <fieldset>
+ <label></label>
+ <label class="checkbox">
+ ${App.FormFields.checkbox_tag("otp_enabled", user.otp_enabled)}
+ ${__('OTP enabled')}
+ </fieldset>
- <header>${__("Options")}</header>
+ <hr/>
- <section>
<fieldset>
<label>${__("E-mail:")}</label>
<input dojoType='dijit.form.TextBox' size='30' name='email'
@@ -110,6 +115,7 @@ const Users = {
<footer>
<button dojoType='dijit.form.Button' class='alt-primary' type='submit' onclick='App.dialogOf(this).execute()'>
+ ${App.FormFields.icon("save")}
${__('Save')}
</button>
<button dojoType='dijit.form.Button' onclick='App.dialogOf(this).hide()'>
diff --git a/js/common.js b/js/common.js
index 1544e6d0b..1f8318862 100755
--- a/js/common.js
+++ b/js/common.js
@@ -100,7 +100,7 @@ Element.prototype.fadeIn = function(display = undefined){
};
Element.prototype.visible = function() {
- return this.style.display != "none" && this.offsetHeight != 0 && this.offsetWidth != 0;
+ return window.getComputedStyle(this).display != "none"; //&& this.offsetHeight != 0 && this.offsetWidth != 0;
}
Element.visible = function(elem) {
@@ -154,7 +154,10 @@ String.prototype.stripTags = function() {
/* exported xhr */
const xhr = {
- post: function(url, params = {}, complete = undefined) {
+ _ts: 0,
+ post: function(url, params = {}, complete = undefined, failed = undefined) {
+ this._ts = new Date().getTime();
+
console.log('xhr.post', '>>>', params);
return new Promise((resolve, reject) => {
@@ -165,10 +168,13 @@ const xhr = {
postData: dojo.objectToQuery(params),
handleAs: "text",
error: function(error) {
+ if (failed != undefined)
+ failed(error);
+
reject(error);
},
load: function(data, ioargs) {
- console.log('xhr.post', '<<<', ioargs.xhr);
+ console.log('xhr.post', '<<<', ioargs.xhr, (new Date().getTime() - xhr._ts) + " ms");
if (complete != undefined)
complete(data, ioargs.xhr);
@@ -178,7 +184,7 @@ const xhr = {
);
});
},
- json: function(url, params = {}, complete = undefined) {
+ json: function(url, params = {}, complete = undefined, failed = undefined) {
return new Promise((resolve, reject) =>
this.post(url, params).then((data) => {
let obj = null;
@@ -187,13 +193,21 @@ const xhr = {
obj = JSON.parse(data);
} catch (e) {
console.error("xhr.json", e, xhr);
+
+ if (failed != undefined)
+ failed(e);
+
reject(e);
}
- console.log('xhr.json', '<<<', obj);
+ console.log('xhr.json', '<<<', obj, (new Date().getTime() - xhr._ts) + " ms");
if (obj && typeof App != "undefined")
if (!App.handleRpcJson(obj)) {
+
+ if (failed != undefined)
+ failed(obj);
+
reject(obj);
return;
}
@@ -248,8 +262,11 @@ const Lists = {
if (row)
checked ? row.addClassName("Selected") : row.removeClassName("Selected");
},
- select: function(elemId, selected) {
- $(elemId).querySelectorAll("li").forEach((row) => {
+ select: function(elem, selected) {
+ if (typeof elem == "string")
+ elem = document.getElementById(elem);
+
+ elem.querySelectorAll("li").forEach((row) => {
const checkNode = row.querySelector(".dijitCheckBox,input[type=checkbox]");
if (checkNode) {
const widget = dijit.getEnclosingWidget(checkNode);
@@ -264,6 +281,30 @@ const Lists = {
}
});
},
+ getSelected: function(elem) {
+ const rv = [];
+
+ if (typeof elem == "string")
+ elem = document.getElementById(elem);
+
+ elem.querySelectorAll("li").forEach((row) => {
+ if (row.hasClassName("Selected")) {
+ const rowVal = row.getAttribute("data-row-value");
+
+ if (rowVal) {
+ rv.push(rowVal);
+ } else {
+ // either older prefix-XXX notation or separate attribute
+ const rowId = row.getAttribute("data-row-id") || row.id.replace(/^[A-Z]*?-/, "");
+
+ if (!isNaN(rowId))
+ rv.push(parseInt(rowId));
+ }
+ }
+ });
+
+ return rv;
+ }
};
/* exported Tables */
@@ -279,8 +320,11 @@ const Tables = {
checked ? row.addClassName("Selected") : row.removeClassName("Selected");
},
- select: function(elemId, selected) {
- $(elemId).querySelectorAll("tr").forEach((row) => {
+ select: function(elem, selected) {
+ if (typeof elem == "string")
+ elem = document.getElementById(elem);
+
+ elem.querySelectorAll("tr").forEach((row) => {
const checkNode = row.querySelector(".dijitCheckBox,input[type=checkbox]");
if (checkNode) {
const widget = dijit.getEnclosingWidget(checkNode);
@@ -295,16 +339,25 @@ const Tables = {
}
});
},
- getSelected: function(elemId) {
+ getSelected: function(elem) {
const rv = [];
- $(elemId).querySelectorAll("tr").forEach((row) => {
+ if (typeof elem == "string")
+ elem = document.getElementById(elem);
+
+ elem.querySelectorAll("tr").forEach((row) => {
if (row.hasClassName("Selected")) {
- // either older prefix-XXX notation or separate attribute
- const rowId = row.getAttribute("data-row-id") || row.id.replace(/^[A-Z]*?-/, "");
+ const rowVal = row.getAttribute("data-row-value");
- if (!isNaN(rowId))
- rv.push(parseInt(rowId));
+ if (rowVal) {
+ rv.push(rowVal);
+ } else {
+ // either older prefix-XXX notation or separate attribute
+ const rowId = row.getAttribute("data-row-id") || row.id.replace(/^[A-Z]*?-/, "");
+
+ if (!isNaN(rowId))
+ rv.push(parseInt(rowId));
+ }
}
});
diff --git a/js/tt-rss.js b/js/tt-rss.js
index 4a7f2e643..10fafc447 100644
--- a/js/tt-rss.js
+++ b/js/tt-rss.js
@@ -69,15 +69,3 @@ require(["dojo/_base/kernel",
});
});
-/* exported hash_get */
-function hash_get(key) {
- const obj = dojo.queryToObject(window.location.hash.substring(1));
- return obj[key];
-}
-
-/* exported hash_set */
-function hash_set(key, value) {
- const obj = dojo.queryToObject(window.location.hash.substring(1));
- obj[key] = value;
- window.location.hash = dojo.objectToQuery(obj);
-}
diff --git a/lib/iconfont/MaterialIcons-Regular.ijmap b/lib/iconfont/MaterialIcons-Regular.ijmap
deleted file mode 100644
index d9f1d259f..000000000
--- a/lib/iconfont/MaterialIcons-Regular.ijmap
+++ /dev/null
@@ -1 +0,0 @@
-{"icons":{"e84d":{"name":"3d Rotation"},"eb3b":{"name":"Ac Unit"},"e190":{"name":"Access Alarm"},"e191":{"name":"Access Alarms"},"e192":{"name":"Access Time"},"e84e":{"name":"Accessibility"},"e914":{"name":"Accessible"},"e84f":{"name":"Account Balance"},"e850":{"name":"Account Balance Wallet"},"e851":{"name":"Account Box"},"e853":{"name":"Account Circle"},"e60e":{"name":"Adb"},"e145":{"name":"Add"},"e439":{"name":"Add A Photo"},"e193":{"name":"Add Alarm"},"e003":{"name":"Add Alert"},"e146":{"name":"Add Box"},"e147":{"name":"Add Circle"},"e148":{"name":"Add Circle Outline"},"e567":{"name":"Add Location"},"e854":{"name":"Add Shopping Cart"},"e39d":{"name":"Add To Photos"},"e05c":{"name":"Add To Queue"},"e39e":{"name":"Adjust"},"e630":{"name":"Airline Seat Flat"},"e631":{"name":"Airline Seat Flat Angled"},"e632":{"name":"Airline Seat Individual Suite"},"e633":{"name":"Airline Seat Legroom Extra"},"e634":{"name":"Airline Seat Legroom Normal"},"e635":{"name":"Airline Seat Legroom Reduced"},"e636":{"name":"Airline Seat Recline Extra"},"e637":{"name":"Airline Seat Recline Normal"},"e195":{"name":"Airplanemode Active"},"e194":{"name":"Airplanemode Inactive"},"e055":{"name":"Airplay"},"eb3c":{"name":"Airport Shuttle"},"e855":{"name":"Alarm"},"e856":{"name":"Alarm Add"},"e857":{"name":"Alarm Off"},"e858":{"name":"Alarm On"},"e019":{"name":"Album"},"eb3d":{"name":"All Inclusive"},"e90b":{"name":"All Out"},"e859":{"name":"Android"},"e85a":{"name":"Announcement"},"e5c3":{"name":"Apps"},"e149":{"name":"Archive"},"e5c4":{"name":"Arrow Back"},"e5db":{"name":"Arrow Downward"},"e5c5":{"name":"Arrow Drop Down"},"e5c6":{"name":"Arrow Drop Down Circle"},"e5c7":{"name":"Arrow Drop Up"},"e5c8":{"name":"Arrow Forward"},"e5d8":{"name":"Arrow Upward"},"e060":{"name":"Art Track"},"e85b":{"name":"Aspect Ratio"},"e85c":{"name":"Assessment"},"e85d":{"name":"Assignment"},"e85e":{"name":"Assignment Ind"},"e85f":{"name":"Assignment Late"},"e860":{"name":"Assignment Return"},"e861":{"name":"Assignment Returned"},"e862":{"name":"Assignment Turned In"},"e39f":{"name":"Assistant"},"e3a0":{"name":"Assistant Photo"},"e226":{"name":"Attach File"},"e227":{"name":"Attach Money"},"e2bc":{"name":"Attachment"},"e3a1":{"name":"Audiotrack"},"e863":{"name":"Autorenew"},"e01b":{"name":"Av Timer"},"e14a":{"name":"Backspace"},"e864":{"name":"Backup"},"e19c":{"name":"Battery Alert"},"e1a3":{"name":"Battery Charging Full"},"e1a4":{"name":"Battery Full"},"e1a5":{"name":"Battery Std"},"e1a6":{"name":"Battery Unknown"},"eb3e":{"name":"Beach Access"},"e52d":{"name":"Beenhere"},"e14b":{"name":"Block"},"e1a7":{"name":"Bluetooth"},"e60f":{"name":"Bluetooth Audio"},"e1a8":{"name":"Bluetooth Connected"},"e1a9":{"name":"Bluetooth Disabled"},"e1aa":{"name":"Bluetooth Searching"},"e3a2":{"name":"Blur Circular"},"e3a3":{"name":"Blur Linear"},"e3a4":{"name":"Blur Off"},"e3a5":{"name":"Blur On"},"e865":{"name":"Book"},"e866":{"name":"Bookmark"},"e867":{"name":"Bookmark Border"},"e228":{"name":"Border All"},"e229":{"name":"Border Bottom"},"e22a":{"name":"Border Clear"},"e22b":{"name":"Border Color"},"e22c":{"name":"Border Horizontal"},"e22d":{"name":"Border Inner"},"e22e":{"name":"Border Left"},"e22f":{"name":"Border Outer"},"e230":{"name":"Border Right"},"e231":{"name":"Border Style"},"e232":{"name":"Border Top"},"e233":{"name":"Border Vertical"},"e06b":{"name":"Branding Watermark"},"e3a6":{"name":"Brightness 1"},"e3a7":{"name":"Brightness 2"},"e3a8":{"name":"Brightness 3"},"e3a9":{"name":"Brightness 4"},"e3aa":{"name":"Brightness 5"},"e3ab":{"name":"Brightness 6"},"e3ac":{"name":"Brightness 7"},"e1ab":{"name":"Brightness Auto"},"e1ac":{"name":"Brightness High"},"e1ad":{"name":"Brightness Low"},"e1ae":{"name":"Brightness Medium"},"e3ad":{"name":"Broken Image"},"e3ae":{"name":"Brush"},"e6dd":{"name":"Bubble Chart"},"e868":{"name":"Bug Report"},"e869":{"name":"Build"},"e43c":{"name":"Burst Mode"},"e0af":{"name":"Business"},"eb3f":{"name":"Business Center"},"e86a":{"name":"Cached"},"e7e9":{"name":"Cake"},"e0b0":{"name":"Call"},"e0b1":{"name":"Call End"},"e0b2":{"name":"Call Made"},"e0b3":{"name":"Call Merge"},"e0b4":{"name":"Call Missed"},"e0e4":{"name":"Call Missed Outgoing"},"e0b5":{"name":"Call Received"},"e0b6":{"name":"Call Split"},"e06c":{"name":"Call To Action"},"e3af":{"name":"Camera"},"e3b0":{"name":"Camera Alt"},"e8fc":{"name":"Camera Enhance"},"e3b1":{"name":"Camera Front"},"e3b2":{"name":"Camera Rear"},"e3b3":{"name":"Camera Roll"},"e5c9":{"name":"Cancel"},"e8f6":{"name":"Card Giftcard"},"e8f7":{"name":"Card Membership"},"e8f8":{"name":"Card Travel"},"eb40":{"name":"Casino"},"e307":{"name":"Cast"},"e308":{"name":"Cast Connected"},"e3b4":{"name":"Center Focus Strong"},"e3b5":{"name":"Center Focus Weak"},"e86b":{"name":"Change History"},"e0b7":{"name":"Chat"},"e0ca":{"name":"Chat Bubble"},"e0cb":{"name":"Chat Bubble Outline"},"e5ca":{"name":"Check"},"e834":{"name":"Check Box"},"e835":{"name":"Check Box Outline Blank"},"e86c":{"name":"Check Circle"},"e5cb":{"name":"Chevron Left"},"e5cc":{"name":"Chevron Right"},"eb41":{"name":"Child Care"},"eb42":{"name":"Child Friendly"},"e86d":{"name":"Chrome Reader Mode"},"e86e":{"name":"Class"},"e14c":{"name":"Clear"},"e0b8":{"name":"Clear All"},"e5cd":{"name":"Close"},"e01c":{"name":"Closed Caption"},"e2bd":{"name":"Cloud"},"e2be":{"name":"Cloud Circle"},"e2bf":{"name":"Cloud Done"},"e2c0":{"name":"Cloud Download"},"e2c1":{"name":"Cloud Off"},"e2c2":{"name":"Cloud Queue"},"e2c3":{"name":"Cloud Upload"},"e86f":{"name":"Code"},"e3b6":{"name":"Collections"},"e431":{"name":"Collections Bookmark"},"e3b7":{"name":"Color Lens"},"e3b8":{"name":"Colorize"},"e0b9":{"name":"Comment"},"e3b9":{"name":"Compare"},"e915":{"name":"Compare Arrows"},"e30a":{"name":"Computer"},"e638":{"name":"Confirmation Number"},"e0d0":{"name":"Contact Mail"},"e0cf":{"name":"Contact Phone"},"e0ba":{"name":"Contacts"},"e14d":{"name":"Content Copy"},"e14e":{"name":"Content Cut"},"e14f":{"name":"Content Paste"},"e3ba":{"name":"Control Point"},"e3bb":{"name":"Control Point Duplicate"},"e90c":{"name":"Copyright"},"e150":{"name":"Create"},"e2cc":{"name":"Create New Folder"},"e870":{"name":"Credit Card"},"e3be":{"name":"Crop"},"e3bc":{"name":"Crop 16 9"},"e3bd":{"name":"Crop 3 2"},"e3bf":{"name":"Crop 5 4"},"e3c0":{"name":"Crop 7 5"},"e3c1":{"name":"Crop Din"},"e3c2":{"name":"Crop Free"},"e3c3":{"name":"Crop Landscape"},"e3c4":{"name":"Crop Original"},"e3c5":{"name":"Crop Portrait"},"e437":{"name":"Crop Rotate"},"e3c6":{"name":"Crop Square"},"e871":{"name":"Dashboard"},"e1af":{"name":"Data Usage"},"e916":{"name":"Date Range"},"e3c7":{"name":"Dehaze"},"e872":{"name":"Delete"},"e92b":{"name":"Delete Forever"},"e16c":{"name":"Delete Sweep"},"e873":{"name":"Description"},"e30b":{"name":"Desktop Mac"},"e30c":{"name":"Desktop Windows"},"e3c8":{"name":"Details"},"e30d":{"name":"Developer Board"},"e1b0":{"name":"Developer Mode"},"e335":{"name":"Device Hub"},"e1b1":{"name":"Devices"},"e337":{"name":"Devices Other"},"e0bb":{"name":"Dialer Sip"},"e0bc":{"name":"Dialpad"},"e52e":{"name":"Directions"},"e52f":{"name":"Directions Bike"},"e532":{"name":"Directions Boat"},"e530":{"name":"Directions Bus"},"e531":{"name":"Directions Car"},"e534":{"name":"Directions Railway"},"e566":{"name":"Directions Run"},"e533":{"name":"Directions Subway"},"e535":{"name":"Directions Transit"},"e536":{"name":"Directions Walk"},"e610":{"name":"Disc Full"},"e875":{"name":"Dns"},"e612":{"name":"Do Not Disturb"},"e611":{"name":"Do Not Disturb Alt"},"e643":{"name":"Do Not Disturb Off"},"e644":{"name":"Do Not Disturb On"},"e30e":{"name":"Dock"},"e7ee":{"name":"Domain"},"e876":{"name":"Done"},"e877":{"name":"Done All"},"e917":{"name":"Donut Large"},"e918":{"name":"Donut Small"},"e151":{"name":"Drafts"},"e25d":{"name":"Drag Handle"},"e613":{"name":"Drive Eta"},"e1b2":{"name":"Dvr"},"e3c9":{"name":"Edit"},"e568":{"name":"Edit Location"},"e8fb":{"name":"Eject"},"e0be":{"name":"Email"},"e63f":{"name":"Enhanced Encryption"},"e01d":{"name":"Equalizer"},"e000":{"name":"Error"},"e001":{"name":"Error Outline"},"e926":{"name":"Euro Symbol"},"e56d":{"name":"Ev Station"},"e878":{"name":"Event"},"e614":{"name":"Event Available"},"e615":{"name":"Event Busy"},"e616":{"name":"Event Note"},"e903":{"name":"Event Seat"},"e879":{"name":"Exit To App"},"e5ce":{"name":"Expand Less"},"e5cf":{"name":"Expand More"},"e01e":{"name":"Explicit"},"e87a":{"name":"Explore"},"e3ca":{"name":"Exposure"},"e3cb":{"name":"Exposure Neg 1"},"e3cc":{"name":"Exposure Neg 2"},"e3cd":{"name":"Exposure Plus 1"},"e3ce":{"name":"Exposure Plus 2"},"e3cf":{"name":"Exposure Zero"},"e87b":{"name":"Extension"},"e87c":{"name":"Face"},"e01f":{"name":"Fast Forward"},"e020":{"name":"Fast Rewind"},"e87d":{"name":"Favorite"},"e87e":{"name":"Favorite Border"},"e06d":{"name":"Featured Play List"},"e06e":{"name":"Featured Video"},"e87f":{"name":"Feedback"},"e05d":{"name":"Fiber Dvr"},"e061":{"name":"Fiber Manual Record"},"e05e":{"name":"Fiber New"},"e06a":{"name":"Fiber Pin"},"e062":{"name":"Fiber Smart Record"},"e2c4":{"name":"File Download"},"e2c6":{"name":"File Upload"},"e3d3":{"name":"Filter"},"e3d0":{"name":"Filter 1"},"e3d1":{"name":"Filter 2"},"e3d2":{"name":"Filter 3"},"e3d4":{"name":"Filter 4"},"e3d5":{"name":"Filter 5"},"e3d6":{"name":"Filter 6"},"e3d7":{"name":"Filter 7"},"e3d8":{"name":"Filter 8"},"e3d9":{"name":"Filter 9"},"e3da":{"name":"Filter 9 Plus"},"e3db":{"name":"Filter B And W"},"e3dc":{"name":"Filter Center Focus"},"e3dd":{"name":"Filter Drama"},"e3de":{"name":"Filter Frames"},"e3df":{"name":"Filter Hdr"},"e152":{"name":"Filter List"},"e3e0":{"name":"Filter None"},"e3e2":{"name":"Filter Tilt Shift"},"e3e3":{"name":"Filter Vintage"},"e880":{"name":"Find In Page"},"e881":{"name":"Find Replace"},"e90d":{"name":"Fingerprint"},"e5dc":{"name":"First Page"},"eb43":{"name":"Fitness Center"},"e153":{"name":"Flag"},"e3e4":{"name":"Flare"},"e3e5":{"name":"Flash Auto"},"e3e6":{"name":"Flash Off"},"e3e7":{"name":"Flash On"},"e539":{"name":"Flight"},"e904":{"name":"Flight Land"},"e905":{"name":"Flight Takeoff"},"e3e8":{"name":"Flip"},"e882":{"name":"Flip To Back"},"e883":{"name":"Flip To Front"},"e2c7":{"name":"Folder"},"e2c8":{"name":"Folder Open"},"e2c9":{"name":"Folder Shared"},"e617":{"name":"Folder Special"},"e167":{"name":"Font Download"},"e234":{"name":"Format Align Center"},"e235":{"name":"Format Align Justify"},"e236":{"name":"Format Align Left"},"e237":{"name":"Format Align Right"},"e238":{"name":"Format Bold"},"e239":{"name":"Format Clear"},"e23a":{"name":"Format Color Fill"},"e23b":{"name":"Format Color Reset"},"e23c":{"name":"Format Color Text"},"e23d":{"name":"Format Indent Decrease"},"e23e":{"name":"Format Indent Increase"},"e23f":{"name":"Format Italic"},"e240":{"name":"Format Line Spacing"},"e241":{"name":"Format List Bulleted"},"e242":{"name":"Format List Numbered"},"e243":{"name":"Format Paint"},"e244":{"name":"Format Quote"},"e25e":{"name":"Format Shapes"},"e245":{"name":"Format Size"},"e246":{"name":"Format Strikethrough"},"e247":{"name":"Format Textdirection L To R"},"e248":{"name":"Format Textdirection R To L"},"e249":{"name":"Format Underlined"},"e0bf":{"name":"Forum"},"e154":{"name":"Forward"},"e056":{"name":"Forward 10"},"e057":{"name":"Forward 30"},"e058":{"name":"Forward 5"},"eb44":{"name":"Free Breakfast"},"e5d0":{"name":"Fullscreen"},"e5d1":{"name":"Fullscreen Exit"},"e24a":{"name":"Functions"},"e927":{"name":"G Translate"},"e30f":{"name":"Gamepad"},"e021":{"name":"Games"},"e90e":{"name":"Gavel"},"e155":{"name":"Gesture"},"e884":{"name":"Get App"},"e908":{"name":"Gif"},"eb45":{"name":"Golf Course"},"e1b3":{"name":"Gps Fixed"},"e1b4":{"name":"Gps Not Fixed"},"e1b5":{"name":"Gps Off"},"e885":{"name":"Grade"},"e3e9":{"name":"Gradient"},"e3ea":{"name":"Grain"},"e1b8":{"name":"Graphic Eq"},"e3eb":{"name":"Grid Off"},"e3ec":{"name":"Grid On"},"e7ef":{"name":"Group"},"e7f0":{"name":"Group Add"},"e886":{"name":"Group Work"},"e052":{"name":"Hd"},"e3ed":{"name":"Hdr Off"},"e3ee":{"name":"Hdr On"},"e3f1":{"name":"Hdr Strong"},"e3f2":{"name":"Hdr Weak"},"e310":{"name":"Headset"},"e311":{"name":"Headset Mic"},"e3f3":{"name":"Healing"},"e023":{"name":"Hearing"},"e887":{"name":"Help"},"e8fd":{"name":"Help Outline"},"e024":{"name":"High Quality"},"e25f":{"name":"Highlight"},"e888":{"name":"Highlight Off"},"e889":{"name":"History"},"e88a":{"name":"Home"},"eb46":{"name":"Hot Tub"},"e53a":{"name":"Hotel"},"e88b":{"name":"Hourglass Empty"},"e88c":{"name":"Hourglass Full"},"e902":{"name":"Http"},"e88d":{"name":"Https"},"e3f4":{"name":"Image"},"e3f5":{"name":"Image Aspect Ratio"},"e0e0":{"name":"Import Contacts"},"e0c3":{"name":"Import Export"},"e912":{"name":"Important Devices"},"e156":{"name":"Inbox"},"e909":{"name":"Indeterminate Check Box"},"e88e":{"name":"Info"},"e88f":{"name":"Info Outline"},"e890":{"name":"Input"},"e24b":{"name":"Insert Chart"},"e24c":{"name":"Insert Comment"},"e24d":{"name":"Insert Drive File"},"e24e":{"name":"Insert Emoticon"},"e24f":{"name":"Insert Invitation"},"e250":{"name":"Insert Link"},"e251":{"name":"Insert Photo"},"e891":{"name":"Invert Colors"},"e0c4":{"name":"Invert Colors Off"},"e3f6":{"name":"Iso"},"e312":{"name":"Keyboard"},"e313":{"name":"Keyboard Arrow Down"},"e314":{"name":"Keyboard Arrow Left"},"e315":{"name":"Keyboard Arrow Right"},"e316":{"name":"Keyboard Arrow Up"},"e317":{"name":"Keyboard Backspace"},"e318":{"name":"Keyboard Capslock"},"e31a":{"name":"Keyboard Hide"},"e31b":{"name":"Keyboard Return"},"e31c":{"name":"Keyboard Tab"},"e31d":{"name":"Keyboard Voice"},"eb47":{"name":"Kitchen"},"e892":{"name":"Label"},"e893":{"name":"Label Outline"},"e3f7":{"name":"Landscape"},"e894":{"name":"Language"},"e31e":{"name":"Laptop"},"e31f":{"name":"Laptop Chromebook"},"e320":{"name":"Laptop Mac"},"e321":{"name":"Laptop Windows"},"e5dd":{"name":"Last Page"},"e895":{"name":"Launch"},"e53b":{"name":"Layers"},"e53c":{"name":"Layers Clear"},"e3f8":{"name":"Leak Add"},"e3f9":{"name":"Leak Remove"},"e3fa":{"name":"Lens"},"e02e":{"name":"Library Add"},"e02f":{"name":"Library Books"},"e030":{"name":"Library Music"},"e90f":{"name":"Lightbulb Outline"},"e919":{"name":"Line Style"},"e91a":{"name":"Line Weight"},"e260":{"name":"Linear Scale"},"e157":{"name":"Link"},"e438":{"name":"Linked Camera"},"e896":{"name":"List"},"e0c6":{"name":"Live Help"},"e639":{"name":"Live Tv"},"e53f":{"name":"Local Activity"},"e53d":{"name":"Local Airport"},"e53e":{"name":"Local Atm"},"e540":{"name":"Local Bar"},"e541":{"name":"Local Cafe"},"e542":{"name":"Local Car Wash"},"e543":{"name":"Local Convenience Store"},"e556":{"name":"Local Dining"},"e544":{"name":"Local Drink"},"e545":{"name":"Local Florist"},"e546":{"name":"Local Gas Station"},"e547":{"name":"Local Grocery Store"},"e548":{"name":"Local Hospital"},"e549":{"name":"Local Hotel"},"e54a":{"name":"Local Laundry Service"},"e54b":{"name":"Local Library"},"e54c":{"name":"Local Mall"},"e54d":{"name":"Local Movies"},"e54e":{"name":"Local Offer"},"e54f":{"name":"Local Parking"},"e550":{"name":"Local Pharmacy"},"e551":{"name":"Local Phone"},"e552":{"name":"Local Pizza"},"e553":{"name":"Local Play"},"e554":{"name":"Local Post Office"},"e555":{"name":"Local Printshop"},"e557":{"name":"Local See"},"e558":{"name":"Local Shipping"},"e559":{"name":"Local Taxi"},"e7f1":{"name":"Location City"},"e1b6":{"name":"Location Disabled"},"e0c7":{"name":"Location Off"},"e0c8":{"name":"Location On"},"e1b7":{"name":"Location Searching"},"e897":{"name":"Lock"},"e898":{"name":"Lock Open"},"e899":{"name":"Lock Outline"},"e3fc":{"name":"Looks"},"e3fb":{"name":"Looks 3"},"e3fd":{"name":"Looks 4"},"e3fe":{"name":"Looks 5"},"e3ff":{"name":"Looks 6"},"e400":{"name":"Looks One"},"e401":{"name":"Looks Two"},"e028":{"name":"Loop"},"e402":{"name":"Loupe"},"e16d":{"name":"Low Priority"},"e89a":{"name":"Loyalty"},"e158":{"name":"Mail"},"e0e1":{"name":"Mail Outline"},"e55b":{"name":"Map"},"e159":{"name":"Markunread"},"e89b":{"name":"Markunread Mailbox"},"e322":{"name":"Memory"},"e5d2":{"name":"Menu"},"e252":{"name":"Merge Type"},"e0c9":{"name":"Message"},"e029":{"name":"Mic"},"e02a":{"name":"Mic None"},"e02b":{"name":"Mic Off"},"e618":{"name":"Mms"},"e253":{"name":"Mode Comment"},"e254":{"name":"Mode Edit"},"e263":{"name":"Monetization On"},"e25c":{"name":"Money Off"},"e403":{"name":"Monochrome Photos"},"e7f2":{"name":"Mood"},"e7f3":{"name":"Mood Bad"},"e619":{"name":"More"},"e5d3":{"name":"More Horiz"},"e5d4":{"name":"More Vert"},"e91b":{"name":"Motorcycle"},"e323":{"name":"Mouse"},"e168":{"name":"Move To Inbox"},"e02c":{"name":"Movie"},"e404":{"name":"Movie Creation"},"e43a":{"name":"Movie Filter"},"e6df":{"name":"Multiline Chart"},"e405":{"name":"Music Note"},"e063":{"name":"Music Video"},"e55c":{"name":"My Location"},"e406":{"name":"Nature"},"e407":{"name":"Nature People"},"e408":{"name":"Navigate Before"},"e409":{"name":"Navigate Next"},"e55d":{"name":"Navigation"},"e569":{"name":"Near Me"},"e1b9":{"name":"Network Cell"},"e640":{"name":"Network Check"},"e61a":{"name":"Network Locked"},"e1ba":{"name":"Network Wifi"},"e031":{"name":"New Releases"},"e16a":{"name":"Next Week"},"e1bb":{"name":"Nfc"},"e641":{"name":"No Encryption"},"e0cc":{"name":"No Sim"},"e033":{"name":"Not Interested"},"e06f":{"name":"Note"},"e89c":{"name":"Note Add"},"e7f4":{"name":"Notifications"},"e7f7":{"name":"Notifications Active"},"e7f5":{"name":"Notifications None"},"e7f6":{"name":"Notifications Off"},"e7f8":{"name":"Notifications Paused"},"e90a":{"name":"Offline Pin"},"e63a":{"name":"Ondemand Video"},"e91c":{"name":"Opacity"},"e89d":{"name":"Open In Browser"},"e89e":{"name":"Open In New"},"e89f":{"name":"Open With"},"e7f9":{"name":"Pages"},"e8a0":{"name":"Pageview"},"e40a":{"name":"Palette"},"e925":{"name":"Pan Tool"},"e40b":{"name":"Panorama"},"e40c":{"name":"Panorama Fish Eye"},"e40d":{"name":"Panorama Horizontal"},"e40e":{"name":"Panorama Vertical"},"e40f":{"name":"Panorama Wide Angle"},"e7fa":{"name":"Party Mode"},"e034":{"name":"Pause"},"e035":{"name":"Pause Circle Filled"},"e036":{"name":"Pause Circle Outline"},"e8a1":{"name":"Payment"},"e7fb":{"name":"People"},"e7fc":{"name":"People Outline"},"e8a2":{"name":"Perm Camera Mic"},"e8a3":{"name":"Perm Contact Calendar"},"e8a4":{"name":"Perm Data Setting"},"e8a5":{"name":"Perm Device Information"},"e8a6":{"name":"Perm Identity"},"e8a7":{"name":"Perm Media"},"e8a8":{"name":"Perm Phone Msg"},"e8a9":{"name":"Perm Scan Wifi"},"e7fd":{"name":"Person"},"e7fe":{"name":"Person Add"},"e7ff":{"name":"Person Outline"},"e55a":{"name":"Person Pin"},"e56a":{"name":"Person Pin Circle"},"e63b":{"name":"Personal Video"},"e91d":{"name":"Pets"},"e0cd":{"name":"Phone"},"e324":{"name":"Phone Android"},"e61b":{"name":"Phone Bluetooth Speaker"},"e61c":{"name":"Phone Forwarded"},"e61d":{"name":"Phone In Talk"},"e325":{"name":"Phone Iphone"},"e61e":{"name":"Phone Locked"},"e61f":{"name":"Phone Missed"},"e620":{"name":"Phone Paused"},"e326":{"name":"Phonelink"},"e0db":{"name":"Phonelink Erase"},"e0dc":{"name":"Phonelink Lock"},"e327":{"name":"Phonelink Off"},"e0dd":{"name":"Phonelink Ring"},"e0de":{"name":"Phonelink Setup"},"e410":{"name":"Photo"},"e411":{"name":"Photo Album"},"e412":{"name":"Photo Camera"},"e43b":{"name":"Photo Filter"},"e413":{"name":"Photo Library"},"e432":{"name":"Photo Size Select Actual"},"e433":{"name":"Photo Size Select Large"},"e434":{"name":"Photo Size Select Small"},"e415":{"name":"Picture As Pdf"},"e8aa":{"name":"Picture In Picture"},"e911":{"name":"Picture In Picture Alt"},"e6c4":{"name":"Pie Chart"},"e6c5":{"name":"Pie Chart Outlined"},"e55e":{"name":"Pin Drop"},"e55f":{"name":"Place"},"e037":{"name":"Play Arrow"},"e038":{"name":"Play Circle Filled"},"e039":{"name":"Play Circle Outline"},"e906":{"name":"Play For Work"},"e03b":{"name":"Playlist Add"},"e065":{"name":"Playlist Add Check"},"e05f":{"name":"Playlist Play"},"e800":{"name":"Plus One"},"e801":{"name":"Poll"},"e8ab":{"name":"Polymer"},"eb48":{"name":"Pool"},"e0ce":{"name":"Portable Wifi Off"},"e416":{"name":"Portrait"},"e63c":{"name":"Power"},"e336":{"name":"Power Input"},"e8ac":{"name":"Power Settings New"},"e91e":{"name":"Pregnant Woman"},"e0df":{"name":"Present To All"},"e8ad":{"name":"Print"},"e645":{"name":"Priority High"},"e80b":{"name":"Public"},"e255":{"name":"Publish"},"e8ae":{"name":"Query Builder"},"e8af":{"name":"Question Answer"},"e03c":{"name":"Queue"},"e03d":{"name":"Queue Music"},"e066":{"name":"Queue Play Next"},"e03e":{"name":"Radio"},"e837":{"name":"Radio Button Checked"},"e836":{"name":"Radio Button Unchecked"},"e560":{"name":"Rate Review"},"e8b0":{"name":"Receipt"},"e03f":{"name":"Recent Actors"},"e91f":{"name":"Record Voice Over"},"e8b1":{"name":"Redeem"},"e15a":{"name":"Redo"},"e5d5":{"name":"Refresh"},"e15b":{"name":"Remove"},"e15c":{"name":"Remove Circle"},"e15d":{"name":"Remove Circle Outline"},"e067":{"name":"Remove From Queue"},"e417":{"name":"Remove Red Eye"},"e928":{"name":"Remove Shopping Cart"},"e8fe":{"name":"Reorder"},"e040":{"name":"Repeat"},"e041":{"name":"Repeat One"},"e042":{"name":"Replay"},"e059":{"name":"Replay 10"},"e05a":{"name":"Replay 30"},"e05b":{"name":"Replay 5"},"e15e":{"name":"Reply"},"e15f":{"name":"Reply All"},"e160":{"name":"Report"},"e8b2":{"name":"Report Problem"},"e56c":{"name":"Restaurant"},"e561":{"name":"Restaurant Menu"},"e8b3":{"name":"Restore"},"e929":{"name":"Restore Page"},"e0d1":{"name":"Ring Volume"},"e8b4":{"name":"Room"},"eb49":{"name":"Room Service"},"e418":{"name":"Rotate 90 Degrees Ccw"},"e419":{"name":"Rotate Left"},"e41a":{"name":"Rotate Right"},"e920":{"name":"Rounded Corner"},"e328":{"name":"Router"},"e921":{"name":"Rowing"},"e0e5":{"name":"Rss Feed"},"e642":{"name":"Rv Hookup"},"e562":{"name":"Satellite"},"e161":{"name":"Save"},"e329":{"name":"Scanner"},"e8b5":{"name":"Schedule"},"e80c":{"name":"School"},"e1be":{"name":"Screen Lock Landscape"},"e1bf":{"name":"Screen Lock Portrait"},"e1c0":{"name":"Screen Lock Rotation"},"e1c1":{"name":"Screen Rotation"},"e0e2":{"name":"Screen Share"},"e623":{"name":"Sd Card"},"e1c2":{"name":"Sd Storage"},"e8b6":{"name":"Search"},"e32a":{"name":"Security"},"e162":{"name":"Select All"},"e163":{"name":"Send"},"e811":{"name":"Sentiment Dissatisfied"},"e812":{"name":"Sentiment Neutral"},"e813":{"name":"Sentiment Satisfied"},"e814":{"name":"Sentiment Very Dissatisfied"},"e815":{"name":"Sentiment Very Satisfied"},"e8b8":{"name":"Settings"},"e8b9":{"name":"Settings Applications"},"e8ba":{"name":"Settings Backup Restore"},"e8bb":{"name":"Settings Bluetooth"},"e8bd":{"name":"Settings Brightness"},"e8bc":{"name":"Settings Cell"},"e8be":{"name":"Settings Ethernet"},"e8bf":{"name":"Settings Input Antenna"},"e8c0":{"name":"Settings Input Component"},"e8c1":{"name":"Settings Input Composite"},"e8c2":{"name":"Settings Input Hdmi"},"e8c3":{"name":"Settings Input Svideo"},"e8c4":{"name":"Settings Overscan"},"e8c5":{"name":"Settings Phone"},"e8c6":{"name":"Settings Power"},"e8c7":{"name":"Settings Remote"},"e1c3":{"name":"Settings System Daydream"},"e8c8":{"name":"Settings Voice"},"e80d":{"name":"Share"},"e8c9":{"name":"Shop"},"e8ca":{"name":"Shop Two"},"e8cb":{"name":"Shopping Basket"},"e8cc":{"name":"Shopping Cart"},"e261":{"name":"Short Text"},"e6e1":{"name":"Show Chart"},"e043":{"name":"Shuffle"},"e1c8":{"name":"Signal Cellular 4 Bar"},"e1cd":{"name":"Signal Cellular Connected No Internet 4 Bar"},"e1ce":{"name":"Signal Cellular No Sim"},"e1cf":{"name":"Signal Cellular Null"},"e1d0":{"name":"Signal Cellular Off"},"e1d8":{"name":"Signal Wifi 4 Bar"},"e1d9":{"name":"Signal Wifi 4 Bar Lock"},"e1da":{"name":"Signal Wifi Off"},"e32b":{"name":"Sim Card"},"e624":{"name":"Sim Card Alert"},"e044":{"name":"Skip Next"},"e045":{"name":"Skip Previous"},"e41b":{"name":"Slideshow"},"e068":{"name":"Slow Motion Video"},"e32c":{"name":"Smartphone"},"eb4a":{"name":"Smoke Free"},"eb4b":{"name":"Smoking Rooms"},"e625":{"name":"Sms"},"e626":{"name":"Sms Failed"},"e046":{"name":"Snooze"},"e164":{"name":"Sort"},"e053":{"name":"Sort By Alpha"},"eb4c":{"name":"Spa"},"e256":{"name":"Space Bar"},"e32d":{"name":"Speaker"},"e32e":{"name":"Speaker Group"},"e8cd":{"name":"Speaker Notes"},"e92a":{"name":"Speaker Notes Off"},"e0d2":{"name":"Speaker Phone"},"e8ce":{"name":"Spellcheck"},"e838":{"name":"Star"},"e83a":{"name":"Star Border"},"e839":{"name":"Star Half"},"e8d0":{"name":"Stars"},"e0d3":{"name":"Stay Current Landscape"},"e0d4":{"name":"Stay Current Portrait"},"e0d5":{"name":"Stay Primary Landscape"},"e0d6":{"name":"Stay Primary Portrait"},"e047":{"name":"Stop"},"e0e3":{"name":"Stop Screen Share"},"e1db":{"name":"Storage"},"e8d1":{"name":"Store"},"e563":{"name":"Store Mall Directory"},"e41c":{"name":"Straighten"},"e56e":{"name":"Streetview"},"e257":{"name":"Strikethrough S"},"e41d":{"name":"Style"},"e5d9":{"name":"Subdirectory Arrow Left"},"e5da":{"name":"Subdirectory Arrow Right"},"e8d2":{"name":"Subject"},"e064":{"name":"Subscriptions"},"e048":{"name":"Subtitles"},"e56f":{"name":"Subway"},"e8d3":{"name":"Supervisor Account"},"e049":{"name":"Surround Sound"},"e0d7":{"name":"Swap Calls"},"e8d4":{"name":"Swap Horiz"},"e8d5":{"name":"Swap Vert"},"e8d6":{"name":"Swap Vertical Circle"},"e41e":{"name":"Switch Camera"},"e41f":{"name":"Switch Video"},"e627":{"name":"Sync"},"e628":{"name":"Sync Disabled"},"e629":{"name":"Sync Problem"},"e62a":{"name":"System Update"},"e8d7":{"name":"System Update Alt"},"e8d8":{"name":"Tab"},"e8d9":{"name":"Tab Unselected"},"e32f":{"name":"Tablet"},"e330":{"name":"Tablet Android"},"e331":{"name":"Tablet Mac"},"e420":{"name":"Tag Faces"},"e62b":{"name":"Tap And Play"},"e564":{"name":"Terrain"},"e262":{"name":"Text Fields"},"e165":{"name":"Text Format"},"e0d8":{"name":"Textsms"},"e421":{"name":"Texture"},"e8da":{"name":"Theaters"},"e8db":{"name":"Thumb Down"},"e8dc":{"name":"Thumb Up"},"e8dd":{"name":"Thumbs Up Down"},"e62c":{"name":"Time To Leave"},"e422":{"name":"Timelapse"},"e922":{"name":"Timeline"},"e425":{"name":"Timer"},"e423":{"name":"Timer 10"},"e424":{"name":"Timer 3"},"e426":{"name":"Timer Off"},"e264":{"name":"Title"},"e8de":{"name":"Toc"},"e8df":{"name":"Today"},"e8e0":{"name":"Toll"},"e427":{"name":"Tonality"},"e913":{"name":"Touch App"},"e332":{"name":"Toys"},"e8e1":{"name":"Track Changes"},"e565":{"name":"Traffic"},"e570":{"name":"Train"},"e571":{"name":"Tram"},"e572":{"name":"Transfer Within A Station"},"e428":{"name":"Transform"},"e8e2":{"name":"Translate"},"e8e3":{"name":"Trending Down"},"e8e4":{"name":"Trending Flat"},"e8e5":{"name":"Trending Up"},"e429":{"name":"Tune"},"e8e6":{"name":"Turned In"},"e8e7":{"name":"Turned In Not"},"e333":{"name":"Tv"},"e169":{"name":"Unarchive"},"e166":{"name":"Undo"},"e5d6":{"name":"Unfold Less"},"e5d7":{"name":"Unfold More"},"e923":{"name":"Update"},"e1e0":{"name":"Usb"},"e8e8":{"name":"Verified User"},"e258":{"name":"Vertical Align Bottom"},"e259":{"name":"Vertical Align Center"},"e25a":{"name":"Vertical Align Top"},"e62d":{"name":"Vibration"},"e070":{"name":"Video Call"},"e071":{"name":"Video Label"},"e04a":{"name":"Video Library"},"e04b":{"name":"Videocam"},"e04c":{"name":"Videocam Off"},"e338":{"name":"Videogame Asset"},"e8e9":{"name":"View Agenda"},"e8ea":{"name":"View Array"},"e8eb":{"name":"View Carousel"},"e8ec":{"name":"View Column"},"e42a":{"name":"View Comfy"},"e42b":{"name":"View Compact"},"e8ed":{"name":"View Day"},"e8ee":{"name":"View Headline"},"e8ef":{"name":"View List"},"e8f0":{"name":"View Module"},"e8f1":{"name":"View Quilt"},"e8f2":{"name":"View Stream"},"e8f3":{"name":"View Week"},"e435":{"name":"Vignette"},"e8f4":{"name":"Visibility"},"e8f5":{"name":"Visibility Off"},"e62e":{"name":"Voice Chat"},"e0d9":{"name":"Voicemail"},"e04d":{"name":"Volume Down"},"e04e":{"name":"Volume Mute"},"e04f":{"name":"Volume Off"},"e050":{"name":"Volume Up"},"e0da":{"name":"Vpn Key"},"e62f":{"name":"Vpn Lock"},"e1bc":{"name":"Wallpaper"},"e002":{"name":"Warning"},"e334":{"name":"Watch"},"e924":{"name":"Watch Later"},"e42c":{"name":"Wb Auto"},"e42d":{"name":"Wb Cloudy"},"e42e":{"name":"Wb Incandescent"},"e436":{"name":"Wb Iridescent"},"e430":{"name":"Wb Sunny"},"e63d":{"name":"Wc"},"e051":{"name":"Web"},"e069":{"name":"Web Asset"},"e16b":{"name":"Weekend"},"e80e":{"name":"Whatshot"},"e1bd":{"name":"Widgets"},"e63e":{"name":"Wifi"},"e1e1":{"name":"Wifi Lock"},"e1e2":{"name":"Wifi Tethering"},"e8f9":{"name":"Work"},"e25b":{"name":"Wrap Text"},"e8fa":{"name":"Youtube Searched For"},"e8ff":{"name":"Zoom In"},"e900":{"name":"Zoom Out"},"e56b":{"name":"Zoom Out Map"}}} \ No newline at end of file
diff --git a/lib/iconfont/MaterialIcons-Regular.woff b/lib/iconfont/MaterialIcons-Regular.woff
deleted file mode 100644
index b648a3eea..000000000
--- a/lib/iconfont/MaterialIcons-Regular.woff
+++ /dev/null
Binary files differ
diff --git a/lib/iconfont/MaterialIcons-Regular.woff2 b/lib/iconfont/MaterialIcons-Regular.woff2
deleted file mode 100644
index 9fa211252..000000000
--- a/lib/iconfont/MaterialIcons-Regular.woff2
+++ /dev/null
Binary files differ
diff --git a/lib/iconfont/README.md b/lib/iconfont/README.md
deleted file mode 100644
index ce4141eca..000000000
--- a/lib/iconfont/README.md
+++ /dev/null
@@ -1,9 +0,0 @@
-The recommended way to use the Material Icons font is by linking to the web font hosted on Google Fonts:
-
-```html
-<link href="https://fonts.googleapis.com/icon?family=Material+Icons"
- rel="stylesheet">
-```
-
-Read more in our full usage guide:
-http://google.github.io/material-design-icons/#icon-font-for-the-web
diff --git a/lib/iconfont/material-icons.css b/lib/iconfont/material-icons.css
deleted file mode 100644
index 2270c09d0..000000000
--- a/lib/iconfont/material-icons.css
+++ /dev/null
@@ -1,36 +0,0 @@
-@font-face {
- font-family: 'Material Icons';
- font-style: normal;
- font-weight: 400;
- src: url(MaterialIcons-Regular.eot); /* For IE6-8 */
- src: local('Material Icons'),
- local('MaterialIcons-Regular'),
- url(MaterialIcons-Regular.woff2) format('woff2'),
- url(MaterialIcons-Regular.woff) format('woff'),
- url(MaterialIcons-Regular.ttf) format('truetype');
-}
-
-.material-icons {
- font-family: 'Material Icons';
- font-weight: normal;
- font-style: normal;
- font-size: 24px; /* Preferred icon size */
- display: inline-block;
- line-height: 1;
- text-transform: none;
- letter-spacing: normal;
- word-wrap: normal;
- white-space: nowrap;
- direction: ltr;
-
- /* Support for all WebKit browsers. */
- -webkit-font-smoothing: antialiased;
- /* Support for Safari and Chrome. */
- text-rendering: optimizeLegibility;
-
- /* Support for Firefox. */
- -moz-osx-font-smoothing: grayscale;
-
- /* Support for IE. */
- font-feature-settings: 'liga';
-}
diff --git a/lib/phpqrcode/CHANGELOG b/lib/phpqrcode/CHANGELOG
deleted file mode 100644
index 1088530c3..000000000
--- a/lib/phpqrcode/CHANGELOG
+++ /dev/null
@@ -1,38 +0,0 @@
-* 1.0.0 build 2010031920
-
- - first public release
- - help in readme, install
- - cleanup ans separation of QRtools and QRspec
- - now TCPDF binding requires minimal changes in TCPDF, having most of job
- done in QRtools tcpdfBarcodeArray
- - nicer QRtools::timeBenchmark output
- - license and copyright notices in files
- - indent cleanup - from tab to 4spc, keep it that way please :)
- - sf project, repository, wiki
- - simple code generator in index.php
-
-* 1.1.0 build 2010032113
-
- - added merge tool wich generate merged version of code
- located in phpqrcode.php
- - splited qrconst.php from qrlib.php
-
-* 1.1.1 build 2010032405
-
- - patch by Rick Seymour allowing saving PNG and displaying it at the same time
- - added version info in VERSION file
- - modified merge tool to include version info into generated file
- - fixed e-mail in almost all head comments
-
-* 1.1.2 build 2010032722
-
- - full integration with TCPDF thanks to Nicola Asuni, it's author
- - fixed bug with alphanumeric encoding detection
-
-* 1.1.3 build 2010081807
-
- - short opening tags replaced with standard ones
-
-* 1.1.4 build 2010100721
-
- - added missing static keyword QRinput::check (found by Luke Brookhart, Onjax LLC)
diff --git a/lib/phpqrcode/INSTALL b/lib/phpqrcode/INSTALL
deleted file mode 100644
index eac6b072b..000000000
--- a/lib/phpqrcode/INSTALL
+++ /dev/null
@@ -1,67 +0,0 @@
-== REQUIREMENTS ==
-
- * PHP5
- * PHP GD2 extension with JPEG and PNG support
-
-== INSTALLATION ==
-
-If you want to recreate cache by yourself make sure cache directory is
-writable and you have permisions to write into it. Also make sure you are
-able to read files in it if you have cache option enabled
-
-== CONFIGURATION ==
-
-Feel free to modify config constants in qrconfig.php file. Read about it in
-provided comments and project wiki page (links in README file)
-
-== QUICK START ==
-
-Notice: probably you should'nt use all of this in same script :)
-
-<?phpb
-
-//include only that one, rest required files will be included from it
-include "qrlib.php"
-
-//write code into file, Error corection lecer is lowest, L (one form: L,M,Q,H)
-//each code square will be 4x4 pixels (4x zoom)
-//code will have 2 code squares white boundary around
-
-QRcode::png('PHP QR Code :)', 'test.png', 'L', 4, 2);
-
-//same as above but outputs file directly into browser (with appr. header etc.)
-//all other settings are default
-//WARNING! it should be FIRST and ONLY output generated by script, otherwise
-//rest of output will land inside PNG binary, breaking it for sure
-QRcode::png('PHP QR Code :)');
-
-//show benchmark
-QRtools::timeBenchmark();
-
-//rebuild cache
-QRtools::buildCache();
-
-//code generated in text mode - as a binary table
-//then displayed out as HTML using Unicode block building chars :)
-$tab = $qr->encode('PHP QR Code :)');
-QRspec::debug($tab, true);
-
-== TCPDF INTEGRATION ==
-
-Inside bindings/tcpdf you will find slightly modified 2dbarcodes.php.
-Instal phpqrcode liblaty inside tcpdf folder, then overwrite (or merge)
-2dbarcodes.php
-
-Then use similar as example #50 from TCPDF examples:
-
-<?php
-
-$style = array(
- 'border' => true,
- 'padding' => 4,
- 'fgcolor' => array(0,0,0),
- 'bgcolor' => false, //array(255,255,255)
-);
-
-//code name: QR, specify error correction level after semicolon (L,M,Q,H)
-$pdf->write2DBarcode('PHP QR Code :)', 'QR,L', '', '', 30, 30, $style, 'N');
diff --git a/lib/phpqrcode/LICENSE b/lib/phpqrcode/LICENSE
deleted file mode 100644
index 188330326..000000000
--- a/lib/phpqrcode/LICENSE
+++ /dev/null
@@ -1,165 +0,0 @@
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-
- This version of the GNU Lesser General Public License incorporates
-the terms and conditions of version 3 of the GNU General Public
-License, supplemented by the additional permissions listed below.
-
- 0. Additional Definitions.
-
- As used herein, "this License" refers to version 3 of the GNU Lesser
-General Public License, and the "GNU GPL" refers to version 3 of the GNU
-General Public License.
-
- "The Library" refers to a covered work governed by this License,
-other than an Application or a Combined Work as defined below.
-
- An "Application" is any work that makes use of an interface provided
-by the Library, but which is not otherwise based on the Library.
-Defining a subclass of a class defined by the Library is deemed a mode
-of using an interface provided by the Library.
-
- A "Combined Work" is a work produced by combining or linking an
-Application with the Library. The particular version of the Library
-with which the Combined Work was made is also called the "Linked
-Version".
-
- The "Minimal Corresponding Source" for a Combined Work means the
-Corresponding Source for the Combined Work, excluding any source code
-for portions of the Combined Work that, considered in isolation, are
-based on the Application, and not on the Linked Version.
-
- The "Corresponding Application Code" for a Combined Work means the
-object code and/or source code for the Application, including any data
-and utility programs needed for reproducing the Combined Work from the
-Application, but excluding the System Libraries of the Combined Work.
-
- 1. Exception to Section 3 of the GNU GPL.
-
- You may convey a covered work under sections 3 and 4 of this License
-without being bound by section 3 of the GNU GPL.
-
- 2. Conveying Modified Versions.
-
- If you modify a copy of the Library, and, in your modifications, a
-facility refers to a function or data to be supplied by an Application
-that uses the facility (other than as an argument passed when the
-facility is invoked), then you may convey a copy of the modified
-version:
-
- a) under this License, provided that you make a good faith effort to
- ensure that, in the event an Application does not supply the
- function or data, the facility still operates, and performs
- whatever part of its purpose remains meaningful, or
-
- b) under the GNU GPL, with none of the additional permissions of
- this License applicable to that copy.
-
- 3. Object Code Incorporating Material from Library Header Files.
-
- The object code form of an Application may incorporate material from
-a header file that is part of the Library. You may convey such object
-code under terms of your choice, provided that, if the incorporated
-material is not limited to numerical parameters, data structure
-layouts and accessors, or small macros, inline functions and templates
-(ten or fewer lines in length), you do both of the following:
-
- a) Give prominent notice with each copy of the object code that the
- Library is used in it and that the Library and its use are
- covered by this License.
-
- b) Accompany the object code with a copy of the GNU GPL and this license
- document.
-
- 4. Combined Works.
-
- You may convey a Combined Work under terms of your choice that,
-taken together, effectively do not restrict modification of the
-portions of the Library contained in the Combined Work and reverse
-engineering for debugging such modifications, if you also do each of
-the following:
-
- a) Give prominent notice with each copy of the Combined Work that
- the Library is used in it and that the Library and its use are
- covered by this License.
-
- b) Accompany the Combined Work with a copy of the GNU GPL and this license
- document.
-
- c) For a Combined Work that displays copyright notices during
- execution, include the copyright notice for the Library among
- these notices, as well as a reference directing the user to the
- copies of the GNU GPL and this license document.
-
- d) Do one of the following:
-
- 0) Convey the Minimal Corresponding Source under the terms of this
- License, and the Corresponding Application Code in a form
- suitable for, and under terms that permit, the user to
- recombine or relink the Application with a modified version of
- the Linked Version to produce a modified Combined Work, in the
- manner specified by section 6 of the GNU GPL for conveying
- Corresponding Source.
-
- 1) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (a) uses at run time
- a copy of the Library already present on the user's computer
- system, and (b) will operate properly with a modified version
- of the Library that is interface-compatible with the Linked
- Version.
-
- e) Provide Installation Information, but only if you would otherwise
- be required to provide such information under section 6 of the
- GNU GPL, and only to the extent that such information is
- necessary to install and execute a modified version of the
- Combined Work produced by recombining or relinking the
- Application with a modified version of the Linked Version. (If
- you use option 4d0, the Installation Information must accompany
- the Minimal Corresponding Source and Corresponding Application
- Code. If you use option 4d1, you must provide the Installation
- Information in the manner specified by section 6 of the GNU GPL
- for conveying Corresponding Source.)
-
- 5. Combined Libraries.
-
- You may place library facilities that are a work based on the
-Library side by side in a single library together with other library
-facilities that are not Applications and are not covered by this
-License, and convey such a combined library under terms of your
-choice, if you do both of the following:
-
- a) Accompany the combined library with a copy of the same work based
- on the Library, uncombined with any other library facilities,
- conveyed under the terms of this License.
-
- b) Give prominent notice with the combined library that part of it
- is a work based on the Library, and explaining where to find the
- accompanying uncombined form of the same work.
-
- 6. Revised Versions of the GNU Lesser General Public License.
-
- The Free Software Foundation may publish revised and/or new versions
-of the GNU Lesser General Public License from time to time. Such new
-versions will be similar in spirit to the present version, but may
-differ in detail to address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Library as you received it specifies that a certain numbered version
-of the GNU Lesser General Public License "or any later version"
-applies to it, you have the option of following the terms and
-conditions either of that published version or of any later version
-published by the Free Software Foundation. If the Library as you
-received it does not specify a version number of the GNU Lesser
-General Public License, you may choose any version of the GNU Lesser
-General Public License ever published by the Free Software Foundation.
-
- If the Library as you received it specifies that a proxy can decide
-whether future versions of the GNU Lesser General Public License shall
-apply, that proxy's public statement of acceptance of any version is
-permanent authorization for you to choose that version for the
-Library.
diff --git a/lib/phpqrcode/README b/lib/phpqrcode/README
deleted file mode 100644
index a022fb5e7..000000000
--- a/lib/phpqrcode/README
+++ /dev/null
@@ -1,45 +0,0 @@
-This is PHP implementation of QR Code 2-D barcode generator. It is pure-php
-LGPL-licensed implementation based on C libqrencode by Kentaro Fukuchi.
-
-== LICENSING ==
-
-Copyright (C) 2010 by Dominik Dzienia
-
-This library is free software; you can redistribute it and/or modify it under
-the terms of the GNU Lesser General Public License as published by the Free
-Software Foundation; either version 3 of the License, or any later version.
-
-This library is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-PARTICULAR PURPOSE. See the GNU Lesser General Public License (LICENSE file)
-for more details.
-
-You should have received a copy of the GNU Lesser General Public License along
-with this library; if not, write to the Free Software Foundation, Inc., 51
-Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-== INSTALATION AND USAGE ==
-
- * INSTALL file
- * http://sourceforge.net/apps/mediawiki/phpqrcode/index.php?title=Main_Page
-
-== CONTACT ==
-
-Fell free to contact me via e-mail (deltalab at poczta dot fm) or using
-folowing project pages:
-
- * http://sourceforge.net/projects/phpqrcode/
- * http://phpqrcode.sourceforge.net/
-
-== ACKNOWLEDGMENTS ==
-
-Based on C libqrencode library (ver. 3.1.1)
-Copyright (C) 2006-2010 by Kentaro Fukuchi
-http://megaui.net/fukuchi/works/qrencode/index.en.html
-
-QR Code is registered trademarks of DENSO WAVE INCORPORATED in JAPAN and other
-countries.
-
-Reed-Solomon code encoder is written by Phil Karn, KA9Q.
-Copyright (C) 2002, 2003, 2004, 2006 Phil Karn, KA9Q
- \ No newline at end of file
diff --git a/lib/phpqrcode/VERSION b/lib/phpqrcode/VERSION
deleted file mode 100644
index 9f99279ea..000000000
--- a/lib/phpqrcode/VERSION
+++ /dev/null
@@ -1,2 +0,0 @@
-1.1.4
-2010100721 \ No newline at end of file
diff --git a/lib/phpqrcode/bindings/tcpdf/qrcode.php b/lib/phpqrcode/bindings/tcpdf/qrcode.php
deleted file mode 100644
index 9001e3a2e..000000000
--- a/lib/phpqrcode/bindings/tcpdf/qrcode.php
+++ /dev/null
@@ -1,2875 +0,0 @@
-<?php
-//============================================================+
-// File name : qrcode.php
-// Begin : 2010-03-22
-// Last Update : 2010-03-29
-// Version : 1.0.002
-// License : GNU LGPL v.3 (http://www.gnu.org/copyleft/lesser.html)
-// ----------------------------------------------------------------------------
-//
-// This library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; either
-// version 3 of the License, or any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-// or browse http://www.gnu.org/copyleft/lesser.html
-//
-// ----------------------------------------------------------------------------
-//
-// DESCRIPTION :
-//
-// Class to create QR-code arrays for TCPDF class.
-// QR Code symbol is a 2D barcode that can be scanned by
-// handy terminals such as a mobile phone with CCD.
-// The capacity of QR Code is up to 7000 digits or 4000
-// characters, and has high robustness.
-// This class supports QR Code model 2, described in
-// JIS (Japanese Industrial Standards) X0510:2004
-// or ISO/IEC 18004.
-// Currently the following features are not supported:
-// ECI and FNC1 mode, Micro QR Code, QR Code model 1,
-// Structured mode.
-//
-// This class is derived from the following projects:
-// ---------------------------------------------------------
-// "PHP QR Code encoder"
-// License: GNU-LGPLv3
-// Copyright (C) 2010 by Dominik Dzienia <deltalab at poczta dot fm>
-// http://phpqrcode.sourceforge.net/
-// https://sourceforge.net/projects/phpqrcode/
-//
-// The "PHP QR Code encoder" is based on
-// "C libqrencode library" (ver. 3.1.1)
-// License: GNU-LGPL 2.1
-// Copyright (C) 2006-2010 by Kentaro Fukuchi
-// http://megaui.net/fukuchi/works/qrencode/index.en.html
-//
-// Reed-Solomon code encoder is written by Phil Karn, KA9Q.
-// Copyright (C) 2002-2006 Phil Karn, KA9Q
-//
-// QR Code is registered trademark of DENSO WAVE INCORPORATED
-// http://www.denso-wave.com/qrcode/index-e.html
-// ---------------------------------------------------------
-//
-// Author: Nicola Asuni
-//
-// (c) Copyright 2010:
-// Nicola Asuni
-// Tecnick.com S.r.l.
-// Via della Pace, 11
-// 09044 Quartucciu (CA)
-// ITALY
-// www.tecnick.com
-//============================================================+
-
-/**
- * Class to create QR-code arrays for TCPDF class.
- * QR Code symbol is a 2D barcode that can be scanned by handy terminals such as a mobile phone with CCD.
- * The capacity of QR Code is up to 7000 digits or 4000 characters, and has high robustness.
- * This class supports QR Code model 2, described in JIS (Japanese Industrial Standards) X0510:2004 or ISO/IEC 18004.
- * Currently the following features are not supported: ECI and FNC1 mode, Micro QR Code, QR Code model 1, Structured mode.
- *
- * This class is derived from "PHP QR Code encoder" by Dominik Dzienia (http://phpqrcode.sourceforge.net/) based on "libqrencode C library 3.1.1." by Kentaro Fukuchi (http://megaui.net/fukuchi/works/qrencode/index.en.html), contains Reed-Solomon code written by Phil Karn, KA9Q. QR Code is registered trademark of DENSO WAVE INCORPORATED (http://www.denso-wave.com/qrcode/index-e.html).
- * Please read comments on this class source file for full copyright and license information.
- *
- * @package com.tecnick.tcpdf
- * @abstract Class for generating QR-code array for TCPDF.
- * @author Nicola Asuni
- * @copyright 2010 Nicola Asuni - Tecnick.com S.r.l (www.tecnick.com) Via Della Pace, 11 - 09044 - Quartucciu (CA) - ITALY - www.tecnick.com - [email protected]
- * @link http://www.tcpdf.org
- * @license http://www.gnu.org/copyleft/lesser.html LGPL
- * @version 1.0.002
- */
-
-// definitions
-if (!defined('QRCODEDEFS')) {
-
- /**
- * Indicate that definitions for this class are set
- */
- define('QRCODEDEFS', true);
-
- // -----------------------------------------------------
-
- // Encoding modes (characters which can be encoded in QRcode)
-
- /**
- * Encoding mode
- */
- define('QR_MODE_NL', -1);
-
- /**
- * Encoding mode numeric (0-9). 3 characters are encoded to 10bit length. In theory, 7089 characters or less can be stored in a QRcode.
- */
- define('QR_MODE_NM', 0);
-
- /**
- * Encoding mode alphanumeric (0-9A-Z $%*+-./:) 45characters. 2 characters are encoded to 11bit length. In theory, 4296 characters or less can be stored in a QRcode.
- */
- define('QR_MODE_AN', 1);
-
- /**
- * Encoding mode 8bit byte data. In theory, 2953 characters or less can be stored in a QRcode.
- */
- define('QR_MODE_8B', 2);
-
- /**
- * Encoding mode KANJI. A KANJI character (multibyte character) is encoded to 13bit length. In theory, 1817 characters or less can be stored in a QRcode.
- */
- define('QR_MODE_KJ', 3);
-
- /**
- * Encoding mode STRUCTURED (currently unsupported)
- */
- define('QR_MODE_ST', 4);
-
- // -----------------------------------------------------
-
- // Levels of error correction.
- // QRcode has a function of an error correcting for miss reading that white is black.
- // Error correcting is defined in 4 level as below.
-
- /**
- * Error correction level L : About 7% or less errors can be corrected.
- */
- define('QR_ECLEVEL_L', 0);
-
- /**
- * Error correction level M : About 15% or less errors can be corrected.
- */
- define('QR_ECLEVEL_M', 1);
-
- /**
- * Error correction level Q : About 25% or less errors can be corrected.
- */
- define('QR_ECLEVEL_Q', 2);
-
- /**
- * Error correction level H : About 30% or less errors can be corrected.
- */
- define('QR_ECLEVEL_H', 3);
-
- // -----------------------------------------------------
-
- // Version. Size of QRcode is defined as version.
- // Version is from 1 to 40.
- // Version 1 is 21*21 matrix. And 4 modules increases whenever 1 version increases.
- // So version 40 is 177*177 matrix.
-
- /**
- * Maximum QR Code version.
- */
- define('QRSPEC_VERSION_MAX', 40);
-
- /**
- * Maximum matrix size for maximum version (version 40 is 177*177 matrix).
- */
- define('QRSPEC_WIDTH_MAX', 177);
-
- // -----------------------------------------------------
-
- /**
- * Matrix index to get width from $capacity array.
- */
- define('QRCAP_WIDTH', 0);
-
- /**
- * Matrix index to get number of words from $capacity array.
- */
- define('QRCAP_WORDS', 1);
-
- /**
- * Matrix index to get remainder from $capacity array.
- */
- define('QRCAP_REMINDER', 2);
-
- /**
- * Matrix index to get error correction level from $capacity array.
- */
- define('QRCAP_EC', 3);
-
- // -----------------------------------------------------
-
- // Structure (currently usupported)
-
- /**
- * Number of header bits for structured mode
- */
- define('STRUCTURE_HEADER_BITS', 20);
-
- /**
- * Max number of symbols for structured mode
- */
- define('MAX_STRUCTURED_SYMBOLS', 16);
-
- // -----------------------------------------------------
-
- // Masks
-
- /**
- * Down point base value for case 1 mask pattern (concatenation of same color in a line or a column)
- */
- define('N1', 3);
-
- /**
- * Down point base value for case 2 mask pattern (module block of same color)
- */
- define('N2', 3);
-
- /**
- * Down point base value for case 3 mask pattern (1:1:3:1:1(dark:bright:dark:bright:dark)pattern in a line or a column)
- */
- define('N3', 40);
-
- /**
- * Down point base value for case 4 mask pattern (ration of dark modules in whole)
- */
- define('N4', 10);
-
- // -----------------------------------------------------
-
- // Optimization settings
-
- /**
- * if true, estimates best mask (spec. default, but extremally slow; set to false to significant performance boost but (propably) worst quality code
- */
- define('QR_FIND_BEST_MASK', true);
-
- /**
- * if false, checks all masks available, otherwise value tells count of masks need to be checked, mask id are got randomly
- */
- define('QR_FIND_FROM_RANDOM', 2);
-
- /**
- * when QR_FIND_BEST_MASK === false
- */
- define('QR_DEFAULT_MASK', 2);
-
- // -----------------------------------------------------
-
-} // end of definitions
-
-// #*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-
-if (!class_exists('QRcode', false)) {
-
- // for compaibility with PHP4
- if (!function_exists('str_split')) {
- /**
- * Convert a string to an array (needed for PHP4 compatibility)
- * @param string $string The input string.
- * @param int $split_length Maximum length of the chunk.
- * @return If the optional split_length parameter is specified, the returned array will be broken down into chunks with each being split_length in length, otherwise each chunk will be one character in length. FALSE is returned if split_length is less than 1. If the split_length length exceeds the length of string , the entire string is returned as the first (and only) array element.
- */
- function str_split($string, $split_length=1) {
- if ((strlen($string) > $split_length) OR (!$split_length)) {
- do {
- $c = strlen($string);
- $parts[] = substr($string, 0, $split_length);
- $string = substr($string, $split_length);
- } while ($string !== false);
- } else {
- $parts = array($string);
- }
- return $parts;
- }
- }
-
- // #####################################################
-
- /**
- * Class to create QR-code arrays for TCPDF class.
- * QR Code symbol is a 2D barcode that can be scanned by handy terminals such as a mobile phone with CCD.
- * The capacity of QR Code is up to 7000 digits or 4000 characters, and has high robustness.
- * This class supports QR Code model 2, described in JIS (Japanese Industrial Standards) X0510:2004 or ISO/IEC 18004.
- * Currently the following features are not supported: ECI and FNC1 mode, Micro QR Code, QR Code model 1, Structured mode.
- *
- * This class is derived from "PHP QR Code encoder" by Dominik Dzienia (http://phpqrcode.sourceforge.net/) based on "libqrencode C library 3.1.1." by Kentaro Fukuchi (http://megaui.net/fukuchi/works/qrencode/index.en.html), contains Reed-Solomon code written by Phil Karn, KA9Q. QR Code is registered trademark of DENSO WAVE INCORPORATED (http://www.denso-wave.com/qrcode/index-e.html).
- * Please read comments on this class source file for full copyright and license information.
- *
- * @name QRcode
- * @package com.tecnick.tcpdf
- * @abstract Class for generating QR-code array for TCPDF.
- * @author Nicola Asuni
- * @copyright 2010 Nicola Asuni - Tecnick.com S.r.l (www.tecnick.com) Via Della Pace, 11 - 09044 - Quartucciu (CA) - ITALY - www.tecnick.com - [email protected]
- * @link http://www.tcpdf.org
- * @license http://www.gnu.org/copyleft/lesser.html LGPL
- * @version 1.0.002
- */
- class QRcode {
-
- /**
- * @var barcode array to be returned which is readable by TCPDF
- * @access protected
- */
- protected $barcode_array = array();
-
- /**
- * @var QR code version. Size of QRcode is defined as version. Version is from 1 to 40. Version 1 is 21*21 matrix. And 4 modules increases whenever 1 version increases. So version 40 is 177*177 matrix.
- * @access protected
- */
- protected $version = 0;
-
- /**
- * @var Levels of error correction. See definitions for possible values.
- * @access protected
- */
- protected $level = QR_ECLEVEL_L;
-
- /**
- * @var Encoding mode
- * @access protected
- */
- protected $hint = QR_MODE_8B;
-
- /**
- * @var if true the input string will be converted to uppercase
- * @access protected
- */
- protected $casesensitive = true;
-
- /**
- * @var structured QR code (not supported yet)
- * @access protected
- */
- protected $structured = 0;
-
- /**
- * @var mask data
- * @access protected
- */
- protected $data;
-
- // FrameFiller
-
- /**
- * @var width
- * @access protected
- */
- protected $width;
-
- /**
- * @var frame
- * @access protected
- */
- protected $frame;
-
- /**
- * @var X position of bit
- * @access protected
- */
- protected $x;
-
- /**
- * @var Y position of bit
- * @access protected
- */
- protected $y;
-
- /**
- * @var direction
- * @access protected
- */
- protected $dir;
-
- /**
- * @var single bit
- * @access protected
- */
- protected $bit;
-
- // ---- QRrawcode ----
-
- /**
- * @var data code
- * @access protected
- */
- protected $datacode = array();
-
- /**
- * @var error correction code
- * @access protected
- */
- protected $ecccode = array();
-
- /**
- * @var blocks
- * @access protected
- */
- protected $blocks;
-
- /**
- * @var Reed-Solomon blocks
- * @access protected
- */
- protected $rsblocks = array(); //of RSblock
-
- /**
- * @var counter
- * @access protected
- */
- protected $count;
-
- /**
- * @var data length
- * @access protected
- */
- protected $dataLength;
-
- /**
- * @var error correction length
- * @access protected
- */
- protected $eccLength;
-
- /**
- * @var b1
- * @access protected
- */
- protected $b1;
-
- // ---- QRmask ----
-
- /**
- * @var run length
- * @access protected
- */
- protected $runLength = array();
-
- // ---- QRsplit ----
-
- /**
- * @var input data string
- * @access protected
- */
- protected $dataStr = '';
-
- /**
- * @var input items
- * @access protected
- */
- protected $items;
-
- // Reed-Solomon items
-
- /**
- * @var Reed-Solomon items
- * @access protected
- */
- protected $rsitems = array();
-
- /**
- * @var array of frames
- * @access protected
- */
- protected $frames = array();
-
- /**
- * @var alphabet-numeric convesion table
- * @access protected
- */
- protected $anTable = array(
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, //
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, //
- 36, -1, -1, -1, 37, 38, -1, -1, -1, -1, 39, 40, -1, 41, 42, 43, //
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 44, -1, -1, -1, -1, -1, //
- -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, //
- 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, -1, //
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, //
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 //
- );
-
- /**
- * @var array Table of the capacity of symbols
- * See Table 1 (pp.13) and Table 12-16 (pp.30-36), JIS X0510:2004.
- * @access protected
- */
- protected $capacity = array(
- array( 0, 0, 0, array( 0, 0, 0, 0)), //
- array( 21, 26, 0, array( 7, 10, 13, 17)), // 1
- array( 25, 44, 7, array( 10, 16, 22, 28)), //
- array( 29, 70, 7, array( 15, 26, 36, 44)), //
- array( 33, 100, 7, array( 20, 36, 52, 64)), //
- array( 37, 134, 7, array( 26, 48, 72, 88)), // 5
- array( 41, 172, 7, array( 36, 64, 96, 112)), //
- array( 45, 196, 0, array( 40, 72, 108, 130)), //
- array( 49, 242, 0, array( 48, 88, 132, 156)), //
- array( 53, 292, 0, array( 60, 110, 160, 192)), //
- array( 57, 346, 0, array( 72, 130, 192, 224)), // 10
- array( 61, 404, 0, array( 80, 150, 224, 264)), //
- array( 65, 466, 0, array( 96, 176, 260, 308)), //
- array( 69, 532, 0, array( 104, 198, 288, 352)), //
- array( 73, 581, 3, array( 120, 216, 320, 384)), //
- array( 77, 655, 3, array( 132, 240, 360, 432)), // 15
- array( 81, 733, 3, array( 144, 280, 408, 480)), //
- array( 85, 815, 3, array( 168, 308, 448, 532)), //
- array( 89, 901, 3, array( 180, 338, 504, 588)), //
- array( 93, 991, 3, array( 196, 364, 546, 650)), //
- array( 97, 1085, 3, array( 224, 416, 600, 700)), // 20
- array(101, 1156, 4, array( 224, 442, 644, 750)), //
- array(105, 1258, 4, array( 252, 476, 690, 816)), //
- array(109, 1364, 4, array( 270, 504, 750, 900)), //
- array(113, 1474, 4, array( 300, 560, 810, 960)), //
- array(117, 1588, 4, array( 312, 588, 870, 1050)), // 25
- array(121, 1706, 4, array( 336, 644, 952, 1110)), //
- array(125, 1828, 4, array( 360, 700, 1020, 1200)), //
- array(129, 1921, 3, array( 390, 728, 1050, 1260)), //
- array(133, 2051, 3, array( 420, 784, 1140, 1350)), //
- array(137, 2185, 3, array( 450, 812, 1200, 1440)), // 30
- array(141, 2323, 3, array( 480, 868, 1290, 1530)), //
- array(145, 2465, 3, array( 510, 924, 1350, 1620)), //
- array(149, 2611, 3, array( 540, 980, 1440, 1710)), //
- array(153, 2761, 3, array( 570, 1036, 1530, 1800)), //
- array(157, 2876, 0, array( 570, 1064, 1590, 1890)), // 35
- array(161, 3034, 0, array( 600, 1120, 1680, 1980)), //
- array(165, 3196, 0, array( 630, 1204, 1770, 2100)), //
- array(169, 3362, 0, array( 660, 1260, 1860, 2220)), //
- array(173, 3532, 0, array( 720, 1316, 1950, 2310)), //
- array(177, 3706, 0, array( 750, 1372, 2040, 2430)) // 40
- );
-
- /**
- * @var array Length indicator
- * @access protected
- */
- protected $lengthTableBits = array(
- array(10, 12, 14),
- array( 9, 11, 13),
- array( 8, 16, 16),
- array( 8, 10, 12)
- );
-
- /**
- * @var array Table of the error correction code (Reed-Solomon block)
- * See Table 12-16 (pp.30-36), JIS X0510:2004.
- * @access protected
- */
- protected $eccTable = array(
- array(array( 0, 0), array( 0, 0), array( 0, 0), array( 0, 0)), //
- array(array( 1, 0), array( 1, 0), array( 1, 0), array( 1, 0)), // 1
- array(array( 1, 0), array( 1, 0), array( 1, 0), array( 1, 0)), //
- array(array( 1, 0), array( 1, 0), array( 2, 0), array( 2, 0)), //
- array(array( 1, 0), array( 2, 0), array( 2, 0), array( 4, 0)), //
- array(array( 1, 0), array( 2, 0), array( 2, 2), array( 2, 2)), // 5
- array(array( 2, 0), array( 4, 0), array( 4, 0), array( 4, 0)), //
- array(array( 2, 0), array( 4, 0), array( 2, 4), array( 4, 1)), //
- array(array( 2, 0), array( 2, 2), array( 4, 2), array( 4, 2)), //
- array(array( 2, 0), array( 3, 2), array( 4, 4), array( 4, 4)), //
- array(array( 2, 2), array( 4, 1), array( 6, 2), array( 6, 2)), // 10
- array(array( 4, 0), array( 1, 4), array( 4, 4), array( 3, 8)), //
- array(array( 2, 2), array( 6, 2), array( 4, 6), array( 7, 4)), //
- array(array( 4, 0), array( 8, 1), array( 8, 4), array(12, 4)), //
- array(array( 3, 1), array( 4, 5), array(11, 5), array(11, 5)), //
- array(array( 5, 1), array( 5, 5), array( 5, 7), array(11, 7)), // 15
- array(array( 5, 1), array( 7, 3), array(15, 2), array( 3, 13)), //
- array(array( 1, 5), array(10, 1), array( 1, 15), array( 2, 17)), //
- array(array( 5, 1), array( 9, 4), array(17, 1), array( 2, 19)), //
- array(array( 3, 4), array( 3, 11), array(17, 4), array( 9, 16)), //
- array(array( 3, 5), array( 3, 13), array(15, 5), array(15, 10)), // 20
- array(array( 4, 4), array(17, 0), array(17, 6), array(19, 6)), //
- array(array( 2, 7), array(17, 0), array( 7, 16), array(34, 0)), //
- array(array( 4, 5), array( 4, 14), array(11, 14), array(16, 14)), //
- array(array( 6, 4), array( 6, 14), array(11, 16), array(30, 2)), //
- array(array( 8, 4), array( 8, 13), array( 7, 22), array(22, 13)), // 25
- array(array(10, 2), array(19, 4), array(28, 6), array(33, 4)), //
- array(array( 8, 4), array(22, 3), array( 8, 26), array(12, 28)), //
- array(array( 3, 10), array( 3, 23), array( 4, 31), array(11, 31)), //
- array(array( 7, 7), array(21, 7), array( 1, 37), array(19, 26)), //
- array(array( 5, 10), array(19, 10), array(15, 25), array(23, 25)), // 30
- array(array(13, 3), array( 2, 29), array(42, 1), array(23, 28)), //
- array(array(17, 0), array(10, 23), array(10, 35), array(19, 35)), //
- array(array(17, 1), array(14, 21), array(29, 19), array(11, 46)), //
- array(array(13, 6), array(14, 23), array(44, 7), array(59, 1)), //
- array(array(12, 7), array(12, 26), array(39, 14), array(22, 41)), // 35
- array(array( 6, 14), array( 6, 34), array(46, 10), array( 2, 64)), //
- array(array(17, 4), array(29, 14), array(49, 10), array(24, 46)), //
- array(array( 4, 18), array(13, 32), array(48, 14), array(42, 32)), //
- array(array(20, 4), array(40, 7), array(43, 22), array(10, 67)), //
- array(array(19, 6), array(18, 31), array(34, 34), array(20, 61)) // 40
- );
-
- /**
- * @var array Positions of alignment patterns.
- * This array includes only the second and the third position of the alignment patterns. Rest of them can be calculated from the distance between them.
- * See Table 1 in Appendix E (pp.71) of JIS X0510:2004.
- * @access protected
- */
- protected $alignmentPattern = array(
- array( 0, 0),
- array( 0, 0), array(18, 0), array(22, 0), array(26, 0), array(30, 0), // 1- 5
- array(34, 0), array(22, 38), array(24, 42), array(26, 46), array(28, 50), // 6-10
- array(30, 54), array(32, 58), array(34, 62), array(26, 46), array(26, 48), // 11-15
- array(26, 50), array(30, 54), array(30, 56), array(30, 58), array(34, 62), // 16-20
- array(28, 50), array(26, 50), array(30, 54), array(28, 54), array(32, 58), // 21-25
- array(30, 58), array(34, 62), array(26, 50), array(30, 54), array(26, 52), // 26-30
- array(30, 56), array(34, 60), array(30, 58), array(34, 62), array(30, 54), // 31-35
- array(24, 50), array(28, 54), array(32, 58), array(26, 54), array(30, 58) // 35-40
- );
-
- /**
- * @var array Version information pattern (BCH coded).
- * See Table 1 in Appendix D (pp.68) of JIS X0510:2004.
- * size: [QRSPEC_VERSION_MAX - 6]
- * @access protected
- */
- protected $versionPattern = array(
- 0x07c94, 0x085bc, 0x09a99, 0x0a4d3, 0x0bbf6, 0x0c762, 0x0d847, 0x0e60d, //
- 0x0f928, 0x10b78, 0x1145d, 0x12a17, 0x13532, 0x149a6, 0x15683, 0x168c9, //
- 0x177ec, 0x18ec4, 0x191e1, 0x1afab, 0x1b08e, 0x1cc1a, 0x1d33f, 0x1ed75, //
- 0x1f250, 0x209d5, 0x216f0, 0x228ba, 0x2379f, 0x24b0b, 0x2542e, 0x26a64, //
- 0x27541, 0x28c69
- );
-
- /**
- * @var array Format information
- * @access protected
- */
- protected $formatInfo = array(
- array(0x77c4, 0x72f3, 0x7daa, 0x789d, 0x662f, 0x6318, 0x6c41, 0x6976), //
- array(0x5412, 0x5125, 0x5e7c, 0x5b4b, 0x45f9, 0x40ce, 0x4f97, 0x4aa0), //
- array(0x355f, 0x3068, 0x3f31, 0x3a06, 0x24b4, 0x2183, 0x2eda, 0x2bed), //
- array(0x1689, 0x13be, 0x1ce7, 0x19d0, 0x0762, 0x0255, 0x0d0c, 0x083b) //
- );
-
-
- // -------------------------------------------------
- // -------------------------------------------------
-
-
- /**
- * This is the class constructor.
- * Creates a QRcode object
- * @param string $code code to represent using QRcode
- * @param string $eclevel error level: <ul><li>L : About 7% or less errors can be corrected.</li><li>M : About 15% or less errors can be corrected.</li><li>Q : About 25% or less errors can be corrected.</li><li>H : About 30% or less errors can be corrected.</li></ul>
- * @access public
- * @since 1.0.000
- */
- public function __construct($code, $eclevel = 'L') {
- $barcode_array = array();
- if ((is_null($code)) OR ($code == '\0') OR ($code == '')) {
- return false;
- }
- // set error correction level
- $this->level = array_search($eclevel, array('L', 'M', 'Q', 'H'));
- if ($this->level === false) {
- $this->level = QR_ECLEVEL_L;
- }
- if (($this->hint != QR_MODE_8B) AND ($this->hint != QR_MODE_KJ)) {
- return false;
- }
- if (($this->version < 0) OR ($this->version > QRSPEC_VERSION_MAX)) {
- return false;
- }
- $this->items = array();
- $this->encodeString($code);
- $qrTab = $this->binarize($this->data);
- $size = count($qrTab);
- $barcode_array['num_rows'] = $size;
- $barcode_array['num_cols'] = $size;
- $barcode_array['bcode'] = array();
- foreach ($qrTab as $line) {
- $arrAdd = array();
- foreach (str_split($line) as $char) {
- $arrAdd[] = ($char=='1')?1:0;
- }
- $barcode_array['bcode'][] = $arrAdd;
- }
- $this->barcode_array = $barcode_array;
- }
-
- /**
- * Returns a barcode array which is readable by TCPDF
- * @return array barcode array readable by TCPDF;
- * @access public
- */
- public function getBarcodeArray() {
- return $this->barcode_array;
- }
-
- /**
- * Convert the frame in binary form
- * @param array $frame array to binarize
- * @return array frame in binary form
- */
- protected function binarize($frame) {
- $len = count($frame);
- // the frame is square (width = height)
- foreach ($frame as &$frameLine) {
- for ($i=0; $i<$len; $i++) {
- $frameLine[$i] = (ord($frameLine[$i])&1)?'1':'0';
- }
- }
- return $frame;
- }
-
- /**
- * Encode the input string to QR code
- * @param string $string input string to encode
- */
- protected function encodeString($string) {
- $this->dataStr = $string;
- if (!$this->casesensitive) {
- $this->toUpper();
- }
- $ret = $this->splitString();
- if ($ret < 0) {
- return NULL;
- }
- $this->encodeMask(-1);
- }
-
- /**
- * Encode mask
- * @param int $mask masking mode
- */
- protected function encodeMask($mask) {
- $spec = array(0, 0, 0, 0, 0);
- $this->datacode = $this->getByteStream($this->items);
- if (is_null($this->datacode)) {
- return NULL;
- }
- $spec = $this->getEccSpec($this->version, $this->level, $spec);
- $this->b1 = $this->rsBlockNum1($spec);
- $this->dataLength = $this->rsDataLength($spec);
- $this->eccLength = $this->rsEccLength($spec);
- $this->ecccode = array_fill(0, $this->eccLength, 0);
- $this->blocks = $this->rsBlockNum($spec);
- $ret = $this->init($spec);
- if ($ret < 0) {
- return NULL;
- }
- $this->count = 0;
- $this->width = $this->getWidth($this->version);
- $this->frame = $this->newFrame($this->version);
- $this->x = $this->width - 1;
- $this->y = $this->width - 1;
- $this->dir = -1;
- $this->bit = -1;
- // inteleaved data and ecc codes
- for ($i=0; $i < ($this->dataLength + $this->eccLength); $i++) {
- $code = $this->getCode();
- $bit = 0x80;
- for ($j=0; $j<8; $j++) {
- $addr = $this->getNextPosition();
- $this->setFrameAt($addr, 0x02 | (($bit & $code) != 0));
- $bit = $bit >> 1;
- }
- }
- // remainder bits
- $j = $this->getRemainder($this->version);
- for ($i=0; $i<$j; $i++) {
- $addr = $this->getNextPosition();
- $this->setFrameAt($addr, 0x02);
- }
- // masking
- $this->runLength = array_fill(0, QRSPEC_WIDTH_MAX + 1, 0);
- if ($mask < 0) {
- if (QR_FIND_BEST_MASK) {
- $masked = $this->mask($this->width, $this->frame, $this->level);
- } else {
- $masked = $this->makeMask($this->width, $this->frame, (intval(QR_DEFAULT_MASK) % 8), $this->level);
- }
- } else {
- $masked = $this->makeMask($this->width, $this->frame, $mask, $this->level);
- }
- if ($masked == NULL) {
- return NULL;
- }
- $this->data = $masked;
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - -
-
- // FrameFiller
-
- /**
- * Set frame value at specified position
- * @param array $at x,y position
- * @param int $val value of the character to set
- */
- protected function setFrameAt($at, $val) {
- $this->frame[$at['y']][$at['x']] = chr($val);
- }
-
- /**
- * Get frame value at specified position
- * @param array $at x,y position
- * @return value at specified position
- */
- protected function getFrameAt($at) {
- return ord($this->frame[$at['y']][$at['x']]);
- }
-
- /**
- * Return the next frame position
- * @return array of x,y coordinates
- */
- protected function getNextPosition() {
- do {
- if ($this->bit == -1) {
- $this->bit = 0;
- return array('x'=>$this->x, 'y'=>$this->y);
- }
- $x = $this->x;
- $y = $this->y;
- $w = $this->width;
- if ($this->bit == 0) {
- $x--;
- $this->bit++;
- } else {
- $x++;
- $y += $this->dir;
- $this->bit--;
- }
- if ($this->dir < 0) {
- if ($y < 0) {
- $y = 0;
- $x -= 2;
- $this->dir = 1;
- if ($x == 6) {
- $x--;
- $y = 9;
- }
- }
- } else {
- if ($y == $w) {
- $y = $w - 1;
- $x -= 2;
- $this->dir = -1;
- if ($x == 6) {
- $x--;
- $y -= 8;
- }
- }
- }
- if (($x < 0) OR ($y < 0)) {
- return NULL;
- }
- $this->x = $x;
- $this->y = $y;
- } while(ord($this->frame[$y][$x]) & 0x80);
- return array('x'=>$x, 'y'=>$y);
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - -
-
- // QRrawcode
-
- /**
- * Initialize code.
- * @param array $spec array of ECC specification
- * @return 0 in case of success, -1 in case of error
- */
- protected function init($spec) {
- $dl = $this->rsDataCodes1($spec);
- $el = $this->rsEccCodes1($spec);
- $rs = $this->init_rs(8, 0x11d, 0, 1, $el, 255 - $dl - $el);
- $blockNo = 0;
- $dataPos = 0;
- $eccPos = 0;
- $endfor = $this->rsBlockNum1($spec);
- for ($i=0; $i < $endfor; ++$i) {
- $ecc = array_slice($this->ecccode, $eccPos);
- $this->rsblocks[$blockNo] = array();
- $this->rsblocks[$blockNo]['dataLength'] = $dl;
- $this->rsblocks[$blockNo]['data'] = array_slice($this->datacode, $dataPos);
- $this->rsblocks[$blockNo]['eccLength'] = $el;
- $ecc = $this->encode_rs_char($rs, $this->rsblocks[$blockNo]['data'], $ecc);
- $this->rsblocks[$blockNo]['ecc'] = $ecc;
- $this->ecccode = array_merge(array_slice($this->ecccode,0, $eccPos), $ecc);
- $dataPos += $dl;
- $eccPos += $el;
- $blockNo++;
- }
- if ($this->rsBlockNum2($spec) == 0) {
- return 0;
- }
- $dl = $this->rsDataCodes2($spec);
- $el = $this->rsEccCodes2($spec);
- $rs = $this->init_rs(8, 0x11d, 0, 1, $el, 255 - $dl - $el);
- if ($rs == NULL) {
- return -1;
- }
- $endfor = $this->rsBlockNum2($spec);
- for ($i=0; $i < $endfor; ++$i) {
- $ecc = array_slice($this->ecccode, $eccPos);
- $this->rsblocks[$blockNo] = array();
- $this->rsblocks[$blockNo]['dataLength'] = $dl;
- $this->rsblocks[$blockNo]['data'] = array_slice($this->datacode, $dataPos);
- $this->rsblocks[$blockNo]['eccLength'] = $el;
- $ecc = $this->encode_rs_char($rs, $this->rsblocks[$blockNo]['data'], $ecc);
- $this->rsblocks[$blockNo]['ecc'] = $ecc;
- $this->ecccode = array_merge(array_slice($this->ecccode, 0, $eccPos), $ecc);
- $dataPos += $dl;
- $eccPos += $el;
- $blockNo++;
- }
- return 0;
- }
-
- /**
- * Return Reed-Solomon block code.
- * @return array rsblocks
- */
- protected function getCode() {
- if ($this->count < $this->dataLength) {
- $row = $this->count % $this->blocks;
- $col = $this->count / $this->blocks;
- if ($col >= $this->rsblocks[0]['dataLength']) {
- $row += $this->b1;
- }
- $ret = $this->rsblocks[$row]['data'][$col];
- } elseif ($this->count < $this->dataLength + $this->eccLength) {
- $row = ($this->count - $this->dataLength) % $this->blocks;
- $col = ($this->count - $this->dataLength) / $this->blocks;
- $ret = $this->rsblocks[$row]['ecc'][$col];
- } else {
- return 0;
- }
- $this->count++;
- return $ret;
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - -
-
- // QRmask
-
- /**
- * Write Format Information on frame and returns the number of black bits
- * @param int $width frame width
- * @param array $frame frame
- * @param array $mask masking mode
- * @param int $level error correction level
- * @return int blacks
- */
- protected function writeFormatInformation($width, &$frame, $mask, $level) {
- $blacks = 0;
- $format = $this->getFormatInfo($mask, $level);
- for ($i=0; $i<8; ++$i) {
- if ($format & 1) {
- $blacks += 2;
- $v = 0x85;
- } else {
- $v = 0x84;
- }
- $frame[8][$width - 1 - $i] = chr($v);
- if ($i < 6) {
- $frame[$i][8] = chr($v);
- } else {
- $frame[$i + 1][8] = chr($v);
- }
- $format = $format >> 1;
- }
- for ($i=0; $i<7; ++$i) {
- if ($format & 1) {
- $blacks += 2;
- $v = 0x85;
- } else {
- $v = 0x84;
- }
- $frame[$width - 7 + $i][8] = chr($v);
- if ($i == 0) {
- $frame[8][7] = chr($v);
- } else {
- $frame[8][6 - $i] = chr($v);
- }
- $format = $format >> 1;
- }
- return $blacks;
- }
-
- /**
- * mask0
- * @param int $x X position
- * @param int $y Y position
- * @return int mask
- */
- protected function mask0($x, $y) {
- return ($x + $y) & 1;
- }
-
- /**
- * mask1
- * @param int $x X position
- * @param int $y Y position
- * @return int mask
- */
- protected function mask1($x, $y) {
- return ($y & 1);
- }
-
- /**
- * mask2
- * @param int $x X position
- * @param int $y Y position
- * @return int mask
- */
- protected function mask2($x, $y) {
- return ($x % 3);
- }
-
- /**
- * mask3
- * @param int $x X position
- * @param int $y Y position
- * @return int mask
- */
- protected function mask3($x, $y) {
- return ($x + $y) % 3;
- }
-
- /**
- * mask4
- * @param int $x X position
- * @param int $y Y position
- * @return int mask
- */
- protected function mask4($x, $y) {
- return (((int)($y / 2)) + ((int)($x / 3))) & 1;
- }
-
- /**
- * mask5
- * @param int $x X position
- * @param int $y Y position
- * @return int mask
- */
- protected function mask5($x, $y) {
- return (($x * $y) & 1) + ($x * $y) % 3;
- }
-
- /**
- * mask6
- * @param int $x X position
- * @param int $y Y position
- * @return int mask
- */
- protected function mask6($x, $y) {
- return ((($x * $y) & 1) + ($x * $y) % 3) & 1;
- }
-
- /**
- * mask7
- * @param int $x X position
- * @param int $y Y position
- * @return int mask
- */
- protected function mask7($x, $y) {
- return ((($x * $y) % 3) + (($x + $y) & 1)) & 1;
- }
-
- /**
- * Return bitmask
- * @param int $maskNo mask number
- * @param int $width width
- * @param array $frame frame
- * @return array bitmask
- */
- protected function generateMaskNo($maskNo, $width, $frame) {
- $bitMask = array_fill(0, $width, array_fill(0, $width, 0));
- for ($y=0; $y<$width; ++$y) {
- for ($x=0; $x<$width; ++$x) {
- if (ord($frame[$y][$x]) & 0x80) {
- $bitMask[$y][$x] = 0;
- } else {
- $maskFunc = call_user_func(array($this, 'mask'.$maskNo), $x, $y);
- $bitMask[$y][$x] = ($maskFunc == 0)?1:0;
- }
- }
- }
- return $bitMask;
- }
-
- /**
- * makeMaskNo
- * @param int $maskNo
- * @param int $width
- * @param int $s
- * @param int $d
- * @param boolean $maskGenOnly
- * @return int b
- */
- protected function makeMaskNo($maskNo, $width, $s, &$d, $maskGenOnly=false) {
- $b = 0;
- $bitMask = array();
- $bitMask = $this->generateMaskNo($maskNo, $width, $s);
- if ($maskGenOnly) {
- return;
- }
- $d = $s;
- for ($y=0; $y<$width; ++$y) {
- for ($x=0; $x<$width; ++$x) {
- if ($bitMask[$y][$x] == 1) {
- $d[$y][$x] = chr(ord($s[$y][$x]) ^ (int)$bitMask[$y][$x]);
- }
- $b += (int)(ord($d[$y][$x]) & 1);
- }
- }
- return $b;
- }
-
- /**
- * makeMask
- * @param int $width
- * @param array $frame
- * @param int $maskNo
- * @param int $level
- * @return array mask
- */
- protected function makeMask($width, $frame, $maskNo, $level) {
- $masked = array_fill(0, $width, str_repeat("\0", $width));
- $this->makeMaskNo($maskNo, $width, $frame, $masked);
- $this->writeFormatInformation($width, $masked, $maskNo, $level);
- return $masked;
- }
-
- /**
- * calcN1N3
- * @param int $length
- * @return int demerit
- */
- protected function calcN1N3($length) {
- $demerit = 0;
- for ($i=0; $i<$length; ++$i) {
- if ($this->runLength[$i] >= 5) {
- $demerit += (N1 + ($this->runLength[$i] - 5));
- }
- if ($i & 1) {
- if (($i >= 3) AND ($i < ($length-2)) AND ($this->runLength[$i] % 3 == 0)) {
- $fact = (int)($this->runLength[$i] / 3);
- if (($this->runLength[$i-2] == $fact)
- AND ($this->runLength[$i-1] == $fact)
- AND ($this->runLength[$i+1] == $fact)
- AND ($this->runLength[$i+2] == $fact)) {
- if (($this->runLength[$i-3] < 0) OR ($this->runLength[$i-3] >= (4 * $fact))) {
- $demerit += N3;
- } elseif ((($i+3) >= $length) OR ($this->runLength[$i+3] >= (4 * $fact))) {
- $demerit += N3;
- }
- }
- }
- }
- }
- return $demerit;
- }
-
- /**
- * evaluateSymbol
- * @param int $width
- * @param array $frame
- * @return int demerit
- */
- protected function evaluateSymbol($width, $frame) {
- $head = 0;
- $demerit = 0;
- for ($y=0; $y<$width; ++$y) {
- $head = 0;
- $this->runLength[0] = 1;
- $frameY = $frame[$y];
- if ($y > 0) {
- $frameYM = $frame[$y-1];
- }
- for ($x=0; $x<$width; ++$x) {
- if (($x > 0) AND ($y > 0)) {
- $b22 = ord($frameY[$x]) & ord($frameY[$x-1]) & ord($frameYM[$x]) & ord($frameYM[$x-1]);
- $w22 = ord($frameY[$x]) | ord($frameY[$x-1]) | ord($frameYM[$x]) | ord($frameYM[$x-1]);
- if (($b22 | ($w22 ^ 1)) & 1) {
- $demerit += N2;
- }
- }
- if (($x == 0) AND (ord($frameY[$x]) & 1)) {
- $this->runLength[0] = -1;
- $head = 1;
- $this->runLength[$head] = 1;
- } elseif ($x > 0) {
- if ((ord($frameY[$x]) ^ ord($frameY[$x-1])) & 1) {
- $head++;
- $this->runLength[$head] = 1;
- } else {
- $this->runLength[$head]++;
- }
- }
- }
- $demerit += $this->calcN1N3($head+1);
- }
- for ($x=0; $x<$width; ++$x) {
- $head = 0;
- $this->runLength[0] = 1;
- for ($y=0; $y<$width; ++$y) {
- if (($y == 0) AND (ord($frame[$y][$x]) & 1)) {
- $this->runLength[0] = -1;
- $head = 1;
- $this->runLength[$head] = 1;
- } elseif ($y > 0) {
- if ((ord($frame[$y][$x]) ^ ord($frame[$y-1][$x])) & 1) {
- $head++;
- $this->runLength[$head] = 1;
- } else {
- $this->runLength[$head]++;
- }
- }
- }
- $demerit += $this->calcN1N3($head+1);
- }
- return $demerit;
- }
-
- /**
- * mask
- * @param int $width
- * @param array $frame
- * @param int $level
- * @return array best mask
- */
- protected function mask($width, $frame, $level) {
- $minDemerit = PHP_INT_MAX;
- $bestMaskNum = 0;
- $bestMask = array();
- $checked_masks = array(0, 1, 2, 3, 4, 5, 6, 7);
- if (QR_FIND_FROM_RANDOM !== false) {
- $howManuOut = 8 - (QR_FIND_FROM_RANDOM % 9);
- for ($i = 0; $i < $howManuOut; ++$i) {
- $remPos = rand (0, count($checked_masks)-1);
- unset($checked_masks[$remPos]);
- $checked_masks = array_values($checked_masks);
- }
- }
- $bestMask = $frame;
- foreach ($checked_masks as $i) {
- $mask = array_fill(0, $width, str_repeat("\0", $width));
- $demerit = 0;
- $blacks = 0;
- $blacks = $this->makeMaskNo($i, $width, $frame, $mask);
- $blacks += $this->writeFormatInformation($width, $mask, $i, $level);
- $blacks = (int)(100 * $blacks / ($width * $width));
- $demerit = (int)((int)(abs($blacks - 50) / 5) * N4);
- $demerit += $this->evaluateSymbol($width, $mask);
- if ($demerit < $minDemerit) {
- $minDemerit = $demerit;
- $bestMask = $mask;
- $bestMaskNum = $i;
- }
- }
- return $bestMask;
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - -
-
- // QRsplit
-
- /**
- * Return true if the character at specified position is a number
- * @param string $str string
- * @param int $pos characted position
- * @return boolean true of false
- */
- protected function isdigitat($str, $pos) {
- if ($pos >= strlen($str)) {
- return false;
- }
- return ((ord($str[$pos]) >= ord('0'))&&(ord($str[$pos]) <= ord('9')));
- }
-
- /**
- * Return true if the character at specified position is an alphanumeric character
- * @param string $str string
- * @param int $pos characted position
- * @return boolean true of false
- */
- protected function isalnumat($str, $pos) {
- if ($pos >= strlen($str)) {
- return false;
- }
- return ($this->lookAnTable(ord($str[$pos])) >= 0);
- }
-
- /**
- * identifyMode
- * @param int $pos
- * @return int mode
- */
- protected function identifyMode($pos) {
- if ($pos >= strlen($this->dataStr)) {
- return QR_MODE_NL;
- }
- $c = $this->dataStr[$pos];
- if ($this->isdigitat($this->dataStr, $pos)) {
- return QR_MODE_NM;
- } elseif ($this->isalnumat($this->dataStr, $pos)) {
- return QR_MODE_AN;
- } elseif ($this->hint == QR_MODE_KJ) {
- if ($pos+1 < strlen($this->dataStr)) {
- $d = $this->dataStr[$pos+1];
- $word = (ord($c) << 8) | ord($d);
- if (($word >= 0x8140 && $word <= 0x9ffc) OR ($word >= 0xe040 && $word <= 0xebbf)) {
- return QR_MODE_KJ;
- }
- }
- }
- return QR_MODE_8B;
- }
-
- /**
- * eatNum
- * @return int run
- */
- protected function eatNum() {
- $ln = $this->lengthIndicator(QR_MODE_NM, $this->version);
- $p = 0;
- while($this->isdigitat($this->dataStr, $p)) {
- $p++;
- }
- $run = $p;
- $mode = $this->identifyMode($p);
- if ($mode == QR_MODE_8B) {
- $dif = $this->estimateBitsModeNum($run) + 4 + $ln
- + $this->estimateBitsMode8(1) // + 4 + l8
- - $this->estimateBitsMode8($run + 1); // - 4 - l8
- if ($dif > 0) {
- return $this->eat8();
- }
- }
- if ($mode == QR_MODE_AN) {
- $dif = $this->estimateBitsModeNum($run) + 4 + $ln
- + $this->estimateBitsModeAn(1) // + 4 + la
- - $this->estimateBitsModeAn($run + 1);// - 4 - la
- if ($dif > 0) {
- return $this->eatAn();
- }
- }
- $this->items = $this->appendNewInputItem($this->items, QR_MODE_NM, $run, str_split($this->dataStr));
- return $run;
- }
-
- /**
- * eatAn
- * @return int run
- */
- protected function eatAn() {
- $la = $this->lengthIndicator(QR_MODE_AN, $this->version);
- $ln = $this->lengthIndicator(QR_MODE_NM, $this->version);
- $p = 0;
- while($this->isalnumat($this->dataStr, $p)) {
- if ($this->isdigitat($this->dataStr, $p)) {
- $q = $p;
- while($this->isdigitat($this->dataStr, $q)) {
- $q++;
- }
- $dif = $this->estimateBitsModeAn($p) // + 4 + la
- + $this->estimateBitsModeNum($q - $p) + 4 + $ln
- - $this->estimateBitsModeAn($q); // - 4 - la
- if ($dif < 0) {
- break;
- } else {
- $p = $q;
- }
- } else {
- $p++;
- }
- }
- $run = $p;
- if (!$this->isalnumat($this->dataStr, $p)) {
- $dif = $this->estimateBitsModeAn($run) + 4 + $la
- + $this->estimateBitsMode8(1) // + 4 + l8
- - $this->estimateBitsMode8($run + 1); // - 4 - l8
- if ($dif > 0) {
- return $this->eat8();
- }
- }
- $this->items = $this->appendNewInputItem($this->items, QR_MODE_AN, $run, str_split($this->dataStr));
- return $run;
- }
-
- /**
- * eatKanji
- * @return int run
- */
- protected function eatKanji() {
- $p = 0;
- while($this->identifyMode($p) == QR_MODE_KJ) {
- $p += 2;
- }
- $this->items = $this->appendNewInputItem($this->items, QR_MODE_KJ, $p, str_split($this->dataStr));
- return $p;
- }
-
- /**
- * eat8
- * @return int run
- */
- protected function eat8() {
- $la = $this->lengthIndicator(QR_MODE_AN, $this->version);
- $ln = $this->lengthIndicator(QR_MODE_NM, $this->version);
- $p = 1;
- $dataStrLen = strlen($this->dataStr);
- while($p < $dataStrLen) {
- $mode = $this->identifyMode($p);
- if ($mode == QR_MODE_KJ) {
- break;
- }
- if ($mode == QR_MODE_NM) {
- $q = $p;
- while($this->isdigitat($this->dataStr, $q)) {
- $q++;
- }
- $dif = $this->estimateBitsMode8($p) // + 4 + l8
- + $this->estimateBitsModeNum($q - $p) + 4 + $ln
- - $this->estimateBitsMode8($q); // - 4 - l8
- if ($dif < 0) {
- break;
- } else {
- $p = $q;
- }
- } elseif ($mode == QR_MODE_AN) {
- $q = $p;
- while($this->isalnumat($this->dataStr, $q)) {
- $q++;
- }
- $dif = $this->estimateBitsMode8($p) // + 4 + l8
- + $this->estimateBitsModeAn($q - $p) + 4 + $la
- - $this->estimateBitsMode8($q); // - 4 - l8
- if ($dif < 0) {
- break;
- } else {
- $p = $q;
- }
- } else {
- $p++;
- }
- }
- $run = $p;
- $this->items = $this->appendNewInputItem($this->items, QR_MODE_8B, $run, str_split($this->dataStr));
- return $run;
- }
-
- /**
- * splitString
- */
- protected function splitString() {
- while (strlen($this->dataStr) > 0) {
- if ($this->dataStr == '') {
- return 0;
- }
- $mode = $this->identifyMode(0);
- switch ($mode) {
- case QR_MODE_NM: {
- $length = $this->eatNum();
- break;
- }
- case QR_MODE_AN: {
- $length = $this->eatAn();
- break;
- }
- case QR_MODE_KJ: {
- if ($this->hint == QR_MODE_KJ) {
- $length = $this->eatKanji();
- } else {
- $length = $this->eat8();
- }
- break;
- }
- default: {
- $length = $this->eat8();
- break;
- }
- }
- if ($length == 0) {
- return 0;
- }
- if ($length < 0) {
- return -1;
- }
- $this->dataStr = substr($this->dataStr, $length);
- }
- }
-
- /**
- * toUpper
- */
- protected function toUpper() {
- $stringLen = strlen($this->dataStr);
- $p = 0;
- while ($p < $stringLen) {
- $mode = $this->identifyMode(substr($this->dataStr, $p));
- if ($mode == QR_MODE_KJ) {
- $p += 2;
- } else {
- if ((ord($this->dataStr[$p]) >= ord('a')) AND (ord($this->dataStr[$p]) <= ord('z'))) {
- $this->dataStr[$p] = chr(ord($this->dataStr[$p]) - 32);
- }
- $p++;
- }
- }
- return $this->dataStr;
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - -
-
- // QRinputItem
-
- /**
- * newInputItem
- * @param int $mode
- * @param int $size
- * @param array $data
- * @param array $bstream
- * @return array input item
- */
- protected function newInputItem($mode, $size, $data, $bstream=null) {
- $setData = array_slice($data, 0, $size);
- if (count($setData) < $size) {
- $setData = array_merge($setData, array_fill(0, ($size - count($setData)), 0));
- }
- if (!$this->check($mode, $size, $setData)) {
- return NULL;
- }
- $inputitem = array();
- $inputitem['mode'] = $mode;
- $inputitem['size'] = $size;
- $inputitem['data'] = $setData;
- $inputitem['bstream'] = $bstream;
- return $inputitem;
- }
-
- /**
- * encodeModeNum
- * @param array $inputitem
- * @param int $version
- * @return array input item
- */
- protected function encodeModeNum($inputitem, $version) {
- $words = (int)($inputitem['size'] / 3);
- $inputitem['bstream'] = array();
- $val = 0x1;
- $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 4, $val);
- $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], $this->lengthIndicator(QR_MODE_NM, $version), $inputitem['size']);
- for ($i=0; $i < $words; ++$i) {
- $val = (ord($inputitem['data'][$i*3 ]) - ord('0')) * 100;
- $val += (ord($inputitem['data'][$i*3+1]) - ord('0')) * 10;
- $val += (ord($inputitem['data'][$i*3+2]) - ord('0'));
- $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 10, $val);
- }
- if ($inputitem['size'] - $words * 3 == 1) {
- $val = ord($inputitem['data'][$words*3]) - ord('0');
- $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 4, $val);
- } elseif (($inputitem['size'] - ($words * 3)) == 2) {
- $val = (ord($inputitem['data'][$words*3 ]) - ord('0')) * 10;
- $val += (ord($inputitem['data'][$words*3+1]) - ord('0'));
- $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 7, $val);
- }
- return $inputitem;
- }
-
- /**
- * encodeModeAn
- * @param array $inputitem
- * @param int $version
- * @return array input item
- */
- protected function encodeModeAn($inputitem, $version) {
- $words = (int)($inputitem['size'] / 2);
- $inputitem['bstream'] = array();
- $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 4, 0x02);
- $inputitem['bstream'] = $this->appendNum(v, $this->lengthIndicator(QR_MODE_AN, $version), $inputitem['size']);
- for ($i=0; $i < $words; ++$i) {
- $val = (int)$this->lookAnTable(ord($inputitem['data'][$i*2 ])) * 45;
- $val += (int)$this->lookAnTable(ord($inputitem['data'][$i*2+1]));
- $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 11, $val);
- }
- if ($inputitem['size'] & 1) {
- $val = $this->lookAnTable(ord($inputitem['data'][($words * 2)]));
- $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 6, $val);
- }
- return $inputitem;
- }
-
- /**
- * encodeMode8
- * @param array $inputitem
- * @param int $version
- * @return array input item
- */
- protected function encodeMode8($inputitem, $version) {
- $inputitem['bstream'] = array();
- $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 4, 0x4);
- $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], $this->lengthIndicator(QR_MODE_8B, $version), $inputitem['size']);
- for ($i=0; $i < $inputitem['size']; ++$i) {
- $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 8, ord($inputitem['data'][$i]));
- }
- return $inputitem;
- }
-
- /**
- * encodeModeKanji
- * @param array $inputitem
- * @param int $version
- * @return array input item
- */
- protected function encodeModeKanji($inputitem, $version) {
- $inputitem['bstream'] = array();
- $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 4, 0x8);
- $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], $this->lengthIndicator(QR_MODE_KJ, $version), (int)($inputitem['size'] / 2));
- for ($i=0; $i<$inputitem['size']; $i+=2) {
- $val = (ord($inputitem['data'][$i]) << 8) | ord($inputitem['data'][$i+1]);
- if ($val <= 0x9ffc) {
- $val -= 0x8140;
- } else {
- $val -= 0xc140;
- }
- $h = ($val >> 8) * 0xc0;
- $val = ($val & 0xff) + $h;
- $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 13, $val);
- }
- return $inputitem;
- }
-
- /**
- * encodeModeStructure
- * @param array $inputitem
- * @return array input item
- */
- protected function encodeModeStructure($inputitem) {
- $inputitem['bstream'] = array();
- $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 4, 0x03);
- $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 4, ord($inputitem['data'][1]) - 1);
- $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 4, ord($inputitem['data'][0]) - 1);
- $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 8, ord($inputitem['data'][2]));
- return $inputitem;
- }
-
- /**
- * encodeBitStream
- * @param array $inputitem
- * @param int $version
- * @return array input item
- */
- protected function encodeBitStream($inputitem, $version) {
- $inputitem['bstream'] = array();
- $words = $this->maximumWords($inputitem['mode'], $version);
- if ($inputitem['size'] > $words) {
- $st1 = $this->newInputItem($inputitem['mode'], $words, $inputitem['data']);
- $st2 = $this->newInputItem($inputitem['mode'], $inputitem['size'] - $words, array_slice($inputitem['data'], $words));
- $st1 = $this->encodeBitStream($st1, $version);
- $st2 = $this->encodeBitStream($st2, $version);
- $inputitem['bstream'] = array();
- $inputitem['bstream'] = $this->appendBitstream($inputitem['bstream'], $st1['bstream']);
- $inputitem['bstream'] = $this->appendBitstream($inputitem['bstream'], $st2['bstream']);
- } else {
- switch($inputitem['mode']) {
- case QR_MODE_NM: {
- $inputitem = $this->encodeModeNum($inputitem, $version);
- break;
- }
- case QR_MODE_AN: {
- $inputitem = $this->encodeModeAn($inputitem, $version);
- break;
- }
- case QR_MODE_8B: {
- $inputitem = $this->encodeMode8($inputitem, $version);
- break;
- }
- case QR_MODE_KJ: {
- $inputitem = $this->encodeModeKanji($inputitem, $version);
- break;
- }
- case QR_MODE_ST: {
- $inputitem = $this->encodeModeStructure($inputitem);
- break;
- }
- default: {
- break;
- }
- }
- }
- return $inputitem;
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - -
-
- // QRinput
-
- /**
- * Append data to an input object.
- * The data is copied and appended to the input object.
- * @param array items input items
- * @param int $mode encoding mode.
- * @param int $size size of data (byte).
- * @param array $data array of input data.
- * @return items
- *
- */
- protected function appendNewInputItem($items, $mode, $size, $data) {
- $items[] = $this->newInputItem($mode, $size, $data);
- return $items;
- }
-
- /**
- * insertStructuredAppendHeader
- * @param array $items
- * @param int $size
- * @param int $index
- * @param int $parity
- * @return array items
- */
- protected function insertStructuredAppendHeader($items, $size, $index, $parity) {
- if ($size > MAX_STRUCTURED_SYMBOLS) {
- return -1;
- }
- if (($index <= 0) OR ($index > MAX_STRUCTURED_SYMBOLS)) {
- return -1;
- }
- $buf = array($size, $index, $parity);
- $entry = $this->newInputItem(QR_MODE_ST, 3, buf);
- array_unshift($items, $entry);
- return $items;
- }
-
- /**
- * calcParity
- * @param array $items
- * @return int parity
- */
- protected function calcParity($items) {
- $parity = 0;
- foreach ($items as $item) {
- if ($item['mode'] != QR_MODE_ST) {
- for ($i=$item['size']-1; $i>=0; --$i) {
- $parity ^= $item['data'][$i];
- }
- }
- }
- return $parity;
- }
-
- /**
- * checkModeNum
- * @param int $size
- * @param array $data
- * @return boolean true or false
- */
- protected function checkModeNum($size, $data) {
- for ($i=0; $i<$size; ++$i) {
- if ((ord($data[$i]) < ord('0')) OR (ord($data[$i]) > ord('9'))){
- return false;
- }
- }
- return true;
- }
-
- /**
- * estimateBitsModeNum
- * @param int $size
- * @return int number of bits
- */
- protected function estimateBitsModeNum($size) {
- $w = (int)$size / 3;
- $bits = $w * 10;
- switch($size - $w * 3) {
- case 1: {
- $bits += 4;
- break;
- }
- case 2: {
- $bits += 7;
- break;
- }
- default: {
- break;
- }
- }
- return $bits;
- }
-
- /**
- * Look up the alphabet-numeric convesion table (see JIS X0510:2004, pp.19).
- * @param int $c character value
- * @return value
- */
- protected function lookAnTable($c) {
- return (($c > 127)?-1:$this->anTable[$c]);
- }
-
- /**
- * checkModeAn
- * @param int $size
- * @param array $data
- * @return boolean true or false
- */
- protected function checkModeAn($size, $data) {
- for ($i=0; $i<$size; ++$i) {
- if ($this->lookAnTable(ord($data[$i])) == -1) {
- return false;
- }
- }
- return true;
- }
-
- /**
- * estimateBitsModeAn
- * @param int $size
- * @return int number of bits
- */
- protected function estimateBitsModeAn($size) {
- $w = (int)($size / 2);
- $bits = $w * 11;
- if ($size & 1) {
- $bits += 6;
- }
- return $bits;
- }
-
- /**
- * estimateBitsMode8
- * @param int $size
- * @return int number of bits
- */
- protected function estimateBitsMode8($size) {
- return $size * 8;
- }
-
- /**
- * estimateBitsModeKanji
- * @param int $size
- * @return int number of bits
- */
- protected function estimateBitsModeKanji($size) {
- return (int)(($size / 2) * 13);
- }
-
- /**
- * checkModeKanji
- * @param int $size
- * @param array $data
- * @return boolean true or false
- */
- protected function checkModeKanji($size, $data) {
- if ($size & 1) {
- return false;
- }
- for ($i=0; $i<$size; $i+=2) {
- $val = (ord($data[$i]) << 8) | ord($data[$i+1]);
- if (($val < 0x8140) OR (($val > 0x9ffc) AND ($val < 0xe040)) OR ($val > 0xebbf)) {
- return false;
- }
- }
- return true;
- }
-
- /**
- * Validate the input data.
- * @param int $mode encoding mode.
- * @param int $size size of data (byte).
- * @param array data data to validate
- * @return boolean true in case of valid data, false otherwise
- */
- protected function check($mode, $size, $data) {
- if ($size <= 0) {
- return false;
- }
- switch($mode) {
- case QR_MODE_NM: {
- return $this->checkModeNum($size, $data);
- }
- case QR_MODE_AN: {
- return $this->checkModeAn($size, $data);
- }
- case QR_MODE_KJ: {
- return $this->checkModeKanji($size, $data);
- }
- case QR_MODE_8B: {
- return true;
- }
- case QR_MODE_ST: {
- return true;
- }
- default: {
- break;
- }
- }
- return false;
- }
-
- /**
- * estimateBitStreamSize
- * @param array $items
- * @param int $version
- * @return int bits
- */
- protected function estimateBitStreamSize($items, $version) {
- $bits = 0;
- if ($version == 0) {
- $version = 1;
- }
- foreach ($items as $item) {
- switch($item['mode']) {
- case QR_MODE_NM: {
- $bits = $this->estimateBitsModeNum($item['size']);
- break;
- }
- case QR_MODE_AN: {
- $bits = $this->estimateBitsModeAn($item['size']);
- break;
- }
- case QR_MODE_8B: {
- $bits = $this->estimateBitsMode8($item['size']);
- break;
- }
- case QR_MODE_KJ: {
- $bits = $this->estimateBitsModeKanji($item['size']);
- break;
- }
- case QR_MODE_ST: {
- return STRUCTURE_HEADER_BITS;
- }
- default: {
- return 0;
- }
- }
- $l = $this->lengthIndicator($item['mode'], $version);
- $m = 1 << $l;
- $num = (int)(($item['size'] + $m - 1) / $m);
- $bits += $num * (4 + $l);
- }
- return $bits;
- }
-
- /**
- * estimateVersion
- * @param array $items
- * @return int version
- */
- protected function estimateVersion($items) {
- $version = 0;
- $prev = 0;
- do {
- $prev = $version;
- $bits = $this->estimateBitStreamSize($items, $prev);
- $version = $this->getMinimumVersion((int)(($bits + 7) / 8), $this->level);
- if ($version < 0) {
- return -1;
- }
- } while ($version > $prev);
- return $version;
- }
-
- /**
- * lengthOfCode
- * @param int $mode
- * @param int $version
- * @param int $bits
- * @return int size
- */
- protected function lengthOfCode($mode, $version, $bits) {
- $payload = $bits - 4 - $this->lengthIndicator($mode, $version);
- switch($mode) {
- case QR_MODE_NM: {
- $chunks = (int)($payload / 10);
- $remain = $payload - $chunks * 10;
- $size = $chunks * 3;
- if ($remain >= 7) {
- $size += 2;
- } elseif ($remain >= 4) {
- $size += 1;
- }
- break;
- }
- case QR_MODE_AN: {
- $chunks = (int)($payload / 11);
- $remain = $payload - $chunks * 11;
- $size = $chunks * 2;
- if ($remain >= 6) {
- ++$size;
- }
- break;
- }
- case QR_MODE_8B: {
- $size = (int)($payload / 8);
- break;
- }
- case QR_MODE_KJ: {
- $size = (int)(($payload / 13) * 2);
- break;
- }
- case QR_MODE_ST: {
- $size = (int)($payload / 8);
- break;
- }
- default: {
- $size = 0;
- break;
- }
- }
- $maxsize = $this->maximumWords($mode, $version);
- if ($size < 0) {
- $size = 0;
- }
- if ($size > $maxsize) {
- $size = $maxsize;
- }
- return $size;
- }
-
- /**
- * createBitStream
- * @param array $items
- * @return array of items and total bits
- */
- protected function createBitStream($items) {
- $total = 0;
- foreach ($items as $key => $item) {
- $items[$key] = $this->encodeBitStream($item, $this->version);
- $bits = count($items[$key]['bstream']);
- $total += $bits;
- }
- return array($items, $total);
- }
-
- /**
- * convertData
- * @param array $items
- * @return array items
- */
- protected function convertData($items) {
- $ver = $this->estimateVersion($items);
- if ($ver > $this->version) {
- $this->version = $ver;
- }
- for (;;) {
- $cbs = $this->createBitStream($items);
- $items = $cbs[0];
- $bits = $cbs[1];
- if ($bits < 0) {
- return -1;
- }
- $ver = $this->getMinimumVersion((int)(($bits + 7) / 8), $this->level);
- if ($ver < 0) {
- return -1;
- } elseif ($ver > $this->version) {
- $this->version = $ver;
- } else {
- break;
- }
- }
- return $items;
- }
-
- /**
- * Append Padding Bit to bitstream
- * @param array $bstream
- * @return array bitstream
- */
- protected function appendPaddingBit($bstream) {
- $bits = count($bstream);
- $maxwords = $this->getDataLength($this->version, $this->level);
- $maxbits = $maxwords * 8;
- if ($maxbits == $bits) {
- return 0;
- }
- if ($maxbits - $bits < 5) {
- return $this->appendNum($bstream, $maxbits - $bits, 0);
- }
- $bits += 4;
- $words = (int)(($bits + 7) / 8);
- $padding = array();
- $padding = $this->appendNum($padding, $words * 8 - $bits + 4, 0);
- $padlen = $maxwords - $words;
- if ($padlen > 0) {
- $padbuf = array();
- for ($i=0; $i<$padlen; ++$i) {
- $padbuf[$i] = ($i&1)?0x11:0xec;
- }
- $padding = $this->appendBytes($padding, $padlen, $padbuf);
- }
- return $this->appendBitstream($bstream, $padding);
- }
-
- /**
- * mergeBitStream
- * @param array $bstream
- * @return array bitstream
- */
- protected function mergeBitStream($items) {
- $items = $this->convertData($items);
- $bstream = array();
- foreach ($items as $item) {
- $bstream = $this->appendBitstream($bstream, $item['bstream']);
- }
- return $bstream;
- }
-
- /**
- * Returns a stream of bits.
- * @param int $items
- * @return array padded merged byte stream
- */
- protected function getBitStream($items) {
- $bstream = $this->mergeBitStream($items);
- return $this->appendPaddingBit($bstream);
- }
-
- /**
- * Pack all bit streams padding bits into a byte array.
- * @param int $items
- * @return array padded merged byte stream
- */
- protected function getByteStream($items) {
- $bstream = $this->getBitStream($items);
- return $this->bitstreamToByte($bstream);
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - -
-
- // QRbitstream
-
- /**
- * Return an array with zeros
- * @param int $setLength array size
- * @return array
- */
- protected function allocate($setLength) {
- return array_fill(0, $setLength, 0);
- }
-
- /**
- * Return new bitstream from number
- * @param int $bits number of bits
- * @param int $num number
- * @return array bitstream
- */
- protected function newFromNum($bits, $num) {
- $bstream = $this->allocate($bits);
- $mask = 1 << ($bits - 1);
- for ($i=0; $i<$bits; ++$i) {
- if ($num & $mask) {
- $bstream[$i] = 1;
- } else {
- $bstream[$i] = 0;
- }
- $mask = $mask >> 1;
- }
- return $bstream;
- }
-
- /**
- * Return new bitstream from bytes
- * @param int $size size
- * @param array $data bytes
- * @return array bitstream
- */
- protected function newFromBytes($size, $data) {
- $bstream = $this->allocate($size * 8);
- $p=0;
- for ($i=0; $i<$size; ++$i) {
- $mask = 0x80;
- for ($j=0; $j<8; ++$j) {
- if ($data[$i] & $mask) {
- $bstream[$p] = 1;
- } else {
- $bstream[$p] = 0;
- }
- $p++;
- $mask = $mask >> 1;
- }
- }
- return $bstream;
- }
-
- /**
- * Append one bitstream to another
- * @param array $bitstream original bitstream
- * @param array $append bitstream to append
- * @return array bitstream
- */
- protected function appendBitstream($bitstream, $append) {
- if ((!is_array($append)) OR (count($append) == 0)) {
- return $bitstream;
- }
- if (count($bitstream) == 0) {
- return $append;
- }
- return array_values(array_merge($bitstream, $append));
- }
-
- /**
- * Append one bitstream created from number to another
- * @param array $bitstream original bitstream
- * @param int $bits number of bits
- * @param int $num number
- * @return array bitstream
- */
- protected function appendNum($bitstream, $bits, $num) {
- if ($bits == 0) {
- return 0;
- }
- $b = $this->newFromNum($bits, $num);
- return $this->appendBitstream($bitstream, $b);
- }
-
- /**
- * Append one bitstream created from bytes to another
- * @param array $bitstream original bitstream
- * @param int $size size
- * @param array $data bytes
- * @return array bitstream
- */
- protected function appendBytes($bitstream, $size, $data) {
- if ($size == 0) {
- return 0;
- }
- $b = $this->newFromBytes($size, $data);
- return $this->appendBitstream($bitstream, $b);
- }
-
- /**
- * Convert bitstream to bytes
- * @param array $bitstream original bitstream
- * @return array of bytes
- */
- protected function bitstreamToByte($bstream) {
- $size = count($bstream);
- if ($size == 0) {
- return array();
- }
- $data = array_fill(0, (int)(($size + 7) / 8), 0);
- $bytes = (int)($size / 8);
- $p = 0;
- for ($i=0; $i<$bytes; $i++) {
- $v = 0;
- for ($j=0; $j<8; $j++) {
- $v = $v << 1;
- $v |= $bstream[$p];
- $p++;
- }
- $data[$i] = $v;
- }
- if ($size & 7) {
- $v = 0;
- for ($j=0; $j<($size & 7); $j++) {
- $v = $v << 1;
- $v |= $bstream[$p];
- $p++;
- }
- $data[$bytes] = $v;
- }
- return $data;
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - -
-
- // QRspec
-
- /**
- * Replace a value on the array at the specified position
- * @param array $srctab
- * @param int $x X position
- * @param int $y Y position
- * @param string $repl value to replace
- * @param int $replLen length of the repl string
- * @return array srctab
- */
- protected function qrstrset($srctab, $x, $y, $repl, $replLen=false) {
- $srctab[$y] = substr_replace($srctab[$y], ($replLen !== false)?substr($repl,0,$replLen):$repl, $x, ($replLen !== false)?$replLen:strlen($repl));
- return $srctab;
- }
-
- /**
- * Return maximum data code length (bytes) for the version.
- * @param int $version version
- * @param int $level error correction level
- * @return int maximum size (bytes)
- */
- protected function getDataLength($version, $level) {
- return $this->capacity[$version][QRCAP_WORDS] - $this->capacity[$version][QRCAP_EC][$level];
- }
-
- /**
- * Return maximum error correction code length (bytes) for the version.
- * @param int $version version
- * @param int $level error correction level
- * @return int ECC size (bytes)
- */
- protected function getECCLength($version, $level){
- return $this->capacity[$version][QRCAP_EC][$level];
- }
-
- /**
- * Return the width of the symbol for the version.
- * @param int $version version
- * @return int width
- */
- protected function getWidth($version) {
- return $this->capacity[$version][QRCAP_WIDTH];
- }
-
- /**
- * Return the numer of remainder bits.
- * @param int $version version
- * @return int number of remainder bits
- */
- protected function getRemainder($version) {
- return $this->capacity[$version][QRCAP_REMINDER];
- }
-
- /**
- * Return a version number that satisfies the input code length.
- * @param int $size input code length (byte)
- * @param int $level error correction level
- * @return int version number
- */
- protected function getMinimumVersion($size, $level) {
- for ($i=1; $i <= QRSPEC_VERSION_MAX; ++$i) {
- $words = $this->capacity[$i][QRCAP_WORDS] - $this->capacity[$i][QRCAP_EC][$level];
- if ($words >= $size) {
- return $i;
- }
- }
- return -1;
- }
-
- /**
- * Return the size of length indicator for the mode and version.
- * @param int $mode encoding mode
- * @param int $version version
- * @return int the size of the appropriate length indicator (bits).
- */
- protected function lengthIndicator($mode, $version) {
- if ($mode == QR_MODE_ST) {
- return 0;
- }
- if ($version <= 9) {
- $l = 0;
- } elseif ($version <= 26) {
- $l = 1;
- } else {
- $l = 2;
- }
- return $this->lengthTableBits[$mode][$l];
- }
-
- /**
- * Return the maximum length for the mode and version.
- * @param int $mode encoding mode
- * @param int $version version
- * @return int the maximum length (bytes)
- */
- protected function maximumWords($mode, $version) {
- if ($mode == QR_MODE_ST) {
- return 3;
- }
- if ($version <= 9) {
- $l = 0;
- } else if ($version <= 26) {
- $l = 1;
- } else {
- $l = 2;
- }
- $bits = $this->lengthTableBits[$mode][$l];
- $words = (1 << $bits) - 1;
- if ($mode == QR_MODE_KJ) {
- $words *= 2; // the number of bytes is required
- }
- return $words;
- }
-
- /**
- * Return an array of ECC specification.
- * @param int $version version
- * @param int $level error correction level
- * @param array $spec an array of ECC specification contains as following: {# of type1 blocks, # of data code, # of ecc code, # of type2 blocks, # of data code}
- * @return array spec
- */
- protected function getEccSpec($version, $level, $spec) {
- if (count($spec) < 5) {
- $spec = array(0, 0, 0, 0, 0);
- }
- $b1 = $this->eccTable[$version][$level][0];
- $b2 = $this->eccTable[$version][$level][1];
- $data = $this->getDataLength($version, $level);
- $ecc = $this->getECCLength($version, $level);
- if ($b2 == 0) {
- $spec[0] = $b1;
- $spec[1] = (int)($data / $b1);
- $spec[2] = (int)($ecc / $b1);
- $spec[3] = 0;
- $spec[4] = 0;
- } else {
- $spec[0] = $b1;
- $spec[1] = (int)($data / ($b1 + $b2));
- $spec[2] = (int)($ecc / ($b1 + $b2));
- $spec[3] = $b2;
- $spec[4] = $spec[1] + 1;
- }
- return $spec;
- }
-
- /**
- * Put an alignment marker.
- * @param array $frame frame
- * @param int $width width
- * @param int $ox X center coordinate of the pattern
- * @param int $oy Y center coordinate of the pattern
- * @return array frame
- */
- protected function putAlignmentMarker($frame, $ox, $oy) {
- $finder = array(
- "\xa1\xa1\xa1\xa1\xa1",
- "\xa1\xa0\xa0\xa0\xa1",
- "\xa1\xa0\xa1\xa0\xa1",
- "\xa1\xa0\xa0\xa0\xa1",
- "\xa1\xa1\xa1\xa1\xa1"
- );
- $yStart = $oy - 2;
- $xStart = $ox - 2;
- for ($y=0; $y < 5; $y++) {
- $frame = $this->qrstrset($frame, $xStart, $yStart+$y, $finder[$y]);
- }
- return $frame;
- }
-
- /**
- * Put an alignment pattern.
- * @param int $version version
- * @param array $fram frame
- * @param int $width width
- * @return array frame
- */
- protected function putAlignmentPattern($version, $frame, $width) {
- if ($version < 2) {
- return $frame;
- }
- $d = $this->alignmentPattern[$version][1] - $this->alignmentPattern[$version][0];
- if ($d < 0) {
- $w = 2;
- } else {
- $w = (int)(($width - $this->alignmentPattern[$version][0]) / $d + 2);
- }
- if ($w * $w - 3 == 1) {
- $x = $this->alignmentPattern[$version][0];
- $y = $this->alignmentPattern[$version][0];
- $frame = $this->putAlignmentMarker($frame, $x, $y);
- return $frame;
- }
- $cx = $this->alignmentPattern[$version][0];
- $wo = $w - 1;
- for ($x=1; $x < $wo; ++$x) {
- $frame = $this->putAlignmentMarker($frame, 6, $cx);
- $frame = $this->putAlignmentMarker($frame, $cx, 6);
- $cx += $d;
- }
- $cy = $this->alignmentPattern[$version][0];
- for ($y=0; $y < $wo; ++$y) {
- $cx = $this->alignmentPattern[$version][0];
- for ($x=0; $x < $wo; ++$x) {
- $frame = $this->putAlignmentMarker($frame, $cx, $cy);
- $cx += $d;
- }
- $cy += $d;
- }
- return $frame;
- }
-
- /**
- * Return BCH encoded version information pattern that is used for the symbol of version 7 or greater. Use lower 18 bits.
- * @param int $version version
- * @return BCH encoded version information pattern
- */
- protected function getVersionPattern($version) {
- if (($version < 7) OR ($version > QRSPEC_VERSION_MAX)) {
- return 0;
- }
- return $this->versionPattern[($version - 7)];
- }
-
- /**
- * Return BCH encoded format information pattern.
- * @param array $mask
- * @param int $level error correction level
- * @return BCH encoded format information pattern
- */
- protected function getFormatInfo($mask, $level) {
- if (($mask < 0) OR ($mask > 7)) {
- return 0;
- }
- if (($level < 0) OR ($level > 3)) {
- return 0;
- }
- return $this->formatInfo[$level][$mask];
- }
-
- /**
- * Put a finder pattern.
- * @param array $frame frame
- * @param int $width width
- * @param int $ox X center coordinate of the pattern
- * @param int $oy Y center coordinate of the pattern
- * @return array frame
- */
- protected function putFinderPattern($frame, $ox, $oy) {
- $finder = array(
- "\xc1\xc1\xc1\xc1\xc1\xc1\xc1",
- "\xc1\xc0\xc0\xc0\xc0\xc0\xc1",
- "\xc1\xc0\xc1\xc1\xc1\xc0\xc1",
- "\xc1\xc0\xc1\xc1\xc1\xc0\xc1",
- "\xc1\xc0\xc1\xc1\xc1\xc0\xc1",
- "\xc1\xc0\xc0\xc0\xc0\xc0\xc1",
- "\xc1\xc1\xc1\xc1\xc1\xc1\xc1"
- );
- for ($y=0; $y < 7; $y++) {
- $frame = $this->qrstrset($frame, $ox, ($oy + $y), $finder[$y]);
- }
- return $frame;
- }
-
- /**
- * Return a copy of initialized frame.
- * @param int $version version
- * @return Array of unsigned char.
- */
- protected function createFrame($version) {
- $width = $this->capacity[$version][QRCAP_WIDTH];
- $frameLine = str_repeat ("\0", $width);
- $frame = array_fill(0, $width, $frameLine);
- // Finder pattern
- $frame = $this->putFinderPattern($frame, 0, 0);
- $frame = $this->putFinderPattern($frame, $width - 7, 0);
- $frame = $this->putFinderPattern($frame, 0, $width - 7);
- // Separator
- $yOffset = $width - 7;
- for ($y=0; $y < 7; ++$y) {
- $frame[$y][7] = "\xc0";
- $frame[$y][$width - 8] = "\xc0";
- $frame[$yOffset][7] = "\xc0";
- ++$yOffset;
- }
- $setPattern = str_repeat("\xc0", 8);
- $frame = $this->qrstrset($frame, 0, 7, $setPattern);
- $frame = $this->qrstrset($frame, $width-8, 7, $setPattern);
- $frame = $this->qrstrset($frame, 0, $width - 8, $setPattern);
- // Format info
- $setPattern = str_repeat("\x84", 9);
- $frame = $this->qrstrset($frame, 0, 8, $setPattern);
- $frame = $this->qrstrset($frame, $width - 8, 8, $setPattern, 8);
- $yOffset = $width - 8;
- for ($y=0; $y < 8; ++$y,++$yOffset) {
- $frame[$y][8] = "\x84";
- $frame[$yOffset][8] = "\x84";
- }
- // Timing pattern
- $wo = $width - 15;
- for ($i=1; $i < $wo; ++$i) {
- $frame[6][7+$i] = chr(0x90 | ($i & 1));
- $frame[7+$i][6] = chr(0x90 | ($i & 1));
- }
- // Alignment pattern
- $frame = $this->putAlignmentPattern($version, $frame, $width);
- // Version information
- if ($version >= 7) {
- $vinf = $this->getVersionPattern($version);
- $v = $vinf;
- for ($x=0; $x<6; ++$x) {
- for ($y=0; $y<3; ++$y) {
- $frame[($width - 11)+$y][$x] = chr(0x88 | ($v & 1));
- $v = $v >> 1;
- }
- }
- $v = $vinf;
- for ($y=0; $y<6; ++$y) {
- for ($x=0; $x<3; ++$x) {
- $frame[$y][$x+($width - 11)] = chr(0x88 | ($v & 1));
- $v = $v >> 1;
- }
- }
- }
- // and a little bit...
- $frame[$width - 8][8] = "\x81";
- return $frame;
- }
-
- /**
- * Set new frame for the specified version.
- * @param int $version version
- * @return Array of unsigned char.
- */
- protected function newFrame($version) {
- if (($version < 1) OR ($version > QRSPEC_VERSION_MAX)) {
- return NULL;
- }
- if (!isset($this->frames[$version])) {
- $this->frames[$version] = $this->createFrame($version);
- }
- if (is_null($this->frames[$version])) {
- return NULL;
- }
- return $this->frames[$version];
- }
-
- /**
- * Return block number 0
- * @param array $spec
- * @return int value
- */
- protected function rsBlockNum($spec) {
- return ($spec[0] + $spec[3]);
- }
-
- /**
- * Return block number 1
- * @param array $spec
- * @return int value
- */
- protected function rsBlockNum1($spec) {
- return $spec[0];
- }
-
- /**
- * Return data codes 1
- * @param array $spec
- * @return int value
- */
- protected function rsDataCodes1($spec) {
- return $spec[1];
- }
-
- /**
- * Return ecc codes 1
- * @param array $spec
- * @return int value
- */
- protected function rsEccCodes1($spec) {
- return $spec[2];
- }
-
- /**
- * Return block number 2
- * @param array $spec
- * @return int value
- */
- protected function rsBlockNum2($spec) {
- return $spec[3];
- }
-
- /**
- * Return data codes 2
- * @param array $spec
- * @return int value
- */
- protected function rsDataCodes2($spec) {
- return $spec[4];
- }
-
- /**
- * Return ecc codes 2
- * @param array $spec
- * @return int value
- */
- protected function rsEccCodes2($spec) {
- return $spec[2];
- }
-
- /**
- * Return data length
- * @param array $spec
- * @return int value
- */
- protected function rsDataLength($spec) {
- return ($spec[0] * $spec[1]) + ($spec[3] * $spec[4]);
- }
-
- /**
- * Return ecc length
- * @param array $spec
- * @return int value
- */
- protected function rsEccLength($spec) {
- return ($spec[0] + $spec[3]) * $spec[2];
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - -
-
- // QRrs
-
- /**
- * Initialize a Reed-Solomon codec and add it to existing rsitems
- * @param int $symsize symbol size, bits
- * @param int $gfpoly Field generator polynomial coefficients
- * @param int $fcr first root of RS code generator polynomial, index form
- * @param int $prim primitive element to generate polynomial roots
- * @param int $nroots RS code generator polynomial degree (number of roots)
- * @param int $pad padding bytes at front of shortened block
- * @return array Array of RS values:<ul><li>mm = Bits per symbol;</li><li>nn = Symbols per block;</li><li>alpha_to = log lookup table array;</li><li>index_of = Antilog lookup table array;</li><li>genpoly = Generator polynomial array;</li><li>nroots = Number of generator;</li><li>roots = number of parity symbols;</li><li>fcr = First consecutive root, index form;</li><li>prim = Primitive element, index form;</li><li>iprim = prim-th root of 1, index form;</li><li>pad = Padding bytes in shortened block;</li><li>gfpoly</ul>.
- */
- protected function init_rs($symsize, $gfpoly, $fcr, $prim, $nroots, $pad) {
- foreach ($this->rsitems as $rs) {
- if (($rs['pad'] != $pad) OR ($rs['nroots'] != $nroots) OR ($rs['mm'] != $symsize)
- OR ($rs['gfpoly'] != $gfpoly) OR ($rs['fcr'] != $fcr) OR ($rs['prim'] != $prim)) {
- continue;
- }
- return $rs;
- }
- $rs = $this->init_rs_char($symsize, $gfpoly, $fcr, $prim, $nroots, $pad);
- array_unshift($this->rsitems, $rs);
- return $rs;
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - -
-
- // QRrsItem
-
- /**
- * modnn
- * @param array RS values
- * @param int $x X position
- * @return int X osition
- */
- protected function modnn($rs, $x) {
- while ($x >= $rs['nn']) {
- $x -= $rs['nn'];
- $x = ($x >> $rs['mm']) + ($x & $rs['nn']);
- }
- return $x;
- }
-
- /**
- * Initialize a Reed-Solomon codec and returns an array of values.
- * @param int $symsize symbol size, bits
- * @param int $gfpoly Field generator polynomial coefficients
- * @param int $fcr first root of RS code generator polynomial, index form
- * @param int $prim primitive element to generate polynomial roots
- * @param int $nroots RS code generator polynomial degree (number of roots)
- * @param int $pad padding bytes at front of shortened block
- * @return array Array of RS values:<ul><li>mm = Bits per symbol;</li><li>nn = Symbols per block;</li><li>alpha_to = log lookup table array;</li><li>index_of = Antilog lookup table array;</li><li>genpoly = Generator polynomial array;</li><li>nroots = Number of generator;</li><li>roots = number of parity symbols;</li><li>fcr = First consecutive root, index form;</li><li>prim = Primitive element, index form;</li><li>iprim = prim-th root of 1, index form;</li><li>pad = Padding bytes in shortened block;</li><li>gfpoly</ul>.
- */
- protected function init_rs_char($symsize, $gfpoly, $fcr, $prim, $nroots, $pad) {
- // Based on Reed solomon encoder by Phil Karn, KA9Q (GNU-LGPLv2)
- $rs = null;
- // Check parameter ranges
- if (($symsize < 0) OR ($symsize > 8)) {
- return $rs;
- }
- if (($fcr < 0) OR ($fcr >= (1<<$symsize))) {
- return $rs;
- }
- if (($prim <= 0) OR ($prim >= (1<<$symsize))) {
- return $rs;
- }
- if (($nroots < 0) OR ($nroots >= (1<<$symsize))) {
- return $rs;
- }
- if (($pad < 0) OR ($pad >= ((1<<$symsize) -1 - $nroots))) {
- return $rs;
- }
- $rs = array();
- $rs['mm'] = $symsize;
- $rs['nn'] = (1 << $symsize) - 1;
- $rs['pad'] = $pad;
- $rs['alpha_to'] = array_fill(0, ($rs['nn'] + 1), 0);
- $rs['index_of'] = array_fill(0, ($rs['nn'] + 1), 0);
- // PHP style macro replacement ;)
- $NN =& $rs['nn'];
- $A0 =& $NN;
- // Generate Galois field lookup tables
- $rs['index_of'][0] = $A0; // log(zero) = -inf
- $rs['alpha_to'][$A0] = 0; // alpha**-inf = 0
- $sr = 1;
- for ($i=0; $i<$rs['nn']; ++$i) {
- $rs['index_of'][$sr] = $i;
- $rs['alpha_to'][$i] = $sr;
- $sr <<= 1;
- if ($sr & (1 << $symsize)) {
- $sr ^= $gfpoly;
- }
- $sr &= $rs['nn'];
- }
- if ($sr != 1) {
- // field generator polynomial is not primitive!
- return NULL;
- }
- // Form RS code generator polynomial from its roots
- $rs['genpoly'] = array_fill(0, ($nroots + 1), 0);
- $rs['fcr'] = $fcr;
- $rs['prim'] = $prim;
- $rs['nroots'] = $nroots;
- $rs['gfpoly'] = $gfpoly;
- // Find prim-th root of 1, used in decoding
- for ($iprim=1; ($iprim % $prim) != 0; $iprim += $rs['nn']) {
- ; // intentional empty-body loop!
- }
- $rs['iprim'] = (int)($iprim / $prim);
- $rs['genpoly'][0] = 1;
-
-
- for ($i = 0,$root=$fcr*$prim; $i < $nroots; $i++, $root += $prim) {
- $rs['genpoly'][$i+1] = 1;
- // Multiply rs->genpoly[] by @**(root + x)
- for ($j = $i; $j > 0; --$j) {
- if ($rs['genpoly'][$j] != 0) {
- $rs['genpoly'][$j] = $rs['genpoly'][$j-1] ^ $rs['alpha_to'][$this->modnn($rs, $rs['index_of'][$rs['genpoly'][$j]] + $root)];
- } else {
- $rs['genpoly'][$j] = $rs['genpoly'][$j-1];
- }
- }
- // rs->genpoly[0] can never be zero
- $rs['genpoly'][0] = $rs['alpha_to'][$this->modnn($rs, $rs['index_of'][$rs['genpoly'][0]] + $root)];
- }
- // convert rs->genpoly[] to index form for quicker encoding
- for ($i = 0; $i <= $nroots; ++$i) {
- $rs['genpoly'][$i] = $rs['index_of'][$rs['genpoly'][$i]];
- }
- return $rs;
- }
-
- /**
- * Encode a Reed-Solomon codec and returns the parity array
- * @param array $rs RS values
- * @param array $data data
- * @param array $parity parity
- * @return parity array
- */
- protected function encode_rs_char($rs, $data, $parity) {
- $MM =& $rs['mm']; // bits per symbol
- $NN =& $rs['nn']; // the total number of symbols in a RS block
- $ALPHA_TO =& $rs['alpha_to']; // the address of an array of NN elements to convert Galois field elements in index (log) form to polynomial form
- $INDEX_OF =& $rs['index_of']; // the address of an array of NN elements to convert Galois field elements in polynomial form to index (log) form
- $GENPOLY =& $rs['genpoly']; // an array of NROOTS+1 elements containing the generator polynomial in index form
- $NROOTS =& $rs['nroots']; // the number of roots in the RS code generator polynomial, which is the same as the number of parity symbols in a block
- $FCR =& $rs['fcr']; // first consecutive root, index form
- $PRIM =& $rs['prim']; // primitive element, index form
- $IPRIM =& $rs['iprim']; // prim-th root of 1, index form
- $PAD =& $rs['pad']; // the number of pad symbols in a block
- $A0 =& $NN;
- $parity = array_fill(0, $NROOTS, 0);
- for ($i=0; $i < ($NN - $NROOTS - $PAD); $i++) {
- $feedback = $INDEX_OF[$data[$i] ^ $parity[0]];
- if ($feedback != $A0) {
- // feedback term is non-zero
- // This line is unnecessary when GENPOLY[NROOTS] is unity, as it must
- // always be for the polynomials constructed by init_rs()
- $feedback = $this->modnn($rs, $NN - $GENPOLY[$NROOTS] + $feedback);
- for ($j=1; $j < $NROOTS; ++$j) {
- $parity[$j] ^= $ALPHA_TO[$this->modnn($rs, $feedback + $GENPOLY[($NROOTS - $j)])];
- }
- }
- // Shift
- array_shift($parity);
- if ($feedback != $A0) {
- array_push($parity, $ALPHA_TO[$this->modnn($rs, $feedback + $GENPOLY[0])]);
- } else {
- array_push($parity, 0);
- }
- }
- return $parity;
- }
-
- } // end QRcode class
-
-} // END OF "class_exists QRcode"
-?>
diff --git a/lib/phpqrcode/cache/frame_1.dat b/lib/phpqrcode/cache/frame_1.dat
deleted file mode 100644
index be28feac4..000000000
--- a/lib/phpqrcode/cache/frame_1.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-xڝ�� � E9�u��`�"PńC�牗T!0$
-E�ɲQ���m��h۾9{kI"� 9Ln)Ap��־�>�^��z�m�nŖ;��m�n���� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/frame_1.png b/lib/phpqrcode/cache/frame_1.png
deleted file mode 100644
index 86ce6e98d..000000000
--- a/lib/phpqrcode/cache/frame_1.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_10.dat b/lib/phpqrcode/cache/frame_10.dat
deleted file mode 100644
index aff163f68..000000000
--- a/lib/phpqrcode/cache/frame_10.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_10.png b/lib/phpqrcode/cache/frame_10.png
deleted file mode 100644
index dbfcd70b5..000000000
--- a/lib/phpqrcode/cache/frame_10.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_11.dat b/lib/phpqrcode/cache/frame_11.dat
deleted file mode 100644
index 95af68a47..000000000
--- a/lib/phpqrcode/cache/frame_11.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_11.png b/lib/phpqrcode/cache/frame_11.png
deleted file mode 100644
index c07c761f1..000000000
--- a/lib/phpqrcode/cache/frame_11.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_12.dat b/lib/phpqrcode/cache/frame_12.dat
deleted file mode 100644
index 73228b362..000000000
--- a/lib/phpqrcode/cache/frame_12.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_12.png b/lib/phpqrcode/cache/frame_12.png
deleted file mode 100644
index 8ba67822c..000000000
--- a/lib/phpqrcode/cache/frame_12.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_13.dat b/lib/phpqrcode/cache/frame_13.dat
deleted file mode 100644
index 2256f0e34..000000000
--- a/lib/phpqrcode/cache/frame_13.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_13.png b/lib/phpqrcode/cache/frame_13.png
deleted file mode 100644
index 6e49d35a0..000000000
--- a/lib/phpqrcode/cache/frame_13.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_14.dat b/lib/phpqrcode/cache/frame_14.dat
deleted file mode 100644
index e9ae09329..000000000
--- a/lib/phpqrcode/cache/frame_14.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_14.png b/lib/phpqrcode/cache/frame_14.png
deleted file mode 100644
index efc36c034..000000000
--- a/lib/phpqrcode/cache/frame_14.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_15.dat b/lib/phpqrcode/cache/frame_15.dat
deleted file mode 100644
index 18727818d..000000000
--- a/lib/phpqrcode/cache/frame_15.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_15.png b/lib/phpqrcode/cache/frame_15.png
deleted file mode 100644
index a9f416c7c..000000000
--- a/lib/phpqrcode/cache/frame_15.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_16.dat b/lib/phpqrcode/cache/frame_16.dat
deleted file mode 100644
index 60af67845..000000000
--- a/lib/phpqrcode/cache/frame_16.dat
+++ /dev/null
@@ -1 +0,0 @@
-x��A� E]s�IX�;��n6��`�q���W6���`�%A/3!�����!g��̡�1N) �E��|;��>6⸏�97$����c]kk��w�1��[�m�C͜c�R���>�����E,�hʼnp�#�xF�yW��VWG���3��+����˓�S��}Ğ�#�G8b^c^c���p�c&3YQ"�����v������������k�9�܇�}������ �Ŀ�Q��L�/���� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/frame_16.png b/lib/phpqrcode/cache/frame_16.png
deleted file mode 100644
index 6ac8fe890..000000000
--- a/lib/phpqrcode/cache/frame_16.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_17.dat b/lib/phpqrcode/cache/frame_17.dat
deleted file mode 100644
index 87f0cf593..000000000
--- a/lib/phpqrcode/cache/frame_17.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_17.png b/lib/phpqrcode/cache/frame_17.png
deleted file mode 100644
index 5b929ac73..000000000
--- a/lib/phpqrcode/cache/frame_17.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_18.dat b/lib/phpqrcode/cache/frame_18.dat
deleted file mode 100644
index bb7138c1d..000000000
--- a/lib/phpqrcode/cache/frame_18.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x��A
-�0E]�օ,2;s��&�͚h���O������1&09OIv@DD� �&�ىK�X��Fv�<�dq�9�<%h�� Y�s !(d���s;~||b(��Yůg#�`�K��S����Ķ��s�idߍLg:ә�t�/gm����k�M�3�{�4rT�Q��e��s�>�<ә�t�3���;�H�#љ�t�3��Y�+og�h���ٽ�ln��F>�i^�#awm;g�~p�g�Ns{6z��������p��' \ No newline at end of file
diff --git a/lib/phpqrcode/cache/frame_18.png b/lib/phpqrcode/cache/frame_18.png
deleted file mode 100644
index ee0d6a35e..000000000
--- a/lib/phpqrcode/cache/frame_18.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_19.dat b/lib/phpqrcode/cache/frame_19.dat
deleted file mode 100644
index 95e26adc1..000000000
--- a/lib/phpqrcode/cache/frame_19.dat
+++ /dev/null
@@ -1,3 +0,0 @@
-x��A
-� E���.�No�7ћ��iiR�N2��W%�x�@�ڜ�'�
-u�6��.�*S;}���à�T ���zr�t��%�,�����}�;���)�����Z��L����P��$����q�g�L��dJ�;��w���.]z#���[͝��Og����"�� �B��}�}�;��w���#1Gb��;��w���_�C+w�@Df����u��2����N��9R7|pW�k�������k��������� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/frame_19.png b/lib/phpqrcode/cache/frame_19.png
deleted file mode 100644
index 20fddd84c..000000000
--- a/lib/phpqrcode/cache/frame_19.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_2.dat b/lib/phpqrcode/cache/frame_2.dat
deleted file mode 100644
index 7e42f31ca..000000000
--- a/lib/phpqrcode/cache/frame_2.dat
+++ /dev/null
@@ -1 +0,0 @@
-x�͒� � F{v�& ��&�Y+?Z1��S�'y!����a�815&��۴��H�ٞc��l��F��1�#�6 f�����6���O7���C����֏���8gI���fB�����\DԻ( \ No newline at end of file
diff --git a/lib/phpqrcode/cache/frame_2.png b/lib/phpqrcode/cache/frame_2.png
deleted file mode 100644
index 9c150ebe3..000000000
--- a/lib/phpqrcode/cache/frame_2.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_20.dat b/lib/phpqrcode/cache/frame_20.dat
deleted file mode 100644
index d5ecc1d8a..000000000
--- a/lib/phpqrcode/cache/frame_20.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_20.png b/lib/phpqrcode/cache/frame_20.png
deleted file mode 100644
index 23a061d54..000000000
--- a/lib/phpqrcode/cache/frame_20.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_21.dat b/lib/phpqrcode/cache/frame_21.dat
deleted file mode 100644
index 1974dd9d4..000000000
--- a/lib/phpqrcode/cache/frame_21.dat
+++ /dev/null
@@ -1 +0,0 @@
-x��A� E]s�IX�;��n6Up���в��]٘�< i-eW����)��ŕ��…H\jvq�HL\6���ЅrI��Lܹ��%��@���V�v�����(�P4|�Xn�gɝ��~]D����u1Us S\���,��2��N��?D�K��F-:�eJ]p_���,�a0�`��� X��`�� �w,` X�]��������5 ��Y4{���2���v�Js����9���)�u�۹���,�]����^_�7$�_� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/frame_21.png b/lib/phpqrcode/cache/frame_21.png
deleted file mode 100644
index 291598c72..000000000
--- a/lib/phpqrcode/cache/frame_21.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_22.dat b/lib/phpqrcode/cache/frame_22.dat
deleted file mode 100644
index 0f01802d2..000000000
--- a/lib/phpqrcode/cache/frame_22.dat
+++ /dev/null
@@ -1,3 +0,0 @@
-x��A
-�0 E]{�.�]{{{��Z�Bep��we@�V�ERZ3��"*2o�4�y�)i#d�bdF҅��I"���4��W�I�u��45�x�.Z�S�{���8���k={o.�q���[��:帒q���y
-)t#�N8�dCj�-O�OG}�:/�:s�z!�)^<�e��S�u�{� '�p� '�=�=�=�'�p� '�p�ߣߣ���N8���9����pQQ�]H�pz���G�^�Q��I|�߳�u;9�����d;�X~$����t����dy \ No newline at end of file
diff --git a/lib/phpqrcode/cache/frame_22.png b/lib/phpqrcode/cache/frame_22.png
deleted file mode 100644
index bc97bd01b..000000000
--- a/lib/phpqrcode/cache/frame_22.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_23.dat b/lib/phpqrcode/cache/frame_23.dat
deleted file mode 100644
index ee3b37073..000000000
--- a/lib/phpqrcode/cache/frame_23.dat
+++ /dev/null
@@ -1,3 +0,0 @@
-x��A
-� E���fo�7ћU�) %M!Δ��Yu(<���sK��T���
-�&�I�\i+�Ъ�(m��FQ���h�����v~n1�o�]s����_ޟ�3`�_w2�ȹ�lc[��;��c֟ˤ�N�4�p� 7�p��mT�������r�i��_��pS=7�7�p� 7�pÍ>I��O�-� 7�p� 7�$}�>ɷ7�p� �tss��rs ��V������m��ҹ���}R~7��&���?7�����ԦI�bh�{�<�Mi- \ No newline at end of file
diff --git a/lib/phpqrcode/cache/frame_23.png b/lib/phpqrcode/cache/frame_23.png
deleted file mode 100644
index b8f16ae23..000000000
--- a/lib/phpqrcode/cache/frame_23.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_24.dat b/lib/phpqrcode/cache/frame_24.dat
deleted file mode 100644
index 7b92e29c4..000000000
--- a/lib/phpqrcode/cache/frame_24.dat
+++ /dev/null
@@ -1 +0,0 @@
-x��A� E���MX0;���nVP4�HSS�x�U3�/O�� LiJ4���V� JC�%��6VR&��D�B�HjD��J�??���Bl�cDZ�'�U��X�U�ޏ0��yw�į�j��똳�3ś��cj���{���:Gq�G��������N�v;��笓J ���<���]�����#�8�#�8�H'�������Gq�G��tr:9�#�8�#�8�ؓh���N�t����_��>t�e��S�����^�\g���Qe?�vu��o��;��>�*�wl��m� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/frame_24.png b/lib/phpqrcode/cache/frame_24.png
deleted file mode 100644
index 397c64f85..000000000
--- a/lib/phpqrcode/cache/frame_24.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_25.dat b/lib/phpqrcode/cache/frame_25.dat
deleted file mode 100644
index ba125182e..000000000
--- a/lib/phpqrcode/cache/frame_25.dat
+++ /dev/null
@@ -1,3 +0,0 @@
-x���A
-� ��s낋�]r�x�Y51mM�BG
-��*Sx|Ua5Ƶ�Z���-,�1�H�P�Rj��X5��i����G�>W���R���/��+uT廯� �ӯ嗴�u����[S�a�[kv��5�+5n���J��%+V�X�bŊ�߬u'�������SR����tzZ��+�+V�X�bŊ�ٟٟٟ��+V�X�b��������}Ŋ+V�X�������VI�����+k�q�[��t��oVZ��voNV�w�}�{�r<ýR��"�R��]� W�r} \ No newline at end of file
diff --git a/lib/phpqrcode/cache/frame_25.png b/lib/phpqrcode/cache/frame_25.png
deleted file mode 100644
index 25bc4454a..000000000
--- a/lib/phpqrcode/cache/frame_25.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_26.dat b/lib/phpqrcode/cache/frame_26.dat
deleted file mode 100644
index d34a73f15..000000000
--- a/lib/phpqrcode/cache/frame_26.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x��A
-� E��օ,t�7�7ћU� E)i7�*~c����X�EB��FC���6�:&�L,�Mv.����Kg�ո�YM�>���>�mۚ�?��v���mg?��ұ����η�d��C��U��Ik���E\��Ms�f�a�f�a>�[sӈ9쬩ެ8b�<k��7�}�k������3�0� 3�0� 3��*r��\�7 f�a�f�a�fr��\�7 f�a�f�a�Y���� �d�4�9k�����y�X y�g���)��dw�n̢�U�>��]��Lg�������Eo� w1 \ No newline at end of file
diff --git a/lib/phpqrcode/cache/frame_26.png b/lib/phpqrcode/cache/frame_26.png
deleted file mode 100644
index f4a6b3938..000000000
--- a/lib/phpqrcode/cache/frame_26.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_27.dat b/lib/phpqrcode/cache/frame_27.dat
deleted file mode 100644
index b4d9ffd4f..000000000
--- a/lib/phpqrcode/cache/frame_27.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_27.png b/lib/phpqrcode/cache/frame_27.png
deleted file mode 100644
index 8419ec230..000000000
--- a/lib/phpqrcode/cache/frame_27.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_28.dat b/lib/phpqrcode/cache/frame_28.dat
deleted file mode 100644
index 8cbaa1961..000000000
--- a/lib/phpqrcode/cache/frame_28.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_28.png b/lib/phpqrcode/cache/frame_28.png
deleted file mode 100644
index 7609d8e1f..000000000
--- a/lib/phpqrcode/cache/frame_28.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_29.dat b/lib/phpqrcode/cache/frame_29.dat
deleted file mode 100644
index 5e4a71103..000000000
--- a/lib/phpqrcode/cache/frame_29.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���A� �a�޺ ����@n7+*����4�!�?�J��� ���抮�]���S��Tf)��s�I�"�Ȕb��0��|�"Luٸ�,��E�1\6�*�uQ�?�>a�υ����R�-r���n.�ꯋ\�T��:�*)|)�� ,�� ,�������x_�}:^R��Uoɢ�u�~�މX`�XЏЏЏЏ�_`�X`�XЏЏЏ�_`�X`�XЏЏЏЏ�wb�X`���PU��)D��"c�{�z���3��<}��^?b�m���잃�����a������.�]
-�{Q6u�T,9 \ No newline at end of file
diff --git a/lib/phpqrcode/cache/frame_29.png b/lib/phpqrcode/cache/frame_29.png
deleted file mode 100644
index ffe072c86..000000000
--- a/lib/phpqrcode/cache/frame_29.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_3.dat b/lib/phpqrcode/cache/frame_3.dat
deleted file mode 100644
index 188d531c2..000000000
--- a/lib/phpqrcode/cache/frame_3.dat
+++ /dev/null
@@ -1 +0,0 @@
-x��� � E{v�& ��&�Y+�b���k�'y������a�:��TXl�޶$W+ӏv��9}gR�@H0YPB���Em��?�����s��"b��t2cn���:�ﺭ�;�Y���z�Q��7�� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/frame_3.png b/lib/phpqrcode/cache/frame_3.png
deleted file mode 100644
index 945ee7cb9..000000000
--- a/lib/phpqrcode/cache/frame_3.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_30.dat b/lib/phpqrcode/cache/frame_30.dat
deleted file mode 100644
index 44cf3d317..000000000
--- a/lib/phpqrcode/cache/frame_30.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_30.png b/lib/phpqrcode/cache/frame_30.png
deleted file mode 100644
index 75dbddd24..000000000
--- a/lib/phpqrcode/cache/frame_30.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_31.dat b/lib/phpqrcode/cache/frame_31.dat
deleted file mode 100644
index ce429d0a6..000000000
--- a/lib/phpqrcode/cache/frame_31.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���A� �a�޺ �� �&r��������4�����y��ķ!�mV3I��v�!Ҝ�2�i\NSS�4EF2�+65���e���/W�s]��!��?�p����=S~��Đ?��+�x��6r6y�����}�Ǵ���eR1-�W�l��l����Ҍ�X�z/>V櫷��:ñ���A�8��-+mT���bl��l��l�tM�&]��l��l���&]��I���l��l���&]���y� 6�`� 6�`���i�uy��XW���i��\t��z���>�.�z�k�� t��7��7�wJ�ϔ�4�w��҈����85� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/frame_31.png b/lib/phpqrcode/cache/frame_31.png
deleted file mode 100644
index b14d1fa26..000000000
--- a/lib/phpqrcode/cache/frame_31.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_32.dat b/lib/phpqrcode/cache/frame_32.dat
deleted file mode 100644
index aaa0808e2..000000000
--- a/lib/phpqrcode/cache/frame_32.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x����
-� ��־����.� �D�l�, ��Mz��6��Ç gcJ�D;�'.�A�Iq�މ�I,Ir�Y����Fk%�D�O�y|ED�D��(L�_Y��>*ߚ?a�O��k�L_�<[c���>�c˘�u�LI��%�#�0�#�0�#��otѢ���}��4�f�v_)��E�p���h5R��8�8�1�#�0�#�0���i�tZ�#�0�#�0�#�0���i�tZ�#�0�#�0�#�0���i�tZ�l�0�#�0���9q"��HܜH�Q����"��L5}-��Y׾��k�`��>�z鸳���4&�p��!���!��`�:5 \ No newline at end of file
diff --git a/lib/phpqrcode/cache/frame_32.png b/lib/phpqrcode/cache/frame_32.png
deleted file mode 100644
index 58d42db3c..000000000
--- a/lib/phpqrcode/cache/frame_32.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_33.dat b/lib/phpqrcode/cache/frame_33.dat
deleted file mode 100644
index a2613755a..000000000
--- a/lib/phpqrcode/cache/frame_33.dat
+++ /dev/null
@@ -1,14 +0,0 @@
-x���A� �a�޺�����@n7+*L++�柮����bb�*LC�����c k�H�r��j���J5Y�i~0�_����T�T�}�e�>��5�b_�w�͟?���������\��Ra�i+7��W��\��wLUN�L��
-+���
-+������j��O��kc�����\˩|%�o<�k��L�+�+�v���
-+���
-+��Š>}� �8���
-+���
-+���
-+� ��3�g��
-+���
-+���
-+��3�g��@���
-+���
-+���
-+��:R���X��B�9��I�=�k���o/Sw�ؘ�ٯ�`g������r_ٙ�Y��VSY��zIefnmQoz >� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/frame_33.png b/lib/phpqrcode/cache/frame_33.png
deleted file mode 100644
index 924c728e0..000000000
--- a/lib/phpqrcode/cache/frame_33.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_34.dat b/lib/phpqrcode/cache/frame_34.dat
deleted file mode 100644
index 7ceb0259d..000000000
--- a/lib/phpqrcode/cache/frame_34.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_34.png b/lib/phpqrcode/cache/frame_34.png
deleted file mode 100644
index a477042d8..000000000
--- a/lib/phpqrcode/cache/frame_34.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_35.dat b/lib/phpqrcode/cache/frame_35.dat
deleted file mode 100644
index 56bc3e28e..000000000
--- a/lib/phpqrcode/cache/frame_35.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_35.png b/lib/phpqrcode/cache/frame_35.png
deleted file mode 100644
index d29806c60..000000000
--- a/lib/phpqrcode/cache/frame_35.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_36.dat b/lib/phpqrcode/cache/frame_36.dat
deleted file mode 100644
index 282c60d23..000000000
--- a/lib/phpqrcode/cache/frame_36.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_36.png b/lib/phpqrcode/cache/frame_36.png
deleted file mode 100644
index 96ecb4213..000000000
--- a/lib/phpqrcode/cache/frame_36.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_37.dat b/lib/phpqrcode/cache/frame_37.dat
deleted file mode 100644
index 015c0f24b..000000000
--- a/lib/phpqrcode/cache/frame_37.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_37.png b/lib/phpqrcode/cache/frame_37.png
deleted file mode 100644
index fcc51627d..000000000
--- a/lib/phpqrcode/cache/frame_37.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_38.dat b/lib/phpqrcode/cache/frame_38.dat
deleted file mode 100644
index 71cf53eb5..000000000
--- a/lib/phpqrcode/cache/frame_38.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���A��0Ў�u�A2�;Н��k�(�g��y�tp9��$��D���\�e^'t�-aI��FM�S�k��I�Ť�:7��|L�k�N�8N7���i}����i,�[W��g�Ӵ���?3�1�i��N�}}=�OM:4��)S�L�2eʔ)S�L#$�� ��J���JM:}�]���L�٧�S�QL�2eʔ)S�L�2ա�Pt(:��)S�L�2eʔ)S�:�E��Cq�2eʔ)S�L�2eʔ�E��Cѡ8O�2eʔ)S�L�2e�T��Cѡ�P��L�2eʔ)S�L�2ݓ��sJCIK�Ԃi�93��n�_�� ������+R�����i�����4��\�g�����;% }�a�n�� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/frame_38.png b/lib/phpqrcode/cache/frame_38.png
deleted file mode 100644
index 89238f3c5..000000000
--- a/lib/phpqrcode/cache/frame_38.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_39.dat b/lib/phpqrcode/cache/frame_39.dat
deleted file mode 100644
index 53511f736..000000000
--- a/lib/phpqrcode/cache/frame_39.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_39.png b/lib/phpqrcode/cache/frame_39.png
deleted file mode 100644
index 1dc9cd1bc..000000000
--- a/lib/phpqrcode/cache/frame_39.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_4.dat b/lib/phpqrcode/cache/frame_4.dat
deleted file mode 100644
index 67b30e82a..000000000
--- a/lib/phpqrcode/cache/frame_4.dat
+++ /dev/null
@@ -1 +0,0 @@
-x��� � E=�u� pجQ��COM�'�ˏ$ �@���3e�F�\FNXRy�ؾC{�a8�R� Ńa2@����qk���H1�(����`c��j�~�0����ܨ���عnX�G���Ā \ No newline at end of file
diff --git a/lib/phpqrcode/cache/frame_4.png b/lib/phpqrcode/cache/frame_4.png
deleted file mode 100644
index b72f9e70d..000000000
--- a/lib/phpqrcode/cache/frame_4.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_40.dat b/lib/phpqrcode/cache/frame_40.dat
deleted file mode 100644
index 90d36dd13..000000000
--- a/lib/phpqrcode/cache/frame_40.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���A��@Ь������@o�7��`�Qfe�䕫PA>�����<?jjo5WNiz��y�W���&]߅C?�I�r�W��^;�8��
-��s<ð��S{�9^gE�}>�<]����߳bZ�n�^A��Q}[�9^�]�y��najM܇K̘1cƌ3f̘1��{�W5}�{��7lM���ޚx�I<��K����αyl3f̘1cƌ3f̘1�ۻٻ={��αyl3f̘1cƌ3f̘1�ۻٻ={��αyl3f̘1cƌ3f̘1�ۻٻ={��αyl3f̘1cƌ3f̘1�ۻٻ={��αyl3f̘1cƌ3f̘���Sʑ�Ӓ7�H�K޼g\��u���_��r'4�[��-�]��q��L��8Ɲ��Y1q�����!���/(%� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/frame_40.png b/lib/phpqrcode/cache/frame_40.png
deleted file mode 100644
index 8034d862d..000000000
--- a/lib/phpqrcode/cache/frame_40.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_5.dat b/lib/phpqrcode/cache/frame_5.dat
deleted file mode 100644
index d5dafe186..000000000
--- a/lib/phpqrcode/cache/frame_5.dat
+++ /dev/null
@@ -1 +0,0 @@
-x��1� E��u�7Л��Z��|N���D B0@R$l,-�>VKZ[<���z�qƎ��YJ&�i�嚂�Zy�:Y'�Y��V�&�e�R�"�sj��r��+���.�MƎ���9��z�s���, \ No newline at end of file
diff --git a/lib/phpqrcode/cache/frame_5.png b/lib/phpqrcode/cache/frame_5.png
deleted file mode 100644
index 96b6494f3..000000000
--- a/lib/phpqrcode/cache/frame_5.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_6.dat b/lib/phpqrcode/cache/frame_6.dat
deleted file mode 100644
index 0fc3d039e..000000000
--- a/lib/phpqrcode/cache/frame_6.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_6.png b/lib/phpqrcode/cache/frame_6.png
deleted file mode 100644
index 05ca358b0..000000000
--- a/lib/phpqrcode/cache/frame_6.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_7.dat b/lib/phpqrcode/cache/frame_7.dat
deleted file mode 100644
index 43375960f..000000000
--- a/lib/phpqrcode/cache/frame_7.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_7.png b/lib/phpqrcode/cache/frame_7.png
deleted file mode 100644
index 7d2ff4f3e..000000000
--- a/lib/phpqrcode/cache/frame_7.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_8.dat b/lib/phpqrcode/cache/frame_8.dat
deleted file mode 100644
index 669b325f3..000000000
--- a/lib/phpqrcode/cache/frame_8.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_8.png b/lib/phpqrcode/cache/frame_8.png
deleted file mode 100644
index db1f1877a..000000000
--- a/lib/phpqrcode/cache/frame_8.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_9.dat b/lib/phpqrcode/cache/frame_9.dat
deleted file mode 100644
index d79295ee0..000000000
--- a/lib/phpqrcode/cache/frame_9.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/frame_9.png b/lib/phpqrcode/cache/frame_9.png
deleted file mode 100644
index 74ddf08da..000000000
--- a/lib/phpqrcode/cache/frame_9.png
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_0/mask_101_0.dat b/lib/phpqrcode/cache/mask_0/mask_101_0.dat
deleted file mode 100644
index 51deabaef..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_101_0.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_0/mask_105_0.dat b/lib/phpqrcode/cache/mask_0/mask_105_0.dat
deleted file mode 100644
index 97e9e5dff..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_105_0.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_0/mask_109_0.dat b/lib/phpqrcode/cache/mask_0/mask_109_0.dat
deleted file mode 100644
index eadf83a2c..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_109_0.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���=
-�0 н�i�9'�b�$��t�����^#i����i?����b�K[AU�F徝Ƶijx]m�]2�������-Ė�K�~ �Vw}�X���������&O�ɓ�666666yR��'�%lllll/��h�l���m ����d�l���3�+��mͫ \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_0/mask_113_0.dat b/lib/phpqrcode/cache/mask_0/mask_113_0.dat
deleted file mode 100644
index 5eb7f5de2..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_113_0.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���;
-�0�>�I��9+E�s�=ϤL1̄[���F�ZU�4�?i<���;7����;��P��#�W-[�ݯ6���dddddd�c",;�"���sk�摑������Q&��erw######�L.���摑������Иy�1�^˲\����3�������� ��v \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_0/mask_117_0.dat b/lib/phpqrcode/cache/mask_0/mask_117_0.dat
deleted file mode 100644
index 781c7f875..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_117_0.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���A
-�0 �}O���r�R,#3���,�����o5�C���q:���;;�wvN��JZG�=�m���}�� ѱ����������2��i�R��k�j_YYYYYYYYe�_��������������/��WVVVVVV�k���d-�Ϻ,#���O��Zc]|�{ž�����$� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_0/mask_121_0.dat b/lib/phpqrcode/cache/mask_0/mask_121_0.dat
deleted file mode 100644
index 68810c347..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_121_0.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���1� О���/��w YM�S���8>2S���F�O�E�����c�W\�ۼ��{c��pK�G��B�К��m��xhfffffff�/s2���2W|*�d�1������������*5�����������̬�RW���a��������s����\xm~8߮��r0w�jsdm����&��y� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_0/mask_125_0.dat b/lib/phpqrcode/cache/mask_0/mask_125_0.dat
deleted file mode 100644
index 2c73ef1a8..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_125_0.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���A
-� н���_���TH`3AO�L�4� k����(���ew��GW����.� #��2���} \��Y����gggggggggg_d�>���j^���s��;;;;;;;;;;�'��q�;;;;;;;;;�'˰�q�u����������_P�������Yw�{e��=d�����G�/��� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_0/mask_129_0.dat b/lib/phpqrcode/cache/mask_0/mask_129_0.dat
deleted file mode 100644
index 812ee8a66..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_129_0.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���1
-� �����/�*��D�E�'�hg�t�-�}_�pV�� \"�b=s������[��J��=8Dh�o�۞'� 0X� ���۴����e�0`�� ��� � j" 0`����Wf`^P0`����2�Ȁ �� ���d07(��<O����o����� 6 �S� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_0/mask_133_0.dat b/lib/phpqrcode/cache/mask_0/mask_133_0.dat
deleted file mode 100644
index 03b41d36d..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_133_0.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���1
-�0 н�I�9����Ty�)<4��h�N��SҚ��]��Z��?�[��H<�u����FI�7����R�`�� ,X���E�޹�˴]�Wg���y�� ,X�`!���Y�#� ,X�`���<"��#� ,X�`���<bg!���,X�`���Wy�O 4ѷ��wf��>Y�/XL�Gb�y�"�pT� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_0/mask_137_0.dat b/lib/phpqrcode/cache/mask_0/mask_137_0.dat
deleted file mode 100644
index f6d993b03..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_137_0.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���1� О���/��+F�Z?�J�� L�7Ժ���*�B�a%L~��˻�����ʓC��J��Y�IWJ ���.K]�R�0a„ ��$��INTw�lL�a���L�0a„ &Ld@P�O�0a„ &L�0�e@P?a„ &L�0a�D�e@�� &L�0a���M��IlL&)dl��g��acR�<�$�v�,��ɺ?U2�] \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_0/mask_141_0.dat b/lib/phpqrcode/cache/mask_0/mask_141_0.dat
deleted file mode 100644
index 8c685c8ea..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_141_0.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���=
-�0 н�i�9'E���Dx͘%<l�[Z�|ZP�N �N��M�7;�m�fovm� 6-�w��ޥ}�y��aÆ 6lذn�_�t�e�iv���ƾ��ٰaÆ 6l�Ț�Y�.fÆ 6lذa#k�SldM�� 6lذaÆ YS֔5�6lذaÆ 6�m����$��& 3dy�ecS���&�N�L��;&��< \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_0/mask_145_0.dat b/lib/phpqrcode/cache/mask_0/mask_145_0.dat
deleted file mode 100644
index 9c9c1ae19..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_145_0.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���;
-�0�>�I��9+E��{��$�m��^�&���u��S"��D��6ڟ]9���8�U�M���b�Ҿ�Y���[�2拉Ĉ#F�1bĈ��%��iRN�潝�ѳ��#;�#F�1bĈ�N��1�i�#F�1bĈ#F�tZ}��Nk1bĈ#F�1b���k�tZ;�#F�1b���F�V-���u�"IoD-�*�7u��j�>b�MV�+ \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_0/mask_149_0.dat b/lib/phpqrcode/cache/mask_0/mask_149_0.dat
deleted file mode 100644
index d25835029..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_149_0.dat
+++ /dev/null
@@ -1,3 +0,0 @@
-x���A
-� н���_�MEQXP৞.�|94���e��{�JL�v���#�^���n[� �?;�
-ZIV-���*w�˒1*+V�X�bŊ��X����g��w��qX}�J�R�Y�bŊ+V�X�beΠwfeΠ^�bŊ+V�X�b�ʜA��ʜA�bŊ+V�X�bŊ�9��ٜ��A�bŊ+V�X�bŊ�l��0��*0T�j`?���Ϊ�����;X���=zZr* \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_0/mask_153_0.dat b/lib/phpqrcode/cache/mask_0/mask_153_0.dat
deleted file mode 100644
index fc79e9ede..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_153_0.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���1� Н���/礑h�&F��`�Ҽ@I;P�Z�^��X�͌�mf��.�=�5 [if-���R+!wr�˜g\j̘1cƌ3f̘1cf��o.�2�?�1���z� `ƌ3f̘1cƌ�������zƌ3f̘1cƌ3f�ztf��3f̘1cƌ3f̘�k�k03��0cƌ3f̘1c����9;��Ď����`vf��̆�͚ZϘ���W9 \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_0/mask_157_0.dat b/lib/phpqrcode/cache/mask_0/mask_157_0.dat
deleted file mode 100644
index ad749f305..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_157_0.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���A
-� н���_��QR����Y �k�����*q͵���=j7�~�nN��.p%ڵ�s�i����.����رcǎ;v�ر{�.-W��2={���mg�y+رcǎ;v��ɳ2;yּcǎ;v�رc�N����ɳ�;v�رcǎ;v2�<�N��V�cǎ;v�ر�ge2v�yǎ;v�رc��]��;����v�"��ޝ]e�'��;[����{�|A� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_0/mask_161_0.dat b/lib/phpqrcode/cache/mask_0/mask_161_0.dat
deleted file mode 100644
index 4bdc5fdd3..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_161_0.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_0/mask_165_0.dat b/lib/phpqrcode/cache/mask_0/mask_165_0.dat
deleted file mode 100644
index 3a17a0510..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_165_0.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���;
-�0�>�I�9+��Dy�I�4ˠ�5�:��W���v�d���q�ߜܴ<��d�2x%[���U�%����2�]&K�,Y�dɒ%ˡ,S�՗�r2yd�=,�k�_�{X�dɒ%K�,Y�d)�0���m�,Y�dɒ%K�,Y�d)�0���m�,Y�dɒ%K�,Y��m��e,e�%K�,Y�dɒ%K�,e�q�� ���Ò%K�,Y�dɒ�e�:��<���!����YV�,��:B�d�|O�$*# \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_0/mask_169_0.dat b/lib/phpqrcode/cache/mask_0/mask_169_0.dat
deleted file mode 100644
index c4787d9db..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_169_0.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���1
-�0�>�I��9EQ�=��Ls ��I���{�Zt��R���}����S��n:�|��R[�?��_*S�L�2eʔ)S�L��&Ϧ�I ��O�2�O���2eʔ)S�L�2e*C1��P��P�S�L�2eʔ)S�L��P��2�2��)S�L�2eʔ)S�Le(�}�2��)S�L�2eʔ)S�Le(�}�2��)S�L�2eʔ)S��i�c7;�"�ޙFͦސٙv�L ��^��2}oO��'r \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_0/mask_173_0.dat b/lib/phpqrcode/cache/mask_0/mask_173_0.dat
deleted file mode 100644
index 5ef85e7ad..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_173_0.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���1�0�ޯ����T ���[4v��2��ƽok݇��;�Ӳ]f��֞�d���lj�lG���0n+�߻m�G�˖-[�lٲe�"����Y�}o�������V��[�lٲe˖-[�lٲe��հՃ�[�2�lٲe˖-[�lٲe��հՃ�[�2�lٲe˖-[�lٲe��հՃ�[�lٲe˖-[�lٲe�V��a���lٲe˖-[�lٲef[�B��mа��E���;�N��-ۜT�/r��l��?��*� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_0/mask_177_0.dat b/lib/phpqrcode/cache/mask_0/mask_177_0.dat
deleted file mode 100644
index 78a26a77b..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_177_0.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���1
-�0�>�I�9+?����߁��iև d�̹��xֈx�N��/�է|{�ظ�����8d�����0�h��=��cFf̘1cƌ3f̘q�q�=�w6�;l��4cƕ�<�nj3f̘1cƌ3f�X�һ1ֻ�cƌ3f̘1cƌ3f�X�b�w�nj3f̘1cƌ3f̘��M'�X�&��1cƌ3f̘1cƌ3ֻ��n��n�1cƌ3f̘1cƌÍ3U<� \7�+��(<Oƌ��Ί��nj����4@ \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_0/mask_21_0.dat b/lib/phpqrcode/cache/mask_0/mask_21_0.dat
deleted file mode 100644
index 368c9941f..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_21_0.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_0/mask_25_0.dat b/lib/phpqrcode/cache/mask_0/mask_25_0.dat
deleted file mode 100644
index e4a5b6d8a..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_25_0.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_0/mask_29_0.dat b/lib/phpqrcode/cache/mask_0/mask_29_0.dat
deleted file mode 100644
index 74a216b4f..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_29_0.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_0/mask_33_0.dat b/lib/phpqrcode/cache/mask_0/mask_33_0.dat
deleted file mode 100644
index 2ec712a7a..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_33_0.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_0/mask_37_0.dat b/lib/phpqrcode/cache/mask_0/mask_37_0.dat
deleted file mode 100644
index 1588cfce1..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_37_0.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_0/mask_41_0.dat b/lib/phpqrcode/cache/mask_0/mask_41_0.dat
deleted file mode 100644
index e369027e3..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_41_0.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_0/mask_45_0.dat b/lib/phpqrcode/cache/mask_0/mask_45_0.dat
deleted file mode 100644
index 452f126c8..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_45_0.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_0/mask_49_0.dat b/lib/phpqrcode/cache/mask_0/mask_49_0.dat
deleted file mode 100644
index fdd2aac15..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_49_0.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���K� E�9���o�#?H/�6g$�-���,X]
-��xݘ;�� X԰�9��<�Ѻ��q��2�Af��H�7��/5We�{�#���fި��?�4�=N >�� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_0/mask_53_0.dat b/lib/phpqrcode/cache/mask_0/mask_53_0.dat
deleted file mode 100644
index 572d279ef..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_53_0.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���K
-@!й���o�Q�Ϻ:(m&���s-����6��Z{��m4Y��X���.F�٭���XZi���j=:έ֋b忑VH 8 �#�[������Y���^X��e \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_0/mask_57_0.dat b/lib/phpqrcode/cache/mask_0/mask_57_0.dat
deleted file mode 100644
index ea81e6dc6..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_57_0.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-x���A
-� �{^���s=YL՚ (
-o�u���j) ��
-Z7y�����v,Դ�wVQ �i���GiҤ��Df�ە��wo4�Ѥ���o�L���Lȼ���������}�4� h� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_0/mask_61_0.dat b/lib/phpqrcode/cache/mask_0/mask_61_0.dat
deleted file mode 100644
index 93d2444d8..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_61_0.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_0/mask_65_0.dat b/lib/phpqrcode/cache/mask_0/mask_65_0.dat
deleted file mode 100644
index df29d7bfb..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_65_0.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_0/mask_69_0.dat b/lib/phpqrcode/cache/mask_0/mask_69_0.dat
deleted file mode 100644
index 8a2cfbd7c..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_69_0.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���K� �=���_�+�m��B���d|Q"s+1���"�),�=�E��a T�"���n�E-3 ,��KY�w�=Z�Z�T �.,��K1��#<XBt��<��a ��b�#�x/;X.��� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_0/mask_73_0.dat b/lib/phpqrcode/cache/mask_0/mask_73_0.dat
deleted file mode 100644
index 3de460662..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_73_0.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���1� �����/��FSM(���7��/JTme�ӕ��l�����s�|��)YY�U�S%�7{i��(L�0mo�짻'���w��DŽ {�=Όc��)�2���֦�~���Lz�)�vZ5O2]=��? \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_0/mask_77_0.dat b/lib/phpqrcode/cache/mask_0/mask_77_0.dat
deleted file mode 100644
index 2717fd86b..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_77_0.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���A� D�}O���r�0����B�/;b�Hp/��*K�E7�G���/_l}�x��MP
-[(筊��Zޛ�lI6lض�eϷ��O������^�� 6�,�,�6l�&l���& ��^�Wc�}m�5u���E�;�e \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_0/mask_81_0.dat b/lib/phpqrcode/cache/mask_0/mask_81_0.dat
deleted file mode 100644
index 2d9a052fc..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_81_0.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���1� �ὧi�9'�Bߠ���E�Mpo#
-�& �a���6��)c�~��b �1�߱���ߧ�|Y$F�1N�q_��.����31bĈ�~M���`Ĉco{B�807����dt���v���f����� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_0/mask_85_0.dat b/lib/phpqrcode/cache/mask_0/mask_85_0.dat
deleted file mode 100644
index eb8197b20..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_85_0.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���1
-� ��=�I��NE�Z_��� �m E�Vqy�2Yh,S�[����g��UXJkd��.��~>֞!�Ŋ+V�嬪�����.���2�X�bŊ����+V�X����.�kB��z���w��ձ�̀g�k��YZ� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_0/mask_89_0.dat b/lib/phpqrcode/cache/mask_0/mask_89_0.dat
deleted file mode 100644
index aaa4c5267..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_89_0.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���1� �ὧi�9'�������Hl?L��^"�&M��?b�q��?˸��,�9���!��z�]V��Scƌ3�_����c��!�`n��3f̘1c�̌�� 3f̘1/f�>.U��c�˻;� �2;�Y����+�7�� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_0/mask_93_0.dat b/lib/phpqrcode/cache/mask_0/mask_93_0.dat
deleted file mode 100644
index e218fa0ef..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_93_0.dat
+++ /dev/null
@@ -1,3 +0,0 @@
-x���K
-� E�yV����,�O�mޠr�PH�0�{��������2�b�����c{t�Q�]
-{Q�{��{弬֒�ǎ;v��_ڳ��}�����L�}l�߱cǎ;v�̑̑̑رcǎ������.L���egw�3���qe��Ѿ@�i \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_0/mask_97_0.dat b/lib/phpqrcode/cache/mask_0/mask_97_0.dat
deleted file mode 100644
index 74ac719d0..000000000
--- a/lib/phpqrcode/cache/mask_0/mask_97_0.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_1/mask_101_1.dat b/lib/phpqrcode/cache/mask_1/mask_101_1.dat
deleted file mode 100644
index ec939b521..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_101_1.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���1
-� н����\Q��E���d  1���N�<�#��Ֆ��-7u��.��l�ԦeiXXXXXRZV��VeIo1�,,,,,v%�?��gaaaa��Y� K&K=/���+ۍ�˱����ގ� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_1/mask_105_1.dat b/lib/phpqrcode/cache/mask_1/mask_105_1.dat
deleted file mode 100644
index e1f5c99b4..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_105_1.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���1� ��Ӕ�_Υ�b�� K�B�?"�*#W�ʘt������gӎ�J��qUM9���������T���LLv��Ǥ��LLLLLLz��gG01111��y�i��ߘ�4m�=՛n��+2 \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_1/mask_109_1.dat b/lib/phpqrcode/cache/mask_1/mask_109_1.dat
deleted file mode 100644
index 7e0d6d164..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_109_1.dat
+++ /dev/null
@@ -1 +0,0 @@
-x��ֱ � �>Ә��K�����}���:!���iY��'*3�]f�s������m��b[�J������ƶŖ�K�9�}cccccc�'u.6�������Ʀs���6666�R[�^g�{/l��ٷ� �7͂ \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_1/mask_113_1.dat b/lib/phpqrcode/cache/mask_1/mask_113_1.dat
deleted file mode 100644
index 1dd666d9b..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_113_1.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���1� ������ -8fL(pB�lDM��9";��-����;?1�p��{�\���%-�������3:@�ad4����������*�N��adddddd���#######�#c]75��������1�xYu� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_1/mask_117_1.dat b/lib/phpqrcode/cache/mask_1/mask_117_1.dat
deleted file mode 100644
index 8921f6437..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_117_1.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x��ֻ � �>Ә��K���$�^� 8Y�QSV'z�8��jz��ʇ��^]�ס����ekXYYYYYYYjݵ#�
-+�yeeeeeeee�#���WVVVVVVVV;"+�yeeeeeee�l�'�e;b��&�^9�{�/�J$p \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_1/mask_121_1.dat b/lib/phpqrcode/cache/mask_1/mask_121_1.dat
deleted file mode 100644
index 64bd8ba04..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_121_1.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���1
-� н����\���C�PbїE��<D�Gd���QG̪�3�����k?3�s�9_�z�9i���������|3W���3�����������,W��r�7���������Y�`���a���������sd^���g�ۚ����4�� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_1/mask_125_1.dat b/lib/phpqrcode/cache/mask_1/mask_125_1.dat
deleted file mode 100644
index d5881dd5d..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_125_1.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���1
-� н����\��:���҂�>$�DdƩ���Y����t�څ�λ������0�$���������������ή���������������ꝝ��������g�a7�y��������ٯ�痽Y??���{�{���D�� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_1/mask_129_1.dat b/lib/phpqrcode/cache/mask_1/mask_129_1.dat
deleted file mode 100644
index 62cd1c9a1..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_129_1.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_1/mask_133_1.dat b/lib/phpqrcode/cache/mask_1/mask_133_1.dat
deleted file mode 100644
index 18d68dce8..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_133_1.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���1� ��Ӕ�_΅���h���h���|"z�ۉ�-*dN��������H���QĢ�R ,X�`�c���9�Y�(na_�`�� ,X�,X�,X�`�� �#:8 ��� ,X�`�B�d�¾`�� ,X|ϢY\X��;� 7-��;� ` \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_1/mask_137_1.dat b/lib/phpqrcode/cache/mask_1/mask_137_1.dat
deleted file mode 100644
index 284d7beab..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_137_1.dat
+++ /dev/null
@@ -1,3 +0,0 @@
-x���1
-�0 ��Ӥ���Kh]D���,-t ��#�ڌ�Q[T�� �K�s�7_����?9|�B&�X�^L�0a„��&3���„�M�&L�0a„ &2���D4c�0a„ &L�Ȁ�Ќe„ &L�0ab��w�Ȁf,&L�0a„�7&y2�a��n�oL�<01O
-���� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_1/mask_141_1.dat b/lib/phpqrcode/cache/mask_1/mask_141_1.dat
deleted file mode 100644
index 83220ddb4..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_141_1.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���1
-� �>�9���4�6)�3�$`s ��uʮ�>Wd�� �)�g��'��M�{3\�d6u��bذaÆ 6lؼn��]�Nذ9�FްaÆ 6lذa�3�a#oذaÆ 6lذ�ذ�5e16lذaÆ ]S�b�k�6lذaÆ �m�ͤ��;C�c�f���Ids�G�� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_1/mask_145_1.dat b/lib/phpqrcode/cache/mask_1/mask_145_1.dat
deleted file mode 100644
index 6a9950f7a..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_145_1.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���!�0@�k����� 4a)�q�2i.YCUO{35�UZ�F�n]�fN>bd��wtzJ�F}�F�1bĈ#F���(��F�6r�1bĈ#F�1�E1�i�lF�1bĈ#F�tF��#F�1bĈ#F�tZ}�#��#F�1bĈ�l��e��H��G���ܣ@�ٝ�� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_1/mask_149_1.dat b/lib/phpqrcode/cache/mask_1/mask_149_1.dat
deleted file mode 100644
index 02a3cdc6e..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_149_1.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���1� ��Ӕ�_΅��q�H�_X��c��i�#Gd̘�Ք՛��g��LU�^ݮVR�>dKV�X�bŊ+V�Xe�o��X���J_�bŊ+V�X�b��;�ݙ+}Ŋ+V�X�bŊ+V�AV���ngŊ+V�X�bŊ�}�+� ��+V�X�bŊ�V��j��>�hewf����*`uTq� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_1/mask_153_1.dat b/lib/phpqrcode/cache/mask_1/mask_153_1.dat
deleted file mode 100644
index 2abfca20b..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_153_1.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���1
-�0���\��9��bt��E�c'���HH���9�efߞmff�M�������#.̘1cƌ3f̘1cf��7�3f̘�g̘1cƌ3f̘1c�o2c�]�?�3f̘1cƌ3f�5�Mf��3f̘1cƌ3f̘1�7utf��3f̘1cƌ3f̘=���l����j��3���>�����V� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_1/mask_157_1.dat b/lib/phpqrcode/cache/mask_1/mask_157_1.dat
deleted file mode 100644
index 17344b891..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_157_1.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���1
-� �>�9���4S��d/�5��1��V�)Sk�J����v��7���������eG�cǎ;v�رc��]Z���ٱc'�رcǎ;v�ر�+ر�g�;v�رcǎ;}V�`�N��+رcǎ;v���:;v�;v�رcǎ;��;}Vޱcǎ;v�ص��'��vz�#;��]���klw�oA` \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_1/mask_161_1.dat b/lib/phpqrcode/cache/mask_1/mask_161_1.dat
deleted file mode 100644
index 669ade1b8..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_161_1.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���1�0�����_΅X���š yi~���Q�b��kv�p���7'M u��=�]����([ 2dȐ�� +��\' 2�� 2dȐ!C� 2�s0/3d(�) 2dȐ!C� 24�1dh� 2dȐ!C� 2dh�cȐ�<dȐ!C� 2dȐ���y�!Cy�MaȐ!C� 2d��0� ���^��4��[��E2� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_1/mask_165_1.dat b/lib/phpqrcode/cache/mask_1/mask_165_1.dat
deleted file mode 100644
index abb48f0b1..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_165_1.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���1� ��Ӕ�_ΥLK^��#�F��YWt��%ˍ�����4�����r��M,��Q�X�dɒ%K�,Y��������d�Ҽdɒ%K�,Y�dɒ%K�%K� �%K�,Y�dɒ%K�v2$K�v��,Y�dɒ%K�,Yʐ�8K�楷�%K�,Y�dɒ%K�2$K�,�K�,Y�dɒ%K�,�Z��VK�<β��yy�� ��)� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_1/mask_169_1.dat b/lib/phpqrcode/cache/mask_1/mask_169_1.dat
deleted file mode 100644
index ba21b710b..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_169_1.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���1� н���_� ��M,����B^ ��5*V���K�N�n2�����N�NO��i6>�S�L�2eʔ)S�L�2��M� S�L�S�L�2eʔ)S�L�2�M�}�L�SS�L�2eʔ)S�LeSy�)S��Ŕ)S�L�2eʔ)S;ٔ)S;�)S�L�2eʔ)S�v(�)S�v(�)S�L�2eʔ)S��L�d��T6}a*�3mlj�mzC' \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_1/mask_173_1.dat b/lib/phpqrcode/cache/mask_1/mask_173_1.dat
deleted file mode 100644
index 436918c0b..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_173_1.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���1� ��Ӕ�_Υ''�@y]X��1?"g�:1犝fn˶��˻����m������m.?��lٲe˖-�F����>glٲ���2�lٲe˖-[�lٲe�O`˖��e˖-[�lٲe˖-[�l� lٲ��lٲe˖-[�lٲe�V�O`˖��e˖-[�lٲe˖-[�z0}[�z0y˖-[�lٲe˖-[�E��e[h�O��VWö���=��t�*| \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_1/mask_177_1.dat b/lib/phpqrcode/cache/mask_1/mask_177_1.dat
deleted file mode 100644
index 12e2e522f..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_177_1.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���1� �������E���p0�X���,a#r��}��6}nj��������~���\�8��ƌ3f̘1cƌ�7���{�3f,��y�3f̘1cƌ3f�X_��`�X�&�3f̘1cƌ3f̘��M_��1cy̘1cƌ3f̘1cƌ�+3f,��y�3f̘1cƌ3f�X_�b�X�&�3f̘1cƌ3f�x��2�d����X'�x[cy|�� ��3� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_1/mask_21_1.dat b/lib/phpqrcode/cache/mask_1/mask_21_1.dat
deleted file mode 100644
index f87e0a112..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_21_1.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_1/mask_25_1.dat b/lib/phpqrcode/cache/mask_1/mask_25_1.dat
deleted file mode 100644
index 3a225e30f..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_25_1.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_1/mask_29_1.dat b/lib/phpqrcode/cache/mask_1/mask_29_1.dat
deleted file mode 100644
index 0a1cb3b5d..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_29_1.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_1/mask_33_1.dat b/lib/phpqrcode/cache/mask_1/mask_33_1.dat
deleted file mode 100644
index 318949df0..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_33_1.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_1/mask_37_1.dat b/lib/phpqrcode/cache/mask_1/mask_37_1.dat
deleted file mode 100644
index 5bd9e3aa0..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_37_1.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_1/mask_41_1.dat b/lib/phpqrcode/cache/mask_1/mask_41_1.dat
deleted file mode 100644
index 52e9e58f4..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_41_1.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_1/mask_45_1.dat b/lib/phpqrcode/cache/mask_1/mask_45_1.dat
deleted file mode 100644
index b35c567dc..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_45_1.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_1/mask_49_1.dat b/lib/phpqrcode/cache/mask_1/mask_49_1.dat
deleted file mode 100644
index d20d71710..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_49_1.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_1/mask_53_1.dat b/lib/phpqrcode/cache/mask_1/mask_53_1.dat
deleted file mode 100644
index a676d7dfa..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_53_1.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_1/mask_57_1.dat b/lib/phpqrcode/cache/mask_1/mask_57_1.dat
deleted file mode 100644
index 896ed4357..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_57_1.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_1/mask_61_1.dat b/lib/phpqrcode/cache/mask_1/mask_61_1.dat
deleted file mode 100644
index 4165a4bd2..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_61_1.dat
+++ /dev/null
@@ -1 +0,0 @@
-x�30�Cb�pP�����i`�@�&��H^��n�a�d�Q�G��{�n<v�Z���G�Mk�v��=j7��⠳���9m��n7��<����h \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_1/mask_65_1.dat b/lib/phpqrcode/cache/mask_1/mask_65_1.dat
deleted file mode 100644
index db8db88a8..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_65_1.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_1/mask_69_1.dat b/lib/phpqrcode/cache/mask_1/mask_69_1.dat
deleted file mode 100644
index 03bba657f..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_69_1.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_1/mask_73_1.dat b/lib/phpqrcode/cache/mask_1/mask_73_1.dat
deleted file mode 100644
index a729fdf04..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_73_1.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_1/mask_77_1.dat b/lib/phpqrcode/cache/mask_1/mask_77_1.dat
deleted file mode 100644
index 0fe0b03e8..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_77_1.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_1/mask_81_1.dat b/lib/phpqrcode/cache/mask_1/mask_81_1.dat
deleted file mode 100644
index eacbdb1a2..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_81_1.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_1/mask_85_1.dat b/lib/phpqrcode/cache/mask_1/mask_85_1.dat
deleted file mode 100644
index b8a20c754..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_85_1.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���1
-� н����\�]��4���AA h���M�\Q��js��Ak�U���jm�un2R������Κ5��:k;�������jƲ�[����eo����[�o��[��k����Z� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_1/mask_89_1.dat b/lib/phpqrcode/cache/mask_1/mask_89_1.dat
deleted file mode 100644
index e9d226f35..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_89_1.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���1� ��Ӕ�_΅�N�h}%��@ iDO�H��*c�"���<��g���)�<m�Bs������������w�ja.av��������7��Affff極�2淾��5 �uح�9�|��� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_1/mask_93_1.dat b/lib/phpqrcode/cache/mask_1/mask_93_1.dat
deleted file mode 100644
index f37836c61..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_93_1.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���;
-� �>���_.��4I���y킎��`)-5*��(��of[�sm�}���������6YM ;;;;;�G{��z�ط����������z1vw������}�=�wu���L�%�?�"�=�~e�i \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_1/mask_97_1.dat b/lib/phpqrcode/cache/mask_1/mask_97_1.dat
deleted file mode 100644
index 24fa60fc3..000000000
--- a/lib/phpqrcode/cache/mask_1/mask_97_1.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���1
-�0н�1��\��tncK����<D��i3#Gdgt(lxV��P���9�F�7lia``````�ސq/]5�� v�����������ne``````x��-mX�^���3�5,�y�-��# \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_2/mask_101_2.dat b/lib/phpqrcode/cache/mask_2/mask_101_2.dat
deleted file mode 100644
index e39fd2cf1..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_101_2.dat
+++ /dev/null
@@ -1,3 +0,0 @@
-x���1
-� н������C�� �Ux!��?1�e�����)���s��*�KۮLf�B�P(��J֮�ܨx/
-�B�a(2 �B�P(2 E��P(ʲR�S�(%qWR�S����iY� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_2/mask_105_2.dat b/lib/phpqrcode/cache/mask_2/mask_105_2.dat
deleted file mode 100644
index 7b63e31ba..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_105_2.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���!� @����\M��i�p4s��� 6��ꙑYs�"�7���&)=�;� �܌�"�H$ҏ���;�|I�H$�D��t#}O�H$�D��H���H$������IZ�#HgK��J�t�$� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_2/mask_109_2.dat b/lib/phpqrcode/cache/mask_2/mask_109_2.dat
deleted file mode 100644
index 252f6d807..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_109_2.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���1
-�0н�1��\�@�Nֈ<q��#��#v�����-e~_�����[�����h4�6JK��Fj��F��h4��E�'i4�F�ɓ4y�F��h��Z�EcS-;��&j�������� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_2/mask_113_2.dat b/lib/phpqrcode/cache/mask_2/mask_113_2.dat
deleted file mode 100644
index 26b5d7eab..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_113_2.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���1�0�����_�š��Ъ�0�ځ�D\5*{�#��b�H'o+vU��R1�P�D"�H$����>�D"�H$��D��H$�D"Q&�Wer�H$�D"���*x[�(�?/����'��nd \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_2/mask_117_2.dat b/lib/phpqrcode/cache/mask_2/mask_117_2.dat
deleted file mode 100644
index b4dcce46f..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_117_2.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���1
-� �>�9���4!m dO�s\�0X,la�5#��E���>Z[�ַ�����R�T*�J�R?Q-���*�T*�J�R��?U��W*�J�R�Tݟ���+�J�R�Ԥ���~m5��;���S�&+ \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_2/mask_121_2.dat b/lib/phpqrcode/cache/mask_2/mask_121_2.dat
deleted file mode 100644
index a2a0097b1..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_121_2.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_2/mask_125_2.dat b/lib/phpqrcode/cache/mask_2/mask_125_2.dat
deleted file mode 100644
index 0ea40fdae..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_125_2.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���!� P�Ӕ�_�@ U(�kp@^M��ڮ5��������-��:��VF_��\t:�N���t����y�N�qt:�N���t�G���;�N���t:�.���8:�N���tzA}�����y�N�q��;+n�& \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_2/mask_129_2.dat b/lib/phpqrcode/cache/mask_2/mask_129_2.dat
deleted file mode 100644
index bf048394b..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_129_2.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���1
-�0н���_�K�Vڡ��'.���!���w]A0X����~�����  �!��������࣠fK# x�Fy���4� vey��������@^�+� � �~�� �� L#��veI� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_2/mask_133_2.dat b/lib/phpqrcode/cache/mask_2/mask_133_2.dat
deleted file mode 100644
index 9e78b6de5..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_133_2.dat
+++ /dev/null
@@ -1,10 +0,0 @@
-x���1
-� н�������&�`��L������Q-�g=Aq�b����ʪ<�v�b�+�)((((((((�I�n*�<b��G(((((((((�
-y�{AAAAAAAA!���)�
-
-
-
-
-
-
-����'�e�������M���fv{ \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_2/mask_137_2.dat b/lib/phpqrcode/cache/mask_2/mask_137_2.dat
deleted file mode 100644
index 95c3c48cd..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_137_2.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���1
-� н����\�N�I,/d+ʣ`�/F|5*z�'H.�,x�O[K�K���������MBBBBBB�T�|?!!9�8�$$$$$$$$$$2 � h�����������Ȁ$2�yBBBBBBBBBB"e�Ȁ� ɟ$��I�%ɿۓ��H�b��_x��� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_2/mask_141_2.dat b/lib/phpqrcode/cache/mask_2/mask_141_2.dat
deleted file mode 100644
index da07da2e8..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_141_2.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���=
-� н������t*-�?���M���[�hU��]W��B��;���d�wS�j>��l� ��f�Ƅ����������Ț44�& ��)O�Ț�Y�F�4�444444444c4~�9S�:3�Ќטp�Ǯ>� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_2/mask_145_2.dat b/lib/phpqrcode/cache/mask_2/mask_145_2.dat
deleted file mode 100644
index 9ff2bbf3f..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_145_2.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-x���1
-� ���r]
-�,t�Q^�&�C������~�
-щ��j~mɾ�.��Fg���MDDDDDDDDDDD�ST�׈��D�����������H����dZ��L+�ɴDDDDDDDDDDD2-��'"""""""":B��ת�E�Y���Dd����� �� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_2/mask_149_2.dat b/lib/phpqrcode/cache/mask_2/mask_149_2.dat
deleted file mode 100644
index d52e0484b..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_149_2.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���;�@�����/gcaG�BXB�'�-��ˆ���ouէUQ�d�RVOm��T��*ǫ�;;����������j��廝��Ee2PQQQQQQQQQQQ���� TTTTTTTTTTTTr�3����������������3�R�� &��Ts�����k��z_e2P=���d� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_2/mask_153_2.dat b/lib/phpqrcode/cache/mask_2/mask_153_2.dat
deleted file mode 100644
index 3b0604101..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_153_2.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���1
-�0 ��Ӥ����8ZP!��B�����Zu��賶"���bu�������*�����)]MFFFFFFFFFFFF���%= #���ddddddddddddr ot2��yFFFFFFFFFFFF&� #�k��������������5��L 2222222222�(Y����7��"d����@H� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_2/mask_157_2.dat b/lib/phpqrcode/cache/mask_2/mask_157_2.dat
deleted file mode 100644
index 2baf535e2..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_157_2.dat
+++ /dev/null
@@ -1,3 +0,0 @@
-x���1
-�0�>����s6�M���qUH1�X�&U�̘�f�/u-���'���.��[�KGGGGGGGGGG�H�|NG��(tttttttttt��NF���;::::::::::}��N�������������z��$
-�>�������������n� �A�#��^AG���(t�� =3{ \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_2/mask_161_2.dat b/lib/phpqrcode/cache/mask_2/mask_161_2.dat
deleted file mode 100644
index d2df7594e..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_161_2.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_2/mask_165_2.dat b/lib/phpqrcode/cache/mask_2/mask_165_2.dat
deleted file mode 100644
index 2e6cd7c6f..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_165_2.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���1
-�0 ��Ӥ������?�B�V���UG����%���������*�+�_�f��s MIIIIIIIII��2d;��l�4�()))))))))))e�qJنIDIIIIIIIIIII)۠��mPRRRRRRRRRRR�6l���� JJJJJJJJJJJJن}�R�aQRRRRRRRRRRNe�K?R퐔�͔&�W�3U \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_2/mask_169_2.dat b/lib/phpqrcode/cache/mask_2/mask_169_2.dat
deleted file mode 100644
index 4052062b8..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_169_2.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_2/mask_173_2.dat b/lib/phpqrcode/cache/mask_2/mask_173_2.dat
deleted file mode 100644
index 0a30ba530..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_173_2.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���+�@ P�i�����f�t�:>y &d U߬���S��[�������]5Z;a��5V۞�����������A���[Z�˴��������������V���ՃI0ZZZZZZZZZZZZZZ=-�L�����������������hi�`��������������VFK������������������?�ݧ��hio�J0��}��o \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_2/mask_177_2.dat b/lib/phpqrcode/cache/mask_2/mask_177_2.dat
deleted file mode 100644
index d2c52f990..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_177_2.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���1
-� E�>�Y��4�V$�~� ,C���&U���;Oo�k5b��ϙ���G�x9��%&&&&&&&&&&&n$���OL|��v#&&&&&&&&&&&&&��bbݍ��������������Xw#&��l7bbbbbbbbbbbbbb�M"��l7bbbbbbbbbbbbbb�Ma!&�݈������������3�)U<WܱW�/�݈#� n � \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_2/mask_21_2.dat b/lib/phpqrcode/cache/mask_2/mask_21_2.dat
deleted file mode 100644
index 7466be4bb..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_21_2.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_2/mask_25_2.dat b/lib/phpqrcode/cache/mask_2/mask_25_2.dat
deleted file mode 100644
index 0bc44c034..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_25_2.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_2/mask_29_2.dat b/lib/phpqrcode/cache/mask_2/mask_29_2.dat
deleted file mode 100644
index 5112d11ef..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_29_2.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_2/mask_33_2.dat b/lib/phpqrcode/cache/mask_2/mask_33_2.dat
deleted file mode 100644
index 5bac0c80d..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_33_2.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_2/mask_37_2.dat b/lib/phpqrcode/cache/mask_2/mask_37_2.dat
deleted file mode 100644
index bdfc0bd43..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_37_2.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_2/mask_41_2.dat b/lib/phpqrcode/cache/mask_2/mask_41_2.dat
deleted file mode 100644
index c55c63e8c..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_41_2.dat
+++ /dev/null
@@ -1 +0,0 @@
-x�30�C� ��JB�&�ù�Ш�Q��*��JXi@l�0�U��>�*F�>� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_2/mask_45_2.dat b/lib/phpqrcode/cache/mask_2/mask_45_2.dat
deleted file mode 100644
index ad44ff188..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_45_2.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_2/mask_49_2.dat b/lib/phpqrcode/cache/mask_2/mask_49_2.dat
deleted file mode 100644
index 6e8edff24..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_49_2.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_2/mask_53_2.dat b/lib/phpqrcode/cache/mask_2/mask_53_2.dat
deleted file mode 100644
index 682cae2aa..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_53_2.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_2/mask_57_2.dat b/lib/phpqrcode/cache/mask_2/mask_57_2.dat
deleted file mode 100644
index 66a5c056b..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_57_2.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_2/mask_61_2.dat b/lib/phpqrcode/cache/mask_2/mask_61_2.dat
deleted file mode 100644
index 77d3815eb..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_61_2.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_2/mask_65_2.dat b/lib/phpqrcode/cache/mask_2/mask_65_2.dat
deleted file mode 100644
index caf184ada..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_65_2.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_2/mask_69_2.dat b/lib/phpqrcode/cache/mask_2/mask_69_2.dat
deleted file mode 100644
index 6a3801bf5..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_69_2.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_2/mask_73_2.dat b/lib/phpqrcode/cache/mask_2/mask_73_2.dat
deleted file mode 100644
index 74945b718..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_73_2.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_2/mask_77_2.dat b/lib/phpqrcode/cache/mask_2/mask_77_2.dat
deleted file mode 100644
index 903cba4a0..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_77_2.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���1� н���_��CM��>�G�t �ѫe�+��FW�ZE��m�&gއF�Ѷh��F+�t/�F��Yv�F���������j��[*7��a� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_2/mask_81_2.dat b/lib/phpqrcode/cache/mask_2/mask_81_2.dat
deleted file mode 100644
index 17a9ac2a1..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_81_2.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���1
-�0н���_�K�ҩVi!O\"�A�����]�:�x����bW��1�uȦ&��_��T ΋6�H$��U^�D�~bׯ�b=g����X���� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_2/mask_85_2.dat b/lib/phpqrcode/cache/mask_2/mask_85_2.dat
deleted file mode 100644
index 72c74ff9a..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_85_2.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���1
-�0�=�1��\�B7���O�$�A0$��8W�����wjgu�u��槊�R�T*u��S֧���J�R��T�J�R��R����ޢN�浘�V� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_2/mask_89_2.dat b/lib/phpqrcode/cache/mask_2/mask_89_2.dat
deleted file mode 100644
index 06c9a4fe3..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_89_2.dat
+++ /dev/null
@@ -1 +0,0 @@
-x��ٱ �0 �>���/�&E*c��Qq���Ń �zf$���rM�����<��sa#d2�L&�?�ArY��d2�L�G"�3�L&�{���Rygw�;��� ���I \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_2/mask_93_2.dat b/lib/phpqrcode/cache/mask_2/mask_93_2.dat
deleted file mode 100644
index f5202963d..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_93_2.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_2/mask_97_2.dat b/lib/phpqrcode/cache/mask_2/mask_97_2.dat
deleted file mode 100644
index 38842b989..000000000
--- a/lib/phpqrcode/cache/mask_2/mask_97_2.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���1
-�0н���_�Ki�vH4 <q � �#�ʩ������s�-TU��S�_Y��@ k���D�I��@ �V��J a�Pt���0�����C8%� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_3/mask_101_3.dat b/lib/phpqrcode/cache/mask_3/mask_101_3.dat
deleted file mode 100644
index fa9925121..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_101_3.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���K� E�yWS��9'D1񟾪p �/9�Ё�u���,k�u9�Ҥ�$���%�ݭwAL��b%ClA��zq۴�붌��b�!���Ĥw�X�4`���_�'FWr�!�b��&�t1�<FWr�!�b��X��y���C 1Ć����Ӈ�)E{W�ٯAӅgL�1]�-&�Ƽ����Lqn� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_3/mask_105_3.dat b/lib/phpqrcode/cache/mask_3/mask_105_3.dat
deleted file mode 100644
index d8a28ce98..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_105_3.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���1� D�~O3��r6��@(�1�'������J}4���gk�9�7��A=������i��p}��w��ZJo����8���JB=��C�s= =��;��H�zT.�z衇z�{�{�{T.�z衇z�{�{�{T.z衇zo�S$P�T��h��E��%�Կ�bߞ�r��\R�L$� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_3/mask_109_3.dat b/lib/phpqrcode/cache/mask_3/mask_109_3.dat
deleted file mode 100644
index 48d94040e..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_109_3.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���1� D�~O3��r6��� �O(�;���V6��sy������>�)�_%s�_���d3K�O1^�a��L��,�$�H"�$�KzRP�t[I&��X���9�$�H"�$��I�$y�sI$�DI$ɓ�I�$�I$�Dɍ%e��s�!��=����LAZ5��'�̓IV��r�n��/2oƅ \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_3/mask_113_3.dat b/lib/phpqrcode/cache/mask_3/mask_113_3.dat
deleted file mode 100644
index 023b27304..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_113_3.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���A
-�0 D�}N���rnD��Fj2�K���C�t?W��ݲ�Z�i��.q����o�P� ����%Smj���7�ަ�:������*��N��:@�:����������*���*����*��f��W9d�2�����*����j�*}�S@��`���*����j���৪6�Jl���ѿ�}��}�է��T��U�a�24hnt \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_3/mask_117_3.dat b/lib/phpqrcode/cache/mask_3/mask_117_3.dat
deleted file mode 100644
index 79cc04d14..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_117_3.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-x���1
-�0 �]�Q��.�xI�B$�����?~!�<�Q?�#���5�/tI�J8ow�i�{����}�S��^��~���q猉P„ &L�0�J��1��ϻݢ�D�K'�J�Ä &L�0ᝅ��n
-��0a„ &Lxga��G��*�&L�0a�{
-g{����2��s�Ή~���7\]%r�J��9nZ \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_3/mask_121_3.dat b/lib/phpqrcode/cache/mask_3/mask_121_3.dat
deleted file mode 100644
index aff5a7be5..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_121_3.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_3/mask_125_3.dat b/lib/phpqrcode/cache/mask_3/mask_125_3.dat
deleted file mode 100644
index e2febdbdd..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_125_3.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���1
-� �~N3��rۄ]��BБ�'�?<��/̼V۵������ �ҏ�����<��0-_�J�[��?� +w��^;*�y��ɓ'O�<��/9��ɯ�9�<��y�Ɯ'O�<y��ɓ'�J^��a�ț6� y��ɓ'O�<�G�{��icΓ'O�<y������P��� ����|�]�Z֤��Iee�:[~�?��<mJ�_�N�: \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_3/mask_129_3.dat b/lib/phpqrcode/cache/mask_3/mask_129_3.dat
deleted file mode 100644
index b1ce63b74..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_129_3.dat
+++ /dev/null
@@ -1,8 +0,0 @@
-x���A
-� ��6!n� �G<q�4�h�/��G?;�h�s����LST�����Oj����� 2#���
-D��y`�ܫ���P�@�
-��\�B�4*yt$�
-(P� /� 򂼠#Q�@�
-�yA^�t$
-(P�@��� /� �D�
-(�\����.`���ɛj�o��C��S� �;R�;R�.��I� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_3/mask_133_3.dat b/lib/phpqrcode/cache/mask_3/mask_133_3.dat
deleted file mode 100644
index f4181507a..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_133_3.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_3/mask_137_3.dat b/lib/phpqrcode/cache/mask_3/mask_137_3.dat
deleted file mode 100644
index e24ac5b51..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_137_3.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���A
-�0�}N���rn�F�HS��� YQ|���Z��E�f��u�,%� �$�uj��G�:��z���o��u�,:O��s�Y�ď��e��:t��I�s��j��|��+�N�5���d�lt�СC�:t���;��b:�M�ѡC�:t��9���h���H6�F�:t�СCǽ�ڨ{A%�d�C�:t���N��$^ur �dV�����'\�wj��S���t��;U��'[�,7�� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_3/mask_141_3.dat b/lib/phpqrcode/cache/mask_3/mask_141_3.dat
deleted file mode 100644
index a3f6a2480..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_141_3.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���A
-�0�}N�{�˹)%]�j�f /d!�u��O�U����c����0}��a�4�R9���_���T�~�`����_ R[�T�ծ���n1�ݒ"E�)R�H-*�p�~H�ܥ�J����԰��g��"E�)R�H�J�ҧ4��2�L?R�H�"E�)RiR��滀��g��"E�)R�H�� �>��z���#E�)R�H�Z@�b�l-)�ݿ�<ߧ*�OUR�"5&����5�*i�e� J]�+ \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_3/mask_145_3.dat b/lib/phpqrcode/cache/mask_3/mask_145_3.dat
deleted file mode 100644
index 338b7e7a8..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_145_3.dat
+++ /dev/null
@@ -1,3 +0,0 @@
-x����
-�@��|�������:�^� �Jy̡��yM���j��-'
-9�V�S��֦K��9��e��)P�yU����w�e�-m jԨQ�F�5jԨ�R�i٫�F4�_wk}�0+��jRBR�F�5jԨQ�����e�OMBJHjԨQ�F�5jwP�״�˪IH I�5jԨQ�Fͳ������c �w�5jԨQ�F���:����zS��*2��UZ_��C��*�e_O���Z�%dIȯ��b \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_3/mask_149_3.dat b/lib/phpqrcode/cache/mask_3/mask_149_3.dat
deleted file mode 100644
index 30bc5fabc..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_149_3.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���A�0�}O���ܠ⦐H頯���'�Z�2{oV�|Ι�%���>��y��R{�!8��ÂI+JpI|#��f�5κ[�P A� $H� ��Q}�)�&<��E�� JQ)J� A� $H� �s5z�����%H� A� $H��4A�^��5A)*E $H� A� $� ��3�MHQ� $H� A�� ��3ާ`�P���o��>X{ט��+��Wb������`I��)5��%d� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_3/mask_153_3.dat b/lib/phpqrcode/cache/mask_3/mask_153_3.dat
deleted file mode 100644
index 89cdec031..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_153_3.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���A
-�0�}N�s�˹)7mJ���,�}8���X=c�W^G�e��N�<v]]b��Iͯ_����gY+M��j���vˋt��&M�4iҤI�&M���xޜ��u~o[�~��4W55���I�&M�4iҤI��S5ML��i5-M�4iҤI�&M�4o�iz`z@S�jZ�4iҤI�&M�4iz�����s(�V�ҤI�&M�4iҤ��Y��zK 6�ϛ�:=����_h��6�7m�6m�M{��H� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_3/mask_157_3.dat b/lib/phpqrcode/cache/mask_3/mask_157_3.dat
deleted file mode 100644
index 167e6f844..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_157_3.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_3/mask_161_3.dat b/lib/phpqrcode/cache/mask_3/mask_161_3.dat
deleted file mode 100644
index 72a26a4fc..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_161_3.dat
+++ /dev/null
@@ -1,3 +0,0 @@
-x���A
-�0�}N���rn�F��Tk�,��N��� �Z�ђf7J�:�ƒ^`W�ٔU��nXڤ�ǧM-����#V��+ߡ��+9z��ҖY� l�)S�L��o�c���ʱO_C�?ߩ�%�;*Kl�M�2eʔ)S�L�2�Ye��]���[bS�L�2eʔ)S�LyVY�lW��G�[bS�L�2eʔ)S�L��
-��]g+$��eʔ)S�L�2eʔ���/�q�BbKlʔ)S�L�2e�qʙ�����]�£{�A�����/��~��V9�\%���[�P�#' \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_3/mask_165_3.dat b/lib/phpqrcode/cache/mask_3/mask_165_3.dat
deleted file mode 100644
index 870af8f4f..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_165_3.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���A
-�0�}N3����T� #�Z�� Y�u�Ï�:�̛�1�ϱE�U��T�T|S����� � �q�)�m-sG��� ����B��.C�ĉ'N�8q�ğ������wv7�[��'�tg��!.ե:q�ĉ'N�8q�����v`�_+.ե:q�ĉ'N�8q�����v`���R�8q�ĉ'N�8q�Τ����8�"ե:q�ĉ'N�8q�ĝIяہq&E�Ku�ĉ'N�8q��+��9:�}kFT?^���Џ�G��o<0իC�g/�_� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_3/mask_169_3.dat b/lib/phpqrcode/cache/mask_3/mask_169_3.dat
deleted file mode 100644
index 943109526..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_169_3.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���A�0�}O3��rn���񷾦 �)}�'3��1E��h���]�4�P[ �_����]Kv�<�˙f�p��#����y_�l�[�g�e���ӧO�>}�����o����%uJV/���{�����%��O�>}���ӧO�����}����K~�O�>}���ӧO�>�Q����=�/ї���>}���ӧO�>}����u{��ח���>}���ӧO�>}����u{蟪/�%?}���ӧO�>}��ׯ.N4��<O������z�z���l��z�z�� ����W/�_���yp \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_3/mask_173_3.dat b/lib/phpqrcode/cache/mask_3/mask_173_3.dat
deleted file mode 100644
index 746698627..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_173_3.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���A�0�}O3��rnPk�TT�yM$&e/|�"ֵd��j�u�y[�a�i�K��{���M S&z[B�UB�RI�C�!�n5�\w�4�B $�@ $��[”���3��c��E^%�xw � �A:�@ $�@ $�@ $��B�fI�D� �A:�@ $�@ $�@ $�p�͒f���%H�@ $�@ $�@ $�@BR �%� �� � $�@ $�@ $�@ )$h�4K$L� � $�@ $�@ $�@³��_{�Pg�۴y��>჏VMm��R����������t(1���| \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_3/mask_177_3.dat b/lib/phpqrcode/cache/mask_3/mask_177_3.dat
deleted file mode 100644
index 9586979a1..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_177_3.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_3/mask_21_3.dat b/lib/phpqrcode/cache/mask_3/mask_21_3.dat
deleted file mode 100644
index bcb4eec49..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_21_3.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_3/mask_25_3.dat b/lib/phpqrcode/cache/mask_3/mask_25_3.dat
deleted file mode 100644
index 0ffc375fc..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_25_3.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_3/mask_29_3.dat b/lib/phpqrcode/cache/mask_3/mask_29_3.dat
deleted file mode 100644
index 6150ac128..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_29_3.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_3/mask_33_3.dat b/lib/phpqrcode/cache/mask_3/mask_33_3.dat
deleted file mode 100644
index 6053b5e39..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_33_3.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_3/mask_37_3.dat b/lib/phpqrcode/cache/mask_3/mask_37_3.dat
deleted file mode 100644
index 5dea5b9cb..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_37_3.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_3/mask_41_3.dat b/lib/phpqrcode/cache/mask_3/mask_41_3.dat
deleted file mode 100644
index ca9ddc2aa..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_41_3.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_3/mask_45_3.dat b/lib/phpqrcode/cache/mask_3/mask_45_3.dat
deleted file mode 100644
index 3daad97f8..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_45_3.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x��K
-� D�s�����FJ(&�)��0d��Ї��F�g!�[8�=��&�ia��D)�d8&A�լ�a����� 1'�I�I��׳�7�9�� ex���߾� ���I��&֝��C�u��Jy� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_3/mask_49_3.dat b/lib/phpqrcode/cache/mask_3/mask_49_3.dat
deleted file mode 100644
index 7f6508ddd..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_49_3.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_3/mask_53_3.dat b/lib/phpqrcode/cache/mask_3/mask_53_3.dat
deleted file mode 100644
index 8800beab1..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_53_3.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x��K
-�0D�s��� ����! -(.Bp&�|�"-t�&`�q�Q-"��9�_+)Be/H8��D��%�a~��}spKFN������=,��;�;a^t�4����\��F�������SN���� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_3/mask_57_3.dat b/lib/phpqrcode/cache/mask_3/mask_57_3.dat
deleted file mode 100644
index 4e1e5da38..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_57_3.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_3/mask_61_3.dat b/lib/phpqrcode/cache/mask_3/mask_61_3.dat
deleted file mode 100644
index bf1a3cc7f..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_61_3.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x��A
-�0�f���z�4-%����*��d��p�!�yZܫ��u��(��~�=�&�ۓ��)��R2�"/�"�<9�FΊ=r��b��"/�������rw�"2��������B��#3-�0-K��W \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_3/mask_65_3.dat b/lib/phpqrcode/cache/mask_3/mask_65_3.dat
deleted file mode 100644
index 85892089b..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_65_3.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x��Q
-� D��4���\?R�� ��,�!�O��-�Nv���1�:�c�Z�u� �"U�MÕF ~jK����-la�[^q^�Q\�=��o�-la��ZpU��B���� �@I��K�Jzɢ|1Í� ��� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_3/mask_69_3.dat b/lib/phpqrcode/cache/mask_3/mask_69_3.dat
deleted file mode 100644
index 55318a87b..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_69_3.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x����
-�0 �{�&����2�'��d� l�=,��F���y;$�쇤�WE�-R����:��%T,O2��g�"�"�,�Ȣ/D�yĈ���ɧ{�O䮳�"�,:N�v�E�WN�#(&,�,�������]�x؅ \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_3/mask_73_3.dat b/lib/phpqrcode/cache/mask_3/mask_73_3.dat
deleted file mode 100644
index 15be77f64..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_73_3.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x��Q
-�0 C�{�����g�;��JJ?dԬK�=�Ra�sJhTJ6ex��ka�����\$��n��IE,-/��XB���*х=������wee�4����t��̒t�Lщ�t�t�߫���b� �gF�f� ��q��o�d��dn-�? \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_3/mask_77_3.dat b/lib/phpqrcode/cache/mask_3/mask_77_3.dat
deleted file mode 100644
index ec7828044..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_77_3.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���A
-�0 ���&����B�i�RaK"t�`I@��|���fX�����yi���l�E�:Sza18G���if�K*��?�:Y�C1쌞졘(ቷ���J*�����j�l*��TRI�K���R^ؙ��ks��)c�)c�)�JZ��������a� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_3/mask_81_3.dat b/lib/phpqrcode/cache/mask_3/mask_81_3.dat
deleted file mode 100644
index 47bc0f793..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_81_3.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���1
-� F�=����\�,J�GA�ġ��hj��>��#�3X�����:�k�Թ\�FM J�hu����3��>�T�Z���{��PSg�P'��k�V�jժU��_ۯ��U�V����=P �o�O:Wҝ����j�[�Wx��m�� �5 \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_3/mask_85_3.dat b/lib/phpqrcode/cache/mask_3/mask_85_3.dat
deleted file mode 100644
index 02c4f8cdb..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_85_3.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_3/mask_89_3.dat b/lib/phpqrcode/cache/mask_3/mask_89_3.dat
deleted file mode 100644
index 2b4cb59fc..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_89_3.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���1� �ὧ)��� *.@�U�� ���|����eŵ6ۢ���w5*��) o�i�K���4nk>��1}d>��@ 4�XYC�o�� ۡ1<��A���h��F���t
-� 4�@��5���1�Wr��>7����G��}}��x7|�N�g���N \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_3/mask_93_3.dat b/lib/phpqrcode/cache/mask_3/mask_93_3.dat
deleted file mode 100644
index b4cc8a971..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_93_3.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���A
-�0 D�}N���rnJɪQ�~�B���06���n�a�<<�ׇ���e6�M�R��C��P� �L���̓i��9M� 2� �LkŮ�dD�v*�"a��X�jBd�Ad�d��Z��T�d�Ad��qY�0ex�����qe���N�������&WV���Qvc� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_3/mask_97_3.dat b/lib/phpqrcode/cache/mask_3/mask_97_3.dat
deleted file mode 100644
index 7adc9ebaa..000000000
--- a/lib/phpqrcode/cache/mask_3/mask_97_3.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_4/mask_101_4.dat b/lib/phpqrcode/cache/mask_4/mask_101_4.dat
deleted file mode 100644
index 1c97dc048..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_101_4.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x��A� F��s^1�b�����]���4�m+�8�+�Ve��^H�R]�\�c����
-�o�WN#��X����+l� ��HE�cp� \��^.�9q�W9����"�:��.��B�����B� \��0�a��PǨcp� \����O���N�qjpG��}��}��$.�˅����� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_4/mask_105_4.dat b/lib/phpqrcode/cache/mask_4/mask_105_4.dat
deleted file mode 100644
index 0211cdb3a..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_105_4.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x��K
-�0 D�=Mr�˹��A ��T�e�EF�L2 #���鹢�_I!��������딤Ѻ����-իkm�O��]sS T6*��'8� N��$��'N�Z���^�<JvN�sNp����������'���'8� �����1��{p����?N¿�n��J��Bυ��^���[i'�iHI-��m+W \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_4/mask_109_4.dat b/lib/phpqrcode/cache/mask_4/mask_109_4.dat
deleted file mode 100644
index 2cc0c815d..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_109_4.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_4/mask_113_4.dat b/lib/phpqrcode/cache/mask_4/mask_113_4.dat
deleted file mode 100644
index 99bd73f69..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_113_4.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���A
-� н���_��Jb)t&��BB��K_���ֳ��6�C+5/q_�ghf����������CbH+�p�����;WK?��G�t� ��*G�9r|�c`��c���9FKH�q4��9r�ȑ#Dž��U���G�*G�9r���>�}r���U�*G�9r|�c�[��cN��[_=�׫5�^�J����� 1*�q�v \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_4/mask_117_4.dat b/lib/phpqrcode/cache/mask_4/mask_117_4.dat
deleted file mode 100644
index 386725918..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_117_4.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x����
-� н_���s]4���Dg�n���2Jj}���Ҿ�RsSWG��R��ɧ���)5����E���m�#ܯ����k_"�z���3�\�r�ʕ+�r �L�k|�/{��;�'���<W��:̕+W�\�r��U=l�3��|�s�ʕ+W�\��;�w�o�Z��r�ʕ+��\���s�K���ze�Sהz83u#W�ubjd� ��$� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_4/mask_121_4.dat b/lib/phpqrcode/cache/mask_4/mask_121_4.dat
deleted file mode 100644
index 84957eb7b..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_121_4.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_4/mask_125_4.dat b/lib/phpqrcode/cache/mask_4/mask_125_4.dat
deleted file mode 100644
index b98dc813a..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_125_4.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_4/mask_129_4.dat b/lib/phpqrcode/cache/mask_4/mask_129_4.dat
deleted file mode 100644
index 8ecfa2508..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_129_4.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_4/mask_133_4.dat b/lib/phpqrcode/cache/mask_4/mask_133_4.dat
deleted file mode 100644
index 69f83acbd..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_133_4.dat
+++ /dev/null
@@ -1,3 +0,0 @@
-x���A
-� н���_��Қ��B���B�2��f��{��
-���cf����g�Kq��=��)ڮ����W��lK2޿���8:o�CRd�\p�\p�@��+$E�����Q.���\p�\�#��>���/�#\p�\p��>���#� �\p�\p���#��>�q�p�\p��.��$���Iq�� d���G�R��_4�� ��� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_4/mask_137_4.dat b/lib/phpqrcode/cache/mask_4/mask_137_4.dat
deleted file mode 100644
index 0c09c487c..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_137_4.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_4/mask_141_4.dat b/lib/phpqrcode/cache/mask_4/mask_141_4.dat
deleted file mode 100644
index 62b03f243..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_141_4.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_4/mask_145_4.dat b/lib/phpqrcode/cache/mask_4/mask_145_4.dat
deleted file mode 100644
index 33fb21124..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_145_4.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_4/mask_149_4.dat b/lib/phpqrcode/cache/mask_4/mask_149_4.dat
deleted file mode 100644
index de99310f3..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_149_4.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x����
-!н_���sm�� ���+XӋ9=�.��=Zk�a��]�ޒ> K�j�o� ���|�S��SWK�Zm�׌���j����\����Ъ2� W\q�W\q���"~��� �jv�t���v�_��\q�W\q�W\q%g�3�� ��}�+���+���+�� r9��A��r�W\q�W\qŕ�A� g�3�W�A� W\q�W\q�W����]�V�~v{�D��3�Ȝ!���\�W�����^<�r/ \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_4/mask_153_4.dat b/lib/phpqrcode/cache/mask_4/mask_153_4.dat
deleted file mode 100644
index e827dd16f..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_153_4.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���1�0�ޯ���si,')p!�4.���;���WUm��j=������.NO��>����T�ڍ[��S7v�ۜg�q��?����
-�{pe�o�3�8�3�8�3�8{�YXz��,���_�O��Yfe���3s���3�8�3�8�3��\C�!����Ms�3�8�3�8�3��r ��\C?379�3�8�3�8�3��\C�!�07�M�8�3�8�3��q����,���mMrs��k�Wv�3���~�W� �WB \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_4/mask_157_4.dat b/lib/phpqrcode/cache/mask_4/mask_157_4.dat
deleted file mode 100644
index ad5fcf69d..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_157_4.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���1�0�ޯ���s4�"FP�=iRX¢X��0�멪�u 4f�t��l}�m������➭�S�|��ю�S� ����P�5<]��r�w�q�w�q����^Q��N6Ï���Z�sߙ��,w�q�w�qǝ>������Μ5g��;��;��Y}V��g�w�,w�q�w�q�w��>����9�w�q�w�q�����>�3g�Y��;���[ww?P3������Ƙ�ggt�퐮�;�]��.3�w4A� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_4/mask_161_4.dat b/lib/phpqrcode/cache/mask_4/mask_161_4.dat
deleted file mode 100644
index 7604c4540..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_161_4.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���A�@ ���f���s!AL���_|,��4�l)i�m���l�׉0'�� +E���� ��]N\���x�#���2��/��_�{�7g��9쏼ٷ���}���2�r�!��?}-�#<Z��χ�j"��P>T��e9�C9�C9���~�����6Sʇ겺�!�r�!�r�!�����ۘs��e9�C9�C94�_��Ɯ�|�.��r�!�r�!��s�/�s0� ���2�r�!�r��8�}D�����w���r�DXΡ|x�|��!�2� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_4/mask_165_4.dat b/lib/phpqrcode/cache/mask_4/mask_165_4.dat
deleted file mode 100644
index d83d63165..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_165_4.dat
+++ /dev/null
@@ -1,3 +0,0 @@
-x���A
-1 �}O���r.�"�*?�f���P��LHI�k���ZQ��8
-Gy��qk�-����n5����+?���������|֎����kKn�E���Ź�K.��K.?�2���.�|�EJ�{�2<�:.�Ku\�K.��K.�������ǝmu)_���8�\r�%�\r�%�\��Џ;'2�!_���8�\r�%�\r�%�\��Џ;'2�!_��\r�%�\r�%�\rinC?nn�9�� �R�K.��K.���;.���HqY'�ݽ��N�F?�K�㕢,�R���|�� My*3 \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_4/mask_169_4.dat b/lib/phpqrcode/cache/mask_4/mask_169_4.dat
deleted file mode 100644
index 4aac95c1e..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_169_4.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_4/mask_173_4.dat b/lib/phpqrcode/cache/mask_4/mask_173_4.dat
deleted file mode 100644
index 9df4d865d..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_173_4.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���K
-1�}N���rn�a ��~ZY!��J�t^��5�(�/���jk�z[pj��_�?~v:|jw�Ֆ_m���Xz�o����6?n���<��j�$p�-��r�-�_p[z�=�V��Q��3��T�V��o� �r�-��r�-��r�-�r09�L�ߚ� �r�-��r�-��r�-�r09�L�ߚ� �r�-��r�-��r�-�r09�L�ߚ� �r�-��r�-��r�-�r09�L�ߚ� �r�-��r�-��r��v��6�����?�,e�`=*K�6ڭ~���6�� ��*� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_4/mask_177_4.dat b/lib/phpqrcode/cache/mask_4/mask_177_4.dat
deleted file mode 100644
index 6437d2511..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_177_4.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���A
-!�����.1B��My��![ c��\c���Z��V\��q��7���E�O�zg~�k��˿j�;pg��u��[*7�׽������Tp�1�s�1�s��q�!���㠊w/�r���8��X���~l���c�9�c�9�c�9�����nr7��~l�0Wp�1�s�1�s�1����nr7��~l�0Wp�1�s�1�s�1����nr7��~��+8�c�9�c�9�c��nr7���M��+8�c�9�c�9��t���oEǙ��N�Xy�[���R+��c����qN�\,4J \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_4/mask_21_4.dat b/lib/phpqrcode/cache/mask_4/mask_21_4.dat
deleted file mode 100644
index e006b67e4..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_21_4.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_4/mask_25_4.dat b/lib/phpqrcode/cache/mask_4/mask_25_4.dat
deleted file mode 100644
index 0c7c44bbb..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_25_4.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_4/mask_29_4.dat b/lib/phpqrcode/cache/mask_4/mask_29_4.dat
deleted file mode 100644
index c28dc20e8..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_29_4.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_4/mask_33_4.dat b/lib/phpqrcode/cache/mask_4/mask_33_4.dat
deleted file mode 100644
index 5834b6fb5..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_33_4.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_4/mask_37_4.dat b/lib/phpqrcode/cache/mask_4/mask_37_4.dat
deleted file mode 100644
index 4bf2e26ed..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_37_4.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_4/mask_41_4.dat b/lib/phpqrcode/cache/mask_4/mask_41_4.dat
deleted file mode 100644
index b75b7d052..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_41_4.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_4/mask_45_4.dat b/lib/phpqrcode/cache/mask_4/mask_45_4.dat
deleted file mode 100644
index 1b921f300..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_45_4.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_4/mask_49_4.dat b/lib/phpqrcode/cache/mask_4/mask_49_4.dat
deleted file mode 100644
index e417f9476..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_49_4.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_4/mask_53_4.dat b/lib/phpqrcode/cache/mask_4/mask_53_4.dat
deleted file mode 100644
index 7e88826dd..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_53_4.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_4/mask_57_4.dat b/lib/phpqrcode/cache/mask_4/mask_57_4.dat
deleted file mode 100644
index 84669c7d6..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_57_4.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_4/mask_61_4.dat b/lib/phpqrcode/cache/mask_4/mask_61_4.dat
deleted file mode 100644
index d127c3be2..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_61_4.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_4/mask_65_4.dat b/lib/phpqrcode/cache/mask_4/mask_65_4.dat
deleted file mode 100644
index c24343d94..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_65_4.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x��K� D������t�X�Й.4�E1^���hv��O��x���W��0 �JHŻ����z[�^܈�[v���
-y�y��Z�k�=`���v�c�ǃ�<ȃ<��C�/)z�ܑ��� �����C���"" \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_4/mask_69_4.dat b/lib/phpqrcode/cache/mask_4/mask_69_4.dat
deleted file mode 100644
index a73b1144d..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_69_4.dat
+++ /dev/null
@@ -1 +0,0 @@
-x��;�0CwN��\��~��;C$3�$<)/m�����eΥT��2 ��:�]�^VV�%��zA�n�pv�s"y�y�y)z���d�u6����G��ȋ���i^��/<�t�r�rr�)9ͤl�r��.��� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_4/mask_73_4.dat b/lib/phpqrcode/cache/mask_4/mask_73_4.dat
deleted file mode 100644
index 72f89227e..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_73_4.dat
+++ /dev/null
@@ -1,3 +0,0 @@
-x��A
-�0 �yM���顴)1�-�lE3�=�}��(���9�T�d���E/eO ZO����ŻK�Y;��pS5�+���N��I����|
-"�e�v��+Dݓ�Ns'O�W�k��I�����̞��F��r�i9�&���� �]?��A \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_4/mask_77_4.dat b/lib/phpqrcode/cache/mask_4/mask_77_4.dat
deleted file mode 100644
index 993c48608..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_77_4.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���
-�0E����?��jFe8�0�� u�N�0����lB��6�:�h�<�����C�e\,� ���ܗ~���& rd0 �Sz�7z+���o���������V�u�:�7z��Wo�� ��S�)���mo�3� O��y�;:*h��>��a��Ce \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_4/mask_81_4.dat b/lib/phpqrcode/cache/mask_4/mask_81_4.dat
deleted file mode 100644
index dd6521613..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_81_4.dat
+++ /dev/null
@@ -1,3 +0,0 @@
-x��A
-�0 �yM���y�XE m7"89�2�Ѹ��Q1ݳ��+�x�x;��t35DIY��1x\:u�����}�e/ ��#����Th<
-���U�Bz��<���5�G<���5{�G<������5��<饫>�]��U�r��xu� � �� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_4/mask_85_4.dat b/lib/phpqrcode/cache/mask_4/mask_85_4.dat
deleted file mode 100644
index c8d5123e2..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_85_4.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_4/mask_89_4.dat b/lib/phpqrcode/cache/mask_4/mask_89_4.dat
deleted file mode 100644
index 5b9bd7ec3..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_89_4.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���1
-�0 �ὧI�9��% � �� V��ڀf�r���0}�z�=�#9������ҕ:���~�s��1BՁg&�4p�g�q.p.���&g���T0�5�rg��sg�q��rg捯�u�3��8���k�.Egm��b*��&�7����?���� �:�� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_4/mask_93_4.dat b/lib/phpqrcode/cache/mask_4/mask_93_4.dat
deleted file mode 100644
index be7f5e525..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_93_4.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���K
-� �ὧI��n$}P�ŌB�]��N��@����%s�fkҫ�}Cz�oA}aʽ2�|���~���D&�l=������Y����w�q�}���q\�E�Y��j�K_��y��w�q�wz$=��=�;���_݋��>���+�p���H�����9�D�i \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_4/mask_97_4.dat b/lib/phpqrcode/cache/mask_4/mask_97_4.dat
deleted file mode 100644
index 5d848caad..000000000
--- a/lib/phpqrcode/cache/mask_4/mask_97_4.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_5/mask_101_5.dat b/lib/phpqrcode/cache/mask_5/mask_101_5.dat
deleted file mode 100644
index c21869e83..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_101_5.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���
-� E������+�%=�M�3Cbv� Ѭ���Nkû��gq�kqq{�%�O����o����,i���K�e�e��3[�|��i��������V��h]` �` �0�ʕ���z˴T�0Gu��/q�8F��1���3�:W��>���#��ȕ0c0�Q�8��E=F#��+a ���X�͞+cV�%9W>��Q�]Tk���Y�-gL���q�D�艋� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_5/mask_105_5.dat b/lib/phpqrcode/cache/mask_5/mask_105_5.dat
deleted file mode 100644
index bc8798c64..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_105_5.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_5/mask_109_5.dat b/lib/phpqrcode/cache/mask_5/mask_109_5.dat
deleted file mode 100644
index 25a394402..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_109_5.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_5/mask_113_5.dat b/lib/phpqrcode/cache/mask_5/mask_113_5.dat
deleted file mode 100644
index 25f42b8b2..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_113_5.dat
+++ /dev/null
@@ -1,9 +0,0 @@
-x���
-�0D�������^�6�I�63[�[EDq�c���+��j�y��81��\c
-��7�c�����?u�}DK�4�}��,�kk�g�--�3[���U�Ƃy�UX�UX�SV��:ϫ��՝��,��|��кS�����⫰
-��
-��
-�Vɫ��*�X�[��*�
-��
-��
-��z�U�*�N�V�*�J�UX�UX��S��Xi��jTi4f��ZkU^���_���~�U��x� }ծ�Z/r \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_5/mask_117_5.dat b/lib/phpqrcode/cache/mask_5/mask_117_5.dat
deleted file mode 100644
index f236940de..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_117_5.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���� D�|M��n/*{�M���+��p�I_&m��-��Ѿ�C�����3�2�u�?o-kgB7wc=����U%y�o��R�hӯșDo:ֶy�R�JkQ^a�a�a����qOg�iJ��� ;����qOg�)ӊ���0 �0 �0 ��[�v�ö>�=>���0 �0 �0 �Of�z�3��=>���0 �0 �0�.�3���Z�$�׷8\�p����w4���:��Z�p�:q�����X 7 \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_5/mask_121_5.dat b/lib/phpqrcode/cache/mask_5/mask_121_5.dat
deleted file mode 100644
index 9bb5c4158..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_121_5.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_5/mask_125_5.dat b/lib/phpqrcode/cache/mask_5/mask_125_5.dat
deleted file mode 100644
index 2161c50a4..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_125_5.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x��A
-� E��&���fc;S��$?����؏��Q4��Ya�hûyJ}9�g=��=�li��.;nh_����wz����.��q�CW����ȧy�� u���Pk�;��<��<��<��|*�q����,� m�kW�q�N�l�%� ����y��y��y��y������^��2䰅sX|���a�a�a�a�3ϙ9lH�����<��<��<��<̿��웁��[�����n`�T���q��8�^�v�y���� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_5/mask_129_5.dat b/lib/phpqrcode/cache/mask_5/mask_129_5.dat
deleted file mode 100644
index f0c1d6502..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_129_5.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_5/mask_133_5.dat b/lib/phpqrcode/cache/mask_5/mask_133_5.dat
deleted file mode 100644
index 46be8b094..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_133_5.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���A
-�0 DѽOc��r]4%1mCT�������xΜ[Dv�=��{F���E�Ϗ���q�?ݿ�9�keѭ�}�'2^��c��4G����:�3=J�K-��F0��`#��H���w�'#�<{�~�Z4� :BG舻F0��`��G�~���:��`#�?�#t���w-�`#�?�#��#t#�F0r����}Q��}e����R��;�<��C��V�}ї�����Y-H� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_5/mask_137_5.dat b/lib/phpqrcode/cache/mask_5/mask_137_5.dat
deleted file mode 100644
index 064e7f2f3..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_137_5.dat
+++ /dev/null
@@ -1,3 +0,0 @@
-x����
-�0 ���>M��/��k�1m����X���=������h����s����H"�k �M�:���3q�O��W}�9�Ԗ�I����H�1�G;�- ��s��ڶ�?�[%M
-� v����#;�zg^��3�d}�6���9��Ψޙ�@7��҄���#g�v���`;׳�ީ\�$������w�l��v���`�v�;ލ�}7�w�ߑ�a;��v��kA������#g�v���`�=N2w�xg�WӤ@n?��c}�SQ�:�Zd?+����9v��z�)�����P \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_5/mask_141_5.dat b/lib/phpqrcode/cache/mask_5/mask_141_5.dat
deleted file mode 100644
index 60c1a8e81..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_141_5.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_5/mask_145_5.dat b/lib/phpqrcode/cache/mask_5/mask_145_5.dat
deleted file mode 100644
index 9303c07f9..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_145_5.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_5/mask_149_5.dat b/lib/phpqrcode/cache/mask_5/mask_149_5.dat
deleted file mode 100644
index 4256cefd0..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_149_5.dat
+++ /dev/null
@@ -1,3 +0,0 @@
-x���[
-�0���&����c��}-s+'���^;A�x���=���Q��_gUݏﵪ��x���G��T���ȺV¹���U��UE�����_IǴ;���T1�����̠���
-]W 2� � 2��� �|o�5�u��ꆬuI�:(W�K�U躒�rP�Ad�Ad�A; v����o��_zNO��{2rP�A9� � 2� � 2��9���}�^O挞���r�wQd�Ad�A�n�����M�A9(d�Ad�A�^W� ��Z��.+��G�^����K����`׵}�`_F����k \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_5/mask_153_5.dat b/lib/phpqrcode/cache/mask_5/mask_153_5.dat
deleted file mode 100644
index deea09d77..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_153_5.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x����
-�@�w�f������Ь`���D"I���e��<:a�u,7��Of�۳�u��P�6��~��s�z������s��,j�լc����V��Zvߨm� ��s^u�H�Y�u�&�l��&�l��&�_�9������ ;]��^�js�O;�ܔ�rSn��&�l��&�l�9��yכ���zA� ��rSn�M6�d�M6�d�M6���ރ��@/�$7�ܔ�l��&�l��&�lzŽzA�C��rSn�M6�d�M6�d��Ol��7ᰚU�u�N��֛�F��c������P�P���S�,l;H�O� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_5/mask_157_5.dat b/lib/phpqrcode/cache/mask_5/mask_157_5.dat
deleted file mode 100644
index 176e2a69f..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_157_5.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���1�0D�ާ���ri��( r*��� �\��~>C�*���v��s��]Ŝ_{W!�zﶬ/��������)�˙������v� ��V���6�V��޻��,f1�Y�b���� �n^o��>���\O�]���,��,�b���,f1�YyV��g�Y��Y��Y�b���,f1+�ʳ�<˳<˳��1�Y�b��Ŭ<+�ʳ�,��,�b���,f1�YyV��g�Y��Y��Y�b���,f���ukys77���}�v����mb�=�w�sw�)�tW���:� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_5/mask_161_5.dat b/lib/phpqrcode/cache/mask_5/mask_161_5.dat
deleted file mode 100644
index 70d5fb008..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_161_5.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���I
-�@н�����Dp@ �o|m� ���rHk㨤�~c��o�^��Jz�װ��#5l���¦S_92�� ��[�}����ZÊ���=��T�2��ƀ�P��2[cV�衆�C�Yf��'-���X�9>�v��~u���sK5�`�e�,��2�,��2�,��2��-���//�/o_q�}K���\��r�e�Yf�e�Yf�峖��o��+���/�,��\f�e�Yf�e�Yfٳ�e��x�B.�e��2�,��2�,�̲g+����l�\��r�16�,��2�,���<�v.�r륆��޼���rO5�����s_�Z�ɔu�I�_���*� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_5/mask_165_5.dat b/lib/phpqrcode/cache/mask_5/mask_165_5.dat
deleted file mode 100644
index 94af813d9..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_165_5.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_5/mask_169_5.dat b/lib/phpqrcode/cache/mask_5/mask_169_5.dat
deleted file mode 100644
index 921a77076..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_169_5.dat
+++ /dev/null
@@ -1 +0,0 @@
-x����j�0��|����/�ni��K��'���.r�:�T-m&�Z�x9�y�q�3r��Og�v�OO_zׯ�u`]��ȷ��it�ا��t���il�oc���1�3j9�%_g|�ԧ��)���>���>�ϰ�=�te�&��_�4�����=�t�U��}�/��>���>���>�O���r�5/u��>�/���g�}��g�}��g�����O����sv�O��}�/��g�}��g�}�ٷ�G�o-�w{���r_�{�g�}��g�}��g_����n��<r_��}����>����=��n]�4Nk��β_������M���������8�m?���SF��<� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_5/mask_173_5.dat b/lib/phpqrcode/cache/mask_5/mask_173_5.dat
deleted file mode 100644
index f9a674136..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_173_5.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-x���[
-�0���&����G1���g�D)[�Cz���eD�ѷц�=R�N�6����F��Jm� ��Jq�P�}�x�� s���_��}��G��F�y;�����
-[;�]���e�k[��QbT�m�y�&0� L`�̄Y?���ر���w؛� �f����c���VN��9����&0� L`��ׄZ���}0=F=F9AN���L`��&0� L`Bz�Y�fI���=F9AN��&0� L`��&0� ���fI��s�r�� '� L`��&0� L`<i͒��"�9AN���&0� L`��V��aB�X�"������,U�m�>���
-=�w���Z�gBΜP��� !8 \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_5/mask_177_5.dat b/lib/phpqrcode/cache/mask_5/mask_177_5.dat
deleted file mode 100644
index b07c636b6..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_177_5.dat
+++ /dev/null
@@ -1,11 +0,0 @@
-x���ъ�0��~����ܾح��� �uO,"% ��:$Xui=��Ѷ��Ճ����g�Ƹ?Ώq�.��So~�z׉��W�:�=�h1c�q�����]�Ƕ��i��!�����r�8Ɓ��`+X�
-V�� �������j��j�;�8Ɓ�X��+�
-��oV���`+X�
-V��?[1�^�h-ֳ5Z;�����rmS��+�
-��oV���`+X�
-V��;���Z,��Y�M�B��+�
-V���`+X�
-V����Z�e��ڦ}�r�\!W��`+X�
-V���`+�3�Km�>S�B��+�
-V���`+X�
-V��c��㊛�{g;�^Qq5�ZU���ݮ��Q�L�0+*&YD�q����*6 \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_5/mask_21_5.dat b/lib/phpqrcode/cache/mask_5/mask_21_5.dat
deleted file mode 100644
index 04f97ea69..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_21_5.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_5/mask_25_5.dat b/lib/phpqrcode/cache/mask_5/mask_25_5.dat
deleted file mode 100644
index c20b59b1f..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_25_5.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-xڝ�a
-@!���4��� ޳ʢ�� ?,"���"j����?n<�O���a �w, l}rG�M;Ϧ�9[�� ��_���x|���=�l4lK��v� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_5/mask_29_5.dat b/lib/phpqrcode/cache/mask_5/mask_29_5.dat
deleted file mode 100644
index 217ec1b8a..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_29_5.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x�Ւ]
-� ��=M��_n0W .��=-��4�m�y�B���+� ���R���􈋆$��ƃ.=s/,+�B�7�󳝍q�z�~�q>=G���Z�y�:��DR�� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_5/mask_33_5.dat b/lib/phpqrcode/cache/mask_5/mask_33_5.dat
deleted file mode 100644
index 726d7fd75..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_33_5.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_5/mask_37_5.dat b/lib/phpqrcode/cache/mask_5/mask_37_5.dat
deleted file mode 100644
index 6d32ca6fa..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_37_5.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_5/mask_41_5.dat b/lib/phpqrcode/cache/mask_5/mask_41_5.dat
deleted file mode 100644
index e07c6172a..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_41_5.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x��TA
-� ��5��?7���XMtxҴx�� ��?@���7@�~"�N$��S�ɰ�{�+C���A'��r\P�p�<ޏ�-� ͺ:S3s�ԉ�ۻ�ީ�z#��qw��� >� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_5/mask_45_5.dat b/lib/phpqrcode/cache/mask_5/mask_45_5.dat
deleted file mode 100644
index 5168a17f9..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_45_5.dat
+++ /dev/null
@@ -1 +0,0 @@
-x��UA� ��5��?���U:N&Z"��:;4P1=�bNvSG�M1��˛�n<�v`q��{���Mg��4��=G�-T���?����='k��u�ۭ����>���'�����(�κ�� J�{E�ѵs�]� ,�sq� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_5/mask_49_5.dat b/lib/phpqrcode/cache/mask_5/mask_49_5.dat
deleted file mode 100644
index 9f3f3cd7d..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_49_5.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_5/mask_53_5.dat b/lib/phpqrcode/cache/mask_5/mask_53_5.dat
deleted file mode 100644
index 449807bae..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_53_5.dat
+++ /dev/null
@@ -1 +0,0 @@
-x��VA� �������"� zYf5Ɛ�JC � �A;�����l�\�,��d�R.� \(�e_�� ���еaNi5��\ż������aLP��(����;����2ש���j�N6O u�+��l{y��6od��^ ����C[�%� � \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_5/mask_57_5.dat b/lib/phpqrcode/cache/mask_5/mask_57_5.dat
deleted file mode 100644
index c7dd81f39..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_57_5.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x��VA
-� ��5��?��N�l��Z�HAbB�Z0a� ��M���d`1�z�'"<Ր1��9nvͨ.�� )�bݻ�~�;�<K����ھx_����Eu 3�][�/[T�o�J�ϵU羁�4���v� H�Pn���|����Im!w�L1/8,g� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_5/mask_61_5.dat b/lib/phpqrcode/cache/mask_5/mask_61_5.dat
deleted file mode 100644
index dee749fbf..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_61_5.dat
+++ /dev/null
@@ -1 +0,0 @@
-x��Q� C�w�����C �Ֆ�B ���.ݛ�w�p�����Kv�g;���|3:��}�ؓc0þɴ�j���j7(�l�we^�W�J�ɾ��S��w��t_e���Ϋ�T���M���O�s��9ubs=�?���~~���>�9���Z#t�B�~ \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_5/mask_65_5.dat b/lib/phpqrcode/cache/mask_5/mask_65_5.dat
deleted file mode 100644
index ecd938068..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_65_5.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_5/mask_69_5.dat b/lib/phpqrcode/cache/mask_5/mask_69_5.dat
deleted file mode 100644
index ead4edc1f..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_69_5.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_5/mask_73_5.dat b/lib/phpqrcode/cache/mask_5/mask_73_5.dat
deleted file mode 100644
index 00001176d..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_73_5.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_5/mask_77_5.dat b/lib/phpqrcode/cache/mask_5/mask_77_5.dat
deleted file mode 100644
index 1652cdc2d..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_77_5.dat
+++ /dev/null
@@ -1 +0,0 @@
-x��Q� C�w�����#&C`T����6��ƹ�B��(���9� �'ֆ����ڢ���zk��"h����v.` ����cX�B5[�(��F>71�/3��4��Ϊ�z�^'���[�Fyglg��M>�O�TL�4ϔ{�&3�Wy*�ʧb*��`��<3�;����Vo0�/s�6n�����0�ya��[���m�cE \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_5/mask_81_5.dat b/lib/phpqrcode/cache/mask_5/mask_81_5.dat
deleted file mode 100644
index 71215e952..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_81_5.dat
+++ /dev/null
@@ -1,3 +0,0 @@
-x���
-� C�~M��?��tz�U4���"� }t����MX�2|.�ɋ�˙F\�������~m��4������X�u
-ٔ, ��w�:��E�Ƅ>��X���̯=_�]�g>�>���z�מ�/�)5ךk�k�k���Zs��X��X��Y{ܮ��}����~mt�������:S#���&;U#)��� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_5/mask_85_5.dat b/lib/phpqrcode/cache/mask_5/mask_85_5.dat
deleted file mode 100644
index 09cf0e281..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_85_5.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_5/mask_89_5.dat b/lib/phpqrcode/cache/mask_5/mask_89_5.dat
deleted file mode 100644
index 5fff53069..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_89_5.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���
-� ���4������5e���npQ�� G��c��f���l^^�;;b�5;`�k���U͹߮��j`�N�s���O=�\[a6�����~�nL�D?� �!6����u��F%w�*Ȭ��k���f��77�SĆ�b�Æ�Xodw_���—m�����bCl��Nۙ ck&��Y��Voܡ�׷Bע�ب�Al6� ��Jj�x \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_5/mask_93_5.dat b/lib/phpqrcode/cache/mask_5/mask_93_5.dat
deleted file mode 100644
index ec4240bd3..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_93_5.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x��K
-�0 D�>�����&���& ��� fP^���8BY5��s(im����Ү���=f���3�/wۧ��E��y����Y�Q�wf��[}�� ��[�9�0303�ef��̙��3'3=<��K{n��Sg�3��`f`f`��d��ޝ��oi����Pg�7� �� �܇G�jk�G]�}?V/�� k�����Wi72�Js�v�|*"f^ \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_5/mask_97_5.dat b/lib/phpqrcode/cache/mask_5/mask_97_5.dat
deleted file mode 100644
index 509d1174f..000000000
--- a/lib/phpqrcode/cache/mask_5/mask_97_5.dat
+++ /dev/null
@@ -1 +0,0 @@
-x��A� E������f!3bf5��ƼB����|#f=<3l�6<���_+xj����) ��ݩ�y����� �J �yXi�ܻ�5�Izsٞ�c�u�eQ�� �K�K�K�d)�>,ͼwx�D�ַ.,;��s�%�g,�,�,=����R��ὓ�7u���K�K��T�D��<(n lY����h��V۹s�ޕ�y�����P��E�<��q \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_6/mask_101_6.dat b/lib/phpqrcode/cache/mask_6/mask_101_6.dat
deleted file mode 100644
index 13f97a0fd..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_101_6.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x��k
-�0 ���4��/��n_.��2#�S�H�6�_�P��Z���f˳_���,�7؞��+�%��W���d�–��n�}��_&�Ok;����P��f�>�t�yY��]�ns �;s��s��,�!Lk��ԅcbL��12c�X9��1���Z�#X��En#;�sv�T~L~L�R��11vs�.�����1���1�1�1�J1&��؍��Ń�1�1�1�J1&ƞ���g�� KLƪjl��k{�g�ڞ5�K�1/�ǐ��~,a�����c���$�� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_6/mask_105_6.dat b/lib/phpqrcode/cache/mask_6/mask_105_6.dat
deleted file mode 100644
index a58fec749..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_105_6.dat
+++ /dev/null
@@ -1,3 +0,0 @@
-x��Q
-�@ D�s����k���B�Z�#o)Sd�}��Gܷ��l�쯯�^�������)G]S�4�S������?�#B�Z�:��+{����s��H�K�N�iI��!��m��e1
-RWe9!��`�`��Uy�ˀ�u�:檞����U=w�-�o�ԺwB�}cM�K���蹰{�{�=�y���蹰{�{�=�y���蹰{�wS��cao�i'�f����yO=C�yO=C�y���[����{S޻�=�;�|v4}ϯ2���0� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_6/mask_109_6.dat b/lib/phpqrcode/cache/mask_6/mask_109_6.dat
deleted file mode 100644
index be7b4749e..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_109_6.dat
+++ /dev/null
@@ -1 +0,0 @@
-x��A�0 �~���ρDBH�C�H�V2��0�n�uo��l�쯯��˻=ۢs9[���l'���?���7��R"� &���2����:7QqX_�n� ��]�$�՚�EIY��*���L��q0 �0 �0�{LJ��з(s\�ɳw�����X�-�7^��It��I��I��I�$~?�N��0 �0 �0���O�'�It�g7L�$L�-�����Iuzrfr M��^�'}��������(�O~R��]1Y��L�Ğu��9�Q�ӕ \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_6/mask_113_6.dat b/lib/phpqrcode/cache/mask_6/mask_113_6.dat
deleted file mode 100644
index 397f52741..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_113_6.dat
+++ /dev/null
@@ -1,3 +0,0 @@
-x���� E��5��N���Չ�����bF6�on���,m�>�gS�9���RW����c�Ǖ9�&�%�1���_��cx= GR^���w-z?��dz�v�=�,��}ԥ?ǹژ�:�9�m�=��=@U���䲉�UX�UX�Ve������~�by4W���i��:�e=��<SZmAW�UtVaVaVa�ZV�5~�������V�*����*��*��*�^�*~�wk�������
-��
-��ZϪb����ayT�f����j�ֺʯj�Z�~����t_@Un����Ѿ�YWsV�� �[|H \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_6/mask_117_6.dat b/lib/phpqrcode/cache/mask_6/mask_117_6.dat
deleted file mode 100644
index 99108bef7..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_117_6.dat
+++ /dev/null
@@ -1 +0,0 @@
-x��a� F��4��/��#E��v3�nŸ���/m���Y���T���wm<�~?�l�j�G�����C�qS�/��6f�tݟ�o�Ӕf^�l'��7`��Z���C� �?����he���i���Xq4�[ـ�ԉ�a�a�a���9]P�����Y����M<6��a�[��g�:���0 �0 �0 ×g�x8:�Y�z;7�C��at�a�a�a�� �Ʊ,�C��at�a�a�����O �U6� ��8����=�g��xx\��ƑX�Q�t�2��J�Z��:�g�� C+\ \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_6/mask_121_6.dat b/lib/phpqrcode/cache/mask_6/mask_121_6.dat
deleted file mode 100644
index f3c329945..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_121_6.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_6/mask_125_6.dat b/lib/phpqrcode/cache/mask_6/mask_125_6.dat
deleted file mode 100644
index ff64d44fc..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_125_6.dat
+++ /dev/null
@@ -1 +0,0 @@
-x��A�0E�����r3���&H� �y�b+��Slh�0Ͳ6L���wE��ѿ��fǮI����v�;���&vw�,o��]u�d�]|�k棘���9ԊC���}�s�1�9Jw9ˡ�Zb�=����PK&�a�a�a�a>�����ɼ�Æ�$<>�O��v���'����C��yt�a�a�a�a~����|���'9li�Σ��<��<��<��<�����I�æ��<:���<��<��<����ٕ�W�Dz��y�:.z=�� �ݓʯ �s�V�öE=ll�_k0_#v���ί�m���j \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_6/mask_129_6.dat b/lib/phpqrcode/cache/mask_6/mask_129_6.dat
deleted file mode 100644
index b4695c3ff..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_129_6.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_6/mask_133_6.dat b/lib/phpqrcode/cache/mask_6/mask_133_6.dat
deleted file mode 100644
index 40911dc57..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_133_6.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_6/mask_137_6.dat b/lib/phpqrcode/cache/mask_6/mask_137_6.dat
deleted file mode 100644
index 43ccb68c6..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_137_6.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���� E��5��?�e�����^�4f�H�p[1-e)UQ�V��]�U�W�N�5��o�*8|���۩�W����6�bk?����{�f����|>�s֪���r6����6����6�rҟ�=��v�ڲ�Wy�� ���-��'
-����Ο���;q tQ�E>U�϶�f���곭�x�N]Tc�(s❮7t�Aw��`v`v`v`�kv�wf�wt�;]����;����;�;�;�;��!ޙ;�ao��]���;�l�;�;�;�÷�| ʷ�������������(3}��l.��?��"މr}��;�\}�S��-A���w�<9;�EV�'�ם������ \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_6/mask_141_6.dat b/lib/phpqrcode/cache/mask_6/mask_141_6.dat
deleted file mode 100644
index 0340409a4..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_141_6.dat
+++ /dev/null
@@ -1,10 +0,0 @@
-x��a� F��4��/��c����]�زȐ���[���=��[E럓���s�m,��f�n/�|kj\��j�?g�����[q��(NO�Zc5���SGGP[oM�V�ָ��f���v�L<<e�
-+�Ěa*XG6����)��)��)���cL��S�6�tj�M�]o���W8�D~�O��D�`�?�׆N�S�k?��)��)��)�*���U�)���? �SI�=
-t
-�B�X��L�L�L�T5���Oq��Q�S�:���`
-�`
-�`
-����3_��E��)t
-�`
-�`
-�`��L���yb*?2��T5i�?U!�K��*�x��T7i��o��I�EI���R��E�uJ+M�7 ��' \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_6/mask_145_6.dat b/lib/phpqrcode/cache/mask_6/mask_145_6.dat
deleted file mode 100644
index 6c1421513..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_145_6.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_6/mask_149_6.dat b/lib/phpqrcode/cache/mask_6/mask_149_6.dat
deleted file mode 100644
index 69e988350..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_149_6.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���
-�0 E��5�����f��47��8UD�6����2�z�m�pߞ��k8�����}��G���ӕ��N}?}��W�:����gu�WA�ˌ7 ~�;�)����Ø{̪ǿ+�WP��Oۢ����r�E�\j�wG)y˖�w���A�A�A�AM%����2��`��2��d��l����|p}�eqP���� :�� � � � ��e j想=�l��T5��ɠ�� :�� � � � �� �G��{��d��d�AtDaaaaa��&أ�&�w� :�� � � � �1�����-MRb0��W�f� ���uz�5�&Y�iIѺ��NрA���P�QS���L}4 \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_6/mask_153_6.dat b/lib/phpqrcode/cache/mask_6/mask_153_6.dat
deleted file mode 100644
index 3ab6130ed..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_153_6.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_6/mask_157_6.dat b/lib/phpqrcode/cache/mask_6/mask_157_6.dat
deleted file mode 100644
index b45c0ceec..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_157_6.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���A�@D�}�f����D�N%���n�ç�,�֖�SV�V�>��W��ó��C�a�z�6���U��~һ�{`n��������ݻdvV�y~�r��Z�"�q��k{>g$��XK���U}m\b�ja�G�x��,f1�Y�b������]�z���̞���^��.��5�[?�嬜��r���,f1�Y��Y>�g�����rV�b���,f1�Y>�g�,���rV��m�Y�b���,f�,��|V��Y9�Y�b���,f�,��|V��Y9+g1�Y�b����ً �̦M7>2{9z�϶h�m3���l�|�9�x�ټ��#f#�x�6 ���-�v�%�N' \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_6/mask_161_6.dat b/lib/phpqrcode/cache/mask_6/mask_161_6.dat
deleted file mode 100644
index ecec68b1a..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_161_6.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_6/mask_165_6.dat b/lib/phpqrcode/cache/mask_6/mask_165_6.dat
deleted file mode 100644
index d641dfa3d..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_165_6.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_6/mask_169_6.dat b/lib/phpqrcode/cache/mask_6/mask_169_6.dat
deleted file mode 100644
index ae689723d..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_169_6.dat
+++ /dev/null
@@ -1 +0,0 @@
-x����J�0���i��9[�J�ɘ�k{�1�b�!g�nhHkS뉭-�V?��KI�����ׁ��1큏�1���ƣݎ/��������`���/z�)*�=��3ڏ�g6���^k6��5�C����Y�<�K��kM���[�y@�G�&_=~���>���>���㵾�+����'{��է_�Vˊ�x�-�J���<ӛܗ�r_��>���>��i���;������r�O��}�/��g�}��g�}�ٿ�}����}���x�O��}�/��g�}��g�}�ٷ�G�o/�{{���r_����>���>��o/�z�^����#������}��g�}�ٿ���d��'�ʳ�|�QR��NS��3�����������Y�����ڳ��Z�'�ms�E�Ƿj�5� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_6/mask_173_6.dat b/lib/phpqrcode/cache/mask_6/mask_173_6.dat
deleted file mode 100644
index 95fa97c7b..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_173_6.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���a��0��9Mr�����M S�*:a_-��5hh_�)�u�Z֭[�����l��o�ےs��mK������N�{���H�?x��`l�#f�9>�ڟ[���e�Єώߓ�� �?�^���m���*�/K�m���h�y%��v-nKl�������kK�L`��&&�� g5����(�g�wx�Y�ܞ���a¬�pVc�Z[��#O=��SN��9����&0� L`��DŽ�� ��'t�j�j�]�QN��9����&0� L`���s��YRc�@�QN��9� L`��&0� L`��"�YRc�\�� '� r��&0� L`���E�����H9AN��&0� L`��&��� 7�p�6�`�|�����hm��s�� ���R5����Ƙ�ȉ k\�X/�� � )�g9� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_6/mask_177_6.dat b/lib/phpqrcode/cache/mask_6/mask_177_6.dat
deleted file mode 100644
index e9f0476f0..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_177_6.dat
+++ /dev/null
@@ -1,14 +0,0 @@
-x����n� ��{����ڤ*4v۴u���1����{<�L�Gi�K�� ��GU������]�m�/�6���j��?mZ�m�z�y/�ξg�j��\�Փ��<`�_��>f{�����_��,�,K9o 4�ǵ���7l���niJiggi�r<�-MG�
-��
-��
-��
-�xuV��+z��R�C�r9�+Gq�6�QW��b"��Qe��"�WL����+�
-� X�X�X�X�X�/��|~�j,�n��mu�M���ۤ+�
-���� �X�X�X�X�X�Ya,��X��;�M����+�
-� X�X�X�X�X���e�)o�<S����+�
-��
-��
-��
-��
-��
-�0��X,ަy�t]AW�X�X�X�X�X�;V�H��92m���e3��Wd�Q��be�Qؽ�]>Ә�f�|�����5��H���늚���7/D \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_6/mask_21_6.dat b/lib/phpqrcode/cache/mask_6/mask_21_6.dat
deleted file mode 100644
index 6bd505b4a..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_21_6.dat
+++ /dev/null
@@ -1 +0,0 @@
-xڝ�Q� C�9M{��i]���X�1����-� C!����D��7 W �ٜ��&rD�)~�]<M� �3(>{��A ����a��S� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_6/mask_25_6.dat b/lib/phpqrcode/cache/mask_6/mask_25_6.dat
deleted file mode 100644
index d45083aab..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_25_6.dat
+++ /dev/null
@@ -1 +0,0 @@
-xڝQA� ��5����2)�e+�(Xm�Zt�*(�ڹ�;���tJ�<峂�_ڤ�3�o���ڴ"̢a�zh}�&qv��SG�֙,�-���J��4}���oS[��}w \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_6/mask_29_6.dat b/lib/phpqrcode/cache/mask_6/mask_29_6.dat
deleted file mode 100644
index 0408e2240..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_29_6.dat
+++ /dev/null
@@ -1,3 +0,0 @@
-x��RA
-�0 �������Xc�����L(4E�ԈB
-8C�ܾ޳n�M��+lǝ��ՆO��1]�&�ڍ�4U�D-6-�$:6�dZ�?y��l��f�?� �8?�߲�<�l��}��g�g���* \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_6/mask_33_6.dat b/lib/phpqrcode/cache/mask_6/mask_33_6.dat
deleted file mode 100644
index 8de4ba5c9..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_33_6.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_6/mask_37_6.dat b/lib/phpqrcode/cache/mask_6/mask_37_6.dat
deleted file mode 100644
index b37ff0ab6..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_37_6.dat
+++ /dev/null
@@ -1 +0,0 @@
-x��A� &����T `���j<P�0��jB#�&����,Yo���fU��j�*U�Տ���Y���[��oY5 �~�5 T7bnb,��]�˘����������-�������qF:s��t�Dc��h� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_6/mask_41_6.dat b/lib/phpqrcode/cache/mask_6/mask_41_6.dat
deleted file mode 100644
index c1535f785..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_41_6.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_6/mask_45_6.dat b/lib/phpqrcode/cache/mask_6/mask_45_6.dat
deleted file mode 100644
index a7da7ee02..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_45_6.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_6/mask_49_6.dat b/lib/phpqrcode/cache/mask_6/mask_49_6.dat
deleted file mode 100644
index 64ded7093..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_49_6.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x��VQ� ��i���{K&������YX��؁�0�̦!=����t��n&��fp�WL
-�`�/�<ϓKVrU�\1�bGp��@��ӑ&fN�/+ƽq����`���AW���S���RGp��_5|�|z��xν:����J��+WE�m4h�4�3tܭ�.���A�g`\������ʤ�*��F�� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_6/mask_53_6.dat b/lib/phpqrcode/cache/mask_6/mask_53_6.dat
deleted file mode 100644
index 9139e3259..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_53_6.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_6/mask_57_6.dat b/lib/phpqrcode/cache/mask_6/mask_57_6.dat
deleted file mode 100644
index 61e7e2428..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_57_6.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x��W�� |�k���K���Q�-�^@c�"Wr^U�Y��M³>_ݏ`���8����G�1��`�B��`;��+���}����&s���]<�J�QF=mb3 U�F'��6�Ɩ�E ����5�Ja�wZ���60��
-�[���9���9���{��S��\ݞ8��`k&���os}{�[R���[�+��w��O��d^jW \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_6/mask_61_6.dat b/lib/phpqrcode/cache/mask_6/mask_61_6.dat
deleted file mode 100644
index f2d3f10df..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_61_6.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x��K� D�s���ڤ�E~݂�ih��'�
-�����N�'oVW���jsp��Cz����ο���a��g!��#WD%~�˃Y?�J�f���R�E�����Ko�ͼ�ǘ��|Ƀˎ*�O�P7�������n�뼽��7�s�`���������s���d�D�����s�~>�<�i�K'�l'��9���%.���7 \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_6/mask_65_6.dat b/lib/phpqrcode/cache/mask_6/mask_65_6.dat
deleted file mode 100644
index 550fc8fe7..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_65_6.dat
+++ /dev/null
@@ -1 +0,0 @@
-x��WQ� ��i���{K�NLk?��e$�Q�ik����4���1{����`+�!�ڮ�M �?� �������1b�8�� ���.��^��w������sn��Fj�5��EaQX|�=w�@�2v<�ŋŞ���|4w���\�UX�BQz+��T��T���c�B�z�/4��8��,��5�`������ȱ �OV$ \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_6/mask_69_6.dat b/lib/phpqrcode/cache/mask_6/mask_69_6.dat
deleted file mode 100644
index a3e4fa0f2..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_69_6.dat
+++ /dev/null
@@ -1 +0,0 @@
-x��K� @�����dTh���� hLSSE�q eY@<�+�*�|�窮 %���>������z�*7��e����6�Q���S`��.��>�sE �'�%@[��6�@P�0�h �a�F�xtpl�2���� ��Q-g1N�feo^������0F�dT>N_�O���w��G�3���u����g�� �{�3<�[�Ժ b?�'6�^�� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_6/mask_73_6.dat b/lib/phpqrcode/cache/mask_6/mask_73_6.dat
deleted file mode 100644
index ab71b70ae..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_73_6.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_6/mask_77_6.dat b/lib/phpqrcode/cache/mask_6/mask_77_6.dat
deleted file mode 100644
index ad5a660e3..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_77_6.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���� E�����۲i���V�a�.���F��pST�Y��4q��~�z��=��:�͒ �6�����m8��:#0Pض�iDy:2Š'��Z�s��&}���滜\r�0\�Ś��Xw��;iP���ȔL�)�S���eԕ�{h�Du9�L��b����J��S��S�)��)��gZ�{��e����)�qJ�d�Lw+�#�3-V0�շl�j����ڠ�S-�S �9=ݯ��5�PP��q1M�?�g� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_6/mask_81_6.dat b/lib/phpqrcode/cache/mask_6/mask_81_6.dat
deleted file mode 100644
index 28a6d0752..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_81_6.dat
+++ /dev/null
@@ -1,3 +0,0 @@
-x��Q�0D�9 ��r���R�L�v�k���`���0 �;�i6�����\|��_��cc�1��h��u���io��#2��}x*.Y�t�&���
-ְ���q/K�;3�v�e�̢Ȋ��A�H��?`]�5��K������w�!}{Zû߲�W
-��yⷾ��^�_y��k�k��^K��ת�b-�b�YSڸ'֜N��u�����#M�f�HS�Q?|]�I��A���i�M���y��yuW� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_6/mask_85_6.dat b/lib/phpqrcode/cache/mask_6/mask_85_6.dat
deleted file mode 100644
index d5403e49a..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_85_6.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_6/mask_89_6.dat b/lib/phpqrcode/cache/mask_6/mask_89_6.dat
deleted file mode 100644
index eeeb5d197..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_89_6.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_6/mask_93_6.dat b/lib/phpqrcode/cache/mask_6/mask_93_6.dat
deleted file mode 100644
index 6ff38db68..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_93_6.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_6/mask_97_6.dat b/lib/phpqrcode/cache/mask_6/mask_97_6.dat
deleted file mode 100644
index 3a2072efd..000000000
--- a/lib/phpqrcode/cache/mask_6/mask_97_6.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x��a�0��s���d����Fx[�=4�H���o�j3�4�&�s}�*���� �a V��c�&3���5�arW�^a���LCl��z�q�,���1�x� ��SQ�N���]��/Giu�`&�����w�%�,�%�D��Y�"K�t��+�HE'|R2�(v1��v���qi���qd�,�%�D�~����%ػJj�}�ͺĺ�gY"Kd�,�+K��
-�]W�t�+sF/)�]�.zN���'`�>���1='#�`+b��l]Z������� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_7/mask_101_7.dat b/lib/phpqrcode/cache/mask_7/mask_101_7.dat
deleted file mode 100644
index 1f6bc5129..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_101_7.dat
+++ /dev/null
@@ -1 +0,0 @@
-x��Q� C�}r��m��`���f�j��T�#�����54't���f�a�Їo��$�c<��������Hݠ�h8�l������o=�Ą�ŧ�Hv��;�z��!�|/�F�Ѝ3cf̌�S�ʅ��㍂��� 8�K�)4�9��Q�1�1�J3f�����S+�w�c�����k�3cf캌���z�y�y̵Ҍ��1�{��bL����X�S+��.to{>���mO��J2��3c�<6�Xn0F� )� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_7/mask_105_7.dat b/lib/phpqrcode/cache/mask_7/mask_105_7.dat
deleted file mode 100644
index 6b0cacfe9..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_105_7.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x��A
-�0E��F��a�Mҙ�N�Px)�pQ���_�~�|ñ(b��F����$.��a�o���W�GN�P�Uǖ��M�%{��o�HQ��U�l�ִ���L^>+��m��#{�{�eo&Y2s�oM�)gncO9s��Z���3w�o���+��{�=f.����z��ޣ������{�{�=�z��G�c�����s�kCQϞp���^��&�{^���N�ʷU���� �e5��}��E�wG��n+o \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_7/mask_109_7.dat b/lib/phpqrcode/cache/mask_7/mask_109_7.dat
deleted file mode 100644
index 9875cbe8c..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_109_7.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x��A
-�0 D�9Mr��}��*� _x-d���:�"�NJ��-k�"�⨚���d�{��ջ��������גɬ|<b2+�U ������%Z}�.�q%Gi���h QA9��I��I��G&��ɞ�<�� o�:�,ub�2}�mބ_ �D'�I��I��I��O�'��$: �0 �0 ��I�$~�D'�w�$L�䇙T�OvLVOO^�<�������O�b��O��O��O��ʛ��t�\3����<�G�ͫ \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_7/mask_113_7.dat b/lib/phpqrcode/cache/mask_7/mask_113_7.dat
deleted file mode 100644
index b6e215982..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_113_7.dat
+++ /dev/null
@@ -1,11 +0,0 @@
-x��Q� D��4p�˵M�PeQ��6��d?Ը�>'����r�Q5+ s����)�c���7��-���1nn햺q�ɔ���Jtg��^�ʉw�̘Ň-��?�*�&Mm�@ee5��^�
-c���
-��
-����,�����b�\1��3�j�4��T�Z�f���o�����*�
-��
-��
-��:�U��t�*�����������
-��
-��
-��Xů�0<�BW�UtVaVaV�Y�l
-ް��k�f5���_� ���k��W5{�����5pn�C��Z:�� bv \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_7/mask_117_7.dat b/lib/phpqrcode/cache/mask_7/mask_117_7.dat
deleted file mode 100644
index cde78c10d..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_117_7.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x��Y� D��4p��U�����I�>"�%6�ed ��8r�S �Ns��U��n�k5�Xe��j��ު�u�������V�Xg��,l`���u������!�h�XZ�\V�lM���|[ͬ��0 �0 �0 ���#hF'��c]������i��>�����H�at�a�a�a~<��Æz�y�qkO����0 �0 �0 �����㪞F��a�a�a�)��2�˰�fÒ��%��z8���tO=���3�=�����3��:��c�w�
-��V$� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_7/mask_121_7.dat b/lib/phpqrcode/cache/mask_7/mask_121_7.dat
deleted file mode 100644
index d5d577f7e..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_121_7.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x��[
-� E���d������i;^az,�#6ƞ^r����h�������&����^am����Y�9�_�غ�5C�r�6��t^�^�Wl���E��ز~ɿ|�M��m����mS�}���( ۰ ۰ ۰}�mQ�]�Z�V�q�]��v�Ѳ"�M�1f��G���, q���B��mt�a�a�a����z�eF�3��cxI��D��mt�a�a�a���m�n�ý$��n�۰ ۰ ۰ ۏa[}�`[y�������ޖ޻)�n<��4�K�/��O��s�l�n�l�m���/G�� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_7/mask_125_7.dat b/lib/phpqrcode/cache/mask_7/mask_125_7.dat
deleted file mode 100644
index f9ec0887b..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_125_7.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_7/mask_129_7.dat b/lib/phpqrcode/cache/mask_7/mask_129_7.dat
deleted file mode 100644
index 9bf51d529..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_129_7.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_7/mask_133_7.dat b/lib/phpqrcode/cache/mask_7/mask_133_7.dat
deleted file mode 100644
index b643ffeda..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_133_7.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_7/mask_137_7.dat b/lib/phpqrcode/cache/mask_7/mask_137_7.dat
deleted file mode 100644
index 11d212bf4..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_137_7.dat
+++ /dev/null
@@ -1,5 +0,0 @@
-x���
-� F��4��/� �c���_ǂ+�{�S�K<E�Ӑ�%um�Ĕ�O��c�P�Ns��u���+� ��ʺ�QS,E)ֵ�^�f��a�_�HkoKr��6�D�ZQ����� F><����o[l
-������
-��0��7։�V�l;b�������7��fM�S���;�1�������L�C�<�Q�[+@w�t�� v`v`v`v&�!� ��7�X+@w�t�� v`v`v`v8 �YP΂�;��C�;�;�;�saG{��;ڻ>vR�|��������K�����M��H�
-��#Н(S�����q��d \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_7/mask_141_7.dat b/lib/phpqrcode/cache/mask_7/mask_141_7.dat
deleted file mode 100644
index 98dffab00..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_141_7.dat
+++ /dev/null
@@ -1 +0,0 @@
-x��A� E�= ��r�I�TY@��Ä�0!���|1����t�bG0��ԗѤ�s���2Z/��o�a����\�q��z��OnҋM����n���t��X"K��m�eM}���Cp����P�L^����S0S0S0S�L �)ǔ��ژ�Y߾%��b��,�S��l?�zC��)t��L�L�L�LI2��z���RX�h��@��)t��L�L�L�LI1��z��bϷ��B��)�~0S0S0S0�7��)�|���B��)��)��)����3Ֆ�L%� tf��wM��*:~�h����Z��sn�c��$1UTtJg�8���OY�E \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_7/mask_145_7.dat b/lib/phpqrcode/cache/mask_7/mask_145_7.dat
deleted file mode 100644
index 4aa2bac11..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_145_7.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���
-� E��5��?W6Z���-�^���2�q���bG���X6(Ɖu�"�Lb�b�Gu���μ���Gk��:HwA[�j��m��H���ݞ�3�������O�kQ{l�|��T��Em� Jf�L�?��2"&�����������)�k��Rf����c���̉��F��,��z���=�������5X�5X�5X��7�F��\��p���Us#�������5X�5X�5X���F��d��Y�������k�!a �` �` �`�o���8���ct ]C��C������ gM���5�[�N�%��k�h��Zp�?��Iܣ�ϲ�^n$����Y7A����ZP[� fȓ0 \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_7/mask_149_7.dat b/lib/phpqrcode/cache/mask_7/mask_149_7.dat
deleted file mode 100644
index 809f00554..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_149_7.dat
+++ /dev/null
@@ -1 +0,0 @@
-x����n� ��{? ���u�چ����2��G$n��c���F��K����b3����֪t����Pc �̥�7[�?9:���['���9'�*Ӗ ��G��a��h�_��/�z�+�6XB�>�2�qY�J�0��黏��Bfa�� 1��� ��9c7G� �Ol��,�^����꽓��3���A:H� � 1�A b����0X4�%٫��#��d>�&C� ��� 1�A b�<�A{�o�G�&�LM��A:H1�A b�� 1� {�j2����t�b�� 1�A &1X�`�_ �9���`���B��G_�l�5�:g5��ajM��L������I� <|r. \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_7/mask_153_7.dat b/lib/phpqrcode/cache/mask_7/mask_153_7.dat
deleted file mode 100644
index c1ab27664..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_153_7.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���Q�0���= ��匉B5�
-ю惤/�Ͳ���I�i�^-��Zkm|�YDh�9 ����\{�K����{��y���3�v��̻�E]u`R��r�"��}�Y ��e�2{�VV8][�.n:+2_���B�&6��Mlb���&6�`3i�9�Y���Ό諡y��U}ԟ82f-vږ�6��n�M�I7��Mlb���&6���l��7������ ��t�n�Mlb���&6��Ml�2�����^�/�n�M�I7��Mlb���&6��;gxA�C��t�n�O�Mlb���&6�y��y��fP��[6�4��̫��k`v^�+�9� ʬO۱��}�攨��+ZX��=:iWE \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_7/mask_157_7.dat b/lib/phpqrcode/cache/mask_7/mask_157_7.dat
deleted file mode 100644
index 2db27f685..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_157_7.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x���M
-�0E��[M��͕����s�_� ����� �}F��Qks���{�%�Wq�����.��������]�8evV��bvV}�_��E̻n3W^K�\�`��V캽�Zl���,f1�Y��;�af��k��ި��i����z����z?urV��Y9�Y�b���,f�,��|V��Y9+g1�Y�b���,��|���Y9+g�7�,f1�Y�b�|���Y>+g嬜�,f1�Y�b�|���Y>+g嬜����,f1�Y���l����i�o��.\��Ɲo<�l;9�:�g[�϶l�m��^�I>=gϙ���-yk_TA� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_7/mask_161_7.dat b/lib/phpqrcode/cache/mask_7/mask_161_7.dat
deleted file mode 100644
index 35ba8ff48..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_161_7.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���ю� ���y���/皨E)Ʈ��1~4����93,˵���+��ZT=Ze�C���.�<s����v���>~iߏ������&>�,����6e�����~,l�W]� ���2������\��;׵2j"���e,�rX�ݵV�(�c쵵ZӖ1���8ީ�����/,'��t�.�e��e,c�X�2����߱,_��|yt����|��]��t�.c�X�2���e,cy���/ɗ�ys�.�e�L���e,c�X�2��lo�|�Z{+�2]��bl,c�X�2���e{+��֊�[A��2]��X�2���e,c9���C�X�<����/owsP��y��]��y�}�Vd��氹��d9J�Ӈ�)�1� jI2� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_7/mask_165_7.dat b/lib/phpqrcode/cache/mask_7/mask_165_7.dat
deleted file mode 100644
index e27fb8edf..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_165_7.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���Q��0�������M&A,N�̨!�x0�&XZׇZ�-Kث[���e�j�����x,����.�g}�`;���+k{��~1���}�+k{�إ���SG�W�g�}�ݬ@�?_��8퐾o+�k][�h��W�8~�u��M�g�q�g|j<������*�q=<������ۓR�wƓ�����������q9.��8�3�8�3�8�I���U�G�?~�snr\��q9�8�3�8�3�x�q����㮁y�979.��g�q�g�q�g�=)�q���'E��q9.�g�q�g�q�wO�z�50�I��r\����8�3�8�_��Vvd}������a�x˯��5���)�&�9)����f���x�3�YH]�S^*/ \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_7/mask_169_7.dat b/lib/phpqrcode/cache/mask_7/mask_169_7.dat
deleted file mode 100644
index ef1a181f2..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_169_7.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_7/mask_173_7.dat b/lib/phpqrcode/cache/mask_7/mask_173_7.dat
deleted file mode 100644
index 3b5137125..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_173_7.dat
+++ /dev/null
@@ -1 +0,0 @@
-x����j�0 �{=M��/� Rb�H�����rj\�=�,�m�co�Z�8;��m���m���0b���_ߚt$~Wu5�ǚNn�'?d�f2��(o���G�,L�����6_{�z����? �9�wq9� �S!ƌ��9�o��2� L`���p�����O�En�v8L��v8L�� U��Y�"�d}� K�r�� '� �L`��&0� L`B'f�:�O8�TcTc\k�r�� '� �L`��&0� L`B�Y�gI��k�r�� '� �L`��&0� L`��"�YRc�\�� '� r��&0� L`���Eڳ���H9AN��&0� L`��&�'��!�;��q+�Y��l*�ܳ��=؀�9�j�[2���� Ms¤��Ԅ����*� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_7/mask_177_7.dat b/lib/phpqrcode/cache/mask_7/mask_177_7.dat
deleted file mode 100644
index 068477c92..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_177_7.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_7/mask_21_7.dat b/lib/phpqrcode/cache/mask_7/mask_21_7.dat
deleted file mode 100644
index 4f9f1386d..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_21_7.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-xڝ�Q
-�0 B�=���r]��-?]Rl�����2���nc
-�[����n��A�".�j+�i
-~�x3<�aX�{H��C1x��)����S� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_7/mask_25_7.dat b/lib/phpqrcode/cache/mask_7/mask_25_7.dat
deleted file mode 100644
index cefe1b972..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_25_7.dat
+++ /dev/null
@@ -1 +0,0 @@
-xڝQA� ��5���[F@��a�����Z̲� �>;���Q��I��QH8R���҈G�"�z,��&���;���'o�97�%P8%�6oǽ�;]��NWn�[�f7���v� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_7/mask_29_7.dat b/lib/phpqrcode/cache/mask_7/mask_29_7.dat
deleted file mode 100644
index e3d7391b7..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_29_7.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x��R9� ���������QpX�$l�Ųf!I2pg�S��MZj������<K.�ط
-�Ǘ���^D�/�_y�/�gcxV�0�Bf#���]B�Ͻʳ�h�9޹����^�� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_7/mask_33_7.dat b/lib/phpqrcode/cache/mask_7/mask_33_7.dat
deleted file mode 100644
index 1763f4286..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_33_7.dat
+++ /dev/null
@@ -1 +0,0 @@
-x��SA�@��k���6���ǒ8��0 7-n��ZbE0�"���t]���3Ztq��>"�t���e0��#ԛ`�_�1-����c�����ha�~/�Eh�4���"��~� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_7/mask_37_7.dat b/lib/phpqrcode/cache/mask_7/mask_37_7.dat
deleted file mode 100644
index 87d9a1a9d..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_37_7.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_7/mask_41_7.dat b/lib/phpqrcode/cache/mask_7/mask_41_7.dat
deleted file mode 100644
index 8acec04f0..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_41_7.dat
+++ /dev/null
@@ -1 +0,0 @@
-x��TA� ��5���[fDY�(O�^��bR3/~t/L"��7SQQ5�j�\S��i���b��#Նȏ��+ǣ�w#�z�x?�㽧A-�w�u曑Y7$b.%A��;�w�R���oxG}?� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_7/mask_45_7.dat b/lib/phpqrcode/cache/mask_7/mask_45_7.dat
deleted file mode 100644
index dbba31d0b..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_45_7.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_7/mask_49_7.dat b/lib/phpqrcode/cache/mask_7/mask_49_7.dat
deleted file mode 100644
index be5dce8b7..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_49_7.dat
+++ /dev/null
@@ -1 +0,0 @@
-x��V��0��k���h�C-X.���<�h6̋ 3���,B �Ԕ�,�@�ϐ�d5$K�"T|p�%9"�yp�,���=<��m����ԉ!��?���D�W"��(��A�-�\- J\�{0p�l�WW]���4��?4h= Z_��d+�g(�*�*�+붵(��� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_7/mask_53_7.dat b/lib/phpqrcode/cache/mask_7/mask_53_7.dat
deleted file mode 100644
index 7028ef6d7..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_53_7.dat
+++ /dev/null
@@ -1 +0,0 @@
-x��K� D�s���&�R�k�i�&,H)�tD�j� =����Qa���P"d�s1ZyC�|hey ��Cv�aH��7��+�O��u��Q�sZtb����7 �v�����h�V�� �~���1#�~�[�f�����fHkZ�Jt���mZ��6���s��� �w�r�&C�߶f \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_7/mask_57_7.dat b/lib/phpqrcode/cache/mask_7/mask_57_7.dat
deleted file mode 100644
index ee3107a3c..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_57_7.dat
+++ /dev/null
@@ -1 +0,0 @@
-x��A�0������3&��H)Kb��&�q�֞�[-����֌ ��9�r��Ys �.��i�Ӿ`�����~���G��{c�i�Ղ�\Y<�.�|���2��۟�2� �QQ[[�^N��88�l����[}[�Pl?g+o*ϖ�4W���1� � �33��[�\Gos�bk�m�m��m��^��h� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_7/mask_61_7.dat b/lib/phpqrcode/cache/mask_7/mask_61_7.dat
deleted file mode 100644
index 76f8d7271..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_61_7.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x��K
-� D�s����+-�*5�m��c�aT�1�9��Y�쌧�L9� 糶����s�//i���\��b�����ī���-"^�D�H-i�;bnA���7�f�et�7ٷỵE:r�<4�6�(�u�y{K3o�"���|a��o�?ᜟ��竟��p�9���j~N�ƛ��s����TY�� �u \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_7/mask_65_7.dat b/lib/phpqrcode/cache/mask_7/mask_65_7.dat
deleted file mode 100644
index d8b920626..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_65_7.dat
+++ /dev/null
@@ -1 +0,0 @@
-x��A� �����I�*�6^L!酰� �i)mT�T]�VW\�9�e@�4Ku^�#N%:�,��mY��JN��9���ඩ�vA�2���Ϝ�H�"Y����� +?`�BXD�BX̽{���.��w���d�,~΂k�,�^�bQ�~�.��\�w� ���^�ρ��OY��E�JmX���"% \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_7/mask_69_7.dat b/lib/phpqrcode/cache/mask_7/mask_69_7.dat
deleted file mode 100644
index c2db0204a..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_69_7.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_7/mask_73_7.dat b/lib/phpqrcode/cache/mask_7/mask_73_7.dat
deleted file mode 100644
index f414e4a58..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_73_7.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_7/mask_77_7.dat b/lib/phpqrcode/cache/mask_7/mask_77_7.dat
deleted file mode 100644
index 3e52bfd3f..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_77_7.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_7/mask_81_7.dat b/lib/phpqrcode/cache/mask_7/mask_81_7.dat
deleted file mode 100644
index 78e08dfc6..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_81_7.dat
+++ /dev/null
@@ -1 +0,0 @@
-x���� D��5��?�l�"͊ݕ�u4��a�>ukv o�40���T�%9���6����U5�*s�I{`����_�>S?�}(:y�T�l�{G&E\��6��}"A��X�� XϬ����<�mwx�f��G�<k�r�U�eεεX��X���Z~�s�;\��Z�3�|y� /�w���p˯������U�[~�}O��o�`m�s�ݑ�)~,� \ No newline at end of file
diff --git a/lib/phpqrcode/cache/mask_7/mask_85_7.dat b/lib/phpqrcode/cache/mask_7/mask_85_7.dat
deleted file mode 100644
index a53824aee..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_85_7.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_7/mask_89_7.dat b/lib/phpqrcode/cache/mask_7/mask_89_7.dat
deleted file mode 100644
index 32934a441..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_89_7.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_7/mask_93_7.dat b/lib/phpqrcode/cache/mask_7/mask_93_7.dat
deleted file mode 100644
index 1955f6b7d..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_93_7.dat
+++ /dev/null
Binary files differ
diff --git a/lib/phpqrcode/cache/mask_7/mask_97_7.dat b/lib/phpqrcode/cache/mask_7/mask_97_7.dat
deleted file mode 100644
index b277368bd..000000000
--- a/lib/phpqrcode/cache/mask_7/mask_97_7.dat
+++ /dev/null
@@ -1,2 +0,0 @@
-x����0�������ܲD[���V.K��I�`��'��sx����y���$�x�x�"���= O^&p�b���Yʬ�$�K�ݣ����8K��� �eÌ��� ���3:$bI,�%�$���Yb襶
-M)�T� %q����綦E��X}jl�T�T��KbI,�%��,���_e[%����V]R]�;N,�%�$���%V�@`��%pa�m���(}�_�%�%�۸������4�='u)ai�.;M��> \ No newline at end of file
diff --git a/lib/phpqrcode/index.php b/lib/phpqrcode/index.php
deleted file mode 100644
index 9e14b7eaa..000000000
--- a/lib/phpqrcode/index.php
+++ /dev/null
@@ -1,94 +0,0 @@
-<?php
-/*
- * PHP QR Code encoder
- *
- * Exemplatory usage
- *
- * PHP QR Code is distributed under LGPL 3
- * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
- echo "<h1>PHP QR Code</h1><hr/>";
-
- //set it to writable location, a place for temp generated PNG files
- $PNG_TEMP_DIR = dirname(__FILE__).DIRECTORY_SEPARATOR.'temp'.DIRECTORY_SEPARATOR;
-
- //html PNG location prefix
- $PNG_WEB_DIR = 'temp/';
-
- include "qrlib.php";
-
- //ofcourse we need rights to create temp dir
- if (!file_exists($PNG_TEMP_DIR))
- mkdir($PNG_TEMP_DIR);
-
-
- $filename = $PNG_TEMP_DIR.'test.png';
-
- //processing form input
- //remember to sanitize user input in real-life solution !!!
- $errorCorrectionLevel = 'L';
- if (isset($_REQUEST['level']) && in_array($_REQUEST['level'], array('L','M','Q','H')))
- $errorCorrectionLevel = $_REQUEST['level'];
-
- $matrixPointSize = 4;
- if (isset($_REQUEST['size']))
- $matrixPointSize = min(max((int)$_REQUEST['size'], 1), 10);
-
-
- if (isset($_REQUEST['data'])) {
-
- //it's very important!
- if (trim($_REQUEST['data']) == '')
- die('data cannot be empty! <a href="?">back</a>');
-
- // user data
- $filename = $PNG_TEMP_DIR.'test'.md5($_REQUEST['data'].'|'.$errorCorrectionLevel.'|'.$matrixPointSize).'.png';
- QRcode::png($_REQUEST['data'], $filename, $errorCorrectionLevel, $matrixPointSize, 2);
-
- } else {
-
- //default data
- echo 'You can provide data in GET parameter: <a href="?data=like_that">like that</a><hr/>';
- QRcode::png('PHP QR Code :)', $filename, $errorCorrectionLevel, $matrixPointSize, 2);
-
- }
-
- //display generated file
- echo '<img src="'.$PNG_WEB_DIR.basename($filename).'" /><hr/>';
-
- //config form
- echo '<form action="index.php" method="post">
- Data:&nbsp;<input name="data" value="'.(isset($_REQUEST['data'])?htmlspecialchars($_REQUEST['data']):'PHP QR Code :)').'" />&nbsp;
- ECC:&nbsp;<select name="level">
- <option value="L"'.(($errorCorrectionLevel=='L')?' selected':'').'>L - smallest</option>
- <option value="M"'.(($errorCorrectionLevel=='M')?' selected':'').'>M</option>
- <option value="Q"'.(($errorCorrectionLevel=='Q')?' selected':'').'>Q</option>
- <option value="H"'.(($errorCorrectionLevel=='H')?' selected':'').'>H - best</option>
- </select>&nbsp;
- Size:&nbsp;<select name="size">';
-
- for($i=1;$i<=10;$i++)
- echo '<option value="'.$i.'"'.(($matrixPointSize==$i)?' selected':'').'>'.$i.'</option>';
-
- echo '</select>&nbsp;
- <input type="submit" value="GENERATE"></form><hr/>';
-
- // benchmark
- QRtools::timeBenchmark();
-
- \ No newline at end of file
diff --git a/lib/phpqrcode/phpqrcode.php b/lib/phpqrcode/phpqrcode.php
deleted file mode 100644
index 02b877639..000000000
--- a/lib/phpqrcode/phpqrcode.php
+++ /dev/null
@@ -1,3312 +0,0 @@
-<?php
-
-/*
- * PHP QR Code encoder
- *
- * This file contains MERGED version of PHP QR Code library.
- * It was auto-generated from full version for your convenience.
- *
- * This merged version was configured to not requre any external files,
- * with disabled cache, error loging and weker but faster mask matching.
- * If you need tune it up please use non-merged version.
- *
- * For full version, documentation, examples of use please visit:
- *
- * http://phpqrcode.sourceforge.net/
- * https://sourceforge.net/projects/phpqrcode/
- *
- * PHP QR Code is distributed under LGPL 3
- * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-
-
-/*
- * Version: 1.1.4
- * Build: 2010100721
- */
-
-
-
-//---- qrconst.php -----------------------------
-
-
-
-
-
-/*
- * PHP QR Code encoder
- *
- * Common constants
- *
- * Based on libqrencode C library distributed under LGPL 2.1
- * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <[email protected]>
- *
- * PHP QR Code is distributed under LGPL 3
- * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
- // Encoding modes
-
- define('QR_MODE_NUL', -1);
- define('QR_MODE_NUM', 0);
- define('QR_MODE_AN', 1);
- define('QR_MODE_8', 2);
- define('QR_MODE_KANJI', 3);
- define('QR_MODE_STRUCTURE', 4);
-
- // Levels of error correction.
-
- define('QR_ECLEVEL_L', 0);
- define('QR_ECLEVEL_M', 1);
- define('QR_ECLEVEL_Q', 2);
- define('QR_ECLEVEL_H', 3);
-
- // Supported output formats
-
- define('QR_FORMAT_TEXT', 0);
- define('QR_FORMAT_PNG', 1);
-
- class qrstr {
- public static function set(&$srctab, $x, $y, $repl, $replLen = false) {
- $srctab[$y] = substr_replace($srctab[$y], ($replLen !== false)?substr($repl,0,$replLen):$repl, $x, ($replLen !== false)?$replLen:strlen($repl));
- }
- }
-
-
-
-//---- merged_config.php -----------------------------
-
-
-
-
-/*
- * PHP QR Code encoder
- *
- * Config file, tuned-up for merged verion
- */
-
- define('QR_CACHEABLE', false); // use cache - more disk reads but less CPU power, masks and format templates are stored there
- define('QR_CACHE_DIR', false); // used when QR_CACHEABLE === true
- define('QR_LOG_DIR', false); // default error logs dir
-
- define('QR_FIND_BEST_MASK', true); // if true, estimates best mask (spec. default, but extremally slow; set to false to significant performance boost but (propably) worst quality code
- define('QR_FIND_FROM_RANDOM', 2); // if false, checks all masks available, otherwise value tells count of masks need to be checked, mask id are got randomly
- define('QR_DEFAULT_MASK', 2); // when QR_FIND_BEST_MASK === false
-
- define('QR_PNG_MAXIMUM_SIZE', 1024); // maximum allowed png image width (in pixels), tune to make sure GD and PHP can handle such big images
-
-
-
-
-//---- qrtools.php -----------------------------
-
-
-
-
-/*
- * PHP QR Code encoder
- *
- * Toolset, handy and debug utilites.
- *
- * PHP QR Code is distributed under LGPL 3
- * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
- class QRtools {
-
- //----------------------------------------------------------------------
- public static function binarize($frame)
- {
- $len = count($frame);
- foreach ($frame as &$frameLine) {
-
- for($i=0; $i<$len; $i++) {
- $frameLine[$i] = (ord($frameLine[$i])&1)?'1':'0';
- }
- }
-
- return $frame;
- }
-
- //----------------------------------------------------------------------
- public static function tcpdfBarcodeArray($code, $mode = 'QR,L', $tcPdfVersion = '4.5.037')
- {
- $barcode_array = array();
-
- if (!is_array($mode))
- $mode = explode(',', $mode);
-
- $eccLevel = 'L';
-
- if (count($mode) > 1) {
- $eccLevel = $mode[1];
- }
-
- $qrTab = QRcode::text($code, false, $eccLevel);
- $size = count($qrTab);
-
- $barcode_array['num_rows'] = $size;
- $barcode_array['num_cols'] = $size;
- $barcode_array['bcode'] = array();
-
- foreach ($qrTab as $line) {
- $arrAdd = array();
- foreach(str_split($line) as $char)
- $arrAdd[] = ($char=='1')?1:0;
- $barcode_array['bcode'][] = $arrAdd;
- }
-
- return $barcode_array;
- }
-
- //----------------------------------------------------------------------
- public static function clearCache()
- {
- self::$frames = array();
- }
-
- //----------------------------------------------------------------------
- public static function buildCache()
- {
- QRtools::markTime('before_build_cache');
-
- $mask = new QRmask();
- for ($a=1; $a <= QRSPEC_VERSION_MAX; $a++) {
- $frame = QRspec::newFrame($a);
- if (QR_IMAGE) {
- $fileName = QR_CACHE_DIR.'frame_'.$a.'.png';
- QRimage::png(self::binarize($frame), $fileName, 1, 0);
- }
-
- $width = count($frame);
- $bitMask = array_fill(0, $width, array_fill(0, $width, 0));
- for ($maskNo=0; $maskNo<8; $maskNo++)
- $mask->makeMaskNo($maskNo, $width, $frame, $bitMask, true);
- }
-
- QRtools::markTime('after_build_cache');
- }
-
- //----------------------------------------------------------------------
- public static function log($outfile, $err)
- {
- if (QR_LOG_DIR !== false) {
- if ($err != '') {
- if ($outfile !== false) {
- file_put_contents(QR_LOG_DIR.basename($outfile).'-errors.txt', date('Y-m-d H:i:s').': '.$err, FILE_APPEND);
- } else {
- file_put_contents(QR_LOG_DIR.'errors.txt', date('Y-m-d H:i:s').': '.$err, FILE_APPEND);
- }
- }
- }
- }
-
- //----------------------------------------------------------------------
- public static function dumpMask($frame)
- {
- $width = count($frame);
- for($y=0;$y<$width;$y++) {
- for($x=0;$x<$width;$x++) {
- echo ord($frame[$y][$x]).',';
- }
- }
- }
-
- //----------------------------------------------------------------------
- public static function markTime($markerId)
- {
- list($usec, $sec) = explode(" ", microtime());
- $time = ((float)$usec + (float)$sec);
-
- if (!isset($GLOBALS['qr_time_bench']))
- $GLOBALS['qr_time_bench'] = array();
-
- $GLOBALS['qr_time_bench'][$markerId] = $time;
- }
-
- //----------------------------------------------------------------------
- public static function timeBenchmark()
- {
- self::markTime('finish');
-
- $lastTime = 0;
- $startTime = 0;
- $p = 0;
-
- echo '<table cellpadding="3" cellspacing="1">
- <thead><tr style="border-bottom:1px solid silver"><td colspan="2" style="text-align:center">BENCHMARK</td></tr></thead>
- <tbody>';
-
- foreach($GLOBALS['qr_time_bench'] as $markerId=>$thisTime) {
- if ($p > 0) {
- echo '<tr><th style="text-align:right">till '.$markerId.': </th><td>'.number_format($thisTime-$lastTime, 6).'s</td></tr>';
- } else {
- $startTime = $thisTime;
- }
-
- $p++;
- $lastTime = $thisTime;
- }
-
- echo '</tbody><tfoot>
- <tr style="border-top:2px solid black"><th style="text-align:right">TOTAL: </th><td>'.number_format($lastTime-$startTime, 6).'s</td></tr>
- </tfoot>
- </table>';
- }
-
- }
-
- //##########################################################################
-
- QRtools::markTime('start');
-
-
-
-
-//---- qrspec.php -----------------------------
-
-
-
-
-/*
- * PHP QR Code encoder
- *
- * QR Code specifications
- *
- * Based on libqrencode C library distributed under LGPL 2.1
- * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <[email protected]>
- *
- * PHP QR Code is distributed under LGPL 3
- * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
- *
- * The following data / specifications are taken from
- * "Two dimensional symbol -- QR-code -- Basic Specification" (JIS X0510:2004)
- * or
- * "Automatic identification and data capture techniques --
- * QR Code 2005 bar code symbology specification" (ISO/IEC 18004:2006)
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
- define('QRSPEC_VERSION_MAX', 40);
- define('QRSPEC_WIDTH_MAX', 177);
-
- define('QRCAP_WIDTH', 0);
- define('QRCAP_WORDS', 1);
- define('QRCAP_REMINDER', 2);
- define('QRCAP_EC', 3);
-
- class QRspec {
-
- public static $capacity = array(
- array( 0, 0, 0, array( 0, 0, 0, 0)),
- array( 21, 26, 0, array( 7, 10, 13, 17)), // 1
- array( 25, 44, 7, array( 10, 16, 22, 28)),
- array( 29, 70, 7, array( 15, 26, 36, 44)),
- array( 33, 100, 7, array( 20, 36, 52, 64)),
- array( 37, 134, 7, array( 26, 48, 72, 88)), // 5
- array( 41, 172, 7, array( 36, 64, 96, 112)),
- array( 45, 196, 0, array( 40, 72, 108, 130)),
- array( 49, 242, 0, array( 48, 88, 132, 156)),
- array( 53, 292, 0, array( 60, 110, 160, 192)),
- array( 57, 346, 0, array( 72, 130, 192, 224)), //10
- array( 61, 404, 0, array( 80, 150, 224, 264)),
- array( 65, 466, 0, array( 96, 176, 260, 308)),
- array( 69, 532, 0, array( 104, 198, 288, 352)),
- array( 73, 581, 3, array( 120, 216, 320, 384)),
- array( 77, 655, 3, array( 132, 240, 360, 432)), //15
- array( 81, 733, 3, array( 144, 280, 408, 480)),
- array( 85, 815, 3, array( 168, 308, 448, 532)),
- array( 89, 901, 3, array( 180, 338, 504, 588)),
- array( 93, 991, 3, array( 196, 364, 546, 650)),
- array( 97, 1085, 3, array( 224, 416, 600, 700)), //20
- array(101, 1156, 4, array( 224, 442, 644, 750)),
- array(105, 1258, 4, array( 252, 476, 690, 816)),
- array(109, 1364, 4, array( 270, 504, 750, 900)),
- array(113, 1474, 4, array( 300, 560, 810, 960)),
- array(117, 1588, 4, array( 312, 588, 870, 1050)), //25
- array(121, 1706, 4, array( 336, 644, 952, 1110)),
- array(125, 1828, 4, array( 360, 700, 1020, 1200)),
- array(129, 1921, 3, array( 390, 728, 1050, 1260)),
- array(133, 2051, 3, array( 420, 784, 1140, 1350)),
- array(137, 2185, 3, array( 450, 812, 1200, 1440)), //30
- array(141, 2323, 3, array( 480, 868, 1290, 1530)),
- array(145, 2465, 3, array( 510, 924, 1350, 1620)),
- array(149, 2611, 3, array( 540, 980, 1440, 1710)),
- array(153, 2761, 3, array( 570, 1036, 1530, 1800)),
- array(157, 2876, 0, array( 570, 1064, 1590, 1890)), //35
- array(161, 3034, 0, array( 600, 1120, 1680, 1980)),
- array(165, 3196, 0, array( 630, 1204, 1770, 2100)),
- array(169, 3362, 0, array( 660, 1260, 1860, 2220)),
- array(173, 3532, 0, array( 720, 1316, 1950, 2310)),
- array(177, 3706, 0, array( 750, 1372, 2040, 2430)) //40
- );
-
- //----------------------------------------------------------------------
- public static function getDataLength($version, $level)
- {
- return self::$capacity[$version][QRCAP_WORDS] - self::$capacity[$version][QRCAP_EC][$level];
- }
-
- //----------------------------------------------------------------------
- public static function getECCLength($version, $level)
- {
- return self::$capacity[$version][QRCAP_EC][$level];
- }
-
- //----------------------------------------------------------------------
- public static function getWidth($version)
- {
- return self::$capacity[$version][QRCAP_WIDTH];
- }
-
- //----------------------------------------------------------------------
- public static function getRemainder($version)
- {
- return self::$capacity[$version][QRCAP_REMINDER];
- }
-
- //----------------------------------------------------------------------
- public static function getMinimumVersion($size, $level)
- {
-
- for($i=1; $i<= QRSPEC_VERSION_MAX; $i++) {
- $words = self::$capacity[$i][QRCAP_WORDS] - self::$capacity[$i][QRCAP_EC][$level];
- if($words >= $size)
- return $i;
- }
-
- return -1;
- }
-
- //######################################################################
-
- public static $lengthTableBits = array(
- array(10, 12, 14),
- array( 9, 11, 13),
- array( 8, 16, 16),
- array( 8, 10, 12)
- );
-
- //----------------------------------------------------------------------
- public static function lengthIndicator($mode, $version)
- {
- if ($mode == QR_MODE_STRUCTURE)
- return 0;
-
- if ($version <= 9) {
- $l = 0;
- } else if ($version <= 26) {
- $l = 1;
- } else {
- $l = 2;
- }
-
- return self::$lengthTableBits[$mode][$l];
- }
-
- //----------------------------------------------------------------------
- public static function maximumWords($mode, $version)
- {
- if($mode == QR_MODE_STRUCTURE)
- return 3;
-
- if($version <= 9) {
- $l = 0;
- } else if($version <= 26) {
- $l = 1;
- } else {
- $l = 2;
- }
-
- $bits = self::$lengthTableBits[$mode][$l];
- $words = (1 << $bits) - 1;
-
- if($mode == QR_MODE_KANJI) {
- $words *= 2; // the number of bytes is required
- }
-
- return $words;
- }
-
- // Error correction code -----------------------------------------------
- // Table of the error correction code (Reed-Solomon block)
- // See Table 12-16 (pp.30-36), JIS X0510:2004.
-
- public static $eccTable = array(
- array(array( 0, 0), array( 0, 0), array( 0, 0), array( 0, 0)),
- array(array( 1, 0), array( 1, 0), array( 1, 0), array( 1, 0)), // 1
- array(array( 1, 0), array( 1, 0), array( 1, 0), array( 1, 0)),
- array(array( 1, 0), array( 1, 0), array( 2, 0), array( 2, 0)),
- array(array( 1, 0), array( 2, 0), array( 2, 0), array( 4, 0)),
- array(array( 1, 0), array( 2, 0), array( 2, 2), array( 2, 2)), // 5
- array(array( 2, 0), array( 4, 0), array( 4, 0), array( 4, 0)),
- array(array( 2, 0), array( 4, 0), array( 2, 4), array( 4, 1)),
- array(array( 2, 0), array( 2, 2), array( 4, 2), array( 4, 2)),
- array(array( 2, 0), array( 3, 2), array( 4, 4), array( 4, 4)),
- array(array( 2, 2), array( 4, 1), array( 6, 2), array( 6, 2)), //10
- array(array( 4, 0), array( 1, 4), array( 4, 4), array( 3, 8)),
- array(array( 2, 2), array( 6, 2), array( 4, 6), array( 7, 4)),
- array(array( 4, 0), array( 8, 1), array( 8, 4), array(12, 4)),
- array(array( 3, 1), array( 4, 5), array(11, 5), array(11, 5)),
- array(array( 5, 1), array( 5, 5), array( 5, 7), array(11, 7)), //15
- array(array( 5, 1), array( 7, 3), array(15, 2), array( 3, 13)),
- array(array( 1, 5), array(10, 1), array( 1, 15), array( 2, 17)),
- array(array( 5, 1), array( 9, 4), array(17, 1), array( 2, 19)),
- array(array( 3, 4), array( 3, 11), array(17, 4), array( 9, 16)),
- array(array( 3, 5), array( 3, 13), array(15, 5), array(15, 10)), //20
- array(array( 4, 4), array(17, 0), array(17, 6), array(19, 6)),
- array(array( 2, 7), array(17, 0), array( 7, 16), array(34, 0)),
- array(array( 4, 5), array( 4, 14), array(11, 14), array(16, 14)),
- array(array( 6, 4), array( 6, 14), array(11, 16), array(30, 2)),
- array(array( 8, 4), array( 8, 13), array( 7, 22), array(22, 13)), //25
- array(array(10, 2), array(19, 4), array(28, 6), array(33, 4)),
- array(array( 8, 4), array(22, 3), array( 8, 26), array(12, 28)),
- array(array( 3, 10), array( 3, 23), array( 4, 31), array(11, 31)),
- array(array( 7, 7), array(21, 7), array( 1, 37), array(19, 26)),
- array(array( 5, 10), array(19, 10), array(15, 25), array(23, 25)), //30
- array(array(13, 3), array( 2, 29), array(42, 1), array(23, 28)),
- array(array(17, 0), array(10, 23), array(10, 35), array(19, 35)),
- array(array(17, 1), array(14, 21), array(29, 19), array(11, 46)),
- array(array(13, 6), array(14, 23), array(44, 7), array(59, 1)),
- array(array(12, 7), array(12, 26), array(39, 14), array(22, 41)), //35
- array(array( 6, 14), array( 6, 34), array(46, 10), array( 2, 64)),
- array(array(17, 4), array(29, 14), array(49, 10), array(24, 46)),
- array(array( 4, 18), array(13, 32), array(48, 14), array(42, 32)),
- array(array(20, 4), array(40, 7), array(43, 22), array(10, 67)),
- array(array(19, 6), array(18, 31), array(34, 34), array(20, 61)),//40
- );
-
- //----------------------------------------------------------------------
- // CACHEABLE!!!
-
- public static function getEccSpec($version, $level, array &$spec)
- {
- if (count($spec) < 5) {
- $spec = array(0,0,0,0,0);
- }
-
- $b1 = self::$eccTable[$version][$level][0];
- $b2 = self::$eccTable[$version][$level][1];
- $data = self::getDataLength($version, $level);
- $ecc = self::getECCLength($version, $level);
-
- if($b2 == 0) {
- $spec[0] = $b1;
- $spec[1] = (int)($data / $b1);
- $spec[2] = (int)($ecc / $b1);
- $spec[3] = 0;
- $spec[4] = 0;
- } else {
- $spec[0] = $b1;
- $spec[1] = (int)($data / ($b1 + $b2));
- $spec[2] = (int)($ecc / ($b1 + $b2));
- $spec[3] = $b2;
- $spec[4] = $spec[1] + 1;
- }
- }
-
- // Alignment pattern ---------------------------------------------------
-
- // Positions of alignment patterns.
- // This array includes only the second and the third position of the
- // alignment patterns. Rest of them can be calculated from the distance
- // between them.
-
- // See Table 1 in Appendix E (pp.71) of JIS X0510:2004.
-
- public static $alignmentPattern = array(
- array( 0, 0),
- array( 0, 0), array(18, 0), array(22, 0), array(26, 0), array(30, 0), // 1- 5
- array(34, 0), array(22, 38), array(24, 42), array(26, 46), array(28, 50), // 6-10
- array(30, 54), array(32, 58), array(34, 62), array(26, 46), array(26, 48), //11-15
- array(26, 50), array(30, 54), array(30, 56), array(30, 58), array(34, 62), //16-20
- array(28, 50), array(26, 50), array(30, 54), array(28, 54), array(32, 58), //21-25
- array(30, 58), array(34, 62), array(26, 50), array(30, 54), array(26, 52), //26-30
- array(30, 56), array(34, 60), array(30, 58), array(34, 62), array(30, 54), //31-35
- array(24, 50), array(28, 54), array(32, 58), array(26, 54), array(30, 58), //35-40
- );
-
-
- /** --------------------------------------------------------------------
- * Put an alignment marker.
- * @param frame
- * @param width
- * @param ox,oy center coordinate of the pattern
- */
- public static function putAlignmentMarker(array &$frame, $ox, $oy)
- {
- $finder = array(
- "\xa1\xa1\xa1\xa1\xa1",
- "\xa1\xa0\xa0\xa0\xa1",
- "\xa1\xa0\xa1\xa0\xa1",
- "\xa1\xa0\xa0\xa0\xa1",
- "\xa1\xa1\xa1\xa1\xa1"
- );
-
- $yStart = $oy-2;
- $xStart = $ox-2;
-
- for($y=0; $y<5; $y++) {
- QRstr::set($frame, $xStart, $yStart+$y, $finder[$y]);
- }
- }
-
- //----------------------------------------------------------------------
- public static function putAlignmentPattern($version, &$frame, $width)
- {
- if($version < 2)
- return;
-
- $d = self::$alignmentPattern[$version][1] - self::$alignmentPattern[$version][0];
- if($d < 0) {
- $w = 2;
- } else {
- $w = (int)(($width - self::$alignmentPattern[$version][0]) / $d + 2);
- }
-
- if($w * $w - 3 == 1) {
- $x = self::$alignmentPattern[$version][0];
- $y = self::$alignmentPattern[$version][0];
- self::putAlignmentMarker($frame, $x, $y);
- return;
- }
-
- $cx = self::$alignmentPattern[$version][0];
- for($x=1; $x<$w - 1; $x++) {
- self::putAlignmentMarker($frame, 6, $cx);
- self::putAlignmentMarker($frame, $cx, 6);
- $cx += $d;
- }
-
- $cy = self::$alignmentPattern[$version][0];
- for($y=0; $y<$w-1; $y++) {
- $cx = self::$alignmentPattern[$version][0];
- for($x=0; $x<$w-1; $x++) {
- self::putAlignmentMarker($frame, $cx, $cy);
- $cx += $d;
- }
- $cy += $d;
- }
- }
-
- // Version information pattern -----------------------------------------
-
- // Version information pattern (BCH coded).
- // See Table 1 in Appendix D (pp.68) of JIS X0510:2004.
-
- // size: [QRSPEC_VERSION_MAX - 6]
-
- public static $versionPattern = array(
- 0x07c94, 0x085bc, 0x09a99, 0x0a4d3, 0x0bbf6, 0x0c762, 0x0d847, 0x0e60d,
- 0x0f928, 0x10b78, 0x1145d, 0x12a17, 0x13532, 0x149a6, 0x15683, 0x168c9,
- 0x177ec, 0x18ec4, 0x191e1, 0x1afab, 0x1b08e, 0x1cc1a, 0x1d33f, 0x1ed75,
- 0x1f250, 0x209d5, 0x216f0, 0x228ba, 0x2379f, 0x24b0b, 0x2542e, 0x26a64,
- 0x27541, 0x28c69
- );
-
- //----------------------------------------------------------------------
- public static function getVersionPattern($version)
- {
- if($version < 7 || $version > QRSPEC_VERSION_MAX)
- return 0;
-
- return self::$versionPattern[$version -7];
- }
-
- // Format information --------------------------------------------------
- // See calcFormatInfo in tests/test_qrspec.c (orginal qrencode c lib)
-
- public static $formatInfo = array(
- array(0x77c4, 0x72f3, 0x7daa, 0x789d, 0x662f, 0x6318, 0x6c41, 0x6976),
- array(0x5412, 0x5125, 0x5e7c, 0x5b4b, 0x45f9, 0x40ce, 0x4f97, 0x4aa0),
- array(0x355f, 0x3068, 0x3f31, 0x3a06, 0x24b4, 0x2183, 0x2eda, 0x2bed),
- array(0x1689, 0x13be, 0x1ce7, 0x19d0, 0x0762, 0x0255, 0x0d0c, 0x083b)
- );
-
- public static function getFormatInfo($mask, $level)
- {
- if($mask < 0 || $mask > 7)
- return 0;
-
- if($level < 0 || $level > 3)
- return 0;
-
- return self::$formatInfo[$level][$mask];
- }
-
- // Frame ---------------------------------------------------------------
- // Cache of initial frames.
-
- public static $frames = array();
-
- /** --------------------------------------------------------------------
- * Put a finder pattern.
- * @param frame
- * @param width
- * @param ox,oy upper-left coordinate of the pattern
- */
- public static function putFinderPattern(&$frame, $ox, $oy)
- {
- $finder = array(
- "\xc1\xc1\xc1\xc1\xc1\xc1\xc1",
- "\xc1\xc0\xc0\xc0\xc0\xc0\xc1",
- "\xc1\xc0\xc1\xc1\xc1\xc0\xc1",
- "\xc1\xc0\xc1\xc1\xc1\xc0\xc1",
- "\xc1\xc0\xc1\xc1\xc1\xc0\xc1",
- "\xc1\xc0\xc0\xc0\xc0\xc0\xc1",
- "\xc1\xc1\xc1\xc1\xc1\xc1\xc1"
- );
-
- for($y=0; $y<7; $y++) {
- QRstr::set($frame, $ox, $oy+$y, $finder[$y]);
- }
- }
-
- //----------------------------------------------------------------------
- public static function createFrame($version)
- {
- $width = self::$capacity[$version][QRCAP_WIDTH];
- $frameLine = str_repeat ("\0", $width);
- $frame = array_fill(0, $width, $frameLine);
-
- // Finder pattern
- self::putFinderPattern($frame, 0, 0);
- self::putFinderPattern($frame, $width - 7, 0);
- self::putFinderPattern($frame, 0, $width - 7);
-
- // Separator
- $yOffset = $width - 7;
-
- for($y=0; $y<7; $y++) {
- $frame[$y][7] = "\xc0";
- $frame[$y][$width - 8] = "\xc0";
- $frame[$yOffset][7] = "\xc0";
- $yOffset++;
- }
-
- $setPattern = str_repeat("\xc0", 8);
-
- QRstr::set($frame, 0, 7, $setPattern);
- QRstr::set($frame, $width-8, 7, $setPattern);
- QRstr::set($frame, 0, $width - 8, $setPattern);
-
- // Format info
- $setPattern = str_repeat("\x84", 9);
- QRstr::set($frame, 0, 8, $setPattern);
- QRstr::set($frame, $width - 8, 8, $setPattern, 8);
-
- $yOffset = $width - 8;
-
- for($y=0; $y<8; $y++,$yOffset++) {
- $frame[$y][8] = "\x84";
- $frame[$yOffset][8] = "\x84";
- }
-
- // Timing pattern
-
- for($i=1; $i<$width-15; $i++) {
- $frame[6][7+$i] = chr(0x90 | ($i & 1));
- $frame[7+$i][6] = chr(0x90 | ($i & 1));
- }
-
- // Alignment pattern
- self::putAlignmentPattern($version, $frame, $width);
-
- // Version information
- if($version >= 7) {
- $vinf = self::getVersionPattern($version);
-
- $v = $vinf;
-
- for($x=0; $x<6; $x++) {
- for($y=0; $y<3; $y++) {
- $frame[($width - 11)+$y][$x] = chr(0x88 | ($v & 1));
- $v = $v >> 1;
- }
- }
-
- $v = $vinf;
- for($y=0; $y<6; $y++) {
- for($x=0; $x<3; $x++) {
- $frame[$y][$x+($width - 11)] = chr(0x88 | ($v & 1));
- $v = $v >> 1;
- }
- }
- }
-
- // and a little bit...
- $frame[$width - 8][8] = "\x81";
-
- return $frame;
- }
-
- //----------------------------------------------------------------------
- public static function debug($frame, $binary_mode = false)
- {
- if ($binary_mode) {
-
- foreach ($frame as &$frameLine) {
- $frameLine = join('<span class="m">&nbsp;&nbsp;</span>', explode('0', $frameLine));
- $frameLine = join('&#9608;&#9608;', explode('1', $frameLine));
- }
-
- ?>
- <style>
- .m { background-color: white; }
- </style>
- <?php
- echo '<pre><tt><br/ ><br/ ><br/ >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
- echo join("<br/ >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;", $frame);
- echo '</tt></pre><br/ ><br/ ><br/ ><br/ ><br/ ><br/ >';
-
- } else {
-
- foreach ($frame as &$frameLine) {
- $frameLine = join('<span class="m">&nbsp;</span>', explode("\xc0", $frameLine));
- $frameLine = join('<span class="m">&#9618;</span>', explode("\xc1", $frameLine));
- $frameLine = join('<span class="p">&nbsp;</span>', explode("\xa0", $frameLine));
- $frameLine = join('<span class="p">&#9618;</span>', explode("\xa1", $frameLine));
- $frameLine = join('<span class="s">&#9671;</span>', explode("\x84", $frameLine)); //format 0
- $frameLine = join('<span class="s">&#9670;</span>', explode("\x85", $frameLine)); //format 1
- $frameLine = join('<span class="x">&#9762;</span>', explode("\x81", $frameLine)); //special bit
- $frameLine = join('<span class="c">&nbsp;</span>', explode("\x90", $frameLine)); //clock 0
- $frameLine = join('<span class="c">&#9719;</span>', explode("\x91", $frameLine)); //clock 1
- $frameLine = join('<span class="f">&nbsp;</span>', explode("\x88", $frameLine)); //version
- $frameLine = join('<span class="f">&#9618;</span>', explode("\x89", $frameLine)); //version
- $frameLine = join('&#9830;', explode("\x01", $frameLine));
- $frameLine = join('&#8901;', explode("\0", $frameLine));
- }
-
- ?>
- <style>
- .p { background-color: yellow; }
- .m { background-color: #00FF00; }
- .s { background-color: #FF0000; }
- .c { background-color: aqua; }
- .x { background-color: pink; }
- .f { background-color: gold; }
- </style>
- <?php
- echo "<pre><tt>";
- echo join("<br/ >", $frame);
- echo "</tt></pre>";
-
- }
- }
-
- //----------------------------------------------------------------------
- public static function serial($frame)
- {
- return gzcompress(join("\n", $frame), 9);
- }
-
- //----------------------------------------------------------------------
- public static function unserial($code)
- {
- return explode("\n", gzuncompress($code));
- }
-
- //----------------------------------------------------------------------
- public static function newFrame($version)
- {
- if($version < 1 || $version > QRSPEC_VERSION_MAX)
- return null;
-
- if(!isset(self::$frames[$version])) {
-
- $fileName = QR_CACHE_DIR.'frame_'.$version.'.dat';
-
- if (QR_CACHEABLE) {
- if (file_exists($fileName)) {
- self::$frames[$version] = self::unserial(file_get_contents($fileName));
- } else {
- self::$frames[$version] = self::createFrame($version);
- file_put_contents($fileName, self::serial(self::$frames[$version]));
- }
- } else {
- self::$frames[$version] = self::createFrame($version);
- }
- }
-
- if(is_null(self::$frames[$version]))
- return null;
-
- return self::$frames[$version];
- }
-
- //----------------------------------------------------------------------
- public static function rsBlockNum($spec) { return $spec[0] + $spec[3]; }
- public static function rsBlockNum1($spec) { return $spec[0]; }
- public static function rsDataCodes1($spec) { return $spec[1]; }
- public static function rsEccCodes1($spec) { return $spec[2]; }
- public static function rsBlockNum2($spec) { return $spec[3]; }
- public static function rsDataCodes2($spec) { return $spec[4]; }
- public static function rsEccCodes2($spec) { return $spec[2]; }
- public static function rsDataLength($spec) { return ($spec[0] * $spec[1]) + ($spec[3] * $spec[4]); }
- public static function rsEccLength($spec) { return ($spec[0] + $spec[3]) * $spec[2]; }
-
- }
-
-
-
-//---- qrimage.php -----------------------------
-
-
-
-
-/*
- * PHP QR Code encoder
- *
- * Image output of code using GD2
- *
- * PHP QR Code is distributed under LGPL 3
- * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
- define('QR_IMAGE', true);
-
- class QRimage {
-
- //----------------------------------------------------------------------
- public static function png($frame, $filename = false, $pixelPerPoint = 4, $outerFrame = 4,$saveandprint=FALSE)
- {
- $image = self::image($frame, $pixelPerPoint, $outerFrame);
-
- if ($filename === false) {
- Header("Content-type: image/png");
- ImagePng($image);
- } else {
- if($saveandprint===TRUE){
- ImagePng($image, $filename);
- header("Content-type: image/png");
- ImagePng($image);
- }else{
- ImagePng($image, $filename);
- }
- }
-
- ImageDestroy($image);
- }
-
- //----------------------------------------------------------------------
- public static function jpg($frame, $filename = false, $pixelPerPoint = 8, $outerFrame = 4, $q = 85)
- {
- $image = self::image($frame, $pixelPerPoint, $outerFrame);
-
- if ($filename === false) {
- Header("Content-type: image/jpeg");
- ImageJpeg($image, null, $q);
- } else {
- ImageJpeg($image, $filename, $q);
- }
-
- ImageDestroy($image);
- }
-
- //----------------------------------------------------------------------
- private static function image($frame, $pixelPerPoint = 4, $outerFrame = 4)
- {
- $h = count($frame);
- $w = strlen($frame[0]);
-
- $imgW = $w + 2*$outerFrame;
- $imgH = $h + 2*$outerFrame;
-
- $base_image =ImageCreate($imgW, $imgH);
-
- $col[0] = ImageColorAllocate($base_image,255,255,255);
- $col[1] = ImageColorAllocate($base_image,0,0,0);
-
- imagefill($base_image, 0, 0, $col[0]);
-
- for($y=0; $y<$h; $y++) {
- for($x=0; $x<$w; $x++) {
- if ($frame[$y][$x] == '1') {
- ImageSetPixel($base_image,$x+$outerFrame,$y+$outerFrame,$col[1]);
- }
- }
- }
-
- $target_image =ImageCreate($imgW * $pixelPerPoint, $imgH * $pixelPerPoint);
- ImageCopyResized($target_image, $base_image, 0, 0, 0, 0, $imgW * $pixelPerPoint, $imgH * $pixelPerPoint, $imgW, $imgH);
- ImageDestroy($base_image);
-
- return $target_image;
- }
- }
-
-
-
-//---- qrinput.php -----------------------------
-
-
-
-
-/*
- * PHP QR Code encoder
- *
- * Input encoding class
- *
- * Based on libqrencode C library distributed under LGPL 2.1
- * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <[email protected]>
- *
- * PHP QR Code is distributed under LGPL 3
- * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
- define('STRUCTURE_HEADER_BITS', 20);
- define('MAX_STRUCTURED_SYMBOLS', 16);
-
- class QRinputItem {
-
- public $mode;
- public $size;
- public $data;
- public $bstream;
-
- public function __construct($mode, $size, $data, $bstream = null)
- {
- $setData = array_slice($data, 0, $size);
-
- if (count($setData) < $size) {
- $setData = array_merge($setData, array_fill(0,$size-count($setData),0));
- }
-
- if(!QRinput::check($mode, $size, $setData)) {
- throw new Exception('Error m:'.$mode.',s:'.$size.',d:'.join(',',$setData));
- return null;
- }
-
- $this->mode = $mode;
- $this->size = $size;
- $this->data = $setData;
- $this->bstream = $bstream;
- }
-
- //----------------------------------------------------------------------
- public function encodeModeNum($version)
- {
- try {
-
- $words = (int)($this->size / 3);
- $bs = new QRbitstream();
-
- $val = 0x1;
- $bs->appendNum(4, $val);
- $bs->appendNum(QRspec::lengthIndicator(QR_MODE_NUM, $version), $this->size);
-
- for($i=0; $i<$words; $i++) {
- $val = (ord($this->data[$i*3 ]) - ord('0')) * 100;
- $val += (ord($this->data[$i*3+1]) - ord('0')) * 10;
- $val += (ord($this->data[$i*3+2]) - ord('0'));
- $bs->appendNum(10, $val);
- }
-
- if($this->size - $words * 3 == 1) {
- $val = ord($this->data[$words*3]) - ord('0');
- $bs->appendNum(4, $val);
- } else if($this->size - $words * 3 == 2) {
- $val = (ord($this->data[$words*3 ]) - ord('0')) * 10;
- $val += (ord($this->data[$words*3+1]) - ord('0'));
- $bs->appendNum(7, $val);
- }
-
- $this->bstream = $bs;
- return 0;
-
- } catch (Exception $e) {
- return -1;
- }
- }
-
- //----------------------------------------------------------------------
- public function encodeModeAn($version)
- {
- try {
- $words = (int)($this->size / 2);
- $bs = new QRbitstream();
-
- $bs->appendNum(4, 0x02);
- $bs->appendNum(QRspec::lengthIndicator(QR_MODE_AN, $version), $this->size);
-
- for($i=0; $i<$words; $i++) {
- $val = (int)QRinput::lookAnTable(ord($this->data[$i*2 ])) * 45;
- $val += (int)QRinput::lookAnTable(ord($this->data[$i*2+1]));
-
- $bs->appendNum(11, $val);
- }
-
- if($this->size & 1) {
- $val = QRinput::lookAnTable(ord($this->data[$words * 2]));
- $bs->appendNum(6, $val);
- }
-
- $this->bstream = $bs;
- return 0;
-
- } catch (Exception $e) {
- return -1;
- }
- }
-
- //----------------------------------------------------------------------
- public function encodeMode8($version)
- {
- try {
- $bs = new QRbitstream();
-
- $bs->appendNum(4, 0x4);
- $bs->appendNum(QRspec::lengthIndicator(QR_MODE_8, $version), $this->size);
-
- for($i=0; $i<$this->size; $i++) {
- $bs->appendNum(8, ord($this->data[$i]));
- }
-
- $this->bstream = $bs;
- return 0;
-
- } catch (Exception $e) {
- return -1;
- }
- }
-
- //----------------------------------------------------------------------
- public function encodeModeKanji($version)
- {
- try {
-
- $bs = new QRbitrtream();
-
- $bs->appendNum(4, 0x8);
- $bs->appendNum(QRspec::lengthIndicator(QR_MODE_KANJI, $version), (int)($this->size / 2));
-
- for($i=0; $i<$this->size; $i+=2) {
- $val = (ord($this->data[$i]) << 8) | ord($this->data[$i+1]);
- if($val <= 0x9ffc) {
- $val -= 0x8140;
- } else {
- $val -= 0xc140;
- }
-
- $h = ($val >> 8) * 0xc0;
- $val = ($val & 0xff) + $h;
-
- $bs->appendNum(13, $val);
- }
-
- $this->bstream = $bs;
- return 0;
-
- } catch (Exception $e) {
- return -1;
- }
- }
-
- //----------------------------------------------------------------------
- public function encodeModeStructure()
- {
- try {
- $bs = new QRbitstream();
-
- $bs->appendNum(4, 0x03);
- $bs->appendNum(4, ord($this->data[1]) - 1);
- $bs->appendNum(4, ord($this->data[0]) - 1);
- $bs->appendNum(8, ord($this->data[2]));
-
- $this->bstream = $bs;
- return 0;
-
- } catch (Exception $e) {
- return -1;
- }
- }
-
- //----------------------------------------------------------------------
- public function estimateBitStreamSizeOfEntry($version)
- {
- $bits = 0;
-
- if($version == 0)
- $version = 1;
-
- switch($this->mode) {
- case QR_MODE_NUM: $bits = QRinput::estimateBitsModeNum($this->size); break;
- case QR_MODE_AN: $bits = QRinput::estimateBitsModeAn($this->size); break;
- case QR_MODE_8: $bits = QRinput::estimateBitsMode8($this->size); break;
- case QR_MODE_KANJI: $bits = QRinput::estimateBitsModeKanji($this->size);break;
- case QR_MODE_STRUCTURE: return STRUCTURE_HEADER_BITS;
- default:
- return 0;
- }
-
- $l = QRspec::lengthIndicator($this->mode, $version);
- $m = 1 << $l;
- $num = (int)(($this->size + $m - 1) / $m);
-
- $bits += $num * (4 + $l);
-
- return $bits;
- }
-
- //----------------------------------------------------------------------
- public function encodeBitStream($version)
- {
- try {
-
- unset($this->bstream);
- $words = QRspec::maximumWords($this->mode, $version);
-
- if($this->size > $words) {
-
- $st1 = new QRinputItem($this->mode, $words, $this->data);
- $st2 = new QRinputItem($this->mode, $this->size - $words, array_slice($this->data, $words));
-
- $st1->encodeBitStream($version);
- $st2->encodeBitStream($version);
-
- $this->bstream = new QRbitstream();
- $this->bstream->append($st1->bstream);
- $this->bstream->append($st2->bstream);
-
- unset($st1);
- unset($st2);
-
- } else {
-
- $ret = 0;
-
- switch($this->mode) {
- case QR_MODE_NUM: $ret = $this->encodeModeNum($version); break;
- case QR_MODE_AN: $ret = $this->encodeModeAn($version); break;
- case QR_MODE_8: $ret = $this->encodeMode8($version); break;
- case QR_MODE_KANJI: $ret = $this->encodeModeKanji($version);break;
- case QR_MODE_STRUCTURE: $ret = $this->encodeModeStructure(); break;
-
- default:
- break;
- }
-
- if($ret < 0)
- return -1;
- }
-
- return $this->bstream->size();
-
- } catch (Exception $e) {
- return -1;
- }
- }
- };
-
- //##########################################################################
-
- class QRinput {
-
- public $items;
-
- private $version;
- private $level;
-
- //----------------------------------------------------------------------
- public function __construct($version = 0, $level = QR_ECLEVEL_L)
- {
- if ($version < 0 || $version > QRSPEC_VERSION_MAX || $level > QR_ECLEVEL_H) {
- throw new Exception('Invalid version no');
- return NULL;
- }
-
- $this->version = $version;
- $this->level = $level;
- }
-
- //----------------------------------------------------------------------
- public function getVersion()
- {
- return $this->version;
- }
-
- //----------------------------------------------------------------------
- public function setVersion($version)
- {
- if($version < 0 || $version > QRSPEC_VERSION_MAX) {
- throw new Exception('Invalid version no');
- return -1;
- }
-
- $this->version = $version;
-
- return 0;
- }
-
- //----------------------------------------------------------------------
- public function getErrorCorrectionLevel()
- {
- return $this->level;
- }
-
- //----------------------------------------------------------------------
- public function setErrorCorrectionLevel($level)
- {
- if($level > QR_ECLEVEL_H) {
- throw new Exception('Invalid ECLEVEL');
- return -1;
- }
-
- $this->level = $level;
-
- return 0;
- }
-
- //----------------------------------------------------------------------
- public function appendEntry(QRinputItem $entry)
- {
- $this->items[] = $entry;
- }
-
- //----------------------------------------------------------------------
- public function append($mode, $size, $data)
- {
- try {
- $entry = new QRinputItem($mode, $size, $data);
- $this->items[] = $entry;
- return 0;
- } catch (Exception $e) {
- return -1;
- }
- }
-
- //----------------------------------------------------------------------
-
- public function insertStructuredAppendHeader($size, $index, $parity)
- {
- if( $size > MAX_STRUCTURED_SYMBOLS ) {
- throw new Exception('insertStructuredAppendHeader wrong size');
- }
-
- if( $index <= 0 || $index > MAX_STRUCTURED_SYMBOLS ) {
- throw new Exception('insertStructuredAppendHeader wrong index');
- }
-
- $buf = array($size, $index, $parity);
-
- try {
- $entry = new QRinputItem(QR_MODE_STRUCTURE, 3, buf);
- array_unshift($this->items, $entry);
- return 0;
- } catch (Exception $e) {
- return -1;
- }
- }
-
- //----------------------------------------------------------------------
- public function calcParity()
- {
- $parity = 0;
-
- foreach($this->items as $item) {
- if($item->mode != QR_MODE_STRUCTURE) {
- for($i=$item->size-1; $i>=0; $i--) {
- $parity ^= $item->data[$i];
- }
- }
- }
-
- return $parity;
- }
-
- //----------------------------------------------------------------------
- public static function checkModeNum($size, $data)
- {
- for($i=0; $i<$size; $i++) {
- if((ord($data[$i]) < ord('0')) || (ord($data[$i]) > ord('9'))){
- return false;
- }
- }
-
- return true;
- }
-
- //----------------------------------------------------------------------
- public static function estimateBitsModeNum($size)
- {
- $w = (int)$size / 3;
- $bits = $w * 10;
-
- switch($size - $w * 3) {
- case 1:
- $bits += 4;
- break;
- case 2:
- $bits += 7;
- break;
- default:
- break;
- }
-
- return $bits;
- }
-
- //----------------------------------------------------------------------
- public static $anTable = array(
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 36, -1, -1, -1, 37, 38, -1, -1, -1, -1, 39, 40, -1, 41, 42, 43,
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 44, -1, -1, -1, -1, -1,
- -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
- );
-
- //----------------------------------------------------------------------
- public static function lookAnTable($c)
- {
- return (($c > 127)?-1:self::$anTable[$c]);
- }
-
- //----------------------------------------------------------------------
- public static function checkModeAn($size, $data)
- {
- for($i=0; $i<$size; $i++) {
- if (self::lookAnTable(ord($data[$i])) == -1) {
- return false;
- }
- }
-
- return true;
- }
-
- //----------------------------------------------------------------------
- public static function estimateBitsModeAn($size)
- {
- $w = (int)($size / 2);
- $bits = $w * 11;
-
- if($size & 1) {
- $bits += 6;
- }
-
- return $bits;
- }
-
- //----------------------------------------------------------------------
- public static function estimateBitsMode8($size)
- {
- return $size * 8;
- }
-
- //----------------------------------------------------------------------
- public function estimateBitsModeKanji($size)
- {
- return (int)(($size / 2) * 13);
- }
-
- //----------------------------------------------------------------------
- public static function checkModeKanji($size, $data)
- {
- if($size & 1)
- return false;
-
- for($i=0; $i<$size; $i+=2) {
- $val = (ord($data[$i]) << 8) | ord($data[$i+1]);
- if( $val < 0x8140
- || ($val > 0x9ffc && $val < 0xe040)
- || $val > 0xebbf) {
- return false;
- }
- }
-
- return true;
- }
-
- /***********************************************************************
- * Validation
- **********************************************************************/
-
- public static function check($mode, $size, $data)
- {
- if($size <= 0)
- return false;
-
- switch($mode) {
- case QR_MODE_NUM: return self::checkModeNum($size, $data); break;
- case QR_MODE_AN: return self::checkModeAn($size, $data); break;
- case QR_MODE_KANJI: return self::checkModeKanji($size, $data); break;
- case QR_MODE_8: return true; break;
- case QR_MODE_STRUCTURE: return true; break;
-
- default:
- break;
- }
-
- return false;
- }
-
-
- //----------------------------------------------------------------------
- public function estimateBitStreamSize($version)
- {
- $bits = 0;
-
- foreach($this->items as $item) {
- $bits += $item->estimateBitStreamSizeOfEntry($version);
- }
-
- return $bits;
- }
-
- //----------------------------------------------------------------------
- public function estimateVersion()
- {
- $version = 0;
- $prev = 0;
- do {
- $prev = $version;
- $bits = $this->estimateBitStreamSize($prev);
- $version = QRspec::getMinimumVersion((int)(($bits + 7) / 8), $this->level);
- if ($version < 0) {
- return -1;
- }
- } while ($version > $prev);
-
- return $version;
- }
-
- //----------------------------------------------------------------------
- public static function lengthOfCode($mode, $version, $bits)
- {
- $payload = $bits - 4 - QRspec::lengthIndicator($mode, $version);
- switch($mode) {
- case QR_MODE_NUM:
- $chunks = (int)($payload / 10);
- $remain = $payload - $chunks * 10;
- $size = $chunks * 3;
- if($remain >= 7) {
- $size += 2;
- } else if($remain >= 4) {
- $size += 1;
- }
- break;
- case QR_MODE_AN:
- $chunks = (int)($payload / 11);
- $remain = $payload - $chunks * 11;
- $size = $chunks * 2;
- if($remain >= 6)
- $size++;
- break;
- case QR_MODE_8:
- $size = (int)($payload / 8);
- break;
- case QR_MODE_KANJI:
- $size = (int)(($payload / 13) * 2);
- break;
- case QR_MODE_STRUCTURE:
- $size = (int)($payload / 8);
- break;
- default:
- $size = 0;
- break;
- }
-
- $maxsize = QRspec::maximumWords($mode, $version);
- if($size < 0) $size = 0;
- if($size > $maxsize) $size = $maxsize;
-
- return $size;
- }
-
- //----------------------------------------------------------------------
- public function createBitStream()
- {
- $total = 0;
-
- foreach($this->items as $item) {
- $bits = $item->encodeBitStream($this->version);
-
- if($bits < 0)
- return -1;
-
- $total += $bits;
- }
-
- return $total;
- }
-
- //----------------------------------------------------------------------
- public function convertData()
- {
- $ver = $this->estimateVersion();
- if($ver > $this->getVersion()) {
- $this->setVersion($ver);
- }
-
- for(;;) {
- $bits = $this->createBitStream();
-
- if($bits < 0)
- return -1;
-
- $ver = QRspec::getMinimumVersion((int)(($bits + 7) / 8), $this->level);
- if($ver < 0) {
- throw new Exception('WRONG VERSION');
- return -1;
- } else if($ver > $this->getVersion()) {
- $this->setVersion($ver);
- } else {
- break;
- }
- }
-
- return 0;
- }
-
- //----------------------------------------------------------------------
- public function appendPaddingBit(&$bstream)
- {
- $bits = $bstream->size();
- $maxwords = QRspec::getDataLength($this->version, $this->level);
- $maxbits = $maxwords * 8;
-
- if ($maxbits == $bits) {
- return 0;
- }
-
- if ($maxbits - $bits < 5) {
- return $bstream->appendNum($maxbits - $bits, 0);
- }
-
- $bits += 4;
- $words = (int)(($bits + 7) / 8);
-
- $padding = new QRbitstream();
- $ret = $padding->appendNum($words * 8 - $bits + 4, 0);
-
- if($ret < 0)
- return $ret;
-
- $padlen = $maxwords - $words;
-
- if($padlen > 0) {
-
- $padbuf = array();
- for($i=0; $i<$padlen; $i++) {
- $padbuf[$i] = ($i&1)?0x11:0xec;
- }
-
- $ret = $padding->appendBytes($padlen, $padbuf);
-
- if($ret < 0)
- return $ret;
-
- }
-
- $ret = $bstream->append($padding);
-
- return $ret;
- }
-
- //----------------------------------------------------------------------
- public function mergeBitStream()
- {
- if($this->convertData() < 0) {
- return null;
- }
-
- $bstream = new QRbitstream();
-
- foreach($this->items as $item) {
- $ret = $bstream->append($item->bstream);
- if($ret < 0) {
- return null;
- }
- }
-
- return $bstream;
- }
-
- //----------------------------------------------------------------------
- public function getBitStream()
- {
-
- $bstream = $this->mergeBitStream();
-
- if($bstream == null) {
- return null;
- }
-
- $ret = $this->appendPaddingBit($bstream);
- if($ret < 0) {
- return null;
- }
-
- return $bstream;
- }
-
- //----------------------------------------------------------------------
- public function getByteStream()
- {
- $bstream = $this->getBitStream();
- if($bstream == null) {
- return null;
- }
-
- return $bstream->toByte();
- }
- }
-
-
-
-
-
-
-//---- qrbitstream.php -----------------------------
-
-
-
-
-/*
- * PHP QR Code encoder
- *
- * Bitstream class
- *
- * Based on libqrencode C library distributed under LGPL 2.1
- * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <[email protected]>
- *
- * PHP QR Code is distributed under LGPL 3
- * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
- class QRbitstream {
-
- public $data = array();
-
- //----------------------------------------------------------------------
- public function size()
- {
- return count($this->data);
- }
-
- //----------------------------------------------------------------------
- public function allocate($setLength)
- {
- $this->data = array_fill(0, $setLength, 0);
- return 0;
- }
-
- //----------------------------------------------------------------------
- public static function newFromNum($bits, $num)
- {
- $bstream = new QRbitstream();
- $bstream->allocate($bits);
-
- $mask = 1 << ($bits - 1);
- for($i=0; $i<$bits; $i++) {
- if($num & $mask) {
- $bstream->data[$i] = 1;
- } else {
- $bstream->data[$i] = 0;
- }
- $mask = $mask >> 1;
- }
-
- return $bstream;
- }
-
- //----------------------------------------------------------------------
- public static function newFromBytes($size, $data)
- {
- $bstream = new QRbitstream();
- $bstream->allocate($size * 8);
- $p=0;
-
- for($i=0; $i<$size; $i++) {
- $mask = 0x80;
- for($j=0; $j<8; $j++) {
- if($data[$i] & $mask) {
- $bstream->data[$p] = 1;
- } else {
- $bstream->data[$p] = 0;
- }
- $p++;
- $mask = $mask >> 1;
- }
- }
-
- return $bstream;
- }
-
- //----------------------------------------------------------------------
- public function append(QRbitstream $arg)
- {
- if (is_null($arg)) {
- return -1;
- }
-
- if($arg->size() == 0) {
- return 0;
- }
-
- if($this->size() == 0) {
- $this->data = $arg->data;
- return 0;
- }
-
- $this->data = array_values(array_merge($this->data, $arg->data));
-
- return 0;
- }
-
- //----------------------------------------------------------------------
- public function appendNum($bits, $num)
- {
- if ($bits == 0)
- return 0;
-
- $b = QRbitstream::newFromNum($bits, $num);
-
- if(is_null($b))
- return -1;
-
- $ret = $this->append($b);
- unset($b);
-
- return $ret;
- }
-
- //----------------------------------------------------------------------
- public function appendBytes($size, $data)
- {
- if ($size == 0)
- return 0;
-
- $b = QRbitstream::newFromBytes($size, $data);
-
- if(is_null($b))
- return -1;
-
- $ret = $this->append($b);
- unset($b);
-
- return $ret;
- }
-
- //----------------------------------------------------------------------
- public function toByte()
- {
-
- $size = $this->size();
-
- if($size == 0) {
- return array();
- }
-
- $data = array_fill(0, (int)(($size + 7) / 8), 0);
- $bytes = (int)($size / 8);
-
- $p = 0;
-
- for($i=0; $i<$bytes; $i++) {
- $v = 0;
- for($j=0; $j<8; $j++) {
- $v = $v << 1;
- $v |= $this->data[$p];
- $p++;
- }
- $data[$i] = $v;
- }
-
- if($size & 7) {
- $v = 0;
- for($j=0; $j<($size & 7); $j++) {
- $v = $v << 1;
- $v |= $this->data[$p];
- $p++;
- }
- $data[$bytes] = $v;
- }
-
- return $data;
- }
-
- }
-
-
-
-
-//---- qrsplit.php -----------------------------
-
-
-
-
-/*
- * PHP QR Code encoder
- *
- * Input splitting classes
- *
- * Based on libqrencode C library distributed under LGPL 2.1
- * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <[email protected]>
- *
- * PHP QR Code is distributed under LGPL 3
- * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
- *
- * The following data / specifications are taken from
- * "Two dimensional symbol -- QR-code -- Basic Specification" (JIS X0510:2004)
- * or
- * "Automatic identification and data capture techniques --
- * QR Code 2005 bar code symbology specification" (ISO/IEC 18004:2006)
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
- class QRsplit {
-
- public $dataStr = '';
- public $input;
- public $modeHint;
-
- //----------------------------------------------------------------------
- public function __construct($dataStr, $input, $modeHint)
- {
- $this->dataStr = $dataStr;
- $this->input = $input;
- $this->modeHint = $modeHint;
- }
-
- //----------------------------------------------------------------------
- public static function isdigitat($str, $pos)
- {
- if ($pos >= strlen($str))
- return false;
-
- return ((ord($str[$pos]) >= ord('0'))&&(ord($str[$pos]) <= ord('9')));
- }
-
- //----------------------------------------------------------------------
- public static function isalnumat($str, $pos)
- {
- if ($pos >= strlen($str))
- return false;
-
- return (QRinput::lookAnTable(ord($str[$pos])) >= 0);
- }
-
- //----------------------------------------------------------------------
- public function identifyMode($pos)
- {
- if ($pos >= strlen($this->dataStr))
- return QR_MODE_NUL;
-
- $c = $this->dataStr[$pos];
-
- if(self::isdigitat($this->dataStr, $pos)) {
- return QR_MODE_NUM;
- } else if(self::isalnumat($this->dataStr, $pos)) {
- return QR_MODE_AN;
- } else if($this->modeHint == QR_MODE_KANJI) {
-
- if ($pos+1 < strlen($this->dataStr))
- {
- $d = $this->dataStr[$pos+1];
- $word = (ord($c) << 8) | ord($d);
- if(($word >= 0x8140 && $word <= 0x9ffc) || ($word >= 0xe040 && $word <= 0xebbf)) {
- return QR_MODE_KANJI;
- }
- }
- }
-
- return QR_MODE_8;
- }
-
- //----------------------------------------------------------------------
- public function eatNum()
- {
- $ln = QRspec::lengthIndicator(QR_MODE_NUM, $this->input->getVersion());
-
- $p = 0;
- while(self::isdigitat($this->dataStr, $p)) {
- $p++;
- }
-
- $run = $p;
- $mode = $this->identifyMode($p);
-
- if($mode == QR_MODE_8) {
- $dif = QRinput::estimateBitsModeNum($run) + 4 + $ln
- + QRinput::estimateBitsMode8(1) // + 4 + l8
- - QRinput::estimateBitsMode8($run + 1); // - 4 - l8
- if($dif > 0) {
- return $this->eat8();
- }
- }
- if($mode == QR_MODE_AN) {
- $dif = QRinput::estimateBitsModeNum($run) + 4 + $ln
- + QRinput::estimateBitsModeAn(1) // + 4 + la
- - QRinput::estimateBitsModeAn($run + 1);// - 4 - la
- if($dif > 0) {
- return $this->eatAn();
- }
- }
-
- $ret = $this->input->append(QR_MODE_NUM, $run, str_split($this->dataStr));
- if($ret < 0)
- return -1;
-
- return $run;
- }
-
- //----------------------------------------------------------------------
- public function eatAn()
- {
- $la = QRspec::lengthIndicator(QR_MODE_AN, $this->input->getVersion());
- $ln = QRspec::lengthIndicator(QR_MODE_NUM, $this->input->getVersion());
-
- $p = 0;
-
- while(self::isalnumat($this->dataStr, $p)) {
- if(self::isdigitat($this->dataStr, $p)) {
- $q = $p;
- while(self::isdigitat($this->dataStr, $q)) {
- $q++;
- }
-
- $dif = QRinput::estimateBitsModeAn($p) // + 4 + la
- + QRinput::estimateBitsModeNum($q - $p) + 4 + $ln
- - QRinput::estimateBitsModeAn($q); // - 4 - la
-
- if($dif < 0) {
- break;
- } else {
- $p = $q;
- }
- } else {
- $p++;
- }
- }
-
- $run = $p;
-
- if(!self::isalnumat($this->dataStr, $p)) {
- $dif = QRinput::estimateBitsModeAn($run) + 4 + $la
- + QRinput::estimateBitsMode8(1) // + 4 + l8
- - QRinput::estimateBitsMode8($run + 1); // - 4 - l8
- if($dif > 0) {
- return $this->eat8();
- }
- }
-
- $ret = $this->input->append(QR_MODE_AN, $run, str_split($this->dataStr));
- if($ret < 0)
- return -1;
-
- return $run;
- }
-
- //----------------------------------------------------------------------
- public function eatKanji()
- {
- $p = 0;
-
- while($this->identifyMode($p) == QR_MODE_KANJI) {
- $p += 2;
- }
-
- $ret = $this->input->append(QR_MODE_KANJI, $p, str_split($this->dataStr));
- if($ret < 0)
- return -1;
-
- return $run;
- }
-
- //----------------------------------------------------------------------
- public function eat8()
- {
- $la = QRspec::lengthIndicator(QR_MODE_AN, $this->input->getVersion());
- $ln = QRspec::lengthIndicator(QR_MODE_NUM, $this->input->getVersion());
-
- $p = 1;
- $dataStrLen = strlen($this->dataStr);
-
- while($p < $dataStrLen) {
-
- $mode = $this->identifyMode($p);
- if($mode == QR_MODE_KANJI) {
- break;
- }
- if($mode == QR_MODE_NUM) {
- $q = $p;
- while(self::isdigitat($this->dataStr, $q)) {
- $q++;
- }
- $dif = QRinput::estimateBitsMode8($p) // + 4 + l8
- + QRinput::estimateBitsModeNum($q - $p) + 4 + $ln
- - QRinput::estimateBitsMode8($q); // - 4 - l8
- if($dif < 0) {
- break;
- } else {
- $p = $q;
- }
- } else if($mode == QR_MODE_AN) {
- $q = $p;
- while(self::isalnumat($this->dataStr, $q)) {
- $q++;
- }
- $dif = QRinput::estimateBitsMode8($p) // + 4 + l8
- + QRinput::estimateBitsModeAn($q - $p) + 4 + $la
- - QRinput::estimateBitsMode8($q); // - 4 - l8
- if($dif < 0) {
- break;
- } else {
- $p = $q;
- }
- } else {
- $p++;
- }
- }
-
- $run = $p;
- $ret = $this->input->append(QR_MODE_8, $run, str_split($this->dataStr));
-
- if($ret < 0)
- return -1;
-
- return $run;
- }
-
- //----------------------------------------------------------------------
- public function splitString()
- {
- while (strlen($this->dataStr) > 0)
- {
- if($this->dataStr == '')
- return 0;
-
- $mode = $this->identifyMode(0);
-
- switch ($mode) {
- case QR_MODE_NUM: $length = $this->eatNum(); break;
- case QR_MODE_AN: $length = $this->eatAn(); break;
- case QR_MODE_KANJI:
- if ($this->modeHint == QR_MODE_KANJI)
- $length = $this->eatKanji();
- else $length = $this->eat8();
- break;
- default: $length = $this->eat8(); break;
-
- }
-
- if($length == 0) return 0;
- if($length < 0) return -1;
-
- $this->dataStr = substr($this->dataStr, $length);
- }
- }
-
- //----------------------------------------------------------------------
- public function toUpper()
- {
- $stringLen = strlen($this->dataStr);
- $p = 0;
-
- while ($p<$stringLen) {
- $mode = self::identifyMode(substr($this->dataStr, $p));
- if($mode == QR_MODE_KANJI) {
- $p += 2;
- } else {
- if (ord($this->dataStr[$p]) >= ord('a') && ord($this->dataStr[$p]) <= ord('z')) {
- $this->dataStr[$p] = chr(ord($this->dataStr[$p]) - 32);
- }
- $p++;
- }
- }
-
- return $this->dataStr;
- }
-
- //----------------------------------------------------------------------
- public static function splitStringToQRinput($string, QRinput $input, $modeHint, $casesensitive = true)
- {
- if(is_null($string) || $string == '\0' || $string == '') {
- throw new Exception('empty string!!!');
- }
-
- $split = new QRsplit($string, $input, $modeHint);
-
- if(!$casesensitive)
- $split->toUpper();
-
- return $split->splitString();
- }
- }
-
-
-
-//---- qrrscode.php -----------------------------
-
-
-
-
-/*
- * PHP QR Code encoder
- *
- * Reed-Solomon error correction support
- *
- * Copyright (C) 2002, 2003, 2004, 2006 Phil Karn, KA9Q
- * (libfec is released under the GNU Lesser General Public License.)
- *
- * Based on libqrencode C library distributed under LGPL 2.1
- * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <[email protected]>
- *
- * PHP QR Code is distributed under LGPL 3
- * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
- class QRrsItem {
-
- public $mm; // Bits per symbol
- public $nn; // Symbols per block (= (1<<mm)-1)
- public $alpha_to = array(); // log lookup table
- public $index_of = array(); // Antilog lookup table
- public $genpoly = array(); // Generator polynomial
- public $nroots; // Number of generator roots = number of parity symbols
- public $fcr; // First consecutive root, index form
- public $prim; // Primitive element, index form
- public $iprim; // prim-th root of 1, index form
- public $pad; // Padding bytes in shortened block
- public $gfpoly;
-
- //----------------------------------------------------------------------
- public function modnn($x)
- {
- while ($x >= $this->nn) {
- $x -= $this->nn;
- $x = ($x >> $this->mm) + ($x & $this->nn);
- }
-
- return $x;
- }
-
- //----------------------------------------------------------------------
- public static function init_rs_char($symsize, $gfpoly, $fcr, $prim, $nroots, $pad)
- {
- // Common code for intializing a Reed-Solomon control block (char or int symbols)
- // Copyright 2004 Phil Karn, KA9Q
- // May be used under the terms of the GNU Lesser General Public License (LGPL)
-
- $rs = null;
-
- // Check parameter ranges
- if($symsize < 0 || $symsize > 8) return $rs;
- if($fcr < 0 || $fcr >= (1<<$symsize)) return $rs;
- if($prim <= 0 || $prim >= (1<<$symsize)) return $rs;
- if($nroots < 0 || $nroots >= (1<<$symsize)) return $rs; // Can't have more roots than symbol values!
- if($pad < 0 || $pad >= ((1<<$symsize) -1 - $nroots)) return $rs; // Too much padding
-
- $rs = new QRrsItem();
- $rs->mm = $symsize;
- $rs->nn = (1<<$symsize)-1;
- $rs->pad = $pad;
-
- $rs->alpha_to = array_fill(0, $rs->nn+1, 0);
- $rs->index_of = array_fill(0, $rs->nn+1, 0);
-
- // PHP style macro replacement ;)
- $NN =& $rs->nn;
- $A0 =& $NN;
-
- // Generate Galois field lookup tables
- $rs->index_of[0] = $A0; // log(zero) = -inf
- $rs->alpha_to[$A0] = 0; // alpha**-inf = 0
- $sr = 1;
-
- for($i=0; $i<$rs->nn; $i++) {
- $rs->index_of[$sr] = $i;
- $rs->alpha_to[$i] = $sr;
- $sr <<= 1;
- if($sr & (1<<$symsize)) {
- $sr ^= $gfpoly;
- }
- $sr &= $rs->nn;
- }
-
- if($sr != 1){
- // field generator polynomial is not primitive!
- $rs = NULL;
- return $rs;
- }
-
- /* Form RS code generator polynomial from its roots */
- $rs->genpoly = array_fill(0, $nroots+1, 0);
-
- $rs->fcr = $fcr;
- $rs->prim = $prim;
- $rs->nroots = $nroots;
- $rs->gfpoly = $gfpoly;
-
- /* Find prim-th root of 1, used in decoding */
- for($iprim=1;($iprim % $prim) != 0;$iprim += $rs->nn)
- ; // intentional empty-body loop!
-
- $rs->iprim = (int)($iprim / $prim);
- $rs->genpoly[0] = 1;
-
- for ($i = 0,$root=$fcr*$prim; $i < $nroots; $i++, $root += $prim) {
- $rs->genpoly[$i+1] = 1;
-
- // Multiply rs->genpoly[] by @**(root + x)
- for ($j = $i; $j > 0; $j--) {
- if ($rs->genpoly[$j] != 0) {
- $rs->genpoly[$j] = $rs->genpoly[$j-1] ^ $rs->alpha_to[$rs->modnn($rs->index_of[$rs->genpoly[$j]] + $root)];
- } else {
- $rs->genpoly[$j] = $rs->genpoly[$j-1];
- }
- }
- // rs->genpoly[0] can never be zero
- $rs->genpoly[0] = $rs->alpha_to[$rs->modnn($rs->index_of[$rs->genpoly[0]] + $root)];
- }
-
- // convert rs->genpoly[] to index form for quicker encoding
- for ($i = 0; $i <= $nroots; $i++)
- $rs->genpoly[$i] = $rs->index_of[$rs->genpoly[$i]];
-
- return $rs;
- }
-
- //----------------------------------------------------------------------
- public function encode_rs_char($data, &$parity)
- {
- $MM =& $this->mm;
- $NN =& $this->nn;
- $ALPHA_TO =& $this->alpha_to;
- $INDEX_OF =& $this->index_of;
- $GENPOLY =& $this->genpoly;
- $NROOTS =& $this->nroots;
- $FCR =& $this->fcr;
- $PRIM =& $this->prim;
- $IPRIM =& $this->iprim;
- $PAD =& $this->pad;
- $A0 =& $NN;
-
- $parity = array_fill(0, $NROOTS, 0);
-
- for($i=0; $i< ($NN-$NROOTS-$PAD); $i++) {
-
- $feedback = $INDEX_OF[$data[$i] ^ $parity[0]];
- if($feedback != $A0) {
- // feedback term is non-zero
-
- // This line is unnecessary when GENPOLY[NROOTS] is unity, as it must
- // always be for the polynomials constructed by init_rs()
- $feedback = $this->modnn($NN - $GENPOLY[$NROOTS] + $feedback);
-
- for($j=1;$j<$NROOTS;$j++) {
- $parity[$j] ^= $ALPHA_TO[$this->modnn($feedback + $GENPOLY[$NROOTS-$j])];
- }
- }
-
- // Shift
- array_shift($parity);
- if($feedback != $A0) {
- array_push($parity, $ALPHA_TO[$this->modnn($feedback + $GENPOLY[0])]);
- } else {
- array_push($parity, 0);
- }
- }
- }
- }
-
- //##########################################################################
-
- class QRrs {
-
- public static $items = array();
-
- //----------------------------------------------------------------------
- public static function init_rs($symsize, $gfpoly, $fcr, $prim, $nroots, $pad)
- {
- foreach(self::$items as $rs) {
- if($rs->pad != $pad) continue;
- if($rs->nroots != $nroots) continue;
- if($rs->mm != $symsize) continue;
- if($rs->gfpoly != $gfpoly) continue;
- if($rs->fcr != $fcr) continue;
- if($rs->prim != $prim) continue;
-
- return $rs;
- }
-
- $rs = QRrsItem::init_rs_char($symsize, $gfpoly, $fcr, $prim, $nroots, $pad);
- array_unshift(self::$items, $rs);
-
- return $rs;
- }
- }
-
-
-
-//---- qrmask.php -----------------------------
-
-
-
-
-/*
- * PHP QR Code encoder
- *
- * Masking
- *
- * Based on libqrencode C library distributed under LGPL 2.1
- * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <[email protected]>
- *
- * PHP QR Code is distributed under LGPL 3
- * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
- define('N1', 3);
- define('N2', 3);
- define('N3', 40);
- define('N4', 10);
-
- class QRmask {
-
- public $runLength = array();
-
- //----------------------------------------------------------------------
- public function __construct()
- {
- $this->runLength = array_fill(0, QRSPEC_WIDTH_MAX + 1, 0);
- }
-
- //----------------------------------------------------------------------
- public function writeFormatInformation($width, &$frame, $mask, $level)
- {
- $blacks = 0;
- $format = QRspec::getFormatInfo($mask, $level);
-
- for($i=0; $i<8; $i++) {
- if($format & 1) {
- $blacks += 2;
- $v = 0x85;
- } else {
- $v = 0x84;
- }
-
- $frame[8][$width - 1 - $i] = chr($v);
- if($i < 6) {
- $frame[$i][8] = chr($v);
- } else {
- $frame[$i + 1][8] = chr($v);
- }
- $format = $format >> 1;
- }
-
- for($i=0; $i<7; $i++) {
- if($format & 1) {
- $blacks += 2;
- $v = 0x85;
- } else {
- $v = 0x84;
- }
-
- $frame[$width - 7 + $i][8] = chr($v);
- if($i == 0) {
- $frame[8][7] = chr($v);
- } else {
- $frame[8][6 - $i] = chr($v);
- }
-
- $format = $format >> 1;
- }
-
- return $blacks;
- }
-
- //----------------------------------------------------------------------
- public function mask0($x, $y) { return ($x+$y)&1; }
- public function mask1($x, $y) { return ($y&1); }
- public function mask2($x, $y) { return ($x%3); }
- public function mask3($x, $y) { return ($x+$y)%3; }
- public function mask4($x, $y) { return (((int)($y/2))+((int)($x/3)))&1; }
- public function mask5($x, $y) { return (($x*$y)&1)+($x*$y)%3; }
- public function mask6($x, $y) { return ((($x*$y)&1)+($x*$y)%3)&1; }
- public function mask7($x, $y) { return ((($x*$y)%3)+(($x+$y)&1))&1; }
-
- //----------------------------------------------------------------------
- private function generateMaskNo($maskNo, $width, $frame)
- {
- $bitMask = array_fill(0, $width, array_fill(0, $width, 0));
-
- for($y=0; $y<$width; $y++) {
- for($x=0; $x<$width; $x++) {
- if(ord($frame[$y][$x]) & 0x80) {
- $bitMask[$y][$x] = 0;
- } else {
- $maskFunc = call_user_func(array($this, 'mask'.$maskNo), $x, $y);
- $bitMask[$y][$x] = ($maskFunc == 0)?1:0;
- }
-
- }
- }
-
- return $bitMask;
- }
-
- //----------------------------------------------------------------------
- public static function serial($bitFrame)
- {
- $codeArr = array();
-
- foreach ($bitFrame as $line)
- $codeArr[] = join('', $line);
-
- return gzcompress(join("\n", $codeArr), 9);
- }
-
- //----------------------------------------------------------------------
- public static function unserial($code)
- {
- $codeArr = array();
-
- $codeLines = explode("\n", gzuncompress($code));
- foreach ($codeLines as $line)
- $codeArr[] = str_split($line);
-
- return $codeArr;
- }
-
- //----------------------------------------------------------------------
- public function makeMaskNo($maskNo, $width, $s, &$d, $maskGenOnly = false)
- {
- $b = 0;
- $bitMask = array();
-
- $fileName = QR_CACHE_DIR.'mask_'.$maskNo.DIRECTORY_SEPARATOR.'mask_'.$width.'_'.$maskNo.'.dat';
-
- if (QR_CACHEABLE) {
- if (file_exists($fileName)) {
- $bitMask = self::unserial(file_get_contents($fileName));
- } else {
- $bitMask = $this->generateMaskNo($maskNo, $width, $s);
- if (!file_exists(QR_CACHE_DIR.'mask_'.$maskNo))
- mkdir(QR_CACHE_DIR.'mask_'.$maskNo);
- file_put_contents($fileName, self::serial($bitMask));
- }
- } else {
- $bitMask = $this->generateMaskNo($maskNo, $width, $s);
- }
-
- if ($maskGenOnly)
- return;
-
- $d = $s;
-
- for($y=0; $y<$width; $y++) {
- for($x=0; $x<$width; $x++) {
- if($bitMask[$y][$x] == 1) {
- $d[$y][$x] = chr(ord($s[$y][$x]) ^ (int)$bitMask[$y][$x]);
- }
- $b += (int)(ord($d[$y][$x]) & 1);
- }
- }
-
- return $b;
- }
-
- //----------------------------------------------------------------------
- public function makeMask($width, $frame, $maskNo, $level)
- {
- $masked = array_fill(0, $width, str_repeat("\0", $width));
- $this->makeMaskNo($maskNo, $width, $frame, $masked);
- $this->writeFormatInformation($width, $masked, $maskNo, $level);
-
- return $masked;
- }
-
- //----------------------------------------------------------------------
- public function calcN1N3($length)
- {
- $demerit = 0;
-
- for($i=0; $i<$length; $i++) {
-
- if($this->runLength[$i] >= 5) {
- $demerit += (N1 + ($this->runLength[$i] - 5));
- }
- if($i & 1) {
- if(($i >= 3) && ($i < ($length-2)) && ($this->runLength[$i] % 3 == 0)) {
- $fact = (int)($this->runLength[$i] / 3);
- if(($this->runLength[$i-2] == $fact) &&
- ($this->runLength[$i-1] == $fact) &&
- ($this->runLength[$i+1] == $fact) &&
- ($this->runLength[$i+2] == $fact)) {
- if(($this->runLength[$i-3] < 0) || ($this->runLength[$i-3] >= (4 * $fact))) {
- $demerit += N3;
- } else if((($i+3) >= $length) || ($this->runLength[$i+3] >= (4 * $fact))) {
- $demerit += N3;
- }
- }
- }
- }
- }
- return $demerit;
- }
-
- //----------------------------------------------------------------------
- public function evaluateSymbol($width, $frame)
- {
- $head = 0;
- $demerit = 0;
-
- for($y=0; $y<$width; $y++) {
- $head = 0;
- $this->runLength[0] = 1;
-
- $frameY = $frame[$y];
-
- if ($y>0)
- $frameYM = $frame[$y-1];
-
- for($x=0; $x<$width; $x++) {
- if(($x > 0) && ($y > 0)) {
- $b22 = ord($frameY[$x]) & ord($frameY[$x-1]) & ord($frameYM[$x]) & ord($frameYM[$x-1]);
- $w22 = ord($frameY[$x]) | ord($frameY[$x-1]) | ord($frameYM[$x]) | ord($frameYM[$x-1]);
-
- if(($b22 | ($w22 ^ 1))&1) {
- $demerit += N2;
- }
- }
- if(($x == 0) && (ord($frameY[$x]) & 1)) {
- $this->runLength[0] = -1;
- $head = 1;
- $this->runLength[$head] = 1;
- } else if($x > 0) {
- if((ord($frameY[$x]) ^ ord($frameY[$x-1])) & 1) {
- $head++;
- $this->runLength[$head] = 1;
- } else {
- $this->runLength[$head]++;
- }
- }
- }
-
- $demerit += $this->calcN1N3($head+1);
- }
-
- for($x=0; $x<$width; $x++) {
- $head = 0;
- $this->runLength[0] = 1;
-
- for($y=0; $y<$width; $y++) {
- if($y == 0 && (ord($frame[$y][$x]) & 1)) {
- $this->runLength[0] = -1;
- $head = 1;
- $this->runLength[$head] = 1;
- } else if($y > 0) {
- if((ord($frame[$y][$x]) ^ ord($frame[$y-1][$x])) & 1) {
- $head++;
- $this->runLength[$head] = 1;
- } else {
- $this->runLength[$head]++;
- }
- }
- }
-
- $demerit += $this->calcN1N3($head+1);
- }
-
- return $demerit;
- }
-
-
- //----------------------------------------------------------------------
- public function mask($width, $frame, $level)
- {
- $minDemerit = PHP_INT_MAX;
- $bestMaskNum = 0;
- $bestMask = array();
-
- $checked_masks = array(0,1,2,3,4,5,6,7);
-
- if (QR_FIND_FROM_RANDOM !== false) {
-
- $howManuOut = 8-(QR_FIND_FROM_RANDOM % 9);
- for ($i = 0; $i < $howManuOut; $i++) {
- $remPos = rand (0, count($checked_masks)-1);
- unset($checked_masks[$remPos]);
- $checked_masks = array_values($checked_masks);
- }
-
- }
-
- $bestMask = $frame;
-
- foreach($checked_masks as $i) {
- $mask = array_fill(0, $width, str_repeat("\0", $width));
-
- $demerit = 0;
- $blacks = 0;
- $blacks = $this->makeMaskNo($i, $width, $frame, $mask);
- $blacks += $this->writeFormatInformation($width, $mask, $i, $level);
- $blacks = (int)(100 * $blacks / ($width * $width));
- $demerit = (int)((int)(abs($blacks - 50) / 5) * N4);
- $demerit += $this->evaluateSymbol($width, $mask);
-
- if($demerit < $minDemerit) {
- $minDemerit = $demerit;
- $bestMask = $mask;
- $bestMaskNum = $i;
- }
- }
-
- return $bestMask;
- }
-
- //----------------------------------------------------------------------
- }
-
-
-
-
-//---- qrencode.php -----------------------------
-
-
-
-
-/*
- * PHP QR Code encoder
- *
- * Main encoder classes.
- *
- * Based on libqrencode C library distributed under LGPL 2.1
- * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <[email protected]>
- *
- * PHP QR Code is distributed under LGPL 3
- * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
- class QRrsblock {
- public $dataLength;
- public $data = array();
- public $eccLength;
- public $ecc = array();
-
- public function __construct($dl, $data, $el, &$ecc, QRrsItem $rs)
- {
- $rs->encode_rs_char($data, $ecc);
-
- $this->dataLength = $dl;
- $this->data = $data;
- $this->eccLength = $el;
- $this->ecc = $ecc;
- }
- };
-
- //##########################################################################
-
- class QRrawcode {
- public $version;
- public $datacode = array();
- public $ecccode = array();
- public $blocks;
- public $rsblocks = array(); //of RSblock
- public $count;
- public $dataLength;
- public $eccLength;
- public $b1;
-
- //----------------------------------------------------------------------
- public function __construct(QRinput $input)
- {
- $spec = array(0,0,0,0,0);
-
- $this->datacode = $input->getByteStream();
- if(is_null($this->datacode)) {
- throw new Exception('null imput string');
- }
-
- QRspec::getEccSpec($input->getVersion(), $input->getErrorCorrectionLevel(), $spec);
-
- $this->version = $input->getVersion();
- $this->b1 = QRspec::rsBlockNum1($spec);
- $this->dataLength = QRspec::rsDataLength($spec);
- $this->eccLength = QRspec::rsEccLength($spec);
- $this->ecccode = array_fill(0, $this->eccLength, 0);
- $this->blocks = QRspec::rsBlockNum($spec);
-
- $ret = $this->init($spec);
- if($ret < 0) {
- throw new Exception('block alloc error');
- return null;
- }
-
- $this->count = 0;
- }
-
- //----------------------------------------------------------------------
- public function init(array $spec)
- {
- $dl = QRspec::rsDataCodes1($spec);
- $el = QRspec::rsEccCodes1($spec);
- $rs = QRrs::init_rs(8, 0x11d, 0, 1, $el, 255 - $dl - $el);
-
-
- $blockNo = 0;
- $dataPos = 0;
- $eccPos = 0;
- for($i=0; $i<QRspec::rsBlockNum1($spec); $i++) {
- $ecc = array_slice($this->ecccode,$eccPos);
- $this->rsblocks[$blockNo] = new QRrsblock($dl, array_slice($this->datacode, $dataPos), $el, $ecc, $rs);
- $this->ecccode = array_merge(array_slice($this->ecccode,0, $eccPos), $ecc);
-
- $dataPos += $dl;
- $eccPos += $el;
- $blockNo++;
- }
-
- if(QRspec::rsBlockNum2($spec) == 0)
- return 0;
-
- $dl = QRspec::rsDataCodes2($spec);
- $el = QRspec::rsEccCodes2($spec);
- $rs = QRrs::init_rs(8, 0x11d, 0, 1, $el, 255 - $dl - $el);
-
- if($rs == NULL) return -1;
-
- for($i=0; $i<QRspec::rsBlockNum2($spec); $i++) {
- $ecc = array_slice($this->ecccode,$eccPos);
- $this->rsblocks[$blockNo] = new QRrsblock($dl, array_slice($this->datacode, $dataPos), $el, $ecc, $rs);
- $this->ecccode = array_merge(array_slice($this->ecccode,0, $eccPos), $ecc);
-
- $dataPos += $dl;
- $eccPos += $el;
- $blockNo++;
- }
-
- return 0;
- }
-
- //----------------------------------------------------------------------
- public function getCode()
- {
- $ret = 0;
-
- if($this->count < $this->dataLength) {
- $row = $this->count % $this->blocks;
- $col = $this->count / $this->blocks;
- if($col >= $this->rsblocks[0]->dataLength) {
- $row += $this->b1;
- }
- $ret = $this->rsblocks[$row]->data[$col];
- } else if($this->count < $this->dataLength + $this->eccLength) {
- $row = ($this->count - $this->dataLength) % $this->blocks;
- $col = ($this->count - $this->dataLength) / $this->blocks;
- $ret = $this->rsblocks[$row]->ecc[$col];
- } else {
- return 0;
- }
- $this->count++;
-
- return $ret;
- }
- }
-
- //##########################################################################
-
- class QRcode {
-
- public $version;
- public $width;
- public $data;
-
- //----------------------------------------------------------------------
- public function encodeMask(QRinput $input, $mask)
- {
- if($input->getVersion() < 0 || $input->getVersion() > QRSPEC_VERSION_MAX) {
- throw new Exception('wrong version');
- }
- if($input->getErrorCorrectionLevel() > QR_ECLEVEL_H) {
- throw new Exception('wrong level');
- }
-
- $raw = new QRrawcode($input);
-
- QRtools::markTime('after_raw');
-
- $version = $raw->version;
- $width = QRspec::getWidth($version);
- $frame = QRspec::newFrame($version);
-
- $filler = new FrameFiller($width, $frame);
- if(is_null($filler)) {
- return NULL;
- }
-
- // inteleaved data and ecc codes
- for($i=0; $i<$raw->dataLength + $raw->eccLength; $i++) {
- $code = $raw->getCode();
- $bit = 0x80;
- for($j=0; $j<8; $j++) {
- $addr = $filler->next();
- $filler->setFrameAt($addr, 0x02 | (($bit & $code) != 0));
- $bit = $bit >> 1;
- }
- }
-
- QRtools::markTime('after_filler');
-
- unset($raw);
-
- // remainder bits
- $j = QRspec::getRemainder($version);
- for($i=0; $i<$j; $i++) {
- $addr = $filler->next();
- $filler->setFrameAt($addr, 0x02);
- }
-
- $frame = $filler->frame;
- unset($filler);
-
-
- // masking
- $maskObj = new QRmask();
- if($mask < 0) {
-
- if (QR_FIND_BEST_MASK) {
- $masked = $maskObj->mask($width, $frame, $input->getErrorCorrectionLevel());
- } else {
- $masked = $maskObj->makeMask($width, $frame, (intval(QR_DEFAULT_MASK) % 8), $input->getErrorCorrectionLevel());
- }
- } else {
- $masked = $maskObj->makeMask($width, $frame, $mask, $input->getErrorCorrectionLevel());
- }
-
- if($masked == NULL) {
- return NULL;
- }
-
- QRtools::markTime('after_mask');
-
- $this->version = $version;
- $this->width = $width;
- $this->data = $masked;
-
- return $this;
- }
-
- //----------------------------------------------------------------------
- public function encodeInput(QRinput $input)
- {
- return $this->encodeMask($input, -1);
- }
-
- //----------------------------------------------------------------------
- public function encodeString8bit($string, $version, $level)
- {
- if(string == NULL) {
- throw new Exception('empty string!');
- return NULL;
- }
-
- $input = new QRinput($version, $level);
- if($input == NULL) return NULL;
-
- $ret = $input->append(QR_MODE_8, strlen($string), str_split($string));
- if($ret < 0) {
- unset($input);
- return NULL;
- }
- return $this->encodeInput($input);
- }
-
- //----------------------------------------------------------------------
- public function encodeString($string, $version, $level, $hint, $casesensitive)
- {
-
- if($hint != QR_MODE_8 && $hint != QR_MODE_KANJI) {
- throw new Exception('bad hint');
- return NULL;
- }
-
- $input = new QRinput($version, $level);
- if($input == NULL) return NULL;
-
- $ret = QRsplit::splitStringToQRinput($string, $input, $hint, $casesensitive);
- if($ret < 0) {
- return NULL;
- }
-
- return $this->encodeInput($input);
- }
-
- //----------------------------------------------------------------------
- public static function png($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4, $saveandprint=false)
- {
- $enc = QRencode::factory($level, $size, $margin);
- return $enc->encodePNG($text, $outfile, $saveandprint=false);
- }
-
- //----------------------------------------------------------------------
- public static function text($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4)
- {
- $enc = QRencode::factory($level, $size, $margin);
- return $enc->encode($text, $outfile);
- }
-
- //----------------------------------------------------------------------
- public static function raw($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4)
- {
- $enc = QRencode::factory($level, $size, $margin);
- return $enc->encodeRAW($text, $outfile);
- }
- }
-
- //##########################################################################
-
- class FrameFiller {
-
- public $width;
- public $frame;
- public $x;
- public $y;
- public $dir;
- public $bit;
-
- //----------------------------------------------------------------------
- public function __construct($width, &$frame)
- {
- $this->width = $width;
- $this->frame = $frame;
- $this->x = $width - 1;
- $this->y = $width - 1;
- $this->dir = -1;
- $this->bit = -1;
- }
-
- //----------------------------------------------------------------------
- public function setFrameAt($at, $val)
- {
- $this->frame[$at['y']][$at['x']] = chr($val);
- }
-
- //----------------------------------------------------------------------
- public function getFrameAt($at)
- {
- return ord($this->frame[$at['y']][$at['x']]);
- }
-
- //----------------------------------------------------------------------
- public function next()
- {
- do {
-
- if($this->bit == -1) {
- $this->bit = 0;
- return array('x'=>$this->x, 'y'=>$this->y);
- }
-
- $x = $this->x;
- $y = $this->y;
- $w = $this->width;
-
- if($this->bit == 0) {
- $x--;
- $this->bit++;
- } else {
- $x++;
- $y += $this->dir;
- $this->bit--;
- }
-
- if($this->dir < 0) {
- if($y < 0) {
- $y = 0;
- $x -= 2;
- $this->dir = 1;
- if($x == 6) {
- $x--;
- $y = 9;
- }
- }
- } else {
- if($y == $w) {
- $y = $w - 1;
- $x -= 2;
- $this->dir = -1;
- if($x == 6) {
- $x--;
- $y -= 8;
- }
- }
- }
- if($x < 0 || $y < 0) return null;
-
- $this->x = $x;
- $this->y = $y;
-
- } while(ord($this->frame[$y][$x]) & 0x80);
-
- return array('x'=>$x, 'y'=>$y);
- }
-
- } ;
-
- //##########################################################################
-
- class QRencode {
-
- public $casesensitive = true;
- public $eightbit = false;
-
- public $version = 0;
- public $size = 3;
- public $margin = 4;
-
- public $structured = 0; // not supported yet
-
- public $level = QR_ECLEVEL_L;
- public $hint = QR_MODE_8;
-
- //----------------------------------------------------------------------
- public static function factory($level = QR_ECLEVEL_L, $size = 3, $margin = 4)
- {
- $enc = new QRencode();
- $enc->size = $size;
- $enc->margin = $margin;
-
- switch ($level.'') {
- case '0':
- case '1':
- case '2':
- case '3':
- $enc->level = $level;
- break;
- case 'l':
- case 'L':
- $enc->level = QR_ECLEVEL_L;
- break;
- case 'm':
- case 'M':
- $enc->level = QR_ECLEVEL_M;
- break;
- case 'q':
- case 'Q':
- $enc->level = QR_ECLEVEL_Q;
- break;
- case 'h':
- case 'H':
- $enc->level = QR_ECLEVEL_H;
- break;
- }
-
- return $enc;
- }
-
- //----------------------------------------------------------------------
- public function encodeRAW($intext, $outfile = false)
- {
- $code = new QRcode();
-
- if($this->eightbit) {
- $code->encodeString8bit($intext, $this->version, $this->level);
- } else {
- $code->encodeString($intext, $this->version, $this->level, $this->hint, $this->casesensitive);
- }
-
- return $code->data;
- }
-
- //----------------------------------------------------------------------
- public function encode($intext, $outfile = false)
- {
- $code = new QRcode();
-
- if($this->eightbit) {
- $code->encodeString8bit($intext, $this->version, $this->level);
- } else {
- $code->encodeString($intext, $this->version, $this->level, $this->hint, $this->casesensitive);
- }
-
- QRtools::markTime('after_encode');
-
- if ($outfile!== false) {
- file_put_contents($outfile, join("\n", QRtools::binarize($code->data)));
- } else {
- return QRtools::binarize($code->data);
- }
- }
-
- //----------------------------------------------------------------------
- public function encodePNG($intext, $outfile = false,$saveandprint=false)
- {
- try {
-
- ob_start();
- $tab = $this->encode($intext);
- $err = ob_get_contents();
- ob_end_clean();
-
- if ($err != '')
- QRtools::log($outfile, $err);
-
- $maxSize = (int)(QR_PNG_MAXIMUM_SIZE / (count($tab)+2*$this->margin));
-
- QRimage::png($tab, $outfile, min(max(1, $this->size), $maxSize), $this->margin,$saveandprint);
-
- } catch (Exception $e) {
-
- QRtools::log($outfile, $e->getMessage());
-
- }
- }
- }
-
-
diff --git a/lib/phpqrcode/qrbitstream.php b/lib/phpqrcode/qrbitstream.php
deleted file mode 100644
index 7d4ec4a6c..000000000
--- a/lib/phpqrcode/qrbitstream.php
+++ /dev/null
@@ -1,180 +0,0 @@
-<?php
-/*
- * PHP QR Code encoder
- *
- * Bitstream class
- *
- * Based on libqrencode C library distributed under LGPL 2.1
- * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <[email protected]>
- *
- * PHP QR Code is distributed under LGPL 3
- * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
- class QRbitstream {
-
- public $data = array();
-
- //----------------------------------------------------------------------
- public function size()
- {
- return count($this->data);
- }
-
- //----------------------------------------------------------------------
- public function allocate($setLength)
- {
- $this->data = array_fill(0, $setLength, 0);
- return 0;
- }
-
- //----------------------------------------------------------------------
- public static function newFromNum($bits, $num)
- {
- $bstream = new QRbitstream();
- $bstream->allocate($bits);
-
- $mask = 1 << ($bits - 1);
- for($i=0; $i<$bits; $i++) {
- if($num & $mask) {
- $bstream->data[$i] = 1;
- } else {
- $bstream->data[$i] = 0;
- }
- $mask = $mask >> 1;
- }
-
- return $bstream;
- }
-
- //----------------------------------------------------------------------
- public static function newFromBytes($size, $data)
- {
- $bstream = new QRbitstream();
- $bstream->allocate($size * 8);
- $p=0;
-
- for($i=0; $i<$size; $i++) {
- $mask = 0x80;
- for($j=0; $j<8; $j++) {
- if($data[$i] & $mask) {
- $bstream->data[$p] = 1;
- } else {
- $bstream->data[$p] = 0;
- }
- $p++;
- $mask = $mask >> 1;
- }
- }
-
- return $bstream;
- }
-
- //----------------------------------------------------------------------
- public function append(QRbitstream $arg)
- {
- if (is_null($arg)) {
- return -1;
- }
-
- if($arg->size() == 0) {
- return 0;
- }
-
- if($this->size() == 0) {
- $this->data = $arg->data;
- return 0;
- }
-
- $this->data = array_values(array_merge($this->data, $arg->data));
-
- return 0;
- }
-
- //----------------------------------------------------------------------
- public function appendNum($bits, $num)
- {
- if ($bits == 0)
- return 0;
-
- $b = QRbitstream::newFromNum($bits, $num);
-
- if(is_null($b))
- return -1;
-
- $ret = $this->append($b);
- unset($b);
-
- return $ret;
- }
-
- //----------------------------------------------------------------------
- public function appendBytes($size, $data)
- {
- if ($size == 0)
- return 0;
-
- $b = QRbitstream::newFromBytes($size, $data);
-
- if(is_null($b))
- return -1;
-
- $ret = $this->append($b);
- unset($b);
-
- return $ret;
- }
-
- //----------------------------------------------------------------------
- public function toByte()
- {
-
- $size = $this->size();
-
- if($size == 0) {
- return array();
- }
-
- $data = array_fill(0, (int)(($size + 7) / 8), 0);
- $bytes = (int)($size / 8);
-
- $p = 0;
-
- for($i=0; $i<$bytes; $i++) {
- $v = 0;
- for($j=0; $j<8; $j++) {
- $v = $v << 1;
- $v |= $this->data[$p];
- $p++;
- }
- $data[$i] = $v;
- }
-
- if($size & 7) {
- $v = 0;
- for($j=0; $j<($size & 7); $j++) {
- $v = $v << 1;
- $v |= $this->data[$p];
- $p++;
- }
- $data[$bytes] = $v;
- }
-
- return $data;
- }
-
- }
diff --git a/lib/phpqrcode/qrconfig.php b/lib/phpqrcode/qrconfig.php
deleted file mode 100644
index e53dff8c2..000000000
--- a/lib/phpqrcode/qrconfig.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-/*
- * PHP QR Code encoder
- *
- * Config file, feel free to modify
- */
-
- define('QR_CACHEABLE', true); // use cache - more disk reads but less CPU power, masks and format templates are stored there
- define('QR_CACHE_DIR', dirname(__FILE__).DIRECTORY_SEPARATOR.'cache'.DIRECTORY_SEPARATOR); // used when QR_CACHEABLE === true
- define('QR_LOG_DIR', dirname(__FILE__).DIRECTORY_SEPARATOR); // default error logs dir
-
- define('QR_FIND_BEST_MASK', true); // if true, estimates best mask (spec. default, but extremally slow; set to false to significant performance boost but (propably) worst quality code
- define('QR_FIND_FROM_RANDOM', false); // if false, checks all masks available, otherwise value tells count of masks need to be checked, mask id are got randomly
- define('QR_DEFAULT_MASK', 2); // when QR_FIND_BEST_MASK === false
-
- define('QR_PNG_MAXIMUM_SIZE', 1024); // maximum allowed png image width (in pixels), tune to make sure GD and PHP can handle such big images
- \ No newline at end of file
diff --git a/lib/phpqrcode/qrconst.php b/lib/phpqrcode/qrconst.php
deleted file mode 100644
index 9fac9fdc1..000000000
--- a/lib/phpqrcode/qrconst.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-
-/*
- * PHP QR Code encoder
- *
- * Common constants
- *
- * Based on libqrencode C library distributed under LGPL 2.1
- * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <[email protected]>
- *
- * PHP QR Code is distributed under LGPL 3
- * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
- // Encoding modes
-
- define('QR_MODE_NUL', -1);
- define('QR_MODE_NUM', 0);
- define('QR_MODE_AN', 1);
- define('QR_MODE_8', 2);
- define('QR_MODE_KANJI', 3);
- define('QR_MODE_STRUCTURE', 4);
-
- // Levels of error correction.
-
- define('QR_ECLEVEL_L', 0);
- define('QR_ECLEVEL_M', 1);
- define('QR_ECLEVEL_Q', 2);
- define('QR_ECLEVEL_H', 3);
-
- // Supported output formats
-
- define('QR_FORMAT_TEXT', 0);
- define('QR_FORMAT_PNG', 1);
-
- class qrstr {
- public static function set(&$srctab, $x, $y, $repl, $replLen = false) {
- $srctab[$y] = substr_replace($srctab[$y], ($replLen !== false)?substr($repl,0,$replLen):$repl, $x, ($replLen !== false)?$replLen:strlen($repl));
- }
- } \ No newline at end of file
diff --git a/lib/phpqrcode/qrencode.php b/lib/phpqrcode/qrencode.php
deleted file mode 100644
index 5bdeaec20..000000000
--- a/lib/phpqrcode/qrencode.php
+++ /dev/null
@@ -1,502 +0,0 @@
-<?php
-/*
- * PHP QR Code encoder
- *
- * Main encoder classes.
- *
- * Based on libqrencode C library distributed under LGPL 2.1
- * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <[email protected]>
- *
- * PHP QR Code is distributed under LGPL 3
- * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
- class QRrsblock {
- public $dataLength;
- public $data = array();
- public $eccLength;
- public $ecc = array();
-
- public function __construct($dl, $data, $el, &$ecc, QRrsItem $rs)
- {
- $rs->encode_rs_char($data, $ecc);
-
- $this->dataLength = $dl;
- $this->data = $data;
- $this->eccLength = $el;
- $this->ecc = $ecc;
- }
- };
-
- //##########################################################################
-
- class QRrawcode {
- public $version;
- public $datacode = array();
- public $ecccode = array();
- public $blocks;
- public $rsblocks = array(); //of RSblock
- public $count;
- public $dataLength;
- public $eccLength;
- public $b1;
-
- //----------------------------------------------------------------------
- public function __construct(QRinput $input)
- {
- $spec = array(0,0,0,0,0);
-
- $this->datacode = $input->getByteStream();
- if(is_null($this->datacode)) {
- throw new Exception('null imput string');
- }
-
- QRspec::getEccSpec($input->getVersion(), $input->getErrorCorrectionLevel(), $spec);
-
- $this->version = $input->getVersion();
- $this->b1 = QRspec::rsBlockNum1($spec);
- $this->dataLength = QRspec::rsDataLength($spec);
- $this->eccLength = QRspec::rsEccLength($spec);
- $this->ecccode = array_fill(0, $this->eccLength, 0);
- $this->blocks = QRspec::rsBlockNum($spec);
-
- $ret = $this->init($spec);
- if($ret < 0) {
- throw new Exception('block alloc error');
- return null;
- }
-
- $this->count = 0;
- }
-
- //----------------------------------------------------------------------
- public function init(array $spec)
- {
- $dl = QRspec::rsDataCodes1($spec);
- $el = QRspec::rsEccCodes1($spec);
- $rs = QRrs::init_rs(8, 0x11d, 0, 1, $el, 255 - $dl - $el);
-
-
- $blockNo = 0;
- $dataPos = 0;
- $eccPos = 0;
- for($i=0; $i<QRspec::rsBlockNum1($spec); $i++) {
- $ecc = array_slice($this->ecccode,$eccPos);
- $this->rsblocks[$blockNo] = new QRrsblock($dl, array_slice($this->datacode, $dataPos), $el, $ecc, $rs);
- $this->ecccode = array_merge(array_slice($this->ecccode,0, $eccPos), $ecc);
-
- $dataPos += $dl;
- $eccPos += $el;
- $blockNo++;
- }
-
- if(QRspec::rsBlockNum2($spec) == 0)
- return 0;
-
- $dl = QRspec::rsDataCodes2($spec);
- $el = QRspec::rsEccCodes2($spec);
- $rs = QRrs::init_rs(8, 0x11d, 0, 1, $el, 255 - $dl - $el);
-
- if($rs == NULL) return -1;
-
- for($i=0; $i<QRspec::rsBlockNum2($spec); $i++) {
- $ecc = array_slice($this->ecccode,$eccPos);
- $this->rsblocks[$blockNo] = new QRrsblock($dl, array_slice($this->datacode, $dataPos), $el, $ecc, $rs);
- $this->ecccode = array_merge(array_slice($this->ecccode,0, $eccPos), $ecc);
-
- $dataPos += $dl;
- $eccPos += $el;
- $blockNo++;
- }
-
- return 0;
- }
-
- //----------------------------------------------------------------------
- public function getCode()
- {
- $ret = 0;
-
- if($this->count < $this->dataLength) {
- $row = $this->count % $this->blocks;
- $col = $this->count / $this->blocks;
- if($col >= $this->rsblocks[0]->dataLength) {
- $row += $this->b1;
- }
- $ret = $this->rsblocks[$row]->data[$col];
- } else if($this->count < $this->dataLength + $this->eccLength) {
- $row = ($this->count - $this->dataLength) % $this->blocks;
- $col = ($this->count - $this->dataLength) / $this->blocks;
- $ret = $this->rsblocks[$row]->ecc[$col];
- } else {
- return 0;
- }
- $this->count++;
-
- return $ret;
- }
- }
-
- //##########################################################################
-
- class QRcode {
-
- public $version;
- public $width;
- public $data;
-
- //----------------------------------------------------------------------
- public function encodeMask(QRinput $input, $mask)
- {
- if($input->getVersion() < 0 || $input->getVersion() > QRSPEC_VERSION_MAX) {
- throw new Exception('wrong version');
- }
- if($input->getErrorCorrectionLevel() > QR_ECLEVEL_H) {
- throw new Exception('wrong level');
- }
-
- $raw = new QRrawcode($input);
-
- QRtools::markTime('after_raw');
-
- $version = $raw->version;
- $width = QRspec::getWidth($version);
- $frame = QRspec::newFrame($version);
-
- $filler = new FrameFiller($width, $frame);
- if(is_null($filler)) {
- return NULL;
- }
-
- // inteleaved data and ecc codes
- for($i=0; $i<$raw->dataLength + $raw->eccLength; $i++) {
- $code = $raw->getCode();
- $bit = 0x80;
- for($j=0; $j<8; $j++) {
- $addr = $filler->next();
- $filler->setFrameAt($addr, 0x02 | (($bit & $code) != 0));
- $bit = $bit >> 1;
- }
- }
-
- QRtools::markTime('after_filler');
-
- unset($raw);
-
- // remainder bits
- $j = QRspec::getRemainder($version);
- for($i=0; $i<$j; $i++) {
- $addr = $filler->next();
- $filler->setFrameAt($addr, 0x02);
- }
-
- $frame = $filler->frame;
- unset($filler);
-
-
- // masking
- $maskObj = new QRmask();
- if($mask < 0) {
-
- if (QR_FIND_BEST_MASK) {
- $masked = $maskObj->mask($width, $frame, $input->getErrorCorrectionLevel());
- } else {
- $masked = $maskObj->makeMask($width, $frame, (intval(QR_DEFAULT_MASK) % 8), $input->getErrorCorrectionLevel());
- }
- } else {
- $masked = $maskObj->makeMask($width, $frame, $mask, $input->getErrorCorrectionLevel());
- }
-
- if($masked == NULL) {
- return NULL;
- }
-
- QRtools::markTime('after_mask');
-
- $this->version = $version;
- $this->width = $width;
- $this->data = $masked;
-
- return $this;
- }
-
- //----------------------------------------------------------------------
- public function encodeInput(QRinput $input)
- {
- return $this->encodeMask($input, -1);
- }
-
- //----------------------------------------------------------------------
- public function encodeString8bit($string, $version, $level)
- {
- if(string == NULL) {
- throw new Exception('empty string!');
- return NULL;
- }
-
- $input = new QRinput($version, $level);
- if($input == NULL) return NULL;
-
- $ret = $input->append($input, QR_MODE_8, strlen($string), str_split($string));
- if($ret < 0) {
- unset($input);
- return NULL;
- }
- return $this->encodeInput($input);
- }
-
- //----------------------------------------------------------------------
- public function encodeString($string, $version, $level, $hint, $casesensitive)
- {
-
- if($hint != QR_MODE_8 && $hint != QR_MODE_KANJI) {
- throw new Exception('bad hint');
- return NULL;
- }
-
- $input = new QRinput($version, $level);
- if($input == NULL) return NULL;
-
- $ret = QRsplit::splitStringToQRinput($string, $input, $hint, $casesensitive);
- if($ret < 0) {
- return NULL;
- }
-
- return $this->encodeInput($input);
- }
-
- //----------------------------------------------------------------------
- public static function png($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4, $saveandprint=false)
- {
- $enc = QRencode::factory($level, $size, $margin);
- return $enc->encodePNG($text, $outfile, $saveandprint=false);
- }
-
- //----------------------------------------------------------------------
- public static function text($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4)
- {
- $enc = QRencode::factory($level, $size, $margin);
- return $enc->encode($text, $outfile);
- }
-
- //----------------------------------------------------------------------
- public static function raw($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4)
- {
- $enc = QRencode::factory($level, $size, $margin);
- return $enc->encodeRAW($text, $outfile);
- }
- }
-
- //##########################################################################
-
- class FrameFiller {
-
- public $width;
- public $frame;
- public $x;
- public $y;
- public $dir;
- public $bit;
-
- //----------------------------------------------------------------------
- public function __construct($width, &$frame)
- {
- $this->width = $width;
- $this->frame = $frame;
- $this->x = $width - 1;
- $this->y = $width - 1;
- $this->dir = -1;
- $this->bit = -1;
- }
-
- //----------------------------------------------------------------------
- public function setFrameAt($at, $val)
- {
- $this->frame[$at['y']][$at['x']] = chr($val);
- }
-
- //----------------------------------------------------------------------
- public function getFrameAt($at)
- {
- return ord($this->frame[$at['y']][$at['x']]);
- }
-
- //----------------------------------------------------------------------
- public function next()
- {
- do {
-
- if($this->bit == -1) {
- $this->bit = 0;
- return array('x'=>$this->x, 'y'=>$this->y);
- }
-
- $x = $this->x;
- $y = $this->y;
- $w = $this->width;
-
- if($this->bit == 0) {
- $x--;
- $this->bit++;
- } else {
- $x++;
- $y += $this->dir;
- $this->bit--;
- }
-
- if($this->dir < 0) {
- if($y < 0) {
- $y = 0;
- $x -= 2;
- $this->dir = 1;
- if($x == 6) {
- $x--;
- $y = 9;
- }
- }
- } else {
- if($y == $w) {
- $y = $w - 1;
- $x -= 2;
- $this->dir = -1;
- if($x == 6) {
- $x--;
- $y -= 8;
- }
- }
- }
- if($x < 0 || $y < 0) return null;
-
- $this->x = $x;
- $this->y = $y;
-
- } while(ord($this->frame[$y][$x]) & 0x80);
-
- return array('x'=>$x, 'y'=>$y);
- }
-
- } ;
-
- //##########################################################################
-
- class QRencode {
-
- public $casesensitive = true;
- public $eightbit = false;
-
- public $version = 0;
- public $size = 3;
- public $margin = 4;
-
- public $structured = 0; // not supported yet
-
- public $level = QR_ECLEVEL_L;
- public $hint = QR_MODE_8;
-
- //----------------------------------------------------------------------
- public static function factory($level = QR_ECLEVEL_L, $size = 3, $margin = 4)
- {
- $enc = new QRencode();
- $enc->size = $size;
- $enc->margin = $margin;
-
- switch ($level.'') {
- case '0':
- case '1':
- case '2':
- case '3':
- $enc->level = $level;
- break;
- case 'l':
- case 'L':
- $enc->level = QR_ECLEVEL_L;
- break;
- case 'm':
- case 'M':
- $enc->level = QR_ECLEVEL_M;
- break;
- case 'q':
- case 'Q':
- $enc->level = QR_ECLEVEL_Q;
- break;
- case 'h':
- case 'H':
- $enc->level = QR_ECLEVEL_H;
- break;
- }
-
- return $enc;
- }
-
- //----------------------------------------------------------------------
- public function encodeRAW($intext, $outfile = false)
- {
- $code = new QRcode();
-
- if($this->eightbit) {
- $code->encodeString8bit($intext, $this->version, $this->level);
- } else {
- $code->encodeString($intext, $this->version, $this->level, $this->hint, $this->casesensitive);
- }
-
- return $code->data;
- }
-
- //----------------------------------------------------------------------
- public function encode($intext, $outfile = false)
- {
- $code = new QRcode();
-
- if($this->eightbit) {
- $code->encodeString8bit($intext, $this->version, $this->level);
- } else {
- $code->encodeString($intext, $this->version, $this->level, $this->hint, $this->casesensitive);
- }
-
- QRtools::markTime('after_encode');
-
- if ($outfile!== false) {
- file_put_contents($outfile, join("\n", QRtools::binarize($code->data)));
- } else {
- return QRtools::binarize($code->data);
- }
- }
-
- //----------------------------------------------------------------------
- public function encodePNG($intext, $outfile = false,$saveandprint=false)
- {
- try {
-
- ob_start();
- $tab = $this->encode($intext);
- $err = ob_get_contents();
- ob_end_clean();
-
- if ($err != '')
- QRtools::log($outfile, $err);
-
- $maxSize = (int)(QR_PNG_MAXIMUM_SIZE / (count($tab)+2*$this->margin));
-
- QRimage::png($tab, $outfile, min(max(1, $this->size), $maxSize), $this->margin,$saveandprint);
-
- } catch (Exception $e) {
-
- QRtools::log($outfile, $e->getMessage());
-
- }
- }
- }
diff --git a/lib/phpqrcode/qrimage.php b/lib/phpqrcode/qrimage.php
deleted file mode 100644
index 10b0a6e1b..000000000
--- a/lib/phpqrcode/qrimage.php
+++ /dev/null
@@ -1,95 +0,0 @@
-<?php
-/*
- * PHP QR Code encoder
- *
- * Image output of code using GD2
- *
- * PHP QR Code is distributed under LGPL 3
- * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
- define('QR_IMAGE', true);
-
- class QRimage {
-
- //----------------------------------------------------------------------
- public static function png($frame, $filename = false, $pixelPerPoint = 4, $outerFrame = 4,$saveandprint=FALSE)
- {
- $image = self::image($frame, $pixelPerPoint, $outerFrame);
-
- if ($filename === false) {
- Header("Content-type: image/png");
- ImagePng($image);
- } else {
- if($saveandprint===TRUE){
- ImagePng($image, $filename);
- header("Content-type: image/png");
- ImagePng($image);
- }else{
- ImagePng($image, $filename);
- }
- }
-
- ImageDestroy($image);
- }
-
- //----------------------------------------------------------------------
- public static function jpg($frame, $filename = false, $pixelPerPoint = 8, $outerFrame = 4, $q = 85)
- {
- $image = self::image($frame, $pixelPerPoint, $outerFrame);
-
- if ($filename === false) {
- Header("Content-type: image/jpeg");
- ImageJpeg($image, null, $q);
- } else {
- ImageJpeg($image, $filename, $q);
- }
-
- ImageDestroy($image);
- }
-
- //----------------------------------------------------------------------
- private static function image($frame, $pixelPerPoint = 4, $outerFrame = 4)
- {
- $h = count($frame);
- $w = strlen($frame[0]);
-
- $imgW = $w + 2*$outerFrame;
- $imgH = $h + 2*$outerFrame;
-
- $base_image =ImageCreate($imgW, $imgH);
-
- $col[0] = ImageColorAllocate($base_image,255,255,255);
- $col[1] = ImageColorAllocate($base_image,0,0,0);
-
- imagefill($base_image, 0, 0, $col[0]);
-
- for($y=0; $y<$h; $y++) {
- for($x=0; $x<$w; $x++) {
- if ($frame[$y][$x] == '1') {
- ImageSetPixel($base_image,$x+$outerFrame,$y+$outerFrame,$col[1]);
- }
- }
- }
-
- $target_image =ImageCreate($imgW * $pixelPerPoint, $imgH * $pixelPerPoint);
- ImageCopyResized($target_image, $base_image, 0, 0, 0, 0, $imgW * $pixelPerPoint, $imgH * $pixelPerPoint, $imgW, $imgH);
- ImageDestroy($base_image);
-
- return $target_image;
- }
- } \ No newline at end of file
diff --git a/lib/phpqrcode/qrinput.php b/lib/phpqrcode/qrinput.php
deleted file mode 100644
index 0f6d7f944..000000000
--- a/lib/phpqrcode/qrinput.php
+++ /dev/null
@@ -1,729 +0,0 @@
-<?php
-/*
- * PHP QR Code encoder
- *
- * Input encoding class
- *
- * Based on libqrencode C library distributed under LGPL 2.1
- * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <[email protected]>
- *
- * PHP QR Code is distributed under LGPL 3
- * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
- define('STRUCTURE_HEADER_BITS', 20);
- define('MAX_STRUCTURED_SYMBOLS', 16);
-
- class QRinputItem {
-
- public $mode;
- public $size;
- public $data;
- public $bstream;
-
- public function __construct($mode, $size, $data, $bstream = null)
- {
- $setData = array_slice($data, 0, $size);
-
- if (count($setData) < $size) {
- $setData = array_merge($setData, array_fill(0,$size-count($setData),0));
- }
-
- if(!QRinput::check($mode, $size, $setData)) {
- throw new Exception('Error m:'.$mode.',s:'.$size.',d:'.join(',',$setData));
- return null;
- }
-
- $this->mode = $mode;
- $this->size = $size;
- $this->data = $setData;
- $this->bstream = $bstream;
- }
-
- //----------------------------------------------------------------------
- public function encodeModeNum($version)
- {
- try {
-
- $words = (int)($this->size / 3);
- $bs = new QRbitstream();
-
- $val = 0x1;
- $bs->appendNum(4, $val);
- $bs->appendNum(QRspec::lengthIndicator(QR_MODE_NUM, $version), $this->size);
-
- for($i=0; $i<$words; $i++) {
- $val = (ord($this->data[$i*3 ]) - ord('0')) * 100;
- $val += (ord($this->data[$i*3+1]) - ord('0')) * 10;
- $val += (ord($this->data[$i*3+2]) - ord('0'));
- $bs->appendNum(10, $val);
- }
-
- if($this->size - $words * 3 == 1) {
- $val = ord($this->data[$words*3]) - ord('0');
- $bs->appendNum(4, $val);
- } else if($this->size - $words * 3 == 2) {
- $val = (ord($this->data[$words*3 ]) - ord('0')) * 10;
- $val += (ord($this->data[$words*3+1]) - ord('0'));
- $bs->appendNum(7, $val);
- }
-
- $this->bstream = $bs;
- return 0;
-
- } catch (Exception $e) {
- return -1;
- }
- }
-
- //----------------------------------------------------------------------
- public function encodeModeAn($version)
- {
- try {
- $words = (int)($this->size / 2);
- $bs = new QRbitstream();
-
- $bs->appendNum(4, 0x02);
- $bs->appendNum(QRspec::lengthIndicator(QR_MODE_AN, $version), $this->size);
-
- for($i=0; $i<$words; $i++) {
- $val = (int)QRinput::lookAnTable(ord($this->data[$i*2 ])) * 45;
- $val += (int)QRinput::lookAnTable(ord($this->data[$i*2+1]));
-
- $bs->appendNum(11, $val);
- }
-
- if($this->size & 1) {
- $val = QRinput::lookAnTable(ord($this->data[$words * 2]));
- $bs->appendNum(6, $val);
- }
-
- $this->bstream = $bs;
- return 0;
-
- } catch (Exception $e) {
- return -1;
- }
- }
-
- //----------------------------------------------------------------------
- public function encodeMode8($version)
- {
- try {
- $bs = new QRbitstream();
-
- $bs->appendNum(4, 0x4);
- $bs->appendNum(QRspec::lengthIndicator(QR_MODE_8, $version), $this->size);
-
- for($i=0; $i<$this->size; $i++) {
- $bs->appendNum(8, ord($this->data[$i]));
- }
-
- $this->bstream = $bs;
- return 0;
-
- } catch (Exception $e) {
- return -1;
- }
- }
-
- //----------------------------------------------------------------------
- public function encodeModeKanji($version)
- {
- try {
-
- $bs = new QRbitrtream();
-
- $bs->appendNum(4, 0x8);
- $bs->appendNum(QRspec::lengthIndicator(QR_MODE_KANJI, $version), (int)($this->size / 2));
-
- for($i=0; $i<$this->size; $i+=2) {
- $val = (ord($this->data[$i]) << 8) | ord($this->data[$i+1]);
- if($val <= 0x9ffc) {
- $val -= 0x8140;
- } else {
- $val -= 0xc140;
- }
-
- $h = ($val >> 8) * 0xc0;
- $val = ($val & 0xff) + $h;
-
- $bs->appendNum(13, $val);
- }
-
- $this->bstream = $bs;
- return 0;
-
- } catch (Exception $e) {
- return -1;
- }
- }
-
- //----------------------------------------------------------------------
- public function encodeModeStructure()
- {
- try {
- $bs = new QRbitstream();
-
- $bs->appendNum(4, 0x03);
- $bs->appendNum(4, ord($this->data[1]) - 1);
- $bs->appendNum(4, ord($this->data[0]) - 1);
- $bs->appendNum(8, ord($this->data[2]));
-
- $this->bstream = $bs;
- return 0;
-
- } catch (Exception $e) {
- return -1;
- }
- }
-
- //----------------------------------------------------------------------
- public function estimateBitStreamSizeOfEntry($version)
- {
- $bits = 0;
-
- if($version == 0)
- $version = 1;
-
- switch($this->mode) {
- case QR_MODE_NUM: $bits = QRinput::estimateBitsModeNum($this->size); break;
- case QR_MODE_AN: $bits = QRinput::estimateBitsModeAn($this->size); break;
- case QR_MODE_8: $bits = QRinput::estimateBitsMode8($this->size); break;
- case QR_MODE_KANJI: $bits = QRinput::estimateBitsModeKanji($this->size);break;
- case QR_MODE_STRUCTURE: return STRUCTURE_HEADER_BITS;
- default:
- return 0;
- }
-
- $l = QRspec::lengthIndicator($this->mode, $version);
- $m = 1 << $l;
- $num = (int)(($this->size + $m - 1) / $m);
-
- $bits += $num * (4 + $l);
-
- return $bits;
- }
-
- //----------------------------------------------------------------------
- public function encodeBitStream($version)
- {
- try {
-
- unset($this->bstream);
- $words = QRspec::maximumWords($this->mode, $version);
-
- if($this->size > $words) {
-
- $st1 = new QRinputItem($this->mode, $words, $this->data);
- $st2 = new QRinputItem($this->mode, $this->size - $words, array_slice($this->data, $words));
-
- $st1->encodeBitStream($version);
- $st2->encodeBitStream($version);
-
- $this->bstream = new QRbitstream();
- $this->bstream->append($st1->bstream);
- $this->bstream->append($st2->bstream);
-
- unset($st1);
- unset($st2);
-
- } else {
-
- $ret = 0;
-
- switch($this->mode) {
- case QR_MODE_NUM: $ret = $this->encodeModeNum($version); break;
- case QR_MODE_AN: $ret = $this->encodeModeAn($version); break;
- case QR_MODE_8: $ret = $this->encodeMode8($version); break;
- case QR_MODE_KANJI: $ret = $this->encodeModeKanji($version);break;
- case QR_MODE_STRUCTURE: $ret = $this->encodeModeStructure(); break;
-
- default:
- break;
- }
-
- if($ret < 0)
- return -1;
- }
-
- return $this->bstream->size();
-
- } catch (Exception $e) {
- return -1;
- }
- }
- };
-
- //##########################################################################
-
- class QRinput {
-
- public $items;
-
- private $version;
- private $level;
-
- //----------------------------------------------------------------------
- public function __construct($version = 0, $level = QR_ECLEVEL_L)
- {
- if ($version < 0 || $version > QRSPEC_VERSION_MAX || $level > QR_ECLEVEL_H) {
- throw new Exception('Invalid version no');
- return NULL;
- }
-
- $this->version = $version;
- $this->level = $level;
- }
-
- //----------------------------------------------------------------------
- public function getVersion()
- {
- return $this->version;
- }
-
- //----------------------------------------------------------------------
- public function setVersion($version)
- {
- if($version < 0 || $version > QRSPEC_VERSION_MAX) {
- throw new Exception('Invalid version no');
- return -1;
- }
-
- $this->version = $version;
-
- return 0;
- }
-
- //----------------------------------------------------------------------
- public function getErrorCorrectionLevel()
- {
- return $this->level;
- }
-
- //----------------------------------------------------------------------
- public function setErrorCorrectionLevel($level)
- {
- if($level > QR_ECLEVEL_H) {
- throw new Exception('Invalid ECLEVEL');
- return -1;
- }
-
- $this->level = $level;
-
- return 0;
- }
-
- //----------------------------------------------------------------------
- public function appendEntry(QRinputItem $entry)
- {
- $this->items[] = $entry;
- }
-
- //----------------------------------------------------------------------
- public function append($mode, $size, $data)
- {
- try {
- $entry = new QRinputItem($mode, $size, $data);
- $this->items[] = $entry;
- return 0;
- } catch (Exception $e) {
- return -1;
- }
- }
-
- //----------------------------------------------------------------------
-
- public function insertStructuredAppendHeader($size, $index, $parity)
- {
- if( $size > MAX_STRUCTURED_SYMBOLS ) {
- throw new Exception('insertStructuredAppendHeader wrong size');
- }
-
- if( $index <= 0 || $index > MAX_STRUCTURED_SYMBOLS ) {
- throw new Exception('insertStructuredAppendHeader wrong index');
- }
-
- $buf = array($size, $index, $parity);
-
- try {
- $entry = new QRinputItem(QR_MODE_STRUCTURE, 3, buf);
- array_unshift($this->items, $entry);
- return 0;
- } catch (Exception $e) {
- return -1;
- }
- }
-
- //----------------------------------------------------------------------
- public function calcParity()
- {
- $parity = 0;
-
- foreach($this->items as $item) {
- if($item->mode != QR_MODE_STRUCTURE) {
- for($i=$item->size-1; $i>=0; $i--) {
- $parity ^= $item->data[$i];
- }
- }
- }
-
- return $parity;
- }
-
- //----------------------------------------------------------------------
- public static function checkModeNum($size, $data)
- {
- for($i=0; $i<$size; $i++) {
- if((ord($data[$i]) < ord('0')) || (ord($data[$i]) > ord('9'))){
- return false;
- }
- }
-
- return true;
- }
-
- //----------------------------------------------------------------------
- public static function estimateBitsModeNum($size)
- {
- $w = (int)$size / 3;
- $bits = $w * 10;
-
- switch($size - $w * 3) {
- case 1:
- $bits += 4;
- break;
- case 2:
- $bits += 7;
- break;
- default:
- break;
- }
-
- return $bits;
- }
-
- //----------------------------------------------------------------------
- public static $anTable = array(
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 36, -1, -1, -1, 37, 38, -1, -1, -1, -1, 39, 40, -1, 41, 42, 43,
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 44, -1, -1, -1, -1, -1,
- -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
- );
-
- //----------------------------------------------------------------------
- public static function lookAnTable($c)
- {
- return (($c > 127)?-1:self::$anTable[$c]);
- }
-
- //----------------------------------------------------------------------
- public static function checkModeAn($size, $data)
- {
- for($i=0; $i<$size; $i++) {
- if (self::lookAnTable(ord($data[$i])) == -1) {
- return false;
- }
- }
-
- return true;
- }
-
- //----------------------------------------------------------------------
- public static function estimateBitsModeAn($size)
- {
- $w = (int)($size / 2);
- $bits = $w * 11;
-
- if($size & 1) {
- $bits += 6;
- }
-
- return $bits;
- }
-
- //----------------------------------------------------------------------
- public static function estimateBitsMode8($size)
- {
- return $size * 8;
- }
-
- //----------------------------------------------------------------------
- public function estimateBitsModeKanji($size)
- {
- return (int)(($size / 2) * 13);
- }
-
- //----------------------------------------------------------------------
- public static function checkModeKanji($size, $data)
- {
- if($size & 1)
- return false;
-
- for($i=0; $i<$size; $i+=2) {
- $val = (ord($data[$i]) << 8) | ord($data[$i+1]);
- if( $val < 0x8140
- || ($val > 0x9ffc && $val < 0xe040)
- || $val > 0xebbf) {
- return false;
- }
- }
-
- return true;
- }
-
- /***********************************************************************
- * Validation
- **********************************************************************/
-
- public static function check($mode, $size, $data)
- {
- if($size <= 0)
- return false;
-
- switch($mode) {
- case QR_MODE_NUM: return self::checkModeNum($size, $data); break;
- case QR_MODE_AN: return self::checkModeAn($size, $data); break;
- case QR_MODE_KANJI: return self::checkModeKanji($size, $data); break;
- case QR_MODE_8: return true; break;
- case QR_MODE_STRUCTURE: return true; break;
-
- default:
- break;
- }
-
- return false;
- }
-
-
- //----------------------------------------------------------------------
- public function estimateBitStreamSize($version)
- {
- $bits = 0;
-
- foreach($this->items as $item) {
- $bits += $item->estimateBitStreamSizeOfEntry($version);
- }
-
- return $bits;
- }
-
- //----------------------------------------------------------------------
- public function estimateVersion()
- {
- $version = 0;
- $prev = 0;
- do {
- $prev = $version;
- $bits = $this->estimateBitStreamSize($prev);
- $version = QRspec::getMinimumVersion((int)(($bits + 7) / 8), $this->level);
- if ($version < 0) {
- return -1;
- }
- } while ($version > $prev);
-
- return $version;
- }
-
- //----------------------------------------------------------------------
- public static function lengthOfCode($mode, $version, $bits)
- {
- $payload = $bits - 4 - QRspec::lengthIndicator($mode, $version);
- switch($mode) {
- case QR_MODE_NUM:
- $chunks = (int)($payload / 10);
- $remain = $payload - $chunks * 10;
- $size = $chunks * 3;
- if($remain >= 7) {
- $size += 2;
- } else if($remain >= 4) {
- $size += 1;
- }
- break;
- case QR_MODE_AN:
- $chunks = (int)($payload / 11);
- $remain = $payload - $chunks * 11;
- $size = $chunks * 2;
- if($remain >= 6)
- $size++;
- break;
- case QR_MODE_8:
- $size = (int)($payload / 8);
- break;
- case QR_MODE_KANJI:
- $size = (int)(($payload / 13) * 2);
- break;
- case QR_MODE_STRUCTURE:
- $size = (int)($payload / 8);
- break;
- default:
- $size = 0;
- break;
- }
-
- $maxsize = QRspec::maximumWords($mode, $version);
- if($size < 0) $size = 0;
- if($size > $maxsize) $size = $maxsize;
-
- return $size;
- }
-
- //----------------------------------------------------------------------
- public function createBitStream()
- {
- $total = 0;
-
- foreach($this->items as $item) {
- $bits = $item->encodeBitStream($this->version);
-
- if($bits < 0)
- return -1;
-
- $total += $bits;
- }
-
- return $total;
- }
-
- //----------------------------------------------------------------------
- public function convertData()
- {
- $ver = $this->estimateVersion();
- if($ver > $this->getVersion()) {
- $this->setVersion($ver);
- }
-
- for(;;) {
- $bits = $this->createBitStream();
-
- if($bits < 0)
- return -1;
-
- $ver = QRspec::getMinimumVersion((int)(($bits + 7) / 8), $this->level);
- if($ver < 0) {
- throw new Exception('WRONG VERSION');
- return -1;
- } else if($ver > $this->getVersion()) {
- $this->setVersion($ver);
- } else {
- break;
- }
- }
-
- return 0;
- }
-
- //----------------------------------------------------------------------
- public function appendPaddingBit(&$bstream)
- {
- $bits = $bstream->size();
- $maxwords = QRspec::getDataLength($this->version, $this->level);
- $maxbits = $maxwords * 8;
-
- if ($maxbits == $bits) {
- return 0;
- }
-
- if ($maxbits - $bits < 5) {
- return $bstream->appendNum($maxbits - $bits, 0);
- }
-
- $bits += 4;
- $words = (int)(($bits + 7) / 8);
-
- $padding = new QRbitstream();
- $ret = $padding->appendNum($words * 8 - $bits + 4, 0);
-
- if($ret < 0)
- return $ret;
-
- $padlen = $maxwords - $words;
-
- if($padlen > 0) {
-
- $padbuf = array();
- for($i=0; $i<$padlen; $i++) {
- $padbuf[$i] = ($i&1)?0x11:0xec;
- }
-
- $ret = $padding->appendBytes($padlen, $padbuf);
-
- if($ret < 0)
- return $ret;
-
- }
-
- $ret = $bstream->append($padding);
-
- return $ret;
- }
-
- //----------------------------------------------------------------------
- public function mergeBitStream()
- {
- if($this->convertData() < 0) {
- return null;
- }
-
- $bstream = new QRbitstream();
-
- foreach($this->items as $item) {
- $ret = $bstream->append($item->bstream);
- if($ret < 0) {
- return null;
- }
- }
-
- return $bstream;
- }
-
- //----------------------------------------------------------------------
- public function getBitStream()
- {
-
- $bstream = $this->mergeBitStream();
-
- if($bstream == null) {
- return null;
- }
-
- $ret = $this->appendPaddingBit($bstream);
- if($ret < 0) {
- return null;
- }
-
- return $bstream;
- }
-
- //----------------------------------------------------------------------
- public function getByteStream()
- {
- $bstream = $this->getBitStream();
- if($bstream == null) {
- return null;
- }
-
- return $bstream->toByte();
- }
- }
-
-
- \ No newline at end of file
diff --git a/lib/phpqrcode/qrlib.php b/lib/phpqrcode/qrlib.php
deleted file mode 100644
index d55c4af29..000000000
--- a/lib/phpqrcode/qrlib.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-/*
- * PHP QR Code encoder
- *
- * Root library file, prepares environment and includes dependencies
- *
- * Based on libqrencode C library distributed under LGPL 2.1
- * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <[email protected]>
- *
- * PHP QR Code is distributed under LGPL 3
- * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
- $QR_BASEDIR = dirname(__FILE__).DIRECTORY_SEPARATOR;
-
- // Required libs
-
- include $QR_BASEDIR."qrconst.php";
- include $QR_BASEDIR."qrconfig.php";
- include $QR_BASEDIR."qrtools.php";
- include $QR_BASEDIR."qrspec.php";
- include $QR_BASEDIR."qrimage.php";
- include $QR_BASEDIR."qrinput.php";
- include $QR_BASEDIR."qrbitstream.php";
- include $QR_BASEDIR."qrsplit.php";
- include $QR_BASEDIR."qrrscode.php";
- include $QR_BASEDIR."qrmask.php";
- include $QR_BASEDIR."qrencode.php";
-
diff --git a/lib/phpqrcode/qrmask.php b/lib/phpqrcode/qrmask.php
deleted file mode 100644
index 43d653ce3..000000000
--- a/lib/phpqrcode/qrmask.php
+++ /dev/null
@@ -1,328 +0,0 @@
-<?php
-/*
- * PHP QR Code encoder
- *
- * Masking
- *
- * Based on libqrencode C library distributed under LGPL 2.1
- * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <[email protected]>
- *
- * PHP QR Code is distributed under LGPL 3
- * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
- define('N1', 3);
- define('N2', 3);
- define('N3', 40);
- define('N4', 10);
-
- class QRmask {
-
- public $runLength = array();
-
- //----------------------------------------------------------------------
- public function __construct()
- {
- $this->runLength = array_fill(0, QRSPEC_WIDTH_MAX + 1, 0);
- }
-
- //----------------------------------------------------------------------
- public function writeFormatInformation($width, &$frame, $mask, $level)
- {
- $blacks = 0;
- $format = QRspec::getFormatInfo($mask, $level);
-
- for($i=0; $i<8; $i++) {
- if($format & 1) {
- $blacks += 2;
- $v = 0x85;
- } else {
- $v = 0x84;
- }
-
- $frame[8][$width - 1 - $i] = chr($v);
- if($i < 6) {
- $frame[$i][8] = chr($v);
- } else {
- $frame[$i + 1][8] = chr($v);
- }
- $format = $format >> 1;
- }
-
- for($i=0; $i<7; $i++) {
- if($format & 1) {
- $blacks += 2;
- $v = 0x85;
- } else {
- $v = 0x84;
- }
-
- $frame[$width - 7 + $i][8] = chr($v);
- if($i == 0) {
- $frame[8][7] = chr($v);
- } else {
- $frame[8][6 - $i] = chr($v);
- }
-
- $format = $format >> 1;
- }
-
- return $blacks;
- }
-
- //----------------------------------------------------------------------
- public function mask0($x, $y) { return ($x+$y)&1; }
- public function mask1($x, $y) { return ($y&1); }
- public function mask2($x, $y) { return ($x%3); }
- public function mask3($x, $y) { return ($x+$y)%3; }
- public function mask4($x, $y) { return (((int)($y/2))+((int)($x/3)))&1; }
- public function mask5($x, $y) { return (($x*$y)&1)+($x*$y)%3; }
- public function mask6($x, $y) { return ((($x*$y)&1)+($x*$y)%3)&1; }
- public function mask7($x, $y) { return ((($x*$y)%3)+(($x+$y)&1))&1; }
-
- //----------------------------------------------------------------------
- private function generateMaskNo($maskNo, $width, $frame)
- {
- $bitMask = array_fill(0, $width, array_fill(0, $width, 0));
-
- for($y=0; $y<$width; $y++) {
- for($x=0; $x<$width; $x++) {
- if(ord($frame[$y][$x]) & 0x80) {
- $bitMask[$y][$x] = 0;
- } else {
- $maskFunc = call_user_func(array($this, 'mask'.$maskNo), $x, $y);
- $bitMask[$y][$x] = ($maskFunc == 0)?1:0;
- }
-
- }
- }
-
- return $bitMask;
- }
-
- //----------------------------------------------------------------------
- public static function serial($bitFrame)
- {
- $codeArr = array();
-
- foreach ($bitFrame as $line)
- $codeArr[] = join('', $line);
-
- return gzcompress(join("\n", $codeArr), 9);
- }
-
- //----------------------------------------------------------------------
- public static function unserial($code)
- {
- $codeArr = array();
-
- $codeLines = explode("\n", gzuncompress($code));
- foreach ($codeLines as $line)
- $codeArr[] = str_split($line);
-
- return $codeArr;
- }
-
- //----------------------------------------------------------------------
- public function makeMaskNo($maskNo, $width, $s, &$d, $maskGenOnly = false)
- {
- $b = 0;
- $bitMask = array();
-
- $fileName = QR_CACHE_DIR.'mask_'.$maskNo.DIRECTORY_SEPARATOR.'mask_'.$width.'_'.$maskNo.'.dat';
-
- if (QR_CACHEABLE) {
- if (file_exists($fileName)) {
- $bitMask = self::unserial(file_get_contents($fileName));
- } else {
- $bitMask = $this->generateMaskNo($maskNo, $width, $s);
- if (!file_exists(QR_CACHE_DIR.'mask_'.$maskNo))
- mkdir(QR_CACHE_DIR.'mask_'.$maskNo);
- file_put_contents($fileName, self::serial($bitMask));
- }
- } else {
- $bitMask = $this->generateMaskNo($maskNo, $width, $s);
- }
-
- if ($maskGenOnly)
- return;
-
- $d = $s;
-
- for($y=0; $y<$width; $y++) {
- for($x=0; $x<$width; $x++) {
- if($bitMask[$y][$x] == 1) {
- $d[$y][$x] = chr(ord($s[$y][$x]) ^ (int)$bitMask[$y][$x]);
- }
- $b += (int)(ord($d[$y][$x]) & 1);
- }
- }
-
- return $b;
- }
-
- //----------------------------------------------------------------------
- public function makeMask($width, $frame, $maskNo, $level)
- {
- $masked = array_fill(0, $width, str_repeat("\0", $width));
- $this->makeMaskNo($maskNo, $width, $frame, $masked);
- $this->writeFormatInformation($width, $masked, $maskNo, $level);
-
- return $masked;
- }
-
- //----------------------------------------------------------------------
- public function calcN1N3($length)
- {
- $demerit = 0;
-
- for($i=0; $i<$length; $i++) {
-
- if($this->runLength[$i] >= 5) {
- $demerit += (N1 + ($this->runLength[$i] - 5));
- }
- if($i & 1) {
- if(($i >= 3) && ($i < ($length-2)) && ($this->runLength[$i] % 3 == 0)) {
- $fact = (int)($this->runLength[$i] / 3);
- if(($this->runLength[$i-2] == $fact) &&
- ($this->runLength[$i-1] == $fact) &&
- ($this->runLength[$i+1] == $fact) &&
- ($this->runLength[$i+2] == $fact)) {
- if(($this->runLength[$i-3] < 0) || ($this->runLength[$i-3] >= (4 * $fact))) {
- $demerit += N3;
- } else if((($i+3) >= $length) || ($this->runLength[$i+3] >= (4 * $fact))) {
- $demerit += N3;
- }
- }
- }
- }
- }
- return $demerit;
- }
-
- //----------------------------------------------------------------------
- public function evaluateSymbol($width, $frame)
- {
- $head = 0;
- $demerit = 0;
-
- for($y=0; $y<$width; $y++) {
- $head = 0;
- $this->runLength[0] = 1;
-
- $frameY = $frame[$y];
-
- if ($y>0)
- $frameYM = $frame[$y-1];
-
- for($x=0; $x<$width; $x++) {
- if(($x > 0) && ($y > 0)) {
- $b22 = ord($frameY[$x]) & ord($frameY[$x-1]) & ord($frameYM[$x]) & ord($frameYM[$x-1]);
- $w22 = ord($frameY[$x]) | ord($frameY[$x-1]) | ord($frameYM[$x]) | ord($frameYM[$x-1]);
-
- if(($b22 | ($w22 ^ 1))&1) {
- $demerit += N2;
- }
- }
- if(($x == 0) && (ord($frameY[$x]) & 1)) {
- $this->runLength[0] = -1;
- $head = 1;
- $this->runLength[$head] = 1;
- } else if($x > 0) {
- if((ord($frameY[$x]) ^ ord($frameY[$x-1])) & 1) {
- $head++;
- $this->runLength[$head] = 1;
- } else {
- $this->runLength[$head]++;
- }
- }
- }
-
- $demerit += $this->calcN1N3($head+1);
- }
-
- for($x=0; $x<$width; $x++) {
- $head = 0;
- $this->runLength[0] = 1;
-
- for($y=0; $y<$width; $y++) {
- if($y == 0 && (ord($frame[$y][$x]) & 1)) {
- $this->runLength[0] = -1;
- $head = 1;
- $this->runLength[$head] = 1;
- } else if($y > 0) {
- if((ord($frame[$y][$x]) ^ ord($frame[$y-1][$x])) & 1) {
- $head++;
- $this->runLength[$head] = 1;
- } else {
- $this->runLength[$head]++;
- }
- }
- }
-
- $demerit += $this->calcN1N3($head+1);
- }
-
- return $demerit;
- }
-
-
- //----------------------------------------------------------------------
- public function mask($width, $frame, $level)
- {
- $minDemerit = PHP_INT_MAX;
- $bestMaskNum = 0;
- $bestMask = array();
-
- $checked_masks = array(0,1,2,3,4,5,6,7);
-
- if (QR_FIND_FROM_RANDOM !== false) {
-
- $howManuOut = 8-(QR_FIND_FROM_RANDOM % 9);
- for ($i = 0; $i < $howManuOut; $i++) {
- $remPos = rand (0, count($checked_masks)-1);
- unset($checked_masks[$remPos]);
- $checked_masks = array_values($checked_masks);
- }
-
- }
-
- $bestMask = $frame;
-
- foreach($checked_masks as $i) {
- $mask = array_fill(0, $width, str_repeat("\0", $width));
-
- $demerit = 0;
- $blacks = 0;
- $blacks = $this->makeMaskNo($i, $width, $frame, $mask);
- $blacks += $this->writeFormatInformation($width, $mask, $i, $level);
- $blacks = (int)(100 * $blacks / ($width * $width));
- $demerit = (int)((int)(abs($blacks - 50) / 5) * N4);
- $demerit += $this->evaluateSymbol($width, $mask);
-
- if($demerit < $minDemerit) {
- $minDemerit = $demerit;
- $bestMask = $mask;
- $bestMaskNum = $i;
- }
- }
-
- return $bestMask;
- }
-
- //----------------------------------------------------------------------
- }
diff --git a/lib/phpqrcode/qrrscode.php b/lib/phpqrcode/qrrscode.php
deleted file mode 100644
index 591129a32..000000000
--- a/lib/phpqrcode/qrrscode.php
+++ /dev/null
@@ -1,210 +0,0 @@
-<?php
-/*
- * PHP QR Code encoder
- *
- * Reed-Solomon error correction support
- *
- * Copyright (C) 2002, 2003, 2004, 2006 Phil Karn, KA9Q
- * (libfec is released under the GNU Lesser General Public License.)
- *
- * Based on libqrencode C library distributed under LGPL 2.1
- * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <[email protected]>
- *
- * PHP QR Code is distributed under LGPL 3
- * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
- class QRrsItem {
-
- public $mm; // Bits per symbol
- public $nn; // Symbols per block (= (1<<mm)-1)
- public $alpha_to = array(); // log lookup table
- public $index_of = array(); // Antilog lookup table
- public $genpoly = array(); // Generator polynomial
- public $nroots; // Number of generator roots = number of parity symbols
- public $fcr; // First consecutive root, index form
- public $prim; // Primitive element, index form
- public $iprim; // prim-th root of 1, index form
- public $pad; // Padding bytes in shortened block
- public $gfpoly;
-
- //----------------------------------------------------------------------
- public function modnn($x)
- {
- while ($x >= $this->nn) {
- $x -= $this->nn;
- $x = ($x >> $this->mm) + ($x & $this->nn);
- }
-
- return $x;
- }
-
- //----------------------------------------------------------------------
- public static function init_rs_char($symsize, $gfpoly, $fcr, $prim, $nroots, $pad)
- {
- // Common code for intializing a Reed-Solomon control block (char or int symbols)
- // Copyright 2004 Phil Karn, KA9Q
- // May be used under the terms of the GNU Lesser General Public License (LGPL)
-
- $rs = null;
-
- // Check parameter ranges
- if($symsize < 0 || $symsize > 8) return $rs;
- if($fcr < 0 || $fcr >= (1<<$symsize)) return $rs;
- if($prim <= 0 || $prim >= (1<<$symsize)) return $rs;
- if($nroots < 0 || $nroots >= (1<<$symsize)) return $rs; // Can't have more roots than symbol values!
- if($pad < 0 || $pad >= ((1<<$symsize) -1 - $nroots)) return $rs; // Too much padding
-
- $rs = new QRrsItem();
- $rs->mm = $symsize;
- $rs->nn = (1<<$symsize)-1;
- $rs->pad = $pad;
-
- $rs->alpha_to = array_fill(0, $rs->nn+1, 0);
- $rs->index_of = array_fill(0, $rs->nn+1, 0);
-
- // PHP style macro replacement ;)
- $NN =& $rs->nn;
- $A0 =& $NN;
-
- // Generate Galois field lookup tables
- $rs->index_of[0] = $A0; // log(zero) = -inf
- $rs->alpha_to[$A0] = 0; // alpha**-inf = 0
- $sr = 1;
-
- for($i=0; $i<$rs->nn; $i++) {
- $rs->index_of[$sr] = $i;
- $rs->alpha_to[$i] = $sr;
- $sr <<= 1;
- if($sr & (1<<$symsize)) {
- $sr ^= $gfpoly;
- }
- $sr &= $rs->nn;
- }
-
- if($sr != 1){
- // field generator polynomial is not primitive!
- $rs = NULL;
- return $rs;
- }
-
- /* Form RS code generator polynomial from its roots */
- $rs->genpoly = array_fill(0, $nroots+1, 0);
-
- $rs->fcr = $fcr;
- $rs->prim = $prim;
- $rs->nroots = $nroots;
- $rs->gfpoly = $gfpoly;
-
- /* Find prim-th root of 1, used in decoding */
- for($iprim=1;($iprim % $prim) != 0;$iprim += $rs->nn)
- ; // intentional empty-body loop!
-
- $rs->iprim = (int)($iprim / $prim);
- $rs->genpoly[0] = 1;
-
- for ($i = 0,$root=$fcr*$prim; $i < $nroots; $i++, $root += $prim) {
- $rs->genpoly[$i+1] = 1;
-
- // Multiply rs->genpoly[] by @**(root + x)
- for ($j = $i; $j > 0; $j--) {
- if ($rs->genpoly[$j] != 0) {
- $rs->genpoly[$j] = $rs->genpoly[$j-1] ^ $rs->alpha_to[$rs->modnn($rs->index_of[$rs->genpoly[$j]] + $root)];
- } else {
- $rs->genpoly[$j] = $rs->genpoly[$j-1];
- }
- }
- // rs->genpoly[0] can never be zero
- $rs->genpoly[0] = $rs->alpha_to[$rs->modnn($rs->index_of[$rs->genpoly[0]] + $root)];
- }
-
- // convert rs->genpoly[] to index form for quicker encoding
- for ($i = 0; $i <= $nroots; $i++)
- $rs->genpoly[$i] = $rs->index_of[$rs->genpoly[$i]];
-
- return $rs;
- }
-
- //----------------------------------------------------------------------
- public function encode_rs_char($data, &$parity)
- {
- $MM =& $this->mm;
- $NN =& $this->nn;
- $ALPHA_TO =& $this->alpha_to;
- $INDEX_OF =& $this->index_of;
- $GENPOLY =& $this->genpoly;
- $NROOTS =& $this->nroots;
- $FCR =& $this->fcr;
- $PRIM =& $this->prim;
- $IPRIM =& $this->iprim;
- $PAD =& $this->pad;
- $A0 =& $NN;
-
- $parity = array_fill(0, $NROOTS, 0);
-
- for($i=0; $i< ($NN-$NROOTS-$PAD); $i++) {
-
- $feedback = $INDEX_OF[$data[$i] ^ $parity[0]];
- if($feedback != $A0) {
- // feedback term is non-zero
-
- // This line is unnecessary when GENPOLY[NROOTS] is unity, as it must
- // always be for the polynomials constructed by init_rs()
- $feedback = $this->modnn($NN - $GENPOLY[$NROOTS] + $feedback);
-
- for($j=1;$j<$NROOTS;$j++) {
- $parity[$j] ^= $ALPHA_TO[$this->modnn($feedback + $GENPOLY[$NROOTS-$j])];
- }
- }
-
- // Shift
- array_shift($parity);
- if($feedback != $A0) {
- array_push($parity, $ALPHA_TO[$this->modnn($feedback + $GENPOLY[0])]);
- } else {
- array_push($parity, 0);
- }
- }
- }
- }
-
- //##########################################################################
-
- class QRrs {
-
- public static $items = array();
-
- //----------------------------------------------------------------------
- public static function init_rs($symsize, $gfpoly, $fcr, $prim, $nroots, $pad)
- {
- foreach(self::$items as $rs) {
- if($rs->pad != $pad) continue;
- if($rs->nroots != $nroots) continue;
- if($rs->mm != $symsize) continue;
- if($rs->gfpoly != $gfpoly) continue;
- if($rs->fcr != $fcr) continue;
- if($rs->prim != $prim) continue;
-
- return $rs;
- }
-
- $rs = QRrsItem::init_rs_char($symsize, $gfpoly, $fcr, $prim, $nroots, $pad);
- array_unshift(self::$items, $rs);
-
- return $rs;
- }
- } \ No newline at end of file
diff --git a/lib/phpqrcode/qrspec.php b/lib/phpqrcode/qrspec.php
deleted file mode 100644
index 92aea0c78..000000000
--- a/lib/phpqrcode/qrspec.php
+++ /dev/null
@@ -1,592 +0,0 @@
-<?php
-/*
- * PHP QR Code encoder
- *
- * QR Code specifications
- *
- * Based on libqrencode C library distributed under LGPL 2.1
- * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <[email protected]>
- *
- * PHP QR Code is distributed under LGPL 3
- * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
- *
- * The following data / specifications are taken from
- * "Two dimensional symbol -- QR-code -- Basic Specification" (JIS X0510:2004)
- * or
- * "Automatic identification and data capture techniques --
- * QR Code 2005 bar code symbology specification" (ISO/IEC 18004:2006)
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
- define('QRSPEC_VERSION_MAX', 40);
- define('QRSPEC_WIDTH_MAX', 177);
-
- define('QRCAP_WIDTH', 0);
- define('QRCAP_WORDS', 1);
- define('QRCAP_REMINDER', 2);
- define('QRCAP_EC', 3);
-
- class QRspec {
-
- public static $capacity = array(
- array( 0, 0, 0, array( 0, 0, 0, 0)),
- array( 21, 26, 0, array( 7, 10, 13, 17)), // 1
- array( 25, 44, 7, array( 10, 16, 22, 28)),
- array( 29, 70, 7, array( 15, 26, 36, 44)),
- array( 33, 100, 7, array( 20, 36, 52, 64)),
- array( 37, 134, 7, array( 26, 48, 72, 88)), // 5
- array( 41, 172, 7, array( 36, 64, 96, 112)),
- array( 45, 196, 0, array( 40, 72, 108, 130)),
- array( 49, 242, 0, array( 48, 88, 132, 156)),
- array( 53, 292, 0, array( 60, 110, 160, 192)),
- array( 57, 346, 0, array( 72, 130, 192, 224)), //10
- array( 61, 404, 0, array( 80, 150, 224, 264)),
- array( 65, 466, 0, array( 96, 176, 260, 308)),
- array( 69, 532, 0, array( 104, 198, 288, 352)),
- array( 73, 581, 3, array( 120, 216, 320, 384)),
- array( 77, 655, 3, array( 132, 240, 360, 432)), //15
- array( 81, 733, 3, array( 144, 280, 408, 480)),
- array( 85, 815, 3, array( 168, 308, 448, 532)),
- array( 89, 901, 3, array( 180, 338, 504, 588)),
- array( 93, 991, 3, array( 196, 364, 546, 650)),
- array( 97, 1085, 3, array( 224, 416, 600, 700)), //20
- array(101, 1156, 4, array( 224, 442, 644, 750)),
- array(105, 1258, 4, array( 252, 476, 690, 816)),
- array(109, 1364, 4, array( 270, 504, 750, 900)),
- array(113, 1474, 4, array( 300, 560, 810, 960)),
- array(117, 1588, 4, array( 312, 588, 870, 1050)), //25
- array(121, 1706, 4, array( 336, 644, 952, 1110)),
- array(125, 1828, 4, array( 360, 700, 1020, 1200)),
- array(129, 1921, 3, array( 390, 728, 1050, 1260)),
- array(133, 2051, 3, array( 420, 784, 1140, 1350)),
- array(137, 2185, 3, array( 450, 812, 1200, 1440)), //30
- array(141, 2323, 3, array( 480, 868, 1290, 1530)),
- array(145, 2465, 3, array( 510, 924, 1350, 1620)),
- array(149, 2611, 3, array( 540, 980, 1440, 1710)),
- array(153, 2761, 3, array( 570, 1036, 1530, 1800)),
- array(157, 2876, 0, array( 570, 1064, 1590, 1890)), //35
- array(161, 3034, 0, array( 600, 1120, 1680, 1980)),
- array(165, 3196, 0, array( 630, 1204, 1770, 2100)),
- array(169, 3362, 0, array( 660, 1260, 1860, 2220)),
- array(173, 3532, 0, array( 720, 1316, 1950, 2310)),
- array(177, 3706, 0, array( 750, 1372, 2040, 2430)) //40
- );
-
- //----------------------------------------------------------------------
- public static function getDataLength($version, $level)
- {
- return self::$capacity[$version][QRCAP_WORDS] - self::$capacity[$version][QRCAP_EC][$level];
- }
-
- //----------------------------------------------------------------------
- public static function getECCLength($version, $level)
- {
- return self::$capacity[$version][QRCAP_EC][$level];
- }
-
- //----------------------------------------------------------------------
- public static function getWidth($version)
- {
- return self::$capacity[$version][QRCAP_WIDTH];
- }
-
- //----------------------------------------------------------------------
- public static function getRemainder($version)
- {
- return self::$capacity[$version][QRCAP_REMINDER];
- }
-
- //----------------------------------------------------------------------
- public static function getMinimumVersion($size, $level)
- {
-
- for($i=1; $i<= QRSPEC_VERSION_MAX; $i++) {
- $words = self::$capacity[$i][QRCAP_WORDS] - self::$capacity[$i][QRCAP_EC][$level];
- if($words >= $size)
- return $i;
- }
-
- return -1;
- }
-
- //######################################################################
-
- public static $lengthTableBits = array(
- array(10, 12, 14),
- array( 9, 11, 13),
- array( 8, 16, 16),
- array( 8, 10, 12)
- );
-
- //----------------------------------------------------------------------
- public static function lengthIndicator($mode, $version)
- {
- if ($mode == QR_MODE_STRUCTURE)
- return 0;
-
- if ($version <= 9) {
- $l = 0;
- } else if ($version <= 26) {
- $l = 1;
- } else {
- $l = 2;
- }
-
- return self::$lengthTableBits[$mode][$l];
- }
-
- //----------------------------------------------------------------------
- public static function maximumWords($mode, $version)
- {
- if($mode == QR_MODE_STRUCTURE)
- return 3;
-
- if($version <= 9) {
- $l = 0;
- } else if($version <= 26) {
- $l = 1;
- } else {
- $l = 2;
- }
-
- $bits = self::$lengthTableBits[$mode][$l];
- $words = (1 << $bits) - 1;
-
- if($mode == QR_MODE_KANJI) {
- $words *= 2; // the number of bytes is required
- }
-
- return $words;
- }
-
- // Error correction code -----------------------------------------------
- // Table of the error correction code (Reed-Solomon block)
- // See Table 12-16 (pp.30-36), JIS X0510:2004.
-
- public static $eccTable = array(
- array(array( 0, 0), array( 0, 0), array( 0, 0), array( 0, 0)),
- array(array( 1, 0), array( 1, 0), array( 1, 0), array( 1, 0)), // 1
- array(array( 1, 0), array( 1, 0), array( 1, 0), array( 1, 0)),
- array(array( 1, 0), array( 1, 0), array( 2, 0), array( 2, 0)),
- array(array( 1, 0), array( 2, 0), array( 2, 0), array( 4, 0)),
- array(array( 1, 0), array( 2, 0), array( 2, 2), array( 2, 2)), // 5
- array(array( 2, 0), array( 4, 0), array( 4, 0), array( 4, 0)),
- array(array( 2, 0), array( 4, 0), array( 2, 4), array( 4, 1)),
- array(array( 2, 0), array( 2, 2), array( 4, 2), array( 4, 2)),
- array(array( 2, 0), array( 3, 2), array( 4, 4), array( 4, 4)),
- array(array( 2, 2), array( 4, 1), array( 6, 2), array( 6, 2)), //10
- array(array( 4, 0), array( 1, 4), array( 4, 4), array( 3, 8)),
- array(array( 2, 2), array( 6, 2), array( 4, 6), array( 7, 4)),
- array(array( 4, 0), array( 8, 1), array( 8, 4), array(12, 4)),
- array(array( 3, 1), array( 4, 5), array(11, 5), array(11, 5)),
- array(array( 5, 1), array( 5, 5), array( 5, 7), array(11, 7)), //15
- array(array( 5, 1), array( 7, 3), array(15, 2), array( 3, 13)),
- array(array( 1, 5), array(10, 1), array( 1, 15), array( 2, 17)),
- array(array( 5, 1), array( 9, 4), array(17, 1), array( 2, 19)),
- array(array( 3, 4), array( 3, 11), array(17, 4), array( 9, 16)),
- array(array( 3, 5), array( 3, 13), array(15, 5), array(15, 10)), //20
- array(array( 4, 4), array(17, 0), array(17, 6), array(19, 6)),
- array(array( 2, 7), array(17, 0), array( 7, 16), array(34, 0)),
- array(array( 4, 5), array( 4, 14), array(11, 14), array(16, 14)),
- array(array( 6, 4), array( 6, 14), array(11, 16), array(30, 2)),
- array(array( 8, 4), array( 8, 13), array( 7, 22), array(22, 13)), //25
- array(array(10, 2), array(19, 4), array(28, 6), array(33, 4)),
- array(array( 8, 4), array(22, 3), array( 8, 26), array(12, 28)),
- array(array( 3, 10), array( 3, 23), array( 4, 31), array(11, 31)),
- array(array( 7, 7), array(21, 7), array( 1, 37), array(19, 26)),
- array(array( 5, 10), array(19, 10), array(15, 25), array(23, 25)), //30
- array(array(13, 3), array( 2, 29), array(42, 1), array(23, 28)),
- array(array(17, 0), array(10, 23), array(10, 35), array(19, 35)),
- array(array(17, 1), array(14, 21), array(29, 19), array(11, 46)),
- array(array(13, 6), array(14, 23), array(44, 7), array(59, 1)),
- array(array(12, 7), array(12, 26), array(39, 14), array(22, 41)), //35
- array(array( 6, 14), array( 6, 34), array(46, 10), array( 2, 64)),
- array(array(17, 4), array(29, 14), array(49, 10), array(24, 46)),
- array(array( 4, 18), array(13, 32), array(48, 14), array(42, 32)),
- array(array(20, 4), array(40, 7), array(43, 22), array(10, 67)),
- array(array(19, 6), array(18, 31), array(34, 34), array(20, 61)),//40
- );
-
- //----------------------------------------------------------------------
- // CACHEABLE!!!
-
- public static function getEccSpec($version, $level, array &$spec)
- {
- if (count($spec) < 5) {
- $spec = array(0,0,0,0,0);
- }
-
- $b1 = self::$eccTable[$version][$level][0];
- $b2 = self::$eccTable[$version][$level][1];
- $data = self::getDataLength($version, $level);
- $ecc = self::getECCLength($version, $level);
-
- if($b2 == 0) {
- $spec[0] = $b1;
- $spec[1] = (int)($data / $b1);
- $spec[2] = (int)($ecc / $b1);
- $spec[3] = 0;
- $spec[4] = 0;
- } else {
- $spec[0] = $b1;
- $spec[1] = (int)($data / ($b1 + $b2));
- $spec[2] = (int)($ecc / ($b1 + $b2));
- $spec[3] = $b2;
- $spec[4] = $spec[1] + 1;
- }
- }
-
- // Alignment pattern ---------------------------------------------------
-
- // Positions of alignment patterns.
- // This array includes only the second and the third position of the
- // alignment patterns. Rest of them can be calculated from the distance
- // between them.
-
- // See Table 1 in Appendix E (pp.71) of JIS X0510:2004.
-
- public static $alignmentPattern = array(
- array( 0, 0),
- array( 0, 0), array(18, 0), array(22, 0), array(26, 0), array(30, 0), // 1- 5
- array(34, 0), array(22, 38), array(24, 42), array(26, 46), array(28, 50), // 6-10
- array(30, 54), array(32, 58), array(34, 62), array(26, 46), array(26, 48), //11-15
- array(26, 50), array(30, 54), array(30, 56), array(30, 58), array(34, 62), //16-20
- array(28, 50), array(26, 50), array(30, 54), array(28, 54), array(32, 58), //21-25
- array(30, 58), array(34, 62), array(26, 50), array(30, 54), array(26, 52), //26-30
- array(30, 56), array(34, 60), array(30, 58), array(34, 62), array(30, 54), //31-35
- array(24, 50), array(28, 54), array(32, 58), array(26, 54), array(30, 58), //35-40
- );
-
-
- /** --------------------------------------------------------------------
- * Put an alignment marker.
- * @param frame
- * @param width
- * @param ox,oy center coordinate of the pattern
- */
- public static function putAlignmentMarker(array &$frame, $ox, $oy)
- {
- $finder = array(
- "\xa1\xa1\xa1\xa1\xa1",
- "\xa1\xa0\xa0\xa0\xa1",
- "\xa1\xa0\xa1\xa0\xa1",
- "\xa1\xa0\xa0\xa0\xa1",
- "\xa1\xa1\xa1\xa1\xa1"
- );
-
- $yStart = $oy-2;
- $xStart = $ox-2;
-
- for($y=0; $y<5; $y++) {
- QRstr::set($frame, $xStart, $yStart+$y, $finder[$y]);
- }
- }
-
- //----------------------------------------------------------------------
- public static function putAlignmentPattern($version, &$frame, $width)
- {
- if($version < 2)
- return;
-
- $d = self::$alignmentPattern[$version][1] - self::$alignmentPattern[$version][0];
- if($d < 0) {
- $w = 2;
- } else {
- $w = (int)(($width - self::$alignmentPattern[$version][0]) / $d + 2);
- }
-
- if($w * $w - 3 == 1) {
- $x = self::$alignmentPattern[$version][0];
- $y = self::$alignmentPattern[$version][0];
- self::putAlignmentMarker($frame, $x, $y);
- return;
- }
-
- $cx = self::$alignmentPattern[$version][0];
- for($x=1; $x<$w - 1; $x++) {
- self::putAlignmentMarker($frame, 6, $cx);
- self::putAlignmentMarker($frame, $cx, 6);
- $cx += $d;
- }
-
- $cy = self::$alignmentPattern[$version][0];
- for($y=0; $y<$w-1; $y++) {
- $cx = self::$alignmentPattern[$version][0];
- for($x=0; $x<$w-1; $x++) {
- self::putAlignmentMarker($frame, $cx, $cy);
- $cx += $d;
- }
- $cy += $d;
- }
- }
-
- // Version information pattern -----------------------------------------
-
- // Version information pattern (BCH coded).
- // See Table 1 in Appendix D (pp.68) of JIS X0510:2004.
-
- // size: [QRSPEC_VERSION_MAX - 6]
-
- public static $versionPattern = array(
- 0x07c94, 0x085bc, 0x09a99, 0x0a4d3, 0x0bbf6, 0x0c762, 0x0d847, 0x0e60d,
- 0x0f928, 0x10b78, 0x1145d, 0x12a17, 0x13532, 0x149a6, 0x15683, 0x168c9,
- 0x177ec, 0x18ec4, 0x191e1, 0x1afab, 0x1b08e, 0x1cc1a, 0x1d33f, 0x1ed75,
- 0x1f250, 0x209d5, 0x216f0, 0x228ba, 0x2379f, 0x24b0b, 0x2542e, 0x26a64,
- 0x27541, 0x28c69
- );
-
- //----------------------------------------------------------------------
- public static function getVersionPattern($version)
- {
- if($version < 7 || $version > QRSPEC_VERSION_MAX)
- return 0;
-
- return self::$versionPattern[$version -7];
- }
-
- // Format information --------------------------------------------------
- // See calcFormatInfo in tests/test_qrspec.c (orginal qrencode c lib)
-
- public static $formatInfo = array(
- array(0x77c4, 0x72f3, 0x7daa, 0x789d, 0x662f, 0x6318, 0x6c41, 0x6976),
- array(0x5412, 0x5125, 0x5e7c, 0x5b4b, 0x45f9, 0x40ce, 0x4f97, 0x4aa0),
- array(0x355f, 0x3068, 0x3f31, 0x3a06, 0x24b4, 0x2183, 0x2eda, 0x2bed),
- array(0x1689, 0x13be, 0x1ce7, 0x19d0, 0x0762, 0x0255, 0x0d0c, 0x083b)
- );
-
- public static function getFormatInfo($mask, $level)
- {
- if($mask < 0 || $mask > 7)
- return 0;
-
- if($level < 0 || $level > 3)
- return 0;
-
- return self::$formatInfo[$level][$mask];
- }
-
- // Frame ---------------------------------------------------------------
- // Cache of initial frames.
-
- public static $frames = array();
-
- /** --------------------------------------------------------------------
- * Put a finder pattern.
- * @param frame
- * @param width
- * @param ox,oy upper-left coordinate of the pattern
- */
- public static function putFinderPattern(&$frame, $ox, $oy)
- {
- $finder = array(
- "\xc1\xc1\xc1\xc1\xc1\xc1\xc1",
- "\xc1\xc0\xc0\xc0\xc0\xc0\xc1",
- "\xc1\xc0\xc1\xc1\xc1\xc0\xc1",
- "\xc1\xc0\xc1\xc1\xc1\xc0\xc1",
- "\xc1\xc0\xc1\xc1\xc1\xc0\xc1",
- "\xc1\xc0\xc0\xc0\xc0\xc0\xc1",
- "\xc1\xc1\xc1\xc1\xc1\xc1\xc1"
- );
-
- for($y=0; $y<7; $y++) {
- QRstr::set($frame, $ox, $oy+$y, $finder[$y]);
- }
- }
-
- //----------------------------------------------------------------------
- public static function createFrame($version)
- {
- $width = self::$capacity[$version][QRCAP_WIDTH];
- $frameLine = str_repeat ("\0", $width);
- $frame = array_fill(0, $width, $frameLine);
-
- // Finder pattern
- self::putFinderPattern($frame, 0, 0);
- self::putFinderPattern($frame, $width - 7, 0);
- self::putFinderPattern($frame, 0, $width - 7);
-
- // Separator
- $yOffset = $width - 7;
-
- for($y=0; $y<7; $y++) {
- $frame[$y][7] = "\xc0";
- $frame[$y][$width - 8] = "\xc0";
- $frame[$yOffset][7] = "\xc0";
- $yOffset++;
- }
-
- $setPattern = str_repeat("\xc0", 8);
-
- QRstr::set($frame, 0, 7, $setPattern);
- QRstr::set($frame, $width-8, 7, $setPattern);
- QRstr::set($frame, 0, $width - 8, $setPattern);
-
- // Format info
- $setPattern = str_repeat("\x84", 9);
- QRstr::set($frame, 0, 8, $setPattern);
- QRstr::set($frame, $width - 8, 8, $setPattern, 8);
-
- $yOffset = $width - 8;
-
- for($y=0; $y<8; $y++,$yOffset++) {
- $frame[$y][8] = "\x84";
- $frame[$yOffset][8] = "\x84";
- }
-
- // Timing pattern
-
- for($i=1; $i<$width-15; $i++) {
- $frame[6][7+$i] = chr(0x90 | ($i & 1));
- $frame[7+$i][6] = chr(0x90 | ($i & 1));
- }
-
- // Alignment pattern
- self::putAlignmentPattern($version, $frame, $width);
-
- // Version information
- if($version >= 7) {
- $vinf = self::getVersionPattern($version);
-
- $v = $vinf;
-
- for($x=0; $x<6; $x++) {
- for($y=0; $y<3; $y++) {
- $frame[($width - 11)+$y][$x] = chr(0x88 | ($v & 1));
- $v = $v >> 1;
- }
- }
-
- $v = $vinf;
- for($y=0; $y<6; $y++) {
- for($x=0; $x<3; $x++) {
- $frame[$y][$x+($width - 11)] = chr(0x88 | ($v & 1));
- $v = $v >> 1;
- }
- }
- }
-
- // and a little bit...
- $frame[$width - 8][8] = "\x81";
-
- return $frame;
- }
-
- //----------------------------------------------------------------------
- public static function debug($frame, $binary_mode = false)
- {
- if ($binary_mode) {
-
- foreach ($frame as &$frameLine) {
- $frameLine = join('<span class="m">&nbsp;&nbsp;</span>', explode('0', $frameLine));
- $frameLine = join('&#9608;&#9608;', explode('1', $frameLine));
- }
-
- ?>
- <style>
- .m { background-color: white; }
- </style>
- <?php
- echo '<pre><tt><br/ ><br/ ><br/ >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
- echo join("<br/ >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;", $frame);
- echo '</tt></pre><br/ ><br/ ><br/ ><br/ ><br/ ><br/ >';
-
- } else {
-
- foreach ($frame as &$frameLine) {
- $frameLine = join('<span class="m">&nbsp;</span>', explode("\xc0", $frameLine));
- $frameLine = join('<span class="m">&#9618;</span>', explode("\xc1", $frameLine));
- $frameLine = join('<span class="p">&nbsp;</span>', explode("\xa0", $frameLine));
- $frameLine = join('<span class="p">&#9618;</span>', explode("\xa1", $frameLine));
- $frameLine = join('<span class="s">&#9671;</span>', explode("\x84", $frameLine)); //format 0
- $frameLine = join('<span class="s">&#9670;</span>', explode("\x85", $frameLine)); //format 1
- $frameLine = join('<span class="x">&#9762;</span>', explode("\x81", $frameLine)); //special bit
- $frameLine = join('<span class="c">&nbsp;</span>', explode("\x90", $frameLine)); //clock 0
- $frameLine = join('<span class="c">&#9719;</span>', explode("\x91", $frameLine)); //clock 1
- $frameLine = join('<span class="f">&nbsp;</span>', explode("\x88", $frameLine)); //version
- $frameLine = join('<span class="f">&#9618;</span>', explode("\x89", $frameLine)); //version
- $frameLine = join('&#9830;', explode("\x01", $frameLine));
- $frameLine = join('&#8901;', explode("\0", $frameLine));
- }
-
- ?>
- <style>
- .p { background-color: yellow; }
- .m { background-color: #00FF00; }
- .s { background-color: #FF0000; }
- .c { background-color: aqua; }
- .x { background-color: pink; }
- .f { background-color: gold; }
- </style>
- <?php
- echo "<pre><tt>";
- echo join("<br/ >", $frame);
- echo "</tt></pre>";
-
- }
- }
-
- //----------------------------------------------------------------------
- public static function serial($frame)
- {
- return gzcompress(join("\n", $frame), 9);
- }
-
- //----------------------------------------------------------------------
- public static function unserial($code)
- {
- return explode("\n", gzuncompress($code));
- }
-
- //----------------------------------------------------------------------
- public static function newFrame($version)
- {
- if($version < 1 || $version > QRSPEC_VERSION_MAX)
- return null;
-
- if(!isset(self::$frames[$version])) {
-
- $fileName = QR_CACHE_DIR.'frame_'.$version.'.dat';
-
- if (QR_CACHEABLE) {
- if (file_exists($fileName)) {
- self::$frames[$version] = self::unserial(file_get_contents($fileName));
- } else {
- self::$frames[$version] = self::createFrame($version);
- file_put_contents($fileName, self::serial(self::$frames[$version]));
- }
- } else {
- self::$frames[$version] = self::createFrame($version);
- }
- }
-
- if(is_null(self::$frames[$version]))
- return null;
-
- return self::$frames[$version];
- }
-
- //----------------------------------------------------------------------
- public static function rsBlockNum($spec) { return $spec[0] + $spec[3]; }
- public static function rsBlockNum1($spec) { return $spec[0]; }
- public static function rsDataCodes1($spec) { return $spec[1]; }
- public static function rsEccCodes1($spec) { return $spec[2]; }
- public static function rsBlockNum2($spec) { return $spec[3]; }
- public static function rsDataCodes2($spec) { return $spec[4]; }
- public static function rsEccCodes2($spec) { return $spec[2]; }
- public static function rsDataLength($spec) { return ($spec[0] * $spec[1]) + ($spec[3] * $spec[4]); }
- public static function rsEccLength($spec) { return ($spec[0] + $spec[3]) * $spec[2]; }
-
- } \ No newline at end of file
diff --git a/lib/phpqrcode/qrsplit.php b/lib/phpqrcode/qrsplit.php
deleted file mode 100644
index 1f9f65c3b..000000000
--- a/lib/phpqrcode/qrsplit.php
+++ /dev/null
@@ -1,311 +0,0 @@
-<?php
-/*
- * PHP QR Code encoder
- *
- * Input splitting classes
- *
- * Based on libqrencode C library distributed under LGPL 2.1
- * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <[email protected]>
- *
- * PHP QR Code is distributed under LGPL 3
- * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
- *
- * The following data / specifications are taken from
- * "Two dimensional symbol -- QR-code -- Basic Specification" (JIS X0510:2004)
- * or
- * "Automatic identification and data capture techniques --
- * QR Code 2005 bar code symbology specification" (ISO/IEC 18004:2006)
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
- class QRsplit {
-
- public $dataStr = '';
- public $input;
- public $modeHint;
-
- //----------------------------------------------------------------------
- public function __construct($dataStr, $input, $modeHint)
- {
- $this->dataStr = $dataStr;
- $this->input = $input;
- $this->modeHint = $modeHint;
- }
-
- //----------------------------------------------------------------------
- public static function isdigitat($str, $pos)
- {
- if ($pos >= strlen($str))
- return false;
-
- return ((ord($str[$pos]) >= ord('0'))&&(ord($str[$pos]) <= ord('9')));
- }
-
- //----------------------------------------------------------------------
- public static function isalnumat($str, $pos)
- {
- if ($pos >= strlen($str))
- return false;
-
- return (QRinput::lookAnTable(ord($str[$pos])) >= 0);
- }
-
- //----------------------------------------------------------------------
- public function identifyMode($pos)
- {
- if ($pos >= strlen($this->dataStr))
- return QR_MODE_NUL;
-
- $c = $this->dataStr[$pos];
-
- if(self::isdigitat($this->dataStr, $pos)) {
- return QR_MODE_NUM;
- } else if(self::isalnumat($this->dataStr, $pos)) {
- return QR_MODE_AN;
- } else if($this->modeHint == QR_MODE_KANJI) {
-
- if ($pos+1 < strlen($this->dataStr))
- {
- $d = $this->dataStr[$pos+1];
- $word = (ord($c) << 8) | ord($d);
- if(($word >= 0x8140 && $word <= 0x9ffc) || ($word >= 0xe040 && $word <= 0xebbf)) {
- return QR_MODE_KANJI;
- }
- }
- }
-
- return QR_MODE_8;
- }
-
- //----------------------------------------------------------------------
- public function eatNum()
- {
- $ln = QRspec::lengthIndicator(QR_MODE_NUM, $this->input->getVersion());
-
- $p = 0;
- while(self::isdigitat($this->dataStr, $p)) {
- $p++;
- }
-
- $run = $p;
- $mode = $this->identifyMode($p);
-
- if($mode == QR_MODE_8) {
- $dif = QRinput::estimateBitsModeNum($run) + 4 + $ln
- + QRinput::estimateBitsMode8(1) // + 4 + l8
- - QRinput::estimateBitsMode8($run + 1); // - 4 - l8
- if($dif > 0) {
- return $this->eat8();
- }
- }
- if($mode == QR_MODE_AN) {
- $dif = QRinput::estimateBitsModeNum($run) + 4 + $ln
- + QRinput::estimateBitsModeAn(1) // + 4 + la
- - QRinput::estimateBitsModeAn($run + 1);// - 4 - la
- if($dif > 0) {
- return $this->eatAn();
- }
- }
-
- $ret = $this->input->append(QR_MODE_NUM, $run, str_split($this->dataStr));
- if($ret < 0)
- return -1;
-
- return $run;
- }
-
- //----------------------------------------------------------------------
- public function eatAn()
- {
- $la = QRspec::lengthIndicator(QR_MODE_AN, $this->input->getVersion());
- $ln = QRspec::lengthIndicator(QR_MODE_NUM, $this->input->getVersion());
-
- $p = 0;
-
- while(self::isalnumat($this->dataStr, $p)) {
- if(self::isdigitat($this->dataStr, $p)) {
- $q = $p;
- while(self::isdigitat($this->dataStr, $q)) {
- $q++;
- }
-
- $dif = QRinput::estimateBitsModeAn($p) // + 4 + la
- + QRinput::estimateBitsModeNum($q - $p) + 4 + $ln
- - QRinput::estimateBitsModeAn($q); // - 4 - la
-
- if($dif < 0) {
- break;
- } else {
- $p = $q;
- }
- } else {
- $p++;
- }
- }
-
- $run = $p;
-
- if(!self::isalnumat($this->dataStr, $p)) {
- $dif = QRinput::estimateBitsModeAn($run) + 4 + $la
- + QRinput::estimateBitsMode8(1) // + 4 + l8
- - QRinput::estimateBitsMode8($run + 1); // - 4 - l8
- if($dif > 0) {
- return $this->eat8();
- }
- }
-
- $ret = $this->input->append(QR_MODE_AN, $run, str_split($this->dataStr));
- if($ret < 0)
- return -1;
-
- return $run;
- }
-
- //----------------------------------------------------------------------
- public function eatKanji()
- {
- $p = 0;
-
- while($this->identifyMode($p) == QR_MODE_KANJI) {
- $p += 2;
- }
-
- $ret = $this->input->append(QR_MODE_KANJI, $p, str_split($this->dataStr));
- if($ret < 0)
- return -1;
-
- return $ret;
- }
-
- //----------------------------------------------------------------------
- public function eat8()
- {
- $la = QRspec::lengthIndicator(QR_MODE_AN, $this->input->getVersion());
- $ln = QRspec::lengthIndicator(QR_MODE_NUM, $this->input->getVersion());
-
- $p = 1;
- $dataStrLen = strlen($this->dataStr);
-
- while($p < $dataStrLen) {
-
- $mode = $this->identifyMode($p);
- if($mode == QR_MODE_KANJI) {
- break;
- }
- if($mode == QR_MODE_NUM) {
- $q = $p;
- while(self::isdigitat($this->dataStr, $q)) {
- $q++;
- }
- $dif = QRinput::estimateBitsMode8($p) // + 4 + l8
- + QRinput::estimateBitsModeNum($q - $p) + 4 + $ln
- - QRinput::estimateBitsMode8($q); // - 4 - l8
- if($dif < 0) {
- break;
- } else {
- $p = $q;
- }
- } else if($mode == QR_MODE_AN) {
- $q = $p;
- while(self::isalnumat($this->dataStr, $q)) {
- $q++;
- }
- $dif = QRinput::estimateBitsMode8($p) // + 4 + l8
- + QRinput::estimateBitsModeAn($q - $p) + 4 + $la
- - QRinput::estimateBitsMode8($q); // - 4 - l8
- if($dif < 0) {
- break;
- } else {
- $p = $q;
- }
- } else {
- $p++;
- }
- }
-
- $run = $p;
- $ret = $this->input->append(QR_MODE_8, $run, str_split($this->dataStr));
-
- if($ret < 0)
- return -1;
-
- return $run;
- }
-
- //----------------------------------------------------------------------
- public function splitString()
- {
- while (strlen($this->dataStr) > 0)
- {
- if($this->dataStr == '')
- return 0;
-
- $mode = $this->identifyMode(0);
-
- switch ($mode) {
- case QR_MODE_NUM: $length = $this->eatNum(); break;
- case QR_MODE_AN: $length = $this->eatAn(); break;
- case QR_MODE_KANJI:
- if ($this->modeHint == QR_MODE_KANJI)
- $length = $this->eatKanji();
- else $length = $this->eat8();
- break;
- default: $length = $this->eat8(); break;
-
- }
-
- if($length == 0) return 0;
- if($length < 0) return -1;
-
- $this->dataStr = substr($this->dataStr, $length);
- }
- }
-
- //----------------------------------------------------------------------
- public function toUpper()
- {
- $stringLen = strlen($this->dataStr);
- $p = 0;
-
- while ($p<$stringLen) {
- $mode = self::identifyMode(substr($this->dataStr, $p));
- if($mode == QR_MODE_KANJI) {
- $p += 2;
- } else {
- if (ord($this->dataStr[$p]) >= ord('a') && ord($this->dataStr[$p]) <= ord('z')) {
- $this->dataStr[$p] = chr(ord($this->dataStr[$p]) - 32);
- }
- $p++;
- }
- }
-
- return $this->dataStr;
- }
-
- //----------------------------------------------------------------------
- public static function splitStringToQRinput($string, QRinput $input, $modeHint, $casesensitive = true)
- {
- if(is_null($string) || $string == '\0' || $string == '') {
- throw new Exception('empty string!!!');
- }
-
- $split = new QRsplit($string, $input, $modeHint);
-
- if(!$casesensitive)
- $split->toUpper();
-
- return $split->splitString();
- }
- }
diff --git a/lib/phpqrcode/qrtools.php b/lib/phpqrcode/qrtools.php
deleted file mode 100644
index 3012db493..000000000
--- a/lib/phpqrcode/qrtools.php
+++ /dev/null
@@ -1,172 +0,0 @@
-<?php
-/*
- * PHP QR Code encoder
- *
- * Toolset, handy and debug utilites.
- *
- * PHP QR Code is distributed under LGPL 3
- * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
- class QRtools {
-
- //----------------------------------------------------------------------
- public static function binarize($frame)
- {
- $len = count($frame);
- foreach ($frame as &$frameLine) {
-
- for($i=0; $i<$len; $i++) {
- $frameLine[$i] = (ord($frameLine[$i])&1)?'1':'0';
- }
- }
-
- return $frame;
- }
-
- //----------------------------------------------------------------------
- public static function tcpdfBarcodeArray($code, $mode = 'QR,L', $tcPdfVersion = '4.5.037')
- {
- $barcode_array = array();
-
- if (!is_array($mode))
- $mode = explode(',', $mode);
-
- $eccLevel = 'L';
-
- if (count($mode) > 1) {
- $eccLevel = $mode[1];
- }
-
- $qrTab = QRcode::text($code, false, $eccLevel);
- $size = count($qrTab);
-
- $barcode_array['num_rows'] = $size;
- $barcode_array['num_cols'] = $size;
- $barcode_array['bcode'] = array();
-
- foreach ($qrTab as $line) {
- $arrAdd = array();
- foreach(str_split($line) as $char)
- $arrAdd[] = ($char=='1')?1:0;
- $barcode_array['bcode'][] = $arrAdd;
- }
-
- return $barcode_array;
- }
-
- //----------------------------------------------------------------------
- public static function clearCache()
- {
- self::$frames = array();
- }
-
- //----------------------------------------------------------------------
- public static function buildCache()
- {
- QRtools::markTime('before_build_cache');
-
- $mask = new QRmask();
- for ($a=1; $a <= QRSPEC_VERSION_MAX; $a++) {
- $frame = QRspec::newFrame($a);
- if (QR_IMAGE) {
- $fileName = QR_CACHE_DIR.'frame_'.$a.'.png';
- QRimage::png(self::binarize($frame), $fileName, 1, 0);
- }
-
- $width = count($frame);
- $bitMask = array_fill(0, $width, array_fill(0, $width, 0));
- for ($maskNo=0; $maskNo<8; $maskNo++)
- $mask->makeMaskNo($maskNo, $width, $frame, $bitMask, true);
- }
-
- QRtools::markTime('after_build_cache');
- }
-
- //----------------------------------------------------------------------
- public static function log($outfile, $err)
- {
- if (QR_LOG_DIR !== false) {
- if ($err != '') {
- if ($outfile !== false) {
- file_put_contents(QR_LOG_DIR.basename($outfile).'-errors.txt', date('Y-m-d H:i:s').': '.$err, FILE_APPEND);
- } else {
- file_put_contents(QR_LOG_DIR.'errors.txt', date('Y-m-d H:i:s').': '.$err, FILE_APPEND);
- }
- }
- }
- }
-
- //----------------------------------------------------------------------
- public static function dumpMask($frame)
- {
- $width = count($frame);
- for($y=0;$y<$width;$y++) {
- for($x=0;$x<$width;$x++) {
- echo ord($frame[$y][$x]).',';
- }
- }
- }
-
- //----------------------------------------------------------------------
- public static function markTime($markerId)
- {
- list($usec, $sec) = explode(" ", microtime());
- $time = ((float)$usec + (float)$sec);
-
- if (!isset($GLOBALS['qr_time_bench']))
- $GLOBALS['qr_time_bench'] = array();
-
- $GLOBALS['qr_time_bench'][$markerId] = $time;
- }
-
- //----------------------------------------------------------------------
- public static function timeBenchmark()
- {
- self::markTime('finish');
-
- $lastTime = 0;
- $startTime = 0;
- $p = 0;
-
- echo '<table cellpadding="3" cellspacing="1">
- <thead><tr style="border-bottom:1px solid silver"><td colspan="2" style="text-align:center">BENCHMARK</td></tr></thead>
- <tbody>';
-
- foreach($GLOBALS['qr_time_bench'] as $markerId=>$thisTime) {
- if ($p > 0) {
- echo '<tr><th style="text-align:right">till '.$markerId.': </th><td>'.number_format($thisTime-$lastTime, 6).'s</td></tr>';
- } else {
- $startTime = $thisTime;
- }
-
- $p++;
- $lastTime = $thisTime;
- }
-
- echo '</tbody><tfoot>
- <tr style="border-top:2px solid black"><th style="text-align:right">TOTAL: </th><td>'.number_format($lastTime-$startTime, 6).'s</td></tr>
- </tfoot>
- </table>';
- }
-
- }
-
- //##########################################################################
-
- QRtools::markTime('start');
- \ No newline at end of file
diff --git a/lib/phpqrcode/tools/merge.bat b/lib/phpqrcode/tools/merge.bat
deleted file mode 100644
index b60a4853c..000000000
--- a/lib/phpqrcode/tools/merge.bat
+++ /dev/null
@@ -1,2 +0,0 @@
-php ./merge.php
-pause \ No newline at end of file
diff --git a/lib/phpqrcode/tools/merge.php b/lib/phpqrcode/tools/merge.php
deleted file mode 100644
index 19d338b34..000000000
--- a/lib/phpqrcode/tools/merge.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-
-/*
- * PHP QR Code encoder
- *
- * Tool for merging all library files into one, simpler to incorporate.
- *
- * MAKE SURE THAT RESULTING PHPQRCode.php (and its dir) ARE WRITABLE!
- *
- * PHP QR Code is distributed under LGPL 3
- * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
- $QR_BASEDIR = dirname(__FILE__).DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR;
- $QR_TOOLSDIR = dirname(__FILE__).DIRECTORY_SEPARATOR;
-
- $outputFile = $QR_BASEDIR.'phpqrcode.php';
-
- // Required libs
-
- $fileList = array(
- $QR_BASEDIR.'qrconst.php',
- $QR_TOOLSDIR.'merged_config.php',
- $QR_BASEDIR.'qrtools.php',
- $QR_BASEDIR.'qrspec.php',
- $QR_BASEDIR.'qrimage.php',
- $QR_BASEDIR.'qrinput.php',
- $QR_BASEDIR.'qrbitstream.php',
- $QR_BASEDIR.'qrsplit.php',
- $QR_BASEDIR.'qrrscode.php',
- $QR_BASEDIR.'qrmask.php',
- $QR_BASEDIR.'qrencode.php'
- );
-
- $headerFile = $QR_TOOLSDIR.'merged_header.php';
- $versionFile = $QR_BASEDIR.'VERSION';
-
- $outputCode = '';
-
- foreach($fileList as $fileName) {
- $outputCode .= "\n\n".'//---- '.basename($fileName).' -----------------------------'."\n\n";
- $anotherCode = file_get_contents($fileName);
- $anotherCode = preg_replace ('/^<\?php/', '', $anotherCode);
- $anotherCode = preg_replace ('/\?>\*$/', '', $anotherCode);
- $outputCode .= "\n\n".$anotherCode."\n\n";
- }
-
- $versionDataEx = explode("\n", file_get_contents($versionFile));
-
- $outputContents = file_get_contents($headerFile);
- $outputContents .= "\n\n/*\n * Version: ".trim($versionDataEx[0])."\n * Build: ".trim($versionDataEx[1])."\n */\n\n";
- $outputContents .= $outputCode;
-
- file_put_contents($outputFile, $outputContents);
-
- \ No newline at end of file
diff --git a/lib/phpqrcode/tools/merge.sh b/lib/phpqrcode/tools/merge.sh
deleted file mode 100644
index e4c2fbcb8..000000000
--- a/lib/phpqrcode/tools/merge.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-php ./merge.php \ No newline at end of file
diff --git a/lib/phpqrcode/tools/merged_config.php b/lib/phpqrcode/tools/merged_config.php
deleted file mode 100644
index 55ddb4506..000000000
--- a/lib/phpqrcode/tools/merged_config.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-/*
- * PHP QR Code encoder
- *
- * Config file, tuned-up for merged verion
- */
-
- define('QR_CACHEABLE', false); // use cache - more disk reads but less CPU power, masks and format templates are stored there
- define('QR_CACHE_DIR', false); // used when QR_CACHEABLE === true
- define('QR_LOG_DIR', false); // default error logs dir
-
- define('QR_FIND_BEST_MASK', true); // if true, estimates best mask (spec. default, but extremally slow; set to false to significant performance boost but (propably) worst quality code
- define('QR_FIND_FROM_RANDOM', 2); // if false, checks all masks available, otherwise value tells count of masks need to be checked, mask id are got randomly
- define('QR_DEFAULT_MASK', 2); // when QR_FIND_BEST_MASK === false
-
- define('QR_PNG_MAXIMUM_SIZE', 1024); // maximum allowed png image width (in pixels), tune to make sure GD and PHP can handle such big images
- \ No newline at end of file
diff --git a/lib/phpqrcode/tools/merged_header.php b/lib/phpqrcode/tools/merged_header.php
deleted file mode 100644
index 25805e564..000000000
--- a/lib/phpqrcode/tools/merged_header.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-/*
- * PHP QR Code encoder
- *
- * This file contains MERGED version of PHP QR Code library.
- * It was auto-generated from full version for your convenience.
- *
- * This merged version was configured to not requre any external files,
- * with disabled cache, error loging and weker but faster mask matching.
- * If you need tune it up please use non-merged version.
- *
- * For full version, documentation, examples of use please visit:
- *
- * http://phpqrcode.sourceforge.net/
- * https://sourceforge.net/projects/phpqrcode/
- *
- * PHP QR Code is distributed under LGPL 3
- * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
- \ No newline at end of file
diff --git a/lib/xsl_mop-up.js b/lib/xsl_mop-up.js
deleted file mode 100644
index 87c967090..000000000
--- a/lib/xsl_mop-up.js
+++ /dev/null
@@ -1,86 +0,0 @@
-// -*-coding: latin-1;-*-
-// Time-stamp: "2006-05-17 22:06:46 ADT" [email protected]
-
-// A workaround for XSL-to-XHTML systems that don't
-// implement XSL 'disable-output-escaping="yes"'.
-//
-// [email protected], Sean M. Burke.
-// - I hereby release this JavaScript code into the public domain.
-
-var is_decoding;
-var DEBUG = 0;
-
-function complaining (s) { alert(s); return new Error(s,s); }
-
-if(!( document.getElementById && document.getElementsByName ))
- throw complaining("Your browser is too old to render this page properly."
- + " Consider going to getfirefox.com to upgrade.");
-
-function check_decoding () {
- var d = document.getElementById('cometestme');
- if(!d) {
- throw complaining("Can't find an id='cometestme' element?");
- } else if(!('textContent' in d)) {
- // It's a browser with a halfassed DOM implementation (like IE6)
- // that doesn't implement textContent! Assume that if it's that
- // dumb, it probably doesn't implement disable-content-encoding.
-
- } else {
- var ampy = d.textContent;
- if(DEBUG > 1) { alert("Got " + ampy); }
-
- if(ampy == undefined) throw complaining("'cometestme' element has undefined text content?!");
- if(ampy == '' ) throw complaining("'cometestme' element has empty text content?!" );
-
- if (ampy == "\x26" ) { is_decoding = true; }
- else if (ampy == "\x26amp;" ) { is_decoding = false; }
- else { throw complaining('Insane value: "' + ampy + '"!'); }
- }
-
- var msg =
- (is_decoding == undefined) ? "I can't tell whether the XSL processor supports disable-content-encoding!D"
- : is_decoding ? "The XSL processor DOES support disable-content-encoding"
- : "The XSL processor does NOT support disable-content-encoding"
- ;
- if(DEBUG) alert(msg);
- return msg;
-}
-
-
-function go_decoding () {
- check_decoding();
-
- if(is_decoding) {
- DEBUG && alert("No work needs doing -- already decoded!");
- return;
- }
-
- var to_decode = document.getElementsByName('decodeme');
- if(!( to_decode && to_decode.length )) {
- DEBUG && alert("No work needs doing -- no elements to decode!");
- return;
- }
-
- if(!( ( "innerHTML" in to_decode[0]) && ( "textContent" in to_decode[0]) ))
- throw complaining( "Your JavaScript version doesn't implement DOM " +
- "properly enough to show this page correctly. " +
- "Consider going to getfirefox.com to upgrade.");
-
- var s;
- for(var i = to_decode.length - 1; i >= 0; i--) {
- s = to_decode[i].textContent;
-
- if(
- s == undefined ||
- (s.indexOf('&') == -1 && s.indexOf('<') == -1)
- ) {
- // the null or markupless element needs no reworking
- } else {
- to_decode[i].innerHTML = s; // that's the magic
- }
- }
-
- return;
-}
-
-//End
diff --git a/locale/ar_SA/LC_MESSAGES/messages.mo b/locale/ar_SA/LC_MESSAGES/messages.mo
index 3715837bb..4c43b5d1d 100755
--- a/locale/ar_SA/LC_MESSAGES/messages.mo
+++ b/locale/ar_SA/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/locale/bg_BG/LC_MESSAGES/messages.mo b/locale/bg_BG/LC_MESSAGES/messages.mo
index 75f9d955e..c7364442e 100644
--- a/locale/bg_BG/LC_MESSAGES/messages.mo
+++ b/locale/bg_BG/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/locale/ca_CA/LC_MESSAGES/messages.mo b/locale/ca_CA/LC_MESSAGES/messages.mo
index 1cbd1a8c5..0e886cca8 100644
--- a/locale/ca_CA/LC_MESSAGES/messages.mo
+++ b/locale/ca_CA/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/locale/da_DK/LC_MESSAGES/messages.mo b/locale/da_DK/LC_MESSAGES/messages.mo
index ecfe5bfc0..ed3ecf3ae 100644
--- a/locale/da_DK/LC_MESSAGES/messages.mo
+++ b/locale/da_DK/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/locale/de_DE/LC_MESSAGES/messages.mo b/locale/de_DE/LC_MESSAGES/messages.mo
index ec072d8b9..d1ad0f59c 100644
--- a/locale/de_DE/LC_MESSAGES/messages.mo
+++ b/locale/de_DE/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/locale/el_GR/LC_MESSAGES/messages.mo b/locale/el_GR/LC_MESSAGES/messages.mo
index 74339dabe..a903eb145 100644
--- a/locale/el_GR/LC_MESSAGES/messages.mo
+++ b/locale/el_GR/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/locale/eo/LC_MESSAGES/messages.mo b/locale/eo/LC_MESSAGES/messages.mo
index 29c55687f..abe7a3d61 100644
--- a/locale/eo/LC_MESSAGES/messages.mo
+++ b/locale/eo/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/locale/es_ES/LC_MESSAGES/messages.mo b/locale/es_ES/LC_MESSAGES/messages.mo
index 9875c6944..b1ca8b517 100644
--- a/locale/es_ES/LC_MESSAGES/messages.mo
+++ b/locale/es_ES/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/locale/es_LA/LC_MESSAGES/messages.mo b/locale/es_LA/LC_MESSAGES/messages.mo
index f714fed68..bb42372cb 100644
--- a/locale/es_LA/LC_MESSAGES/messages.mo
+++ b/locale/es_LA/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/locale/fa/LC_MESSAGES/messages.mo b/locale/fa/LC_MESSAGES/messages.mo
index 11f081b99..ddc1a16ac 100644
--- a/locale/fa/LC_MESSAGES/messages.mo
+++ b/locale/fa/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/locale/fi_FI/LC_MESSAGES/messages.mo b/locale/fi_FI/LC_MESSAGES/messages.mo
index 245cc4e5e..b06bfdad9 100644
--- a/locale/fi_FI/LC_MESSAGES/messages.mo
+++ b/locale/fi_FI/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/locale/fr_FR/LC_MESSAGES/messages.mo b/locale/fr_FR/LC_MESSAGES/messages.mo
index 816a0420c..9a6ddaa79 100644
--- a/locale/fr_FR/LC_MESSAGES/messages.mo
+++ b/locale/fr_FR/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/locale/hu_HU/LC_MESSAGES/messages.mo b/locale/hu_HU/LC_MESSAGES/messages.mo
index aaa6715d5..9bf449760 100644
--- a/locale/hu_HU/LC_MESSAGES/messages.mo
+++ b/locale/hu_HU/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/locale/it_IT/LC_MESSAGES/messages.mo b/locale/it_IT/LC_MESSAGES/messages.mo
index 48743959e..0359145a8 100644
--- a/locale/it_IT/LC_MESSAGES/messages.mo
+++ b/locale/it_IT/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/locale/ja_JP/LC_MESSAGES/messages.mo b/locale/ja_JP/LC_MESSAGES/messages.mo
index 6ee30c246..a093db6f8 100644
--- a/locale/ja_JP/LC_MESSAGES/messages.mo
+++ b/locale/ja_JP/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/locale/ko_KR/LC_MESSAGES/messages.mo b/locale/ko_KR/LC_MESSAGES/messages.mo
index 4d02c974a..23ee894c4 100644
--- a/locale/ko_KR/LC_MESSAGES/messages.mo
+++ b/locale/ko_KR/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/locale/lv_LV/LC_MESSAGES/messages.mo b/locale/lv_LV/LC_MESSAGES/messages.mo
index 64a3a8092..3f80e9f8a 100644
--- a/locale/lv_LV/LC_MESSAGES/messages.mo
+++ b/locale/lv_LV/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/locale/nb_NO/LC_MESSAGES/messages.mo b/locale/nb_NO/LC_MESSAGES/messages.mo
index f2d92c8a8..b571dab21 100644
--- a/locale/nb_NO/LC_MESSAGES/messages.mo
+++ b/locale/nb_NO/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/locale/nl_NL/LC_MESSAGES/messages.mo b/locale/nl_NL/LC_MESSAGES/messages.mo
index 83bfe3c0d..77eeadd01 100644
--- a/locale/nl_NL/LC_MESSAGES/messages.mo
+++ b/locale/nl_NL/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/locale/pl_PL/LC_MESSAGES/messages.mo b/locale/pl_PL/LC_MESSAGES/messages.mo
index 7a3f3147b..751e993e0 100644
--- a/locale/pl_PL/LC_MESSAGES/messages.mo
+++ b/locale/pl_PL/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/locale/pt_BR/LC_MESSAGES/messages.mo b/locale/pt_BR/LC_MESSAGES/messages.mo
index 531830f8e..8256ba44f 100755
--- a/locale/pt_BR/LC_MESSAGES/messages.mo
+++ b/locale/pt_BR/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/locale/pt_PT/LC_MESSAGES/messages.mo b/locale/pt_PT/LC_MESSAGES/messages.mo
index 97ba8985e..ee950a7c1 100644
--- a/locale/pt_PT/LC_MESSAGES/messages.mo
+++ b/locale/pt_PT/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/locale/ru_RU/LC_MESSAGES/messages.mo b/locale/ru_RU/LC_MESSAGES/messages.mo
index d4b7cd798..9ad11540d 100644
--- a/locale/ru_RU/LC_MESSAGES/messages.mo
+++ b/locale/ru_RU/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/locale/sv_SE/LC_MESSAGES/messages.mo b/locale/sv_SE/LC_MESSAGES/messages.mo
index b7f915641..dd280c1e6 100644
--- a/locale/sv_SE/LC_MESSAGES/messages.mo
+++ b/locale/sv_SE/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/locale/tr_TR/LC_MESSAGES/messages.mo b/locale/tr_TR/LC_MESSAGES/messages.mo
index 931e62141..1debaf0c2 100644
--- a/locale/tr_TR/LC_MESSAGES/messages.mo
+++ b/locale/tr_TR/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/locale/uk_UA/LC_MESSAGES/messages.mo b/locale/uk_UA/LC_MESSAGES/messages.mo
index 651cb1db7..9a6c03719 100644
--- a/locale/uk_UA/LC_MESSAGES/messages.mo
+++ b/locale/uk_UA/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/locale/zh_TW/LC_MESSAGES/messages.mo b/locale/zh_TW/LC_MESSAGES/messages.mo
index fb2a6b92b..7b5c40b78 100644
--- a/locale/zh_TW/LC_MESSAGES/messages.mo
+++ b/locale/zh_TW/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/messages.pot b/messages.pot
index ce67234d1..2e856e500 100644
--- a/messages.pot
+++ b/messages.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-02-26 13:06+0300\n"
+"POT-Creation-Date: 2021-02-26 13:25+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <[email protected]>\n"
diff --git a/phpstan.neon b/phpstan.neon
index 29ca27d26..8fe36c8b4 100644
--- a/phpstan.neon
+++ b/phpstan.neon
@@ -13,8 +13,15 @@ parameters:
- vendor/*
- plugins/*/vendor/*
- plugins.local/*/vendor/*
-
excludePaths:
- node_modules/*
+ - vendor/**/tests/*
+ - vendor/**/test/*
+ - plugins/**/tests/*
+ - plugins/**/Test/*
+ - plugins.local/**/tests/*
+ - plugins/**/test/*
+ - plugins.local/**/test/*
+ - plugins.local/*/vendor/intervention/*
paths:
- - . \ No newline at end of file
+ - .
diff --git a/plugins/af_comics/filters/af_comics_cad.php b/plugins/af_comics/filters/af_comics_cad.php
index 5da82ae3f..b2b65ee05 100644
--- a/plugins/af_comics/filters/af_comics_cad.php
+++ b/plugins/af_comics/filters/af_comics_cad.php
@@ -8,19 +8,16 @@ class Af_Comics_Cad extends Af_ComicFilter {
function process(&$article) {
if (strpos($article["link"], "cad-comic.com") !== false) {
if (strpos($article["title"], "News:") === false) {
-
- global $fetch_last_error_content;
-
$doc = new DOMDocument();
$res = UrlHelper::fetch($article["link"], false, false, false,
false, false, 0,
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0");
- if (!$res && $fetch_last_error_content)
- $res = $fetch_last_error_content;
+ if (!$res && UrlHelper::$fetch_last_error_content)
+ $res = UrlHelper::$fetch_last_error_content;
- if (@$doc->loadHTML($res)) {
+ if ($res && $doc->loadHTML($res)) {
$xpath = new DOMXPath($doc);
$basenode = $xpath->query('//div[@class="comicpage"]/a/img')->item(0);
diff --git a/plugins/af_comics/filters/af_comics_comicclass.php b/plugins/af_comics/filters/af_comics_comicclass.php
index ff32375d3..5e14ea930 100644
--- a/plugins/af_comics/filters/af_comics_comicclass.php
+++ b/plugins/af_comics/filters/af_comics_comicclass.php
@@ -17,7 +17,7 @@ class Af_Comics_ComicClass extends Af_ComicFilter {
$doc = new DOMDocument();
- if (@$doc->loadHTML($res)) {
+ if ($res && $doc->loadHTML($res)) {
$xpath = new DOMXPath($doc);
$basenode = $xpath->query('//div[@class="comic"]')->item(0);
diff --git a/plugins/af_comics/filters/af_comics_comicpress.php b/plugins/af_comics/filters/af_comics_comicpress.php
index 29b064612..741d59672 100755
--- a/plugins/af_comics/filters/af_comics_comicpress.php
+++ b/plugins/af_comics/filters/af_comics_comicpress.php
@@ -23,7 +23,7 @@ class Af_Comics_ComicPress extends Af_ComicFilter {
$doc = new DOMDocument();
- if (@$doc->loadHTML($res)) {
+ if ($res && $doc->loadHTML($res)) {
$xpath = new DOMXPath($doc);
$basenode = $xpath->query('//div[@id="comic"]')->item(0);
diff --git a/plugins/af_comics/filters/af_comics_darklegacy.php b/plugins/af_comics/filters/af_comics_darklegacy.php
index 978545431..d1f6016cb 100644
--- a/plugins/af_comics/filters/af_comics_darklegacy.php
+++ b/plugins/af_comics/filters/af_comics_darklegacy.php
@@ -13,14 +13,12 @@ class Af_Comics_DarkLegacy extends Af_ComicFilter {
false, false, 0,
"Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)");
- global $fetch_last_error_content;
-
- if (!$res && $fetch_last_error_content)
- $res = $fetch_last_error_content;
+ if (!$res && UrlHelper::$fetch_last_error_content)
+ $res = UrlHelper::$fetch_last_error_content;
$doc = new DOMDocument();
- if (@$doc->loadHTML($res)) {
+ if ($res && $doc->loadHTML($res)) {
$xpath = new DOMXPath($doc);
$basenode = $xpath->query('//div[@class="comic"]')->item(0);
diff --git a/plugins/af_comics/filters/af_comics_dilbert.php b/plugins/af_comics/filters/af_comics_dilbert.php
index 31a72d88d..49fa54cfa 100644
--- a/plugins/af_comics/filters/af_comics_dilbert.php
+++ b/plugins/af_comics/filters/af_comics_dilbert.php
@@ -14,14 +14,12 @@ class Af_Comics_Dilbert extends Af_ComicFilter {
false, false, 0,
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0");
- global $fetch_last_error_content;
-
- if (!$res && $fetch_last_error_content)
- $res = $fetch_last_error_content;
+ if (!$res && UrlHelper::$fetch_last_error_content)
+ $res = UrlHelper::$fetch_last_error_content;
$doc = new DOMDocument();
- if (@$doc->loadHTML($res)) {
+ if ($res && $doc->loadHTML($res)) {
$xpath = new DOMXPath($doc);
// Get the image container
diff --git a/plugins/af_comics/filters/af_comics_gocomics.php b/plugins/af_comics/filters/af_comics_gocomics.php
index 6c5c7c0d3..71d387918 100644
--- a/plugins/af_comics/filters/af_comics_gocomics.php
+++ b/plugins/af_comics/filters/af_comics_gocomics.php
@@ -40,7 +40,7 @@ class Af_Comics_Gocomics extends Af_ComicFilter {
$tpl->readTemplateFromFile('templates/generated_feed.txt');
$tpl->setVariable('FEED_TITLE', $feed_title, true);
- $tpl->setVariable('VERSION', get_version(), true);
+ $tpl->setVariable('VERSION', Config::get_version(), true);
$tpl->setVariable('FEED_URL', htmlspecialchars($url), true);
$tpl->setVariable('SELF_URL', $site_url, true);
diff --git a/plugins/af_comics/filters/af_comics_gocomics_farside.php b/plugins/af_comics/filters/af_comics_gocomics_farside.php
index 89322209d..0399015ab 100644
--- a/plugins/af_comics/filters/af_comics_gocomics_farside.php
+++ b/plugins/af_comics/filters/af_comics_gocomics_farside.php
@@ -33,7 +33,7 @@ class Af_Comics_Gocomics_FarSide extends Af_ComicFilter {
$tpl->readTemplateFromFile('templates/generated_feed.txt');
$tpl->setVariable('FEED_TITLE', "The Far Side", true);
- $tpl->setVariable('VERSION', get_version(), true);
+ $tpl->setVariable('VERSION', Config::get_version(), true);
$tpl->setVariable('FEED_URL', htmlspecialchars($url), true);
$tpl->setVariable('SELF_URL', htmlspecialchars($url), true);
diff --git a/plugins/af_comics/filters/af_comics_pa.php b/plugins/af_comics/filters/af_comics_pa.php
index 380e84596..a5a81edcb 100644
--- a/plugins/af_comics/filters/af_comics_pa.php
+++ b/plugins/af_comics/filters/af_comics_pa.php
@@ -25,7 +25,9 @@ class Af_Comics_Pa extends Af_ComicFilter {
if (strpos($article["link"], "penny-arcade.com") !== false && strpos($article["title"], "News Post:") !== false) {
$doc = new DOMDocument();
- if ($doc->loadHTML(UrlHelper::fetch($article["link"]))) {
+ $res = UrlHelper::fetch($article["link"]);
+
+ if ($res && $doc->loadHTML($res)) {
$xpath = new DOMXPath($doc);
$entries = $xpath->query('(//div[@class="post"])');
diff --git a/plugins/af_comics/filters/af_comics_pvp.php b/plugins/af_comics/filters/af_comics_pvp.php
index 105d3f490..a27fbca87 100644
--- a/plugins/af_comics/filters/af_comics_pvp.php
+++ b/plugins/af_comics/filters/af_comics_pvp.php
@@ -14,7 +14,7 @@ class Af_Comics_Pvp extends Af_ComicFilter {
$doc = new DOMDocument();
- if (@$doc->loadHTML($res)) {
+ if ($res && $doc->loadHTML($res)) {
$xpath = new DOMXPath($doc);
$basenode = $xpath->query('//section[@class="comic-art"]')->item(0);
diff --git a/plugins/af_comics/filters/af_comics_tfd.php b/plugins/af_comics/filters/af_comics_tfd.php
index e0216705c..19ca43a24 100644
--- a/plugins/af_comics/filters/af_comics_tfd.php
+++ b/plugins/af_comics/filters/af_comics_tfd.php
@@ -16,7 +16,9 @@ class Af_Comics_Tfd extends Af_ComicFilter {
$doc = new DOMDocument();
- if (@$doc->loadHTML(UrlHelper::fetch($article["link"]))) {
+ $res = UrlHelper::fetch($article["link"]);
+
+ if ($res && $doc->loadHTML($res)) {
$xpath = new DOMXPath($doc);
$basenode = $xpath->query('//img[contains(@src, ".gif")]')->item(0);
diff --git a/plugins/af_comics/filters/af_comics_twp.php b/plugins/af_comics/filters/af_comics_twp.php
index 38a8ca32b..6715be3c2 100644
--- a/plugins/af_comics/filters/af_comics_twp.php
+++ b/plugins/af_comics/filters/af_comics_twp.php
@@ -11,7 +11,9 @@ class Af_Comics_Twp extends Af_ComicFilter {
$doc = new DOMDocument();
- if (@$doc->loadHTML(UrlHelper::fetch($article["link"]))) {
+ $res = UrlHelper::fetch($article["link"]);
+
+ if ($res && $doc->loadHTML($res)) {
$xpath = new DOMXpath($doc);
$basenode = $xpath->query("//td/center/img")->item(0);
diff --git a/plugins/af_comics/filters/af_comics_whomp.php b/plugins/af_comics/filters/af_comics_whomp.php
index 021a2952a..712388449 100644
--- a/plugins/af_comics/filters/af_comics_whomp.php
+++ b/plugins/af_comics/filters/af_comics_whomp.php
@@ -12,14 +12,12 @@ class Af_Comics_Whomp extends Af_ComicFilter {
false, false, 0,
"Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)");
- global $fetch_last_error_content;
-
- if (!$res && $fetch_last_error_content)
- $res = $fetch_last_error_content;
+ if (!$res && UrlHelper::$fetch_last_error_content)
+ $res = UrlHelper::$fetch_last_error_content;
$doc = new DOMDocument();
- if (@$doc->loadHTML($res)) {
+ if ($res && $doc->loadHTML($res)) {
$xpath = new DOMXPath($doc);
$basenode = $xpath->query('//img[@id="cc-comic"]')->item(0);
diff --git a/plugins/af_comics/init.php b/plugins/af_comics/init.php
index c8a8f8637..8aba1416b 100755
--- a/plugins/af_comics/init.php
+++ b/plugins/af_comics/init.php
@@ -5,7 +5,7 @@ class Af_Comics extends Plugin {
private $filters = array();
function about() {
- return array(2.0,
+ return array(null,
"Fixes RSS feeds of assorted comic strips",
"fox");
}
diff --git a/plugins/af_fsckportal/init.php b/plugins/af_fsckportal/init.php
deleted file mode 100644
index 8caa617c6..000000000
--- a/plugins/af_fsckportal/init.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-class Af_Fsckportal extends Plugin {
-
- private $host;
-
- function about() {
- return array(1.0,
- "Remove feedsportal spamlinks from article content",
- "fox");
- }
-
- function init($host) {
- $this->host = $host;
-
- $host->add_hook($host::HOOK_ARTICLE_FILTER, $this);
- }
-
- function hook_article_filter($article) {
-
- $doc = new DOMDocument();
-
- if (@$doc->loadHTML('<?xml encoding="UTF-8">' . $article["content"])) {
- $xpath = new DOMXPath($doc);
- $entries = $xpath->query('(//img[@src]|//a[@href])');
-
- foreach ($entries as $entry) {
- if (preg_match("/feedsportal.com/", $entry->getAttribute("src"))) {
- $entry->parentNode->removeChild($entry);
- } else if (preg_match("/feedsportal.com/", $entry->getAttribute("href"))) {
- $entry->parentNode->removeChild($entry);
- }
- }
-
- $article["content"] = $doc->saveHTML();
- }
-
- return $article;
- }
-
- function api_version() {
- return 2;
- }
-
-}
diff --git a/plugins/af_proxy_http/init.php b/plugins/af_proxy_http/init.php
deleted file mode 100644
index b03cacfe4..000000000
--- a/plugins/af_proxy_http/init.php
+++ /dev/null
@@ -1,256 +0,0 @@
-<?php
-class Af_Proxy_Http extends Plugin {
-
- /* @var PluginHost $host */
- private $host;
-
- /* @var DiskCache $cache */
- private $cache;
-
- function about() {
- return array(1.0,
- "Loads media served over plain HTTP via built-in secure proxy",
- "fox");
- }
-
- private $ssl_known_whitelist = "imgur.com gfycat.com i.reddituploads.com pbs.twimg.com i.redd.it i.sli.mg media.tumblr.com";
-
- function is_public_method($method) {
- return $method === "imgproxy";
- }
-
- function init($host) {
- $this->host = $host;
- $this->cache = new DiskCache("images");
-
- $host->add_hook($host::HOOK_RENDER_ARTICLE, $this, 150);
- $host->add_hook($host::HOOK_RENDER_ARTICLE_CDM, $this, 150);
- $host->add_hook($host::HOOK_ENCLOSURE_ENTRY, $this);
-
- $host->add_hook($host::HOOK_PREFS_TAB, $this);
-
- if (empty($_SESSION['af_proxy_http_token']))
- $_SESSION['af_proxy_http_token'] = bin2hex(get_random_bytes(16));
- }
-
- function hook_enclosure_entry($enc) {
- if (preg_match("/image/", $enc["content_type"])) {
- $proxy_all = $this->host->get($this, "proxy_all");
-
- $enc["content_url"] = $this->rewrite_url_if_needed($enc["content_url"], $proxy_all);
- }
-
- return $enc;
- }
-
- function hook_render_article($article) {
- return $this->hook_render_article_cdm($article);
- }
-
- public function imgproxy() {
- $url = UrlHelper::validate(clean($_REQUEST["url"]));
-
- // immediately redirect to original URL if:
- // - url points back to ourselves
- // - called without user context
- // - session-spefific token is invalid
- if (
- strpos($url, get_self_url_prefix()) === 0 ||
- empty($_SESSION["uid"]) ||
- $_REQUEST['af_proxy_http_token'] != $_SESSION['af_proxy_http_token']) {
- header("Location: $url");
- return;
- }
-
- $local_filename = sha1($url);
-
- if ($this->cache->exists($local_filename)) {
- header("Location: " . $this->cache->get_url($local_filename));
- return;
- } else {
- $data = UrlHelper::fetch(["url" => $url, "max_size" => Config::get(Config::MAX_CACHE_FILE_SIZE)]);
-
- if ($data) {
- if ($this->cache->put($local_filename, $data)) {
- header("Location: " . $this->cache->get_url($local_filename));
- return;
- }
- } else {
- global $fetch_last_error;
- global $fetch_last_error_code;
- global $fetch_last_error_content;
-
- if (function_exists("imagecreate") && !isset($_REQUEST["text"])) {
- $img = imagecreate(450, 75);
-
- /*$bg =*/ imagecolorallocate($img, 255, 255, 255);
- $textcolor = imagecolorallocate($img, 255, 0, 0);
-
- imagerectangle($img, 0, 0, 450-1, 75-1, $textcolor);
-
- imagestring($img, 5, 5, 5, "Proxy request failed", $textcolor);
- imagestring($img, 5, 5, 30, truncate_middle($url, 46, "..."), $textcolor);
- imagestring($img, 5, 5, 55, "HTTP Code: $fetch_last_error_code", $textcolor);
-
- header("Content-type: image/png");
- print imagepng($img);
- imagedestroy($img);
-
- } else {
- header("Content-type: text/plain");
-
- http_response_code(400);
-
- print "Proxy request failed.\n".
- "Fetch error $fetch_last_error ($fetch_last_error_code)\n".
- "Requested URL: $url";
- }
- }
- }
- }
-
- private function rewrite_url_if_needed($url, $all_remote = false) {
- /* don't rewrite urls pointing to ourselves */
-
- if (strpos($url, get_self_url_prefix()) === 0)
- return $url;
-
- /* we don't need to handle URLs where local cache already exists, tt-rss rewrites those automatically */
- if (!$this->cache->exists(sha1($url))) {
-
- $scheme = parse_url($url, PHP_URL_SCHEME);
-
- if ($all_remote) {
- $host = parse_url($url, PHP_URL_HOST);
- $self_host = parse_url(get_self_url_prefix(), PHP_URL_HOST);
-
- $is_remote = $host != $self_host;
- } else {
- $is_remote = false;
- }
-
- if (($scheme != 'https' && $scheme != "") || $is_remote) {
- if (strpos($url, "data:") !== 0) {
- $parts = parse_url($url);
-
- foreach (explode(" " , $this->ssl_known_whitelist) as $host) {
- if (substr(strtolower($parts['host']), -strlen($host)) === strtolower($host)) {
- $parts['scheme'] = 'https';
- $url = UrlHelper::build_url($parts);
- if ($all_remote && $is_remote) {
- break;
- } else {
- return $url;
- }
- }
- }
-
- return $this->host->get_public_method_url($this, "imgproxy",
- ["url" => $url, "af_proxy_http_token" => $_SESSION["af_proxy_http_token"]]);
- }
- }
- }
-
- return $url;
- }
-
- function hook_render_article_cdm($article, $api_mode = false) {
-
- $need_saving = false;
- $proxy_all = $this->host->get($this, "proxy_all");
-
- $doc = new DOMDocument();
- if (@$doc->loadHTML('<?xml encoding="UTF-8">' . $article["content"])) {
- $xpath = new DOMXPath($doc);
- $imgs = $xpath->query("//img[@src]");
-
- foreach ($imgs as $img) {
- $new_src = $this->rewrite_url_if_needed($img->getAttribute("src"), $proxy_all);
-
- if ($new_src != $img->getAttribute("src")) {
- $img->setAttribute("src", $new_src);
- $img->removeAttribute("srcset");
-
- $need_saving = true;
- }
- }
-
- $vids = $xpath->query("(//video|//picture)");
-
- foreach ($vids as $vid) {
- if ($vid->hasAttribute("poster")) {
- $new_src = $this->rewrite_url_if_needed($vid->getAttribute("poster"), $proxy_all);
-
- if ($new_src != $vid->getAttribute("poster")) {
- $vid->setAttribute("poster", $new_src);
-
- $need_saving = true;
- }
- }
-
- $vsrcs = $xpath->query("source", $vid);
-
- foreach ($vsrcs as $vsrc) {
- $new_src = $this->rewrite_url_if_needed($vsrc->getAttribute("src"), $proxy_all);
-
- if ($new_src != $vsrc->getAttribute("src")) {
- $vid->setAttribute("src", $new_src);
-
- $need_saving = true;
- }
- }
- }
- }
-
- if ($need_saving) $article["content"] = $doc->saveHTML();
-
- return $article;
- }
-
- function hook_prefs_tab($args) {
- if ($args != "prefFeeds") return;
- ?>
-
- <div dojoType="dijit.layout.AccordionPane"
- title="<i class='material-icons'>extension</i> <?= __('Image proxy settings (af_proxy_http)') ?>">
-
- <form dojoType="dijit.form.Form">
-
- <?= \Controls\pluginhandler_tags($this, "save") ?>
-
- <script type="dojo/method" event="onSubmit" args="evt">
- evt.preventDefault();
- if (this.validate()) {
- xhr.post("backend.php", this.getValues(), (reply) => {
- Notify.info(reply);
- })
- }
- </script>
-
- <fieldset>
- <label class="checkbox">
- <?= \Controls\checkbox_tag("proxy_all", $this->host->get($this, "proxy_all")) ?>
- <?= __("Enable proxy for all remote images.") ?>
- </label>
- </fieldset>
-
- <hr/>
-
- <?= \Controls\submit_tag(__("Save")) ?>
- </form>
- </div>
- <?php
- }
-
- function save() {
- $proxy_all = checkbox_to_sql_bool($_POST["proxy_all"] ?? "");
-
- $this->host->set($this, "proxy_all", $proxy_all);
-
- echo __("Configuration saved");
- }
-
- function api_version() {
- return 2;
- }
-}
diff --git a/plugins/af_psql_trgm/init.php b/plugins/af_psql_trgm/init.php
index 5611d8998..87415450b 100644
--- a/plugins/af_psql_trgm/init.php
+++ b/plugins/af_psql_trgm/init.php
@@ -7,7 +7,7 @@ class Af_Psql_Trgm extends Plugin {
private $default_min_length = 32;
function about() {
- return array(1.0,
+ return array(null,
"Marks similar articles as read (requires pg_trgm)",
"fox");
}
diff --git a/plugins/af_readability/composer.json b/plugins/af_readability/composer.json
new file mode 100644
index 000000000..71acf9b0f
--- /dev/null
+++ b/plugins/af_readability/composer.json
@@ -0,0 +1,5 @@
+{
+ "require": {
+ "andreskrey/readability.php": "^2.1"
+ }
+}
diff --git a/plugins/af_readability/composer.lock b/plugins/af_readability/composer.lock
new file mode 100644
index 000000000..f8e1237c5
--- /dev/null
+++ b/plugins/af_readability/composer.lock
@@ -0,0 +1,126 @@
+{
+ "_readme": [
+ "This file locks the dependencies of your project to a known state",
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
+ "This file is @generated automatically"
+ ],
+ "content-hash": "2a37019b27f1590966011df3bf6e135b",
+ "packages": [
+ {
+ "name": "andreskrey/readability.php",
+ "version": "v2.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/andreskrey/readability.php.git",
+ "reference": "7617a912b6c527909168f5d41d263792f171c42a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/andreskrey/readability.php/zipball/7617a912b6c527909168f5d41d263792f171c42a",
+ "reference": "7617a912b6c527909168f5d41d263792f171c42a",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-mbstring": "*",
+ "ext-xml": "*",
+ "php": ">=7.0.0",
+ "psr/log": "^1.0"
+ },
+ "require-dev": {
+ "monolog/monolog": "^1.24",
+ "phpunit/phpunit": "^6.5"
+ },
+ "suggest": {
+ "monolog/monolog": "Allow logging debug information"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "andreskrey\\Readability\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "Andres Rey",
+ "email": "[email protected]",
+ "role": "Lead Developer"
+ }
+ ],
+ "description": "A PHP port of Readability.js",
+ "homepage": "https://github.com/andreskrey/readability",
+ "keywords": [
+ "html",
+ "readability"
+ ],
+ "support": {
+ "issues": "https://github.com/andreskrey/readability.php/issues",
+ "source": "https://github.com/andreskrey/readability.php/tree/v2.1.0"
+ },
+ "time": "2019-07-22T21:42:25+00:00"
+ },
+ {
+ "name": "psr/log",
+ "version": "1.1.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/log.git",
+ "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc",
+ "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Log\\": "Psr/Log/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for logging libraries",
+ "homepage": "https://github.com/php-fig/log",
+ "keywords": [
+ "log",
+ "psr",
+ "psr-3"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/log/tree/1.1.3"
+ },
+ "time": "2020-03-23T09:12:05+00:00"
+ }
+ ],
+ "packages-dev": [],
+ "aliases": [],
+ "minimum-stability": "stable",
+ "stability-flags": [],
+ "prefer-stable": false,
+ "prefer-lowest": false,
+ "platform": [],
+ "platform-dev": [],
+ "plugin-api-version": "2.0.0"
+}
diff --git a/plugins/af_readability/init.php b/plugins/af_readability/init.php
index be9220cda..a39cc278e 100755
--- a/plugins/af_readability/init.php
+++ b/plugins/af_readability/init.php
@@ -1,6 +1,8 @@
<?php
-use andreskrey\Readability\Readability;
-use andreskrey\Readability\Configuration;
+require_once __DIR__ . "/vendor/autoload.php";
+
+use \andreskrey\Readability\Readability;
+use \andreskrey\Readability\Configuration;
class Af_Readability extends Plugin {
@@ -8,7 +10,7 @@ class Af_Readability extends Plugin {
private $host;
function about() {
- return array(1.0,
+ return array(null,
"Try to inline article content using Readability",
"fox");
}
@@ -188,8 +190,6 @@ class Af_Readability extends Plugin {
public function extract_content($url) {
- global $fetch_effective_url;
-
$tmp = UrlHelper::fetch([
"url" => $url,
"http_accept" => "text/*",
@@ -222,13 +222,13 @@ class Af_Readability extends Plugin {
foreach ($entries as $entry) {
if ($entry->hasAttribute("href")) {
$entry->setAttribute("href",
- rewrite_relative_url($fetch_effective_url, $entry->getAttribute("href")));
+ rewrite_relative_url(UrlHelper::$fetch_effective_url, $entry->getAttribute("href")));
}
if ($entry->hasAttribute("src")) {
$entry->setAttribute("src",
- rewrite_relative_url($fetch_effective_url, $entry->getAttribute("src")));
+ rewrite_relative_url(UrlHelper::$fetch_effective_url, $entry->getAttribute("src")));
}
}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/.coveralls.yml b/plugins/af_readability/vendor/andreskrey/readability.php/.coveralls.yml
new file mode 100644
index 000000000..18e6b2054
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/.coveralls.yml
@@ -0,0 +1,3 @@
+coverage_clover: test/clover.xml
+json_path: test/coveralls-upload.json
+service_name: travis-ci \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/.gitattributes b/plugins/af_readability/vendor/andreskrey/readability.php/.gitattributes
new file mode 100644
index 000000000..ea4dd8899
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/.gitattributes
@@ -0,0 +1 @@
+test/* linguist-language=PHP \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/.gitignore b/plugins/af_readability/vendor/andreskrey/readability.php/.gitignore
new file mode 100644
index 000000000..5608600f8
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/.gitignore
@@ -0,0 +1,4 @@
+.idea/
+vendor
+composer.lock
+/test.* \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/.styleci.yml b/plugins/af_readability/vendor/andreskrey/readability.php/.styleci.yml
new file mode 100644
index 000000000..f5ddf3ed9
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/.styleci.yml
@@ -0,0 +1,13 @@
+preset: recommended
+
+enabled:
+ - concat_with_spaces
+ - unalign_double_arrow
+
+disabled:
+ - concat_without_spaces
+ - align_double_arrow
+ - simplified_null_return
+ - cast_spaces
+ - trailing_comma_in_multiline_array
+ - phpdoc_align \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/.travis.yml b/plugins/af_readability/vendor/andreskrey/readability.php/.travis.yml
new file mode 100644
index 000000000..5c3bdd198
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/.travis.yml
@@ -0,0 +1,48 @@
+language: bash
+services: docker
+
+env:
+ matrix:
+ - PHP_VERSION=7.3 LIBXML_VERSION=2.9.9
+ - PHP_VERSION=7.3 LIBXML_VERSION=2.9.8
+ - PHP_VERSION=7.3 LIBXML_VERSION=2.9.7
+ - PHP_VERSION=7.3 LIBXML_VERSION=2.9.6
+ - PHP_VERSION=7.3 LIBXML_VERSION=2.9.5
+ - PHP_VERSION=7.3 LIBXML_VERSION=2.9.4
+ - PHP_VERSION=7.2 LIBXML_VERSION=2.9.9
+ - PHP_VERSION=7.2 LIBXML_VERSION=2.9.8
+ - PHP_VERSION=7.2 LIBXML_VERSION=2.9.7
+ - PHP_VERSION=7.2 LIBXML_VERSION=2.9.6
+ - PHP_VERSION=7.2 LIBXML_VERSION=2.9.5
+ - PHP_VERSION=7.2 LIBXML_VERSION=2.9.4
+ - PHP_VERSION=7.1 LIBXML_VERSION=2.9.9
+ - PHP_VERSION=7.1 LIBXML_VERSION=2.9.8
+ - PHP_VERSION=7.1 LIBXML_VERSION=2.9.7
+ - PHP_VERSION=7.1 LIBXML_VERSION=2.9.6
+ - PHP_VERSION=7.1 LIBXML_VERSION=2.9.5
+ - PHP_VERSION=7.1 LIBXML_VERSION=2.9.4
+ - PHP_VERSION=7.0 LIBXML_VERSION=2.9.9
+ - PHP_VERSION=7.0 LIBXML_VERSION=2.9.8
+ - PHP_VERSION=7.0 LIBXML_VERSION=2.9.7
+ - PHP_VERSION=7.0 LIBXML_VERSION=2.9.6
+ - PHP_VERSION=7.0 LIBXML_VERSION=2.9.5
+ - PHP_VERSION=7.0 LIBXML_VERSION=2.9.4
+
+matrix:
+ allow_failures:
+ - env: LIBXML_VERSION=2.9.9
+ - env: LIBXML_VERSION=2.9.8
+ - env: LIBXML_VERSION=2.9.7
+ - env: LIBXML_VERSION=2.9.6
+ - env: LIBXML_VERSION=2.9.5
+
+install:
+ - docker run --rm --volume $PWD:/app --workdir="/app" composer install
+
+script:
+ - docker build --build-arg PHP_VERSION=${PHP_VERSION} --build-arg LIBXML_VERSION=${LIBXML_VERSION} -t travis-build - < ./docker/php/Dockerfile
+ - docker run --volume $PWD:/app --workdir="/app" travis-build php ./vendor/bin/phpunit --coverage-clover /app/test/clover.xml
+
+after_script:
+ - docker run --volume $PWD:/app --workdir="/app" composer require php-coveralls/php-coveralls:^2.0
+ - docker run --volume $PWD:/app --workdir="/app" --env TRAVIS=${TRAVIS} --env TRAVIS_JOB_ID=${TRAVIS_JOB_ID} travis-build php ./vendor/php-coveralls/php-coveralls/bin/php-coveralls -v
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/AUTHORS.md b/plugins/af_readability/vendor/andreskrey/readability.php/AUTHORS.md
new file mode 100644
index 000000000..cc420e3a8
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/AUTHORS.md
@@ -0,0 +1,13 @@
+# Authors
+
+Readability.php developed by **Andres Rey**.
+
+Based on Arc90's readability.js (1.7.1) script available at: http://code.google.com/p/arc90labs-readability.
+Copyright (c) 2010 Arc90 Inc
+
+The AUTHORS/Contributors are (and/or have been):
+
+* Andres Rey
+* Sergiy Lavryk
+* Pedro Amorim
+* Malu Decks
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/CHANGELOG.md b/plugins/af_readability/vendor/andreskrey/readability.php/CHANGELOG.md
new file mode 100644
index 000000000..20aef9e3a
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/CHANGELOG.md
@@ -0,0 +1,145 @@
+# Change Log
+All notable changes to this project will be documented in this file.
+
+## Unreleased
+
+## [v2.1.0](https://github.com/andreskrey/readability.php/releases/tag/v2.1.0)
+- Avoid overwriting extracted metadata with similarly named keys (like `og:image` and `og:image:width`)
+- Imported new `getSiteName()` feature from JS version as of [21 Dec 2018](https://github.com/mozilla/readability/pull/504)
+- Added getFirstElementChild function to NodeTrait + test case (Issue #83)
+- Reworked the test suit to use TestPage objects and give more hints about what failed
+- Removed getWordThreshold and setWordThreshold configuration functions
+- Added NodeUtility::filterTextNodes and deprecated NodeTrait getChildren()
+- Added new DOMNodeList fake class that mimics the original DOMNodeList class but allows to add new nodes to the list
+- Added new Dockerfiles that pulls different versions of PHP and libxml. Now we are supporting 4 versions of PHP and 6 versions of libxml!
+
+## [v2.0.1](https://github.com/andreskrey/readability.php/releases/tag/v2.0.1)
+- Fixed small issue that prevented the main image from showing up in the results
+
+## [v2.0.0](https://github.com/andreskrey/readability.php/releases/tag/v2.0.0)
+
+- [BREAKING CHANGE] Bumped the minimum supported version of PHP to 7.0
+- Clean `<aside>` tags during `prepArticle()`.
+- Merged PR #58: Fix notice non-object on $parentOfTopCandidate for tumblr.com
+- Fixed issue #63: Division by zero
+- Housekeeping:
+ - Removed $parseSuccessful flag that wasn't needed anymore
+- Rename wordThreshold to charThreshold and throw deprecation notices. WordThreshold will be removed in version 3.0.
+- Added "-ad-" as unlikely candidate
+- Added Docker containers with PHP 7.0, 7.1, and 7.2 and makefile to trigger the tests.
+- Imported new code from the JS version as of [19 Nov 2018](https://github.com/mozilla/readability/commit/876c81f710711ba2afb36dd83889d4c5b4fc2743), which includes the following changes:
+ - Move phrasing contents [into paragraphs](https://github.com/mozilla/readability/commit/9f2c5cb42ee9635f091178271d66888cbb47e5dc)
+ - Improved the title detection
+ - Remove [single cell tables](https://github.com/mozilla/readability/commit/ea4165721f9105d8f1e53cfecdcfdafceaf3e4bf)
+ - Improved the detection of video related elements
+ - New test cases
+ - Various minor fixes
+
+
+## [v1.2.0](https://github.com/andreskrey/readability.php/releases/tag/v1.2.0)
+
+- Merged PR#49 (Missing object when calling `->getContent()`)
+- Imported all changes from Readability.js as of 2 March 2018 ([8525c6a](https://github.com/mozilla/readability/commit/8525c6af36d3badbe27c4672a6f2dd99ddb4097f)):
+ - Check for `<base>` elements before converting URLs to absolute.
+ - Clean `<link>` tags on `prepArticle()`
+ - Attempt to return at least some text if all the algorithm runs fail (Check PR [#423](https://github.com/mozilla/readability/pull/423) on JS version)
+ - Add new test cases for the previous changes
+ - And all other changes reflected [in this diff](https://github.com/mozilla/readability/compare/c3ff1a2d2c94c1db257b2c9aa88a4b8fbeb221c5...8525c6af36d3badbe27c4672a6f2dd99ddb4097f)
+
+## [v1.1.1](https://github.com/andreskrey/readability.php/releases/tag/v1.1.1)
+
+- Switched from assertEquals to assertSame on unit testing to avoid weak comparisons.
+- Added a safe check to avoid sending the DOMDocument as a node when scanning for node ancestors.
+- Fix issue #45: Small mistake in documentation
+- Fix issue #46: Added `data-src` as a image source path
+- Fixed bug when extracting all the image of the article (Was extracting images from the original DOM instead of the parsed one)
+- Added the `->getDOMDocument()` getter to retrieve the fully parsed DOMDocument
+- Merged PR #48 that allows passing an array as configuration (@topotru)
+
+## [v1.1.0](https://github.com/andreskrey/readability.php/releases/tag/v1.1.0)
+
+- Added 'data-orig' as an URL source for images
+- Removed 'modal' as a negative property from classes
+- Added option to inject a logger
+- Removed all references to the `data-readability` tags that don't apply anymore to the new structure
+- Merged PR #38 (Missing DOMEntityReference)
+
+## [v1.0.0](https://github.com/andreskrey/readability.php/releases/tag/v1.0.0)
+
+- Node encapsulation is gone. Pre v1 all nodes where encapsulated in a Readability class, which created lots of trouble with dependencies, responsibilities, and properties. Now all the encapsulation is gone: all the DOMNodes inside the Readability class are extensions of the original DOM classes, which allows the system to take advantage of the functions and properties of DOMDocument.
+- HTMLParser is gone, Readability is the new main class. Switched things a bit for this release. Pre v1 you had to create an HTMLParser class to parse the HTML. Now you have to create a Readability class, feed it the text, and check the result.
+- No more dumb arrays as a result. If you want to get the title, content, images, or anything else you'll have to use the getters of the Readability class.
+- Environment class is gone. Now you have to create a configuration class and use setters to set your configuration options.
+- Exceptions. Make sure you wrap your Readability class in a try catch block, because if it fails to parse your HTML, it will throw a `ParseException`.
+- Minimum PHP version bumped to 5.6.
+
+## [v0.3.1](https://github.com/andreskrey/readability.php/releases/tag/v0.3.1)
+
+- Trim titles when detecting hierarchical separators to avoid false negatives on strings with spaces.
+- Fix issue when converting divs to p nodes and never rating them (issue #29)
+- Fix "Unsupported operand types" (PR #31)
+- Fix division by zero when no title was found (issue #32)
+- New function to retrieve all images at once (PR #30)
+- Get the title from the `<title>` tag before searching on the `<meta>` tags
+
+## [v0.3.0](https://github.com/andreskrey/readability.php/releases/tag/v0.3.0)
+
+- Merged PR #24. Fixes notice when trying to extract `og:image`
+- Up to date to commit [eb221c5](https://github.com/mozilla/readability/commit/c3ff1a2d2c94c1db257b2c9aa88a4b8fbeb221c5) (2017-10-16), which includes the following changes:
+ - New tags added to the unlikelyCandidates regex
+ - Detection and removal of hierarchical separators in titles
+ - Added more tags to clean after parsing the article (`button`, `textarea`, `select`, etc.)
+ - New way to detect empty nodes (including a edge case where a node with a `&nsbp;` was detected as a node with content)
+ - Better approach to find a top candidate (specially when a top candidate is the only child of a parent node, which allows a more accurate joining of sibling elements)
+ - Detect text direction (`ltr` or `rtl`)
+ - Detect and mark data tables to avoid removing them during final clean up
+ - Major fixes when scanning and deleting nodes (no need to traverse backwards anymore)
+ - Node cleaning via regex matches
+ - Clean table attributes during final clean up.
+- Added license
+
+Next release after this one will be v1 and will be a major refactor around Readability and HTMLParser methods and responsibilities.
+
+## [v0.2.2](https://github.com/andreskrey/readability.php/releases/tag/v0.2.2)
+
+- Added a safecheck for really nasty HTML
+- Added summonCthulhu option, to remove all script tags via regex
+
+## [v0.2.1](https://github.com/andreskrey/readability.php/releases/tag/v0.2.1)
+
+- Added `normalizeEntities` flag to convert UTF-8 characters to its HTML Entity equivalent. Fixes bugs on htmls with mixed encoding.
+- Added more information to the readme.md file
+- New way to create a backup DOM: not creating a backup. In the previous version, the system cloned the $this->dom object to keep it as a backup in order to restart the algorithm with other flags, if needed. This seemed to work until I realized that *sometimes* the backup changes even if we are not touching it. Seems that the `dom` and `backupdom` objects are linked and *some* changes on the dom object reach the bakcupdom object. The new approach consists in deleting the backupdom object and recreating from scratch the dom object. Of course this has a performance impact, but seems to be quite low.
+
+## [v0.2.0](https://github.com/andreskrey/readability.php/releases/tag/v0.2.0)
+
+100% complete port of Readability.js!
+- Every test unit passes
+- Readability.php produces the same exact output as Readability.js
+- I'm happy :)
+
+### Fixed
+- Lots of bugs
+- Merged PR by DavidFricker to avoid exceptions while grabbing the document content
+
+### Added
+- substituteEntities flag, to avoid replacing especial characters with HTML entities. There's nothing we can do about `&nbsp;`, that entity is replaced by libxml and there's no way to disable it.
+- Named data sets so it's easier to detect which test case is failing.
+
+### Removed
+
+- Couple of test cases that involved broken JS. There's nothing we can do about JS spilling onto the text.
+
+## [0.0.3-alpha](https://github.com/andreskrey/readability.php/releases/tag/v0.0.3v-alpha)
+
+We are getting closer to be a 100% complete port of Readability.js!
+- Added prepArticle to remove junk after selecting the top candidates.
+- Added a function to restore score after selecting top candidates. This basically works by scanning the data-readability tag and restoring the score to the contentScore variable. This is an horrible hack and should be removed once we ditch the Element interface of html-to-markdown and start extending the DOMDocument object.
+- Switched all strlen functions to mb_strlen
+- Fixed lots of bugs and pretty sure that introduced a bunch of new ones.
+
+## [0.0.2-alpha](https://github.com/andreskrey/readability.php/releases/tag/v0.0.2-alpha)
+ - Last version I'm using master as the main development branch. All unreleased changes and main development will happen in the develop branch.
+
+## [0.0.1-alpha](https://github.com/andreskrey/readability.php/releases/tag/v0.0.1-alpha)
+ - Initial release
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/CONTRIBUTING.md b/plugins/af_readability/vendor/andreskrey/readability.php/CONTRIBUTING.md
new file mode 100644
index 000000000..345f71565
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/CONTRIBUTING.md
@@ -0,0 +1,30 @@
+# Contributing
+
+Contributions are **welcome** and will be fully **credited**.
+
+We accept contributions via Pull Requests on [Github](https://github.com/andreskrey/readability.php/).
+
+
+## Pull Requests
+
+- **Document any change in behaviour** - Make sure the `README.md` and any other relevant documentation are kept up-to-date.
+
+- **Add tests!** - Your patch won't be accepted if it doesn't have tests.
+
+- **Create feature branches** - Don't ask us to pull from your master branch.
+
+- **One pull request per feature** - If you want to do more than one thing, send multiple pull requests.
+
+- **Send coherent history** - Make sure each individual commit in your pull request is meaningful. If you had to make multiple intermediate commits while developing, please [squash them](http://www.git-scm.com/book/en/v2/Git-Tools-Rewriting-History#Changing-Multiple-Commit-Messages) before submitting.
+
+- **Don't forget to add yourself to AUTHORS.md** - If you want to be credited, make sure you add your information (whatever you want to include) in `AUTHORS.md`.
+
+
+## Running Tests
+
+``` bash
+$ make test-all #requires docker and docker-compose
+```
+
+
+**Happy coding**!
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/LICENSE b/plugins/af_readability/vendor/andreskrey/readability.php/LICENSE
new file mode 100644
index 000000000..261eeb9e9
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/LICENSE
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/Makefile b/plugins/af_readability/vendor/andreskrey/readability.php/Makefile
new file mode 100644
index 000000000..b3bf15040
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/Makefile
@@ -0,0 +1,30 @@
+.PHONY: test-all
+
+test-all: start test-7.3 test-7.2 test-7.1 test-7.0 stop
+
+test-7.3:
+ docker-compose exec php-7.3-libxml-2.9.9 php /app/vendor/phpunit/phpunit/phpunit --configuration /app/phpunit.xml
+
+test-7.2:
+ docker-compose exec php-7.2-libxml-2.9.9 php /app/vendor/phpunit/phpunit/phpunit --configuration /app/phpunit.xml
+
+test-7.1:
+ docker-compose exec php-7.1-libxml-2.9.9 php /app/vendor/phpunit/phpunit/phpunit --configuration /app/phpunit.xml
+
+test-7.0:
+ docker-compose exec php-7.0-libxml-2.9.9 php /app/vendor/phpunit/phpunit/phpunit --configuration /app/phpunit.xml
+
+start:
+ docker-compose up -d php-7.3-libxml-2.9.9 php-7.2-libxml-2.9.9 php-7.1-libxml-2.9.9 php-7.0-libxml-2.9.9
+
+stop:
+ docker-compose stop
+
+test-all-versions:
+ for php_version in 7.0 7.1 7.2 7.3; do \
+ for libxml_version in 2.9.4 2.9.5 2.9.6 2.9.7 2.9.8 2.9.9; do \
+ docker-compose up -d php-$$php_version-libxml-$$libxml_version; \
+ docker-compose exec php-$$php_version-libxml-$$libxml_version php /app/vendor/phpunit/phpunit/phpunit --configuration /app/phpunit.xml; \
+ done \
+ done
+ docker-compose stop
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/README.md b/plugins/af_readability/vendor/andreskrey/readability.php/README.md
new file mode 100644
index 000000000..b6b1e2922
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/README.md
@@ -0,0 +1,200 @@
+# Readability.php
+[![Latest Stable Version](https://poser.pugx.org/andreskrey/readability.php/v/stable)](https://packagist.org/packages/andreskrey/readability.php) [![Build Status](https://travis-ci.org/andreskrey/readability.php.svg?branch=master)](https://travis-ci.org/andreskrey/readability.php) [![Coverage Status](https://coveralls.io/repos/github/andreskrey/readability.php/badge.svg?branch=master)](https://coveralls.io/github/andreskrey/readability.php/?branch=master) [![StyleCI](https://styleci.io/repos/71042668/shield?branch=master)](https://styleci.io/repos/71042668) [![Total Downloads](https://poser.pugx.org/andreskrey/readability.php/downloads)](https://packagist.org/packages/andreskrey/readability.php) [![Monthly Downloads](https://poser.pugx.org/andreskrey/readability.php/d/monthly)](https://packagist.org/packages/andreskrey/readability.php)
+
+PHP port of *Mozilla's* **[Readability.js](https://github.com/mozilla/readability)**. Parses html text (usually news and other articles) and returns **title**, **author**, **main image** and **text content** without nav bars, ads, footers, or anything that isn't the main body of the text. Analyzes each node, gives them a score, and determines what's relevant and what can be discarded.
+
+![Screenshot](https://raw.githubusercontent.com/andreskrey/readability.php/assets/screenshot.png)
+
+The project aim is to be a 1 to 1 port of Mozilla's version and to follow closely all changes introduced there, but there are some major differences on the structure. Most of the code is a 1:1 copy –even the comments were imported– but some functions and structures were adapted to suit better the PHP language.
+
+**Lead Developer**: Andres Rey
+
+## Requirements
+
+PHP 7.0+, ext-dom, ext-xml, and ext-mbstring. To install all this dependencies (in the rare case your system does not have them already), you could try something like this in *nix like environments:
+
+`$ sudo apt-get install php7.1-xml php7.1-mbstring`
+
+## How to use it
+
+First you have to require the library using composer:
+
+`composer require andreskrey/readability.php`
+
+Then, create a Readability class and pass a Configuration class, feed the `parse()` function with your HTML and echo the variable:
+
+```php
+use andreskrey\Readability\Readability;
+use andreskrey\Readability\Configuration;
+use andreskrey\Readability\ParseException;
+
+$readability = new Readability(new Configuration());
+
+$html = file_get_contents('http://your.favorite.newspaper/article.html');
+
+try {
+ $readability->parse($html);
+ echo $readability;
+} catch (ParseException $e) {
+ echo sprintf('Error processing text: %s', $e->getMessage());
+}
+```
+
+Your script will output the parsed text or inform about any errors. You should always wrap the `->parse` call in a try/catch block because if the HTML cannot be parsed correctly, a `ParseException` will be thrown.
+
+If you want to have a finer control on the output, just call the properties one by one, wrapping it with your own HTML.
+
+```php
+<h1><?= $readability->getTitle(); ?></h1>
+<h2>By <?= $readability->getAuthor(); ?></h2>
+<div class="content"><?= $readability->getContent(); ?></div>
+
+```
+
+Here's a list of the available properties:
+
+- Article title: `->getTitle();`
+- Article content: `->getContent();`
+- Excerpt: `->getExcerpt();`
+- Main image: `->getImage();`
+- All images: `->getImages();`
+- Author: `->getAuthor();`
+- Text direction (ltr or rtl): `->getDirection();`
+
+If you need to tweak the final HTML you can get the DOMDocument of the result by calling `->getDOMDocument()`.
+
+## Options
+
+You can change the behaviour of Readability via the Configuration object. For example, if you want to fix relative URLs and declare the original URL, you could set up the configuration like this:
+
+```php
+$configuration = new Configuration();
+$configuration
+ ->setFixRelativeURLs(true)
+ ->setOriginalURL('http://my.newspaper.url/article/something-interesting-to-read.html');
+```
+Also you can pass an array of configuration parameters to the constructor:
+```php
+$configuration = new Configuration([
+ 'fixRelativeURLs' => true,
+ 'originalURL' => 'http://my.newspaper.url/article/something-interesting-to-read.html',
+ // other parameters ... listing below
+]);
+```
+
+
+Then you pass this Configuration object to Readability. The following options are available. Remember to prepend `set` when calling them using native setters.
+
+- **MaxTopCandidates**: default value `5`, max amount of top level candidates.
+- **WordThreshold**: default value `500`, minimum amount of characters to consider that the article was parsed successful.
+- **ArticleByLine**: default value `false`, search for the article byline and remove it from the text. It will be moved to the article metadata.
+- **StripUnlikelyCandidates**: default value `true`, remove nodes that are unlikely to have relevant information. Useful for debugging or parsing complex or non-standard articles.
+- **CleanConditionally**: default value `true`, remove certain nodes after parsing to return a cleaner result.
+- **WeightClasses**: default value `true`, weight classes during the rating phase.
+- **FixRelativeURLs**: default value `false`, convert relative URLs to absolute. Like `/test` to `http://host/test`.
+- **SubstituteEntities**: default value `false`, disables the `substituteEntities` flag of libxml. Will avoid substituting HTML entities. Like `&aacute;` to á.
+- **NormalizeEntities**: default value `false`, converts UTF-8 characters to its HTML Entity equivalent. Useful to parse HTML with mixed encoding.
+- **OriginalURL**: default value `http://fakehost`, original URL from the article used to fix relative URLs.
+- **SummonCthulhu**: default value `false`, remove all `<script>` nodes via regex. This is not ideal as it might break things, but might be the only solution to [libxml problems with unescaped javascript](https://github.com/andreskrey/readability.php#known-issues). If you're not parsing Javascript tutorials, it's recommended to always set this option as `true`.
+
+### Debug log
+
+Logging is optional and you will have to inject your own logger to save all the debugging messages. To do so, use a logger that implements the [PSR-3 logging interface](https://github.com/php-fig/log) and pass it to the configuration object. For example:
+
+```
+// Using monolog
+
+$log = new Logger('Readability');
+$log->pushHandler(new StreamHandler('path/to/my/log.txt'));
+
+$configuration->setLogger($log);
+```
+
+In the log you will find information about the parsed nodes, why they were removed, and why they were considered relevant to the final article.
+
+## Limitations
+
+Of course the main limitation is PHP. Websites that load the content through lazy loading, AJAX, or any type of javascript fueled call will be ignored (actually, *not ran*) and the resulting text will be incorrect, compared to the readability.js results. All the articles you want to parse with readability.php need to be complete and all the content should be in the HTML already.
+
+## Known Issues
+
+### Javascript spilling into the text body
+
+DOMDocument has some issues while parsing javascript with unescaped HTML on strings. Consider the following code:
+
+```html
+<div> <!-- Offending div without closing tag -->
+<script type="text/javascript">
+ var test = '</div>';
+ // I should not appear on the result
+</script>
+```
+
+If you would like to remove the scripts of the HTML (like readability does), you would expect ending up with just one div and one comment on the final HTML. The problem is that libxml takes that closing div tag inside the javascript string as a HTML tag, effectively closing the unclosed tag and leaving the rest of the javascript as a string within a P tag. If you save that node, the final HTML will end up like this:
+
+```html
+<div> <!-- Offending div without closing tag -->
+<p>';
+ // I should not appear on the result
+</p></div>
+```
+
+This is a libxml issue and not a Readability.php bug.
+
+There's a workaround for this: using the `summonCthulhu` option. This will remove all script tags **via regex**, which is not ideal because you may end up summoning [the lord of darkness](https://stackoverflow.com/a/1732454).
+
+### &nbsp entities disappearing
+
+`&nbsp` entities are converted to spaces automatically by libxml and there's no way to disable it.
+
+### Self closing tags rendering as fully expanded tags
+
+Self closing tags like `<br />` get automatically expanded to `<br></br`. No way to disable it in libxml.
+
+## Dependencies
+
+Readability.php uses the [PSR Log](https://github.com/php-fig/log) interface to define the allowed type of loggers. [Monolog](https://github.com/Seldaek/monolog) is only required on development installations. (`--dev` option during `composer install`).
+
+## To-do
+
+- Keep up with Readability.js changes
+- Add a small template engine for the __toString() method, instead of using a hardcoded one.
+- Replace all the `iterator_to_array` calls with a custom PHP generator that keeps track of the removed or altered nodes.
+
+## How it works
+
+Readability parses all the text with DOMDocument, scans the text nodes and gives the a score, based on the amount of words, links and type of element. Then it selects the highest scoring element and creates a new DOMDocument with all its siblings. Each sibling is scored to discard useless elements, like nav bars, empty nodes, etc.
+
+## Testing
+
+Any version of PHP installed locally should be enough to develop new features and add new test cases. If you want to be 100% sure that your change doesn't create any issues with other versions of PHP, you can use the provided Docker containers to test currently in 7.0, 7.1, and 7.2.
+
+You'll need Docker and Docker Compose for this. To run all the tests in all the available versions just type the following command:
+
+```bash
+make test-all
+```
+
+This will start all the containers and run all the tests on every supported version of PHP. If you want to test against a specific version, you can use `make test-7.0`, `make test-7.1`, or `make test-7.2`.
+
+## Code porting
+
+Up to date with readability.js as of [19 Nov 2018](https://github.com/mozilla/readability/commit/876c81f710711ba2afb36dd83889d4c5b4fc2743).
+
+## License
+
+Based on Arc90's readability.js (1.7.1) script available at: http://code.google.com/p/arc90labs-readability
+
+ Copyright (c) 2010 Arc90 Inc
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/composer.json b/plugins/af_readability/vendor/andreskrey/readability.php/composer.json
new file mode 100644
index 000000000..bf515682c
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/composer.json
@@ -0,0 +1,37 @@
+{
+ "name": "andreskrey/readability.php",
+ "type": "library",
+ "description": "A PHP port of Readability.js",
+ "keywords": ["readability", "html"],
+ "homepage": "https://github.com/andreskrey/readability",
+ "license": "Apache-2.0",
+ "authors": [
+ {
+ "name": "Andres Rey",
+ "email": "[email protected]",
+ "role": "Lead Developer"
+ }
+ ],
+ "autoload": {
+ "psr-4": {
+ "andreskrey\\Readability\\": "src/"
+ }
+ },
+ "autoload-dev": {
+ "psr-4": {"andreskrey\\Readability\\Test\\": "test"}
+ },
+ "require": {
+ "php": ">=7.0.0",
+ "ext-dom": "*",
+ "ext-xml": "*",
+ "ext-mbstring": "*",
+ "psr/log": "^1.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^6.5",
+ "monolog/monolog": "^1.24"
+ },
+ "suggest": {
+ "monolog/monolog": "Allow logging debug information"
+ }
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/docker-compose.yml b/plugins/af_readability/vendor/andreskrey/readability.php/docker-compose.yml
new file mode 100644
index 000000000..e58b1b0bf
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/docker-compose.yml
@@ -0,0 +1,196 @@
+version: '3'
+
+services:
+ php-7.0-libxml-2.9.4: &template
+ build:
+ context: ./docker/php
+ args:
+ LIBXML_VERSION: 2.9.4
+ PHP_VERSION: 7.0
+ volumes:
+ - ./:/app
+ tty: true
+
+ php-7.0-libxml-2.9.5:
+ <<: *template
+ build:
+ context: ./docker/php
+ args:
+ LIBXML_VERSION: 2.9.5
+ PHP_VERSION: 7.0
+
+ php-7.0-libxml-2.9.6:
+ <<: *template
+ build:
+ context: ./docker/php
+ args:
+ LIBXML_VERSION: 2.9.6
+ PHP_VERSION: 7.0
+
+ php-7.0-libxml-2.9.7:
+ <<: *template
+ build:
+ context: ./docker/php
+ args:
+ LIBXML_VERSION: 2.9.7
+ PHP_VERSION: 7.0
+
+ php-7.0-libxml-2.9.8:
+ <<: *template
+ build:
+ context: ./docker/php
+ args:
+ LIBXML_VERSION: 2.9.8
+ PHP_VERSION: 7.0
+
+ php-7.0-libxml-2.9.9:
+ <<: *template
+ build:
+ context: ./docker/php
+ args:
+ LIBXML_VERSION: 2.9.9
+ PHP_VERSION: 7.0
+
+ php-7.1-libxml-2.9.4:
+ <<: *template
+ build:
+ context: ./docker/php
+ args:
+ LIBXML_VERSION: 2.9.4
+ PHP_VERSION: 7.1
+
+ php-7.1-libxml-2.9.5:
+ <<: *template
+ build:
+ context: ./docker/php
+ args:
+ LIBXML_VERSION: 2.9.5
+ PHP_VERSION: 7.1
+
+ php-7.1-libxml-2.9.6:
+ <<: *template
+ build:
+ context: ./docker/php
+ args:
+ LIBXML_VERSION: 2.9.6
+ PHP_VERSION: 7.1
+
+ php-7.1-libxml-2.9.7:
+ <<: *template
+ build:
+ context: ./docker/php
+ args:
+ LIBXML_VERSION: 2.9.7
+ PHP_VERSION: 7.1
+
+ php-7.1-libxml-2.9.8:
+ <<: *template
+ build:
+ context: ./docker/php
+ args:
+ LIBXML_VERSION: 2.9.8
+ PHP_VERSION: 7.1
+
+ php-7.1-libxml-2.9.9:
+ <<: *template
+ build:
+ context: ./docker/php
+ args:
+ LIBXML_VERSION: 2.9.9
+ PHP_VERSION: 7.1
+
+ php-7.2-libxml-2.9.4:
+ <<: *template
+ build:
+ context: ./docker/php
+ args:
+ LIBXML_VERSION: 2.9.4
+ PHP_VERSION: 7.2
+
+ php-7.2-libxml-2.9.5:
+ <<: *template
+ build:
+ context: ./docker/php
+ args:
+ LIBXML_VERSION: 2.9.5
+ PHP_VERSION: 7.2
+
+ php-7.2-libxml-2.9.6:
+ <<: *template
+ build:
+ context: ./docker/php
+ args:
+ LIBXML_VERSION: 2.9.6
+ PHP_VERSION: 7.2
+
+ php-7.2-libxml-2.9.7:
+ <<: *template
+ build:
+ context: ./docker/php
+ args:
+ LIBXML_VERSION: 2.9.7
+ PHP_VERSION: 7.2
+
+ php-7.2-libxml-2.9.8:
+ <<: *template
+ build:
+ context: ./docker/php
+ args:
+ LIBXML_VERSION: 2.9.8
+ PHP_VERSION: 7.2
+
+ php-7.2-libxml-2.9.9:
+ <<: *template
+ build:
+ context: ./docker/php
+ args:
+ LIBXML_VERSION: 2.9.9
+ PHP_VERSION: 7.2
+
+ php-7.3-libxml-2.9.4:
+ <<: *template
+ build:
+ context: ./docker/php
+ args:
+ LIBXML_VERSION: 2.9.4
+ PHP_VERSION: 7.3
+
+ php-7.3-libxml-2.9.5:
+ <<: *template
+ build:
+ context: ./docker/php
+ args:
+ LIBXML_VERSION: 2.9.5
+ PHP_VERSION: 7.3
+
+ php-7.3-libxml-2.9.6:
+ <<: *template
+ build:
+ context: ./docker/php
+ args:
+ LIBXML_VERSION: 2.9.6
+ PHP_VERSION: 7.3
+
+ php-7.3-libxml-2.9.7:
+ <<: *template
+ build:
+ context: ./docker/php
+ args:
+ LIBXML_VERSION: 2.9.7
+ PHP_VERSION: 7.3
+
+ php-7.3-libxml-2.9.8:
+ <<: *template
+ build:
+ context: ./docker/php
+ args:
+ LIBXML_VERSION: 2.9.8
+ PHP_VERSION: 7.3
+
+ php-7.3-libxml-2.9.9:
+ <<: *template
+ build:
+ context: ./docker/php
+ args:
+ LIBXML_VERSION: 2.9.9
+ PHP_VERSION: 7.3
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/docker/php/Dockerfile b/plugins/af_readability/vendor/andreskrey/readability.php/docker/php/Dockerfile
new file mode 100644
index 000000000..8971d1f1b
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/docker/php/Dockerfile
@@ -0,0 +1,8 @@
+ARG PHP_VERSION
+ARG LIBXML_VERSION
+FROM andreskrey/php-${PHP_VERSION}:libxml-${LIBXML_VERSION}
+
+RUN pecl install xdebug && docker-php-ext-enable xdebug
+
+# Required by coveralls
+RUN apt-get install git -y
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/phpunit.xml b/plugins/af_readability/vendor/andreskrey/readability.php/phpunit.xml
new file mode 100644
index 000000000..291085a71
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/phpunit.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<phpunit bootstrap="vendor/autoload.php"
+ colors="true"
+ stopOnFailure="false"
+ stopOnError="false">
+ <testsuites>
+ <testsuite name="Readability.php Test Suite">
+ <directory>./test/</directory>
+ </testsuite>
+ </testsuites>
+ <filter>
+ <whitelist>
+ <directory suffix=".php">src/</directory>
+ </whitelist>
+ </filter>
+</phpunit>
diff --git a/plugins/af_readability/vendor/andreskrey/Readability/Configuration.php b/plugins/af_readability/vendor/andreskrey/readability.php/src/Configuration.php
index 0632399c6..0632399c6 100644
--- a/plugins/af_readability/vendor/andreskrey/Readability/Configuration.php
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/src/Configuration.php
diff --git a/plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMAttr.php b/plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMAttr.php
index 91729f3b1..91729f3b1 100644
--- a/plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMAttr.php
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMAttr.php
diff --git a/plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMCdataSection.php b/plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMCdataSection.php
index 4535e4e99..4535e4e99 100644
--- a/plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMCdataSection.php
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMCdataSection.php
diff --git a/plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMCharacterData.php b/plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMCharacterData.php
index e4db11a06..e4db11a06 100644
--- a/plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMCharacterData.php
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMCharacterData.php
diff --git a/plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMComment.php b/plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMComment.php
index 13b004aff..13b004aff 100644
--- a/plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMComment.php
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMComment.php
diff --git a/plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMDocument.php b/plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMDocument.php
index 81e9c7de6..81e9c7de6 100644
--- a/plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMDocument.php
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMDocument.php
diff --git a/plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMDocumentFragment.php b/plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMDocumentFragment.php
index bcb89468d..bcb89468d 100644
--- a/plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMDocumentFragment.php
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMDocumentFragment.php
diff --git a/plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMDocumentType.php b/plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMDocumentType.php
index 18705a7a7..18705a7a7 100644
--- a/plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMDocumentType.php
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMDocumentType.php
diff --git a/plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMElement.php b/plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMElement.php
index c07670bf7..c07670bf7 100644
--- a/plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMElement.php
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMElement.php
diff --git a/plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMEntity.php b/plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMEntity.php
index 8493e7319..8493e7319 100644
--- a/plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMEntity.php
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMEntity.php
diff --git a/plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMEntityReference.php b/plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMEntityReference.php
index 32cecb75c..32cecb75c 100644
--- a/plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMEntityReference.php
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMEntityReference.php
diff --git a/plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMNode.php b/plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMNode.php
index 7c3c4f3a2..7c3c4f3a2 100644
--- a/plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMNode.php
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMNode.php
diff --git a/plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMNodeList.php b/plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMNodeList.php
index 5149c0b98..5149c0b98 100644
--- a/plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMNodeList.php
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMNodeList.php
diff --git a/plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMNotation.php b/plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMNotation.php
index 2e888ce00..2e888ce00 100644
--- a/plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMNotation.php
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMNotation.php
diff --git a/plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMProcessingInstruction.php b/plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMProcessingInstruction.php
index 9dd4c5c70..9dd4c5c70 100644
--- a/plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMProcessingInstruction.php
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMProcessingInstruction.php
diff --git a/plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMText.php b/plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMText.php
index 42c575b49..42c575b49 100644
--- a/plugins/af_readability/vendor/andreskrey/Readability/Nodes/DOM/DOMText.php
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/DOM/DOMText.php
diff --git a/plugins/af_readability/vendor/andreskrey/Readability/Nodes/NodeTrait.php b/plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/NodeTrait.php
index 5198bbb5f..5198bbb5f 100644
--- a/plugins/af_readability/vendor/andreskrey/Readability/Nodes/NodeTrait.php
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/NodeTrait.php
diff --git a/plugins/af_readability/vendor/andreskrey/Readability/Nodes/NodeUtility.php b/plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/NodeUtility.php
index cbf78bae0..cbf78bae0 100644
--- a/plugins/af_readability/vendor/andreskrey/Readability/Nodes/NodeUtility.php
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/src/Nodes/NodeUtility.php
diff --git a/plugins/af_readability/vendor/andreskrey/Readability/ParseException.php b/plugins/af_readability/vendor/andreskrey/readability.php/src/ParseException.php
index 646c04a37..646c04a37 100644
--- a/plugins/af_readability/vendor/andreskrey/Readability/ParseException.php
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/src/ParseException.php
diff --git a/plugins/af_readability/vendor/andreskrey/Readability/Readability.php b/plugins/af_readability/vendor/andreskrey/readability.php/src/Readability.php
index 6bcbf78d7..6bcbf78d7 100644
--- a/plugins/af_readability/vendor/andreskrey/Readability/Readability.php
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/src/Readability.php
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/ConfigurationTest.php b/plugins/af_readability/vendor/andreskrey/readability.php/test/ConfigurationTest.php
new file mode 100644
index 000000000..b3810ed73
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/ConfigurationTest.php
@@ -0,0 +1,92 @@
+<?php
+
+namespace andreskrey\Readability\Test;
+
+use andreskrey\Readability\Configuration;
+use Monolog\Handler\NullHandler;
+use Monolog\Logger;
+
+/**
+ * Class ConfigurationTest.
+ */
+class ConfigurationTest extends \PHPUnit\Framework\TestCase
+{
+ /**
+ * @dataProvider getParams
+ *
+ * @param array $params
+ */
+ public function testConfigurationConstructorSetsParameters(array $params)
+ {
+ $config = new Configuration($params);
+ $this->doEqualsAsserts($config, $params);
+ }
+
+ /**
+ * @dataProvider getParams
+ *
+ * @param array $params
+ */
+ public function testInvalidParameterIsNotInConfig(array $params)
+ {
+ $config = new Configuration($params);
+ $this->assertArrayNotHasKey('invalidParameter', $config->toArray(), 'Invalid param key is not present in config');
+ }
+
+ /**
+ * @param Configuration $config
+ * @param array $options
+ */
+ private function doEqualsAsserts(Configuration $config, array $options)
+ {
+ $this->assertEquals($options['maxTopCandidates'], $config->getMaxTopCandidates());
+ $this->assertEquals($options['charThreshold'], $config->getCharThreshold());
+ $this->assertEquals($options['articleByLine'], $config->getArticleByLine());
+ $this->assertEquals($options['stripUnlikelyCandidates'], $config->getStripUnlikelyCandidates());
+ $this->assertEquals($options['cleanConditionally'], $config->getCleanConditionally());
+ $this->assertEquals($options['weightClasses'], $config->getWeightClasses());
+ $this->assertEquals($options['fixRelativeURLs'], $config->getFixRelativeURLs());
+ $this->assertEquals($options['substituteEntities'], $config->getSubstituteEntities());
+ $this->assertEquals($options['normalizeEntities'], $config->getNormalizeEntities());
+ $this->assertEquals($options['originalURL'], $config->getOriginalURL());
+ $this->assertEquals($options['summonCthulhu'], $config->getOriginalURL());
+ }
+
+ /**
+ * @return array
+ */
+ public function getParams()
+ {
+ return [[
+ 'All current parameters' => [
+ 'maxTopCandidates' => 3,
+ 'wordThreshold' => 500,
+ 'charThreshold' => 500,
+ 'articleByLine' => true,
+ 'stripUnlikelyCandidates' => false,
+ 'cleanConditionally' => false,
+ 'weightClasses' => false,
+ 'fixRelativeURLs' => true,
+ 'substituteEntities' => true,
+ 'normalizeEntities' => true,
+ 'originalURL' => 'my.original.url',
+ 'summonCthulhu' => 'my.original.url',
+ 'invalidParameter' => 'invalidParameterValue'
+ ]
+ ]];
+ }
+
+ /**
+ * Test if a logger interface can be injected and retrieved from the Configuration object.
+ */
+ public function testLoggerCanBeInjected()
+ {
+ $configuration = new Configuration();
+ $log = new Logger('Readability');
+ $log->pushHandler(new NullHandler());
+
+ $configuration->setLogger($log);
+
+ $this->assertSame($log, $configuration->getLogger());
+ }
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/ReadabilityTest.php b/plugins/af_readability/vendor/andreskrey/readability.php/test/ReadabilityTest.php
new file mode 100644
index 000000000..ca208e894
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/ReadabilityTest.php
@@ -0,0 +1,148 @@
+<?php
+
+namespace andreskrey\Readability\Test;
+
+use andreskrey\Readability\Configuration;
+use andreskrey\Readability\ParseException;
+use andreskrey\Readability\Readability;
+
+/**
+ * Class ReadabilityTest.
+ */
+class ReadabilityTest extends \PHPUnit\Framework\TestCase
+{
+ /**
+ * Test that Readability parses the HTML correctly and matches the expected result.
+ *
+ * @dataProvider getSamplePages
+ *
+ * @param TestPage $testPage
+ *
+ * @throws ParseException
+ */
+ public function testReadabilityParsesHTML(TestPage $testPage)
+ {
+ $options = ['OriginalURL' => 'http://fakehost/test/test.html',
+ 'FixRelativeURLs' => true,
+ 'SubstituteEntities' => true,
+ 'ArticleByLine' => true
+ ];
+
+ $configuration = new Configuration(array_merge($testPage->getConfiguration(), $options));
+
+ $readability = new Readability($configuration);
+ $readability->parse($testPage->getSourceHTML());
+
+ $this->assertSame($testPage->getExpectedHTML(), $readability->getContent(), 'Parsed text does not match the expected one.');
+ }
+
+ /**
+ * Test that Readability parses the HTML correctly and matches the expected result.
+ *
+ * @dataProvider getSamplePages
+ *
+ * @param TestPage $testPage
+ *
+ * @throws ParseException
+ */
+ public function testReadabilityParsesMetadata(TestPage $testPage)
+ {
+ $options = ['OriginalURL' => 'http://fakehost/test/test.html',
+ 'FixRelativeURLs' => true,
+ 'SubstituteEntities' => true,
+ 'ArticleByLine' => true
+ ];
+
+ $configuration = new Configuration(array_merge($testPage->getConfiguration(), $options));
+
+ $readability = new Readability($configuration);
+ $readability->parse($testPage->getSourceHTML());
+
+ $this->assertSame($testPage->getExpectedMetadata()->Author, $readability->getAuthor(), 'Parsed Author does not match expected value.');
+ $this->assertSame($testPage->getExpectedMetadata()->Direction, $readability->getDirection(), 'Parsed Direction does not match expected value.');
+ $this->assertSame($testPage->getExpectedMetadata()->Excerpt, $readability->getExcerpt(), 'Parsed Excerpt does not match expected value.');
+ $this->assertSame($testPage->getExpectedMetadata()->Image, $readability->getImage(), 'Parsed Image does not match expected value.');
+ $this->assertSame($testPage->getExpectedMetadata()->Title, $readability->getTitle(), 'Parsed Title does not match expected value.');
+ }
+
+ /**
+ * Test that Readability returns all the expected images from the test page.
+ *
+ * @param TestPage $testPage
+ * @dataProvider getSamplePages
+ *
+ * @throws ParseException
+ */
+ public function testHTMLParserParsesImages(TestPage $testPage)
+ {
+ $options = ['OriginalURL' => 'http://fakehost/test/test.html',
+ 'fixRelativeURLs' => true,
+ 'substituteEntities' => true,
+ ];
+
+ $configuration = new Configuration(array_merge($testPage->getConfiguration(), $options));
+
+ $readability = new Readability($configuration);
+ $readability->parse($testPage->getSourceHTML());
+
+ $this->assertSame($testPage->getExpectedImages(), $readability->getImages());
+ }
+
+ /**
+ * Main data provider.
+ *
+ * @return \Generator
+ */
+ public function getSamplePages()
+ {
+ $path = pathinfo(__FILE__, PATHINFO_DIRNAME) . DIRECTORY_SEPARATOR . 'test-pages';
+ $testPages = scandir($path);
+
+ foreach (array_slice($testPages, 2) as $testPage) {
+ $testCasePath = $path . DIRECTORY_SEPARATOR . $testPage . DIRECTORY_SEPARATOR;
+
+ $source = file_get_contents($testCasePath . 'source.html');
+ $expectedHTML = file_get_contents($testCasePath . 'expected.html');
+ $expectedImages = json_decode(file_get_contents($testCasePath . 'expected-images.json'), true);
+ $expectedMetadata = json_decode(file_get_contents($testCasePath . 'expected-metadata.json'));
+ $configuration = file_exists($testCasePath . 'config.json') ? json_decode(file_get_contents($testCasePath . 'config.json'), true) : [];
+
+ yield $testPage => [new TestPage($configuration, $source, $expectedHTML, $expectedImages, $expectedMetadata)];
+ }
+ }
+
+ /**
+ * Test that Readability throws an exception with malformed HTML.
+ *
+ * @throws ParseException
+ */
+ public function testReadabilityThrowsExceptionWithMalformedHTML()
+ {
+ $parser = new Readability(new Configuration());
+ $this->expectException(ParseException::class);
+ $this->expectExceptionMessage('Invalid or incomplete HTML.');
+ $parser->parse('<html>');
+ }
+
+ /**
+ * Test that Readability throws an exception with incomplete or short HTML.
+ *
+ * @throws ParseException
+ */
+ public function testReadabilityThrowsExceptionWithUnparseableHTML()
+ {
+ $parser = new Readability(new Configuration());
+ $this->expectException(ParseException::class);
+ $this->expectExceptionMessage('Could not parse text.');
+ $parser->parse('<html><body><p></p></body></html>');
+ }
+
+ /**
+ * Test that the Readability object has no content as soon as it is instantiated.
+ */
+ public function testReadabilityCallGetContentWithNoContent()
+ {
+ $parser = new Readability(new Configuration());
+ $this->assertNull($parser->getContent());
+ }
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/TestPage.php b/plugins/af_readability/vendor/andreskrey/readability.php/test/TestPage.php
new file mode 100644
index 000000000..ed6f92e7c
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/TestPage.php
@@ -0,0 +1,61 @@
+<?php
+
+namespace andreskrey\Readability\Test;
+
+class TestPage
+{
+ private $configuration;
+ private $sourceHTML;
+ private $expectedHTML;
+ private $expectedImages;
+ private $expectedMetadata;
+
+ public function __construct($configuration, $sourceHTML, $expectedHTML, $expectedImages, $expectedMetadata)
+ {
+ $this->configuration = $configuration;
+ $this->sourceHTML = $sourceHTML;
+ $this->expectedHTML = $expectedHTML;
+ $this->expectedImages = $expectedImages;
+ $this->expectedMetadata = $expectedMetadata;
+ }
+
+ /**
+ * @return array
+ */
+ public function getConfiguration()
+ {
+ return $this->configuration;
+ }
+
+ /**
+ * @return null
+ */
+ public function getSourceHTML()
+ {
+ return $this->sourceHTML;
+ }
+
+ /**
+ * @return null
+ */
+ public function getExpectedHTML()
+ {
+ return $this->expectedHTML;
+ }
+
+ /**
+ * @return mixed
+ */
+ public function getExpectedImages()
+ {
+ return $this->expectedImages;
+ }
+
+ /**
+ * @return \stdClass
+ */
+ public function getExpectedMetadata()
+ {
+ return $this->expectedMetadata;
+ }
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/001/config.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/001/config.json
new file mode 100644
index 000000000..0ac6816ed
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/001/config.json
@@ -0,0 +1,3 @@
+{
+ "ArticleByLine": true
+} \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/001/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/001/expected-images.json
new file mode 100644
index 000000000..5bed34dc9
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/001/expected-images.json
@@ -0,0 +1,3 @@
+[
+ "http:\/\/fakehost\/static\/code\/2013\/blanket-coverage.png"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/001/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/001/expected-metadata.json
new file mode 100644
index 000000000..52dafa149
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/001/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "Nicolas Perriault —",
+ "Direction": null,
+ "Excerpt": "Nicolas Perriault's homepage.",
+ "Image": null,
+ "Title": "Get your Frontend JavaScript Code Covered | Code",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/001/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/001/expected.html
new file mode 100644
index 000000000..e05810ff7
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/001/expected.html
@@ -0,0 +1,128 @@
+<section><p><strong>So finally you're <a href="http://fakehost/code/2013/testing-frontend-javascript-code-using-mocha-chai-and-sinon/">testing your frontend JavaScript code</a>? Great! The more you
+write tests, the more confident you are with your code… but how much precisely?
+That's where <a href="http://en.wikipedia.org/wiki/Code_coverage">code coverage</a> might
+help.</strong>
+ </p>
+ <p>The idea behind code coverage is to record which parts of your code (functions,
+ statements, conditionals and so on) have been executed by your test suite,
+ to compute metrics out of these data and usually to provide tools for navigating
+ and inspecting them.</p>
+ <p>Not a lot of frontend developers I know actually test their frontend code,
+ and I can barely imagine how many of them have ever setup code coverage…
+ Mostly because there are not many frontend-oriented tools in this area
+ I guess.</p>
+ <p>Actually I've only found one which provides an adapter for <a href="http://visionmedia.github.io/mocha/">Mocha</a> and
+ actually works…</p>
+ <blockquote>
+ <p>Drinking game for web devs:
+ <br></br>(1) Think of a noun
+ <br></br>(2) Google "&lt;noun&gt;.js"
+ <br></br>(3) If a library with that name exists - drink</p>— Shay Friedman (@ironshay)
+ <a href="https://twitter.com/ironshay/statuses/370525864523743232">August 22, 2013</a>
+ </blockquote>
+ <p><strong><a href="http://blanketjs.org/">Blanket.js</a></strong> is an <em>easy to install, easy to configure,
+and easy to use JavaScript code coverage library that works both in-browser and
+with nodejs.</em>
+ </p>
+ <p>Its use is dead easy, adding Blanket support to your Mocha test suite
+ is just matter of adding this simple line to your HTML test file:</p>
+<pre><code>&lt;script src="vendor/blanket.js"
+ data-cover-adapter="vendor/mocha-blanket.js"&gt;&lt;/script&gt;
+</code></pre>
+
+ <p>Source files: <a href="https://raw.github.com/alex-seville/blanket/master/dist/qunit/blanket.min.js">blanket.js</a>,
+ <a href="https://raw.github.com/alex-seville/blanket/master/src/adapters/mocha-blanket.js">mocha-blanket.js</a>
+ </p>
+ <p>As an example, let's reuse the silly <code>Cow</code> example we used
+ <a href="http://fakehost/code/2013/testing-frontend-javascript-code-using-mocha-chai-and-sinon/">in a previous episode</a>:</p>
+<pre><code>// cow.js
+(function(exports) {
+ "use strict";
+
+ function Cow(name) {
+ this.name = name || "Anon cow";
+ }
+ exports.Cow = Cow;
+
+ Cow.prototype = {
+ greets: function(target) {
+ if (!target)
+ throw new Error("missing target");
+ return this.name + " greets " + target;
+ }
+ };
+})(this);
+</code></pre>
+
+ <p>And its test suite, powered by Mocha and <a href="http://chaijs.com/">Chai</a>:</p>
+<pre><code>var expect = chai.expect;
+
+describe("Cow", function() {
+ describe("constructor", function() {
+ it("should have a default name", function() {
+ var cow = new Cow();
+ expect(cow.name).to.equal("Anon cow");
+ });
+
+ it("should set cow's name if provided", function() {
+ var cow = new Cow("Kate");
+ expect(cow.name).to.equal("Kate");
+ });
+ });
+
+ describe("#greets", function() {
+ it("should greet passed target", function() {
+ var greetings = (new Cow("Kate")).greets("Baby");
+ expect(greetings).to.equal("Kate greets Baby");
+ });
+ });
+});
+</code></pre>
+
+ <p>Let's create the HTML test file for it, featuring Blanket and its adapter
+ for Mocha:</p>
+<pre><code>&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+ &lt;meta charset="utf-8"&gt;
+ &lt;title&gt;Test&lt;/title&gt;
+ &lt;link rel="stylesheet" media="all" href="vendor/mocha.css"&gt;
+&lt;/head&gt;
+&lt;body&gt;
+ &lt;div id="mocha"&gt;&lt;/div&gt;
+ &lt;div id="messages"&gt;&lt;/div&gt;
+ &lt;div id="fixtures"&gt;&lt;/div&gt;
+ &lt;script src="vendor/mocha.js"&gt;&lt;/script&gt;
+ &lt;script src="vendor/chai.js"&gt;&lt;/script&gt;
+ &lt;script src="vendor/blanket.js"
+ data-cover-adapter="vendor/mocha-blanket.js"&gt;&lt;/script&gt;
+ &lt;script&gt;mocha.setup('bdd');&lt;/script&gt;
+ &lt;script src="cow.js" data-cover&gt;&lt;/script&gt;
+ &lt;script src="cow_test.js"&gt;&lt;/script&gt;
+ &lt;script&gt;mocha.run();&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
+</code></pre>
+
+ <p><strong>Notes</strong>:</p>
+ <ul><li>Notice the <code>data-cover</code> attribute we added to the script tag
+ loading the source of our library;</li>
+ <li>The HTML test file <em>must</em> be served over HTTP for the adapter to
+ be loaded.</li>
+ </ul><p>Running the tests now gives us something like this:</p>
+ <p>
+ <img alt="screenshot" src="http://fakehost/static/code/2013/blanket-coverage.png"></img></p>
+ <p>As you can see, the report at the bottom highlights that we haven't actually
+ tested the case where an error is raised in case a target name is missing.
+ We've been informed of that, nothing more, nothing less. We simply know
+ we're missing a test here. Isn't this cool? I think so!</p>
+ <p>Just remember that code coverage will only <a href="http://codebetter.com/karlseguin/2008/12/09/code-coverage-use-it-wisely/">bring you numbers</a> and
+ raw information, not actual proofs that the whole of your <em>code logic</em> has
+ been actually covered. If you ask me, the best inputs you can get about
+ your code logic and implementation ever are the ones issued out of <a href="http://www.extremeprogramming.org/rules/pair.html">pair programming</a>
+sessions
+ and <a href="http://alexgaynor.net/2013/sep/26/effective-code-review/">code reviews</a> —
+ but that's another story.</p>
+ <p><strong>So is code coverage silver bullet? No. Is it useful? Definitely. Happy testing!</strong>
+ </p>
+ </section> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/001/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/001/source.html
new file mode 100644
index 000000000..951e8745d
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/001/source.html
@@ -0,0 +1,233 @@
+<!DOCTYPE html>
+<html class="no-js" lang="en">
+
+ <head>
+ <meta charset="utf-8"/>
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
+ <title>Get your Frontend JavaScript Code Covered | Code | Nicolas Perriault</title>
+ <meta
+ name="description" content="Nicolas Perriault's homepage."/>
+ <meta name="viewport" content="width=device-width"/>
+ <link href="//fonts.googleapis.com/css?family=Asap:400,400italic,700,700italic&amp;subset=latin,latin-ext"
+ rel="stylesheet" type="text/css"/>
+ <link rel="stylesheet" type="text/css" href="/static/packed.css?1412806084"/>
+ <link rel="alternate" type="application/rss+xml" href="/code/feed/" title="Code (RSS)"/>
+ <link rel="alternate" type="application/rss+xml" href="/photography/feed/"
+ title="Photography (RSS)"/>
+ <link rel="alternate" type="application/rss+xml" href="/talks/feed/" title="Talks (RSS)"/>
+ <link rel="alternate" type="application/rss+xml" href="/carnet/feed/"
+ title="Carnet (RSS)"/>
+ <link rel="alternate" type="application/rss+xml" href="/feed/" title="Everything (RSS)"/>
+ <!--[if lt IE 9]>
+ <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+ <![endif]-->
+ </head>
+
+ <body class="code " onload="prettyPrint()">
+ <!--[if lt IE 7]>
+ <p class="chromeframe">Your browser is <em>ancient!</em> Please <a href="http://www.quirksmode.org/upgrade.html">upgrade</a>.</p>
+ <![endif]-->
+ <div class="container">
+ <header class="main-title">
+ <h1><a href="/">Hi, I'm <strong>Nicolas.</strong></a></h1>
+ <small>I code stuff. I take photos. I write rants.</small>
+
+ </header>
+ <main class="contents" role="main">
+ <article lang="en" class="code" itemscope="" itemtype="http://schema.org/BlogPosting">
+ <link itemprop="url" href="/code/2013/get-your-frontend-javascript-code-covered/"/>
+ <header>
+ <h2><a itemprop="name" href="/code/2013/get-your-frontend-javascript-code-covered/">Get your Frontend JavaScript Code Covered</a></h2>
+ </header>
+ <section>
+ <p><strong>So finally you're <a href="/code/2013/testing-frontend-javascript-code-using-mocha-chai-and-sinon/">testing your frontend JavaScript code</a>? Great! The more you
+write tests, the more confident you are with your code… but how much precisely?
+That's where <a href="http://en.wikipedia.org/wiki/Code_coverage">code coverage</a> might
+help.</strong>
+ </p>
+ <p>The idea behind code coverage is to record which parts of your code (functions,
+ statements, conditionals and so on) have been executed by your test suite,
+ to compute metrics out of these data and usually to provide tools for navigating
+ and inspecting them.</p>
+ <p>Not a lot of frontend developers I know actually test their frontend code,
+ and I can barely imagine how many of them have ever setup code coverage…
+ Mostly because there are not many frontend-oriented tools in this area
+ I guess.</p>
+ <p>Actually I've only found one which provides an adapter for <a href="http://visionmedia.github.io/mocha/">Mocha</a> and
+ actually works…</p>
+ <blockquote class="twitter-tweet tw-align-center">
+ <p>Drinking game for web devs:
+ <br />(1) Think of a noun
+ <br />(2) Google "&lt;noun&gt;.js"
+ <br />(3) If a library with that name exists - drink</p>— Shay Friedman (@ironshay)
+ <a
+ href="https://twitter.com/ironshay/statuses/370525864523743232">August 22, 2013</a>
+ </blockquote>
+ <p><strong><a href="http://blanketjs.org/">Blanket.js</a></strong> is an <em>easy to install, easy to configure,
+and easy to use JavaScript code coverage library that works both in-browser and
+with nodejs.</em>
+ </p>
+ <p>Its use is dead easy, adding Blanket support to your Mocha test suite
+ is just matter of adding this simple line to your HTML test file:</p>
+<pre><code>&lt;script src="vendor/blanket.js"
+ data-cover-adapter="vendor/mocha-blanket.js"&gt;&lt;/script&gt;
+</code></pre>
+
+ <p>Source files: <a href="https://raw.github.com/alex-seville/blanket/master/dist/qunit/blanket.min.js">blanket.js</a>,
+ <a
+ href="https://raw.github.com/alex-seville/blanket/master/src/adapters/mocha-blanket.js">mocha-blanket.js</a>
+ </p>
+ <p>As an example, let's reuse the silly <code>Cow</code> example we used
+ <a
+ href="/code/2013/testing-frontend-javascript-code-using-mocha-chai-and-sinon/">in a previous episode</a>:</p>
+<pre><code>// cow.js
+(function(exports) {
+ "use strict";
+
+ function Cow(name) {
+ this.name = name || "Anon cow";
+ }
+ exports.Cow = Cow;
+
+ Cow.prototype = {
+ greets: function(target) {
+ if (!target)
+ throw new Error("missing target");
+ return this.name + " greets " + target;
+ }
+ };
+})(this);
+</code></pre>
+
+ <p>And its test suite, powered by Mocha and <a href="http://chaijs.com/">Chai</a>:</p>
+<pre><code>var expect = chai.expect;
+
+describe("Cow", function() {
+ describe("constructor", function() {
+ it("should have a default name", function() {
+ var cow = new Cow();
+ expect(cow.name).to.equal("Anon cow");
+ });
+
+ it("should set cow's name if provided", function() {
+ var cow = new Cow("Kate");
+ expect(cow.name).to.equal("Kate");
+ });
+ });
+
+ describe("#greets", function() {
+ it("should greet passed target", function() {
+ var greetings = (new Cow("Kate")).greets("Baby");
+ expect(greetings).to.equal("Kate greets Baby");
+ });
+ });
+});
+</code></pre>
+
+ <p>Let's create the HTML test file for it, featuring Blanket and its adapter
+ for Mocha:</p>
+<pre><code>&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+ &lt;meta charset="utf-8"&gt;
+ &lt;title&gt;Test&lt;/title&gt;
+ &lt;link rel="stylesheet" media="all" href="vendor/mocha.css"&gt;
+&lt;/head&gt;
+&lt;body&gt;
+ &lt;div id="mocha"&gt;&lt;/div&gt;
+ &lt;div id="messages"&gt;&lt;/div&gt;
+ &lt;div id="fixtures"&gt;&lt;/div&gt;
+ &lt;script src="vendor/mocha.js"&gt;&lt;/script&gt;
+ &lt;script src="vendor/chai.js"&gt;&lt;/script&gt;
+ &lt;script src="vendor/blanket.js"
+ data-cover-adapter="vendor/mocha-blanket.js"&gt;&lt;/script&gt;
+ &lt;script&gt;mocha.setup('bdd');&lt;/script&gt;
+ &lt;script src="cow.js" data-cover&gt;&lt;/script&gt;
+ &lt;script src="cow_test.js"&gt;&lt;/script&gt;
+ &lt;script&gt;mocha.run();&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
+</code></pre>
+
+ <p><strong>Notes</strong>:</p>
+ <ul>
+ <li>Notice the <code>data-cover</code> attribute we added to the script tag
+ loading the source of our library;</li>
+ <li>The HTML test file <em>must</em> be served over HTTP for the adapter to
+ be loaded.</li>
+ </ul>
+ <p>Running the tests now gives us something like this:</p>
+ <p>
+ <img alt="screenshot" src="/static/code/2013/blanket-coverage.png"/>
+ </p>
+ <p>As you can see, the report at the bottom highlights that we haven't actually
+ tested the case where an error is raised in case a target name is missing.
+ We've been informed of that, nothing more, nothing less. We simply know
+ we're missing a test here. Isn't this cool? I think so!</p>
+ <p>Just remember that code coverage will only <a href="http://codebetter.com/karlseguin/2008/12/09/code-coverage-use-it-wisely/">bring you numbers</a> and
+ raw information, not actual proofs that the whole of your <em>code logic</em> has
+ been actually covered. If you ask me, the best inputs you can get about
+ your code logic and implementation ever are the ones issued out of <a href="http://www.extremeprogramming.org/rules/pair.html">pair programming</a>
+sessions
+ and <a href="http://alexgaynor.net/2013/sep/26/effective-code-review/">code reviews</a> —
+ but that's another story.</p>
+ <p><strong>So is code coverage silver bullet? No. Is it useful? Definitely. Happy testing!</strong>
+ </p>
+ </section>
+ <aside>
+ <p> <span class="article-author" itemprop="author" itemscope="" itemtype="http://schema.org/Person">
+ <span itemprop="name">Nicolas Perriault</span> —</span>
+ <time
+ datetime="2013-09-29" itemprop="datePublished">2013-09-29</time>— in <a href="/code/" itemprop="genre">Code</a>
+— <a href="/code/2013/get-your-frontend-javascript-code-covered/">Permalink</a>
+—
+ <a
+ rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">License</a>— <a href="http://flattr.com/submit/auto?url=https://nicolas.perriault.net/code/2013/get-your-frontend-javascript-code-covered/&amp;title=Get your Frontend JavaScript Code Covered&amp;user_id=n1k0&amp;category=software&amp;language=en">flattr this</a>
+
+ </p>
+ </aside>
+ <hr/>
+ <nav> <a class="prev" href="/code/2013/functional-javascript-for-crawling-the-web/">Functional JavaScript for crawling the Web</a>
+|
+ <a
+ class="next" href="/code/2013/testing-frontend-javascript-code-using-mocha-chai-and-sinon/">Testing your frontend JavaScript code using mocha, chai, and sinon</a>
+ </nav>
+ </article>
+ </main>
+ <nav class="sidebar">
+ <ul>
+ <li class="home"><a href="/" hreflang="en">Home</a>
+ </li>
+ <li class="code"><a href="/code/" hreflang="en">Code</a>
+ </li>
+ <li class="photography"><a href="/photography/" hreflang="en">Photography</a>
+ </li>
+ <li class="talks"><a href="/talks/" hreflang="en">Talks</a>
+ </li>
+ <li class="carnet"><a href="/carnet/" hreflang="fr">Carnet <span>fr</span></a>
+ </li>
+ <li class="contact"><a href="/contact/" hreflang="en">Contact</a>
+ </li>
+ </ul>
+ </nav>
+ <footer class="site-footer">
+ <p>© 2012 Nicolas Perriault — <a href="https://twitter.com/n1k0">Tweet at me</a>
+—
+ <a
+ href="https://github.com/n1k0">Get my code</a>— <a href="http://500px.com/n1k0">Enjoy my pics</a>
+— <a href="/contact/">Contact me</a>
+
+ </p>
+ </footer>
+ </div>
+ <!-- /container -->
+ <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
+ <script>
+ window.jQuery || document.write('&lt;script src="js/libs/jquery-1.7.1.min.js">&lt;\/script>')
+ </script>
+ <script type="text/javascript" src="/static/js/libs/prettify/prettify.js"></script>
+ <script type="text/javascript" src="/static/js/app.js"></script>
+ <script src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
+ </body>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/002/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/002/expected-images.json
new file mode 100644
index 000000000..0637a088a
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/002/expected-images.json
@@ -0,0 +1 @@
+[] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/002/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/002/expected-metadata.json
new file mode 100644
index 000000000..74c3859ed
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/002/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "Nikhil Marathe",
+ "Direction": null,
+ "Excerpt": "For more than a decade the Web has used XMLHttpRequest (XHR) to achieve asynchronous requests in JavaScript. While very useful, XHR is not a very ...",
+ "Image": null,
+ "Title": "This API is so Fetching!",
+ "SiteName": "Mozilla Hacks – the Web developer blog"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/002/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/002/expected.html
new file mode 100644
index 000000000..0525100d6
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/002/expected.html
@@ -0,0 +1,415 @@
+<div id="content-main"><article role="article"><p>For more than a decade the Web has used XMLHttpRequest (XHR) to achieve
+ asynchronous requests in JavaScript. While very useful, XHR is not a very
+ nice API. It suffers from lack of separation of concerns. The input, output
+ and state are all managed by interacting with one object, and state is
+ tracked using events. Also, the event-based model doesn’t play well with
+ JavaScript’s recent focus on Promise- and generator-based asynchronous
+ programming.</p>
+ <p>The <a href="https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API">Fetch API</a> intends
+ to fix most of these problems. It does this by introducing the same primitives
+ to JS that are used in the HTTP protocol. In addition, it introduces a
+ utility function <code>fetch()</code> that succinctly captures the intention
+ of retrieving a resource from the network.</p>
+ <p>The <a href="https://fetch.spec.whatwg.org">Fetch specification</a>, which
+ defines the API, nails down the semantics of a user agent fetching a resource.
+ This, combined with ServiceWorkers, is an attempt to:</p>
+ <ol><li>Improve the offline experience.</li>
+ <li>Expose the building blocks of the Web to the platform as part of the
+ <a href="https://extensiblewebmanifesto.org/">extensible web movement</a>.</li>
+ </ol><p>As of this writing, the Fetch API is available in Firefox 39 (currently
+ Nightly) and Chrome 42 (currently dev). Github has a <a href="https://github.com/github/fetch">Fetch polyfill</a>.</p>
+
+<h2>Feature detection</h2>
+
+ <p>Fetch API support can be detected by checking for <code>Headers</code>,<code>Request</code>, <code>Response</code> or <code>fetch</code> on
+ the <code>window</code> or <code>worker</code> scope.</p>
+
+<h2>Simple fetching</h2>
+
+ <p>The most useful, high-level part of the Fetch API is the <code>fetch()</code> function.
+ In its simplest form it takes a URL and returns a promise that resolves
+ to the response. The response is captured as a <code>Response</code> object.</p>
+ <div>
+ <div><pre>fetch<span>(</span><span>"/data.json"</span><span>)</span>.<span>then</span><span>(</span><span>function</span><span>(</span>res<span>)</span> <span>{</span>
+ <span>// res instanceof Response == true.</span>
+ <span>if</span> <span>(</span>res.<span>ok</span><span>)</span> <span>{</span>
+ res.<span>json</span><span>(</span><span>)</span>.<span>then</span><span>(</span><span>function</span><span>(</span>data<span>)</span> <span>{</span>
+ console.<span>log</span><span>(</span>data.<span>entries</span><span>)</span><span>;</span>
+ <span>}</span><span>)</span><span>;</span>
+ <span>}</span> <span>else</span> <span>{</span>
+ console.<span>log</span><span>(</span><span>"Looks like the response wasn't perfect, got status"</span><span>,</span> res.<span>status</span><span>)</span><span>;</span>
+ <span>}</span>
+<span>}</span><span>,</span> <span>function</span><span>(</span>e<span>)</span> <span>{</span>
+ console.<span>log</span><span>(</span><span>"Fetch failed!"</span><span>,</span> e<span>)</span><span>;</span>
+<span>}</span><span>)</span><span>;</span></pre>
+ </div></div>
+ <p>Submitting some parameters, it would look like this:</p>
+ <div>
+ <div><pre>fetch<span>(</span><span>"http://www.example.org/submit.php"</span><span>,</span> <span>{</span>
+ method<span>:</span> <span>"POST"</span><span>,</span>
+ headers<span>:</span> <span>{</span>
+ <span>"Content-Type"</span><span>:</span> <span>"application/x-www-form-urlencoded"</span>
+ <span>}</span><span>,</span>
+ body<span>:</span> <span>"firstName=Nikhil&amp;favColor=blue&amp;password=easytoguess"</span>
+<span>}</span><span>)</span>.<span>then</span><span>(</span><span>function</span><span>(</span>res<span>)</span> <span>{</span>
+ <span>if</span> <span>(</span>res.<span>ok</span><span>)</span> <span>{</span>
+ alert<span>(</span><span>"Perfect! Your settings are saved."</span><span>)</span><span>;</span>
+ <span>}</span> <span>else</span> <span>if</span> <span>(</span>res.<span>status</span> <span>==</span> <span>401</span><span>)</span> <span>{</span>
+ alert<span>(</span><span>"Oops! You are not authorized."</span><span>)</span><span>;</span>
+ <span>}</span>
+<span>}</span><span>,</span> <span>function</span><span>(</span>e<span>)</span> <span>{</span>
+ alert<span>(</span><span>"Error submitting form!"</span><span>)</span><span>;</span>
+<span>}</span><span>)</span><span>;</span></pre>
+ </div></div>
+ <p>The <code>fetch()</code> function’s arguments are the same as those passed
+ to the
+ <br></br><code>Request()</code> constructor, so you may directly pass arbitrarily
+ complex requests to <code>fetch()</code> as discussed below.</p>
+
+<h2>Headers</h2>
+
+ <p>Fetch introduces 3 interfaces. These are <code>Headers</code>, <code>Request</code> and
+ <br></br><code>Response</code>. They map directly to the underlying HTTP concepts,
+ but have
+ <br></br>certain visibility filters in place for privacy and security reasons,
+ such as
+ <br></br>supporting CORS rules and ensuring cookies aren’t readable by third parties.</p>
+ <p>The <a href="https://fetch.spec.whatwg.org/#headers-class">Headers interface</a> is
+ a simple multi-map of names to values:</p>
+ <div>
+ <div><pre><span>var</span> content <span>=</span> <span>"Hello World"</span><span>;</span>
+<span>var</span> reqHeaders <span>=</span> <span>new</span> Headers<span>(</span><span>)</span><span>;</span>
+reqHeaders.<span>append</span><span>(</span><span>"Content-Type"</span><span>,</span> <span>"text/plain"</span>
+reqHeaders.<span>append</span><span>(</span><span>"Content-Length"</span><span>,</span> content.<span>length</span>.<span>toString</span><span>(</span><span>)</span><span>)</span><span>;</span>
+reqHeaders.<span>append</span><span>(</span><span>"X-Custom-Header"</span><span>,</span> <span>"ProcessThisImmediately"</span><span>)</span><span>;</span></pre>
+ </div></div>
+ <p>The same can be achieved by passing an array of arrays or a JS object
+ literal
+ <br></br>to the constructor:</p>
+ <div>
+ <div><pre>reqHeaders <span>=</span> <span>new</span> Headers<span>(</span><span>{</span>
+ <span>"Content-Type"</span><span>:</span> <span>"text/plain"</span><span>,</span>
+ <span>"Content-Length"</span><span>:</span> content.<span>length</span>.<span>toString</span><span>(</span><span>)</span><span>,</span>
+ <span>"X-Custom-Header"</span><span>:</span> <span>"ProcessThisImmediately"</span><span>,</span>
+<span>}</span><span>)</span><span>;</span></pre>
+ </div></div>
+ <p>The contents can be queried and retrieved:</p>
+ <div>
+ <div><pre>console.<span>log</span><span>(</span>reqHeaders.<span>has</span><span>(</span><span>"Content-Type"</span><span>)</span><span>)</span><span>;</span> <span>// true</span>
+console.<span>log</span><span>(</span>reqHeaders.<span>has</span><span>(</span><span>"Set-Cookie"</span><span>)</span><span>)</span><span>;</span> <span>// false</span>
+reqHeaders.<span>set</span><span>(</span><span>"Content-Type"</span><span>,</span> <span>"text/html"</span><span>)</span><span>;</span>
+reqHeaders.<span>append</span><span>(</span><span>"X-Custom-Header"</span><span>,</span> <span>"AnotherValue"</span><span>)</span><span>;</span>
+console.<span>log</span><span>(</span>reqHeaders.<span>get</span><span>(</span><span>"Content-Length"</span><span>)</span><span>)</span><span>;</span> <span>// 11</span>
+console.<span>log</span><span>(</span>reqHeaders.<span>getAll</span><span>(</span><span>"X-Custom-Header"</span><span>)</span><span>)</span><span>;</span> <span>// ["ProcessThisImmediately", "AnotherValue"]</span>
+reqHeaders.<span>delete</span><span>(</span><span>"X-Custom-Header"</span><span>)</span><span>;</span>
+console.<span>log</span><span>(</span>reqHeaders.<span>getAll</span><span>(</span><span>"X-Custom-Header"</span><span>)</span><span>)</span><span>;</span> <span>// []</span></pre>
+ </div></div>
+ <p>Some of these operations are only useful in ServiceWorkers, but they provide
+ <br></br>a much nicer API to Headers.</p>
+ <p>Since Headers can be sent in requests, or received in responses, and have
+ various limitations about what information can and should be mutable, <code>Headers</code> objects
+ have a <strong>guard</strong> property. This is not exposed to the Web, but
+ it affects which mutation operations are allowed on the Headers object.
+ <br></br>Possible values are:</p>
+ <ul><li>“none”: default.</li>
+ <li>“request”: guard for a Headers object obtained from a Request (<code>Request.headers</code>).</li>
+ <li>“request-no-cors”: guard for a Headers object obtained from a Request
+ created
+ <br></br>with mode “no-cors”.</li>
+ <li>“response”: naturally, for Headers obtained from Response (<code>Response.headers</code>).</li>
+ <li>“immutable”: Mostly used for ServiceWorkers, renders a Headers object
+ <br></br>read-only.</li>
+ </ul><p>The details of how each guard affects the behaviors of the Headers object
+ are
+ <br></br>in the <a href="https://fetch.spec.whatwg.org">specification</a>. For example,
+ you may not append or set a “request” guarded Headers’ “Content-Length”
+ header. Similarly, inserting “Set-Cookie” into a Response header is not
+ allowed so that ServiceWorkers may not set cookies via synthesized Responses.</p>
+ <p>All of the Headers methods throw TypeError if <code>name</code> is not a
+ <a href="https://fetch.spec.whatwg.org/#concept-header-name">valid HTTP Header name</a>. The mutation operations will throw TypeError
+ if there is an immutable guard. Otherwise they fail silently. For example:</p>
+ <div>
+ <div><pre><span>var</span> res <span>=</span> Response.<span>error</span><span>(</span><span>)</span><span>;</span>
+<span>try</span> <span>{</span>
+ res.<span>headers</span>.<span>set</span><span>(</span><span>"Origin"</span><span>,</span> <span>"http://mybank.com"</span><span>)</span><span>;</span>
+<span>}</span> <span>catch</span><span>(</span>e<span>)</span> <span>{</span>
+ console.<span>log</span><span>(</span><span>"Cannot pretend to be a bank!"</span><span>)</span><span>;</span>
+<span>}</span></pre>
+ </div></div>
+
+<h2>Request</h2>
+
+ <p>The Request interface defines a request to fetch a resource over HTTP.
+ URL, method and headers are expected, but the Request also allows specifying
+ a body, a request mode, credentials and cache hints.</p>
+ <p>The simplest Request is of course, just a URL, as you may do to GET a
+ resource.</p>
+ <div>
+ <div><pre><span>var</span> req <span>=</span> <span>new</span> Request<span>(</span><span>"/index.html"</span><span>)</span><span>;</span>
+console.<span>log</span><span>(</span>req.<span>method</span><span>)</span><span>;</span> <span>// "GET"</span>
+console.<span>log</span><span>(</span>req.<span>url</span><span>)</span><span>;</span> <span>// "http://example.com/index.html"</span></pre>
+ </div></div>
+ <p>You may also pass a Request to the <code>Request()</code> constructor to
+ create a copy.
+ <br></br>(This is not the same as calling the <code>clone()</code> method, which
+ is covered in
+ <br></br>the “Reading bodies” section.).</p>
+ <div>
+ <div><pre><span>var</span> copy <span>=</span> <span>new</span> Request<span>(</span>req<span>)</span><span>;</span>
+console.<span>log</span><span>(</span>copy.<span>method</span><span>)</span><span>;</span> <span>// "GET"</span>
+console.<span>log</span><span>(</span>copy.<span>url</span><span>)</span><span>;</span> <span>// "http://example.com/index.html"</span></pre>
+ </div></div>
+ <p>Again, this form is probably only useful in ServiceWorkers.</p>
+ <p>The non-URL attributes of the <code>Request</code> can only be set by passing
+ initial
+ <br></br>values as a second argument to the constructor. This argument is a dictionary.</p>
+ <div>
+ <div><pre><span>var</span> uploadReq <span>=</span> <span>new</span> Request<span>(</span><span>"/uploadImage"</span><span>,</span> <span>{</span>
+ method<span>:</span> <span>"POST"</span><span>,</span>
+ headers<span>:</span> <span>{</span>
+ <span>"Content-Type"</span><span>:</span> <span>"image/png"</span><span>,</span>
+ <span>}</span><span>,</span>
+ body<span>:</span> <span>"image data"</span>
+<span>}</span><span>)</span><span>;</span></pre>
+ </div></div>
+ <p>The Request’s mode is used to determine if cross-origin requests lead
+ to valid responses, and which properties on the response are readable.
+ Legal mode values are <code>"same-origin"</code>, <code>"no-cors"</code> (default)
+ and <code>"cors"</code>.</p>
+ <p>The <code>"same-origin"</code> mode is simple, if a request is made to another
+ origin with this mode set, the result is simply an error. You could use
+ this to ensure that
+ <br></br>a request is always being made to your origin.</p>
+ <div>
+ <div><pre><span>var</span> arbitraryUrl <span>=</span> document.<span>getElementById</span><span>(</span><span>"url-input"</span><span>)</span>.<span>value</span><span>;</span>
+fetch<span>(</span>arbitraryUrl<span>,</span> <span>{</span> mode<span>:</span> <span>"same-origin"</span> <span>}</span><span>)</span>.<span>then</span><span>(</span><span>function</span><span>(</span>res<span>)</span> <span>{</span>
+ console.<span>log</span><span>(</span><span>"Response succeeded?"</span><span>,</span> res.<span>ok</span><span>)</span><span>;</span>
+<span>}</span><span>,</span> <span>function</span><span>(</span>e<span>)</span> <span>{</span>
+ console.<span>log</span><span>(</span><span>"Please enter a same-origin URL!"</span><span>)</span><span>;</span>
+<span>}</span><span>)</span><span>;</span></pre>
+ </div></div>
+ <p>The <code>"no-cors"</code> mode captures what the web platform does by default
+ for scripts you import from CDNs, images hosted on other domains, and so
+ on. First, it prevents the method from being anything other than “HEAD”,
+ “GET” or “POST”. Second, if any ServiceWorkers intercept these requests,
+ they may not add or override any headers except for <a href="https://fetch.spec.whatwg.org/#simple-header">these</a>.
+ Third, JavaScript may not access any properties of the resulting Response.
+ This ensures that ServiceWorkers do not affect the semantics of the Web
+ and prevents security and privacy issues that could arise from leaking
+ data across domains.</p>
+ <p><code>"cors"</code> mode is what you’ll usually use to make known cross-origin
+ requests to access various APIs offered by other vendors. These are expected
+ to adhere to
+ <br></br>the <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS">CORS protocol</a>.
+ Only a <a href="https://fetch.spec.whatwg.org/#concept-filtered-response-cors">limited set</a> of
+ headers is exposed in the Response, but the body is readable. For example,
+ you could get a list of Flickr’s <a href="https://www.flickr.com/services/api/flickr.interestingness.getList.html">most interesting</a> photos
+ today like this:</p>
+ <div>
+ <div><pre><span>var</span> u <span>=</span> <span>new</span> URLSearchParams<span>(</span><span>)</span><span>;</span>
+u.<span>append</span><span>(</span><span>'method'</span><span>,</span> <span>'flickr.interestingness.getList'</span><span>)</span><span>;</span>
+u.<span>append</span><span>(</span><span>'api_key'</span><span>,</span> <span>'&lt;insert api key here&gt;'</span><span>)</span><span>;</span>
+u.<span>append</span><span>(</span><span>'format'</span><span>,</span> <span>'json'</span><span>)</span><span>;</span>
+u.<span>append</span><span>(</span><span>'nojsoncallback'</span><span>,</span> <span>'1'</span><span>)</span><span>;</span>
+<span>var</span> apiCall <span>=</span> fetch<span>(</span><span>'https://api.flickr.com/services/rest?'</span> <span>+</span> u<span>)</span><span>;</span>
+apiCall.<span>then</span><span>(</span><span>function</span><span>(</span>response<span>)</span> <span>{</span>
+ <span>return</span> response.<span>json</span><span>(</span><span>)</span>.<span>then</span><span>(</span><span>function</span><span>(</span>json<span>)</span> <span>{</span>
+ <span>// photo is a list of photos.</span>
+ <span>return</span> json.<span>photos</span>.<span>photo</span><span>;</span>
+ <span>}</span><span>)</span><span>;</span>
+<span>}</span><span>)</span>.<span>then</span><span>(</span><span>function</span><span>(</span>photos<span>)</span> <span>{</span>
+ photos.<span>forEach</span><span>(</span><span>function</span><span>(</span>photo<span>)</span> <span>{</span>
+ console.<span>log</span><span>(</span>photo.<span>title</span><span>)</span><span>;</span>
+ <span>}</span><span>)</span><span>;</span>
+<span>}</span><span>)</span><span>;</span></pre>
+ </div></div>
+ <p>You may not read out the “Date” header since Flickr does not allow it
+ via
+ <br></br><code>Access-Control-Expose-Headers</code>.</p>
+ <div>
+ <div><pre>response.<span>headers</span>.<span>get</span><span>(</span><span>"Date"</span><span>)</span><span>;</span> <span>// null</span></pre>
+ </div></div>
+ <p>The <code>credentials</code> enumeration determines if cookies for the other
+ domain are
+ <br></br>sent to cross-origin requests. This is similar to XHR’s <code>withCredentials</code>
+ <br></br>flag, but tri-valued as <code>"omit"</code> (default), <code>"same-origin"</code> and <code>"include"</code>.</p>
+ <p>The Request object will also give the ability to offer caching hints to
+ the user-agent. This is currently undergoing some <a href="https://github.com/slightlyoff/ServiceWorker/issues/585">security review</a>.
+ Firefox exposes the attribute, but it has no effect.</p>
+ <p>Requests have two read-only attributes that are relevant to ServiceWorkers
+ <br></br>intercepting them. There is the string <code>referrer</code>, which is
+ set by the UA to be
+ <br></br>the referrer of the Request. This may be an empty string. The other is
+ <br></br><code>context</code> which is a rather <a href="https://fetch.spec.whatwg.org/#requestcredentials">large enumeration</a> defining
+ what sort of resource is being fetched. This could be “image” if the request
+ is from an
+ &lt;img&gt;tag in the controlled document, “worker” if it is an attempt to load a
+ worker script, and so on. When used with the <code>fetch()</code> function,
+ it is “fetch”.</p>
+
+<h2>Response</h2>
+
+ <p><code>Response</code> instances are returned by calls to <code>fetch()</code>.
+ They can also be created by JS, but this is only useful in ServiceWorkers.</p>
+ <p>We have already seen some attributes of Response when we looked at <code>fetch()</code>.
+ The most obvious candidates are <code>status</code>, an integer (default
+ value 200) and <code>statusText</code> (default value “OK”), which correspond
+ to the HTTP status code and reason. The <code>ok</code> attribute is just
+ a shorthand for checking that <code>status</code> is in the range 200-299
+ inclusive.</p>
+ <p><code>headers</code> is the Response’s Headers object, with guard “response”.
+ The <code>url</code> attribute reflects the URL of the corresponding request.</p>
+ <p>Response also has a <code>type</code>, which is “basic”, “cors”, “default”,
+ “error” or
+ <br></br>“opaque”.</p>
+ <ul><li><code>"basic"</code>: normal, same origin response, with all headers exposed
+ except
+ <br></br>“Set-Cookie” and “Set-Cookie2″.</li>
+ <li><code>"cors"</code>: response was received from a valid cross-origin request.
+ <a href="https://fetch.spec.whatwg.org/#concept-filtered-response-cors">Certain headers and the body</a>may be accessed.</li>
+ <li><code>"error"</code>: network error. No useful information describing
+ the error is available. The Response’s status is 0, headers are empty and
+ immutable. This is the type for a Response obtained from <code>Response.error()</code>.</li>
+ <li><code>"opaque"</code>: response for “no-cors” request to cross-origin
+ resource. <a href="https://fetch.spec.whatwg.org/#concept-filtered-response-opaque">Severely<br></br>
+ restricted</a>
+ </li>
+ </ul><p>The “error” type results in the <code>fetch()</code> Promise rejecting with
+ TypeError.</p>
+ <p>There are certain attributes that are useful only in a ServiceWorker scope.
+ The
+ <br></br>idiomatic way to return a Response to an intercepted request in ServiceWorkers
+ is:</p>
+ <div>
+ <div><pre>addEventListener<span>(</span><span>'fetch'</span><span>,</span> <span>function</span><span>(</span>event<span>)</span> <span>{</span>
+ event.<span>respondWith</span><span>(</span><span>new</span> Response<span>(</span><span>"Response body"</span><span>,</span> <span>{</span>
+ headers<span>:</span> <span>{</span> <span>"Content-Type"</span> <span>:</span> <span>"text/plain"</span> <span>}</span>
+ <span>}</span><span>)</span><span>;</span>
+<span>}</span><span>)</span><span>;</span></pre>
+ </div></div>
+ <p>As you can see, Response has a two argument constructor, where both arguments
+ are optional. The first argument is a body initializer, and the second
+ is a dictionary to set the <code>status</code>, <code>statusText</code> and <code>headers</code>.</p>
+ <p>The static method <code>Response.error()</code> simply returns an error
+ response. Similarly, <code>Response.redirect(url, status)</code> returns
+ a Response resulting in
+ <br></br>a redirect to <code>url</code>.</p>
+
+<h2>Dealing with bodies</h2>
+
+ <p>Both Requests and Responses may contain body data. We’ve been glossing
+ over it because of the various data types body may contain, but we will
+ cover it in detail now.</p>
+ <p>A body is an instance of any of the following types.</p>
+ <ul><li><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer">ArrayBuffer</a>
+ </li>
+ <li><a href="https://developer.mozilla.org/en-US/docs/Web/API/ArrayBufferView">ArrayBufferView</a> (Uint8Array
+ and friends)</li>
+ <li><a href="https://developer.mozilla.org/en-US/docs/Web/API/Blob">Blob</a>/
+ <a href="https://developer.mozilla.org/en-US/docs/Web/API/File">File</a>
+ </li>
+ <li>string</li>
+ <li><a href="https://url.spec.whatwg.org/#interface-urlsearchparams">URLSearchParams</a>
+ </li>
+ <li><a href="https://developer.mozilla.org/en-US/docs/Web/API/FormData">FormData</a> –
+ currently not supported by either Gecko or Blink. Firefox expects to ship
+ this in version 39 along with the rest of Fetch.</li>
+ </ul><p>In addition, Request and Response both offer the following methods to
+ extract their body. These all return a Promise that is eventually resolved
+ with the actual content.</p>
+ <ul><li><code>arrayBuffer()</code>
+ </li>
+ <li><code>blob()</code>
+ </li>
+ <li><code>json()</code>
+ </li>
+ <li><code>text()</code>
+ </li>
+ <li><code>formData()</code>
+ </li>
+ </ul><p>This is a significant improvement over XHR in terms of ease of use of
+ non-text data!</p>
+ <p>Request bodies can be set by passing <code>body</code> parameters:</p>
+ <div>
+ <div><pre><span>var</span> form <span>=</span> <span>new</span> FormData<span>(</span>document.<span>getElementById</span><span>(</span><span>'login-form'</span><span>)</span><span>)</span><span>;</span>
+fetch<span>(</span><span>"/login"</span><span>,</span> <span>{</span>
+ method<span>:</span> <span>"POST"</span><span>,</span>
+ body<span>:</span> form
+<span>}</span><span>)</span></pre>
+ </div></div>
+ <p>Responses take the first argument as the body.</p>
+ <div>
+ <div><pre><span>var</span> res <span>=</span> <span>new</span> Response<span>(</span><span>new</span> File<span>(</span><span>[</span><span>"chunk"</span><span>,</span> <span>"chunk"</span><span>]</span><span>,</span> <span>"archive.zip"</span><span>,</span>
+ <span>{</span> type<span>:</span> <span>"application/zip"</span> <span>}</span><span>)</span><span>)</span><span>;</span></pre>
+ </div></div>
+ <p>Both Request and Response (and by extension the <code>fetch()</code> function),
+ will try to intelligently <a href="https://fetch.spec.whatwg.org/#concept-bodyinit-extract">determine the content type</a>.
+ Request will also automatically set a “Content-Type” header if none is
+ set in the dictionary.</p>
+
+<h3>Streams and cloning</h3>
+
+ <p>It is important to realise that Request and Response bodies can only be
+ read once! Both interfaces have a boolean attribute <code>bodyUsed</code> to
+ determine if it is safe to read or not.</p>
+ <div>
+ <div><pre><span>var</span> res <span>=</span> <span>new</span> Response<span>(</span><span>"one time use"</span><span>)</span><span>;</span>
+console.<span>log</span><span>(</span>res.<span>bodyUsed</span><span>)</span><span>;</span> <span>// false</span>
+res.<span>text</span><span>(</span><span>)</span>.<span>then</span><span>(</span><span>function</span><span>(</span>v<span>)</span> <span>{</span>
+ console.<span>log</span><span>(</span>res.<span>bodyUsed</span><span>)</span><span>;</span> <span>// true</span>
+<span>}</span><span>)</span><span>;</span>
+console.<span>log</span><span>(</span>res.<span>bodyUsed</span><span>)</span><span>;</span> <span>// true</span>
+res.<span>text</span><span>(</span><span>)</span>.<span>catch</span><span>(</span><span>function</span><span>(</span>e<span>)</span> <span>{</span>
+ console.<span>log</span><span>(</span><span>"Tried to read already consumed Response"</span><span>)</span><span>;</span>
+<span>}</span><span>)</span><span>;</span></pre>
+ </div></div>
+ <p>This decision allows easing the transition to an eventual <a href="https://streams.spec.whatwg.org/">stream-based</a> Fetch
+ API. The intention is to let applications consume data as it arrives, allowing
+ for JavaScript to deal with larger files like videos, and perform things
+ like compression and editing on the fly.</p>
+ <p>Often, you’ll want access to the body multiple times. For example, you
+ can use the upcoming <a href="http://slightlyoff.github.io/ServiceWorker/spec/service_worker/index.html#cache-objects">Cache API</a> to
+ store Requests and Responses for offline use, and Cache requires bodies
+ to be available for reading.</p>
+ <p>So how do you read out the body multiple times within such constraints?
+ The API provides a <code>clone()</code> method on the two interfaces. This
+ will return a clone of the object, with a ‘new’ body. <code>clone()</code> MUST
+ be called before the body of the corresponding object has been used. That
+ is, <code>clone()</code> first, read later.</p>
+ <div>
+ <div><pre>addEventListener<span>(</span><span>'fetch'</span><span>,</span> <span>function</span><span>(</span>evt<span>)</span> <span>{</span>
+ <span>var</span> sheep <span>=</span> <span>new</span> Response<span>(</span><span>"Dolly"</span><span>)</span><span>;</span>
+ console.<span>log</span><span>(</span>sheep.<span>bodyUsed</span><span>)</span><span>;</span> <span>// false</span>
+ <span>var</span> clone <span>=</span> sheep.<span>clone</span><span>(</span><span>)</span><span>;</span>
+ console.<span>log</span><span>(</span>clone.<span>bodyUsed</span><span>)</span><span>;</span> <span>// false</span>
+ clone.<span>text</span><span>(</span><span>)</span><span>;</span>
+ console.<span>log</span><span>(</span>sheep.<span>bodyUsed</span><span>)</span><span>;</span> <span>// false</span>
+ console.<span>log</span><span>(</span>clone.<span>bodyUsed</span><span>)</span><span>;</span> <span>// true</span>
+ evt.<span>respondWith</span><span>(</span>cache.<span>add</span><span>(</span>sheep.<span>clone</span><span>(</span><span>)</span><span>)</span>.<span>then</span><span>(</span><span>function</span><span>(</span>e<span>)</span> <span>{</span>
+ <span>return</span> sheep<span>;</span>
+ <span>}</span><span>)</span><span>;</span>
+<span>}</span><span>)</span><span>;</span></pre>
+ </div></div>
+
+<h2>Future improvements</h2>
+
+ <p>Along with the transition to streams, Fetch will eventually have the ability
+ to abort running <code>fetch()</code>es and some way to report the progress
+ of a fetch. These are provided by XHR, but are a little tricky to fit in
+ the Promise-based nature of the Fetch API.</p>
+ <p>You can contribute to the evolution of this API by participating in discussions
+ on the <a href="https://whatwg.org/mailing-list">WHATWG mailing list</a> and
+ in the issues in the <a href="https://www.w3.org/Bugs/Public/buglist.cgi?product=WHATWG&amp;component=Fetch&amp;resolution=---">Fetch</a> and
+ <a href="https://github.com/slightlyoff/ServiceWorker/issues">ServiceWorker</a>specifications.</p>
+ <p>For a better web!</p>
+ <p><em>The author would like to thank Andrea Marchesini, Anne van Kesteren and Ben<br></br>
+Kelly for helping with the specification and implementation.</em>
+ </p>
+ </article></div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/002/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/002/source.html
new file mode 100644
index 000000000..48befba5d
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/002/source.html
@@ -0,0 +1,1131 @@
+<!DOCTYPE html>
+<html lang="en-US" id="hacks-mozilla-org">
+
+ <head>
+ <meta name="viewport" content="width=device-width"/>
+ <meta charset="UTF-8"/>
+ <!-- OpenGraph metadata -->
+ <meta property="og:site_name" content="Mozilla Hacks – the Web developer blog"/>
+ <meta property="og:title" content="This API is so Fetching!"/>
+ <meta property="og:url" content="https://hacks.mozilla.org/2015/03/this-api-is-so-fetching/"/>
+ <meta property="og:description" content="For more than a decade the Web has used XMLHttpRequest (XHR) to achieve asynchronous requests in JavaScript. While very useful, XHR is not a very ..."/>
+ <!--[if IE]>
+ <meta name="MSSmartTagsPreventParsing" content="true"/>
+ <meta http-equiv="imagetoolbar" content="no"/>
+ <meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
+ <script src="https://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+ <![endif]-->
+ <link rel="shortcut icon" type="image/ico" href="https://hacks.mozilla.org/wp-content/themes/Hacks2013/favicon.ico"/>
+ <link rel="home" href="/"/>
+ <link rel="copyright" href="#copyright"/>
+ <link rel="stylesheet" type="text/css" media="screen,projection" href="https://hacks.mozilla.org/wp-content/themes/Hacks2013/style.css"/>
+ <link rel="stylesheet" type="text/css" media="print,handheld" href="https://hacks.mozilla.org/wp-content/themes/Hacks2013/css/print.css"/>
+ <link rel="stylesheet" type="text/css" media="all" href="https://www.mozilla.org/tabzilla/media/css/tabzilla.css"/>
+ <link rel="stylesheet" type="text/css" media="all" href="https://hacks.mozilla.org/wp-content/themes/Hacks2013/css/socialshare.css"/>
+ <link rel="alternate" type="application/rss+xml" title="Mozilla Hacks – the Web developer blog RSS Feed"
+ href="https://hacks.mozilla.org/feed/"/>
+ <link rel="pingback" href="https://hacks.mozilla.org/xmlrpc.php"/>
+ <link rel="canonical" href="https://hacks.mozilla.org/2015/03/this-api-is-so-fetching/"/>
+ <!--[if lte IE 7]>
+ <link rel="stylesheet" type="text/css" media="all" href="https://hacks.mozilla.org/wp-content/themes/Hacks2013/css/ie7.css"
+ />
+ <![endif]-->
+ <!--[if lte IE 6]>
+ <link rel="stylesheet" type="text/css" media="all" href="https://hacks.mozilla.org/wp-content/themes/Hacks2013/css/ie6.css"
+ />
+ <![endif]-->
+ <title>This API is so Fetching! ✩ Mozilla Hacks – the Web developer blog</title>
+ <script
+ type="text/javascript">window.hacks = {}; // http://cfsimplicity.com/61/removing-analytics-clutter-from-campaign-urls
+ var removeUtms = function(){ var l = window.location; if( l.hash.indexOf(
+ "utm" ) != -1 ){ var anchor = l.hash.match(/#(?!utm)[^&]+/); anchor = anchor?
+ anchor[0]: ''; if(!anchor && window.history.replaceState){ history.replaceState({},'',
+ l.pathname + l.search); } else { l.hash = anchor; } }; }; var _gaq = _gaq
+ || []; _gaq.push(['_setAccount', 'UA-35433268-8'], ['_setAllowAnchor',
+ true]); _gaq.push (['_gat._anonymizeIp']); _gaq.push(['_trackPageview']);
+ _gaq.push( removeUtms ); (function(d, k) { var ga = d.createElement(k);
+ ga.type = 'text/javascript'; ga.async = true; ga.src = 'https://ssl.google-analytics.com/ga.js';
+ var s = d.getElementsByTagName(k)[0]; s.parentNode.insertBefore(ga, s);
+ })(document, 'script');</script>
+ <link rel="alternate" type="application/rss+xml"
+ title="Mozilla Hacks - the Web developer blog » This API is so Fetching! Comments Feed"
+ href="https://hacks.mozilla.org/2015/03/this-api-is-so-fetching/feed/"/>
+ <link rel="stylesheet" id="wp-syntax-css-css" href="https://hacks.mozilla.org/wp-content/plugins/wp-syntax/css/wp-syntax.css?ver=1.0"
+ type="text/css" media="all"/>
+ <script type="text/javascript" src="https://hacks.mozilla.org/wp-includes/js/jquery/jquery.js?ver=1.11.1"></script>
+ <script type="text/javascript" src="https://hacks.mozilla.org/wp-includes/js/jquery/jquery-migrate.min.js?ver=1.2.1"></script>
+ <script type="text/javascript" src="https://hacks.mozilla.org/wp-content/themes/Hacks2013/js/fc-checkcomment.js?ver=4.1"></script>
+ <script type="text/javascript" src="https://hacks.mozilla.org/wp-content/themes/Hacks2013/js/analytics.js?ver=4.1"></script>
+ <script type="text/javascript" src="https://hacks.mozilla.org/wp-content/themes/Hacks2013/js/socialshare.min.js?ver=4.1"></script>
+ <link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://hacks.mozilla.org/xmlrpc.php?rsd"/>
+ <link rel="wlwmanifest" type="application/wlwmanifest+xml" href="https://hacks.mozilla.org/wp-includes/wlwmanifest.xml"/>
+ <link rel="prev" title="Ruby support in Firefox Developer Edition 38"
+ href="https://hacks.mozilla.org/2015/03/ruby-support-in-firefox-developer-edition-38/"/>
+ <link rel="next" title="Optimising SVG images" href="https://hacks.mozilla.org/2015/03/optimising-svg-images/"/>
+ <link rel="canonical" href="https://hacks.mozilla.org/2015/03/this-api-is-so-fetching/"/>
+ <link rel="shortlink" href="https://hacks.mozilla.org/?p=28260"/>
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-36116321-4']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ </head>
+
+ <body class="single single-post postid-28260 single-format-standard">
+ <div id="outer-wrapper">
+ <ul id="nav-access" role="navigation">
+ <li><a href="#content-main">Skip to content</a>
+ </li>
+ </ul>
+ <header id="branding">
+ <h4 id="logo">hacks.mozilla.org <a href="https://hacks.mozilla.org" title="Go to the home page">Home</a></h4>
+
+ <form id="fm-search" method="get" action="https://hacks.mozilla.org/"
+ role="search">
+ <p>
+ <input type="search" placeholder="Search hacks.mozilla.org" value="" name="s"
+ id="s"/>
+ <button type="submit">Go</button>
+ </p>
+ </form>
+ <nav id="nav-main">
+ <ul role="navigation">
+ <li><a href="https://hacks.mozilla.org">Home</a>
+ </li>
+ <li><a href="https://hacks.mozilla.org/articles/">Articles</a>
+ </li>
+ <li><a href="https://hacks.mozilla.org/demos/">Demos</a>
+ </li>
+ <li><a href="https://hacks.mozilla.org/about/">About</a>
+ </li>
+ </ul>
+ </nav> <a href="#" id="tabzilla">Mozilla</a>
+
+ </header>
+ <!-- /#branding -->
+ <div id="content">
+ <div id="content-head">
+ <ul class="nav-crumbs">
+ <li><a href="https://hacks.mozilla.org" title="Go to the home page">Home</a>
+ </li>
+ <li><a href="https://hacks.mozilla.org/articles/">Articles</a>
+ </li>
+ </ul>
+ <h1 class="page-title">This API is so Fetching!</h1>
+
+ <ul class="nav-paging">
+ <li class="prev"><a href="https://hacks.mozilla.org/2015/03/ruby-support-in-firefox-developer-edition-38/"
+ rel="prev">Older Article</a>
+ </li>
+ <li class="next"><a href="https://hacks.mozilla.org/2015/03/optimising-svg-images/" rel="next">Newer Article</a>
+ </li>
+ </ul>
+ <div id="content-bar" class="single">
+ <div class="entry-meta">
+ <p class="entry-posted">on <abbr class="published" title="2015-03-10T08:05:41-07:00">March 10, 2015</abbr>
+by
+ <a
+ href="https://hacks.mozilla.org/author/nmarathemozilla-com/" title="Posts by Nikhil Marathe"
+ class="url fn" rel="author">Nikhil Marathe</a>
+ </p>
+ <p class="entry-cat">in <a href="https://hacks.mozilla.org/category/featured/" rel="category tag">Featured Article</a>
+ <a
+ href="https://hacks.mozilla.org/category/serviceworkers/" rel="category tag">ServiceWorkers</a> <a href="https://hacks.mozilla.org/category/web-workers/"
+ rel="category tag">Web Workers</a> <a href="https://hacks.mozilla.org/category/webapi/"
+ rel="category tag">WebAPI</a>
+ </p>
+ </div>
+ <ul class="entry-extra">
+ <li class="comments"> <a href="https://hacks.mozilla.org/2015/03/this-api-is-so-fetching/#comments">2 comments</a>
+
+ </li>
+ <li class="share">
+ <div class="socialshare" data-type="small-bubbles"></div>
+ </li>
+ </ul>
+ </div>
+ </div>
+ <!-- /#content-head -->
+ <main id="content-main" class="hfeed">
+ <article class="post" role="article">
+ <p>For more than a decade the Web has used XMLHttpRequest (XHR) to achieve
+ asynchronous requests in JavaScript. While very useful, XHR is not a very
+ nice API. It suffers from lack of separation of concerns. The input, output
+ and state are all managed by interacting with one object, and state is
+ tracked using events. Also, the event-based model doesn’t play well with
+ JavaScript’s recent focus on Promise- and generator-based asynchronous
+ programming.</p>
+ <p>The <a href="https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API">Fetch API</a> intends
+ to fix most of these problems. It does this by introducing the same primitives
+ to JS that are used in the HTTP protocol. In addition, it introduces a
+ utility function <code>fetch()</code> that succinctly captures the intention
+ of retrieving a resource from the network.</p>
+ <p>The <a href="https://fetch.spec.whatwg.org">Fetch specification</a>, which
+ defines the API, nails down the semantics of a user agent fetching a resource.
+ This, combined with ServiceWorkers, is an attempt to:</p>
+ <ol>
+ <li>Improve the offline experience.</li>
+ <li>Expose the building blocks of the Web to the platform as part of the
+ <a
+ href="https://extensiblewebmanifesto.org/">extensible web movement</a>.</li>
+ </ol>
+ <p>As of this writing, the Fetch API is available in Firefox 39 (currently
+ Nightly) and Chrome 42 (currently dev). Github has a <a href="https://github.com/github/fetch">Fetch polyfill</a>.</p>
+
+<h2>Feature detection</h2>
+
+ <p>Fetch API support can be detected by checking for <code>Headers</code>,<code>Request</code>, <code>Response</code> or <code>fetch</code> on
+ the <code>window</code> or <code>worker</code> scope.</p>
+
+<h2>Simple fetching</h2>
+
+ <p>The most useful, high-level part of the Fetch API is the <code>fetch()</code> function.
+ In its simplest form it takes a URL and returns a promise that resolves
+ to the response. The response is captured as a <code>Response</code> object.</p>
+ <div
+ class="wp_syntax">
+ <table>
+ <tbody>
+ <tr>
+ <td class="code"><pre class="javascript" style="font-family:monospace;">fetch<span style="color: #009900;">(</span><span style="color: #3366CC;">"/data.json"</span><span style="color: #009900;">)</span>.<span style="color: #660066;">then</span><span style="color: #009900;">(</span><span style="color: #000066; font-weight: bold;">function</span><span style="color: #009900;">(</span>res<span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
+ <span style="color: #006600; font-style: italic;">// res instanceof Response == true.</span>
+ <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">(</span>res.<span style="color: #660066;">ok</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
+ res.<span style="color: #660066;">json</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span>.<span style="color: #660066;">then</span><span style="color: #009900;">(</span><span style="color: #000066; font-weight: bold;">function</span><span style="color: #009900;">(</span>data<span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
+ console.<span style="color: #660066;">log</span><span style="color: #009900;">(</span>data.<span style="color: #660066;">entries</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
+ <span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
+ <span style="color: #009900;">}</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">{</span>
+ console.<span style="color: #660066;">log</span><span style="color: #009900;">(</span><span style="color: #3366CC;">"Looks like the response wasn't perfect, got status"</span><span style="color: #339933;">,</span> res.<span style="color: #660066;">status</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
+ <span style="color: #009900;">}</span>
+<span style="color: #009900;">}</span><span style="color: #339933;">,</span> <span style="color: #000066; font-weight: bold;">function</span><span style="color: #009900;">(</span>e<span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
+ console.<span style="color: #660066;">log</span><span style="color: #009900;">(</span><span style="color: #3366CC;">"Fetch failed!"</span><span style="color: #339933;">,</span> e<span style="color: #009900;">)</span><span style="color: #339933;">;</span>
+<span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span></pre>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>Submitting some parameters, it would look like this:</p>
+ <div class="wp_syntax">
+ <table>
+ <tbody>
+ <tr>
+ <td class="code"><pre class="javascript" style="font-family:monospace;">fetch<span style="color: #009900;">(</span><span style="color: #3366CC;">"http://www.example.org/submit.php"</span><span style="color: #339933;">,</span> <span style="color: #009900;">{</span>
+ method<span style="color: #339933;">:</span> <span style="color: #3366CC;">"POST"</span><span style="color: #339933;">,</span>
+ headers<span style="color: #339933;">:</span> <span style="color: #009900;">{</span>
+ <span style="color: #3366CC;">"Content-Type"</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">"application/x-www-form-urlencoded"</span>
+ <span style="color: #009900;">}</span><span style="color: #339933;">,</span>
+ body<span style="color: #339933;">:</span> <span style="color: #3366CC;">"firstName=Nikhil&amp;favColor=blue&amp;password=easytoguess"</span>
+<span style="color: #009900;">}</span><span style="color: #009900;">)</span>.<span style="color: #660066;">then</span><span style="color: #009900;">(</span><span style="color: #000066; font-weight: bold;">function</span><span style="color: #009900;">(</span>res<span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
+ <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">(</span>res.<span style="color: #660066;">ok</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
+ alert<span style="color: #009900;">(</span><span style="color: #3366CC;">"Perfect! Your settings are saved."</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
+ <span style="color: #009900;">}</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">(</span>res.<span style="color: #660066;">status</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">401</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
+ alert<span style="color: #009900;">(</span><span style="color: #3366CC;">"Oops! You are not authorized."</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
+ <span style="color: #009900;">}</span>
+<span style="color: #009900;">}</span><span style="color: #339933;">,</span> <span style="color: #000066; font-weight: bold;">function</span><span style="color: #009900;">(</span>e<span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
+ alert<span style="color: #009900;">(</span><span style="color: #3366CC;">"Error submitting form!"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
+<span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span></pre>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>The <code>fetch()</code> function’s arguments are the same as those passed
+ to the
+ <br/>
+<code>Request()</code> constructor, so you may directly pass arbitrarily
+ complex requests to <code>fetch()</code> as discussed below.</p>
+
+<h2>Headers</h2>
+
+ <p>Fetch introduces 3 interfaces. These are <code>Headers</code>, <code>Request</code> and
+ <br/>
+<code>Response</code>. They map directly to the underlying HTTP concepts,
+ but have
+ <br/>certain visibility filters in place for privacy and security reasons,
+ such as
+ <br/>supporting CORS rules and ensuring cookies aren’t readable by third parties.</p>
+ <p>The <a href="https://fetch.spec.whatwg.org/#headers-class">Headers interface</a> is
+ a simple multi-map of names to values:</p>
+ <div class="wp_syntax">
+ <table>
+ <tbody>
+ <tr>
+ <td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">var</span> content <span style="color: #339933;">=</span> <span style="color: #3366CC;">"Hello World"</span><span style="color: #339933;">;</span>
+<span style="color: #000066; font-weight: bold;">var</span> reqHeaders <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">new</span> Headers<span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
+reqHeaders.<span style="color: #660066;">append</span><span style="color: #009900;">(</span><span style="color: #3366CC;">"Content-Type"</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">"text/plain"</span>
+reqHeaders.<span style="color: #660066;">append</span><span style="color: #009900;">(</span><span style="color: #3366CC;">"Content-Length"</span><span style="color: #339933;">,</span> content.<span style="color: #660066;">length</span>.<span style="color: #660066;">toString</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
+reqHeaders.<span style="color: #660066;">append</span><span style="color: #009900;">(</span><span style="color: #3366CC;">"X-Custom-Header"</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">"ProcessThisImmediately"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span></pre>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>The same can be achieved by passing an array of arrays or a JS object
+ literal
+ <br/>to the constructor:</p>
+ <div class="wp_syntax">
+ <table>
+ <tbody>
+ <tr>
+ <td class="code"><pre class="javascript" style="font-family:monospace;">reqHeaders <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">new</span> Headers<span style="color: #009900;">(</span><span style="color: #009900;">{</span>
+ <span style="color: #3366CC;">"Content-Type"</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">"text/plain"</span><span style="color: #339933;">,</span>
+ <span style="color: #3366CC;">"Content-Length"</span><span style="color: #339933;">:</span> content.<span style="color: #660066;">length</span>.<span style="color: #660066;">toString</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">,</span>
+ <span style="color: #3366CC;">"X-Custom-Header"</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">"ProcessThisImmediately"</span><span style="color: #339933;">,</span>
+<span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span></pre>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>The contents can be queried and retrieved:</p>
+ <div class="wp_syntax">
+ <table>
+ <tbody>
+ <tr>
+ <td class="code"><pre class="javascript" style="font-family:monospace;">console.<span style="color: #660066;">log</span><span style="color: #009900;">(</span>reqHeaders.<span style="color: #660066;">has</span><span style="color: #009900;">(</span><span style="color: #3366CC;">"Content-Type"</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// true</span>
+console.<span style="color: #660066;">log</span><span style="color: #009900;">(</span>reqHeaders.<span style="color: #660066;">has</span><span style="color: #009900;">(</span><span style="color: #3366CC;">"Set-Cookie"</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// false</span>
+reqHeaders.<span style="color: #000066; font-weight: bold;">set</span><span style="color: #009900;">(</span><span style="color: #3366CC;">"Content-Type"</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">"text/html"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
+reqHeaders.<span style="color: #660066;">append</span><span style="color: #009900;">(</span><span style="color: #3366CC;">"X-Custom-Header"</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">"AnotherValue"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
+&nbsp;
+console.<span style="color: #660066;">log</span><span style="color: #009900;">(</span>reqHeaders.<span style="color: #000066; font-weight: bold;">get</span><span style="color: #009900;">(</span><span style="color: #3366CC;">"Content-Length"</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// 11</span>
+console.<span style="color: #660066;">log</span><span style="color: #009900;">(</span>reqHeaders.<span style="color: #660066;">getAll</span><span style="color: #009900;">(</span><span style="color: #3366CC;">"X-Custom-Header"</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// ["ProcessThisImmediately", "AnotherValue"]</span>
+&nbsp;
+reqHeaders.<span style="color: #000066; font-weight: bold;">delete</span><span style="color: #009900;">(</span><span style="color: #3366CC;">"X-Custom-Header"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
+console.<span style="color: #660066;">log</span><span style="color: #009900;">(</span>reqHeaders.<span style="color: #660066;">getAll</span><span style="color: #009900;">(</span><span style="color: #3366CC;">"X-Custom-Header"</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// []</span></pre>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>Some of these operations are only useful in ServiceWorkers, but they provide
+ <br/>a much nicer API to Headers.</p>
+ <p>Since Headers can be sent in requests, or received in responses, and have
+ various limitations about what information can and should be mutable, <code>Headers</code> objects
+ have a <strong>guard</strong> property. This is not exposed to the Web, but
+ it affects which mutation operations are allowed on the Headers object.
+ <br/>Possible values are:</p>
+ <ul>
+ <li>“none”: default.</li>
+ <li>“request”: guard for a Headers object obtained from a Request (<code>Request.headers</code>).</li>
+ <li>“request-no-cors”: guard for a Headers object obtained from a Request
+ created
+ <br/>with mode “no-cors”.</li>
+ <li>“response”: naturally, for Headers obtained from Response (<code>Response.headers</code>).</li>
+ <li>“immutable”: Mostly used for ServiceWorkers, renders a Headers object
+ <br/>read-only.</li>
+ </ul>
+ <p>The details of how each guard affects the behaviors of the Headers object
+ are
+ <br/>in the <a href="https://fetch.spec.whatwg.org">specification</a>. For example,
+ you may not append or set a “request” guarded Headers’ “Content-Length”
+ header. Similarly, inserting “Set-Cookie” into a Response header is not
+ allowed so that ServiceWorkers may not set cookies via synthesized Responses.</p>
+ <p>All of the Headers methods throw TypeError if <code>name</code> is not a
+ <a
+ href="https://fetch.spec.whatwg.org/#concept-header-name">valid HTTP Header name</a>. The mutation operations will throw TypeError
+ if there is an immutable guard. Otherwise they fail silently. For example:</p>
+ <div
+ class="wp_syntax">
+ <table>
+ <tbody>
+ <tr>
+ <td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">var</span> res <span style="color: #339933;">=</span> Response.<span style="color: #660066;">error</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
+<span style="color: #000066; font-weight: bold;">try</span> <span style="color: #009900;">{</span>
+ res.<span style="color: #660066;">headers</span>.<span style="color: #000066; font-weight: bold;">set</span><span style="color: #009900;">(</span><span style="color: #3366CC;">"Origin"</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">"http://mybank.com"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
+<span style="color: #009900;">}</span> <span style="color: #000066; font-weight: bold;">catch</span><span style="color: #009900;">(</span>e<span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
+ console.<span style="color: #660066;">log</span><span style="color: #009900;">(</span><span style="color: #3366CC;">"Cannot pretend to be a bank!"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
+<span style="color: #009900;">}</span></pre>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+
+<h2>Request</h2>
+
+ <p>The Request interface defines a request to fetch a resource over HTTP.
+ URL, method and headers are expected, but the Request also allows specifying
+ a body, a request mode, credentials and cache hints.</p>
+ <p>The simplest Request is of course, just a URL, as you may do to GET a
+ resource.</p>
+ <div class="wp_syntax">
+ <table>
+ <tbody>
+ <tr>
+ <td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">var</span> req <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">new</span> Request<span style="color: #009900;">(</span><span style="color: #3366CC;">"/index.html"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
+console.<span style="color: #660066;">log</span><span style="color: #009900;">(</span>req.<span style="color: #660066;">method</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// "GET"</span>
+console.<span style="color: #660066;">log</span><span style="color: #009900;">(</span>req.<span style="color: #660066;">url</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// "http://example.com/index.html"</span></pre>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>You may also pass a Request to the <code>Request()</code> constructor to
+ create a copy.
+ <br/>(This is not the same as calling the <code>clone()</code> method, which
+ is covered in
+ <br/>the “Reading bodies” section.).</p>
+ <div class="wp_syntax">
+ <table>
+ <tbody>
+ <tr>
+ <td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">var</span> copy <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">new</span> Request<span style="color: #009900;">(</span>req<span style="color: #009900;">)</span><span style="color: #339933;">;</span>
+console.<span style="color: #660066;">log</span><span style="color: #009900;">(</span>copy.<span style="color: #660066;">method</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// "GET"</span>
+console.<span style="color: #660066;">log</span><span style="color: #009900;">(</span>copy.<span style="color: #660066;">url</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// "http://example.com/index.html"</span></pre>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>Again, this form is probably only useful in ServiceWorkers.</p>
+ <p>The non-URL attributes of the <code>Request</code> can only be set by passing
+ initial
+ <br/>values as a second argument to the constructor. This argument is a dictionary.</p>
+ <div
+ class="wp_syntax">
+ <table>
+ <tbody>
+ <tr>
+ <td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">var</span> uploadReq <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">new</span> Request<span style="color: #009900;">(</span><span style="color: #3366CC;">"/uploadImage"</span><span style="color: #339933;">,</span> <span style="color: #009900;">{</span>
+ method<span style="color: #339933;">:</span> <span style="color: #3366CC;">"POST"</span><span style="color: #339933;">,</span>
+ headers<span style="color: #339933;">:</span> <span style="color: #009900;">{</span>
+ <span style="color: #3366CC;">"Content-Type"</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">"image/png"</span><span style="color: #339933;">,</span>
+ <span style="color: #009900;">}</span><span style="color: #339933;">,</span>
+ body<span style="color: #339933;">:</span> <span style="color: #3366CC;">"image data"</span>
+<span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span></pre>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>The Request’s mode is used to determine if cross-origin requests lead
+ to valid responses, and which properties on the response are readable.
+ Legal mode values are <code>"same-origin"</code>, <code>"no-cors"</code> (default)
+ and <code>"cors"</code>.</p>
+ <p>The <code>"same-origin"</code> mode is simple, if a request is made to another
+ origin with this mode set, the result is simply an error. You could use
+ this to ensure that
+ <br/>a request is always being made to your origin.</p>
+ <div class="wp_syntax">
+ <table>
+ <tbody>
+ <tr>
+ <td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">var</span> arbitraryUrl <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">(</span><span style="color: #3366CC;">"url-input"</span><span style="color: #009900;">)</span>.<span style="color: #660066;">value</span><span style="color: #339933;">;</span>
+fetch<span style="color: #009900;">(</span>arbitraryUrl<span style="color: #339933;">,</span> <span style="color: #009900;">{</span> mode<span style="color: #339933;">:</span> <span style="color: #3366CC;">"same-origin"</span> <span style="color: #009900;">}</span><span style="color: #009900;">)</span>.<span style="color: #660066;">then</span><span style="color: #009900;">(</span><span style="color: #000066; font-weight: bold;">function</span><span style="color: #009900;">(</span>res<span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
+ console.<span style="color: #660066;">log</span><span style="color: #009900;">(</span><span style="color: #3366CC;">"Response succeeded?"</span><span style="color: #339933;">,</span> res.<span style="color: #660066;">ok</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
+<span style="color: #009900;">}</span><span style="color: #339933;">,</span> <span style="color: #000066; font-weight: bold;">function</span><span style="color: #009900;">(</span>e<span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
+ console.<span style="color: #660066;">log</span><span style="color: #009900;">(</span><span style="color: #3366CC;">"Please enter a same-origin URL!"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
+<span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span></pre>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>The <code>"no-cors"</code> mode captures what the web platform does by default
+ for scripts you import from CDNs, images hosted on other domains, and so
+ on. First, it prevents the method from being anything other than “HEAD”,
+ “GET” or “POST”. Second, if any ServiceWorkers intercept these requests,
+ they may not add or override any headers except for <a href="https://fetch.spec.whatwg.org/#simple-header">these</a>.
+ Third, JavaScript may not access any properties of the resulting Response.
+ This ensures that ServiceWorkers do not affect the semantics of the Web
+ and prevents security and privacy issues that could arise from leaking
+ data across domains.</p>
+ <p><code>"cors"</code> mode is what you’ll usually use to make known cross-origin
+ requests to access various APIs offered by other vendors. These are expected
+ to adhere to
+ <br/>the <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS">CORS protocol</a>.
+ Only a <a href="https://fetch.spec.whatwg.org/#concept-filtered-response-cors">limited set</a> of
+ headers is exposed in the Response, but the body is readable. For example,
+ you could get a list of Flickr’s <a href="https://www.flickr.com/services/api/flickr.interestingness.getList.html">most interesting</a> photos
+ today like this:</p>
+ <div class="wp_syntax">
+ <table>
+ <tbody>
+ <tr>
+ <td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">var</span> u <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">new</span> URLSearchParams<span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
+u.<span style="color: #660066;">append</span><span style="color: #009900;">(</span><span style="color: #3366CC;">'method'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'flickr.interestingness.getList'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
+u.<span style="color: #660066;">append</span><span style="color: #009900;">(</span><span style="color: #3366CC;">'api_key'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'&lt;insert api key here&gt;'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
+u.<span style="color: #660066;">append</span><span style="color: #009900;">(</span><span style="color: #3366CC;">'format'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'json'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
+u.<span style="color: #660066;">append</span><span style="color: #009900;">(</span><span style="color: #3366CC;">'nojsoncallback'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'1'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
+&nbsp;
+<span style="color: #000066; font-weight: bold;">var</span> apiCall <span style="color: #339933;">=</span> fetch<span style="color: #009900;">(</span><span style="color: #3366CC;">'https://api.flickr.com/services/rest?'</span> <span style="color: #339933;">+</span> u<span style="color: #009900;">)</span><span style="color: #339933;">;</span>
+&nbsp;
+apiCall.<span style="color: #660066;">then</span><span style="color: #009900;">(</span><span style="color: #000066; font-weight: bold;">function</span><span style="color: #009900;">(</span>response<span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
+ <span style="color: #000066; font-weight: bold;">return</span> response.<span style="color: #660066;">json</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span>.<span style="color: #660066;">then</span><span style="color: #009900;">(</span><span style="color: #000066; font-weight: bold;">function</span><span style="color: #009900;">(</span>json<span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
+ <span style="color: #006600; font-style: italic;">// photo is a list of photos.</span>
+ <span style="color: #000066; font-weight: bold;">return</span> json.<span style="color: #660066;">photos</span>.<span style="color: #660066;">photo</span><span style="color: #339933;">;</span>
+ <span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
+<span style="color: #009900;">}</span><span style="color: #009900;">)</span>.<span style="color: #660066;">then</span><span style="color: #009900;">(</span><span style="color: #000066; font-weight: bold;">function</span><span style="color: #009900;">(</span>photos<span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
+ photos.<span style="color: #660066;">forEach</span><span style="color: #009900;">(</span><span style="color: #000066; font-weight: bold;">function</span><span style="color: #009900;">(</span>photo<span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
+ console.<span style="color: #660066;">log</span><span style="color: #009900;">(</span>photo.<span style="color: #660066;">title</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
+ <span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
+<span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span></pre>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>You may not read out the “Date” header since Flickr does not allow it
+ via
+ <br/>
+<code>Access-Control-Expose-Headers</code>.</p>
+ <div class="wp_syntax">
+ <table>
+ <tbody>
+ <tr>
+ <td class="code"><pre class="javascript" style="font-family:monospace;">response.<span style="color: #660066;">headers</span>.<span style="color: #000066; font-weight: bold;">get</span><span style="color: #009900;">(</span><span style="color: #3366CC;">"Date"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// null</span></pre>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>The <code>credentials</code> enumeration determines if cookies for the other
+ domain are
+ <br/>sent to cross-origin requests. This is similar to XHR’s <code>withCredentials</code>
+ <br/>flag, but tri-valued as <code>"omit"</code> (default), <code>"same-origin"</code> and <code>"include"</code>.</p>
+ <p>The Request object will also give the ability to offer caching hints to
+ the user-agent. This is currently undergoing some <a href="https://github.com/slightlyoff/ServiceWorker/issues/585">security review</a>.
+ Firefox exposes the attribute, but it has no effect.</p>
+ <p>Requests have two read-only attributes that are relevant to ServiceWorkers
+ <br/>intercepting them. There is the string <code>referrer</code>, which is
+ set by the UA to be
+ <br/>the referrer of the Request. This may be an empty string. The other is
+ <br/>
+<code>context</code> which is a rather <a href="https://fetch.spec.whatwg.org/#requestcredentials">large enumeration</a> defining
+ what sort of resource is being fetched. This could be “image” if the request
+ is from an
+ &lt;img&gt;tag in the controlled document, “worker” if it is an attempt to load a
+ worker script, and so on. When used with the <code>fetch()</code> function,
+ it is “fetch”.</p>
+
+<h2>Response</h2>
+
+ <p><code>Response</code> instances are returned by calls to <code>fetch()</code>.
+ They can also be created by JS, but this is only useful in ServiceWorkers.</p>
+ <p>We have already seen some attributes of Response when we looked at <code>fetch()</code>.
+ The most obvious candidates are <code>status</code>, an integer (default
+ value 200) and <code>statusText</code> (default value “OK”), which correspond
+ to the HTTP status code and reason. The <code>ok</code> attribute is just
+ a shorthand for checking that <code>status</code> is in the range 200-299
+ inclusive.</p>
+ <p><code>headers</code> is the Response’s Headers object, with guard “response”.
+ The <code>url</code> attribute reflects the URL of the corresponding request.</p>
+ <p>Response also has a <code>type</code>, which is “basic”, “cors”, “default”,
+ “error” or
+ <br/>“opaque”.</p>
+ <ul>
+ <li><code>"basic"</code>: normal, same origin response, with all headers exposed
+ except
+ <br/>“Set-Cookie” and “Set-Cookie2″.</li>
+ <li><code>"cors"</code>: response was received from a valid cross-origin request.
+ <a
+ href="https://fetch.spec.whatwg.org/#concept-filtered-response-cors">Certain headers and the body</a>may be accessed.</li>
+ <li><code>"error"</code>: network error. No useful information describing
+ the error is available. The Response’s status is 0, headers are empty and
+ immutable. This is the type for a Response obtained from <code>Response.error()</code>.</li>
+ <li><code>"opaque"</code>: response for “no-cors” request to cross-origin
+ resource. <a href="https://fetch.spec.whatwg.org/#concept-filtered-response-opaque">Severely<br/>
+ restricted</a>
+ </li>
+ </ul>
+ <p>The “error” type results in the <code>fetch()</code> Promise rejecting with
+ TypeError.</p>
+ <p>There are certain attributes that are useful only in a ServiceWorker scope.
+ The
+ <br/>idiomatic way to return a Response to an intercepted request in ServiceWorkers
+ is:</p>
+ <div class="wp_syntax">
+ <table>
+ <tbody>
+ <tr>
+ <td class="code"><pre class="javascript" style="font-family:monospace;">addEventListener<span style="color: #009900;">(</span><span style="color: #3366CC;">'fetch'</span><span style="color: #339933;">,</span> <span style="color: #000066; font-weight: bold;">function</span><span style="color: #009900;">(</span>event<span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
+ event.<span style="color: #660066;">respondWith</span><span style="color: #009900;">(</span><span style="color: #000066; font-weight: bold;">new</span> Response<span style="color: #009900;">(</span><span style="color: #3366CC;">"Response body"</span><span style="color: #339933;">,</span> <span style="color: #009900;">{</span>
+ headers<span style="color: #339933;">:</span> <span style="color: #009900;">{</span> <span style="color: #3366CC;">"Content-Type"</span> <span style="color: #339933;">:</span> <span style="color: #3366CC;">"text/plain"</span> <span style="color: #009900;">}</span>
+ <span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
+<span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span></pre>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>As you can see, Response has a two argument constructor, where both arguments
+ are optional. The first argument is a body initializer, and the second
+ is a dictionary to set the <code>status</code>, <code>statusText</code> and <code>headers</code>.</p>
+ <p>The static method <code>Response.error()</code> simply returns an error
+ response. Similarly, <code>Response.redirect(url, status)</code> returns
+ a Response resulting in
+ <br/>a redirect to <code>url</code>.</p>
+
+<h2>Dealing with bodies</h2>
+
+ <p>Both Requests and Responses may contain body data. We’ve been glossing
+ over it because of the various data types body may contain, but we will
+ cover it in detail now.</p>
+ <p>A body is an instance of any of the following types.</p>
+ <ul>
+ <li><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer">ArrayBuffer</a>
+ </li>
+ <li><a href="https://developer.mozilla.org/en-US/docs/Web/API/ArrayBufferView">ArrayBufferView</a> (Uint8Array
+ and friends)</li>
+ <li><a href="https://developer.mozilla.org/en-US/docs/Web/API/Blob">Blob</a>/
+ <a
+ href="https://developer.mozilla.org/en-US/docs/Web/API/File">File</a>
+ </li>
+ <li>string</li>
+ <li><a href="https://url.spec.whatwg.org/#interface-urlsearchparams">URLSearchParams</a>
+ </li>
+ <li><a href="https://developer.mozilla.org/en-US/docs/Web/API/FormData">FormData</a> –
+ currently not supported by either Gecko or Blink. Firefox expects to ship
+ this in version 39 along with the rest of Fetch.</li>
+ </ul>
+ <p>In addition, Request and Response both offer the following methods to
+ extract their body. These all return a Promise that is eventually resolved
+ with the actual content.</p>
+ <ul>
+ <li><code>arrayBuffer()</code>
+ </li>
+ <li><code>blob()</code>
+ </li>
+ <li><code>json()</code>
+ </li>
+ <li><code>text()</code>
+ </li>
+ <li><code>formData()</code>
+ </li>
+ </ul>
+ <p>This is a significant improvement over XHR in terms of ease of use of
+ non-text data!</p>
+ <p>Request bodies can be set by passing <code>body</code> parameters:</p>
+ <div
+ class="wp_syntax">
+ <table>
+ <tbody>
+ <tr>
+ <td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">var</span> form <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">new</span> FormData<span style="color: #009900;">(</span>document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">(</span><span style="color: #3366CC;">'login-form'</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
+fetch<span style="color: #009900;">(</span><span style="color: #3366CC;">"/login"</span><span style="color: #339933;">,</span> <span style="color: #009900;">{</span>
+ method<span style="color: #339933;">:</span> <span style="color: #3366CC;">"POST"</span><span style="color: #339933;">,</span>
+ body<span style="color: #339933;">:</span> form
+<span style="color: #009900;">}</span><span style="color: #009900;">)</span></pre>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>Responses take the first argument as the body.</p>
+ <div class="wp_syntax">
+ <table>
+ <tbody>
+ <tr>
+ <td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">var</span> res <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">new</span> Response<span style="color: #009900;">(</span><span style="color: #000066; font-weight: bold;">new</span> File<span style="color: #009900;">(</span><span style="color: #009900;">[</span><span style="color: #3366CC;">"chunk"</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">"chunk"</span><span style="color: #009900;">]</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">"archive.zip"</span><span style="color: #339933;">,</span>
+ <span style="color: #009900;">{</span> type<span style="color: #339933;">:</span> <span style="color: #3366CC;">"application/zip"</span> <span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span></pre>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>Both Request and Response (and by extension the <code>fetch()</code> function),
+ will try to intelligently <a href="https://fetch.spec.whatwg.org/#concept-bodyinit-extract">determine the content type</a>.
+ Request will also automatically set a “Content-Type” header if none is
+ set in the dictionary.</p>
+
+<h3>Streams and cloning</h3>
+
+ <p>It is important to realise that Request and Response bodies can only be
+ read once! Both interfaces have a boolean attribute <code>bodyUsed</code> to
+ determine if it is safe to read or not.</p>
+ <div class="wp_syntax">
+ <table>
+ <tbody>
+ <tr>
+ <td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">var</span> res <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">new</span> Response<span style="color: #009900;">(</span><span style="color: #3366CC;">"one time use"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
+console.<span style="color: #660066;">log</span><span style="color: #009900;">(</span>res.<span style="color: #660066;">bodyUsed</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// false</span>
+res.<span style="color: #660066;">text</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span>.<span style="color: #660066;">then</span><span style="color: #009900;">(</span><span style="color: #000066; font-weight: bold;">function</span><span style="color: #009900;">(</span>v<span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
+ console.<span style="color: #660066;">log</span><span style="color: #009900;">(</span>res.<span style="color: #660066;">bodyUsed</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// true</span>
+<span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
+console.<span style="color: #660066;">log</span><span style="color: #009900;">(</span>res.<span style="color: #660066;">bodyUsed</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// true</span>
+&nbsp;
+res.<span style="color: #660066;">text</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span>.<span style="color: #000066; font-weight: bold;">catch</span><span style="color: #009900;">(</span><span style="color: #000066; font-weight: bold;">function</span><span style="color: #009900;">(</span>e<span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
+ console.<span style="color: #660066;">log</span><span style="color: #009900;">(</span><span style="color: #3366CC;">"Tried to read already consumed Response"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
+<span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span></pre>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p>This decision allows easing the transition to an eventual <a href="https://streams.spec.whatwg.org/">stream-based</a> Fetch
+ API. The intention is to let applications consume data as it arrives, allowing
+ for JavaScript to deal with larger files like videos, and perform things
+ like compression and editing on the fly.</p>
+ <p>Often, you’ll want access to the body multiple times. For example, you
+ can use the upcoming <a href="http://slightlyoff.github.io/ServiceWorker/spec/service_worker/index.html#cache-objects">Cache API</a> to
+ store Requests and Responses for offline use, and Cache requires bodies
+ to be available for reading.</p>
+ <p>So how do you read out the body multiple times within such constraints?
+ The API provides a <code>clone()</code> method on the two interfaces. This
+ will return a clone of the object, with a ‘new’ body. <code>clone()</code> MUST
+ be called before the body of the corresponding object has been used. That
+ is, <code>clone()</code> first, read later.</p>
+ <div class="wp_syntax">
+ <table>
+ <tbody>
+ <tr>
+ <td class="code"><pre class="javascript" style="font-family:monospace;">addEventListener<span style="color: #009900;">(</span><span style="color: #3366CC;">'fetch'</span><span style="color: #339933;">,</span> <span style="color: #000066; font-weight: bold;">function</span><span style="color: #009900;">(</span>evt<span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
+ <span style="color: #000066; font-weight: bold;">var</span> sheep <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">new</span> Response<span style="color: #009900;">(</span><span style="color: #3366CC;">"Dolly"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
+ console.<span style="color: #660066;">log</span><span style="color: #009900;">(</span>sheep.<span style="color: #660066;">bodyUsed</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// false</span>
+ <span style="color: #000066; font-weight: bold;">var</span> clone <span style="color: #339933;">=</span> sheep.<span style="color: #660066;">clone</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
+ console.<span style="color: #660066;">log</span><span style="color: #009900;">(</span>clone.<span style="color: #660066;">bodyUsed</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// false</span>
+&nbsp;
+ clone.<span style="color: #660066;">text</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
+ console.<span style="color: #660066;">log</span><span style="color: #009900;">(</span>sheep.<span style="color: #660066;">bodyUsed</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// false</span>
+ console.<span style="color: #660066;">log</span><span style="color: #009900;">(</span>clone.<span style="color: #660066;">bodyUsed</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// true</span>
+&nbsp;
+ evt.<span style="color: #660066;">respondWith</span><span style="color: #009900;">(</span>cache.<span style="color: #660066;">add</span><span style="color: #009900;">(</span>sheep.<span style="color: #660066;">clone</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span>.<span style="color: #660066;">then</span><span style="color: #009900;">(</span><span style="color: #000066; font-weight: bold;">function</span><span style="color: #009900;">(</span>e<span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
+ <span style="color: #000066; font-weight: bold;">return</span> sheep<span style="color: #339933;">;</span>
+ <span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
+<span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span></pre>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+
+<h2>Future improvements</h2>
+
+ <p>Along with the transition to streams, Fetch will eventually have the ability
+ to abort running <code>fetch()</code>es and some way to report the progress
+ of a fetch. These are provided by XHR, but are a little tricky to fit in
+ the Promise-based nature of the Fetch API.</p>
+ <p>You can contribute to the evolution of this API by participating in discussions
+ on the <a href="https://whatwg.org/mailing-list">WHATWG mailing list</a> and
+ in the issues in the <a href="https://www.w3.org/Bugs/Public/buglist.cgi?product=WHATWG&amp;component=Fetch&amp;resolution=---">Fetch</a> and
+ <a
+ href="https://github.com/slightlyoff/ServiceWorker/issues">ServiceWorker</a>specifications.</p>
+ <p>For a better web!</p>
+ <p><em>The author would like to thank Andrea Marchesini, Anne van Kesteren and Ben<br/>
+Kelly for helping with the specification and implementation.</em>
+ </p>
+ <footer class="entry-meta">
+ <p>Posted by <a href="https://hacks.mozilla.org/author/nmarathemozilla-com/"
+ title="Posts by Nikhil Marathe" class="url fn" rel="author">Nikhil Marathe</a>
+on
+ <time
+ datetime="2015-03-10T08:05:41-07:00">March 10, 2015</time>at
+ <time datetime="PDT08:05:41-07:00">08:05</time>
+ </p>
+ <div class="share">
+ <div class="socialshare" data-type="small-bubbles"></div>
+ </div>
+ </footer>
+ </article>
+ <section id="comments">
+ <div id="comment-stream">
+ <header class="comments-head">
+ <h3>2 comments</h3>
+
+ <p class="open"><a href="#respond">Post a comment</a>
+ </p>
+ </header>
+ <ol id="comment-list" class="hfeed av">
+ <li id="comment-17303" class="comment even thread-even depth-1 hentry">
+ <p class="entry-title vcard"> <span class="photo"><img alt="" src="https://secure.gravatar.com/avatar/cc6f7a60f71adaa81b7bc798ebc71be1?s=48&amp;d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D48&amp;r=G" class="avatar avatar-48 photo" height="48" width="48"/></span>
+ <cite
+ class="author fn">Alexander Petrov</cite> <span class="comment-meta">wrote on <a href="https://hacks.mozilla.org/2015/03/this-api-is-so-fetching/comment-page-1/#comment-17303" rel="bookmark" title="Permanent link to this comment by Alexander Petrov"><abbr class="published" title="2015-03-11">March 11th, 2015</abbr> at 02:57</a>:</span>
+
+ </p>
+ <blockquote class="entry-content">
+ <p>how do you abort a fetch?</p>
+ </blockquote>
+ <p class="comment-util"><a class="comment-reply-link" href="/2015/03/this-api-is-so-fetching/?replytocom=17303#respond"
+ onclick="return addComment.moveForm( &quot;comment-17303&quot;, &quot;17303&quot;, &quot;respond&quot;, &quot;28260&quot; )"
+ aria-label="Reply to Alexander Petrov">Reply</a>
+ </p>
+ <ol class="children">
+ <li id="comment-17305" class="comment byuser comment-author-nmarathemozilla-com bypostauthor odd alt depth-2 hentry">
+ <p class="entry-title vcard"> <a href="http://blog.nikhilism.com" class="url" rel="nofollow external"
+ title="http://blog.nikhilism.com">
+ <span class="photo"><img alt="" src="https://secure.gravatar.com/avatar/098bc26c1d2d2b425b258cff67044ac1?s=48&amp;d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D48&amp;r=G" class="avatar avatar-48 photo" height="48" width="48"/></span> <cite class="author fn">Nikhil Marathe</cite>
+ </a>
+ <span class="comment-meta">wrote on <a href="https://hacks.mozilla.org/2015/03/this-api-is-so-fetching/comment-page-1/#comment-17305" rel="bookmark" title="Permanent link to this comment by Nikhil Marathe"><abbr class="published" title="2015-03-11">March 11th, 2015</abbr> at 08:00</a>:</span>
+
+ </p>
+ <blockquote class="entry-content">
+ <p>At this point there is no way to do so. As mentioned in the future improvements
+ sections, there are ongoing attempts to find a nice way to plug abort()
+ into Promise based APIs.</p>
+ </blockquote>
+ <p class="comment-util"><a class="comment-reply-link" href="/2015/03/this-api-is-so-fetching/?replytocom=17305#respond"
+ onclick="return addComment.moveForm( &quot;comment-17305&quot;, &quot;17305&quot;, &quot;respond&quot;, &quot;28260&quot; )"
+ aria-label="Reply to Nikhil Marathe">Reply</a>
+ </p>
+ </li>
+ <!-- #comment-## -->
+ </ol>
+ <!-- .children -->
+ </li>
+ <!-- #comment-## -->
+ </ol>
+ </div>
+ <div id="respond">
+ <form id="comment-form" action="https://hacks.mozilla.org/wp-comments-post.php"
+ method="post">
+ <fieldset>
+ <legend><span>Post Your Comment</span>
+ </legend>
+ <p id="cancel-comment-reply"><a rel="nofollow" id="cancel-comment-reply-link" href="/2015/03/this-api-is-so-fetching/#respond"
+ style="display:none;">Cancel Reply</a>
+ </p>
+ <ol>
+ <li id="cmt-name">
+ <label for="author">Your name <abbr title="(required)">*</abbr>
+ </label>
+ <input type="text" name="author" id="author" size="25" required="" aria-required="true"/>
+ </li>
+ <li id="cmt-email">
+ <label for="email">Your e-mail <abbr title="(required)">*</abbr>
+ </label>
+ <input type="email" name="email" id="email" size="25" required="" aria-required="true"/>
+ </li>
+ <li id="cmt-web">
+ <label for="url">Your website</label>
+ <input type="url" name="url" id="url" size="25"/>
+ </li>
+ <li id="cmt-ackbar">
+ <label for="age">Spam robots, please fill in this field. Humans should leave it blank.</label>
+ <input
+ type="text" name="age" id="age" size="4" tabindex="-1"/>
+ </li>
+ <li id="cmt-cmt">
+ <label for="comment">Your comment</label>
+ <textarea name="comment" id="comment" cols="50" rows="10"
+ required="required" aria-required="true"></textarea>
+ </li>
+ <li id="comment-submit">
+ <button name="submit" type="submit">Submit Comment</button>
+ <input type="hidden" name="comment_post_ID" value="28260"
+ id="comment_post_ID"/>
+ <input type="hidden" name="comment_parent" id="comment_parent" value="0"/>
+ <p style="display: none;">
+ <input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce"
+ value="b601694886"/>
+ </p>
+ <!-- BEGIN: subscribe to comments reloaded -->
+ <p class="comment-form-subscriptions">
+ <label for="subscribe-reloaded">
+ <input style="width:30px" type="checkbox" name="subscribe-reloaded" id="subscribe-reloaded"
+ value="yes"/>Notify me of followup comments via e-mail. You can also <a href="https://hacks.mozilla.org/comment-subscriptions/?srp=28260&amp;sra=s">subscribe</a> without
+ commenting.</label>
+ </p>
+ <!-- END: subscribe to comments reloaded -->
+ <p style="display: none;">
+ <input type="hidden" id="ak_js" name="ak_js" value="212"/>
+ </p>
+ </li>
+ </ol>
+ </fieldset>
+ </form>
+ </div>
+ </section>
+ <script>
+ jQuery("#comment-form").submit(function() { return fc_checkform('req'); });
+ </script>
+ </main>
+ <!-- /#content-main -->
+ <div id="content-sub">
+ <ul id="widgets">
+ <li class="widget author">
+ <h3>About the Author</h3>
+
+ <div class="vcard">
+ <h4 class="fn">
+ <a class="url" href="http://blog.nikhilism.com" rel="external me">Nikhil Marathe <span class="photo"><img alt="" src="https://secure.gravatar.com/avatar/098bc26c1d2d2b425b258cff67044ac1?s=48&amp;d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D48&amp;r=G" class="avatar avatar-48 photo" height="48" width="48"/></span> </a></h4>
+
+ <p>Nikhil works on implementing Web APIs in Gecko. He is currently hacking
+ on ServiceWorkers, Fetch and parts of the Notification and Push APIs.</p>
+ <ul
+ class="author-meta">
+ <li><a href="http://blog.nikhilism.com" class="website" rel="me">blog.nikhilism.com</a>
+ </li>
+ </ul>
+ <p><a class="url" href="https://hacks.mozilla.org/author/nmarathemozilla-com/">Read more articles by Nikhil Marathe…</a>
+ </p>
+ </div>
+ </li>
+ <li class="widget categories">
+ <h3>Articles by Category</h3>
+
+ <ul class="cat-list" role="navigation">
+ <li class="cat-item cat-item-74992"><a href="https://hacks.mozilla.org/category/35-days/">35 Days</a> (45)</li>
+ <li
+ class="cat-item cat-item-75188"><a href="https://hacks.mozilla.org/category/font-face/">@font-face</a> (9)</li>
+ <li
+ class="cat-item cat-item-75450"><a href="https://hacks.mozilla.org/category/a-node-js-holiday-season/">A Node.JS Holiday Season</a> (12)</li>
+ <li
+ class="cat-item cat-item-75682"><a href="https://hacks.mozilla.org/category/abouthacks/">about:hacks</a> (2)</li>
+ <li
+ class="cat-item cat-item-50"><a href="https://hacks.mozilla.org/category/accessibility/">Accessibility</a> (1)</li>
+ <li
+ class="cat-item cat-item-119"><a href="https://hacks.mozilla.org/category/add-ons/">Add-ons</a> (16)</li>
+ <li
+ class="cat-item cat-item-86093"><a href="https://hacks.mozilla.org/category/javascript/animations/">Animations</a> (7)</li>
+ <li
+ class="cat-item cat-item-4213"><a href="https://hacks.mozilla.org/category/apps/">Apps</a> (94)</li>
+ <li
+ class="cat-item cat-item-76011"><a href="https://hacks.mozilla.org/category/ask-mdn/">Ask MDN</a> (3)</li>
+ <li
+ class="cat-item cat-item-25981"><a href="https://hacks.mozilla.org/category/asm-js/">asm.js</a> (10)</li>
+ <li
+ class="cat-item cat-item-221"><a href="https://hacks.mozilla.org/category/audio/">Audio</a> (42)</li>
+ <li
+ class="cat-item cat-item-76289"><a href="https://hacks.mozilla.org/category/bleeding-edge/">Bleeding edge</a> (12)</li>
+ <li
+ class="cat-item cat-item-76432"><a href="https://hacks.mozilla.org/category/boottogecko/">Boot to Gecko (B2G)</a> (12)</li>
+ <li
+ class="cat-item cat-item-76712"><a href="https://hacks.mozilla.org/category/brick/">Brick</a> (2)</li>
+ <li
+ class="cat-item cat-item-76814"><a href="https://hacks.mozilla.org/category/browserid-2/">BrowserID</a> (4)</li>
+ <li
+ class="cat-item cat-item-134"><a href="https://hacks.mozilla.org/category/canvas/">Canvas</a> (44)</li>
+ <li
+ class="cat-item cat-item-23095"><a href="https://hacks.mozilla.org/category/challenge/">Challenge</a> (9)</li>
+ <li
+ class="cat-item cat-item-70"><a href="https://hacks.mozilla.org/category/conferences/">Conferences</a> (36)</li>
+ <li
+ class="cat-item cat-item-176756"><a href="https://hacks.mozilla.org/category/cordova/">Cordova</a> (1)</li>
+ <li
+ class="cat-item cat-item-133"><a href="https://hacks.mozilla.org/category/css/">CSS</a> (109)</li>
+ <li
+ class="cat-item cat-item-185"><a href="https://hacks.mozilla.org/category/debugging/">Debugging</a> (11)</li>
+ <li
+ class="cat-item cat-item-19490"><a href="https://hacks.mozilla.org/category/demo/">Demo</a> (93)</li>
+ <li
+ class="cat-item cat-item-86249"><a href="https://hacks.mozilla.org/category/mdn/demo-studio/">Demo Studio</a> (11)</li>
+ <li
+ class="cat-item cat-item-76969"><a href="https://hacks.mozilla.org/category/dev-derby/">Dev Derby</a> (56)</li>
+ <li
+ class="cat-item cat-item-297"><a href="https://hacks.mozilla.org/category/developer-tools/">Developer Tools</a> (73)</li>
+ <li
+ class="cat-item cat-item-77083"><a href="https://hacks.mozilla.org/category/device-apis/">Device APIs</a> (14)</li>
+ <li
+ class="cat-item cat-item-894"><a href="https://hacks.mozilla.org/category/docs/">Docs</a> (96)</li>
+ <li
+ class="cat-item cat-item-230"><a href="https://hacks.mozilla.org/category/dom/">DOM</a> (23)</li>
+ <li
+ class="cat-item cat-item-77434"><a href="https://hacks.mozilla.org/category/drag-and-drop/">Drag and Drop</a> (10)</li>
+ <li
+ class="cat-item cat-item-817"><a href="https://hacks.mozilla.org/category/drumbeat/">Drumbeat</a> (2)</li>
+ <li
+ class="cat-item cat-item-77621"><a href="https://hacks.mozilla.org/category/evangelism-reps/">Evangelism Reps</a> (2)</li>
+ <li
+ class="cat-item cat-item-57"><a href="https://hacks.mozilla.org/category/event/">Event</a> (26)</li>
+ <li
+ class="cat-item cat-item-25569"><a href="https://hacks.mozilla.org/category/feature/">Feature</a> (46)</li>
+ <li
+ class="cat-item cat-item-7110"><a href="https://hacks.mozilla.org/category/featured/">Featured Article</a> (185)</li>
+ <li
+ class="cat-item cat-item-77870"><a href="https://hacks.mozilla.org/category/demo/featured-demo/">Featured Demo</a> (27)</li>
+ <li
+ class="cat-item cat-item-78138"><a href="https://hacks.mozilla.org/category/feedback-channels/">Feedback channels</a> (4)</li>
+ <li
+ class="cat-item cat-item-78354"><a href="https://hacks.mozilla.org/category/fileapi/">FileAPI</a> (17)</li>
+ <li
+ class="cat-item cat-item-500"><a href="https://hacks.mozilla.org/category/firebug/">Firebug</a> (16)</li>
+ <li
+ class="cat-item cat-item-30"><a href="https://hacks.mozilla.org/category/firefox/">Firefox</a> (223)</li>
+ <li
+ class="cat-item cat-item-36038"><a href="https://hacks.mozilla.org/category/firefox/firefox-aurora/">Firefox Aurora</a> (30)</li>
+ <li
+ class="cat-item cat-item-8802"><a href="https://hacks.mozilla.org/category/firefox/firefox-beta/">Firefox Beta</a> (3)</li>
+ <li
+ class="cat-item cat-item-78585"><a href="https://hacks.mozilla.org/category/firefox/firefox-development-highlights/">Firefox Development Highlights</a> (12)</li>
+ <li
+ class="cat-item cat-item-78857"><a href="https://hacks.mozilla.org/category/firefox/firefox-nightly/">Firefox Nightly</a> (10)</li>
+ <li
+ class="cat-item cat-item-24660"><a href="https://hacks.mozilla.org/category/firefox-os/">Firefox OS</a> (114)</li>
+ <li
+ class="cat-item cat-item-27876"><a href="https://hacks.mozilla.org/category/games-2/">Games</a> (40)</li>
+ <li
+ class="cat-item cat-item-79240"><a href="https://hacks.mozilla.org/category/geolocation/">Geolocation</a> (10)</li>
+ <li
+ class="cat-item cat-item-79514"><a href="https://hacks.mozilla.org/category/hackability/">hackability</a> (2)</li>
+ <li
+ class="cat-item cat-item-79853"><a href="https://hacks.mozilla.org/category/hackdays/">hackdays</a> (7)</li>
+ <li
+ class="cat-item cat-item-80032"><a href="https://hacks.mozilla.org/category/history-api/">History API</a> (1)</li>
+ <li
+ class="cat-item cat-item-254"><a href="https://hacks.mozilla.org/category/html5/">HTML5</a> (176)</li>
+ <li
+ class="cat-item cat-item-8633"><a href="https://hacks.mozilla.org/category/identity/">Identity</a> (8)</li>
+ <li
+ class="cat-item cat-item-16182"><a href="https://hacks.mozilla.org/category/images/">Images</a> (8)</li>
+ <li
+ class="cat-item cat-item-100532"><a href="https://hacks.mozilla.org/category/indexeddb/">IndexedDB</a> (16)</li>
+ <li
+ class="cat-item cat-item-453"><a href="https://hacks.mozilla.org/category/interviews/">Interviews</a> (4)</li>
+ <li
+ class="cat-item cat-item-4543"><a href="https://hacks.mozilla.org/category/jagermonkey/">JägerMonkey</a> (5)</li>
+ <li
+ class="cat-item cat-item-128"><a href="https://hacks.mozilla.org/category/javascript/">JavaScript</a> (141)</li>
+ <li
+ class="cat-item cat-item-697"><a href="https://hacks.mozilla.org/category/labs/">Labs</a> (3)</li>
+ <li
+ class="cat-item cat-item-4883"><a href="https://hacks.mozilla.org/category/mdn/learning/">Learning</a> (5)</li>
+ <li
+ class="cat-item cat-item-199"><a href="https://hacks.mozilla.org/category/localization/">Localization</a> (5)</li>
+ <li
+ class="cat-item cat-item-80317"><a href="https://hacks.mozilla.org/category/localstorage/">localStorage</a> (4)</li>
+ <li
+ class="cat-item cat-item-766"><a href="https://hacks.mozilla.org/category/mdn/">MDN</a> (82)</li>
+ <li
+ class="cat-item cat-item-80686"><a href="https://hacks.mozilla.org/category/css/media-queries/">Media Queries</a> (5)</li>
+ <li
+ class="cat-item cat-item-81062"><a href="https://hacks.mozilla.org/category/missionmozilla/">Mission:Mozilla</a> (9)</li>
+ <li
+ class="cat-item cat-item-124"><a href="https://hacks.mozilla.org/category/mobile/">Mobile</a> (44)</li>
+ <li
+ class="cat-item cat-item-5"><a href="https://hacks.mozilla.org/category/mozilla/">Mozilla</a> (32)</li>
+ <li
+ class="cat-item cat-item-81241"><a href="https://hacks.mozilla.org/category/mozilla-hacks-weekly/">Mozilla Hacks Weekly</a> (64)</li>
+ <li
+ class="cat-item cat-item-81399"><a href="https://hacks.mozilla.org/category/multi-touch/">Multi-touch</a> (7)</li>
+ <li
+ class="cat-item cat-item-58"><a href="https://hacks.mozilla.org/category/news/">News</a> (5)</li>
+ <li
+ class="cat-item cat-item-81514"><a href="https://hacks.mozilla.org/category/node-js/">Node.js</a> (21)</li>
+ <li
+ class="cat-item cat-item-20266"><a href="https://hacks.mozilla.org/category/offline/">Offline</a> (11)</li>
+ <li
+ class="cat-item cat-item-264728"><a href="https://hacks.mozilla.org/category/p2p-web/">P2P Web</a> (3)</li>
+ <li
+ class="cat-item cat-item-27786"><a href="https://hacks.mozilla.org/category/payments/">Payments</a> (7)</li>
+ <li
+ class="cat-item cat-item-81886"><a href="https://hacks.mozilla.org/category/people-of-games/">People of Games</a> (1)</li>
+ <li
+ class="cat-item cat-item-82131"><a href="https://hacks.mozilla.org/category/people-of-html5/">People of HTML5</a> (11)</li>
+ <li
+ class="cat-item cat-item-311"><a href="https://hacks.mozilla.org/category/performance/">Performance</a> (35)</li>
+ <li
+ class="cat-item cat-item-82359"><a href="https://hacks.mozilla.org/category/persona-2/">Persona</a> (3)</li>
+ <li
+ class="cat-item cat-item-82536"><a href="https://hacks.mozilla.org/category/presentation-2/">Presentation</a> (14)</li>
+ <li
+ class="cat-item cat-item-847"><a href="https://hacks.mozilla.org/category/privacy/">privacy</a> (2)</li>
+ <li
+ class="cat-item cat-item-60"><a href="https://hacks.mozilla.org/category/qa/">QA</a> (2)</li>
+ <li class="cat-item cat-item-538"><a href="https://hacks.mozilla.org/category/release/">Release</a> (4)</li>
+ <li
+ class="cat-item cat-item-907"><a href="https://hacks.mozilla.org/category/research/">Research</a> (5)</li>
+ <li
+ class="cat-item cat-item-3389"><a href="https://hacks.mozilla.org/category/screencast/">Screencast</a> (6)</li>
+ <li
+ class="cat-item cat-item-69"><a href="https://hacks.mozilla.org/category/security/">Security</a> (14)</li>
+ <li
+ class="cat-item cat-item-82787"><a href="https://hacks.mozilla.org/category/serviceworkers/">ServiceWorkers</a> (2)</li>
+ <li
+ class="cat-item cat-item-83024"><a href="https://hacks.mozilla.org/category/spdy/">SPDY</a> (2)</li>
+ <li
+ class="cat-item cat-item-83193"><a href="https://hacks.mozilla.org/category/sprints/">Sprints</a> (17)</li>
+ <li
+ class="cat-item cat-item-248"><a href="https://hacks.mozilla.org/category/standards/">Standards</a> (53)</li>
+ <li
+ class="cat-item cat-item-315"><a href="https://hacks.mozilla.org/category/survey/">Survey</a> (8)</li>
+ <li
+ class="cat-item cat-item-131"><a href="https://hacks.mozilla.org/category/svg/">SVG</a> (16)</li>
+ <li
+ class="cat-item cat-item-725"><a href="https://hacks.mozilla.org/category/test-day/">Test Day</a> (1)</li>
+ <li
+ class="cat-item cat-item-265"><a href="https://hacks.mozilla.org/category/testing/">Testing</a> (3)</li>
+ <li
+ class="cat-item cat-item-610"><a href="https://hacks.mozilla.org/category/tools/">Tools</a> (9)</li>
+ <li
+ class="cat-item cat-item-467"><a href="https://hacks.mozilla.org/category/tracemonkey/">TraceMonkey</a> (9)</li>
+ <li
+ class="cat-item cat-item-1"><a href="https://hacks.mozilla.org/category/uncategorized/">Uncategorized</a> (1)</li>
+ <li
+ class="cat-item cat-item-220"><a href="https://hacks.mozilla.org/category/video/">Video</a> (63)</li>
+ <li
+ class="cat-item cat-item-83360"><a href="https://hacks.mozilla.org/category/videoseries/">Videoseries</a> (11)</li>
+ <li
+ class="cat-item cat-item-83698"><a href="https://hacks.mozilla.org/category/web-components/">Web Components</a> (6)</li>
+ <li
+ class="cat-item cat-item-83947"><a href="https://hacks.mozilla.org/category/web-developer-toolbox/">Web Developer Toolbox</a> (5)</li>
+ <li
+ class="cat-item cat-item-84203"><a href="https://hacks.mozilla.org/category/web-developers/">Web Developers</a> (55)</li>
+ <li
+ class="cat-item cat-item-16188"><a href="https://hacks.mozilla.org/category/web-workers/">Web Workers</a> (4)</li>
+ <li
+ class="cat-item cat-item-84514"><a href="https://hacks.mozilla.org/category/webapi/">WebAPI</a> (25)</li>
+ <li
+ class="cat-item cat-item-19673"><a href="https://hacks.mozilla.org/category/webfwd/">WebFWD</a> (7)</li>
+ <li
+ class="cat-item cat-item-6946"><a href="https://hacks.mozilla.org/category/webgl/">WebGL</a> (39)</li>
+ <li
+ class="cat-item cat-item-84672"><a href="https://hacks.mozilla.org/category/webinars/">Webinars</a> (6)</li>
+ <li
+ class="cat-item cat-item-15881"><a href="https://hacks.mozilla.org/category/webrtc/">WebRTC</a> (33)</li>
+ <li
+ class="cat-item cat-item-84974"><a href="https://hacks.mozilla.org/category/websocket/">WebSocket</a> (9)</li>
+ <li
+ class="cat-item cat-item-85295"><a href="https://hacks.mozilla.org/category/wiki-wednesday/">Wiki Wednesday</a> (43)</li>
+ <li
+ class="cat-item cat-item-85568"><a href="https://hacks.mozilla.org/category/x-tag/">X-Tag</a> (2)</li>
+ <li
+ class="cat-item cat-item-85881"><a href="https://hacks.mozilla.org/category/xmlhttprequest/">XMLHttpRequest</a> (13)</li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /#content-sub -->
+ </div>
+ <!-- /#content -->
+ <footer id="site-info">
+ <nav id="nav-legal">
+ <ul>
+ <li><a href="https://www.mozilla.org/privacy/websites/" rel="external">Privacy Policy</a>
+ </li>
+ <li><a href="https://www.mozilla.org/about/legal.html" rel="external">Legal Notices</a>
+ </li>
+ <li><a href="https://www.mozilla.org/legal/fraud-report/" rel="external">Report Trademark Abuse</a>
+ </li>
+ </ul>
+ </nav>
+ <p id="copyright">Except where otherwise noted, content on this site is licensed under the
+ <br/><a href="https://creativecommons.org/licenses/by-sa/3.0/" rel="license external">Creative Commons Attribution Share-Alike License v3.0</a> or
+ any later version.</p>
+ <nav id="nav-footer">
+ <h5>hacks.mozilla.org:</h5>
+
+ <ul role="navigation">
+ <li><a href="https://hacks.mozilla.org">Home</a>
+ </li>
+ <li><a href="https://hacks.mozilla.org/articles/">Articles</a>
+ </li>
+ <li><a href="https://hacks.mozilla.org/demos/">Demos</a>
+ </li>
+ <li><a href="https://hacks.mozilla.org/about/">About</a>
+ </li>
+ </ul>
+ </nav>
+ </footer>
+ <script src="https://www.mozilla.org/tabzilla/media/js/tabzilla.js"></script>
+ <script>
+ // <![CDATA[
+ jQuery(document).ready(function(){
+ jQuery(document.body).addClass("js");
+ });
+ // ]]>
+ </script>
+ <script type="text/javascript" src="https://blog.mozilla.org/hacks/wp-content/plugins/akismet/_inc/form.js?ver=3.0.4"></script>
+ <script type="text/javascript" src="https://hacks.mozilla.org/wp-includes/js/comment-reply.min.js?ver=4.1"></script>
+ </div>
+ </body>
+
+</html>
+<!-- Dynamic page generated in 0.592 seconds. -->
+<!-- Cached page generated by WP-Super-Cache on 2015-03-13 03:27:44 -->
+<!-- super cache -->
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/003-metadata-preferred/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/003-metadata-preferred/expected-images.json
new file mode 100644
index 000000000..0637a088a
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/003-metadata-preferred/expected-images.json
@@ -0,0 +1 @@
+[] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/003-metadata-preferred/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/003-metadata-preferred/expected-metadata.json
new file mode 100644
index 000000000..7c31c2296
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/003-metadata-preferred/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "Dublin Core property author",
+ "Direction": null,
+ "Excerpt": "Dublin Core property description",
+ "Image": null,
+ "Title": "Dublin Core property title",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/003-metadata-preferred/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/003-metadata-preferred/expected.html
new file mode 100644
index 000000000..6b03dd384
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/003-metadata-preferred/expected.html
@@ -0,0 +1,18 @@
+<article>
+ <p>
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ <p>
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ </article> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/003-metadata-preferred/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/003-metadata-preferred/source.html
new file mode 100644
index 000000000..c7275b3b2
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/003-metadata-preferred/source.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8"/>
+ <title>Title Element</title>
+ <meta name="title" content="Meta name title"/>
+ <meta name="og:title" content="Open Graph name title"/>
+ <meta name="twitter:title" content="Twitter name title"/>
+ <meta name="DC.title" content="Dublin Core name title"/>
+ <meta property="dc:title" content="Dublin Core property title"/>
+ <meta property="twitter:title" content="Twitter property title"/>
+ <meta property="og:title" content="Open Graph property title"/>
+ <meta name="author" content="Meta name author"/>
+ <meta name="DC.creator" content="Dublin Core name author"/>
+ <meta property="dc:creator" content="Dublin Core property author"/>
+ <meta name="description" content="Meta name description"/>
+ <meta name="og:description" content="Open Graph name description"/>
+ <meta name="twitter:description" content="Twitter name description"/>
+ <meta name="DC.description" content="Dublin Core name description"/>
+ <meta property="dc:description" content="Dublin Core property description"/>
+ <meta property="twitter:description" content="Twitter property description"/>
+ <meta property="og:description" content="Open Graph property description"/>
+ </head>
+ <body>
+ <article>
+ <h1>Test document title</h1>
+ <p>
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ <p>
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ </article>
+ </body>
+</html> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/004-metadata-space-separated-properties/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/004-metadata-space-separated-properties/expected-images.json
new file mode 100644
index 000000000..3a4190bfc
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/004-metadata-space-separated-properties/expected-images.json
@@ -0,0 +1,3 @@
+[
+ "http:\/\/fakehost.com\/image.jpg"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/004-metadata-space-separated-properties/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/004-metadata-space-separated-properties/expected-metadata.json
new file mode 100644
index 000000000..a30d0971b
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/004-metadata-space-separated-properties/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "Creator Name",
+ "Direction": null,
+ "Excerpt": "Preferred description",
+ "Image": "http:\/\/fakehost.com\/image.jpg",
+ "Title": "Preferred title",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/004-metadata-space-separated-properties/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/004-metadata-space-separated-properties/expected.html
new file mode 100644
index 000000000..6b03dd384
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/004-metadata-space-separated-properties/expected.html
@@ -0,0 +1,18 @@
+<article>
+ <p>
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ <p>
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ </article> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/004-metadata-space-separated-properties/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/004-metadata-space-separated-properties/source.html
new file mode 100644
index 000000000..dd9dc87b6
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/004-metadata-space-separated-properties/source.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8"/>
+ <title>Title Element</title>
+ <meta property="x:title dc:title" content="Preferred title"/>
+ <meta property="og:title twitter:title" content="A title"/>
+ <meta property="dc:creator twitter:site_name" content="Creator Name"/>
+ <meta name="author" content="FAIL"/>
+ <meta property="og:description x:description twitter:description" content="A description"/>
+ <meta property="dc:description og:description" content="Preferred description"/>
+ <meta property="twitter:image og:image" content="http://fakehost.com/image.jpg"/>
+ <meta name="description" content="FAIL"/>
+ </head>
+ <body>
+ <article>
+ <h1>Test document title</h1>
+ <p>
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ <p>
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ </article>
+ </body>
+</html> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/aclu/config.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/aclu/config.json
new file mode 100644
index 000000000..0ac6816ed
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/aclu/config.json
@@ -0,0 +1,3 @@
+{
+ "ArticleByLine": true
+} \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/aclu/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/aclu/expected-images.json
new file mode 100644
index 000000000..5a24660bb
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/aclu/expected-images.json
@@ -0,0 +1,3 @@
+[
+ "https:\/\/www.aclu.org\/sites\/default\/files\/styles\/metatag_og_image_1200x630\/public\/field_share_image\/web18-facebook-socialshare-1200x628-v02.png?itok=p77cQjOm"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/aclu/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/aclu/expected-metadata.json
new file mode 100644
index 000000000..9b2070388
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/aclu/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "By Daniel Kahn Gillmor, Senior Staff Technologist, ACLU Speech, Privacy, and Technology Project",
+ "Direction": "ltr",
+ "Excerpt": "I don't use Facebook. I'm not technophobic — I'm a geek. I've been using email since the early 1990s, I have accounts on hundreds of services around the net, and I do software development and internet protocol design both for work and for fun. I believe that a globe-spanning communications network like the internet can be a positive social force, and I publish much of my own work on the open web.",
+ "Image": "https:\/\/www.aclu.org\/sites\/default\/files\/styles\/metatag_og_image_1200x630\/public\/field_share_image\/web18-facebook-socialshare-1200x628-v02.png?itok=p77cQjOm",
+ "Title": "Facebook Is Tracking Me Even Though I’m Not on Facebook",
+ "SiteName": "American Civil Liberties Union"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/aclu/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/aclu/expected.html
new file mode 100644
index 000000000..15801438e
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/aclu/expected.html
@@ -0,0 +1,124 @@
+<div>
+ <p>
+ I don't use Facebook. I'm not technophobic — I'm a geek. I've been using email since the early 1990s, I have accounts on hundreds of services around the net, and I do software development and internet protocol design both for work and for fun. I believe that a globe-spanning communications network like the internet can be a positive social force, and I publish much of my own work on the open web.
+ </p>
+ <p>
+ But Facebook and other massive web companies represent a strong push toward unaccountable centralized social control, which I think makes our society more unequal and more unjust. The Cambridge Analytica scandal is one instance of this long-running problem with what I call the "surveillance economy." I don't want to submit to these power structures, and I don’t want my presence on such platforms to serve as bait that lures other people into the digital panopticon.
+ </p>
+ <p>
+ But while I've never "opted in" to Facebook or any of the other big social networks, Facebook still has a detailed profile that can be used to target me. I've never consented to having Facebook collect my data, which can be used to draw very detailed inferences about my life, my habits, and my relationships. As we aim to take Facebook to task for its breach of user trust, we need to think about what its capabilities imply for society overall. After all, if you do #deleteFacebook, you'll find yourself in my shoes: non-consenting, but still subject to Facebook’s globe-spanning surveillance and targeting network.
+ </p>
+ <p>
+ There are at least two major categories of information available to Facebook about non-participants like me: information from other Facebook users, and information from sites on the open web.
+ </p>
+ <h3>
+ <strong>Information from other Facebook users</strong>
+ </h3>
+ <p>
+ When you sign up for Facebook, it encourages you to upload your list of contacts so that the site can "find your friends." Facebook uses this contact information to learn about people, even if those people don't agree to participate. It also links people together based on who they know, even if the shared contact hasn't agreed to this use.
+ </p>
+ <p>
+ For example, I received an email from Facebook that lists the people who have all invited me to join Facebook: my aunt, an old co-worker, a friend from elementary school, etc. This email includes names and email addresses — including my own name — and at least one <a href="https://en.wikipedia.org/wiki/Web_bug">web bug</a> designed to identify me to Facebook’s web servers when I open the email. Facebook records this group of people as my contacts, even though I've never agreed to this kind of data collection.
+ </p>
+ <p>
+ Similarly, I'm sure that I'm in some photographs that someone has uploaded to Facebook — and I'm probably tagged in some of them. I've never agreed to this, but Facebook could still be keeping track.
+ </p>
+ <p>
+ So even if you decide you need to join Facebook, remember that you might be giving the company information about someone else who didn't agree to be part of its surveillance platform.
+ </p>
+ <h3>
+ <strong>Information from sites on the open Web</strong>
+ </h3>
+ <p>
+ Nearly every website that you visit that has a "Like" button is actually encouraging your browser to tell Facebook about your browsing habits. Even if you don't click on the "Like" button, displaying it requires your browser to send a request to Facebook's servers for the "Like" button itself. That request includes <a href="https://en.wikipedia.org/wiki/HTTP_referer">information</a> mentioning the name of the page you are visiting and any Facebook-specific <a href="https://en.wikipedia.org/wiki/HTTP_cookie">cookies</a> your browser might have collected. (See <a href="https://www.facebook.com/help/186325668085084">Facebook's own description of this process</a>.) This is called a "third-party request."
+ </p>
+ <p>
+ This makes it possible for Facebook to create a detailed picture of your browsing history — even if you've never even visited Facebook directly, let alone signed up for a Facebook account.
+ </p>
+ <p>
+ Think about most of the web pages you've visited — how many of them <em>don't</em> have a "Like" button? If you administer a website and you include a "Like" button on every page, you're helping Facebook to build profiles of your visitors, even those who have opted out of the social network. Facebook’s <a href="https://developers.facebook.com/docs/plugins/">“Share” buttons</a> on other sites — along with <a href="https://www.facebook.com/business/learn/facebook-ads-pixel">other tools</a> — work a bit differently from the “Like” button, but do effectively the same thing.
+ </p>
+ <p>
+ The profiles that Facebook builds on non-users don't necessarily include so-called "personally identifiable information" (PII) like names or email addresses. But they do include fairly unique patterns. Using <a href="https://dev.chromium.org/for-testers/providing-network-details">Chromium's NetLog dumping</a>, I performed a simple five-minute browsing test last week that included visits to various sites — but not Facebook. In that test, the PII-free data that was sent to Facebook included information about which news articles I was reading, my dietary preferences, and my hobbies.
+ </p>
+ <p>
+ Given the precision of this kind of mapping and targeting, "PII" isn’t necessary to reveal my identity. How many vegans examine specifications for computer hardware from the ACLU's offices while reading about Cambridge Analytica? Anyway, if Facebook combined that information with the "web bug" from the email mentioned above — which <em>is</em> clearly linked to my name and e-mail address — no guesswork would be required.
+ </p>
+ <p>
+ I'd be shocked if Facebook were not connecting those dots given the goals <a href="https://www.facebook.com/about/privacy/cookies">they claim for data collection</a>:
+ </p>
+ <blockquote>
+ <p>
+ We use the information we have to improve our advertising and measurement systems so we can show you relevant ads on and off our Services and measure the effectiveness and reach of ads and services.
+ </p>
+ </blockquote>
+ <p>
+ This is, in essence, exactly what Cambridge Analytica did.
+ </p>
+ <h3>
+ <strong>Consent</strong>
+ </h3>
+ <p>
+ Facebook and other tech companies often deflect accusations against excessive data collection by arguing "consent" — that they harvest and use data with the consent of the users involved.
+ </p>
+ <p>
+ But even if we accept that clicking through a "Terms of Service" that <a href="https://tosdr.org/">no one reads</a> can actually constitute true consent, even if we ignore the fact that these terms are overwhelmingly one-sided and non-negotiable, and even if we accept that it's meaningful for people to give consent when sharing data about other people who may have also opted in — what is the recourse for someone who has not opted into these systems at all?
+ </p>
+ <p>
+ Are those of us who have explicitly avoided agreeing to the Facebook terms of service simply fair game for an industry-wide surveillance and targeting network?
+ </p>
+ <h3>
+ <strong>Privilege</strong>
+ </h3>
+ <p>
+ I don’t mean to critique people who have created a Facebook profile or suggest they deserve whatever they get.
+ </p>
+ <p>
+ My ability to avoid Facebook comes from privilege — I have existing social contacts with whom I know how to stay in touch without using Facebook's network. My job does not require that I use Facebook. I can afford the time and expense to communicate with my electoral representatives and political allies via other channels.
+ </p>
+ <p>
+ Many people do not have these privileges and are compelled to "opt in" on Facebook's non-negotiable terms.
+ </p>
+ <p>
+ Many journalists, organizers, schools, politicians, and others who have good reasons to oppose Facebook's centralized social control feel compelled by Facebook's reach and scale to participate in their practices, even those we know to be harmful. That includes the ACLU.
+ </p>
+ <p>
+ Privacy should not be a luxury good, and while I'm happy to encourage people to opt out of these subtle and socially fraught arrangements, I do not argue that anyone who has signed up has somehow relinquished concerns about their privacy. We need to evaluate privacy concerns in their full social contexts. These are not problems that can be resolved on an individual level, because of the interpersonal nature of much of this data and the complexities of the tradeoffs involved.
+ </p>
+ <h3>
+ <strong>Technical countermeasures</strong>
+ </h3>
+ <p>
+ While they may not solve the problem, there are some technical steps people can take to limit the scope of these surveillance practices. For example, some web browsers do not send "third-party cookies" by default, or <a href="https://wiki.mozilla.org/Thirdparty">they scope cookies</a> so that centralized surveillance doesn't get a single view of one user. The most privacy-preserving modern browser is <a href="https://www.torproject.org/">the Tor Browser</a>, which everyone should have installed and available, even if it's not the browser they choose to use every day. It limits the surveillance ability of systems that you have not signed up for to track you as you move around the web.
+ </p>
+ <p>
+ You can also modify some browsers — for example, with plug-ins for <a href="https://requestpolicycontinued.github.io/">Firefox</a> and <a href="https://chrome.google.com/webstore/detail/umatrix/ogfcmafjalglgifnmanfmnieipoejdcf">Chrome</a> — so that they <a href="https://addons.mozilla.org/en-US/firefox/addon/umatrix/">do not send third-party</a> <a href="https://requestpolicycontinued.github.io/">requests at all</a>. Firefox is also exploring even more <a href="https://addons.mozilla.org/en-US/firefox/addon/multi-account-containers/">privacy-preserving techniques</a><a href="https://addons.mozilla.org/en-US/firefox/addon/multi-account-containers/">.</a>
+ </p>
+ <p>
+ It can’t be denied, though, that these tools are harder to use than the web browsers most people are accustomed to, and they create barriers to some online activities. (For example, logging in to <a href="https://offcampushousing.uconn.edu/login">some sites</a> and accessing some <a href="https://filestore.community.support.microsoft.com/api/images/0253d8fb-b050-401a-834d-9d80a99c0b12">web applications</a> is impossible without third-party cookies.)
+ </p>
+ <p>
+ Some website operators take their visitors' privacy more seriously than others, by reducing the amount of third-party requests. For example, it's possible to display "share on Facebook" or "Like" buttons without sending user requests to Facebook in the first place. The ACLU's own website does this because we believe that the right to read with privacy is a fundamental protection for civic discourse.
+ </p>
+ <p>
+ If you are responsible for running a website, try browsing it with a third-party-blocking extension turned on. Think about how much information you're requiring your users to send to third parties as a condition for using your site. If you care about being a good steward of your visitors' data, you can re-design your website to reduce this kind of leakage.
+ </p>
+ <h3>
+ <strong>Opting out?</strong>
+ </h3>
+ <p>
+ Some advertisers claim that you can "opt out" of their targeted advertising, and even offer <a href="http://optout.aboutads.info/">a centralized place meant to help you do so</a>. However, my experience with these tools isn't a positive one. They don't appear to work all of the time. (In a recent experiment I conducted, two advertisers’ opt-out mechanisms failed to take effect.) And while advertisers claim to allow the user to opt out of "interest-based ads," it's not clear that the opt-outs govern data collection itself, rather than just the use of the collected data for displaying ads. Moreover, opting out on their terms requires the use of third-party cookies, thereby enabling another mechanism that other advertisers can then exploit.
+ </p>
+ <p>
+ It's also not clear how they function over time: How frequently do I need to take these steps? Do they expire? How often should I check back to make sure I’m still opted out? I'd much prefer an approach requiring me to opt <em>in</em> to surveillance and targeting.
+ </p>
+ <h3>
+ <strong>Fix the surveillance economy, not just Facebook</strong>
+ </h3>
+ <p>
+ These are just a few of the mechanisms that enable online tracking. Facebook is just one culprit in this online "surveillance economy," albeit a massive one — the company owns <a href="https://www.instagram.com/">Instagram</a>, <a href="https://atlassolutions.com/">Atlas</a>, <a href="https://www.whatsapp.com/">WhatsApp</a>, and dozens of other internet and technology companies and services. But it’s not the only player in this space. Google’s business model also relies on this kind of surveillance, and there are dozens of smaller players as well.
+ </p>
+ <p>
+ As we work to address the fallout from the current storm around Facebook and Cambridge Analytica, we can't afford to lose sight of these larger mechanisms at play. Cambridge Analytica's failures and mistakes are inherent to Facebook's business model. We need to seriously challenge the social structures that encourage people to opt in to this kind of surveillance. At the same time, we also need to protect those of us who manage to opt out.
+ </p>
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/aclu/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/aclu/source.html
new file mode 100644
index 000000000..d8e99bbb1
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/aclu/source.html
@@ -0,0 +1,1264 @@
+<!DOCTYPE html>
+<!--[if IEMobile 7]><html class="iem7" lang="en" dir="ltr"><![endif]--><!--[if lte IE 6]><html class="lt-ie9 lt-ie8 lt-ie7" lang="en" dir="ltr"><![endif]--><!--[if (IE 7)&(!IEMobile)]><html class="lt-ie9 lt-ie8" lang="en" dir="ltr"><![endif]--><!--[if IE 8]><html class="lt-ie9" lang="en" dir="ltr"><![endif]--><!--[if IE 9]><html class="lt-ie10" lang="en" dir="ltr"><![endif]--><!--[if (gte IE 10)|(gt IEMobile 7)]><!-->
+<html lang="en" dir="ltr" prefix="fb: http://ogp.me/ns/fb# og: http://ogp.me/ns# article: http://ogp.me/ns/article# book: http://ogp.me/ns/book# profile: http://ogp.me/ns/profile# video: http://ogp.me/ns/video# product: http://ogp.me/ns/product#" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <!--<![endif]-->
+ <head>
+ <!--[if IE]><![endif]-->
+ <meta charset="utf-8" />
+ <link rel="shortcut icon" href="https://www.aclu.org/misc/favicon.ico" />
+ <meta name="description" content="I don't use Facebook. I'm not technophobic — I'm a geek. I've been using email since the early 1990s, I have accounts on hundreds of services around the net, and I do software development and internet protocol design both for work and for fun. I believe that a globe-spanning communications network like the internet can be a positive social force, and I publish much of my own work on the open web." />
+ <link rel="canonical" href="https://www.aclu.org/blog/privacy-technology/internet-privacy/facebook-tracking-me-even-though-im-not-facebook" />
+ <meta name="generator" content="Drupal 7 (http://drupal.org)" />
+ <link rel="shortlink" href="https://www.aclu.org/node/67865" />
+ <meta property="fb:pages" content="18982436812" />
+ <meta property="og:site_name" content="American Civil Liberties Union" />
+ <meta property="og:type" content="article" />
+ <meta property="og:title" content="Facebook Is Tracking Me Even Though I’m Not on Facebook" />
+ <meta property="og:url" content="https://www.aclu.org/blog/privacy-technology/internet-privacy/facebook-tracking-me-even-though-im-not-facebook" />
+ <meta property="og:image" content="https://www.aclu.org/sites/default/files/styles/metatag_og_image_1200x630/public/field_share_image/web18-facebook-socialshare-1200x628-v02.png?itok=p77cQjOm" />
+ <meta name="twitter:card" content="summary_large_image" />
+ <meta name="twitter:creator" content="@ACLU" />
+ <meta name="twitter:title" content="Facebook Is Tracking Me Even Though I’m Not on Facebook" />
+ <meta name="twitter:description" content="I don't use Facebook. I'm not technophobic — I'm a geek. I've been using email since the early 1990s, I have accounts on hundreds of services around the net, and I do software development and internet protocol design both for work and for fun. I believe that a globe-spanning communications network like the internet can be a positive social force, and I publish much of my own work on the open web.But Facebook and other massive web companies represent a strong push toward unaccountable centralized social control, which I think makes our society more unequal and more unjust. The Cambridge Analytica scandal is one instance of this long-running problem with what I call the &quot;surveillance economy.&quot; I don't want to submit to these power structures, and I don’t want my presence on such platforms to serve as bait that lures other people into the digital panopticon.But while I've never &quot;opted in&quot; to Facebook or any of the other big social networks, Facebook still has a detailed profile that can be used to target me. I've never consented to having Facebook collect my data, which can be used to draw very detailed inferences about my life, my habits, and my relationships. As we aim to take Facebook to task for its breach of user trust, we need to think about what its capabilities imply for society overall. After all, if you do #deleteFacebook, you'll find yourself in my shoes: non-consenting, but still subject to Facebook’s globe-spanning surveillance and targeting network.There are at least two major categories of information available to Facebook about non-participants like me: information from other Facebook users, and information from sites on the open web.Information from other Facebook usersWhen you sign up for Facebook, it encourages you to upload your list of contacts so that the site can &quot;find your friends.&quot; Facebook uses this contact information to learn about people, even if those people don't agree to participate. It also links people together based on who they know, even if the shared contact hasn't agreed to this use.For example, I received an email from Facebook that lists the people who have all invited me to join Facebook: my aunt, an old co-worker, a friend from elementary school, etc. This email includes names and email addresses — including my own name — and at least one web bug designed to identify me to Facebook’s web servers when I open the email. Facebook records this group of people as my contacts, even though I've never agreed to this kind of data collection.Similarly, I'm sure that I'm in some photographs that someone has uploaded to Facebook — and I'm probably tagged in some of them. I've never agreed to this, but Facebook could still be keeping track.So even if you decide you need to join Facebook, remember that you might be giving the company information about someone else who didn't agree to be part of its surveillance platform.Information from sites on the open WebNearly every website that you visit that has a &quot;Like&quot; button is actually encouraging your browser to tell Facebook about your browsing habits. Even if you don't click on the &quot;Like&quot; button, displaying it requires your browser to send a request to Facebook's servers for the &quot;Like&quot; button itself. That request includes information mentioning the name of the page you are visiting and any Facebook-specific cookies your browser might have collected. (See Facebook's own description of this process.) This is called a &quot;third-party request.&quot;This makes it possible for Facebook to create a detailed picture of your browsing history — even if you've never even visited Facebook directly, let alone signed up for a Facebook account.Think about most of the web pages you've visited — how many of them don't have a &quot;Like&quot; button? If you administer a website and you include a &quot;Like&quot; button on every page, you're helping Facebook to build profiles of your visitors, even those who have opted out of the social network. Facebook’s “Share” buttons on other sites — along with other tools — work a bit differently from the “Like” button, but do effectively the same thing.The profiles that Facebook builds on non-users don't necessarily include so-called &quot;personally identifiable information&quot; (PII) like names or email addresses. But they do include fairly unique patterns. Using Chromium's NetLog dumping, I performed a simple five-minute browsing test last week that included visits to various sites — but not Facebook. In that test, the PII-free data that was sent to Facebook included information about which news articles I was reading, my dietary preferences, and my hobbies.Given the precision of this kind of mapping and targeting, &quot;PII&quot; isn’t necessary to reveal my identity. How many vegans examine specifications for computer hardware from the ACLU's offices while reading about Cambridge Analytica? Anyway, if Facebook combined that information with the &quot;web bug&quot; from the email mentioned above — which is clearly linked to my name and e-mail address — no guesswork would be required.I'd be shocked if Facebook were not connecting those dots given the goals they claim for data collection:We use the information we have to improve our advertising and measurement systems so we can show you relevant ads on and off our Services and measure the effectiveness and reach of ads and services.This is, in essence, exactly what Cambridge Analytica did.ConsentFacebook and other tech companies often deflect accusations against excessive data collection by arguing &quot;consent&quot; — that they harvest and use data with the consent of the users involved.But even if we accept that clicking through a &quot;Terms of Service&quot; that no one reads can actually constitute true consent, even if we ignore the fact that these terms are overwhelmingly one-sided and non-negotiable, and even if we accept that it's meaningful for people to give consent when sharing data about other people who may have also opted in — what is the recourse for someone who has not opted into these systems at all?Are those of us who have explicitly avoided agreeing to the Facebook terms of service simply fair game for an industry-wide surveillance and targeting network?PrivilegeI don’t mean to critique people who have created a Facebook profile or suggest they deserve whatever they get.My ability to avoid Facebook comes from privilege — I have existing social contacts with whom I know how to stay in touch without using Facebook's network. My job does not require that I use Facebook. I can afford the time and expense to communicate with my electoral representatives and political allies via other channels.Many people do not have these privileges and are compelled to &quot;opt in&quot; on Facebook's non-negotiable terms.Many journalists, organizers, schools, politicians, and others who have good reasons to oppose Facebook's centralized social control feel compelled by Facebook's reach and scale to participate in their practices, even those we know to be harmful. That includes the ACLU.Privacy should not be a luxury good, and while I'm happy to encourage people to opt out of these subtle and socially fraught arrangements, I do not argue that anyone who has signed up has somehow relinquished concerns about their privacy. We need to evaluate privacy concerns in their full social contexts. These are not problems that can be resolved on an individual level, because of the interpersonal nature of much of this data and the complexities of the tradeoffs involved.Technical countermeasuresWhile they may not solve the problem, there are some technical steps people can take to limit the scope of these surveillance practices. For example, some web browsers do not send &quot;third-party cookies&quot; by default, or they scope cookies so that centralized surveillance doesn't get a single view of one user. The most privacy-preserving modern browser is the Tor Browser, which everyone should have installed and available, even if it's not the browser they choose to use every day. It limits the surveillance ability of systems that you have not signed up for to track you as you move around the web.You can also modify some browsers — for example, with plug-ins for Firefox and Chrome — so that they do not send third-party requests at all. Firefox is also exploring even more privacy-preserving techniques. It can’t be denied, though, that these tools are harder to use than the web browsers most people are accustomed to, and they create barriers to some online activities. (For example, logging in to some sites and accessing some web applications is impossible without third-party cookies.)Some website operators take their visitors' privacy more seriously than others, by reducing the amount of third-party requests. For example, it's possible to display &quot;share on Facebook&quot; or &quot;Like&quot; buttons without sending user requests to Facebook in the first place. The ACLU's own website does this because we believe that the right to read with privacy is a fundamental protection for civic discourse.If you are responsible for running a website, try browsing it with a third-party-blocking extension turned on. Think about how much information you're requiring your users to send to third parties as a condition for using your site. If you care about being a good steward of your visitors' data, you can re-design your website to reduce this kind of leakage.Opting out?Some advertisers claim that you can &quot;opt out&quot; of their targeted advertising, and even offer a centralized place meant to help you do so. However, my experience with these tools isn't a positive one. They don't appear to work all of the time. (In a recent experiment I conducted, two advertisers’ opt-out mechanisms failed to take effect.) And while advertisers claim to allow the user to opt out of &quot;interest-based ads,&quot; it's not clear that the opt-outs govern data collection itself, rather than just the use of the collected data for displaying ads. Moreover, opting out on their terms requires the use of third-party cookies, thereby enabling another mechanism that other advertisers can then exploit.It's also not clear how they function over time: How frequently do I need to take these steps? Do they expire? How often should I check back to make sure I’m still opted out? I'd much prefer an approach requiring me to opt in to surveillance and targeting.Fix the surveillance economy, not just FacebookThese are just a few of the mechanisms that enable online tracking. Facebook is just one culprit in this online &quot;surveillance economy,&quot; albeit a massive one — the company owns Instagram, Atlas, WhatsApp, and dozens of other internet and technology companies and services. But it’s not the only player in this space. Google’s business model also relies on this kind of surveillance, and there are dozens of smaller players as well.As we work to address the fallout from the current storm around Facebook and Cambridge Analytica, we can't afford to lose sight of these larger mechanisms at play. Cambridge Analytica's failures and mistakes are inherent to Facebook's business model. We need to seriously challenge the social structures that encourage people to opt in to this kind of surveillance. At the same time, we also need to protect those of us who manage to opt out." />
+ <meta name="twitter:image" content="https://www.aclu.org/sites/default/files/field_image/web18-facebook-1160x768.jpg" />
+ <link rel="shortcut icon" href="/favicon.ico?v=1" />
+ <link rel="apple-touch-icon" sizes="180x180" href="/sites/all/themes/custom/aclu/favicons/apple-touch-icon.png?v=1" />
+ <link rel="icon" type="image/png" sizes="32x32" href="/sites/all/themes/custom/aclu/favicons/favicon-32x32.png?v=1" />
+ <link rel="icon" type="image/png" sizes="16x16" href="/sites/all/themes/custom/aclu/favicons/favicon-16x16.png?v=1" />
+ <link rel="manifest" href="/sites/all/themes/custom/aclu/favicons/manifest.json?v=1" />
+ <link rel="mask-icon" href="/sites/all/themes/custom/aclu/favicons/safari-pinned-tab.svg?v=1" color="#ef404d" />
+ <meta name="msapplication-config" content="/sites/all/themes/custom/aclu/favicons/browserconfig.xml?v=1" />
+ <meta name="theme-color" content="#ffffff" />
+ <title>
+ Facebook Is Tracking Me Even Though I’m Not on Facebook | American Civil Liberties Union
+ </title>
+ <meta name="MobileOptimized" content="width" />
+ <meta name="HandheldFriendly" content="true" />
+ <meta name="viewport" content="width=device-width" />
+ <meta http-equiv="cleartype" content="on" />
+ <link rel="stylesheet" href="https://www.aclu.org/sites/default/files/advagg_css/css__9cWqptSUNYq5YedfIwh33VxtugFVWjDdEsblT8GhLKI__quUjyhSfbEukHj8a0hYvzm9VTmPALmSZvA0xfM_Oxzo__VITBFqYjCWZ55Wpxq9xcXRqOD9xxPlR-vPRDis8bQN4.css" media="all" />
+ <style>
+ <![CDATA[
+ .pane-aclu-blog-news-signup div.pane-title{line-height:1.77778rem;margin:0 0 .66667rem;color:#423a38;font-family:gtam,Arial,Helvetica,Nimbus Sans L,sans-serif;font-weight:800}@media (min-width:48em){.pane-aclu-blog-news-signup div.pane-title{font-size:1.22222rem;line-height:1.77778rem}}h3{line-height:1.55556rem;margin:0 0 .66667rem;font-family:gtam,Arial,Helvetica,Nimbus Sans L,sans-serif}.more,h3{font-size:1rem;color:#423a38;font-weight:800}.more{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNS4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iMjRweCIgaGVpZ2h0PSIyNHB4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGZpbGw9IiMwMDVBQUEiIGQ9Ik0yNCwyMmMwLDEuMS0wLjksMi0yLDJIMmMtMS4xLDAtMi0wLjktMi0yVjJjMC0xLjEsMC45LTIsMi0yaDIwYzEuMSwwLDIsMC45LDIsMlYyMnoiLz4NCjwvZz4NCjxnIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgICAgIj4NCgk8cGF0aCBmaWxsPSIjRkZGRkZGIiBkPSJNMTMuMzE2LDE5LjM0MWgtMS42OTJsNi41NzItNi41NTRIMy45OXYtMS4yNjFoMTQuMjA2bC02LjU3Mi02LjU1NGgxLjY5Mmw3LjE4NSw3LjE4NEwxMy4zMTYsMTkuMzQxeiIvPg0KPC9nPg0KPC9zdmc+DQo=);padding-top:.05556rem;padding-right:2rem;padding-bottom:.05556rem;text-transform:uppercase;text-decoration:none;vertical-align:middle;cursor:pointer;font-family:gtamcond,Arial,Helvetica,Nimbus Sans L,sans-serif;line-height:1.33333rem;background-position:100% 0;background-repeat:no-repeat}.more:link{color:#423a38}.item-list ul{padding-left:0}.item-list ul li{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNS4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAgLS0+DQo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiIFsNCgk8IUVOVElUWSBuc19mbG93cyAiaHR0cDovL25zLmFkb2JlLmNvbS9GbG93cy8xLjAvIj4NCl0+DQo8c3ZnIHZlcnNpb249IjEuMSINCgkgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6YT0iaHR0cDovL25zLmFkb2JlLmNvbS9BZG9iZVNWR1ZpZXdlckV4dGVuc2lvbnMvMy4wLyINCgkgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIxOHB4IiBoZWlnaHQ9IjE1cHgiIHZpZXdCb3g9Ii0xLjYyNSAtMC40ODkgMTggMTUiDQoJIG92ZXJmbG93PSJ2aXNpYmxlIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IC0xLjYyNSAtMC40ODkgMTggMTUiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPGRlZnM+DQo8L2RlZnM+DQo8cGF0aCBmaWxsPSIjOEREQkZGIiBkPSJNMTAuMDEzLDEzLjU3Nkg2LjMxOWw1LjQ3Ny01LjRIMFY1LjQwMWgxMS43OTZMNi4zMTksMGgzLjY5M0wxNi44LDYuNzg5TDEwLjAxMywxMy41NzZ6Ii8+DQo8L3N2Zz4NCg==);color:#423a38;list-style:none;padding-left:1.83333rem;background-position:0 .44444rem;background-repeat:no-repeat}.date,.item-list ul li{margin-bottom:1.11111rem}.date{font-family:gtam,Arial,Helvetica,Nimbus Sans L,sans-serif;font-weight:400;font-size:1rem;text-transform:uppercase}.pane-aclu-blog-news-signup form input{display:inline-block;vertical-align:middle}.pane-aclu-blog-news-signup form input[type=text]{margin-right:.55556rem;width:11.55556rem}.pane-aclu-blog-news-signup form input[type=submit]{background-color:transparent;padding:0;text-indent:-119988px;overflow:hidden;text-align:left;text-transform:capitalize;background-image:none,url(../images/arrows/more-arrow.svg?1512413232);display:inline-block;vertical-align:middle;background-size:28px;width:28px;height:28px;background-repeat:no-repeat}.pane-aclu-blog-news-signup{box-shadow:inset 0 0 0 1px #cfcfcf;padding:1.11111rem .88889rem;margin:0}.pane-aclu-blog-news-signup div.pane-title{margin-bottom:1.11111rem}.pane-aclu-blog-news-signup .form-item{float:left;margin-bottom:.33333rem;margin-top:0}.element-focusable,.element-invisible{height:1px;width:1px;overflow:hidden;clip:rect(1px 1px 1px 1px);position:absolute!important}@media (min-width:0){.small-viewport-hide{display:none}}@media (min-width:60em){.small-viewport-hide{display:block}}.scrollbar-swiper .mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{display:none}body{min-width:320px}body:after{display:none;content:small}@media (max-width:59.9375em) and (min-width:48em){body:after{content:medium}}@media (max-width:74.9375em) and (min-width:60em){body:after{content:large}}@media (min-width:75em){body:after{content:wide}}#page{margin-left:auto;margin-right:auto}#header>.inner{clear:both}@media (max-width:47.9375em) and (min-width:0){#header>.inner{max-width:90%;margin-left:auto;margin-right:auto}#header>.inner:after{content:" ";display:block;clear:both}}@media (max-width:59.9375em) and (min-width:48em){#header>.inner{width:748px;margin-left:auto;margin-right:auto}#header>.inner:after{content:" ";display:block;clear:both}}@media (max-width:74.9375em) and (min-width:60em){#header>.inner{width:880px;margin-left:auto;margin-right:auto}#header>.inner:after{content:" ";display:block;clear:both}}@media (min-width:75em){#header>.inner{width:1180px;margin-left:auto;margin-right:auto}#header>.inner:after{content:" ";display:block;clear:both}}#page>.menu-panel .inner{clear:both}@media (min-width:60em){#page>.menu-panel .inner{width:880px;margin-left:auto;margin-right:auto}#page>.menu-panel .inner:after{content:" ";display:block;clear:both}}@media (min-width:75em){#page>.menu-panel .inner{width:1180px;margin-left:auto;margin-right:auto}#page>.menu-panel .inner:after{content:" ";display:block;clear:both}}@media (max-width:59.9375em) and (min-width:48em){#header .region-header{padding-left:64px;padding-right:64px}}@media (min-width:75em){#header .region-header{padding-left:75px;padding-right:75px}}#page>.menu-panel .inner .inner-inner{overflow:visible}@media (min-width:75em){#page>.menu-panel .inner .inner-inner{padding-left:75px;padding-right:75px}}#header .region-header{overflow:hidden}@media (min-width:75em){#header .region-header{padding:0;margin-left:75px;margin-right:75px}}#block-search-api-page-search-aclu .search-header span{display:inline-block;vertical-align:middle;text-indent:-119988px;overflow:hidden;text-align:left;text-transform:capitalize;height:16px;width:16px;background-image:url(../images/sprites/icons-s48fdd0f329.png);background-position:0 -490px;background-repeat:no-repeat}@media (-webkit-min-device-pixel-ratio:1.5),(min-resolution:144dpi),not all{#block-search-api-page-search-aclu .search-header span{background-image:url(../images/sprites/icons2x-s56d40e25f8.png);background-size:92px;background-position:0 -490px}}@media (min-width:60em){.not-sticky #block-search-api-page-search-aclu .search-header span{display:inline-block;vertical-align:middle;text-indent:-119988px;overflow:hidden;text-align:left;text-transform:capitalize;height:20px;width:20px;background-image:url(../images/sprites/icons-s48fdd0f329.png);background-position:0 -294px;background-repeat:no-repeat}}@media (-webkit-min-device-pixel-ratio:1.5) and (min-width:60em),(min-resolution:144dpi) and (min-width:60em),not all{.not-sticky #block-search-api-page-search-aclu .search-header span{background-image:url(../images/sprites/icons2x-s56d40e25f8.png);background-size:92px;background-position:0 -294px}}header{display:block}html{font-family:cschoolbook,Georgia,Times New Roman,DejaVu Serif,serif;font-size:112.5%;line-height:1.55556em;color:#423a38}body{margin:0;padding:0}a:link{color:#005aaa}a:link,h3 a:link{text-decoration:none}h3 a:link,p{color:#423a38}p,ul{margin:0 0 1.55556em}ul ul{margin:0}ul{padding:0 0 0 30px}img{border:0;max-width:100%}button,input{font-family:inherit;font-size:100%;margin:0;max-width:100%;box-sizing:border-box;line-height:normal}button{text-transform:none}button,input[type=submit]{-webkit-appearance:none;font-family:gtamcond,Arial,Helvetica,Nimbus Sans L,sans-serif;background-color:#005aaa;border:0;color:#fff;cursor:pointer;font-size:1.22222rem;font-weight:800;padding:.66667rem;text-transform:uppercase}form{position:relative}input{box-sizing:border-box;background-image:none;color:#423a38;font-family:gtamcond,Arial,Helvetica,Nimbus Sans L,sans-serif;font-size:.77778rem;line-height:1.22222rem;height:1.55556rem;font-weight:400;padding:.11111rem .44444rem;border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0;-webkit-appearance:none;border:1px solid #423a38}@media (min-width:48em){input{width:14.44444rem}}input[type=submit]{height:auto;width:auto}label{color:#423a38;display:block;font-family:gtamcond,Arial,Helvetica,Nimbus Sans L,sans-serif;font-size:1rem;font-weight:400}@media (min-width:48em){label{font-size:1.22222rem}}@media (max-width:47.9375em) and (min-width:0){#block-superfish-1{float:right;margin-right:.16667rem}#block-superfish-1>ul.menu>li.menu-link-title-take-action{display:none}}@media (min-width:48em){#block-superfish-1{display:block;margin-left:18.05556rem}}@media (min-width:60em){#block-superfish-1{margin-left:15.55556rem}.not-sticky #block-superfish-1{bottom:0;position:absolute;right:5px;clear:right}}#block-superfish-1>ul.menu{padding:0;margin:0}#block-superfish-1>ul.menu>li.sf-depth-1{height:2.83333rem;line-height:2.83333rem;margin-left:.44444rem;outline:none}#block-superfish-1>ul.menu>li.sf-depth-1:after{content:"/";font-family:Georgia,Times New Roman,DejaVu Serif,serif;font-weight:600;position:absolute;color:#b8e7ee}@media (min-width:60em){.not-sticky #block-superfish-1>ul.menu>li.sf-depth-1{height:2.72222rem;line-height:2.72222rem}.not-sticky #block-superfish-1>ul.menu>li.sf-depth-1:after{color:#414141}}#block-superfish-1>ul.menu>li.sf-depth-1>a{display:inline-block;font-family:gtamcond,Arial,Helvetica,Nimbus Sans L,sans-serif;text-transform:uppercase;font-size:.88889rem;line-height:2.83333rem;padding:0 .38889rem}#block-superfish-1>ul.menu>li.sf-depth-1>a:link{color:#b8e7ee;text-decoration:none}@media (min-width:48em){#block-superfish-1>ul.menu>li.sf-depth-1>a{font-size:1rem;padding:0 1rem}}@media (min-width:60em){.not-sticky #block-superfish-1>ul.menu>li.sf-depth-1>a{font-size:1.05556rem;line-height:2.72222rem}.not-sticky #block-superfish-1>ul.menu>li.sf-depth-1>a:link{color:#ef404d;text-decoration:none}}#block-superfish-1>ul.menu>li.menu-link-title-get-updates{display:none}@media (max-width:59.9375em) and (min-width:48em){#block-superfish-1>ul.menu>li.menu-link-title-get-updates{display:block}}#block-superfish-1>ul.menu>li.sf-depth-1.menu-link-title-become-a-member{display:none}@media (min-width:60em){.not-sticky #block-superfish-1>ul.menu>li.sf-depth-1.menu-link-title-become-a-member{display:block}}#block-superfish-1>ul.menu>li.menu-link-title-renew{display:none}@media (min-width:60em){.not-sticky #block-superfish-1>ul.menu>li.menu-link-title-renew{display:block}}@media (max-width:59.9375em) and (min-width:48em){#block-superfish-1>ul.menu>li.menu-link-title-take-action{display:none}}#block-superfish-1>ul.menu>li.menu-link-title-donate:after{display:none}#block-superfish-1>ul.menu ul{font-family:gtamcond,Arial,Helvetica,Nimbus Sans L,sans-serif;background-color:#fff;border:1px solid #423a38;display:none;left:auto!important}@media (max-width:59.9375em) and (min-width:0){#block-superfish-1>ul.menu ul{display:none!important}}@media (min-width:48em){#block-superfish-1>ul.menu ul{top:1.66667rem;right:-5.55556rem}}@media (min-width:60em){#block-superfish-1>ul.menu ul{top:2.72222rem;right:1.27778rem}}#block-superfish-1>ul.menu ul li{border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#423a38}#block-superfish-1>ul.menu ul li:last-child{border-bottom-width:0}#block-superfish-1>ul.menu ul a{color:#005aaa;padding:.83333rem 1.11111rem .5rem;text-transform:none;font-size:1rem;line-height:1.44444rem}@media (min-width:48em){#block-superfish-1>ul.menu ul a{padding:.61111rem 1.11111rem .55556rem}}a.main-menu--burger{vertical-align:middle;text-indent:-119988px;overflow:hidden;text-align:left;text-transform:capitalize;height:28px;width:34px;background-image:url(../images/sprites/icons-s48fdd0f329.png);display:block;float:left;margin-top:.61111rem;margin-right:1rem;cursor:pointer;background-position:0 -186px;background-repeat:no-repeat}@media (-webkit-min-device-pixel-ratio:1.5),(min-resolution:144dpi),not all{a.main-menu--burger{background-image:url(../images/sprites/icons2x-s56d40e25f8.png);background-size:92px;background-position:0 -186px}}@media (min-width:60em){a.main-menu--burger{display:none}}#navigation .block{margin-bottom:0}@media (max-width:59.9375em) and (min-width:48em){#navigation .block{position:relative}}#navigation .menu{margin:0;padding:0;text-align:left;display:none}@media (min-width:60em){#navigation .menu{display:block}}#navigation .menu li{padding:0;list-style-type:none;list-style-image:none}@media (min-width:60em){#navigation .menu li{float:left}}@media (max-width:47.9375em) and (min-width:0){#navigation .block>.menu{background-color:#fff;list-style:none;padding:0;margin:0;z-index:15;position:absolute;border:1px solid #423a38;width:13.77778rem;background-position:initial initial;background-repeat:initial initial}#navigation .block>.menu li .menu__link,#navigation .block>.menu li a{display:block;cursor:pointer;padding:.61111rem 1.22222rem;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#423a38;font-weight:400;font-size:.88889rem;line-height:1.11111rem;color:#005aaa;text-decoration:none}}@media (max-width:47.9375em) and (min-width:0) and (min-width:48em){#navigation .block>.menu li .menu__link,#navigation .block>.menu li a{padding:.5rem 1.22222rem;font-size:1rem;line-height:1.44444rem}}@media (max-width:47.9375em) and (min-width:0){#navigation .block>.menu li:last-child .menu__link,#navigation .block>.menu li:last-child a{border-bottom-style:none}}@media (max-width:59.9375em) and (min-width:48em){#navigation .block>.menu{background-color:#fff;list-style:none;padding:0;margin:0;z-index:15;position:absolute;border:1px solid #423a38;width:16.88889rem;background-position:initial initial;background-repeat:initial initial}#navigation .block>.menu li .menu__link,#navigation .block>.menu li a{display:block;cursor:pointer;padding:.61111rem 1.22222rem;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#423a38;font-weight:400;font-size:.88889rem;line-height:1.11111rem;color:#005aaa;text-decoration:none;padding:.5rem 1.22222rem;font-size:1rem;line-height:1.44444rem}}@media (max-width:59.9375em) and (min-width:48em){#navigation .block>.menu li:last-child .menu__link,#navigation .block>.menu li:last-child a{border-bottom-style:none}}@media (min-width:60em){#navigation .block>.menu{overflow:hidden}}#navigation .block>.menu>li{font-family:gtamcond,Arial,Helvetica,Nimbus Sans L,sans-serif;font-weight:600;font-size:.88889rem;line-height:2.66667rem}#navigation .block>.menu>li>.menu__link{cursor:pointer;text-transform:capitalize}@media (min-width:60em){#navigation .block>.menu>li>.menu__link{color:#b8e7ee;text-transform:uppercase;font-weight:800;display:block}}#navigation .block>.menu>li.menu-link-title-become-a-member,#navigation .block>.menu>li.menu-link-title-get-updates,#navigation .block>.menu>li.menu-link-title-renew{display:none}#navigation .block>.menu>li.sf-depth-1{float:left;text-transform:uppercase;background-color:#ff8a00;text-align:center;width:50%;background-position:initial initial;background-repeat:initial initial}#navigation .block>.menu>li.sf-depth-1 a:link{color:#423a38;text-decoration:none}#navigation .block>.menu>li.sf-depth-1 a .wrap-arrow{background-image:none;padding-right:0;background-position:initial initial;background-repeat:initial initial}#navigation .block>.menu>li.sf-depth-1.menu-link-title-take-action{position:relative;z-index:1;background-color:#ef404d;width:48%}#navigation .block>.menu>li.sf-depth-1.menu-link-title-take-action:after{content:" ";position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;background-color:#ef404d;-webkit-transform-origin:0 100%;-webkit-transform:skew(-28deg,0deg)}#navigation .block>.menu>li.sf-depth-1.menu-link-title-donate{background-color:#ff8a00;width:52%}#navigation .block>.menu>li.sf-depth-1.menu-link-title-donate>ul{display:none!important}#navigation .block>.menu>li.js-added{clear:both}@media (min-width:60em){#navigation .block>.menu>li.issues a{display:inline-block;padding-left:1.38889rem;vertical-align:top;background-image:url(../images/icons/burger-small-sprite.png?1512413232);background-position:0 18px;background-repeat:no-repeat}}@media (max-width:74.9375em) and (min-width:60em){#navigation .block>.menu>li.issues a{width:6rem}}@media (min-width:60em) and (min-width:75em){#navigation .block>.menu>li.issues a{width:7.61111rem}}@media not all,only screen and (-webkit-min-device-pixel-ratio:1.3) and (min-width:60em),only screen and (-webkit-min-device-pixel-ratio:1.3020833333333333) and (min-width:60em),only screen and (min-resolution:1.3dppx) and (min-width:60em),only screen and (min-resolution:125dpi) and (min-width:60em){#navigation .block>.menu>li.issues a{background-image:url(../images/icons2x/burger-small-sprite.png?1512413232);background-size:18px}}#navigation .block-taxonomy-menu-block,#navigation .sf-hidden{display:none}#navigation li .wrapArrow-processed.closed .wrap-arrow{display:block}@media (min-width:0){#navigation li .wrapArrow-processed.closed .wrap-arrow{padding-right:1.38889rem;background-image:url(../images/arrows/mobile-menu-right.png?1487181507);background-position:100% 3px;background-repeat:no-repeat}}@media not all,only screen and (-webkit-min-device-pixel-ratio:1.3) and (min-width:0),only screen and (-webkit-min-device-pixel-ratio:1.3020833333333333) and (min-width:0),only screen and (min-resolution:1.3dppx) and (min-width:0),only screen and (min-resolution:125dpi) and (min-width:0){#navigation li .wrapArrow-processed.closed .wrap-arrow{background-image:url(../images/arrows2x/mobile-menu-right.png?1487181507);background-size:6px}}@media (min-width:48em){#navigation li .wrapArrow-processed.closed .wrap-arrow{background-position:100% 7px}}@media (min-width:60em){#navigation li .wrapArrow-processed.closed .wrap-arrow{display:inline;background-image:none;padding-right:0;background-position:initial initial;background-repeat:initial initial}}@media not all,only screen and (-webkit-min-device-pixel-ratio:1.3) and (min-width:60em),only screen and (-webkit-min-device-pixel-ratio:1.3020833333333333) and (min-width:60em),only screen and (min-resolution:1.3dppx) and (min-width:60em),only screen and (min-resolution:125dpi) and (min-width:60em){#navigation li .wrapArrow-processed.closed .wrap-arrow{background-image:none;background-size:inherit}}#page>.menu-panel{overflow:hidden;background-color:#b8e7ee;font-family:gtamcond,Arial,Helvetica,Nimbus Sans L,sans-serif;padding:1.38889rem 0 1.94444rem;background-position:initial initial;background-repeat:initial initial}@media (max-width:47.9375em) and (min-width:0){#page>.menu-panel{display:none!important}}@media (max-width:59.9375em) and (min-width:48em){#page>.menu-panel{display:none!important}}#page>.menu-panel a{font-family:gtamcond,Arial,Helvetica,Nimbus Sans L,sans-serif}#page>.menu-panel a:link{color:#005aaa;text-decoration:none}#page>.menu-panel a.more{font-family:gtamcond,Arial,Helvetica,Nimbus Sans L,sans-serif;padding-top:0;padding-bottom:0;background-size:18px;line-height:1.22222rem;display:inline-block;background-position:100% 50%}#page>.menu-panel .menu-panel-bbs{float:left;width:205px;font-size:1.11111rem;line-height:1.55556rem}@media (min-width:75em){#page>.menu-panel .menu-panel-bbs{width:280px}}#page>.menu-panel .menu-panel-container,#page>.menu-panel .menu-panel-content{font-size:1.11111rem;line-height:1.44444rem}#page>.menu-panel .menu-panel-container .item-list ul,#page>.menu-panel .menu-panel-content .item-list ul{overflow:hidden;margin:0}#page>.menu-panel .menu-panel-container .item-list ul li,#page>.menu-panel .menu-panel-content .item-list ul li{background-image:none;padding:0;margin:0;background-position:initial initial;background-repeat:initial initial}#page>.menu-panel .menu-panel-container h3{font-family:gtamcond,Arial,Helvetica,Nimbus Sans L,sans-serif;text-transform:uppercase;padding-bottom:.27778rem;margin-bottom:.66667rem;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#7cbcda}#page>.menu-panel .menu-panel-container h3 a{color:#423a38}#page>.menu-panel .menu-panel-container .item-list ul li:nth-child(3n){margin-right:0}#page>.menu-panel .menu-panel-content{border-left-width:1px;border-left-style:solid;border-left-color:#fff;float:right;width:580px;padding-left:20px}@media (min-width:75em){#page>.menu-panel .menu-panel-content{width:580px;padding-left:75px}}#page>.menu-panel .menu-panel-content img{display:block;margin-bottom:.33333rem}#page>.menu-panel .menu-panel-content ul.menu{overflow:hidden;padding:0;margin:0}#page>.menu-panel .menu-panel-content .item-list ul li,#page>.menu-panel .menu-panel-content ul.menu li.menu__item{float:left;width:130px;margin-right:95px;margin-bottom:1.38889rem}#page>.menu-panel .menu-panel-content .item-list ul li:nth-child(4n),#page>.menu-panel .menu-panel-content ul.menu li.menu__item:nth-child(3n+1){margin-right:0}#page>.menu-panel .menu-panel-content .menu__item.is-leaf{list-style:none}@media (min-width:60em){a.submenu-header{display:none}}#page>.menu-panel#main_menu-dor-dropdown .menu-panel-content ul.menu{overflow:hidden;padding:0;margin:0}#page>.menu-panel#main_menu-dor-dropdown .menu-panel-content ul.menu li.menu__item{float:left;width:205px;margin-right:170px;margin-bottom:1.11111rem}#page>.menu-panel#main_menu-dor-dropdown .menu-panel-content ul.menu li.menu__item:nth-child(odd){margin-right:0}#page>.menu-panel#main_menu-dor-dropdown .menu-panel-content .menu__item.is-leaf{list-style:none}#page>.menu-panel#main_menu-blogs-dropdown .menu-panel-container{margin-bottom:1.66667rem}#page>.menu-panel#main_menu-blogs-dropdown .menu-panel-container img{float:left;margin-right:.55556rem}#page>.menu-panel#main_menu-blogs-dropdown .menu-panel-container .item-list ul li{float:left;width:280px;margin-right:20px}#page>.menu-panel#main_menu-blogs-dropdown .menu-panel-container .item-list ul li a{position:relative}@media (min-width:75em){#page>.menu-panel#main_menu-blogs-dropdown .menu-panel-container .item-list ul li{margin-right:95px}}#page>.menu-panel#main_menu-blogs-dropdown .menu-panel-container .item-list ul li:nth-child(3n){margin-right:0}#block-taxonomy-menu-block-2{z-index:1}@media (min-width:60em){#block-taxonomy-menu-block-2{background-color:#fff;list-style:none;padding:0;margin:2.61111rem 0 0;border:1px solid #423a38;width:11.38889rem;position:absolute;z-index:40;background-position:initial initial;background-repeat:initial initial}}body,html{width:100%}#page{overflow:hidden}#header{background-color:#423a38;padding-top:0;padding-bottom:0}@media (min-width:60em){#header{background-color:#fff;padding-top:1.11111rem;padding-bottom:0;top:-3.88889rem;transition:top .25s ease-out;-webkit-transition:top .25s ease-out}}#header .region-header{overflow:visible;position:relative}#header .block{margin-bottom:0}#block-blockify-blockify-logo{float:left}#block-blockify-blockify-site-name{height:1px;width:1px;overflow:hidden;clip:rect(1px 1px 1px 1px);position:absolute!important}#block-search-api-page-search-aclu{float:right;margin-top:9px;margin-right:0;position:static}@media (max-width:59.9375em) and (min-width:48em){#block-search-api-page-search-aclu{margin-right:0;float:right}}@media (min-width:60em){.not-sticky #block-search-api-page-search-aclu{position:absolute;right:1.55556rem;float:none;margin-left:.55556rem;margin-top:.16667rem}}#block-search-api-page-search-aclu .search-header{cursor:pointer;outline:none;display:block;padding:.44444rem .16667rem .38889rem .83333rem;position:relative;z-index:999;line-height:1}#block-search-api-page-search-aclu .search-header span{display:block;position:relative}@media (min-width:60em){.not-sticky #block-search-api-page-search-aclu .search-header{border:1px solid #005aaa;padding:.11111rem .16667rem}}#block-search-api-page-search-aclu .content{display:none;position:absolute;top:2.83333rem;right:0;z-index:998;background-color:#b8e7ee;padding:.83333rem;width:14.22222rem;background-position:initial initial;background-repeat:initial initial}@media (max-width:59.9375em) and (min-width:48em){#block-search-api-page-search-aclu .content{right:3.5rem}}@media (min-width:60em){.not-sticky #block-search-api-page-search-aclu .content{top:0;right:0;width:13.33333rem;padding:1.66667rem 1.55556rem}}#block-search-api-page-search-aclu .content form{position:relative}#block-search-api-page-search-aclu .content form .form-item{margin:0;float:left}#block-search-api-page-search-aclu .content form .form-text{font-family:gtamcond,Arial,Helvetica,Nimbus Sans L,sans-serif;font-size:1rem;line-height:1.77778rem;padding:.33333rem .5rem;border:1px solid #423a38;height:2.55556rem;color:#423a38;border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0;-webkit-appearance:none;width:11.33333rem;margin-right:.55556rem;outline:none}@media (min-width:60em){.not-sticky #block-search-api-page-search-aclu .content form .form-text{font-size:.77778rem;line-height:1.22222rem;padding:.22222rem .55556rem .16667rem;height:1.66667rem}}#block-search-api-page-search-aclu .content form input[type=submit]{position:absolute;right:0;top:0;font-size:1rem;margin:0;padding:0;background-color:transparent;outline:none;border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0;-webkit-appearance:none;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNS4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iMjRweCIgaGVpZ2h0PSIyNHB4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGZpbGw9IiMwMDVBQUEiIGQ9Ik0yNCwyMmMwLDEuMS0wLjksMi0yLDJIMmMtMS4xLDAtMi0wLjktMi0yVjJjMC0xLjEsMC45LTIsMi0yaDIwYzEuMSwwLDIsMC45LDIsMlYyMnoiLz4NCjwvZz4NCjxnIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgICAgIj4NCgk8cGF0aCBmaWxsPSIjRkZGRkZGIiBkPSJNMTMuMzE2LDE5LjM0MWgtMS42OTJsNi41NzItNi41NTRIMy45OXYtMS4yNjFoMTQuMjA2bC02LjU3Mi02LjU1NGgxLjY5Mmw3LjE4NSw3LjE4NEwxMy4zMTYsMTkuMzQxeiIvPg0KPC9nPg0KPC9zdmc+DQo=);background-size:46px;width:46px;height:46px;text-indent:-9999px;background-position:50% 50%;background-repeat:no-repeat}@media (min-width:60em){.not-sticky #block-search-api-page-search-aclu .content form input[type=submit]{font-size:.77778rem;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNS4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iMjRweCIgaGVpZ2h0PSIyNHB4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGZpbGw9IiMwMDVBQUEiIGQ9Ik0yNCwyMmMwLDEuMS0wLjksMi0yLDJIMmMtMS4xLDAtMi0wLjktMi0yVjJjMC0xLjEsMC45LTIsMi0yaDIwYzEuMSwwLDIsMC45LDIsMlYyMnoiLz4NCjwvZz4NCjxnIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgICAgIj4NCgk8cGF0aCBmaWxsPSIjRkZGRkZGIiBkPSJNMTMuMzE2LDE5LjM0MWgtMS42OTJsNi41NzItNi41NTRIMy45OXYtMS4yNjFoMTQuMjA2bC02LjU3Mi02LjU1NGgxLjY5Mmw3LjE4NSw3LjE4NEwxMy4zMTYsMTkuMzQxeiIvPg0KPC9nPg0KPC9zdmc+DQo=);background-size:30px;width:30px;height:30px;text-indent:-9999px;background-position:50% 50%;background-repeat:no-repeat}}#block-blockify-blockify-logo .button--expand-minimized-nav{display:none;cursor:pointer;position:absolute;right:-1.55556rem;bottom:0;padding-bottom:12px}#logo{text-indent:-119988px;overflow:hidden;text-align:left;text-transform:capitalize;background-image:url(../images/logos/logo-small.png?1512413232);width:80px;height:28px;margin-top:11px;margin-bottom:12px;outline:none;display:block;background-position:50% 50%;background-repeat:no-repeat}@media not all,only screen and (-webkit-min-device-pixel-ratio:1.3),only screen and (-webkit-min-device-pixel-ratio:1.3020833333333333),only screen and (min-resolution:1.3dppx),only screen and (min-resolution:125dpi){#logo{background-image:url(../images/logos2x/logo-small.png?1512413232);background-size:cover}}@media (min-width:60em){.not-sticky #logo{text-indent:-119988px;overflow:hidden;text-align:left;text-transform:capitalize;background-image:url(../images/logos/logo-large.png?1512413232);width:190px;height:67px;margin-top:8px;margin-bottom:25px;background-position:50% 50%;background-repeat:no-repeat}}@media not all,only screen and (-webkit-min-device-pixel-ratio:1.3) and (min-width:60em),only screen and (-webkit-min-device-pixel-ratio:1.3020833333333333) and (min-width:60em),only screen and (min-resolution:1.3dppx) and (min-width:60em),only screen and (min-resolution:125dpi) and (min-width:60em){.not-sticky #logo{background-image:url(../images/logos2x/logo-large.png?1512413232);background-size:cover}}#logo img,#site-name{display:none}@media (max-width:47.9375em) and (min-width:0){#page .block-aclu-promotions{margin-bottom:0}}@media (max-width:59.9375em) and (min-width:48em){#page .block-aclu-promotions{margin-bottom:0}}#page .block-aclu-promotions.aclu-promotions-banner-eoy{margin:0;height:90px}@media (max-width:47.9375em) and (min-width:0){#page .block-aclu-promotions.aclu-promotions-banner-eoy{padding-top:0}}#page .block-aclu-promotions.aclu-promotions-banner-eoy .banner-eoy-inner{overflow:auto;display:table;margin:auto;width:100%;height:100%;text-align:center;vertical-align:middle}@media (max-width:59.9375em) and (min-width:48em){#page .block-aclu-promotions.aclu-promotions-banner-eoy .banner-eoy-inner{width:auto}}@media (max-width:47.9375em) and (min-width:0){#page .block-aclu-promotions.aclu-promotions-banner-eoy .banner-eoy-inner{width:auto}}#page .block-aclu-promotions.aclu-promotions-banner-eoy .banner-eoy-inner .banner-nav{margin:auto;padding:0;display:table;vertical-align:middle;overflow:auto;text-align:center;width:100%;height:100%}@media (max-width:47.9375em) and (min-width:0){#page .block-aclu-promotions.aclu-promotions-banner-eoy .banner-eoy-inner .banner-nav{width:auto}}@media (max-width:59.9375em) and (min-width:48em){#page .block-aclu-promotions.aclu-promotions-banner-eoy .banner-eoy-inner .banner-nav .banner-left,#page .block-aclu-promotions.aclu-promotions-banner-eoy .banner-eoy-inner .banner-nav .banner-right{display:none}}@media (max-width:47.9375em) and (min-width:0){#page .block-aclu-promotions.aclu-promotions-banner-eoy .banner-eoy-inner .banner-nav .banner-left,#page .block-aclu-promotions.aclu-promotions-banner-eoy .banner-eoy-inner .banner-nav .banner-right{display:none}}#page .block-aclu-promotions.aclu-promotions-banner-eoy .banner-eoy-inner .banner-nav .banner-middle{overflow:hidden;padding:0 20px;width:auto;background-color:#ffdf69;display:table-cell;vertical-align:middle}@media (max-width:47.9375em) and (min-width:0){#page .block-aclu-promotions.aclu-promotions-banner-eoy .banner-eoy-inner .banner-nav .banner-middle{padding:0}}@media (max-width:59.9375em) and (min-width:48em){#page .block-aclu-promotions.aclu-promotions-banner-eoy .banner-eoy-inner .banner-nav .banner-middle{padding:0}}#page .block-aclu-promotions.aclu-promotions-banner-eoy .banner-eoy-inner .banner-eoy-text-container{text-align:left;line-height:23px;display:inline-block;margin-right:1.11111rem}@media (max-width:47.9375em) and (min-width:0){#page .block-aclu-promotions.aclu-promotions-banner-eoy .banner-eoy-inner .banner-eoy-text-container{text-align:left;float:left;margin-right:0;width:50%;padding-left:15px}}@media (max-width:59.9375em) and (min-width:48em){#page .block-aclu-promotions.aclu-promotions-banner-eoy .banner-eoy-inner .banner-eoy-text-container{margin-right:.94444rem}}#page .block-aclu-promotions.aclu-promotions-banner-eoy .banner-eoy-inner .banner-eoy-alert-text{font-size:1.94444rem;font-family:gtam,Arial,Helvetica,Nimbus Sans L,sans-serif;font-weight:600;color:#005aaa}@media (max-width:47.9375em) and (min-width:0){#page .block-aclu-promotions.aclu-promotions-banner-eoy .banner-eoy-inner .banner-eoy-alert-text{margin:0 .83333rem 0 0;font-size:1rem;line-height:1rem}}@media (max-width:59.9375em) and (min-width:48em){#page .block-aclu-promotions.aclu-promotions-banner-eoy .banner-eoy-inner .banner-eoy-alert-text{font-size:1.55556rem;line-height:1.66667rem}}#page .block-aclu-promotions.aclu-promotions-banner-eoy .banner-eoy-inner .banner-eoy-alert-subtext{font-size:1.33333rem;font-family:gtam,Arial,Helvetica,Nimbus Sans L,sans-serif;font-weight:600;color:#005aaa;margin-top:.44444rem}@media (max-width:47.9375em) and (min-width:0){#page .block-aclu-promotions.aclu-promotions-banner-eoy .banner-eoy-inner .banner-eoy-alert-subtext{margin:0 .83333rem 0 0;font-size:.83333rem;line-height:.83333rem}}@media (max-width:59.9375em) and (min-width:48em){#page .block-aclu-promotions.aclu-promotions-banner-eoy .banner-eoy-inner .banner-eoy-alert-subtext{font-size:.88889rem;line-height:.88889rem;padding-top:0}}#page .block-aclu-promotions.aclu-promotions-banner-eoy .banner-eoy-inner .banner-eoy-alert-linktext{padding:0;display:inline-block;width:auto}@media (max-width:47.9375em) and (min-width:0){#page .block-aclu-promotions.aclu-promotions-banner-eoy .banner-eoy-inner .banner-eoy-alert-linktext{margin-right:0}}@media (max-width:59.9375em) and (min-width:48em){#page .block-aclu-promotions.aclu-promotions-banner-eoy .banner-eoy-inner .banner-eoy-alert-linktext{margin-right:1rem}}#page .block-aclu-promotions.aclu-promotions-banner-eoy .banner-eoy-inner .banner-eoy-alert-linktext a{width:auto;color:#fff;font-size:1.33333rem;background-color:#ef404d;padding:0 2.11111rem;line-height:3.55556rem;height:3.44444rem;font-family:gtam,Arial,Helvetica,Nimbus Sans L,sans-serif;font-weight:600;vertical-align:middle;text-align:center;display:inline-block}#page .block-aclu-promotions.aclu-promotions-banner-eoy .banner-eoy-inner .banner-eoy-alert-linktext a:link{color:#fff;text-decoration:none}@media (max-width:74.9375em) and (min-width:60em){#page .block-aclu-promotions.aclu-promotions-banner-eoy .banner-eoy-inner .banner-eoy-alert-linktext a{font-weight:400}}@media (max-width:47.9375em) and (min-width:0){#page .block-aclu-promotions.aclu-promotions-banner-eoy .banner-eoy-inner .banner-eoy-alert-linktext a{width:100px;padding:.55556rem .83333rem;line-height:1;height:2.77778rem}}#block-aclu-promotions-aclu-promotions-banner{display:block;background-color:#ffdf69;overflow:hidden;margin-bottom:1.11111rem;margin-top:-1.11111rem}@media (max-width:74.9375em) and (min-width:60em){#block-aclu-promotions-aclu-promotions-banner{margin-left:-40px;margin-right:-40px}}@media (min-width:75em){#block-aclu-promotions-aclu-promotions-banner{margin-left:-80px;margin-right:-80px}}@media (max-width:47.9375em) and (min-width:0){#block-aclu-promotions-aclu-promotions-banner{margin:0}}@media (max-width:59.9375em) and (min-width:48em){#block-aclu-promotions-aclu-promotions-banner{margin:0;height:100px}}#block-aclu-promotions-aclu-promotions-banner div{vertical-align:middle}#block-aclu-promotions-aclu-promotions-banner .banner-eoy-alert-text{display:inline-block;font-family:gtam,Arial,Helvetica,Nimbus Sans L,sans-serif;font-weight:600;font-size:1.44444rem;color:#005aaa}#skip-link{margin:0}#skip-link a{display:block;width:100%;padding:2px 0 3px;text-align:center;background-color:#666;color:#fff}.header__region{clear:both}.inline{display:inline;padding:0}.inline li{display:inline;list-style-type:none;padding:0 1em 0 0}.block{margin-bottom:1.55556em}.form-item{margin:1.55556em 0}.form-required{color:#c00}#block-aclu-social-get-updates{float:right;margin-right:4.66667rem;line-height:1}@media (max-width:47.9375em) and (min-width:0){#block-aclu-social-get-updates{display:none}}@media (max-width:59.9375em) and (min-width:48em){#block-aclu-social-get-updates{display:none;padding:.83333rem;position:absolute;right:0;top:2.83333rem;z-index:10;background-color:#b8e7ee}}@media (min-width:60em){.not-sticky #block-aclu-social-get-updates{margin-top:.16667rem;display:block!important}}#block-aclu-social-get-updates .form-item{float:left;margin:0 .44444rem 0 0}#block-aclu-social-get-updates .form-item.form-item-signup-email{width:9rem}@media (max-width:59.9375em) and (min-width:48em){#block-aclu-social-get-updates .form-item.form-item-signup-email{width:11.11111rem}}#block-aclu-social-get-updates .form-item.form-item-signup-zip{width:4.55556rem}#block-aclu-social-get-updates .form-item .form-text{font-size:1rem;line-height:1.77778rem;padding:.33333rem .5rem;height:2.55556rem}@media (min-width:60em){.not-sticky #block-aclu-social-get-updates .form-item .form-text{font-size:.77778rem;line-height:1.11111rem;padding:.16667rem .5rem;height:1.55556rem}}#block-aclu-social-get-updates input[type=submit]{background-color:transparent;padding:0;outline:none;border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0;-webkit-appearance:none}@media (max-width:59.9375em) and (min-width:48em){#block-aclu-social-get-updates input[type=submit]{float:left;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNS4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iMjRweCIgaGVpZ2h0PSIyNHB4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGZpbGw9IiMwMDVBQUEiIGQ9Ik0yNCwyMmMwLDEuMS0wLjksMi0yLDJIMmMtMS4xLDAtMi0wLjktMi0yVjJjMC0xLjEsMC45LTIsMi0yaDIwYzEuMSwwLDIsMC45LDIsMlYyMnoiLz4NCjwvZz4NCjxnIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgICAgIj4NCgk8cGF0aCBmaWxsPSIjRkZGRkZGIiBkPSJNMTMuMzE2LDE5LjM0MWgtMS42OTJsNi41NzItNi41NTRIMy45OXYtMS4yNjFoMTQuMjA2bC02LjU3Mi02LjU1NGgxLjY5Mmw3LjE4NSw3LjE4NEwxMy4zMTYsMTkuMzQxeiIvPg0KPC9nPg0KPC9zdmc+DQo=);background-size:2.55556rem;width:2.55556rem;height:2.55556rem;text-indent:-9999px;background-position:100% 50%;background-repeat:no-repeat}}@media (min-width:60em){.not-sticky #block-aclu-social-get-updates input[type=submit]{font-family:gtamcond,Arial,Helvetica,Nimbus Sans L,sans-serif;font-weight:600;font-size:.77778rem;line-height:1.11111rem;padding:.22222rem .5rem;height:1.55556rem;background-color:#005aaa}}.pane-aclu-blog-news-signup{padding:0}.pane-aclu-blog-news-signup .form-item.form-item-signup-email{float:none}.node-type-blog .pane-aclu-blog-news-signup{box-shadow:none}.node-type-blog .pane-aclu-blog-news-signup #aclu-social-signup-form .form-item.form-item-signup-email{float:none}@media (min-width:48em){.node-type-blog .pane-aclu-blog-news-signup #aclu-social-signup-form .form-item.form-item-signup-email{float:left}}.pane-aclu-blog-news-signup .close{display:none}.node-type-blog .pane-aclu-blog-news-signup .close{display:block}.pane-aclu-blog-news-signup div.pane-title{font-family:gtamcond,Arial,Helvetica,Nimbus Sans L,sans-serif;margin-bottom:.66667rem;text-transform:uppercase;font-size:1.22222rem;line-height:1.33333rem}.node-type-blog .pane-aclu-blog-news-signup div.pane-title{margin-bottom:.16667rem;font-size:.94444rem;line-height:.94444rem}@media (min-width:48em){.node-type-blog .pane-aclu-blog-news-signup div.pane-title{font-size:1.22222rem;line-height:1.33333rem}}
+ ]]>
+ </style>
+ <link rel="stylesheet" href="https://www.aclu.org/sites/default/files/advagg_css/css__9spNr2y6sE7534vMtObhB-C6V7JoL17hQl6yVpVQHu0__jAYGrhJFgVdQGXTwGEQcuOV8h8Wa9vZRjf8mDLqYdNI__VITBFqYjCWZ55Wpxq9xcXRqOD9xxPlR-vPRDis8bQN4.css" media="all" />
+ <style>
+ <![CDATA[
+ .aclu-name-textfield{display:none !important;}
+ ]]>
+ </style>
+ <link rel="stylesheet" href="https://www.aclu.org/sites/default/files/advagg_css/css___ZnduM86wslayiEyMdexZdaCufgTPtFrrb78WVTtAuo__4rm0A7gt5xkfaPFTzbLqhPPFeiUfgjOnqlkui-UV0fU__VITBFqYjCWZ55Wpxq9xcXRqOD9xxPlR-vPRDis8bQN4.css" media="all" />
+ <link rel="stylesheet" href="https://www.aclu.org/sites/default/files/advagg_css/css__pRDlzt0BVbbFqHQ3wQZq9xZxqgvQn100X3uSS1nLkiA__-VJy8i6iAowOFfi_Ts9NFnSSGv1dL4JaHTbh_a5yltM__VITBFqYjCWZ55Wpxq9xcXRqOD9xxPlR-vPRDis8bQN4.css" media="all" />
+ <link rel="stylesheet" href="https://www.aclu.org/sites/default/files/advagg_css/css__xtweB_zAlOiZIBl2jHti46I8SiqUqqkHZATEYclfit0__j-rVGQJFT35ljMsuo5uEiaKeXg2xOVCo1SaqcUGZc7I__VITBFqYjCWZ55Wpxq9xcXRqOD9xxPlR-vPRDis8bQN4.css" media="all" />
+ <link rel="stylesheet" href="https://www.aclu.org/sites/default/files/advagg_css/css__af8bNHU4hQBa2-PQX1X50gCJDA4cQ5w1rkPz8PsW4_4__6H7TVPMkdrIGuW35oghJ6A5hL9K-A825oBniIdmgc30__VITBFqYjCWZ55Wpxq9xcXRqOD9xxPlR-vPRDis8bQN4.css" media="all" />
+ <script defer="defer" src="https://www.aclu.org/sites/all/libraries/modernizr/modernizr.min.js?p7vly2"></script><!--[if lt IE 9]>
+ <script src="/sites/all/themes/contrib/zen/js/respond.js"></script>
+ <![endif]-->
+ </head>
+ <body class="html not-front not-logged-in no-sidebars page-node page-node- page-node-67865 node-type-blog section-blog page-panels panel-layout-two-col-sidebar-right-mix">
+ <p id="skip-link">
+ <a href="#block-system-main-menu" class="element-invisible element-focusable skip-to-nav">Jump to navigation</a> <a href="#content" class="element-invisible element-focusable skip-nav">Skip navigation</a>
+ </p>
+ <div id="page">
+ <header class="header not-sticky" id="header" role="banner">
+ <div class="inner">
+ <div class="inner-inner">
+ <div class="header__region region region-header clearfix">
+ <div id="block-aclu-promotions-aclu-promotions-banner" class="block block-aclu-promotions eoy-banner first odd aclu-promotions-banner-eoy">
+ <div class="banner-eoy-inner">
+ <div class="banner-nav">
+ <div class="banner-left"></div>
+ <div class="banner-middle">
+ <div class="banner-eoy-text-container">
+ <div class="banner-eoy-alert-text">
+ ACLU Conference
+ </div>
+ <div class="banner-eoy-alert-subtext">
+ Early bird discount ends today
+ </div>
+ </div>
+ <div class="banner-eoy-alert-linktext">
+ <a href="https://www.aclu.org/membership-conference-banner-2018">SIGN UP NOW</a>
+ </div>
+ </div>
+ <div class="banner-right"></div>
+ </div>
+ </div>
+ </div>
+ <div id="block-blockify-blockify-logo" class="block block-blockify even">
+ <a href="/" id="logo" rel="home" title="Return to the American Civil Liberties Union home page"><img src="https://www.aclu.org/sites/all/themes/custom/aclu/logo.png" alt="American Civil Liberties Union logo" /></a>
+ </div>
+ <div id="block-blockify-blockify-site-name" class="block block-blockify odd">
+ <span id="site-name"><a href="/" title="Return to the American Civil Liberties Union home page" rel="home"><span>American Civil Liberties Union</span></a></span>
+ </div>
+ <div id="block-aclu-social-get-updates" class="block block-aclu-social even">
+ <div class="signup">
+ <div class="signup__form">
+ <form action="/blog/privacy-technology/internet-privacy/facebook-tracking-me-even-though-im-not-facebook" method="post" id="aclu-social-signup-form--2" accept-charset="UTF-8" name="aclu-social-signup-form--2">
+ <div>
+ <div class="form-item form-type-textfield form-item-signup-email">
+ <label class="element-invisible" for="edit-signup-email--2">Email Address <span class="form-required" title="This field is required.">*</span></label> <input placeholder="Email address" type="text" id="edit-signup-email--2" name="signup_email" value="" size="60" maxlength="128" class="form-text required" />
+ </div>
+ <div class="form-item form-type-textfield form-item-signup-zip">
+ <label class="element-invisible" for="edit-signup-zip--2">ZIP Code <span class="form-required" title="This field is required.">*</span></label> <input placeholder="ZIP code" type="text" id="edit-signup-zip--2" name="signup_zip" value="" size="60" maxlength="128" class="form-text required" />
+ </div><input type="hidden" name="location" value="header" /> <input type="submit" id="edit-submit--3" name="op" value="Get updates" class="form-submit" /><input type="hidden" name="form_build_id" value="form-hGG60UoLJiORDthH98ot7Z00BGE0w7ibTdtstuGQ8zM" /> <input type="hidden" name="form_id" value="aclu_social_signup_form" />
+ </div>
+ </form>
+ </div>
+ </div>
+ </div>
+ <div id="block-search-api-page-search-aclu" class="block block-search-api-page odd">
+ <div class="container-inline">
+ <div class="search-header">
+ <span>Search form</span>
+ </div>
+ <div class="content">
+ <form action="/issues/capital-punishment/mental-illness-and-death-penalty" method="post" id="search-api-page-search-form-search-aclu" accept-charset="UTF-8" name="search-api-page-search-form-search-aclu">
+ <div>
+ <div class="form-item form-type-textfield form-item-keys-1">
+ <label class="element-invisible" for="edit-keys-1">Enter your keywords</label> <input placeholder="Keyword Search" tabindex="1" type="text" id="edit-keys-1" name="keys_1" value="" size="15" maxlength="128" class="form-text" />
+ </div><input type="hidden" name="id" value="1" /> <input type="submit" id="edit-submit-1" name="op" value="Search" class="form-submit" /><input type="hidden" name="form_build_id" value="form-A7n1UyigMND-e8scTxRdWLVL5n3t6OlyQ_u6dUsHiXM" /> <input type="hidden" name="form_id" value="search_api_page_search_form_search_aclu" />
+ </div>
+ </form>
+ </div>
+ </div>
+ </div>
+ <div id="block-superfish-1" class="block block-superfish last even">
+ <ul id="superfish-1" class="menu sf-menu sf-menu-secondary-main-menu sf-horizontal sf-style-none sf-total-items-5 sf-parent-items-1 sf-single-items-4">
+ <li id="menu-4854-1" class="first odd sf-item-1 sf-depth-1 sf-no-children menu-link-title-get-updates">
+ <a href="/" class="menu-item-get-updates sf-depth-1">Get Updates</a>
+ </li>
+ <li id="menu-5048-1" class="middle even sf-item-2 sf-depth-1 sf-no-children menu-link-title-become-a-member">
+ <a href="https://action.aclu.org/give/become-freedom-fighter-join-aclu?cid=70136000001Oa5D&amp;alt_src=70136000001OZf5&amp;ms=horiz_nav_hp_join&amp;ms_aff=NAT&amp;ms_chan=web&amp;initms=horiz_nav_hp_join&amp;initms_aff=NAT&amp;initms_chan=web" class="sf-depth-1">Become a Member</a>
+ </li>
+ <li id="menu-1661-1" class="middle odd sf-item-3 sf-depth-1 sf-no-children menu-link-title-renew">
+ <a href="https://action.aclu.org/give/renew-your-aclu-membership?cid=70136000001OYGR&amp;ms=horiz_nav_hp_renew&amp;ms_aff=NAT&amp;ms_chan=web&amp;initms=horiz_nav_hp_renew&amp;initms_aff=NAT&amp;initms_chan=web" id="menu-item-renew" class="small-viewport-hide sf-depth-1">Renew</a>
+ </li>
+ <li id="menu-1662-1" class="middle even sf-item-4 sf-depth-1 sf-no-children menu-link-title-take-action">
+ <a href="/action" id="menu-item-take-action" class="sf-depth-1">Take Action</a>
+ </li>
+ <li id="menu-1663-1" class="last odd sf-item-5 sf-depth-1 sf-total-children-5 sf-parent-children-0 sf-single-children-5 menuparent menu-link-title-donate">
+ <a href="https://action.aclu.org/donate-aclu?&amp;ms=horiz_nav_hp&amp;ms_aff=NAT&amp;ms_chan=web&amp;initms=horiz_nav_hp&amp;initms_aff=NAT&amp;initms_chan=web" id="menu-item-donate" class="sf-depth-1 menuparent">Donate</a>
+ <ul>
+ <li id="menu-1664-1" class="first odd sf-item-1 sf-depth-2 sf-no-children menu-link-title-make-a-gift">
+ <a href="https://action.aclu.org/donate-aclu?ms=menu_gift&amp;ms_aff=NAT&amp;ms_chan=web&amp;initms=menu_gift&amp;initms_aff=NAT&amp;initms_chan=web" class="sf-depth-2">Make a Gift</a>
+ </li>
+ <li id="menu-2667-1" class="middle even sf-item-2 sf-depth-2 sf-no-children menu-link-title-join-become-a-member">
+ <a href="https://action.aclu.org/give/become-aclu-member?cid=70136000001Oa5D&amp;ms=menu_join&amp;ms_aff=NAT&amp;ms_chan=web&amp;initms=menu_join&amp;initms_aff=NAT&amp;initms_chan=web" class="sf-depth-2">Join/Become a Member</a>
+ </li>
+ <li id="menu-3830-1" class="middle odd sf-item-3 sf-depth-2 sf-no-children menu-link-title-renew-your-membership">
+ <a href="https://action.aclu.org/give/renew-your-aclu-membership?cid=70136000001Ob7Z&amp;ms=menu_renew&amp;ms_aff=NAT&amp;ms_chan=web&amp;initms=menu_renew&amp;initms_aff=NAT&amp;initms_chan=web" class="sf-depth-2">Renew Your Membership</a>
+ </li>
+ <li id="menu-3831-1" class="middle even sf-item-4 sf-depth-2 sf-no-children menu-link-title-monthly-giving">
+ <a href="https://action.aclu.org/give/fight-back-against-attacks-our-civil-liberties?cid=70136000001OZf5&amp;ms=menu_monthly&amp;ms_aff=NAT&amp;ms_chan=web&amp;initms=menu_monthly&amp;initms_aff=NAT&amp;initms_chan=web" class="sf-depth-2">Monthly Giving</a>
+ </li>
+ <li id="menu-3832-1" class="last odd sf-item-5 sf-depth-2 sf-no-children menu-link-title-other-ways-to-give">
+ <a href="https://www.aclu.org/donate-aclu?ms=menu_other&amp;ms_aff=NAT&amp;ms_chan=web&amp;initms=menu_other&amp;initms_aff=NAT&amp;initms_chan=web" class="sf-depth-2">Other Ways to Give</a>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ </header>
+ <div id="navigation" role="navigation">
+ <div class="inner">
+ <div class="region region-navigation">
+ <div id="block-taxonomy-menu-block-2" class="block block-taxonomy-menu-block first odd">
+ <ul class="menu"></ul>
+ </div>
+ <div id="block-system-main-menu" class="block block-system block-menu last even" role="navigation">
+ <ul class="menu">
+ <li class="menu__item is-expanded first expanded">
+ <span id="main_menu-kyr" class="menu__link aclu_menu_expand-bbs_images nolink">Know your rights</span>
+ <div class="menu-panel">
+ <div class="inner">
+ <div class="inner-inner">
+ <div class="menu-panel-content">
+ <div class="item-list">
+ <ul>
+ <li class="first">
+ <a href="/know-your-rights" class="submenu-header">Know Your Rights</a>
+ </li>
+ <li>
+ <a href="https://www.aclu.org/know-your-rights/demonstrations-and-protests"><img src="https://www.aclu.org/sites/default/files/styles/blog_index_thumbnail_130x110/public/field_image/web16-kyr-featuredimg-560x480-v01.jpg?itok=d6YrpMuP" width="130" height="110" alt="" /> Demonstrations and Protests</a>
+ </li>
+ <li>
+ <a href="https://www.aclu.org/know-your-rights/know-your-rights-about-daca"><img src="https://www.aclu.org/sites/default/files/styles/blog_index_thumbnail_130x110/public/field_image/web17-dreamersconcerned-kyr-560x480.jpg?itok=F0bxbZUi" width="130" height="110" alt="" /> For DACA Recipients</a>
+ </li>
+ <li class="last">
+ <a href="https://www.aclu.org/know-your-rights/what-do-if-youre-stopped-police-immigration-agents-or-fbi"><img src="https://www.aclu.org/sites/default/files/styles/blog_index_thumbnail_130x110/public/field_image/kyr-stoppedbythepolice-560x480-v01.jpg?itok=TZ3ks829" width="130" height="110" alt="" /> What To Do If You're Stopped By Police</a>
+ </li>
+ </ul>
+ </div><a href="/know-your-rights" class="more">See all Know Your Rights</a>
+ </div>
+ <div class="menu-panel-bbs">
+ Do you know your rights? These easy-to-use resources were created by the ACLU so you can have your rights at your fingertips.
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="menu__item is-expanded expanded">
+ <span id="main_menu-dor" class="menu__link aclu_menu_expand-bbs nolink">Defending our rights</span>
+ <div class="menu-panel">
+ <div class="inner">
+ <div class="inner-inner">
+ <div class="menu-panel-content">
+ <ul class="menu">
+ <li class="menu__item is-leaf leaf">
+ <a href="/defending-our-rights" class="menu__link submenu-header">Defending Our Rights</a>
+ </li>
+ <li class="menu__item is-leaf leaf">
+ <a href="/defending-our-rights/court-battles" title="Court Battles" class="menu__link">Court Battles</a>
+ </li>
+ <li class="menu__item is-leaf leaf">
+ <a href="/defending-our-rights/court-battles/supreme-court" class="menu__link">Supreme Court Cases</a>
+ </li>
+ <li class="menu__item is-leaf leaf">
+ <a href="/issues/public-policy" class="menu__link">Federal Advocacy</a>
+ </li>
+ <li class="menu__item is-leaf last leaf">
+ <a href="/about/affiliates" class="menu__link">Find Your Local Affiliate</a>
+ </li>
+ </ul><a href="/defending-our-rights" class="more">Go to Defending Our Rights</a>
+ </div>
+ <div class="menu-panel-bbs">
+ The ACLU works tirelessly in courts, legislatures, and communities to defend and preserve the Constitution’s promise of liberty for everyone in our country.
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="menu__item is-expanded expanded">
+ <span id="main_menu-blogs" class="menu__link aclu_menu_expand-images nolink">Blogs</span>
+ <div class="menu-panel">
+ <div class="inner">
+ <div class="inner-inner">
+ <div class="menu-panel-container">
+ <h3>
+ <a href="/blog">Blogs</a>
+ </h3>
+ <div class="item-list">
+ <ul>
+ <li class="first">
+ <a href="https://www.aclu.org/blog/speak-freely"><img src="https://www.aclu.org/sites/default/files/styles/blog_index_thumbnail_130x110/public/field_banner_image/web18-siteimages-blog-speakfreely-2400x720-v02.jpg?itok=CGvxNq0e" width="130" height="110" alt="" /> Speak Freely</a>
+ </li>
+ <li>
+ <a href="https://www.aclu.org/blog/free-future"><img src="https://www.aclu.org/sites/default/files/styles/blog_index_thumbnail_130x110/public/field_banner_image/web15-siteimages-blog-ff-2400x960-v06_0.jpg?itok=Nfp3z-1K" width="130" height="110" alt="" /> Free Future</a>
+ </li>
+ <li class="last">
+ <a href="https://www.aclu.org/blog/washington-markup"><img src="https://www.aclu.org/sites/default/files/styles/blog_index_thumbnail_130x110/public/field_banner_image/web15-siteimages-blog-wshgtnmu-2400-960_5.jpg?itok=f7CaqQ76" width="130" height="110" alt="" /> Washington Markup</a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ <div class="menu-panel-container">
+ <h3>
+ <a href="/blog">Feeds</a>
+ </h3>
+ <div class="item-list">
+ <ul>
+ <li class="first">
+ <a href="https://www.aclu.org/blog-feed/editors-picks"><img src="https://www.aclu.org/sites/default/files/styles/blog_index_thumbnail_130x110/public/field_banner_image/web15-blog-editorspicks-2400x960_1.jpg?itok=1ognkSD7" width="130" height="110" alt="" /> Editor's Picks</a>
+ </li>
+ <li>
+ <a href="https://www.aclu.org/blog-feed/people-power"><img src="https://www.aclu.org/sites/default/files/styles/blog_index_thumbnail_130x110/public/field_banner_image/web17-siteimages-blog-peoplepower-2400x720-v01.jpg?itok=u0hNyyaH" width="130" height="110" alt="" /> People Power</a>
+ </li>
+ <li class="last">
+ <a href="https://www.aclu.org/blog-feed/breaking-news"><img src="https://www.aclu.org/sites/default/files/styles/blog_index_thumbnail_130x110/public/field_banner_image/web16-siteimages-blog-breakingnews-2400x720-rel02.jpg?itok=DDzAKoR7" width="130" height="110" alt="" /> Breaking News</a>
+ </li>
+ </ul>
+ </div>
+ </div><a href="/blog" class="more">See all blogs and feeds</a>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="menu__item is-expanded expanded">
+ <span id="main_menu-about" class="menu__link aclu_menu_expand-bbs nolink">About</span>
+ <div class="menu-panel">
+ <div class="inner">
+ <div class="inner-inner">
+ <div class="menu-panel-content">
+ <ul class="menu">
+ <li class="menu__item is-leaf leaf">
+ <a href="/about-aclu" class="menu__link submenu-header">About</a>
+ </li>
+ <li class="menu__item is-leaf leaf">
+ <a href="/about/leadership" class="menu__link">Leadership</a>
+ </li>
+ <li class="menu__item is-leaf leaf">
+ <a href="/about/aclu-history" class="menu__link">History</a>
+ </li>
+ <li class="menu__item is-leaf leaf">
+ <a href="/about/media" class="menu__link">Media</a>
+ </li>
+ <li class="menu__item is-leaf leaf">
+ <a href="/about/affiliates" class="menu__link">Local Affiliates</a>
+ </li>
+ <li class="menu__item is-leaf leaf">
+ <a href="/careers" class="menu__link">Careers</a>
+ </li>
+ <li class="menu__item is-leaf leaf">
+ <a href="/issues/aclu-ambassador-project" class="menu__link">Ambassadors</a>
+ </li>
+ <li class="menu__item is-leaf leaf">
+ <a href="/officers-board-directors" class="menu__link">Officers and Board</a>
+ </li>
+ <li class="menu__item is-leaf leaf">
+ <a href="/finances" class="menu__link">Financial Info and Reports</a>
+ </li>
+ <li class="menu__item is-leaf leaf">
+ <a href="/how-you-can-help" class="menu__link">How You Can Help</a>
+ </li>
+ <li class="menu__item is-leaf leaf">
+ <a href="/faqs" class="menu__link">FAQ</a>
+ </li>
+ <li class="menu__item is-leaf leaf">
+ <a href="/aclu-centers" class="menu__link">Centers</a>
+ </li>
+ <li class="menu__item is-leaf leaf">
+ <a href="/contact-us" class="menu__link">Contact Us</a>
+ </li>
+ </ul><a href="/about-aclu" class="more">Go to About the ACLU</a>
+ </div>
+ <div class="menu-panel-bbs">
+ For almost 100 years, the ACLU has worked to defend and preserve the individual rights and liberties guaranteed by the Constitution and laws of the United States.
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="menu__item is-leaf last leaf">
+ <a href="https://shop.aclu.org/?a=mainsite_nav" id="main_menu-shop" class="menu__link">Shop</a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="main">
+ <div id="content" class="column" role="main">
+ <div class="full-page-width">
+ <div class="inner">
+ <a id="main-content"></a>
+ <div class="region region-help">
+ <div id="block-blockify-blockify-messages" class="block block-blockify first last odd"></div>
+ </div>
+ </div>
+ </div>
+ <div class="panel-display panel-two-col-sidebar-right-mix">
+ <div class="panel-panel panel-header-full-bleed full-bleed">
+ <div class="panel-pane pane-aclu-blog-channel-header">
+ <a href="https://www.aclu.org/blog/free-future"><noscript class="adaptive-image" data-adaptive-image-breakpoints="480 768" data-adaptive-image-480-img="&lt;img class=&quot;adaptive-image&quot; data-adaptive-image-breakpoint=&quot;480&quot; src=&quot;https://www.aclu.org/sites/default/files/styles/blog_channel_header_small_480x63/public/field_banner_image/web15-siteimages-blog-ff-2400x960-v06_0.jpg?itok=Z5RaZm46&quot; width=&quot;480&quot; height=&quot;63&quot; alt=&quot;&quot; /&gt;" data-adaptive-image-768-img="&lt;img class=&quot;adaptive-image&quot; data-adaptive-image-breakpoint=&quot;768&quot; src=&quot;https://www.aclu.org/sites/default/files/styles/blog_channel_header_medium_768x100/public/field_banner_image/web15-siteimages-blog-ff-2400x960-v06_0.jpg?itok=IckmIOhh&quot; width=&quot;768&quot; height=&quot;100&quot; alt=&quot;&quot; /&gt;" data-adaptive-image-max-img="&lt;img class=&quot;adaptive-image&quot; data-adaptive-image-breakpoint=&quot;max&quot; src=&quot;https://www.aclu.org/sites/default/files/styles/blog_channel_header_wide_1200x100/public/field_banner_image/web15-siteimages-blog-ff-2400x960-v06_0.jpg?itok=bQHln3c_&quot; width=&quot;1200&quot; height=&quot;100&quot; alt=&quot;&quot; /&gt;"><img src="https://www.aclu.org/sites/default/files/styles/blog_channel_header_wide_1200x100/public/field_banner_image/web15-siteimages-blog-ff-2400x960-v06_0.jpg?itok=bQHln3c_" width="1200" height="100" alt="" /></noscript></a>
+ <div class="blog_channel_header--title text-large">
+ <a href="https://www.aclu.org/blog/free-future">Free Future</a>
+ </div>
+ </div>
+ </div>
+ <div class="panel-panel panel-full-width-1 full-page-width">
+ <div class="inner">
+ <div class="panel-pane pane-node-title">
+ <h1>
+ Facebook Is Tracking Me Even Though I’m Not on Facebook
+ </h1>
+ </div>
+ <div class="panel-pane pane-aclu-blog-byline">
+ <div class="blog-image">
+ <div class="field-image">
+ <img src="https://www.aclu.org/sites/default/files/styles/blog_author_54x46/public/biography-images/web16-dkg-final2.jpg?itok=yZxVPbHI" width="55" height="46" alt="" />
+ </div>
+ </div>
+ <div class="blog-author">
+ By <a href="/bio/daniel-kahn-gillmor">Daniel Kahn Gillmor</a>, Senior Staff Technologist, ACLU Speech, Privacy, and Technology Project
+ </div>
+ <div class="updated-date">
+ April 5, 2018 | 6:00 PM
+ </div>
+ </div>
+ <div class="panel-pane pane-aclu-components-issue-area related-issues">
+ <div class="issues-horizontal">
+ <span class="label">Tags</span>
+ <div class="item-list">
+ <ul>
+ <li class="first">
+ <a href="/search/%20?f%5B0%5D=field_issues%3A99&amp;f%5B1%5D=type%3Ablog">Internet Privacy</a>
+ </li>
+ <li>
+ <a href="/search/%20?f%5B0%5D=field_issues%3A98&amp;f%5B1%5D=type%3Ablog">Privacy &amp; Technology</a>
+ </li>
+ <li class="last">
+ <a href="/search/%20?f%5B0%5D=field_issues%3A125&amp;f%5B1%5D=type%3Ablog">Consumer Privacy</a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div class="panel-pane pane-aclu-components-share-icons share-icons">
+ <ul>
+ <li class="facebook">
+ <a href="https://www.facebook.com/v2.7/dialog/feed?app_id=782898798486624&amp;link=https%3A//www.aclu.org/blog/privacy-technology/internet-privacy/facebook-tracking-me-even-though-im-not-facebook&amp;name=Facebook%20Is%20Tracking%20Me%20Even%20Though%20I%E2%80%99m%20Not%20on%20Facebook&amp;redirect_uri=https%3A//www.aclu.org/blog/privacy-technology/internet-privacy/facebook-tracking-me-even-though-im-not-facebook" target="_blank" title="Submit this to Facebook">Facebook</a>
+ </li>
+ <li class="twitter">
+ <a href="http://twitter.com/intent/tweet?text=Facebook%20Is%20Tracking%20Me%20Even%20Though%20I%E2%80%99m%20Not%20on%20Facebook&amp;via=aclu&amp;title=Facebook%20Is%20Tracking%20Me%20Even%20Though%20I%E2%80%99m%20Not%20on%20Facebook&amp;url=https%3A//www.aclu.org/blog/privacy-technology/internet-privacy/facebook-tracking-me-even-though-im-not-facebook" target="_blank" title="Submit this to Twitter">Twitter</a>
+ </li>
+ <li class="reddit">
+ <a href="http://reddit.com/submit?title=Facebook%20Is%20Tracking%20Me%20Even%20Though%20I%E2%80%99m%20Not%20on%20Facebook%20%7C%20American%20Civil%20Liberties%20Union&amp;url=https%3A//www.aclu.org/blog/privacy-technology/internet-privacy/facebook-tracking-me-even-though-im-not-facebook" target="_blank" title="Submit this to Reddit">Reddit</a>
+ </li>
+ <li class="email">
+ <a href="mailto:?body=https%3A%2F%2Fwww.aclu.org%2Fblog%2Fprivacy-technology%2Finternet-privacy%2Ffacebook-tracking-me-even-though-im-not-facebook%0D%0A%0D%0AI%20don't%20use%20Facebook.%20I'm%20not%20technophobic%20%E2%80%94%20I'm%20a%20geek.%20I've%20been%20using%20email%20since%20the%20early%201990s,%20I%20have%20accounts%20on%20hundreds%20of%20services%20around%20the%20net,%20and%20I%20do%20software%20development%20and%20internet%20protocol%20design%20both%20for%20work%20and%20for%20fun.%20I%20believe%20that%20a%20globe-spanning%20communications%20network%20like%20the%20internet%20can%20be%20a%20positive%20social%20force,%20and%20I%20publish%20much%20of%20my%20own%20work%20on%20the%20open%20web.&amp;subject=Facebook%20Is%20Tracking%20Me%20Even%20Though%20I%E2%80%99m%20Not%20on%20Facebook%20%7C%20American%20Civil%20Liberties%20Union" target="_blank" title="Submit this to Email">Email</a>
+ </li>
+ <li class="print">
+ <a href="/print/node/67865" target="_blank" title="Submit this to Print">Print</a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div class="center-wrapper clearfix full-page-width">
+ <div class="inner">
+ <div class="panel-panel panel-main-3 content-column">
+ <div class="panel-pane pane-aclu-blog-multimedia">
+ <div class="node node-blog view-mode-blog_multimedia">
+ <div class="blog-multimedia--figure-caption">
+ <figure class="field-image">
+ <div id="file-39939" class="file file-image file-image-jpeg">
+ <h2 class="element-invisible">
+ <a href="/file/39939">WEB18-Facebook-1160x768.jpg</a>
+ </h2>
+ <div class="content">
+ <img src="https://www.aclu.org/sites/default/files/styles/blog_main_wide_580x384/public/field_image/web18-facebook-1160x768.jpg?itok=V5vZM_G3" width="580" height="384" alt="Cell phone with Facebook on it in front of blue data" />
+ </div>
+ </div>
+ </figure>
+ </div>
+ </div>
+ </div>
+ <div class="panel-pane pane-aclu-components-description description">
+ <p class="FirstParagraph">
+ I don't use Facebook. I'm not technophobic — I'm a geek. I've been using email since the early 1990s, I have accounts on hundreds of services around the net, and I do software development and internet protocol design both for work and for fun. I believe that a globe-spanning communications network like the internet can be a positive social force, and I publish much of my own work on the open web.
+ </p>
+ <p class="MsoBodyText">
+ But Facebook and other massive web companies represent a strong push toward unaccountable centralized social control, which I think makes our society more unequal and more unjust. The Cambridge Analytica scandal is one instance of this long-running problem with what I call the "surveillance economy." I don't want to submit to these power structures, and I don’t want my presence on such platforms to serve as bait that lures other people into the digital panopticon.
+ </p>
+ <p class="MsoBodyText">
+ But while I've never "opted in" to Facebook or any of the other big social networks, Facebook still has a detailed profile that can be used to target me. I've never consented to having Facebook collect my data, which can be used to draw very detailed inferences about my life, my habits, and my relationships. As we aim to take Facebook to task for its breach of user trust, we need to think about what its capabilities imply for society overall. After all, if you do #deleteFacebook, you'll find yourself in my shoes: non-consenting, but still subject to Facebook’s globe-spanning surveillance and targeting network.
+ </p>
+ <p class="MsoBodyText">
+ There are at least two major categories of information available to Facebook about non-participants like me: information from other Facebook users, and information from sites on the open web.
+ </p>
+ <h3 class="node-type-blog">
+ <strong>Information from other Facebook users</strong>
+ </h3>
+ <p class="FirstParagraph">
+ When you sign up for Facebook, it encourages you to upload your list of contacts so that the site can "find your friends." Facebook uses this contact information to learn about people, even if those people don't agree to participate. It also links people together based on who they know, even if the shared contact hasn't agreed to this use.
+ </p>
+ <p class="MsoBodyText">
+ For example, I received an email from Facebook that lists the people who have all invited me to join Facebook: my aunt, an old co-worker, a friend from elementary school, etc. This email includes names and email addresses — including my own name — and at least one <a href="https://en.wikipedia.org/wiki/Web_bug">web bug</a> designed to identify me to Facebook’s web servers when I open the email. Facebook records this group of people as my contacts, even though I've never agreed to this kind of data collection.
+ </p>
+ <p class="MsoBodyText">
+ Similarly, I'm sure that I'm in some photographs that someone has uploaded to Facebook — and I'm probably tagged in some of them. I've never agreed to this, but Facebook could still be keeping track.
+ </p>
+ <p class="MsoBodyText">
+ So even if you decide you need to join Facebook, remember that you might be giving the company information about someone else who didn't agree to be part of its surveillance platform.
+ </p>
+ <h3 class="node-type-blog">
+ <strong>Information from sites on the open Web</strong>
+ </h3>
+ <p class="FirstParagraph">
+ Nearly every website that you visit that has a "Like" button is actually encouraging your browser to tell Facebook about your browsing habits. Even if you don't click on the "Like" button, displaying it requires your browser to send a request to Facebook's servers for the "Like" button itself. That request includes <a href="https://en.wikipedia.org/wiki/HTTP_referer">information</a> mentioning the name of the page you are visiting and any Facebook-specific <a href="https://en.wikipedia.org/wiki/HTTP_cookie">cookies</a> your browser might have collected. (See <a href="https://www.facebook.com/help/186325668085084">Facebook's own description of this process</a>.) This is called a "third-party request."
+ </p>
+ <p class="MsoBodyText">
+ This makes it possible for Facebook to create a detailed picture of your browsing history — even if you've never even visited Facebook directly, let alone signed up for a Facebook account.
+ </p>
+ <p class="MsoBodyText">
+ Think about most of the web pages you've visited — how many of them <em>don't</em> have a "Like" button? If you administer a website and you include a "Like" button on every page, you're helping Facebook to build profiles of your visitors, even those who have opted out of the social network. Facebook’s <a href="https://developers.facebook.com/docs/plugins/">“Share” buttons</a> on other sites — along with <a href="https://www.facebook.com/business/learn/facebook-ads-pixel">other tools</a> — work a bit differently from the “Like” button, but do effectively the same thing.
+ </p>
+ <p class="MsoBodyText">
+ The profiles that Facebook builds on non-users don't necessarily include so-called "personally identifiable information" (PII) like names or email addresses. But they do include fairly unique patterns. Using <a href="https://dev.chromium.org/for-testers/providing-network-details">Chromium's NetLog dumping</a>, I performed a simple five-minute browsing test last week that included visits to various sites — but not Facebook. In that test, the PII-free data that was sent to Facebook included information about which news articles I was reading, my dietary preferences, and my hobbies.
+ </p>
+ <p class="MsoBodyText">
+ Given the precision of this kind of mapping and targeting, "PII" isn’t necessary to reveal my identity. How many vegans examine specifications for computer hardware from the ACLU's offices while reading about Cambridge Analytica? Anyway, if Facebook combined that information with the "web bug" from the email mentioned above — which <em>is</em> clearly linked to my name and e-mail address — no guesswork would be required.
+ </p>
+ <p class="MsoBodyText">
+ I'd be shocked if Facebook were not connecting those dots given the goals <a href="https://www.facebook.com/about/privacy/cookies">they claim for data collection</a>:
+ </p>
+ <blockquote>
+ <p class="MsoBlockText">
+ We use the information we have to improve our advertising and measurement systems so we can show you relevant ads on and off our Services and measure the effectiveness and reach of ads and services.
+ </p>
+ </blockquote>
+ <p class="FirstParagraph">
+ This is, in essence, exactly what Cambridge Analytica did.
+ </p>
+ <h3 class="node-type-blog">
+ <strong>Consent</strong>
+ </h3>
+ <p class="FirstParagraph">
+ Facebook and other tech companies often deflect accusations against excessive data collection by arguing "consent" — that they harvest and use data with the consent of the users involved.
+ </p>
+ <p class="MsoBodyText">
+ But even if we accept that clicking through a "Terms of Service" that <a href="https://tosdr.org/">no one reads</a> can actually constitute true consent, even if we ignore the fact that these terms are overwhelmingly one-sided and non-negotiable, and even if we accept that it's meaningful for people to give consent when sharing data about other people who may have also opted in — what is the recourse for someone who has not opted into these systems at all?
+ </p>
+ <p class="MsoBodyText">
+ Are those of us who have explicitly avoided agreeing to the Facebook terms of service simply fair game for an industry-wide surveillance and targeting network?
+ </p>
+ <h3 class="node-type-blog">
+ <strong>Privilege</strong>
+ </h3>
+ <p class="FirstParagraph">
+ I don’t mean to critique people who have created a Facebook profile or suggest they deserve whatever they get.
+ </p>
+ <p class="MsoBodyText">
+ My ability to avoid Facebook comes from privilege — I have existing social contacts with whom I know how to stay in touch without using Facebook's network. My job does not require that I use Facebook. I can afford the time and expense to communicate with my electoral representatives and political allies via other channels.
+ </p>
+ <p class="MsoBodyText">
+ Many people do not have these privileges and are compelled to "opt in" on Facebook's non-negotiable terms.
+ </p>
+ <p class="MsoBodyText">
+ Many journalists, organizers, schools, politicians, and others who have good reasons to oppose Facebook's centralized social control feel compelled by Facebook's reach and scale to participate in their practices, even those we know to be harmful. That includes the ACLU.
+ </p>
+ <p class="MsoBodyText">
+ Privacy should not be a luxury good, and while I'm happy to encourage people to opt out of these subtle and socially fraught arrangements, I do not argue that anyone who has signed up has somehow relinquished concerns about their privacy. We need to evaluate privacy concerns in their full social contexts. These are not problems that can be resolved on an individual level, because of the interpersonal nature of much of this data and the complexities of the tradeoffs involved.
+ </p>
+ <h3 class="node-type-blog">
+ <strong>Technical countermeasures</strong>
+ </h3>
+ <p class="FirstParagraph">
+ While they may not solve the problem, there are some technical steps people can take to limit the scope of these surveillance practices. For example, some web browsers do not send "third-party cookies" by default, or <a href="https://wiki.mozilla.org/Thirdparty">they scope cookies</a> so that centralized surveillance doesn't get a single view of one user. The most privacy-preserving modern browser is <a href="https://www.torproject.org/">the Tor Browser</a>, which everyone should have installed and available, even if it's not the browser they choose to use every day. It limits the surveillance ability of systems that you have not signed up for to track you as you move around the web.
+ </p>
+ <p class="MsoBodyText">
+ You can also modify some browsers — for example, with plug-ins for <a href="https://requestpolicycontinued.github.io/">Firefox</a> and <a href="https://chrome.google.com/webstore/detail/umatrix/ogfcmafjalglgifnmanfmnieipoejdcf">Chrome</a> — so that they <a href="https://addons.mozilla.org/en-US/firefox/addon/umatrix/">do not send third-party</a> <a href="https://requestpolicycontinued.github.io/">requests at all</a>. Firefox is also exploring even more <a href="https://addons.mozilla.org/en-US/firefox/addon/multi-account-containers/">privacy-preserving techniques</a><a href="https://addons.mozilla.org/en-US/firefox/addon/multi-account-containers/">.</a>
+ </p>
+ <p class="MsoBodyText">
+ It can’t be denied, though, that these tools are harder to use than the web browsers most people are accustomed to, and they create barriers to some online activities. (For example, logging in to <a href="https://offcampushousing.uconn.edu/login">some sites</a> and accessing some <a href="https://filestore.community.support.microsoft.com/api/images/0253d8fb-b050-401a-834d-9d80a99c0b12">web applications</a> is impossible without third-party cookies.)
+ </p>
+ <p class="MsoBodyText">
+ Some website operators take their visitors' privacy more seriously than others, by reducing the amount of third-party requests. For example, it's possible to display "share on Facebook" or "Like" buttons without sending user requests to Facebook in the first place. The ACLU's own website does this because we believe that the right to read with privacy is a fundamental protection for civic discourse.
+ </p>
+ <p class="MsoBodyText">
+ If you are responsible for running a website, try browsing it with a third-party-blocking extension turned on. Think about how much information you're requiring your users to send to third parties as a condition for using your site. If you care about being a good steward of your visitors' data, you can re-design your website to reduce this kind of leakage.
+ </p>
+ <h3 class="node-type-blog">
+ <strong>Opting out?</strong>
+ </h3>
+ <p class="MsoBodyText">
+ Some advertisers claim that you can "opt out" of their targeted advertising, and even offer <a href="http://optout.aboutads.info/">a centralized place meant to help you do so</a>.&nbsp;However, my experience with these tools isn't a positive one. They don't appear to work all of the time. (In a recent experiment I conducted, two advertisers’ opt-out mechanisms failed to take effect.) And while advertisers claim to allow the user to opt out of "interest-based ads," it's not clear that the opt-outs govern data collection itself, rather than just the use of the collected data for displaying ads. Moreover, opting out on their terms requires the use of third-party cookies, thereby enabling another mechanism that other advertisers can then exploit.
+ </p>
+ <p class="MsoBodyText">
+ It's also not clear how they function over time: How frequently do I need to take these steps? Do they expire? How often should I check back to make sure I’m still opted out? I'd much prefer an approach requiring me to opt <em>in</em> to surveillance and targeting.
+ </p>
+ <h3 class="node-type-blog">
+ <strong>Fix the surveillance economy, not just Facebook</strong>
+ </h3>
+ <p class="FirstParagraph">
+ These are just a few of the mechanisms that enable online tracking. Facebook is just one culprit in this online "surveillance economy," albeit a massive one — the company owns <a href="https://www.instagram.com/">Instagram</a>, <a href="https://atlassolutions.com/">Atlas</a>, <a href="https://www.whatsapp.com/">WhatsApp</a>, and dozens of other internet and technology companies and services. But it’s not the only player in this space. Google’s business model also relies on this kind of surveillance, and there are dozens of smaller players as well.
+ </p>
+ <p class="MsoBodyText">
+ As we work to address the fallout from the current storm around Facebook and Cambridge Analytica, we can't afford to lose sight of these larger mechanisms at play. Cambridge Analytica's failures and mistakes are inherent to Facebook's business model. We need to seriously challenge the social structures that encourage people to opt in to this kind of surveillance. At the same time, we also need to protect those of us who manage to opt out.
+ </p>
+ </div>
+ <div class="panel-pane pane-aclu-social-comments">
+ <div class="comments comment-wrapper">
+ <div class="comments-header">
+ <span class="title">View comments</span> (27)
+ </div>
+ <div class="content">
+ <div class="terms">
+ <div class="terms-title read-comments-tou">
+ Read the Terms of Use
+ </div>
+ <div class="terms-content comments-tou"></div>
+ </div>
+ <div id="comments">
+ <form class="comment-form" action="/comment/reply/67865" method="post" id="comment-form" accept-charset="UTF-8" name="comment-form">
+ <div>
+ <div class="form-item form-type-textfield form-item-name">
+ <label for="edit-name">Your name <span class="form-required" title="This field is required.">*</span></label> <input type="text" id="edit-name" name="name" value="Anonymous" size="30" maxlength="60" class="form-text required" />
+ </div>
+ <div class="field-type-text-long field-name-comment-body field-widget-text-textarea form-wrapper" id="edit-comment-body">
+ <div id="comment-body-add-more-wrapper">
+ <div class="text-format-wrapper">
+ <div class="form-item form-type-textarea form-item-comment-body-und-0-value">
+ <label for="edit-comment-body-und-0-value">Comment <span class="form-required" title="This field is required.">*</span></label>
+ <div class="form-textarea-wrapper resizable">
+ <textarea class="text-full form-textarea required" id="edit-comment-body-und-0-value" name="comment_body[und][0][value]" cols="60" rows="5"></textarea>
+ </div>
+ </div>
+ <fieldset class="filter-wrapper hide-filter-formats collapsible collapsed form-wrapper" id="edit-comment-body-und-0-format">
+ <legend><span class="fieldset-legend">Text formats options</span></legend>
+ <div class="fieldset-wrapper">
+ <div class="filter-help form-wrapper" id="edit-comment-body-und-0-format-help">
+ <p>
+ <a href="/filter/tips" target="_blank">More information about text formats</a>
+ </p>
+ </div>
+ <div class="form-item form-type-select form-item-comment-body-und-0-format">
+ <label for="edit-comment-body-und-0-format--2">Text format</label> <select class="filter-list form-select" id="edit-comment-body-und-0-format--2" name="comment_body[und][0][format]">
+ <option value="basic_html" selected="selected">
+ Basic HTML
+ </option>
+ <option value="plain_text">
+ Plain text
+ </option>
+ </select>
+ </div>
+ <div class="filter-guidelines form-wrapper" id="edit-comment-body-und-0-format-guidelines">
+ <div class="filter-guidelines-item filter-guidelines-basic_html">
+ <h3>
+ Basic HTML
+ </h3>
+ <ul class="tips">
+ <li>Allowed HTML tags: &lt;em&gt; &lt;strong&gt; &lt;blockquote&gt; &lt;cite&gt; &lt;p&gt; &lt;br&gt; &lt;ol&gt; &lt;ul&gt; &lt;li&gt;
+ </li>
+ <li>Lines and paragraphs break automatically.
+ </li>
+ </ul>
+ </div>
+ <div class="filter-guidelines-item filter-guidelines-plain_text">
+ <h3>
+ Plain text
+ </h3>
+ <ul class="tips">
+ <li>No HTML tags allowed.
+ </li>
+ <li>Web page addresses and e-mail addresses turn into links automatically.
+ </li>
+ <li>Lines and paragraphs break automatically.
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </fieldset>
+ </div>
+ </div>
+ </div><input type="hidden" name="form_build_id" value="form-6Q08FDAfOeXeEl3Vz8dgdmuvc04IXpGWXoiLVB015DU" /> <input type="hidden" name="form_id" value="comment_node_blog_form" />
+ <div class="form-actions form-wrapper" id="edit-actions">
+ <input type="submit" id="edit-submit" name="op" value="Add comment" class="form-submit" />
+ </div>
+ <div class="aclu-name-textfield">
+ <div class="form-item form-type-textfield form-item-aclu-name">
+ <label for="edit-aclu-name">Leave this field blank</label> <input autocomplete="off" type="text" id="edit-aclu-name" name="aclu-name" value="" size="20" maxlength="128" class="form-text" />
+ </div>
+ </div>
+ </div>
+ </form><a id="comments-top" class="top"></a> <a id="comment-223379"></a>
+ <div class="clear-block comment comment comment-by-anonymous first odd clearfix">
+ <div class="comment-content">
+ <div class="content">
+ <h3 class="name">
+ <span class="username">Anonymous</span>
+ </h3>
+ <div class="field-comment-body text-area">
+ <p>
+ One valuable reform would be to mandate, under penalty of felony, that anyone that searches your information has to notify you - to include private investigotors screening potential employers to police officers trolling your online profile. It would be a great consumer protection.
+ </p>
+ <p>
+ For example: if you lost the job offer due to your Facebook post, the employer should be required to tell you that. If you got pulled over and ticketed because you "Liked" police body cameras on FB you should know that also.
+ </p>
+ <p>
+ The real danger is allowing punitive actions, in retaliation of your Free Speech to be hidden from us. If someone is spying on us, bypassing privacy filters, without a judicial warrant - we should know that.
+ </p>
+ </div>
+ </div>
+ </div>
+ <div class="meta">
+ <ul class="links inline">
+ <li class="comment-reply first">
+ <a href="/comment/reply/67865/223379">reply</a>
+ </li>
+ <li class="date">
+ <span>April 5, 2018</span>
+ </li>
+ <li class="time last">
+ <span>6:32 PM</span>
+ </li>
+ </ul>
+ </div>
+ </div><a id="comment-223395"></a>
+ <div class="clear-block comment comment comment-by-anonymous even clearfix">
+ <div class="comment-content">
+ <div class="content">
+ <h3 class="name">
+ <span class="username">Lars</span>
+ </h3>
+ <div class="field-comment-body text-area">
+ <p>
+ Couldn’t I just bloc facebook in my private filer (squid filter)?
+ </p>
+ </div>
+ </div>
+ </div>
+ <div class="meta">
+ <ul class="links inline">
+ <li class="comment-reply first">
+ <a href="/comment/reply/67865/223395">reply</a>
+ </li>
+ <li class="date">
+ <span>April 6, 2018</span>
+ </li>
+ <li class="time last">
+ <span>2:20 AM</span>
+ </li>
+ </ul>
+ </div>
+ </div><a id="comment-223408"></a>
+ <div class="clear-block comment comment comment-by-anonymous odd clearfix">
+ <div class="comment-content">
+ <div class="content">
+ <h3 class="name">
+ <span class="username">Anonymous</span>
+ </h3>
+ <div class="field-comment-body text-area">
+ <p>
+ privacy badger is also a good plugin to mention
+ </p>
+ </div>
+ </div>
+ </div>
+ <div class="meta">
+ <ul class="links inline">
+ <li class="comment-reply first">
+ <a href="/comment/reply/67865/223408">reply</a>
+ </li>
+ <li class="date">
+ <span>April 6, 2018</span>
+ </li>
+ <li class="time last">
+ <span>12:13 PM</span>
+ </li>
+ </ul>
+ </div>
+ </div><a id="comment-223409"></a>
+ <div class="clear-block comment comment comment-by-anonymous even clearfix">
+ <div class="comment-content">
+ <div class="content">
+ <h3 class="name">
+ <span class="username">Anonymous</span>
+ </h3>
+ <div class="field-comment-body text-area">
+ <p>
+ The U.S. Justice Department and U.S. Congress - more than a decade behind schedule - still haven't reconciled the "Joseph Nacchio" case. Nacchio's telecommunications company, Qwest Communications, was apparently the one and only telecommunications company that refused to participate in the felony crime of Warrantless Wire-tapping around February of 2001 (roughly 6 months BEFORE 9/11 when no wartime emergency existed)., being pressured by the Bush Administration to commit a felony under federal law.
+ </p>
+ <p>
+ Congress then passed an ex post facto law - illegal under Article I of the U.S. Constitution - making those past felonies legal. Congress has no such authority under Article VI.
+ </p>
+ <p>
+ Joseph Nacchio claims he was then indicted by the U.S. Department of Justice - on trumped up charges - and served a few years in federal prison. A CEO of a large American corporation was sent to prison for COMPLYING with federal wiretaping laws. The Washington Post ran a story after Nacchio was released from prison, he still claims to this day that he went to prison for not participating in Bush felony crimes.
+ </p>
+ <p>
+ What is to prevent a future lawless Executive Branch from pressuring Facebook or other social media networks to also bypass Judicial Warrants? If an honest U.S. Attorney or state prosecutor started indicting the former Bush folks, it would create a powerful "deterrent effect" to lawless officials in the future.
+ </p>
+ </div>
+ </div>
+ </div>
+ <div class="meta">
+ <ul class="links inline">
+ <li class="comment-reply first">
+ <a href="/comment/reply/67865/223409">reply</a>
+ </li>
+ <li class="date">
+ <span>April 6, 2018</span>
+ </li>
+ <li class="time last">
+ <span>12:23 PM</span>
+ </li>
+ </ul>
+ </div>
+ </div><a id="comment-223419"></a>
+ <div class="clear-block comment comment comment-by-anonymous odd clearfix">
+ <div class="comment-content">
+ <div class="content">
+ <h3 class="name">
+ <span class="username">Anonymous</span>
+ </h3>
+ <div class="field-comment-body text-area">
+ <p>
+ There is strong circumstantial evidence that "Post 9/11 Blacklisting" of U.S. citizens is still alive and well. Maybe the most dangerous blacklisting tactic is "Employment Tampering". It basically means if you were blacklisted after 9/11, you may not be allowed to work in certain occupations. The Government essentially decides where you are allowed work, without an official hearing by judge - blacklistees are never informed of their 2nd Class status as Americans - not entitled to the same rights as other Americans.
+ </p>
+ <p>
+ "Employment Tampering" by government officials/contractors - which violates Title 18 US Code 242 - is one of the hardest blacklisting tactics for federal prosecutors to police. We may even need a new federal watchdog agency to properly police this felony crime by officials.
+ </p>
+ <p>
+ Maybe the most famous case, was exposed by a federal appeals court that severely reprimanded former Attorney General John Ashcroft (although he was never criminally indicted). Ashcroft grossly and fraudulently exploited the federal "Material Witness Statute" to be used as a quasi form of imprisonment and involntary servitude. The 13th Amendment makes this practice totally illegal without an official and overt constitutional due process.
+ </p>
+ <p>
+ This tactic has a long history in authoritarian regimes. It was originally called "Zersetzung" and was first used in 1940's Germany during World War Two to silence dissent. During the Cold War, this tactic was adopted by then Communist East Germany. The FBI started using it in the 1950's commonly called Cointelpro tactics. Ashcroft then exploited the Material Witness Statute to be used as a Zersetzung tactic. Employment Tampering was probably the most potent tactic.
+ </p>
+ </div>
+ </div>
+ </div>
+ <div class="meta">
+ <ul class="links inline">
+ <li class="comment-reply first">
+ <a href="/comment/reply/67865/223419">reply</a>
+ </li>
+ <li class="date">
+ <span>April 6, 2018</span>
+ </li>
+ <li class="time last">
+ <span>2:35 PM</span>
+ </li>
+ </ul>
+ </div>
+ </div><a id="comment-223421"></a>
+ <div class="clear-block comment comment comment-by-anonymous even clearfix">
+ <div class="comment-content">
+ <div class="content">
+ <h3 class="name">
+ <span class="username">Anonymous</span>
+ </h3>
+ <div class="field-comment-body text-area">
+ <p>
+ This was the most elightening piece on Facebook Ive seen of late.
+ </p>
+ <p>
+ Hate their format, so don't use it.
+ </p>
+ </div>
+ </div>
+ </div>
+ <div class="meta">
+ <ul class="links inline">
+ <li class="comment-reply first">
+ <a href="/comment/reply/67865/223421">reply</a>
+ </li>
+ <li class="date">
+ <span>April 6, 2018</span>
+ </li>
+ <li class="time last">
+ <span>3:12 PM</span>
+ </li>
+ </ul>
+ </div>
+ </div>
+ <div class="indented">
+ <a id="comment-223672"></a>
+ <div class="clear-block comment comment comment-by-anonymous odd clearfix">
+ <div class="comment-content">
+ <div class="content">
+ <h3 class="name">
+ <span class="username">Anonymous</span>
+ </h3>
+ <div class="field-comment-body text-area">
+ <p>
+ Didn't you read the article? You might not use it, but they still know all about you, even including name, address, phone number, etc. if you are in someone's contacts.
+ </p>
+ <p>
+ Ironically, by refusing to register with them as a user, you have no control at all over the collection and usage of your data and information. At least users have some little control over it.
+ </p>
+ </div>
+ </div>
+ </div>
+ <div class="meta">
+ <ul class="links inline">
+ <li class="date first">
+ <span>April 10, 2018</span>
+ </li>
+ <li class="time last">
+ <span>10:14 PM</span>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div><a id="comment-223424"></a>
+ <div class="clear-block comment comment comment-by-anonymous even clearfix">
+ <div class="comment-content">
+ <div class="content">
+ <h3 class="name">
+ <span class="username">Ed B. -Netherlands</span>
+ </h3>
+ <div class="field-comment-body text-area">
+ <p>
+ Well written, well-thought article. I agree with the content. Although I hate regulation in general, it seems about time that website should be required to offer a cookie free, traceless version at all times.
+ </p>
+ </div>
+ </div>
+ </div>
+ <div class="meta">
+ <ul class="links inline">
+ <li class="comment-reply first">
+ <a href="/comment/reply/67865/223424">reply</a>
+ </li>
+ <li class="date">
+ <span>April 6, 2018</span>
+ </li>
+ <li class="time last">
+ <span>5:29 PM</span>
+ </li>
+ </ul>
+ </div>
+ </div>
+ <div class="indented">
+ <a id="comment-223761"></a>
+ <div class="clear-block comment comment comment-by-anonymous odd clearfix">
+ <div class="comment-content">
+ <div class="content">
+ <h3 class="name">
+ <span class="username">Anonymous</span>
+ </h3>
+ <div class="field-comment-body text-area">
+ <p>
+ HTTP is stateless. That means that when you click on a link to another page, the second page doesn't know that you were the person on page 1. Cookies, or some form of tracking, are needed for things like eCommerce and shopping carts. You need a cookie to associate *you* with your cart. Anything where you log in needs a cookie in order to know you are you, such as subscriptions.
+ </p>
+ <p>
+ However, those cookies can easily be "session cookies". That is, cookies that don't persist after you log out or close your web browser. They exists solely for the duration of your session, and do not persist.
+ </p>
+ <p>
+ Cookies are only an association mechanism. The heart of the problem is the harvesting of every click and everything on a page -- the over-collection of data to begin with.
+ </p>
+ </div>
+ </div>
+ </div>
+ <div class="meta">
+ <ul class="links inline">
+ <li class="date first">
+ <span>April 11, 2018</span>
+ </li>
+ <li class="time last">
+ <span>2:51 PM</span>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div><a id="comment-223425"></a>
+ <div class="clear-block comment comment comment-by-anonymous even clearfix">
+ <div class="comment-content">
+ <div class="content">
+ <h3 class="name">
+ <span class="username">Anonymous</span>
+ </h3>
+ <div class="field-comment-body text-area">
+ <p>
+ Great article.
+ </p>
+ </div>
+ </div>
+ </div>
+ <div class="meta">
+ <ul class="links inline">
+ <li class="comment-reply first">
+ <a href="/comment/reply/67865/223425">reply</a>
+ </li>
+ <li class="date">
+ <span>April 6, 2018</span>
+ </li>
+ <li class="time last">
+ <span>5:42 PM</span>
+ </li>
+ </ul>
+ </div>
+ </div>
+ <h2 class="element-invisible">
+ Pages
+ </h2>
+ <div class="item-list">
+ <ul class="pager">
+ <li class="pager-current first">1
+ </li>
+ <li class="pager-item">
+ <a title="Go to page 2" href="/blog/privacy-technology/internet-privacy/facebook-tracking-me-even-though-im-not-facebook?page=1">2</a>
+ </li>
+ <li class="pager-item">
+ <a title="Go to page 3" href="/blog/privacy-technology/internet-privacy/facebook-tracking-me-even-though-im-not-facebook?page=2">3</a>
+ </li>
+ <li class="pager-next">
+ <a href="/blog/privacy-technology/internet-privacy/facebook-tracking-me-even-though-im-not-facebook?page=1">next</a>
+ </li>
+ <li class="pager-last last">
+ <a title="Go to last page" href="/blog/privacy-technology/internet-privacy/facebook-tracking-me-even-though-im-not-facebook?page=2">last »</a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="panel-panel panel-right-3 sidebar-right">
+ <div class="panel-pane pane-fieldable-panels-pane pane-fpid-1005 pane-bundle-donation-promo">
+ <a href="https://action.aclu.org/secure/donate-to-aclu?ms=donate_bo&amp;ms_aff=NAT&amp;ms_chan=web&amp;initms=donate_bo&amp;initms_aff=NAT&amp;initms_chan=web" title="Donate Now" target="_blank" class="promo-link" alt="Donate Now">
+ <div class="fieldable-panels-pane">
+ <div class="field-promo-text">
+ Fight for everyone's rights - support the ACLU.
+ </div>
+ <div class="field-button-url">
+ Donate Now
+ </div>
+ </div></a>
+ </div>
+ <div class="panel-pane pane-aclu-blog-news-signup">
+ <div class="inner">
+ <div class="pane-title">
+ Sign Up For Breaking News <span>Alerts</span>
+ </div><a href="" class="close">Close</a>
+ <form action="/blog/privacy-technology/internet-privacy/facebook-tracking-me-even-though-im-not-facebook" method="post" id="aclu-social-signup-form" accept-charset="UTF-8" name="aclu-social-signup-form">
+ <div>
+ <div class="form-item form-type-textfield form-item-signup-email">
+ <label class="element-invisible" for="edit-signup-email">Email Address <span class="form-required" title="This field is required.">*</span></label> <input placeholder="Your email address" type="text" id="edit-signup-email" name="signup_email" value="" size="60" maxlength="128" class="form-text required" />
+ </div>
+ <div class="form-item form-type-textfield form-item-signup-zip">
+ <label class="element-invisible" for="edit-signup-zip">ZIP Code <span class="form-required" title="This field is required.">*</span></label> <input placeholder="ZIP code" type="text" id="edit-signup-zip" name="signup_zip" value="" size="60" maxlength="128" class="form-text required" />
+ </div><input type="hidden" name="location" value="blog_sidebar" /> <input type="submit" id="edit-submit--2" name="op" value="Go" class="form-submit" /><input type="hidden" name="form_build_id" value="form-V-iFbwGg1bnlbXW0i278HSQfREJVQ4S38pbnJL9sWao" /> <input type="hidden" name="form_id" value="aclu_social_signup_form" />
+ </div>
+ </form>
+ </div>
+ </div>
+ <div class="panel-pane pane-featured-action">
+ <article class="node-67524 node node-action view-mode-featured_action action-background-style-featured_image clearfix component action featured-action">
+ <div class="inner">
+ <header>
+ <h2 class="node__title node-title">
+ <a href="https://action.aclu.org/send-message/restore-net-neutrality-protections?ms_aff=NAT&amp;initms_aff=NAT&amp;ms=180307_freespeech_messageaction_&amp;initms=180307_freespeech_messageaction_&amp;ms_chan=web&amp;initms_chan=web"><span>Restore Net Neutrality Protections</span></a>
+ </h2>
+ </header>
+ <div class="field-image">
+ <a href="https://action.aclu.org/send-message/restore-net-neutrality-protections?ms_aff=NAT&amp;initms_aff=NAT&amp;ms=180307_freespeech_messageaction_&amp;initms=180307_freespeech_messageaction_&amp;ms_chan=web&amp;initms_chan=web"><img src="https://www.aclu.org/sites/default/files/styles/action_sidebar_wide_280x240/public/field_image/act17-netneutrality-rebrand-2400x960-v01.jpg?itok=f1Ixpcsw" width="280" height="240" alt="" /></a>
+ </div>
+ <div class="field-action-link">
+ <div class="field-items">
+ <div class="field-item even">
+ <!-- Adding an arrow span next to link --><a href="https://action.aclu.org/send-message/restore-net-neutrality-protections?ms_aff=NAT&amp;initms_aff=NAT&amp;ms=180307_freespeech_messageaction_&amp;initms=180307_freespeech_messageaction_&amp;ms_chan=web&amp;initms_chan=web">Send a message now</a>
+ </div>
+ </div>
+ </div>
+ </div>
+ </article>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="panel-panel panel-full-width-2 full-page-width">
+ <div class="inner">
+ <div class="panel-pane pane-aclu-blog-related-stories">
+ <div class="component featured-stories">
+ <div class="pane-title">
+ Related Stories
+ </div>
+ <div class="scrollbar-swiper">
+ <div class="window">
+ <article class="has-image">
+ <a href="/blog/privacy-technology/internet-privacy/staying-safe-when-you-say-metoo">
+ <figure class="field-image">
+ <img src="https://www.aclu.org/sites/default/files/styles/blog_index_thumbnail_130x110/public/field_image/blog7-1160x768.png?itok=WL14QDmD" width="130" height="110" alt="" />
+ </figure></a>
+ <h3>
+ <a href="/blog/privacy-technology/internet-privacy/staying-safe-when-you-say-metoo">Staying Safe When You Say #MeToo</a>
+ </h3><span class="date">February 12, 2018</span>
+ </article>
+ <article class="has-image">
+ <a href="/blog/privacy-technology/internet-privacy/why-youtube-shouldnt-over-rely-artificial-intelligence">
+ <figure class="field-image">
+ <img src="https://www.aclu.org/sites/default/files/styles/blog_index_thumbnail_130x110/public/field_image/web18-robothandcomputer-1160x768.jpg?itok=L6wAQaKN" width="130" height="110" alt="" />
+ </figure></a>
+ <h3>
+ <a href="/blog/privacy-technology/internet-privacy/why-youtube-shouldnt-over-rely-artificial-intelligence">Why YouTube Shouldn’t Over-Rely on Artificial Intelligence to Police Its...</a>
+ </h3><span class="date">April 26, 2018</span>
+ </article>
+ <article class="has-image">
+ <a href="/blog/privacy-technology/internet-privacy/8-questions-members-congress-should-ask-mark-zuckerberg">
+ <figure class="field-image">
+ <img src="https://www.aclu.org/sites/default/files/styles/blog_index_thumbnail_130x110/public/field_image/web18-qsforzuckerberg-1160x768-v01.jpg?itok=npeL5qrf" width="130" height="110" alt="" />
+ </figure></a>
+ <h3>
+ <a href="/blog/privacy-technology/internet-privacy/8-questions-members-congress-should-ask-mark-zuckerberg">8 Questions Members of Congress Should Ask Mark Zuckerberg</a>
+ </h3><span class="date">April 2, 2018</span>
+ </article>
+ <article class="has-image">
+ <a href="/blog/national-security/privacy-and-surveillance/how-irish-court-ruling-could-affect-us-spying">
+ <figure class="field-image">
+ <img src="https://www.aclu.org/sites/default/files/styles/blog_index_thumbnail_130x110/public/field_image/web17-servers3-1160x768.jpg?itok=7QKUv8Zx" width="130" height="110" alt="" />
+ </figure></a>
+ <h3>
+ <a href="/blog/national-security/privacy-and-surveillance/how-irish-court-ruling-could-affect-us-spying">How an Irish Court Ruling Could Affect U.S. Spying</a>
+ </h3><span class="date">April 20, 2018</span>
+ </article>
+ <article class="has-image">
+ <a href="/blog/privacy-technology/internet-privacy/landmark-european-law-could-change-facebook-and-improve">
+ <figure class="field-image">
+ <img src="https://www.aclu.org/sites/default/files/styles/blog_index_thumbnail_130x110/public/field_image/web18-fb-gdpr-1160x768.jpg?itok=5CbfDCXk" width="130" height="110" alt="" />
+ </figure></a>
+ <h3>
+ <a href="/blog/privacy-technology/internet-privacy/landmark-european-law-could-change-facebook-and-improve">The Landmark European Law That Could Change Facebook and Improve Privacy in...</a>
+ </h3><span class="date">April 12, 2018</span>
+ </article>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="block-aclu-social-stay-informed" class="block block-aclu-social last even">
+ <div class="inner">
+ <div class="inner-inner">
+ <h2 class="block__title block-title">
+ Stay Informed
+ </h2>
+ <form action="/blog/privacy-technology/internet-privacy/facebook-tracking-me-even-though-im-not-facebook" method="post" id="aclu-social-signup-form--3" accept-charset="UTF-8" name="aclu-social-signup-form--3">
+ <div>
+ <div class="form-item form-type-textfield form-item-signup-email">
+ <label class="element-invisible" for="edit-signup-email--3">Email Address <span class="form-required" title="This field is required.">*</span></label> <input placeholder="Your email address" type="text" id="edit-signup-email--3" name="signup_email" value="" size="60" maxlength="128" class="form-text required" />
+ </div>
+ <div class="form-item form-type-textfield form-item-signup-zip">
+ <label class="element-invisible" for="edit-signup-zip--3">ZIP Code <span class="form-required" title="This field is required.">*</span></label> <input placeholder="ZIP code" type="text" id="edit-signup-zip--3" name="signup_zip" value="" size="60" maxlength="128" class="form-text required" />
+ </div><input type="hidden" name="location" value="footer" /> <input type="submit" id="edit-submit--4" name="op" value="Join our newsletter" class="form-submit" /><input type="hidden" name="form_build_id" value="form-4X8Q9WkE1kSbcA101IJ_Yr5Zrs1RKyheMIv_kez9Kxk" /> <input type="hidden" name="form_id" value="aclu_social_signup_form" />
+ </div>
+ </form>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <footer id="footer" class="region region-footer" role="contentinfo">
+ <div class="inner">
+ <div class="inner-inner">
+ <div id="block-menu-menu-footer-menu" class="block block-menu first odd" role="navigation">
+ <ul class="menu">
+ <li class="menu__item is-leaf first leaf">
+ <a href="/publications" class="menu__link">Publications</a>
+ </li>
+ <li class="menu__item is-leaf leaf">
+ <a href="/multimedia" class="menu__link">Multimedia</a>
+ </li>
+ <li class="menu__item is-leaf leaf">
+ <a href="/about/media" class="menu__link small-viewport-copy-to-main-menu">Media</a>
+ </li>
+ <li class="menu__item is-leaf leaf">
+ <a href="/contact-us" class="menu__link small-viewport-copy-to-main-menu">Contact</a>
+ </li>
+ <li class="menu__item is-leaf last leaf">
+ <a href="https://action.aclu.org/secure/donate-to-aclu?ms=footer_sitemap_donate&amp;ms_aff=NAT&amp;ms_chan=web&amp;initms=footer_sitemap_donate&amp;initms_aff=NAT&amp;initms_chan=web" class="menu__link">Donate</a>
+ </li>
+ </ul>
+ </div>
+ <div id="block-menu-menu-social-links" class="block block-menu even" role="navigation">
+ <ul class="menu">
+ <li class="menu__item is-leaf first leaf">
+ <a href="https://www.facebook.com/aclu" id="menu-item-facebook" class="menu__link">ACLU on Facebook</a>
+ </li>
+ <li class="menu__item is-leaf leaf">
+ <a href="https://twitter.com/aclu" id="menu-item-twitter" class="menu__link">ACLU on Twitter</a>
+ </li>
+ <li class="menu__item is-leaf leaf">
+ <a href="https://www.youtube.com/user/acluvideos" id="menu-item-youtube" class="menu__link">ACLU on YouTube</a>
+ </li>
+ <li class="menu__item is-leaf last leaf">
+ <a href="/taxonomy/channel-term/1/feed" id="menu-item-rss" class="menu__link">The ACLU RSS Feed</a>
+ </li>
+ </ul>
+ </div>
+ <div id="block-block-2" class="block block-block odd">
+ <div class="charity">
+ <p class="charity-nav">
+ <a href="https://www.charitynavigator.org/index.cfm?bay=search.summary&amp;orgid=3247">Charity Navigator</a>
+ </p>
+ <p class="bbb-accredited">
+ <a href="http://www.bbb.org/charity-reviews/national/civil-rights/american-civil-liberties-union-foundation-in-new-york-ny-227">BBB Accredited Charity</a>
+ </p>
+ </div>
+ </div>
+ <div id="block-menu-menu-secondary-footer-menu" class="block block-menu even" role="navigation">
+ <ul class="menu">
+ <li class="menu__item is-leaf first leaf">
+ <a href="/aclu-site-user-agreement" class="menu__link">User agreement</a>
+ </li>
+ <li class="menu__item is-leaf leaf">
+ <a href="/american-civil-liberties-union-privacy-statement" class="menu__link">Privacy statement</a>
+ </li>
+ <li class="menu__item is-leaf last leaf">
+ <a href="/aclu-statement-accessibility" class="menu__link">Accessibility</a>
+ </li>
+ </ul>
+ </div>
+ <div id="block-block-1" class="block block-block odd">
+ <div class="fine-print">
+ <p>
+ This is the website of the American Civil Liberties Union and the ACLU Foundation.
+ </p>
+ <p>
+ <a href="/donating-american-civil-liberties-union-and-aclu-foundation-what-difference">Learn more about these two components of the ACLU.</a>
+ </p>
+ <p>
+ © 2018&nbsp;ACLU
+ </p>
+ </div>
+ <p>
+ &nbsp;
+ </p>
+ </div>
+ <div id="block-block-3" class="block block-block last even">
+ <div class="branding">
+ <p class="slogan">
+ We the People
+ </p>
+ </div>
+ </div>
+ </div>
+ </div>
+ </footer>
+ </div>
+ <script type="application/ld+json">
+ <![CDATA[
+ {"@context":"http:\/\/schema.org","@type":"Article","url":"https:\/\/www.aclu.org\/blog\/privacy-technology\/internet-privacy\/facebook-tracking-me-even-though-im-not-facebook","inLanguage":"en-US","description":"Facebook collects data about people who have never even opted in. But there are ways these non-users can protect themselves. ","headline":"Facebook Is Tracking Me Even Though I\u2019m Not on Facebook","datePublished":"2018-04-05T06:00","dateModified":"2018-04-11","articleBody":"\u003Cp class=\u0022FirstParagraph\u0022\u003EI don\u0027t use Facebook. I\u0027m not technophobic \u2014 I\u0027m a geek. I\u0027ve been using email since the early 1990s, I have accounts on hundreds of services around the net, and I do software development and internet protocol design both for work and for fun. I believe that a globe-spanning communications network like the internet can be a positive social force, and I publish much of my own work on the open web.\u003C\/p\u003E\n\u003Cp class=\u0022MsoBodyText\u0022\u003EBut Facebook and other massive web companies represent a strong push toward unaccountable centralized social control, which I think makes our society more unequal and more unjust. The Cambridge Analytica scandal is one instance of this long-running problem with what I call the \u0022surveillance economy.\u0022 I don\u0027t want to submit to these power structures, and I don\u2019t want my presence on such platforms to serve as bait that lures other people into the digital panopticon.\u003C\/p\u003E\n\u003Cp class=\u0022MsoBodyText\u0022\u003EBut while I\u0027ve never \u0022opted in\u0022 to Facebook or any of the other big social networks, Facebook still has a detailed profile that can be used to target me. I\u0027ve never consented to having Facebook collect my data, which can be used to draw very detailed inferences about my life, my habits, and my relationships. As we aim to take Facebook to task for its breach of user trust, we need to think about what its capabilities imply for society overall. After all, if you do #deleteFacebook, you\u0027ll find yourself in my shoes: non-consenting, but still subject to Facebook\u2019s globe-spanning surveillance and targeting network.\u003C\/p\u003E\n\u003Cp class=\u0022MsoBodyText\u0022\u003EThere are at least two major categories of information available to Facebook about non-participants like me: information from other Facebook users, and information from sites on the open web.\u003C\/p\u003E\n\u003Ch3 class=\u0022node-type-blog\u0022\u003E\u003Cstrong\u003EInformation from other Facebook users\u003C\/strong\u003E\u003C\/h3\u003E\n\u003Cp class=\u0022FirstParagraph\u0022\u003EWhen you sign up for Facebook, it encourages you to upload your list of contacts so that the site can \u0022find your friends.\u0022 Facebook uses this contact information to learn about people, even if those people don\u0027t agree to participate. It also links people together based on who they know, even if the shared contact hasn\u0027t agreed to this use.\u003C\/p\u003E\n\u003Cp class=\u0022MsoBodyText\u0022\u003EFor example, I received an email from Facebook that lists the people who have all invited me to join Facebook: my aunt, an old co-worker, a friend from elementary school, etc. This email includes names and email addresses \u2014 including my own name \u2014 and at least one \u003Ca href=\u0022https:\/\/en.wikipedia.org\/wiki\/Web_bug\u0022\u003Eweb bug\u003C\/a\u003E designed to identify me to Facebook\u2019s web servers when I open the email. Facebook records this group of people as my contacts, even though I\u0027ve never agreed to this kind of data collection.\u003C\/p\u003E\n\u003Cp class=\u0022MsoBodyText\u0022\u003ESimilarly, I\u0027m sure that I\u0027m in some photographs that someone has uploaded to Facebook \u2014 and I\u0027m probably tagged in some of them. I\u0027ve never agreed to this, but Facebook could still be keeping track.\u003C\/p\u003E\n\u003Cp class=\u0022MsoBodyText\u0022\u003ESo even if you decide you need to join Facebook, remember that you might be giving the company information about someone else who didn\u0027t agree to be part of its surveillance platform.\u003C\/p\u003E\n\u003Ch3 class=\u0022node-type-blog\u0022\u003E\u003Cstrong\u003EInformation from sites on the open Web\u003C\/strong\u003E\u003C\/h3\u003E\n\u003Cp class=\u0022FirstParagraph\u0022\u003ENearly every website that you visit that has a \u0022Like\u0022 button is actually encouraging your browser to tell Facebook about your browsing habits. Even if you don\u0027t click on the \u0022Like\u0022 button, displaying it requires your browser to send a request to Facebook\u0027s servers for the \u0022Like\u0022 button itself. That request includes \u003Ca href=\u0022https:\/\/en.wikipedia.org\/wiki\/HTTP_referer\u0022\u003Einformation\u003C\/a\u003E mentioning the name of the page you are visiting and any Facebook-specific \u003Ca href=\u0022https:\/\/en.wikipedia.org\/wiki\/HTTP_cookie\u0022\u003Ecookies\u003C\/a\u003E your browser might have collected. (See \u003Ca href=\u0022https:\/\/www.facebook.com\/help\/186325668085084\u0022\u003EFacebook\u0027s own description of this process\u003C\/a\u003E.) This is called a \u0022third-party request.\u0022\u003C\/p\u003E\n\u003Cp class=\u0022MsoBodyText\u0022\u003EThis makes it possible for Facebook to create a detailed picture of your browsing history \u2014 even if you\u0027ve never even visited Facebook directly, let alone signed up for a Facebook account.\u003C\/p\u003E\n\u003Cp class=\u0022MsoBodyText\u0022\u003EThink about most of the web pages you\u0027ve visited \u2014 how many of them \u003Cem\u003Edon\u0027t\u003C\/em\u003E have a \u0022Like\u0022 button? If you administer a website and you include a \u0022Like\u0022 button on every page, you\u0027re helping Facebook to build profiles of your visitors, even those who have opted out of the social network. Facebook\u2019s \u003Ca href=\u0022https:\/\/developers.facebook.com\/docs\/plugins\/\u0022\u003E\u201cShare\u201d buttons\u003C\/a\u003E on other sites \u2014 along with \u003Ca href=\u0022https:\/\/www.facebook.com\/business\/learn\/facebook-ads-pixel\u0022\u003Eother tools\u003C\/a\u003E \u2014 work a bit differently from the \u201cLike\u201d button, but do effectively the same thing.\u003C\/p\u003E\n\u003Cp class=\u0022MsoBodyText\u0022\u003EThe profiles that Facebook builds on non-users don\u0027t necessarily include so-called \u0022personally identifiable information\u0022 (PII) like names or email addresses. But they do include fairly unique patterns. Using \u003Ca href=\u0022https:\/\/dev.chromium.org\/for-testers\/providing-network-details\u0022\u003EChromium\u0027s NetLog dumping\u003C\/a\u003E, I performed a simple five-minute browsing test last week that included visits to various sites \u2014 but not Facebook. In that test, the PII-free data that was sent to Facebook included information about which news articles I was reading, my dietary preferences, and my hobbies.\u003C\/p\u003E\n\u003Cp class=\u0022MsoBodyText\u0022\u003EGiven the precision of this kind of mapping and targeting, \u0022PII\u0022 isn\u2019t necessary to reveal my identity. How many vegans examine specifications for computer hardware from the ACLU\u0027s offices while reading about Cambridge Analytica? Anyway, if Facebook combined that information with the \u0022web bug\u0022 from the email mentioned above \u2014 which \u003Cem\u003Eis\u003C\/em\u003E clearly linked to my name and e-mail address \u2014 no guesswork would be required.\u003C\/p\u003E\n\u003Cp class=\u0022MsoBodyText\u0022\u003EI\u0027d be shocked if Facebook were not connecting those dots given the goals \u003Ca href=\u0022https:\/\/www.facebook.com\/about\/privacy\/cookies\u0022\u003Ethey claim for data collection\u003C\/a\u003E:\u003C\/p\u003E\n\u003Cblockquote\u003E\n\u003Cp class=\u0022MsoBlockText\u0022\u003EWe use the information we have to improve our advertising and measurement systems so we can show you relevant ads on and off our Services and measure the effectiveness and reach of ads and services.\u003C\/p\u003E\n\u003C\/blockquote\u003E\n\u003Cp class=\u0022FirstParagraph\u0022\u003EThis is, in essence, exactly what Cambridge Analytica did.\u003C\/p\u003E\n\u003Ch3 class=\u0022node-type-blog\u0022\u003E\u003Cstrong\u003EConsent\u003C\/strong\u003E\u003C\/h3\u003E\n\u003Cp class=\u0022FirstParagraph\u0022\u003EFacebook and other tech companies often deflect accusations against excessive data collection by arguing \u0022consent\u0022 \u2014 that they harvest and use data with the consent of the users involved.\u003C\/p\u003E\n\u003Cp class=\u0022MsoBodyText\u0022\u003EBut even if we accept that clicking through a \u0022Terms of Service\u0022 that \u003Ca href=\u0022https:\/\/tosdr.org\/\u0022\u003Eno one reads\u003C\/a\u003E can actually constitute true consent, even if we ignore the fact that these terms are overwhelmingly one-sided and non-negotiable, and even if we accept that it\u0027s meaningful for people to give consent when sharing data about other people who may have also opted in \u2014 what is the recourse for someone who has not opted into these systems at all?\u003C\/p\u003E\n\u003Cp class=\u0022MsoBodyText\u0022\u003EAre those of us who have explicitly avoided agreeing to the Facebook terms of service simply fair game for an industry-wide surveillance and targeting network?\u003C\/p\u003E\n\u003Ch3 class=\u0022node-type-blog\u0022\u003E\u003Cstrong\u003EPrivilege\u003C\/strong\u003E\u003C\/h3\u003E\n\u003Cp class=\u0022FirstParagraph\u0022\u003EI don\u2019t mean to critique people who have created a Facebook profile or suggest they deserve whatever they get.\u003C\/p\u003E\n\u003Cp class=\u0022MsoBodyText\u0022\u003EMy ability to avoid Facebook comes from privilege \u2014 I have existing social contacts with whom I know how to stay in touch without using Facebook\u0027s network. My job does not require that I use Facebook. I can afford the time and expense to communicate with my electoral representatives and political allies via other channels.\u003C\/p\u003E\n\u003Cp class=\u0022MsoBodyText\u0022\u003EMany people do not have these privileges and are compelled to \u0022opt in\u0022 on Facebook\u0027s non-negotiable terms.\u003C\/p\u003E\n\u003Cp class=\u0022MsoBodyText\u0022\u003EMany journalists, organizers, schools, politicians, and others who have good reasons to oppose Facebook\u0027s centralized social control feel compelled by Facebook\u0027s reach and scale to participate in their practices, even those we know to be harmful. That includes the ACLU.\u003C\/p\u003E\n\u003Cp class=\u0022MsoBodyText\u0022\u003EPrivacy should not be a luxury good, and while I\u0027m happy to encourage people to opt out of these subtle and socially fraught arrangements, I do not argue that anyone who has signed up has somehow relinquished concerns about their privacy. We need to evaluate privacy concerns in their full social contexts. These are not problems that can be resolved on an individual level, because of the interpersonal nature of much of this data and the complexities of the tradeoffs involved.\u003C\/p\u003E\n\u003Ch3 class=\u0022node-type-blog\u0022\u003E\u003Cstrong\u003ETechnical countermeasures\u003C\/strong\u003E\u003C\/h3\u003E\n\u003Cp class=\u0022FirstParagraph\u0022\u003EWhile they may not solve the problem, there are some technical steps people can take to limit the scope of these surveillance practices. For example, some web browsers do not send \u0022third-party cookies\u0022 by default, or \u003Ca href=\u0022https:\/\/wiki.mozilla.org\/Thirdparty\u0022\u003Ethey scope cookies \u003C\/a\u003Eso that centralized surveillance doesn\u0027t get a single view of one user. The most privacy-preserving modern browser is \u003Ca href=\u0022https:\/\/www.torproject.org\/\u0022\u003Ethe Tor Browser\u003C\/a\u003E, which everyone should have installed and available, even if it\u0027s not the browser they choose to use every day. It limits the surveillance ability of systems that you have not signed up for to track you as you move around the web.\u003C\/p\u003E\n\u003Cp class=\u0022MsoBodyText\u0022\u003EYou can also modify some browsers \u2014 for example, with plug-ins for \u003Ca href=\u0022https:\/\/requestpolicycontinued.github.io\/\u0022\u003EFirefox\u003C\/a\u003E and \u003Ca href=\u0022https:\/\/chrome.google.com\/webstore\/detail\/umatrix\/ogfcmafjalglgifnmanfmnieipoejdcf\u0022\u003EChrome\u003C\/a\u003E \u2014 so that they \u003Ca href=\u0022https:\/\/addons.mozilla.org\/en-US\/firefox\/addon\/umatrix\/\u0022\u003Edo not send third-party\u003C\/a\u003E \u003Ca href=\u0022https:\/\/requestpolicycontinued.github.io\/\u0022\u003Erequests at all\u003C\/a\u003E. Firefox is also exploring even more \u003Ca href=\u0022https:\/\/addons.mozilla.org\/en-US\/firefox\/addon\/multi-account-containers\/\u0022\u003Eprivacy-preserving techniques\u003C\/a\u003E\u003Ca href=\u0022https:\/\/addons.mozilla.org\/en-US\/firefox\/addon\/multi-account-containers\/\u0022\u003E. \u003C\/a\u003E\u003C\/p\u003E\n\u003Cp class=\u0022MsoBodyText\u0022\u003EIt can\u2019t be denied, though, that these tools are harder to use than the web browsers most people are accustomed to, and they create barriers to some online activities. (For example, logging in to \u003Ca href=\u0022https:\/\/offcampushousing.uconn.edu\/login\u0022\u003Esome sites\u003C\/a\u003E and accessing some \u003Ca href=\u0022https:\/\/filestore.community.support.microsoft.com\/api\/images\/0253d8fb-b050-401a-834d-9d80a99c0b12\u0022\u003Eweb applications\u003C\/a\u003E is impossible without third-party cookies.)\u003C\/p\u003E\n\u003Cp class=\u0022MsoBodyText\u0022\u003ESome website operators take their visitors\u0027 privacy more seriously than others, by reducing the amount of third-party requests. For example, it\u0027s possible to display \u0022share on Facebook\u0022 or \u0022Like\u0022 buttons without sending user requests to Facebook in the first place. The ACLU\u0027s own website does this because we believe that the right to read with privacy is a fundamental protection for civic discourse.\u003C\/p\u003E\n\u003Cp class=\u0022MsoBodyText\u0022\u003EIf you are responsible for running a website, try browsing it with a third-party-blocking extension turned on. Think about how much information you\u0027re requiring your users to send to third parties as a condition for using your site. If you care about being a good steward of your visitors\u0027 data, you can re-design your website to reduce this kind of leakage.\u003C\/p\u003E\n\u003Ch3 class=\u0022node-type-blog\u0022\u003E\u003Cstrong\u003EOpting out?\u003C\/strong\u003E\u003C\/h3\u003E\n\u003Cp class=\u0022MsoBodyText\u0022\u003ESome advertisers claim that you can \u0022opt out\u0022 of their targeted advertising, and even offer \u003Ca href=\u0022http:\/\/optout.aboutads.info\/\u0022\u003Ea centralized place meant to help you do so\u003C\/a\u003E.\u00a0However, my experience with these tools isn\u0027t a positive one. They don\u0027t appear to work all of the time. (In a recent experiment I conducted, two advertisers\u2019 opt-out mechanisms failed to take effect.) And while advertisers claim to allow the user to opt out of \u0022interest-based ads,\u0022 it\u0027s not clear that the opt-outs govern data collection itself, rather than just the use of the collected data for displaying ads. Moreover, opting out on their terms requires the use of third-party cookies, thereby enabling another mechanism that other advertisers can then exploit.\u003C\/p\u003E\n\u003Cp class=\u0022MsoBodyText\u0022\u003EIt\u0027s also not clear how they function over time: How frequently do I need to take these steps? Do they expire? How often should I check back to make sure I\u2019m still opted out? I\u0027d much prefer an approach requiring me to opt \u003Cem\u003Ein\u003C\/em\u003E to surveillance and targeting.\u003C\/p\u003E\n\u003Ch3 class=\u0022node-type-blog\u0022\u003E\u003Cstrong\u003EFix the surveillance economy, not just Facebook\u003C\/strong\u003E\u003C\/h3\u003E\n\u003Cp class=\u0022FirstParagraph\u0022\u003EThese are just a few of the mechanisms that enable online tracking. Facebook is just one culprit in this online \u0022surveillance economy,\u0022 albeit a massive one \u2014 the company owns \u003Ca href=\u0022https:\/\/www.instagram.com\/\u0022\u003EInstagram\u003C\/a\u003E, \u003Ca href=\u0022https:\/\/atlassolutions.com\/\u0022\u003EAtlas\u003C\/a\u003E, \u003Ca href=\u0022https:\/\/www.whatsapp.com\/\u0022\u003EWhatsApp\u003C\/a\u003E, and dozens of other internet and technology companies and services. But it\u2019s not the only player in this space. Google\u2019s business model also relies on this kind of surveillance, and there are dozens of smaller players as well.\u003C\/p\u003E\n\u003Cp class=\u0022MsoBodyText\u0022\u003EAs we work to address the fallout from the current storm around Facebook and Cambridge Analytica, we can\u0027t afford to lose sight of these larger mechanisms at play. Cambridge Analytica\u0027s failures and mistakes are inherent to Facebook\u0027s business model. We need to seriously challenge the social structures that encourage people to opt in to this kind of surveillance. At the same time, we also need to protect those of us who manage to opt out.\u003C\/p\u003E","image":{"@type":"ImageObject","url":"https:\/\/www.aclu.org\/sites\/default\/files\/field_image\/web18-facebook-1160x768.jpg","width":{"@type":"Intangible","name":"1160"},"height":{"@type":"Intangible","name":"768"}},"publisher":{"@type":"Organization","name":"American Civil Liberties Union","logo":{"@type":"ImageObject","url":"https:\/\/www.aclu.org\/sites\/all\/themes\/custom\/aclu\/images\/logos\/logo-schema-json-ld.png","width":{"@type":"Intangible","name":145},"height":{"@type":"Intangible","name":60}}},"mainEntityOfPage":{"@type":"WebPage","@id":"https:\/\/www.aclu.org\/blog"},"keywords":"Internet Privacy, Privacy \u0026amp; Technology, Consumer Privacy","author":[{"@type":"Person","name":"Daniel Kahn Gillmor"}]}
+ ]]>
+ </script>
+ <div class="region region-page-bottom">
+ <div class="inner">
+ <!-- SiteCatalyst code version: AppMeasurement 1.6.1
+Copyright 1996-2018 Adobe, Inc. -->
+ <script type="text/javascript" src="/sites/all/libraries/sitecatalyst/AppMeasurement.js?p7vly2"></script>
+ <script type="text/javascript">
+ //<![CDATA[
+ <!--
+ if (typeof s !== 'undefined') {
+ s.pageName="blog:April 5 2018:Facebook Is Tracking Me Even Though I\u2019m Not on Facebook";
+ s.prop4="Blog Post";
+ s.prop5="Facebook Is Tracking Me Even Though I\u2019m Not on Facebook";
+ s.prop7="";
+ s.prop28="Daniel Kahn Gillmor";
+ s.prop30="";
+ s.list1="Internet Privacy, Privacy \u0026amp; Technology, Consumer Privacy";
+ s.prop12="www.aclu.org";
+ /************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/
+ var s_code=s.t();if(s_code)document.write(s_code)}//-->
+ //]]>
+ </script>
+ <script type="text/javascript">
+ //<![CDATA[
+ <!--
+ if(navigator.appVersion.indexOf('MSIE')>=0)document.write(unescape('%3C')+'\!-'+'-')
+ //-->
+ //]]>
+ </script> <noscript><img src="https://smetrics.aclu.org/b/ss/aclumain/1/H.27.5/7077111" height="1" width="1" alt="" /></noscript> <!--/DO NOT REMOVE/-->
+ <!-- End SiteCatalyst code version: AppMeasurement 1.6.1 -->
+ </div>
+ </div><!--[if lte IE 9]>
+<script src="https://www.aclu.org/sites/default/files/advagg_js/js__swwNp8uYzlQSfaQZggyXUVgR3xX6hndYCbm0OzNQ3Uo__J5c5rUy0xx1jPW79TyLu-tguE83mpB72BCzpp29JDG0__VITBFqYjCWZ55Wpxq9xcXRqOD9xxPlR-vPRDis8bQN4.js#ie9-" onload=";if(jQuery.isFunction(jQuery.holdReady)){jQuery.holdReady(!0)};function advagg_mod_1(){advagg_mod_1.count=++advagg_mod_1.count||1;try{if(advagg_mod_1.count<=40){init_drupal_core_settings();advagg_mod_1.count=100}}catch(d){if(advagg_mod_1.count>=40){throw d}
+else{window.setTimeout(advagg_mod_1,1)}}};function advagg_mod_1_check(){if(window.init_drupal_core_settings&&window.jQuery&&window.Drupal){advagg_mod_1()}
+else{window.setTimeout(advagg_mod_1_check,1)}};advagg_mod_1_check();"></script>
+<![endif]-->
+ <!--[if gt IE 9]>
+<script src="https://www.aclu.org/sites/default/files/advagg_js/js__swwNp8uYzlQSfaQZggyXUVgR3xX6hndYCbm0OzNQ3Uo__J5c5rUy0xx1jPW79TyLu-tguE83mpB72BCzpp29JDG0__VITBFqYjCWZ55Wpxq9xcXRqOD9xxPlR-vPRDis8bQN4.js#ie10+" defer="defer" onload=";if(jQuery.isFunction(jQuery.holdReady)){jQuery.holdReady(!0)};function advagg_mod_1(){advagg_mod_1.count=++advagg_mod_1.count||1;try{if(advagg_mod_1.count<=40){init_drupal_core_settings();advagg_mod_1.count=100}}catch(d){if(advagg_mod_1.count>=40){throw d}
+else{window.setTimeout(advagg_mod_1,1)}}};function advagg_mod_1_check(){if(window.init_drupal_core_settings&&window.jQuery&&window.Drupal){advagg_mod_1()}
+else{window.setTimeout(advagg_mod_1_check,1)}};advagg_mod_1_check();"></script>
+<![endif]-->
+ <!--[if !IE]><!-->
+ <script src="https://www.aclu.org/sites/default/files/advagg_js/js__swwNp8uYzlQSfaQZggyXUVgR3xX6hndYCbm0OzNQ3Uo__J5c5rUy0xx1jPW79TyLu-tguE83mpB72BCzpp29JDG0__VITBFqYjCWZ55Wpxq9xcXRqOD9xxPlR-vPRDis8bQN4.js" defer="defer" onload=";if(jQuery.isFunction(jQuery.holdReady)){jQuery.holdReady(!0)};function advagg_mod_1(){advagg_mod_1.count=++advagg_mod_1.count||1;try{if(advagg_mod_1.count&lt;=40){init_drupal_core_settings();advagg_mod_1.count=100}}catch(d){if(advagg_mod_1.count&gt;=40){throw d} else{window.setTimeout(advagg_mod_1,1)}}};function advagg_mod_1_check(){if(window.init_drupal_core_settings&amp;&amp;window.jQuery&amp;&amp;window.Drupal){advagg_mod_1()} else{window.setTimeout(advagg_mod_1_check,1)}};advagg_mod_1_check();"></script> <!--<![endif]-->
+ <script src="https://www.aclu.org/sites/default/files/advagg_js/js__KIOxqGQgSG_MNdzEXnXctFChj8F419LLh-pk74jqifE__L-MIV3EoYrT27xwlbqTCaW4Fnzl1Y0UD5Vas-oPZE-s__VITBFqYjCWZ55Wpxq9xcXRqOD9xxPlR-vPRDis8bQN4.js" defer="defer"></script>
+ <script src="https://www.aclu.org/sites/default/files/advagg_js/js__EkkosXTt0cnwMaY9XDJNynP2YPv5JANpb3OmTs5oxB4__qZR9s22Z3rj0kf4R4Ym7Aw_dActYuqmQr12cw6Kz9fA__VITBFqYjCWZ55Wpxq9xcXRqOD9xxPlR-vPRDis8bQN4.js" defer="defer"></script>
+ <script>
+ <![CDATA[
+ function init_drupal_core_settings() {;jQuery.extend(Drupal.settings,{'basePath':'\/','pathPrefix':'','ajaxPageState':{'theme':'aclu','theme_token':'L129Z08-v-ipJ2mCsh7GK1-m0G8Gu1h_WGmZCtI_z4A'},'aclu_statistics':{'data':{'nid':'67865'},'url':'\/sites\/all\/modules\/custom\/aclu_statistics\/aclu_statistics_counter.php'},'colorbox':{'transition':'none','speed':'350','opacity':'0.90','slideshow':!1,'slideshowAuto':!0,'slideshowSpeed':'2500','slideshowStart':'start slideshow','slideshowStop':'stop slideshow','current':'{current} of {total}','previous':'\u00ab Prev','next':'Next \u00bb','close':'Close','overlayClose':!0,'maxWidth':'98%','maxHeight':'98%','initialWidth':'300','initialHeight':'250','fixed':!0,'scrolling':!1,'mobiledetect':!1,'mobiledevicewidth':'480px'},'mytube':{'enable_js_api':1},'CToolsModal':{'modalSize':{'type':'scale','width':'.9','height':'.9','addWidth':0,'addHeight':0,'contentRight':25,'contentBottom':75},'modalOptions':{'opacity':'.55','background-color':'#FFF'},'animationSpeed':'fast','modalTheme':'CToolsModalDialog','throbberTheme':'CToolsModalThrobber'},'splashify':{'js_splash_always':'0','js_splash_session_only':'0','js_splash_timestamp':1517583933,'js_expire_after':86399913600,'js_mode':'colorbox','js_mode_settings':{'mode':'random','system_splash':'','urls':['\/aclu_promotions\/lightbox\/standard_1'],'total_urls':1,'size_width':'800','size_height':'300'},'js_disable_referrer_check':0,'js_hide_on_screen_width':1,'js_hide_width':'767'},'acluSocialSiteCatalystClicks':{'nodeterm_id':'n67865','nodeterm_name':'Facebook Is Tracking Me Even Though I\u2019m Not on Facebook','jump':'0','anonymous_user':!0},'tagmap':[],'urlIsAjaxTrusted':{'\/comment\/reply\/67865':!0,'\/blog\/privacy-technology\/internet-privacy\/facebook-tracking-me-even-though-im-not-facebook':!0,'\/issues\/capital-punishment\/mental-illness-and-death-penalty':!0},'acluSocial':{'tou_text':'\u003Cp\u003EOur goal is to provide a forum where readers can express their views on posts and on comments made by other people. Comments will not appear on the site until they have been approved. We do not edit comments; they are either approved or rejected. We will not approve comments that are off-topic or contain violent or threatening language, advertising or commercial promotions, links, spam, efforts to solicit personal information from users of our website, or the posting of other people\u2019s personal information without consent.\u003Cp\u003E\n\n\u003Cp\u003EWe are not able to respond to inquiries, complaints or requests for assistance sent to the comment section. Requests for legal assistance left in the comments will not receive a response or be published.\u003C\/p\u003E\n\n\u003Cp\u003EThe ACLU makes no representation about the accuracy of any information in the comment section and disclaims any liability for information in this section.\u003C\/p\u003E'},'fitvids':{'custom_domains':['iframe[src^=\u0027http:\/\/youtube-nocookie.com\u0027]','iframe[src^=\u0027https:\/\/youtube-nocookie.com\u0027]','iframe[src^=\u0027https:\/\/content.newsbound.com\u0027]','iframe[src^=\u0027https:\/\/embed-ssl.ted.com\u0027]','iframe[src^=\u0027https:\/\/www.facebook.com\u0027]','iframe[src^=\u0027https:\/\/embed.theguardian.com\u0027]'],'selectors':['body\r','.video'],'simplifymarkup':0},'aclu_social':{'node_id':'67865','node_title':'Facebook Is Tracking Me Even Though I\u2019m Not on Facebook'},'aclu_promotions':{'header_banner':'2','header_banner_eoy':'2','bottom_banner':'0'},'superfish':{'1':{'id':'1','sf':{'animation':{'opacity':'show','height':'show'},'speed':0,'autoArrows':!1,'dropShadows':!1,'disableHI':!1},'plugins':{'supposition':!1,'bgiframe':!1,'supersubs':{'minWidth':'12','maxWidth':'27','extraWidth':1}}}},'acluTopicsDropdownMenu':{'topicsJsonUrl':'https:\/\/www.aclu.org\/sites\/default\/files\/aclu_topics_dropdown.json?1524242426'}});
+ if(jQuery.isFunction(jQuery.holdReady)){jQuery.holdReady(false);}} if(window.jQuery && window.Drupal){init_drupal_core_settings();}
+ ]]>
+ </script>
+ <script defer="defer" src="/sites/all/libraries/iframe-resizer/js/iframeResizer.min.js?p7vly2"></script>
+ <script src="https://www.aclu.org/sites/default/files/advagg_js/js__6HycQHHRWXZk4rT92IRL7rjUaQmVTPehv-zv1UN2O14__4R1PUkClJ0nV3_5DROl3oALgi-wYg_JrOOVIu2IzUPM__VITBFqYjCWZ55Wpxq9xcXRqOD9xxPlR-vPRDis8bQN4.js" defer="defer"></script>
+ </body>
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ars-1/config.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ars-1/config.json
new file mode 100644
index 000000000..0ac6816ed
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ars-1/config.json
@@ -0,0 +1,3 @@
+{
+ "ArticleByLine": true
+} \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ars-1/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ars-1/expected-images.json
new file mode 100644
index 000000000..b55555167
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ars-1/expected-images.json
@@ -0,0 +1,3 @@
+[
+ "http:\/\/cdn.arstechnica.net\/wp-content\/uploads\/2015\/04\/server-crash-640x426.jpg"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ars-1/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ars-1/expected-metadata.json
new file mode 100644
index 000000000..0594bf203
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ars-1/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "by Dan Goodin - Apr 16, 2015 8:02 pm UTC",
+ "Direction": null,
+ "Excerpt": "Two-year-old bug exposes thousands of servers to crippling attack.",
+ "Image": "http:\/\/cdn.arstechnica.net\/wp-content\/uploads\/2015\/04\/server-crash-640x426.jpg",
+ "Title": "Just-released Minecraft exploit makes it easy to crash game servers",
+ "SiteName": "Ars Technica"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ars-1/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ars-1/expected.html
new file mode 100644
index 000000000..0aecf6e9f
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ars-1/expected.html
@@ -0,0 +1,44 @@
+<div itemprop="articleBody">
+ <figure><img height="331" src="http://cdn.arstechnica.net/wp-content/uploads/2015/04/server-crash-640x426.jpg" width="640"></img><figcaption>
+ </figcaption></figure><p>A flaw in the wildly popular online game <em>Minecraft</em> makes it easy for just about anyone to crash the server hosting the game, according to a computer programmer who has released proof-of-concept code that exploits the vulnerability.</p>
+ <p>"I thought a lot before writing this post," Pakistan-based developer Ammar Askar wrote in a <a href="http://blog.ammaraskar.com/minecraft-vulnerability-advisory">blog post published Thursday</a>, 21 months, he said, after privately reporting the bug to <em>Minecraft</em> developer Mojang. "On the one hand I don't want to expose thousands of servers to a major vulnerability, yet on the other hand Mojang has failed to act on it."</p>
+ <p>The bug resides in the <a href="https://github.com/ammaraskar/pyCraft">networking internals of the <em>Minecraft </em>protocol</a>. It allows the contents of inventory slots to be exchanged, so that, among other things, items in players' hotbars are displayed automatically after logging in. <em>Minecraft</em> items can also store arbitrary metadata in a file format known as <a href="http://wiki.vg/NBT">Named Binary Tag (NBT)</a>, which allows complex data structures to be kept in hierarchical nests. Askar has released <a href="https://github.com/ammaraskar/pyCraft/tree/nbt_exploit">proof-of-concept attack code</a> he said exploits the vulnerability to crash any server hosting the game. Here's how it works.</p>
+ <blockquote>
+ <p>The vulnerability stems from the fact that the client is allowed to send the server information about certain slots. This, coupled with the NBT format’s nesting allows us to <em>craft</em> a packet that is incredibly complex for the server to deserialize but trivial for us to generate.</p>
+ <p>In my case, I chose to create lists within lists, down to five levels. This is a json representation of what it looks like.</p>
+ <div> <pre><code data-lang="javascript"><span>rekt</span><span>:</span> <span>{</span>
+ <span>list</span><span>:</span> <span>[</span>
+ <span>list</span><span>:</span> <span>[</span>
+ <span>list</span><span>:</span> <span>[</span>
+ <span>list</span><span>:</span> <span>[</span>
+ <span>list</span><span>:</span> <span>[</span>
+ <span>list</span><span>:</span> <span>[</span>
+ <span>]</span>
+ <span>list</span><span>:</span> <span>[</span>
+ <span>]</span>
+ <span>list</span><span>:</span> <span>[</span>
+ <span>]</span>
+ <span>list</span><span>:</span> <span>[</span>
+ <span>]</span>
+ <span>...</span>
+ <span>]</span>
+ <span>...</span>
+ <span>]</span>
+ <span>...</span>
+ <span>]</span>
+ <span>...</span>
+ <span>]</span>
+ <span>...</span>
+ <span>]</span>
+ <span>...</span>
+<span>}</span></code></pre> </div>
+ <p>The root of the object, <code>rekt</code>, contains 300 lists. Each list has a list with 10 sublists, and each of those sublists has 10 of their own, up until 5 levels of recursion. That’s a total of <code>10^5 * 300 = 30,000,000</code> lists.</p>
+ <p>And this isn’t even the theoretical maximum for this attack. Just the nbt data for this payload is 26.6 megabytes. But luckily Minecraft implements a way to compress large packets, lucky us! zlib shrinks down our evil data to a mere 39 kilobytes.</p>
+ <p>Note: in previous versions of Minecraft, there was no protocol wide compression for big packets. Previously, NBT was sent compressed with gzip and prefixed with a signed short of its length, which reduced our maximum payload size to <code>2^15 - 1</code>. Now that the length is a varint capable of storing integers up to <code>2^28</code>, our potential for attack has increased significantly.</p>
+ <p>When the server will decompress our data, it’ll have 27 megs in a buffer somewhere in memory, but that isn’t the bit that’ll kill it. When it attempts to parse it into NBT, it’ll create java representations of the objects meaning suddenly, the sever is having to create several million java objects including ArrayLists. This runs the server out of memory and causes tremendous CPU load.</p>
+ <p>This vulnerability exists on almost all previous and current Minecraft versions as of 1.8.3, the packets used as attack vectors are the <a href="http://wiki.vg/Protocol#Player_Block_Placement">0x08: Block Placement Packet</a> and <a href="http://wiki.vg/Protocol#Creative_Inventory_Action">0x10: Creative Inventory Action</a>.</p>
+ <p>The fix for this vulnerability isn’t exactly that hard, the client should never really send a data structure as complex as NBT of arbitrary size and if it must, some form of recursion and size limits should be implemented.</p>
+ <p>These were the fixes that I recommended to Mojang 2 years ago.</p>
+ </blockquote>
+ <p>Ars is asking Mojang for comment and will update this post if company officials respond.</p>
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ars-1/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ars-1/source.html
new file mode 100644
index 000000000..cd6aed112
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ars-1/source.html
@@ -0,0 +1,765 @@
+<!DOCTYPE html>
+<!--[if lt IE 7]> <html lang="en-us" class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
+<!--[if IE 7]> <html lang="en-us" class="no-js lt-ie9 lt-ie8"> <![endif]-->
+<!--[if IE 8]> <html lang="en-us" class="no-js ie8 lt-ie9"> <![endif]-->
+<!--[if IE 9]> <html lang="en-us" class="no-js ie9"> <![endif]-->
+<!--[if gt IE 8]><!-->
+<html lang="en-us">
+<!--<![endif]-->
+
+<head>
+ <title>Just-released Minecraft exploit makes it easy to crash game servers | Ars Technica</title>
+ <script type="text/javascript">
+ ars = {
+ "ASSETS": "http:\/\/cdn.arstechnica.net\/wp-content\/themes\/arstechnica\/assets",
+ "HOME_URL": "http:\/\/arstechnica.com",
+ "LOGIN_URL": "https:\/\/arstechnica.com\/services\/login-desktop.html?v=1",
+ "CIVIS": "\/civis",
+ "THEME": "light",
+ "VIEW": "grid",
+ "MOBILE": false,
+ "PREMIER": false,
+ "LOGGED": false,
+ "ENV": "production",
+ "AD": {
+ "kw": ["security", "int"],
+ "zone": "int",
+ "queue": []
+ },
+ "TOTAL": 68014,
+ "UNREAD": 0,
+ "RECENT": [659465, 659425, 659391, 659203, 659339, 659209, 659151, 659207, 659257, 659153, 657603, 659157, 659089, 659105, 658987, 658981, 658367, 658019, 658841, 658609, 658117, 658553, 658455, 657769, 658395],
+ "LOGINS": true,
+ "CROSS": false,
+ "GEOALERTS": true,
+ "PARSELY": "arstechnica.com",
+ "COMMENTS": false,
+ "HOMEPAGE": false,
+ "COUNTRY": "us",
+ "READY": [],
+ "SHOW_ADS": true,
+ "IMG_PROXY": "https:\/\/cdn.arstechnica.net\/i\/",
+ "CATEGORY": "security"
+ };
+ </script>
+ <!--[if lte IE 8]><script type="text/javascript" src="http://cdn.arstechnica.net/wp-content/themes/arstechnica/assets/js/modernizr/modernizr.js"></script><![endif]-->
+ <link rel="stylesheet" type="text/css" media="all" href="http://cdn.arstechnica.net/wp-content/themes/arstechnica/assets/css/ars.min.55e632421d8225142fe8df15cdfe2a20.css"/>
+ <link rel="alternate" type="application/rss+xml" href="http://feeds.arstechnica.com/arstechnica/index/"/>
+ <link rel="shortcut icon" href="https://cdn.arstechnica.net/favicon.ico"/>
+ <link rel="icon" type="image/x-icon" href="https://cdn.arstechnica.net/favicon.ico"/>
+ <link rel="apple-touch-icon" sizes="180x180" href="http://cdn.arstechnica.net/wp-content/themes/arstechnica/assets/images/ars-ios-icon.png"/>
+ <link rel="icon" sizes="192x192" href="http://cdn.arstechnica.net/wp-content/themes/arstechnica/assets/images/material-ars.png"/>
+ <meta name="application-name" content="Ars Technica"/>
+ <meta name="msapplication-starturl" content="http://arstechnica.com/"/>
+ <meta name="msapplication-tooltip" content="Ars Technica: Serving the technologist for 1.2 decades"/>
+ <meta name="msapplication-task" content="name=News;action-uri=http://arstechnica.com/;icon-uri=https://cdn.arstechnica.net/favicon.ico"/>
+ <meta name="msapplication-task" content="name=Features;action-uri=http://arstechnica.com/features/;icon-uri=https://cdn.arstechnica.net/ie-jump-menu/jump-features.ico"/>
+ <meta name="msapplication-task" content="name=OpenForum;action-uri=http://arstechnica.com/civis/;icon-uri=https://cdn.arstechnica.net/ie-jump-menu/jump-forum.ico"/>
+ <meta name="msapplication-task" content="name=Subscribe;action-uri=http://arstechnica.com/subscriptions/;icon-uri=https://cdn.arstechnica.net/ie-jump-menu/jump-subscribe.ico"/>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ <meta name="advertising" content="ask"/>
+ <meta property="fb:admins" content="592156917"/>
+ <meta name="format-detection" content="telephone=no"/>
+ <meta name="theme-color" content="#000000"/>
+ <meta name="viewport" content="width=1020"/>
+ <!-- cache hit 459:single/meta:b3538aec37c1a165d2b4b62bd58e56e3 -->
+ <meta name="parsely-page" content="{&quot;title&quot;:&quot;Just-released Minecraft exploit makes it easy to crash game servers&quot;,&quot;link&quot;:&quot;http:\/\/arstechnica.com\/security\/2015\/04\/16\/just-released-minecraft-exploit-makes-it-easy-to-crash-game-servers\/&quot;,&quot;type&quot;:&quot;post&quot;,&quot;author&quot;:&quot;Dan Goodin&quot;,&quot;post_id&quot;:648287,&quot;pub_date&quot;:&quot;2015-04-16T20:02:01Z&quot;,&quot;section&quot;:&quot;Risk Assessment&quot;,&quot;tags&quot;:[&quot;denial-of-service-attack&quot;,&quot;exploits&quot;,&quot;minecraft&quot;,&quot;vulnerabilities&quot;,&quot;type: report&quot;],&quot;image_url&quot;:&quot;http:\/\/cdn.arstechnica.net\/wp-content\/uploads\/2015\/04\/server-crash-150x150.jpg&quot;}"/>
+ <meta name="parsely-metadata" content="{&quot;type&quot;:&quot;report&quot;,&quot;title&quot;:&quot;Just-released Minecraft exploit makes it easy to crash game servers&quot;,&quot;post_id&quot;:648287,&quot;lower_deck&quot;:&quot;Two-year-old bug exposes thousands of servers to crippling attack.&quot;,&quot;image_url&quot;:&quot;http:\/\/cdn.arstechnica.net\/wp-content\/uploads\/2015\/04\/server-crash-150x150.jpg&quot;,&quot;listing_image_url&quot;:&quot;http:\/\/cdn.arstechnica.net\/wp-content\/uploads\/2015\/04\/server-crash-300x150.jpg&quot;}"/>
+ <link rel="canonical" href="http://arstechnica.com/security/2015/04/16/just-released-minecraft-exploit-makes-it-easy-to-crash-game-servers/"/>
+ <link rel="shorturl" href="http://ars.to/1CSWnf5"/>
+ <meta name="description" content="Two-year-old bug exposes thousands of servers to crippling attack."/>
+ <meta name="twitter:card" content="summary_large_image"/>
+ <meta name="twitter:url" content="http://arstechnica.com/security/2015/04/16/just-released-minecraft-exploit-makes-it-easy-to-crash-game-servers/"/>
+ <meta name="twitter:title" content="Just-released Minecraft exploit makes it easy to crash game servers"/>
+ <meta name="twitter:description" content="Two-year-old bug exposes thousands of servers to crippling attack."/>
+ <meta name="twitter:site" content="@arstechnica"/>
+ <meta name="twitter:domain" content="arstechnica.com"/>
+ <meta property="og:site_name" content="Ars Technica"/>
+ <meta name="twitter:image:src" content="http://cdn.arstechnica.net/wp-content/uploads/2015/04/server-crash-640x426.jpg"/>
+ <meta name="twitter:image:width" content="640"/>
+ <meta name="twitter:image:height" content="426"/>
+ <meta name="twitter:creator" content="@dangoodin001"/>
+ <meta property="og:url" content="http://arstechnica.com/security/2015/04/16/just-released-minecraft-exploit-makes-it-easy-to-crash-game-servers/"/>
+ <meta property="og:title" content="Just-released Minecraft exploit makes it easy to crash game servers"/>
+ <meta property="og:image" content="http://cdn.arstechnica.net/wp-content/uploads/2015/04/server-crash-640x426.jpg"/>
+ <meta property="og:description" content="Two-year-old bug exposes thousands of servers to crippling attack."/>
+ <meta property="og:type" content="article"/>
+ <!-- cache hit 459:single/header:b3538aec37c1a165d2b4b62bd58e56e3 -->
+ <script type="text/javascript" src="http://cdn.arstechnica.net/wp-content/themes/arstechnica/assets/js/omniture/mbox.js"></script>
+</head>
+
+<body class="single single-post postid-648287 single-format-standard grid-view light blog-us">
+ <div id="container">
+ <header id="masthead">
+ <aside id="ad-top">
+ <div id="topBanner728x90_frame"></div>
+ <script type="text/javascript">
+ ars.AD.queue.push(['topBanner', {
+ sz: '728x90',
+ kws: [],
+ collapse: true
+ }]);
+ </script>
+ </aside>
+ <h1><a href="http://arstechnica.com"><em>Ars</em>Technica</a></h1>
+ <div id="profile">
+ <!-- cache hit 459:header/site-toggle:f8ff57a97275618649c08b2cce8f06a6 -->
+ <ul class="site-toggle">
+ <li class="site-1 selected"><a href="http://arstechnica.com/?return">Ars Technica</a></li>
+ <li class="site-3"><a href="http://arstechnica.co.uk">Ars Technica UK</a></li>
+ </ul> <a href="/civis/ucp.php?mode=register" rel="nofollow">Register</a> <a id="login" href="http://arstechnica.com/civis/ucp.php?mode=login&amp;return_to=http%3A%2F%2Farstechnica.com%2Fsecurity%2F2015%2F04%2F16%2Fjust-released-minecraft-exploit-makes-it-easy-to-crash-game-servers%2F" rel="nofollow">Log in</a> </div>
+ <nav id="primary">
+ <ul>
+ <li id="home-icon"> <a href="/"><span>Home</span></a> </li>
+ <li class="has-children"> <a href="#">Main Menu</a>
+ <div id="main-menu" class="dropdown">
+ <div id="sections">
+ <ul class="cat-list">
+ <li class="top-row even">
+ <a class="cat-link" href="/information-technology"> <span class="cat-name">Information Technology</span> <span class="subheading cat-desc">Technology Lab</span> </a>
+ </li>
+ <li class="top-row odd">
+ <a class="cat-link" href="/gadgets"> <span class="cat-name">Product News &amp; Reviews</span> <span class="subheading cat-desc">Gear &amp; Gadgets</span> </a>
+ </li>
+ <li class="even">
+ <a class="cat-link" href="/business"> <span class="cat-name">Business of Technology</span> <span class="subheading cat-desc">Ministry of Innovation</span> </a>
+ </li>
+ <li class="odd">
+ <a class="cat-link" href="/security"> <span class="cat-name">Security &amp; Hacktivism</span> <span class="subheading cat-desc">Risk Assessment</span> </a>
+ </li>
+ <li class="even">
+ <a class="cat-link" href="/tech-policy"> <span class="cat-name">Civilization &amp; Discontents</span> <span class="subheading cat-desc">Law &amp; Disorder</span> </a>
+ </li>
+ <li class="odd">
+ <a class="cat-link" href="/apple"> <span class="cat-name">The Apple Ecosystem</span> <span class="subheading cat-desc">Infinite Loop</span> </a>
+ </li>
+ <li class="even">
+ <a class="cat-link" href="/gaming"> <span class="cat-name">Gaming &amp; Entertainment</span> <span class="subheading cat-desc">Opposable Thumbs</span> </a>
+ </li>
+ <li class="odd">
+ <a class="cat-link" href="/science"> <span class="cat-name">Science &amp; Exploration</span> <span class="subheading cat-desc">The Scientific Method</span> </a>
+ </li>
+ <li class="even">
+ <a class="cat-link" href="/cars"> <span class="cat-name">All Things Automotive</span> <span class="subheading cat-desc">Cars Technica</span> </a>
+ </li>
+ </ul>
+ </div>
+ <aside class="drop-extras">
+ <style type="text/css">
+ #layout-swap {
+ margin-top: -6px;
+ color: #808f95
+ }
+ </style>
+ <aside id="layout-swap"> <span class="subheading">Layout:</span>
+ <ul>
+ <li class="grid active"> <a href="http://arstechnica.com/security/2015/04/16/just-released-minecraft-exploit-makes-it-easy-to-crash-game-servers/?view=grid"><span>Grid View</span></a> </li>
+ <li class="article"> <a href="http://arstechnica.com/security/2015/04/16/just-released-minecraft-exploit-makes-it-easy-to-crash-game-servers/?view=archive"><span>Article View</span></a> </li>
+ </ul>
+ </aside>
+ <h2 class="subheading notched">Site Theme</h2>
+ <ul id="theme-switch">
+ <li class="light active"> <a href="http://arstechnica.com/security/2015/04/16/just-released-minecraft-exploit-makes-it-easy-to-crash-game-servers/?theme=light"><span class="subheading">Dark on light</span></a> </li>
+ <li class="dark "> <a href="http://arstechnica.com/security/2015/04/16/just-released-minecraft-exploit-makes-it-easy-to-crash-game-servers/?theme=dark"><span class="subheading">Light on dark</span></a> </li>
+ </ul>
+ <div id="explore-ars">
+ <h2 class="subheading notched">Explore Ars</h2>
+ <ul>
+ <!-- <li><a href="/reviews/">Reviews</a></li> -->
+ <li><a href="/video/">Video</a></li>
+ <li><a href="/staff/">Staff Blogs</a></li>
+ <li><a href="/features/">Feature Archive</a></li>
+ <li><a href="/staff-directory/">Staff Directory</a></li>
+ <li><a href="/contact-us/">Contact Us</a></li>
+ </ul>
+ </div>
+ <div id="featured-disciplines">
+ <h2 class="subheading notched">Featured Disciplines</h2>
+ <ul>
+ <li><a href="/discipline/photography/">Photography</a></li>
+ <li><a href="/discipline/productivity/">Productivity</a></li>
+ <li><a href="/discipline/cloud-2/">Cloud</a></li>
+ <!-- <li><a href="/discipline/gadgets-3/">Gadgets</a></li> -->
+ <li><a href="/discipline/tablets-2/">Tablets</a></li>
+ </ul>
+ </div>
+ </aside>
+ </div>
+ </li>
+ <li class="has-children" id="my-stories"> <a href="#">My Stories: <span class="unread-count">0</span></a>
+ <div class="dropdown">
+ <nav class="my-stories-nav first">
+ <h2 class="subheading notched">New Since Last Visit <span class="unread-count"></span></h2>
+ <ol class="new-stories with-numbers"></ol>
+ <footer><a class="subheading" href="#" id="more-unread-stories">See more news stories</a></footer>
+ </nav>
+ <nav class="my-stories-nav middle">
+ <h2 class="subheading notched">We Recommend</h2>
+ <ol class="recommendations"></ol>
+ </nav>
+ <nav class="my-stories-nav">
+ <h2 class="subheading notched">My Discussions</h2>
+ <p class="discussions disabled">Log in to track your discussions.</p>
+ </nav>
+ </div>
+ </li>
+ <li class="no-children"><a href="http://arstechnica.com/civis/">Forums</a></li>
+ <li class="no-children subscribe"> <a href="/subscriptions/">Subscribe</a> </li>
+ <li class="no-children"><a href="/jobs/">Jobs</a></li>
+ <li class="no-children"><a href="/feature-series/chasing-brilliance/">Ars Consortium</a></li>
+ <li id="search-container" class="right inactive">
+ <a id="search-switch" href="/search/"></a>
+ <form action="/search/" method="GET" id="search_form">
+ <input type="hidden" name="ie" value="UTF-8"/>
+ <input type="text" name="q" id="hdr_search_input" value=""/>
+ <input type="submit" value=""/> </form>
+ <style type="text/css">
+ table.gstl_50.gssb_c {
+ top: 30px !important;
+ left: 0 !important;
+ width: 100% !important;
+ }
+ </style>
+ </li>
+ </ul>
+ </nav>
+ </header>
+ <section id="content" class="clearfix">
+ <!-- cache hit 459:home/toppost:f3fda06d4fb35e8aa360e369ff702613 -->
+ <h1 id="archive-head" class="subheading thick-divide-bottom">
+ <a href="http://arstechnica.com/security/"> <span class="archive-name">Risk Assessment</span>
+ <span class="divider"> / </span>
+ <span class="archive-desc">Security &amp; Hacktivism</span>
+ </a></h1>
+ <script type="text/javascript">
+ ars.ARTICLE = {
+ "url": "http:\/\/arstechnica.com\/security\/2015\/04\/16\/just-released-minecraft-exploit-makes-it-easy-to-crash-game-servers\/",
+ "short_url": "http:\/\/ars.to\/1CSWnf5",
+ "title": "Just-released Minecraft exploit makes it easy to crash game servers",
+ "author": 329388,
+ "id": 648287,
+ "topic": 1280621,
+ "pages": 1,
+ "current_page": 1,
+ "superscroll": false,
+ "promoted": [],
+ "single_page": false,
+ "comments": 75,
+ "fullwidth": false
+ };
+ </script>
+ <article itemscope="" itemtype="http://schema.org/NewsArticle" class="standalone">
+ <header>
+ <h1 class="heading" itemprop="headline">Just-released <i>Minecraft</i> exploit makes it easy to crash game servers</h1>
+ <h2 class="standalone-deck" itemprop="description">Two-year-old bug exposes thousands of servers to crippling attack.</h2>
+ <div class="post-meta">
+ <p class="byline" itemprop="author creator" itemscope="" itemtype="http://schema.org/Person"> by <a itemprop="url" href="http://arstechnica.com/author/dan-goodin/" rel="author"><span itemprop="name">Dan Goodin</span></a> - <span class="date" data-time="1429214521">Apr 16, 2015 8:02 pm UTC</span> </p>
+ <div class="corner-info">
+ <ul class="share-buttons">
+ <li class="share-facebook">
+ <a href="https://www.facebook.com/sharer.php?u=http%3A%2F%2Farstechnica.com%2Fsecurity%2F2015%2F04%2F16%2Fjust-released-minecraft-exploit-makes-it-easy-to-crash-game-servers%2F" target="_blank" data-dialog="400:368"> <span class="share-text">Share</span> </a>
+ </li>
+ <li class="share-twitter">
+ <a href="https://twitter.com/share?text=Just-released+Minecraft+exploit+makes+it+easy+to+crash+game+servers&amp;url=http%3A%2F%2Fars.to%2F1CSWnf5" target="_blank" data-dialog="364:250"> <span class="share-text">Tweet</span> </a>
+ </li>
+ <li class="share-google">
+ <a href="https://plus.google.com/share?url=http%3A%2F%2Farstechnica.com%2Fsecurity%2F2015%2F04%2F16%2Fjust-released-minecraft-exploit-makes-it-easy-to-crash-game-servers%2F" target="_blank" data-dialog="485:600"> <span class="share-text">Google</span> </a>
+ </li>
+ <li class="share-reddit">
+ <a href="https://www.reddit.com/submit?url=http%3A%2F%2Farstechnica.com%2Fsecurity%2F2015%2F04%2F16%2Fjust-released-minecraft-exploit-makes-it-easy-to-crash-game-servers%2F&amp;title=Just-released+Minecraft+exploit+makes+it+easy+to+crash+game+servers" target="_blank"> <span class="share-text">Reddit</span> </a>
+ </li>
+ </ul> <a title="51 posters participating" class="comment-count" href="http://arstechnica.com/security/2015/04/16/just-released-minecraft-exploit-makes-it-easy-to-crash-game-servers/?comments=1"><span>75</span></a> </div>
+ </div>
+ </header>
+ <section id="article-guts">
+ <div itemprop="articleBody" class="article-content clearfix">
+ <figure class="intro-image image center full-width" style="width:640px"> <img src="http://cdn.arstechnica.net/wp-content/uploads/2015/04/server-crash-640x426.jpg" width="640" height="331"/>
+ <figcaption class="caption">
+ <div class="caption-credit"> <a rel="nofollow" href="https://en.wikipedia.org/wiki/Kernel_panic#/media/File:Kernel-panic.jpg">Kevin</a> </div>
+ </figcaption>
+ </figure>
+ <!-- cache hit 459:single/related:1ad28a5dc0a24868be6b031b5fdecb2e -->
+ <!-- empty -->
+ <p>A flaw in the wildly popular online game <em>Minecraft</em> makes it easy for just about anyone to crash the server hosting the game, according to a computer programmer who has released proof-of-concept code that exploits the vulnerability.</p>
+ <p>"I thought a lot before writing this post," Pakistan-based developer Ammar Askar wrote in a <a href="http://blog.ammaraskar.com/minecraft-vulnerability-advisory">blog post published Thursday</a>, 21 months, he said, after privately reporting the bug to <em>Minecraft</em> developer Mojang. "On the one hand I don't want to expose thousands of servers to a major vulnerability, yet on the other hand Mojang has failed to act on it."</p>
+ <p>The bug resides in the <a href="https://github.com/ammaraskar/pyCraft">networking internals of the <em>Minecraft </em>protocol</a>. It allows the contents of inventory slots to be exchanged, so that, among other things, items in players' hotbars are displayed automatically after logging in. <em>Minecraft</em> items can also store arbitrary metadata in a file format known as <a href="http://wiki.vg/NBT">Named Binary Tag (NBT)</a>, which allows complex data structures to be kept in hierarchical nests. Askar has released <a href="https://github.com/ammaraskar/pyCraft/tree/nbt_exploit">proof-of-concept attack code</a> he said exploits the vulnerability to crash any server hosting the game. Here's how it works.</p>
+ <blockquote>
+ <p>The vulnerability stems from the fact that the client is allowed to send the server information about certain slots. This, coupled with the NBT format’s nesting allows us to <em>craft</em> a packet that is incredibly complex for the server to deserialize but trivial for us to generate.</p>
+ <p>In my case, I chose to create lists within lists, down to five levels. This is a json representation of what it looks like.</p>
+ <div class="highlight"> <pre><code class="language-javascript" data-lang="javascript"><span class="nx">rekt</span><span class="o">:</span> <span class="p">{</span>
+ <span class="nx">list</span><span class="o">:</span> <span class="p">[</span>
+ <span class="nx">list</span><span class="o">:</span> <span class="p">[</span>
+ <span class="nx">list</span><span class="o">:</span> <span class="p">[</span>
+ <span class="nx">list</span><span class="o">:</span> <span class="p">[</span>
+ <span class="nx">list</span><span class="o">:</span> <span class="p">[</span>
+ <span class="nx">list</span><span class="o">:</span> <span class="p">[</span>
+ <span class="p">]</span>
+ <span class="nx">list</span><span class="o">:</span> <span class="p">[</span>
+ <span class="p">]</span>
+ <span class="nx">list</span><span class="o">:</span> <span class="p">[</span>
+ <span class="p">]</span>
+ <span class="nx">list</span><span class="o">:</span> <span class="p">[</span>
+ <span class="p">]</span>
+ <span class="p">...</span>
+ <span class="p">]</span>
+ <span class="p">...</span>
+ <span class="p">]</span>
+ <span class="p">...</span>
+ <span class="p">]</span>
+ <span class="p">...</span>
+ <span class="p">]</span>
+ <span class="p">...</span>
+ <span class="p">]</span>
+ <span class="p">...</span>
+<span class="p">}</span></code></pre> </div>
+ <p>The root of the object, <code>rekt</code>, contains 300 lists. Each list has a list with 10 sublists, and each of those sublists has 10 of their own, up until 5 levels of recursion. That’s a total of <code>10^5 * 300 = 30,000,000</code> lists.</p>
+ <p>And this isn’t even the theoretical maximum for this attack. Just the nbt data for this payload is 26.6 megabytes. But luckily Minecraft implements a way to compress large packets, lucky us! zlib shrinks down our evil data to a mere 39 kilobytes.</p>
+ <p>Note: in previous versions of Minecraft, there was no protocol wide compression for big packets. Previously, NBT was sent compressed with gzip and prefixed with a signed short of its length, which reduced our maximum payload size to <code>2^15 - 1</code>. Now that the length is a varint capable of storing integers up to <code>2^28</code>, our potential for attack has increased significantly.</p>
+ <p>When the server will decompress our data, it’ll have 27 megs in a buffer somewhere in memory, but that isn’t the bit that’ll kill it. When it attempts to parse it into NBT, it’ll create java representations of the objects meaning suddenly, the sever is having to create several million java objects including ArrayLists. This runs the server out of memory and causes tremendous CPU load.</p>
+ <p>This vulnerability exists on almost all previous and current Minecraft versions as of 1.8.3, the packets used as attack vectors are the <a href="http://wiki.vg/Protocol#Player_Block_Placement">0x08: Block Placement Packet</a> and <a href="http://wiki.vg/Protocol#Creative_Inventory_Action">0x10: Creative Inventory Action</a>.</p>
+ <p>The fix for this vulnerability isn’t exactly that hard, the client should never really send a data structure as complex as NBT of arbitrary size and if it must, some form of recursion and size limits should be implemented.</p>
+ <p>These were the fixes that I recommended to Mojang 2 years ago.</p>
+ </blockquote>
+ <p>Ars is asking Mojang for comment and will update this post if company officials respond.</p>
+ </div>
+ <div class="article-expander">
+ <p><a href="http://arstechnica.com/security/2015/04/16/just-released-minecraft-exploit-makes-it-easy-to-crash-game-servers/">Expand full story</a></p>
+ </div>
+ </section>
+ <div id="article-footer-wrap">
+ <section id="comments-area">
+ <a name="comments-bar"></a>
+ <div class="comments-bar"> <a class="subheading comments-read-link" href="http://arstechnica.com/security/2015/04/16/just-released-minecraft-exploit-makes-it-easy-to-crash-game-servers/?comments=1"><span class="text">Reader comments</span> <span class="comment-count"><span proptype="">75</span></span></a> </div>
+ <div id="comments-container"></div>
+ <div id="comments-posting-container" class="thick-divide-bottom">
+ <p id="reply">You must <a href="/civis/ucp.php?mode=login" class="vote_login">login or create an account</a> to comment.</p>
+ </div>
+ </section>
+ <aside class="thin-divide-bottom">
+ <ul class="share-buttons">
+ <li class="share-facebook">
+ <a href="https://www.facebook.com/sharer.php?u=http%3A%2F%2Farstechnica.com%2Fsecurity%2F2015%2F04%2F16%2Fjust-released-minecraft-exploit-makes-it-easy-to-crash-game-servers%2F" target="_blank" data-dialog="400:368"> <span class="share-text">Share</span>
+ <div class="share-count-container">
+ <div class="share-count">-</div>
+ </div>
+ </a>
+ </li>
+ <li class="share-twitter">
+ <a href="https://twitter.com/share?text=Just-released+Minecraft+exploit+makes+it+easy+to+crash+game+servers&amp;url=http%3A%2F%2Fars.to%2F1CSWnf5" target="_blank" data-dialog="364:250"> <span class="share-text">Tweet</span>
+ <div class="share-count-container">
+ <div class="share-count">-</div>
+ </div>
+ </a>
+ </li>
+ <li class="share-google">
+ <a href="https://plus.google.com/share?url=http%3A%2F%2Farstechnica.com%2Fsecurity%2F2015%2F04%2F16%2Fjust-released-minecraft-exploit-makes-it-easy-to-crash-game-servers%2F" target="_blank" data-dialog="485:600"> <span class="share-text">Google</span>
+ <div class="share-count-container">
+ <div class="share-count">-</div>
+ </div>
+ </a>
+ </li>
+ <li class="share-reddit">
+ <a href="https://www.reddit.com/submit?url=http%3A%2F%2Farstechnica.com%2Fsecurity%2F2015%2F04%2F16%2Fjust-released-minecraft-exploit-makes-it-easy-to-crash-game-servers%2F&amp;title=Just-released+Minecraft+exploit+makes+it+easy+to+crash+game+servers" target="_blank"> <span class="share-text">Reddit</span>
+ <div class="share-count-container">
+ <div class="share-count">-</div>
+ </div>
+ </a>
+ </li>
+ </ul>
+ </aside>
+ <!-- cache hit 459:single/author:ec67ae7d8397f22698e2822e36453902 -->
+ <section class="article-author clearfix-redux">
+ <a href="/author/dan-goodin"><img width="47" height="47" src="http://cdn.arstechnica.net/wp-content/uploads/authors/Dan-Goodin-sq.jpg"/></a>
+ <p><a href="/author/dan-goodin" class="author-name">Dan Goodin</a> / Dan is the Security Editor at Ars Technica, which he joined in 2012 after working for The Register, the Associated Press, Bloomberg News, and other publications.</p>
+ </section>
+ <table class="post-links thick-divide-top thin-divide-bottom clearfix-redux" cellspacing="0" cellpadding="0" border="0" width="100%">
+ <tbody>
+ <tr>
+ <td width="50%" class="subheading older"> <a href="http://arstechnica.com/tech-policy/2015/04/16/dozens-of-us-government-online-whistleblower-sites-not-secured-by-https/" rel="prev"><span class="arrow">←</span> Older Story</a> </td>
+ <td class="subheading newer"> <a href="http://arstechnica.com/gaming/2015/04/16/hidden-files-suggest-street-fighters-ryu-may-come-to-smash-bros/" rel="next">Newer Story <span class="arrow">→</span></a> </td>
+ </tr>
+ </tbody>
+ </table>
+ <footer id="article-footer">
+ <div id="instream300x255_frame"></div>
+ <script type="text/javascript">
+ ars.AD.queue.push(['instream', {
+ sz: '300x255',
+ kws: ["blogvertorial", "inStream"],
+ collapse: true
+ }]);
+ </script>
+ <h2 class="subheading notched">You May Also Like</h2>
+ <ul id="recommendations" class="clearfix-redux">
+ <!-- cache miss 459:single/sponsored-recs:885d56085f538f75cf5e9bcb302f399f -->
+ </ul>
+ </footer>
+ </div>
+ </article>
+ <section id="article-sidebar" class="column-1 right">
+ <!-- cache hit 459:column/article-bottom:b3538aec37c1a165d2b4b62bd58e56e3 -->
+ <aside class="side-ad thick-divide-bottom">
+ <div id="xrailTop300x250_frame"></div>
+ <script type="text/javascript">
+ ars.AD.queue.push(['xrailTop', {
+ sz: '300x250',
+ kws: ["top"],
+ collapse: true
+ }]);
+ </script>
+ </aside>
+ <h2 id="recent-featured-title" class="subheading notched">Latest Feature Story</h2>
+ <ul class="column">
+ <li class="post" id="post-658367">
+ <article class="in-column" data-post-id="658367">
+ <a href="http://arstechnica.com/apple/2015/05/03/review-the-absolutely-optional-apple-watch-and-watch-os-1-0/" class="headline-image"> <img src="http://cdn.arstechnica.net/wp-content/uploads/2015/05/DSC00588-300x100.jpg" width="300" height="100"/>
+ <h2 class="page-count subheading">Feature Story (7 pages)</h2>
+ <h1 class="heading">Review: The absolutely optional Apple Watch and Watch OS 1.0</h1> </a>
+ <p class="excerpt">A pragmatist's guide to a nice but not quite necessary gadget.</p>
+ </article>
+ </li>
+ <aside class="thick-divide-top">
+ <h2 class="subheading notched">Watch Ars Video</h2>
+ <article class="in-column">
+ <div class="column-video" data-player="2196096102001" data-video="4202322531001" data-key="AQ~~,AAAAlDCBGhk~,VcmqiTAuekrwPweJ20LLt7jwm8LxmhCE"> <img src="https://cdn.arstechnica.net/i/http://brightcove.vo.llnwd.net/v1/unsecured/media/636468927001/201504/641/636468927001_4202397654001_LG-G4.jpg?pubId=636468927001" width="300" height="169"/>
+ <div class="column-video-overlay"></div>
+ </div> <a href="http://arstechnica.com/gadgets/2015/04/28/hands-on-with-the-leather-backed-lg-g4/"><h1 class="heading videohead">Hands-on with the New LG G4</h1></a>
+ <p class="excerpt">LG goes with a wild rear design and a Snapdragon 808.</p>
+ </article>
+ </aside>
+ <li id="in-the-know">
+ <h2 class="subheading notched">Stay in the know with</h2>
+ <ul class="social clearfix">
+ <li class="fb">
+ <a href="https://www.facebook.com/arstechnica"></a>
+ </li>
+ <li class="twit">
+ <a href="https://twitter.com/arstechnica"></a>
+ </li>
+ <li class="gplus">
+ <a href="https://plus.google.com/+ArsTechnica/posts"></a>
+ </li>
+ <li class="email">
+ <a href="http://arstechnica.us1.list-manage.com/subscribe?u=af7f013bad7e785d15aab736f&amp;id=0adf3ee3d9"></a>
+ </li>
+ <li class="rss">
+ <a href="/rss-feeds/"></a>
+ </li>
+ </ul>
+ </li>
+ <h2 class="subheading notched">Latest News</h2>
+ <ol class="rail latest-stories">
+ <li>
+ <a href="http://arstechnica.com/information-technology/2015/05/04/microsoft-bangs-the-cybersecurity-drum-with-advanced-threat-analytics/">
+ <h2>Protecting networks from your own employees</h2>
+ <h1 class="heading">Microsoft bangs the cybersecurity drum with Advanced Threat Analytics</h1> </a>
+ </li>
+ <li>
+ <a href="http://arstechnica.com/information-technology/2015/05/04/windows-update-for-business-brings-windows-updates-to-your-business/">
+ <h2>WUB WUB WUB WUB</h2>
+ <h1 class="heading">Windows Update for Business brings Windows updates to your business</h1> </a>
+ </li>
+ <li>
+ <a href="http://arstechnica.com/security/2015/05/04/super-secretive-malware-wipes-hard-drive-to-prevent-analysis/">
+ <h2>INITIATE SELF-DESTRUCT SEQUENCE</h2>
+ <h1 class="heading">Super secretive malware wipes hard drive to prevent analysis</h1> </a>
+ </li>
+ <li>
+ <a href="http://arstechnica.com/gaming/2015/05/04/failed-christian-shoe-promoter-makes-anti-gay-first-person-shooter/"> <img src="http://cdn.arstechnica.net/wp-content/uploads/2015/05/Screen-Shot-2015-05-04-at-2.45.22-PM-150x150.png" width="50" height="50"/>
+ <h1 class="heading">Failed Christian shoe promoter makes anti-gay first-person shooter</h1> </a>
+ </li>
+ <li>
+ <a href="http://arstechnica.com/information-technology/2015/05/04/prime-minister-of-singapore-shares-his-c-code-for-sudoku-solver/">
+ <h2>#include stdio.h</h2>
+ <h1 class="heading">Prime Minister of Singapore shares his C++ code for Sudoku solver</h1> </a>
+ </li>
+ <li>
+ <a href="http://arstechnica.com/tech-policy/2015/05/04/9th-circuit-judges-rip-into-prenda-law-copyright-trolling-scheme/"> <img src="http://cdn.arstechnica.net/wp-content/uploads/2015/05/Screen-Shot-2015-05-04-at-11.09.05-AM-150x150.png" width="50" height="50"/>
+ <h1 class="heading">9th Circuit judges rip into Prenda law copyright trolling scheme</h1> </a>
+ </li>
+ <div style="display:none">
+ <div id="polar195x130_frame"></div>
+ <script type="text/javascript">
+ ars.AD.queue.push(['polar', {
+ sz: '195x130',
+ kws: [],
+ collapse: true
+ }]);
+ </script>
+ </div>
+ </ol>
+ <li>
+ <aside class="side-ad">
+ <div id="xrailBottom300x250_frame"></div>
+ <script type="text/javascript">
+ ars.AD.queue.push(['xrailBottom', {
+ sz: '300x250',
+ kws: ["bottom"],
+ collapse: true
+ }]);
+ </script>
+ </aside>
+ </li>
+ <li class="thick-divide-top thick-divide-bottom">
+ <aside class="side-ad">
+ <script type="text/javascript" language="JavaScript">
+ // <![CDATA[
+ google_ad_client = 'ca-conde_arstechnica';
+ google_ad_channel = 'ars_technica_standard_a';
+ google_language = 'en';
+ google_ad_width = '300';
+ google_ad_height = '250';
+ google_ad_type = 'text';
+ google_encoding = 'utf8';
+ google_safe = 'high';
+ google_adtest = 'off';
+ google_ad_format = '';
+ google_ad_section = 'default';
+ // ]]>
+ </script>
+ <script type="text/javascript" src="//pagead2.googlesyndication.com/pagead/show_ads.js" language="JavaScript"></script>
+ </aside>
+ </li>
+ </ul>
+ </section>
+ </section>
+ <footer id="page-footer">
+ <nav id="footer-nav" class="clearfix">
+ <div class="nav-section">
+ <h2 class="subheading">Site Links</h2>
+ <ul>
+ <li><a href="/about-us/">About Us</a></li>
+ <li><a href="/advertise-with-us/">Advertise with us</a></li>
+ <li><a href="/contact-us/">Contact Us</a></li>
+ <li><a href="/reprints/">Reprints</a></li>
+ </ul>
+ <h2 class="subheading">Subscriptions</h2>
+ <ul>
+ <li><a href="/subscriptions/">Subscribe to Ars</a></li>
+ </ul>
+ </div>
+ <div class="nav-section">
+ <h2 class="subheading">More Reading</h2>
+ <ul>
+ <li><a href="/rss-feeds/">RSS Feeds</a></li>
+ <li><a href="/newsletters/">Newsletters</a></li>
+ </ul>
+ </div>
+ <div class="nav-section">
+ <h2 class="subheading">Conde Nast Sites</h2>
+ <ul class="conde-nast-sites">
+ <li><a href="http://www.reddit.com/">Reddit</a></li>
+ <li><a href="http://www.wired.com/">Wired</a></li>
+ <li><a href="http://www.vanityfair.com/">Vanity Fair</a></li>
+ <li><a href="http://www.style.com/">Style</a></li>
+ <li><a href="http://www.details.com/">Details</a></li>
+ </ul>
+ <form method="get" action="#">
+ <select id="mag_list" name="mag_list" onchange="(this.options[this.selectedIndex].value) ? (window.location = this.options[this.selectedIndex].value) : null">
+ <option value="" selected="selected">Visit our sister sites</option>
+ <option value="">- - - - - - - - - - - - - -</option>
+ <option value="http://www.gq.com">GQ</option>
+ <option value="http://www.concierge.com">Concierge</option>
+ <option value="http://www.epicurious.com">Epicurious</option>
+ <option value="http://men.style.com">Men.Style.com</option>
+ <option value="http://www.style.com">Style.com</option>
+ <option value="http://www.wired.com">Wired.com</option>
+ <option value="http://www.lipstick.com">Lipstick.com</option>
+ <option value="http://www.nutritiondata.com">NutritionData</option>
+ <option value="http://www.allure.com">Allure</option>
+ <option value="http://www.architecturaldigest.com">Architectural Digest</option>
+ <option value="http://www.bonappetit.com">Bon Appétit</option>
+ <option value="http://www.brides.com">Brides</option>
+ <option value="http://www.portfolio.com">Condé Nast Portfolio</option>
+ <option value="http://www.glamour.com">Glamour</option>
+ <option value="http://www.golfdigest.com">Golf Digest</option>
+ <option value="http://www.golfworld.com">Golf World</option>
+ <option value="http://www.luckymag.com">Lucky</option>
+ <option value="http://www.self.com">Self</option>
+ <option value="http://www.teenvogue.com">Teen Vogue</option>
+ <option value="http://www.newyorker.com">The New Yorker</option>
+ <option value="http://www.vanityfair.com">Vanity Fair</option>
+ <option value="http://www.wmagazine.com">W</option>
+ </select>
+ </form>
+ <form method="get" action="#">
+ <select size="1" id="sub_list" name="sub_list" onchange="(this.options[this.selectedIndex].value) ? (window.location = this.options[this.selectedIndex].value) : null">
+ <option value="" selected="selected">Subscribe to a magazine</option>
+ <option value="http://www.magazinestoresubscriptions.com?source=univdropdown">View All Titles</option>
+ <option value="">- - - - - - - - - - - - - -</option>
+ <option value="https://www.magazinestoresubscriptions.com/webapp/wcs/stores/servlet/Subscriptions_Allure?source=SITEFOOTER">Allure</option>
+ <option value="https://www.magazinestoresubscriptions.com/webapp/wcs/stores/servlet/Subscriptions_ArchitecturalDigest">Architectural Digest</option>
+ <option value="https://www.magazinestoresubscriptions.com/webapp/wcs/stores/servlet/Subscriptions_BonAppetite?source=SITEFOOTER">Bon Appétit</option>
+ <option value="https://www.magazinestoresubscriptions.com/webapp/wcs/stores/servlet/Subscriptions_Brides?source=SITEFOOTER">Brides</option>
+ <option value="https://www.magazinestoresubscriptions.com/webapp/wcs/stores/servlet/Subscriptions_CondeNastPortfolio?source=SITEFOOTER">Condé Nast Portfolio</option>
+ <option value="https://www.magazinestoresubscriptions.com/webapp/wcs/stores/servlet/Subscriptions_CondeNastTraveler?source=SITEFOOTER">Condé Nast Traveler</option>
+ <option value="https://www.magazinestoresubscriptions.com/webapp/wcs/stores/servlet/Subscriptions_Details?source=SITEFOOTER">Details</option>
+ <option value="https://www.magazinestoresubscriptions.com/webapp/wcs/stores/servlet/Subscriptions_ElegantBride?source=SITEFOOTER">Elegant Bride</option>
+ <option value="https://www.magazinestoresubscriptions.com/webapp/wcs/stores/servlet/Subscriptions_Glamour?source=SITEFOOTER">Glamour</option>
+ <option value="https://www.magazinestoresubscriptions.com/webapp/wcs/stores/servlet/Subscriptions_GolfDigest?source=SITEFOOTER">Golf Digest</option>
+ <option value="https://www.magazinestoresubscriptions.com/webapp/wcs/stores/servlet/Subscriptions_GolfWorld?source=SITEFOOTER">Golf World</option>
+ <option value="https://www.magazinestoresubscriptions.com/webapp/wcs/stores/servlet/Subscriptions_GQ?source=SITEFOOTER">GQ</option>
+ <option value="https://www.magazinestoresubscriptions.com/webapp/wcs/stores/servlet/Subscriptions_Lucky?source=SITEFOOTER">Lucky</option>
+ <option value="https://www.magazinestoresubscriptions.com/webapp/wcs/stores/servlet/Subscriptions_ModernBride?source=SITEFOOTER">Modern Bride</option>
+ <option value="https://www.magazinestoresubscriptions.com/webapp/wcs/stores/servlet/Subscriptions_Self?source=SITEFOOTER">Self</option>
+ <option value="https://www.magazinestoresubscriptions.com/webapp/wcs/stores/servlet/Subscriptions_TeenVogue?source=SITEFOOTER">Teen Vogue</option>
+ <option value="https://www.magazinestoresubscriptions.com/webapp/wcs/stores/servlet/Subscriptions_NewYorker?source=SITEFOOTER">The New Yorker</option>
+ <option value="https://www.magazinestoresubscriptions.com/webapp/wcs/stores/servlet/Subscriptions_VanityFair?source=SITEFOOTER">Vanity Fair</option>
+ <option value="https://www.magazinestoresubscriptions.com/webapp/wcs/stores/servlet/Subscriptions_Vogue?source=SITEFOOTER">Vogue</option>
+ <option value="https://www.magazinestoresubscriptions.com/webapp/wcs/stores/servlet/Subscriptions_W?source=SITEFOOTER">W</option>
+ <option value="https://www.magazinestoresubscriptions.com/webapp/wcs/stores/servlet/Subscriptions_Wired?source=SITEFOOTER">Wired</option>
+ </select>
+ </form>
+ </div>
+ <div class="nav-section" id="mobile-site">
+ <h2 class="subheading"><a href="http://arstechnica.com/security/2015/04/16/just-released-minecraft-exploit-makes-it-easy-to-crash-game-servers/?view=mobile">View Mobile Site</a></h2> </div>
+ </nav>
+ <p style="text-align:center;margin-top:30px;margin-bottom:0">
+ <a href="http://condenast.com"><img src="http://cdn.arstechnica.net/wp-content/themes/arstechnica/assets/images/condenast-logo.png" width="131" height="19"/></a>
+ </p>
+ <div id="copyright-terms"> © 2015 Condé Nast. All rights reserved
+ <br/> Use of this Site constitutes acceptance of our <a href="http://www.condenast.com/privacy-policy" target="_blank">User Agreement</a> (effective 1/2/14) and <a href="http://www.condenast.com/privacy-policy#privacypolicy" target="_blank">Privacy Policy</a> (effective 1/2/14), and <a href="/amendment-to-conde-nast-user-agreement-privacy-policy/">Ars Technica Addendum (effective 5/17/2012)</a>
+ <br/> <a href="http://www.condenast.com/privacy-policy#privacypolicy-california" target="_blank">Your California Privacy Rights</a>
+ <br/> The material on this site may not be reproduced, distributed, transmitted, cached or otherwise used, except with the prior written permission of Condé Nast.
+ <br/>
+ <br/> <a href="http://www.condenast.com/privacy-policy#privacypolicy-optout" target="_blank">Ad Choices</a><img width="10" height="10" border="0" src="http://cdn.arstechnica.net/wp-content/themes/arstechnica/assets/images/ad_choices_arrow.png"/> </div>
+ </footer>
+ </div>
+ <script type="text/javascript" src="//www.google.com/jsapi?autoload={'modules':[{'name':'search','version':'1','packages':[],'language':'en'}]}"></script>
+ <script type="text/javascript" src="http://cdn.arstechnica.net/wp-content/themes/arstechnica/assets/js/ars.min.4963c9cfd2e7a5799f3b8c40325988b4.js"></script>
+ <!-- what the christ -->
+ <script type="text/javascript" src="//www.googletagservices.com/tag/js/gpt.js"></script>
+ <script type="text/javascript" src="http://cdn.arstechnica.net/ads/js/cn.dart.bun.min.js"></script>
+ <script type="text/javascript">
+ (function() {
+ if ("CN" in window) {
+ if (ars.MOBILE && "UAParser" in window) {
+ var ua = new UAParser();
+ if (ua.getOS().name == "Android" && ua.getBrowser().name == "Chrome") {
+ return;
+ }
+ }
+ CN.site.init({
+ code: "ars",
+ title: "Ars",
+ name: ars.MOBILE ? "ars.mobile" : "ars",
+ env: ars.ENV === "production" ? "PROD" : "DEV",
+ debug: ars.ENV !== "production"
+ });
+ CN.dart.init({
+ site: CN.site.name + '.dart',
+ zone: ars.AD.zone,
+ kws: ars.AD.kw,
+ gptCallback: function(e) {
+ ars.sda.ad_loaded(e);
+ }
+ });
+ CN.dart.getCommon()["domDelay"]["defaultVal"] = 100;
+ for (var i = 0; i &lt; ars.AD.queue.length; i++) {
+ var ad = ars.AD.queue[i],
+ id = ad[0],
+ args = ad[1];
+ if ($('#' + id + args.sz + "_frame").length) CN.dart.call(id, args);
+ }
+ ars.AD.queue = [];
+ }
+ })();
+ </script>
+ <script type="text/javascript">
+ CN.ad.polar.article = function(Handlebars, depth0, helpers, partials, data) {
+ this.compilerInfo = [4, '>= 1.0.0'];
+ helpers = this.merge(helpers, Handlebars.helpers);
+ data = data || {};
+ var buffer = "",
+ stack1, stack2, functionType = "function",
+ escapeExpression = this.escapeExpression,
+ self = this;
+
+ function program1(depth0, data) {
+ var buffer = "",
+ stack1;
+ buffer += "\n &lt;span style=\"width:50px; height:50px; overflow:hidden; display:inline-block; float:left; margin:2px 10px 5px 0\">\n &lt;img src=\"" + escapeExpression(((stack1 = ((stack1 = depth0.image), stack1 == null || stack1 === false ? stack1 : stack1.href)), typeof stack1 === functionType ? stack1.apply(depth0) : stack1)) + "\" style=\"float:none; margin:0; height:50px; width:auto;\" />\n &lt;/span>\n ";
+ return buffer;
+ }
+ buffer += "&lt;li>\n &lt;a href=\"";
+ if (stack1 = helpers.link) {
+ stack1 = stack1.call(depth0, {
+ hash: {},
+ data: data
+ });
+ } else {
+ stack1 = depth0.link;
+ stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1;
+ }
+ buffer += escapeExpression(stack1) + "\">\n &lt;h2 style=\"color:#00A3D3;\">Sponsored by: &lt;span style=\"text-transform:none;\">" + escapeExpression(((stack1 = ((stack1 = depth0.sponsor), stack1 == null || stack1 === false ? stack1 : stack1.name)), typeof stack1 === functionType ? stack1.apply(depth0) : stack1)) + "&lt;/span>&lt;/h2>\n ";
+ stack2 = helpers['if'].call(depth0, ((stack1 = depth0.image), stack1 == null || stack1 === false ? stack1 : stack1.href), {
+ hash: {},
+ inverse: self.noop,
+ fn: self.program(1, program1, data),
+ data: data
+ });
+ if (stack2 || stack2 === 0) {
+ buffer += stack2;
+ }
+ buffer += "\n &lt;h1 class=\"heading\">";
+ if (stack2 = helpers.title) {
+ stack2 = stack2.call(depth0, {
+ hash: {},
+ data: data
+ });
+ } else {
+ stack2 = depth0.title;
+ stack2 = typeof stack2 === functionType ? stack2.apply(depth0) : stack2;
+ }
+ buffer += escapeExpression(stack2) + "&lt;/h1>\n &lt;/a>\n&lt;/li>";
+ return buffer;
+ };
+ </script>
+ <!-- cache hit 459:single/javascript-footer:1ad28a5dc0a24868be6b031b5fdecb2e -->
+ <noscript>
+ <a href="http://www.omniture.com" title="Web Analytics"><img src="http://condenast.112.2o7.net/b/ss/condenet-dev/1/H.15.1--NS/0" height="1" width="1" border="0" alt="" /></a>
+ </noscript>
+ <!-- Google Analytics start -->
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(
+ ['_setAccount', 'UA-31997-1'], ['_setCustomVar', 1, 'view', "grid"], ['_setCustomVar', 2, 'theme', "light"], ['_setCustomVar', 3, 'logged_in', "false"], ['_setCustomVar', 4, 'show_comments', "false"], ['_setCustomVar', 5, 'is_premier', "false"], ['_trackPageview']);
+ (function() {
+ var ga = document.createElement('script');
+ ga.type = 'text/javascript';
+ ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0];
+ s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ <!-- Google Analytics end -->
+ <!-- Parse.ly start -->
+ <script type="text/javascript">
+ (function(d) {
+ var site = "arstechnica.com",
+ b = d.body,
+ e = d.createElement("div");
+ e.innerHTML = '<span id="parsely-cfg" data-parsely-site="' + site + '"></span>';
+ e.id = "parsely-root";
+ e.style.display = "none";
+ b.appendChild(e);
+ })(document);
+ (function(s, p, d) {
+ var h = d.location.protocol,
+ i = p + "-" + s,
+ e = d.getElementById(i),
+ r = d.getElementById(p + "-root"),
+ u = h === "https:" ? "d1z2jf7jlzjs58.cloudfront.net" : "static." + p + ".com";
+ if (e) return;
+ e = d.createElement(s);
+ e.id = i;
+ e.async = true;
+ e.src = h + "//" + u + "/p.js";
+ r.appendChild(e);
+ })("script", "parsely", document);
+ </script>
+ <!-- Parse.ly end -->
+</body>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url-base-element-relative/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url-base-element-relative/expected-images.json
new file mode 100644
index 000000000..5e3fa4120
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url-base-element-relative/expected-images.json
@@ -0,0 +1,6 @@
+{
+ "0": "http:\/\/fakehost\/test\/base\/foo\/bar\/baz.png",
+ "2": "http:\/\/fakehost\/foo\/bar\/baz.png",
+ "3": "http:\/\/test\/foo\/bar\/baz.png",
+ "4": "https:\/\/test\/foo\/bar\/baz.png"
+} \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url-base-element-relative/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url-base-element-relative/expected-metadata.json
new file mode 100644
index 000000000..e58519c37
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url-base-element-relative/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,\n quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo\n consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse\n cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non\n proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
+ "Image": null,
+ "Title": "Base URL with base relative test",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url-base-element-relative/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url-base-element-relative/expected.html
new file mode 100644
index 000000000..14d23f672
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url-base-element-relative/expected.html
@@ -0,0 +1,33 @@
+<article>
+ <p>
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ <p>Links</p>
+ <p><a href="http://fakehost/test/base/foo/bar/baz.html">link</a></p>
+ <p><a href="http://fakehost/test/base/foo/bar/baz.html">link</a></p>
+ <p><a href="http://fakehost/foo/bar/baz.html">link</a></p>
+ <p><a href="#foo">link</a></p>
+ <p><a href="http://fakehost/test/base/baz.html#foo">link</a></p>
+ <p><a href="http://fakehost/foo/bar/baz.html#foo">link</a></p>
+ <p><a href="http://test/foo/bar/baz.html">link</a></p>
+ <p><a href="https://test/foo/bar/baz.html">link</a></p>
+ <p>Images</p>
+ <p><img src="http://fakehost/test/base/foo/bar/baz.png"></img></p>
+ <p><img src="http://fakehost/test/base/foo/bar/baz.png"></img></p>
+ <p><img src="http://fakehost/foo/bar/baz.png"></img></p>
+ <p><img src="http://test/foo/bar/baz.png"></img></p>
+ <p><img src="https://test/foo/bar/baz.png"></img></p>
+ <h2>Foo</h2>
+ <p>
+ Tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ </article> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url-base-element-relative/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url-base-element-relative/source.html
new file mode 100644
index 000000000..bb0f7df01
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url-base-element-relative/source.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8"/>
+ <base href="base/"/>
+ <title>Base URL with base relative test</title>
+</head>
+<body>
+ <article>
+ <h1>Lorem</h1>
+ <div>
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </div>
+ <p>Links</p>
+ <p><a href="foo/bar/baz.html">link</a></p>
+ <p><a href="./foo/bar/baz.html">link</a></p>
+ <p><a href="/foo/bar/baz.html">link</a></p>
+ <p><a href="#foo">link</a></p>
+ <p><a href="baz.html#foo">link</a></p>
+ <p><a href="/foo/bar/baz.html#foo">link</a></p>
+ <p><a href="http://test/foo/bar/baz.html">link</a></p>
+ <p><a href="https://test/foo/bar/baz.html">link</a></p>
+ <p>Images</p>
+ <p><img src="foo/bar/baz.png"/></p>
+ <p><img src="./foo/bar/baz.png"/></p>
+ <p><img src="/foo/bar/baz.png"/></p>
+ <p><img src="http://test/foo/bar/baz.png"/></p>
+ <p><img src="https://test/foo/bar/baz.png"/></p>
+ <h2>Foo</h2>
+ <div>
+ Tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </div>
+ </article>
+</body>
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url-base-element/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url-base-element/expected-images.json
new file mode 100644
index 000000000..c4a597eea
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url-base-element/expected-images.json
@@ -0,0 +1,5 @@
+{
+ "0": "http:\/\/fakehost\/foo\/bar\/baz.png",
+ "3": "http:\/\/test\/foo\/bar\/baz.png",
+ "4": "https:\/\/test\/foo\/bar\/baz.png"
+} \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url-base-element/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url-base-element/expected-metadata.json
new file mode 100644
index 000000000..e7a86a752
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url-base-element/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,\n quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo\n consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse\n cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non\n proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
+ "Image": null,
+ "Title": "Base URL with base test",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url-base-element/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url-base-element/expected.html
new file mode 100644
index 000000000..5037eb265
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url-base-element/expected.html
@@ -0,0 +1,33 @@
+<article>
+ <p>
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ <p>Links</p>
+ <p><a href="http://fakehost/foo/bar/baz.html">link</a></p>
+ <p><a href="http://fakehost/foo/bar/baz.html">link</a></p>
+ <p><a href="http://fakehost/foo/bar/baz.html">link</a></p>
+ <p><a href="#foo">link</a></p>
+ <p><a href="http://fakehost/baz.html#foo">link</a></p>
+ <p><a href="http://fakehost/foo/bar/baz.html#foo">link</a></p>
+ <p><a href="http://test/foo/bar/baz.html">link</a></p>
+ <p><a href="https://test/foo/bar/baz.html">link</a></p>
+ <p>Images</p>
+ <p><img src="http://fakehost/foo/bar/baz.png"></img></p>
+ <p><img src="http://fakehost/foo/bar/baz.png"></img></p>
+ <p><img src="http://fakehost/foo/bar/baz.png"></img></p>
+ <p><img src="http://test/foo/bar/baz.png"></img></p>
+ <p><img src="https://test/foo/bar/baz.png"></img></p>
+ <h2>Foo</h2>
+ <p>
+ Tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ </article> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url-base-element/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url-base-element/source.html
new file mode 100644
index 000000000..4b3c63c8e
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url-base-element/source.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8"/>
+ <base href="/"/>
+ <title>Base URL with base test</title>
+</head>
+<body>
+ <article>
+ <h1>Lorem</h1>
+ <div>
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </div>
+ <p>Links</p>
+ <p><a href="foo/bar/baz.html">link</a></p>
+ <p><a href="./foo/bar/baz.html">link</a></p>
+ <p><a href="/foo/bar/baz.html">link</a></p>
+ <p><a href="#foo">link</a></p>
+ <p><a href="baz.html#foo">link</a></p>
+ <p><a href="/foo/bar/baz.html#foo">link</a></p>
+ <p><a href="http://test/foo/bar/baz.html">link</a></p>
+ <p><a href="https://test/foo/bar/baz.html">link</a></p>
+ <p>Images</p>
+ <p><img src="foo/bar/baz.png"/></p>
+ <p><img src="./foo/bar/baz.png"/></p>
+ <p><img src="/foo/bar/baz.png"/></p>
+ <p><img src="http://test/foo/bar/baz.png"/></p>
+ <p><img src="https://test/foo/bar/baz.png"/></p>
+ <h2>Foo</h2>
+ <div>
+ Tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </div>
+ </article>
+</body>
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url/expected-images.json
new file mode 100644
index 000000000..1c28ae60c
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url/expected-images.json
@@ -0,0 +1,6 @@
+{
+ "0": "http:\/\/fakehost\/test\/foo\/bar\/baz.png",
+ "2": "http:\/\/fakehost\/foo\/bar\/baz.png",
+ "3": "http:\/\/test\/foo\/bar\/baz.png",
+ "4": "https:\/\/test\/foo\/bar\/baz.png"
+} \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url/expected-metadata.json
new file mode 100644
index 000000000..291ff94bc
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,\n quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo\n consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse\n cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non\n proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
+ "Image": null,
+ "Title": "Base URL test",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url/expected.html
new file mode 100644
index 000000000..36981e1e7
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url/expected.html
@@ -0,0 +1,33 @@
+<article>
+ <p>
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ <p>Links</p>
+ <p><a href="http://fakehost/test/foo/bar/baz.html">link</a></p>
+ <p><a href="http://fakehost/test/foo/bar/baz.html">link</a></p>
+ <p><a href="http://fakehost/foo/bar/baz.html">link</a></p>
+ <p><a href="#foo">link</a></p>
+ <p><a href="http://fakehost/test/baz.html#foo">link</a></p>
+ <p><a href="http://fakehost/foo/bar/baz.html#foo">link</a></p>
+ <p><a href="http://test/foo/bar/baz.html">link</a></p>
+ <p><a href="https://test/foo/bar/baz.html">link</a></p>
+ <p>Images</p>
+ <p><img src="http://fakehost/test/foo/bar/baz.png"></img></p>
+ <p><img src="http://fakehost/test/foo/bar/baz.png"></img></p>
+ <p><img src="http://fakehost/foo/bar/baz.png"></img></p>
+ <p><img src="http://test/foo/bar/baz.png"></img></p>
+ <p><img src="https://test/foo/bar/baz.png"></img></p>
+ <h2>Foo</h2>
+ <p>
+ Tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ </article> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url/source.html
new file mode 100644
index 000000000..748b8be7d
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/base-url/source.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8"/>
+ <title>Base URL test</title>
+</head>
+<body>
+ <article>
+ <h1>Lorem</h1>
+ <div>
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </div>
+ <p>Links</p>
+ <p><a href="foo/bar/baz.html">link</a></p>
+ <p><a href="./foo/bar/baz.html">link</a></p>
+ <p><a href="/foo/bar/baz.html">link</a></p>
+ <p><a href="#foo">link</a></p>
+ <p><a href="baz.html#foo">link</a></p>
+ <p><a href="/foo/bar/baz.html#foo">link</a></p>
+ <p><a href="http://test/foo/bar/baz.html">link</a></p>
+ <p><a href="https://test/foo/bar/baz.html">link</a></p>
+ <p>Images</p>
+ <p><img src="foo/bar/baz.png"/></p>
+ <p><img src="./foo/bar/baz.png"/></p>
+ <p><img src="/foo/bar/baz.png"/></p>
+ <p><img src="http://test/foo/bar/baz.png"/></p>
+ <p><img src="https://test/foo/bar/baz.png"/></p>
+ <h2>Foo</h2>
+ <div>
+ Tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </div>
+ </article>
+</body>
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/basic-tags-cleaning/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/basic-tags-cleaning/expected-images.json
new file mode 100644
index 000000000..0637a088a
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/basic-tags-cleaning/expected-images.json
@@ -0,0 +1 @@
+[] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/basic-tags-cleaning/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/basic-tags-cleaning/expected-metadata.json
new file mode 100644
index 000000000..a31ae0ba7
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/basic-tags-cleaning/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua.",
+ "Image": null,
+ "Title": "Basic tag cleaning test",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/basic-tags-cleaning/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/basic-tags-cleaning/expected.html
new file mode 100644
index 000000000..c66b95c70
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/basic-tags-cleaning/expected.html
@@ -0,0 +1,18 @@
+<div>
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua.</p>
+ <p>Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat.</p>
+
+ <p>Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+ </div><div>
+ <p>Tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat.</p>
+ <p>Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/basic-tags-cleaning/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/basic-tags-cleaning/source.html
new file mode 100644
index 000000000..d00f4cc27
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/basic-tags-cleaning/source.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8"/>
+ <title>Basic tag cleaning test</title>
+</head>
+<body>
+ <article>
+ <h1>Lorem</h1>
+ <div>
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua.</p>
+ <p>Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat.</p>
+ <iframe src="about:blank">Iframe fallback test</iframe>
+ <p>Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+ </div>
+ <h2>Foo</h2>
+ <div>
+ <p>Tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat.</p>
+ <object data="foo.swf" type="application/x-shockwave-flash" width="88" height="31">
+ <param movie="foo.swf" />
+ </object>
+ <embed src="foo.swf"/>
+ <p>Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+ </div>
+ </article>
+</body>
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/bbc-1/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/bbc-1/expected-images.json
new file mode 100644
index 000000000..44bca8dce
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/bbc-1/expected-images.json
@@ -0,0 +1,7 @@
+{
+ "0": "http:\/\/ichef.bbci.co.uk\/news\/1024\/cpsprodpb\/3D8B\/production\/_84455751_84455749.jpg",
+ "1": "http:\/\/ichef.bbci.co.uk\/news\/555\/cpsprodpb\/462D\/production\/_84456971_gettyimages-167501087.jpg",
+ "2": "http:\/\/ichef.bbci.co.uk\/news\/555\/media\/images\/76020000\/jpg\/_76020974_line976.jpg",
+ "3": "http:\/\/ichef-1.bbci.co.uk\/news\/555\/cpsprodpb\/6D3D\/production\/_84456972_p072315al-0500.jpg",
+ "5": "http:\/\/ichef-1.bbci.co.uk\/news\/555\/cpsprodpb\/142FD\/production\/_84458628_shirtreuters.jpg"
+} \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/bbc-1/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/bbc-1/expected-metadata.json
new file mode 100644
index 000000000..6af682f84
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/bbc-1/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "President Barack Obama tells the BBC his failure to pass \"common sense gun safety laws\" is the greatest frustration of his presidency.",
+ "Image": "http:\/\/ichef.bbci.co.uk\/news\/1024\/cpsprodpb\/3D8B\/production\/_84455751_84455749.jpg",
+ "Title": "Obama admits US gun laws are his 'biggest frustration' - BBC News",
+ "SiteName": "BBC News"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/bbc-1/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/bbc-1/expected.html
new file mode 100644
index 000000000..ca646fe80
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/bbc-1/expected.html
@@ -0,0 +1,17 @@
+<div property="articleBody">
+ <p>President Barack Obama has admitted that his failure to pass "common sense gun safety laws" in the US is the greatest frustration of his presidency. </p><p>In an interview with the BBC, Mr Obama said it was "distressing" not to have made progress on the issue "even in the face of repeated mass killings".</p><p>He vowed to keep trying, but the BBC's North America editor Jon Sopel said the president did not sound very confident. </p><p>However, Mr Obama said race relations had improved during his presidency. </p><p>Hours after the interview, a gunman opened fire at a cinema in the US state of Louisiana, killing two people and injuring several others before shooting himself.</p><p>In a wide-ranging interview, President Obama also said:</p><ul><li>
+<a href="http://www.bbc.co.uk/news/uk-politics-33647154">The UK must stay in the EU</a> to have influence on the world stage</li>
+<li>He is confident the Iran nuclear deal will be passed by Congress </li>
+<li>Syria needs a political solution in order to defeat the Islamic State group</li>
+<li>He would speak "bluntly" against corruption <a href="http://www.bbc.co.uk/news/world-us-canada-33646563">and human rights violations in Kenya</a>
+</li>
+<li>He would defend his advocacy of gay rights following protests in Kenya</li>
+<li>Despite racial tensions, the US is becoming more diverse and more tolerant</li>
+</ul><p><a href="http://www.bbc.co.uk/news/world-us-canada-33646542">Read the full transcript of his interview</a></p><p>Mr Obama lands in Kenya later on Friday for his first visit since becoming president. </p><p>But with just 18 months left in power, he said gun control was the area where he has been "most frustrated and most stymied" since coming to power in 2009.</p><p>"If you look at the number of Americans killed since 9/11 by terrorism, it's less than 100. If you look at the number that have been killed by gun violence, it's in the tens of thousands," Mr Obama said. </p><figure><img alt="Gun control campaigners protest in McPhearson Square in Washington DC - 25 April 2013" datasrc="http://ichef.bbci.co.uk/news/976/cpsprodpb/462D/production/_84456971_gettyimages-167501087.jpg" height="549" src="http://ichef.bbci.co.uk/news/555/cpsprodpb/462D/production/_84456971_gettyimages-167501087.jpg" width="976"></img><figcaption><span>
+ The president said he would continue fighting for greater gun control laws
+ </span>
+ </figcaption></figure><p>"For us not to be able to resolve that issue has been something that is distressing," he added. </p><p>Mr Obama has pushed for stricter gun control throughout his presidency but has been unable to secure any significant changes to the laws. </p><p>After nine African-American churchgoers were killed in South Carolina in June, he admitted "politics in this town" meant there were few options available.</p><figure><img alt="line" datasrc="http://ichef.bbci.co.uk/news/464/media/images/76020000/jpg/_76020974_line976.jpg" height="2" src="http://ichef.bbci.co.uk/news/555/media/images/76020000/jpg/_76020974_line976.jpg" width="464"></img></figure><h2>Analysis: Jon Sopel, BBC News, Washington</h2><figure><img alt="President Barack Obama participates in an interview with Jon Sopel of BBC in the Roosevelt Room of the White House - 23 July 2015" datasrc="http://ichef-1.bbci.co.uk/news/976/cpsprodpb/6D3D/production/_84456972_p072315al-0500.jpg" height="549" src="http://ichef-1.bbci.co.uk/news/555/cpsprodpb/6D3D/production/_84456972_p072315al-0500.jpg" width="976"></img></figure><p>Nine months ago, the president seemed like a spent force, after taking a beating in the midterm elections, during which members of his own party were reluctant to campaign on his record. </p><p>But the man sat before me today was relaxed and confident, buoyed by a string of "wins" on healthcare, Cuba and Iran, after bitter and ongoing battles with his many critics. </p><p>The only body swerve the president performed was when I asked him <a href="http://www.bbc.co.uk/news/world-us-canada-33643168"> how many minds he had changed on the Iran nuclear deal </a>after an intense sell aimed at Gulf allies and members of US Congress who remain implacably opposed. </p><p>There was a momentary flicker across the president's face as if to say "You think you got me?" before his smile returned and he proceeded to talk about how Congress would come round.</p><p>But notably, he did not give a direct answer to that question, which leaves me with the impression that he has persuaded precisely zero.</p><p><a href="http://www.bbc.co.uk/news/world-us-canada-33646875">Five things we learned from Obama interview</a></p><p><a href="http://www.bbc.co.uk/news/world-us-canada-33646545">The presidential body swerve</a></p><figure><img alt="line" datasrc="http://ichef.bbci.co.uk/news/464/media/images/76020000/jpg/_76020974_line976.jpg" height="2" src="http://ichef.bbci.co.uk/news/555/media/images/76020000/jpg/_76020974_line976.jpg" width="464"></img></figure><p>On race relations, Mr Obama said recent concerns around policing and mass incarcerations were "legitimate and deserve intense attention" but insisted progress had been made. </p><p>Children growing up during the eight years of his presidency "will have a different view of race relations in this country and what's possible," he said. </p><p>"There are going to be tensions that arise. But if you look at my daughters' generation, they have an attitude about race that's entirely different than even my generation."</p><p>Talking about how he was feeling after his recent successes, he said "every president, every leader has strengths and weaknesses". </p><p>"One of my strengths is I have a pretty even temperament. I don't get too high when it's high and I don't get too low when it's low," he said. </p><figure><img alt="Customer looks at Obama shirts at a stall in Nairobi's Kibera slums, 23 July 2015" datasrc="http://ichef-1.bbci.co.uk/news/976/cpsprodpb/142FD/production/_84458628_shirtreuters.jpg" height="549" src="http://ichef-1.bbci.co.uk/news/555/cpsprodpb/142FD/production/_84458628_shirtreuters.jpg" width="976"></img><figcaption><span>
+ Kenya is getting ready to welcome the US president
+ </span>
+ </figcaption></figure><h2>Kenya trip</h2><p>Mr Obama was speaking to the BBC at the White House before departing for Kenya.</p><p>His father was Kenyan and the president is expected to meet relatives in Nairobi.</p><p>Mr Obama has faced criticism in the country after the US legalised gay marriage. However, in his interview, the president said he would not fall silent on the issue.</p><p>"I am not a fan of discrimination and bullying of anybody on the basis of race, on the basis of religion, on the basis of sexual orientation or gender," he said.</p><p>The president also admitted that some African governments, including Kenya's, needed to improve their records on human rights and democracy. However, he defended his decision to engage with and visit those governments. </p><p>"Well, they're not ideal institutions. But what we found is, is that when we combined blunt talk with engagement, that gives us the best opportunity to influence and open up space for civil society." </p><p>Mr Obama will become the first US president to address the African Union when he travels on to Ethiopia on Sunday.</p>
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/bbc-1/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/bbc-1/source.html
new file mode 100644
index 000000000..876c893f6
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/bbc-1/source.html
@@ -0,0 +1,2557 @@
+<html class="orb-js bbcdotcom bbcdotcom-responsive ads-enabled ctm ff flex bbcdotcom-init bbcdotcom-analytics-init grunticon bbccom-group-2" id="responsive-news" prefix="og: http://ogp.me/ns#" lang="en"><head><script src="http://s0.2mdn.net/instream/html5/gpt_proxy.js" type="text/javascript" async=""></script><script src="http://s0.2mdn.net/instream/html5/gpt_proxy.js" type="text/javascript" async=""></script><script src="http://s0.2mdn.net/instream/html5/gpt_proxy.js" type="text/javascript" async=""></script><script src="http://beacon.krxd.net/optout_check?callback=Krux.ns._default.kxjsonp_optOutCheck" type="text/javascript"></script><script src="http://cdn.krxd.net/userdata/get?pub=5d7aaa39-eeed-454f-bb7d-ecea38d770fc&amp;technographics=1&amp;callback=Krux.ns._default.kxjsonp_userdata" type="text/javascript"></script><script src="http://beacon.krxd.net/optout_check?callback=Krux.ns._default.kxjsonp_optOutCheck" type="text/javascript"></script><script src="http://s0.2mdn.net/instream/html5/gpt_proxy.js" type="text/javascript" async=""></script><script async="" charset="UTF-8" src="http://odb.outbrain.com/utils/get?url=http%3A%2F%2Fwww.bbc.com%2Fnews%2Fworld-us-canada-33646704&amp;settings=true&amp;recs=true&amp;widgetJSId=AR_9&amp;key=NANOWDGT01&amp;idx=3&amp;version=264730&amp;ref=&amp;apv=false&amp;sig=FC1ReOE3&amp;format=html&amp;rand=48671&amp;lsd=0ac84357-f829-4e49-9e8c-8571d3af928a&amp;t=MV9iYTQ4NWM0YjhkYTA4MWM1M2M3YjBlMmQ0NWViZTI3N18w&amp;winW=584&amp;winH=500" type="text/javascript"></script><style>.svg-icon--audio-dark { background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20d%3D%22M16%204l-6%206H0v12h10l6%206zM25.3.3l-1.8%201.8c3.7%203.5%206%208.5%206%2014s-2.3%2010.4-6%2014l1.8%201.8c4.1-4%206.7-9.6%206.7-15.7C32%209.9%2029.4%204.3%2025.3.3zm-4.5%204.5L19%206.6c2.4%202.4%203.9%205.8%203.9%209.5s-1.5%207-3.9%209.5l1.8%201.8c2.8-2.9%204.6-6.9%204.6-11.2%200-4.5-1.8-8.5-4.6-11.4z%22%20fill%3D%22%23000%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E'); background-repeat: no-repeat; }
+
+.svg-icon--audio-light { background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20d%3D%22M16%204l-6%206H0v12h10l6%206zM25.3.3l-1.8%201.8c3.7%203.5%206%208.5%206%2014s-2.3%2010.4-6%2014l1.8%201.8c4.1-4%206.7-9.6%206.7-15.7C32%209.9%2029.4%204.3%2025.3.3zm-4.5%204.5L19%206.6c2.4%202.4%203.9%205.8%203.9%209.5s-1.5%207-3.9%209.5l1.8%201.8c2.8-2.9%204.6-6.9%204.6-11.2%200-4.5-1.8-8.5-4.6-11.4z%22%20fill%3D%22%23fff%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E'); background-repeat: no-repeat; }
+
+.svg-icon--email { background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20d%3D%22M16%2019.37L32%204.43V3H0v26h32V8l-4%204v13H4V8.17l12%2011.2zm0-2.76L5.81%207h20.38L16%2016.61z%22%2F%3E%3C%2Fsvg%3E'); background-repeat: no-repeat; }
+
+.svg-icon--gallery-dark { background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20d%3D%22M9%205V3H4v2H0v24h32V5H9zm-2.5%208C5.1%2013%204%2011.9%204%2010.5S5.1%208%206.5%208%209%209.1%209%2010.5%207.9%2013%206.5%2013zM20%2026c-5%200-9-4-9-9s4-9%209-9%209%204%209%209-4%209-9%209z%22%20fill%3D%22%23000%22%3E%3C%2Fpath%3E%3Cpath%20d%3D%22M20%2011.5c-3%200-5.5%202.5-5.5%205.5s2.5%205.5%205.5%205.5%205.5-2.5%205.5-5.5-2.5-5.5-5.5-5.5z%22%20fill%3D%22%23000%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E'); background-repeat: no-repeat; }
+
+.svg-icon--mobile-smart { background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20d%3D%22M6%200v32h20V0H6zm8%202h4v1h-4V2zm3%2028h-2v-2h2v2zm7-3H8V4h16v23z%22%2F%3E%3C%2Fsvg%3E'); background-repeat: no-repeat; }
+
+.svg-icon--newsletter { background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20d%3D%22M5%203h22v12h3V0H2v15h3zm5%209h12v3H10zm0%204h12v3H10zm0-8h12v3H10zm19.46%208l-.46.29-13%208.13-13-8.13-.46-.29H0v16h32V16h-2.54zM29%2029H3V17.46l13%208.13%2013-8.13V29z%22%2F%3E%3C%2Fsvg%3E'); background-repeat: no-repeat; }
+
+.svg-icon--rss { background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%3E%3Ccircle%20cx%3D%225.01%22%20cy%3D%2226.98%22%20r%3D%225%22%2F%3E%3Cpath%20d%3D%22M24.99%2031.98V32h7v-.02C31.99%2014.32%2017.67%200%20.01%200v7c13.78%200%2024.98%2011.2%2024.98%2024.98zm-9.99%200V32h7v-.02C22%2019.84%2012.15%209.99.01%209.99v7C8.28%2016.99%2015%2023.71%2015%2031.98z%22%2F%3E%3C%2Fsvg%3E'); background-repeat: no-repeat; }
+
+.svg-icon--to-bottom { background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20d%3D%22M5.35%201.9H0l15.89%2023.4L32%201.9h-5.34L15.88%2017.48zM.4%2025.3h31.2v4.8H.4z%22%2F%3E%3C%2Fsvg%3E'); background-repeat: no-repeat; }
+
+.svg-icon--twitter { background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20d%3D%22M32%206.08c-1.18.52-2.45.87-3.77%201.03%201.35-.81%202.4-2.1%202.89-3.64-1.27.75-2.68%201.3-4.17%201.6C25.75%203.8%2024.04%203%2022.16%203c-3.63%200-6.57%202.94-6.57%206.56%200%20.52.06%201.02.17%201.5-5.46-.28-10.3-2.89-13.54-6.86-.56.97-.89%202.1-.89%203.3%200%202.27%201.16%204.28%202.92%205.46-1.08-.04-2.09-.33-2.98-.82v.09c0%203.17%202.27%205.82%205.27%206.43-.54.15-1.12.23-1.72.23-.42%200-.83-.04-1.23-.11.84%202.61%203.25%204.5%206.13%204.55-2.25%201.76-5.08%202.82-8.16%202.82-.53%200-1.05-.04-1.56-.09C2.9%2027.92%206.35%2029%2010.06%2029c12.08%200%2018.68-10%2018.68-18.68%200-.28-.01-.57-.02-.85%201.29-.92%202.4-2.08%203.28-3.39z%22%2F%3E%3C%2Fsvg%3E'); background-repeat: no-repeat; }
+
+.svg-icon--video-dark { background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20d%3D%22M3%2032l26-16L3%200z%22%20fill%3D%22%23000%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E'); background-repeat: no-repeat; }
+
+.svg-icon--video-light { background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20d%3D%22M3%2032l26-16L3%200z%22%20fill%3D%22%23fff%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E'); background-repeat: no-repeat; }
+
+</style><script async="" charset="UTF-8" src="http://odb.outbrain.com/utils/get?url=http%3A%2F%2Fwww.bbc.com%2Fnews%2Fworld-us-canada-33646704&amp;settings=true&amp;recs=true&amp;widgetJSId=AR_8&amp;key=NANOWDGT01&amp;idx=2&amp;version=264730&amp;ref=&amp;apv=false&amp;sig=FC1ReOE3&amp;format=html&amp;rand=41769&amp;lsd=0ac84357-f829-4e49-9e8c-8571d3af928a&amp;t=MV9iYTQ4NWM0YjhkYTA4MWM1M2M3YjBlMmQ0NWViZTI3N18w&amp;winW=584&amp;winH=500" type="text/javascript"></script><iframe style="width: 0px; height: 0px; border: 0px none; display: none;" title="" src="javascript:false"></iframe><script async="" charset="UTF-8" src="http://odb.outbrain.com/utils/get?url=http%3A%2F%2Fwww.bbc.com%2Fnews%2Fworld-us-canada-33646704&amp;settings=true&amp;recs=true&amp;widgetJSId=AR_7&amp;key=NANOWDGT01&amp;idx=1&amp;version=264730&amp;ref=&amp;apv=false&amp;sig=FC1ReOE3&amp;format=html&amp;rand=33694&amp;lsd=0ac84357-f829-4e49-9e8c-8571d3af928a&amp;t=MV9iYTQ4NWM0YjhkYTA4MWM1M2M3YjBlMmQ0NWViZTI3N18w&amp;winW=584&amp;winH=500" type="text/javascript"></script><script async="" charset="UTF-8" src="http://odb.outbrain.com/utils/get?url=http%3A%2F%2Fwww.bbc.com%2Fnews%2Fworld-us-canada-33646704&amp;settings=true&amp;recs=true&amp;widgetJSId=AR_5&amp;key=NANOWDGT01&amp;idx=0&amp;version=264730&amp;ref=&amp;apv=false&amp;sig=FC1ReOE3&amp;format=html&amp;rand=26305&amp;lsd=0ac84357-f829-4e49-9e8c-8571d3af928a&amp;winW=584&amp;winH=500" type="text/javascript"></script><style type="text/css"></style>
+ <meta charset="utf-8"/>
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
+ <title>Obama admits US gun laws are his 'biggest frustration' - BBC News</title>
+ <meta name="description" content="President Barack Obama tells the BBC his failure to pass " common="" sense="" gun="" safety="" laws"="" is="" the="" greatest="" frustration="" of="" his="" presidency."=""/>
+
+ <meta name="x-country" content="us"/>
+ <meta name="x-audience" content="US"/>
+ <meta name="CPS_AUDIENCE" content="US"/>
+ <meta name="CPS_CHANGEQUEUEID" content="250829915"/>
+ <link rel="canonical" href="http://www.bbc.com/news/world-us-canada-33646704"/>
+
+ <link rel="alternate" hreflang="en-gb" href="http://www.bbc.co.uk/news/world-us-canada-33646704"/>
+ <link rel="alternate" hreflang="en" href="http://www.bbc.com/news/world-us-canada-33646704"/>
+ <meta property="og:title" content="Obama admits US gun laws are his 'biggest frustration' - BBC News"/>
+ <meta property="og:type" content="article"/>
+ <meta property="og:description" content="President Barack Obama tells the BBC his failure to pass &quot;common sense gun safety laws&quot; is the greatest frustration of his presidency."/>
+ <meta property="og:site_name" content="BBC News"/>
+ <meta property="og:locale" content="en_GB"/>
+ <meta property="og:article:author" content="BBC News"/>
+ <meta property="og:article:section" content="US &amp; Canada"/>
+ <meta property="og:url" content="http://www.bbc.com/news/world-us-canada-33646704"/>
+ <meta property="og:image" content="http://ichef.bbci.co.uk/news/1024/cpsprodpb/3D8B/production/_84455751_84455749.jpg"/>
+
+ <meta name="twitter:card" content="summary_large_image"/>
+ <meta name="twitter:site" content="@BBCWorld"/>
+ <meta name="twitter:title" content="Obama admits US gun laws are his 'biggest frustration' - BBC News"/>
+ <meta name="twitter:description" content="President Barack Obama tells the BBC his failure to pass &quot;common sense gun safety laws&quot; is the greatest frustration of his presidency."/>
+ <meta name="twitter:creator" content="@BBCWorld"/>
+ <meta name="twitter:image:src" content="http://ichef.bbci.co.uk/news/560/cpsprodpb/3D8B/production/_84455751_84455749.jpg"/>
+ <meta name="twitter:domain" content="www.bbc.com"/>
+
+ <script src="http://b.scorecardresearch.com/beacon.js" async=""></script><script src="//cdn.krxd.net/ctjs/controltag.js.875fd5b280a77e06def8c74a5a268e2c" async=""></script><script src="http://cdn.krxd.net/controltag?confid=JZTWpGsM" async="" type="text/javascript"></script><script type="application/ld+json">
+ {
+ "@context": "http://schema.org"
+ ,"@type": "Article"
+
+ ,"url": "http://www.bbc.com/news/world-us-canada-33646704"
+ ,"publisher": {
+ "@type": "Organization",
+ "name": "BBC News",
+ "logo": "http://www.bbc.co.uk/news/special/2015/newsspec_10857/bbc_news_logo.png?cb=1"
+ }
+
+ ,"headline": "Obama admits US gun laws are his 'biggest frustration'"
+
+ ,"mainEntityOfPage": "http://www.bbc.com/news/world-us-canada-33646704"
+ ,"articleBody": "President Barack Obama tells the BBC his failure to pass \"common sense gun safety laws\" is the greatest frustration of his presidency."
+
+ ,"image": {
+ "@list": [
+ "http://ichef.bbci.co.uk/news/560/cpsprodpb/3D8B/production/_84455751_84455749.jpg"
+ ,"http://ichef.bbci.co.uk/news/560/cpsprodpb/6D3D/production/_84456972_p072315al-0500.jpg"
+ ,"http://ichef-1.bbci.co.uk/news/560/cpsprodpb/462D/production/_84456971_gettyimages-167501087.jpg"
+ ,"http://ichef.bbci.co.uk/news/560/media/images/76020000/jpg/_76020974_line976.jpg"
+ ,"http://ichef.bbci.co.uk/news/560/cpsprodpb/142FD/production/_84458628_shirtreuters.jpg"
+ ]
+ }
+ ,"datePublished": "2015-07-24T05:36:09+01:00"
+ }
+ </script>
+
+
+
+ <meta name="apple-mobile-web-app-title" content="BBC News"/>
+ <link rel="apple-touch-icon-precomposed" sizes="57x57" href="http://static.bbci.co.uk/news/1.79.0380/apple-touch-icon-57x57-precomposed.png"/>
+ <link rel="apple-touch-icon-precomposed" sizes="72x72" href="http://static.bbci.co.uk/news/1.79.0380/apple-touch-icon-72x72-precomposed.png"/>
+ <link rel="apple-touch-icon-precomposed" sizes="114x114" href="http://static.bbci.co.uk/news/1.79.0380/apple-touch-icon-114x114-precomposed.png"/>
+ <link rel="apple-touch-icon-precomposed" sizes="144x144" href="http://static.bbci.co.uk/news/1.79.0380/apple-touch-icon.png"/>
+ <link rel="apple-touch-icon" href="http://static.bbci.co.uk/news/1.79.0380/apple-touch-icon.png"/>
+ <meta name="application-name" content="BBC News"/>
+ <meta name="msapplication-TileImage" content="http://static.bbci.co.uk/news/1.79.0380/windows-eight-icon-144x144.png"/>
+ <meta name="msapplication-TileColor" content="#bb1919"/>
+ <meta http-equiv="cleartype" content="on"/>
+ <meta name="mobile-web-app-capable" content="yes"/>
+ <meta name="robots" content="NOODP,NOYDIR"/>
+ <meta name="theme-color" content="#bb1919"/>
+ <script type="text/javascript">var _sf_startpt=(new Date()).getTime()</script>
+
+ <script>
+ (function() {
+ if (navigator.userAgent.match(/IEMobile\/10\.0/)) {
+ var msViewportStyle = document.createElement("style");
+ msViewportStyle.appendChild(
+ document.createTextNode("@-ms-viewport{width:auto!important}")
+ );
+ document.getElementsByTagName("head")[0].appendChild(msViewportStyle);
+ }
+ })();
+ </script>
+
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <script type="text/javascript">window.bbcredirection={geo:true}</script> <!--orb.ws.require.lib--> <script type="text/javascript">/*<![CDATA[*/ if (typeof window.define !== 'function' || typeof window.require !== 'function') { document.write('<script class="js-require-lib" src="http://static.bbci.co.uk/frameworks/requirejs/lib.js"><'+'/script>'); } /*]]>*/</script><script class="js-require-lib" src="http://static.bbci.co.uk/frameworks/requirejs/lib.js"></script> <script type="text/javascript"> bbcRequireMap = {"jquery-1":"http://static.bbci.co.uk/frameworks/jquery/0.3.0/sharedmodules/jquery-1.7.2", "jquery-1.4":"http://static.bbci.co.uk/frameworks/jquery/0.3.0/sharedmodules/jquery-1.4", "jquery-1.9":"http://static.bbci.co.uk/frameworks/jquery/0.3.0/sharedmodules/jquery-1.9.1", "swfobject-2":"http://static.bbci.co.uk/frameworks/swfobject/0.1.10/sharedmodules/swfobject-2", "demi-1":"http://static.bbci.co.uk/frameworks/demi/0.10.0/sharedmodules/demi-1", "gelui-1":"http://static.bbci.co.uk/frameworks/gelui/0.9.13/sharedmodules/gelui-1", "cssp!gelui-1/overlay":"http://static.bbci.co.uk/frameworks/gelui/0.9.13/sharedmodules/gelui-1/overlay.css", "istats-1":"http://static.bbci.co.uk/frameworks/istats/0.26.31/modules/istats-1", "relay-1":"http://static.bbci.co.uk/frameworks/relay/0.2.6/sharedmodules/relay-1", "clock-1":"http://static.bbci.co.uk/frameworks/clock/0.1.9/sharedmodules/clock-1", "canvas-clock-1":"http://static.bbci.co.uk/frameworks/clock/0.1.9/sharedmodules/canvas-clock-1", "cssp!clock-1":"http://static.bbci.co.uk/frameworks/clock/0.1.9/sharedmodules/clock-1.css", "jssignals-1":"http://static.bbci.co.uk/frameworks/jssignals/0.3.6/modules/jssignals-1", "jcarousel-1":"http://static.bbci.co.uk/frameworks/jcarousel/0.1.10/modules/jcarousel-1", "bump-3":"//emp.bbci.co.uk/emp/bump-3/bump-3"}; require({ baseUrl: 'http://static.bbci.co.uk/', paths: bbcRequireMap, waitSeconds: 30 }); </script> <script type="text/javascript">/*<![CDATA[*/ if (typeof bbccookies_flag === 'undefined') { bbccookies_flag = 'ON'; } showCTA_flag = true; cta_enabled = (showCTA_flag && (bbccookies_flag === 'ON')); (function(){var e="ckns_policy",m="Thu, 01 Jan 1970 00:00:00 GMT",k={ads:true,personalisation:true,performance:true,necessary:true};function f(p){if(f.cache[p]){return f.cache[p]}var o=p.split("/"),q=[""];do{q.unshift((o.join("/")||"/"));o.pop()}while(q[0]!=="/");f.cache[p]=q;return q}f.cache={};function a(p){if(a.cache[p]){return a.cache[p]}var q=p.split("."),o=[];while(q.length&&"|co.uk|com|".indexOf("|"+q.join(".")+"|")===-1){if(q.length){o.push(q.join("."))}q.shift()}f.cache[p]=o;return o}a.cache={};function i(o,t,p){var z=[""].concat(a(window.location.hostname)),w=f(window.location.pathname),y="",r,x;for(var s=0,v=z.length;s&lt;v;s++){r=z[s];for(var q=0,u=w.length;q&lt;u;q++){x=w[q];y=o+"="+t+";"+(r?"domain="+r+";":"")+(x?"path="+x+";":"")+(p?"expires="+p+";":"");bbccookies.set(y,true)}}}window.bbccookies={POLICY_REFRESH_DATE_MILLIS:new Date(2015,4,21,0,0,0,0).getTime(),POLICY_EXPIRY_COOKIENAME:"ckns_policy_exp",_setEverywhere:i,cookiesEnabled:function(){var o="ckns_testcookie"+Math.floor(Math.random()*100000);this.set(o+"=1");if(this.get().indexOf(o)>-1){g(o);return true}return false},set:function(o){return document.cookie=o},get:function(){return document.cookie},getCrumb:function(o){if(!o){return null}return decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*"+encodeURIComponent(o).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=\\s*([^;]*).*$)|^.*$"),"$1"))||null},policyRequiresRefresh:function(){var p=new Date();p.setHours(0);p.setMinutes(0);p.setSeconds(0);p.setMilliseconds(0);if(bbccookies.POLICY_REFRESH_DATE_MILLIS&lt;=p.getTime()){var o=bbccookies.getCrumb(bbccookies.POLICY_EXPIRY_COOKIENAME);if(o){o=new Date(parseInt(o));o.setYear(o.getFullYear()-1);return bbccookies.POLICY_REFRESH_DATE_MILLIS>=o.getTime()}else{return true}}else{return false}},_setPolicy:function(o){return h.apply(this,arguments)},readPolicy:function(){return b.apply(this,arguments)},_deletePolicy:function(){i(e,"",m)},isAllowed:function(){return true},_isConfirmed:function(){return c()!==null},_acceptsAll:function(){var o=b();return o&&!(j(o).indexOf("0")>-1)},_getCookieName:function(){return d.apply(this,arguments)},_showPrompt:function(){var o=((!this._isConfirmed()||this.policyRequiresRefresh())&&window.cta_enabled&&this.cookiesEnabled()&&!window.bbccookies_disable);return(window.orb&&window.orb.fig)?o&&(window.orb.fig("no")||window.orb.fig("ck")):o}};bbccookies._getPolicy=bbccookies.readPolicy;function d(p){var o=(""+p).match(/^([^=]+)(?==)/);return(o&&o.length?o[0]:"")}function j(o){return""+(o.ads?1:0)+(o.personalisation?1:0)+(o.performance?1:0)}function h(s){if(typeof s==="undefined"){s=k}if(typeof arguments[0]==="string"){var p=arguments[0],r=arguments[1];if(p==="necessary"){r=true}s=b();s[p]=r}else{if(typeof arguments[0]==="object"){s.necessary=true}}var q=new Date();q.setYear(q.getFullYear()+1);bbccookies.set(e+"="+j(s)+";domain=bbc.co.uk;path=/;expires="+q.toUTCString()+";");bbccookies.set(e+"="+j(s)+";domain=bbc.com;path=/;expires="+q.toUTCString()+";");var o=new Date(q.getTime());o.setMonth(o.getMonth()+1);bbccookies.set(bbccookies.POLICY_EXPIRY_COOKIENAME+"="+q.getTime()+";domain=bbc.co.uk;path=/;expires="+o.toUTCString()+";");bbccookies.set(bbccookies.POLICY_EXPIRY_COOKIENAME+"="+q.getTime()+";domain=bbc.com;path=/;expires="+o.toUTCString()+";");return s}function l(o){if(o===null){return null}var p=o.split("");return{ads:!!+p[0],personalisation:!!+p[1],performance:!!+p[2],necessary:true}}function c(){var o=new RegExp("(?:^|; ?)"+e+"=(\\d\\d\\d)($|;)"),p=document.cookie.match(o);if(!p){return null}return p[1]}function b(o){var p=l(c());if(!p){p=k}if(o){return p[o]}else{return p}}function g(o){return document.cookie=o+"=;expires="+m+";"}function n(){var o='&lt;script type="text/javascript" src="http://static.bbci.co.uk/frameworks/bbccookies/0.6.11/script/bbccookies.js">&lt;\/script>';if(window.bbccookies_flag==="ON"&&!bbccookies._acceptsAll()&&!window.bbccookies_disable){document.write(o)}}n()})(); /*]]>*/</script> <script type="text/javascript">/*<![CDATA[*/
+(function(){window.fig=window.fig||{};window.fig.manager={include:function(a){a=a||window;var e=a.document,g=e.cookie,b=g.match(/(?:^|; ?)ckns_orb_fig=([^;]+)/);if(!b&&g.indexOf("ckns_orb_nofig=1")>-1){this.setFig(a,{no:1})}else{if(b){b=this.deserialise(decodeURIComponent(RegExp.$1));this.setFig(a,b)}e.write('&lt;script src="https://ssl.bbc.co.uk/frameworks/fig/1/fig.js">&lt;'+"/script>")}},confirm:function(a){a=a||window;if(a.orb&&a.orb.fig&&a.orb.fig("no")){this.setNoFigCookie(a)}if(a.orb===undefined||a.orb.fig===undefined){this.setFig(a,{no:1});this.setNoFigCookie(a)}},setNoFigCookie:function(a){a.document.cookie="ckns_orb_nofig=1; expires="+new Date(new Date().getTime()+1000*60*10).toGMTString()+";"},setFig:function(a,b){(function(){var c=b;a.orb=a.orb||{};a.orb.fig=function(d){return(arguments.length)?c[d]:c}})()},deserialise:function(b){var a={};b.replace(/([a-z]{2}):([0-9]+)/g,function(){a[RegExp.$1]=+RegExp.$2});return a}}})();fig.manager.include();/*]]>*/</script><script src="https://ssl.bbc.co.uk/frameworks/fig/1/fig.js"></script>
+
+<!--[if (gt IE 8) | (IEMobile)]><!-->
+<link rel="stylesheet" href="http://static.bbci.co.uk/frameworks/barlesque/2.83.10/orb/4/style/orb.css"/>
+<!--<![endif]-->
+
+<!--[if (lt IE 9) & (!IEMobile)]>
+<link rel="stylesheet" href="http://static.bbci.co.uk/frameworks/barlesque/2.83.10/orb/4/style/orb-ie.css"/>
+<![endif]-->
+
+ <script type="text/javascript">/*<![CDATA[*/ (function(undefined){if(!window.bbc){window.bbc={}}var ROLLING_PERIOD_DAYS=30;window.bbc.Mandolin=function(id,segments,opts){var now=new Date().getTime(),storedItem,DEFAULT_START=now,DEFAULT_RATE=1,COOKIE_NAME="ckpf_mandolin";opts=opts||{};this._id=id;this._segmentSet=segments;this._store=new window.window.bbc.Mandolin.Storage(COOKIE_NAME);this._opts=opts;this._rate=(opts.rate!==undefined)?+opts.rate:DEFAULT_RATE;this._startTs=(opts.start!==undefined)?new Date(opts.start).getTime():new Date(DEFAULT_START).getTime();this._endTs=(opts.end!==undefined)?new Date(opts.end).getTime():daysFromNow(ROLLING_PERIOD_DAYS);this._signupEndTs=(opts.signupEnd!==undefined)?new Date(opts.signupEnd).getTime():this._endTs;this._segment=null;if(typeof id!=="string"){throw new Error("Invalid Argument: id must be defined and be a string")}if(Object.prototype.toString.call(segments)!=="[object Array]"){throw new Error("Invalid Argument: Segments are required.")}if(opts.rate!==undefined&&(opts.rate&lt;0||opts.rate>1)){throw new Error("Invalid Argument: Rate must be between 0 and 1.")}if(this._startTs>this._endTs){throw new Error("Invalid Argument: end date must occur after start date.")}if(!(this._startTs&lt;this._signupEndTs&&this._signupEndTs&lt;=this._endTs)){throw new Error("Invalid Argument: SignupEnd must be between start and end date")}removeExpired.call(this,now);var overrides=window.bbccookies.get().match(/ckns_mandolin_setSegments=([^;]+)/);if(overrides!==null){eval("overrides = "+decodeURIComponent(RegExp.$1)+";");if(overrides[this._id]&&this._segmentSet.indexOf(overrides[this._id])==-1){throw new Error("Invalid Override: overridden segment should exist in segments array")}}if(overrides!==null&&overrides[this._id]){this._segment=overrides[this._id]}else{if((storedItem=this._store.getItem(this._id))){this._segment=storedItem.segment}else{if(this._startTs&lt;=now&&now&lt;this._signupEndTs&&now&lt;=this._endTs&&this._store.isEnabled()===true){this._segment=pick(segments,this._rate);if(opts.end===undefined){this._store.setItem(this._id,{segment:this._segment})}else{this._store.setItem(this._id,{segment:this._segment,end:this._endTs})}log.call(this,"mandolin_segment")}}}log.call(this,"mandolin_view")};window.bbc.Mandolin.prototype.getSegment=function(){return this._segment};function log(actionType,params){var that=this;require(["istats-1"],function(istats){istats.log(actionType,that._id+":"+that._segment,params?params:{})})}function removeExpired(expires){var items=this._store.getItems(),expiresInt=+expires;for(var key in items){if(items[key].end!==undefined&&+items[key].end&lt;expiresInt){this._store.removeItem(key)}}}function getLastExpirationDate(data){var winner=0,rollingExpire=daysFromNow(ROLLING_PERIOD_DAYS);for(var key in data){if(data[key].end===undefined&&rollingExpire>winner){winner=rollingExpire}else{if(+data[key].end>winner){winner=+data[key].end}}}return(winner)?new Date(winner):new Date(rollingExpire)}window.bbc.Mandolin.prototype.log=function(params){log.call(this,"mandolin_log",params)};window.bbc.Mandolin.prototype.convert=function(params){log.call(this,"mandolin_convert",params);this.convert=function(){}};function daysFromNow(n){var endDate;endDate=new Date().getTime()+(n*60*60*24)*1000;return endDate}function pick(segments,rate){var picked,min=0,max=segments.length-1;if(typeof rate==="number"&&Math.random()>rate){return null}do{picked=Math.floor(Math.random()*(max-min+1))+min}while(picked>max);return segments[picked]}window.bbc.Mandolin.Storage=function(name){validateCookieName(name);this._cookieName=name;this._isEnabled=(bbccookies.isAllowed(this._cookieName)===true&&bbccookies.cookiesEnabled()===true)};window.bbc.Mandolin.Storage.prototype.setItem=function(key,value){var storeData=this.getItems();storeData[key]=value;this.save(storeData);return value};window.bbc.Mandolin.Storage.prototype.isEnabled=function(){return this._isEnabled};window.bbc.Mandolin.Storage.prototype.getItem=function(key){var storeData=this.getItems();return storeData[key]};window.bbc.Mandolin.Storage.prototype.removeItem=function(key){var storeData=this.getItems();delete storeData[key];this.save(storeData)};window.bbc.Mandolin.Storage.prototype.getItems=function(){return deserialise(this.readCookie(this._cookieName)||"")};window.bbc.Mandolin.Storage.prototype.save=function(data){window.bbccookies.set(this._cookieName+"="+encodeURIComponent(serialise(data))+"; expires="+getLastExpirationDate(data).toUTCString()+";")};window.bbc.Mandolin.Storage.prototype.readCookie=function(name){var nameEq=name+"=",ca=window.bbccookies.get().split("; "),i,c;validateCookieName(name);for(i=0;i&lt;ca.length;i++){c=ca[i];if(c.indexOf(nameEq)===0){return decodeURIComponent(c.substring(nameEq.length,c.length))}}return null};function serialise(o){var str="";for(var p in o){if(o.hasOwnProperty(p)){str+='"'+p+'"'+":"+(typeof o[p]==="object"?(o[p]===null?"null":"{"+serialise(o[p])+"}"):'"'+o[p].toString()+'"')+","}}return str.replace(/,\}/g,"}").replace(/,$/g,"")}function deserialise(str){var o;str="{"+str+"}";if(!validateSerialisation(str)){throw"Invalid input provided for deserialisation."}eval("o = "+str);return o}var validateSerialisation=(function(){var OBJECT_TOKEN="&lt;Object>",ESCAPED_CHAR='"\\n\\r\\u2028\\u2029\\u000A\\u000D\\u005C',ALLOWED_CHAR="([^"+ESCAPED_CHAR+"]|\\\\["+ESCAPED_CHAR+"])",KEY='"'+ALLOWED_CHAR+'+"',VALUE='(null|"'+ALLOWED_CHAR+'*"|'+OBJECT_TOKEN+")",KEY_VALUE=KEY+":"+VALUE,KEY_VALUE_SEQUENCE="("+KEY_VALUE+",)*"+KEY_VALUE,OBJECT_LITERAL="({}|{"+KEY_VALUE_SEQUENCE+"})",objectPattern=new RegExp(OBJECT_LITERAL,"g");return function(str){if(str.indexOf(OBJECT_TOKEN)!==-1){return false}while(str.match(objectPattern)){str=str.replace(objectPattern,OBJECT_TOKEN)}return str===OBJECT_TOKEN}})();function validateCookieName(name){if(name.match(/ ,;/)){throw"Illegal name provided, must be valid in browser cookie."}}})(); /*]]>*/</script> <script type="text/javascript"> document.documentElement.className += (document.documentElement.className? ' ' : '') + 'orb-js'; fig.manager.confirm(); </script> <script src="http://static.bbci.co.uk/frameworks/barlesque/2.83.10/orb/4/script/orb/api.min.js"></script> <script type="text/javascript"> window.orb_masthead_test = new bbc.Mandolin( 'orb_masthead', ['simple', 'control'], { rate: 6/1000, start: new Date('09/22/2014 08:00:00 GMT'), /* format: mm/dd/yyyy hh:mm:ss */ signupEnd: new Date('09/24/2014 08:00:00 GMT'), end: new Date('10/06/2014 08:00:00 GMT') } ); var blq = { environment: function() { return 'live'; } } </script> <script type="text/javascript"> /*<![CDATA[*/ function oqsSurveyManager(w, flag) { if (flag !== 'OFF') { w.document.write('<script type="text/javascript" src="http://static.bbci.co.uk/frameworks/barlesque/2.83.10/orb/4/script/vendor/edr.js"><'+'/script>'); } } oqsSurveyManager(window, 'ON'); /*]]>*/ </script><script type="text/javascript" src="http://static.bbci.co.uk/frameworks/barlesque/2.83.10/orb/4/script/vendor/edr.js"></script><script src="http://static.bbci.co.uk/frameworks/istats/0.26.31/modules/istats-1.js" data-requiremodule="istats-1" data-requirecontext="_" async="" charset="utf-8" type="text/javascript"></script> <!-- BBCDOTCOM template: responsive webservice -->
+ <!-- BBCDOTCOM head --><script type="text/javascript"> /*<![CDATA[*/ var _sf_startpt = (new Date()).getTime(); /*]]>*/ </script><style type="text/css">.bbccom_display_none{display:none;}</style><script type="text/javascript"> /*<![CDATA[*/ var bbcdotcomConfig, googletag = googletag || {}; googletag.cmd = googletag.cmd || []; var bbcdotcom = false; (function(){ if(typeof require !== 'undefined') { require({ paths:{ "bbcdotcom":"http://static.bbci.co.uk/bbcdotcom/0.3.322/script" } }); } })(); /*]]>*/ </script><script type="text/javascript"> /*<![CDATA[*/ var bbcdotcom = { adverts: { keyValues: { set: function() {} } }, advert: { write: function () {}, show: function () {}, isActive: function () { return false; }, layout: function() { return { reset: function() {} } } }, config: { init: function() {}, isActive: function() {}, setSections: function() {}, isAdsEnabled: function() {}, setAdsEnabled: function() {}, isAnalyticsEnabled: function() {}, setAnalyticsEnabled: function() {}, setAssetPrefix: function() {}, setJsPrefix: function() {}, setSwfPrefix: function() {}, setCssPrefix: function() {}, setConfig: function() {}, getAssetPrefix: function() {}, getJsPrefix: function () {}, getSwfPrefix: function () {}, getCssPrefix: function () {} }, survey: { init: function(){ return false; } }, data: {}, init: function() {}, objects: function(str) { return false; }, locale: { set: function() {} }, setAdKeyValue: function() {}, utils: { addEvent: function() {}, addHtmlTagClass: function() {}, log: function () {} }, addLoadEvent: function() {} }; /*]]>*/ </script><script type="text/javascript"> /*<![CDATA[*/ (function(){ if (typeof orb !== 'undefined' && typeof orb.fig === 'function') { if (orb.fig('ad') && orb.fig('uk') == 0) { bbcdotcom.data = { ads: (orb.fig('ad') ? 1 : 0), stats: (orb.fig('uk') == 0 ? 1 : 0), statsProvider: orb.fig('ap') }; } } else { document.write('<script type="text/javascript" src="'+('https:' == document.location.protocol ? 'https://ssl.bbc.com' : 'http://tps.bbc.com')+'/wwscripts/data">\x3C/script>'); } })(); /*]]>*/ </script><script type="text/javascript"> /*<![CDATA[*/ (function(){ if (typeof orb === 'undefined' || typeof orb.fig !== 'function') { bbcdotcom.data = { ads: bbcdotcom.data.a, stats: bbcdotcom.data.b, statsProvider: bbcdotcom.data.c }; } if (bbcdotcom.data.ads == 1) { document.write('<script type="text/javascript" src="'+('https:' == document.location.protocol ? 'https://ssl.bbc.co.uk' : 'http://www.bbc.co.uk')+'/wwscripts/flag">\x3C/script>'); } })(); /*]]>*/ </script><script type="text/javascript" src="http://www.bbc.co.uk/wwscripts/flag"></script><script type="text/javascript"> /*<![CDATA[*/ (function(){ if (window.bbcdotcom && (typeof bbcdotcom.flag == 'undefined' || (typeof bbcdotcom.data.ads !== 'undefined' && bbcdotcom.flag.a != 1))) { bbcdotcom.data.ads = 0; } if (/[?|&]ads/.test(window.location.href) || /(^|; )ads=on; /.test(document.cookie) || /; ads=on(; |$)/.test(document.cookie)) { bbcdotcom.data.ads = 1; bbcdotcom.data.stats = 1; } if (window.bbcdotcom && (bbcdotcom.data.ads == 1 || bbcdotcom.data.stats == 1)) { bbcdotcom.assetPrefix = "http://static.bbci.co.uk/bbcdotcom/0.3.322/"; document.write('<link rel="stylesheet" type="text/css" href="http://static.bbci.co.uk/bbcdotcom/0.3.322/style/orb/bbccom.css" />'); (function() { var useSSL = 'https:' == document.location.protocol; var src = (useSSL ? 'https:' : 'http:') + '//www.googletagservices.com/tag/js/gpt.js'; document.write('<scr' + 'ipt src="' + src + '">\x3C/script>'); })(); if (/(sandbox|int)(.dev)*.bbc.co*/.test(window.location.href) || /[?|&]ads-debug/.test(window.location.href) || document.cookie.indexOf('ads-debug=') !== -1) { document.write('<script type="text/javascript" src="http://static.bbci.co.uk/bbcdotcom/0.3.322/script/orb/individual.js">\x3C/script>'); } else { document.write('<script type="text/javascript" src="http://static.bbci.co.uk/bbcdotcom/0.3.322/script/orb/bbcdotcom.js">\x3C/script>'); } if(/[\\?&]ads=([^&#]*)/.test(window.location.href)) { document.write('<script type="text/javascript" src="http://static.bbci.co.uk/bbcdotcom/0.3.322/script/orb/adverts/adSuites.js">\x3C/script>'); } } })(); /*]]>*/ </script><link rel="stylesheet" type="text/css" href="http://static.bbci.co.uk/bbcdotcom/0.3.322/style/orb/bbccom.css"/><script src="http://www.googletagservices.com/tag/js/gpt.js"></script><iframe style="visibility: hidden; display: none;" src="http://tpc.googlesyndication.com/safeframe/1-0-2/html/container.html"></iframe><script type="text/javascript" src="http://static.bbci.co.uk/bbcdotcom/0.3.322/script/orb/bbcdotcom.js"></script><script src="http://universal.iperceptions.com/wrapper.js" type="text/javascript" defer="defer" async="async"></script><script type="text/javascript"> /*<![CDATA[*/ (function(){ if (window.bbcdotcom && (bbcdotcom.data.ads == 1 || bbcdotcom.data.stats == 1)) { bbcdotcomConfig = {"adFormat":"standard","adKeyword":"","adMode":"smart","adsEnabled":true,"appAnalyticsSections":"news>world","asyncEnabled":false,"disableInitialLoad":false,"advertInfoPageUrl":"http:\/\/www.bbc.co.uk\/faqs\/online\/adverts_general","advertisementText":"Advertisement","analyticsEnabled":true,"appName":"tabloid","assetPrefix":"http:\/\/static.bbci.co.uk\/bbcdotcom\/0.3.322\/","continuousPlayEnabled":false,"customAdParams":[],"customStatsParams":[],"headline":"Obama admits US gun laws are his 'biggest frustration'","id":"33646704","inAssociationWithText":"In association with","keywords":"","language":"","orbTransitional":false,"outbrainEnabled":true,"palEnv":"live","productName":"","sections":[],"siteCatalystEnabled":true,"comScoreEnabled":true,"slots":"","sponsoredByText":"Sponsored by","summary":"President Barack Obama tells the BBC his failure to pass \"common sense gun safety laws\" is the greatest frustration of his presidency.","type":"STORY","staticBase":"\/bbcdotcom","staticHost":"http:\/\/static.bbci.co.uk","staticVersion":"0.3.322","staticPrefix":"http:\/\/static.bbci.co.uk\/bbcdotcom\/0.3.322","dataHttp":"tps.bbc.com","dataHttps":"ssl.bbc.com","flagHttp":"www.bbc.co.uk","flagHttps":"ssl.bbc.co.uk","analyticsHttp":"sa.bbc.com","analyticsHttps":"ssa.bbc.com"}; bbcdotcom.config.init(bbcdotcomConfig, bbcdotcom.data, window.location, window.document); bbcdotcom.config.setAssetPrefix("http://static.bbci.co.uk/bbcdotcom/0.3.322/"); document.write('<!--[if IE 7]><script type="text/javascript">bbcdotcom.config.setIE7(true);\x3C/script><![endif]-->'); document.write('<!--[if IE 8]><script type="text/javascript">bbcdotcom.config.setIE8(true);\x3C/script><![endif]-->'); if (!bbcdotcom.config.isAsync() && bbcdotcom.config.isIE7()) { document.write('<link rel="stylesheet" type="text/css" href="http://static.bbci.co.uk/bbcdotcom/0.3.322/style/orb/bbccom-ie7.css" />'); } if (/[?|&]ex-dp/.test(window.location.href) || document.cookie.indexOf('ex-dp=') !== -1) { bbcdotcom.utils.addHtmlTagClass('bbcdotcom-ex-dp'); } } })(); /*]]>*/ </script><!--[if IE 7]><script type="text/javascript">bbcdotcom.config.setIE7(true);</script><![endif]--><!--[if IE 8]><script type="text/javascript">bbcdotcom.config.setIE8(true);</script><![endif]--> <script type="text/javascript">/*<![CDATA[*/
+ window.bbcFlagpoles_istats = 'ON';
+ window.orb = window.orb || {};
+
+ /*]]>*/</script>
+ <script type="text/javascript"> /* <![CDATA[ */ define('id-statusbar-config', { 'translation_signedout': "Sign in", 'translation_signedin': "Your account", 'use_overlay' : false, 'signin_url' : "https://ssl.bbc.com/id/signin?ptrt=http%3A%2F%2Fwww.bbc.com%2Fnews%2Fworld-us-canada-33646704", 'locale' : "en-GB", 'policyname' : "", 'ptrt' : "http://www.bbc.com/news/world-us-canada-33646704" }); /* ]]> */ </script> <script type="text/javascript"> require(['istats-1'], function(istats){ if (typeof(document) != 'undefined' && typeof(document.cookie) != 'undefined') { var cookieAphidMatch = document.cookie.match(/ckpf_APHID=([^;]*)/); if (cookieAphidMatch && typeof(cookieAphidMatch[1]) == 'string') { istats.addLabels({'bbc_hid': cookieAphidMatch[1]}); } } })(); </script> <script type="text/javascript"> (function () { if (! window.require) { throw new Error('idcta: could not find require module'); } var map = {}; map['idapp-1'] = 'http://static.bbci.co.uk/idapp/0.68.01/modules/idapp/idapp-1'; map['idcta/idcta-1'] = 'http://static.bbci.co.uk/id/0.27.23/modules/idcta/idcta-1'; map['idcta/idCookie'] = 'http://static.bbci.co.uk/id/0.27.23/modules/idcta/idCookie'; map['idcta/overlayManager'] = 'http://static.bbci.co.uk/id/0.27.23/modules/idcta/overlayManager'; require({paths: map}); define('id-config', {"idapp":{"version":"0.68.01","hostname":"ssl.bbc.com","insecurehostname":"www.bbc.com","tld":"bbc.com"},"idtranslations":{"version":"0.31.1"},"identity":{"baseUrl":"https:\/\/talkback.live.bbc.co.uk\/identity","cookieAgeDays":730},"pathway":{"name":null,"staticAssetUrl":"http:\/\/static.bbci.co.uk\/idapp\/0.68.01\/modules\/idapp\/idapp-1\/View.css"}}); })(); </script>
+ <link type="text/css" rel="stylesheet" href="http://static.bbci.co.uk/news/1.79.0380/stylesheets/services/news/core.css"/>
+ <!--[if lt IE 9]>
+ <link type="text/css" rel="stylesheet" href="http://static.bbci.co.uk/news/1.79.0380/stylesheets/services/news/old-ie.css"/>
+ <script src="http://static.bbci.co.uk/news/1.79.0380/js/vendor/html5shiv/html5shiv.js"></script>
+ <![endif]-->
+ <link media="(max-width: 599px)" href="http://static.bbci.co.uk/news/1.79.0380/stylesheets/services/news/compact.css" type="text/css" rel="stylesheet"/><script id="news-loader"> if (document.getElementById("responsive-news")) { window.bbcNewsResponsive = true; } var isIE = (function() { var undef, v = 3, div = document.createElement('div'), all = div.getElementsByTagName('i'); while ( div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->', all[0] ); return v > 4 ? v : undef; }()); var modernDevice = 'querySelector' in document && 'localStorage' in window && 'addEventListener' in window, forceCore = document.cookie.indexOf('ckps_force_core') !== -1; window.cutsTheMustard = modernDevice && !forceCore; if (window.cutsTheMustard) { document.documentElement.className += ' ctm'; var insertPoint = document.getElementById('news-loader'), config = {"asset":{"asset_id":"33646704","asset_uri":"\/news\/world-us-canada-33646704","first_created":{"date":"2015-07-23 21:41:27","timezone_type":3,"timezone":"Europe\/London"},"last_updated":{"date":"2015-07-24 05:36:09","timezone_type":3,"timezone":"Europe\/London"},"options":{"allowRightHandSide":true,"allowRelatedStoriesBox":true,"includeComments":true,"isIgorSeoTagsEnabled":false,"hasNewsTracker":true,"allowAdvertising":true,"hasContentWarning":false,"allowDateStamp":true,"allowHeadline":true,"isKeyContent":false,"allowPrintingSharingLinks":true,"isBreakingNews":false,"suitableForSyndication":true},"section":{"name":"US & Canada","id":"99127","uri":"\/news\/world\/us_and_canada","urlIdentifier":"\/news\/world\/us_and_canada"},"edition":"US","audience":null,"iStats_counter_name":"news.world.us_and_canada.story.33646704.page","type":"STY","headline":"Obama admits US gun laws are his 'biggest frustration'","mediaType":"video"},"smpBrand":null,"staticHost":"http:\/\/static.bbci.co.uk","environment":"live","locatorVersion":"0.46.3","pathPrefix":"\/news","staticPrefix":"http:\/\/static.bbci.co.uk\/news\/1.79.0380","jsPath":"http:\/\/static.bbci.co.uk\/news\/1.79.0380\/js","cssPath":"http:\/\/static.bbci.co.uk\/news\/1.79.0380\/stylesheets\/services\/news","cssPostfix":"","dynamic":null,"features":{"localnews":true,"video":true,"liveeventcomponent":true,"mediaassetpage":true,"travel":true,"gallery":true,"rollingnews":true,"rumanalytics":true,"sportstories":true,"radiopromo":true,"fromothernewssites":true,"locallive":true,"weather":true},"features2":{"chartbeat":true,"connected_stream":true,"connected_stream_promo":true,"nav":true,"pulse_survey":false,"local_survey":true,"correspondents":true,"blogs":true,"open_graph":true,"follow_us":true,"marketdata_markets":true,"marketdata_shares":true,"nations_pseudo_nav":true,"politics_vote2014":true,"politics_scotref_polltracker":true,"politics_polltracker":true,"politics_election2015_hub":true,"politics_election2015_nation_hubs":true,"politics_election2015_results":true,"politics_scotref_live":true,"politics_scotref_results":true,"politics_scotref":true,"politics_councils":true,"politics_councils_az":true,"politics_constituencies_az":true,"politics_constituencies":true,"politics_election2015_manifestos":true,"politics_eu_regions":true,"politics_election2015_topic_pages":true,"responsive_breaking_news":true,"live_event":true,"most_popular":true,"most_popular_tabs":true,"most_popular_by_day":true,"routing":true,"rum":true,"radiopromonownext":true,"config_based_layout":true,"orb":true,"enhanced_gallery":true,"map_most_watched":true,"top_stories_promo":true,"features_and_analysis":true,"section_labels":true,"index_title":true,"share_tools":true,"local_live_promo":true,"adverts":true,"adexpert":true,"igor_geo_redirect":true,"igor_device_redirect":true,"live":true,"comscore_mmx":true,"find_local_news":true,"comments":true,"comments_enhanced":true,"browser_notify":true,"stream_grid_promo":true,"breaking_news":true,"top_stories_max_volume":true,"record_livestats":true,"contact_form":true,"channel_page":true,"portlet_global_variants":true,"suppress_lep_timezone":true,"story_recommendations":true,"cedexis":true,"mpulse":true,"story_single_column_layout":true,"ovp_resolve_primary_media_vpids":true},"configuration":{"showtimestamp":"1","showweather":"1","showsport":"1","showolympics":"1","showfeaturemain":"1","showsitecatalyst":"1","candyplatform":"EnhancedMobile","showwatchlisten":"1","showspecialreports":"","videotopiccandyid":"","showvideofeedsections":"1","showstorytopstories":"","showstoryfeaturesandanalysis":"1","showstorymostpopular":"","showgallery":"1","cms":"cps","channelpagecandyid":"10318089"},"pollingHost":"http:\/\/polling.bbc.co.uk","service":"news","locale":"en-GB","locatorHost":null,"locatorFlagPole":true,"local":{"allowLocationLookup":true},"isWorldService":false,"rumAnalytics":{"server":"http:\/\/ingest.rum.bbc.co.uk","key":"news","sample_rate":0.1,"url_params":null,"edition":"us"},"isChannelPage":false,"suitenameMap":"","languageVariant":"","commentsHost":"http:\/\/feeds.bbci.co.uk","search":null}; config.configuration['get'] = function (key) { return this[key.toLowerCase()]; }; var bootstrapUI=function(){var e=function(){if(navigator.userAgent.match(/(Android (2.0|2.1))|(Nokia)|(OSRE\/)|(Opera (Mini|Mobi))|(w(eb)?OSBrowser)|(UCWEB)|(Windows Phone)|(XBLWP)|(ZuneWP)/))return!1;if(navigator.userAgent.match(/MSIE 10.0/))return!0;var e,t=document,n=t.head||t.getElementsByTagName("head")[0],r=t.createElement("style"),s=t.implementation||{hasFeature:function(){return!1}};r.type="text/css",n.insertBefore(r,n.firstChild),e=r.sheet||r.styleSheet;var i=s.hasFeature("CSS2","")?function(t){if(!e||!t)return!1;var n=!1;try{e.insertRule(t,0),n=!/unknown/i.test(e.cssRules[0].cssText),e.deleteRule(e.cssRules.length-1)}catch(r){}return n}:function(t){return e&&t?(e.cssText=t,0!==e.cssText.length&&!/unknown/i.test(e.cssText)&&0===e.cssText.replace(/\r+|\n+/g,"").indexOf(t.split(" ")[0])):!1};return i('@font-face{ font-family:"font";src:"font.ttf"; }')}();e&&(document.getElementsByTagName("html")[0].className+=" ff"),function(){var e=document.documentElement.style;("flexBasis"in e||"WebkitFlexBasis"in e||"msFlexBasis"in e)&&(document.documentElement.className+=" flex")}();var t,n,r,s,i,a,o={},u=function(){t=window.innerWidth,n=window.innerHeight},c=function(e){var t=document.createElement("link");t.setAttribute("rel","stylesheet"),t.setAttribute("type","text/css"),t.setAttribute("href",r+e+s+".css"),t.setAttribute("media",a[e]),i.parentNode.insertBefore(t,i),delete a[e]},l=function(e,r,s){r&&!s&&(t>=r||n>=r)&&c(e),s&&!r&&(s>=t||s>=n)&&c(e),r&&s&&(t>=r||n>=r)&&(s>=t||s>=n)&&c(e)},f=function(e){if(o[e])return o[e];var t=e.match(/\(min\-width:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/),n=e.match(/\(max\-width:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/),r=t&&parseFloat(t[1])||null,s=n&&parseFloat(n[1])||null;return o[e]=[r,s],o[e]},m=function(){var e=0;for(var t in a)e++;return e},d=function(){m()||window.removeEventListener("resize",h,!1);for(var e in a){var t=a[e],n=f(t);l(e,n[0],n[1])}},h=function(){u(),d()},v=function(e,t){a=e,r=t.path+("/"!==t.path.substr(-1)?"/":""),s=t.postfix,i=t.insertBefore,u(),d(),window.addEventListener("resize",h,!1)};return{stylesheetLoaderInit:v}}(); bootstrapUI.stylesheetLoaderInit({ 'compact': '(max-width: 599px)', 'tablet' : '(min-width: 600px)', 'wide' : '(min-width: 1008px)' }, { path: 'http://static.bbci.co.uk/news/1.79.0380/stylesheets/services/news', postfix: '', insertBefore: insertPoint }); var loadRequire = function(){ var js_paths = {"jquery-1.9":"vendor\/jquery-1\/jquery","jquery-1":"http:\/\/static.bbci.co.uk\/frameworks\/jquery\/0.3.0\/sharedmodules\/jquery-1.7.2","demi-1":"http:\/\/static.bbci.co.uk\/frameworks\/demi\/0.10.0\/sharedmodules\/demi-1","swfobject-2":"http:\/\/static.bbci.co.uk\/frameworks\/swfobject\/0.1.10\/sharedmodules\/swfobject-2","jquery":"vendor\/jquery-2\/jquery.min","domReady":"vendor\/require\/domReady","translation":"module\/translations\/en-GB","bump-3":"\/\/emp.bbci.co.uk\/emp\/bump-3\/bump-3"}; js_paths.navigation = 'module/nav/navManager'; requirejs.config({ baseUrl: 'http://static.bbci.co.uk/news/1.79.0380/js', map: { 'vendor/locator': { 'module/bootstrap': 'vendor/locator/bootstrap', 'locator/stats': 'vendor/locator/stats', 'locator/locatorView': 'vendor/locator/locatorView' } }, paths: js_paths, waitSeconds: 30 }); define('config', function () { return config; }); require(['compiled/all'], function() {
+ require(['domReady'], function (domReady) { domReady(function () { require(["module\/dotcom\/handlerAdapter","module\/rumAdaptor","module\/stats\/statsSubscriberAdapter","module\/alternativeJsStrategy\/controller","module\/iconLoaderAdapter","module\/polyfill\/location.origin","module\/components\/breakingNewsAdapter","module\/indexTitleAdaptor","module\/navigation\/handlerAdaptor","module\/noTouchDetectionForCss","module\/components\/responsiveImage","module\/components\/timestampAdaptor","module\/components\/videoPlayer","module\/tableScrollAdapter","module\/components\/commentsButtonAdapter"], function() { require(["module\/strategiserAdaptor"]); }); }); }); });
+ }; loadRequire(); } else { var l = document.createElement('link'); l.href = 'http://static.bbci.co.uk/news/1.79.0380/icons/generated/icons.fallback.css'; l.rel = 'stylesheet'; document.getElementsByTagName('head')[0].appendChild(l); } </script> <script type="text/javascript"> /*<![CDATA[*/ bbcdotcom.init({adsToDisplay:['leaderboard', 'sponsor_section', 'mpu', 'outbrain_ar_5', 'outbrain_ar_7', 'outbrain_ar_8', 'outbrain_ar_9', 'native', 'mpu_bottom', 'adsense', 'inread']}); /*]]>*/ </script><script class="kxct" data-id="JZTWpGsM" data-timing="async" data-version="1.9" type="text/javascript">if (window.bbcdotcom && (bbcdotcom.data.ads == 1 || bbcdotcom.data.stats == 1)) { window.Krux||((Krux=function(){Krux.q.push(arguments)}).q=[]); (function(){ var k=document.createElement("script");k.type="text/javascript";k.async=true; var m,src=(m=location.href.match(/\bkxsrc=([^&]+)/))&&decodeURIComponent(m[1]); k.src = /^https?:\/\/([a-z0-9_\-\.]+\.)?krxd\.net(:\d{1,5})?\//i.test(src) ? src : src === "disable" ? "" : (location.protocol==="https:"?"https:":"http:")+"//cdn.krxd.net/controltag?confid=JZTWpGsM"; var s=document.getElementsByTagName("script")[0];s.parentNode.insertBefore(k,s); }());}</script><script type="text/javascript"> if (window.bbcdotcom && (bbcdotcom.data.ads == 1 || bbcdotcom.data.stats == 1)) { window.Krux||((Krux=function(){Krux.q.push(arguments);}).q=[]); (function(){ function retrieve(n){ var m, k="kx"+n; if (window.localStorage) { return window.localStorage[k] || ""; } else if (navigator.cookieEnabled) { m = document.cookie.match(k+"=([^;]*)"); return (m && unescape(m[1])) || ""; } else { return ""; } } Krux.user = retrieve("user"); Krux.segments = retrieve("segs") && retrieve("segs").split(",") || []; })(); }</script><script type="text/javascript" src="http://partner.googleadservices.com/gpt/pubads_impl_68.js"></script><script src="http://static.bbci.co.uk/news/1.79.0380/js/compiled/all.js" data-requiremodule="compiled/all" data-requirecontext="_" async="" charset="utf-8" type="text/javascript"></script> <noscript><link href="http://static.bbci.co.uk/news/1.79.0380/icons/generated/icons.fallback.css" rel="stylesheet"/></noscript>
+
+
+ <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=1"/>
+<script src="http://pagead2.googlesyndication.com/pagead/osd.js" type="text/javascript"></script><script src="http://static.bbci.co.uk/news/1.79.0380/js/vendor/jquery-2/jquery.min.js" data-requiremodule="jquery" data-requirecontext="_" async="" charset="utf-8" type="text/javascript"></script><style type="text/css">.ob-tcolor{color:rgb(64, 64, 64)} .ob-lcolor{color:rgb(64, 64, 64)} .ob-bgtcolor{background-color:rgb(64, 64, 64)} .item-link-container:hover .ob-tcolor{border-color:rgb(64, 64, 64)} </style><script src="http://static.bbci.co.uk/news/1.79.0380/js/module/translations/en-GB.js" data-requiremodule="translation" data-requirecontext="_" async="" charset="utf-8" type="text/javascript"></script><script src="//emp.bbci.co.uk/emp/bump-3/bump-3.js" data-requiremodule="bump-3" data-requirecontext="_" async="" charset="utf-8" type="text/javascript"></script><script src="http://static.bbci.co.uk/bbcdotcom/0.3.322/script/av/emp/analytics.js" data-requiremodule="bbcdotcom/av/emp/analytics" data-requirecontext="_" async="" charset="utf-8" type="text/javascript"></script><script src="http://static.bbci.co.uk/bbcdotcom/0.3.322/script/av/emp/adverts.js" data-requiremodule="bbcdotcom/av/emp/adverts" data-requirecontext="_" async="" charset="utf-8" type="text/javascript"></script><script src="http://static.bbci.co.uk/news/1.79.0380/js/vendor/jquery-1/jquery.js" data-requiremodule="jquery-1.9" data-requirecontext="_" async="" charset="utf-8" type="text/javascript"></script><script src="http://static.bbci.co.uk/frameworks/swfobject/0.1.10/sharedmodules/swfobject-2.js" data-requiremodule="swfobject-2" data-requirecontext="_" async="" charset="utf-8" type="text/javascript"></script><script src="http://static.bbci.co.uk/frameworks/jquery/0.3.0/sharedmodules/jquery-1.7.2.js" data-requiremodule="jquery-1" data-requirecontext="_" async="" charset="utf-8" type="text/javascript"></script><script src="http://open.live.bbc.co.uk/wurfldemi/network.jsonp?callback=bumpDemiNetwork" async="" charset="utf-8" type="text/javascript"></script><script src="//static.bbc.co.uk/nkdata/echoclient/2.0.0/sharedmodules/echo.js" data-requiremodule="//static.bbc.co.uk/nkdata/echoclient/2.0.0/sharedmodules/echo.js" data-requirecontext="_" async="" charset="utf-8" type="text/javascript"></script><style type="text/css">#edr_survey .edr_lwrap iframe {width:100%;height:100%;}#edr_survey .edr_go {opacity:0;display:block;filter:alpha(opacity = 0);position:absolute;font-size:0;background-color:#000;margin:0;padding:0;z-index:1000000;}#edr_survey .edr_go:focus {opacity:1;filter:alpha(opacity = 50);background-color:rgba(0, 0, 0, 0.1);}#edr_survey .edr_lb {position:fixed;top:0;left:0;right:0;bottom:0;z-index:999998;display:none;}</style><script src="http://static.bbci.co.uk/id/0.27.23/modules/idcta/idcta-1.js" data-requiremodule="idcta/idcta-1" data-requirecontext="_" async="" charset="utf-8" type="text/javascript"></script><script src="http://static.bbci.co.uk/frameworks/jssignals/0.3.6/modules/jssignals-1.js" data-requiremodule="jssignals-1" data-requirecontext="_" async="" charset="utf-8" type="text/javascript"></script><script src="http://static.bbci.co.uk/id/0.27.23/modules/idcta/idCookie.js" data-requiremodule="idcta/idCookie" data-requirecontext="_" async="" charset="utf-8" type="text/javascript"></script></head>
+<!--[if IE]><body id="asset-type-sty" class="ie device--feature"><![endif]-->
+<!--[if !IE]>--><body id="asset-type-sty" class="device--feature bbccom_leaderboard bbccom_outbrain_ar_5 bbccom_outbrain_ar_7 bbccom_outbrain_ar_8 bbccom_outbrain_ar_9 bbccom_adsense no-touch"><!--<![endif]-->
+ <div class="direction">
+
+
+ <!-- BBCDOTCOM bodyFirst --><div id="bbccom_interstitial_ad" class="bbccom_display_none"></div><div id="bbccom_interstitial" class="bbccom_display_none"><script type="text/javascript"> /*<![CDATA[*/ (function() { if (window.bbcdotcom && bbcdotcom.config.isActive('ads')) { googletag.cmd.push(function() { googletag.display('bbccom_interstitial'); }); } }()); /*]]>*/ </script><script type="text/javascript" src="https://securepubads.g.doubleclick.net/gampad/ads?gdfp_req=1&amp;correlator=4252546614435597&amp;output=json_html&amp;callback=googletag.impl.pubads.setAdContentsBySlotForSync&amp;impl=ss&amp;json_a=1&amp;eid=108809047%2C108809031%2C108809035%2C108809049&amp;sc=0&amp;sfv=1-0-2&amp;iu_parts=4817%2Cbbccom.live.site.mobile.news%2Cnews_usandcanada_content&amp;enc_prev_ius=%2F0%2F1%2F2%2C%2F0%2F1%2F2%2C%2F0%2F1%2F2%2C%2F0%2F1%2F2%2C%2F0%2F1%2F2%2C%2F0%2F1%2F2%2C%2F0%2F1%2F2&amp;prev_iu_szs=516x60%7C320x50%7C300x50%2C88x31%2C516x60%7C300x50%7C320x50%7C300x250%2C336x208%2C300x251%2C6x6%2C1x1&amp;ists=1&amp;prev_scp=slot%3Dleaderboard%26sl%3Dtop%7Cslot%3Dsponsor_section%7Cslot%3Dmpu%26sl%3Dmiddle%7Cslot%3Dnative%7Cslot%3Dmpu_bottom%7Cslot%3Dinread%7Cslot%3Dinterstitial&amp;cust_params=frd%3D1%26channel%3Dnews%26sectn%3Dworlduscanada%26domain%3Dwww.bbc.com%26story_id%3D33646704%26ctype%3Dcontent%26asset_type%3Dstory%26referrer%3Dnonbbc%26esi%3D0%26kuid%3D%26khost%3Dwww.bbc.com&amp;cookie_enabled=1&amp;lmt=1437757077&amp;dt=1437757077386&amp;frm=20&amp;biw=584&amp;bih=500&amp;oid=3&amp;adks=430421793%2C1304435981%2C3569409373%2C209040735%2C267162101%2C3279844221%2C3169298880&amp;gut=v2&amp;ifi=1&amp;u_tz=-420&amp;u_his=9&amp;u_java=true&amp;u_h=500&amp;u_w=584&amp;u_ah=877&amp;u_aw=1436&amp;u_cd=24&amp;u_nplug=10&amp;u_nmime=76&amp;u_sd=2&amp;flash=18.0.0&amp;url=http%3A%2F%2Fwww.bbc.com%2Fnews%2Fworld-us-canada-33646704&amp;dssz=40&amp;icsg=512&amp;std=5&amp;csl=183&amp;vrg=68&amp;vrp=68&amp;ga_vid=165083980.1437757077&amp;ga_sid=1437757077&amp;ga_hid=702753462"></script></div><div id="bbccom_wallpaper_ad" class="bbccom_display_none"></div><div id="bbccom_wallpaper" class="bbccom_display_none"><script type="text/javascript"> /*<![CDATA[*/ (function() { var wallpaper; if (window.bbcdotcom && bbcdotcom.config.isActive('ads')) { if (bbcdotcom.config.isAsync()) { googletag.cmd.push(function() { googletag.display('bbccom_wallpaper'); }); } else { googletag.display("wallpaper"); } wallpaper = bbcdotcom.adverts.adRegister.getAd('wallpaper'); if (wallpaper !== null && wallpaper !== undefined) { wallpaper.setDomElement('bbccom_wallpaper'); } } }()); /*]]>*/ </script></div><script type="text/javascript"> /*<![CDATA[*/ (function() { if (window.bbcdotcom && bbcdotcom.config.isActive('ads')) { document.write(unescape('%3Cscript id="gnlAdsEnabled" class="bbccom_display_none"%3E%3C/script%3E')); } if (window.bbcdotcom && bbcdotcom.config.isActive('analytics')) { document.write(unescape('%3Cscript id="gnlAnalyticsEnabled" class="bbccom_display_none"%3E%3C/script%3E')); } if (window.bbcdotcom && bbcdotcom.config.isActive('continuousPlay')) { document.write(unescape('%3Cscript id="gnlContinuousPlayEnabled" class="bbccom_display_none"%3E%3C/script%3E')); } }()); /*]]>*/ </script><script id="gnlAdsEnabled" class="bbccom_display_none"></script><script id="gnlAnalyticsEnabled" class="bbccom_display_none"></script> <div id="blq-global"> <div id="blq-pre-mast"> </div> </div> <script type="text/html" id="blq-bbccookies-tmpl"><![CDATA[ &lt;section> &lt;div id="bbccookies" class="bbccookies-banner orb-banner-wrapper bbccookies-d"> &lt;div id="bbccookies-prompt" class="orb-banner b-g-p b-r b-f"> &lt;h2 class="orb-banner-title"> Cookies on the BBC website &lt;/h2> &lt;p class="orb-banner-content" dir="ltr"> The BBC has updated its cookie policy. We use cookies to ensure that we give you the best experience on our website. This includes cookies from third party social media websites if you visit a page which contains embedded content from social media. Such third party cookies may track your use of the BBC website.&lt;span class="bbccookies-international-message"> We and our partners also use cookies to ensure we show you advertising that is relevant to you.&lt;/span> If you continue without changing your settings, we'll assume that you are happy to receive all cookies on the BBC website. However, you can change your cookie settings at any time. &lt;/p> &lt;ul class="orb-banner-options"> &lt;li id="bbccookies-continue"> &lt;button type="button" id="bbccookies-continue-button">Continue&lt;/button> &lt;/li> &lt;li id="bbccookies-settings"> &lt;a href="/privacy/cookies/managing/cookie-settings.html">Change settings&lt;/a> &lt;/li> &lt;li id="bbccookies-more">&lt;a href="/privacy/cookies/bbc">Find out more&lt;/a>&lt;/li>&lt;/ul> &lt;/div> &lt;/div> &lt;/section> ]]></script> <script type="text/javascript">/*<![CDATA[*/ (function(){if(bbccookies._showPrompt()){var g=document,b=g.getElementById("blq-pre-mast"),e=g.getElementById("blq-bbccookies-tmpl"),a,f;if(b&&g.createElement){a=g.createElement("div");f=e.innerHTML;f=f.replace("<"+"![CDATA[","").replace("]]"+">","");a.innerHTML=f;b.appendChild(a);blqCookieContinueButton=g.getElementById("bbccookies-continue-button");blqCookieContinueButton.onclick=function(){a.parentNode.removeChild(a);return false};bbccookies._setPolicy(bbccookies.readPolicy())}var c=g.getElementById("bbccookies");if(c&&!window.orb.fig("uk")){c.className=c.className.replace(/\bbbccookies-d\b/,"");c.className=c.className+(" bbccookies-w")}}})(); /*]]>*/</script> <script type="text/javascript">/*<![CDATA[*/ if (bbccookies.isAllowed('s1')) { var istatsTrackingUrl = '//sa.bbc.co.uk/bbc/bbc/s?name=news.world.us_and_canada.story.33646704.page&cps_asset_id=33646704&page_type=Story&section=%2Fnews%2Fworld%2Fus_and_canada&first_pub=2015-07-23T20%3A41%3A27%2B00%3A00&last_editorial_update=2015-07-24T04%3A36%3A09%2B00%3A00&title=Obama+admits+US+gun+laws+are+his+%27biggest+frustration%27&has_video=1&for_nation=us&app_version=1.79.0&pal_route=asset&ml_name=barlesque&app_type=responsive&language=en-GB&ml_version=0.26.31&pal_webapp=tabloid&prod_name=news&app_name=news'; require(['istats-1'], function (istats) { istats.addCollector({'name': 'default', 'url': '//sa.bbc.co.uk/bbc/bbc/s', 'seperator': '&' }); var counterName = (window.istats_countername) ? window.istats_countername : istatsTrackingUrl.match(/[\?&]name=([^&]*)/i)[1]; istats.setCountername(counterName); if (/\bIDENTITY=/.test(document.cookie)) { istats.addLabels({'bbc_identity': '1'}); } if (/\bckns_policy=\d\d0/.test(document.cookie)) { istats.addLabels({'ns_nc': '1'}); } var c = (document.cookie.match(/\bckns_policy=(\d\d\d)/) || []).pop() || ''; var screenWidthAndHeight = 'unavailable'; if (window.screen && screen.width && screen.height) { screenWidthAndHeight = screen.width + 'x' + screen.height; } istats.addLabels('cps_asset_id=33646704&page_type=Story&section=%2Fnews%2Fworld%2Fus_and_canada&first_pub=2015-07-23T20%3A41%3A27%2B00%3A00&last_editorial_update=2015-07-24T04%3A36%3A09%2B00%3A00&title=Obama+admits+US+gun+laws+are+his+%27biggest+frustration%27&has_video=1&for_nation=us&app_version=1.79.0&pal_route=asset&ml_name=barlesque&app_type=responsive&language=en-GB&ml_version=0.26.31&pal_webapp=tabloid&prod_name=news&app_name=news'); istats.addLabels({ 'blq_s': '4d', 'blq_r': '2.7', 'blq_v': 'default', 'blq_e': 'pal', 'bbc_mc': (c ? 'ad' + c.charAt(0) + 'ps' + c.charAt(1) + 'pf' + c.charAt(2) : 'not_set'), 'screen_resolution': screenWidthAndHeight, 'ns_referrer': encodeURI(((window.orb.referrer) ? window.orb.referrer : document.referrer)) } ); istats.invoke(); }); } /*]]>*/</script> <!-- Begin iStats 20100118 (UX-CMC 1.1009.3) --> <script type="text/javascript">/*<![CDATA[*/ if (bbccookies.isAllowed('s1')) { (function () { require(['istats-1'], function (istats) { istatsTrackingUrl = istats.getDefaultURL(); if (istats.isEnabled() && bbcFlagpoles_istats === 'ON') { sitestat(istatsTrackingUrl); } else { window.ns_pixelUrl = istatsTrackingUrl; /* used by Flash library to track */ } function sitestat(n) { var j = document, f = j.location, b = ""; if (j.cookie.indexOf("st_ux=") != -1) { var k = j.cookie.split(";"); var e = "st_ux", h = document.domain, a = "/"; if (typeof ns_ != "undefined" && typeof ns_.ux != "undefined") { e = ns_.ux.cName || e; h = ns_.ux.cDomain || h; a = ns_.ux.cPath || a } for (var g = 0, f = k.length; g < f; g++) { var m = k[g].indexOf("st_ux="); if (m != -1) { b = "&" + decodeURI(k[g].substring(m + 6)) } } bbccookies.set(e + "=; expires=" + new Date(new Date().getTime() - 60).toGMTString() + "; path=" + a + "; domain=" + h); } window.ns_pixelUrl = n; } }); })(); } else { window.istats = {enabled: false}; } /*]]>*/</script> <noscript><p style="position: absolute; top: -999em;"><img src="//sa.bbc.co.uk/bbc/bbc/s?name=news.world.us_and_canada.story.33646704.page&amp;cps_asset_id=33646704&amp;page_type=Story&amp;section=%2Fnews%2Fworld%2Fus_and_canada&amp;first_pub=2015-07-23T20%3A41%3A27%2B00%3A00&amp;last_editorial_update=2015-07-24T04%3A36%3A09%2B00%3A00&amp;title=Obama+admits+US+gun+laws+are+his+%27biggest+frustration%27&amp;has_video=1&amp;for_nation=us&amp;app_version=1.79.0&amp;pal_route=asset&amp;ml_name=barlesque&amp;app_type=responsive&amp;language=en-GB&amp;ml_version=0.26.31&amp;pal_webapp=tabloid&amp;prod_name=news&amp;app_name=news&amp;blq_js_enabled=0&amp;blq_s=4d&amp;blq_r=2.7&amp;blq_v=default&amp;blq_e=pal " height="1" width="1" alt=""/></p></noscript> <!-- End iStats (UX-CMC) -->
+ <!--[if (gt IE 8) | (IEMobile)]><!--> <header id="orb-banner" role="banner"> <!--<![endif]--> <!--[if (lt IE 9) & (!IEMobile)]> <![if (IE 8)]> <header id="orb-banner" role="banner" class="orb-old-ie orb-ie8"> <![endif]> <![if (IE 7)]> <header id="orb-banner" role="banner" class="orb-old-ie orb-ie7"> <![endif]> <![if (IE 6)]> <header id="orb-banner" role="banner" class="orb-old-ie orb-ie6"> <![endif]> <![endif]--> <div id="orb-header" class="orb-nav-pri orb-nav-pri-white orb-location-w orb-nav-dyn"> <script type="text/javascript"> (function(){var h=document.getElementById('orb-header');if(/bbc\.co\.uk$/i.test(location.hostname)&&orb_masthead_test.getSegment()=='simple'&&(location.pathname===''||location.pathname==='/'||location.pathname==='/frameworks/test/mandolin/acceptance'&&h.setAttribute)){h.setAttribute('data-max-w','0');h.setAttribute('data-max-d','0');}}()); </script> <div class="orb-nav-pri-container b-r b-g-p"> <div class="orb-nav-section orb-nav-blocks"> <a href="/"> <img src="http://static.bbci.co.uk/frameworks/barlesque/2.83.10/orb/4/img/bbc-blocks-dark.png" alt="BBC" height="24" width="84"/> </a> </div> <section> <div class="orb-skip-links"> <h2>Accessibility links</h2> <ul> <li><a href="#page">Skip to content</a></li> <li><a id="orb-accessibility-help" href="/accessibility/">Accessibility Help</a></li> </ul> </div> </section> <div class="orb-nav-section orb-nav-id orb-nav-focus"> <a id="idcta-link" href="https://ssl.bbc.com/id/signin?ptrt=http%3A%2F%2Fwww.bbc.com%2Fnews%2Fworld-us-canada-33646704"><img id="idcta-image" src="http://static.bbci.co.uk/id/0.27.23/img/bbcid_orb_signin_dark.png" alt="" height="18" width="18"/><span id="idcta-username">Sign in</span></a> </div> <nav role="navigation" class="orb-nav"> <div class="orb-nav-section orb-nav-links orb-nav-focus" id="orb-nav-links"> <h2>BBC navigation</h2> <ul> <li class="orb-nav-newsdotcom orb-w"> <a href="http://www.bbc.com/news/">News</a> </li> <li class="orb-nav-sport"> <a href="/sport/">Sport</a> </li> <li class="orb-nav-weather"> <a href="/weather/">Weather</a> </li> <li class="orb-nav-shop orb-w"> <a href="http://shop.bbc.com/">Shop</a> </li> <li class="orb-nav-earthdotcom orb-w"> <a href="http://www.bbc.com/earth/">Earth</a> </li> <li class="orb-nav-travel-dotcom orb-w"> <a href="http://www.bbc.com/travel/">Travel</a> </li> <li class="orb-nav-capital orb-w orb-nav-hide"> <a href="http://www.bbc.com/capital/">Capital</a> </li> <li class="orb-nav-culture orb-w orb-nav-hide"> <a href="http://www.bbc.com/culture/">Culture</a> </li> <li class="orb-nav-autos orb-w orb-nav-hide"> <a href="http://www.bbc.com/autos/">Autos</a> </li> <li class="orb-nav-future orb-w orb-nav-hide"> <a href="http://www.bbc.com/future/">Future</a> </li> <li class="orb-nav-tv orb-nav-hide"> <a href="/tv/">TV</a> </li> <li class="orb-nav-radio orb-nav-hide"> <a href="/radio/">Radio</a> </li> <li class="orb-nav-cbbc orb-nav-hide"> <a href="/cbbc">CBBC</a> </li> <li class="orb-nav-cbeebies orb-nav-hide"> <a href="/cbeebies">CBeebies</a> </li> <li class="orb-nav-hide"> <a href="/ww1/">WW1</a> </li> <li class="orb-nav-food orb-nav-hide"> <a href="/food/">Food</a> </li> <li class="orb-nav-hide"> <a href="/iwonder">iWonder</a> </li> <li class="orb-nav-hide"> <a href="/education">Bitesize</a> </li> <li class="orb-nav-music orb-nav-hide"> <a href="/music/">Music</a> </li> <li class="orb-nav-nature orb-w orb-nav-hide"> <a href="/nature/">Nature</a> </li> <li class="orb-nav-local orb-nav-hide"> <a href="/local/">Local</a> </li> <li aria-controls="orb-panel-more" style="width: 70px;" id="orb-nav-more"><a class="istats-notrack" href="#orb-footer" data-alt="More">More<span class="orb-icon orb-icon-arrow"></span></a></li> </ul> </div> </nav> <div class="orb-nav-section orb-nav-search"> <a href="http://search.bbc.co.uk/search"> <img src="http://static.bbci.co.uk/frameworks/barlesque/2.83.10/orb/4/img/orb-search-dark.png" alt="Search the BBC" height="18" width="18"/> </a> <form class="b-f" id="orb-search-form" role="search" method="get" action="http://search.bbc.co.uk/search" accept-charset="utf-8"> <div> <input name="uri" value="/news/world-us-canada-33646704" type="hidden"/> <label for="orb-search-q">Search the BBC</label> <input id="orb-search-q" name="q" placeholder="Search" type="text"/> <input id="orb-search-button" src="http://static.bbci.co.uk/frameworks/barlesque/2.83.10/orb/4/img/orb-search-dark.png" alt="Search the BBC" height="17" type="image" width="17"/> <input name="suggid" id="orb-search-suggid" type="hidden"/> </div> </form> </div> </div> <div id="orb-panels"> <div id="orb-panel-more" class="orb-panel" aria-labelledby="orb-nav-more"> <div class="orb-panel-content b-g-p b-r orb-nav-sec"> <h2 id="orb-panel-more-title">More<span class="orb-icon orb-icon-arrow"></span></h2><ul> <li class="orb-nav-newsdotcom orb-w orb-panel-hide"> <a href="http://www.bbc.com/news/">News</a> </li> <li class="orb-nav-sport orb-panel-hide"> <a href="/sport/">Sport</a> </li> <li class="orb-nav-weather orb-panel-hide"> <a href="/weather/">Weather</a> </li> <li class="orb-nav-shop orb-w orb-panel-hide"> <a href="http://shop.bbc.com/">Shop</a> </li> <li class="orb-nav-earthdotcom orb-w orb-panel-hide"> <a href="http://www.bbc.com/earth/">Earth</a> </li> <li class="orb-nav-travel-dotcom orb-w orb-panel-hide"> <a href="http://www.bbc.com/travel/">Travel</a> </li> <li class="orb-nav-capital orb-w orb-first-visible"> <a href="http://www.bbc.com/capital/">Capital</a> </li> <li class="orb-nav-culture orb-w"> <a href="http://www.bbc.com/culture/">Culture</a> </li> <li class="orb-nav-autos orb-w"> <a href="http://www.bbc.com/autos/">Autos</a> </li> <li class="orb-nav-future orb-w"> <a href="http://www.bbc.com/future/">Future</a> </li> <li class="orb-nav-tv"> <a href="/tv/">TV</a> </li> <li class="orb-nav-radio"> <a href="/radio/">Radio</a> </li> <li class="orb-nav-cbbc"> <a href="/cbbc">CBBC</a> </li> <li class="orb-nav-cbeebies"> <a href="/cbeebies">CBeebies</a> </li> <li class=""> <a href="/ww1/">WW1</a> </li> <li class="orb-nav-food"> <a href="/food/">Food</a> </li> <li class=""> <a href="/iwonder">iWonder</a> </li> <li class=""> <a href="/education">Bitesize</a> </li> <li class="orb-nav-music"> <a href="/music/">Music</a> </li> <li class="orb-nav-nature orb-w"> <a href="/nature/">Nature</a> </li> <li class="orb-nav-local"> <a href="/local/">Local</a> </li> </ul> </div> </div></div> </div> </header> <!-- Styling hook for shared modules only --> <div id="orb-modules">
+ <div id="site-container">
+
+ <!--[if lt IE 9]>
+<div class="browser-notify">
+ <div class="browser-notify__banner">
+ <div class="browser-notify__icon"></div>
+ <span>This site is optimised for modern web browsers, and does not fully support your version of Internet Explorer</span>
+ </div>
+</div>
+<![endif]-->
+ <div class="site-brand site-brand--height" role="banner" aria-label="News">
+ <div class="site-brand-inner site-brand-inner--height">
+ <div class="navigation navigation--primary">
+ <a href="/news" id="brand">
+ <img class="brand__logo" src="http://static.bbci.co.uk/news/1.79.0380/img/brand/news.png" alt="BBC News"/>
+ </a>
+ <h2 class="navigation__heading off-screen">News navigation</h2>
+ <a href="#core-navigation" class="navigation__section navigation__section--enhanced" data-event="header">
+ Sections </a>
+ </div>
+ </div>
+
+
+<div class="navigation navigation--wide">
+ <ul class="navigation-wide-list" role="navigation" aria-label="News" data-panel-id="js-navigation-panel-primary">
+ <li>
+ <a href="/news" class="navigation-wide-list__link">
+ <span>Home</span>
+ </a>
+ </li>
+ <li>
+ <a href="/news/video_and_audio/international" class="navigation-wide-list__link">
+ <span>Video</span>
+ </a>
+ </li>
+ <li>
+ <a href="/news/world" data-panel-id="js-navigation-panel-World" class="navigation-wide-list__link">
+ <span>World</span>
+ </a>
+ </li>
+ <li class="selected">
+ <a href="/news/world/us_and_canada" class="navigation-wide-list__link navigation-arrow--open">
+ <span>US &amp; Canada</span>
+ </a>
+ <span class="off-screen">selected</span> </li>
+ <li>
+ <a href="/news/uk" data-panel-id="js-navigation-panel-UK" class="navigation-wide-list__link">
+ <span>UK</span>
+ </a>
+ </li>
+ <li>
+ <a href="/news/business" data-panel-id="js-navigation-panel-Business" class="navigation-wide-list__link">
+ <span>Business</span>
+ </a>
+ </li>
+ <li>
+ <a href="/news/technology" class="navigation-wide-list__link">
+ <span>Tech</span>
+ </a>
+ </li>
+ <li>
+ <a href="/news/science_and_environment" class="navigation-wide-list__link">
+ <span>Science</span>
+ </a>
+ </li>
+ <li>
+ <a href="/news/magazine" class="navigation-wide-list__link">
+ <span>Magazine</span>
+ </a>
+ </li>
+ <li>
+ <a href="/news/entertainment_and_arts" class="navigation-wide-list__link">
+ <span>Entertainment &amp; Arts</span>
+ </a>
+ </li>
+ <li>
+ <a href="/news/health" class="navigation-wide-list__link">
+ <span>Health</span>
+ </a>
+ </li>
+ <li>
+ <a href="/news/in_pictures" class="navigation-wide-list__link">
+ <span>In Pictures</span>
+ </a>
+ </li>
+ <li>
+ <a href="/news/also_in_the_news" class="navigation-wide-list__link">
+ <span>Also in the News</span>
+ </a>
+ </li>
+ <li>
+ <a href="/news/special_reports" class="navigation-wide-list__link">
+ <span>Special Reports</span>
+ </a>
+ </li>
+ <li>
+ <a href="/news/explainers" class="navigation-wide-list__link">
+ <span>Explainers</span>
+ </a>
+ </li>
+ <li>
+ <a href="/news/the_reporters" class="navigation-wide-list__link">
+ <span>The Reporters</span>
+ </a>
+ </li>
+ <li>
+ <a href="/news/have_your_say" class="navigation-wide-list__link navigation-wide-list__link--last">
+ <span>Have Your Say</span>
+ </a>
+ </li>
+ </ul>
+</div>
+
+ </div><div class="secondary-navigation secondary-navigation--narrow secondary-navigation--narrow-closed"></div><nav id="navigation--top" class="navigation navigation--narrow" role="navigation" aria-label="News">
+
+ <ul class="navigation--narrow__toplevel">
+ <li class="">
+ <a href="/news" class="">
+ <span>Home</span>
+ </a>
+ </li>
+ <li class="">
+ <a href="/news/video_and_audio/international" class="">
+ <span>Video</span>
+ </a>
+ </li>
+ <li class="">
+ <a href="/news/world" data-panel-id="js-navigation-panel-World" class="navigation-arrow">
+ <span>World</span>
+ </a>
+ <div class="navigation-panel navigation-panel--closed js-navigation-panel-World">
+ <div class="navigation-panel__content">
+ <ul class="navigation-panel-secondary">
+ <li><a href="/news/world"><span>World Home</span></a></li>
+ <li>
+ <a href="/news/world/africa"><span>Africa</span></a> </li>
+ <li>
+ <a href="/news/world/asia"><span>Asia</span></a> </li>
+ <li>
+ <a href="/news/world/australia"><span>Australia</span></a> </li>
+ <li>
+ <a href="/news/world/europe"><span>Europe</span></a> </li>
+ <li>
+ <a href="/news/world/latin_america"><span>Latin America</span></a> </li>
+ <li>
+ <a href="/news/world/middle_east"><span>Middle East</span></a> </li>
+ </ul>
+ </div>
+ </div>
+ </li>
+ <li class="selected ">
+ <a href="/news/world/us_and_canada" class="navigation-arrow--open">
+ <span>US &amp; Canada</span>
+ </a>
+ <span class="off-screen">selected</span> </li>
+ <li class="">
+ <a href="/news/uk" data-panel-id="js-navigation-panel-UK" class="navigation-arrow">
+ <span>UK</span>
+ </a>
+ <div class="navigation-panel navigation-panel--closed js-navigation-panel-UK">
+ <div class="navigation-panel__content">
+ <ul class="navigation-panel-secondary">
+ <li><a href="/news/uk"><span>UK Home</span></a></li>
+ <li>
+ <a href="/news/england"><span>England</span></a> </li>
+ <li>
+ <a href="/news/northern_ireland"><span>N. Ireland</span></a> </li>
+ <li>
+ <a href="/news/scotland"><span>Scotland</span></a> </li>
+ <li>
+ <a href="/news/wales"><span>Wales</span></a> </li>
+ <li>
+ <a href="/news/politics"><span>Politics</span></a> </li>
+ </ul>
+ </div>
+ </div>
+ </li>
+ <li class="">
+ <a href="/news/business" data-panel-id="js-navigation-panel-Business" class="navigation-arrow">
+ <span>Business</span>
+ </a>
+ <div class="navigation-panel navigation-panel--closed js-navigation-panel-Business">
+ <div class="navigation-panel__content">
+ <ul class="navigation-panel-secondary">
+ <li><a href="/news/business"><span>Business Home</span></a></li>
+ <li>
+ <a href="http://www.bbc.co.uk/news/business/market_data"><span>Market Data</span></a> </li>
+ <li>
+ <a href="/news/business/markets"><span>Markets</span></a> </li>
+ <li>
+ <a href="/news/business/economy"><span>Economy</span></a> </li>
+ <li>
+ <a href="/news/business/companies"><span>Companies</span></a> </li>
+ <li>
+ <a href="/news/business-22434141"><span>Entrepreneurship</span></a> </li>
+ <li>
+ <a href="/news/business-11428889"><span>Technology of Business</span></a> </li>
+ <li>
+ <a href="/news/business/business_of_sport"><span>Business of Sport</span></a> </li>
+ <li>
+ <a href="/news/business-12686570"><span>Knowledge economy</span></a> </li>
+ </ul>
+ </div>
+ </div>
+ </li>
+ <li class="">
+ <a href="/news/technology" class="">
+ <span>Tech</span>
+ </a>
+ </li>
+ <li class="">
+ <a href="/news/science_and_environment" class="">
+ <span>Science</span>
+ </a>
+ </li>
+ <li class="">
+ <a href="/news/magazine" class="">
+ <span>Magazine</span>
+ </a>
+ </li>
+ <li class="">
+ <a href="/news/entertainment_and_arts" class="">
+ <span>Entertainment &amp; Arts</span>
+ </a>
+ </li>
+ <li class="">
+ <a href="/news/health" class="">
+ <span>Health</span>
+ </a>
+ </li>
+ <li class="">
+ <a href="/news/in_pictures" class="">
+ <span>In Pictures</span>
+ </a>
+ </li>
+ <li class="">
+ <a href="/news/also_in_the_news" class="">
+ <span>Also in the News</span>
+ </a>
+ </li>
+ <li class="">
+ <a href="/news/special_reports" class="">
+ <span>Special Reports</span>
+ </a>
+ </li>
+ <li class="">
+ <a href="/news/explainers" class="">
+ <span>Explainers</span>
+ </a>
+ </li>
+ <li class="">
+ <a href="/news/the_reporters" class="">
+ <span>The Reporters</span>
+ </a>
+ </li>
+ <li class="">
+ <a href="/news/have_your_say" class="">
+ <span>Have Your Say</span>
+ </a>
+ </li>
+ </ul>
+ </nav>
+
+
+
+<div id="bbccom_leaderboard_1_2_3_4" class="bbccom_slot bbccom_standard_slot bbccom_visible" aria-hidden="true">
+ <div id="bbccom_leaderboard" class="bbccom_advert">
+ <script type="text/javascript">
+ /*<![CDATA[*/
+ if (window.bbcdotcom && bbcdotcom.slot) {
+ bbcdotcom.slot('leaderboard', [1,2,3,4]);
+ }
+ /*]]>*/
+ </script><a tabindex="-1" class="bbccom_text" href="http://www.bbc.co.uk/faqs/online/adverts_general">Advertisement</a><script type="text/javascript">bbcdotcom.ad("leaderboard").setBaseContent();googletag.display("leaderboard");</script><div id="leaderboard_ad_container">
+<ins style="width: 320px; height: 50px; display: inline-table; position: relative; border: 0px none; vertical-align: bottom;"><ins style="width: 320px; height: 50px; display: block; position: relative; border: 0px none;"><iframe tabindex="-1" style="border: 0px none; position: absolute; top: 0px; left: 0px;" marginheight="0" marginwidth="0" scrolling="no" name="google_ads_iframe_/4817/bbccom.live.site.mobile.news/news_usandcanada_content_0" id="google_ads_iframe_/4817/bbccom.live.site.mobile.news/news_usandcanada_content_0" frameborder="0" height="50" width="320"></iframe></ins></ins></div>
+<script>googletag.impl.pubads.createDomIframe("leaderboard_ad_container" ,"/4817/bbccom.live.site.mobile.news/news_usandcanada_content_0",false,false);</script>
+ </div>
+ <script type="text/javascript">
+ /*<![CDATA[*/
+ if (window.bbcdotcom && bbcdotcom.show) {
+ bbcdotcom.show()
+ }
+ /*]]>*/
+ </script>
+</div>
+ <div id="breaking-news-container" data-polling-url="http://polling.bbc.co.uk/news/latest_breaking_news?audience=US" aria-live="polite"></div>
+
+ <div class="container-width-only">
+ <span class="index-title" id="comp-index-title" data-index-title-meta="{&quot;id&quot;:&quot;comp-index-title&quot;,&quot;type&quot;:&quot;index-title&quot;,&quot;handler&quot;:&quot;indexTitle&quot;,&quot;deviceGroups&quot;:null,&quot;opts&quot;:{&quot;alwaysVisible&quot;:false,&quot;onFrontPage&quot;:false},&quot;template&quot;:&quot;index-title&quot;}">
+ <span class="index-title__container"><span class="bbccom_index_title">
+
+ US &amp; Canada
+
+ </span><a class="bbccom_text" href="http://www.bbc.co.uk/faqs/online/adverts_general" tabindex="-1" aria-hidden="true">is sponsored by</a></span>
+ </span>
+
+<div id="bbccom_sponsor_section_1_2_3_4" class="bbccom_slot bbccom_sponsor_section_slot bbccom_visible" aria-hidden="true">
+ <div id="bbccom_sponsor_section" class="bbccom_advert bbccom_display_none bbccom_responsive">
+ <script type="text/javascript">
+ /*<![CDATA[*/
+ if (window.bbcdotcom && bbcdotcom.slot) {
+ bbcdotcom.slot('sponsor_section', [1,2,3,4]);
+ }
+ /*]]>*/
+ </script><a tabindex="-1" class="bbccom_text" href="http://www.bbc.co.uk/faqs/online/adverts_general">is sponsored by</a><script type="text/javascript">bbcdotcom.ad("sponsor_section").setBaseContent();googletag.display("sponsor_section");</script>
+ </div>
+ <script type="text/javascript">
+ /*<![CDATA[*/
+ if (window.bbcdotcom && bbcdotcom.show) {
+ bbcdotcom.show()
+ }
+ /*]]>*/
+ </script>
+</div> </div>
+
+ <div id="page" class="configurable story " data-story-id="world-us-canada-33646704"> <div role="main"> <div class="container-width-only"> <span class="index-title index-title--redundant " id="comp-index-title" data-index-title-meta="{&quot;id&quot;:&quot;comp-index-title&quot;,&quot;type&quot;:&quot;index-title&quot;,&quot;handler&quot;:&quot;indexTitle&quot;,&quot;deviceGroups&quot;:null,&quot;opts&quot;:{&quot;alwaysVisible&quot;:false,&quot;onFrontPage&quot;:false},&quot;template&quot;:&quot;index-title&quot;}">
+ <span class="index-title__container"><span class="bbccom_index_title">
+
+ US &amp; Canada
+
+ </span><a class="bbccom_text" href="http://www.bbc.co.uk/faqs/online/adverts_general" tabindex="-1" aria-hidden="true">is sponsored by</a></span>
+ </span>
+
+<div id="" class="bbccom_slot " aria-hidden="true">
+ <div class="bbccom_advert bbccom_display_none">
+ <script type="text/javascript">
+ /*<![CDATA[*/
+ if (window.bbcdotcom && bbcdotcom.slot) {
+ bbcdotcom.slot('sponsor_section', [1,2,3,4]);
+ }
+ /*]]>*/
+ </script>
+ </div>
+ <script type="text/javascript">
+ /*<![CDATA[*/
+ if (window.bbcdotcom && bbcdotcom.show) {
+ bbcdotcom.show()
+ }
+ /*]]>*/
+ </script>
+</div> </div> <div class="container"> <div class="container--primary-and-secondary-columns column-clearfix"> <div class="column--primary">
+ <div class="story-body">
+ <h1 class="story-body__h1">Obama admits US gun laws are his 'biggest frustration'</h1>
+
+
+ <div class="story-body__mini-info-list-and-share">
+ <ul class="mini-info-list">
+ <li class="mini-info-list__item"> <div data-timestamp-inserted="true" class="date date--v2" data-seconds="1437712569" data-datetime="24 July 2015">24 July 2015</div>
+</li>
+ <li class="mini-info-list__item"><span class="mini-info-list__section-desc off-screen">From the section </span><a href="/news/world/us_and_canada" class="mini-info-list__section">US &amp; Canada</a></li>
+ <li class="mini-info-list__item"><span id="dna-comment-count___CPS__33646704" class="js-comment-count comment-count dna-comment-count-show" data-comments-id="__CPS__33646704">941</span><span class="off-screen"> comments</span></li>
+</ul>
+ </div>
+
+ <div class="story-body__inner" property="articleBody">
+ <div class="media-placeholder lead-video-placeholder enabled" id="84457006" data-media-type="video" data-media-meta="{&quot;duration&quot;:&quot;PT1M1S&quot;,&quot;available&quot;:true,&quot;image&quot;:{&quot;height&quot;:360,&quot;width&quot;:640,&quot;href&quot;:&quot;http:\/\/c.files.bbci.co.uk\/8269\/production\/_84458333_gunslawstext.jpg&quot;,&quot;altText&quot;:&quot;Obama on gun laws&quot;,&quot;copyrightHolder&quot;:&quot;(C) British Broadcasting Corporation&quot;,&quot;originCode&quot;:&quot;cpsprodpb&quot;},&quot;mimeType&quot;:&quot;application\/xml&quot;,&quot;href&quot;:&quot;http:\/\/playlists.bbc.co.uk\/news\/world-us-canada-33629023A\/playlist.sxml&quot;,&quot;externalId&quot;:&quot;p02xw7bz&quot;,&quot;caption&quot;:&quot;Mr Obama told the BBC that gun control was his biggest frustration&quot;,&quot;allowOffSiteEmbedding&quot;:true,&quot;live&quot;:false,&quot;entityType&quot;:&quot;Version&quot;,&quot;durationInSeconds&quot;:61}"><figure class="media-item default-player has-caption"><div style="background-repeat: no-repeat; background-position: center center; background-size: contain; background-color: black; overflow: hidden;" class="media-container media-wrapper" id="media-84457006"><div id="smphtml5iframemedia-84457006wrp" style="border-bottom: 0px none; z-index: 999; position: relative; height: 100%; width: 100%; padding-bottom: 56.25%;"><iframe style="position: absolute; left: 0px; top: 0px; width: 100%; height: 100%;" src="//emp.bbc.com/emp/SMPj/1.5.37/iframe.html" scrolling="no" name="smphtml5iframemedia-84457006" id="smphtml5iframemedia-84457006" frameborder="0"></iframe></div></div><figcaption class="media-caption"><span class="off-screen">Media caption</span> <span class="media-caption__text">Mr Obama told the BBC that gun control was his biggest frustration</span></figcaption><div id="bbccom_companion_84457006" class="bbccom_companion_outer"></div></figure></div><p class="story-body__introduction">President Barack Obama has admitted that his failure to pass "common sense gun safety laws" in the US is the greatest frustration of his presidency. </p><p>In an interview with the BBC, Mr Obama said it was "distressing" not to have made progress on the issue "even in the face of repeated mass killings".</p><p>He vowed to keep trying, but the BBC's North America editor Jon Sopel said the president did not sound very confident. </p><p>However, Mr Obama said race relations had improved during his presidency. </p><p>Hours after the interview, a gunman opened fire at a cinema in the US state of Louisiana, killing two people and injuring several others before shooting himself.</p><div id="bbccom_mpu_1_2_3" class="bbccom_slot mpu-ad bbccom_standard_slot bbccom_visible" aria-hidden="true">
+ <div id="bbccom_mpu" class="bbccom_advert bbccom_display_none">
+ <script type="text/javascript">
+ /**/
+ if (window.bbcdotcom && bbcdotcom.slot) {
+ bbcdotcom.slot('mpu', [1,2,3]);
+ }
+ /**/
+ </script><a tabindex="-1" class="bbccom_text" href="http://www.bbc.co.uk/faqs/online/adverts_general">Advertisement</a><script type="text/javascript">bbcdotcom.ad("mpu").setBaseContent();googletag.display("mpu");</script><div id="mpu_ad_container"><!-- Begin Rubicon Project Tag -->
+<!-- Site: BBC.com - US Only_MWeb_RFM Zone: BBC Properties_MWeb_RFM_ATF Size: Medium Rectangle -->
+<!-- PLACEMENT: Above the Fold; -->
+<script language="JavaScript" type="text/javascript">
+rp_account = '9176';
+rp_site = '21342';
+rp_zonesize = '72686-15';
+rp_adtype = 'js';
+rp_smartfile = '[SMART FILE URL]';
+</script>
+<script type="text/javascript" src="http://ads.rubiconproject.com/ad/9176.js"></script><script type="text/javascript" src="http://gum.criteo.com/sync?c=2&amp;r=2&amp;j=rp_onUserIdLoaded_72686_15"></script><script type="text/javascript">rp_requests = new RubiconAdServing.Requests(); rp_requests.sendRequest('72686-15');</script><script type="text/javascript" src="http://optimized-by.rubiconproject.com/a/9176/21342/72686-15.js?&amp;cb=0.19712674965035237&amp;tk_st=1&amp;rp_s=c&amp;p_exp=1&amp;p_pos=btf&amp;p_screen_res=584x500&amp;put_2054=3zr_sADHcp7bJibfUKesqs-8ROJWhKnp&amp;put_2138=3zr_sADHcp7bJibfUKesqs-8ROJWhKnp&amp;put_2149=3zr_sADHcp7bJibfUKesqs-8ROJWhKnp&amp;put_2532=3zr_sADHcp7bJibfUKesqs-8ROJWhKnp&amp;put_3410=3zr_sADHcp7bJibfUKesqs-8ROJWhKnp"></script>
+<div style="width: 0; height: 0; overflow: hidden;">
+<img src="http://beacon-us-east.rubiconproject.com/beacon/d/c7fc9a18-e658-40cb-b122-2a67ac137253?accountId=9176&amp;siteId=21342&amp;zoneId=72686&amp;e=6A1E40E384DA563BC35D424639CBC3996755004D5E9E92FCC5D5975482C06D202AFB0309050CE4C9FDBCCA75EDC6570644136BD09AD42E178F043B3A9B3D44DFCACFFC2D53F6EA7AC793078C8D240C81172CD28438FCBB6A0A85F1B2498A61AE3074348E62474919C04AE81C6C1B6F10D4119A84C501229B0FF33AE9256AA201" alt="" height="1" border="0" width="1"/>
+</div>
+
+<script type="text/javascript">
+/*<![CDATA[*/
+(function() {
+ try {
+ if (typeof BBC !== 'undefined' &&
+ typeof BBC.adverts !== 'undefined' &&
+ typeof BBC.adverts.close !== 'undefined') {
+ BBC.adverts.close('mpu');
+ }
+ if (typeof bbcdotcom !== 'undefined' &&
+ typeof bbcdotcom.objects !== 'undefined' &&
+ bbcdotcom.objects('bbcdotcom.adverts.adRegister')) {
+ var ad = bbcdotcom.adverts.adRegister.getAd('mpu');
+ if (typeof ad !== 'undefined' &&
+ typeof ad.close !== 'undefined') {
+ ad.close();
+ }
+ }
+ } catch(e) {}
+}());
+/*]]>*/
+</script><script>
+var _comscore = _comscore || [];
+(function() {
+ var rp_cats = "IAB12,IAB9,IAB3,IAB1,IAB13,IAB20,IAB19,IAB17,IAB15";
+ var rp_cat = 24*1000;
+ if (rp_cats) {
+ rp_cats = rp_cats.replace(/IAB/g,"").split(",");
+ if (rp_cats.length > 0 && rp_cats[0] && rp_cats[0].length > 0) {
+ rp_cat = rp_cats[0].split("-")[0];
+ rp_cat = rp_cat * 1000;
+ }
+}
+_comscore.push({ c1: "8", c2: "6135404", c3: rp_cat, c4: "21342", c10: "3947362" });
+
+var country_code = "us";
+var eligible = { us : 1, at: 1, be: 1, dk: 1, fi: 1, it: 1, nl: 1, no: 1, se: 1, uk: 1, au: 1, jp: 1 };
+
+if ( eligible[country_code] ) {
+ (function() {
+ var s = document.createElement("script"), el = document.getElementsByTagName("script")[0];
+ s.async = true;
+ s.src = (document.location.protocol == "https:" ? "https://sb" : "http://b") + ".scorecardresearch.com/beacon.js";
+ el.parentNode.insertBefore(s, el); })(); }
+ })();
+</script><div style="height: 0px; width: 0px; overflow: hidden">
+<script>
+(function() {var proto = document.location.protocol; var server="http://tap2-cdn.rubiconproject.com"; if (proto == "https:") server="https://tap-secure.rubiconproject.com"; document.write('<IFRAME SRC="'+server+'/partner/scripts/rubicon/emily.html?rtb_ext=1&pc=9176/21342&geo=na&co=us" FRAMEBORDER="0" MARGINWIDTH="0" MARGINHEIGHT="0" SCROLLING="NO" WIDTH="0" HEIGHT="0" style="height: 0px; width: 0px"></IFRAME>'); })();
+</script><iframe tabindex="-1" src="http://tap2-cdn.rubiconproject.com/partner/scripts/rubicon/emily.html?rtb_ext=1&amp;pc=9176/21342&amp;geo=na&amp;co=us" marginwidth="0" marginheight="0" scrolling="NO" style="height: 0px; width: 0px" frameborder="0" height="0" width="0"></iframe>
+
+</div>
+<!-- End Rubicon Project Tag -->
+<script type="text/javascript">(function(){var h=this,k=function(a){var b=typeof a;if("object"==b)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if("[object Window]"==c)return"object";if("[object Array]"==c||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array";if("[object Function]"==c||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("call"))return"function"}else return"null";else if("function"==b&&"undefined"==typeof a.call)return"object";return b},n=function(a){return"string"==typeof a},aa=function(a,b){var c=Array.prototype.slice.call(arguments,1);return function(){var b=c.slice();b.push.apply(b,arguments);return a.apply(this,b)}},p=Date.now||function(){return+new Date},q=function(a,b){var c=a.split("."),d=h;c[0]in d||!d.execScript||d.execScript("var "+c[0]);for(var e;c.length&&(e=c.shift());)c.length||void 0===b?d=d[e]?d[e]:d[e]={}:d[e]=b};var t=function(a,b,c,d,e){if(e)c=a+("&"+b+"="+c);else{var f="&"+b+"=",g=a.indexOf(f);0>g?c=a+f+c:(g+=f.length,f=a.indexOf("&",g),c=0&lt;=f?a.substring(0,g)+c+a.substring(f):a.substring(0,g)+c)}return 2E3&lt;c.length?void 0!==d?t(a,b,d,void 0,e):a:c};var ba=function(){var a=/[&\?]exk=([^& ]+)/.exec(u.location.href);return a&&2==a.length?a[1]:null};var ca=function(a){var b=a.toString();a.name&&-1==b.indexOf(a.name)&&(b+=": "+a.name);a.message&&-1==b.indexOf(a.message)&&(b+=": "+a.message);if(a.stack){a=a.stack;var c=b;try{-1==a.indexOf(c)&&(a=c+"\n"+a);for(var d;a!=d;)d=a,a=a.replace(/((https?:\/..*\/)[^\/:]*:\d+(?:.|\n)*)\2/,"$1");b=a.replace(/\n */g,"\n")}catch(e){b=c}}return b},v=function(a,b){a.google_image_requests||(a.google_image_requests=[]);var c=a.document.createElement("img");c.src=b;a.google_image_requests.push(c)};var w=document,u=window;var da=String.prototype.trim?function(a){return a.trim()}:function(a){return a.replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")},ea=function(a,b){return a&lt;b?-1:a>b?1:0};var x=null,fa=function(a,b){for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&b.call(null,a[c],c,a)};function y(a){return"function"==typeof encodeURIComponent?encodeURIComponent(a):escape(a)}var ga=function(){if(!w.body)return!1;if(!x){var a=w.createElement("iframe");a.style.display="none";a.id="anonIframe";x=a;w.body.appendChild(a)}return!0},ha={};var ia=!0,ja={},ma=function(a,b,c,d){var e=ka,f,g=ia;try{f=b()}catch(l){try{var r=ca(l);b="";l.fileName&&(b=l.fileName);var G=-1;l.lineNumber&&(G=l.lineNumber);g=e(a,r,b,G,c)}catch(m){try{var B=ca(m);a="";m.fileName&&(a=m.fileName);c=-1;m.lineNumber&&(c=m.lineNumber);ka("pAR",B,a,c,void 0,void 0)}catch(Ma){la({context:"mRE",msg:Ma.toString()+"\n"+(Ma.stack||"")},void 0)}}if(!g)throw l;}finally{if(d)try{d()}catch(Wb){}}return f},ka=function(a,b,c,d,e,f){var g={};if(e)try{e(g)}catch(l){}g.context=a;g.msg=b.substring(0,512);c&&(g.file=c);0&lt;d&&(g.line=d.toString());g.url=w.URL.substring(0,512);g.ref=w.referrer.substring(0,512);na(g);la(g,f);return ia},la=function(a,b){try{if(Math.random()&lt;(b||.01)){var c="/pagead/gen_204?id=jserror"+oa(a),d="http"+("http:"==u.location.protocol?"":"s")+"://pagead2.googlesyndication.com"+c,d=d.substring(0,2E3);v(u,d)}}catch(e){}},na=function(a){var b=a||{};fa(ja,function(a,d){b[d]=u[a]})},z=function(a,b,c,d,e){return function(){var f=arguments;return ma(a,function(){return b.apply(c,f)},d,e)}},oa=function(a){var b="";fa(a,function(a,d){if(0===a||a)b+="&"+d+"="+y(String(a))});return b};var A=Array.prototype,pa=A.indexOf?function(a,b,c){return A.indexOf.call(a,b,c)}:function(a,b,c){c=null==c?0:0>c?Math.max(0,a.length+c):c;if(n(a))return n(b)&&1==b.length?a.indexOf(b,c):-1;for(;c&lt;a.length;c++)if(c in a&&a[c]===b)return c;return-1},qa=A.map?function(a,b,c){return A.map.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=Array(d),f=n(a)?a.split(""):a,g=0;g&lt;d;g++)g in f&&(e[g]=b.call(c,f[g],g,a));return e};var ra=function(a,b){for(var c in a)b.call(void 0,a[c],c,a)},sa=function(a){var b=arguments.length;if(1==b&&"array"==k(arguments[0]))return sa.apply(null,arguments[0]);for(var c={},d=0;d&lt;b;d++)c[arguments[d]]=!0;return c};var C;a:{var ta=h.navigator;if(ta){var ua=ta.userAgent;if(ua){C=ua;break a}}C=""}var D=function(a){return-1!=C.indexOf(a)};var E=function(){return D("Opera")||D("OPR")},va=function(){return(D("Chrome")||D("CriOS"))&&!E()&&!D("Edge")};var wa=function(){return D("iPhone")&&!D("iPod")&&!D("iPad")};var xa=E(),F=D("Trident")||D("MSIE"),ya=D("Edge"),za=D("Gecko")&&!(-1!=C.toLowerCase().indexOf("webkit")&&!D("Edge"))&&!(D("Trident")||D("MSIE"))&&!D("Edge"),Aa=-1!=C.toLowerCase().indexOf("webkit")&&!D("Edge"),Ba=function(){var a=C;if(za)return/rv\:([^\);]+)(\)|;)/.exec(a);if(ya)return/Edge\/([\d\.]+)/.exec(a);if(F)return/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a);if(Aa)return/WebKit\/(\S+)/.exec(a)},Ca=function(){var a=h.document;return a?a.documentMode:void 0},Da=function(){if(xa&&h.opera){var a=h.opera.version;return"function"==k(a)?a():a}var a="",b=Ba();b&&(a=b?b[1]:"");return F&&(b=Ca(),b>parseFloat(a))?String(b):a}(),Ea={},Fa=function(a){if(!Ea[a]){for(var b=0,c=da(String(Da)).split("."),d=da(String(a)).split("."),e=Math.max(c.length,d.length),f=0;0==b&&f&lt;e;f++){var g=c[f]||"",l=d[f]||"",r=RegExp("(\\d*)(\\D*)","g"),G=RegExp("(\\d*)(\\D*)","g");do{var m=r.exec(g)||["","",""],B=G.exec(l)||["","",""];if(0==m[0].length&&0==B[0].length)break;b=ea(0==m[1].length?0:parseInt(m[1],10),0==B[1].length?0:parseInt(B[1],10))||ea(0==m[2].length,0==B[2].length)||ea(m[2],B[2])}while(0==b)}Ea[a]=0&lt;=b}},Ga=h.document,Ha=Ga&&F?Ca()||("CSS1Compat"==Ga.compatMode?parseInt(Da,10):5):void 0;var Ia=function(a,b,c){if("array"==k(b))for(var d=0;d&lt;b.length;d++)Ia(a,String(b[d]),c);else null!=b&&c.push("&",a,""===b?"":"=",encodeURIComponent(String(b)))},Ja=function(a,b,c){for(c=c||0;c&lt;b.length;c+=2)Ia(b[c],b[c+1],a);return a},Ka=function(a,b){var c=2==arguments.length?Ja([a],arguments[1],0):Ja([a],arguments,1);if(c[1]){var d=c[0],e=d.indexOf("#");0&lt;=e&&(c.push(d.substr(e)),c[0]=d=d.substr(0,e));e=d.indexOf("?");0>e?c[1]="?":e==d.length-1&&(c[1]=void 0)}return c.join("")};var La={l:947190538,m:947190541,o:947190542,h:79463068,i:79463069},Na={g:"ud=1",f:"ts=0",s:"sc=1",c:"gz=1",j:"lp=1"};if(w&&w.URL){var Oa=w.URL,Pa;if(Pa=Oa){var Qa;if(Oa){var H=/.*[&#?]google_debug(=[^&]*)?(&.*)?$/.exec(decodeURIComponent(Oa));Qa=H?H[1]&&1&lt;H[1].length?H[1].substring(1):"true":""}else Qa="";Pa=0&lt;Qa.length}ia=!Pa}var I=function(a,b,c,d){c=z(d||"osd_or_lidar::"+b,c,void 0,void 0,void 0);a.addEventListener?a.addEventListener(b,c,!1):a.attachEvent&&a.attachEvent("on"+b,c)},Ra=function(a,b,c){if(!(0>=b)){var d=0,e=function(){a();d++;d&lt;b&&u.setTimeout(z(c,e,void 0,void 0,void 0),100)};e()}};var J=function(a,b){this.b=a||0;this.a=b||""},K=function(a,b){a.b&&(b[4]=a.b);a.a&&(b[12]=a.a)};J.prototype.match=function(a){return(this.b||this.a)&&(a.b||a.a)?this.a||a.a?this.a==a.a:this.b||a.b?this.b==a.b:!1:!1};J.prototype.toString=function(){var a=""+this.b;this.a&&(a+="-"+this.a);return a};var Sa=function(){var a=L,b=[];a.b&&b.push("adk="+a.b);a.a&&b.push("exk="+a.a);return b},M=function(a){var b=[];ra(a,function(a,d){var e=y(d),f=a;n(f)&&(f=y(f));b.push(e+"="+f)});return b.join("\n")},N=0,Ta=0,Ua=function(a){var b=0,c=u;try{if(c&&c.Goog_AdSense_getAdAdapterInstance)return c}catch(d){}try{for(;c&&5>b;){if(c.google_osd_static_frame)return c;if(c.aswift_0&&(!a||c.aswift_0.google_osd_static_frame))return c.aswift_0;b++;c=c!=c.parent?c.parent:null}}catch(e){}return null},Va=function(a,b,c,d,e){if(10&lt;Ta)u.clearInterval(N);else if(++Ta,u.postMessage&&(b.b||b.a)){var f=Ua(!0);if(f){var g={};K(b,g);g[0]="goog_request_monitoring";g[6]=a;g[16]=c;d&&d.length&&(g[17]=d.join(","));e&&(g[19]=e);try{var l=M(g);f.postMessage(l,"*")}catch(r){}}}},Wa=function(a){var b=Ua(!1),c=!b;!b&&u&&(b=u.parent);if(b&&b.postMessage)try{b.postMessage(a,"*"),c&&u.postMessage(a,"*")}catch(d){}};sa("area base br col command embed hr img input keygen link meta param source track wbr".split(" "));var O=function(a,b){this.width=a;this.height=b};O.prototype.round=function(){this.width=Math.round(this.width);this.height=Math.round(this.height);return this};var Xa;if(!(Xa=!za&&!F)){var Ya;if(Ya=F)Ya=9&lt;=Ha;Xa=Ya}Xa||za&&Fa("1.9.1");F&&Fa("9");var P=!1,Q=function(a){if(a=a.match(/[\d]+/g))a.length=3};if(navigator.plugins&&navigator.plugins.length){var Za=navigator.plugins["Shockwave Flash"];Za&&(P=!0,Za.description&&Q(Za.description));navigator.plugins["Shockwave Flash 2.0"]&&(P=!0)}else if(navigator.mimeTypes&&navigator.mimeTypes.length){var $a=navigator.mimeTypes["application/x-shockwave-flash"];(P=$a&&$a.enabledPlugin)&&Q($a.enabledPlugin.description)}else try{var ab=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7"),P=!0;Q(ab.GetVariable("$version"))}catch(bb){try{ab=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6"),P=!0}catch(cb){try{ab=new ActiveXObject("ShockwaveFlash.ShockwaveFlash"),P=!0,Q(ab.GetVariable("$version"))}catch(db){}}};var eb=D("Firefox"),fb=wa()||D("iPod"),gb=D("iPad"),hb=D("Android")&&!(va()||D("Firefox")||E()||D("Silk")),ib=va(),jb=D("Safari")&&!(va()||D("Coast")||E()||D("Edge")||D("Silk")||D("Android"))&&!(wa()||D("iPad")||D("iPod"));var R=function(a){return(a=a.exec(C))?a[1]:""};(function(){if(eb)return R(/Firefox\/([0-9.]+)/);if(F||xa)return Da;if(ib)return R(/Chrome\/([0-9.]+)/);if(jb&&!(wa()||D("iPad")||D("iPod")))return R(/Version\/([0-9.]+)/);if(fb||gb){var a;if(a=/Version\/(\S+).*Mobile\/(\S+)/.exec(C))return a[1]+"."+a[2]}else if(hb)return(a=R(/Android\s+([0-9.]+)/))?a:R(/Version\/([0-9.]+)/);return""})();var lb=function(){var a=u.parent&&u.parent!=u,b=a&&0&lt;="//tpc.googlesyndication.com".indexOf(u.location.host);if(a&&u.name&&0==u.name.indexOf("google_ads_iframe")||b){var c;a=u||u;try{var d;if(a.document&&!a.document.body)d=new O(-1,-1);else{var e=(a||window).document,f="CSS1Compat"==e.compatMode?e.documentElement:e.body;d=(new O(f.clientWidth,f.clientHeight)).round()}c=d}catch(g){c=new O(-12245933,-12245933)}return kb(c)}c=u.document.getElementsByTagName("SCRIPT");return 0&lt;c.length&&(c=c[c.length-1],c.parentElement&&c.parentElement.id&&0&lt;c.parentElement.id.indexOf("_ad_container"))?kb(void 0,c.parentElement):null},kb=function(a,b){var c=mb("IMG",a,b);return c||(c=mb("IFRAME",a,b))?c:(c=mb("OBJECT",a,b))?c:null},mb=function(a,b,c){var d=document;c=c||d;d=a&&"*"!=a?a.toUpperCase():"";c=c.querySelectorAll&&c.querySelector&&d?c.querySelectorAll(d+""):c.getElementsByTagName(d||"*");for(d=0;d&lt;c.length;d++){var e=c[d];if("OBJECT"==a)a:{var f=e.getAttribute("height");if(null!=f&&0&lt;f&&0==e.clientHeight)for(var f=e.children,g=0;g&lt;f.length;g++){var l=f[g];if("OBJECT"==l.nodeName||"EMBED"==l.nodeName){e=l;break a}}}f=e.clientHeight;g=e.clientWidth;if(l=b)l=new O(g,f),l=Math.abs(b.width-l.width)&lt;.1*b.width&&Math.abs(b.height-l.height)&lt;.1*b.height;if(l||!b&&10&lt;f&&10&lt;g)return e}return null};var nb,S=0,T="",U=!1,V=!1,ob=!1,pb=!0,qb=!1,rb=!1,sb=!1,tb=!1,ub="",vb=0,wb=0,W=0,xb=[],L=null,yb="",zb=[],Ab=null,Bb=[],Cb=!1,Db="",Eb="",Fb=(new Date).getTime(),Gb=!1,Hb="",Ib=!1,Jb=["1","0","3"],X=0,Y=0,Kb=0,Lb="",Nb=function(a,b,c){U&&(pb||3!=(c||3)||rb)&&Mb(a,b,!0);(ob||V&&qb)&&Mb(a,b)},Ob=function(){var a=Ab;return a?2!=a():!0},Mb=function(a,b,c){(b=b||yb)&&!Cb&&(2==Y||c)&&Ob()&&(b=Pb(b,c),v(a,b),tb=!0,c?U=!1:Cb=!0)},Pb=function(a,b){var c;c=b?"osdim":ob?"osd2":"osdtos";var d=["//pagead2.googlesyndication.com/activeview","?id=",c];"osd2"==c&&V&&qb&&d.push("&ts=1");T&&d.push("&avi=",T);nb&&d.push("&cid=",nb);d.push("&ti=1");d.push("&",a);d.push("&uc="+Kb);Gb?d.push("&tgt="+Hb):d.push("&tgt=nf");d.push("&cl="+(Ib?1:0));""!=ub&&(d.push("&lop=1"),c=p()-vb,d.push("&tslp="+c));d=d.join("");for(c=0;c&lt;zb.length;c++){try{var e=zb[c]()}catch(f){}var g="max_length";2&lt;=e.length&&(3==e.length&&(g=e[2]),d=t(d,y(e[0]),y(e[1]),g))}2E3&lt;d.length&&(d=d.substring(0,2E3));return d},Z=function(a,b){if(Db){try{var c=t(Db,"vi",a);ga()&&v(x.contentWindow,c)}catch(d){}0&lt;=pa(Jb,a)&&(Db="");var c=b||yb,e;e=t("//pagead2.googlesyndication.com/pagead/gen_204?id=sldb","avi",T);e=t(e,"vi",a);c&&(e+="&"+c);try{v(u,e)}catch(f){}}},Qb=function(){Z("-1")},Sb=function(a){if(a&&a.data&&n(a.data)){var b;var c=a.data;if(n(c)){b={};for(var c=c.split("\n"),d=0;d&lt;c.length;d++){var e=c[d].indexOf("=");if(!(0>=e)){var f=Number(c[d].substr(0,e)),e=c[d].substr(e+1);switch(f){case 5:case 8:case 11:case 15:case 16:case 18:e="true"==e;break;case 4:case 7:case 6:case 14:case 20:case 21:case 22:case 23:e=Number(e);break;case 3:case 19:if("function"==k(decodeURIComponent))try{e=decodeURIComponent(e)}catch(g){throw Error("Error: URI malformed: "+e);}break;case 17:e=qa(decodeURIComponent(e).split(","),Number)}b[f]=e}}b=b[0]?b:null}else b=null;if(b&&(c=new J(b[4],b[12]),L&&L.match(c))){for(c=0;c&lt;Bb.length;c++)Bb[c](b);void 0!=b[18]&&(rb=b[18],rb||2!=W||(W=3,Rb()));c=b[0];if("goog_acknowledge_monitoring"==c)u.clearInterval(N),X=2;else if("goog_get_mode"==c){X=1;d={};L&&K(L,d);d[0]="goog_provide_mode";d[6]=Y;d[19]=Lb;d[16]=V;try{var l=M(d);a.source.postMessage(l,a.origin)}catch(r){}u.clearInterval(N);X=2}else"goog_update_data"==c?(yb=b[3],++Kb):"goog_image_request"==c&&(Nb(u,b[3]),b[5]||b[11]||Z("0",b[3]));if("goog_update_data"==c||"goog_image_request"==c)(1==Y||2==Y||U)&&b[5]&&(a=1==b[15]&&"goog_update_data"==c,qb=!0,Z("1"),Eb&&Ob()&&(l=Eb,ga()&&v(x.contentWindow,l),Eb=""),U&&!a&&(Mb(u,void 0,!0),sb=!0,wb=p()),3==W&&(W=4,Rb()),U||1!=Y||(Cb=!0)),(1==Y||2==Y||U)&&b[11]&&(V=!1,Z("3"),U&&(Mb(u,void 0,!0),1==W&&rb&&(W=2)))}}},Rb=function(){var a=u,b=W;0!=b&&1!=b&&Tb(a,"osdim","zas="+b)},Tb=function(a,b,c){b="//pagead2.googlesyndication.com/pagead/gen_204?id="+b+"&";var d=[];d.push("ovr_value="+S);d.push("avi="+T);L&&(d=d.concat(Sa()));d.push("tt="+((new Date).getTime()-Fb));d.push(c);a.document&&a.document.referrer&&d.push("ref="+y(a.document.referrer));b+=d.join("&");try{v(a,b)}catch(e){}},Ub=function(){Nb(u);Z("0");2>X&&!V&&2==Y&&Tb(u,"osd2","hs="+X)},Vb=function(){var a={};K(L,a);a[0]="goog_dom_content_loaded";var b=M(a);try{Ra(function(){Wa(b)},10,"osd_listener::ldcl_int")}catch(c){}},Xb=function(){var a={};K(L,a);a[0]="goog_creative_loaded";var b=M(a);Ra(function(){Wa(b)},10,"osd_listener::lcel_int");Ib=!0},Yb=function(a){if(n(a)){a=a.split("&");for(var b=a.length-1;0&lt;=b;b--){var c=a[b],d=Na;c==d.g?(pb=!1,a.splice(b,1)):c==d.c?(W=1,a.splice(b,1)):c==d.f&&(V=!1,a.splice(b,1))}Lb=a.join("&")}},Zb=function(){if(!Gb){var a=lb();a&&(Gb=!0,Hb=a.tagName,a.complete||a.naturalWidth?Xb():I(a,"load",Xb,"osd_listener::creative_load"))}};q("osdlfm",z("osd_listener::init",function(a,b,c,d,e,f,g,l,r,G){S=a;Db=b;Eb=d;U=f;nb=G;l&&Yb(l);V=f;1!=r&&2!=r&&3!=r||xb.push(La["MRC_TEST_"+r]);L=new J(e,ba());I(u,"load",Qb,"osd_listener::load");I(u,"message",Sb,"osd_listener::message");T=c||"";I(u,"unload",Ub,"osd_listener::unload");var m=u.document;!m.readyState||"complete"!=m.readyState&&"loaded"!=m.readyState?("msie"in ha?ha.msie:ha.msie=-1!=navigator.userAgent.toLowerCase().indexOf("msie"))&&!window.opera?I(m,"readystatechange",function(){"complete"!=m.readyState&&"loaded"!=m.readyState||Vb()},"osd_listener::rsc"):I(m,"DOMContentLoaded",Vb,"osd_listener::dcl"):Vb();-1==S?Y=f?3:1:-2==S?Y=3:0&lt;S&&(Y=2,ob=!0);V&&!ob&&-1==S&&(Y=2);L&&(L.b||L.a)&&(X=1,N=u.setInterval(z("osd_proto::reqm_int",aa(Va,Y,L,V,xb,Lb),void 0,void 0,void 0),500));Ra(Zb,5,"osd_listener:sfc")}));q("osdlac",z("osd_listener::lac_ex",function(a){zb.push(a)}));q("osdlamrc",z("osd_listener::lamrc_ex",function(a){Bb.push(a)}));q("osdsir",z("osd_listener::sir_ex",Nb));q("osdacrc",z("osd_listener::acrc_ex",function(a){Ab=a}));q("osdpcls",z("osd_listener::acrc_ex",function(a){if(""==a||u==u.top||Cb||tb&&!sb)return!1;ub=a;if(sb){var b=T;T=a;var c=Pb(yb,!0);T=b;b=p()-wb;c=Ka(c,"tsvp",b);v(u,c)}T=""==T?a:T+","+a;vb=p();return!0}));}).call(this);osdlfm(-1,'','BWz45lW6yVeCgI9D7-QOox5q4BwAAAAAQATgByAEJwAIC4AIA4AQBoAYWwhMDEIAB','',3569409373,true,true,'ud\x3d1\x26la\x3d0\x26',3,'');</script>
+</div>
+
+ </div>
+ <script type="text/javascript">
+ /**/
+ if (window.bbcdotcom && bbcdotcom.show) {
+ bbcdotcom.show()
+ }
+ /**/
+ </script>
+</div><p>In a wide-ranging interview, President Obama also said:</p><ul class="story-body__unordered-list">
+<li class="story-body__list-item">
+<a href="http://www.bbc.co.uk/news/uk-politics-33647154" class="story-body__link">The UK must stay in the EU</a> to have influence on the world stage</li>
+<li class="story-body__list-item">He is confident the Iran nuclear deal will be passed by Congress </li>
+<li class="story-body__list-item">Syria needs a political solution in order to defeat the Islamic State group</li>
+<li class="story-body__list-item">He would speak "bluntly" against corruption <a href="http://www.bbc.co.uk/news/world-us-canada-33646563" class="story-body__link">and human rights violations in Kenya</a>
+</li>
+<li class="story-body__list-item">He would defend his advocacy of gay rights following protests in Kenya</li>
+<li class="story-body__list-item">Despite racial tensions, the US is becoming more diverse and more tolerant</li>
+</ul><p><a href="http://www.bbc.co.uk/news/world-us-canada-33646542" class="story-body__link">Read the full transcript of his interview</a></p><p>Mr Obama lands in Kenya later on Friday for his first visit since becoming president. </p><p>But with just 18 months left in power, he said gun control was the area where he has been "most frustrated and most stymied" since coming to power in 2009.</p><p>"If you look at the number of Americans killed since 9/11 by terrorism, it's less than 100. If you look at the number that have been killed by gun violence, it's in the tens of thousands," Mr Obama said. </p><div class="media-placeholder narrative-video-placeholder enabled" id="84457698" data-media-type="video" data-media-meta="{&quot;duration&quot;:&quot;PT3M52S&quot;,&quot;available&quot;:true,&quot;image&quot;:{&quot;height&quot;:360,&quot;width&quot;:640,&quot;href&quot;:&quot;http:\/\/c.files.bbci.co.uk\/B0E5\/production\/_84458254_mediaitemuk.jpg&quot;,&quot;altText&quot;:&quot;Obama on the US-UK Relationship&quot;,&quot;copyrightHolder&quot;:&quot;(C) British Broadcasting Corporation&quot;,&quot;originCode&quot;:&quot;cpsprodpb&quot;},&quot;mimeType&quot;:&quot;application\/xml&quot;,&quot;href&quot;:&quot;http:\/\/playlists.bbc.co.uk\/news\/world-us-canada-33647052A\/playlist.sxml&quot;,&quot;externalId&quot;:&quot;p02xwdcy&quot;,&quot;caption&quot;:&quot;Barack Obama: \u0022Great Britain has always been our best partner\u0022&quot;,&quot;allowOffSiteEmbedding&quot;:true,&quot;live&quot;:false,&quot;entityType&quot;:&quot;Version&quot;,&quot;durationInSeconds&quot;:232}"><figure class="media-item default-player has-caption"><div style="background-repeat: no-repeat; background-position: center center; background-size: contain; background-color: black; overflow: hidden;" class="media-container media-wrapper" id="media-84457698"><div id="smphtml5iframemedia-84457698wrp" style="border-bottom: 0px none; z-index: 999; position: relative; height: 100%; width: 100%; padding-bottom: 56.25%;"><iframe style="position: absolute; left: 0px; top: 0px; width: 100%; height: 100%;" src="//emp.bbc.com/emp/SMPj/1.5.37/iframe.html" scrolling="no" name="smphtml5iframemedia-84457698" id="smphtml5iframemedia-84457698" frameborder="0"></iframe></div></div><figcaption class="media-caption"><span class="off-screen">Media caption</span> <span class="media-caption__text">Barack Obama: "Great Britain has always been our best partner"</span></figcaption><div id="bbccom_companion_84457698" class="bbccom_companion_outer"></div></figure></div><figure class="media-landscape full-width has-caption"><img src="http://ichef.bbci.co.uk/news/555/cpsprodpb/462D/production/_84456971_gettyimages-167501087.jpg" datasrc="http://ichef.bbci.co.uk/news/976/cpsprodpb/462D/production/_84456971_gettyimages-167501087.jpg" class="js-image-replace" alt="Gun control campaigners protest in McPhearson Square in Washington DC - 25 April 2013" height="549" width="976"/>
+ <figcaption class="media-caption">
+ <span class="media-caption__text">
+ The president said he would continue fighting for greater gun control laws
+ </span>
+ </figcaption></figure><p>"For us not to be able to resolve that issue has been something that is distressing," he added. </p><p>Mr Obama has pushed for stricter gun control throughout his presidency but has been unable to secure any significant changes to the laws. </p><p>After nine African-American churchgoers were killed in South Carolina in June, he admitted "politics in this town" meant there were few options available.</p><figure class="media-landscape body-width no-caption"><img src="http://ichef.bbci.co.uk/news/555/media/images/76020000/jpg/_76020974_line976.jpg" datasrc="http://ichef.bbci.co.uk/news/464/media/images/76020000/jpg/_76020974_line976.jpg" class="js-image-replace" alt="line" height="2" width="464"/></figure><h2 class="story-body__crosshead">Analysis: Jon Sopel, BBC News, Washington</h2><figure class="media-landscape full-width no-caption"><img src="http://ichef-1.bbci.co.uk/news/555/cpsprodpb/6D3D/production/_84456972_p072315al-0500.jpg" datasrc="http://ichef-1.bbci.co.uk/news/976/cpsprodpb/6D3D/production/_84456972_p072315al-0500.jpg" class="js-image-replace" alt="President Barack Obama participates in an interview with Jon Sopel of BBC in the Roosevelt Room of the White House - 23 July 2015" height="549" width="976"/></figure><p>Nine months ago, the president seemed like a spent force, after taking a beating in the midterm elections, during which members of his own party were reluctant to campaign on his record. </p><p>But the man sat before me today was relaxed and confident, buoyed by a string of "wins" on healthcare, Cuba and Iran, after bitter and ongoing battles with his many critics. </p><p>The only body swerve the president performed was when I asked him <a href="http://www.bbc.co.uk/news/world-us-canada-33643168" class="story-body__link"> how many minds he had changed on the Iran nuclear deal </a>after an intense sell aimed at Gulf allies and members of US Congress who remain implacably opposed. </p><p>There was a momentary flicker across the president's face as if to say "You think you got me?" before his smile returned and he proceeded to talk about how Congress would come round.</p><p>But notably, he did not give a direct answer to that question, which leaves me with the impression that he has persuaded precisely zero.</p><p><a href="http://www.bbc.co.uk/news/world-us-canada-33646875" class="story-body__link">Five things we learned from Obama interview</a></p><p><a href="http://www.bbc.co.uk/news/world-us-canada-33646545" class="story-body__link">The presidential body swerve</a></p><figure class="media-landscape body-width no-caption"><img src="http://ichef.bbci.co.uk/news/555/media/images/76020000/jpg/_76020974_line976.jpg" datasrc="http://ichef.bbci.co.uk/news/464/media/images/76020000/jpg/_76020974_line976.jpg" class="js-image-replace" alt="line" height="2" width="464"/></figure><div class="media-placeholder narrative-video-placeholder enabled" id="83728567" data-media-type="video" data-media-meta="{&quot;duration&quot;:&quot;PT2M1S&quot;,&quot;available&quot;:true,&quot;image&quot;:{&quot;height&quot;:360,&quot;width&quot;:640,&quot;href&quot;:&quot;http:\/\/c.files.bbci.co.uk\/11F6E\/production\/_83728537_obama.jpg&quot;,&quot;altText&quot;:&quot;Images of Obama making speeches after mass shootings&quot;,&quot;copyrightHolder&quot;:&quot;Getty Images&quot;,&quot;originCode&quot;:&quot;cpsprodpb&quot;},&quot;mimeType&quot;:&quot;application\/xml&quot;,&quot;href&quot;:&quot;http:\/\/playlists.bbc.co.uk\/news\/world-us-canada-33193314A\/playlist.sxml&quot;,&quot;externalId&quot;:&quot;p02v1qt1&quot;,&quot;caption&quot;:&quot;The BBC contrasts President Obama\u0027s reactions after mass shootings, with the levels of US gun ownership during his terms in office. (Video by David Botti)&quot;,&quot;allowOffSiteEmbedding&quot;:true,&quot;live&quot;:false,&quot;entityType&quot;:&quot;Version&quot;,&quot;durationInSeconds&quot;:121}"><figure class="media-item default-player has-caption"><div style="background-repeat: no-repeat; background-position: center center; background-size: contain; background-color: black; overflow: hidden;" class="media-container media-wrapper" id="media-83728567"><div id="smphtml5iframemedia-83728567wrp" style="border-bottom: 0px none; z-index: 999; position: relative; height: 100%; width: 100%; padding-bottom: 56.25%;"><iframe style="position: absolute; left: 0px; top: 0px; width: 100%; height: 100%;" src="//emp.bbc.com/emp/SMPj/1.5.37/iframe.html" scrolling="no" name="smphtml5iframemedia-83728567" id="smphtml5iframemedia-83728567" frameborder="0"></iframe></div></div><figcaption class="media-caption"><span class="off-screen">Media caption</span> <span class="media-caption__text">The BBC contrasts President Obama's reactions after mass shootings, with the levels of US gun ownership during his terms in office. (Video by David Botti)</span></figcaption><div id="bbccom_companion_83728567" class="bbccom_companion_outer"></div></figure></div><p>On race relations, Mr Obama said recent concerns around policing and mass incarcerations were "legitimate and deserve intense attention" but insisted progress had been made. </p><p>Children growing up during the eight years of his presidency "will have a different view of race relations in this country and what's possible," he said. </p><p>"There are going to be tensions that arise. But if you look at my daughters' generation, they have an attitude about race that's entirely different than even my generation."</p><p>Talking about how he was feeling after his recent successes, he said "every president, every leader has strengths and weaknesses". </p><p>"One of my strengths is I have a pretty even temperament. I don't get too high when it's high and I don't get too low when it's low," he said. </p><figure class="media-landscape full-width has-caption"><img src="http://ichef-1.bbci.co.uk/news/555/cpsprodpb/142FD/production/_84458628_shirtreuters.jpg" datasrc="http://ichef-1.bbci.co.uk/news/976/cpsprodpb/142FD/production/_84458628_shirtreuters.jpg" class="js-image-replace" alt="Customer looks at Obama shirts at a stall in Nairobi's Kibera slums, 23 July 2015" height="549" width="976"/>
+ <figcaption class="media-caption">
+ <span class="media-caption__text">
+ Kenya is getting ready to welcome the US president
+ </span>
+ </figcaption></figure><h2 class="story-body__crosshead">Kenya trip</h2><p>Mr Obama was speaking to the BBC at the White House before departing for Kenya.</p><p>His father was Kenyan and the president is expected to meet relatives in Nairobi.</p><p>Mr Obama has faced criticism in the country after the US legalised gay marriage. However, in his interview, the president said he would not fall silent on the issue.</p><div class="media-placeholder narrative-video-placeholder enabled" id="84459510" data-media-type="video" data-media-meta="{&quot;duration&quot;:&quot;PT3M16S&quot;,&quot;available&quot;:true,&quot;image&quot;:{&quot;height&quot;:549,&quot;width&quot;:976,&quot;href&quot;:&quot;http:\/\/c.files.bbci.co.uk\/14749\/production\/_84458738_x_maincomp-0;03;11;18_1.jpg&quot;,&quot;altText&quot;:&quot;Obama&quot;,&quot;copyrightHolder&quot;:&quot;BBC&quot;,&quot;originCode&quot;:&quot;cpsprodpb&quot;},&quot;mimeType&quot;:&quot;application\/xml&quot;,&quot;href&quot;:&quot;http:\/\/playlists.bbc.co.uk\/news\/world-africa-33647495A\/playlist.sxml&quot;,&quot;externalId&quot;:&quot;p02xx8zl&quot;,&quot;caption&quot;:&quot;President Obama told the BBC he would deliver a blunt message on gay rights when he travelled to Africa&quot;,&quot;allowOffSiteEmbedding&quot;:true,&quot;live&quot;:false,&quot;entityType&quot;:&quot;Version&quot;,&quot;durationInSeconds&quot;:196}"><figure class="media-item default-player has-caption"><div style="background-repeat: no-repeat; background-position: center center; background-size: contain; background-color: black; overflow: hidden;" class="media-container media-wrapper" id="media-84459510"><div id="smphtml5iframemedia-84459510wrp" style="border-bottom: 0px none; z-index: 999; position: relative; height: 100%; width: 100%; padding-bottom: 56.25%;"><iframe style="position: absolute; left: 0px; top: 0px; width: 100%; height: 100%;" src="//emp.bbc.com/emp/SMPj/1.5.37/iframe.html" scrolling="no" name="smphtml5iframemedia-84459510" id="smphtml5iframemedia-84459510" frameborder="0"></iframe></div></div><figcaption class="media-caption"><span class="off-screen">Media caption</span> <span class="media-caption__text">President Obama told the BBC he would deliver a blunt message on gay rights when he travelled to Africa</span></figcaption><div id="bbccom_companion_84459510" class="bbccom_companion_outer"></div></figure></div><p>"I am not a fan of discrimination and bullying of anybody on the basis of race, on the basis of religion, on the basis of sexual orientation or gender," he said.</p><ul class="story-body__unordered-list"><li class="story-body__list-item"><a href="http://www.bbc.co.uk/news/live/world-africa-33577232" class="story-body__link">BBC Africa Live updates from Kenya</a></li></ul><p>The president also admitted that some African governments, including Kenya's, needed to improve their records on human rights and democracy. However, he defended his decision to engage with and visit those governments. </p><p>"Well, they're not ideal institutions. But what we found is, is that when we combined blunt talk with engagement, that gives us the best opportunity to influence and open up space for civil society." </p><p>Mr Obama will become the first US president to address the African Union when he travels on to Ethiopia on Sunday.</p>
+ </div>
+</div>
+ <div id="comp-comments-button" data-comp-meta="{&quot;id&quot;:&quot;comp-comments-button&quot;,&quot;type&quot;:&quot;comments-button&quot;,&quot;handler&quot;:&quot;commentsButton&quot;,&quot;deviceGroups&quot;:null,&quot;opts&quot;:{&quot;treatment&quot;:&quot;ghost_column&quot;,&quot;jsEnabled&quot;:true,&quot;commentsId&quot;:&quot;__CPS__33646704&quot;,&quot;position_info&quot;:{&quot;instanceNo&quot;:1,&quot;positionInRegion&quot;:2,&quot;lastInRegion&quot;:false,&quot;lastOnPage&quot;:false,&quot;column&quot;:&quot;primary_column&quot;}},&quot;template&quot;:&quot;\/component\/comments-button&quot;}" class="js-iframe-container comments-button ghost-column">
+ <a class="comments-button__link js-comments-button__link" href="/news/world-us-canada-33646704/comments" id="comments-iframe-33646704" data-iframe-src="/news/world-us-canada-33646704/comments/iframe" data-static-iframe-height="600">
+ <span class="comments-button__icon">View comments</span><span id="dna-comment-count___CPS__33646704" class="js-comment-count comments-button__count dna-comment-count-show" data-comments-id="__CPS__33646704">941</span>
+ </a>
+</div>
+ <div class="share share--lightweight show ghost-column">
+ <a name="share-tools"></a>
+ <h2 class="share__title share__title--lightweight">
+ Share this story <a href="http://www.bbc.co.uk/help/web/sharing.shtml">About&nbsp;sharing</a>
+ </h2>
+ <ul class="share__tools share__tools--lightweight">
+ <li class="share__tool share__tool--email">
+ <a href="mailto:?subject=Shared%20from%20BBC%20News&amp;body=http%3A%2F%2Fwww.bbc.com%2Fnews%2Fworld-us-canada-33646704">
+ <span>Email</span>
+ </a>
+ </li>
+ <li class="share__tool share__tool--facebook">
+ <a href="http://www.facebook.com/dialog/feed?app_id=58567469885&amp;redirect_uri=http%3A%2F%2Fwww.bbc.com%2Fnews%2Fworld-us-canada-33646704&amp;link=http%3A%2F%2Fwww.bbc.com%2Fnews%2Fworld-us-canada-33646704%3FSThisFB">
+ <span>Facebook</span>
+ </a>
+ </li>
+ <li class="share__tool share__tool--twitter">
+ <a href="https://twitter.com/intent/tweet?text=BBC%20News%20-%20Obama%20admits%20US%20gun%20laws%20are%20his%20%27biggest%20frustration%27&amp;url=http%3A%2F%2Fwww.bbc.com%2Fnews%2Fworld-us-canada-33646704" class="shortenUrl" data-social-url="https://twitter.com/intent/tweet?text=BBC+News+-+Obama+admits+US+gun+laws+are+his+%27biggest+frustration%27&amp;url=" data-target-url="http://www.bbc.com/news/world-us-canada-33646704">
+ <span>Twitter</span>
+ </a>
+ </li>
+ <li class="share__tool share__tool--whatsapp">
+ <a href="whatsapp://send?text=BBC%20News%20%7C%20Obama%20admits%20US%20gun%20laws%20are%20his%20%27biggest%20frustration%27%20-%20http%3A%2F%2Fwww.bbc.com%2Fnews%2Fworld-us-canada-33646704%3Focid%3Dwsnews_chatapps_whatsapp_msg_trial_link1">
+ <span>WhatsApp</span>
+ </a>
+ </li>
+ <li class="share__tool share__tool--linkedin">
+ <a href="https://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.bbc.com%2Fnews%2Fworld-us-canada-33646704&amp;title=Obama%20admits%20US%20gun%20laws%20are%20his%20%27biggest%20frustration%27&amp;summary=President%20Barack%20Obama%20tells%20the%20BBC%20his%20failure%20to%20pass%20%22common%20sense%20gun%20safety%20laws%22%20is%20the%20greatest%20frustration%20of%20his%20presidency.&amp;source=BBC">
+ <span>Linkedin</span>
+ </a>
+ </li>
+ </ul>
+</div>
+
+ <div class="story-more">
+ <div class="group story-alsos more-on-this-story"> <div class="group__header"> <h2 class="group__title">More on this story</h2> </div> <div class="group__body"> <ul class="units-list "> <li class="unit unit--regular"> <a href="/news/uk-politics-33647154" class="unit__link-wrapper"> <div class="unit__body"> <div class="unit__header"> <div class="unit__title"> <span class="cta"> Obama urges UK to stay in European Union </span> </div> <div class="unit__meta"> <div data-timestamp-inserted="true" class="date date--v1 relative-time" data-seconds="1437741970" data-datetime="24 July 2015">4 hours ago</div> </div> </div> </div> </a> </li> <li class="unit unit--regular"> <a href="/news/world-us-canada-33646875" class="unit__link-wrapper"> <div class="unit__body"> <div class="unit__header"> <div class="unit__title"> <span class="cta"> Interview at-a-glance </span> </div> <div class="unit__meta"> <div data-timestamp-inserted="true" class="date date--v1" data-seconds="1437707069" data-datetime="24 July 2015">24 July 2015</div> </div> </div> </div> </a> </li> <li class="unit unit--regular"> <a href="/news/world-us-canada-33629023" class="unit__link-wrapper"> <div class="unit__body"> <div class="unit__header"> <div class="unit__title">
+ <span class="icon-new icon-new--video-square-red"><span class="off-screen"> Video</span></span>
+
+
+ <span class="cta"> Obama 'distress' over gun laws </span> </div> <div class="unit__meta"> <div data-timestamp-inserted="true" class="date date--v1" data-seconds="1437685924" data-datetime="23 July 2015">23 July 2015</div> </div> </div> </div> </a> </li> <li class="unit unit--regular"> <a href="/news/world-us-canada-33647052" class="unit__link-wrapper"> <div class="unit__body"> <div class="unit__header"> <div class="unit__title">
+ <span class="icon-new icon-new--video-square-red"><span class="off-screen"> Video</span></span>
+
+
+ <span class="cta"> 'UK is our best partner' </span> </div> <div class="unit__meta"> <div data-timestamp-inserted="true" class="date date--v1" data-seconds="1437691167" data-datetime="23 July 2015">23 July 2015</div> </div> </div> </div> </a> </li> </ul> </div> </div> </div>
+
+
+
+ <div id="comp-pattern-library" class="distinct-component-group container-more-from-this-index">
+
+ <h2 class="group-title " data-entityid="strapline#">
+ <a href="/news/world/us_and_canada" class="group-title__link">US &amp; Canada</a>
+
+</h2>
+<div class="sparrow-container sparrow-columns">
+ <div class="sparrow sparrow__3 sparrow__">
+ <div class="sparrow-item faux-block-link">
+ <div class="sparrow-item__image">
+ <div class="responsive-image responsive-image--16by9">
+
+ <img src="http://ichef-1.bbci.co.uk/news/200/cpsprodpb/77FD/production/_84471703_houser.jpg" datasrc="http://ichef-1.bbci.co.uk/news/200/cpsprodpb/77FD/production/_84471703_houser.jpg" class="js-image-replace" alt="A police officer holds an image of John Houser at a news conference in Lafayette. Louisiana - 24 July 2015" height="549" width="976"/>
+ <!--[if lt IE 9]>
+ <img src="http://ichef-1.bbci.co.uk/news/200/cpsprodpb/77FD/production/_84471703_houser.jpg" class="js-image-replace" alt="A police officer holds an image of John Houser at a news conference in Lafayette. Louisiana - 24 July 2015" width="976" height="549" />
+ <![endif]-->
+ </div>
+ </div>
+
+ <div class="sparrow-item__body">
+ <a href="/news/world-us-canada-33654509" class="title-link">
+
+ <h3 class="title-link__title">
+
+ <span class="title-link__title-text">US cinema gunman 'had violent past'</span>
+ </h3>
+ </a> <div class="sparrow-item__info">
+
+ <ul class="mini-info-list">
+ <li class="mini-info-list__item"><div data-timestamp-inserted="true" class="date date--v2 relative-time" data-seconds="1437754133" data-datetime="24 July 2015">49 minutes ago</div></li>
+ <li class="mini-info-list__item"><span class="mini-info-list__section-desc off-screen">From the section </span><a href="/news/world/us_and_canada" class="mini-info-list__section">US &amp; Canada</a></li>
+ </ul>
+ </div>
+ </div>
+
+ <a href="/news/world-us-canada-33654509" class="faux-block-link__overlay-link" tabindex="-1" aria-hidden="true">Full article US cinema gunman 'had violent past'</a>
+ </div>
+ <div class="sparrow-item faux-block-link">
+ <div class="sparrow-item__image">
+ <div class="responsive-image responsive-image--16by9">
+
+ <img src="http://ichef.bbci.co.uk/news/200/cpsprodpb/FFB1/production/_84475456_84474093.jpg" datasrc="http://ichef.bbci.co.uk/news/200/cpsprodpb/FFB1/production/_84475456_84474093.jpg" class="js-image-replace" alt="A 2012 image of wrestler Hulk Hogan" height="549" width="976"/>
+ <!--[if lt IE 9]>
+ <img src="http://ichef.bbci.co.uk/news/200/cpsprodpb/FFB1/production/_84475456_84474093.jpg" class="js-image-replace" alt="A 2012 image of wrestler Hulk Hogan" width="976" height="549" />
+ <![endif]-->
+ </div>
+ </div>
+
+ <div class="sparrow-item__body">
+ <a href="/news/world-us-canada-33657483" class="title-link">
+
+ <h3 class="title-link__title">
+
+ <span class="title-link__title-text">WWE terminates Hulk Hogan's contract</span>
+ </h3>
+ </a> <div class="sparrow-item__info">
+
+ <ul class="mini-info-list">
+ <li class="mini-info-list__item"><div data-timestamp-inserted="true" class="date date--v2 relative-time" data-seconds="1437754721" data-datetime="24 July 2015">39 minutes ago</div></li>
+ <li class="mini-info-list__item"><span class="mini-info-list__section-desc off-screen">From the section </span><a href="/news/world/us_and_canada" class="mini-info-list__section">US &amp; Canada</a></li>
+ </ul>
+ </div>
+ </div>
+
+ <a href="/news/world-us-canada-33657483" class="faux-block-link__overlay-link" tabindex="-1" aria-hidden="true">Full article WWE terminates Hulk Hogan's contract</a>
+ </div>
+ <div class="sparrow-item faux-block-link">
+ <div class="sparrow-item__image">
+ <div class="responsive-image responsive-image--16by9">
+
+ <img src="http://ichef.bbci.co.uk/news/200/cpsprodpb/1657D/production/_84471519_0a0e2152-cb23-4b8a-91cd-715e7dd42c1c.jpg" datasrc="http://ichef.bbci.co.uk/news/200/cpsprodpb/1657D/production/_84471519_0a0e2152-cb23-4b8a-91cd-715e7dd42c1c.jpg" class="js-image-replace" alt="Civilians have begun guarding military recruiting centres in several US states" height="549" width="976"/>
+ <!--[if lt IE 9]>
+ <img src="http://ichef.bbci.co.uk/news/200/cpsprodpb/1657D/production/_84471519_0a0e2152-cb23-4b8a-91cd-715e7dd42c1c.jpg" class="js-image-replace" alt="Civilians have begun guarding military recruiting centres in several US states" width="976" height="549" />
+ <![endif]-->
+ </div>
+ </div>
+
+ <div class="sparrow-item__body">
+ <a href="/news/world-us-canada-33655502" class="title-link">
+
+ <h3 class="title-link__title">
+
+ <span class="title-link__title-text">US military wary of civilian guards</span>
+ </h3>
+ </a> <div class="sparrow-item__info">
+
+ <ul class="mini-info-list">
+ <li class="mini-info-list__item"><div data-timestamp-inserted="true" class="date date--v2 relative-time" data-seconds="1437754090" data-datetime="24 July 2015">49 minutes ago</div></li>
+ <li class="mini-info-list__item"><span class="mini-info-list__section-desc off-screen">From the section </span><a href="/news/world/us_and_canada" class="mini-info-list__section">US &amp; Canada</a></li>
+ </ul>
+ </div>
+ </div>
+
+ <a href="/news/world-us-canada-33655502" class="faux-block-link__overlay-link" tabindex="-1" aria-hidden="true">Full article US military wary of civilian guards</a>
+ </div>
+ </div>
+</div>
+
+
+ </div>
+
+ <div id="comp-from-other-news-sites" class="hidden" data-comp-meta="{&quot;id&quot;:&quot;comp-from-other-news-sites&quot;,&quot;type&quot;:&quot;from-other-news-sites&quot;,&quot;handler&quot;:&quot;default&quot;,&quot;deviceGroups&quot;:null,&quot;opts&quot;:{&quot;conditions&quot;:[&quot;is_local_page&quot;],&quot;loading_strategy&quot;:&quot;post_load&quot;,&quot;asset_id&quot;:&quot;world-us-canada-33646704&quot;,&quot;position_info&quot;:{&quot;instanceNo&quot;:1,&quot;positionInRegion&quot;:7,&quot;lastInRegion&quot;:true,&quot;lastOnPage&quot;:false,&quot;column&quot;:&quot;primary_column&quot;}},&quot;template&quot;:&quot;\/component\/from-other-news-sites&quot;}">
+ </div>
+<div id="bbccom_outbrain_ar_5_1_2_3_4" class="bbccom_slot outbrain-ad bbccom_outbrain_slot bbccom_visible" aria-hidden="true">
+ <div id="bbccom_outbrain_ar_5" class="bbccom_advert bbccom_responsive">
+ <script type="text/javascript">
+ /*<![CDATA[*/
+ if (window.bbcdotcom && bbcdotcom.slot) {
+ bbcdotcom.slot('outbrain_ar_5', [1,2,3,4]);
+ }
+ /*]]>*/
+ </script><div class="bbccom_outbrain_container bbccom_outbrain_ar_5"><div style="display: none;" id="ob_holder"><iframe tabindex="-1" src="http://widgets.outbrain.com/nanoWidget/3rd/comScore/comScore.htm" style="display: none; width: 1px; height: 1px;" id="ob_iframe"></iframe><script async="" charset="UTF-8" src="http://log.outbrain.com/loggerServices/widgetGlobalEvent?tm=311&amp;pid=4799&amp;sid=5053546&amp;wId=125&amp;wRV=264730&amp;rId=ba485c4b8da081c53c7b0e2d45ebe277&amp;eT=0&amp;idx=0&amp;eIdx=&amp;pvId=ba485c4b8da081c53c7b0e2d45ebe277&amp;org=6&amp;pad=0&amp;ab=false" type="text/javascript"></script><script async="" charset="UTF-8" src="http://log.outbrain.com/loggerServices/widgetGlobalEvent?tm=517&amp;pid=4799&amp;sid=5053546&amp;wId=146&amp;wRV=264730&amp;rId=8f662bbcc683465faee757a770a5173e&amp;eT=0&amp;idx=1&amp;eIdx=&amp;pvId=ba485c4b8da081c53c7b0e2d45ebe277&amp;org=3&amp;pad=0&amp;ab=false" type="text/javascript"></script><script async="" charset="UTF-8" src="http://log.outbrain.com/loggerServices/widgetGlobalEvent?tm=808&amp;pid=4799&amp;sid=5053546&amp;wId=149&amp;wRV=264730&amp;rId=9d632d057d21ad330434e4cd095ba3ad&amp;eT=0&amp;idx=2&amp;eIdx=&amp;pvId=ba485c4b8da081c53c7b0e2d45ebe277&amp;org=3&amp;pad=0&amp;ab=false" type="text/javascript"></script><script async="" charset="UTF-8" src="http://log.outbrain.com/loggerServices/widgetGlobalEvent?tm=1190&amp;pid=4799&amp;sid=5053546&amp;wId=150&amp;wRV=264730&amp;rId=c86028e5a7ae581ff579cd604bbd7630&amp;eT=0&amp;idx=3&amp;eIdx=&amp;pvId=ba485c4b8da081c53c7b0e2d45ebe277&amp;org=0&amp;pad=6&amp;ab=false" type="text/javascript"></script></div><div id="outbrain_widget_0" data-dynload="" data-os="macintel" data-browser="safari" data-ob-mark="true" class="OUTBRAIN" data-src="http://www.bbc.com/news/world-us-canada-33646704" data-widget-id="AR_5" data-ob-template="bbc.com/News"><div class="ob-widget ob-strip-layout AR_5">
+ <span style="position:fixed;top:-200px;">&nbsp;</span>
+ <style type="text/css">
+ /* dynamic basic css */
+.AR_5.ob-widget .ob-widget-items-container {margin:0;padding:0;}
+.AR_5.ob-widget .ob-widget-items-container .ob-clearfix {display:block;width:100%;float:none;clear:both;height:0px;line-height:0px;font-size:0px;}
+.AR_5.ob-widget .ob-widget-items-container.ob-multi-row {padding-top: 2%;}
+.AR_5.ob-widget .ob-dynamic-rec-container {position:relative;margin:0;padding;0;}
+.AR_5.ob-widget .ob-dynamic-rec-link,
+.AR_5.ob-widget .ob-dynamic-rec-link:hover {text-decoration:none;}
+.AR_5.ob-widget .ob-rec-image-container .ob-video-icon-container {position:absolute;height:20%;width:100%;text-align:center;top:40%;}
+[data-browser=safari] .AR_5.ob-widget .ob-rec-image-container .ob-video-icon-container {display:none;}
+.AR_5.ob-widget .ob-rec-image-container .ob-video-icon {display:inline-block;height:100%;opacity:0.7;transition: opacity 500ms;}
+.AR_5.ob-widget .ob-rec-image-container .ob-video-icon:hover {opacity:1;}
+.AR_5.ob-widget .ob_what{direction:ltr;clear:both;padding:5px 10px 0px;}
+.AR_5.ob-widget .ob_what a{color:#999;font-size:11px;font-family:arial;text-decoration: none;}
+.AR_5.ob-widget .ob_what.ob-hover:hover a{text-decoration: underline;}
+.AR_5.ob-widget .ob_amelia,
+.AR_5.ob-widget .ob_logo,
+.AR_5.ob-widget .ob_text_logo{vertical-align:baseline !important;display:inline-block;vertical-align:text-bottom;padding:0px 5px;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;}
+.AR_5.ob-widget .ob_amelia{background:url('http://widgets.outbrain.com/images/widgetIcons/ob_logo_16x16.png') no-repeat center top;width:16px;height:16px;margin-bottom:-2px;}
+.AR_5.ob-widget .ob_logo{background:url('http://widgets.outbrain.com/images/widgetIcons/ob_logo_67x12.png') no-repeat center top;width:67px;height:12px;}
+.AR_5.ob-widget .ob_text_logo{background:url('http://widgets.outbrain.com/images/widgetIcons/ob_text_logo_66x23.png') no-repeat center top;width:66px;height:23px;}
+.AR_5.ob-widget:hover .ob_amelia,
+.AR_5.ob-widget:hover .ob_logo,
+.AR_5.ob-widget:hover .ob_text_logo{background-position:center bottom;}
+ .AR_5.ob-widget .ob_what{text-align:right;}
+.AR_5.ob-widget .ob-rec-image-container .ob-rec-image {display:block;}
+ /* dynamic strip css */
+.AR_5.ob-widget .ob-rec-image-container {position:relative;}
+.AR_5.ob-widget .ob-rec-image-container .ob-image-ratio {height:0px;line-height:0px;padding-top:56.00000000000001%;}
+.AR_5.ob-widget .ob-rec-image-container img.ob-rec-image {width:100%;position:absolute;top:0;bottom:0;left:0;right:0;opacity:0;transition:all 750ms;}
+.AR_5.ob-widget .ob-rec-image-container img.ob-show {opacity:1;}
+.AR_5.ob-widget .ob-rec-image-container .ob-rec-label {position:absolute;bottom:0px;left:0px;padding:0px 3px;background-color:#666;color:white;font-size:10px;line-height:15px;}
+.AR_5.ob-widget {width:auto;min-width:360px;}
+.AR_5.ob-widget .ob-dynamic-rec-container {display:inline-block;vertical-align:top;min-width:50px;width:31.8%;box-sizing:border-box;-moz-box-sizing:border-box;}
+ .AR_5.ob-widget .ob-widget-items-container {direction: ltr;}
+ .AR_5.ob-widget .ob-dynamic-rec-container {margin-left:0;}
+ .AR_5.ob-widget .ob-dynamic-rec-container ~ .ob-dynamic-rec-container {margin:0 0 0 2.3%; }
+.AR_5.ob-widget .ob-widget-header {direction:ltr; }
+.AR_5.ob-widget .ob-unit {display:block;}
+.AR_5.ob-widget .ob-rec-text {max-height:63.0px;overflow:hidden;}
+.AR_5.ob-widget .ob-rec-source {font-weight:bold;}
+.AR_5.ob-widget .ob-rec-date {font-weight:bold;}
+
+
+
+
+
+ /* dynamic customized css */
+
+.AR_5.ob-strip-layout .ob-widget-header {font-family:inherit;font-size:24px;color:black;padding-bottom:0px;padding-top:0px;}
+.AR_5.ob-strip-layout .ob-dynamic-rec-container {max-width:200px;}
+.AR_5.ob-strip-layout .ob-rec-text {font-family:inherit;color:black;padding:0px 0 0px;text-align:left;line-height:1.5;font-size:14px;}
+.AR_5.ob-strip-layout .ob-rec-text:hover {color:#1167a8;}
+.AR_5.ob-strip-layout .ob-rec-source {font-family:inherit;color:black;padding:0px 0 0px;text-align:left;font-size:12px;}
+.AR_5.ob-strip-layout .ob-rec-date {font-family:inherit;color:black;padding:0px 0 0px;text-align:left;font-size:12px;}
+.AR_5.ob-strip-layout .ob-rec-author {font-family:inherit;color:black;padding:0px 0 0px;text-align:left;font-size:12px;}
+.AR_5.ob-strip-layout .ob-rec-description {font-family:inherit;color:black;padding:0px 0 0px;text-align:left;font-size:12px;}
+ </style>
+ <style type="text/css" class="ob-custom-css">
+ .AR_5 .ob-widget-header {
+ margin-bottom: 12px;
+ text-align: left;
+}
+.AR_5.ob-strip-layout .ob-dynamic-rec-container {
+ max-width: none !important;
+}
+.AR_5.ob-strip-layout .ob-rec-text {
+ margin-top: 15px;
+}
+.AR_5.ob-widget .ob_what {
+ margin-top: 10px;
+ padding: 0;
+ text-align: left;
+}
+.AR_5.ob-widget .ob-rec-image-container .ob-video-icon-container {
+ left: 0;
+}
+.AR_5.ob-widget .ob-rec-image-container .ob-video-icon-container {
+ height: 20%;
+ left: -42% !important;
+ position: absolute;
+ text-align: center;
+ top: 76%;
+ width: 100%;
+}
+.AR_5.ob-strip-layout .ob-dynamic-rec-container {
+ max-width: none !important;
+}
+.AR_5.ob-widget {
+ max-width: none !important;
+ width: auto;
+}
+.AR_5 .ob-unit.ob-rec-text {
+ line-height: 18px !important;
+}
+.OUTBRAIN .AR_5.ob-widget .ob-rec-image-container .ob-video-icon-container {
+ background-color: #fff;
+ background-image: url("http://static.bbci.co.uk/news/1.55.2536/img/news--icons-sprite.png");
+ background-position: -4px -2604px;
+ background-repeat: no-repeat;
+ bottom: -9px;
+ display: block;
+ height: 25px;
+ left: 0 !important;
+ position: absolute;
+ top: auto;
+ width: 25px;
+}
+.AR_5 .ob-video-icon {
+ display: none !important;
+}
+
+/* EDIT OFF BCC CSS */
+#bbccom_outbrain_ar_1 {
+ display: block;
+}
+.bbccom_slot.outbrain-ad.bbccom_standard_slot.bbccom_visible {
+ background-color: white;
+}
+#bbccom_outbrain_ar_2 {
+ display: block !important;
+}
+.AR_5.ob-widget .ob-dynamic-rec-link:hover .ob-rec-text {
+ color: #1167a8;
+}
+.AR_5.ob-strip-layout .ob-rec-text {
+ color: #000000;
+/* font-family: Long Primer; */
+ font-size: 14px;
+ line-height: 18px;
+ padding: 0;
+ text-align: left;
+}
+.AR_5.ob-widget .ob-widget-items-container.ob-multi-row {
+ padding-top: 12px !important;
+}
+.AR_5.ob-widget .ob-widget-items-container.ob-multi-row {
+ padding-top: 20px !important;
+}
+
+
+/* TABLET */
+@media screen and (min-width: 1px) and (max-width: 1000px) {
+#bbccom_outbrain_ar_2 {
+ display: block !important;
+ float: left;
+ margin-bottom: 20px !important;
+}
+.AR_5 .ob-unit.ob-rec-text {
+ line-height: 22px !important;
+ font-size: 16px;
+}
+.AR_5.ob-strip-layout .ob-rec-text {
+ margin-top: 18px;
+}
+.AR_5.ob-strip-layout .ob-widget-header {
+ font-size: 28px;
+ line-height: 32px;
+}
+}
+
+
+/* MOBILE */
+@media screen and (min-width: 1px) and (max-width: 600px) {
+.AR_5.ob-strip-layout .ob-widget-header {
+ font-size: 20px;
+ line-height: 24px;
+}
+.AR_5 .ob-unit.ob-rec-text {
+ font-size: 15px;
+ height: 36px;
+ line-height: 18px !important;
+ max-height: 36px;
+ overflow: hidden;
+}
+.AR_5.ob-widget .ob-dynamic-rec-container ~ .ob-dynamic-rec-container {
+ margin-bottom: 8px;
+ margin-left: 0 !important;
+ margin-right: 0 !important;
+ margin-top: 0 !important;
+}
+.AR_5.ob-widget .ob-dynamic-rec-container {
+ width: 100%;
+}
+.AR_5.ob-strip-layout .ob-dynamic-rec-container {
+ margin-bottom: 10px;
+ max-width: none !important;
+}
+#bbccom_outbrain_ar_2_1_2_3_4 {
+ margin-top: 20px !important;
+}
+/*
+.AR_5 .ob-widget-items-container.ob-multi-row.ob-row-1 {
+ display: none !important;
+}
+.AR_5 .ob-dynamic-rec-container.ob-recIdx-2 {
+ display: none !important;
+}
+*/
+.AR_5.ob-strip-layout .ob-dynamic-rec-container {
+ margin-bottom: 8px;
+ max-width: none !important;
+}
+.AR_5.ob-widget {
+ max-width: none !important;
+ min-width: auto !important;
+ width: auto;
+}
+.AR_5 .ob-widget-items-container {
+ float: left;
+ margin-right: 2.4% !important;
+ width: 48.33%;
+}
+body .AR_5 .ob-widget-items-container.ob-multi-row.ob-row-1 {
+ float: left !important;
+ margin-right: 0 !important;
+ padding-top: 0 !important;
+ width: 48.333% !important;
+}
+body .bbccom_advert div {
+ clear: both !important;
+}
+}
+
+ </style>
+ <div class="ob-widget-section ob-first">
+ <div class="ob-widget-header">More Videos from the BBC</div>
+ <ul class="ob-widget-items-container"><li class="ob-dynamic-rec-container ob-recIdx-0 ob-o"><a tabindex="-1" class="ob-dynamic-rec-link" onclick="" href="http://traffic.outbrain.com/network/redir?p=5u4Uxi1-fK7UpqQEngPthbMP2DbptLQwBz5H4SwCUt87OABfrsGWMkflJd0JDP2UFKLIC-jGiLOHpnYbgHUBA_CDEsmumQscev_hFZ4E-DBT3KlCQLgyUVZuBy57398TJmhBZf7FT1eefm2e6epd32Gf4H63ZTRACX_GQzJlJaTW3b2u0QG7-T489TMN2f6FRBtS0JQ8zBQ8AwVNXZIYtzZY8CMh8mINaga8Q_gyFeT9Lv9md0yZjtl0cXk6hZB4_RVxtZiFqxVNiFLxW_WmOB_aaBQUY_cMYwyeLgDQSPVRyzvSWDUYklszW5E8wDboMKOf4AObMVI2Qoz7RGEGYtU_K08AN0z9ifyiXhsCuceIM_uItEYz1h91doiH8KEBzTRkQXkpaRynnfxb_d7Bz4ZpoaWeqZV0P-X74xNE9GiSbhF88L1BG42D99MbFeen6B8LYUxEWdP_N89tp5EEQEoACMgwwCaAeI4BJro5HLdaL_cWi8M0DVn0rOi4USp8fzrACWO5MpudXfeYPUZDj8eec4YRjA-vXhAe1MJbLRo&amp;c=9a07cc1b&amp;v=3" onmousedown="" target="_self" rel="">
+
+ <span class="ob-unit ob-rec-image-container" data-type="Image">
+ <div class="ob-image-ratio"></div>
+ <img class="ob-rec-image ob-show" src="http://images.outbrain.com/imageserver/v2/s/Mmsn/n/19bHAj/abc/15R3qX/19bHAj-1Vhi-360x202.jpg" onload="this.className+=' ob-show'" alt="" title="" onerror="outbrain.imageError(this)"/>
+ <span class="ob-video-icon-container">
+ <img class="ob-video-icon" src="http://widgets.outbrain.com/images/widgetIcons/play_100x100.png" alt="" title=""/>
+ </span>
+ </span>
+ <span class="ob-unit ob-rec-text" data-type="Title" title="Russia using North Korean 'slave labour', say human rights groups">Russia using North Korean 'slave labour', say human rights groups</span>
+ </a>
+ </li><li class="ob-dynamic-rec-container ob-recIdx-1 ob-o"><a tabindex="-1" class="ob-dynamic-rec-link" onclick="" href="http://traffic.outbrain.com/network/redir?p=9RAkW_NHVqJUIBw2ADm6u7XE1r06a6_yLMcMcluPLUTnwqOqVCRq2bFs9wkDnmIbrUO8VZDVyxfJZAUFlCjOQdEJBYyopceJNkkexHu92zFL5gcggwHGbwhhk2YfN_lMrBIeRcVOyC4-1WV8ASO1GzXwLs0DADOsAJp4eGmpp8yudsfm_YPnVbcKPt1bI7KOY1mmp1RZUw5XRSA4ruShhEJebT7aEJNizD7R8DIVD5Um0-JvigxjJdw3luZtuvnFkxdNBqxM-gTCuK46-r5f3mfb9j23zqdCbQsyAoluKyuTKvrp8-iCjtbWCpMiVvwDjE5tgT7K5zXQz8RMAaC-mR-GkFT_A2DOH2UsS3yWFSGmcUpvYVi4y2RR0K1yhGpdOmPj7K7pClJsaFDlLvvAqBlicBD_IV-JDUllMMwoJXQdIE8mukL5NOl2peKTCLe2n6hVHlYsDuDcq0Ew5vLg_YQazcEQUWv0HQscXwb8Ur1LrBzmxyhRJJnSwwwINsfsapG503GZhepqqSGE33c2CFmNAkeGnznRM0RKpg04Q_Q&amp;c=58733978&amp;v=3" onmousedown="" target="_self" rel="">
+
+ <span class="ob-unit ob-rec-image-container" data-type="Image">
+ <div class="ob-image-ratio"></div>
+ <img class="ob-rec-image ob-show" src="http://images.outbrain.com/imageserver/v2/s/Mmsn/n/19bhaS/abc/15RUvY/19bhaS-1Vhi-360x202.jpg" onload="this.className+=' ob-show'" alt="" title="" onerror="outbrain.imageError(this)"/>
+ <span class="ob-video-icon-container">
+ <img class="ob-video-icon" src="http://widgets.outbrain.com/images/widgetIcons/play_100x100.png" alt="" title=""/>
+ </span>
+ </span>
+ <span class="ob-unit ob-rec-text" data-type="Title" title="#BBCtrending: Why are people getting semicolon tattoos?">#BBCtrending: Why are people getting semicolon tattoos?</span>
+ </a>
+ </li><li class="ob-dynamic-rec-container ob-recIdx-2 ob-o"><a tabindex="-1" class="ob-dynamic-rec-link" onclick="" href="http://traffic.outbrain.com/network/redir?p=tkbey84g-Ru33F7pkq9DhrGMB7cY85zzMllE_bhSg-_V9RjZ1i7gj_qm_izZk4EESy17vfJdbn6VbShlgmXFOCF_P7chrAxm31ytG3VRLdYOcMlRDLakpoPkaCmSnvlEwnKttOrb23uMQ6k6qHssrMJYwNkSf79fUu4N0XMsq8BjsA-0Dd71C3KoY5CDPSumCKvVn1QyaqPqL-e78IfX0Zdjcgpy4FdyxsMS1pcx4C0M3R_LGVxweUuhSNn2vXbMdXsc1od0ADgdZB5VpHJWiRcOryBl6B5qnoFsMYQ7PdhrN4naeg48c94QbXQHnL2TkplmiTB2bl_oirFzPkj5defwk8kAaFy7s-UTx1AqtaftmMnyDqlfvlt_79eXiXAv3zrv_LoFWAAeEy1Uk7usgMF1Qit5o0WNzggVaVKQ7RfIkiBE3HitV0JcHft297cxIC0PfWLqKlxTMEVkg9GfmwYfuf0sLVVNKs9DgJJsguoA7tKFU1C2_8Dzc8LrC7kToHLwBXCTU0yaCIi_q2QGGKwJTdfuGwXJwnEX24EMnjM&amp;c=8ec3786f&amp;v=3" onmousedown="" target="_self" rel="">
+
+ <span class="ob-unit ob-rec-image-container" data-type="Image">
+ <div class="ob-image-ratio"></div>
+ <img class="ob-rec-image ob-show" src="http://images.outbrain.com/imageserver/v2/s/Mmsn/n/19SE13/abc/15IA8u/19SE13-1Vhi-360x202.jpg" onload="this.className+=' ob-show'" alt="" title="" onerror="outbrain.imageError(this)"/>
+ <span class="ob-video-icon-container">
+ <img class="ob-video-icon" src="http://widgets.outbrain.com/images/widgetIcons/play_100x100.png" alt="" title=""/>
+ </span>
+ </span>
+ <span class="ob-unit ob-rec-text" data-type="Title" title="Plane in emergency landing on US highway">Plane in emergency landing on US highway</span>
+ </a>
+ </li></ul><ul class="ob-widget-items-container ob-multi-row ob-row-1"><li class="ob-dynamic-rec-container ob-recIdx-3 ob-o"><a tabindex="-1" class="ob-dynamic-rec-link" onclick="" href="http://traffic.outbrain.com/network/redir?p=87aXdWBEZDE-HzNum9oCWXy_ElrGGLHECsp3SiMqc03tiM16_66GhVT1s8rmvLzLQ7IwNihvHAWDOI5z3CrVOQ6RlUkhEI__dvbFXu3_oybMkanmWgtSPIZG0DOPTtHb2-eaImG0R4Deds_GfVL1W8GTF_vVqJAufFGLYrVygIFFh8R6b5vJ9m3-yRgs5QcT-DloiyK_zmT0VALzLtAZsDvphIuWypNGsSlIYRtYl1C54pn6q0zp51TnU4mwwv3pyuLc5uh9SoHwsBhsBz_9VTxVVrgQWaWG_T6UoF4V9D5TSWDZNSinFZBFaEcErUJ4V2dErr0GNwCV1EZge9bRI_VZV8AHGjBuhKiogDagniF9OgNwnK1PeHB_Tyiy1sZn47lpTVzls-F-4WK9v7J0jodQEeEUXF-AsggHoelGbnKihyDIBMqkZ915oq4QJz1znkwvhEUMU_e-dJOSGrxfgHdsBEpVQS_W8ziEHikbt98y2xW-A-Ra7N8KcmcssAz3EgP5grdXj416SQkfY6qisw9KUTfl17ci1galbybh2_U&amp;c=3ce97664&amp;v=3" onmousedown="" target="_self" rel="">
+
+ <span class="ob-unit ob-rec-image-container" data-type="Image">
+ <div class="ob-image-ratio"></div>
+ <img class="ob-rec-image ob-show" src="http://images.outbrain.com/imageserver/v2/s/Mmsn/n/19c1tt/abc/15Rr3E/19c1tt-1Vhi-360x202.jpg" onload="this.className+=' ob-show'" alt="" title="" onerror="outbrain.imageError(this)"/>
+ <span class="ob-video-icon-container">
+ <img class="ob-video-icon" src="http://widgets.outbrain.com/images/widgetIcons/play_100x100.png" alt="" title=""/>
+ </span>
+ </span>
+ <span class="ob-unit ob-rec-text" data-type="Title" title="Obama on The Daily Show: 'I can't believe you're leaving before me'">Obama on The Daily Show: 'I can't believe you're leaving before me'</span>
+ </a>
+ </li><li class="ob-dynamic-rec-container ob-recIdx-4 ob-o"><a tabindex="-1" class="ob-dynamic-rec-link" onclick="" href="http://traffic.outbrain.com/network/redir?p=NA14KZdtXSogH952nF5CNEt2SjJ7IwMEvya6_C7C4BSZ9AmOXcQbTXzG0zVZa-sERBTUBxN2jwGzALjlH0F7gcexQhuaT1-KyNEOkUSmo9_Do9kFeEFzAmj8PTipkYF-nKfBoDyaz7Ybu1kbqQmvLYTKs2UGIMi1hjnvkNwvHHjLtQwTbDzgHqXKgQXQzkRHP2U3vUJ5BMt8QV_M56kdBj5dWVuJPbuO0Z_MubFhmGo41kGw18AVMCj69r4E7hFQBdHXBfThEb7qr8SKYHDQeA3eCk3Xfd-4nZqg2RaF8DkGWZOvS8MehI2bDUafKI-lbQPA-3-lm-5UScpfWOB98AvsVWrMQX90QGkoKT7XllWLLi5b2vKZyPaC7tp5gKUgofTNgq90Vmo7glgergd7NXGYm9tCferfx2drGtVCHJc6bN7AFdGp48eLo4QSGj7vYETK-KBPHUOEJ1lJJifdu8TST96_cWMY5bOjBkjXSF_T2Ub10z0H_GW8Gr8Dh8dANWU5qEE33GMVYkOsyDCUi5JkAvUhZ0fSBDLtW-ZWiAA&amp;c=356fe0bf&amp;v=3" onmousedown="" target="_self" rel="">
+
+ <span class="ob-unit ob-rec-image-container" data-type="Image">
+ <div class="ob-image-ratio"></div>
+ <img class="ob-rec-image ob-show" src="http://images.outbrain.com/imageserver/v2/s/Mmsn/n/19eehl/abc/15UV9a/19eehl-1Vhi-360x202.jpg" onload="this.className+=' ob-show'" alt="" title="" onerror="outbrain.imageError(this)"/>
+ <span class="ob-video-icon-container">
+ <img class="ob-video-icon" src="http://widgets.outbrain.com/images/widgetIcons/play_100x100.png" alt="" title=""/>
+ </span>
+ </span>
+ <span class="ob-unit ob-rec-text" data-type="Title" title="President Obama's Kenyan uncle on promise of future">President Obama's Kenyan uncle on promise of future</span>
+ </a>
+ </li><li class="ob-dynamic-rec-container ob-recIdx-5 ob-o"><a tabindex="-1" class="ob-dynamic-rec-link" onclick="" href="http://traffic.outbrain.com/network/redir?p=ktS1VKM_WFvb-Jp8FyVN1NAGclrB_lUZuaMtSv67wArWqSQI6_ex-I18xkmMbZu3WTaxT-4v0VNGU8Av1kl20OREpbBLxzBdEJAFfGTD5C5txd3FBuOo-xlQeOL-Gqp-c7uUbI4GgkV5q6X066JPH0JzYGXpb1QMoHFr_L01_jQHCXxCMgJq81RibgQhzTfiovjwHrXPka3jKGE7AtF7uWjxN5JWWnNUM4mr21EN_gqY66JTeg75u3PqU4VCcLehorXRhUZCOJoRYT9nJHg3SlsTkllmPvk30FbLC1H1cxMobekPeDe_2t8cMQUYNBiTTTarx7YvLzp5rXsMvi23pgm_vanSZ0jooyertoil-lokAnzIMPeMavM0Lijj1CDc4akcNRj_XXksn2yxoI9ZFKS4FypINXxwrCKf-RMbr13CVjMC4Lz-3Qii8SljN_4CqG9dgMVBxRMDyEchJo7I6yNO-k9_6YtZ2mUF5qRXcozQ_fz9cb5ui8DucGaQPt9Wt3CmTvCh2ea0DaCZIcwxjpTO7rhM4mcdXprbUg4lcNg&amp;c=a7706fb4&amp;v=3" onmousedown="" target="_self" rel="">
+
+ <span class="ob-unit ob-rec-image-container" data-type="Image">
+ <div class="ob-image-ratio"></div>
+ <img class="ob-rec-image ob-show" src="http://images.outbrain.com/imageserver/v2/s/Mmsn/n/19jeNg/abc/15Zgfg/19jeNg-1Vhi-360x202.jpg" onload="this.className+=' ob-show'" alt="" title="" onerror="outbrain.imageError(this)"/>
+ <span class="ob-video-icon-container">
+ <img class="ob-video-icon" src="http://widgets.outbrain.com/images/widgetIcons/play_100x100.png" alt="" title=""/>
+ </span>
+ </span>
+ <span class="ob-unit ob-rec-text" data-type="Title" title="Earth-like planet discovered by Kepler telescope">Earth-like planet discovered by Kepler telescope</span>
+ </a>
+ </li></ul>
+ </div>
+ <div class="ob_what">
+
+ <a tabindex="-1" href="#" onmousedown="" onclick="OBR.extern.callWhatIs('http://www.outbrain.com/what-is/default/en','',-1,-1, false ,null);return false">
+ Recommended by Outbrain
+ </a>
+</div>
+ </div></div><script type="text/javascript"> document.write(unescape('%3Cscript src="http://widgets.outbrain.com/outbrain.js" type="text/javascript"%3E%3C/script%3E'));</script><script src="http://widgets.outbrain.com/outbrain.js" type="text/javascript"></script></div>
+ </div>
+ <script type="text/javascript">
+ /*<![CDATA[*/
+ if (window.bbcdotcom && bbcdotcom.show) {
+ bbcdotcom.show()
+ }
+ /*]]>*/
+ </script>
+</div>
+<div id="bbccom_outbrain_ar_7_1_2_3_4" class="bbccom_slot outbrain-ad bbccom_outbrain_slot bbccom_visible" aria-hidden="true">
+ <div id="bbccom_outbrain_ar_7" class="bbccom_advert bbccom_responsive">
+ <script type="text/javascript">
+ /*<![CDATA[*/
+ if (window.bbcdotcom && bbcdotcom.slot) {
+ bbcdotcom.slot('outbrain_ar_7', [1,2,3,4]);
+ }
+ /*]]>*/
+ </script><div class="bbccom_outbrain_container bbccom_outbrain_ar_7"><div id="outbrain_widget_1" data-dynload="" data-os="macintel" data-browser="safari" data-ob-mark="true" class="OUTBRAIN" data-src="http://www.bbc.com/news/world-us-canada-33646704" data-widget-id="AR_7" data-ob-template="bbc.com/News"><div class="ob-widget ob-classic-layout AR_7">
+ <span style="position:fixed;top:-200px;">&nbsp;</span>
+ <style type="text/css">
+ /* dynamic basic css */
+.AR_7.ob-widget .ob-widget-items-container {margin:0;padding:0;}
+.AR_7.ob-widget .ob-widget-items-container .ob-clearfix {display:block;width:100%;float:none;clear:both;height:0px;line-height:0px;font-size:0px;}
+.AR_7.ob-widget .ob-widget-items-container.ob-multi-row {padding-top: 2%;}
+.AR_7.ob-widget .ob-dynamic-rec-container {position:relative;margin:0;padding;0;}
+.AR_7.ob-widget .ob-dynamic-rec-link,
+.AR_7.ob-widget .ob-dynamic-rec-link:hover {text-decoration:none;}
+.AR_7.ob-widget .ob-rec-image-container .ob-video-icon-container {position:absolute;}
+[data-browser=safari] .AR_7.ob-widget .ob-rec-image-container .ob-video-icon-container {display:none;}
+.AR_7.ob-widget .ob-rec-image-container .ob-video-icon {display:inline-block;height:100%;opacity:0.7;transition: opacity 500ms;}
+.AR_7.ob-widget .ob-rec-image-container .ob-video-icon:hover {opacity:1;}
+.AR_7.ob-widget .ob_what{direction:ltr;clear:both;padding:5px 10px 0px;}
+.AR_7.ob-widget .ob_what a{color:#999;font-size:11px;font-family:arial;text-decoration: none;}
+.AR_7.ob-widget .ob_what.ob-hover:hover a{text-decoration: underline;}
+.AR_7.ob-widget .ob_amelia,
+.AR_7.ob-widget .ob_logo,
+.AR_7.ob-widget .ob_text_logo{vertical-align:baseline !important;display:inline-block;vertical-align:text-bottom;padding:0px 5px;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;}
+.AR_7.ob-widget .ob_amelia{background:url('http://widgets.outbrain.com/images/widgetIcons/ob_logo_16x16.png') no-repeat center top;width:16px;height:16px;margin-bottom:-2px;}
+.AR_7.ob-widget .ob_logo{background:url('http://widgets.outbrain.com/images/widgetIcons/ob_logo_67x12.png') no-repeat center top;width:67px;height:12px;}
+.AR_7.ob-widget .ob_text_logo{background:url('http://widgets.outbrain.com/images/widgetIcons/ob_text_logo_66x23.png') no-repeat center top;width:66px;height:23px;}
+.AR_7.ob-widget:hover .ob_amelia,
+.AR_7.ob-widget:hover .ob_logo,
+.AR_7.ob-widget:hover .ob_text_logo{background-position:center bottom;}
+ .AR_7.ob-widget .ob_what{text-align:right;}
+.AR_7.ob-widget .ob-rec-image-container .ob-rec-image {display:block;}
+ /* dynamic classic css */
+.AR_7.ob-classic-layout {width:auto;}
+.AR_7.ob-classic-layout:after {content:"";display:block;height:0px;float:none;clear:both;}
+.AR_7.ob-classic-layout .ob-widget-section {width:50%;box-sizing:border-box;-moz-box-sizing:border-box;}
+.AR_7.ob-classic-layout .ob-widget-section > * {margin:0px 10px;}
+
+.AR_7.ob-classic-layout .ob-widget-section {
+ float:left;
+ }
+.AR_7.ob-classic-layout .ob-widget-header,
+.AR_7.ob-classic-layout .ob-dynamic-rec-container,
+.AR_7.ob-classic-layout .ob-dynamic-rec-container .ob-unit{direction:ltr;}
+
+.AR_7.ob-classic-layout .ob-dynamic-rec-container {display:block;}
+.AR_7.ob-classic-layout .ob-dynamic-rec-container:hover {text-decoration:underline;}
+.AR_7.ob-classic-layout .ob-unit{display:inline;margin-bottom:10px;}
+.AR_7.ob-classic-layout .ob-widget-header {}
+.AR_7.ob-classic-layout .ob-unit.ob-rec-text {font-weight:bold;}
+.AR_7.ob-classic-layout .ob-unit.ob-rec-source {font-weight:bold;}
+.AR_7.ob-classic-layout .ob-unit.ob-rec-date {font-weight:bold;}
+ /* dynamic customized css */
+
+.AR_7.ob-classic-layout .ob-widget-header {font-family:inherit;font-size:24px;color:black;padding-bottom:0px;padding-top:0px;}
+.AR_7.ob-classic-layout .ob-widget-items-container {padding:0px 0px 0px 10px;}
+.AR_7.ob-classic-layout .ob-dynamic-rec-container {color:black;margin-bottom:0px;}
+.AR_7.ob-classic-layout .ob-dynamic-rec-container:hover {color:#1167a8;}
+.AR_7.ob-classic-layout .ob-dynamic-rec-link {color:black;}
+.AR_7.ob-classic-layout .ob-dynamic-rec-link:hover {color:#1167a8;}
+.AR_7.ob-classic-layout .ob-rec-text {color:black;font-family:inherit;font-size:16px;line-height:1.5;}
+.AR_7.ob-classic-layout .ob-rec-source {font-family:inherit;color:#cc0101;font-size:16px;}
+.AR_7.ob-classic-layout .ob-rec-date {font-family:inherit;font-size:12px;color:black;}
+.AR_7.ob-classic-layout .ob-rec-author {font-family:inherit;font-size:12px;color:black;}
+.AR_7.ob-classic-layout .ob-rec-description {font-family:inherit;font-size:12px;color:black;}
+ </style>
+ <style type="text/css" class="ob-custom-css">
+ .AR_7 .ob-dynamic-rec-container {
+ max-width: none !important;
+}
+.AR_7.ob-classic-layout .ob-widget-section {
+ box-sizing: border-box;
+ text-align: left;
+ width: 100%;
+}
+.AR_7.ob-classic-layout .ob-widget-items-container {
+ padding: 0;
+}
+.AR_7.ob-classic-layout .ob-widget-section * {
+ margin: 0;
+}
+.AR_7 .ob-widget-header {
+ margin-bottom: 12px !important;
+ text-align: left;
+}
+.AR_7 .ob-dynamic-rec-container {
+ margin-bottom: 15px !important;
+}
+
+
+/* HEADER, TITLES, SOURCES */
+.AR_7.ob-classic-layout .ob-widget-header {
+ color: #000000;
+ font-size: 24px;
+ line-height: 24px;
+ padding-bottom: 0;
+ padding-top: 0;
+}
+.AR_7.ob-classic-layout .ob-unit.ob-rec-text {
+ font-size: 16px !important;
+ font-weight: bold;
+ line-height: 22px;
+}
+.AR_7.ob-classic-layout .ob-unit.ob-rec-source {
+ color: #000000;
+ display: block;
+ font-size: 13px;
+ font-weight: normal;
+ line-height: 16px;
+ margin-top: 0;
+}
+
+
+
+.AR_7.ob-classic-layout {
+ float: left;
+ width: auto;
+}
+.AR_7.ob-widget .ob_what {
+ padding: 0;
+ text-align: left;
+}
+/*.bbccom_advert div {
+ clear: none !important;
+}*/
+
+/*.AR_7.ob-classic-layout {
+ float: left;
+ margin-right: 1%;
+ width: 49%;
+}*/
+
+#bbccom_outbrain_ar_7_1_2_3_4 {
+ clear: none !important;
+ float: left;
+ margin-right: 1%;
+ width: 49%;
+}
+
+.AR_7.ob-classic-layout .ob-dynamic-rec-container:hover {
+ text-decoration: none !important;
+}
+.AR_7.ob-classic-layout .ob-dynamic-rec-link:hover {
+ color: #1167a8 !important;
+ text-decoration: none !important;
+}
+.AR_7.ob-classic-layout .ob-dynamic-rec-link:hover .ob-unit.ob-rec-text {
+ color: #1167a8 !important;
+ text-decoration: none !important;
+}
+
+/* TABLET */
+@media screen and (min-width: 1px) and (max-width: 1000px) {
+.AR_7.ob-classic-layout .ob-widget-header {
+ font-size: 28px;
+ line-height: 32px;
+}
+.AR_7 {
+ margin-bottom: 40px;
+}
+.AR_7.ob-classic-layout .ob-unit.ob-rec-source {
+ font-size: 14px !important;
+}
+}
+
+/* MOBILE */
+@media screen and (min-width: 1px) and (max-width: 600px) {
+.AR_7.ob-classic-layout {
+ float: none !important;
+ width: auto;
+}
+.AR_7.ob-classic-layout .ob-widget-section {
+ float: none;
+}
+#bbccom_outbrain_ar_2 {
+ display: block !important;
+ float: none;
+ margin-bottom: 20px !important;
+}
+.AR_7.ob-classic-layout .ob-widget-header {
+ font-size: 20px;
+ line-height: 24px;
+}
+.AR_7 .ob_what.ob-hover {
+ display: none;
+}
+.AR_7.ob-classic-layout {
+ float: none;
+ margin-right: 0;
+ width: 100% !important;
+}
+.AR_7.ob-widget .ob_what {
+ display: none;
+}
+.AR_7 {
+ margin-bottom: 0px;
+}
+#bbccom_outbrain_ar_7_1_2_3_4 {
+ clear: none !important;
+ float: none !important;
+ margin-right: 0;
+ width: 100%;
+}
+}
+
+/* MOBILE */
+@media screen and (min-width: 1px) and (max-width: 599px) {
+body .AR_7 .ob-unit.ob-rec-text {
+ font-size: 16px !important;
+ line-height: 20px !important;
+}
+}
+
+@media screen and (min-width: 1px) and (max-width: 399px) {
+body .OUTBRAIN .AR_7 .ob-unit.ob-rec-text {
+ font-size: 15px !important;
+ line-height:18px !important;
+}
+}
+
+#bbccom_outbrain_ar_7 {
+ clear: none !important;
+}
+#bbccom_outbrain_ar_7 div {
+ clear: none !important;
+}
+.bbccom_outbrain_container.bbccom_outbrain_ar_7 {
+ clear: none !important;
+}
+.bbccom_outbrain_container.bbccom_outbrain_ar_7 div {
+ clear: none !important;
+}
+#bbccom_outbrain_ar_8 {
+ clear: none !important;
+}
+#bbccom_outbrain_ar_8 div {
+ clear: none !important;
+}
+.bbccom_outbrain_container.bbccom_outbrain_ar_8 {
+ clear: none !important;
+}
+.bbccom_outbrain_container.bbccom_outbrain_ar_8 div {
+ clear: none !important;
+}
+ </style>
+ <div class="ob-widget-section ob-first">
+ <div class="ob-widget-header">Elsewhere on BBC</div>
+ <ul class="ob-widget-items-container"><li class="ob-dynamic-rec-container ob-recIdx-0 ob-o"><a tabindex="-1" class="ob-dynamic-rec-link" onclick="" href="http://traffic.outbrain.com/network/redir?p=0-p_YVzTneoy858e17xlQtk5z0-ABtJBkysZcUN0jcnshIHX4by3jqEbbR-Bc4izG_YYIvymP7SmvIaIuI2ARRvdqqo46dI_2NfpN0acezVO02nB9KOaN4jNJ9sGLhoVjIy4jHL7wp_1xY73rBhOx0BeZRU8xbCjFNGK3rwG8a0IRzxdC9AbUZUoRDbmwsnvxQHJm1nMvpltZRXgd3u6rujE9boFqJNKCVbOZMe5bs_pkFl0ZCUv_UpN-pwv3wFXtQf8ocREK1H71-oXdix45Auf2iL3RLOK4FAX0OrgLMeL8q4mA_5nAz0HUoZ_WN6_e3C8-ayfz_BjCaBiWdDgUFHCe9XVemP7t6r5cRJtCug-J5qe_H4YMYeNVuosx9Yrj0-K6g5QjBp3qVp8m_8yeLU7TuV7UBbA9SAooGwB8RayJaISEylP07k5f0SJQApg4mQz29AtQXovaNaYVV1WwtGZigW97_n8bsm3O40J-mp6m1b52dkNLknTrhsK29Pv_vNRwRsZi0i6zQzeRpHvXQ&amp;c=61dab60c&amp;v=3" onmousedown="" target="_self" rel="">
+
+ <span class="ob-unit ob-rec-text" data-type="Title" title="Spain raises marrying age from 14 to 16">Spain raises marrying age from 14 to 16</span> <span class="ob-unit ob-rec-source" data-type="Source">BBC News</span>
+
+ </a>
+ </li><li class="ob-dynamic-rec-container ob-recIdx-1 ob-o"><a tabindex="-1" class="ob-dynamic-rec-link" onclick="" href="http://traffic.outbrain.com/network/redir?p=akyKg-ot69kKEAfRV8QDDrPZcRC3PgWGbSiYz1B9K8eR68Pj6WdlItLeE5LPtK3Tyl7-ADx_fvaDliu-AKVO9EnqG-xKxTszFLjwS7I35qOoI82HJIfh5ad3v72JKZHNr7dX-r60ikSbphxKLzQ_xbpKTswvbb72q4H4k1hAQglwT6xFc3212Cvw_O1ZP3SRqyk9lVt02DdHqAyQ9ht9V1znkDct5FgGWGMfgtLJRA080vAqFPd7QsNU7TVHofIKTJlUJ2IdB0k2Is0ZwngT-gxS3VXd-JcWV9wCWkr_MhqkLva4kRQ433N3KfrQFYSBMOwx-m25T9Pd8_kE07g6urdzw0GByosM7XFalQOVpGIrgXw_V3s3tnR3m0MLefaFbWGoyHjODBQSbAP8KWiyHy3XtXbK3mqheRp4_iOSOzKJh4jRAcDnQhyOkV6_nlFp5H-KzGx88LytfxrPpbVAaA2t_IvDi5zHi9g_YgybLYzwEQvALj7TOnlKBCJ6G_ujoS1IuVqQp5xmW4rnGhuB0A&amp;c=47b0a0ca&amp;v=3" onmousedown="" target="_self" rel="">
+
+ <span class="ob-unit ob-rec-text" data-type="Title" title="Yorkshire schoolgirl, Jessica Lawson, 12, dies on French trip">Yorkshire schoolgirl, Jessica Lawson, 12, dies on French trip</span> <span class="ob-unit ob-rec-source" data-type="Source">BBC News</span>
+
+ </a>
+ </li><li class="ob-dynamic-rec-container ob-recIdx-2 ob-o"><a tabindex="-1" class="ob-dynamic-rec-link" onclick="" href="http://traffic.outbrain.com/network/redir?p=NISM48odPjGG6JIxYW_qKuin4bJOyzkQUOR6YuO0T_UZA2G5K-Y-D0QsB6AMMrryZnb7VwDxd0UuDCWg0Nha6a8xdJcXxSd4ERmzYRStTxK8ZG6knhPMuKw1AsWmnGpqUBWOHh1CxAo_0mmEO9QI5_0IJV1i5tLOpVQj__Ow7n8geFJizOoO6cQak94xKDGUxf8RWXIi0YuKctGJIl6oyw5T-cg37wfdLDFw_Tr9dWfGVqgPNaAFkglrgX_YpuDknAv4h1AyAaFE8stbK-GUTmT7iDuVbHxEkhRH34Rtp7s1J986bXSJrXYnOsD18nsIwsA7sf42QqXeOugC3q0ztTNnNzraj27x35Vf0GFmTkIg1yvxunRp4exjHoxY8M5lVvBbX_eF-lsA2c5I7DA9BePMVTER0-h0Q8Ov4Ioz2aRJbltw01-gOXFS-GM-RF-uMbCterh0tQHNf85KhYmTFCVuX7NeiaQzWWC_Y6WmrghULsk2TeoEsOH2NPCJXB_7BBbDMaOH0CjnxgBBg-1G_g&amp;c=57cff0dc&amp;v=3" onmousedown="" target="_self" rel="">
+
+ <span class="ob-unit ob-rec-text" data-type="Title" title="Iran executions see 'unprecedented spike' - Amnesty">Iran executions see 'unprecedented spike' - Amnesty</span> <span class="ob-unit ob-rec-source" data-type="Source">BBC News</span>
+
+ </a>
+ </li></ul>
+ </div>
+ <div class="ob_what">
+
+ <a tabindex="-1" href="#" onmousedown="" onclick="OBR.extern.callWhatIs('http://www.outbrain.com/what-is/default/en','',-1,-1, false ,null);return false">
+ Recommended by Outbrain
+ </a>
+</div>
+ </div></div><script type="text/javascript"> document.write(unescape('%3Cscript src="http://widgets.outbrain.com/outbrain.js" type="text/javascript"%3E%3C/script%3E'));</script><script src="http://widgets.outbrain.com/outbrain.js" type="text/javascript"></script></div>
+ </div>
+ <script type="text/javascript">
+ /*<![CDATA[*/
+ if (window.bbcdotcom && bbcdotcom.show) {
+ bbcdotcom.show()
+ }
+ /*]]>*/
+ </script>
+</div>
+<div id="bbccom_outbrain_ar_8_1_2_3_4" class="bbccom_slot outbrain-ad bbccom_outbrain_slot bbccom_visible" aria-hidden="true">
+ <div id="bbccom_outbrain_ar_8" class="bbccom_advert bbccom_responsive">
+ <script type="text/javascript">
+ /*<![CDATA[*/
+ if (window.bbcdotcom && bbcdotcom.slot) {
+ bbcdotcom.slot('outbrain_ar_8', [1,2,3,4]);
+ }
+ /*]]>*/
+ </script><div class="bbccom_outbrain_container bbccom_outbrain_ar_8"><div id="outbrain_widget_2" data-dynload="" data-os="macintel" data-browser="safari" data-ob-mark="true" class="OUTBRAIN" data-src="http://www.bbc.com/news/world-us-canada-33646704" data-widget-id="AR_8" data-ob-template="bbc.com/News"><div class="ob-widget ob-classic-layout AR_8">
+ <span style="position:fixed;top:-200px;">&nbsp;</span>
+ <style type="text/css">
+ /* dynamic basic css */
+.AR_8.ob-widget .ob-widget-items-container {margin:0;padding:0;}
+.AR_8.ob-widget .ob-widget-items-container .ob-clearfix {display:block;width:100%;float:none;clear:both;height:0px;line-height:0px;font-size:0px;}
+.AR_8.ob-widget .ob-widget-items-container.ob-multi-row {padding-top: 2%;}
+.AR_8.ob-widget .ob-dynamic-rec-container {position:relative;margin:0;padding;0;}
+.AR_8.ob-widget .ob-dynamic-rec-link,
+.AR_8.ob-widget .ob-dynamic-rec-link:hover {text-decoration:none;}
+.AR_8.ob-widget .ob-rec-image-container .ob-video-icon-container {position:absolute;}
+[data-browser=safari] .AR_8.ob-widget .ob-rec-image-container .ob-video-icon-container {display:none;}
+.AR_8.ob-widget .ob-rec-image-container .ob-video-icon {display:inline-block;height:100%;opacity:0.7;transition: opacity 500ms;}
+.AR_8.ob-widget .ob-rec-image-container .ob-video-icon:hover {opacity:1;}
+.AR_8.ob-widget .ob_what{direction:ltr;clear:both;padding:5px 10px 0px;}
+.AR_8.ob-widget .ob_what a{color:#999;font-size:11px;font-family:arial;text-decoration: none;}
+.AR_8.ob-widget .ob_what.ob-hover:hover a{text-decoration: underline;}
+.AR_8.ob-widget .ob_amelia,
+.AR_8.ob-widget .ob_logo,
+.AR_8.ob-widget .ob_text_logo{vertical-align:baseline !important;display:inline-block;vertical-align:text-bottom;padding:0px 5px;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;}
+.AR_8.ob-widget .ob_amelia{background:url('http://widgets.outbrain.com/images/widgetIcons/ob_logo_16x16.png') no-repeat center top;width:16px;height:16px;margin-bottom:-2px;}
+.AR_8.ob-widget .ob_logo{background:url('http://widgets.outbrain.com/images/widgetIcons/ob_logo_67x12.png') no-repeat center top;width:67px;height:12px;}
+.AR_8.ob-widget .ob_text_logo{background:url('http://widgets.outbrain.com/images/widgetIcons/ob_text_logo_66x23.png') no-repeat center top;width:66px;height:23px;}
+.AR_8.ob-widget:hover .ob_amelia,
+.AR_8.ob-widget:hover .ob_logo,
+.AR_8.ob-widget:hover .ob_text_logo{background-position:center bottom;}
+ .AR_8.ob-widget .ob_what{text-align:right;}
+.AR_8.ob-widget .ob-rec-image-container .ob-rec-image {display:block;}
+ /* dynamic classic css */
+.AR_8.ob-classic-layout {width:auto;}
+.AR_8.ob-classic-layout:after {content:"";display:block;height:0px;float:none;clear:both;}
+.AR_8.ob-classic-layout .ob-widget-section {width:50%;box-sizing:border-box;-moz-box-sizing:border-box;}
+.AR_8.ob-classic-layout .ob-widget-section > * {margin:0px 10px;}
+
+.AR_8.ob-classic-layout .ob-widget-section {
+ float:left;
+ }
+.AR_8.ob-classic-layout .ob-widget-header,
+.AR_8.ob-classic-layout .ob-dynamic-rec-container,
+.AR_8.ob-classic-layout .ob-dynamic-rec-container .ob-unit{direction:ltr;}
+
+.AR_8.ob-classic-layout .ob-dynamic-rec-container {display:block;}
+.AR_8.ob-classic-layout .ob-dynamic-rec-container:hover {text-decoration:underline;}
+.AR_8.ob-classic-layout .ob-unit{display:inline;margin-bottom:10px;}
+.AR_8.ob-classic-layout .ob-widget-header {}
+.AR_8.ob-classic-layout .ob-unit.ob-rec-text {font-weight:bold;}
+.AR_8.ob-classic-layout .ob-unit.ob-rec-source {font-weight:bold;}
+.AR_8.ob-classic-layout .ob-unit.ob-rec-date {font-weight:bold;}
+ /* dynamic customized css */
+
+.AR_8.ob-classic-layout .ob-widget-header {font-family:inherit;font-size:24px;color:black;padding-bottom:0px;padding-top:0px;}
+.AR_8.ob-classic-layout .ob-widget-items-container {padding:0px 0px 0px 10px;}
+.AR_8.ob-classic-layout .ob-dynamic-rec-container {color:black;margin-bottom:0px;}
+.AR_8.ob-classic-layout .ob-dynamic-rec-container:hover {color:#1167a8;}
+.AR_8.ob-classic-layout .ob-dynamic-rec-link {color:black;}
+.AR_8.ob-classic-layout .ob-dynamic-rec-link:hover {color:#1167a8;}
+.AR_8.ob-classic-layout .ob-rec-text {color:black;font-family:inherit;font-size:16px;line-height:1.5;}
+.AR_8.ob-classic-layout .ob-rec-source {font-family:inherit;color:#cc0101;font-size:16px;}
+.AR_8.ob-classic-layout .ob-rec-date {font-family:inherit;font-size:12px;color:black;}
+.AR_8.ob-classic-layout .ob-rec-author {font-family:inherit;font-size:12px;color:black;}
+.AR_8.ob-classic-layout .ob-rec-description {font-family:inherit;font-size:12px;color:black;}
+ </style>
+ <style type="text/css" class="ob-custom-css">
+ .AR_8 .ob-dynamic-rec-container {
+ max-width: none !important;
+}
+.AR_8 .ob-rec-text {
+ margin-top: 15px;
+}
+.AR_8.ob-classic-layout .ob-widget-section {
+ box-sizing: border-box;
+ text-align: left;
+ width: 100%;
+}
+.AR_8.ob-classic-layout .ob-widget-items-container {
+ padding: 0;
+}
+.AR_8.ob-classic-layout .ob-widget-section * {
+ margin: 0;
+}
+.AR_8 .ob-widget-header {
+ margin-bottom: 12px !important;
+ text-align: left;
+}
+.AR_8 .ob-dynamic-rec-container {
+ margin-bottom: 15px !important;
+}
+.AR_8.ob-widget .ob_what {
+ padding: 0;
+ text-align: left;
+}
+.AR_8 .ob-widget-header {
+ display: none;
+}
+.AR_8 .ob_what.ob-hover {
+ display: none;
+}
+/*.AR_8.ob-classic-layout {
+ float: left;
+ margin-left: 1%;
+ margin-top: 39px;
+ width: 49%;
+}*/
+
+#bbccom_outbrain_ar_8_1_2_3_4 {
+ float: left;
+ width: 49%;
+ margin-left: 1%;
+ margin-top: 77px;
+}
+
+.AR_8.ob-classic-layout .ob-dynamic-rec-container:hover {
+ text-decoration: none !important;
+}
+.AR_8.ob-classic-layout .ob-dynamic-rec-link:hover {
+ color: #1167a8 !important;
+ text-decoration: none !important;
+}
+.AR_8.ob-classic-layout .ob-dynamic-rec-link:hover .ob-unit.ob-rec-text {
+ color: #1167a8 !important;
+ text-decoration: none !important;
+}
+.AR_8.ob-widget .ob_what {
+ display: none;
+}
+
+
+/* TITLES AND SOURCES */
+.AR_8.ob-classic-layout .ob-unit.ob-rec-text {
+ font-size: 16px !important;
+ font-weight: bold;
+ line-height: 22px;
+}
+
+.AR_8.ob-classic-layout .ob-unit.ob-rec-source {
+ color: #000000;
+ display: block;
+ font-size: 13px;
+ font-weight: normal;
+ line-height: 16px;
+ margin-top: 0;
+}
+
+/* TABLET */
+@media screen and (min-width: 1px) and (max-width: 1000px) {
+.AR_8.ob-classic-layout .ob-widget-header {
+ font-size: 28px;
+ line-height: 32px;
+}
+.AR_8.ob-classic-layout .ob-unit.ob-rec-source {
+ font-size: 14px !important;
+}
+.AR_8.ob-classic-layout .ob-unit.ob-rec-text {
+ font-size: 18px !important;
+ line-height: 22px;
+}
+}
+
+/* MOBILE */
+@media screen and (min-width: 1px) and (max-width: 600px) {
+.AR_8.ob-classic-layout {
+ float: none !important;
+ width: auto;
+}
+.AR_8.ob-classic-layout .ob-widget-section {
+ float: none;
+}
+#bbccom_outbrain_ar_2 {
+ display: block !important;
+ float: none;
+ margin-bottom: 20px !important;
+}
+.AR_8.ob-classic-layout .ob-widget-header {
+ font-size: 20px;
+ line-height: 24px;
+}
+.AR_8 .ob_what.ob-hover {
+ display: block;
+}
+.AR_8.ob-widget .ob_what {
+ display: block;
+}
+.AR_8.ob-classic-layout {
+ float: none;
+ margin-left: 0;
+ margin-top: 0;
+ width: 100%;
+}
+#bbccom_outbrain_ar_8_1_2_3_4 {
+ float: none;
+ width: 100%;
+ margin-left: 0%;
+}
+#bbccom_outbrain_ar_8_1_2_3_4 {
+ margin-top: 0 !important;
+}
+.AR_8.ob-classic-layout .ob-unit.ob-rec-text {
+ font-size: 16px !important;
+ line-height: 20px;
+}
+}
+
+
+/* MOBILE */
+@media screen and (min-width: 1px) and (max-width: 599px) {
+body .AR_8 .ob-unit.ob-rec-text {
+ font-size: 16px !important;
+ line-height: 20px !important;
+}
+}
+
+@media screen and (min-width: 1px) and (max-width: 399px) {
+body .OUTBRAIN .AR_8 .ob-unit.ob-rec-text {
+ font-size: 15px !important;
+ line-height:18px !important;
+}
+}
+
+.bbccom_outbrain_container.bbccom_outbrain_ar_8 {
+ clear: none !important;
+}
+.bbccom_outbrain_container.bbccom_outbrain_ar_8 div {
+ clear: none;
+}
+ </style>
+ <div class="ob-widget-section ob-first">
+ <div class="ob-widget-header">You Might Also Like</div>
+ <ul class="ob-widget-items-container"><li class="ob-dynamic-rec-container ob-recIdx-0 ob-o"><a tabindex="-1" class="ob-dynamic-rec-link" onclick="" href="http://traffic.outbrain.com/network/redir?p=ERo9anya6qatS86kPqvODOTktX8sCtGTmnYvn5YPuT3zhDfsmxvvdz1tMoRMRSNekXzR7sW88ANiPY_uVBMGCYSUqszCoX9tDc7hASlfuIPk4JftW3EfYMQVDDKdcgHlikf1Ns2kW3DdWNL0RUWDIHhkrxpL0g6FsHufI7m8taXVxt5jREIE2E97CHSG3nX26_waAJCp1jWUEibg3uB8BmAAAuc5mLdqykTwekxzFHu5GqKdPAkCgrC1yp_bivUWz4R7JxQBuRRLu1_xjCYmF_-iQdF2r0JGtXdP6Ru651WXFybxOCRMHQndfEBZFMNowiNjUOzJBXNI17plF0pQ00rdiFBDRjXN9ydJY2DrY2AtcSI69ZKcCPHTk46mNRTYxAd3pPRFLYWV4whjklDd3a4U3ud4f1x4V-5Th7q67JrE-LIyqJ1jAxNWfrpC9Gte105-6_I99IyPCIfFGt36809xmHPHsds6tUgPwftC-TWGSP27MNdo9-2nBBVIH0Nz&amp;c=9b1959db&amp;v=3" onmousedown="" target="_self" rel="">
+
+ <span class="ob-unit ob-rec-text" data-type="Title" title="Is your office full of insecure people?">Is your office full of insecure people?</span> <span class="ob-unit ob-rec-source" data-type="Source">BBC Capital</span>
+
+ </a>
+ </li><li class="ob-dynamic-rec-container ob-recIdx-1 ob-o"><a tabindex="-1" class="ob-dynamic-rec-link" onclick="" href="http://traffic.outbrain.com/network/redir?p=hZgRZCdiZJ2xpplcTU19tv4AkOUixrF0ik_iuyJUr8qNgY8P9H49r5ye49YHsedLv2YOZ_dW2OyRCUBGV1_BpJL6lZWkW5zD-tDBXPfUZU1HOuYIqTcsqFt-ildXn1ey5vo_bSuc1vqrBteckMgYhk0SBRZhw96PO2-_a8DlKgqwy6DI3jsCIsN5b4oq23ysN6AHhc19TbQN65y-Cm1P9iJ0jSheBzzxXIZ9ppFZRpMsA7IfB2xGrnwH62J960zs1bhXf5cNxJCTaECLITVTS-1LXk3gJz6dwP7RXwNvb7Van3bbTEZM18Dk198s4waoX0sCIQHiTyVq_bmPCcH1bSMgDJ2mAhnMAxds-CJkhosDQ7pByWHlNelt8jNtt5VJ48ydWHaxwoWWgX9y7smBqcF18UMxvnHvZHFYScBLe2no7URsZ1NbdYh4LG8rt40Fbv6PXS5NC02eaPNLNOdrwgyhHcei1USaf9ssseIjFd9I1AhW7bZR6pG_I8xr9j5t&amp;c=73a738b0&amp;v=3" onmousedown="" target="_self" rel="">
+
+ <span class="ob-unit ob-rec-text" data-type="Title" title="Image of the day: London's nightmare commute">Image of the day: London's nightmare commute</span> <span class="ob-unit ob-rec-source" data-type="Source">BBC Autos</span>
+
+ </a>
+ </li><li class="ob-dynamic-rec-container ob-recIdx-2 ob-o"><a tabindex="-1" class="ob-dynamic-rec-link" onclick="" href="http://traffic.outbrain.com/network/redir?p=ZAzsQPnyz_jfTOW_eEtiBk67CepdHqAdMDLZpuZzBeZZz4J2_OkMb1SwmNZPok1p2blEOQ6dJ5J_3BQpJ9jJ57owxPJgYf81ZGbNMfgatgYM2y-J_DdgpLDfgGjDG1EVgMqJGci8bdIbbcZgAiXTGMcxj5ClHPpWKUwaBHi-ZcMQEzUXB60rPbs2Ld6YAx5o_lZsweVPNt8QpHVYmkgLQLjOEabWc9lUhfyZjio4xm48moSMnxxOu0PBLVpw3hyn_AM1-iOqObruP33LS2we2md907fJlvXPfmp7btrn5Bd-GoRu7BvrkkLy8Nq7nnLxgYjifSIu0CWHlNBi0fL-_okp2b000cGRf7Wt1yRRfVBrq8gZc7Ecul8V66lkTt2TNCX_lnoQx6jt9d2zc_cQgoza4lXORqTXiBYh0Ud60s56g9Mhhl4VCvNBtBmbNQIjp_-0wdWdk7fVfBotKcuExrWO3ilFGwKTMeR8NDXlaHx6C0_Vva5ITpefRstiJQcb&amp;c=6a0f494d&amp;v=3" onmousedown="" target="_self" rel="">
+
+ <span class="ob-unit ob-rec-text" data-type="Title" title="Tesla's 'Ludicrous' Model S is a 2.8-second monster">Tesla's 'Ludicrous' Model S is a 2.8-second monster</span> <span class="ob-unit ob-rec-source" data-type="Source">BBC Autos</span>
+
+ </a>
+ </li></ul>
+ </div>
+ <div class="ob_what">
+
+ <a tabindex="-1" href="#" onmousedown="" onclick="OBR.extern.callWhatIs('http://www.outbrain.com/what-is/default/en','',-1,-1, false ,null);return false">
+ Recommended by Outbrain
+ </a>
+</div>
+ </div></div><script type="text/javascript"> document.write(unescape('%3Cscript src="http://widgets.outbrain.com/outbrain.js" type="text/javascript"%3E%3C/script%3E'));</script><script src="http://widgets.outbrain.com/outbrain.js" type="text/javascript"></script></div>
+ </div>
+ <script type="text/javascript">
+ /*<![CDATA[*/
+ if (window.bbcdotcom && bbcdotcom.show) {
+ bbcdotcom.show()
+ }
+ /*]]>*/
+ </script>
+</div> </div>
+ <div class="column--secondary" role="complementary">
+ <div id="comp-top-stories-promo" class="top-stories-promo">
+ <h2 class="top-stories-promo__title">Top Stories</h2>
+ <a href="/news/world-us-canada-33646704" class="top-stories-promo-story" data-asset-id="/news/world-us-canada-33646704">
+ <strong class="top-stories-promo-story__title">Obama: Gun laws my biggest frustration</strong>
+ <p class="top-stories-promo-story__summary ">President Barack Obama tells the BBC his failure to pass "common sense gun safety laws" is the greatest frustration of his presidency.</p>
+ <div data-timestamp-inserted="true" class="date date--v2" data-seconds="1437712569" data-datetime="24 July 2015">24 July 2015</div>
+ </a>
+ <a href="/news/world-us-canada-33654509" class="top-stories-promo-story" data-asset-id="/news/world-us-canada-33654509">
+ <strong class="top-stories-promo-story__title">US cinema gunman 'had violent past'</strong>
+ <div data-timestamp-inserted="true" class="date date--v2 relative-time" data-seconds="1437754133" data-datetime="24 July 2015">49 minutes ago</div>
+ </a>
+ <a href="/news/world-us-canada-33657483" class="top-stories-promo-story" data-asset-id="/news/world-us-canada-33657483">
+ <strong class="top-stories-promo-story__title">WWE terminates Hulk Hogan's contract</strong>
+ <div data-timestamp-inserted="true" class="date date--v2 relative-time" data-seconds="1437754721" data-datetime="24 July 2015">39 minutes ago</div>
+ </a>
+ </div>
+<div id="bbccom_mpu_4" class="bbccom_slot mpu-ad bbccom_standard_slot" aria-hidden="true">
+ <div class="bbccom_advert bbccom_display_none">
+ <script type="text/javascript">
+ /*<![CDATA[*/
+ if (window.bbcdotcom && bbcdotcom.slot) {
+ bbcdotcom.slot('mpu', [4]);
+ }
+ /*]]>*/
+ </script>
+ </div>
+ <script type="text/javascript">
+ /*<![CDATA[*/
+ if (window.bbcdotcom && bbcdotcom.show) {
+ bbcdotcom.show()
+ }
+ /*]]>*/
+ </script>
+</div>
+<div class="features-and-analysis" id="comp-features-and-analysis">
+ <h2 class="features-and-analysis__title">
+
+ Features &amp; Analysis
+ </h2>
+ <div class="features-and-analysis__stories promo-unit-spacer">
+
+ <div class="features-and-analysis__story">
+ <a href="/news/blogs-trending-33604916" class="bold-image-promo">
+ <div class="bold-image-promo__image">
+ <div class="responsive-image responsive-image--16by9">
+
+ <img src="http://ichef.bbci.co.uk/news/304/cpsprodpb/787E/production/_84464803_ifidie4.jpg" datasrc="http://ichef.bbci.co.uk/news/304/cpsprodpb/787E/production/_84464803_ifidie4.jpg" class="js-image-replace" alt="If I die in police custody video" height="351" width="624"/>
+ <!--[if lt IE 9]>
+ <img src="http://ichef.bbci.co.uk/news/304/cpsprodpb/787E/production/_84464803_ifidie4.jpg" class="js-image-replace" alt="If I die in police custody video" width="624" height="351" />
+ <![endif]-->
+ </div>
+ </div>
+ <h3 class="bold-image-promo__title">'If I die...'</h3>
+ <p class="bold-image-promo__summary">How black Americans are reacting to Sandra Bland's death</p>
+ </a>
+ </div>
+
+
+ <div class="features-and-analysis__story">
+ <a href="/news/world-us-canada-33644498" class="bold-image-promo">
+ <div class="bold-image-promo__image">
+ <div class="responsive-image responsive-image--16by9">
+
+ <img src="http://ichef-1.bbci.co.uk/news/304/cpsprodpb/A7B7/production/_84453924_5fa7af8b-bd47-44b4-a454-160cb7e8e49a.jpg" datasrc="http://ichef-1.bbci.co.uk/news/304/cpsprodpb/A7B7/production/_84453924_5fa7af8b-bd47-44b4-a454-160cb7e8e49a.jpg" class="js-image-replace" alt="Donald Trump" height="549" width="976"/>
+ <!--[if lt IE 9]>
+ <img src="http://ichef-1.bbci.co.uk/news/304/cpsprodpb/A7B7/production/_84453924_5fa7af8b-bd47-44b4-a454-160cb7e8e49a.jpg" class="js-image-replace" alt="Donald Trump" width="976" height="549" />
+ <![endif]-->
+ </div>
+ </div>
+ <h3 class="bold-image-promo__title">The Donald's dollars</h3>
+ <p class="bold-image-promo__summary">What we learned from Trump's financial disclosure </p>
+ </a>
+ </div>
+
+
+ <div class="features-and-analysis__story">
+ <a href="/news/blogs-china-blog-33647396" class="bold-image-promo">
+ <div class="bold-image-promo__image">
+ <div class="responsive-image responsive-image--16by9">
+
+ <img src="http://ichef.bbci.co.uk/news/304/cpsprodpb/A91F/production/_84459234_u1ntitled.jpg" datasrc="http://ichef.bbci.co.uk/news/304/cpsprodpb/A91F/production/_84459234_u1ntitled.jpg" class="js-image-replace" alt="Taylor Swift in China" height="549" width="976"/>
+ <!--[if lt IE 9]>
+ <img src="http://ichef.bbci.co.uk/news/304/cpsprodpb/A91F/production/_84459234_u1ntitled.jpg" class="js-image-replace" alt="Taylor Swift in China" width="976" height="549" />
+ <![endif]-->
+ </div>
+ </div>
+ <h3 class="bold-image-promo__title">T.S. Made in China</h3>
+ <p class="bold-image-promo__summary">The Taylor Swift fakes on the Chinese internet</p>
+ </a>
+ </div>
+
+
+ <div class="features-and-analysis__story">
+ <a href="/news/world-us-canada-33646875" class="bold-image-promo">
+ <div class="bold-image-promo__image">
+ <div class="responsive-image responsive-image--16by9">
+
+ <img src="http://ichef.bbci.co.uk/news/304/cpsprodpb/183D5/production/_84458299_p072315al-0500.jpg" datasrc="http://ichef.bbci.co.uk/news/304/cpsprodpb/183D5/production/_84458299_p072315al-0500.jpg" class="js-image-replace" alt="President Barack Obama participates in an interview with Jon Sopel of BBC in the Roosevelt Room of the White House - 23 July 2015" height="549" width="976"/>
+ <!--[if lt IE 9]>
+ <img src="http://ichef.bbci.co.uk/news/304/cpsprodpb/183D5/production/_84458299_p072315al-0500.jpg" class="js-image-replace" alt="President Barack Obama participates in an interview with Jon Sopel of BBC in the Roosevelt Room of the White House - 23 July 2015" width="976" height="549" />
+ <![endif]-->
+ </div>
+ </div>
+ <h3 class="bold-image-promo__title">Five Obama take-aways</h3>
+ <p class="bold-image-promo__summary">At-a-glance - what the US president told the BBC </p>
+ </a>
+ </div>
+
+
+ <div class="features-and-analysis__story">
+ <a href="/news/world-asia-india-33639456" class="bold-image-promo">
+ <div class="bold-image-promo__image">
+ <div class="responsive-image responsive-image--16by9">
+
+ <img src="http://ichef.bbci.co.uk/news/304/cpsprodpb/D510/production/_84444545_gettyimages-479284580.jpg" datasrc="http://ichef.bbci.co.uk/news/304/cpsprodpb/D510/production/_84444545_gettyimages-479284580.jpg" class="js-image-replace" alt="Ghantewala" height="549" width="976"/>
+ <!--[if lt IE 9]>
+ <img src="http://ichef.bbci.co.uk/news/304/cpsprodpb/D510/production/_84444545_gettyimages-479284580.jpg" class="js-image-replace" alt="Ghantewala" width="976" height="549" />
+ <![endif]-->
+ </div>
+ </div>
+ <h3 class="bold-image-promo__title">Sweet memories</h3>
+ <p class="bold-image-promo__summary">Delhi's oldest candy shop goes out of business</p>
+ </a>
+ </div>
+
+
+ <div class="features-and-analysis__story">
+ <a href="/news/world-europe-33634214" class="bold-image-promo">
+ <div class="bold-image-promo__image">
+ <div class="responsive-image responsive-image--16by9">
+
+ <img src="http://ichef-1.bbci.co.uk/news/304/cpsprodpb/372C/production/_84442141_ntv_2.jpg" datasrc="http://ichef-1.bbci.co.uk/news/304/cpsprodpb/372C/production/_84442141_ntv_2.jpg" class="js-image-replace" alt="Image from Russian Channel 1 TV showing Varvara Karaulova" height="549" width="976"/>
+ <!--[if lt IE 9]>
+ <img src="http://ichef-1.bbci.co.uk/news/304/cpsprodpb/372C/production/_84442141_ntv_2.jpg" class="js-image-replace" alt="Image from Russian Channel 1 TV showing Varvara Karaulova" width="976" height="549" />
+ <![endif]-->
+ </div>
+ </div>
+ <h3 class="bold-image-promo__title">Raw recruits</h3>
+ <p class="bold-image-promo__summary">Why Russian students are targets for Islamic State</p>
+ </a>
+ </div>
+
+
+ <div class="features-and-analysis__story">
+ <a href="/news/magazine-33629011" class="bold-image-promo">
+ <div class="bold-image-promo__image">
+ <div class="responsive-image responsive-image--16by9">
+
+ <img src="http://ichef-1.bbci.co.uk/news/304/cpsprodpb/0DF4/production/_84427530_thinkstockphotos-87713420.jpg" datasrc="http://ichef-1.bbci.co.uk/news/304/cpsprodpb/0DF4/production/_84427530_thinkstockphotos-87713420.jpg" class="js-image-replace" alt="Shark" height="1152" width="2048"/>
+ <!--[if lt IE 9]>
+ <img src="http://ichef-1.bbci.co.uk/news/304/cpsprodpb/0DF4/production/_84427530_thinkstockphotos-87713420.jpg" class="js-image-replace" alt="Shark" width="2048" height="1152" />
+ <![endif]-->
+ </div>
+ </div>
+ <h3 class="bold-image-promo__title">News quiz</h3>
+ <p class="bold-image-promo__summary">How did a surfer fend off a shark attack?</p>
+ </a>
+ </div>
+
+
+ <div class="features-and-analysis__story">
+ <a href="/news/science-environment-33479507" class="bold-image-promo">
+ <div class="bold-image-promo__image">
+ <div class="responsive-image responsive-image--16by9">
+
+ <img src="http://ichef.bbci.co.uk/news/304/cpsprodpb/C415/production/_84379105_84306592.jpg" datasrc="http://ichef.bbci.co.uk/news/304/cpsprodpb/C415/production/_84379105_84306592.jpg" class="js-image-replace" alt="The buoy contains sensors that measure the salinity and temperature of the sea" height="549" width="976"/>
+ <!--[if lt IE 9]>
+ <img src="http://ichef.bbci.co.uk/news/304/cpsprodpb/C415/production/_84379105_84306592.jpg" class="js-image-replace" alt="The buoy contains sensors that measure the salinity and temperature of the sea" width="976" height="549" />
+ <![endif]-->
+ </div>
+ </div>
+ <h3 class="bold-image-promo__title">Salt and fresh</h3>
+ <p class="bold-image-promo__summary">Trying to predict the South Asian monsoon by studying the ocean</p>
+ </a>
+ </div>
+
+
+ <div class="features-and-analysis__story">
+ <a href="/news/business-33620066" class="bold-image-promo">
+ <div class="bold-image-promo__image">
+ <div class="responsive-image responsive-image--16by9">
+
+ <img src="http://ichef.bbci.co.uk/news/304/cpsprodpb/313D/production/_84450621_thinkstockphotos-482433887.jpg" datasrc="http://ichef.bbci.co.uk/news/304/cpsprodpb/313D/production/_84450621_thinkstockphotos-482433887.jpg" class="js-image-replace" alt="Elderly man in wheelchair" height="351" width="624"/>
+ <!--[if lt IE 9]>
+ <img src="http://ichef.bbci.co.uk/news/304/cpsprodpb/313D/production/_84450621_thinkstockphotos-482433887.jpg" class="js-image-replace" alt="Elderly man in wheelchair" width="624" height="351" />
+ <![endif]-->
+ </div>
+ </div>
+ <h3 class="bold-image-promo__title">Dementia research</h3>
+ <p class="bold-image-promo__summary">How drugs firms are spending more on chronic illnesses</p>
+ </a>
+ </div>
+
+ </div>
+</div>
+
+<div id="bbccom_native_1_2_3_4" class="bbccom_slot native-ad bbccom_standard_slot bbccom_visible">
+ <div id="bbccom_native" class="bbccom_advert bbccom_display_none bbccom_responsive">
+ <script type="text/javascript">
+ /*<![CDATA[*/
+ if (window.bbcdotcom && bbcdotcom.slot) {
+ bbcdotcom.slot('native', [1,2,3,4]);
+ }
+ /*]]>*/
+ </script><script type="text/javascript">bbcdotcom.ad("native").setBaseContent();googletag.display("native");</script>
+ </div>
+ <script type="text/javascript">
+ /*<![CDATA[*/
+ if (window.bbcdotcom && bbcdotcom.show) {
+ bbcdotcom.show()
+ }
+ /*]]>*/
+ </script>
+</div> <div id="comp-most-popular" class="most-popular">
+ <h2 class="most-popular__title">Most Popular<span class="off-screen"> popular</span></h2>
+ <ul role="tablist" class="most-popular__header__tabs">
+ <li role="presentation" id="most-popular__tab-1" class="most-popular__header__tabs--read open"><a tabindex="0" role="tab" href="#">Read<span class="off-screen"> selected</span></a></li>
+ <li role="presentation" id="most-popular__tab-2" class="most-popular__header__tabs--watched"><a tabindex="-1" role="tab" href="#">Watched</a></li>
+ </ul>
+ <div class="most-popular__panels">
+ <div role="tabpanel" aria-labelledby="most-popular__tab-1" class="most-popular__list-container panel-1 open">
+ <h3 class="off-screen">Most read</h3>
+ <ul class="most-popular__list panel-read collection">
+ <li class="most-popular-list-item column-1">
+ <a href="/news/technology-33650491" class="most-popular-list-item__link ">
+ <span class="most-popular-list-item__rank">1</span>
+ <span class="most-popular-list-item__headline">Jeep hack prompts 1.4m car recall</span>
+ </a>
+ </li>
+ <li class="most-popular-list-item column-1">
+ <a href="/news/science-environment-33621491" class="most-popular-list-item__link ">
+ <span class="most-popular-list-item__rank">2</span>
+ <span class="most-popular-list-item__headline">Four-legged snake fossil discovered</span>
+ </a>
+ </li>
+ <li class="most-popular-list-item column-1">
+ <a href="/news/world-us-canada-33655502" class="most-popular-list-item__link ">
+ <span class="most-popular-list-item__rank">3</span>
+ <span class="most-popular-list-item__headline">US military wary of civilian guards</span>
+ </a>
+ </li>
+ <li class="most-popular-list-item column-1">
+ <a href="/news/magazine-32821678" class="most-popular-list-item__link ">
+ <span class="most-popular-list-item__rank">4</span>
+ <span class="most-popular-list-item__headline">US students go to Germany for free college</span>
+ </a>
+ </li>
+ <li class="most-popular-list-item column-1">
+ <a href="/news/world-us-canada-33646704" class="most-popular-list-item__link ">
+ <span class="most-popular-list-item__rank">5</span>
+ <span class="most-popular-list-item__headline">Obama: Gun laws my big frustration</span>
+ </a>
+ </li>
+ <li class="most-popular-list-item column-2">
+ <a href="/news/technology-33655417" class="most-popular-list-item__link column-2--first-item">
+ <span class="most-popular-list-item__rank">6</span>
+ <span class="most-popular-list-item__headline">Apple stops Nest sales in the US</span>
+ </a>
+ </li>
+ <li class="most-popular-list-item column-2">
+ <a href="/news/world-europe-33654021" class="most-popular-list-item__link ">
+ <span class="most-popular-list-item__rank">7</span>
+ <span class="most-popular-list-item__headline">Turkey vows to follow up IS strikes</span>
+ </a>
+ </li>
+ <li class="most-popular-list-item column-2">
+ <a href="/news/world-us-canada-33657483" class="most-popular-list-item__link ">
+ <span class="most-popular-list-item__rank">8</span>
+ <span class="most-popular-list-item__headline">WWE terminates Hulk Hogan's contract</span>
+ </a>
+ </li>
+ <li class="most-popular-list-item column-2">
+ <a href="/news/world-africa-33629577" class="most-popular-list-item__link ">
+ <span class="most-popular-list-item__rank">9</span>
+ <span class="most-popular-list-item__headline">The airlift education scholarship that changed the world</span>
+ </a>
+ </li>
+ <li class="most-popular-list-item column-2">
+ <a href="/news/world-australia-33647183" class="most-popular-list-item__link ">
+ <span class="most-popular-list-item__rank">10</span>
+ <span class="most-popular-list-item__headline">Australian returns from IS in Syria</span>
+ </a>
+ </li>
+ </ul>
+ </div>
+ <div role="tabpanel" aria-labelledby="most-popular__tab-2" class="most-popular__list-container panel-2 closed">
+ <h3 class="off-screen">Most watched</h3>
+ <ul class="most-popular__list panel-watched collection">
+ <li class="most-popular-list-item column-1">
+ <a href="/news/world-us-canada-33629023" class="most-popular-list-item__link ">
+ <span class="most-popular-list-item__rank">1</span>
+ <span class="most-popular-list-item__headline">
+ Obama 'most frustrated' by gun laws</span>
+ </a>
+ </li>
+ <li class="most-popular-list-item column-2">
+ <a href="/news/magazine-33636790" class="most-popular-list-item__link column-2--first-item">
+ <span class="most-popular-list-item__rank">2</span>
+ <span class="most-popular-list-item__headline">
+ What happens to the Glastonbury wellies?</span>
+ </a>
+ </li>
+ </ul>
+ </div>
+ </div>
+</div>
+
+
+<div id="bbccom_mpu_bottom_1_2_3_4" class="bbccom_slot mpu-bottom-ad bbccom_standard_slot bbccom_visible" aria-hidden="true">
+ <div id="bbccom_mpu_bottom" class="bbccom_advert bbccom_display_none">
+ <script type="text/javascript">
+ /*<![CDATA[*/
+ if (window.bbcdotcom && bbcdotcom.slot) {
+ bbcdotcom.slot('mpu_bottom', [1,2,3,4]);
+ }
+ /*]]>*/
+ </script><a tabindex="-1" class="bbccom_text" href="http://www.bbc.co.uk/faqs/online/adverts_general">Advertisement</a><script type="text/javascript">bbcdotcom.ad("mpu_bottom").setBaseContent();googletag.display("mpu_bottom");</script>
+ </div>
+ <script type="text/javascript">
+ /*<![CDATA[*/
+ if (window.bbcdotcom && bbcdotcom.show) {
+ bbcdotcom.show()
+ }
+ /*]]>*/
+ </script>
+</div>
+<div id="bbccom_outbrain_ar_9_1_2_3_4" class="bbccom_slot outbrain-ad bbccom_outbrain_slot bbccom_visible" aria-hidden="true">
+ <div id="bbccom_outbrain_ar_9" class="bbccom_advert bbccom_responsive">
+ <script type="text/javascript">
+ /*<![CDATA[*/
+ if (window.bbcdotcom && bbcdotcom.slot) {
+ bbcdotcom.slot('outbrain_ar_9', [1,2,3,4]);
+ }
+ /*]]>*/
+ </script><div class="bbccom_outbrain_container bbccom_outbrain_ar_9"><div id="outbrain_widget_3" data-dynload="" data-os="macintel" data-browser="safari" data-ob-mark="true" class="OUTBRAIN" data-src="http://www.bbc.com/news/world-us-canada-33646704" data-widget-id="AR_9" data-ob-template="bbc.com/News"><div class="ob-widget ob-classic-layout AR_9">
+ <span style="position:fixed;top:-200px;">&nbsp;</span>
+ <style type="text/css">
+ /* dynamic basic css */
+.AR_9.ob-widget .ob-widget-items-container {margin:0;padding:0;}
+.AR_9.ob-widget .ob-widget-items-container .ob-clearfix {display:block;width:100%;float:none;clear:both;height:0px;line-height:0px;font-size:0px;}
+.AR_9.ob-widget .ob-widget-items-container.ob-multi-row {padding-top: 2%;}
+.AR_9.ob-widget .ob-dynamic-rec-container {position:relative;margin:0;padding;0;}
+.AR_9.ob-widget .ob-dynamic-rec-link,
+.AR_9.ob-widget .ob-dynamic-rec-link:hover {text-decoration:none;}
+.AR_9.ob-widget .ob-rec-image-container .ob-video-icon-container {position:absolute;}
+[data-browser=safari] .AR_9.ob-widget .ob-rec-image-container .ob-video-icon-container {display:none;}
+.AR_9.ob-widget .ob-rec-image-container .ob-video-icon {display:inline-block;height:100%;opacity:0.7;transition: opacity 500ms;}
+.AR_9.ob-widget .ob-rec-image-container .ob-video-icon:hover {opacity:1;}
+.AR_9.ob-widget .ob_what{direction:ltr;clear:both;padding:5px 10px 0px;}
+.AR_9.ob-widget .ob_what a{color:#999;font-size:11px;font-family:arial;text-decoration: none;}
+.AR_9.ob-widget .ob_what.ob-hover:hover a{text-decoration: underline;}
+.AR_9.ob-widget .ob_amelia,
+.AR_9.ob-widget .ob_logo,
+.AR_9.ob-widget .ob_text_logo{vertical-align:baseline !important;display:inline-block;vertical-align:text-bottom;padding:0px 5px;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;}
+.AR_9.ob-widget .ob_amelia{background:url('http://widgets.outbrain.com/images/widgetIcons/ob_logo_16x16.png') no-repeat center top;width:16px;height:16px;margin-bottom:-2px;}
+.AR_9.ob-widget .ob_logo{background:url('http://widgets.outbrain.com/images/widgetIcons/ob_logo_67x12.png') no-repeat center top;width:67px;height:12px;}
+.AR_9.ob-widget .ob_text_logo{background:url('http://widgets.outbrain.com/images/widgetIcons/ob_text_logo_66x23.png') no-repeat center top;width:66px;height:23px;}
+.AR_9.ob-widget:hover .ob_amelia,
+.AR_9.ob-widget:hover .ob_logo,
+.AR_9.ob-widget:hover .ob_text_logo{background-position:center bottom;}
+ .AR_9.ob-widget .ob_what{text-align:right;}
+.AR_9.ob-widget .ob-rec-image-container .ob-rec-image {display:block;}
+ /* dynamic classic css */
+.AR_9.ob-classic-layout {width:auto;}
+.AR_9.ob-classic-layout:after {content:"";display:block;height:0px;float:none;clear:both;}
+.AR_9.ob-classic-layout .ob-widget-section {width:50%;box-sizing:border-box;-moz-box-sizing:border-box;}
+.AR_9.ob-classic-layout .ob-widget-section > * {margin:0px 10px;}
+
+.AR_9.ob-classic-layout .ob-widget-section {
+ float:left;
+ }
+.AR_9.ob-classic-layout .ob-widget-header,
+.AR_9.ob-classic-layout .ob-dynamic-rec-container,
+.AR_9.ob-classic-layout .ob-dynamic-rec-container .ob-unit{direction:ltr;}
+
+.AR_9.ob-classic-layout .ob-dynamic-rec-container {display:block;}
+.AR_9.ob-classic-layout .ob-dynamic-rec-container:hover {text-decoration:underline;}
+.AR_9.ob-classic-layout .ob-unit{display:inline;margin-bottom:10px;}
+.AR_9.ob-classic-layout .ob-widget-header {font-weight:bold;}
+.AR_9.ob-classic-layout .ob-unit.ob-rec-text {font-weight:bold;}
+.AR_9.ob-classic-layout .ob-unit.ob-rec-source {}
+.AR_9.ob-classic-layout .ob-unit.ob-rec-date {font-weight:bold;}
+ /* dynamic customized css */
+
+.AR_9.ob-classic-layout .ob-widget-header {font-family:inherit;font-size:24px;color:black;padding-bottom:0px;padding-top:0px;}
+.AR_9.ob-classic-layout .ob-widget-items-container {padding:0px 0px 0px 10px;}
+.AR_9.ob-classic-layout .ob-dynamic-rec-container {color:black;margin-bottom:0px;}
+.AR_9.ob-classic-layout .ob-dynamic-rec-container:hover {color:#1167a8;}
+.AR_9.ob-classic-layout .ob-dynamic-rec-link {color:black;}
+.AR_9.ob-classic-layout .ob-dynamic-rec-link:hover {color:#1167a8;}
+.AR_9.ob-classic-layout .ob-rec-text {color:black;font-family:inherit;font-size:14px;line-height:1.5;}
+.AR_9.ob-classic-layout .ob-rec-source {font-family:inherit;color:black;font-size:12px;}
+.AR_9.ob-classic-layout .ob-rec-date {font-family:inherit;font-size:12px;color:black;}
+.AR_9.ob-classic-layout .ob-rec-author {font-family:inherit;font-size:12px;color:black;}
+.AR_9.ob-classic-layout .ob-rec-description {font-family:inherit;font-size:12px;color:black;}
+ </style>
+ <style type="text/css" class="ob-custom-css">
+ .AR_9 .ob-last .ob-widget-header { display: none; } .AR_9.ob-dynamic-rec-container { max-width: none !important; } .AR_9 .ob-rec-text { margin-top: 15px; } .AR_9.ob-classic-layout .ob-widget-section { width: 100%; } .AR_9 .ob-widget-header { margin-bottom: 12px !important; text-align: left; } .AR_9.ob-classic-layout .ob-widget-items-container { padding: 0 !important; } .AR_9.ob-widget .ob_what { padding: 0; text-align: left; } .AR_9.ob-classic-layout .ob-dynamic-rec-container:hover { text-decoration: none !important; } .AR_9.ob-classic-layout .ob-dynamic-rec-link:hover { color: #1167a8 !important; text-decoration: none !important; } .AR_9.ob-classic-layout .ob-dynamic-rec-link:hover .ob-unit.ob-rec-text { color: #1167a8 !important; text-decoration: none !important; } .AR_9 li { background-image: url("http://static.bbci.co.uk/news/1.55.2536/img/news--icons-sprite.png"); background-position: -4px -4405px; background-repeat: no-repeat; padding-left: 30px; } /* GROUP 4 more than 1008px */ .AR_9.ob-classic-layout .ob-widget-header { color: #000000; font-size: 24px; line-height: 24px; padding-bottom: 0; padding-top: 0; } .AR_9.ob-classic-layout .ob-unit.ob-rec-text { display: block; font-size: 16px; font-weight: bold; line-height: 22px; margin-bottom: 0; } .AR_9.ob-classic-layout .ob-rec-source { color: #000000; display: block; font-size: 13px; font-weight: normal; line-height: 16px; margin-bottom: 8px !important; margin-top: 0 !important; } /* TABLET */ /* GROUP 3 600 to 1007px */ @media screen and (min-width: 1px) and (max-width: 1007px) { .AR_9.ob-classic-layout .ob-widget-header { font-size: 28px; line-height: 32px; } #bbccom_outbrain_ar_3 { display: block; } .AR_9.ob-classic-layout .ob-dynamic-rec-container { display: inline-block !important; float: none; padding-right: 2% !important; vertical-align: top; width: 42% !important; } .AR_9.ob-classic-layout .ob-rec-text { color: black; font-family: inherit; font-size: 16px; line-height: 20px !important; } .AR_9.ob-classic-layout .ob-unit.ob-rec-source { display: block; font-weight: normal; padding-top: 0px; } .AR_9.ob-classic-layout .ob-widget-header { color: #000000; font-size: 28px; line-height: 32px; padding-bottom: 0; padding-top: 0; } .AR_9 .ob-unit.ob-rec-text { font-size: 18px !important; line-height: 22px !important; margin-top: 0 !important; } .AR_9.ob-classic-layout .ob-rec-source { color: #000000; font-size: 14px !important; line-height: 16px !important; } } /* MOBILE */ @media screen and (min-width: 1px) and (max-width: 599px) { .AR_7.ob-classic-layout { float: none !important; width: auto; } .AR_7.ob-classic-layout .ob-widget-section { float: none; } #bbccom_outbrain_ar_2 { display: block !important; float: none; margin-bottom: 20px !important; } .AR_7.ob-classic-layout .ob-widget-header { font-size: 20px; line-height: 24px; } .OUTBRAIN .AR_9.ob-classic-layout .ob-dynamic-rec-container { display: list-item; float: none; margin-bottom: 12px !important; padding-bottom: 1px; padding-right: 0 !important; vertical-align: top; width: 100% !important; } .OUTBRAIN .AR_9 .ob-dynamic-rec-container.ob-recIdx-5 { margin-bottom: 0 !important; padding-bottom: 0 !important; } .AR_9 .ob-unit.ob-rec-source { margin-bottom: 8px !important; margin-top: 0 !important; padding-top: 0 !important; } .AR_9.ob-classic-layout .ob-widget-header { color: #000000; font-size: 20px; line-height: 24px !important; padding-bottom: 0; padding-top: 0; } .AR_9 .ob-unit.ob-rec-text { font-size: 16px !important; line-height: 20px !important; } .AR_9 .ob-widget-header { margin-left: 0 !important; } .OUTBRAIN .AR_9.ob-classic-layout .ob-dynamic-rec-container { width: 92% !important; } } @media screen and (min-width: 1px) and (max-width: 399px) { .AR_9 .ob-unit.ob-rec-text { font-size: 15px !important; line-height:18px !important; } .AR_9 .ob-widget-header { margin-left: 0 !important; } .OUTBRAIN .AR_9.ob-classic-layout .ob-dynamic-rec-container { width: 92% !important; } }
+ </style>
+ <div class="ob-widget-section ob-first">
+ <div class="ob-widget-header">From Around the Web</div>
+ <ul class="ob-widget-items-container"><li class="ob-dynamic-rec-container ob-recIdx-0 ob-p"><a tabindex="-1" class="ob-dynamic-rec-link" onclick="" href="http://paid.outbrain.com/network/redir?p=rq4a_ASjttzFNp4vY6tvpw8WS9moM9MtaMU-DeedJzqQRj3AIbAMrVqycPHHN6lPmt868hj4ueMTBxFIWxmio-L7GZzQd9MPv1AsQQx5b6eAELLxQAiwir-aWzzpC4C1WaPqBtaHVpZEYCre-2HM1zcKuTAuf3Ugff6Nnw2xEGRwF1r2tKjuf16fwVg2wSPOzajkUUKKs4CCviYcaGTTEV_deNQROaqAMWj0FVtKdr4aRCoE3WYKRmqoQyHqg-vB8fBMEhL2znhEl7HotLpo68_p4FIY9CoBEoESuhxslAOHVVml9zBvrmXoyrSvDaNCcO8vuyJtjNiRQ4XJQ15iWQ1vNCdgXGfCGPE8jwG6t3qqFCupvU9BS9m5Lv-21u4-VMeMkKYrUSAJY3HVpAddSUB241rEJD3Edh2Y7cTEtcQsu2XKFEDNooRgPbKEDhYsaqWZmfUTZ9wn3hfaV3ZorSx3EjCa5a2cD6GTQoM7Qe75PnC5pvJ6Ggw9dvtFF6L04mZtX4BP7Wx9QJQ3kYWFQGi3ydEQHISBTXjEkLqGNj6EfO3ffDg4ThmFH8PjeHl9&amp;c=2680ac1d&amp;v=3" onmousedown="" target="_blank" rel="nofollow">
+
+ <span class="ob-unit ob-rec-text" data-type="Title" title="The 25 Toughest U.S. Colleges to Get Into">The 25 Toughest U.S. Colleges to Get Into</span> <span class="ob-unit ob-rec-source" data-type="Source">(TheStreet)</span>
+
+ </a>
+ </li><li class="ob-dynamic-rec-container ob-recIdx-1 ob-p"><a tabindex="-1" class="ob-dynamic-rec-link" onclick="" href="http://paid.outbrain.com/network/redir?p=cLJdfsNZv8gdGM2jDYzgbCzNY7LlzWIUojrYPIAZ9vJzUwCMkWlM_HFImuwvgJtVGDRVQO7GS5Wo69tmig4ewYfHwQi8u1qB92ahrdAceWTrfj2Bq0qgvqLp2yuqaHxV53gRWMGD6cnTyIeJhj5vD27pIp346X0auIDvaHvNHfLdYURcXm3gmGyJ7Y41V3py-6o6ctzO7aEhSmj4DPcKAUXszh84SuLJlU5nAVcDHC4kSE2-BSXJpeYytK-pWRi7i5p1hmib0Y1id7w_5CPMAVndnBPbILUBlFR1RwRaQCiIUPqn-hvFsG8LRujcPY-MZ6-2hS0VKVLHN2jJ6hQ0HQ4J_ugszIaF-ckRw-HSLMqRsw3JjJ9ekPDd9MMWElK2gxUfFRnv5j9KM6qqW-8eU8XeEn8SCWgtylYnkGxgEhYEgPugopY1Zaf9aUoMIGHgfyIAhI5lli5hyftUci7zbpcIb2kuJoEe7sVc02umwFT198iqcpW4yf7JzGcM6lEBecdNl7PMFST1eo_LMuBZExnz7YNMmPqxSD40qqMOzkp5oMMEtNHv-FYL7j97IyKa&amp;c=66165faa&amp;v=3" onmousedown="" target="_blank" rel="nofollow">
+
+ <span class="ob-unit ob-rec-text" data-type="Title" title="Having 1 Of These 7 Credit Cards Means You Have Excellent Credit">Having 1 Of These 7 Credit Cards Means You Have Excellent Credit</span> <span class="ob-unit ob-rec-source" data-type="Source">(NextAdvisor)</span>
+
+ </a>
+ </li><li class="ob-dynamic-rec-container ob-recIdx-2 ob-p"><a tabindex="-1" class="ob-dynamic-rec-link" onclick="" href="http://paid.outbrain.com/network/redir?p=ubmI-nZpje_hcd24WEPrIxsnWghii227cwvwiAmT5pq_5bldfhbDD4iVkls2nBWosJsZeRyXJ7WvRi459yAKdKidBJjQW55Ry3TBKHUYkuO-LRcTwvSho_Blg6CFELjVv0UBV_o3g8Jr1F5e3YavgfahTZfiEOgKnpgWr4yMkt7qggZ_mtYYcFAlgSJ5Xvudz6_y7n6IvXN_wSjEeXj03lzfJqDZHiAOzEvXNZbZ4Ngs2mLg5PEs83EseFD6iN9sAuBSSCXg6WaVqyPzPdVxUuBNfSxKdhCtn4ioKjw7CFyE01-GfNvyRNriqe4ehTw-KE_Ee1wftWH1QaHklJ-FwdQLu5EsysjRn-c6mOioHwPcV54bf083hs8UQmIWTspzUSOUPPdlSGPZ_6svLdWI2a2IDgksV7wsPwajeOVPo_NESHSDxnL3Eo8L2JDZhM8sMY3SD9gfux4x5oixRm2FFx_zowfWT6DtRPYpbkoD8zqSh_QjejhbB19nJ66c1gTnsBnY6zGZlVv1sO8k2tpWmGsF1hDOsTnKlaKu3qFr6RF9lBPpaMnYZqi4zaK4ePgL&amp;c=9e31e665&amp;v=3" onmousedown="" target="_blank" rel="nofollow">
+
+ <span class="ob-unit ob-rec-text" data-type="Title" title="The Sweeping Views in This U.S. Town Will Take Your Breath Away">The Sweeping Views in This U.S. Town Will Take Your Breath Away</span> <span class="ob-unit ob-rec-source" data-type="Source">(Paid Post On NYTimes.com)</span>
+
+ </a>
+ </li><li class="ob-dynamic-rec-container ob-recIdx-3 ob-p"><a tabindex="-1" class="ob-dynamic-rec-link" onclick="" href="http://paid.outbrain.com/network/redir?p=SLESGYw6Si6eBl-1G7b3o2Kt0-p122pXZsHI8VvJlTfSDgYrmNOMPKDoevopz6r09Z-Oin0gNBFUReevm0FdTeUcMs-GvC4QYJ7wbdM-zzP5sFA3KSm3yCbHsn6HpIKcpVCNznpk6w3r8yXpoR-NtX7XL3_ipFtlkc3m9OzAsmLjr_vm4xUNfZ0zB_6PUXWOVZIyRVvK7D7izLvVeVnoHt7ZSKgPmJeq5dDhpN6bJ632ePY7SPUmqUT1E1p03UE0FH1fc1xtZQEqOawemU6iAraNeTdEJNNbPfhqtV4K7hKE-ZCtky3-4KVsxBya4zdBYoDW6RJMbUc8ROUK90OKKfq5yc144WkSeERaMq5-ZAn2ItUZcErrmFcPEL85QGrYUf-JCLOBxUer1kLzyZZhQ5bTLKAe5MCgrPYjZEfrYMlj6NRRHsvjZGe9LjVOzjDvrndpwsuLwKRX1m7maYqBi-ZkBKOm7rj3bZ1PBePbIai9nQ7tDbiHFCgD9YV7VmsAEBZ8qivtgbmAnXXlfNsA5rlHpNkA0xZfsCZi-9RttUvAFvZmOGW8vz63i2eWhg5o&amp;c=47420445&amp;v=3" onmousedown="" target="_blank" rel="nofollow">
+
+ <span class="ob-unit ob-rec-text" data-type="Title" title="5 Things The Wealthy Do With Credit Cards That You Should Also Do">5 Things The Wealthy Do With Credit Cards That You Should Also Do</span> <span class="ob-unit ob-rec-source" data-type="Source">(NextAdvisor)</span>
+
+ </a>
+ </li><li class="ob-dynamic-rec-container ob-recIdx-4 ob-p"><a tabindex="-1" class="ob-dynamic-rec-link" onclick="" href="http://paid.outbrain.com/network/redir?p=VLWE0I4Y4BDZMCX7BG_67myiNY-TjV76_zb9-CwcFUdn65juHw9jeAPnTpqCHCkajLvHP42Aun089ShC8wjxaF8dbFMXAQspNO7iXL005wJc-7wUbqZSAqF6b_6hPFnehLBnRm9c6uaMpDiZ3T5t-q8LQ0VjT6nuvVpLi9nKFNwgtBs2emFEO8yyGONXj7M1daLGOR_KC3LPiCxd3nQ94VxVM4BRZmuc5331u3c8ZVv_DnnDaeKnEbQ6UVr2A9R1yONCZnYqSLzB7pcPoY5d14gU5k6n6ULC5IDL0iitzbcsLOcQjesVZhCoz8MUT8Mqd_fDH8He9RVTKl-ABuEscDkE_XYQFOIUAPJoLkhqOfr8vmQWzGeLDpmU7_NkNsLh77Yn4YmXsIGZrjqKKlGdN92Nhz8WW_SWHZldpULpn0q2IuuE1loXZKMtzT7xIto1_w3XryzGPEVBH4wLaZAnEZQ9ew6yuhhJF_qK9fzwTN6b9xxIt-BLZX-yKdTCJqyG4Jjjywd2psA9HKlw4bsxRZRgEKkymiNq2v8J83kT7jWqXMsPFqdGCAKj3IUjF4W0&amp;c=3c62a2eb&amp;v=3" onmousedown="" target="_blank" rel="nofollow">
+
+ <span class="ob-unit ob-rec-text" data-type="Title" title="Obama Visits Prison, Says He Could Have Wound Up There">Obama Visits Prison, Says He Could Have Wound Up There</span> <span class="ob-unit ob-rec-source" data-type="Source">(Newser)</span>
+
+ </a>
+ </li><li class="ob-dynamic-rec-container ob-recIdx-5 ob-p"><a tabindex="-1" class="ob-dynamic-rec-link" onclick="" href="http://paid.outbrain.com/network/redir?p=6O8A_4PTFEjKxFW5I3JJF27NGy_HK0TRquMFH00NhShBqUNV2kTj3uju_QebEWVuW4eWgjZKsdOFhA0iEqWRj-pXD1aV6F_nE3Xe40aMS7nHZ4Qkp3zc7nMAL-FjlPGItdPTx-hzOn7ck-HIFMr5yvg6FwYZBbMPuNrTqykyxlZ3-VPj0sZpQKOdtNp_mQDt9Eb6oCOlg1uM72YbryodX7jqTpy0IeUPcyEB5sw71uYm7zV5_74sDyQPrAUuIhxDuIJncNO-JlI2Pk3lNImwnVQlJLtCDkaFlxCEcFy6jk43djSygiH531IP1QgzBqQRIkx4lFjEeYtHZofTHFfKC29xGxwrFOre82GQEp3Xpb9SrF_A3xor2qZXD7UJrDAzgFHCzWWhYEAZvSmlzC2aF-ZJPOahQYTJ9WvTRWfhPcRjAl__4vgc8K_jz2lDhlqwFNRLFRDI72WrW1n7QEKIsrT91Vi7PAWD96xQ2MCU7bx_rU7VnKzxi-bve4oEQccaikm2nohDKM0C7P-yywuTx4bcrC9pyLrnMWhD5CKhkCg6xAM-L0vrfwTDL9uNbEpd&amp;c=5cfff822&amp;v=3" onmousedown="" target="_blank" rel="nofollow">
+
+ <span class="ob-unit ob-rec-text" data-type="Title" title="What Is Considered a Good Credit Score?">What Is Considered a Good Credit Score?</span> <span class="ob-unit ob-rec-source" data-type="Source">(Better Money Habits™ by Bank of America)</span>
+
+ </a>
+ </li></ul>
+ </div>
+ <div class="ob_what">
+
+ <a tabindex="-1" href="#" onmousedown="" onclick="OBR.extern.callWhatIs('http://www.outbrain.com/what-is/default/en','',-1,-1,true ,null);return false">
+ Promoted content by Outbrain
+ </a>
+</div>
+ </div></div><script type="text/javascript"> document.write(unescape('%3Cscript src="http://widgets.outbrain.com/outbrain.js" type="text/javascript"%3E%3C/script%3E'));</script><script src="http://widgets.outbrain.com/outbrain.js" type="text/javascript"></script></div>
+ </div>
+ <script type="text/javascript">
+ /*<![CDATA[*/
+ if (window.bbcdotcom && bbcdotcom.show) {
+ bbcdotcom.show()
+ }
+ /*]]>*/
+ </script>
+</div>
+<div id="bbccom_adsense_1_2_3_4" class="bbccom_slot adsense-ad bbccom_adsense_slot bbccom_visible" aria-hidden="true">
+ <div id="bbccom_adsense" class="bbccom_advert bbccom_responsive">
+ <script type="text/javascript">
+ /*<![CDATA[*/
+ if (window.bbcdotcom && bbcdotcom.slot) {
+ bbcdotcom.slot('adsense', [1,2,3,4]);
+ }
+ /*]]>*/
+ </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script><script src="http://pagead2.googlesyndication.com/pagead/js/r20150721/r20150720/show_ads_impl.js"></script><script language="JavaScript1.1" src="https://googleads.g.doubleclick.net/pagead/ads?client=ca-bbccom&amp;output=js&amp;adk=1893803208&amp;lmt=1437757078&amp;num_ads=3&amp;channel=globalnews&amp;ad_type=text&amp;ea=0&amp;flash=18.0.0&amp;url=http%3A%2F%2Fwww.bbc.com%2Fnews%2Fworld-us-canada-33646704&amp;dt=1437757078592&amp;bdt=2083&amp;shv=r20150721&amp;cbv=r20150720&amp;saldr=sb&amp;correlator=3931185939561&amp;frm=20&amp;ga_vid=165083980.1437757077&amp;ga_sid=1437757077&amp;ga_hid=702753462&amp;ga_fc=0&amp;u_tz=-420&amp;u_his=9&amp;u_java=1&amp;u_h=500&amp;u_w=584&amp;u_ah=877&amp;u_aw=1436&amp;u_cd=24&amp;u_nplug=10&amp;u_nmime=76&amp;dff=helmet&amp;dfs=16&amp;biw=584&amp;bih=500&amp;eid=575144605%2C317150304&amp;oid=3&amp;rx=0&amp;eae=2&amp;fc=24&amp;plat=1%3A13%2C8%3A12%2C9%3A12%2C16%3A32%2C17%3A32&amp;brdim=%2C%2C16%2C26%2C1436%2C23%2C1409%2C767%2C584%2C500&amp;vis=1&amp;rsz=%7C%7Con%7C&amp;abl=CS&amp;ppjl=u&amp;fu=16&amp;bc=1&amp;ifi=9&amp;dtd=71"></script><div class="bbccom_adsense_container"><h3><a href="http://www.bbc.co.uk/bbc.com/faq/ads_by_google.shtml" tabindex="-1">Ads by Google</a></h3><ul><li><h4><a href="http://googleads.g.doubleclick.net/aclk?sa=l&amp;ai=CbI3llm6yVd7-KsSipgPztp6wD5GrsaQH8fmIi84B_JKlk2MQASDnhfQSKANgye7rhsijoBmgAcOI6OYDyAEBqAMBqgSGAU_QiNWwZegVcytCGFt-Sq8hfBNfj6ZRd8li_ZpNtanVEEnEuA69QEWqftfk9Znzh0Mri2dkrfvZ7Kxp7DX-kSw2diP5Rk8ujVLs3SqJJ99y59mb_qKGK_F4jtomL3BXmwDd_b-Oc_9NaREbeMVp1B3Z5OvodFcLCxQVG2twubWec-lu9B-T2AYEgAel95cZqAemvhvYBwE&amp;num=1&amp;sig=AOD64_1tTvNu12Bkxzd7KkOZU-dY9j-WAg&amp;client=ca-bbccom&amp;adurl=http://www.medicaresupplemental.com/get-quotes/%3FCID%3D24390%26SRC%3Dmstal_google%26bw_keyword%3D%26Sub_ID%3D" onmouseout="window.status=''" onmouseover="window.status='go to www.medicaresupplemental.com';return true;" target="_blank" tabindex="-1">Medicare Supplement Plans</a></h4><p>Medigap Options for (65 &amp; older). Compare Plans &amp; Prices for 2015.</p><p><a href="http://googleads.g.doubleclick.net/aclk?sa=l&amp;ai=CbI3llm6yVd7-KsSipgPztp6wD5GrsaQH8fmIi84B_JKlk2MQASDnhfQSKANgye7rhsijoBmgAcOI6OYDyAEBqAMBqgSGAU_QiNWwZegVcytCGFt-Sq8hfBNfj6ZRd8li_ZpNtanVEEnEuA69QEWqftfk9Znzh0Mri2dkrfvZ7Kxp7DX-kSw2diP5Rk8ujVLs3SqJJ99y59mb_qKGK_F4jtomL3BXmwDd_b-Oc_9NaREbeMVp1B3Z5OvodFcLCxQVG2twubWec-lu9B-T2AYEgAel95cZqAemvhvYBwE&amp;num=1&amp;sig=AOD64_1tTvNu12Bkxzd7KkOZU-dY9j-WAg&amp;client=ca-bbccom&amp;adurl=http://www.medicaresupplemental.com/get-quotes/%3FCID%3D24390%26SRC%3Dmstal_google%26bw_keyword%3D%26Sub_ID%3D" onmouseout="window.status=''" onmouseover="window.status='go to www.medicaresupplemental.com';return true;" target="_blank" tabindex="-1">www.medicaresupplemental.com</a></p></li><li><h4><a href="http://googleads.g.doubleclick.net/aclk?sa=l&amp;ai=CzVeIlm6yVd7-KsSipgPztp6wD5nYrOkFufW0j5cCwI23ARACIOeF9BIoA2DJ7uuGyKOgGaAB58GL2gPIAQGoAwGqBIMBT9D4gqpl6hVzK0IYW35KryF8E1-PplF3yWL9mk21qdUQScS4Dr1ARap-1-T1mfOHQyuLZ2St-9nsrGnsNf6RLDZ2I_lGTy6NUuzdKolv39KFXF-hAlXAGvcAMc2hyrZtutQAvMqO_DmdEiuMxmlhFtFR4OCBUgr-ERTmbHBRt28fKarYBgSAB4GJwzSoB6a-G9gHAQ&amp;num=3&amp;sig=AOD64_0CGeduVg9Ewe3HTDDIqdmtGw79Xg&amp;client=ca-bbccom&amp;adurl=http://tracker.marinsm.com/rd%3Fcid%3D93095py25419%26mkwid%3DcqJnflV6d_dt%26pcrid%3D74877453265%26pkw%3D%26pmt%3D%26rd%3Dhttp://genealogy.com/lp/military-records%26lp%3Dhttp://www.ancestry.com/s66298/t30294/rd.ashx%3F%2526s_kwcid%253D" onmouseout="window.status=''" onmouseover="window.status='go to genealogy.com/Records_War';return true;" target="_blank" tabindex="-1">Draft History Records</a></h4><p>1) Simply enter their name. 2) View their war record online!</p><p><a href="http://googleads.g.doubleclick.net/aclk?sa=l&amp;ai=CzVeIlm6yVd7-KsSipgPztp6wD5nYrOkFufW0j5cCwI23ARACIOeF9BIoA2DJ7uuGyKOgGaAB58GL2gPIAQGoAwGqBIMBT9D4gqpl6hVzK0IYW35KryF8E1-PplF3yWL9mk21qdUQScS4Dr1ARap-1-T1mfOHQyuLZ2St-9nsrGnsNf6RLDZ2I_lGTy6NUuzdKolv39KFXF-hAlXAGvcAMc2hyrZtutQAvMqO_DmdEiuMxmlhFtFR4OCBUgr-ERTmbHBRt28fKarYBgSAB4GJwzSoB6a-G9gHAQ&amp;num=3&amp;sig=AOD64_0CGeduVg9Ewe3HTDDIqdmtGw79Xg&amp;client=ca-bbccom&amp;adurl=http://tracker.marinsm.com/rd%3Fcid%3D93095py25419%26mkwid%3DcqJnflV6d_dt%26pcrid%3D74877453265%26pkw%3D%26pmt%3D%26rd%3Dhttp://genealogy.com/lp/military-records%26lp%3Dhttp://www.ancestry.com/s66298/t30294/rd.ashx%3F%2526s_kwcid%253D" onmouseout="window.status=''" onmouseover="window.status='go to genealogy.com/Records_War';return true;" target="_blank" tabindex="-1">genealogy.com/Records_War</a></p></li><li><h4><a href="http://googleads.g.doubleclick.net/aclk?sa=l&amp;ai=C2YE9lm6yVd7-KsSipgPztp6wD7jHhqYE0P2x-ZMC_JKlk2MQAyDnhfQSKANgye7rhsijoBmgAZKLpvYDyAEBqQJE4ZAgvKipPqgDAaoEhgFP0KjAumXrFXMrQhhbfkqvIXwTX4-mUXfJYv2aTbWp1RBJxLgOvUBFqn7X5PWZ84dDK4tnZK372eysaew1_pEsNnYj-UZPLo1S7N0qiSffcufZip-R8SvxeI7aJi9wV5sA3f2_jnP_TWkRG3jFadQd2eTr6HRXCwsUFRtrcLm1nnPpI4Ngj9gGBIAH1vTZCagHpr4b2AcB&amp;num=2&amp;sig=AOD64_0V0UZOV10jiiQb6dBac8JhselSdw&amp;client=ca-bbccom&amp;adurl=http://annuities.advisorworld.com/highest-annuity-returns-2014/%3Futm_source%3DAWGOOG%26utm_campaign%3Dmutfuncon16%26placement%3Dwww.bbc.com" onmouseout="window.status=''" onmouseover="window.status='go to advisorworld.com/CompareAnnuities';return true;" target="_blank" tabindex="-1">16% Annuity Return 2014</a></h4><p>True Investor Returns with no Risk. Find out how with our Free Report.</p><p><a href="http://googleads.g.doubleclick.net/aclk?sa=l&amp;ai=C2YE9lm6yVd7-KsSipgPztp6wD7jHhqYE0P2x-ZMC_JKlk2MQAyDnhfQSKANgye7rhsijoBmgAZKLpvYDyAEBqQJE4ZAgvKipPqgDAaoEhgFP0KjAumXrFXMrQhhbfkqvIXwTX4-mUXfJYv2aTbWp1RBJxLgOvUBFqn7X5PWZ84dDK4tnZK372eysaew1_pEsNnYj-UZPLo1S7N0qiSffcufZip-R8SvxeI7aJi9wV5sA3f2_jnP_TWkRG3jFadQd2eTr6HRXCwsUFRtrcLm1nnPpI4Ngj9gGBIAH1vTZCagHpr4b2AcB&amp;num=2&amp;sig=AOD64_0V0UZOV10jiiQb6dBac8JhselSdw&amp;client=ca-bbccom&amp;adurl=http://annuities.advisorworld.com/highest-annuity-returns-2014/%3Futm_source%3DAWGOOG%26utm_campaign%3Dmutfuncon16%26placement%3Dwww.bbc.com" onmouseout="window.status=''" onmouseover="window.status='go to advisorworld.com/CompareAnnuities';return true;" target="_blank" tabindex="-1">advisorworld.com/CompareAnnuities</a></p></li></ul></div>
+ </div>
+ <script type="text/javascript">
+ /*<![CDATA[*/
+ if (window.bbcdotcom && bbcdotcom.show) {
+ bbcdotcom.show()
+ }
+ /*]]>*/
+ </script>
+</div>
+<div id="bbccom_inread_1_2_3_4" class="bbccom_slot inread bbccom_inread_slot bbccom_visible" aria-hidden="true">
+ <div id="bbccom_inread" class="bbccom_advert bbccom_display_none bbccom_responsive">
+ <script type="text/javascript">
+ /*<![CDATA[*/
+ if (window.bbcdotcom && bbcdotcom.slot) {
+ bbcdotcom.slot('inread', [1,2,3,4]);
+ }
+ /*]]>*/
+ </script><script type="text/javascript">bbcdotcom.ad("inread").setBaseContent();googletag.display("inread");</script>
+ </div>
+ <script type="text/javascript">
+ /*<![CDATA[*/
+ if (window.bbcdotcom && bbcdotcom.show) {
+ bbcdotcom.show()
+ }
+ /*]]>*/
+ </script>
+</div> </div>
+ </div> </div> </div> </div>
+
+
+<div id="core-navigation" class="navigation--footer">
+ <h2 class="navigation--footer__heading">News navigation</h2>
+
+
+ <button class="navigation__cta-footer navigation__footerButton">Sections</button><nav id="navigation--bottom" class="navigation navigation--bottom" role="navigation" aria-label="News">
+
+ <ul class="navigation--bottom__toplevel">
+ <li class="">
+ <a href="/news" class="">
+ <span>Home</span>
+ </a>
+ </li>
+ <li class="">
+ <a href="/news/video_and_audio/international" class="">
+ <span>Video</span>
+ </a>
+ </li>
+ <li class="">
+ <a href="/news/world" data-panel-id="js-navigation-panel-World" class="navigation-arrow">
+ <span>World</span>
+ </a>
+ <div class="navigation-panel navigation-panel--closed js-navigation-panel-World">
+ <div class="navigation-panel__content">
+ <ul class="navigation-panel-secondary">
+ <li><a href="/news/world"><span>World Home</span></a></li>
+ <li>
+ <a href="/news/world/africa"><span>Africa</span></a> </li>
+ <li>
+ <a href="/news/world/asia"><span>Asia</span></a> </li>
+ <li>
+ <a href="/news/world/australia"><span>Australia</span></a> </li>
+ <li>
+ <a href="/news/world/europe"><span>Europe</span></a> </li>
+ <li>
+ <a href="/news/world/latin_america"><span>Latin America</span></a> </li>
+ <li>
+ <a href="/news/world/middle_east"><span>Middle East</span></a> </li>
+ </ul>
+ </div>
+ </div>
+ </li>
+ <li class="selected ">
+ <a href="/news/world/us_and_canada" class="navigation-arrow--open">
+ <span>US &amp; Canada</span>
+ </a>
+ <span class="off-screen">selected</span> </li>
+ <li class="">
+ <a href="/news/uk" data-panel-id="js-navigation-panel-UK" class="navigation-arrow">
+ <span>UK</span>
+ </a>
+ <div class="navigation-panel navigation-panel--closed js-navigation-panel-UK">
+ <div class="navigation-panel__content">
+ <ul class="navigation-panel-secondary">
+ <li><a href="/news/uk"><span>UK Home</span></a></li>
+ <li>
+ <a href="/news/england"><span>England</span></a> </li>
+ <li>
+ <a href="/news/northern_ireland"><span>N. Ireland</span></a> </li>
+ <li>
+ <a href="/news/scotland"><span>Scotland</span></a> </li>
+ <li>
+ <a href="/news/wales"><span>Wales</span></a> </li>
+ <li>
+ <a href="/news/politics"><span>Politics</span></a> </li>
+ </ul>
+ </div>
+ </div>
+ </li>
+ <li class="">
+ <a href="/news/business" data-panel-id="js-navigation-panel-Business" class="navigation-arrow">
+ <span>Business</span>
+ </a>
+ <div class="navigation-panel navigation-panel--closed js-navigation-panel-Business">
+ <div class="navigation-panel__content">
+ <ul class="navigation-panel-secondary">
+ <li><a href="/news/business"><span>Business Home</span></a></li>
+ <li>
+ <a href="http://www.bbc.co.uk/news/business/market_data"><span>Market Data</span></a> </li>
+ <li>
+ <a href="/news/business/markets"><span>Markets</span></a> </li>
+ <li>
+ <a href="/news/business/economy"><span>Economy</span></a> </li>
+ <li>
+ <a href="/news/business/companies"><span>Companies</span></a> </li>
+ <li>
+ <a href="/news/business-22434141"><span>Entrepreneurship</span></a> </li>
+ <li>
+ <a href="/news/business-11428889"><span>Technology of Business</span></a> </li>
+ <li>
+ <a href="/news/business/business_of_sport"><span>Business of Sport</span></a> </li>
+ <li>
+ <a href="/news/business-12686570"><span>Knowledge economy</span></a> </li>
+ </ul>
+ </div>
+ </div>
+ </li>
+ <li class="">
+ <a href="/news/technology" class="">
+ <span>Tech</span>
+ </a>
+ </li>
+ <li class="">
+ <a href="/news/science_and_environment" class="">
+ <span>Science</span>
+ </a>
+ </li>
+ <li class="">
+ <a href="/news/magazine" class="">
+ <span>Magazine</span>
+ </a>
+ </li>
+ <li class="">
+ <a href="/news/entertainment_and_arts" class="">
+ <span>Entertainment &amp; Arts</span>
+ </a>
+ </li>
+ <li class="">
+ <a href="/news/health" class="">
+ <span>Health</span>
+ </a>
+ </li>
+ <li class="">
+ <a href="/news/in_pictures" class="">
+ <span>In Pictures</span>
+ </a>
+ </li>
+ <li class="">
+ <a href="/news/also_in_the_news" class="">
+ <span>Also in the News</span>
+ </a>
+ </li>
+ <li class="">
+ <a href="/news/special_reports" class="">
+ <span>Special Reports</span>
+ </a>
+ </li>
+ <li class="">
+ <a href="/news/explainers" class="">
+ <span>Explainers</span>
+ </a>
+ </li>
+ <li class="">
+ <a href="/news/the_reporters" class="">
+ <span>The Reporters</span>
+ </a>
+ </li>
+ <li class="">
+ <a href="/news/have_your_say" class="">
+ <span>Have Your Say</span>
+ </a>
+ </li>
+ </ul>
+ </nav>
+</div>
+ <div id="services-bar" class="blue-tit" role="navigation" aria-label="BBC News Services">
+ <div class="blue-tit__inner">
+ <h2 class="blue-tit__title">BBC News Services</h2>
+ <ul class="blue-tit__list">
+ <li class="blue-tit__list-item">
+ <a href="http://www.bbc.co.uk/news/10628994" class="blue-tit__list-item-link mobile">On your mobile</a>
+ </li>
+ <li class="blue-tit__list-item">
+ <a href="http://www.bbc.co.uk/news/help-17655000" class="blue-tit__list-item-link connected-tv">On your connected TV</a>
+ </li>
+ <li class="blue-tit__list-item">
+ <a href="http://www.bbc.co.uk/news/10628323" class="blue-tit__list-item-link newsletter">Get news alerts</a>
+ </li>
+ <li class="blue-tit__list-item">
+ <a href="http://www.bbc.co.uk/news/20039682" class="blue-tit__list-item-link contact-us">Contact BBC News</a>
+ </li>
+ </ul>
+ </div>
+</div>
+ </div><!-- closes #site-container --> </div> <div id="orb-footer" class="orb-footer orb-footer-grey orb-location-w"> <aside role="complementary"> <div id="orb-aside" class="orb-nav-sec b-r b-g-p"> <div class="orb-footer-inner" role="navigation"> <h2 class="orb-footer-lead">Explore the BBC</h2> <div id="orb-footer-promo" class="orb-d"></div> <div class="orb-footer-primary-links"> <ul> <li class="orb-nav-newsdotcom orb-w"> <a href="http://www.bbc.com/news/">News</a> </li> <li class="orb-nav-sport"> <a href="/sport/">Sport</a> </li> <li class="orb-nav-weather"> <a href="/weather/">Weather</a> </li> <li class="orb-nav-shop orb-w"> <a href="http://shop.bbc.com/">Shop</a> </li> <li class="orb-nav-earthdotcom orb-w"> <a href="http://www.bbc.com/earth/">Earth</a> </li> <li class="orb-nav-travel-dotcom orb-w"> <a href="http://www.bbc.com/travel/">Travel</a> </li> <li class="orb-nav-capital orb-w"> <a href="http://www.bbc.com/capital/">Capital</a> </li> <li class="orb-nav-culture orb-w"> <a href="http://www.bbc.com/culture/">Culture</a> </li> <li class="orb-nav-autos orb-w"> <a href="http://www.bbc.com/autos/">Autos</a> </li> <li class="orb-nav-future orb-w"> <a href="http://www.bbc.com/future/">Future</a> </li> <li class="orb-nav-tv"> <a href="/tv/">TV</a> </li> <li class="orb-nav-radio"> <a href="/radio/">Radio</a> </li> <li class="orb-nav-cbbc"> <a href="/cbbc">CBBC</a> </li> <li class="orb-nav-cbeebies"> <a href="/cbeebies">CBeebies</a> </li> <li> <a href="/ww1/">WW1</a> </li> <li class="orb-nav-food"> <a href="/food/">Food</a> </li> <li> <a href="/iwonder">iWonder</a> </li> <li> <a href="/education">Bitesize</a> </li> <li class="orb-nav-music"> <a href="/music/">Music</a> </li> <li class="orb-nav-nature orb-w"> <a href="/nature/">Nature</a> </li> <li class="orb-nav-local"> <a href="/local/">Local</a> </li> </ul> </div> </div> </div> </aside> <footer role="contentinfo"> <div id="orb-contentinfo" class="orb-nav-sec b-r b-g-p"> <div class="orb-footer-inner"> <ul> <li> <a href="/terms/">Terms of Use</a> </li> <li> <a href="/aboutthebbc/">About the BBC</a> </li> <li> <a href="/privacy/">Privacy Policy</a> </li> <li> <a href="/privacy/cookies/about">Cookies</a> </li> <li> <a href="/accessibility/">Accessibility Help</a> </li> <li> <a href="/guidance/">Parental Guidance</a> </li> <li> <a href="/contact/">Contact the BBC</a> </li> </ul> <small> <span class="orb-hilight">Copyright © 2015 BBC.</span> The BBC is not responsible for the content of external sites. <a href="/help/web/links/" class="orb-hilight">Read about our approach to external linking.</a> </small> </div> </div> </footer> </div> <!-- BBCDOTCOM bodyLast --><div class="bbccom_display_none"><script type="text/javascript"> /*<![CDATA[*/ if (window.bbcdotcom && window.bbcdotcom.analytics) { bbcdotcom.analytics.page(); } if (window.bbcdotcom && bbcdotcom.currencyProviders) { bbcdotcom.currencyProviders.write(); } /*]]>*/ </script><img src="http://b.scorecardresearch.com/p?c1=2&amp;c2=6035051&amp;c4=www.bbc.com/news/world-us-canada-33646704" alt=""/><script type="text/javascript"> /*<![CDATA[*/ if (window.bbcdotcom && bbcdotcom.currencyProviders) { bbcdotcom.currencyProviders.postWrite(); } /*]]>*/ </script><script type="text/javascript"> /*<![CDATA[*/ /** * ASNYC waits to make any gpt requests until the bottom of the page */ /*]]>*/ </script><script type="text/javascript"> /*<![CDATA[*/ if (window.bbcdotcom && bbcdotcom.data && bbcdotcom.data.stats && bbcdotcom.data.stats === 1 && bbcdotcom.utils && window.location.pathname === '/' && window.bbccookies && bbccookies.readPolicy('performance') ) { var wwhpEdition = bbcdotcom.utils.getMetaPropertyContent('wwhp-edition'); var _sf_async_config={}; /** CONFIGURATION START **/ _sf_async_config.uid = 50924; _sf_async_config.domain = "bbc.co.uk"; _sf_async_config.title = "Homepage"+(wwhpEdition !== '' ? ' - '+wwhpEdition : ''); _sf_async_config.sections = "Homepage"+(wwhpEdition !== '' ? ', Homepage - '+wwhpEdition : ''); _sf_async_config.region = wwhpEdition; _sf_async_config.path = "/"+(wwhpEdition !== '' ? '?'+wwhpEdition : ''); /** CONFIGURATION END **/ (function(){ function loadChartbeat() { window._sf_endpt=(new Date()).getTime(); var e = document.createElement("script"); e.setAttribute("language", "javascript"); e.setAttribute("type", "text/javascript"); e.setAttribute('src', '//static.chartbeat.com/js/chartbeat.js'); document.body.appendChild(e); } var oldonload = window.onload; window.onload = (typeof window.onload != "function") ? loadChartbeat : function() { oldonload(); loadChartbeat(); }; })(); } /*]]>*/ </script></div> <!-- BBCDOTCOM all code in page --> <script type="text/javascript"> document.write('&lt;' + 'script id="orb-js-script" data-assetpath="http://static.bbci.co.uk/frameworks/barlesque/2.83.10/orb/4/" src="http://static.bbci.co.uk/frameworks/barlesque/2.83.10/orb/4/script' + (( document.cookie.indexOf('ckns_debugorbjs') > -1 )? '-debug' : '') + '/orb.js">&lt;' + '/script>'); </script><script id="orb-js-script" data-assetpath="http://static.bbci.co.uk/frameworks/barlesque/2.83.10/orb/4/" src="http://static.bbci.co.uk/frameworks/barlesque/2.83.10/orb/4/script/orb.js"></script> <script type="text/javascript"> (function() {
+ 'use strict';
+
+ var promoManager = {
+ url: '',
+ segments: ['a', 'b'],
+ promoLoaded: false,
+ makeUrl: function (variant, theme, win) {
+ var loc = win? win.location : window.location,
+ proto = loc.protocol,
+ host = loc.host,
+ url = proto + '//' + ((proto.match(/s:/i) && !host.match(/^www\.(int|test)\./i))? 'ssl.' : 'www.'),
+ themes = ['light', 'dark'];
+
+ if ( host.match(/^(?:www|ssl)\.(int|test|stage|live)\.bbc\./i) ) {
+ url += RegExp.$1 + '.';
+ }
+ else if ( host.match(/^pal\.sandbox\./i) ) {
+ url += 'test.';
+ }
+
+ theme = themes[ +(theme === themes[0]) ];
+
+ return url + 'bbc.co.uk/navpromo/' + variant + '/' + theme;
+ },
+ validSegment: function (segment) {
+ var validSegments = this.segments;
+
+ for (var i = 0, len = validSegments.length; i &lt; len; i++) {
+ if (validSegments[i] === segment) {
+ return segment;
+ }
+ }
+
+ return validSegments[0];
+ },
+ init: function(node) {
+ var disabledByCookie = (document.cookie.indexOf('ckns_orb_nopromo=1') > -1),
+ orbFullWidth = (document.getElementById('orb-aside').offsetWidth >= 1008),
+ that = this;
+
+ if (window.promomanagerOverride) {
+ for (var p in promomanagerOverride) {
+ that[p] = promomanagerOverride[p];
+ }
+ }
+
+ if ( window.orb.fig('uk') && orbFullWidth && !disabledByCookie ) {
+ require(['orb/async/_footerpromo', 'istats-1'], function(promo, istats) {
+ var mandolinEndDate = new Date().getTime() + (7 * 60 * 60 * 24) * 1000,
+ mandolin = new bbc.Mandolin('footer-promo', that.segments, {rate: 0.2, end: mandolinEndDate}),
+ segmentToRequest = that.validSegment(mandolin.getSegment());
+
+ that.url = (window.promomanagerOverride || that).makeUrl(segmentToRequest, 'light');
+
+ if (that.url) {
+ promo.load(that.url, node, {
+ onSuccess: function(e) {
+ istats.addLabels({ 'campaignID': e.campaignID });
+ if (segmentToRequest === mandolin.getSegment()) {
+ istats.addLabels({ 'promo_id_segment': e.campaignID + ':' + mandolin.getSegment() });
+ }
+ istats.track('internal', {region: node, linkLocation : 'orb-footer-promo'});
+
+ istats.log('display', 'orb-footer-promo-displayed', {campaignID : e.campaignID, testVariant: segmentToRequest});
+ node.className = node.className + ' orb-footer-promo-loaded';
+ promoManager.promoLoaded = true;
+ promoManager.event('promo-loaded').fire(e);
+ },
+ onError: function() {
+ istats.log('error', 'orb-footer-promo-failed');
+ document.cookie = 'ckns_orb_nopromo=1; expires=' + new Date(new Date().getTime() + 1000 * 60 * 10).toGMTString() + ';';
+ }
+ });
+ }
+ });
+ }
+ }
+ };
+
+
+ define('orb/promomanager', ['orb/lib/_event'], function (event) {
+ event.mixin(promoManager);
+ return promoManager;
+ });
+
+ require(['orb/promomanager'], function (promoManager) {
+ promoManager.init(document.getElementById('orb-footer-promo'));
+ })
+})();
+ </script> <script type="text/javascript"> if (typeof require !== 'undefined') { require(['istats-1'], function(istats){ istats.track('external', { region: document.getElementsByTagName('body')[0] }); istats.track('download', { region: document.getElementsByTagName('body')[0] }); }); } </script> <img alt="" id="livestats" src="http://stats.bbc.co.uk/o.gif?~RS~s~RS~News~RS~t~RS~HighWeb_Story~RS~i~RS~33646704~RS~p~RS~99127~RS~a~RS~US~RS~u~RS~/news/world-us-canada-33646704~RS~r~RS~0~RS~q~RS~0~RS~z~RS~8469~RS~"/> <script> window.old_onload = window.onload; window.onload = function() { if(window.old_onload) { window.old_onload(); } window.loaded = true; }; </script> <!-- Chartbeat Web Analytics code - start -->
+<script type="text/javascript">
+ var _sf_async_config={};
+ /** CONFIGURATION START **/
+ _sf_async_config.uid = "50924";
+ _sf_async_config.domain = "www.bbc.co.uk";
+ _sf_async_config.sections = "News, News - us-and-canada, News - STY, News - us-and-canada - STY";
+ <!-- if page is an index, add the edition to the path -->
+ _sf_async_config.path = "bbc.co.uk/news/world-us-canada-33646704";
+ (function() {
+ var noCookies = true;
+ var cookiePrefix = '_chartbeat';
+ if ("object" === typeof bbccookies && typeof bbccookies.readPolicy == 'function') {
+ noCookies = !bbccookies.readPolicy().performance;
+ }
+ if (noCookies && document.cookie.indexOf(cookiePrefix) !== -1) {
+ //Find and remove cookies whose names begin with '_chartbeat'
+ var cookieSplit = document.cookie.split(';');
+ var cookieLength = cookieSplit.length;
+ while (cookieLength--) {
+ var cookie = cookieSplit[cookieLength].replace(/^\s+|\s+$/g, '');
+ var cookieName = cookie.split('=')[0];
+
+ if (cookieName.indexOf(cookiePrefix) === 0) {
+ document.cookie = cookieName + '=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/;';
+ }
+ }
+ }
+ _sf_async_config.noCookies = noCookies;
+ }());
+
+ /** CONFIGURATION END **/
+ (function(){
+ function loadChartbeat() {
+ window._sf_endpt=(new Date()).getTime();
+ var e = document.createElement("script");
+ e.setAttribute("language", "javascript");
+ e.setAttribute("type", "text/javascript");
+ e.setAttribute('src', '//static.chartbeat.com/js/chartbeat.js');
+ document.body.appendChild(e);
+ }
+ var oldonload = window.onload;
+ window.onload = (typeof window.onload != "function") ?
+ loadChartbeat : function() { oldonload(); loadChartbeat(); };
+ }());
+</script>
+<!-- Chartbeat Web Analytics code - end -->
+ <!-- mpulse start -->
+<script>
+ var random = Math.random();
+ var rate = 1;
+ if (rate && (random &lt; rate)) {
+ var account = (location.host.indexOf('.co.uk') !== -1) ? 'WDD4L-XTNMF-UDE8D-52W9K-N4FX8' : 'X5H9R-GT47V-WJULQ-CWND4-S7WY8';
+ // mpulse vendor code
+ (function(){
+ if(window.BOOMR && window.BOOMR.version){return;}
+ var dom,doc,where,iframe = document.createElement('iframe');
+ iframe.src = "javascript:false";
+ iframe.title = ""; iframe.role="presentation";
+ (iframe.frameElement || iframe).style.cssText = "width:0;height:0;border:0;display:none;";
+ where = document.getElementsByTagName('script')[0];
+ where.parentNode.insertBefore(iframe, where);
+
+ try {
+ doc = iframe.contentWindow.document;
+ } catch(e) {
+ dom = document.domain;
+ iframe.src="javascript:var d=document.open();d.domain='"+dom+"';void(0);";
+ doc = iframe.contentWindow.document;
+ }
+ doc.open()._l = function() {
+ var js = this.createElement("script");
+ if(dom) this.domain = dom;
+ js.id = "boomr-if-as";
+ js.src = '//c.go-mpulse.net/boomerang/' +
+ account;
+ BOOMR_lstart=new Date().getTime();
+ this.body.appendChild(js);
+ };
+ doc.write('&lt;body onload="document._l();">');
+ doc.close();
+ })();
+ // mpulse vendor code - end
+ }
+</script>
+<!-- mpulse end -->
+
+
+
+
+
+
+
+
+
+
+</div><script src="http://b.scorecardresearch.com/beacon.js" type="text/javascript" async=""></script><div class="kxhead" data-id="JZTWpGsM" style="display:none !important;"><span class="kxtag kxinvisible" data-id="29292" data-alias="Krux Track Social"><script type="text/javascript">Krux('social.init');</script></span><span class="kxtag kxinvisible" data-id="48940" data-alias="DTC Ad Units on Legacy sites"><script>
+var krrain1 = document.getElementsByTagName('script');
+for(var i = 0; i &lt; krrain1.length; i++) {
+ if(krrain1[i].src.indexOf("doubleclick.net") > 0) {
+ var krrain2 = krrain1[i].src.split("/");
+ if (krrain2[3] != null && krrain2[3] != ""){
+ if (krrain2[3] == "adj"){
+ Krux('set', 'page_attr_adunit1', krrain2[4]);
+ var krrain3 = krrain2[5].split(";");
+ Krux('set', 'page_attr_adunit2', krrain3[0]);
+ }
+ else if (krrain2[4] == "adj") {
+ Krux('set', 'page_attr_adunit1', krrain2[5]);
+ var krrain3 = krrain2[6].split(";");
+ Krux('set', 'page_attr_adunit2', krrain3[0]);
+ }
+ }
+ break;
+ }
+}
+</script></span><span class="kxtag kxinvisible" data-id="34352" data-alias="DTC v1"><script>
+Krux('scrape', { "page_attr_keywords": {meta_name: "keywords"}});
+Krux('scrape', { 'page_attr_url_path_1': {url_path: '1'}});
+Krux('scrape', { 'page_attr_url_path_2': {url_path: '2'}});
+Krux('scrape', { 'page_attr_url_path_3': {url_path: '3'}});
+Krux('scrape', { 'page_attr_url_path_4': {url_path: '4'}});
+Krux('scrape', { 'page_attr_url_path_5': {url_path: '5'}});
+Krux('set', 'page_attr_sections', typeof window._sf_async_config === 'object' && window._sf_async_config['sections']);
+Krux('set', 'page_attr_title', typeof window._sf_async_config === 'object' && window._sf_async_config['title']);
+Krux('set', 'page_attr_region', typeof window._sf_async_config === 'object' && window._sf_async_config['region']);
+</script></span><span class="kxtag kxinvisible" data-id="44488" data-alias="BBC Meta Description">Krux('scrape', { 'page_attr_description': {meta_name: 'Description'}});</span><span class="kxtag kxinvisible" data-id="43732" data-alias="DTC v2"><script>
+Krux('set', 'page_attr_cb_title', typeof window._sf_async_config === 'object' && window._sf_async_config['title']);
+Krux('set', 'page_attr_cb_path', typeof window._sf_async_config === 'object' && window._sf_async_config['path']);
+
+Krux('scrape', { 'page_attr_google_ad.type': {js_global: "google_ad.type"}});
+Krux('scrape', { 'page_attr_google_ad.bidtype': {js_global: "google_ad.bidtype"}});
+Krux('scrape', { 'page_attr_google_ad.targeting_type': {js_global: "google_ad.targeting_type"}});
+Krux('scrape', { 'page_attr_google_ad.visible_url': {js_global: "google_ad.visible_url"}});
+Krux('scrape', { 'page_attr_scw_account': {js_global: "s_account"}});
+Krux('scrape', { 'page_attr_scw_site_section': {js_global: "scw.prop7"}});
+Krux('scrape', { 'page_attr_scw_ad_enabled': {js_global: "scw.prop57"}});
+Krux('scrape', { 'page_attr_scw_hour': {js_global: "s_hour"}});
+Krux('scrape', { 'page_attr_scw_day': {js_global: "s_day"}});
+Krux('scrape', { 'page_attr_scw_timepart': {js_global: "s_timepart"}});
+
+
+Krux('scrape', { 'page_attr_dart_tag': {dart: "tag"}});
+Krux('scrape', { 'page_attr_dart_page': {dart: "page"}});
+Krux('scrape', { 'page_attr_dart_referrer': {dart: "referrer"}});
+Krux('scrape', { 'page_attr_dart_domain': {dart: "domain"}});
+Krux('scrape', { 'page_attr_dart_headline': {dart: "headline"}});
+Krux('scrape', { 'page_attr_dart_is_sponsor': {dart: "is_sponsor"}});
+Krux('scrape', { 'page_attr_dart_is_mpu': {dart: "is_mpu"}});
+
+Krux('scrape', { 'page_attr_dfpZone': {js_global: "dfpZone"}});
+</script></span><span class="kxtag kxinvisible" data-id="40186" data-alias="BBC News DTC"><script>
+Krux('scrape', { 'page_attr_dart_ctype': {dart: "ctype"}});
+Krux('scrape', { 'page_attr_dart_news': {dart: "news"}});
+for(i=0;i&lt;document.getElementsByTagName('meta').length;i++) {
+ if(document.getElementsByTagName('meta')[i].getAttribute('name') == 'CPS_SECTION_PATH'){
+ var sec_hier = document.getElementsByTagName('meta')[i].getAttribute('content').split('/');
+ Krux('set', 'section', sec_hier[0]);
+ if(sec_hier.length > 1) {
+ Krux('set', 'subsection', sec_hier[1]);
+ }
+ }
+}
+</script></span></div><script src="//static.chartbeat.com/js/chartbeat.js" type="text/javascript" language="javascript"></script><iframe id="iPerceptionsFrame" style="display: none;" src="//universal.iperceptions.com/iFrame.html"></iframe><div id="edr_survey"></div><iframe style="display: none; width: 0px; height: 0px;" name="google_osd_static_frame" id="google_osd_static_frame_5275862176938"></iframe></body></html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/blogger/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/blogger/expected-images.json
new file mode 100644
index 000000000..1b254aaf2
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/blogger/expected-images.json
@@ -0,0 +1,6 @@
+[
+ "https:\/\/1.bp.blogspot.com\/-YIPC5jkXkDE\/Vy7YPSqFKWI\/AAAAAAAAAxI\/a7D6Ji2GxoUvcrwUkI4RLZcr2LFQEJCTACLcB\/w1200-h630-p-nu\/block-diagram.png",
+ "https:\/\/1.bp.blogspot.com\/-YIPC5jkXkDE\/Vy7YPSqFKWI\/AAAAAAAAAxI\/a7D6Ji2GxoUvcrwUkI4RLZcr2LFQEJCTACLcB\/s640\/block-diagram.png",
+ "https:\/\/1.bp.blogspot.com\/-k3naUT3uXao\/Vy7WFac246I\/AAAAAAAAAw8\/mePy_ostO8QJra5ZJrbP2WGhTlJ0B_r8gCLcB\/s640\/schematic-from-hell.png",
+ "https:\/\/2.bp.blogspot.com\/-kIekczO693g\/Vy7dBqYifXI\/AAAAAAAAAxc\/hMNJBs5bedIQOrBzzkhq4gbmhR-n58EQwCLcB\/s400\/graph-labels.png"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/blogger/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/blogger/expected-metadata.json
new file mode 100644
index 000000000..a081c8829
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/blogger/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "I've written a couple of posts in the past few months but they were all for the blog at work so I figured I'm long overdue for one on Silic...",
+ "Image": "https:\/\/1.bp.blogspot.com\/-YIPC5jkXkDE\/Vy7YPSqFKWI\/AAAAAAAAAxI\/a7D6Ji2GxoUvcrwUkI4RLZcr2LFQEJCTACLcB\/w1200-h630-p-nu\/block-diagram.png",
+ "Title": "Open Verilog flow for Silego GreenPak4 programmable logic devices",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/blogger/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/blogger/expected.html
new file mode 100644
index 000000000..ec3a02a43
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/blogger/expected.html
@@ -0,0 +1,57 @@
+<div id="post-body-932306423056216142" itemprop="description articleBody"><p>
+ I've written a couple of posts in the past few months but they were all for <a href="http://blog.ioactive.com/search/label/Andrew%20Zonenberg">the blog at work</a> so I figured I'm long overdue for one on Silicon Exposed.</p><h2>
+ So what's a GreenPak?</h2>
+ <p> Silego Technology is a fabless semiconductor company located in the SF Bay area, which makes (among other things) a line of programmable logic devices known as GreenPak. Their <a href="http://www.silego.com/products/greenpak5.html">5th generation parts</a> were just announced, but I started this project before that happened so I'm still targeting the <a href="http://www.silego.com/products/greenpak4.html">4th generation</a>.</p><p> GreenPak devices are kind of like itty bitty <a href="http://www.cypress.com/products/32-bit-arm-cortex-m-psoc">PSoCs</a> - they have a mixed signal fabric with an ADC, DACs, comparators, voltage references, plus a digital LUT/FF fabric and some typical digital MCU peripherals like counters and oscillators (but no CPU).</p><p> It's actually an interesting architecture - FPGAs (including some devices marketed as CPLDs) are a 2D array of LUTs connected via wires to adjacent cells, and true (product term) CPLDs are a star topology of AND-OR arrays connected by a crossbar. GreenPak, on the other hand, is a star topology of LUTs, flipflops, and analog/digital hard IP connected to a crossbar.</p><p> Without further ado, here's a block diagram showing all the cool stuff you get in the SLG46620V:</p><table readabilityDataTable="0"><tbody><tr><td>
+ <a href="https://1.bp.blogspot.com/-YIPC5jkXkDE/Vy7YPSqFKWI/AAAAAAAAAxI/a7D6Ji2GxoUvcrwUkI4RLZcr2LFQEJCTACLcB/s1600/block-diagram.png" imageanchor="1"><img height="512" src="https://1.bp.blogspot.com/-YIPC5jkXkDE/Vy7YPSqFKWI/AAAAAAAAAxI/a7D6Ji2GxoUvcrwUkI4RLZcr2LFQEJCTACLcB/s640/block-diagram.png" width="640"></img></a>
+ </td>
+ </tr><tr><td>SLG46620V block diagram (from device datasheet)</td>
+ </tr></tbody></table><p>
+ They're also tiny (the SLG46620V is a 20-pin 0.4mm pitch STQFN measuring 2x3 mm, and the lower gate count SLG46140V is a mere 1.6x2 mm) and probably the cheapest programmable logic device on the market - $0.50 in low volume and less than $0.40 in larger quantities.</p><p> The Vdd range of GreenPak4 is huge, more like what you'd expect from an MCU than an FPGA! It can run on anything from 1.8 to 5V, although performance is only specified at 1.8, 3.3, and 5V nominal voltages. There's also a dual-rail version that trades one of the GPIO pins for a second power supply pin, allowing you to interface to logic at two different voltage levels.</p><p> To support low-cost/space-constrained applications, they even have the configuration memory on die. It's one-time programmable and needs external Vpp to program (presumably Silego didn't want to waste die area on charge pumps that would only be used once) but has a SRAM programming mode for prototyping.</p><p> The best part is that the development software (GreenPak Designer) is free of charge and provided for all major operating systems including Linux! Unfortunately, the only supported design entry method is schematic entry and there's no way to write your design in a HDL.</p><p> While schematics may be fine for quick tinkering on really simple designs, they quickly get unwieldy. The nightmare of a circuit shown below is just a bunch of counters hooked up to LEDs that blink at various rates.</p><table readabilityDataTable="0"><tbody><tr><td>
+ <a href="https://1.bp.blogspot.com/-k3naUT3uXao/Vy7WFac246I/AAAAAAAAAw8/mePy_ostO8QJra5ZJrbP2WGhTlJ0B_r8gCLcB/s1600/schematic-from-hell.png" imageanchor="1"><img height="334" src="https://1.bp.blogspot.com/-k3naUT3uXao/Vy7WFac246I/AAAAAAAAAw8/mePy_ostO8QJra5ZJrbP2WGhTlJ0B_r8gCLcB/s640/schematic-from-hell.png" width="640"></img></a>
+ </td>
+ </tr><tr><td>Schematic from hell!</td>
+ </tr></tbody></table><p>
+ As if this wasn't enough of a problem, the largest GreenPak4 device (the SLG46620V) is split into two halves with limited routing between them, and the GUI doesn't help the user manage this complexity at all - you have to draw your schematic in two halves and add "cross connections" between them.</p><p> The icing on the cake is that schematics are a pain to diff and collaborate on. Although GreenPak schematics are XML based, which is a touch better than binary, who wants to read a giant XML diff and try to figure out what's going on in the circuit?</p><p> This isn't going to be a post on the quirks of Silego's software, though - that would be boring. As it turns out, there's one more exciting feature of these chips that I didn't mention earlier: the configuration bitstream is 100% documented in the device datasheet! This is unheard of in the programmable logic world. As Nick of Arachnid Labs <a href="http://www.arachnidlabs.com/blog/2015/03/30/greenpak/">says</a>, the chip is "just dying for someone to write a VHDL or Verilog compiler for it". As you can probably guess by from the title of this post, I've been busy doing exactly that.</p><h2>
+ Great! How does it work?</h2>
+ <p> Rather than wasting time writing a synthesizer, I decided to write a GreenPak technology library for Clifford Wolf's excellent open source synthesis tool, <a href="http://www.clifford.at/yosys/">Yosys</a>, and then make a place-and-route tool to turn that into a final netlist. The post-PAR netlist can then be loaded into GreenPak Designer in order to program the device.</p><p> The first step of the process is to run the "synth_greenpak4" Yosys flow on the Verilog source. This runs a generic RTL synthesis pass, then some coarse-grained extraction passes to infer shift register and counter cells from behavioral logic, and finally maps the remaining logic to LUT/FF cells and outputs a JSON-formatted netlist.</p><p> Once the design has been synthesized, my tool (named, surprisingly, gp4par) is then launched on the netlist. It begins by parsing the JSON and constructing a directed graph of cell objects in memory. A second graph, containing all of the primitives in the device and the legal connections between them, is then created based on the device specified on the command line. (As of now only the SLG46620V is supported; the SLG46621V can be added fairly easily but the SLG46140V has a slightly different microarchitecture which will require a bit more work to support.)</p><p> After the graphs are generated, each node in the netlist graph is assigned a numeric label identifying the type of cell and each node in the device graph is assigned a list of legal labels: for example, an I/O buffer site is legal for an input buffer, output buffer, or bidirectional buffer.</p><table readabilityDataTable="0"><tbody><tr><td>
+ <a href="https://2.bp.blogspot.com/-kIekczO693g/Vy7dBqYifXI/AAAAAAAAAxc/hMNJBs5bedIQOrBzzkhq4gbmhR-n58EQwCLcB/s1600/graph-labels.png" imageanchor="1"><img height="141" src="https://2.bp.blogspot.com/-kIekczO693g/Vy7dBqYifXI/AAAAAAAAAxc/hMNJBs5bedIQOrBzzkhq4gbmhR-n58EQwCLcB/s400/graph-labels.png" width="400"></img></a>
+ </td>
+ </tr><tr><td>Example labeling for a subset of the netlist and device graphs</td>
+ </tr></tbody></table><p>
+ The labeled nodes now need to be placed. The initial placement uses a simple greedy algorithm to create a valid (although not necessarily optimal or even routable) placement:</p><ol><li>Loop over the cells in the netlist. If any cell has a LOC constraint, which locks the cell to a specific physical site, attempt to assign the node to the specified site. If the specified node is the wrong type, doesn't exist, or is already used by another constrained node, the constraint is invalid so fail with an error.</li>
+ <li>Loop over all of the unconstrained cells in the netlist and assign them to the first unused site with the right label. If none are available, the design is too big for the device so fail with an error.</li>
+ </ol><p>
+ Once the design is placed, the placement optimizer then loops over the design and attempts to improve it. A simulated annealing algorithm is used, where changes to the design are accepted unconditionally if they make the placement better, and with a random, gradually decreasing probability if they make it worse. The optimizer terminates when the design receives a perfect score (indicating an optimal placement) or if it stops making progress for several iterations. Each iteration does the following:</p><ol><li>Compute a score for the current design based on the number of unroutable nets, the amount of routing congestion (number of nets crossing between halves of the device), and static timing analysis (not yet implemented, always zero).</li>
+ <li>Make a list of nodes that contributed to this score in some way (having some attached nets unroutable, crossing to the other half of the device, or failing timing).</li>
+ <li>Remove nodes from the list that are LOC'd to a specific location since we're not allowed to move them.</li>
+ <li>Remove nodes from the list that have only one legal placement in the device (for example, oscillator hard IP) since there's nowhere else for them to go.</li>
+ <li>Pick a node from the remainder of the list at random. Call this our pivot.</li>
+ <li>Find a list of candidate placements for the pivot: </li>
+ <ol><li>Consider all routable placements in the other half of the device.</li>
+ <li>If none were found, consider all routable placements anywhere in the device.</li>
+ <li>If none were found, consider all placements anywhere in the device even if they're not routable.</li>
+ </ol><li>Pick one of the candidates at random and move the pivot to that location. If another cell in the netlist is already there, put it in the vacant site left by the pivot.</li>
+ <li>Re-compute the score for the design. If it's better, accept this change and start the next iteration.</li>
+ <li>If the score is worse, accept it with a random probability which decreases as the iteration number goes up. If the change is not accepted, restore the previous placement.</li>
+ </ol><p>
+ After optimization, the design is checked for routability. If any edges in the netlist graph don't correspond to edges in the device graph, the user probably asked for something impossible (for example, trying to hook a flipflop's output to a comparator's reference voltage input) so fail with an error.</p><p> The design is then routed. This is quite simple due to the crossbar structure of the device. For each edge in the netlist:</p><ol><li>If dedicated (non-fabric) routing is used for this path, configure the destination's input mux appropriately and stop.</li>
+ <li>If the source and destination are in the same half of the device, configure the destination's input mux appropriately and stop.</li>
+ <li>A cross-connection must be used. Check if we already used one to bring the source signal to the other half of the device. If found, configure the destination to route from that cross-connection and stop.</li>
+ <li>Check if we have any cross-connections left going in this direction. If they're all used, the design is unroutable due to congestion so fail with an error.</li>
+ <li>Pick the next unused cross-connection and configure it to route from the source. Configure the destination to route from the cross-connection and stop.</li>
+ </ol><p>
+ Once routing is finished, run a series of post-PAR design rule checks. These currently include the following:</p><ul><li>If any node has no loads, generate a warning</li>
+ <li>If an I/O buffer is connected to analog hard IP, fail with an error if it's not configured in analog mode.</li>
+ <li>Some signals (such as comparator inputs and oscillator power-down controls) are generated by a shared mux and fed to many loads. If different loads require conflicting settings for the shared mux, fail with an error.</li>
+ </ul><p>
+ If DRC passes with no errors, configure all of the individual cells in the netlist based on the HDL parameters. Fail with an error if an invalid configuration was requested.</p><p> Finally, generate the bitstream from all of the per-cell configuration and write it to a file.</p><h2>
+ Great, let's get started!</h2><p>
+ If you don't already have one, you'll need to buy a <a href="http://www.silego.com/buy/index.php?main_page=product_info&amp;products_id=388">GreenPak4 development kit</a>. The kit includes samples of the SLG46620V (among other devices) and a programmer/emulation board. While you're waiting for it to arrive, install <a href="http://www.silego.com/softdoc/software.html">GreenPak Designer</a>.</p><p> Download and install Yosys. Although Clifford is pretty good at merging my pull requests, only <a href="https://github.com/azonenberg/yosys/">my fork on Github</a> is guaranteed to have the most up-to-date support for GreenPak devices so don't be surprised if you can't use a bleeding-edge feature with mainline Yosys.</p><p> Download and install gp4par. You can get it from <a href="https://github.com/azonenberg/openfpga/">the Github repository</a>.</p><p> Write your HDL, compile with Yosys, P&amp;R with gp4par, and import the bitstream into GreenPak Designer to program the target device. The most current gp4par manual is included in LaTeX source form in the source tree and is automatically built as part of the compile process. If you're just browsing, there's a <a href="http://thanatos.virtual.antikernel.net/unlisted/gp4-hdl.pdf">relatively recent PDF version</a> on my web server.</p><p> If you'd like to see the Verilog that produced the nightmare of a schematic I showed above, <a href="https://github.com/azonenberg/openfpga/blob/master/tests/greenpak4/Blinky/Blinky.v">here it is</a>.</p><p> Be advised that this project is still very much a work in progress and there are still a number of SLG46620V features I don't support (see the manual for exact details).</p><h2>
+ I love it / it segfaulted / there's a problem in the manual!</h2><p>
+ Hop in our IRC channel (##openfpga on Freenode) and let me know. Feedback is great, pull requests are even better,</p><h2>
+ You're competing with Silego's IDE. Have they found out and sued you yet?</h2><p>
+ Nope. They're fully aware of what I'm doing and are rolling out the red carpet for me. They love the idea of a HDL flow as an alternative to schematic entry and are pretty amazed at how fast it's coming together.</p><p> After I reported a few bugs in their datasheets they decided to skip the middleman and give me direct access to the engineer who writes their documentation so that I can get faster responses. The last time I found a problem (two different parts of the datasheet contradicted each other) an updated datasheet was in my inbox and on their website by the next day. I only wish Xilinx gave me that kind of treatment!</p><p> They've even <a href="https://twitter.com/SilegoTech/status/717018987771469824">offered me free hardware</a> to help me add support for their latest product family, although I plan to get GreenPak4 support to a more stable state before taking them up on the offer.</p><h2>
+ So what's next?</h2>
+ <p> Better testing, for starters. I have to verify functionality by hand with a DMM and oscilloscope, which is time consuming.</p><p> My contact at Silego says they're going to be giving me documentation on the SRAM emulation interface soon, so I'm going to make a hardware-in-loop test platform that connects to my desktop and the Silego ZIF socket, and lets me load new bitstreams via a scriptable interface. It'll have FPGA-based digital I/O as well as an ADC and DAC on every device pin, plus an adjustable voltage regulator for power, so I can feed in arbitrary mixed-signal test waveforms and write PC-based unit tests to verify correct behavior.</p><p> Other than that, I want to finish support for the SLG46620V in the next month or two. The SLG46621V will be an easy addition since only one pin and the relevant configuration bits have changed from the 46620 (I suspect they're the same die, just bonded out differently).</p><p> Once that's done I'll have to do some more extensive work to add the SLG46140V since the architecture is a bit different (a lot of the combinatorial logic is merged into multi-function blocks). Luckily, the 46140 has a lot in common architecturally with the GreenPak5 family, so once that's done GreenPak5 will probably be a lot easier to add support for.</p><p> My thanks go out to Clifford Wolf, whitequark, the IRC users in ##openfpga, and everyone at Silego I've worked with to help make this possible. I hope that one day this project will become mature enough that Silego will ship it as an officially supported extension to GreenPak Designer, making history by becoming the first modern programmable logic vendor to ship a fully open source synthesis and P&amp;R suite.
+ </p>
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/blogger/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/blogger/source.html
new file mode 100644
index 000000000..0c23844f6
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/blogger/source.html
@@ -0,0 +1,2064 @@
+<!DOCTYPE html>
+<html class='v2' dir='ltr' xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr'>
+
+<head>
+ <meta content='width=1100' name='viewport' />
+ <meta content='text/html; charset=UTF-8' http-equiv='Content-Type' />
+ <meta content='blogger' name='generator' />
+ <link href='http://siliconexposed.blogspot.tw/favicon.ico' rel='icon' type='image/x-icon' />
+ <link href='http://siliconexposed.blogspot.com/2016/05/open-verilog-flow-for-silego-greenpak4.html' rel='canonical' />
+ <link rel="alternate" type="application/atom+xml" title="Silicon Exposed - Atom" href="http://siliconexposed.blogspot.com/feeds/posts/default" />
+ <link rel="alternate" type="application/rss+xml" title="Silicon Exposed - RSS" href="http://siliconexposed.blogspot.com/feeds/posts/default?alt=rss" />
+ <link rel="service.post" type="application/atom+xml" title="Silicon Exposed - Atom" href="https://www.blogger.com/feeds/175004091875960054/posts/default" />
+
+ <link rel="alternate" type="application/atom+xml" title="Silicon Exposed - Atom" href="http://siliconexposed.blogspot.com/feeds/932306423056216142/comments/default" />
+ <!--[if IE]><script type="text/javascript" src="https://www.blogger.com/static/v1/jsbin/3382512426-ieretrofit.js"></script>
+<![endif]-->
+ <link href='https://1.bp.blogspot.com/-YIPC5jkXkDE/Vy7YPSqFKWI/AAAAAAAAAxI/a7D6Ji2GxoUvcrwUkI4RLZcr2LFQEJCTACLcB/s640/block-diagram.png' rel='image_src' />
+ <meta content='http://siliconexposed.blogspot.com/2016/05/open-verilog-flow-for-silego-greenpak4.html' property='og:url' />
+ <meta content='Open Verilog flow for Silego GreenPak4 programmable logic devices' property='og:title' />
+ <meta content='I&#39;ve written a couple of posts in the past few months but they were all for the blog at work so I figured I&#39;m long overdue for one on Silic...' property='og:description' />
+ <meta content='https://1.bp.blogspot.com/-YIPC5jkXkDE/Vy7YPSqFKWI/AAAAAAAAAxI/a7D6Ji2GxoUvcrwUkI4RLZcr2LFQEJCTACLcB/w1200-h630-p-nu/block-diagram.png' property='og:image' />
+ <!--[if IE]> <script> (function() { var html5 = ("abbr,article,aside,audio,canvas,datalist,details," + "figure,footer,header,hgroup,mark,menu,meter,nav,output," + "progress,section,time,video").split(','); for (var i = 0; i < html5.length; i++) { document.createElement(html5[i]); } try { document.execCommand('BackgroundImageCache', false, true); } catch(e) {} })(); </script> <![endif]-->
+ <title>Silicon Exposed: Open Verilog flow for Silego GreenPak4 programmable logic devices</title>
+ <link type='text/css' rel='stylesheet' href='https://www.blogger.com/static/v1/widgets/434580396-css_bundle_v2.css' />
+ <link type='text/css' rel='stylesheet' href='https://www.blogger.com/dyn-css/authorization.css?targetBlogID=175004091875960054&zx=7186378a-33a2-4a55-8356-a1dae7b99e4e' />
+ <style id='page-skin-1' type='text/css'>
+ <!--
+ /*
+-----------------------------------------------
+Blogger Template Style
+Name: Simple
+Designer: Josh Peterson
+URL: www.noaesthetic.com
+----------------------------------------------- */
+ /* Variable definitions
+====================
+<Variable name="keycolor" description="Main Color" type="color" default="#66bbdd"/>
+<Group description="Page Text" selector="body">
+<Variable name="body.font" description="Font" type="font"
+default="normal normal 12px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/>
+<Variable name="body.text.color" description="Text Color" type="color" default="#222222"/>
+</Group>
+<Group description="Backgrounds" selector=".body-fauxcolumns-outer">
+<Variable name="body.background.color" description="Outer Background" type="color" default="#66bbdd"/>
+<Variable name="content.background.color" description="Main Background" type="color" default="#ffffff"/>
+<Variable name="header.background.color" description="Header Background" type="color" default="transparent"/>
+</Group>
+<Group description="Links" selector=".main-outer">
+<Variable name="link.color" description="Link Color" type="color" default="#2288bb"/>
+<Variable name="link.visited.color" description="Visited Color" type="color" default="#888888"/>
+<Variable name="link.hover.color" description="Hover Color" type="color" default="#33aaff"/>
+</Group>
+<Group description="Blog Title" selector=".header h1">
+<Variable name="header.font" description="Font" type="font"
+default="normal normal 60px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/>
+<Variable name="header.text.color" description="Title Color" type="color" default="#3399bb" />
+</Group>
+<Group description="Blog Description" selector=".header .description">
+<Variable name="description.text.color" description="Description Color" type="color"
+default="#777777" />
+</Group>
+<Group description="Tabs Text" selector=".tabs-inner .widget li a">
+<Variable name="tabs.font" description="Font" type="font"
+default="normal normal 14px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/>
+<Variable name="tabs.text.color" description="Text Color" type="color" default="#999999"/>
+<Variable name="tabs.selected.text.color" description="Selected Color" type="color" default="#000000"/>
+</Group>
+<Group description="Tabs Background" selector=".tabs-outer .PageList">
+<Variable name="tabs.background.color" description="Background Color" type="color" default="#f5f5f5"/>
+<Variable name="tabs.selected.background.color" description="Selected Color" type="color" default="#eeeeee"/>
+</Group>
+<Group description="Post Title" selector="h3.post-title, .comments h4">
+<Variable name="post.title.font" description="Font" type="font"
+default="normal normal 22px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/>
+</Group>
+<Group description="Date Header" selector=".date-header">
+<Variable name="date.header.color" description="Text Color" type="color"
+default="#666666"/>
+<Variable name="date.header.background.color" description="Background Color" type="color"
+default="transparent"/>
+<Variable name="date.header.font" description="Text Font" type="font"
+default="normal bold 11px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/>
+<Variable name="date.header.padding" description="Date Header Padding" type="string" default="inherit"/>
+<Variable name="date.header.letterspacing" description="Date Header Letter Spacing" type="string" default="inherit"/>
+<Variable name="date.header.margin" description="Date Header Margin" type="string" default="inherit"/>
+</Group>
+<Group description="Post Footer" selector=".post-footer">
+<Variable name="post.footer.text.color" description="Text Color" type="color" default="#666666"/>
+<Variable name="post.footer.background.color" description="Background Color" type="color"
+default="#f9f9f9"/>
+<Variable name="post.footer.border.color" description="Shadow Color" type="color" default="#eeeeee"/>
+</Group>
+<Group description="Gadgets" selector="h2">
+<Variable name="widget.title.font" description="Title Font" type="font"
+default="normal bold 11px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/>
+<Variable name="widget.title.text.color" description="Title Color" type="color" default="#000000"/>
+<Variable name="widget.alternate.text.color" description="Alternate Color" type="color" default="#999999"/>
+</Group>
+<Group description="Images" selector=".main-inner">
+<Variable name="image.background.color" description="Background Color" type="color" default="#ffffff"/>
+<Variable name="image.border.color" description="Border Color" type="color" default="#eeeeee"/>
+<Variable name="image.text.color" description="Caption Text Color" type="color" default="#666666"/>
+</Group>
+<Group description="Accents" selector=".content-inner">
+<Variable name="body.rule.color" description="Separator Line Color" type="color" default="#eeeeee"/>
+<Variable name="tabs.border.color" description="Tabs Border Color" type="color" default="transparent"/>
+</Group>
+<Variable name="body.background" description="Body Background" type="background"
+color="#ffffff" default="$(color) none repeat scroll top left"/>
+<Variable name="body.background.override" description="Body Background Override" type="string" default=""/>
+<Variable name="body.background.gradient.cap" description="Body Gradient Cap" type="url"
+default="url(https://resources.blogblog.com/blogblog/data/1kt/simple/gradients_light.png)"/>
+<Variable name="body.background.gradient.tile" description="Body Gradient Tile" type="url"
+default="url(https://resources.blogblog.com/blogblog/data/1kt/simple/body_gradient_tile_light.png)"/>
+<Variable name="content.background.color.selector" description="Content Background Color Selector" type="string" default=".content-inner"/>
+<Variable name="content.padding" description="Content Padding" type="length" default="10px" min="0" max="100px"/>
+<Variable name="content.padding.horizontal" description="Content Horizontal Padding" type="length" default="10px" min="0" max="100px"/>
+<Variable name="content.shadow.spread" description="Content Shadow Spread" type="length" default="40px" min="0" max="100px"/>
+<Variable name="content.shadow.spread.webkit" description="Content Shadow Spread (WebKit)" type="length" default="5px" min="0" max="100px"/>
+<Variable name="content.shadow.spread.ie" description="Content Shadow Spread (IE)" type="length" default="10px" min="0" max="100px"/>
+<Variable name="main.border.width" description="Main Border Width" type="length" default="0" min="0" max="10px"/>
+<Variable name="header.background.gradient" description="Header Gradient" type="url" default="none"/>
+<Variable name="header.shadow.offset.left" description="Header Shadow Offset Left" type="length" default="-1px" min="-50px" max="50px"/>
+<Variable name="header.shadow.offset.top" description="Header Shadow Offset Top" type="length" default="-1px" min="-50px" max="50px"/>
+<Variable name="header.shadow.spread" description="Header Shadow Spread" type="length" default="1px" min="0" max="100px"/>
+<Variable name="header.padding" description="Header Padding" type="length" default="30px" min="0" max="100px"/>
+<Variable name="header.border.size" description="Header Border Size" type="length" default="1px" min="0" max="10px"/>
+<Variable name="header.bottom.border.size" description="Header Bottom Border Size" type="length" default="1px" min="0" max="10px"/>
+<Variable name="header.border.horizontalsize" description="Header Horizontal Border Size" type="length" default="0" min="0" max="10px"/>
+<Variable name="description.text.size" description="Description Text Size" type="string" default="140%"/>
+<Variable name="tabs.margin.top" description="Tabs Margin Top" type="length" default="0" min="0" max="100px"/>
+<Variable name="tabs.margin.side" description="Tabs Side Margin" type="length" default="30px" min="0" max="100px"/>
+<Variable name="tabs.background.gradient" description="Tabs Background Gradient" type="url"
+default="url(https://resources.blogblog.com/blogblog/data/1kt/simple/gradients_light.png)"/>
+<Variable name="tabs.border.width" description="Tabs Border Width" type="length" default="1px" min="0" max="10px"/>
+<Variable name="tabs.bevel.border.width" description="Tabs Bevel Border Width" type="length" default="1px" min="0" max="10px"/>
+<Variable name="post.margin.bottom" description="Post Bottom Margin" type="length" default="25px" min="0" max="100px"/>
+<Variable name="image.border.small.size" description="Image Border Small Size" type="length" default="2px" min="0" max="10px"/>
+<Variable name="image.border.large.size" description="Image Border Large Size" type="length" default="5px" min="0" max="10px"/>
+<Variable name="page.width.selector" description="Page Width Selector" type="string" default=".region-inner"/>
+<Variable name="page.width" description="Page Width" type="string" default="auto"/>
+<Variable name="main.section.margin" description="Main Section Margin" type="length" default="15px" min="0" max="100px"/>
+<Variable name="main.padding" description="Main Padding" type="length" default="15px" min="0" max="100px"/>
+<Variable name="main.padding.top" description="Main Padding Top" type="length" default="30px" min="0" max="100px"/>
+<Variable name="main.padding.bottom" description="Main Padding Bottom" type="length" default="30px" min="0" max="100px"/>
+<Variable name="paging.background"
+color="#ffffff"
+description="Background of blog paging area" type="background"
+default="transparent none no-repeat scroll top center"/>
+<Variable name="footer.bevel" description="Bevel border length of footer" type="length" default="0" min="0" max="10px"/>
+<Variable name="mobile.background.overlay" description="Mobile Background Overlay" type="string"
+default="transparent none repeat scroll top left"/>
+<Variable name="mobile.background.size" description="Mobile Background Size" type="string" default="auto"/>
+<Variable name="mobile.button.color" description="Mobile Button Color" type="color" default="#ffffff" />
+<Variable name="startSide" description="Side where text starts in blog language" type="automatic" default="left"/>
+<Variable name="endSide" description="Side where text ends in blog language" type="automatic" default="right"/>
+*/
+ /* Content
+----------------------------------------------- */
+
+ body {
+ font: normal normal 12px 'Trebuchet MS', Trebuchet, Verdana, sans-serif;
+ color: #666666;
+ background: #ffffff none repeat scroll top left;
+ padding: 0 0 0 0;
+ }
+
+ html body .region-inner {
+ min-width: 0;
+ max-width: 100%;
+ width: auto;
+ }
+
+ h2 {
+ font-size: 22px;
+ }
+
+ a:link {
+ text-decoration: none;
+ color: #2288bb;
+ }
+
+ a:visited {
+ text-decoration: none;
+ color: #888888;
+ }
+
+ a:hover {
+ text-decoration: underline;
+ color: #33aaff;
+ }
+
+ .body-fauxcolumn-outer .fauxcolumn-inner {
+ background: transparent none repeat scroll top left;
+ _background-image: none;
+ }
+
+ .body-fauxcolumn-outer .cap-top {
+ position: absolute;
+ z-index: 1;
+ height: 400px;
+ width: 100%;
+ }
+
+ .body-fauxcolumn-outer .cap-top .cap-left {
+ width: 100%;
+ background: transparent none repeat-x scroll top left;
+ _background-image: none;
+ }
+
+ .content-outer {
+ -moz-box-shadow: 0 0 0 rgba(0, 0, 0, .15);
+ -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, .15);
+ -goog-ms-box-shadow: 0 0 0 #333333;
+ box-shadow: 0 0 0 rgba(0, 0, 0, .15);
+ margin-bottom: 1px;
+ }
+
+ .content-inner {
+ padding: 10px 40px;
+ }
+
+ .content-inner {
+ background-color: #ffffff;
+ }
+ /* Header
+----------------------------------------------- */
+
+ .header-outer {
+ background: transparent none repeat-x scroll 0 -400px;
+ _background-image: none;
+ }
+
+ .Header h1 {
+ font: normal normal 40px 'Trebuchet MS', Trebuchet, Verdana, sans-serif;
+ color: #000000;
+ text-shadow: 0 0 0 rgba(0, 0, 0, .2);
+ }
+
+ .Header h1 a {
+ color: #000000;
+ }
+
+ .Header .description {
+ font-size: 18px;
+ color: #000000;
+ }
+
+ .header-inner .Header .titlewrapper {
+ padding: 22px 0;
+ }
+
+ .header-inner .Header .descriptionwrapper {
+ padding: 0 0;
+ }
+ /* Tabs
+----------------------------------------------- */
+
+ .tabs-inner .section:first-child {
+ border-top: 0 solid #dddddd;
+ }
+
+ .tabs-inner .section:first-child ul {
+ margin-top: -1px;
+ border-top: 1px solid #dddddd;
+ border-left: 1px solid #dddddd;
+ border-right: 1px solid #dddddd;
+ }
+
+ .tabs-inner .widget ul {
+ background: transparent none repeat-x scroll 0 -800px;
+ _background-image: none;
+ border-bottom: 1px solid #dddddd;
+ margin-top: 0;
+ margin-left: -30px;
+ margin-right: -30px;
+ }
+
+ .tabs-inner .widget li a {
+ display: inline-block;
+ padding: .6em 1em;
+ font: normal normal 12px 'Trebuchet MS', Trebuchet, Verdana, sans-serif;
+ color: #000000;
+ border-left: 1px solid #ffffff;
+ border-right: 1px solid #dddddd;
+ }
+
+ .tabs-inner .widget li:first-child a {
+ border-left: none;
+ }
+
+ .tabs-inner .widget li.selected a,
+ .tabs-inner .widget li a:hover {
+ color: #000000;
+ background-color: #eeeeee;
+ text-decoration: none;
+ }
+ /* Columns
+----------------------------------------------- */
+
+ .main-outer {
+ border-top: 0 solid transparent;
+ }
+
+ .fauxcolumn-left-outer .fauxcolumn-inner {
+ border-right: 1px solid transparent;
+ }
+
+ .fauxcolumn-right-outer .fauxcolumn-inner {
+ border-left: 1px solid transparent;
+ }
+ /* Headings
+----------------------------------------------- */
+
+ div.widget>h2,
+ div.widget h2.title {
+ margin: 0 0 1em 0;
+ font: normal bold 11px 'Trebuchet MS', Trebuchet, Verdana, sans-serif;
+ color: #000000;
+ }
+ /* Widgets
+----------------------------------------------- */
+
+ .widget .zippy {
+ color: #999999;
+ text-shadow: 2px 2px 1px rgba(0, 0, 0, .1);
+ }
+
+ .widget .popular-posts ul {
+ list-style: none;
+ }
+ /* Posts
+----------------------------------------------- */
+
+ h2.date-header {
+ font: normal bold 11px Arial, Tahoma, Helvetica, FreeSans, sans-serif;
+ }
+
+ .date-header span {
+ background-color: #bbbbbb;
+ color: #ffffff;
+ padding: 0.4em;
+ letter-spacing: 3px;
+ margin: inherit;
+ }
+
+ .main-inner {
+ padding-top: 35px;
+ padding-bottom: 65px;
+ }
+
+ .main-inner .column-center-inner {
+ padding: 0 0;
+ }
+
+ .main-inner .column-center-inner .section {
+ margin: 0 1em;
+ }
+
+ .post {
+ margin: 0 0 45px 0;
+ }
+
+ h3.post-title,
+ .comments h4 {
+ font: normal normal 22px 'Trebuchet MS', Trebuchet, Verdana, sans-serif;
+ margin: .75em 0 0;
+ }
+
+ .post-body {
+ font-size: 110%;
+ line-height: 1.4;
+ position: relative;
+ }
+
+ .post-body img,
+ .post-body .tr-caption-container,
+ .Profile img,
+ .Image img,
+ .BlogList .item-thumbnail img {
+ padding: 2px;
+ background: #ffffff;
+ border: 1px solid #eeeeee;
+ -moz-box-shadow: 1px 1px 5px rgba(0, 0, 0, .1);
+ -webkit-box-shadow: 1px 1px 5px rgba(0, 0, 0, .1);
+ box-shadow: 1px 1px 5px rgba(0, 0, 0, .1);
+ }
+
+ .post-body img,
+ .post-body .tr-caption-container {
+ padding: 5px;
+ }
+
+ .post-body .tr-caption-container {
+ color: #666666;
+ }
+
+ .post-body .tr-caption-container img {
+ padding: 0;
+ background: transparent;
+ border: none;
+ -moz-box-shadow: 0 0 0 rgba(0, 0, 0, .1);
+ -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, .1);
+ box-shadow: 0 0 0 rgba(0, 0, 0, .1);
+ }
+
+ .post-header {
+ margin: 0 0 1.5em;
+ line-height: 1.6;
+ font-size: 90%;
+ }
+
+ .post-footer {
+ margin: 20px -2px 0;
+ padding: 5px 10px;
+ color: #666666;
+ background-color: #eeeeee;
+ border-bottom: 1px solid #eeeeee;
+ line-height: 1.6;
+ font-size: 90%;
+ }
+
+ #comments .comment-author {
+ padding-top: 1.5em;
+ border-top: 1px solid transparent;
+ background-position: 0 1.5em;
+ }
+
+ #comments .comment-author:first-child {
+ padding-top: 0;
+ border-top: none;
+ }
+
+ .avatar-image-container {
+ margin: .2em 0 0;
+ }
+
+ #comments .avatar-image-container img {
+ border: 1px solid #eeeeee;
+ }
+ /* Comments
+----------------------------------------------- */
+
+ .comments .comments-content .icon.blog-author {
+ background-repeat: no-repeat;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEgAACxIB0t1+/AAAAAd0SU1FB9sLFwMeCjjhcOMAAAD+SURBVDjLtZSvTgNBEIe/WRRnm3U8RC1neQdsm1zSBIU9VVF1FkUguQQsD9ITmD7ECZIJSE4OZo9stoVjC/zc7ky+zH9hXwVwDpTAWWLrgS3QAe8AZgaAJI5zYAmc8r0G4AHYHQKVwII8PZrZFsBFkeRCABYiMh9BRUhnSkPTNCtVXYXURi1FpBDgArj8QU1eVXUzfnjv7yP7kwu1mYrkWlU33vs1QNu2qU8pwN0UpKoqokjWwCztrMuBhEhmh8bD5UDqur75asbcX0BGUB9/HAMB+r32hznJgXy2v0sGLBcyAJ1EK3LFcbo1s91JeLwAbwGYu7TP/3ZGfnXYPgAVNngtqatUNgAAAABJRU5ErkJggg==);
+ }
+
+ .comments .comments-content .loadmore a {
+ border-top: 1px solid #999999;
+ border-bottom: 1px solid #999999;
+ }
+
+ .comments .comment-thread.inline-thread {
+ background-color: #eeeeee;
+ }
+
+ .comments .continue {
+ border-top: 2px solid #999999;
+ }
+ /* Accents
+---------------------------------------------- */
+
+ .section-columns td.columns-cell {
+ border-left: 1px solid transparent;
+ }
+
+ .blog-pager {
+ background: transparent url(http://www.blogblog.com/1kt/simple/paging_dot.png) repeat-x scroll top center;
+ }
+
+ .blog-pager-older-link,
+ .home-link,
+ .blog-pager-newer-link {
+ background-color: #ffffff;
+ padding: 5px;
+ }
+
+ .footer-outer {
+ border-top: 1px dashed #bbbbbb;
+ }
+ /* Mobile
+----------------------------------------------- */
+
+ body.mobile {
+ background-size: auto;
+ }
+
+ .mobile .body-fauxcolumn-outer {
+ background: transparent none repeat scroll top left;
+ }
+
+ .mobile .body-fauxcolumn-outer .cap-top {
+ background-size: 100% auto;
+ }
+
+ .mobile .content-outer {
+ -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15);
+ box-shadow: 0 0 3px rgba(0, 0, 0, .15);
+ }
+
+ .mobile .tabs-inner .widget ul {
+ margin-left: 0;
+ margin-right: 0;
+ }
+
+ .mobile .post {
+ margin: 0;
+ }
+
+ .mobile .main-inner .column-center-inner .section {
+ margin: 0;
+ }
+
+ .mobile .date-header span {
+ padding: 0.1em 10px;
+ margin: 0 -10px;
+ }
+
+ .mobile h3.post-title {
+ margin: 0;
+ }
+
+ .mobile .blog-pager {
+ background: transparent none no-repeat scroll top center;
+ }
+
+ .mobile .footer-outer {
+ border-top: none;
+ }
+
+ .mobile .main-inner,
+ .mobile .footer-inner {
+ background-color: #ffffff;
+ }
+
+ .mobile-index-contents {
+ color: #666666;
+ }
+
+ .mobile-link-button {
+ background-color: #2288bb;
+ }
+
+ .mobile-link-button a:link,
+ .mobile-link-button a:visited {
+ color: #ffffff;
+ }
+
+ .mobile .tabs-inner .section:first-child {
+ border-top: none;
+ }
+
+ .mobile .tabs-inner .PageList .widget-content {
+ background-color: #eeeeee;
+ color: #000000;
+ border-top: 1px solid #dddddd;
+ border-bottom: 1px solid #dddddd;
+ }
+
+ .mobile .tabs-inner .PageList .widget-content .pagelist-arrow {
+ border-left: 1px solid #dddddd;
+ }
+
+ .codescroll {
+ overflow-x: scroll;
+ overflow-y: scroll;
+ max-height: 500px;
+ max-width: 500px;
+ }
+
+ -->
+ </style>
+ <style id='template-skin-1' type='text/css'>
+ <!-- body {
+ min-width: 1120px;
+ }
+
+ .content-outer,
+ .content-fauxcolumn-outer,
+ .region-inner {
+ min-width: 1120px;
+ max-width: 1120px;
+ _width: 1120px;
+ }
+
+ .main-inner .columns {
+ padding-left: 0px;
+ padding-right: 260px;
+ }
+
+ .main-inner .fauxcolumn-center-outer {
+ left: 0px;
+ right: 260px;
+ /* IE6 does not respect left and right together */
+ _width: expression(this.parentNode.offsetWidth - parseInt("0px") - parseInt("260px") + 'px');
+ }
+
+ .main-inner .fauxcolumn-left-outer {
+ width: 0px;
+ }
+
+ .main-inner .fauxcolumn-right-outer {
+ width: 260px;
+ }
+
+ .main-inner .column-left-outer {
+ width: 0px;
+ right: 100%;
+ margin-left: -0px;
+ }
+
+ .main-inner .column-right-outer {
+ width: 260px;
+ margin-right: -260px;
+ }
+
+ #layout {
+ min-width: 0;
+ }
+
+ #layout .content-outer {
+ min-width: 0;
+ width: 800px;
+ }
+
+ #layout .region-inner {
+ min-width: 0;
+ width: auto;
+ }
+
+ -->
+ </style>
+ <script type="text/javascript">
+ function a() {
+ var b = window.location.href,
+ c = b.split("?");
+ switch (c.length) {
+ case 1:
+ return b + "?m=1";
+ case 2:
+ return 0 &lt;= c[1].search("(^|&)m=") ? null : b + "&m=1";
+ default:
+ return null
+ }
+ }
+ var d = navigator.userAgent;
+ if (-1 != d.indexOf("Mobile") && -1 != d.indexOf("WebKit") && -1 == d.indexOf("iPad") || -1 != d.indexOf("Opera Mini") || -1 != d.indexOf("IEMobile")) {
+ var e = a();
+ e && window.location.replace(e)
+ };
+ </script>
+</head>
+
+<body class='loading variant-simplysimple'>
+ <div class='navbar section' id='navbar'>
+ <div class='widget Navbar' data-version='1' id='Navbar1'>
+ <script type="text/javascript">
+ function setAttributeOnload(object, attribute, val) {
+ if (window.addEventListener) {
+ window.addEventListener('load',
+ function() {
+ object[attribute] = val;
+ }, false);
+ } else {
+ window.attachEvent('onload', function() {
+ object[attribute] = val;
+ });
+ }
+ }
+ </script>
+ <div id="navbar-iframe-container"></div>
+ <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
+ <script type="text/javascript">
+ gapi.load("gapi.iframes:gapi.iframes.style.bubble", function() {
+ if (gapi.iframes && gapi.iframes.getContext) {
+ gapi.iframes.getContext().openChild({
+ url: 'https://www.blogger.com/navbar.g?targetBlogID\x3d175004091875960054\x26blogName\x3dSilicon+Exposed\x26publishMode\x3dPUBLISH_MODE_BLOGSPOT\x26navbarType\x3dBLUE\x26layoutType\x3dLAYOUTS\x26searchRoot\x3dhttp://siliconexposed.blogspot.com/search\x26blogLocale\x3den\x26v\x3d2\x26homepageUrl\x3dhttp://siliconexposed.blogspot.com/\x26targetPostID\x3d932306423056216142\x26blogPostOrPageUrl\x3dhttp://siliconexposed.blogspot.com/2016/05/open-verilog-flow-for-silego-greenpak4.html\x26vt\x3d-765651877583110938',
+ where: document.getElementById("navbar-iframe-container"),
+ id: "navbar-iframe"
+ });
+ }
+ });
+ </script>
+ <script type="text/javascript">
+ (function() {
+ var script = document.createElement('script');
+ script.type = 'text/javascript';
+ script.src = '//pagead2.googlesyndication.com/pagead/js/google_top_exp.js';
+ var head = document.getElementsByTagName('head')[0];
+ if (head) {
+ head.appendChild(script);
+ }
+ })();
+ </script>
+ </div>
+ </div>
+ <link href='http://alexgorbatchev.com/pub/sh/2.1.364/styles/shCore.css' rel='stylesheet' type='text/css' />
+ <link href='http://alexgorbatchev.com/pub/sh/2.1.364/styles/shThemeDefault.css' rel='stylesheet' type='text/css' />
+ <script src='http://alexgorbatchev.com/pub/sh/2.1.364/scripts/shCore.js' type='text/javascript'></script>
+ <script src='http://alexgorbatchev.com/pub/sh/2.1.364/scripts/shBrushCpp.js' type='text/javascript'></script>
+ <script src='http://alexgorbatchev.com/pub/sh/2.1.364/scripts/shBrushCSharp.js' type='text/javascript'></script>
+ <script src='http://alexgorbatchev.com/pub/sh/2.1.364/scripts/shBrushCss.js' type='text/javascript'></script>
+ <script src='http://alexgorbatchev.com/pub/sh/2.1.364/scripts/shBrushJava.js' type='text/javascript'></script>
+ <script src='http://alexgorbatchev.com/pub/sh/2.1.364/scripts/shBrushJScript.js' type='text/javascript'></script>
+ <script src='http://alexgorbatchev.com/pub/sh/2.1.364/scripts/shBrushPhp.js' type='text/javascript'></script>
+ <script src='http://alexgorbatchev.com/pub/sh/2.1.364/scripts/shBrushPython.js' type='text/javascript'></script>
+ <script src='http://alexgorbatchev.com/pub/sh/2.1.364/scripts/shBrushRuby.js' type='text/javascript'></script>
+ <script src='http://alexgorbatchev.com/pub/sh/2.1.364/scripts/shBrushSql.js' type='text/javascript'></script>
+ <script src='http://alexgorbatchev.com/pub/sh/2.1.364/scripts/shBrushVb.js' type='text/javascript'></script>
+ <script src='http://alexgorbatchev.com/pub/sh/2.1.364/scripts/shBrushXml.js' type='text/javascript'></script>
+ <script src='http://alexgorbatchev.com/pub/sh/2.1.364/scripts/shBrushPerl.js' type='text/javascript'></script>
+ <script language='javascript'>
+ SyntaxHighlighter.config.bloggerMode = true;
+ //SyntaxHighlighter.config.clipboardSwf = 'http://alexgorbatchev.com/pub/sh/2.1.364/scripts/clipboard.swf';
+ SyntaxHighlighter.all();
+ </script>
+ <div class='body-fauxcolumns'>
+ <div class='fauxcolumn-outer body-fauxcolumn-outer'>
+ <div class='cap-top'>
+ <div class='cap-left'></div>
+ <div class='cap-right'></div>
+ </div>
+ <div class='fauxborder-left'>
+ <div class='fauxborder-right'></div>
+ <div class='fauxcolumn-inner'>
+ </div>
+ </div>
+ <div class='cap-bottom'>
+ <div class='cap-left'></div>
+ <div class='cap-right'></div>
+ </div>
+ </div>
+ </div>
+ <div class='content'>
+ <div class='content-fauxcolumns'>
+ <div class='fauxcolumn-outer content-fauxcolumn-outer'>
+ <div class='cap-top'>
+ <div class='cap-left'></div>
+ <div class='cap-right'></div>
+ </div>
+ <div class='fauxborder-left'>
+ <div class='fauxborder-right'></div>
+ <div class='fauxcolumn-inner'>
+ </div>
+ </div>
+ <div class='cap-bottom'>
+ <div class='cap-left'></div>
+ <div class='cap-right'></div>
+ </div>
+ </div>
+ </div>
+ <div class='content-outer'>
+ <div class='content-cap-top cap-top'>
+ <div class='cap-left'></div>
+ <div class='cap-right'></div>
+ </div>
+ <div class='fauxborder-left content-fauxborder-left'>
+ <div class='fauxborder-right content-fauxborder-right'></div>
+ <div class='content-inner'>
+ <header>
+ <div class='header-outer'>
+ <div class='header-cap-top cap-top'>
+ <div class='cap-left'></div>
+ <div class='cap-right'></div>
+ </div>
+ <div class='fauxborder-left header-fauxborder-left'>
+ <div class='fauxborder-right header-fauxborder-right'></div>
+ <div class='region-inner header-inner'>
+ <div class='header section' id='header'>
+ <div class='widget Header' data-version='1' id='Header1'>
+ <div id='header-inner'>
+ <div class='titlewrapper'>
+ <h1 class='title'>
+ <a href='http://siliconexposed.blogspot.tw/'>Silicon Exposed</a>
+ </h1>
+ </div>
+ <div class='descriptionwrapper'>
+ <p class='description'><span>
+</span></p>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class='header-cap-bottom cap-bottom'>
+ <div class='cap-left'></div>
+ <div class='cap-right'></div>
+ </div>
+ </div>
+ </header>
+ <div class='tabs-outer'>
+ <div class='tabs-cap-top cap-top'>
+ <div class='cap-left'></div>
+ <div class='cap-right'></div>
+ </div>
+ <div class='fauxborder-left tabs-fauxborder-left'>
+ <div class='fauxborder-right tabs-fauxborder-right'></div>
+ <div class='region-inner tabs-inner'>
+ <div class='tabs no-items section' id='crosscol'></div>
+ <div class='tabs no-items section' id='crosscol-overflow'></div>
+ </div>
+ </div>
+ <div class='tabs-cap-bottom cap-bottom'>
+ <div class='cap-left'></div>
+ <div class='cap-right'></div>
+ </div>
+ </div>
+ <div class='main-outer'>
+ <div class='main-cap-top cap-top'>
+ <div class='cap-left'></div>
+ <div class='cap-right'></div>
+ </div>
+ <div class='fauxborder-left main-fauxborder-left'>
+ <div class='fauxborder-right main-fauxborder-right'></div>
+ <div class='region-inner main-inner'>
+ <div class='columns fauxcolumns'>
+ <div class='fauxcolumn-outer fauxcolumn-center-outer'>
+ <div class='cap-top'>
+ <div class='cap-left'></div>
+ <div class='cap-right'></div>
+ </div>
+ <div class='fauxborder-left'>
+ <div class='fauxborder-right'></div>
+ <div class='fauxcolumn-inner'>
+ </div>
+ </div>
+ <div class='cap-bottom'>
+ <div class='cap-left'></div>
+ <div class='cap-right'></div>
+ </div>
+ </div>
+ <div class='fauxcolumn-outer fauxcolumn-left-outer'>
+ <div class='cap-top'>
+ <div class='cap-left'></div>
+ <div class='cap-right'></div>
+ </div>
+ <div class='fauxborder-left'>
+ <div class='fauxborder-right'></div>
+ <div class='fauxcolumn-inner'>
+ </div>
+ </div>
+ <div class='cap-bottom'>
+ <div class='cap-left'></div>
+ <div class='cap-right'></div>
+ </div>
+ </div>
+ <div class='fauxcolumn-outer fauxcolumn-right-outer'>
+ <div class='cap-top'>
+ <div class='cap-left'></div>
+ <div class='cap-right'></div>
+ </div>
+ <div class='fauxborder-left'>
+ <div class='fauxborder-right'></div>
+ <div class='fauxcolumn-inner'>
+ </div>
+ </div>
+ <div class='cap-bottom'>
+ <div class='cap-left'></div>
+ <div class='cap-right'></div>
+ </div>
+ </div>
+ <!-- corrects IE6 width calculation -->
+ <div class='columns-inner'>
+ <div class='column-center-outer'>
+ <div class='column-center-inner'>
+ <div class='main section' id='main'>
+ <div class='widget Blog' data-version='1' id='Blog1'>
+ <div class='blog-posts hfeed'>
+
+ <div class="date-outer">
+
+ <h2 class='date-header'><span>Sunday, May 8, 2016</span></h2>
+
+ <div class="date-posts">
+
+ <div class='post-outer'>
+ <div class='post hentry' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'>
+ <meta content='https://1.bp.blogspot.com/-YIPC5jkXkDE/Vy7YPSqFKWI/AAAAAAAAAxI/a7D6Ji2GxoUvcrwUkI4RLZcr2LFQEJCTACLcB/s640/block-diagram.png' itemprop='image_url' />
+ <meta content='175004091875960054' itemprop='blogId' />
+ <meta content='932306423056216142' itemprop='postId' />
+ <a name='932306423056216142'></a>
+ <h3 class='post-title entry-title' itemprop='name'>
+ Open Verilog flow for Silego GreenPak4 programmable logic devices
+ </h3>
+ <div class='post-header'>
+ <div class='post-header-line-1'></div>
+ </div>
+ <div class='post-body entry-content' id='post-body-932306423056216142' itemprop='description articleBody'>
+ I've written a couple of posts in the past few months but they were all for <a href="http://blog.ioactive.com/search/label/Andrew%20Zonenberg">the blog at work</a> so I figured I'm long overdue for one on Silicon Exposed.<br />
+ <br />
+ <h2>
+ So what's a GreenPak?</h2>
+ <br /> Silego Technology is a fabless semiconductor company located in the SF Bay area, which makes (among other things) a line of programmable logic devices known as GreenPak. Their <a href="http://www.silego.com/products/greenpak5.html">5th generation parts</a> were just announced, but I started this project before that happened so I'm still targeting the <a href="http://www.silego.com/products/greenpak4.html">4th generation</a>.<br />
+ <br /> GreenPak devices are kind of like itty bitty <a href="http://www.cypress.com/products/32-bit-arm-cortex-m-psoc">PSoCs</a> - they have a mixed signal fabric with an ADC, DACs, comparators, voltage references, plus a digital LUT/FF fabric and some typical digital MCU peripherals like counters and oscillators (but no CPU).<br />
+ <br /> It's actually an interesting architecture - FPGAs (including some devices marketed as CPLDs) are a 2D array of LUTs connected via wires to adjacent cells, and true (product term) CPLDs are a star topology of AND-OR arrays connected by a crossbar. GreenPak, on the other hand, is a star topology of LUTs, flipflops, and analog/digital hard IP connected to a crossbar.<br />
+ <br /> Without further ado, here's a block diagram showing all the cool stuff you get in the SLG46620V:<br />
+ <br />
+ <table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;">
+ <tbody>
+ <tr>
+ <td style="text-align: center;">
+ <a href="https://1.bp.blogspot.com/-YIPC5jkXkDE/Vy7YPSqFKWI/AAAAAAAAAxI/a7D6Ji2GxoUvcrwUkI4RLZcr2LFQEJCTACLcB/s1600/block-diagram.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="512" src="https://1.bp.blogspot.com/-YIPC5jkXkDE/Vy7YPSqFKWI/AAAAAAAAAxI/a7D6Ji2GxoUvcrwUkI4RLZcr2LFQEJCTACLcB/s640/block-diagram.png" width="640" /></a>
+ </td>
+ </tr>
+ <tr>
+ <td class="tr-caption" style="text-align: center;">SLG46620V block diagram (from device datasheet)</td>
+ </tr>
+ </tbody>
+ </table>
+ They're also tiny (the SLG46620V is a 20-pin 0.4mm pitch STQFN measuring 2x3 mm, and the lower gate count SLG46140V is a mere 1.6x2 mm) and probably the cheapest programmable logic device on the market - $0.50 in low volume and less than $0.40 in larger quantities.<br />
+ <br /> The Vdd range of GreenPak4 is huge, more like what you'd expect from an MCU than an FPGA! It can run on anything from 1.8 to 5V, although performance is only specified at 1.8, 3.3, and 5V nominal voltages. There's also a dual-rail version that trades one of the GPIO pins for a second power supply pin, allowing you to interface to logic at two different voltage levels.<br />
+ <br /> To support low-cost/space-constrained applications, they even have the configuration memory on die. It's one-time programmable and needs external Vpp to program (presumably Silego didn't want to waste die area on charge pumps that would only be used once) but has a SRAM programming mode for prototyping.<br />
+ <br /> The best part is that the development software (GreenPak Designer) is free of charge and provided for all major operating systems including Linux! Unfortunately, the only supported design entry method is schematic entry and there's no way to write your design in a HDL.<br />
+ <br /> While schematics may be fine for quick tinkering on really simple designs, they quickly get unwieldy. The nightmare of a circuit shown below is just a bunch of counters hooked up to LEDs that blink at various rates.<br />
+ <br />
+ <table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;">
+ <tbody>
+ <tr>
+ <td style="text-align: center;">
+ <a href="https://1.bp.blogspot.com/-k3naUT3uXao/Vy7WFac246I/AAAAAAAAAw8/mePy_ostO8QJra5ZJrbP2WGhTlJ0B_r8gCLcB/s1600/schematic-from-hell.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="334" src="https://1.bp.blogspot.com/-k3naUT3uXao/Vy7WFac246I/AAAAAAAAAw8/mePy_ostO8QJra5ZJrbP2WGhTlJ0B_r8gCLcB/s640/schematic-from-hell.png" width="640" /></a>
+ </td>
+ </tr>
+ <tr>
+ <td class="tr-caption" style="text-align: center;">Schematic from hell!</td>
+ </tr>
+ </tbody>
+ </table>
+ As if this wasn't enough of a problem, the largest GreenPak4 device (the SLG46620V) is split into two halves with limited routing between them, and the GUI doesn't help the user manage this complexity at all - you have to draw your schematic in two halves and add "cross connections" between them.<br />
+ <br /> The icing on the cake is that schematics are a pain to diff and collaborate on. Although GreenPak schematics are XML based, which is a touch better than binary, who wants to read a giant XML diff and try to figure out what's going on in the circuit?<br />
+ <br /> This isn't going to be a post on the quirks of Silego's software, though - that would be boring. As it turns out, there's one more exciting feature of these chips that I didn't mention earlier: the configuration bitstream is 100% documented in the device datasheet! This is unheard of in the programmable logic world. As Nick of Arachnid Labs <a href="http://www.arachnidlabs.com/blog/2015/03/30/greenpak/">says</a>, the chip is "just dying for someone to write a VHDL or Verilog compiler for it". As you can probably guess by from the title of this post, I've been busy doing exactly that.<br />
+ <br />
+ <h2>
+ Great! How does it work?</h2>
+ <br /> Rather than wasting time writing a synthesizer, I decided to write a GreenPak technology library for Clifford Wolf's excellent open source synthesis tool, <a href="http://www.clifford.at/yosys/">Yosys</a>, and then make a place-and-route tool to turn that into a final netlist. The post-PAR netlist can then be loaded into GreenPak Designer in order to program the device.<br />
+ <br /> The first step of the process is to run the "synth_greenpak4" Yosys flow on the Verilog source. This runs a generic RTL synthesis pass, then some coarse-grained extraction passes to infer shift register and counter cells from behavioral logic, and finally maps the remaining logic to LUT/FF cells and outputs a JSON-formatted netlist.<br />
+ <br /> Once the design has been synthesized, my tool (named, surprisingly, gp4par) is then launched on the netlist. It begins by parsing the JSON and constructing a directed graph of cell objects in memory. A second graph, containing all of the primitives in the device and the legal connections between them, is then created based on the device specified on the command line. (As of now only the SLG46620V is supported; the SLG46621V can be added fairly easily but the SLG46140V has a slightly different microarchitecture which will require a bit more work to support.)<br />
+ <br /> After the graphs are generated, each node in the netlist graph is assigned a numeric label identifying the type of cell and each node in the device graph is assigned a list of legal labels: for example, an I/O buffer site is legal for an input buffer, output buffer, or bidirectional buffer.<br />
+ <br />
+ <table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;">
+ <tbody>
+ <tr>
+ <td style="text-align: center;">
+ <a href="https://2.bp.blogspot.com/-kIekczO693g/Vy7dBqYifXI/AAAAAAAAAxc/hMNJBs5bedIQOrBzzkhq4gbmhR-n58EQwCLcB/s1600/graph-labels.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="141" src="https://2.bp.blogspot.com/-kIekczO693g/Vy7dBqYifXI/AAAAAAAAAxc/hMNJBs5bedIQOrBzzkhq4gbmhR-n58EQwCLcB/s400/graph-labels.png" width="400" /></a>
+ </td>
+ </tr>
+ <tr>
+ <td class="tr-caption" style="text-align: center;">Example labeling for a subset of the netlist and device graphs</td>
+ </tr>
+ </tbody>
+ </table>
+ The labeled nodes now need to be placed. The initial placement uses a simple greedy algorithm to create a valid (although not necessarily optimal or even routable) placement:<br />
+ <ol>
+ <li>Loop over the cells in the netlist. If any cell has a LOC constraint, which locks the cell to a specific physical site, attempt to assign the node to the specified site. If the specified node is the wrong type, doesn't exist, or is already used by another constrained node, the constraint is invalid so fail with an error.</li>
+ <li>Loop over all of the unconstrained cells in the netlist and assign them to the first unused site with the right label. If none are available, the design is too big for the device so fail with an error.</li>
+ </ol>
+ Once the design is placed, the placement optimizer then loops over the design and attempts to improve it. A simulated annealing algorithm is used, where changes to the design are accepted unconditionally if they make the placement better, and with a random, gradually decreasing probability if they make it worse. The optimizer terminates when the design receives a perfect score (indicating an optimal placement) or if it stops making progress for several iterations. Each iteration does the following:<br />
+ <ol>
+ <li>Compute a score for the current design based on the number of unroutable nets, the amount of routing congestion (number of nets crossing between halves of the device), and static timing analysis (not yet implemented, always zero).</li>
+ <li>Make a list of nodes that contributed to this score in some way (having some attached nets unroutable, crossing to the other half of the device, or failing timing).</li>
+ <li>Remove nodes from the list that are LOC'd to a specific location since we're not allowed to move them.</li>
+ <li>Remove nodes from the list that have only one legal placement in the device (for example, oscillator hard IP) since there's nowhere else for them to go.</li>
+ <li>Pick a node from the remainder of the list at random. Call this our pivot.</li>
+ <li>Find a list of candidate placements for the pivot: </li>
+ <ol>
+ <li>Consider all routable placements in the other half of the device.</li>
+ <li>If none were found, consider all routable placements anywhere in the device.</li>
+ <li>If none were found, consider all placements anywhere in the device even if they're not routable.</li>
+ </ol>
+ <li>Pick one of the candidates at random and move the pivot to that location. If another cell in the netlist is already there, put it in the vacant site left by the pivot.</li>
+ <li>Re-compute the score for the design. If it's better, accept this change and start the next iteration.</li>
+ <li>If the score is worse, accept it with a random probability which decreases as the iteration number goes up. If the change is not accepted, restore the previous placement.</li>
+ </ol>
+ After optimization, the design is checked for routability. If any edges in the netlist graph don't correspond to edges in the device graph, the user probably asked for something impossible (for example, trying to hook a flipflop's output to a comparator's reference voltage input) so fail with an error.<br />
+ <br /> The design is then routed. This is quite simple due to the crossbar structure of the device. For each edge in the netlist:<br />
+ <ol>
+ <li>If dedicated (non-fabric) routing is used for this path, configure the destination's input mux appropriately and stop.</li>
+ <li>If the source and destination are in the same half of the device, configure the destination's input mux appropriately and stop.</li>
+ <li>A cross-connection must be used. Check if we already used one to bring the source signal to the other half of the device. If found, configure the destination to route from that cross-connection and stop.</li>
+ <li>Check if we have any cross-connections left going in this direction. If they're all used, the design is unroutable due to congestion so fail with an error.</li>
+ <li>Pick the next unused cross-connection and configure it to route from the source. Configure the destination to route from the cross-connection and stop.</li>
+ </ol>
+ Once routing is finished, run a series of post-PAR design rule checks. These currently include the following:<br />
+ <ul>
+ <li>If any node has no loads, generate a warning</li>
+ <li>If an I/O buffer is connected to analog hard IP, fail with an error if it's not configured in analog mode.</li>
+ <li>Some signals (such as comparator inputs and oscillator power-down controls) are generated by a shared mux and fed to many loads. If different loads require conflicting settings for the shared mux, fail with an error.</li>
+ </ul>
+ If DRC passes with no errors, configure all of the individual cells in the netlist based on the HDL parameters. Fail with an error if an invalid configuration was requested.<br />
+ <br /> Finally, generate the bitstream from all of the per-cell configuration and write it to a file.<br />
+ <br />
+ <h2>
+ Great, let's get started!</h2>
+ If you don't already have one, you'll need to buy a <a href="http://www.silego.com/buy/index.php?main_page=product_info&amp;products_id=388">GreenPak4 development kit</a>. The kit includes samples of the SLG46620V (among other devices) and a programmer/emulation board. While you're waiting for it to arrive, install <a href="http://www.silego.com/softdoc/software.html">GreenPak Designer</a>.<br />
+ <br /> Download and install Yosys. Although Clifford is pretty good at merging my pull requests, only <a href="https://github.com/azonenberg/yosys/">my fork on Github</a> is guaranteed to have the most up-to-date support for GreenPak devices so don't be surprised if you can't use a bleeding-edge feature with mainline Yosys.<br />
+ <br /> Download and install gp4par. You can get it from <a href="https://github.com/azonenberg/openfpga/">the Github repository</a>.<br />
+ <br /> Write your HDL, compile with Yosys, P&amp;R with gp4par, and import the bitstream into GreenPak Designer to program the target device. The most current gp4par manual is included in LaTeX source form in the source tree and is automatically built as part of the compile process. If you're just browsing, there's a <a href="http://thanatos.virtual.antikernel.net/unlisted/gp4-hdl.pdf">relatively recent PDF version</a> on my web server.<br />
+ <br /> If you'd like to see the Verilog that produced the nightmare of a schematic I showed above, <a href="https://github.com/azonenberg/openfpga/blob/master/tests/greenpak4/Blinky/Blinky.v">here it is</a>.<br />
+ <br /> Be advised that this project is still very much a work in progress and there are still a number of SLG46620V features I don't support (see the manual for exact details).<br />
+ <br />
+ <h2>
+ I love it / it segfaulted / there's a problem in the manual!</h2>
+ Hop in our IRC channel (##openfpga on Freenode) and let me know. Feedback is great, pull requests are even better,<br />
+ <br />
+ <h2>
+ You're competing with Silego's IDE. Have they found out and sued you yet?</h2>
+ Nope. They're fully aware of what I'm doing and are rolling out the red carpet for me. They love the idea of a HDL flow as an alternative to schematic entry and are pretty amazed at how fast it's coming together.<br />
+ <br /> After I reported a few bugs in their datasheets they decided to skip the middleman and give me direct access to the engineer who writes their documentation so that I can get faster responses. The last time I found a problem (two different parts of the datasheet contradicted each other) an updated datasheet was in my inbox and on their website by the next day. I only wish Xilinx gave me that kind of treatment!<br />
+ <br /> They've even <a href="https://twitter.com/SilegoTech/status/717018987771469824">offered me free hardware</a> to help me add support for their latest product family, although I plan to get GreenPak4 support to a more stable state before taking them up on the offer.<br />
+ <br />
+ <h2>
+ So what's next?</h2>
+ <br /> Better testing, for starters. I have to verify functionality by hand with a DMM and oscilloscope, which is time consuming.<br />
+ <br /> My contact at Silego says they're going to be giving me documentation on the SRAM emulation interface soon, so I'm going to make a hardware-in-loop test platform that connects to my desktop and the Silego ZIF socket, and lets me load new bitstreams via a scriptable interface. It'll have FPGA-based digital I/O as well as an ADC and DAC on every device pin, plus an adjustable voltage regulator for power, so I can feed in arbitrary mixed-signal test waveforms and write PC-based unit tests to verify correct behavior.<br />
+ <br /> Other than that, I want to finish support for the SLG46620V in the next month or two. The SLG46621V will be an easy addition since only one pin and the relevant configuration bits have changed from the 46620 (I suspect they're the same die, just bonded out differently).<br />
+ <br /> Once that's done I'll have to do some more extensive work to add the SLG46140V since the architecture is a bit different (a lot of the combinatorial logic is merged into multi-function blocks). Luckily, the 46140 has a lot in common architecturally with the GreenPak5 family, so once that's done GreenPak5 will probably be a lot easier to add support for.<br />
+ <br /> My thanks go out to Clifford Wolf, whitequark, the IRC users in ##openfpga, and everyone at Silego I've worked with to help make this possible. I hope that one day this project will become mature enough that Silego will ship it as an officially supported extension to GreenPak Designer, making history by becoming the first modern programmable logic vendor to ship a fully open source synthesis and P&amp;R suite.
+ <div style='clear: both;'></div>
+ </div>
+ <div class='post-footer'>
+ <div class='post-footer-line post-footer-line-1'><span class='post-author vcard'>
+Posted by
+<span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'>
+<meta content='https://www.blogger.com/profile/16821509563933020441' itemprop='url'/>
+<a class='g-profile' href='https://www.blogger.com/profile/16821509563933020441' rel='author' title='author profile'>
+<span itemprop='name'>Andrew Zonenberg</span>
+ </a>
+ </span>
+ </span>
+ <span class='post-timestamp'>
+at
+<meta content='http://siliconexposed.blogspot.com/2016/05/open-verilog-flow-for-silego-greenpak4.html' itemprop='url'/>
+<a class='timestamp-link' href='http://siliconexposed.blogspot.tw/2016/05/open-verilog-flow-for-silego-greenpak4.html' rel='bookmark' title='permanent link'><abbr class='published' itemprop='datePublished' title='2016-05-08T00:55:00-07:00'>12:55 AM</abbr></a>
+</span>
+ <span class='post-comment-link'>
+</span>
+ <span class='post-icons'>
+<span class='item-control blog-admin pid-382886925'>
+<a href='https://www.blogger.com/post-edit.g?blogID=175004091875960054&postID=932306423056216142&from=pencil' title='Edit Post'>
+<img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/>
+</a>
+</span>
+ </span>
+ <div class='post-share-buttons goog-inline-block'>
+ <a class='goog-inline-block share-button sb-email' href='https://www.blogger.com/share-post.g?blogID=175004091875960054&postID=932306423056216142&target=email' target='_blank' title='Email This'><span class='share-button-link-text'>Email This</span></a><a class='goog-inline-block share-button sb-blog' href='https://www.blogger.com/share-post.g?blogID=175004091875960054&postID=932306423056216142&target=blog' onclick='window.open(this.href, "_blank", "height=270,width=475"); return false;' target='_blank' title='BlogThis!'><span class='share-button-link-text'>BlogThis!</span></a><a class='goog-inline-block share-button sb-twitter' href='https://www.blogger.com/share-post.g?blogID=175004091875960054&postID=932306423056216142&target=twitter' target='_blank' title='Share to Twitter'><span class='share-button-link-text'>Share to Twitter</span></a><a class='goog-inline-block share-button sb-facebook' href='https://www.blogger.com/share-post.g?blogID=175004091875960054&postID=932306423056216142&target=facebook' onclick='window.open(this.href, "_blank", "height=430,width=640"); return false;' target='_blank' title='Share to Facebook'><span class='share-button-link-text'>Share to Facebook</span></a><a class='goog-inline-block share-button sb-pinterest' href='https://www.blogger.com/share-post.g?blogID=175004091875960054&postID=932306423056216142&target=pinterest' target='_blank' title='Share to Pinterest'><span class='share-button-link-text'>Share to Pinterest</span></a>
+ <div class='goog-inline-block google-plus-share-container'>
+ <g:plusone source='blogger:blog:plusone' href='http://siliconexposed.blogspot.com/2016/05/open-verilog-flow-for-silego-greenpak4.html' size='medium' width='300' annotation='inline' />
+ </div>
+ </div>
+ </div>
+ <div class='post-footer-line post-footer-line-2'><span class='post-labels'>
+Labels:
+<a href='http://siliconexposed.blogspot.tw/search/label/FPGA' rel='tag'>FPGA</a>,
+<a href='http://siliconexposed.blogspot.tw/search/label/Tools' rel='tag'>Tools</a>
+</span>
+ </div>
+ <div class='post-footer-line post-footer-line-3'></div>
+ </div>
+ </div>
+ <div class='comments' id='comments'>
+ <a name='comments'></a>
+ <h4>No comments:</h4>
+ <div id='Blog1_comments-block-wrapper'>
+ <dl class='avatar-comment-indent' id='comments-block'>
+ </dl>
+ </div>
+ <p class='comment-footer'>
+ <div class='comment-form'>
+ <a name='comment-form'></a>
+ <h4 id='comment-post-message'>Post a Comment</h4>
+ <p>
+ </p>
+ <a href='https://www.blogger.com/comment-iframe.g?blogID=175004091875960054&postID=932306423056216142' id='comment-editor-src'></a>
+ <iframe allowtransparency='true' class='blogger-iframe-colorize blogger-comment-from-post' frameborder='0' height='410px' id='comment-editor' name='comment-editor' src='' width='100%'></iframe>
+ <script type="text/javascript" src="https://www.blogger.com/static/v1/jsbin/2870402004-comment_from_post_iframe.js"></script>
+ <script type='text/javascript'>
+ BLOG_CMT_createIframe('https://www.blogger.com/rpc_relay.html');
+ </script>
+ </div>
+ </p>
+ <div id='backlinks-container'>
+ <div id='Blog1_backlinks-container'>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ </div>
+ </div>
+
+ </div>
+ <div class='blog-pager' id='blog-pager'>
+ <span id='blog-pager-older-link'>
+<a class='blog-pager-older-link' href='http://siliconexposed.blogspot.tw/2015/10/new-gpg-key.html' id='Blog1_blog-pager-older-link' title='Older Post'>Older Post</a>
+</span>
+ <a class='home-link' href='http://siliconexposed.blogspot.tw/'>Home</a>
+ </div>
+ <div class='clear'></div>
+ <div class='post-feeds'>
+ <div class='feed-links'>
+ Subscribe to:
+ <a class='feed-link' href='http://siliconexposed.blogspot.com/feeds/932306423056216142/comments/default' target='_blank' type='application/atom+xml'>Post Comments (Atom)</a>
+ </div>
+ </div>
+ <script type="text/javascript">
+ window.___gcfg = {
+ 'lang': 'en'
+ };
+ </script>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class='column-left-outer'>
+ <div class='column-left-inner'>
+ <aside>
+ </aside>
+ </div>
+ </div>
+ <div class='column-right-outer'>
+ <div class='column-right-inner'>
+ <aside>
+ <div class='sidebar section' id='sidebar-right-1'>
+ <div class='widget LinkList' data-version='1' id='LinkList1'>
+ <h2>References</h2>
+ <div class='widget-content'>
+ <ul>
+ <li><a href='http://www.twitter.com/azonenberg/'>My twitter</a></li>
+ <li><a href='http://security.cs.rpi.edu/courses/hwre-spring2014/'>CSCI 6974 - Hardware Reverse Engineering</a></li>
+ <li><a href='http://siliconpr0n.org/'>Silicon Pr0n</a></li>
+ <li><a href='http://uvicrec.blogspot.com/'>John McMaster</a></li>
+ <li><a href='http://cmosfold.blogspot.com/'>CMOSfold</a></li>
+ </ul>
+ <div class='clear'></div>
+ <span class='widget-item-control'>
+<span class='item-control blog-admin'>
+<a class='quickedit' href='//www.blogger.com/rearrange?blogID=175004091875960054&widgetType=LinkList&widgetId=LinkList1&action=editWidget&sectionId=sidebar-right-1' onclick='return _WidgetManager._PopupConfig(document.getElementById("LinkList1"));' target='configLinkList1' title='Edit'>
+<img alt='' height='18' src='https://resources.blogblog.com/img/icon18_wrench_allbkg.png' width='18'/>
+</a>
+</span>
+ </span>
+ <div class='clear'></div>
+ </div>
+ </div>
+ <div class='widget BlogArchive' data-version='1' id='BlogArchive1'>
+ <h2>Blog Archive</h2>
+ <div class='widget-content'>
+ <div id='ArchiveList'>
+ <div id='BlogArchive1_ArchiveList'>
+ <ul class='hierarchy'>
+ <li class='archivedate expanded'>
+ <a class='toggle' href='javascript:void(0)'>
+ <span class='zippy toggle-open'>
+
+ &#9660;&#160;
+
+</span>
+ </a>
+ <a class='post-count-link' href='http://siliconexposed.blogspot.tw/search?updated-min=2016-01-01T00:00:00-08:00&amp;updated-max=2017-01-01T00:00:00-08:00&amp;max-results=1'>
+2016
+</a>
+ <span class='post-count' dir='ltr'>(1)</span>
+ <ul class='hierarchy'>
+ <li class='archivedate expanded'>
+ <a class='toggle' href='javascript:void(0)'>
+ <span class='zippy toggle-open'>
+
+ &#9660;&#160;
+
+</span>
+ </a>
+ <a class='post-count-link' href='http://siliconexposed.blogspot.tw/2016_05_01_archive.html'>
+May
+</a>
+ <span class='post-count' dir='ltr'>(1)</span>
+ <ul class='posts'>
+ <li><a href='http://siliconexposed.blogspot.tw/2016/05/open-verilog-flow-for-silego-greenpak4.html'>Open Verilog flow for Silego GreenPak4 programmabl...</a></li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ <ul class='hierarchy'>
+ <li class='archivedate collapsed'>
+ <a class='toggle' href='javascript:void(0)'>
+ <span class='zippy'>
+
+ &#9658;&#160;
+
+</span>
+ </a>
+ <a class='post-count-link' href='http://siliconexposed.blogspot.tw/search?updated-min=2015-01-01T00:00:00-08:00&amp;updated-max=2016-01-01T00:00:00-08:00&amp;max-results=8'>
+2015
+</a>
+ <span class='post-count' dir='ltr'>(8)</span>
+ <ul class='hierarchy'>
+ <li class='archivedate collapsed'>
+ <a class='toggle' href='javascript:void(0)'>
+ <span class='zippy'>
+
+ &#9658;&#160;
+
+</span>
+ </a>
+ <a class='post-count-link' href='http://siliconexposed.blogspot.tw/2015_10_01_archive.html'>
+October
+</a>
+ <span class='post-count' dir='ltr'>(1)</span>
+ </li>
+ </ul>
+ <ul class='hierarchy'>
+ <li class='archivedate collapsed'>
+ <a class='toggle' href='javascript:void(0)'>
+ <span class='zippy'>
+
+ &#9658;&#160;
+
+</span>
+ </a>
+ <a class='post-count-link' href='http://siliconexposed.blogspot.tw/2015_05_01_archive.html'>
+May
+</a>
+ <span class='post-count' dir='ltr'>(1)</span>
+ </li>
+ </ul>
+ <ul class='hierarchy'>
+ <li class='archivedate collapsed'>
+ <a class='toggle' href='javascript:void(0)'>
+ <span class='zippy'>
+
+ &#9658;&#160;
+
+</span>
+ </a>
+ <a class='post-count-link' href='http://siliconexposed.blogspot.tw/2015_02_01_archive.html'>
+February
+</a>
+ <span class='post-count' dir='ltr'>(1)</span>
+ </li>
+ </ul>
+ <ul class='hierarchy'>
+ <li class='archivedate collapsed'>
+ <a class='toggle' href='javascript:void(0)'>
+ <span class='zippy'>
+
+ &#9658;&#160;
+
+</span>
+ </a>
+ <a class='post-count-link' href='http://siliconexposed.blogspot.tw/2015_01_01_archive.html'>
+January
+</a>
+ <span class='post-count' dir='ltr'>(5)</span>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ <ul class='hierarchy'>
+ <li class='archivedate collapsed'>
+ <a class='toggle' href='javascript:void(0)'>
+ <span class='zippy'>
+
+ &#9658;&#160;
+
+</span>
+ </a>
+ <a class='post-count-link' href='http://siliconexposed.blogspot.tw/search?updated-min=2014-01-01T00:00:00-08:00&amp;updated-max=2015-01-01T00:00:00-08:00&amp;max-results=8'>
+2014
+</a>
+ <span class='post-count' dir='ltr'>(8)</span>
+ <ul class='hierarchy'>
+ <li class='archivedate collapsed'>
+ <a class='toggle' href='javascript:void(0)'>
+ <span class='zippy'>
+
+ &#9658;&#160;
+
+</span>
+ </a>
+ <a class='post-count-link' href='http://siliconexposed.blogspot.tw/2014_10_01_archive.html'>
+October
+</a>
+ <span class='post-count' dir='ltr'>(1)</span>
+ </li>
+ </ul>
+ <ul class='hierarchy'>
+ <li class='archivedate collapsed'>
+ <a class='toggle' href='javascript:void(0)'>
+ <span class='zippy'>
+
+ &#9658;&#160;
+
+</span>
+ </a>
+ <a class='post-count-link' href='http://siliconexposed.blogspot.tw/2014_09_01_archive.html'>
+September
+</a>
+ <span class='post-count' dir='ltr'>(1)</span>
+ </li>
+ </ul>
+ <ul class='hierarchy'>
+ <li class='archivedate collapsed'>
+ <a class='toggle' href='javascript:void(0)'>
+ <span class='zippy'>
+
+ &#9658;&#160;
+
+</span>
+ </a>
+ <a class='post-count-link' href='http://siliconexposed.blogspot.tw/2014_08_01_archive.html'>
+August
+</a>
+ <span class='post-count' dir='ltr'>(1)</span>
+ </li>
+ </ul>
+ <ul class='hierarchy'>
+ <li class='archivedate collapsed'>
+ <a class='toggle' href='javascript:void(0)'>
+ <span class='zippy'>
+
+ &#9658;&#160;
+
+</span>
+ </a>
+ <a class='post-count-link' href='http://siliconexposed.blogspot.tw/2014_03_01_archive.html'>
+March
+</a>
+ <span class='post-count' dir='ltr'>(3)</span>
+ </li>
+ </ul>
+ <ul class='hierarchy'>
+ <li class='archivedate collapsed'>
+ <a class='toggle' href='javascript:void(0)'>
+ <span class='zippy'>
+
+ &#9658;&#160;
+
+</span>
+ </a>
+ <a class='post-count-link' href='http://siliconexposed.blogspot.tw/2014_02_01_archive.html'>
+February
+</a>
+ <span class='post-count' dir='ltr'>(1)</span>
+ </li>
+ </ul>
+ <ul class='hierarchy'>
+ <li class='archivedate collapsed'>
+ <a class='toggle' href='javascript:void(0)'>
+ <span class='zippy'>
+
+ &#9658;&#160;
+
+</span>
+ </a>
+ <a class='post-count-link' href='http://siliconexposed.blogspot.tw/2014_01_01_archive.html'>
+January
+</a>
+ <span class='post-count' dir='ltr'>(1)</span>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ <ul class='hierarchy'>
+ <li class='archivedate collapsed'>
+ <a class='toggle' href='javascript:void(0)'>
+ <span class='zippy'>
+
+ &#9658;&#160;
+
+</span>
+ </a>
+ <a class='post-count-link' href='http://siliconexposed.blogspot.tw/search?updated-min=2013-01-01T00:00:00-08:00&amp;updated-max=2014-01-01T00:00:00-08:00&amp;max-results=16'>
+2013
+</a>
+ <span class='post-count' dir='ltr'>(16)</span>
+ <ul class='hierarchy'>
+ <li class='archivedate collapsed'>
+ <a class='toggle' href='javascript:void(0)'>
+ <span class='zippy'>
+
+ &#9658;&#160;
+
+</span>
+ </a>
+ <a class='post-count-link' href='http://siliconexposed.blogspot.tw/2013_11_01_archive.html'>
+November
+</a>
+ <span class='post-count' dir='ltr'>(2)</span>
+ </li>
+ </ul>
+ <ul class='hierarchy'>
+ <li class='archivedate collapsed'>
+ <a class='toggle' href='javascript:void(0)'>
+ <span class='zippy'>
+
+ &#9658;&#160;
+
+</span>
+ </a>
+ <a class='post-count-link' href='http://siliconexposed.blogspot.tw/2013_10_01_archive.html'>
+October
+</a>
+ <span class='post-count' dir='ltr'>(2)</span>
+ </li>
+ </ul>
+ <ul class='hierarchy'>
+ <li class='archivedate collapsed'>
+ <a class='toggle' href='javascript:void(0)'>
+ <span class='zippy'>
+
+ &#9658;&#160;
+
+</span>
+ </a>
+ <a class='post-count-link' href='http://siliconexposed.blogspot.tw/2013_09_01_archive.html'>
+September
+</a>
+ <span class='post-count' dir='ltr'>(5)</span>
+ </li>
+ </ul>
+ <ul class='hierarchy'>
+ <li class='archivedate collapsed'>
+ <a class='toggle' href='javascript:void(0)'>
+ <span class='zippy'>
+
+ &#9658;&#160;
+
+</span>
+ </a>
+ <a class='post-count-link' href='http://siliconexposed.blogspot.tw/2013_08_01_archive.html'>
+August
+</a>
+ <span class='post-count' dir='ltr'>(5)</span>
+ </li>
+ </ul>
+ <ul class='hierarchy'>
+ <li class='archivedate collapsed'>
+ <a class='toggle' href='javascript:void(0)'>
+ <span class='zippy'>
+
+ &#9658;&#160;
+
+</span>
+ </a>
+ <a class='post-count-link' href='http://siliconexposed.blogspot.tw/2013_02_01_archive.html'>
+February
+</a>
+ <span class='post-count' dir='ltr'>(1)</span>
+ </li>
+ </ul>
+ <ul class='hierarchy'>
+ <li class='archivedate collapsed'>
+ <a class='toggle' href='javascript:void(0)'>
+ <span class='zippy'>
+
+ &#9658;&#160;
+
+</span>
+ </a>
+ <a class='post-count-link' href='http://siliconexposed.blogspot.tw/2013_01_01_archive.html'>
+January
+</a>
+ <span class='post-count' dir='ltr'>(1)</span>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ <ul class='hierarchy'>
+ <li class='archivedate collapsed'>
+ <a class='toggle' href='javascript:void(0)'>
+ <span class='zippy'>
+
+ &#9658;&#160;
+
+</span>
+ </a>
+ <a class='post-count-link' href='http://siliconexposed.blogspot.tw/search?updated-min=2012-01-01T00:00:00-08:00&amp;updated-max=2013-01-01T00:00:00-08:00&amp;max-results=17'>
+2012
+</a>
+ <span class='post-count' dir='ltr'>(17)</span>
+ <ul class='hierarchy'>
+ <li class='archivedate collapsed'>
+ <a class='toggle' href='javascript:void(0)'>
+ <span class='zippy'>
+
+ &#9658;&#160;
+
+</span>
+ </a>
+ <a class='post-count-link' href='http://siliconexposed.blogspot.tw/2012_12_01_archive.html'>
+December
+</a>
+ <span class='post-count' dir='ltr'>(2)</span>
+ </li>
+ </ul>
+ <ul class='hierarchy'>
+ <li class='archivedate collapsed'>
+ <a class='toggle' href='javascript:void(0)'>
+ <span class='zippy'>
+
+ &#9658;&#160;
+
+</span>
+ </a>
+ <a class='post-count-link' href='http://siliconexposed.blogspot.tw/2012_10_01_archive.html'>
+October
+</a>
+ <span class='post-count' dir='ltr'>(2)</span>
+ </li>
+ </ul>
+ <ul class='hierarchy'>
+ <li class='archivedate collapsed'>
+ <a class='toggle' href='javascript:void(0)'>
+ <span class='zippy'>
+
+ &#9658;&#160;
+
+</span>
+ </a>
+ <a class='post-count-link' href='http://siliconexposed.blogspot.tw/2012_07_01_archive.html'>
+July
+</a>
+ <span class='post-count' dir='ltr'>(7)</span>
+ </li>
+ </ul>
+ <ul class='hierarchy'>
+ <li class='archivedate collapsed'>
+ <a class='toggle' href='javascript:void(0)'>
+ <span class='zippy'>
+
+ &#9658;&#160;
+
+</span>
+ </a>
+ <a class='post-count-link' href='http://siliconexposed.blogspot.tw/2012_06_01_archive.html'>
+June
+</a>
+ <span class='post-count' dir='ltr'>(2)</span>
+ </li>
+ </ul>
+ <ul class='hierarchy'>
+ <li class='archivedate collapsed'>
+ <a class='toggle' href='javascript:void(0)'>
+ <span class='zippy'>
+
+ &#9658;&#160;
+
+</span>
+ </a>
+ <a class='post-count-link' href='http://siliconexposed.blogspot.tw/2012_04_01_archive.html'>
+April
+</a>
+ <span class='post-count' dir='ltr'>(2)</span>
+ </li>
+ </ul>
+ <ul class='hierarchy'>
+ <li class='archivedate collapsed'>
+ <a class='toggle' href='javascript:void(0)'>
+ <span class='zippy'>
+
+ &#9658;&#160;
+
+</span>
+ </a>
+ <a class='post-count-link' href='http://siliconexposed.blogspot.tw/2012_03_01_archive.html'>
+March
+</a>
+ <span class='post-count' dir='ltr'>(1)</span>
+ </li>
+ </ul>
+ <ul class='hierarchy'>
+ <li class='archivedate collapsed'>
+ <a class='toggle' href='javascript:void(0)'>
+ <span class='zippy'>
+
+ &#9658;&#160;
+
+</span>
+ </a>
+ <a class='post-count-link' href='http://siliconexposed.blogspot.tw/2012_01_01_archive.html'>
+January
+</a>
+ <span class='post-count' dir='ltr'>(1)</span>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ <ul class='hierarchy'>
+ <li class='archivedate collapsed'>
+ <a class='toggle' href='javascript:void(0)'>
+ <span class='zippy'>
+
+ &#9658;&#160;
+
+</span>
+ </a>
+ <a class='post-count-link' href='http://siliconexposed.blogspot.tw/search?updated-min=2011-01-01T00:00:00-08:00&amp;updated-max=2012-01-01T00:00:00-08:00&amp;max-results=5'>
+2011
+</a>
+ <span class='post-count' dir='ltr'>(5)</span>
+ <ul class='hierarchy'>
+ <li class='archivedate collapsed'>
+ <a class='toggle' href='javascript:void(0)'>
+ <span class='zippy'>
+
+ &#9658;&#160;
+
+</span>
+ </a>
+ <a class='post-count-link' href='http://siliconexposed.blogspot.tw/2011_12_01_archive.html'>
+December
+</a>
+ <span class='post-count' dir='ltr'>(2)</span>
+ </li>
+ </ul>
+ <ul class='hierarchy'>
+ <li class='archivedate collapsed'>
+ <a class='toggle' href='javascript:void(0)'>
+ <span class='zippy'>
+
+ &#9658;&#160;
+
+</span>
+ </a>
+ <a class='post-count-link' href='http://siliconexposed.blogspot.tw/2011_03_01_archive.html'>
+March
+</a>
+ <span class='post-count' dir='ltr'>(3)</span>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ </div>
+ <div class='clear'></div>
+ <span class='widget-item-control'>
+<span class='item-control blog-admin'>
+<a class='quickedit' href='//www.blogger.com/rearrange?blogID=175004091875960054&widgetType=BlogArchive&widgetId=BlogArchive1&action=editWidget&sectionId=sidebar-right-1' onclick='return _WidgetManager._PopupConfig(document.getElementById("BlogArchive1"));' target='configBlogArchive1' title='Edit'>
+<img alt='' height='18' src='https://resources.blogblog.com/img/icon18_wrench_allbkg.png' width='18'/>
+</a>
+</span>
+ </span>
+ <div class='clear'></div>
+ </div>
+ </div>
+ <div class='widget LinkList' data-version='1' id='LinkList2'>
+ <h2>Categories</h2>
+ <div class='widget-content'>
+ <ul>
+ <li><a href='http://siliconexposed.blogspot.com/search/label/Atmel'>Atmel</a></li>
+ <li><a href='http://siliconexposed.blogspot.com/search/label/BoardFab'>Board Fab</a></li>
+ <li><a href='http://siliconexposed.blogspot.com/search/label/CurrentEvents'>Current Events</a></li>
+ <li><a href='http://siliconexposed.blogspot.com/search/label/Debugging'>Debugging</a></li>
+ <li><a href='http://siliconexposed.blogspot.com/search/label/FPGA'>FPGA</a></li>
+ <li><a href='http://siliconexposed.blogspot.com/search/label/Infosec'>Infosec</a></li>
+ <li><a href='http://siliconexposed.blogspot.com/search/label/MEMS'>MEMS</a></li>
+ <li><a href='http://siliconexposed.blogspot.com/search/label/Meta-posts'>Meta-posts</a></li>
+ <li><a href='http://siliconexposed.blogspot.com/search/label/Microchip'>Microchip</a></li>
+ <li><a href='http://siliconexposed.blogspot.com/search/label/MyLab'>My Lab</a></li>
+ <li><a href='http://siliconexposed.blogspot.com/search/label/Personal'>Personal</a></li>
+ <li><a href='http://siliconexposed.blogspot.com/search/label/Teardowns'>Teardowns</a></li>
+ <li><a href='http://siliconexposed.blogspot.com/search/label/Thesis'>Thesis</a></li>
+ <li><a href='http://siliconexposed.blogspot.com/search/label/Tools'>Tools</a></li>
+ <li><a href='http://siliconexposed.blogspot.com/search/label/WetLab'>Wet Lab Work</a></li>
+ <li><a href='http://siliconexposed.blogspot.com/search/label/Xilinx'>Xilinx</a></li>
+ </ul>
+ <div class='clear'></div>
+ <span class='widget-item-control'>
+<span class='item-control blog-admin'>
+<a class='quickedit' href='//www.blogger.com/rearrange?blogID=175004091875960054&widgetType=LinkList&widgetId=LinkList2&action=editWidget&sectionId=sidebar-right-1' onclick='return _WidgetManager._PopupConfig(document.getElementById("LinkList2"));' target='configLinkList2' title='Edit'>
+<img alt='' height='18' src='https://resources.blogblog.com/img/icon18_wrench_allbkg.png' width='18'/>
+</a>
+</span>
+ </span>
+ <div class='clear'></div>
+ </div>
+ </div>
+ <div class='widget PopularPosts' data-version='1' id='PopularPosts1'>
+ <h2>Popular Posts</h2>
+ <div class='widget-content popular-posts'>
+ <ul>
+ <li>
+ <div class='item-content'>
+ <div class='item-title'><a href='http://siliconexposed.blogspot.tw/2014/10/why-apples-iphone-encryption-wont-stop.html'>Why Apple's iPhone encryption won't stop NSA (or any other intelligence agency)</a></div>
+ <div class='item-snippet'>Recent news headlines have made a big deal of Apple encrypting more of the storage on their handsets, and claiming to not have a key. Depend...</div>
+ </div>
+ <div style='clear: both;'></div>
+ </li>
+ <li>
+ <div class='item-content'>
+ <div class='item-thumbnail'>
+ <a href='http://siliconexposed.blogspot.tw/2012/07/bga-process-notes.html' target='_blank'>
+ <img alt='' border='0' src='http://2.bp.blogspot.com/-3W1-dqxwu8w/T_DehAq9y_I/AAAAAAAAAKA/pVbX_9PZ2Fw/w72-h72-p-nu/S7302801.JPG' />
+ </a>
+ </div>
+ <div class='item-title'><a href='http://siliconexposed.blogspot.tw/2012/07/bga-process-notes.html'>BGA process notes</a></div>
+ <div class='item-snippet'>I&#39;ve gotten a lot of requests recently to share some details on my BGA assembly process, so without further ado here it is! The board ...</div>
+ </div>
+ <div style='clear: both;'></div>
+ </li>
+ <li>
+ <div class='item-content'>
+ <div class='item-thumbnail'>
+ <a href='http://siliconexposed.blogspot.tw/2014/03/getting-my-feet-wet-with-invasive.html' target='_blank'>
+ <img alt='' border='0' src='http://3.bp.blogspot.com/-HZZBB2OVaNc/Uzm7UVm_PUI/AAAAAAAAAiw/cPfH0TUdOMM/w72-h72-p-nu/floorplan_dash.jpg' />
+ </a>
+ </div>
+ <div class='item-title'><a href='http://siliconexposed.blogspot.tw/2014/03/getting-my-feet-wet-with-invasive.html'>Getting my feet wet with invasive attacks, part 1: Target recon</a></div>
+ <div class='item-snippet'>This is part 1 of a 2-part series. Part 2, The Attack, is here . One of the reasons I&#39;ve gone a bit dark lately is that running CSCI 6...</div>
+ </div>
+ <div style='clear: both;'></div>
+ </li>
+ <li>
+ <div class='item-content'>
+ <div class='item-title'><a href='http://siliconexposed.blogspot.tw/2014/09/threat-modeling-for-fpga-software.html'>Threat modeling for FPGA software backdoors</a></div>
+ <div class='item-snippet'> I&#39;ve been interested in the security of compilers and related toolchains ever since I first read about Ken Thompson&#39;s compiler back...</div>
+ </div>
+ <div style='clear: both;'></div>
+ </li>
+ </ul>
+ <div class='clear'></div>
+ <span class='widget-item-control'>
+<span class='item-control blog-admin'>
+<a class='quickedit' href='//www.blogger.com/rearrange?blogID=175004091875960054&widgetType=PopularPosts&widgetId=PopularPosts1&action=editWidget&sectionId=sidebar-right-1' onclick='return _WidgetManager._PopupConfig(document.getElementById("PopularPosts1"));' target='configPopularPosts1' title='Edit'>
+<img alt='' height='18' src='https://resources.blogblog.com/img/icon18_wrench_allbkg.png' width='18'/>
+</a>
+</span>
+ </span>
+ <div class='clear'></div>
+ </div>
+ </div>
+ <div class='widget Profile' data-version='1' id='Profile1'>
+ <h2>About Me</h2>
+ <div class='widget-content'>
+ <a href='https://www.blogger.com/profile/16821509563933020441'><img alt='My photo' class='profile-img' height='60' src='//3.bp.blogspot.com/-p-v3ISALjLU/U0oKLSnpzZI/AAAAAAAAAo0/afHOciIedHs/s80/DSCF4378_sm.jpg' width='80' /></a>
+ <dl class='profile-datablock'>
+ <dt class='profile-data'>
+<a class='profile-name-link g-profile' href='https://www.blogger.com/profile/16821509563933020441' rel='author' style='background-image: url(//www.blogger.com/img/logo-16.png);'>
+Andrew Zonenberg
+</a>
+</dt>
+ </dl>
+ <a class='profile-link' href='https://www.blogger.com/profile/16821509563933020441' rel='author'>View my complete profile</a>
+ <div class='clear'></div>
+ <span class='widget-item-control'>
+<span class='item-control blog-admin'>
+<a class='quickedit' href='//www.blogger.com/rearrange?blogID=175004091875960054&widgetType=Profile&widgetId=Profile1&action=editWidget&sectionId=sidebar-right-1' onclick='return _WidgetManager._PopupConfig(document.getElementById("Profile1"));' target='configProfile1' title='Edit'>
+<img alt='' height='18' src='https://resources.blogblog.com/img/icon18_wrench_allbkg.png' width='18'/>
+</a>
+</span>
+ </span>
+ <div class='clear'></div>
+ </div>
+ </div>
+ <div class='widget Followers' data-version='1' id='Followers1'>
+ <h2 class='title'>Followers</h2>
+ <div class='widget-content'>
+ <div id='Followers1-wrapper'>
+ <div style='margin-right:2px;'>
+ <div>
+ <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
+ <div id="followers-iframe-container"></div>
+ <script type="text/javascript">
+ window.followersIframe = null;
+
+ function followersIframeOpen(url) {
+ gapi.load("gapi.iframes", function() {
+ if (gapi.iframes && gapi.iframes.getContext) {
+ window.followersIframe = gapi.iframes.getContext().openChild({
+ url: url,
+ where: document.getElementById("followers-iframe-container"),
+ messageHandlersFilter: gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER,
+ messageHandlers: {
+ '_ready': function(obj) {
+ window.followersIframe.getIframeEl().height = obj.height;
+ },
+ 'reset': function() {
+ window.followersIframe.close();
+ followersIframeOpen("https://www.blogger.com/followers.g?blogID\x3d175004091875960054\x26colors\x3dCgt0cmFuc3BhcmVudBILdHJhbnNwYXJlbnQaBjY2NjY2NiIGMjI4OGJiKgZmZmZmZmYyBjAwMDAwMDoGNjY2NjY2QgYyMjg4YmJKBjk5OTk5OVIGMjI4OGJiWgt0cmFuc3BhcmVudA%3D%3D\x26pageSize\x3d21\x26postID\x3d932306423056216142\x26origin\x3dhttp://siliconexposed.blogspot.tw/");
+ },
+ 'open': function(url) {
+ window.followersIframe.close();
+ followersIframeOpen(url);
+ },
+ 'blogger-ping': function() {}
+ }
+ });
+ }
+ });
+ }
+ followersIframeOpen("https://www.blogger.com/followers.g?blogID\x3d175004091875960054\x26colors\x3dCgt0cmFuc3BhcmVudBILdHJhbnNwYXJlbnQaBjY2NjY2NiIGMjI4OGJiKgZmZmZmZmYyBjAwMDAwMDoGNjY2NjY2QgYyMjg4YmJKBjk5OTk5OVIGMjI4OGJiWgt0cmFuc3BhcmVudA%3D%3D\x26pageSize\x3d21\x26postID\x3d932306423056216142\x26origin\x3dhttp://siliconexposed.blogspot.tw/");
+ </script>
+ </div>
+ </div>
+ </div>
+ <div class='clear'></div>
+ <span class='widget-item-control'>
+<span class='item-control blog-admin'>
+<a class='quickedit' href='//www.blogger.com/rearrange?blogID=175004091875960054&widgetType=Followers&widgetId=Followers1&action=editWidget&sectionId=sidebar-right-1' onclick='return _WidgetManager._PopupConfig(document.getElementById("Followers1"));' target='configFollowers1' title='Edit'>
+<img alt='' height='18' src='https://resources.blogblog.com/img/icon18_wrench_allbkg.png' width='18'/>
+</a>
+</span>
+ </span>
+ <div class='clear'></div>
+ </div>
+ </div>
+ </div>
+ </aside>
+ </div>
+ </div>
+ </div>
+ <div style='clear: both'></div>
+ <!-- columns -->
+ </div>
+ <!-- main -->
+ </div>
+ </div>
+ <div class='main-cap-bottom cap-bottom'>
+ <div class='cap-left'></div>
+ <div class='cap-right'></div>
+ </div>
+ </div>
+ <footer>
+ <div class='footer-outer'>
+ <div class='footer-cap-top cap-top'>
+ <div class='cap-left'></div>
+ <div class='cap-right'></div>
+ </div>
+ <div class='fauxborder-left footer-fauxborder-left'>
+ <div class='fauxborder-right footer-fauxborder-right'></div>
+ <div class='region-inner footer-inner'>
+ <div class='foot no-items section' id='footer-1'></div>
+ <table border='0' cellpadding='0' cellspacing='0' class='section-columns columns-2'>
+ <tbody>
+ <tr>
+ <td class='first columns-cell'>
+ <div class='foot no-items section' id='footer-2-1'></div>
+ </td>
+ <td class='columns-cell'>
+ <div class='foot no-items section' id='footer-2-2'></div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <!-- outside of the include in order to lock Attribution widget -->
+ <div class='foot section' id='footer-3'>
+ <div class='widget Attribution' data-version='1' id='Attribution1'>
+ <div class='widget-content' style='text-align: center;'>
+ Copyright (C) 2012-2014 Andrew Zonenberg. Content licensed under CC-BY unless otherwise stated. Simple template. Powered by <a href='https://www.blogger.com' target='_blank'>Blogger</a>.
+ </div>
+ <div class='clear'></div>
+ <span class='widget-item-control'>
+<span class='item-control blog-admin'>
+<a class='quickedit' href='//www.blogger.com/rearrange?blogID=175004091875960054&widgetType=Attribution&widgetId=Attribution1&action=editWidget&sectionId=footer-3' onclick='return _WidgetManager._PopupConfig(document.getElementById("Attribution1"));' target='configAttribution1' title='Edit'>
+<img alt='' height='18' src='https://resources.blogblog.com/img/icon18_wrench_allbkg.png' width='18'/>
+</a>
+</span>
+ </span>
+ <div class='clear'></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class='footer-cap-bottom cap-bottom'>
+ <div class='cap-left'></div>
+ <div class='cap-right'></div>
+ </div>
+ </div>
+ </footer>
+ <!-- content -->
+ </div>
+ </div>
+ <div class='content-cap-bottom cap-bottom'>
+ <div class='cap-left'></div>
+ <div class='cap-right'></div>
+ </div>
+ </div>
+ </div>
+ <script type='text/javascript'>
+ window.setTimeout(function() {
+ document.body.className = document.body.className.replace('loading', '');
+ }, 10);
+ </script>
+
+ <script type="text/javascript" src="https://www.blogger.com/static/v1/widgets/1235661846-widgets.js"></script>
+ <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
+ <script type='text/javascript'>
+ window['__wavt'] = 'AOuZoY793GE-9u9xtXSPHiSY4FyV9plLFQ:1477551217740';
+ _WidgetManager._Init('//www.blogger.com/rearrange?blogID\x3d175004091875960054', '//siliconexposed.blogspot.tw/2016/05/open-verilog-flow-for-silego-greenpak4.html', '175004091875960054');
+ _WidgetManager._SetDataContext([{
+ 'name': 'blog',
+ 'data': {
+ 'blogId': '175004091875960054',
+ 'bloggerUrl': 'https://www.blogger.com',
+ 'title': 'Silicon Exposed',
+ 'pageType': 'item',
+ 'postId': '932306423056216142',
+ 'url': 'http://siliconexposed.blogspot.tw/2016/05/open-verilog-flow-for-silego-greenpak4.html',
+ 'canonicalUrl': 'http://siliconexposed.blogspot.com/2016/05/open-verilog-flow-for-silego-greenpak4.html',
+ 'homepageUrl': 'http://siliconexposed.blogspot.tw/',
+ 'searchUrl': 'http://siliconexposed.blogspot.tw/search',
+ 'canonicalHomepageUrl': 'http://siliconexposed.blogspot.com/',
+ 'blogspotFaviconUrl': 'http://siliconexposed.blogspot.tw/favicon.ico',
+ 'enabledCommentProfileImages': true,
+ 'gPlusViewType': 'FILTERED_POSTMOD',
+ 'adultContent': false,
+ 'analyticsAccountNumber': '',
+ 'useUniversalAnalytics': false,
+ 'pageName': 'Open Verilog flow for Silego GreenPak4 programmable logic devices',
+ 'pageTitle': 'Silicon Exposed: Open Verilog flow for Silego GreenPak4 programmable logic devices',
+ 'encoding': 'UTF-8',
+ 'locale': 'en',
+ 'localeUnderscoreDelimited': 'en',
+ 'isPrivate': false,
+ 'isMobile': false,
+ 'isMobileRequest': false,
+ 'mobileClass': '',
+ 'isPrivateBlog': false,
+ 'languageDirection': 'ltr',
+ 'feedLinks': '\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Silicon Exposed - Atom\x22 href\x3d\x22http://siliconexposed.blogspot.com/feeds/posts/default\x22 /\x3e\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/rss+xml\x22 title\x3d\x22Silicon Exposed - RSS\x22 href\x3d\x22http://siliconexposed.blogspot.com/feeds/posts/default?alt\x3drss\x22 /\x3e\n\x3clink rel\x3d\x22service.post\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Silicon Exposed - Atom\x22 href\x3d\x22https://www.blogger.com/feeds/175004091875960054/posts/default\x22 /\x3e\n\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Silicon Exposed - Atom\x22 href\x3d\x22http://siliconexposed.blogspot.com/feeds/932306423056216142/comments/default\x22 /\x3e\n',
+ 'meTag': '',
+ 'openIdOpTag': '',
+ 'postImageThumbnailUrl': 'https://1.bp.blogspot.com/-YIPC5jkXkDE/Vy7YPSqFKWI/AAAAAAAAAxI/a7D6Ji2GxoUvcrwUkI4RLZcr2LFQEJCTACLcB/s72-c/block-diagram.png',
+ 'postImageUrl': 'https://1.bp.blogspot.com/-YIPC5jkXkDE/Vy7YPSqFKWI/AAAAAAAAAxI/a7D6Ji2GxoUvcrwUkI4RLZcr2LFQEJCTACLcB/s640/block-diagram.png',
+ 'mobileHeadScript': '',
+ 'adsenseHostId': 'ca-host-pub-1556223355139109',
+ 'ieCssRetrofitLinks': '\x3c!--[if IE]\x3e\x3cscript type\x3d\x22text/javascript\x22 src\x3d\x22https://www.blogger.com/static/v1/jsbin/3382512426-ieretrofit.js\x22\x3e\x3c/script\x3e\n\x3c![endif]--\x3e',
+ 'view': '',
+ 'dynamicViewsCommentsSrc': '//www.blogblog.com/dynamicviews/4224c15c4e7c9321/js/comments.js',
+ 'dynamicViewsScriptSrc': '//www.blogblog.com/dynamicviews/c258b0f953fb615c',
+ 'plusOneApiSrc': 'https://apis.google.com/js/plusone.js',
+ 'sharing': {
+ 'platforms': [{
+ 'name': 'Get link',
+ 'key': 'link',
+ 'shareMessage': 'Get link',
+ 'target': ''
+ }, {
+ 'name': 'Facebook',
+ 'key': 'facebook',
+ 'shareMessage': 'Share to Facebook',
+ 'target': 'facebook'
+ }, {
+ 'name': 'BlogThis!',
+ 'key': 'blogThis',
+ 'shareMessage': 'BlogThis!',
+ 'target': 'blog'
+ }, {
+ 'name': 'Twitter',
+ 'key': 'twitter',
+ 'shareMessage': 'Share to Twitter',
+ 'target': 'twitter'
+ }, {
+ 'name': 'Pinterest',
+ 'key': 'pinterest',
+ 'shareMessage': 'Share to Pinterest',
+ 'target': 'pinterest'
+ }, {
+ 'name': 'Google+',
+ 'key': 'googlePlus',
+ 'shareMessage': 'Share to Google+',
+ 'target': 'googleplus'
+ }, {
+ 'name': 'Email',
+ 'key': 'email',
+ 'shareMessage': 'Email',
+ 'target': 'email'
+ }],
+ 'googlePlusShareButtonWidth': 300,
+ 'googlePlusBootstrap': '\x3cscript type\x3d\x22text/javascript\x22\x3ewindow.___gcfg \x3d {\x27lang\x27: \x27en\x27};\x3c/script\x3e'
+ }
+ }
+ }, {
+ 'name': 'features',
+ 'data': {
+ 'widgetVisibility': true
+ }
+ }, {
+ 'name': 'messages',
+ 'data': {
+ 'linkCopiedToClipboard': 'Link copied to clipboard!',
+ 'postLink': 'Post Link'
+ }
+ }, {
+ 'name': 'template',
+ 'data': {
+ 'name': 'Simple',
+ 'localizedName': 'Simple',
+ 'variant': 'simplysimple',
+ 'isResponsive': false,
+ 'isAlternateRendering': false,
+ 'isCustom': false
+ }
+ }, {
+ 'name': 'view',
+ 'data': {
+ 'classic': {
+ 'name': 'classic',
+ 'url': '?view\x3dclassic'
+ },
+ 'flipcard': {
+ 'name': 'flipcard',
+ 'url': '?view\x3dflipcard'
+ },
+ 'magazine': {
+ 'name': 'magazine',
+ 'url': '?view\x3dmagazine'
+ },
+ 'mosaic': {
+ 'name': 'mosaic',
+ 'url': '?view\x3dmosaic'
+ },
+ 'sidebar': {
+ 'name': 'sidebar',
+ 'url': '?view\x3dsidebar'
+ },
+ 'snapshot': {
+ 'name': 'snapshot',
+ 'url': '?view\x3dsnapshot'
+ },
+ 'timeslide': {
+ 'name': 'timeslide',
+ 'url': '?view\x3dtimeslide'
+ },
+ 'isMobile': false,
+ 'title': 'Open Verilog flow for Silego GreenPak4 programmable logic devices',
+ 'description': 'I\x27ve written a couple of posts in the past few months but they were all for the blog at work so I figured I\x27m long overdue for one on Silic...',
+ 'featuredImage': 'https://1.bp.blogspot.com/-YIPC5jkXkDE/Vy7YPSqFKWI/AAAAAAAAAxI/a7D6Ji2GxoUvcrwUkI4RLZcr2LFQEJCTACLcB/s640/block-diagram.png',
+ 'url': 'http://siliconexposed.blogspot.tw/2016/05/open-verilog-flow-for-silego-greenpak4.html',
+ 'type': 'item',
+ 'isSingleItem': true,
+ 'isMultipleItems': false,
+ 'isError': false,
+ 'isPage': false,
+ 'isPost': true,
+ 'isHomepage': false,
+ 'isArchive': false,
+ 'isSearch': false,
+ 'postId': 932306423056216142
+ }
+ }]);
+ _WidgetManager._RegisterWidget('_NavbarView', new _WidgetInfo('Navbar1', 'navbar', null, document.getElementById('Navbar1'), {}, 'displayModeFull'));
+ _WidgetManager._RegisterWidget('_HeaderView', new _WidgetInfo('Header1', 'header', null, document.getElementById('Header1'), {}, 'displayModeFull'));
+ _WidgetManager._RegisterWidget('_BlogView', new _WidgetInfo('Blog1', 'main', null, document.getElementById('Blog1'), {
+ 'cmtInteractionsEnabled': false,
+ 'lightboxEnabled': true,
+ 'lightboxModuleUrl': 'https://www.blogger.com/static/v1/jsbin/1515155163-lbx.js',
+ 'lightboxCssUrl': 'https://www.blogger.com/static/v1/v-css/368954415-lightbox_bundle.css'
+ }, 'displayModeFull'));
+ _WidgetManager._RegisterWidget('_LinkListView', new _WidgetInfo('LinkList1', 'sidebar-right-1', null, document.getElementById('LinkList1'), {}, 'displayModeFull'));
+ _WidgetManager._RegisterWidget('_BlogArchiveView', new _WidgetInfo('BlogArchive1', 'sidebar-right-1', null, document.getElementById('BlogArchive1'), {
+ 'languageDirection': 'ltr',
+ 'loadingMessage': 'Loading...'
+ }, 'displayModeFull'));
+ _WidgetManager._RegisterWidget('_LinkListView', new _WidgetInfo('LinkList2', 'sidebar-right-1', null, document.getElementById('LinkList2'), {}, 'displayModeFull'));
+ _WidgetManager._RegisterWidget('_PopularPostsView', new _WidgetInfo('PopularPosts1', 'sidebar-right-1', null, document.getElementById('PopularPosts1'), {}, 'displayModeFull'));
+ _WidgetManager._RegisterWidget('_ProfileView', new _WidgetInfo('Profile1', 'sidebar-right-1', null, document.getElementById('Profile1'), {}, 'displayModeFull'));
+ _WidgetManager._RegisterWidget('_FollowersView', new _WidgetInfo('Followers1', 'sidebar-right-1', null, document.getElementById('Followers1'), {}, 'displayModeFull'));
+ _WidgetManager._RegisterWidget('_AttributionView', new _WidgetInfo('Attribution1', 'footer-3', null, document.getElementById('Attribution1'), {}, 'displayModeFull'));
+ </script>
+</body>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/breitbart/config.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/breitbart/config.json
new file mode 100644
index 000000000..0ac6816ed
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/breitbart/config.json
@@ -0,0 +1,3 @@
+{
+ "ArticleByLine": true
+} \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/breitbart/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/breitbart/expected-images.json
new file mode 100644
index 000000000..77ab1dbc1
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/breitbart/expected-images.json
@@ -0,0 +1,4 @@
+[
+ "http:\/\/media.breitbart.com\/media\/2016\/11\/GettyImages-621866810.jpg",
+ "http:\/\/media.breitbart.com\/media\/2016\/11\/GettyImages-621866810-640x480.jpg"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/breitbart/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/breitbart/expected-metadata.json
new file mode 100644
index 000000000..f04451323
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/breitbart/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "by Lucas Nolan22 Dec 2016651",
+ "Direction": null,
+ "Excerpt": "Snopes fact checker and staff writer David Emery posted to Twitter asking if there were “any un-angry Trump supporters?”",
+ "Image": "http:\/\/media.breitbart.com\/media\/2016\/11\/GettyImages-621866810.jpg",
+ "Title": "'Neutral' Snopes Fact-Checker David Emery: 'Are There Any Un-Angry Trump Supporters?' - Breitbart",
+ "SiteName": "Breitbart"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/breitbart/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/breitbart/expected.html
new file mode 100644
index 000000000..e2f04c74b
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/breitbart/expected.html
@@ -0,0 +1,41 @@
+<div>
+
+
+ <figure><div><p><img alt="Supporters of Republican presidential nominee Donald Trump cheer during election night at the New York Hilton Midtown in New York on November 9, 2016. / AFP / JIM WATSON (Photo credit should read JIM WATSON/AFP/Getty Images)" height="480" itemprop="image" src="http://media.breitbart.com/media/2016/11/GettyImages-621866810-640x480.jpg" width="640"></img></p><p>JIM WATSON/AFP/Getty Images</p>
+ </div>
+ </figure> <time datetime="2016-12-22T10:43:37Z">22 Dec, 2016</time><time datetime="2016-12-22T18:59:12Z">22 Dec, 2016</time></div><div>
+
+ <div id="EmailOptin">
+ <p><span>SIGN UP</span> FOR OUR NEWSLETTER</p>
+
+ </div>
+ <h2><span>Snopes fact checker and staff writer David Emery posted to Twitter asking if there were “any un-angry Trump supporters?”</span></h2>
+ <p><span>Emery, a writer for partisan “fact-checking” website Snopes.com which soon will be in charge of labelling </span><a href="http://www.breitbart.com/tech/2016/12/15/facebook-introduce-warning-labels-stories-deemed-fake-news/"><span>“fake news”</span></a><span> alongside ABC News and Politifact, retweeted an article by Vulture magazine relating to the </span><a href="http://www.breitbart.com/big-hollywood/2016/11/19/boycotthamilton-trends-hamilton-cast-members-harass-mike-pence/"><span>protests</span></a><span> of the <em>Hamilton</em> musical following the decision by the cast of the show to make a </span><a href="http://www.breitbart.com/big-hollywood/2016/11/19/tolerance-hamilton-cast-lectures-mike-pence-broadway-stage/"><span>public announcement</span></a><span> to Vice-president elect Mike Pence while he watched the performance with his family.</span></p>
+ <div id="EmailOptinM">
+ <p><span>SIGN UP</span> FOR OUR NEWSLETTER</p>
+
+ </div>
+ <p><span>The tweet from Vulture magazine reads, “</span><a href="https://twitter.com/hashtag/Hamilton?src=hash" rel="noopener" target="_blank"><span>#Hamilton</span></a><span> Chicago show interrupted by angry Trump supporter.” Emery retweeted the story, saying, “Are there un-angry Trump supporters?”</span></p>
+
+
+
+
+
+
+ <p><span>This isn’t the first time the Snopes.com writer has expressed anti-Trump sentiment on his Twitter page. In another tweet in which Emery links to an article that falsely attributes a quote to President-elect Trump, Emery states, “Incredibly, some people actually think they have to put words in Trump’s mouth to make him look bad.”</span></p>
+
+
+ <p><span>Emery also retweeted an article by <em>New York</em> magazine that claimed President-elect Trump relied on lies to win during his campaign and that we now lived in a “post-truth” society. “Before long we’ll all have forgotten what it was like to live in the same universe; or maybe we already have,” Emery tweeted.</span></p>
+
+
+
+
+
+
+ <p><span>Facebook believe that Emery, along with other Snopes writers, ABC News, and </span><a href="http://www.breitbart.com/tech/2016/12/16/flashback-weekly-standard-data-shows-politifact-has-it-out-for-republicans/"><span>Politifact</span></a><span> are impartial enough to label and silence what they believe to be “fake news” on social media. </span></p>
+ <p><i><span>Lucas Nolan is a reporter for Breitbart Tech covering issues of free speech and online censorship. Follow him on Twitter </span></i><a href="http://twitter.com/lucasnolan_" rel="noopener" target="_blank"><i><span>@LucasNolan_</span></i></a><i><span> or email him at </span></i><a href="http://www.breitbart.com/wp-admin/blank"><i><span>[email protected]</span></i></a></p>
+
+
+
+
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/breitbart/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/breitbart/source.html
new file mode 100644
index 000000000..61ae0aa91
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/breitbart/source.html
@@ -0,0 +1,19848 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" dir="ltr" prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# dc: http://purl.org/dc/elements/1.1/# v: http://rdf.data-vocabulary.org/# op: http://media.facebook.com/op#" lang="en">
+
+<head>
+ <script type="text/javascript" src="//m.addthis.com/live/red_lojson/300lo.json?si=5887328e015c3caf&amp;bkl=0&amp;bl=1&amp;sid=5887328e015c3caf&amp;pub=ra-536db77a775cf072&amp;rev=v7.9.5-wp&amp;ln=en&amp;pc=men&amp;cb=0&amp;ab=-&amp;dp=www.breitbart.com&amp;fp=tech%2F2016%2F12%2F22%2Fneutral-snopes-fact-checker-david-emery-un-angry-trump-supporters%2F&amp;fr=&amp;of=0&amp;pd=0&amp;irt=0&amp;vcl=0&amp;md=0&amp;ct=0&amp;tct=0&amp;abt=0&amp;cdn=0&amp;pi=1&amp;rb=0&amp;gen=100&amp;chr=UTF-8&amp;mk=Donald%20Trump%2Cfacebook%2CFact%20Check%2Cfake%20news%2CSnopes%2CTech%2Csnopes&amp;colc=1485255313842&amp;jsl=13505&amp;uvs=5887328e084443ac000&amp;skipb=1&amp;callback=addthis.cbs.oln9_77519642505367390">
+ <script type="text/javascript" id="cadmpjs" async="" src="//c1.rfihub.net/js/smarttag.js"></script>
+ <script type="text/javascript" id="pubnationjs" async="" src="//report-ads-to.pubnation.com/dist/pnr.js?t=pn-52225fd0c8484f06"></script>
+ </script>
+ <script type="text/javascript" src="//m.addthisedge.com/live/boost/ra-536db77a775cf072/_ate.track.config_resp"></script><iframe style="width: 0px; height: 0px; border: 0px none;" src="javascript:false"></iframe>
+ <script async="" type="text/javascript" src="http://de.tynt.com/deb/v2?id=dspfiQ33mr44afacwqm_6l&amp;dn=TI&amp;cc=1&amp;r="></script>
+ <script async="" type="text/javascript" src="https://sc.tynt.com/script/sc/dspfiQ33mr44afacwqm_6l.js"></script>
+ <script async="" type="text/javascript" src="http://s.newsmaxfeednetwork.com/static/js/render.v1.js"></script>
+ <script type="text/javascript" src="http://s.jsrdn.com/s/1.js?p=22445&amp;r=k198&amp;k=dmMJMjAxNjEwMjcJdQlkMDljZjVjNS0xNmRjLTQyNjUtYjJhZS00MTVlYjkzYmIzOTcJdW4JMAl2CWNkYWZkNTY5LTc4MzEtNDc0Zi04MWJkLWUyNGI1NjM0ZjYyMQl0Zwljcy5qcwlidAkyMDE3LTAxLTI0VDE4OjU1OjA5KzA4OjAwCWRjCXV0Zi04CWJsCWVuLXVzCWJmCTIxCWR3CTEyODAJZGgJNzEwCWJjCTEJYnAJMgliZAkyNAlidwkxNDQwCWJoCTkwMAliagkwCWYJaHR0cDovL3d3dy5icmVpdGJhcnQuY29tL3RlY2gvMjAxNi8xMi8yMi9uZXV0cmFsLXNub3Blcy1mYWN0LWNoZWNrZXItZGF2aWQtZW1lcnktdW4tYW5ncnktdHJ1bXAtc3VwcG9ydGVycy8JdWQJCXBiCTAJcHYJMAlwcQkwCWN3CQlhY3IJdW5kZWZpbmVkCWRyCQlrdwlkb25hbGQgdHJ1bXAsZmFjZWJvb2ssZmFjdCBjaGVjayxmYWtlIG5ld3Msc25vcGVzLHRlY2gsc25vcGVzCXByZgl1bmRlZmluZWQ" async="">
+ <script type="text/javascript" id="isczergnetjs" async="" src="//www.zergnet.com/zerg.js?id=40875"></script>
+ </script>
+ <script src="http://edge.quantserve.com/quant.js" async="" type="text/javascript"></script>
+ <script async="" src="http://b.scorecardresearch.com/beacon.js"></script>
+ <script type="text/javascript" id="iscdistroscalejs" async="" src="//c.jsrdn.com/s/cs.js?p=22445"></script>
+ <script async="" src="http://b.scorecardresearch.com/beacon.js"></script>
+ <script async="" src="//www.google-analytics.com/analytics.js"></script>
+ <script async="" src="http://b.scorecardresearch.com/beacon.js"></script>
+ <script charset="UTF-8" type="text/javascript" src="http://cdn.taboola.com/libtrc/impl.242-8-RELEASE.js"></script>
+ <script async="" src="//widget.perfectmarket.com/breitbartcom/load.js"></script>
+ <style class="vjs-styles-defaults">
+ .video-js {
+ width: 300px;
+ height: 150px;
+ }
+
+ .vjs-fluid {
+ padding-top: 56.25%
+ }
+ </style>
+ <script type="text/javascript" async="" src="http://ad.crwdcntrl.net/5/c=1859/pe=y/callback=_nw2e.closures.c0"></script>
+ <script src="http://edge.quantserve.com/quant.js" async="" type="text/javascript"></script>
+ <script src="//pagead2.googlesyndication.com/pagead/expansion_embed.js?source=safeframe"></script>
+ <script src="http://pagead2.googlesyndication.com/pagead/osd.js"></script>
+ <meta charset="UTF-8" />
+ <meta name="viewport" content="width=device-width,initial-scale=1" />
+ <title>'Neutral' Snopes Fact-Checker David Emery: 'Are There Any Un-Angry Trump Supporters?' - Breitbart</title>
+ <link rel="dns-prefetch" href="//media.breitbart.com" />
+ <link rel="dns-prefetch" href="//fonts.gstatic.com" />
+ <link rel="dns-prefetch" href="//breitbartproduction.disqus.com" />
+ <link rel="preload" href="/t/style-014852557.css" as="style" />
+ <link rel="preload" href="//fonts.gstatic.com/s/fjallaone/v4/rxxXUYj4oZ6Q5oDJFtEd6vk_vArhqVIZ0nv9q090hN8.woff2" as="font" crossorigin="" type="font/woff2" />
+ <link rel="preload" href="/t/assets/fonts/bbn.woff2" as="font" type="font/woff2" crossorigin="" />
+ <link rel="preload" href="/t/assets/i/spriteg.png" as="image" />
+ <link rel="stylesheet" href="/t/style-014852557.css" type="text/css" media="all" />
+ <meta name="description" content="Snopes fact checker and staff writer David Emery posted to Twitter asking if there were “any un-angry Trump supporters?”" />
+ <meta name="robots" content="noodp" />
+ <meta name="keywords" content="Donald Trump, facebook, Fact Check, fake news, Snopes,Tech,snopes" />
+ <link rel="canonical" href="http://www.breitbart.com/tech/2016/12/22/neutral-snopes-fact-checker-david-emery-un-angry-trump-supporters/" />
+ <link rel="publisher" href="https://plus.google.com/110812411499982071387" />
+ <meta property="og:locale" content="en_US" />
+ <meta property="og:type" content="article" />
+ <meta property="og:title" content="'Neutral' Snopes Fact-Checker David Emery: 'Are There Any Un-Angry Trump Supporters?' - Breitbart" />
+ <meta property="og:description" content="Snopes fact checker and staff writer David Emery posted to Twitter asking if there were “any un-angry Trump supporters?”" />
+ <meta property="og:url" content="http://www.breitbart.com/tech/2016/12/22/neutral-snopes-fact-checker-david-emery-un-angry-trump-supporters/" />
+ <meta property="og:site_name" content="Breitbart" />
+ <meta property="article:publisher" content="https://www.facebook.com/Breitbart" />
+ <meta property="article:tag" content="Donald Trump" />
+ <meta property="article:tag" content="facebook" />
+ <meta property="article:tag" content="Fact Check" />
+ <meta property="article:tag" content="fake news" />
+ <meta property="article:tag" content="Snopes" />
+ <meta property="article:section" content="Tech" />
+ <meta property="article:published_time" content="2016-12-22T10:43:37-08:00" />
+ <meta property="article:modified_time" content="2016-12-22T18:59:12-08:00" />
+ <meta property="og:updated_time" content="2016-12-22T18:59:12-08:00" />
+ <meta property="fb:app_id" content="1243316582352556" />
+ <meta property="og:image" content="http://media.breitbart.com/media/2016/11/GettyImages-621866810.jpg" />
+ <meta property="og:image:width" content="640" />
+ <meta property="og:image:height" content="480" />
+ <meta name="twitter:card" content="summary" />
+ <meta name="twitter:description" content="Snopes fact checker and staff writer David Emery posted to Twitter asking if there were “any un-angry Trump supporters?”" />
+ <meta name="twitter:title" content="'Neutral' Snopes Fact-Checker David Emery: 'Are There Any Un-Angry Trump Supporters?' - Breitbart" />
+ <meta name="twitter:site" content="@BreitbartNews" />
+ <meta name="twitter:image" content="http://media.breitbart.com/media/2016/11/GettyImages-621866810.jpg" />
+ <meta name="twitter:creator" content="@lucasnolan_" />
+ <meta property="article:categories" content="Tech" />
+ <link rel="amphtml" href="http://www.breitbart.com/tech/2016/12/22/neutral-snopes-fact-checker-david-emery-un-angry-trump-supporters/amp/" />
+ <link rel="icon" href="http://www.breitbart.com/t/assets/i/w-logo-orange.png" sizes="32x32" />
+ <link rel="icon" href="http://www.breitbart.com/t/assets/i/w-logo-orange.png" sizes="192x192" />
+ <link rel="apple-touch-icon-precomposed" href="http://www.breitbart.com/t/assets/i/w-logo-orange.png" />
+ <meta name="msapplication-TileImage" content="http://www.breitbart.com/t/assets/i/w-logo-orange.png" />
+ <link rel="home" href="http://www.breitbart.com/" title="Home" />
+ <link rel="copyright" href="#copyrighttext" />
+ <link rel="alternate" type="application/rss+xml" href="http://feeds.feedburner.com/breitbart" title="Breitbart News Feed" />
+ <link rel="apple-touch-icon" sizes="57x57" href="/apple-touch-icon-57x57.png" />
+ <link rel="apple-touch-icon" sizes="72x72" href="/apple-touch-icon-72x72.png" />
+ <link rel="apple-touch-icon" sizes="76x76" href="/apple-touch-icon-76x76.png" />
+ <link rel="apple-touch-icon" sizes="114x114" href="/apple-touch-icon-114x114.png" />
+ <link rel="apple-touch-icon" sizes="120x120" href="/apple-touch-icon-120x120.png" />
+ <link rel="apple-touch-icon" sizes="152x152" href="/apple-touch-icon-152x152.png" />
+ <link rel="apple-touch-icon-precomposed" href="/t/assets/i/w-logo-orange.png" />
+ <link rel="icon" href="/t/assets/i/w-logo-orange.png" sizes="32x32" />
+ <link rel="icon" href="/t/assets/i/w-logo-orange.png" sizes="192x192" />
+ <link rel="icon" type="image/png" href="/favicon-96x96.png" sizes="96x96" />
+ <link rel="icon" type="image/png" href="/android-chrome-192x192.png" sizes="192x192" />
+ <link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16" />
+ <meta property="op:markup_version" content="v1.0" />
+ <meta property="fb:use_automatic_ad_placement" content="true" />
+ <meta property="fb:pages" content="95475020353" />
+ <!--[if lt IE 9]><script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script><script src="//cdnjs.cloudflare.com/ajax/libs/selectivizr/1.0.2/selectivizr-min.js"></script><script src="//cdnjs.cloudflare.com/ajax/libs/placeholders/4.0.1/placeholders.min.js"></script><![endif]-->
+ <script src="https://apis.google.com/_/scs/apps-static/_/js/k=oz.gapi.zh_TW.tG5bnIHTb5g.O/m=client,plusone/rt=j/sv=1/d=1/ed=1/am=AQ/rs=AGLTcCPtGeQaUyun5lXJYreWuO_zbldYQQ/cb=gapi.loaded_0" async=""></script>
+ <script type="text/javascript" async="" src="https://d31qbv1cthcecs.cloudfront.net/atrk.js">
+ <script type="text/javascript" id="gptiscjs" async="" src="//www.googletagservices.com/tag/js/gpt.js" ></script>
+ </script>
+ <script async="" src="//www.google-analytics.com/analytics.js"></script>
+ <script type="text/javascript">
+ var isc_js_debug = !1,
+ isc_is_dev = !1,
+ isc_js_bc = 'author-4326 category-tech single single-post postid-5765662 js';
+ var isc_metric2 = 3;
+ if (document.cookie & amp; & amp; document.cookie.indexOf("Ba2=") & gt; - 1) isc_metric2 = document.cookie.indexOf("Ba2=1") & gt; - 1 ? 1 : 2;
+ var isc_metric1 = Date.now() % 2 == 0 ? 4 : 5;
+ if (document.cookie & amp; & amp; document.cookie.indexOf("Bb1=") & gt; - 1) isc_metric1 = document.cookie.indexOf("Bb1=4") & gt; - 1 ? 4 : 5;
+ if (window.location.search & amp; & amp; window.location.search.indexOf("toutinform") & gt; - 1) isc_metric1 = window.location.search.indexOf("toutinform=5") & gt; - 1 ? 5 : 4;
+ var _informq = _informq || [],
+ _ndnq = _ndnq || [],
+ _nw2e = _nw2e || [];
+ _informq.push(["hook", "inform-player-1/videoLoad", function(event) {
+ _informq.push(["command", "inform-player-2/destruct"]);
+ if (isc_metric1 === 5) typeof ISCJS.init_a_tout == "function" & amp; & amp;
+ ISCJS.init_a_tout()
+ }]);
+ if (isc_metric1 === 5) _informq.push(["hook", "inform-player-2/widgetEmbedStart", function(event) {
+ _informq.push(["command", "inform-player-2/destruct"]);
+ typeof ISCJS.init_a_tout == "function" & amp; & amp;
+ ISCJS.init_a_tout()
+ }]);
+ var isc_is_mobile = /IEMobile|BB10|Android|Silk|Kindle|Opera Mini|Opera Mobi|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent) ? !0 : !1,
+ isc_is_mobile_plus = isc_is_mobile || /mobile/i.test(navigator.userAgent) ? !0 : !1,
+ isc_js_bc = isc_is_mobile ? "ismobile " + isc_js_bc : isc_js_bc,
+ isc_is_prod = window.location.href.indexOf(".breitbart.com") == 10,
+ isc_is_preview = window.location.href.indexOf("preview=true") & gt; - 1 & amp; & amp;
+ window.location.href.indexOf("preview_id=") & gt; - 1, isc_is_single = isc_js_bc.indexOf("single") & gt; - 1, isc_is_home =
+ /home blog /.test(isc_js_bc), isc_is_video = window.location.pathname.indexOf("/video/") == 0, isc_is_wire = window.location.pathname.indexOf("/news/") == 0 || isc_js_bc.indexOf("-wire") & gt; - 1, isc_is_cookie = document.cookie & amp; & amp;
+ document.cookie.length & gt;
+ 0, isc_is_ssl = "https:" == document.location.protocol ? true : false, isc_is_canvas = isc_js_bc.indexOf("cat-view-customize") & gt; - 1, isc_is_qazy = !isc_is_canvas & amp; & amp;
+ !isc_is_ssl & amp; & amp;
+ !isc_is_preview & amp; & amp;
+ !isc_is_home & amp; & amp;
+ !isc_is_mobile_plus & amp; & amp;
+ !(isc_is_video & amp; & amp; !isc_is_single);
+ if (isc_is_qazy) {
+ var qazy = {
+ runs: 0,
+ io: null,
+ x: 0,
+ dimg: "data:image/gif;base64,R0lGODlhAQABAPAAAAAAAAAAACH5BAUAAAAALAAAAAABAAEAAAICRAEAOw==",
+ RunIO: function() {
+ if (qazy.runs++ & gt; 5) qazy.StopIO();
+ qazy.MakeList();
+ return
+ },
+ StopIO: function() {
+ "number" === typeof qazy.io & amp; & amp;
+ (clearInterval(qazy.io), qazy.io = null);
+ return
+ },
+ MakeList: function() {
+ if (qazy.x === 0) {
+ qazy.x = 1;
+ var b = document.querySelectorAll("img[data-qazy='true']"),
+ d = b.length;
+ if (0 & lt; d)
+ for (var c = 0; c & lt; d; c++) {
+ var a = b[c];
+ if (a.src & amp; & amp; a.src.length & gt; 10) {
+ a.setAttribute("data-qazy",
+ "false");
+ a.setAttribute("data-qazy-src", a.src);
+ a.src = qazy.dimg
+ }
+ }
+ qazy.x = 0
+ }
+ return
+ }
+ };
+ qazy.io = setInterval(qazy.RunIO, 450);
+ if (window.addEventListener) window.addEventListener("load", qazy.StopIO, !1)
+ };
+ </script>
+ <script src="//breitbartproduction.disqus.com/count-data.js?1=5765662&amp;1=5983254&amp;1=5991950&amp;1=5998654&amp;1=6001310&amp;1=6001354&amp;1=6001426&amp;1=6001618&amp;1=6001622&amp;1=6001754&amp;1=6002926&amp;1=6003278&amp;1=6003326&amp;1=6003438&amp;1=6003894&amp;1=6003906&amp;1=6003970&amp;1=6004026&amp;1=6004306&amp;1=6004358&amp;1=6004430&amp;1=6004762&amp;1=6005154&amp;1=6005234&amp;1=6005298&amp;1=6005550&amp;1=6005858&amp;1=6006154"></script>
+ <script type="text/javascript" charset="utf-8" async="" src="https://platform.twitter.com/js/tweet.08991409fe8c7862c0aa5cc77e44569a.js"></script>
+ <script src="https://securepubads.g.doubleclick.net/gpt/pubads_impl_108.js" async=""></script>
+ <link rel="prefetch" href="http://tpc.googlesyndication.com/safeframe/1-0-5/html/container.html" />
+ <script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="models/Ndn/Widget" src="http://launch.newsinc.com/165/js/models/Ndn/Widget.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="perfectPixel90085" src="http://dmeserve.newsinc.com/dpid/90085/PPEmbed.js"></script>
+ <link rel="stylesheet" type="text/css" href="http://launch.newsinc.com/165/css/NdnEmbed.css" />
+ <link rel="stylesheet" type="text/css" href="http://launch.newsinc.com/165/css/NdnEmbed2.css" />
+ <style type="text/css">
+ .trc_rbox_container {
+ direction: ltr;
+ text-align: left
+ }
+
+ .trc_rbox_header {
+ border-style: solid;
+ border-width: 0
+ }
+
+ .in_trc_header {
+ position: relative!important;
+ float: right;
+ margin: 0
+ }
+
+ #trc_rbox_css_loaded {
+ overflow: hidden;
+ width: 0;
+ height: 0
+ }
+
+ .trc_rbox {
+ margin-top: 0
+ }
+
+ .trc_rbox_div {
+ margin: 0 0 3px;
+ direction: ltr;
+ padding: 0;
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ overflow: auto;
+ position: relative;
+ width: auto;
+ *width: auto;
+ border: solid #CCC 1px
+ }
+
+ .loading-animation span {
+ display: block
+ }
+
+ .videoCube {
+ zoom: 1;
+ cursor: pointer;
+ float: none;
+ overflow: hidden;
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ -webkit-box-sizing: border-box
+ }
+
+ div.videoCube:hover,
+ .videoCube_hover {
+ cursor: pointer
+ }
+
+ .videoCube span.video-title:hover,
+ .videoCube_hover span.video-title {
+ text-decoration: underline
+ }
+
+ .videoCube a {
+ text-decoration: none;
+ border: 0;
+ color: #000;
+ cursor: pointer
+ }
+
+ .videoCube a:hover,
+ .videoCube_hover a,
+ .videoCube a:link,
+ .videoCube a {
+ text-decoration: none!important;
+ outline: 0
+ }
+
+ .videoCube a .thumbBlock {
+ float: left;
+ display: block;
+ overflow: hidden!important
+ }
+
+ .videoCube a img,
+ .videoCube img {
+ border: 0;
+ _border: 0;
+ display: block;
+ margin: 0;
+ height: auto;
+ width: auto
+ }
+
+ .videoCube .video-label {
+ display: block;
+ overflow: hidden
+ }
+
+ .videoCube .video-title {
+ width: auto!important;
+ white-space: pre-wrap;
+ white-space: -moz-pre-wrap;
+ white-space: -o-pre-wrap;
+ word-wrap: break-word
+ }
+
+ .videoCube .video-duration a {}
+
+ .videoCube .video-duration {
+ height: 0;
+ float: left;
+ position: relative;
+ color: #fff;
+ font-size: 11px
+ }
+
+ .videoCube .video-duration dt {
+ border-radius: 4px;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ background-color: #000;
+ opacity: .6;
+ filter: alpha(opacity=60)
+ }
+
+ .videoCube span.video-label.trc_ellipsis {
+ position: relative;
+ overflow: hidden;
+ display: -webkit-box;
+ -webkit-box-orient: vertical
+ }
+
+ .videoCube span.video-label.trc-smart-ellipsis {
+ position: relative;
+ overflow: hidden
+ }
+
+ .videoCube span.video-label.trc-smart-ellipsis ins {
+ display: inline-block;
+ text-decoration: inherit
+ }
+
+ .videoCube span.video-label.trc-smart-ellipsis ins.lastLineEllipsis {
+ display: block;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ word-wrap: normal
+ }
+
+ .sponsored-default .video-description {
+ font-weight: 400;
+ color: #000;
+ font-size: 9px;
+ max-height: 22px;
+ *height: 22px;
+ overflow: hidden;
+ line-height: 9px
+ }
+
+ .video-duration.video-duration-detail div {
+ color: #fff
+ }
+
+ .sponsored-default {
+ background-color: #f7f6c6;
+ padding-bottom: 0!important
+ }
+
+ .trc_rbox .sponsored {
+ position: relative;
+ display: block;
+ overflow: visible;
+ height: auto;
+ width: auto;
+ padding-right: 0;
+ text-align: right;
+ font-size: 9px
+ }
+
+ .sponsored-url {
+ white-space: nowrap;
+ float: left;
+ overflow: hidden;
+ width: 98%;
+ height: auto;
+ margin-top: 0;
+ margin-left: 1px;
+ padding-bottom: 2px;
+ color: green;
+ font-size: 9px;
+ text-decoration: underline
+ }
+
+ .sponsored-default .video-title {
+ height: 26px;
+ font-size: 11px;
+ line-height: 13px;
+ max-height: 26px;
+ *height: 26px
+ }
+
+ .sponsored-default .thumbBlock img {}
+
+ .sponsored-default .thumbBlock {
+ text-align: center;
+ background-color: transparent
+ }
+
+ .trc_rbox_div {
+ height: 410px
+ }
+
+ .videoCube {
+ direction: ltr;
+ font-size: 11px;
+ margin: 0;
+ color: #000;
+ border-width: 0
+ }
+
+ .videoCube.vertical:first-child {
+ border-top: 0;
+ margin-top: 0
+ }
+
+ .videoCube.horizontal:first-child {
+ border-left: 0;
+ margin-left: 0
+ }
+
+ .trc_rbox .trc_rbox_div .videoCube.vertical {
+ _margin-top: expression(this.previousSibling==null?'0':'default')
+ }
+
+ .trc_rbox .trc_rbox_div .videoCube.horizontal {
+ _margin-left: expression(this.previousSibling==null?'0':'default')
+ }
+
+ div.videoCube:hover,
+ .videoCube_hover {
+ background-color: #EBF0FF;
+ color: #000
+ }
+
+ .videoCube .thumbBlock {
+ margin-right: 5px;
+ margin-left: 1px;
+ border-style: solid
+ }
+
+ .videoCube a img,
+ .videoCube img {
+ border-color: #ececec
+ }
+
+ .videoCube .overlayImg {}
+
+ .videoCube .video-label-box {
+ margin-left: 81px
+ }
+
+ .videoCube .video-label dt {
+ font-weight: 700
+ }
+
+ .videoCube .video-title {
+ height: auto;
+ margin-bottom: 3px;
+ white-space: normal
+ }
+
+ .videoCube .trc_inline_detail_spacer {
+ display: inline-block;
+ white-space: pre
+ }
+
+ .sponsored-default {
+ padding-bottom: 0
+ }
+
+ .loading-animation {
+ font-family: sans;
+ font-size: 1.5em;
+ text-align: center;
+ color: gray;
+ height: 100%
+ }
+
+ .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-weight: 700;
+ text-decoration: none;
+ color: #000
+ }
+
+ .trc_header_right_part {
+ position: absolute;
+ left: 50%;
+ top: 0
+ }
+
+ .branding_div {
+ overflow: visible;
+ float: right
+ }
+
+ .branding_div img {
+ height: 20px
+ }
+
+ .trc_pager div {
+ float: left;
+ font-family: sans;
+ cursor: pointer;
+ margin-left: 2px;
+ margin-right: 2px
+ }
+
+ .trc_pager_prev,
+ .trc_pager_next {}
+
+ .trc_pager {
+ font-weight: 400
+ }
+
+ .trc_pager_pages {
+ display: block!important
+ }
+
+ .trc_related_container div.horizontal {
+ float: left;
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ -webkit-box-sizing: border-box
+ }
+
+ .trc_related_container div.vertical {}
+
+ .trc_related_container DIV.videoCube.thumbnail_top .thumbBlock,
+ .trc_related_container DIV.videoCube.thumbnail_bottom .thumbBlock {
+ float: none
+ }
+
+ @media screen and (-webkit-min-device-pixel-ratio:0) {
+ .sponsored-url {
+ margin-top: 2px
+ }
+ }
+
+ .vidiscovery-note {
+ display: none
+ }
+
+ .pager_disabled {
+ cursor: auto
+ }
+
+ .videoCube .thumbBlock .trc_sponsored_overlay_base {
+ display: block;
+ width: auto;
+ margin-left: 0;
+ position: absolute;
+ color: #fff!important
+ }
+
+ .videoCube .thumbBlock .trc_sponsored_overlay {
+ filter: alpha(opacity=60);
+ opacity: .6;
+ display: block;
+ position: absolute;
+ *left: 0
+ }
+
+ .videoCube .thumbBlock .trc_sponsored_overlay_base .sponsored {
+ position: relative;
+ display: block;
+ overflow: visible;
+ width: auto;
+ text-align: center;
+ padding: 0 5px;
+ margin-top: 0
+ }
+
+ .videoCube .thumbBlock .trc_sponsored_overlay_base.round .trc_sponsored_overlay {
+ border-radius: 4px;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px
+ }
+
+ .videoCube .thumbBlock .trc_sponsored_overlay_base.round {
+ margin-left: 4px
+ }
+
+ .thumbnail-emblem {
+ background-color: transparent;
+ background-repeat: no-repeat;
+ position: absolute;
+ z-index: 50
+ }
+
+ .playerCube .thumbnail-overlay,
+ .videoCube .thumbnail-overlay {
+ position: absolute;
+ background-color: transparent;
+ background-repeat: no-repeat;
+ z-index: 50
+ }
+
+ .videoCube:hover .thumbnail-overlay,
+ .videoCube_hover .thumbnail-overlay {
+ position: absolute;
+ background-color: transparent;
+ background-repeat: no-repeat;
+ z-index: 50
+ }
+
+ .thumbnail_bottom {
+ padding-bottom: 8px
+ }
+
+ .trc_pager_next img,
+ trc_pager_next pager_disabled img,
+ trc_pager_next:hover img {
+ -moz-transform: scaleX(-1);
+ -o-transform: scaleX(-1);
+ -webkit-transform: scaleX(-1);
+ transform: scaleX(-1);
+ filter: FlipH;
+ -ms-filter: "FlipH"
+ }
+
+ .trc_cover_iframe {
+ position: absolute;
+ z-index: 100000;
+ top: 0;
+ left: 0;
+ background: #000;
+ opacity: .4;
+ filter: alpha(opacity=40);
+ border: 0
+ }
+
+ .trc_lightbox_base {
+ z-index: 100001;
+ position: fixed
+ }
+
+ .trc_lightbox_overlay {
+ background-color: transparent;
+ position: absolute;
+ z-index: 100002
+ }
+
+ .trc_lightbox_transparent {
+ position: absolute;
+ z-index: 100003
+ }
+
+ #trc_lightbox_header {
+ font-family: "Trebuchet MS", Helvetica, sans-serif
+ }
+
+ .trc_whitebox {
+ background-color: #fff;
+ position: relative;
+ z-index: 100004;
+ padding: 0 20px 20px;
+ margin: 0 auto;
+ border: 2px solid #000;
+ -moz-box-shadow: 3px 3px 20px #000;
+ -webkit-box-shadow: 3px 3px 20px #000;
+ box-shadow: 3px 3px 20px #000;
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+ box-sizing: content-box;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px
+ }
+
+ .trc_whiteboxCloseButton {
+ width: 32px;
+ height: 32px;
+ border: 0;
+ position: absolute;
+ right: -16px;
+ top: -14px;
+ cursor: pointer;
+ background: url(//cdn.taboola.com/taboola-generic/close.png) no-repeat top left transparent;
+ color: #fff;
+ color: transparent;
+ font-size: 0
+ }
+
+ .trc_related_container .logoDiv {
+ font-family: Arial, Helvetica, sans-serif;
+ white-space: nowrap;
+ font-size: 9px
+ }
+
+ .trc_related_container .logoDiv a {
+ font-size: 9px;
+ text-decoration: none!important;
+ color: #000;
+ margin-right: 1px;
+ vertical-align: text-bottom
+ }
+
+ .logoDiv a span:hover {
+ text-decoration: underline
+ }
+
+ .trc_rbox_header .logoDiv {
+ font-size: 1em
+ }
+
+ .trc_related_container .vertical-start-shade {
+ background-image: url(//cdn.taboola.com/taboola-generic/shade-down.png);
+ height: 10px;
+ width: auto;
+ position: absolute;
+ z-index: 5
+ }
+
+ .trc_related_container .vertical-end-shade {
+ background-image: url(//cdn.taboola.com/taboola-generic/shade-up.png);
+ height: 10px;
+ width: auto;
+ position: absolute;
+ z-index: 5
+ }
+
+ .trc_related_container .horizontal-start-shade {
+ background-image: url(//cdn.taboola.com/taboola-generic/shade-right.png);
+ height: auto;
+ width: 10px;
+ position: absolute;
+ z-index: 5
+ }
+
+ .trc_related_container .horizontal-end-shade {
+ background-image: url(//cdn.taboola.com/taboola-generic/shade-left.png);
+ height: auto;
+ width: 10px;
+ position: absolute;
+ z-index: 5
+ }
+
+ .trc_rbox_container.trc_expandable {
+ overflow: hidden;
+ max-height: 0;
+ transition-property: max-height;
+ -webkit-transition-property: max-height;
+ -moz-transition-property: max-height;
+ -o-transition-property: max-height;
+ -webkit-transform: translateZ(0);
+ -moz-transform: translateZ(0);
+ -ms-transform: translateZ(0);
+ -o-transform: translateZ(0);
+ transform: translateZ(0)
+ }
+
+ DIV.trc_autoplaylist-box {
+ margin: 6px auto 0;
+ border: 0;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ padding: 4px;
+ font-family: "Trebuchet MS", Helvetica, sans-serif;
+ width: 320px;
+ background: #191919;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#191919', endColorstr='#393939');
+ -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#191919, endColorstr=#393939)";
+ background: -webkit-gradient(linear, left top, left bottom, from(#191919), to(#393939));
+ background: -moz-linear-gradient(top, #191919, #393939);
+ background: linear-gradient(top, #191919, #393939)
+ }
+
+ DIV.trc_autoplaylist-box .trc-next-up-header {
+ font-size: 14px;
+ color: #CCC;
+ float: left;
+ line-height: 31px;
+ margin: 0 4px 0 6px;
+ overflow: hidden;
+ white-space: nowrap
+ }
+
+ DIV.trc_autoplaylist-box .trc-next-up-countdown {
+ color: #fff;
+ font-weight: 700;
+ font-size: 15px;
+ padding-left: 4px
+ }
+
+ DIV.trc_autoplaylist-box .nextup {
+ cursor: pointer
+ }
+
+ DIV.trc_autoplaylist-box .nextup .thumbblock {
+ border: solid #FEFEFE 1px;
+ margin-right: 10px
+ }
+
+ DIV.trc_autoplaylist-box:hover .nextup .thumbblock SPAN.thumbnail-overlay {
+ background-image: url(//cdn.taboola.com/taboola-generic/lightbox-overlay.png)
+ }
+
+ DIV.trc_autoplaylist-box .nextup .video-label-box {
+ color: #fff;
+ font-weight: 700;
+ font-size: 12px;
+ line-height: 14px
+ }
+
+ .trc-syndication-link {
+ text-decoration: none;
+ color: inherit
+ }
+
+ .playerCube {
+ width: 100%;
+ height: 100%;
+ position: relative;
+ cursor: pointer
+ }
+
+ .playerCube .thumbnail-overlay {
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: 0;
+ position: absolute
+ }
+
+ .trc_related_container .whatsThisSyndicated {
+ position: absolute;
+ cursor: pointer
+ }
+
+ .trc_related_container .whatsThisSyndicated.a-bottom-right,
+ .trc_related_container .static-text.bottom-right {
+ bottom: 0;
+ right: 0
+ }
+
+ .trc_related_container .whatsThisSyndicated.a-top-right,
+ .trc_related_container .static-text.top-right {
+ top: 0;
+ right: 0
+ }
+
+ .trc_related_container .whatsThisSyndicated.a-bottom-left,
+ .trc_related_container .static-text.bottom-left {
+ bottom: 0;
+ left: 0
+ }
+
+ .trc_related_container .whatsThisSyndicated.a-top-left,
+ .trc_related_container .static-text.top-left {
+ top: 0;
+ left: 0
+ }
+
+ .trc_related_container .videoCube .thumbBlock .branding {
+ position: absolute;
+ bottom: 0;
+ z-index: 1;
+ width: 100%;
+ margin: 0;
+ padding: 5px 0;
+ text-align: center
+ }
+
+ .syndicatedItem .branding {
+ margin: 0
+ }
+
+ .trc_related_container .videoCube .thumbBlock .static-text {
+ position: absolute;
+ z-index: 1;
+ margin: 0;
+ padding: 5px;
+ background-color: #000;
+ color: #fff;
+ display: block;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: 400;
+ text-align: left;
+ text-decoration: none;
+ opacity: .7
+ }
+
+ .trc_related_container .static-text.top {
+ width: 100%;
+ top: 0;
+ padding: 5px 0
+ }
+
+ .trc_related_container .static-text.bottom {
+ width: 100%;
+ bottom: 0;
+ padding: 2px 0
+ }
+
+ .trc-inplayer-rbox {
+ background: #333;
+ background: rgba(30, 30, 30, .9);
+ *background: #333;
+ bottom: 0;
+ position: absolute;
+ height: 300px;
+ text-align: center
+ }
+
+ .trc-inplayer-rbox .trc_rbox_container {
+ margin: 50px auto 0;
+ width: 640px
+ }
+
+ .trc_rbox.trc-auto-size {
+ width: 100%;
+ height: 100%
+ }
+
+ .videoCube.thumbnail_under .thumbBlock {
+ margin-left: 0;
+ margin-right: 0
+ }
+
+ .videoCube.thumbnail_under .label-box-overlay {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ background: #000;
+ opacity: .75;
+ filter: alpha(opacity=75);
+ top: 0;
+ _display: none
+ }
+
+ .videoCube.thumbnail_under .video-labels-anchor {
+ width: 100%;
+ height: auto;
+ position: absolute;
+ z-index: 1;
+ left: 0;
+ bottom: 0;
+ min-height: 2.58em;
+ max-height: 2.58em;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ _background-color: #CECECE;
+ -webkit-transition: all .2s linear;
+ -moz-transition: all .2s linear;
+ -ms-transition: all .2s linear;
+ -o-transition: all .2s linear;
+ transition: all .2s linear;
+ line-height: 1.25em
+ }
+
+ .videoCube.thumbnail_under .video-labels-anchor span.video-title,
+ .videoCube.thumbnail_under .video-labels-anchor span.branding {
+ position: relative;
+ z-index: 1;
+ padding: 0 3px;
+ margin: 0
+ }
+
+ .videoCube.thumbnail_under .video-title {
+ min-height: 2.58em
+ }
+
+ .videoCube.thumbnail_under:hover .video-labels-anchor {
+ opacity: 1;
+ max-height: 6.45em
+ }
+
+ .trc-auto-size .trc_rbox_outer .trc_rbox_div {
+ height: auto;
+ width: auto
+ }
+
+ .trc-auto-size .trc_rbox_div .videoCube {
+ height: auto
+ }
+
+ .trc-auto-size .trc_rbox_div .videoCube.trc-first-recommendation {
+ margin-top: 0
+ }
+
+ .trc_rbox .trc_rbox_outer .trc_rbox_div .videoCube.trc-first-in-row {
+ margin-left: 0
+ }
+
+ .trc_elastic .trc_rbox {
+ width: auto
+ }
+
+ .trc_elastic .videoCube {
+ overflow: hidden
+ }
+
+ .trc_elastic .videoCube .thumbBlock {
+ display: block;
+ background-color: transparent;
+ background-position: center center;
+ background-repeat: no-repeat;
+ background-size: cover;
+ position: absolute;
+ display: inline-block;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ margin-left: 0;
+ margin-right: 0
+ }
+
+ .trc_elastic .thumbBlock_holder {
+ position: relative;
+ width: 100%
+ }
+
+ .trc_elastic .thumbnail_start .thumbBlock_holder {
+ float: left;
+ margin-right: 10px
+ }
+
+ .trc_elastic .videoCube_aspect {
+ width: 1px
+ }
+
+ .trc_elastic .trc_rbox .trc_rbox_div {
+ height: auto
+ }
+
+ .trc_elastic .video-label-box {
+ display: block
+ }
+
+ .trc_user_adChoice_btn {
+ background: url(//cdn.taboola.com/libtrc/static/thumbnails/3aadbb71016ecd7a194bbe2791777e9a.png) no-repeat scroll 0 0 rgba(255, 255, 255, .7);
+ border-radius: 0 0 0 5px;
+ width: 16px;
+ height: 16px;
+ position: absolute;
+ right: 0;
+ top: 0;
+ z-index: 9000;
+ cursor: pointer;
+ visibility: hidden
+ }
+
+ .trc_user_adChoice_anchor {
+ width: 100%;
+ height: 100%;
+ position: absolute
+ }
+
+ .videoCube:hover .trc_user_adChoice_btn,
+ .videoCube_hover .trc_user_adChoice_btn {
+ visibility: visible
+ }
+
+ .trc_user_exclude_btn {
+ background: url(//cdn.taboola.com/libtrc/static/thumbnails/f539211219b796ffbb49949997c764f0.png) no-repeat scroll 0 0 transparent;
+ width: 12px;
+ height: 12px;
+ position: absolute;
+ right: 2px;
+ top: 2px;
+ z-index: 9000;
+ cursor: pointer;
+ visibility: hidden
+ }
+
+ .trc_undo_btn {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 11px;
+ line-height: 14px;
+ font-weight: 400;
+ color: #36C;
+ text-decoration: underline;
+ cursor: pointer;
+ position: absolute;
+ right: 2px;
+ top: 2px;
+ padding: 0 1px;
+ z-index: 11000;
+ visibility: hidden
+ }
+
+ .videoCube:hover .trc_user_exclude_btn,
+ .videoCube_hover .trc_user_exclude_btn,
+ .trc_user_excluded.videoCube:hover .trc_undo_btn,
+ .trc_user_excluded.videoCube_hover .trc_undo_btn,
+ .trc_undo_btn.trc_anchor {
+ visibility: visible
+ }
+
+ .videoCube.trc_user_excluded .trc_user_exclude_btn {
+ visibility: hidden
+ }
+
+ .trc_fade {
+ opacity: 0;
+ filter: alpha(opacity=0);
+ visibility: hidden;
+ transition: opacity 500ms 0s, visibility 0s 500ms;
+ -webkit-transition: opacity 500ms 0s, visibility 0s 500ms;
+ -moz-transition: opacity 500ms 0s, visibility 0s 500ms;
+ -o-transition: opacity 500ms 0s, visibility 0s 500ms;
+ -ms-transition: opacity 500ms 0s, visibility 0s 500ms
+ }
+
+ .trc_fade.trc_in,
+ .trc_user_excluded .trc_exclude_overlay {
+ visibility: visible;
+ opacity: 1;
+ filter: alpha(opacity=100);
+ transition-delay: 0s, 0s;
+ -moz-transition-delay: 0s, 0s;
+ -webkit-transition-delay: 0s, 0s;
+ -o-transition-delay: 0s, 0s;
+ -ms-transition-delay: 0s, 0s
+ }
+
+ .trc_excludable .trc_exclude_overlay {
+ position: absolute;
+ z-index: 10000;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ cursor: default;
+ background-color: #fff
+ }
+
+ .videoCube.trc_excludable .trc_exclude_overlay.trc_fade {
+ filter: alpha(opacity=80)\9
+ }
+
+ .videoCube.trc_user_excluded .trc_exclude_overlay {
+ visibility: visible;
+ opacity: .8;
+ filter: alpha(opacity=80)
+ }
+
+ .videoCube.trc_user_excluded .thumbBlock {
+ filter: url("data:image/svg+xml;utf8,&lt;svg xmlns='http://www.w3.org/2000/svg'&gt;&lt;filter id='grayscale'&gt;&lt;feColorMatrix type='matrix' values='0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0' /&gt;&lt;/filter&gt;&lt;/svg&gt;#grayscale");
+ filter: gray;
+ -webkit-filter: grayscale(100%)
+ }
+
+ .videoCube.trc_user_excluded:hover a .video-label-box .video-title,
+ .videoCube_hover.trc_user_excluded a .video-label-box .video-title {
+ text-decoration: none
+ }
+
+ .videoCube.trc_user_excluded a .video-label-box *,
+ .videoCube.trc_user_excluded:hover a .video-label-box *,
+ .videoCube_hover.trc_user_excluded a .video-label-box * {
+ color: #000;
+ overflow: hidden;
+ -webkit-transition: color 500ms 0s;
+ -moz-transition: color 500ms 0s;
+ -ms-transition: color 500ms 0s;
+ -o-transition: color 500ms 0s;
+ transition: color 500ms 0s
+ }
+
+ .videoCube.trc_user_excluded a .video-label-box .label-box-overlay {
+ background-color: #BBB;
+ -webkit-transition: background-color 500ms 0s;
+ -moz-transition: background-color 500ms 0s;
+ -ms-transition: background-color 500ms 0s;
+ -o-transition: background-color 500ms 0s;
+ transition: background-color 500ms 0s
+ }
+
+ .videoCube.thumbnail_under.trc_user_excluded .video-labels-anchor,
+ .videoCube.thumbnail_under.trc_user_excluded:hover .video-labels-anchor {
+ max-height: none;
+ -webkit-transition: none;
+ -moz-transition: none;
+ -ms-transition: none;
+ -o-transition: none;
+ transition: none
+ }
+
+ .trc_related_container .trc_clearer {
+ clear: both;
+ height: 0;
+ overflow: hidden;
+ font-size: 0;
+ line-height: 0;
+ visibility: hidden
+ }
+
+ .link-adc {
+ float: right!important
+ }
+
+ .trc-widget-footer .link-adc a .trc_adc_wrapper,
+ .trc_header_ext .link-adc a .trc_adc_wrapper {
+ vertical-align: baseline;
+ height: 15px;
+ width: 19px;
+ display: inline-block;
+ position: relative
+ }
+
+ .trc-widget-footer .link-adc a .trc_adc_s_logo,
+ .trc_header_ext .link-adc a .trc_adc_s_logo,
+ .trc-widget-footer .link-adc a .trc_adc_b_logo,
+ .trc_header_ext .link-adc a .trc_adc_b_logo {
+ vertical-align: middle;
+ height: 15px;
+ display: inline-block;
+ margin-top: -1px
+ }
+
+ .trc-widget-footer .link-adc a .trc_adc_s_logo,
+ .trc_header_ext .link-adc a .trc_adc_s_logo {
+ width: 19px;
+ background: url(//cdn.taboola.com/libtrc/static/thumbnails/3aadbb71016ecd7a194bbe2791777e9a.png) no-repeat!important
+ }
+
+ .trc-widget-footer .link-adc a .trc_adc_b_logo,
+ .trc_header_ext .link-adc a .trc_adc_b_logo {
+ width: 77px;
+ background: #fff url(//cdn.taboola.com/libtrc/static/thumbnails/0781f9c5a8637d1e162874f157460048.png) no-repeat!important;
+ right: -1px;
+ display: none;
+ position: absolute
+ }
+
+ .trc_mobile_disclosure_link,
+ .trc_mobile_attribution_link,
+ .trc_mobile_adc_link {
+ display: none
+ }
+
+ .trc_desktop_disclosure_link,
+ .trc_desktop_attribution_link,
+ .trc_desktop_adc_link {
+ display: inline
+ }
+
+ @media screen and (max-width:767px) {
+ .trc_mobile_disclosure_link {
+ display: inline
+ }
+ .trc_mobile_attribution_link {
+ display: inline
+ }
+ .trc_mobile_adc_link {
+ display: inline
+ }
+ .trc_desktop_disclosure_link {
+ display: none
+ }
+ .trc_desktop_attribution_link {
+ display: none
+ }
+ .trc_desktop_adc_link {
+ display: none
+ }
+ }
+
+ .trc_in_iframe .trc_mobile_attribution_link,
+ .trc_in_iframe .trc_mobile_disclosure_link {
+ display: inline
+ }
+
+ .trc_in_iframe .trc_desktop_attribution_link,
+ .trc_in_iframe .trc_desktop_disclosure_link {
+ display: none
+ }
+
+ .trc_related_container .logoDiv,
+ .trc_related_container .trc_header_ext .logoDiv {
+ float: right
+ }
+
+ .trc_related_container .logoDiv+.logoDiv {
+ margin-right: 2px
+ }
+
+ .trc_related_container .attribution-disclosure-link-sponsored,
+ .trc_related_container .attribution-disclosure-link-hybrid {
+ display: none
+ }
+
+ .trc_related_container .trc-content-sponsored .attribution-disclosure-link-sponsored {
+ display: block
+ }
+
+ .trc_related_container .trc-content-hybrid .attribution-disclosure-link-hybrid {
+ display: block
+ }
+
+ .trc_related_container .trc-widget-footer:hover a span,
+ .trc_related_container .trc_header_ext:hover a span {
+ text-decoration: underline!important
+ }
+
+ .logoDiv a span.trc_logos_v_align {
+ display: inline-block!important;
+ font-size: 15px!important;
+ line-height: 1em!important;
+ width: 0!important
+ }
+
+ .trc_related_container .trc_header_ext:hover a span.trc_logos_v_align,
+ .trc_related_container .trc_header_ext:hover a span.trc_adc_wrapper,
+ .trc_related_container .trc-widget-footer:hover a span.trc_logos_v_align,
+ .trc_related_container .trc-widget-footer:hover a span.trc_adc_wrapper {
+ text-decoration: none!important
+ }
+
+ .trc_related_container {
+ clear: both
+ }
+
+ .ab_thumbs-2rx2_abp-mode .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14.0px;
+ line-height: 19.0px;
+ font-weight: bold;
+ max-height: 76.0px;
+ *height: 76.0px;
+ color: #000;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .video-label,
+ .ab_thumbs-2rx2_abp-mode .sponsored,
+ .ab_thumbs-2rx2_abp-mode .sponsored-url {
+ font-family: georgia, times, serif;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 20.0px;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0 0 6px 0;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-style: none;
+ }
+
+ .ab_thumbs-2rx2_abp-mode div.videoCube:hover,
+ .ab_thumbs-2rx2_abp-mode div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_thumbs-2rx2_abp-mode div.sponsored-default:hover,
+ .ab_thumbs-2rx2_abp-mode div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .videoCube:hover .thumbnail-overlay,
+ .ab_thumbs-2rx2_abp-mode .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbs-2rx2_abp-mode div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .trc_pager_prev:hover,
+ .ab_thumbs-2rx2_abp-mode .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_thumbs-2rx2_abp-mode div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_thumbs-2rx2_abp-mode .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_thumbs-2rx2_abp-mode {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px;
+ border-style: none;
+ border-color: #000000;
+ padding: 0;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .trc_pager_prev,
+ .ab_thumbs-2rx2_abp-mode .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .playerCube:hover .thumbnail-overlay,
+ .ab_thumbs-2rx2_abp-mode .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .playerCube div.videoCube:hover,
+ .ab_thumbs-2rx2_abp-mode div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_thumbs-2rx2_abp-mode div.syndicatedItem:hover,
+ .ab_thumbs-2rx2_abp-mode div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbs-2rx2_abp-mode div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ border-style: none;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .syndicatedItem .video-title {
+ max-height: 57.0px;
+ *height: 57.0px;
+ color: #000;
+ font-family: georgia, times, serif;
+ font-size: 14.0px;
+ line-height: 19.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: georgia, times, serif;
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14.0px;
+ line-height: 19.0px;
+ font-weight: bold;
+ max-height: 76.0px;
+ *height: 76.0px;
+ color: #111;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .video-label,
+ .ab_thumbs-2rx2_ratio-3x2 .sponsored,
+ .ab_thumbs-2rx2_ratio-3x2 .sponsored-url {
+ font-family: georgia, times, serif;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 20.0px;
+ font-weight: bold;
+ text-decoration: none;
+ color: #111;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0 0 6px 0;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-style: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 div.videoCube:hover,
+ .ab_thumbs-2rx2_ratio-3x2 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 div.sponsored-default:hover,
+ .ab_thumbs-2rx2_ratio-3x2 div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .videoCube:hover .thumbnail-overlay,
+ .ab_thumbs-2rx2_ratio-3x2 .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .trc_pager_prev:hover,
+ .ab_thumbs-2rx2_ratio-3x2 .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px;
+ border-style: none;
+ border-color: #000000;
+ padding: 0;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .trc_pager_prev,
+ .ab_thumbs-2rx2_ratio-3x2 .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .playerCube:hover .thumbnail-overlay,
+ .ab_thumbs-2rx2_ratio-3x2 .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .playerCube div.videoCube:hover,
+ .ab_thumbs-2rx2_ratio-3x2 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 div.syndicatedItem:hover,
+ .ab_thumbs-2rx2_ratio-3x2 div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ border-style: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .syndicatedItem .video-title {
+ max-height: 57.0px;
+ *height: 57.0px;
+ color: #111;
+ font-family: georgia, times, serif;
+ font-size: 14.0px;
+ line-height: 19.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: georgia, times, serif;
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14.0px;
+ line-height: 19.0px;
+ font-weight: bold;
+ max-height: 76.0px;
+ *height: 76.0px;
+ color: #111;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .video-label,
+ .ab_thumbs-2rx2_ratio-4x3 .sponsored,
+ .ab_thumbs-2rx2_ratio-4x3 .sponsored-url {
+ font-family: georgia, times, serif;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 20.0px;
+ font-weight: bold;
+ text-decoration: none;
+ color: #111;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0 0 6px 0;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-style: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 div.videoCube:hover,
+ .ab_thumbs-2rx2_ratio-4x3 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 div.sponsored-default:hover,
+ .ab_thumbs-2rx2_ratio-4x3 div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .videoCube:hover .thumbnail-overlay,
+ .ab_thumbs-2rx2_ratio-4x3 .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .trc_pager_prev:hover,
+ .ab_thumbs-2rx2_ratio-4x3 .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px;
+ border-style: none;
+ border-color: #000000;
+ padding: 0;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .trc_pager_prev,
+ .ab_thumbs-2rx2_ratio-4x3 .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .playerCube:hover .thumbnail-overlay,
+ .ab_thumbs-2rx2_ratio-4x3 .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .playerCube div.videoCube:hover,
+ .ab_thumbs-2rx2_ratio-4x3 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 div.syndicatedItem:hover,
+ .ab_thumbs-2rx2_ratio-4x3 div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ border-style: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .syndicatedItem .video-title {
+ max-height: 57.0px;
+ *height: 57.0px;
+ color: #111;
+ font-family: georgia, times, serif;
+ font-size: 14.0px;
+ line-height: 19.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: georgia, times, serif;
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14.0px;
+ line-height: 19.0px;
+ font-weight: bold;
+ max-height: 76.0px;
+ *height: 76.0px;
+ color: #111;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .video-label,
+ .ab_thumbs-2rx2_ratio-8x5 .sponsored,
+ .ab_thumbs-2rx2_ratio-8x5 .sponsored-url {
+ font-family: georgia, times, serif;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 20.0px;
+ font-weight: bold;
+ text-decoration: none;
+ color: #111;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0 0 6px 0;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-style: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 div.videoCube:hover,
+ .ab_thumbs-2rx2_ratio-8x5 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 div.sponsored-default:hover,
+ .ab_thumbs-2rx2_ratio-8x5 div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .videoCube:hover .thumbnail-overlay,
+ .ab_thumbs-2rx2_ratio-8x5 .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .trc_pager_prev:hover,
+ .ab_thumbs-2rx2_ratio-8x5 .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px;
+ border-style: none;
+ border-color: #000000;
+ padding: 0;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .trc_pager_prev,
+ .ab_thumbs-2rx2_ratio-8x5 .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .playerCube:hover .thumbnail-overlay,
+ .ab_thumbs-2rx2_ratio-8x5 .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .playerCube div.videoCube:hover,
+ .ab_thumbs-2rx2_ratio-8x5 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 div.syndicatedItem:hover,
+ .ab_thumbs-2rx2_ratio-8x5 div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ border-style: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .syndicatedItem .video-title {
+ max-height: 57.0px;
+ *height: 57.0px;
+ color: #111;
+ font-family: georgia, times, serif;
+ font-size: 14.0px;
+ line-height: 19.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: georgia, times, serif;
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14.0px;
+ line-height: 19.0px;
+ font-weight: bold;
+ max-height: 76.0px;
+ *height: 76.0px;
+ color: #111;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .video-label,
+ .ab_thumbs-2rx2_ratio-9x5 .sponsored,
+ .ab_thumbs-2rx2_ratio-9x5 .sponsored-url {
+ font-family: georgia, times, serif;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 20.0px;
+ font-weight: bold;
+ text-decoration: none;
+ color: #111;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0 0 6px 0;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-style: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 div.videoCube:hover,
+ .ab_thumbs-2rx2_ratio-9x5 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 div.sponsored-default:hover,
+ .ab_thumbs-2rx2_ratio-9x5 div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .videoCube:hover .thumbnail-overlay,
+ .ab_thumbs-2rx2_ratio-9x5 .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .trc_pager_prev:hover,
+ .ab_thumbs-2rx2_ratio-9x5 .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px;
+ border-style: none;
+ border-color: #000000;
+ padding: 0;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .trc_pager_prev,
+ .ab_thumbs-2rx2_ratio-9x5 .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .playerCube:hover .thumbnail-overlay,
+ .ab_thumbs-2rx2_ratio-9x5 .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .playerCube div.videoCube:hover,
+ .ab_thumbs-2rx2_ratio-9x5 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 div.syndicatedItem:hover,
+ .ab_thumbs-2rx2_ratio-9x5 div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ border-style: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .syndicatedItem .video-title {
+ max-height: 57.0px;
+ *height: 57.0px;
+ color: #111;
+ font-family: georgia, times, serif;
+ font-size: 14.0px;
+ line-height: 19.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: georgia, times, serif;
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .ab_thumbs-2r_abp-mode .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14.0px;
+ line-height: 19.0px;
+ font-weight: bold;
+ max-height: 76.0px;
+ *height: 76.0px;
+ color: #000;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_abp-mode .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_abp-mode .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_thumbs-2r_abp-mode .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_thumbs-2r_abp-mode .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_thumbs-2r_abp-mode .video-label,
+ .ab_thumbs-2r_abp-mode .sponsored,
+ .ab_thumbs-2r_abp-mode .sponsored-url {
+ font-family: georgia, times, serif;
+ }
+
+ .ab_thumbs-2r_abp-mode .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 22.0px;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0 0 6px 0;
+ }
+
+ .ab_thumbs-2r_abp-mode .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_thumbs-2r_abp-mode .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_thumbs-2r_abp-mode .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_abp-mode .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_abp-mode .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_abp-mode .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_abp-mode .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_abp-mode .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_abp-mode .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_thumbs-2r_abp-mode .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_thumbs-2r_abp-mode .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-style: none;
+ }
+
+ .ab_thumbs-2r_abp-mode div.videoCube:hover,
+ .ab_thumbs-2r_abp-mode div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbs-2r_abp-mode .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_thumbs-2r_abp-mode div.sponsored-default:hover,
+ .ab_thumbs-2r_abp-mode div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_thumbs-2r_abp-mode .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbs-2r_abp-mode .videoCube:hover .thumbnail-overlay,
+ .ab_thumbs-2r_abp-mode .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbs-2r_abp-mode .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_thumbs-2r_abp-mode .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbs-2r_abp-mode div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbs-2r_abp-mode .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_thumbs-2r_abp-mode .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_thumbs-2r_abp-mode .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_thumbs-2r_abp-mode .trc_pager_prev:hover,
+ .ab_thumbs-2r_abp-mode .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbs-2r_abp-mode .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_thumbs-2r_abp-mode .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_thumbs-2r_abp-mode div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbs-2r_abp-mode .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_thumbs-2r_abp-mode .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbs-2r_abp-mode .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_thumbs-2r_abp-mode .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbs-2r_abp-mode .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_thumbs-2r_abp-mode {
+ width: 300px;
+ _width: 300px;
+ border-width: 1px 0 1px 0;
+ border-style: solid;
+ border-color: #CCC;
+ padding: 0;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_thumbs-2r_abp-mode .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbs-2r_abp-mode .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbs-2r_abp-mode .trc_pager_prev,
+ .ab_thumbs-2r_abp-mode .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_abp-mode .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_abp-mode .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_abp-mode .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_thumbs-2r_abp-mode .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbs-2r_abp-mode .playerCube:hover .thumbnail-overlay,
+ .ab_thumbs-2r_abp-mode .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbs-2r_abp-mode .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_thumbs-2r_abp-mode .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_thumbs-2r_abp-mode .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_thumbs-2r_abp-mode .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_abp-mode .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_abp-mode .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbs-2r_abp-mode .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_abp-mode .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_abp-mode .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_thumbs-2r_abp-mode .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_thumbs-2r_abp-mode .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbs-2r_abp-mode .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_abp-mode .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_abp-mode .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_abp-mode .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_thumbs-2r_abp-mode .playerCube div.videoCube:hover,
+ .ab_thumbs-2r_abp-mode div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbs-2r_abp-mode .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_thumbs-2r_abp-mode div.syndicatedItem:hover,
+ .ab_thumbs-2r_abp-mode div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbs-2r_abp-mode div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbs-2r_abp-mode .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ border-style: none;
+ }
+
+ .ab_thumbs-2r_abp-mode .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbs-2r_abp-mode .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_thumbs-2r_abp-mode .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbs-2r_abp-mode .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbs-2r_abp-mode .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_thumbs-2r_abp-mode .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_thumbs-2r_abp-mode .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_thumbs-2r_abp-mode .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_abp-mode .syndicatedItem .video-title {
+ max-height: 57.0px;
+ *height: 57.0px;
+ color: #000;
+ font-family: georgia, times, serif;
+ font-size: 14.0px;
+ line-height: 19.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_abp-mode .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_abp-mode .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_thumbs-2r_abp-mode .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_abp-mode .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_abp-mode .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_abp-mode .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_abp-mode .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_abp-mode .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_abp-mode .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_abp-mode .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: georgia, times, serif;
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_thumbs-2r_abp-mode .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_thumbs-2r_abp-mode .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_thumbs-2r_abp-mode .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: normal;
+ max-height: 88.0px;
+ *height: 88.0px;
+ color: #000;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .video-label,
+ .ab_thumbs-2r_backup-v-carousel .sponsored,
+ .ab_thumbs-2r_backup-v-carousel .sponsored-url {
+ font-family: georgia, times, serif;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 22.0px;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0 0 6px 0;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px 1px 1px 1px;
+ border-color: #D6D5D3;
+ padding: 0px 0px 0px 0px;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-style: NONE;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel div.videoCube:hover,
+ .ab_thumbs-2r_backup-v-carousel div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel div.sponsored-default:hover,
+ .ab_thumbs-2r_backup-v-carousel div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .videoCube:hover .thumbnail-overlay,
+ .ab_thumbs-2r_backup-v-carousel .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .trc_pager_prev:hover,
+ .ab_thumbs-2r_backup-v-carousel .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .trc_pager_prev,
+ .ab_thumbs-2r_backup-v-carousel .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .playerCube:hover .thumbnail-overlay,
+ .ab_thumbs-2r_backup-v-carousel .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .playerCube div.videoCube:hover,
+ .ab_thumbs-2r_backup-v-carousel div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel div.syndicatedItem:hover,
+ .ab_thumbs-2r_backup-v-carousel div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px 1px 1px 1px;
+ border-style: NONE;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .syndicatedItem .video-title {
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #000;
+ font-family: georgia, times, serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: georgia, times, serif;
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .ab_thumbs-2r_read-more .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: normal;
+ max-height: 88.0px;
+ *height: 88.0px;
+ color: #000;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_read-more .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_read-more .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_thumbs-2r_read-more .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_thumbs-2r_read-more .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_thumbs-2r_read-more .video-label,
+ .ab_thumbs-2r_read-more .sponsored,
+ .ab_thumbs-2r_read-more .sponsored-url {
+ font-family: georgia, times, serif;
+ }
+
+ .ab_thumbs-2r_read-more .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 22.0px;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0 0 6px 0;
+ }
+
+ .ab_thumbs-2r_read-more .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_thumbs-2r_read-more .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_thumbs-2r_read-more .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_read-more .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_read-more .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_read-more .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_read-more .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_read-more .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_read-more .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_thumbs-2r_read-more .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_thumbs-2r_read-more .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px 1px 1px 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-style: NONE;
+ }
+
+ .ab_thumbs-2r_read-more div.videoCube:hover,
+ .ab_thumbs-2r_read-more div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbs-2r_read-more .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_thumbs-2r_read-more div.sponsored-default:hover,
+ .ab_thumbs-2r_read-more div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_thumbs-2r_read-more .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbs-2r_read-more .videoCube:hover .thumbnail-overlay,
+ .ab_thumbs-2r_read-more .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbs-2r_read-more .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_thumbs-2r_read-more .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbs-2r_read-more div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbs-2r_read-more .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_thumbs-2r_read-more .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_thumbs-2r_read-more .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_thumbs-2r_read-more .trc_pager_prev:hover,
+ .ab_thumbs-2r_read-more .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbs-2r_read-more .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_thumbs-2r_read-more .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_thumbs-2r_read-more div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbs-2r_read-more .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_thumbs-2r_read-more .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbs-2r_read-more .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_thumbs-2r_read-more .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbs-2r_read-more .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_thumbs-2r_read-more {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_thumbs-2r_read-more .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbs-2r_read-more .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbs-2r_read-more .trc_pager_prev,
+ .ab_thumbs-2r_read-more .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_read-more .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_read-more .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_read-more .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_thumbs-2r_read-more .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbs-2r_read-more .playerCube:hover .thumbnail-overlay,
+ .ab_thumbs-2r_read-more .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbs-2r_read-more .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_thumbs-2r_read-more .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_thumbs-2r_read-more .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_thumbs-2r_read-more .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_read-more .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_read-more .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbs-2r_read-more .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_read-more .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_read-more .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_thumbs-2r_read-more .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_thumbs-2r_read-more .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbs-2r_read-more .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_read-more .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_read-more .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbs-2r_read-more .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_thumbs-2r_read-more .playerCube div.videoCube:hover,
+ .ab_thumbs-2r_read-more div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbs-2r_read-more .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_thumbs-2r_read-more div.syndicatedItem:hover,
+ .ab_thumbs-2r_read-more div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbs-2r_read-more div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbs-2r_read-more .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px 1px 1px 1px;
+ border-style: NONE;
+ }
+
+ .ab_thumbs-2r_read-more .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbs-2r_read-more .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_thumbs-2r_read-more .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbs-2r_read-more .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbs-2r_read-more .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_thumbs-2r_read-more .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_thumbs-2r_read-more .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_thumbs-2r_read-more .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_read-more .syndicatedItem .video-title {
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #000;
+ font-family: georgia, times, serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_read-more .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_read-more .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_thumbs-2r_read-more .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_read-more .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_read-more .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_read-more .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_read-more .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_read-more .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_read-more .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbs-2r_read-more .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: georgia, times, serif;
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_thumbs-2r_read-more .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_thumbs-2r_read-more .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_thumbs-2r_read-more .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .ab_verticalx2_reg .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 20px;
+ font-weight: normal;
+ max-height: 60px;
+ *height: 60px;
+ color: #FFFFFF;
+ text-decoration: none;
+ }
+
+ .ab_verticalx2_reg .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_verticalx2_reg .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: auto;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_verticalx2_reg .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_verticalx2_reg .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_verticalx2_reg .video-label,
+ .ab_verticalx2_reg .sponsored,
+ .ab_verticalx2_reg .sponsored-url {
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_verticalx2_reg .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 15px;
+ font-weight: bold;
+ text-decoration: none;
+ color: #989898;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #f0f0f0;
+ padding: 0;
+ }
+
+ .ab_verticalx2_reg .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_verticalx2_reg .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_verticalx2_reg .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_verticalx2_reg .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_verticalx2_reg .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_verticalx2_reg .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_verticalx2_reg .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_verticalx2_reg .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_verticalx2_reg .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_verticalx2_reg .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_verticalx2_reg .videoCube {
+ width: 100%;
+ _width: 100%;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #f0f0f0;
+ padding: 0;
+ height: auto;
+ margin-left: 0;
+ margin-top: 0;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-style: none;
+ }
+
+ .ab_verticalx2_reg div.videoCube:hover,
+ .ab_verticalx2_reg div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_verticalx2_reg .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_verticalx2_reg div.sponsored-default:hover,
+ .ab_verticalx2_reg div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_verticalx2_reg .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_verticalx2_reg .videoCube:hover .thumbnail-overlay,
+ .ab_verticalx2_reg .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_verticalx2_reg .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_verticalx2_reg .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_verticalx2_reg div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_verticalx2_reg .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_verticalx2_reg .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_verticalx2_reg .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_verticalx2_reg .trc_pager_prev:hover,
+ .ab_verticalx2_reg .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_verticalx2_reg .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_verticalx2_reg .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_verticalx2_reg div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_verticalx2_reg .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_verticalx2_reg .video-label-box {
+ text-align: left;
+ }
+
+ .ab_verticalx2_reg .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_verticalx2_reg .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_verticalx2_reg .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_verticalx2_reg {
+ width: 100%;
+ _width: 100%;
+ border-width: 0;
+ border-style: solid;
+ border-color: #f0f0f0;
+ padding: 0 0 0;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_verticalx2_reg .videoCube.vertical {
+ border-style: none;
+ }
+
+ .ab_verticalx2_reg .videoCube.horizontal {
+ border-style: none none none solid;
+ }
+
+ .ab_verticalx2_reg .trc_pager_prev,
+ .ab_verticalx2_reg .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_verticalx2_reg .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_verticalx2_reg .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_verticalx2_reg .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_verticalx2_reg .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_verticalx2_reg .playerCube:hover .thumbnail-overlay,
+ .ab_verticalx2_reg .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_verticalx2_reg .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_verticalx2_reg .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_verticalx2_reg .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_verticalx2_reg .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_verticalx2_reg .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_verticalx2_reg .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_verticalx2_reg .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_verticalx2_reg .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_verticalx2_reg .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_verticalx2_reg .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_verticalx2_reg .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_verticalx2_reg .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_verticalx2_reg .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_verticalx2_reg .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_verticalx2_reg .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_verticalx2_reg .playerCube div.videoCube:hover,
+ .ab_verticalx2_reg div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_verticalx2_reg .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_verticalx2_reg div.syndicatedItem:hover,
+ .ab_verticalx2_reg div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_verticalx2_reg div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_verticalx2_reg .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ border-style: none;
+ }
+
+ .ab_verticalx2_reg .videoCube.syndicatedItem.horizontal {
+ border-style: none none none solid;
+ }
+
+ .ab_verticalx2_reg .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_verticalx2_reg .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_verticalx2_reg .videoCube.syndicatedItem.vertical {
+ border-style: none none none none;
+ }
+
+ .ab_verticalx2_reg .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_verticalx2_reg .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_verticalx2_reg .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_verticalx2_reg .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_verticalx2_reg .syndicatedItem .video-title {
+ max-height: 40px;
+ *height: 40px;
+ color: #FFFFFF;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 20px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_verticalx2_reg .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_verticalx2_reg .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_verticalx2_reg .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_verticalx2_reg .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_verticalx2_reg .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_verticalx2_reg .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_verticalx2_reg .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_verticalx2_reg .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_verticalx2_reg .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_verticalx2_reg .syndicatedItem .branding {
+ color: #999;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_verticalx2_reg .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_verticalx2_reg .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_verticalx2_reg .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .organic-thumbnails-a .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: normal;
+ max-height: 88.0px;
+ *height: 88.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-a .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-a .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .organic-thumbnails-a .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .organic-thumbnails-a .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .organic-thumbnails-a .video-label,
+ .organic-thumbnails-a .sponsored,
+ .organic-thumbnails-a .sponsored-url {
+ font-family: georgia, times, serif;
+ }
+
+ .organic-thumbnails-a .trc_rbox_header {
+ font-family: bebasNeueRegular;
+ font-size: 28.0px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0 0 6px 0;
+ }
+
+ .organic-thumbnails-a .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .organic-thumbnails-a .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .organic-thumbnails-a .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-a .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-a .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-a .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-a .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-a .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-a .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .organic-thumbnails-a .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .organic-thumbnails-a .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-style: none;
+ }
+
+ .organic-thumbnails-a div.videoCube:hover,
+ .organic-thumbnails-a div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .organic-thumbnails-a .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .organic-thumbnails-a div.sponsored-default:hover,
+ .organic-thumbnails-a div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .organic-thumbnails-a .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .organic-thumbnails-a .videoCube:hover .thumbnail-overlay,
+ .organic-thumbnails-a .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .organic-thumbnails-a .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .organic-thumbnails-a .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .organic-thumbnails-a div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .organic-thumbnails-a .pager_enabled {
+ color: #0056b3;
+ }
+
+ .organic-thumbnails-a .trc_pager_counter {
+ color: #000000;
+ }
+
+ .organic-thumbnails-a .pager_disabled {
+ color: #7d898f;
+ }
+
+ .organic-thumbnails-a .trc_pager_prev:hover,
+ .organic-thumbnails-a .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .organic-thumbnails-a .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .organic-thumbnails-a .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .organic-thumbnails-a div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .organic-thumbnails-a .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .organic-thumbnails-a .video-label-box {
+ text-align: left;
+ }
+
+ .organic-thumbnails-a .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .organic-thumbnails-a .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .organic-thumbnails-a .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .organic-thumbnails-a {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px;
+ border-style: none;
+ border-color: #000000;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .organic-thumbnails-a .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .organic-thumbnails-a .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .organic-thumbnails-a .trc_pager_prev,
+ .organic-thumbnails-a .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-a .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-a .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-a .trc_pager div {
+ font-family: serif;
+ }
+
+ .organic-thumbnails-a .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .organic-thumbnails-a .playerCube:hover .thumbnail-overlay,
+ .organic-thumbnails-a .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .organic-thumbnails-a .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .organic-thumbnails-a .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .organic-thumbnails-a .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .organic-thumbnails-a .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-a .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-a .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .organic-thumbnails-a .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-a .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-a .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .organic-thumbnails-a .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .organic-thumbnails-a .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .organic-thumbnails-a .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-a .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-a .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-a .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .organic-thumbnails-a .playerCube div.videoCube:hover,
+ .organic-thumbnails-a div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .organic-thumbnails-a .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .organic-thumbnails-a div.syndicatedItem:hover,
+ .organic-thumbnails-a div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .organic-thumbnails-a div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .organic-thumbnails-a .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ border-style: none;
+ }
+
+ .organic-thumbnails-a .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .organic-thumbnails-a .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .organic-thumbnails-a .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .organic-thumbnails-a .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .organic-thumbnails-a .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .organic-thumbnails-a .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .organic-thumbnails-a .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .organic-thumbnails-a .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-a .syndicatedItem .video-title {
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #000000;
+ font-family: georgia, times, serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-a .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-a .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .organic-thumbnails-a .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-a .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-a .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-a .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-a .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-a .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-a .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-a .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: georgia, times, serif;
+ background-image: null;
+ text-align: left;
+ }
+
+ .organic-thumbnails-a .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .organic-thumbnails-a .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .organic-thumbnails-a .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .rbox-blended .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .rbox-blended .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .rbox-blended .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 1px;
+ padding: 0;
+ }
+
+ .rbox-blended .videoCube .video-duration {
+ left: 36px;
+ display: block;
+ }
+
+ .rbox-blended .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .rbox-blended .video-label,
+ .rbox-blended .sponsored,
+ .rbox-blended .sponsored-url {
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .rbox-blended .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16px;
+ font-weight: bold;
+ text-decoration: none;
+ color: black;
+ border-width: 0;
+ background: transparent;
+ border-style: none none solid none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .rbox-blended .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .rbox-blended .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .rbox-blended .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .rbox-blended .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .rbox-blended .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 3px;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-style: none;
+ }
+
+ .rbox-blended div.videoCube:hover,
+ .rbox-blended div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .rbox-blended .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .rbox-blended div.sponsored-default:hover,
+ .rbox-blended div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .rbox-blended .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .rbox-blended .videoCube:hover .thumbnail-overlay,
+ .rbox-blended .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .rbox-blended .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .rbox-blended .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .rbox-blended div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .rbox-blended .pager_enabled {
+ color: #0056b3;
+ }
+
+ .rbox-blended .trc_pager_counter {
+ color: #000000;
+ }
+
+ .rbox-blended .pager_disabled {
+ color: #7d898f;
+ }
+
+ .rbox-blended .trc_pager_prev:hover,
+ .rbox-blended .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .rbox-blended .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .rbox-blended .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .rbox-blended div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .rbox-blended .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .rbox-blended .video-label-box {
+ text-align: left;
+ }
+
+ .rbox-blended .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .rbox-blended .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .rbox-blended .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .rbox-blended {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px;
+ border-style: solid solid solid solid;
+ border-color: #000000;
+ padding: 0;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .rbox-blended .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .rbox-blended .videoCube.horizontal {
+ border-style: none none none solid;
+ }
+
+ .rbox-blended .trc_pager_prev,
+ .rbox-blended .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .trc_pager div {
+ font-family: serif;
+ }
+
+ .rbox-blended .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .rbox-blended .playerCube:hover .thumbnail-overlay,
+ .rbox-blended .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .rbox-blended .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .rbox-blended .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .rbox-blended .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .rbox-blended .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .rbox-blended .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .rbox-blended .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .rbox-blended .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .rbox-blended .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .rbox-blended .playerCube div.videoCube:hover,
+ .rbox-blended div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .rbox-blended .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .rbox-blended div.syndicatedItem:hover,
+ .rbox-blended div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .rbox-blended div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .rbox-blended .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ border-style: none;
+ }
+
+ .rbox-blended .videoCube.syndicatedItem.horizontal {
+ border-style: none none none solid;
+ }
+
+ .rbox-blended .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .rbox-blended .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .rbox-blended .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .rbox-blended .videoCube.syndicatedItem .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .rbox-blended .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .rbox-blended .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .rbox-blended .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .rbox-blended .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .branding {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ text-align: left;
+ }
+
+ .rbox-blended .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: block;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .rbox-blended .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: block;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .rbox-blended .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .thumbs-2r .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: normal;
+ max-height: 88.0px;
+ *height: 88.0px;
+ color: #000;
+ text-decoration: none;
+ }
+
+ .thumbs-2r .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .thumbs-2r .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .thumbs-2r .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .thumbs-2r .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .thumbs-2r .video-label,
+ .thumbs-2r .sponsored,
+ .thumbs-2r .sponsored-url {
+ font-family: georgia, times, serif;
+ }
+
+ .thumbs-2r .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 22.0px;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0 0 6px 0;
+ }
+
+ .thumbs-2r .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .thumbs-2r .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .thumbs-2r .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2r .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2r .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2r .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2r .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2r .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2r .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .thumbs-2r .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .thumbs-2r .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px 1px 1px 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-style: NONE;
+ }
+
+ .thumbs-2r div.videoCube:hover,
+ .thumbs-2r div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbs-2r .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .thumbs-2r div.sponsored-default:hover,
+ .thumbs-2r div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .thumbs-2r .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbs-2r .videoCube:hover .thumbnail-overlay,
+ .thumbs-2r .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbs-2r .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .thumbs-2r .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbs-2r div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbs-2r .pager_enabled {
+ color: #0056b3;
+ }
+
+ .thumbs-2r .trc_pager_counter {
+ color: #000000;
+ }
+
+ .thumbs-2r .pager_disabled {
+ color: #7d898f;
+ }
+
+ .thumbs-2r .trc_pager_prev:hover,
+ .thumbs-2r .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .thumbs-2r .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .thumbs-2r .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .thumbs-2r div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .thumbs-2r .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .thumbs-2r .video-label-box {
+ text-align: left;
+ }
+
+ .thumbs-2r .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .thumbs-2r .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .thumbs-2r .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .thumbs-2r {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .thumbs-2r .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbs-2r .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .thumbs-2r .trc_pager_prev,
+ .thumbs-2r .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbs-2r .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbs-2r .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2r .trc_pager div {
+ font-family: serif;
+ }
+
+ .thumbs-2r .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbs-2r .playerCube:hover .thumbnail-overlay,
+ .thumbs-2r .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbs-2r .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .thumbs-2r .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .thumbs-2r .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .thumbs-2r .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2r .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2r .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .thumbs-2r .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2r .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2r .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .thumbs-2r .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .thumbs-2r .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbs-2r .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2r .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2r .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2r .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .thumbs-2r .playerCube div.videoCube:hover,
+ .thumbs-2r div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbs-2r .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .thumbs-2r div.syndicatedItem:hover,
+ .thumbs-2r div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbs-2r div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbs-2r .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px 1px 1px 1px;
+ border-style: NONE;
+ }
+
+ .thumbs-2r .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .thumbs-2r .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .thumbs-2r .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbs-2r .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbs-2r .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .thumbs-2r .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .thumbs-2r .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .thumbs-2r .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .thumbs-2r .syndicatedItem .video-title {
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #000;
+ font-family: georgia, times, serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbs-2r .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbs-2r .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .thumbs-2r .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbs-2r .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbs-2r .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbs-2r .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbs-2r .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbs-2r .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbs-2r .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbs-2r .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: georgia, times, serif;
+ background-image: null;
+ text-align: left;
+ }
+
+ .thumbs-2r .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .thumbs-2r .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .thumbs-2r .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .thumbs-2r-amp .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: normal;
+ max-height: 88.0px;
+ *height: 88.0px;
+ color: #000;
+ text-decoration: none;
+ }
+
+ .thumbs-2r-amp .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .thumbs-2r-amp .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .thumbs-2r-amp .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .thumbs-2r-amp .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .thumbs-2r-amp .video-label,
+ .thumbs-2r-amp .sponsored,
+ .thumbs-2r-amp .sponsored-url {
+ font-family: georgia, times, serif;
+ }
+
+ .thumbs-2r-amp .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 22.0px;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0 0 6px 0;
+ }
+
+ .thumbs-2r-amp .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .thumbs-2r-amp .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .thumbs-2r-amp .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2r-amp .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2r-amp .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2r-amp .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2r-amp .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2r-amp .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2r-amp .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .thumbs-2r-amp .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .thumbs-2r-amp .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-style: none;
+ }
+
+ .thumbs-2r-amp div.videoCube:hover,
+ .thumbs-2r-amp div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbs-2r-amp .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .thumbs-2r-amp div.sponsored-default:hover,
+ .thumbs-2r-amp div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .thumbs-2r-amp .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbs-2r-amp .videoCube:hover .thumbnail-overlay,
+ .thumbs-2r-amp .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbs-2r-amp .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .thumbs-2r-amp .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbs-2r-amp div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbs-2r-amp .pager_enabled {
+ color: #0056b3;
+ }
+
+ .thumbs-2r-amp .trc_pager_counter {
+ color: #000000;
+ }
+
+ .thumbs-2r-amp .pager_disabled {
+ color: #7d898f;
+ }
+
+ .thumbs-2r-amp .trc_pager_prev:hover,
+ .thumbs-2r-amp .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .thumbs-2r-amp .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .thumbs-2r-amp .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .thumbs-2r-amp div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .thumbs-2r-amp .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .thumbs-2r-amp .video-label-box {
+ text-align: left;
+ }
+
+ .thumbs-2r-amp .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .thumbs-2r-amp .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .thumbs-2r-amp .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .thumbs-2r-amp {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .thumbs-2r-amp .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbs-2r-amp .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .thumbs-2r-amp .trc_pager_prev,
+ .thumbs-2r-amp .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbs-2r-amp .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbs-2r-amp .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2r-amp .trc_pager div {
+ font-family: serif;
+ }
+
+ .thumbs-2r-amp .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbs-2r-amp .playerCube:hover .thumbnail-overlay,
+ .thumbs-2r-amp .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbs-2r-amp .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .thumbs-2r-amp .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .thumbs-2r-amp .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .thumbs-2r-amp .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2r-amp .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2r-amp .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .thumbs-2r-amp .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2r-amp .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2r-amp .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .thumbs-2r-amp .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .thumbs-2r-amp .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbs-2r-amp .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2r-amp .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2r-amp .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2r-amp .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .thumbs-2r-amp .playerCube div.videoCube:hover,
+ .thumbs-2r-amp div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbs-2r-amp .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .thumbs-2r-amp div.syndicatedItem:hover,
+ .thumbs-2r-amp div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbs-2r-amp div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbs-2r-amp .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ border-style: none;
+ }
+
+ .thumbs-2r-amp .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .thumbs-2r-amp .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .thumbs-2r-amp .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbs-2r-amp .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbs-2r-amp .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .thumbs-2r-amp .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .thumbs-2r-amp .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .thumbs-2r-amp .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .thumbs-2r-amp .syndicatedItem .video-title {
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #000;
+ font-family: georgia, times, serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbs-2r-amp .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbs-2r-amp .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .thumbs-2r-amp .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbs-2r-amp .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbs-2r-amp .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbs-2r-amp .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbs-2r-amp .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbs-2r-amp .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbs-2r-amp .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbs-2r-amp .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: georgia, times, serif;
+ background-image: null;
+ text-align: left;
+ }
+
+ .thumbs-2r-amp .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .thumbs-2r-amp .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .thumbs-2r-amp .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .thumbs-2rx2 .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14.0px;
+ line-height: 19.0px;
+ font-weight: bold;
+ max-height: 76.0px;
+ *height: 76.0px;
+ color: #111;
+ text-decoration: none;
+ }
+
+ .thumbs-2rx2 .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .thumbs-2rx2 .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .thumbs-2rx2 .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .thumbs-2rx2 .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .thumbs-2rx2 .video-label,
+ .thumbs-2rx2 .sponsored,
+ .thumbs-2rx2 .sponsored-url {
+ font-family: georgia, times, serif;
+ }
+
+ .thumbs-2rx2 .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 20.0px;
+ font-weight: bold;
+ text-decoration: none;
+ color: #111;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0 0 6px 0;
+ }
+
+ .thumbs-2rx2 .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .thumbs-2rx2 .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .thumbs-2rx2 .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2rx2 .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2rx2 .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2rx2 .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2rx2 .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2rx2 .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2rx2 .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .thumbs-2rx2 .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .thumbs-2rx2 .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-style: none;
+ }
+
+ .thumbs-2rx2 div.videoCube:hover,
+ .thumbs-2rx2 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbs-2rx2 .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .thumbs-2rx2 div.sponsored-default:hover,
+ .thumbs-2rx2 div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .thumbs-2rx2 .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbs-2rx2 .videoCube:hover .thumbnail-overlay,
+ .thumbs-2rx2 .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbs-2rx2 .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .thumbs-2rx2 .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbs-2rx2 div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbs-2rx2 .pager_enabled {
+ color: #0056b3;
+ }
+
+ .thumbs-2rx2 .trc_pager_counter {
+ color: #000000;
+ }
+
+ .thumbs-2rx2 .pager_disabled {
+ color: #7d898f;
+ }
+
+ .thumbs-2rx2 .trc_pager_prev:hover,
+ .thumbs-2rx2 .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .thumbs-2rx2 .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .thumbs-2rx2 .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .thumbs-2rx2 div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .thumbs-2rx2 .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .thumbs-2rx2 .video-label-box {
+ text-align: left;
+ }
+
+ .thumbs-2rx2 .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .thumbs-2rx2 .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .thumbs-2rx2 .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .thumbs-2rx2 {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px;
+ border-style: none;
+ border-color: #000000;
+ padding: 0;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .thumbs-2rx2 .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbs-2rx2 .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .thumbs-2rx2 .trc_pager_prev,
+ .thumbs-2rx2 .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbs-2rx2 .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbs-2rx2 .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2rx2 .trc_pager div {
+ font-family: serif;
+ }
+
+ .thumbs-2rx2 .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbs-2rx2 .playerCube:hover .thumbnail-overlay,
+ .thumbs-2rx2 .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbs-2rx2 .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .thumbs-2rx2 .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .thumbs-2rx2 .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .thumbs-2rx2 .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2rx2 .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2rx2 .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .thumbs-2rx2 .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2rx2 .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2rx2 .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .thumbs-2rx2 .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .thumbs-2rx2 .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbs-2rx2 .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2rx2 .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2rx2 .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbs-2rx2 .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .thumbs-2rx2 .playerCube div.videoCube:hover,
+ .thumbs-2rx2 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbs-2rx2 .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .thumbs-2rx2 div.syndicatedItem:hover,
+ .thumbs-2rx2 div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbs-2rx2 div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbs-2rx2 .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ border-style: none;
+ }
+
+ .thumbs-2rx2 .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .thumbs-2rx2 .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .thumbs-2rx2 .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbs-2rx2 .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbs-2rx2 .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .thumbs-2rx2 .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .thumbs-2rx2 .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .thumbs-2rx2 .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .thumbs-2rx2 .syndicatedItem .video-title {
+ max-height: 57.0px;
+ *height: 57.0px;
+ color: #111;
+ font-family: georgia, times, serif;
+ font-size: 14.0px;
+ line-height: 19.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .thumbs-2rx2 .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbs-2rx2 .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .thumbs-2rx2 .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbs-2rx2 .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbs-2rx2 .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbs-2rx2 .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbs-2rx2 .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbs-2rx2 .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbs-2rx2 .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbs-2rx2 .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: georgia, times, serif;
+ background-image: null;
+ text-align: left;
+ }
+
+ .thumbs-2rx2 .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .thumbs-2rx2 .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .thumbs-2rx2 .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .verticalx2 .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 20px;
+ font-weight: bold;
+ max-height: 60px;
+ *height: 60px;
+ color: #FFFFFF;
+ text-decoration: none;
+ }
+
+ .verticalx2 .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .verticalx2 .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: auto;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .verticalx2 .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .verticalx2 .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .verticalx2 .video-label,
+ .verticalx2 .sponsored,
+ .verticalx2 .sponsored-url {
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .verticalx2 .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 15px;
+ font-weight: bold;
+ text-decoration: none;
+ color: #989898;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #f0f0f0;
+ padding: 0;
+ }
+
+ .verticalx2 .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .verticalx2 .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .verticalx2 .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .verticalx2 .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .verticalx2 .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .verticalx2 .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .verticalx2 .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .verticalx2 .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .verticalx2 .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .verticalx2 .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .verticalx2 .videoCube {
+ width: 100%;
+ _width: 100%;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #f0f0f0;
+ padding: 0;
+ height: auto;
+ margin-left: 0;
+ margin-top: 0;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-style: none;
+ }
+
+ .verticalx2 div.videoCube:hover,
+ .verticalx2 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .verticalx2 .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .verticalx2 div.sponsored-default:hover,
+ .verticalx2 div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .verticalx2 .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .verticalx2 .videoCube:hover .thumbnail-overlay,
+ .verticalx2 .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .verticalx2 .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .verticalx2 .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .verticalx2 div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .verticalx2 .pager_enabled {
+ color: #0056b3;
+ }
+
+ .verticalx2 .trc_pager_counter {
+ color: #000000;
+ }
+
+ .verticalx2 .pager_disabled {
+ color: #7d898f;
+ }
+
+ .verticalx2 .trc_pager_prev:hover,
+ .verticalx2 .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .verticalx2 .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .verticalx2 .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .verticalx2 div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .verticalx2 .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .verticalx2 .video-label-box {
+ text-align: left;
+ }
+
+ .verticalx2 .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .verticalx2 .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .verticalx2 .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .verticalx2 {
+ width: 100%;
+ _width: 100%;
+ border-width: 0;
+ border-style: solid;
+ border-color: #f0f0f0;
+ padding: 0 0 0;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .verticalx2 .videoCube.vertical {
+ border-style: none;
+ }
+
+ .verticalx2 .videoCube.horizontal {
+ border-style: none none none solid;
+ }
+
+ .verticalx2 .trc_pager_prev,
+ .verticalx2 .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .verticalx2 .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .verticalx2 .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .verticalx2 .trc_pager div {
+ font-family: serif;
+ }
+
+ .verticalx2 .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .verticalx2 .playerCube:hover .thumbnail-overlay,
+ .verticalx2 .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .verticalx2 .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .verticalx2 .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .verticalx2 .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .verticalx2 .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .verticalx2 .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .verticalx2 .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .verticalx2 .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .verticalx2 .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .verticalx2 .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .verticalx2 .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .verticalx2 .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .verticalx2 .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .verticalx2 .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .verticalx2 .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .verticalx2 .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .verticalx2 .playerCube div.videoCube:hover,
+ .verticalx2 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .verticalx2 .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .verticalx2 div.syndicatedItem:hover,
+ .verticalx2 div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .verticalx2 div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .verticalx2 .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ border-style: none;
+ }
+
+ .verticalx2 .videoCube.syndicatedItem.horizontal {
+ border-style: none none none solid;
+ }
+
+ .verticalx2 .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .verticalx2 .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .verticalx2 .videoCube.syndicatedItem.vertical {
+ border-style: none none none none;
+ }
+
+ .verticalx2 .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .verticalx2 .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .verticalx2 .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .verticalx2 .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .verticalx2 .syndicatedItem .video-title {
+ max-height: 40px;
+ *height: 40px;
+ color: #FFFFFF;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 20px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .verticalx2 .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .verticalx2 .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .verticalx2 .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .verticalx2 .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .verticalx2 .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .verticalx2 .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .verticalx2 .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .verticalx2 .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .verticalx2 .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .verticalx2 .syndicatedItem .branding {
+ color: #999;
+ font-size: 10px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ text-align: left;
+ }
+
+ .verticalx2 .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .verticalx2 .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .verticalx2 .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .ab_thumbs-2rx2_abp-mode img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_thumbs-2rx2_abp-mode [class*=span] {
+ float: none;
+ margin-left: 0px;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ height: auto;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: auto;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .logoDiv a {
+ vertical-align: baseline;
+ font-size: inherit;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .logoDiv a span {
+ display: inline;
+ color: black;
+ font-weight: normal;
+ font-size: 11px;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .videoCube a {
+ padding: 0;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_thumbs-2rx2_abp-mode .video-label-box {
+ height: 76.0px;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .syndicatedItem .branding {
+ line-height: 19.0px;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .trc_header_left_column {
+ background: transparent;
+ display: inline;
+ height: auto;
+ }
+
+ .ab_thumbs-2rx2_abp-mode .trc_rbox_header .trc_header_ext {
+ position: relative;
+ top: auto;
+ right: auto;
+ }
+
+ div.asf div.trc_header_ext {
+ font-size: 20px;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_thumbs-2rx2_ratio-3x2 [class*="span"] {
+ float: none;
+ margin-left: 0px;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ height: auto;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: auto;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 1.2em;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .logoDiv {
+ margin-top: 3px;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .logoDiv a {
+ vertical-align: baseline;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .logoDiv a span {
+ display: inline;
+ color: black;
+ font-weight: normal;
+ font-size: 11px;
+ vertical-align: bottom;
+ line-height: 1em;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .videoCube a {
+ padding: 0;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_thumbs-2rx2_ratio-3x2 .video-label-box {
+ height: 76.0px;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .syndicatedItem .branding {
+ line-height: 19.0px;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .trc_header_left_column {
+ background: transparent;
+ display: inline;
+ height: auto;
+ }
+
+ .ab_thumbs-2rx2_ratio-3x2 .trc_rbox_header .trc_header_ext {
+ position: relative;
+ top: auto;
+ right: auto;
+ }
+
+ div.asf div.trc_header_ext {
+ font-size: 20px;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_thumbs-2rx2_ratio-4x3 [class*="span"] {
+ float: none;
+ margin-left: 0px;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ height: auto;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: auto;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 1.2em;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .logoDiv {
+ margin-top: 3px;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .logoDiv a {
+ vertical-align: baseline;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .logoDiv a span {
+ display: inline;
+ color: black;
+ font-weight: normal;
+ font-size: 11px;
+ vertical-align: bottom;
+ line-height: 1em;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .videoCube a {
+ padding: 0;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_thumbs-2rx2_ratio-4x3 .video-label-box {
+ height: 76.0px;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .syndicatedItem .branding {
+ line-height: 19.0px;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .trc_header_left_column {
+ background: transparent;
+ display: inline;
+ height: auto;
+ }
+
+ .ab_thumbs-2rx2_ratio-4x3 .trc_rbox_header .trc_header_ext {
+ position: relative;
+ top: auto;
+ right: auto;
+ }
+
+ div.asf div.trc_header_ext {
+ font-size: 20px;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_thumbs-2rx2_ratio-8x5 [class*="span"] {
+ float: none;
+ margin-left: 0px;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ height: auto;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: auto;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 1.2em;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .logoDiv {
+ margin-top: 3px;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .logoDiv a {
+ vertical-align: baseline;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .logoDiv a span {
+ display: inline;
+ color: black;
+ font-weight: normal;
+ font-size: 11px;
+ vertical-align: bottom;
+ line-height: 1em;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .videoCube a {
+ padding: 0;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_thumbs-2rx2_ratio-8x5 .video-label-box {
+ height: 76.0px;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .syndicatedItem .branding {
+ line-height: 19.0px;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .trc_header_left_column {
+ background: transparent;
+ display: inline;
+ height: auto;
+ }
+
+ .ab_thumbs-2rx2_ratio-8x5 .trc_rbox_header .trc_header_ext {
+ position: relative;
+ top: auto;
+ right: auto;
+ }
+
+ div.asf div.trc_header_ext {
+ font-size: 20px;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_thumbs-2rx2_ratio-9x5 [class*="span"] {
+ float: none;
+ margin-left: 0px;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ height: auto;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: auto;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 1.2em;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .logoDiv {
+ margin-top: 3px;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .logoDiv a {
+ vertical-align: baseline;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .logoDiv a span {
+ display: inline;
+ color: black;
+ font-weight: normal;
+ font-size: 11px;
+ vertical-align: bottom;
+ line-height: 1em;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .videoCube a {
+ padding: 0;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_thumbs-2rx2_ratio-9x5 .video-label-box {
+ height: 76.0px;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .syndicatedItem .branding {
+ line-height: 19.0px;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .trc_header_left_column {
+ background: transparent;
+ display: inline;
+ height: auto;
+ }
+
+ .ab_thumbs-2rx2_ratio-9x5 .trc_rbox_header .trc_header_ext {
+ position: relative;
+ top: auto;
+ right: auto;
+ }
+
+ .ab_thumbs-2r_abp-mode img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_thumbs-2r_abp-mode [class*=span] {
+ float: none;
+ margin-left: 0px;
+ }
+
+ .ab_thumbs-2r_abp-mode .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ height: auto;
+ }
+
+ .ab_thumbs-2r_abp-mode .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: auto;
+ }
+
+ .ab_thumbs-2r_abp-mode .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 1.2em;
+ }
+
+ .ab_thumbs-2r_abp-mode .logoDiv a {
+ vertical-align: baseline;
+ }
+
+ .ab_thumbs-2r_abp-mode .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11px;
+ }
+
+ .ab_thumbs-2r_abp-mode .videoCube a {
+ padding: 0;
+ }
+
+ .ab_thumbs-2r_abp-mode .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_thumbs-2r_abp-mode .video-label-box {
+ height: 76.0px;
+ }
+
+ .ab_thumbs-2r_abp-mode .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_thumbs-2r_abp-mode .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .ab_thumbs-2r_abp-mode .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_thumbs-2r_abp-mode .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_thumbs-2r_abp-mode .syndicatedItem .branding {
+ line-height: 19.0px;
+ }
+
+ .ab_thumbs-2r_abp-mode .trc_header_left_column {
+ background: transparent;
+ display: inline;
+ height: auto;
+ }
+
+ .ab_thumbs-2r_abp-mode .trc_rbox_header .trc_header_ext {
+ position: relative;
+ top: auto;
+ right: auto;
+ }
+
+ .trc_rbox.ab_thumbs-2r_abp-mode {
+ padding-top: 20px;
+ padding-bottom: 20px;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_thumbs-2r_backup-v-carousel [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: block;
+ width: auto;
+ margin: 0px 0px 0px 0px;
+ background: transparent;
+ height: auto;
+ background-color: transparent;
+ padding: 0 0 6px 0;
+ box-sizing: initial;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: auto;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: normal;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 10.0px;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .videoCube a {
+ padding: 0;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_thumbs-2r_backup-v-carousel .video-label-box {
+ height: 88.0px;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .syndicatedItem .branding {
+ line-height: 22.0px;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .trc_header_left_column {
+ width: 48%;
+ display: inline-block;
+ background: transparent;
+ height: auto;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .trc_header_right_part {
+ margin-top: 0px;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbs-2r_backup-v-carousel .trc_rbox_header .trc_header_ext {
+ position: relative;
+ top: auto;
+ right: auto;
+ }
+
+ .ab_thumbs-2r_read-more img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_thumbs-2r_read-more [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .ab_thumbs-2r_read-more .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: auto;
+ background-color: transparent;
+ padding: 0 0 6px 0;
+ box-sizing: initial;
+ }
+
+ .ab_thumbs-2r_read-more .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: auto;
+ }
+
+ .ab_thumbs-2r_read-more .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: normal;
+ }
+
+ .ab_thumbs-2r_read-more .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbs-2r_read-more .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 10.0px;
+ }
+
+ .ab_thumbs-2r_read-more .videoCube a {
+ padding: 0;
+ }
+
+ .ab_thumbs-2r_read-more .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_thumbs-2r_read-more .video-label-box {
+ height: 88.0px;
+ }
+
+ .ab_thumbs-2r_read-more .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_thumbs-2r_read-more .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .ab_thumbs-2r_read-more .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_thumbs-2r_read-more .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_thumbs-2r_read-more .syndicatedItem .branding {
+ line-height: 22.0px;
+ }
+
+ .ab_thumbs-2r_read-more .trc_header_left_column {
+ width: 48%;
+ display: inline-block;
+ background: transparent;
+ height: auto;
+ }
+
+ .ab_thumbs-2r_read-more .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbs-2r_read-more .trc_rbox_header .trc_header_ext {
+ position: relative;
+ top: auto;
+ right: auto;
+ }
+
+ .ab_thumbs-2r_read-more .trc_header_right_part {
+ margin-top: 0px;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_verticalx2_reg [class*=span] {
+ float: none;
+ margin-left: 0px;
+ }
+
+ .ab_verticalx2_reg .videoCube:hover .video-label-box .video-title {
+ text-decoration: none;
+ }
+
+ .ab_verticalx2_reg .trc_rbox_outer {
+ width: 100%;
+ }
+
+ .ab_verticalx2_reg .trc_rbox_header {
+ margin-left: 5px;
+ margin-top: 3px;
+ margin-bottom: 1px;
+ }
+
+ .ab_verticalx2_reg .trc_rbox_header_span {
+ display: block;
+ width: 100%;
+ background-repeat: no-repeat;
+ height: 20px;
+ font-size: 15px;
+ color: #989898;
+ }
+ /** recommendations */
+
+ .ab_verticalx2_reg .trc_rbox_div {
+ margin-bottom: 0;
+ border-style: none;
+ height: auto;
+ overflow: hidden !important;
+ }
+
+ .ab_verticalx2_reg .trc_rbox_div &gt;
+ div {
+ width: 100% !important;
+ }
+
+ .ab_verticalx2_reg .videoCube {
+ margin: 0;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .ab_verticalx2_reg .trc_rbox_div .videoCube {
+ padding-left: 5px;
+ padding-bottom: 5px;
+ }
+
+ .ab_verticalx2_reg .videoCube .video-label-box {}
+
+ .ab_verticalx2_reg .videoCube .video-title {
+ margin-bottom: 0;
+ text-transform: uppercases;
+ padding-left: 2px;
+ padding-bottom: 2px;
+ }
+
+ .ab_verticalx2_reg.trc_rbox .videoCube a {
+ color: #494949;
+ }
+
+ .ab_verticalx2_reg .logoDiv a span {
+ color: #989898;
+ font-size: 11px;
+ font-weight: normal;
+ }
+
+ .ab_verticalx2_reg .trc_header_ext {
+ margin-right: 3px;
+ }
+
+ .organic-thumbnails-a img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .organic-thumbnails-a [class*=span] {
+ float: none;
+ margin-left: 0px;
+ }
+
+ .organic-thumbnails-a .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: auto;
+ }
+
+ .organic-thumbnails-a .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: auto;
+ }
+
+ .organic-thumbnails-a .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: normal;
+ }
+
+ .organic-thumbnails-a .logoDiv a {
+ font-size: 100%;
+ }
+
+ .organic-thumbnails-a .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 10px;
+ }
+
+ .organic-thumbnails-a .videoCube a {
+ padding: 0;
+ }
+
+ .organic-thumbnails-a .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .organic-thumbnails-a .video-label-box {
+ height: 88.0px;
+ }
+
+ .organic-thumbnails-a .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .organic-thumbnails-a .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .organic-thumbnails-a .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .organic-thumbnails-a .video-label-box .branding {
+ display: block;
+ }
+
+ .organic-thumbnails-a .syndicatedItem .branding {
+ line-height: 22.0px;
+ }
+
+ .organic-thumbnails-a .trc_header_left_column {
+ width: 48%;
+ display: inline-block;
+ background: transparent;
+ height: auto;
+ }
+
+ .organic-thumbnails-a .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .organic-thumbnails-a .trc_rbox_header .trc_header_ext {
+ position: relative;
+ top: auto;
+ right: auto;
+ }
+
+ .thumbs-2r img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .thumbs-2r [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .thumbs-2r .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: auto;
+ background-color: transparent;
+ padding: 0 0 6px 0;
+ box-sizing: initial;
+ }
+
+ .thumbs-2r .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: auto;
+ }
+
+ .thumbs-2r .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: normal;
+ }
+
+ .thumbs-2r .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbs-2r .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 10.0px;
+ }
+
+ .thumbs-2r .videoCube a {
+ padding: 0;
+ }
+
+ .thumbs-2r .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .thumbs-2r .video-label-box {
+ height: 88.0px;
+ }
+
+ .thumbs-2r .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .thumbs-2r .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .thumbs-2r .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .thumbs-2r .video-label-box .branding {
+ display: block;
+ }
+
+ .thumbs-2r .syndicatedItem .branding {
+ line-height: 22.0px;
+ }
+
+ .thumbs-2r .trc_header_left_column {
+ width: 48%;
+ display: inline-block;
+ background: transparent;
+ height: auto;
+ }
+
+ .thumbs-2r .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbs-2r .trc_rbox_header .trc_header_ext {
+ position: relative;
+ top: auto;
+ right: auto;
+ }
+
+ .thumbs-2r .trc_header_right_part {
+ margin-top: 0px;
+ }
+ /*** Vertical Carousel ***/
+
+ @media screen and (min-width: 769px) {
+ .thumbs-2r {
+ position: relative;
+ }
+ .thumbs-2r .trc_rbox_outer {
+ height: 100%;
+ overflow: hidden;
+ position: relative;
+ }
+ .thumbs-2r .trc_rbox_outer .trc_rbox_div {
+ height: auto;
+ overflow-y: hidden;
+ overflow-x: hidden;
+ }
+ .thumbs-2r .trc_rbox_outer .trc_rbox_div&gt;
+ div:first-of-type {
+ display: table-cell;
+ -moz-padding-bottom: 32px !important;
+ -webkit-padding-bottom: 32px !important;
+ padding-bottom: 32px !important;
+ }
+ .thumbs-2r .trc_rbox_outer .trc_scroll_button_wrapper {
+ position: absolute;
+ left: 0px;
+ bottom: 0px;
+ width: 100%;
+ z-index: 2;
+ padding: 0px 12px 12px;
+ background-color: #ffffff;
+ -webkit-box-shadow: rgba(0, 0, 0, 0.35) 0px -6px 10px 0px;
+ -moz-box-shadow: rgba(0, 0, 0, 0.35) 0px -6px 10px 0px;
+ box-shadow: rgba(0, 0, 0, 0.35) 0px -6px 10px 0px;
+ }
+ .thumbs-2r .trc_rbox_outer .trc_scroll_button_wrapper .trc_button_up,
+ .thumbs-2r .trc_rbox_outer .trc_scroll_button_wrapper .trc_button_down {
+ position: absolute;
+ bottom: 8px;
+ left: calc(48% - 23px);
+ width: 80px;
+ z-index: 5;
+ padding: 25px 12px 12px;
+ background-color: #ffffff;
+ border-radius: 5px;
+ -webkit-box-shadow: inset 3px 6px 6px -6px rgba(0, 0, 0, 0.7);
+ -moz-box-shadow: inset 3px 6px 6px -6px rgba(0, 0, 0, 0.7);
+ box-shadow: inset 3px 6px 6px -6px rgba(0, 0, 0, 0.7);
+ background-repeat: no-repeat;
+ background-position: center center;
+ clip: rect(0, 82px, 33px, 0px);
+ cursor: pointer;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ }
+ .thumbs-2r .trc_rbox_outer .trc_scroll_button_wrapper .trc_button_up {
+ background-image: url('http://cdn.taboola.com/static/57/57c9df74-5cd5-42ae-877c-c5cbadf68e5b.png');
+ display: none;
+ }
+ .thumbs-2r .trc_rbox_outer .trc_scroll_button_wrapper .trc_button_down {
+ background-image: url('http://cdn.taboola.com/static/cc/cc832fc0-4af5-42d7-9684-6d7ce01d20a5.png');
+ }
+ .thumbs-2r .trc_rbox_outer.slideUp .trc_scroll_button_wrapper {
+ -webkit-box-shadow: rgba(0, 0, 0, 0.35) 0px 0px 10px 0px;
+ -moz-box-shadow: rgba(0, 0, 0, 0.35) 0px 0px 10px 0px;
+ box-shadow: rgba(0, 0, 0, 0.35) 0px 0px 10px 0px;
+ }
+ .thumbs-2r .trc_rbox_div::-webkit-scrollbar {
+ display: none;
+ }
+ }
+
+ .thumbs-2r-amp img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .thumbs-2r-amp [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .thumbs-2r-amp .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: auto;
+ }
+
+ .thumbs-2r-amp .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: auto;
+ }
+
+ .thumbs-2r-amp .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: normal;
+ }
+
+ .thumbs-2r-amp .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbs-2r-amp .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 10.0px;
+ }
+
+ .thumbs-2r-amp .videoCube a {
+ padding: 0;
+ }
+
+ .thumbs-2r-amp .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .thumbs-2r-amp .video-label-box {
+ height: 88.0px;
+ }
+
+ .thumbs-2r-amp .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .thumbs-2r-amp .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .thumbs-2r-amp .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .thumbs-2r-amp .video-label-box .branding {
+ display: block;
+ }
+
+ .thumbs-2r-amp .syndicatedItem .branding {
+ line-height: 22.0px;
+ }
+
+ .thumbs-2r-amp .trc_header_left_column {
+ width: 48%;
+ display: inline-block;
+ background: transparent;
+ height: auto;
+ }
+
+ .thumbs-2r-amp .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbs-2r-amp .trc_rbox_header .trc_header_ext {
+ position: relative;
+ top: auto;
+ right: auto;
+ }
+
+ div.asf div.trc_header_ext {
+ font-size: 20px;
+ }
+
+ .thumbs-2rx2 img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .thumbs-2rx2 [class*="span"] {
+ float: none;
+ margin-left: 0px;
+ }
+
+ .thumbs-2rx2 .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ height: auto;
+ }
+
+ .thumbs-2rx2 .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: auto;
+ }
+
+ .thumbs-2rx2 .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 1.2em;
+ }
+
+ .thumbs-2rx2 .logoDiv {
+ margin-top: 3px;
+ }
+
+ .thumbs-2rx2 .logoDiv a {
+ vertical-align: baseline;
+ }
+
+ .thumbs-2rx2 .logoDiv a span {
+ display: inline;
+ color: black;
+ font-weight: normal;
+ font-size: 11px;
+ vertical-align: bottom;
+ line-height: 1em;
+ }
+
+ .thumbs-2rx2 .videoCube a {
+ padding: 0;
+ }
+
+ .thumbs-2rx2 .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .thumbs-2rx2 .video-label-box {
+ height: 76.0px;
+ }
+
+ .thumbs-2rx2 .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .thumbs-2rx2 .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .thumbs-2rx2 .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .thumbs-2rx2 .video-label-box .branding {
+ display: block;
+ }
+
+ .thumbs-2rx2 .syndicatedItem .branding {
+ line-height: 19.0px;
+ }
+
+ .thumbs-2rx2 .trc_header_left_column {
+ background: transparent;
+ display: inline;
+ height: auto;
+ }
+
+ .thumbs-2rx2 .trc_rbox_header .trc_header_ext {
+ position: relative;
+ top: auto;
+ right: auto;
+ }
+ /* override bootstrap default span definitions */
+
+ .verticalx2 [class*=span] {
+ float: none;
+ margin-left: 0px;
+ }
+
+ .verticalx2 .videoCube:hover .video-label-box .video-title {
+ text-decoration: none;
+ }
+
+ .verticalx2 .trc_rbox_outer {
+ width: 100%;
+ }
+
+ .verticalx2 .trc_rbox_header {
+ margin-left: 5px;
+ margin-top: 3px;
+ margin-bottom: 1px;
+ }
+
+ .verticalx2 .trc_rbox_header_span {
+ display: block;
+ width: 100%;
+ background-repeat: no-repeat;
+ height: 20px;
+ font-size: 15px;
+ color: #989898;
+ }
+ /** recommendations */
+
+ .verticalx2 .trc_rbox_div {
+ margin-bottom: 0;
+ border-style: none;
+ height: auto;
+ overflow: hidden !important;
+ }
+
+ .verticalx2 .trc_rbox_div &gt;
+ div {
+ width: 100% !important;
+ }
+
+ .verticalx2 .videoCube {
+ margin: 0;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .verticalx2 .trc_rbox_div .videoCube {
+ padding-left: 5px;
+ padding-bottom: 5px;
+ }
+
+ .verticalx2 .videoCube .video-label-box {}
+
+ .verticalx2 .videoCube .video-title {
+ margin-bottom: 0;
+ text-transform: uppercases;
+ padding-left: 2px;
+ padding-bottom: 2px;
+ }
+
+ .verticalx2.trc_rbox .videoCube a {
+ color: #494949;
+ }
+
+ .verticalx2 .logoDiv a span {
+ color: #989898;
+ font-size: 11px;
+ font-weight: normal;
+ }
+
+ .verticalx2 .trc_header_ext {
+ margin-right: 3px;
+ }
+ </style>
+ <script type="text/javascript" src="//widget.perfectmarket.com/breitbartcom/pmk-201630001.27.js"></script>
+ <style type="text/css">
+ #tbx01,
+ #tbx01_f1 {
+ width: 300px;
+ margin-left: auto;
+ margin-right: auto;
+ }
+ </style>
+ <style type="text/css">
+ @media screen and (min-width: 0px) and (max-width: 1px) {
+ .trc_elastic_trc_63835 .trc_rbox_outer {
+ margin-left: -2%;
+ }
+ .trc_elastic_trc_63835 .videoCube_aspect {
+ padding-bottom: 75%;
+ width: 100%;
+ }
+ .trc_elastic_trc_63835 .videoCube {
+ width: 31.33%;
+ position: relative;
+ float: left;
+ margin: 0 0 2% 0;
+ margin-left: 2%;
+ }
+ .trc_elastic_trc_63835 div.videoCube:nth-of-type(-n+18) {
+ display: block;
+ visibility: visible;
+ }
+ .trc_elastic_trc_63835 div.videoCube:nth-of-type(n+19) {
+ display: none;
+ visibility: hidden;
+ }
+ }
+
+ @media screen and (min-width: 2px) and (max-width: 479px) {
+ .trc_elastic_trc_63835 .trc_rbox_outer .videoCube .video-label-box {
+ height: auto;
+ }
+ .trc_elastic_trc_63835 .trc_rbox_outer .videoCube {
+ margin-bottom: 10px;
+ }
+ .trc_elastic_trc_63835 .trc_rbox_outer {
+ margin-left: -2%;
+ }
+ .trc_elastic_trc_63835 .videoCube_aspect {
+ padding-bottom: 75%;
+ width: 100%;
+ }
+ .trc_elastic_trc_63835 .videoCube {
+ width: 97.99%;
+ position: relative;
+ float: left;
+ margin: 0 0 2% 0;
+ margin-left: 2%;
+ }
+ .trc_elastic_trc_63835 div.videoCube:nth-of-type(-n+4) {
+ display: block;
+ visibility: visible;
+ }
+ .trc_elastic_trc_63835 div.videoCube:nth-of-type(n+5) {
+ display: none;
+ visibility: hidden;
+ }
+ }
+
+ @media screen and (min-width: 480px) and (max-width: 499px) {
+ .trc_elastic_trc_63835 .trc_rbox_outer {
+ margin-left: -2%;
+ }
+ .trc_elastic_trc_63835 .videoCube_aspect {
+ padding-bottom: 100%;
+ width: 100%;
+ }
+ .trc_elastic_trc_63835 .videoCube {
+ width: 47.995%;
+ position: relative;
+ float: left;
+ margin: 0 0 2% 0;
+ margin-left: 2%;
+ }
+ .trc_elastic_trc_63835 div.videoCube:nth-of-type(-n+4) {
+ display: block;
+ visibility: visible;
+ }
+ .trc_elastic_trc_63835 div.videoCube:nth-of-type(n+5) {
+ display: none;
+ visibility: hidden;
+ }
+ }
+
+ @media screen and (min-width: 500px) and (max-width: 749px) {
+ .trc_elastic_trc_63835 .trc_rbox_outer {
+ margin-left: -2%;
+ }
+ .trc_elastic_trc_63835 .videoCube_aspect {
+ padding-bottom: 100%;
+ width: 100%;
+ }
+ .trc_elastic_trc_63835 .videoCube {
+ width: 31.33%;
+ position: relative;
+ float: left;
+ margin: 0 0 2% 0;
+ margin-left: 2%;
+ }
+ .trc_elastic_trc_63835 div.videoCube:nth-of-type(-n+6) {
+ display: block;
+ visibility: visible;
+ }
+ .trc_elastic_trc_63835 div.videoCube:nth-of-type(n+7) {
+ display: none;
+ visibility: hidden;
+ }
+ }
+
+ @media screen and (min-width: 750px) and (max-width: 768px) {
+ .trc_elastic_trc_63835 .trc_rbox_outer {
+ margin-left: -2%;
+ }
+ .trc_elastic_trc_63835 .videoCube_aspect {
+ padding-bottom: 100%;
+ width: 100%;
+ }
+ .trc_elastic_trc_63835 .videoCube {
+ width: 22.9975%;
+ position: relative;
+ float: left;
+ margin: 0 0 2% 0;
+ margin-left: 2%;
+ }
+ .trc_elastic_trc_63835 div.videoCube:nth-of-type(-n+8) {
+ display: block;
+ visibility: visible;
+ }
+ .trc_elastic_trc_63835 div.videoCube:nth-of-type(n+9) {
+ display: none;
+ visibility: hidden;
+ }
+ }
+
+ @media screen and (min-width: 769px) {
+ .trc_elastic_trc_63835 .trc_rbox_outer {
+ margin-left: -2%;
+ }
+ .trc_elastic_trc_63835 .videoCube_aspect {
+ padding-bottom: 100%;
+ width: 100%;
+ }
+ .trc_elastic_trc_63835 .videoCube {
+ width: 31.33%;
+ position: relative;
+ float: left;
+ margin: 0 0 2% 0;
+ margin-left: 2%;
+ }
+ .trc_elastic_trc_63835 div.videoCube:nth-of-type(-n+18) {
+ display: block;
+ visibility: visible;
+ }
+ .trc_elastic_trc_63835 div.videoCube:nth-of-type(n+19) {
+ display: none;
+ visibility: hidden;
+ }
+ }
+ </style>
+ <style type="text/css">
+ .trc_popover_aug_container {
+ position: static;
+ }
+
+ #tbl-aug-jqevjm #tbl-aug-xphicj #tbl-aug-36dhpn .trc_popover {
+ position: absolute;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ line-height: 16px;
+ color: #000000;
+ cursor: default;
+ position: absolute;
+ top: 0;
+ right: 0;
+ z-index: 12000;
+ width: 180px;
+ padding: 1px;
+ text-align: left;
+ white-space: normal;
+ background-color: #ffffff;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ -webkit-border-radius: 6px;
+ -moz-border-radius: 6px;
+ border-radius: 6px;
+ -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+ -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+ box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+ -webkit-background-clip: padding-box;
+ -moz-background-clip: padding;
+ background-clip: padding-box;
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+ box-sizing: content-box;
+ }
+
+ #tbl-aug-jqevjm #tbl-aug-xphicj #tbl-aug-36dhpn .trc_popover iframe {
+ width: 100%;
+ }
+
+ #tbl-aug-jqevjm #tbl-aug-xphicj #tbl-aug-36dhpn .trc_popover .trc_popover_arrow,
+ .trc_popover .trc_popover_arrow:after {
+ position: absolute;
+ display: block;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+ }
+
+ #tbl-aug-jqevjm #tbl-aug-xphicj #tbl-aug-36dhpn .trc_popover .trc_popover_arrow {
+ border-width: 11px;
+ }
+
+ #tbl-aug-jqevjm #tbl-aug-xphicj #tbl-aug-36dhpn .trc_popover .trc_popover_arrow:after {
+ border-width: 10px;
+ content: "";
+ }
+
+ #tbl-aug-jqevjm #tbl-aug-xphicj #tbl-aug-36dhpn .trc_popover.trc_bottom {
+ margin-top: 10px;
+ }
+
+ #tbl-aug-jqevjm #tbl-aug-xphicj #tbl-aug-36dhpn .trc_popover.trc_bottom .trc_popover_arrow {
+ top: -11px;
+ right: 11px;
+ margin-left: -11px;
+ border-bottom-color: #999;
+ border-bottom-color: rgba(0, 0, 0, 0.25);
+ border-top-width: 0;
+ }
+
+ #tbl-aug-jqevjm #tbl-aug-xphicj #tbl-aug-36dhpn .trc_popover.trc_bottom .trc_popover_arrow:after {
+ top: 1px;
+ margin-left: -10px;
+ border-bottom-color: #ffffff;
+ border-top-width: 0;
+ }
+
+ #tbl-aug-jqevjm #tbl-aug-xphicj #tbl-aug-36dhpn .trc_popover_fade.trc_in {
+ visibility: visible;
+ opacity: 1;
+ filter: alpha(opacity=100);
+ transition-delay: 0s, 0s;
+ -moz-transition-delay: 0s, 0s;
+ -webkit-transition-delay: 0s, 0s;
+ -o-transition-delay: 0s, 0s;
+ -ms-transition-delay: 0s, 0s;
+ }
+
+ #tbl-aug-jqevjm #tbl-aug-xphicj #tbl-aug-36dhpn .trc_popover_fade {
+ visibility: hidden;
+ opacity: 0;
+ filter: alpha(opacity=0);
+ transition: opacity 500ms 0s, visibility 0s 500ms;
+ -webkit-transition: opacity 500ms 0s, visibility 0s 500ms;
+ -moz-transition: opacity 500ms 0s, visibility 0s 500ms;
+ -o-transition: opacity 500ms 0s, visibility 0s 500ms;
+ -ms-transition: opacity 500ms 0s, visibility 0s 500ms;
+ }
+ </style>
+ <style type="text/css">
+ .at-icon {
+ fill: #fff;
+ border: 0
+ }
+
+ .at-icon-wrapper {
+ display: inline-block;
+ overflow: hidden
+ }
+
+ a .at-icon-wrapper {
+ cursor: pointer
+ }
+
+ .at-rounded,
+ .at-rounded-element .at-icon-wrapper {
+ border-radius: 12%
+ }
+
+ .at-circular,
+ .at-circular-element .at-icon-wrapper {
+ border-radius: 50%
+ }
+
+ .addthis_32x32_style .at-icon {
+ width: 2pc;
+ height: 2pc
+ }
+
+ .addthis_24x24_style .at-icon {
+ width: 24px;
+ height: 24px
+ }
+
+ .addthis_20x20_style .at-icon {
+ width: 20px;
+ height: 20px
+ }
+
+ .addthis_16x16_style .at-icon {
+ width: 1pc;
+ height: 1pc
+ }
+
+ #at16lb {
+ display: none;
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: 1001;
+ background-color: #000;
+ opacity: .001
+ }
+
+ #at_complete,
+ #at_error,
+ #at_share,
+ #at_success {
+ position: static!important
+ }
+
+ .at15dn {
+ display: none
+ }
+
+ #at15s,
+ #at16p,
+ #at16p form input,
+ #at16p label,
+ #at16p textarea,
+ #at_share .at_item {
+ font-family: arial, helvetica, tahoma, verdana, sans-serif!important;
+ font-size: 9pt!important;
+ outline-style: none;
+ outline-width: 0;
+ line-height: 1em
+ }
+
+ * html #at15s.mmborder {
+ position: absolute!important
+ }
+
+ #at15s.mmborder {
+ position: fixed!important;
+ width: 250px!important
+ }
+
+ #at15s {
+ background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABtJREFUeNpiZGBgaGAgAjAxEAlGFVJHIUCAAQDcngCUgqGMqwAAAABJRU5ErkJggg==);
+ float: none;
+ line-height: 1em;
+ margin: 0;
+ overflow: visible;
+ padding: 5px;
+ text-align: left;
+ position: absolute
+ }
+
+ #at15s a,
+ #at15s span {
+ outline: 0;
+ direction: ltr;
+ text-transform: none
+ }
+
+ #at15s .at-label {
+ margin-left: 5px
+ }
+
+ #at15s .at-icon-wrapper {
+ width: 1pc;
+ height: 1pc;
+ vertical-align: middle
+ }
+
+ #at15s .at-icon {
+ width: 1pc;
+ height: 1pc
+ }
+
+ .at4-icon {
+ display: inline-block;
+ background-repeat: no-repeat;
+ background-position: top left;
+ margin: 0;
+ overflow: hidden;
+ cursor: pointer
+ }
+
+ .addthis_16x16_style .at4-icon,
+ .addthis_default_style .at4-icon,
+ .at4-icon,
+ .at-16x16 {
+ width: 1pc;
+ height: 1pc;
+ line-height: 1pc;
+ background-size: 1pc!important
+ }
+
+ .addthis_32x32_style .at4-icon,
+ .at-32x32 {
+ width: 2pc;
+ height: 2pc;
+ line-height: 2pc;
+ background-size: 2pc!important
+ }
+
+ .addthis_24x24_style .at4-icon,
+ .at-24x24 {
+ width: 24px;
+ height: 24px;
+ line-height: 24px;
+ background-size: 24px!important
+ }
+
+ .addthis_20x20_style .at4-icon,
+ .at-20x20 {
+ width: 20px;
+ height: 20px;
+ line-height: 20px;
+ background-size: 20px!important
+ }
+
+ .at4-icon.circular,
+ .circular .at4-icon,
+ .circular.aticon {
+ border-radius: 50%
+ }
+
+ .at4-icon.rounded,
+ .rounded .at4-icon {
+ border-radius: 4px
+ }
+
+ .at4-icon-left {
+ float: left
+ }
+
+ #at15s .at4-icon {
+ text-indent: 20px;
+ padding: 0;
+ overflow: visible;
+ white-space: nowrap;
+ background-size: 1pc;
+ width: 1pc;
+ height: 1pc;
+ background-position: top left;
+ display: inline-block;
+ line-height: 1pc
+ }
+
+ .addthis_vertical_style .at4-icon,
+ .at4-follow-container .at4-icon {
+ margin-right: 5px
+ }
+
+ html&gt;
+ body #at15s {
+ width: 250px!important
+ }
+
+ #at15s.atm {
+ background: none!important;
+ padding: 0!important;
+ width: 10pc!important
+ }
+
+ #at15s_inner {
+ background: #fff;
+ border: 1px solid #fff;
+ margin: 0
+ }
+
+ #at15s_head {
+ position: relative;
+ background: #f2f2f2;
+ padding: 4px;
+ cursor: default;
+ border-bottom: 1px solid #e5e5e5
+ }
+
+ .at15s_head_success {
+ background: #cafd99!important;
+ border-bottom: 1px solid #a9d582!important
+ }
+
+ .at15s_head_success a,
+ .at15s_head_success span {
+ color: #000!important;
+ text-decoration: none
+ }
+
+ #at15s_brand,
+ #at15sptx,
+ #at16_brand {
+ position: absolute
+ }
+
+ #at15s_brand {
+ top: 4px;
+ right: 4px
+ }
+
+ .at15s_brandx {
+ right: 20px!important
+ }
+
+ a#at15sptx {
+ top: 4px;
+ right: 4px;
+ text-decoration: none;
+ color: #4c4c4c;
+ font-weight: 700
+ }
+
+ #at15sptx:hover {
+ text-decoration: underline
+ }
+
+ #at16_brand {
+ top: 5px;
+ right: 30px;
+ cursor: default
+ }
+
+ #at_hover {
+ padding: 4px
+ }
+
+ #at_hover .at_item,
+ #at_share .at_item {
+ background: #fff!important;
+ float: left!important;
+ color: #4c4c4c!important
+ }
+
+ #at_share .at_item .at-icon-wrapper {
+ margin-right: 5px
+ }
+
+ #at_hover .at_bold {
+ font-weight: 700;
+ color: #000!important
+ }
+
+ #at_hover .at_item {
+ width: 7pc!important;
+ padding: 2px 3px!important;
+ margin: 1px;
+ text-decoration: none!important
+ }
+
+ #at_hover .at_item.athov,
+ #at_hover .at_item:focus,
+ #at_hover .at_item:hover {
+ margin: 0!important
+ }
+
+ #at_hover .at_item.athov,
+ #at_hover .at_item:focus,
+ #at_hover .at_item:hover,
+ #at_share .at_item.athov,
+ #at_share .at_item:hover {
+ background: #f2f2f2!important;
+ border: 1px solid #e5e5e5;
+ color: #000!important;
+ text-decoration: none
+ }
+
+ .ipad #at_hover .at_item:focus {
+ background: #fff!important;
+ border: 1px solid #fff
+ }
+
+ .at15t {
+ display: block!important;
+ height: 1pc!important;
+ line-height: 1pc!important;
+ padding-left: 20px!important;
+ background-position: 0 0;
+ text-align: left
+ }
+
+ .addthis_button,
+ .at15t {
+ cursor: pointer
+ }
+
+ .addthis_toolbox a.at300b,
+ .addthis_toolbox a.at300m {
+ width: auto
+ }
+
+ .addthis_toolbox a {
+ margin-bottom: 5px;
+ line-height: initial
+ }
+
+ .addthis_toolbox.addthis_vertical_style {
+ width: 200px
+ }
+
+ .addthis_button_facebook_like .fb_iframe_widget {
+ line-height: 100%
+ }
+
+ .addthis_button_facebook_like iframe.fb_iframe_widget_lift {
+ max-width: none
+ }
+
+ .addthis_toolbox a.addthis_button_counter,
+ .addthis_toolbox a.addthis_button_facebook_like,
+ .addthis_toolbox a.addthis_button_facebook_send,
+ .addthis_toolbox a.addthis_button_facebook_share,
+ .addthis_toolbox a.addthis_button_foursquare,
+ .addthis_toolbox a.addthis_button_google_plusone,
+ .addthis_toolbox a.addthis_button_linkedin_counter,
+ .addthis_toolbox a.addthis_button_pinterest_pinit,
+ .addthis_toolbox a.addthis_button_stumbleupon_badge,
+ .addthis_toolbox a.addthis_button_tweet {
+ display: inline-block
+ }
+
+ .at-share-tbx-element .google_plusone_iframe_widget&gt;
+ span&gt;
+ div {
+ vertical-align: top!important
+ }
+
+ .addthis_toolbox span.addthis_follow_label {
+ display: none
+ }
+
+ .addthis_toolbox.addthis_vertical_style span.addthis_follow_label {
+ display: block;
+ white-space: nowrap
+ }
+
+ .addthis_toolbox.addthis_vertical_style a {
+ display: block
+ }
+
+ .addthis_toolbox.addthis_vertical_style.addthis_32x32_style a {
+ line-height: 2pc;
+ height: 2pc
+ }
+
+ .addthis_toolbox.addthis_vertical_style .at300bs {
+ margin-right: 4px;
+ float: left
+ }
+
+ .addthis_toolbox.addthis_20x20_style span {
+ line-height: 20px
+ }
+
+ .addthis_toolbox.addthis_32x32_style span {
+ line-height: 2pc
+ }
+
+ .addthis_toolbox.addthis_pill_combo_style .addthis_button_compact .at15t_compact,
+ .addthis_toolbox.addthis_pill_combo_style a {
+ float: left
+ }
+
+ .addthis_toolbox.addthis_pill_combo_style a.addthis_button_tweet {
+ margin-top: -2px
+ }
+
+ .addthis_toolbox.addthis_pill_combo_style .addthis_button_compact .at15t_compact {
+ margin-right: 4px
+ }
+
+ .addthis_default_style .addthis_separator {
+ margin: 0 5px;
+ display: inline
+ }
+
+ div.atclear {
+ clear: both
+ }
+
+ .addthis_default_style .addthis_separator,
+ .addthis_default_style .at4-icon,
+ .addthis_default_style .at300b,
+ .addthis_default_style .at300bo,
+ .addthis_default_style .at300bs,
+ .addthis_default_style .at300m {
+ float: left
+ }
+
+ .at300b img,
+ .at300bo img {
+ border: 0
+ }
+
+ a.at300b .at4-icon,
+ a.at300m .at4-icon {
+ display: block
+ }
+
+ .addthis_default_style .at300b,
+ .addthis_default_style .at300bo,
+ .addthis_default_style .at300m {
+ padding: 0 2px
+ }
+
+ .at300b,
+ .at300bo,
+ .at300bs,
+ .at300m {
+ cursor: pointer
+ }
+
+ .addthis_button_facebook_like.at300b:hover,
+ .addthis_button_facebook_like.at300bs:hover,
+ .addthis_button_facebook_send.at300b:hover,
+ .addthis_button_facebook_send.at300bs:hover {
+ opacity: 1
+ }
+
+ .addthis_20x20_style .at15t,
+ .addthis_20x20_style .at300bs {
+ overflow: hidden;
+ display: block;
+ height: 20px!important;
+ width: 20px!important;
+ line-height: 20px!important
+ }
+
+ .addthis_32x32_style .at15t,
+ .addthis_32x32_style .at300bs {
+ overflow: hidden;
+ display: block;
+ height: 2pc!important;
+ width: 2pc!important;
+ line-height: 2pc!important
+ }
+
+ .at300bs {
+ overflow: hidden;
+ display: block;
+ background-position: 0 0;
+ height: 1pc;
+ width: 1pc;
+ line-height: 1pc!important
+ }
+
+ .addthis_default_style .at15t_compact,
+ .addthis_default_style .at15t_expanded {
+ margin-right: 4px
+ }
+
+ #at_share .at_item {
+ width: 123px!important;
+ padding: 4px;
+ margin-right: 2px;
+ border: 1px solid #fff
+ }
+
+ #at16p {
+ background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABtJREFUeNpiZGBgaGAgAjAxEAlGFVJHIUCAAQDcngCUgqGMqwAAAABJRU5ErkJggg==);
+ z-index: 10000001;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ width: 300px;
+ padding: 10px;
+ margin: 0 auto;
+ margin-top: -185px;
+ margin-left: -155px;
+ font-family: arial, helvetica, tahoma, verdana, sans-serif;
+ font-size: 9pt;
+ color: #5e5e5e
+ }
+
+ #at_share {
+ margin: 0;
+ padding: 0
+ }
+
+ #at16pt {
+ position: relative;
+ background: #f2f2f2;
+ height: 13px;
+ padding: 5px 10px
+ }
+
+ #at16pt a,
+ #at16pt h4 {
+ font-weight: 700
+ }
+
+ #at16pt h4 {
+ display: inline;
+ margin: 0;
+ padding: 0;
+ font-size: 9pt;
+ color: #4c4c4c;
+ cursor: default
+ }
+
+ #at16pt a {
+ position: absolute;
+ top: 5px;
+ right: 10px;
+ color: #4c4c4c;
+ text-decoration: none;
+ padding: 2px
+ }
+
+ #at15sptx:focus,
+ #at16pt a:focus {
+ outline: thin dotted
+ }
+
+ #at15s #at16pf a {
+ top: 1px
+ }
+
+ #_atssh {
+ width: 1px!important;
+ height: 1px!important;
+ border: 0!important
+ }
+
+ .atm {
+ width: 10pc!important;
+ padding: 0;
+ margin: 0;
+ line-height: 9pt;
+ letter-spacing: normal;
+ font-family: arial, helvetica, tahoma, verdana, sans-serif;
+ font-size: 9pt;
+ color: #444;
+ background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABtJREFUeNpiZGBgaGAgAjAxEAlGFVJHIUCAAQDcngCUgqGMqwAAAABJRU5ErkJggg==);
+ padding: 4px
+ }
+
+ .atm-f {
+ text-align: right;
+ border-top: 1px solid #ddd;
+ padding: 5px 8px
+ }
+
+ .atm-i {
+ background: #fff;
+ border: 1px solid #d5d6d6;
+ padding: 0;
+ margin: 0;
+ box-shadow: 1px 1px 5px rgba(0, 0, 0, .15)
+ }
+
+ .atm-s {
+ margin: 0!important;
+ padding: 0!important
+ }
+
+ .atm-s a:focus {
+ border: transparent;
+ outline: 0;
+ -webkit-transition: none;
+ transition: none
+ }
+
+ #at_hover.atm-s a,
+ .atm-s a {
+ display: block;
+ text-decoration: none;
+ padding: 4px 10px;
+ color: #235dab!important;
+ font-weight: 400;
+ font-style: normal;
+ -webkit-transition: none;
+ transition: none
+ }
+
+ #at_hover.atm-s .at_bold {
+ color: #235dab!important
+ }
+
+ #at_hover.atm-s a:hover,
+ .atm-s a:hover {
+ background: #2095f0;
+ text-decoration: none;
+ color: #fff!important
+ }
+
+ #at_hover.atm-s .at_bold {
+ font-weight: 700
+ }
+
+ #at_hover.atm-s a:hover .at_bold {
+ color: #fff!important
+ }
+
+ .atm-s a .at-label {
+ vertical-align: middle;
+ margin-left: 5px;
+ direction: ltr
+ }
+
+ .at_PinItButton {
+ display: block;
+ width: 40px;
+ height: 20px;
+ padding: 0;
+ margin: 0;
+ background-image: url(//s7.addthis.com/static/t00/pinit00.png);
+ background-repeat: no-repeat
+ }
+
+ .at_PinItButton:hover {
+ background-position: 0 -20px
+ }
+
+ .addthis_toolbox .addthis_button_pinterest_pinit {
+ position: relative
+ }
+
+ .at-share-tbx-element .fb_iframe_widget span {
+ vertical-align: baseline!important
+ }
+
+ #at16pf {
+ height: auto;
+ text-align: right;
+ padding: 4px 8px
+ }
+
+ .at-privacy-info {
+ position: absolute;
+ left: 7px;
+ bottom: 7px;
+ cursor: pointer;
+ text-decoration: none;
+ font-family: helvetica, arial, sans-serif;
+ font-size: 10px;
+ line-height: 9pt;
+ letter-spacing: .2px;
+ color: #666
+ }
+
+ .at-privacy-info:hover {
+ color: #000
+ }
+
+ .body .wsb-social-share .wsb-social-share-button-vert {
+ padding-top: 0;
+ padding-bottom: 0
+ }
+
+ .body .wsb-social-share.addthis_counter_style .addthis_button_tweet.wsb-social-share-button {
+ padding-top: 44px
+ }
+
+ .body .wsb-social-share.addthis_counter_style .addthis_button_google_plusone.wsb-social-share-button {
+ padding-top: 4px
+ }
+
+ @media print {
+ #at4-follow,
+ #at4-share,
+ #at4-thankyou,
+ #at4-whatsnext,
+ #at4m-mobile,
+ #at15s,
+ .at4,
+ .at4-recommended {
+ display: none!important
+ }
+ }
+
+ @media screen and (max-width:400px) {
+ .at4win {
+ width: 100%
+ }
+ }
+
+ @media screen and (max-height:700px) and (max-width:400px) {
+ .at4-thankyou-inner .at4-recommended-container {
+ height: 122px;
+ overflow: hidden
+ }
+ .at4-thankyou-inner .at4-recommended .at4-recommended-item:first-child {
+ border-bottom: 1px solid #c5c5c5
+ }
+ }
+ </style>
+ <style type="text/css">
+ .at-branding-logo {
+ font-family: helvetica, arial, sans-serif;
+ text-decoration: none;
+ font-size: 10px;
+ display: inline-block;
+ margin: 2px 0;
+ letter-spacing: .2px
+ }
+
+ .at-branding-logo .at-branding-icon {
+ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAZQTFRF////+GlNUkcc1QAAAB1JREFUeNpiYIQDBjQmAwMmkwEM0JnY1WIxFyDAABGeAFEudiZsAAAAAElFTkSuQmCC")
+ }
+
+ .at-branding-logo .at-branding-icon,
+ .at-branding-logo .at-privacy-icon {
+ display: inline-block;
+ height: 10px;
+ width: 10px;
+ margin-left: 4px;
+ margin-right: 3px;
+ margin-bottom: -1px;
+ background-repeat: no-repeat
+ }
+
+ .at-branding-logo .at-privacy-icon {
+ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAKCAMAAABR24SMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABhQTFRF8fr9ot/xXcfn2/P5AKva////////AKTWodjhjAAAAAd0Uk5T////////ABpLA0YAAAA6SURBVHjaJMzBDQAwCAJAQaj7b9xifV0kUKJ9ciWxlzWEWI5gMF65KUTv0VKkjVeTerqE/x7+9BVgAEXbAWI8QDcfAAAAAElFTkSuQmCC")
+ }
+
+ .at-branding-logo span {
+ text-decoration: none
+ }
+
+ .at-branding-logo .at-branding-addthis,
+ .at-branding-logo .at-branding-powered-by {
+ color: #666
+ }
+
+ .at-branding-logo .at-branding-addthis:hover {
+ color: #333
+ }
+
+ .at-cv-with-image .at-branding-addthis,
+ .at-cv-with-image .at-branding-addthis:hover {
+ color: #fff
+ }
+
+ a.at-branding-logo:visited {
+ color: initial
+ }
+
+ .at-branding-info {
+ display: inline-block;
+ padding: 0 5px;
+ color: #666;
+ border: 1px solid #666;
+ border-radius: 50%;
+ font-size: 10px;
+ line-height: 9pt;
+ opacity: .7;
+ transition: all .3s ease;
+ text-decoration: none
+ }
+
+ .at-branding-info span {
+ border: 0;
+ clip: rect(0 0 0 0);
+ height: 1px;
+ margin: -1px;
+ overflow: hidden;
+ padding: 0;
+ position: absolute;
+ width: 1px
+ }
+
+ .at-branding-info:before {
+ content: 'i';
+ font-family: Times New Roman
+ }
+
+ .at-branding-info:hover {
+ color: #0780df;
+ border-color: #0780df
+ }
+ </style>
+ <script src="http://api-cache.adsnative.com/v1/host/www.breitbart.com/?&amp;callback=an_callback_lookup_1986955808"></script>
+ <script src="http://api.adsnative.com/v1/ad-template.json?zid=FcdFRtthi9lEUjCvIY8jg6swoQEvy9_zcgNC_ul4&amp;ck_widget_type=text_feed&amp;force_mobile=0&amp;template_key=NM07&amp;num_ads=10&amp;url=http%3A%2F%2Fwww.breitbart.com%2Ftech%2F2016%2F12%2F22%2Fneutral-snopes-fact-checker-david-emery-un-angry-trump-supporters%2F&amp;ref=&amp;callback=an_callback_605970347"></script>
+ <style type="text/css">
+ div.adsnative-labels {}
+
+ div.adsnative-powered-by {
+ margin-right: 5px !important;
+ font-size: 11px;
+ color: #777;
+ float: right;
+ text-align: right;
+ margin-right: 0px;
+ }
+
+ div.adsnative-powered-by a {
+ text-decoration: none;
+ color: #333;
+ font-size: 14px;
+ font-family: "BenchNine", sans-serif;
+ }
+
+ div.adsnative-powered-by a:hover {
+ color: #cc0033;
+ }
+
+ .adsnative-sponsored-label {
+ font-size: 12px;
+ color: #999;
+ margin-bottom: 5px;
+ }
+
+ .adsnative-share-buttons {
+ float: left;
+ margin-left: 8px;
+ margin-bottom: 5px;
+ }
+
+ .adsnative-share-button {
+ text-decoration: none;
+ display: block;
+ height: 24px;
+ float: left;
+ margin-right: 10px;
+ padding-left: 25px;
+ line-height: 21px;
+ font-size: 14px;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ }
+
+ .adsnative-fb-share {
+ background: url(http://static.adsnative.com/static/img/facebook.png) no-repeat;
+ color: #3a5899;
+ }
+
+ .adsnative-tw-share {
+ background: url(http://static.adsnative.com/static/img/twitter.png) no-repeat;
+ color: #40aceb;
+ }
+
+ .adsnative-cta-button {
+ display: block;
+ float: left;
+ width: 100%;
+ margin: 8px 0px auto;
+ border-radius: 0px;
+ background: -webkit-gradient( linear, left top, left bottom, color-stop(5%, #ededed), color-stop(100%, #dfdfdf));
+ border: 1px solid #DDD;
+ padding: 8px 0;
+ font-size: 14px;
+ font-family: Helvetica, Arial, sans-serif;
+ text-decoration: none;
+ text-align: center;
+ text-shadow: none;
+ color: #004276;
+ text-shadow: 0 1px 0 rgba(255, 255, 255, 1);
+ }
+
+ div.adsnative-reset {
+ clear: both;
+ }
+
+ [class^="adsnative-icon-"],
+ [class*=" adsnative-icon-"] {
+ display: none;
+ }
+
+ .sidebarText.nmDivWrap {
+ width: 100% !important;
+ text-align: left !important;
+ }
+
+ .sidebarText.nmHeaderGradiant {
+ height: 2px;
+ width: 30%;
+ min-width: 200px;
+ background: #005aab;
+ /* For browsers that do not support gradients */
+ background: -webkit-linear-gradient(left, #005aab, #FFFFFF);
+ /* For Safari 5.1 to 6.0 */
+ background: -o-linear-gradient(right, #005aab, #FFFFFF);
+ /* For Opera 11.1 to 12.0 */
+ background: -moz-linear-gradient(right, #005aab, #FFFFFF);
+ /* For Firefox 3.6 to 15 */
+ background: linear-gradient(to right, #005aab, #FFFFFF);
+ /* Standard syntax (must be last) */
+ }
+
+ .sidebarText.nmHeaderArrowRight {
+ width: 0;
+ height: 0;
+ border-top: 8px solid transparent;
+ border-bottom: 8px solid transparent;
+ border-left: 8px solid #B22222;
+ display: inline-block !important;
+ }
+
+ .sidebarText.nmHeaderTitle {
+ margin: 0px 0px 2px 1px !important;
+ font-size: 18px !important;
+ font-weight: 900 !important;
+ font-family: sans-serif !important;
+ display: inline-block !important;
+ letter-spacing: -1px !important;
+ color: #004a98 !important;
+ }
+
+ .sidebarText .nmWidgetUl {
+ padding: 0!important;
+ width: 100% !important;
+ margin: 5px 0 0 10px !important;
+ background: white !important;
+ overflow: inherit !important;
+ }
+
+ .sidebarText .nmWidgetList a {
+ font-size: 14px !important;
+ font-family: verdana !important;
+ color: #369 !important;
+ font-weight: bold !important;
+ line-height: 15px !important;
+ word-break: normal !important;
+ text-decoration: none !important;
+ display: inline-block;
+ margin-left: 5px;
+ }
+
+ .sidebarText .nmWidgetList a:hover {
+ text-decoration: underline !important;
+ }
+
+ .sidebarText .nmWidgetList {
+ font-family: Georgia, "Times New Roman", Times, serif;
+ font-size: 14px !important;
+ font-style: normal !important;
+ font-weight: bold !important;
+ margin: 0 0 8px 4px !important;
+ text-align: left !important;
+ background-color: transparent;
+ border-color: transparent;
+ border-bottom: none !important;
+ line-height: 15px !important;
+ min-height: 15px !important;
+ max-height: 50px !important;
+ padding: 0px !important;
+ color: #369 !important;
+ background: none !important;
+ list-style-type: none;
+ }
+
+ .sidebarText .nmWidgetList:before {
+ content: "• ";
+ font-weight: 800;
+ font-size: medium;
+ vertical-align: top;
+ margin: 0px 0 0 -11px;
+ display: inline-block;
+ color: #d0112b;
+ }
+
+ .sidebarText .nmWidgetList p {
+ overflow: hidden;
+ max-height: 50px !important;
+ margin: 0px !important;
+ font-size: 14px !important;
+ }
+
+ .sidebarText.nmWidgetBrand {
+ color: #000000 !important;
+ font-family: sans-serif;
+ font-size: 12px !important;
+ font-weight: 400 !important;
+ display: block;
+ margin: 0 5px 5px;
+ text-align: right;
+ cursor: pointer;
+ }
+
+ .sidebarText.nmWidgetBrand a {
+ color: #000000 !important;
+ text-decoration: none !Important;
+ }
+
+ .sidebarText.nmWidgetBrand a:hover {
+ text-decoration: underline;
+ }
+ </style>
+ <script type="text/javascript" id="BBGigyaScript" src="//cdns.gigya.com/js/gigya.js?apiKey=3_sVyWV_qhb9w4Q4jxXlEUG4EXX0dDK-sjiktnJKre3CQq9Jq4eUchLem4bynQohF-"></script>
+ <script async="" type="text/javascript" charset="UTF-8" src="http://connect.facebook.net/en_US/sdk.js"></script>
+ <style type="text/css">
+ .fb_hidden {
+ position: absolute;
+ top: -10000px;
+ z-index: 10001
+ }
+
+ .fb_reposition {
+ overflow: hidden;
+ position: relative
+ }
+
+ .fb_invisible {
+ display: none
+ }
+
+ .fb_reset {
+ background: none;
+ border: 0;
+ border-spacing: 0;
+ color: #000;
+ cursor: auto;
+ direction: ltr;
+ font-family: "lucida grande", tahoma, verdana, arial, sans-serif;
+ font-size: 11px;
+ font-style: normal;
+ font-variant: normal;
+ font-weight: normal;
+ letter-spacing: normal;
+ line-height: 1;
+ margin: 0;
+ overflow: visible;
+ padding: 0;
+ text-align: left;
+ text-decoration: none;
+ text-indent: 0;
+ text-shadow: none;
+ text-transform: none;
+ visibility: visible;
+ white-space: normal;
+ word-spacing: normal
+ }
+
+ .fb_reset&gt;
+ div {
+ overflow: hidden
+ }
+
+ .fb_link img {
+ border: none
+ }
+
+ @keyframes fb_transform {
+ from {
+ opacity: 0;
+ transform: scale(.95)
+ }
+ to {
+ opacity: 1;
+ transform: scale(1)
+ }
+ }
+
+ .fb_animate {
+ animation: fb_transform .3s forwards
+ }
+
+ .fb_dialog {
+ background: rgba(82, 82, 82, .7);
+ position: absolute;
+ top: -10000px;
+ z-index: 10001
+ }
+
+ .fb_reset .fb_dialog_legacy {
+ overflow: visible
+ }
+
+ .fb_dialog_advanced {
+ padding: 10px;
+ -moz-border-radius: 8px;
+ -webkit-border-radius: 8px;
+ border-radius: 8px
+ }
+
+ .fb_dialog_content {
+ background: #fff;
+ color: #333
+ }
+
+ .fb_dialog_close_icon {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/yq/r/IE9JII6Z1Ys.png) no-repeat scroll 0 0 transparent;
+ _background-image: url(https://static.xx.fbcdn.net/rsrc.php/v3/yL/r/s816eWC-2sl.gif);
+ cursor: pointer;
+ display: block;
+ height: 15px;
+ position: absolute;
+ right: 18px;
+ top: 17px;
+ width: 15px
+ }
+
+ .fb_dialog_mobile .fb_dialog_close_icon {
+ top: 5px;
+ left: 5px;
+ right: auto
+ }
+
+ .fb_dialog_padding {
+ background-color: transparent;
+ position: absolute;
+ width: 1px;
+ z-index: -1
+ }
+
+ .fb_dialog_close_icon:hover {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/yq/r/IE9JII6Z1Ys.png) no-repeat scroll 0 -15px transparent;
+ _background-image: url(https://static.xx.fbcdn.net/rsrc.php/v3/yL/r/s816eWC-2sl.gif)
+ }
+
+ .fb_dialog_close_icon:active {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/yq/r/IE9JII6Z1Ys.png) no-repeat scroll 0 -30px transparent;
+ _background-image: url(https://static.xx.fbcdn.net/rsrc.php/v3/yL/r/s816eWC-2sl.gif)
+ }
+
+ .fb_dialog_loader {
+ background-color: #f6f7f9;
+ border: 1px solid #606060;
+ font-size: 24px;
+ padding: 20px
+ }
+
+ .fb_dialog_top_left,
+ .fb_dialog_top_right,
+ .fb_dialog_bottom_left,
+ .fb_dialog_bottom_right {
+ height: 10px;
+ width: 10px;
+ overflow: hidden;
+ position: absolute
+ }
+
+ .fb_dialog_top_left {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/ye/r/8YeTNIlTZjm.png) no-repeat 0 0;
+ left: -10px;
+ top: -10px
+ }
+
+ .fb_dialog_top_right {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/ye/r/8YeTNIlTZjm.png) no-repeat 0 -10px;
+ right: -10px;
+ top: -10px
+ }
+
+ .fb_dialog_bottom_left {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/ye/r/8YeTNIlTZjm.png) no-repeat 0 -20px;
+ bottom: -10px;
+ left: -10px
+ }
+
+ .fb_dialog_bottom_right {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/ye/r/8YeTNIlTZjm.png) no-repeat 0 -30px;
+ right: -10px;
+ bottom: -10px
+ }
+
+ .fb_dialog_vert_left,
+ .fb_dialog_vert_right,
+ .fb_dialog_horiz_top,
+ .fb_dialog_horiz_bottom {
+ position: absolute;
+ background: #525252;
+ filter: alpha(opacity=70);
+ opacity: .7
+ }
+
+ .fb_dialog_vert_left,
+ .fb_dialog_vert_right {
+ width: 10px;
+ height: 100%
+ }
+
+ .fb_dialog_vert_left {
+ margin-left: -10px
+ }
+
+ .fb_dialog_vert_right {
+ right: 0;
+ margin-right: -10px
+ }
+
+ .fb_dialog_horiz_top,
+ .fb_dialog_horiz_bottom {
+ width: 100%;
+ height: 10px
+ }
+
+ .fb_dialog_horiz_top {
+ margin-top: -10px
+ }
+
+ .fb_dialog_horiz_bottom {
+ bottom: 0;
+ margin-bottom: -10px
+ }
+
+ .fb_dialog_iframe {
+ line-height: 0
+ }
+
+ .fb_dialog_content .dialog_title {
+ background: #6d84b4;
+ border: 1px solid #365899;
+ color: #fff;
+ font-size: 14px;
+ font-weight: bold;
+ margin: 0
+ }
+
+ .fb_dialog_content .dialog_title&gt;
+ span {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/yd/r/Cou7n-nqK52.gif) no-repeat 5px 50%;
+ float: left;
+ padding: 5px 0 7px 26px
+ }
+
+ body.fb_hidden {
+ -webkit-transform: none;
+ height: 100%;
+ margin: 0;
+ overflow: visible;
+ position: absolute;
+ top: -10000px;
+ left: 0;
+ width: 100%
+ }
+
+ .fb_dialog.fb_dialog_mobile.loading {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/ya/r/3rhSv5V8j3o.gif) white no-repeat 50% 50%;
+ min-height: 100%;
+ min-width: 100%;
+ overflow: hidden;
+ position: absolute;
+ top: 0;
+ z-index: 10001
+ }
+
+ .fb_dialog.fb_dialog_mobile.loading.centered {
+ width: auto;
+ height: auto;
+ min-height: initial;
+ min-width: initial;
+ background: none
+ }
+
+ .fb_dialog.fb_dialog_mobile.loading.centered #fb_dialog_loader_spinner {
+ width: 100%
+ }
+
+ .fb_dialog.fb_dialog_mobile.loading.centered .fb_dialog_content {
+ background: none
+ }
+
+ .loading.centered #fb_dialog_loader_close {
+ color: #fff;
+ display: block;
+ padding-top: 20px;
+ clear: both;
+ font-size: 18px
+ }
+
+ #fb-root #fb_dialog_ipad_overlay {
+ background: rgba(0, 0, 0, .45);
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ top: 0;
+ width: 100%;
+ min-height: 100%;
+ z-index: 10000
+ }
+
+ #fb-root #fb_dialog_ipad_overlay.hidden {
+ display: none
+ }
+
+ .fb_dialog.fb_dialog_mobile.loading iframe {
+ visibility: hidden
+ }
+
+ .fb_dialog_content .dialog_header {
+ -webkit-box-shadow: white 0 1px 1px -1px inset;
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#738ABA), to(#2C4987));
+ border-bottom: 1px solid;
+ border-color: #1d4088;
+ color: #fff;
+ font: 14px Helvetica, sans-serif;
+ font-weight: bold;
+ text-overflow: ellipsis;
+ text-shadow: rgba(0, 30, 84, .296875) 0 -1px 0;
+ vertical-align: middle;
+ white-space: nowrap
+ }
+
+ .fb_dialog_content .dialog_header table {
+ -webkit-font-smoothing: subpixel-antialiased;
+ height: 43px;
+ width: 100%
+ }
+
+ .fb_dialog_content .dialog_header td.header_left {
+ font-size: 12px;
+ padding-left: 5px;
+ vertical-align: middle;
+ width: 60px
+ }
+
+ .fb_dialog_content .dialog_header td.header_right {
+ font-size: 12px;
+ padding-right: 5px;
+ vertical-align: middle;
+ width: 60px
+ }
+
+ .fb_dialog_content .touchable_button {
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#4966A6), color-stop(.5, #355492), to(#2A4887));
+ border: 1px solid #29487d;
+ -webkit-background-clip: padding-box;
+ -webkit-border-radius: 3px;
+ -webkit-box-shadow: rgba(0, 0, 0, .117188) 0 1px 1px inset, rgba(255, 255, 255, .167969) 0 1px 0;
+ display: inline-block;
+ margin-top: 3px;
+ max-width: 85px;
+ line-height: 18px;
+ padding: 4px 12px;
+ position: relative
+ }
+
+ .fb_dialog_content .dialog_header .touchable_button input {
+ border: none;
+ background: none;
+ color: #fff;
+ font: 12px Helvetica, sans-serif;
+ font-weight: bold;
+ margin: 2px -12px;
+ padding: 2px 6px 3px 6px;
+ text-shadow: rgba(0, 30, 84, .296875) 0 -1px 0
+ }
+
+ .fb_dialog_content .dialog_header .header_center {
+ color: #fff;
+ font-size: 16px;
+ font-weight: bold;
+ line-height: 18px;
+ text-align: center;
+ vertical-align: middle
+ }
+
+ .fb_dialog_content .dialog_content {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/y9/r/jKEcVPZFk-2.gif) no-repeat 50% 50%;
+ border: 1px solid #555;
+ border-bottom: 0;
+ border-top: 0;
+ height: 150px
+ }
+
+ .fb_dialog_content .dialog_footer {
+ background: #f6f7f9;
+ border: 1px solid #555;
+ border-top-color: #ccc;
+ height: 40px
+ }
+
+ #fb_dialog_loader_close {
+ float: left
+ }
+
+ .fb_dialog.fb_dialog_mobile .fb_dialog_close_button {
+ text-shadow: rgba(0, 30, 84, .296875) 0 -1px 0
+ }
+
+ .fb_dialog.fb_dialog_mobile .fb_dialog_close_icon {
+ visibility: hidden
+ }
+
+ #fb_dialog_loader_spinner {
+ animation: rotateSpinner 1.2s linear infinite;
+ background-color: transparent;
+ background-image: url(https://static.xx.fbcdn.net/rsrc.php/v3/yD/r/t-wz8gw1xG1.png);
+ background-repeat: no-repeat;
+ background-position: 50% 50%;
+ height: 24px;
+ width: 24px
+ }
+
+ @keyframes rotateSpinner {
+ 0% {
+ transform: rotate(0deg)
+ }
+ 100% {
+ transform: rotate(360deg)
+ }
+ }
+
+ .fb_iframe_widget {
+ display: inline-block;
+ position: relative
+ }
+
+ .fb_iframe_widget span {
+ display: inline-block;
+ position: relative;
+ text-align: justify
+ }
+
+ .fb_iframe_widget iframe {
+ position: absolute
+ }
+
+ .fb_iframe_widget_fluid_desktop,
+ .fb_iframe_widget_fluid_desktop span,
+ .fb_iframe_widget_fluid_desktop iframe {
+ max-width: 100%
+ }
+
+ .fb_iframe_widget_fluid_desktop iframe {
+ min-width: 220px;
+ position: relative
+ }
+
+ .fb_iframe_widget_lift {
+ z-index: 1
+ }
+
+ .fb_hide_iframes iframe {
+ position: relative;
+ left: -10000px
+ }
+
+ .fb_iframe_widget_loader {
+ position: relative;
+ display: inline-block
+ }
+
+ .fb_iframe_widget_fluid {
+ display: inline
+ }
+
+ .fb_iframe_widget_fluid span {
+ width: 100%
+ }
+
+ .fb_iframe_widget_loader iframe {
+ min-height: 32px;
+ z-index: 2;
+ zoom: 1
+ }
+
+ .fb_iframe_widget_loader .FB_Loader {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/y9/r/jKEcVPZFk-2.gif) no-repeat;
+ height: 32px;
+ width: 32px;
+ margin-left: -16px;
+ position: absolute;
+ left: 50%;
+ z-index: 4
+ }
+ </style>
+ <script type="text/javascript" charset="utf-8" async="" src="//s7.addthis.com/static/layers.ea0ccaf667d08a14f4c7.js"></script>
+ <style type="text/css">
+ .at-share-dock.atss {
+ top: auto;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ width: 100%;
+ max-width: 100%;
+ z-index: 1000200;
+ box-shadow: 0 0 1px 1px #e2dfe2
+ }
+
+ .at-share-dock.at-share-dock-zindex-hide {
+ z-index: -1!important
+ }
+
+ .at-share-dock.atss-top {
+ bottom: auto;
+ top: 0
+ }
+
+ .at-share-dock a {
+ width: auto;
+ -webkit-transition: none;
+ transition: none;
+ color: #fff;
+ text-decoration: none;
+ box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+ -moz-box-sizing: content-box
+ }
+
+ .at-share-dock a:hover {
+ width: auto
+ }
+
+ .at-share-dock .at4-count {
+ height: 43px;
+ padding: 5px 0 0;
+ line-height: 20px;
+ background: #fff;
+ font-family: Helvetica neue, arial
+ }
+
+ .at-share-dock .at4-count span {
+ width: 100%
+ }
+
+ .at-share-dock .at4-count .at4-share-label {
+ color: #848484;
+ font-size: 10px;
+ letter-spacing: 1px
+ }
+
+ .at-share-dock .at4-count .at4-counter {
+ top: 2px;
+ position: relative;
+ display: block;
+ color: #222;
+ font-size: 22px
+ }
+
+ .at-share-dock.at-shfs-medium .at4-count {
+ height: 36px;
+ line-height: 1pc;
+ padding-top: 4px
+ }
+
+ .at-share-dock.at-shfs-medium .at4-count .at4-counter {
+ font-size: 18px
+ }
+
+ .at-share-dock.at-shfs-medium .at-share-btn .at-icon-wrapper,
+ .at-share-dock.at-shfs-medium a .at-icon-wrapper {
+ padding: 6px 0
+ }
+
+ .at-share-dock.at-shfs-small .at4-count {
+ height: 26px;
+ line-height: 1;
+ padding-top: 3px
+ }
+
+ .at-share-dock.at-shfs-small .at4-count .at4-share-label {
+ font-size: 8px
+ }
+
+ .at-share-dock.at-shfs-small .at4-count .at4-counter {
+ font-size: 14px
+ }
+
+ .at-share-dock.at-shfs-small .at-share-btn .at-icon-wrapper,
+ .at-share-dock.at-shfs-small a .at-icon-wrapper {
+ padding: 4px 0
+ }
+ </style>
+ <style type="text/css">
+ #at4m-mobile-container {
+ z-index: 9999999;
+ position: fixed
+ }
+
+ #at4m-menu {
+ -webkit-transition-timing-function: linear;
+ transition-timing-function: linear
+ }
+
+ #at4-searchClear {
+ cursor: pointer
+ }
+
+ #at4m-dock {
+ position: fixed;
+ left: 0;
+ width: 100%;
+ -o-box-shadow: 0 -1px 4px rgba(0, 0, 0, .15);
+ box-shadow: 0 -1px 4px rgba(0, 0, 0, .15);
+ font-family: helvetica neue, helvetica, arial, sans-serif;
+ font-size: 14px;
+ font-weight: 300;
+ color: #000
+ }
+
+ .at4m-dock {
+ background: #ebebeb
+ }
+
+ .at4m-dock-bottom {
+ top: auto;
+ bottom: 0
+ }
+
+ .at4m-dock-top {
+ top: 0;
+ bottom: auto
+ }
+
+ .at4m-dock a:link,
+ .at4m-dock a:visited {
+ display: block;
+ border: none;
+ margin: 0;
+ padding: 0;
+ height: 45px;
+ line-height: 45px;
+ text-align: center;
+ text-decoration: none;
+ text-shadow: none;
+ font-weight: 700;
+ color: #555;
+ cursor: pointer;
+ float: left;
+ zoom: 1
+ }
+
+ .at4m-dock a:active,
+ .at4m-dock a:hover,
+ .at4m-dock-toggle a:hover {
+ background-color: #e2e2e2;
+ color: #000;
+ cursor: pointer
+ }
+
+ .at4m-dock a i {
+ display: inline-block;
+ height: 45px;
+ line-height: 45px;
+ vertical-align: middle;
+ opacity: .2
+ }
+
+ .at4m-dock a:active i,
+ .at4m-dock a:hover i {
+ opacity: .9
+ }
+
+ .at4m-dock a i.at4m-dock-share {
+ background: url(//s7.addthis.com/static/0cdf7a36b49e9150e4ddd7ce01143fdc.png) no-repeat 0 0;
+ background-image: url(//s7.addthis.com/static/c4ee1ef2025cac1d2377de864e802791.svg), none;
+ background-position: 0 -2px;
+ width: 30px
+ }
+
+ .at4m-dock a i.at4m-dock-follow {
+ background: url(//s7.addthis.com/static/34c65ab171688e81111b0c5219405376.png) no-repeat 0 0;
+ background-image: url(//s7.addthis.com/static/2f9e800dffd36b9ae492670a4340386e.svg), none;
+ background-position: 0 -2px;
+ width: 26px
+ }
+
+ .at4m-dock.at4-ma1 a {
+ display: inline-block;
+ width: 86%
+ }
+
+ .at4m-dock.at4-ma2 a {
+ display: inline-block;
+ width: 43%
+ }
+
+ .at4m-dock.at4-ma2 a:first-child {
+ border-right: 1px solid #ccc
+ }
+
+ .at4m-dock-toggle {
+ position: fixed;
+ left: auto;
+ right: 0;
+ width: 14%;
+ min-width: 40px;
+ height: 45px
+ }
+
+ .at4m-dock-toggle-bottom {
+ top: auto;
+ bottom: 0
+ }
+
+ .at4m-dock-toggle-top {
+ bottom: auto;
+ top: 0
+ }
+
+ .at4m-dock-toggle a {
+ display: block;
+ background: url(//s7.addthis.com/static/6f026d41cd1a08a0f124517f4a4b6381.png) no-repeat center;
+ background-image: url(//s7.addthis.com/static/6ac59ac63a78f7c0ecfe9bbc05ee16af.svg), none;
+ border-left: 1px solid #ccc;
+ height: 44px;
+ line-height: 44px;
+ overflow: hidden;
+ text-indent: -9999em;
+ text-align: center;
+ padding: 0;
+ margin: 0;
+ opacity: .35
+ }
+
+ .at4m-dock-toggle a.at4-dock-toggle-active {
+ background: url(//s7.addthis.com/static/edb81de4c71c0bc5e7093002607fb828.png) no-repeat center;
+ background-image: url(//s7.addthis.com/static/958b6ad449d91a582198eaaa1013e4a8.svg), none;
+ background-color: #fff;
+ border-top: 1px solid #ccc
+ }
+
+ .at4m-dock-toggle.ats-dark,
+ .at4m-dock.ats-dark {
+ background: #262b30;
+ border-color: #1b1b1b;
+ color: #fff
+ }
+
+ .at4m-dock.ats-dark a {
+ color: #f2f2f2
+ }
+
+ .at4m-dock.ats-dark a i {
+ opacity: .25
+ }
+
+ .at4m-dock.at4-ma2.ats-dark a:first-child {
+ border-right: 1px solid #3e4247
+ }
+
+ .at4m-dock-toggle.ats-dark a:active,
+ .at4m-dock-toggle.ats-dark a:hover,
+ .at4m-dock.ats-dark a:active,
+ .at4m-dock.ats-dark a:hover {
+ background-color: #1b1e22
+ }
+
+ .at4m-dock.ats-dark a i.at4m-dock-share {
+ background: url(//s7.addthis.com/static/969412d543656390654b7a1fbad5c052.png) no-repeat left center;
+ background-image: url(//s7.addthis.com/static/d0b50381e6dff723034c9fb045fa5579.svg), none;
+ background-position: 0 -2px
+ }
+
+ .at4m-dock.ats-dark a i.at4m-dock-follow {
+ background: url(//s7.addthis.com/static/031cd90bcb2cf1bc5d0514d6df32e08b.png) no-repeat left center;
+ background-image: url(//s7.addthis.com/static/9b6c210d20bea1e6b56e800331c32bff.svg), none;
+ background-position: 0 -2px
+ }
+
+ .at4m-dock-toggle.ats-dark a {
+ background: url(//s7.addthis.com/static/bd94d63e97308ccebb29a220dcc82c2c.png) no-repeat center;
+ background-image: url(//s7.addthis.com/static/066d11a3dfa049803336eba1abb50292.svg), none;
+ border-color: #676d73
+ }
+
+ .at4m-dock-toggle.ats-dark a.at4-dock-toggle-active {
+ background: url(//s7.addthis.com/static/6ff05a92b143930d8fcc6a7d47a6859b.png) no-repeat center;
+ background-image: url(//s7.addthis.com/static/fd9202254cfad377dad0ecc0eb38d503.svg), none
+ }
+
+ .at4m-dock-toggle.top,
+ .at4m-dock.top {
+ top: 0;
+ bottom: auto
+ }
+
+ .at4m-dock-toggle.top a {
+ background: url(//s7.addthis.com/static/edb81de4c71c0bc5e7093002607fb828.png) no-repeat center;
+ background-image: url(//s7.addthis.com/static/958b6ad449d91a582198eaaa1013e4a8.svg), none
+ }
+
+ .at4m-dock-toggle.top a.at4-dock-toggle-active {
+ background: url(//s7.addthis.com/static/6f026d41cd1a08a0f124517f4a4b6381.png) no-repeat center;
+ background-image: url(//s7.addthis.com/static/6ac59ac63a78f7c0ecfe9bbc05ee16af.svg), none
+ }
+
+ .at4m-dock-toggle.top.ats-dark a {
+ background: url(//s7.addthis.com/static/6ff05a92b143930d8fcc6a7d47a6859b.png) no-repeat center;
+ background-image: url(//s7.addthis.com/static/fd9202254cfad377dad0ecc0eb38d503.svg), none;
+ border-color: #676d73
+ }
+
+ .at4m-dock-toggle.top.ats-dark a.at4-dock-toggle-active {
+ background: url(//s7.addthis.com/static/bd94d63e97308ccebb29a220dcc82c2c.png) no-repeat center;
+ background-image: url(//s7.addthis.com/static/066d11a3dfa049803336eba1abb50292.svg), none
+ }
+
+ .at4m-dock.ats-gray {
+ border-top: 1px solid #dbdbdb
+ }
+
+ .at4m-dock.ats-gray a:first-child {
+ border-right: 1px solid #dadada
+ }
+
+ .at4m-dock.ats-gray a {
+ color: #444
+ }
+
+ .at4m-dock.ats-gray a i {
+ opacity: .25
+ }
+
+ .at4m-dock-toggle.ats-gray a {
+ border-color: #b2b2b2
+ }
+
+ .at4m-dock-toggle.ats-gray a.at4-dock-toggle-active {
+ background-color: #e2e2e2;
+ border-color: #b2b2b2
+ }
+
+ .at4m-dock-toggle.ats-light a:active,
+ .at4m-dock-toggle.ats-light a:hover,
+ .at4m-dock.ats-light a:active,
+ .at4m-dock.ats-light a:hover {
+ background-color: #f5f5f5
+ }
+
+ .at4m-dock-toggle.ats-light a.at4-dock-toggle,
+ .at4m-dock-toggle.ats-light a.at4-dock-toggle-active {
+ background-color: #fff;
+ border-color: #dadada
+ }
+
+ .at4m-menu {
+ position: fixed;
+ background: #fff;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ font-family: helvetica neue, helvetica, arial, sans-serif;
+ font-size: 14px;
+ font-weight: 300;
+ display: none;
+ opacity: 0
+ }
+
+ .at4m-menu.abs {
+ position: absolute
+ }
+
+ .at4m-menu .at4m-menu-inner {
+ position: relative;
+ width: 100%;
+ height: 100%;
+ overflow: auto
+ }
+
+ .at4m-menu .at4m-menu-inner .at4m-menu-header {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ width: 100%;
+ background: #fff;
+ -o-box-shadow: 0 2px 4px rgba(0, 0, 0, .1);
+ box-shadow: 0 2px 4px rgba(0, 0, 0, .1);
+ font-family: helvetica neue, helvetica, arial, sans-serif;
+ font-weight: 700;
+ color: #444;
+ cursor: default
+ }
+
+ .at4m-menu .at4m-menu-inner .at4m-menu-header .at4m-menu-header-inner {
+ position: relative;
+ height: 44px;
+ text-align: left;
+ line-height: 44px;
+ padding: 0 44px 0 15px
+ }
+
+ .at4m-menu .at4m-menu-inner .at4m-menu-header .at4m-menu-header-inner a.at4m-menu-cancel {
+ position: absolute;
+ top: 0;
+ right: 0;
+ display: block;
+ background: url(//s7.addthis.com/static/56b9cf44789a75f4822ae4677c0809f0.png) no-repeat center center;
+ background-image: url(//s7.addthis.com/static/fc0122e3c71ae79db7be2a7ccfcd419c.svg), none;
+ width: 42px;
+ height: 44px;
+ overflow: hidden;
+ text-indent: -9999em;
+ opacity: .74
+ }
+
+ #at4m-menu-body {
+ top: 45px;
+ bottom: 35px;
+ left: 0;
+ overflow-y: scroll
+ }
+
+ #at4m-menu-body,
+ #at4m-scroller {
+ position: absolute;
+ width: 100%
+ }
+
+ .at4m-hidden-overflow {
+ overflow: hidden
+ }
+
+ .at4m-scroll-overflow {
+ overflow-y: auto!important
+ }
+
+ .at4m-menu .at4m-menu-inner .at4m-menu-search {
+ position: relative;
+ background: #f5f5f5;
+ border-bottom: 1px solid #e7e9ec;
+ height: 44px
+ }
+
+ .at4m-menu .at4m-menu-inner .at4m-menu-search input[type=text] {
+ position: absolute;
+ top: 7px;
+ left: 13px;
+ right: 15px;
+ width: auto;
+ background: transparent;
+ border: none;
+ height: 24px;
+ line-height: 1.14em;
+ padding: 4px 4px 4px 22px;
+ font-size: 1.14em;
+ font-weight: 300;
+ outline: 0;
+ margin-bottom: 0
+ }
+
+ .at4m-menu .at4m-menu-inner .at4m-menu-search input[type=submit] {
+ position: absolute;
+ top: 11px;
+ left: 14px;
+ width: 1pc;
+ height: 1pc;
+ background: url(//s7.addthis.com/static/3fc4b18bbb046f074de86a3cb5398353.svg), none;
+ background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1NDQxMjk0RDkzRjIxMUUyODgyNEMyRjRCOUU5QTdDNiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1NDQxMjk0RTkzRjIxMUUyODgyNEMyRjRCOUU5QTdDNiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU0NDEyOTRCOTNGMjExRTI4ODI0QzJGNEI5RTlBN0M2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU0NDEyOTRDOTNGMjExRTI4ODI0QzJGNEI5RTlBN0M2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+RlRfxAAAAOhJREFUeNrEU+0NgkAM5YwD4Aa6AUygTuAIwASck8hNAG7CBrKBjIAT4CvpkSb2/Ag/bNL0CH3vXj/OjOMYLbFVtNDW/mCMmWJVVVuEXOS01tpWgqRq4z+IAOALjla5qAFJoRHMJQCcM7iDHwEgSSkpIEVM/mKzAufcHSGG7wAeZBLAN4QEvqF/qgLYlqUOykVXjsmnKTwCzR6+GSMlZZAbK3kZx/4dgeMyak9CEV7jeKDmorw+2EQeYy12oFNqnsYZ3AMxzhNPxDdwL4ibsiyLIEHIhLoOBOnPb4E38UxLpvbgb6/xKcAAtbllO+gwy6kAAAAASUVORK5CYII=");
+ background-repeat: no-repeat;
+ background-position: 0 0;
+ background-position: center bottom\9;
+ border: none;
+ overflow: hidden;
+ text-indent: -9999em;
+ cursor: pointer;
+ opacity: .22
+ }
+
+ .at4m-menu .at4m-menu-inner .at4m-menu-search input[type=cancel] {
+ position: absolute;
+ top: 9pt;
+ right: 20px;
+ width: 18px;
+ height: 18px;
+ background: url(//s7.addthis.com/static/f048274431eaef1b46f80d94f1c18af6.png) no-repeat center center;
+ background-image: url(//s7.addthis.com/static/666b87d14e4d4e526b57292ab8adc465.svg), none;
+ background-size: 18px 18px;
+ border: none;
+ overflow: hidden;
+ text-indent: -9999em;
+ opacity: .14
+ }
+
+ .at4m-menu .at4m-menu-inner .at4m-menu-footer {
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ width: 100%;
+ height: 30px;
+ background: #fff;
+ text-align: left;
+ line-height: 1pc;
+ -o-box-shadow: 0 -2px 4px rgba(0, 0, 0, .1);
+ box-shadow: 0 -2px 4px rgba(0, 0, 0, .1)
+ }
+
+ .at4m-menu .at4m-menu-inner .at4m-menu-footer .at4m-menu-footer-inner {
+ position: relative;
+ height: 26px;
+ padding: 5px 15px
+ }
+
+ .at4m-menu .at4m-menu-inner .at4m-menu-footer .at4m-menu-footer-inner .at4m-menu-footer-logo {
+ background: url(//s7.addthis.com/static/5432e2206e5cb0b11874ad11e5a22186.png);
+ background-image: url(//s7.addthis.com/static/f1a5a53cfb4afc0b8231b342c9e39ece.svg), none;
+ background-repeat: no-repeat;
+ background-position: left 2px;
+ background-size: 9px 9px;
+ padding-left: 9pt
+ }
+
+ .at4m-menu .at4m-menu-inner .at4m-menu-footer .at4m-menu-footer-inner .at4m-menu-footer-privacy {
+ position: absolute;
+ top: 7px;
+ right: 15px;
+ background: url(//s7.addthis.com/static/7450d2e11bef7d7c140b197429765a62.png);
+ background-image: url(//s7.addthis.com/static/d714fde79b61d3f511dd5c11ad366e68.svg), none;
+ background-repeat: no-repeat;
+ background-position: right 3px;
+ background-size: 8px 9px;
+ padding-right: 13px
+ }
+
+ .at4m-menu .at4m-menu-inner .at4m-menu-footer .at4m-menu-footer-inner a:link,
+ .at4m-menu .at4m-menu-inner .at4m-menu-footer .at4m-menu-footer-inner a:visited {
+ font-size: .714em;
+ text-decoration: none;
+ color: #666
+ }
+
+ .at4m-menu.abs {
+ border-top: .5px solid #efefef
+ }
+
+ .at4m-menu.abs,
+ .at4m-menu.abs .at4m-menu-inner .at4m-menu-footer,
+ .at4m-menu.abs .at4m-menu-inner .at4m-menu-header {
+ position: absolute
+ }
+
+ .at4m-menu .at4m-menu-content {
+ position: relative;
+ padding: 0 0 27px
+ }
+
+ .at4m-menu .at4m-menu-content ul {
+ margin: 0;
+ padding: 0
+ }
+
+ .at4m-menu .at4m-menu-content ul li {
+ background: #fff;
+ list-style: none;
+ margin: 0;
+ padding: 0;
+ border-bottom: 1px solid #e7e9ec;
+ -ms-box-sizing: content-box;
+ -o-box-sizing: content-box;
+ box-sizing: content-box
+ }
+
+ .at4m-menu .at4m-menu-content ul li:hover {
+ background: #f5f5f5
+ }
+
+ .at4m-menu .at4m-menu-content ul li a {
+ position: relative;
+ display: block;
+ height: 2pc;
+ line-height: 2pc;
+ padding: 9pt 20px 9pt 14px;
+ text-decoration: none;
+ text-align: left;
+ font-family: helvetica neue, helvetica, arial, sans-serif;
+ font-size: 1.07em;
+ font-weight: 300;
+ color: #444;
+ -ms-box-sizing: content-box;
+ -o-box-sizing: content-box;
+ box-sizing: content-box
+ }
+
+ .at4m-menu .at4m-menu-content ul li a:active {
+ background-color: #f9f9f9
+ }
+
+ .at4m-menu .at4m-menu-content ul li a span.at-icon-wrapper {
+ margin: 0 9px 0 0;
+ float: left
+ }
+
+ .at4m-menu .at4m-menu-content ul li a span.at4-label {
+ display: inline-block;
+ height: 2pc;
+ line-height: 2pc;
+ margin-left: 10px
+ }
+
+ .at4m-menu .at4m-menu-content ul li a span.at4-label.atservice-preferred {
+ font-weight: 700
+ }
+
+ .at4m-menu .at4m-menu-content ul li a span.at4-arrow {
+ display: inline-block;
+ position: absolute;
+ right: 5px;
+ background: url(//s7.addthis.com/static/745bc30b589d20aeba08481e06fae159.png);
+ background-image: url(//s7.addthis.com/static/f4d5547a72831e67681d82122e1d563f.svg), none;
+ background-repeat: no-repeat;
+ background-position: center center;
+ width: 2pc;
+ height: 2pc;
+ text-indent: -9999em;
+ overflow: hidden;
+ opacity: .22
+ }
+
+ .at4m-menu.ats-dark .at4m-menu-footer,
+ .at4m-menu.ats-dark .at4m-menu-header {
+ background: #262b30;
+ color: #fff
+ }
+
+ .at4m-menu.ats-dark .at4m-menu-inner .at4m-menu-header button {
+ background: #000;
+ border-color: #333;
+ color: #fff
+ }
+
+ .at4m-menu.ats-dark .at4m-menu-inner .at4m-menu-header .at4m-menu-header-inner a.at4m-menu-cancel {
+ background: url(//s7.addthis.com/static/5092b14c9020eaa68c3de74da2219940.png) no-repeat center center;
+ background-image: url(//s7.addthis.com/static/fb08f6d50887bd0caacc86a62bcdcf68.svg), none
+ }
+
+ .at4m-menu.ats-dark .at4m-menu-inner .at4m-menu-footer .at4m-menu-footer-inner a:link,
+ .at4m-menu.ats-dark .at4m-menu-inner .at4m-menu-footer .at4m-menu-footer-inner a:visited {
+ color: #ccc
+ }
+
+ #at4m-dock:hover {
+ cursor: pointer
+ }
+
+ #at4m-dock.ats-dark {
+ background: #262b30;
+ border-color: #1b1b1b;
+ color: #fff
+ }
+
+ #at4m-dock.ats-light {
+ background: #fff;
+ border-color: #c5c5c5
+ }
+
+ .at4m-dock.ats-dark a,
+ .at4m-dock.ats-dark a:first-child {
+ color: #fff
+ }
+
+ .at4m-dock.ats-dark a:active,
+ .at4m-dock.ats-dark a:hover {
+ background: #1b1e22
+ }
+
+ .at-expandedmenu-component .at4m-dock,
+ .at-expandedmenu-component .at4m-dock-toggle {
+ display: none
+ }
+ </style>
+ <style type="text/css">
+ #at4-drawer-outer-container {
+ top: 0;
+ width: 20pc;
+ position: fixed
+ }
+
+ #at4-drawer-outer-container.at4-drawer-inline {
+ position: relative
+ }
+
+ #at4-drawer-outer-container.at4-drawer-inline.at4-drawer-right {
+ float: right;
+ right: 0;
+ left: auto
+ }
+
+ #at4-drawer-outer-container.at4-drawer-inline.at4-drawer-left {
+ float: left;
+ left: 0;
+ right: auto
+ }
+
+ #at4-drawer-outer-container.at4-drawer-shown,
+ #at4-drawer-outer-container.at4-drawer-shown * {
+ z-index: 999999
+ }
+
+ #at4-drawer-outer-container,
+ #at4-drawer-outer-container .at4-drawer-outer,
+ #at-drawer {
+ height: 100%;
+ overflow-y: auto;
+ overflow-x: hidden
+ }
+
+ .at4-drawer-push-content-right-back {
+ position: relative;
+ right: 0
+ }
+
+ .at4-drawer-push-content-right {
+ position: relative;
+ left: 20pc!important
+ }
+
+ .at4-drawer-push-content-left-back {
+ position: relative;
+ left: 0
+ }
+
+ .at4-drawer-push-content-left {
+ position: relative;
+ right: 20pc!important
+ }
+
+ #at4-drawer-outer-container.at4-drawer-right {
+ left: auto;
+ right: -20pc
+ }
+
+ #at4-drawer-outer-container.at4-drawer-left {
+ right: auto;
+ left: -20pc
+ }
+
+ #at4-drawer-outer-container.at4-drawer-shown.at4-drawer-right {
+ left: auto;
+ right: 0
+ }
+
+ #at4-drawer-outer-container.at4-drawer-shown.at4-drawer-left {
+ right: auto;
+ left: 0
+ }
+
+ #at-drawer {
+ top: 0;
+ z-index: 9999999;
+ height: 100%;
+ -webkit-animation-duration: .4s;
+ animation-duration: .4s
+ }
+
+ #at-drawer.drawer-push.at-right {
+ right: -20pc
+ }
+
+ #at-drawer.drawer-push.at-left {
+ left: -20pc
+ }
+
+ #at-drawer .at-recommended-label {
+ padding: 0 0 0 20px;
+ color: #999;
+ line-height: 3pc;
+ font-size: 18px;
+ font-weight: 300;
+ cursor: default
+ }
+
+ #at-drawer-arrow {
+ width: 30px;
+ height: 5pc
+ }
+
+ #at-drawer-arrow.ats-dark {
+ background: #262b30
+ }
+
+ #at-drawer-arrow.ats-gray {
+ background: #f2f2f2
+ }
+
+ #at-drawer-open-arrow {
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAABcCAYAAAC1OT8uAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjk3ODNCQjdERUQ3QjExRTM5NjFGRUZBODc3MTIwMTNCIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjk3ODNCQjdFRUQ3QjExRTM5NjFGRUZBODc3MTIwMTNCIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OTc4M0JCN0JFRDdCMTFFMzk2MUZFRkE4NzcxMjAxM0IiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6OTc4M0JCN0NFRDdCMTFFMzk2MUZFRkE4NzcxMjAxM0IiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7kstzCAAAB4ElEQVR42uyWv0oDQRDGb9dYimgVjliID2Ca9AGfwtZob2Grja1PIFj7EhGCYK99VPBPOkVMp8X5rc6FeN7dfjOksMjAxwXZ3667OzvfLKRr682l5ZV9aDh+fxsnRHhoDzqGLjFBi4XOoFtoAxowoB893o/w7WpAl/+QgQMBwwRdTPhUC2lAV/wDA7qy5WOgq9psHejqTqkKdLE7KYCv0JZjMgBgB58raBG6mP1K6j2pT099T+qMUOeeOss1wDcEIA1PnQXy576rAUI0oFMoC7VCnn40Gs8Pd4lAiXNUKmJ0lh1mPzGEWiyUCqAGW3Pwv4IvUJsFO9CHgP3Zr6Te0xwgAf3LxaAjS241pbikCRkOg+nSJdV4p8HOPl3vvRYI5dtrgVDvvcWovcWovcWovcWovcWovcWovQChWNywNpqvdAKtQp/QNmPUIQ6kwwqt2Xmsxf6GMPM1Pptsbz45CPmXqKb+15Gz4J/LZcDSNIqBlQlbB0afe1mmUDWiCNKFZRq0VKMeXY1CTDq2sJLWsCmoaBBRqNRR6qBKC6qCaj2rDIqaXBGiXHEaom00h1S+K3fVlr6HNuqgvgCh0+owt21bybQn8+mZ78mcEebcM2e5+T2ZX24ZqCph0qn1vgQYAJ/KDpLQr2tPAAAAAElFTkSuQmCC);
+ background-repeat: no-repeat;
+ width: 13px;
+ height: 23px;
+ margin: 28px 0 0 8px
+ }
+
+ .at-left #at-drawer-open-arrow {
+ background-position: 0 -46px
+ }
+
+ .ats-dark #at-drawer-open-arrow {
+ background-position: 0 -23px
+ }
+
+ .ats-dark.at-left #at-drawer-open-arrow {
+ background-position: 0 -69px
+ }
+
+ #at-drawer-arrow.at4-drawer-modern-browsers {
+ position: fixed;
+ top: 40%;
+ background-repeat: no-repeat;
+ background-position: 0 0!important;
+ z-index: 9999999
+ }
+
+ .at4-drawer-inline #at-drawer-arrow {
+ position: absolute
+ }
+
+ #at-drawer-arrow.at4-drawer-modern-browsers.at-right {
+ right: 0
+ }
+
+ #at-drawer-arrow.at4-drawer-modern-browsers.at-left {
+ left: 0
+ }
+
+ .at4-drawer-push-animation-left {
+ -webkit-transition: left .4s ease-in-out .15s;
+ transition: left .4s ease-in-out .15s
+ }
+
+ .at4-drawer-push-animation-right {
+ -webkit-transition: right .4s ease-in-out .15s;
+ transition: right .4s ease-in-out .15s
+ }
+
+ #at-drawer.drawer-push.at4-drawer-push-animation-right {
+ right: 0
+ }
+
+ #at-drawer.drawer-push.at4-drawer-push-animation-right-back {
+ right: -20pc!important
+ }
+
+ #at-drawer.drawer-push.at4-drawer-push-animation-left {
+ left: 0
+ }
+
+ #at-drawer.drawer-push.at4-drawer-push-animation-left-back {
+ left: -20pc!important
+ }
+
+ #at-drawer .at4-closebutton.drawer-close {
+ content: 'X';
+ color: #999;
+ display: block;
+ position: absolute;
+ margin: 0;
+ top: 0;
+ right: 0;
+ width: 3pc;
+ height: 45px;
+ line-height: 45px;
+ overflow: hidden;
+ opacity: .5
+ }
+
+ #at-drawer.ats-dark .at4-closebutton.drawer-close {
+ color: #fff
+ }
+
+ #at-drawer .at4-closebutton.drawer-close:hover {
+ opacity: 1
+ }
+
+ #at-drawer.ats-dark.at4-recommended .at4-logo-container a {
+ color: #666
+ }
+
+ #at-drawer.at4-recommended .at4-recommended-vertical {
+ padding: 0
+ }
+
+ #at-drawer.at4-recommended .at4-recommended-item .sponsored-label {
+ margin: 2px 0 0 21px;
+ color: #ddd
+ }
+
+ #at-drawer.at4-recommended .at4-recommended-vertical .at4-recommended-item {
+ position: relative;
+ padding: 0;
+ width: 20pc;
+ height: 180px;
+ margin: 0
+ }
+
+ #at-drawer.at4-recommended .at4-recommended-vertical .at4-recommended-item .at4-recommended-item-img a:after {
+ content: '';
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background: rgba(0, 0, 0, .65);
+ z-index: 1000000;
+ -webkit-transition: all .2s ease-in-out;
+ transition: all .2s ease-in-out
+ }
+
+ #at-drawer.at4-recommended .at4-recommended-vertical .at4-recommended-item.at-hover .at4-recommended-item-img a:after {
+ background: rgba(0, 0, 0, .8)
+ }
+
+ #at-drawer .at4-recommended-vertical .at4-recommended-item .at4-recommended-item-img,
+ #at-drawer .at4-recommended-vertical .at4-recommended-item .at4-recommended-item-img a,
+ #at-drawer .at4-recommended-vertical .at4-recommended-item .at4-recommended-item-img img {
+ width: 20pc;
+ height: 180px;
+ float: none
+ }
+
+ #at-drawer .at4-recommended-vertical .at4-recommended-item .at4-recommended-item-caption {
+ width: 100%;
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ height: 70px
+ }
+
+ #at-drawer .at4-recommended-vertical .at4-recommended-item .at4-recommended-item-caption .at-h4 {
+ color: #fff;
+ position: absolute;
+ height: 52px;
+ top: 0;
+ left: 20px;
+ right: 20px;
+ margin: 0;
+ padding: 0;
+ line-height: 25px;
+ font-size: 20px;
+ font-weight: 600;
+ z-index: 1000001;
+ text-decoration: none;
+ text-transform: none
+ }
+
+ #at-drawer.at4-recommended .at4-recommended-vertical .at4-recommended-item .at4-recommended-item-caption .at-h4 a:hover {
+ text-decoration: none
+ }
+
+ #at-drawer.at4-recommended .at4-recommended-vertical .at4-recommended-item .at4-recommended-item-caption .at-h4 a:link {
+ color: #fff
+ }
+
+ #at-drawer.at4-recommended .at4-recommended-vertical .at4-recommended-item .at4-recommended-item-caption small {
+ position: absolute;
+ top: auto;
+ bottom: 10px;
+ left: 20px;
+ width: auto;
+ color: #ccc
+ }
+
+ #at-drawer.at4-recommended .at4-logo-container {
+ margin-left: 20px
+ }
+
+ #at-drawer.ats-dark.at4-recommended .at4-logo-container a:hover {
+ color: #fff
+ }
+
+ #at-drawer.at4-recommended .at-logo {
+ margin: 0
+ }
+ </style>
+ <style type="text/css">
+ .at4-follow.at-mobile {
+ display: none!important
+ }
+
+ .at4-follow {
+ position: fixed;
+ top: 0;
+ right: 0;
+ font-weight: 400;
+ color: #666;
+ cursor: default;
+ z-index: 10001
+ }
+
+ .at4-follow .at4-follow-inner {
+ position: relative;
+ padding: 10px 24px 10px 15px
+ }
+
+ .at4-follow-inner,
+ .at-follow-open-control {
+ border: 0 solid #c5c5c5;
+ border-width: 1px 0 1px 1px;
+ margin-top: -1px
+ }
+
+ .at4-follow .at4-follow-container {
+ margin-left: 9pt
+ }
+
+ .at4-follow.at4-follow-24 .at4-follow-container {
+ height: 24px;
+ line-height: 23px;
+ font-size: 13px
+ }
+
+ .at4-follow.at4-follow-32 .at4-follow-container {
+ width: 15pc;
+ height: 2pc;
+ line-height: 2pc;
+ font-size: 14px
+ }
+
+ .at4-follow .at4-follow-container .at-follow-label {
+ display: inline-block;
+ height: 24px;
+ line-height: 24px;
+ margin-right: 10px;
+ padding: 0;
+ cursor: default;
+ float: left
+ }
+
+ .at4-follow .at4-follow-container .at-icon-wrapper {
+ height: 24px;
+ width: 24px
+ }
+
+ .at4-follow.ats-transparent .at4-follow-inner,
+ .at-follow-open-control.ats-transparent {
+ border-color: transparent
+ }
+
+ .at4-follow.ats-dark .at4-follow-inner,
+ .at-follow-open-control.ats-dark {
+ background: #262b30;
+ border-color: #000;
+ color: #fff
+ }
+
+ .at4-follow.ats-dark .at-follow-close-control {
+ background-color: #262b30
+ }
+
+ .at4-follow.ats-light .at4-follow-inner {
+ background: #fff;
+ border-color: #c5c5c5
+ }
+
+ .at4-follow.ats-gray .at4-follow-inner,
+ .at-follow-open-control.ats-gray {
+ background: #f2f2f2;
+ border-color: #c5c5c5
+ }
+
+ .at4-follow.ats-light .at4-follow-close-control,
+ .at-follow-open-control.ats-light {
+ background: #e5e5e5
+ }
+
+ .at4-follow .at4-follow-inner .at4-follow-close-control {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ width: 20px;
+ cursor: pointer;
+ display: none
+ }
+
+ .at4-follow .at4-follow-inner .at4-follow-close-control div {
+ display: block;
+ line-height: 20px;
+ text-indent: -9999em;
+ margin-top: calc(50% + 1px);
+ overflow: hidden
+ }
+
+ .at-follow-open-control div.at4-arrow.at-left {
+ background-position: 0 -2px
+ }
+
+ .at-follow-open-control {
+ position: fixed;
+ height: 35px;
+ top: 0;
+ right: 0;
+ padding-top: 10px;
+ z-index: 10002
+ }
+
+ .at-follow-btn {
+ margin: 0 5px 5px 0;
+ padding: 0;
+ outline-offset: -1px;
+ display: inline-block;
+ box-sizing: content-box;
+ transition: all .2s ease-in-out
+ }
+
+ .at-follow-btn:focus,
+ .at-follow-btn:hover {
+ -webkit-transform: translateY(-4px);
+ transform: translateY(-4px)
+ }
+
+ .at4-follow-24 .at-follow-btn {
+ height: 25px;
+ line-height: 0;
+ width: 25px
+ }
+ </style>
+ <style type="text/css">
+ .at-follow-tbx-element .at300b,
+ .at-follow-tbx-element .at300m {
+ display: inline-block;
+ width: auto;
+ padding: 0;
+ margin: 0 2px 5px;
+ outline-offset: -1px;
+ -webkit-transition: all .2s ease-in-out;
+ transition: all .2s ease-in-out
+ }
+
+ .at-follow-tbx-element .at300b:focus,
+ .at-follow-tbx-element .at300b:hover,
+ .at-follow-tbx-element .at300m:focus,
+ .at-follow-tbx-element .at300m:hover {
+ -webkit-transform: translateY(-4px);
+ transform: translateY(-4px)
+ }
+
+ .at-follow-tbx-element .addthis_vertical_style .at300b,
+ .at-follow-tbx-element .addthis_vertical_style .at300m {
+ display: block
+ }
+
+ .at-follow-tbx-element .addthis_vertical_style .at300b .addthis_follow_label,
+ .at-follow-tbx-element .addthis_vertical_style .at300b .at-icon-wrapper,
+ .at-follow-tbx-element .addthis_vertical_style .at300m .addthis_follow_label,
+ .at-follow-tbx-element .addthis_vertical_style .at300m .at-icon-wrapper {
+ display: inline-block;
+ vertical-align: middle;
+ margin-right: 5px
+ }
+
+ .at-follow-tbx-element .addthis_vertical_style .at300b:focus,
+ .at-follow-tbx-element .addthis_vertical_style .at300b:hover,
+ .at-follow-tbx-element .addthis_vertical_style .at300m:focus,
+ .at-follow-tbx-element .addthis_vertical_style .at300m:hover {
+ -webkit-transform: none;
+ transform: none
+ }
+ </style>
+ <style type="text/css">
+ .at4-jumboshare .at-share-btn {
+ display: inline-block;
+ margin-right: 13px;
+ margin-top: 13px
+ }
+
+ .at4-jumboshare .at-share-btn .at-icon {
+ float: left
+ }
+
+ .at4-jumboshare .at-share-btn .at300bs {
+ display: inline-block;
+ float: left;
+ cursor: pointer
+ }
+
+ .at4-jumboshare .at4-mobile .at-share-btn .at-icon,
+ .at4-jumboshare .at4-mobile .at-share-btn .at-icon-wrapper {
+ margin: 0;
+ padding: 0
+ }
+
+ .at4-jumboshare .at4-mobile .at-share-btn {
+ padding: 0
+ }
+
+ .at4-jumboshare .at4-mobile .at-share-btn .at-label {
+ display: none
+ }
+
+ .at4-jumboshare .at4-count {
+ font-size: 60px;
+ line-height: 60px;
+ font-family: Helvetica neue, arial;
+ font-weight: 700
+ }
+
+ .at4-jumboshare .at4-count-container {
+ display: table-cell;
+ text-align: center;
+ min-width: 200px;
+ vertical-align: middle;
+ border-right: 1px solid #ccc;
+ padding-right: 20px
+ }
+
+ .at4-jumboshare .at4-share-container {
+ display: table-cell;
+ vertical-align: middle;
+ padding-left: 20px
+ }
+
+ .at4-jumboshare .at4-share-container.at-share-tbx-element {
+ padding-top: 0
+ }
+
+ .at4-jumboshare .at4-title {
+ position: relative;
+ font-size: 18px;
+ line-height: 18px;
+ bottom: 2px
+ }
+
+ .at4-jumboshare .at4-spacer {
+ height: 1px;
+ display: block;
+ visibility: hidden;
+ opacity: 0
+ }
+
+ .at4-jumboshare .at-share-btn {
+ display: inline-block;
+ margin: 0 2px;
+ line-height: 0;
+ padding: 0;
+ overflow: hidden;
+ text-decoration: none;
+ text-transform: none;
+ color: #fff;
+ cursor: pointer;
+ -webkit-transition: all .2s ease-in-out;
+ transition: all .2s ease-in-out;
+ border: 0;
+ background-color: transparent
+ }
+
+ .at4-jumboshare .at-share-btn:focus,
+ .at4-jumboshare .at-share-btn:hover {
+ -webkit-transform: translateY(-4px);
+ transform: translateY(-4px);
+ color: #fff;
+ text-decoration: none
+ }
+
+ .at4-jumboshare .at-label {
+ font-family: helvetica neue, helvetica, arial, sans-serif;
+ font-size: 9pt;
+ padding: 0 15px 0 0;
+ margin: 0;
+ height: 2pc;
+ line-height: 2pc;
+ background: none
+ }
+
+ .at4-jumboshare .at-share-btn:hover,
+ .at4-jumboshare .at-share-btn:link {
+ text-decoration: none
+ }
+
+ .at4-jumboshare .at-share-btn::-moz-focus-inner {
+ border: 0;
+ padding: 0
+ }
+
+ .at4-jumboshare.at-mobile .at-label {
+ display: none
+ }
+ </style>
+ <style type="text/css">
+ div.at-share-close-control.ats-dark,
+ div.at-share-open-control-left.ats-dark,
+ div.at-share-open-control-right.ats-dark {
+ background: #262b30
+ }
+
+ div.at-share-close-control.ats-light,
+ div.at-share-open-control-left.ats-light,
+ div.at-share-open-control-right.ats-light {
+ background: #fff
+ }
+
+ div.at-share-close-control.ats-gray,
+ div.at-share-open-control-left.ats-gray,
+ div.at-share-open-control-right.ats-gray {
+ background: #f2f2f2
+ }
+
+ .atss {
+ position: fixed;
+ top: 20%;
+ width: 3pc;
+ z-index: 100020;
+ background: none
+ }
+
+ .at-share-close-control {
+ position: relative;
+ width: 3pc;
+ overflow: auto
+ }
+
+ .at-share-open-control-left {
+ position: fixed;
+ top: 20%;
+ z-index: 100020;
+ left: 0;
+ width: 22px
+ }
+
+ .at-share-close-control .at4-arrow.at-left {
+ float: right
+ }
+
+ .atss-left {
+ left: 0;
+ float: left;
+ right: auto
+ }
+
+ .atss-right {
+ left: auto;
+ float: right;
+ right: 0
+ }
+
+ .atss-right.at-share-close-control .at4-arrow.at-right {
+ position: relative;
+ right: 0;
+ overflow: auto
+ }
+
+ .atss-right.at-share-close-control .at4-arrow {
+ float: left
+ }
+
+ .at-share-open-control-right {
+ position: fixed;
+ top: 20%;
+ z-index: 100020;
+ right: 0;
+ width: 22px;
+ float: right
+ }
+
+ .atss-right .at-share-close-control .at4-arrow {
+ float: left
+ }
+
+ .atss.atss-right a {
+ float: right
+ }
+
+ .atss.atss-right .at4-share-title {
+ float: right;
+ overflow: hidden
+ }
+
+ .atss .at-share-btn,
+ .atss a {
+ position: relative;
+ display: block;
+ width: 3pc;
+ margin: 0;
+ outline-offset: -1px;
+ text-align: center;
+ float: left;
+ -webkit-transition: width .15s ease-in-out;
+ transition: width .15s ease-in-out;
+ overflow: hidden;
+ background: #e8e8e8;
+ z-index: 100030;
+ cursor: pointer
+ }
+
+ .at-share-btn::-moz-focus-inner {
+ border: 0;
+ padding: 0
+ }
+
+ .atss-right .at-share-btn {
+ float: right
+ }
+
+ .atss .at-share-btn {
+ border: 0;
+ padding: 0
+ }
+
+ .atss .at-share-btn:focus,
+ .atss .at-share-btn:hover,
+ .atss a:focus,
+ .atss a:hover {
+ width: 4pc
+ }
+
+ .atss .at-share-btn .at-icon-wrapper,
+ .atss a .at-icon-wrapper {
+ display: block;
+ padding: 8px 0
+ }
+
+ .atss .at-share-btn:last-child,
+ .atss a:last-child {
+ border: none
+ }
+
+ .atss .at-share-btn span .at-icon,
+ .atss a span .at-icon {
+ position: relative;
+ top: 0;
+ left: 0;
+ display: block;
+ background-repeat: no-repeat;
+ background-position: 50% 50%;
+ width: 2pc;
+ height: 2pc;
+ line-height: 2pc;
+ border: none;
+ padding: 0;
+ margin: 0 auto;
+ overflow: hidden;
+ cursor: pointer;
+ cursor: hand
+ }
+
+ .at4-share .at-custom-sidebar-counter {
+ font-family: Helvetica neue, arial;
+ vertical-align: top;
+ margin-right: 4px;
+ display: inline-block;
+ text-align: center
+ }
+
+ .at4-share .at-custom-sidebar-count {
+ font-size: 17px;
+ line-height: 1.25em;
+ color: #222
+ }
+
+ .at4-share .at-custom-sidebar-text {
+ font-size: 9px;
+ line-height: 1.25em;
+ color: #888;
+ letter-spacing: 1px
+ }
+
+ .at4-share .at4-share-count-container {
+ position: absolute;
+ left: 0;
+ right: auto;
+ top: auto;
+ bottom: 0;
+ width: 100%;
+ color: #fff;
+ background: inherit
+ }
+
+ .at4-share .at4-share-count,
+ .at4-share .at4-share-count-container {
+ line-height: 1pc;
+ font-size: 10px
+ }
+
+ .at4-share .at4-share-count {
+ text-indent: 0;
+ font-family: Arial, Helvetica Neue, Helvetica, sans-serif;
+ font-weight: 200;
+ width: 100%;
+ height: 1pc
+ }
+
+ .at4-share .at4-share-count-anchor {
+ padding-bottom: 8px;
+ text-decoration: none;
+ -webkit-transition: padding .15s ease-in-out .15s, width .15s ease-in-out;
+ transition: padding .15s ease-in-out .15s, width .15s ease-in-out
+ }
+ </style>
+ <style type="text/css">
+ .at4-recommendedbox-outer-container {
+ display: inline
+ }
+
+ .at4-recommended-outer {
+ position: static
+ }
+
+ .at4-recommended {
+ top: 20%;
+ margin: 0;
+ text-align: center;
+ font-weight: 400;
+ font-size: 13px;
+ line-height: 17px;
+ color: #666
+ }
+
+ .at4-recommended.at-inline .at4-recommended-horizontal {
+ text-align: left
+ }
+
+ .at4-recommended-recommendedbox {
+ padding: 0;
+ z-index: inherit
+ }
+
+ .at4-recommended-recommended {
+ padding: 40px 0
+ }
+
+ .at4-recommended-horizontal {
+ max-height: 340px
+ }
+
+ .at4-recommended.at-medium .at4-recommended-horizontal {
+ max-height: 15pc
+ }
+
+ .at4-recommended.at4-minimal.at-medium .at4-recommended-horizontal {
+ padding-top: 10px;
+ max-height: 230px
+ }
+
+ .at4-recommended-text-only .at4-recommended-horizontal {
+ max-height: 130px
+ }
+
+ .at4-recommended-horizontal {
+ padding-top: 5px;
+ overflow-y: hidden
+ }
+
+ .at4-minimal {
+ background: none;
+ color: #000;
+ border: none!important;
+ box-shadow: none!important
+ }
+
+ @media screen and (max-width:900px) {
+ .at4-recommended-horizontal .at4-recommended-item,
+ .at4-recommended-horizontal .at4-recommended-item .at4-recommended-item-img {
+ width: 15pc
+ }
+ }
+
+ .at4-recommended.at4-minimal .at4-recommended-horizontal .at4-recommended-item .at4-recommended-item-caption {
+ padding: 0 0 10px
+ }
+
+ .at4-recommended.at4-minimal .at4-recommended-horizontal .at4-recommended-item-caption {
+ padding: 20px 0 0!important
+ }
+
+ .addthis-smartlayers .at4-recommended .at-h3.at-recommended-label {
+ margin: 0;
+ padding: 0;
+ font-weight: 300;
+ font-size: 18px;
+ line-height: 24px;
+ color: #464646;
+ width: 100%;
+ display: inline-block;
+ zoom: 1
+ }
+
+ .addthis-smartlayers .at4-recommended.at-inline .at-h3.at-recommended-label {
+ text-align: left
+ }
+
+ #at4-thankyou .addthis-smartlayers .at4-recommended.at-inline .at-h3.at-recommended-label {
+ text-align: center
+ }
+
+ .at4-recommended .at4-recommended-item {
+ display: inline-block;
+ zoom: 1;
+ position: relative;
+ background: #fff;
+ border: 1px solid #c5c5c5;
+ width: 200px;
+ margin: 10px
+ }
+
+ .addthis_recommended_horizontal .at4-recommended-item {
+ border: none
+ }
+
+ .at4-recommended .at4-recommended-item .sponsored-label {
+ color: #666;
+ font-size: 9px;
+ position: absolute;
+ top: -20px
+ }
+
+ .at4-recommended .at4-recommended-item-img .at-tli,
+ .at4-recommended .at4-recommended-item-img a {
+ position: absolute;
+ left: 0
+ }
+
+ .at4-recommended.at-inline .at4-recommended-horizontal .at4-recommended-item {
+ margin: 10px 20px 0 0
+ }
+
+ .at4-recommended.at-medium .at4-recommended-horizontal .at4-recommended-item {
+ margin: 10px 10px 0 0
+ }
+
+ .at4-recommended.at-medium .at4-recommended-item {
+ width: 140px;
+ overflow: hidden
+ }
+
+ .at4-recommended .at4-recommended-item .at4-recommended-item-img {
+ position: relative;
+ text-align: center;
+ width: 100%;
+ height: 200px;
+ line-height: 0;
+ overflow: hidden
+ }
+
+ .at4-recommended .at4-recommended-item .at4-recommended-item-img a {
+ display: block;
+ width: 100%;
+ height: 200px
+ }
+
+ .at4-recommended.at-medium .at4-recommended-item .at4-recommended-item-img,
+ .at4-recommended.at-medium .at4-recommended-item .at4-recommended-item-img a {
+ height: 140px
+ }
+
+ .at4-recommended .at4-recommended-item .at4-recommended-item-img img {
+ position: absolute;
+ top: 0;
+ left: 0;
+ min-height: 0;
+ min-width: 0;
+ max-height: none;
+ max-width: none;
+ margin: 0;
+ padding: 0
+ }
+
+ .at4-recommended .at4-recommended-item .at4-recommended-item-caption {
+ height: 74px;
+ overflow: hidden;
+ padding: 20px;
+ text-align: left;
+ -ms-box-sizing: content-box;
+ -o-box-sizing: content-box;
+ box-sizing: content-box
+ }
+
+ .at4-recommended.at-medium .at4-recommended-item .at4-recommended-item-caption {
+ height: 50px;
+ padding: 15px
+ }
+
+ .at4-recommended .at4-recommended-item .at4-recommended-item-caption .at-h4 {
+ height: 54px;
+ margin: 0 0 5px;
+ padding: 0;
+ overflow: hidden;
+ word-wrap: break-word;
+ font-size: 14px;
+ font-weight: 400;
+ line-height: 18px;
+ text-align: left
+ }
+
+ .at4-recommended.at-medium .at4-recommended-item .at4-recommended-item-caption .at-h4 {
+ font-size: 9pt;
+ line-height: 1pc;
+ height: 33px
+ }
+
+ .at4-recommended .at4-recommended-item:hover .at4-recommended-item-caption .at-h4 {
+ text-decoration: underline
+ }
+
+ .at4-recommended a:link,
+ .at4-recommended a:visited {
+ text-decoration: none;
+ color: #464646
+ }
+
+ .at4-recommended .at4-recommended-item .at4-recommended-item-caption .at-h4 a:hover {
+ text-decoration: underline;
+ color: #000
+ }
+
+ .at4-recommended .at4-recommended-item .at4-recommended-item-caption small {
+ display: block;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ font-size: 11px;
+ color: #666
+ }
+
+ .at4-recommended.at-medium .at4-recommended-item .at4-recommended-item-caption small {
+ font-size: 9px
+ }
+
+ .at4-recommended .at4-recommended-vertical {
+ padding: 15px 0 0
+ }
+
+ .at4-recommended .at4-recommended-vertical .at4-recommended-item {
+ display: block;
+ width: auto;
+ max-width: 100%;
+ height: 60px;
+ border: none;
+ margin: 0 0 15px;
+ box-shadow: none;
+ background: none
+ }
+
+ .at4-recommended-vertical .at4-recommended-item .at4-recommended-item-img,
+ .at4-recommended-vertical .at4-recommended-item .at4-recommended-item-img img {
+ width: 60px;
+ height: 60px;
+ float: left
+ }
+
+ .at4-recommended-vertical .at4-recommended-item .at4-recommended-item-caption {
+ border-top: none;
+ margin: 0;
+ height: 60px;
+ padding: 3px 5px
+ }
+
+ .at4-recommended .at4-recommended-vertical .at4-recommended-item .at4-recommended-item-caption .at-h4 {
+ height: 38px;
+ margin: 0
+ }
+
+ .at4-recommended .at4-recommended-vertical .at4-recommended-item .at4-recommended-item-caption small {
+ position: absolute;
+ bottom: 0
+ }
+
+ .at4-recommended .at-recommended-label.at-vertical {
+ text-align: left
+ }
+
+ .at4-no-image-light-recommended,
+ .at4-no-image-minimal-recommended {
+ background-color: #f2f2f2!important
+ }
+
+ .at4-no-image-gray-recommended {
+ background-color: #e6e6e5!important
+ }
+
+ .at4-no-image-dark-recommended {
+ background-color: #4e555e!important
+ }
+
+ .at4-recommended .at4-recommended-item-placeholder-img {
+ background-repeat: no-repeat!important;
+ background-position: center!important;
+ width: 100%!important;
+ height: 100%!important
+ }
+
+ .at4-recommended-horizontal .at4-no-image-dark-recommended .at4-recommended-item-placeholder-img {
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAfCAYAAACCox+xAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjlFNUUyQTg3MTI0RDExRTM4NzAwREJDRjlCQzAyMUVFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjlFNUUyQTg4MTI0RDExRTM4NzAwREJDRjlCQzAyMUVFIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OUU1RTJBODUxMjREMTFFMzg3MDBEQkNGOUJDMDIxRUUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6OUU1RTJBODYxMjREMTFFMzg3MDBEQkNGOUJDMDIxRUUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6oCfPiAAABfUlEQVR42uyWTU/DMAyGm3bdBxp062hHe+PC//9HCIkDYpNAO7CPAuWN5Eohyhpno2GHWqq8pO78xHHsiLquH4L/l6cwuBAZaOPKs//YBFIJIR59UiAt7huYi90aE/UQakTDLaL26RUEAAJqiefm93T9Bpj1X4O0bY0OIUXCpYBJvYDAUWyAUCWliHGTcnpqRMaM72ImRAJVknYG+eb4YEDIBeU0zGnsBLK1ODogYSsLhDwIJeVVk18lzfNA4ERGZNXi59UCIQhiYDilpSm/jp4awLxDvWhlf4/nGe8+LLuSt+SZul28ggaHG6gNVhDR+IuRFzOoxGKWwG7vVFm5AAQxgcqYpzrjFjR9zwPH5LSuT7XlNr2MQm5LzqjLpncNNaM+s8M27Y60g3FwhoSMzrtUQllgLtRs5pZ2cB4IhbvQbGRZv1NsrhyS8+SI5Mo9RJWpjAI1xqKL+0iEP180vy214JbeR12AyOgsHI7e0NfFyKv0ID1ID+IqPwIMAOeljGQOryBmAAAAAElFTkSuQmCC)!important
+ }
+
+ .at4-recommended-vertical .at4-no-image-dark-recommended .at4-recommended-item-placeholder-img {
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAOCAYAAADwikbvAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjAzREMyNTM2MTI0RjExRTM4NzAwREJDRjlCQzAyMUVFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjAzREMyNTM3MTI0RjExRTM4NzAwREJDRjlCQzAyMUVFIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDNEQzI1MzQxMjRGMTFFMzg3MDBEQkNGOUJDMDIxRUUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDNEQzI1MzUxMjRGMTFFMzg3MDBEQkNGOUJDMDIxRUUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5GfbtkAAAAxklEQVR42qRSTQvCMAxduk53mEOHKFPP/v8/5cGTiIibivVFUomlG7gFHvloXpKmJefcPhkmNyvGEWj+IOZA6ckPImoxxVwOLvCvXUzkpayNCpRQK64IbOBnAYGAXMeMslNlU+CzrIEdCkxi5DPAoz6BE8ZuVNdKJuL8rS9sv62IXlCHyP0KqKUKZXK9uwkSLVArfwpVR3b225kXwovibcP+jC4jUtfWPZmfqJJnYlkAM128j1z0nHWKSUbIKDL/msHktwADAPptQo+vkZNLAAAAAElFTkSuQmCC)!important
+ }
+
+ .at4-recommended-horizontal .at4-no-image-gray-recommended .at4-recommended-item-placeholder-img,
+ .at4-recommended-horizontal .at4-no-image-light-recommended .at4-recommended-item-placeholder-img,
+ .at4-recommended-horizontal .at4-no-image-minimal-recommended .at4-recommended-item-placeholder-img {
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAfCAYAAACCox+xAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjAzREMyNTMyMTI0RjExRTM4NzAwREJDRjlCQzAyMUVFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjAzREMyNTMzMTI0RjExRTM4NzAwREJDRjlCQzAyMUVFIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OUU1RTJBODkxMjREMTFFMzg3MDBEQkNGOUJDMDIxRUUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6OUU1RTJBOEExMjREMTFFMzg3MDBEQkNGOUJDMDIxRUUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6dfDQvAAABg0lEQVR42uyWS0vDQBDH82jaKNW0qUltbl68e/Di98eLBz+CCB5EBaWIpUat/4UJLMuame1j7SEDYbqbKfPLvHbDi8ur8+D/5T4K9kR6xrr27D+xgdS3N9d3PilQFmcNzN6mxkbdhxrQcoGofXkFAUAINcVzrG2vsP8KmJdtg7SlxoRQouBywOReQOAosUDoklPEpEU5XDciqeB/iRAig6pIO4P8CHysBBDqg0palrR2Alkwjj5RsDUDoRqhorpq6quifRkInKiIPLf4eWIgQoLoWbq0stXXn10DmDeoR2PsL/E84N0Hk5Wypc70dMkGGhzOoeb4gpjW34K6GEFljFkGu6XTZJUCEMQBVCHs6kI60MycB47FyUmo20oPvYJCzhVnvIsR3zg5ghoRTNpyHKTBBhIJTt6pFsoZ9iLDZswcB5uBULhnho0a66eazaFDca59Hym1e4guQ4rCO4Fu/T4Sw8Gk+c3MghN6H+8CRKVg4tB6fV8XI6/SgXQgHYir/AowAMU5TskhKVUNAAAAAElFTkSuQmCC)!important
+ }
+
+ .at4-recommended-vertical .at4-no-image-gray-recommended .at4-recommended-item-placeholder-img,
+ .at4-recommended-vertical .at4-no-image-light-recommended .at4-recommended-item-placeholder-img,
+ .at4-recommended-vertical .at4-no-image-minimal-recommended .at4-recommended-item-placeholder-img {
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAOCAYAAADwikbvAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjAzREMyNTNBMTI0RjExRTM4NzAwREJDRjlCQzAyMUVFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjAzREMyNTNCMTI0RjExRTM4NzAwREJDRjlCQzAyMUVFIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDNEQzI1MzgxMjRGMTFFMzg3MDBEQkNGOUJDMDIxRUUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDNEQzI1MzkxMjRGMTFFMzg3MDBEQkNGOUJDMDIxRUUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz65Fr9cAAAA0ElEQVR42qRRuQrCQBDd3SSaIgYNosSrtLew8f+xsfAnYmEVRMR4YHwjExjCbsBk4DHHzptjR2+2u7VqJ3efjTNQ/EEMgbgiv46H/QNTDPnhCv/mYiLPI21EIIaaUEVgBj+oETQQypgRtidsXfNJpsACBXo28gWgUd9AjrEL0TXhiSh/XhWudlZI/kCdLPtFUGMRCni9p6kl+kAq/D5UavmzX2fNd87obsCSfztnrOR0rjvTiRImkoyAQQNRyZ2jhjenGNVBOpF1WZatyV8BBgBJ+irgS/KHdAAAAABJRU5ErkJggg==)!important
+ }
+
+ #at-drawer.ats-dark,
+ .at4-recommended.ats-dark .at4-recommended-horizontal .at4-recommended-item-caption,
+ .at4-recommended.ats-dark .at4-recommended-vertical .at4-recommended-item-caption {
+ background: #262b30
+ }
+
+ #at-drawer.ats-gray,
+ .at4-recommended.ats-gray .at4-recommended-horizontal .at4-recommended-item-caption {
+ background: #f2f2f2
+ }
+
+ #at-drawer.ats-light,
+ .at4-recommended.ats-light .at4-recommended-horizontal .at4-recommended-item-caption {
+ background: #fff
+ }
+
+ .at4-recommended.ats-dark .at4-recommended-vertical .at4-recommended-item {
+ background: none
+ }
+
+ .at4-recommended.ats-dark .at4-recommended-item .at4-recommended-item-caption a:hover,
+ .at4-recommended.ats-dark .at4-recommended-item .at4-recommended-item-caption a:link,
+ .at4-recommended.ats-dark .at4-recommended-item .at4-recommended-item-caption a:visited,
+ .at4-recommended.ats-dark .at4-recommended-item .at4-recommended-item-caption small,
+ .at4-recommended.ats-dark .at4-recommended-item-caption,
+ .at4-recommended.ats-dark .at-logo a:hover,
+ .at4-recommended.ats-dark .at-recommended-label.at-vertical {
+ color: #fff
+ }
+
+ .at4-recommended-vertical-logo {
+ padding-top: 0;
+ text-align: left
+ }
+
+ .at4-recommended-vertical-logo .at4-logo-container {
+ line-height: 10px
+ }
+
+ .at4-recommended-horizontal-logo {
+ text-align: center
+ }
+
+ .at4-recommended.at-inline .at4-recommended-horizontal-logo {
+ text-align: left
+ }
+
+ #at4-thankyou .at4-recommended.at-inline .at4-recommended-horizontal {
+ text-align: center
+ }
+
+ .at4-recommended .at-logo {
+ margin: 10px 0 0;
+ padding: 0;
+ height: 25px;
+ overflow: auto;
+ -ms-box-sizing: content-box;
+ -o-box-sizing: content-box;
+ box-sizing: content-box
+ }
+
+ .at4-recommended.at-inline .at4-recommended-horizontal .at-logo {
+ text-align: left
+ }
+
+ .at4-recommended .at4-logo-container a.at-sponsored-link {
+ color: #666
+ }
+
+ .at4-recommended-class .at4-logo-container a:hover,
+ .at4-recommendedbox-outer-container .at4-recommended-recommendedbox .at4-logo-container a:hover {
+ color: #000
+ }
+ </style>
+ <style type="text/css">
+ .at-recommendedjumbo-outer-container {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ background: none;
+ color: #000
+ }
+
+ .at-recommendedjumbo-footer {
+ position: relative;
+ width: 100%;
+ height: 510px;
+ overflow: hidden;
+ -webkit-transition: all .3s ease-in-out;
+ transition: all .3s ease-in-out
+ }
+
+ .at-mobile .at-recommendedjumbo-footer {
+ height: 250px
+ }
+
+ .at-recommendedjumbo-footer #bg-link:after {
+ content: '';
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background: rgba(0, 0, 0, .75)
+ }
+
+ .at-recommendedjumbo-footer:hover #bg-link:after {
+ background: rgba(0, 0, 0, .85)
+ }
+
+ .at-recommendedjumbo-footer *,
+ .at-recommendedjumbo-footer :after,
+ .at-recommendedjumbo-footer :before {
+ box-sizing: border-box
+ }
+
+ .at-recommendedjumbo-footer:hover #at-recommendedjumbo-footer-bg {
+ -webkit-animation: atRecommendedJumboAnimatedBackground 1s ease-in-out 1;
+ animation: atRecommendedJumboAnimatedBackground 1s ease-in-out 1;
+ -webkit-animation-fill-mode: forwards;
+ animation-fill-mode: forwards
+ }
+
+ .at-recommendedjumbo-footer #at-recommendedjumbo-top-holder {
+ position: absolute;
+ top: 0;
+ padding: 0 40px;
+ width: 100%
+ }
+
+ .at-mobile .at-recommendedjumbo-footer #at-recommendedjumbo-top-holder {
+ padding: 0 20px
+ }
+
+ .at-recommendedjumbo-footer .at-recommendedjumbo-footer-inner {
+ position: relative;
+ text-align: center;
+ font-family: helvetica, arial, sans-serif;
+ z-index: 2;
+ width: 100%
+ }
+
+ .at-recommendedjumbo-footer #at-recommendedjumbo-label-holder {
+ margin: 40px 0 0;
+ max-height: 30px
+ }
+
+ .at-mobile .at-recommendedjumbo-footer #at-recommendedjumbo-label-holder {
+ margin: 20px 0 0;
+ max-height: 20px
+ }
+
+ .at-recommendedjumbo-footer #at-recommendedjumbo-label {
+ font-weight: 300;
+ font-size: 24px;
+ line-height: 24px;
+ color: #fff;
+ margin: 0
+ }
+
+ .at-mobile .at-recommendedjumbo-footer #at-recommendedjumbo-label {
+ font-weight: 150;
+ font-size: 14px;
+ line-height: 14px
+ }
+
+ .at-recommendedjumbo-footer #at-recommendedjumbo-title-holder {
+ margin: 20px 0 0;
+ min-height: 3pc;
+ max-height: 78pt
+ }
+
+ .at-mobile .at-recommendedjumbo-footer #at-recommendedjumbo-title-holder {
+ margin: 10px 0 0;
+ min-height: 24px;
+ max-height: 54px
+ }
+
+ .at-recommendedjumbo-footer #at-recommendedjumbo-content-title {
+ font-size: 3pc;
+ line-height: 52px;
+ font-weight: 700;
+ margin: 0
+ }
+
+ .at-mobile .at-recommendedjumbo-footer #at-recommendedjumbo-content-title {
+ font-size: 24px;
+ line-height: 27px
+ }
+
+ .at-recommendedjumbo-footer a {
+ text-decoration: none;
+ color: #fff
+ }
+
+ .at-recommendedjumbo-footer a:visited {
+ color: #fff
+ }
+
+ .at-recommendedjumbo-footer small {
+ margin: 20px 0 0;
+ display: inline-block;
+ height: 2pc;
+ line-height: 2pc;
+ font-size: 14px;
+ color: #ccc;
+ cursor: default
+ }
+
+ .at-mobile .at-recommendedjumbo-footer small {
+ margin: 10px 0 0;
+ height: 14px;
+ line-height: 14px;
+ font-size: 9pt
+ }
+
+ .at-recommendedjumbo-footer .at-logo-container {
+ position: absolute;
+ bottom: 20px;
+ margin: auto;
+ left: 0;
+ right: 0
+ }
+
+ .at-mobile .at-recommendedjumbo-footer .at-logo-container {
+ bottom: 10px
+ }
+
+ .at-recommendedjumbo-footer a.at-sponsored-link {
+ color: #ccc
+ }
+
+ .at-recommendedjumbo-footer div #at-recommendedjumbo-logo-link {
+ padding: 2px 0 0 11px;
+ text-decoration: none;
+ line-height: 20px;
+ font-family: helvetica, arial, sans-serif;
+ font-size: 9px;
+ color: #ccc
+ }
+
+ @-webkit-keyframes atRecommendedJumboAnimatedBackground {
+ 0% {
+ -webkit-transform: scale(1, 1);
+ transform: scale(1, 1)
+ }
+ to {
+ -webkit-transform: scale(1.1, 1.1);
+ transform: scale(1.1, 1.1)
+ }
+ }
+
+ @keyframes atRecommendedJumboAnimatedBackground {
+ 0% {
+ -webkit-transform: scale(1, 1);
+ transform: scale(1, 1)
+ }
+ to {
+ -webkit-transform: scale(1.1, 1.1);
+ transform: scale(1.1, 1.1)
+ }
+ }
+ </style>
+ <style type="text/css">
+ .at-resp-share-element {
+ position: relative;
+ padding: 0;
+ margin: 0;
+ font-size: 0;
+ line-height: 0
+ }
+
+ .at-resp-share-element:after,
+ .at-resp-share-element:before {
+ content: " ";
+ display: table
+ }
+
+ .at-resp-share-element.at-mobile .at4-share-count-container,
+ .at-resp-share-element.at-mobile .at-label {
+ display: none
+ }
+
+ .at-resp-share-element .at-share-btn {
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+ margin: 0 2px 5px;
+ padding: 0;
+ overflow: hidden;
+ line-height: 0;
+ text-decoration: none;
+ text-transform: none;
+ color: #fff;
+ cursor: pointer;
+ -webkit-transition: all .2s ease-in-out;
+ transition: all .2s ease-in-out;
+ border: 0;
+ font-family: helvetica neue, helvetica, arial, sans-serif;
+ background-color: transparent
+ }
+
+ .at-resp-share-element .at-share-btn::-moz-focus-inner {
+ border: 0;
+ padding: 0
+ }
+
+ .at-resp-share-element .at-share-btn:focus,
+ .at-resp-share-element .at-share-btn:hover {
+ -webkit-transform: translateY(-4px);
+ transform: translateY(-4px);
+ color: #fff;
+ text-decoration: none
+ }
+
+ .at-resp-share-element .at-share-btn .at-icon-wrapper {
+ float: left
+ }
+
+ .at-resp-share-element .at-share-btn.at-share-btn.at-svc-compact:hover {
+ -webkit-transform: none;
+ transform: none
+ }
+
+ .at-resp-share-element .at-share-btn .at-label {
+ font-family: helvetica neue, helvetica, arial, sans-serif;
+ font-size: 9pt;
+ padding: 0 15px 0 0;
+ margin: 0 0 0 5px;
+ height: 2pc;
+ line-height: 2pc;
+ background: none
+ }
+
+ .at-resp-share-element .at-icon,
+ .at-resp-share-element .at-label {
+ cursor: pointer
+ }
+
+ .at-resp-share-element .at4-share-count-container {
+ text-decoration: none;
+ float: right;
+ padding-right: 15px;
+ font-size: 9pt
+ }
+
+ .at-mobile .at-resp-share-element .at-label {
+ display: none
+ }
+
+ .at-resp-share-element.at-mobile .at-share-btn {
+ margin-right: 5px
+ }
+
+ .at-mobile .at-resp-share-element .at-share-btn {
+ padding: 5px;
+ margin-right: 5px
+ }
+ </style>
+ <style type="text/css">
+ .at-share-tbx-element {
+ position: relative;
+ margin: 0;
+ color: #fff;
+ font-size: 0
+ }
+
+ .at-share-tbx-element,
+ .at-share-tbx-element .at-share-btn {
+ font-family: helvetica neue, helvetica, arial, sans-serif;
+ padding: 0;
+ line-height: 0
+ }
+
+ .at-share-tbx-element .at-share-btn {
+ cursor: pointer;
+ margin: 0 5px 5px 0;
+ display: inline-block;
+ overflow: hidden;
+ border: 0;
+ text-decoration: none;
+ text-transform: none;
+ background-color: transparent;
+ color: inherit;
+ -webkit-transition: all .2s ease-in-out;
+ transition: all .2s ease-in-out
+ }
+
+ .at-share-tbx-element .at-share-btn:focus,
+ .at-share-tbx-element .at-share-btn:hover {
+ -webkit-transform: translateY(-4px);
+ transform: translateY(-4px);
+ outline-offset: -1px;
+ color: inherit
+ }
+
+ .at-share-tbx-element .at-share-btn::-moz-focus-inner {
+ border: 0;
+ padding: 0
+ }
+
+ .at-share-tbx-element .at-share-btn.at-share-btn.at-svc-compact:hover {
+ -webkit-transform: none;
+ transform: none
+ }
+
+ .at-share-tbx-element .at-icon-wrapper {
+ vertical-align: middle
+ }
+
+ .at-share-tbx-element .at4-share-count,
+ .at-share-tbx-element .at-label {
+ margin: 0 7.5px 0 2.5px;
+ text-decoration: none;
+ vertical-align: middle;
+ display: inline-block;
+ background: none;
+ height: 0;
+ font-size: inherit;
+ line-height: inherit;
+ color: inherit
+ }
+
+ .at-share-tbx-element.at-mobile .at4-share-count,
+ .at-share-tbx-element.at-mobile .at-label {
+ display: none
+ }
+
+ .at-share-tbx-element .at_native_button {
+ vertical-align: middle
+ }
+
+ .at-share-tbx-element .addthis_counter.addthis_bubble_style {
+ margin: 0 2px;
+ vertical-align: middle;
+ display: inline-block
+ }
+
+ .at-share-tbx-element .fb_iframe_widget {
+ display: block
+ }
+
+ .at-share-tbx-element.at-share-tbx-native .at300b {
+ vertical-align: middle
+ }
+
+ .at-style-responsive .at-share-btn {
+ padding: 5px
+ }
+
+ .at-style-jumbo {
+ display: table
+ }
+
+ .at-style-jumbo .at4-spacer {
+ height: 1px;
+ display: block;
+ visibility: hidden;
+ opacity: 0
+ }
+
+ .at-style-jumbo .at4-count-container {
+ display: table-cell;
+ text-align: center;
+ min-width: 200px;
+ vertical-align: middle;
+ border-right: 1px solid #ccc;
+ padding-right: 20px
+ }
+
+ .at-style-jumbo .at4-count {
+ font-size: 60px;
+ line-height: 60px;
+ font-weight: 700
+ }
+
+ .at-style-jumbo .at4-count-title {
+ position: relative;
+ font-size: 18px;
+ line-height: 18px;
+ bottom: 2px
+ }
+
+ .at-style-jumbo .at-share-btn-elements {
+ display: table-cell;
+ vertical-align: middle;
+ padding-left: 20px
+ }
+
+ .at_flat_counter {
+ cursor: pointer;
+ font-family: helvetica, arial, sans-serif;
+ font-weight: 700;
+ text-transform: uppercase;
+ display: inline-block;
+ position: relative;
+ vertical-align: top;
+ height: 100%;
+ margin: 0 5px;
+ padding: 0 6px;
+ left: -1px;
+ background: #ebebeb;
+ color: #32363b;
+ -webkit-transition: all .2s ease;
+ transition: all .2s ease
+ }
+
+ .at_flat_counter:after {
+ top: 30%;
+ left: -4px;
+ content: "";
+ position: absolute;
+ border-width: 5px 8px 5px 0;
+ border-style: solid;
+ border-color: transparent #ebebeb transparent transparent;
+ display: block;
+ width: 0;
+ height: 0;
+ -webkit-transform: translateY(360deg);
+ transform: translateY(360deg)
+ }
+
+ .at_flat_counter:hover {
+ background: #e1e2e2
+ }
+ </style>
+ <style type="text/css">
+ .at4-thankyou-background {
+ top: 0;
+ right: 0;
+ left: 0;
+ bottom: 0;
+ -webkit-overflow-scrolling: touch;
+ z-index: 9999999;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABtJREFUeNpizCuu/sRABGBiIBKMKqSOQoAAAwC8KgJipENhxwAAAABJRU5ErkJggg==);
+ background: hsla(217, 6%, 46%, .95)
+ }
+
+ .at4-thankyou-background.at-thankyou-shown {
+ position: fixed
+ }
+
+ .at4-thankyou-inner {
+ position: absolute;
+ width: 100%;
+ top: 10%;
+ left: 50%;
+ margin-left: -50%;
+ text-align: center
+ }
+
+ .at4-thankyou-mobile .at4-thankyou-inner {
+ top: 5%
+ }
+
+ .thankyou-description {
+ font-weight: 400
+ }
+
+ .at4-thankyou-background .at4lb-inner {
+ position: relative;
+ width: 100%;
+ height: 100%
+ }
+
+ .at4-thankyou-background .at4lb-inner .at4x {
+ position: absolute;
+ top: 15px;
+ right: 15px;
+ display: block;
+ width: 20px;
+ height: 20px;
+ padding: 20px;
+ margin: 0;
+ cursor: pointer;
+ -webkit-transition: opacity .25s ease-in;
+ transition: opacity .25s ease-in;
+ opacity: .4;
+ background: url("data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNui8sowAAAAWdEVYdENyZWF0aW9uIFRpbWUAMTEvMTMvMTKswDp5AAAAd0lEQVQ4jb2VQRLAIAgDE///Z3qqY1FAhalHMCsCIkVEAIAkkVgvp2lDBgYAnAyHkWotLccNrEd4A7X2TqIdqLfnWBAdaF5rJdyJfjtPH5GT37CaGhoVq3nOm/XflUuLUto2pY1d+vRKh0Pp+MrAVtDe2JkvYNQ+jVSEEFmOkggAAAAASUVORK5CYII=") no-repeat center center;
+ overflow: hidden;
+ text-indent: -99999em;
+ border: 1px solid transparent
+ }
+
+ .at4-thankyou-background .at4lb-inner .at4x:focus,
+ .at4-thankyou-background .at4lb-inner .at4x:hover {
+ border: 1px solid #fff;
+ border-radius: 50%;
+ outline: 0
+ }
+
+ .at4-thankyou-background .at4lb-inner #at4-palogo {
+ position: absolute;
+ bottom: 10px;
+ display: inline-block;
+ text-decoration: none;
+ font-family: helvetica, arial, sans-serif;
+ font-size: 11px;
+ cursor: pointer;
+ -webkit-transition: opacity .25s ease-in;
+ moz-transition: opacity .25s ease-in;
+ transition: opacity .25s ease-in;
+ opacity: .5;
+ z-index: 100020;
+ color: #fff;
+ padding: 2px 0 0 13px
+ }
+
+ .at4-thankyou-background .at4lb-inner #at4-palogo .at-branding-addthis,
+ .at4-thankyou-background .at4lb-inner #at4-palogo .at-branding-info {
+ color: #fff
+ }
+
+ .at4-thankyou-background .at4lb-inner #at4-palogo:hover,
+ .at4-thankyou-background.ats-dark .at4lb-inner a#at4-palogo:hover {
+ text-decoration: none;
+ color: #fff;
+ opacity: 1
+ }
+
+ .at4-thankyou-background.ats-dark {
+ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABtJREFUeNpiZGBgeMZABGBiIBKMKqSOQoAAAwB+cQD6hqlbCwAAAABJRU5ErkJggg==");
+ background: rgba(0, 0, 0, .85)
+ }
+
+ .at4-thankyou-background .thankyou-title {
+ color: #fff;
+ font-size: 38.5px;
+ margin: 10px 20px;
+ line-height: 38.5px;
+ font-family: helvetica neue, helvetica, arial, sans-serif;
+ font-weight: 300
+ }
+
+ .at4-thankyou-background.ats-dark .thankyou-description,
+ .at4-thankyou-background.ats-dark .thankyou-title {
+ color: #fff
+ }
+
+ .at4-thankyou-background .thankyou-description {
+ color: #fff;
+ font-size: 18px;
+ margin: 10px 0;
+ line-height: 24px;
+ padding: 0;
+ font-family: helvetica neue, helvetica, arial, sans-serif;
+ font-weight: 300
+ }
+
+ .at4-thankyou-background .at4-thanks-icons {
+ padding-top: 10px
+ }
+
+ .at4-thankyou-mobile * {
+ -webkit-overflow-scrolling: touch
+ }
+
+ #at4-thankyou .at4-recommended-recommendedbox .at-logo {
+ display: none
+ }
+
+ .at4-thankyou .at-h3 {
+ height: 49px;
+ line-height: 49px;
+ margin: 0 50px 0 20px;
+ padding: 1px 0 0;
+ font-family: helvetica neue, helvetica, arial, sans-serif;
+ font-size: 1pc;
+ font-weight: 700;
+ color: #fff;
+ text-shadow: 0 1px #000
+ }
+
+ .at4-thanks {
+ padding-top: 50px;
+ text-align: center
+ }
+
+ .at4-thanks label {
+ display: block;
+ margin: 0 0 15px;
+ font-size: 1pc;
+ line-height: 1pc
+ }
+
+ .at4-thanks .at4-h2 {
+ background: none;
+ border: none;
+ margin: 0 0 10px;
+ padding: 0;
+ font-family: helvetica neue, helvetica, arial, sans-serif;
+ font-size: 28px;
+ font-weight: 300;
+ color: #000
+ }
+
+ .at4-thanks .at4-thanks-icons {
+ position: relative;
+ height: 2pc
+ }
+
+ .at4-thanks .at4-thanks-icons .at-thankyou-label {
+ display: block;
+ padding-bottom: 10px;
+ font-size: 14px;
+ color: #666
+ }
+
+ .at4-thankyou-layer .at-follow .at-icon-wrapper {
+ width: 2pc;
+ height: 2pc
+ }
+ </style>
+ <style type="text/css">
+ .at4-recommended-toaster {
+ position: fixed;
+ top: auto;
+ bottom: 0;
+ right: 0;
+ z-index: 100021
+ }
+
+ .at4-recommended-toaster.ats-light {
+ border: 1px solid #c5c5c5;
+ background: #fff
+ }
+
+ .at4-recommended-toaster.ats-gray {
+ border: 1px solid #c5c5c5;
+ background: #f2f2f2
+ }
+
+ .at4-recommended-toaster.ats-dark {
+ background: #262b30;
+ color: #fff
+ }
+
+ .at4-recommended-toaster .at4-recommended-container {
+ padding-top: 0;
+ margin: 0
+ }
+
+ .at4-recommended.at4-recommended-toaster div.at-recommended-label {
+ line-height: 1pc;
+ font-size: 1pc;
+ text-align: left;
+ padding: 20px 0 0 20px
+ }
+
+ .at4-toaster-outer .at4-recommended .at4-recommended-item .at4-recommended-item-caption .at-h4 {
+ font-size: 11px;
+ line-height: 11px;
+ margin: 10px 0 6px;
+ height: 30px
+ }
+
+ .at4-recommended.at4-recommended-toaster div.at-recommended-label.ats-gray,
+ .at4-recommended.at4-recommended-toaster div.at-recommended-label.ats-light {
+ color: #464646
+ }
+
+ .at4-recommended.at4-recommended-toaster div.at-recommended-label.ats-dark {
+ color: #fff
+ }
+
+ .at4-toaster-close-control {
+ position: absolute;
+ top: 0;
+ right: 0;
+ display: block;
+ width: 20px;
+ height: 20px;
+ line-height: 20px;
+ margin: 5px 5px 0 0;
+ padding: 0;
+ text-indent: -9999em
+ }
+
+ .at4-toaster-open-control {
+ position: fixed;
+ right: 0;
+ bottom: 0;
+ z-index: 100020
+ }
+
+ .at4-toaster-outer .at4-recommended-item {
+ width: 90pt;
+ border: 0;
+ margin: 9px 10px 0
+ }
+
+ .at4-toaster-outer .at4-recommended-item:first-child {
+ margin-left: 20px
+ }
+
+ .at4-toaster-outer .at4-recommended-item:last-child {
+ margin-right: 20px
+ }
+
+ .at4-toaster-outer .at4-recommended-item .at4-recommended-item-img {
+ max-height: 90pt;
+ max-width: 90pt
+ }
+
+ .at4-toaster-outer .at4-recommended-item .at4-recommended-item-img img {
+ height: 90pt;
+ width: 90pt
+ }
+
+ .at4-toaster-outer .at4-recommended-item .at4-recommended-item-caption {
+ height: 30px;
+ padding: 0;
+ margin: 0;
+ height: initial
+ }
+
+ .at4-toaster-outer .ats-dark .at4-recommended-item .at4-recommended-item-caption {
+ background: #262b30
+ }
+
+ .at4-toaster-outer .at4-recommended .at4-recommended-item .at4-recommended-item-caption small {
+ width: auto;
+ line-height: 14px;
+ margin: 0
+ }
+
+ .at4-toaster-outer .at4-recommended.ats-dark .at4-recommended-item .at4-recommended-item-caption small {
+ color: #fff
+ }
+
+ .at4-recommended-toaster .at-logo {
+ margin: 0 0 3px 20px;
+ text-align: left
+ }
+
+ .at4-recommended-toaster .at-logo .at4-logo-container.at-sponsored-logo {
+ position: relative
+ }
+
+ .at4-toaster-outer .at4-recommended-item .sponsored-label {
+ text-align: right;
+ font-size: 10px;
+ color: #666;
+ float: right;
+ position: fixed;
+ bottom: 6px;
+ right: 20px;
+ top: initial;
+ z-index: 99999
+ }
+ </style>
+ <style type="text/css">
+ .at4-whatsnext {
+ position: fixed;
+ bottom: 0!important;
+ right: 0;
+ background: #fff;
+ border: 1px solid #c5c5c5;
+ margin: -1px;
+ width: 390px;
+ height: 90pt;
+ overflow: hidden;
+ font-size: 9pt;
+ font-weight: 400;
+ color: #000;
+ z-index: 1800000000
+ }
+
+ .at4-whatsnext a {
+ color: #666
+ }
+
+ .at4-whatsnext .at-whatsnext-content {
+ height: 90pt;
+ position: relative
+ }
+
+ .at4-whatsnext .at-whatsnext-content .at-branding {
+ position: absolute;
+ bottom: 15px;
+ right: 10px;
+ padding-left: 9px;
+ text-decoration: none;
+ line-height: 10px;
+ font-family: helvetica, arial, sans-serif;
+ font-size: 10px;
+ color: #666
+ }
+
+ .at4-whatsnext .at-whatsnext-content .at-whatsnext-content-inner {
+ position: absolute;
+ top: 15px;
+ right: 20px;
+ bottom: 15px;
+ left: 140px;
+ text-align: left;
+ height: 105px
+ }
+
+ .at4-whatsnext .at-whatsnext-content-inner a {
+ display: inline-block
+ }
+
+ .at4-whatsnext .at-whatsnext-content-inner div.at-h6 {
+ text-align: left;
+ margin: 0;
+ padding: 0 0 3px;
+ font-size: 11px;
+ color: #666;
+ cursor: default
+ }
+
+ .at4-whatsnext .at-whatsnext-content .at-h3 {
+ text-align: left;
+ margin: 5px 0;
+ padding: 0;
+ line-height: 1.2em;
+ font-weight: 400;
+ font-size: 14px;
+ height: 3pc
+ }
+
+ .at4-whatsnext .at-whatsnext-content-inner a:link,
+ .at4-whatsnext .at-whatsnext-content-inner a:visited {
+ text-decoration: none;
+ font-weight: 400;
+ color: #464646
+ }
+
+ .at4-whatsnext .at-whatsnext-content-inner a:hover {
+ color: #000
+ }
+
+ .at4-whatsnext .at-whatsnext-content-inner small {
+ position: absolute;
+ bottom: 15px;
+ line-height: 10px;
+ font-size: 11px;
+ color: #666;
+ cursor: default;
+ text-align: left
+ }
+
+ .at4-whatsnext .at-whatsnext-content .at-whatsnext-content-img {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 90pt;
+ height: 90pt;
+ overflow: hidden
+ }
+
+ .at4-whatsnext .at-whatsnext-content .at-whatsnext-content-img img {
+ position: absolute;
+ top: 0;
+ left: 0;
+ max-height: none;
+ max-width: none
+ }
+
+ .at4-whatsnext .at-whatsnext-close-control {
+ position: absolute;
+ top: 0;
+ right: 0;
+ display: block;
+ width: 20px;
+ height: 20px;
+ line-height: 20px;
+ margin: 0 5px 0 0;
+ padding: 0;
+ text-indent: -9999em
+ }
+
+ .at-whatsnext-open-control {
+ position: fixed;
+ right: 0;
+ bottom: 0;
+ z-index: 100020
+ }
+
+ .at4-whatsnext.ats-dark {
+ background: #262b30
+ }
+
+ .at4-whatsnext.ats-dark .at-whatsnext-content .at-h3,
+ .at4-whatsnext.ats-dark .at-whatsnext-content a.at4-logo:hover,
+ .at4-whatsnext.ats-dark .at-whatsnext-content-inner a:link,
+ .at4-whatsnext.ats-dark .at-whatsnext-content-inner a:visited {
+ color: #fff
+ }
+
+ .at4-whatsnext.ats-light {
+ background: #fff
+ }
+
+ .at4-whatsnext.ats-gray {
+ background: #f2f2f2
+ }
+
+ .at4-whatsnext.at-whatsnext-nophoto {
+ width: 270px
+ }
+
+ .at4-whatsnext.at-whatsnext-nophoto .at-whatsnext-content-img {
+ display: none
+ }
+
+ .at4-whatsnext.at-whatsnext-nophoto .at-whatsnext-content .at-whatsnext-content-inner {
+ top: 15px;
+ right: 0;
+ left: 20px
+ }
+
+ .at4-whatsnext.at-whatsnext-nophoto .at-whatsnext-content .at-whatsnext-content-inner.addthis_32x32_style {
+ top: 0;
+ right: 0;
+ left: 0;
+ padding: 45px 20px 0;
+ font-size: 20px
+ }
+
+ .at4-whatsnext.at-whatsnext-nophoto .at-whatsnext-content .at-whatsnext-content-inner .at4-icon,
+ .at4-whatsnext.at-whatsnext-nophoto .at-whatsnext-content .at-whatsnext-content-inner .at4-icon-fw,
+ .at4-whatsnext.at-whatsnext-nophoto .at-whatsnext-content .at-whatsnext-content-inner .whatsnext-msg {
+ vertical-align: middle
+ }
+
+ .at-whatsnext-img,
+ .at-whatsnext-img-lnk {
+ position: absolute;
+ left: 0
+ }
+ </style>
+ <style type="text/css">
+ .at4-whatsnextmobile {
+ position: fixed;
+ bottom: 0;
+ right: 0;
+ left: 0;
+ background: #fff;
+ z-index: 9999998;
+ height: 170px;
+ font-size: 28px
+ }
+
+ .at4-whatsnextmobile .col-2 {
+ height: 100%;
+ font-size: 1em
+ }
+
+ .at4-whatsnextmobile .col-2:first-child {
+ max-width: 200px;
+ display: inline-block;
+ float: left
+ }
+
+ .at4-whatsnextmobile .col-2:last-child {
+ position: absolute;
+ left: 200px;
+ right: 50px;
+ top: 0;
+ bottom: 0;
+ display: inline-block
+ }
+
+ .at4-whatsnextmobile .at-whatsnext-content-inner {
+ font-size: 1em
+ }
+
+ .at4-whatsnextmobile .at-whatsnext-content-img img {
+ height: 100%;
+ width: 100%
+ }
+
+ .at4-whatsnextmobile .at-close-control {
+ font-size: 1em;
+ position: absolute;
+ top: 0;
+ right: 0;
+ width: 50px;
+ height: 50px
+ }
+
+ .at4-whatsnextmobile .at-close-control button {
+ width: 100%;
+ height: 100%;
+ font-size: 1em;
+ font-weight: 400;
+ text-decoration: none;
+ opacity: .5;
+ padding: 0;
+ cursor: pointer;
+ background: 0 0;
+ border: 0;
+ -webkit-appearance: none
+ }
+
+ .at4-whatsnextmobile .at-h3,
+ .at4-whatsnextmobile .at-h6 {
+ font-size: 1em;
+ margin: 0;
+ color: #a1a1a1;
+ margin-left: 2.5%;
+ margin-top: 25px
+ }
+
+ .at4-whatsnextmobile .at-h3 {
+ font-size: 1em;
+ line-height: 1em;
+ font-weight: 500;
+ height: 50%
+ }
+
+ .at4-whatsnextmobile .at-h3 a {
+ font-size: 1em;
+ text-decoration: none
+ }
+
+ .at4-whatsnextmobile .at-h6 {
+ font-size: .8em;
+ line-height: .8em;
+ font-weight: 500
+ }
+
+ .at4-whatsnextmobile .footer {
+ position: absolute;
+ bottom: 2px;
+ left: 200px;
+ right: 0;
+ padding-left: 2.5%;
+ font-size: 1em;
+ line-height: .6em
+ }
+
+ .at4-whatsnextmobile .footer small {
+ font-size: .6em;
+ color: #a1a1a1
+ }
+
+ .at4-whatsnextmobile .footer small:first-child {
+ margin-right: 5%;
+ float: left
+ }
+
+ .at4-whatsnextmobile .footer small:last-child {
+ margin-right: 2.5%;
+ float: right
+ }
+
+ .at4-whatsnextmobile .at-whatsnext-content {
+ height: 100%
+ }
+
+ .at4-whatsnextmobile.ats-dark {
+ background: #262b30;
+ color: #fff
+ }
+
+ .at4-whatsnextmobile .at-close-control button {
+ color: #bfbfbf
+ }
+
+ .at4-whatsnextmobile.ats-dark a:link,
+ .at4-whatsnextmobile.ats-dark a:visited {
+ color: #fff
+ }
+
+ .at4-whatsnextmobile.ats-gray {
+ background: #f2f2f2;
+ color: #262b30
+ }
+
+ .at4-whatsnextmobile.ats-light {
+ background: #fff;
+ color: #262b30
+ }
+
+ .at4-whatsnextmobile.ats-dark .footer a:link,
+ .at4-whatsnextmobile.ats-dark .footer a:visited,
+ .at4-whatsnextmobile.ats-gray .footer a:link,
+ .at4-whatsnextmobile.ats-gray .footer a:visited,
+ .at4-whatsnextmobile.ats-light .footer a:link,
+ .at4-whatsnextmobile.ats-light .footer a:visited {
+ color: #a1a1a1
+ }
+
+ .at4-whatsnextmobile.ats-gray a:link,
+ .at4-whatsnextmobile.ats-gray a:visited,
+ .at4-whatsnextmobile.ats-light a:link,
+ .at4-whatsnextmobile.ats-light a:visited {
+ color: #262b30
+ }
+
+ @media only screen and (min-device-width:320px) and (max-device-width:480px) {
+ .at4-whatsnextmobile {
+ height: 85px;
+ font-size: 14px
+ }
+ .at4-whatsnextmobile .col-2:first-child {
+ width: 75pt
+ }
+ .at4-whatsnextmobile .col-2:last-child {
+ right: 25px;
+ left: 75pt
+ }
+ .at4-whatsnextmobile .footer {
+ left: 75pt
+ }
+ .at4-whatsnextmobile .at-close-control {
+ width: 25px;
+ height: 25px
+ }
+ .at4-whatsnextmobile .at-h3,
+ .at4-whatsnextmobile .at-h6 {
+ margin-top: 12.5px
+ }
+ }
+ </style>
+ <style type="text/css">
+ .at-custom-mobile-bar {
+ left: 0;
+ right: 0;
+ width: 100%;
+ height: 56px;
+ position: fixed;
+ text-align: center;
+ z-index: 100020;
+ background: #fff;
+ overflow: hidden;
+ box-shadow: 0 0 10px 0 rgba(0, 0, 0, .2);
+ font: initial;
+ line-height: normal;
+ top: auto;
+ bottom: 0
+ }
+
+ .at-custom-mobile-bar.at-custom-mobile-bar-zindex-hide {
+ z-index: -1!important
+ }
+
+ .at-custom-mobile-bar.atss-top {
+ top: 0;
+ bottom: auto
+ }
+
+ .at-custom-mobile-bar.atss-bottom {
+ top: auto;
+ bottom: 0
+ }
+
+ .at-custom-mobile-bar .at-custom-mobile-bar-btns {
+ display: inline-block;
+ text-align: center
+ }
+
+ .at-custom-mobile-bar .at-custom-mobile-bar-counter,
+ .at-custom-mobile-bar .at-share-btn {
+ margin-top: 4px
+ }
+
+ .at-custom-mobile-bar .at-share-btn {
+ display: inline-block;
+ text-decoration: none;
+ -webkit-transition: none;
+ transition: none;
+ box-sizing: content-box
+ }
+
+ .at-custom-mobile-bar .at-custom-mobile-bar-counter {
+ font-family: Helvetica neue, arial;
+ vertical-align: top;
+ margin-left: 4px;
+ margin-right: 4px;
+ display: inline-block
+ }
+
+ .at-custom-mobile-bar .at-custom-mobile-bar-count {
+ font-size: 26px;
+ line-height: 1.25em;
+ color: #222
+ }
+
+ .at-custom-mobile-bar .at-custom-mobile-bar-text {
+ font-size: 9pt;
+ line-height: 1.25em;
+ color: #888;
+ letter-spacing: 1px
+ }
+
+ .at-custom-mobile-bar .at-icon-wrapper {
+ text-align: center;
+ height: 3pc;
+ width: 3pc;
+ margin: 0 4px
+ }
+
+ .at-custom-mobile-bar .at-icon {
+ vertical-align: top;
+ margin: 8px;
+ width: 2pc;
+ height: 2pc
+ }
+
+ .at-custom-mobile-bar.at-shfs-medium {
+ height: 3pc
+ }
+
+ .at-custom-mobile-bar.at-shfs-medium .at-custom-mobile-bar-counter {
+ margin-top: 6px
+ }
+
+ .at-custom-mobile-bar.at-shfs-medium .at-custom-mobile-bar-count {
+ font-size: 18px
+ }
+
+ .at-custom-mobile-bar.at-shfs-medium .at-custom-mobile-bar-text {
+ font-size: 10px
+ }
+
+ .at-custom-mobile-bar.at-shfs-medium .at-icon-wrapper {
+ height: 40px;
+ width: 40px
+ }
+
+ .at-custom-mobile-bar.at-shfs-medium .at-icon {
+ margin: 6px;
+ width: 28px;
+ height: 28px
+ }
+
+ .at-custom-mobile-bar.at-shfs-small {
+ height: 40px
+ }
+
+ .at-custom-mobile-bar.at-shfs-small .at-custom-mobile-bar-counter {
+ margin-top: 3px
+ }
+
+ .at-custom-mobile-bar.at-shfs-small .at-custom-mobile-bar-count {
+ font-size: 1pc
+ }
+
+ .at-custom-mobile-bar.at-shfs-small .at-custom-mobile-bar-text {
+ font-size: 10px
+ }
+
+ .at-custom-mobile-bar.at-shfs-small .at-icon-wrapper {
+ height: 2pc;
+ width: 2pc
+ }
+
+ .at-custom-mobile-bar.at-shfs-small .at-icon {
+ margin: 4px;
+ width: 24px;
+ height: 24px
+ }
+ </style>
+ <style type="text/css">
+ .at-custom-sidebar {
+ top: 20%;
+ width: 58px;
+ position: fixed;
+ text-align: center;
+ z-index: 100020;
+ background: #fff;
+ overflow: hidden;
+ box-shadow: 0 0 10px 0 rgba(0, 0, 0, .2);
+ font: initial;
+ line-height: normal;
+ top: auto;
+ bottom: 0
+ }
+
+ .at-custom-sidebar.at-custom-sidebar-zindex-hide {
+ z-index: -1!important
+ }
+
+ .at-custom-sidebar.atss-left {
+ left: 0;
+ right: auto;
+ float: left;
+ border-radius: 0 4px 4px 0
+ }
+
+ .at-custom-sidebar.atss-right {
+ left: auto;
+ right: 0;
+ float: right;
+ border-radius: 4px 0 0 4px
+ }
+
+ .at-custom-sidebar .at-custom-sidebar-btns {
+ display: inline-block;
+ text-align: center;
+ padding-top: 4px
+ }
+
+ .at-custom-sidebar .at-custom-sidebar-counter {
+ margin-bottom: 8px
+ }
+
+ .at-custom-sidebar .at-share-btn {
+ display: inline-block;
+ text-decoration: none;
+ -webkit-transition: none;
+ transition: none;
+ box-sizing: content-box
+ }
+
+ .at-custom-sidebar .at-custom-sidebar-counter {
+ font-family: Helvetica neue, arial;
+ vertical-align: top;
+ margin-left: 4px;
+ margin-right: 4px;
+ display: inline-block
+ }
+
+ .at-custom-sidebar .at-custom-sidebar-count {
+ font-size: 21px;
+ line-height: 1.25em;
+ color: #222
+ }
+
+ .at-custom-sidebar .at-custom-sidebar-text {
+ font-size: 10px;
+ line-height: 1.25em;
+ color: #888;
+ letter-spacing: 1px
+ }
+
+ .at-custom-sidebar .at-icon-wrapper {
+ text-align: center;
+ margin: 0 4px
+ }
+
+ .at-custom-sidebar .at-icon {
+ vertical-align: top;
+ margin: 9px;
+ width: 2pc;
+ height: 2pc
+ }
+
+ .at-custom-sidebar .at-icon-wrapper {
+ position: relative
+ }
+
+ .at-custom-sidebar .at4-share-count,
+ .at-custom-sidebar .at4-share-count-container {
+ line-height: 1pc;
+ font-size: 10px
+ }
+
+ .at-custom-sidebar .at4-share-count {
+ text-indent: 0;
+ font-family: Arial, Helvetica Neue, Helvetica, sans-serif;
+ font-weight: 200;
+ width: 100%;
+ height: 1pc
+ }
+
+ .at-custom-sidebar .at4-share-count-anchor .at-icon {
+ margin-top: 3px
+ }
+
+ .at-custom-sidebar .at4-share-count-container {
+ position: absolute;
+ left: 0;
+ right: auto;
+ top: auto;
+ bottom: 0;
+ width: 100%;
+ color: #fff;
+ background: inherit
+ }
+ </style>
+ <style type="text/css">
+ .at-image-sharing-mobile-icon {
+ position: absolute;
+ background: #000 url(//s7.addthis.com/static/44a36d35bafef33aa9455b7d3039a771.png) no-repeat top center;
+ background-color: rgba(0, 0, 0, .9);
+ background-image: url(//s7.addthis.com/static/10db525181ee0bbe1a515001be1c7818.svg), none;
+ border-radius: 3px;
+ width: 50px;
+ height: 40px;
+ top: -9999px;
+ left: -9999px
+ }
+
+ .at-image-sharing-tool {
+ display: block;
+ position: absolute;
+ text-align: center;
+ z-index: 9001;
+ background: none;
+ overflow: hidden;
+ top: -9999px;
+ left: -9999px;
+ font: initial;
+ line-height: 0
+ }
+
+ .at-image-sharing-tool.addthis-animated {
+ -webkit-animation-duration: .15s;
+ animation-duration: .15s
+ }
+
+ .at-image-sharing-tool.at-orientation-vertical .at-share-btn {
+ display: block
+ }
+
+ .at-image-sharing-tool.at-orientation-horizontal .at-share-btn {
+ display: inline-block
+ }
+
+ .at-image-sharing-tool.at-image-sharing-tool-size-big .at-icon {
+ width: 43px;
+ height: 43px
+ }
+
+ .at-image-sharing-tool.at-image-sharing-tool-size-mobile .at-share-btn {
+ margin: 0!important
+ }
+
+ .at-image-sharing-tool.at-image-sharing-tool-size-mobile .at-icon-wrapper {
+ height: 60px;
+ width: 100%;
+ border-radius: 0!important
+ }
+
+ .at-image-sharing-tool.at-image-sharing-tool-size-mobile .at-icon {
+ max-width: 100%;
+ height: 54px!important;
+ width: 54px!important
+ }
+
+ .at-image-sharing-tool .at-custom-shape.at-image-sharing-tool-btns {
+ margin-right: 8px;
+ margin-bottom: 8px
+ }
+
+ .at-image-sharing-tool .at-custom-shape .at-share-btn {
+ margin-top: 8px;
+ margin-left: 8px
+ }
+
+ .at-image-sharing-tool .at-share-btn {
+ line-height: 0;
+ text-decoration: none;
+ -webkit-transition: none;
+ transition: none;
+ box-sizing: content-box
+ }
+
+ .at-image-sharing-tool .at-icon-wrapper {
+ text-align: center;
+ height: 100%;
+ width: 100%
+ }
+
+ .at-image-sharing-tool .at-icon {
+ vertical-align: top;
+ width: 2pc;
+ height: 2pc;
+ margin: 3px
+ }
+ </style>
+ <style type="text/css">
+ .at-expanding-share-button {
+ box-sizing: border-box;
+ position: fixed;
+ z-index: 9999
+ }
+
+ .at-expanding-share-button[data-position=bottom-right] {
+ bottom: 10px;
+ right: 10px
+ }
+
+ .at-expanding-share-button[data-position=bottom-right] .at-expanding-share-button-toggle-bg,
+ .at-expanding-share-button[data-position=bottom-right] .at-expanding-share-button-toggle-btn[data-name]:after,
+ .at-expanding-share-button[data-position=bottom-right] .at-icon-wrapper,
+ .at-expanding-share-button[data-position=bottom-right] [data-name]:after {
+ float: right
+ }
+
+ .at-expanding-share-button[data-position=bottom-right] [data-name]:after {
+ margin-right: 10px
+ }
+
+ .at-expanding-share-button[data-position=bottom-right] .at-expanding-share-button-toggle-btn[data-name]:after {
+ margin-right: 5px
+ }
+
+ .at-expanding-share-button[data-position=bottom-right] .at-icon-wrapper {
+ margin-right: -3px
+ }
+
+ .at-expanding-share-button[data-position=bottom-left] {
+ bottom: 10px;
+ left: 10px
+ }
+
+ .at-expanding-share-button[data-position=bottom-left] .at-expanding-share-button-toggle-bg,
+ .at-expanding-share-button[data-position=bottom-left] .at-expanding-share-button-toggle-btn[data-name]:after,
+ .at-expanding-share-button[data-position=bottom-left] .at-icon-wrapper,
+ .at-expanding-share-button[data-position=bottom-left] [data-name]:after {
+ float: left
+ }
+
+ .at-expanding-share-button[data-position=bottom-left] [data-name]:after {
+ margin-left: 10px
+ }
+
+ .at-expanding-share-button[data-position=bottom-left] .at-expanding-share-button-toggle-btn[data-name]:after {
+ margin-left: 5px
+ }
+
+ .at-expanding-share-button *,
+ .at-expanding-share-button :after,
+ .at-expanding-share-button :before {
+ box-sizing: border-box
+ }
+
+ .at-expanding-share-button .at-expanding-share-button-services-list {
+ display: none;
+ list-style: none;
+ margin: 0 5px;
+ overflow: visible;
+ padding: 0
+ }
+
+ .at-expanding-share-button .at-expanding-share-button-services-list&gt;
+ li {
+ display: block;
+ height: 45px;
+ position: relative;
+ overflow: visible
+ }
+
+ .at-expanding-share-button .at-expanding-share-button-toggle-btn,
+ .at-expanding-share-button .at-share-btn {
+ -webkit-transition: .1s;
+ transition: .1s;
+ text-decoration: none
+ }
+
+ .at-expanding-share-button .at-share-btn {
+ display: block;
+ height: 40px;
+ padding: 0 3px 0 0
+ }
+
+ .at-expanding-share-button .at-expanding-share-button-toggle-btn {
+ position: relative;
+ overflow: auto
+ }
+
+ .at-expanding-share-button .at-expanding-share-button-toggle-btn.at-expanding-share-button-hidden[data-name]:after {
+ display: none
+ }
+
+ .at-expanding-share-button .at-expanding-share-button-toggle-bg {
+ box-shadow: 0 2px 4px 0 rgba(0, 0, 0, .3);
+ border-radius: 50%;
+ position: relative
+ }
+
+ .at-expanding-share-button .at-expanding-share-button-toggle-bg&gt;
+ span {
+ background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2232px%22%20height%3D%2232px%22%20viewBox%3D%220%200%2032%2032%22%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ctitle%3Eshare%3C%2Ftitle%3E%3Cg%20stroke%3D%22none%22%20stroke-width%3D%221%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Cg%20fill%3D%22%23FFFFFF%22%3E%3Cpath%20d%3D%22M26%2C13.4285714%20C26%2C13.6220248%2025.9293162%2C13.7894338%2025.7879464%2C13.9308036%20L20.0736607%2C19.6450893%20C19.932291%2C19.786459%2019.7648819%2C19.8571429%2019.5714286%2C19.8571429%20C19.3779752%2C19.8571429%2019.2105662%2C19.786459%2019.0691964%2C19.6450893%20C18.9278267%2C19.5037195%2018.8571429%2C19.3363105%2018.8571429%2C19.1428571%20L18.8571429%2C16.2857143%20L16.3571429%2C16.2857143%20C15.6279725%2C16.2857143%2014.9750773%2C16.3080355%2014.3984375%2C16.3526786%20C13.8217977%2C16.3973217%2013.2488868%2C16.477306%2012.6796875%2C16.5926339%20C12.1104882%2C16.7079619%2011.6157015%2C16.8660704%2011.1953125%2C17.0669643%20C10.7749235%2C17.2678581%2010.3824423%2C17.5264121%2010.0178571%2C17.8426339%20C9.65327199%2C18.1588557%209.35565592%2C18.534596%209.125%2C18.9698661%20C8.89434408%2C19.4051361%208.71391434%2C19.9203839%208.58370536%2C20.515625%20C8.45349637%2C21.1108661%208.38839286%2C21.7842224%208.38839286%2C22.5357143%20C8.38839286%2C22.9449425%208.40699386%2C23.4025272%208.44419643%2C23.9084821%20C8.44419643%2C23.9531252%208.45349693%2C24.0405499%208.47209821%2C24.1707589%20C8.4906995%2C24.3009679%208.5%2C24.3995532%208.5%2C24.4665179%20C8.5%2C24.5781256%208.46837829%2C24.6711306%208.40513393%2C24.7455357%20C8.34188956%2C24.8199408%208.25446484%2C24.8571429%208.14285714%2C24.8571429%20C8.02380893%2C24.8571429%207.9196433%2C24.7938994%207.83035714%2C24.6674107%20C7.77827355%2C24.6004461%207.72991094%2C24.5186017%207.68526786%2C24.421875%20C7.64062478%2C24.3251483%207.59040206%2C24.2135423%207.53459821%2C24.0870536%20C7.47879436%2C23.9605648%207.43973225%2C23.87128%207.41741071%2C23.8191964%20C6.47246551%2C21.6986501%206%2C20.0208395%206%2C18.7857143%20C6%2C17.3050521%206.19717065%2C16.0662252%206.59151786%2C15.0691964%20C7.79688103%2C12.0706695%2011.0520568%2C10.5714286%2016.3571429%2C10.5714286%20L18.8571429%2C10.5714286%20L18.8571429%2C7.71428571%20C18.8571429%2C7.52083237%2018.9278267%2C7.35342333%2019.0691964%2C7.21205357%20C19.2105662%2C7.07068382%2019.3779752%2C7%2019.5714286%2C7%20C19.7648819%2C7%2019.932291%2C7.07068382%2020.0736607%2C7.21205357%20L25.7879464%2C12.9263393%20C25.9293162%2C13.067709%2026%2C13.2351181%2026%2C13.4285714%20L26%2C13.4285714%20Z%22%3E%3C%2Fpath%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
+ background-position: center center;
+ background-repeat: no-repeat;
+ -webkit-transition: transform .4s ease;
+ transition: transform .4s ease;
+ border-radius: 50%;
+ display: block
+ }
+
+ .at-expanding-share-button .at-icon-wrapper {
+ box-shadow: 0 2px 4px 0 rgba(0, 0, 0, .3);
+ border-radius: 50%;
+ display: inline-block;
+ height: 40px;
+ line-height: 40px;
+ text-align: center;
+ width: 40px
+ }
+
+ .at-expanding-share-button .at-icon {
+ display: inline-block;
+ height: 34px;
+ margin: 3px 0;
+ vertical-align: top;
+ width: 34px
+ }
+
+ .at-expanding-share-button [data-name]:after {
+ box-shadow: 0 2px 4px 0 rgba(0, 0, 0, .3);
+ -webkit-transform: translate(0, -50%);
+ transform: translate(0, -50%);
+ -webkit-transition: .4s;
+ transition: .4s;
+ background-color: #fff;
+ border-radius: 3px;
+ color: #666;
+ content: attr(data-name);
+ font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
+ font-size: 9pt;
+ line-height: 9pt;
+ font-weight: 500;
+ opacity: 0;
+ padding: 3px 5px;
+ position: relative;
+ top: 20px;
+ white-space: nowrap
+ }
+
+ .at-expanding-share-button.at-expanding-share-button-show-icons .at-expanding-share-button-services-list {
+ display: block
+ }
+
+ .at-expanding-share-button.at-expanding-share-button-animate-in .at-expanding-share-button-toggle-bg&gt;
+ span {
+ -webkit-transform: rotate(270deg);
+ transform: rotate(270deg);
+ background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cg%3E%3Cpath%20d%3D%22M18%2014V8h-4v6H8v4h6v6h4v-6h6v-4h-6z%22%20fill-rule%3D%22evenodd%22%20fill%3D%22white%22%3E%3C%2Fpath%3E%3C%2Fg%3E%3C%2Fsvg%3E");
+ background-position: center center;
+ background-repeat: no-repeat
+ }
+
+ .at-expanding-share-button.at-expanding-share-button-animate-in [data-name]:after {
+ opacity: 1
+ }
+
+ .at-expanding-share-button.at-hide-label [data-name]:after {
+ display: none
+ }
+
+ .at-expanding-share-button.at-expanding-share-button-desktop .at-expanding-share-button-toggle {
+ height: 50px
+ }
+
+ .at-expanding-share-button.at-expanding-share-button-desktop .at-icon-wrapper:hover {
+ box-shadow: 0 2px 5px 0 rgba(0, 0, 0, .5)
+ }
+
+ .at-expanding-share-button.at-expanding-share-button-desktop .at-expanding-share-button-toggle-bg {
+ height: 50px;
+ line-height: 50px;
+ width: 50px
+ }
+
+ .at-expanding-share-button.at-expanding-share-button-desktop .at-expanding-share-button-toggle-bg&gt;
+ span {
+ height: 50px;
+ width: 50px
+ }
+
+ .at-expanding-share-button.at-expanding-share-button-desktop .at-expanding-share-button-toggle-bg:after {
+ box-shadow: 0 2px 5px 0 rgba(0, 0, 0, .2);
+ -webkit-transition: opacity .2s ease;
+ transition: opacity .2s ease;
+ border-radius: 50%;
+ content: '';
+ height: 100%;
+ opacity: 0;
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%
+ }
+
+ .at-expanding-share-button.at-expanding-share-button-desktop .at-expanding-share-button-toggle-bg:hover:after {
+ opacity: 1
+ }
+
+ .at-expanding-share-button.at-expanding-share-button-desktop .at-expanding-share-button-toggle-btn[data-name]:after {
+ top: 25px
+ }
+
+ .at-expanding-share-button.at-expanding-share-button-mobile .at-expanding-share-button-services-list {
+ margin: 0
+ }
+
+ .at-expanding-share-button.at-expanding-share-button-mobile .at-expanding-share-button-toggle-btn,
+ .at-expanding-share-button.at-expanding-share-button-mobile .at-share-btn {
+ outline: 0
+ }
+
+ .at-expanding-share-button.at-expanding-share-button-mobile .at-expanding-share-button-toggle {
+ height: 40px;
+ -webkit-tap-highlight-color: transparent
+ }
+
+ .at-expanding-share-button.at-expanding-share-button-mobile .at-expanding-share-button-toggle-bg,
+ .at-expanding-share-button.at-expanding-share-button-mobile .at-expanding-share-button-toggle-bg span {
+ height: 40px;
+ line-height: 40px;
+ width: 40px
+ }
+
+ .at-expanding-share-button.at-expanding-share-button-mobile .at-expanding-share-button-click-flash {
+ -webkit-transform: scale(0);
+ transform: scale(0);
+ -webkit-transition: transform ease, opacity ease-in;
+ transition: transform ease, opacity ease-in;
+ background-color: hsla(0, 0%, 100%, .3);
+ border-radius: 50%;
+ height: 40px;
+ opacity: 1;
+ position: absolute;
+ width: 40px;
+ z-index: 10000
+ }
+
+ .at-expanding-share-button.at-expanding-share-button-mobile .at-expanding-share-button-click-flash.at-expanding-share-button-click-flash-animate {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ opacity: 0
+ }
+
+ .at-expanding-share-button.at-expanding-share-button-mobile+.at-expanding-share-button-mobile-overlay {
+ -webkit-transition: opacity ease;
+ transition: opacity ease;
+ bottom: 0;
+ background-color: hsla(0, 0%, 87%, .7);
+ display: block;
+ height: auto;
+ left: 0;
+ opacity: 0;
+ position: fixed;
+ right: 0;
+ top: 0;
+ width: auto;
+ z-index: 9998
+ }
+
+ .at-expanding-share-button.at-expanding-share-button-mobile+.at-expanding-share-button-mobile-overlay.at-expanding-share-button-hidden {
+ height: 0;
+ width: 0;
+ z-index: -10000
+ }
+
+ .at-expanding-share-button.at-expanding-share-button-mobile.at-expanding-share-button-animate-in+.at-expanding-share-button-mobile-overlay {
+ -webkit-transition: opacity ease;
+ transition: opacity ease;
+ opacity: 1
+ }
+ </style>
+ <style type="text/css">
+ #addthissmartlayerscssready {
+ color: #bada55!important
+ }
+
+ .addthis-smartlayers,
+ div#at4-follow,
+ div#at4-share,
+ div#at4-thankyou,
+ div#at4-whatsnext {
+ padding: 0;
+ margin: 0
+ }
+
+ #at4-follow-label,
+ #at4-share-label,
+ #at4-whatsnext-label,
+ .at4-recommended-label.hidden {
+ padding: 0;
+ border: none;
+ background: none;
+ position: absolute;
+ top: 0;
+ left: 0;
+ height: 0;
+ width: 0;
+ overflow: hidden;
+ text-indent: -9999em
+ }
+
+ .addthis-smartlayers .at4-arrow:hover {
+ cursor: pointer
+ }
+
+ .addthis-smartlayers .at4-arrow:after,
+ .addthis-smartlayers .at4-arrow:before {
+ content: none
+ }
+
+ a.at4-logo {
+ background: url(data:image/gif;base64,R0lGODlhBwAHAJEAAP9uQf///wAAAAAAACH5BAkKAAIALAAAAAAHAAcAAAILFH6Ge8EBH2MKiQIAOw==) no-repeat left center
+ }
+
+ .at4-minimal a.at4-logo {
+ background: url(data:image/gif;base64,R0lGODlhBwAHAJEAAP9uQf///wAAAAAAACH5BAkKAAIALAAAAAAHAAcAAAILFH6Ge8EBH2MKiQIAOw==) no-repeat left center!important
+ }
+
+ button.at4-closebutton {
+ position: absolute;
+ top: 0;
+ right: 0;
+ padding: 0;
+ margin-right: 10px;
+ cursor: pointer;
+ background: transparent;
+ border: 0;
+ -webkit-appearance: none;
+ font-size: 19px;
+ line-height: 1;
+ color: #000;
+ text-shadow: 0 1px 0 #fff;
+ opacity: .2
+ }
+
+ button.at4-closebutton:hover {
+ color: #000;
+ text-decoration: none;
+ cursor: pointer;
+ opacity: .5
+ }
+
+ div.at4-arrow {
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAAoCAYAAABpYH0BAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAV1JREFUeNrsmesOgyAMhQfxwfrofTM3E10ME2i5Oeppwr9a5OMUCrh1XV+wcvNAAIAA+BiAzrmtUWln27dbjEcC3AdODfo0BdEPhmcO4nIDvDNELi2jggk4/k8dT7skfeKzWIEd4VUpMQKvNB7X+OZSmAZkATWC1xvipbpnLmOosbJZC08CkAeA4E6qFUEMwLAGnlSBPCE8lW8CYnZTcimH2HoT7kSFOx5HBmCnDhTIu1p5s98G+QZrxGPhZVMY1vgyAQaAAAiAAAgDQACcBOD+BvJtBWfRy7NpJK5tBe4FNzXokywV734wPHMQlxvgnSGyNoUP/2ACjv/7iSeYKO3YWKzAjvCqlBiBVxqPa3ynexNJwOsN8TJbzL6JNIYYXWpMv4lIIAZgWANPqkCeEJ7KNwExu8lpLlSpAVQarO77TyKdBsyRPuwV0h0gmoGnTWFYzVkYBoAA+I/2FmAAt6+b5XM9mFkAAAAASUVORK5CYII=);
+ background-repeat: no-repeat;
+ width: 20px;
+ height: 20px;
+ margin: 0;
+ padding: 0;
+ overflow: hidden;
+ text-indent: -9999em;
+ text-align: left;
+ cursor: pointer
+ }
+
+ #at4-recommendedpanel-outer-container .at4-arrow.at-right,
+ div.at4-arrow.at-right {
+ background-position: -20px 0
+ }
+
+ #at4-recommendedpanel-outer-container .at4-arrow.at-left,
+ div.at4-arrow.at-left {
+ background-position: 0 0
+ }
+
+ div.at4-arrow.at-down {
+ background-position: -60px 0
+ }
+
+ div.at4-arrow.at-up {
+ background-position: -40px 0
+ }
+
+ .ats-dark div.at4-arrow.at-right {
+ background-position: -20px -20px
+ }
+
+ .ats-dark div.at4-arrow.at-left {
+ background-position: 0 -20px
+ }
+
+ .ats-dark div.at4-arrow.at-down {
+ background-position: -60px -20px
+ }
+
+ .ats-dark div.at4-arrow.at-up {
+ background-position: -40px -20
+ }
+
+ .at4-opacity-hidden {
+ opacity: 0!important
+ }
+
+ .at4-opacity-visible {
+ opacity: 1!important
+ }
+
+ .at4-visually-hidden {
+ position: absolute;
+ clip: rect(1px, 1px, 1px, 1px);
+ padding: 0;
+ border: 0;
+ overflow: hidden
+ }
+
+ .at4-hidden-off-screen,
+ .at4-hidden-off-screen * {
+ position: absolute!important;
+ top: -9999px!important;
+ left: -9999px!important
+ }
+
+ .at4-show {
+ display: block!important;
+ opacity: 1!important
+ }
+
+ .at4-show-content {
+ opacity: 1!important;
+ visibility: visible
+ }
+
+ .at4-hide {
+ display: none!important;
+ opacity: 0!important
+ }
+
+ .at4-hide-content {
+ opacity: 0!important;
+ visibility: hidden
+ }
+
+ .at4-visible {
+ display: block!important;
+ opacity: 0!important
+ }
+
+ .at-wordpress-hide {
+ display: none!important;
+ opacity: 0!important
+ }
+
+ .addthis-animated {
+ -webkit-animation-fill-mode: both;
+ animation-fill-mode: both;
+ animation-timing-function: ease-out;
+ -webkit-animation-duration: .3s;
+ animation-duration: .3s
+ }
+
+ .slideInDown.addthis-animated,
+ .slideInLeft.addthis-animated,
+ .slideInRight.addthis-animated,
+ .slideInUp.addthis-animated,
+ .slideOutDown.addthis-animated,
+ .slideOutLeft.addthis-animated,
+ .slideOutRight.addthis-animated,
+ .slideOutUp.addthis-animated {
+ -webkit-animation-duration: .4s;
+ animation-duration: .4s
+ }
+
+ @-webkit-keyframes fadeIn {
+ 0% {
+ opacity: 0
+ }
+ to {
+ opacity: 1
+ }
+ }
+
+ @keyframes fadeIn {
+ 0% {
+ opacity: 0
+ }
+ to {
+ opacity: 1
+ }
+ }
+
+ .fadeIn {
+ -webkit-animation-name: fadeIn;
+ animation-name: fadeIn
+ }
+
+ @-webkit-keyframes fadeInUp {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateY(20px)
+ }
+ to {
+ opacity: 1;
+ -webkit-transform: translateY(0)
+ }
+ }
+
+ @keyframes fadeInUp {
+ 0% {
+ opacity: 0;
+ transform: translateY(20px)
+ }
+ to {
+ opacity: 1;
+ transform: translateY(0)
+ }
+ }
+
+ .fadeInUp {
+ -webkit-animation-name: fadeInUp;
+ animation-name: fadeInUp
+ }
+
+ @-webkit-keyframes fadeInDown {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateY(-20px)
+ }
+ to {
+ opacity: 1;
+ -webkit-transform: translateY(0)
+ }
+ }
+
+ @keyframes fadeInDown {
+ 0% {
+ opacity: 0;
+ transform: translateY(-20px)
+ }
+ to {
+ opacity: 1;
+ transform: translateY(0)
+ }
+ }
+
+ .fadeInDown {
+ -webkit-animation-name: fadeInDown;
+ animation-name: fadeInDown
+ }
+
+ @-webkit-keyframes fadeInLeft {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateX(-20px)
+ }
+ to {
+ opacity: 1;
+ -webkit-transform: translateX(0)
+ }
+ }
+
+ @keyframes fadeInLeft {
+ 0% {
+ opacity: 0;
+ transform: translateX(-20px)
+ }
+ to {
+ opacity: 1;
+ transform: translateX(0)
+ }
+ }
+
+ .fadeInLeft {
+ -webkit-animation-name: fadeInLeft;
+ animation-name: fadeInLeft
+ }
+
+ @-webkit-keyframes fadeInRight {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateX(20px)
+ }
+ to {
+ opacity: 1;
+ -webkit-transform: translateX(0)
+ }
+ }
+
+ @keyframes fadeInRight {
+ 0% {
+ opacity: 0;
+ transform: translateX(20px)
+ }
+ to {
+ opacity: 1;
+ transform: translateX(0)
+ }
+ }
+
+ .fadeInRight {
+ -webkit-animation-name: fadeInRight;
+ animation-name: fadeInRight
+ }
+
+ @-webkit-keyframes fadeOut {
+ 0% {
+ opacity: 1
+ }
+ to {
+ opacity: 0
+ }
+ }
+
+ @keyframes fadeOut {
+ 0% {
+ opacity: 1
+ }
+ to {
+ opacity: 0
+ }
+ }
+
+ .fadeOut {
+ -webkit-animation-name: fadeOut;
+ animation-name: fadeOut
+ }
+
+ @-webkit-keyframes fadeOutUp {
+ 0% {
+ opacity: 1;
+ -webkit-transform: translateY(0)
+ }
+ to {
+ opacity: 0;
+ -webkit-transform: translateY(-20px)
+ }
+ }
+
+ @keyframes fadeOutUp {
+ 0% {
+ opacity: 1;
+ transform: translateY(0)
+ }
+ to {
+ opacity: 0;
+ transform: translateY(-20px)
+ }
+ }
+
+ .fadeOutUp {
+ -webkit-animation-name: fadeOutUp;
+ animation-name: fadeOutUp
+ }
+
+ @-webkit-keyframes fadeOutDown {
+ 0% {
+ opacity: 1;
+ -webkit-transform: translateY(0)
+ }
+ to {
+ opacity: 0;
+ -webkit-transform: translateY(20px)
+ }
+ }
+
+ @keyframes fadeOutDown {
+ 0% {
+ opacity: 1;
+ transform: translateY(0)
+ }
+ to {
+ opacity: 0;
+ transform: translateY(20px)
+ }
+ }
+
+ .fadeOutDown {
+ -webkit-animation-name: fadeOutDown;
+ animation-name: fadeOutDown
+ }
+
+ @-webkit-keyframes fadeOutLeft {
+ 0% {
+ opacity: 1;
+ -webkit-transform: translateX(0)
+ }
+ to {
+ opacity: 0;
+ -webkit-transform: translateX(-20px)
+ }
+ }
+
+ @keyframes fadeOutLeft {
+ 0% {
+ opacity: 1;
+ transform: translateX(0)
+ }
+ to {
+ opacity: 0;
+ transform: translateX(-20px)
+ }
+ }
+
+ .fadeOutLeft {
+ -webkit-animation-name: fadeOutLeft;
+ animation-name: fadeOutLeft
+ }
+
+ @-webkit-keyframes fadeOutRight {
+ 0% {
+ opacity: 1;
+ -webkit-transform: translateX(0)
+ }
+ to {
+ opacity: 0;
+ -webkit-transform: translateX(20px)
+ }
+ }
+
+ @keyframes fadeOutRight {
+ 0% {
+ opacity: 1;
+ transform: translateX(0)
+ }
+ to {
+ opacity: 0;
+ transform: translateX(20px)
+ }
+ }
+
+ .fadeOutRight {
+ -webkit-animation-name: fadeOutRight;
+ animation-name: fadeOutRight
+ }
+
+ @-webkit-keyframes slideInUp {
+ 0% {
+ -webkit-transform: translateY(1500px)
+ }
+ 0%,
+ to {
+ opacity: 1
+ }
+ to {
+ -webkit-transform: translateY(0)
+ }
+ }
+
+ @keyframes slideInUp {
+ 0% {
+ transform: translateY(1500px)
+ }
+ 0%,
+ to {
+ opacity: 1
+ }
+ to {
+ transform: translateY(0)
+ }
+ }
+
+ .slideInUp {
+ -webkit-animation-name: slideInUp;
+ animation-name: slideInUp
+ }
+
+ .slideInUp.addthis-animated {
+ -webkit-animation-duration: .4s;
+ animation-duration: .4s
+ }
+
+ @-webkit-keyframes slideInDown {
+ 0% {
+ -webkit-transform: translateY(-850px)
+ }
+ 0%,
+ to {
+ opacity: 1
+ }
+ to {
+ -webkit-transform: translateY(0)
+ }
+ }
+
+ @keyframes slideInDown {
+ 0% {
+ transform: translateY(-850px)
+ }
+ 0%,
+ to {
+ opacity: 1
+ }
+ to {
+ transform: translateY(0)
+ }
+ }
+
+ .slideInDown {
+ -webkit-animation-name: slideInDown;
+ animation-name: slideInDown
+ }
+
+ @-webkit-keyframes slideOutUp {
+ 0% {
+ -webkit-transform: translateY(0)
+ }
+ 0%,
+ to {
+ opacity: 1
+ }
+ to {
+ -webkit-transform: translateY(-250px)
+ }
+ }
+
+ @keyframes slideOutUp {
+ 0% {
+ transform: translateY(0)
+ }
+ 0%,
+ to {
+ opacity: 1
+ }
+ to {
+ transform: translateY(-250px)
+ }
+ }
+
+ .slideOutUp {
+ -webkit-animation-name: slideOutUp;
+ animation-name: slideOutUp
+ }
+
+ @-webkit-keyframes slideOutUpFast {
+ 0% {
+ -webkit-transform: translateY(0)
+ }
+ 0%,
+ to {
+ opacity: 1
+ }
+ to {
+ -webkit-transform: translateY(-1250px)
+ }
+ }
+
+ @keyframes slideOutUpFast {
+ 0% {
+ transform: translateY(0)
+ }
+ 0%,
+ to {
+ opacity: 1
+ }
+ to {
+ transform: translateY(-1250px)
+ }
+ }
+
+ #at4m-menu.slideOutUp {
+ -webkit-animation-name: slideOutUpFast;
+ animation-name: slideOutUpFast
+ }
+
+ @-webkit-keyframes slideOutDown {
+ 0% {
+ -webkit-transform: translateY(0)
+ }
+ 0%,
+ to {
+ opacity: 1
+ }
+ to {
+ -webkit-transform: translateY(350px)
+ }
+ }
+
+ @keyframes slideOutDown {
+ 0% {
+ transform: translateY(0)
+ }
+ 0%,
+ to {
+ opacity: 1
+ }
+ to {
+ transform: translateY(350px)
+ }
+ }
+
+ .slideOutDown {
+ -webkit-animation-name: slideOutDown;
+ animation-name: slideOutDown
+ }
+
+ @-webkit-keyframes slideOutDownFast {
+ 0% {
+ -webkit-transform: translateY(0)
+ }
+ 0%,
+ to {
+ opacity: 1
+ }
+ to {
+ -webkit-transform: translateY(1250px)
+ }
+ }
+
+ @keyframes slideOutDownFast {
+ 0% {
+ transform: translateY(0)
+ }
+ 0%,
+ to {
+ opacity: 1
+ }
+ to {
+ transform: translateY(1250px)
+ }
+ }
+
+ #at4m-menu.slideOutDown {
+ -webkit-animation-name: slideOutDownFast;
+ animation-name: slideOutDownFast
+ }
+
+ @-webkit-keyframes slideInLeft {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateX(-850px);
+ transform: translateX(-850px)
+ }
+ to {
+ -webkit-transform: translateX(0);
+ transform: translateX(0)
+ }
+ }
+
+ @keyframes slideInLeft {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateX(-850px);
+ transform: translateX(-850px)
+ }
+ to {
+ -webkit-transform: translateX(0);
+ transform: translateX(0)
+ }
+ }
+
+ .slideInLeft {
+ -webkit-animation-name: slideInLeft;
+ animation-name: slideInLeft
+ }
+
+ @-webkit-keyframes slideInRight {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateX(1250px);
+ transform: translateX(1250px)
+ }
+ to {
+ -webkit-transform: translateX(0);
+ transform: translateX(0)
+ }
+ }
+
+ @keyframes slideInRight {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateX(1250px);
+ transform: translateX(1250px)
+ }
+ to {
+ -webkit-transform: translateX(0);
+ transform: translateX(0)
+ }
+ }
+
+ .slideInRight {
+ -webkit-animation-name: slideInRight;
+ animation-name: slideInRight
+ }
+
+ @-webkit-keyframes slideOutLeft {
+ 0% {
+ -webkit-transform: translateX(0);
+ transform: translateX(0)
+ }
+ to {
+ opacity: 0;
+ -webkit-transform: translateX(-250px);
+ transform: translateX(-250px)
+ }
+ }
+
+ @keyframes slideOutLeft {
+ 0% {
+ -webkit-transform: translateX(0);
+ transform: translateX(0)
+ }
+ to {
+ opacity: 0;
+ -webkit-transform: translateX(-350px);
+ transform: translateX(-350px)
+ }
+ }
+
+ .slideOutLeft {
+ -webkit-animation-name: slideOutLeft;
+ animation-name: slideOutLeft
+ }
+
+ @-webkit-keyframes slideOutRight {
+ 0% {
+ -webkit-transform: translateX(0);
+ transform: translateX(0)
+ }
+ to {
+ opacity: 0;
+ -webkit-transform: translateX(350px);
+ transform: translateX(350px)
+ }
+ }
+
+ @keyframes slideOutRight {
+ 0% {
+ -webkit-transform: translateX(0);
+ transform: translateX(0)
+ }
+ to {
+ opacity: 0;
+ -webkit-transform: translateX(350px);
+ transform: translateX(350px)
+ }
+ }
+
+ .slideOutRight {
+ -webkit-animation-name: slideOutRight;
+ animation-name: slideOutRight
+ }
+
+ .at4win {
+ margin: 0 auto;
+ background: #fff;
+ border: 1px solid #ebeced;
+ width: 25pc;
+ box-shadow: 0 0 10px rgba(0, 0, 0, .3);
+ border-radius: 8px;
+ font-family: helvetica neue, helvetica, arial, sans-serif;
+ text-align: left;
+ z-index: 9999
+ }
+
+ .at4win .at4win-header {
+ position: relative;
+ border-bottom: 1px solid #f2f2f2;
+ background: #fff;
+ height: 49px;
+ -webkit-border-top-left-radius: 8px;
+ -webkit-border-top-right-radius: 8px;
+ -moz-border-radius-topleft: 8px;
+ -moz-border-radius-topright: 8px;
+ border-top-left-radius: 8px;
+ border-top-right-radius: 8px;
+ cursor: default
+ }
+
+ .at4win .at4win-header .at-h3,
+ .at4win .at4win-header h3 {
+ height: 49px;
+ line-height: 49px;
+ margin: 0 50px 0 0;
+ padding: 1px 0 0;
+ margin-left: 20px;
+ font-family: helvetica neue, helvetica, arial, sans-serif;
+ font-size: 1pc;
+ font-weight: 700;
+ text-shadow: 0 1px #fff;
+ color: #333
+ }
+
+ .at4win .at4win-header .at-h3 img,
+ .at4win .at4win-header h3 img {
+ display: inline-block;
+ margin-right: 4px
+ }
+
+ .at4win .at4win-header .at4-close {
+ display: block;
+ position: absolute;
+ top: 0;
+ right: 0;
+ background: url("data:image/gif;base64,R0lGODlhFAAUAIABAAAAAP///yH5BAEAAAEALAAAAAAUABQAAAIzBIKpG+YMm5Enpodw1HlCfnkKOIqU1VXk55goVb2hi7Y0q95lfG70uurNaqLgTviyyUoFADs=") no-repeat center center;
+ background-repeat: no-repeat;
+ background-position: center center;
+ border-left: 1px solid #d2d2d1;
+ width: 49px;
+ height: 49px;
+ line-height: 49px;
+ overflow: hidden;
+ text-indent: -9999px;
+ text-shadow: none;
+ cursor: pointer;
+ opacity: .5;
+ border: 0;
+ -webkit-transition: opacity .15s ease-in;
+ transition: opacity .15s ease-in
+ }
+
+ .at4win .at4win-header .at4-close::-moz-focus-inner {
+ border: 0;
+ padding: 0
+ }
+
+ .at4win .at4win-header .at4-close:hover {
+ opacity: 1;
+ background-color: #ebeced;
+ border-top-right-radius: 7px
+ }
+
+ .at4win .at4win-content {
+ position: relative;
+ background: #fff;
+ min-height: 220px
+ }
+
+ #at4win-footer {
+ position: relative;
+ background: #fff;
+ border-top: 1px solid #d2d2d1;
+ -webkit-border-bottom-right-radius: 8px;
+ -webkit-border-bottom-left-radius: 8px;
+ -moz-border-radius-bottomright: 8px;
+ -moz-border-radius-bottomleft: 8px;
+ border-bottom-right-radius: 8px;
+ border-bottom-left-radius: 8px;
+ height: 11px;
+ line-height: 11px;
+ padding: 5px 20px;
+ font-size: 11px;
+ color: #666;
+ -ms-box-sizing: content-box;
+ -o-box-sizing: content-box;
+ box-sizing: content-box
+ }
+
+ #at4win-footer a {
+ margin-right: 10px;
+ text-decoration: none;
+ color: #666
+ }
+
+ #at4win-footer a:hover {
+ text-decoration: none;
+ color: #000
+ }
+
+ #at4win-footer a.at4-logo {
+ top: 5px;
+ padding-left: 10px
+ }
+
+ #at4win-footer a.at4-privacy {
+ position: absolute;
+ top: 5px;
+ right: 10px;
+ padding-right: 14px
+ }
+
+ .at4win.ats-dark {
+ border-color: #555;
+ box-shadow: none
+ }
+
+ .at4win.ats-dark .at4win-header {
+ background: #1b1b1b;
+ -webkit-border-top-left-radius: 6px;
+ -webkit-border-top-right-radius: 6px;
+ -moz-border-radius-topleft: 6px;
+ -moz-border-radius-topright: 6px;
+ border-top-left-radius: 6px;
+ border-top-right-radius: 6px
+ }
+
+ .at4win.ats-dark .at4win-header .at4-close {
+ background: url("data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNui8sowAAAAWdEVYdENyZWF0aW9uIFRpbWUAMTEvMTMvMTKswDp5AAAAd0lEQVQ4jb2VQRLAIAgDE///Z3qqY1FAhalHMCsCIkVEAIAkkVgvp2lDBgYAnAyHkWotLccNrEd4A7X2TqIdqLfnWBAdaF5rJdyJfjtPH5GT37CaGhoVq3nOm/XflUuLUto2pY1d+vRKh0Pp+MrAVtDe2JkvYNQ+jVSEEFmOkggAAAAASUVORK5CYII=") no-repeat center center;
+ background-image: url(//s7.addthis.com/static/fb08f6d50887bd0caacc86a62bcdcf68.svg), none;
+ border-color: #333
+ }
+
+ .at4win.ats-dark .at4win-header .at4-close:hover {
+ background-color: #000
+ }
+
+ .at4win.ats-dark .at4win-header .at-h3,
+ .at4win.ats-dark .at4win-header h3 {
+ color: #fff;
+ text-shadow: 0 1px #000
+ }
+
+ .at4win.ats-gray .at4win-header {
+ background: #fff;
+ border-color: #d2d2d1;
+ -webkit-border-top-left-radius: 6px;
+ -webkit-border-top-right-radius: 6px;
+ -moz-border-radius-topleft: 6px;
+ -moz-border-radius-topright: 6px;
+ border-top-left-radius: 6px;
+ border-top-right-radius: 6px
+ }
+
+ .at4win.ats-gray .at4win-header a.at4-close {
+ border-color: #d2d2d1
+ }
+
+ .at4win.ats-gray .at4win-header a.at4-close:hover {
+ background-color: #ebeced
+ }
+
+ .at4win.ats-gray #at4win-footer {
+ border-color: #ebeced
+ }
+
+ .at4win .clear {
+ clear: both
+ }
+
+ .at4win ::selection {
+ background: #fe6d4c;
+ color: #fff
+ }
+
+ .at4win ::-moz-selection {
+ background: #fe6d4c;
+ color: #fff
+ }
+
+ .at4-icon-fw {
+ display: inline-block;
+ background-repeat: no-repeat;
+ background-position: 0 0;
+ margin: 0 5px 0 0;
+ overflow: hidden;
+ text-indent: -9999em;
+ cursor: pointer;
+ padding: 0;
+ border-radius: 50%;
+ -moz-border-radius: 50%;
+ -webkit-border-radius: 50%
+ }
+
+ .at44-follow-container a.aticon {
+ height: 2pc;
+ margin: 0 5px 5px 0
+ }
+
+ .at44-follow-container .at4-icon-fw {
+ margin: 0
+ }
+ </style><iframe tabindex="-1" style="display: none;" src="//widget.perfectmarket.com/opt/tboptevent.html?v=2&amp;a=u&amp;d=%7B%22stp%22%3A%7B%22a%22%3A1%7D%2C%22disquscmt%22%3A%7B%22a%22%3A1%7D%7D" width="0" height="0"></iframe><iframe tabindex="-1" style="display: none;" src="//widget.perfectmarket.com/opt/tboptevent.html?v=2&amp;a=u&amp;d=%7B%22stp%22%3A%7B%22v%22%3A1%7D%7D" width="0" height="0"></iframe></head>
+
+<body class="author-4326 category-tech single single-post postid-5765662 js">
+ <div id="fb-root"></div>
+ <div id="ds_default_anchor"></div>
+
+ <div id="GlobalW" class="hfeed site">
+ <script type="text/javascript">
+ document.body.className = isc_js_bc;
+ (function(i, s, o, g, r, a, m) {
+ i["GoogleAnalyticsObject"] = r;
+ i[r] = i[r] || function() {
+ (i[r].q = i[r].q || []).push(arguments)
+ }, i[r].l = 1 * new Date;
+ a = s.createElement(o), m = s.getElementsByTagName(o)[0];
+ a.async = 1;
+ a.src = g;
+ m.parentNode.insertBefore(a, m)
+ })(window, document, "script", "//www.google-analytics.com/analytics.js", "ga");
+ ga("create", "UA-715222-1", {
+ siteSpeedSampleRate: 5,
+ cookieDomain: "breitbart.com"
+ });
+ ga('set', {
+ 'dimension1': 'Lucas Nolan',
+ 'dimension2': 'tech ',
+ 'dimension4': 'donald-trump facebook fact-check fake-news snopes ',
+ 'metric1': window.isc_metric1 || 3,
+ 'metric2': window.isc_metric2 || 3
+ });
+ ga('send', 'pageview');
+ var iscsl = [],
+ google_ad_client = "ca-pub-9229289037503472",
+ googletag = window.googletag || {};
+ googletag.cmd = window.googletag.cmd || [];
+ googletag.cmd.push(function() {
+ if (!isc_is_mobile) {
+ iscsl.push(googletag.defineSlot("/1003622/Breitbart.ROS.Top.Leader", [728, 90], "desktop-ROS-Top-Leader").addService(googletag.pubads()));
+ iscsl.push(googletag.defineSlot("/1003622/Breitbart.ROS.Rail1", [
+ [300, 250],
+ [300, 600]
+ ], "desktop-ROS-Rail1").addService(googletag.pubads()));
+ iscsl.push(googletag.defineSlot("/1003622/Breitbart.ROS.Rail2", [300, 250], "desktop-ROS-Rail2").addService(googletag.pubads()));
+ iscsl.push(googletag.defineSlot("/1003622/Breitbart.ROS.Rail3", [300, 250], "desktop-ROS-Rail3").addService(googletag.pubads()));
+ iscsl.push(googletag.defineSlot("/1003622/Breitbart.ROS.Rail4", [300, 250], "desktop-ROS-Rail4").addService(googletag.pubads()));
+ iscsl.push(googletag.defineSlot("/1003622/Breitbart.ROS.1X1", [1, 1], "ROS-1x1-Pixel").addService(googletag.pubads()));
+ } else {
+ iscsl.push(googletag.defineSlot("/1003622/Breitbart.Mob.ROS.Header", [320, 50], "mobile-ROS-header").addService(googletag.pubads()));
+ iscsl.push(googletag.defineSlot("/1003622/Breitbart.Mob.ROS.Body1", [
+ [300, 250],
+ [320, 480]
+ ], "mobile-ROS-body1").addService(googletag.pubads()));
+ iscsl.push(googletag.defineSlot("/1003622/Breitbart.Mob.ROS.Body2", [
+ [300, 250],
+ [320, 480]
+ ], "mobile-ROS-body2").addService(googletag.pubads()));
+ iscsl.push(googletag.defineSlot("/1003622/Breitbart.Mob.ROS.Body3", [
+ [300, 250],
+ [320, 480]
+ ], "mobile-ROS-body3").addService(googletag.pubads()));
+ iscsl.push(googletag.defineSlot("/1003622/Breitbart.Mob.ROS.Body4", [
+ [300, 250],
+ [320, 480]
+ ], "mobile-ROS-body4").addService(googletag.pubads()));
+ iscsl.push(googletag.defineSlot("/1003622/Breitbart.ROS.1X1", [1, 1], "ROS-1x1-Pixel").addService(googletag.pubads()));
+ }
+ googletag.pubads().enableSingleRequest();
+ googletag.enableServices();
+ for (var x = 0; x & lt; iscsl.length; x++) googletag.display(iscsl[x].getSlotElementId());
+ iscsl = null;
+ });
+ var isc_pcats = ["tech"]
+ </script>
+ <a class="H" accesskey="2" rel="nofollow" href="#ContentW">Skip to content</a>
+ <div class="ad Hmobi">
+ <div id="desktop-ROS-Top-Leader" data-google-query-id="CKf61ZbP2tECFQQ4lgodH5oHJw">
+ <div id="google_ads_iframe_/1003622/Breitbart.ROS.Top.Leader_0__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/1003622/Breitbart.ROS.Top.Leader_0" title="3rd party ad content" name="google_ads_iframe_/1003622/Breitbart.ROS.Top.Leader_0" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" srcdoc="" width="728" height="90" frameborder="0"></iframe></div><iframe id="google_ads_iframe_/1003622/Breitbart.ROS.Top.Leader_0__hidden__" title="" name="google_ads_iframe_/1003622/Breitbart.ROS.Top.Leader_0__hidden__" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom; visibility: hidden; display: none;" srcdoc="" width="0" height="0" frameborder="0"></iframe></div>
+ <div class="pubnation" data-target="desktop-ROS-Top-Leader" style="">report this ad</div>
+ <!--Breitbart.ROS.Top.Leader-->
+ </div>
+ <header id="headerHeadW">
+ <div id="HeadW">
+ <div id="HWIC">
+ <div id="HWI">
+ <a rel="index" class="logo" accesskey="1" href="http://www.breitbart.com/" title="Breitbart News Network"></a>
+ <div class="mobile menu-toggle"><span></span><span></span><span></span></div>
+ <ul id="HTlinks">
+ <li><a id="BBLogin" title="Login to Breitbart News Network" rel="nofollow" href="#">Login</a></li>
+ <li><a id="BBRegister" title="Register for Breitbart News Network" rel="nofollow" href="#">Register</a></li>
+ </ul>
+ <ul id="BBLoggedIn" class="H">
+ <li><a rel="nofollow" href="#"><span></span><img id="BBProfileP" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAbABsDASIAAhEBAxEB/8QAGAABAQEBAQAAAAAAAAAAAAAABwgGAwX/xAAsEAACAgEDAgQEBwAAAAAAAAABAgMEAAUGEQdREiFBcVKBkaETFCIyYbHB/8QAFQEBAQAAAAAAAAAAAAAAAAAABgX/xAAoEQABAwMBBwUBAAAAAAAAAAABAgMEAAURcQYSMUFRgfAhIjJhkcH/2gAMAwEAAhEDEQA/AOun1Jr92CpVTxzzOERe5OLNPpPRFMC7qFlrRHm0QUID7EEn6jDrZGow6TurTrlrygjchz8IZSvPy55+WUdG6SRq8bK6MOVZTyCO4wlY4UeQhSnRkg8Pqne0lxlRHEIZO6kjOep6dv7U47u27Z21qhqWGEsbDxxSgcB19vQ/xnh4i9Z9UrXNWp067rI9RX/FZfMBmI/T7jw/fDrI09ptmQttr4g+flX7Y+7IiIdeGFEeHuPWtf0+2g25bUkth2i0+AgOy/udvhH+n2742abo1DTaH5KnXCVuOChYtz9Tmf6TIqbIqMqgF5JGY9z4yP6AzY4vtMJplhLgHuUMk68qBX24vSJS2icJScAac9aNN79OqklOa7oMRhsxgu1cElZB68dj9sHsqzJj3Aixa9qUcahUWzKqgegDnI1+htslLrYxniKQ7MXB6QlbLxzu4wTx0r//2Q==" alt="" width="27" height="27" /></a>
+ <ul class="sub-menu">
+ <li><a id="BBLogout" title="Logout" rel="nofollow" href="#">LOGOUT</a></li>
+ <li><a id="BBEditProfile" title="Edit your profile" rel="nofollow" href="#">EDIT PROFILE</a></li>
+ </ul>
+ </li>
+ </ul>
+
+ <div class="mobile mobile-search">
+ <form class="search-form" method="get" action="/search/"><label for="searchiscq1"></label><input placeholder="SEARCH" name="s" id="searchiscq1" value="" type="text" /><input value="search" type="submit" /></form>
+ </div>
+
+ <nav>
+
+ <ul id="NavP" class="menu">
+ <li class="category-big-government"><a href="/big-government/">Big Government</a></li>
+ <li class="category-big-journalism"><a href="/big-journalism/">Big Journalism</a></li>
+ <li class="category-big-hollywood"><a href="/big-hollywood/">Big Hollywood</a></li>
+ <li class="category-national-security"><a href="/national-security/">National Security</a></li>
+ <li class="category-tech"><a href="/tech/">Tech</a></li>
+ <li class="category-video"><a href="/video/">Video</a></li>
+ <li class="category-sports"><a href="/sports/">Sports</a></li>
+ <li class="post-type-archive-wire"><a href="/news/">The Wires</a></li>
+ </ul>
+ <!--NavP-->
+ <!--NavP-->
+
+
+ <ul id="NavS" class="menu">
+ <li class="category-london"><a href="/london/">Breitbart London</a></li>
+ <li class="menu-breitbart-jerusalem"><a href="/jerusalem/">Breitbart Jerusalem</a></li>
+ <li class="category-texas"><a href="/texas/">Breitbart Texas</a></li>
+ <li class="category-california"><a href="/california/">Breitbart California</a></li>
+ <li class="bbstorelink"><a title="The Breitbart Store" target="_blank" href="https://store.breitbart.com/">STORE</a></li>
+ </ul>
+ <!--NavS-->
+ <!--NavS-->
+
+
+ <ul id="HTsocial">
+ <li><a class="fb" href="https://www.facebook.com/Breitbart">Facebook</a></li>
+ <li><a class="tw" href="https://twitter.com/#%21/BreitbartNews">Twitter</a></li>
+ <li><a class="rs" href="http://feeds.feedburner.com/breitbart">RSS</a></li>
+ </ul>
+ </nav>
+ <form class="search-form" method="get" action="/search/"><label for="searchiscq"></label><input placeholder="SEARCH" name="s" id="searchiscq" value="" type="text" /><input value="search" type="submit" /></form>
+ </div>
+ <!--HWI-->
+ </div>
+ <!--HWIC-->
+ <div class="ad if-mobile">
+ <div id="mobile-ROS-header"></div>
+ </div>
+ <div id="HeadWB"></div>
+ </div>
+ <!--HeadW-->
+ </header>
+ <div id="ContentW" class="site-content">
+
+ <div id="BBStoreLead" class="">
+ <div id="BBStoreFullDesk" class="">
+ <a id="ldr_logo" href="https://store.breitbart.com" rel="nofollow" target="_blank"></a>
+ <a id="ldr_hoodie" href="https://store.breitbart.com/collections/mens/products/b-strong-zip-hoodie" rel="nofollow" title="B STRONG ZIP HOODIE" target="_blank"></a>
+ <a id="ldr_shirt" href="https://store.breitbart.com/collections/mens/products/iconic-t-shirt" rel="nofollow" title="ICONIC T-SHIRT" target="_blank"></a>
+ <a id="ldr_hat" href="https://store.breitbart.com/collections/hats/products/breitbart-moving-company-hat" rel="nofollow" title="BREITBART MOVING COMPANY HAT" target="_blank"></a>
+ <div class="bbs_clr"></div>
+ </div>
+ <div id="BBStoreMinDesk" class="bbs_hide_mini">
+ <a id="bbs_mini_logo" href="https://store.breitbart.com" rel="nofollow" target="_blank"></a>
+ <a id="bbs_now_open" href="https://store.breitbart.com/collections" rel="nofollow" target="_blank"></a>
+ <div class="bbs_clr"></div>
+ </div>
+ <div class="bbs_mobile_store_ldr">
+ <a href="https://store.breitbart.com/collections/all-products" rel="nofollow" target="_blank"><img src="/t/assets/i/store/dd/bbs_fullstore-takeover-mobile.gif" srcset="/t/assets/i/store/dd/[email protected] 2x" alt="" /></a>
+ </div>
+ <a id="bbs_shop_now" class="bbs_mini" href="https://store.breitbart.com/collections/all-products" rel="nofollow" target="_blank">SHOP NOW &gt;</a>
+ <span id="bbs_store_toggle" class="bbs_store_toggle"></span>
+ </div>
+
+ <div id="ContainerW">
+ <div id="fb-root" class=" fb_reset">
+ <div style="position: absolute; top: -10000px; height: 0px; width: 0px;">
+ <div><iframe name="fb_xdm_frame_http" allowtransparency="true" allowfullscreen="true" scrolling="no" id="fb_xdm_frame_http" aria-hidden="true" title="Facebook Cross Domain Communication Frame" tabindex="-1" style="border: medium none;" src="http://staticxx.facebook.com/connect/xd_arbiter/r/YGoENyUbMBG.js?version=42#channel=f196bdf39e56d5a&amp;origin=http%3A%2F%2Fwww.breitbart.com" frameborder="0"></iframe><iframe name="fb_xdm_frame_https" allowtransparency="true" allowfullscreen="true" scrolling="no" id="fb_xdm_frame_https" aria-hidden="true" title="Facebook Cross Domain Communication Frame" tabindex="-1" style="border: medium none;" src="https://staticxx.facebook.com/connect/xd_arbiter/r/YGoENyUbMBG.js?version=42#channel=f196bdf39e56d5a&amp;origin=http%3A%2F%2Fwww.breitbart.com" frameborder="0"></iframe></div>
+ </div>
+ <div style="position: absolute; top: -10000px; height: 0px; width: 0px;">
+ <div><iframe name="f2980c4082c1986" allowtransparency="true" allowfullscreen="true" scrolling="no" style="display: none;" src="https://www.facebook.com/connect/ping?client_id=1243316582352556&amp;domain=www.breitbart.com&amp;origin=1&amp;redirect_uri=http%3A%2F%2Fstaticxx.facebook.com%2Fconnect%2Fxd_arbiter%2Fr%2FYGoENyUbMBG.js%3Fversion%3D42%23cb%3Df24489d566ff5d8%26domain%3Dwww.breitbart.com%26origin%3Dhttp%253A%252F%252Fwww.breitbart.com%252Ff196bdf39e56d5a%26relation%3Dparent&amp;response_type=token%2Csigned_request%2Ccode&amp;sdk=joey" frameborder="0"></iframe></div>
+ </div>
+ </div>
+ <div id="MainW">
+ <article id="post-5765662" class="the-article post-5765662 post type-post has-post-thumbnail category-tech" itemscope="" itemtype="http://schema.org/BlogPosting">
+ <header class="articleheader">
+ <h1 itemprop="headline">'Neutral' Snopes Fact-Checker David Emery: 'Are There Any Un-Angry Trump Supporters?'</h1>
+ <div id="bbvb" title="http://www.breitbart.com/tech/2016/12/22/neutral-snopes-fact-checker-david-emery-un-angry-trump-supporters/">
+ <div class="addthis_toolbox addthis_default_style">
+ <div class="adhold5 adh1"><a class="addthis_button_facebook at300b" target="_blank" title="Share this page on Facebook" href="http://api.addthis.com/oexchange/0.8/forward/facebook/offer?url=http%3A%2F%2Fwww.breitbart.com%2Ftech%2F2016%2F12%2F22%2Fneutral-snopes-fact-checker-david-emery-un-angry-trump-supporters%2F&amp;pubid=ra-536db77a775cf072&amp;text=%E2%80%98Neutral%E2%80%99+Snopes+Fact-Checker+David+Emery%3A+%E2%80%98Are+There+Any+Un-Angry+Trump+Supporters%3F%E2%80%99" rel="nofollow"><span class="acz5">6366</span></a></div>
+ <div class="adhold5 adh2"><a class="addthis_button_email at300b" title="Share via email" rel="nofollow" target="_blank" href="#"><span class="at-icon-wrapper" style="background-color: rgb(132, 132, 132); line-height: 16px; height: 16px; width: 16px;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32" class="at-icon at-icon-email" style="width: 16px; height: 16px;" title="Email" alt="Email"><g><g fill-rule="evenodd"/><path d="M27 22.757c0 1.24-.988 2.243-2.19 2.243H7.19C5.98 25 5 23.994 5 22.757V13.67c0-.556.39-.773.855-.496l8.78 5.238c.782.467 1.95.467 2.73 0l8.78-5.238c.472-.28.855-.063.855.495v9.087z"/><path d="M27 9.243C27 8.006 26.02 7 24.81 7H7.19C5.988 7 5 8.004 5 9.243v.465c0 .554.385 1.232.857 1.514l9.61 5.733c.267.16.8.16 1.067 0l9.61-5.733c.473-.283.856-.96.856-1.514v-.465z"/></g></svg></span></a></div>
+ <div class="adhold5 adh3"><a class="addthis_button_google_plusone_share at300b" target="_blank" title="Share Google+" href="http://api.addthis.com/oexchange/0.8/forward/google_plusone_share/offer?url=http%3A%2F%2Fwww.breitbart.com%2Ftech%2F2016%2F12%2F22%2Fneutral-snopes-fact-checker-david-emery-un-angry-trump-supporters%2F&amp;pubid=ra-536db77a775cf072&amp;text=%E2%80%98Neutral%E2%80%99+Snopes+Fact-Checker+David+Emery%3A+%E2%80%98Are+There+Any+Un-Angry+Trump+Supporters%3F%E2%80%99" rel="nofollow"><span class="acz5">12</span></a></div>
+ <div class="adhold6 adh4"><a class="addthis_button_twitter at300b" target="_blank" tw:count="none" title="Share on twitter" href="http://api.addthis.com/oexchange/0.8/forward/twitter/offer?url=http%3A%2F%2Fwww.breitbart.com%2Ftech%2F2016%2F12%2F22%2Fneutral-snopes-fact-checker-david-emery-un-angry-trump-supporters%2F&amp;pubid=ra-536db77a775cf072&amp;text=%E2%80%98Neutral%E2%80%99+Snopes+Fact-Checker+David+Emery%3A+%E2%80%98Are+There+Any+Un-Angry+Trump+Supporters%3F%E2%80%99&amp;shortener=bitly" rel="nofollow"><span class="at-icon-wrapper" style="background-color: rgb(29, 161, 242); line-height: 16px; height: 16px; width: 16px;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32" class="at-icon at-icon-twitter" style="width: 16px; height: 16px;" title="Twitter" alt="Twitter"><g><path d="M27.996 10.116c-.81.36-1.68.602-2.592.71a4.526 4.526 0 0 0 1.984-2.496 9.037 9.037 0 0 1-2.866 1.095 4.513 4.513 0 0 0-7.69 4.116 12.81 12.81 0 0 1-9.3-4.715 4.49 4.49 0 0 0-.612 2.27 4.51 4.51 0 0 0 2.008 3.755 4.495 4.495 0 0 1-2.044-.564v.057a4.515 4.515 0 0 0 3.62 4.425 4.52 4.52 0 0 1-2.04.077 4.517 4.517 0 0 0 4.217 3.134 9.055 9.055 0 0 1-5.604 1.93A9.18 9.18 0 0 1 6 23.85a12.773 12.773 0 0 0 6.918 2.027c8.3 0 12.84-6.876 12.84-12.84 0-.195-.005-.39-.014-.583a9.172 9.172 0 0 0 2.252-2.336" fill-rule="evenodd"/></g></svg></span></a></div>
+ <div class="atclear"></div>
+ </div>
+ </div>
+ <!--bbvb-->
+ <figure class="figurearticlefeatured">
+ <div class="featured-container"><img itemprop="image" src="http://media.breitbart.com/media/2016/11/GettyImages-621866810-640x480.jpg" class="attachment-isc-bbn-full size-isc-bbn-full wp-post-image" alt="Supporters of Republican presidential nominee Donald Trump cheer during election night at the New York Hilton Midtown in New York on November 9, 2016. / AFP / JIM WATSON (Photo credit should read JIM WATSON/AFP/Getty Images)" width="640" height="480" />
+ <div class="attribution">JIM WATSON/AFP/Getty Images</div>
+ </div>
+ </figure>
+ <p class="byline"><span class="by-author"><span class="by">by</span> <a class="byauthor" href="http://www.breitbart.com/author/lnolan/">Lucas Nolan</a></span><span class="bydate">22 Dec 2016</span><a rel="nofollow" class="bycount" href="http://www.breitbart.com/tech/2016/12/22/neutral-snopes-fact-checker-david-emery-un-angry-trump-supporters/#disqus_thread" data-dsqi="5765662">651</a></p> <time class="op-published H" datetime="2016-12-22T10:43:37Z">22 Dec, 2016</time>
+ <time class="op-modified H" datetime="2016-12-22T18:59:12Z">22 Dec, 2016</time>
+ </header>
+ <div class="entry-content">
+ <div class="ndn_embed ndn_embedding ndn_embedContainer ndn-widget-embed-1 ndn_embedded" id="inform-player-1" data-config-distributor-id="90085" style="width:100%" data-config-height="9/16w" data-config-pb="7" data-config-float="bottom right"></div>
+ <script type="text/javascript">
+ var _ndnq = _ndnq || [];
+ _ndnq.push(["embed"]);
+ </script>
+ <div class="desktop" id="EmailOptin">
+ <p class="sh2"><span>SIGN UP</span> FOR OUR NEWSLETTER</p>
+ <div class="gform_wrapper">
+ <a name="gf_1" class="gform_anchor"></a>
+ <form method="post" action="/newsletter-signup/">
+ <div class="gform_body">
+ <ul class="gform_fields top_label description_below">
+ <li class="gfield"><input name="input_1" value="" placeholder="email address" type="text" /></li>
+ </ul><input value="Submit" onclick="if(window['gf_submitting_1']){return false;} window['gf_submitting_1']=true;" type="submit" /></div>
+ <div class="H"><input name="is_submit_1" value="1" type="hidden" /><input name="gform_submit" value="1" type="hidden" /><input name="gform_target_page_number_1" value="0" type="hidden" /><input name="gform_source_page_number_1" value="1" type="hidden" /></div>
+ </form>
+ </div>
+ </div>
+ <h2><span style="font-weight: 400;">Snopes fact checker and staff writer David Emery posted to Twitter asking if there were “any un-angry Trump supporters?”</span></h2>
+ <p><span style="font-weight: 400;">Emery, a writer for partisan “fact-checking” website Snopes.com which soon will be in charge of labelling </span><a href="http://www.breitbart.com/tech/2016/12/15/facebook-introduce-warning-labels-stories-deemed-fake-news/"><span style="font-weight: 400;">“fake news”</span></a><span style="font-weight: 400;"> alongside ABC News and Politifact, retweeted an article by Vulture magazine relating to the </span><a href="http://www.breitbart.com/big-hollywood/2016/11/19/boycotthamilton-trends-hamilton-cast-members-harass-mike-pence/"><span style="font-weight: 400;">protests</span></a><span style="font-weight: 400;"> of the <em>Hamilton</em> musical following the decision by the cast of the show to make a </span><a href="http://www.breitbart.com/big-hollywood/2016/11/19/tolerance-hamilton-cast-lectures-mike-pence-broadway-stage/"><span style="font-weight: 400;">public announcement</span></a><span style="font-weight: 400;"> to Vice-president elect Mike Pence while he watched the performance with his family.</span></p>
+ <div class="mobile" id="EmailOptinM">
+ <p class="sh2"><span>SIGN UP</span> FOR OUR NEWSLETTER</p>
+ <div class="gform_wrapper">
+ <a name="gf_1" class="gform_anchor"></a>
+ <form method="post" action="/newsletter-signup/">
+ <div class="gform_body">
+ <ul class="gform_fields top_label description_below">
+ <li class="gfield"><input name="input_1" value="" placeholder="email address" type="text" /></li>
+ </ul><input value="Submit" onclick="if(window['gf_submitting_1']){return false;} window['gf_submitting_1']=true;" type="submit" /></div>
+ <div class="H"><input name="is_submit_1" value="1" type="hidden" /><input name="gform_submit" value="1" type="hidden" /><input name="gform_target_page_number_1" value="0" type="hidden" /><input name="gform_source_page_number_1" value="1" type="hidden" /></div>
+ </form>
+ </div>
+ </div>
+ <p><span style="font-weight: 400;">The tweet from Vulture magazine reads, “</span><a href="https://twitter.com/hashtag/Hamilton?src=hash" target="_blank" rel="noopener" class=" x5l"><span style="font-weight: 400;">#Hamilton</span></a><span style="font-weight: 400;"> Chicago show interrupted by angry Trump supporter.” Emery retweeted the story, saying, “Are there un-angry Trump supporters?”</span></p>
+ <iframe id="twitter-widget-0" scrolling="no" allowtransparency="true" allowfullscreen="true" class="twitter-tweet twitter-tweet-rendered" style="position: static; visibility: visible; display: block; width: 550px; height: 164.55px; padding: 0px; border: medium none; max-width: 100%; min-width: 220px; margin-top: 10px; margin-bottom: 10px;" data-tweet-id="800384752746254337" title="Twitter Tweet" frameborder="0"></iframe>
+ <p>
+ <script async="" src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
+ </p>
+
+ <div class="ad adinbody if-mobile">
+ <div class="inbodyad" id="mobile-ROS-body1"></div>
+ </div>
+
+
+ <p><span style="font-weight: 400;">This isn’t the first time the Snopes.com writer has expressed anti-Trump sentiment on his Twitter page. In another tweet in which Emery links to an article that falsely attributes a quote to President-elect Trump, Emery states, “Incredibly, some people actually think they have to put words in Trump’s mouth to make him look bad.”</span></p>
+ <iframe id="twitter-widget-1" scrolling="no" allowtransparency="true" allowfullscreen="true" class="twitter-tweet twitter-tweet-rendered" style="position: static; visibility: visible; display: block; width: 550px; height: 569.15px; padding: 0px; border: medium none; max-width: 100%; min-width: 220px; margin-top: 10px; margin-bottom: 10px;" data-tweet-id="769239021021036544" title="Twitter Tweet" frameborder="0"></iframe>
+ <p>
+ <script async="" src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
+ </p>
+ <p><span style="font-weight: 400;">Emery also retweeted an article by <em>New York</em> magazine that claimed President-elect Trump relied on lies to win during his campaign and that we now lived in a “post-truth” society. “Before long we’ll all have forgotten what it was like to live in the same universe; or maybe we already have,” Emery tweeted.</span></p>
+
+ <div class="ad adinbody if-mobile">
+ <div class="inbodyad" id="mobile-ROS-body2"></div>
+ </div>
+
+
+ <iframe id="twitter-widget-2" scrolling="no" allowtransparency="true" allowfullscreen="true" class="twitter-tweet twitter-tweet-rendered" style="position: static; visibility: visible; display: block; width: 550px; height: 349.717px; padding: 0px; border: medium none; max-width: 100%; min-width: 220px; margin-top: 10px; margin-bottom: 10px;" data-tweet-id="807998073116835840" title="Twitter Tweet" frameborder="0"></iframe>
+ <p>
+ <script async="" src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
+ </p>
+ <p><span style="font-weight: 400;">Facebook believe that Emery, along with other Snopes writers, ABC News, and </span><a href="http://www.breitbart.com/tech/2016/12/16/flashback-weekly-standard-data-shows-politifact-has-it-out-for-republicans/"><span style="font-weight: 400;">Politifact</span></a><span style="font-weight: 400;"> are impartial enough to label and silence what they believe to be “fake news” on social media. </span></p>
+ <p><i><span style="font-weight: 400;">Lucas Nolan is a reporter for Breitbart Tech covering issues of free speech and online censorship. Follow him on Twitter </span></i><a href="http://twitter.com/lucasnolan_" target="_blank" rel="noopener" class=" x5l"><i><span style="font-weight: 400;">@LucasNolan_</span></i></a><i><span style="font-weight: 400;"> or email him at </span></i><a href="http://www.breitbart.com/wp-admin/blank"><i><span style="font-weight: 400;">[email protected]</span></i></a></p>
+
+ <div class="ad adinbody if-mobile">
+ <div class="inbodyad" id="mobile-ROS-body3"></div>
+ </div>
+
+
+ </div>
+ <footer class="articlefooter">
+ <aside>
+ <h3>Read More Stories About:</h3>
+ <p><a href="/tech/">Tech</a>, <a href="/tag/donald-trump/">Donald Trump</a>, <a href="/tag/facebook/">facebook</a>, <a href="/tag/fact-check/">Fact Check</a>, <a href="/tag/fake-news/">fake news</a>, <a href="/tag/snopes/">Snopes</a></p>
+ </aside>
+ <div id="bbbtmshare">
+ <div class="addthis_toolbox addthis_default_style"><a class="addthis_button_twitter at300b" target="_blank" tw:count="none" title="Share on twitter" href="http://api.addthis.com/oexchange/0.8/forward/twitter/offer?url=http%3A%2F%2Fwww.breitbart.com%2Ftech%2F2016%2F12%2F22%2Fneutral-snopes-fact-checker-david-emery-un-angry-trump-supporters%2F&amp;pubid=ra-536db77a775cf072&amp;text=%E2%80%98Neutral%E2%80%99+Snopes+Fact-Checker+David+Emery%3A+%E2%80%98Are+There+Any+Un-Angry+Trump+Supporters%3F%E2%80%99&amp;shortener=bitly" rel="nofollow"><span class="bbbtmspan"></span></a><a class="addthis_button_facebook at300b" target="_blank" title="Share this page on Facebook" href="http://api.addthis.com/oexchange/0.8/forward/facebook/offer?url=http%3A%2F%2Fwww.breitbart.com%2Ftech%2F2016%2F12%2F22%2Fneutral-snopes-fact-checker-david-emery-un-angry-trump-supporters%2F&amp;pubid=ra-536db77a775cf072&amp;text=%E2%80%98Neutral%E2%80%99+Snopes+Fact-Checker+David+Emery%3A+%E2%80%98Are+There+Any+Un-Angry+Trump+Supporters%3F%E2%80%99" rel="nofollow"><span class="bbbtmspan"></span></a>
+ <div class="atclear"></div>
+ </div>
+ </div>
+ <!--bbbtmshare-->
+ </footer>
+ </article>
+
+ <div class="pubnation" data-target="taboola-bottom-main-column-mix" style="text-align: right !important; width: 100%;">report this ad</div>
+ <div id="taboola-bottom-main-column-mix" class=" trc_related_container trc_spotlight_widget trc_elastic trc_elastic_trc_63835 " data-placement-name="Bottom Main Column">
+ <div class="trc_rbox_container" style="display: block;">
+ <div>
+ <div id="trc_wrapper_63835" class="trc_rbox thumbs-2r trc-content-sponsored " style="overflow: hidden; display: block;">
+ <div id="trc_header_63835" class="trc_rbox_header trc_rbox_border_elm">
+ <div class="trc_header_ext">
+ <div class="logoDiv link-adc "><a class="trc_desktop_adc_link trc_attribution_position_top" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=breitbartcom&amp;utm_medium=referral&amp;utm_content=thumbs-2r:Bottom%20Main%20Column:" target="_blank"><span class="trc_adc_wrapper"><span class="trc_adc_s_logo"></span> </span><span class="trc_logos_v_align"> </span></a><a class="trc_mobile_adc_link trc_attribution_position_top" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=breitbartcom&amp;utm_medium=referral&amp;utm_content=thumbs-2r:Bottom%20Main%20Column:" target="_blank"><span class="trc_adc_wrapper"><span class="trc_adc_s_logo"></span> </span><span class="trc_logos_v_align"> </span></a></div>
+ <div class="logoDiv link-attribution "><a class="trc_desktop_attribution_link trc_attribution_position_top" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=breitbartcom&amp;utm_medium=referral&amp;utm_content=thumbs-2r:Bottom%20Main%20Column:" target="_blank"><span>by Taboola</span><span class="trc_logos_v_align"> </span></a><a class="trc_mobile_attribution_link trc_attribution_position_top" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=breitbartcom&amp;utm_medium=referral&amp;utm_content=thumbs-2r:Bottom%20Main%20Column:" target="_blank"><span>by Taboola</span><span class="trc_logos_v_align"> </span></a></div>
+ <div class="logoDiv link-disclosure attribution-disclosure-link-sponsored"><a class="trc_desktop_disclosure_link trc_attribution_position_top" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=breitbartcom&amp;utm_medium=referral&amp;utm_content=thumbs-2r:Bottom%20Main%20Column:" target="_blank"><span>Sponsored Links</span><span class="trc_logos_v_align"> </span></a><a class="trc_mobile_disclosure_link trc_attribution_position_top" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=breitbartcom&amp;utm_medium=referral&amp;utm_content=thumbs-2r:Bottom%20Main%20Column:" target="_blank"><span>Sponsored Links</span><span class="trc_logos_v_align"> </span></a></div>
+ <div class="logoDiv link-disclosure attribution-disclosure-link-hybrid"><a class="trc_desktop_disclosure_link trc_attribution_position_top" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=breitbartcom&amp;utm_medium=referral&amp;utm_content=thumbs-2r:Bottom%20Main%20Column:" target="_blank"><span>Promoted Links</span><span class="trc_logos_v_align"> </span></a><a class="trc_mobile_disclosure_link trc_attribution_position_top" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=breitbartcom&amp;utm_medium=referral&amp;utm_content=thumbs-2r:Bottom%20Main%20Column:" target="_blank"><span>Promoted Links</span><span class="trc_logos_v_align"> </span></a></div>
+ </div><span class="trc_rbox_header_span">We Recommend</span></div>
+ <div id="outer_63835" class="trc_rbox_outer">
+ <div id="rbox-t2m" class="trc_rbox_div trc_rbox_border_elm" style="height: 717.407px;">
+ <div id="internal_trc_63835">
+ <div data-item-id="~~V1~~6328524277198470492~~CV7IK7S-dOs2O5F8EEjfGm3dVppf3Hngoq9scqIJMIcSO_fFkG-bpaW2-qyqBDD6lUWq59D5WPM2aIVaKl0FbL3LscTpIN1_Zc7uGDD4cE8" data-item-title="Best Flashlight Ever is Selling Like Crazy" data-item-thumb="http://www.dailylifetech.com/banners/lumify/v1/009.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem videoCube_1_child trc-first-recommendation trc-spotlight-first-recommendation trc_excludable ">
+ <a title="Best Flashlight Ever is Selling Like Crazy" href="http://trkwl.me/base.php?c=167&amp;key=87b88eb90f48cdfd8435da9a2fd7a942&amp;cp=%7Bcampaign%7D&amp;site=breitbartcom&amp;thumb=http%3A%2F%2Fwww.dailylifetech.com%2Fbanners%2Flumify%2Fv1%2F009.jpg&amp;title=Best+Flashlight+Ever+is+Selling+Like+Crazy" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;http://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_auto%2Ch_420%2Cw_420%2Cc_fill%2Cg_faces:auto%2Ce_sharpen/http%3A//www.dailylifetech.com/banners/lumify/v1/009.jpg&quot;);"><span class="thumbnail-overlay"></span><span class="branding">Lumify Flashlight X9</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Best Flashlight Ever is Selling Like Crazy" href="http://trkwl.me/base.php?c=167&amp;key=87b88eb90f48cdfd8435da9a2fd7a942&amp;cp=%7Bcampaign%7D&amp;site=breitbartcom&amp;thumb=http%3A%2F%2Fwww.dailylifetech.com%2Fbanners%2Flumify%2Fv1%2F009.jpg&amp;title=Best+Flashlight+Ever+is+Selling+Like+Crazy" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">Best Flashlight Ever is Selling Like Crazy</span><span class="branding">Lumify Flashlight X9</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~5203257888082971773~~pfBoXwMI7GABLLiNvFYGYH6XuwNy-kgGlR0S5FEF6qASO_fFkG-bpaW2-qyqBDD686fpt-4Pw457dfy2ji88C73LscTpIN1_Zc7uGDD4cE8" data-item-title="Say Goodbye To Snoring, Say Hello to Sleep" data-item-thumb="http://cdn.taboolasyndication.com/libtrc/static/thumbnails/b4ea56abdb75f62da20a9c018b1ebe15.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem videoCube_2_child trc_excludable ">
+ <a title="Say Goodbye To Snoring, Say Hello to Sleep" href="http://track.mysnoring-solution.com/f7a91370-8015-0133-1605-3c764e052d94/ROWNetwork?utm_source=Taboola&amp;utm_medium=breitbartcom&amp;utm_content=http%3A%2F%2Fcdn.taboolasyndication.com%2Flibtrc%2Fstatic%2Fthumbnails%2Fb4ea56abdb75f62da20a9c018b1ebe15.jpg&amp;utm_term=Say+Goodbye+To+Snoring%2C+Say+Hello+to+Sleep" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;http://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_auto%2Ch_420%2Cw_420%2Cc_fill%2Cg_faces:auto%2Ce_sharpen/http%3A//cdn.taboolasyndication.com/libtrc/static/thumbnails/b4ea56abdb75f62da20a9c018b1ebe15.jpg&quot;);"><span class="thumbnail-overlay"></span><span class="branding">My Snoring Solution</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Say Goodbye To Snoring, Say Hello to Sleep" href="http://track.mysnoring-solution.com/f7a91370-8015-0133-1605-3c764e052d94/ROWNetwork?utm_source=Taboola&amp;utm_medium=breitbartcom&amp;utm_content=http%3A%2F%2Fcdn.taboolasyndication.com%2Flibtrc%2Fstatic%2Fthumbnails%2Fb4ea56abdb75f62da20a9c018b1ebe15.jpg&amp;utm_term=Say+Goodbye+To+Snoring%2C+Say+Hello+to+Sleep" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">Say Goodbye To Snoring, Say Hello to Sleep</span><span class="branding">My Snoring Solution</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~-4126273700562553064~~aCcQ1G2g-zl_iY5AxVNvf6jwmrHQXP4APj0i219j49QSO_fFkG-bpaW2-qyqBDD65lHQ7Q-hhGxMNY4bl0YnX73LscTpIN1_Zc7uGDD4cE8" data-item-title="Finding Cheap Flights is Now Easy" data-item-thumb="http://cdn.taboolasyndication.com/libtrc/static/thumbnails/121e89771500274cfd0914514ed244a1.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem videoCube_3_child trc_excludable ">
+ <a title="Finding Cheap Flights is Now Easy" href="http://www.tripsinsider.com/flights/?utm_source=ti_taboola_flights_1&amp;utm_medium=breitbartcom" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;http://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_auto%2Ch_420%2Cw_420%2Cc_fill%2Cg_faces:auto%2Ce_sharpen/http%3A//cdn.taboolasyndication.com/libtrc/static/thumbnails/121e89771500274cfd0914514ed244a1.jpg&quot;);"><span class="thumbnail-overlay"></span><span class="branding">tripsinsider.com</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Finding Cheap Flights is Now Easy" href="http://www.tripsinsider.com/flights/?utm_source=ti_taboola_flights_1&amp;utm_medium=breitbartcom" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">Finding Cheap Flights is Now Easy</span><span class="branding">tripsinsider.com</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~3178247457211747916~~n-mVVmqwrwr6mEdrOkDkBCOPnbHVPKdv7qWKOIYunQESO_fFkG-bpaW2-qyqBDD6VO83VUXXF4VL5_L-vAKtN73LscTpIN1_Zc7uGDD4cE8" data-item-title="Fresh Evidence In Maddie McCann Mystery Stuns Police" data-item-thumb="http://cdn.taboolasyndication.com/libtrc/static/thumbnails/8cad6a1efe523336684e56c5308b1a03.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem photoItem videoCube_4_child trc_excludable ">
+ <a title="Fresh Evidence In Maddie McCann Mystery Stuns Police" href="http://www.lifedaily.com/story/these-grieving-parents-are-hoping-to-find-their-missing-child-after-nearly-10-years/source/taboola/?utm_taboola_id=442390#utm_medium=referral&amp;utm_source=taboola&amp;utm_campaign=TB-INTL-GrievingParents" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;http://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_auto%2Ch_420%2Cw_420%2Cc_fill%2Cg_faces:auto%2Ce_sharpen/http%3A//cdn.taboolasyndication.com/libtrc/static/thumbnails/8cad6a1efe523336684e56c5308b1a03.jpg&quot;);"><span class="thumbnail-overlay"></span><span class="branding">LifeDaily.com</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Fresh Evidence In Maddie McCann Mystery Stuns Police" href="http://www.lifedaily.com/story/these-grieving-parents-are-hoping-to-find-their-missing-child-after-nearly-10-years/source/taboola/?utm_taboola_id=442390#utm_medium=referral&amp;utm_source=taboola&amp;utm_campaign=TB-INTL-GrievingParents" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">Fresh Evidence In Maddie McCann Mystery Stuns Police</span><span class="branding">LifeDaily.com</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~23639497408646380~~MxC3bQkHCNU-J_c3NZdp8EO_aCgkERloxiei07hKXOESO_fFkG-bpaW2-qyqBDD6kjhacqx4kHIo-emkVtSk3b3LscTpIN1_Zc7uGDD4cE8" data-item-title="Finally You Can Track Your Car Using Your Smartphone" data-item-thumb="http://cdn.taboolasyndication.com/libtrc/static/thumbnails/f0a68994354d0363f715f5084a350988.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem videoCube_5_child trc_excludable ">
+ <a title="Finally You Can Track Your Car Using Your Smartphone" href="http://smartdevicetrends.com/trackr-car06.html?s1=breitbartcom--WW-TB-Car-WHFinally+You+Can+Track+Your+Car+Using+Your+Smartphone&amp;utm_source=taboola&amp;utm_medium=cpc&amp;utm_campaign=WW-TB-Car-WH&amp;utm_term=Finally+You+Can+Track+Your+Car+Using+Your+Smartphone--http%3A%2F%2Fcdn.taboolasyndication.com%2Flibtrc%2Fstatic%2Fthumbnails%2Ff0a68994354d0363f715f5084a350988.jpg&amp;utm_medium=breitbartcom" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;http://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_auto%2Ch_420%2Cw_420%2Cc_fill%2Cg_faces:auto%2Ce_sharpen/http%3A//cdn.taboolasyndication.com/libtrc/static/thumbnails/f0a68994354d0363f715f5084a350988.jpg&quot;);"><span class="thumbnail-overlay"></span><span class="branding">Smart Device Trends</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Finally You Can Track Your Car Using Your Smartphone" href="http://smartdevicetrends.com/trackr-car06.html?s1=breitbartcom--WW-TB-Car-WHFinally+You+Can+Track+Your+Car+Using+Your+Smartphone&amp;utm_source=taboola&amp;utm_medium=cpc&amp;utm_campaign=WW-TB-Car-WH&amp;utm_term=Finally+You+Can+Track+Your+Car+Using+Your+Smartphone--http%3A%2F%2Fcdn.taboolasyndication.com%2Flibtrc%2Fstatic%2Fthumbnails%2Ff0a68994354d0363f715f5084a350988.jpg&amp;utm_medium=breitbartcom" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">Finally You Can Track Your Car Using Your Smartphone</span><span class="branding">Smart Device Trends</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~-596772105036256470~~kEu7oIbMzG2IK_AL6-uxeUA7Mh8G010-XV2t9favQIQSO_fFkG-bpaW2-qyqBDD6-lUkY74FbM66cgXMRFoQm73LscTpIN1_Zc7uGDD4cE8" data-item-title="5 College Degrees That Will Be Extinct In 20 Years" data-item-thumb="http://www.womensarticle.com/wp-content/uploads/2016/08/doctor-1193318-1024x768.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem videoCube_6_child trc_excludable ">
+ <a title="5 College Degrees That Will Be Extinct In 20 Years" href="http://www.womensarticle.com/5-college-degrees-that-may-be-extinct-in-20-years/?utm_source=taboola&amp;utm_medium=referral&amp;utm_term=breitbartcom" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;http://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_auto%2Ch_420%2Cw_420%2Cc_fill%2Cg_faces:auto%2Ce_sharpen/http%3A//www.womensarticle.com/wp-content/uploads/2016/08/doctor-1193318-1024x768.jpg&quot;);"><span class="thumbnail-overlay"></span><span class="branding">Womensarticle.com</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="5 College Degrees That Will Be Extinct In 20 Years" href="http://www.womensarticle.com/5-college-degrees-that-may-be-extinct-in-20-years/?utm_source=taboola&amp;utm_medium=referral&amp;utm_term=breitbartcom" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">5 College Degrees That Will Be Extinct In 20 Years</span><span class="branding">Womensarticle.com</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~-1601338324779469665~~98QIy1Ubb-5XfPQeL1nLFNlGuOGvlQvsy8QEciXCgtQSO_fFkG-bpaW2-qyqBDD63cfb9dInsRoqrh6KpFPkcb3LscTpIN1_Zc7uGDD4cE8" data-item-title="56 of the Worst Cars of All Time" data-item-thumb="http://www.carophile.com/wp-content/uploads/2015/11/ZUNDAPP-JANUS-1957-.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem photoItem videoCube_7_child trc_excludable ">
+ <a title="56 of the Worst Cars of All Time" href="http://www.carophile.org/the-worst-cars-of-all-time/?utm_source=taboola&amp;utm_medium=referral&amp;utm_term=breitbartcom" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;http://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_auto%2Ch_420%2Cw_420%2Cc_fill%2Cg_faces:auto%2Ce_sharpen/http%3A//www.carophile.com/wp-content/uploads/2015/11/ZUNDAPP-JANUS-1957-.jpg&quot;);"><span class="thumbnail-overlay"></span><span class="branding">Carophile</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="56 of the Worst Cars of All Time" href="http://www.carophile.org/the-worst-cars-of-all-time/?utm_source=taboola&amp;utm_medium=referral&amp;utm_term=breitbartcom" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">56 of the Worst Cars of All Time</span><span class="branding">Carophile</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~1845659316976814413~~0rXvDb_j7JIeXoiAAmJ6F-LDOqd682uNcpNXA7tizMESO_fFkG-bpaW2-qyqBDD6pr2ZlWX4Fwfb7tQjnKDGDL3LscTpIN1_Zc7uGDD4cE8" data-item-title="End Your Nightly Snoring Nightmare With This Simple Solution" data-item-thumb="http://cdn.taboolasyndication.com/libtrc/static/thumbnails/39303de8e6d88a04cc30c2dcaa3b9c29.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem videoCube_8_child trc_excludable ">
+ <a title="End Your Nightly Snoring Nightmare With This Simple Solution" href="http://tracking.lifestylejournal.com/aff_c?offer_id=78&amp;aff_id=1169&amp;url_id=375&amp;aff_sub=taaSnoring-ROW-Desktop2&amp;aff_sub2=breitbartcom" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;http://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_auto%2Ch_420%2Cw_420%2Cc_fill%2Cg_faces:auto%2Ce_sharpen/http%3A//cdn.taboolasyndication.com/libtrc/static/thumbnails/39303de8e6d88a04cc30c2dcaa3b9c29.jpg&quot;);"><span class="thumbnail-overlay"></span><span class="branding">My Snoring Solution</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="End Your Nightly Snoring Nightmare With This Simple Solution" href="http://tracking.lifestylejournal.com/aff_c?offer_id=78&amp;aff_id=1169&amp;url_id=375&amp;aff_sub=taaSnoring-ROW-Desktop2&amp;aff_sub2=breitbartcom" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">End Your Nightly Snoring Nightmare With This Simple Solution</span><span class="branding">My Snoring Solution</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~-8140381909497597080~~wnQGk0Mi0GijksyA9BGosW3dVppf3Hngoq9scqIJMIcSO_fFkG-bpaW2-qyqBDD6FYfIfroWDdlQoDexl2eKDb3LscTpIN1_Zc7uGDD4cE8" data-item-title="Crazy Cheap Flashlight - Selling Like Hotcakes!" data-item-thumb="http://dailylifetech.com/banners/lumify/v1dt/5.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem videoCube_9_child trc_excludable ">
+ <a title="Crazy Cheap Flashlight - Selling Like Hotcakes!" href="http://trkwl.me/base.php?c=197&amp;key=3f911a6a326dd58a65b31d460fb9c90c&amp;cp=%7Bcampaign%7D&amp;site=breitbartcom&amp;thumb=http%3A%2F%2Fdailylifetech.com%2Fbanners%2Flumify%2Fv1dt%2F5.jpg&amp;title=Crazy+Cheap+Flashlight+-+Selling+Like+Hotcakes%21" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;http://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_auto%2Ch_420%2Cw_420%2Cc_fill%2Cg_faces:auto%2Ce_sharpen/http%3A//dailylifetech.com/banners/lumify/v1dt/5.jpg&quot;);"><span class="thumbnail-overlay"></span><span class="branding">Lumify X9</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Crazy Cheap Flashlight - Selling Like Hotcakes!" href="http://trkwl.me/base.php?c=197&amp;key=3f911a6a326dd58a65b31d460fb9c90c&amp;cp=%7Bcampaign%7D&amp;site=breitbartcom&amp;thumb=http%3A%2F%2Fdailylifetech.com%2Fbanners%2Flumify%2Fv1dt%2F5.jpg&amp;title=Crazy+Cheap+Flashlight+-+Selling+Like+Hotcakes%21" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">Crazy Cheap Flashlight - Selling Like Hotcakes!</span><span class="branding">Lumify X9</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~-2656004003234227089~~lxucT9VOjbIf_hUn-0v5zCOPnbHVPKdv7qWKOIYunQESO_fFkG-bpaW2-qyqBDD6eapnUGns6aRoZRIHeRejNb3LscTpIN1_Zc7uGDD4cE8" data-item-title="Cop Finds Baby In Dumpster: But 25 Years Later, This Happened..." data-item-thumb="http://cdn.taboolasyndication.com/libtrc/static/thumbnails/a765b2b85fd93cd30a4b44808b5e4385.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem photoItem videoCube_10_child trc_excludable ">
+ <a title="Cop Finds Baby In Dumpster: But 25 Years Later, This Happened..." href="http://www.lifedaily.com/story/police-officer-who-saved-baby-from-certain-death-finds-him-after-25-years/source/taboola/?utm_taboola_id=454845#utm_medium=referral&amp;utm_source=taboola&amp;utm_campaign=TB-INTL2-PoliceDumpster" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;http://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_auto%2Ch_420%2Cw_420%2Cc_fill%2Cg_faces:auto%2Ce_sharpen/http%3A//cdn.taboolasyndication.com/libtrc/static/thumbnails/a765b2b85fd93cd30a4b44808b5e4385.jpg&quot;);"><span class="thumbnail-overlay"></span><span class="branding">LifeDaily.com</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Cop Finds Baby In Dumpster: But 25 Years Later, This Happened..." href="http://www.lifedaily.com/story/police-officer-who-saved-baby-from-certain-death-finds-him-after-25-years/source/taboola/?utm_taboola_id=454845#utm_medium=referral&amp;utm_source=taboola&amp;utm_campaign=TB-INTL2-PoliceDumpster" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">Cop Finds Baby In Dumpster: But 25 Years Later, This Happened...</span><span class="branding">LifeDaily.com</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~-986450015027639901~~yGywI-TINwiC9HeXOPB0diOPnbHVPKdv7qWKOIYunQESO_fFkG-bpaW2-qyqBDD6QuPnFey0hkbUAzfZqvoZjr3LscTpIN1_Zc7uGDD4cE8" data-item-title="New Evidence In Missing Alabama Teen Mystery Stuns Police" data-item-thumb="http://cdn.taboolasyndication.com/libtrc/static/thumbnails/8c78af17579d2c424ca97a8f3fe4e419.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem photoItem videoCube_11_child trc_excludable ">
+ <a title="New Evidence In Missing Alabama Teen Mystery Stuns Police" href="http://www.lifedaily.com/story/new-evidence-in-case-of-missing-high-school-senior/source/taboola/?utm_taboola_id=451398#utm_medium=referral&amp;utm_source=taboola&amp;utm_campaign=TB-INTL4-TeenAruba2" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;http://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_auto%2Ch_420%2Cw_420%2Cc_fill%2Cg_faces:auto%2Ce_sharpen/http%3A//cdn.taboolasyndication.com/libtrc/static/thumbnails/8c78af17579d2c424ca97a8f3fe4e419.jpg&quot;);"><span class="thumbnail-overlay"></span><span class="branding">LifeDaily.com</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="New Evidence In Missing Alabama Teen Mystery Stuns Police" href="http://www.lifedaily.com/story/new-evidence-in-case-of-missing-high-school-senior/source/taboola/?utm_taboola_id=451398#utm_medium=referral&amp;utm_source=taboola&amp;utm_campaign=TB-INTL4-TeenAruba2" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">New Evidence In Missing Alabama Teen Mystery Stuns Police</span><span class="branding">LifeDaily.com</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~-8085219896716513374~~UwdUquuG4xk4mqn1F4NOnCOPnbHVPKdv7qWKOIYunQESO_fFkG-bpaW2-qyqBDD6jGb6QeSv67bQ8b_xvIVJob3LscTpIN1_Zc7uGDD4cE8" data-item-title="Teen Vanishes On Spring Break: But 7 Years Later, Police Uncover Truth..." data-item-thumb="http://cdn.taboolasyndication.com/libtrc/static/thumbnails/1868da54cb4a1d293e5cfe9f71e34712.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem photoItem videoCube_12_child trc_excludable ">
+ <a title="Teen Vanishes On Spring Break: But 7 Years Later, Police Uncover Truth..." href="http://www.lifedaily.com/story/this-new-york-vanished-on-spring-break-now-police-know-what-really-happened/source/taboola/?utm_taboola_id=455472#utm_medium=referral&amp;utm_source=taboola&amp;utm_campaign=TB-INTL2-BritaneeDrexel" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;http://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_auto%2Ch_420%2Cw_420%2Cc_fill%2Cg_faces:auto%2Ce_sharpen/http%3A//cdn.taboolasyndication.com/libtrc/static/thumbnails/1868da54cb4a1d293e5cfe9f71e34712.jpg&quot;);"><span class="thumbnail-overlay"></span><span class="branding">LifeDaily.com</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Teen Vanishes On Spring Break: But 7 Years Later, Police Uncover Truth..." href="http://www.lifedaily.com/story/this-new-york-vanished-on-spring-break-now-police-know-what-really-happened/source/taboola/?utm_taboola_id=455472#utm_medium=referral&amp;utm_source=taboola&amp;utm_campaign=TB-INTL2-BritaneeDrexel" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">Teen Vanishes On Spring Break: But 7 Years Later, Police Uncover Truth...</span><span class="branding">LifeDaily.com</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~-4981071907474008028~~n-mVVmqwrwr6mEdrOkDkBCOPnbHVPKdv7qWKOIYunQESO_fFkG-bpaW2-qyqBDD6j6fjngC0qKk29pu6XeDQS73LscTpIN1_Zc7uGDD4cE8" data-item-title="Couple Finds 50-Year-Old Fallout Shelter, But When They Look inside..." data-item-thumb="http://cdn.taboolasyndication.com/libtrc/static/thumbnails/73ce7f5b620863f37b43ab1f92272875.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem photoItem videoCube_13_child trc_excludable ">
+ <a title="Couple Finds 50-Year-Old Fallout Shelter, But When They Look inside..." href="http://www.lifedaily.com/story/california-couple-inherits-50-year-old-secret-beneath-their-new-home/source/taboola/?utm_taboola_id=442390#utm_medium=referral&amp;utm_source=taboola&amp;utm_campaign=TB-INTL-CaliforniaCouple" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;http://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_auto%2Ch_420%2Cw_420%2Cc_fill%2Cg_faces:auto%2Ce_sharpen/http%3A//cdn.taboolasyndication.com/libtrc/static/thumbnails/73ce7f5b620863f37b43ab1f92272875.jpg&quot;);"><span class="thumbnail-overlay"></span><span class="branding">LifeDaily.com</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Couple Finds 50-Year-Old Fallout Shelter, But When They Look inside..." href="http://www.lifedaily.com/story/california-couple-inherits-50-year-old-secret-beneath-their-new-home/source/taboola/?utm_taboola_id=442390#utm_medium=referral&amp;utm_source=taboola&amp;utm_campaign=TB-INTL-CaliforniaCouple" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">Couple Finds 50-Year-Old Fallout Shelter, But When They Look inside...</span><span class="branding">LifeDaily.com</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~-5790306443668800295~~mi5tL-jsf-XxeGER1I9nxyOPnbHVPKdv7qWKOIYunQESO_fFkG-bpaW2-qyqBDD6txiITbdPDKdIhUPcULpg_73LscTpIN1_Zc7uGDD4cE8" data-item-title="Baby Girl Vanishes From Crib: But 20 Years Later, This Happened..." data-item-thumb="http://cdn.lifedaily.com/wp-content/uploads/2016/10/108.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem photoItem videoCube_14_child trc_excludable ">
+ <a title="Baby Girl Vanishes From Crib: But 20 Years Later, This Happened..." href="http://www.lifedaily.com/story/years-later-new-evidence-is-uncovered-in-the-case-of-missing-infant/source/taboola/?utm_taboola_id=435232#utm_medium=referral&amp;utm_source=taboola&amp;utm_campaign=TB-INTL-MissingInfant" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;http://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_auto%2Ch_420%2Cw_420%2Cc_fill%2Cg_faces:auto%2Ce_sharpen/http%3A//cdn.lifedaily.com/wp-content/uploads/2016/10/108.jpg&quot;);"><span class="thumbnail-overlay"></span><span class="branding">LifeDaily.com</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Baby Girl Vanishes From Crib: But 20 Years Later, This Happened..." href="http://www.lifedaily.com/story/years-later-new-evidence-is-uncovered-in-the-case-of-missing-infant/source/taboola/?utm_taboola_id=435232#utm_medium=referral&amp;utm_source=taboola&amp;utm_campaign=TB-INTL-MissingInfant" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">Baby Girl Vanishes From Crib: But 20 Years Later, This Happened...</span><span class="branding">LifeDaily.com</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~-2751215934139413108~~mi5tL-jsf-XxeGER1I9nxyOPnbHVPKdv7qWKOIYunQESO_fFkG-bpaW2-qyqBDD61xN82DPxucz5hBkPIoACC73LscTpIN1_Zc7uGDD4cE8" data-item-title="Mysterious Alcatraz Escape Unsolved For Years, Until Police Find This..." data-item-thumb="http://cdn.taboolasyndication.com/libtrc/static/thumbnails/1093de74f6d2f9e750016d77a7ccc3cc.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem photoItem videoCube_15_child trc_excludable ">
+ <a title="Mysterious Alcatraz Escape Unsolved For Years, Until Police Find This..." href="http://www.lifedaily.com/story/this-mysterious-prison-escape-has-baffled-authorities-for-50-years-until-now/source/taboola/?utm_taboola_id=435232#utm_medium=referral&amp;utm_source=taboola&amp;utm_campaign=TB-INTL-AlcatrazBreak" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;http://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_auto%2Ch_420%2Cw_420%2Cc_fill%2Cg_faces:auto%2Ce_sharpen/http%3A//cdn.taboolasyndication.com/libtrc/static/thumbnails/1093de74f6d2f9e750016d77a7ccc3cc.jpg&quot;);"><span class="thumbnail-overlay"></span><span class="branding">LifeDaily.com</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Mysterious Alcatraz Escape Unsolved For Years, Until Police Find This..." href="http://www.lifedaily.com/story/this-mysterious-prison-escape-has-baffled-authorities-for-50-years-until-now/source/taboola/?utm_taboola_id=435232#utm_medium=referral&amp;utm_source=taboola&amp;utm_campaign=TB-INTL-AlcatrazBreak" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">Mysterious Alcatraz Escape Unsolved For Years, Until Police Find This...</span><span class="branding">LifeDaily.com</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~-5305667577364839668~~LEit2mLytCpfOGilWpAOKH6XuwNy-kgGlR0S5FEF6qASO_fFkG-bpaW2-qyqBDD6NSnensjrJLnPxtJfAZoUyL3LscTpIN1_Zc7uGDD4cE8" data-item-title="A Solution That Puts Snoring to Bed" data-item-thumb="http://cdn.taboolasyndication.com/libtrc/static/thumbnails/ed5294b3ff7707d3c3602ab067082b3f.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem videoCube_16_child trc_excludable ">
+ <a title="A Solution That Puts Snoring to Bed" href="http://track.mysnoring-solution.com/f7a91370-8015-0133-1605-3c764e052d94/ROW?utm_source=Taboola&amp;utm_medium=breitbartcom&amp;utm_content=http%3A%2F%2Fcdn.taboolasyndication.com%2Flibtrc%2Fstatic%2Fthumbnails%2Fed5294b3ff7707d3c3602ab067082b3f.jpg&amp;utm_term=A+Solution+That+Puts+Snoring+to+Bed" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;http://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_auto%2Ch_420%2Cw_420%2Cc_fill%2Cg_faces:auto%2Ce_sharpen/http%3A//cdn.taboolasyndication.com/libtrc/static/thumbnails/ed5294b3ff7707d3c3602ab067082b3f.jpg&quot;);"><span class="thumbnail-overlay"></span><span class="branding">My Snoring Solution</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="A Solution That Puts Snoring to Bed" href="http://track.mysnoring-solution.com/f7a91370-8015-0133-1605-3c764e052d94/ROW?utm_source=Taboola&amp;utm_medium=breitbartcom&amp;utm_content=http%3A%2F%2Fcdn.taboolasyndication.com%2Flibtrc%2Fstatic%2Fthumbnails%2Fed5294b3ff7707d3c3602ab067082b3f.jpg&amp;utm_term=A+Solution+That+Puts+Snoring+to+Bed" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">A Solution That Puts Snoring to Bed</span><span class="branding">My Snoring Solution</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~7261229944523561421~~mi5tL-jsf-XxeGER1I9nxyOPnbHVPKdv7qWKOIYunQESO_fFkG-bpaW2-qyqBDD6zEUZArHr0M_ZGFgq74l4ir3LscTpIN1_Zc7uGDD4cE8" data-item-title="Missing Teens Unsolved For 15 Years, Until Police Uncover Truth..." data-item-thumb="http://cdn.lifedaily.com/wp-content/uploads/2016/11/01-two-missing-girls-story.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem photoItem videoCube_17_child trc_excludable ">
+ <a title="Missing Teens Unsolved For 15 Years, Until Police Uncover Truth..." href="http://www.lifedaily.com/story/police-unearth-strange-new-evidence-in-case-of-two-missing-oklahoma-girls/source/taboola/?utm_taboola_id=435232#utm_medium=referral&amp;utm_source=taboola&amp;utm_campaign=TB-INTL-OklahomaGirls" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;http://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_auto%2Ch_420%2Cw_420%2Cc_fill%2Cg_faces:auto%2Ce_sharpen/http%3A//cdn.lifedaily.com/wp-content/uploads/2016/11/01-two-missing-girls-story.jpg&quot;);"><span class="thumbnail-overlay"></span><span class="branding">LifeDaily.com</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Missing Teens Unsolved For 15 Years, Until Police Uncover Truth..." href="http://www.lifedaily.com/story/police-unearth-strange-new-evidence-in-case-of-two-missing-oklahoma-girls/source/taboola/?utm_taboola_id=435232#utm_medium=referral&amp;utm_source=taboola&amp;utm_campaign=TB-INTL-OklahomaGirls" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">Missing Teens Unsolved For 15 Years, Until Police Uncover Truth...</span><span class="branding">LifeDaily.com</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~-6235199803971849526~~kEu7oIbMzG2IK_AL6-uxeUA7Mh8G010-XV2t9favQIQSO_fFkG-bpaW2-qyqBDD61xTOP7Qe5yvZVxHbqd0ZFb3LscTpIN1_Zc7uGDD4cE8" data-item-title="10 Shockingly High Paying Graduate College Degrees" data-item-thumb="http://www.womensarticle.com/wp-content/uploads/2016/06/books-1281581_1920-1024x388.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem videoCube_18_child trc_excludable ">
+ <a title="10 Shockingly High Paying Graduate College Degrees" href="http://www.womensarticle.com/10-shockingly-highest-paying-masters-graduate-college-degrees/?utm_source=taboola2nddegr&amp;utm_medium=cpc&amp;utm_campaign=tabool2nddegree&amp;utm_source=taboola&amp;utm_medium=referral&amp;utm_term=breitbartcom" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;http://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_auto%2Ch_420%2Cw_420%2Cc_fill%2Cg_faces:auto%2Ce_sharpen/http%3A//www.womensarticle.com/wp-content/uploads/2016/06/books-1281581_1920-1024x388.jpg&quot;);"><span class="thumbnail-overlay"></span><span class="branding">Womensarticle.com</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="10 Shockingly High Paying Graduate College Degrees" href="http://www.womensarticle.com/10-shockingly-highest-paying-masters-graduate-college-degrees/?utm_source=taboola2nddegr&amp;utm_medium=cpc&amp;utm_campaign=tabool2nddegree&amp;utm_source=taboola&amp;utm_medium=referral&amp;utm_term=breitbartcom" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">10 Shockingly High Paying Graduate College Degrees</span><span class="branding">Womensarticle.com</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ </div>
+ </div>
+ <div class="trc_scroll_button_wrapper">
+ <div class="trc_button_up"></div>
+ <div class="trc_button_down"></div>
+ </div>
+ </div>
+ <div class="trc_clearer"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="ds_cpp" data-dvp_title_trim="60" data-dvp_desc_trim="120" data-dvp_zindex_base="90" data-dvp_mute_ad_na="0" data-dvp_friendly_iframe_na="0" style="margin: 5px auto 20px; position: relative; max-width: 645px; clear: both; max-height: 600px;" id="ds_cpp" ds_maxheight="600px">
+ <div class="ds_label" style="display:none;;text-align:center;font-size: 13px;line-height:13px;margin: 0 0 1px 0;background:none;color:black;"></div>
+ <div class="ds_dgv_label" style=";text-align:center;font-size: 13px;line-height:13px;margin: 0 0 1px 0;background:none;color:black;">Trending Articles</div>
+ <div class="ds_cpp_inner" style="background-color:#eee;overflow:hidden;border:1px solid lightgray;">
+ <div class="ds_publogo" style=";text-align:center; margin: 0px 2px 0 0;float:left;">
+ <img class="publogo" src="http://distroscale.s3.amazonaws.com/uploads/apps.distroscale.com/4df7ede9d2a024f5/Breitbart-LOGO.jpg" style="display:none;max-height:67px;margin:0 auto;max-width:100px;" />
+ </div>
+ <div class="ds_sponsor" style="text-align:center; margin: 1px 2px 0 0;float:left;">
+ <a href="" style="display:none;" rel="nofollow">
+ <img class="sp_logo" src="" style="display:none;max-height:67px;margin:0 auto;max-width:100px;" />
+ <span class="sp_name" style="display:none;;font-family: inherit; font-size: 16px;">Sponsored By: </span>
+ </a>
+ </div>
+ <div class="ds_description" style="text-align:center;padding: 0 4px 0px 2px;overflow-x:auto;min-width:100px;margin:0px;height:67px;overflow: hidden;font-family:inherit;">
+ <h3 class="ds_title" style="text-align: center; padding: 2px 0px; margin: 0px; color: rgb(51, 51, 51); font-family: inherit; font-size: 16px; font-weight: 600; letter-spacing: normal; line-height: 16px; cursor: pointer;" onclick="window.open(ds_ct719197('http://feedproxy.google.com/~r/breitbart/~3/pMBnY6ELN-Y/'),'_blank');">Gloria Steinem: Woman Felt ‘Sexually Assaulted’ by Trump’s…</h3>
+ <p class="ds_summary" style="text-align: left; font-family: inherit; font-size: 14px; line-height: 15px; margin: 1px 0px; padding: 0px; cursor: pointer;" onclick="window.open(ds_ct719197('http://feedproxy.google.com/~r/breitbart/~3/pMBnY6ELN-Y/'),'_blank');">Monday on MSNBC’s “All In,” discussing Saturday’s women’s march on Washington, feminist and…</p>
+
+ </div>
+ <div class="ds_body" style="width:100%;margin-top:2px;">
+ <div id="ds_player_sensor" style="width:1px;height:1px;padding:0;margin:0;border:none;background:none;position:relative;top:-300px"></div>
+ <div id="ds_player_container" style="border: medium none !important; padding: 0px !important; margin: 0px auto !important; position: relative !important; width: 638px; height: 359px;">
+ <script type="text/javascript" src="http://s3-us-west-2.amazonaws.com/distroscale-public/vplayer-parallel/20160725c/ds_vplayer_detached.min.js"></script>
+ <script data-ds-pbase="true" class="dsscript" type="text/dsscript" src="//s3-us-west-2.amazonaws.com/distroscale-public/vplayer-parallel/20160725c/ds_vplayer_detached.min.js"></script>
+ <script type="text/javascript" src="http://c5x8i7c7.ssl.hwcdn.net/comscore/comscore.streaming.5.4.0.161011.min.js"></script>
+ <script src="//c5x8i7c7.ssl.hwcdn.net/comscore/comscore.streaming.5.4.0.161011.min.js" class="dsscript" type="text/dsscript"></script>
+ <div id="ds_content_frame_parent" style="position: relative !important; width: 638px; height: 359px;">
+ <div id="ds_ad_container" style="text-align: center !important; margin: 0px auto !important; position: absolute !important; top: 0px !important; left: 0px !important; background-color: black !important; z-index: -1; width: 638px; height: 359px;"> <iframe id="gg-3m1kl" data-adtag="//googleads.g.doubleclick.net/pagead/ads?client=ca-video-pub-3851171199385532&amp;slotname=1769524866&amp;ad_type=standardvideo&amp;description_url=http%3A%2F%2Fwww.breitbart.com%2Ftech%2F2016%2F12%2F22%2Fneutral-snopes-fact-checker-david-emery-un-angry-trump-supporters%2F&amp;max_ad_duration=60000&amp;videoad_start_delay=0" scrolling="no" style="display: block; top: 0px; left: 0px; position: absolute; border: 0px none; margin: 0px; padding: 0px;" src="http://s3-us-west-2.amazonaws.com/distroscale-public/vplayer-parallel/20160725c/ima_flash/index.html" width="638px" height="359px"></iframe></div>
+ <div style="width: 100%; height: 327px; z-index: 95; position: absolute; top: 0px; left: 0px; cursor: pointer;" onclick="window.open(ds_ct719197('http://feedproxy.google.com/~r/breitbart/~3/pMBnY6ELN-Y/'),'_blank');"></div><iframe id="ds_content_frame" scrolling="no" src="//c5x8i7c7.ssl.hwcdn.net/videojs/5.1.0_20160613/show.html?controls=1&amp;loop=30&amp;autoplay=0&amp;tracker=059bee4c-fcbc-4d7d-8376-f90c428ea41b&amp;height=359&amp;width=638&amp;vurl=%2F%2Fc5x8i7c7.ssl.hwcdn.net%2Fvideos%2Fdgv_breitbart%2F201701240713_5886e0400d3dc%2Fdgv_breitbart_top_articles_from_breitbart_201701240713_5886e0400d3dc_new.mp4&amp;poster=%2F%2Fc5x8i7c7.ssl.hwcdn.net%2Fvideos%2Fdgv_breitbart%2F201701240713_5886e0400d3dc%2Fdgv_breitbart_top_articles_from_breitbart_201701240713_5886e0400d3dc_new.jpg" style="margin: 0px !important; padding: 0px !important; border: 0px none !important; outline: 0px none !important; position: absolute; top: 0px; left: 0px; width: 638px; height: 359px; z-index: 90;" frameborder="0"></iframe></div>
+ <script type="text/javascript">
+ (function() {
+ function init() {
+ var zindex_base = parseInt(vx.nvl(vx.dvp_zindex_base, 20));
+ var title_trim = parseInt(vx.nvl(vx.dvp_title_trim, 60));
+ var desc_trim = parseInt(vx.nvl(vx.dvp_desc_trim, 120));
+ var mute_ad = parseInt(vx.nvl(vx.dvp_mute_ad, 0));
+ var click_target = vx.nvl(vx.dvp_click_target, "_blank");
+ var friendly_iframe = parseInt(vx.nvl(vx.dvp_friendly_iframe, 0));
+ var ds_sbase = "//c5x8i7c7.ssl.hwcdn.net/videojs/5.1.0_20160613/show.html";
+ var dvp_meta = {
+ "width": "0",
+ "height": "0",
+ "loopcount": "30",
+ "adtags": {
+ "1": ["googlea", "openxdesktop_channel", "spotx_channel_desktop", "pulsepoint_desktop"],
+ "2": ["googlea", "openxdesktop_channel", "pulsepoint_desktop", "spotx_channel_desktop"]
+ },
+ "adtagdefs": {
+ "googlea": {
+ "cp": "gg",
+ "url": "\/\/googleads.g.doubleclick.net\/pagead\/ads?client=ca-video-pub-3851171199385532&amp;slotname=9292816986&amp;ad_type=standardvideo&amp;description_url=http%3A%2F%2Fwww.breitbart.com%2Ftech%2F2016%2F12%2F22%2Fneutral-snopes-fact-checker-david-emery-un-angry-trump-supporters%2F&amp;max_ad_duration=60000&amp;videoad_start_delay=0",
+ "sdk": "ima_flash"
+ },
+ "openxdesktop_channel": {
+ "cp": "ox",
+ "url": "\/\/distroscale-d.openx.net\/v\/1.0\/av?auid=538587338&amp;url=http%3A%2F%2Fwww.breitbart.com%2Ftech%2F2016%2F12%2F22%2Fneutral-snopes-fact-checker-david-emery-un-angry-trump-supporters%2F",
+ "sdk": "ima_flash"
+ },
+ "spotx_channel_desktop": {
+ "cp": "sx",
+ "url": "\/\/search.spotxchange.com\/vast\/2.00\/150945?VPAID=1&amp;content_page_url=http%3A%2F%2Fwww.breitbart.com%2Ftech%2F2016%2F12%2F22%2Fneutral-snopes-fact-checker-david-emery-un-angry-trump-supporters%2F&amp;cb=766008&amp;player_width=__DYN_WIDTH__&amp;player_height=__DYN_HEIGHT__&amp;token[page_url]=http%3A%2F%2Fwww.breitbart.com%2Ftech%2F2016%2F12%2F22%2Fneutral-snopes-fact-checker-david-emery-un-angry-trump-supporters%2F&amp;token[width]=__DYN_WIDTH__&amp;token[height]=__DYN_HEIGHT__",
+ "sdk": "ima_flash"
+ },
+ "pulsepoint_desktop": {
+ "cp": "pp",
+ "url": "\/\/ads.contextweb.com\/TagPublish\/getvideo.aspx?cp=560840&amp;ct=538553&amp;cwu=http%3A%2F%2Fwww.breitbart.com%2Ftech%2F2016%2F12%2F22%2Fneutral-snopes-fact-checker-david-emery-un-angry-trump-supporters%2F&amp;mrnd=908206&amp;if=6&amp;cf=Video&amp;vpt=0&amp;video=%7B%22pos%22%3A0%2C%22minduration%22%3A0%2C%22maxduration%22%3A60%2C%22api%22%3A%5B1%2C2%5D%2C%22protocols%22%3A%5B2%2C3%2C5%2C6%5D%2C%22mimes%22%3A%5B%22video%2Fmp4%22%2C%22video%2Fwebm%22%2C%22video%2Fx-flv%22%2C%22application%2Fjavascript%22%2C%22application%2Fx-shockwave-flash%22%2C%22application%2Fx-shockwave-flash%22%5D%2C%22playbackmethod%22%3A%5B1%5D%2C%22delivery%22%3A%5B2%5D%2C%22w%22%3A__DYN_WIDTH__%2C%22h%22%3A__DYN_HEIGHT__%7D",
+ "sdk": "ima_flash"
+ }
+ },
+ "vid": {
+ "id": "160222",
+ "title": "Top Articles from Breitbart",
+ "description": "",
+ "video": "\/\/c5x8i7c7.ssl.hwcdn.net\/videos\/dgv_breitbart\/201701240713_5886e0400d3dc\/dgv_breitbart_top_articles_from_breitbart_201701240713_5886e0400d3dc_new.mp4",
+ "thumbnail": "\/\/c5x8i7c7.ssl.hwcdn.net\/videos\/dgv_breitbart\/201701240713_5886e0400d3dc\/dgv_breitbart_top_articles_from_breitbart_201701240713_5886e0400d3dc_new.jpg",
+ "link": null,
+ "signature": null,
+ "caption": {
+ "0": {
+ "title": "Chelsea Handler Won\u2019t Interview Melania Trump: \u2018She Can Barely Speak English\u2019",
+ "desc": "President Donald Trump and First Lady Melania Trump can save themselves a visit to Chelsea Handler's talk show, because she won't speak to them \u2014 even if the president himself requested an interview.",
+ "link": "http:\/\/feedproxy.google.com\/~r\/breitbart\/~3\/o2FetSnvM-I\/",
+ "credit": ""
+ },
+ "4": {
+ "title": "Gloria Steinem: Woman Felt \u2018Sexually Assaulted\u2019 by Trump\u2019s \u2018Language,\u2019 \u2018Attitude\u2019",
+ "desc": "Monday on MSNBC&amp;#8217;s &amp;#8220;All In,&amp;#8221; discussing Saturday&amp;#8217;s women\u2019s march on Washington, feminist and political activist Gloria Steinem said President Donald Trump made woman feel &amp;#8220;sexually assaulted by his language and by his attitude.&amp;#8221; Partial transcript as follows: HAYES: It struck me a lot of the signs, they were about all different kinds of issues and it was interesting to see that, but a lot of signs about the infamous comments the president of the United States made on the &amp;#8220;Access Hollywood&amp;#8221; tape. One of the things striking to me when he bragged about sexual assault, how easy it was to get away with it when you&amp;#8217;re a celebrity. There was a moment in the campaign where that happened and everyone thought, &amp;#8220;Oh my God,&amp;#8221; and you had Republican members of Congress running to every microphone to say &amp;#8220;I can&amp;#8217;t look my daughter in the eyes about this,&amp;#8221; and then it just sort of disappeared down the memory hole. STEINEM: It didn&amp;#8217;t disappear. I think\u00a0 people felt, women felt, and men on behalf of women felt sexually assaulted by his language and by his attitude. There&amp;#8217;s a common theme here of bodily integrity. We get to control our own bodies. The",
+ "link": "http:\/\/feedproxy.google.com\/~r\/breitbart\/~3\/pMBnY6ELN-Y\/",
+ "credit": ""
+ },
+ "8": {
+ "title": "Despite Democrat Obstruction U.S. Senate Confirms Mike Pompeo as Next Director of CIA",
+ "desc": "On Monday evening, Kansas Republican Mike Pompeo was confirmed as the next director of the C.I.A. by the U.S. Senate, despite days of stalling and obstruction by Senate Democrats.",
+ "link": "http:\/\/feedproxy.google.com\/~r\/breitbart\/~3\/FhGqji4i3pg\/",
+ "credit": ""
+ },
+ "12": {
+ "title": "Trump White House Pledges Support for Law Enforcement in White House Page\u00a0 \u00a0",
+ "desc": "President Trump is keeping his campaign promise as president by pledging to stand up for our Law Enforcement.",
+ "link": "http:\/\/feedproxy.google.com\/~r\/breitbart\/~3\/m9cF2OkTrXE\/",
+ "credit": ""
+ },
+ "16": {
+ "title": "Teamsters\u2019 Jimmy Hoffa Lavishes Praise on President Trump on Trade Policy",
+ "desc": "International Brotherhood of Teamsters president James P. Hoffa praised President Donald J. Trump\u2019s move to crush the Trans Pacific Partnership (TPP) once and for all on Monday, the second major labor union leader to do so.",
+ "link": "http:\/\/feedproxy.google.com\/~r\/breitbart\/~3\/WQ3Mte2b2Hk\/",
+ "credit": ""
+ },
+ "20": {
+ "title": "Report: Obama Gave 1 Million to Palestinians in Last Hours",
+ "desc": "The Associated Press reported Monday that former President Barack Obama released 1 million in U.S. funding for the Palestinian Authority on the morning of Friday, January 20 -- just hours before he was to leave office.",
+ "link": "http:\/\/feedproxy.google.com\/~r\/breitbart\/~3\/bmyMPuEjp6E\/",
+ "credit": ""
+ },
+ "24": {
+ "title": "Breitbart News Daily: Goodbye TPP; Hello American Jobs",
+ "desc": "On the Tuesday edition of Breitbart News Daily, broadcast live on SiriusXM Patriot Channel 125 from 6AM to 9AM Eastern, Breitbart Editor-in-Chief Alex Marlow will continue our discussion of President Trump\u2019s first 100 days. Wisconsin businessman Paul Nehlen will discuss the demise of TPP. Scott Paul, President of the Alliance for American Manufacturing, will discuss President Trump\u2019s meeting with union members, his trade policies favoring American manufacturing, and the open letter Paul\u2019s organization sent to President Trump concerning bringing back manufacturing jobs. Former Secret Service office Gary Bryne will discuss the report that the Secret Service is investigating Madonna after her remarks that she\u2019s thought about \u201cblowing up the White House.\u201d Kristan Hawkins, President of Students for Life, will discuss the Annual March for Life this week and President Trump\u2019s executive order reinstating the Mexico City policy prohibiting U.S. aid for abortion overseas. Live from London, Rome, and Jerusalem, Breitbart correspondents will provide updates on the latest international news. Breitbart News Daily is the first live, conservative radio enterprise to air seven days a week. SiriusXM Vice President for news and talk Dave Gorab called the show \u201cthe conservative news show of record.\u201d Follow Breitbart News on Twitter for live",
+ "link": "http:\/\/feedproxy.google.com\/~r\/breitbart\/~3\/0Ix-wZ2TEEY\/",
+ "credit": ""
+ },
+ "28": {
+ "title": "Burlesque Dancer Fired, Investigated by Secret Service for Trump Assassination Tweet",
+ "desc": "The Secret Service is investigating a burlesque dancer from Kentucky after she posted a Tweet that said she hoped someone would be \"kind enough\" to assassinate President Donald Trump.",
+ "link": "http:\/\/feedproxy.google.com\/~r\/breitbart\/~3\/uGQuzxuNlX8\/",
+ "credit": ""
+ },
+ "32": {
+ "title": "Five Facts About Trump\u2019s Reinstatement of the Mexico City Policy on Abortion",
+ "desc": "President Donald Trump signed an executive order Monday that reinstated what is known as the \"Mexico City Policy\" regarding U.S. aid for abortions overseas.",
+ "link": "http:\/\/feedproxy.google.com\/~r\/breitbart\/~3\/iZFQbB2GYj0\/",
+ "credit": ""
+ },
+ "36": {
+ "title": "Andrea Mitchell: Sean Spicer First Press Briefing Was \u2018Substantive\u2019 and \u2018Responsive\u2019",
+ "desc": "Monday on MSNBC commenting on the first official White House press briefing by press secretary Sean Spicer, Andrea Mitchell said it was both &amp;#8220;substantive&amp;#8221; and &amp;#8220;responsive.&amp;#8221; Mitchell said, &amp;#8220;First of all, he came out with a joke, with a light-hearted reference to the fact that Josh Earnest would still be the most popular, that his record of popularity would stand, that he messaged him last night. He attempted to fix \u2014 I think it was a reboot, you know, a chance to start over, frankly, a do-over. And it was substantive. It was responsive. He took lots of questions.&amp;#8221; &amp;#8220;He said that he intended to tell the truth, which is an important line to draw, saying that they may occasionally come out in haste and answer things incorrectly and have to fix it, but that he is dedicated to telling the truth,&amp;#8221; she added. &amp;#8220;That was an important question that had been raised by his performance on Saturday and of course, by what Kellyanne Conway said to Chuck Todd on &amp;#8216;Meet the Press&amp;#8217; when she, you know, talked about alternative facts.&amp;#8221; (h\/t Grabien) Follow Pam Key on Twitter @pamkeyNEN",
+ "link": "http:\/\/feedproxy.google.com\/~r\/breitbart\/~3\/TAup3X8RfPI\/",
+ "credit": ""
+ }
+ },
+ "duration": 39.6
+ }
+ };
+ dvp_meta.width = parseInt(vx.nvl(vx.dvp_width, 533));
+ dvp_meta.height = parseInt(vx.nvl(vx.dvp_height, 300));
+
+ var frtargets = {
+ "s1180": 95,
+ "s1003": 95,
+ "s995": 95,
+ "s3663": 95,
+ "s597": 95,
+ "s1032": 95,
+ "s3102": 95,
+ "s596": 95,
+ "s1874": 95,
+ "s1684": 95,
+ "s593": 95,
+ "s594": 95,
+ "s199": 95,
+ "s261": 95,
+ "s260": 95,
+ "s1109": 95,
+ "s417": 95,
+ "s1040": 95,
+ "s262": 95,
+ "s254": 95,
+ "s988": 95,
+ "s3111": 95,
+ "s3709": 95,
+ "s253": 95,
+ "s626": 95,
+ "s1685": 95,
+ "s3940": 50,
+ "s296": 50,
+ "s383": 50,
+ "s3419": 50
+ }; // 0%~100% friendly
+ var gfrdly = 0;
+ if ('s3419' in frtargets) {
+ var frspec = frtargets['s3419'];
+ var randnumber = (Math.random() * 100);
+ if (randnumber & lt; frspec) {
+ gfrdly = 1;
+ }
+ }
+ if (dvp_meta.adtagdefs & amp; & amp; dvp_meta.adtagdefs.googlea & amp; & amp; dvp_meta.adtagdefs.googlea.url) {
+ if (gfrdly == 1) {
+ dvp_meta.adtagdefs.googlea.friendly = true;
+ } else {
+ dvp_meta.adtagdefs.googlea.friendly = false;
+ dvp_meta.adtagdefs.googlea.url = dvp_meta.adtagdefs.googlea.url.replace("slotname=9292816986", "slotname=1769524866");
+ }
+ }
+
+ if (dvp_meta.adtagdefs & amp; & amp; dvp_meta.adtagdefs.aol_upfront) {
+ dvp_meta.adtagdefs.aol_upfront.friendly = true;
+ }
+ if (dvp_meta.adtagdefs & amp; & amp; dvp_meta.adtagdefs.appnexus) {
+ dvp_meta.adtagdefs.appnexus.friendly = true;
+ }
+
+ var dvpTrackName = "dvptrack";
+
+ vx.dvptrack('wf', '{"wf":"01: post runtime started"}');
+
+ function truncate(str, len, useWordBoundary, filler) {
+ if (filler == null) {
+ filler = '&amp;hellip;';
+ }
+ var isTooLong = str.length & gt;
+ len;
+ var s_ = isTooLong ? str.substr(0, len - 1) : str;
+ s_ = (useWordBoundary & amp; & amp; isTooLong) ? s_.substr(0, s_.lastIndexOf(' ')) : s_;
+ return isTooLong ? s_ + filler : s_;
+ }
+
+ var contDiv = document.getElementById("ds_player_container");
+ if (contDiv & amp; & amp; contDiv.style) {
+ contDiv.style.width = dvp_meta.width + "px";
+ contDiv.style.height = dvp_meta.height + "px";
+ }
+ var adContDiv = document.getElementById("ds_ad_container");
+ if (adContDiv & amp; & amp; adContDiv.style) {
+ adContDiv.style.width = dvp_meta.width + "px";
+ adContDiv.style.height = dvp_meta.height + "px";
+ }
+ for (var key in dvp_meta.adtagdefs) {
+ if (dvp_meta.adtagdefs[key]['url']) {
+ dvp_meta.adtagdefs[key]['url'] = dvp_meta.adtagdefs[key]['url'].replace(/__DYN_WIDTH__/g, dvp_meta.width).replace(/__DYN_HEIGHT__/g, dvp_meta.height);
+ }
+ }
+
+ vx.whenAvailable2(window, 'vxvideojsinit', function() {
+ vx.dvptrack('wf', '{"wf":"03: init function available"}');
+
+ var ctFrm = document.getElementById("ds_content_frame");
+ ctFrm.parentNode.style.width = "" + dvp_meta.width + "px";
+ ctFrm.parentNode.style.height = "" + dvp_meta.height + "px";
+ ctFrm.style.width = "" + dvp_meta.width + "px";
+ ctFrm.style.height = "" + dvp_meta.height + "px";
+ ctFrm.style.top = "0px";
+ ctFrm.style.left = "0px";
+ ctFrm.style.position = "absolute";
+ ctFrm.style.zIndex = zindex_base;
+
+ ctFrm.src = ds_sbase + '?controls=1&amp;loop=' + dvp_meta.loopcount + '&amp;autoplay=0&amp;tracker=059bee4c-fcbc-4d7d-8376-f90c428ea41b&amp;height=' + dvp_meta.height + '&amp;width=' + dvp_meta.width + '&amp;vurl=' + encodeURIComponent(dvp_meta.vid.video) + '&amp;poster=' + encodeURIComponent(dvp_meta.vid.thumbnail);
+
+ var actionDiv = document.createElement('div');
+ actionDiv.setAttribute("style", "width:100%;height:" + (dvp_meta.height - 32) + "px;z-index:" + (zindex_base + 5) + ";position:absolute;top:0;left:0;");
+ ctFrm.parentNode.insertBefore(actionDiv, ctFrm);
+
+ var capIdxLast = null;
+
+ function setSlideCaption(pos) {
+ if (pos & gt; = 0 & amp; & amp; dvp_meta.vid.caption) {
+ var capmeta = dvp_meta.vid.caption;
+ var idx = null;
+ var curr = 0;
+ var total = 0;
+ var found = 0;
+ for (var key in capmeta) {
+ if (capmeta.hasOwnProperty(key) & amp; & amp; !isNaN(tmpval = parseFloat(key)) & amp; & amp; tmpval & gt; = 0) {
+ total++;
+ if (found == 0) {
+ if (pos & lt; tmpval) {
+ found++;
+ } else {
+ curr++;
+ idx = key;
+ if (pos == tmpval) {
+ found++;
+ }
+ }
+ }
+ }
+ }
+ if (idx !== null & amp; & amp; idx != capIdxLast) {
+ // found new caption
+ capIdxLast = idx;
+
+ var el_curr = vx.ww.document.querySelector(".ds_slide_curr");
+ if (el_curr) {
+ el_curr.innerHTML = curr;
+ }
+ var el_total = vx.ww.document.querySelector(".ds_slide_total");
+ if (el_total) {
+ el_total.innerHTML = total;
+ }
+ var el_title = vx.ww.document.querySelector(".ds_title");
+ if (el_title) {
+ el_title.innerHTML = truncate(capmeta[idx]['title'], title_trim, true);
+ }
+ var el_desc = vx.ww.document.querySelector(".ds_summary");
+ if (el_desc) {
+ el_desc.innerHTML = truncate(capmeta[idx]['desc'], desc_trim, true);
+ }
+ var el_credit = vx.ww.document.querySelector(".ds_credit");
+ if (el_credit) {
+ el_credit.innerHTML = capmeta[idx]['credit'];
+ }
+ var link = capmeta[idx]['link'];
+ if (!link) {
+ link = dvp_meta.vid.link;
+ }
+ if (link) {
+ link = "window.open(ds_ct719197('" + link + "'),'" + click_target + "');";
+ actionDiv.setAttribute("onclick", link);
+ actionDiv.style.cursor = "pointer";
+ if (el_title) {
+ el_title.setAttribute("onclick", link);
+ el_title.style.cursor = "pointer";
+ }
+ if (el_desc) {
+ el_desc.setAttribute("onclick", link);
+ el_desc.style.cursor = "pointer";
+ }
+ } else {
+ actionDiv.removeAttribute("onclick");
+ actionDiv.style.cursor = "auto";
+ if (el_title) {
+ el_title.removeAttribute("onclick");
+ el_title.style.cursor = "auto";
+ }
+ if (el_desc) {
+ el_desc.removeAttribute("onclick");
+ el_desc.style.cursor = "auto";
+ }
+ }
+ }
+ }
+ }
+ setSlideCaption(0);
+
+ vx.addListener(window, 'message', function(event) {
+ if (!event.origin.match(/^https?:\/\/c5x8i7c7\.ssl\.hwcdn\.net/)) {
+ return;
+ }
+ vx.debug('ds_playerframe_message:' + event.origin + ":" + event.data);
+ if (event.data & amp; & amp; event.data.match & amp; & amp; event.data.match(/^playerpos[\d\.]+$/)) {
+ var position = event.data.substr(9);
+ if (position & gt; = 0) {
+ setSlideCaption(position);
+ }
+ }
+ });
+
+ var player = null; // holds data from callback
+ var comscore = null;
+ var rollcount = 0;
+ var options = {
+ playerContainer: 'ds_player_container',
+ adContainer: 'ds_ad_container',
+ width: dvp_meta.width,
+ height: dvp_meta.height,
+ playlist: dvp_meta,
+ tracker: dvpTrackName,
+ zIndex: zindex_base,
+ serial: true,
+ volumeBehavior: (mute_ad ? 'mute' : 'volume'),
+ friendlyIframe: friendly_iframe,
+ contentMute: function() {
+ vx.debug("client - mute fn");
+ ctFrm.contentWindow.postMessage("mute", "*");
+ },
+ contentUnmute: function() {
+ vx.debug("client - unmute fn");
+ ctFrm.contentWindow.postMessage("unmute", "*");
+ },
+ contentPause: function() {
+ vx.debug("client - pause fn");
+ adContDiv.style.zIndex = zindex_base + 7;
+ ctFrm.contentWindow.postMessage("pause", "*");
+ setTimeout(function() {
+ if (!comscore & amp; & amp; window.ns_ & amp; & amp; window.ns_.ReducedRequirementsStreamingAnalytics) {
+ comscore = new window.ns_.ReducedRequirementsStreamingAnalytics({
+ publisherId: '22807838'
+ });
+ }
+ if (comscore) {
+ rollcount++;
+ comscore.stop();
+ comscore.playVideoAdvertisement({
+ ns_st_cl: "0"
+ }, rollcount & gt; 1 ? ns_.ReducedRequirementsStreamingAnalytics.AdType.LinearOnDemandMidRoll : ns_.ReducedRequirementsStreamingAnalytics.AdType.LinearOnDemandPreRoll);
+ vx.dvptrack('cm', '{"cm":"playAd"}');
+ vx.debug("comscore&gt;&gt;playAd");
+ }
+ }, 1);
+ },
+ contentPlay: function() {
+ vx.debug("client - play fn");
+ adContDiv.style.zIndex = -1;
+ ctFrm.contentWindow.postMessage("play", "*");
+ setTimeout(function() {
+ if (!comscore & amp; & amp; window.ns_ & amp; & amp; window.ns_.ReducedRequirementsStreamingAnalytics) {
+ comscore = new window.ns_.ReducedRequirementsStreamingAnalytics({
+ publisherId: '22807838'
+ });
+ }
+ if (comscore) {
+ comscore.stop();
+ comscore.playVideoContentPart({
+ ns_st_ci: dvp_meta.vid.id,
+ ns_st_cl: parseInt(parseFloat(dvp_meta.vid.duration) * 1000),
+ ns_st_pu: "distroscale",
+ c3: "news",
+ c4: "*null",
+ c6: "*null"
+ }, ns_.ReducedRequirementsStreamingAnalytics.ContentType.ShortFormOnDemand);
+ vx.dvptrack('cm', '{"cm":"playContent"}');
+ vx.debug("comscore&gt;&gt;playContent");
+ }
+ }, 1);
+ },
+ contentSetVolume: function(vol) {
+ vx.debug("client - set volume:" + vol);
+ ctFrm.contentWindow.postMessage("setVolume:" + vol, "*");
+ },
+ adFinished: function() {
+ // this needs to be called after an ad finishes
+ // or after an error
+ vx.debug("***AdBreak finished")
+ },
+ playlistFinished: function() {
+ vx.debug("***AdBreak playlist over");
+ setTimeout(function() {
+ if (!comscore & amp; & amp; window.ns_ & amp; & amp; window.ns_.ReducedRequirementsStreamingAnalytics) {
+ comscore = new window.ns_.ReducedRequirementsStreamingAnalytics({
+ publisherId: '22807838'
+ });
+ }
+ if (comscore) {
+ comscore.stop();
+ }
+ }, 1);
+ }
+ }
+ setTimeout(function() {
+ if (!comscore & amp; & amp; window.ns_ & amp; & amp; window.ns_.ReducedRequirementsStreamingAnalytics) {
+ comscore = new window.ns_.ReducedRequirementsStreamingAnalytics({
+ publisherId: '22807838'
+ });
+ }
+ if (comscore) {
+ comscore.stop();
+ comscore.playVideoContentPart({
+ ns_st_ci: dvp_meta.vid.id,
+ ns_st_cl: parseInt(parseFloat(dvp_meta.vid.duration) * 1000),
+ ns_st_pu: "distroscale",
+ c3: "news",
+ c4: "*null",
+ c6: "*null"
+ }, ns_.ReducedRequirementsStreamingAnalytics.ContentType.ShortFormOnDemand);
+ vx.dvptrack('cm', '{"cm":"playContent"}');
+ vx.debug("comscore&gt;&gt;playContent");
+ }
+ }, 1);
+ window.vxvideojsinit(options, function(po) {
+ vx.debug("vxvideojsinit callback invoked!");
+ vx.debug(po);
+ player = po;
+ // configurable - time in seconds between ad breaks
+ player.startAdbreakTimer(20);
+
+ // trigger ad call when unit comes into view
+ var trackDiv = document.createElement("div");
+ trackDiv.id = "ds_player_sensor";
+ trackDiv.setAttribute("style", "width:1px;height:1px;padding:0;margin:0;border:none;background:none;position:relative;top:-300px");
+ contDiv.parentNode.insertBefore(trackDiv, contDiv);
+ var immediateAdFired = false;
+ vx.inview2.trackEl(trackDiv, window, function() {
+ if (!immediateAdFired) {
+ immediateAdFired = true;
+ vx.dvptrack('wf', '{"wf":"99: inview ad call"}');
+ var nowtag = [{
+ cp: "gg",
+ sdk: "ima_flash",
+ url: "//googleads.g.doubleclick.net/pagead/ads?client=ca-video-pub-3851171199385532&amp;slotname=6241611906&amp;ad_type=standardvideo&amp;description_url=http%3A%2F%2Fwww.breitbart.com%2Ftech%2F2016%2F12%2F22%2Fneutral-snopes-fact-checker-david-emery-un-angry-trump-supporters%2F&amp;max_ad_duration=60000&amp;videoad_start_delay=0" // TestY
+ }];
+ //var gdtargets={"512":1,"506":1,"751":1,"527":1,"566":1,"628":1,"670":1,"574":1,"501":1,"682":1,"717":1,"508":1,"556":1,"573":1,"533":1,"612":1,"602":1,"577":1,"543":1};
+ //if (gdtargets['0']==1) {
+ /*var brTag={
+ cp:"br",
+ sdk:"ima_flash",
+ url:"//vast.bp3870488.btrll.com/vast/3870488?n=059bee4c-fcbc-4d7d-8376-f90c428ea41b&amp;br_w="+dvp_meta.width+"&amp;br_h="+dvp_meta.height+"&amp;br_pageurl=http%3A%2F%2Fwww.breitbart.com%2Ftech%2F2016%2F12%2F22%2Fneutral-snopes-fact-checker-david-emery-un-angry-trump-supporters%2F"
+ };
+ nowtag.push(brTag);*/
+ //}
+ var sxtargets = {
+ "s1865": 100,
+ "s3194": 100,
+ "s988": 100,
+ "s3111": 20
+ }; // 0%~100%
+ var sxspec = 20;
+ if ('s3419' in sxtargets) {
+ sxspec = sxtargets['s3419'];
+ }
+ var randnumber = (Math.random() * 100);
+ if (randnumber & lt; sxspec) {
+ var sxTag = {
+ cp: "sx",
+ sdk: "ima_flash",
+ url: "//search.spotxchange.com/vast/2.00/157408?VPAID=1&amp;content_page_url=http%3A%2F%2Fwww.breitbart.com%2Ftech%2F2016%2F12%2F22%2Fneutral-snopes-fact-checker-david-emery-un-angry-trump-supporters%2F&amp;cb=178707&amp;player_width=" + dvp_meta.width + "&amp;player_height=" + dvp_meta.height + "&amp;token[page_url]=http%3A%2F%2Fwww.breitbart.com%2Ftech%2F2016%2F12%2F22%2Fneutral-snopes-fact-checker-david-emery-un-angry-trump-supporters%2F&amp;token[width]=" + dvp_meta.width + "&amp;token[height]=" + dvp_meta.height
+ };
+ nowtag.push(sxTag);
+ }
+ //}
+ player.startAdBreak(nowtag, 'mr');
+ } // firedTest
+ }, {
+ percent: 1, // percent of player viewable
+ time: 1 // time in ms to be visible
+ });
+
+ // configure mouse enter/leave to unmute/mute
+ if (!mute_ad) {
+ vx.addListener(contDiv, "mouseenter", function(event) {
+ vx.debug("mouseenter,unmute");
+ player.setMute(false);
+ });
+ vx.addListener(contDiv, "mouseleave", function(event) {
+ vx.debug("mouseleave, mute");
+ player.setMute(true);
+ });
+ }
+
+ vx.dvptrack('wf', '{"wf":"98: init function exit"}');
+ });
+ });
+
+ vx.dvptrack('wf', '{"wf":"99: outside init function"}');
+ }
+
+ window.dvptrack = function(name, extra) {
+ if (name == 'wf') {
+ return;
+ }
+ vx.debug("!&gt;&gt;&gt; " + name + " : " + JSON.stringify(extra));
+ var funcName = 'vxtrack059bee4c-fcbc-4d7d-8376-f90c428ea41b';
+ if (window[funcName]) {
+ window[funcName](name, extra);
+ }
+ };
+ vx.dvptrack = window.dvptrack;
+
+ vx.nvl = function(a, b) {
+ if (a === null || a === "" || a === undefined) {
+ return b;
+ }
+ return a;
+ };
+
+ var cppEl = document.getElementById("ds_cpp");
+ if (cppEl) {
+ vx.dvp_zindex_base = cppEl.getAttribute('data-dvp_zindex_base');
+ vx.dvp_title_trim = cppEl.getAttribute('data-dvp_title_trim');
+ vx.dvp_desc_trim = cppEl.getAttribute('data-dvp_desc_trim');
+ vx.dvp_mute_ad = cppEl.getAttribute('data-dvp_mute_ad');
+ vx.dvp_click_target = cppEl.getAttribute('data-dvp_click_target');
+ vx.dvp_friendly_iframe = cppEl.getAttribute('data-dvp_friendly_iframe');
+ vx.dvp_delay_init = cppEl.getAttribute('data-dvp_delay_init');
+ }
+
+ var dvp_init = function() {
+ var contEl = document.getElementById("ds_player_container");
+ if (contEl) {
+ // Responsive width/height
+ vx.dvp_width = 533;
+ vx.dvp_height = 300;
+ var dimEx = contEl.outerHTML.match(/var dvp_meta = \{"width":"?([^",]+)"?,"height":"?([^",]+)"?,/);
+ if (dimEx & amp; & amp; dimEx.length & gt; 2) {
+ vx.dvp_width = dimEx[1];
+ vx.dvp_height = dimEx[2];
+ }
+ if (vx.dvp_width == '0') {
+ vx.dvp_width = contEl.parentNode.clientWidth;
+ if (vx.dvp_width === 0) {
+ vx.dvp_width = contEl.parentNode.offsetWidth;
+ }
+ vx.dvp_width = Math.max(Math.min(vx.dvp_width, 1000), 300);
+ } else {
+ vx.dvp_width = parseInt(vx.dvp_width);
+ }
+ if (vx.dvp_height == '0') {
+ vx.dvp_height = '16:9'; // default aspect ratio
+ }
+ if (typeof vx.dvp_height === 'string' & amp; & amp; vx.dvp_height.match(/^ *(\d+):(\d+) *$/)) {
+ var ar = vx.dvp_height.match(/^ *(\d+):(\d+) *$/);
+ var ratio = 1 / (ar[1] / ar[2]);
+ vx.dvp_height = Math.round(vx.dvp_width * ratio);
+ } else {
+ vx.dvp_height = parseInt(vx.dvp_height);
+ }
+ if (vx.dvp_width & gt; = 400) {
+ vx.dvp_height = Math.max(vx.dvp_height, 300);
+ }
+ vx.dvptrack('wf', '{"wf":"00: size ' + vx.dvp_width + ',' + vx.dvp_height + '"}');
+
+ init();
+ }
+ };
+
+ if (vx.dvp_delay_init & gt; 0) {
+ var initialized = 0;
+ var intDelay = setInterval(function() {
+ if (vx.dvp_delay_ready == 1) {
+ clearInterval(intDelay);
+ intDelay = null;
+ if (initialized == 0) {
+ initialized = 1;
+ dvp_init();
+ }
+ }
+ }, 500);
+ setTimeout(function() {
+ clearInterval(intDelay);
+ intDelay = null;
+ if (initialized == 0) {
+ initialized = 1;
+ dvp_init();
+ }
+ }, vx.dvp_delay_init);
+ } else {
+ dvp_init();
+ }
+
+ })();
+ </script>
+ <script class="dsscript" type="text/dsscript">
+ (function() { function init() { var zindex_base=parseInt(vx.nvl(vx.dvp_zindex_base,20)); var title_trim=parseInt(vx.nvl(vx.dvp_title_trim,60)); var desc_trim=parseInt(vx.nvl(vx.dvp_desc_trim,120)); var mute_ad=parseInt(vx.nvl(vx.dvp_mute_ad,0)); var click_target=vx.nvl(vx.dvp_click_target,"_blank"); var friendly_iframe=parseInt(vx.nvl(vx.dvp_friendly_iframe,0)); var ds_sbase="//c5x8i7c7.ssl.hwcdn.net/videojs/5.1.0_20160613/show.html"; var dvp_meta = {"width":"0","height":"0","loopcount":"30","adtags":{"1":["googlea","openxdesktop_channel","spotx_channel_desktop","pulsepoint_desktop"],"2":["googlea","openxdesktop_channel","pulsepoint_desktop","spotx_channel_desktop"]},"adtagdefs":{"googlea":{"cp":"gg","url":"\/\/googleads.g.doubleclick.net\/pagead\/ads?client=ca-video-pub-3851171199385532&amp;slotname=9292816986&amp;ad_type=standardvideo&amp;description_url=http%3A%2F%2Fwww.breitbart.com%2Ftech%2F2016%2F12%2F22%2Fneutral-snopes-fact-checker-david-emery-un-angry-trump-supporters%2F&amp;max_ad_duration=60000&amp;videoad_start_delay=0","sdk":"ima_flash"},"openxdesktop_channel":{"cp":"ox","url":"\/\/distroscale-d.openx.net\/v\/1.0\/av?auid=538587338&amp;url=http%3A%2F%2Fwww.breitbart.com%2Ftech%2F2016%2F12%2F22%2Fneutral-snopes-fact-checker-david-emery-un-angry-trump-supporters%2F","sdk":"ima_flash"},"spotx_channel_desktop":{"cp":"sx","url":"\/\/search.spotxchange.com\/vast\/2.00\/150945?VPAID=1&amp;content_page_url=http%3A%2F%2Fwww.breitbart.com%2Ftech%2F2016%2F12%2F22%2Fneutral-snopes-fact-checker-david-emery-un-angry-trump-supporters%2F&amp;cb=766008&amp;player_width=__DYN_WIDTH__&amp;player_height=__DYN_HEIGHT__&amp;token[page_url]=http%3A%2F%2Fwww.breitbart.com%2Ftech%2F2016%2F12%2F22%2Fneutral-snopes-fact-checker-david-emery-un-angry-trump-supporters%2F&amp;token[width]=__DYN_WIDTH__&amp;token[height]=__DYN_HEIGHT__","sdk":"ima_flash"},"pulsepoint_desktop":{"cp":"pp","url":"\/\/ads.contextweb.com\/TagPublish\/getvideo.aspx?cp=560840&amp;ct=538553&amp;cwu=http%3A%2F%2Fwww.breitbart.com%2Ftech%2F2016%2F12%2F22%2Fneutral-snopes-fact-checker-david-emery-un-angry-trump-supporters%2F&amp;mrnd=908206&amp;if=6&amp;cf=Video&amp;vpt=0&amp;video=%7B%22pos%22%3A0%2C%22minduration%22%3A0%2C%22maxduration%22%3A60%2C%22api%22%3A%5B1%2C2%5D%2C%22protocols%22%3A%5B2%2C3%2C5%2C6%5D%2C%22mimes%22%3A%5B%22video%2Fmp4%22%2C%22video%2Fwebm%22%2C%22video%2Fx-flv%22%2C%22application%2Fjavascript%22%2C%22application%2Fx-shockwave-flash%22%2C%22application%2Fx-shockwave-flash%22%5D%2C%22playbackmethod%22%3A%5B1%5D%2C%22delivery%22%3A%5B2%5D%2C%22w%22%3A__DYN_WIDTH__%2C%22h%22%3A__DYN_HEIGHT__%7D","sdk":"ima_flash"}},"vid":{"id":"160222","title":"Top Articles from Breitbart","description":"","video":"\/\/c5x8i7c7.ssl.hwcdn.net\/videos\/dgv_breitbart\/201701240713_5886e0400d3dc\/dgv_breitbart_top_articles_from_breitbart_201701240713_5886e0400d3dc_new.mp4","thumbnail":"\/\/c5x8i7c7.ssl.hwcdn.net\/videos\/dgv_breitbart\/201701240713_5886e0400d3dc\/dgv_breitbart_top_articles_from_breitbart_201701240713_5886e0400d3dc_new.jpg","link":null,"signature":null,"caption":{"0":{"title":"Chelsea Handler Won\u2019t Interview Melania Trump: \u2018She Can Barely Speak English\u2019","desc":"President Donald Trump and First Lady Melania Trump can save themselves a visit to Chelsea Handler's talk show, because she won't speak to them \u2014 even if the president himself requested an interview.","link":"http:\/\/feedproxy.google.com\/~r\/breitbart\/~3\/o2FetSnvM-I\/","credit":""},"4":{"title":"Gloria Steinem: Woman Felt \u2018Sexually Assaulted\u2019 by Trump\u2019s \u2018Language,\u2019 \u2018Attitude\u2019","desc":"Monday on MSNBC&amp;#8217;s &amp;#8220;All In,&amp;#8221; discussing Saturday&amp;#8217;s women\u2019s march on Washington, feminist and political activist Gloria Steinem said President Donald Trump made woman feel &amp;#8220;sexually assaulted by his language and by his attitude.&amp;#8221; Partial transcript as follows: HAYES: It struck me a lot of the signs, they were about all different kinds of issues and it was interesting to see that, but a lot of signs about the infamous comments the president of the United States made on the &amp;#8220;Access Hollywood&amp;#8221; tape. One of the things striking to me when he bragged about sexual assault, how easy it was to get away with it when you&amp;#8217;re a celebrity. There was a moment in the campaign where that happened and everyone thought, &amp;#8220;Oh my God,&amp;#8221; and you had Republican members of Congress running to every microphone to say &amp;#8220;I can&amp;#8217;t look my daughter in the eyes about this,&amp;#8221; and then it just sort of disappeared down the memory hole. STEINEM: It didn&amp;#8217;t disappear. I think\u00a0 people felt, women felt, and men on behalf of women felt sexually assaulted by his language and by his attitude. There&amp;#8217;s a common theme here of bodily integrity. We get to control our own bodies. The","link":"http:\/\/feedproxy.google.com\/~r\/breitbart\/~3\/pMBnY6ELN-Y\/","credit":""},"8":{"title":"Despite Democrat Obstruction U.S. Senate Confirms Mike Pompeo as Next Director of CIA","desc":"On Monday evening, Kansas Republican Mike Pompeo was confirmed as the next director of the C.I.A. by the U.S. Senate, despite days of stalling and obstruction by Senate Democrats.","link":"http:\/\/feedproxy.google.com\/~r\/breitbart\/~3\/FhGqji4i3pg\/","credit":""},"12":{"title":"Trump White House Pledges Support for Law Enforcement in White House Page\u00a0 \u00a0","desc":"President Trump is keeping his campaign promise as president by pledging to stand up for our Law Enforcement.","link":"http:\/\/feedproxy.google.com\/~r\/breitbart\/~3\/m9cF2OkTrXE\/","credit":""},"16":{"title":"Teamsters\u2019 Jimmy Hoffa Lavishes Praise on President Trump on Trade Policy","desc":"International Brotherhood of Teamsters president James P. Hoffa praised President Donald J. Trump\u2019s move to crush the Trans Pacific Partnership (TPP) once and for all on Monday, the second major labor union leader to do so.","link":"http:\/\/feedproxy.google.com\/~r\/breitbart\/~3\/WQ3Mte2b2Hk\/","credit":""},"20":{"title":"Report: Obama Gave 1 Million to Palestinians in Last Hours","desc":"The Associated Press reported Monday that former President Barack Obama released 1 million in U.S. funding for the Palestinian Authority on the morning of Friday, January 20 -- just hours before he was to leave office.","link":"http:\/\/feedproxy.google.com\/~r\/breitbart\/~3\/bmyMPuEjp6E\/","credit":""},"24":{"title":"Breitbart News Daily: Goodbye TPP; Hello American Jobs","desc":"On the Tuesday edition of Breitbart News Daily, broadcast live on SiriusXM Patriot Channel 125 from 6AM to 9AM Eastern, Breitbart Editor-in-Chief Alex Marlow will continue our discussion of President Trump\u2019s first 100 days. Wisconsin businessman Paul Nehlen will discuss the demise of TPP. Scott Paul, President of the Alliance for American Manufacturing, will discuss President Trump\u2019s meeting with union members, his trade policies favoring American manufacturing, and the open letter Paul\u2019s organization sent to President Trump concerning bringing back manufacturing jobs. Former Secret Service office Gary Bryne will discuss the report that the Secret Service is investigating Madonna after her remarks that she\u2019s thought about \u201cblowing up the White House.\u201d Kristan Hawkins, President of Students for Life, will discuss the Annual March for Life this week and President Trump\u2019s executive order reinstating the Mexico City policy prohibiting U.S. aid for abortion overseas. Live from London, Rome, and Jerusalem, Breitbart correspondents will provide updates on the latest international news. Breitbart News Daily is the first live, conservative radio enterprise to air seven days a week. SiriusXM Vice President for news and talk Dave Gorab called the show \u201cthe conservative news show of record.\u201d Follow Breitbart News on Twitter for live","link":"http:\/\/feedproxy.google.com\/~r\/breitbart\/~3\/0Ix-wZ2TEEY\/","credit":""},"28":{"title":"Burlesque Dancer Fired, Investigated by Secret Service for Trump Assassination Tweet","desc":"The Secret Service is investigating a burlesque dancer from Kentucky after she posted a Tweet that said she hoped someone would be \"kind enough\" to assassinate President Donald Trump.","link":"http:\/\/feedproxy.google.com\/~r\/breitbart\/~3\/uGQuzxuNlX8\/","credit":""},"32":{"title":"Five Facts About Trump\u2019s Reinstatement of the Mexico City Policy on Abortion","desc":"President Donald Trump signed an executive order Monday that reinstated what is known as the \"Mexico City Policy\" regarding U.S. aid for abortions overseas.","link":"http:\/\/feedproxy.google.com\/~r\/breitbart\/~3\/iZFQbB2GYj0\/","credit":""},"36":{"title":"Andrea Mitchell: Sean Spicer First Press Briefing Was \u2018Substantive\u2019 and \u2018Responsive\u2019","desc":"Monday on MSNBC commenting on the first official White House press briefing by press secretary Sean Spicer, Andrea Mitchell said it was both &amp;#8220;substantive&amp;#8221; and &amp;#8220;responsive.&amp;#8221; Mitchell said, &amp;#8220;First of all, he came out with a joke, with a light-hearted reference to the fact that Josh Earnest would still be the most popular, that his record of popularity would stand, that he messaged him last night. He attempted to fix \u2014 I think it was a reboot, you know, a chance to start over, frankly, a do-over. And it was substantive. It was responsive. He took lots of questions.&amp;#8221; &amp;#8220;He said that he intended to tell the truth, which is an important line to draw, saying that they may occasionally come out in haste and answer things incorrectly and have to fix it, but that he is dedicated to telling the truth,&amp;#8221; she added. &amp;#8220;That was an important question that had been raised by his performance on Saturday and of course, by what Kellyanne Conway said to Chuck Todd on &amp;#8216;Meet the Press&amp;#8217; when she, you know, talked about alternative facts.&amp;#8221; (h\/t Grabien) Follow Pam Key on Twitter @pamkeyNEN","link":"http:\/\/feedproxy.google.com\/~r\/breitbart\/~3\/TAup3X8RfPI\/","credit":""}},"duration":39.6}}; dvp_meta.width=parseInt(vx.nvl(vx.dvp_width,533)); dvp_meta.height=parseInt(vx.nvl(vx.dvp_height,300)); var frtargets={"s1180":95,"s1003":95,"s995":95,"s3663":95,"s597":95,"s1032":95,"s3102":95,"s596":95,"s1874":95,"s1684":95,"s593":95,"s594":95,"s199":95,"s261":95,"s260":95,"s1109":95,"s417":95,"s1040":95,"s262":95,"s254":95,"s988":95,"s3111":95,"s3709":95,"s253":95,"s626":95,"s1685":95,"s3940":50,"s296":50,"s383":50,"s3419":50}; // 0%~100% friendly var gfrdly=0; if ('s3419' in frtargets) { var frspec=frtargets['s3419']; var randnumber=(Math.random()*100); if (randnumber&lt;frspec) { gfrdly=1; } } if (dvp_meta.adtagdefs&amp;&amp;dvp_meta.adtagdefs.googlea&amp;&amp;dvp_meta.adtagdefs.googlea.url) { if (gfrdly==1) { dvp_meta.adtagdefs.googlea.friendly=true; } else { dvp_meta.adtagdefs.googlea.friendly=false; dvp_meta.adtagdefs.googlea.url=dvp_meta.adtagdefs.googlea.url.replace("slotname=9292816986","slotname=1769524866"); } } if (dvp_meta.adtagdefs&amp;&amp;dvp_meta.adtagdefs.aol_upfront) { dvp_meta.adtagdefs.aol_upfront.friendly=true; } if (dvp_meta.adtagdefs&amp;&amp;dvp_meta.adtagdefs.appnexus) { dvp_meta.adtagdefs.appnexus.friendly=true; } var dvpTrackName = "dvptrack"; vx.dvptrack('wf', '{"wf":"01: post runtime started"}'); function truncate(str, len, useWordBoundary, filler){ if (filler==null) { filler='&amp;hellip;'; } var isTooLong = str.length &gt; len; var s_ = isTooLong ? str.substr(0,len-1) : str; s_ = (useWordBoundary &amp;&amp; isTooLong) ? s_.substr(0,s_.lastIndexOf(' ')) : s_; return isTooLong ? s_ + filler : s_; } var contDiv = document.getElementById("ds_player_container"); if (contDiv &amp;&amp; contDiv.style) { contDiv.style.width = dvp_meta.width + "px"; contDiv.style.height = dvp_meta.height + "px"; } var adContDiv = document.getElementById("ds_ad_container"); if (adContDiv &amp;&amp; adContDiv.style) { adContDiv.style.width = dvp_meta.width + "px"; adContDiv.style.height = dvp_meta.height + "px"; } for (var key in dvp_meta.adtagdefs) { if (dvp_meta.adtagdefs[key]['url']) { dvp_meta.adtagdefs[key]['url']=dvp_meta.adtagdefs[key]['url'].replace(/__DYN_WIDTH__/g,dvp_meta.width).replace(/__DYN_HEIGHT__/g,dvp_meta.height); } } vx.whenAvailable2(window, 'vxvideojsinit', function() { vx.dvptrack('wf', '{"wf":"03: init function available"}'); var ctFrm = document.getElementById("ds_content_frame"); ctFrm.parentNode.style.width = "" + dvp_meta.width + "px"; ctFrm.parentNode.style.height = "" + dvp_meta.height + "px"; ctFrm.style.width = "" + dvp_meta.width + "px"; ctFrm.style.height = "" + dvp_meta.height + "px"; ctFrm.style.top = "0px"; ctFrm.style.left = "0px"; ctFrm.style.position = "absolute"; ctFrm.style.zIndex = zindex_base; ctFrm.src = ds_sbase+'?controls=1&amp;loop=' + dvp_meta.loopcount + '&amp;autoplay=0&amp;tracker=059bee4c-fcbc-4d7d-8376-f90c428ea41b&amp;height=' + dvp_meta.height + '&amp;width=' + dvp_meta.width + '&amp;vurl=' + encodeURIComponent(dvp_meta.vid.video) + '&amp;poster=' + encodeURIComponent(dvp_meta.vid.thumbnail); var actionDiv=document.createElement('div'); actionDiv.setAttribute("style","width:100%;height:"+(dvp_meta.height-32)+"px;z-index:"+(zindex_base+5)+";position:absolute;top:0;left:0;"); ctFrm.parentNode.insertBefore(actionDiv,ctFrm); var capIdxLast=null; function setSlideCaption(pos) { if (pos&gt;=0 &amp;&amp; dvp_meta.vid.caption) { var capmeta=dvp_meta.vid.caption; var idx=null; var curr=0; var total=0; var found=0; for (var key in capmeta) { if (capmeta.hasOwnProperty(key) &amp;&amp; !isNaN(tmpval=parseFloat(key)) &amp;&amp; tmpval&gt;=0) { total++; if (found==0) { if (pos&lt;tmpval) { found++; } else { curr++; idx=key; if (pos==tmpval) { found++; } } } } } if (idx!==null&amp;&amp;idx!=capIdxLast) { // found new caption capIdxLast=idx; var el_curr=vx.ww.document.querySelector(".ds_slide_curr"); if (el_curr) { el_curr.innerHTML=curr; } var el_total=vx.ww.document.querySelector(".ds_slide_total"); if (el_total) { el_total.innerHTML=total; } var el_title=vx.ww.document.querySelector(".ds_title"); if (el_title) { el_title.innerHTML=truncate(capmeta[idx]['title'], title_trim, true); } var el_desc=vx.ww.document.querySelector(".ds_summary"); if (el_desc) { el_desc.innerHTML=truncate(capmeta[idx]['desc'], desc_trim, true); } var el_credit=vx.ww.document.querySelector(".ds_credit"); if (el_credit) { el_credit.innerHTML=capmeta[idx]['credit']; } var link=capmeta[idx]['link']; if (!link) { link=dvp_meta.vid.link; } if (link) { link="window.open(ds_ct719197('"+link+"'),'"+click_target+"');"; actionDiv.setAttribute("onclick",link); actionDiv.style.cursor="pointer"; if (el_title) { el_title.setAttribute("onclick",link); el_title.style.cursor="pointer"; } if (el_desc) { el_desc.setAttribute("onclick",link); el_desc.style.cursor="pointer"; } } else { actionDiv.removeAttribute("onclick"); actionDiv.style.cursor="auto"; if (el_title) { el_title.removeAttribute("onclick"); el_title.style.cursor="auto"; } if (el_desc) { el_desc.removeAttribute("onclick"); el_desc.style.cursor="auto"; } } } } } setSlideCaption(0); vx.addListener(window, 'message', function(event) { if (!event.origin.match(/^https?:\/\/c5x8i7c7\.ssl\.hwcdn\.net/)) { return; } vx.debug('ds_playerframe_message:' + event.origin + ":" + event.data); if (event.data &amp;&amp; event.data.match &amp;&amp; event.data.match(/^playerpos[\d\.]+$/)) { var position=event.data.substr(9); if (position&gt;=0) { setSlideCaption(position); } } }); var player = null; // holds data from callback var comscore=null; var rollcount=0; var options = { playerContainer: 'ds_player_container', adContainer: 'ds_ad_container', width: dvp_meta.width, height: dvp_meta.height, playlist: dvp_meta, tracker: dvpTrackName, zIndex: zindex_base, serial: true, volumeBehavior: (mute_ad ? 'mute' : 'volume'), friendlyIframe: friendly_iframe, contentMute: function() { vx.debug("client - mute fn"); ctFrm.contentWindow.postMessage("mute", "*"); }, contentUnmute: function() { vx.debug("client - unmute fn"); ctFrm.contentWindow.postMessage("unmute", "*"); }, contentPause: function() { vx.debug("client - pause fn"); adContDiv.style.zIndex = zindex_base+7; ctFrm.contentWindow.postMessage("pause", "*"); setTimeout(function(){ if (!comscore &amp;&amp; window.ns_ &amp;&amp; window.ns_.ReducedRequirementsStreamingAnalytics) { comscore = new window.ns_.ReducedRequirementsStreamingAnalytics({publisherId:'22807838'}); } if(comscore){ rollcount++; comscore.stop(); comscore.playVideoAdvertisement({ns_st_cl:"0"},rollcount&gt;1?ns_.ReducedRequirementsStreamingAnalytics.AdType.LinearOnDemandMidRoll:ns_.ReducedRequirementsStreamingAnalytics.AdType.LinearOnDemandPreRoll); vx.dvptrack('cm', '{"cm":"playAd"}'); vx.debug("comscore&gt;&gt;playAd"); } },1); }, contentPlay: function() { vx.debug("client - play fn"); adContDiv.style.zIndex = -1; ctFrm.contentWindow.postMessage("play", "*"); setTimeout(function(){ if (!comscore &amp;&amp; window.ns_ &amp;&amp; window.ns_.ReducedRequirementsStreamingAnalytics) { comscore = new window.ns_.ReducedRequirementsStreamingAnalytics({publisherId:'22807838'}); } if(comscore){ comscore.stop(); comscore.playVideoContentPart({ns_st_ci:dvp_meta.vid.id,ns_st_cl:parseInt(parseFloat(dvp_meta.vid.duration)*1000),ns_st_pu:"distroscale",c3:"news",c4:"*null",c6:"*null"},ns_.ReducedRequirementsStreamingAnalytics.ContentType.ShortFormOnDemand); vx.dvptrack('cm', '{"cm":"playContent"}'); vx.debug("comscore&gt;&gt;playContent"); } },1); }, contentSetVolume: function(vol) { vx.debug("client - set volume:" + vol); ctFrm.contentWindow.postMessage("setVolume:" + vol, "*"); }, adFinished: function() { // this needs to be called after an ad finishes // or after an error vx.debug("***AdBreak finished") }, playlistFinished: function() { vx.debug("***AdBreak playlist over"); setTimeout(function(){ if (!comscore &amp;&amp; window.ns_ &amp;&amp; window.ns_.ReducedRequirementsStreamingAnalytics) { comscore = new window.ns_.ReducedRequirementsStreamingAnalytics({publisherId:'22807838'}); } if(comscore){ comscore.stop(); } },1); } } setTimeout(function(){ if (!comscore &amp;&amp; window.ns_ &amp;&amp; window.ns_.ReducedRequirementsStreamingAnalytics) { comscore = new window.ns_.ReducedRequirementsStreamingAnalytics({publisherId:'22807838'}); } if(comscore){ comscore.stop(); comscore.playVideoContentPart({ns_st_ci:dvp_meta.vid.id,ns_st_cl:parseInt(parseFloat(dvp_meta.vid.duration)*1000),ns_st_pu:"distroscale",c3:"news",c4:"*null",c6:"*null"},ns_.ReducedRequirementsStreamingAnalytics.ContentType.ShortFormOnDemand); vx.dvptrack('cm', '{"cm":"playContent"}'); vx.debug("comscore&gt;&gt;playContent"); } },1); window.vxvideojsinit(options, function(po) { vx.debug("vxvideojsinit callback invoked!"); vx.debug(po); player = po; // configurable - time in seconds between ad breaks player.startAdbreakTimer(20); // trigger ad call when unit comes into view var trackDiv=document.createElement("div"); trackDiv.id="ds_player_sensor"; trackDiv.setAttribute("style","width:1px;height:1px;padding:0;margin:0;border:none;background:none;position:relative;top:-300px"); contDiv.parentNode.insertBefore(trackDiv,contDiv); var immediateAdFired = false; vx.inview2.trackEl(trackDiv, window, function () { if (!immediateAdFired) { immediateAdFired = true; vx.dvptrack('wf', '{"wf":"99: inview ad call"}'); var nowtag=[{ cp:"gg", sdk:"ima_flash", url:"//googleads.g.doubleclick.net/pagead/ads?client=ca-video-pub-3851171199385532&amp;slotname=6241611906&amp;ad_type=standardvideo&amp;description_url=http%3A%2F%2Fwww.breitbart.com%2Ftech%2F2016%2F12%2F22%2Fneutral-snopes-fact-checker-david-emery-un-angry-trump-supporters%2F&amp;max_ad_duration=60000&amp;videoad_start_delay=0" // TestY }]; //var gdtargets={"512":1,"506":1,"751":1,"527":1,"566":1,"628":1,"670":1,"574":1,"501":1,"682":1,"717":1,"508":1,"556":1,"573":1,"533":1,"612":1,"602":1,"577":1,"543":1}; //if (gdtargets['0']==1) { /*var brTag={ cp:"br", sdk:"ima_flash", url:"//vast.bp3870488.btrll.com/vast/3870488?n=059bee4c-fcbc-4d7d-8376-f90c428ea41b&amp;br_w="+dvp_meta.width+"&amp;br_h="+dvp_meta.height+"&amp;br_pageurl=http%3A%2F%2Fwww.breitbart.com%2Ftech%2F2016%2F12%2F22%2Fneutral-snopes-fact-checker-david-emery-un-angry-trump-supporters%2F" }; nowtag.push(brTag);*/ //} var sxtargets={"s1865":100,"s3194":100,"s988":100,"s3111":20}; // 0%~100% var sxspec=20; if ('s3419' in sxtargets) { sxspec=sxtargets['s3419']; } var randnumber=(Math.random()*100); if (randnumber&lt;sxspec) { var sxTag={ cp:"sx", sdk:"ima_flash", url:"//search.spotxchange.com/vast/2.00/157408?VPAID=1&amp;content_page_url=http%3A%2F%2Fwww.breitbart.com%2Ftech%2F2016%2F12%2F22%2Fneutral-snopes-fact-checker-david-emery-un-angry-trump-supporters%2F&amp;cb=178707&amp;player_width="+dvp_meta.width+"&amp;player_height="+dvp_meta.height+"&amp;token[page_url]=http%3A%2F%2Fwww.breitbart.com%2Ftech%2F2016%2F12%2F22%2Fneutral-snopes-fact-checker-david-emery-un-angry-trump-supporters%2F&amp;token[width]="+dvp_meta.width+"&amp;token[height]="+dvp_meta.height }; nowtag.push(sxTag); } //} player.startAdBreak(nowtag, 'mr'); } // firedTest }, { percent: 1, // percent of player viewable time: 1 // time in ms to be visible }); // configure mouse enter/leave to unmute/mute if (!mute_ad) { vx.addListener(contDiv, "mouseenter", function(event) { vx.debug("mouseenter,unmute"); player.setMute(false); }); vx.addListener(contDiv, "mouseleave", function(event) { vx.debug("mouseleave, mute"); player.setMute(true); }); } vx.dvptrack('wf', '{"wf":"98: init function exit"}'); }); }); vx.dvptrack('wf', '{"wf":"99: outside init function"}'); } window.dvptrack=function(name,extra) { if (name == 'wf') { return; } vx.debug("!&gt;&gt;&gt; " + name + " : " + JSON.stringify(extra)); var funcName='vxtrack059bee4c-fcbc-4d7d-8376-f90c428ea41b'; if (window[funcName]) { window[funcName](name,extra); } }; vx.dvptrack=window.dvptrack; vx.nvl=function(a,b) { if (a===null || a==="" || a===undefined) { return b; } return a; }; var cppEl=document.getElementById("ds_cpp"); if (cppEl) { vx.dvp_zindex_base=cppEl.getAttribute('data-dvp_zindex_base'); vx.dvp_title_trim=cppEl.getAttribute('data-dvp_title_trim'); vx.dvp_desc_trim=cppEl.getAttribute('data-dvp_desc_trim'); vx.dvp_mute_ad=cppEl.getAttribute('data-dvp_mute_ad'); vx.dvp_click_target=cppEl.getAttribute('data-dvp_click_target'); vx.dvp_friendly_iframe=cppEl.getAttribute('data-dvp_friendly_iframe'); vx.dvp_delay_init=cppEl.getAttribute('data-dvp_delay_init'); } var dvp_init=function(){ var contEl=document.getElementById("ds_player_container"); if (contEl) { // Responsive width/height vx.dvp_width=533; vx.dvp_height=300; var dimEx=contEl.outerHTML.match(/var dvp_meta = \{"width":"?([^",]+)"?,"height":"?([^",]+)"?,/); if (dimEx&amp;&amp;dimEx.length&gt;2) { vx.dvp_width=dimEx[1]; vx.dvp_height=dimEx[2]; } if (vx.dvp_width=='0') { vx.dvp_width=contEl.parentNode.clientWidth; if(vx.dvp_width === 0){ vx.dvp_width=contEl.parentNode.offsetWidth; } vx.dvp_width=Math.max(Math.min(vx.dvp_width,1000),300); } else { vx.dvp_width=parseInt(vx.dvp_width); } if (vx.dvp_height=='0') { vx.dvp_height='16:9'; // default aspect ratio } if (typeof vx.dvp_height==='string' &amp;&amp; vx.dvp_height.match(/^ *(\d+):(\d+) *$/)) { var ar = vx.dvp_height.match(/^ *(\d+):(\d+) *$/); var ratio = 1 / (ar[1] / ar[2]); vx.dvp_height=Math.round(vx.dvp_width * ratio); } else { vx.dvp_height=parseInt(vx.dvp_height); } if (vx.dvp_width&gt;=400) { vx.dvp_height=Math.max(vx.dvp_height,300); } vx.dvptrack('wf','{"wf":"00: size '+vx.dvp_width+','+vx.dvp_height+'"}'); init(); } }; if (vx.dvp_delay_init&gt;0) { var initialized=0; var intDelay=setInterval(function(){ if (vx.dvp_delay_ready==1) { clearInterval(intDelay); intDelay=null; if (initialized==0) { initialized=1; dvp_init(); } } },500); setTimeout(function(){ clearInterval(intDelay); intDelay=null; if (initialized==0) { initialized=1; dvp_init(); } },vx.dvp_delay_init); } else { dvp_init(); } })();
+ </script>
+ <div id="ds_mute" class="ds_mute" style="display: none; z-index: 100; box-sizing: border-box; border: 1px solid black; background-attachment: scroll; background-color: lightgrey; width: 60px; height: 60px; opacity: 0.3; padding: 0px; right: 10px; position: absolute; bottom: 10px; background-size: contain; background-repeat: no-repeat no-repeat;"></div>
+ </div>
+ </div>
+
+ <div style="clear:both"></div>
+ </div>
+ <div class="ds_sponsorbox" style="text-align: right;position: absolute;bottom: -20px;right: 4px; font-size:9px;margin:0px;">
+ <a href="//i.jsrdn.com/i/1.gif?r=h8yu&amp;k=ZAl1cy13ZXN0LTJjCWgJaS0wMzQ1ZTU0YmJiMzFhMThiYQl1CWQwOWNmNWM1LTE2ZGMtNDI2NS1iMmFlLTQxNWViOTNiYjM5Nwl2CWNkYWZkNTY5LTc4MzEtNDc0Zi04MWJkLWUyNGI1NjM0ZjYyMQl2bAkyMDE3MDEyNC4wOTQ5CXZ0CTIwMTcwMTI0LjA5NDkJdnMJMjAxNjEwMjcJdmMJMjAxNjEwMjcJaQkwNTliZWU0Yy1mY2JjLTRkN2QtODM3Ni1mOTBjNDI4ZWE0MWIJZglodHRwOi8vd3d3LmJyZWl0YmFydC5jb20vdGVjaC8yMDE2LzEyLzIyL25ldXRyYWwtc25vcGVzLWZhY3QtY2hlY2tlci1kYXZpZC1lbWVyeS11bi1hbmdyeS10cnVtcC1zdXBwb3J0ZXJzLwlxCTMxMDA4NjFiLWMyYmMtNDBmMC04YTM1LThiNGM0N2E4OTVlOAltCTIyMzQyCWIJMjYyCWcJNDEwCXQJMzk5MwljCTQwNDMJbAk2MDYwCXoJNTU3MglzCTM0MTkJcAkyMjQ0NQl3CW5ld3MJZ2MJVFcJZ3IJMDMJZ2QJMAluZQlpdgluZAlpdglzZAlicmVpdGJhcnQuY29tCW5mCWl2CXFwCTUwCXF0CTI1MDAJcG4JNzYJdm4JMTYwMjIyCWUJY2sJYQk4NTAJbwk&amp;fwd=http%3A%2F%2Fdistroscale.com" rel="nofollow">Powered By <span style="display:block !important;width:1px !important;height:1px !important;position:fixed !important;bottom:0 !important;right:0 !important;border:none !important;margin:0 !important;padding:0 !important;" class="ds_im" id="ds_im_059bee4c-fcbc-4d7d-8376-f90c428ea41b"><img src="//i.jsrdn.com/i/1.gif?r=xw4q&amp;k=ZAl1cy13ZXN0LTJjCWgJaS0wMzQ1ZTU0YmJiMzFhMThiYQl1CWQwOWNmNWM1LTE2ZGMtNDI2NS1iMmFlLTQxNWViOTNiYjM5Nwl2CWNkYWZkNTY5LTc4MzEtNDc0Zi04MWJkLWUyNGI1NjM0ZjYyMQl2bAkyMDE3MDEyNC4wOTQ5CXZ0CTIwMTcwMTI0LjA5NDkJdnMJMjAxNjEwMjcJdmMJMjAxNjEwMjcJaQkwNTliZWU0Yy1mY2JjLTRkN2QtODM3Ni1mOTBjNDI4ZWE0MWIJZglodHRwOi8vd3d3LmJyZWl0YmFydC5jb20vdGVjaC8yMDE2LzEyLzIyL25ldXRyYWwtc25vcGVzLWZhY3QtY2hlY2tlci1kYXZpZC1lbWVyeS11bi1hbmdyeS10cnVtcC1zdXBwb3J0ZXJzLwlxCTMxMDA4NjFiLWMyYmMtNDBmMC04YTM1LThiNGM0N2E4OTVlOAltCTIyMzQyCWIJMjYyCWcJNDEwCXQJMzk5MwljCTQwNDMJbAk2MDYwCXoJNTU3MglzCTM0MTkJcAkyMjQ0NQl3CW5ld3MJZ2MJVFcJZ3IJMDMJZ2QJMAluZQlpdgluZAlpdglzZAlicmVpdGJhcnQuY29tCW5mCWl2CXFwCTUwCXF0CTI1MDAJcG4JNzYJdm4JMTYwMjIyCWUJaW0JYQk4NDYJbwk" width="1" border="0" height="1" /></span>
+ <img src="//c5x8i7c7.ssl.hwcdn.net/creatives/site_logos/dslogo_sm.png" style="height:15px;width:15px;margin:-5px 0 0 2px;" />
+ </a>
+ </div>
+ </div>
+
+ <div id="zergnet-widget-40875" class="widget-loaded">
+ <div class="zergheader"><span class="zerghead1">Around The Web</span> <span class="zerghead2">Powered By ZergNet</span></div>
+ <div class="zerglayoutcl">
+ <div class="zergrow">
+ <div class="zergentity">
+ <a href="http://www.zergnet.com/i/1423529/40875/0/0/0" target="_blank" rel="nofollow" class="zergimg">
+ <img src="http://img2.zergnet.com/1423529_300.jpg" nopin="true" data-pin-no-hover="true" />
+ </a>
+ <div class="zergheadline">
+ <a href="http://www.zergnet.com/i/1423529/40875/0/0/0" target="_blank" rel="nofollow">Major Break in the D.B. Cooper Mystery<span class="zergdestW">Nypost.com</span></a>
+ </div>
+ </div>
+ <div class="zergentity">
+ <a href="http://www.zergnet.com/i/1381153/40875/0/0/0" target="_blank" rel="nofollow" class="zergimg">
+ <img src="http://img2.zergnet.com/1381153_300.jpg" nopin="true" data-pin-no-hover="true" />
+ </a>
+ <div class="zergheadline">
+ <a href="http://www.zergnet.com/i/1381153/40875/0/0/0" target="_blank" rel="nofollow">What Trump Fans Think of Megyn Kelly's New Gig<span class="zergdestW">Aol.com</span></a>
+ </div>
+ </div>
+ <div class="zergentity">
+ <a href="http://www.zergnet.com/i/1394710/40875/0/0/0" target="_blank" rel="nofollow" class="zergimg">
+ <img src="http://img5.zergnet.com/1394710_300.jpg" nopin="true" data-pin-no-hover="true" />
+ </a>
+ <div class="zergheadline">
+ <a href="http://www.zergnet.com/i/1394710/40875/0/0/0" target="_blank" rel="nofollow">The Real Reason Sasha Was Absent From Her Dad's Farewell Speech<span class="zergdestW">Usmagazine.com</span></a>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div style="clear: both"></div>
+ <style type="text/css">
+ #zergnet-widget-40875 .zergentity {
+ float: left;
+ width: 32%;
+ margin-left: 2%;
+ overflow: hidden;
+ margin-bottom: 10px
+ }
+
+ #zergnet-widget-40875 .zerglayoutcl {
+ width: 100%
+ }
+
+ #zergnet-widget-40875 .zergheadline {
+ width: 100%;
+ margin-top: 6px;
+ text-align: left;
+ line-height: 19px
+ }
+
+ #zergnet-widget-40875 .zergheadline a {
+ font-size: 14px;
+ text-decoration: none;
+ font-family: Georgia, times, serif;
+ color: #000000
+ }
+
+ #zergnet-widget-40875 .zergentity:nth-of-type(1) {
+ margin-left: 0
+ }
+
+ #zergnet-widget-40875 .zergdestW {
+ display: block;
+ font-size: 11px;
+ color: #999
+ }
+
+ #zergnet-widget-40875 .zergentity img {
+ width: 100%;
+ height: auto
+ }
+
+ #zergnet-widget-40875 .zergheader {
+ color: #000000;
+ font-family: Arial, sans-serif;
+ margin-bottom: 8px
+ }
+
+ #zergnet-widget-40875 .zerghead1 {
+ text-align: left;
+ font-size: 22px;
+ font-weight: bold
+ }
+
+ #zergnet-widget-40875 .zerghead2 {
+ float: right;
+ font-size: 10px;
+ margin-top: 12px
+ }
+
+ @media (max-width: 600px) {}
+ </style>
+ </div>
+
+
+ <div id="comments">
+ <p><br />Comment count on this article reflects comments made on Breitbart.com and Facebook. Visit <a href="https://www.facebook.com/Breitbart" target="_blank" rel="noopener" class=" x5l">Breitbart's Facebook Page</a>.</p>
+ <div id="disqus_thread"><iframe id="dsq-app4" name="dsq-app4" allowtransparency="true" scrolling="no" tabindex="0" title="Disqus" style="width: 1px !important; min-width: 100% !important; border: medium none !important; overflow: hidden !important; height: 552px !important;" src="http://disqusads.com/ads-iframe/adsnative/?category=news&amp;stories_allowed=1&amp;service=dynamic&amp;safetylevel=20&amp;display_allowed=0&amp;video_allowed=0&amp;provider=adsnative&amp;thumbnails_allowed=1&amp;experiment=adblock_lift&amp;variant=no_hack&amp;display_only=0&amp;t=1485255304&amp;links_allowed=1&amp;position=top&amp;shortname=breitbartproduction&amp;display_bidding_allowed=0&amp;forum_shortname=breitbartproduction&amp;forum_pk=1290197&amp;anchorColor=%230088bb&amp;colorScheme=light&amp;sourceUrl=http%3A%2F%2Fwww.breitbart.com%2Ftech%2F2016%2F12%2F22%2Fneutral-snopes-fact-checker-david-emery-un-angry-trump-supporters%2F&amp;typeface=serif&amp;canonicalUrl=http%3A%2F%2Fwww.breitbart.com%2Ftech%2F2016%2F12%2F22%2Fneutral-snopes-fact-checker-david-emery-un-angry-trump-supporters%2F&amp;disqus_version=7bc0258" width="100%" frameborder="0"></iframe><iframe id="dsq-app1" name="dsq-app1" allowtransparency="true" scrolling="no" tabindex="0" title="Disqus" style="width: 1px !important; min-width: 100% !important; border: medium none !important; overflow: hidden !important; height: 7790px !important;" src="https://disqus.com/embed/comments/?base=default&amp;version=105ec7c1b6b6b3960e72ac39bf0bd1c5&amp;f=breitbartproduction&amp;t_i=5765662&amp;t_u=http%3A%2F%2Fwww.breitbart.com%2Ftech%2F2016%2F12%2F22%2Fneutral-snopes-fact-checker-david-emery-un-angry-trump-supporters%2F&amp;t_e=%26%238216%3BNeutral%26%238217%3B%20Snopes%20Fact-Checker%20David%20Emery%3A%20%26%238216%3BAre%20There%20Any%20Un-Angry%20Trump%20Supporters%3F%26%238217%3B&amp;t_d=%27Neutral%27%20Snopes%20Fact-Checker%20David%20Emery%3A%20%27Are%20There%20Any%20Un-Angry%20Trump%20Supporters%3F%27%20-%20Breitbart&amp;t_t=%26%238216%3BNeutral%26%238217%3B%20Snopes%20Fact-Checker%20David%20Emery%3A%20%26%238216%3BAre%20There%20Any%20Un-Angry%20Trump%20Supporters%3F%26%238217%3B&amp;s_o=default" horizontalscrolling="no" verticalscrolling="no" width="100%" frameborder="0"></iframe><iframe id="dsq-app6" name="dsq-app6" allowtransparency="true" scrolling="no" tabindex="0" title="Disqus" style="width: 1px !important; min-width: 100% !important; border: medium none !important; overflow: hidden !important; height: 0px !important;" src="http://disqusads.com/ads-iframe/adsnative/?category=news&amp;stories_allowed=1&amp;service=dynamic&amp;safetylevel=20&amp;display_allowed=0&amp;video_allowed=0&amp;provider=adsnative&amp;thumbnails_allowed=1&amp;experiment=adblock_lift&amp;variant=no_hack&amp;display_only=0&amp;t=1485255304&amp;links_allowed=1&amp;position=bottom&amp;shortname=breitbartproduction&amp;display_bidding_allowed=0&amp;forum_shortname=breitbartproduction&amp;forum_pk=1290197&amp;anchorColor=%230088bb&amp;colorScheme=light&amp;sourceUrl=http%3A%2F%2Fwww.breitbart.com%2Ftech%2F2016%2F12%2F22%2Fneutral-snopes-fact-checker-david-emery-un-angry-trump-supporters%2F&amp;typeface=serif&amp;canonicalUrl=http%3A%2F%2Fwww.breitbart.com%2Ftech%2F2016%2F12%2F22%2Fneutral-snopes-fact-checker-david-emery-un-angry-trump-supporters%2F&amp;disqus_version=7bc0258" width="100%" frameborder="0"></iframe><iframe id="indicator-north" name="indicator-north" allowtransparency="true" scrolling="no" tabindex="0" title="Disqus" style="width: 640px !important; border: medium none !important; overflow: hidden !important; top: 0px !important; min-width: 640px !important; max-width: 640px !important; position: fixed !important; z-index: 2147483646 !important; height: 16px !important; min-height: 16px !important; max-height: 16px !important; display: none !important;" frameborder="0"></iframe><iframe id="indicator-south" name="indicator-south" allowtransparency="true" scrolling="no" tabindex="0" title="Disqus" style="width: 640px !important; border: medium none !important; overflow: hidden !important; bottom: 0px !important; min-width: 640px !important; max-width: 640px !important; position: fixed !important; z-index: 2147483646 !important; height: 16px !important; min-height: 16px !important; max-height: 16px !important; display: none !important;" frameborder="0"></iframe></div>
+ <!--disqus_thread-->
+ </div>
+ <!--comments-->
+
+ <script type="text/javascript">
+ var disqus_identifier = '5765662',
+ disqus_title = "&amp;#8216;Neutral&amp;#8217; Snopes Fact-Checker David Emery: &amp;#8216;Are There Any Un-Angry Trump Supporters?&amp;#8217;",
+ disqus_url = 'http://www.breitbart.com/tech/2016/12/22/neutral-snopes-fact-checker-david-emery-un-angry-trump-supporters/',
+ live_wire_url = 'http://www.breitbart.com/tech/2016/12/22/neutral-snopes-fact-checker-david-emery-un-angry-trump-supporters/';
+ </script>
+
+ </div>
+ <!--MainW-->
+ <aside id="asideSideW">
+ <div id="SideW" class="widget-area col6 endcol">
+ <div class="ad Hmobi SWW">
+ <div class="ad-wrapper">
+ <div id="desktop-ROS-Rail1" data-google-query-id="CInX15bP2tECFQQ5lgodBTACVA">
+ <div id="google_ads_iframe_/1003622/Breitbart.ROS.Rail1_0__container__" style="border: 0pt none; display: inline-block; width: 300px; height: 250px;"><iframe style="border: 0px none; vertical-align: bottom;" src="http://tpc.googlesyndication.com/safeframe/1-0-5/html/container.html#xpc=sf-gdn-exp-1&amp;p=http%3A//www.breitbart.com" id="google_ads_iframe_/1003622/Breitbart.ROS.Rail1_0" title="3rd party ad content" name="" scrolling="no" marginwidth="0" marginheight="0" data-is-safeframe="true" width="300" height="250" frameborder="0"></iframe></div>
+ </div>
+ <div class="pubnation" data-target="desktop-ROS-Rail1" style="">report this ad</div>
+ </div>
+ <p>advertisement</p>
+ </div>
+ <!--SWW-->
+
+
+
+ <div id="BBOnAirSide" data-tb-region="BBOnAirSide">
+ <a id="acurtschilling" href="/whatever-it-takes-curt-schilling/" target="_blank" rel="nofollow">
+ <img class="onairbodylink" src="/t/assets/i/on-air/curtschilling-sidebar.jpg" srcset="/t/assets/i/on-air/[email protected] 2x" alt="" />
+ </a>
+ </div>
+
+
+
+
+
+ <div id="iscbbsocialconnect" class="SWW">
+ <p class="head">BREITBART <span>CONNECT</span></p>
+ <div class="content">
+ <div id="iscbbsocialconnecticons" class="social-icons">
+ <a id="SCFacebook" class="facebook x5l" href="http://www.facebook.com/breitbart" title="Breitbart Facebook" rel="noopener" target="_blank"></a>
+ <a id="SCTwitter" class="twitter x5l" href="http://www.twitter.com/breitbartnews" title="Breitbart Twitter" rel="noopener" target="_blank"></a>
+ <a id="SCYouTube" class="youtube x5l" href="https://www.youtube.com/channel/UCmgnsaQIK1IR808Ebde-ssA" title="Breitbart YouTube" rel="noopener" target="_blank"></a>
+ <a id="SCInstagram" class="instagram x5l" href="https://www.instagram.com/wearebreitbart/" title="Breitbart Instagram" rel="noopener" target="_blank"></a>
+ <a id="SCPodcasts" class="podcasts" href="http://www.breitbart.com/podcasts/" title="Breitbart Podcasts"></a>
+ </div>
+ <div class="signup">
+ <p class="sh3"><span>Sign Up</span> For Our Newsletter</p>
+ <div class="gform_wrapper" id="gform_wrapper_1">
+ <a id="gf_1" class="gform_anchor"></a>
+ <form method="post" id="gform_1" action="/newsletter-signup/">
+ <div class="gform_body">
+ <ul id="gform_fields_1" class="gform_fields top_label description_below">
+ <li id="field_1_1" class="gfield">
+ <input name="input_1" id="input_1_1" value="" placeholder="email address" type="text" />
+ </li>
+ </ul>
+ <input id="gform_submit_button_1" value="Submit" onclick='if(window["gf_submitting_1"]){return false;} window["gf_submitting_1"]=true;' type="submit" />
+ </div>
+ <div class="H">
+ <input name="is_submit_1" value="1" type="hidden" />
+ <input name="gform_submit" value="1" type="hidden" />
+ <input name="gform_target_page_number_1" id="gform_target_page_number_1" value="0" type="hidden" />
+ <input name="gform_source_page_number_1" id="gform_source_page_number_1" value="1" type="hidden" />
+ </div>
+ </form>
+ </div>
+ </div>
+ </div>
+ </div>
+ <!--iscbbsocialconnect-->
+
+
+ <div id="iscndnvideowidget" class="ndn-videos SWW">
+ <h2>BREITBART VIDEO PICKS</h2>
+ <div class="ndn-videos-content">
+ <div class="ndn_embed ndn_embedContainer ndn-widget-embed-3 ndn_widget_VideoLauncher-Slider ndn_embedded" data-config-widget-id="27513" data-config-type="VideoLauncher/Slider300x250" data-config-tracking-group="90085" data-config-site-section="breitbart2slider_nws_us_sec" id="ndn-widget-embed-3">
+ <div class="ndn_responsiveContainer ndn_sliderTopContainer" style="height: 258.333px;">
+ <div class="ndn_sliderContainer">
+ <div class="ndn_videoPlayerWrapper ndn_videoPlayerWrapper_loading">
+ <div id="inform-viewer-container-2" class="ndn_playerContainer inform-viewer-container">
+ <div class="viewer-loading-screen" style="position: absolute; z-index: 1001; top: 0px; left: 0px; width: 100%; height: 100%; overflow: hidden; display: block;">
+ <div class="inform-loading-spinner"></div>
+ </div>
+ <div class="inform-viewer-module-easi inform-viewer-module" style="width: 100%; height: 100%; overflow: hidden;"><iframe scrolling="no" style="overflow: hidden; width: 310px; height: 258px; border: 0px none; background: transparent none repeat scroll 0% 0%;" allowtransparency="true" class="ndn_easiPlayer"></iframe></div>
+ </div>
+ </div>
+ <div class="ndn_carousel-wrapper" style="max-width: 310px;">
+ <div class="ndn_carousel-viewport" style="width: 100%; overflow: hidden; position: relative; height: 258px;">
+ <ul class="ndn_sliderItems ndn_selectableVideos" style="width: 645%; position: relative; transition-duration: 0s; transform: translate3d(-620px, 0px, 0px);">
+ <li class="ndn_selectableVideo ndn_carousel-clone" data-playlist-index="0" data-video-index="2" data-selectable-video-index="2" data-video-id="31887330" title="Trump signs order withdrawing U.S. from TPP deal" style="float: left; list-style: outside none none; position: relative; width: 310px; height: 258px;">
+ <a href="//launch.newsinc.com/embed.html?type=VideoPlayer/16x9&amp;trackingGroup=90085&amp;widgetId=1&amp;videoId=31887330&amp;playlistId=993">
+ <div class="ndn_sliderThumbnailOverlay">
+ <p class="ndn_sliderVideoTitle">
+ <div style="margin: 0px; padding: 0px; border: 0px none;">Trump signs order withdrawing U.S. from TPP deal</div>
+ </p>
+ <p class="ndn_producerName">
+ <div style="margin: 0px; padding: 0px; border: 0px none;">Reuters</div>
+ </p>
+ <img src="http://assets.newsinc.com/10449_75X27.png?t=1485174240" class="ndn_providerLogo" />
+ </div>
+ <img src="http://content.newsinc.com/jpg/320/31887330/49530028.jpg?t=1485174240" class="ndn_centerImage" style="" />
+ <div class="ndn_playButton"></div>
+ </a>
+ </li>
+ <li class="ndn_selectableVideo" data-playlist-index="0" data-video-index="0" data-selectable-video-index="0" data-video-id="31887884" title="Sean Spicer Holds First Formal Press Breifing" style="float: left; list-style: outside none none; position: relative; width: 310px; height: 258px;">
+ <a href="//launch.newsinc.com/embed.html?type=VideoPlayer/16x9&amp;trackingGroup=90085&amp;widgetId=1&amp;videoId=31887884&amp;playlistId=993">
+ <div class="ndn_sliderThumbnailOverlay">
+ <p class="ndn_sliderVideoTitle">
+ <div style="margin: 0px; padding: 0px; border: 0px none;">Sean Spicer Holds First Formal Press Breifing</div>
+ </p>
+ <p class="ndn_producerName">
+ <div style="margin: 0px; padding: 0px; border: 0px none;">AP</div>
+ </p>
+ <img src="http://assets.newsinc.com/ap_logo_75x27.png?t=1485254340" class="ndn_providerLogo" />
+ </div>
+ <img src="http://content.newsinc.com/jpg/499/31887884/49537140.jpg?t=1485254340" class="ndn_centerImage" style="" />
+ <div class="ndn_playButton"></div>
+ </a>
+ </li>
+ <li class="ndn_selectableVideo" data-playlist-index="0" data-video-index="1" data-selectable-video-index="1" data-video-id="31887786" title="GOP senators: Give states the option of keeping ObamaCare" style="float: left; list-style: outside none none; position: relative; width: 310px; height: 258px;">
+ <a href="//launch.newsinc.com/embed.html?type=VideoPlayer/16x9&amp;trackingGroup=90085&amp;widgetId=1&amp;videoId=31887786&amp;playlistId=993">
+ <div class="ndn_sliderThumbnailOverlay">
+ <p class="ndn_sliderVideoTitle">
+ <div style="margin: 0px; padding: 0px; border: 0px none;">GOP senators: Give states the option of keeping ObamaCare</div>
+ </p>
+ <p class="ndn_producerName">
+ <div style="margin: 0px; padding: 0px; border: 0px none;">TheHill.com</div>
+ </p>
+ <img src="http://assets.newsinc.com/thehill_75x27.png?t=1485180060" class="ndn_providerLogo" />
+ </div>
+ <img src="http://content.newsinc.com/jpg/2124/31887786/49535903.jpg?t=1485180060" class="ndn_centerImage" style="" />
+ <div class="ndn_playButton"></div>
+ </a>
+ </li>
+ <li class="ndn_selectableVideo" data-playlist-index="0" data-video-index="2" data-selectable-video-index="2" data-video-id="31887330" title="Trump signs order withdrawing U.S. from TPP deal" style="float: left; list-style: outside none none; position: relative; width: 310px; height: 258px;">
+ <a href="//launch.newsinc.com/embed.html?type=VideoPlayer/16x9&amp;trackingGroup=90085&amp;widgetId=1&amp;videoId=31887330&amp;playlistId=993">
+ <div class="ndn_sliderThumbnailOverlay">
+ <p class="ndn_sliderVideoTitle">
+ <div style="margin: 0px; padding: 0px; border: 0px none;">Trump signs order withdrawing U.S. from TPP deal</div>
+ </p>
+ <p class="ndn_producerName">
+ <div style="margin: 0px; padding: 0px; border: 0px none;">Reuters</div>
+ </p>
+ <img src="http://assets.newsinc.com/10449_75X27.png?t=1485174240" class="ndn_providerLogo" />
+ </div>
+ <img src="http://content.newsinc.com/jpg/320/31887330/49530028.jpg?t=1485174240" class="ndn_centerImage" style="" />
+ <div class="ndn_playButton"></div>
+ </a>
+ </li>
+ <li class="ndn_selectableVideo ndn_carousel-clone" data-playlist-index="0" data-video-index="0" data-selectable-video-index="0" data-video-id="31887884" title="Sean Spicer Holds First Formal Press Breifing" style="float: left; list-style: outside none none; position: relative; width: 310px; height: 258px;">
+ <a href="//launch.newsinc.com/embed.html?type=VideoPlayer/16x9&amp;trackingGroup=90085&amp;widgetId=1&amp;videoId=31887884&amp;playlistId=993">
+ <div class="ndn_sliderThumbnailOverlay">
+ <p class="ndn_sliderVideoTitle">
+ <div style="margin: 0px; padding: 0px; border: 0px none;">Sean Spicer Holds First Formal Press Breifing</div>
+ </p>
+ <p class="ndn_producerName">
+ <div style="margin: 0px; padding: 0px; border: 0px none;">AP</div>
+ </p>
+ <img src="http://assets.newsinc.com/ap_logo_75x27.png?t=1485254340" class="ndn_providerLogo" />
+ </div>
+ <img src="http://content.newsinc.com/jpg/499/31887884/49537140.jpg?t=1485254340" class="ndn_centerImage" style="" />
+ <div class="ndn_playButton"></div>
+ </a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ <div class="ndn_sliderControls">
+ <div class="ndn_sliderPrev ndn_sliderNavButton">
+ <div class="ndn_arrow"></div>
+ </div>
+ <div class="ndn_sliderNext ndn_sliderNavButton">
+ <div class="ndn_arrow"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="ndn_playlistThumbnails">
+ <h4>More videos:</h4>
+ <div class="ndn_carousel-wrapper" style="max-width: 350px;">
+ <div class="ndn_carousel-viewport" style="width: 100%; overflow: hidden; position: relative; height: 76px;">
+ <ul class="ndn_playlistThumbnailsList" style="width: 645%; position: relative; transition-duration: 0s; transform: translate3d(-314px, 0px, 0px);">
+ <li class="ndn_playlistVideoThumbnail ndn_thumbnail ndn_carousel-clone" data-video-index="0" data-playlist-index="0" data-video-id="31887884" data-playlist-id="993" title="Sean Spicer Holds First Formal Press Breifing" style="float: left; list-style: outside none none; position: relative; width: 100.667px; margin-right: 4px;">
+ <div class="ndn_thumbnailContainer">
+ <a href="//launch.newsinc.com/embed.html?type=VideoPlayer/16x9&amp;trackingGroup=90085&amp;widgetId=1&amp;videoId=31887884&amp;playlistId=993">
+ <img src="http://content.newsinc.com/jpg/499/31887884/49537140.jpg?t=1485254340" style="margin-left: 0px;" />
+ <div class="ndn_titleOverlay">
+ <div class="ndn_thumbTitle">Sean Spicer Holds First Formal Press Breifing</div>
+ </div>
+ </a>
+ </div>
+ <div class="ndn_currentVideoThumbnail"></div>
+ </li>
+ <li class="ndn_playlistVideoThumbnail ndn_thumbnail ndn_carousel-clone" data-video-index="1" data-playlist-index="0" data-video-id="31887786" data-playlist-id="993" title="GOP senators: Give states the option of keeping ObamaCare" style="float: left; list-style: outside none none; position: relative; width: 100.667px; margin-right: 4px;">
+ <div class="ndn_thumbnailContainer">
+ <a href="//launch.newsinc.com/embed.html?type=VideoPlayer/16x9&amp;trackingGroup=90085&amp;widgetId=1&amp;videoId=31887786&amp;playlistId=993">
+ <img src="http://content.newsinc.com/jpg/2124/31887786/49535903.jpg?t=1485180060" style="margin-left: 0px;" />
+ <div class="ndn_titleOverlay">
+ <div class="ndn_thumbTitle">GOP senators: Give states the option of keeping ObamaCare</div>
+ </div>
+ </a>
+ </div>
+ <div class="ndn_currentVideoThumbnail" style="display: block;"></div>
+ </li>
+ <li class="ndn_playlistVideoThumbnail ndn_thumbnail ndn_carousel-clone" data-video-index="2" data-playlist-index="0" data-video-id="31887330" data-playlist-id="993" title="Trump signs order withdrawing U.S. from TPP deal" style="float: left; list-style: outside none none; position: relative; width: 100.667px; margin-right: 4px;">
+ <div class="ndn_thumbnailContainer">
+ <a href="//launch.newsinc.com/embed.html?type=VideoPlayer/16x9&amp;trackingGroup=90085&amp;widgetId=1&amp;videoId=31887330&amp;playlistId=993">
+ <img src="http://content.newsinc.com/jpg/320/31887330/49530028.jpg?t=1485174240" style="margin-left: 0px;" />
+ <div class="ndn_titleOverlay">
+ <div class="ndn_thumbTitle">Trump signs order withdrawing U.S. from TPP deal</div>
+ </div>
+ </a>
+ </div>
+ <div class="ndn_currentVideoThumbnail"></div>
+ </li>
+ <li class="ndn_playlistVideoThumbnail ndn_thumbnail" data-video-index="0" data-playlist-index="0" data-video-id="31887884" data-playlist-id="993" title="Sean Spicer Holds First Formal Press Breifing" style="float: left; list-style: outside none none; position: relative; width: 100.667px; margin-right: 4px;">
+ <div class="ndn_thumbnailContainer">
+ <a href="//launch.newsinc.com/embed.html?type=VideoPlayer/16x9&amp;trackingGroup=90085&amp;widgetId=1&amp;videoId=31887884&amp;playlistId=993">
+ <img src="http://content.newsinc.com/jpg/499/31887884/49537140.jpg?t=1485254340" style="margin-left: 0px;" />
+ <div class="ndn_titleOverlay">
+ <div class="ndn_thumbTitle">Sean Spicer Holds First Formal Press Breifing</div>
+ </div>
+ </a>
+ </div>
+ <div class="ndn_currentVideoThumbnail"></div>
+ </li>
+ <li class="ndn_playlistVideoThumbnail ndn_thumbnail" data-video-index="1" data-playlist-index="0" data-video-id="31887786" data-playlist-id="993" title="GOP senators: Give states the option of keeping ObamaCare" style="float: left; list-style: outside none none; position: relative; width: 100.667px; margin-right: 4px;">
+ <div class="ndn_thumbnailContainer">
+ <a href="//launch.newsinc.com/embed.html?type=VideoPlayer/16x9&amp;trackingGroup=90085&amp;widgetId=1&amp;videoId=31887786&amp;playlistId=993">
+ <img src="http://content.newsinc.com/jpg/2124/31887786/49535903.jpg?t=1485180060" style="margin-left: 0px;" />
+ <div class="ndn_titleOverlay">
+ <div class="ndn_thumbTitle">GOP senators: Give states the option of keeping ObamaCare</div>
+ </div>
+ </a>
+ </div>
+ <div class="ndn_currentVideoThumbnail" style="display: block;"></div>
+ </li>
+ <li class="ndn_playlistVideoThumbnail ndn_thumbnail" data-video-index="2" data-playlist-index="0" data-video-id="31887330" data-playlist-id="993" title="Trump signs order withdrawing U.S. from TPP deal" style="float: left; list-style: outside none none; position: relative; width: 100.667px; margin-right: 4px;">
+ <div class="ndn_thumbnailContainer">
+ <a href="//launch.newsinc.com/embed.html?type=VideoPlayer/16x9&amp;trackingGroup=90085&amp;widgetId=1&amp;videoId=31887330&amp;playlistId=993">
+ <img src="http://content.newsinc.com/jpg/320/31887330/49530028.jpg?t=1485174240" style="margin-left: 0px;" />
+ <div class="ndn_titleOverlay">
+ <div class="ndn_thumbTitle">Trump signs order withdrawing U.S. from TPP deal</div>
+ </div>
+ </a>
+ </div>
+ <div class="ndn_currentVideoThumbnail"></div>
+ </li>
+ <li class="ndn_playlistVideoThumbnail ndn_thumbnail ndn_carousel-clone" data-video-index="0" data-playlist-index="0" data-video-id="31887884" data-playlist-id="993" title="Sean Spicer Holds First Formal Press Breifing" style="float: left; list-style: outside none none; position: relative; width: 100.667px; margin-right: 4px;">
+ <div class="ndn_thumbnailContainer">
+ <a href="//launch.newsinc.com/embed.html?type=VideoPlayer/16x9&amp;trackingGroup=90085&amp;widgetId=1&amp;videoId=31887884&amp;playlistId=993">
+ <img src="http://content.newsinc.com/jpg/499/31887884/49537140.jpg?t=1485254340" style="margin-left: 0px;" />
+ <div class="ndn_titleOverlay">
+ <div class="ndn_thumbTitle">Sean Spicer Holds First Formal Press Breifing</div>
+ </div>
+ </a>
+ </div>
+ <div class="ndn_currentVideoThumbnail"></div>
+ </li>
+ <li class="ndn_playlistVideoThumbnail ndn_thumbnail ndn_carousel-clone" data-video-index="1" data-playlist-index="0" data-video-id="31887786" data-playlist-id="993" title="GOP senators: Give states the option of keeping ObamaCare" style="float: left; list-style: outside none none; position: relative; width: 100.667px; margin-right: 4px;">
+ <div class="ndn_thumbnailContainer">
+ <a href="//launch.newsinc.com/embed.html?type=VideoPlayer/16x9&amp;trackingGroup=90085&amp;widgetId=1&amp;videoId=31887786&amp;playlistId=993">
+ <img src="http://content.newsinc.com/jpg/2124/31887786/49535903.jpg?t=1485180060" style="margin-left: 0px;" />
+ <div class="ndn_titleOverlay">
+ <div class="ndn_thumbTitle">GOP senators: Give states the option of keeping ObamaCare</div>
+ </div>
+ </a>
+ </div>
+ <div class="ndn_currentVideoThumbnail" style="display: block;"></div>
+ </li>
+ <li class="ndn_playlistVideoThumbnail ndn_thumbnail ndn_carousel-clone" data-video-index="2" data-playlist-index="0" data-video-id="31887330" data-playlist-id="993" title="Trump signs order withdrawing U.S. from TPP deal" style="float: left; list-style: outside none none; position: relative; width: 100.667px; margin-right: 4px;">
+ <div class="ndn_thumbnailContainer">
+ <a href="//launch.newsinc.com/embed.html?type=VideoPlayer/16x9&amp;trackingGroup=90085&amp;widgetId=1&amp;videoId=31887330&amp;playlistId=993">
+ <img src="http://content.newsinc.com/jpg/320/31887330/49530028.jpg?t=1485174240" style="margin-left: 0px;" />
+ <div class="ndn_titleOverlay">
+ <div class="ndn_thumbTitle">Trump signs order withdrawing U.S. from TPP deal</div>
+ </div>
+ </a>
+ </div>
+ <div class="ndn_currentVideoThumbnail"></div>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="pubnation" data-target="iscndnvideowidget" style="text-align: center !important; width: 100%;">report this ad</div>
+ </div>
+ </div>
+ <!--iscndnvideowidget-->
+
+
+ <div id="isctaboolawidget1" class="ad SWW">
+ <div class="ad-wrapper">
+ <div id="taboola-right-rail" class=" trc_related_container trc_spotlight_widget" data-placement-name="right-rail">
+ <div class="trc_rbox_container" style="display: block;">
+ <div>
+ <div id="trc_wrapper_22491" class="trc_rbox thumbs-2rx2 trc-content-sponsored trc-auto-size" style="overflow: hidden; display: block;">
+ <div id="trc_header_22491" class="trc_rbox_header trc_rbox_border_elm">
+ <div class="trc_header_ext">
+ <div class="logoDiv link-disclosure attribution-disclosure-link-sponsored"><a class="trc_desktop_disclosure_link trc_attribution_position_top" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=breitbartcom&amp;utm_medium=referral&amp;utm_content=thumbs-2rx2:right-rail:" target="_blank"><span>Sponsored Links</span><span class="trc_logos_v_align"> </span></a><a class="trc_mobile_disclosure_link trc_attribution_position_top" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=breitbartcom&amp;utm_medium=referral&amp;utm_content=thumbs-2rx2:right-rail:" target="_blank"><span>Sponsored Links</span><span class="trc_logos_v_align"> </span></a></div>
+ <div class="logoDiv link-disclosure attribution-disclosure-link-hybrid"><a class="trc_desktop_disclosure_link trc_attribution_position_top" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=breitbartcom&amp;utm_medium=referral&amp;utm_content=thumbs-2rx2:right-rail:" target="_blank"><span>Promoted Links</span><span class="trc_logos_v_align"> </span></a><a class="trc_mobile_disclosure_link trc_attribution_position_top" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=breitbartcom&amp;utm_medium=referral&amp;utm_content=thumbs-2rx2:right-rail:" target="_blank"><span>Promoted Links</span><span class="trc_logos_v_align"> </span></a></div>
+ </div><span class="trc_rbox_header_span"><span class="trc_inner_header trc_header_left_column">YOU MIGHT LIKE</span><span class="trc_inner_header trc_header_right_column">From The Web</span></span>
+ </div>
+ <div id="outer_22491" class="trc_rbox_outer" style="overflow: hidden;">
+ <div id="rbox-t2v" class="trc_rbox_div trc_rbox_border_elm" style="overflow: hidden;">
+ <div id="internal_trc_22491" style="width: auto;">
+ <div data-item-id="~~V1~~-3510019048026187362~~uzaL-DdcN_Wk8rfvs4H7sW3dVppf3Hngoq9scqIJMIcSO_fFkG-bpaW2-qyqBDD6ksLyXXiVQ1qqB9ErtdiY22VW5HjaJcCw_CB_9SMo23o" data-item-title="Best Flashlight Ever is Selling Like Crazy" data-item-thumb="http://www.dailylifetech.com/banners/lumify/007.png" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem horizontal trc-first-recommendation trc-spotlight-first-recommendation trc_excludable " style="margin-bottom: 8px; margin-left: 0px; width: 300px; height: auto; position: relative;"><a title="Best Flashlight Ever is Selling Like Crazy" href="http://trkwl.me/base.php?c=131&amp;key=8f7dc8f9f96750dd7a45cb6bcef8a032&amp;cp=%7Bcampaign%7D&amp;site=breitbartcom&amp;thumb=http%3A%2F%2Fwww.dailylifetech.com%2Fbanners%2Flumify%2F007.png&amp;title=Best+Flashlight+Ever+is+Selling+Like+Crazy" rel="nofollow" target="_blank" class=" item-thumbnail-href "><span class="thumbBlock" style="height: 150px; width: 300px; position: relative; float: none; display: block;"><span class="thumbnail-overlay" style="height: 150px; width: 300px;"></span><span class="branding">Lumify Flashlight X800</span><span class="static-text top-right"></span><img style="visibility: visible; height: 150px !important;" src="http://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_auto%2Ch_300%2Cw_600%2Cc_fill%2Cg_faces:auto%2Ce_sharpen/http%3A//www.dailylifetech.com/banners/lumify/007.png" /></span></a><a title="Best Flashlight Ever is Selling Like Crazy" href="http://trkwl.me/base.php?c=131&amp;key=8f7dc8f9f96750dd7a45cb6bcef8a032&amp;cp=%7Bcampaign%7D&amp;site=breitbartcom&amp;thumb=http%3A%2F%2Fwww.dailylifetech.com%2Fbanners%2Flumify%2F007.png&amp;title=Best+Flashlight+Ever+is+Selling+Like+Crazy" rel="nofollow" target="_blank" class=" item-label-href "><span style="display: block;" class="video-label-box"><span class="video-label video-title">Best Flashlight Ever is Selling Like Crazy</span><span class="branding">Lumify Flashlight X800</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div style="clear: both; width: 100%;"></div>
+ <div data-item-id="~~V1~~5203257888082971773~~pfBoXwMI7GABLLiNvFYGYH6XuwNy-kgGlR0S5FEF6qASO_fFkG-bpaW2-qyqBDD6SAPUJY21GDdrbepJFt0qJ2VW5HjaJcCw_CB_9SMo23o" data-item-title="Say Goodbye To Snoring, Say Hello to Sleep" data-item-thumb="http://cdn.taboolasyndication.com/libtrc/static/thumbnails/b4ea56abdb75f62da20a9c018b1ebe15.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem horizontal trc_excludable " style="margin-bottom: 8px; margin-left: 0px; width: 300px; height: auto; position: relative;"><a title="Say Goodbye To Snoring, Say Hello to Sleep" href="http://track.mysnoring-solution.com/f7a91370-8015-0133-1605-3c764e052d94/ROWNetwork?utm_source=Taboola&amp;utm_medium=breitbartcom&amp;utm_content=http%3A%2F%2Fcdn.taboolasyndication.com%2Flibtrc%2Fstatic%2Fthumbnails%2Fb4ea56abdb75f62da20a9c018b1ebe15.jpg&amp;utm_term=Say+Goodbye+To+Snoring%2C+Say+Hello+to+Sleep" rel="nofollow" target="_blank" class=" item-thumbnail-href "><span class="thumbBlock" style="height: 150px; width: 300px; position: relative; float: none; display: block;"><span class="thumbnail-overlay" style="height: 150px; width: 300px;"></span><span class="branding">My Snoring Solution</span><span class="static-text top-right"></span><img style="visibility: visible; height: 150px !important;" src="http://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_auto%2Ch_300%2Cw_600%2Cc_fill%2Cg_faces:auto%2Ce_sharpen/http%3A//cdn.taboolasyndication.com/libtrc/static/thumbnails/b4ea56abdb75f62da20a9c018b1ebe15.jpg" /></span></a><a title="Say Goodbye To Snoring, Say Hello to Sleep" href="http://track.mysnoring-solution.com/f7a91370-8015-0133-1605-3c764e052d94/ROWNetwork?utm_source=Taboola&amp;utm_medium=breitbartcom&amp;utm_content=http%3A%2F%2Fcdn.taboolasyndication.com%2Flibtrc%2Fstatic%2Fthumbnails%2Fb4ea56abdb75f62da20a9c018b1ebe15.jpg&amp;utm_term=Say+Goodbye+To+Snoring%2C+Say+Hello+to+Sleep" rel="nofollow" target="_blank" class=" item-label-href "><span style="display: block;" class="video-label-box"><span class="video-label video-title">Say Goodbye To Snoring, Say Hello to Sleep</span><span class="branding">My Snoring Solution</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div style="clear: both; width: 100%;"></div>
+ <div data-item-id="~~V1~~-4126273700562553064~~aCcQ1G2g-zl_iY5AxVNvf6jwmrHQXP4APj0i219j49QSO_fFkG-bpaW2-qyqBDD669-0l4DuKZgmQpUQRXFhT2VW5HjaJcCw_CB_9SMo23o" data-item-title="Finding Cheap Flights is Now Easy" data-item-thumb="http://cdn.taboolasyndication.com/libtrc/static/thumbnails/121e89771500274cfd0914514ed244a1.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem horizontal trc_excludable " style="margin-bottom: 8px; margin-left: 0px; width: 300px; height: auto; position: relative;"><a title="Finding Cheap Flights is Now Easy" href="http://www.tripsinsider.com/flights/?utm_source=ti_taboola_flights_1&amp;utm_medium=breitbartcom" rel="nofollow" target="_blank" class=" item-thumbnail-href "><span class="thumbBlock" style="height: 150px; width: 300px; position: relative; float: none; display: block;"><span class="thumbnail-overlay" style="height: 150px; width: 300px;"></span><span class="branding">tripsinsider.com</span><span class="static-text top-right"></span><img style="visibility: visible; height: 150px !important;" src="http://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_auto%2Ch_300%2Cw_600%2Cc_fill%2Cg_faces:auto%2Ce_sharpen/http%3A//cdn.taboolasyndication.com/libtrc/static/thumbnails/121e89771500274cfd0914514ed244a1.jpg" /></span></a><a title="Finding Cheap Flights is Now Easy" href="http://www.tripsinsider.com/flights/?utm_source=ti_taboola_flights_1&amp;utm_medium=breitbartcom" rel="nofollow" target="_blank" class=" item-label-href "><span style="display: block;" class="video-label-box"><span class="video-label video-title">Finding Cheap Flights is Now Easy</span><span class="branding">tripsinsider.com</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div style="clear: both; width: 100%;"></div>
+ <div data-item-id="~~V1~~-4981071907474008028~~n-mVVmqwrwr6mEdrOkDkBCOPnbHVPKdv7qWKOIYunQESO_fFkG-bpaW2-qyqBDD6TcAzsT3F8CHfR1kvoUNzzmVW5HjaJcCw_CB_9SMo23o" data-item-title="Couple Finds 50-Year-Old Fallout Shelter, But When They Look inside..." data-item-thumb="http://cdn.taboolasyndication.com/libtrc/static/thumbnails/73ce7f5b620863f37b43ab1f92272875.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem photoItem horizontal trc_excludable " style="margin-bottom: 8px; margin-left: 0px; width: 300px; height: auto; position: relative;"><a title="Couple Finds 50-Year-Old Fallout Shelter, But When They Look inside..." href="http://www.lifedaily.com/story/california-couple-inherits-50-year-old-secret-beneath-their-new-home/source/taboola/?utm_taboola_id=442390#utm_medium=referral&amp;utm_source=taboola&amp;utm_campaign=TB-INTL-CaliforniaCouple" rel="nofollow" target="_blank" class=" item-thumbnail-href "><span class="thumbBlock" style="height: 150px; width: 300px; position: relative; float: none; display: block;"><span class="thumbnail-overlay" style="height: 150px; width: 300px;"></span><span class="branding">LifeDaily.com</span><span class="static-text top-right"></span><img style="visibility: visible; height: 150px !important;" src="http://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_auto%2Ch_300%2Cw_600%2Cc_fill%2Cg_faces:auto%2Ce_sharpen/http%3A//cdn.taboolasyndication.com/libtrc/static/thumbnails/73ce7f5b620863f37b43ab1f92272875.jpg" /></span></a><a title="Couple Finds 50-Year-Old Fallout Shelter, But When They Look inside..." href="http://www.lifedaily.com/story/california-couple-inherits-50-year-old-secret-beneath-their-new-home/source/taboola/?utm_taboola_id=442390#utm_medium=referral&amp;utm_source=taboola&amp;utm_campaign=TB-INTL-CaliforniaCouple" rel="nofollow" target="_blank" class=" item-label-href "><span style="display: block;" class="video-label-box"><span class="video-label video-title">Couple Finds 50-Year-Old Fallout Shelter, But When They Look inside...</span><span class="branding">LifeDaily.com</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div style="clear: both;"></div>
+ </div>
+ </div>
+ </div>
+ <div class="trc-widget-footer">
+ <div class="logoDiv link-adc "><a class="trc_desktop_adc_link trc_attribution_position_bottom" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=breitbartcom&amp;utm_medium=referral&amp;utm_content=thumbs-2rx2:right-rail:" target="_blank"><span class="trc_adc_wrapper"><span class="trc_adc_s_logo"></span> </span><span class="trc_logos_v_align"> </span></a><a class="trc_mobile_adc_link trc_attribution_position_bottom" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=breitbartcom&amp;utm_medium=referral&amp;utm_content=thumbs-2rx2:right-rail:" target="_blank"><span class="trc_adc_wrapper"><span class="trc_adc_s_logo"></span> </span><span class="trc_logos_v_align"> </span></a></div>
+ <div class="logoDiv link-attribution "><a class="trc_desktop_attribution_link trc_attribution_position_bottom" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=breitbartcom&amp;utm_medium=referral&amp;utm_content=thumbs-2rx2:right-rail:" target="_blank"><span>by Taboola</span><span class="trc_logos_v_align"> </span></a><a class="trc_mobile_attribution_link trc_attribution_position_bottom" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=breitbartcom&amp;utm_medium=referral&amp;utm_content=thumbs-2rx2:right-rail:" target="_blank"><span>by Taboola</span><span class="trc_logos_v_align"> </span></a></div>
+ </div>
+ <div class="trc_clearer"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="pubnation" data-target="taboola-right-rail" style="">report this ad</div>
+ </div>
+ <p>advertisement</p>
+ </div>
+ <!--isctaboolawidget1-->
+
+
+
+ <div class="ad Hmobi SWW">
+ <div class="ad-wrapper">
+ <div id="desktop-ROS-Rail2" data-google-query-id="CKn61ZbP2tECFQQ4lgodH5oHJw">
+ <div id="google_ads_iframe_/1003622/Breitbart.ROS.Rail2_0__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/1003622/Breitbart.ROS.Rail2_0" title="3rd party ad content" name="google_ads_iframe_/1003622/Breitbart.ROS.Rail2_0" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" srcdoc="" width="300" height="250" frameborder="0"></iframe></div>
+ </div>
+ <div class="pubnation" data-target="desktop-ROS-Rail2" style="">report this ad</div>
+ </div>
+ <p>advertisement</p>
+ </div>
+ <!--SWW-->
+
+
+
+
+ <div class="ad Hmobi SWW">
+ <div class="ad-wrapper">
+ <div id="desktop-ROS-Rail3" data-google-query-id="CKr61ZbP2tECFQQ4lgodH5oHJw">
+ <div id="google_ads_iframe_/1003622/Breitbart.ROS.Rail3_0__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/1003622/Breitbart.ROS.Rail3_0" title="3rd party ad content" name="google_ads_iframe_/1003622/Breitbart.ROS.Rail3_0" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" srcdoc="" width="300" height="250" frameborder="0"></iframe></div>
+ </div>
+ <div class="pubnation" data-target="desktop-ROS-Rail3" style="">report this ad</div>
+ </div>
+ <p>advertisement</p>
+ </div>
+ <!--SWW-->
+
+
+
+ <div id="iscnewsmaxwidgetid" class="ad SWW">
+ <div class="ad-wrapper">
+ <div id="FcdFRtthi9lEUjCvIY8jg6swoQEvy9_zcgNC_ul4">
+ <div class="sidebarText nmDivWrap">
+ <div class="sidebarText nmHeaderArrowRight"></div>
+ <p class="sidebarText nmHeaderTitle">TAKE A LOOK</p>
+ <div class="sidebarText nmHeaderGradiant"></div>
+ </div>
+ <div id="nmWidget" class="sidebarText">
+ <ul class="nmWidgetUl">
+ <li class="nmWidgetList" style="cursor: pointer;">
+ <a href="http://t.newsmaxfeednetwork.com/ck?url=https%3A%2F%2Fw3.mindhealthreport.com%2FHealth%2FMHR%2FLP%2FMHR-Daily-Prayer-Video-DGT%3Fdkt_nbr%3D9c9jtgug&amp;data=YWVjM2JlZTQyODI4ODgxMjU2MDJjODQ2NDU4YjRmMWM5MjA1YTlhYTZiOWQzZjE0Zjc5N2NlYzY3ZDA0ZTZmN2MzZmExYzhkODEyNjhlMTdkZGQzNDM3ZGY3ZThkNDQ4ZmM4ZTkxZWNjN2M4NWViM2UzYjdlOGZiYzdkOTU2YmU1YzJjZjU3ZGRjMzNkNTQxOTM5ZTg2OGZjZTRjNTJhMDY1OGZlZWFmODk1MGZhYmI2Zjk2ZTM4ZjVjNzc3ZDI2NjBjOWIwYTU3Mzc1NWEzMmNmMWI4Y2U1M2Q0NzRiYzc5YTE4NTFmMzY1YmJkODAzZTc3NWE1MGRhZGZiN2QyYWQyMjU4MDIxNWQ5MzFlOTJiMGMyYWFlYjQ0NzE1YjBm&amp;sid=6d61fb14555341879a76bc30a3ddb842_c48d7061" target="_blank">
+ <p>4 Ways Prayer Changes Your Brain. See the Transformation. </p>
+ <div class="adsnative-icon-external-link"></div>
+ <p></p>
+ </a>
+ <img src="http://t.newsmaxfeednetwork.com/im.gif?data=YWVjM2JlZTQyODI4ODgxMjU2MDJjODQ2NDU4YjRmMWM5MjA1YTlhYTZiOWQzZjE0Zjc5N2NlYzY3ZDA0ZTZmN2MzZmExYzhkODEyNjhlMTdkZGQzNDM3ZGY3ZThkNDQ4ZmM4ZTkxZWNjN2M4NWViM2UzYjdlOGZiYzdkOTU2YmU1YzJjZjU3ZGRjMzNkNTQxOTM5ZTg2OGZjZTRjNTJhMDY1OGZlZWFmODk1MGZhYmI2Zjk2ZTM4ZjVjNzc3ZDI2NjBjOWIwYTU3Mzc1NWEzMmNmMWI4Y2U1M2Q0NzRiYzc5YTE4NTFmMzY1YmJkODAzZTc3NWE1MGRhZGZiN2QyYWQyMjU4MDIxNWQ5MzFlOTJiMGMyYWFlYjQ0NzE1YjBm&amp;sid=6d61fb14555341879a76bc30a3ddb842_c48d7061" style="margin: 0px; padding: 0px; height: 1px; width: 1px; border: medium none; float: left; display: none;" width="1" border="0" height="1" />
+ </li>
+ <li class="nmWidgetList" style="cursor: pointer;">
+ <a href="http://t.newsmaxfeednetwork.com/ck?url=https%3A%2F%2Fw3.brownsteinhealth.com%2FHealth%2FDRB%2FLP%2FBrownstein-Cancer-DGT%3Fdkt_nbr%3Dab8jrnkc&amp;data=YTRlZmMwMTc5NDc1OWRkMGU3YTJlYjFlNDZiNTBhZDAxMDUwYjI1NjdkOWI2YjFmMzE3NmFjOTA3Y2MxZGU2OTQ4NzMxZDEyMTE1YzNhZjQyMWZmZTI5NGVlNmQxMTBkYzU0NTBkODE0ODYwMDY3MTEzOTQ1ZTg5NzcwZGQwZjIzMTM3YTIyODM4ZGNhZTljZmRmNjE0YWZlOWFiNTEzMWI2NTNkMzNhZTBkYTViMzkyNzhkMmMyOGYxMzNmZWJmOWY1NDBjMGJhYjljZWE1NGRjMzM5M2MyOGRkMGZmZTA1ODg2OTQxNmIzZWU5MDI3MTEyMzMwYjIxMGI1MDYyMjgzZTcxY2Q5OTZiMWNjZjhlM2Q3YzE2MjdjMjI4ZGE0&amp;sid=6d61fb14555341879a76bc30a3ddb842_d8bab975" target="_blank">
+ <p>Cancer and Your Age... What I Found Will Shock You </p>
+ <div class="adsnative-icon-external-link"></div>
+ <p></p>
+ </a>
+ <img src="http://t.newsmaxfeednetwork.com/im.gif?data=YTRlZmMwMTc5NDc1OWRkMGU3YTJlYjFlNDZiNTBhZDAxMDUwYjI1NjdkOWI2YjFmMzE3NmFjOTA3Y2MxZGU2OTQ4NzMxZDEyMTE1YzNhZjQyMWZmZTI5NGVlNmQxMTBkYzU0NTBkODE0ODYwMDY3MTEzOTQ1ZTg5NzcwZGQwZjIzMTM3YTIyODM4ZGNhZTljZmRmNjE0YWZlOWFiNTEzMWI2NTNkMzNhZTBkYTViMzkyNzhkMmMyOGYxMzNmZWJmOWY1NDBjMGJhYjljZWE1NGRjMzM5M2MyOGRkMGZmZTA1ODg2OTQxNmIzZWU5MDI3MTEyMzMwYjIxMGI1MDYyMjgzZTcxY2Q5OTZiMWNjZjhlM2Q3YzE2MjdjMjI4ZGE0&amp;sid=6d61fb14555341879a76bc30a3ddb842_d8bab975" style="margin: 0px; padding: 0px; height: 1px; width: 1px; border: medium none; float: left; display: none;" width="1" border="0" height="1" />
+ </li>
+ <li class="nmWidgetList" style="cursor: pointer;">
+ <a href="http://t.newsmaxfeednetwork.com/ck?url=https%3A%2F%2Fw3.brownsteinhealth.com%2FHealth%2FDRB%2FLP%2FBrownstein-Arthritis-DGT%3Fdkt_nbr%3Dgmmqbyc6&amp;data=Mjg2MmYwNTJiY2ViMDNjN2YwOGZjMzg0NTc2YTdhOTY3NDk2ZjhmZjI3YWZmM2MyNzZjMmRmNWVkNTAwYmMyN2JiOTBmODNjNzA0YThlZWRlY2NkNzMzMjBkMmI5NGEyMWRkNTJkM2Q2NWQ0YTk0MzQ1MzFkOWUxNWY2YTgxNGVmYjFjNjY1MDBjM2E0ODkzNWM0N2UyNmVmNDBlYzlmNDEyYWM0ZjMwOGU2MzRmMzYxNjQ2N2MwOWEyZTkxNGI1NDU3NGMzY2ZjZjQ5OTEwYjExNWQyOWUzMzAzMzRiOWRhODAzYzQ0NTM4NTUxZmJiNDExYjJkZjEzM2FlMjUxODQ5YTY2ZTlkYjUyZTM0OWM0ZTI5ZjQ4M2FmYmE4ZmE3&amp;sid=6d61fb14555341879a76bc30a3ddb842_11a20dcc" target="_blank">
+ <p>Breakthrough: New Discovery in Treating Fibromyalgia and Arthritis </p>
+ <div class="adsnative-icon-external-link"></div>
+ <p></p>
+ </a>
+ <img src="http://t.newsmaxfeednetwork.com/im.gif?data=Mjg2MmYwNTJiY2ViMDNjN2YwOGZjMzg0NTc2YTdhOTY3NDk2ZjhmZjI3YWZmM2MyNzZjMmRmNWVkNTAwYmMyN2JiOTBmODNjNzA0YThlZWRlY2NkNzMzMjBkMmI5NGEyMWRkNTJkM2Q2NWQ0YTk0MzQ1MzFkOWUxNWY2YTgxNGVmYjFjNjY1MDBjM2E0ODkzNWM0N2UyNmVmNDBlYzlmNDEyYWM0ZjMwOGU2MzRmMzYxNjQ2N2MwOWEyZTkxNGI1NDU3NGMzY2ZjZjQ5OTEwYjExNWQyOWUzMzAzMzRiOWRhODAzYzQ0NTM4NTUxZmJiNDExYjJkZjEzM2FlMjUxODQ5YTY2ZTlkYjUyZTM0OWM0ZTI5ZjQ4M2FmYmE4ZmE3&amp;sid=6d61fb14555341879a76bc30a3ddb842_11a20dcc" style="margin: 0px; padding: 0px; height: 1px; width: 1px; border: medium none; float: left; display: none;" width="1" border="0" height="1" />
+ </li>
+ <li class="nmWidgetList" style="cursor: pointer;">
+ <a href="http://t.newsmaxfeednetwork.com/ck?url=https%3A%2F%2Fw3.hearthealthreport.com%2FHealth%2FCHH%2FLP%2FCrandall-Arteries-Video-DGT%3Fdkt_nbr%3Dsximuec9&amp;data=ZDQxN2IyYmRiYmY1OWZkNDc0MjUwZmQ3MDcyZDBiOTU1ZjgwYzQ5NjYwNjU2MmYxMTU0NjJkNDExNGZmZDk3YjM2ZmFmYjY5YmY3NTAxMjc0YzAxMjU4NTNlNGQ5OGY0MDMzMTYwMzMyNTgyNGUzMDRlZDFlMDZlMzUxMWU1ZmIxNmQzN2NlMmJjN2EwM2RmOTdjM2ZhODk3MTMxODA3NDRjMTBmY2QzYzc0YjViNjhlYzViM2Y0NmJlZmNkM2E1NDA2YmNmOGQzM2I4NWI0MTIzOWI3OWE5OTQ1N2VmZDU0NGFiMjI3MDQyMjYxYjU0NTA4ZWVkZjRlN2RjYjA0M2MzOWFjNjMxM2Q0NWQ2NDgzNTQxM2UzZTQ4ODRkMzQ3&amp;sid=6d61fb14555341879a76bc30a3ddb842_dbe1ca44" target="_blank">
+ <p>Early Warning Signs of a Heart Attack Revealed </p>
+ <div class="adsnative-icon-external-link"></div>
+ <p></p>
+ </a>
+ <img src="http://t.newsmaxfeednetwork.com/im.gif?data=ZDQxN2IyYmRiYmY1OWZkNDc0MjUwZmQ3MDcyZDBiOTU1ZjgwYzQ5NjYwNjU2MmYxMTU0NjJkNDExNGZmZDk3YjM2ZmFmYjY5YmY3NTAxMjc0YzAxMjU4NTNlNGQ5OGY0MDMzMTYwMzMyNTgyNGUzMDRlZDFlMDZlMzUxMWU1ZmIxNmQzN2NlMmJjN2EwM2RmOTdjM2ZhODk3MTMxODA3NDRjMTBmY2QzYzc0YjViNjhlYzViM2Y0NmJlZmNkM2E1NDA2YmNmOGQzM2I4NWI0MTIzOWI3OWE5OTQ1N2VmZDU0NGFiMjI3MDQyMjYxYjU0NTA4ZWVkZjRlN2RjYjA0M2MzOWFjNjMxM2Q0NWQ2NDgzNTQxM2UzZTQ4ODRkMzQ3&amp;sid=6d61fb14555341879a76bc30a3ddb842_dbe1ca44" style="margin: 0px; padding: 0px; height: 1px; width: 1px; border: medium none; float: left; display: none;" width="1" border="0" height="1" />
+ </li>
+ <li class="nmWidgetList" style="cursor: pointer;">
+ <a href="http://t.newsmaxfeednetwork.com/ck?url=https%3A%2F%2Fw3.blaylockwellness.com%2FHealth%2FBWR%2FLP%2FBWR-Brain-Video-DGT%3Fdkt_nbr%3Drroepnsn&amp;data=MDFkNGY0ZmU4OWYzOWU4MzYzOTRiNDQwMzlkNGUzN2JjYmNlZDNhNmQ3MmFmMTk0OTQ1NzRkNDIxOWMzMDg4YzMwOWQ2N2RmMTU2NjI1MThmODBkNDQ5YzUwNDM4YjFmZWU5OTg5MjJhMzQ1ZDEyZDRkODUzMTNiZjUwZjAyNDc0M2VhOTc3YzBlZWYxNDZkOWNjNmIzZGRhMDU3YjU0YzIwMTA1YWEyZjk0YTg3ZTFkYWVmNWVkZjUxY2U1MWUwMzcxMzc2NjQwYjY5ODBiOTc4YzA5NjMzMzFjNzExMDYyNTlkZjFiZjEzOTQxMWIxNGFlODc0Yzk2ODYwMDg0YTcyYmMzYjgwZTE0ODc4ZjdmZDNlYmZmMzhhYTQyMTFm&amp;sid=6d61fb14555341879a76bc30a3ddb842_bd46f188" target="_blank">
+ <p>ALERT: These 2 'Triggers' Cause Your Memory Loss </p>
+ <div class="adsnative-icon-external-link"></div>
+ <p></p>
+ </a>
+ <img src="http://t.newsmaxfeednetwork.com/im.gif?data=MDFkNGY0ZmU4OWYzOWU4MzYzOTRiNDQwMzlkNGUzN2JjYmNlZDNhNmQ3MmFmMTk0OTQ1NzRkNDIxOWMzMDg4YzMwOWQ2N2RmMTU2NjI1MThmODBkNDQ5YzUwNDM4YjFmZWU5OTg5MjJhMzQ1ZDEyZDRkODUzMTNiZjUwZjAyNDc0M2VhOTc3YzBlZWYxNDZkOWNjNmIzZGRhMDU3YjU0YzIwMTA1YWEyZjk0YTg3ZTFkYWVmNWVkZjUxY2U1MWUwMzcxMzc2NjQwYjY5ODBiOTc4YzA5NjMzMzFjNzExMDYyNTlkZjFiZjEzOTQxMWIxNGFlODc0Yzk2ODYwMDg0YTcyYmMzYjgwZTE0ODc4ZjdmZDNlYmZmMzhhYTQyMTFm&amp;sid=6d61fb14555341879a76bc30a3ddb842_bd46f188" style="margin: 0px; padding: 0px; height: 1px; width: 1px; border: medium none; float: left; display: none;" width="1" border="0" height="1" />
+ </li>
+ <li class="nmWidgetList" style="cursor: pointer;">
+ <a href="http://t.newsmaxfeednetwork.com/ck?url=https%3A%2F%2Fw3.newsmax.com%2FGeneral%2FNMM%2FOffers%2FMag-2009-Apr-Jesus-Trial%3Fdkt_nbr%3Dpgqeks21&amp;data=NTdlYzY4NWUxYjEyOGY1Y2VmYjNlNTI3MmFiYjVjMDViYzc1ZmRkOTRkOTZlYTdiZmJlOWUzMWE5Njg5ZGU5MjY3MmU5NzI2NjcyMTE0Y2U3MGI4NGQzMmI4MmJhZDhjNzkyYTc2MGYxODE1MWNjNDVhYTNmOGRlMzVkNmFjMjU4NWQyMzA1NzM4MzMwMjllYWEwOGE1NGM0MmIzNGVlYjQ3YTk1ODQ5ODcxYTBhYmVhZDE5YmYyMTA0NmYxZTc2MmUyM2Y4NDg5Zjg1OGIyNTA3YjczNmI4N2IwMGM1MWViYzc2N2FlY2QxNzM0MDRmMzdhOGYwYjJmMTYxZjFkYzg5YzgyM2E5NmU2OGYyMjY1NzJlYjE1NTE2ZWEzNDQz&amp;sid=6d61fb14555341879a76bc30a3ddb842_86936a6b" target="_blank">
+ <p>The Second Coming: What Does the Bible Predict? </p>
+ <div class="adsnative-icon-external-link"></div>
+ <p></p>
+ </a>
+ <img src="http://t.newsmaxfeednetwork.com/im.gif?data=NTdlYzY4NWUxYjEyOGY1Y2VmYjNlNTI3MmFiYjVjMDViYzc1ZmRkOTRkOTZlYTdiZmJlOWUzMWE5Njg5ZGU5MjY3MmU5NzI2NjcyMTE0Y2U3MGI4NGQzMmI4MmJhZDhjNzkyYTc2MGYxODE1MWNjNDVhYTNmOGRlMzVkNmFjMjU4NWQyMzA1NzM4MzMwMjllYWEwOGE1NGM0MmIzNGVlYjQ3YTk1ODQ5ODcxYTBhYmVhZDE5YmYyMTA0NmYxZTc2MmUyM2Y4NDg5Zjg1OGIyNTA3YjczNmI4N2IwMGM1MWViYzc2N2FlY2QxNzM0MDRmMzdhOGYwYjJmMTYxZjFkYzg5YzgyM2E5NmU2OGYyMjY1NzJlYjE1NTE2ZWEzNDQz&amp;sid=6d61fb14555341879a76bc30a3ddb842_86936a6b" style="margin: 0px; padding: 0px; height: 1px; width: 1px; border: medium none; float: left; display: none;" width="1" border="0" height="1" />
+ </li>
+ </ul>
+ </div>
+ <div class="sidebarText nmWidgetBrand">
+ <a target="_blank" href="https://www.newsmaxfeednetwork.com/">Powered by <img src="https://s.newsmaxfeednetwork.com/static/img/newsmax_templates/newsmax-powered-by.png" style="width: 55px !important;" /></a>
+ </div>
+ </div>
+ <div class="pubnation" data-target="FcdFRtthi9lEUjCvIY8jg6swoQEvy9_zcgNC_ul4" style="">report this ad</div>
+ </div>
+ </div>
+ <!--iscnewsmaxwidgetid-->
+
+
+ <div id="breitbartpodcasts" class="SWW">
+ <a id="bbpodcastspace" href="/podcasts/" title="Breitbart Podcasts"></a>
+ <div class="bbpodcast">
+ <a href="/podcasts/sonnie-johnson/" rel="nofollow" class="bbpodcastimg" title="Sonnie Johnson Podcast" target="bbpodcastwindow"></a>
+ <div class="bbpodcastright">
+ <a rel="nofollow" href="/podcasts/sonnie-johnson/" class="bbpodcasttxt" title="Listen Now" target="bbpodcastwindow">Episode 42 - HashtagMakeSuccessSexyAgain</a>
+ <a rel="nofollow" href="/podcasts/sonnie-johnson/" class="bbpodcastlistennow" title="Listen Now" target="bbpodcastwindow"></a>
+ <a rel="noopener" href="https://itunes.apple.com/us/podcast/id1095401893" class="bbpodcastitunes x5l" title="Listen on iTunes" target="_blank"></a>
+ </div>
+ <!--bbpodcastright-->
+ <br class="C" />
+ </div>
+ <!--bbpodcast-->
+ <div class="bbpodcast">
+ <a href="/podcasts/milo/" rel="nofollow" class="bbpodcastimg" title="Milo Yiannopoulos Podcast" target="bbpodcastwindow"></a>
+ <div class="bbpodcastright">
+ <a rel="nofollow" href="/podcasts/milo/" class="bbpodcasttxt" title="Listen Now" target="bbpodcastwindow">What Trump Means</a>
+ <a rel="nofollow" href="/podcasts/milo/" class="bbpodcastlistennow" title="Listen Now" target="bbpodcastwindow"></a>
+ <a rel="noopener" href="https://itunes.apple.com/us/podcast/id1095405552" class="bbpodcastitunes x5l" title="Listen on iTunes" target="_blank"></a>
+ </div>
+ <!--bbpodcastright-->
+ <br class="C" />
+ </div>
+ <!--bbpodcast-->
+ <div class="bbpodcast">
+ <a href="/podcasts/james-delingpole/" rel="nofollow" class="bbpodcastimg" title="James Delingpole Podcast" target="bbpodcastwindow"></a>
+ <div class="bbpodcastright">
+ <a rel="nofollow" href="/podcasts/james-delingpole/" class="bbpodcasttxt" title="Listen Now" target="bbpodcastwindow">Dominic Frisby, Comedian and Bitcoin...</a>
+ <a rel="nofollow" href="/podcasts/james-delingpole/" class="bbpodcastlistennow" title="Listen Now" target="bbpodcastwindow"></a>
+ <a rel="noopener" href="https://itunes.apple.com/us/podcast/delingpole-james-delingpole/id1163810679" class="bbpodcastitunes x5l" title="Listen on iTunes" target="_blank"></a>
+ </div>
+ <!--bbpodcastright-->
+ <br class="C" />
+ </div>
+ <!--bbpodcast-->
+ <div class="bbpodcast">
+ <a href="/podcasts/awr-hawkins/" rel="nofollow" class="bbpodcastimg" title="AWR Hawkins Podcast" target="bbpodcastwindow"></a>
+ <div class="bbpodcastright">
+ <a rel="nofollow" href="/podcasts/awr-hawkins/" class="bbpodcasttxt" title="Listen Now" target="bbpodcastwindow">Karl Malone</a>
+ <a rel="nofollow" href="/podcasts/awr-hawkins/" class="bbpodcastlistennow" title="Listen Now" target="bbpodcastwindow"></a>
+ <a rel="noopener" href="https://itunes.apple.com/us/podcast/bullets-with-awr-hawkins/id1163805390" class="bbpodcastitunes x5l" title="Listen on iTunes" target="_blank"></a>
+ </div>
+ <!--bbpodcastright-->
+ <br class="C" />
+ </div>
+ <!--bbpodcast-->
+ </div>
+
+
+ <div class="SWW">
+ <h2>MOST POPULAR</h2>
+ <ul id="disqus-popularUL">
+ <li><a href="/big-hollywood/2017/01/23/chelsea-handler-wont-interview-melania-trump-can-barely-speak-english/" title="Chelsea Handler Won’t Interview Melania Trump: ‘She Can Barely Speak English’" data-n="1">Chelsea Handler Won’t Interview Melania Trump: ‘She Can Barely Speak English’</a><span><a class="bycount" href="/big-hollywood/2017/01/23/chelsea-handler-wont-interview-melania-trump-can-barely-speak-english/#disqus_thread" data-dsqi="6005550" title="Chelsea Handler Won’t Interview Melania Trump: ‘She Can Barely Speak English’" rel="nofollow" data-n="1">4,162</a> comments - 7 hours ago</span></li>
+ <li><a href="/big-government/2017/01/23/report-obama-gave-221-million-palestinians-last-hours/" title="Report: Obama Gave $221 Million to Palestinians in Last Hours" data-n="2">Report: Obama Gave $221 Million to Palestinians in Last Hours</a><span><a class="bycount" href="/big-government/2017/01/23/report-obama-gave-221-million-palestinians-last-hours/#disqus_thread" data-dsqi="6004026" title="Report: Obama Gave $221 Million to Palestinians in Last Hours" rel="nofollow" data-n="2">5,984</a> comments - 13 hours ago</span></li>
+ <li><a href="/live/womens-march-washington-live-updates/" title="Women’s March on Washington: Live Updates" data-n="3">Women’s March on Washington: Live Updates</a><span><a class="bycount" href="/live/womens-march-washington-live-updates/#disqus_thread" data-dsqi="5991950" title="Women’s March on Washington: Live Updates" rel="nofollow" data-n="3">34,659</a> comments - 3 days ago</span></li>
+ <li><a href="/big-government/2017/01/23/sen-liz-warren-refuses-to-disavow-madonnas-wish-to-blow-up-the-white-house/" title="Sen. Liz Warren Refuses to Disavow Madonna’s Wish to ‘Blow Up the White House’" data-n="4">Sen. Liz Warren Refuses to Disavow Madonna’s Wish to ‘Blow Up the White House’</a><span><a class="bycount" href="/big-government/2017/01/23/sen-liz-warren-refuses-to-disavow-madonnas-wish-to-blow-up-the-white-house/#disqus_thread" data-dsqi="6001310" title="Sen. Liz Warren Refuses to Disavow Madonna’s Wish to ‘Blow Up the White House’" rel="nofollow" data-n="4">4,701</a> comments - 13 hours ago</span></li>
+ <li><a href="/live/inauguration-2017-swearing-president-donald-trump/" title="Inauguration 2017: The Swearing In of President Donald Trump" data-n="5">Inauguration 2017: The Swearing In of President Donald Trump</a><span><a class="bycount" href="/live/inauguration-2017-swearing-president-donald-trump/#disqus_thread" data-dsqi="5983254" title="Inauguration 2017: The Swearing In of President Donald Trump" rel="nofollow" data-n="5">42,070</a> comments - 4 days ago</span></li>
+ <li><a href="/texas/2017/01/23/poll-74-percent-californians-want-end-sanctuary-cities/" title="Poll: 74 Percent of Californians Want to End Sanctuary Cities" data-n="6">Poll: 74 Percent of Californians Want to End Sanctuary Cities</a><span><a class="bycount" href="/texas/2017/01/23/poll-74-percent-californians-want-end-sanctuary-cities/#disqus_thread" data-dsqi="6003278" title="Poll: 74 Percent of Californians Want to End Sanctuary Cities" rel="nofollow" data-n="6">3,930</a> comments - 15 hours ago</span></li>
+ <li><a href="/big-government/2017/01/23/donald-trump-executive-orders-kills-tpp-announces-federal-hiring-freeze-restores-mexico-city-policy/" title="Donald Trump Executive Actions Kills TPP, Announces Federal Hiring Freeze, Restores Mexico City Policy" data-n="7">Donald Trump Executive Actions Kills TPP, Announces Federal Hiring Freeze, Restores Mexico City Policy</a><span><a class="bycount" href="/big-government/2017/01/23/donald-trump-executive-orders-kills-tpp-announces-federal-hiring-freeze-restores-mexico-city-policy/#disqus_thread" data-dsqi="6001426" title="Donald Trump Executive Actions Kills TPP, Announces Federal Hiring Freeze, Restores Mexico City Policy" rel="nofollow" data-n="7">4,824</a> comments - 18 hours ago</span></li>
+ <li><a href="/video/2017/01/23/gloria-steinem-woman-felt-sexually-assaulted-by-trumps-language-attitude/" title="Gloria Steinem: Woman Felt ‘Sexually Assaulted’ by Trump’s ‘Language,’ ‘Attitude’" data-n="8">Gloria Steinem: Woman Felt ‘Sexually Assaulted’ by Trump’s ‘Language,’ ‘Attitude’</a><span><a class="bycount" href="/video/2017/01/23/gloria-steinem-woman-felt-sexually-assaulted-by-trumps-language-attitude/#disqus_thread" data-dsqi="6005298" title="Gloria Steinem: Woman Felt ‘Sexually Assaulted’ by Trump’s ‘Language,’ ‘Attitude’" rel="nofollow" data-n="8">1,623</a> comments - 8 hours ago</span></li>
+ <li><a href="/big-government/2017/01/23/president-trump-kills-tpp-executive-order-officially-withdrawing/" title="President Trump Kills TPP Once and for All with Executive Order Officially Withdrawing" data-n="9">President Trump Kills TPP Once and for All with Executive Order Officially Withdrawing</a><span><a class="bycount" href="/big-government/2017/01/23/president-trump-kills-tpp-executive-order-officially-withdrawing/#disqus_thread" data-dsqi="6001622" title="President Trump Kills TPP Once and for All with Executive Order Officially Withdrawing" rel="nofollow" data-n="9">3,412</a> comments - 17 hours ago</span></li>
+ <li><a href="/big-hollywood/2017/01/23/snl-writer-suspended-barron-trump-homeschool-shooter-tweet/" title="‘SNL’ Writer Suspended for Barron Trump ‘Homeschool Shooter’ Tweet" data-n="10">‘SNL’ Writer Suspended for Barron Trump ‘Homeschool Shooter’ Tweet</a><span><a class="bycount" href="/big-hollywood/2017/01/23/snl-writer-suspended-barron-trump-homeschool-shooter-tweet/#disqus_thread" data-dsqi="6003970" title="‘SNL’ Writer Suspended for Barron Trump ‘Homeschool Shooter’ Tweet" rel="nofollow" data-n="10">2,453</a> comments - 13 hours ago</span></li>
+ </ul>
+ </div>
+ <!--SWW-->
+
+
+ <div id="iscsynapsyswidget1" class="H"></div>
+ <!--iscsynapsyswidget1-->
+
+
+ <div id="HPSW" class="SWW">
+ <h2>FROM THE HOMEPAGE</h2>
+ <ul id="HPSWUL">
+ <li>
+ <a href="/texas/2017/01/23/chelsea-handler-wont-interview-melania-trump-can-barely-speak-english/" title="President Donald Trump and First Lady Melania Trump can save …" data-n="1"><img data-qazy="true" src="http://media.breitbart.com/media/2017/01/Chelsea-Handler-Melania-Trump-2-Getty-200x150.jpg" class="qazy" alt="Chelsea Handler Won’t Interview Melania Trump: ‘She Can Barely Speak English’" title="President Donald Trump and First Lady Melania Trump can save …" width="200" height="150" />
+ <div>Chelsea Handler Won’t Interview Melania Trump: ‘She Can Barely Speak English’</div>
+ </a> <span><a class="bycount" rel="nofollow" href="/texas/2017/01/23/chelsea-handler-wont-interview-melania-trump-can-barely-speak-english/#disqus_thread" title="Chelsea Handler Won’t Interview Melania Trump: ‘She Can Barely Speak English’" data-dsqi="6005550" data-n="1">4158</a> Comments</span> </li>
+ <li class="flr">
+ <a href="/texas/2017/01/23/gloria-steinem-woman-felt-sexually-assaulted-by-trumps-language-attitude/" title="Monday on MSNBC's &quot;All In,&quot; discussing Saturday's women’s march on …" data-n="2"><img data-qazy="true" src="http://media.breitbart.com/media/2017/01/Steinem-200x150.jpg" class="qazy" alt="Gloria Steinem: Woman Felt ‘Sexually Assaulted’ by Trump’s ‘Language,’ ‘Attitude’" title="Monday on MSNBC's &quot;All In,&quot; discussing Saturday's women’s march on …" width="200" height="150" />
+ <div>Gloria Steinem: Woman Felt ‘Sexually Assaulted’ by Trump’s ‘Language,’ ‘Attitude’</div>
+ </a> <span><a class="bycount" rel="nofollow" href="/texas/2017/01/23/gloria-steinem-woman-felt-sexually-assaulted-by-trumps-language-attitude/#disqus_thread" title="Gloria Steinem: Woman Felt ‘Sexually Assaulted’ by Trump’s ‘Language,’ ‘Attitude’" data-dsqi="6005298" data-n="2">1623</a> Comments</span> </li>
+ <li>
+ <a href="/texas/2017/01/23/watch-planned-parenthoods-pre-natal-care-deception/" title="National pro-life organization Live Action is releasing a new investigative …" data-n="3"><img data-qazy="true" src="http://media.breitbart.com/media/2017/01/pre-natal-care-Getty-200x150.jpg" class="qazy" alt="Watch: Planned Parenthood’s ‘Pre-Natal Care Deception’" title="National pro-life organization Live Action is releasing a new investigative …" width="200" height="150" />
+ <div>Watch: Planned Parenthood’s ‘Pre-Natal Care Deception’</div>
+ </a> <span><a class="bycount" rel="nofollow" href="/texas/2017/01/23/watch-planned-parenthoods-pre-natal-care-deception/#disqus_thread" title="Watch: Planned Parenthood’s ‘Pre-Natal Care Deception’" data-dsqi="6005858" data-n="3">154</a> Comments</span> </li>
+ <li class="flr">
+ <a href="/texas/2017/01/23/virgil-age-lion-donald-trump-meets-andrew-jackson/" title="Second of Two Parts... In Part One of this series, …" data-n="4"><img data-qazy="true" src="http://media.breitbart.com/media/2017/01/Virgil-Donald-Trump-Andrew-Jackson-Getty-200x150.jpg" class="qazy" alt="Virgil: The Age of the Lion — Donald Trump Meets Andrew Jackson" title="Second of Two Parts... In Part One of this series, …" width="200" height="150" />
+ <div>Virgil: The Age of the Lion — Donald Trump Meets Andrew Jackson</div>
+ </a> <span><a class="bycount" rel="nofollow" href="/texas/2017/01/23/virgil-age-lion-donald-trump-meets-andrew-jackson/#disqus_thread" title="Virgil: The Age of the Lion — Donald Trump Meets Andrew Jackson" data-dsqi="6003326" data-n="4">149</a> Comments</span> </li>
+ <li>
+ <a href="/texas/2017/01/23/critics-trump-deputies-break-immigration-promise-day-one/" title="President Donald Trump’s deputies have yet to stop the Department …" data-n="5"><img data-qazy="true" src="http://media.breitbart.com/media/2017/01/DACA-Joe-Raedle-Getty-Images-200x150.jpg" class="qazy" alt="Critics: Trump’s Deputies Break His Cheap-Labor Immigration Promise on Day One" title="President Donald Trump’s deputies have yet to stop the Department …" width="200" height="150" />
+ <div>Critics: Trump’s Deputies Break His Cheap-Labor Immigration Promise on Day One</div>
+ </a> <span><a class="bycount" rel="nofollow" href="/texas/2017/01/23/critics-trump-deputies-break-immigration-promise-day-one/#disqus_thread" title="Critics: Trump’s Deputies Break His Cheap-Labor Immigration Promise on Day One" data-dsqi="6004430" data-n="5">681</a> Comments</span> </li>
+ <li class="flr">
+ <a href="/texas/2017/01/23/despite-democrat-obstruction-u-s-senate-confirms-mike-pompeo-as-next-director-of-cia/" title="On Monday evening, Kansas Republican Mike Pompeo was confirmed as …" data-n="6"><img data-qazy="true" src="http://media.breitbart.com/media/2017/01/Pompeo-Grilled-AP-200x150.png" class="qazy" alt="Despite Democrat Obstruction U.S. Senate Confirms Mike Pompeo as Next Director of CIA" title="On Monday evening, Kansas Republican Mike Pompeo was confirmed as …" width="200" height="150" />
+ <div>Despite Democrat Obstruction U.S. Senate Confirms Mike Pompeo as Next Director of CIA</div>
+ </a> <span><a class="bycount" rel="nofollow" href="/texas/2017/01/23/despite-democrat-obstruction-u-s-senate-confirms-mike-pompeo-as-next-director-of-cia/#disqus_thread" title="Despite Democrat Obstruction U.S. Senate Confirms Mike Pompeo as Next Director of CIA" data-dsqi="6005154" data-n="6">921</a> Comments</span> </li>
+ <li>
+ <a href="/texas/2017/01/23/report-obama-gave-221-million-palestinians-last-hours/" title="The Associated Press reported Monday that former President Barack Obama …" data-n="7"><img data-qazy="true" src="http://media.breitbart.com/media/2017/01/Donald-Trump-Barack-Obama-January-20-2017-200x150.jpg" class="qazy" alt="Report: Obama Gave $221 Million to Palestinians in Last Hours" title="The Associated Press reported Monday that former President Barack Obama …" width="200" height="150" />
+ <div>Report: Obama Gave $221 Million to Palestinians in Last Hours</div>
+ </a> <span><a class="bycount" rel="nofollow" href="/texas/2017/01/23/report-obama-gave-221-million-palestinians-last-hours/#disqus_thread" title="Report: Obama Gave $221 Million to Palestinians in Last Hours" data-dsqi="6004026" data-n="7">5810</a> Comments</span> </li>
+ <li class="flr">
+ <a href="/texas/2017/01/23/breitbart-news-daily-goodbye-tpp-hello-american-jobs/" title="On the Tuesday edition of Breitbart News Daily, broadcast live …" data-n="8"><img data-qazy="true" src="http://media.breitbart.com/media/2016/05/Radio-Daily2-200x150.jpg" class="qazy" alt="Breitbart News Daily: Goodbye TPP; Hello American Jobs" title="On the Tuesday edition of Breitbart News Daily, broadcast live …" width="200" height="150" />
+ <div>Breitbart News Daily: Goodbye TPP; Hello American Jobs</div>
+ </a> <span><a class="bycount" rel="nofollow" href="/texas/2017/01/23/breitbart-news-daily-goodbye-tpp-hello-american-jobs/#disqus_thread" title="Breitbart News Daily: Goodbye TPP; Hello American Jobs" data-dsqi="6005234" data-n="8">73</a> Comments</span> </li>
+ <li>
+ <a href="/texas/2017/01/23/brady-campaign-quiet-guns-deadlier-loud-ones/" title="On January 23, the Brady Campaign to Prevent Gun Violence …" data-n="9"><img data-qazy="true" src="http://media.breitbart.com/media/2017/01/man-uses-gun-silencer-suppressor-rifle-getty-200x150.jpg" class="qazy" alt="Brady Campaign: Quiet Guns Deadlier Than Loud Ones" title="On January 23, the Brady Campaign to Prevent Gun Violence …" width="200" height="150" />
+ <div>Brady Campaign: Quiet Guns Deadlier Than Loud Ones</div>
+ </a> <span><a class="bycount" rel="nofollow" href="/texas/2017/01/23/brady-campaign-quiet-guns-deadlier-loud-ones/#disqus_thread" title="Brady Campaign: Quiet Guns Deadlier Than Loud Ones" data-dsqi="6006154" data-n="9">225</a> Comments</span> </li>
+ <li class="flr">
+ <a href="/texas/2017/01/23/wapo-d-c-careful-becoming-sanctuary-city-trump/" title="Just as President Donald Trump begins his full work week, …" data-n="10"><img data-qazy="true" src="http://media.breitbart.com/media/2017/01/1-200x150.jpg" class="qazy" alt="WaPo: D.C. Should Be Careful Becoming Sanctuary City Under Trump" title="Just as President Donald Trump begins his full work week, …" width="200" height="150" />
+ <div>WaPo: D.C. Should Be Careful Becoming Sanctuary City Under Trump</div>
+ </a> <span><a class="bycount" rel="nofollow" href="/texas/2017/01/23/wapo-d-c-careful-becoming-sanctuary-city-trump/#disqus_thread" title="WaPo: D.C. Should Be Careful Becoming Sanctuary City Under Trump" data-dsqi="6003438" data-n="10">84</a> Comments</span> </li>
+ <li>
+ <a href="/texas/2017/01/23/teamsters-jimmy-hoffa-lavishes-praise-on-president-trump-on-trade-policy/" title="International Brotherhood of Teamsters president James P. Hoffa praised President …" data-n="11"><img data-qazy="true" src="http://media.breitbart.com/media/2017/01/James-P.-Hoffa-200x133.jpg" class="qazy" alt="Teamsters’ Jimmy Hoffa Lavishes Praise on President Trump on Trade Policy" title="International Brotherhood of Teamsters president James P. Hoffa praised President …" width="200" height="133" />
+ <div>Teamsters’ Jimmy Hoffa Lavishes Praise on President Trump on Trade Policy</div>
+ </a> <span><a class="bycount" rel="nofollow" href="/texas/2017/01/23/teamsters-jimmy-hoffa-lavishes-praise-on-president-trump-on-trade-policy/#disqus_thread" title="Teamsters’ Jimmy Hoffa Lavishes Praise on President Trump on Trade Policy" data-dsqi="6004358" data-n="11">604</a> Comments</span> </li>
+ <li class="flr">
+ <a href="/texas/2017/01/23/trump-white-house-pledges-support-law-enforcement-white-house-page/" title="President Trump is keeping his campaign promise as president by …" data-n="12"><img data-qazy="true" src="http://media.breitbart.com/media/2016/12/Trump-Laredo-Police-2016-ap-200x150.jpg" class="qazy" alt="Trump White House Pledges Support for Law Enforcement in White House Page " title="President Trump is keeping his campaign promise as president by …" width="200" height="150" />
+ <div>Trump White House Pledges Support for Law Enforcement in White House Page </div>
+ </a> <span><a class="bycount" rel="nofollow" href="/texas/2017/01/23/trump-white-house-pledges-support-law-enforcement-white-house-page/#disqus_thread" title="Trump White House Pledges Support for Law Enforcement in White House Page " data-dsqi="6004762" data-n="12">167</a> Comments</span> </li>
+ <li>
+ <a href="/texas/2017/01/23/burlesque-dancer-fired-investigated-by-secret-service-for-trump-assassination-tweet/" title="The Secret Service is investigating a burlesque dancer from Kentucky …" data-n="13"><img data-qazy="true" src="http://media.breitbart.com/media/2017/01/Heather-Lowrey-200x150.png" class="qazy" alt="Burlesque Dancer Fired, Investigated by Secret Service for Trump Assassination Tweet" title="The Secret Service is investigating a burlesque dancer from Kentucky …" width="200" height="150" />
+ <div>Burlesque Dancer Fired, Investigated by Secret Service for Trump Assassination Tweet</div>
+ </a> <span><a class="bycount" rel="nofollow" href="/texas/2017/01/23/burlesque-dancer-fired-investigated-by-secret-service-for-trump-assassination-tweet/#disqus_thread" title="Burlesque Dancer Fired, Investigated by Secret Service for Trump Assassination Tweet" data-dsqi="6002926" data-n="13">1205</a> Comments</span> </li>
+ <li class="flr">
+ <a href="/texas/2017/01/23/five-facts-president-trump-reinstating-mexico-city-policy-abortion/" title="President Donald Trump signed an executive order Monday that reinstated …" data-n="14"><img data-qazy="true" src="http://media.breitbart.com/media/2017/01/Pro-Life-Protester-US-SCOTUS-2016-Getty-200x150.jpg" class="qazy" alt="Five Facts About Trump’s Reinstatement of the Mexico City Policy on Abortion" title="President Donald Trump signed an executive order Monday that reinstated …" width="200" height="150" />
+ <div>Five Facts About Trump’s Reinstatement of the Mexico City Policy on Abortion</div>
+ </a> <span><a class="bycount" rel="nofollow" href="/texas/2017/01/23/five-facts-president-trump-reinstating-mexico-city-policy-abortion/#disqus_thread" title="Five Facts About Trump’s Reinstatement of the Mexico City Policy on Abortion" data-dsqi="6003894" data-n="14">507</a> Comments</span> </li>
+ <li>
+ <a href="/texas/2017/01/23/andrea-mitchell-sean-spicer-first-press-briefing-was-substantive-and-responsive/" title="Monday on MSNBC commenting on the first official White House …" data-n="15"><img data-qazy="true" src="http://media.breitbart.com/media/2015/11/Mitchell-1124-Thumbnail-200x150.jpg" class="qazy" alt="Andrea Mitchell: Sean Spicer First Press Briefing Was ‘Substantive’ and ‘Responsive’" title="Monday on MSNBC commenting on the first official White House …" width="200" height="150" />
+ <div>Andrea Mitchell: Sean Spicer First Press Briefing Was ‘Substantive’ and ‘Responsive’</div>
+ </a> <span><a class="bycount" rel="nofollow" href="/texas/2017/01/23/andrea-mitchell-sean-spicer-first-press-briefing-was-substantive-and-responsive/#disqus_thread" title="Andrea Mitchell: Sean Spicer First Press Briefing Was ‘Substantive’ and ‘Responsive’" data-dsqi="6003906" data-n="15">391</a> Comments</span> </li>
+ <li class="flr">
+ <a href="/texas/2017/01/23/sean-spicer-scolds-media-negative-donald-trump-coverage/" title="White House press secretary Sean Spicer called out the media …" data-n="16"><img data-qazy="true" src="http://media.breitbart.com/media/2017/01/Sean-Spicer-At-First-Press-Conference-200x150.jpg" class="qazy" alt="Sean Spicer Scolds Media for Negative Donald Trump Coverage" title="White House press secretary Sean Spicer called out the media …" width="200" height="150" />
+ <div>Sean Spicer Scolds Media for Negative Donald Trump Coverage</div>
+ </a> <span><a class="bycount" rel="nofollow" href="/texas/2017/01/23/sean-spicer-scolds-media-negative-donald-trump-coverage/#disqus_thread" title="Sean Spicer Scolds Media for Negative Donald Trump Coverage" data-dsqi="6004306" data-n="16">568</a> Comments</span> </li>
+ <li>
+ <a href="/texas/2017/01/23/guardian-hysteria-trump-unleash-tsunami-human-rights/" title="Reaching a new acme in irresponsible fear-mongering, the far-left Guardian …" data-n="17"><img data-qazy="true" src="http://media.breitbart.com/media/2016/09/Guardian-200x150.jpg" class="qazy" alt="Guardian Hysteria: Trump to ‘Unleash a Tsunami’ Against Human Rights" title="Reaching a new acme in irresponsible fear-mongering, the far-left Guardian …" width="200" height="150" />
+ <div>Guardian Hysteria: Trump to ‘Unleash a Tsunami’ Against Human Rights</div>
+ </a> <span><a class="bycount" rel="nofollow" href="/texas/2017/01/23/guardian-hysteria-trump-unleash-tsunami-human-rights/#disqus_thread" title="Guardian Hysteria: Trump to ‘Unleash a Tsunami’ Against Human Rights" data-dsqi="6001754" data-n="17">487</a> Comments</span> </li>
+ <li class="flr">
+ <a href="/texas/2017/01/23/obama-exports-us-airline-jobs/" title="Airline pilots will hold a White House rally on Tuesday …" data-n="18"><img data-qazy="true" src="http://media.breitbart.com/media/2017/01/AP_090224058041-200x150.jpg" class="qazy" alt="U.S. Airline Pilots Rally at White House: Will Ask Trump To Block Obama’s Export of White-Collar Jobs" title="Airline pilots will hold a White House rally on Tuesday …" width="200" height="150" />
+ <div>U.S. Airline Pilots Rally at White House: Will Ask Trump To Block Obama’s Export of White-Collar Jobs</div>
+ </a> <span><a class="bycount" rel="nofollow" href="/texas/2017/01/23/obama-exports-us-airline-jobs/#disqus_thread" title="U.S. Airline Pilots Rally at White House: Will Ask Trump To Block Obama’s Export of White-Collar Jobs" data-dsqi="5998654" data-n="18">335</a> Comments</span> </li>
+ <li>
+ <a href="/texas/2017/01/23/patriots-qb-tom-brady-speaks-friendship-president-trump/" title="For the first time Patriots quarterback Tom Brady spoke openly …" data-n="19"><img data-qazy="true" src="http://media.breitbart.com/media/2017/01/Trump-Brady-200x150.png" class="qazy" alt="Patriots QB Tom Brady Speaks About Friendship with President Trump" title="For the first time Patriots quarterback Tom Brady spoke openly …" width="200" height="150" />
+ <div>Patriots QB Tom Brady Speaks About Friendship with President Trump</div>
+ </a> <span><a class="bycount" rel="nofollow" href="/texas/2017/01/23/patriots-qb-tom-brady-speaks-friendship-president-trump/#disqus_thread" title="Patriots QB Tom Brady Speaks About Friendship with President Trump" data-dsqi="6001354" data-n="19">199</a> Comments</span> </li>
+ <li class="flr">
+ <a href="/texas/2017/01/23/madonna-defends-blowing-white-house/" title="Pop singer Madonna has issued a defense of a comment …" data-n="20"><img data-qazy="true" src="http://media.breitbart.com/media/2017/01/MadonnaClarifies-200x150.jpg" class="qazy" alt="Madonna Defends ‘Blowing Up White House’ Comment: ‘Wildly Out of Context’" title="Pop singer Madonna has issued a defense of a comment …" width="200" height="150" />
+ <div>Madonna Defends ‘Blowing Up White House’ Comment: ‘Wildly Out of Context’</div>
+ </a> <span><a class="bycount" rel="nofollow" href="/texas/2017/01/23/madonna-defends-blowing-white-house/#disqus_thread" title="Madonna Defends ‘Blowing Up White House’ Comment: ‘Wildly Out of Context’" data-dsqi="6001618" data-n="20">1303</a> Comments</span> </li>
+ </ul>
+ <!--HPSWUL-->
+ <div><br class="C" /></div>
+ </div>
+ <!--SWW-->
+ <div><br class="C" /></div>
+
+
+ <div class="send-tip SWW"><img src="http://media.breitbart.com/media/2015/09/send-tip.jpg" alt="Send a Tip" data-qazy="true" class="qazy" width="310" height="170" />
+ <p><a rel="nofollow" href="/send-a-tip/">Send A Tip</a></p>
+ </div>
+ <!--send-tip-->
+
+ <div class="mobile send-tip mobile-send-tip SWW">
+ <p><a rel="nofollow" href="/send-a-tip/">Send A Tip</a></p>
+ </div>
+ <!--mobile-send-tip-->
+
+
+ <div class="ad Hmobi SWW">
+ <div class="ad-wrapper">
+ <div id="desktop-ROS-Rail4" data-google-query-id="CObP15bP2tECFYcvlgodYS4Hnw">
+ <div id="google_ads_iframe_/1003622/Breitbart.ROS.Rail4_0__container__" style="border: 0pt none; display: inline-block; width: 300px; height: 250px;"><iframe style="border: 0px none; vertical-align: bottom;" src="http://tpc.googlesyndication.com/safeframe/1-0-5/html/container.html#xpc=sf-gdn-exp-2&amp;p=http%3A//www.breitbart.com" id="google_ads_iframe_/1003622/Breitbart.ROS.Rail4_0" title="3rd party ad content" name="" scrolling="no" marginwidth="0" marginheight="0" data-is-safeframe="true" width="300" height="250" frameborder="0"></iframe></div>
+ </div>
+ <div class="pubnation" data-target="desktop-ROS-Rail4" style="">report this ad</div>
+ </div>
+ <p>advertisement</p>
+ </div>
+ <!--SWW-->
+
+ <div><br class="C" /></div>
+ </div>
+ <!--SideW-->
+ </aside>
+ <div class="clear"></div>
+ </div>
+ <!--ContainerW-->
+ </div>
+ <!--ContentW-->
+ <footer id="footerFootW">
+ <div id="FootW">
+ <div id="FWI">
+ <div class="colW col7">
+ <a class="logo" href="/" title="Breitbart"></a>
+ <div class="copyright">
+ <p id="copyrighttext"><small>Copyright © 2017 Breitbart</small></p>
+ <form class="search-form" method="get" action="/search/"><label for="searchiscq2"></label><input placeholder="SEARCH" name="s" id="searchiscq2" value="" type="text" /><input value="search" type="submit" /></form>
+ <a rel="nofollow" href="/advertise-with-us/">Advertise With Us</a>
+ </div>
+ </div>
+ <!--col7-->
+
+ <div class="colW col8">
+ <nav id="navNavF">
+ <h4>EXPLORE BREITBART</h4>
+
+ <ul id="NavF" class="menu">
+ <li><a href="/big-government/" class="ddt">Big Government</a>
+ <ul class="S" id="fm0">
+ <li><a href="/big-journalism/">Big Journalism</a></li>
+ <li><a href="/big-hollywood/">Big Hollywood</a></li>
+ <li><a href="/national-security/">National Security</a></li>
+ <li><a href="/tech/">Tech</a></li>
+ <li><a href="/video/">Video</a></li>
+ <li><a href="/sports/">Sports</a></li>
+ <li><a href="/news/">The Wires</a></li>
+ </ul>
+ </li>
+ <li><a href="/london/" class="ddt">London</a>
+ <ul class="S" id="fm1">
+ <li><a href="/jerusalem/">Jerusalem</a></li>
+ <li><a href="/texas/">Texas</a></li>
+ <li><a href="/california/">California</a></li>
+ </ul>
+ </li>
+ <li><a href="/blog/" class="ddt">The Conversation</a>
+ <ul class="S" id="fm2">
+ <li><a rel="nofollow" href="/about-us/privacy-policy/">Privacy Policy</a></li>
+ <li><a rel="nofollow" href="/about-us/terms-of-use/">Terms of Use</a></li>
+ <li><a rel="nofollow" href="/about-us/jobs/">Breitbart Jobs</a></li>
+ </ul>
+ </li>
+ </ul>
+ <!--NavF-->
+ <!--NavF-->
+
+ </nav>
+ </div>
+ <!--col8-->
+
+ <div class="colW col3 endcol">
+ <nav id="navFSocialUL">
+ <h4>Connect</h4>
+ <ul id="FSocialUL">
+ <li><a href="https://www.facebook.com/Breitbart"><span class="fb"></span>Facebook</a></li>
+ <li><a href="https://twitter.com/#%21/BreitbartNews"><span class="tw"></span>Twitter</a></li>
+ <li><a href="http://feeds.feedburner.com/breitbart"><span class="rs"></span>RSS</a></li>
+ <li><a rel="nofollow" href="/send-a-tip/"><span class="tp"></span>Send us a tip</a></li>
+ </ul>
+ <p id="foottools">
+ <a class="logo mobile" href="/" title="Breitbart"></a><a rel="nofollow" class="subscribe" href="/newsletter-signup/">SUBSCRIBE TO THE BREITBART NEWSLETTER</a><a id="fullsiteswitch" class="full-site mobile" href="/">Switch to Full Site</a></p>
+ </nav>
+ </div>
+ <!--col3-->
+ <p class="copyright mobile"><small>Copyright © 2017 Breitbart</small></p>
+ </div>
+ <!--FWI-->
+ </div>
+ <!--FootW-->
+ </footer>
+ </div>
+ <!--GlobalW-->
+
+
+ <noscript>
+&lt;img style="display:none" height="1" width="1" alt="" src="//pixel.quantserve.com/pixel/p-dcxh5b8qxvs6g.gif" /&gt;
+&lt;img style="display:none" height="1" width="1" alt="" src="https://www.facebook.com/tr?id=296280873867140&amp;amp;ev=NoScript" /&gt;
+&lt;img style="display:none" height="1" width="1" alt="" src="http://b.scorecardresearch.com/p?c1=2&amp;amp;c2=17674108&amp;amp;cv=2.0&amp;amp;cj=1" /&gt;
+&lt;img src="https://d5nxst8fruw4z.cloudfront.net/atrk.gif?account=l2Y7o1IW1810vg" style="display:none" height="1" width="1" alt="" /&gt;
+</noscript>
+
+ <script>
+ if (isc_metric1 === 5) {
+ var inf1 = document.getElementById("inform-player-1");
+ if (inf1) inf1.setAttribute("data-config-pb", "6")
+ }
+ var disqus_shortname = "breitbartproduction",
+ disqus_domain = "disqus.com",
+ DISQUSWIDGETS;
+ typeof DISQUSWIDGETS === "undefined" & amp; & amp;
+ (DISQUSWIDGETS = function() {
+ var f = document,
+ ContainerW = f.getElementById("ContainerW"),
+ e = {},
+ s = f.head || f.body,
+ j = {},
+ q = {
+ identifier: 1,
+ url: 2
+ };
+ e.domain = disqus_domain;
+ e.forum = disqus_shortname;
+ e.proto = "";
+ e.getCount = function() {
+ var c;
+ c = encodeURIComponent;
+ var a = e.proto + "//" + disqus_shortname + "." + e.domain + "/count-data.js?",
+ d = [],
+ k = 0,
+ l = 40,
+ r = "",
+ b = {};
+ b.reset & amp; & amp;
+ (j = {}, r = "&amp;_=" + +new Date);
+ for (var x = [ContainerW.getElementsByTagName("A")], m, i, g, h, n = 0; n & lt; x.length; n++) {
+ m = x[n];
+ for (var o = 0; o & lt; m.length; o++) {
+ i = m[o];
+ h = i.hash === "#disqus_thread" & amp; & amp;
+ i.href.replace("#disqus_thread", "") || i.getAttribute("data-dsqu");
+ g = i.getAttribute("data-dsqi");
+ if (g) h = q.identifier;
+ else if (h) g = h, h = q.url;
+ else continue;
+ var p;
+ j.hasOwnProperty(g) ? p = j[g] : (p = j[g] = {
+ elements: [],
+ type: h
+ }, d.push(c(h) + "=" + c(g)));
+ p.elements.push(i)
+ }
+ }
+ d.sort();
+ for (c = d.slice(k, l); c.length;) b = f.createElement("script"), b.src = a + c.join("&amp;") + r, s.appendChild(b), k += 40, l += 40, c = d.slice(k, l)
+ };
+ e.displayCount = function(b) {
+ var bb = b.text.comments;
+ for (var c, a,
+ d, e = b.counts; c = e.shift();)
+ if (a = j[c.id]) {
+ switch (c.comments) {
+ case 0:
+ d = bb.zero;
+ break;
+ case 1:
+ d = bb.one;
+ break;
+ default:
+ d = bb.multiple
+ }
+ c = d.replace("{num}", c.comments);
+ a = a.elements;
+ for (d = a.length - 1; d & gt; = 0; d--) a[d].innerHTML = c
+ }
+ };
+ return e
+ }());
+ DISQUSWIDGETS.getCount();
+ _atrk_opts = {
+ atrk_acct: "l2Y7o1IW1810vg",
+ domain: "breitbart.com",
+ dynamic: true
+ };
+ (function() {
+ var as = document.createElement("script");
+ as.type = "text/javascript";
+ as.async = true;
+ as.src = "https://d31qbv1cthcecs.cloudfront.net/atrk.js";
+ var s = document.getElementsByTagName("script")[0];
+ s.parentNode.insertBefore(as, s)
+ })();
+ </script>
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
+ <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
+ <script>
+ window.jQuery || document.write(unescape('%3Cscript src="//code.jquery.com/jquery-1.12.4.min.js"%3E%3C/script%3E%3Cscript src="//code.jquery.com/ui/1.11.4/jquery-ui.min.js"%3E%3C/script%3E'))
+ </script>
+ <script src="/t/style-014852557.js" type="text/javascript"></script>
+
+ <div id="ROS-1x1-Pixel" class="div-gpt-ad-1465332055334-0" style="height:1px; width:1px;" data-google-query-id="CKz61ZbP2tECFQQ4lgodH5oHJw">
+ <div id="google_ads_iframe_/1003622/Breitbart.ROS.1X1_0__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/1003622/Breitbart.ROS.1X1_0" title="3rd party ad content" name="google_ads_iframe_/1003622/Breitbart.ROS.1X1_0" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" srcdoc="" width="1" height="1" frameborder="0"></iframe></div>
+ </div>
+ <!--/1003622/Breitbart.ROS.1X1-->
+ <!-- 3 queries. 0.112 seconds. -->
+
+ <script type="text/javascript" id="cplusonejs" async="" src="https://apis.google.com/js/client:plusone.js" gapi_processed="true"></script><iframe name="oauth2relay637146154" id="oauth2relay637146154" src="https://accounts.google.com/o/oauth2/postmessageRelay?parent=http%3A%2F%2Fwww.breitbart.com&amp;jsh=m%3B%2F_%2Fscs%2Fapps-static%2F_%2Fjs%2Fk%3Doz.gapi.zh_TW.tG5bnIHTb5g.O%2Fm%3D__features__%2Fam%3DAQ%2Frt%3Dj%2Fd%3D1%2Frs%3DAGLTcCPtGeQaUyun5lXJYreWuO_zbldYQQ#rpctoken=1983948541&amp;forcesecure=1" style="width: 1px; height: 1px; position: absolute; top: -100px;" tabindex="-1" aria-hidden="true"></iframe><iframe id="apiproxy6ba324051a2bc920a2744ddfdb2a4f06b7ad5d6b0.9334498231289134" name="apiproxy6ba324051a2bc920a2744ddfdb2a4f06b7ad5d6b0.9334498231289134" style="width: 1px; height: 1px; position: absolute; top: -100px;" src="https://content.googleapis.com/static/proxy.html?jsh=m%3B%2F_%2Fscs%2Fapps-static%2F_%2Fjs%2Fk%3Doz.gapi.zh_TW.tG5bnIHTb5g.O%2Fm%3D__features__%2Fam%3DAQ%2Frt%3Dj%2Fd%3D1%2Frs%3DAGLTcCPtGeQaUyun5lXJYreWuO_zbldYQQ#parent=http%3A%2F%2Fwww.breitbart.com&amp;rpctoken=1552030175" tabindex="-1" aria-hidden="true"></iframe>
+ <script type="text/javascript" id="_nw2e-js" async="" src="//launch.newsinc.com/js/embed.js"></script>
+ <script type="text/javascript" id="iscfbdsjs" async="" src="https://connect.facebook.net/en_US/fbds.js"></script><iframe id="rufous-sandbox" scrolling="no" allowtransparency="true" allowfullscreen="true" style="position: absolute; visibility: hidden; display: none; width: 0px; height: 0px; padding: 0px; border: medium none;" title="Twitter analytics iframe" frameborder="0"></iframe>
+ <div id="tbl-aug-jqevjm" class="trc_popover_aug_container">
+ <div id="tbl-aug-xphicj" class="trc_popover_aug_container">
+ <div id="tbl-aug-36dhpn" class="trc_popover_aug_container">
+ <div class=" trc_popover trc_popover_fade trc_bottom ">
+ <div class=" trc_popover_arrow "></div><iframe scrolling="no" src="javascript:void(0)" style="width: 100%;" frameborder="0"></iframe></div>
+ </div>
+ </div>
+ </div>
+ <form class="trc-hidden" target="tb-trc-transportFrame-5767" style="display: none;" method="post" action="http://trc.taboola.com/breitbartcom/log/3/available"><input name="ri" value="d31562828dee82cdf11fcbdbb965baca" type="hidden" /><input name="sd" value="v2_dc4044ca1eb166ce37b381df2182a109_4513e486-1bcb-484d-b251-4ef424db019f_1485253551_1485255304_CNawjgYQpKw9GLnc9YCdKyACKAE" type="hidden" /><input name="ui" value="4513e486-1bcb-484d-b251-4ef424db019f" type="hidden" /><input name="pi" value="/tech/2016/12/22/neutral-snopes-fact-checker-david-emery-un-angry-trump-supporters" type="hidden" /><input name="wi" value="-6666968971259355303" type="hidden" /><input name="pt" value="text" type="hidden" /><input name="vi" value="1485255306809" type="hidden" /><input name="li" value="rbox-t2m" type="hidden" /><input name="utm" value="3,47,571,935" type="hidden" /><input name="df" value="1" type="hidden" /><input name="ppb" value="CPgB" type="hidden" /><input name="cpb" value="Eg0yNDItOC1SRUxFQVNFGIoEIAAqGWhrLnRhYm9vbGFzeW5kaWNhdGlvbi5jb20yCHdhdGVyNjEw" type="hidden" /><input name="tim" value="18:55:08.126" type="hidden" /><input name="id" value="5767" type="hidden" /><input name="llvl" value="1" type="hidden" /><input name="cv" value="242-8-RELEASE" type="hidden" /><input name="fil" value="[{&quot;tii&quot;:&quot;~~V1~~6328524277198470492~~CV7IK7S-dOs2O5F8EEjfGm3dVppf3Hngoq9scqIJMIcSO_fFkG-bpaW2-qyqBDD6lUWq59D5WPM2aIVaKl0FbL3LscTpIN1_Zc7uGDD4cE8&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;text&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~5203257888082971773~~pfBoXwMI7GABLLiNvFYGYH6XuwNy-kgGlR0S5FEF6qASO_fFkG-bpaW2-qyqBDD686fpt-4Pw457dfy2ji88C73LscTpIN1_Zc7uGDD4cE8&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;text&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~-4126273700562553064~~aCcQ1G2g-zl_iY5AxVNvf6jwmrHQXP4APj0i219j49QSO_fFkG-bpaW2-qyqBDD65lHQ7Q-hhGxMNY4bl0YnX73LscTpIN1_Zc7uGDD4cE8&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;text&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~3178247457211747916~~n-mVVmqwrwr6mEdrOkDkBCOPnbHVPKdv7qWKOIYunQESO_fFkG-bpaW2-qyqBDD6VO83VUXXF4VL5_L-vAKtN73LscTpIN1_Zc7uGDD4cE8&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;photo&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~23639497408646380~~MxC3bQkHCNU-J_c3NZdp8EO_aCgkERloxiei07hKXOESO_fFkG-bpaW2-qyqBDD6kjhacqx4kHIo-emkVtSk3b3LscTpIN1_Zc7uGDD4cE8&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;text&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~-596772105036256470~~kEu7oIbMzG2IK_AL6-uxeUA7Mh8G010-XV2t9favQIQSO_fFkG-bpaW2-qyqBDD6-lUkY74FbM66cgXMRFoQm73LscTpIN1_Zc7uGDD4cE8&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;text&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~-1601338324779469665~~98QIy1Ubb-5XfPQeL1nLFNlGuOGvlQvsy8QEciXCgtQSO_fFkG-bpaW2-qyqBDD63cfb9dInsRoqrh6KpFPkcb3LscTpIN1_Zc7uGDD4cE8&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;photo&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~1845659316976814413~~0rXvDb_j7JIeXoiAAmJ6F-LDOqd682uNcpNXA7tizMESO_fFkG-bpaW2-qyqBDD6pr2ZlWX4Fwfb7tQjnKDGDL3LscTpIN1_Zc7uGDD4cE8&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;text&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~-8140381909497597080~~wnQGk0Mi0GijksyA9BGosW3dVppf3Hngoq9scqIJMIcSO_fFkG-bpaW2-qyqBDD6FYfIfroWDdlQoDexl2eKDb3LscTpIN1_Zc7uGDD4cE8&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;text&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~-2656004003234227089~~lxucT9VOjbIf_hUn-0v5zCOPnbHVPKdv7qWKOIYunQESO_fFkG-bpaW2-qyqBDD6eapnUGns6aRoZRIHeRejNb3LscTpIN1_Zc7uGDD4cE8&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;photo&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~-986450015027639901~~yGywI-TINwiC9HeXOPB0diOPnbHVPKdv7qWKOIYunQESO_fFkG-bpaW2-qyqBDD6QuPnFey0hkbUAzfZqvoZjr3LscTpIN1_Zc7uGDD4cE8&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;photo&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~-8085219896716513374~~UwdUquuG4xk4mqn1F4NOnCOPnbHVPKdv7qWKOIYunQESO_fFkG-bpaW2-qyqBDD6jGb6QeSv67bQ8b_xvIVJob3LscTpIN1_Zc7uGDD4cE8&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;photo&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~-4981071907474008028~~n-mVVmqwrwr6mEdrOkDkBCOPnbHVPKdv7qWKOIYunQESO_fFkG-bpaW2-qyqBDD6j6fjngC0qKk29pu6XeDQS73LscTpIN1_Zc7uGDD4cE8&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;photo&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~-5790306443668800295~~mi5tL-jsf-XxeGER1I9nxyOPnbHVPKdv7qWKOIYunQESO_fFkG-bpaW2-qyqBDD6txiITbdPDKdIhUPcULpg_73LscTpIN1_Zc7uGDD4cE8&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;photo&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~-2751215934139413108~~mi5tL-jsf-XxeGER1I9nxyOPnbHVPKdv7qWKOIYunQESO_fFkG-bpaW2-qyqBDD61xN82DPxucz5hBkPIoACC73LscTpIN1_Zc7uGDD4cE8&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;photo&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~-5305667577364839668~~LEit2mLytCpfOGilWpAOKH6XuwNy-kgGlR0S5FEF6qASO_fFkG-bpaW2-qyqBDD6NSnensjrJLnPxtJfAZoUyL3LscTpIN1_Zc7uGDD4cE8&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;text&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~7261229944523561421~~mi5tL-jsf-XxeGER1I9nxyOPnbHVPKdv7qWKOIYunQESO_fFkG-bpaW2-qyqBDD6zEUZArHr0M_ZGFgq74l4ir3LscTpIN1_Zc7uGDD4cE8&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;photo&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~-6235199803971849526~~kEu7oIbMzG2IK_AL6-uxeUA7Mh8G010-XV2t9favQIQSO_fFkG-bpaW2-qyqBDD61xTOP7Qe5yvZVxHbqd0ZFb3LscTpIN1_Zc7uGDD4cE8&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;text&quot;,&quot;tids&quot;:&quot;a&quot;}]" type="hidden" /></form><span><iframe class="trc-hidden" id="tb-trc-transportFrame-5767" name="tb-trc-transportFrame-5767" style="display:none" width="0" height="0"></iframe></span>
+ <form class="trc-hidden" target="tb-trc-transportFrame-7611" style="display: none;" method="post" action="http://trc.taboola.com/breitbartcom/log/3/available"><input name="ri" value="a66cf4de06ff55c358ff2c6cd412e5c8" type="hidden" /><input name="sd" value="v2_dc4044ca1eb166ce37b381df2182a109_4513e486-1bcb-484d-b251-4ef424db019f_1485253551_1485255304_CNawjgYQpKw9GLnc9YCdKyACKAE" type="hidden" /><input name="ui" value="4513e486-1bcb-484d-b251-4ef424db019f" type="hidden" /><input name="pi" value="/tech/2016/12/22/neutral-snopes-fact-checker-david-emery-un-angry-trump-supporters" type="hidden" /><input name="wi" value="-6666968971259355303" type="hidden" /><input name="pt" value="text" type="hidden" /><input name="vi" value="1485255306809" type="hidden" /><input name="li" value="rbox-t2v" type="hidden" /><input name="utm" value="3,47,571,935" type="hidden" /><input name="df" value="1" type="hidden" /><input name="ppb" value="CHQ" type="hidden" /><input name="cpb" value="Eg0yNDItOC1SRUxFQVNFGIoEIAAqGWhrLnRhYm9vbGFzeW5kaWNhdGlvbi5jb20yCHdhdGVyNjEw" type="hidden" /><input name="tim" value="18:55:08.177" type="hidden" /><input name="id" value="7611" type="hidden" /><input name="llvl" value="1" type="hidden" /><input name="cv" value="242-8-RELEASE" type="hidden" /><input name="fil" value="[{&quot;tii&quot;:&quot;~~V1~~-3510019048026187362~~uzaL-DdcN_Wk8rfvs4H7sW3dVppf3Hngoq9scqIJMIcSO_fFkG-bpaW2-qyqBDD6ksLyXXiVQ1qqB9ErtdiY22VW5HjaJcCw_CB_9SMo23o&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;text&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~5203257888082971773~~pfBoXwMI7GABLLiNvFYGYH6XuwNy-kgGlR0S5FEF6qASO_fFkG-bpaW2-qyqBDD6SAPUJY21GDdrbepJFt0qJ2VW5HjaJcCw_CB_9SMo23o&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;text&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~-4126273700562553064~~aCcQ1G2g-zl_iY5AxVNvf6jwmrHQXP4APj0i219j49QSO_fFkG-bpaW2-qyqBDD669-0l4DuKZgmQpUQRXFhT2VW5HjaJcCw_CB_9SMo23o&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;text&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~-4981071907474008028~~n-mVVmqwrwr6mEdrOkDkBCOPnbHVPKdv7qWKOIYunQESO_fFkG-bpaW2-qyqBDD6TcAzsT3F8CHfR1kvoUNzzmVW5HjaJcCw_CB_9SMo23o&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;photo&quot;,&quot;tids&quot;:&quot;a&quot;}]" type="hidden" /></form><span><iframe class="trc-hidden" id="tb-trc-transportFrame-7611" name="tb-trc-transportFrame-7611" style="display:none" width="0" height="0"></iframe></span>
+ <script type="text/javascript" id="newsmaxjs" async="" src="//s.newsmaxfeednetwork.com/static/js/connectV5.js"></script>
+ <script type="text/javascript" id="disqusembedjs" async="" src="//breitbartproduction.disqus.com/embed.js"></script><iframe style="display: none;"></iframe>
+ <script type="text/javascript" id="addthisjs" async="" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-536db77a775cf072"></script>
+ <div style="visibility: hidden; height: 1px; width: 1px; position: absolute; top: -9999px; z-index: 100000;" id="_atssh"><iframe id="_atssh270" title="AddThis utility frame" style="height: 1px; width: 1px; position: absolute; top: 0px; z-index: 100000; border: 0px none; left: 0px;" src="http://s7.addthis.com/static/sh.92bb263c60d77a822f41d4b0.html#rand=0.06437998957765378&amp;iit=1485255313826&amp;tmr=load%3D1485255310262%26core%3D1485255310290%26main%3D1485255313820%26ifr%3D1485255313831&amp;cb=0&amp;cdn=0&amp;md=0&amp;kw=Donald%20Trump%2Cfacebook%2CFact%20Check%2Cfake%20news%2CSnopes%2CTech%2Csnopes&amp;ab=-&amp;dh=www.breitbart.com&amp;dr=&amp;du=http%3A%2F%2Fwww.breitbart.com%2Ftech%2F2016%2F12%2F22%2Fneutral-snopes-fact-checker-david-emery-un-angry-trump-supporters%2F&amp;href=http%3A%2F%2Fwww.breitbart.com%2Ftech%2F2016%2F12%2F22%2Fneutral-snopes-fact-checker-david-emery-un-angry-trump-supporters%2F&amp;dt=%27Neutral%27%20Snopes%20Fact-Checker%20David%20Emery%3A%20%27Are%20There%20Any%20Un-Angry%20Trump%20Supporters%3F%27%20-%20Breitbart&amp;dbg=0&amp;cap=tc%3D0%26ab%3D0&amp;inst=1&amp;jsl=13505&amp;prod=undefined&amp;lng=en&amp;ogt=height%2Cwidth%2Cimage%2Cupdated_time%2Csite_name%2Curl%2Cdescription%2Ctype%3Darticle&amp;pc=men&amp;pub=ra-536db77a775cf072&amp;ssl=0&amp;sid=5887328e015c3caf&amp;srpl=1&amp;srf=0.01&amp;srx=1&amp;ver=300&amp;xck=0&amp;xtr=0&amp;og=locale%3Den_US%26type%3Darticle%26title%3D%27Neutral%27%2520Snopes%2520Fact-Checker%2520David%2520Emery%253A%2520%27Are%2520There%2520Any%2520Un-Angry%2520Trump%2520Supporters%253F%27%2520-%2520Breitbart%26description%3DSnopes%2520fact%2520checker%2520and%2520staff%2520writer%2520David%2520Emery%2520posted%2520to%2520Twitter%2520asking%2520if%2520there%2520were%2520%25E2%2580%259Cany%2520un-angry%2520Trump%2520supporters%253F%25E2%2580%259D%26url%3Dhttp%253A%252F%252Fwww.breitbart.com%252Ftech%252F2016%252F12%252F22%252Fneutral-snopes-fact-checker-david-emery-un-angry-trump-supporters%252F%26site_name%3DBreitbart%26updated_time%3D2016-12-22T18%253A59%253A12-08%253A00%26image%3Dhttp%253A%252F%252Fmedia.breitbart.com%252Fmedia%252F2016%252F11%252FGettyImages-621866810.jpg%26image%253Awidth%3D640%26image%253Aheight%3D480&amp;csi=undefined&amp;rev=v7.9.5-wp&amp;ct=0&amp;xld=1&amp;xd=1"></iframe></div>
+ <style id="service-icons-0"></style>
+ <script type="text/javascript" id="isctyntjs" async="" src="http://tcr.tynt.com/ti.js"></script><img src="http://rudy.adsnative.com/cm.gif" style="height: 1px; width: 1px; border: medium none; display: none;" />
+ <script type="text/javascript" id="quantjs" async="" src="http://edge.quantserve.com/quant.js"></script><iframe id="google_osd_static_frame_4925718959846" name="google_osd_static_frame" style="display: none; width: 0px; height: 0px;"></iframe>
+ <div class="at-share-dock-outer addthis-smartlayers at4-visually-hidden addthis-smartlayers-mobile" aria-labelledby="at-share-dock-label" role="region">
+ <div id="at-share-dock-label" class="at4-hide">AddThis Sharing</div>
+ <div id="at-share-dock" class="at-share-dock atss atss-bottom at-shfs-large addthis-animated slideInUp at4-show at4-hide"><a style="width: 33.3333%;" role="button" tabindex="1" title="Twitter" class="at-share-btn at-svc-twitter"><span class="at-icon-wrapper" style="background-color: rgb(29, 161, 242);"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32" class="at-icon at-icon-twitter" style="fill: rgb(255, 255, 255); width: 32px; height: 32px;" title="Twitter" alt="Twitter"><g><path d="M27.996 10.116c-.81.36-1.68.602-2.592.71a4.526 4.526 0 0 0 1.984-2.496 9.037 9.037 0 0 1-2.866 1.095 4.513 4.513 0 0 0-7.69 4.116 12.81 12.81 0 0 1-9.3-4.715 4.49 4.49 0 0 0-.612 2.27 4.51 4.51 0 0 0 2.008 3.755 4.495 4.495 0 0 1-2.044-.564v.057a4.515 4.515 0 0 0 3.62 4.425 4.52 4.52 0 0 1-2.04.077 4.517 4.517 0 0 0 4.217 3.134 9.055 9.055 0 0 1-5.604 1.93A9.18 9.18 0 0 1 6 23.85a12.773 12.773 0 0 0 6.918 2.027c8.3 0 12.84-6.876 12.84-12.84 0-.195-.005-.39-.014-.583a9.172 9.172 0 0 0 2.252-2.336" fill-rule="evenodd"/></g></svg></span></a><a style="width: 33.3333%;" role="button" tabindex="1" title="Email" class="at-share-btn at-svc-email"><span class="at-icon-wrapper" style="background-color: rgb(132, 132, 132);"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32" class="at-icon at-icon-email" style="fill: rgb(255, 255, 255); width: 32px; height: 32px;" title="Email" alt="Email"><g><g fill-rule="evenodd"/><path d="M27 22.757c0 1.24-.988 2.243-2.19 2.243H7.19C5.98 25 5 23.994 5 22.757V13.67c0-.556.39-.773.855-.496l8.78 5.238c.782.467 1.95.467 2.73 0l8.78-5.238c.472-.28.855-.063.855.495v9.087z"/><path d="M27 9.243C27 8.006 26.02 7 24.81 7H7.19C5.988 7 5 8.004 5 9.243v.465c0 .554.385 1.232.857 1.514l9.61 5.733c.267.16.8.16 1.067 0l9.61-5.733c.473-.283.856-.96.856-1.514v-.465z"/></g></svg></span></a><a style="width: 33.3333%;" role="button" tabindex="1" title="Facebook" class="at-share-btn at-svc-facebook"><span class="at-icon-wrapper" style="background-color: rgb(59, 89, 152);"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32" class="at-icon at-icon-facebook" style="fill: rgb(255, 255, 255); width: 32px; height: 32px;" title="Facebook" alt="Facebook"><g><path d="M22 5.16c-.406-.054-1.806-.16-3.43-.16-3.4 0-5.733 1.825-5.733 5.17v2.882H9v3.913h3.837V27h4.604V16.965h3.823l.587-3.913h-4.41v-2.5c0-1.123.347-1.903 2.198-1.903H22V5.16z" fill-rule="evenodd"/></g></svg></span></a></div>
+ </div>­
+ <style>
+ .pn-highlighted-ad {
+ box-shadow: 0 0 0 10px red !important
+ }
+
+ .pubnation {
+ font-size: 12px !important;
+ color: #a5a5a5 !important;
+ text-decoration: none !important;
+ cursor: pointer !important;
+ margin-top: 2px !important;
+ background: none !important;
+ text-align: right !important;
+ display: inline-block !important
+ }
+ </style><iframe style="display: none; position: fixed; top: 0px; left: 0px; z-index: 2147483647;" frameborder="false"></iframe></body>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/bug-1255978/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/bug-1255978/expected-images.json
new file mode 100644
index 000000000..7da4a8f99
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/bug-1255978/expected-images.json
@@ -0,0 +1,9 @@
+[
+ "https:\/\/static.independent.co.uk\/s3fs-public\/thumbnails\/image\/2015\/12\/06\/10\/bed-hotel-room.jpg",
+ "https:\/\/static.independent.co.uk\/s3fs-public\/styles\/story_medium\/public\/thumbnails\/image\/2014\/03\/18\/10\/bandb2.jpg",
+ "https:\/\/static.independent.co.uk\/s3fs-public\/styles\/story_medium\/public\/thumbnails\/image\/2015\/05\/26\/11\/hotel-door-getty.jpg",
+ "https:\/\/static.independent.co.uk\/s3fs-public\/styles\/story_medium\/public\/thumbnails\/image\/2013\/07\/31\/15\/luggage-3.jpg",
+ "https:\/\/static.independent.co.uk\/s3fs-public\/styles\/story_medium\/public\/thumbnails\/image\/2015\/04\/13\/11\/Lifestyle-hotels.jpg",
+ "https:\/\/static.independent.co.uk\/s3fs-public\/styles\/story_medium\/public\/thumbnails\/image\/2014\/03\/13\/16\/agenda7.jpg",
+ "http:\/\/fakehost\/sites\/all\/themes\/ines_themes\/independent_theme\/img\/reuse.png"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/bug-1255978/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/bug-1255978/expected-metadata.json
new file mode 100644
index 000000000..b2b0d8659
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/bug-1255978/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "Hazel Sheffield",
+ "Direction": null,
+ "Excerpt": "Most people go to hotels for the pleasure of sleeping in a giant bed with clean white sheets and waking up to fresh towels in the morning. But those towels and sheets might not be as clean as they look, according to the hotel bosses that responded to an online thread about the things hotel owners don’t want you to know.",
+ "Image": "https:\/\/static.independent.co.uk\/s3fs-public\/thumbnails\/image\/2015\/12\/06\/10\/bed-hotel-room.jpg",
+ "Title": "Seven secrets that hotel owners don't want you to know",
+ "SiteName": "The Independent"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/bug-1255978/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/bug-1255978/expected.html
new file mode 100644
index 000000000..c281eef90
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/bug-1255978/expected.html
@@ -0,0 +1,136 @@
+<div id="gigya-share-btns-2_gig_containerParent" itemprop="articleBody">
+ <p>Most people go to hotels for the pleasure of sleeping in a giant bed with clean white sheets and waking up to fresh towels in the morning.</p>
+
+ <p>But those towels and sheets might not be as clean as they look, according to the hotel bosses that responded to an online thread about the things hotel owners don’t want you to know.</p>
+
+ <p>Zeev Sharon and Michael Forrest Jones both run hotel start-ups in the US. Forrest Jones runs the start-up Beechmont Hotels Corporation, a hotel operating company that consults with hotel owners on how they can improve their business. Sharon is the CEO of Hotelied, a start-up that allows people to sign up for discounts at luxury hotels.</p>
+
+ <p>But even luxury hotels aren’t always cleaned as often as they should be.</p>
+
+ <p>Here are some of the secrets that the receptionist will never tell you when you check in, according to answers posted on <a href="https://www.quora.com/What-are-the-things-we-dont-know-about-hotel-rooms" target="_blank">Quora</a>.</p>
+
+
+
+ <div>
+ <div>
+
+ <p><img alt="bandb2.jpg" height="423" src="https://static.independent.co.uk/s3fs-public/styles/story_medium/public/thumbnails/image/2014/03/18/10/bandb2.jpg" title="bandb2.jpg" width="564"></img></p>
+
+ </div>
+ <div>
+ <p>Even posh hotels might not wash a blanket in between stays
+ </p>
+ </div>
+ </div>
+
+ <p>1. Take any blankets or duvets off the bed</p>
+
+ <p>Forrest Jones said that anything that comes into contact with any of the previous guest’s skin should be taken out and washed every time the room is made, but that even the fanciest hotels don’t always do so. "Hotels are getting away from comforters. Blankets are here to stay, however. But some hotels are still hesitant about washing them every day if they think they can get out of it," he said.</p>
+
+ <div>
+
+ <p>Video shows bed bug infestation at New York hotel</p>
+ </div>
+
+
+
+ <div>
+ <div>
+
+ <p><img alt="hotel-door-getty.jpg" height="423" src="https://static.independent.co.uk/s3fs-public/styles/story_medium/public/thumbnails/image/2015/05/26/11/hotel-door-getty.jpg" title="hotel-door-getty.jpg" width="564"></img></p>
+
+ </div>
+ <div>
+ <p>Forrest Jones advised stuffing the peep hole with a strip of rolled up notepaper when not in use.
+ </p>
+ </div>
+ </div>
+
+ <p>2. Check the peep hole has not been tampered with</p>
+
+ <p>This is not common, but can happen, Forrest Jones said. He advised stuffing the peep hole with a strip of rolled up notepaper when not in use. When someone knocks on the door, the paper can be removed to check who is there. If no one is visible, he recommends calling the front desk immediately. “I look forward to the day when I can tell you to choose only hotels where every employee who has access to guestroom keys is subjected to a complete public records background check, prior to hire, and every year or two thereafter. But for now, I can't,” he said.</p>
+
+
+
+ <div>
+ <div>
+
+ <p><img alt="luggage-3.jpg" height="423" src="https://static.independent.co.uk/s3fs-public/styles/story_medium/public/thumbnails/image/2013/07/31/15/luggage-3.jpg" title="luggage-3.jpg" width="564"></img></p>
+
+ </div>
+
+ </div>
+
+ <p>3. Don’t use a wooden luggage rack</p>
+
+ <p>Bedbugs love wood. Even though a wooden luggage rack might look nicer and more expensive than a metal one, it’s a breeding ground for bugs. Forrest Jones says guests should put the items they plan to take from bags on other pieces of furniture and leave the bag on the floor.</p>
+
+
+
+ <div>
+ <div>
+
+ <p><img alt="Lifestyle-hotels.jpg" height="423" src="https://static.independent.co.uk/s3fs-public/styles/story_medium/public/thumbnails/image/2015/04/13/11/Lifestyle-hotels.jpg" title="Lifestyle-hotels.jpg" width="564"></img></p>
+
+ </div>
+ <div>
+ <p>The old rule of thumb is that for every 00 invested in a room, the hotel should charge in average daily rate
+ </p>
+ </div>
+ </div>
+
+ <p>4. Hotel rooms are priced according to how expensive they were to build</p>
+
+ <p>Zeev Sharon said that the old rule of thumb is that for every $1000 invested in a room, the hotel should charge $1 in average daily rate. So a room that cost $300,000 to build, should sell on average for $300/night.</p>
+
+
+
+ <h3>5. Beware the wall-mounted hairdryer</h3>
+
+ <p>It contains the most germs of anything in the room. Other studies have said the TV remote and bedside lamp switches are the most unhygienic. “Perhaps because it's something that's easy for the housekeepers to forget to check or to squirt down with disinfectant,” Forrest Jones said.</p>
+
+
+
+ <div>
+ <div>
+
+ <div data-scald-gallery="3739501">
+
+ <h2><span></span>Business news in pictures</h2>
+
+ </div>
+
+
+
+ </div>
+ </div>
+
+ <h3>6. Mini bars almost always lose money</h3>
+
+ <p>Despite the snacks in the minibar seeming like the most overpriced food you have ever seen, hotel owners are still struggling to make a profit from those snacks. "Minibars almost always lose money, even when they charge $10 for a Diet Coke,” Sharon said.</p>
+
+
+
+ <div>
+ <div>
+
+ <p><img alt="agenda7.jpg" height="423" src="https://static.independent.co.uk/s3fs-public/styles/story_medium/public/thumbnails/image/2014/03/13/16/agenda7.jpg" title="agenda7.jpg" width="564"></img></p>
+
+ </div>
+ <div>
+ <p>Towels should always be cleaned between stays
+ </p>
+ </div>
+ </div>
+
+ <p>7. Always made sure the hand towels are clean when you arrive</p>
+
+ <p>Forrest Jones made a discovery when he was helping out with the housekeepers. “You know where you almost always find a hand towel in any recently-vacated hotel room that was occupied by a guy? On the floor, next to the bed, about halfway down, maybe a little toward the foot of the bed. Same spot in the floor, next to almost every bed occupied by a man, in every room. I'll leave the rest to your imagination,” he said.</p>
+ <meta content="2016-05-08T10:11:51+01:00" itemprop="datePublished"></meta><ul><li>
+ More about:
+ </li>
+ <li><a href="http://fakehost/topic/Hotels" itemprop="keywords">Hotels</a></li>
+ <li><a href="http://fakehost/topic/Hygiene" itemprop="keywords">Hygiene</a></li>
+ </ul>
+ <p><a href="http://fakehost/syndication/reuse-permision-form?url=http://www.independent.co.uk/news/business/news/seven-secrets-that-hotel-owners-dont-want-you-to-know-10506160.html" target="_blank"><img src="http://fakehost/sites/all/themes/ines_themes/independent_theme/img/reuse.png" width="25"></img>Reuse content</a>
+ </p></div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/bug-1255978/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/bug-1255978/source.html
new file mode 100644
index 000000000..08840dc24
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/bug-1255978/source.html
@@ -0,0 +1,40907 @@
+<!DOCTYPE html>
+<!--[if IE 8]>
+<html class="lt-ie9">
+<![endif]-->
+<!--[if gt IE 8]><!-->
+<html xmlns="http://www.w3.org/1999/xhtml" class="flash js" style="">
+<!--<![endif]-->
+
+<head>
+ <style type="text/css" class="bc-style-2d3d4a83-ba40-464e-9bfb-2804b076bf67-default">
+ .bc-iframe,
+ .bc-iframe body {
+ height: 100%;
+ margin: 0;
+ padding: 0;
+ width: 100%
+ }
+
+ .bc-iframe body,
+ .bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default {
+ background-color: #151B17
+ }
+
+ .bc-iframe .bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default {
+ background-color: transparent
+ }
+
+ .vjs-hidden {
+ display: none
+ } // Visually hidden offscreen,but accessible to screen readers. .bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-offscreen{height:1px;left:-9999px;position:absolute;top:0;width:1px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default *,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default :after,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default :before{box-sizing:inherit;font-size:inherit;color:inherit;line-height:inherit;margin:0}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default select{width:inherit}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default:-moz-full-screen{position:absolute}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default:-webkit-full-screen{width:100%!important;height:100%!important}@font-face{font-family:VideoJS;src:url(//vjs.zencdn.net/f/3/vjs.eot);src:url(//vjs.zencdn.net/f/3/vjs.eot?#iefix) format('embedded-opentype'),url(//vjs.zencdn.net/f/3/vjs.woff) format('woff'),url(//vjs.zencdn.net/f/3/vjs.ttf) format('truetype'),url(//vjs.zencdn.net/f/3/vjs.svg#icomoon) format('svg');font-weight:400;font-style:normal}@font-face{font-family:VideoJS;src:url(data:application/octet-stream;base64,d09GRk9UVE8AAA2kAAoAAAAADVwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAAA9AAACdMAAAnTVAEFP09TLzIAAArIAAAAYAAAAGAOkgMqY21hcAAACygAAABcAAAAXPqtrG5nYXNwAAALhAAAAAgAAAAIAAAAEGhlYWQAAAuMAAAANgAAADYDr5QBaGhlYQAAC8QAAAAkAAAAJAkgBTVobXR4AAAL6AAAAFgAAABYS54C2G1heHAAAAxAAAAABgAAAAYAFlAAbmFtZQAADEgAAAE5AAABOUQYtNZwb3N0AAANhAAAACAAAAAgAAMAAAEABAQAAQEBCGljb21vb24AAQIAAQA7+BwC+BsD+BgEHgoACXf/i4seCgAJd/+LiwwHi0UcBV76VAUdAAAA3Q8dAAAA4hEdAAAACR0AAAnKEgAXAQEIDxETFhsgJSovNDk+Q0hNUldcYWZrcGljb21vb25pY29tb29udTB1MXUyMHVFMDAwdUUwMDF1RTAwMnVFMDAzdUUwMDR1RTAwNXVFMDA2dUUwMDd1RTAwOHVFMDA5dUUwMEF1RTAwQnVFMDBDdUUwMER1RTAwRXVFMDFFdUUwMUZ1RTYwMAAAAgGJABQAFgIAAQAEAAcACgANAEUAVABzAJ0A/QGbAn0CkAOSA6IE2QURBV8GIQagB5QICAi4/pQO/pQO/pQO/JQO+pT6VBWL/DT7NPc0+1T7VCvr91T3VPs09zQF+zT9NBX7VPtU9zT7NPw0i4v4NPc0+zT3VPdUBQ73VPnUFfkU/BT9FPwUBQ73FPnUFffUi4v9lPvUiwX4VPmUFffUi4v9lPvUiwUO+CX6BRWlpaCCi2cIi/3QBYtndoJxpQj7hfeF+zSLi/gU9zSL94X3hQUO+Ln3bxV/i36QgpR4noupnp7c3Iv3GDrceJ6LqZ6enp6pi5549wr7C4v7VPsK+wuCgn6Gf4sI+yj5KhWlpaCCi2cIi/3QBYtndoJxpQj7hfeF+zSLi/gU9zSL94X3hQUO+WT3FBV+i3+QgpV4nYuqnp33F/cXi/dq+xf3F3idi6qenZ2eqoudeN06uPsBi/sHi/sHXvsBOTqCgX+Gf4sI+z/mFX+LfpCClHiei6mentzci/cYOtx4noupnp6enqmLnnj3CvsLi/tU+wr7C4KCfoZ/iwj7KPkqFaWloIKLZwiL/dAFi2d2gnGlCPuF94X7NIuL+BT3NIv3hfeFBQ7L+g6xFX+LfpCClHiei6menuPju/cIi/cQi/cQW/cIM+N4noupnp6enqmLnnj1IcX7IIv7Kov7KlH7ICEhCIKCfoZ/iwj7PuUVfot/kIKVeJ2Lqp6d9xf3F4v3avsX9xd4nYuqnp2dnqqLnXjdOrj7AYv7B4v7B177ATk6goF/hn+LCPs/5hV/i36QgpR4noupnp7c3Iv3GDrceJ6LqZ6enp6pi5549wr7C4v7VPsK+wuCgn6Gf4sI+yj5KhWlpaCCi2cIi/3QBYtndoJxpQj7hfeF+zSLi/gU9zSL94X3hQUO+JT6VBX71PyU99T8lPfU+JQFDvfyi/pUFRwFXouL/poc+qKLi/qaBRwE3fyTFYr3SITaYMKEl3ySf5RhqftZlvt5i/t4i/tjgGJtf4J8hIJ/YlSFPIj7SI77SJE9tFOUfpqFl4MItGv3Y4H3eIn3eY33WZW1q5eTmpGSmLbDktmM90gI/Nu6FYD3IUDe+xqL+w+LK/sDi/tFi/tG4/sD9yWL9wiL3OCX9yEI+x6LBYZXdWNci0KLftOL2Iv1qcG+i7iLqGqPUgj3HIsF+HKLFX/3IUHe+xuL+w6LK/sDi/tFi/tG4vsD9yWL9wiL3OCY9yEI+x6LBYVXdWNdi0KLftOL2Iv1qcG+i7iLp2qQUgj3HIsFDvcU+dQV+ZSLi/2U/ZSLBQ74FPnUFYtExFLSi9KLxMSL0ovSUsREi0SLUlKLRAj3pPsEFYtExFLSi9GLxcSL0ovRUcVFi0SLUlGLRQj3RPukFYtoqG6ui66LqKiLrouubqhoi2iLbm6LaAj7BPukFYtop26vi66LqKiLrouvbqdoi2eLb2+LZwj7pPsEFYuLi4uLi4toqG6ui66LqKiLrouLi4uLi4uLi4uLi4uubqhoi2iLbm6LaIuLi4uLiwj7pPcEFYuLi4uLi4toqG6ui6+Lp6iLrouLi4uLi4uLi4uLi4uvb6dni2iLbm+LZ4uLi4uLiwhr+LQVi4uLi4uLi1a2YMCLwIu2tovAi4uLi4uLi4uLi4uLi8BgtlaLVotgYItWi4uLi4uLCDP7pBWLY6trs4uzi6uri7OLs2urY4tji2tri2MIDvhU+BQVi/w0+zT3NPtU+1Qr6/dU91T7NPc0Bfp0+HQV+1T7VPc0+zT8NIuL+DT3NPs091T3VAUO+JT6FBX3r4v3eftOi/t6i/t6+3n7Tvuvi3CLcI1xjvsC+wL7F3f7E4gIi6YF0K3GyIvRi5WKlIqV+wjXQfcIi/cXi/d693n3TveviwgO+JT6VBX7r4v7eft5i/uvi/uv93n7efevi/evi/d593mL96+L96/7efd5+6+LCIv7lBX3IYv3B/sHi/shi/sh+wf7B/shi/shi/sH9weL9yGL9yH3B/cH9yGLCPfF/MUVOjn7AV77B4v7B4v7Abg63TncXvcBi/cHi/cHuPcB3dwIzkgFi4uLi4uL+xf7F4v7avcX+xfLTN9o5Yvli9+uy8r3F/cXi/dq+xf3FwjOzgXdOrj7AYv7B4v7B177ATk6CA759PeUFV6LYnhubQj8Q/dsBYyTjJOLlIuUipOKkwj4Q/dsBahttHi4i+OL09OL44vjQ9MzizOLQ0OLM4uCjIOMgwj8Q/tsBW6pYp5eizOLQ0OLM4sz00Pji7iLtJ6oqQj4Q/tsBYqDioOLgosz00Pji+OL09OL44vjQ9MziwgO+pT4VBWKznzOcMdxyGTDW7hcuVKvTqNOo0qWSopKikt9UHFQcVVlX11fXWhUdFB0UIBMjEwIjEyZTaRSpFKwV7dguGDAasR1xHTIgciMyIzHmcKjwqO9rrS3tbarvqHCmKyUro+vCIyLjYuMi66LqKeLr4uMi42LjQiLiwUl+z4VdFZpW2FjYWNabFZ2VnZSglKMUoxTmFihWKJcrGWzZbNtu3e+d7+CwYzCjMKXwKG9CKG8q7iysLGvuai8nr2ewJS/isCKvn+7drp2tmyuZq9mpl+eW51ck1iKWQiLiwWLiYuJi4qLaqRvq4iFaIFpfGsIDviU+lQV+6uL+3b7c4T7qZH3hvdM91b3dov3eov3Tvtdi/uLi1a2YMCLwIu2tovAi/ev+3n3efuviwiL/pQV96uL93b3c5L3qYX7hvtM+1b7dov7eov7Tvddi/eLi8BgtlaLVotgYItWi/uv93n7efeviwgO+pT39BWL91T7J6QFhZ2EnIOcCOH3Dfsc9xz7DTUFepN6k3iRCHP3JvtUi3P7JgV4hXqDeoMI+w3h+xz7HOH7DQWDeoR6hXkI+ydyi/tU9ydyBZF5knqUegg0+w33HPsc9w7iBZuDnIOdhQik+yf3VIuk9ycFnZGck5uTCPcONPcc9xw09w0FlJySnJGdCPcnpAX8lGsVRItSxIvSi9LExNKL0ovEUotEi0RSUkSLCA76lBT6lBWLDAoAAAMEAAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAA5gADwP/A/8ADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAgAAAAMAAAAUAAMAAQAAABQABABIAAAADgAIAAIABgABACDgDuAf5gD//f//AAAAAAAg4ADgHuYA//3//wAB/+MgBB/1GhUAAwABAAAAAAAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAi7ha+V8PPPUACwQAAAAAAM+Zp8UAAAAAz5mnxQAA/7oFXgPAAAAACAACAAAAAAAAAAEAAAPA/8AAAAVeAAAAAAVeAAEAAAAAAAAAAAAAAAAAAAAWAAAAAAAAAAAAAAAAAgAAAAQAAAAEAADABAAAgAQAAAAEAAAABAAAAARAAAAEAADABV4AAAQAAIAEAAA4BAAAAAQAAAAEAAAABAAAAAQAACAEAAAABAAAAAAAUAAAFgAAAAAADgCuAAEAAAAAAAEADgAAAAEAAAAAAAIADgBHAAEAAAAAAAMADgAkAAEAAAAAAAQADgBVAAEAAAAAAAUAFgAOAAEAAAAAAAYABwAyAAEAAAAAAAoAKABjAAMAAQQJAAEADgAAAAMAAQQJAAIADgBHAAMAAQQJAAMADgAkAAMAAQQJAAQADgBVAAMAAQQJAAUAFgAOAAMAAQQJAAYADgA5AAMAAQQJAAoAKABjAGkAYwBvAG0AbwBvAG4AVgBlAHIAcwBpAG8AbgAgADEALgAwAGkAYwBvAG0AbwBvAG5pY29tb29uAGkAYwBvAG0AbwBvAG4AUgBlAGcAdQBsAGEAcgBpAGMAbwBtAG8AbwBuAEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format('woff'),url(data:application/octet-stream;base64,AAEAAAALAIAAAwAwT1MvMg6SAyoAAAC8AAAAYGNtYXD6raxuAAABHAAAAFxnYXNwAAAAEAAAAXgAAAAIZ2x5Zu/tc60AAAGAAAAOQGhlYWQDr5QBAAAPwAAAADZoaGVhCSAFNQAAD/gAAAAkaG10eEueAtgAABAcAAAAWGxvY2EeBBsAAAAQdAAAAC5tYXhwAB8A5gAAEKQAAAAgbmFtZUQYtNYAABDEAAABOXBvc3QAAwAAAAASAAAAACAAAwQAAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADmAAPA/8D/wAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEAEgAAAAOAAgAAgAGAAEAIOAO4B/mAP/9//8AAAAAACDgAOAe5gD//f//AAH/4yAEH/UaFQADAAEAAAAAAAAAAAAAAAAAAAABAAH//wAPAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAIAAP/ABAADwAAGAA0AAAERJwcnNycDBxchERc3BACgwGDAoKDAoP5goMADwP5goMBgwKD9YMCgAaCgwAAAAAABAMAAQANAA0AAAgAAEwkBwAKA/YADQP6A/oAAAgCAAEADgANAAAMABwAAEyERIQEhESGAAUD+wAHAAUD+wANA/QADAP0AAAABAAAADwHAA3EAEAAAAT4BHgEVERQOASYvASMRMzcBkQoRDQcHDREK8aCg8QNxCgcGEA78xA4QBgcK8QGA8QAAAgAAAA8CRwNxACMANAAAJSIuAicuATQ2Nz4BNCYnLgE0Njc+ATIWFx4BFAYHDgMjAz4BHgEVERQOASYvASMRMzcCJQUJCAgEBwcHBx4fHx4HBwcHBxISEgcsLS0sBAgICQWUChENBwcNEQrxoKDx2wIDBgMHEhISBx5NUE0eBxISEgcHBwcHLHF0cSwDBgMCApYKBwYQDvzEDhAGBwrxAYDxAAADAAAADwNwA3EAKABMAF0AACUiLgInLgE0Njc+ATQmJy4BNDY3PgEyFhceAxUUDgIHDgMjJyIuAicuATQ2Nz4BNCYnLgE0Njc+ATIWFx4BFAYHDgMjAz4BHgEVERQOASYvASMRMzcC0AUJCQgDBwcHBzExMTEHBwcHBxETEQcfLyARESAvHwMICQkEqwUJCAgEBwcHBx4fHx4HBwcHBxISEgcsLS0sBAgICQWUChENBwcNEQrxoKDxgAIEBQQHERMRBzJ7gnsyBxETEQcHCAgHHkdNVCsrVE1HHgQFBAJbAgMGAwcSEhIHHk1QTR4HEhISBwcHBwcscXRxLAMGAwIClgoHBhAO/MQOEAYHCvEBgPEAAAAEAAAADwRAA3EALQBWAHoAiwAAJSIuAicuATQ2Nz4DNTQuAicuATQ2Nz4BMhYXHgMVFA4CBw4DIyciLgInLgE0Njc+ATQmJy4BNDY3PgEyFhceAxUUDgIHDgMjJyIuAicuATQ2Nz4BNCYnLgE0Njc+ATIWFx4BFAYHDgMjAz4BHgEVERQOASYvASMRMzcDegUJCAgEBwcHByEzIhISIjMhBwcHBwcSEhIHKD0pFhYpPSgECAgJBaoFCQkIAwcHBwcxMTExBwcHBwcRExEHHy8gEREgLx8DCAkJBKsFCQgIBAcHBwceHx8eBwcHBwcSEhIHLC0tLAQICAkFlAoRDQcHDREK8aCg8SYCAwYDBxISEgchTFNaLi5aU0whBxISEgcHBwcHKFtlbDg4bGVbKAMGAwJaAgQFBAcRExEHMnuCezIHERMRBwcICAceR01UKytUTUceBAUEAlsCAwYDBxISEgceTVBNHgcSEhIHBwcHByxxdHEsAwYDAgKWCgcGEA78xA4QBgcK8QGA8QABAMD/wANAA8AAAwAACQMCAP7AAUABQAPA/gD+AAIAAAQAAP+6BV4DwAAEAEEAbACXAAATIREhEQE0LgInLgMnLgMjIg4CBw4DBw4DBx4DFx4DFx4DFz4DNz4DNz4DNSUuAyMiDgIVFB4CMzI+AjcjDgMjIi4CNTQ+AjMyHgIXMyEuAyMiDgIVFB4CMzI+AjcjDgMjIi4CNTQ+AjMyHgIXMwAFXvqiBN0ECxQQAwgJCQUQVX2cVlWfgFgQBAoKCAQPEwsEAQEECxMPBAgKCgQQWICfVVacfVUQBQkJCAMQFAsE/bkEIDhOMi5QOyIgPFY3K0k2IwSKAgoSGhIbIhMGCxUeExEbFAwCiAHeBCE3TjMtUDsiIDxWNixJNiIFigILEhoRGyITBgsVHhMQHBQMAogDwPv6BAb+AURjSjUUBQcGBgQLEAoEBAoQCwQGBgcFFDVKY0RDZEk1FQUHBgYDDBAKBQEBBQoQDAMGBgcFFTVJZEMvNVM5HyhLa0JDa0soHzpUNRMiGQ4ZKTYdKDspFAwXIhU1UzkfKEtrQkNrSygfOlQ1EyIZDhkpNh0oOykUDBciFQAAAAEAgABAA4ADQAADAAATIREhgAMA/QADQP0AAAAIADgAAAPAA8AAFAApAD4AUwB8AKUAzgDjAAABFB4CMzI+AjU0LgIjIg4CFQUUHgIzMj4CNTQuAiMiDgIVExQeAjMyPgI1NC4CIyIOAhUDFB4CMzI+AjU0LgIjIg4CFQU4AzEUHgIzMj4CNTgDMTgDMTQuAiMiDgIVOAMxJTgDMRQeAjMyPgI1OAMxOAMxNC4CIyIOAhU4AzEDOAMxFB4CMzI+AjU4AzE4AzE0LgIjIg4CFTgDMQMUHgIzMj4CNTQuAiMiDgIVAYAUIy4bGy4jFBQjLhsbLiMUARAUIi8bGi8iFRUiLxobLyIUsAoRGA0NGBEKChEYDQ0YEQpwChEXDg0XEQsLERcNDhcRCv7wChEYDQ0YEQoKERgNDRgRCv7wCxEXDQ4XEQoKERcODRcRCyAQGiMTFCMaDw8aIxQTIxoQWAsUGg8PGhQLCxQaDw8aFAsDQBsuIxQUIy4bGy4jFBQjLhtwGy8iFBQiLxsaLyIVFSIvGv7wDRgRCgoRGA0NGBEKChEYDf7wDRcRCwsRFw0OFxEKChEXDnANGBEKChEYDQ0YEQoKERgNcA0XEQsLERcNDhcRCgoRFw4CIBQjGg8PGiMUEyMaEBAaIxP+8A8aFAsLFBoPDxoUCwsUGg8AAAAAAgAA/8AEAAPAAAYADQAAAREnByc3JwEHFyERFzcBwKDAYMCgA+DAoP5goMABgP5goMBgwKAB4MCgAaCgwAAAAAEAAP/ABAADgAApAAABMh4CFRQOAiMiLgInDgMHNT4DNTwBLgE1LgM1ND4CMwIAaruLUFCLu2oKFBQUCilaXWAwGi4jFQEBLEYxG1CLu2oDgEFxmFZWmHFBAQECASkzHQoCGw0jKjEaBAcHBwQcSFJcMVaYcUEAAAMAAP/ABAADwAAUACkAYwAAASIOAhUUHgIzMj4CNTQuAiMRMh4CFRQOAiMiLgI1ND4CMwEOAyMiLgInLgM1ND4CNxc4AzEOARQWFx4DMzI+Ajc+ATQmJzceAxUUDgIHAgBqu4tQUIu7amq7i1BQi7tqNV1GKChGXTU1XUYoKEZdNQExHkdNVCsrVE1HHh8vIBERIC8fQzExMTEYNz1AIiJAPTcYMTExMUMfLyARESAvHwPAUIu7amq7i1BQi7tqaruLUP8AKEZdNTVdRigoRl01NV1GKP3PHy8gEREgLx8eR01UKytUTUceQzJ7gnsyFyUZDQ0ZJRcye4J7MkMeR01UKytUTUceAAEAAP/ABAADwABUAAABIg4CByU0PgE0NTwBLgE1JR4DMzI+AjU0LgIjIg4CFRwBHgEVBS4DIyIOAhUUHgIzMj4CNwUUDgEUFRQeAjMyPgI1NC4CIwNgESAdGgv+UQEBAQEBrwsaHSARITosGRksOiEhOiwZAQH+UQsaHSARITosGRksOiERIB0aCwGvAQEZLDohITosGRksOiEBAAcMEwvYAwYGBwMDBwYGA9gLEwwHGSw6ISE6LBkZLDohAwcGBgPYCxMMBxksOiEhOiwZBwwTC9gDBgYHAyE6LBkZLDohITosGQAAAAACACD/8AQAA7AAYAC8AAABNC4CJy4DJy4DJy4DByIOAgcOAwcOAwcOAxcUHgIXHgMXHgMXHgM3Mj4CNz4DNz4DNz4DNzoDMTI+AjUwPAI1MQcOAwcOAwcOAyciLgInLgMnLgMnLgM3ND4CNz4DNz4DNz4DFzIeAhceAxceAxceAwczBhYGFiMeAxcOAwcEAAYLEAoKGBwhEhEnKiwXFjAwMRgYMS8uFhYrJyQRER0aFggJDQgEAQYKDwkKFxofEBEkJykWFS0tLRcXLSwrFRUnJSIPEBwYFAgFCAYFAgEBAQENGBEKZggWGRwQDyMkJhQUKSorFRUqKigTEyUiHw8OGhYTBwgLBwMBBQkNCAgUGBoODx8iIxMSJyYoExUmJyQTECMfHgwOFxYQCAULBgQCAQEBAQEBAQgQFA0DBQkIBwHAGTIxMBYXLCklERIeGxYJCQ0JBAEGCw8JChgbIBERJigrFhYuLi8YGC4uLRUWKCYkEBAcGRUICQwIBAEGCg4JCRYaHREQIyYnFQ0ZGhsNChEXDgIBAQGqFCYjIQ8PGxcTCAgLBwQBBgkNCAkVGBsPDyEjJRMTKCkpFBQpKCYTEiMhHw4NGRUSBwgKBwMBBQkMCAgTFxkODh4hIhIRJSUmEwEBAQINFhELAQ0aGRkMAAAAAAIAAP/ABAADwAAeAD0AAAEiDgIHPgMzMh4CFRQeAjMyPgI1NC4CIxEyPgI3DgMjIi4CNTQuAiMiDgIVFB4CMwIAabiKUgMCQ3GVVVaYcUEPGiMUFCMaD1CLu2ppuIpSAwJDcZVVVphxQQ8aIxQUIxoPUIu7agPAToi2aFufdkRGeqNdFCMaDw8aIxRqu4tQ/ABOiLZoW592REZ6o10UIxoPDxojFGq7i1AAAAACAAD/wAQAA8AAQABVAAABNScuAyc3JwcuAy8BIwcOAwcnBxcOAw8BFRceAxcHFzceAx8BMzc+AzcXNyc+Az8BBSIuAjU0PgIzMh4CFRQOAiMEAJMCBQUGA1aIeQYNDQ4HGMAYBw4NDQZ5iFYDBgUFApOTAgUGBgNXiHoGDA0OBhnAGQYODQwGeohXAwYGBQKT/gAbLiMUFCMuGxsuIxQUIy4bAWDAGQYODQ0GeYhWAwYFBQOSkgMFBQYDVoh5Bg0NDgYZwBkGDg0MB3mIVwMGBQUDk5MDBQUGA1eIeQcMDQ4GGSAUIy4bGy4jFBQjLhsbLiMUAAAAAAEAAAAAAADWgo+QXw889QALBAAAAAAAz5mnxQAAAADPmafFAAD/ugVeA8AAAAAIAAIAAAAAAAAAAQAAA8D/wAAABV4AAAAABV4AAQAAAAAAAAAAAAAAAAAAABYAAAAAAAAAAAAAAAACAAAABAAAAAQAAMAEAACABAAAAAQAAAAEAAAABEAAAAQAAMAFXgAABAAAgAQAADgEAAAABAAAAAQAAAAEAAAABAAAIAQAAAAEAAAAAAAAAAAKABQAHgA+AEwAYgCCANQBXgIkAjQDAAMOBAAEIARcBOAFVAZOBqQHIAAAAAEAAAAWAOQACAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAOAK4AAQAAAAAAAQAOAAAAAQAAAAAAAgAOAEcAAQAAAAAAAwAOACQAAQAAAAAABAAOAFUAAQAAAAAABQAWAA4AAQAAAAAABgAHADIAAQAAAAAACgAoAGMAAwABBAkAAQAOAAAAAwABBAkAAgAOAEcAAwABBAkAAwAOACQAAwABBAkABAAOAFUAAwABBAkABQAWAA4AAwABBAkABgAOADkAAwABBAkACgAoAGMAaQBjAG8AbQBvAG8AbgBWAGUAcgBzAGkAbwBuACAAMQAuADAAaQBjAG8AbQBvAG8Abmljb21vb24AaQBjAG8AbQBvAG8AbgBSAGUAZwB1AGwAYQByAGkAYwBvAG0AbwBvAG4ARwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABJAGMAbwBNAG8AbwBuAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=) format('truetype')}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default{box-sizing:content-box;color:#fff;font-family:sans-serif;font-size:14px;height:150px;overflow:hidden;position:relative;transition:cursor 4s;width:300px}.bc-iframe .bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default{position:absolute;top:0;bottom:0;width:100%;height:100%}@media screen\0{.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.video-js{box-sizing:content-box;color:#fff;font-family:sans-serif;font-size:14px;height:150px;overflow:hidden;position:relative;transition:cursor 4s;width:300px}.bc-iframe .bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.video-js{position:absolute;top:0;bottom:0;width:100%;height:100%}}.bc-iframe body{bottom:0;height:auto;left:0;margin:auto;max-height:100%;max-width:100%;position:absolute;right:0;top:0;width:auto}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-user-inactive.vjs-fullscreen{cursor:none}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default:fullscreen{bottom:0;left:0;margin:auto;max-height:100%;max-width:100%;position:absolute;right:0;top:0}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-tech{position:absolute;top:0;left:0;width:100%;height:100%}.bc-iframe .bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-tech{display:none}.bc-wrap{transition:opacity .35s}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.video-js .vjs-tech{display:block;opacity:0;transition:opacity .35s}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-plugins-ready .vjs-tech{opacity:1}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-poster{opacity:0;transition:opacity .35s}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-plugins-ready .vjs-poster{opacity:1}.bc-wrap{background-size:contain;background-position:50% 50%;background-repeat:no-repeat}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-poster{background-repeat:no-repeat;background-position:center;background-size:contain;background-color:#151B17;height:100%;position:absolute;top:0;width:100%}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-has-started .vjs-poster{display:none}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-audio.vjs-has-started .vjs-poster{display:block}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-using-native-controls .vjs-poster{display:none}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-modal-dialog,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-modal-dialog-content{box-sizing:border-box;position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.8)}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-modal-dialog-content{font-size:12px;line-height:1.5;padding:20px 24px;z-index:1}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-control.vjs-close-button{cursor:pointer;height:3em;position:absolute;right:0;top:.5em;z-index:2}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-control.vjs-close-button,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-icon-cancel{font-family:VideoJS;font-weight:400;font-style:normal}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-share-control,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-spacer{-webkit-box-ordinal-group:5;-moz-box-ordinal-group:5;-webkit-order:5;-ms-flex-order:5;order:5}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-offscreen{height:1px;left:-9999px;position:absolute;top:0;width:1px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-big-play-button{background:rgba(0,0,0,.45);border-radius:21px;cursor:pointer;height:96px;left:23px;position:absolute;top:21px;width:144px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-big-play-button:before{content:'\e001';color:#fff;display:block;font-family:VideoJS;font-size:23px;line-height:27px;margin:36px auto;opacity:.8;text-align:center;width:23px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-has-started .vjs-big-play-button{display:none}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-autoplay .vjs-big-play-button,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-autoplay .vjs-poster{display:none}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-controls-disabled .vjs-big-play-button,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-controls-disabled.vjs-controls-disabled .vjs-control-bar{display:none}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-using-native-controls .vjs-big-play-button,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-using-native-controls.vjs-using-native-controls .vjs-control-bar{display:none}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-control-text{background-color:transparent;border:0;height:0;width:0;display:block;overflow:hidden;text-indent:-9999px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-control-text:before{content:'';display:block;width:0;height:150%}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-control-bar{display:none}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-has-started .vjs-control-bar{display:flex}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-has-started.vjs-controls-disabled .vjs-control-bar{display:none}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-has-started.vjs-using-native-controls .vjs-control-bar{display:none}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-control-bar{color:#fff;background-color:rgba(0,0,0,.45);border-top:1px solid #000;border-top:1px solid rgba(0,0,0,.6);bottom:0;box-sizing:border-box;left:0;right:0;height:50px;line-height:50px;position:absolute;transition:transform .5s,margin .5s;flex-direction:row;flex-wrap:nowrap;justify-content:space-between;align-content:center;align-items:center}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-has-started.vjs-user-inactive .vjs-control-bar{margin-left:-18px;pointer-events:none;transform:translateY(50px)}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-control-bar .vjs-control,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-control-bar .vjs-time-divider{transition:width .5s,opacity .5s}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-has-started.vjs-user-inactive .vjs-control,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-has-started.vjs-user-inactive .vjs-time-divider{width:0;padding:0;opacity:0}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-has-started.vjs-user-inactive .vjs-progress-control{opacity:1}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-control-bar .vjs-progress-control{transition:transform .5s}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-has-started.vjs-user-inactive .vjs-progress-control{transform:translateY(-28px);width:58px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default button{background:0 0;border:none;margin:0;padding:0}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-control{box-sizing:border-box;cursor:pointer;width:58px;height:50px;flex:0 0 auto;align-self:auto}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-control:before{display:block;font-family:VideoJS;font-size:24px;line-height:26px;margin:0 auto;opacity:.8;position:relative;text-align:center;top:13px;width:43px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-big-play-button:focus,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-control:focus,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-menu-item:focus,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-progress-holder:focus,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-volume-bar:focus{outline:0}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-control:focus:before,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-control:hover:before,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-menu-item:focus,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-menu-item:hover{text-shadow:-1px 1px 20px #fff,1px -1px 20px #fff,-1px 1px 20px #fff,1px -1px 20px #fff}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-big-play-button:focus,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-big-play-button:hover,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-progress-holder:focus:before{box-shadow:0 0 15px 3px #FFF}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-has-started.vjs-user-inactive .vjs-progress-holder:focus:before{box-shadow:none}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-progress-control{order:5;flex:1 0 auto}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-current-time:before,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-duration:before,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-progress-control:before{content:none}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-load-progress,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-play-progress,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-seek-handle{float:left;display:block}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-progress-holder{position:relative;height:4px;padding:24px 0 22px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-progress-holder:before{content:"";display:block;background-color:#8b8e8c;background-color:rgba(255,255,255,.3);width:100%;height:4px;position:absolute}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-load-progress,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-play-progress{float:none;height:4px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-play-progress,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-volume-level{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAYAAABWKLW/AAAAHElEQVQIW2P8//+/DyMj4xYGIGAEETABMAcmAADkAAtNi9y2WAAAAABJRU5ErkJggg==) repeat;background-color:#d52484}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-play-progress{margin-top:-4px;width:0}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-load-progress{background-color:rgba(255,255,255,.3)}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-load-progress{width:0}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-play-control{order:1}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-play-control:before{content:'\e001'}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-play-control.vjs-playing:before{content:'\e002'}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-current-time,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-duration,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-time-divider{cursor:default;text-align:center}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-current-time{order:2}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-time-divider{width:4px;order:3}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-duration{order:4}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-volume-menu-button{order:6}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-captions-button,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-chapters-button,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-subtitles-button{order:8}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-captions-button:before{content:'\e008'}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-chapters-button:before,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-subtitles-button:before{content:'\e00c'}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-fullscreen-control{order:9}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-fullscreen-control:before{content:'\e000'}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-captions-button&gt;.vjs-control-text,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-chapters-button&gt;.vjs-control-text,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-current-time .vjs-control-text,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-duration .vjs-control-text,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-live-display .vjs-control-text,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-progress-control .vjs-control-text,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-subtitles-button&gt;.vjs-control-text,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-volume-handle .vjs-control-text,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-volume-menu-button&gt;.vjs-control-text{display:none}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-remaining-time{display:none}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-live-control,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-live .vjs-current-time,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-live .vjs-progress-control,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-live .vjs-time-divider,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-live.vjs-ad-playing .vjs-live-control,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-live.vjs-ad-playing .vjs-live-control .vjs-live-display{display:none}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-live-control{width:51px;order:5}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-live-control .vjs-live-display{margin:0 5px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-live .vjs-live-control{flex:1 0 auto}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-live .vjs-live-control,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-live .vjs-live-control .vjs-live-display,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-live.vjs-ad-playing .vjs-current-time,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-live.vjs-ad-playing .vjs-progress-control,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-live.vjs-ad-playing .vjs-time-divider{display:block}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-menu{display:none;margin:0 -14px 60px -14px;position:absolute;overflow:visible;width:76px;list-style:none;padding:0;transition-property:width,height,opacity;transition-delay:.5s;opacity:0}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-menu-content{background-color:rgba(0,0,0,.45)}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-menu-button .vjs-menu.vjs-lock-showing,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-menu-button:active .vjs-menu,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse .vjs-menu-button:hover .vjs-menu{display:block;bottom:0;opacity:1;transition-property:opacity;transition-delay:0s}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-menu .vjs-menu-title{display:none}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-menu .vjs-menu-item{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;height:24px;line-height:24px;display:block;text-align:center;padding:7px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-menu .vjs-menu-item.vjs-selected{background-color:#fff;background-color:rgba(255,255,255,.8);color:#000;color:rgba(0,0,0,.6)}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-menu-content{padding:0;margin:0}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-menu-button .vjs-menu .vjs-menu-content{display:block;margin:0;padding:0;position:absolute;bottom:0;max-height:360px;overflow:auto}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-captions-button .vjs-menu-content,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-chapters-button .vjs-menu-content,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-subtitles-button .vjs-menu-content{width:140px;left:-32px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-menu-button .vjs-texttrack-settings{padding-bottom:7px;border-bottom:1px solid;border-color:#d52484}.vjs-modal-overlay{position:absolute;color:#fff;font-family:HelveticaNeue-Light,"Helvetica Neue Light","Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif;font-weight:300;top:0;right:0;bottom:0;left:0;background-color:rgba(0,0,0,.75);padding:45px 70px;text-align:left;letter-spacing:1px}@media only screen and (max-width :480px){.vjs-modal-overlay{padding:20px 35px}}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-text-track-display{position:absolute;top:0;left:0;bottom:50px;right:0;pointer-events:none}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse .vjs-text-track-display{bottom:33px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-tracksettings{position:absolute;overflow:auto;top:45px;right:70px;bottom:50px;left:70px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-tracksettings-controls{position:absolute;bottom:0;left:70px;right:70px;padding:10px 0;text-align:right}@media only screen and (max-width:480px){.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-tracksettings,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-tracksettings-controls{left:35px;right:35px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-tracksettings{top:20px;bottom:40px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-tracksettings-controls{padding:5px 0;bottom:0}}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-caption-settings .vjs-tracksetting{margin:5px;padding:3px;min-height:40px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-caption-settings .vjs-tracksetting label{display:block;width:100px;margin-bottom:5px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-caption-settings .vjs-tracksetting span{display:inline;margin-left:5px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-caption-settings .vjs-tracksetting&gt;div{margin-bottom:5px;min-height:20px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-caption-settings .vjs-tracksetting&gt;div:last-child{margin-bottom:0;padding-bottom:0;min-height:0}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-caption-settings label&gt;input{margin-right:10px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-caption-settings input[type=button]{width:40px;height:40px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-tracksettings .vjs-label{display:block}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-tracksettings-colors,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-tracksettings-font{box-sizing:border-box;float:left;width:50%;padding:3px;min-height:40px;min-width:280px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-tracksettings-colors:after,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-tracksettings-controls:after,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-tracksettings-font:after{clear:both}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-tracksetting{margin-bottom:16px;min-height:20px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-opacity{margin-left:10px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-tracksetting button,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-tracksetting input,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-tracksetting select,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-tracksettings-controls button{margin-top:6px;font:inherit;border-radius:2px;background-color:#fff;padding:0 9px;line-height:24px;height:24px;border:none;color:#515151;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-edge-style select,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-font-family select{display:block}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-caption-settings button{margin-right:10px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-caption-settings .vjs-done-button{margin-right:0}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-volume-menu-button{display:none}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-mute-control:before,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-volume-menu-button:before{content:'\e006'}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-mute-control.vjs-vol-0:before,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-volume-menu-button.vjs-vol-0:before{content:'\e003'}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-mute-control.vjs-vol-2:before,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-volume-menu-button.vjs-vol-2:before{content:'\e005'}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-mute-control.vjs-vol-1:before,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-volume-menu-button.vjs-vol-1:before{content:'\e004'}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-volume-menu-button .vjs-menu{background-color:transparent;opacity:0;bottom:33px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-volume-menu-button .vjs-menu-content{margin-right:0;background-color:rgba(0,0,0,.45);width:0;height:0;padding:0 10px;transform:translate(25px,0);transition-property:width,height;transition-delay:0s}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-volume-menu-button .vjs-menu.vjs-lock-showing .vjs-menu-content,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-volume-menu-button:active .vjs-menu .vjs-menu-content,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse .vjs-volume-menu-button:hover .vjs-menu .vjs-menu-content{height:87px;width:23px;padding:10px 0;overflow:visible}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-captions-button.vjs-menu-button:active .vjs-menu .vjs-menu-content,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-captions-button.vjs-volume-menu-button .vjs-menu.vjs-lock-showing .vjs-menu-content,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-chapters-button.vjs-menu-button:active .vjs-menu .vjs-menu-content,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-chapters-button.vjs-volume-menu-button .vjs-menu.vjs-lock-showing .vjs-menu-content,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-subtitles-button.vjs-menu-button:active .vjs-menu .vjs-menu-content,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-subtitles-button.vjs-volume-menu-button .vjs-menu.vjs-lock-showing .vjs-menu-content,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse .vjs-captions-button.vjs-menu-button:hover .vjs-menu .vjs-menu-content,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse .vjs-chapters-button.vjs-menu-button:hover .vjs-menu .vjs-menu-content,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse .vjs-subtitles-button.vjs-menu-button:hover .vjs-menu .vjs-menu-content{height:auto;box-sizing:content-box}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-volume-menu-button .vjs-menu.vjs-lock-showing{display:block}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-volume-bar:before{content:"";display:block;background-color:#8b8e8c;background-color:rgba(255,255,255,.3);position:absolute;box-shadow:0 0 15px 2px #fff}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-volume-bar.vjs-slider-vertical.vjs-slider-vertical:before{width:3px;height:100%}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-volume-bar.vjs-slider-horizontal:before{width:100%;height:3px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-volume-bar{position:relative;padding:0}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-volume-bar.vjs-slider-vertical.vjs-slider-vertical{height:100%;width:3px;padding:0 10px 0 10px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-volume-bar.vjs-slider-horizontal{height:3px;padding:10px 0 10px 0;width:100%}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-volume-level{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAYAAABWKLW/AAAAHElEQVQIW2P8//+/DyMj4xYGIGAEETABMAcmAADkAAtNi9y2WAAAAABJRU5ErkJggg==);background-color:#d52484;display:block;width:3px;background-repeat:repeat repeat;position:absolute;bottom:0}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-volume-level.vjs-volume-level{height:100%}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-volume-handle{position:absolute;width:5px;background-color:#fff;left:100%;margin-top:-4px;height:5px;float:none;display:block;transform:rotate(45deg)}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-loading-spinner{animation:rotation .6s infinite linear;border:6px solid rgba(255,255,255,.15);border-radius:100%;display:none;height:60px;left:50%;margin:-30px 0 0 -30px;position:absolute;top:50%;width:60px}.vjs-waiting.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-loading-spinner{display:block}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-loading-spinner:before{content:"";display:block;position:absolute;left:-6px;top:-6px;height:100%;width:100%;border-top:6px solid rgba(255,255,255,.8);border-left:6px solid transparent;border-bottom:6px solid transparent;border-right:6px solid transparent;border-radius:100%}@keyframes rotation{from{transform:rotate(0)}to{transform:rotate(359deg)}}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-native .vjs-big-play-button,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-native .vjs-control-bar,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-native .vjs-loading-spinner,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-native .vjs-poster,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-native .vjs-text-track-display{display:none}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse{font-size:12px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse .bc-wrap{filter:blur(10px)}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse .vjs-big-play-button{width:156px;height:105px;top:17px;left:17px;position:absolute}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse .vjs-control-bar{display:flex;height:33px;line-height:33px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse.vjs-has-started.vjs-user-inactive .vjs-control,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse.vjs-has-started.vjs-user-inactive .vjs-control-bar,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse.vjs-has-started.vjs-user-inactive .vjs-progress-control,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse.vjs-has-started.vjs-user-inactive .vjs-time-divider{transition-delay:3s}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse.vjs-has-started.vjs-user-inactive .vjs-control-bar{margin-left:-15px;pointer-events:none;transform:translateY(33px)}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse.vjs-has-started.vjs-user-inactive .vjs-progress-control{transform:translateY(-19px);width:48px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse .vjs-control{height:33px;width:48px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse .vjs-control:before{font-size:16px;line-height:18px;opacity:.8;width:24px;text-align:center;top:8px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse .vjs-progress-holder{padding:15px 0 14px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse .vjs-menu{width:76px;margin:0 -14px 33px -14px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse .vjs-volume-menu-button{display:block}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse .vjs-volume-menu-button:before{content:'\e006'}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse .vjs-volume-menu-button.vjs-vol-0:before{content:'\e003'}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse .vjs-volume-menu-button.vjs-vol-2:before{content:'\e005'}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse .vjs-volume-menu-button.vjs-vol-1:before{content:'\e004'}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse .vjs-fullscreen-control:before{content:'\e000'}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse.video-js:fullscreen .vjs-fullscreen-control:before{content:'\e00b'}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse.video-js.vjs-fullscreen .vjs-fullscreen-control:before{content:'\e00b'}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse .vjs-hidden{display:none}@media (max-width:480px){.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default:not(.vjs-has-started) .vjs-control-bar{visibility:hidden}}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default *,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default :after,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default :before{-webkit-box-sizing:content-box}@-moz-document url-prefix(){.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-control-bar{width:100%;-moz-box-sizing:border-box}}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-has-started .vjs-control-bar,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse .vjs-control-bar{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-control-bar{-webkit-backface-visibility:hidden;-webkit-transition:-webkit-transform .5s,margin .5s;-moz-transition:-moz-transform .5s,margin .5s;-ms-transition:-ms-transform .5s,margin .5s;-o-transition:-o-transform .5s,margin .5s;-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-box-orient:horizontal;-moz-box-orient:horizontal;-webkit-flex-direction:row;-ms-flex-direction:row;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;-webkit-box-pack:justify;-moz-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;-webkit-align-content:center;-ms-flex-line-pack:center;-webkit-box-align:center;-moz-box-align:center;-webkit-align-items:center;-ms-flex-align:center}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-has-started.vjs-user-inactive .vjs-control-bar{-webkit-transform:translateY(50px);-moz-transform:translateY(50px);-ms-transform:translateY(50px);-o-transform:translateY(50px)}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-control-bar .vjs-control,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-control-bar .vjs-time-divider{-webkit-transition:width .5s,opacity .5s;-moz-transition:width .5s opacity .5s;-ms-transition:width .5s opacity .5s;-o-transition:width .5s opacity .5s}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-control-bar .vjs-progress-control{-webkit-transition:-webkit-transform .5s;-moz-transition:-moz-transform .5s;-ms-transition:-ms-transform .5s;-o-transition:-o-transform .5s}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-has-started.vjs-user-inactive .vjs-progress-control{-webkit-transform:translateY(-28px);-moz-transform:translateY(-28px);-ms-transform:translateY(-28px);-o-transform:translateY(-28px)}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-control{-moz-box-sizing:border-box;-webkit-box-flex:0;-moz-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;-webkit-align-self:auto;-ms-flex-item-align:auto}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-progress-control{-webkit-box-ordinal-group:5;-moz-box-ordinal-group:5;-webkit-order:5;-ms-flex-order:5;-webkit-box-flex:1;-moz-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-progress-holder{-webkit-user-select:none}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-play-control{-webkit-box-ordinal-group:1;-moz-box-ordinal-group:1;-webkit-order:1;-ms-flex-order:1}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-current-time{-webkit-box-ordinal-group:2;-moz-box-ordinal-group:2;-webkit-order:2;-ms-flex-order:2}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-time-divider{-webkit-box-ordinal-group:3;-moz-box-ordinal-group:3;-webkit-order:3;-ms-flex-order:3}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-duration{-webkit-box-ordinal-group:4;-moz-box-ordinal-group:4;-webkit-order:4;-ms-flex-order:4}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-live-control{-webkit-box-ordinal-group:5;-moz-box-ordinal-group:5;-webkit-order:5;-ms-flex-order:5}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-live .vjs-live-control{-webkit-box-flex:1;-moz-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-volume-menu-button{-webkit-box-ordinal-group:6;-moz-box-ordinal-group:6;-webkit-order:6;-ms-flex-order:6}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-captions-button,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-chapters-button,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-subtitles-button{-webkit-box-ordinal-group:8;-moz-box-ordinal-group:8;-webkit-order:8;-ms-flex-order:8}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-fullscreen-control{-webkit-box-ordinal-group:9;-moz-box-ordinal-group:9;-webkit-order:9;-ms-flex-order:9}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-menu{-webkit-transition-property:opacity;-moz-transition-property:opacity;-ms-transition-property:opacity;-o-transition-property:opacity;-webkit-transition-delay:.5s;-moz-transition-delay:.5s;-ms-transition-delay:.5s;-o-transition-delay:.5s}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-menu .vjs-menu-content{-webkit-transition-property:width,height;-moz-transition-property:width,height;-ms-transition-property:width,height;-o-transition-property:width,height;-webkit-transition-delay:.5s;-moz-transition-delay:.5s;-ms-transition-delay:.5s;-o-transition-delay:.5s}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-menu-button:active .vjs-menu .vjs-menu-content,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-menu-button:hover .vjs-menu .vjs-menu-content,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-menu.vjs-lock-showing .vjs-menu-content{-webkit-transition-delay:0s;-moz-transition-delay:0s;-ms-transition-delay:0s;-o-transition-delay:0s}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-volume-menu-button .vjs-menu-content{-webkit-transform:translate(25px,0);-moz-transform:translate(25px,0);-ms-transform:translate(25px,0);-o-transform:translate(25px,0)}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-volume-bar{-webkit-user-select:none}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-volume-handle{-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg)}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse .vjs-control-bar{display:flex;height:33px;line-height:33px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse.vjs-has-started.vjs-user-inactive .vjs-control,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse.vjs-has-started.vjs-user-inactive .vjs-control-bar,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse.vjs-has-started.vjs-user-inactive .vjs-progress-control,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse.vjs-has-started.vjs-user-inactive .vjs-time-divider{-webkit-transition-delay:3s;-moz-transition-delay:3s;-ms-transition-delay:3s;-o-transition-delay:3s}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse.vjs-has-started.vjs-user-inactive .vjs-control-bar{-webkit-transform:translateY(33px);-moz-transform:translateY(33px);-ms-transform:translateY(33px);-o-transform:translateY(33px)}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse.vjs-has-started.vjs-user-inactive .vjs-progress-control{-webkit-transform:translateY(-19px);-moz-transform:translateY(-19px);-ms-transform:translateY(-19px);-o-transform:translateY(-19px)}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-no-flex .vjs-control,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-no-flex .vjs-time-divider{float:left}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-no-flex .vjs-control-bar{display:block}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-no-flex.vjs-user-inactive .vjs-control-bar{margin-left:0}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse.vjs-has-started.vjs-user-inactive .vjs-control-bar{margin-left:0}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-no-flex.vjs-has-started.vjs-user-inactive .vjs-progress-control{-moz-transition:-moz-transform .5s .5s,width .5s .5s}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-no-flex .vjs-progress-control~.vjs-control{float:right}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.video-js:full-screen{bottom:0;left:0;margin:auto;max-height:100%;max-width:100%;position:absolute;right:0;top:0}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.video-js:-webkit-full-screen{bottom:0;left:0;margin:auto;max-height:100%;max-width:100%;position:absolute;right:0;top:0}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.video-js:-moz-full-screen{bottom:0;left:0;margin:auto;max-height:100%;max-width:100%;position:absolute;right:0;top:0}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.video-js:-ms-fullscreen{bottom:0;left:0;margin:auto;max-height:100%;max-width:100%;position:absolute;right:0;top:0}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.video-js:-webkit-full-screen .vjs-fullscreen-control::before{content:'\e00b'}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.video-js:-moz-full-screen .vjs-fullscreen-control::before{content:'\e00b'}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.video-js:-ms-fullscreen .vjs-fullscreen-control::before{content:'\e00b'}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.video-js:-ms-fullscreen .vjs-big-play-button{content:'\e00b'}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.video-js:full-screen .vjs-fullscreen-control::before{content:'\e00b'}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.ie8.vjs-has-started.vjs-user-inactive .vjs-control-bar{bottom:-33px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.ie8.vjs-has-started.vjs-user-inactive .vjs-progress-control{position:absolute;display:block;bottom:19px;width:100%!important}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.ie8 .vjs-big-play-button,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.ie8 .vjs-control-bar,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.ie8 .vjs-menu,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.ie8 .vjs-volume-menu-button .vjs-menu-content{background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=45)";zoom:1}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.ie8 .vjs-control .vjs-menu-content{background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=45)"}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.ie8 .vjs-captions-button .vjs-menu-content,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.ie8 .vjs-chapters-button .vjs-menu-content,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.ie8 .vjs-subtitles-button .vjs-menu-content{border-top:1px solid #000;border-left:1px solid #000;border-right:1px solid #000}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.ie8 .vjs-progress-holder{background:0 0}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.ie8 .vjs-load-progress{background:0 0;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#3CFFFFFF,endColorstr=#3CFFFFFF)";zoom:1}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.ie8 .vjs-volume-bar{background:0 0;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#1EFFFFFF,endColorstr=#1EFFFFFF)";zoom:1}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.ie8 .vjs-volume-bar{margin:24px 0 22px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse.ie8 .vjs-volume-bar{margin:15px 0 14px}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.ie8 .vjs-volume-bar{background:0 0;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#1EFFFFFF,endColorstr=#1EFFFFFF)";zoom:1;position:relative;height:5px;width:100%;margin:auto}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.ie8 .vjs-volume-bar:after{display:block;width:100%;height:5px;position:absolute;top:50%}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.ie8 .vjs-volume-level{width:100%;left:0;height:5px;bottom:auto;float:none;display:block}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-poster img{display:block;margin:auto}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.ie8 .bc-wrap{display:none}.ie8 .bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-big-play-button:focus,.ie8 .bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-big-play-button:hover,.ie8 .bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-progress-holder:focus:before{border:2px solid #fff}.ie8 .bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-control:focus:before,.ie8 .bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-control:hover:before,.ie8 .bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-volume-bar:focus,.ie8 .bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-volume-control:hover{border:2px solid #fff}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-loading-spinner{-moz-animation:rotation .6s infinite linear}@-moz-keyframes rotation{from{-moz-transform:rotate(0)}to{-moz-transform:rotate(359deg)}}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-loading-spinner{-webkit-animation:rotation .6s infinite linear}@-webkit-keyframes rotation{from{-webkit-transform:rotate(0)}to{-webkit-transform:rotate(359deg)}}.bc-wrap{-webkit-transition:opacity .35s}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.vjs-mouse .bc-wrap{-webkit-filter:blur(10px)}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default.video-js .vjs-tech{-webkit-transition:opacity .35s}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-poster{-webkit-transition:opacity .35s}.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-dock-shelf,.bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default .vjs-dock-text{display:none}.vjs-error-display{color:#fff;display:none;font-family:Helvetica,Arial,sans serif;font-size:16px;line-height:1.428}.vjs-error .vjs-error-display{display:block;position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5)}.vjs-error .vjs-error-display .vjs-modal-dialog-content{font-size:14px}.vjs-errors-dialog{text-align:left;border:1px #999 solid;overflow:hidden;position:absolute;top:5%;bottom:5%;left:5%;right:5%;background:rgba(24,24,24,.8);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#CC000000, endColorstr=#CC000000)"}.vjs-errors-details{margin-top:15px}.vjs-errors-message{border:1px #999 solid;background-color:#2c2c2c;overflow:auto;margin-top:15px;padding:15px}.vjs-errors-ok-button-container{display:block;position:absolute;bottom:15px;left:15px;right:15px;text-align:center}.vjs-errors-ok-button{display:block;margin:0 auto;width:80px;height:36px;background-color:#000;border:1px #999 solid;border-radius:5px;color:#999;font-size:14px;cursor:pointer}.vjs-errors-ok-button:hover{border:1px #FFF solid;color:#CCC}.vjs-errors-content-container{overflow:auto;position:absolute;padding-bottom:15px;top:75px;left:15px;right:15px;bottom:61px}.vjs-errors-headline{font-size:22px;font-weight:700;margin-top:0}.vjs-errors-close-button{background-color:transparent;font-size:14px;font-weight:700;cursor:pointer;float:right;margin:5px;border:0;color:#999}.vjs-errors-close-button:before{content:'X'}.vjs-errors-close-button:hover{color:#FFF}.vjs-xs.vjs-error-display{font-size:14px;background-color:#000}.vjs-xs.vjs-error-display .vjs-errors-close-button,.vjs-xs.vjs-error-display .vjs-errors-details,.vjs-xs.vjs-error-display .vjs-errors-message{display:none}.vjs-xs .vjs-errors-content-container{top:15px}.vjs-xs .vjs-errors-headline{font-size:16px;font-weight:700}.vjs-xs .vjs-errors-dialog{border:none;top:0;bottom:0;left:0;right:0}@media (max-width:600px),(max-height:250px){.vjs-error-display{font-size:14px;background-color:#000}.vjs-error-display .vjs-errors-close-button,.vjs-error-display .vjs-errors-details,.vjs-error-display .vjs-errors-message{display:none}.vjs-error-display .vjs-errors-content-container{top:15px}.vjs-error-display .vjs-errors-headline{font-size:16px;font-weight:700}.vjs-error-display .vjs-errors-dialog{border:none;top:0;bottom:0;left:0;right:0}}@font-face{font-family:VideoJS;src:url(../fonts/VideoJS.eot?#iefix) format("eot")}@font-face{font-family:VideoJS;src:url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAA54AAoAAAAAFmgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAAA9AAAAD4AAABWUZFeBWNtYXAAAAE0AAAAOgAAAUriMBC2Z2x5ZgAAAXAAAAouAAAPUFvx6AdoZWFkAAALoAAAACsAAAA2DIPpX2hoZWEAAAvMAAAAGAAAACQOogcgaG10eAAAC+QAAAAPAAAAfNkAAABsb2NhAAAL9AAAAEAAAABAMMg06m1heHAAAAw0AAAAHwAAACABMAB5bmFtZQAADFQAAAElAAACCtXH9aBwb3N0AAANfAAAAPwAAAGBZkSN43icY2BkZ2CcwMDKwMFSyPKMgYHhF4RmjmEIZzzHwMDEwMrMgBUEpLmmMDh8ZPwoxw7iLmSHCDOCCADvEAo+AAB4nGNgYGBmgGAZBkYGEHAB8hjBfBYGDSDNBqQZGZgYGD7K/f8PUvCREUTzM0DVAwEjG8OIBwCPdwbVAAB4nI1Xe1CU1xX/zv1eLItLln0JwrIfC7sJGET2hRJ2N1GUoBJE8AESQEEhmBHjaB7UuBMTO4GMaSu7aY3RNlOdRPNqO2pqRmuTaSZtR6JJILUZk00a/4imjpmiecB303O/XUgMJOPufvd+99xzzz33nN855y4HHH7EfrGfIxwHRiANvF/sH71I9BzHszmpW+rGOQOXxXE6YhI4PoMT8zkT4cDFuf1cwMrZJI5cglM0HKVv0MaUFDgIFfg9mJJCG+kbKn1JkqBOVaFOkuhLpARq8fu0Nnc9/zdvfY9PxXW4PdH0C6N+PCejhorxFjAqRjgFRXSINEARbBGsoxcFK7IJmr4OycFJnInL59zIXwxui80fkGRbEHyosMWaATJKUfCskmwJQsAWANkmnIGOhlf514h7U8HNIv3owoHB0WMt0Eb3sx0guLi5pq/8Ny1q6969fKR9X9GBV6dPv6dp04K99SOwtmyPl47ApRa6n4ZpP1yjr5fn7MmYP/vXLUJs715UguklHBaHOZHZmG1N9FAIW2mf0MqWCIdo/8RZ1yGfxKUldDcGIbFA7ICO+vqOMSPTh/ZrSqgHi/bB/O8E8Mnzp+M+acxfpsTShBwej26TiGxBn7m4eEIO+Rueu6Hj+IFBnh88cAEUEQ//nVLx5C7kf+yIR47QEe+eMlhz9SqsGbe3hh2R03NGzoY6O42Kz8l7fB6fAk6LYnTyFo/FYyT6GGyNx2Jx2sdH4rA1Fo/HyCXaFyOp8dhYBCfJb2NIn1ImE6CYNGmgSTb52DawJR6jfXEmDU4xyTEmpgHHOIStoxfjSGdkbsK2w2jbdMQG4sgAstEONgURYCwGHhEhhscioQaAhhCf7McifEQc0l6+mxj9nI+gmSdiQ0Zbm7gZnIO7GSMEXG6UDAVocxAV8GcEXCKg1a02RcTtwANWRGIAyElor6n/+ZU2yOB3+T77Hb1MLqhn4KHVnQBjJnqe9QZSon6Kc5DxAD2vMdPL/BXSmQGwspa67z9wLUjdi9TN7QC7lyyBr9rpt7uXVC1CMpyjKRoXnGPHTuiaPLsNdc2dbAFQLAooPkXEh33FodHl4XpC6sPCIa0ftUIhHSYXVSu5iME+DIXsbZJ51BeidCgajcai43jU9nVzoSn2dPqcFvSoxSzJzgRKAx47WMRxOrIj3Wf0+hndxhJTiOkSEqxar3b3RKM9hY64oxBA64ieURLvCfpkDb8siBdUJ1bgT+urJ5PGfewQrmm5R5+0HmfyIPySD7OYkT0WxRePah8oEiyjlxIP74thVoRTURpmL6QhGuWS+QDjdANXjIM8SQa/1w128ODx0Qp4aLMNg9+JL3joUn8AMxW+aLNiuKjarn4uyyTdXjOzZTsh21uwldUvJoYza+zELALfu3p1L8/3krtyZ0Ag058J3hxHghvbGZn0dHZy6Mim/7Blre4lpHd1c28yVqRViO153F2oIWoXCIKbL4Z0cM1iaQn9mI5KuV2SzEvWXJDMNtkANpMdQoDDhIdD4A/YrP6Aye9ysxyE+uOEAcTDorgvVZJjcua043PnZ/PmdDqcbibZlXOOT8uSo7Kof0YUn9GL+Jo17ficymxiTofC6znUso0DhAxs1Fo+kF+d36vLmgZ8mk5cdGv2mwYj5k3Dm9m3LhJ1aVRNm6HrTbLgYAoWXDhDd/u4PGy5CT+xGMdiaBovewUCF/1BiWNljI9MLn7jeScpg+WyH6mfU62eVDql7hsrmvx1ezp/YldE2LhjbkiDnAn8tGy/MW3IXRMYJduvq9HpmIcKuFt+JCtgdGEGKAcF6UacVwIYbVPGfw/+YuNBS4cx/CUHcnyfc+wRDMtTr72mMSBjT/yn/GKSdeDWQUCH6Xoqq5R10RE60gV6erUL0iCti16d0hZjxut4QI/rEpgSh6WjnJXdBXRg1GKCucGJPtFqM27aD1tOqqKonsQ2KsFSSmEpmvRlsR+TcD9OFwrqXxIclL4sJTnGMSuG8KpkZvKdeVIOKDyWSyPLV16/p1QMPbP8NihwUzr47bdnXtwtjdCvqqpO0H+pOvIl3Pzv46e5CT/tQjklXCXXym1AaWY7bzHLkuDMc7ldKCvgxzLn8wYkJLBhEDyK7MT8bTbwbkxbfp+3mKAGsmTBpabSIEECzMIcQlzOPAMKsxMs7uhsnxPLuofPDTc1hkuq6MX9j16YU7CqegcYHbmWYuvAP6tCS97tgWf7dlQvnl25YPavXLVZvrzQPeHCpZmzzEUVq/xzu5sChnSTPTW7oOYmh69z4zL/gk3b+O6hoa733uviP82vnFcbqWlc9tDmZa23LVzaV1yXURi+JX+28NeBuj3+O8IrQ080Vm1eWB4OKjPmrJu7c1udWynvKF6/vs479lSW9+5gZkn+dKfellNGDPllzeULustz+A0bPvhgw7lkvEUwn/N4Ty7U7nhGsEpFkOfy+kutbOh1JQxhVDJumoW11hnkPThznh6FFlhfT+ra1x9sF56kx5YuDzVY9PQYAYA7iblw4frQ4TPCk2MK/xGU3rlmze62trHz6lsko+v+So/do74PT8KVkpJfOErKcv8znrMGsHTNxoEkWy1mYgDB6XBbPaWsuiS6CryGaL6zCjaXBgvtkuyXBua1wOKnh+k7L9AvPnYWffxK18FcJbuosGf3/Jo7amY+CE1vppzY+UTrva0FXc1i55pKQ/YjVL187N5fCn1kW5uot/1hi+DiZ+5atnJR9E+prvydJ9ZZ5mwOpU5gM4KYysMBQ71UzPuMTl9QQOyUo5nwioeYCPjFklrbK6s6X+ypUZ6rum9+CZYzWRiBJfSP0xzzSmrg7f86g0DKVj/wwFzieD9rRfPGFbeKMl05pn5j9/rsQJJ2iEgRrpohlyBo3f4QK7Kl+EcAYZgAoNVmZWXK704YAa3FwBxgSGUOs5htvGRz4Sgj3yFkSJFBuv/sxu5yk998T8WDJzvv/2RX19HtTUW1S+wpKRKRjJ6zzz/1/OPdFdWGlAKbvzS4PHOtURikg9AGz0LbIB85S/cPOpoXvuue8/iV2H1vPTy3ddvOeZ37HGmO3OmSzVzR+NS53+84dHlFhXPLqtzSO+5ruHM2vXtBdxP87LOzKAD359j/INYIbyPabIi3Cq6Wa+SaGe78diIzu7qcblcAa6/fJRvNopXFJnO+U9KKM5bqH5LM0iQSVmpPCPDu7ZT4Aoubz3709EBTyrTDjyx8MQXgUH1nqm7TWng4TzE4i4AsKskBITXfSyC4Fkl5MxnJDiKSIDSJAsGvd1y+/eNDp2e+A+5d8HeiiunrTkT6TqWLIs+/QRoWr98s0qj8uuzLuS22Ytufg3rdTaHn1m46sfgGKHXt0MGnLaRHdnwN37tvHcWKo2V6lnPxL4UvUQcRdOzmZSQs8X5CH5OxXMXpkATuDz8Et0SH4uyCRR+TjmBDP1GvsVrWEGVzEj33YVQ9jAtIKpqsl/s/0xrocwAAeJxjYGRgYADig3cEzsTz23xl4GZnAIHLRucNkWl2BrA4BwMTiAIAF4IITwB4nGNgZGBgZwCChWASxGZkQAXyABOUANh4nGNnYGBgHyAMADa8ANoAAAAAAAAOAFAAZgCyAMYA5gEeAUgBdAGcAfICLgKOAroDCgOOA7AD6gQ4BHwEuAToBQwFogXoBjYGbAbaB3IHqHicY2BkYGCQZ8hlYGcAASYg5gJCBob/YD4DABbVAaoAeJxdkE1qg0AYhl8Tk9AIoVDaVSmzahcF87PMARLIMoFAl0ZHY1BHdBJIT9AT9AQ9RQ9Qeqy+yteNMzDzfM+88w0K4BY/cNAMB6N2bUaPPBLukybCLvleeAAPj8JD+hfhMV7hC3u4wxs7OO4NzQSZcI/8Ltwnfwi75E/hAR7wJTyk/xYeY49fYQ/PztM+jbTZ7LY6OWdBJdX/pqs6NYWa+zMxa13oKrA6Uoerqi/JwtpYxZXJ1coUVmeZUWVlTjq0/tHacjmdxuL90OR8O0UEDYMNdtiSEpz5XQGqzlm30kzUdAYFFOb8R7NOZk0q2lwAyz1i7oAr1xoXvrOgtYhZx8wY5KRV269JZ5yGpmzPTjQhvY9je6vEElPOuJP3mWKnP5M3V+YAAAB4nG2P2XLCMAxFfYFspGUp3Te+IB9lHJF4cOzUS2n/voaEGR6qB+lKo+WITdhga/a/bRnDBFPMkCBFhhwF5ihxg1sssMQKa9xhg3s84BFPeMYLXvGGd3zgE9tZr/hveXKVkFYoSnoeHJXfRoWOqi54mo9ameNFdrK+dLSyaVf7oJQTlkhXpD3Z5XXhR/rUfQVuKXO91Jps4cLOS6/I5YL3XhodRRsVWZe4NnZOhWnSAWgxhMoEr6SmzZieF43Mk7ZOBdeCVGrp9Eu+54J2xhySplfB5XHwQLXUmT9KH6+kPnQ7ZYuIEzNyfs1DLU1VU4SWZ6LkXGHsD1ZKbMw=) format("woff"),url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAAKAIAAAwAgT1MvMlGRXgUAAAEoAAAAVmNtYXDiMBC2AAAB/AAAAUpnbHlmW/HoBwAAA4gAAA9QaGVhZAyD6V8AAADQAAAANmhoZWEOogcgAAAArAAAACRobXR42QAAAAAAAYAAAAB8bG9jYTDINOoAAANIAAAAQG1heHABMAB5AAABCAAAACBuYW1l1cf1oAAAEtgAAAIKcG9zdGZEjeMAABTkAAABgQABAAAHAAAAAKEHAAAAAAAHAAABAAAAAAAAAAAAAAAAAAAAHwABAAAAAQAAwdxheF8PPPUACwcAAAAAANMyzzEAAAAA0zLPMQAAAAAHAAcAAAAACAACAAAAAAAAAAEAAAAfAG0ABwAAAAAAAgAAAAoACgAAAP8AAAAAAAAAAQcAAZAABQAIBHEE5gAAAPoEcQTmAAADXABXAc4AAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA8QHxHgcAAAAAoQcAAAAAAAABAAAAAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAAAAAMAAAADAAAAHAABAAAAAABEAAMAAQAAABwABAAoAAAABgAEAAEAAgAA8R7//wAAAADxAf//AAAPAAABAAAAAAAAAAABBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAFAAZgCyAMYA5gEeAUgBdAGcAfICLgKOAroDCgOOA7AD6gQ4BHwEuAToBQwFogXoBjYGbAbaB3IHqAABAAAAAAWLBYsAAgAAAREBAlUDNgWL++oCCwAAAwAAAAAGawZrAAIADgAaAAAJAhMEAAMSAAUkABMCAAEmACc2ADcWABcGAALrAcD+QJX+w/5aCAgBpgE9AT0BpggI/lr+w/3+rgYGAVL9/QFSBgb+rgIwAVABUAGbCP5a/sP+w/5aCAgBpgE9AT0BpvrIBgFS/f0BUgYG/q79/f6uAAAAAgAAAAAFQAWLAAMABwAAASERKQERIREBwAEr/tUCVQErAXUEFvvqBBYAAAAEAAAAAAYgBiAABgATACQAJwAAAS4BJxUXNjcGBxc+ATUmACcVFhIBBwEhESEBEQEGBxU+ATcXNwEHFwTQAWVVuAO7AidxJSgF/t/lpc77t18BYf6fASsBdQE+TF1OijuZX/1gnJwDgGSeK6W4GBhqW3FGnFT0AWM4mjT+9AHrX/6f/kD+iwH2/sI7HZoSRDGYXwSWnJwAAAEAAAAABKsF1gAFAAABESEBEQECCwEqAXb+igRg/kD+iwSq/osAAAACAAAAAAVmBdYABgAMAAABLgEnET4BAREhAREBBWUBZVRUZfwRASsBdf6LA4Bkniv9piueAUT+QP6LBKr+iwAAAwAAAAAGIAYPAAUADAAaAAATESEBEQEFLgEnET4BAxUWEhcGAgcVNgA3JgDgASsBdf6LAsUBZVVVZbqlzgMDzqXlASEFBf7fBGD+QP6LBKr+i+Bkniv9piueAvOaNP70tbX+9DSaOAFi9fUBYgAAAAQAAAAABYsFiwAFAAsAEQAXAAABIxEhNSMDMzUzNSEBIxUhESMDFTMVMxECC5YBduCWluD+igOA4AF2luDglgLr/oqWAgrglvyAlgF2AqCW4AF2AAQAAAAABYsFiwAFAAsAEQAXAAABMxUzESETIxUhESMBMzUzNSETNSMRITUBdeCW/org4AF2lgHAluD+ipaWAXYCVeABdgHAlgF2++rglgHA4P6KlgAAAAACAAAAAAXWBdYADwATAAABIQ4BBxEeARchPgE3ES4BAyERIQVA/IA/VQEBVT8DgD9VAQFVP/yAA4AF1QFVP/yAP1UBAVU/A4A/VfvsA4AAAAYAAAAABmsGawAHAAwAEwAbACAAKAAACQEmJw4BBwElLgEnAQUhATYSNyYFAQYCBxYXIQUeARcBMwEWFz4BNwECvgFkTlSH8GEBEgOONemh/u4C5f3QAXpcaAEB/BP+3VxoAQEOAjD95DXpoQESeP7dTlSH8GH+7gPwAmgSAQFYUP4nd6X2Pv4nS/1zZAEBk01NAfhk/v+TTUhLpfY+Adn+CBIBAVhQAdkAAAAFAAAAAAZrBdYADwATABcAGwAfAAABIQ4BBxEeARchPgE3ES4BASEVIQEhNSEFITUhNSE1IQXV+1ZAVAICVEAEqkBUAgJU+xYBKv7WAur9FgLqAcD+1gEq/RYC6gXVAVU//IA/VQEBVT8DgD9V/ayV/tWVlZWWlQADAAAAAAYgBdYADwAnAD8AAAEhDgEHER4BFyE+ATcRLgEBIzUjFTM1MxUUBgcjLgEnET4BNzMeARUFIzUjFTM1MxUOAQcjLgE1ETQ2NzMeARcFi/vqP1QCAlQ/BBY/VAICVP1rcJWVcCog4CAqAQEqIOAgKgILcJWVcAEqIOAgKiog4CAqAQXVAVU//IA/VQEBVT8DgD9V/fcl4CVKICoBASogASogKgEBKiBKJeAlSiAqAQEqIAEqICoBASogAAAGAAAAAAYgBPYAAwAHAAsADwATABcAABMzNSMRMzUjETM1IwEhNSERITUhERUhNeCVlZWVlZUBKwQV++sEFfvrBBUDNZb+QJUBwJX+QJb+QJUCVZWVAAAAAQAAAAAGIAZsAC4AAAEiBgcBNjQnAR4BMz4BNy4BJw4BBxQXAS4BIw4BBx4BFzI2NwEGBx4BFz4BNy4BBUArSh797AcHAg8eTixffwICf19ffwIH/fEeTixffwICf18sTh4CFAUBA3tcXHsDA3sCTx8bATcZNhkBNB0gAn9fX38CAn9fGxn+zRwgAn9fX38CIBz+yhcaXHsCAntcXXsAAAIAAAAABlkGawBDAE8AAAE2NCc3PgEnAy4BDwEmLwEuASchDgEPAQYHJyYGBwMGFh8BBhQXBw4BFxMeAT8BFh8BHgEXIT4BPwE2NxcWNjcTNiYnBS4BJz4BNx4BFw4BBasFBZ4KBgeWBxkNujpEHAMUD/7WDxQCHEU5ug0aB5UHBQudBQWdCwUHlQcaDbo5RRwCFA8BKg8UAhxFOboNGgeVBwUL/ThvlAIClG9vlAIClAM3JEokewkaDQEDDAkFSy0cxg4RAQERDsYcLUsFCQz+/QwbCXskSiR7CRoN/v0MCQVLLRzGDhEBAREOxhwtSwUJDAEDDBsJQQKUb2+UAgKUb2+UAAAAAAEAAAAABmsGawALAAATEgAFJAATAgAlBACVCAGmAT0BPQGmCAj+Wv7D/sP+WgOA/sP+WggIAaYBPQE9AaYICP5aAAAAAgAAAAAGawZrAAsAFwAAAQQAAxIABSQAEwIAASYAJzYANxYAFwYAA4D+w/5aCAgBpgE9AT0BpggI/lr+w/3+rgYGAVL9/QFSBgb+rgZrCP5a/sP+w/5aCAgBpgE9AT0BpvrIBgFS/f0BUgYG/q79/f6uAAADAAAAAAZrBmsACwAXACMAAAEEAAMSAAUkABMCAAEmACc2ADcWABcGAAMOAQcuASc+ATceAQOA/sP+WggIAaYBPQE9AaYICP5a/sP9/q4GBgFS/f0BUgYG/q4dAn9fX38CAn9fX38Gawj+Wv7D/sP+WggIAaYBPQE9Aab6yAYBUv39AVIGBv6u/f3+rgJPX38CAn9fX38CAn8AAAAEAAAAAAYgBiAADwAbACUAKQAAASEOAQcRHgEXIT4BNxEuAQEjNSMVIxEzFTM1OwEhHgEXEQ4BByE3MzUjBYv76j9UAgJUPwQWP1QCAlT9a3CVcHCVcJYBKiAqAQEqIP7WcJWVBiACVD/76j9UAgJUPwQWP1T8gpWVAcC7uwEqIP7WICoBcOAAAgAAAAAGawZrAAsAFwAAAQQAAxIABSQAEwIAEwcJAScJATcJARcBA4D+w/5aCAgBpgE9AT0BpggI/lo4af70/vRpAQv+9WkBDAEMaf71BmsI/lr+w/7D/loICAGmAT0BPQGm/BFpAQv+9WkBDAEMaf71AQtp/vQAAQAAAAAF1ga2ABYAAAERCQERHgEXDgEHLgEnIxYAFzYANyYAA4D+iwF1vv0FBf2+vv0FlQYBUf7+AVEGBv6vBYsBKv6L/osBKgT9v779BQX9vv7+rwYGAVH+/gFRAAAAAQAAAAAFPwcAABQAAAERIyIGHQEhAyMRIREjETM1NDYzMgU/nVY8ASUn/v7O///QrZMG9P74SEi9/tj9CQL3ASjaus0AAAAABAAAAAAGjgcAADAARQBgAGwAAAEUHgMVFAcGBCMiJicmNTQ2NzYlLgE1NDcGIyImNTQ2Nz4BMyEHIx4BFRQOAycyNjc2NTQuAiMiBgcGFRQeAxMyPgI1NC4BLwEmLwImIyIOAxUUHgIBMxUjFSM1IzUzNTMDH0BbWkAwSP7qn4TlOSVZSoMBESAfFS4WlMtIP03TcAGiioNKTDFFRjGSJlAaNSI/akAqURkvFCs9WTY6a1s3Dg8THgocJU4QIDVob1M2RnF9A2vV1WnU1GkD5CRFQ1CATlpTenNTYDxHUYouUhIqQCkkMQTBlFKaNkJAWD+MWkhzRztAPiEbOWY6hn1SJyE7ZS5nZ1I0/JcaNF4+GTAkGCMLFx04Ag4kOF07Rms7HQNsbNvbbNkAAwAAAAAGgAZsAAMADgAqAAABESERARYGKwEiJjQ2MhYBESERNCYjIgYHBhURIRIQLwEhFSM+AzMyFgHd/rYBXwFnVAJSZGemZASP/rdRVj9VFQv+twIBAQFJAhQqR2c/q9AEj/whA98BMkliYpNhYfzd/cgCEml3RTMeM/3XAY8B8DAwkCAwOB/jAAABAAAAAAaUBgAAMQAAAQYHFhUUAg4BBCMgJxYzMjcuAScWMzI3LgE9ARYXLgE1NDcWBBcmNTQ2MzIXNjcGBzYGlENfAUyb1v7SrP7x4SMr4bBpph8hHCsqcJNETkJOLHkBW8YIvYaMYG1gJWldBWhiRQ4cgv797rdtkQSKAn1hBQsXsXUEJgMsjlNYS5WzCiYkhr1mFTlzPwoAAAABAAAAAAWABwAAIgAAARcOAQcGLgM1ESM1PgQ3PgE7AREhFSERFB4CNzYFMFAXsFlorXBOIahIckQwFAUBBwT0AU3+sg0gQzBOAc/tIz4BAjhceHg6AiDXGlddb1ctBQf+WPz9+h40NR4BAgABAAAAAAaABoAASgAAARQCBCMiJzY/AR4BMzI+ATU0LgEjIg4DFRQWFxY/ATY3NicmNTQ2MzIWFRQGIyImNz4CNTQmIyIGFRQXAwYXJgI1NBIkIAQSBoDO/p/Rb2s7EzYUaj15vmh34o5ptn9bK1BNHggIBgIGETPRqZepiWs9Sg4IJRc2Mj5WGWMRBM7+zgFhAaIBYc4DgNH+n84gXUfTJzmJ8JZyyH46YH2GQ2ieIAwgHxgGFxQ9WpfZpIOq7lc9I3VZHzJCclVJMf5eRmtbAXzp0QFhzs7+nwAABwAAAAAHAATPAA4AFwAqAD0AUABaAF0AAAERNh4CBw4BBwYmIycmNxY2NzYmBxEUBRY2Nz4BNy4BJyMGHwEeARcOARcWNjc+ATcuAScjBh8BHgEXFAYXFjY3PgE3LgEnIwYfAR4BFw4BBTM/ARUzESMGAyUVJwMchM2UWwgNq4JHrQgBAapUaAoJcWMBfiIhDiMrAQJLMB0BBAokNAIBPmMiIQ4iLAECSzAeAQUKJDQBP2MiIQ4iLAECSzAeAQUKJDQBAT75g+5B4arNLNIBJ44ByQL9BQ9mvYCKwA8FBQMDwwJVTGdzBf6VB8IHNR08lld9uT4LCRA/qGNxvUwHNR08lld9uT4LCRA/qGNxvUwHNR08lld9uT4LCRA/qGNxvVJkAWUDDEf+tYP5AQAAAAEAAAAABiAGtgAbAAABBAADER4BFzMRITU2ADcWABcVIREzPgE3EQIAA4D+4v6FBwJ/X+D+1QYBJ97eAScG/tXgX38CB/6FBrUH/oX+4v32X38CAlWV3gEnBgb+2d6V/asCf18CCgEeAXsAAAAAEADGAAEAAAAAAAEABwAAAAEAAAAAAAIABwAHAAEAAAAAAAMABwAOAAEAAAAAAAQABwAVAAEAAAAAAAUACwAcAAEAAAAAAAYABwAnAAEAAAAAAAoAKwAuAAEAAAAAAAsAEwBZAAMAAQQJAAEADgBsAAMAAQQJAAIADgB6AAMAAQQJAAMADgCIAAMAAQQJAAQADgCWAAMAAQQJAAUAFgCkAAMAAQQJAAYADgC6AAMAAQQJAAoAVgDIAAMAAQQJAAsAJgEeVmlkZW9KU1JlZ3VsYXJWaWRlb0pTVmlkZW9KU1ZlcnNpb24gMS4wVmlkZW9KU0dlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAFYAaQBkAGUAbwBKAFMAUgBlAGcAdQBsAGEAcgBWAGkAZABlAG8ASgBTAFYAaQBkAGUAbwBKAFMAVgBlAHIAcwBpAG8AbgAgADEALgAwAFYAaQBkAGUAbwBKAFMARwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABzAHYAZwAyAHQAdABmACAAZgByAG8AbQAgAEYAbwBuAHQAZQBsAGwAbwAgAHAAcgBvAGoAZQBjAHQALgBoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAAAAAgAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAABAgEDAQQBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMBFAEVARYBFwEYARkBGgEbARwBHQEeAR8EcGxheQtwbGF5LWNpcmNsZQVwYXVzZQt2b2x1bWUtbXV0ZQp2b2x1bWUtbG93CnZvbHVtZS1taWQLdm9sdW1lLWhpZ2gQZnVsbHNjcmVlbi1lbnRlcg9mdWxsc2NyZWVuLWV4aXQGc3F1YXJlB3NwaW5uZXIJc3VidGl0bGVzCGNhcHRpb25zCGNoYXB0ZXJzBXNoYXJlA2NvZwZjaXJjbGUOY2lyY2xlLW91dGxpbmUTY2lyY2xlLWlubmVyLWNpcmNsZQJoZAZjYW5jZWwGcmVwbGF5CGZhY2Vib29rBWdwbHVzCGxpbmtlZGluB3R3aXR0ZXIGdHVtYmxyCXBpbnRlcmVzdBFhdWRpby1kZXNjcmlwdGlvbgVhdWRpbwAAAAAA) format("truetype");font-weight:400;font-style:normal}.vjs-icon-play{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-play:before{content:"\f101"}.vjs-icon-play-circle{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-play-circle:before{content:"\f102"}.vjs-icon-pause{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-pause:before{content:"\f103"}.vjs-icon-volume-mute{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-mute:before{content:"\f104"}.vjs-icon-volume-low{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-low:before{content:"\f105"}.vjs-icon-volume-mid{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-mid:before{content:"\f106"}.vjs-icon-volume-high{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-high:before{content:"\f107"}.vjs-icon-fullscreen-enter{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-fullscreen-enter:before{content:"\f108"}.vjs-icon-fullscreen-exit{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-fullscreen-exit:before{content:"\f109"}.vjs-icon-square{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-square:before{content:"\f10a"}.vjs-icon-spinner{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-spinner:before{content:"\f10b"}.vjs-icon-subtitles{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-subtitles:before{content:"\f10c"}.vjs-icon-captions{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-captions:before{content:"\f10d"}.vjs-icon-chapters{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-chapters:before{content:"\f10e"}.vjs-icon-share{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-share:before{content:"\f10f"}.vjs-icon-cog{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-cog:before{content:"\f110"}.vjs-icon-circle{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle:before{content:"\f111"}.vjs-icon-circle-outline{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle-outline:before{content:"\f112"}.vjs-icon-circle-inner-circle{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle-inner-circle:before{content:"\f113"}.vjs-icon-hd{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-hd:before{content:"\f114"}.vjs-icon-cancel{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-cancel:before{content:"\f115"}.vjs-icon-replay{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-replay:before{content:"\f116"}.vjs-icon-facebook{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-facebook:before{content:"\f117"}.vjs-icon-gplus{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-gplus:before{content:"\f118"}.vjs-icon-linkedin{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-linkedin:before{content:"\f119"}.vjs-icon-twitter{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-twitter:before{content:"\f11a"}.vjs-icon-tumblr{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-tumblr:before{content:"\f11b"}.vjs-icon-pinterest{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-pinterest:before{content:"\f11c"}.vjs-icon-audio-description{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-audio-description:before{content:"\f11d"}.vjs-icon-audio{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-audio:before{content:"\f11e"}.vjs-social-overlay{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:10px;letter-spacing:1px}.vjs-social-overlay .vjs-icon-facebook{background-color:#3b5998}.vjs-social-overlay .vjs-icon-gplus{background-color:#d53326}.vjs-social-overlay .vjs-icon-linkedin{background-color:#069}.vjs-social-overlay .vjs-icon-twitter{background-color:#55acee}.vjs-social-overlay .vjs-icon-tumblr{background-color:#29364b}.vjs-social-overlay .vjs-icon-pinterest{background-color:#c10218}.vjs-social-overlay a{color:#fff}.vjs-social-overlay .vjs-social-description,.vjs-social-overlay .vjs-social-title{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vjs-social-overlay .vjs-social-title{font-size:1.25em;font-weight:700;line-height:1.33333;margin-bottom:.33333em}.vjs-social-overlay .vjs-social-description{font-size:1em;font-weight:400;line-height:1.5;margin-bottom:1em}.vjs-social-overlay .vjs-social-share-links{margin:0 0 1em;overflow:auto}.vjs-social-overlay .vjs-social-share-link{border-radius:2px;float:left;font-size:1.16667em;line-height:1.07143;margin-right:.57143em;outline:0;padding:.42857em;text-decoration:none}.vjs-social-overlay .vjs-social-direct-link,.vjs-social-overlay .vjs-social-embed-code,.vjs-social-overlay .vjs-social-start-from{float:left;margin-bottom:.66667em}.vjs-social-overlay .vjs-social-direct-link .vjs-social-label-text,.vjs-social-overlay .vjs-social-embed-code .vjs-social-label-text,.vjs-social-overlay .vjs-social-start-from .vjs-social-label-text{display:block;margin-bottom:.16667em}.vjs-social-overlay .vjs-social-direct-link input,.vjs-social-overlay .vjs-social-embed-code input,.vjs-social-overlay .vjs-social-start-from input{border:0;color:#333;display:block;font-size:1em;padding:.5em .66667em;width:100%}.vjs-social-overlay .vjs-social-direct-link input.vjs-invalid,.vjs-social-overlay .vjs-social-embed-code input.vjs-invalid,.vjs-social-overlay .vjs-social-start-from input.vjs-invalid{background-color:red;color:#fff}.vjs-social-overlay .vjs-social-direct-link{padding-right:24px;width:80%}.vjs-social-overlay .vjs-social-start-from{width:20%}.vjs-social-overlay .vjs-social-embed-code{margin-bottom:.33333em;width:100%}.vjs-social-overlay.vjs-social-as-endscreen .vjs-restart{border:0;cursor:pointer;display:block;font-size:4em;margin:0 auto;outline:0;padding:0}.vjs-social-overlay.vjs-social-as-endscreen .vjs-restart:focus:before,.vjs-social-overlay.vjs-social-as-endscreen .vjs-restart:hover:before{text-shadow:1px -1px 20px #fff,-1px 1px 20px #fff}.vjs-social-overlay.vjs-social-as-endscreen.vjs-social-short-player .vjs-social-description{display:none}.vjs-button.vjs-share-control{cursor:pointer;font-weight:700}.vjs-button.vjs-share-control:hover{text-shadow:0 0 1em rgba(255,255,255,.5),0 0 1em rgba(255,255,255,.5),0 0 1em rgba(255,255,255,.5)}.vjs-dock-shelf .vjs-button.vjs-share-control{position:relative}.vjs-dock-shelf .vjs-button.vjs-share-control:before{position:relative;vertical-align:top}.vjs-dock-shelf .vjs-button.vjs-share-control span{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;vertical-align:top;text-decoration:underline;margin-left:2px}.vjs-social-overlay.vjs-social-small .vjs-social-direct-link{width:100%;padding-right:0}.vjs-social-overlay.vjs-social-small .vjs-social-share-links{margin-bottom:.33333em}.vjs-social-overlay.vjs-social-small .vjs-social-share-link{margin-bottom:.66667em}/*! videojs-overlay - v0.0.0 - 2014-4-26
+ * Copyright (c) 2014 Brightcove * Licensed under the Apache-2.0 license. * * Customised for Indy/ES by Daniel Petrie. * */.vjs-overlay,
+ .vjs-overlay.vjs-overlay-top-left {
+ position: absolute;
+ width: auto;
+ background-color: transparent;
+ top: 5px;
+ left: 5px
+ }
+
+ .vjs-overlay.vjs-overlay-top {
+ margin-left: -16.5%;
+ left: 50%
+ }
+
+ .vjs-overlay.vjs-overlay-top-right {
+ left: auto;
+ right: 5px
+ }
+
+ .vjs-overlay.vjs-overlay-left {
+ top: 50%;
+ margin-top: -15px
+ }
+
+ .vjs-overlay.vjs-overlay-right {
+ left: auto;
+ right: 5px;
+ top: 50%;
+ margin-top: -15px
+ }
+
+ .vjs-overlay.vjs-overlay-bottom {
+ margin-left: -16.5%;
+ left: 50%;
+ top: auto;
+ bottom: 4.5em
+ }
+
+ .vjs-overlay.vjs-overlay-bottom-left {
+ bottom: 4.5em;
+ top: auto;
+ left: 5px
+ }
+
+ .vjs-overlay.vjs-overlay-bottom-right {
+ bottom: 4.5em;
+ top: auto;
+ left: auto;
+ right: 5px
+ }
+
+ .vjs-social-overlay {
+ z-index: 999
+ }
+
+ .vjs-ad-playing.vjs-ad-playing .vjs-progress-control {
+ pointer-events: none
+ }
+
+ .vjs-ad-playing.vjs-ad-playing .vjs-play-progress {
+ background-color: #ffe400
+ }
+
+ .vjs-ad-playing.vjs-ad-loading .vjs-loading-spinner {
+ display: block
+ }
+
+ .vjs-ima3-ad-container {
+ bottom: 0;
+ left: 0;
+ position: absolute;
+ right: 0;
+ top: 0
+ }
+
+ .vjs-ima3-ad-container,
+ .vjs-ima3-click-tracker {
+ pointer-events: none;
+ left: -9999px
+ }
+
+ .vjs-ima3-flash-ad-container {
+ left: 0
+ }
+
+ .vjs-ima3-ad-background {
+ width: 100%;
+ height: 100%;
+ background-color: transparent;
+ position: absolute;
+ top: 0;
+ left: 0
+ }
+
+ .vjs-ad-playing .vjs-ima3-ad-background {
+ background-color: #000
+ }
+
+ .ima3-ad-loading.ima3-loading-spinner .vjs-loading-spinner {
+ display: block
+ }
+
+ .vjs-ima3-flash.vjs-ad-playing .vjs-tech {
+ opacity: 0
+ }
+
+ .vjs-ad-playing .vjs-ima3-ad-container,
+ .vjs-ad-playing .vjs-ima3-click-tracker,
+ .vjs-ima3-overlay .vjs-ima3-ad-container,
+ .vjs-ima3-overlay .vjs-ima3-click-tracker {
+ left: 0
+ }
+
+ .vjs-ima3-flash.vjs-ad-playing .vjs-ima3-ad-container,
+ .vjs-ima3-flash.vjs-ima3-overlay .vjs-ima3-ad-container {
+ cursor: pointer;
+ pointer-events: auto
+ }
+
+ .vjs-mouse.vjs-ima3-html5.vjs-ad-playing .vjs-ima3-ad-container,
+ .vjs-mouse.vjs-ima3-html5.vjs-ad-playing .vjs-ima3-click-tracker,
+ .vjs-mouse.vjs-ima3-html5.vjs-ima3-overlay .vjs-ima3-ad-container,
+ .vjs-mouse.vjs-ima3-html5.vjs-ima3-overlay .vjs-ima3-click-tracker {
+ cursor: pointer;
+ pointer-events: auto
+ }
+
+ .vjs-user-active.vjs-ad-playing.vjs-ima3-html5 .vjs-ima3-ad-container,
+ .vjs-user-active.vjs-ad-playing.vjs-ima3-html5 .vjs-ima3-click-tracker,
+ .vjs-user-active.vjs-ima3-overlay.vjs-ima3-html5 .vjs-ima3-ad-container,
+ .vjs-user-active.vjs-ima3-overlay.vjs-ima3-html5 .vjs-ima3-click-tracker {
+ cursor: pointer;
+ pointer-events: auto
+ }
+
+ .vjs-ima3-html5.vjs-using-native-controls.vjs-ima3-paused.vjs-ima3-paused .vjs-ima3-ad-container,
+ .vjs-ima3-html5.vjs-using-native-controls.vjs-ima3-paused.vjs-ima3-paused .vjs-ima3-click-tracker {
+ pointer-events: none
+ }
+
+ .vjs-ima3-click-tracker {
+ bottom: 0;
+ left: 0;
+ margin: 0;
+ position: absolute;
+ right: 0;
+ top: 0
+ }
+
+ .vjs-ima3-overlay .vjs-ima3-click-tracker {
+ top: auto;
+ margin: 0 auto
+ }
+
+ .vjs-control-bar.vjs-control-bar.vjs-ad-control-bar.vjs-ad-control-bar {
+ display: none
+ }
+
+ .vjs-ad-controls.vjs-ad-playing .vjs-control-bar.vjs-control-bar {
+ display: none
+ }
+
+ .vjs-ad-controls.vjs-ad-playing.vjs-controls-disabled .vjs-ad-control-bar.vjs-ad-control-bar,
+ .vjs-ad-controls.vjs-ad-playing.vjs-using-native-controls .vjs-ad-control-bar.vjs-ad-control-bar {
+ display: none
+ }
+
+ .vjs-ad-playing .vjs-dock-shelf,
+ .vjs-ad-playing .vjs-dock-text {
+ display: none
+ }
+
+ .vjs-ad-controls.vjs-ad-playing .vjs-control-bar.vjs-ad-control-bar {
+ display: -webkit-box;
+ display: -moz-box;
+ display: -ms-flexbox;
+ display: -webkit-flex;
+ display: flex
+ }
+
+ .vjs-ad-controls.vjs-ad-playing.vjs-no-flex .vjs-control-bar.vjs-ad-control-bar {
+ display: table
+ }
+
+ .vjs-mouse .vjs-control-bar.vjs-ad-control-bar .vjs-progress-control:hover {
+ height: .5em;
+ top: -.5em
+ }
+
+ .vjs-mouse .vjs-control-bar.vjs-ad-control-bar .vjs-progress-control:hover .vjs-mouse-display,
+ .vjs-mouse .vjs-control-bar.vjs-ad-control-bar .vjs-progress-control:hover .vjs-mouse-display:after,
+ .vjs-mouse .vjs-progress-control:hover .vjs-play-progress:after {
+ display: none
+ }
+
+ .vjs-ima3-flash.vjs-ad-loading .vjs-tech,
+ .vjs-ima3-html5.vjs-ad-loading .vjs-tech {
+ opacity: 0
+ }
+
+ .vjs-ima3-autoplay.vjs-ima3-not-playing-yet .vjs-poster,
+ .vjs-ima3-autoplay.vjs-ima3-not-playing-yet .vjs-tech {
+ opacity: 0
+ }
+
+ .vjs-ima3-html5.vjs-ad-playing .vjs-ad-control-bar .vjs-play-progress {
+ transition: width 1s linear
+ }
+
+ .vjs-ima3-flash.vjs-ad-playing .vjs-ad-control-bar .vjs-play-progress {
+ transition: width .25s linear
+ }
+
+ .vjs-ima3-html5.vjs-ad-playing .vjs-ad-control-bar .vjs-play-progress.vjs-play-progress-resetting {
+ transition: width 0s linear
+ }
+
+ .vjs-ima3-flash.vjs-ad-playing .vjs-ad-control-bar .vjs-play-progress.vjs-play-progress-resetting {
+ transition: width 0s linear
+ }
+ </style>
+ <title>The seven secrets that hotel owners don't want you to know | The Independent</title>
+ <link rel="manifest" href="/sites/all/themes/ines_themes/independent_theme/manifest.json" />
+ <!-- HEAD -->
+ <!--[if IE]><![endif]-->
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <link rel="dns-prefetch" href="//players.brightcove.net" />
+ <link rel="dns-prefetch" href="//tags.onscroll.com" />
+ <meta name="article:subsection" content="Frontpage" />
+ <meta name="article:external_link_count" content="1" />
+ <link rel="dns-prefetch" href="//static.standard.co.uk/" />
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+ <meta name="article:embed_count" content="0" />
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <meta name="article:video_count" content="0" />
+ <meta name="article:internal_link_count" content="3" />
+ <link href="http://www.independent.co.uk/news/business/news/seven-secrets-that-hotel-owners-dont-want-you-to-know-10506160.html?amp" rel="amphtml" />
+ <meta property="article:section" content="Business News" />
+ <meta name="article:author_name" content="Hazel Sheffield" />
+ <meta name="article:content_type" content="story" />
+ <meta name="article:image_count" content="1" />
+ <meta name="article:word_count" content="754" />
+ <meta name="apple-itunes-app" content="app-id=499587380, affiliate-data=1l3v95Z" />
+ <link rel="dns-prefetch" href="//static.independent.co.uk" />
+ <meta name="description" content="Most people go to hotels for the pleasure of sleeping in a giant bed with clean white sheets and waking up to fresh towels in the morning. But those towels and sheets might not be as clean as they look, according to the hotel bosses that responded to an online thread about the things hotel owners don’t want you to know." />
+ <meta name="keywords" content="Hotels, Hygiene, Business News, Business, News" />
+ <meta name="generator" content="Drupal 7 (http://drupal.org)" />
+ <link rel="canonical" href="http://www.independent.co.uk/news/business/news/seven-secrets-that-hotel-owners-dont-want-you-to-know-10506160.html" />
+ <meta property="fb:admins" content="729735830" />
+ <meta property="fb:app_id" content="235586169789578" />
+ <meta property="og:site_name" content="The Independent" />
+ <meta property="og:type" content="article" />
+ <meta property="og:title" content="Seven secrets that hotel owners don't want you to know" />
+ <meta property="og:url" content="http://www.independent.co.uk/news/business/news/seven-secrets-that-hotel-owners-dont-want-you-to-know-10506160.html" />
+ <meta property="og:description" content="Most people go to hotels for the pleasure of sleeping in a giant bed with clean white sheets and waking up to fresh towels in the morning. But those towels and sheets might not be as clean as they look, according to the hotel bosses that responded to an online thread about the things hotel owners don’t want you to know." />
+ <meta property="og:updated_time" content="2016-05-08T10:11:51+01:00" />
+ <meta property="og:image" content="https://static.independent.co.uk/s3fs-public/thumbnails/image/2015/12/06/10/bed-hotel-room.jpg" />
+ <meta name="twitter:card" content="summary_large_image" />
+ <meta name="twitter:site" content="@independent" />
+ <meta name="twitter:title" content="The seven secrets that hotel owners don't want you to know" />
+ <meta name="twitter:url" content="http://www.independent.co.uk/news/business/news/seven-secrets-that-hotel-owners-dont-want-you-to-know-10506160.html" />
+ <meta name="twitter:description" content="Most people go to hotels for the pleasure of sleeping in a giant bed with clean white sheets and waking up to fresh towels in the morning. But those towels and sheets might not be as clean as they look, according to the hotel bosses that responded to an online thread about the things hotel owners don’t want you to know." />
+ <meta property="og:locale" content="en_GB" />
+ <meta property="article:tag" content="Hotels" />
+ <meta property="article:tag" content="Hygiene" />
+ <meta property="article:published_time" content="2015-09-17T16:57:43+01:00" />
+ <meta property="article:modified_time" content="2016-05-08T10:11:51+01:00" />
+ <link rel="shortcut icon" href="/sites/all/themes/ines_themes/independent_theme/favicon.ico" type="image/ico" />
+ <meta name="msvalidate.01" content="58C7FB6B9237322BB527AA3C68656AE3" />
+ <link rel="apple-touch-icon" href="/sites/all/themes/ines_themes/independent_theme/img/apple-icon-60x60.png" />
+ <link rel="apple-touch-icon" href="/sites/all/themes/ines_themes/independent_theme/img/apple-icon-72x72.png" sizes="72x72" />
+ <link rel="apple-touch-icon" href="/sites/all/themes/ines_themes/independent_theme/img/apple-icon-76x76.png" sizes="76x76" />
+ <link rel="apple-touch-icon" href="/sites/all/themes/ines_themes/independent_theme/img/apple-icon-114x114.png" sizes="114x114" />
+ <link rel="apple-touch-icon" href="/sites/all/themes/ines_themes/independent_theme/img/apple-icon-120x120.png" sizes="120x120" />
+ <link rel="apple-touch-icon" href="/sites/all/themes/ines_themes/independent_theme/img/apple-icon-144x144.png" sizes="144x144" />
+ <link rel="apple-touch-icon" href="/sites/all/themes/ines_themes/independent_theme/img/apple-icon-152x152.png" sizes="152x152" />
+ <link rel="apple-touch-icon" href="/sites/all/themes/ines_themes/independent_theme/img/apple-icon-180x180.png" sizes="180x180" />
+ <link rel="android-icon" href="/sites/all/themes/ines_themes/independent_theme/img/android-icon-36x36.png" sizes="36x36" />
+ <link rel="android-icon" href="/sites/all/themes/ines_themes/independent_theme/img/android-icon-48x48.png" sizes="48x48" />
+ <link rel="android-icon" href="/sites/all/themes/ines_themes/independent_theme/img/android-icon-72x72.png" sizes="72x72" />
+ <link rel="android-icon" href="/sites/all/themes/ines_themes/independent_theme/img/android-icon-96x96.png" sizes="96x96" />
+ <link rel="android-icon" href="/sites/all/themes/ines_themes/independent_theme/img/android-icon-114x114.png" sizes="114x114" />
+ <link rel="android-icon" href="/sites/all/themes/ines_themes/independent_theme/img/android-icon-192x192.png" sizes="192x192" />
+ <link rel="ms-icon" href="/sites/all/themes/ines_themes/independent_theme/img/ms-icon-70x70.png" sizes="70x70" />
+ <link rel="ms-icon" href="/sites/all/themes/ines_themes/independent_theme/img/ms-icon-144x144.png" sizes="144x144" />
+ <link rel="ms-icon" href="/sites/all/themes/ines_themes/independent_theme/img/ms-icon-150x150.png" sizes="150x150" />
+ <link rel="ms-icon" href="/sites/all/themes/ines_themes/independent_theme/img/ms-icon-310x310.png" sizes="310x310" />
+
+ <!-- PRE HEAD INLINE -->
+ <script async="" type="text/javascript" src="http://www.googletagservices.com/tag/js/gpt.js"></script>
+ <script type="text/javascript" async="" src="http://dataservices.sub2tech.com/ccs/a62ebd59-8802-4b7d-88d8-a93988f7e9ab/sub2_custom_cbv.js?r=64910"></script>
+ <script async="" src="http://b.scorecardresearch.com/beacon.js"></script>
+ <script type="text/javascript" async="" src="http://www.google-analytics.com/ga.js"></script>
+ <script async="" type="text/javascript" src="http://esimedia-d.openx.net/w/1.0/jstag?nc=71347885-independent"></script>
+ <script src="http://asset.pagefair.net/ads.min.js"></script>
+ <script src="http://asset.pagefair.com/measure.min.js"></script>
+ <script async="" src="//cdn.krxd.net/ctjs/controltag.js.c9ec434df4b6649f3a798e8d03d40769"></script>
+ <script async="" src="http://b.scorecardresearch.com/beacon.js"></script>
+ <script charset="UTF-8" type="text/javascript" src="http://cdn.taboola.com/libtrc/impl.233-25-RELEASE.js"></script>
+ <script async="" src="//widget.perfectmarket.com/eslmedia-theindependent/load.js"></script>
+ <script type="text/javascript" async="" src="https://p.cpx.to/p/11667/px.js"></script>
+ <script type="text/javascript" async="" src="http://ak.sail-horizon.com/horizon/v1.js"></script>
+ <script type="text/javascript" async="" src="http://cdn.krxd.net/controltag?confid=I8gY_o93"></script>
+ <script async="" src="http://b.scorecardresearch.com/beacon.js"></script>
+ <script type="text/javascript" async="" src="https://z.moatads.com/eveningstandard858kBFE49/moatcontent.js"></script>
+ <script async="" src="//cdn.taboola.com/libtrc/eslmedia-theindependent/loader.js"></script>
+ <script type="text/javascript" crossorigin="Anonymous" src="http://player.h-cdn.com/loader.js?customer=independent_co_uk"></script>
+ <script async="" src="//www.google-analytics.com/analytics.js"></script>
+ <script>
+ var _sf_startpt = (new Date()).getTime();
+
+
+ ;
+
+ var _sf_async_config = _sf_async_config || {};
+ /** CONFIGURATION START **/
+ _sf_async_config.uid = 62356;
+ _sf_async_config.domain = 'independent.co.uk';
+ _sf_async_config.useCanonical = true;
+ _sf_async_config.flickerControl = false;
+ _sf_async_config.sections = 'news,business,news';
+ _sf_async_config.authors = 'Hazel Sheffield';
+ _sf_async_config.type = 'Thursday, 17 September 2015';
+ _sf_async_config.title = 'The seven secrets that hotel owners don\'t want you to know';
+ /** CONFIGURATION END **/
+ var _sf_startpt = (new Date()).getTime();
+
+
+
+ ;
+ var topicTags = ["hotels", "hygiene"];
+
+
+ ;
+ var gptPath = "-in_news-in_business-in_news-in_news_article";
+
+
+ ;
+ var s_account = "indepdev";
+
+
+ ;
+ </script>
+ <!-- SCRIPTS -->
+
+ <!-- STYLES -->
+ <link type="text/css" rel="stylesheet" href="//static.independent.co.uk/s3fs-public/advagg_css/css__8hNSjhZ5ePShkLRtI7ArCXODkeETokErBoR_jivVdhs__xC0LcO0R-bDWxJtPRMI5XjB7k1116JFsZ5ohBi7FqG4__5kqHynOifjMNcOXxeiS0IBrNvzbqVpjIR7hq-0wSifY.css" media="all" />
+
+ <!-- HARDCODED -->
+ <script type="text/javascript">
+ var articleId = '6658741';
+ var pageType = 'image';
+ </script>
+ <script type="text/javascript" src="//www.independent.co.uk/sites/all/libraries/modernizr/modernizr-custom.js?ogluy1"></script>
+ <script type="text/javascript" src="//code.jquery.com/jquery-2.1.4.min.js"></script>
+ <script type="text/javascript" src="//www.independent.co.uk/misc/jquery.once.js?v=1.2"></script>
+ <script type="text/javascript" src="//www.independent.co.uk/misc/drupal.js?ogluy1"></script>
+ <script type="text/javascript" defer="defer" src="//www.independent.co.uk/sites/all/themes/ines_themes/ines_theme/js/main.js?ogluy1"></script>
+ <script type="text/javascript" defer="defer" async="async" src="//www.independent.co.uk/sites/all/modules/contrib/picture/picturefill2/picturefill.min.js?v=2.3.1"></script>
+ <script type="text/javascript" defer="defer" async="async" src="//www.independent.co.uk/sites/all/modules/contrib/picture/picture.min.js?v=7.50"></script>
+ <script type="text/javascript" defer="defer" src="/profiles/ines/modules/ines_js/js/ines_helper.min.js?ogluy1"></script>
+ <script type="text/javascript" src="//www.independent.co.uk/sites/all/themes/ines_themes/independent_theme/js/adunit_define.js?ogluy1"></script>
+ <script type="text/javascript" src="//www.independent.co.uk/sites/all/modules/custom/pugpig/core/js/pugpig.js?ogluy1"></script>
+ <script type="text/javascript" src="//www.independent.co.uk/sites/all/modules/contrib/scald_file/scald_file.js?ogluy1"></script>
+ <script type="text/javascript" src="//www.independent.co.uk/sites/all/modules/contrib/scald/modules/providers/scald_image/scald_image.js?ogluy1"></script>
+ <script type="text/javascript" src="//www.independent.co.uk/sites/all/modules/contrib/google_analytics/googleanalytics.js?ogluy1"></script>
+ <script type="text/javascript" src="//www.independent.co.uk/profiles/ines/modules/ines_scald_videos_external/ines_scald_videos_external.js?ogluy1"></script>
+ <script type="text/javascript" src="//www.independent.co.uk/sites/all/themes/ines_themes/ines_theme/js/adunit.js?ogluy1"></script>
+ <script type="text/javascript" src="//www.independent.co.uk/profiles/ines/modules/ines_layout_config/js/layout_grid.feeds.js?ogluy1"></script>
+ <script type="text/javascript" src="//www.independent.co.uk/sites/all/themes/ines_themes/ines_theme/js/gigya.session.js?ogluy1"></script>
+ <script type="text/javascript" defer="defer" async="async" src="//sadmin.brightcove.com/js/BrightcoveExperiences.js"></script>
+ <script type="text/javascript" defer="defer" src="/profiles/ines/modules/ines_js/js/ines_js.defer.js?ogluy1"></script>
+ <script type="text/javascript" defer="defer" src="//www.independent.co.uk/profiles/ines/modules/ines_commercial/ines_commercial_ads/js/commercial.lazy_ads.js?ogluy1"></script>
+ <script type="text/javascript" defer="defer" src="//www.independent.co.uk/profiles/ines/modules/ines_js/js/all/node--article.tpl.js?ogluy1"></script>
+ <script type="text/javascript" defer="defer" src="//www.independent.co.uk/profiles/ines/modules/ines_js/js/in/html.tpl.js?ogluy1"></script>
+ <script type="text/javascript" defer="defer" src="//www.independent.co.uk/sites/all/themes/ines_themes/ines_theme/js/vendor/jquery.lazyload.min.js?ogluy1"></script>
+ <script type="text/javascript" defer="defer" src="//www.independent.co.uk/sites/all/themes/ines_themes/ines_theme/js/ines-lazy-load.js?ogluy1"></script>
+ <script type="text/javascript" defer="defer" src="//www.independent.co.uk/sites/all/themes/ines_themes/ines_theme/js/ines-share-init.js?ogluy1"></script>
+ <script type="text/javascript" defer="defer" src="//www.independent.co.uk/sites/all/themes/ines_themes/independent_theme/js/sitecatalyst.masthead_tracking.js?ogluy1"></script>
+ <script type="text/javascript">
+ & lt;
+ !-- //--&gt;&lt;![CDATA[//&gt;&lt;!--
+ jQuery.extend(Drupal.settings, {
+ "basePath": "\/",
+ "pathPrefix": "",
+ "ajaxPageState": {
+ "theme": "independent_theme",
+ "theme_token": "yG7k0vwdRtJ8KdOBdi9yZAbGBpCbQYQH5fXQ-wn6Cjk",
+ "css": {
+ "modules\/system\/system.base.css": 1,
+ "modules\/system\/system.menus.css": 1,
+ "modules\/system\/system.messages.css": 1,
+ "modules\/system\/system.theme.css": 1,
+ "modules\/field\/theme\/field.css": 1,
+ "sites\/all\/modules\/contrib\/scald\/modules\/fields\/mee\/css\/editor-global.css": 1,
+ "modules\/node\/node.css": 1,
+ "sites\/all\/modules\/contrib\/picture\/picture_wysiwyg.css": 1,
+ "sites\/all\/modules\/contrib\/scald_file\/scald_file.css": 1,
+ "sites\/all\/modules\/contrib\/views\/css\/views.css": 1,
+ "sites\/all\/themes\/ines_themes\/ines_theme\/css\/style.css": 1,
+ "sites\/all\/themes\/ines_themes\/independent_theme\/css\/style.css": 1
+ },
+ "js": {
+ "sites\/all\/libraries\/modernizr\/modernizr-custom.js": 1,
+ "\/\/code.jquery.com\/jquery-2.1.4.min.js": 1,
+ "misc\/jquery.once.js": 1,
+ "misc\/drupal.js": 1,
+ "sites\/all\/themes\/ines_themes\/ines_theme\/js\/main.js": 1,
+ "sites\/all\/modules\/contrib\/picture\/picturefill2\/picturefill.min.js": 1,
+ "sites\/all\/modules\/contrib\/picture\/picture.min.js": 1,
+ "\/profiles\/ines\/modules\/ines_js\/js\/ines_helper.min.js": 1,
+ "sites\/all\/themes\/ines_themes\/independent_theme\/js\/adunit_define.js": 1,
+ "sites\/all\/modules\/custom\/pugpig\/core\/js\/pugpig.js": 1,
+ "sites\/all\/modules\/contrib\/scald_file\/scald_file.js": 1,
+ "sites\/all\/modules\/contrib\/scald\/modules\/providers\/scald_image\/scald_image.js": 1,
+ "sites\/all\/modules\/contrib\/google_analytics\/googleanalytics.js": 1,
+ "profiles\/ines\/modules\/ines_scald_videos_external\/ines_scald_videos_external.js": 1,
+ "sites\/all\/themes\/ines_themes\/ines_theme\/js\/adunit.js": 1,
+ "profiles\/ines\/modules\/ines_layout_config\/js\/layout_grid.feeds.js": 1,
+ "sites\/all\/themes\/ines_themes\/ines_theme\/js\/gigya.session.js": 1,
+ "https:\/\/sadmin.brightcove.com\/js\/BrightcoveExperiences.js": 1,
+ "\/profiles\/ines\/modules\/ines_js\/js\/ines_js.defer.js": 1,
+ "profiles\/ines\/modules\/ines_commercial\/ines_commercial_ads\/js\/commercial.lazy_ads.js": 1,
+ "profiles\/ines\/modules\/ines_js\/js\/all\/node--article.tpl.js": 1,
+ "profiles\/ines\/modules\/ines_js\/js\/in\/html.tpl.js": 1,
+ "sites\/all\/themes\/ines_themes\/ines_theme\/js\/vendor\/jquery.lazyload.min.js": 1,
+ "sites\/all\/themes\/ines_themes\/ines_theme\/js\/ines-lazy-load.js": 1,
+ "sites\/all\/themes\/ines_themes\/ines_theme\/js\/ines-share-init.js": 1,
+ "sites\/all\/themes\/ines_themes\/independent_theme\/js\/sitecatalyst.masthead_tracking.js": 1
+ }
+ },
+ "commercial_georiot": {
+ "ID": 3658
+ },
+ "scaldFile": {
+ "path": "sites\/all\/modules\/contrib\/scald_file\/scald_file.css"
+ },
+ "googleanalytics": {
+ "trackOutbound": 1,
+ "trackMailto": 1,
+ "trackDownload": 1,
+ "trackDownloadExtensions": "7z|aac|arc|arj|asf|asx|avi|bin|csv|doc(x|m)?|dot(x|m)?|exe|flv|gif|gz|gzip|hqx|jar|jpe?g|js|mp(2|3|4|e?g)|mov(ie)?|msi|msp|pdf|phps|png|ppt(x|m)?|pot(x|m)?|pps(x|m)?|ppam|sld(x|m)?|thmx|qtm?|ra(m|r)?|sea|sit|tar|tgz|torrent|txt|wav|wma|wmv|wpd|xls(x|m|b)?|xlt(x|m)|xlam|xml|z|zip"
+ },
+ "urlIsAjaxTrusted": {
+ "\/news\/business\/news\/seven-secrets-that-hotel-owners-dont-want-you-to-know-10506160.html": true
+ },
+ "gigya": {
+ "comments": {
+ "catID": "ArticleComments",
+ "streamID": "a6658741"
+ }
+ },
+ "layoutgridfeeds": [{
+ "url": "\/layout_component\/api-i100",
+ "root": "articles",
+ "title": "headline",
+ "image": "thumbnailImage:url",
+ "link": "displayURL"
+ }, {
+ "url": "\/\/www.independent.co.uk\/layout_component\/api-mmm",
+ "root": "articles",
+ "title": "title",
+ "image": "image",
+ "link": "link"
+ }, {
+ "url": "\/\/www.independent.co.uk\/layout_component\/sidebar-videos",
+ "root": "articles",
+ "title": "title",
+ "image": "image",
+ "link": "link",
+ "type": "video"
+ }, {
+ "url": "\/\/www.independent.co.uk\/layout_component\/sponsored-features",
+ "root": "articles",
+ "title": "title",
+ "image": "image",
+ "link": "link"
+ }],
+ "commercial_ads": {
+ "gptSlots": ["leaderboard", "mpu0", "mpu3", "teadsib", "znaptag", "thirdparty01", "outofpageslot", "takeover1", "takeover2"],
+ "lazy_gptSlots": ["partner1", "partner2", "partner3", "partner4", "partner5", "partner6", "partner7", "partner8", "partner9", "partner10", "mpu1", "mpu2", "mpu4", "mpu5", "mpu6", "mpu7", "mpu8", "mpu9", "perform"],
+ "breakpoints": {
+ "750": [{
+ "slot": "leaderboard",
+ "slotWidth": "320"
+ }],
+ "1050": [{
+ "slot": "leaderboard",
+ "slotWidth": "728"
+ }]
+ }
+ },
+ "gigya_ui": {
+ "shareButtons": [{
+ "provider": "facebook",
+ "tooltip": "Share on Facebook",
+ "enableCount": "false",
+ "iconImgUp": "\/sites\/all\/themes\/ines_themes\/independent_theme\/img\/facebook.png"
+ }, {
+ "provider": "Twitter",
+ "tooltip": "Share on Twitter",
+ "enableCount": "false",
+ "related": "independent,thei100,indyusa",
+ "via": "independent",
+ "iconImgUp": "\/sites\/all\/themes\/ines_themes\/independent_theme\/img\/twitter.png"
+ }, {
+ "provider": "WhatsApp",
+ "tooltip": "WhatsApp",
+ "enableCount": "false",
+ "iconImgUp": "\/sites\/all\/themes\/ines_themes\/independent_theme\/img\/whatsapp.png"
+ }, {
+ "provider": "email",
+ "tooltip": "email",
+ "enableCount": "false",
+ "iconImgUp": "\/sites\/all\/themes\/ines_themes\/independent_theme\/img\/email.png"
+ }, {
+ "provider": "share",
+ "tooltip": "Share",
+ "enableCount": true,
+ "iconImgUp": "\/sites\/all\/themes\/ines_themes\/ines_theme\/img\/blank.gif"
+ }]
+ },
+ "ines_share": {
+ "fbAppId": "235586169789578"
+ },
+ "js_defer": {
+ "onLoad": [],
+ "onReady": [{
+ "src": "\/\/s.skimresources.com\/js\/44681X1528610.skimlinks.js"
+ }, {
+ "src": "\/\/cdn.georiot.com\/snippet.js",
+ "id": "georiot"
+ }, {
+ "src": "\/\/native.sharethrough.com\/assets\/sfp.js"
+ }, {
+ "src": "\/\/esi.gscontxt.net\/independent\/channels.cgi?url=http%3A%2F%2Fwww.independent.co.uk%2Fnews%2Fbusiness%2Fnews%2Fseven-secrets-that-hotel-owners-dont-want-you-to-know-10506160.html"
+ }, {
+ "src": "http:\/\/www.independent.co.uk\/profiles\/ines\/modules\/ines_commercial\/ines_commercial_ads\/js\/commercial.openx.js"
+ }, {
+ "src": "https:\/\/hammerjs.github.io\/dist\/hammer.min.js",
+ "id": "hammerjs",
+ "modernizr": "touchevents"
+ }, {
+ "src": "http:\/\/cdn.gigya.com\/JS\/gigya.js?apiKey=2_bkQWNsWGVZf-fA4GnOiUOYdGuROCvoMoEN4WMj6_YBq4iecWA-Jp9D2GZCLbzON4",
+ "id": "gigya"
+ }],
+ "dependant": {
+ "georiot": [{
+ "src": "http:\/\/www.independent.co.uk\/profiles\/ines\/modules\/ines_commercial\/ines_commercial_affiliates\/js\/commercial.georiot.js"
+ }],
+ "gigya": [{
+ "src": "http:\/\/www.independent.co.uk\/profiles\/ines\/modules\/ines_gigya\/js\/gigya.comments.js"
+ }, {
+ "src": "http:\/\/webservices.sub2tech.com\/CodeBase\/LIVE\/Min\/sub2.js?LICENSEKEY=a62ebd59-8802-4b7d-88d8-a93988f7e9ab\u0026trackPage=Y",
+ "id": "sub2tech"
+ }],
+ "hammerjs": [{
+ "src": "http:\/\/www.independent.co.uk\/profiles\/ines\/modules\/ines_device\/js\/ines_device.js"
+ }],
+ "sub2tech": [{
+ "src": "http:\/\/www.independent.co.uk\/profiles\/ines\/modules\/ines_gigya\/js\/gigya.ui.js"
+ }]
+ }
+ }
+ });
+ //--&gt;&lt;!]]&gt;
+ </script>
+ <!-- POST HEAD INLINE -->
+ <script async="" src="http://seb.scorecardresearch.com/lookup.php"></script>
+ <script type="text/javascript" src="//impl.onscroll.com/onscroll/2016/09/1474295972056.js" async="" defer="defer"></script>
+ <script type="text/javascript" src="//impl.onscroll.com/onscroll/2016/09/1474981864827.js" async="" defer="defer"></script>
+ <style type="text/css">
+ .trc_rbox_container {
+ direction: ltr;
+ text-align: left
+ }
+
+ .trc_rbox_header {
+ border-style: solid;
+ border-width: 0
+ }
+
+ .in_trc_header {
+ position: relative!important;
+ float: right;
+ margin: 0
+ }
+
+ #trc_rbox_css_loaded {
+ overflow: hidden;
+ width: 0;
+ height: 0
+ }
+
+ .trc_rbox {
+ margin-top: 0
+ }
+
+ .trc_rbox_div {
+ margin: 0 0 3px;
+ direction: ltr;
+ padding: 0;
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ overflow: auto;
+ position: relative;
+ width: auto;
+ *width: auto;
+ border: solid #CCC 1px
+ }
+
+ .loading-animation span {
+ display: block
+ }
+
+ .videoCube {
+ zoom: 1;
+ cursor: pointer;
+ float: none;
+ overflow: hidden;
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ -webkit-box-sizing: border-box
+ }
+
+ div.videoCube:hover,
+ .videoCube_hover {
+ cursor: pointer
+ }
+
+ .videoCube span.video-title:hover,
+ .videoCube_hover span.video-title {
+ text-decoration: underline
+ }
+
+ .videoCube a {
+ text-decoration: none;
+ border: 0;
+ color: #000;
+ cursor: pointer
+ }
+
+ .videoCube a:hover,
+ .videoCube_hover a,
+ .videoCube a:link,
+ .videoCube a {
+ text-decoration: none!important;
+ outline: 0
+ }
+
+ .videoCube a .thumbBlock {
+ float: left;
+ display: block;
+ overflow: hidden!important
+ }
+
+ .videoCube a img,
+ .videoCube img {
+ border: 0;
+ _border: 0;
+ display: block;
+ margin: 0;
+ height: auto;
+ width: auto
+ }
+
+ .videoCube .video-label {
+ display: block;
+ overflow: hidden
+ }
+
+ .videoCube .video-title {
+ width: auto!important;
+ white-space: pre-wrap;
+ white-space: -moz-pre-wrap;
+ white-space: -o-pre-wrap;
+ word-wrap: break-word
+ }
+
+ .videoCube .video-duration a {}
+
+ .videoCube .video-duration {
+ height: 0;
+ float: left;
+ position: relative;
+ color: #fff;
+ font-size: 11px
+ }
+
+ .videoCube .video-duration dt {
+ border-radius: 4px;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ background-color: #000;
+ opacity: .6;
+ filter: alpha(opacity=60)
+ }
+
+ .videoCube span.video-label.trc_ellipsis {
+ position: relative;
+ overflow: hidden;
+ display: -webkit-box;
+ -webkit-box-orient: vertical
+ }
+
+ .videoCube span.video-label.trc-smart-ellipsis {
+ position: relative;
+ overflow: hidden
+ }
+
+ .videoCube span.video-label.trc-smart-ellipsis ins {
+ display: inline-block;
+ text-decoration: inherit
+ }
+
+ .videoCube span.video-label.trc-smart-ellipsis ins.lastLineEllipsis {
+ display: block;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ word-wrap: normal
+ }
+
+ .sponsored-default .video-description {
+ font-weight: 400;
+ color: #000;
+ font-size: 9px;
+ max-height: 22px;
+ *height: 22px;
+ overflow: hidden;
+ line-height: 9px
+ }
+
+ .video-duration.video-duration-detail div {
+ color: #fff
+ }
+
+ .sponsored-default {
+ background-color: #f7f6c6;
+ padding-bottom: 0!important
+ }
+
+ .trc_rbox .sponsored {
+ position: relative;
+ display: block;
+ overflow: visible;
+ height: auto;
+ width: auto;
+ padding-right: 0;
+ text-align: right;
+ font-size: 9px
+ }
+
+ .sponsored-url {
+ white-space: nowrap;
+ float: left;
+ overflow: hidden;
+ width: 98%;
+ height: auto;
+ margin-top: 0;
+ margin-left: 1px;
+ padding-bottom: 2px;
+ color: green;
+ font-size: 9px;
+ text-decoration: underline
+ }
+
+ .sponsored-default .video-title {
+ height: 26px;
+ font-size: 11px;
+ line-height: 13px;
+ max-height: 26px;
+ *height: 26px
+ }
+
+ .sponsored-default .thumbBlock img {}
+
+ .sponsored-default .thumbBlock {
+ text-align: center;
+ background-color: transparent
+ }
+
+ .trc_rbox_div {
+ height: 410px
+ }
+
+ .videoCube {
+ direction: ltr;
+ font-size: 11px;
+ margin: 0;
+ color: #000;
+ border-width: 0
+ }
+
+ .videoCube.vertical:first-child {
+ border-top: 0;
+ margin-top: 0
+ }
+
+ .videoCube.horizontal:first-child {
+ border-left: 0;
+ margin-left: 0
+ }
+
+ .trc_rbox .trc_rbox_div .videoCube.vertical {
+ _margin-top: expression(this.previousSibling==null?'0': 'default')
+ }
+
+ .trc_rbox .trc_rbox_div .videoCube.horizontal {
+ _margin-left: expression(this.previousSibling==null?'0': 'default')
+ }
+
+ div.videoCube:hover,
+ .videoCube_hover {
+ background-color: #EBF0FF;
+ color: #000
+ }
+
+ .videoCube .thumbBlock {
+ margin-right: 5px;
+ margin-left: 1px;
+ border-style: solid
+ }
+
+ .videoCube a img,
+ .videoCube img {
+ border-color: #ececec
+ }
+
+ .videoCube .overlayImg {}
+
+ .videoCube .video-label-box {
+ margin-left: 81px
+ }
+
+ .videoCube .video-label dt {
+ font-weight: 700
+ }
+
+ .videoCube .video-title {
+ height: auto;
+ margin-bottom: 3px;
+ white-space: normal
+ }
+
+ .videoCube .trc_inline_detail_spacer {
+ display: inline-block;
+ white-space: pre
+ }
+
+ .sponsored-default {
+ padding-bottom: 0
+ }
+
+ .loading-animation {
+ font-family: sans;
+ font-size: 1.5em;
+ text-align: center;
+ color: gray;
+ height: 100%
+ }
+
+ .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-weight: 700;
+ text-decoration: none;
+ color: #000
+ }
+
+ .trc_header_right_part {
+ position: absolute;
+ left: 50%;
+ top: 0
+ }
+
+ .branding_div {
+ overflow: visible;
+ float: right
+ }
+
+ .branding_div img {
+ height: 20px
+ }
+
+ .trc_pager div {
+ float: left;
+ font-family: sans;
+ cursor: pointer;
+ margin-left: 2px;
+ margin-right: 2px
+ }
+
+ .trc_pager_prev,
+ .trc_pager_next {}
+
+ .trc_pager {
+ font-weight: 400
+ }
+
+ .trc_pager_pages {
+ display: block!important
+ }
+
+ .trc_related_container div.horizontal {
+ float: left;
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ -webkit-box-sizing: border-box
+ }
+
+ .trc_related_container div.vertical {}
+
+ .trc_related_container DIV.videoCube.thumbnail_top .thumbBlock,
+ .trc_related_container DIV.videoCube.thumbnail_bottom .thumbBlock {
+ float: none
+ }
+
+ @media screen and (-webkit-min-device-pixel-ratio:0) {
+ .sponsored-url {
+ margin-top: 2px
+ }
+ }
+
+ .vidiscovery-note {
+ display: none
+ }
+
+ .pager_disabled {
+ cursor: auto
+ }
+
+ .videoCube .thumbBlock .trc_sponsored_overlay_base {
+ display: block;
+ width: auto;
+ margin-left: 0;
+ position: absolute;
+ color: #fff!important
+ }
+
+ .videoCube .thumbBlock .trc_sponsored_overlay {
+ filter: alpha(opacity=60);
+ opacity: .6;
+ display: block;
+ position: absolute;
+ *left: 0
+ }
+
+ .videoCube .thumbBlock .trc_sponsored_overlay_base .sponsored {
+ position: relative;
+ display: block;
+ overflow: visible;
+ width: auto;
+ text-align: center;
+ padding: 0 5px;
+ margin-top: 0
+ }
+
+ .videoCube .thumbBlock .trc_sponsored_overlay_base.round .trc_sponsored_overlay {
+ border-radius: 4px;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px
+ }
+
+ .videoCube .thumbBlock .trc_sponsored_overlay_base.round {
+ margin-left: 4px
+ }
+
+ .thumbnail-emblem {
+ background-color: transparent;
+ background-repeat: no-repeat;
+ position: absolute;
+ z-index: 50
+ }
+
+ .playerCube .thumbnail-overlay,
+ .videoCube .thumbnail-overlay {
+ position: absolute;
+ background-color: transparent;
+ background-repeat: no-repeat;
+ z-index: 50
+ }
+
+ .videoCube:hover .thumbnail-overlay,
+ .videoCube_hover .thumbnail-overlay {
+ position: absolute;
+ background-color: transparent;
+ background-repeat: no-repeat;
+ z-index: 50
+ }
+
+ .thumbnail_bottom {
+ padding-bottom: 8px
+ }
+
+ .trc_pager_next img,
+ trc_pager_next pager_disabled img,
+ trc_pager_next:hover img {
+ -moz-transform: scaleX(-1);
+ -o-transform: scaleX(-1);
+ -webkit-transform: scaleX(-1);
+ transform: scaleX(-1);
+ filter: FlipH;
+ -ms-filter: "FlipH"
+ }
+
+ .trc_cover_iframe {
+ position: absolute;
+ z-index: 100000;
+ top: 0;
+ left: 0;
+ background: #000;
+ opacity: .4;
+ filter: alpha(opacity=40);
+ border: 0
+ }
+
+ .trc_lightbox_base {
+ z-index: 100001;
+ position: fixed
+ }
+
+ .trc_lightbox_overlay {
+ background-color: transparent;
+ position: absolute;
+ z-index: 100002
+ }
+
+ .trc_lightbox_transparent {
+ position: absolute;
+ z-index: 100003
+ }
+
+ #trc_lightbox_header {
+ font-family: "Trebuchet MS", Helvetica, sans-serif
+ }
+
+ .trc_whitebox {
+ background-color: #fff;
+ position: relative;
+ z-index: 100004;
+ padding: 0 20px 20px;
+ margin: 0 auto;
+ border: 2px solid #000;
+ -moz-box-shadow: 3px 3px 20px #000;
+ -webkit-box-shadow: 3px 3px 20px #000;
+ box-shadow: 3px 3px 20px #000;
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+ box-sizing: content-box;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px
+ }
+
+ .trc_whiteboxCloseButton {
+ width: 32px;
+ height: 32px;
+ border: 0;
+ position: absolute;
+ right: -16px;
+ top: -14px;
+ cursor: pointer;
+ background: url(//cdn.taboola.com/taboola-generic/close.png) no-repeat top left transparent;
+ color: #fff;
+ color: transparent;
+ font-size: 0
+ }
+
+ .trc_related_container .logoDiv {
+ font-family: Arial, Helvetica, sans-serif;
+ white-space: nowrap;
+ font-size: 9px
+ }
+
+ .trc_related_container .logoDiv a {
+ font-size: 9px;
+ text-decoration: none!important;
+ color: #000;
+ margin-right: 1px;
+ vertical-align: text-bottom
+ }
+
+ .logoDiv a span:hover {
+ text-decoration: underline
+ }
+
+ .trc_rbox_header .logoDiv {
+ font-size: 1em
+ }
+
+ .trc_related_container .vertical-start-shade {
+ background-image: url(//cdn.taboola.com/taboola-generic/shade-down.png);
+ height: 10px;
+ width: auto;
+ position: absolute;
+ z-index: 5
+ }
+
+ .trc_related_container .vertical-end-shade {
+ background-image: url(//cdn.taboola.com/taboola-generic/shade-up.png);
+ height: 10px;
+ width: auto;
+ position: absolute;
+ z-index: 5
+ }
+
+ .trc_related_container .horizontal-start-shade {
+ background-image: url(//cdn.taboola.com/taboola-generic/shade-right.png);
+ height: auto;
+ width: 10px;
+ position: absolute;
+ z-index: 5
+ }
+
+ .trc_related_container .horizontal-end-shade {
+ background-image: url(//cdn.taboola.com/taboola-generic/shade-left.png);
+ height: auto;
+ width: 10px;
+ position: absolute;
+ z-index: 5
+ }
+
+ .trc_rbox_container.trc_expandable {
+ overflow: hidden;
+ max-height: 0;
+ transition-property: max-height;
+ -webkit-transition-property: max-height;
+ -moz-transition-property: max-height;
+ -o-transition-property: max-height;
+ -webkit-transform: translateZ(0);
+ -moz-transform: translateZ(0);
+ -ms-transform: translateZ(0);
+ -o-transform: translateZ(0);
+ transform: translateZ(0)
+ }
+
+ DIV.trc_autoplaylist-box {
+ margin: 6px auto 0;
+ border: 0;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ padding: 4px;
+ font-family: "Trebuchet MS", Helvetica, sans-serif;
+ width: 320px;
+ background: #191919;
+ filter: progid: DXImageTransform.Microsoft.gradient(startColorstr='#191919', endColorstr='#393939');
+ -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#191919, endColorstr=#393939)";
+ background: -webkit-gradient(linear, left top, left bottom, from(#191919), to(#393939));
+ background: -moz-linear-gradient(top, #191919, #393939);
+ background: linear-gradient(top, #191919, #393939)
+ }
+
+ DIV.trc_autoplaylist-box .trc-next-up-header {
+ font-size: 14px;
+ color: #CCC;
+ float: left;
+ line-height: 31px;
+ margin: 0 4px 0 6px;
+ overflow: hidden;
+ white-space: nowrap
+ }
+
+ DIV.trc_autoplaylist-box .trc-next-up-countdown {
+ color: #fff;
+ font-weight: 700;
+ font-size: 15px;
+ padding-left: 4px
+ }
+
+ DIV.trc_autoplaylist-box .nextup {
+ cursor: pointer
+ }
+
+ DIV.trc_autoplaylist-box .nextup .thumbblock {
+ border: solid #FEFEFE 1px;
+ margin-right: 10px
+ }
+
+ DIV.trc_autoplaylist-box:hover .nextup .thumbblock SPAN.thumbnail-overlay {
+ background-image: url(//cdn.taboola.com/taboola-generic/lightbox-overlay.png)
+ }
+
+ DIV.trc_autoplaylist-box .nextup .video-label-box {
+ color: #fff;
+ font-weight: 700;
+ font-size: 12px;
+ line-height: 14px
+ }
+
+ .trc-syndication-link {
+ text-decoration: none;
+ color: inherit
+ }
+
+ .playerCube {
+ width: 100%;
+ height: 100%;
+ position: relative;
+ cursor: pointer
+ }
+
+ .playerCube .thumbnail-overlay {
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: 0;
+ position: absolute
+ }
+
+ .trc_related_container .whatsThisSyndicated {
+ position: absolute;
+ cursor: pointer
+ }
+
+ .trc_related_container .whatsThisSyndicated.a-bottom-right,
+ .trc_related_container .static-text.bottom-right {
+ bottom: 0;
+ right: 0
+ }
+
+ .trc_related_container .whatsThisSyndicated.a-top-right,
+ .trc_related_container .static-text.top-right {
+ top: 0;
+ right: 0
+ }
+
+ .trc_related_container .whatsThisSyndicated.a-bottom-left,
+ .trc_related_container .static-text.bottom-left {
+ bottom: 0;
+ left: 0
+ }
+
+ .trc_related_container .whatsThisSyndicated.a-top-left,
+ .trc_related_container .static-text.top-left {
+ top: 0;
+ left: 0
+ }
+
+ .trc_related_container .videoCube .thumbBlock .branding {
+ position: absolute;
+ bottom: 0;
+ z-index: 1;
+ width: 100%;
+ margin: 0;
+ padding: 5px 0;
+ text-align: center
+ }
+
+ .syndicatedItem .branding {
+ margin: 0
+ }
+
+ .trc_related_container .videoCube .thumbBlock .static-text {
+ position: absolute;
+ z-index: 1;
+ margin: 0;
+ padding: 5px;
+ background-color: #000;
+ color: #fff;
+ display: block;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: 400;
+ text-align: left;
+ text-decoration: none;
+ opacity: .7
+ }
+
+ .trc_related_container .static-text.top {
+ width: 100%;
+ top: 0;
+ padding: 5px 0
+ }
+
+ .trc_related_container .static-text.bottom {
+ width: 100%;
+ bottom: 0;
+ padding: 2px 0
+ }
+
+ .trc-inplayer-rbox {
+ background: #333;
+ background: rgba(30, 30, 30, .9);
+ *background: #333;
+ bottom: 0;
+ position: absolute;
+ height: 300px;
+ text-align: center
+ }
+
+ .trc-inplayer-rbox .trc_rbox_container {
+ margin: 50px auto 0;
+ width: 640px
+ }
+
+ .trc_rbox.trc-auto-size {
+ width: 100%;
+ height: 100%
+ }
+
+ .videoCube.thumbnail_under .thumbBlock {
+ margin-left: 0;
+ margin-right: 0
+ }
+
+ .videoCube.thumbnail_under .label-box-overlay {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ background: #000;
+ opacity: .75;
+ filter: alpha(opacity=75);
+ top: 0;
+ _display: none
+ }
+
+ .videoCube.thumbnail_under .video-labels-anchor {
+ width: 100%;
+ height: auto;
+ position: absolute;
+ z-index: 1;
+ left: 0;
+ bottom: 0;
+ min-height: 2.58em;
+ max-height: 2.58em;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ _background-color: #CECECE;
+ -webkit-transition: all .2s linear;
+ -moz-transition: all .2s linear;
+ -ms-transition: all .2s linear;
+ -o-transition: all .2s linear;
+ transition: all .2s linear;
+ line-height: 1.25em
+ }
+
+ .videoCube.thumbnail_under .video-labels-anchor span.video-title,
+ .videoCube.thumbnail_under .video-labels-anchor span.branding {
+ position: relative;
+ z-index: 1;
+ padding: 0 3px;
+ margin: 0
+ }
+
+ .videoCube.thumbnail_under .video-title {
+ min-height: 2.58em
+ }
+
+ .videoCube.thumbnail_under:hover .video-labels-anchor {
+ opacity: 1;
+ max-height: 6.45em
+ }
+
+ .trc-auto-size .trc_rbox_outer .trc_rbox_div {
+ height: auto;
+ width: auto
+ }
+
+ .trc-auto-size .trc_rbox_div .videoCube {
+ height: auto
+ }
+
+ .trc-auto-size .trc_rbox_div .videoCube.trc-first-recommendation {
+ margin-top: 0
+ }
+
+ .trc_rbox .trc_rbox_outer .trc_rbox_div .videoCube.trc-first-in-row {
+ margin-left: 0
+ }
+
+ .trc_elastic .trc_rbox {
+ width: auto
+ }
+
+ .trc_elastic .videoCube {
+ overflow: hidden
+ }
+
+ .trc_elastic .videoCube .thumbBlock {
+ display: block;
+ background-color: transparent;
+ background-position: center center;
+ background-repeat: no-repeat;
+ background-size: cover;
+ position: absolute;
+ display: inline-block;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ margin-left: 0;
+ margin-right: 0
+ }
+
+ .trc_elastic .thumbBlock_holder {
+ position: relative;
+ width: 100%
+ }
+
+ .trc_elastic .thumbnail_start .thumbBlock_holder {
+ float: left;
+ margin-right: 10px
+ }
+
+ .trc_elastic .videoCube_aspect {
+ width: 1px
+ }
+
+ .trc_elastic .trc_rbox .trc_rbox_div {
+ height: auto
+ }
+
+ .trc_elastic .video-label-box {
+ display: block
+ }
+
+ .trc_user_adChoice_btn {
+ background: url(//cdn.taboola.com/libtrc/static/thumbnails/3aadbb71016ecd7a194bbe2791777e9a.png) no-repeat scroll 0 0 rgba(255, 255, 255, .7);
+ border-radius: 0 0 0 5px;
+ width: 16px;
+ height: 16px;
+ position: absolute;
+ right: 0;
+ top: 0;
+ z-index: 9000;
+ cursor: pointer;
+ visibility: hidden
+ }
+
+ .trc_user_adChoice_anchor {
+ width: 100%;
+ height: 100%;
+ position: absolute
+ }
+
+ .videoCube:hover .trc_user_adChoice_btn,
+ .videoCube_hover .trc_user_adChoice_btn {
+ visibility: visible
+ }
+
+ .trc_user_exclude_btn {
+ background: url(//cdn.taboola.com/libtrc/static/thumbnails/f539211219b796ffbb49949997c764f0.png) no-repeat scroll 0 0 transparent;
+ width: 12px;
+ height: 12px;
+ position: absolute;
+ right: 2px;
+ top: 2px;
+ z-index: 9000;
+ cursor: pointer;
+ visibility: hidden
+ }
+
+ .trc_undo_btn {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 11px;
+ line-height: 14px;
+ font-weight: 400;
+ color: #36C;
+ text-decoration: underline;
+ cursor: pointer;
+ position: absolute;
+ right: 2px;
+ top: 2px;
+ padding: 0 1px;
+ z-index: 11000;
+ visibility: hidden
+ }
+
+ .videoCube:hover .trc_user_exclude_btn,
+ .videoCube_hover .trc_user_exclude_btn,
+ .trc_user_excluded.videoCube:hover .trc_undo_btn,
+ .trc_user_excluded.videoCube_hover .trc_undo_btn,
+ .trc_undo_btn.trc_anchor {
+ visibility: visible
+ }
+
+ .videoCube.trc_user_excluded .trc_user_exclude_btn {
+ visibility: hidden
+ }
+
+ .trc_fade {
+ opacity: 0;
+ filter: alpha(opacity=0);
+ visibility: hidden;
+ transition: opacity 500ms 0s, visibility 0s 500ms;
+ -webkit-transition: opacity 500ms 0s, visibility 0s 500ms;
+ -moz-transition: opacity 500ms 0s, visibility 0s 500ms;
+ -o-transition: opacity 500ms 0s, visibility 0s 500ms;
+ -ms-transition: opacity 500ms 0s, visibility 0s 500ms
+ }
+
+ .trc_fade.trc_in,
+ .trc_user_excluded .trc_exclude_overlay {
+ visibility: visible;
+ opacity: 1;
+ filter: alpha(opacity=100);
+ transition-delay: 0s, 0s;
+ -moz-transition-delay: 0s, 0s;
+ -webkit-transition-delay: 0s, 0s;
+ -o-transition-delay: 0s, 0s;
+ -ms-transition-delay: 0s, 0s
+ }
+
+ .trc_excludable .trc_exclude_overlay {
+ position: absolute;
+ z-index: 10000;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ cursor: default;
+ background-color: #fff
+ }
+
+ .videoCube.trc_excludable .trc_exclude_overlay.trc_fade {
+ filter: alpha(opacity=80)\9
+ }
+
+ .videoCube.trc_user_excluded .trc_exclude_overlay {
+ visibility: visible;
+ opacity: .8;
+ filter: alpha(opacity=80)
+ }
+
+ .videoCube.trc_user_excluded .thumbBlock {
+ filter: url("data:image/svg+xml;utf8,&lt;svg xmlns='http://www.w3.org/2000/svg'&gt;&lt;filter id='grayscale'&gt;&lt;feColorMatrix type='matrix' values='0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0' /&gt;&lt;/filter&gt;&lt;/svg&gt;#grayscale");
+ filter: gray;
+ -webkit-filter: grayscale(100%)
+ }
+
+ .videoCube.trc_user_excluded:hover a .video-label-box .video-title,
+ .videoCube_hover.trc_user_excluded a .video-label-box .video-title {
+ text-decoration: none
+ }
+
+ .videoCube.trc_user_excluded a .video-label-box *,
+ .videoCube.trc_user_excluded:hover a .video-label-box *,
+ .videoCube_hover.trc_user_excluded a .video-label-box * {
+ color: #000;
+ overflow: hidden;
+ -webkit-transition: color 500ms 0s;
+ -moz-transition: color 500ms 0s;
+ -ms-transition: color 500ms 0s;
+ -o-transition: color 500ms 0s;
+ transition: color 500ms 0s
+ }
+
+ .videoCube.trc_user_excluded a .video-label-box .label-box-overlay {
+ background-color: #BBB;
+ -webkit-transition: background-color 500ms 0s;
+ -moz-transition: background-color 500ms 0s;
+ -ms-transition: background-color 500ms 0s;
+ -o-transition: background-color 500ms 0s;
+ transition: background-color 500ms 0s
+ }
+
+ .videoCube.thumbnail_under.trc_user_excluded .video-labels-anchor,
+ .videoCube.thumbnail_under.trc_user_excluded:hover .video-labels-anchor {
+ max-height: none;
+ -webkit-transition: none;
+ -moz-transition: none;
+ -ms-transition: none;
+ -o-transition: none;
+ transition: none
+ }
+
+ .trc_related_container .trc_clearer {
+ clear: both;
+ height: 0;
+ overflow: hidden;
+ font-size: 0;
+ line-height: 0;
+ visibility: hidden
+ }
+
+ .link-adc {
+ float: right!important
+ }
+
+ .trc-widget-footer .link-adc a .trc_adc_wrapper,
+ .trc_header_ext .link-adc a .trc_adc_wrapper {
+ vertical-align: baseline;
+ height: 15px;
+ width: 19px;
+ display: inline-block;
+ position: relative
+ }
+
+ .trc-widget-footer .link-adc a .trc_adc_s_logo,
+ .trc_header_ext .link-adc a .trc_adc_s_logo,
+ .trc-widget-footer .link-adc a .trc_adc_b_logo,
+ .trc_header_ext .link-adc a .trc_adc_b_logo {
+ vertical-align: middle;
+ height: 15px;
+ display: inline-block;
+ margin-top: -1px
+ }
+
+ .trc-widget-footer .link-adc a .trc_adc_s_logo,
+ .trc_header_ext .link-adc a .trc_adc_s_logo {
+ width: 19px;
+ background: url(//cdn.taboola.com/libtrc/static/thumbnails/3aadbb71016ecd7a194bbe2791777e9a.png) no-repeat!important
+ }
+
+ .trc-widget-footer .link-adc a .trc_adc_b_logo,
+ .trc_header_ext .link-adc a .trc_adc_b_logo {
+ width: 77px;
+ background: #fff url(//cdn.taboola.com/libtrc/static/thumbnails/0781f9c5a8637d1e162874f157460048.png) no-repeat!important;
+ right: -1px;
+ display: none;
+ position: absolute
+ }
+
+ .trc_mobile_disclosure_link,
+ .trc_mobile_attribution_link,
+ .trc_mobile_adc_link {
+ display: none
+ }
+
+ .trc_desktop_disclosure_link,
+ .trc_desktop_attribution_link,
+ .trc_desktop_adc_link {
+ display: inline
+ }
+
+ @media screen and (max-width:767px) {
+ .trc_mobile_disclosure_link {
+ display: inline
+ }
+ .trc_mobile_attribution_link {
+ display: inline
+ }
+ .trc_mobile_adc_link {
+ display: inline
+ }
+ .trc_desktop_disclosure_link {
+ display: none
+ }
+ .trc_desktop_attribution_link {
+ display: none
+ }
+ .trc_desktop_adc_link {
+ display: none
+ }
+ }
+
+ .trc_in_iframe .trc_mobile_attribution_link,
+ .trc_in_iframe .trc_mobile_disclosure_link {
+ display: inline
+ }
+
+ .trc_in_iframe .trc_desktop_attribution_link,
+ .trc_in_iframe .trc_desktop_disclosure_link {
+ display: none
+ }
+
+ .trc_related_container .logoDiv,
+ .trc_related_container .trc_header_ext .logoDiv {
+ float: right
+ }
+
+ .trc_related_container .logoDiv+.logoDiv {
+ margin-right: 2px
+ }
+
+ .trc_related_container .attribution-disclosure-link-sponsored,
+ .trc_related_container .attribution-disclosure-link-hybrid {
+ display: none
+ }
+
+ .trc_related_container .trc-content-sponsored .attribution-disclosure-link-sponsored {
+ display: block
+ }
+
+ .trc_related_container .trc-content-hybrid .attribution-disclosure-link-hybrid {
+ display: block
+ }
+
+ .trc_related_container .trc-widget-footer:hover a span,
+ .trc_related_container .trc_header_ext:hover a span {
+ text-decoration: underline!important
+ }
+
+ .logoDiv a span.trc_logos_v_align {
+ display: inline-block!important;
+ font-size: 15px!important;
+ line-height: 1em!important;
+ width: 0!important
+ }
+
+ .trc_related_container .trc_header_ext:hover a span.trc_logos_v_align,
+ .trc_related_container .trc_header_ext:hover a span.trc_adc_wrapper,
+ .trc_related_container .trc-widget-footer:hover a span.trc_logos_v_align,
+ .trc_related_container .trc-widget-footer:hover a span.trc_adc_wrapper {
+ text-decoration: none!important
+ }
+
+ .trc_related_container {
+ clear: both
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ max-height: 88.0px;
+ *height: 88.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .video-label,
+ .ab_ab_thumbnails-d_3x3_size-round-10 .sponsored,
+ .ab_ab_thumbnails-d_3x3_size-round-10 .sponsored-url {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .trc_rbox_header {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 div.videoCube:hover,
+ .ab_ab_thumbnails-d_3x3_size-round-10 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 div.sponsored-default:hover,
+ .ab_ab_thumbnails-d_3x3_size-round-10 div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .videoCube:hover .thumbnail-overlay,
+ .ab_ab_thumbnails-d_3x3_size-round-10 .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .trc_pager_prev:hover,
+ .ab_ab_thumbnails-d_3x3_size-round-10 .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .video-label-box {
+ text-align: left;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .trc_pager_prev,
+ .ab_ab_thumbnails-d_3x3_size-round-10 .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .playerCube:hover .thumbnail-overlay,
+ .ab_ab_thumbnails-d_3x3_size-round-10 .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .playerCube div.videoCube:hover,
+ .ab_ab_thumbnails-d_3x3_size-round-10 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 div.syndicatedItem:hover,
+ .ab_ab_thumbnails-d_3x3_size-round-10 div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .syndicatedItem .video-title {
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #000000;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ max-height: 88.0px;
+ *height: 88.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .video-label,
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .sponsored,
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .sponsored-url {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .trc_rbox_header {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor div.videoCube:hover,
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor div.sponsored-default:hover,
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .videoCube:hover .thumbnail-overlay,
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .trc_pager_prev:hover,
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .video-label-box {
+ text-align: left;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .trc_pager_prev,
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .playerCube:hover .thumbnail-overlay,
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .playerCube div.videoCube:hover,
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor div.syndicatedItem:hover,
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .syndicatedItem .video-title {
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #000000;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ max-height: 88.0px;
+ *height: 88.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .video-label,
+ .ab_ab_thumbnails-d_3x3_size-round-20 .sponsored,
+ .ab_ab_thumbnails-d_3x3_size-round-20 .sponsored-url {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .trc_rbox_header {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 div.videoCube:hover,
+ .ab_ab_thumbnails-d_3x3_size-round-20 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 div.sponsored-default:hover,
+ .ab_ab_thumbnails-d_3x3_size-round-20 div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .videoCube:hover .thumbnail-overlay,
+ .ab_ab_thumbnails-d_3x3_size-round-20 .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .trc_pager_prev:hover,
+ .ab_ab_thumbnails-d_3x3_size-round-20 .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .video-label-box {
+ text-align: left;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .trc_pager_prev,
+ .ab_ab_thumbnails-d_3x3_size-round-20 .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .playerCube:hover .thumbnail-overlay,
+ .ab_ab_thumbnails-d_3x3_size-round-20 .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .playerCube div.videoCube:hover,
+ .ab_ab_thumbnails-d_3x3_size-round-20 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 div.syndicatedItem:hover,
+ .ab_ab_thumbnails-d_3x3_size-round-20 div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .syndicatedItem .video-title {
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #000000;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .ab_thumbnails-a_abp-mode .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 15.0px;
+ line-height: 20.0px;
+ font-weight: bold;
+ max-height: 80.0px;
+ *height: 80.0px;
+ color: #333;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a_abp-mode .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a_abp-mode .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_thumbnails-a_abp-mode .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_thumbnails-a_abp-mode .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-a_abp-mode .video-label,
+ .ab_thumbnails-a_abp-mode .sponsored,
+ .ab_thumbnails-a_abp-mode .sponsored-url {
+ font-family: 'Open Sans';
+ }
+
+ .ab_thumbnails-a_abp-mode .trc_rbox_header {
+ font-family: 'Open Sans';
+ font-size: 14.0px;
+ font-weight: bold;
+ text-decoration: none;
+ color: #333;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0 0 6px 0;
+ }
+
+ .ab_thumbnails-a_abp-mode .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_thumbnails-a_abp-mode .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_thumbnails-a_abp-mode .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a_abp-mode .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a_abp-mode .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a_abp-mode .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a_abp-mode .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a_abp-mode .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a_abp-mode .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_thumbnails-a_abp-mode .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_thumbnails-a_abp-mode .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .ab_thumbnails-a_abp-mode div.videoCube:hover,
+ .ab_thumbnails-a_abp-mode div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-a_abp-mode .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_thumbnails-a_abp-mode div.sponsored-default:hover,
+ .ab_thumbnails-a_abp-mode div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_thumbnails-a_abp-mode .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-a_abp-mode .videoCube:hover .thumbnail-overlay,
+ .ab_thumbnails-a_abp-mode .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-a_abp-mode .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-a_abp-mode .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-a_abp-mode div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-a_abp-mode .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-a_abp-mode .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_thumbnails-a_abp-mode .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-a_abp-mode .trc_pager_prev:hover,
+ .ab_thumbnails-a_abp-mode .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-a_abp-mode .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-a_abp-mode .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-a_abp-mode div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-a_abp-mode .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_thumbnails-a_abp-mode .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-a_abp-mode .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_thumbnails-a_abp-mode .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-a_abp-mode .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_thumbnails-a_abp-mode {
+ width: 300px;
+ _width: 300px;
+ border-width: 1px 0 1px 0;
+ border-style: solid;
+ border-color: #CCC;
+ padding: 5px 0px 5px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_thumbnails-a_abp-mode .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-a_abp-mode .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-a_abp-mode .trc_pager_prev,
+ .ab_thumbnails-a_abp-mode .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a_abp-mode .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a_abp-mode .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a_abp-mode .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_thumbnails-a_abp-mode .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-a_abp-mode .playerCube:hover .thumbnail-overlay,
+ .ab_thumbnails-a_abp-mode .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-a_abp-mode .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_thumbnails-a_abp-mode .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_thumbnails-a_abp-mode .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-a_abp-mode .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a_abp-mode .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a_abp-mode .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-a_abp-mode .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a_abp-mode .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a_abp-mode .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_thumbnails-a_abp-mode .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_thumbnails-a_abp-mode .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-a_abp-mode .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a_abp-mode .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a_abp-mode .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a_abp-mode .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_thumbnails-a_abp-mode .playerCube div.videoCube:hover,
+ .ab_thumbnails-a_abp-mode div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-a_abp-mode .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_thumbnails-a_abp-mode div.syndicatedItem:hover,
+ .ab_thumbnails-a_abp-mode div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-a_abp-mode div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-a_abp-mode .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .ab_thumbnails-a_abp-mode .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-a_abp-mode .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_thumbnails-a_abp-mode .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-a_abp-mode .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-a_abp-mode .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_thumbnails-a_abp-mode .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_thumbnails-a_abp-mode .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-a_abp-mode .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a_abp-mode .syndicatedItem .video-title {
+ max-height: 60.0px;
+ *height: 60.0px;
+ color: #333;
+ font-family: 'Open Sans';
+ font-size: 15.0px;
+ line-height: 20.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a_abp-mode .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a_abp-mode .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-a_abp-mode .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a_abp-mode .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a_abp-mode .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a_abp-mode .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a_abp-mode .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a_abp-mode .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a_abp-mode .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a_abp-mode .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Open Sans';
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_thumbnails-a_abp-mode .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_thumbnails-a_abp-mode .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_thumbnails-a_abp-mode .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .ab_thumbnails-d-2_row .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ max-height: 88.0px;
+ *height: 88.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d-2_row .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d-2_row .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_thumbnails-d-2_row .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_thumbnails-d-2_row .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-d-2_row .video-label,
+ .ab_thumbnails-d-2_row .sponsored,
+ .ab_thumbnails-d-2_row .sponsored-url {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ }
+
+ .ab_thumbnails-d-2_row .trc_rbox_header {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .ab_thumbnails-d-2_row .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_thumbnails-d-2_row .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_thumbnails-d-2_row .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d-2_row .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d-2_row .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d-2_row .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d-2_row .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d-2_row .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d-2_row .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_thumbnails-d-2_row .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_thumbnails-d-2_row .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .ab_thumbnails-d-2_row div.videoCube:hover,
+ .ab_thumbnails-d-2_row div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-d-2_row .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_thumbnails-d-2_row div.sponsored-default:hover,
+ .ab_thumbnails-d-2_row div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_thumbnails-d-2_row .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-d-2_row .videoCube:hover .thumbnail-overlay,
+ .ab_thumbnails-d-2_row .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-d-2_row .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-d-2_row .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-d-2_row div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-d-2_row .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-d-2_row .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_thumbnails-d-2_row .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-d-2_row .trc_pager_prev:hover,
+ .ab_thumbnails-d-2_row .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-d-2_row .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-d-2_row .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-d-2_row div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-d-2_row .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_thumbnails-d-2_row .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-d-2_row .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_thumbnails-d-2_row .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-d-2_row .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_thumbnails-d-2_row {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_thumbnails-d-2_row .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-d-2_row .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-d-2_row .trc_pager_prev,
+ .ab_thumbnails-d-2_row .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d-2_row .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d-2_row .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d-2_row .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_thumbnails-d-2_row .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-d-2_row .playerCube:hover .thumbnail-overlay,
+ .ab_thumbnails-d-2_row .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-d-2_row .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_thumbnails-d-2_row .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_thumbnails-d-2_row .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-d-2_row .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d-2_row .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d-2_row .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-d-2_row .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d-2_row .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d-2_row .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_thumbnails-d-2_row .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_thumbnails-d-2_row .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-d-2_row .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d-2_row .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d-2_row .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d-2_row .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_thumbnails-d-2_row .playerCube div.videoCube:hover,
+ .ab_thumbnails-d-2_row div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-d-2_row .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_thumbnails-d-2_row div.syndicatedItem:hover,
+ .ab_thumbnails-d-2_row div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-d-2_row div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-d-2_row .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .ab_thumbnails-d-2_row .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-d-2_row .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_thumbnails-d-2_row .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-d-2_row .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-d-2_row .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_thumbnails-d-2_row .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_thumbnails-d-2_row .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-d-2_row .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d-2_row .syndicatedItem .video-title {
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #000000;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d-2_row .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d-2_row .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-d-2_row .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d-2_row .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d-2_row .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d-2_row .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d-2_row .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d-2_row .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d-2_row .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d-2_row .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_thumbnails-d-2_row .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_thumbnails-d-2_row .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_thumbnails-d-2_row .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .ab_thumbnails-d_3x3 .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ max-height: 88.0px;
+ *height: 88.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_3x3 .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_3x3 .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_thumbnails-d_3x3 .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_thumbnails-d_3x3 .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-d_3x3 .video-label,
+ .ab_thumbnails-d_3x3 .sponsored,
+ .ab_thumbnails-d_3x3 .sponsored-url {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ }
+
+ .ab_thumbnails-d_3x3 .trc_rbox_header {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .ab_thumbnails-d_3x3 .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_thumbnails-d_3x3 .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_thumbnails-d_3x3 .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_3x3 .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_3x3 .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_3x3 .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_3x3 .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_3x3 .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_3x3 .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_thumbnails-d_3x3 .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_thumbnails-d_3x3 .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .ab_thumbnails-d_3x3 div.videoCube:hover,
+ .ab_thumbnails-d_3x3 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-d_3x3 .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_thumbnails-d_3x3 div.sponsored-default:hover,
+ .ab_thumbnails-d_3x3 div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_thumbnails-d_3x3 .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-d_3x3 .videoCube:hover .thumbnail-overlay,
+ .ab_thumbnails-d_3x3 .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-d_3x3 .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-d_3x3 .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-d_3x3 div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-d_3x3 .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-d_3x3 .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_thumbnails-d_3x3 .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-d_3x3 .trc_pager_prev:hover,
+ .ab_thumbnails-d_3x3 .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-d_3x3 .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-d_3x3 .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-d_3x3 div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-d_3x3 .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_thumbnails-d_3x3 .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-d_3x3 .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_thumbnails-d_3x3 .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-d_3x3 .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_thumbnails-d_3x3 {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_thumbnails-d_3x3 .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-d_3x3 .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-d_3x3 .trc_pager_prev,
+ .ab_thumbnails-d_3x3 .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_3x3 .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_3x3 .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_3x3 .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_thumbnails-d_3x3 .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-d_3x3 .playerCube:hover .thumbnail-overlay,
+ .ab_thumbnails-d_3x3 .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-d_3x3 .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_thumbnails-d_3x3 .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_thumbnails-d_3x3 .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-d_3x3 .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_3x3 .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_3x3 .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-d_3x3 .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_3x3 .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_3x3 .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_thumbnails-d_3x3 .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_thumbnails-d_3x3 .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-d_3x3 .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_3x3 .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_3x3 .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_3x3 .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_thumbnails-d_3x3 .playerCube div.videoCube:hover,
+ .ab_thumbnails-d_3x3 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-d_3x3 .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_thumbnails-d_3x3 div.syndicatedItem:hover,
+ .ab_thumbnails-d_3x3 div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-d_3x3 div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-d_3x3 .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .ab_thumbnails-d_3x3 .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-d_3x3 .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_thumbnails-d_3x3 .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-d_3x3 .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-d_3x3 .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_thumbnails-d_3x3 .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_thumbnails-d_3x3 .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-d_3x3 .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_3x3 .syndicatedItem .video-title {
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #000000;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_3x3 .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_3x3 .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-d_3x3 .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_3x3 .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_3x3 .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_3x3 .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_3x3 .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_3x3 .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_3x3 .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_3x3 .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_thumbnails-d_3x3 .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_thumbnails-d_3x3 .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_thumbnails-d_3x3 .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 18.0px;
+ line-height: 24.0px;
+ font-weight: bold;
+ max-height: 96.0px;
+ *height: 96.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .video-label,
+ .ab_thumbnails-d_3x3-bigger-titles .sponsored,
+ .ab_thumbnails-d_3x3-bigger-titles .sponsored-url {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .trc_rbox_header {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles div.videoCube:hover,
+ .ab_thumbnails-d_3x3-bigger-titles div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles div.sponsored-default:hover,
+ .ab_thumbnails-d_3x3-bigger-titles div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .videoCube:hover .thumbnail-overlay,
+ .ab_thumbnails-d_3x3-bigger-titles .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .trc_pager_prev:hover,
+ .ab_thumbnails-d_3x3-bigger-titles .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .trc_pager_prev,
+ .ab_thumbnails-d_3x3-bigger-titles .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .playerCube:hover .thumbnail-overlay,
+ .ab_thumbnails-d_3x3-bigger-titles .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .playerCube div.videoCube:hover,
+ .ab_thumbnails-d_3x3-bigger-titles div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles div.syndicatedItem:hover,
+ .ab_thumbnails-d_3x3-bigger-titles div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .syndicatedItem .video-title {
+ max-height: 72.0px;
+ *height: 72.0px;
+ color: #000000;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 18.0px;
+ line-height: 24.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .ab_thumbnails-d_abp-mode .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_abp-mode .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_abp-mode .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_thumbnails-d_abp-mode .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_thumbnails-d_abp-mode .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-d_abp-mode .video-label,
+ .ab_thumbnails-d_abp-mode .sponsored,
+ .ab_thumbnails-d_abp-mode .sponsored-url {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ }
+
+ .ab_thumbnails-d_abp-mode .trc_rbox_header {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .ab_thumbnails-d_abp-mode .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_thumbnails-d_abp-mode .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_thumbnails-d_abp-mode .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_abp-mode .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_abp-mode .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_abp-mode .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_abp-mode .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_abp-mode .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_abp-mode .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_thumbnails-d_abp-mode .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_thumbnails-d_abp-mode .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .ab_thumbnails-d_abp-mode div.videoCube:hover,
+ .ab_thumbnails-d_abp-mode div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-d_abp-mode .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_thumbnails-d_abp-mode div.sponsored-default:hover,
+ .ab_thumbnails-d_abp-mode div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_thumbnails-d_abp-mode .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-d_abp-mode .videoCube:hover .thumbnail-overlay,
+ .ab_thumbnails-d_abp-mode .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-d_abp-mode .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-d_abp-mode .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-d_abp-mode div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-d_abp-mode .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-d_abp-mode .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_thumbnails-d_abp-mode .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-d_abp-mode .trc_pager_prev:hover,
+ .ab_thumbnails-d_abp-mode .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-d_abp-mode .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-d_abp-mode .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-d_abp-mode div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-d_abp-mode .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_thumbnails-d_abp-mode .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-d_abp-mode .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_thumbnails-d_abp-mode .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-d_abp-mode .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_thumbnails-d_abp-mode {
+ width: 300px;
+ _width: 300px;
+ border-width: 1px 0px 1px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 10px 0px 10px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_thumbnails-d_abp-mode .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-d_abp-mode .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-d_abp-mode .trc_pager_prev,
+ .ab_thumbnails-d_abp-mode .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_abp-mode .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_abp-mode .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_abp-mode .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_thumbnails-d_abp-mode .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-d_abp-mode .playerCube:hover .thumbnail-overlay,
+ .ab_thumbnails-d_abp-mode .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-d_abp-mode .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_thumbnails-d_abp-mode .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_thumbnails-d_abp-mode .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-d_abp-mode .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_abp-mode .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_abp-mode .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-d_abp-mode .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_abp-mode .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_abp-mode .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_thumbnails-d_abp-mode .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_thumbnails-d_abp-mode .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-d_abp-mode .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_abp-mode .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_abp-mode .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_abp-mode .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_thumbnails-d_abp-mode .playerCube div.videoCube:hover,
+ .ab_thumbnails-d_abp-mode div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-d_abp-mode .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_thumbnails-d_abp-mode div.syndicatedItem:hover,
+ .ab_thumbnails-d_abp-mode div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-d_abp-mode div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-d_abp-mode .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .ab_thumbnails-d_abp-mode .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-d_abp-mode .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_thumbnails-d_abp-mode .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-d_abp-mode .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-d_abp-mode .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_thumbnails-d_abp-mode .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_thumbnails-d_abp-mode .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-d_abp-mode .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_abp-mode .syndicatedItem .video-title {
+ max-height: 44.0px;
+ *height: 44.0px;
+ color: #000000;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_abp-mode .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_abp-mode .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-d_abp-mode .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_abp-mode .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_abp-mode .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_abp-mode .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_abp-mode .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_abp-mode .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_abp-mode .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_abp-mode .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_thumbnails-d_abp-mode .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_thumbnails-d_abp-mode .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_thumbnails-d_abp-mode .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .ab_thumbnails-d_gb-read-more .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ max-height: 88.0px;
+ *height: 88.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_gb-read-more .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_gb-read-more .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_thumbnails-d_gb-read-more .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_thumbnails-d_gb-read-more .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-d_gb-read-more .video-label,
+ .ab_thumbnails-d_gb-read-more .sponsored,
+ .ab_thumbnails-d_gb-read-more .sponsored-url {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ }
+
+ .ab_thumbnails-d_gb-read-more .trc_rbox_header {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .ab_thumbnails-d_gb-read-more .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_thumbnails-d_gb-read-more .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_thumbnails-d_gb-read-more .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_gb-read-more .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_gb-read-more .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_gb-read-more .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_gb-read-more .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_gb-read-more .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_gb-read-more .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_thumbnails-d_gb-read-more .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_thumbnails-d_gb-read-more .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .ab_thumbnails-d_gb-read-more div.videoCube:hover,
+ .ab_thumbnails-d_gb-read-more div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-d_gb-read-more .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_thumbnails-d_gb-read-more div.sponsored-default:hover,
+ .ab_thumbnails-d_gb-read-more div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_thumbnails-d_gb-read-more .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-d_gb-read-more .videoCube:hover .thumbnail-overlay,
+ .ab_thumbnails-d_gb-read-more .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-d_gb-read-more .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-d_gb-read-more .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-d_gb-read-more div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-d_gb-read-more .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-d_gb-read-more .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_thumbnails-d_gb-read-more .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-d_gb-read-more .trc_pager_prev:hover,
+ .ab_thumbnails-d_gb-read-more .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-d_gb-read-more .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-d_gb-read-more .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-d_gb-read-more div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-d_gb-read-more .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_thumbnails-d_gb-read-more .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-d_gb-read-more .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_thumbnails-d_gb-read-more .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-d_gb-read-more .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_thumbnails-d_gb-read-more {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_thumbnails-d_gb-read-more .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-d_gb-read-more .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-d_gb-read-more .trc_pager_prev,
+ .ab_thumbnails-d_gb-read-more .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_gb-read-more .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_gb-read-more .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_gb-read-more .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_thumbnails-d_gb-read-more .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-d_gb-read-more .playerCube:hover .thumbnail-overlay,
+ .ab_thumbnails-d_gb-read-more .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-d_gb-read-more .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_thumbnails-d_gb-read-more .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_thumbnails-d_gb-read-more .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-d_gb-read-more .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_gb-read-more .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_gb-read-more .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-d_gb-read-more .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_gb-read-more .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_gb-read-more .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_thumbnails-d_gb-read-more .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_thumbnails-d_gb-read-more .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-d_gb-read-more .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_gb-read-more .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_gb-read-more .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_gb-read-more .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_thumbnails-d_gb-read-more .playerCube div.videoCube:hover,
+ .ab_thumbnails-d_gb-read-more div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-d_gb-read-more .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_thumbnails-d_gb-read-more div.syndicatedItem:hover,
+ .ab_thumbnails-d_gb-read-more div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-d_gb-read-more div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-d_gb-read-more .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .ab_thumbnails-d_gb-read-more .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-d_gb-read-more .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_thumbnails-d_gb-read-more .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-d_gb-read-more .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-d_gb-read-more .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_thumbnails-d_gb-read-more .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_thumbnails-d_gb-read-more .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-d_gb-read-more .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_gb-read-more .syndicatedItem .video-title {
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #000000;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_gb-read-more .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_gb-read-more .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-d_gb-read-more .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_gb-read-more .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_gb-read-more .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_gb-read-more .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_gb-read-more .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_gb-read-more .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_gb-read-more .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_gb-read-more .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_thumbnails-d_gb-read-more .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_thumbnails-d_gb-read-more .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_thumbnails-d_gb-read-more .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .ab_thumbnails-d_row-read-more .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ max-height: 88.0px;
+ *height: 88.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_row-read-more .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_row-read-more .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_thumbnails-d_row-read-more .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_thumbnails-d_row-read-more .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-d_row-read-more .video-label,
+ .ab_thumbnails-d_row-read-more .sponsored,
+ .ab_thumbnails-d_row-read-more .sponsored-url {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ }
+
+ .ab_thumbnails-d_row-read-more .trc_rbox_header {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .ab_thumbnails-d_row-read-more .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_thumbnails-d_row-read-more .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_thumbnails-d_row-read-more .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_row-read-more .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_row-read-more .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_row-read-more .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_row-read-more .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_row-read-more .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_row-read-more .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_thumbnails-d_row-read-more .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_thumbnails-d_row-read-more .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .ab_thumbnails-d_row-read-more div.videoCube:hover,
+ .ab_thumbnails-d_row-read-more div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-d_row-read-more .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_thumbnails-d_row-read-more div.sponsored-default:hover,
+ .ab_thumbnails-d_row-read-more div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_thumbnails-d_row-read-more .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-d_row-read-more .videoCube:hover .thumbnail-overlay,
+ .ab_thumbnails-d_row-read-more .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-d_row-read-more .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-d_row-read-more .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-d_row-read-more div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-d_row-read-more .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-d_row-read-more .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_thumbnails-d_row-read-more .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-d_row-read-more .trc_pager_prev:hover,
+ .ab_thumbnails-d_row-read-more .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-d_row-read-more .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-d_row-read-more .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-d_row-read-more div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-d_row-read-more .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_thumbnails-d_row-read-more .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-d_row-read-more .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_thumbnails-d_row-read-more .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-d_row-read-more .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_thumbnails-d_row-read-more {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_thumbnails-d_row-read-more .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-d_row-read-more .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-d_row-read-more .trc_pager_prev,
+ .ab_thumbnails-d_row-read-more .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_row-read-more .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_row-read-more .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_row-read-more .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_thumbnails-d_row-read-more .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-d_row-read-more .playerCube:hover .thumbnail-overlay,
+ .ab_thumbnails-d_row-read-more .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-d_row-read-more .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_thumbnails-d_row-read-more .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_thumbnails-d_row-read-more .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-d_row-read-more .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_row-read-more .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_row-read-more .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-d_row-read-more .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_row-read-more .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_row-read-more .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_thumbnails-d_row-read-more .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_thumbnails-d_row-read-more .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-d_row-read-more .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_row-read-more .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_row-read-more .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_row-read-more .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_thumbnails-d_row-read-more .playerCube div.videoCube:hover,
+ .ab_thumbnails-d_row-read-more div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-d_row-read-more .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_thumbnails-d_row-read-more div.syndicatedItem:hover,
+ .ab_thumbnails-d_row-read-more div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-d_row-read-more div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-d_row-read-more .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .ab_thumbnails-d_row-read-more .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-d_row-read-more .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_thumbnails-d_row-read-more .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-d_row-read-more .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-d_row-read-more .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_thumbnails-d_row-read-more .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_thumbnails-d_row-read-more .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-d_row-read-more .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_row-read-more .syndicatedItem .video-title {
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #000000;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_row-read-more .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_row-read-more .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-d_row-read-more .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_row-read-more .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_row-read-more .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_row-read-more .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_row-read-more .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_row-read-more .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_row-read-more .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_row-read-more .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_thumbnails-d_row-read-more .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_thumbnails-d_row-read-more .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_thumbnails-d_row-read-more .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .ab_thumbnails-d_size-round-10 .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ max-height: 88.0px;
+ *height: 88.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-10 .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-10 .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_thumbnails-d_size-round-10 .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_thumbnails-d_size-round-10 .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-d_size-round-10 .video-label,
+ .ab_thumbnails-d_size-round-10 .sponsored,
+ .ab_thumbnails-d_size-round-10 .sponsored-url {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ }
+
+ .ab_thumbnails-d_size-round-10 .trc_rbox_header {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .ab_thumbnails-d_size-round-10 .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_thumbnails-d_size-round-10 .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_thumbnails-d_size-round-10 .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-10 .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-10 .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-10 .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-10 .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-10 .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-10 .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_thumbnails-d_size-round-10 .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_thumbnails-d_size-round-10 .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .ab_thumbnails-d_size-round-10 div.videoCube:hover,
+ .ab_thumbnails-d_size-round-10 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-d_size-round-10 .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_thumbnails-d_size-round-10 div.sponsored-default:hover,
+ .ab_thumbnails-d_size-round-10 div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_thumbnails-d_size-round-10 .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-d_size-round-10 .videoCube:hover .thumbnail-overlay,
+ .ab_thumbnails-d_size-round-10 .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-d_size-round-10 .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-d_size-round-10 .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-d_size-round-10 div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-d_size-round-10 .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-d_size-round-10 .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_thumbnails-d_size-round-10 .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-d_size-round-10 .trc_pager_prev:hover,
+ .ab_thumbnails-d_size-round-10 .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-d_size-round-10 .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-d_size-round-10 .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-d_size-round-10 div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-d_size-round-10 .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_thumbnails-d_size-round-10 .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-d_size-round-10 .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_thumbnails-d_size-round-10 .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-d_size-round-10 .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_thumbnails-d_size-round-10 {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_thumbnails-d_size-round-10 .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-d_size-round-10 .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-d_size-round-10 .trc_pager_prev,
+ .ab_thumbnails-d_size-round-10 .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-10 .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-10 .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-10 .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_thumbnails-d_size-round-10 .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-d_size-round-10 .playerCube:hover .thumbnail-overlay,
+ .ab_thumbnails-d_size-round-10 .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-d_size-round-10 .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_thumbnails-d_size-round-10 .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_thumbnails-d_size-round-10 .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-d_size-round-10 .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-10 .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-10 .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-d_size-round-10 .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-10 .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-10 .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-10 .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_thumbnails-d_size-round-10 .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-d_size-round-10 .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-10 .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-10 .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-10 .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-10 .playerCube div.videoCube:hover,
+ .ab_thumbnails-d_size-round-10 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-d_size-round-10 .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_thumbnails-d_size-round-10 div.syndicatedItem:hover,
+ .ab_thumbnails-d_size-round-10 div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-d_size-round-10 div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-d_size-round-10 .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .ab_thumbnails-d_size-round-10 .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-d_size-round-10 .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_thumbnails-d_size-round-10 .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-d_size-round-10 .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-d_size-round-10 .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_thumbnails-d_size-round-10 .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_thumbnails-d_size-round-10 .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-d_size-round-10 .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-10 .syndicatedItem .video-title {
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #000000;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-10 .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-10 .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-d_size-round-10 .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-10 .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-10 .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-10 .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-10 .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-10 .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-10 .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-10 .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_thumbnails-d_size-round-10 .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_thumbnails-d_size-round-10 .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_thumbnails-d_size-round-10 .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ max-height: 88.0px;
+ *height: 88.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .video-label,
+ .ab_thumbnails-d_size-round-10-factor .sponsored,
+ .ab_thumbnails-d_size-round-10-factor .sponsored-url {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .trc_rbox_header {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor div.videoCube:hover,
+ .ab_thumbnails-d_size-round-10-factor div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor div.sponsored-default:hover,
+ .ab_thumbnails-d_size-round-10-factor div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .videoCube:hover .thumbnail-overlay,
+ .ab_thumbnails-d_size-round-10-factor .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .trc_pager_prev:hover,
+ .ab_thumbnails-d_size-round-10-factor .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .trc_pager_prev,
+ .ab_thumbnails-d_size-round-10-factor .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .playerCube:hover .thumbnail-overlay,
+ .ab_thumbnails-d_size-round-10-factor .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .playerCube div.videoCube:hover,
+ .ab_thumbnails-d_size-round-10-factor div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor div.syndicatedItem:hover,
+ .ab_thumbnails-d_size-round-10-factor div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .syndicatedItem .video-title {
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #000000;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .ab_thumbnails-d_size-round-20 .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ max-height: 88.0px;
+ *height: 88.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-20 .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-20 .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_thumbnails-d_size-round-20 .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_thumbnails-d_size-round-20 .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-d_size-round-20 .video-label,
+ .ab_thumbnails-d_size-round-20 .sponsored,
+ .ab_thumbnails-d_size-round-20 .sponsored-url {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ }
+
+ .ab_thumbnails-d_size-round-20 .trc_rbox_header {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .ab_thumbnails-d_size-round-20 .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_thumbnails-d_size-round-20 .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_thumbnails-d_size-round-20 .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-20 .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-20 .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-20 .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-20 .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-20 .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-20 .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_thumbnails-d_size-round-20 .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_thumbnails-d_size-round-20 .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .ab_thumbnails-d_size-round-20 div.videoCube:hover,
+ .ab_thumbnails-d_size-round-20 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-d_size-round-20 .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_thumbnails-d_size-round-20 div.sponsored-default:hover,
+ .ab_thumbnails-d_size-round-20 div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_thumbnails-d_size-round-20 .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-d_size-round-20 .videoCube:hover .thumbnail-overlay,
+ .ab_thumbnails-d_size-round-20 .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-d_size-round-20 .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-d_size-round-20 .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-d_size-round-20 div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-d_size-round-20 .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-d_size-round-20 .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_thumbnails-d_size-round-20 .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-d_size-round-20 .trc_pager_prev:hover,
+ .ab_thumbnails-d_size-round-20 .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-d_size-round-20 .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-d_size-round-20 .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-d_size-round-20 div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-d_size-round-20 .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_thumbnails-d_size-round-20 .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-d_size-round-20 .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_thumbnails-d_size-round-20 .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-d_size-round-20 .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_thumbnails-d_size-round-20 {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_thumbnails-d_size-round-20 .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-d_size-round-20 .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-d_size-round-20 .trc_pager_prev,
+ .ab_thumbnails-d_size-round-20 .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-20 .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-20 .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-20 .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_thumbnails-d_size-round-20 .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-d_size-round-20 .playerCube:hover .thumbnail-overlay,
+ .ab_thumbnails-d_size-round-20 .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-d_size-round-20 .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_thumbnails-d_size-round-20 .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_thumbnails-d_size-round-20 .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-d_size-round-20 .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-20 .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-20 .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-d_size-round-20 .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-20 .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-20 .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-20 .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_thumbnails-d_size-round-20 .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-d_size-round-20 .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-20 .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-20 .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-20 .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_thumbnails-d_size-round-20 .playerCube div.videoCube:hover,
+ .ab_thumbnails-d_size-round-20 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-d_size-round-20 .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_thumbnails-d_size-round-20 div.syndicatedItem:hover,
+ .ab_thumbnails-d_size-round-20 div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-d_size-round-20 div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-d_size-round-20 .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .ab_thumbnails-d_size-round-20 .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-d_size-round-20 .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_thumbnails-d_size-round-20 .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-d_size-round-20 .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-d_size-round-20 .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_thumbnails-d_size-round-20 .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_thumbnails-d_size-round-20 .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-d_size-round-20 .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-20 .syndicatedItem .video-title {
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #000000;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-20 .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-20 .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-d_size-round-20 .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-20 .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-20 .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-20 .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-20 .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-20 .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-20 .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-d_size-round-20 .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_thumbnails-d_size-round-20 .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_thumbnails-d_size-round-20 .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_thumbnails-d_size-round-20 .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 17.0px;
+ line-height: 23.0px;
+ font-weight: normal;
+ max-height: 69.0px;
+ *height: 69.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .video-label,
+ .ab_thumbnails-h_1x3-landscape .sponsored,
+ .ab_thumbnails-h_1x3-landscape .sponsored-url {
+ font-family: 'Fira Sans';
+ }
+
+ .ab_thumbnails-h_1x3-landscape .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .ab_thumbnails-h_1x3-landscape div.videoCube:hover,
+ .ab_thumbnails-h_1x3-landscape div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_thumbnails-h_1x3-landscape div.sponsored-default:hover,
+ .ab_thumbnails-h_1x3-landscape div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .videoCube:hover .thumbnail-overlay,
+ .ab_thumbnails-h_1x3-landscape .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-h_1x3-landscape div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .trc_pager_prev:hover,
+ .ab_thumbnails-h_1x3-landscape .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-h_1x3-landscape div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_thumbnails-h_1x3-landscape .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_thumbnails-h_1x3-landscape {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .trc_pager_prev,
+ .ab_thumbnails-h_1x3-landscape .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .playerCube:hover .thumbnail-overlay,
+ .ab_thumbnails-h_1x3-landscape .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .playerCube div.videoCube:hover,
+ .ab_thumbnails-h_1x3-landscape div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_thumbnails-h_1x3-landscape div.syndicatedItem:hover,
+ .ab_thumbnails-h_1x3-landscape div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-h_1x3-landscape div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .syndicatedItem .video-title {
+ max-height: 46.0px;
+ *height: 46.0px;
+ color: #000000;
+ font-family: 'Fira Sans';
+ font-size: 17.0px;
+ line-height: 23.0px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: 'Fira Sans';
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 34%;
+ _width: 34%;
+ }
+
+ .ab_thumbnails-h_1x5 .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 17.0px;
+ line-height: 23.0px;
+ font-weight: normal;
+ max-height: 69.0px;
+ *height: 69.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x5 .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x5 .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_thumbnails-h_1x5 .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_thumbnails-h_1x5 .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-h_1x5 .video-label,
+ .ab_thumbnails-h_1x5 .sponsored,
+ .ab_thumbnails-h_1x5 .sponsored-url {
+ font-family: 'Fira Sans';
+ }
+
+ .ab_thumbnails-h_1x5 .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .ab_thumbnails-h_1x5 .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_thumbnails-h_1x5 .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_thumbnails-h_1x5 .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x5 .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x5 .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x5 .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x5 .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x5 .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x5 .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_thumbnails-h_1x5 .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_thumbnails-h_1x5 .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .ab_thumbnails-h_1x5 div.videoCube:hover,
+ .ab_thumbnails-h_1x5 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-h_1x5 .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_thumbnails-h_1x5 div.sponsored-default:hover,
+ .ab_thumbnails-h_1x5 div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_thumbnails-h_1x5 .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-h_1x5 .videoCube:hover .thumbnail-overlay,
+ .ab_thumbnails-h_1x5 .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-h_1x5 .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-h_1x5 .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-h_1x5 div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-h_1x5 .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-h_1x5 .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_thumbnails-h_1x5 .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-h_1x5 .trc_pager_prev:hover,
+ .ab_thumbnails-h_1x5 .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-h_1x5 .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-h_1x5 .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-h_1x5 div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-h_1x5 .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_thumbnails-h_1x5 .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-h_1x5 .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_thumbnails-h_1x5 .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-h_1x5 .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_thumbnails-h_1x5 {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_thumbnails-h_1x5 .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-h_1x5 .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-h_1x5 .trc_pager_prev,
+ .ab_thumbnails-h_1x5 .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x5 .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x5 .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x5 .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_thumbnails-h_1x5 .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-h_1x5 .playerCube:hover .thumbnail-overlay,
+ .ab_thumbnails-h_1x5 .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-h_1x5 .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_thumbnails-h_1x5 .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_thumbnails-h_1x5 .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-h_1x5 .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x5 .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x5 .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-h_1x5 .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x5 .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x5 .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x5 .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_thumbnails-h_1x5 .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-h_1x5 .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x5 .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x5 .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x5 .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x5 .playerCube div.videoCube:hover,
+ .ab_thumbnails-h_1x5 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-h_1x5 .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_thumbnails-h_1x5 div.syndicatedItem:hover,
+ .ab_thumbnails-h_1x5 div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-h_1x5 div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-h_1x5 .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .ab_thumbnails-h_1x5 .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-h_1x5 .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_thumbnails-h_1x5 .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-h_1x5 .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-h_1x5 .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_thumbnails-h_1x5 .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_thumbnails-h_1x5 .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-h_1x5 .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x5 .syndicatedItem .video-title {
+ max-height: 46.0px;
+ *height: 46.0px;
+ color: #000000;
+ font-family: 'Fira Sans';
+ font-size: 17.0px;
+ line-height: 23.0px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x5 .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x5 .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-h_1x5 .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x5 .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x5 .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x5 .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x5 .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x5 .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x5 .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x5 .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: 'Fira Sans';
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_thumbnails-h_1x5 .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_thumbnails-h_1x5 .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_thumbnails-h_1x5 .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 34%;
+ _width: 34%;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 17.0px;
+ line-height: 23.0px;
+ font-weight: normal;
+ max-height: 69.0px;
+ *height: 69.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .video-label,
+ .ab_thumbnails-h_1x5-landscape .sponsored,
+ .ab_thumbnails-h_1x5-landscape .sponsored-url {
+ font-family: 'Fira Sans';
+ }
+
+ .ab_thumbnails-h_1x5-landscape .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .ab_thumbnails-h_1x5-landscape div.videoCube:hover,
+ .ab_thumbnails-h_1x5-landscape div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_thumbnails-h_1x5-landscape div.sponsored-default:hover,
+ .ab_thumbnails-h_1x5-landscape div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .videoCube:hover .thumbnail-overlay,
+ .ab_thumbnails-h_1x5-landscape .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-h_1x5-landscape div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .trc_pager_prev:hover,
+ .ab_thumbnails-h_1x5-landscape .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-h_1x5-landscape div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_thumbnails-h_1x5-landscape .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_thumbnails-h_1x5-landscape {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .trc_pager_prev,
+ .ab_thumbnails-h_1x5-landscape .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .playerCube:hover .thumbnail-overlay,
+ .ab_thumbnails-h_1x5-landscape .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .playerCube div.videoCube:hover,
+ .ab_thumbnails-h_1x5-landscape div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_thumbnails-h_1x5-landscape div.syndicatedItem:hover,
+ .ab_thumbnails-h_1x5-landscape div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-h_1x5-landscape div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .syndicatedItem .video-title {
+ max-height: 46.0px;
+ *height: 46.0px;
+ color: #000000;
+ font-family: 'Fira Sans';
+ font-size: 17.0px;
+ line-height: 23.0px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: 'Fira Sans';
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 34%;
+ _width: 34%;
+ }
+
+ .ab_thumbnails-h_abp-mode .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 17.0px;
+ line-height: 23.0px;
+ font-weight: normal;
+ max-height: 69.0px;
+ *height: 69.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_abp-mode .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_abp-mode .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_thumbnails-h_abp-mode .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_thumbnails-h_abp-mode .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-h_abp-mode .video-label,
+ .ab_thumbnails-h_abp-mode .sponsored,
+ .ab_thumbnails-h_abp-mode .sponsored-url {
+ font-family: 'Fira Sans';
+ }
+
+ .ab_thumbnails-h_abp-mode .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .ab_thumbnails-h_abp-mode .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_thumbnails-h_abp-mode .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_thumbnails-h_abp-mode .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_abp-mode .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_abp-mode .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_abp-mode .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_abp-mode .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_abp-mode .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_abp-mode .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_thumbnails-h_abp-mode .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_thumbnails-h_abp-mode .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .ab_thumbnails-h_abp-mode div.videoCube:hover,
+ .ab_thumbnails-h_abp-mode div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-h_abp-mode .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_thumbnails-h_abp-mode div.sponsored-default:hover,
+ .ab_thumbnails-h_abp-mode div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_thumbnails-h_abp-mode .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-h_abp-mode .videoCube:hover .thumbnail-overlay,
+ .ab_thumbnails-h_abp-mode .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-h_abp-mode .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-h_abp-mode .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-h_abp-mode div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-h_abp-mode .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-h_abp-mode .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_thumbnails-h_abp-mode .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-h_abp-mode .trc_pager_prev:hover,
+ .ab_thumbnails-h_abp-mode .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-h_abp-mode .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-h_abp-mode .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-h_abp-mode div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-h_abp-mode .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_thumbnails-h_abp-mode .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-h_abp-mode .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_thumbnails-h_abp-mode .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-h_abp-mode .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_thumbnails-h_abp-mode {
+ width: 300px;
+ _width: 300px;
+ border-width: 1px 1px 1px 1px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 10px 5px 10px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_thumbnails-h_abp-mode .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-h_abp-mode .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-h_abp-mode .trc_pager_prev,
+ .ab_thumbnails-h_abp-mode .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_abp-mode .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_abp-mode .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_abp-mode .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_thumbnails-h_abp-mode .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-h_abp-mode .playerCube:hover .thumbnail-overlay,
+ .ab_thumbnails-h_abp-mode .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-h_abp-mode .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_thumbnails-h_abp-mode .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_thumbnails-h_abp-mode .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-h_abp-mode .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_abp-mode .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_abp-mode .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-h_abp-mode .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_abp-mode .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_abp-mode .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_thumbnails-h_abp-mode .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_thumbnails-h_abp-mode .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-h_abp-mode .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_abp-mode .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_abp-mode .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-h_abp-mode .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_thumbnails-h_abp-mode .playerCube div.videoCube:hover,
+ .ab_thumbnails-h_abp-mode div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-h_abp-mode .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_thumbnails-h_abp-mode div.syndicatedItem:hover,
+ .ab_thumbnails-h_abp-mode div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-h_abp-mode div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-h_abp-mode .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .ab_thumbnails-h_abp-mode .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-h_abp-mode .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_thumbnails-h_abp-mode .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-h_abp-mode .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-h_abp-mode .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_thumbnails-h_abp-mode .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_thumbnails-h_abp-mode .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-h_abp-mode .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_abp-mode .syndicatedItem .video-title {
+ max-height: 46.0px;
+ *height: 46.0px;
+ color: #000000;
+ font-family: 'Fira Sans';
+ font-size: 17.0px;
+ line-height: 23.0px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_abp-mode .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_abp-mode .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-h_abp-mode .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_abp-mode .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_abp-mode .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_abp-mode .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_abp-mode .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_abp-mode .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_abp-mode .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-h_abp-mode .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: 'Fira Sans';
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_thumbnails-h_abp-mode .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_thumbnails-h_abp-mode .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_thumbnails-h_abp-mode .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 34%;
+ _width: 34%;
+ }
+
+ .ab_thumbnails-i_1x5 .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 17.0px;
+ line-height: 23.0px;
+ font-weight: normal;
+ max-height: 69.0px;
+ *height: 69.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-i_1x5 .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-i_1x5 .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_thumbnails-i_1x5 .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_thumbnails-i_1x5 .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-i_1x5 .video-label,
+ .ab_thumbnails-i_1x5 .sponsored,
+ .ab_thumbnails-i_1x5 .sponsored-url {
+ font-family: 'Fira Sans';
+ }
+
+ .ab_thumbnails-i_1x5 .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .ab_thumbnails-i_1x5 .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_thumbnails-i_1x5 .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_thumbnails-i_1x5 .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-i_1x5 .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-i_1x5 .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-i_1x5 .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-i_1x5 .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-i_1x5 .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-i_1x5 .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_thumbnails-i_1x5 .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_thumbnails-i_1x5 .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .ab_thumbnails-i_1x5 div.videoCube:hover,
+ .ab_thumbnails-i_1x5 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-i_1x5 .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_thumbnails-i_1x5 div.sponsored-default:hover,
+ .ab_thumbnails-i_1x5 div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_thumbnails-i_1x5 .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-i_1x5 .videoCube:hover .thumbnail-overlay,
+ .ab_thumbnails-i_1x5 .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-i_1x5 .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-i_1x5 .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-i_1x5 div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-i_1x5 .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-i_1x5 .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_thumbnails-i_1x5 .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-i_1x5 .trc_pager_prev:hover,
+ .ab_thumbnails-i_1x5 .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-i_1x5 .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-i_1x5 .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-i_1x5 div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-i_1x5 .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_thumbnails-i_1x5 .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-i_1x5 .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_thumbnails-i_1x5 .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-i_1x5 .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_thumbnails-i_1x5 {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_thumbnails-i_1x5 .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-i_1x5 .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-i_1x5 .trc_pager_prev,
+ .ab_thumbnails-i_1x5 .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-i_1x5 .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-i_1x5 .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-i_1x5 .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_thumbnails-i_1x5 .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-i_1x5 .playerCube:hover .thumbnail-overlay,
+ .ab_thumbnails-i_1x5 .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-i_1x5 .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_thumbnails-i_1x5 .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_thumbnails-i_1x5 .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-i_1x5 .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-i_1x5 .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-i_1x5 .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-i_1x5 .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-i_1x5 .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-i_1x5 .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_thumbnails-i_1x5 .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_thumbnails-i_1x5 .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-i_1x5 .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-i_1x5 .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-i_1x5 .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-i_1x5 .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_thumbnails-i_1x5 .playerCube div.videoCube:hover,
+ .ab_thumbnails-i_1x5 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-i_1x5 .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_thumbnails-i_1x5 div.syndicatedItem:hover,
+ .ab_thumbnails-i_1x5 div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-i_1x5 div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-i_1x5 .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .ab_thumbnails-i_1x5 .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-i_1x5 .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_thumbnails-i_1x5 .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-i_1x5 .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-i_1x5 .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_thumbnails-i_1x5 .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_thumbnails-i_1x5 .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-i_1x5 .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-i_1x5 .syndicatedItem .video-title {
+ max-height: 46.0px;
+ *height: 46.0px;
+ color: #000000;
+ font-family: 'Fira Sans';
+ font-size: 17.0px;
+ line-height: 23.0px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-i_1x5 .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-i_1x5 .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-i_1x5 .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-i_1x5 .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-i_1x5 .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-i_1x5 .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-i_1x5 .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-i_1x5 .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-i_1x5 .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-i_1x5 .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: 'Fira Sans';
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_thumbnails-i_1x5 .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_thumbnails-i_1x5 .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_thumbnails-i_1x5 .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 34%;
+ _width: 34%;
+ }
+
+ .ab_thumbnails-k_abp-mode .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 17.0px;
+ line-height: 23.0px;
+ font-weight: normal;
+ max-height: 69.0px;
+ *height: 69.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_abp-mode .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_abp-mode .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_thumbnails-k_abp-mode .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_thumbnails-k_abp-mode .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-k_abp-mode .video-label,
+ .ab_thumbnails-k_abp-mode .sponsored,
+ .ab_thumbnails-k_abp-mode .sponsored-url {
+ font-family: 'Fira Sans';
+ }
+
+ .ab_thumbnails-k_abp-mode .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .ab_thumbnails-k_abp-mode .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_thumbnails-k_abp-mode .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_thumbnails-k_abp-mode .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_abp-mode .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_abp-mode .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_abp-mode .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_abp-mode .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_abp-mode .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_abp-mode .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_thumbnails-k_abp-mode .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_thumbnails-k_abp-mode .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .ab_thumbnails-k_abp-mode div.videoCube:hover,
+ .ab_thumbnails-k_abp-mode div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-k_abp-mode .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_thumbnails-k_abp-mode div.sponsored-default:hover,
+ .ab_thumbnails-k_abp-mode div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_thumbnails-k_abp-mode .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-k_abp-mode .videoCube:hover .thumbnail-overlay,
+ .ab_thumbnails-k_abp-mode .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-k_abp-mode .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-k_abp-mode .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-k_abp-mode div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-k_abp-mode .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-k_abp-mode .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_thumbnails-k_abp-mode .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-k_abp-mode .trc_pager_prev:hover,
+ .ab_thumbnails-k_abp-mode .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-k_abp-mode .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-k_abp-mode .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-k_abp-mode div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-k_abp-mode .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_thumbnails-k_abp-mode .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-k_abp-mode .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_thumbnails-k_abp-mode .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-k_abp-mode .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_thumbnails-k_abp-mode {
+ width: 300px;
+ _width: 300px;
+ border-width: 1px 1px 1px 1px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 8px 8px 0px 8px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_thumbnails-k_abp-mode .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-k_abp-mode .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-k_abp-mode .trc_pager_prev,
+ .ab_thumbnails-k_abp-mode .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_abp-mode .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_abp-mode .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_abp-mode .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_thumbnails-k_abp-mode .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-k_abp-mode .playerCube:hover .thumbnail-overlay,
+ .ab_thumbnails-k_abp-mode .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-k_abp-mode .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_thumbnails-k_abp-mode .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_thumbnails-k_abp-mode .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-k_abp-mode .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_abp-mode .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_abp-mode .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-k_abp-mode .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_abp-mode .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_abp-mode .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_thumbnails-k_abp-mode .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_thumbnails-k_abp-mode .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-k_abp-mode .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_abp-mode .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_abp-mode .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_abp-mode .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_thumbnails-k_abp-mode .playerCube div.videoCube:hover,
+ .ab_thumbnails-k_abp-mode div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-k_abp-mode .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_thumbnails-k_abp-mode div.syndicatedItem:hover,
+ .ab_thumbnails-k_abp-mode div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-k_abp-mode div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-k_abp-mode .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .ab_thumbnails-k_abp-mode .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-k_abp-mode .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_thumbnails-k_abp-mode .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-k_abp-mode .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-k_abp-mode .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_thumbnails-k_abp-mode .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_thumbnails-k_abp-mode .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-k_abp-mode .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_abp-mode .syndicatedItem .video-title {
+ max-height: 46.0px;
+ *height: 46.0px;
+ color: #000000;
+ font-family: 'Fira Sans';
+ font-size: 17.0px;
+ line-height: 23.0px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_abp-mode .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_abp-mode .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-k_abp-mode .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_abp-mode .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_abp-mode .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_abp-mode .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_abp-mode .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_abp-mode .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_abp-mode .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_abp-mode .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: 'Fira Sans';
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_thumbnails-k_abp-mode .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_thumbnails-k_abp-mode .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_thumbnails-k_abp-mode .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 34%;
+ _width: 34%;
+ }
+
+ .ab_thumbnails-k_backup .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 17.0px;
+ line-height: 23.0px;
+ font-weight: normal;
+ max-height: 69.0px;
+ *height: 69.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_backup .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_backup .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_thumbnails-k_backup .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_thumbnails-k_backup .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-k_backup .video-label,
+ .ab_thumbnails-k_backup .sponsored,
+ .ab_thumbnails-k_backup .sponsored-url {
+ font-family: 'Fira Sans';
+ }
+
+ .ab_thumbnails-k_backup .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .ab_thumbnails-k_backup .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_thumbnails-k_backup .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_thumbnails-k_backup .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_backup .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_backup .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_backup .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_backup .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_backup .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_backup .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_thumbnails-k_backup .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_thumbnails-k_backup .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .ab_thumbnails-k_backup div.videoCube:hover,
+ .ab_thumbnails-k_backup div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-k_backup .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_thumbnails-k_backup div.sponsored-default:hover,
+ .ab_thumbnails-k_backup div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_thumbnails-k_backup .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-k_backup .videoCube:hover .thumbnail-overlay,
+ .ab_thumbnails-k_backup .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-k_backup .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-k_backup .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-k_backup div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-k_backup .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-k_backup .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_thumbnails-k_backup .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-k_backup .trc_pager_prev:hover,
+ .ab_thumbnails-k_backup .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-k_backup .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-k_backup .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-k_backup div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-k_backup .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_thumbnails-k_backup .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-k_backup .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_thumbnails-k_backup .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-k_backup .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_thumbnails-k_backup {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_thumbnails-k_backup .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-k_backup .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-k_backup .trc_pager_prev,
+ .ab_thumbnails-k_backup .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_backup .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_backup .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_backup .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_thumbnails-k_backup .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-k_backup .playerCube:hover .thumbnail-overlay,
+ .ab_thumbnails-k_backup .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-k_backup .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_thumbnails-k_backup .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_thumbnails-k_backup .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-k_backup .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_backup .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_backup .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-k_backup .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_backup .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_backup .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_thumbnails-k_backup .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_thumbnails-k_backup .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-k_backup .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_backup .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_backup .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_backup .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_thumbnails-k_backup .playerCube div.videoCube:hover,
+ .ab_thumbnails-k_backup div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-k_backup .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_thumbnails-k_backup div.syndicatedItem:hover,
+ .ab_thumbnails-k_backup div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-k_backup div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-k_backup .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .ab_thumbnails-k_backup .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-k_backup .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_thumbnails-k_backup .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-k_backup .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-k_backup .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_thumbnails-k_backup .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_thumbnails-k_backup .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-k_backup .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_backup .syndicatedItem .video-title {
+ max-height: 46.0px;
+ *height: 46.0px;
+ color: #000000;
+ font-family: 'Fira Sans';
+ font-size: 17.0px;
+ line-height: 23.0px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_backup .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_backup .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-k_backup .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_backup .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_backup .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_backup .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_backup .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_backup .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_backup .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_backup .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: 'Fira Sans';
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_thumbnails-k_backup .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_thumbnails-k_backup .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_thumbnails-k_backup .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 34%;
+ _width: 34%;
+ }
+
+ .ab_thumbnails-k_size-round-10 .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 17.0px;
+ line-height: 23.0px;
+ font-weight: normal;
+ max-height: 69.0px;
+ *height: 69.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-10 .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-10 .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_thumbnails-k_size-round-10 .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_thumbnails-k_size-round-10 .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-k_size-round-10 .video-label,
+ .ab_thumbnails-k_size-round-10 .sponsored,
+ .ab_thumbnails-k_size-round-10 .sponsored-url {
+ font-family: 'Fira Sans';
+ }
+
+ .ab_thumbnails-k_size-round-10 .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .ab_thumbnails-k_size-round-10 .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_thumbnails-k_size-round-10 .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_thumbnails-k_size-round-10 .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-10 .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-10 .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-10 .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-10 .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-10 .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-10 .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_thumbnails-k_size-round-10 .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_thumbnails-k_size-round-10 .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .ab_thumbnails-k_size-round-10 div.videoCube:hover,
+ .ab_thumbnails-k_size-round-10 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-k_size-round-10 .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_thumbnails-k_size-round-10 div.sponsored-default:hover,
+ .ab_thumbnails-k_size-round-10 div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_thumbnails-k_size-round-10 .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-k_size-round-10 .videoCube:hover .thumbnail-overlay,
+ .ab_thumbnails-k_size-round-10 .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-k_size-round-10 .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-k_size-round-10 .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-k_size-round-10 div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-k_size-round-10 .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-k_size-round-10 .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_thumbnails-k_size-round-10 .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-k_size-round-10 .trc_pager_prev:hover,
+ .ab_thumbnails-k_size-round-10 .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-k_size-round-10 .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-k_size-round-10 .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-k_size-round-10 div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-k_size-round-10 .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_thumbnails-k_size-round-10 .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-k_size-round-10 .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_thumbnails-k_size-round-10 .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-k_size-round-10 .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_thumbnails-k_size-round-10 {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_thumbnails-k_size-round-10 .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-k_size-round-10 .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-k_size-round-10 .trc_pager_prev,
+ .ab_thumbnails-k_size-round-10 .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-10 .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-10 .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-10 .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_thumbnails-k_size-round-10 .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-k_size-round-10 .playerCube:hover .thumbnail-overlay,
+ .ab_thumbnails-k_size-round-10 .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-k_size-round-10 .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_thumbnails-k_size-round-10 .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_thumbnails-k_size-round-10 .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-k_size-round-10 .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-10 .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-10 .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-k_size-round-10 .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-10 .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-10 .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-10 .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_thumbnails-k_size-round-10 .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-k_size-round-10 .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-10 .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-10 .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-10 .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-10 .playerCube div.videoCube:hover,
+ .ab_thumbnails-k_size-round-10 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-k_size-round-10 .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_thumbnails-k_size-round-10 div.syndicatedItem:hover,
+ .ab_thumbnails-k_size-round-10 div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-k_size-round-10 div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-k_size-round-10 .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .ab_thumbnails-k_size-round-10 .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-k_size-round-10 .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_thumbnails-k_size-round-10 .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-k_size-round-10 .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-k_size-round-10 .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_thumbnails-k_size-round-10 .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_thumbnails-k_size-round-10 .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-k_size-round-10 .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-10 .syndicatedItem .video-title {
+ max-height: 46.0px;
+ *height: 46.0px;
+ color: #000000;
+ font-family: 'Fira Sans';
+ font-size: 17.0px;
+ line-height: 23.0px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-10 .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-10 .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-k_size-round-10 .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-10 .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-10 .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-10 .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-10 .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-10 .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-10 .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-10 .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: 'Fira Sans';
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_thumbnails-k_size-round-10 .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_thumbnails-k_size-round-10 .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_thumbnails-k_size-round-10 .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 34%;
+ _width: 34%;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 17.0px;
+ line-height: 23.0px;
+ font-weight: normal;
+ max-height: 69.0px;
+ *height: 69.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .video-label,
+ .ab_thumbnails-k_size-round-10-factor .sponsored,
+ .ab_thumbnails-k_size-round-10-factor .sponsored-url {
+ font-family: 'Fira Sans';
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor div.videoCube:hover,
+ .ab_thumbnails-k_size-round-10-factor div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor div.sponsored-default:hover,
+ .ab_thumbnails-k_size-round-10-factor div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .videoCube:hover .thumbnail-overlay,
+ .ab_thumbnails-k_size-round-10-factor .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .trc_pager_prev:hover,
+ .ab_thumbnails-k_size-round-10-factor .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .trc_pager_prev,
+ .ab_thumbnails-k_size-round-10-factor .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .playerCube:hover .thumbnail-overlay,
+ .ab_thumbnails-k_size-round-10-factor .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .playerCube div.videoCube:hover,
+ .ab_thumbnails-k_size-round-10-factor div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor div.syndicatedItem:hover,
+ .ab_thumbnails-k_size-round-10-factor div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .syndicatedItem .video-title {
+ max-height: 46.0px;
+ *height: 46.0px;
+ color: #000000;
+ font-family: 'Fira Sans';
+ font-size: 17.0px;
+ line-height: 23.0px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: 'Fira Sans';
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 34%;
+ _width: 34%;
+ }
+
+ .ab_thumbnails-k_size-round-20 .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 17.0px;
+ line-height: 23.0px;
+ font-weight: normal;
+ max-height: 69.0px;
+ *height: 69.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-20 .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-20 .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_thumbnails-k_size-round-20 .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_thumbnails-k_size-round-20 .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-k_size-round-20 .video-label,
+ .ab_thumbnails-k_size-round-20 .sponsored,
+ .ab_thumbnails-k_size-round-20 .sponsored-url {
+ font-family: 'Fira Sans';
+ }
+
+ .ab_thumbnails-k_size-round-20 .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .ab_thumbnails-k_size-round-20 .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_thumbnails-k_size-round-20 .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_thumbnails-k_size-round-20 .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-20 .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-20 .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-20 .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-20 .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-20 .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-20 .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_thumbnails-k_size-round-20 .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_thumbnails-k_size-round-20 .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .ab_thumbnails-k_size-round-20 div.videoCube:hover,
+ .ab_thumbnails-k_size-round-20 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-k_size-round-20 .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_thumbnails-k_size-round-20 div.sponsored-default:hover,
+ .ab_thumbnails-k_size-round-20 div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_thumbnails-k_size-round-20 .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-k_size-round-20 .videoCube:hover .thumbnail-overlay,
+ .ab_thumbnails-k_size-round-20 .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-k_size-round-20 .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-k_size-round-20 .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-k_size-round-20 div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-k_size-round-20 .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-k_size-round-20 .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_thumbnails-k_size-round-20 .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-k_size-round-20 .trc_pager_prev:hover,
+ .ab_thumbnails-k_size-round-20 .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-k_size-round-20 .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-k_size-round-20 .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-k_size-round-20 div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-k_size-round-20 .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_thumbnails-k_size-round-20 .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-k_size-round-20 .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_thumbnails-k_size-round-20 .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-k_size-round-20 .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_thumbnails-k_size-round-20 {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_thumbnails-k_size-round-20 .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-k_size-round-20 .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-k_size-round-20 .trc_pager_prev,
+ .ab_thumbnails-k_size-round-20 .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-20 .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-20 .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-20 .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_thumbnails-k_size-round-20 .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-k_size-round-20 .playerCube:hover .thumbnail-overlay,
+ .ab_thumbnails-k_size-round-20 .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-k_size-round-20 .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_thumbnails-k_size-round-20 .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_thumbnails-k_size-round-20 .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-k_size-round-20 .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-20 .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-20 .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-k_size-round-20 .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-20 .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-20 .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-20 .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_thumbnails-k_size-round-20 .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-k_size-round-20 .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-20 .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-20 .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-20 .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_thumbnails-k_size-round-20 .playerCube div.videoCube:hover,
+ .ab_thumbnails-k_size-round-20 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-k_size-round-20 .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_thumbnails-k_size-round-20 div.syndicatedItem:hover,
+ .ab_thumbnails-k_size-round-20 div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-k_size-round-20 div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-k_size-round-20 .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .ab_thumbnails-k_size-round-20 .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-k_size-round-20 .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_thumbnails-k_size-round-20 .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-k_size-round-20 .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-k_size-round-20 .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_thumbnails-k_size-round-20 .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_thumbnails-k_size-round-20 .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-k_size-round-20 .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-20 .syndicatedItem .video-title {
+ max-height: 46.0px;
+ *height: 46.0px;
+ color: #000000;
+ font-family: 'Fira Sans';
+ font-size: 17.0px;
+ line-height: 23.0px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-20 .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-20 .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-k_size-round-20 .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-20 .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-20 .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-20 .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-20 .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-20 .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-20 .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-k_size-round-20 .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: 'Fira Sans';
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_thumbnails-k_size-round-20 .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_thumbnails-k_size-round-20 .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_thumbnails-k_size-round-20 .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 34%;
+ _width: 34%;
+ }
+
+ .ab_thumbnails-rr_abp-mode .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 15.0px;
+ line-height: 20.0px;
+ font-weight: bold;
+ max-height: 80.0px;
+ *height: 80.0px;
+ color: #333;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-rr_abp-mode .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-rr_abp-mode .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_thumbnails-rr_abp-mode .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_thumbnails-rr_abp-mode .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-rr_abp-mode .video-label,
+ .ab_thumbnails-rr_abp-mode .sponsored,
+ .ab_thumbnails-rr_abp-mode .sponsored-url {
+ font-family: 'Open Sans';
+ }
+
+ .ab_thumbnails-rr_abp-mode .trc_rbox_header {
+ font-family: 'Open Sans';
+ font-size: 14.0px;
+ font-weight: bold;
+ text-decoration: none;
+ color: #444444;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0 0 6px 0;
+ }
+
+ .ab_thumbnails-rr_abp-mode .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_thumbnails-rr_abp-mode .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_thumbnails-rr_abp-mode .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-rr_abp-mode .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-rr_abp-mode .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-rr_abp-mode .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-rr_abp-mode .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-rr_abp-mode .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-rr_abp-mode .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_thumbnails-rr_abp-mode .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_thumbnails-rr_abp-mode .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .ab_thumbnails-rr_abp-mode div.videoCube:hover,
+ .ab_thumbnails-rr_abp-mode div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-rr_abp-mode .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_thumbnails-rr_abp-mode div.sponsored-default:hover,
+ .ab_thumbnails-rr_abp-mode div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_thumbnails-rr_abp-mode .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-rr_abp-mode .videoCube:hover .thumbnail-overlay,
+ .ab_thumbnails-rr_abp-mode .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-rr_abp-mode .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-rr_abp-mode .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-rr_abp-mode div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-rr_abp-mode .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-rr_abp-mode .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_thumbnails-rr_abp-mode .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-rr_abp-mode .trc_pager_prev:hover,
+ .ab_thumbnails-rr_abp-mode .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-rr_abp-mode .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-rr_abp-mode .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-rr_abp-mode div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-rr_abp-mode .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_thumbnails-rr_abp-mode .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-rr_abp-mode .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_thumbnails-rr_abp-mode .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-rr_abp-mode .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_thumbnails-rr_abp-mode {
+ width: 300px;
+ _width: 300px;
+ border-width: 1px 0 1px 0;
+ border-style: solid;
+ border-color: #CCC;
+ padding: 5px 0px 5px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_thumbnails-rr_abp-mode .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-rr_abp-mode .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-rr_abp-mode .trc_pager_prev,
+ .ab_thumbnails-rr_abp-mode .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-rr_abp-mode .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-rr_abp-mode .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-rr_abp-mode .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_thumbnails-rr_abp-mode .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-rr_abp-mode .playerCube:hover .thumbnail-overlay,
+ .ab_thumbnails-rr_abp-mode .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-rr_abp-mode .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_thumbnails-rr_abp-mode .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_thumbnails-rr_abp-mode .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-rr_abp-mode .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-rr_abp-mode .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-rr_abp-mode .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-rr_abp-mode .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-rr_abp-mode .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-rr_abp-mode .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_thumbnails-rr_abp-mode .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_thumbnails-rr_abp-mode .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-rr_abp-mode .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-rr_abp-mode .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-rr_abp-mode .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-rr_abp-mode .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_thumbnails-rr_abp-mode .playerCube div.videoCube:hover,
+ .ab_thumbnails-rr_abp-mode div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-rr_abp-mode .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_thumbnails-rr_abp-mode div.syndicatedItem:hover,
+ .ab_thumbnails-rr_abp-mode div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-rr_abp-mode div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-rr_abp-mode .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .ab_thumbnails-rr_abp-mode .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-rr_abp-mode .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_thumbnails-rr_abp-mode .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-rr_abp-mode .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-rr_abp-mode .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_thumbnails-rr_abp-mode .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_thumbnails-rr_abp-mode .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-rr_abp-mode .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-rr_abp-mode .syndicatedItem .video-title {
+ max-height: 60.0px;
+ *height: 60.0px;
+ color: #333;
+ font-family: 'Open Sans';
+ font-size: 15.0px;
+ line-height: 20.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-rr_abp-mode .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-rr_abp-mode .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-rr_abp-mode .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-rr_abp-mode .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-rr_abp-mode .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-rr_abp-mode .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-rr_abp-mode .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-rr_abp-mode .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-rr_abp-mode .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-rr_abp-mode .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Open Sans';
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_thumbnails-rr_abp-mode .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_thumbnails-rr_abp-mode .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_thumbnails-rr_abp-mode .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .alternating-thumbnails-a .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14.0px;
+ line-height: 19.0px;
+ font-weight: bold;
+ max-height: 76.0px;
+ *height: 76.0px;
+ color: #333;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-a .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-a .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .alternating-thumbnails-a .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .alternating-thumbnails-a .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .alternating-thumbnails-a .video-label,
+ .alternating-thumbnails-a .sponsored,
+ .alternating-thumbnails-a .sponsored-url {
+ font-family: 'Open Sans';
+ }
+
+ .alternating-thumbnails-a .trc_rbox_header {
+ font-family: 'open sans';
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #333333;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .alternating-thumbnails-a .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .alternating-thumbnails-a .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .alternating-thumbnails-a .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-a .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-a .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-a .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-a .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-a .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-a .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .alternating-thumbnails-a .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .alternating-thumbnails-a .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .alternating-thumbnails-a div.videoCube:hover,
+ .alternating-thumbnails-a div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .alternating-thumbnails-a .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .alternating-thumbnails-a div.sponsored-default:hover,
+ .alternating-thumbnails-a div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .alternating-thumbnails-a .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .alternating-thumbnails-a .videoCube:hover .thumbnail-overlay,
+ .alternating-thumbnails-a .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .alternating-thumbnails-a .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .alternating-thumbnails-a .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .alternating-thumbnails-a div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .alternating-thumbnails-a .pager_enabled {
+ color: #0056b3;
+ }
+
+ .alternating-thumbnails-a .trc_pager_counter {
+ color: #000000;
+ }
+
+ .alternating-thumbnails-a .pager_disabled {
+ color: #7d898f;
+ }
+
+ .alternating-thumbnails-a .trc_pager_prev:hover,
+ .alternating-thumbnails-a .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .alternating-thumbnails-a .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .alternating-thumbnails-a .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .alternating-thumbnails-a div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .alternating-thumbnails-a .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .alternating-thumbnails-a .video-label-box {
+ text-align: left;
+ }
+
+ .alternating-thumbnails-a .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .alternating-thumbnails-a .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .alternating-thumbnails-a .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .alternating-thumbnails-a {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px;
+ border-style: none;
+ border-color: #000000;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .alternating-thumbnails-a .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .alternating-thumbnails-a .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .alternating-thumbnails-a .trc_pager_prev,
+ .alternating-thumbnails-a .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-a .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-a .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-a .trc_pager div {
+ font-family: serif;
+ }
+
+ .alternating-thumbnails-a .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .alternating-thumbnails-a .playerCube:hover .thumbnail-overlay,
+ .alternating-thumbnails-a .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .alternating-thumbnails-a .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .alternating-thumbnails-a .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .alternating-thumbnails-a .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .alternating-thumbnails-a .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-a .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-a .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .alternating-thumbnails-a .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-a .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-a .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .alternating-thumbnails-a .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .alternating-thumbnails-a .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .alternating-thumbnails-a .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-a .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-a .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-a .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .alternating-thumbnails-a .playerCube div.videoCube:hover,
+ .alternating-thumbnails-a div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .alternating-thumbnails-a .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .alternating-thumbnails-a div.syndicatedItem:hover,
+ .alternating-thumbnails-a div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .alternating-thumbnails-a div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .alternating-thumbnails-a .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .alternating-thumbnails-a .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .alternating-thumbnails-a .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .alternating-thumbnails-a .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .alternating-thumbnails-a .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .alternating-thumbnails-a .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .alternating-thumbnails-a .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .alternating-thumbnails-a .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .alternating-thumbnails-a .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-a .syndicatedItem .video-title {
+ max-height: 57.0px;
+ *height: 57.0px;
+ color: #333;
+ font-family: 'Open Sans';
+ font-size: 14.0px;
+ line-height: 19.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-a .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-a .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .alternating-thumbnails-a .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-a .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-a .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-a .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-a .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-a .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-a .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-a .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Open Sans';
+ background-image: null;
+ text-align: left;
+ }
+
+ .alternating-thumbnails-a .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .alternating-thumbnails-a .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .alternating-thumbnails-a .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .alternating-thumbnails-b .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14.0px;
+ line-height: 19.0px;
+ font-weight: bold;
+ max-height: 76.0px;
+ *height: 76.0px;
+ color: #333;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-b .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-b .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .alternating-thumbnails-b .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .alternating-thumbnails-b .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .alternating-thumbnails-b .video-label,
+ .alternating-thumbnails-b .sponsored,
+ .alternating-thumbnails-b .sponsored-url {
+ font-family: 'Open Sans';
+ }
+
+ .alternating-thumbnails-b .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .alternating-thumbnails-b .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .alternating-thumbnails-b .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .alternating-thumbnails-b .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-b .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-b .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-b .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-b .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-b .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-b .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .alternating-thumbnails-b .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .alternating-thumbnails-b .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .alternating-thumbnails-b div.videoCube:hover,
+ .alternating-thumbnails-b div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .alternating-thumbnails-b .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .alternating-thumbnails-b div.sponsored-default:hover,
+ .alternating-thumbnails-b div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .alternating-thumbnails-b .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .alternating-thumbnails-b .videoCube:hover .thumbnail-overlay,
+ .alternating-thumbnails-b .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .alternating-thumbnails-b .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .alternating-thumbnails-b .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .alternating-thumbnails-b div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .alternating-thumbnails-b .pager_enabled {
+ color: #0056b3;
+ }
+
+ .alternating-thumbnails-b .trc_pager_counter {
+ color: #000000;
+ }
+
+ .alternating-thumbnails-b .pager_disabled {
+ color: #7d898f;
+ }
+
+ .alternating-thumbnails-b .trc_pager_prev:hover,
+ .alternating-thumbnails-b .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .alternating-thumbnails-b .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .alternating-thumbnails-b .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .alternating-thumbnails-b div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .alternating-thumbnails-b .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .alternating-thumbnails-b .video-label-box {
+ text-align: left;
+ }
+
+ .alternating-thumbnails-b .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .alternating-thumbnails-b .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .alternating-thumbnails-b .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .alternating-thumbnails-b {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px;
+ border-style: none;
+ border-color: #000000;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .alternating-thumbnails-b .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .alternating-thumbnails-b .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .alternating-thumbnails-b .trc_pager_prev,
+ .alternating-thumbnails-b .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-b .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-b .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-b .trc_pager div {
+ font-family: serif;
+ }
+
+ .alternating-thumbnails-b .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .alternating-thumbnails-b .playerCube:hover .thumbnail-overlay,
+ .alternating-thumbnails-b .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .alternating-thumbnails-b .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .alternating-thumbnails-b .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .alternating-thumbnails-b .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .alternating-thumbnails-b .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-b .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-b .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .alternating-thumbnails-b .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-b .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-b .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .alternating-thumbnails-b .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .alternating-thumbnails-b .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .alternating-thumbnails-b .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-b .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-b .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-b .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .alternating-thumbnails-b .playerCube div.videoCube:hover,
+ .alternating-thumbnails-b div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .alternating-thumbnails-b .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .alternating-thumbnails-b div.syndicatedItem:hover,
+ .alternating-thumbnails-b div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .alternating-thumbnails-b div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .alternating-thumbnails-b .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .alternating-thumbnails-b .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .alternating-thumbnails-b .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .alternating-thumbnails-b .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .alternating-thumbnails-b .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .alternating-thumbnails-b .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .alternating-thumbnails-b .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .alternating-thumbnails-b .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .alternating-thumbnails-b .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-b .syndicatedItem .video-title {
+ max-height: 57.0px;
+ *height: 57.0px;
+ color: #333;
+ font-family: 'Open Sans';
+ font-size: 14.0px;
+ line-height: 19.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-b .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-b .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .alternating-thumbnails-b .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-b .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-b .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-b .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-b .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-b .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-b .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-b .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Open Sans';
+ background-image: null;
+ text-align: left;
+ }
+
+ .alternating-thumbnails-b .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .alternating-thumbnails-b .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .alternating-thumbnails-b .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .mobile-thumbnails-a .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ max-height: 88.0px;
+ *height: 88.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .mobile-thumbnails-a .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .mobile-thumbnails-a .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .mobile-thumbnails-a .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .mobile-thumbnails-a .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .mobile-thumbnails-a .video-label,
+ .mobile-thumbnails-a .sponsored,
+ .mobile-thumbnails-a .sponsored-url {
+ font-family: georgia, times, serif;
+ }
+
+ .mobile-thumbnails-a .trc_rbox_header {
+ font-family: georgia, times, serif;
+ font-size: 18.0px;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0 0 6px 0;
+ }
+
+ .mobile-thumbnails-a .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .mobile-thumbnails-a .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .mobile-thumbnails-a .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .mobile-thumbnails-a .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .mobile-thumbnails-a .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .mobile-thumbnails-a .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .mobile-thumbnails-a .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .mobile-thumbnails-a .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .mobile-thumbnails-a .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .mobile-thumbnails-a .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .mobile-thumbnails-a .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .mobile-thumbnails-a div.videoCube:hover,
+ .mobile-thumbnails-a div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .mobile-thumbnails-a .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .mobile-thumbnails-a div.sponsored-default:hover,
+ .mobile-thumbnails-a div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .mobile-thumbnails-a .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .mobile-thumbnails-a .videoCube:hover .thumbnail-overlay,
+ .mobile-thumbnails-a .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .mobile-thumbnails-a .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .mobile-thumbnails-a .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .mobile-thumbnails-a div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .mobile-thumbnails-a .pager_enabled {
+ color: #0056b3;
+ }
+
+ .mobile-thumbnails-a .trc_pager_counter {
+ color: #000000;
+ }
+
+ .mobile-thumbnails-a .pager_disabled {
+ color: #7d898f;
+ }
+
+ .mobile-thumbnails-a .trc_pager_prev:hover,
+ .mobile-thumbnails-a .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .mobile-thumbnails-a .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .mobile-thumbnails-a .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .mobile-thumbnails-a div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .mobile-thumbnails-a .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .mobile-thumbnails-a .video-label-box {
+ text-align: left;
+ }
+
+ .mobile-thumbnails-a .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .mobile-thumbnails-a .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .mobile-thumbnails-a .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .mobile-thumbnails-a {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px;
+ border-style: none;
+ border-color: #000000;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .mobile-thumbnails-a .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .mobile-thumbnails-a .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .mobile-thumbnails-a .trc_pager_prev,
+ .mobile-thumbnails-a .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .mobile-thumbnails-a .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .mobile-thumbnails-a .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .mobile-thumbnails-a .trc_pager div {
+ font-family: serif;
+ }
+
+ .mobile-thumbnails-a .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .mobile-thumbnails-a .playerCube:hover .thumbnail-overlay,
+ .mobile-thumbnails-a .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .mobile-thumbnails-a .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .mobile-thumbnails-a .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .mobile-thumbnails-a .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .mobile-thumbnails-a .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .mobile-thumbnails-a .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .mobile-thumbnails-a .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .mobile-thumbnails-a .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .mobile-thumbnails-a .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .mobile-thumbnails-a .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .mobile-thumbnails-a .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .mobile-thumbnails-a .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .mobile-thumbnails-a .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .mobile-thumbnails-a .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .mobile-thumbnails-a .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .mobile-thumbnails-a .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .mobile-thumbnails-a .playerCube div.videoCube:hover,
+ .mobile-thumbnails-a div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .mobile-thumbnails-a .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .mobile-thumbnails-a div.syndicatedItem:hover,
+ .mobile-thumbnails-a div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .mobile-thumbnails-a div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .mobile-thumbnails-a .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .mobile-thumbnails-a .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .mobile-thumbnails-a .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .mobile-thumbnails-a .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .mobile-thumbnails-a .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .mobile-thumbnails-a .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .mobile-thumbnails-a .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .mobile-thumbnails-a .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .mobile-thumbnails-a .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .mobile-thumbnails-a .syndicatedItem .video-title {
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #000000;
+ font-family: georgia, times, serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .mobile-thumbnails-a .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .mobile-thumbnails-a .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .mobile-thumbnails-a .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .mobile-thumbnails-a .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .mobile-thumbnails-a .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .mobile-thumbnails-a .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .mobile-thumbnails-a .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .mobile-thumbnails-a .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .mobile-thumbnails-a .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .mobile-thumbnails-a .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: georgia, times, serif;
+ background-image: null;
+ text-align: left;
+ }
+
+ .mobile-thumbnails-a .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .mobile-thumbnails-a .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .mobile-thumbnails-a .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .organic-thumbnails-a .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 15.0px;
+ line-height: 20.0px;
+ font-weight: bold;
+ max-height: 80.0px;
+ *height: 80.0px;
+ color: #333;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-a .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-a .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .organic-thumbnails-a .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .organic-thumbnails-a .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .organic-thumbnails-a .video-label,
+ .organic-thumbnails-a .sponsored,
+ .organic-thumbnails-a .sponsored-url {
+ font-family: 'Open Sans';
+ }
+
+ .organic-thumbnails-a .trc_rbox_header {
+ font-family: 'Open Sans';
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #333;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .organic-thumbnails-a .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .organic-thumbnails-a .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .organic-thumbnails-a .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-a .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-a .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-a .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-a .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-a .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-a .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .organic-thumbnails-a .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .organic-thumbnails-a .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .organic-thumbnails-a div.videoCube:hover,
+ .organic-thumbnails-a div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .organic-thumbnails-a .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .organic-thumbnails-a div.sponsored-default:hover,
+ .organic-thumbnails-a div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .organic-thumbnails-a .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .organic-thumbnails-a .videoCube:hover .thumbnail-overlay,
+ .organic-thumbnails-a .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .organic-thumbnails-a .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .organic-thumbnails-a .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .organic-thumbnails-a div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .organic-thumbnails-a .pager_enabled {
+ color: #0056b3;
+ }
+
+ .organic-thumbnails-a .trc_pager_counter {
+ color: #000000;
+ }
+
+ .organic-thumbnails-a .pager_disabled {
+ color: #7d898f;
+ }
+
+ .organic-thumbnails-a .trc_pager_prev:hover,
+ .organic-thumbnails-a .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .organic-thumbnails-a .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .organic-thumbnails-a .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .organic-thumbnails-a div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .organic-thumbnails-a .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .organic-thumbnails-a .video-label-box {
+ text-align: left;
+ }
+
+ .organic-thumbnails-a .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .organic-thumbnails-a .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .organic-thumbnails-a .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .organic-thumbnails-a {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .organic-thumbnails-a .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .organic-thumbnails-a .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .organic-thumbnails-a .trc_pager_prev,
+ .organic-thumbnails-a .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-a .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-a .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-a .trc_pager div {
+ font-family: serif;
+ }
+
+ .organic-thumbnails-a .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .organic-thumbnails-a .playerCube:hover .thumbnail-overlay,
+ .organic-thumbnails-a .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .organic-thumbnails-a .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .organic-thumbnails-a .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .organic-thumbnails-a .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .organic-thumbnails-a .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-a .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-a .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .organic-thumbnails-a .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-a .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-a .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .organic-thumbnails-a .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .organic-thumbnails-a .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .organic-thumbnails-a .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-a .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-a .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-a .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .organic-thumbnails-a .playerCube div.videoCube:hover,
+ .organic-thumbnails-a div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .organic-thumbnails-a .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .organic-thumbnails-a div.syndicatedItem:hover,
+ .organic-thumbnails-a div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .organic-thumbnails-a div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .organic-thumbnails-a .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .organic-thumbnails-a .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .organic-thumbnails-a .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .organic-thumbnails-a .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .organic-thumbnails-a .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .organic-thumbnails-a .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .organic-thumbnails-a .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .organic-thumbnails-a .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .organic-thumbnails-a .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-a .syndicatedItem .video-title {
+ max-height: 60.0px;
+ *height: 60.0px;
+ color: #333;
+ font-family: 'Open Sans';
+ font-size: 15.0px;
+ line-height: 20.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-a .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-a .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .organic-thumbnails-a .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-a .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-a .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-a .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-a .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-a .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-a .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-a .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Open Sans';
+ background-image: null;
+ text-align: left;
+ }
+
+ .organic-thumbnails-a .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .organic-thumbnails-a .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .organic-thumbnails-a .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .organic-thumbnails-b .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 18.0px;
+ font-weight: bold;
+ max-height: 54.0px;
+ *height: 54.0px;
+ color: #660046;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-b .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-b .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .organic-thumbnails-b .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .organic-thumbnails-b .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .organic-thumbnails-b .video-label,
+ .organic-thumbnails-b .sponsored,
+ .organic-thumbnails-b .sponsored-url {
+ font-family: 'Open Sans', sans-serif;
+ }
+
+ .organic-thumbnails-b .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .organic-thumbnails-b .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .organic-thumbnails-b .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .organic-thumbnails-b .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-b .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-b .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-b .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-b .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-b .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-b .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .organic-thumbnails-b .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .organic-thumbnails-b .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .organic-thumbnails-b div.videoCube:hover,
+ .organic-thumbnails-b div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .organic-thumbnails-b .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .organic-thumbnails-b div.sponsored-default:hover,
+ .organic-thumbnails-b div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .organic-thumbnails-b .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .organic-thumbnails-b .videoCube:hover .thumbnail-overlay,
+ .organic-thumbnails-b .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .organic-thumbnails-b .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .organic-thumbnails-b .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .organic-thumbnails-b div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .organic-thumbnails-b .pager_enabled {
+ color: #0056b3;
+ }
+
+ .organic-thumbnails-b .trc_pager_counter {
+ color: #000000;
+ }
+
+ .organic-thumbnails-b .pager_disabled {
+ color: #7d898f;
+ }
+
+ .organic-thumbnails-b .trc_pager_prev:hover,
+ .organic-thumbnails-b .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .organic-thumbnails-b .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .organic-thumbnails-b .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .organic-thumbnails-b div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .organic-thumbnails-b .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .organic-thumbnails-b .video-label-box {
+ text-align: left;
+ }
+
+ .organic-thumbnails-b .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .organic-thumbnails-b .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .organic-thumbnails-b .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .organic-thumbnails-b {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px;
+ border-style: none;
+ border-color: #000000;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .organic-thumbnails-b .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .organic-thumbnails-b .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .organic-thumbnails-b .trc_pager_prev,
+ .organic-thumbnails-b .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-b .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-b .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-b .trc_pager div {
+ font-family: serif;
+ }
+
+ .organic-thumbnails-b .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .organic-thumbnails-b .playerCube:hover .thumbnail-overlay,
+ .organic-thumbnails-b .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .organic-thumbnails-b .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .organic-thumbnails-b .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .organic-thumbnails-b .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .organic-thumbnails-b .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-b .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-b .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .organic-thumbnails-b .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-b .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-b .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .organic-thumbnails-b .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .organic-thumbnails-b .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .organic-thumbnails-b .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-b .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-b .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-b .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .organic-thumbnails-b .playerCube div.videoCube:hover,
+ .organic-thumbnails-b div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .organic-thumbnails-b .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .organic-thumbnails-b div.syndicatedItem:hover,
+ .organic-thumbnails-b div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .organic-thumbnails-b div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .organic-thumbnails-b .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .organic-thumbnails-b .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .organic-thumbnails-b .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .organic-thumbnails-b .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .organic-thumbnails-b .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .organic-thumbnails-b .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .organic-thumbnails-b .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .organic-thumbnails-b .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .organic-thumbnails-b .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-b .syndicatedItem .video-title {
+ max-height: 37.0px;
+ *height: 37.0px;
+ color: #660046;
+ font-family: 'Open Sans', sans-serif;
+ font-size: 16.0px;
+ line-height: 18.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-b .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-b .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .organic-thumbnails-b .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-b .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-b .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-b .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-b .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-b .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-b .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-b .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Open Sans', sans-serif;
+ background-image: null;
+ text-align: left;
+ }
+
+ .organic-thumbnails-b .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .organic-thumbnails-b .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .organic-thumbnails-b .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .organic-thumbnails-d .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ max-height: 88.0px;
+ *height: 88.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-d .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-d .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .organic-thumbnails-d .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .organic-thumbnails-d .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .organic-thumbnails-d .video-label,
+ .organic-thumbnails-d .sponsored,
+ .organic-thumbnails-d .sponsored-url {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ }
+
+ .organic-thumbnails-d .trc_rbox_header {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .organic-thumbnails-d .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .organic-thumbnails-d .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .organic-thumbnails-d .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-d .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-d .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-d .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-d .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-d .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-d .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .organic-thumbnails-d .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .organic-thumbnails-d .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .organic-thumbnails-d div.videoCube:hover,
+ .organic-thumbnails-d div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .organic-thumbnails-d .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .organic-thumbnails-d div.sponsored-default:hover,
+ .organic-thumbnails-d div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .organic-thumbnails-d .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .organic-thumbnails-d .videoCube:hover .thumbnail-overlay,
+ .organic-thumbnails-d .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .organic-thumbnails-d .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .organic-thumbnails-d .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .organic-thumbnails-d div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .organic-thumbnails-d .pager_enabled {
+ color: #0056b3;
+ }
+
+ .organic-thumbnails-d .trc_pager_counter {
+ color: #000000;
+ }
+
+ .organic-thumbnails-d .pager_disabled {
+ color: #7d898f;
+ }
+
+ .organic-thumbnails-d .trc_pager_prev:hover,
+ .organic-thumbnails-d .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .organic-thumbnails-d .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .organic-thumbnails-d .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .organic-thumbnails-d div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .organic-thumbnails-d .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .organic-thumbnails-d .video-label-box {
+ text-align: left;
+ }
+
+ .organic-thumbnails-d .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .organic-thumbnails-d .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .organic-thumbnails-d .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .organic-thumbnails-d {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .organic-thumbnails-d .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .organic-thumbnails-d .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .organic-thumbnails-d .trc_pager_prev,
+ .organic-thumbnails-d .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-d .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-d .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-d .trc_pager div {
+ font-family: serif;
+ }
+
+ .organic-thumbnails-d .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .organic-thumbnails-d .playerCube:hover .thumbnail-overlay,
+ .organic-thumbnails-d .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .organic-thumbnails-d .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .organic-thumbnails-d .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .organic-thumbnails-d .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .organic-thumbnails-d .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-d .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-d .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .organic-thumbnails-d .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-d .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-d .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .organic-thumbnails-d .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .organic-thumbnails-d .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .organic-thumbnails-d .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-d .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-d .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-d .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .organic-thumbnails-d .playerCube div.videoCube:hover,
+ .organic-thumbnails-d div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .organic-thumbnails-d .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .organic-thumbnails-d div.syndicatedItem:hover,
+ .organic-thumbnails-d div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .organic-thumbnails-d div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .organic-thumbnails-d .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .organic-thumbnails-d .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .organic-thumbnails-d .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .organic-thumbnails-d .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .organic-thumbnails-d .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .organic-thumbnails-d .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .organic-thumbnails-d .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .organic-thumbnails-d .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .organic-thumbnails-d .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-d .syndicatedItem .video-title {
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #000000;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-d .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-d .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .organic-thumbnails-d .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-d .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-d .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-d .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-d .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-d .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-d .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-d .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ background-image: null;
+ text-align: left;
+ }
+
+ .organic-thumbnails-d .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .organic-thumbnails-d .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .organic-thumbnails-d .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .organic-thumbnails-d-2 .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ max-height: 88.0px;
+ *height: 88.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-d-2 .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-d-2 .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .organic-thumbnails-d-2 .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .organic-thumbnails-d-2 .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .organic-thumbnails-d-2 .video-label,
+ .organic-thumbnails-d-2 .sponsored,
+ .organic-thumbnails-d-2 .sponsored-url {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ }
+
+ .organic-thumbnails-d-2 .trc_rbox_header {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .organic-thumbnails-d-2 .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .organic-thumbnails-d-2 .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .organic-thumbnails-d-2 .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-d-2 .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-d-2 .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-d-2 .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-d-2 .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-d-2 .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-d-2 .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .organic-thumbnails-d-2 .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .organic-thumbnails-d-2 .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .organic-thumbnails-d-2 div.videoCube:hover,
+ .organic-thumbnails-d-2 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .organic-thumbnails-d-2 .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .organic-thumbnails-d-2 div.sponsored-default:hover,
+ .organic-thumbnails-d-2 div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .organic-thumbnails-d-2 .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .organic-thumbnails-d-2 .videoCube:hover .thumbnail-overlay,
+ .organic-thumbnails-d-2 .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .organic-thumbnails-d-2 .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .organic-thumbnails-d-2 .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .organic-thumbnails-d-2 div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .organic-thumbnails-d-2 .pager_enabled {
+ color: #0056b3;
+ }
+
+ .organic-thumbnails-d-2 .trc_pager_counter {
+ color: #000000;
+ }
+
+ .organic-thumbnails-d-2 .pager_disabled {
+ color: #7d898f;
+ }
+
+ .organic-thumbnails-d-2 .trc_pager_prev:hover,
+ .organic-thumbnails-d-2 .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .organic-thumbnails-d-2 .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .organic-thumbnails-d-2 .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .organic-thumbnails-d-2 div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .organic-thumbnails-d-2 .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .organic-thumbnails-d-2 .video-label-box {
+ text-align: left;
+ }
+
+ .organic-thumbnails-d-2 .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .organic-thumbnails-d-2 .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .organic-thumbnails-d-2 .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .organic-thumbnails-d-2 {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .organic-thumbnails-d-2 .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .organic-thumbnails-d-2 .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .organic-thumbnails-d-2 .trc_pager_prev,
+ .organic-thumbnails-d-2 .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-d-2 .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-d-2 .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-d-2 .trc_pager div {
+ font-family: serif;
+ }
+
+ .organic-thumbnails-d-2 .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .organic-thumbnails-d-2 .playerCube:hover .thumbnail-overlay,
+ .organic-thumbnails-d-2 .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .organic-thumbnails-d-2 .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .organic-thumbnails-d-2 .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .organic-thumbnails-d-2 .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .organic-thumbnails-d-2 .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-d-2 .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-d-2 .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .organic-thumbnails-d-2 .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-d-2 .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-d-2 .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .organic-thumbnails-d-2 .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .organic-thumbnails-d-2 .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .organic-thumbnails-d-2 .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-d-2 .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-d-2 .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-d-2 .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .organic-thumbnails-d-2 .playerCube div.videoCube:hover,
+ .organic-thumbnails-d-2 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .organic-thumbnails-d-2 .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .organic-thumbnails-d-2 div.syndicatedItem:hover,
+ .organic-thumbnails-d-2 div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .organic-thumbnails-d-2 div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .organic-thumbnails-d-2 .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .organic-thumbnails-d-2 .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .organic-thumbnails-d-2 .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .organic-thumbnails-d-2 .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .organic-thumbnails-d-2 .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .organic-thumbnails-d-2 .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .organic-thumbnails-d-2 .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .organic-thumbnails-d-2 .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .organic-thumbnails-d-2 .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-d-2 .syndicatedItem .video-title {
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #000000;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-d-2 .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-d-2 .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .organic-thumbnails-d-2 .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-d-2 .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-d-2 .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-d-2 .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-d-2 .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-d-2 .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-d-2 .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-d-2 .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ background-image: null;
+ text-align: left;
+ }
+
+ .organic-thumbnails-d-2 .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .organic-thumbnails-d-2 .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .organic-thumbnails-d-2 .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .organic-thumbnails-e .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ max-height: 88.0px;
+ *height: 88.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-e .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-e .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .organic-thumbnails-e .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .organic-thumbnails-e .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .organic-thumbnails-e .video-label,
+ .organic-thumbnails-e .sponsored,
+ .organic-thumbnails-e .sponsored-url {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ }
+
+ .organic-thumbnails-e .trc_rbox_header {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .organic-thumbnails-e .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .organic-thumbnails-e .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .organic-thumbnails-e .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-e .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-e .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-e .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-e .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-e .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-e .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .organic-thumbnails-e .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .organic-thumbnails-e .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .organic-thumbnails-e div.videoCube:hover,
+ .organic-thumbnails-e div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .organic-thumbnails-e .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .organic-thumbnails-e div.sponsored-default:hover,
+ .organic-thumbnails-e div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .organic-thumbnails-e .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .organic-thumbnails-e .videoCube:hover .thumbnail-overlay,
+ .organic-thumbnails-e .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .organic-thumbnails-e .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .organic-thumbnails-e .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .organic-thumbnails-e div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .organic-thumbnails-e .pager_enabled {
+ color: #0056b3;
+ }
+
+ .organic-thumbnails-e .trc_pager_counter {
+ color: #000000;
+ }
+
+ .organic-thumbnails-e .pager_disabled {
+ color: #7d898f;
+ }
+
+ .organic-thumbnails-e .trc_pager_prev:hover,
+ .organic-thumbnails-e .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .organic-thumbnails-e .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .organic-thumbnails-e .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .organic-thumbnails-e div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .organic-thumbnails-e .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .organic-thumbnails-e .video-label-box {
+ text-align: left;
+ }
+
+ .organic-thumbnails-e .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .organic-thumbnails-e .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .organic-thumbnails-e .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .organic-thumbnails-e {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .organic-thumbnails-e .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .organic-thumbnails-e .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .organic-thumbnails-e .trc_pager_prev,
+ .organic-thumbnails-e .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-e .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-e .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-e .trc_pager div {
+ font-family: serif;
+ }
+
+ .organic-thumbnails-e .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .organic-thumbnails-e .playerCube:hover .thumbnail-overlay,
+ .organic-thumbnails-e .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .organic-thumbnails-e .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .organic-thumbnails-e .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .organic-thumbnails-e .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .organic-thumbnails-e .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-e .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-e .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .organic-thumbnails-e .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-e .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-e .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .organic-thumbnails-e .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .organic-thumbnails-e .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .organic-thumbnails-e .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-e .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-e .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-e .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .organic-thumbnails-e .playerCube div.videoCube:hover,
+ .organic-thumbnails-e div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .organic-thumbnails-e .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .organic-thumbnails-e div.syndicatedItem:hover,
+ .organic-thumbnails-e div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .organic-thumbnails-e div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .organic-thumbnails-e .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .organic-thumbnails-e .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .organic-thumbnails-e .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .organic-thumbnails-e .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .organic-thumbnails-e .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .organic-thumbnails-e .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .organic-thumbnails-e .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .organic-thumbnails-e .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .organic-thumbnails-e .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-e .syndicatedItem .video-title {
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #000000;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-e .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-e .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .organic-thumbnails-e .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-e .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-e .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-e .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-e .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-e .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-e .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-e .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ background-image: null;
+ text-align: left;
+ }
+
+ .organic-thumbnails-e .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .organic-thumbnails-e .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .organic-thumbnails-e .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .organic-thumbnails-mobile .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ max-height: 88.0px;
+ *height: 88.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-mobile .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-mobile .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .organic-thumbnails-mobile .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .organic-thumbnails-mobile .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .organic-thumbnails-mobile .video-label,
+ .organic-thumbnails-mobile .sponsored,
+ .organic-thumbnails-mobile .sponsored-url {
+ font-family: georgia, times, serif;
+ }
+
+ .organic-thumbnails-mobile .trc_rbox_header {
+ font-family: georgia, times, serif;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .organic-thumbnails-mobile .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .organic-thumbnails-mobile .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .organic-thumbnails-mobile .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-mobile .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-mobile .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-mobile .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-mobile .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-mobile .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-mobile .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .organic-thumbnails-mobile .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .organic-thumbnails-mobile .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .organic-thumbnails-mobile div.videoCube:hover,
+ .organic-thumbnails-mobile div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .organic-thumbnails-mobile .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .organic-thumbnails-mobile div.sponsored-default:hover,
+ .organic-thumbnails-mobile div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .organic-thumbnails-mobile .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .organic-thumbnails-mobile .videoCube:hover .thumbnail-overlay,
+ .organic-thumbnails-mobile .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .organic-thumbnails-mobile .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .organic-thumbnails-mobile .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .organic-thumbnails-mobile div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .organic-thumbnails-mobile .pager_enabled {
+ color: #0056b3;
+ }
+
+ .organic-thumbnails-mobile .trc_pager_counter {
+ color: #000000;
+ }
+
+ .organic-thumbnails-mobile .pager_disabled {
+ color: #7d898f;
+ }
+
+ .organic-thumbnails-mobile .trc_pager_prev:hover,
+ .organic-thumbnails-mobile .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .organic-thumbnails-mobile .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .organic-thumbnails-mobile .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .organic-thumbnails-mobile div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .organic-thumbnails-mobile .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .organic-thumbnails-mobile .video-label-box {
+ text-align: left;
+ }
+
+ .organic-thumbnails-mobile .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .organic-thumbnails-mobile .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .organic-thumbnails-mobile .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .organic-thumbnails-mobile {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .organic-thumbnails-mobile .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .organic-thumbnails-mobile .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .organic-thumbnails-mobile .trc_pager_prev,
+ .organic-thumbnails-mobile .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-mobile .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-mobile .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-mobile .trc_pager div {
+ font-family: serif;
+ }
+
+ .organic-thumbnails-mobile .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .organic-thumbnails-mobile .playerCube:hover .thumbnail-overlay,
+ .organic-thumbnails-mobile .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .organic-thumbnails-mobile .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .organic-thumbnails-mobile .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .organic-thumbnails-mobile .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .organic-thumbnails-mobile .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-mobile .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-mobile .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .organic-thumbnails-mobile .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-mobile .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-mobile .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .organic-thumbnails-mobile .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .organic-thumbnails-mobile .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .organic-thumbnails-mobile .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-mobile .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-mobile .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-mobile .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .organic-thumbnails-mobile .playerCube div.videoCube:hover,
+ .organic-thumbnails-mobile div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .organic-thumbnails-mobile .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .organic-thumbnails-mobile div.syndicatedItem:hover,
+ .organic-thumbnails-mobile div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .organic-thumbnails-mobile div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .organic-thumbnails-mobile .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .organic-thumbnails-mobile .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .organic-thumbnails-mobile .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .organic-thumbnails-mobile .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .organic-thumbnails-mobile .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .organic-thumbnails-mobile .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .organic-thumbnails-mobile .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .organic-thumbnails-mobile .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .organic-thumbnails-mobile .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-mobile .syndicatedItem .video-title {
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #000000;
+ font-family: georgia, times, serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-mobile .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-mobile .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .organic-thumbnails-mobile .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-mobile .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-mobile .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-mobile .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-mobile .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-mobile .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-mobile .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-mobile .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: georgia, times, serif;
+ background-image: null;
+ text-align: left;
+ }
+
+ .organic-thumbnails-mobile .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .organic-thumbnails-mobile .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .organic-thumbnails-mobile .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .rbox-blended .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .rbox-blended .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .rbox-blended .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 1px;
+ padding: 0;
+ }
+
+ .rbox-blended .videoCube .video-duration {
+ left: 36px;
+ display: block;
+ }
+
+ .rbox-blended .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .rbox-blended .video-label,
+ .rbox-blended .sponsored,
+ .rbox-blended .sponsored-url {
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .rbox-blended .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16px;
+ font-weight: bold;
+ text-decoration: none;
+ color: black;
+ border-width: 0;
+ background: transparent;
+ border-style: none none solid none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .rbox-blended .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .rbox-blended .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .rbox-blended .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .rbox-blended .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .rbox-blended .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 3px;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .rbox-blended div.videoCube:hover,
+ .rbox-blended div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .rbox-blended .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .rbox-blended div.sponsored-default:hover,
+ .rbox-blended div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .rbox-blended .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .rbox-blended .videoCube:hover .thumbnail-overlay,
+ .rbox-blended .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .rbox-blended .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .rbox-blended .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .rbox-blended div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .rbox-blended .pager_enabled {
+ color: #0056b3;
+ }
+
+ .rbox-blended .trc_pager_counter {
+ color: #000000;
+ }
+
+ .rbox-blended .pager_disabled {
+ color: #7d898f;
+ }
+
+ .rbox-blended .trc_pager_prev:hover,
+ .rbox-blended .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .rbox-blended .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .rbox-blended .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .rbox-blended div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .rbox-blended .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .rbox-blended .video-label-box {
+ text-align: left;
+ }
+
+ .rbox-blended .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .rbox-blended .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .rbox-blended .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .rbox-blended {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px;
+ border-style: solid solid solid solid;
+ border-color: #000000;
+ padding: 0;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .rbox-blended .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .rbox-blended .videoCube.horizontal {
+ border-style: none none none solid;
+ }
+
+ .rbox-blended .trc_pager_prev,
+ .rbox-blended .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .trc_pager div {
+ font-family: serif;
+ }
+
+ .rbox-blended .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .rbox-blended .playerCube:hover .thumbnail-overlay,
+ .rbox-blended .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .rbox-blended .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .rbox-blended .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .rbox-blended .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .rbox-blended .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .rbox-blended .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .rbox-blended .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .rbox-blended .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .rbox-blended .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .rbox-blended .playerCube div.videoCube:hover,
+ .rbox-blended div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .rbox-blended .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .rbox-blended div.syndicatedItem:hover,
+ .rbox-blended div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .rbox-blended div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .rbox-blended .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .rbox-blended .videoCube.syndicatedItem.horizontal {
+ border-style: none none none solid;
+ }
+
+ .rbox-blended .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .rbox-blended .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .rbox-blended .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .rbox-blended .videoCube.syndicatedItem .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .rbox-blended .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .rbox-blended .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .rbox-blended .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .rbox-blended .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .branding {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ text-align: left;
+ }
+
+ .rbox-blended .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: block;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .rbox-blended .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: block;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .rbox-blended .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .text-links-a .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: normal;
+ font-weight: normal;
+ max-height: 44.0px;
+ *height: 44.0px;
+ color: #281E1E;
+ text-decoration: none;
+ }
+
+ .text-links-a .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .text-links-a .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: auto;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .text-links-a .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .text-links-a .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .text-links-a .video-label,
+ .text-links-a .sponsored,
+ .text-links-a .sponsored-url {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ }
+
+ .text-links-a .trc_rbox_header {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 26.0px;
+ font-weight: 800;
+ text-decoration: none;
+ color: #281E1E;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0 0 0 0;
+ }
+
+ .text-links-a .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .text-links-a .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .text-links-a .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .text-links-a .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .text-links-a .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .text-links-a .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .text-links-a .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .text-links-a .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .text-links-a .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .text-links-a .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .text-links-a .videoCube {
+ width: 48%;
+ _width: 48%;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 3px 3px 3px 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .text-links-a div.videoCube:hover,
+ .text-links-a div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .text-links-a .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .text-links-a div.sponsored-default:hover,
+ .text-links-a div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .text-links-a .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .text-links-a .videoCube:hover .thumbnail-overlay,
+ .text-links-a .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .text-links-a .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .text-links-a .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .text-links-a div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .text-links-a .pager_enabled {
+ color: #0056b3;
+ }
+
+ .text-links-a .trc_pager_counter {
+ color: #000000;
+ }
+
+ .text-links-a .pager_disabled {
+ color: #7d898f;
+ }
+
+ .text-links-a .trc_pager_prev:hover,
+ .text-links-a .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .text-links-a .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .text-links-a .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .text-links-a div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .text-links-a .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .text-links-a .video-label-box {
+ text-align: left;
+ }
+
+ .text-links-a .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .text-links-a .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .text-links-a .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .text-links-a {
+ width: auto;
+ _width: auto;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .text-links-a .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .text-links-a .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .text-links-a .trc_pager_prev,
+ .text-links-a .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .text-links-a .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .text-links-a .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .text-links-a .trc_pager div {
+ font-family: serif;
+ }
+
+ .text-links-a .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .text-links-a .playerCube:hover .thumbnail-overlay,
+ .text-links-a .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .text-links-a .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .text-links-a .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .text-links-a .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .text-links-a .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .text-links-a .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .text-links-a .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .text-links-a .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .text-links-a .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .text-links-a .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .text-links-a .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .text-links-a .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .text-links-a .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .text-links-a .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .text-links-a .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .text-links-a .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .text-links-a .playerCube div.videoCube:hover,
+ .text-links-a div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .text-links-a .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .text-links-a div.syndicatedItem:hover,
+ .text-links-a div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .text-links-a div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .text-links-a .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .text-links-a .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .text-links-a .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .text-links-a .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .text-links-a .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .text-links-a .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .text-links-a .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .text-links-a .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .text-links-a .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .text-links-a .syndicatedItem .video-title {
+ max-height: 44.0px;
+ *height: 44.0px;
+ color: #281E1E;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 16.0px;
+ line-height: normal;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .text-links-a .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .text-links-a .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .text-links-a .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .text-links-a .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .text-links-a .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .text-links-a .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .text-links-a .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .text-links-a .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .text-links-a .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .text-links-a .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ background-image: null;
+ text-align: left;
+ }
+
+ .text-links-a .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .text-links-a .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .text-links-a .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .thumbnails-a .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 15.0px;
+ line-height: 20.0px;
+ font-weight: bold;
+ max-height: 80.0px;
+ *height: 80.0px;
+ color: #333;
+ text-decoration: none;
+ }
+
+ .thumbnails-a .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .thumbnails-a .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .thumbnails-a .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .thumbnails-a .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .thumbnails-a .video-label,
+ .thumbnails-a .sponsored,
+ .thumbnails-a .sponsored-url {
+ font-family: 'Open Sans';
+ }
+
+ .thumbnails-a .trc_rbox_header {
+ font-family: 'Open Sans';
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #333;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .thumbnails-a .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .thumbnails-a .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .thumbnails-a .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .thumbnails-a .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .thumbnails-a .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .thumbnails-a div.videoCube:hover,
+ .thumbnails-a div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-a .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .thumbnails-a div.sponsored-default:hover,
+ .thumbnails-a div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .thumbnails-a .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-a .videoCube:hover .thumbnail-overlay,
+ .thumbnails-a .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-a .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .thumbnails-a .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-a div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-a .pager_enabled {
+ color: #0056b3;
+ }
+
+ .thumbnails-a .trc_pager_counter {
+ color: #000000;
+ }
+
+ .thumbnails-a .pager_disabled {
+ color: #7d898f;
+ }
+
+ .thumbnails-a .trc_pager_prev:hover,
+ .thumbnails-a .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-a .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .thumbnails-a .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .thumbnails-a div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-a .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .thumbnails-a .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-a .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .thumbnails-a .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-a .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .thumbnails-a {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .thumbnails-a .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-a .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-a .trc_pager_prev,
+ .thumbnails-a .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-a .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-a .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a .trc_pager div {
+ font-family: serif;
+ }
+
+ .thumbnails-a .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-a .playerCube:hover .thumbnail-overlay,
+ .thumbnails-a .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-a .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .thumbnails-a .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .thumbnails-a .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .thumbnails-a .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-a .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .thumbnails-a .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .thumbnails-a .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-a .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .thumbnails-a .playerCube div.videoCube:hover,
+ .thumbnails-a div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-a .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .thumbnails-a div.syndicatedItem:hover,
+ .thumbnails-a div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-a div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-a .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .thumbnails-a .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-a .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .thumbnails-a .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-a .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-a .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .thumbnails-a .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .thumbnails-a .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .thumbnails-a .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .thumbnails-a .syndicatedItem .video-title {
+ max-height: 60.0px;
+ *height: 60.0px;
+ color: #333;
+ font-family: 'Open Sans';
+ font-size: 15.0px;
+ line-height: 20.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .thumbnails-a .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-a .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .thumbnails-a .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-a .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-a .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-a .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-a .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-a .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-a .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-a .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Open Sans';
+ background-image: null;
+ text-align: left;
+ }
+
+ .thumbnails-a .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .thumbnails-a .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .thumbnails-a .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .thumbnails-b .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 15.0px;
+ line-height: 20.0px;
+ font-weight: bold;
+ max-height: 80.0px;
+ *height: 80.0px;
+ color: #333;
+ text-decoration: none;
+ }
+
+ .thumbnails-b .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .thumbnails-b .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .thumbnails-b .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .thumbnails-b .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .thumbnails-b .video-label,
+ .thumbnails-b .sponsored,
+ .thumbnails-b .sponsored-url {
+ font-family: 'Open Sans';
+ }
+
+ .thumbnails-b .trc_rbox_header {
+ font-family: 'Open Sans';
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #333;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .thumbnails-b .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .thumbnails-b .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .thumbnails-b .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-b .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-b .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-b .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-b .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-b .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-b .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .thumbnails-b .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .thumbnails-b .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .thumbnails-b div.videoCube:hover,
+ .thumbnails-b div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-b .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .thumbnails-b div.sponsored-default:hover,
+ .thumbnails-b div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .thumbnails-b .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-b .videoCube:hover .thumbnail-overlay,
+ .thumbnails-b .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-b .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .thumbnails-b .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-b div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-b .pager_enabled {
+ color: #0056b3;
+ }
+
+ .thumbnails-b .trc_pager_counter {
+ color: #000000;
+ }
+
+ .thumbnails-b .pager_disabled {
+ color: #7d898f;
+ }
+
+ .thumbnails-b .trc_pager_prev:hover,
+ .thumbnails-b .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-b .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .thumbnails-b .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .thumbnails-b div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-b .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .thumbnails-b .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-b .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .thumbnails-b .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-b .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .thumbnails-b {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .thumbnails-b .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-b .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-b .trc_pager_prev,
+ .thumbnails-b .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-b .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-b .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-b .trc_pager div {
+ font-family: serif;
+ }
+
+ .thumbnails-b .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-b .playerCube:hover .thumbnail-overlay,
+ .thumbnails-b .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-b .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .thumbnails-b .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .thumbnails-b .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .thumbnails-b .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-b .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-b .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-b .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-b .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-b .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .thumbnails-b .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .thumbnails-b .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-b .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-b .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-b .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-b .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .thumbnails-b .playerCube div.videoCube:hover,
+ .thumbnails-b div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-b .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .thumbnails-b div.syndicatedItem:hover,
+ .thumbnails-b div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-b div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-b .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .thumbnails-b .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-b .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .thumbnails-b .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-b .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-b .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .thumbnails-b .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .thumbnails-b .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .thumbnails-b .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .thumbnails-b .syndicatedItem .video-title {
+ max-height: 60.0px;
+ *height: 60.0px;
+ color: #333;
+ font-family: 'Open Sans';
+ font-size: 15.0px;
+ line-height: 20.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .thumbnails-b .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-b .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .thumbnails-b .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-b .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-b .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-b .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-b .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-b .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-b .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-b .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Open Sans';
+ background-image: null;
+ text-align: left;
+ }
+
+ .thumbnails-b .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .thumbnails-b .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .thumbnails-b .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .thumbnails-c .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 15.0px;
+ line-height: 20.0px;
+ font-weight: bold;
+ max-height: 80.0px;
+ *height: 80.0px;
+ color: #333;
+ text-decoration: none;
+ }
+
+ .thumbnails-c .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .thumbnails-c .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .thumbnails-c .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .thumbnails-c .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .thumbnails-c .video-label,
+ .thumbnails-c .sponsored,
+ .thumbnails-c .sponsored-url {
+ font-family: 'Open Sans';
+ }
+
+ .thumbnails-c .trc_rbox_header {
+ font-family: 'Open Sans';
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #444444;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .thumbnails-c .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .thumbnails-c .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .thumbnails-c .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-c .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-c .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-c .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-c .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-c .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-c .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .thumbnails-c .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .thumbnails-c .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .thumbnails-c div.videoCube:hover,
+ .thumbnails-c div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-c .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .thumbnails-c div.sponsored-default:hover,
+ .thumbnails-c div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .thumbnails-c .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-c .videoCube:hover .thumbnail-overlay,
+ .thumbnails-c .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-c .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .thumbnails-c .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-c div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-c .pager_enabled {
+ color: #0056b3;
+ }
+
+ .thumbnails-c .trc_pager_counter {
+ color: #000000;
+ }
+
+ .thumbnails-c .pager_disabled {
+ color: #7d898f;
+ }
+
+ .thumbnails-c .trc_pager_prev:hover,
+ .thumbnails-c .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-c .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .thumbnails-c .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .thumbnails-c div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-c .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .thumbnails-c .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-c .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .thumbnails-c .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-c .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .thumbnails-c {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .thumbnails-c .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-c .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-c .trc_pager_prev,
+ .thumbnails-c .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-c .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-c .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-c .trc_pager div {
+ font-family: serif;
+ }
+
+ .thumbnails-c .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-c .playerCube:hover .thumbnail-overlay,
+ .thumbnails-c .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-c .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .thumbnails-c .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .thumbnails-c .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .thumbnails-c .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-c .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-c .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-c .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-c .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-c .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .thumbnails-c .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .thumbnails-c .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-c .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-c .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-c .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-c .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .thumbnails-c .playerCube div.videoCube:hover,
+ .thumbnails-c div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-c .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .thumbnails-c div.syndicatedItem:hover,
+ .thumbnails-c div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-c div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-c .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .thumbnails-c .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-c .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .thumbnails-c .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-c .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-c .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .thumbnails-c .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .thumbnails-c .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .thumbnails-c .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .thumbnails-c .syndicatedItem .video-title {
+ max-height: 60.0px;
+ *height: 60.0px;
+ color: #333;
+ font-family: 'Open Sans';
+ font-size: 15.0px;
+ line-height: 20.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .thumbnails-c .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-c .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .thumbnails-c .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-c .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-c .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-c .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-c .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-c .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-c .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-c .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Open Sans';
+ background-image: null;
+ text-align: left;
+ }
+
+ .thumbnails-c .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .thumbnails-c .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .thumbnails-c .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .thumbnails-d .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ max-height: 88.0px;
+ *height: 88.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .thumbnails-d .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .thumbnails-d .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .thumbnails-d .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .thumbnails-d .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .thumbnails-d .video-label,
+ .thumbnails-d .sponsored,
+ .thumbnails-d .sponsored-url {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ }
+
+ .thumbnails-d .trc_rbox_header {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .thumbnails-d .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .thumbnails-d .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .thumbnails-d .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .thumbnails-d .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .thumbnails-d .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .thumbnails-d div.videoCube:hover,
+ .thumbnails-d div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-d .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .thumbnails-d div.sponsored-default:hover,
+ .thumbnails-d div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .thumbnails-d .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-d .videoCube:hover .thumbnail-overlay,
+ .thumbnails-d .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-d .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .thumbnails-d .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-d div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-d .pager_enabled {
+ color: #0056b3;
+ }
+
+ .thumbnails-d .trc_pager_counter {
+ color: #000000;
+ }
+
+ .thumbnails-d .pager_disabled {
+ color: #7d898f;
+ }
+
+ .thumbnails-d .trc_pager_prev:hover,
+ .thumbnails-d .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-d .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .thumbnails-d .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .thumbnails-d div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-d .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .thumbnails-d .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-d .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .thumbnails-d .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-d .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .thumbnails-d {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .thumbnails-d .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-d .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-d .trc_pager_prev,
+ .thumbnails-d .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-d .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-d .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d .trc_pager div {
+ font-family: serif;
+ }
+
+ .thumbnails-d .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-d .playerCube:hover .thumbnail-overlay,
+ .thumbnails-d .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-d .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .thumbnails-d .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .thumbnails-d .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .thumbnails-d .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-d .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .thumbnails-d .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .thumbnails-d .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-d .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .thumbnails-d .playerCube div.videoCube:hover,
+ .thumbnails-d div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-d .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .thumbnails-d div.syndicatedItem:hover,
+ .thumbnails-d div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-d div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-d .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .thumbnails-d .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-d .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .thumbnails-d .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-d .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-d .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .thumbnails-d .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .thumbnails-d .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .thumbnails-d .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .thumbnails-d .syndicatedItem .video-title {
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #000000;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .thumbnails-d .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-d .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .thumbnails-d .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-d .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-d .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-d .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-d .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-d .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-d .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-d .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ background-image: null;
+ text-align: left;
+ }
+
+ .thumbnails-d .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .thumbnails-d .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .thumbnails-d .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .thumbnails-d-2 .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ max-height: 88.0px;
+ *height: 88.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .thumbnails-d-2 .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .thumbnails-d-2 .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .thumbnails-d-2 .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .thumbnails-d-2 .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .thumbnails-d-2 .video-label,
+ .thumbnails-d-2 .sponsored,
+ .thumbnails-d-2 .sponsored-url {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ }
+
+ .thumbnails-d-2 .trc_rbox_header {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .thumbnails-d-2 .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .thumbnails-d-2 .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .thumbnails-d-2 .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d-2 .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d-2 .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d-2 .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d-2 .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d-2 .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d-2 .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .thumbnails-d-2 .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .thumbnails-d-2 .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .thumbnails-d-2 div.videoCube:hover,
+ .thumbnails-d-2 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-d-2 .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .thumbnails-d-2 div.sponsored-default:hover,
+ .thumbnails-d-2 div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .thumbnails-d-2 .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-d-2 .videoCube:hover .thumbnail-overlay,
+ .thumbnails-d-2 .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-d-2 .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .thumbnails-d-2 .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-d-2 div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-d-2 .pager_enabled {
+ color: #0056b3;
+ }
+
+ .thumbnails-d-2 .trc_pager_counter {
+ color: #000000;
+ }
+
+ .thumbnails-d-2 .pager_disabled {
+ color: #7d898f;
+ }
+
+ .thumbnails-d-2 .trc_pager_prev:hover,
+ .thumbnails-d-2 .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-d-2 .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .thumbnails-d-2 .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .thumbnails-d-2 div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-d-2 .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .thumbnails-d-2 .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-d-2 .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .thumbnails-d-2 .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-d-2 .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .thumbnails-d-2 {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .thumbnails-d-2 .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-d-2 .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-d-2 .trc_pager_prev,
+ .thumbnails-d-2 .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-d-2 .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-d-2 .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d-2 .trc_pager div {
+ font-family: serif;
+ }
+
+ .thumbnails-d-2 .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-d-2 .playerCube:hover .thumbnail-overlay,
+ .thumbnails-d-2 .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-d-2 .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .thumbnails-d-2 .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .thumbnails-d-2 .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .thumbnails-d-2 .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d-2 .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d-2 .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-d-2 .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d-2 .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d-2 .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .thumbnails-d-2 .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .thumbnails-d-2 .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-d-2 .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d-2 .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d-2 .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d-2 .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .thumbnails-d-2 .playerCube div.videoCube:hover,
+ .thumbnails-d-2 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-d-2 .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .thumbnails-d-2 div.syndicatedItem:hover,
+ .thumbnails-d-2 div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-d-2 div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-d-2 .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .thumbnails-d-2 .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-d-2 .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .thumbnails-d-2 .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-d-2 .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-d-2 .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .thumbnails-d-2 .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .thumbnails-d-2 .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .thumbnails-d-2 .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .thumbnails-d-2 .syndicatedItem .video-title {
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #000000;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .thumbnails-d-2 .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-d-2 .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .thumbnails-d-2 .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-d-2 .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-d-2 .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-d-2 .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-d-2 .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-d-2 .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-d-2 .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-d-2 .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ background-image: null;
+ text-align: left;
+ }
+
+ .thumbnails-d-2 .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .thumbnails-d-2 .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .thumbnails-d-2 .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .thumbnails-e .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ max-height: 88.0px;
+ *height: 88.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .thumbnails-e .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .thumbnails-e .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .thumbnails-e .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .thumbnails-e .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .thumbnails-e .video-label,
+ .thumbnails-e .sponsored,
+ .thumbnails-e .sponsored-url {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ }
+
+ .thumbnails-e .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .thumbnails-e .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .thumbnails-e .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .thumbnails-e .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-e .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-e .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-e .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-e .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-e .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-e .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .thumbnails-e .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .thumbnails-e .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .thumbnails-e div.videoCube:hover,
+ .thumbnails-e div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-e .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .thumbnails-e div.sponsored-default:hover,
+ .thumbnails-e div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .thumbnails-e .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-e .videoCube:hover .thumbnail-overlay,
+ .thumbnails-e .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-e .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .thumbnails-e .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-e div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-e .pager_enabled {
+ color: #0056b3;
+ }
+
+ .thumbnails-e .trc_pager_counter {
+ color: #000000;
+ }
+
+ .thumbnails-e .pager_disabled {
+ color: #7d898f;
+ }
+
+ .thumbnails-e .trc_pager_prev:hover,
+ .thumbnails-e .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-e .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .thumbnails-e .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .thumbnails-e div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-e .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .thumbnails-e .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-e .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .thumbnails-e .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-e .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .thumbnails-e {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .thumbnails-e .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-e .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-e .trc_pager_prev,
+ .thumbnails-e .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-e .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-e .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-e .trc_pager div {
+ font-family: serif;
+ }
+
+ .thumbnails-e .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-e .playerCube:hover .thumbnail-overlay,
+ .thumbnails-e .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-e .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .thumbnails-e .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .thumbnails-e .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .thumbnails-e .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-e .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-e .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-e .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-e .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-e .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .thumbnails-e .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .thumbnails-e .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-e .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-e .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-e .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-e .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .thumbnails-e .playerCube div.videoCube:hover,
+ .thumbnails-e div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-e .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .thumbnails-e div.syndicatedItem:hover,
+ .thumbnails-e div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-e div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-e .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .thumbnails-e .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-e .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .thumbnails-e .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-e .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-e .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .thumbnails-e .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .thumbnails-e .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .thumbnails-e .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .thumbnails-e .syndicatedItem .video-title {
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #000000;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .thumbnails-e .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-e .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .thumbnails-e .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-e .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-e .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-e .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-e .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-e .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-e .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-e .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ background-image: null;
+ text-align: left;
+ }
+
+ .thumbnails-e .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .thumbnails-e .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .thumbnails-e .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .thumbnails-f-abp .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14.0px;
+ line-height: 19.0px;
+ font-weight: bold;
+ max-height: 57.0px;
+ *height: 57.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .thumbnails-f-abp .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .thumbnails-f-abp .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .thumbnails-f-abp .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .thumbnails-f-abp .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .thumbnails-f-abp .video-label,
+ .thumbnails-f-abp .sponsored,
+ .thumbnails-f-abp .sponsored-url {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ }
+
+ .thumbnails-f-abp .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .thumbnails-f-abp .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .thumbnails-f-abp .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .thumbnails-f-abp .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-f-abp .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-f-abp .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-f-abp .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-f-abp .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-f-abp .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-f-abp .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .thumbnails-f-abp .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .thumbnails-f-abp .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .thumbnails-f-abp div.videoCube:hover,
+ .thumbnails-f-abp div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-f-abp .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .thumbnails-f-abp div.sponsored-default:hover,
+ .thumbnails-f-abp div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .thumbnails-f-abp .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-f-abp .videoCube:hover .thumbnail-overlay,
+ .thumbnails-f-abp .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-f-abp .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .thumbnails-f-abp .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-f-abp div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-f-abp .pager_enabled {
+ color: #0056b3;
+ }
+
+ .thumbnails-f-abp .trc_pager_counter {
+ color: #000000;
+ }
+
+ .thumbnails-f-abp .pager_disabled {
+ color: #7d898f;
+ }
+
+ .thumbnails-f-abp .trc_pager_prev:hover,
+ .thumbnails-f-abp .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-f-abp .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .thumbnails-f-abp .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .thumbnails-f-abp div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-f-abp .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .thumbnails-f-abp .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-f-abp .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .thumbnails-f-abp .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-f-abp .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .thumbnails-f-abp {
+ width: 300px;
+ _width: 300px;
+ border-width: 1px 0px 1px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 8px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .thumbnails-f-abp .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-f-abp .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-f-abp .trc_pager_prev,
+ .thumbnails-f-abp .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-f-abp .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-f-abp .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-f-abp .trc_pager div {
+ font-family: serif;
+ }
+
+ .thumbnails-f-abp .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-f-abp .playerCube:hover .thumbnail-overlay,
+ .thumbnails-f-abp .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-f-abp .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .thumbnails-f-abp .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .thumbnails-f-abp .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .thumbnails-f-abp .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-f-abp .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-f-abp .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-f-abp .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-f-abp .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-f-abp .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .thumbnails-f-abp .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .thumbnails-f-abp .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-f-abp .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-f-abp .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-f-abp .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-f-abp .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .thumbnails-f-abp .playerCube div.videoCube:hover,
+ .thumbnails-f-abp div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-f-abp .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .thumbnails-f-abp div.syndicatedItem:hover,
+ .thumbnails-f-abp div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-f-abp div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-f-abp .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .thumbnails-f-abp .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-f-abp .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .thumbnails-f-abp .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-f-abp .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-f-abp .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .thumbnails-f-abp .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .thumbnails-f-abp .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .thumbnails-f-abp .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .thumbnails-f-abp .syndicatedItem .video-title {
+ max-height: 38.0px;
+ *height: 38.0px;
+ color: #000000;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 14.0px;
+ line-height: 19.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .thumbnails-f-abp .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-f-abp .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .thumbnails-f-abp .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-f-abp .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-f-abp .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-f-abp .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-f-abp .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-f-abp .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-f-abp .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-f-abp .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ background-image: null;
+ text-align: left;
+ }
+
+ .thumbnails-f-abp .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .thumbnails-f-abp .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .thumbnails-f-abp .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .thumbnails-g .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 19.0px;
+ font-weight: 800;
+ max-height: 59.0px;
+ *height: 59.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .thumbnails-g .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .thumbnails-g .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .thumbnails-g .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .thumbnails-g .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .thumbnails-g .video-label,
+ .thumbnails-g .sponsored,
+ .thumbnails-g .sponsored-url {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ }
+
+ .thumbnails-g .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .thumbnails-g .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .thumbnails-g .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .thumbnails-g .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-g .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-g .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-g .video-uploader {
+ font-size: 11px;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000;
+ }
+
+ .thumbnails-g .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-g .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-g .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .thumbnails-g .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .thumbnails-g .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .thumbnails-g div.videoCube:hover,
+ .thumbnails-g div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-g .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .thumbnails-g div.sponsored-default:hover,
+ .thumbnails-g div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .thumbnails-g .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-g .videoCube:hover .thumbnail-overlay,
+ .thumbnails-g .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-g .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .thumbnails-g .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-g div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-g .pager_enabled {
+ color: #0056b3;
+ }
+
+ .thumbnails-g .trc_pager_counter {
+ color: #000000;
+ }
+
+ .thumbnails-g .pager_disabled {
+ color: #7d898f;
+ }
+
+ .thumbnails-g .trc_pager_prev:hover,
+ .thumbnails-g .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-g .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .thumbnails-g .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .thumbnails-g div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-g .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .thumbnails-g .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-g .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .thumbnails-g .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-g .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .thumbnails-g {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .thumbnails-g .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-g .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-g .trc_pager_prev,
+ .thumbnails-g .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-g .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-g .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-g .trc_pager div {
+ font-family: serif;
+ }
+
+ .thumbnails-g .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-g .playerCube:hover .thumbnail-overlay,
+ .thumbnails-g .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-g .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .thumbnails-g .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .thumbnails-g .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .thumbnails-g .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-g .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-g .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-g .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-g .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-g .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .thumbnails-g .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .thumbnails-g .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-g .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-g .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-g .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-g .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .thumbnails-g .playerCube div.videoCube:hover,
+ .thumbnails-g div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-g .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .thumbnails-g div.syndicatedItem:hover,
+ .thumbnails-g div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-g div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-g .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .thumbnails-g .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-g .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .thumbnails-g .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-g .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-g .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .thumbnails-g .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .thumbnails-g .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .thumbnails-g .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .thumbnails-g .syndicatedItem .video-title {
+ max-height: 60.0px;
+ *height: 60.0px;
+ color: #000000;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 16.0px;
+ line-height: 19.0px;
+ font-weight: 800;
+ text-decoration: none;
+ }
+
+ .thumbnails-g .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-g .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .thumbnails-g .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-g .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-g .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-g .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-g .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-g .syndicatedItem .video-uploader {
+ color: #000;
+ font-size: 11px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .thumbnails-g .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-g .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ background-image: null;
+ text-align: left;
+ }
+
+ .thumbnails-g .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .thumbnails-g .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .thumbnails-g .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .thumbnails-h .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 17.0px;
+ line-height: 23.0px;
+ font-weight: normal;
+ max-height: 69.0px;
+ *height: 69.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .thumbnails-h .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .thumbnails-h .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .thumbnails-h .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .thumbnails-h .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .thumbnails-h .video-label,
+ .thumbnails-h .sponsored,
+ .thumbnails-h .sponsored-url {
+ font-family: 'Fira Sans';
+ }
+
+ .thumbnails-h .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .thumbnails-h .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .thumbnails-h .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .thumbnails-h .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-h .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-h .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-h .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-h .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-h .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-h .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .thumbnails-h .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .thumbnails-h .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .thumbnails-h div.videoCube:hover,
+ .thumbnails-h div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-h .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .thumbnails-h div.sponsored-default:hover,
+ .thumbnails-h div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .thumbnails-h .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-h .videoCube:hover .thumbnail-overlay,
+ .thumbnails-h .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-h .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .thumbnails-h .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-h div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-h .pager_enabled {
+ color: #0056b3;
+ }
+
+ .thumbnails-h .trc_pager_counter {
+ color: #000000;
+ }
+
+ .thumbnails-h .pager_disabled {
+ color: #7d898f;
+ }
+
+ .thumbnails-h .trc_pager_prev:hover,
+ .thumbnails-h .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-h .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .thumbnails-h .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .thumbnails-h div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-h .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .thumbnails-h .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-h .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .thumbnails-h .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-h .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .thumbnails-h {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .thumbnails-h .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-h .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-h .trc_pager_prev,
+ .thumbnails-h .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-h .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-h .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-h .trc_pager div {
+ font-family: serif;
+ }
+
+ .thumbnails-h .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-h .playerCube:hover .thumbnail-overlay,
+ .thumbnails-h .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-h .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .thumbnails-h .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .thumbnails-h .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .thumbnails-h .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-h .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-h .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-h .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-h .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-h .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .thumbnails-h .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .thumbnails-h .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-h .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-h .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-h .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-h .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .thumbnails-h .playerCube div.videoCube:hover,
+ .thumbnails-h div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-h .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .thumbnails-h div.syndicatedItem:hover,
+ .thumbnails-h div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-h div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-h .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .thumbnails-h .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-h .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .thumbnails-h .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-h .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-h .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .thumbnails-h .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .thumbnails-h .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .thumbnails-h .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .thumbnails-h .syndicatedItem .video-title {
+ max-height: 46.0px;
+ *height: 46.0px;
+ color: #000000;
+ font-family: 'Fira Sans';
+ font-size: 17.0px;
+ line-height: 23.0px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-h .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-h .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .thumbnails-h .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-h .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-h .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-h .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-h .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-h .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-h .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-h .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: 'Fira Sans';
+ background-image: null;
+ text-align: left;
+ }
+
+ .thumbnails-h .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .thumbnails-h .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .thumbnails-h .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 34%;
+ _width: 34%;
+ }
+
+ .thumbnails-i .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14.0px;
+ line-height: 19.0px;
+ font-weight: bold;
+ max-height: 76.0px;
+ *height: 76.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .thumbnails-i .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .thumbnails-i .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .thumbnails-i .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .thumbnails-i .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .thumbnails-i .video-label,
+ .thumbnails-i .sponsored,
+ .thumbnails-i .sponsored-url {
+ font-family: 'Fira Sans';
+ }
+
+ .thumbnails-i .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .thumbnails-i .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .thumbnails-i .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .thumbnails-i .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-i .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-i .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-i .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-i .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-i .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-i .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .thumbnails-i .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .thumbnails-i .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .thumbnails-i div.videoCube:hover,
+ .thumbnails-i div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-i .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .thumbnails-i div.sponsored-default:hover,
+ .thumbnails-i div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .thumbnails-i .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-i .videoCube:hover .thumbnail-overlay,
+ .thumbnails-i .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-i .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .thumbnails-i .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-i div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-i .pager_enabled {
+ color: #0056b3;
+ }
+
+ .thumbnails-i .trc_pager_counter {
+ color: #000000;
+ }
+
+ .thumbnails-i .pager_disabled {
+ color: #7d898f;
+ }
+
+ .thumbnails-i .trc_pager_prev:hover,
+ .thumbnails-i .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-i .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .thumbnails-i .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .thumbnails-i div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-i .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .thumbnails-i .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-i .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .thumbnails-i .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-i .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .thumbnails-i {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .thumbnails-i .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-i .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-i .trc_pager_prev,
+ .thumbnails-i .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-i .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-i .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-i .trc_pager div {
+ font-family: serif;
+ }
+
+ .thumbnails-i .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-i .playerCube:hover .thumbnail-overlay,
+ .thumbnails-i .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-i .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .thumbnails-i .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .thumbnails-i .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .thumbnails-i .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-i .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-i .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-i .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-i .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-i .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .thumbnails-i .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .thumbnails-i .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-i .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-i .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-i .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-i .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .thumbnails-i .playerCube div.videoCube:hover,
+ .thumbnails-i div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-i .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .thumbnails-i div.syndicatedItem:hover,
+ .thumbnails-i div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-i div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-i .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .thumbnails-i .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-i .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .thumbnails-i .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-i .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-i .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .thumbnails-i .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .thumbnails-i .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .thumbnails-i .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .thumbnails-i .syndicatedItem .video-title {
+ max-height: 57.0px;
+ *height: 57.0px;
+ color: #000000;
+ font-family: 'Fira Sans';
+ font-size: 14.0px;
+ line-height: 19.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .thumbnails-i .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-i .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .thumbnails-i .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-i .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-i .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-i .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-i .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-i .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-i .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-i .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Fira Sans';
+ background-image: null;
+ text-align: left;
+ }
+
+ .thumbnails-i .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .thumbnails-i .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .thumbnails-i .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 26%;
+ _width: 26%;
+ }
+
+ .thumbnails-j .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 17.0px;
+ line-height: 19.0px;
+ font-weight: 800;
+ max-height: 57.0px;
+ *height: 57.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .thumbnails-j .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .thumbnails-j .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .thumbnails-j .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .thumbnails-j .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .thumbnails-j .video-label,
+ .thumbnails-j .sponsored,
+ .thumbnails-j .sponsored-url {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ }
+
+ .thumbnails-j .trc_rbox_header {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 20.0px;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0 0 6px 0;
+ }
+
+ .thumbnails-j .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .thumbnails-j .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .thumbnails-j .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-j .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-j .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-j .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-j .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-j .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-j .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .thumbnails-j .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .thumbnails-j .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .thumbnails-j div.videoCube:hover,
+ .thumbnails-j div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-j .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .thumbnails-j div.sponsored-default:hover,
+ .thumbnails-j div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .thumbnails-j .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-j .videoCube:hover .thumbnail-overlay,
+ .thumbnails-j .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-j .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .thumbnails-j .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-j div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-j .pager_enabled {
+ color: #0056b3;
+ }
+
+ .thumbnails-j .trc_pager_counter {
+ color: #000000;
+ }
+
+ .thumbnails-j .pager_disabled {
+ color: #7d898f;
+ }
+
+ .thumbnails-j .trc_pager_prev:hover,
+ .thumbnails-j .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-j .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .thumbnails-j .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .thumbnails-j div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-j .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .thumbnails-j .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-j .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .thumbnails-j .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-j .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .thumbnails-j {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .thumbnails-j .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-j .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-j .trc_pager_prev,
+ .thumbnails-j .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-j .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-j .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-j .trc_pager div {
+ font-family: serif;
+ }
+
+ .thumbnails-j .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-j .playerCube:hover .thumbnail-overlay,
+ .thumbnails-j .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-j .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .thumbnails-j .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .thumbnails-j .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .thumbnails-j .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-j .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-j .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-j .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-j .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-j .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .thumbnails-j .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .thumbnails-j .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-j .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-j .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-j .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-j .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .thumbnails-j .playerCube div.videoCube:hover,
+ .thumbnails-j div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-j .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .thumbnails-j div.syndicatedItem:hover,
+ .thumbnails-j div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-j div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-j .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .thumbnails-j .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-j .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .thumbnails-j .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-j .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-j .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .thumbnails-j .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .thumbnails-j .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .thumbnails-j .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .thumbnails-j .syndicatedItem .video-title {
+ max-height: 38.0px;
+ *height: 38.0px;
+ color: #000000;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ font-size: 17.0px;
+ line-height: 19.0px;
+ font-weight: 800;
+ text-decoration: none;
+ }
+
+ .thumbnails-j .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-j .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .thumbnails-j .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-j .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-j .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-j .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-j .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-j .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-j .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-j .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Fira Sans', Helvetica, Arial;
+ background-image: null;
+ text-align: left;
+ }
+
+ .thumbnails-j .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .thumbnails-j .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .thumbnails-j .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .thumbnails-k .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 17.0px;
+ line-height: 23.0px;
+ font-weight: normal;
+ max-height: 69.0px;
+ *height: 69.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .thumbnails-k .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .thumbnails-k .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .thumbnails-k .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .thumbnails-k .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .thumbnails-k .video-label,
+ .thumbnails-k .sponsored,
+ .thumbnails-k .sponsored-url {
+ font-family: 'Fira Sans';
+ }
+
+ .thumbnails-k .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .thumbnails-k .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .thumbnails-k .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .thumbnails-k .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-k .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-k .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-k .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-k .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-k .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-k .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .thumbnails-k .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .thumbnails-k .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .thumbnails-k div.videoCube:hover,
+ .thumbnails-k div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-k .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .thumbnails-k div.sponsored-default:hover,
+ .thumbnails-k div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .thumbnails-k .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-k .videoCube:hover .thumbnail-overlay,
+ .thumbnails-k .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-k .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .thumbnails-k .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-k div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-k .pager_enabled {
+ color: #0056b3;
+ }
+
+ .thumbnails-k .trc_pager_counter {
+ color: #000000;
+ }
+
+ .thumbnails-k .pager_disabled {
+ color: #7d898f;
+ }
+
+ .thumbnails-k .trc_pager_prev:hover,
+ .thumbnails-k .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-k .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .thumbnails-k .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .thumbnails-k div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-k .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .thumbnails-k .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-k .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .thumbnails-k .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-k .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .thumbnails-k {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .thumbnails-k .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-k .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-k .trc_pager_prev,
+ .thumbnails-k .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-k .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-k .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-k .trc_pager div {
+ font-family: serif;
+ }
+
+ .thumbnails-k .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-k .playerCube:hover .thumbnail-overlay,
+ .thumbnails-k .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-k .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .thumbnails-k .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .thumbnails-k .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .thumbnails-k .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-k .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-k .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-k .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-k .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-k .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .thumbnails-k .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .thumbnails-k .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-k .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-k .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-k .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-k .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .thumbnails-k .playerCube div.videoCube:hover,
+ .thumbnails-k div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-k .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .thumbnails-k div.syndicatedItem:hover,
+ .thumbnails-k div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-k div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-k .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .thumbnails-k .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-k .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .thumbnails-k .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-k .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-k .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .thumbnails-k .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .thumbnails-k .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .thumbnails-k .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .thumbnails-k .syndicatedItem .video-title {
+ max-height: 46.0px;
+ *height: 46.0px;
+ color: #000000;
+ font-family: 'Fira Sans';
+ font-size: 17.0px;
+ line-height: 23.0px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-k .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-k .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .thumbnails-k .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-k .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-k .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-k .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-k .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-k .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-k .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-k .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: 'Fira Sans';
+ background-image: null;
+ text-align: left;
+ }
+
+ .thumbnails-k .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .thumbnails-k .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .thumbnails-k .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 34%;
+ _width: 34%;
+ }
+
+ .thumbnails-rr .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 15.0px;
+ line-height: 20.0px;
+ font-weight: bold;
+ max-height: 80.0px;
+ *height: 80.0px;
+ color: #333;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .thumbnails-rr .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .thumbnails-rr .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .thumbnails-rr .video-label,
+ .thumbnails-rr .sponsored,
+ .thumbnails-rr .sponsored-url {
+ font-family: 'Open Sans';
+ }
+
+ .thumbnails-rr .trc_rbox_header {
+ font-family: 'Open Sans';
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #444444;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .thumbnails-rr .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .thumbnails-rr .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .thumbnails-rr .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .thumbnails-rr .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .thumbnails-rr .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .thumbnails-rr div.videoCube:hover,
+ .thumbnails-rr div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-rr .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .thumbnails-rr div.sponsored-default:hover,
+ .thumbnails-rr div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .thumbnails-rr .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-rr .videoCube:hover .thumbnail-overlay,
+ .thumbnails-rr .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-rr .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .thumbnails-rr .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-rr div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-rr .pager_enabled {
+ color: #0056b3;
+ }
+
+ .thumbnails-rr .trc_pager_counter {
+ color: #000000;
+ }
+
+ .thumbnails-rr .pager_disabled {
+ color: #7d898f;
+ }
+
+ .thumbnails-rr .trc_pager_prev:hover,
+ .thumbnails-rr .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-rr .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .thumbnails-rr .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .thumbnails-rr div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-rr .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .thumbnails-rr .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-rr .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .thumbnails-rr .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-rr .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .thumbnails-rr {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .thumbnails-rr .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-rr .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-rr .trc_pager_prev,
+ .thumbnails-rr .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr .trc_pager div {
+ font-family: serif;
+ }
+
+ .thumbnails-rr .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-rr .playerCube:hover .thumbnail-overlay,
+ .thumbnails-rr .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-rr .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .thumbnails-rr .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .thumbnails-rr .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .thumbnails-rr .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-rr .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .thumbnails-rr .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .thumbnails-rr .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-rr .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .thumbnails-rr .playerCube div.videoCube:hover,
+ .thumbnails-rr div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-rr .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .thumbnails-rr div.syndicatedItem:hover,
+ .thumbnails-rr div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-rr div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-rr .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .thumbnails-rr .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-rr .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .thumbnails-rr .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-rr .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-rr .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .thumbnails-rr .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .thumbnails-rr .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .thumbnails-rr .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr .syndicatedItem .video-title {
+ max-height: 60.0px;
+ *height: 60.0px;
+ color: #333;
+ font-family: 'Open Sans';
+ font-size: 15.0px;
+ line-height: 20.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .thumbnails-rr .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Open Sans';
+ background-image: null;
+ text-align: left;
+ }
+
+ .thumbnails-rr .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .thumbnails-rr .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .thumbnails-rr .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .thumbnails-rr2 .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 15.0px;
+ line-height: 20.0px;
+ font-weight: bold;
+ max-height: 80.0px;
+ *height: 80.0px;
+ color: #333;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr2 .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr2 .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .thumbnails-rr2 .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .thumbnails-rr2 .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .thumbnails-rr2 .video-label,
+ .thumbnails-rr2 .sponsored,
+ .thumbnails-rr2 .sponsored-url {
+ font-family: 'Open Sans';
+ }
+
+ .thumbnails-rr2 .trc_rbox_header {
+ font-family: 'Open Sans';
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #444444;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .thumbnails-rr2 .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .thumbnails-rr2 .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .thumbnails-rr2 .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr2 .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr2 .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr2 .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr2 .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr2 .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr2 .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .thumbnails-rr2 .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .thumbnails-rr2 .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .thumbnails-rr2 div.videoCube:hover,
+ .thumbnails-rr2 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-rr2 .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .thumbnails-rr2 div.sponsored-default:hover,
+ .thumbnails-rr2 div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .thumbnails-rr2 .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-rr2 .videoCube:hover .thumbnail-overlay,
+ .thumbnails-rr2 .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-rr2 .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .thumbnails-rr2 .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-rr2 div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-rr2 .pager_enabled {
+ color: #0056b3;
+ }
+
+ .thumbnails-rr2 .trc_pager_counter {
+ color: #000000;
+ }
+
+ .thumbnails-rr2 .pager_disabled {
+ color: #7d898f;
+ }
+
+ .thumbnails-rr2 .trc_pager_prev:hover,
+ .thumbnails-rr2 .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-rr2 .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .thumbnails-rr2 .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .thumbnails-rr2 div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-rr2 .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .thumbnails-rr2 .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-rr2 .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .thumbnails-rr2 .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-rr2 .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .thumbnails-rr2 {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .thumbnails-rr2 .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-rr2 .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-rr2 .trc_pager_prev,
+ .thumbnails-rr2 .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr2 .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr2 .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr2 .trc_pager div {
+ font-family: serif;
+ }
+
+ .thumbnails-rr2 .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-rr2 .playerCube:hover .thumbnail-overlay,
+ .thumbnails-rr2 .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-rr2 .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .thumbnails-rr2 .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .thumbnails-rr2 .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .thumbnails-rr2 .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr2 .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr2 .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-rr2 .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr2 .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr2 .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .thumbnails-rr2 .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .thumbnails-rr2 .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-rr2 .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr2 .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr2 .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr2 .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .thumbnails-rr2 .playerCube div.videoCube:hover,
+ .thumbnails-rr2 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-rr2 .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .thumbnails-rr2 div.syndicatedItem:hover,
+ .thumbnails-rr2 div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-rr2 div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-rr2 .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .thumbnails-rr2 .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-rr2 .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .thumbnails-rr2 .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-rr2 .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-rr2 .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .thumbnails-rr2 .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .thumbnails-rr2 .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .thumbnails-rr2 .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr2 .syndicatedItem .video-title {
+ max-height: 60.0px;
+ *height: 60.0px;
+ color: #333;
+ font-family: 'Open Sans';
+ font-size: 15.0px;
+ line-height: 20.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr2 .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr2 .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .thumbnails-rr2 .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr2 .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr2 .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr2 .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr2 .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr2 .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr2 .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr2 .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Open Sans';
+ background-image: null;
+ text-align: left;
+ }
+
+ .thumbnails-rr2 .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .thumbnails-rr2 .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .thumbnails-rr2 .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .thumbnails-rr3 .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 13.0px;
+ line-height: 18.0px;
+ font-weight: normal;
+ max-height: 54.0px;
+ *height: 54.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr3 .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr3 .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .thumbnails-rr3 .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .thumbnails-rr3 .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .thumbnails-rr3 .video-label,
+ .thumbnails-rr3 .sponsored,
+ .thumbnails-rr3 .sponsored-url {
+ font-family: 'Fira Sans';
+ }
+
+ .thumbnails-rr3 .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .thumbnails-rr3 .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .thumbnails-rr3 .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .thumbnails-rr3 .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr3 .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr3 .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr3 .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr3 .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr3 .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr3 .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .thumbnails-rr3 .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .thumbnails-rr3 .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .thumbnails-rr3 div.videoCube:hover,
+ .thumbnails-rr3 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-rr3 .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .thumbnails-rr3 div.sponsored-default:hover,
+ .thumbnails-rr3 div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .thumbnails-rr3 .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-rr3 .videoCube:hover .thumbnail-overlay,
+ .thumbnails-rr3 .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-rr3 .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .thumbnails-rr3 .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-rr3 div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-rr3 .pager_enabled {
+ color: #0056b3;
+ }
+
+ .thumbnails-rr3 .trc_pager_counter {
+ color: #000000;
+ }
+
+ .thumbnails-rr3 .pager_disabled {
+ color: #7d898f;
+ }
+
+ .thumbnails-rr3 .trc_pager_prev:hover,
+ .thumbnails-rr3 .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-rr3 .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .thumbnails-rr3 .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .thumbnails-rr3 div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-rr3 .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .thumbnails-rr3 .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-rr3 .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .thumbnails-rr3 .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-rr3 .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .thumbnails-rr3 {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .thumbnails-rr3 .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-rr3 .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-rr3 .trc_pager_prev,
+ .thumbnails-rr3 .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr3 .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr3 .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr3 .trc_pager div {
+ font-family: serif;
+ }
+
+ .thumbnails-rr3 .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-rr3 .playerCube:hover .thumbnail-overlay,
+ .thumbnails-rr3 .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-rr3 .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .thumbnails-rr3 .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .thumbnails-rr3 .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .thumbnails-rr3 .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr3 .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr3 .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-rr3 .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr3 .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr3 .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .thumbnails-rr3 .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .thumbnails-rr3 .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-rr3 .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr3 .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr3 .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-rr3 .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .thumbnails-rr3 .playerCube div.videoCube:hover,
+ .thumbnails-rr3 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-rr3 .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .thumbnails-rr3 div.syndicatedItem:hover,
+ .thumbnails-rr3 div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-rr3 div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-rr3 .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .thumbnails-rr3 .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-rr3 .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .thumbnails-rr3 .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-rr3 .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-rr3 .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .thumbnails-rr3 .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .thumbnails-rr3 .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .thumbnails-rr3 .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr3 .syndicatedItem .video-title {
+ max-height: 36.0px;
+ *height: 36.0px;
+ color: #000000;
+ font-family: 'Fira Sans';
+ font-size: 13.0px;
+ line-height: 18.0px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr3 .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr3 .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .thumbnails-rr3 .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr3 .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr3 .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr3 .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr3 .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr3 .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr3 .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-rr3 .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: 'Fira Sans';
+ background-image: null;
+ text-align: left;
+ }
+
+ .thumbnails-rr3 .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .thumbnails-rr3 .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .thumbnails-rr3 .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 34%;
+ _width: 34%;
+ }
+
+ .thumbnails-h .trc_rbox_outer .videoCube {
+ margin-bottom: 20px!important;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/0b766547f84e83c67d3decdc0b3851f0.png) no-repeat;
+ height: 27px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 27px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 27px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .videoCube a {
+ padding: 0;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_ab_thumbnails-d_3x3_size-round-10 .video-label-box {
+ height: 88.0px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .syndicatedItem .branding {
+ line-height: 22.0px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .trc_header_left_column {
+ width: 100%;
+ display: inline-block;
+ background: transparent;
+ height: 27px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10 .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/0b766547f84e83c67d3decdc0b3851f0.png) no-repeat;
+ height: 27px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 27px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 27px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .videoCube a {
+ padding: 0;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_ab_thumbnails-d_3x3_size-round-10-factor .video-label-box {
+ height: 88.0px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .syndicatedItem .branding {
+ line-height: 22.0px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .trc_header_left_column {
+ width: 100%;
+ display: inline-block;
+ background: transparent;
+ height: 27px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-10-factor .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/0b766547f84e83c67d3decdc0b3851f0.png) no-repeat;
+ height: 27px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 27px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 27px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .videoCube a {
+ padding: 0;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_ab_thumbnails-d_3x3_size-round-20 .video-label-box {
+ height: 88.0px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .syndicatedItem .branding {
+ line-height: 22.0px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .trc_header_left_column {
+ width: 100%;
+ display: inline-block;
+ background: transparent;
+ height: 27px;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_ab_thumbnails-d_3x3_size-round-20 .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .ab_thumbnails-a_abp-mode img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_thumbnails-a_abp-mode [class*=span] {
+ float: none;
+ margin-left: 0px;
+ }
+
+ .ab_thumbnails-a_abp-mode .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: auto;
+ }
+
+ .ab_thumbnails-a_abp-mode .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: auto;
+ }
+
+ .ab_thumbnails-a_abp-mode .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: normal;
+ }
+
+ .ab_thumbnails-a_abp-mode .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-a_abp-mode .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .ab_thumbnails-a_abp-mode .videoCube a {
+ padding: 0;
+ }
+
+ .ab_thumbnails-a_abp-mode .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_thumbnails-a_abp-mode .video-label-box {
+ height: 80.0px;
+ }
+
+ .ab_thumbnails-a_abp-mode .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_thumbnails-a_abp-mode .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .ab_thumbnails-a_abp-mode .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-a_abp-mode .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_thumbnails-a_abp-mode .syndicatedItem .branding {
+ line-height: 20.0px;
+ }
+
+ .ab_thumbnails-a_abp-mode .trc_header_left_column {
+ width: 48%;
+ display: inline-block;
+ background: transparent;
+ height: auto;
+ }
+
+ .ab_thumbnails-a_abp-mode .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-a_abp-mode [class*=span] {
+ float: none;
+ }
+
+ .ab_thumbnails-a_abp-mode [class*=span] {
+ margin-left: 0;
+ }
+
+ .ab_thumbnails-a_abp-mode .trc_rbox_header .trc_header_ext {
+ position: relative;
+ top: auto;
+ right: auto;
+ }
+
+ .ab_thumbnails-d-2_row img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_thumbnails-d-2_row [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .ab_thumbnails-d-2_row .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/0b766547f84e83c67d3decdc0b3851f0.png) no-repeat;
+ height: 27px;
+ }
+
+ .ab_thumbnails-d-2_row .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 27px;
+ }
+
+ .ab_thumbnails-d-2_row .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 27px;
+ }
+
+ .ab_thumbnails-d-2_row .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-d-2_row .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .ab_thumbnails-d-2_row .videoCube a {
+ padding: 0;
+ }
+
+ .ab_thumbnails-d-2_row .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_thumbnails-d-2_row .video-label-box {
+ height: 88.0px;
+ }
+
+ .ab_thumbnails-d-2_row .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_thumbnails-d-2_row .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .ab_thumbnails-d-2_row .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-d-2_row .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_thumbnails-d-2_row .syndicatedItem .branding {
+ line-height: 22.0px;
+ }
+
+ .ab_thumbnails-d-2_row .trc_header_left_column {
+ width: 100%;
+ display: inline-block;
+ background: transparent;
+ height: 27px;
+ }
+
+ .ab_thumbnails-d-2_row .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-d-2_row .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .ab_thumbnails-d_3x3 img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_thumbnails-d_3x3 [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .ab_thumbnails-d_3x3 .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/0b766547f84e83c67d3decdc0b3851f0.png) no-repeat;
+ height: 27px;
+ }
+
+ .ab_thumbnails-d_3x3 .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 27px;
+ }
+
+ .ab_thumbnails-d_3x3 .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 27px;
+ }
+
+ .ab_thumbnails-d_3x3 .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-d_3x3 .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .ab_thumbnails-d_3x3 .videoCube a {
+ padding: 0;
+ }
+
+ .ab_thumbnails-d_3x3 .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_thumbnails-d_3x3 .video-label-box {
+ height: 88.0px;
+ }
+
+ .ab_thumbnails-d_3x3 .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_thumbnails-d_3x3 .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .ab_thumbnails-d_3x3 .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-d_3x3 .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_thumbnails-d_3x3 .syndicatedItem .branding {
+ line-height: 22.0px;
+ }
+
+ .ab_thumbnails-d_3x3 .trc_header_left_column {
+ width: 100%;
+ display: inline-block;
+ background: transparent;
+ height: 27px;
+ }
+
+ .ab_thumbnails-d_3x3 .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-d_3x3 .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_thumbnails-d_3x3-bigger-titles [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/0b766547f84e83c67d3decdc0b3851f0.png) no-repeat;
+ height: 27px;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 27px;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 27px;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .videoCube a {
+ padding: 0;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_thumbnails-d_3x3-bigger-titles .video-label-box {
+ height: 96.0px;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .syndicatedItem .branding {
+ line-height: 24.0px;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .trc_header_left_column {
+ width: 100%;
+ display: inline-block;
+ background: transparent;
+ height: 27px;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-d_3x3-bigger-titles .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .ab_thumbnails-d_abp-mode img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_thumbnails-d_abp-mode [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .ab_thumbnails-d_abp-mode .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/0b766547f84e83c67d3decdc0b3851f0.png) no-repeat;
+ height: 27px;
+ }
+
+ .ab_thumbnails-d_abp-mode .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 27px;
+ }
+
+ .ab_thumbnails-d_abp-mode .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 27px;
+ }
+
+ .ab_thumbnails-d_abp-mode .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-d_abp-mode .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .ab_thumbnails-d_abp-mode .videoCube a {
+ padding: 0;
+ }
+
+ .ab_thumbnails-d_abp-mode .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_thumbnails-d_abp-mode .video-label-box {
+ height: 66.0px;
+ }
+
+ .ab_thumbnails-d_abp-mode .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_thumbnails-d_abp-mode .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .ab_thumbnails-d_abp-mode .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-d_abp-mode .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_thumbnails-d_abp-mode .syndicatedItem .branding {
+ line-height: 22.0px;
+ }
+
+ .ab_thumbnails-d_abp-mode .trc_header_left_column {
+ width: 100%;
+ display: inline-block;
+ background: transparent;
+ height: 27px;
+ }
+
+ .ab_thumbnails-d_abp-mode .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-d_abp-mode .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .ab_thumbnails-d_gb-read-more img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_thumbnails-d_gb-read-more [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .ab_thumbnails-d_gb-read-more .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/05309722c1e32f9dbeddcbd010e1ea7f.png) no-repeat;
+ height: 33px;
+ }
+
+ .ab_thumbnails-d_gb-read-more .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 33px;
+ }
+
+ .ab_thumbnails-d_gb-read-more .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 33px;
+ }
+
+ .ab_thumbnails-d_gb-read-more .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-d_gb-read-more .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .ab_thumbnails-d_gb-read-more .videoCube a {
+ padding: 0;
+ }
+
+ .ab_thumbnails-d_gb-read-more .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_thumbnails-d_gb-read-more .video-label-box {
+ height: 88.0px;
+ }
+
+ .ab_thumbnails-d_gb-read-more .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_thumbnails-d_gb-read-more .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .ab_thumbnails-d_gb-read-more .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-d_gb-read-more .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_thumbnails-d_gb-read-more .syndicatedItem .branding {
+ line-height: 22.0px;
+ }
+
+ .ab_thumbnails-d_gb-read-more .trc_header_left_column {
+ width: 100%;
+ display: inline-block;
+ background: transparent;
+ height: 33px;
+ }
+
+ .ab_thumbnails-d_gb-read-more .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-d_gb-read-more .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .tbl-read-more-box .tbl-read-more-btn {
+ background-color: #EEEEEE!important;
+ border-color: #ec1a2e !important;
+ color: #222222 !important;
+ font-weight: bold;
+ font-size: 20px !important;
+ text-transform: uppercase;
+ font-family: 'Fira Sans', Helvetica, Arial !important;
+ }
+
+ .ab_thumbnails-d_row-read-more img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_thumbnails-d_row-read-more [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .ab_thumbnails-d_row-read-more .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/0b766547f84e83c67d3decdc0b3851f0.png) no-repeat;
+ height: 27px;
+ }
+
+ .ab_thumbnails-d_row-read-more .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 27px;
+ }
+
+ .ab_thumbnails-d_row-read-more .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 27px;
+ }
+
+ .ab_thumbnails-d_row-read-more .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-d_row-read-more .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .ab_thumbnails-d_row-read-more .videoCube a {
+ padding: 0;
+ }
+
+ .ab_thumbnails-d_row-read-more .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_thumbnails-d_row-read-more .video-label-box {
+ height: 88.0px;
+ }
+
+ .ab_thumbnails-d_row-read-more .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_thumbnails-d_row-read-more .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .ab_thumbnails-d_row-read-more .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-d_row-read-more .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_thumbnails-d_row-read-more .syndicatedItem .branding {
+ line-height: 22.0px;
+ }
+
+ .ab_thumbnails-d_row-read-more .trc_header_left_column {
+ width: 100%;
+ display: inline-block;
+ background: transparent;
+ height: 27px;
+ }
+
+ .ab_thumbnails-d_row-read-more .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-d_row-read-more .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .ab_thumbnails-d_size-round-10 img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_thumbnails-d_size-round-10 [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .ab_thumbnails-d_size-round-10 .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/05309722c1e32f9dbeddcbd010e1ea7f.png) no-repeat;
+ height: 33px;
+ }
+
+ .ab_thumbnails-d_size-round-10 .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 33px;
+ }
+
+ .ab_thumbnails-d_size-round-10 .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 33px;
+ }
+
+ .ab_thumbnails-d_size-round-10 .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-d_size-round-10 .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .ab_thumbnails-d_size-round-10 .videoCube a {
+ padding: 0;
+ }
+
+ .ab_thumbnails-d_size-round-10 .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_thumbnails-d_size-round-10 .video-label-box {
+ height: 88.0px;
+ }
+
+ .ab_thumbnails-d_size-round-10 .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_thumbnails-d_size-round-10 .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .ab_thumbnails-d_size-round-10 .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-d_size-round-10 .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_thumbnails-d_size-round-10 .syndicatedItem .branding {
+ line-height: 22.0px;
+ }
+
+ .ab_thumbnails-d_size-round-10 .trc_header_left_column {
+ width: 100%;
+ display: inline-block;
+ background: transparent;
+ height: 33px;
+ }
+
+ .ab_thumbnails-d_size-round-10 .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-d_size-round-10 .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_thumbnails-d_size-round-10-factor [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/05309722c1e32f9dbeddcbd010e1ea7f.png) no-repeat;
+ height: 33px;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 33px;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 33px;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .videoCube a {
+ padding: 0;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_thumbnails-d_size-round-10-factor .video-label-box {
+ height: 88.0px;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .syndicatedItem .branding {
+ line-height: 22.0px;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .trc_header_left_column {
+ width: 100%;
+ display: inline-block;
+ background: transparent;
+ height: 33px;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-d_size-round-10-factor .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .ab_thumbnails-d_size-round-20 img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_thumbnails-d_size-round-20 [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .ab_thumbnails-d_size-round-20 .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/05309722c1e32f9dbeddcbd010e1ea7f.png) no-repeat;
+ height: 33px;
+ }
+
+ .ab_thumbnails-d_size-round-20 .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 33px;
+ }
+
+ .ab_thumbnails-d_size-round-20 .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 33px;
+ }
+
+ .ab_thumbnails-d_size-round-20 .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-d_size-round-20 .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .ab_thumbnails-d_size-round-20 .videoCube a {
+ padding: 0;
+ }
+
+ .ab_thumbnails-d_size-round-20 .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_thumbnails-d_size-round-20 .video-label-box {
+ height: 88.0px;
+ }
+
+ .ab_thumbnails-d_size-round-20 .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_thumbnails-d_size-round-20 .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .ab_thumbnails-d_size-round-20 .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-d_size-round-20 .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_thumbnails-d_size-round-20 .syndicatedItem .branding {
+ line-height: 22.0px;
+ }
+
+ .ab_thumbnails-d_size-round-20 .trc_header_left_column {
+ width: 100%;
+ display: inline-block;
+ background: transparent;
+ height: 33px;
+ }
+
+ .ab_thumbnails-d_size-round-20 .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-d_size-round-20 .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .ab_thumbnails-h_1x3-landscape img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_thumbnails-h_1x3-landscape [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/0b766547f84e83c67d3decdc0b3851f0.png) no-repeat;
+ height: 27px;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 27px;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 27px;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .videoCube a {
+ padding: 0;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_thumbnails-h_1x3-landscape .video-label-box {
+ height: 69.0px;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .syndicatedItem .branding {
+ line-height: 23.0px;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .trc_header_left_column {
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: 27px;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-h_1x3-landscape .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .ab_thumbnails-h_1x5 img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_thumbnails-h_1x5 [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .ab_thumbnails-h_1x5 .trc_rbox_div {
+ margin-bottom: 0;
+ }
+
+ .ab_thumbnails-h_1x5 .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/0b766547f84e83c67d3decdc0b3851f0.png) no-repeat;
+ height: 27px;
+ }
+
+ .ab_thumbnails-h_1x5 .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 27px;
+ }
+
+ .ab_thumbnails-h_1x5 .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 27px;
+ }
+
+ .ab_thumbnails-h_1x5 .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-h_1x5 .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .ab_thumbnails-h_1x5 .videoCube a {
+ padding: 0;
+ }
+
+ .ab_thumbnails-h_1x5 .trc_rbox_outer .videoCube {
+ margin-bottom: 10px;
+ }
+
+ .ab_thumbnails-h_1x5 .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_thumbnails-h_1x5 .video-label-box {
+ height: 76.0px;
+ }
+
+ .ab_thumbnails-h_1x5 .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin-bottom: 0;
+ }
+
+ .ab_thumbnails-h_1x5 .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-h_1x5 .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_thumbnails-h_1x5 .syndicatedItem .branding {
+ line-height: 23.0px;
+ }
+
+ .ab_thumbnails-h_1x5 .trc_header_left_column {
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: 27px;
+ }
+
+ .ab_thumbnails-h_1x5 .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-h_1x5 .videoCube .video-label-box {
+ margin-top: 0px;
+ }
+
+ .ab_thumbnails-h_1x5 .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .ab_thumbnails-h_1x5-landscape img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_thumbnails-h_1x5-landscape [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/0b766547f84e83c67d3decdc0b3851f0.png) no-repeat;
+ height: 27px;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 27px;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 27px;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .videoCube a {
+ padding: 0;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_thumbnails-h_1x5-landscape .video-label-box {
+ height: 69.0px;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .syndicatedItem .branding {
+ line-height: 23.0px;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .trc_header_left_column {
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: 27px;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-h_1x5-landscape .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .ab_thumbnails-h_abp-mode img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_thumbnails-h_abp-mode [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .ab_thumbnails-h_abp-mode .trc_rbox_div {
+ margin-bottom: 0;
+ }
+
+ .ab_thumbnails-h_abp-mode .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/0b766547f84e83c67d3decdc0b3851f0.png) no-repeat;
+ height: 27px;
+ }
+
+ .ab_thumbnails-h_abp-mode .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 27px;
+ }
+
+ .ab_thumbnails-h_abp-mode .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 27px;
+ }
+
+ .ab_thumbnails-h_abp-mode .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-h_abp-mode .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .ab_thumbnails-h_abp-mode .videoCube a {
+ padding: 0;
+ }
+
+ .ab_thumbnails-h_abp-mode .trc_rbox_outer .videoCube {
+ margin-bottom: 10px;
+ }
+
+ .ab_thumbnails-h_abp-mode .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_thumbnails-h_abp-mode .video-label-box {
+ height: 76.0px;
+ }
+
+ .ab_thumbnails-h_abp-mode .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin-bottom: 0;
+ }
+
+ .ab_thumbnails-h_abp-mode .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-h_abp-mode .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_thumbnails-h_abp-mode .syndicatedItem .branding {
+ line-height: 23.0px;
+ }
+
+ .ab_thumbnails-h_abp-mode .trc_header_left_column {
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: 27px;
+ }
+
+ .ab_thumbnails-h_abp-mode .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-h_abp-mode .videoCube .video-label-box {
+ margin-top: 0px;
+ }
+
+ .ab_thumbnails-h_abp-mode .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .ab_thumbnails-i_1x5 img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_thumbnails-i_1x5 [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .ab_thumbnails-i_1x5 .trc_rbox_div {
+ margin-bottom: 0;
+ }
+
+ .ab_thumbnails-i_1x5 .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/0b766547f84e83c67d3decdc0b3851f0.png) no-repeat;
+ height: 27px;
+ }
+
+ .ab_thumbnails-i_1x5 .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 27px;
+ }
+
+ .ab_thumbnails-i_1x5 .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 27px;
+ }
+
+ .ab_thumbnails-i_1x5 .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-i_1x5 .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .ab_thumbnails-i_1x5 .videoCube a {
+ padding: 0;
+ }
+
+ .ab_thumbnails-i_1x5 .trc_rbox_outer .videoCube {
+ margin-bottom: 10px;
+ }
+
+ .ab_thumbnails-i_1x5 .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_thumbnails-i_1x5 .video-label-box {
+ height: 76.0px;
+ }
+
+ .ab_thumbnails-i_1x5 .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin-bottom: 0;
+ }
+
+ .ab_thumbnails-i_1x5 .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-i_1x5 .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_thumbnails-i_1x5 .syndicatedItem .branding {
+ line-height: 23.0px;
+ }
+
+ .ab_thumbnails-i_1x5 .trc_header_left_column {
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: 27px;
+ }
+
+ .ab_thumbnails-i_1x5 .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-i_1x5 .videoCube .video-label-box {
+ margin-top: 0px;
+ }
+
+ .ab_thumbnails-i_1x5 .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .ab_thumbnails-k_abp-mode img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_thumbnails-k_abp-mode [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .ab_thumbnails-k_abp-mode .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/0b766547f84e83c67d3decdc0b3851f0.png) no-repeat;
+ height: 27px;
+ }
+
+ .ab_thumbnails-k_abp-mode .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 27px;
+ }
+
+ .ab_thumbnails-k_abp-mode .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 27px;
+ }
+
+ .ab_thumbnails-k_abp-mode .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-k_abp-mode .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .ab_thumbnails-k_abp-mode .videoCube a {
+ padding: 0;
+ }
+
+ .ab_thumbnails-k_abp-mode .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_thumbnails-k_abp-mode .video-label-box {
+ height: 69.0px;
+ }
+
+ .ab_thumbnails-k_abp-mode .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_thumbnails-k_abp-mode .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .ab_thumbnails-k_abp-mode .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-k_abp-mode .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_thumbnails-k_abp-mode .syndicatedItem .branding {
+ line-height: 23.0px;
+ }
+
+ .ab_thumbnails-k_abp-mode .trc_header_left_column {
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: 27px;
+ }
+
+ .ab_thumbnails-k_abp-mode .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-k_abp-mode .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .ab_thumbnails-k_backup img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_thumbnails-k_backup [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .ab_thumbnails-k_backup .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/0b766547f84e83c67d3decdc0b3851f0.png) no-repeat;
+ height: 27px;
+ }
+
+ .ab_thumbnails-k_backup .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 27px;
+ }
+
+ .ab_thumbnails-k_backup .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 27px;
+ }
+
+ .ab_thumbnails-k_backup .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-k_backup .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .ab_thumbnails-k_backup .videoCube a {
+ padding: 0;
+ }
+
+ .ab_thumbnails-k_backup .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_thumbnails-k_backup .video-label-box {
+ height: 69.0px;
+ }
+
+ .ab_thumbnails-k_backup .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_thumbnails-k_backup .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .ab_thumbnails-k_backup .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-k_backup .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_thumbnails-k_backup .syndicatedItem .branding {
+ line-height: 23.0px;
+ }
+
+ .ab_thumbnails-k_backup .trc_header_left_column {
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: 27px;
+ }
+
+ .ab_thumbnails-k_backup .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-k_backup .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .ab_thumbnails-k_size-round-10 img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_thumbnails-k_size-round-10 [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .ab_thumbnails-k_size-round-10 .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/0b766547f84e83c67d3decdc0b3851f0.png) no-repeat;
+ height: 27px;
+ }
+
+ .ab_thumbnails-k_size-round-10 .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 27px;
+ }
+
+ .ab_thumbnails-k_size-round-10 .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 27px;
+ }
+
+ .ab_thumbnails-k_size-round-10 .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-k_size-round-10 .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .ab_thumbnails-k_size-round-10 .videoCube a {
+ padding: 0;
+ }
+
+ .ab_thumbnails-k_size-round-10 .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_thumbnails-k_size-round-10 .video-label-box {
+ height: 69.0px;
+ }
+
+ .ab_thumbnails-k_size-round-10 .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_thumbnails-k_size-round-10 .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .ab_thumbnails-k_size-round-10 .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-k_size-round-10 .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_thumbnails-k_size-round-10 .syndicatedItem .branding {
+ line-height: 23.0px;
+ }
+
+ .ab_thumbnails-k_size-round-10 .trc_header_left_column {
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: 27px;
+ }
+
+ .ab_thumbnails-k_size-round-10 .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-k_size-round-10 .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_thumbnails-k_size-round-10-factor [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/0b766547f84e83c67d3decdc0b3851f0.png) no-repeat;
+ height: 27px;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 27px;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 27px;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .videoCube a {
+ padding: 0;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_thumbnails-k_size-round-10-factor .video-label-box {
+ height: 69.0px;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .syndicatedItem .branding {
+ line-height: 23.0px;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .trc_header_left_column {
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: 27px;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-k_size-round-10-factor .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .ab_thumbnails-k_size-round-20 img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_thumbnails-k_size-round-20 [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .ab_thumbnails-k_size-round-20 .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/0b766547f84e83c67d3decdc0b3851f0.png) no-repeat;
+ height: 27px;
+ }
+
+ .ab_thumbnails-k_size-round-20 .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 27px;
+ }
+
+ .ab_thumbnails-k_size-round-20 .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 27px;
+ }
+
+ .ab_thumbnails-k_size-round-20 .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-k_size-round-20 .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .ab_thumbnails-k_size-round-20 .videoCube a {
+ padding: 0;
+ }
+
+ .ab_thumbnails-k_size-round-20 .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_thumbnails-k_size-round-20 .video-label-box {
+ height: 69.0px;
+ }
+
+ .ab_thumbnails-k_size-round-20 .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_thumbnails-k_size-round-20 .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .ab_thumbnails-k_size-round-20 .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-k_size-round-20 .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_thumbnails-k_size-round-20 .syndicatedItem .branding {
+ line-height: 23.0px;
+ }
+
+ .ab_thumbnails-k_size-round-20 .trc_header_left_column {
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: 27px;
+ }
+
+ .ab_thumbnails-k_size-round-20 .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-k_size-round-20 .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .ab_thumbnails-rr_abp-mode img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_thumbnails-rr_abp-mode [class*=span] {
+ float: none;
+ margin-left: 0px;
+ }
+
+ .ab_thumbnails-rr_abp-mode .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: auto;
+ }
+
+ .ab_thumbnails-rr_abp-mode .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: auto;
+ }
+
+ .ab_thumbnails-rr_abp-mode .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: normal;
+ }
+
+ .ab_thumbnails-rr_abp-mode .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-rr_abp-mode .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .ab_thumbnails-rr_abp-mode .videoCube a {
+ padding: 0;
+ }
+
+ .ab_thumbnails-rr_abp-mode .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_thumbnails-rr_abp-mode .video-label-box {
+ height: 80.0px;
+ }
+
+ .ab_thumbnails-rr_abp-mode .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_thumbnails-rr_abp-mode .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .ab_thumbnails-rr_abp-mode .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-rr_abp-mode .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_thumbnails-rr_abp-mode .syndicatedItem .branding {
+ line-height: 20.0px;
+ }
+
+ .ab_thumbnails-rr_abp-mode .trc_header_left_column {
+ width: 48%;
+ display: inline-block;
+ background: transparent;
+ height: auto;
+ }
+
+ .ab_thumbnails-rr_abp-mode .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-rr_abp-mode [class*=span] {
+ float: none;
+ }
+
+ .ab_thumbnails-rr_abp-mode [class*=span] {
+ margin-left: 0;
+ }
+
+ .ab_thumbnails-rr_abp-mode .trc_rbox_header .trc_header_ext {
+ position: relative;
+ top: auto;
+ right: auto;
+ }
+
+ .alternating-thumbnails-a img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .alternating-thumbnails-a [class*=span] {
+ float: none;
+ margin-left: 0px;
+ }
+
+ .alternating-thumbnails-a {
+ background-color: #E6E5E1;
+ }
+
+ .alternating-thumbnails-a .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/89c73d279107ecb611aaf1272968c2c3.jpg) no-repeat;
+ height: 21px;
+ background-color: #fff;
+ }
+
+ .alternating-thumbnails-a .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 21px;
+ }
+
+ .alternating-thumbnails-a .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 21px;
+ }
+
+ .alternating-thumbnails-a .logoDiv a {
+ font-size: 100%;
+ }
+
+ .alternating-thumbnails-a .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .alternating-thumbnails-a .videoCube a {
+ padding: 0;
+ }
+
+ .alternating-thumbnails-a .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .alternating-thumbnails-a .video-label-box {
+ height: 76.0px;
+ }
+
+ .alternating-thumbnails-a .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .alternating-thumbnails-a .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .alternating-thumbnails-a .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .alternating-thumbnails-a .video-label-box .branding {
+ display: block;
+ }
+
+ .alternating-thumbnails-a .syndicatedItem .branding {
+ line-height: 19.0px;
+ }
+
+ .alternating-thumbnails-a .trc_header_left_column {
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: 21px;
+ }
+
+ .alternating-thumbnails-a .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .alternating-thumbnails-a .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .alternating-thumbnails-b img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .alternating-thumbnails-b [class*=span] {
+ float: none;
+ margin-left: 0px;
+ }
+
+ .alternating-thumbnails-b .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/b2ddfe997f5b03be3a198485dff6a117.jpg) no-repeat;
+ height: 21px;
+ }
+
+ .alternating-thumbnails-b .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 21px;
+ }
+
+ .alternating-thumbnails-b .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 21px;
+ }
+
+ .alternating-thumbnails-b .logoDiv a {
+ font-size: 100%;
+ }
+
+ .alternating-thumbnails-b .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .alternating-thumbnails-b .videoCube a {
+ padding: 0;
+ }
+
+ .alternating-thumbnails-b .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .alternating-thumbnails-b .video-label-box {
+ height: 76.0px;
+ }
+
+ .alternating-thumbnails-b .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .alternating-thumbnails-b .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .alternating-thumbnails-b .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .alternating-thumbnails-b .video-label-box .branding {
+ display: block;
+ }
+
+ .alternating-thumbnails-b .syndicatedItem .branding {
+ line-height: 19.0px;
+ }
+
+ .alternating-thumbnails-b .trc_header_left_column {
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: 21px;
+ }
+
+ .alternating-thumbnails-b .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .alternating-thumbnails-b [class*=span] {
+ float: none;
+ }
+
+ .alternating-thumbnails-b [class*=span] {
+ margin-left: 0;
+ }
+
+ .alternating-thumbnails-b .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .alternating-thumbnails-b [class*=span] {
+ float: none;
+ }
+
+ .alternating-thumbnails-b [class*=span] {
+ margin-left: 0;
+ }
+
+ .alternating-thumbnails-b [class*=span] {
+ float: none;
+ }
+
+ .alternating-thumbnails-b [class*=span] {
+ margin-left: 0;
+ }
+
+ .alternating-thumbnails-b [class*=span] {
+ float: none;
+ }
+
+ .alternating-thumbnails-b [class*=span] {
+ margin-left: 0;
+ }
+
+ .mobile-thumbnails-a img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .mobile-thumbnails-a [class*=span] {
+ float: none;
+ margin-left: 0px;
+ }
+
+ .mobile-thumbnails-a .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: auto;
+ }
+
+ .mobile-thumbnails-a .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: auto;
+ }
+
+ .mobile-thumbnails-a .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: normal;
+ }
+
+ .mobile-thumbnails-a .logoDiv a {
+ font-size: 100%;
+ }
+
+ .mobile-thumbnails-a .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .mobile-thumbnails-a .videoCube a {
+ padding: 0;
+ }
+
+ .mobile-thumbnails-a .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .mobile-thumbnails-a .video-label-box {
+ height: 88.0px;
+ }
+
+ .mobile-thumbnails-a .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .mobile-thumbnails-a .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .mobile-thumbnails-a .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .mobile-thumbnails-a .video-label-box .branding {
+ display: block;
+ }
+
+ .mobile-thumbnails-a .syndicatedItem .branding {
+ line-height: 22.0px;
+ }
+
+ .mobile-thumbnails-a .trc_header_left_column {
+ width: 48%;
+ display: inline-block;
+ background: transparent;
+ height: auto;
+ }
+
+ .mobile-thumbnails-a .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .mobile-thumbnails-a [class*=span] {
+ float: none;
+ }
+
+ .mobile-thumbnails-a [class*=span] {
+ margin-left: 0;
+ }
+
+ .mobile-thumbnails-a .trc_rbox_header .trc_header_ext {
+ position: relative;
+ top: auto;
+ right: auto;
+ }
+
+ .mobile-thumbnails-a [class*=span] {
+ float: none;
+ }
+
+ .mobile-thumbnails-a [class*=span] {
+ margin-left: 0;
+ }
+
+ .mobile-thumbnails-a [class*=span] {
+ float: none;
+ }
+
+ .mobile-thumbnails-a [class*=span] {
+ margin-left: 0;
+ }
+
+ .mobile-thumbnails-a [class*=span] {
+ float: none;
+ }
+
+ .mobile-thumbnails-a [class*=span] {
+ margin-left: 0;
+ }
+
+ .organic-thumbnails-a img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .organic-thumbnails-a [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .organic-thumbnails-a .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/0b766547f84e83c67d3decdc0b3851f0.png) no-repeat;
+ height: 27px;
+ }
+
+ .organic-thumbnails-a .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 27px;
+ }
+
+ .organic-thumbnails-a .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 27px;
+ }
+
+ .organic-thumbnails-a .logoDiv a {
+ font-size: 100%;
+ }
+
+ .organic-thumbnails-a .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .organic-thumbnails-a .videoCube a {
+ padding: 0;
+ }
+
+ .organic-thumbnails-a .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .organic-thumbnails-a .video-label-box {
+ height: 80.0px;
+ }
+
+ .organic-thumbnails-a .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .organic-thumbnails-a .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .organic-thumbnails-a .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .organic-thumbnails-a .video-label-box .branding {
+ display: block;
+ }
+
+ .organic-thumbnails-a .syndicatedItem .branding {
+ line-height: 20.0px;
+ }
+
+ .organic-thumbnails-a .trc_header_left_column {
+ width: 100%;
+ display: inline-block;
+ background: transparent;
+ height: 27px;
+ }
+
+ .organic-thumbnails-a .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .organic-thumbnails-a [class*=span] {
+ float: none;
+ }
+
+ .organic-thumbnails-a [class*=span] {
+ margin-left: 0;
+ }
+
+ .organic-thumbnails-a .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .organic-thumbnails-a [class*=span] {
+ float: none;
+ }
+
+ .organic-thumbnails-a [class*=span] {
+ margin-left: 0;
+ }
+
+ .organic-thumbnails-a [class*=span] {
+ float: none;
+ }
+
+ .organic-thumbnails-a [class*=span] {
+ margin-left: 0;
+ }
+
+ .organic-thumbnails-a [class*=span] {
+ float: none;
+ }
+
+ .organic-thumbnails-a [class*=span] {
+ margin-left: 0;
+ }
+
+ .organic-thumbnails-a [class*=span] {
+ float: none;
+ }
+
+ .organic-thumbnails-a [class*=span] {
+ margin-left: 0;
+ }
+
+ .organic-thumbnails-b img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .organic-thumbnails-b [class*=span] {
+ float: none;
+ margin-left: 0px;
+ }
+
+ .organic-thumbnails-b {
+ margin-left: 10px;
+ margin-top: 10px;
+ }
+
+ .organic-thumbnails-b .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: none;
+ width: 100%;
+ background: transparent;
+ height: auto;
+ }
+
+ .organic-thumbnails-b .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: auto;
+ }
+
+ .organic-thumbnails-b .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: normal;
+ }
+
+ .organic-thumbnails-b .logoDiv a {
+ font-size: 100%;
+ }
+
+ .organic-thumbnails-b .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .organic-thumbnails-b .videoCube a {
+ padding: 0;
+ }
+
+ .organic-thumbnails-b .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .organic-thumbnails-b .video-label-box {
+ height: 88.0px;
+ }
+
+ .organic-thumbnails-b .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .organic-thumbnails-b .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ padding: 0 0 1px 0;
+ }
+
+ .organic-thumbnails-b .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ color: #8c4074;
+ }
+
+ .organic-thumbnails-b .video-label-box .branding {
+ display: block;
+ }
+
+ .organic-thumbnails-b .syndicatedItem .branding {
+ line-height: 18.0px;
+ }
+
+ .organic-thumbnails-b .trc_header_left_column {
+ background: transparent;
+ height: auto;
+ }
+
+ .organic-thumbnails-b .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .organic-thumbnails-b [class*=span] {
+ float: none;
+ }
+
+ .organic-thumbnails-b [class*=span] {
+ margin-left: 0;
+ }
+
+ .organic-thumbnails-b .trc_rbox_header .trc_header_ext {
+ position: relative;
+ top: auto;
+ right: auto;
+ }
+
+ .organic-thumbnails-b .trc_rbox_div {
+ overflow: visible;
+ }
+
+ .trc_elastic .organic-thumbnails-b {
+ overflow: visible !important;
+ }
+
+ .organic-thumbnails-b .trc_rbox_outer .trc_rbox_div .labelText {
+ position: absolute;
+ top: -10px;
+ left: 2%;
+ padding: 3px 10px;
+ margin-left: 0;
+ color: #fff;
+ font-weight: 800;
+ z-index: 999;
+ font-size: 12px;
+ font-family: 'Open Sans', sans serif;
+ line-height: 15px;
+ text-transform: uppercase;
+ background: #660046;
+ }
+
+ .trc_ie8 .organic-thumbnails-b .thumbBlock_holder,
+ .trc_ie8 .organic-thumbnails-b .videoCube .thumbBlock,
+ .trc_ie9 .organic-thumbnails-b .thumbBlock_holder,
+ .trc_ie9 .organic-thumbnails-b .videoCube .thumbBlock {
+ height: 146px;
+ }
+
+ .organic-thumbnails-d img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .organic-thumbnails-d [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .organic-thumbnails-d .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/ed8d020f1859e413beba34e1dde6b3ee.png) no-repeat;
+ height: 26px;
+ }
+
+ .organic-thumbnails-d .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 26px;
+ }
+
+ .organic-thumbnails-d .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 26px;
+ }
+
+ .organic-thumbnails-d .logoDiv a {
+ font-size: 100%;
+ }
+
+ .organic-thumbnails-d .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .organic-thumbnails-d .videoCube a {
+ padding: 0;
+ }
+
+ .organic-thumbnails-d .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .organic-thumbnails-d .video-label-box {
+ height: 88.0px;
+ }
+
+ .organic-thumbnails-d .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .organic-thumbnails-d .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .organic-thumbnails-d .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .organic-thumbnails-d .video-label-box .branding {
+ display: block;
+ }
+
+ .organic-thumbnails-d .syndicatedItem .branding {
+ line-height: 22.0px;
+ }
+
+ .organic-thumbnails-d .trc_header_left_column {
+ width: 100%;
+ display: inline-block;
+ background: transparent;
+ height: 26px;
+ }
+
+ .organic-thumbnails-d .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .organic-thumbnails-d .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .organic-thumbnails-d-2 img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .organic-thumbnails-d-2 [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .organic-thumbnails-d-2 .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/0b766547f84e83c67d3decdc0b3851f0.png) no-repeat;
+ height: 27px;
+ }
+
+ .organic-thumbnails-d-2 .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 27px;
+ }
+
+ .organic-thumbnails-d-2 .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 27px;
+ }
+
+ .organic-thumbnails-d-2 .logoDiv a {
+ font-size: 100%;
+ }
+
+ .organic-thumbnails-d-2 .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .organic-thumbnails-d-2 .videoCube a {
+ padding: 0;
+ }
+
+ .organic-thumbnails-d-2 .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .organic-thumbnails-d-2 .video-label-box {
+ height: 88.0px;
+ }
+
+ .organic-thumbnails-d-2 .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .organic-thumbnails-d-2 .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .organic-thumbnails-d-2 .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .organic-thumbnails-d-2 .video-label-box .branding {
+ display: block;
+ }
+
+ .organic-thumbnails-d-2 .syndicatedItem .branding {
+ line-height: 22.0px;
+ }
+
+ .organic-thumbnails-d-2 .trc_header_left_column {
+ width: 100%;
+ display: inline-block;
+ background: transparent;
+ height: 27px;
+ }
+
+ .organic-thumbnails-d-2 .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .organic-thumbnails-d-2 .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .organic-thumbnails-e img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .organic-thumbnails-e [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .organic-thumbnails-e .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/0b766547f84e83c67d3decdc0b3851f0.png) no-repeat;
+ height: 27px;
+ }
+
+ .organic-thumbnails-e .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 27px;
+ }
+
+ .organic-thumbnails-e .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 27px;
+ }
+
+ .organic-thumbnails-e .logoDiv a {
+ font-size: 100%;
+ }
+
+ .organic-thumbnails-e .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .organic-thumbnails-e .videoCube a {
+ padding: 0;
+ }
+
+ .organic-thumbnails-e .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .organic-thumbnails-e .video-label-box {
+ height: 88.0px;
+ }
+
+ .organic-thumbnails-e .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .organic-thumbnails-e .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .organic-thumbnails-e .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .organic-thumbnails-e .video-label-box .branding {
+ display: block;
+ }
+
+ .organic-thumbnails-e .syndicatedItem .branding {
+ line-height: 22.0px;
+ }
+
+ .organic-thumbnails-e .trc_header_left_column {
+ width: 100%;
+ display: inline-block;
+ background: transparent;
+ height: 27px;
+ }
+
+ .organic-thumbnails-e .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .organic-thumbnails-e .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .organic-thumbnails-mobile img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .organic-thumbnails-mobile [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .organic-thumbnails-mobile .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/0b766547f84e83c67d3decdc0b3851f0.png) no-repeat;
+ height: 27px;
+ }
+
+ .organic-thumbnails-mobile .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 27px;
+ }
+
+ .organic-thumbnails-mobile .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 27px;
+ }
+
+ .organic-thumbnails-mobile .logoDiv a {
+ font-size: 100%;
+ }
+
+ .organic-thumbnails-mobile .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .organic-thumbnails-mobile .videoCube a {
+ padding: 0;
+ }
+
+ .organic-thumbnails-mobile .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .organic-thumbnails-mobile .video-label-box {
+ height: 88.0px;
+ }
+
+ .organic-thumbnails-mobile .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .organic-thumbnails-mobile .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .organic-thumbnails-mobile .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .organic-thumbnails-mobile .video-label-box .branding {
+ display: block;
+ }
+
+ .organic-thumbnails-mobile .syndicatedItem .branding {
+ line-height: 22.0px;
+ }
+
+ .organic-thumbnails-mobile .trc_header_left_column {
+ width: 100%;
+ display: inline-block;
+ background: transparent;
+ height: 27px;
+ }
+
+ .organic-thumbnails-mobile .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .organic-thumbnails-mobile [class*=span] {
+ float: none;
+ }
+
+ .organic-thumbnails-mobile [class*=span] {
+ margin-left: 0;
+ }
+
+ .organic-thumbnails-mobile .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+ /* override bootstrap default span definitions */
+
+ .text-links-a [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .text-links-a .trc_rbox_header {
+ line-height: 24px;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: auto;
+ }
+
+ .text-links-a .trc_rbox_header .trc_rbox_header_span:after {
+ content: ' ';
+ display: block;
+ background: #EC1A2E;
+ height: 5px;
+ width: 50px;
+ margin-bottom: 18px;
+ }
+
+ .text-links-a .trc_rbox_header_span .trc_header_right_column {
+ position: absolute;
+ width: 48%;
+ left: 52%;
+ top: 0;
+ background: transparent;
+ height: auto;
+ }
+
+ .text-links-a .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: normal;
+ position: relative;
+ z-index: 1;
+ }
+
+ .text-links-a .logoDiv a {
+ font-size: 100%;
+ }
+
+ .text-links-a .logoDiv a span {
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .text-links-a .syndicatedItem .video-title .branding {
+ line-height: 1.3em;
+ }
+
+ .text-links-a .trc_rbox_div .videoCube.horizontal {
+ clear: left;
+ }
+
+ .text-links-a .trc_rbox_div .videoCube.trc_tl_right_col {
+ float: none;
+ clear: right;
+ margin-left: auto;
+ }
+
+ .text-links-a .videoCube:hover span.branding,
+ .text-links-a .videoCube_hover span.branding {
+ text-decoration: none;
+ }
+
+ .text-links-a .trc_rbox_div .videoCube.thumbnail_none a {
+ display: list-item;
+ list-style: disc outside none;
+ vertical-align: top;
+ overflow: visible;
+ margin-left: 25px;
+ padding: 0;
+ color: #EC1A2E;
+ font-size: 25px;
+ line-height: 20px;
+ }
+
+ .text-links-a .videoCube .video-label-box {
+ display: inline-block!important;
+ vertical-align: top;
+ width: 100%;
+ *margin-top: -3px;
+ min-height: 22.0px;
+ }
+
+ .text-links-a .trc_rbox_div .videoCube:hover .video-title {
+ text-decoration: none;
+ color: #EC1A2E;
+ }
+
+ .text-links-a .trc_header_left_column {
+ display: inline-block;
+ width: auto;
+ background: transparent;
+ height: auto;
+ }
+
+ .text-links-a .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .text-links-a .syndicatedItem .branding {
+ line-height: normal;
+ }
+
+ .text-links-a .trc_rbox_header .trc_header_ext {
+ position: relative;
+ top: auto;
+ right: auto;
+ }
+
+ .thumbnails-a img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .thumbnails-a [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .thumbnails-a .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/0b766547f84e83c67d3decdc0b3851f0.png) no-repeat;
+ height: 27px;
+ }
+
+ .thumbnails-a .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 27px;
+ }
+
+ .thumbnails-a .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 27px;
+ }
+
+ .thumbnails-a .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-a .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .thumbnails-a .videoCube a {
+ padding: 0;
+ }
+
+ .thumbnails-a .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .thumbnails-a .video-label-box {
+ height: 80.0px;
+ }
+
+ .thumbnails-a .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .thumbnails-a .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .thumbnails-a .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .thumbnails-a .video-label-box .branding {
+ display: block;
+ }
+
+ .thumbnails-a .syndicatedItem .branding {
+ line-height: 20.0px;
+ }
+
+ .thumbnails-a .trc_header_left_column {
+ width: 100%;
+ display: inline-block;
+ background: transparent;
+ height: 27px;
+ }
+
+ .thumbnails-a .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-a [class*=span] {
+ float: none;
+ }
+
+ .thumbnails-a [class*=span] {
+ margin-left: 0;
+ }
+
+ .thumbnails-a .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .thumbnails-a [class*=span] {
+ float: none;
+ }
+
+ .thumbnails-a [class*=span] {
+ margin-left: 0;
+ }
+
+ .thumbnails-a [class*=span] {
+ float: none;
+ }
+
+ .thumbnails-a [class*=span] {
+ margin-left: 0;
+ }
+
+ .thumbnails-a [class*=span] {
+ float: none;
+ }
+
+ .thumbnails-a [class*=span] {
+ margin-left: 0;
+ }
+
+ .thumbnails-a [class*=span] {
+ float: none;
+ }
+
+ .thumbnails-a [class*=span] {
+ margin-left: 0;
+ }
+
+ .thumbnails-a [class*=span] {
+ float: none;
+ }
+
+ .thumbnails-a [class*=span] {
+ margin-left: 0;
+ }
+
+ .thumbnails-b img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .thumbnails-b [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .thumbnails-b .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/0b766547f84e83c67d3decdc0b3851f0.png) no-repeat;
+ height: 27px;
+ }
+
+ .thumbnails-b .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 27px;
+ }
+
+ .thumbnails-b .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 27px;
+ }
+
+ .thumbnails-b .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-b .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .thumbnails-b .videoCube a {
+ padding: 0;
+ }
+
+ .thumbnails-b .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .thumbnails-b .video-label-box {
+ height: 80.0px;
+ }
+
+ .thumbnails-b .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .thumbnails-b .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .thumbnails-b .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .thumbnails-b .video-label-box .branding {
+ display: block;
+ }
+
+ .thumbnails-b .syndicatedItem .branding {
+ line-height: 20.0px;
+ }
+
+ .thumbnails-b .trc_header_left_column {
+ width: 100%;
+ display: inline-block;
+ background: transparent;
+ height: 27px;
+ }
+
+ .thumbnails-b .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-b [class*=span] {
+ float: none;
+ }
+
+ .thumbnails-b [class*=span] {
+ margin-left: 0;
+ }
+
+ .thumbnails-b .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .thumbnails-c img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .thumbnails-c [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .thumbnails-c .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/0b766547f84e83c67d3decdc0b3851f0.png) no-repeat;
+ height: 27px;
+ }
+
+ .thumbnails-c .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 27px;
+ }
+
+ .thumbnails-c .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 27px;
+ }
+
+ .thumbnails-c .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-c .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .thumbnails-c .videoCube a {
+ padding: 0;
+ }
+
+ .thumbnails-c .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .thumbnails-c .video-label-box {
+ height: 80.0px;
+ }
+
+ .thumbnails-c .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .thumbnails-c .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .thumbnails-c .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .thumbnails-c .video-label-box .branding {
+ display: block;
+ }
+
+ .thumbnails-c .syndicatedItem .branding {
+ line-height: 20.0px;
+ }
+
+ .thumbnails-c .trc_header_left_column {
+ width: 100%;
+ display: inline-block;
+ background: transparent;
+ height: 27px;
+ }
+
+ .thumbnails-c .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-c [class*=span] {
+ float: none;
+ }
+
+ .thumbnails-c [class*=span] {
+ margin-left: 0;
+ }
+
+ .thumbnails-c .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .thumbnails-d img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .thumbnails-d [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .thumbnails-d .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/05309722c1e32f9dbeddcbd010e1ea7f.png) no-repeat;
+ height: 33px;
+ }
+
+ .thumbnails-d .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 33px;
+ }
+
+ .thumbnails-d .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 33px;
+ }
+
+ .thumbnails-d .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-d .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .thumbnails-d .videoCube a {
+ padding: 0;
+ }
+
+ .thumbnails-d .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .thumbnails-d .video-label-box {
+ height: 88.0px;
+ }
+
+ .thumbnails-d .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .thumbnails-d .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .thumbnails-d .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .thumbnails-d .video-label-box .branding {
+ display: block;
+ }
+
+ .thumbnails-d .syndicatedItem .branding {
+ line-height: 22.0px;
+ }
+
+ .thumbnails-d .trc_header_left_column {
+ width: 100%;
+ display: inline-block;
+ background: transparent;
+ height: 33px;
+ }
+
+ .thumbnails-d .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-d .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .thumbnails-d-2 img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .thumbnails-d-2 [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .thumbnails-d-2 .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/0b766547f84e83c67d3decdc0b3851f0.png) no-repeat;
+ height: 27px;
+ }
+
+ .thumbnails-d-2 .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 27px;
+ }
+
+ .thumbnails-d-2 .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 27px;
+ }
+
+ .thumbnails-d-2 .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-d-2 .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .thumbnails-d-2 .videoCube a {
+ padding: 0;
+ }
+
+ .thumbnails-d-2 .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .thumbnails-d-2 .video-label-box {
+ height: 88.0px;
+ }
+
+ .thumbnails-d-2 .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .thumbnails-d-2 .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .thumbnails-d-2 .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .thumbnails-d-2 .video-label-box .branding {
+ display: block;
+ }
+
+ .thumbnails-d-2 .syndicatedItem .branding {
+ line-height: 22.0px;
+ }
+
+ .thumbnails-d-2 .trc_header_left_column {
+ width: 100%;
+ display: inline-block;
+ background: transparent;
+ height: 27px;
+ }
+
+ .thumbnails-d-2 .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-d-2 .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .thumbnails-e img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .thumbnails-e [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .thumbnails-e .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/0b766547f84e83c67d3decdc0b3851f0.png) no-repeat;
+ height: 27px;
+ }
+
+ .thumbnails-e .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 27px;
+ }
+
+ .thumbnails-e .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 27px;
+ }
+
+ .thumbnails-e .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-e .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .thumbnails-e .videoCube a {
+ padding: 0;
+ }
+
+ .thumbnails-e .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .thumbnails-e .video-label-box {
+ height: 88.0px;
+ }
+
+ .thumbnails-e .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .thumbnails-e .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .thumbnails-e .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .thumbnails-e .video-label-box .branding {
+ display: block;
+ }
+
+ .thumbnails-e .syndicatedItem .branding {
+ line-height: 22.0px;
+ }
+
+ .thumbnails-e .trc_header_left_column {
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: 27px;
+ }
+
+ .thumbnails-e .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-e .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .thumbnails-f-abp img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .thumbnails-f-abp [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .thumbnails-f-abp {
+ background-color: #f9f9f9
+ }
+
+ .thumbnails-f-abp .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/91516fd3ede6940f91c3472c0a0841e5.png) no-repeat;
+ height: 24px;
+ }
+
+ .thumbnails-f-abp .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 24px;
+ }
+
+ .thumbnails-f-abp .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 24px;
+ }
+
+ .thumbnails-f-abp .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-f-abp .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .trc_elastic .thumbnails-f-abp .trc_rbox_outer .trc_rbox_div .videoCube {
+ margin-bottom: 0;
+ }
+
+ .thumbnails-f-abp .videoCube a {
+ padding: 0;
+ }
+
+ .thumbnails-f-abp .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .thumbnails-f-abp .video-label-box {
+ height: 57.0px;
+ }
+
+ .thumbnails-f-abp .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .thumbnails-f-abp .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .thumbnails-f-abp .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .thumbnails-f-abp .video-label-box .branding {
+ display: block;
+ }
+
+ .thumbnails-f-abp .syndicatedItem .branding {
+ line-height: 19.0px;
+ }
+
+ .thumbnails-f-abp .trc_header_left_column {
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: 24px;
+ }
+
+ .thumbnails-f-abp .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-f-abp .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .thumbnails-g img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .thumbnails-g [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .thumbnails-g .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: none;
+ width: 100%;
+ background: transparent;
+ height: auto;
+ }
+
+ .thumbnails-g .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: auto;
+ }
+
+ .thumbnails-g .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: normal;
+ }
+
+ .thumbnails-g .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-g .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11px;
+ }
+
+ .thumbnails-g .videoCube a {
+ padding: 0;
+ }
+
+ .thumbnails-g .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .thumbnails-g .trc_rbox_outer .videoCube .video-label-box {
+ height: 58.0px;
+ }
+
+ .thumbnails-g .videoCube .video-label-box {
+ padding: 0 20px;
+ }
+
+ .thumbnails-g .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ padding-top: 5px;
+ }
+
+ .thumbnails-g .videoCube:hover .video-label-box .video-title {
+ text-decoration: none;
+ }
+
+ .thumbnails-g .video-label-box .branding {
+ display: block;
+ }
+
+ .thumbnails-g .syndicatedItem .branding {
+ line-height: 16.0px;
+ }
+
+ .thumbnails-g .trc_header_left_column {
+ background: transparent;
+ height: auto;
+ }
+
+ .thumbnails-g .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-g .trc_rbox_header .trc_header_ext {
+ position: relative;
+ top: auto;
+ right: auto;
+ }
+
+ .thumbnails-g .video-label-box .video-uploader {
+ font-family: 'Fira Sans', Helvetica, Arial;
+ line-height: 16px;
+ display: block;
+ text-align: left;
+ font-size: 12px;
+ margin-top: -12px;
+ position: absolute;
+ padding: 0px 5px;
+ color: #FFF;
+ background-color: #880090;
+ }
+
+ .thumbnails-g .videoCube .video-label-box:hover .video-title {
+ color: #239716;
+ }
+
+ .trc_elastic .thumbnails-g .trc_rbox_outer .videoCube {
+ margin-bottom: 0px;
+ }
+
+ .thumbnails-h img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .thumbnails-h [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .thumbnails-h .trc_rbox_div {
+ margin-bottom: 0;
+ }
+
+ .thumbnails-h .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/0b766547f84e83c67d3decdc0b3851f0.png) no-repeat;
+ height: 27px;
+ }
+
+ .thumbnails-h .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 27px;
+ }
+
+ .thumbnails-h .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 27px;
+ }
+
+ .thumbnails-h .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-h .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .thumbnails-h .videoCube a {
+ padding: 0;
+ }
+
+ .thumbnails-h .trc_rbox_outer .videoCube {
+ margin-bottom: 10px;
+ }
+
+ .thumbnails-h .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .thumbnails-h .video-label-box {
+ height: 76.0px;
+ }
+
+ .thumbnails-h .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin-bottom: 0;
+ }
+
+ .thumbnails-h .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .thumbnails-h .video-label-box .branding {
+ display: block;
+ }
+
+ .thumbnails-h .syndicatedItem .branding {
+ line-height: 23.0px;
+ }
+
+ .thumbnails-h .trc_header_left_column {
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: 27px;
+ }
+
+ .thumbnails-h .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-h .videoCube .video-label-box {
+ margin-top: 0px;
+ }
+
+ .thumbnails-h .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .thumbnails-i img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .thumbnails-i [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .thumbnails-i .trc_rbox_div {
+ margin-bottom: 0;
+ }
+
+ .thumbnails-i .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/0b766547f84e83c67d3decdc0b3851f0.png) no-repeat;
+ height: 27px;
+ }
+
+ .thumbnails-i .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 27px;
+ }
+
+ .thumbnails-i .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 27px;
+ }
+
+ .thumbnails-i .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-i .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .thumbnails-i .videoCube a {
+ padding: 0;
+ }
+
+ .thumbnails-i .trc_rbox_outer .videoCube {
+ margin-bottom: 10px;
+ }
+
+ .thumbnails-i .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .thumbnails-i .video-label-box {
+ height: 76.0px;
+ }
+
+ .thumbnails-i .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin-bottom: 0;
+ }
+
+ .thumbnails-i .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .thumbnails-i .video-label-box .branding {
+ display: block;
+ }
+
+ .thumbnails-i .syndicatedItem .branding {
+ line-height: 19.0px;
+ }
+
+ .thumbnails-i .trc_header_left_column {
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: 27px;
+ }
+
+ .thumbnails-i .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-i .videoCube .video-label-box {
+ margin-top: 0px;
+ }
+
+ .thumbnails-i .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .thumbnails-j img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .thumbnails-j [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .thumbnails-j .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: auto;
+ }
+
+ .thumbnails-j .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: auto;
+ }
+
+ .thumbnails-j .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: normal;
+ }
+
+ .thumbnails-j .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-j .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .thumbnails-j .videoCube a {
+ padding: 0;
+ }
+
+ .thumbnails-j .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .thumbnails-j .video-label-box {
+ height: 62.0px;
+ }
+
+ .thumbnails-j .videoCube .video-label-box {
+ padding: 20px 20px 0;
+ }
+
+ .thumbnails-j .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .thumbnails-j .videoCube:hover .video-label-box .video-title {
+ text-decoration: none;
+ }
+
+ .thumbnails-j .videoCube .video-label-box .video-title:hover {
+ color: #7199D7;
+ }
+
+ .thumbnails-j .video-label-box .branding {
+ display: block;
+ }
+
+ .thumbnails-j .syndicatedItem .branding {
+ line-height: 19.0px;
+ }
+
+ .thumbnails-j .trc_header_left_column {
+ width: 48%;
+ display: inline-block;
+ background: transparent;
+ height: auto;
+ }
+
+ .thumbnails-j .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-j .trc_rbox_header .trc_header_ext {
+ position: relative;
+ top: auto;
+ right: auto;
+ }
+
+ .thumbnails-j .videoCube {
+ box-shadow: 0 1px 20px rgba(0, 0, 0, .12);
+ background: #fff;
+ }
+
+ .thumbnails-j .videoCube .video-label-box .video-title::before {
+ content: '';
+ margin-left: 10px;
+ display: inline;
+ }
+
+ @media screen and (min-width: 1240px) {
+ .trc_elastic .thumbnails-j .trc_rbox_div .videoCube {
+ margin-left: 20px;
+ width: calc(25% - 20px);
+ }
+ .trc_elastic .thumbnails-j .trc_rbox_outer {
+ margin-left: -20px;
+ }
+ }
+
+ @media screen and (max-width: 1239px) and (min-width: 930px) {
+ .trc_elastic .thumbnails-j .trc_rbox_outer {
+ margin-left: -20px;
+ }
+ .trc_elastic .thumbnails-j .trc_rbox_div .videoCube {
+ margin-left: 20px;
+ width: calc(33.33333% - 20px);
+ }
+ }
+
+ @media screen and (max-width: 620px) and (min-width: 929px) {
+ .trc_elastic .thumbnails-j .trc_rbox_outer {
+ margin-left: -20px;
+ }
+ .trc_elastic .thumbnails-j .trc_rbox_div .videoCube {
+ margin-left: 20px;
+ width: calc(50% - 20px);
+ }
+ }
+
+ .thumbnails-k img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .thumbnails-k [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .thumbnails-k .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/0b766547f84e83c67d3decdc0b3851f0.png) no-repeat;
+ height: 27px;
+ }
+
+ .thumbnails-k .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 27px;
+ }
+
+ .thumbnails-k .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 27px;
+ }
+
+ .thumbnails-k .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-k .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .thumbnails-k .videoCube a {
+ padding: 0;
+ }
+
+ .thumbnails-k .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .thumbnails-k .video-label-box {
+ height: 69.0px;
+ }
+
+ .thumbnails-k .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .thumbnails-k .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .thumbnails-k .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .thumbnails-k .video-label-box .branding {
+ display: block;
+ }
+
+ .thumbnails-k .syndicatedItem .branding {
+ line-height: 23.0px;
+ }
+
+ .thumbnails-k .trc_header_left_column {
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: 27px;
+ }
+
+ .thumbnails-k .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-k .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .thumbnails-rr img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .thumbnails-rr [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .thumbnails-rr .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/0b766547f84e83c67d3decdc0b3851f0.png) no-repeat;
+ height: 27px;
+ }
+
+ .thumbnails-rr .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 27px;
+ }
+
+ .thumbnails-rr .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 27px;
+ }
+
+ .thumbnails-rr .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-rr .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .thumbnails-rr .videoCube a {
+ padding: 0;
+ }
+
+ .thumbnails-rr .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .thumbnails-rr .video-label-box {
+ height: 80.0px;
+ }
+
+ .thumbnails-rr .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .thumbnails-rr .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .thumbnails-rr .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .thumbnails-rr .video-label-box .branding {
+ display: block;
+ }
+
+ .thumbnails-rr .syndicatedItem .branding {
+ line-height: 20.0px;
+ }
+
+ .thumbnails-rr .trc_header_left_column {
+ width: 100%;
+ display: inline-block;
+ background: transparent;
+ height: 27px;
+ }
+
+ .thumbnails-rr .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-rr [class*=span] {
+ float: none;
+ }
+
+ .thumbnails-rr [class*=span] {
+ margin-left: 0;
+ }
+
+ .thumbnails-rr .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .thumbnails-rr [class*=span] {
+ float: none;
+ }
+
+ .thumbnails-rr [class*=span] {
+ margin-left: 0;
+ }
+
+ .thumbnails-rr [class*=span] {
+ float: none;
+ }
+
+ .thumbnails-rr [class*=span] {
+ margin-left: 0;
+ }
+
+ .thumbnails-rr [class*=span] {
+ float: none;
+ }
+
+ .thumbnails-rr [class*=span] {
+ margin-left: 0;
+ }
+
+ .thumbnails-rr [class*=span] {
+ float: none;
+ }
+
+ .thumbnails-rr [class*=span] {
+ margin-left: 0;
+ }
+
+ .thumbnails-rr [class*=span] {
+ float: none;
+ }
+
+ .thumbnails-rr [class*=span] {
+ margin-left: 0;
+ }
+
+ .thumbnails-rr [class*=span] {
+ float: none;
+ }
+
+ .thumbnails-rr [class*=span] {
+ margin-left: 0;
+ }
+
+ .thumbnails-rr [class*=span] {
+ float: none;
+ }
+
+ .thumbnails-rr [class*=span] {
+ margin-left: 0;
+ }
+
+ .thumbnails-rr2 img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .thumbnails-rr2 [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .thumbnails-rr2 .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/0b766547f84e83c67d3decdc0b3851f0.png) no-repeat;
+ height: 27px;
+ }
+
+ .thumbnails-rr2 .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 27px;
+ }
+
+ .thumbnails-rr2 .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 27px;
+ }
+
+ .thumbnails-rr2 .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-rr2 .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .thumbnails-rr2 .videoCube a {
+ padding: 0;
+ }
+
+ .thumbnails-rr2 .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .thumbnails-rr2 .video-label-box {
+ height: 80.0px;
+ }
+
+ .thumbnails-rr2 .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .thumbnails-rr2 .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .thumbnails-rr2 .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .thumbnails-rr2 .video-label-box .branding {
+ display: block;
+ }
+
+ .thumbnails-rr2 .syndicatedItem .branding {
+ line-height: 20.0px;
+ }
+
+ .thumbnails-rr2 .trc_header_left_column {
+ width: 100%;
+ display: inline-block;
+ background: transparent;
+ height: 27px;
+ }
+
+ .thumbnails-rr2 .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-rr2 [class*=span] {
+ float: none;
+ }
+
+ .thumbnails-rr2 [class*=span] {
+ margin-left: 0;
+ }
+
+ .thumbnails-rr2 .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .thumbnails-rr2 [class*=span] {
+ float: none;
+ }
+
+ .thumbnails-rr2 [class*=span] {
+ margin-left: 0;
+ }
+
+ .thumbnails-rr2 [class*=span] {
+ float: none;
+ }
+
+ .thumbnails-rr2 [class*=span] {
+ margin-left: 0;
+ }
+
+ .thumbnails-rr2 [class*=span] {
+ float: none;
+ }
+
+ .thumbnails-rr2 [class*=span] {
+ margin-left: 0;
+ }
+
+ .thumbnails-rr3 img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .thumbnails-rr3 [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .thumbnails-rr3 .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(http://cdn.taboolasyndication.com/libtrc/static/thumbnails/4e2d1e48dbb06f6c68d88368d83cb926.png) no-repeat;
+ height: 28px;
+ }
+
+ .thumbnails-rr3 .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 28px;
+ }
+
+ .thumbnails-rr3 .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 28px;
+ }
+
+ .thumbnails-rr3 .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-rr3 .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .thumbnails-rr3 .videoCube a {
+ padding: 0;
+ }
+
+ .thumbnails-rr3 .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .thumbnails-rr3 .video-label-box {
+ height: 54.0px;
+ }
+
+ .thumbnails-rr3 .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .thumbnails-rr3 .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .thumbnails-rr3 .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .thumbnails-rr3 .video-label-box .branding {
+ display: block;
+ }
+
+ .thumbnails-rr3 .syndicatedItem .branding {
+ line-height: 18.0px;
+ }
+
+ .thumbnails-rr3 .trc_header_left_column {
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: 28px;
+ }
+
+ .thumbnails-rr3 .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-rr3 .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+ </style>
+ <script src="http://s.skimresources.com/js/44681X1528610.skimlinks.js" async=""></script>
+ <script id="georiot" src="http://cdn.georiot.com/snippet.js" async=""></script>
+ <script src="http://native.sharethrough.com/assets/sfp.js" async=""></script>
+ <script src="//esi.gscontxt.net/independent/channels.cgi?url=http%3A%2F%2Fwww.independent.co.uk%2Fnews%2Fbusiness%2Fnews%2Fseven-secrets-that-hotel-owners-dont-want-you-to-know-10506160.html" async=""></script>
+ <script src="http://www.independent.co.uk/profiles/ines/modules/ines_commercial/ines_commercial_ads/js/commercial.openx.js" async=""></script>
+ <script id="gigya" src="http://cdn.gigya.com/JS/gigya.js?apiKey=2_bkQWNsWGVZf-fA4GnOiUOYdGuROCvoMoEN4WMj6_YBq4iecWA-Jp9D2GZCLbzON4" async=""></script>
+ <script id="facebook-jssdk" src="//connect.facebook.net/en_GB/sdk.js#xfbml=1&amp;version=v2.4&amp;appId=235586169789578"></script>
+ <script id="twitter-wjs" src="https://platform.twitter.com/widgets.js"></script>
+ <script type="text/javascript" src="//widget.perfectmarket.com/eslmedia-theindependent/pmk-201625013.4.js"></script>
+ <script src="http://www.independent.co.uk/profiles/ines/modules/ines_commercial/ines_commercial_affiliates/js/commercial.georiot.js" async=""></script>
+ <style type="text/css"></style>
+ <script async="" type="text/javascript" charset="UTF-8" src="http://cdn.gigya.com/js/GenesisExchange_Gigya.min.js"></script>
+ <script src="http://www.independent.co.uk/profiles/ines/modules/ines_gigya/js/gigya.comments.js" async=""></script>
+ <script id="sub2tech" src="http://webservices.sub2tech.com/CodeBase/LIVE/Min/sub2.js?LICENSEKEY=a62ebd59-8802-4b7d-88d8-a93988f7e9ab&amp;trackPage=Y" async=""></script>
+ <script async="" type="text/javascript" charset="UTF-8" src="http://cdn1.gigya.com/js/gigya.services.plugins.base.min.js?services=gigya.services.comments.plugins.comments2&amp;lang=en"></script>
+ <script async="" type="text/javascript" charset="UTF-8" src="http://comments.US1.gigya.com/comments.getStreamInfo?categoryID=ArticleComments&amp;streamID=a6658741&amp;APIKey=2_bkQWNsWGVZf-fA4GnOiUOYdGuROCvoMoEN4WMj6_YBq4iecWA-Jp9D2GZCLbzON4&amp;sdk=js_6.5.20&amp;format=jsonp&amp;callback=gigya._.apiAdapters.web.callback&amp;context=R1234948081&amp;authMode=cookie"></script>
+ <style type="text/css">
+ @media screen and (min-width: 0px) and (max-width: 1px) {
+ .trc_elastic_trc_32140 .trc_rbox_outer {
+ margin-left: -2%;
+ }
+ .trc_elastic_trc_32140 .videoCube_aspect {
+ padding-bottom: 83.33333333333334%;
+ width: 100%;
+ }
+ .trc_elastic_trc_32140 .videoCube {
+ width: 22.9975%;
+ position: relative;
+ float: left;
+ margin: 0 0 2% 0;
+ margin-left: 2%;
+ }
+ .trc_elastic_trc_32140 div.videoCube:nth-of-type(-n+12) {
+ display: block;
+ visibility: visible;
+ }
+ .trc_elastic_trc_32140 div.videoCube:nth-of-type(n+13) {
+ display: none;
+ visibility: hidden;
+ }
+ }
+
+ @media screen and (min-width: 2px) and (max-width: 419px) {
+ .trc_elastic_trc_32140 .trc_rbox_outer .videoCube .video-label-box {
+ height: auto;
+ }
+ .trc_elastic_trc_32140 .trc_rbox_outer .videoCube {
+ margin-bottom: 10px;
+ }
+ .trc_elastic_trc_32140 .trc_rbox_outer {
+ margin-left: -2%;
+ }
+ .trc_elastic_trc_32140 .videoCube_aspect {
+ padding-bottom: 50%;
+ width: 100%;
+ }
+ .trc_elastic_trc_32140 .videoCube {
+ width: 97.99%;
+ position: relative;
+ float: left;
+ margin: 0 0 2% 0;
+ margin-left: 2%;
+ }
+ .trc_elastic_trc_32140 div.videoCube:nth-of-type(-n+4) {
+ display: block;
+ visibility: visible;
+ }
+ .trc_elastic_trc_32140 div.videoCube:nth-of-type(n+5) {
+ display: none;
+ visibility: hidden;
+ }
+ }
+
+ @media screen and (min-width: 420px) and (max-width: 749px) {
+ .trc_elastic_trc_32140 .trc_rbox_outer {
+ margin-left: -2%;
+ }
+ .trc_elastic_trc_32140 .videoCube_aspect {
+ padding-bottom: 83.33333333333334%;
+ width: 100%;
+ }
+ .trc_elastic_trc_32140 .videoCube {
+ width: 31.33%;
+ position: relative;
+ float: left;
+ margin: 0 0 2% 0;
+ margin-left: 2%;
+ }
+ .trc_elastic_trc_32140 div.videoCube:nth-of-type(-n+9) {
+ display: block;
+ visibility: visible;
+ }
+ .trc_elastic_trc_32140 div.videoCube:nth-of-type(n+10) {
+ display: none;
+ visibility: hidden;
+ }
+ }
+
+ @media screen and (min-width: 750px) {
+ .trc_elastic_trc_32140 .trc_rbox_outer {
+ margin-left: -2%;
+ }
+ .trc_elastic_trc_32140 .videoCube_aspect {
+ padding-bottom: 83.33333333333334%;
+ width: 100%;
+ }
+ .trc_elastic_trc_32140 .videoCube {
+ width: 31.33%;
+ position: relative;
+ float: left;
+ margin: 0 0 2% 0;
+ margin-left: 2%;
+ }
+ .trc_elastic_trc_32140 div.videoCube:nth-of-type(-n+9) {
+ display: block;
+ visibility: visible;
+ }
+ .trc_elastic_trc_32140 div.videoCube:nth-of-type(n+10) {
+ display: none;
+ visibility: hidden;
+ }
+ }
+ </style>
+ <style type="text/css">
+ .trc_popover_aug_container {
+ position: static;
+ }
+
+ #tbl-aug-voxp4u #tbl-aug-ujtj6v #tbl-aug-g9m1h7 .trc_popover {
+ position: absolute;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ line-height: 16px;
+ color: #000000;
+ cursor: default;
+ position: absolute;
+ top: 0;
+ right: 0;
+ z-index: 12000;
+ width: 180px;
+ padding: 1px;
+ text-align: left;
+ white-space: normal;
+ background-color: #ffffff;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ -webkit-border-radius: 6px;
+ -moz-border-radius: 6px;
+ border-radius: 6px;
+ -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+ -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+ box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+ -webkit-background-clip: padding-box;
+ -moz-background-clip: padding;
+ background-clip: padding-box;
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+ box-sizing: content-box;
+ }
+
+ #tbl-aug-voxp4u #tbl-aug-ujtj6v #tbl-aug-g9m1h7 .trc_popover iframe {
+ width: 100%;
+ }
+
+ #tbl-aug-voxp4u #tbl-aug-ujtj6v #tbl-aug-g9m1h7 .trc_popover .trc_popover_arrow,
+ .trc_popover .trc_popover_arrow:after {
+ position: absolute;
+ display: block;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+ }
+
+ #tbl-aug-voxp4u #tbl-aug-ujtj6v #tbl-aug-g9m1h7 .trc_popover .trc_popover_arrow {
+ border-width: 11px;
+ }
+
+ #tbl-aug-voxp4u #tbl-aug-ujtj6v #tbl-aug-g9m1h7 .trc_popover .trc_popover_arrow:after {
+ border-width: 10px;
+ content: "";
+ }
+
+ #tbl-aug-voxp4u #tbl-aug-ujtj6v #tbl-aug-g9m1h7 .trc_popover.trc_bottom {
+ margin-top: 10px;
+ }
+
+ #tbl-aug-voxp4u #tbl-aug-ujtj6v #tbl-aug-g9m1h7 .trc_popover.trc_bottom .trc_popover_arrow {
+ top: -11px;
+ right: 11px;
+ margin-left: -11px;
+ border-bottom-color: #999;
+ border-bottom-color: rgba(0, 0, 0, 0.25);
+ border-top-width: 0;
+ }
+
+ #tbl-aug-voxp4u #tbl-aug-ujtj6v #tbl-aug-g9m1h7 .trc_popover.trc_bottom .trc_popover_arrow:after {
+ top: 1px;
+ margin-left: -10px;
+ border-bottom-color: #ffffff;
+ border-top-width: 0;
+ }
+
+ #tbl-aug-voxp4u #tbl-aug-ujtj6v #tbl-aug-g9m1h7 .trc_popover_fade.trc_in {
+ visibility: visible;
+ opacity: 1;
+ filter: alpha(opacity=100);
+ transition-delay: 0s, 0s;
+ -moz-transition-delay: 0s, 0s;
+ -webkit-transition-delay: 0s, 0s;
+ -o-transition-delay: 0s, 0s;
+ -ms-transition-delay: 0s, 0s;
+ }
+
+ #tbl-aug-voxp4u #tbl-aug-ujtj6v #tbl-aug-g9m1h7 .trc_popover_fade {
+ visibility: hidden;
+ opacity: 0;
+ filter: alpha(opacity=0);
+ transition: opacity 500ms 0s, visibility 0s 500ms;
+ -webkit-transition: opacity 500ms 0s, visibility 0s 500ms;
+ -moz-transition: opacity 500ms 0s, visibility 0s 500ms;
+ -o-transition: opacity 500ms 0s, visibility 0s 500ms;
+ -ms-transition: opacity 500ms 0s, visibility 0s 500ms;
+ }
+ </style>
+ <style type="text/css">
+ @media screen and (min-width: 0px) {
+ .trc_elastic_trc_39384 .trc_rbox_outer .videoCube .video-label-box {
+ height: auto;
+ }
+ .trc_elastic_trc_39384 .trc_rbox_outer .videoCube {
+ margin-bottom: 10px;
+ }
+ .trc_elastic_trc_39384 .trc_rbox_outer {
+ margin-left: -2%;
+ }
+ .trc_elastic_trc_39384 .videoCube_aspect {
+ padding-bottom: 50%;
+ width: 100%;
+ }
+ .trc_elastic_trc_39384 .videoCube {
+ width: 97.99%;
+ position: relative;
+ float: left;
+ margin: 0 0 2% 0;
+ margin-left: 2%;
+ }
+ .trc_elastic_trc_39384 div.videoCube:nth-of-type(-n+5) {
+ display: block;
+ visibility: visible;
+ }
+ .trc_elastic_trc_39384 div.videoCube:nth-of-type(n+6) {
+ display: none;
+ visibility: hidden;
+ }
+ }
+ </style>
+ <script type="text/javascript" async="" src="//r.skimresources.com/api/?callback=skimlinksApplyHandlers&amp;data=%7B%22pubcode%22%3A%2244681X1528610%22%2C%22domains%22%3A%5B%22independentsubscriptions.co.uk%22%2C%22edition.independent.co.uk%22%2C%22tickets.independent.co.uk%22%2C%22courses.independent.co.uk%22%2C%22directory.independent.co.uk%22%2C%22independentescapes.com%22%2C%22indy100.com%22%2C%22puzzles.independent.co.uk%22%2C%22independentjobs.independent.co.uk%22%2C%22dating.independent.co.uk%22%2C%22facebook.com%22%2C%22twitter.com%22%2C%22quora.com%22%2C%22popup.taboola.com%22%2C%22go.babbel.com%22%2C%22plarium.com%22%2C%22clknew.com%22%2C%22trknx.com%22%2C%22us-presidents.insidegov.com%22%2C%22save70.com%22%2C%22onlinehealth.wiki%22%2C%22capgemini.ft.com%22%2C%22global-diseases.healthgrove.com%22%2C%22movies.prettyfamous.com%22%2C%22reuters.tv%22%2C%22aplus.com%22%2C%22independentnews.zendesk.com%22%2C%22esimedia.co.uk%22%2C%22syndication.independent.co.uk%22%2C%22standard.co.uk%22%2C%22en.novayagazeta.ru%22%5D%2C%22page%22%3A%22http%3A%2F%2Fwww.independent.co.uk%2Fnews%2Fbusiness%2Fnews%2Fseven-secrets-that-hotel-owners-dont-want-you-to-know-10506160.html%22%7D"></script>
+ <script type="text/javascript" id="ox_acj_7539148985" src="http://esimedia-d.openx.net/w/1.0/acj?o=7539148985&amp;callback=OX_7539148985&amp;ju=http%3A//www.independent.co.uk/news/business/news/seven-secrets-that-hotel-owners-dont-want-you-to-know-10506160.html&amp;jr=&amp;be=1&amp;auid=538447738&amp;aus=728x90%2C970x250&amp;bc=hb_2api&amp;bt=3000&amp;dims=1280x710&amp;adxy=0%2C100&amp;res=1440x900x24&amp;plg=swf%2Cshk%2Cpm&amp;ch=UTF-8&amp;tz=-480&amp;ws=1280x710&amp;ifr=0&amp;tws=1280x710&amp;vmt=1&amp;sd=18"></script>
+ <script type="text/javascript" id="ox_acj_1596247291" src="http://esimedia-d.openx.net/w/1.0/acj?o=1596247291&amp;callback=OX_1596247291&amp;ju=http%3A//www.independent.co.uk/news/business/news/seven-secrets-that-hotel-owners-dont-want-you-to-know-10506160.html&amp;jr=&amp;be=1&amp;auid=538447738&amp;aus=300x600%2C300x250&amp;bc=hb_2api&amp;bt=3000&amp;dims=1280x710&amp;adxy=783%2C1238&amp;res=1440x900x24&amp;plg=swf%2Cshk%2Cpm&amp;ch=UTF-8&amp;tz=-480&amp;ws=1280x710&amp;ifr=0&amp;tws=1280x710&amp;vmt=1&amp;sd=18"></script>
+ <script async="" type="text/javascript" charset="UTF-8" src="http://comments.US1.gigya.com/comments.getComments?categoryID=ArticleComments&amp;streamID=a6658741&amp;includeSettings=true&amp;threaded=true&amp;includeStreamInfo=true&amp;includeUserOptions=true&amp;includeUserHighlighting=true&amp;lang=en&amp;ctag=comments_v2&amp;APIKey=2_bkQWNsWGVZf-fA4GnOiUOYdGuROCvoMoEN4WMj6_YBq4iecWA-Jp9D2GZCLbzON4&amp;cid=&amp;source=showCommentsUI&amp;sourceData=%7B%22categoryID%22%3A%22ArticleComments%22%2C%22streamID%22%3A%22a6658741%22%7D&amp;sdk=js_6.5.20&amp;format=jsonp&amp;callback=gigya._.apiAdapters.web.callback&amp;context=R434684429&amp;authMode=cookie"></script>
+ <script src="http://www.independent.co.uk/profiles/ines/modules/ines_gigya/js/gigya.ui.js" async=""></script>
+ <script src="http://partner.googleadservices.com/gpt/pubads_impl_105.js" async=""></script>
+ <script async="" type="text/javascript" charset="UTF-8" src="http://cdn.gigya.com/js/gigya.services.socialize.plugins.reactions.min.js?lang=en"></script>
+ <link rel="prefetch" href="http://tpc.googlesyndication.com/safeframe/1-0-5/html/container.html" />
+ <style type="text/css">
+ .gig-comments-container *.gig-badge-moderators {
+ color: #00AEEF;
+ }
+
+ .gig-comments-container *.gig-badge-moderators.gig-badge-border {
+ border-color: #00AEEF;
+ }
+
+ .gig-comments-container *.gig-comment-username-badge-moderators {
+ color: #00AEEF;
+ }
+
+ .gig-comments-container *.gig-badge-experts {
+ color: #828282;
+ }
+
+ .gig-comments-container *.gig-badge-experts.gig-badge-border {
+ border-color: #828282;
+ }
+
+ .gig-comments-container *.gig-comment-username-badge-experts {
+ color: #000000;
+ }
+
+ .gig-comments-container *.gig-badge-journalists {
+ color: #7A3CC6;
+ }
+
+ .gig-comments-container *.gig-badge-journalists.gig-badge-border {
+ border-color: #7A3CC6;
+ }
+
+ .gig-comments-container *.gig-comment-username-badge-journalists {
+ color: #000000;
+ }
+
+ .gig-comments-container *.gig-badge-staff {
+ color: #39B54A;
+ }
+
+ .gig-comments-container *.gig-badge-staff.gig-badge-border {
+ border-color: #39B54A;
+ }
+
+ .gig-comments-container *.gig-comment-username-badge-staff {
+ color: #000000;
+ }
+
+ .gig-comments-container *.gig-badge-pick {
+ color: #009CDC;
+ background-image: url(http://cdn3.gigya.com/gs/i/comments2/editors_pick_x2.png);
+ background-size: 17px 17px;
+ }
+
+ .gig-comments-container *.gig-badge-pick.gig-badge-border {
+ border-color: #009CDC;
+ }
+
+ .gig-comments-container *.gig-comment-badge-pick {
+ background-color: #E5F8FF;
+ }
+ </style>
+ <style type="text/css">
+ .gig-comments-container *,
+ *.gig-comments-container {
+ word-wrap: break-word;
+ padding: 0px;
+ margin: 0px;
+ color: inherit;
+ text-decoration: none;
+ width: auto;
+ float: none;
+ font-family: arial;
+ color: #333333;
+ position: static;
+ text-align: left;
+ vertical-align: baseline;
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+ box-sizing: content-box;
+ }
+
+ .gig-comments-container input {
+ outline: none
+ }
+
+ .gig-comments-container .gig-composebox-summary-input {
+ font-weight: bold;
+ }
+
+ .gig-comments-container .gig-composebox-summary-input.gig-comments-placeholder {
+ font-weight: bold;
+ }
+
+ .gig-comments-container .gig-comments-placeholder {
+ color: #999;
+ opacity: 1
+ }
+
+ .gig-comments-container input:-moz-placeholder {
+ color: #585858;
+ opacity: 1
+ }
+
+ .gig-comments-container input::-moz-placeholder {
+ color: #585858;
+ opacity: 1
+ }
+
+ .gig-comments-container input::-webkit-input-placeholder {
+ color: #585858;
+ opacity: 1
+ }
+
+ .gig-comments-container input:-moz-placeholder {
+ color: #585858;
+ opacity: 1
+ }
+
+ *.gig-comments-container u {
+ text-decoration: underline
+ }
+
+ .gig-comments-container li {
+ margin: 0;
+ padding: 0;
+ list-style-type: none
+ }
+
+ .gig-comments-container ul {
+ margin: 0;
+ padding: 0;
+ }
+
+ *.gig-composebox-textarea ul,
+ .gig-comment-body ul {
+ padding-left: 20px;
+ }
+
+ *.gig-composebox-textarea li,
+ .gig-comment-body li {
+ list-style-type: disc
+ }
+
+ .gig-comments-container * {}
+
+ *.gig-comments-container-progress {
+ width: 100%;
+ height: 38px;
+ background-repeat: no-repeat;
+ background-position: center center;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/progress_ani_gif_x1.gif')
+ }
+
+ .gig-comments-hires-icons *.gig-comments-container-progress {
+ background-size: contain;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/progress_ani_gif_x2.gif')
+ }
+
+ *.gig-clearfix {
+ clear: both
+ }
+
+ *.gig-comments-header {
+ overflow: hidden;
+ border-bottom: 1px solid #EBEBEB;
+ margin-bottom: 8px;
+ padding-bottom: 8px;
+ }
+
+ *.gig-comments-count {
+ font-size: 16px;
+ font-weight: bold;
+ }
+
+ *.gig-comments-header-right {
+ float: right;
+ }
+
+ *.gig-comments-header-left {
+ float: left;
+ }
+
+ *.gig-comments-linksContainer {
+ display: inline-block;
+ }
+
+ *.gig-comments-linksContainer li,
+ *.gig-comments-linksContainer a,
+ *.gig-comments-linksContainer li a:hover,
+ *.gig-comments-linksContainer a:active,
+ *.gig-comments-linksContainer a:visited,
+ *.gig-comments-linksContainer a:link {
+ color: #999999;
+ cursor: pointer;
+ display: inline-block;
+ }
+
+ *.gig-comments-linksContainer li {
+ margin-right: 3px;
+ }
+
+ *.gig-comments-linksContainer li:after {
+ content: " ";
+ width: 2px;
+ height: 2px;
+ background-color: #999999;
+ vertical-align: middle;
+ margin-left: 3px;
+ display: inline-block;
+ }
+
+ *.gig-comments-linksContainer *.gig-comments-link-lastVisible:after {
+ content: "";
+ margin: 0;
+ display: none;
+ }
+
+ *.gig-comments-linksContainer *.gig-comments-link-lastVisible {
+ margin-right: 0;
+ }
+
+ *.gig-comment {
+ width: 100%;
+ }
+
+ *.gig-comment * {
+ color: #999999;
+ }
+
+ *.gig-comment .gig-comment-content {
+ padding-left: 6px;
+ transition-property: background-color, padding;
+ }
+
+ *.gig-comment-newComment .gig-comment-content {
+ padding: 6px;
+ background-color: #CEFAD3;
+ border-radius: 4px;
+ }
+
+ *.gig-comment-summary {
+ display: inline-block;
+ font-size: 13px;
+ font-weight: bold;
+ vertical-align: top;
+ color: #333333;
+ font-size: 14px;
+ }
+
+ *.gig-comment-photo {
+ float: left;
+ width: 37px;
+ height: 37px;
+ }
+
+ *.gig-comment-providerLogo {
+ text-align: right;
+ }
+
+ *.gig-comment-providerLogo img {
+ width: 14px;
+ height: 14px;
+ margin-top: -11px;
+ margin-right: -3px;
+ display: inline-block;
+ }
+
+ *.gig-comment-data {
+ padding-left: 41px;
+ }
+
+ *.gig-comment-header {
+ overflow: hidden;
+ margin-bottom: 6px;
+ }
+
+ *.gig-comment-header-right {
+ float: right;
+ }
+
+ *.gig-comment-time {
+ font-size: 11px;
+ display: inline-block;
+ margin: 2px 0 0 10px;
+ float: right;
+ }
+
+ *.gig-comment-username {
+ font-weight: bold;
+ color: #333333;
+ margin-right: 6px;
+ display: inline-block;
+ }
+
+ *.gig-comment-body,
+ .gig-comment-body * {
+ color: #585858;
+ line-height: 18px;
+ }
+
+ *.gig-comment-footer,
+ *.gig-comment-replies {
+ padding-left: 6px
+ }
+
+ *.gig-comment-replies {
+ transition-property: max-height;
+ overflow: hidden;
+ }
+
+ *.gig-comment-replies-collapsed {
+ display: none;
+ }
+
+ *.gig-comment-footer {
+ font-size: 11px;
+ overflow: hidden;
+ border-bottom: 1px solid #EBEBEB;
+ margin: 10px 0;
+ padding-bottom: 10px;
+ }
+
+ *.gig-comment[data-level="0"]:last-of-type *.gig-comment-footer:last-ch {
+ border-bottom: none;
+ }
+
+ *.gig-comment-footer-left {
+ float: left;
+ }
+
+ *.gig-comment-footer li {
+ cursor: pointer;
+ }
+
+ *.gig-comment .gig-comment-replybox {
+ display: none;
+ background-color: #F6F6F6;
+ padding: 4px 6px;
+ }
+
+ *.gig-comment .gig-comment-replybox-open {
+ display: block;
+ margin-bottom: 10px;
+ }
+
+ *.gig-comment .gig-composebox-title,
+ *.gig-comment .gig-composebox-title * {
+ font-weight: normal;
+ font-style: italic;
+ color: #333333
+ }
+
+ *.gig-comment *.gig-composebox-username {
+ font-weight: bold;
+ }
+
+ *.gig-comment-repliesArrow div {
+ display: inline-block
+ }
+
+ *.gig-comment-repliesArrow-img {
+ margin: 0 1px 0 6px;
+ width: 9px;
+ height: 9px;
+ margin-right: 3px;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Reply_Arrow_x1.png');
+ background-repeat: no-repeat;
+ background-position: 0px 3px;
+ }
+
+ .gig-comments-hires-icons *.gig-comment-repliesArrow-img {
+ background-size: contain;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Reply_Arrow_x2.png');
+ }
+
+ *.gig-comment-repliesArrow .gig-comment-repliesArrow-img {}
+
+ *.gig-comment-repliesArrow-collapsed .gig-comment-repliesArrow-img {
+ -webkit-transform: rotate(270deg);
+ transform: rotate(270deg);
+ }
+
+ *.gig-comment-status {
+ display: none;
+ border-radius: 3px;
+ color: #FFFFFF;
+ padding: 2px 8px;
+ border-radius: 3px;
+ margin-bottom: 6px;
+ }
+
+ *.gig-comment-body a:link {
+ color: #007ACF;
+ text-decoration: underline;
+ }
+
+ *.gig-comment-body a:visited {
+ color: #61007d;
+ text-decoration: underline;
+ }
+
+ *.gig-comment-status-info {
+ display: inline-block;
+ background-color: #64B46F;
+ }
+
+ *.gig-comment-status-error {
+ display: inline-block;
+ background-color: #D0605F;
+ margin-bottom: 6px;
+ }
+
+ *.gig-comment-viaProvider {
+ display: inline-block;
+ font-style: italic;
+ margin: 0 12px;
+ padding: 0 0 0 12px;
+ background-repeat: no-repeat;
+ background-position: left center;
+ }
+
+ *.gig-comment-viaProvider-facebook {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2//providers/Facebook_9x9_x1.png');
+ }
+
+ .gig-comments-hires-icons *.gig-comment-viaProvider-facebook {
+ background-size: contain;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2//providers/Facebook_9x9_x2.png');
+ }
+
+ .gig-comments-hires-icons *.gig-loginbox-provider {
+ background-size: 15px;
+ }
+
+ img.gig-comment-img {
+ border-radius: 3px;
+ }
+
+ *.gig-comment-footer-right {
+ float: right;
+ }
+
+ *.gig-comment-footer-right div {
+ display: inline-block;
+ height: 17px;
+ line-height: 16px;
+ vertical-align: bottom;
+ }
+
+ *.gig-comment-vote-pos,
+ *.gig-comment-vote-neg {
+ cursor: pointer;
+ background-repeat: no-repeat;
+ background-position: 0 0;
+ padding-left: 14px;
+ }
+
+ *.gig-comment-vote-with-value {
+ padding-left: 17px;
+ }
+
+ *.gig-comment-vote-total {
+ margin-right: 5px;
+ }
+
+ *.gig-comment-vote-pos {
+ background-size: 14px 14px;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Thumbs_up_x1.png')
+ }
+
+ .gig-comments-hires-icons *.gig-comment-vote-pos {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Thumbs_up_x2.png')
+ }
+
+ *.gig-comment-vote-pos-down {
+ background-size: 14px 14px;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Thumbs_up_pressed_x1.png')
+ }
+
+ .gig-comments-hires-icons *.gig-comment-vote-pos-down {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Thumbs_up_pressed_x2.png')
+ }
+
+ *.gig-comment-vote-neg {
+ background-size: 14px 14px;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Thumbs_down_x1.png');
+ margin-left: 15px;
+ position: relative;
+ background-position: 0 3px;
+ }
+
+ .gig-comments-hires-icons *.gig-comment-vote-neg {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Thumbs_down_x2.png');
+ }
+
+ *.gig-comment-vote-posneg *.gig-comment-vote-neg {
+ margin-left: 2px;
+ }
+
+ *.gig-comment-vote-neg-down {
+ background-size: 14px 14px;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Thumbs_down_pressed_x1.png')
+ }
+
+ .gig-comments-hires-icons *.gig-comment-vote-neg-down {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Thumbs_down_pressed_x2.png')
+ }
+
+ *.gig-comment-flag {
+ margin: 0 15px;
+ vertical-align: top;
+ display: inline-block;
+ width: 14px;
+ height: 14px;
+ visibility: hidden;
+ cursor: pointer;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Flag_Icon_x1.png')
+ }
+
+ .gig-comments-hires-icons *.gig-comment-flag {
+ background-size: contain;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Flag_Icon_x2.png')
+ }
+
+ *.gig-comment-flag-submitted {
+ cursor: default;
+ visibility: visible;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Flag_Icon_Submitted_x1.png')
+ }
+
+ .gig-comments-hires-icons *.gig-comment-flag-submitted {
+ background-size: contain;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Flag_Icon_Submitted_x2.png')
+ }
+
+ *.gig-comments-more {
+ cursor: pointer;
+ border-radius: 3px;
+ line-height: 38px;
+ border: 1px solid #F7F6F6;
+ background-color: #F9F9F9;
+ text-align: center;
+ }
+
+ *.gig-comments-more:hover {
+ background-color: #E5E5E5
+ }
+
+ *.gig-comments-more-progress {
+ cursor: default;
+ width: 100%;
+ height: 38px;
+ background-repeat: no-repeat;
+ background-position: center center;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/progress_ani_gif_x2.gif')
+ }
+
+ .gig-comments-hires-icons *.gig-comments-more-progress {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/progress_ani_gif_x2.gif')
+ }
+
+ *.gig-comments-more-progress:hover {
+ background-color: #F9F9F9;
+ }
+
+ *.gig-comments-dialog {
+ min-width: 367px;
+ min-height: 140px;
+ border: 6px solid #858585;
+ border-radius: 5px;
+ background-color: #FFFFFF;
+ }
+
+ *.gig-comments-dialog-close {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/close_icon_x1.png');
+ width: 15px;
+ height: 15px;
+ float: right;
+ cursor: pointer;
+ }
+
+ .gig-comments-hires-icons *.gig-comments-dialog-close {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/close_icon_x2.png');
+ background-size: contain;
+ }
+
+ *.gig-comments-dialog-caption-container {
+ overflow: hidden;
+ background-color: #f3f3f3;
+ padding: 5px 5px 5px 12px;
+ overflow: auto;
+ zoom: 1;
+ font-size: 14px;
+ font-weight: bold;
+ color: #4d4d4d;
+ }
+
+ *.gig-comments-dialog-caption {
+ display: inline-block;
+ float: left;
+ }
+
+ *.gig-comments-dialog-body {
+ padding: 24px 12px 12px 12px;
+ }
+
+ *.gig-comments-dialog-buttons {
+ margin-top: 12px;
+ text-align: right;
+ margin: 20px;
+ }
+
+ *.gig-comments-dialog-text {
+ margin-bottom: 10px;
+ }
+
+ *.gig-comments-dialog-textbox-container {
+ float: left
+ }
+
+ *.gig-comments-dialog-textbox {
+ width: 260px;
+ color: #4D4D4D;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ padding: 0 4px;
+ background-color: white;
+ border: 1px solid #C0C0C0;
+ height: 24px;
+ box-shadow: inset 0 0 4px #DCDCDC;
+ -moz-box-shadow: inset 0 0 4px #DCDCDC;
+ -webkit-box-shadow: inset 0 0 4px #DCDCDC;
+ }
+
+ *.gig-comments-dialog-subscribe-okIcon {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/ok_icon_x1.png');
+ width: 14px;
+ height: 14px;
+ position: relative;
+ top: 2px;
+ margin-right: 2px;
+ display: inline-block;
+ }
+
+ .gig-comments-hires-icons *.gig-comments-dialog-subscribe-okIcon {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/ok_icon_x2.png');
+ }
+
+ *.gig-comments-dialog-button {
+ line-height: 22px;
+ font-size: 12px;
+ margin-left: 7px;
+ font-weight: bold;
+ min-width: 50px;
+ position: relative;
+ border-radius: 3px;
+ color: #4d4d4d;
+ cursor: pointer;
+ font-size: 11px;
+ padding: 0 5px;
+ border: 1px solid #C5C7C7;
+ display: inline-block;
+ zoom: 1;
+ vertical-align: middle;
+ text-align: center;
+ box-shadow: 0 0 2px RGBA(0, 0, 0, 0.15);
+ -webkit-box-shadow: 0 0 2px RGBA(0, 0, 0, 0.15);
+ -moz-box-shadow: 0 0 2px RGBA(0, 0, 0, 0.15);
+ filter: progid: DXImageTransform.Microsoft.gradient(startColorstr="#FFFFFF", endColorstr="#EAEBEB");
+ background: linear-gradient(top, #FFFFFF, #EAEBEB);
+ background: -ms-linear-gradient(top left, #FFFFFF, #EAEBEB);
+ background: -webkit-gradient(linear, left top, left bottom, from(#FFFFFF), to(#EAEBEB));
+ background: -moz-linear-gradient(top, #FFFFFF, #EAEBEB)
+ }
+ }
+ *.gig-comments-dialog-button:hover {
+ color: #b4b4b4;
+ cursor: default;
+ filter: progid: DXImageTransform.Microsoft.gradient(startColorstr="#EBEBEB", endColorstr="#FFFFFF");
+ background: linear-gradient(top, #EBEBEB, #FFFFFF);
+ background: -ms-linear-gradient(top left, #EBEBEB, #FFFFFF);
+ background: -webkit-gradient(linear, left top, left bottom, from(#EBEBEB), to(#FFFFFF));
+ background: -moz-linear-gradient(top, #EBEBEB, #FFFFFF)
+ }
+ *.gig-comments-dialog-error {
+ color: #ce585a;
+ font-size: 11px;
+ margin-top: 5px;
+ clear: both;
+ }
+ *.gig-comments-dialog-textbox-button {}
+ *.gig-composebox {
+ margin-bottom: 23px;
+ }
+ *.gig-composebox-login {}
+ *.gig-composebox-login div {
+ display: inline-block;
+ line-height: 30px;
+ font-weight: bold;
+ }
+ *.gig-composebox-or {
+ margin: 0 10px;
+ }
+ *.gig-composebox-social-login,
+ *.gig-composebox-guest-login,
+ *.gig-composebox-site-login {
+ border-radius: 3px;
+ cursor: pointer;
+ padding: 0 15px;
+ font-size: 14px;
+ box-shadow: inset 1px 1px #fff;
+ border: solid 1px #e2e2e2;
+ filter: progid: DXImageTransform.Microsoft.gradient(startColorstr="#f5f5f5", endColorstr="#f1f1f0");
+ background: linear-gradient(top, #f5f5f5, #f1f1f0);
+ background: -ms-linear-gradient(top left, #f5f5f5, #f1f1f0);
+ background: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#f1f1f0));
+ background: -moz-linear-gradient(top, #f5f5f5, #f1f1f0);
+ }
+ *.gig-composebox-social-login:hover,
+ *.gig-composebox-guest-login:hover,
+ *.gig-composebox-site-login:hover {
+ filter: progid: DXImageTransform.Microsoft.gradient(startColorstr="#EFEFEF", endColorstr="#E1E1E1");
+ background: linear-gradient(top, #EFEFEF, #E1E1E1);
+ background: -ms-linear-gradient(top left, #EFEFEF, #E1E1E1);
+ background: -webkit-gradient(linear, left top, left bottom, from(#EFEFEF), to(#E1E1E1));
+ background: -moz-linear-gradient(top, #EFEFEF, #E1E1E1);
+ }
+ *.gig-composebox-social-login {
+ padding: 0 9px;
+ background-repeat: no-repeat;
+ background-position: right center;
+ filter: progid: DXImageTransform.Microsoft.gradient(startColorstr="#f5f5f5", endColorstr="#f1f1f0");
+ background: linear-gradient(top, #f5f5f5, #f1f1f0);
+ background: -ms-linear-gradient(top left, #f5f5f5, #f1f1f0);
+ background: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#f1f1f0));
+ background: -moz-linear-gradient(top, #f5f5f5, #f1f1f0);
+ }
+ *.gig-composebox-social-login:hover {
+ filter: progid: DXImageTransform.Microsoft.gradient(startColorstr="#EFEFEF", endColorstr="#E1E1E1");
+ background: linear-gradient(top, #EFEFEF, #E1E1E1);
+ background: -ms-linear-gradient(top left, #EFEFEF, #E1E1E1);
+ background: -webkit-gradient(linear, left top, left bottom, from(#EFEFEF), to(#E1E1E1));
+ background: -moz-linear-gradient(top, #EFEFEF, #E1E1E1);
+ }
+ *.gig-composebox-login-icon {
+ background-position: center;
+ display: inline-block;
+ width: 36px;
+ height: 17px;
+ margin: 0 7px;
+ vertical-align: middle;
+ background-repeat: no-repeat;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Login-icons-fb_tw_x1.png')
+ }
+ .gig-comments-hires-icons *.gig-composebox-login-icon {
+ background-size: contain;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Login-icons-fb_tw_x2.png')
+ }
+ *.gig-composebox-login-drop-icon {
+ background-position: center;
+ display: inline-block;
+ width: 9px;
+ height: 17px;
+ vertical-align: middle;
+ background-repeat: no-repeat;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Login_icons_arrow_x1.png')
+ }
+ .gig-comments-hires-icons *.gig-composebox-login-drop-icon {
+ background-size: contain;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Login_icons_arrow_x2.png')
+ }
+ *.gig-composebox-header {
+ transition-property: max-height;
+ overflow: hidden;
+ margin-bottom: 4px;
+ }
+ .gig-composebox-open *.gig-composebox-header {
+ margin-bottom: 4px;
+ }
+ .gig-comments-reviews .gig-composebox-header,
+ .gig-comments-reviews .gig-composebox-open .gig-composebox-header {
+ max-height: none;
+ }
+ *.gig-composebox-header-left {
+ float: left;
+ }
+ *.gig-composebox-header-right {
+ float: right;
+ }
+ *.gig-composebox-header-right *,
+ *.gig-composebox-header-left * {
+ vertical-align: bottom;
+ }
+ *.gig-composebox-title,
+ *.gig-composebox-name {
+ display: inline-block;
+ font-size: 14px;
+ font-weight: bold;
+ margin: 0 5px 0 0;
+ }
+ *.gig-composebox-logout {
+ cursor: pointer;
+ display: inline-block;
+ font-size: 11px;
+ color: #999999;
+ }
+ *.gig-composebox-logout span {
+ font-size: 12px;
+ color: #0796c6
+ }
+ *.gig-composebox-logout:hover span {
+ text-decoration: underline
+ }
+ *.gig-comment-replybox *.gig-composebox-close {
+ display: inline-block;
+ margin-left: 5px;
+ cursor: pointer;
+ width: 15px;
+ height: 15px;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/close_icon_x1.png');
+ background-position: center;
+ background-repeat: no-repeat;
+ }
+ .gig-comments-hires-icons *.gig-comment-replybox *.gig-composebox-close {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/close_icon_x2.png');
+ background-size: contain;
+ }
+ *.gig-comment-replybox *.gig-composebox-close:hover {
+ background-color: #ebebeb;
+ }
+ *.gig-composebox-follow {
+ font-size: 13px;
+ cursor: pointer;
+ display: inline-block;
+ color: #919191;
+ padding-left: 12px;
+ background-repeat: no-repeat;
+ background-position: left center;
+ background-size: 8px 8px;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Follow_x1.png')
+ }
+ .gig-comments-hires-icons *.gig-composebox-follow {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Follow_x2.png')
+ }
+ *.gig-composebox-following {
+ background-size: 8px 8px;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Following_x1.png')
+ }
+ .gig-comments-hires-icons *.gig-composebox-following {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Following_x2.png')
+ }
+ *.gig-composebox-following:hover {
+ background-size: 8px 8px;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Unfollow_x1.png')
+ }
+ .gig-comments-hires-icons *.gig-composebox-following:hover {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Unfollow_x2.png')
+ }
+ *.gig-composebox-photo {
+ float: left;
+ width: 37px;
+ height: 37px
+ }
+ *.gig-composebox-data {
+ padding-left: 47px;
+ }
+ *.gig-comments-composebox *.gig-composebox-data {
+ margin-bottom: 20px;
+ }
+ *.gig-composebox-footer {
+ display: none;
+ overflow: hidden;
+ margin-top: 4px;
+ }
+ .gig-composebox-open *.gig-composebox-footer {
+ display: block;
+ }
+ *.gig-composebox-footer-left,
+ *.gig-composebox-footer-right {
+ padding: 2px 0;
+ }
+ *.gig-composebox-footer-left {
+ float: left;
+ }
+ *.gig-composebox-footer-right {
+ float: right;
+ }
+ *.gig-composebox-cancel {
+ cursor: pointer;
+ padding: 0 18px;
+ font-size: 14px;
+ font-weight: bold;
+ color: #484848;
+ display: inline-block;
+ line-height: 28px;
+ border-radius: 3px;
+ background-color: #484848;
+ box-shadow: 1px 1px rgba(255, 255, 255, 0.4) inset;
+ border: 1px solid #bfbfbf;
+ filter: progid: DXImageTransform.Microsoft.gradient(startColorstr="#e2e2e2", endColorstr=" #bfbfbf");
+ background: linear-gradient(top, #e2e2e2, #bfbfbf);
+ background: -ms-linear-gradient(top left, #e2e2e2, #bfbfbf);
+ background: -webkit-gradient(linear, left top, left bottom, from(#e2e2e2), to( #bfbfbf));
+ background: -moz-linear-gradient(top, #e2e2e2, #bfbfbf);
+ margin-right: 6px;
+ }
+ *.gig-composebox-cancel:hover {
+ filter: progid: DXImageTransform.Microsoft.gradient(startColorstr="#e2e2e2", endColorstr=" #bfbfbf");
+ background: linear-gradient(top, #e2e2e2, #bfbfbf);
+ background: -ms-linear-gradient(top left, #e2e2e2, #bfbfbf);
+ background: -webkit-gradient(linear, left top, left bottom, from(#e2e2e2), to( #bfbfbf));
+ background: -moz-linear-gradient(top, #e2e2e2, #bfbfbf);
+ }
+ *.gig-composebox-post {
+ cursor: pointer;
+ padding: 0 18px;
+ font-size: 14px;
+ font-weight: bold;
+ color: #FFFFFF;
+ display: inline-block;
+ line-height: 28px;
+ border-radius: 3px;
+ background-color: #D8D8D8;
+ box-shadow: 1px 1px rgba(255, 255, 255, 0.4) inset;
+ border: 1px solid #51AE48;
+ filter: progid: DXImageTransform.Microsoft.gradient(startColorstr="#88cb82", endColorstr="#72c26d");
+ background: linear-gradient(top, #88cb82, #72c26d);
+ background: -ms-linear-gradient(top left, #88cb82, #72c26d);
+ background: -webkit-gradient(linear, left top, left bottom, from(#88cb82), to(#72c26d));
+ background: -moz-linear-gradient(top, #88cb82, #72c26d);
+ }
+ *.gig-comments-button {
+ cursor: -moz-user-select: none;
+ -khtml-user-select: none;
+ -webkit-user-select: none;
+ -o-user-select: none;
+ }
+ *.gig-composebox-post:hover {
+ filter: progid: DXImageTransform.Microsoft.gradient(startColorstr="#7AB574", endColorstr="#68AF63");
+ background: linear-gradient(top, #7AB574, #68AF63);
+ background: -ms-linear-gradient(top left, #7AB574, #68AF63);
+ background: -webkit-gradient(linear, left top, left bottom, from(#7AB574), to(#68AF63));
+ background: -moz-linear-gradient(top, #7AB574, #68AF63);
+ }
+ *.gig-composebox-postAnonymously {
+ display: inline-block;
+ }
+ *.gig-composebox-anon-text {
+ vertical-align: middle;
+ display: inline-block;
+ font-family: arial;
+ font-size: 12px;
+ color: #999999;
+ padding: 0 10px 0 5px;
+ }
+ *.gig-composebox-anon-checkbox {
+ vertical-align: middle;
+ }
+ *.gig-composebox-summary {
+ display: none;
+ padding: 9px;
+ }
+ .gig-composebox-open *.gig-composebox-summary {
+ display: block;
+ margin-bottom: 5px;
+ }
+ *.gig-composebox-summary input {
+ width: 100%;
+ border: none;
+ color: #585858;
+ }
+ *.gig-composebox-editor {
+ text-align: right;
+ padding: 0 9px 9px 9px;
+ }
+ *.gig-composebox-editor-with-sidebar {
+ padding: 0 29px 9px 9px;
+ }
+ *.gig-composebox-editor,
+ *.gig-composebox-summary {
+ background-color: #FFFFFF;
+ border: 1px solid #D5D5D5;
+ border-radius: 3px;
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.05) inset;
+ border: solid 1px #d5d5d5;
+ }
+ *.gig-composebox-textarea {
+ line-height: 18px;
+ transition-property: min-height;
+ text-align: left;
+ cursor: text;
+ min-height: 17px;
+ resize: none;
+ border: none;
+ margin-top: 9px;
+ outline: none
+ }
+ *.gig-composebox-textarea,
+ *.gig-composebox-textarea * {
+ color: #585858;
+ font-size: 14px;
+ }
+ textarea.gig-composebox-textarea {
+ overflow: hidden;
+ width: 100%;
+ display: block;
+ height: 17px;
+ }
+ .gig-composebox-open textarea.gig-composebox-textarea {
+ height: 65px;
+ }
+ .gig-composebox-open *.gig-composebox-textarea {
+ min-height: 69px;
+ }
+ *.gig-composebox-textarea,
+ *.gig-composebox-textarea *,
+ *.gig-composebox-summary input {
+ font-size: 12px;
+ }
+ *.gig-composebox-textarea:empty:not(:focus):before {
+ color: #999;
+ content: attr(data-placeholder);
+ }
+ ul.gig-composebox-sidebar {
+ display: none;
+ background-color: #FFFFFF;
+ float: right;
+ margin-right: -29px;
+ }
+ ul.gig-composebox-sidebar {
+ transition-property: opacity;
+ opacity: 0;
+ }
+ .gig-composebox-open *.gig-composebox-sidebar {
+ opacity: 1;
+ display: inline-block;
+ }
+ .gig-comments-hires-icons *.gig-composebox-sidebar-button {
+ background-size: 18px 18px;
+ }
+ *.gig-composebox-sidebar-button {
+ border-radius: 0px;
+ background-color: #f0f0f0;
+ width: 29px;
+ height: 29px;
+ display: block;
+ background-color: #F7F3F7;
+ }
+ *.gig-composebox-sidebar-button:last-child:nth-child(-n+2) {
+ border-radius: 0 0 0 3px;
+ }
+ *.gig-composebox-sidebar-button:hover,
+ *.gig-composebox-sidebar-button-down {
+ background-color: #f1f1f1;
+ box-shadow: inset 0 0 9px rgba(0, 0, 0, .26);
+ }
+ *.gig-composebox-sidebar-font {
+ cursor: pointer;
+ width: 29px;
+ height: 29px;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Rich_Text_up_x1.png')
+ }
+ .gig-comments-hires-icons *.gig-composebox-sidebar-font {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Rich_Text_up_x2.png')
+ }
+ *.gig-composebox-sidebar-font:hover,
+ *.gig-composebox-sidebar-font.gig-composebox-sidebar-button-down {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Rich_Text_hover_x1.png')
+ }
+ .gig-comments-hires-icons *.gig-composebox-sidebar-font:hover,
+ .gig-comments-hires-icons *.gig-composebox-sidebar-font.gig-composebox-sidebar-button-down {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Rich_Text_hover_x2.png')
+ }
+ *.gig-composebox-sidebar-tag {
+ cursor: pointer;
+ width: 29px;
+ height: 29px;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/User_tagging_up_x1.png')
+ }
+ .gig-comments-hires-icons *.gig-composebox-sidebar-tag {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/User_tagging_up_x2.png')
+ }
+ *.gig-composebox-sidebar-tag:hover,
+ *.gig-composebox-sidebar-tag.gig-composebox-sidebar-button-down {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/User_tagging_hover_x1.png')
+ }
+ .gig-comments-hires-icons *.gig-composebox-sidebar-tag:hover,
+ *.gig-composebox-sidebar-tag.gig-composebox-sidebar-button-down {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/User_tagging_hover_x1.png')
+ }
+ *.gig-composebox-sidebar-media {
+ cursor: pointer;
+ width: 29px;
+ height: 29px;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Media_up_x1.png')
+ }
+ .gig-comments-hires-icons *.gig-composebox-sidebar-media {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Media_up_x2.png')
+ }
+ *.gig-composebox-sidebar-media:hover,
+ *.gig-composebox-sidebar-media.gig-composebox-sidebar-button-down {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Media_hover_x1.png')
+ }
+ .gig-comments-hires-icons *.gig-composebox-sidebar-media:hover,
+ .gig-comments-hires-icons *.gig-composebox-sidebar-media.gig-composebox-sidebar-button-down {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Media_hover_x2.png')
+ }
+ *.gig-composebox-field-error {
+ border: 1px solid #F9888E;
+ }
+ *.gig-composebox-error {
+ border-radius: 3px;
+ color: #FFFFFF;
+ text-align: center;
+ line-height: 22px;
+ background: #F9888E;
+ margin-bottom: 7px;
+ display: none;
+ font-weight: bold;
+ font-size: 13px;
+ }
+ *.gig-composebox-postAnonymously {
+ cursor: pointer;
+ vertical-align: top;
+ padding-top: 4px;
+ }
+ *.gig-comments-checkbox {
+ width: 10px;
+ height: 10px;
+ border: 1px solid #C6C6C6;
+ display: inline-block;
+ border-radius: 1px;
+ background-color: #fff;
+ box-shadow: 0 0 5px rgba(189, 189, 189, 0.25) inset
+ }
+ *.gig-comments-checkbox-checked {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/shareToProviders/checkmark_x1.png');
+ background-position: center;
+ background-repeat: no-repeat;
+ }
+ .gig-comments-hires-icons *.gig-comments-checkbox-checked {
+ background-size: contain;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/shareToProviders/checkmark_x2.png');
+ }
+ *.gig-selfreview-header {
+ overflow: hidden;
+ }
+ *.gig-selfreview-header-left {
+ float: left;
+ }
+ *.gig-selfreview-header-right {
+ float: right;
+ }
+ *.gig-selfreview-summary-container,
+ *.gig-selfreview-body-container {
+ background-color: #EDEDED;
+ margin: 5px 0;
+ padding: 6px 10px;
+ border-radius: 3px;
+ }
+ *.gig-selfreview-field-title {
+ font-weight: bold;
+ margin: 0 7px 0 0;
+ }
+ *.gig-selfreview-nameAndLogout {
+ padding: 0 0 0 47px;
+ height: 37px;
+ }
+ *.gig-selfreview-yourReview {
+ font-weight: bold;
+ color: #919191;
+ margin-bottom: 3px;
+ }
+ *.gig-selfreview-ratings {
+ margin: 5px 0
+ }
+ *.gig-selfreview-rating .gig-comment-rating-value {
+ margin-left: 2px;
+ }
+ *.gig-selfreview-rating-_overall .gig-comment-rating-value {
+ margin-left: 0px;
+ }
+ *.gig-selfreview-rating-_overall.gig-selfreview-rating {
+ margin-bottom: 5px;
+ }
+ *.gig-comments-guestbox {
+ transition-property: max-height;
+ background-color: #FFFFFF;
+ border: 1px solid #E2E2E2;
+ border-radius: 0 3px 3px 3px;
+ overflow: hidden;
+ width: 150px;
+ font-size: 10px;
+ color: #919191;
+ padding: 0 13px 0 13px
+ }
+ *.gig-comments-guestbox input {
+ width: 150px;
+ border-radius: 3px;
+ height: 24px;
+ line-height: 22px;
+ color: #919191;
+ border: 1px solid #C0C0C0;
+ padding-left: 2px;
+ }
+ *.gig-guestbox-fields {
+ margin: 16px 0 0px;
+ }
+ *.gig-guestbox-nickname {
+ margin: 0px 0 10px;
+ }
+ *.gig-guestbox-text {
+ font-size: 10px;
+ margin: 5px 0;
+ }
+ *.gig-guestbox-ok {
+ margin-bottom: 8px;
+ float: right;
+ display: inline-block;
+ cursor: pointer;
+ padding: 0 9px;
+ font-weight: bold;
+ color: #222121;
+ text-shadow: 0 2px rgba(255, 255, 255, .4);
+ line-height: 22px;
+ border-radius: 3px;
+ background-color: #f2f2f2;
+ box-shadow: 0 1px 3px rgba(0, 0, 0, .25), inset 0 0 2px rgba(255, 255, 255, .24);
+ border: solid 1px #c4c7cd;
+ }
+ *.gig-guestbox-error {
+ margin-left: 4px;
+ display: inline-block;
+ color: #e70707;
+ font-size: 10px;
+ width: 100px;
+ float: left;
+ margin-bottom: 8px;
+ }
+ *.gig-comments-loginbox {
+ transition-property: max-height;
+ background-color: #FFFFFF;
+ border: 1px solid #E2E2E2;
+ border-radius: 0 0 3px 3px;
+ overflow: hidden;
+ min-width: 115px;
+ font-size: 10px;
+ color: #919191;
+ }
+ *.gig-comments-loginbox-open {}
+ *.gig-loginbox-provider {
+ background-repeat: no-repeat;
+ background-position: left center;
+ margin-left: 9px;
+ padding: 8px 8px 8px 22px;
+ cursor: pointer;
+ border-bottom: 1px solid #EAEAEA
+ }
+ *.gig-loginbox-provider:last-child {
+ border-bottom: none;
+ }
+ *.gig-loginbox-provider:hover {
+ background-color: #F9F9F9
+ }
+ *.gig-loginbox-provider[data-provider=more] {
+ padding-left: 0px
+ }
+ *.gig-signinbox-provider {
+ margin-left: 8px;
+ padding: 8px 8px 8px 1px;
+ cursor: default;
+ border-bottom: 1px solid #EAEAEA
+ }
+ *.gig-comments-usertaggingbox {
+ width: 290px;
+ border-radius: 3px;
+ background-color: #FFF;
+ border: solid 1px #d5d5d5;
+ font-family: arial;
+ }
+ *.gig-usertagging-title {
+ color: #666666;
+ background-color: #F4F4F4;
+ font-size: 10px;
+ border-radius: 2px;
+ padding: 7px;
+ font-family: inherit;
+ }
+ *.gig-usertagging-suggestions {
+ list-style-type: none;
+ margin: 0;
+ padding: 0px;
+ font-family: inherit;
+ font-size: 12px;
+ }
+ *.gig-usertagging-suggestions li {
+ cursor: pointer;
+ padding-left: 8px;
+ border-top: solid 1px #eaeaea;
+ height: 18px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ }
+ *.gig-usertagging-suggestions li *.gig-usertagging-username {
+ margin-left: 8px;
+ vertical-align: top;
+ line-height: 20px;
+ }
+ *.gig-usertagging-suggestions li *.gig-usertagging-userimage {
+ border-radius: 3px;
+ width: 18px;
+ height: 18px;
+ }
+ *.gig-usertagging-suggestions li.gig-usertagging-selected {
+ background-color: #f9f9f9;
+ }
+ *.gig-usertagging-tag {
+ -webkit-appearance: none;
+ border-radius: 8px 9px 9px 8px / 8px 8px 10px 10px;
+ background-color: #d5e4f2;
+ border-style: none;
+ padding: 0px 4px 0px 4px;
+ }
+ *.gig-composebox-share {
+ vertical-align: top;
+ overflow: hidden;
+ background-color: #F4F4F4;
+ border-radius: 3px;
+ padding-left: 4px;
+ }
+ *.gig-comment .gig-composebox-share {
+ border: 1px solid #E8E8E8
+ }
+ *.gig-composebox-share-text {
+ line-height: 26px;
+ vertical-align: top;
+ display: inline-block;
+ color: #999999;
+ }
+ *.gig-composebox-share-providers {
+ display: inline-block;
+ }
+ *.gig-comments-share-provider {
+ display: none;
+ height: 18px;
+ width: 36px;
+ background-position: 23px center;
+ padding: 4px 3px;
+ background-repeat: no-repeat;
+ cursor: pointer;
+ border-right: 1px solid #FFFFFF;
+ }
+ .gig-comments-hires-icons *.gig-comments-share-provider {
+ background-size: 16px 16px
+ }
+ *.gig-comments-share-provider-shown {
+ display: inline-block;
+ }
+ *.gig-comments-share-more {
+ cursor: pointer;
+ vertical-align: top;
+ padding: 4px;
+ display: inline-block;
+ height: 18px;
+ width: 16px;
+ background-position: center;
+ background-repeat: no-repeat;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/sharetoProviders/Share_More_providers_x1.png')
+ }
+ .gig-comments-hires-icons *.gig-comments-share-more {
+ background-size: 8px 8px;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/sharetoProviders/Share_More_providers_x2.png')
+ }
+ *.gig-comments-share-provider-checkbox {
+ margin-top: 3px;
+ }
+ *.gig-composebox-morebox {
+ width: 265px;
+ border: 5px solid #858585;
+ border-radius: 3px;
+ }
+ *.gig-composebox-morebox-caption {
+ background-color: #F3F3F3;
+ overflow: hidden;
+ line-height: 15px;
+ padding: 3px;
+ }
+ *.gig-composebox-morebox-title {
+ margin-left: 3px;
+ font-weight: bold;
+ float: left;
+ background-color: #F3F3F3;
+ overflow: hidden;
+ color: #4D4D4D;
+ }
+ *.gig-composebox-morebox-close {
+ float: right;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/close_icon_x1.png');
+ width: 15px;
+ height: 15px;
+ cursor: pointer;
+ background-position: center;
+ background-repeat: no-repeat;
+ }
+ .gig-comments-hires-icons *.gig-composebox-morebox-close {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/close_icon_x2.png');
+ background-size: contain;
+ }
+ *.gig-composebox-morebox *.gig-composebox-morebox-providers {
+ padding: 0 6px;
+ background-color: #FFFFFF;
+ }
+ *.gig-composebox-morebox *.gig-composebox-morebox-providers li {
+ padding-left: 18px;
+ margin: 4px 0;
+ width: 105px;
+ display: inline-block;
+ background-repeat: no-repeat;
+ cursor: pointer;
+ background-size: 14px;
+ }
+ *.gig-comments-sortbox {
+ margin-top: 9px;
+ border-radius: 3px;
+ background-color: #fff;
+ box-shadow: -1px 2px 1px rgba(35, 31, 32, .07);
+ border: solid 1px #b0b0b0;
+ padding: 3px 8px;
+ display: inline-block;
+ }
+ *.gig-comments-sortbox:before {
+ content: "";
+ width: 13px;
+ right: 12px;
+ height: 7px;
+ display: inline-block;
+ position: absolute;
+ top: -7px;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Sort_dropdown_triangle_x1.png')
+ }
+ .gig-comments-hires-icons *.gig-comments-sortbox:before {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Sort_dropdown_triangle_x2.png')
+ }
+ *.gig-comments-sortbox li {
+ color: #999999;
+ cursor: pointer;
+ min-width: 80px;
+ padding: 7px 5px;
+ border-bottom: 1px solid #EAEAEA;
+ }
+ *.gig-comments-sortbox li:last-child {
+ border-bottom: none
+ }
+ *.gig-comments-sortbox li:hover {
+ color: #848484;
+ background-color: #F4F4F4;
+ }
+ *.gig-comments-sortbox-selected {
+ font-weight: bold
+ }
+ *.gig-comments-fontbox {
+ padding-right: 8px;
+ padding-top: 7px;
+ transition: opacity 0.25s;
+ opacity: 0;
+ }
+ *.gig-comments-fontbox ul:after {
+ content: "";
+ width: 8px;
+ height: 13px;
+ display: inline-block;
+ position: absolute;
+ right: 1px;
+ top: 12px;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Sidebar_box_thub_x1.png')
+ }
+ .gig-comments-hires-icons *.gig-comments-fontbox ul:after {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Sidebar_box_thub_x2.png')
+ }
+ *.gig-comments-fontbox ul {
+ padding: 2px;
+ width: 69px;
+ background-color: #FFFFFF;
+ border: 1px solid #B0B0B0;
+ border-radius: 2px;
+ cursor: pointer;
+ }
+ *.gig-comments-fontbox li {
+ border: 1px none #EEEEEE;
+ width: 33px;
+ height: 33px;
+ display: inline-block;
+ background-position: center;
+ background-repeat: no-repeat
+ }
+ *.gig-comments-fontbox *.gig-composebox-font-bold {
+ border-right-style: solid;
+ border-bottom-style: solid;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Rich_Text_bold_x1.png')
+ }
+ .gig-comments-hires-icons *.gig-comments-fontbox *.gig-composebox-font-bold {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Rich_Text_bold_x2.png')
+ }
+ *.gig-comments-fontbox *.gig-composebox-font-italic {
+ border-bottom-style: solid;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Rich_Text_italic_x1.png')
+ }
+ .gig-comments-hires-icons *.gig-comments-fontbox *.gig-composebox-font-italic {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Rich_Text_italic_x2.png')
+ }
+ *.gig-comments-fontbox *.gig-composebox-font-underline {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Rich_Text_underline_x1.png')
+ }
+ .gig-comments-hires-icons *.gig-comments-fontbox *.gig-composebox-font-underline {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Rich_Text_underline_x2.png')
+ }
+ *.gig-comments-fontbox *.gig-composebox-font-bullets {
+ border-left-style: solid;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Rich_Text_align_x1.png')
+ }
+ .gig-comments-hires-icons *.gig-comments-fontbox *.gig-composebox-font-bullets {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Rich_Text_align_x2.png')
+ }
+ *.gig-comments-mediabox {
+ padding-right: 8px;
+ transition: opacity 0.25s;
+ opacity: 0;
+ }
+ *.gig-mediabox-fields {
+ padding: 12px 6px 10px;
+ width: 382px;
+ border: solid 1px #b0b0b0;
+ border-radius: 2px;
+ background-color: #fff;
+ -webkit-box-shadow: -1px 2px 1px rgba(35, 31, 32, .07);
+ -moz-box-shadow: -1px 2px 1px rgba(35, 31, 32, .07);
+ box-shadow: -1px 2px 1px rgba(35, 31, 32, .07);
+ }
+ *.gig-mediabox-fields:after {
+ content: "";
+ width: 8px;
+ height: 13px;
+ position: absolute;
+ display: inline-block;
+ right: 1px;
+ top: 12px;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Sidebar_box_thub_x1.png')
+ }
+ .gig-comments-hires-icons *.gig-mediabox-fields:after {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Sidebar_box_thub_x2.png')
+ }
+ *.gig-mediabox-url {
+ vertical-align: top;
+ padding-left: 8px;
+ margin-bottom: 10px;
+ margin-right: 5px;
+ width: 307px;
+ height: 28px;
+ border-radius: 3px;
+ background-color: #fff;
+ -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, .15);
+ -moz-box-shadow: inset 0 0 5px rgba(0, 0, 0, .15);
+ box-shadow: inset 0 0 5px rgba(0, 0, 0, .15);
+ border: solid 1px #d5d5d5;
+ }
+ *.gig-mediabox-url:empty:before {
+ color: #585858;
+ content: attr(data-placeholder);
+ }
+ *.gig-mediabox-ok {
+ vertical-align: top;
+ cursor: pointer;
+ text-align: center;
+ display: inline-block;
+ font-weight: bold;
+ font-size: 14px;
+ color: #333333;
+ line-height: 28px;
+ width: 57px;
+ height: 28px;
+ border-radius: 3px;
+ background-color: #f2f2f1;
+ box-shadow: inset 1px 1px #fff;
+ -moz-box-shadow: inset 1px 1px #fff;
+ -webkit-box-shadow: inset 1px 1px #fff;
+ border: solid 1px #d5d5d5;
+ filter: progid: DXImageTransform.Microsoft.gradient(startColorstr="#f5f5f5", endColorstr="#f1f1f0");
+ background: linear-gradient(top, #f5f5f5, #f1f1f0);
+ background: -ms-linear-gradient(top left, #f5f5f5, #f1f1f0);
+ background: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#f1f1f0));
+ background: -moz-linear-gradient(top, #f5f5f5, #f1f1f0);
+ }
+ *.gig-mediabox-ok:hover {
+ filter: progid: DXImageTransform.Microsoft.gradient(startColorstr="#efefef", endColorstr=" #e9e9e9");
+ background: linear-gradient(top, #efefef, #e9e9e9);
+ background: -ms-linear-gradient(top left, #efefef, #e9e9e9);
+ background: -webkit-gradient(linear, left top, left bottom, from(#efefef), to( #e9e9e9));
+ background: -moz-linear-gradient(top, #efefef, #e9e9e9);
+ }
+ *.gig-mediabox-text {
+ font-family: arial;
+ font-size: 12px;
+ color: #666666;
+ line-height: 14px;
+ }
+ *.gig-composebox-media-display {
+ margin-bottom: 12px;
+ }
+ *.gig-media-caption {
+ font-family: arial;
+ font-size: 12px;
+ color: #666666;
+ line-height: 17px;
+ margin: 4px 12px 0px 1px;
+ }
+ *.gig-media-caption-text {
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ word-wrap: normal;
+ }
+ *.gig-media-caption-url {
+ display: block;
+ padding-left: 23px;
+ text-decoration: underline;
+ word-wrap: normal;
+ color: #0796c6;
+ cursor: pointer;
+ font-size: 12px;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ vertical-align: text-top;
+ background-repeat: no-repeat;
+ background-position: left;
+ background-size: contain;
+ }
+ *.gig-media-thumbnail {
+ height: 303px;
+ }
+ *.gig-media-thumbnail-image {
+ margin: auto;
+ display: block;
+ }
+ *.gig-media-overlay {
+ position: relative;
+ top: -303px;
+ height: 0px;
+ }
+ *.gig-media-play {
+ display: none;
+ opacity: 0.85;
+ width: 75px;
+ height: 45px;
+ border-radius: 10px;
+ background-color: #545454;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/media_play_x1.png');
+ background-position: center center;
+ background-repeat: no-repeat;
+ cursor: pointer;
+ position: relative;
+ box-shadow: 0 -1px 3px rgba(0, 0, 0, .4), inset 0 1px rgba(255, 255, 255, .29);
+ -moz-box-shadow: 0 -1px 3px rgba(0, 0, 0, .4), inset 0 1px rgba(255, 255, 255, .29);
+ -webkit-box-shadow: 0 -1px 3px rgba(0, 0, 0, .4), inset 0 1px rgba(255, 255, 255, .29);
+ }
+ .gig-comments-hires-icons *.gig-media-play {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/media_play_x2.png');
+ }
+ *.gig-media-play:hover {
+ background-color: #666565;
+ }
+ *.gig-media-cancel {
+ cursor: pointer;
+ margin-top: -18px;
+ margin-right: 0px;
+ float: right;
+ width: 13px;
+ height: 13px;
+ border-radius: 2px;
+ background-color: #c9c6c6;
+ box-shadow: inset 0 0 9px rgba(0, 0, 0, .26);
+ -moz - box-shadow: inset 0 0 9px rgba(0, 0, 0, .26);
+ -webkit - box-shadow: inset 0 0 9px rgba(0, 0, 0, .26);
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/media_close_icon_x1.png');
+ background-position: center center;
+ background-repeat: no-repeat;
+ }
+ .gig-comments-hires-icons *.gig-media-cancel {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/media_close_icon_x2.png');
+ }
+ *.gig-media-cancel:hover {
+ background-color: #ebebeb;
+ }
+ *.gig-comment-mediaitem {
+ margin-top: 7px;
+ }
+ *.gig-comment-content .gig-media-thumbnail-image {
+ margin-left: 0px;
+ margin-right: 0px;
+ }
+ *.gig-comment-content .gig-media-caption {
+ margin: 8px 12px 0px 0px;
+ }
+ *.gig-composebox-media-preview {
+ padding-left: 4px;
+ padding-right: 4px;
+ border-radius: 0px 0px 3px 3px;
+ background-color: #fff;
+ -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, .15);
+ -moz-box-shadow: inset 0 0 5px rgba(0, 0, 0, .15);
+ box-shadow: inset 0 0 5px rgba(0, 0, 0, .15);
+ border: solid 1px #d5d5d5;
+ border-top: none;
+ padding-top: 23px;
+ padding-bottom: 5px;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/media_loader_gif_x1.gif');
+ background-repeat: no-repeat;
+ background-position: center center;
+ }
+ .gig-comments-hires-icons *.gig-composebox-media-preview {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/media_loader_gif_x2.gif');
+ }
+ *.gig-composebox-editor-with-media {
+ border-radius: 3px 3px 0px 0px;
+ }
+ *.gig-comments-mediaplayer-dimmer {
+ top: 0px;
+ left: 0px;
+ height: 100%;
+ width: 100%;
+ transition: opacity 0.25s;
+ position: fixed;
+ filter: 'alpha(opacity=50)';
+ background-color: black;
+ }
+ *.gig-comments-mediaplayer {
+ top: 50%;
+ left: 50%;
+ transition: opacity 0.25s;
+ padding-left: 18px;
+ padding-right: 18px;
+ position: fixed;
+ background-color: #ffffff;
+ border-radius: 3px;
+ }
+ *.gig-comments-mediaplayer-top {
+ height: 14px;
+ padding-top: 3px;
+ padding-bottom-2px;
+ padding-right: 3px;
+ }
+ *.gig-comments-mediaplayer-top .gig-media-cancel {
+ margin-right: -18px;
+ padding-right: 0px;
+ margin-top: 0px;
+ }
+ *.gig-comments-mediaplayer-bottom {
+ margin: 5px 0px 5px 0px;
+ background-color: #d5d6d6;
+ border-radius: 3px;
+ }
+ *.gig-comments-mediaplayer-caption {
+ background-size: contain;
+ background-repeat: no-repeat;
+ background-position: left;
+ font-size: 13px;
+ font-family: arial;
+ padding-left: 23px;
+ line-height: 17px;
+ }
+ *.gig-comments-updates {
+ transition-property: opacity, height;
+ height: 0;
+ opacity: 0;
+ visibility: hidden;
+ border-radius: 3px;
+ background-color: #90D890;
+ }
+ *.gig-comments-updates-visible {
+ opacity: 1;
+ visibility: visible;
+ height: 25px;
+ margin: 5px 0;
+ }
+ *.gig-comments-updates-text {
+ text-align: center;
+ line-height: 25px;
+ color: #FFFFFF;
+ font-weight: bold;
+ }
+ *.gig-comments-updates-link {
+ cursor: pointer;
+ font-size: 12px;
+ color: #FFFFFF;
+ }
+ *.gig-comments-updates-full {
+ text-align: right;
+ }
+ *.gig-comments-updates-full .gig-comments-updates-link {
+ display: inline-block;
+ line-height: 25px;
+ top: -25px;
+ position: relative;
+ margin-right: 11px;
+ padding-left: 15px;
+ background-repeat: no-repeat;
+ background-position: left center;
+ background-size: 11px 11px;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Pause_Stream_x1.png')
+ }
+ .gig-comments-hires-icons *.gig-comments-updates-full .gig-comments-updates-link {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Pause_Stream_x2.png')
+ }
+ *.gig-comments-updates-full .gig-comments-updates-link:hover {
+ background-size: 11px 11px;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Pause_Stream_hover_x1.png')
+ }
+ .gig-comments-hires-icons *.gig-comments-updates-full .gig-comments-updates-link:hover {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Pause_Stream_hover_x2.png')
+ }
+ *.gig-comments-updates-full.gig-comments-updates-paused .gig-comments-updates-link {
+ background-size: 11px 11px;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Resume_Stream_x1.png')
+ }
+ .gig-comments-hires-icons *.gig-comments-updates-full.gig-comments-updates-paused .gig-comments-updates-link {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Resume_Stream_x2.png')
+ }
+ *.gig-comments-updates-full.gig-comments-updates-paused .gig-comments-updates-link:hover {
+ background-size: 11px 11px;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Resume_Stream_hover_x1.png')
+ }
+ .gig-comments-hires-icons *.gig-comments-updates-full.gig-comments-updates-paused .gig-comments-updates-link:hover {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Resume_Stream_hover_x2.png')
+ }
+ *.gig-comments-updates-countonly {
+ text-align: center;
+ }
+ *.gig-comments-updates-countonly .gig-comments-updates-text {
+ display: inline-block
+ }
+ *.gig-comments-updates-countonly .gig-comments-updates-link {
+ display: inline-block;
+ margin-left: 5px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+ *.gig-comments-updates-countonly .gig-comments-updates-link:hover {
+ text-decoration: none;
+ }
+ *.gig-comment-title * {
+ vertical-align: bottom;
+ display: inline-block;
+ }
+ *.gig-comment-title {
+ margin-bottom: 8px;
+ }
+ *.gig-comment-rating-drop {
+ margin: 0 3px;
+ cursor: pointer;
+ width: 13px;
+ height: 14px;
+ 0 7px 0 2px;
+ vertical-align: bottom;
+ background-repeat: no-repeat;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Rating_Drop_Icon_x1.png')
+ }
+ .gig-comments-hires-icons *.gig-comment-rating-drop {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Rating_Drop_Icon_x1.png')
+ }
+ *.gig-comment-rating-drop:hover,
+ *.gig-comment-rating-drop-down {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Rating_Drop_Icon_hover_x1.png')
+ }
+ .gig-comments-hires-icons *.gig-comment-rating-drop:hover,
+ *.gig-comment-rating-drop-down {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Rating_Drop_Icon_hover_x1.png')
+ }
+ *.gig-comment-rating-title,
+ *.gig-comment-rating-value,
+ *.gig-composebox-rating-title,
+ *.gig-composebox-rating-value {
+ display: inline-block;
+ vertical-align: top;
+ }
+ *.gig-comment-rating-title {
+ margin: 0 10px 0 0;
+ vertical-align: bottom;
+ min-width: 53px;
+ }
+ *.gig-composebox-rating-value {
+ margin-left: 3px;
+ }
+ *.gig-composebox-rating-title {
+ margin-right: 10px;
+ vertical-align: bottom;
+ }
+ *.gig-comment-rating-star,
+ *.gig-composebox-rating-star,
+ *.gig-selfreview-rating-star {
+ display: inline-block;
+ vertical-align: bottom;
+ background-repeat: no-repeat;
+ padding-right: 3px;
+ width: 16px;
+ height: 16px;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Star_gray_small_x1.png')
+ }
+ .gig-comments-hires-icons *.gig-comment-rating-star,
+ .gig-comments-hires-icons *.gig-composebox-rating-star,
+ .gig-comments-hires-icons *.gig-selfreview-rating-star {
+ background-size: contain;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Star_gray_small_x2.png')
+ }
+ *.gig-comment-rating-star-full,
+ *.gig-composebox-rating-star-full,
+ *.gig-selfreview-rating-star-full {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Star_yellow_small_x1.png')
+ }
+ .gig-comments-hires-icons *.gig-comment-rating-star-full,
+ .gig-comments-hires-icons *.gig-composebox-rating-star-full,
+ .gig-comments-hires-icons *.gig-selfreview-rating-star-full {
+ background-size: contain;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Star_yellow_small_x2.png')
+ }
+ *.gig-comment-rating-dimensions {
+ display: inline-block;
+ margin-top: 9px;
+ position: absolute;
+ padding: 10px;
+ background-color: #FFFFFF;
+ box-shadow: -1px 2px 1px rgba(35, 31, 32, .07);
+ border: 1px solid #B0B0B0;
+ border-radius: 2px;
+ white-space: nowrap
+ }
+ *.gig-comment-rating-dimensions:before {
+ margin-left: -7px;
+ content: "";
+ width: 13px;
+ height: 7px;
+ display: inline-block;
+ position: absolute;
+ top: -7px;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Sort_dropdown_triangle_x1.png')
+ }
+ .gig-comments-hires-icons *.gig-comment-rating-dimensions:before {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Sort_dropdown_triangle_x2.png')
+ }
+ *.gig-composebox-rating-star {
+ cursor: pointer;
+ }
+ *.gig-composebox-ratings {
+ margin-bottom: 5px;
+ }
+ *.gig-composebox-rating-_overall .gig-composebox-rating-value {
+ margin-left: 0
+ }
+ *.gig-composebox-rating-_overall {
+ font-weight: bold;
+ margin: 5px 0;
+ }
+ *.gig-composebox-rating-_overall .gig-composebox-rating-star,
+ *.gig-composebox-rating-_overall.gig-composebox-field-error:hover .gig-composebox-rating-star,
+ *.gig-selfreview-rating-_overall .gig-selfreview-rating-star {
+ padding-right: 4px;
+ width: 21px;
+ height: 20px;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Star_gray_big_x1.png')
+ }
+ .gig-comments-hires-icons *.gig-composebox-rating-_overall .gig-composebox-rating-star,
+ .gig-comments-hires-icons *.gig-composebox-rating-_overall.gig-composebox-field-error:hover .gig-composebox-rating-star,
+ .gig-comments-hires-icons *.gig-selfreview-rating-_overall .gig-selfreview-rating-star {
+ background-size: contain;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Star_gray_big_x2.png')
+ }
+ *.gig-composebox-rating-_overall .gig-composebox-rating-star-full,
+ *.gig-composebox-rating-_overall.gig-composebox-field-error:hover .gig-composebox-rating-star-full,
+ *.gig-selfreview-rating-_overall .gig-selfreview-rating-star-full {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Star_yellow_big_x1.png')
+ }
+ .gig-comments-hires-icons *.gig-composebox-rating-_overall .gig-composebox-rating-star-full,
+ .gig-comments-hires-icons *.gig-composebox-rating-_overall.gig-composebox-field-error:hover .gig-comments-hires-icons .gig-composebox-rating-star-full,
+ .gig-comments-hires-icons *.gig-selfreview-rating-_overall .gig-selfreview-rating-star-full {
+ background-size: contain;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Star_yellow_big_x2.png')
+ }
+ *.gig-composebox-rating-_overall.gig-composebox-field-error {
+ border: none;
+ }
+ *.gig-composebox-rating-_overall.gig-composebox-field-error .gig-composebox-rating-star {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Star_red_big_x1.png')
+ }
+ .gig-comments-hires-icons *.gig-composebox-rating-_overall.gig-composebox-field-error .gig-composebox-rating-star {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Star_red_big_x2.png')
+ }
+ *.gig-comment-colored-background {
+ border-radius: 4px;
+ padding: 3px 6px 6px 6px;
+ }
+ div.gig-comment-pinned-background {
+ background-color: #fffcd2;
+ }
+ *.gig-comment-withBadges *.gig-comment-header-right {
+ text-align: right;
+ }
+ *.gig-comment-withBadges *.gig-comment-username {
+ margin-bottom: 5px;
+ }
+ *.gig-composebox-withBadges *.gig-composebox-logout {
+ display: block;
+ }
+ *.gig-composebox-withBadges *.gig-composebox-header-right {
+ text-align: right;
+ margin-bottom: 4px;
+ }
+ *.gig-composebox-withBadges *.gig-composebox-title {
+ position: relative;
+ bottom: 7px;
+ }
+ *.gig-comment-commentBadge {
+ display: inline-block;
+ font-size: 11px;
+ font-weight: bold;
+ background-repeat: no-repeat;
+ padding-right: 22px;
+ background-position: right;
+ height: 17px;
+ line-height: 17px;
+ }
+ *.gig-comment-userBadge {
+ margin-bottom: 5px;
+ margin-right: 6px;
+ display: inline-block;
+ font-size: 11px;
+ font-weight: bold;
+ line-height: 15px;
+ }
+ *.gig-badge-border {
+ border: 1px solid;
+ border-radius: 2px;
+ padding: 0px 5px;
+ }
+ *.gig-comment .gig-comment-editbox {
+ display: none;
+ background-color: #F6F6F6;
+ padding: 4px 6px 4px 6px;
+ margin-left: -41px;
+ }
+ *.gig-comment .gig-comment-editbox .gig-composebox-ratings * {
+ color: #585858;
+ }
+ *.gig-comment .gig-comment-editbox-open {
+ display: block;
+ margin-bottom: 10px;
+ }
+ *.gig-comment-editbox *.gig-composebox-close {
+ display: inline-block;
+ margin-left: 5px;
+ cursor: pointer;
+ width: 15px;
+ height: 15px;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/close_icon_x1.png');
+ background-position: center;
+ background-repeat: no-repeat;
+ }
+ .gig-comments-hires-icons *.gig-comment-editbox *.gig-composebox-close {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/close_icon_x2.png');
+ background-size: contain;
+ }
+ *.gig-comment-editbox *.gig-composebox-close:hover {
+ background-color: #ebebeb;
+ }
+ *.gig-comment-edited {
+ font-size: 11px;
+ display: inline-block;
+ margin: 2px 0 0 5px;
+ float: right;
+ font-style: italic;
+ color: #999999
+ }
+ *.gig-comment-data-removed {
+ margin-left: -41px;
+ }
+ *.gig-comment-data-removed .gig-comment-content {
+ padding-left: 0px;
+ }
+ *.gig-comment-data-removed .gig-comment-body {
+ color: #999999;
+ font-size: 12px;
+ font-style: italic;
+ line-height: 16.5px;
+ }
+ *.gig-comment-data-removed .gig-comment-footer {
+ margin: 4px 0px 10px;
+ padding-left: 0px;
+ }
+ *.gig-comment-data-removed .gig-comment-footer .gig-comment-footer-left .gig-comment-flag {
+ display: none;
+ }
+ *.gig-comment-data-removed .gig-comment-footer-right,
+ *.gig-comment-data-removed .gig-comment-header {
+ display: none;
+ }
+ *.gig-comment-data-removed .gig-comment-replyLink,
+ *.gig-comment-data-removed .gig-comment-likeLink,
+ *.gig-comment-data-removed .gig-comment-shareLink,
+ *.gig-comment-data-removed .gig-comment-deleteLink,
+ *.gig-comment-data-removed .gig-comment-editLink {
+ display: none;
+ }
+ *.gig-comment-data-removed .gig-comment-content {
+ transition: none;
+ -webkit-transition: none
+ }
+ *.gig-comment-data-removed .gig-comment-content {
+ transition: none;
+ -webkit-transition: none
+ }
+ *.gig-comment-title-removed {
+ display: none;
+ }
+ *.gig-comment-photo-removed {
+ display: none;
+ }
+ .gig-comments-container * {
+ font-size: 12px;
+ transition: none 500ms cubic-bezier(0.785, 0.135, 0.15, 0.86);
+ -webkit-transition: none 500ms cubic-bezier(0.785, 0.135, 0.15, 0.86)
+ }
+ *.gig-comments-linksContainer li:hover,
+ *.gig-comments-linksContainer a:hover {
+ text-decoration: underline;
+ text-decoration-skip: all
+ }
+ *.gig-comment-vote-pos:hover {
+ background-size: 14px 14px;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Thumbs_up_hover_x1.png')
+ }
+ .gig-comments-hires-icons *.gig-comment-vote-pos:hover {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Thumbs_up_hover_x2.png')
+ }
+ *.gig-comment-vote-neg:hover {
+ background-size: 14px 14px;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Thumbs_down_hover_x1.png')
+ }
+ .gig-comments-hires-icons *.gig-comment-vote-neg:hover {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Thumbs_down_hover_x2.png')
+ }
+ *.gig-comment-footer li:hover,
+ *.gig-comment-repliesArrow:hover div {
+ text-decoration: underline
+ }
+ *.gig-comment-self-data:hover *.gig-comment-flag,
+ *.gig-comment-flag-visible {
+ visibility: visible;
+ }
+ *.gig-comment-vote-pos-down:hover {
+ background-size: 14px 14px;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Thumbs_up_pressed_x1.png')
+ }
+ .gig-comments-hires-icons *.gig-comment-vote-pos-down:hover {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Thumbs_up_pressed_x2.png')
+ }
+ *.gig-comment-vote-neg-down:hover {
+ background-size: 14px 14px;
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Thumbs_down_pressed_x1.png')
+ }
+ .gig-comments-hires-icons *.gig-comment-vote-neg-down:hover {
+ background-image: url('http://cdn3.gigya.com/gs/i/comments2/Thumbs_down_pressed_x2.png')
+ }
+ </style>
+ <style type="text/css">
+ .gig-bar-container *,
+ div.gig-reactions-container,
+ .gig-reactions-container span,
+ .gig-reactions-container a:hover,
+ .gig-reactions-container a:visited,
+ .gig-reactions-container a:link,
+ .gig-reactions-container a:active {
+ font-size: 12px;
+ border: none;
+ padding: 0px;
+ margin: 0px;
+ color: inherit;
+ text-decoration: none;
+ width: auto;
+ float: none;
+ -moz-border-radius: 0;
+ border-radius: 0;
+ font-family: arial;
+ font-size: 10px;
+ color: #4D4D4D;
+ background: none
+ }
+
+ table.gig-reactions-container {
+ border-collapse: separate;
+ }
+
+ div.gig-button-container {
+ padding: 0 5px 0 0;
+ display: inline-block;
+ vertical-align: top;
+ margin-bottom: 5px;
+ }
+
+ div.gig-button-container-vertical {
+ padding: 0 0 5px 0
+ }
+
+ [gigid="showShareBarUI"] .gig-button-container-twitter-tweet &gt;
+ div {
+ display: inline;
+ }
+
+ div.gig-button {
+ cursor: pointer;
+ }
+
+ div.gig-button-disabled {
+ cursor: default;
+ }
+
+ div.gig-counter {
+ margin: 0 auto;
+ position: relative;
+ zoom: 1;
+ }
+
+ span.gig-counter-text {
+ display: block;
+ position: relative;
+ font-weight: bold;
+ zoom: 1
+ }
+
+ td.gig-button-td {
+ vertical-align: middle
+ }
+
+ *.gig-bar-container img {
+ display: block
+ }
+
+ div.gig-button-container-twitter-tweet iframe,
+ div.gig-button-container-twitter-hashtag iframe,
+ div.gig-button-container-twitter-mention iframe {
+ display: block
+ }
+
+ div.gig-button-container-pinterest-pinit {
+ height: 20px;
+ }
+
+ div.gig-button-container-pinterest-pinit a {
+ cursor: pointer;
+ }
+
+ div.gig-button-container-pinterest-pinit.gig-button-container-count-right {
+ width: 80px;
+ }
+
+ div.gig-button-container-pinterest-pinit.gig-button-container-count-top.gig-button-container-vertical {
+ position: relative;
+ height: 50px;
+ }
+
+ div.gig-button-container-pinterest-pinit.gig-button-container-count-top.gig-button-container-vertical &gt;
+ div {
+ position: absolute;
+ bottom: 2px;
+ }
+
+ div.gig-counter-top {
+ margin-bottom: 1px;
+ }
+
+ div.gig-counter-right {
+ margin-left: 1px;
+ }
+
+ div.gig-button-count-top table {
+ margin: 0 auto;
+ text-align: center;
+ }
+
+ div.gig-bar-button-icon {
+ position: absolute;
+ padding-top: 1px;
+ }
+
+ span.gig-bar-button-text {
+ padding-left: 19px;
+ white-space: nowrap;
+ zoom: 1;
+ }
+
+ a.gig-bar-button,
+ a:hover.gig-bar-button,
+ a:link.gig-bar-button,
+ a:active.gig-bar-button,
+ a:visited.gig-bar-button {
+ white-space: nowrap;
+ line-height: 18px;
+ position: relative;
+ border-radius: 3px;
+ color: #4d4d4d;
+ cursor: pointer;
+ font-size: 11px;
+ padding: 0 5px;
+ border: 1px solid #C5C7C7;
+ display: inline-block;
+ zoom: 1;
+ vertical-align: middle;
+ text-align: center;
+ }
+
+ a.gig-bar-button,
+ a:link.gig-bar-button,
+ a:active.gig-bar-button,
+ a:visited.gig-bar-button {
+ background: #FFFFFF;
+ filter: progid: DXImageTransform.Microsoft.gradient(startColorstr="#FFFFFF", endColorstr="#EAEBEB");
+ background: -webkit-gradient(linear, left top, left bottom, from(#FFFFFF), to(#EAEBEB));
+ background: -moz-linear-gradient(top, #FFFFFF, #EAEBEB)
+ }
+
+ a:hover.gig-bar-button,
+ a.gig-bar-button-down,
+ a:link.gig-bar-button-down,
+ a:active.gig-bar-button-down,
+ a:visited.gig-bar-button-down {
+ background: #EAEBEB;
+ filter: progid: DXImageTransform.Microsoft.gradient(startColorstr="#EAEBEB", endColorstr="#FFFFFF");
+ background: -webkit-gradient(linear, left top, left bottom, from(#EAEBEB), to(#FFFFFF));
+ background: -moz-linear-gradient(top, #EAEBEB, #FFFFFF)
+ }
+ </style>
+ <style type="text/css">
+ div.gig-button-text {
+ white-space: nowrap;
+ font-size: 11px;
+ color: #333333;
+ padding: 0 3px 0 3px;
+ }
+
+ span.gig-counter-text-right {
+ left: 1px;
+ font-size: 11px;
+ line-height: 20px;
+ }
+
+ span.gig-counter-text-top {
+ top: -2px;
+ font-size: 14px
+ }
+
+ div.gig-button-container-facebook-like-count-right {
+ height: 20px
+ }
+
+ div.gig-button-container-facebook-like-count-top {
+ height: 62px
+ }
+
+ div.gig-button-container-facebook-send {
+ height: 20px
+ }
+ </style>
+ <script async="" type="text/javascript" charset="UTF-8" src="http://cdn.gigya.com/js/gigya.services.socialize.plugins.simpleshare.min.js"></script>
+ <script async="" type="text/javascript" charset="UTF-8" src="http://cdn1.gigya.com/js/gigya.services.socialize.plugins.shareCounts.min.js"></script>
+</head>
+
+<body class="not-front article article-6658741 article-image source-10506160 inline-gallery inline-gallery-2893886 news-voices-article scald-file-processed">
+ <!-- PAGE TOP -->
+ <!-- PAGE -->
+ <header id="masthead">
+ <a href="http://www.independent.co.uk/" title="Home">
+ <span class="logo"></span>
+ </a>
+ <ul id="dynamic-header">
+ <a href="http://www.independent.co.uk/" title="Home">
+ <li class="logotype active">
+ <span class="logo-full"></span>
+ </li>
+ </a>
+ <li class="share" id="gigya-share-btns-3_gig_containerParent">
+ <div id="gigya-share-btns-3" gigid="showShareBarUI" style="visibility: visible;">
+ <div class="gig-bar-container gig-share-bar-container">
+ <table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td style="vertical-align:middle; white-space:nowrap;zoom:1;">
+ <div class="gig-button-container gig-button-container-count-none gig-button-container-facebook gig-button-container-facebook-count-none gig-share-button-container gig-button-container-horizontal">
+ <div class="gig-button gig-share-button gig-button-up gig-button-count-none" id="gigya-share-btns-3-reaction0" title="Share on Facebook" alt="Share on Facebook" onclick="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-3'].buttonInstances['gigya-share-btns-3-reaction0'].onClick()" onmouseover="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-3'].buttonInstances['gigya-share-btns-3-reaction0'].changeState('over')" onmouseout="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-3'].buttonInstances['gigya-share-btns-3-reaction0'].changeState('up')">
+ <table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td id="gigya-share-btns-3-reaction0-left"></td>
+ <td id="gigya-share-btns-3-reaction0-icon" style="zoom:1;vertical-align:middle;text-align:left;background-repeat:repeat-x;"><img id="gigya-share-btns-3-reaction0-icon_img" src="/sites/all/themes/ines_themes/independent_theme/img/facebook.png" alt="" /></td>
+ <td id="gigya-share-btns-3-reaction0-right"></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </td>
+ <td style="vertical-align:middle; white-space:nowrap;zoom:1;">
+ <div class="gig-button-container gig-button-container-count-none gig-button-container-twitter gig-button-container-twitter-count-none gig-share-button-container gig-button-container-horizontal">
+ <div class="gig-button gig-share-button gig-button-up gig-button-count-none" id="gigya-share-btns-3-reaction1" title="Share on Twitter" alt="Share on Twitter" onclick="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-3'].buttonInstances['gigya-share-btns-3-reaction1'].onClick()" onmouseover="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-3'].buttonInstances['gigya-share-btns-3-reaction1'].changeState('over')" onmouseout="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-3'].buttonInstances['gigya-share-btns-3-reaction1'].changeState('up')">
+ <table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td id="gigya-share-btns-3-reaction1-left"></td>
+ <td id="gigya-share-btns-3-reaction1-icon" style="zoom:1;vertical-align:middle;text-align:left;background-repeat:repeat-x;"><img id="gigya-share-btns-3-reaction1-icon_img" src="/sites/all/themes/ines_themes/independent_theme/img/twitter.png" alt="" /></td>
+ <td id="gigya-share-btns-3-reaction1-right"></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </td>
+ <td style="vertical-align:middle; white-space:nowrap;zoom:1;">
+ <div class="gig-button-container gig-button-container-count-none gig-button-container-whatsapp gig-button-container-whatsapp-count-none gig-share-button-container gig-button-container-horizontal">
+ <div class="gig-button gig-share-button gig-button-up gig-button-count-none" id="gigya-share-btns-3-reaction2" title="WhatsApp" alt="WhatsApp" onclick="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-3'].buttonInstances['gigya-share-btns-3-reaction2'].onClick()" onmouseover="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-3'].buttonInstances['gigya-share-btns-3-reaction2'].changeState('over')" onmouseout="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-3'].buttonInstances['gigya-share-btns-3-reaction2'].changeState('up')">
+ <table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td id="gigya-share-btns-3-reaction2-left"></td>
+ <td id="gigya-share-btns-3-reaction2-icon" style="zoom:1;vertical-align:middle;text-align:left;background-repeat:repeat-x;"><img id="gigya-share-btns-3-reaction2-icon_img" src="/sites/all/themes/ines_themes/independent_theme/img/whatsapp.png" alt="" /></td>
+ <td id="gigya-share-btns-3-reaction2-right"></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </td>
+ <td style="vertical-align:middle; white-space:nowrap;zoom:1;">
+ <div class="gig-button-container gig-button-container-count-none gig-button-container-email gig-button-container-email-count-none gig-share-button-container gig-button-container-horizontal">
+ <div class="gig-button gig-share-button gig-button-up gig-button-count-none" id="gigya-share-btns-3-reaction3" title="email" alt="email" onclick="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-3'].buttonInstances['gigya-share-btns-3-reaction3'].onClick()" onmouseover="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-3'].buttonInstances['gigya-share-btns-3-reaction3'].changeState('over')" onmouseout="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-3'].buttonInstances['gigya-share-btns-3-reaction3'].changeState('up')">
+ <table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td id="gigya-share-btns-3-reaction3-left"></td>
+ <td id="gigya-share-btns-3-reaction3-icon" style="zoom:1;vertical-align:middle;text-align:left;background-repeat:repeat-x;"><img id="gigya-share-btns-3-reaction3-icon_img" src="/sites/all/themes/ines_themes/independent_theme/img/email.png" alt="" /></td>
+ <td id="gigya-share-btns-3-reaction3-right"></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </td>
+ <td style="vertical-align:middle; white-space:nowrap;zoom:1;">
+ <div class="gig-button-container gig-button-container-count-right gig-button-container-share gig-button-container-share-count-right gig-share-button-container gig-button-container-horizontal">
+ <table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td class="gig-button-td">
+ <div class="gig-button gig-share-button gig-button-up gig-button-count-right" id="gigya-share-btns-3-reaction4" title="Share" alt="Share" onclick="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-3'].buttonInstances['gigya-share-btns-3-reaction4'].onClick()" onmouseover="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-3'].buttonInstances['gigya-share-btns-3-reaction4'].changeState('over')" onmouseout="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-3'].buttonInstances['gigya-share-btns-3-reaction4'].changeState('up')">
+ <table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td id="gigya-share-btns-3-reaction4-left"></td>
+ <td id="gigya-share-btns-3-reaction4-icon" style="zoom:1;vertical-align:middle;text-align:left;background-repeat:repeat-x;"><img id="gigya-share-btns-3-reaction4-icon_img" src="/sites/all/themes/ines_themes/ines_theme/img/blank.gif" alt="" /></td>
+ <td id="gigya-share-btns-3-reaction4-right"></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </td>
+ <td>
+ <div class="gig-counter gig-share-counter gig-counter-$rid gig-counter-right" id="gigya-share-btns-3-reaction4-count" style="display:none; background-image:url('http://cdn2.gigya.com/gs/GetSprite.ashx?path=%2FshareBar%2Fbutton%2Fbutton%5Bleft%2Cright%5DImg%5Bup%2Cover%5D.png%7C2%2C20%5E%2FshareBar%2Fbutton%2FrightCountImg.png%7C38%2C20%5E%2Fsharebar%2Ficons%2F%5Bfacebook%2Ctwitter%2Cwhatsapp%2Cemail%2Cshare%5D.png%7C16%2C16');background-position:-8px 0px;width: 38px;height: 20px;line-height: 20px;background-repeat:no-repeat;position:static;;text-align:center;vertical-align:middle;"><span class="gig-counter-text gig-share-counter-text gig-counter-text-right gig-share-counter-text-right" id="gigya-share-btns-3-reaction4-count-value"></span></div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </li>
+ </ul>
+ <nav>
+ <ol>
+ <li><a href="/news" title="">News</a>
+ <ul>
+ <li><a href="http://www.independent.co.uk/topic/brexit" title="">Brexit latest</a></li>
+ <li class="topic"><a href="/topic/the-big-questions" title="">The Big Questions</a></li>
+ <li><a href="/news/uk" title="">UK</a></li>
+ <li><a href="http://www.independent.co.uk/news/world/americas" title="">US</a></li>
+ <li><a href="/news/world" title="">World</a></li>
+ <li><a href="http://www.independent.co.uk/news/people" title="">People</a></li>
+ <li><a href="/news/uk/politics" title="">Politics</a></li>
+ <li><a href="/news/business" title="">Business</a></li>
+ <li><a href="/news/science" title="">Science</a></li>
+ <li><a href="http://www.independent.co.uk/news/media/" title="">Media</a></li>
+ <li><a href="http://www.independent.co.uk/news/obituaries" title="">Obituaries</a></li>
+ </ul>
+ </li>
+ <li><a href="/news/world/americas/us-elections" title="US Election">US Election</a></li>
+ <li><a href="/voices" title="">Voices</a>
+ <ul>
+ <li><a href="/author/grace-dent" title="">Grace Dent</a></li>
+ <li><a href="http://www.independent.co.uk/author/mary-dejevsky" title="">Mary Dejevsky</a></li>
+ <li><a href="/author/robert-fisk" title="">Robert Fisk</a></li>
+ <li><a href="/author/john-rentoul" title="">John Rentoul</a></li>
+ <li><a href="/author/mark-steel" title="">Mark Steel</a></li>
+ <li><a href="/voices/campaigns/voicesindanger" title="">Voices in Danger</a></li>
+ <li><a href="http://www.independent.co.uk/voices/campaigns/GiantsClub" title="Giants Club">Giants Club</a></li>
+ </ul>
+ </li>
+ <li><a href="/arts-entertainment" title="">Culture</a>
+ <ul>
+ <li><a href="/arts-entertainment/tv" title="">TV + radio</a></li>
+ <li><a href="/arts-entertainment/films" title="">Film</a></li>
+ <li><a href="/arts-entertainment/music" title="">Music</a></li>
+ <li><a href="/arts-entertainment/books" title="">Books</a></li>
+ <li><a href="/arts-entertainment/art" title="">Art</a></li>
+ <li><a href="/arts-entertainment/theatre-dance" title="">Theatre + dance</a></li>
+ </ul>
+ </li>
+ <li><a href="/life-style" title="">Lifestyle</a>
+ <ul>
+ <li><a href="/travel" title="">Travel</a></li>
+ <li><a href="/life-style/fashion" title="">Fashion + beauty</a></li>
+ <li><a href="/life-style/food-and-drink" title="">Food</a></li>
+ <li><a href="/life-style/health-and-families" title="">Health</a></li>
+ <li><a href="/extras/indybest" title="">IndyBest</a></li>
+ <li><a href="/life-style/love-sex" title="">Love + sex</a></li>
+ </ul>
+ </li>
+ <li><a href="/life-style/gadgets-and-tech" title="">Tech</a>
+ <ul>
+ <li><a href="http://www.independent.co.uk/topic/pokemon-go" title="">Pokemon GO</a></li>
+ <li><a href="/life-style/gadgets-and-tech/news" title="">Tech news</a></li>
+ <li><a href="/life-style/gadgets-and-tech/features" title="">Tech culture</a></li>
+ <li><a href="/life-style/gadgets-and-tech/gaming" title="">Gaming</a></li>
+ </ul>
+ </li>
+ <li><a href="/sport" title="">Sport</a>
+ <ul>
+ <li class="topic"><a href="/topic/football-transfers" title="">Transfer news</a></li>
+ <li><a href="/sport/football" title="">Football</a></li>
+ <li><a href="/sport/rugby/rugby-union" title="">Rugby union</a></li>
+ <li><a href="/sport/cricket" title="">Cricket</a></li>
+ <li><a href="/sport/tennis" title="">Tennis</a></li>
+ <li><a href="/sport/golf" title="">Golf</a></li>
+ <li><a href="/sport/motor-racing" title="">Motor racing</a></li>
+ <li><a href="/sport/us-sport" title="">US sport</a></li>
+ </ul>
+ </li>
+ <li><a href="http://www.independent.co.uk/marketing/apps" title="">Daily Edition</a>
+ <ul>
+ <li><a href="http://www.independentsubscriptions.co.uk/" title="Subscribe for a free trial">Subscribe for a free trial</a></li>
+ <li><a href="https://edition.independent.co.uk/" title="Read now">Read now</a></li>
+ </ul>
+ </li>
+ </ol>
+ </nav>
+ <ol id="meta-nav">
+ <li class="search">
+ <a href="#" class="icon-search dropdown-toggle" title="Search"></a>
+ <form class="search-form search search" action="/news/business/news/seven-secrets-that-hotel-owners-dont-want-you-to-know-10506160.html" method="post" id="search-form" accept-charset="UTF-8">
+ <div>
+ <div class="container-inline search-container search-container form-wrapper" id="edit-basic">
+ <div class="form-item form-type-textfield form-item-keys">
+ <label for="edit-keys"> </label>
+ <input placeholder="Search" autofocus="1" id="edit-keys" name="keys" value="" size="20" maxlength="255" class="form-text" type="text" />
+ </div>
+ <input id="edit-submit" name="op" value="Search" class="form-submit" type="submit" /><input name="get" value="[]" type="hidden" />
+ </div><input name="form_build_id" value="form-1wGh5C61es3a0HGEMc1s7L_9Fe4TCymY4hxOVwzQeTQ" type="hidden" />
+ <input name="form_id" value="apachesolr_search_custom_page_search_form" type="hidden" />
+ </div>
+ </form>
+ </li>
+ <li class="edition">
+ <a href="javascript:void(0)" class="icon-uk dropdown-toggle" title="Edition"></a>
+ <ul class="dropdown-menu">
+ <li>
+ <a href="javascript:void(0)" data-edition="UK">UK Edition <span class="icon-check"></span></a>
+ </li>
+ <li>
+ <a href="javascript:void(0)" data-edition="US">US Edition </a>
+ </li>
+ </ul>
+ </li>
+ <li class="account">
+ <a href="#" class="icon-user dropdown-toggle" title="Account"></a>
+ <ul class="dropdown-menu">
+ <li><a href="/login" id="signInLink" data-id="signInLink">Sign in</a></li>
+ <li><a href="/register" id="joinLink" data-id="joinLink">Register</a></li>
+ <li><a href="https://www.independentsubscriptions.co.uk/" title="">Subscriptions</a></li>
+ </ul>
+ </li>
+ <li class="toggle-menu">
+ <a href="#" class="icon-menu" title="Toggle menu"></a>
+ </li>
+ </ol>
+
+ <div id="menu">
+ <form class="search-form search search" action="/news/business/news/seven-secrets-that-hotel-owners-dont-want-you-to-know-10506160.html" method="post" id="search-form" accept-charset="UTF-8">
+ <div>
+ <div class="container-inline search-container search-container form-wrapper" id="edit-basic">
+ <div class="form-item form-type-textfield form-item-keys">
+ <label for="edit-keys"> </label>
+ <input placeholder="Search" autofocus="1" id="edit-keys" name="keys" value="" size="20" maxlength="255" class="form-text" type="text" />
+ </div>
+ <input id="edit-submit" name="op" value="Search" class="form-submit" type="submit" /><input name="get" value="[]" type="hidden" />
+ </div><input name="form_build_id" value="form-1wGh5C61es3a0HGEMc1s7L_9Fe4TCymY4hxOVwzQeTQ" type="hidden" />
+ <input name="form_id" value="apachesolr_search_custom_page_search_form" type="hidden" />
+ </div>
+ </form>
+ <ul class="topics">
+ <li><a href="/news" title="">News</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ <ul>
+ <li class="hot_topic"><a href="/topic/labour-leadership-contest" title="">Labour leadership contest</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/news/uk" title="">UK</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/news/world/americas" title="">US</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/news/world" title="">World</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/news/uk/politics" title="">Politics</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/news/people" title="">People</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/news/science" title="">Science</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/news/business" title="">Business</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="http://www.independent.co.uk/news/media/" title="">Media</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="http://www.independent.co.uk/news/obituaries" title="">Obituaries</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ </ul>
+ </li>
+ <li><a href="/voices" title="">Voices</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ <ul>
+ <li><a href="/author/robert-fisk" title="">Robert Fisk</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/author/mark-steel" title="">Mark Steel</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/author/grace-dent" title="">Grace Dent</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="http://www.independent.co.uk/author/janet-street-porter" title="Janet Street-Porter">Janet Street-Porter</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/author/holly-baxter" title="">Holly Baxter</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="http://www.independent.co.uk/author/john-rentoul" title="">John Rentoul</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/voices/campaigns" title="">Campaigns</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/voices/comment" title="">Comment</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/voices/editorials" title="">Editorials</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/voices/letters" title="">Letters</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/voices/campaigns/GiantsClub" title="">Giants Club</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ </ul>
+ </li>
+ <li><a href="/sport" title="">Sport</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ <ul>
+ <li class="hot_topic"><a href="/topic/football-transfers" title="">Transfer news</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/sport/football" title="">Football</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/sport/rugby/rugby-union" title="">Rugby union</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/sport/cricket" title="">Cricket</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/sport/tennis" title="">Tennis</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/sport/motor-racing" title="">Motor racing</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/sport/us-sport" title="">US sports</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ </ul>
+ </li>
+ <li><a href="http://www.independent.co.uk/arts-entertainment" title="">Culture</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ <ul>
+ <li><a href="/arts-entertainment/books" title="">Books</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/arts-entertainment/films" title="">Film</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/arts-entertainment/tv" title="">TV</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/arts-entertainment/music" title="">Music</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/arts-entertainment/art" title="">Art</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/arts-entertainment/theatre-dance" title="">Theatre + dance</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/arts-entertainment/comedy" title="">Comedy</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="http://tickets.independent.co.uk?utm_source=nav&amp;utm_medium=Encore" title="">Tickets</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ </ul>
+ </li>
+ <li><a href="/life-style" title="">Lifestyle</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ <ul>
+ <li><a href="/travel" title="">Travel</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/life-style/motoring" title="">Motoring</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/life-style/food-and-drink" title="">Food + drink</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/life-style/health-and-families" title="">Health + families</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/life-style/fashion" title="">Fashion + beauty</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/student" title="">Student</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="http://courses.independent.co.uk/" title="">Find Courses</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/life-style/love-sex" title="">Love + sex</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="http://directory.independent.co.uk/?utm_source=independent&amp;utm_medium=navbar&amp;utm_campaign=touchlocal" title="">Business directory</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="http://www.independentescapes.com/?utm_source=independent&amp;utm_medium=navbar&amp;utm_term=navbar&amp;utm_campaign=secretescapes" title="">Secret Escapes</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ </ul>
+ </li>
+ <li><a href="/life-style/gadgets-and-tech" title="">Tech</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ <ul>
+ <li class="hot_topic"><a href="/topic/iphone" title="">iPhone</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/life-style/gadgets-and-tech/news" title="">Tech news</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/life-style/gadgets-and-tech/features" title="">Tech culture</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/life-style/gadgets-and-tech/gaming" title="">Gaming</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ </ul>
+ </li>
+ <li><a href="/video" title="">Video</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ <ul>
+ <li><a href="/video/News" title="">News videos</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/video/Explainers" title="">Explainer videos</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/video/Sport" title="">Sport videos</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/video/People-and-culture" title="">People + culture videos</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ </ul>
+ </li>
+ <li><a href="/extras/indybest" title="">IndyBest</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ <ul>
+ <li><a href="/extras/indybest/christmasgifts" title="">Christmas</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/extras/indybest/outdoor-activity" title="">Sports &amp; Fitness</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/extras/indybest/house-garden" title="">Home &amp; Garden</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/extras/indybest/kids" title="">Kids</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/extras/indybest/arts-books" title="">Books</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/extras/indybest/travel" title="">Travel &amp; Outdoors</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/extras/indybest/fashion-beauty" title="">Fashion &amp; Beauty</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/extras/indybest/food-drink" title="">Food &amp; Drink</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/extras/indybest/gadgets-tech" title="">Tech</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ </ul>
+ </li>
+ <li><a href="/money" title="">Money</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ <ul>
+ <li><a href="/money/mortgages" title="">Mortgages</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/money/loans-credit" title="">Loans</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/money/spend-save" title="">Savings</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/money/pensions" title="">Pensions</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="http://www.independent.co.uk/money/hifx-international-money-transfers?icn=hifx_nav" title="">Money transfers</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="http://www.independent.co.uk/money/health-insurance?icn=axa_nav" title="">Health insurance</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/money/moneydeals" title="">Money Deals</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ </ul>
+ </li>
+ <li><a href="/extras" title="">Extras</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ <ul>
+ <li><a href="/news/corrections" title="">Corrections</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="https://www.indy100.com" title="">indy100</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="http://puzzles.independent.co.uk?utm_campaign=navbar&amp;utm_medium=nav&amp;utm_source=navpuzzles" title="">Puzzles</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="http://puzzles.independent.co.uk?utm_campaign=navbar&amp;utm_medium=nav&amp;utm_source=navpuzzles" title="Crosswords Link">Crosswords</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/marketing/apps" title="">Apps</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="/independentbooks" title="">The Independent Books</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="http://independentjobs.independent.co.uk" title="">Jobs</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="http://dating.independent.co.uk/?utm_source=dating&amp;utm_campaign=dating&amp;utm_term=independent" title="">Dating</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ <li><a href="http://www.independent.co.uk/competitions/?icn=offfers_nav" title="">Competitions &amp; offers</a><span class="toggle"><span class="icon-arrow-right"></span></span>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ <ul class="follow">
+ <li>Follow us:</li>
+ <li>
+ <a href="https://www.facebook.com/TheIndependentOnline" target="_blank" title="Facebook" class="icon-facebook"></a>
+ </li>
+ <li>
+ <a href="https://twitter.com/independent" target="_blank" title="Twitter" class="icon-twitter"></a>
+ </li>
+ </ul>
+ </div>
+ </header>
+ <div id="content">
+ <div class="region region-header">
+ <div class="ad-leaderboard">
+ <div id="leaderboard" style="margin: 0 auto 40px;">
+ <div id="google_ads_iframe_/71347885/_main_independent/in_news/in_business/in_news/in_news_article_2__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/71347885/_main_independent/in_news/in_business/in_news/in_news_article_2" title="3rd party ad content" name="google_ads_iframe_/71347885/_main_independent/in_news/in_business/in_news/in_news_article_2" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" frameborder="0" width="970" height="250"></iframe></div><iframe id="google_ads_iframe_/71347885/_main_independent/in_news/in_business/in_news/in_news_article_2__hidden__" title="" name="google_ads_iframe_/71347885/_main_independent/in_news/in_business/in_news/in_news_article_2__hidden__" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom; visibility: hidden; display: none;" frameborder="0" width="0" height="0"></iframe></div>
+ </div>
+ </div>
+ <div id="cookie-warning">
+ <a href="#" class="close icon-close" title="OK"></a>
+ <p>We use cookies to enhance your visit to our site and to bring you advertisements that might interest you. Read our <a href="%20http://www.independent.co.uk/service/privacy-policy-a6184181.html">Privacy</a> and <a href="http://www.independent.co.uk/service/cookie-policy-a6184186.html">Cookie</a> Policies to find out more.</p>
+ </div>
+ <div class="tabs"></div>
+ <div class="region region-content">
+
+
+ <article class="full-article" itemscope="" itemtype="http://schema.org/NewsArticle">
+ <meta itemprop="mainEntityOfPage" content="http://www.independent.co.uk/news/business/news/seven-secrets-that-hotel-owners-dont-want-you-to-know-10506160.html" />
+ <div itemprop="publisher" itemscope="" itemtype="https://schema.org/Organization">
+ <meta itemprop="name" content="The Independent" />
+ <link itemprop="sameAs" href="http://www.independent.co.uk" />
+ <link itemprop="logo" href="https://static.independent.co.uk/static-assets/brand-logo.png" />
+ </div>
+
+
+
+ <header id="gigya-share-btns-1_gig_containerParent">
+
+ <ol vocab="http://schema.org/" typeof="BreadcrumbList" class="breadcrumbs clearfix">
+ <li property="itemListElement" typeof="ListItem"><a property="item" typeof="WebPage" href="http://www.independent.co.uk/news"><span property="name">News</span></a></li>
+ <li property="itemListElement" typeof="ListItem"><a property="item" typeof="WebPage" href="http://www.independent.co.uk/news/business"><span property="name">Business</span></a></li>
+ <li property="itemListElement" typeof="ListItem"><a property="item" typeof="WebPage" href="http://www.independent.co.uk/news/business/news"><span property="name">Business News</span></a></li>
+ </ol>
+ <h1 itemprop="headline" class=" ">The seven secrets that hotel owners don't want you to know</h1>
+
+
+ <div class="intro">
+ <p>Hotel bosses spill the beans on cost cutting and horrible hygiene</p>
+ </div>
+ <ul class="caption meta inline-pipes-list">
+ <li class="author" itemprop="author" itemscope="" itemtype="http://schema.org/Person">
+ <span itemprop="name"><a href="/author/hazel-sheffield" title="Hazel Sheffield" itemprop="sameAs">Hazel Sheffield</a></span>
+ </li>
+ <li title="24 December 2015 17:00 London"><time data-microtimes="{&quot;published&quot;:&quot;1442501820000&quot;,&quot;display&quot;:&quot;1450976400000&quot;,&quot;changed&quot;:&quot;1462698711000&quot;}" datetime="17:00, 24 December 2015">Friday 25 December 2015</time></li>
+ <li class="comments">
+ <a href="#commentsDiv" id="comment-count" class="icon-comment">0 comments</a>
+ </li>
+ </ul>
+ <div id="gigya-share-btns-1" gigid="showShareBarUI" style="visibility: visible;">
+ <div class="gig-bar-container gig-share-bar-container">
+ <table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td style="vertical-align:middle; white-space:nowrap;zoom:1;">
+ <div class="gig-button-container gig-button-container-count-none gig-button-container-facebook gig-button-container-facebook-count-none gig-share-button-container gig-button-container-horizontal">
+ <div class="gig-button gig-share-button gig-button-up gig-button-count-none" id="gigya-share-btns-1-reaction0" title="Share on Facebook" alt="Share on Facebook" onclick="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-1'].buttonInstances['gigya-share-btns-1-reaction0'].onClick()" onmouseover="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-1'].buttonInstances['gigya-share-btns-1-reaction0'].changeState('over')" onmouseout="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-1'].buttonInstances['gigya-share-btns-1-reaction0'].changeState('up')">
+ <table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td id="gigya-share-btns-1-reaction0-left"></td>
+ <td id="gigya-share-btns-1-reaction0-icon" style="zoom:1;vertical-align:middle;text-align:left;background-repeat:repeat-x;"><img id="gigya-share-btns-1-reaction0-icon_img" src="/sites/all/themes/ines_themes/independent_theme/img/facebook.png" alt="" /></td>
+ <td id="gigya-share-btns-1-reaction0-right"></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </td>
+ <td style="vertical-align:middle; white-space:nowrap;zoom:1;">
+ <div class="gig-button-container gig-button-container-count-none gig-button-container-twitter gig-button-container-twitter-count-none gig-share-button-container gig-button-container-horizontal">
+ <div class="gig-button gig-share-button gig-button-up gig-button-count-none" id="gigya-share-btns-1-reaction1" title="Share on Twitter" alt="Share on Twitter" onclick="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-1'].buttonInstances['gigya-share-btns-1-reaction1'].onClick()" onmouseover="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-1'].buttonInstances['gigya-share-btns-1-reaction1'].changeState('over')" onmouseout="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-1'].buttonInstances['gigya-share-btns-1-reaction1'].changeState('up')">
+ <table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td id="gigya-share-btns-1-reaction1-left"></td>
+ <td id="gigya-share-btns-1-reaction1-icon" style="zoom:1;vertical-align:middle;text-align:left;background-repeat:repeat-x;"><img id="gigya-share-btns-1-reaction1-icon_img" src="/sites/all/themes/ines_themes/independent_theme/img/twitter.png" alt="" /></td>
+ <td id="gigya-share-btns-1-reaction1-right"></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </td>
+ <td style="vertical-align:middle; white-space:nowrap;zoom:1;">
+ <div class="gig-button-container gig-button-container-count-none gig-button-container-whatsapp gig-button-container-whatsapp-count-none gig-share-button-container gig-button-container-horizontal">
+ <div class="gig-button gig-share-button gig-button-up gig-button-count-none" id="gigya-share-btns-1-reaction2" title="WhatsApp" alt="WhatsApp" onclick="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-1'].buttonInstances['gigya-share-btns-1-reaction2'].onClick()" onmouseover="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-1'].buttonInstances['gigya-share-btns-1-reaction2'].changeState('over')" onmouseout="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-1'].buttonInstances['gigya-share-btns-1-reaction2'].changeState('up')">
+ <table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td id="gigya-share-btns-1-reaction2-left"></td>
+ <td id="gigya-share-btns-1-reaction2-icon" style="zoom:1;vertical-align:middle;text-align:left;background-repeat:repeat-x;"><img id="gigya-share-btns-1-reaction2-icon_img" src="/sites/all/themes/ines_themes/independent_theme/img/whatsapp.png" alt="" /></td>
+ <td id="gigya-share-btns-1-reaction2-right"></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </td>
+ <td style="vertical-align:middle; white-space:nowrap;zoom:1;">
+ <div class="gig-button-container gig-button-container-count-none gig-button-container-email gig-button-container-email-count-none gig-share-button-container gig-button-container-horizontal">
+ <div class="gig-button gig-share-button gig-button-up gig-button-count-none" id="gigya-share-btns-1-reaction3" title="email" alt="email" onclick="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-1'].buttonInstances['gigya-share-btns-1-reaction3'].onClick()" onmouseover="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-1'].buttonInstances['gigya-share-btns-1-reaction3'].changeState('over')" onmouseout="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-1'].buttonInstances['gigya-share-btns-1-reaction3'].changeState('up')">
+ <table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td id="gigya-share-btns-1-reaction3-left"></td>
+ <td id="gigya-share-btns-1-reaction3-icon" style="zoom:1;vertical-align:middle;text-align:left;background-repeat:repeat-x;"><img id="gigya-share-btns-1-reaction3-icon_img" src="/sites/all/themes/ines_themes/independent_theme/img/email.png" alt="" /></td>
+ <td id="gigya-share-btns-1-reaction3-right"></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </td>
+ <td style="vertical-align:middle; white-space:nowrap;zoom:1;">
+ <div class="gig-button-container gig-button-container-count-right gig-button-container-share gig-button-container-share-count-right gig-share-button-container gig-button-container-horizontal">
+ <table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td class="gig-button-td">
+ <div class="gig-button gig-share-button gig-button-up gig-button-count-right" id="gigya-share-btns-1-reaction4" title="Share" alt="Share" onclick="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-1'].buttonInstances['gigya-share-btns-1-reaction4'].onClick()" onmouseover="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-1'].buttonInstances['gigya-share-btns-1-reaction4'].changeState('over')" onmouseout="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-1'].buttonInstances['gigya-share-btns-1-reaction4'].changeState('up')">
+ <table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td id="gigya-share-btns-1-reaction4-left"></td>
+ <td id="gigya-share-btns-1-reaction4-icon" style="zoom:1;vertical-align:middle;text-align:left;background-repeat:repeat-x;"><img id="gigya-share-btns-1-reaction4-icon_img" src="/sites/all/themes/ines_themes/ines_theme/img/blank.gif" alt="" /></td>
+ <td id="gigya-share-btns-1-reaction4-right"></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </td>
+ <td>
+ <div class="gig-counter gig-share-counter gig-counter-$rid gig-counter-right" id="gigya-share-btns-1-reaction4-count" style="display:none; background-image:url('http://cdn.gigya.com/gs/GetSprite.ashx?path=%2FshareBar%2Fbutton%2Fbutton%5Bleft%2Cright%5DImg%5Bup%2Cover%5D.png%7C2%2C20%5E%2FshareBar%2Fbutton%2FrightCountImg.png%7C38%2C20%5E%2Fsharebar%2Ficons%2F%5Bfacebook%2Ctwitter%2Cwhatsapp%2Cemail%2Cshare%5D.png%7C16%2C16');background-position:-8px 0px;width: 38px;height: 20px;line-height: 20px;background-repeat:no-repeat;position:static;;text-align:center;vertical-align:middle;"><span class="gig-counter-text gig-share-counter-text gig-counter-text-right gig-share-counter-text-right" id="gigya-share-btns-1-reaction4-count-value"></span></div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </header>
+
+
+ <div class="push-notifications-cta"><a href="https://www.independent.co.uk/us-election-notifications" class="us-election-notifications-cta">Click here to receive live updates on the US election</a></div>
+
+ <figure itemprop="associatedMedia image" itemscope="" itemtype="http://schema.org/ImageObject" class="featured-media medium-width">
+ <meta itemprop="representativeOfPage" content="true" />
+ <meta itemprop="url" content="https://static.independent.co.uk/s3fs-public/thumbnails/image/2015/12/06/10/bed-hotel-room.jpg" />
+ <meta itemprop="width" content="2048" />
+ <meta itemprop="height" content="1536" />
+
+ <!-- scald=4071216:article_responsive_images -->
+ <picture title="bed-hotel-room.jpg">
+ <!--[if IE 9]><video style="display: none;"><![endif]-->
+ <source srcset="https://static.independent.co.uk/s3fs-public/styles/article_medium/public/thumbnails/image/2015/12/06/10/bed-hotel-room.jpg 1x" media="(min-width: 620px) and (max-width: 929px)" />
+ <source srcset="https://static.independent.co.uk/s3fs-public/styles/article_large/public/thumbnails/image/2015/12/06/10/bed-hotel-room.jpg 1x" media="(min-width: 930px) and (max-width: 1239px)" />
+ <source srcset="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/12/06/10/bed-hotel-room.jpg 1x" media="(min-width: 1240px)" />
+ <!--[if IE 9]></video><![endif]-->
+ <img src="https://static.independent.co.uk/s3fs-public/styles/article_small/public/thumbnails/image/2015/12/06/10/bed-hotel-room.jpg" alt="bed-hotel-room.jpg" title="bed-hotel-room.jpg" />
+ </picture>
+ <!-- END scald=4071216 -->
+ <figcaption itemprop="description" class="caption">
+ Even luxury hotels aren’t always cleaned as often as they should be <span class="copyright">Getty Images</span> </figcaption>
+ </figure>
+
+
+ <div class="article-wrapper clearfix">
+ <div class="main-content-column">
+ <div class="text-wrapper" itemprop="articleBody" id="gigya-share-btns-2_gig_containerParent">
+ <p>Most people go to hotels for the pleasure of sleeping in a giant bed with clean white sheets and waking up to fresh towels in the morning.</p>
+
+ <p>But those towels and sheets might not be as clean as they look, according to the hotel bosses that responded to an online thread about the things hotel owners don’t want you to know.</p>
+
+ <p>Zeev Sharon and Michael Forrest Jones both run hotel start-ups in the US. Forrest Jones runs the start-up Beechmont Hotels Corporation, a hotel operating company that consults with hotel owners on how they can improve their business. Sharon is the CEO of Hotelied, a start-up that allows people to sign up for discounts at luxury hotels.</p>
+
+ <p>But even luxury hotels aren’t always cleaned as often as they should be.</p>
+
+ <p>Here are some of the secrets that the receptionist will never tell you when you check in, according to answers posted on <a href="https://www.quora.com/What-are-the-things-we-dont-know-about-hotel-rooms" target="_blank">Quora</a>.</p>
+
+ <h3> </h3>
+
+ <div class="dnd-widget-wrapper context-sdl_editor_representation type-image">
+ <div class="dnd-atom-rendered">
+ <!-- scald=2893886:sdl_editor_representation -->
+ <div class="image"><img src="https://static.independent.co.uk/s3fs-public/styles/story_medium/public/thumbnails/image/2014/03/18/10/bandb2.jpg" alt="bandb2.jpg" title="bandb2.jpg" width="564" height="423" /></div>
+ <!-- END scald=2893886 -->
+ </div>
+ <div class="dnd-caption-wrapper">
+ <!--copyright=2893886-->Even posh hotels might not wash a blanket in between stays
+ <!--END copyright=2893886-->
+ </div>
+ </div>
+
+ <p>1. Take any blankets or duvets off the bed</p>
+
+ <p>Forrest Jones said that anything that comes into contact with any of the previous guest’s skin should be taken out and washed every time the room is made, but that even the fanciest hotels don’t always do so. "Hotels are getting away from comforters. Blankets are here to stay, however. But some hotels are still hesitant about washing them every day if they think they can get out of it," he said.</p>
+
+ <div class="dnd-widget-wrapper context-sdl_editor_representation type-video">
+ <div class="dnd-atom-rendered">
+ <!-- scald=4129151:sdl_editor_representation -->
+ <div class="image">
+ <!-- Start of Brightcove Player -->
+ <div class="bc_container">
+ <div class="video-js vjs-mouse vjs-paused vjs-controls-enabled vjs-workinghover vjs-user-active bc-player-2d3d4a83-ba40-464e-9bfb-2804b076bf67_default vjs-plugins-ready vjs-errors" data-video-id="4685984084001" data-embed="default" data-player="2d3d4a83-ba40-464e-9bfb-2804b076bf67" data-account="624246174001" id="4685984084001" role="region" aria-label="video player"><video id="4685984084001_html5_api" data-account="624246174001" data-player="2d3d4a83-ba40-464e-9bfb-2804b076bf67" data-embed="default" data-video-id="4685984084001" class="vjs-tech" preload="none" poster="http://brightcove.vo.llnwd.net/e1/pd/624246174001/624246174001_4685986878001_4685984084001-vs.jpg?pubId=624246174001&amp;videoId=4685984084001" src="blob:http://www.independent.co.uk/112e1cb2-b0b1-e146-be22-fc6d052f7ddd"></video>
+ <div></div>
+ <div class="vjs-poster" tabindex="-1" style="background-image: url(&quot;http://brightcove.vo.llnwd.net/e1/pd/624246174001/624246174001_4685986878001_4685984084001-vs.jpg?pubId=624246174001&amp;videoId=4685984084001&quot;);"></div>
+ <div class="vjs-text-track-display" aria-live="assertive" aria-atomic="true">
+ <div style="position: absolute; left: 0px; right: 0px; top: 0px; bottom: 0px; margin: 1.5%;"></div>
+ </div>
+ <div class="vjs-loading-spinner" dir="ltr"></div>
+ <div class="vjs-big-play-button" tabindex="0" role="button" aria-live="polite"><span class="vjs-control-text">Play Video</span></div>
+ <div class="vjs-control-bar" dir="ltr" role="group">
+ <div class="vjs-play-control vjs-control vjs-button " tabindex="0" role="button" aria-live="polite"><span class="vjs-control-text">Play</span></div>
+ <div class="vjs-volume-menu-button vjs-menu-button vjs-menu-button-inline vjs-control vjs-button vjs-volume-menu-button-vertical vjs-vol-3" tabindex="0" role="button" aria-live="polite">
+ <div class="vjs-menu">
+ <div class="vjs-menu-content">
+ <div tabindex="0" class="vjs-volume-bar vjs-slider-bar vjs-slider vjs-slider-vertical" role="slider" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" aria-label="volume level" aria-valuetext="100.00%">
+ <div class="vjs-volume-level"><span class="vjs-control-text"></span></div>
+ </div>
+ </div>
+ </div><span class="vjs-control-text">Mute</span></div>
+ <div class="vjs-current-time vjs-time-control vjs-control vjs-time-controls">
+ <div class="vjs-current-time-display" aria-live="off"><span class="vjs-control-text">Current Time </span>0:00</div>
+ </div>
+ <div class="vjs-time-control vjs-time-divider vjs-time-controls">
+ <div><span>/</span></div>
+ </div>
+ <div class="vjs-duration vjs-time-control vjs-control vjs-time-controls">
+ <div class="vjs-duration-display" aria-live="off"><span class="vjs-control-text">Duration Time</span> 0:00</div>
+ </div>
+ <div class="vjs-progress-control vjs-control">
+ <div tabindex="0" class="vjs-progress-holder vjs-slider vjs-slider-horizontal" role="slider" aria-valuenow="NaN" aria-valuemin="0" aria-valuemax="100" aria-label="progress bar" aria-valuetext="0:00">
+ <div class="vjs-load-progress"><span class="vjs-control-text"><span>Loaded</span>: 0%</span>
+ </div>
+ <div class="vjs-mouse-display" style="left: 0px;" data-current-time="0:00"></div>
+ <div class="vjs-play-progress vjs-slider-bar" data-current-time="0:00"><span class="vjs-control-text"><span>Progress</span>: 0%</span>
+ </div>
+ </div>
+ </div>
+ <div class="vjs-live-control vjs-control vjs-live-controls vjs-hidden">
+ <div class="vjs-live-display" aria-live="off"><span class="vjs-control-text">Stream Type</span>LIVE</div>
+ </div>
+ <div class="vjs-remaining-time vjs-time-control vjs-control vjs-time-controls">
+ <div class="vjs-remaining-time-display" aria-live="off"><span class="vjs-control-text">Remaining Time</span> -0:00</div>
+ </div>
+ <div class="vjs-custom-control-spacer vjs-spacer "> </div>
+ <div class="vjs-share-control vjs-icon-share vjs-control vjs-button " tabindex="0" role="button" aria-live="polite"><span class="vjs-control-text">Share</span></div>
+ <div class="vjs-playback-rate vjs-menu-button vjs-menu-button-popup vjs-control vjs-button vjs-hidden" tabindex="0" role="menuitem" aria-live="polite" aria-expanded="false" aria-haspopup="true">
+ <div class="vjs-menu" role="presentation">
+ <ul class="vjs-menu-content" role="menu"></ul>
+ </div><span class="vjs-control-text">Playback Rate</span>
+ <div class="vjs-playback-rate-value">1</div>
+ </div>
+ <div class="vjs-chapters-button vjs-menu-button vjs-menu-button-popup vjs-control vjs-button vjs-hidden" tabindex="0" role="menuitem" aria-live="polite" aria-expanded="false" aria-haspopup="true" aria-label="Chapters Menu">
+ <div class="vjs-menu" role="presentation">
+ <ul class="vjs-menu-content" role="menu">
+ <li class="vjs-menu-title" tabindex="-1">Chapters</li>
+ </ul>
+ </div><span class="vjs-control-text">Chapters</span></div>
+ <div class="vjs-descriptions-button vjs-menu-button vjs-menu-button-popup vjs-control vjs-button vjs-hidden" tabindex="0" role="menuitem" aria-live="polite" aria-expanded="false" aria-haspopup="true" aria-label="Descriptions Menu">
+ <div class="vjs-menu" role="presentation">
+ <ul class="vjs-menu-content" role="menu">
+ <li class="vjs-menu-item vjs-selected" tabindex="-1" role="menuitemcheckbox" aria-live="polite" aria-checked="true">descriptions off<span class="vjs-control-text">, selected</span></li>
+ </ul>
+ </div><span class="vjs-control-text">Descriptions</span></div>
+ <div class="vjs-subtitles-button vjs-menu-button vjs-menu-button-popup vjs-control vjs-button vjs-hidden" tabindex="0" role="menuitem" aria-live="polite" aria-expanded="false" aria-haspopup="true" aria-label="Subtitles Menu">
+ <div class="vjs-menu" role="presentation">
+ <ul class="vjs-menu-content" role="menu">
+ <li class="vjs-menu-item vjs-selected" tabindex="-1" role="menuitemcheckbox" aria-live="polite" aria-checked="true">subtitles off<span class="vjs-control-text">, selected</span></li>
+ </ul>
+ </div><span class="vjs-control-text">Subtitles</span></div>
+ <div class="vjs-captions-button vjs-menu-button vjs-menu-button-popup vjs-control vjs-button vjs-hidden" tabindex="0" role="menuitem" aria-live="polite" aria-expanded="false" aria-haspopup="true" aria-label="Captions Menu">
+ <div class="vjs-menu" role="presentation">
+ <ul class="vjs-menu-content" role="menu">
+ <li class="vjs-menu-item vjs-texttrack-settings" tabindex="-1" role="menuitem" aria-live="polite">captions settings<span class="vjs-control-text">, opens captions settings dialog</span></li>
+ <li class="vjs-menu-item vjs-selected" tabindex="-1" role="menuitemcheckbox" aria-live="polite" aria-checked="true">captions off<span class="vjs-control-text">, selected</span></li>
+ </ul>
+ </div><span class="vjs-control-text">Captions</span></div>
+ <div class="vjs-audio-button vjs-menu-button vjs-menu-button-popup vjs-control vjs-button vjs-hidden" tabindex="0" role="menuitem" aria-live="polite" aria-expanded="false" aria-haspopup="true" aria-label="Audio Menu">
+ <div class="vjs-menu" role="presentation">
+ <ul class="vjs-menu-content" role="menu">
+ <li class="vjs-menu-item vjs-selected" tabindex="-1" role="menuitemcheckbox" aria-live="polite" aria-checked="true">default<span class="vjs-control-text">, selected</span></li>
+ </ul>
+ </div><span class="vjs-control-text"></span></div>
+ <div class="vjs-fullscreen-control vjs-control vjs-button " tabindex="0" role="button" aria-live="polite"><span class="vjs-control-text">Fullscreen</span></div>
+ </div>
+ <div class="vjs-error-display vjs-modal-dialog vjs-hidden " tabindex="-1" aria-describedby="4685984084001_component_409_description" aria-hidden="true" aria-label="Modal Window" role="dialog">
+ <p class="vjs-modal-dialog-description vjs-offscreen" id="4685984084001_component_409_description">This is a modal window.</p>
+ <div class="vjs-modal-dialog-content" role="document"></div>
+ </div>
+ <div class="vjs-caption-settings vjs-modal-overlay vjs-hidden">
+ <div class="vjs-tracksettings">
+ <div class="vjs-tracksettings-colors">
+ <div class="vjs-fg-color vjs-tracksetting">
+ <label class="vjs-label">Foreground</label>
+ <select>
+ <option value="">---</option>
+ <option value="#FFF">White</option>
+ <option value="#000">Black</option>
+ <option value="#F00">Red</option>
+ <option value="#0F0">Green</option>
+ <option value="#00F">Blue</option>
+ <option value="#FF0">Yellow</option>
+ <option value="#F0F">Magenta</option>
+ <option value="#0FF">Cyan</option>
+ </select>
+ <span class="vjs-text-opacity vjs-opacity">
+ <select>
+ <option value="">---</option>
+ <option value="1">Opaque</option>
+ <option value="0.5">Semi-Opaque</option>
+ </select>
+ </span>
+ </div>
+ <!-- vjs-fg-color -->
+ <div class="vjs-bg-color vjs-tracksetting">
+ <label class="vjs-label">Background</label>
+ <select>
+ <option value="">---</option>
+ <option value="#FFF">White</option>
+ <option value="#000">Black</option>
+ <option value="#F00">Red</option>
+ <option value="#0F0">Green</option>
+ <option value="#00F">Blue</option>
+ <option value="#FF0">Yellow</option>
+ <option value="#F0F">Magenta</option>
+ <option value="#0FF">Cyan</option>
+ </select>
+ <span class="vjs-bg-opacity vjs-opacity">
+ <select>
+ <option value="">---</option>
+ <option value="1">Opaque</option>
+ <option value="0.5">Semi-Transparent</option>
+ <option value="0">Transparent</option>
+ </select>
+ </span>
+ </div>
+ <!-- vjs-bg-color -->
+ <div class="window-color vjs-tracksetting">
+ <label class="vjs-label">Window</label>
+ <select>
+ <option value="">---</option>
+ <option value="#FFF">White</option>
+ <option value="#000">Black</option>
+ <option value="#F00">Red</option>
+ <option value="#0F0">Green</option>
+ <option value="#00F">Blue</option>
+ <option value="#FF0">Yellow</option>
+ <option value="#F0F">Magenta</option>
+ <option value="#0FF">Cyan</option>
+ </select>
+ <span class="vjs-window-opacity vjs-opacity">
+ <select>
+ <option value="">---</option>
+ <option value="1">Opaque</option>
+ <option value="0.5">Semi-Transparent</option>
+ <option value="0">Transparent</option>
+ </select>
+ </span>
+ </div>
+ <!-- vjs-window-color -->
+ </div>
+ <!-- vjs-tracksettings -->
+ <div class="vjs-tracksettings-font">
+ <div class="vjs-font-percent vjs-tracksetting">
+ <label class="vjs-label">Font Size</label>
+ <select>
+ <option value="0.50">50%</option>
+ <option value="0.75">75%</option>
+ <option value="1.00" selected="selected">100%</option>
+ <option value="1.25">125%</option>
+ <option value="1.50">150%</option>
+ <option value="1.75">175%</option>
+ <option value="2.00">200%</option>
+ <option value="3.00">300%</option>
+ <option value="4.00">400%</option>
+ </select>
+ </div>
+ <!-- vjs-font-percent -->
+ <div class="vjs-edge-style vjs-tracksetting">
+ <label class="vjs-label">Text Edge Style</label>
+ <select>
+ <option value="none">None</option>
+ <option value="raised">Raised</option>
+ <option value="depressed">Depressed</option>
+ <option value="uniform">Uniform</option>
+ <option value="dropshadow">Dropshadow</option>
+ </select>
+ </div>
+ <!-- vjs-edge-style -->
+ <div class="vjs-font-family vjs-tracksetting">
+ <label class="vjs-label">Font Family</label>
+ <select>
+ <option value="">Default</option>
+ <option value="monospaceSerif">Monospace Serif</option>
+ <option value="proportionalSerif">Proportional Serif</option>
+ <option value="monospaceSansSerif">Monospace Sans-Serif</option>
+ <option value="proportionalSansSerif">Proportional Sans-Serif</option>
+ <option value="casual">Casual</option>
+ <option value="script">Script</option>
+ <option value="small-caps">Small Caps</option>
+ </select>
+ </div>
+ <!-- vjs-font-family -->
+ </div>
+ </div>
+ <div class="vjs-tracksettings-controls">
+ <button class="vjs-default-button">Defaults</button>
+ <button class="vjs-done-button">Done</button>
+ </div>
+ </div>
+ <div class="vjs-social-overlay vjs-modal-dialog vjs-hidden " tabindex="-1" aria-describedby="4685984084001_component_501_description" aria-hidden="true" aria-label="Sharing Dialog" role="dialog">
+ <div class="vjs-close-button vjs-control vjs-button vjs-icon-cancel" tabindex="0" role="button" aria-live="polite"><span class="vjs-control-text">Close</span></div>
+ <p class="vjs-modal-dialog-description vjs-offscreen" id="4685984084001_component_501_description">This is a modal window. This modal can be closed by pressing the Escape key or activating the close button.</p>
+ <div class="vjs-modal-dialog-content" role="document"></div>
+ </div>
+ <script src="//players.brightcove.net/1719543778001/vttjs/dist/vtt.min.js"></script>
+ </div>
+ <script src="//players.brightcove.net/624246174001/2d3d4a83-ba40-464e-9bfb-2804b076bf67_default/index.min.js"></script>
+ </div>
+ <!-- End of Brightcove Player -->
+ </div>
+ <!-- END scald=4129151 -->
+ </div>
+ <div class="dnd-caption-wrapper">Video shows bed bug infestation at New York hotel</div>
+ </div>
+
+ <h3> </h3>
+
+ <div class="dnd-widget-wrapper context-sdl_editor_representation type-image">
+ <div class="dnd-atom-rendered">
+ <!-- scald=3091096:sdl_editor_representation -->
+ <div class="image"><img src="https://static.independent.co.uk/s3fs-public/styles/story_medium/public/thumbnails/image/2015/05/26/11/hotel-door-getty.jpg" alt="hotel-door-getty.jpg" title="hotel-door-getty.jpg" width="564" height="423" /></div>
+ <!-- END scald=3091096 -->
+ </div>
+ <div class="dnd-caption-wrapper">
+ <!--copyright=3091096-->Forrest Jones advised stuffing the peep hole with a strip of rolled up notepaper when not in use.
+ <!--END copyright=3091096-->
+ </div>
+ </div>
+
+ <p>2. Check the peep hole has not been tampered with</p>
+
+ <p>This is not common, but can happen, Forrest Jones said. He advised stuffing the peep hole with a strip of rolled up notepaper when not in use. When someone knocks on the door, the paper can be removed to check who is there. If no one is visible, he recommends calling the front desk immediately. “I look forward to the day when I can tell you to choose only hotels where every employee who has access to guestroom keys is subjected to a complete public records background check, prior to hire, and every year or two thereafter. But for now, I can't,” he said.</p>
+
+ <h3> </h3>
+
+ <div class="dnd-widget-wrapper context-sdl_editor_representation type-image">
+ <div class="dnd-atom-rendered">
+ <!-- scald=230411:sdl_editor_representation -->
+ <div class="image"><img src="https://static.independent.co.uk/s3fs-public/styles/story_medium/public/thumbnails/image/2013/07/31/15/luggage-3.jpg" alt="luggage-3.jpg" title="luggage-3.jpg" width="564" height="423" /></div>
+ <!-- END scald=230411 -->
+ </div>
+ <div class="dnd-caption-wrapper">
+ <!--copyright=230411-->Put luggage on the floor
+ <!--END copyright=230411-->
+ </div>
+ </div>
+
+ <p>3. Don’t use a wooden luggage rack</p>
+
+ <p>Bedbugs love wood. Even though a wooden luggage rack might look nicer and more expensive than a metal one, it’s a breeding ground for bugs. Forrest Jones says guests should put the items they plan to take from bags on other pieces of furniture and leave the bag on the floor.</p>
+
+ <h3> </h3>
+
+ <div class="dnd-widget-wrapper context-sdl_editor_representation type-image">
+ <div class="dnd-atom-rendered">
+ <!-- scald=3184441:sdl_editor_representation -->
+ <div class="image"><img src="https://static.independent.co.uk/s3fs-public/styles/story_medium/public/thumbnails/image/2015/04/13/11/Lifestyle-hotels.jpg" alt="Lifestyle-hotels.jpg" title="Lifestyle-hotels.jpg" width="564" height="423" /></div>
+ <!-- END scald=3184441 -->
+ </div>
+ <div class="dnd-caption-wrapper">
+ <!--copyright=3184441-->The old rule of thumb is that for every 00 invested in a room, the hotel should charge in average daily rate
+ <!--END copyright=3184441-->
+ </div>
+ </div>
+
+ <p>4. Hotel rooms are priced according to how expensive they were to build</p>
+
+ <p>Zeev Sharon said that the old rule of thumb is that for every $1000 invested in a room, the hotel should charge $1 in average daily rate. So a room that cost $300,000 to build, should sell on average for $300/night.</p>
+
+ <div class="inline-block inline-block-related-list">
+ <h1 class="box-title">Read more</h1>
+
+ <ul>
+ <li><a href="/news/world/americas/man-rents-out-flatmates-room-on-airbnb--without-telling-him-10484670.html?origin=internalSearch" target="_blank">Man rents out flatmate's room on Airbnb - without telling him</a></li>
+ <li><a href="/travel/news-and-advice/exclusive-escapes-upmarket-holiday-company-goes-bust-on-the-eve-of-bank-holiday-weekend-10476653.html?origin=internalSearch" target="_blank">Upmarket holiday company goes bust on eve of bank holiday</a></li>
+ <li><a href="/voices/comment/as-barcelona-has-found-its-possible-for-a-city-to-have-too-many-tourists-10452542.html?origin=internalSearch" target="_blank">It’s possible for a city to have too many tourists</a></li>
+ </ul>
+ </div>
+
+ <h3>5. Beware the wall-mounted hairdryer</h3>
+
+ <p>It contains the most germs of anything in the room. Other studies have said the TV remote and bedside lamp switches are the most unhygienic. “Perhaps because it's something that's easy for the housekeepers to forget to check or to squirt down with disinfectant,” Forrest Jones said.</p>
+
+ <h3> </h3>
+
+ <div class="dnd-widget-wrapper context-full type-gallery">
+ <div class="dnd-atom-rendered">
+ <!-- scald=3739501:full -->
+ <script>
+ & lt;
+ !-- //--&gt;&lt;![CDATA[// &gt;&lt;!--
+
+ jQuery(document).ready(function() {
+
+ if (jQuery(window).width() & gt; 620) {
+ var galleryTitle = jQuery(".container.grid-mod-gallery .gallery-title");
+ var galleryTitleText = galleryTitle.text();
+ var galleryTitleLength = galleryTitleText.length;
+
+ if (galleryTitleLength & gt; 50) {
+ galleryTitle.css("font-size", "17px");
+ }
+
+ if (galleryTitleLength & gt; 60) {
+ galleryTitle.css({
+ "padding": "12px 20px",
+ "line-height": "22px"
+ });
+ }
+ }
+
+ });
+
+ //--&gt;&lt;!]]&gt;
+ </script>
+ <div class="container grid-mod-gallery" data-scald-gallery="3739501">
+ <!-- Gallery title -->
+ <h2 class="gallery-title"><span class="media-prefix icon-gallery"></span>Business news in pictures</h2>
+ <div class="images">
+ <!-- First four images -->
+ <ul>
+ <li class="lazy " data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/09/15/21/Depay2.jpg">
+ <a data-gallery-thumb="1" href="#"><span class="pager icon-arrow-left"></span></a>
+ <a data-gallery-thumb="1" href="#"><span class="pager icon-arrow-right"></span></a>
+ </li>
+ <li class="lazy " data-original="https://static.independent.co.uk/s3fs-public/styles/storylist/public/thumbnails/image/2015/09/04/02/AN74804427Star-Wars-The-For.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');">
+ <a data-gallery-thumb="2" href="#"></a>
+ </li>
+ <li class="lazy " data-original="https://static.independent.co.uk/s3fs-public/styles/storylist/public/thumbnails/image/2015/09/03/20/41-Natalie-Massenet-Rex.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');">
+ <a data-gallery-thumb="3" href="#"></a>
+ </li>
+ <li class="lazy " data-original="https://static.independent.co.uk/s3fs-public/styles/storylist/public/thumbnails/image/2014/09/23/10/mayerv2.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');">
+ <a data-gallery-thumb="4" href="#"></a>
+ </li>
+ <li>
+ <a class="show-all initial-open" href="#">
+ <span class="additional-photos icon-gallery">50</span>
+ <span class="label">show all</span>
+ </a>
+ </li>
+ </ul>
+ </div>
+ </div>
+
+ <div class="full-gallery">
+ <div class="scroller">
+ <a href="#" class="close icon-close" title="Close gallery"></a>
+ <h2 class="gallery-title"><span class="media-prefix icon-gallery"></span>Business news in pictures</h2>
+ <div class="images">
+ <ul>
+ <li data-gallery-item="1" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/09/15/21/Depay2.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="2" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/09/04/02/AN74804427Star-Wars-The-For.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="3" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/09/03/20/41-Natalie-Massenet-Rex.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="4" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2014/09/23/10/mayerv2.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="5" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/08/23/20/P.47-Getty.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="6" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/08/07/10/LondonCityAirport.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="7" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/08/06/11/Carmichael_1.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="8" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/08/03/12/Charity.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="9" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/05/03/12/enfield-haunting.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="10" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/07/15/14/VirginTrain.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="11" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/07/15/14/HeavyTraffic.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="12" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/04/21/22/web-avengers-ultron-3.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="13" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/06/25/09/Adoboli.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="14" data-original="http://www.independent.co.uk/s3/files/styles/story_large/public/thumbnails/image/2015/06/23/11/Burberry%E2%80%99s%20autumn%20ad%20campaign" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="15" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/06/16/13/hololens.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="16" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2014/11/10/23/High-Street-Getty.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="17" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/06/10/15/ArgentinaStrike.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="18" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/06/08/08/17-beer-getty.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="19" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/06/03/09/NewLook.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="20" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/05/19/11/UnitedArabEmirates.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="21" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/02/25/16/gucci-show.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="22" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2012/02/22/22/5345360.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="23" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/05/14/15/Ring.jpeg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="24" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/05/14/15/BrewCat.jpeg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="25" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/05/08/13/DanielZhang.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="26" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/01/01/08/new-york-new-year.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="27" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/05/06/07/Winslet.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="28" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/05/06/07/SamCamFashion.jpeg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="29" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/02/10/12/aer_lingus_reuters.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="30" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/04/30/14/Weir.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="31" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/03/27/16/sport.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="32" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2014/06/07/21/p26harley.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="33" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/04/17/09/BPAGMCropped.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="34" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/04/01/23/AN66811047audi_tt_027.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="35" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/04/14/09/v3-48-Arlette-Ricci-Rex.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="36" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/04/08/07/Camden.jpeg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="37" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/04/08/07/RioTinto.jpeg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="38" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/04/08/07/Greenpeace.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="39" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/04/02/15/GoDaddy.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="40" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/03/31/10/ShritiVadera.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="41" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/03/31/09/Compass.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="42" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/03/31/09/SercoRail-(2).jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="43" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/03/30/15/NetAPorter.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="44" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/01/20/16/Li-Ka-Shing.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="45" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/03/25/15/Jaguar.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="46" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2014/09/12/11/A JD Wetherspoon pub.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="47" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/03/23/07/TescoJet.jpeg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="48" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/03/18/17/uber2.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="49" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/03/17/09/Sienna.jpeg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ <li data-gallery-item="50" data-original="https://static.independent.co.uk/s3fs-public/styles/story_large/public/thumbnails/image/2015/02/15/23/Blackpool-Getty.jpg" style="background-image: url('/sites/all/themes/ines_themes/ines_theme/img/blank.gif');" class=""></li>
+ </ul><span class="icon-arrow-left"></span>
+ <span class="icon-arrow-right"></span>
+ <a href="#" class="pager prev" title="Previous photo"></a>
+ <a href="#" class="pager next" title="Next photo"></a>
+ </div>
+
+ <ul class="legends">
+ <li data-gallery-legend="1">
+ <h2>
+ <span class="counter">1/50</span>
+ <!-- Optional photo title -->
+ United goin down </h2>
+ <!-- Optional photo caption -->
+ <p>Manchester United's absence from the Champions League hurt more than the fans' pride last year - it also dented the bottom line. Revenues at the New Uork listed club dipped 8.8 per cent to £395.2m in the year to June, triggering a £1.2 million loss after broadcasting and sponsorship deals dried up. The club said it was now looking to raise $400m from a share issue.</p>
+ <!-- Optional photo credits -->
+ <p class="credits">GETTY IMAGES</p>
+ </li>
+ <li data-gallery-legend="2">
+ <h2>
+ <span class="counter">2/50</span>
+ <!-- Optional photo title -->
+ Star Wars boosts economy </h2>
+ <!-- Optional photo caption -->
+ <p>Production of the next Star Wars movie has brought an economic impact of some £150 million to Britain, according to company accounts. The seventh movie in the series, The Force Awakens, will be released in December.</p>
+ <!-- Optional photo credits -->
+ </li>
+ <li data-gallery-legend="3">
+ <h2>
+ <span class="counter">3/50</span>
+ <!-- Optional photo title -->
+ Natalie Massenet Leaves Net-a-Porter </h2>
+ <!-- Optional photo caption -->
+ <p>The Net-a-Porter founder Natalie Massenet decided to quit the online fashion retailer during "a summer of reflection" that included a spectacular 50th birthday party on the Almalfi coast.</p>
+ <!-- Optional photo credits -->
+ <p class="credits">Rex</p>
+ </li>
+ <li data-gallery-legend="4">
+ <h2>
+ <span class="counter">4/50</span>
+ <!-- Optional photo title -->
+ I'll keep working, says Mayer </h2>
+ <!-- Optional photo caption -->
+ <p>The chief executive of Yahoo, Marissa Mayer, said that she was expecting twin girls in December. She said she would "approach the pregnancy and delivery the same way as I did with my son three years ago, taking limited time away and working throughout". In 2012, she took two weeks off when her first child was born.</p>
+ <!-- Optional photo credits -->
+ <p class="credits">GETTY IMAGES</p>
+ </li>
+ <li data-gallery-legend="5">
+ <h2>
+ <span class="counter">5/50</span>
+ <!-- Optional photo title -->
+ World's richest lose $182b </h2>
+ <!-- Optional photo caption -->
+ <p>Warren Buffett, the world’s third richest person, lost $3.6bn in last week’s market slump. Fears that China's economy is slowing took many indices into correction territory. The turmoil has wiped $182 billion off the wealth of the 400 richest billionaires, according to research by Bloomberg.</p>
+ <!-- Optional photo credits -->
+ <p class="credits">Getty</p>
+ </li>
+ <li data-gallery-legend="6">
+ <h2>
+ <span class="counter">6/50</span>
+ <!-- Optional photo title -->
+ City for sale </h2>
+ <!-- Optional photo caption -->
+ <p>London City Airport was put up for sale by the American hedge fund Global Infrastructure Partners, which also owns Gatwick and Edinburgh airports. It is expected to fetch around £2 billion</p>
+ <!-- Optional photo credits -->
+ <p class="credits">Getty</p>
+ </li>
+ <li data-gallery-legend="7">
+ <h2>
+ <span class="counter">7/50</span>
+ <!-- Optional photo title -->
+ Kicking up a skink Down Under </h2>
+ <!-- Optional photo caption -->
+ <p>An Australian court has overturned approval for Adani’s Carmichael coal mine in north Queensland, based on concerns over the impact of the project on the endangered yakka skink (pictured). Standard Chartered is under renewed pressure to stop financing the deal </p>
+ <!-- Optional photo credits -->
+ </li>
+ <li data-gallery-legend="8">
+ <h2>
+ <span class="counter">8/50</span>
+ <!-- Optional photo title -->
+ Scope to do more in the City? </h2>
+ <!-- Optional photo caption -->
+ <p>Damien Hirst's 7m statue, Charity, has been installed in the shadow of the Gherkin in London. It is based on an old Scope collection from the 1960s and has provoked a debate about the City and disability. The Lord Mayor of London says the City does not employ enough disabled people. </p>
+ <!-- Optional photo credits -->
+ <p class="credits">Reuters/Corbis</p>
+ </li>
+ <li data-gallery-legend="9">
+ <h2>
+ <span class="counter">9/50</span>
+ <!-- Optional photo title -->
+ Thousands more take a look at Sky </h2>
+ <!-- Optional photo caption -->
+ <p>Drama and football are a winning formula for Sky, which has recorded its best growth for 11 years, gaining 124,000 UK customers in the past quarter. Sky paid £4.2bn for Premier League rights, but also has 35 dramas planned, following successes such as the ‘The Enfield Haunting’ (pictured) with Timothy Spall.</p>
+ <!-- Optional photo credits -->
+ </li>
+ <li data-gallery-legend="10">
+ <h2>
+ <span class="counter">10/50</span>
+ <!-- Optional photo title -->
+ FirstGroup suffers over lost lines </h2>
+ <!-- Optional photo caption -->
+ <p>FirstGroup, the bus and rail operator, is paying the price for losing a string of rail franchises last year. Rail revenue will be “substantially lower” in 2015 after some big franchise losses, including ScotRail. The division lost out on tenders for the East Coast and West Coast (pictured) mainlines, which went to Virgin Trains. </p>
+ <!-- Optional photo credits -->
+ <p class="credits">GETTY</p>
+ </li>
+ <li data-gallery-legend="11">
+ <h2>
+ <span class="counter">11/50</span>
+ <!-- Optional photo title -->
+ US retail rush hour slows down again </h2>
+ <!-- Optional photo caption -->
+ <p>US retail sales unexpectedly fell in June as households cut purchases of cars and a range of other goods. Sales fell 0.3 per cent, while economists had forecast a small rise. </p>
+ <!-- Optional photo credits -->
+ <p class="credits">AFP</p>
+ </li>
+ <li data-gallery-legend="12">
+ <h2>
+ <span class="counter">12/50</span>
+ <!-- Optional photo title -->
+ Blockbusters aid Pinewood expansion </h2>
+ <!-- Optional photo caption -->
+ <p>Pinewood Studios revealed it is having to turn away major films until the five new stages it is building come on stream next summer. The group still saw operating profits rise from £4.9m to £5.8m in the past year, which saw it host the new Star Wars and Avengers films (Scarlett Johansson, pictured, stars in ‘Avengers: Age Of Ultron’) as well as the latest Bond release, ‘Spectre’ </p>
+ <!-- Optional photo credits -->
+ <p class="credits">Marvel 2015</p>
+ </li>
+ <li data-gallery-legend="13">
+ <h2>
+ <span class="counter">13/50</span>
+ <!-- Optional photo title -->
+ Rogue trader freed </h2>
+ <!-- Optional photo caption -->
+ <p>Kweku Adoboli, the former UBS trader who was convicted of the UK’s biggest banking fraud, has been released from jail after serving half of his seven-year sentence. He was imprisoned in 2012 on two counts of fraud that resulted in losses of £1.4bn, the largest trading loss in British banking history </p>
+ <!-- Optional photo credits -->
+ <p class="credits">Getty</p>
+ </li>
+ <li data-gallery-legend="14">
+ <h2>
+ <span class="counter">14/50</span>
+ <!-- Optional photo title -->
+ Burberry’s autumn ad campaign </h2>
+ <!-- Optional photo caption -->
+ <p>Burberry is launching its autumn ad campaign today with a cast of models including the singer Tom Odell and the actress Holliday Grainger </p>
+ <!-- Optional photo credits -->
+ <p class="credits"> Burberry/Testino</p>
+ </li>
+ <li data-gallery-legend="15">
+ <h2>
+ <span class="counter">15/50</span>
+ <!-- Optional photo title -->
+ Sneak peak at console battlefield </h2>
+ <!-- Optional photo caption -->
+ <p>Videogame titans Microsoft and Sony vied for attention ahead of the industry’s annual E3 conference yesterday, giving fans sneak peaks of the latest games for their Xbox and PlayStation consoles, including Sony’s new ‘Assassin’s Creed Syndicate’ </p>
+ <!-- Optional photo credits -->
+ <p class="credits">Getty Images</p>
+ </li>
+ <li data-gallery-legend="16">
+ <h2>
+ <span class="counter">16/50</span>
+ <!-- Optional photo title -->
+ High street shops hit by exodus </h2>
+ <!-- Optional photo caption -->
+ <p>The number of Britons out shopping has fallen for the second month in a row. High streets saw 1.5 per cent fewer shoppers and shopping centres 2 per cent fewer in May compared with a year ago. Only out-of-town retail parks saw a rise, with 1.4 per cent more visitors, the British Retail Consortium said. Overall shopper numbers fell by 1 per cent.</p>
+ <!-- Optional photo credits -->
+ <p class="credits">Getty</p>
+ </li>
+ <li data-gallery-legend="17">
+ <h2>
+ <span class="counter">17/50</span>
+ <!-- Optional photo title -->
+ Argentina hit by strikes </h2>
+ <!-- Optional photo caption -->
+ <p>Daily life ground to a halt in Buenos Aires yesterday amid a 24-hour general strike protesting against moves to limit pay rises and increase taxes.</p>
+ <!-- Optional photo credits -->
+ <p class="credits">AFP/Getty Images</p>
+ </li>
+ <li data-gallery-legend="18">
+ <h2>
+ <span class="counter">18/50</span>
+ <!-- Optional photo title -->
+ Duty rises blamed for beer woes </h2>
+ <!-- Optional photo caption -->
+ <p>Beer sales are still “fragile” after a decade of “devastating” duty hikes, according to the British Beer and Pub Association. The industry lobbyists said sales in pubs and shops were up 1.5 per cent in the past year, but fell by 0.8 per cent in the first quarter. Sales have fallen 24 per cent in the past decade. </p>
+ <!-- Optional photo credits -->
+ </li>
+ <li data-gallery-legend="19">
+ <h2>
+ <span class="counter">19/50</span>
+ <!-- Optional photo title -->
+ New Look in push for men </h2>
+ <!-- Optional photo caption -->
+ <p>New Look is planning a menswear push after poaching Christopher Englinde, H&amp;M’s menswear chief. Like-for-like sales at the fashion chain rose 5 per cent</p>
+ <!-- Optional photo credits -->
+ <p class="credits">Victoria Middleton</p>
+ </li>
+ <li data-gallery-legend="20">
+ <h2>
+ <span class="counter">20/50</span>
+ <!-- Optional photo title -->
+ Court halts Airbus insider trading trial </h2>
+ <!-- Optional photo caption -->
+ <p>A French court has quashed an insider trading case against seven current and former Airbus executives as well as Lagardère and Daimler, who were investors in the plane maker. Judges said the trial was dropped as they had all been cleared by France’s market regulator AMF, and it would have breached safeguards against double prosecutions </p>
+ <!-- Optional photo credits -->
+ </li>
+ <li data-gallery-legend="21">
+ <h2>
+ <span class="counter">21/50</span>
+ <!-- Optional photo title -->
+ Alibaba hits back over ‘fake’ claims </h2>
+ <!-- Optional photo caption -->
+ <p>Alibaba has hit out at Gucci’s owner, Kering, for “wasteful litigation instead of the path of constructive co-operation”, after the French luxury giant filed a lawsuit in New York alleging the Chinese online retailer allows sales of fake goods on its websites. Gucci unveiled its Fall-Winter 2015-2016 women’s range at this year’s Milan Fashion Week</p>
+ <!-- Optional photo credits -->
+ <p class="credits">Getty Images</p>
+ </li>
+ <li data-gallery-legend="22">
+ <h2>
+ <span class="counter">22/50</span>
+ <!-- Optional photo title -->
+ Hats off to Ralph Lauren </h2>
+ <!-- Optional photo caption -->
+ <p>The upmarket US clothing company Ralph Lauren saw sales climb 1 per cent to $1.9bn (£1.2bn) in the quarter to 28 March. The company said it opened several stores across key markets around the world, fuelling momentum for its luxury accessories business. However, net income decreased to $124m, compared with $153m in the same quarter last year, partly as a result of exchange-rate impacts.</p>
+ <!-- Optional photo credits -->
+ <p class="credits">EPA</p>
+ </li>
+ <li data-gallery-legend="23">
+ <h2>
+ <span class="counter">23/50</span>
+ <!-- Optional photo title -->
+ With this ring… arts sales jump </h2>
+ <!-- Optional photo caption -->
+ <p>Sotheby’s raised $380m (£241m) in its New York contemporary art sale, a day after rival Christie’s sold a Picasso for a record $179m, with the auction house describing bidding as a “rush for art”. The top lots included Roy Lichtenstein’s ‘The Ring (Engagement)’ Estate of Roy Lichtenstein</p>
+ <!-- Optional photo credits -->
+ <p class="credits">AP</p>
+ </li>
+ <li data-gallery-legend="24">
+ <h2>
+ <span class="counter">24/50</span>
+ <!-- Optional photo title -->
+ Brewdog’s dead cat bounce </h2>
+ <!-- Optional photo caption -->
+ <p>Brewdog parachuted taxidermy “fats cats” holding its latest prospectus out of a helicopter over the City of London as the Scottish brewer looks to drum up publicity for its latest “punk” fundraising. The craft beer group has already raised £5m of the £25m it is seeking from investors to fund a new brewhouse and set up a US operation</p>
+ <!-- Optional photo credits -->
+ </li>
+ <li data-gallery-legend="25">
+ <h2>
+ <span class="counter">25/50</span>
+ <!-- Optional photo title -->
+ Change at the top for Alibaba </h2>
+ <!-- Optional photo caption -->
+ <p>Chinese ecommerce giant Alibaba replaced its chief executive yesterday. Daniel Zhang, chief operating officer, will replace Jonathan Lu. The move follows the share price briefly dipping below $80 this week, its lowest since its New York flotation in September.</p>
+ <!-- Optional photo credits -->
+ <p class="credits">ChinaFotoPress/ChinaFotoPress via Getty Images</p>
+ </li>
+ <li data-gallery-legend="26">
+ <h2>
+ <span class="counter">26/50</span>
+ <!-- Optional photo title -->
+ Put that light out </h2>
+ <!-- Optional photo caption -->
+ <p>New York City officials have been informed by the American Government that the Big Apple’s dazzling neon billboards violate a 2012 highways ruling and must be taken down. The city could forfeit up to $90m (£59m) in federal highway money if it fails to comply. New York is debating getting an exemption from the rule. </p>
+ <!-- Optional photo credits -->
+ <p class="credits">AP</p>
+ </li>
+ <li data-gallery-legend="27">
+ <h2>
+ <span class="counter">27/50</span>
+ <!-- Optional photo title -->
+ Lionsgate wants the lion’s share </h2>
+ <!-- Optional photo caption -->
+ <p>Lionsgate yesterday announced plans to finance and co-invest in up to 25 British independent films over the next four years. The Canadian-US entertainment company has previously invested in such UK films as A Little Chaos, starring Kate Winslet </p>
+ <!-- Optional photo credits -->
+ </li>
+ <li data-gallery-legend="28">
+ <h2>
+ <span class="counter">28/50</span>
+ <!-- Optional photo title -->
+ Tillman planning a ‘new Jaeger’ </h2>
+ <!-- Optional photo caption -->
+ <p>The fashion entrepreneur Harold Tillman (centre) has spoken out against the way Jon Moulton’s Better Capital has run Jaeger since taking it over from him and declared he would start a rival business to serve disappointed Jaeger customers. Mr Tillman said turnover at the group had fallen and losses widened since the private equity firm took over. </p>
+ <!-- Optional photo credits -->
+ <p class="credits">2011 Getty Images</p>
+ </li>
+ <li data-gallery-legend="29">
+ <h2>
+ <span class="counter">29/50</span>
+ <!-- Optional photo title -->
+ Aer Lingus: end in sight to Irish talks with IAG </h2>
+ <!-- Optional photo caption -->
+ <p>Aer Lingus, the Irish carrier being bid for by British Airways’ owner IAG, yesterday said it is hopeful talks between its suitor and the Irish government will conclude soon. Ireland owns a 25 per cent stake in the airline, which posted a €48m (£35m) first-quarter loss yesterday but said its long-haul business had performed well</p>
+ <!-- Optional photo credits -->
+ </li>
+ <li data-gallery-legend="30">
+ <h2>
+ <span class="counter">30/50</span>
+ <!-- Optional photo title -->
+ Weir sheds more jobs in oil slump </h2>
+ <!-- Optional photo caption -->
+ <p>Slumping orders for oil and gas projects in the wake of the oil price collapse have forced the engineer Weir to cut another 125 jobs. Since the start of the year, the US oil-rig count has more than halved, sending orders in Weir’s oil and gas division down 23 per cent in the first quarter. Weir has already shed 1,300 staff in the past year </p>
+ <!-- Optional photo credits -->
+ </li>
+ <li data-gallery-legend="31">
+ <h2>
+ <span class="counter">31/50</span>
+ <!-- Optional photo title -->
+ Williams F1 team drives into the red </h2>
+ <!-- Optional photo caption -->
+ <p>Formula 1 team Williams drove £34m into the red for 2014 after the worst season in its history. A fall in prize money for 2013 – paid a year in arrears – meant the Frankfurt-listed group went into reverse after a £12m profit the year before. But Williams said this year’s figures would be better after it finished third in the 2014 Constructors’ Championship. Its driver Felipe Massa, pictured in Bahrain, is 5th in this year’s driver’s contest</p>
+ <!-- Optional photo credits -->
+ </li>
+ <li data-gallery-legend="32">
+ <h2>
+ <span class="counter">32/50</span>
+ <!-- Optional photo title -->
+ Rivals roar as Harley stalls </h2>
+ <!-- Optional photo caption -->
+ <p>A strong dollar allowed US motorcycle-maker Harley-Davidson’s foreign competitors to undercut its prices in the first quarter, hurting its sales and market share and prompting it to lower 2015 shipment forecasts. The news sent its shares down 10 per cent in early trading</p>
+ <!-- Optional photo credits -->
+ </li>
+ <li data-gallery-legend="33">
+ <h2>
+ <span class="counter">33/50</span>
+ <!-- Optional photo title -->
+ Climate changes for BP </h2>
+ <!-- Optional photo caption -->
+ <p>BP will be more accountable for its role in climate change after 98 per cent of investors backed a resolution to make it more transparent on the issue. BP’s annual shareholders’ meeting was held in London yesterday and attracted a protest against offshore oil drilling.</p>
+ <!-- Optional photo credits -->
+ </li>
+ <li data-gallery-legend="34">
+ <h2>
+ <span class="counter">34/50</span>
+ <!-- Optional photo title -->
+ Car sales lift in Europe </h2>
+ <!-- Optional photo caption -->
+ <p>Demand for new cars in Europe soared last month, particularly in Spain and Portugal where sales increased by more than 40 per cent on March last year. Meanwhile UK sales were up 6.1 per cent on March 2014, according to the European Automobile Manufacturer Association. </p>
+ <!-- Optional photo credits -->
+ </li>
+ <li data-gallery-legend="35">
+ <h2>
+ <span class="counter">35/50</span>
+ <!-- Optional photo title -->
+ Ricci heir guilt of tax fraud </h2>
+ <!-- Optional photo caption -->
+ <p>Arlette Ricci, the heir to the Nina Ricci perfume and fashion fortune, has been convicted of tax fraud by a Paris court, after hiding millions in an offshore HSBC account. Ms Ricci, 73, was sentenced to a year in prison and ordered to pay a €1m (£72,000) fine.</p>
+ <!-- Optional photo credits -->
+ <p class="credits">Rex</p>
+ </li>
+ <li data-gallery-legend="36">
+ <h2>
+ <span class="counter">36/50</span>
+ <!-- Optional photo title -->
+ Camden set for a makeover </h2>
+ <!-- Optional photo caption -->
+ <p>Teddy Sagi, Camden Market’s new Israeli billionaire owner, has appointed Mace as project manager to oversee the redevelopment of Camden Lock Village, with 170 homes as well as shops and offices in the north London district. </p>
+ <!-- Optional photo credits -->
+ <p class="credits">Getty</p>
+ </li>
+ <li data-gallery-legend="37">
+ <h2>
+ <span class="counter">37/50</span>
+ <!-- Optional photo title -->
+ All aboard the iron ore train </h2>
+ <!-- Optional photo caption -->
+ <p>Australia is reportedly examining how BHP Billiton and Rio Tinto shift billions of dollars in iron ore profits through low tax hubs in Singapore. </p>
+ <!-- Optional photo credits -->
+ <p class="credits">AFP/Getty Images</p>
+ </li>
+ <li data-gallery-legend="38">
+ <h2>
+ <span class="counter">38/50</span>
+ <!-- Optional photo title -->
+ Shell’s Arctic plans under fire </h2>
+ <!-- Optional photo caption -->
+ <p>Greenpeace activists have climbed aboard a Shell oil rig in the Pacific Ocean bound for the Arctic. They plan to camp under the rig’s main deck in protest against the oil giant’s plans to restart drilling off the coast of Alaska. The group said the six protesters would occupy the underside of the Polar Pioneer’s main deck but would not interfere with the vessel.</p>
+ <!-- Optional photo credits -->
+ <p class="credits">Vincenzo Floramo / Greenpeace</p>
+ </li>
+ <li data-gallery-legend="39">
+ <h2>
+ <span class="counter">39/50</span>
+ <!-- Optional photo title -->
+ GoDaddy off to flying start in New York </h2>
+ <!-- Optional photo caption -->
+ <p>GoDaddy shares jumped 34 per cent as they started trading on the NYSE Wednesday, valuing the website group at more than $5bn (£3bn). The firm, which manages 59 million web domains – a fifth of the world’s total – raised $460m. It sponsors race car driver Danica Patrick (pictured with chief executive Blake Irving) and is backed by private equity firms KKR and Silver Lake</p>
+ <!-- Optional photo credits -->
+ <p class="credits">EPA/ANDREW GOMBERT</p>
+ </li>
+ <li data-gallery-legend="40">
+ <h2>
+ <span class="counter">40/50</span>
+ <!-- Optional photo title -->
+ The first lady of high street banks </h2>
+ <!-- Optional photo caption -->
+ <p>Shriti Vadera, a former adviser to Gordon Brown, has become the first female chairman of a UK high street bank, succeeding Sir Terry Burns at the helm of Santander UK. Baroness Vadera will be paid £650,000 and work alongside Santander’s new CEO, Nathan Bostock </p>
+ <!-- Optional photo credits -->
+ <p class="credits">Paul Morigi/Getty Images</p>
+ </li>
+ <li data-gallery-legend="41">
+ <h2>
+ <span class="counter">41/50</span>
+ <!-- Optional photo title -->
+ Sterling returns for Compass </h2>
+ <!-- Optional photo caption -->
+ <p>Compass could see £30m added to its annual profits, thanks to the strength of the pound. The catering giant, which serves up strawberries and cream at Wimbledon each year, said underlying revenues are up 5.5 per cent in the first half, while gains from sterling against the euro, yen and Brazil’s real are set to offset any weakness of the pound against the dollar </p>
+ <!-- Optional photo credits -->
+ <p class="credits">Peter Macdiarmid/Getty Images</p>
+ </li>
+ <li data-gallery-legend="42">
+ <h2>
+ <span class="counter">42/50</span>
+ <!-- Optional photo title -->
+ Serco sells Australian rail unit </h2>
+ <!-- Optional photo caption -->
+ <p>Serco has sold its Great Southern Rail to the Australian private equity firm Allegro Funds in a £2.5m deal. The disposal of the luxury business, which runs tourist trains such as The Ghan (pictured) across Australia, is part of the outsourcing group’s move to focus on core businesses under its new chief executive, Rupert Soames</p>
+ <!-- Optional photo credits -->
+ <p class="credits">Mark Metcalfe/Getty Images</p>
+ </li>
+ <li data-gallery-legend="43">
+ <h2>
+ <span class="counter">43/50</span>
+ <!-- Optional photo title -->
+ Italian Retailer Yoox eyes Net-a-Porter </h2>
+ <!-- Optional photo caption -->
+ <p>The Italian internet retailer Yoox in the latest contender to swoop in with an offer for the luxury fashion business Net-a-Porter that could value the London-based firm at £1.3 billion</p>
+ <!-- Optional photo credits -->
+ <p class="credits">Splash News/Corbis</p>
+ </li>
+ <li data-gallery-legend="44">
+ <h2>
+ <span class="counter">44/50</span>
+ <!-- Optional photo title -->
+ Li Ka-shing buys O2 for £10bn </h2>
+ <!-- Optional photo caption -->
+ <p>Li Ka-shing’s Hutchison Whampoa has finalised a £10.25bn deal to buy the UK mobile business O2 from Spain’s Telefonica. Hutchison, the Hong Kong conglomerate that already owns Three in the UK, entered exclusive talks with Telefonica in January. </p>
+ <!-- Optional photo credits -->
+ <p class="credits">AP</p>
+ </li>
+ <li data-gallery-legend="45">
+ <h2>
+ <span class="counter">45/50</span>
+ <!-- Optional photo title -->
+ Jaguar climbs high in the City </h2>
+ <!-- Optional photo caption -->
+ <p>A Hollywood stuntman in a Jaguar XF crosses the River Thames by highwire to promote the latest model. The stunt was supported by 34mm-wide carbon wires. </p>
+ <!-- Optional photo credits -->
+ <p class="credits">PA</p>
+ </li>
+ <li data-gallery-legend="46">
+ <h2>
+ <span class="counter">46/50</span>
+ <!-- Optional photo title -->
+ Pubs get protected </h2>
+ <!-- Optional photo caption -->
+ <p>New rules have been announced to mark Community Pubs Day today which protect local pubs and give communities a greater say in planning processes. </p>
+ <!-- Optional photo credits -->
+ <p class="credits">Oli Scarff | Getty Images
+ </p>
+ </li>
+ <li data-gallery-legend="47">
+ <h2>
+ <span class="counter">47/50</span>
+ <!-- Optional photo title -->
+ Tesco jet still left on shelf </h2>
+ <!-- Optional photo caption -->
+ <p>Tesco has been forced to cut the price of its Gulfstream G550 jet by £3.5m in an attempt to shift it. The retailer has already sold three of its fleet of five jets since October but has cut the price of the 14-seater jet from $35m (£23.5m) to $30m. It also still has a Hawker 800XP.</p>
+ <!-- Optional photo credits -->
+ <p class="credits">Getty</p>
+ </li>
+ <li data-gallery-legend="48">
+ <h2>
+ <span class="counter">48/50</span>
+ <!-- Optional photo title -->
+ Uber called to account in Paris </h2>
+ <!-- Optional photo caption -->
+ <p>Uber’s Paris offices have been raided by French police as part of an investigation into its UberPOP service that lets anyone offer taxi rides. The French headquarters of the US taxi-booking app have been targeted by authorities as part of investigations into the feature, which is not available in the UK, that allows non-professional drivers to sign up </p>
+ <!-- Optional photo credits -->
+ <p class="credits">Reuters</p>
+ </li>
+ <li data-gallery-legend="49">
+ <h2>
+ <span class="counter">49/50</span>
+ <!-- Optional photo title -->
+ P&amp;G on the scent of a sale? </h2>
+ <!-- Optional photo caption -->
+ <p>Procter &amp; Gamble is believed to be looking at a sale or IPO of some of its beauty brands, which range from Herbal Essence shampoos to Olay creams and Boss perfumes (as advertised by Sienna Miller, pictured). Shares in the US consumer products giant rose 2 per cent on the prospect of a sale yesterday, even though P&amp;G said the report, on Bloomberg, was “speculation”</p>
+ <!-- Optional photo credits -->
+ </li>
+ <li data-gallery-legend="50">
+ <h2>
+ <span class="counter">50/50</span>
+ <!-- Optional photo title -->
+ Blackpool pier is on sale for £12.6m </h2>
+ <!-- Optional photo caption -->
+ <p>Blackpool’s central pier has been put up for sale by its owner Cuerden as the attractions organiser looks to restructure its operations. The group is asking for offers of about £12.6m for a package of three piers – including Blackpool’s 19th-century central and southern piers and a third in Landudno in Wales </p>
+ <!-- Optional photo credits -->
+ <p class="credits">Getty</p>
+ </li>
+ </ul>
+ <div class="ad-mpu mpu5-container">
+ </div>
+ </div>
+ </div>
+ <!-- END scald=3739501 -->
+ </div>
+ </div>
+
+ <h3>6. Mini bars almost always lose money</h3>
+
+ <p>Despite the snacks in the minibar seeming like the most overpriced food you have ever seen, hotel owners are still struggling to make a profit from those snacks. "Minibars almost always lose money, even when they charge $10 for a Diet Coke,” Sharon said.</p>
+
+ <h3> </h3>
+
+ <div class="dnd-widget-wrapper context-sdl_editor_representation type-image">
+ <div class="dnd-atom-rendered">
+ <!-- scald=2898866:sdl_editor_representation -->
+ <div class="image"><img src="https://static.independent.co.uk/s3fs-public/styles/story_medium/public/thumbnails/image/2014/03/13/16/agenda7.jpg" alt="agenda7.jpg" title="agenda7.jpg" width="564" height="423" /></div>
+ <!-- END scald=2898866 -->
+ </div>
+ <div class="dnd-caption-wrapper">
+ <!--copyright=2898866-->Towels should always be cleaned between stays
+ <!--END copyright=2898866-->
+ </div>
+ </div>
+
+ <p>7. Always made sure the hand towels are clean when you arrive</p>
+
+ <p>Forrest Jones made a discovery when he was helping out with the housekeepers. “You know where you almost always find a hand towel in any recently-vacated hotel room that was occupied by a guy? On the floor, next to the bed, about halfway down, maybe a little toward the foot of the bed. Same spot in the floor, next to almost every bed occupied by a man, in every room. I'll leave the rest to your imagination,” he said.</p>
+ <meta itemprop="datePublished" content="2016-05-08T10:11:51+01:00" />
+ <ul class="inline-pipes-list">
+ <li>
+ More about:
+ </li>
+ <li><a itemprop="keywords" href="/topic/Hotels">Hotels</a></li>
+ <li><a itemprop="keywords" href="/topic/Hygiene">Hygiene</a></li>
+ </ul>
+ <div id="gigya-share-btns-2" gigid="showShareBarUI" style="visibility: visible;">
+ <div class="gig-bar-container gig-share-bar-container">
+ <table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td style="vertical-align:middle; white-space:nowrap;zoom:1;">
+ <div class="gig-button-container gig-button-container-count-none gig-button-container-facebook gig-button-container-facebook-count-none gig-share-button-container gig-button-container-horizontal">
+ <div class="gig-button gig-share-button gig-button-up gig-button-count-none" id="gigya-share-btns-2-reaction0" title="Share on Facebook" alt="Share on Facebook" onclick="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-2'].buttonInstances['gigya-share-btns-2-reaction0'].onClick()" onmouseover="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-2'].buttonInstances['gigya-share-btns-2-reaction0'].changeState('over')" onmouseout="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-2'].buttonInstances['gigya-share-btns-2-reaction0'].changeState('up')">
+ <table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td id="gigya-share-btns-2-reaction0-left"></td>
+ <td id="gigya-share-btns-2-reaction0-icon" style="zoom:1;vertical-align:middle;text-align:left;background-repeat:repeat-x;"><img id="gigya-share-btns-2-reaction0-icon_img" src="/sites/all/themes/ines_themes/independent_theme/img/facebook.png" alt="" /></td>
+ <td id="gigya-share-btns-2-reaction0-right"></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </td>
+ <td style="vertical-align:middle; white-space:nowrap;zoom:1;">
+ <div class="gig-button-container gig-button-container-count-none gig-button-container-twitter gig-button-container-twitter-count-none gig-share-button-container gig-button-container-horizontal">
+ <div class="gig-button gig-share-button gig-button-up gig-button-count-none" id="gigya-share-btns-2-reaction1" title="Share on Twitter" alt="Share on Twitter" onclick="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-2'].buttonInstances['gigya-share-btns-2-reaction1'].onClick()" onmouseover="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-2'].buttonInstances['gigya-share-btns-2-reaction1'].changeState('over')" onmouseout="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-2'].buttonInstances['gigya-share-btns-2-reaction1'].changeState('up')">
+ <table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td id="gigya-share-btns-2-reaction1-left"></td>
+ <td id="gigya-share-btns-2-reaction1-icon" style="zoom:1;vertical-align:middle;text-align:left;background-repeat:repeat-x;"><img id="gigya-share-btns-2-reaction1-icon_img" src="/sites/all/themes/ines_themes/independent_theme/img/twitter.png" alt="" /></td>
+ <td id="gigya-share-btns-2-reaction1-right"></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </td>
+ <td style="vertical-align:middle; white-space:nowrap;zoom:1;">
+ <div class="gig-button-container gig-button-container-count-none gig-button-container-whatsapp gig-button-container-whatsapp-count-none gig-share-button-container gig-button-container-horizontal">
+ <div class="gig-button gig-share-button gig-button-up gig-button-count-none" id="gigya-share-btns-2-reaction2" title="WhatsApp" alt="WhatsApp" onclick="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-2'].buttonInstances['gigya-share-btns-2-reaction2'].onClick()" onmouseover="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-2'].buttonInstances['gigya-share-btns-2-reaction2'].changeState('over')" onmouseout="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-2'].buttonInstances['gigya-share-btns-2-reaction2'].changeState('up')">
+ <table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td id="gigya-share-btns-2-reaction2-left"></td>
+ <td id="gigya-share-btns-2-reaction2-icon" style="zoom:1;vertical-align:middle;text-align:left;background-repeat:repeat-x;"><img id="gigya-share-btns-2-reaction2-icon_img" src="/sites/all/themes/ines_themes/independent_theme/img/whatsapp.png" alt="" /></td>
+ <td id="gigya-share-btns-2-reaction2-right"></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </td>
+ <td style="vertical-align:middle; white-space:nowrap;zoom:1;">
+ <div class="gig-button-container gig-button-container-count-none gig-button-container-email gig-button-container-email-count-none gig-share-button-container gig-button-container-horizontal">
+ <div class="gig-button gig-share-button gig-button-up gig-button-count-none" id="gigya-share-btns-2-reaction3" title="email" alt="email" onclick="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-2'].buttonInstances['gigya-share-btns-2-reaction3'].onClick()" onmouseover="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-2'].buttonInstances['gigya-share-btns-2-reaction3'].changeState('over')" onmouseout="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-2'].buttonInstances['gigya-share-btns-2-reaction3'].changeState('up')">
+ <table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td id="gigya-share-btns-2-reaction3-left"></td>
+ <td id="gigya-share-btns-2-reaction3-icon" style="zoom:1;vertical-align:middle;text-align:left;background-repeat:repeat-x;"><img id="gigya-share-btns-2-reaction3-icon_img" src="/sites/all/themes/ines_themes/independent_theme/img/email.png" alt="" /></td>
+ <td id="gigya-share-btns-2-reaction3-right"></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </td>
+ <td style="vertical-align:middle; white-space:nowrap;zoom:1;">
+ <div class="gig-button-container gig-button-container-count-right gig-button-container-share gig-button-container-share-count-right gig-share-button-container gig-button-container-horizontal">
+ <table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td class="gig-button-td">
+ <div class="gig-button gig-share-button gig-button-up gig-button-count-right" id="gigya-share-btns-2-reaction4" title="Share" alt="Share" onclick="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-2'].buttonInstances['gigya-share-btns-2-reaction4'].onClick()" onmouseover="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-2'].buttonInstances['gigya-share-btns-2-reaction4'].changeState('over')" onmouseout="gigya.services.socialize.plugins.reactions.instances['gigya-share-btns-2'].buttonInstances['gigya-share-btns-2-reaction4'].changeState('up')">
+ <table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td id="gigya-share-btns-2-reaction4-left"></td>
+ <td id="gigya-share-btns-2-reaction4-icon" style="zoom:1;vertical-align:middle;text-align:left;background-repeat:repeat-x;"><img id="gigya-share-btns-2-reaction4-icon_img" src="/sites/all/themes/ines_themes/ines_theme/img/blank.gif" alt="" /></td>
+ <td id="gigya-share-btns-2-reaction4-right"></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </td>
+ <td>
+ <div class="gig-counter gig-share-counter gig-counter-$rid gig-counter-right" id="gigya-share-btns-2-reaction4-count" style="display:none; background-image:url('http://cdn3.gigya.com/gs/GetSprite.ashx?path=%2FshareBar%2Fbutton%2Fbutton%5Bleft%2Cright%5DImg%5Bup%2Cover%5D.png%7C2%2C20%5E%2FshareBar%2Fbutton%2FrightCountImg.png%7C38%2C20%5E%2Fsharebar%2Ficons%2F%5Bfacebook%2Ctwitter%2Cwhatsapp%2Cemail%2Cshare%5D.png%7C16%2C16');background-position:-8px 0px;width: 38px;height: 20px;line-height: 20px;background-repeat:no-repeat;position:static;;text-align:center;vertical-align:middle;"><span class="gig-counter-text gig-share-counter-text gig-counter-text-right gig-share-counter-text-right" id="gigya-share-btns-2-reaction4-count-value"></span></div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <a href="/syndication/reuse-permision-form?url=http://www.independent.co.uk/news/business/news/seven-secrets-that-hotel-owners-dont-want-you-to-know-10506160.html" target="_blank" class="syndication-btn"><img src="/sites/all/themes/ines_themes/independent_theme/img/reuse.png" width="25" />Reuse content</a>
+ </div>
+
+ <div class="box-comments">
+ </div>
+
+ <div class="taboola">
+ <div id="taboola-below-article-thumbnails" class=" trc_related_container trc_spotlight_widget trc_elastic trc_elastic_trc_32140 " data-placement-name="Below Article Thumbnails">
+ <div class="trc_rbox_container" style="display: block;">
+ <div>
+ <div id="trc_wrapper_32140" class="trc_rbox ab_thumbnails-d_row-read-more trc-content-sponsored " style="overflow: hidden; display: block;">
+ <div id="trc_header_32140" class="trc_rbox_header trc_rbox_border_elm">
+ <div class="trc_header_ext">
+ <div class="logoDiv link-adc "><a class="trc_desktop_adc_link trc_attribution_position_top" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=eslmedia-theindependent&amp;utm_medium=referral&amp;utm_content=ab_thumbnails-d_row-read-more:Below%20Article%20Thumbnails:" target="_blank"><span class="trc_adc_wrapper"><span class="trc_adc_s_logo"></span> </span><span class="trc_logos_v_align"> </span></a><a class="trc_mobile_adc_link trc_attribution_position_top" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=eslmedia-theindependent&amp;utm_medium=referral&amp;utm_content=ab_thumbnails-d_row-read-more:Below%20Article%20Thumbnails:" target="_blank"><span class="trc_adc_wrapper"><span class="trc_adc_s_logo"></span> </span><span class="trc_logos_v_align"> </span></a></div>
+ <div class="logoDiv link-attribution "><a class="trc_desktop_attribution_link trc_attribution_position_top" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=eslmedia-theindependent&amp;utm_medium=referral&amp;utm_content=ab_thumbnails-d_row-read-more:Below%20Article%20Thumbnails:" target="_blank"><span>by Taboola</span><span class="trc_logos_v_align"> </span></a><a class="trc_mobile_attribution_link trc_attribution_position_top" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=eslmedia-theindependent&amp;utm_medium=referral&amp;utm_content=ab_thumbnails-d_row-read-more:Below%20Article%20Thumbnails:" target="_blank"><span>by Taboola</span><span class="trc_logos_v_align"> </span></a></div>
+ <div class="logoDiv link-disclosure attribution-disclosure-link-sponsored"><a class="trc_desktop_disclosure_link trc_attribution_position_top" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=eslmedia-theindependent&amp;utm_medium=referral&amp;utm_content=ab_thumbnails-d_row-read-more:Below%20Article%20Thumbnails:" target="_blank"><span>Sponsored Links</span><span class="trc_logos_v_align"> </span></a><a class="trc_mobile_disclosure_link trc_attribution_position_top" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=eslmedia-theindependent&amp;utm_medium=referral&amp;utm_content=ab_thumbnails-d_row-read-more:Below%20Article%20Thumbnails:" target="_blank"><span>Sponsored Links</span><span class="trc_logos_v_align"> </span></a></div>
+ <div class="logoDiv link-disclosure attribution-disclosure-link-hybrid"><a class="trc_desktop_disclosure_link trc_attribution_position_top" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=eslmedia-theindependent&amp;utm_medium=referral&amp;utm_content=ab_thumbnails-d_row-read-more:Below%20Article%20Thumbnails:" target="_blank"><span>Promoted Links</span><span class="trc_logos_v_align"> </span></a><a class="trc_mobile_disclosure_link trc_attribution_position_top" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=eslmedia-theindependent&amp;utm_medium=referral&amp;utm_content=ab_thumbnails-d_row-read-more:Below%20Article%20Thumbnails:" target="_blank"><span>Promoted Links</span><span class="trc_logos_v_align"> </span></a></div>
+ </div><span class="trc_rbox_header_span"></span></div>
+ <div id="outer_32140" class="trc_rbox_outer">
+ <div id="rbox-t2m" class="trc_rbox_div trc_rbox_border_elm">
+ <div id="internal_trc_32140">
+ <div data-item-id="~~V1~~3564442357467433505~~v8p6g0t5RiY5W4t_nJFmLWhIoS99L-xBVvPXnmcRWlmx0zpqFuspPNx5ZviG_F2BA_C9mMkaN3ADM-tWVt4Olg" data-item-title="1,000,000 are using this app to learn a new language" data-item-thumb="http://cdn.taboolasyndication.com/libtrc/static/thumbnails/1bbb02d90231ce627b085dd35df34650.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem videoCube_1_child trc-first-recommendation trc-spotlight-first-recommendation trc_excludable ">
+ <a title="1,000,000 are using this app to learn a new language" href="https://go.babbel.com/engmag-a153-vid-bv-millionusers-cd-xo-tb/1_eng_tab_cd?utm_source=taboola&amp;utm_medium=CON&amp;utm_campaign=cd_engall_gen_cxo_millionusers&amp;utm_term=eslmedia-theindependent&amp;utm_content=1%2C000%2C000+are+using+this+app+to+learn+a+new+language" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;http://images.taboola.com/taboola/image/fetch/dpr_2.0%2Cf_jpg%2Cq_80%2Ch_150%2Cw_179%2Cc_fill%2Cg_faces%2Ce_sharpen/http%3A//cdn.taboolasyndication.com/libtrc/static/thumbnails/1bbb02d90231ce627b085dd35df34650.jpg&quot;);"><span class="thumbnail-overlay"></span><span class="branding">Babbel</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="1,000,000 are using this app to learn a new language" href="https://go.babbel.com/engmag-a153-vid-bv-millionusers-cd-xo-tb/1_eng_tab_cd?utm_source=taboola&amp;utm_medium=CON&amp;utm_campaign=cd_engall_gen_cxo_millionusers&amp;utm_term=eslmedia-theindependent&amp;utm_content=1%2C000%2C000+are+using+this+app+to+learn+a+new+language" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">1,000,000 are using this app to learn a new language</span><span class="branding">Babbel</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~8127807913599977156~~DFUACUkEpKl3Psu0VW-o0KUEo1XjB8J7MKkOl_ek2ycC5xsnLMQkNbbO3QBcrJMnA_C9mMkaN3ADM-tWVt4Olg" data-item-title="This Is The Most Addicting Game Of The Year" data-item-thumb="https://console.brax-cdn.com/creatives/041ca465-399e-4bcf-9b7d-edb6b5c8d972/_A81D540B7D1F554D73FA0BEEF6C88AB667EBD6D42C6EBAC815_pimgpsh_fullsize_distr_22d657f0cf87e28c2dd9ce376f09725b.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem videoCube_2_child trc_excludable ">
+ <a title="This Is The Most Addicting Game Of The Year" href="http://plarium.com/play/en/soldiers/top_g?adCampaign=90568&amp;adPixel=taboola_fr&amp;publisherID=eslmedia-theindependent" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;http://images.taboola.com/taboola/image/fetch/dpr_2.0%2Cf_jpg%2Cq_80%2Ch_150%2Cw_179%2Cc_fill%2Cg_faces%2Ce_sharpen/https%3A//console.brax-cdn.com/creatives/041ca465-399e-4bcf-9b7d-edb6b5c8d972/_A81D540B7D1F554D73FA0BEEF6C88AB667EBD6D42C6EBAC815_pimgpsh_fullsize_distr_22d657f0cf87e28c2dd9ce376f09725b.jpg&quot;);"><span class="thumbnail-overlay"></span><span class="branding">Soldiers: Free Online Game</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="This Is The Most Addicting Game Of The Year" href="http://plarium.com/play/en/soldiers/top_g?adCampaign=90568&amp;adPixel=taboola_fr&amp;publisherID=eslmedia-theindependent" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">This Is The Most Addicting Game Of The Year</span><span class="branding">Soldiers: Free Online Game</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~-3225717488342932989~~4Tp8HdrlGiqFcU1S8OdBb881kwABPLdtHBoOZHIScDdNkFsVyn0sUO0xvZ_Sh02fA_C9mMkaN3ADM-tWVt4Olg" data-item-title="You Don&amp;#39;t Need to Remember You Passwords Anymore Thanks to This Device" data-item-thumb="http://cdn.taboolasyndication.com/libtrc/static/thumbnails/c85035a626b8cad889a03473ea3d2f7e.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem videoCube_3_child trc_excludable ">
+ <a title="You Don't Need to Remember You Passwords Anymore Thanks to This Device" href="http://clknew.com/path/lp.php?trvid=10096&amp;trvx=75632ce9&amp;cid=5&amp;utm_term=eslmedia-theindependent" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;http://images.taboola.com/taboola/image/fetch/dpr_2.0%2Cf_jpg%2Cq_80%2Ch_150%2Cw_179%2Cc_fill%2Cg_faces%2Ce_sharpen/http%3A//cdn.taboolasyndication.com/libtrc/static/thumbnails/c85035a626b8cad889a03473ea3d2f7e.jpg&quot;);"><span class="thumbnail-overlay"></span><span class="branding">Everykey</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="You Don't Need to Remember You Passwords Anymore Thanks to This Device" href="http://clknew.com/path/lp.php?trvid=10096&amp;trvx=75632ce9&amp;cid=5&amp;utm_term=eslmedia-theindependent" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">You Don't Need to Remember You Passwords Anymore T<span>…</span></span><span class="branding">Everykey</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~-4283570402677082943~~f6N2pmFUrwF7EZK1ym9tPg0YPLCrVt54JIK-WgGqlCVBatLOuf0BlFLqsT3HV_1vA_C9mMkaN3ADM-tWVt4Olg" data-item-title="Tiny Device Turns Old Computer into New Fast PC" data-item-thumb="http://cdn.taboolasyndication.com/libtrc/static/thumbnails/9eafa37e57266d2a8172fb3ae26ce46d.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem videoCube_4_child trc_excludable ">
+ <a title="Tiny Device Turns Old Computer into New Fast PC" href="http://trknx.com/path/lp.php?trvid=10076&amp;trvx=89afd736&amp;cid=7&amp;utm_term=eslmedia-theindependent" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;http://images.taboola.com/taboola/image/fetch/dpr_2.0%2Cf_jpg%2Cq_80%2Ch_150%2Cw_179%2Cc_fill%2Cg_faces%2Ce_sharpen/http%3A//cdn.taboolasyndication.com/libtrc/static/thumbnails/9eafa37e57266d2a8172fb3ae26ce46d.jpg&quot;);"><span class="thumbnail-overlay"></span><span class="branding">Xtra-PC</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Tiny Device Turns Old Computer into New Fast PC" href="http://trknx.com/path/lp.php?trvid=10076&amp;trvx=89afd736&amp;cid=7&amp;utm_term=eslmedia-theindependent" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">Tiny Device Turns Old Computer into New Fast PC</span><span class="branding">Xtra-PC</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~-2039182627798609380~~QZQ9W8k9o0rTRVky8qkYKJcP646jYXmr5TNqtyO4Cy6noS-QDNE4lgErPvQIvkJTA_C9mMkaN3ADM-tWVt4Olg" data-item-title="Are you a strategic thinker? Test your skills with millions of addicted players!" data-item-thumb="https://console.brax-cdn.com/creatives/041ca465-399e-4bcf-9b7d-edb6b5c8d972/Horus_b38a67ecffc4d0bfa9f9e47fc5ed37d1.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem videoCube_5_child trc_excludable ">
+ <a title="Are you a strategic thinker? Test your skills with millions of addicted players!" href="http://plarium.com/play/en/sparta/017_armies_hybrid_anim_g?plid=83495&amp;pxl=taboola_fr&amp;publisherID=eslmedia-theindependent" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;http://images.taboola.com/taboola/image/fetch/dpr_2.0%2Cf_jpg%2Cq_80%2Ch_150%2Cw_179%2Cc_fill%2Cg_faces%2Ce_sharpen/https%3A//console.brax-cdn.com/creatives/041ca465-399e-4bcf-9b7d-edb6b5c8d972/Horus_b38a67ecffc4d0bfa9f9e47fc5ed37d1.jpg&quot;);"><span class="thumbnail-overlay"></span><span class="branding">Sparta Free Online Game</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Are you a strategic thinker? Test your skills with millions of addicted players!" href="http://plarium.com/play/en/sparta/017_armies_hybrid_anim_g?plid=83495&amp;pxl=taboola_fr&amp;publisherID=eslmedia-theindependent" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">Are you a strategic thinker? Test your skills with millions of addict<span>…</span></span><span class="branding">Sparta Free Online Game</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~-6478236510062505434~~jPJUcHWkR_C6Uo40tIdjrraUjkdJmlr0GDnf7y85u1nUy1l2tU_0WV2FhdYLWJ27A_C9mMkaN3ADM-tWVt4Olg" data-item-title="Here Are the 15 Presidents with the Lowest IQ Scores" data-item-thumb="https://s.graphiq.com/sites/default/files/stories/t4/George_W_Bush_5404_5392.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem photoItem videoCube_6_child trc_excludable ">
+ <a title="Here Are the 15 Presidents with the Lowest IQ Scores" href="http://us-presidents.insidegov.com/stories/5392/least-intelligent-presidents?utm_medium=content.rec&amp;utm_source=taboola&amp;utm_campaign=i3.cr.tb.dt.5392" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;http://images.taboola.com/taboola/image/fetch/dpr_2.0%2Cf_jpg%2Cq_80%2Ch_150%2Cw_179%2Cc_fill%2Cg_faces%2Ce_sharpen/https%3A//s.graphiq.com/sites/default/files/stories/t4/George_W_Bush_5404_5392.jpg&quot;);"><span class="thumbnail-overlay"></span><span class="branding">InsideGov — By Graphiq</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Here Are the 15 Presidents with the Lowest IQ Scores" href="http://us-presidents.insidegov.com/stories/5392/least-intelligent-presidents?utm_medium=content.rec&amp;utm_source=taboola&amp;utm_campaign=i3.cr.tb.dt.5392" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">Here Are the 15 Presidents with the Lowest IQ Scores</span><span class="branding">InsideGov — By Graphiq</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~6722066516164028540~~uw4UOVGG--92XMAu0TXE4x7LIF4d1ByTLT0fOQrMbGn0GxCA-5kkWJhkTvGdLPH_A_C9mMkaN3ADM-tWVt4Olg" data-item-title="That&amp;#39;s How You Find Super Cheap Hotels!" data-item-thumb="http://cdn.taboolasyndication.com/libtrc/static/thumbnails/ab513a98e63c65c05674ef6ceb9eb5e5.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem videoCube_7_child trc_excludable ">
+ <a title="That's How You Find Super Cheap Hotels!" href="http://www.save70.com/hotels/?utm_source=taboola_save70_hotels_4&amp;utm_medium=cpc&amp;utm_campaign=save70_hotels&amp;utm_medium=eslmedia-theindependent" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;http://images.taboola.com/taboola/image/fetch/dpr_2.0%2Cf_jpg%2Cq_80%2Ch_150%2Cw_179%2Cc_fill%2Cg_faces%2Ce_sharpen/http%3A//cdn.taboolasyndication.com/libtrc/static/thumbnails/ab513a98e63c65c05674ef6ceb9eb5e5.jpg&quot;);"><span class="thumbnail-overlay"></span><span class="branding">Save70</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="That's How You Find Super Cheap Hotels!" href="http://www.save70.com/hotels/?utm_source=taboola_save70_hotels_4&amp;utm_medium=cpc&amp;utm_campaign=save70_hotels&amp;utm_medium=eslmedia-theindependent" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">That's How You Find Super Cheap Hotels!</span><span class="branding">Save70</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~2764352664306511535~~dsMnXsKiw4uD9yNyvkmMagiDfNCJqyshAOe3v9kFVCZ3x-4qiwxTcnzpvzPPLrsdA_C9mMkaN3ADM-tWVt4Olg" data-item-title="The Silent Killer: Can Acid Reflux Become A Life Threatening Condition?" data-item-thumb="http://onlinehealth.wiki/wp-content/uploads/hpylori-220x162.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem videoCube_8_child trc_excludable ">
+ <a title="The Silent Killer: Can Acid Reflux Become A Life Threatening Condition?" href="http://onlinehealth.wiki/body/a-new-theory-about-how-acid-reflux-is-a-lot-worse-than-you-think?utm_source=taboola&amp;utm_campaign=108909&amp;utm_medium=eslmedia-theindependent" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;http://images.taboola.com/taboola/image/fetch/dpr_2.0%2Cf_jpg%2Cq_80%2Ch_150%2Cw_179%2Cc_fill%2Cg_faces%2Ce_sharpen/http%3A//onlinehealth.wiki/wp-content/uploads/hpylori-220x162.jpg&quot;);"><span class="thumbnail-overlay"></span><span class="branding">Rapid Reflux Relief eBook</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="The Silent Killer: Can Acid Reflux Become A Life Threatening Condition?" href="http://onlinehealth.wiki/body/a-new-theory-about-how-acid-reflux-is-a-lot-worse-than-you-think?utm_source=taboola&amp;utm_campaign=108909&amp;utm_medium=eslmedia-theindependent" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">The Silent Killer: Can Acid Reflux Become A Life Threatening Condi<span>…</span></span><span class="branding">Rapid Reflux Relief eBook</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~-8884682040486427095~~OirM3nR_ImtfBvi3XXtobkZTRbABKUr5m-JkFZ80-0ni5KSke8x3F5X7iOWdl_HiA_C9mMkaN3ADM-tWVt4Olg" data-item-title="What will cognitive computing change?" data-item-thumb="http://capgemini.ft.com/partners/capgemini-FT/cacheDirectory/HTMLcontributions/img/2255_LANDSCAPE_FT.jpeg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem videoCube_9_child trc_excludable ">
+ <a title="What will cognitive computing change?" href="http://capgemini.ft.com/trend-checking/what-will-cognitive-computing-change-_f-87.html?utm_source=TaboolaWW&amp;utm_medium=marketing&amp;utm_campaign=capgemini&amp;utm_content=eslmedia-theindependent" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;http://images.taboola.com/taboola/image/fetch/dpr_2.0%2Cf_jpg%2Cq_80%2Ch_150%2Cw_179%2Cc_fill%2Cg_faces%2Ce_sharpen/http%3A//capgemini.ft.com/partners/capgemini-FT/cacheDirectory/HTMLcontributions/img/2255_LANDSCAPE_FT.jpeg&quot;);"><span class="thumbnail-overlay"></span><span class="branding">Financial Times for CapGemini</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="What will cognitive computing change?" href="http://capgemini.ft.com/trend-checking/what-will-cognitive-computing-change-_f-87.html?utm_source=TaboolaWW&amp;utm_medium=marketing&amp;utm_campaign=capgemini&amp;utm_content=eslmedia-theindependent" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">What will cognitive computing change?</span><span class="branding">Financial Times for CapGemini</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~-1783400042781980055~~MTo8SNlyVheylp8KTjC4J-2spfM9rEOLbr7Z8olBl7TdpCrP1MaCuz6TfK3F_dVGA_C9mMkaN3ADM-tWVt4Olg" data-item-title="Here&amp;#39;s Why These Are the Most Dangerous Countries for Travel" data-item-thumb="https://s3.graphiq.com/sites/default/files/5246/media/images/_12278955.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem videoCube_10_child trc_excludable ">
+ <a title="Here's Why These Are the Most Dangerous Countries for Travel" href="http://global-diseases.healthgrove.com/stories/17395/most-dangerous-countries-travel-africa-europe?utm_source=taboola&amp;utm_medium=content.rec&amp;utm_campaign=i3.cr.tb.dt.11093" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;http://images.taboola.com/taboola/image/fetch/dpr_2.0%2Cf_jpg%2Cq_80%2Ch_150%2Cw_179%2Cc_fill%2Cg_faces%2Ce_sharpen/https%3A//s3.graphiq.com/sites/default/files/5246/media/images/_12278955.jpg&quot;);"><span class="thumbnail-overlay"></span><span class="branding">HealthGrove — By Graphiq</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Here's Why These Are the Most Dangerous Countries for Travel" href="http://global-diseases.healthgrove.com/stories/17395/most-dangerous-countries-travel-africa-europe?utm_source=taboola&amp;utm_medium=content.rec&amp;utm_campaign=i3.cr.tb.dt.11093" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">Here's Why These Are the Most Dangerous Countries for Travel</span><span class="branding">HealthGrove — By Graphiq</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~-8621314997629165187~~hxK8GfHKc2pk3TkPM5YecmWLwSXvTwmT-yHv368tPe7HEdgLFmL7IS-sM-7EnZSeA_C9mMkaN3ADM-tWVt4Olg" data-item-title="Ranking Every Tom Hanks Film from Worst to First" data-item-thumb="https://s.graphiq.com/sites/default/files/980/media/images/_12444718.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem videoCube_11_child trc_excludable ">
+ <a title="Ranking Every Tom Hanks Film from Worst to First" href="http://movies.prettyfamous.com/stories/18906/ranking-tom-hanks-films?utm_source=taboola&amp;utm_medium=content.rec&amp;utm_campaign=i3.cr.tb.dt.11141" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;http://images.taboola.com/taboola/image/fetch/dpr_2.0%2Cf_jpg%2Cq_80%2Ch_150%2Cw_179%2Cc_fill%2Cg_faces%2Ce_sharpen/https%3A//s.graphiq.com/sites/default/files/980/media/images/_12444718.jpg&quot;);"><span class="thumbnail-overlay"></span><span class="branding">PrettyFamous — By Graphiq</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Ranking Every Tom Hanks Film from Worst to First" href="http://movies.prettyfamous.com/stories/18906/ranking-tom-hanks-films?utm_source=taboola&amp;utm_medium=content.rec&amp;utm_campaign=i3.cr.tb.dt.11141" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">Ranking Every Tom Hanks Film from Worst to First</span><span class="branding">PrettyFamous — By Graphiq</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~-8797806345119007460~~rYdCbDDpF90VMDzu7rm7s2aGE8SjuYTSNgGySWOn6y7xxeVSADXRB4LxN3uHWpU_A_C9mMkaN3ADM-tWVt4Olg" data-item-title="Taliban Names Its New Leader" data-item-thumb="http://d2cg8n0o1ao5pb.cloudfront.net/api/v2/img/574585c4e4b0f81a7f1279e5-1464174018605?location=LANDSCAPE" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem videoCube_12_child trc_excludable ">
+ <a title="Taliban Names Its New Leader" href="http://www.reuters.tv/vlF/2016/05/26/taliban-names-its-new-leader?utm_source=taboola_int&amp;utm_medium=referral&amp;utm_term=eslmedia-theindependent" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;http://images.taboola.com/taboola/image/fetch/dpr_2.0%2Cf_jpg%2Cq_80%2Ch_150%2Cw_179%2Cc_fill%2Cg_faces%2Ce_sharpen/http%3A//d2cg8n0o1ao5pb.cloudfront.net/api/v2/img/574585c4e4b0f81a7f1279e5-1464174018605%3Flocation%3DLANDSCAPE&quot;);"><span class="thumbnail-overlay"></span><span class="branding">Reuters TV</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Taliban Names Its New Leader" href="http://www.reuters.tv/vlF/2016/05/26/taliban-names-its-new-leader?utm_source=taboola_int&amp;utm_medium=referral&amp;utm_term=eslmedia-theindependent" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">Taliban Names Its New Leader</span><span class="branding">Reuters TV</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="trc_clearer"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="taboola-below-article-thumbnails-2nd" class=" trc_related_container trc_spotlight_widget">
+ <div class="trc_rbox_container" style="display: none;">
+ <div>
+ <div id="trc_wrapper_23342" class="trc_rbox organic-thumbnails-d" style="overflow: hidden; display: none;"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div id="most-popular-mobile" class="most-popular-mobile"></div>
+
+ <div class="partner-slots">
+ <div class="es-partners-slot parter-slot-1">
+ <div id="partner1"> </div>
+ </div>
+ <div class="es-partners-slot parter-slot-2">
+ <div id="partner2"> </div>
+ </div>
+ </div>
+
+ <div class="box-comments">
+ <a href="/profile?icn=_IND_news_UAS" class="email-signpost"><img src="/sites/all/themes/ines_themes/independent_theme/img/signposts/indy-news.jpg" alt="" style="max-width:560px" width="100%" /></a>
+ </div>
+
+ <div class="box-comments">
+ <h2 class="box-title">Comments</h2>
+ <div id="commentsDiv" style="width: 500px;" gigid="showCommentsUI" class="gig-comments-container" data-version="2">
+ <div class="gig-comments-composebox">
+ <div class="gig-composebox-error"></div>
+ <div class="gig-composebox-header">
+ <div class="gig-composebox-login">
+ <div class="gig-composebox-social-login gig-comments-button" style="display: none;">Login
+ <div class="gig-composebox-login-icon"></div>
+ <div class="gig-composebox-login-drop-icon"></div>
+ </div>
+ <div class="gig-composebox-site-login">Login</div>
+ <div class="gig-composebox-or" style="display: none;">Or</div>
+ <div class="gig-composebox-guest-login gig-comments-button" style="display: none;">Guest</div>
+ </div>
+ <div class="gig-composebox-header-right">
+ <div class="gig-composebox-follow" style="display: none;"></div>
+ <div class="gig-composebox-close"></div>
+ </div>
+ <div class="gig-composebox-header-left">
+ <div class="gig-composebox-title" style="display: none;"></div>
+ <div class="gig-composebox-logout" style="display: none;">(<span>Logout</span>)</div>
+ <div class="gig-composebox-ratings" style="display: none;"></div>
+ </div>
+ </div>
+ <div class="gig-composebox-photo" style=""><img class="gig-comment-img" alt="" src="http://cdn3.gigya.com/gs/i/comments2/Avatar_empty_x1.png" style="vertical-align: top; height: 37px;" /></div>
+ <div class="gig-composebox-data">
+ <div class="gig-composebox-summary" style="display: none;"><input class="gig-composebox-summary-input gig-comments-placeholder" data-placeholder="Summary" /></div>
+ <div class="gig-composebox-editor">
+ <ul class="gig-composebox-sidebar"></ul>
+ <div class="gig-composebox-textarea" data-placeholder="Write a comment" contenteditable="true"></div>
+ <p></p>
+ </div>
+ <div class="gig-composebox-mediaItem"></div>
+ <div class="gig-composebox-footer">
+ <div class="gig-composebox-footer-right">
+ <div class="gig-composebox-cancel gig-comments-button" style="display: none;">Cancel</div>
+ <div class="gig-composebox-post gig-comments-button">Post</div>
+ </div>
+ <div class="gig-composebox-footer-left">
+ <div class="gig-composebox-share">
+ <div class="gig-composebox-share-text">Share:</div>
+ <div class="gig-composebox-share-providers">
+ <div class="gig-comments-share-provider gig-comments-share-provider-shown" style="background-image: url(&quot;http://cdn3.gigya.com/gs/i/comments2/shareToProviders/facebook_grey_x1.png&quot;);" data-provider="facebook">
+ <div class="gig-comments-share-provider-checkbox gig-comments-checkbox" data-provider="facebook"></div>
+ </div>
+ <div class="gig-comments-share-provider gig-comments-share-provider-shown" style="background-image: url(&quot;http://cdn3.gigya.com/gs/i/comments2/shareToProviders/twitter_grey_x1.png&quot;);" data-provider="twitter">
+ <div class="gig-comments-share-provider-checkbox gig-comments-checkbox" data-provider="twitter"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="gig-comments-header">
+ <div class="gig-comments-header-left">
+ <div class="gig-comments-count">0 Comments</div>
+ </div>
+ <ul class="gig-comments-header-right gig-comments-linksContainer">
+ <li class="gig-comments-sort" style="display: none;">Sort</li>
+ <li class="gig-comments-subscribe" title="Subscribe">Subscribe</li>
+ <li class="gig-comments-rss gig-comments-link-lastVisible"><a href="http://comments.US1.gigya.com/comments/rss/6115931/ArticleComments/a6658741">RSS</a></li>
+ </ul>
+ </div>
+ <div class="gig-comments-updates">
+ <div class="gig-comments-updates-text"></div>
+ <div class="gig-comments-updates-link"></div>
+ </div>
+ <div class="gig-comments-comments"></div>
+ <div class="gig-comments-more" style="display: none;"></div>
+ </div>
+
+ </div>
+
+ </div>
+
+ <div class="right-hand-column ">
+ <div class="sidebar">
+ <aside class="layout-component layout-component-mpu">
+ <div class="ad-mpu mpu-container mpu0-container">
+ <div id="mpu0">
+ <div id="google_ads_iframe_/71347885/_main_independent/in_news/in_business/in_news/in_news_article_3__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/71347885/_main_independent/in_news/in_business/in_news/in_news_article_3" title="3rd party ad content" name="google_ads_iframe_/71347885/_main_independent/in_news/in_business/in_news/in_news_article_3" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" frameborder="0" width="300" height="600"></iframe></div><iframe id="google_ads_iframe_/71347885/_main_independent/in_news/in_business/in_news/in_news_article_3__hidden__" title="" name="google_ads_iframe_/71347885/_main_independent/in_news/in_business/in_news/in_news_article_3__hidden__" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom; visibility: hidden; display: none;" frameborder="0" width="0" height="0"></iframe></div>
+ </div>
+ </aside>
+ <aside class="layout-component layout-component-i100" id="i100-0">
+ <div data-feed="/layout_component/api-i100">
+ <h3>
+ <a href="http://indy100.com/?utm_source=indy&amp;utm_medium=top5header&amp;utm_campaign=i100" target="_blank"><img src="https://static.independent.co.uk/static-assets/i100.png" /></a>
+ </h3>
+ <ul class="simple-news-list">
+ <li class="story">
+ <a href="https://www.indy100.com/article/barack-obama-uk-prime-minister-7410116?utm_source=indy&amp;utm_medium=top5&amp;utm_campaign=i100" target="_blank"><img class="image" data-original="https://static.independent.co.uk/s3fs-public/styles/story_medium/public/thumbnails/image/2016/11/10/16/gettyimages-456483418.jpg" src="https://static.independent.co.uk/s3fs-public/styles/story_medium/public/thumbnails/image/2016/11/10/16/gettyimages-456483418.jpg" style="display: block;" />
+ <h2>British people are pleading for Barack Obama to move to the UK and become Prime Minister</h2>
+ </a>
+ </li>
+ <li class="story">
+ <a href="https://www.indy100.com/article/hillary-clinton-lost-democrat-vote-donald-trump-president-elect-7418036?utm_source=indy&amp;utm_medium=top5&amp;utm_campaign=i100" target="_blank"><img class="image lazy" data-original="https://static.independent.co.uk/s3fs-public/styles/story_medium/public/thumbnails/image/2016/11/08/23/hillary-clinton-4.jpg" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" />
+ <h2>A top Hillary Clinton aide nailed exactly why she lost</h2>
+ </a>
+ </li>
+ <li class="story">
+ <a href="https://www.indy100.com/article/ryan-reynolds-twin-7418041?utm_source=indy&amp;utm_medium=top5&amp;utm_campaign=i100" target="_blank"><img class="image lazy" data-original="https://static.independent.co.uk/s3fs-public/styles/story_medium/public/thumbnails/image/2016/11/15/08/sc.jpg" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" />
+ <h2>Ryan Reynolds got roasted by his own 'twin brother' and it was hilarious</h2>
+ </a>
+ </li>
+ <li class="story">
+ <a href="https://www.indy100.com/article/barack-obama-donald-trump-president-election-latest-result-7406316?utm_source=indy&amp;utm_medium=top5&amp;utm_campaign=i100" target="_blank"><img class="image lazy" data-original="https://static.independent.co.uk/s3fs-public/styles/story_medium/public/thumbnails/image/2016/11/09/05/barackobama.jpg" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" />
+ <h2>This Barack Obama quote about Donald Trump is now more terrifying than ever</h2>
+ </a>
+ </li>
+ <li class="story">
+ <a href="https://www.indy100.com/article/this-woman-lost-almost-half-her-body-weight-in-less-than-a-year-7416956?utm_source=indy&amp;utm_medium=top5&amp;utm_campaign=i100" target="_blank"><img class="image lazy" data-original="https://static.independent.co.uk/s3fs-public/styles/story_medium/public/thumbnails/image/2016/02/02/10/womanscales_istock.jpg" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" />
+ <h2>This woman lost almost half her body weight in less than a year</h2>
+ </a>
+ </li>
+ </ul>
+ </div>
+ </aside>
+ <aside class="layout-component layout-component-most-popular article-list" id="most_popular-0">
+ <div data-feed="//www.independent.co.uk/layout_component/api-mmm">
+ <h2 class="box-title">Most Popular</h2>
+ <ul class="simple-news-list">
+ <li class="story">
+ <a href="/news/world/americas/ben-carson-no-experience-cabinet-role-donald-trump-government-ally-presidential-candidate-a7419226.html"><img class="image lazy" data-original="https://static.independent.co.uk/s3fs-public/styles/storylist/public/thumbnails/image/2016/03/10/18/Carson.jpg" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" />
+ <h2>Ben Carson turned down cabinet role as he said he had 'no experience'</h2>
+ </a>
+ </li>
+ <li class="story">
+ <a href="/environment/noam-chomsky-donald-trump-climate-change-denier-global-warming-race-to-disaster-republicans-most-a7418296.html"><img class="image lazy" data-original="https://static.independent.co.uk/s3fs-public/styles/storylist/public/thumbnails/image/2016/11/03/15/noam-chomsky.jpg" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" />
+ <h2>Chomsky: Trump's climate denial means humanity is racing to disaster</h2>
+ </a>
+ </li>
+ <li class="story">
+ <a href="/news/sweden-mansplaining-hotline-woman-get-to-report-patronising-male-colleagues-a7418491.html"><img class="image lazy" data-original="https://static.independent.co.uk/s3fs-public/styles/storylist/public/thumbnails/image/2016/11/15/11/woman-phone-hotline-getty.jpg" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" />
+ <h2>Swedish women get hotline to report mansplaining</h2>
+ </a>
+ </li>
+ <li class="story">
+ <a href="/news/uk/politics/brexit-vote-eu-referendum-not-legally-binding-supreme-court-legal-challenge-article-50-a7418706.html"><img class="image lazy" data-original="https://static.independent.co.uk/s3fs-public/styles/storylist/public/thumbnails/image/2016/11/15/14/supremecourtjpeg.jpg" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" />
+ <h2>EU referendum was 'not legally binding' says Supreme Court judge</h2>
+ </a>
+ </li>
+ <li class="story">
+ <a href="/news/people/michelle-obama-ape-in-heels-racist-facebook-a7418181.html"><img class="image lazy" data-original="https://static.independent.co.uk/s3fs-public/styles/storylist/public/thumbnails/image/2016/11/15/14/michelle-obama-thumbs.jpg" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" />
+ <h2>Michelle Obama called 'ape in heels' by government officials</h2>
+ </a>
+ </li>
+ </ul>
+ </div>
+ </aside>
+ <aside class="layout-component layout-component-taboola-single" id="taboola_single-0">
+ <div id="taboola-single-mpu-thumbnails" class=" trc_related_container trc_spotlight_widget trc_elastic trc_elastic_trc_39384 " data-placement-name="Right Rail Thumbnails">
+ <div class="trc_rbox_container" style="display: block;">
+ <div>
+ <div id="trc_wrapper_39384" class="trc_rbox thumbnails-k trc-content-sponsored " style="overflow: hidden; display: block;">
+ <div id="trc_header_39384" class="trc_rbox_header trc_rbox_border_elm">
+ <div class="trc_header_ext">
+ <div class="logoDiv link-disclosure attribution-disclosure-link-sponsored"><a class="trc_desktop_disclosure_link trc_attribution_position_top" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=eslmedia-theindependent&amp;utm_medium=referral&amp;utm_content=thumbnails-k:Right%20Rail%20Thumbnails:" target="_blank"><span>Sponsored Links</span><span class="trc_logos_v_align"> </span></a><a class="trc_mobile_disclosure_link trc_attribution_position_top" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=eslmedia-theindependent&amp;utm_medium=referral&amp;utm_content=thumbnails-k:Right%20Rail%20Thumbnails:" target="_blank"><span>Sponsored Links</span><span class="trc_logos_v_align"> </span></a></div>
+ <div class="logoDiv link-disclosure attribution-disclosure-link-hybrid"><a class="trc_desktop_disclosure_link trc_attribution_position_top" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=eslmedia-theindependent&amp;utm_medium=referral&amp;utm_content=thumbnails-k:Right%20Rail%20Thumbnails:" target="_blank"><span>Promoted Links</span><span class="trc_logos_v_align"> </span></a><a class="trc_mobile_disclosure_link trc_attribution_position_top" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=eslmedia-theindependent&amp;utm_medium=referral&amp;utm_content=thumbnails-k:Right%20Rail%20Thumbnails:" target="_blank"><span>Promoted Links</span><span class="trc_logos_v_align"> </span></a></div>
+ </div><span class="trc_rbox_header_span"></span></div>
+ <div id="outer_39384" class="trc_rbox_outer">
+ <div id="rbox-t2m" class="trc_rbox_div trc_rbox_border_elm">
+ <div id="internal_trc_39384">
+ <div data-item-id="~~V1~~62857942217602485~~4Tp8HdrlGiqFcU1S8OdBb881kwABPLdtHBoOZHIScDfElDTKjFfe873p233We1Lvlhf9hQnzo2y5LM4QM3xOkA" data-item-title="You Really Need to See This Military Grade Password Security Device" data-item-thumb="http://cdn.taboolasyndication.com/libtrc/static/thumbnails/a1c9d29af4c8375461234476b1e315dc.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem videoCube_1_child trc-first-recommendation trc-spotlight-first-recommendation trc_excludable ">
+ <a title="You Really Need to See This Military Grade Password Security Device" href="http://clknew.com/path/lp.php?trvid=10096&amp;trvx=75632ce9&amp;cid=13&amp;utm_term=eslmedia-theindependent" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;http://images.taboola.com/taboola/image/fetch/dpr_2.0%2Cf_jpg%2Cq_80%2Ch_150%2Cw_300%2Cc_fill%2Cg_faces%2Ce_sharpen/http%3A//cdn.taboolasyndication.com/libtrc/static/thumbnails/a1c9d29af4c8375461234476b1e315dc.jpg&quot;);"><span class="thumbnail-overlay"></span><span class="branding">Everykey</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="You Really Need to See This Military Grade Password Security Device" href="http://clknew.com/path/lp.php?trvid=10096&amp;trvx=75632ce9&amp;cid=13&amp;utm_term=eslmedia-theindependent" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">You Really Need to See This Military Grade Password Security Device</span><span class="branding">Everykey</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~-5433321548155071309~~DLlo2QYnPWmOmQs8dgFPbZHknowz0Kq-Xk_QlCSd2jM61vq1e6s9xJsGPsU1T_hTlhf9hQnzo2y5LM4QM3xOkA" data-item-title="Tiny Device Allows You To Track Anything (it&amp;#39;s Genius!)" data-item-thumb="http://cdn.taboolasyndication.com/libtrc/static/thumbnails/7f93d798a7436d4920501f1068ce2cb5.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem videoCube_2_child trc_excludable ">
+ <a title="Tiny Device Allows You To Track Anything (it's Genius!)" href="http://trknx.com/path/lp.php?trvid=10046&amp;trvx=82ed3095&amp;cid=55&amp;utm_term=eslmedia-theindependent" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;http://images.taboola.com/taboola/image/fetch/dpr_2.0%2Cf_jpg%2Cq_80%2Ch_150%2Cw_300%2Cc_fill%2Cg_faces%2Ce_sharpen/http%3A//cdn.taboolasyndication.com/libtrc/static/thumbnails/7f93d798a7436d4920501f1068ce2cb5.jpg&quot;);"><span class="thumbnail-overlay"></span><span class="branding">Trackr Bravo</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Tiny Device Allows You To Track Anything (it's Genius!)" href="http://trknx.com/path/lp.php?trvid=10046&amp;trvx=82ed3095&amp;cid=55&amp;utm_term=eslmedia-theindependent" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">Tiny Device Allows You To Track Anything (it's Genius!)</span><span class="branding">Trackr Bravo</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~-4066915967393823971~~_ReLu9t4HwFIuvWXXi38LPYUGJpPkT73cMKl1d3GL2POfZzus2LavzKe65fSGZfRlhf9hQnzo2y5LM4QM3xOkA" data-item-title="Hip-Hop Culture Can Teach Self-Determination And Agency To Anyone And Everyone" data-item-thumb="http://images5.aplus.com/uc-up/95a6028e-8aab-43d5-af0f-27db477ae8ec/95a6028e-8aab-43d5-af0f-27db477ae8ec.crop_1080x567_0,26.resize_1200x630.format_jpeg.inline_yes.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem videoCube_3_child trc_excludable ">
+ <a title="Hip-Hop Culture Can Teach Self-Determination And Agency To Anyone And Everyone" href="http://aplus.com/a/hip-hop-culture-teaches-self-determination-agency?utm_source=taboola&amp;utm_medium=referral" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;http://images.taboola.com/taboola/image/fetch/dpr_2.0%2Cf_jpg%2Cq_80%2Ch_150%2Cw_300%2Cc_fill%2Cg_faces%2Ce_sharpen/http%3A//images5.aplus.com/uc-up/95a6028e-8aab-43d5-af0f-27db477ae8ec/95a6028e-8aab-43d5-af0f-27db477ae8ec.crop_1080x567_0%2C26.resize_1200x630.format_jpeg.inline_yes.jpg&quot;);"><span class="thumbnail-overlay"></span><span class="branding">A Plus</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Hip-Hop Culture Can Teach Self-Determination And Agency To Anyone And Everyone" href="http://aplus.com/a/hip-hop-culture-teaches-self-determination-agency?utm_source=taboola&amp;utm_medium=referral" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">Hip-Hop Culture Can Teach Self-Determination And Agency To An<span>…</span></span><span class="branding">A Plus</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~-3288542798355327838~~QZQ9W8k9o0rTRVky8qkYKJcP646jYXmr5TNqtyO4Cy6UXMGKH1sl8TSBatFDknZclhf9hQnzo2y5LM4QM3xOkA" data-item-title="Are you a strategic thinker? Test your skills with millions" data-item-thumb="https://console.brax-cdn.com/creatives/041ca465-399e-4bcf-9b7d-edb6b5c8d972/Image_1_defa4a9559ab341e85cb51222f3349dc.600x500.png" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem videoCube_4_child trc_excludable ">
+ <a title="Are you a strategic thinker? Test your skills with millions" href="https://plarium.com/play/en/sparta/017_armies_hybrid_anim_g?plid=83495&amp;pxl=taboola_fr&amp;publisherID=eslmedia-theindependent" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;http://images.taboola.com/taboola/image/fetch/dpr_2.0%2Cf_jpg%2Cq_80%2Ch_150%2Cw_300%2Cc_fill%2Cg_faces%2Ce_sharpen/https%3A//console.brax-cdn.com/creatives/041ca465-399e-4bcf-9b7d-edb6b5c8d972/Image_1_defa4a9559ab341e85cb51222f3349dc.600x500.png&quot;);"><span class="thumbnail-overlay"></span><span class="branding">Sparta Free Online Game</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Are you a strategic thinker? Test your skills with millions" href="https://plarium.com/play/en/sparta/017_armies_hybrid_anim_g?plid=83495&amp;pxl=taboola_fr&amp;publisherID=eslmedia-theindependent" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">Are you a strategic thinker? Test your skills with millions</span><span class="branding">Sparta Free Online Game</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~-7185889087621914534~~Ctz6tVEe4YRwR9hO3RZ61WhIoS99L-xBVvPXnmcRWllwE69BY4AvbShriW9dXJ4Alhf9hQnzo2y5LM4QM3xOkA" data-item-title="7 tricks to learn a language in 7 days" data-item-thumb="http://cdn.taboolasyndication.com/libtrc/static/thumbnails/c9c28a034787fb55fb07f489045218df.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem videoCube_5_child trc_excludable ">
+ <a title="7 tricks to learn a language in 7 days" href="https://go.babbel.com/engmag-a58-vid-bv17-turkishweek-cd-xo-tb/1_eng_tab_cd?utm_source=taboola&amp;utm_medium=CON&amp;utm_campaign=cd_engall_gen_cxo_hometownlearning&amp;utm_term=eslmedia-theindependent&amp;utm_content=7+tricks+to+learn+a+language+in+7+days" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;http://images.taboola.com/taboola/image/fetch/dpr_2.0%2Cf_jpg%2Cq_80%2Ch_150%2Cw_300%2Cc_fill%2Cg_faces%2Ce_sharpen/http%3A//cdn.taboolasyndication.com/libtrc/static/thumbnails/c9c28a034787fb55fb07f489045218df.jpg&quot;);"><span class="thumbnail-overlay"></span><span class="branding">Babbel</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="7 tricks to learn a language in 7 days" href="https://go.babbel.com/engmag-a58-vid-bv17-turkishweek-cd-xo-tb/1_eng_tab_cd?utm_source=taboola&amp;utm_medium=CON&amp;utm_campaign=cd_engall_gen_cxo_hometownlearning&amp;utm_term=eslmedia-theindependent&amp;utm_content=7+tricks+to+learn+a+language+in+7+days" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">7 tricks to learn a language in 7 days</span><span class="branding">Babbel</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="trc-widget-footer">
+ <div class="logoDiv link-adc "><a class="trc_desktop_adc_link trc_attribution_position_bottom" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=eslmedia-theindependent&amp;utm_medium=referral&amp;utm_content=thumbnails-k:Right%20Rail%20Thumbnails:" target="_blank"><span class="trc_adc_wrapper"><span class="trc_adc_s_logo"></span> </span><span class="trc_logos_v_align"> </span></a><a class="trc_mobile_adc_link trc_attribution_position_bottom" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=eslmedia-theindependent&amp;utm_medium=referral&amp;utm_content=thumbnails-k:Right%20Rail%20Thumbnails:" target="_blank"><span class="trc_adc_wrapper"><span class="trc_adc_s_logo"></span> </span><span class="trc_logos_v_align"> </span></a></div>
+ <div class="logoDiv link-attribution "><a class="trc_desktop_attribution_link trc_attribution_position_bottom" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=eslmedia-theindependent&amp;utm_medium=referral&amp;utm_content=thumbnails-k:Right%20Rail%20Thumbnails:" target="_blank"><span>by Taboola</span><span class="trc_logos_v_align"> </span></a><a class="trc_mobile_attribution_link trc_attribution_position_bottom" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=eslmedia-theindependent&amp;utm_medium=referral&amp;utm_content=thumbnails-k:Right%20Rail%20Thumbnails:" target="_blank"><span>by Taboola</span><span class="trc_logos_v_align"> </span></a></div>
+ </div>
+ <div class="trc_clearer"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </aside>
+ <aside class="layout-component layout-component-mpu">
+ <div class="ad-mpu mpu-container mpu6-container">
+ <div id="mpu6"></div>
+ </div>
+ </aside>
+ <aside class="layout-component layout-component-ines-video-sidebar" id="ines_video_sidebar-0">
+ <div data-feed="//www.independent.co.uk/layout_component/sidebar-videos">
+ <h2 class="box-title">Video</h2>
+ <ul class="video-sidebar clearfix">
+ <li><a href="/arts-entertainment/films/news/jackie-trailer-watch-natalie-portman-oscars-2017-jfk-jacqueline-kennedy-a7418101.html"><span class="icon-play"></span><img class="image lazy" data-original="/s3/files/styles/video_thumbnail/public/thumbnails/image/2016/11/15/09/jackie-0.jpg" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" /><h2>Natalie Portman channels a grieving First Lady in trailer for Jackie</h2></a></li>
+ <li><a href="/news/world/australasia/new-zealand-earthquake-today-aftershocks-100000-landslides-rescue-efforts-a7417971.html"><span class="icon-play"></span><img class="image lazy" data-original="https://static.independent.co.uk/s3fs-public/styles/video_thumbnail/public/thumbnails/image/2016/11/14/09/new-zealand-landlside.jpg" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" /><h2>New Zealand battered by aftershocks causing 100,000 landslides</h2></a></li>
+ <li><a href="/news/world/americas/us-elections/obama-says-trump-s-temperament-will-not-serve-him-well-a7417646.html"><span class="icon-play"></span><img class="image lazy" data-original="https://static.independent.co.uk/s3fs-public/styles/video_thumbnail/public/thumbnails/image/2016/11/14/22/gettyimages-623219322.jpg" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" /><h2>Obama says Trump’s temperament will not serve him well</h2></a></li>
+ </ul>
+ </div>
+ </aside>
+ <aside class="layout-component layout-component-ines-sponsored-features-sidebar article-list" id="ines_sponsored_features_sidebar-0">
+ <div data-feed="//www.independent.co.uk/layout_component/sponsored-features">
+ <h2 class="box-title">Sponsored Features</h2>
+ <ul class="simple-news-list">
+ <li class="story">
+ <a href="/arts-entertainment/tv/on-the-sofa-with-june-sarpong-a7410001.html"><img class="image lazy" data-original="/s3/files/styles/storylist/public/thumbnails/image/2016/11/10/15/20161027-junesarpong-0135.jpg" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" />
+ <h2>On the sofa with... June Sarpong</h2>
+ </a>
+ </li>
+ <li class="story">
+ <a href="/travel/skiing/slip-away-to-the-ski-resorts-of-innsbruck-this-winter-a7404431.html"><img class="image lazy" data-original="https://static.independent.co.uk/s3fs-public/styles/storylist/public/thumbnails/image/2016/11/08/11/fp365j.jpg" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" />
+ <h2>Slip away to the ski resorts of Innsbruck this winter</h2>
+ </a>
+ </li>
+ <li class="story">
+ <a href="/student/UWE/code-your-way-to-your-dream-job-a7404421.html"><img class="image lazy" data-original="https://static.independent.co.uk/s3fs-public/styles/storylist/public/thumbnails/image/2016/11/08/15/rexfeatures-5843439a-v2.jpg" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" />
+ <h2>Code your way to your dream job</h2>
+ </a>
+ </li>
+ <li class="story">
+ <a href="/news/education/is-a-postgraduate-degree-worth-the-money-a7359806.html"><img class="image lazy" data-original="https://static.independent.co.uk/s3fs-public/styles/storylist/public/thumbnails/image/2016/10/13/16/img-study.jpg" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" />
+ <h2>Is a postgraduate degree worth the money?</h2>
+ </a>
+ </li>
+ <li class="story">
+ <a href="/travel/uk/my-glasgow-paralympic-tennis-star-gordon-reid-on-life-in-the-city-a7384526.html"><img class="image lazy" data-original="https://static.independent.co.uk/s3fs-public/styles/storylist/public/thumbnails/image/2016/10/28/12/img-4320.jpg" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" />
+ <h2>My Glasgow: Paralympic tennis star Gordon Reid on life in the city</h2>
+ </a>
+ </li>
+ </ul>
+ </div>
+ </aside>
+ <aside class="visible">
+ <div id="onscroll-ad-independent-feb-2016-content"></div>
+ </aside>
+ </div>
+ </div>
+ </div>
+
+ </article>
+ </div>
+
+ <footer id="mastfooter" tynt-data="no-content">
+
+
+ <div class="stamp"></div>
+ <ul class="follow">
+ <li>Follow us:</li>
+ <li>
+ <a href="https://www.facebook.com/TheIndependentOnline" target="_blank" title="Facebook" class="icon-facebook"></a>
+ </li>
+ <li>
+ <a href="https://twitter.com/independent" target="_blank" title="Twitter" class="icon-twitter"></a>
+ </li>
+ </ul>
+ <ul class="links">
+ <li><a href="/service/user-policies-a6184151.html" title="">User Policies</a></li>
+ <li><a href="/service/privacy-policy-a6184181.html" title="">Privacy Policy</a></li>
+ <li><a href="/service/cookie-policy-a6184186.html" title="">Cookie Policy</a></li>
+ <li><a href="/service/code-of-conduct-a6184241.html" title="">Code of Conduct</a></li>
+ <li><a href="https://independentnews.zendesk.com/hc/en-us/requests/new" title="">Complaint Form</a></li>
+ <li><a href="/service/contact-us-759589.html" title="">Contact Us</a></li>
+ <li><a href="http://www.independent.co.uk/service/external-contributors-policy-7905982.html" title="">Contributors</a></li>
+ <li><a href="/topics-list" title="">All Topics</a></li>
+ <li><a href="http://www.independent.co.uk/archive" title="">Archive</a></li>
+ <li><a href="http://www.independent.co.uk/register" title="">Newsletters</a></li>
+ <li><a href="http://independentjobs.independent.co.uk/" title="">Jobs</a></li>
+ <li><a href="https://www.independentsubscriptions.co.uk/" title="">Subscriptions</a></li>
+ <li><a href="http://esimedia.co.uk/" title="">Advertising Guide</a></li>
+ <li><a href="http://syndication.independent.co.uk" title="">Syndication</a></li>
+ <li><a href="http://www.standard.co.uk/" title="">Evening Standard</a></li>
+ <li><a href="http://en.novayagazeta.ru/" title="">Novaya Gazeta</a></li>
+ <li><a href="http://www.independent.co.uk/marketing/apps/" title="">Install our Apps</a></li>
+ </ul>
+ </footer>
+
+ <div id="outofpageslot">
+ <div id="google_ads_iframe_/71347885/_main_independent/in_news/in_business/in_news/in_news_article_0__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/71347885/_main_independent/in_news/in_business/in_news/in_news_article_0" title="3rd party ad content" name="google_ads_iframe_/71347885/_main_independent/in_news/in_business/in_news/in_news_article_0" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" frameborder="0" width="1" height="1"></iframe></div><iframe id="google_ads_iframe_/71347885/_main_independent/in_news/in_business/in_news/in_news_article_0__hidden__" title="" name="google_ads_iframe_/71347885/_main_independent/in_news/in_business/in_news/in_news_article_0__hidden__" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom; visibility: hidden; display: none;" frameborder="0" width="0" height="0"></iframe></div>
+
+ <div id="teadsib">
+ <div id="google_ads_iframe_/71347885/_main_independent/in_news/in_business/in_news/in_news_article_1__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/71347885/_main_independent/in_news/in_business/in_news/in_news_article_1" title="3rd party ad content" name="google_ads_iframe_/71347885/_main_independent/in_news/in_business/in_news/in_news_article_1" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" frameborder="0" width="4" height="4"></iframe></div><iframe id="google_ads_iframe_/71347885/_main_independent/in_news/in_business/in_news/in_news_article_1__hidden__" title="" name="google_ads_iframe_/71347885/_main_independent/in_news/in_business/in_news/in_news_article_1__hidden__" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom; visibility: hidden; display: none;" frameborder="0" width="0" height="0"></iframe></div>
+ <div id="znaptag" tynt-data="no-content" data-google-query-id="CNzlnrjQrNACFRUTvQodbTgF_A" style="display: none;">
+ <div id="google_ads_iframe_/71347885/_main_independent/in_news/in_business/in_news/in_news_article_8__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/71347885/_main_independent/in_news/in_business/in_news/in_news_article_8" title="3rd party ad content" name="google_ads_iframe_/71347885/_main_independent/in_news/in_business/in_news/in_news_article_8" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" frameborder="0" width="9" height="9"></iframe></div><iframe id="google_ads_iframe_/71347885/_main_independent/in_news/in_business/in_news/in_news_article_8__hidden__" title="" name="google_ads_iframe_/71347885/_main_independent/in_news/in_business/in_news/in_news_article_8__hidden__" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom; visibility: hidden; display: none;" frameborder="0" width="0" height="0"></iframe></div>
+ <div id="thirdparty01">
+ <div id="google_ads_iframe_/71347885/_main_independent/in_news/in_business/in_news/in_news_article_9__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/71347885/_main_independent/in_news/in_business/in_news/in_news_article_9" title="3rd party ad content" name="google_ads_iframe_/71347885/_main_independent/in_news/in_business/in_news/in_news_article_9" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" frameborder="0" width="3" height="3"></iframe></div><iframe id="google_ads_iframe_/71347885/_main_independent/in_news/in_business/in_news/in_news_article_9__hidden__" title="" name="google_ads_iframe_/71347885/_main_independent/in_news/in_business/in_news/in_news_article_9__hidden__" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom; visibility: hidden; display: none;" frameborder="0" width="0" height="0"></iframe></div>
+
+ </div>
+
+ <!-- PRE FOOTER INLINE -->
+ <script>
+ (function(i, s, o, g, r, a, m) {
+ i["GoogleAnalyticsObject"] = r;
+ i[r] = i[r] || function() {
+ (i[r].q = i[r].q || []).push(arguments)
+ }, i[r].l = 1 * new Date();
+ a = s.createElement(o), m = s.getElementsByTagName(o)[0];
+ a.async = 1;
+ a.src = g;
+ m.parentNode.insertBefore(a, m)
+ })(window, document, "script", "//www.google-analytics.com/analytics.js", "ga");
+ ga("create", "UA-27212627-1", {
+ "cookieDomain": "auto"
+ });
+ ga("set", "anonymizeIp", true);
+ ga("set", "dimension1", "Image");
+ ga("set", "dimension2", "News");
+ ga("set", "dimension3", "Business News");
+ ga("set", "dimension4", "Hazel Sheffield");
+ ga("set", "dimension5", "6658741");
+ ga("send", "pageview");
+
+
+ ;
+ </script>
+ <!-- PAGE BOTTOM -->
+ <div class="region region-page-bottom">
+ <!-- SiteCatalyst code version: h.27.5.
+Copyright 1996-2016 Adobe, Inc. -->
+ <script type="text/javascript" src="//www.independent.co.uk/sites/all/libraries/sitecatalyst/ind_am_code.js?ogluy1"></script>
+ <script type="text/javascript">
+ & lt;
+ !--
+
+ s.events = "event7";
+ s.prop3 = "";
+ s.prop8 = "Article";
+ s.prop9 = "10506160";
+ s.prop10 = "3:57 PM";
+ s.prop11 = "The seven secrets that hotel owners don\u0027t want you to know";
+ s.prop12 = "seven-secrets-that-hotel-owners-dont-want-you-to-know-10506160.html";
+ s.prop13 = "Hazel Sheffield";
+ s.prop15 = "image";
+ s.prop16 = "Thursday, 17 September 2015";
+ s.prop38 = "Hotels,Hygiene";
+ s.pageName = "news\/business\/news\/article10506160";
+ s.hier1 = "news,business,news";
+ s.channel = "news";
+ s.prop1 = "news:business";
+ s.prop2 = "news:business:news";
+ s.prop18 = "New Site";
+ s.prop6 = "";
+ s.prop7 = "";
+ s.server = "www.independent.co.uk";
+ /************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/
+ var s_code = s.t();
+ if (s_code) document.write(s_code) //--&gt;
+ </script>
+ <script type="text/javascript">
+ & lt;
+ !--
+ if (navigator.appVersion.indexOf('MSIE') & gt; = 0) document.write(unescape('%3C') + '\!-' + '-')
+ //--&gt;
+ </script>
+ <noscript>&lt;img src="http://independent.122.2o7.net/b/ss/indepdev/1/H.27.5--NS/0?[AQB]&amp;amp;cdp=3&amp;amp;[AQE]/7229572" height="1" width="1" alt=""&gt;</noscript>
+ <!--/DO NOT REMOVE/-->
+ <!-- End SiteCatalyst code version: h.27.5. -->
+ <div class="adblock-modal adblock" style="display: none;">
+ <aside class="adblock-notice">
+ <div class="ctrl"><button class="close" data-action="close">Close</button></div>
+ <h2><span class="logo"></span></h2>
+ <div class="adblock-container main">
+ <div class="content">
+ <p><strong>We've noticed that you are using an ad blocker.</strong></p>
+ <p>Advertising helps fund our journalism and keep it truly independent. It helps to build our international editorial team, from war correspondents to investigative reporters, commentators to critics.</p>
+ <div class="content-section">
+ <p><a data-toggle="instructions" href="javascript:void(0);">Click here to view instructions</a> on how to disable your ad blocker, and help us to keep providing you with free-thinking journalism - for free.</p>
+ <p>Thank you for your support.</p>
+ </div>
+ </div>
+ </div>
+ <div class="adblock-container instructions">
+ <p><strong>How to disable your ad blocker for <span class="site-url">independent.co.uk</span></strong></p>
+ <h3 class="ad-block-icon"> Adblock / Adblock Plus</h3>
+ <ul>
+ <li>Click the Adblock/Adblock Plus icon, which is to the right of your address bar.</li>
+ <li>On Adblock click "Don't run on pages on this domain".</li>
+ <li>On Adblock Plus click "Enabled on this site" to disable ad blocking for the current website you are on. If you are in Firefox click "disable on <span class="site-url">independent.co.uk</span>".</li>
+ </ul>
+ <h3 class="firefox-icon">Firefox Tracking Protection</h3>
+ <ul>
+ <li>If you are Private Browsing in Firefox, "Tracking Protection" may cause the adblock notice to show. It can be temporarily disabled by clicking the "shield" icon in the address bar.</li>
+ </ul>
+ <h3 class="ghostery-icon">Ghostery</h3>
+ <ul>
+ <li>Click the Ghostery icon.</li>
+ <li>In versions before 6.0 click "whitelist site".</li>
+ <li>In version 6.0 click "trust site" or add <span class="site-url">independent.co.uk</span> to your Trusted Site list.</li>
+ <li>In versions before 6.0 you will see the message "Site is whitelisted".</li>
+ <li>Click "reload the page to see your changes".</li>
+ </ul>
+ <h3 class="ublock-icon">uBlock</h3>
+ <ul>
+ <li>Click the uBlock icon.</li>
+ <li>Then click the big power button to whitelist the current web site, and its state will be remembered next time you visit the web site.</li>
+ <li>Then reload the page.</li>
+ </ul>
+ </div>
+ </aside>
+ </div>
+ <div class="adblock-modal adblock-confirm" style="display: none;">
+ <aside class="adblock-notice">
+ <div class="ctrl"><button class="close" data-action="close">Close</button></div>
+ <h2><span class="logo"></span></h2>
+ <div class="adblock-container main">
+ <div class="content">
+ <p>Thank you for supporting <span class="site-url">independent.co.uk</span></p>
+ </div>
+ <button data-action="close">Continue to our site</button>
+ </div>
+ </aside>
+ </div>
+ </div>
+ <!-- POST FOOTER INLINE -->
+ <script>
+ window.jQuery || document.write("&lt;script src='/sites/all/modules/contrib/jquery_update/replace/jquery/2.1/jquery.min.js'&gt;\x3C/script&gt;")
+
+
+ ;
+ document.createElement("picture");
+
+
+ ;
+ //Add js: jQuery Alias
+ var $ = jQuery;
+
+
+ ;
+ //Add js: Hola
+ (function() {
+ var vhola = document.createElement("script");
+ vhola.async = false;
+ vhola.type = "text/javascript";
+ vhola.crossOrigin = "Anonymous";
+
+ var useSSL = "https:" == document.location.protocol;
+ vhola.src = (useSSL ? "https:" : "http:") + "//player.h-cdn.com/loader.js?customer=independent_co_uk";
+ var node = document.getElementsByTagName("script")[0];
+ node.parentNode.insertBefore(vhola, node);
+
+ if (!window.videojs)
+ return;
+
+ function init_hola() {
+ window.hola_cdn.init_independent_co_uk();
+ }
+ if (window.hola_cdn)
+ init_hola();
+ else
+ window.hola_cdn_on_load = init_hola;
+ })();
+
+
+ ;
+ //Add js: Temporary Share Bar position tracking
+ jQuery(function checkBars() {
+
+ if (jQuery('#gigya-share-btns-1 .gig-share-button tr img').length & gt; 0) {
+ addclicks();
+ } else {
+ setTimeout(checkBars, 3000);
+ };
+
+ function addclicks() {
+ jQuery('#gigya-share-btns-1 .gig-share-button tr img').bind('click', function(e) {
+ var s = s_gi(s_account)
+ sharebarTracker = 'Above Article Share';
+ s.linkTrackVars = 'prop38';
+ s.prop38 = sharebarTracker;
+ s.tl(this, 'o', sharebarTracker);
+ s.prop38 = '';
+ });
+ jQuery('#gigya-share-btns-2 .gig-share-button tr img').bind('click', function(e) {
+ var s = s_gi(s_account)
+ sharebarTracker = 'Below Article Share';
+ s.linkTrackVars = 'prop38';
+ s.prop38 = sharebarTracker;
+ s.tl(this, 'o', sharebarTracker);
+ s.prop38 = '';
+ });
+
+ jQuery('#gigya-share-btns-3 .gig-share-button tr img').bind('click', function(e) {
+ var s = s_gi(s_account)
+ sharebarTracker = 'Header Share';
+ s.linkTrackVars = 'prop38';
+ s.prop38 = sharebarTracker;
+ s.tl(this, 'o', sharebarTracker);
+ s.prop38 = '';
+ });
+ };
+ });
+
+
+ ;
+ //Add js: PageFair AdBlock Detection
+ (function() {
+ function async_load(script_url) {
+ var protocol = ('https:' == document.location.protocol ? 'https://' : 'http://');
+ var s = document.createElement('script');
+ s.src = protocol + script_url;
+ var x = document.getElementsByTagName('script')[0];
+ x.parentNode.insertBefore(s, x);
+ }
+ bm_website_code = '50DD925A1FA64A66';
+ jQuery(document).ready(function() {
+ async_load('asset.pagefair.com/measure.min.js')
+ });
+ jQuery(document).ready(function() {
+ async_load('asset.pagefair.net/ads.min.js')
+ });
+ })();
+
+
+ ;
+ jQuery.extend(Drupal.settings, {
+ "themeName": "independent_theme"
+ });
+
+
+ ;
+ jQuery.extend(Drupal.settings, {
+ "s_account": "indepdev"
+ });
+
+
+ ;
+ (function($) {
+ $('body').on('AdblockDetected', function() {
+ $('.ad-leaderboard').removeClass('ad-leaderboard').addClass('taboola-leaderboard');
+ var stickyMe;
+ window._taboola = window._taboola || [];
+ _taboola.push({
+ mode: 'thumbnails-f-abp',
+ container: 'leaderboard',
+ placement: 'Above Article Thumbnails - ABP',
+ target_type: 'mix'
+ });
+ });
+ })(jQuery);
+
+
+ ;
+ /** CONFIGURATION END **/
+ (function() {
+ function loadChartbeat() {
+ window._sf_endpt = (new Date()).getTime();
+
+ var e = document.createElement('script');
+ e.setAttribute('language', 'javascript');
+ e.setAttribute('type', 'text/javascript');
+ e.setAttribute('src', '//static.chartbeat.com/js/chartbeat_mab.js');
+ document.body.appendChild(e);
+
+ var e = document.createElement('script');
+ e.setAttribute('language', 'javascript');
+ e.setAttribute('type', 'text/javascript');
+ e.setAttribute('src', '//static.chartbeat.com/js/chartbeat.js');
+ document.body.appendChild(e);
+ }
+ var oldonload = window.onload;
+ window.onload = (typeof window.onload != 'function') ?
+ loadChartbeat : function() {
+ oldonload();
+ loadChartbeat();
+ };
+ })();
+
+
+
+ ;
+ (function($) {
+ $('body').on('AdblockDetected', function() {
+ var mpuWrapper = $('#mpu0').parent();
+ if (mpuWrapper.hasClass('ad-mpu')) {
+ mpuWrapper.removeClass('ad-mpu').addClass('taboola-mpu');
+ }
+ var stickyMpu;
+ window._taboola = window._taboola || [];
+ _taboola.push({
+ mode: 'thumbnails-rr3',
+ container: 'mpu0',
+ placement: 'IAB Thumbnails ABP',
+ target_type: 'mix'
+ });
+ });
+ })(jQuery);
+
+
+ ;  
+ window._taboola = window._taboola || [];  
+ _taboola.push({    
+ mode: 'thumbnails-d',
+     container: 'taboola-below-article-thumbnails',
+     placement: 'Below Article Thumbnails',
+     target_type: 'mix'  
+ });
+
+
+ ;  
+ window._taboola = window._taboola || [];  
+ _taboola.push({    
+ mode: 'organic-thumbnails-d',
+     container: 'taboola-below-article-thumbnails-2nd',
+     placement: 'Below Article Thumbnails 2nd',
+     target_type: 'mix'  
+ });
+
+
+ ;
+ window._taboola = window._taboola || [];
+ _taboola.push({
+ mode: "thumbnails-k",
+ container: "taboola-single-mpu-thumbnails",
+ placement: "Right Rail Thumbnails",
+ target_type: "mix"
+ });
+
+
+ ;
+ (function($) {
+ var test = document.createElement('div');
+ test.innerHTML = '&amp;nbsp;';
+ test.className = 'adsbox';
+
+ function detectOnload() {
+ document.body.appendChild(test);
+ if (test.offsetHeight === 0) {
+ document.body.classList.add('adblock');
+ $('body').trigger('AdblockDetected');
+ // add GA Events if defined
+ if (typeof ga !== 'undefined') {
+ ga('send', 'event', 'Adblock', 'Blocked', location.href);
+ }
+ } else {
+ $('body').trigger('AdblockNotDetected');
+ // add GA Events if defined
+ if (typeof ga !== 'undefined') {
+ ga('send', 'event', 'Adblock', 'Unblocked', location.href);
+ }
+ // Old var should be depricat4d but used elsewhere
+ window.runAds = true;
+ }
+ test.remove();
+ }
+
+ var oldonload = window.onload;
+ window.onload = (typeof window.onload != 'function') ? detectOnload : function() {
+ oldonload();
+ detectOnload();
+ };
+
+ })(jQuery);
+
+
+ ;
+ (function($) {
+ $('body').on('AdblockDetected', function() {
+ // check for mobile with helper
+ if (typeof window.helper.isMobile !== 'undefined' & amp; & amp; !window.helper.isMobile.any()) {
+ var adblock_cookie = window.helper.getCookie('adblock_detected');
+ if (adblock_cookie !== 'ignored') {
+ $('.adblock.adblock-modal').css('display', 'block').appendTo('body');
+ window.helper.createCookie('adblock_detected', 'detected', 1);
+ $('.adblock-modal [data-action="close"]').click(function(e) {
+ window.helper.createCookie('adblock_detected', 'ignored', 30);
+ $('.adblock-modal').remove();
+ });
+ $(window).resize(function() {
+ var height = $(window).height();
+ var container = $('.adblock-modal .adblock-container').filter(':visible');
+ container.height('auto');
+ container.css('overflow-y', '');
+ if (container.height() & gt; $(window).height() - 190) {
+ container.height($(window).height() - 190);
+ container.css('overflow-y', 'scroll');
+ }
+ });
+ $(window).trigger('resize');
+ }
+ }
+ });
+ })(jQuery);
+
+
+ ;
+ (function($) {
+ $('body').on('AdblockNotDetected', function() {
+ var adblock_cookie = window.helper.getCookie('adblock_detected');
+ if (adblock_cookie) {
+ $('.adblock-confirm.adblock-modal').css('display', 'block').appendTo('body');
+ window.helper.deleteCookie('adblock_detected');
+ if (typeof ga !== 'undefined') {
+ ga('send', 'event', 'AdblockDisabled', 'Disabled', location.href);
+ }
+ $('.adblock-modal [data-action="close"]').click(function(e) {
+ $('.adblock-modal').remove();
+ });
+ };
+ });
+ })(jQuery);
+
+
+ ;
+ var openXSettings = {
+ "networkcode": "71347885-independent",
+ "publisher": "esimedia"
+ };
+
+
+ ;
+ window.__gigyaConf = {
+ sessionExpiration: -2,
+ }
+
+
+ ;
+ window._taboola = window._taboola || [];  
+ _taboola.push({
+ article: "auto"
+ });  
+ ! function(e, f, u) {    
+ e.async = 1;    
+ e.src = u;    
+ f.parentNode.insertBefore(e, f);  
+ }(document.createElement("script"),   document.getElementsByTagName("script")[0],   "//cdn.taboola.com/libtrc/eslmedia-theindependent/loader.js");
+
+
+ ;
+ window._taboola = window._taboola || [];  
+ _taboola.push({
+ flush: true
+ });
+
+
+ ;
+ ga('send', 'event', 'Replatform', 'pageview', location.href);
+
+
+ ;
+ ga('send', 'event', 'Page Type', pageType, location.href);
+
+
+ ;
+ (function() {
+ var a = document,
+ b = a.createElement("script"),
+ a = a.getElementsByTagName("script")[0];
+ b.type = "text/javascript";
+ b.async = !0;
+ b.src = "https://z.moatads.com/eveningstandard858kBFE49/moatcontent.js";
+ a.parentNode.insertBefore(b, a)
+ })();
+
+
+ ;
+
+
+ jQuery(function() {
+ ga('create', 'UA-69936242-1', 'auto', 'combined');
+ ga('combined.send', 'pageview');
+ });
+ </script>
+ <!-- COMSCORE -->
+ <!-- Begin comScore Tag -->
+ <script>
+ var _comscore = _comscore || [];
+ _comscore.push({
+ c1: "2",
+ c2: "10476312"
+ });
+ (function() {
+ var s = document.createElement("script"),
+ el = document.getElementsByTagName("script")[0];
+ s.async = true;
+ s.src = (document.location.protocol == "https:" ? "https://sb" : "http://b") + ".scorecardresearch.com/beacon.js";
+ el.parentNode.insertBefore(s, el);
+ })();
+ </script>
+ <noscript>
+ &lt;img src="https://sb.scorecardresearch.com/p?c1=2&amp;c2=10476312&amp;cv=2.0&amp;cj=1" /&gt;
+ </noscript>
+ <!-- End comScore Tag -->
+ <!-- QUBIT -->
+
+ <script src="//tags.onscroll.com/c5bed6a1-fa1a-47ca-b033-528d277352aa/tag.min.js" async="" defer="defer"></script>
+
+ <div id="overlay"></div>
+ <!-- BEGIN Krux Control Tag for "Independent" -->
+ <!-- Source: /snippet/controltag?confid=I8gY_o93&site=Independent&edit=1 -->
+ <script class="kxct" data-id="I8gY_o93" data-timing="async" data-version="1.9" type="text/javascript">
+ window.Krux || ((Krux = function() {
+ Krux.q.push(arguments)
+ }).q = []);
+ (function() {
+ var k = document.createElement('script');
+ k.type = 'text/javascript';
+ k.async = true;
+ var m, src = (m = location.href.match(/\bkxsrc=([^&amp;]+)/)) & amp; & amp;
+ decodeURIComponent(m[1]);
+ k.src = /^https?:\/\/([^\/]+\.)?krxd\.net(:\d{1,5})?\//i.test(src) ? src : src === "disable" ? "" :
+ (location.protocol === "https:" ? "https:" : "http:") + "//cdn.krxd.net/controltag?confid=I8gY_o93";
+ var s = document.getElementsByTagName('script')[0];
+ s.parentNode.insertBefore(k, s);
+ }());
+ </script>
+ <!-- END Krux Controltag -->
+
+ <!-- Sherlock Tag -->
+ <script>
+ var js_loaded = false;
+ </script>
+ <script type="text/javascript" src="https://stag.mdotlabs.com/ads.js"></script>
+ <script src="https://stag.mdotlabs.com/sherlock.php?clientID=6035250"></script>
+ <!-- End Sherlock Tag -->
+
+ <!-- Sailthru Horizon -->
+ <script type="text/javascript">
+ (function() {
+ function loadHorizon() {
+ var s = document.createElement('script');
+ s.type = 'text/javascript';
+ s.async = true;
+ s.src = location.protocol + '//ak.sail-horizon.com/horizon/v1.js';
+ var x = document.getElementsByTagName('script')[0];
+ x.parentNode.insertBefore(s, x);
+ }
+ loadHorizon();
+ var oldOnLoad = window.onload;
+ window.onload = function() {
+ if (typeof oldOnLoad === 'function') {
+ oldOnLoad();
+ }
+ Sailthru.setup({
+ domain: 'horizon.e.independent.co.uk',
+ useStoredTags: false
+ });
+ };
+ })();
+ </script>
+ <!-- End Sailthru Horizon -->
+
+ <!-- Affiliate Network JS -->
+
+
+
+
+
+ <div class="kxhead" data-id="I8gY_o93" style="display:none !important;"></div>
+ <div id="tbl-aug-voxp4u" class="trc_popover_aug_container">
+ <div id="tbl-aug-ujtj6v" class="trc_popover_aug_container">
+ <div id="tbl-aug-g9m1h7" class="trc_popover_aug_container">
+ <div class=" trc_popover trc_popover_fade trc_bottom ">
+ <div class=" trc_popover_arrow "></div><iframe scrolling="no" src="javascript:void(0)" style="width: 100%;" frameborder="0"></iframe></div>
+ </div>
+ </div>
+ </div>
+ <form class="trc-hidden" target="tb-trc-transportFrame-1891" style="display: none;" method="post" action="http://trc.taboola.com/eslmedia-theindependent/log/3/available"><input name="ri" value="bacbecc46871b102d491910af1f2d85a" type="hidden" /><input name="sd" value="v2_f5fd84c44e1c3bb8dce0fbe33ceaf941_690d5b7e-b1fd-45e3-be15-0398b17de280_1479276426_1479277047_CNawjgYQr5Y-GPjbod6GKyASKAM" type="hidden" /><input name="ui" value="690d5b7e-b1fd-45e3-be15-0398b17de280" type="hidden" /><input name="pi" value="/news/business/news/seven-secrets-that-hotel-owners-dont-want-you-to-know-10506160.html" type="hidden" /><input name="wi" value="-3295114549870305334" type="hidden" /><input name="pt" value="text" type="hidden" /><input name="vi" value="1479277047288" type="hidden" /><input name="li" value="rbox-t2m" type="hidden" /><input name="utm" value="3,280,323,692" type="hidden" /><input name="df" value="1" type="hidden" /><input name="ppb" value="CA0" type="hidden" /><input name="cpb" value="Eg4yMzMtMjUtUkVMRUFTRRjVCCAAKhloay50YWJvb2xhc3luZGljYXRpb24uY29tMgh3YXRlcjYzMw" type="hidden" /><input name="tim" value="14:17:28.135" type="hidden" /><input name="id" value="1891" type="hidden" /><input name="llvl" value="1" type="hidden" /><input name="cv" value="233-25-RELEASE" type="hidden" /><input name="fil" value="[{&quot;tii&quot;:&quot;~~V1~~3564442357467433505~~v8p6g0t5RiY5W4t_nJFmLWhIoS99L-xBVvPXnmcRWlmx0zpqFuspPNx5ZviG_F2BA_C9mMkaN3ADM-tWVt4Olg&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;text&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~8127807913599977156~~DFUACUkEpKl3Psu0VW-o0KUEo1XjB8J7MKkOl_ek2ycC5xsnLMQkNbbO3QBcrJMnA_C9mMkaN3ADM-tWVt4Olg&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;text&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~-3225717488342932989~~4Tp8HdrlGiqFcU1S8OdBb881kwABPLdtHBoOZHIScDdNkFsVyn0sUO0xvZ_Sh02fA_C9mMkaN3ADM-tWVt4Olg&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;text&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~-4283570402677082943~~f6N2pmFUrwF7EZK1ym9tPg0YPLCrVt54JIK-WgGqlCVBatLOuf0BlFLqsT3HV_1vA_C9mMkaN3ADM-tWVt4Olg&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;text&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~-2039182627798609380~~QZQ9W8k9o0rTRVky8qkYKJcP646jYXmr5TNqtyO4Cy6noS-QDNE4lgErPvQIvkJTA_C9mMkaN3ADM-tWVt4Olg&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;text&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~-6478236510062505434~~jPJUcHWkR_C6Uo40tIdjrraUjkdJmlr0GDnf7y85u1nUy1l2tU_0WV2FhdYLWJ27A_C9mMkaN3ADM-tWVt4Olg&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;photo&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~6722066516164028540~~uw4UOVGG--92XMAu0TXE4x7LIF4d1ByTLT0fOQrMbGn0GxCA-5kkWJhkTvGdLPH_A_C9mMkaN3ADM-tWVt4Olg&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;text&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~2764352664306511535~~dsMnXsKiw4uD9yNyvkmMagiDfNCJqyshAOe3v9kFVCZ3x-4qiwxTcnzpvzPPLrsdA_C9mMkaN3ADM-tWVt4Olg&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;text&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~-8884682040486427095~~OirM3nR_ImtfBvi3XXtobkZTRbABKUr5m-JkFZ80-0ni5KSke8x3F5X7iOWdl_HiA_C9mMkaN3ADM-tWVt4Olg&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;text&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~-1783400042781980055~~MTo8SNlyVheylp8KTjC4J-2spfM9rEOLbr7Z8olBl7TdpCrP1MaCuz6TfK3F_dVGA_C9mMkaN3ADM-tWVt4Olg&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;text&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~-8621314997629165187~~hxK8GfHKc2pk3TkPM5YecmWLwSXvTwmT-yHv368tPe7HEdgLFmL7IS-sM-7EnZSeA_C9mMkaN3ADM-tWVt4Olg&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;text&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~-8797806345119007460~~rYdCbDDpF90VMDzu7rm7s2aGE8SjuYTSNgGySWOn6y7xxeVSADXRB4LxN3uHWpU_A_C9mMkaN3ADM-tWVt4Olg&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;video&quot;,&quot;tids&quot;:&quot;a&quot;}]" type="hidden" /></form><span><iframe class="trc-hidden" id="tb-trc-transportFrame-1891" name="tb-trc-transportFrame-1891" style="display:none" width="0" height="0"></iframe></span>
+ <form class="trc-hidden" target="tb-trc-transportFrame-131" style="display: none;" method="post" action="http://trc.taboola.com/eslmedia-theindependent/log/3/available"><input name="ri" value="f08990261861d735f4694db767d3d658" type="hidden" /><input name="sd" value="v2_f5fd84c44e1c3bb8dce0fbe33ceaf941_690d5b7e-b1fd-45e3-be15-0398b17de280_1479276426_1479277047_CNawjgYQr5Y-GPjbod6GKyASKAM" type="hidden" /><input name="ui" value="690d5b7e-b1fd-45e3-be15-0398b17de280" type="hidden" /><input name="pi" value="/news/business/news/seven-secrets-that-hotel-owners-dont-want-you-to-know-10506160.html" type="hidden" /><input name="wi" value="-3295114549870305334" type="hidden" /><input name="pt" value="text" type="hidden" /><input name="vi" value="1479277047288" type="hidden" /><input name="li" value="rbox-t2m" type="hidden" /><input name="utm" value="3,280,323,692" type="hidden" /><input name="df" value="1" type="hidden" /><input name="ppb" value="CKID" type="hidden" /><input name="cpb" value="Eg4yMzMtMjUtUkVMRUFTRRjVCCAAKhloay50YWJvb2xhc3luZGljYXRpb24uY29tMgh3YXRlcjYzMw" type="hidden" /><input name="tim" value="14:17:28.162" type="hidden" /><input name="id" value="131" type="hidden" /><input name="llvl" value="1" type="hidden" /><input name="cv" value="233-25-RELEASE" type="hidden" /><input name="fil" value="[]" type="hidden" /></form><span><iframe class="trc-hidden" id="tb-trc-transportFrame-131" name="tb-trc-transportFrame-131" style="display:none" width="0" height="0"></iframe></span>
+ <form class="trc-hidden" target="tb-trc-transportFrame-1064" style="display: none;" method="post" action="http://trc.taboola.com/eslmedia-theindependent/log/3/available"><input name="ri" value="99c2d5159b52e9394e06a23b1b1e449f" type="hidden" /><input name="sd" value="v2_f5fd84c44e1c3bb8dce0fbe33ceaf941_690d5b7e-b1fd-45e3-be15-0398b17de280_1479276426_1479277047_CNawjgYQr5Y-GPjbod6GKyASKAM" type="hidden" /><input name="ui" value="690d5b7e-b1fd-45e3-be15-0398b17de280" type="hidden" /><input name="pi" value="/news/business/news/seven-secrets-that-hotel-owners-dont-want-you-to-know-10506160.html" type="hidden" /><input name="wi" value="-3295114549870305334" type="hidden" /><input name="pt" value="text" type="hidden" /><input name="vi" value="1479277047288" type="hidden" /><input name="li" value="rbox-t2m" type="hidden" /><input name="utm" value="3,280,323,692" type="hidden" /><input name="df" value="1" type="hidden" /><input name="ppb" value="CKgH" type="hidden" /><input name="cpb" value="Eg4yMzMtMjUtUkVMRUFTRRjVCCAAKhloay50YWJvb2xhc3luZGljYXRpb24uY29tMgh3YXRlcjYzMw" type="hidden" /><input name="tim" value="14:17:28.209" type="hidden" /><input name="id" value="1064" type="hidden" /><input name="llvl" value="1" type="hidden" /><input name="cv" value="233-25-RELEASE" type="hidden" /><input name="fil" value="[{&quot;tii&quot;:&quot;~~V1~~62857942217602485~~4Tp8HdrlGiqFcU1S8OdBb881kwABPLdtHBoOZHIScDfElDTKjFfe873p233We1Lvlhf9hQnzo2y5LM4QM3xOkA&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;text&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~-5433321548155071309~~DLlo2QYnPWmOmQs8dgFPbZHknowz0Kq-Xk_QlCSd2jM61vq1e6s9xJsGPsU1T_hTlhf9hQnzo2y5LM4QM3xOkA&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;text&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~-4066915967393823971~~_ReLu9t4HwFIuvWXXi38LPYUGJpPkT73cMKl1d3GL2POfZzus2LavzKe65fSGZfRlhf9hQnzo2y5LM4QM3xOkA&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;text&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~-3288542798355327838~~QZQ9W8k9o0rTRVky8qkYKJcP646jYXmr5TNqtyO4Cy6UXMGKH1sl8TSBatFDknZclhf9hQnzo2y5LM4QM3xOkA&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;text&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~-7185889087621914534~~Ctz6tVEe4YRwR9hO3RZ61WhIoS99L-xBVvPXnmcRWllwE69BY4AvbShriW9dXJ4Alhf9hQnzo2y5LM4QM3xOkA&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;text&quot;,&quot;tids&quot;:&quot;a&quot;}]" type="hidden" /></form><span><iframe class="trc-hidden" id="tb-trc-transportFrame-1064" name="tb-trc-transportFrame-1064" style="display:none" width="0" height="0"></iframe></span>
+ <div id="fb-root" class=" fb_reset">
+ <div style="position: absolute; top: -10000px; height: 0px; width: 0px;">
+ <div><iframe name="fb_xdm_frame_http" allowtransparency="true" allowfullscreen="true" scrolling="no" id="fb_xdm_frame_http" aria-hidden="true" title="Facebook Cross Domain Communication Frame" tabindex="-1" style="border: medium none;" src="http://staticxx.facebook.com/connect/xd_arbiter/r/fTmIQU3LxvB.js?version=42#channel=f32d7e16093b11e&amp;origin=http%3A%2F%2Fwww.independent.co.uk" frameborder="0"></iframe><iframe name="fb_xdm_frame_https" allowtransparency="true" allowfullscreen="true" scrolling="no" id="fb_xdm_frame_https" aria-hidden="true" title="Facebook Cross Domain Communication Frame" tabindex="-1" style="border: medium none;" src="https://staticxx.facebook.com/connect/xd_arbiter/r/fTmIQU3LxvB.js?version=42#channel=f32d7e16093b11e&amp;origin=http%3A%2F%2Fwww.independent.co.uk" frameborder="0"></iframe></div>
+ </div>
+ </div><iframe id="rufous-sandbox" scrolling="no" allowtransparency="true" allowfullscreen="true" style="position: absolute; visibility: hidden; display: none; width: 0px; height: 0px; padding: 0px; border: medium none;" frameborder="0"></iframe><img src="https://sp.mdotlabs.com/images/p?c1=9&amp;c2=6035250&amp;t=abt&amp;v=2.14&amp;cms=0&amp;jsl=1&amp;abgp=0&amp;abgb=obj_not_present&amp;jrd=0&amp;gac=0&amp;ifb=no_addoc_frames&amp;cn=&amp;uid=19220369a1385aabcaba9dg1479202584&amp;bl1=0:0:0&amp;bl2=0:0:0&amp;dnt=0&amp;wc=0&amp;ss=1436:877:24:24&amp;ibv=ff32&amp;et=1635&amp;os=MacIntel&amp;ps=TUraU8gr&amp;cb=ZGteY5Ve&amp;durl=http%3A%2F%2Fwww.independent.co.uk%2Fnews%2Fbusiness%2Fnews%2Fseven-secrets-that-hotel-owners-dont-want-you-to-know-10506160.html" style="width: 0px; height: 0px;" /><iframe style="display: none;" width="0" height="0"></iframe></body><iframe id="kx-proxy-I8gY_o93" src="http://cdn.krxd.net/partnerjs/xdi/proxy.9a066b2dd4d31b0a4a22c0afd3c59825.html#%21kxcid=I8gY_o93&amp;kxt=http%3A%2F%2Fwww.independent.co.uk&amp;kxcl=cdn&amp;kxp=" style="display: none; visibility: hidden; height: 0; width: 0;"></iframe>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/buzzfeed-1/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/buzzfeed-1/expected-images.json
new file mode 100644
index 000000000..f44cbe4a1
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/buzzfeed-1/expected-images.json
@@ -0,0 +1,5 @@
+[
+ "http:\/\/s3-static-ak.buzzfed.com\/static\/2015-04\/22\/5\/campaign_images\/webdr03\/student-dies-after-diet-pills-she-bought-online-b-2-28712-1429696299-24_dblbig.jpg",
+ "http:\/\/ak-hdl.buzzfed.com\/static\/2015-04\/21\/5\/enhanced\/webdr12\/grid-cell-2501-1429608056-15.jpg",
+ "http:\/\/ak-hdl.buzzfed.com\/static\/2015-04\/21\/5\/enhanced\/webdr12\/grid-cell-2501-1429608057-18.jpg"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/buzzfeed-1/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/buzzfeed-1/expected-metadata.json
new file mode 100644
index 000000000..c332ef4f0
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/buzzfeed-1/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "An inquest into Eloise Parry's death has been adjourned until July.",
+ "Image": "http:\/\/s3-static-ak.buzzfed.com\/static\/2015-04\/22\/5\/campaign_images\/webdr03\/student-dies-after-diet-pills-she-bought-online-b-2-28712-1429696299-24_dblbig.jpg",
+ "Title": "Student Dies After Diet Pills She Bought Online \"Burned Her Up From Within\"",
+ "SiteName": "BuzzFeed"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/buzzfeed-1/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/buzzfeed-1/expected.html
new file mode 100644
index 000000000..46a3f3212
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/buzzfeed-1/expected.html
@@ -0,0 +1,42 @@
+<div id="buzz_sub_buzz">
+ <div id="superlist_3758406_5547137" rel:buzz_num="1">
+ <h2>The mother of a woman who took suspected diet pills bought online has described how her daughter was “literally burning up from within” moments before her death.</h2>
+
+ <p> <span>West Merica Police</span></p>
+ </div>
+ <div id="superlist_3758406_5547213" rel:buzz_num="2">
+ <p>Eloise Parry, 21, was taken to Royal Shrewsbury hospital on 12 April after taking a lethal dose of highly toxic “slimming tablets”. </p>
+ <p>“The drug was in her system, there was no anti-dote, two tablets was a lethal dose – and she had taken eight,” her mother, Fiona, <a href="https://www.westmercia.police.uk/article/9501/A-tribute-to-Eloise-Aimee-Parry-written-by-her-mother-Fiona-Parry">said in a statement</a> yesterday.</p>
+ <p>“As Eloise deteriorated, the staff in A&amp;E did all they could to stabilise her. As the drug kicked in and started to make her metabolism soar, they attempted to cool her down, but they were fighting an uphill battle.</p>
+ <p>“She was literally burning up from within.”</p>
+ <p>She added: “They never stood a chance of saving her. She burned and crashed.”</p>
+ </div>
+ <div id="superlist_3758406_5547140" rel:buzz_num="3">
+ <div>
+ <div>
+ <div>
+ <p><img height="412" rel:bf_image_src="http://ak-hdl.buzzfed.com/static/2015-04/21/5/enhanced/webdr12/grid-cell-2501-1429608056-15.jpg" src="http://ak-hdl.buzzfed.com/static/2015-04/21/5/enhanced/webdr12/grid-cell-2501-1429608056-15.jpg" width="203"></img></p>
+ </div>
+ <p>Facebook</p>
+ </div>
+ <div>
+ <div>
+ <p><img height="412" rel:bf_image_src="http://ak-hdl.buzzfed.com/static/2015-04/21/5/enhanced/webdr12/grid-cell-2501-1429608057-18.jpg" src="http://ak-hdl.buzzfed.com/static/2015-04/21/5/enhanced/webdr12/grid-cell-2501-1429608057-18.jpg" width="412"></img></p>
+ </div>
+ <p>Facebook</p>
+ </div>
+
+ </div>
+ </div>
+ <div id="superlist_3758406_5547284" rel:buzz_num="4">
+ <p>West Mercia police <a href="https://www.westmercia.police.uk/article/9500/Warning-Issued-As-Shrewsbury-Woman-Dies-After-Taking-Suspected-Diet-Pills">said the tablets were believed to contain dinitrophenol</a>, known as DNP, which is a highly toxic industrial chemical. </p>
+ <p>“We are undoubtedly concerned over the origin and sale of these pills and are working with partner agencies to establish where they were bought from and how they were advertised,” said chief inspector Jennifer Mattinson from the West Mercia police.</p>
+ <p>The Food Standards Agency warned people to stay away from slimming products that contained DNP.</p>
+ <p>“We advise the public not to take any tablets or powders containing DNP, as it is an industrial chemical and not fit for human consumption,” it said in a statement.</p>
+ </div>
+ <div id="superlist_3758406_5547219" rel:buzz_num="5">
+ <h2>Fiona Parry issued a plea for people to stay away from pills containing the chemical.</h2>
+ <p>“[Eloise] just never really understood how dangerous the tablets that she took were,” she said. “Most of us don’t believe that a slimming tablet could possibly kill us.</p>
+ <p>“DNP is not a miracle slimming pill. It is a deadly toxin.”</p>
+ </div>
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/buzzfeed-1/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/buzzfeed-1/source.html
new file mode 100644
index 000000000..f51556a34
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/buzzfeed-1/source.html
@@ -0,0 +1,5294 @@
+<html class=" fonts-loaded srcset svg inlinesvg no-webp" xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" xmlns:og="http://opengraphprotocol.org/schema/" lang="en">
+
+<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# buzzfeed: http://ogp.me/ns/fb/buzzfeed#">
+ <script src="//connect.facebook.net/en_US/fbds.js" async=""></script>
+ <script src="http://connect.facebook.net/en_US/fbds.js" async=""></script>
+ <script src="http://s3-ak.buzzfed.com/static/js/jemplate/share_button.js" type="text/javascript"></script>
+ <script src="http://s3-ak.buzzfed.com/static/js/jemplate/share_button.js" type="text/javascript"></script>
+ <script src="http://s3-ak.buzzfed.com/static/js/jemplate/share_button.js" type="text/javascript"></script>
+ <script src="http://s3-ak.buzzfed.com/static/js/jemplate/share_button.js" type="text/javascript"></script>
+ <script src="http://s3-ak.buzzfed.com/static/js/jemplate/share_button.js" type="text/javascript"></script>
+ <script src="http://s3-ak.buzzfed.com/static/js/jemplate/share_button.js" type="text/javascript"></script>
+ <script src="http://s3-ak.buzzfed.com/static/js/jemplate/share_button.js" type="text/javascript"></script>
+ <script src="http://s3-ak.buzzfed.com/static/js/jemplate/share_button.js" type="text/javascript"></script>
+ <script src="http://s3-ak.buzzfed.com/static/js/jemplate/share_button.js" type="text/javascript"></script>
+ <script src="http://s3-ak.buzzfed.com/static/js/jemplate/share_button.js" type="text/javascript"></script>
+ <script src="http://s3-ak.buzzfed.com/static/js/jemplate/share_button.js" type="text/javascript"></script>
+ <script src="http://s3-ak.buzzfed.com/static/js/jemplate/share_button.js" type="text/javascript"></script>
+ <script src="http://s3-ak.buzzfed.com/static/js/jemplate/share_button.js" type="text/javascript"></script>
+ <script src="http://s3-ak.buzzfed.com/static/js/jemplate/share_button.js" type="text/javascript"></script>
+ <script src="http://s3-ak.buzzfed.com/static/js/jemplate/share_button.js" type="text/javascript"></script>
+ <script src="http://s3-ak.buzzfed.com/static/js/jemplate/share_button.js" type="text/javascript"></script>
+ <script src="http://s3-ak.buzzfed.com/static/js/jemplate/share_button.js" type="text/javascript"></script>
+ <script src="http://s3-ak.buzzfed.com/static/js/jemplate/share_button.js" type="text/javascript"></script>
+ <script src="http://s3-ak.buzzfed.com/static/js/jemplate/share_button.js" type="text/javascript"></script>
+ <script src="http://s3-ak.buzzfed.com/static/js/jemplate/share_button.js" type="text/javascript"></script>
+ <script src="http://s3-ak.buzzfed.com/static/js/jemplate/share_button.js" type="text/javascript"></script>
+ <script src="http://s3-ak.buzzfed.com/static/js/jemplate/share_button.js" type="text/javascript"></script>
+ <script src="http://s3-ak.buzzfed.com/static/js/jemplate/share_button.js" type="text/javascript"></script>
+ <script src="http://s3-ak.buzzfed.com/static/js/jemplate/share_button.js" type="text/javascript"></script>
+ <script src="http://s3-ak.buzzfed.com/static/js/jemplate/share_button.js" type="text/javascript"></script>
+ <script src="http://s3-ak.buzzfed.com/static/js/jemplate/share_button.js" type="text/javascript"></script>
+ <script src="http://s3-ak.buzzfed.com/static/js/jemplate/share_button.js" type="text/javascript"></script>
+ <script src="http://s3-ak.buzzfed.com/static/js/jemplate/share_button.js" type="text/javascript"></script>
+ <script src="http://s3-ak.buzzfed.com/static/js/jemplate/share_button.js" type="text/javascript"></script>
+ <script async="" src="https://apis.google.com/_/scs/apps-static/_/js/k=oz.gapi.fr.4peQ-SxVWjw.O/m=client,plusone/rt=j/sv=1/d=1/ed=1/am=MQ/rs=AGLTcCOf3Ne3HaK2CinW2J4SVei_iFZnMw/t=zcms/cb=gapi.loaded_0"></script>
+ <script gapi_processed="true" src="https://apis.google.com/js/client:plusone.js?onload=GCallback" type="text/javascript"></script>
+ <script gapi_processed="true" src="https://apis.google.com/js/client:plusone.js?onload=GCallback" type="text/javascript"></script>
+ <script src="http://www.googletagservices.com/tag/js/gpt.js" type="text/javascript" async=""></script>
+ <script>
+ window.document.documentElement.className += " fonts-loaded";
+ </script>
+ <title>Student Dies After Diet Pills She Bought Online "Burned Her Up From Within" - BuzzFeed News</title>
+ <meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
+ <meta name="copyright" content="Copyright 2015 BuzzFeed, Inc. All rights reserved."/>
+ <meta name="description" content="An inquest into Eloise Parry's death has been adjourned until July..."/>
+ <meta property="bf:buzzid" content="3758406"/>
+ <meta property="bf:userid" content="1687686"/>
+ <meta property="author" content="Mark Di Stefano"/>
+ <meta name="news_keywords" content="diet pills, inquests, online shopping, uk"/>
+ <meta name="sailthru.tags" content="diet pills, inquests, online shopping, uk"/>
+ <meta name="apple-itunes-app" content="app-id=352969997, affiliate-data=at=10l3HP&amp;ct=Buzz/SmartBanner"/>
+ <meta name="google-signin-clientid" content="895639880237-tcoheof19odpd88p676rjc70v0iqit0o.apps.googleusercontent.com"/>
+ <meta name="google-signin-cookiepolicy" content="single_host_origin"/>
+ <meta name="google-signin-requestvisibleactions" content="https://schemas.google.com/AddActivity"/>
+ <meta name="google-signin-scope" content="https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/plus.profile.emails.read"/>
+ <meta property="fb:app_id" content="45075597673"/>
+ <meta property="og:site_name" content="BuzzFeed"/>
+ <meta property="fb:admins" content="707356852"/>
+ <meta property="fb:admins" content="689300683"/>
+ <meta property="fb:admins" content="1065534095"/>
+ <meta property="fb:admins" content="583832663"/>
+ <meta property="fb:admins" content="749455540"/>
+ <meta property="fb:admins" content="560468108"/>
+ <meta property="fb:admins" content="731012743"/>
+ <meta property="fb:admins" content="616026830"/>
+ <meta property="fb:admins" content="509245189"/>
+ <meta property="fb:admins" content="10903550"/>
+ <meta property="fb:admins" content="14231094"/>
+ <meta property="fb:admins" content="1806923"/>
+ <meta property="fb:admins" content="1554635003"/>
+ <meta property="fb:admins" content="835967"/>
+ <meta property="fb:admins" content="1234380730"/>
+ <meta property="fb:admins" content="743137474"/>
+ <meta property="fb:admins" content="2208604"/>
+ <meta property="fb:admins" content="28518"/>
+ <meta property="fb:admins" content="15920947"/>
+ <meta property="fb:admins" content="100003945960605"/>
+ <meta property="fb:admins" content="578226154"/>
+ <meta property="fb:admins" content="502418534"/>
+ <meta property="fb:admins" content="5515474"/>
+ <meta property="fb:admins" content="5525520"/>
+ <meta property="fb:admins" content="5205449"/>
+ <meta property="fb:admins" content="648659743"/>
+ <meta property="fb:admins" content="705370117"/>
+ <meta property="fb:admins" content="1351920148"/>
+ <meta property="fb:admins" content="8370474"/>
+ <meta property="fb:admins" content="1387300103"/>
+ <meta property="fb:admins" content="1572780204"/>
+ <meta property="fb:admins" content="100003824101586"/>
+ <meta property="fb:admins" content="1026583096"/>
+ <meta property="fb:admins" content="626540352"/>
+ <meta property="fb:admins" content="1338210367"/>
+ <meta property="fb:admins" content="43102791"/>
+ <meta property="fb:admins" content="100005241975163"/>
+ <meta property="fb:admins" content="1617218809"/>
+ <meta property="fb:admins" content="1215772645"/>
+ <meta property="fb:admins" content="100009270720042"/>
+ <meta property="fb:admins" content="502277904"/>
+ <meta property="fb:admins" content="544697162"/>
+ <meta name="title" content="Student Dies After Diet Pills She Bought Online &quot;Burned Her Up From Within&quot;"/>
+ <meta property="og:title" content="Student Dies After Diet Pills She Bought Online &quot;Burned Her Up From Within&quot;"/>
+ <meta property="og:description" content="An inquest into Eloise Parry's death has been adjourned until July."/>
+ <meta property="og:url" content="http://www.buzzfeed.com/markdistefano/diet-pills-burns-up"/>
+ <meta name="twitter:creator" content="@MarkDiStef"/>
+ <meta property="article:tag" content="inquests"/>
+ <meta property="article:tag" content="online shopping"/>
+ <meta property="article:tag" content="uk"/>
+ <meta property="article:section" content="UKNews"/>
+ <meta property="article:publisher" content="https://www.facebook.com/BuzzFeed"/>
+ <meta property="og:image" content="http://s3-static-ak.buzzfed.com/static/2015-04/22/5/campaign_images/webdr03/student-dies-after-diet-pills-she-bought-online-b-2-28712-1429696299-24_dblbig.jpg"/>
+ <meta property="og:image:width" content="625"/>
+ <meta property="og:image:height" content="415"/>
+ <meta property="og:image:url" content="http://s3-ak.buzzfeed.com/static/2015-04/21/4/enhanced/webdr10/enhanced-6418-1429605460-16.jpg"/>
+ <meta property="og:image:width" content="625"/>
+ <meta property="og:image:height" content="422"/>
+ <meta property="og:image:url" content="http://s3-ak.buzzfeed.com/static/2015-04/21/5/enhanced/webdr12/grid-cell-2501-1429608056-15.jpg"/>
+ <meta property="og:image:width" content="203"/>
+ <meta property="og:image:height" content="412"/>
+ <meta property="og:image:url" content="http://s3-ak.buzzfeed.com/static/2015-04/21/5/enhanced/webdr12/grid-cell-2501-1429608057-18.jpg"/>
+ <meta property="og:image:width" content="412"/>
+ <meta property="og:image:height" content="412"/>
+ <link rel="image_src" href="http://s3-static-ak.buzzfed.com/static/2015-04/22/5/campaign_images/webdr03/student-dies-after-diet-pills-she-bought-online-b-2-28712-1429696299-24_big.jpg"/>
+ <meta property="og:type" content="article"/>
+ <meta name="twitter:card" content="summary_large_image"/>
+ <meta name="twitter:title" content="Student Dies After Diet Pills She Bought Online &quot;Burned Her Up From Within&quot;"/>
+ <meta name="twitter:description" content="An inquest into Eloise Parry's death has been adjourned until July."/>
+ <meta name="twitter:image" content="http://s3-static-ak.buzzfed.com/static/2015-04/22/5/campaign_images/webdr03/student-dies-after-diet-pills-she-bought-online-b-2-28712-1429696299-24_big.jpg"/>
+ <meta name="twitter:site" content="@buzzfeednews"/>
+ <meta name="twitter:url" content="http://www.buzzfeed.com/markdistefano/diet-pills-burns-up"/>
+ <meta name="twitter:title" content="Student Dies After Diet Pills She Bought Online &quot;Burned Her Up From Within&quot;"/>
+ <meta name="twitter:description" content="An inquest into Eloise Parry's death has been adjourned until July."/>
+ <meta name="twitter:app:id:iphone" content="352969997"/>
+ <meta name="twitter:app:url:iphone" content="buzzfeed://buzz/markdistefano/diet-pills-burns-up"/>
+ <meta name="twitter:app:id:ipad" content="352969997"/>
+ <meta name="twitter:app:url:ipad" content="buzzfeed://buzz/markdistefano/diet-pills-burns-up"/>
+ <meta name="twitter:app:id:googleplay" content="com.buzzfeed.android"/>
+ <meta name="twitter:app:url:googleplay" content="http://www.buzzfeed.com/markdistefano/diet-pills-burns-up"/>
+ <link rel="apple-touch-startup-image" href="http://s3-ak.buzzfed.com/static/images/mobile/startup.png"/>
+ <link rel="apple-touch-icon" href="http://s3-ak.buzzfed.com/static/images/mobile/touch-icons/touch-icon-ios_60.png"/>
+ <link rel="apple-touch-icon" sizes="76x76" href="http://s3-ak.buzzfed.com/static/images/mobile/touch-icons/touch-icon-ios_76.png"/>
+ <link rel="apple-touch-icon" sizes="120x120" href="http://s3-ak.buzzfed.com/static/images/mobile/touch-icons/touch-icon-ios_120.png"/>
+ <link rel="apple-touch-icon" sizes="152x152" href="http://s3-ak.buzzfed.com/static/images/mobile/touch-icons/touch-icon-ios_152.png"/>
+ <link rel="apple-touch-icon" sizes="180x180" href="http://s3-ak.buzzfed.com/static/images/mobile/touch-icons/touch-icon-ios_180.png"/>
+ <link rel="shortcut icon" sizes="196x196" href="http://s3-ak.buzzfed.com/static/images/mobile/touch-icons/touch-icon-android.png"/>
+ <link rel="shortcut icon" crossorigin="" href="http://s3-ak.buzzfed.com/static/favicon.ico?v=201504241415" type="image/x-icon"/>
+ <link rel="canonical" href="http://www.buzzfeed.com/markdistefano/diet-pills-burns-up"/>
+ <link rel="alternate" href="http://www.buzzfeed.com/markdistefano/diet-pills-burns-up?s=mobile"/>
+ <link rel="alternate" href="android-app://com.buzzfeed.android/http/www.buzzfeed.com/markdistefano/diet-pills-burns-up?utm_source=google&amp;utm_medium=appindex&amp;utm_campaign=appindex"/>
+ <link rel="alternate" type="application/rss+xml" title="Mark Di Stefano's Buzz" href="/markdistefano.xml"/>
+ <link rel="alternate" type="application/rss+xml" title=" Buzz" href="/tag/.xml"/>
+ <link rel="stylesheet" href="http://s3-ak.buzzfed.com/static/css/ccss/front.desktop.css?v=201504241415" type="text/css"/>
+ <link rel="stylesheet" href="http://s3-ak.buzzfed.com/static/css/header.css?v=201504241415" type="text/css"/>
+ <link rel="stylesheet" href="http://s3-ak.buzzfed.com/static/css/legacy/core1.css?v=201504241415" type="text/css"/>
+ <link rel="stylesheet" href="http://s3-ak.buzzfed.com/static/css/legacy/core2.css?v=201504241415" type="text/css"/>
+ <link rel="stylesheet" href="http://s3-ak.buzzfed.com/static/css/bf_ui.css?v=201504241415" type="text/css"/>
+ <link rel="stylesheet" href="http://s3-ak.buzzfed.com/static/css/legacy/sponsorships.css?v=201504241415" type="text/css"/>
+ <link rel="stylesheet" href="http://s3-ak.buzzfed.com/static/css/permalink.css?v=201504241415" type="text/css"/>
+ <link rel="stylesheet" href="http://s3-ak.buzzfed.com/static/css/ccss/bpage.desktop.css?v=201504241415" type="text/css"/>
+ <!--[if IE 9]> <link rel="stylesheet" href="http://s3-ak.buzzfed.com/static/css/buzzfeed-ie9.css?v=201504241415" type="text/css" charset="utf-8" /> <![endif]-->
+ <!-- TO DO - This should be done by adding the class with Javascript -->
+ <script>
+ var rerankable = '';
+ </script>
+ <style>
+ .post2[style="background-color: #FDF6E5;"],
+ #BF_WIDGET_10,
+ [href^="http://www.faceporn.net/free?"],
+ div[id^="zergnet-widget-"],
+ div[id^="mainads"],
+ td[valign="top"] > .mainmenu[style="padding:10px 0 0 0 !important;"],
+ script[src^="http://free-shoutbox.net/app/webroot/shoutbox/sb.php?shoutbox="] + #freeshoutbox_content,
+ p[id^="div-gpt-ad-"],
+ input[onclick^="window.open('http://www.friendlyduck.com/AF_"],
+ input[onclick^="window.open('http://www.FriendlyDuck.com/AF_"],
+ img[alt^="Fuckbook"],
+ iframe[src^="http://cdn2.adexprt.com/"],
+ iframe[src^="http://cdn1.adexprt.com/"],
+ iframe[src^="http://ad.yieldmanager.com/"],
+ iframe[id^="google_ads_iframe"],
+ iframe[id^="google_ads_frame"],
+ div[id^="div-gpt-ad-"],
+ div[id^="acm-ad-tag-"],
+ div[id^="YFBMSN"],
+ div[id^="MarketGid"],
+ a[style="display:block;width:300px;min-height:250px"][href^="http://li.cnet.com/click?"],
+ a[onmousedown^="this.href='https://paid.outbrain.com/network/redir?"][target="_blank"] + .ob_source,
+ a[onmousedown^="this.href='https://paid.outbrain.com/network/redir?"][target="_blank"],
+ a[onmousedown^="this.href='http://staffpicks.outbrain.com/network/redir?"][target="_blank"] + .ob_source,
+ a[onmousedown^="this.href='http://staffpicks.outbrain.com/network/redir?"][target="_blank"],
+ a[onmousedown^="this.href='http://paid.outbrain.com/network/redir?"][target="_blank"] + .ob_source,
+ a[onmousedown^="this.href='http://paid.outbrain.com/network/redir?"][target="_blank"],
+ [href^="http://taboola-"][href*="/redirect.php?app.type="],
+ [href^="http://paid.outbrain.com/network/redir?"][target="_blank"],
+ [href^="http://games.ucoz.ru/"][target="_blank"],
+ [href^="http://api.taboola.com/"][href*="/recommendations.notify-click?app.type="],
+ [href^="http://amzn.to/"] > img[src^="data"],
+ [href^="//ads.ad-center.com/"],
+ [href^="//adbit.co/?a=Advertise&"],
+ [href^=" http://ads.ad-center.com/"],
+ a[href*="/adrotate-out.php?"],
+ a[href$="/vghd.shtml"],
+ a[data-redirect^="this.href='http://paid.outbrain.com/network/redir?"],
+ [onclick^="window.open('http://adultfriendfinder.com/search/"] {
+ display: none !important;
+ }
+ </style>
+ <script>
+ var bf_start_site_time = new Date().getTime();
+ </script>
+ <script>
+ var trans_gif_1x1_base64 = 'data:image/gif;base64,R0lGODlhAQABAPAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==';
+ </script>
+ <script>
+ var trans_gif_3x2_base64 = 'data:image/gif;base64,R0lGODlhAwACAPAAAAAAAAAAACH5BAEAAAAALAAAAAADAAIAAAIChF8AOw==';
+ </script>
+ <script type="text/javascript">
+ //<![CDATA[
+ if (null !== window.location.search.match("adtest")) {
+ BF_DFP_SITE = 'bfd.test.bpage';
+ document.write('<' + 'div style="position:fixed;top:0;left:0;background:#ff0;color:#000;padding:10px;z-index:99999;font:bold 16px arial;">AD TEST<' + '/div>');
+ } else if (null !== window.location.search.match("giraffe_test")) {
+ BF_DFP_SITE = 'bfd.giraffe_test.bpage';
+ document.write('<' + 'div style="position:fixed;top:0;left:0;background:#ff0;color:#000;padding:10px;z-index:99999;font:bold 16px arial;">GIRAFFE TEST<' + '/div>');
+ } else {
+ BF_DFP_SITE = 'bfd.bpage';
+ }
+
+ BF_TAG = 'tag=noads;';
+ BF_DFP_ZONE = '/uknews';
+ if (typeof BF_DFP_ORD == 'undefined') {
+ BF_DFP_ORD = Math.random() * 100000000000000000;
+ }
+ BF_DFP_KVS = 'bid=3758406;badge=viral;user=markdistefano;nsfw=0';
+ BF_NO_QS = true;
+ BF_DFP_NOADS = {};
+
+ var is_referer = "";
+
+ if (is_referer) {
+ BF_REFERER = is_referer;
+ } else if (document.referrer && !is_referer) {
+ BF_REFERER = document.referrer;
+ if (BF_REFERER.search('buzzfeed.com') != -1) BF_REFERER = 'buzzfeed';
+ } else {
+ BF_REFERER = 'undefined';
+ }
+ BF_REFERER = BF_REFERER.replace('http://', '').replace('https://', '').replace('www.', '').split(/[/?#]/)[0];
+ if (BF_REFERER.match('\.')) BF_REFERER = BF_REFERER.replace(/\./g, '_');
+ else BF_REFERER = BF_REFERER;
+
+
+
+
+ var AB_AD_TEST = false;
+
+ AB_AD_TEST = true;
+
+ var AB_RND_VAL = Math.floor((Math.random() * 100) + 1);
+
+ if (AB_AD_TEST) {
+
+
+
+
+
+
+ if (AB_RND_VAL >= 0 && AB_RND_VAL &lt; 33) {
+ AD_SIDEWIDE_BSU_REDESIGN = 'bsu_a';
+ } else if (AB_RND_VAL > 33 && AB_RND_VAL &lt;= 66) {
+ AD_SIDEWIDE_BSU_REDESIGN = 'bsu_b';
+ } else {
+ AD_SIDEWIDE_BSU_REDESIGN = 'bsu_c'
+ }
+ // GPT B-Page - 100% GPT [excluding f-ad]
+
+
+
+
+
+
+ var AD_DESIGN, AD_THUMBNAIL;
+ AD_THUMBNAIL = 'thumbnailcontrol';
+
+ if (AB_RND_VAL >= 0 && AB_RND_VAL &lt; 0) {
+ AD_DESIGN = 'script';
+ } else {
+ AD_DESIGN = 'gpt';
+ }
+
+ if (window['localStorage'] !== null) {
+
+ if (localStorage.getItem("GPT_BP7") == null) {
+ localStorage.setItem("GPT_BP7", AD_DESIGN);
+ }
+ AD_DESIGN = localStorage.getItem("GPT_BP7");
+
+
+
+ localStorage.setItem("AD_SIDEWIDE_BSU_REDESIGN", AD_SIDEWIDE_BSU_REDESIGN);
+
+ }
+
+ // Add to ab_test.js
+ (function() {
+ if (AB_AD_TEST && AD_DESIGN) {
+ if (typeof abtest != 'undefined' && !abtest.abTests.match(/GPT_BP7/)) {
+ abtest.addTest("GPT_BP7", AD_DESIGN);
+ } else {
+ setTimeout(arguments.callee, 100)
+ }
+ }
+ })();
+
+ } else {
+ AD_DESIGN = 'script';
+ }
+
+
+
+
+
+
+
+
+
+ try {
+ if (AB_AD_TEST && AD_DESIGN == 'gpt') {
+
+ var gptadslots = [];
+ var googletag = googletag || {};
+ googletag.cmd = googletag.cmd || [];
+ (function() {
+ var gads = document.createElement('script');
+ gads.async = true;
+ gads.type = 'text/javascript';
+ var useSSL = 'https:' == document.location.protocol;
+ gads.src = (useSSL ? 'https:' : 'http:') + '//www.googletagservices.com/tag/js/gpt.js';
+ var node = document.getElementsByTagName('script')[0];
+ node.parentNode.insertBefore(gads, node);
+ })();
+
+
+ function loadGPTAd(params) {
+ if (!params || !params['wid']) return false;
+
+ googletag.cmd.push(function() {
+ if (params.infinite_scroll && typeof infinite_slots[params.wid] != 'undefined') {
+ gptadslots[params.wid] = googletag.defineSlot('/6556/' + BF_DFP_SITE + BF_DFP_ZONE, [
+ [5, 5]
+ ], 'div-gpt-ad-' + params.wid)
+ .setTargeting('wid', params.wid)
+ .setTargeting('pos', [infinite_slots[params.wid]])
+ .addService(googletag.pubads());
+ } else if (params.sidebar) {
+ gptadslots[params.wid] = googletag.defineSlot('/6556/' + BF_DFP_SITE + BF_DFP_ZONE, [
+ [3, 3]
+ ], 'div-gpt-ad-' + params.wid)
+ .setTargeting('wid', params.wid)
+ .setTargeting('pos', ['sidebar'])
+ .setTargeting('posnum', parseInt(params.wid, 10) - 4)
+ .setTargeting("nsfw", 0)
+ .setTargeting("user", 'markdistefano')
+
+ .setTargeting("bid", '3758406')
+
+
+ .setTargeting("badge", 'viral')
+
+
+ .addService(googletag.pubads());
+ }
+ /* Weekend Promo Ad Unit */
+ if (params.sitewideweekend) {
+ gptadslots[params.wid] = googletag.defineSlot('/6556/' + BF_DFP_SITE + BF_DFP_ZONE, [
+ [5, 5]
+ ], 'div-gpt-ad-' + params.wid)
+ .setTargeting('wid', params.wid)
+ .setTargeting('pos', ['sitewideweekend'])
+ .setTargeting("nsfw", 0)
+ .setTargeting("user", 'markdistefano')
+
+ .setTargeting("bid", '3758406')
+
+
+ .setTargeting("badge", 'viral')
+
+
+ .addService(googletag.pubads());
+ }
+ if (params.pos) {
+ gptadslots[params.wid] = googletag.defineSlot('/6556/' + BF_DFP_SITE + BF_DFP_ZONE, [params.size], 'div-gpt-ad-' + params.wid)
+ .setTargeting('wid', params.wid)
+ .setTargeting('pos', [params.pos])
+ .setTargeting('abtest', params.abtest)
+
+ .setTargeting("nsfw", 0)
+ .setTargeting("user", 'markdistefano')
+
+ .setTargeting("bid", '3758406')
+
+ .addService(googletag.pubads());
+
+
+ (function() {
+ if (AB_AD_TEST) {
+ if (typeof abtest != 'undefined' && !abtest.abTests.match(new RegExp(params.pos.toUpperCase()))) {
+ abtest.addTest(params.pos.toUpperCase(), params.abtest);
+ } else {
+ setTimeout(arguments.callee, 100)
+ }
+ }
+ })();
+
+ }
+ /*END Weekend Promo Ad Unit */
+ googletag.display('div-gpt-ad-' + params.wid);
+ googletag.pubads().refresh([gptadslots[params.wid]], {
+ changeCorrelator: false
+ });
+ });
+ }
+
+ googletag.cmd.push(function() {
+
+
+ // BPAGE GPT ADS (bsu + sitewide)
+ gptadslots[13] = googletag.defineSlot('/6556/' + BF_DFP_SITE + BF_DFP_ZONE, [
+ [300, 250]
+ ], 'div-gpt-ad-13')
+ .setTargeting('wid', '13')
+ .setTargeting('pos', ['bigstorybpage'])
+ .setTargeting('flex_medium', ['bigstory'])
+ .setTargeting("nsfw", 0)
+ .setTargeting("user", 'markdistefano')
+
+ .setTargeting("bid", '3758406')
+
+ //TODO: remove when sidewide_bsu_redesign test in #81670260 ends
+ .setTargeting('abtest', AD_SIDEWIDE_BSU_REDESIGN)
+
+
+
+ .setTargeting("badge", 'viral')
+
+
+ .addService(googletag.pubads());
+ gptadslots[9] = googletag.defineSlot('/6556/' + BF_DFP_SITE + BF_DFP_ZONE, [
+ [5, 5]
+ ], 'div-gpt-ad-9')
+ .setTargeting('wid', '9')
+ .setTargeting('pos', ['story-bpage'])
+ .setTargeting("nsfw", 0)
+ .setTargeting("user", 'markdistefano')
+
+ .setTargeting("bid", '3758406')
+
+
+ .setTargeting("badge", 'viral')
+
+
+ .addService(googletag.pubads());
+
+
+ googletag.pubads().enableSingleRequest();
+ googletag.pubads().disableInitialLoad();
+ googletag.pubads().setTargeting('poe', BF_REFERER);
+ googletag.pubads().setTargeting('abtest', AD_DESIGN);
+ googletag.pubads().setTargeting('ord', BF_DFP_ORD.toString());
+ googletag.pubads().enableAsyncRendering();
+ googletag.enableServices();
+ });
+
+ }
+ } catch (err) {
+ console.log(err);
+ }
+
+
+ function local_ad_call(wid, uparam, extra_params) {
+ if (BF_STATIC.bf_test_mode && document.cookie.match('sel2_ad') === null && document.cookie.match('sel2_gtrack') === null) {
+ console.info('disable DFP (dfp_tags.tt)');
+ return;
+ }
+
+ (function() {
+ var BF_WIDGET_JS = document.createElement('script');
+ BF_WIDGET_JS.type = "text/javascript";
+ BF_WIDGET_JS.async = true;
+ var BF_WIDGET_SRC = "http://ct.buzzfeed.com/wd/UserWidget?u=" + uparam + "&network=buzzfeed&uo=1&or=v&ct=1&cs=1&wid=" + wid + extra_params + "&cb=" + (new Date()).getTime();
+ setTimeout(function() {
+ document.getElementById('BF_WIDGET_' + wid).appendChild(BF_WIDGET_JS);
+ BF_WIDGET_JS.src = BF_WIDGET_SRC
+ }, 1);
+ })();
+ }
+
+ //]]>
+ </script>
+ <script type="text/javascript">
+ var homePageLink = {
+ 'fr': '/' + ('live' == 'dev' ? 'index' : '') + '?country=fr',
+ 'es': '/' + ('live' == 'dev' ? 'index' : '') + '?country=es',
+ 'pt': '/' + ('live' == 'dev' ? 'index' : '') + '?country=br',
+ 'de': '/' + ('live' == 'dev' ? 'index' : '') + '?country=de',
+ 'mx': '/' + ('live' == 'dev' ? 'index' : '') + '?country=mx'
+ };
+
+ var countryLangLookup = {
+ 'fr': 'fr_FR',
+ 'es': 'es_ES',
+ 'pt': 'pt_BR',
+ 'de': 'de_DE',
+ 'mx': 'es_MX'
+ };
+
+ var liveCountries = {
+ 'us': 1,
+ 'uk': 1,
+ 'au': 1,
+ 'in': 1,
+ 'br': 1,
+ 'pt': 1,
+ 'es': 1,
+ 'fr': 1,
+ 'de': 1,
+ 'mx': 1
+ };
+
+ var cookieBarVerticalBpageMessage = {
+ 'fr': "Vous connaissez BuzzFeed France? &lt;a href='" + homePageLink['fr'] + "'>C'est par ici!&lt;/a>",
+ 'es': "Ya viste BuzzFeed en Espa&ntilde;ol? &lt;a href='" + homePageLink['es'] + "'>&iexcl;Pasa a darle una mirada!&lt;/a>",
+ 'pt': "J&aacute; viu BuzzFeed Brasil? &lt;a href='" + homePageLink['pt'] + "'>Venha conferir!&lt;/a>"
+ };
+ </script>
+ <script type="text/javascript">
+ /* modernizr v3.0.0-alpha
+ * Build http://modernizr.com/download/#-inlinesvg-srcset-svg-webp-cssclasses
+ */
+ ! function(e, n) {
+ function A(e, n) {
+ return typeof e === n
+ }
+
+ function t() {
+ var e, n, t, o, a, s, f;
+ for (var u in i) {
+ if (e = [], n = i[u], n.name && (e.push(n.name.toLowerCase()), n.options && n.options.aliases && n.options.aliases.length))
+ for (t = 0; t &lt; n.options.aliases.length; t++) e.push(n.options.aliases[t].toLowerCase());
+ for (o = A(n.fn, "function") ? n.fn() : n.fn, a = 0; a &lt; e.length; a++) s = e[a], f = s.split("."), 1 === f.length ? r[f[0]] = o : 2 === f.length && (!r[f[0]] || r[f[0]] instanceof Boolean || (r[f[0]] = new Boolean(r[f[0]])), r[f[0]][f[1]] = o), l.push((o ? "" : "no-") + f.join("-"))
+ }
+ }
+
+ function o(e) {
+ var n = f.className,
+ A = r._config.classPrefix || "";
+ if (r._config.enableJSClass) {
+ var t = new RegExp("(^|\\s)" + A + "no-js(\\s|$)");
+ n = n.replace(t, "$1" + A + "js$2")
+ }
+ r._config.enableClasses && (n += " " + A + e.join(" " + A), f.className = n)
+ }
+
+ function a(e, n) {
+ if ("object" == typeof e)
+ for (var A in e) c(e, A) && a(A, e[A]);
+ else {
+ e = e.toLowerCase();
+ var t = e.split("."),
+ i = r[t[0]];
+ if (2 == t.length && (i = i[t[1]]), "undefined" != typeof i) return r;
+ n = "function" == typeof n ? n() : n, 1 == t.length ? r[t[0]] = n : 2 == t.length && (!r[t[0]] || r[t[0]] instanceof Boolean || (r[t[0]] = new Boolean(r[t[0]])), r[t[0]][t[1]] = n), o([(n && 0 != n ? "" : "no-") + t.join("-")]), r._trigger(e, n)
+ }
+ return r
+ }
+ var i = [],
+ s = {
+ _version: "v3.0.0pre",
+ _config: {
+ classPrefix: "",
+ enableClasses: !0,
+ enableJSClass: !0,
+ usePrefixes: !0
+ },
+ _q: [],
+ on: function(e, n) {
+ var A = this;
+ setTimeout(function() {
+ n(A[e])
+ }, 0)
+ },
+ addTest: function(e, n, A) {
+ i.push({
+ name: e,
+ fn: n,
+ options: A
+ })
+ },
+ addAsyncTest: function(e) {
+ i.push({
+ name: null,
+ fn: e
+ })
+ }
+ },
+ r = function() {};
+ r.prototype = s, r = new r;
+ var l = [],
+ f = n.documentElement,
+ u = function() {
+ return "function" != typeof n.createElement ? n.createElement(arguments[0]) : n.createElement.apply(n, arguments)
+ };
+ r.addTest("srcset", "srcset" in u("img"));
+ var c;
+ ! function() {
+ var e = {}.hasOwnProperty;
+ c = A(e, "undefined") || A(e.call, "undefined") ? function(e, n) {
+ return n in e && A(e.constructor.prototype[n], "undefined")
+ } : function(n, A) {
+ return e.call(n, A)
+ }
+ }(), s._l = {}, s.on = function(e, n) {
+ this._l[e] || (this._l[e] = []), this._l[e].push(n), r.hasOwnProperty(e) && setTimeout(function() {
+ r._trigger(e, r[e])
+ }, 0)
+ }, s._trigger = function(e, n) {
+ if (this._l[e]) {
+ var A = this._l[e];
+ setTimeout(function() {
+ var e, t;
+ for (e = 0; e &lt; A.length; e++)(t = A[e])(n)
+ }, 0), delete this._l[e]
+ }
+ }, r._q.push(function() {
+ s.addTest = a
+ }), r.addAsyncTest(function() {
+ function e(e, n, A) {
+ function t(n) {
+ var t = "load" === n.type ? 1 == o.width : !1,
+ i = "webp" === e;
+ a(e, i ? new Boolean(t) : t), A && A(n)
+ }
+ var o = new Image;
+ o.onerror = t, o.onload = t, o.src = n
+ }
+ var n = [{
+ uri: "data:image/webp;base64,UklGRiQAAABXRUJQVlA4IBgAAAAwAQCdASoBAAEAAwA0JaQAA3AA/vuUAAA=",
+ name: "webp"
+ }, {
+ uri: "data:image/webp;base64,UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAABBxAR/Q9ERP8DAABWUDggGAAAADABAJ0BKgEAAQADADQlpAADcAD++/1QAA==",
+ name: "webp.alpha"
+ }, {
+ uri: "data:image/webp;base64,UklGRlIAAABXRUJQVlA4WAoAAAASAAAAAAAAAAAAQU5JTQYAAAD/////AABBTk1GJgAAAAAAAAAAAAAAAAAAAGQAAABWUDhMDQAAAC8AAAAQBxAREYiI/gcA",
+ name: "webp.animation"
+ }, {
+ uri: "data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAAAAAAfQ//73v/+BiOh/AAA=",
+ name: "webp.lossless"
+ }],
+ A = n.shift();
+ e(A.name, A.uri, function(A) {
+ if ("load" === A.type)
+ for (var t = 0; t &lt; n.length; t++) e(n[t].name, n[t].uri)
+ })
+ }), r.addTest("svg", !!n.createElementNS && !!n.createElementNS("http://www.w3.org/2000/svg", "svg").createSVGRect), r.addTest("inlinesvg", function() {
+ var e = u("div");
+ return e.innerHTML = "&lt;svg/>", "http://www.w3.org/2000/svg" == (e.firstChild && e.firstChild.namespaceURI)
+ }), t(), o(l), delete s.addTest, delete s.addAsyncTest;
+ for (var p = 0; p &lt; r._q.length; p++) r._q[p]();
+ e.Modernizr = r
+ }(window, document);
+ </script>
+ <script src="http://s3-ak.buzzfed.com/static/js/prototype/prototype.1.7-compact.js" type="text/javascript"></script>
+ <script type="text/javascript">
+ window.hasOwnProperty = Object.prototype.hasOwnProperty;
+
+ var fb_is_enabled = false;
+
+ fb_is_enabled = true;
+
+
+
+
+
+
+
+
+ var buzzDetails = {
+ ad: 0,
+ raw: 1,
+ nsfw: 0,
+ login: "terminal",
+ editor: "terminal" == "terminal" ? 1 : 0,
+ user: "terminal" == "contribute" ? 1 : 0,
+ trigger: 0,
+ postBadges: "viral" + "," + "",
+ postTags: "--ad-noads" + "," + "--primarykeyword-diet pills" + "," + "inquests" + "," + "online shopping" + "," + "uk" + "," + "",
+ f_partner: 0,
+ published: "2015-04-21 05:29:39",
+ category_name: "UKNews",
+ form: "super",
+ language: "en",
+ breaking: 0,
+ uri: "diet-pills-burns-up"
+ };
+
+
+ var BF_STATIC = {
+ country: 'us',
+ language: 'en',
+ non_english: 0,
+ translation_debug: 0,
+ static_root: 'http://s3-ak.buzzfed.com/static',
+ image_root: 'http://s3-ak.buzzfeed.com',
+ web_root: '',
+ version: '201504241415',
+ facebook_enabled: fb_is_enabled,
+ fb_app_id: '45075597673',
+ fb_api_key: '',
+ fb_api_version: 'v2.2',
+ fb_template_bundle_id: '',
+ fb_quickpost_template_bundle_id: '',
+ fb_badge_vote_template_bundle_id: '',
+ fb_love_vote_template_bundle_id: '',
+ fb_server_root: '',
+ twitter_api_key: 'vQjpMo8qABmqag9607Hg',
+ terminal_root_url: 'http://terminal.buzzfeed.com/',
+ fb_loader_server: '',
+ cookie_age_limit_hours: 24,
+ generated_timestamp: 1430141324,
+ page: 'Buzz',
+ tt_page: 'Buzz',
+ login_cookie_version: '1.0',
+ html5_video: false,
+ front_page_click_sample: 100,
+ bf_env: 'live',
+ referer: "",
+ bf_test_mode: false,
+ bf_category: '122',
+ big_image_root: 'http://ak-hdl.buzzfed.com',
+ image_service_root: 'http://s3-static-ak.buzzfed.com',
+ custom_ga_url: false,
+ BF_Beta_HP: false,
+ react_cam: true,
+ buzz_name: "Student Dies After Diet Pills She Bought Online \"Burned Her Up From Within\"",
+ buzz_blurb: "<b>An inquest into Eloise Parry&#8217;s death has been adjourned until July.</b>",
+ vertical: "uknews",
+ campaignid: "3758406",
+ f_ad: "",
+ username: "markdistefano",
+ user_is_f_ad: "0",
+ google_plus_client_id: "895639880237-tcoheof19odpd88p676rjc70v0iqit0o.apps.googleusercontent.com",
+ google_public_api_browser_key: 'AIzaSyBNj6Jq504-YFNx7I1SQei5x73orklpwnQ',
+ google_plus_client_id: "895639880237-tcoheof19odpd88p676rjc70v0iqit0o.apps.googleusercontent.com",
+ timequeue: [],
+ z: "4FFJJW",
+ hp_type: "",
+ mango_host: 'mango.buzzfeed.com',
+ page_layout: {
+ regions: {
+ bf_comments: false,
+ share_buttons: true,
+ facebook_comments: true,
+ reactions: false,
+ top_thumbstrip: true,
+ nexton: true,
+ sidebar: true,
+ infinite_content: true,
+ related_units: true,
+ hoton: true,
+ text_promo: true
+ }
+ },
+ show_post_content_only: "",
+ public_draft: "0",
+ pixiedust_sampling_rate: 1,
+ pixiedust_pound_sampling_rate: 1,
+ optimization_variations: {
+ control: 0.5,
+ collaborate: 0.5
+ },
+ collaborate_api: "collaborate.buzzfeed.com",
+ buzz_wide: 0
+
+ };
+
+
+ BF_STATIC.socket_server = "http://buzzsockets.buzzfeed.com:80";
+
+
+ var Cloud = {
+ "servers": ['alleyezonme-collection.buzzfeed.com'],
+ "report": 'http://wac.09fc.edgecastcdn.net/8009FC/dg-stats/_stats/buzz',
+ "staging": {
+ server: 'ec2-50-16-13-235.compute-1.amazonaws.com',
+ sample: 0
+ }
+ };
+
+ BF_server = "/buzzzfeed/";
+
+ if (!window.console) {
+ window.console = {};
+ }
+
+ $A(["assert", "count", "debug", "dir", "dirxml", "error", "group", "groupEnd", "info", "log", "profile", "profileEnd", "time", "timeEnd", "trace", "warn"]).each(function(method) {
+ if (!console[method]) {
+ if (method == 'error') {
+ console[method] = function(info) {
+ var error_image = new Image();
+ if (typeof(info) == 'object') info = Object.toJSON(info);
+ var page = window.location.href,
+ user_agent = navigator.userAgent;
+ error_image.src = '/go/small.gif?error_info=' + escape(info) + '&page=' + escape(page) + '&useragent=' + escape(user_agent);
+ }
+ } else {
+ console[method] = function() {};
+ }
+ }
+ });
+
+ /* ie? */
+ // even though we don't use IE8 and under we're not touching this code for now
+ var ieV = parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf("MSIE") + 5));
+ Prototype.Browser.IE6 = (Prototype.Browser.IE && ieV == 6);
+ Prototype.Browser.IE7 = (Prototype.Browser.IE && ieV == 7);
+ Prototype.Browser.IE8 = (Prototype.Browser.IE && ieV == 8);
+ Prototype.Browser.IE9 = (Prototype.Browser.IE && ieV == 9);
+ Prototype.Browser.IE10 = (Prototype.Browser.IE && ieV == 1 || ieV == 10);
+
+ /* ff? */
+ Prototype.Browser.FF2 = (navigator.userAgent.indexOf("Firefox/2") != -1 && navigator.userAgent.match(/Firefox\/2\d+/).length == 0);
+ Prototype.Browser.FF3_5 = (navigator.userAgent.indexOf("Firefox/3.5") != -1);
+ Prototype.Browser.FF3_6 = (navigator.userAgent.indexOf("Firefox/3.6") != -1);
+
+ /* clicktrack */
+ function bfct(ct) {
+ var img = new Image();
+ img.src = ct;
+ }
+ </script>
+ <script type="text/javascript" charset="utf-8">
+ BF_STATIC['browser_language_settings'] = 'fr-FR,en-US;q=0.7,en;q=0.3';
+ </script>
+ <script type="text/javascript" charset="utf-8">
+ BF_STATIC['country_track'] = 'FR';
+ </script>
+ <script src="http://s3-ak.buzzfed.com/static/js/General_concat_header.js?v=201504241415" type="text/javascript" ref:jsconf="true"></script>
+ <script src="http://s3-ak.buzzfed.com/static/js/User_and_Buzz_concat_header.js?v=201504241415" type="text/javascript" ref:jsconf="true"></script>
+ <style></style>
+ <script type="text/javascript" charset="utf-8">
+ // ***** DFP *****
+
+ //INFLATED-BY-PUBLISHER
+
+ if ('hashtrack' in window) hashtrack.init();
+
+ var tracker = new Tracker();
+ tracker.setDefaults({
+ c: "7FNW2J7",
+ u: "7717MJ7",
+ buzz: "diet-pills-burns-up",
+ user: "markdistefano"
+ });
+ tracker.add();
+ tracker.run();
+ BuzzLoader.register(function() {
+ tracker.attach();
+ }, 5);
+ var _cs = _cs || [];
+ _cs.push({
+ c1: "2",
+ c2: "18415030",
+ ns_site: "buzzfeed-poc"
+ });
+ var _gaq = _gaq || [];
+ var pluginUrl = (('https:' == document.location.protocol) ? 'https://ssl.' : 'http://www.') + 'google-analytics.com/plugins/ga/inpage_linkid.js';
+ _gaq.push(['_require', 'inpage_linkid', pluginUrl]);
+ _gaq.push(['_setAccount', 'UA-1740781-1']);
+ _gaq.push(['_setDomainName', 'buzzfeed.com']);
+ if (typeof window['HASH_REFER'] != 'undefined') _gaq.push(['_setReferrerOverride', window['HASH_REFER']]);
+
+
+ function GAPageLoad() {
+ try {
+ _gaq.push(['_setCampaignCookieTimeout', 0]);
+ _gaq.push(['_setPageGroup', '2', 'buzz']);
+
+ if (BF_STATIC.custom_ga_url != false) {
+ _gaq.push(['_set', 'page', BF_STATIC.custom_ga_url]);
+ _gaq.push(['_trackPageview', BF_STATIC.custom_ga_url]);
+ } else {
+ _gaq.push(['_trackPageview', (window.location.pathname + window.location.search.replace(/[?&]utm_term=[a-z0-9]*/, ''))]);
+ }
+
+ if (typeof BFW_Util == 'object') {
+ var country = (BFW_Util.getCookie("country") != null && BFW_Util.getCookie("country") != 'us' ? BFW_Util.getCookie("country") : 'us');
+ _gaq.push(['_trackPageview', '/_ga/' + country + window.location.pathname]);
+ }
+ _gaq.push(['_trackPageview', '/_ga/news' + window.location.pathname]);
+
+
+ _satellite.pageBottom();
+ } catch (err) {}
+ }
+
+ QuantcastCounter = 0;
+
+ function QuantPageLoad() {
+ if (typeof(_qevents) == 'undefined' && QuantcastCounter &lt; 20) {
+ QuantcastCounter++;
+ setTimeout("QuantPageLoad()", 250);
+ return false;
+ }
+ var quantLabel = "",
+ hasHash = (typeof hashtrack != 'undefined' && typeof hashtrack.tracked_hash_tag != 'undefined' ? true : false);
+
+ quantLabel = "Buzz.markdistefano.diet-pills-burns-up";
+ if (hasHash) {
+ quantLabel += ".Hash." + hashtrack.tracked_hash_tag;
+ }
+ quantLabel += ", uknews";
+ if (hasHash) {
+ quantLabel += ", Hash." + hashtrack.tracked_hash_tag + "." + "markdistefano";
+ }
+
+ _qevents.push({
+ qacct: "p-3aud4J6uA4Z6Y",
+ labels: quantLabel
+ });
+
+ }
+
+
+
+
+
+
+
+ (function() {
+ var ga = document.createElement('script');
+ ga.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'stats.g.doubleclick.net/dc.js';
+ ga.setAttribute('async', 'true');
+ document.documentElement.firstChild.appendChild(ga);
+ gtrack.setCustomVars(3, {
+ 1: "Web",
+ 3: 'Buzz'
+ });
+ gtrack.setBuzzCVs();
+ gtrack.setVisitCVs();
+ gtrack.setUserCVs();
+ gtrack.abTracking();
+ })();
+
+
+ var _qevents = _qevents || [];
+ (function() {
+ var qc = document.createElement('script');
+ qc.src = (document.location.protocol == "https:" ? "https://secure" : "http://edge") + ".quantserve.com/quant.js";
+ qc.setAttribute('async', 'true');
+ qc.type = "text/javascript";
+ document.documentElement.firstChild.appendChild(qc);
+ QuantPageLoad();
+ })();
+
+
+ var _comscore = _comscore || [];
+ _comscore.push({
+ c1: "2",
+ c2: "6768151"
+ });
+ (function() {
+ var cs = document.createElement("script");
+ cs.src = (document.location.protocol == "https:" ? "https://sb" : "http://b") + ".scorecardresearch.com/beacon.js";
+ cs.setAttribute('async', 'true');
+ document.documentElement.firstChild.appendChild(cs);
+ })();
+ </script>
+ <script async="true" src="http://stats.g.doubleclick.net/dc.js"></script>
+ <script type="text/javascript" async="true" src="http://edge.quantserve.com/quant.js"></script>
+ <script async="true" src="http://b.scorecardresearch.com/beacon.js"></script>
+ <script language="javascript">
+ acls = eval('({"group:brasil":["1271266","1335930","1335962","1870174","2478580","2478583","298095"],"queue_edit_audio":["1444088","1470778","group:superusers_us"],"queue_add_politics":["1003504","122429","1385295","2170678","2202803","2250863","227410","229172","230577","2328384","233242","259106","2741249","2855175","2870875","2956136","315300","315836","384520","568833","590158","686094","741910","824585","group:superusers_us"],"team_uknews":["1312775","1578896","2546507"],"mobile_homepage_edit":["p_developer_admin"],"brasil_homepage_edit":["1271266","298095","50","p_admin"],"australia_homepage_edit":["1197853","group:aus","group:edit_homepage_superusers","p_admin","p_developer_admin"],"test_oauth":["1","122429","1253","16062","187839","237968","266291","270926","3","336417","498631","55127"],"queue_edit_sports":["122429","1312880","2328384","267816","3","324633","386666","500733","group:superusers_us"],"pound":["p_admin","p_developer_admin"],"string_translation_moderator_purge":["122429","1485480","1717855","2484348","2813670","298095","66780","950397"],"buzz_homepage_edit":["1156822","16062","162354","2231567","266291","267816","364258","671752","736796","group:superusers_us","p_admin","p_developer_admin"],"francenews_homepage_edit":["2704195","2956221","p_developer_admin"],"queue_add_aunews":["1687686","845485","p_developer_admin"],"queue_edit_france":["1171016","238321","50","66780","group:france"],"queue_edit_food":["1273705","1273728","1845123","187839","1941119","2111936","2741249","339859","362601","386666","403790","537989","7","746557","group:superusers_us"],"delete_user_posts":["1003271","1108700","1115321","1253","1271266","1484259","16062","1849464","1896006","2111902","237968","238321","247883","270926","2747382","298095","339859","352440","357755","370320","401153","422680","428","55127","673572","7","707630","710080","751011","822569","84004","845485","935435","group:community_mods","p_admin"],"queue_add_france":["1171016","238321","50","66780","group:france"],"megaphone":["1273705","1273728","2111936","230684","336417","339859","40846","7","p_admin","p_editor_admin"],"queue_edit_francenews":["2704195","2956221","p_developer_admin"],"engagement_calculator":["1434527","176195","1830834","195079","2","270771","330597","54","963073","p_admin"],"advertising_leads":["336548","p_admin"],"queue_super_admin":["1","115350","1171016","1212587","122429","16062","194239","259106","3","386666","471","65","76","group:superusers_us"],"team_health":["1966022","2111936","2388155","2675381"],"queue_edit_health":["1273705","1273728","1966022","2111936","2388155","2675381","2741249","339859","537989","group:superusers_us","p_developer_admin"],"gif_feed_admin":["1171016","288662","p_developer_admin"],"queue_draft_to_publish":["p_developer_admin","p_editor_admin","p_partner_admin"],"queue_add_books":["1171016","p_editor_admin"],"plugin_moderation":["p_admin","p_developer_admin"],"homepage_edit":["1","1171016","1197853","1212587","122429","1904742","2081783","2328384","2854113","3","333563","370234","386666","403790","411700","65","66780","76","group:edit_homepage","group:edit_homepage_superusers"],"rest_api":["1277823","1694553","1745207","2066708","2066727","2066742","2066748","2066785","2138898","2138899","2138900","2212335","2401722","2547499","2580590","852110","899537","p_admin","p_developer_admin","p_editor_admin"],"queue_add_uk":["3","group:superusers_us","group:uk"],"queue_add_lgbt":["1171016","1984323","2081378","2111902","2170678","2231552","2250863","3","315836","376554","418643","462098","471","824585","group:superusers_us"],"pugopticon":["p_admin","p_developer_admin"],"lifestyle_homepage_edit":["1273705","1273728","1845123","1941119","1987041","2077242","2111936","336417","339859","40846","7","group:superusers_us","p_admin","p_developer_admin"],"team_parents":["1848921","792154"],"acl_edit":["1277776","1470778","2680742","p_admin"],"group:germany":["1896006","1923108","1923120","2053449","2591348","2591352"],"mexico_homepage_edit":["1171016","2484348","50","group:mexico","p_admin"],"quizzes_homepage_edit":["251155","267816","323444","group:superusers_us","p_admin","p_developer_admin"],"edit_user_client":["1","1171016","1212587","122429","2854113","3","386666","403790","65","76"],"editors_manage":["p_developer_admin","p_editor_admin"],"queue_edit_politics":["1003504","122429","2170678","2202803","2250863","233242","315300","590158","824585","group:superusers_us"],"queue_edit_style":["1273705","1273728","1661842","1845123","1941119","1987041","2111936","2231441","2236203","2741249","2848235","341645","40846","537989","7","group:superusers_us"],"queue_add_ideas":["1171016","2111902","2250863","2268055","2478648","2666258","group:superusers_us"],"queue_add_sports":["122429","2993270","3","386666","p_editor_admin"],"queue_add_australia":["2111902","238321","84004","group:aus"],"team_germany":["1171016","122429","1485480","1717855","2484348","2557882","2577162","2741611","2925518","66780","882394","963058","group:germany"],"edit_user_accounts":["p_admin","p_developer_admin","p_editor_admin","p_partner_admin"],"buzz_metadata":["1108320","1116949","1171016","12405","1253","1271266","1369134","149163","16062","1661938","1770243","190806","237968","2498866","2604687","266291","2699763","2699765","270926","302504","328249","341645","370320","391947","403774","422680","50","659572","69866","939067","group:aus","group:france","group:germany","group:india","group:mexico","p_admin","p_developer_admin"],"queue_edit_geeky":["115350","1171016","16062","267816","329408","group:superusers_us"],"queue_add_videos":["1000035","1086982","1171016","122429","2328384","240684","2958561","2959236","2961129","2961253","2963038","2966491","31899","386666","545436","545461","771922","963058","group:edit_video","p_editor_admin"],"entertainment_homepage_edit":["1108610","1385527","2478485","2478648","370035","370453","386254","418529","736840","885067","group:superusers_us","p_admin","p_developer_admin"],"hp_drag":["1197853","1470778","1578896","194239","2053449","2081783","2546507","333563","370234","411700","4146","66780","group:edit_homepage","group:superusers_us"],"group:edit_life":["1273728","1845123","1848921","1941119","1966022","1987041","2111936","2138524","2231441","2236203","2388155","2635268","2635279","2635417","2675381","2741249","2741267","2957479","2957481","2957492","336417","339859","362601","40846","7","736795","746557","792154"],"queue_edit_usnews":["2170678","2250863","2318153","2633715","500733","group:superusers_us"],"embed_whitelist":["p_admin"],"queue_edit_india":["1171016","386666","673572"],"unswitch_users":["1","1171016","1212587","122429","2081783","2854113","3","386666"],"queue_add_espanol":["1015411","122429","1253","1485480","238321","298095","427759","50","66780"],"slide_to_publish":["1027352","1089121","1108335","1108610","1108700","1115290","1156822","1171016","1212587","1273705","1273728","1369134","1458590","1661938","185968","2057907","2081698","2231552","2526433","2591352","2699765","370320","370453","386666","418529","532900","575948","659572","683475","736815","736840","76","833164","923522"],"queue_edit_books":["1054915","1171016","1953376","2328384","267816","386666","66780","group:superusers_us"],"queue_edit_music":["1171016","1559191","2053512","2136851","267816","295325","323444","group:superusers_us"],"queue_add_francenews":["2704195","2956221","822569","989100","p_developer_admin"],"picks_delete_from_anywhere":["1171016","1516092","1644469","357755","p_admin"],"uk_homepage_edit":["1253","238321","845485","group:edit_homepage_superusers","group:uk","p_admin"],"dashboard_custom_daterange":["!2031357","!2112279","f_ad","p_admin","p_developer_admin","p_editor_admin","p_partner_admin"],"general_advertiser":["f_ad","p_admin"],"queue_edit_travel":["1171426","1273728","1845123","1941119","2111936","267816","2741249","537989","group:superusers_us"],"queue_add_audio":["1081451","1171016","1444088","1470778","2906221","group:superusers_us"],"assign_bf_contributor":["p_admin"],"edit_user_posts":["1928635","312860","345930","357755","397967","412473","60694","615244","63387","727930","734362","750320","967593","p_admin","p_developer_admin","p_editor_admin"],"buzz_quick_link":["p_admin"],"news_homepage_edit":["1896880","2170678","2250852","2250863","2318153","2633715","2634389","group:superusers_us","p_admin","p_developer_admin"],"group:edit_news":["1003271","1003504","1026792","1089121","1108335","1108610","1156833","1193475","1301639","1312775","1312880","1336055","1353057","1385527","1387362","1434327","1442705","1484259","1559191","1578896","1610676","1614116","1687686","1740300","1823255","1850152","187839","1896880","1946840","1984323","2020696","2053512","2081378","2107477","2111783","2111902","2136851","2170674","2170678","2183452","2202803","2231436","2231552","2250852","226184","227410","229172","230577","2318153","2321795","2325401","233242","238321","2389092","2441426","2478447","2478468","2478478","2478479","2478482","2478485","2478648","2498432","2498866","251155","2512232","2512313","2512317","2546507","2570218","2570956","2577162","259106","260121","2608507","2633715","2634389","2666256","2666258","2671964","2699763","2699765","2704195","2739038","2739043","2777615","2855175","2870875","2883570","2956136","2956221","2965923","2990083","315300","315836","339184","352440","370035","370453","376554","384520","386254","418529","418643","422588","423472","450483","462098","568833","575948","590158","683073","686094","710080","712971","719068","741910","751011","76","780484","824585","836009","84004","841725","845485","885067","893445","935435","963170","991461"],"edit_partner_posts":["1171016","1353444","2493459","p_partner_admin"],"group:edit_homepage":["12405","1253","1484259","16062","1685059","1687686","1740300","2111902","2170674","2250852","2318153","238321","2478468","247883","2739043","300943","352440","423472","710080","741910","751011","780484","84004","935435"],"dashboard_bf_view":["p_admin"],"boost_moderation_view":["p_admin"],"team_comedy":["2396385"],"queue_edit_longform":["1108320","1171016","1212587","1301639","2250863","3","370320","386666","659572","group:superusers_us"],"queue_edit_australia":["1740300","2111902","238321","386666","84004","group:aus"],"queue_add_travel":["1171426","1273705","1273728","1845123","1941119","1987041","2111936","2741249","336417","362601","537989","736795","group:superusers_us"],"image_delete":["300943","364258","p_admin"],"edit_editor_posts":["p_editor_admin"],"queue_add_celebrity":["16191","1869367","2111902","230684","251155","262092","267816","370035","391411","471","962814","group:superusers_us"],"sponsored_stories_admin":["195079","304178","p_admin"],"unlink_users":["1","1171016","1212587","122429","2081783","2854113","3","386666"],"team_espanol":["1171016","1212587","122429","1485480","1717855","1730290","2484348","2557882","2577162","2741611","2854113","2925518","50","66780","882394","group:espanol"],"group:edit_video":["1000007","1075744","1096571","1104104","1115321","1115365","1212103","1212133","1218274","1314219","1353444","1364221","1382171","1438464","1484989","1605446","1718098","1718122","1718451","1722227","1771444","1849464","1873960","1897164","1993144","2022191","2082592","2092345","2097434","2113109","2113144","2113163","2113208","2113276","2117009","2117543","2123592","2215606","2221719","2241160","2332366","2360592","2493459","2519743","2519751","2519760","2519764","2519799","2520684","2522192","2523119","2524011","2555921","2740099","2747382","2758476","2788652","2795825","2799800","281486","2890555","315264","331181","390721","422627","488333","500380","670263","676627","676638","707630","727930","734485","734568","749009","757245","781609","84","881910","954476","954744","967593","969900","969905","997442"],"queue_add_germany":["50","group:germany","p_developer_admin"],"queue_edit_science":["1027352","1058035","923522","group:superusers_us","p_developer_admin"],"queue_add_parents":["1273705","1273728","1845123","1848921","1941119","1987041","2111936","2741249","336417","362601","537989","7","736795","792154","group:superusers_us","p_developer_admin"],"queue_edit_tvandmovies":["1108610","1171016","122429","2328384","2478485","267816","3","370453","386666","418529","575948","66780","885067","group:superusers_us"],"group:edit_homepage_superusers":["1484259","1685059","1687686","1740300","2111902","2170674","2318153","352440","710080","751011","84004"],"queue_add_ukpolitics":["3","group:superusers_us","group:uk"],"sailthru_edit":["p_admin"],"boost_admin":["p_admin"],"queue_edit_comics":["16062","group:superusers_us"],"new_quiz_format":["185968","p_admin"],"queue_edit_community":["1212587","1558928","2053484","2328384","2799084","386666","66780","group:community_mods","group:superusers_us"],"queue_add_science":["1027352","1058035","2283483","923522","group:superusers_us","p_developer_admin"],"queue_edit_diy":["1273705","1273728","1661842","1845123","1941119","2111936","2138524","2741249","2741267","3","336417","537989","7","group:superusers_us"],"queue_edit_mexico":["1171016","1485480","2484348","2813670","298095","50"],"rerankable_posts":["1110308","1116949","1171016","1212587","122429","1253","1273705","1335962","1390596","1444088","1459277","1472002","1558928","190806","1983419","1983731","2081679","2081687","2112694","2355176","251155","266291","2799084","2854113","298095","312860","323444","330597","336417","362601","471","536348","723165","736796","822569","939122","group:aus","p_developer_admin"],"group:superusers_us":["1089121","1108335","1171016","1253","1291311","1484259","1712709","1740300","2111902","2111977","2170674","2250852","2318153","237968","238321","2478468","247883","352440","367201","401153","422680","428","683475","710080","751011","84004","935435"],"gengo_admin":["1108335","1171016","1271266","1485480","2577162","2704195","2956221","298095","333563","50","66780","822569","963058","989100","group:germany"],"espanol_homepage_edit":["1015411","1253","1485480","238321","298095","427759","50","p_admin"],"ukbuzz_homepage_edit":["671752","p_admin","p_developer_admin"],"queue_add_business":["1336055","2170678","2965923","450483","568833","683073","712971","719068","group:superusers_us"],"queue_add_longform":["1108320","1171016","1301639","2111902","2250863","2699765","370320","386666","659572","group:superusers_us"],"creative_byline_in_toolbar":["p_admin","p_partner_admin"],"indepth_homepage_edit":["1108320","2170678","2250863","370320","659572","p_admin","p_developer_admin"],"dateline_locations":["1003271","1108335","1171016","1212587","2081378","2170678","2328384","2478468","2546507","2739799","2956136","386666","428","845485"],"queue_add_geeky":["1027352","115350","1171016","1558928","16062","329408","834236","group:superusers_us"],"germany_homepage_edit":["50","group:germany","p_admin","p_developer_admin"],"user_moderators":["group:community_mods","p_admin"],"queue_add_style":["1273705","1273728","1661842","1845123","1941119","1987041","2111936","2231441","2236203","2741249","2848235","336417","362601","40846","537989","7","736795","group:superusers_us"],"queue_edit_weddings":["1273705","1273728","1845123","1987041","2741249","339859","7","p_developer_admin"],"queue_add_rewind":["1171016","16191","2111902","230684","267816","3","406972","427759","471","group:superusers_us"],"queue_edit_aunews":["845485","p_developer_admin"],"can_boost":[],"buzz_any_embed":["1108320","1116949","12405","1253","1369134","149163","1661938","1770243","2498866","2604687","2699763","2699765","270926","302504","323444","328249","370320","391947","422680","50","659572","939067","group:aus","group:brasil","group:france","group:germany","group:india","group:mexico","p_admin","p_developer_admin"],"queue_add_music":["1559191","187839","2053512","2136851","267816","2920421","295325","323444","group:superusers_us"],"queue_add_brasil":["1271266","1335930","1335962","1870174","238321","2478580","2478583","298095","50"],"queue_edit_business":["1336055","2250863","450483","683073","712971","719068","group:superusers_us"],"amazon_rerank":["p_admin"],"queue_edit_animals":["122429","1770243","266291","267816","2883313","3","498631","group:superusers_us"],"community_manage":["1171016","1212587","122429","1439137","1558928","2053484","2081783","2328384","2854113","915581","group:community_mods","p_developer_admin"],"default_template_article":["group:edit_news"],"terminal_user":["p_admin","p_developer_admin","p_editor_admin"],"queue_add_uknews":["1003271","1026792","1076475","1312775","1578896","1685059","2511644","2546507","2633715","2666587","2739038","2739043","422680","590158","736840","p_developer_admin"],"group:uk":["1003271","1026792","1076475","1081451","1114825","1268340","1273246","1312775","1369060","1401831","1472002","1578896","1597198","1685059","1712709","1740300","1740404","1744199","2003837","2077242","2107477","2268055","2478447","2511644","2546507","2575622","2647836","2666587","2739038","2739043","2761694","2778050","4146","422680","428","537989","590158","671752","710486","736840","773166","923522","962814","991461"],"queue_add_india":["673572"],"queue_add_health":["1273705","1273728","1941119","1966022","1987041","2111936","2388155","2675381","2741249","336417","362601","537989","736795","group:superusers_us","p_developer_admin"],"updated_timestamp":["1108335","1171016","2604679","321271","386666","975974","group:edit_news","p_admin"],"queue_edit_celebrity":["122429","1869367","230684","262092","267816","403790","427759","471","962814","group:superusers_us"],"queue_add_food":["1273705","1273728","1845123","187839","1941119","1987041","2111936","2741249","336417","339859","362601","403790","537989","7","736795","746557","group:superusers_us"],"blog_press":["1","1171016","1212587","122429","201605","2250863","242537","2478482","2498432","2498866","2604672","2699763","3","333563","370234","65","735630","842571","86770","963058"],"lists_homepage_edit":["p_admin"],"longform_edit":["1081451","1108320","1110308","1115290","1197853","1212587","1280610","1290623","1369134","1434356","1471021","1847385","1869367","1928416","2020559","2062840","2112160","2235696","2235704","2250863","2268055","230684","2323166","2355170","247643","2526433","281496","2902196","343520","362317","370320","427637","615244","659572","66780","670266","736815","893420","group:edit_news","group:superusers_us","p_developer_admin"],"queue_add_animals":["2883313","3","p_editor_admin"],"group:mexico":["1485480","2813670","2957479","2957481","2957485","2957492","2957495"],"preview_special_tags":["p_admin"],"boost_button":["1434326","1745595","195079","196197","2","2576205","2644315","304178","328137","p_developer_admin"],"india_homepage_edit":["1904742","673572","group:edit_homepage_superusers","p_admin"],"queue_edit_lgbt":["1171016","1984323","2170678","2231552","2250863","3","315836","376554","418643","462098","824585","group:superusers_us"],"translation_approval":["1108335","2484348","2577162","p_admin"],"trending_moderation":["p_admin"],"sailthru_publish":[],"queue_add_world":["1193475","1434327","2081378","2170678","2250863","2328384","2478479","2739043","462098","824585","841725","893445","963170","group:superusers_us"],"queue_edit_germany":["50","group:germany","p_developer_admin"],"dateline_buzz":["1003271","1003504","1026792","1089121","1108335","1108700","1193475","1312775","1326855","1369134","1434327","1484259","1508517","1559191","1578896","1896880","1984323","2081378","2107477","2111902","2136851","2170674","2170678","2202803","2250852","2250863","229172","238321","2478447","2478468","2478478","2478479","247883","2480099","2512317","2546507","2634389","2666258","2666587","2739038","2761694","2777615","2855175","2870875","2902196","2965923","315300","370320","401153","418643","422680","428","450483","462098","50","590158","659572","710080","710486","751011","824585","84004","841725","845485","885067","893445","963170","981579","p_admin"],"france_homepage_edit":["1171016","238321","2704195","2956221","50","822569","989100","p_admin"],"edit_user_permissions":["1470778","p_admin"],"group:india":["1583184","1594871","1767263","1819831","1963300","2604768","673572"],"acl_view":["1470778","p_admin","p_developer_admin"],"queue_edit_rewind":["2250863","230684","267816","406972","427759","471","group:superusers_us"],"queue_edit_ideas":["1171016","2250863","2268055","2478648","2666258","group:superusers_us","p_developer_admin"],"queue_edit_tech":["1171016","122429","1823255","2250863","2328384","2389092","2512232","260121","2634389","2671964","2777615","2848269","422588","group:superusers_us"],"team_weddings":["p_developer_admin"],"string_translation_moderator":["1171016","122429","1717855","2484348","2741611","2925518","group:brasil","group:espanol","group:france","group:germany","group:mexico","p_developer_admin"],"group:aus":["1042292","1264948","1326855","1687686","1712361","1877436","1921502","1926263","2325401","2526433","2526435","2902184","2902196","845485","966504","967687"],"badge_config_admin":["1171016","1197853","1439137","1873378","915581","p_developer_admin"],"queue_add_diy":["1273705","1273728","1661842","1845123","1848921","1941119","1987041","2111936","2138524","2741249","2741267","336417","362601","537989","7","736795","group:superusers_us"],"queue_edit_uknews":["1076475","1312775","1685059","2546507","422680","590158","736840","p_developer_admin"],"hotlist_moderation":[],"queue_add_tvandmovies":["1108610","1171016","122429","1385527","2111902","2328384","2478485","267816","3","370035","370320","370453","386254","403790","418529","575948","66780","885067","group:superusers_us"],"buzz_promote":["p_admin"],"queue_edit_parents":["1273705","1273728","1845123","1848921","1941119","2111936","2741249","537989","7","792154","group:superusers_us","p_developer_admin"],"partners_manage":["1171016","1353444","2493459","354273","417220","984166","p_admin","p_partner_admin"],"switch_user_menu_option":["anyone"],"in_depth_moderation":["p_admin"],"queue_add_comics":["16062","2111902","267816","group:superusers_us"],"queue_edit_brasil":["1253","1271266","1335962","238321","298095","50"],"group:edit_buzz":["1015411","1042292","1054915","1058035","1076475","1114825","1115439","115350","1156822","1171426","1253","1268340","1271266","1273246","1335930","1335962","1353008","1369060","1401831","1444088","1459277","1459318","1459320","1558933","1597198","16062","16191","162354","1740404","1744199","1745256","1850152","1869367","1870174","1878629","1896006","1899640","1921502","1923120","1926263","1933171","1953376","1963300","2003837","2053449","2053484","207246","2081679","2081680","2081687","2081698","2112694","2231455","2231567","2235696","2235704","226184","2294340","230684","2355176","237968","2396385","2478650","2575622","2591348","2591352","259321","2604768","262092","2634188","2634190","2634194","2634195","2634332","266291","267816","2704195","2777778","2813670","2849654","2883302","2883313","2883359","2955603","2957481","2957485","2976051","2976379","298095","323444","324633","329408","341645","374407","406972","411042","4146","427759","471","498631","500733","532900","536348","670257","670266","671134","671752","696530","736796","736815","74504","773166","774378","799053","822569","82483","834236","923522","939060","939122","962814","963032","966504","983083","989100"],"uk_homepage_splashing":["1026792","1253","1268340","1312775","1578896","1740404","1744199","238321","2546507","2666587","2739038","4146","422680","428","537989","590158","group:edit_homepage_superusers","p_developer_admin"],"queue_add_mexico":["1171016","2484348","50","group:mexico"],"dashboard_admin":["p_admin","p_developer_admin","p_editor_admin","p_partner_admin"],"uknews_homepage_edit":["1003271","1026792","1312775","1685059","2546507","422680","p_admin","p_developer_admin"],"queue_add_weddings":["1273705","1273728","1845123","1987041","2081681","2111936","2741249","336417","339859","362601","40846","7","p_developer_admin"],"events_reorder":["1007381","216369","242537","676593","918039","p_admin"],"queue_edit_world":["1434327","2081378","2170678","2250863","2478479","2739043","824585","group:superusers_us"],"edit_community_posts":["p_editor_admin"],"queue_add_comedy":["115350","16062","2053484","2396385","267816","2777778","3","323444","411042","498631","670257","group:superusers_us"],"general_admin":["p_admin","p_developer_admin","p_editor_admin","p_partner_admin"],"queue_edit_comedy":["16062","2396385","267816","3","group:superusers_us"],"homepage_splashing":["1","1171016","1197853","1212587","122429","2081783","2328384","2854113","3","333563","370234","386666","411700","66780","76","group:edit_homepage","group:edit_homepage_superusers"],"queue_edit_ukpolitics":["1076475","1578896","2478447","2546507","590158","736840","773166","991461","group:superusers_us"],"queue_add_tech":["1171016","122429","1823255","2111902","2170678","2250863","2328384","2389092","251155","2512232","260121","2634389","2671964","2777615","2848269","2883570","422588","group:superusers_us"],"group:france":["2704195","2956221","2976051","822569","989100"],"queue_edit_videos":["1171016","122429","2360592","2394379","281486","2854113","31899","331181","386666","488333","545436","545461","707630","84","963058"],"super_share":[],"queue_edit_uk":["386666","group:superusers_us","group:uk"],"queue_add_usnews":["1156833","2250863","2328384","260121","2633715","2761694","333563","500733","group:superusers_us"],"team_france":["1171016","122429","1485480","1717855","1730290","2484348","2557882","2577162","2741611","2925518","50","66780","group:france"],"give_full_admin":["1","1171016","1212587","122429","2854113","3","403790","66780","76"],"aunews_homepage_edit":["2902196","845485","p_admin"],"team_mexico":["2231455","2321795","50","group:mexico"],"duplicate_post":["1171016","1271266","1335930","1335962","1434527","1439137","187839","195079","196197","2478580","2478583","2484348","2577162","357755","386666","931699","group:espanol","group:france","group:germany","group:mexico","p_developer_admin"],"logged_in":["anyone","p_admin"],"queue_edit_espanol":["1015411","122429","1253","1485480","238321","298095","50","66780"],"facebook_chatter":["p_admin"],"translation_moderator":["1171016","122429","1253","1385516","1470778","1717855","2484348","266291","2854113","50","group:brasil","group:espanol","group:france","group:germany","group:mexico","p_developer_admin"],"queue_add_community":["1353444","1558928","2053484","2493459","386666","816573","group:community_mods","group:superusers_us"],"new_preview":["!2680511","1026792","1108700","1156822","1156833","1171426","1312775","1459277","1459318","1459320","162354","1848921","2020916","2111902","2231552","230577","2389092","247883","248881","281496","2823827","333563","376554","4146","418529","418643","50","500733","536348","55127","590158","6291","683073","710080","736815","736840","74504","751011","845485","885067","954476","983083","991461","group:espanol","group:mexico","p_admin","p_developer_admin"],"group:community_mods":["115350","1558933","2081698","2138526","2557882","2634188","532900","670266","671134","939067"],"group:espanol":["1015411","1771122","1896343","2231455","2321795","298095"],"breaking_homepage":["group:superusers_us"],"team_brasil":["1171016","122429","1271266","1335930","1335962","1385516","1470778","1485480","1717855","1730290","180983","1870174","2478580","2478583","2484348","2557882","2577162","2741611","2925518","298095","333563","404442","50","65","66780"]})');
+ </script>
+ <style type="text/css">
+ .acl_control {
+ display: none
+ }
+
+ .queue_edit_audio {
+ display: none
+ }
+
+ .can_queue_edit_audio .acl_control.queue_edit_audio,
+ .can_queue_edit_audio .queue_edit_audio {
+ display: inherit
+ }
+
+ .queue_add_politics {
+ display: none
+ }
+
+ .can_queue_add_politics .acl_control.queue_add_politics,
+ .can_queue_add_politics .queue_add_politics {
+ display: inherit
+ }
+
+ .team_uknews {
+ display: none
+ }
+
+ .can_team_uknews .acl_control.team_uknews,
+ .can_team_uknews .team_uknews {
+ display: inherit
+ }
+
+ .mobile_homepage_edit {
+ display: none
+ }
+
+ .can_mobile_homepage_edit .acl_control.mobile_homepage_edit,
+ .can_mobile_homepage_edit .mobile_homepage_edit {
+ display: inherit
+ }
+
+ .brasil_homepage_edit {
+ display: none
+ }
+
+ .can_brasil_homepage_edit .acl_control.brasil_homepage_edit,
+ .can_brasil_homepage_edit .brasil_homepage_edit {
+ display: inherit
+ }
+
+ .australia_homepage_edit {
+ display: none
+ }
+
+ .can_australia_homepage_edit .acl_control.australia_homepage_edit,
+ .can_australia_homepage_edit .australia_homepage_edit {
+ display: inherit
+ }
+
+ .test_oauth {
+ display: none
+ }
+
+ .can_test_oauth .acl_control.test_oauth,
+ .can_test_oauth .test_oauth {
+ display: inherit
+ }
+
+ .queue_edit_sports {
+ display: none
+ }
+
+ .can_queue_edit_sports .acl_control.queue_edit_sports,
+ .can_queue_edit_sports .queue_edit_sports {
+ display: inherit
+ }
+
+ .pound {
+ display: none
+ }
+
+ .can_pound .acl_control.pound,
+ .can_pound .pound {
+ display: inherit
+ }
+
+ .string_translation_moderator_purge {
+ display: none
+ }
+
+ .can_string_translation_moderator_purge .acl_control.string_translation_moderator_purge,
+ .can_string_translation_moderator_purge .string_translation_moderator_purge {
+ display: inherit
+ }
+
+ .buzz_homepage_edit {
+ display: none
+ }
+
+ .can_buzz_homepage_edit .acl_control.buzz_homepage_edit,
+ .can_buzz_homepage_edit .buzz_homepage_edit {
+ display: inherit
+ }
+
+ .francenews_homepage_edit {
+ display: none
+ }
+
+ .can_francenews_homepage_edit .acl_control.francenews_homepage_edit,
+ .can_francenews_homepage_edit .francenews_homepage_edit {
+ display: inherit
+ }
+
+ .queue_add_aunews {
+ display: none
+ }
+
+ .can_queue_add_aunews .acl_control.queue_add_aunews,
+ .can_queue_add_aunews .queue_add_aunews {
+ display: inherit
+ }
+
+ .queue_edit_france {
+ display: none
+ }
+
+ .can_queue_edit_france .acl_control.queue_edit_france,
+ .can_queue_edit_france .queue_edit_france {
+ display: inherit
+ }
+
+ .queue_edit_food {
+ display: none
+ }
+
+ .can_queue_edit_food .acl_control.queue_edit_food,
+ .can_queue_edit_food .queue_edit_food {
+ display: inherit
+ }
+
+ .delete_user_posts {
+ display: none
+ }
+
+ .can_delete_user_posts .acl_control.delete_user_posts,
+ .can_delete_user_posts .delete_user_posts {
+ display: inherit
+ }
+
+ .queue_add_france {
+ display: none
+ }
+
+ .can_queue_add_france .acl_control.queue_add_france,
+ .can_queue_add_france .queue_add_france {
+ display: inherit
+ }
+
+ .megaphone {
+ display: none
+ }
+
+ .can_megaphone .acl_control.megaphone,
+ .can_megaphone .megaphone {
+ display: inherit
+ }
+
+ .queue_edit_francenews {
+ display: none
+ }
+
+ .can_queue_edit_francenews .acl_control.queue_edit_francenews,
+ .can_queue_edit_francenews .queue_edit_francenews {
+ display: inherit
+ }
+
+ .engagement_calculator {
+ display: none
+ }
+
+ .can_engagement_calculator .acl_control.engagement_calculator,
+ .can_engagement_calculator .engagement_calculator {
+ display: inherit
+ }
+
+ .advertising_leads {
+ display: none
+ }
+
+ .can_advertising_leads .acl_control.advertising_leads,
+ .can_advertising_leads .advertising_leads {
+ display: inherit
+ }
+
+ .queue_super_admin {
+ display: none
+ }
+
+ .can_queue_super_admin .acl_control.queue_super_admin,
+ .can_queue_super_admin .queue_super_admin {
+ display: inherit
+ }
+
+ .team_health {
+ display: none
+ }
+
+ .can_team_health .acl_control.team_health,
+ .can_team_health .team_health {
+ display: inherit
+ }
+
+ .queue_edit_health {
+ display: none
+ }
+
+ .can_queue_edit_health .acl_control.queue_edit_health,
+ .can_queue_edit_health .queue_edit_health {
+ display: inherit
+ }
+
+ .gif_feed_admin {
+ display: none
+ }
+
+ .can_gif_feed_admin .acl_control.gif_feed_admin,
+ .can_gif_feed_admin .gif_feed_admin {
+ display: inherit
+ }
+
+ .queue_draft_to_publish {
+ display: none
+ }
+
+ .can_queue_draft_to_publish .acl_control.queue_draft_to_publish,
+ .can_queue_draft_to_publish .queue_draft_to_publish {
+ display: inherit
+ }
+
+ .queue_add_books {
+ display: none
+ }
+
+ .can_queue_add_books .acl_control.queue_add_books,
+ .can_queue_add_books .queue_add_books {
+ display: inherit
+ }
+
+ .plugin_moderation {
+ display: none
+ }
+
+ .can_plugin_moderation .acl_control.plugin_moderation,
+ .can_plugin_moderation .plugin_moderation {
+ display: inherit
+ }
+
+ .homepage_edit {
+ display: none
+ }
+
+ .can_homepage_edit .acl_control.homepage_edit,
+ .can_homepage_edit .homepage_edit {
+ display: inherit
+ }
+
+ .rest_api {
+ display: none
+ }
+
+ .can_rest_api .acl_control.rest_api,
+ .can_rest_api .rest_api {
+ display: inherit
+ }
+
+ .queue_add_uk {
+ display: none
+ }
+
+ .can_queue_add_uk .acl_control.queue_add_uk,
+ .can_queue_add_uk .queue_add_uk {
+ display: inherit
+ }
+
+ .queue_add_lgbt {
+ display: none
+ }
+
+ .can_queue_add_lgbt .acl_control.queue_add_lgbt,
+ .can_queue_add_lgbt .queue_add_lgbt {
+ display: inherit
+ }
+
+ .pugopticon {
+ display: none
+ }
+
+ .can_pugopticon .acl_control.pugopticon,
+ .can_pugopticon .pugopticon {
+ display: inherit
+ }
+
+ .lifestyle_homepage_edit {
+ display: none
+ }
+
+ .can_lifestyle_homepage_edit .acl_control.lifestyle_homepage_edit,
+ .can_lifestyle_homepage_edit .lifestyle_homepage_edit {
+ display: inherit
+ }
+
+ .team_parents {
+ display: none
+ }
+
+ .can_team_parents .acl_control.team_parents,
+ .can_team_parents .team_parents {
+ display: inherit
+ }
+
+ .acl_edit {
+ display: none
+ }
+
+ .can_acl_edit .acl_control.acl_edit,
+ .can_acl_edit .acl_edit {
+ display: inherit
+ }
+
+ .mexico_homepage_edit {
+ display: none
+ }
+
+ .can_mexico_homepage_edit .acl_control.mexico_homepage_edit,
+ .can_mexico_homepage_edit .mexico_homepage_edit {
+ display: inherit
+ }
+
+ .quizzes_homepage_edit {
+ display: none
+ }
+
+ .can_quizzes_homepage_edit .acl_control.quizzes_homepage_edit,
+ .can_quizzes_homepage_edit .quizzes_homepage_edit {
+ display: inherit
+ }
+
+ .edit_user_client {
+ display: none
+ }
+
+ .can_edit_user_client .acl_control.edit_user_client,
+ .can_edit_user_client .edit_user_client {
+ display: inherit
+ }
+
+ .editors_manage {
+ display: none
+ }
+
+ .can_editors_manage .acl_control.editors_manage,
+ .can_editors_manage .editors_manage {
+ display: inherit
+ }
+
+ .queue_edit_politics {
+ display: none
+ }
+
+ .can_queue_edit_politics .acl_control.queue_edit_politics,
+ .can_queue_edit_politics .queue_edit_politics {
+ display: inherit
+ }
+
+ .queue_edit_style {
+ display: none
+ }
+
+ .can_queue_edit_style .acl_control.queue_edit_style,
+ .can_queue_edit_style .queue_edit_style {
+ display: inherit
+ }
+
+ .queue_add_ideas {
+ display: none
+ }
+
+ .can_queue_add_ideas .acl_control.queue_add_ideas,
+ .can_queue_add_ideas .queue_add_ideas {
+ display: inherit
+ }
+
+ .queue_add_sports {
+ display: none
+ }
+
+ .can_queue_add_sports .acl_control.queue_add_sports,
+ .can_queue_add_sports .queue_add_sports {
+ display: inherit
+ }
+
+ .queue_add_australia {
+ display: none
+ }
+
+ .can_queue_add_australia .acl_control.queue_add_australia,
+ .can_queue_add_australia .queue_add_australia {
+ display: inherit
+ }
+
+ .team_germany {
+ display: none
+ }
+
+ .can_team_germany .acl_control.team_germany,
+ .can_team_germany .team_germany {
+ display: inherit
+ }
+
+ .edit_user_accounts {
+ display: none
+ }
+
+ .can_edit_user_accounts .acl_control.edit_user_accounts,
+ .can_edit_user_accounts .edit_user_accounts {
+ display: inherit
+ }
+
+ .buzz_metadata {
+ display: none
+ }
+
+ .can_buzz_metadata .acl_control.buzz_metadata,
+ .can_buzz_metadata .buzz_metadata {
+ display: inherit
+ }
+
+ .queue_edit_geeky {
+ display: none
+ }
+
+ .can_queue_edit_geeky .acl_control.queue_edit_geeky,
+ .can_queue_edit_geeky .queue_edit_geeky {
+ display: inherit
+ }
+
+ .queue_add_videos {
+ display: none
+ }
+
+ .can_queue_add_videos .acl_control.queue_add_videos,
+ .can_queue_add_videos .queue_add_videos {
+ display: inherit
+ }
+
+ .entertainment_homepage_edit {
+ display: none
+ }
+
+ .can_entertainment_homepage_edit .acl_control.entertainment_homepage_edit,
+ .can_entertainment_homepage_edit .entertainment_homepage_edit {
+ display: inherit
+ }
+
+ .hp_drag {
+ display: none
+ }
+
+ .can_hp_drag .acl_control.hp_drag,
+ .can_hp_drag .hp_drag {
+ display: inherit
+ }
+
+ .queue_edit_usnews {
+ display: none
+ }
+
+ .can_queue_edit_usnews .acl_control.queue_edit_usnews,
+ .can_queue_edit_usnews .queue_edit_usnews {
+ display: inherit
+ }
+
+ .embed_whitelist {
+ display: none
+ }
+
+ .can_embed_whitelist .acl_control.embed_whitelist,
+ .can_embed_whitelist .embed_whitelist {
+ display: inherit
+ }
+
+ .queue_edit_india {
+ display: none
+ }
+
+ .can_queue_edit_india .acl_control.queue_edit_india,
+ .can_queue_edit_india .queue_edit_india {
+ display: inherit
+ }
+
+ .unswitch_users {
+ display: none
+ }
+
+ .can_unswitch_users .acl_control.unswitch_users,
+ .can_unswitch_users .unswitch_users {
+ display: inherit
+ }
+
+ .queue_add_espanol {
+ display: none
+ }
+
+ .can_queue_add_espanol .acl_control.queue_add_espanol,
+ .can_queue_add_espanol .queue_add_espanol {
+ display: inherit
+ }
+
+ .slide_to_publish {
+ display: none
+ }
+
+ .can_slide_to_publish .acl_control.slide_to_publish,
+ .can_slide_to_publish .slide_to_publish {
+ display: inherit
+ }
+
+ .queue_edit_books {
+ display: none
+ }
+
+ .can_queue_edit_books .acl_control.queue_edit_books,
+ .can_queue_edit_books .queue_edit_books {
+ display: inherit
+ }
+
+ .queue_edit_music {
+ display: none
+ }
+
+ .can_queue_edit_music .acl_control.queue_edit_music,
+ .can_queue_edit_music .queue_edit_music {
+ display: inherit
+ }
+
+ .queue_add_francenews {
+ display: none
+ }
+
+ .can_queue_add_francenews .acl_control.queue_add_francenews,
+ .can_queue_add_francenews .queue_add_francenews {
+ display: inherit
+ }
+
+ .picks_delete_from_anywhere {
+ display: none
+ }
+
+ .can_picks_delete_from_anywhere .acl_control.picks_delete_from_anywhere,
+ .can_picks_delete_from_anywhere .picks_delete_from_anywhere {
+ display: inherit
+ }
+
+ .uk_homepage_edit {
+ display: none
+ }
+
+ .can_uk_homepage_edit .acl_control.uk_homepage_edit,
+ .can_uk_homepage_edit .uk_homepage_edit {
+ display: inherit
+ }
+
+ .dashboard_custom_daterange {
+ display: none
+ }
+
+ .can_dashboard_custom_daterange .acl_control.dashboard_custom_daterange,
+ .can_dashboard_custom_daterange .dashboard_custom_daterange {
+ display: inherit
+ }
+
+ .general_advertiser {
+ display: none
+ }
+
+ .can_general_advertiser .acl_control.general_advertiser,
+ .can_general_advertiser .general_advertiser {
+ display: inherit
+ }
+
+ .queue_edit_travel {
+ display: none
+ }
+
+ .can_queue_edit_travel .acl_control.queue_edit_travel,
+ .can_queue_edit_travel .queue_edit_travel {
+ display: inherit
+ }
+
+ .queue_add_audio {
+ display: none
+ }
+
+ .can_queue_add_audio .acl_control.queue_add_audio,
+ .can_queue_add_audio .queue_add_audio {
+ display: inherit
+ }
+
+ .assign_bf_contributor {
+ display: none
+ }
+
+ .can_assign_bf_contributor .acl_control.assign_bf_contributor,
+ .can_assign_bf_contributor .assign_bf_contributor {
+ display: inherit
+ }
+
+ .edit_user_posts {
+ display: none
+ }
+
+ .can_edit_user_posts .acl_control.edit_user_posts,
+ .can_edit_user_posts .edit_user_posts {
+ display: inherit
+ }
+
+ .buzz_quick_link {
+ display: none
+ }
+
+ .can_buzz_quick_link .acl_control.buzz_quick_link,
+ .can_buzz_quick_link .buzz_quick_link {
+ display: inherit
+ }
+
+ .news_homepage_edit {
+ display: none
+ }
+
+ .can_news_homepage_edit .acl_control.news_homepage_edit,
+ .can_news_homepage_edit .news_homepage_edit {
+ display: inherit
+ }
+
+ .edit_partner_posts {
+ display: none
+ }
+
+ .can_edit_partner_posts .acl_control.edit_partner_posts,
+ .can_edit_partner_posts .edit_partner_posts {
+ display: inherit
+ }
+
+ .dashboard_bf_view {
+ display: none
+ }
+
+ .can_dashboard_bf_view .acl_control.dashboard_bf_view,
+ .can_dashboard_bf_view .dashboard_bf_view {
+ display: inherit
+ }
+
+ .boost_moderation_view {
+ display: none
+ }
+
+ .can_boost_moderation_view .acl_control.boost_moderation_view,
+ .can_boost_moderation_view .boost_moderation_view {
+ display: inherit
+ }
+
+ .team_comedy {
+ display: none
+ }
+
+ .can_team_comedy .acl_control.team_comedy,
+ .can_team_comedy .team_comedy {
+ display: inherit
+ }
+
+ .queue_edit_longform {
+ display: none
+ }
+
+ .can_queue_edit_longform .acl_control.queue_edit_longform,
+ .can_queue_edit_longform .queue_edit_longform {
+ display: inherit
+ }
+
+ .queue_edit_australia {
+ display: none
+ }
+
+ .can_queue_edit_australia .acl_control.queue_edit_australia,
+ .can_queue_edit_australia .queue_edit_australia {
+ display: inherit
+ }
+
+ .queue_add_travel {
+ display: none
+ }
+
+ .can_queue_add_travel .acl_control.queue_add_travel,
+ .can_queue_add_travel .queue_add_travel {
+ display: inherit
+ }
+
+ .image_delete {
+ display: none
+ }
+
+ .can_image_delete .acl_control.image_delete,
+ .can_image_delete .image_delete {
+ display: inherit
+ }
+
+ .edit_editor_posts {
+ display: none
+ }
+
+ .can_edit_editor_posts .acl_control.edit_editor_posts,
+ .can_edit_editor_posts .edit_editor_posts {
+ display: inherit
+ }
+
+ .queue_add_celebrity {
+ display: none
+ }
+
+ .can_queue_add_celebrity .acl_control.queue_add_celebrity,
+ .can_queue_add_celebrity .queue_add_celebrity {
+ display: inherit
+ }
+
+ .sponsored_stories_admin {
+ display: none
+ }
+
+ .can_sponsored_stories_admin .acl_control.sponsored_stories_admin,
+ .can_sponsored_stories_admin .sponsored_stories_admin {
+ display: inherit
+ }
+
+ .unlink_users {
+ display: none
+ }
+
+ .can_unlink_users .acl_control.unlink_users,
+ .can_unlink_users .unlink_users {
+ display: inherit
+ }
+
+ .team_espanol {
+ display: none
+ }
+
+ .can_team_espanol .acl_control.team_espanol,
+ .can_team_espanol .team_espanol {
+ display: inherit
+ }
+
+ .queue_add_germany {
+ display: none
+ }
+
+ .can_queue_add_germany .acl_control.queue_add_germany,
+ .can_queue_add_germany .queue_add_germany {
+ display: inherit
+ }
+
+ .queue_edit_science {
+ display: none
+ }
+
+ .can_queue_edit_science .acl_control.queue_edit_science,
+ .can_queue_edit_science .queue_edit_science {
+ display: inherit
+ }
+
+ .queue_add_parents {
+ display: none
+ }
+
+ .can_queue_add_parents .acl_control.queue_add_parents,
+ .can_queue_add_parents .queue_add_parents {
+ display: inherit
+ }
+
+ .queue_edit_tvandmovies {
+ display: none
+ }
+
+ .can_queue_edit_tvandmovies .acl_control.queue_edit_tvandmovies,
+ .can_queue_edit_tvandmovies .queue_edit_tvandmovies {
+ display: inherit
+ }
+
+ .queue_add_ukpolitics {
+ display: none
+ }
+
+ .can_queue_add_ukpolitics .acl_control.queue_add_ukpolitics,
+ .can_queue_add_ukpolitics .queue_add_ukpolitics {
+ display: inherit
+ }
+
+ .sailthru_edit {
+ display: none
+ }
+
+ .can_sailthru_edit .acl_control.sailthru_edit,
+ .can_sailthru_edit .sailthru_edit {
+ display: inherit
+ }
+
+ .boost_admin {
+ display: none
+ }
+
+ .can_boost_admin .acl_control.boost_admin,
+ .can_boost_admin .boost_admin {
+ display: inherit
+ }
+
+ .queue_edit_comics {
+ display: none
+ }
+
+ .can_queue_edit_comics .acl_control.queue_edit_comics,
+ .can_queue_edit_comics .queue_edit_comics {
+ display: inherit
+ }
+
+ .new_quiz_format {
+ display: none
+ }
+
+ .can_new_quiz_format .acl_control.new_quiz_format,
+ .can_new_quiz_format .new_quiz_format {
+ display: inherit
+ }
+
+ .queue_edit_community {
+ display: none
+ }
+
+ .can_queue_edit_community .acl_control.queue_edit_community,
+ .can_queue_edit_community .queue_edit_community {
+ display: inherit
+ }
+
+ .queue_add_science {
+ display: none
+ }
+
+ .can_queue_add_science .acl_control.queue_add_science,
+ .can_queue_add_science .queue_add_science {
+ display: inherit
+ }
+
+ .queue_edit_diy {
+ display: none
+ }
+
+ .can_queue_edit_diy .acl_control.queue_edit_diy,
+ .can_queue_edit_diy .queue_edit_diy {
+ display: inherit
+ }
+
+ .queue_edit_mexico {
+ display: none
+ }
+
+ .can_queue_edit_mexico .acl_control.queue_edit_mexico,
+ .can_queue_edit_mexico .queue_edit_mexico {
+ display: inherit
+ }
+
+ .rerankable_posts {
+ display: none
+ }
+
+ .can_rerankable_posts .acl_control.rerankable_posts,
+ .can_rerankable_posts .rerankable_posts {
+ display: inherit
+ }
+
+ .gengo_admin {
+ display: none
+ }
+
+ .can_gengo_admin .acl_control.gengo_admin,
+ .can_gengo_admin .gengo_admin {
+ display: inherit
+ }
+
+ .espanol_homepage_edit {
+ display: none
+ }
+
+ .can_espanol_homepage_edit .acl_control.espanol_homepage_edit,
+ .can_espanol_homepage_edit .espanol_homepage_edit {
+ display: inherit
+ }
+
+ .ukbuzz_homepage_edit {
+ display: none
+ }
+
+ .can_ukbuzz_homepage_edit .acl_control.ukbuzz_homepage_edit,
+ .can_ukbuzz_homepage_edit .ukbuzz_homepage_edit {
+ display: inherit
+ }
+
+ .queue_add_business {
+ display: none
+ }
+
+ .can_queue_add_business .acl_control.queue_add_business,
+ .can_queue_add_business .queue_add_business {
+ display: inherit
+ }
+
+ .queue_add_longform {
+ display: none
+ }
+
+ .can_queue_add_longform .acl_control.queue_add_longform,
+ .can_queue_add_longform .queue_add_longform {
+ display: inherit
+ }
+
+ .creative_byline_in_toolbar {
+ display: none
+ }
+
+ .can_creative_byline_in_toolbar .acl_control.creative_byline_in_toolbar,
+ .can_creative_byline_in_toolbar .creative_byline_in_toolbar {
+ display: inherit
+ }
+
+ .indepth_homepage_edit {
+ display: none
+ }
+
+ .can_indepth_homepage_edit .acl_control.indepth_homepage_edit,
+ .can_indepth_homepage_edit .indepth_homepage_edit {
+ display: inherit
+ }
+
+ .dateline_locations {
+ display: none
+ }
+
+ .can_dateline_locations .acl_control.dateline_locations,
+ .can_dateline_locations .dateline_locations {
+ display: inherit
+ }
+
+ .queue_add_geeky {
+ display: none
+ }
+
+ .can_queue_add_geeky .acl_control.queue_add_geeky,
+ .can_queue_add_geeky .queue_add_geeky {
+ display: inherit
+ }
+
+ .germany_homepage_edit {
+ display: none
+ }
+
+ .can_germany_homepage_edit .acl_control.germany_homepage_edit,
+ .can_germany_homepage_edit .germany_homepage_edit {
+ display: inherit
+ }
+
+ .user_moderators {
+ display: none
+ }
+
+ .can_user_moderators .acl_control.user_moderators,
+ .can_user_moderators .user_moderators {
+ display: inherit
+ }
+
+ .queue_add_style {
+ display: none
+ }
+
+ .can_queue_add_style .acl_control.queue_add_style,
+ .can_queue_add_style .queue_add_style {
+ display: inherit
+ }
+
+ .queue_edit_weddings {
+ display: none
+ }
+
+ .can_queue_edit_weddings .acl_control.queue_edit_weddings,
+ .can_queue_edit_weddings .queue_edit_weddings {
+ display: inherit
+ }
+
+ .queue_add_rewind {
+ display: none
+ }
+
+ .can_queue_add_rewind .acl_control.queue_add_rewind,
+ .can_queue_add_rewind .queue_add_rewind {
+ display: inherit
+ }
+
+ .queue_edit_aunews {
+ display: none
+ }
+
+ .can_queue_edit_aunews .acl_control.queue_edit_aunews,
+ .can_queue_edit_aunews .queue_edit_aunews {
+ display: inherit
+ }
+
+ .can_boost {
+ display: none
+ }
+
+ .can_can_boost .acl_control.can_boost,
+ .can_can_boost .can_boost {
+ display: inherit
+ }
+
+ .buzz_any_embed {
+ display: none
+ }
+
+ .can_buzz_any_embed .acl_control.buzz_any_embed,
+ .can_buzz_any_embed .buzz_any_embed {
+ display: inherit
+ }
+
+ .queue_add_music {
+ display: none
+ }
+
+ .can_queue_add_music .acl_control.queue_add_music,
+ .can_queue_add_music .queue_add_music {
+ display: inherit
+ }
+
+ .queue_add_brasil {
+ display: none
+ }
+
+ .can_queue_add_brasil .acl_control.queue_add_brasil,
+ .can_queue_add_brasil .queue_add_brasil {
+ display: inherit
+ }
+
+ .queue_edit_business {
+ display: none
+ }
+
+ .can_queue_edit_business .acl_control.queue_edit_business,
+ .can_queue_edit_business .queue_edit_business {
+ display: inherit
+ }
+
+ .amazon_rerank {
+ display: none
+ }
+
+ .can_amazon_rerank .acl_control.amazon_rerank,
+ .can_amazon_rerank .amazon_rerank {
+ display: inherit
+ }
+
+ .queue_edit_animals {
+ display: none
+ }
+
+ .can_queue_edit_animals .acl_control.queue_edit_animals,
+ .can_queue_edit_animals .queue_edit_animals {
+ display: inherit
+ }
+
+ .community_manage {
+ display: none
+ }
+
+ .can_community_manage .acl_control.community_manage,
+ .can_community_manage .community_manage {
+ display: inherit
+ }
+
+ .default_template_article {
+ display: none
+ }
+
+ .can_default_template_article .acl_control.default_template_article,
+ .can_default_template_article .default_template_article {
+ display: inherit
+ }
+
+ .terminal_user {
+ display: none
+ }
+
+ .can_terminal_user .acl_control.terminal_user,
+ .can_terminal_user .terminal_user {
+ display: inherit
+ }
+
+ .queue_add_uknews {
+ display: none
+ }
+
+ .can_queue_add_uknews .acl_control.queue_add_uknews,
+ .can_queue_add_uknews .queue_add_uknews {
+ display: inherit
+ }
+
+ .queue_add_india {
+ display: none
+ }
+
+ .can_queue_add_india .acl_control.queue_add_india,
+ .can_queue_add_india .queue_add_india {
+ display: inherit
+ }
+
+ .queue_add_health {
+ display: none
+ }
+
+ .can_queue_add_health .acl_control.queue_add_health,
+ .can_queue_add_health .queue_add_health {
+ display: inherit
+ }
+
+ .updated_timestamp {
+ display: none
+ }
+
+ .can_updated_timestamp .acl_control.updated_timestamp,
+ .can_updated_timestamp .updated_timestamp {
+ display: inherit
+ }
+
+ .queue_edit_celebrity {
+ display: none
+ }
+
+ .can_queue_edit_celebrity .acl_control.queue_edit_celebrity,
+ .can_queue_edit_celebrity .queue_edit_celebrity {
+ display: inherit
+ }
+
+ .queue_add_food {
+ display: none
+ }
+
+ .can_queue_add_food .acl_control.queue_add_food,
+ .can_queue_add_food .queue_add_food {
+ display: inherit
+ }
+
+ .blog_press {
+ display: none
+ }
+
+ .can_blog_press .acl_control.blog_press,
+ .can_blog_press .blog_press {
+ display: inherit
+ }
+
+ .lists_homepage_edit {
+ display: none
+ }
+
+ .can_lists_homepage_edit .acl_control.lists_homepage_edit,
+ .can_lists_homepage_edit .lists_homepage_edit {
+ display: inherit
+ }
+
+ .longform_edit {
+ display: none
+ }
+
+ .can_longform_edit .acl_control.longform_edit,
+ .can_longform_edit .longform_edit {
+ display: inherit
+ }
+
+ .queue_add_animals {
+ display: none
+ }
+
+ .can_queue_add_animals .acl_control.queue_add_animals,
+ .can_queue_add_animals .queue_add_animals {
+ display: inherit
+ }
+
+ .preview_special_tags {
+ display: none
+ }
+
+ .can_preview_special_tags .acl_control.preview_special_tags,
+ .can_preview_special_tags .preview_special_tags {
+ display: inherit
+ }
+
+ .boost_button {
+ display: none
+ }
+
+ .can_boost_button .acl_control.boost_button,
+ .can_boost_button .boost_button {
+ display: inherit
+ }
+
+ .india_homepage_edit {
+ display: none
+ }
+
+ .can_india_homepage_edit .acl_control.india_homepage_edit,
+ .can_india_homepage_edit .india_homepage_edit {
+ display: inherit
+ }
+
+ .queue_edit_lgbt {
+ display: none
+ }
+
+ .can_queue_edit_lgbt .acl_control.queue_edit_lgbt,
+ .can_queue_edit_lgbt .queue_edit_lgbt {
+ display: inherit
+ }
+
+ .translation_approval {
+ display: none
+ }
+
+ .can_translation_approval .acl_control.translation_approval,
+ .can_translation_approval .translation_approval {
+ display: inherit
+ }
+
+ .trending_moderation {
+ display: none
+ }
+
+ .can_trending_moderation .acl_control.trending_moderation,
+ .can_trending_moderation .trending_moderation {
+ display: inherit
+ }
+
+ .sailthru_publish {
+ display: none
+ }
+
+ .can_sailthru_publish .acl_control.sailthru_publish,
+ .can_sailthru_publish .sailthru_publish {
+ display: inherit
+ }
+
+ .queue_add_world {
+ display: none
+ }
+
+ .can_queue_add_world .acl_control.queue_add_world,
+ .can_queue_add_world .queue_add_world {
+ display: inherit
+ }
+
+ .queue_edit_germany {
+ display: none
+ }
+
+ .can_queue_edit_germany .acl_control.queue_edit_germany,
+ .can_queue_edit_germany .queue_edit_germany {
+ display: inherit
+ }
+
+ .dateline_buzz {
+ display: none
+ }
+
+ .can_dateline_buzz .acl_control.dateline_buzz,
+ .can_dateline_buzz .dateline_buzz {
+ display: inherit
+ }
+
+ .france_homepage_edit {
+ display: none
+ }
+
+ .can_france_homepage_edit .acl_control.france_homepage_edit,
+ .can_france_homepage_edit .france_homepage_edit {
+ display: inherit
+ }
+
+ .edit_user_permissions {
+ display: none
+ }
+
+ .can_edit_user_permissions .acl_control.edit_user_permissions,
+ .can_edit_user_permissions .edit_user_permissions {
+ display: inherit
+ }
+
+ .acl_view {
+ display: none
+ }
+
+ .can_acl_view .acl_control.acl_view,
+ .can_acl_view .acl_view {
+ display: inherit
+ }
+
+ .queue_edit_rewind {
+ display: none
+ }
+
+ .can_queue_edit_rewind .acl_control.queue_edit_rewind,
+ .can_queue_edit_rewind .queue_edit_rewind {
+ display: inherit
+ }
+
+ .queue_edit_ideas {
+ display: none
+ }
+
+ .can_queue_edit_ideas .acl_control.queue_edit_ideas,
+ .can_queue_edit_ideas .queue_edit_ideas {
+ display: inherit
+ }
+
+ .queue_edit_tech {
+ display: none
+ }
+
+ .can_queue_edit_tech .acl_control.queue_edit_tech,
+ .can_queue_edit_tech .queue_edit_tech {
+ display: inherit
+ }
+
+ .team_weddings {
+ display: none
+ }
+
+ .can_team_weddings .acl_control.team_weddings,
+ .can_team_weddings .team_weddings {
+ display: inherit
+ }
+
+ .string_translation_moderator {
+ display: none
+ }
+
+ .can_string_translation_moderator .acl_control.string_translation_moderator,
+ .can_string_translation_moderator .string_translation_moderator {
+ display: inherit
+ }
+
+ .badge_config_admin {
+ display: none
+ }
+
+ .can_badge_config_admin .acl_control.badge_config_admin,
+ .can_badge_config_admin .badge_config_admin {
+ display: inherit
+ }
+
+ .queue_add_diy {
+ display: none
+ }
+
+ .can_queue_add_diy .acl_control.queue_add_diy,
+ .can_queue_add_diy .queue_add_diy {
+ display: inherit
+ }
+
+ .queue_edit_uknews {
+ display: none
+ }
+
+ .can_queue_edit_uknews .acl_control.queue_edit_uknews,
+ .can_queue_edit_uknews .queue_edit_uknews {
+ display: inherit
+ }
+
+ .hotlist_moderation {
+ display: none
+ }
+
+ .can_hotlist_moderation .acl_control.hotlist_moderation,
+ .can_hotlist_moderation .hotlist_moderation {
+ display: inherit
+ }
+
+ .queue_add_tvandmovies {
+ display: none
+ }
+
+ .can_queue_add_tvandmovies .acl_control.queue_add_tvandmovies,
+ .can_queue_add_tvandmovies .queue_add_tvandmovies {
+ display: inherit
+ }
+
+ .buzz_promote {
+ display: none
+ }
+
+ .can_buzz_promote .acl_control.buzz_promote,
+ .can_buzz_promote .buzz_promote {
+ display: inherit
+ }
+
+ .queue_edit_parents {
+ display: none
+ }
+
+ .can_queue_edit_parents .acl_control.queue_edit_parents,
+ .can_queue_edit_parents .queue_edit_parents {
+ display: inherit
+ }
+
+ .partners_manage {
+ display: none
+ }
+
+ .can_partners_manage .acl_control.partners_manage,
+ .can_partners_manage .partners_manage {
+ display: inherit
+ }
+
+ .switch_user_menu_option {
+ display: none
+ }
+
+ .can_switch_user_menu_option .acl_control.switch_user_menu_option,
+ .can_switch_user_menu_option .switch_user_menu_option {
+ display: inherit
+ }
+
+ .in_depth_moderation {
+ display: none
+ }
+
+ .can_in_depth_moderation .acl_control.in_depth_moderation,
+ .can_in_depth_moderation .in_depth_moderation {
+ display: inherit
+ }
+
+ .queue_add_comics {
+ display: none
+ }
+
+ .can_queue_add_comics .acl_control.queue_add_comics,
+ .can_queue_add_comics .queue_add_comics {
+ display: inherit
+ }
+
+ .queue_edit_brasil {
+ display: none
+ }
+
+ .can_queue_edit_brasil .acl_control.queue_edit_brasil,
+ .can_queue_edit_brasil .queue_edit_brasil {
+ display: inherit
+ }
+
+ .uk_homepage_splashing {
+ display: none
+ }
+
+ .can_uk_homepage_splashing .acl_control.uk_homepage_splashing,
+ .can_uk_homepage_splashing .uk_homepage_splashing {
+ display: inherit
+ }
+
+ .queue_add_mexico {
+ display: none
+ }
+
+ .can_queue_add_mexico .acl_control.queue_add_mexico,
+ .can_queue_add_mexico .queue_add_mexico {
+ display: inherit
+ }
+
+ .dashboard_admin {
+ display: none
+ }
+
+ .can_dashboard_admin .acl_control.dashboard_admin,
+ .can_dashboard_admin .dashboard_admin {
+ display: inherit
+ }
+
+ .uknews_homepage_edit {
+ display: none
+ }
+
+ .can_uknews_homepage_edit .acl_control.uknews_homepage_edit,
+ .can_uknews_homepage_edit .uknews_homepage_edit {
+ display: inherit
+ }
+
+ .queue_add_weddings {
+ display: none
+ }
+
+ .can_queue_add_weddings .acl_control.queue_add_weddings,
+ .can_queue_add_weddings .queue_add_weddings {
+ display: inherit
+ }
+
+ .events_reorder {
+ display: none
+ }
+
+ .can_events_reorder .acl_control.events_reorder,
+ .can_events_reorder .events_reorder {
+ display: inherit
+ }
+
+ .queue_edit_world {
+ display: none
+ }
+
+ .can_queue_edit_world .acl_control.queue_edit_world,
+ .can_queue_edit_world .queue_edit_world {
+ display: inherit
+ }
+
+ .edit_community_posts {
+ display: none
+ }
+
+ .can_edit_community_posts .acl_control.edit_community_posts,
+ .can_edit_community_posts .edit_community_posts {
+ display: inherit
+ }
+
+ .queue_add_comedy {
+ display: none
+ }
+
+ .can_queue_add_comedy .acl_control.queue_add_comedy,
+ .can_queue_add_comedy .queue_add_comedy {
+ display: inherit
+ }
+
+ .general_admin {
+ display: none
+ }
+
+ .can_general_admin .acl_control.general_admin,
+ .can_general_admin .general_admin {
+ display: inherit
+ }
+
+ .queue_edit_comedy {
+ display: none
+ }
+
+ .can_queue_edit_comedy .acl_control.queue_edit_comedy,
+ .can_queue_edit_comedy .queue_edit_comedy {
+ display: inherit
+ }
+
+ .homepage_splashing {
+ display: none
+ }
+
+ .can_homepage_splashing .acl_control.homepage_splashing,
+ .can_homepage_splashing .homepage_splashing {
+ display: inherit
+ }
+
+ .queue_edit_ukpolitics {
+ display: none
+ }
+
+ .can_queue_edit_ukpolitics .acl_control.queue_edit_ukpolitics,
+ .can_queue_edit_ukpolitics .queue_edit_ukpolitics {
+ display: inherit
+ }
+
+ .queue_add_tech {
+ display: none
+ }
+
+ .can_queue_add_tech .acl_control.queue_add_tech,
+ .can_queue_add_tech .queue_add_tech {
+ display: inherit
+ }
+
+ .queue_edit_videos {
+ display: none
+ }
+
+ .can_queue_edit_videos .acl_control.queue_edit_videos,
+ .can_queue_edit_videos .queue_edit_videos {
+ display: inherit
+ }
+
+ .super_share {
+ display: none
+ }
+
+ .can_super_share .acl_control.super_share,
+ .can_super_share .super_share {
+ display: inherit
+ }
+
+ .queue_edit_uk {
+ display: none
+ }
+
+ .can_queue_edit_uk .acl_control.queue_edit_uk,
+ .can_queue_edit_uk .queue_edit_uk {
+ display: inherit
+ }
+
+ .queue_add_usnews {
+ display: none
+ }
+
+ .can_queue_add_usnews .acl_control.queue_add_usnews,
+ .can_queue_add_usnews .queue_add_usnews {
+ display: inherit
+ }
+
+ .team_france {
+ display: none
+ }
+
+ .can_team_france .acl_control.team_france,
+ .can_team_france .team_france {
+ display: inherit
+ }
+
+ .give_full_admin {
+ display: none
+ }
+
+ .can_give_full_admin .acl_control.give_full_admin,
+ .can_give_full_admin .give_full_admin {
+ display: inherit
+ }
+
+ .aunews_homepage_edit {
+ display: none
+ }
+
+ .can_aunews_homepage_edit .acl_control.aunews_homepage_edit,
+ .can_aunews_homepage_edit .aunews_homepage_edit {
+ display: inherit
+ }
+
+ .team_mexico {
+ display: none
+ }
+
+ .can_team_mexico .acl_control.team_mexico,
+ .can_team_mexico .team_mexico {
+ display: inherit
+ }
+
+ .duplicate_post {
+ display: none
+ }
+
+ .can_duplicate_post .acl_control.duplicate_post,
+ .can_duplicate_post .duplicate_post {
+ display: inherit
+ }
+
+ .logged_in {
+ display: none
+ }
+
+ .can_logged_in .acl_control.logged_in,
+ .can_logged_in .logged_in {
+ display: inherit
+ }
+
+ .queue_edit_espanol {
+ display: none
+ }
+
+ .can_queue_edit_espanol .acl_control.queue_edit_espanol,
+ .can_queue_edit_espanol .queue_edit_espanol {
+ display: inherit
+ }
+
+ .facebook_chatter {
+ display: none
+ }
+
+ .can_facebook_chatter .acl_control.facebook_chatter,
+ .can_facebook_chatter .facebook_chatter {
+ display: inherit
+ }
+
+ .translation_moderator {
+ display: none
+ }
+
+ .can_translation_moderator .acl_control.translation_moderator,
+ .can_translation_moderator .translation_moderator {
+ display: inherit
+ }
+
+ .queue_add_community {
+ display: none
+ }
+
+ .can_queue_add_community .acl_control.queue_add_community,
+ .can_queue_add_community .queue_add_community {
+ display: inherit
+ }
+
+ .new_preview {
+ display: none
+ }
+
+ .can_new_preview .acl_control.new_preview,
+ .can_new_preview .new_preview {
+ display: inherit
+ }
+
+ .breaking_homepage {
+ display: none
+ }
+
+ .can_breaking_homepage .acl_control.breaking_homepage,
+ .can_breaking_homepage .breaking_homepage {
+ display: inherit
+ }
+
+ .team_brasil {
+ display: none
+ }
+
+ .can_team_brasil .acl_control.team_brasil,
+ .can_team_brasil .team_brasil {
+ display: inherit
+ }
+ </style>
+ <script src="http://platform.twitter.com/widgets.js"></script>
+</head>
+<!--[if IE 9]>
+<body class="BuzzPage PermalinkPage TwoColumns list_format_article VerticalSection en UKNews ie9">
+<![endif]-->
+<!--[if !IE]><!-->
+
+<body class="bf_dom BuzzPage PermalinkPage TwoColumns list_format_article VerticalSection en UKNews">
+ <!--<![endif]-->
+ <!--[if gte IE 9]><!-->
+ <svg style="display:none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 512 512">
+ <defs>
+ <g id="logo">
+ <path d="M78.992 103.787c0-9.275-6.625-16.785-18.772-16.785h-28.861v33.569h28.861c11.705 0 18.772-6.184 18.772-16.784zm-2.871-59.848c0-9.055-6.625-15.459-17.225-15.459h-27.537v30.918h27.537c10.6 0 17.225-5.963 17.225-15.459zm-76.121 104.237v-147.301h65.741c28.048 0 42.402 17.888 42.402 37.543 0 18.33-11.484 30.918-25.397 33.789 15.901 2.429 28.268 17.667 28.268 35.997 0 22.305-14.576 39.972-42.843 39.972h-68.171z"></path>
+ <path d="M226.649 148.176v-20.979l48.143-61.174h-48.143v-24.513h86.35v20.096l-49.028 62.058h49.911v24.512h-87.233"></path>
+ <path d="M321.066 148.176v-20.979l48.143-61.174h-48.143v-24.513h86.349v20.096l-49.027 62.058h49.91v24.512h-87.232"></path>
+ <path d="M424.783 148.176v-147.301h102.238v27.605h-70.878v30.918h53.333v27.604h-53.333v61.174h-31.36"></path>
+ <path d="M571.223 61.827c-17.447 0-24.956 12.147-26.06 22.747h52.561c-.884-10.159-7.951-22.747-26.501-22.747zm-55.211 32.906c0-30.918 22.967-55.873 55.211-55.873 32.022 0 53.443 23.85 53.443 58.523v6.625h-79.282c1.987 13.03 12.588 23.851 30.697 23.851 9.054 0 21.421-3.755 28.268-10.379l12.588 18.551c-10.601 9.717-27.385 14.796-43.948 14.796-32.463 0-56.977-21.864-56.977-56.094z"></path>
+ <path d="M685.4 61.827c-17.446 0-24.956 12.147-26.059 22.747h52.56c-.883-10.159-7.95-22.747-26.501-22.747zm-55.211 32.906c0-30.918 22.968-55.873 55.211-55.873 32.023 0 53.444 23.85 53.444 58.523v6.625h-79.282c1.988 13.03 12.587 23.851 30.697 23.851 9.054 0 21.421-3.755 28.267-10.379l12.588 18.551c-10.6 9.717-27.385 14.796-43.947 14.796-32.463 0-56.978-21.864-56.978-56.094z"></path>
+ <path d="M819.522 94.746c0-16.557-9.965-30.36-29.553-30.36h-17.51v60.874h17.352c18.793 0 29.711-14.613 29.711-30.514zm-73.719 53.639v-107.124h43.046c33.726 0 57.968 20.243 57.968 53.485 0 33.24-24.242 53.639-57.81 53.639h-43.204z"></path>
+ <path d="M116.619 105.525v-64.015h28.216v63.05c0 12.736 7.741 21.927 22.741 21.927 14.831 0 22.571-9.191 22.571-21.927v-63.05h28.059v63.858c0 26.764-16.124 45.632-50.63 45.632-34.512 0-50.957-19.031-50.957-45.475"></path>
+ </g>
+ <g id="facebook">
+ <path d="M483.743,0H28.259C12.649,0,0,12.649,0,28.259v455.484C0,499.348,12.649,512,28.259,512 h245.218V313.728h-66.724v-77.271h66.724v-56.985c0-66.13,40.39-102.14,99.384-102.14c28.257,0,52.545,2.104,59.621,3.044v69.111 l-40.913,0.019c-32.086,0-38.298,15.246-38.298,37.618v49.334h76.519l-9.964,77.271h-66.555V512h130.473 C499.348,512,512,499.348,512,483.743V28.259C512,12.649,499.348,0,483.743,0z">
+ </path>
+ </g>
+ <g id="facebook-f">
+ <path d="M369 170.013h-76.972v-50.645c0-19.03 12.563-23.458 21.413-23.458h54.32V12.285L292.952 12c-83.037 0-101.934 62.363-101.934 102.276v55.736H143v86.17h48.02v243.817h101.01V256.18h68.16l8.81-86.167z"></path>
+ </g>
+ <g id="google-plus">
+ <path d="M278.43 50h-127.69c-57.245 0-111.12 43.401-111.12 93.675 0 51.375 39.022 92.837 97.261 92.837 4.05 0 7.985-.081 11.839-.359-3.779 7.242-6.482 15.398-6.482 23.865 0 14.278 7.675 25.853 17.379 35.302-7.332 0-14.412.214-22.137.214-70.904-.001-125.479 45.191-125.479 92.052 0 46.154 59.829 75.024 130.737 75.024 80.836 0 125.482-45.899 125.482-92.056 0-37.008-10.911-59.171-44.647-83.045-11.54-8.176-33.612-28.059-33.612-39.747 0-13.697 3.906-20.444 24.509-36.553 21.117-16.512 36.062-39.727 36.062-66.727 0-32.146-14.306-63.475-41.162-73.812h40.486l28.575-20.671zm-44.6 312.591c1.013 4.279 1.565 8.683 1.565 13.176 0 37.294-24.015 66.438-92.917 66.438-49.011 0-84.407-31.048-84.407-68.341 0-36.551 43.904-66.978 92.913-66.448 11.438.121 22.097 1.963 31.772 5.098 26.605 18.516 45.691 28.978 51.074 50.077zm-78.472-139.105c-32.901-.984-64.162-36.829-69.841-80.053-5.679-43.239 16.379-76.325 49.271-75.346 32.888.989 64.163 35.679 69.844 78.908 5.674 43.236-16.389 77.477-49.274 76.492zm253.141-81.921v-91.566h-30.5v91.566h-91.5v30.522h91.5v91.566h30.5v-91.566h91.5v-30.522h-91.5z">
+ </path>
+ </g>
+ <g id="tweet">
+ <path d="M500 103.716c-17.954 8.07-37.251 13.524-57.501 15.974 20.667-12.555 36.544-32.435 44.02-56.126-19.347 11.628-40.772 20.068-63.579 24.618-18.261-19.717-44.281-32.035-73.078-32.035-55.29 0-100.121 45.42-100.121 101.445 0 7.951.886 15.695 2.594 23.119-83.209-4.23-156.982-44.619-206.361-105.996-8.618 14.983-13.557 32.411-13.557 51.003 0 35.197 17.675 66.248 44.54 84.44-16.411-.527-31.849-5.091-45.347-12.688-.01.423-.01.846-.01 1.276 0 49.151 34.511 90.153 80.313 99.474-8.401 2.319-17.246 3.56-26.376 3.56-6.451 0-12.725-.638-18.837-1.822 12.739 40.302 49.713 69.635 93.525 70.451-34.265 27.211-77.433 43.43-124.342 43.43-8.081 0-16.05-.482-23.883-1.419 44.308 28.784 96.934 45.581 153.474 45.581 184.154 0 284.86-154.584 284.86-288.644 0-4.398-.1-8.772-.293-13.123 19.564-14.305 36.537-32.171 49.959-52.516">
+ </path>
+ </g>
+ <g id="pinterest">
+ <path d="M255.459 11.311c-134.45 0-243.459 108.998-243.459 243.455 0 99.689 59.946 185.328 145.726 222.982-.685-17-.122-37.407 4.238-55.904 4.679-19.765 31.326-132.658 31.326-132.658s-7.78-15.543-7.78-38.52c0-36.077 20.913-63.021 46.953-63.021 22.145 0 32.843 16.633 32.843 36.549 0 22.262-14.198 55.559-21.5 86.399-6.099 25.825 12.949 46.889 38.426 46.889 46.126 0 77.193-59.243 77.193-129.437 0-53.357-35.938-93.295-101.302-93.295-73.849 0-119.856 55.073-119.856 116.589 0 21.209 6.253 36.169 16.049 47.749 4.504 5.32 5.13 7.462 3.499 13.57-1.168 4.479-3.849 15.263-4.96 19.538-1.622 6.165-6.617 8.369-12.189 6.092-34.014-13.886-49.858-51.135-49.858-93.009 0-69.156 58.326-152.082 173.996-152.082 92.949 0 154.125 67.261 154.125 139.462 0 95.502-53.094 166.852-131.359 166.852-26.285 0-51.009-14.209-59.477-30.345 0 0-14.134 56.092-17.128 66.923-5.16 18.771-15.265 37.53-24.503 52.152 21.896 6.465 45.026 9.984 68.998 9.984 134.44 0 243.443-109 243.443-243.459 0-134.457-109.003-243.455-243.443-243.455">
+ </path>
+ </g>
+ <g id="youtube">
+ <path d="M506.887,153.482c0,0-5.002-35.282-20.354-50.819c-19.469-20.393-41.293-20.494-51.301-21.688 c-71.646-5.179-179.122-5.179-179.122-5.179h-0.222c0,0-107.472,0-179.121,5.179c-10.009,1.194-31.824,1.294-51.301,21.688 C10.116,118.2,5.121,153.482,5.121,153.482S0,194.915,0,236.348v38.844c0,41.433,5.121,82.865,5.121,82.865 s4.995,35.282,20.346,50.819c19.477,20.393,45.061,19.748,56.456,21.886C122.883,434.688,256,435.904,256,435.904 s107.585-0.162,179.232-5.341c10.008-1.194,31.832-1.295,51.301-21.688c15.352-15.537,20.354-50.819,20.354-50.819 S512,316.624,512,275.191v-38.844C512,194.915,506.887,153.482,506.887,153.482z M203.418,322.262l-0.023-143.858l138.345,72.18 L203.418,322.262z">
+ <path d="M506.887,153.482c0,0-5.002-35.282-20.354-50.819 c-19.469-20.393-41.293-20.494-51.301-21.688c-71.646-5.179-179.122-5.179-179.122-5.179h-0.222c0,0-107.472,0-179.121,5.179 c-10.009,1.194-31.824,1.294-51.301,21.688C10.116,118.2,5.121,153.482,5.121,153.482S0,194.915,0,236.348v38.844 c0,41.433,5.121,82.865,5.121,82.865s4.995,35.282,20.346,50.819c19.477,20.393,45.061,19.748,56.456,21.886 C122.883,434.688,256,435.904,256,435.904s107.585-0.162,179.232-5.341c10.008-1.194,31.832-1.295,51.301-21.688 c15.352-15.537,20.354-50.819,20.354-50.819S512,316.624,512,275.191v-38.844C512,194.915,506.887,153.482,506.887,153.482z M203.418,322.262l-0.023-143.858l138.345,72.18L203.418,322.262z">
+ </path>
+ </path>
+ </g>
+ <g id="tumblr">
+ <path d="M378.819,408.955c-9.521,4.533-27.732,8.492-41.311,8.844 c-40.984,1.102-48.926-28.785-49.276-50.48V207.941h102.812v-77.51H288.608V0c0,0-73.777,0-75.004,0s-3.382,1.09-3.683,3.833 c-4.384,39.92-23.073,109.977-100.732,137.972v66.136h51.807v167.293c0,57.27,42.262,138.637,153.792,136.732
+ c37.626-0.65,79.413-16.408,88.657-29.986L378.819,408.955z">
+ </path>
+ </g>
+ <g id="social-icon--email">
+ <path d="M453.433 182.363c-42.482 29.453-85.236 58.91-127.447 88.635-17.7 12.275-47.655 37.365-69.714 37.365h-.542c-22.06 0-52.016-25.09-69.716-37.365-42.21-29.725-84.965-59.182-127.176-88.635C39.503 169.273 12 138.455 12 113.636 12 86.91 26.433 64 55.57 64h400.857C480.117 64 500 83.636 500 107.636c0 30.548-22.602 58.092-46.567 74.727zm46.567 222C500 428.365 480.394 448 456.428 448H55.57C31.607 448 12 428.365 12 404.363V187.82c8.168 8.998 17.43 16.906 27.503 23.725 45.206 30.818 90.955 61.637 135.345 94.092 22.876 16.91 51.196 37.637 80.88 37.637h.542c29.685 0 58.005-20.727 80.882-37.637 44.39-32.182 90.138-63.273 135.615-94.092 9.804-6.818 19.063-14.727 27.232-23.726v216.543z"></path>
+ </g>
+ <g id="icon-caret-right">
+ <path d="M374 243.082l-211.818-211.542c-2.727-2.724-6.818-4.54-10.455-4.54-3.636 0-7.727 1.816-10.455 4.54l-22.727 22.698c-2.727 2.724-4.545 6.809-4.545 10.441 0 3.632 1.818 7.717 4.545 10.441l178.637 178.404-178.637 178.404c-2.727 2.724-4.545 6.809-4.545 10.441 0 4.086 1.818 7.717 4.545 10.441l22.727 22.698c2.727 2.724 6.818 4.54 10.455 4.54 3.636 0 7.727-1.816 10.455-4.54l211.818-211.542c2.727-2.724 4.545-6.809 4.545-10.441 0-3.632-1.818-7.717-4.545-10.441z"></path>
+ </g>
+ <g id="icon-caret-down">
+ <path d="M266.918 384L478.46 172.182c2.724-2.727 4.54-6.818 4.54-10.455 0-3.636-1.816-7.727-4.54-10.455l-22.698-22.727c-2.724-2.727-6.81-4.545-10.44-4.545-3.633 0-7.718 1.818-10.442 4.545L256.476 307.182 78.072 128.545c-2.724-2.727-6.81-4.545-10.44-4.545-4.087 0-7.718 1.818-10.442 4.545l-22.698 22.727c-2.724 2.727-4.54 6.818-4.54 10.455 0 3.636 1.816 7.727 4.54 10.455L246.034 384c2.724 2.727 6.81 4.545 10.44 4.545 3.633 0 7.718-1.818 10.442-4.545h.002z"></path>
+ </g>
+ <g id="icon-search">
+ <path d="M476.41,423.501471 L376.136765,323.228235 C400.303529,288.343412 412.392294,249.457706 412.392294,206.581882 C412.392294,178.712059 406.981235,152.058647 396.162706,126.625235 C385.347765,101.188235 370.729294,79.2641176 352.310882,60.8457059 C333.892471,42.4272941 311.971941,27.8088235 286.538529,16.9938824 C261.097941,6.17535294 234.444529,0.767882353 206.574706,0.767882353 C178.704882,0.767882353 152.051471,6.17535294 126.618059,16.9938824 C101.181059,27.8088235 79.2569412,42.4272941 60.8385294,60.8457059 C42.4201176,79.2641176 27.8016471,101.191824 16.9867059,126.625235 C6.16817647,152.062235 0.760705882,178.712059 0.760705882,206.581882 C0.760705882,234.451706 6.16817647,261.097941 16.9867059,286.538529 C27.8016471,311.971941 42.4201176,333.892471 60.8385294,352.310882 C79.2569412,370.732882 101.184647,385.347765 126.618059,396.166294 C152.055059,406.984824 178.704882,412.392294 206.574706,412.392294 C249.457706,412.392294 288.339824,400.303529 323.224647,376.136765 L423.497882,476.115765 C430.512882,483.521882 439.275353,487.224941 449.806824,487.224941 C459.94,487.224941 468.716824,483.521882 476.115765,476.115765 C483.521882,468.713235 487.224941,459.94 487.224941,449.806824 C487.228529,439.483471 483.625941,430.710235 476.41,423.501471 L476.41,423.501471 Z M299.104529,299.104529 C273.473765,324.735294 242.632882,337.548882 206.574706,337.548882 C170.520118,337.548882 139.679235,324.731706 114.048471,299.104529 C88.4177059,273.473765 75.6041176,242.636471 75.6041176,206.578294 C75.6041176,170.523706 88.4212941,139.679235 114.048471,114.052059 C139.675647,88.4212941 170.520118,75.6077059 206.574706,75.6077059 C242.629294,75.6077059 273.470176,88.4248824 299.104529,114.052059 C324.735294,139.679235 337.552471,170.523706 337.552471,206.578294 C337.552471,242.636471 324.731706,273.473765 299.104529,299.104529 L299.104529,299.104529 Z" id="Shape" sketch:type="MSShapeGroup"></path>
+ </g>
+ <g id="news-bubble">
+ <path class="news-bubble__bubble" fill="#fff" d="M255.085 474.777c133.477 0 242.086-108.828 242.086-242.526 0-97.492-57.66-181.712-140.585-220.25H153.58C70.66 50.533 13 134.73 13 232.142c0 61.84 23.658 121.262 65.693 166.048L50.353 500H166.49l39.3-30.285c16.286 3.302 32.79 5.062 49.297 5.062z"></path>
+ <path class="news-bubble__bubble" fill="#ED3424" d="M256 42.3c-104.8 0-189.8 85.2-189.8 190.2 0 56.4 24.5 107 63.3 141.8L94.6 500l109.7-84.6c16.4 4.6 33.8 7.198 51.7 7.198 104.8 0 189.8-85.1 189.8-190.2C445.8 127.4 360.8 42.3 256 42.3z"></path>
+ <path class="news-bubble__bubble" fill="#fff" d="M193.3 211.9c13.4 9.9 27 19.9 40.5 29.9 5.6 4.1 15.2 12.6 22.2 12.6h.2c7 0 16.6-8.5 22.2-12.6 13.4-10 27-20 40.6-29.9 7.6-5.6 14.8-14.9 14.8-25.2 0-8.1-6.3-14.7-13.897-14.7H192.2c-9.3 0-13.9 7.7-13.9 16.8.1 8.3 8.8 18.7 15 23.1zM325 221.8c-14.5 10.4-29 20.9-43.2 31.8-7.3 5.7-16.3 12.7-25.7 12.7h-.2c-9.4 0-18.5-7-25.7-12.7-14.1-11-28.7-21.4-43.1-31.8-3.2-2.3-6.2-5-8.8-8v73.1c0 8.1 6.2 14.7 13.9 14.7h127.6c7.602 0 13.9-6.602 13.9-14.7v-73.1c-2.7 3-5.6 5.7-8.7 8z"></path>
+ </g>
+ <g id="icon-wrong-x">
+ <path d="M377.046875,327.516335 C377.046875,332.917377 374.822917,338.318419 371.010417,342.130919 L342.416667,370.724669 C338.604167,374.537169 333.203125,376.761127 327.802083,376.761127 C322.401042,376.761127 317.317708,374.537169 313.505208,370.724669 L256,313.21946 L198.494792,370.724669 C194.682292,374.537169 189.598958,376.761127 184.197917,376.761127 C178.796875,376.761127 173.395833,374.537169 169.583333,370.724669 L140.989583,342.130919 C137.177083,338.318419 134.953125,332.917377 134.953125,327.516335 C134.953125,322.115294 137.177083,317.03196 140.989583,313.21946 L198.494792,255.714252 L140.989583,198.209044 C137.177083,194.396544 134.953125,189.31321 134.953125,183.912169 C134.953125,178.511127 137.177083,173.110085 140.989583,169.297585 L169.583333,140.703835 C173.395833,136.891335 178.796875,134.667377 184.197917,134.667377 C189.598958,134.667377 194.682292,136.891335 198.494792,140.703835 L256,198.209044 L313.505208,140.703835 C317.317708,136.891335 322.401042,134.667377 327.802083,134.667377 C333.203125,134.667377 338.604167,136.891335 342.416667,140.703835 L371.010417,169.297585 C374.822917,173.110085 377.046875,178.511127 377.046875,183.912169 C377.046875,189.31321 374.822917,194.396544 371.010417,198.209044 L313.505208,255.714252 L371.010417,313.21946 C374.822917,317.03196 377.046875,322.115294 377.046875,327.516335 L377.046875,327.516335 Z M500,255.714252 C500,121.005919 390.708333,11.714252 256,11.714252 C121.291667,11.714252 12,121.005919 12,255.714252 C12,390.422585 121.291667,499.714252 256,499.714252 C390.708333,499.714252 500,390.422585 500,255.714252 L500,255.714252 Z" id="-2" sketch:type="MSShapeGroup"></path>
+ </g>
+ <g id="icon-correct-tick">
+ <path d="M422.580374,205.888376 C422.580374,211.289418 420.674124,216.372751 416.861624,220.185251 L244.345999,392.700876 C240.533499,396.513376 235.132457,398.737334 229.731416,398.737334 C224.648082,398.737334 219.247041,396.513376 215.434541,392.700876 L100.424124,277.690459 C96.611624,273.877959 94.705374,268.794626 94.705374,263.393584 C94.705374,257.992543 96.611624,252.591501 100.424124,248.779001 L129.335582,220.185251 C133.148082,216.372751 138.231416,214.148793 143.632457,214.148793 C149.033499,214.148793 154.116832,216.372751 157.929332,220.185251 L229.731416,291.987334 L359.356416,162.680043 C363.168916,158.867543 368.252249,156.643584 373.653291,156.643584 C379.054332,156.643584 384.137666,158.867543 387.950166,162.680043 L416.861624,191.273793 C420.674124,195.086293 422.580374,200.487334 422.580374,205.888376 L422.580374,205.888376 Z M502.642874,257.357126 C502.642874,122.648793 393.351207,13.357126 258.642874,13.357126 C123.934541,13.357126 14.642874,122.648793 14.642874,257.357126 C14.642874,392.065459 123.934541,501.357126 258.642874,501.357126 C393.351207,501.357126 502.642874,392.065459 502.642874,257.357126 L502.642874,257.357126 Z" id="-2" sketch:type="MSShapeGroup"></path>
+ </g>
+ <g id="icon-rss">
+ <path d="M12 433.074c0 36.96 29.963 66.926 66.926 66.926 36.962 0 66.926-29.966 66.926-66.926 0-36.959-29.964-66.926-66.926-66.926-36.963 0-66.926 29.967-66.926 66.926zM12 176.525v94.812c126.286 0 228.663 102.377 228.663 228.663h94.812c0-178.653-144.825-323.475-323.475-323.475zM12 12v97.6c215.613 0 390.4 174.787 390.4 390.4h97.6c0-269.512-218.489-488-488-488z"></path>
+ </g>
+ <g id="icon-envelop">
+ <path d="M256 357.455l-96.557-98.699-134.186 159.699h461.496l-134.195-159.699-96.558 98.699zm229.802-263.91h-459.603l229.801 234.878 229.802-234.878zm-118.967 150.626l133.165 158.499v-294.609l-133.165 136.11zm-354.835-136.11v294.609l133.165-158.499-133.165-136.11z"></path>
+ </g>
+ <g id="podcast">
+ <path d="M198.288 227.356c0-31.86 25.837-57.698 57.717-57.698 31.87 0 57.718 25.837 57.718 57.698 0 31.89-25.847 57.736-57.718 57.736-31.88 0-57.717-25.847-57.717-57.736zm57.716 72.166c-57.717 0-72.145 57.698-50.497 115.414C227.147 472.643 186.633 508 256.004 508c69.38 0 28.86-35.357 50.508-93.065 21.63-57.715 7.21-115.413-50.508-115.413zM256.014 4C132.834 4 32.622 104.183 32.622 227.338c0 69.053 31.185 133.14 85.543 175.825 8.206 6.433 20.06 5.01 26.495-3.194 6.433-8.197 5.01-20.062-3.185-26.504C96.29 337.99 70.37 284.736 70.37 227.34 70.37 125 153.65 41.75 256.013 41.75c102.345 0 185.618 83.252 185.618 185.59 0 57.642-26.112 111.052-71.636 146.536-8.223 6.398-9.69 18.263-3.283 26.476 3.722 4.782 9.28 7.282 14.894 7.282 4.06 0 8.15-1.305 11.59-3.987 54.77-42.695 86.18-106.956 86.18-176.31C479.378 104.184 379.178 4 256.015 4zM416.25 227.356C416.25 139 344.37 67.13 256.004 67.13c-88.364 0-160.254 71.872-160.254 160.226 0 43.498 17.14 84.212 48.252 114.623 7.467 7.282 19.413 7.145 26.695-.302 7.283-7.467 7.146-19.404-.3-26.696-23.803-23.245-36.9-54.376-36.9-87.625 0-67.536 54.962-122.478 122.507-122.478 67.548 0 122.5 54.94 122.5 122.477 0 33.586-13.336 64.927-37.54 88.237-7.5 7.238-7.72 19.184-.492 26.696 3.706 3.84 8.644 5.776 13.6 5.776 4.71 0 9.427-1.762 13.086-5.284 31.652-30.494 49.092-71.49 49.092-115.426z"></path>
+ </g>
+ <g id="icon-user-avatar">
+ <path d="M357.441761,250.236204 C348.700994,250.236204 311.764205,291.963569 256.5,291.963569 C201.235795,291.963569 164.299006,250.236204 155.558239,250.236204 C72.943892,250.236204 58,354.404518 58,422.249011 C58,470.880904 88.4517045,500 133.283381,500 L379.716619,500 C424.548295,500 455,470.880904 455,422.249011 C455,354.404518 440.056108,250.236204 357.441761,250.236204 Z M364.772727,127.275598 C364.772727,63.6338617 316.275568,12 256.5,12 C196.724432,12 148.227273,63.6338617 148.227273,127.275598 C148.227273,190.917335 196.724432,242.551196 256.5,242.551196 C316.275568,242.551196 364.772727,190.917335 364.772727,127.275598 L364.772727,127.275598 Z"></path>
+ </g>
+ <g id="plus">
+ <path d="M500 222.727c0-18.369-14.903-33.273-33.273-33.273h-144.182v-144.182c0-18.369-14.903-33.273-33.273-33.273h-66.545c-18.369 0-33.273 14.903-33.273 33.273v144.182h-144.182c-18.369 0-33.273 14.903-33.273 33.273v66.545c0 18.369 14.903 33.273 33.273 33.273h144.182v144.182c0 18.369 14.903 33.273 33.273 33.273h66.545c18.369 0 33.273-14.903 33.273-33.273v-144.182h144.182c18.369 0 33.273-14.903 33.273-33.273v-66.545z"></path>
+ </g>
+ <g id="minus">
+ <path d="M500 222.321c0-18.396-14.903-33.321-33.273-33.321h-421.455c-18.369 0-33.273 14.925-33.273 33.321v66.643c0 18.396 14.903 33.321 33.273 33.321h421.455c18.369 0 33.273-14.925 33.273-33.321v-66.643z"></path>
+ </g>
+ <g id="pencil">
+ <path d="M127.328 456.277h-33.995v-40.723h-40.667v-34.042l28.911-28.952 74.662 74.766-28.911 28.952zm166.162-295.245c0 1.909-.635 3.818-2.224 5.409l-172.198 172.438c-1.589 1.591-3.495 2.227-5.401 2.227-4.13 0-6.99-2.863-6.99-6.999 0-1.909.635-3.818 2.224-5.409l172.198-172.438c1.589-1.591 3.495-2.227 5.401-2.227 4.13 0 6.99 2.863 6.99 6.999zm-17.156-61.085l-264.334 264.702v132.351h132.167l264.334-264.702-132.167-132.351zm216.995 30.543c0-10.817-4.448-21.316-11.755-28.952l-74.662-74.448c-7.625-7.636-18.109-12.09-28.911-12.09s-21.286 4.454-28.594 12.09l-52.74 52.495 132.167 132.351 52.74-52.813c7.307-7.317 11.755-17.817 11.755-28.634z"></path>
+ </g>
+ <g id="trash">
+ <path d="M194.909 205.167c0-5.719-4.455-10.167-10.182-10.167h-20.364c-5.727 0-10.182 4.448-10.182 10.167v183c0 5.719 4.455 10.167 10.182 10.167h20.364c5.727 0 10.182-4.448 10.182-10.167v-183zm81.455 0c0-5.719-4.455-10.167-10.182-10.167h-20.364c-5.727 0-10.182 4.448-10.182 10.167v183c0 5.719 4.455 10.167 10.182 10.167h20.364c5.727 0 10.182-4.448 10.182-10.167v-183zm81.455 0c0-5.719-4.455-10.167-10.182-10.167h-20.364c-5.727 0-10.182 4.448-10.182 10.167v183c0 5.719 4.455 10.167 10.182 10.167h20.364c5.727 0 10.182-4.448 10.182-10.167v-183zm40.727 230.021c0 15.25-8.591 24.146-10.182 24.146h-264.727c-1.591 0-10.182-8.896-10.182-24.146v-301.188h285.091v301.188zm-213.818-341.854l15.591-37.172c.955-1.271 3.5-3.177 5.409-3.495h100.864c1.591.318 4.455 2.224 5.409 3.495l15.273 37.172h-142.545zm295.273 10.167c0-5.719-4.455-10.167-10.182-10.167h-98.318l-22.273-53.057c-6.364-15.568-25.455-28.276-42.318-28.276h-101.818c-16.864 0-35.955 12.708-42.318 28.276l-22.273 53.057h-98.318c-5.727 0-10.182 4.448-10.182 10.167v20.333c0 5.719 4.455 10.167 10.182 10.167h30.545v302.458c0 34.948 22.909 63.542 50.909 63.542h264.727c28 0 50.909-29.865 50.909-64.813v-301.188h30.545c5.727 0 10.182-4.448 10.182-10.167v-20.333z" sketch:type="MSShapeGroup"></path>
+ </g>
+ <g id="badge__cute">
+ <path class="badge__text" d="M70.024 366.258l-.196-.342c-14.975-26.16-7.252-59.867 21.986-76.604 18.98-10.864 36.33-9.9 51.342-1.92l-12.662 29.04c-7.97-3.61-14.983-4.362-22.85.14-10.43 5.97-12.84 19.61-6.38 30.894l.197.342c6.853 11.97 19.564 16.725 30.508 10.46 7.695-4.403 10.598-10.833 12.302-19.753l30.72 3.3c-1.308 17.547-8.725 33.143-29.073 44.79-27.87 15.955-60.918 5.814-75.894-20.35m108.297-43.6l-34.647-60.53 32.488-18.595 28.68 50.1c5.773 10.09 14.207 12.526 22.072 8.024 7.695-4.406 10.377-13.205 4.603-23.293l-28.677-50.1 32.488-18.594 52.95 92.505-32.487 18.597-7.244-12.652c-1.58 11.12-6.116 23.024-19.283 30.56-19.663 11.257-38.9 5.014-50.938-16.018m116.588-62.425l-21.533-37.618-10.943 6.265-14.976-26.164 10.947-6.264-13.41-23.426 32.488-18.596 13.41 23.427 21.544-12.333 14.973 26.16-21.544 12.334 17.91 31.29c3.72 6.5 8.192 7.57 14.177 4.146 4.274-2.447 7.694-5.994 10.55-10.125l14.584 25.475c-3.954 6.577-10.474 13.032-19.537 18.22-19.492 11.158-36.014 9.263-48.64-12.794 M405.197 163.734c-7.07-9.574-16.774-12.646-25.666-7.556-8.547 4.894-10.543 14.89-6.48 25.957l32.147-18.4zm-58.324 44.056l-.196-.342c-15.465-27.017-8.378-59.45 18.98-75.11 31.976-18.304 60.09-3.295 75.653 23.892 1.174 2.052 2.545 4.445 3.647 6.766l-61.9 35.432c8.34 8.62 18.63 9.542 28.718 3.766 7.694-4.404 12.185-10.834 15.135-21.15l26.47 4.6c-2.432 16.374-10.95 31.24-29.417 41.81-29.068 16.638-60.648 9.062-77.09-19.664z" fill="#1A1918"></path>
+ </g>
+ <g id="badge__lol">
+ <path class="badge__text" d="M147.455 353.512l-49.683-86.117L57.5 290.662h-.003l69.557 120.566 96.895-55.984-19.87-34.447zM323.048 217.15c-20.172-34.966-64.468-46.116-101.644-24.636-37.175 21.48-49.82 65.99-29.65 100.955l.2.345c20.174 34.963 64.47 46.113 101.644 24.634 37.176-21.48 49.82-65.99 29.65-100.953l-.2-.347zm-49.674 65.446c-15.492 8.95-32.755 1.7-41-12.596l-.2-.346c-8.147-14.122-5.864-32.437 9.453-41.286 15.492-8.95 32.755-1.7 41 12.595l.2.345c8.15 14.124 5.864 32.438-9.453 41.288zM446.062 180.982l-56.623 32.716-49.684-86.12-40.274 23.27h-.002l69.557 120.566 96.898-55.985z" fill="#1A1918"></path>
+ </g>
+ <g id="badge__wtf">
+ <path class="badge__text" d="M66.68 320.108l35.878-20.537 43.728 44.63-14.243-62.017 30.284-17.336 46.678 43.965-16.172-60.915 35.3-20.205 27.962 123.568-31.635 18.108-48-44.487 13.665 64.142-31.442 17.997-92.004-86.912M287.834 289.044l-24.292-42.437-12.346 7.067-16.892-29.514 12.346-7.067-15.128-26.426 36.65-20.98 15.128 26.43 24.304-13.915 16.892 29.514-24.304 13.912 20.205 35.3c4.196 7.33 9.242 8.54 15.994 4.676 4.823-2.762 8.68-6.762 11.903-11.423l16.452 28.743c-4.462 7.42-11.817 14.7-22.04 20.554-21.99 12.587-40.627 10.45-54.87-14.432M346.762 198.714l-12.153 6.956-16.453-28.74 12.153-6.956-1.325-2.316c-6.845-11.96-9.225-22.38-6.585-32.084 2.722-10.01 9.664-17.567 22.008-24.634 11.19-6.404 18.795-9.222 25.576-10.798l14.795 25.848c-5.018 1.08-9.703 2.736-14.91 5.717-6.752 3.865-8.65 9.048-4.787 15.8l1.436 2.507 23.917-13.692 16.122 28.162-23.343 13.36 42.952 75.037-36.46 20.87-42.95-75.038"></path>
+ </g>
+ <g id="badge__geeky">
+ <path class="badge__text" d="M116.894 333.782l-.146-.255c-4.379-7.65-13.454-9.903-21.614-5.232-8.287 4.743-10.868 13.837-6.489 21.487l.146.255c4.379 7.65 13.454 9.903 21.742 5.158 8.159-4.671 10.74-13.765 6.362-21.413zm-20.859 79.477l-1.418-20.516c9.73-.153 18.511-1.963 27.818-7.291 12.112-6.932 14.674-16.355 8.398-27.319l-1.533-2.679c-1.634 8.384-5.308 16.75-15.38 22.515-16.957 9.705-37.604 5.275-48.916-14.487l-.146-.255c-11.384-19.888-4.494-40.083 11.443-49.205 10.327-5.911 18.855-5.207 27.22-2.717l-4.671-8.16 24.224-13.865 29.994 52.4c7.225 12.621 9.456 23.024 6.839 32.647-2.671 9.823-10.39 18.811-24.797 27.058-13.387 7.663-26.212 11.281-39.075 11.873z M191.585 288.32c-5.272-7.139-12.506-9.428-19.137-5.634-6.374 3.65-7.864 11.102-4.833 19.355l23.97-13.721zm-43.488 32.849l-.146-.255c-11.531-20.143-6.246-44.327 14.152-56.004 23.842-13.647 44.804-2.456 56.407 17.815.877 1.529 1.898 3.315 2.718 5.045l-46.152 26.419c6.218 6.427 13.89 7.114 21.412 2.808 5.738-3.284 9.087-8.079 11.285-15.77l19.737 3.429c-1.814 12.21-8.164 23.293-21.933 31.175-21.674 12.406-45.22 6.757-57.48-14.662z M266.167 245.629c-5.27-7.139-12.506-9.43-19.135-5.634-6.376 3.648-7.864 11.102-4.833 19.355l23.968-13.721zm-43.487 32.849l-.146-.255c-11.531-20.145-6.246-44.328 14.152-56.004 23.842-13.647 44.804-2.458 56.407 17.814.875 1.531 1.898 3.315 2.718 5.046l-46.152 26.417c6.218 6.427 13.89 7.115 21.412 2.808 5.738-3.284 9.087-8.079 11.285-15.769l19.737 3.429c-1.814 12.209-8.164 23.292-21.933 31.175-21.674 12.406-45.22 6.756-57.48-14.662z M263.802 176.737l24.223-13.866 27.002 47.173 5.533-33.805 27.412-15.689-8.133 41.386 48.252 27.223-26.647 15.251-27.325-15.503-2.088 10.843 9.269 16.192-24.225 13.866-53.273-93.071 M403.567 239.934l-2.185-21.262c5.139.105 10.022-.828 12.699-2.36 2.422-1.386 3.715-2.972 4.003-6.016l-65.78-52.227 25.371-14.523 37.561 33.682-10.787-49.007 24.861-14.231 13.289 81.766c3.203 19.493.351 29.591-13.419 37.472-8.543 4.889-17.196 6.627-25.614 6.706" fill="#1A1918"></path>
+ </g>
+ <g id="badge__omg">
+ <path class="badge__text" d="M134.132 328.064l-.185-.323c-4.997-8.73-15.443-11.98-23.526-7.354-8.245 4.719-10.247 15.095-5.435 23.501l.185.324c4.997 8.73 15.443 11.98 23.526 7.352 8.245-4.719 10.247-15.094 5.435-23.501zm-64.019 36.646l-.185-.324c-14.251-24.897-5.773-58.081 23.327-74.737 28.938-16.564 61.499-7.301 75.749 17.596l.186.323c14.251 24.897 5.773 58.081-23.327 74.738-28.938 16.564-61.499 7.301-75.75-17.596z M152.172 258.714l36.697-21.007 6.756 11.802c1.494-10.514 6.592-22.231 18.717-29.172 11.963-6.847 24.139-6.949 34.356-.348 2.624-12.664 7.999-23.896 21.58-31.67 18.914-10.827 37.587-5.203 48.969 14.681l33.313 58.199-36.697 21.007-26.743-46.721c-4.257-7.436-11.029-9.141-16.364-6.088-5.334 3.054-7.778 10.034-3.521 17.47l26.744 46.721-36.699 21.005-26.743-46.721c-4.257-7.436-11.029-9.141-16.364-6.087-5.334 3.053-7.778 10.033-3.521 17.469l26.743 46.721-36.697 21.007-50.526-88.269 M397.178 170.413l-.186-.324c-4.35-7.598-13.685-10.41-22.577-5.321-9.053 5.182-11.102 14.727-6.66 22.486l.184.323c4.35 7.598 13.594 10.249 22.485 5.16 9.054-5.182 11.195-14.565 6.754-22.324zm-27.513 101.172l-1.36-28.626c12.822-.471 24.534-2.882 36.659-9.823 13.741-7.865 16.944-19.143 9.912-31.43l-1.479-2.586c-1.774 8.527-6.317 19.713-18.604 26.746-22.795 13.047-48.538 6.32-62.512-18.091l-.184-.324c-14.158-24.734-6.692-50.686 13.678-62.346 12.932-7.403 23.307-6.902 33.568-3.976l-5.366-9.377 36.697-21.006 37.755 65.96c9.346 16.327 12.337 29.426 8.88 42.136-3.387 12.456-12.644 24.407-32.367 35.698-19.561 11.197-36.979 16.015-55.277 17.045z" fill="#1A1918"></path>
+ </g>
+ <g id="badge__trashy">
+ <path class="badge__text" d="M86.781 377.745l-15.555-27.174-7.905 4.525-10.818-18.898 7.905-4.526-9.686-16.922 23.469-13.433 9.686 16.922 15.564-8.908 10.818 18.898-15.564 8.908 12.939 22.605c2.687 4.693 5.918 5.468 10.241 2.993 3.088-1.767 5.557-4.329 7.621-7.314l10.535 18.405c-2.856 4.752-7.566 9.415-14.113 13.162-14.081 8.061-26.016 6.692-35.137-9.241 M107.099 304.946l23.469-13.435 7.707 13.464c-1.403-11.332 1.379-20.796 12.779-26.666l14.14 24.705-1.976 1.13c-12.228 7-15.115 18.001-6.277 33.441l11.878 20.752-23.468 13.433-38.251-66.824 M220.427 296.653l-1.768-3.088c-2.913.355-6.672 1.524-10.13 3.504-6.794 3.888-8.838 9.486-6.01 14.426l.141.248c2.617 4.571 7.631 5.307 12.448 2.551 6.794-3.888 9.137-10.97 5.319-17.64zm-39.593 29.388l-.141-.248c-7.92-13.834-1.521-27.008 14.166-35.989 6.177-3.535 12.937-5.764 17.543-6.597l-.635-1.112c-3.961-6.916-10.545-8.396-19.563-3.234-7.04 4.031-11.698 8.5-16.284 14.241l-14.291-13.794c5.767-7.401 12.593-14.096 24.082-20.672 11.98-6.857 21.76-8.683 30.111-6.412 7.893 2.042 13.952 7.758 19.326 17.145l21.989 38.415-23.223 13.292-3.959-6.916c-1.671 7.68-6.062 14.621-14.832 19.641-12.723 7.283-26.653 5.58-34.288-7.759z M256.775 296.839l.638-19.225c10.557.681 20.442-1.532 27.359-5.493 4.077-2.332 5.222-4.628 3.88-6.975l-.141-.248c-1.485-2.593-5.827-1.584-13.999.47-15.197 4.106-28.241 5.67-35.949-7.794l-.141-.248c-8.13-14.204-1.291-28.614 14.149-37.453 9.757-5.586 21.512-8.541 31.998-7.985l.457 19.418c-9.11.13-17.988 2.097-23.299 5.136-3.582 2.051-4.658 4.47-3.597 6.322l.141.248c1.485 2.593 6.02 1.637 14.264-.293 15.337-3.86 28.452-5.3 35.877 7.671l.141.246c8.413 14.699 1.803 28.651-14.501 37.984-11.239 6.434-24.195 9.586-37.276 8.219 M276.05 177.242l23.47-13.435 18.595 32.486c1.142-8.033 4.419-16.632 13.93-22.076 14.205-8.13 28.101-3.622 36.797 11.571l25.029 43.727-23.469 13.433-20.716-36.192c-4.171-7.288-10.262-9.048-15.822-5.867-5.682 3.252-7.619 9.61-3.448 16.897l20.716 36.192-23.469 13.433-51.614-90.169 M408.124 240.38l-2.116-20.6c4.979.102 9.708-.802 12.303-2.287 2.347-1.344 3.6-2.881 3.88-5.829l-63.73-50.601 24.58-14.07 36.391 32.632-10.451-47.48 24.086-13.787 12.875 79.218c3.105 18.888.339 28.67-13 36.305-8.276 4.737-16.66 6.421-24.817 6.498" fill="#1A1918"></path>
+ </g>
+ <g id="badge__win">
+ <path class="badge__text" d="M52.958 317.774l42.141-24.35 35.541 36.473-12.074-50.55 35.149-20.308 38.126 36.015-13.626-49.652 41.559-24.012 29.234 125.628-36.898 21.319-40.412-37.285 11.671 53.891-36.703 21.207-93.708-88.375 M226.954 217.24l44.083-25.47 61.218 106.111-44.083 25.47-61.218-106.111zm-21.406-35.311l45.636-26.367 16.257 28.18-45.636 26.369-16.257-28.181z M284.629 183.917l44.083-25.47 8.52 14.77c1.752-12.673 7.5-27.395 22.453-36.035 22.332-12.903 44.835-6.212 58.626 17.692l40.362 69.963-44.081 25.47-32.178-55.775c-5.271-9.134-13.735-11.239-20.339-7.425-6.602 3.815-9.595 12.54-4.326 21.674l32.179 55.775-44.083 25.471-61.218-106.111" fill="#1A1918"></path>
+ </g>
+ <g id="badge__fail">
+ <path class="badge__text" d="M93.124 348.203l-13.78 7.961-21.754-37.708 13.78-7.961c-6.904-12.963-9.823-24.491-6.729-36.047 3.367-12.576 11.838-21.78 27.987-31.11 14.426-8.335 23.999-12.143 31.793-14.059l17.652 30.597c-5.359 1.659-10.468 3.75-16.713 7.358-7.535 4.354-9.67 9.61-5.941 16.074l.498.862 27.13-15.676 21.008 36.416-26.052 15.053 46.12 79.942-48.877 28.24-46.119-79.941 M262.073 299.139l-2.859-4.955c-3.42.539-8.223 2.166-12.314 4.529-9.688 5.598-11.715 14.525-7.49 21.852l.249.43c3.978 6.894 11.542 8.559 17.784 4.951 8.613-4.976 11.095-15.604 4.63-26.808zm-67.147 52.301l-.249-.432c-13.551-23.486-3.694-46.706 23.651-62.507 9.904-5.723 23.85-10.908 30.261-11.739l-1.117-1.939c-6.216-10.774-16.496-13.167-31.568-4.457-12.057 6.966-20.685 15.399-28.659 25.465l-27.382-27.562c10.582-13.009 24.094-25.412 44.548-37.232 23.902-13.808 42.261-17.809 58.564-13.438 13.924 3.734 23.958 13.164 33.778 30.186l38.662 67.012-48.877 28.241-6.837-11.851c-3.085 13.561-10.71 25.723-25.35 34.184-22.607 13.062-46 9.34-59.424-13.931z M281.746 188.94l48.877-28.238 67.874 117.649-48.877 28.24-67.874-117.65zm-23.734-39.149l50.599-29.236 18.024 31.244-50.599 29.236-18.024-31.245z M323.251 112.096l48.877-28.239 90.746 157.297-48.875 28.24-90.748-157.298" fill="#1A1918"></path>
+ </g>
+ <g id="badge__trending">
+ <path class="badge__icon-white" d="M415.588 250.187l-19.801-141.264-131.49 53.377 52.118 30.276-49.233 85.799-85.274-49.538-84.015 146.42 47.059 27.336 56.845-99.07 85.274 49.538 76.401-133.149 52.116 30.276" fill="#fff"></path>
+ </g>
+ <g id="badge__election2015">
+ <path d="M377.98 470.274c-116.686 67.368-265.889 27.389-333.255-89.294-67.368-116.686-27.389-265.889 89.294-333.255 116.686-67.368 265.886-27.389 333.255 89.294 67.368 116.686 27.389 265.886-89.294 333.255z" fill="#fe0"></path>
+ <path d="M463.394 144.907v1.464c-1.009 3.03-2.984 5.411-5.157 7.649-3.346 3.445-7.118 6.35-11.227 8.831-.826.498-2.003.651-2.196 1.904-1.379.951-2.602 2.162-3.983 3.034-4.239 2.68-8.731 4.931-13.392 6.802-2.267.91-4.483 1.87-6.472 3.317-.624.454-1.362.749-2.045 1.123-.764.419-1.565.785-2.28 1.278-5.698 3.928-11.495 7.697-17.691 10.797-1.135.568-1.478 1.216-1.475 2.454.041 19.463.04 38.927.001 58.39-.003 1.242.365 2.049 1.307 2.855 10.775 9.229 21.1 18.949 31.214 28.896.372.365.721.754 1.207 1.263-.795.501-1.437.919-2.092 1.315-.791.478-1.633.881-2.381 1.417-1.35.968-1.509 1.761-.857 3.267.6 1.385 1.219 2.765 1.726 4.184 1.78 4.981 1.001 9.401-2.975 13.081l-.303.317c-1.032 1.03-1.457 1.094-2.624.189-.767-.595-1.435-1.316-2.169-1.955-.42-.365-.884-.677-1.368-1.043l-.594.874c-.35-.32-.663-.618-.989-.901-2.24-1.953-4.439-3.956-6.741-5.832-1.315-1.072-2.784-1.959-4.216-2.877-.507-.325-1.087-.661-1.798-.338 0 .361-.102.732.016 1.01.849 2.008 1.478 4.122 3.064 5.757 1.526 1.573 2.995 3.207 4.417 4.875.818.959 1.595 1.982 2.213 3.077 1.528 2.707.861 5.011-1.824 6.551-.928.532-1.959.893-2.849 1.477-.838.55-1.671 1.196-2.289 1.973-.804 1.01-.674 1.458.238 2.372 2.169 2.174 4.346 4.338 6.508 6.518.887.894.939 1.598.084 2.515-.453.487-1.041.881-1.632 1.197-.726.387-1.535.616-2.279.973-.498.239-.946.582-1.454.903l.409.79c2.313 4.237 5.447 7.838 8.81 11.243 3.595 3.641 7.268 7.205 10.902 10.808.402.399.773.83 1.137 1.223-.573.914-1.043 1.71-1.559 2.475-.867 1.288-1.816 1.6-3.269 1.083-1.124-.399-2.015-1.134-2.867-1.959-7.461-7.216-14.94-14.415-22.417-21.615-.441-.425-.914-.816-1.607-1.431-.031.855-.07 1.413-.07 1.972-.004 11.561-.027 23.121.004 34.683.027 10.045-6.16 17.899-14.015 21.097-3.121 1.27-6.369 1.656-9.716 1.654-65.159-.017-130.318-.008-195.476-.043-1.322-.001-2.088.43-2.851 1.478-6.566 9.025-13.193 18.005-19.799 27.001-1.193 1.625-2.514 3.104-4.37 4.001h-.584c-.354-.641-.382-1.309-.061-1.954.497-.999.95-2.037 1.577-2.952 5.979-8.724 11.992-17.424 17.993-26.133.264-.384.507-.783.911-1.41-2.045 0-3.828.05-5.606-.021-.93-.037-1.506.261-2.054 1.028-2.805 3.927-5.667 7.812-8.522 11.702-.322.44-.725.821-1.09 1.229l-.299-.199c.229-.453.423-.93.694-1.357 2.348-3.704 4.712-7.398 7.067-11.097.223-.351.418-.719.705-1.219-.561-.029-.934-.063-1.308-.064-1.899-.005-3.8.043-5.697-.022-.92-.031-1.507.251-2.076 1.002-3.767 4.973-7.591 9.904-11.394 14.85-1.931 2.512-3.854 5.031-5.795 7.534-.295.381-.519.926-1.414.875.393-.581.655-1.021.966-1.424 2.653-3.432 5.329-6.847 7.97-10.289 2.789-3.635 5.551-7.291 8.311-10.949.299-.397.846-.737.52-1.38-1.66-.379-2.402-.287-3.754.395-.548.276-1.239.757-1.664.007-.355-.627-.801-.598-1.327-.601-.633-.004-1.268.03-1.899-.009-.727-.046-1.297.114-1.778.737-.323.419-.843.685-1.537 1.224l.24-1.982c-1.926 0-3.777.054-5.623-.01-6.082-.211-11.237-2.564-15.445-6.939-4.381-4.555-6.302-10.116-6.303-16.36-.012-78.934-.009-157.868.002-236.803 0-1.459.081-2.924.23-4.376 1.023-9.967 8.328-17.943 18.102-19.808.902-.172 1.8-.362 2.701-.543h242.557c.323.091.64.22.969.267 8.425 1.193 14.44 5.647 18.059 13.357.136.289.308.562.486.885.395-.195.704-.33.996-.494 2.731-1.538 5.587-2.742 8.684-3.325 4.396-.827 8.78-1.713 13.184-2.488 2.103-.37 4.24-.546 6.363-.796.122-.014.259.094.388.145l.394 1.236c.741-.241 1.375-.511 2.036-.646 1.184-.243 2.382-.433 3.581-.593.964-.129 1.527.372 1.861 1.267.592 1.585.516 3.191.031 4.737-.4 1.275-.373 2.434.132 3.561.78.155 1.543.182 2.184.475.529.241 1.211.742 1.3 1.225.154.836.66 1.176 1.411 1.543l-1.346 2.081c.772-.046 1.482-.216 2.078-.576 1.792-1.081 3.509-2.288 5.313-3.35 1.909-1.124 3.903-1.954 6.233-1.436.997.222 1.83.504 2.047 1.605 1.454-.464 2.645-1.956 4.226-.613-.172 1.88-1.214 3.111-2.839 3.916-.475.017-.952.015-1.426.056-.841.074-1.32.49-1.228 1.398-.139.011-.316-.029-.412.042-1.972 1.459-4.028 2.75-5.776 4.574-1.544 1.61-3.666 2.724-5.664 3.817-1.425.779-2.531 1.923-3.857 2.796-.28.184-.423.575-.63.871.549-.079.969-.285 1.363-.534 3.375-2.127 6.754-4.247 10.112-6.401.856-.549 1.669-1.175 2.451-1.826 1.73-1.44 3.551-2.725 5.643-3.588 1.231-.508 2.356-.598 3.525.347 1.175.951 1.363 1.156.734 2.508-.917 1.972-2.325 3.587-3.799 5.149l-1.024 1.074c.678-.046 1.19-.319 1.734-.482 1.438-.431 2.873-.899 4.342-1.188 1.204-.237 2.31.081 2.932 1.313zm-281.99 215.761c-.321.268-.691.495-.957.809-7.084 8.354-14.157 16.716-21.228 25.082-.235.278-.414.603-.66.969 1.37.373 2.24.071 3.084-1.035 6.262-8.202 12.6-16.347 18.905-24.517.317-.412.553-.888.826-1.335l.804-.748-.248-.198-.527.973zm4.288-29.067c-1.06 1.2-2.15 2.375-3.175 3.604-8.124 9.735-15.688 19.907-23.302 30.039-1.962 2.611-3.823 5.307-5.919 7.805-2.118 2.525-3.313 5.6-5.244 8.22-.202.274-.356.59-.588.835-.201.212-.479.351-.723.522-.042-.447.056-.755.217-1.027 1.165-1.971 2.37-3.918 3.507-5.904.693-1.21 1.188-2.541 1.942-3.707 2.303-3.56 4.633-7.105 7.051-10.587 7.766-11.178 16.222-21.83 24.741-32.432 1.085-1.351 2.111-2.655 2.598-4.454.591-2.184 2.238-3.849 3.886-5.396.781-.735 1.598-1.431 2.375-2.169 5.761-5.47 11.517-10.947 17.273-16.424.282-.268.571-.535.814-.838 3.352-4.183 6.686-8.381 10.046-12.557 2.473-3.074 4.978-6.123 7.546-9.279-1.036-.454-.655-1.127-.281-1.788.218-.385.464-.754.697-1.13-1.978 1.436-3.829 2.946-5.519 4.619-16.522 16.353-31.612 33.958-45.574 52.537-4.743 6.312-9.314 12.754-13.965 19.135-.351.481-.611 1.076-1.536 1.273.27-.561.428-.945.631-1.302 2.553-4.49 5.114-8.977 7.671-13.465 5.915-10.385 12.19-20.534 19.414-30.075 11.956-15.791 24.644-30.973 37.846-45.728 2.957-3.305 5.849-6.685 8.996-9.802 6.891-6.825 13.926-13.504 20.899-20.246.26-.251.483-.541.765-.859-.439-.277-.758-.494-1.09-.687-15.197-8.861-30.773-16.987-46.936-23.934-7.238-3.111-14.628-5.868-21.922-8.853-1.423-.582-2.825-1.338-4.047-2.264-1.56-1.182-1.417-2.451.207-3.511.565-.369 1.183-.708 1.824-.901 1.767-.533 3.555-.998 5.343-1.455.83-.211 1.68-.339 2.576-.514-.401-.595-.774-1.041-1.027-1.548-.47-.943-1.104-1.602-2.499-1.524.535-.838.879-1.536 1.368-2.109 1.395-1.636 3.212-2.666 5.209-3.386 3.128-1.128 6.348-1.411 9.638-.999.456.057.916.08 1.374.119-.242-.358-.535-.495-.839-.599-1.381-.472-2.766-.933-4.148-1.401-1.777-.601-2.169-1.67-1.11-3.207.766-1.112 1.615-2.167 2.46-3.291.568.176 1.114.373 1.674.511.849.209 1.703.418 2.566.548.593.089 1.229.003 1.482-.657.602-1.572 1.153-3.164 1.758-4.842l-7.167-2.407c1.908-.246 1.909-.245 2.426-1.741.456-1.321.909-2.642 1.405-4.086 1.283.321 2.458.478 3.522.908 2.388.965 4.723 2.061 7.075 3.111 1.998.892 3.976 1.833 5.995 2.675.879.366 1.838.538 2.836.819l1.525-3.704c-5.989-3.641-12.638-5.234-19.152-7.391 2.389-.296 3.425-1.926 4.035-4.066.865.222 1.644.325 2.345.616 3.095 1.29 6.163 2.646 9.251 3.956 2.639 1.12 5.264 2.284 7.948 3.288 1.811.677 3.735.976 5.718.907-2.29-1.407-4.871-2.195-7.393-3.392 1.712-.841 3.318-1.033 5.265-.73 2.777.433 5.354 1.453 7.804 2.776 3.083 1.666 6.082 3.489 9.178 5.13 2.23 1.182 4.495 2.352 6.858 3.217 5.033 1.845 9.974 3.88 14.775 6.264 8.565 4.251 16.677 9.271 24.645 14.538.599.395 1.202.784 1.805 1.177l1.104-.939c10.223-8.89 20.343-17.903 30.695-26.639 10.575-8.925 21.379-17.58 32.082-26.354 4.197-3.441 8.659-6.471 13.579-8.791.204-.096.392-.229.714-.419-.406-.252-.671-.441-.956-.59-2.084-1.091-4.326-1.374-6.646-1.374-79.049.009-158.099.007-237.148.008-.536 0-1.072-.007-1.607.023-5.545.301-10.124 3.94-11.461 9.236-.329 1.305-.429 2.699-.429 4.052-.019 79.28-.017 158.559-.017 237.838 0 .391-.011.781.004 1.171.099 2.497.796 4.806 2.271 6.836 2.561 3.524 6.045 5.248 10.39 5.246 3.361-.002 6.724-.075 10.081.038 1.38.047 2.191-.4 2.991-1.509 10.954-15.194 22.559-29.875 34.74-44.101.819-.958 1.571-1.989 2.24-3.058 3.415-5.452 6.794-10.926 10.182-16.395.164-.265.296-.55.503-.938-.264.066-.372.059-.423.11-.347.341-.692.686-1.022 1.044-8.368 9.089-15.884 18.86-23.079 28.889-6.904 9.624-13.796 19.257-20.697 28.884-.255.356-.517.715-.827 1.02-.158.155-.429.197-.65.289.291-.829.733-1.462 1.177-2.093 11.169-15.863 22.215-31.814 34.097-47.16.234-.301.397-.657.593-.988l.808-.94-.244-.176-.694.997zm120.884-69.392c-1.407 1.3-2.693 2.484-3.976 3.674-11.718 10.873-23.327 21.86-34.473 33.326-1.019 1.048-2.016 2.12-3.058 3.143-.534.525-1.097 1.079-2.072 1.033.075-.893.595-1.402 1.072-1.923 3.093-3.379 6.111-6.832 9.306-10.113 6.833-7.017 13.759-13.944 20.647-20.908.364-.368.721-.743 1.082-1.115-.434.056-.7.267-.963.48-13.486 10.934-26.162 22.77-38.63 34.836-10.017 9.694-19.89 19.534-29.151 29.965-14.766 16.633-28.528 34.076-41.634 52.043-.188.258-.328.551-.612 1.035h1.919c28.536.001 57.071.001 85.607.001 33.99 0 67.98.002 101.97-.01 1.262-.001 2.552.005 3.78-.239 5.87-1.168 9.937-6.155 9.948-12.219l.029-45.07c.002-.917-.288-1.528-.956-2.139-20.612-18.856-41.828-36.992-64.027-53.956-5.185-3.962-10.445-7.829-15.809-11.843zm49.009-39.806c11.185 7.029 21.496 14.579 31.569 22.655.105-.33.181-.456.181-.582-.012-15.169-.03-30.337-.05-45.507l-.085-.1-.24-.139-1.834.877.867.687c-2.577 1.936-5.072 3.795-7.551 5.677-2.445 1.856-4.856 3.755-7.312 5.596-2.494 1.87-4.991 3.74-7.548 5.522-2.54 1.771-5.157 3.433-7.997 5.313zm-183.604 165.162c.471.055.74.113 1.01.114 1.461.01 2.925-.054 4.381.027.948.053 1.485-.331 2.045-1.057 6.432-8.331 12.781-16.729 19.386-24.922 11.97-14.845 24.745-28.978 38.297-42.396 3.877-3.839 7.784-7.649 11.673-11.469l-.469-1.777c-3.34 3.123-6.605 6.118-9.8 9.185-1.684 1.615-3.311 3.3-4.856 5.048-7.52 8.507-14.96 17.085-22.511 25.564-8.726 9.798-18.24 18.825-27.648 27.95-2.808 2.723-5.446 5.566-7.749 8.726-.947 1.299-1.951 2.556-2.924 3.837-.254.335-.489.685-.835 1.172zm-5.772-5.748l.197.15c.488-.571.974-1.145 1.466-1.713 4.048-4.677 8.154-9.304 12.132-14.039 6.641-7.904 13.201-15.877 19.792-23.823.227-.272.422-.572.7-.952-.955.218-1.76.357-2.535.596-.39.121-.794.359-1.07.657-1.058 1.143-2.128 2.285-3.084 3.512-9.013 11.561-18.004 23.139-26.998 34.714-.22.283-.4.598-.599.898zm258.203-214.233c-.409.26-.824.512-1.227.781-3.479 2.318-6.889 4.748-10.449 6.932-4.771 2.926-9.362 6.106-13.912 9.355-.316.226-.641.442-.943.686-.393.318-.485.699-.124 1.202.29-.154.603-.275.865-.466 6.535-4.753 13.423-8.961 20.363-13.074 2.297-1.361 3.962-3.212 5.428-5.415zm9.538-17.471c-1.918 1.861-3.268 4.17-5.526 5.55.462.875.936.447 1.371.174 4.531-2.839 9.068-5.669 13.575-8.546.622-.397 1.09-1.036 1.63-1.563-.583-.042-1.018.125-1.431.337-2.635 1.356-5.267 2.721-7.898 4.086-.589.306-1.17.715-1.722-.038zm-13.988 9.954l-.07-.17c-1.545.402-3.093.789-4.63 1.219-.313.087-.6.31-.866.513-4.334 3.306-8.661 6.621-12.995 9.928-.58.443-1.187.852-1.78 1.278-.372.267-.553.585-.286 1.135l20.627-13.904zm-252.309 209.396l-.276-.248c-5.423 6.007-10.79 12.063-16.169 18.346 1.218.203 2.004.193 2.713-.709 3.855-4.898 7.777-9.743 11.664-14.616.719-.901 1.38-1.848 2.068-2.775zm2.006 17.5l-.738.163c-1.889.524-2.482.018-2.194-1.877.057-.372.132-.742.212-1.186-1.332 1.204-2.422 2.591-2.774 3.494 1.683 0 3.37.007 5.057-.017.102-.002.2-.255.436-.576z" fill="#1A1918"></path>
+ </g>
+ <g id="badge__ha-ha-ha">
+ <path class="badge__text" d="M189.44 210.697l-25.824-44.724c-4.8-8.313-10.92-8.548-18.07-4.42-6.817 3.935-8.293 9.442-9.154 13.71l28.605 49.545-29.927 17.278-61.375-106.3 29.93-17.282 20.29 35.144c1.583-8.008 7.034-18.915 21.167-27.075 18.62-10.75 33.102-4.482 41.166 9.485l33.117 57.36-29.925 17.28 M277.615 159.787l-4.417-7.647c-1.225 8.245-8.73 17.898-18.706 23.656-11.97 6.91-32.304 7.79-42.862-10.5-11.52-19.952.847-34.63 12.818-41.54 10.473-6.046 21.87-8.194 29.36-5.202l-4.8-8.313c-3.264-5.653-10.913-7-20.722-1.336-7.48 4.32-14.233 12.208-17.77 20.677l-20.796-12.6c5.817-14.883 18.764-27.015 30.9-34.02 19.95-11.52 43.437-15.77 58.892 11l28.03 48.55-29.928 17.277zm-12.576-21.78l-2.592-4.49c-3.626-1.674-9.646-.195-14.3 2.494-4.99 2.88-9.515 7.712-6.636 12.7 2.882 4.986 9.23 3.315 14.22.436 4.654-2.69 8.946-7.162 9.307-11.14zM255.752 325.555L229.93 280.83c-4.8-8.312-10.92-8.547-18.07-4.418-6.818 3.936-8.294 9.443-9.155 13.708l28.607 49.545-29.93 17.28-61.372-106.303 29.927-17.278 20.29 35.142c1.583-8.008 7.034-18.915 21.167-27.075 18.623-10.75 33.104-4.48 41.166 9.488l33.12 57.36-29.928 17.277 M343.93 274.648l-4.415-7.65c-1.227 8.245-8.733 17.898-18.708 23.656-11.97 6.913-32.304 7.79-42.862-10.5-11.52-19.95.847-34.627 12.818-41.54 10.473-6.046 21.873-8.194 29.36-5.202l-4.8-8.313c-3.264-5.652-10.91-7.002-20.722-1.338-7.48 4.32-14.232 12.208-17.768 20.677l-20.794-12.6c5.815-14.886 18.762-27.015 30.898-34.023 19.952-11.52 43.436-15.768 58.89 11.002l28.03 48.546-29.927 17.28zm-12.575-21.782l-2.59-4.487c-3.63-1.677-9.647-.196-14.302 2.49-4.987 2.88-9.514 7.71-6.635 12.698 2.88 4.987 9.228 3.318 14.218.437 4.656-2.687 8.945-7.16 9.31-11.14zM322.066 440.416l-25.82-44.726c-4.8-8.313-10.923-8.548-18.072-4.42-6.818 3.937-8.29 9.444-9.155 13.71l28.606 49.547-29.927 17.278-61.376-106.3 29.927-17.282 20.29 35.144c1.584-8.008 7.035-18.915 21.168-27.075 18.623-10.75 33.104-4.482 41.17 9.485l33.116 57.36-29.927 17.28 M410.242 389.507l-4.414-7.647c-1.225 8.245-8.73 17.898-18.708 23.656-11.97 6.91-32.302 7.79-42.862-10.5-11.52-19.952.847-34.63 12.818-41.54 10.475-6.05 21.873-8.194 29.36-5.202l-4.8-8.313c-3.26-5.653-10.91-7-20.72-1.336-7.484 4.32-14.235 12.208-17.77 20.677l-20.796-12.6c5.815-14.883 18.762-27.015 30.898-34.023 19.952-11.517 43.436-15.765 58.89 11.002l28.032 48.55-29.93 17.277zm-12.574-21.78l-2.59-4.49c-3.63-1.676-9.647-.195-14.302 2.49-4.987 2.883-9.514 7.712-6.635 12.7 2.88 4.986 9.232 3.317 14.22.438 4.655-2.69 8.944-7.162 9.308-11.14z" fill="#1A1918"></path>
+ </g>
+ <g id="badge__fofo">
+ <path class="badge__text" d="M129.457 414.473l-37.46-64.884-15.875 9.164-17.87-30.954 15.874-9.165-2.52-4.363c-11.572-20.042-4.427-42.95 16.804-55.207 11.112-6.417 25.05-10.228 35.92-6.98l-1.442 27.286c-3.672-1.317-6.94-1.02-10.91 1.272-4.56 2.635-7.408 8.247-4.658 13.01l2.52 4.365 19.446-11.226 17.87 30.952-19.444 11.226 37.46 64.884-35.715 20.62 M156.547 334.81c-15.465-26.786-9.14-61.656 24.79-81.247 34.13-19.703 67.49-7.745 82.956 19.042 15.465 26.786 9.255 61.854-24.874 81.557-33.93 19.59-67.405 7.435-82.873-19.352zm71.037-41.014c-6.07-10.514-16.92-15.1-28.03-8.684-10.915 6.303-12.37 17.988-6.296 28.504 6.186 10.714 17.032 15.3 27.946 9 11.112-6.416 12.566-18.103 6.38-28.82zM307.738 311.544l-37.462-64.882-15.873 9.165-17.87-30.954 15.872-9.165-2.52-4.365c-11.572-20.04-4.427-42.95 16.806-55.207 11.11-6.415 25.048-10.226 35.92-6.978l-1.443 27.287c-3.672-1.318-6.937-1.02-10.907 1.27-4.563 2.636-7.408 8.248-4.66 13.01l2.52 4.364 19.447-11.227 17.87 30.954-19.446 11.226 37.463 64.884-35.715 20.618 M337.277 230.468c-15.465-26.786-9.14-61.656 24.79-81.247 34.128-19.702 67.49-7.744 82.956 19.043 15.465 26.786 9.255 61.854-24.874 81.557-33.932 19.588-67.408 7.435-82.873-19.352zm71.037-41.014c-6.073-10.516-16.922-15.1-28.03-8.684-10.915 6.303-12.37 17.988-6.296 28.504 6.186 10.714 17.032 15.3 27.946 9 11.112-6.418 12.566-18.103 6.38-28.82z" fill="#1A1918"></path>
+ </g>
+ <g id="badge__meu-deus">
+ <path class="badge__text" d="M191.945 262.15l-24.69-42.764c-2.54-4.397-7.002-6.873-13.066-3.372-6.07 3.5-7.304 9.067-7.897 12.24l26.092 45.188-27.297 15.76-24.69-42.763c-2.54-4.398-6.85-6.962-13.068-3.373-5.915 3.414-7.15 8.98-7.742 12.154l26.09 45.19-27.296 15.758-42.286-73.24 27.295-15.76 4.815 8.34c.822-5.933 6.57-17.34 18.398-24.167 10.312-5.953 19.93-6.45 28.52.72.568-8.82 6.355-20.856 18.185-27.683 13.496-7.793 26.536-6.222 35.29 8.943l30.643 53.072-27.296 15.76 M201.75 207.56c-12.255-21.23-5.923-47.735 17.733-61.39 21.534-12.433 46.993-6.508 61.878 19.27l3.24 5.61-49.74 28.716c4.232 3.826 12.165 5.31 21.112.144 4.094-2.362 12.054-9.587 13.855-14.874l20.94 10.355c-3.688 10.42-15.066 20.83-25.986 27.134-22.894 13.22-49.108 9.145-63.028-14.965zm29.728-40.617c-8.34 4.817-7.918 11.85-6.903 15.71l24.113-13.92c-2.596-2.744-8.413-6.868-17.21-1.79zM355.434 167.76l-4.73-8.186c-1.53 7.15-6.502 17.097-19.393 24.54-16.982 9.805-30.126 3.847-37.393-8.74l-30.206-52.313 27.296-15.76 23.464 40.64c4.29 7.43 9.897 8.036 16.57 4.184 6.064-3.5 7.41-8.525 8.196-12.417l-26.09-45.186 27.296-15.76 42.29 73.242-27.298 15.758 M177.768 414.737l-4.465-7.735c-2.19 10.565-7.676 17.17-15.11 21.46-17.74 10.243-40 5.305-54.534-19.87-14.01-24.26-7.897-46.593 10.147-57.01 7.432-4.292 16.35-6.002 26.14-2.355l-20.575-35.634 27.295-15.76 58.398 101.143-27.297 15.76zm-15.76-27.296l-10.856-18.802c-4.417-1.696-10.534-.388-14.174 1.713-7.43 4.29-10.67 13.038-5.417 22.134 5.254 9.1 14.536 10.817 21.966 6.527 3.638-2.1 7.745-6.897 8.482-11.57zM189.693 358.922c-12.256-21.228-5.924-47.73 17.732-61.39 21.534-12.432 46.993-6.507 61.878 19.27l3.238 5.613-49.737 28.714c4.23 3.825 12.166 5.31 21.11.145 4.095-2.364 12.057-9.59 13.858-14.874l20.94 10.354c-3.69 10.42-15.068 20.83-25.985 27.133-22.898 13.22-49.11 9.145-63.032-14.965zm29.727-40.616c-8.34 4.817-7.918 11.85-6.9 15.714l24.11-13.92c-2.596-2.747-8.413-6.87-17.21-1.793zM343.32 319.157l-4.725-8.19c-1.535 7.153-6.505 17.098-19.396 24.54-16.984 9.806-30.128 3.848-37.395-8.738L251.6 274.454l27.294-15.76 23.464 40.638c4.29 7.432 9.897 8.037 16.568 4.185 6.066-3.5 7.413-8.525 8.2-12.415l-26.09-45.19 27.295-15.76 42.287 73.242-27.295 15.76M369.79 291.34l.326-24.652c8.39 1.222 23.537-1.257 31.728-5.985 5.61-3.238 6.49-5.566 5.44-7.386-4.027-6.976-40.413 25.96-57.923-4.368-7.614-13.194-2.92-31.675 18.31-43.933 12.282-7.09 25.39-9.6 37.122-8.894l.237 23.52c-6.74-1.165-17.423-.055-25.914 4.85-3.943 2.277-5.95 5.453-4.985 7.125 3.502 6.063 40.677-25.505 58.272 4.973 8.406 14.558 1.493 32.702-20.192 45.222-13.496 7.79-30.767 11.495-42.418 9.528 M431.26 218.246l-40.782-61.173 32.453-18.734 32.893 65.723-24.564 14.184zm9.6 25.388c-5.077-8.794-2.088-20.428 6.71-25.505 8.793-5.08 20.364-1.85 25.442 6.943 4.99 8.645 2 20.276-6.796 25.356-8.794 5.077-20.362 1.85-25.355-6.796z" fill="#1A1918"></path>
+ </g>
+ <g id="badge__o-melhor">
+ <path class="badge__text" d="M184.62 204.955c-10.07-17.44-5.954-40.145 16.14-52.9 22.223-12.83 43.944-5.042 54.014 12.4s6.027 40.274-16.195 53.103c-22.096 12.754-43.89 4.84-53.96-12.603zm46.254-26.703c-3.955-6.847-11.02-9.83-18.254-5.653-7.105 4.1-8.052 11.71-4.1 18.558 4.03 6.976 11.094 9.96 18.2 5.858 7.234-4.177 8.18-11.785 4.154-18.764zM183.92 381.14l-21.037-36.434c-2.162-3.745-5.966-5.856-11.134-2.872s-6.22 7.725-6.726 10.43l22.23 38.5-23.257 13.425-21.036-36.433c-2.163-3.748-5.836-5.934-11.133-2.874-5.04 2.908-6.09 7.65-6.598 10.353l22.228 38.5-23.254 13.428-36.03-62.4 23.256-13.428 4.102 7.105c.7-5.055 5.597-14.77 15.675-20.59 8.787-5.07 16.98-5.497 24.298.615.486-7.515 5.417-17.77 15.494-23.587 11.5-6.64 22.606-5.302 30.065 7.618l26.11 45.218-23.257 13.427 M190.066 335.905c-10.44-18.088-5.048-40.667 15.11-52.304 18.343-10.59 40.036-5.543 52.717 16.42l2.76 4.78-42.377 24.466c3.604 3.26 10.363 4.524 17.986.122 3.49-2.013 10.27-8.17 11.805-12.67l17.84 8.82c-3.144 8.877-12.836 17.746-22.14 23.117-19.508 11.263-41.84 7.793-53.7-12.75zm25.328-34.604c-7.105 4.103-6.747 10.095-5.88 13.387l20.542-11.86c-2.213-2.34-7.17-5.852-14.662-1.526zM276.676 327.59l-49.753-86.173 23.256-13.427 49.752 86.173-23.256 13.427M347.525 286.685l-20.065-34.753c-3.73-6.46-8.487-6.644-14.043-3.436-5.297 3.057-6.444 7.337-7.113 10.653l22.23 38.5-23.257 13.425-49.755-86.173 23.256-13.425 17.83 30.878c1.23-6.224 5.466-14.7 16.448-21.04 14.47-8.355 25.723-3.482 31.99 7.37l25.732 44.572-23.254 13.427 M355.84 240.2c-10.07-17.442-5.952-40.146 16.14-52.903 22.222-12.83 43.943-5.043 54.013 12.398s6.027 40.275-16.195 53.104c-22.092 12.755-43.89 4.84-53.96-12.6zm46.253-26.704c-3.953-6.85-11.017-9.833-18.252-5.656-7.107 4.102-8.05 11.712-4.098 18.56 4.03 6.977 11.09 9.962 18.196 5.857 7.237-4.175 8.184-11.785 4.155-18.76zM446.84 230.487l-36.03-62.403 23.257-13.425 3.953 6.846c1.266-6.76 7.018-15.592 14.123-19.696l12.832 22.22c-1.388.286-3.475 1.145-5.67 2.414-4.91 2.835-10.496 7.78-11.29 12.373l22.08 38.242-23.255 13.426" fill="#1A1918"></path>
+ </g>
+ <g id="badge__sub">
+ <path class="badge__text" d="M95.84 407.88l.476-35.707c12.152 1.768 34.1-1.826 45.963-8.675 8.128-4.693 9.403-8.065 7.882-10.7-5.833-10.102-58.55 37.61-83.91-6.31-11.03-19.11-4.224-45.88 26.534-63.638 17.795-10.274 36.783-13.917 53.78-12.895l.333 34.067c-9.76-1.684-25.235-.072-37.538 7.03-5.712 3.3-8.618 7.907-7.223 10.322 5.07 8.783 58.93-36.952 84.415 7.19 12.173 21.084 2.154 47.366-29.263 65.505-19.554 11.29-44.576 16.658-61.453 13.81 M287.587 315.327l-6.848-11.86c-2.223 10.36-9.428 24.77-28.102 35.553-24.607 14.207-43.65 5.58-54.173-12.647l-43.746-75.767 39.545-22.833 33.98 58.856c6.215 10.76 14.336 11.636 24.004 6.054 8.785-5.073 10.736-12.35 11.878-17.985l-37.786-65.447 39.546-22.833 61.244 106.075-39.546 22.833zm-106.404-93.47c-10.985 6.34-24.498 2.723-30.838-8.257s-2.718-24.494 8.267-30.836c10.985-6.342 24.5-2.723 30.84 8.258 6.34 10.98 2.716 24.492-8.27 30.835zm47.456-27.4c-10.766 6.215-24.5 2.725-30.84-8.255s-2.497-24.62 8.27-30.837c10.984-6.342 24.717-2.85 31.057 8.13s2.497 24.62-8.488 30.962zM436.3 232.978c-19.772 11.416-37.258 13.604-54.607 10.444l-.436-35.765c9.896 3.95 27.068 2.234 38.053-4.108 6.373-3.68 8.4-7.778 7.004-10.194-5.58-9.663-51.282 29.9-75.373-11.825-12.552-21.74 5.486-41.234 2.443-46.505-2.79-4.83-9.55-3.856-16.36.076-10.765 6.216-15.193 15.8-9.74 25.244l57.186 99.048-39.546 22.832-57.187-99.048c-15.342-26.573-7.785-61.682 30.003-83.5 26.584-15.35 59.93-16.447 72.737 5.734 14.582 25.257-7.58 44.2-2.763 52.546 4.438 7.686 49.634-32.755 74.994 11.167 12.934 22.402.62 48.253-26.405 63.855" fill="#1A1918"></path>
+ </g>
+ <g id="badge__fallo">
+ <path class="badge__text" d="M130.645 422.49l-35.33-61.19-14.968 8.643-16.853-29.19 14.972-8.642-2.377-4.115c-10.913-18.9-4.176-40.504 15.847-52.065 10.477-6.05 23.622-9.645 33.872-6.58l-1.363 25.73c-3.46-1.243-6.542-.96-10.285 1.2-4.302 2.483-6.988 7.778-4.394 12.267l2.377 4.116 18.34-10.587 16.852 29.19-18.34 10.587 35.327 61.19-33.68 19.444 M245.34 356.27l-4.968-8.607c-1.38 9.28-9.828 20.142-21.055 26.623-13.474 7.78-36.356 8.767-48.24-11.817-12.962-22.454.953-38.973 14.427-46.75 11.788-6.81 24.615-9.222 33.045-5.855l-5.403-9.357c-3.672-6.364-12.28-7.88-23.322-1.505-8.423 4.863-16.02 13.74-19.998 23.27l-23.404-14.18c6.542-16.75 21.116-30.4 34.777-38.29 22.453-12.964 48.885-17.746 66.278 12.38l31.547 54.64-33.684 19.447zm-14.152-24.513l-2.916-5.05c-4.082-1.887-10.856-.22-16.094 2.803-5.614 3.243-10.707 8.68-7.466 14.29 3.24 5.615 10.387 3.734 16 .494 5.238-3.026 10.07-8.06 10.476-12.537zM292.378 329.112L220.32 204.304 254 184.86l72.057 124.808-33.68 19.444M339.42 301.953l-72.06-124.806 33.68-19.447 72.058 124.808-33.68 19.444 M354.53 232.852c-14.584-25.26-8.62-58.145 23.378-76.618 32.186-18.583 63.643-7.305 78.23 17.958 14.583 25.26 8.727 58.328-23.457 76.91-31.997 18.475-63.566 7.014-78.15-18.25zm66.988-38.674c-5.727-9.92-15.955-14.242-26.433-8.194-10.294 5.944-11.666 16.963-5.94 26.88 5.835 10.105 16.064 14.43 26.358 8.485 10.48-6.05 11.85-17.07 6.015-27.173zm-40.843-54.76l-22.453 12.963 6.895-39.908 29.004-16.746-13.446 43.69z" fill="#1A1918"></path>
+ </g>
+ <g id="badge__lindo">
+ <path class="badge__text" d="M110.01 419.902L41.813 301.79l31.877-18.403 68.2 118.113-31.88 18.402 M89.63 285.514c-5.724-9.916-2.356-22.487 7.56-28.21 9.918-5.728 22.49-2.358 28.215 7.558 5.725 9.916 2.357 22.487-7.56 28.21-9.917 5.728-22.487 2.358-28.214-7.558zm65.24 108.49l-49.385-85.532 31.877-18.402 49.388 85.532-31.88 18.402zM255.45 335.94l-27.298-47.28c-5.115-8.856-11.838-9.46-19.454-5.064-7.26 4.192-8.83 10.06-9.75 14.6l30.468 52.773-31.877 18.4-49.387-85.53 31.877-18.403 5.625 9.74c1.686-8.53 7.494-20.147 22.548-28.836 19.837-11.45 35.467-4.418 44.054 10.456l35.074 60.74-31.878 18.4 M353.74 279.197l-5.213-9.03c-2.56 12.34-8.968 20.052-17.645 25.06-20.723 11.964-46.723 6.196-63.695-23.2-16.36-28.332-9.22-54.413 11.855-66.58 8.678-5.008 19.095-7.01 30.527-2.75l-24.028-41.61 31.88-18.406 68.196 118.114-31.88 18.402zm-18.405-31.874l-12.677-21.958c-5.16-1.98-12.306-.454-16.557 2-8.677 5.01-12.46 15.227-6.327 25.85 6.135 10.624 16.974 12.63 25.654 7.62 4.25-2.455 9.044-8.054 9.907-13.513zM365.477 215.286c-13.804-23.907-8.16-55.027 22.123-72.51 30.462-17.584 60.237-6.912 74.042 16.996 13.804 23.905 8.26 55.2-22.2 72.785-30.287 17.483-60.16 6.637-73.965-17.27zm63.402-36.602c-5.42-9.387-15.104-13.48-25.02-7.752-9.742 5.624-11.04 16.053-5.62 25.44 5.52 9.56 15.202 13.653 24.943 8.03 9.92-5.728 11.215-16.156 5.696-25.72z" fill="#1A1918"></path>
+ </g>
+ <g id="badge__jajaja">
+ <path class="badge__text" d="M109.48 436.812l-5.115-23.9c4.34.522 6.506.08 10.747-2.367 4.998-2.887 5.927-8.27 1.906-15.234l-42.895-74.297 27.255-15.735 42.895 74.296c10.842 18.778 9.734 38.192-11.464 50.433-11.055 6.38-15.323 7.03-23.33 6.806zm-48.912-135.43c-4.898-8.48-2.016-19.23 6.462-24.126 8.482-4.895 19.23-2.016 24.124 6.467 4.895 8.477 2.018 19.227-6.464 24.122-8.477 4.895-19.227 2.016-24.122-6.462zM196.55 347.848l-4.02-6.964c-1.116 7.51-7.954 16.3-17.04 21.545-10.902 6.295-29.42 7.095-39.036-9.564-10.49-18.17.77-31.538 11.672-37.834 9.54-5.505 19.922-7.46 26.743-4.737l-4.374-7.572c-2.97-5.146-9.937-6.376-18.873-1.218-6.813 3.934-12.963 11.118-16.18 18.83L116.5 308.863c5.296-13.558 17.09-24.605 28.144-30.986 18.17-10.49 39.56-14.36 53.634 10.017l25.53 44.217-27.258 15.737zM185.1 328.01l-2.36-4.086c-3.305-1.525-8.786-.178-13.027 2.27-4.54 2.622-8.665 7.022-6.042 11.563 2.624 4.544 8.408 3.02 12.95.398 4.24-2.448 8.147-6.52 8.478-10.144zM232.298 365.904l-5.115-23.9c4.34.522 6.506.08 10.747-2.37 4.998-2.883 5.927-8.267 1.906-15.23l-42.895-74.3 27.256-15.734 42.897 74.296c10.84 18.778 9.732 38.192-11.467 50.433-11.054 6.38-15.322 7.03-23.33 6.805zm-48.912-135.43c-4.898-8.48-2.016-19.23 6.462-24.125 8.482-4.896 19.23-2.017 24.127 6.466 4.895 8.477 2.016 19.227-6.467 24.122-8.477 4.895-19.227 2.016-24.122-6.464zM319.368 276.94l-4.022-6.964c-1.115 7.51-7.953 16.3-17.038 21.545-10.903 6.297-29.42 7.095-39.037-9.562-10.49-18.17.772-31.538 11.675-37.834 9.54-5.505 19.92-7.462 26.74-4.737l-4.37-7.572c-2.972-5.15-9.94-6.376-18.873-1.218-6.816 3.934-12.965 11.118-16.184 18.83l-18.94-11.473c5.294-13.558 17.088-24.605 28.142-30.986 18.172-10.49 39.56-14.36 53.634 10.017l25.53 44.217-27.258 15.737zm-11.452-19.837l-2.36-4.087c-3.304-1.525-8.785-.178-13.024 2.27-4.544 2.622-8.668 7.022-6.044 11.563 2.623 4.543 8.407 3.02 12.95.397 4.24-2.448 8.146-6.52 8.477-10.144zM355.118 294.993L350 271.096c4.342.522 6.507.08 10.748-2.37 4.998-2.883 5.927-8.267 1.906-15.23l-42.895-74.3 27.254-15.736 42.897 74.298c10.84 18.778 9.735 38.192-11.466 50.433-11.052 6.382-15.322 7.03-23.326 6.804zm-48.915-135.43c-4.895-8.48-2.016-19.228 6.462-24.123 8.482-4.895 19.23-2.016 24.127 6.467 4.895 8.477 2.016 19.227-6.467 24.122-8.477 4.894-19.227 2.015-24.122-6.465zM442.186 206.03l-4.022-6.963c-1.115 7.51-7.953 16.298-17.038 21.545-10.903 6.293-29.42 7.094-39.037-9.563-10.492-18.17.77-31.54 11.673-37.835 9.54-5.508 19.92-7.462 26.74-4.737l-4.37-7.572c-2.972-5.15-9.94-6.376-18.873-1.218-6.816 3.934-12.965 11.118-16.184 18.83l-18.94-11.473c5.294-13.558 17.088-24.605 28.142-30.986 18.172-10.494 39.56-14.362 53.634 10.016l25.53 44.217-27.258 15.737zm-11.452-19.836l-2.36-4.087c-3.304-1.525-8.785-.178-13.024 2.27-4.544 2.622-8.668 7.022-6.044 11.563 2.623 4.544 8.407 3.02 12.95.398 4.24-2.448 8.146-6.52 8.477-10.144z" fill="#1A1918"></path>
+ </g>
+ <g id="badge__genial">
+ <path class="badge__text" d="M109.283 430.58l.305-24.998c8.49 2.277 17.83-.015 25.393-4.38 6.11-3.53 14.947-11.733 7.81-24.097l-2.182-3.777c-2.018 10.276-7.052 16.672-14.324 20.87-16.87 9.74-37.214 6.748-51.067-17.247-13.52-23.416-6.71-42.86 10.596-52.852 7.272-4.197 15.535-5.67 25.07-2.257l-4.284-7.417 26.178-15.112 36.19 62.684c17.55 30.396-4.19 50.51-21.642 60.586-12.072 6.97-24.683 9.985-38.043 8.002zm20.827-75.433l-8.563-14.834c-4.153-1.484-10.022-.23-13.368 1.703-7.127 4.114-11.158 10.903-6.204 19.485 4.954 8.578 12.848 8.48 19.973 4.367 3.345-1.93 7.366-6.386 8.16-10.72zM156.365 332.426c-11.755-20.36-5.68-45.78 17.006-58.88 20.653-11.924 45.072-6.243 59.345 18.48l3.106 5.382-47.7 27.54c4.057 3.67 11.666 5.096 20.246.14 3.926-2.267 11.562-9.195 13.29-14.263l20.083 9.93c-3.54 9.992-14.452 19.977-24.926 26.022-21.96 12.68-47.1 8.773-60.45-14.35zm28.51-38.956c-8 4.62-7.593 11.367-6.62 15.07l23.125-13.352c-2.49-2.633-8.07-6.59-16.506-1.718zM301.625 295.486l-22.42-38.832c-4.2-7.272-9.72-7.767-15.973-4.158-5.964 3.443-7.255 8.263-8.01 11.994l25.023 43.34-26.18 15.114-40.556-70.247 26.178-15.112 4.62 8c1.385-7.007 6.153-16.546 18.516-23.684 16.29-9.404 29.127-3.628 36.18 8.586l28.8 49.886-26.18 15.115 M280.302 187.763c-4.702-8.146-1.935-18.47 6.208-23.17 8.146-4.702 18.468-1.938 23.17 6.208 4.702 8.147 1.938 18.47-6.208 23.17-8.146 4.703-18.468 1.936-23.17-6.207zm53.576 89.1L293.32 206.62l26.18-15.116 40.557 70.247-26.18 15.113zM408.79 233.613l-3.86-6.69c-1.073 7.212-7.64 15.655-16.363 20.694-10.47 6.044-28.258 6.813-37.494-9.185-10.076-17.453.74-30.29 11.213-36.338 9.16-5.288 19.132-7.167 25.684-4.55l-4.2-7.273c-2.855-4.943-9.546-6.122-18.126-1.168-6.545 3.78-12.453 10.68-15.544 18.087l-18.19-11.02c5.085-13.022 16.413-23.632 27.028-29.762 17.453-10.076 37.997-13.792 51.516 9.622l24.517 42.468-26.178 15.115zm-10.997-19.05l-2.267-3.927c-3.175-1.467-8.438-.17-12.51 2.18-4.365 2.52-8.323 6.744-5.804 11.107 2.518 4.363 8.075 2.9 12.438.38 4.07-2.35 7.826-6.26 8.143-9.74zM443.123 213.794l-56.006-97.007 26.176-15.115L469.3 198.68l-26.178 15.114" fill="#1A1918"></path>
+ </g>
+ <g id="badge__fail">
+ <path class="badge__text" d="M130.645 422.49l-35.33-61.19-14.968 8.643-16.853-29.19 14.972-8.642-2.377-4.115c-10.913-18.9-4.176-40.504 15.847-52.065 10.477-6.05 23.622-9.645 33.872-6.58l-1.363 25.73c-3.46-1.243-6.542-.96-10.285 1.2-4.302 2.483-6.988 7.778-4.394 12.267l2.377 4.116 18.34-10.587 16.852 29.19-18.34 10.587 35.327 61.19-33.68 19.444 M245.34 356.27l-4.968-8.607c-1.38 9.28-9.828 20.142-21.055 26.623-13.474 7.78-36.356 8.767-48.24-11.817-12.962-22.454.953-38.973 14.427-46.75 11.788-6.81 24.615-9.222 33.045-5.855l-5.403-9.357c-3.672-6.364-12.28-7.88-23.322-1.505-8.423 4.863-16.02 13.74-19.998 23.27l-23.404-14.18c6.542-16.75 21.116-30.4 34.777-38.29 22.453-12.964 48.885-17.746 66.278 12.38l31.547 54.64-33.684 19.447zm-14.152-24.513l-2.916-5.05c-4.082-1.887-10.856-.22-16.094 2.803-5.614 3.243-10.707 8.68-7.466 14.29 3.24 5.615 10.387 3.734 16 .494 5.238-3.026 10.07-8.06 10.476-12.537zM292.378 329.112L220.32 204.304 254 184.86l72.057 124.808-33.68 19.444M339.42 301.953l-72.06-124.806 33.68-19.447 72.058 124.808-33.68 19.444 M354.53 232.852c-14.584-25.26-8.62-58.145 23.378-76.618 32.186-18.583 63.643-7.305 78.23 17.958 14.583 25.26 8.727 58.328-23.457 76.91-31.997 18.475-63.566 7.014-78.15-18.25zm66.988-38.674c-5.727-9.92-15.955-14.242-26.433-8.194-10.294 5.944-11.666 16.963-5.94 26.88 5.835 10.105 16.064 14.43 26.358 8.485 10.48-6.05 11.85-17.07 6.015-27.173zm-40.843-54.76l-22.453 12.963 6.895-39.908 29.004-16.746-13.446 43.69z" fill="#1A1918"></path>
+ </g>
+ <g id="badge__lindo">
+ <path class="badge__text" d="M110.01 419.902L41.813 301.79l31.877-18.403 68.2 118.113-31.88 18.402 M89.63 285.514c-5.724-9.916-2.356-22.487 7.56-28.21 9.918-5.728 22.49-2.358 28.215 7.558 5.725 9.916 2.357 22.487-7.56 28.21-9.917 5.728-22.487 2.358-28.214-7.558zm65.24 108.49l-49.385-85.532 31.877-18.402 49.388 85.532-31.88 18.402zM255.45 335.94l-27.298-47.28c-5.115-8.856-11.838-9.46-19.454-5.064-7.26 4.192-8.83 10.06-9.75 14.6l30.468 52.773-31.877 18.4-49.387-85.53 31.877-18.403 5.625 9.74c1.686-8.53 7.494-20.147 22.548-28.836 19.837-11.45 35.467-4.418 44.054 10.456l35.074 60.74-31.878 18.4 M353.74 279.197l-5.213-9.03c-2.56 12.34-8.968 20.052-17.645 25.06-20.723 11.964-46.723 6.196-63.695-23.2-16.36-28.332-9.22-54.413 11.855-66.58 8.678-5.008 19.095-7.01 30.527-2.75l-24.028-41.61 31.88-18.406 68.196 118.114-31.88 18.402zm-18.405-31.874l-12.677-21.958c-5.16-1.98-12.306-.454-16.557 2-8.677 5.01-12.46 15.227-6.327 25.85 6.135 10.624 16.974 12.63 25.654 7.62 4.25-2.455 9.044-8.054 9.907-13.513zM365.477 215.286c-13.804-23.907-8.16-55.027 22.123-72.51 30.462-17.584 60.237-6.912 74.042 16.996 13.804 23.905 8.26 55.2-22.2 72.785-30.287 17.483-60.16 6.637-73.965-17.27zm63.402-36.602c-5.42-9.387-15.104-13.48-25.02-7.752-9.742 5.624-11.04 16.053-5.62 25.44 5.52 9.56 15.202 13.653 24.943 8.03 9.92-5.728 11.215-16.156 5.696-25.72z" fill="#1A1918"></path>
+ </g>
+ <g id="badge__jajaja">
+ <path class="badge__text" d="M109.48 436.812l-5.115-23.9c4.34.522 6.506.08 10.747-2.367 4.998-2.887 5.927-8.27 1.906-15.234l-42.895-74.297 27.255-15.735 42.895 74.296c10.842 18.778 9.734 38.192-11.464 50.433-11.055 6.38-15.323 7.03-23.33 6.806zm-48.912-135.43c-4.898-8.48-2.016-19.23 6.462-24.126 8.482-4.895 19.23-2.016 24.124 6.467 4.895 8.477 2.018 19.227-6.464 24.122-8.477 4.895-19.227 2.016-24.122-6.462zM196.55 347.848l-4.02-6.964c-1.116 7.51-7.954 16.3-17.04 21.545-10.902 6.295-29.42 7.095-39.036-9.564-10.49-18.17.77-31.538 11.672-37.834 9.54-5.505 19.922-7.46 26.743-4.737l-4.374-7.572c-2.97-5.146-9.937-6.376-18.873-1.218-6.813 3.934-12.963 11.118-16.18 18.83L116.5 308.863c5.296-13.558 17.09-24.605 28.144-30.986 18.17-10.49 39.56-14.36 53.634 10.017l25.53 44.217-27.258 15.737zM185.1 328.01l-2.36-4.086c-3.305-1.525-8.786-.178-13.027 2.27-4.54 2.622-8.665 7.022-6.042 11.563 2.624 4.544 8.408 3.02 12.95.398 4.24-2.448 8.147-6.52 8.478-10.144zM232.298 365.904l-5.115-23.9c4.34.522 6.506.08 10.747-2.37 4.998-2.883 5.927-8.267 1.906-15.23l-42.895-74.3 27.256-15.734 42.897 74.296c10.84 18.778 9.732 38.192-11.467 50.433-11.054 6.38-15.322 7.03-23.33 6.805zm-48.912-135.43c-4.898-8.48-2.016-19.23 6.462-24.125 8.482-4.896 19.23-2.017 24.127 6.466 4.895 8.477 2.016 19.227-6.467 24.122-8.477 4.895-19.227 2.016-24.122-6.464zM319.368 276.94l-4.022-6.964c-1.115 7.51-7.953 16.3-17.038 21.545-10.903 6.297-29.42 7.095-39.037-9.562-10.49-18.17.772-31.538 11.675-37.834 9.54-5.505 19.92-7.462 26.74-4.737l-4.37-7.572c-2.972-5.15-9.94-6.376-18.873-1.218-6.816 3.934-12.965 11.118-16.184 18.83l-18.94-11.473c5.294-13.558 17.088-24.605 28.142-30.986 18.172-10.49 39.56-14.36 53.634 10.017l25.53 44.217-27.258 15.737zm-11.452-19.837l-2.36-4.087c-3.304-1.525-8.785-.178-13.024 2.27-4.544 2.622-8.668 7.022-6.044 11.563 2.623 4.543 8.407 3.02 12.95.397 4.24-2.448 8.146-6.52 8.477-10.144zM355.118 294.993L350 271.096c4.342.522 6.507.08 10.748-2.37 4.998-2.883 5.927-8.267 1.906-15.23l-42.895-74.3 27.254-15.736 42.897 74.298c10.84 18.778 9.735 38.192-11.466 50.433-11.052 6.382-15.322 7.03-23.326 6.804zm-48.915-135.43c-4.895-8.48-2.016-19.228 6.462-24.123 8.482-4.895 19.23-2.016 24.127 6.467 4.895 8.477 2.016 19.227-6.467 24.122-8.477 4.894-19.227 2.015-24.122-6.465zM442.186 206.03l-4.022-6.963c-1.115 7.51-7.953 16.298-17.038 21.545-10.903 6.293-29.42 7.094-39.037-9.563-10.492-18.17.77-31.54 11.673-37.835 9.54-5.508 19.92-7.462 26.74-4.737l-4.37-7.572c-2.972-5.15-9.94-6.376-18.873-1.218-6.816 3.934-12.965 11.118-16.184 18.83l-18.94-11.473c5.294-13.558 17.088-24.605 28.142-30.986 18.172-10.494 39.56-14.362 53.634 10.016l25.53 44.217-27.258 15.737zm-11.452-19.836l-2.36-4.087c-3.304-1.525-8.785-.178-13.024 2.27-4.544 2.622-8.668 7.022-6.044 11.563 2.623 4.544 8.407 3.02 12.95.398 4.24-2.448 8.146-6.52 8.477-10.144z" fill="#1A1918"></path>
+ </g>
+ <g id="badge__chido">
+ <path class="badge__text" d="M138.276991,406.635862 C155.215665,396.856314 161.152691,382.95739 161.754166,374.397438 L134.112017,367.771742 C133.758107,372.493051 131.224545,378.06215 125.373003,381.440539 C117.519618,385.974693 107.810284,384.80491 102.298175,375.257658 C96.7860665,365.710405 100.716577,356.870972 108.569962,352.336818 C114.421503,348.958429 120.333455,349.240872 124.688089,351.44902 L132.860048,324.351357 C125.057269,320.438286 110.14084,318.784427 93.2021664,328.563975 C69.6420113,342.166437 60.3619321,368.056019 73.964394,391.616174 C87.6557609,415.330317 114.716836,420.238323 138.276991,406.635862 L138.276991,406.635862 Z M256.088822,336.153362 L225.416604,283.027522 C217.948586,270.092535 204.535448,264.285675 187.288799,274.243033 C174.199824,281.799956 169.150137,291.901498 167.683434,299.318451 L146.435144,262.515333 L118.717314,278.51823 L178.016936,381.228187 L205.734765,365.22529 L179.241081,319.336884 C180.039516,315.385514 181.406258,310.284763 187.719764,306.639659 C194.341245,302.816744 200.010304,303.034105 204.455553,310.733502 L228.370993,352.156258 L256.088822,336.153362 Z M239.293752,239.495662 C247.917076,234.516983 250.84581,223.586802 245.867131,214.963477 C240.888452,206.340152 229.958271,203.411419 221.334946,208.390098 C212.711621,213.368777 209.782888,224.298958 214.761567,232.922283 C219.740245,241.545608 230.670427,244.474341 239.293752,239.495662 L239.293752,239.495662 Z M299.205446,311.259968 L256.264341,236.883792 L228.546511,252.886688 L271.487616,327.262864 L299.205446,311.259968 Z M390.982259,258.2726 L331.682638,155.562643 L303.964808,171.565539 L324.857478,207.752705 C314.916308,204.047649 305.859514,205.786198 298.314105,210.142542 C279.98954,220.722235 273.782836,243.400182 288.007633,268.038252 C302.765859,293.600251 325.37234,298.616311 343.388929,288.214429 C350.934338,283.858085 356.506399,277.150661 358.730276,266.422111 L363.26443,274.275496 L390.982259,258.2726 Z M338.646302,258.307142 C331.100893,262.663486 321.675713,260.919013 316.341414,251.679736 C311.007115,242.44046 314.297852,233.559765 321.843261,229.203421 C325.538971,227.069702 331.752516,225.7408 336.237316,227.463162 L347.261533,246.557667 C346.510743,251.302798 342.342013,256.173423 338.646302,258.307142 L338.646302,258.307142 Z M444.097043,230.070572 C470.582969,214.778916 475.402071,187.563853 463.399898,166.775481 C451.397726,145.987108 425.508144,136.707029 399.022218,151.998686 C372.69028,167.201437 367.782274,194.262512 379.784446,215.050884 C391.786618,235.839257 417.765105,245.273324 444.097043,230.070572 L444.097043,230.070572 Z M429.961151,205.586489 C421.491815,210.476263 413.073084,206.918812 408.272215,198.603463 C403.560251,190.442102 404.688773,181.372542 413.15811,176.482768 C421.781435,171.50409 430.200165,175.061541 434.912129,183.222902 C439.712998,191.538251 438.584476,200.607811 429.961151,205.586489 L429.961151,205.586489 Z" fill="#1A1918"></path>
+ </g>
+ <symbol id="bf-news-logo" viewBox="0 0 372 43">
+ <g class="bf-news-logo__bf">
+ <path d="M0 42v-42h18.358c7.832 0 11.841 5.1 11.841 10.705 0 5.226-3.207 8.816-7.092 9.634 4.44.693 7.894 5.037 7.894 10.264 0 6.36-4.07 11.398-11.964 11.398h-19.036zm21.256-29.721c0-2.582-1.85-4.408-4.81-4.408h-7.689v8.816h7.689c2.96 0 4.81-1.7 4.81-4.408zm.802 17.064c0-2.645-1.85-4.786-5.242-4.786h-8.059v9.572h8.059c3.269 0 5.242-1.763 5.242-4.786z"></path>
+ <path d="M63 42v-5.9l13.797-17.205h-13.797v-6.895h24.747v5.652l-14.051 17.453h14.304v6.894h-25"></path>
+ <path d="M89 42v-5.9l13.797-17.205h-13.797v-6.895h24.747v5.652l-14.051 17.453h14.304v6.894h-25"></path>
+ <path d="M117 42v-42h29v7.871h-20.105v8.816h15.128v7.871h-15.128v17.443h-8.895"></path>
+ <path d="M143 26.468c0-9.113 6.553-16.468 15.752-16.468 9.136 0 15.248 7.029 15.248 17.249v1.953h-22.62c.567 3.84 3.591 7.03 8.758 7.03 2.583 0 6.112-1.107 8.065-3.059l3.591 5.468c-3.025 2.864-7.813 4.361-12.539 4.361-9.262 0-16.256-6.444-16.256-16.532zm15.752-9.698c-4.978 0-7.12 3.58-7.435 6.704h14.996c-.252-2.994-2.268-6.704-7.561-6.704z"></path>
+ <path d="M175 26.468c0-9.113 6.553-16.468 15.752-16.468 9.136 0 15.248 7.029 15.248 17.249v1.953h-22.62c.567 3.84 3.591 7.03 8.758 7.03 2.583 0 6.112-1.107 8.065-3.059l3.591 5.468c-3.024 2.864-7.813 4.361-12.538 4.361-9.262 0-16.256-6.444-16.256-16.532zm15.752-9.698c-4.977 0-7.12 3.58-7.435 6.704h14.996c-.252-2.994-2.268-6.704-7.561-6.704z"></path>
+ <path d="M207 42v-31h12.784c10.016 0 17.216 5.858 17.216 15.477s-7.2 15.523-17.169 15.523h-12.831zm21.894-15.523c0-4.791-2.959-8.785-8.777-8.785h-5.2v17.616h5.153c5.582 0 8.824-4.229 8.824-8.831z"></path>
+ <path d="M32 12h8.144v17.996c0 3.635 2.234 6.258 6.563 6.258 4.281 0 6.514-2.623 6.514-6.258v-17.996h8.098v18.226c0 7.639-4.653 13.024-14.612 13.024-9.961 0-14.707-5.432-14.707-12.979v-18.271z"></path>
+ </g>
+ <g class="bf-news-logo__news">
+ <path d="M252.853 38.174v3.826h-12.853v-3.826l3.324-1.099v-20.887l-3.324-1.319v-3.65l10.637-.22 11.967 20.315v-15.126l-3.235-1.319v-3.65l12.632-.22v3.87l-3.324 1.319v25.811h-7.402l-11.878-19.919v14.994l3.457 1.099zm30.722-21.986v7.343h9.287v4.837h-9.287v8.487h8.138l1.057-3.65h4.23v8.794h-24v-3.826l3.448-1.099v-20.887l-3.448-1.319v-3.65l10.575-.22h12.874v8.487h-4.276l-1.149-3.298h-7.448zm24.837 25.811l-7.27-25.855-3.141-1.275v-3.65l13.329-.22v3.87l-3.276 1.319 3.86 15.918 6.283-20.755 6.059-.352 6.014 21.062 4.308-15.874-3.366-1.319v-3.65l12.79-.22v3.87l-3.231 1.319-7.674 25.811h-6.373l-5.879-20.887c-.718 2.873-1.892 6.926-3.523 12.158-1.631 5.233-2.536 8.142-2.715 8.728h-6.193zm40.211-9.767l.667 3.567c1.185.595 2.637.892 4.356.892 1.511 0 2.785-.304 3.822-.913s1.556-1.451 1.556-2.527c0-.764-.37-1.43-1.111-1.996-.741-.566-1.667-1.005-2.778-1.316-1.111-.311-2.319-.729-3.622-1.253-1.304-.524-2.511-1.09-3.622-1.699-1.111-.609-2.037-1.515-2.778-2.718-.741-1.203-1.111-2.626-1.111-4.268 0-2.859 1.044-5.075 3.133-6.646 2.089-1.571 4.807-2.357 8.156-2.357 1.481 0 3.037.142 4.667.425 1.63.283 2.889.566 3.778.849l1.333.425-.222 7.729h-4.089l-1.111-3.61c-1.333-.425-2.637-.637-3.911-.637-1.511 0-2.674.283-3.489.849-.815.566-1.222 1.288-1.222 2.166 0 .764.37 1.43 1.111 1.996.741.566 1.667 1.012 2.778 1.338 1.111.326 2.311.743 3.6 1.253 1.289.51 2.489 1.062 3.6 1.656 1.111.595 2.037 1.472 2.778 2.633.741 1.161 1.111 2.52 1.111 4.077 0 3.086-1.119 5.499-3.356 7.24-2.237 1.741-5.119 2.612-8.644 2.612-1.481 0-3.052-.134-4.711-.403-1.659-.269-2.948-.545-3.867-.828l-1.333-.382v-8.153h4.533z"></path>
+ </g>
+ </symbol>
+ </defs>
+ </svg>
+ <!--<![endif]-->
+ <script>
+ (function() {
+ if (typeof(BFW_Util) == 'undefined' || typeof(buzzDetails) == 'undefined')
+ setTimeout(arguments.callee, 50);
+ else {
+ try {
+ var HT_PRIMARY = BFW_Util.getCookie('HT_PRIMARY');
+ if (HT_PRIMARY && typeof BFW_Util.getCookie('HT_PRIMARY') == 'string' && HT_PRIMARY.match(/COUNTED/) && HT_PRIMARY.match(buzzDetails.uri)) {
+ window.ISSEED = true;
+ } else {
+ window.ISSEED = false;
+ }
+ } catch (e) {
+ window.ISSEED = false;
+ }
+ }
+ })()
+ </script>
+ <div class="cookie_notice hidden" id="cookie_notice" rel:gt_cat="cookie_notice" country="us">
+ <p>
+ <span id="cookie-set-message" class="hidden">
+ This BuzzFeed homepage is tailored for our readers in the USA.
+ <a href="javascript:;" class="bf_dom" rel:gt_act="set-default-cookie" rel:gt_label="us" rel:bf_bucket_data="{'set_country_cookie':{'country':'us'}}">Make it your default.</a>
+ </span>
+ <span id="cookie-us-message" class="hidden">
+ This BuzzFeed homepage is tailored for our readers in the USA.
+ <a href="/?country=us">Switch to US</a>
+ </span>
+ <span id="have-you-seen-message" class="hidden">
+ Have you seen BuzzFeed English? <a href="/?country=en">Come check it out!</a>
+ </span>
+ <span class="remove_notice_wrp">
+ <a href="javascript:;" class="bf_dom remove_notice" rel:gt_act="remove_cookie_notice" rel:gt_label="us" rel:bf_bucket="remove_cookie_notice">&nbsp;</a>
+
+ </span>
+ </p>
+ </div>
+ <div id="header_wrapper" class="page-head">
+ <header id="page-header" class="unified_header full-width " rel:gt_cat="[ttp]:header">
+ <div id="upper-background">
+ <div id="upper-wrapper" class="page-wrapper">
+ <div class="upper">
+ <div id="logo" class="social page-logo">
+ <a class="logo bfnews-logo" rel:gt_act="home" href="/">BuzzFeed News</a>
+ <a href="/news" rel:gt_act="vertical-home">
+ <div class="bf-tagline news-page"></div>
+ </a>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="lower-background" class="nav-page">
+ <div id="lower-wrapper" class="page-wrapper">
+ <div class="lower">
+ <div id="nav-left" class="bf_dom nav-page__menu" rel:bf_bucket="gtrack" rel:gt_cat="[ttp]:header/menu">
+ <div id="menu-news" class="menu-item ">
+ <span><a href="/news" rel:gt_act="news">News</a></span>
+ </div>
+ <div id="menu-buzz" class="menu-item ">
+ <span><a href="/buzz" rel:gt_act="buzz">Buzz</a></span>
+ </div>
+ <div id="menu-life" class="menu-item ">
+ <span><a href="/life" rel:gt_act="life">Life</a></span>
+ </div>
+ <div id="menu-quiz" class="menu-item ">
+ <span><a href="/quizzes" rel:gt_act="quizzes">Quizzes</a></span>
+ </div>
+ <div id="video-more" class="menu-item ">
+ <span><a href="/videos" rel:gt_act="videos">Videos</a></span>
+ </div>
+ <div id="menu-more" class="page-nav__item page-nav__item--dropdown menu-item last-child header_dropdown" menu_group="more">
+ <span class="page-nav__link">
+ <span>More</span>
+ <span class="fa fa-chevron-down more-caret">&nbsp;</span>
+ <div class="more-menu">
+ <div class="more-menu__community">
+ <a class="more-menu__community-link" href="/community" rel:gt_act="community">BuzzFeed Community</a>
+ <a class="more-menu__make-post-link btn-action" href="/post" rel:gt_act="make-a-post"> Make A Post!</a>
+ </div>
+ <div class="more-menu__sections">
+ <span class="more-menu__sections-header">SECTIONS</span>
+ <ul class="more-menu__sections-link-container">
+ <li id="nav_menu_animals" class="more-menu__section-link">
+ <a href="/animals" rel:gt_act="animals">Animals</a>
+ </li>
+ <li id="nav_menu_audio" class="more-menu__section-link">
+ <a href="/audio" rel:gt_act="audio">Audio</a>
+ </li>
+ <li id="nav_menu_books" class="more-menu__section-link">
+ <a href="/books" rel:gt_act="books">Books</a>
+ </li>
+ <li id="nav_menu_business" class="more-menu__section-link">
+ <a href="/business" rel:gt_act="business">Business</a>
+ </li>
+ <li id="nav_menu_bigstories" class="more-menu__section-link">
+ <a href="/bigstories" rel:gt_act="bigstories">Big Stories</a>
+ </li>
+ <li id="nav_menu_celebrity" class="more-menu__section-link">
+ <a href="/celebrity" rel:gt_act="celebrity">Celebrity</a>
+ </li>
+ <li id="nav_menu_diy" class="more-menu__section-link">
+ <a href="/diy" rel:gt_act="diy">DIY</a>
+ </li>
+ <li id="nav_menu_entertainment" class="more-menu__section-link">
+ <a href="/entertainment" rel:gt_act="entertainment">Entertainment</a>
+ </li>
+ <li id="nav_menu_food" class="more-menu__section-link">
+ <a href="/food" rel:gt_act="food">Food</a>
+ </li>
+ <li id="nav_menu_geeky" class="more-menu__section-link">
+ <a href="/geeky" rel:gt_act="geeky">Geeky</a>
+ </li>
+ <li id="nav_menu_giffeed" class="more-menu__section-link">
+ <a href="/giffeed" rel:gt_act="giffeed">Gif Feed</a>
+ </li>
+ <li id="nav_menu_health" class="more-menu__section-link">
+ <a href="/health" rel:gt_act="health">Health</a>
+ </li>
+ <li id="nav_menu_ideas" class="more-menu__section-link">
+ <a href="/ideas" rel:gt_act="ideas">Ideas</a>
+ </li>
+ <li id="nav_menu_lgbt" class="more-menu__section-link">
+ <a href="/lgbt" rel:gt_act="lgbt">LGBT</a>
+ </li>
+ <li id="nav_menu_music" class="more-menu__section-link">
+ <a href="/music" rel:gt_act="music">Music</a>
+ </li>
+ <li id="nav_menu_parents" class="more-menu__section-link">
+ <a href="/parents" rel:gt_act="parents">Parents</a>
+ </li>
+ <li id="nav_menu_podcasts" class="more-menu__section-link">
+ <a href="/podcasts" rel:gt_act="podcasts">Podcasts</a>
+ </li>
+ <li id="nav_menu_politics" class="more-menu__section-link">
+ <a href="/politics" rel:gt_act="politics">Politics</a>
+ </li>
+ <li id="nav_menu_rewind" class="more-menu__section-link">
+ <a href="/rewind" rel:gt_act="rewind">Rewind</a>
+ </li>
+ <li id="nav_menu_science" class="more-menu__section-link">
+ <a href="/science" rel:gt_act="science">Science</a>
+ </li>
+ <li id="nav_menu_sports" class="more-menu__section-link">
+ <a href="/sports" rel:gt_act="sports">Sports</a>
+ </li>
+ <li id="nav_menu_style" class="more-menu__section-link">
+ <a href="/style" rel:gt_act="style">Style</a>
+ </li>
+ <li id="nav_menu_tech" class="more-menu__section-link">
+ <a href="/tech" rel:gt_act="tech">Tech</a>
+ </li>
+ <li id="nav_menu_travel" class="more-menu__section-link">
+ <a href="/travel" rel:gt_act="travel">Travel</a>
+ </li>
+ <li id="nav_menu_weekend" class="more-menu__section-link">
+ <a href="/weekend" rel:gt_act="weekend">Weekend</a>
+ </li>
+ <li id="nav_menu_world" class="more-menu__section-link">
+ <a href="/world" rel:gt_act="world">World</a>
+ </li>
+ </ul>
+ </div>
+ <div class="more-menu__footer">
+ <ul class="more-menu__footer-main-content">
+ <li><a href="/advertise">Advertise</a></li>
+ <li><a href="/about/jobs">Jobs</a></li>
+ <li><a href="/tools/mobile-ios">Mobile</a></li>
+ <li><a href="/tools/email">Newsletters</a></li>
+ <li>
+ <div class="more-menu__country-toggle country-toggle bf_dom country_switch" rel:bf_bucket_data="{'country_switch_menu':{}}">
+ <a class="btn-toggle" href="javascript:;">
+ US Edition
+ <svg viewBox="0 0 517 517" class="more-menu__country-toggle-icon"><use xlink:href="#icon-caret-down"></use></svg>
+ </a>
+ <div class="country_switch_menu country-toggle-menu" style="display: none;">
+ <a class="bf_dom" rel:bf_bucket_data="{'country_switch':{ 'r': '/?country=us' }}">US Edition</a>
+ <a class="bf_dom" rel:bf_bucket_data="{'country_switch':{ 'r': '/?country=uk' }}">UK Edition</a>
+ <a class="bf_dom" rel:bf_bucket_data="{'country_switch':{ 'r': '/?country=au' }}">Australia</a>
+ <a class="bf_dom" rel:bf_bucket_data="{'country_switch':{ 'r': '/?country=br' }}">Brasil</a>
+ <a class="bf_dom" rel:bf_bucket_data="{'country_switch':{ 'r': '/?country=de' }}">Deutschland</a>
+ <a class="bf_dom" rel:bf_bucket_data="{'country_switch':{ 'r': '/?country=es' }}">Español</a>
+ <a class="bf_dom" rel:bf_bucket_data="{'country_switch':{ 'r': '/?country=fr' }}">France</a>
+ <a class="bf_dom" rel:bf_bucket_data="{'country_switch':{ 'r': '/?country=in' }}">India Edition</a>
+ <a class="bf_dom" rel:bf_bucket_data="{'country_switch':{ 'r': '/?country=mx' }}">México</a>
+ </div>
+ </div>
+ </li>
+ </ul>
+ <ul class="more-menu__footer-sub-content">
+ <li><a rel:gt_act="about" href="/about">About</a></li>
+ <li><a rel:gt_act="press" href="/press">Press</a></li>
+ <li><a rel:gt_act="rss" href="/tools/more">RSS</a></li>
+ <li><a rel:gt_act="privacy" href="/about/privacy">Privacy</a></li>
+ <li><a rel:gt_act="user-terms" href="/about/useragreement">User Terms</a></li>
+ <li><a rel:gt_act="ad-choices" href="/about/privacy#adchoices">Ad Choices</a></li>
+ <li><a rel:gt_act="help" href="/help/faq">Help</a></li>
+ <li><a rel:gt_act="contact" href="/about/contact">Contact</a></li>
+ <li class="more-menu__copyright">© 2014 BuzzFeed, Inc</li>
+ </ul>
+ <a rel:gt_act="made-in-nyc" class="made-in-nyc" href="http://wearemadeinny.com/">Made in NY</a>
+ </div>
+ </div>
+ </span>
+ </div>
+ <div class="new-vertical-callout" id="app-callout"><a rel:gt_act="get-app" href="/tools/mobile-ios">Get Our App!</a></div>
+ </div>
+ <div id="nav-right">
+ <div class="page-search inactive">
+ <form class="page-search__form" action="/search" method="get">
+ <input placeholder="Search" class="page-search__input" autocomplete="off" rel:gt_act="ignore" value="" name="q" type="text"/>
+ <button class="page-search__search-button" rel:gt_act="search">
+ <svg viewBox="0 0 517 517" class="page-search__search-icon">
+ <use xlink:href="#icon-search"></use>
+ </svg>
+ </button>
+ </form>
+ </div>
+ <div id="nav-signin" class="nav-signin" rel:gt_cat="[ttp]:header/menu">
+ <div id="usernav-signin" style="">
+ <a class="nav-signin-icon fa fa-user bf_dom" rel:gt_act="sign-in" rel:bf_bucket_data="{'signin':{'signin_type':'initial', 'location':'header'}}" id="header-signin"></a>
+ </div>
+ <div id="usernav-profile" style="display: none;" class="header_dropdown">
+ <a rel:gt_act="user" href="javascript:;" id="usernav-profile-link" rel:bf_bucket="usernav-profile-link" class="bf_dom dropdown_heading">
+ <span class="image" id="usernav-image" style="display:none;">
+ <img nopin="nopin" src="" alt="" height="24" width="24"/>
+ </span>
+ <span class="image fa fa-user default-user-image" id="default-user-image" style="display:none;">
+ </span>
+ </a>
+ <ul id="usernav-menu" class="menu unstyled-list">
+ <li id="usernav-new-post" class="SL_hide"><a rel:gt_act="new-post" href="/post">NEW POST</a></li>
+ <li id="usernav-my-feed"><a rel:gt_act="myfeed" id="usernav-profile-link2" rel:bf_bucket="usernav-profile-link" class="bf_dom" href="javascript:;">MY FEED</a></li>
+ <li id="usernav-dashboard" class="hidden SL_hide"><a rel:gt_act="dashboard" href="/dashboard">DASHBOARD</a></li>
+ <li id="usernav-switch" style="display:none;" class="switch_user_menu_option"><a rel:gt_act="feeds/users" href="javascript:;" onclick="return false;" id="usernav-switch-link">FEEDS/USERS<img id="switch-list-spinner" src="http://s3-ak.buzzfed.com/static/images/public/spinners/small_on_f6f6f6.gif" style="display:none;" height="16" width="16"/></a></li>
+ <li id="usernav-settings" style="display:none;"><a rel:gt_act="settings" href="/settings" id="usernav-settings-link">SETTINGS</a></li>
+ <li id="usernav-signout" style="display:none;" class="last"><a rel:gt_act="sign-out" href="javascript:;">SIGN OUT</a></li>
+ </ul>
+ </div>
+ <div id="usernav-switch-list" class="SwitchUser list-users" style="display: none;"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </header>
+ </div>
+ <!--[if gte IE 9]>
+ <div class="PageContainer c ie9 " id="page_container" >
+<![endif]-->
+ <!--[if !IE]><!-->
+ <div class="PageContainer c " id="page_container">
+ <!--<![endif]-->
+ <div class="PageContent section UKNews bf_dom">
+ <div></div>
+ <div id="new-header-hot-nav" class="vertical-hot-nav unified">
+ <!-- X---HEADER-STRIP---X -@- /plugin/headerstrip/v:1.1 -->
+ <!-- BEGIN OF public/includes/header/_header_buzz_hoton.tt -->
+ <script type="text/javascript">
+ AD_THUMBNAIL = 'thumbnailtest';
+ </script>
+ <script type="text/javascript">
+ if (AD_THUMBNAIL && typeof BF_STATIC != 'undefined' && typeof BF_STATIC['tt_page'] != 'undefined' && BF_STATIC.tt_page == 'Buzz') {
+ AD_THUMBNAIL += '_bp';
+ } else {
+ AD_THUMBNAIL += '_hp';
+ }
+ </script>
+ <script type="text/javascript">
+ if (typeof(window.BF_NO_DUPES) == 'undefined') window.BF_NO_DUPES = {};
+ window.BF_NO_DUPES[3759586] = true;
+ window.BF_NO_DUPES[3752466] = true;
+ window.BF_NO_DUPES[3760401] = true;
+ window.BF_NO_DUPES[3754654] = true;
+ window.BF_NO_DUPES[3762016] = true;
+ window.BF_NO_DUPES[3760563] = true;
+ window.BF_NO_DUPES[3761951] = true;
+ window.BF_NO_DUPES[3753891] = true;
+ </script>
+ <section id="hothead" class="rel bf_dom" rel:gt_cat="[ttp]:thumbstrip" pound_position="4ldqpi4">
+ <div class="HotHead" id="hothead-unscripted">
+ <!-- first slot begin - do not remove-->
+ <div class="unit abtrack bf_dom thumb1" onmouseover="header &amp;&amp; header.fix_length(event);" rel:bf_bucket="track" track="{&quot;c&quot;:&quot;7FO2FZ7&quot;,&quot;u&quot;:&quot;759SBH7&quot;,&quot;buzz&quot;:&quot;choses-que-les-filles-des-annees-2000-faisaient-19dho&quot;,&quot;user&quot;:&quot;jemimaskelley&quot;,&quot;types&quot;:[100],&quot;queries&quot;:[]}" track_load="{&quot;PROMO_IMPRESSION&quot;:&quot;8&quot;}" track_mousedown="{&quot;PROMO_CLICK&quot;:&quot;8&quot;}">
+ <a rel:gt_act="post/thumb:1" rel:gt_label="editor/jemimaskelley" rel:buzz_id="3759586" class="thumbbb bf_dom" rel:bf_bucket="abtrack" href="/jemimaskelley/choses-que-les-filles-des-annees-2000-faisaient-19dho">
+ <span class="title">23 choses que toutes les filles des années 2000…</span>
+ <img nopin="nopin" src="http://s3-static-ak.buzzfed.com/static/2015-04/23/7/campaign_images/webdr13/23-choses-que-toutes-les-filles-des-annees-2000-f-2-22479-1429786805-12.jpg" alt=""/>
+ </a>
+ </div>
+ <!-- first slot end -->
+ <div class="bf-widget unit bf_dom gpt" onmouseover="header &amp;&amp; header.fix_length(event);" id="BF_WIDGET_10" rel:bf_ad_position="1">
+ <div id="bf-item-10-1" class="bf-item">
+ <div id="div-gpt-ad-10" style="position:absolute;overflow:hidden;z-index:-1"></div>
+ <script type="text/javascript">
+ if (AD_DESIGN == 'gpt') {
+ loadGPTAd({
+ 'wid': 10,
+ 'pos': "header",
+ 'size': [3, 3],
+ 'abtest': AD_THUMBNAIL + "_2"
+ });
+ }
+ </script>
+ <a rel:gt_act="dfp/badge:2" rel:gtrack_id="dfp/badge" class="badge bf-url" href="">
+ <div class="partner-sash">Sponsorisé</div>
+ </a>
+ <a rel:gt_act="dfp/thumb:2" rel:gtrack_id="dfp/thumb" class="thumbbb bf-url" rel:bf_bucket="abtrack" rel:gt_label="partner" href="">
+ <span class="title small">
+ <span class="bf-name" rel:bf_truncate="55"></span>
+ <small class="partner-info">
+ <span>→ </span> <span class="bf-display_name" rel:bf_truncate="15"></span>
+ </small>
+ </span>
+ <img nopin="nopin" class="bf-image partner" src="data:image/gif;base64,R0lGODlhAQABAPAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="/>
+ </a>
+ </div>
+ </div>
+ <script type="text/javascript">
+ (function() {
+ var AD = document.getElementById('BF_WIDGET_' + 10) || document.getElementById('BF_IFRAME_' + 10);
+ if (AB_AD_TEST && AD && AD_DESIGN) {
+ AD.className = AD.className + " " + AD_DESIGN;
+ }
+ })()
+ </script>
+ <script type="text/javascript">
+ if (AD_DESIGN != 'gpt') {
+
+ if (!window['win8AdCall']) {
+ window['win8AdCall'] = function() { /* do nothing */ };
+ }
+ var ad_tag = 'http://ad.doubleclick.net/N6556/adj/' + BF_DFP_SITE + BF_DFP_ZONE + ';wid=10;sz=3x3;pos=header;tile=10;thumb_count=2;' + BF_DFP_KVS + ';' + BF_TAG + win8AdCall() + '';
+ if (typeof AD_DESIGN != 'undefined') {
+ ad_tag += ';abtest=' + AD_DESIGN + ';'
+ }
+
+ //Loreal MUC channel
+ if (window.location.search.match('loreal_feed=1') && BF_STATIC.tt_page === "Buzz") {
+ ad_tag += 'loreal_feed=1;'
+ }
+
+ ad_tag += 'poe=' + BF_REFERER + ';';
+ ad_tag += 'ord=' + BF_DFP_ORD + '?';
+
+
+
+ if (ad_tag) {
+ if (!('wid=10;sz=3x3;pos=header;tile=10;thumb_count=2').match(/pos=300x250/) && null !== window.location.search.match("skipdfp")) {
+ window.addEventListener('load', function() {
+ var query = (typeof String.prototype.toQueryParams != 'undefined') ? window.location.search.toQueryParams() : $.deparam.querystring();
+ var ad_user = (query['skipdfp']) ? query['skipdfp'] : 'boost';
+ var extra_params = (/bigstory/.test('wid=10;sz=3x3;pos=header;tile=10;thumb_count=2')) ? '&flex_medium=bigstory' : '';
+ local_ad_call(10, ad_user, extra_params);
+ })
+ } else {
+ if (!BF_STATIC.bf_test_mode || document.cookie.match('sel2_ad') !== null) {
+ document.write('&lt;' + 'scr' + 'ipt type="text/javascr' + 'ipt" src="' + ad_tag + '">&lt;\/scr' + 'ipt' + '>');
+ } else {
+ console.info('disable DFP (dfp_tags.tt)');
+ }
+ }
+ }
+
+ if (null !== window.location.search.match("adtest") && console !== undefined && typeof ad_tag != "undefined") console.log(ad_tag);
+ }
+ </script>
+ <script type="text/javascript">
+ AD_THUMBNAIL += '_' + 2;
+ </script>
+ <div class="unit abtrack bf_dom thumb3" onmouseover="header &amp;&amp; header.fix_length(event);" rel:bf_bucket="track" track="{&quot;c&quot;:&quot;7FMZZJ7&quot;,&quot;u&quot;:&quot;764NN7&quot;,&quot;buzz&quot;:&quot;21-tatouages-qui-ont-recouvert-des-cicatrices&quot;,&quot;user&quot;:&quot;juliegerstein&quot;,&quot;types&quot;:[100],&quot;queries&quot;:[]}" track_load="{&quot;PROMO_IMPRESSION&quot;:&quot;8&quot;}" track_mousedown="{&quot;PROMO_CLICK&quot;:&quot;8&quot;}">
+ <a rel:gt_act="post/thumb:3" rel:gt_label="editor/juliegerstein" rel:buzz_id="3752466" class="thumbbb bf_dom" rel:bf_bucket="abtrack" href="/juliegerstein/21-tatouages-qui-ont-recouvert-des-cicatrices">
+ <span class="title">21 tatouages qui ont merveilleusement bien…</span>
+ <img nopin="nopin" src="http://s3-static-ak.buzzfed.com/static/2015-04/16/9/campaign_images/webdr09/21-tatouages-qui-ont-merveilleusement-bien-recouv-2-4152-1429189266-0.jpg" alt=""/>
+ </a>
+ </div>
+ <div class="unit abtrack bf_dom thumb4" onmouseover="header &amp;&amp; header.fix_length(event);" rel:bf_bucket="track" track="{&quot;c&quot;:&quot;7FO6UG7&quot;,&quot;u&quot;:&quot;7386MV7&quot;,&quot;buzz&quot;:&quot;mannequins-mensongers&quot;,&quot;user&quot;:&quot;kristinchirico&quot;,&quot;types&quot;:[100],&quot;queries&quot;:[]}" track_load="{&quot;PROMO_IMPRESSION&quot;:&quot;8&quot;}" track_mousedown="{&quot;PROMO_CLICK&quot;:&quot;8&quot;}">
+ <a rel:gt_act="post/thumb:4" rel:gt_label="editor/kristinchirico" rel:buzz_id="3760401" class="thumbbb bf_dom" rel:bf_bucket="abtrack" href="/kristinchirico/mannequins-mensongers">
+ <span class="title">Voici à quoi ressemblent des vêtements «grande…</span>
+ <img nopin="nopin" src="http://s3-static-ak.buzzfed.com/static/2015-04/23/9/campaign_images/webdr09/voici-a-quoi-ressemblent-des-vetements-grande-tai-2-2167-1429795022-0.jpg" alt=""/>
+ </a>
+ </div>
+ <div class="unit abtrack bf_dom thumb5" onmouseover="header &amp;&amp; header.fix_length(event);" rel:bf_bucket="track" track="{&quot;c&quot;:&quot;7FNBSZ7&quot;,&quot;u&quot;:&quot;73FEXC7&quot;,&quot;buzz&quot;:&quot;34-raisons-de-ne-jamais-aller-au-pays-basque&quot;,&quot;user&quot;:&quot;marietelling&quot;,&quot;types&quot;:[100],&quot;queries&quot;:[]}" track_load="{&quot;PROMO_IMPRESSION&quot;:&quot;8&quot;}" track_mousedown="{&quot;PROMO_CLICK&quot;:&quot;8&quot;}">
+ <a rel:gt_act="post/thumb:5" rel:gt_label="editor/marietelling" rel:buzz_id="3754654" class="thumbbb bf_dom" rel:bf_bucket="abtrack" href="/marietelling/34-raisons-de-ne-jamais-aller-au-pays-basque">
+ <span class="title">34 raisons de ne jamais aller au Pays basque</span>
+ <img nopin="nopin" src="http://s3-static-ak.buzzfed.com/static/2015-04/18/10/campaign_images/webdr06/34-raisons-de-ne-jamais-aller-au-pays-basque-2-5868-1429368600-5.jpg" alt=""/>
+ </a>
+ </div>
+ <div class="unit abtrack bf_dom thumb6" onmouseover="header &amp;&amp; header.fix_length(event);" rel:bf_bucket="track" track="{&quot;c&quot;:&quot;7FOFKH7&quot;,&quot;u&quot;:&quot;7CEIDY7&quot;,&quot;buzz&quot;:&quot;pourquoi-tu-fais-ca-shonda&quot;,&quot;user&quot;:&quot;jenniferpadjemi&quot;,&quot;types&quot;:[100],&quot;queries&quot;:[]}" track_load="{&quot;PROMO_IMPRESSION&quot;:&quot;8&quot;}" track_mousedown="{&quot;PROMO_CLICK&quot;:&quot;8&quot;}">
+ <a rel:gt_act="post/thumb:6" rel:gt_label="editor/jenniferpadjemi" rel:buzz_id="3762016" class="thumbbb bf_dom" rel:bf_bucket="abtrack" href="/jenniferpadjemi/pourquoi-tu-fais-ca-shonda">
+ <span class="title">Les 43 fois où Grey’s Anatomy a fait couler toutes…</span>
+ <img nopin="nopin" src="http://s3-static-ak.buzzfed.com/static/2015-04/24/16/campaign_images/webdr01/les-43-fois-ou-greys-anatomy-a-fait-couler-toutes-2-4861-1429906011-15.jpg" alt=""/>
+ </a>
+ </div>
+ <div class="unit abtrack bf_dom thumb7" onmouseover="header &amp;&amp; header.fix_length(event);" rel:bf_bucket="track" track="{&quot;c&quot;:&quot;7FO7PY7&quot;,&quot;u&quot;:&quot;74N9GW7&quot;,&quot;buzz&quot;:&quot;oui-ceci-est-mon-metier&quot;,&quot;user&quot;:&quot;floperry&quot;,&quot;types&quot;:[100],&quot;queries&quot;:[]}" track_load="{&quot;PROMO_IMPRESSION&quot;:&quot;8&quot;}" track_mousedown="{&quot;PROMO_CLICK&quot;:&quot;8&quot;}">
+ <a rel:gt_act="post/thumb:7" rel:gt_label="editor/floperry" rel:buzz_id="3760563" class="thumbbb bf_dom" rel:bf_bucket="abtrack" href="/floperry/oui-ceci-est-mon-metier">
+ <span class="title">23 réactions que toute personne ayant travaillé…</span>
+ <img nopin="nopin" src="http://s3-static-ak.buzzfed.com/static/2015-04/23/8/campaign_images/webdr08/23-reactions-que-toute-personne-ayant-travaille-d-2-11535-1429792966-16.jpg" alt=""/>
+ </a>
+ </div>
+ <div class="unit abtrack bf_dom thumb8" onmouseover="header &amp;&amp; header.fix_length(event);" rel:bf_bucket="track" track="{&quot;c&quot;:&quot;7FOF7U7&quot;,&quot;u&quot;:&quot;762Y617&quot;,&quot;buzz&quot;:&quot;pas-dans-les-yeux&quot;,&quot;user&quot;:&quot;christianzamora&quot;,&quot;types&quot;:[100],&quot;queries&quot;:[]}" track_load="{&quot;PROMO_IMPRESSION&quot;:&quot;8&quot;}" track_mousedown="{&quot;PROMO_CLICK&quot;:&quot;8&quot;}">
+ <a rel:gt_act="post/thumb:8" rel:gt_label="editor/christianzamora" rel:buzz_id="3761951" class="thumbbb bf_dom" rel:bf_bucket="abtrack" href="/christianzamora/pas-dans-les-yeux">
+ <span class="title">19 réactions que tous les gens ayant déjà eu…</span>
+ <img nopin="nopin" src="http://s3-static-ak.buzzfed.com/static/2015-04/27/5/campaign_images/webdr05/19-reactions-que-tous-les-gens-ayant-deja-eu-affa-2-13034-1430125613-16.jpg" alt=""/>
+ </a>
+ </div>
+ <div class="unit abtrack bf_dom thumb9" onmouseover="header &amp;&amp; header.fix_length(event);" rel:bf_bucket="track" track="{&quot;c&quot;:&quot;7FN7OM7&quot;,&quot;u&quot;:&quot;764NN7&quot;,&quot;buzz&quot;:&quot;ces-femmes-postent-fierement-des-photos-de-leurs-vergetures&quot;,&quot;user&quot;:&quot;juliegerstein&quot;,&quot;types&quot;:[100],&quot;queries&quot;:[]}" track_load="{&quot;PROMO_IMPRESSION&quot;:&quot;8&quot;}" track_mousedown="{&quot;PROMO_CLICK&quot;:&quot;8&quot;}">
+ <a rel:gt_act="post/thumb:9" rel:gt_label="editor/juliegerstein" rel:buzz_id="3753891" class="thumbbb bf_dom" rel:bf_bucket="abtrack" href="/juliegerstein/ces-femmes-postent-fierement-des-photos-de-leurs-vergetures">
+ <span class="title">Ces femmes postent fièrement des photos de leurs…</span>
+ <img nopin="nopin" src="http://s3-static-ak.buzzfed.com/static/2015-04/16/3/campaign_images/webdr09/ces-femmes-postent-fierement-des-photos-de-leurs--2-30384-1429168480-26.jpg" alt=""/>
+ </a>
+ </div>
+ </div>
+ <!-- #hothead-unscripted -->
+ <div class="HotHead" id="hothead-scripted" style="display: none;"></div>
+ </section>
+ <script type="text/javascript">
+ if ('undefined' !== typeof BF_STATIC) {
+ BF_STATIC.thumbstrip_initial_buzzes = ["3759586", "3752466", "3760401", "3754654", "3762016", "3760563", "3761951", "3753891"];
+ }
+ </script>
+ <!-- END OF public/includes/header/_header_buzz_hoton.tt -->
+ <!-- UNIT:Headerstrip generated on 9:30:30, 4/27/2015 -->
+ </div>
+ <script type="text/javascript">
+ $$('.not_clickable').each(function(el) {
+ el.observe('click', function(e) {
+ e.stop();
+ });
+ });
+ </script>
+ <div class="c"></div>
+ <script type="text/javascript">
+ </script>
+ <div class="Content Page bf_dom ">
+ <article class="c viral-buzz bf_dom" rel:bf_bucket="abtest" rel:ab_test="pinterest_subbuzz_share" rel:gt_cat="Buzz">
+ <aside id="post_launch_success" class="launch-success-message" style="display:none;">
+ <div class="launch-success-wrap">
+ <div class="headline-1">Your Post Has Been Launched!</div>
+ <div class="headline-4">Fabulous! Don't forget to share with your friends on Twitter and Facebook.</div>
+ </div>
+ </aside>
+ <aside class="section hot_stats_bar c bf_dom " id="hot-buzz-stats" rel:bf_bucket="gtrack" rel:gt_cat="[ttp]:stats-bar">
+ <div class="trending-badge-header">
+ <span class="title">TOP POST</span>
+ <p class="num views"><span>653,817 VIEWS</span> </p>
+ </div>
+ <div class="trending-badge">
+ <div class="badge viral">
+ <a rel:gt_act="post/badge:viral" href="/trending"><img nopin="nopin" src="http://s3-ak.buzzfeed.com/static/badge_images/viral.png?v=201504241415" alt="viral" title="Click for More..." height="42" width="42"/></a>
+ </div>
+ </div>
+ <div class="badges">
+ </div>
+ </aside>
+ <div class="bf_dom c">
+ <div class="buzz no-border bf_dom c" rel:bf_bucket="track" track="{&quot;c&quot;:&quot;7FNW2J7&quot;,&quot;u&quot;:&quot;7717MJ7&quot;,&quot;buzz&quot;:&quot;diet-pills-burns-up&quot;,&quot;user&quot;:&quot;markdistefano&quot;,&quot;types&quot;:[100],&quot;queries&quot;:[]}">
+ <header id="post-3758406" class="post2 super_format bf_dom c" rel:bf_bucket="track" track="{&quot;c&quot;:&quot;7FNW2J7&quot;,&quot;u&quot;:&quot;7717MJ7&quot;,&quot;buzz&quot;:&quot;diet-pills-burns-up&quot;,&quot;user&quot;:&quot;markdistefano&quot;,&quot;types&quot;:[100],&quot;queries&quot;:[]}" rel:ptool="true" rel:ptool_code="0.0.1.2.0.0" rel:owner="markdistefano" rel:advertiser="0" rel:partner="0" rel:data="{&quot;buzz_id&quot;:&quot;3758406&quot;,&quot;type&quot;:&quot;super&quot;,&quot;uri&quot;:&quot;diet-pills-burns-up&quot;,&quot;form_id&quot;:&quot;20&quot;,&quot;category&quot;:&quot;UKNews&quot;}" rel:ptool_stats="{&quot;impressions&quot;:&quot;653,817&quot;,&quot;email_shares&quot;:&quot;81&quot;,&quot;pinterest_count&quot;:&quot;&quot;,&quot;twitter_count&quot;:&quot;251&quot;,&quot;viral_lift&quot;:&quot;1.7X&quot;,&quot;facebook_count&quot;:&quot;665&quot;}">
+ <div id="buzz_header" class=" no_custom_header_image" rel:gt_cat="[ttp]:header">
+ <hgroup>
+ <a name="post-title"></a>
+ <h1 id="post-title">Student Dies After Diet Pills She Bought Online “Burned Her Up From&nbsp;Within”</h1>
+ <p class="description">
+ <b>An inquest into Eloise Parry’s death has been adjourned until July.</b>
+ </p>
+ <span class="post_datetimes">
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <span id="update_posted_time_3758406" class="buzz_datetime converted_buzz_datetime">posted on April 21, 2015, at 11:29 a.m.</span>
+ </span>
+ </hgroup>
+ <div class="c user-bg">
+ <div class="user-bylines ">
+ <div class="byline
+
+
+ ">
+ <a href="/markdistefano" rel:gt_act="user/avatar" rel:gt_label="editor/markdistefano">
+ <img nopin="nopin" src="http://s3-ak.buzzfeed.com/static/2014-06/30/20/user_images/webdr09/markdistefano-30063-1404175854-8_large.jpg" class="byline__avatar" alt="Mark Di Stefano"/>
+ </a>
+ <div class="byline__body">
+ <a href="/markdistefano" class="byline__author" rel:gt_act="user/username" rel:gt_label="editor/markdistefano">Mark Di Stefano</a>
+ <div class="byline__title">BuzzFeed News Reporter</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="share_control" class="bf_dom square_shares shown" rel:bf_bucket="abtest" rel:ab_test="fwd_linkedin" rel:gt_cat="Buzz">
+ <div class="horizontal-share-buttons upper-share-buttons c bf_dom" rel:gt_cat="[ttp]:sharing-upper" rel:bf_bucket="gtrack">
+ <div class="fb_share">
+ <a rel:gt_act="share/facebook/share" href="javascript:;" class="bf_dom shareBtn square">
+ <i class="fb_icon fa"></i><span></span></a>
+ </div>
+ <div class="tweet_share">
+ <a href="javascript:;" rel:gt_act="share/twitter/tweet" class="bf_dom shareBtn square">
+ <i class="twitter_icon fa"></i><span>Tweet</span></a>
+ </div>
+ <div class="email_share">
+ <a href="javascript:;" rel:data="{&quot;share_email&quot;:{&quot;buzz_id&quot;:&quot;3758406&quot;}}" rel:bf_bucket="event_handler sticky_popup_button" rel:actions="click:share_email" rel:gt_act="share/email" class="bf_dom shareBtn square">
+ <i class="email_icon fa"></i><span></span></a>
+ </div>
+ <div class="pinterest_share">
+ <a href="javascript:;" rel:bf_bucket="pinterest" rel:gt_act="share/pinterest" class="bf_dom shareBtn square">
+ <i class="pi_icon fa"></i><span></span></a>
+ </div>
+ <div class="gplus_share">
+ <a href="javascript:;" rel:gt_act="share/googleplus/plus-one" class="bf_dom shareBtn square">
+ <i class="gplus_icon fa"></i><span></span></a>
+ </div>
+ <div class="bookmark_share">
+ <a class="bf_dom shareBtn big square" rel:gt_cat="Buzz:sharing-upper" rel:gt_act="bookmark" rel:bf_bucket="add_bookmark" href="javascript:;">
+ <div class="fa fa-bookmark"></div>
+ <div class="label">Bookmark it</div>
+ </a>
+ <div class="bookmark-tooltip" style="display:none;"></div>
+ </div>
+ <div class="clear"></div>
+ </div>
+ </div>
+ <div class="hidden square_shares " id="pin_ref">
+ <div class="horizontal-share-buttons upper-share-buttons c bf_dom" rel:gt_cat="[ttp]:sharing-upper" rel:bf_bucket="gtrack">
+ <div class="pinterest_share">
+ <a href="javascript:;" rel:bf_bucket="pinterest" rel:gt_act="share/pinterest" class="bf_dom shareBtn square">
+ <i class="pi_icon fa"></i><span></span></a>
+ </div>
+ <div class="fb_share">
+ <a rel:gt_act="share/facebook/share" href="javascript:;" class="bf_dom shareBtn square">
+ <i class="fb_icon fa"></i><span></span></a>
+ </div>
+ <div class="email_share">
+ <a href="javascript:;" rel:data="{&quot;share_email&quot;:{&quot;buzz_id&quot;:&quot;3758406&quot;}}" rel:bf_bucket="event_handler sticky_popup_button" rel:actions="click:share_email" rel:gt_act="share/email" class="bf_dom shareBtn square">
+ <i class="email_icon fa"></i><span></span></a>
+ </div>
+ <div class="tweet_share">
+ <a href="javascript:;" rel:gt_act="share/twitter/tweet" class="bf_dom shareBtn square">
+ <i class="twitter_icon fa"></i><span>Tweet</span></a>
+ </div>
+ <div class="gplus_share">
+ <a href="javascript:;" rel:gt_act="share/googleplus/plus-one" class="bf_dom shareBtn square">
+ <i class="gplus_icon fa"></i><span></span></a>
+ </div>
+ <div class="clear"></div>
+ </div>
+ </div>
+ <div class="hidden square_shares " id="tweet_ref">
+ <div class="horizontal-share-buttons upper-share-buttons c bf_dom" rel:gt_cat="[ttp]:sharing-upper" rel:bf_bucket="gtrack">
+ <div class="tweet_share">
+ <a href="javascript:;" rel:gt_act="share/twitter/tweet" class="bf_dom shareBtn square">
+ <i class="twitter_icon fa"></i><span>Tweet</span></a>
+ </div>
+ <div class="fb_share">
+ <a rel:gt_act="share/facebook/share" href="javascript:;" class="bf_dom shareBtn square">
+ <i class="fb_icon fa"></i><span></span></a>
+ </div>
+ <div class="email_share">
+ <a href="javascript:;" rel:data="{&quot;share_email&quot;:{&quot;buzz_id&quot;:&quot;3758406&quot;}}" rel:bf_bucket="event_handler sticky_popup_button" rel:actions="click:share_email" rel:gt_act="share/email" class="bf_dom shareBtn square">
+ <i class="email_icon fa"></i><span></span></a>
+ </div>
+ <div class="pinterest_share">
+ <a href="javascript:;" rel:bf_bucket="pinterest" rel:gt_act="share/pinterest" class="bf_dom shareBtn square">
+ <i class="pi_icon fa"></i><span></span></a>
+ </div>
+ <div class="gplus_share">
+ <a href="javascript:;" rel:gt_act="share/googleplus/plus-one" class="bf_dom shareBtn square">
+ <i class="gplus_icon fa"></i><span></span></a>
+ </div>
+ <div class="clear"></div>
+ </div>
+ </div>
+ </header>
+ <div data-print="body" rel:gt_cat="[ttp]:content">
+ <div id="buzz_sub_buzz" class="c suplist_article suplist_list_show ">
+ <div class="buzz_superlist_item buzz_superlist_item_image buzz_superlist_item_wide image_hit no_caption " id="superlist_3758406_5547137" rel:buzz_num="1">
+ <h2>The mother of a woman who took suspected diet pills bought online has described how her daughter was “literally burning up from within” moments before her death.</h2>
+ <div class="sub_buzz_content">
+ <img src="http://ak-hdl.buzzfed.com/static/2015-04/21/4/enhanced/webdr10/enhanced-6418-1429605460-16.jpg" rel:bf_image_src="http://ak-hdl.buzzfed.com/static/2015-04/21/4/enhanced/webdr10/enhanced-6418-1429605460-16.jpg" class="bf_dom" rel:bf_bucket="progload" alt="The mother of a woman who took suspected diet pills bought online has described how her daughter was &quot;literally burning up from within&quot; moments before her death." height="422" width="625"/>
+ <div class="pinit" style="left: 542px; top: 374px;">
+ <a class="pin sub-buzz-pinterest-share bf_dom" href="javascript:;" rel:gt_act="share/pinterest/pin/list-item:1" rel:bf_bucket_data="{'pin-share':{'id':'3758406_5547137','not_a_sub':true}}" rel:sub_title="">
+ <span class="icon"></span>
+ </a>
+ </div>
+ <p class="print"><a href="http://ak-hdl.buzzfed.com/static/2015-04/21/4/enhanced/webdr10/enhanced-6418-1429605460-16.jpg" rel="nofollow"><b>View this image ›</b></a></p>
+ </div>
+ <p class="article_caption_w_attr"> <span class="sub_buzz_source_via buzz_attribution buzz_attr_no_caption">West Merica Police</span></p>
+ </div>
+ <div class="buzz_superlist_item buzz_superlist_item_text buzz_superlist_item_wide " id="superlist_3758406_5547213" rel:buzz_num="2">
+ <p class="sub_buzz_desc">Eloise Parry, 21, was taken to Royal Shrewsbury hospital on 12 April after taking a lethal dose of highly toxic “slimming tablets”. </p>
+ <p>“The drug was in her system, there was no anti-dote, two tablets was a lethal dose – and she had taken eight,” her mother, Fiona, <a href="https://www.westmercia.police.uk/article/9501/A-tribute-to-Eloise-Aimee-Parry-written-by-her-mother-Fiona-Parry">said in a statement</a> yesterday.</p>
+ <p>“As Eloise deteriorated, the staff in A&amp;E did all they could to stabilise her. As the drug kicked in and started to make her metabolism soar, they attempted to cool her down, but they were fighting an uphill battle.</p>
+ <p>“She was literally burning up from within.”</p>
+ <p>She added: “They never stood a chance of saving her. She burned and crashed.”</p>
+ </div>
+ <div class="buzz_superlist_item buzz_superlist_item_grid_row buzz_superlist_item_wide no_caption " id="superlist_3758406_5547140" rel:buzz_num="3">
+ <div class="grid_row two_pl grid_height_l">
+ <div class="grid_cell cell_1">
+ <div class="grid_cell_image_wrapper">
+ <img src="http://ak-hdl.buzzfed.com/static/2015-04/21/5/enhanced/webdr12/grid-cell-2501-1429608056-15.jpg" rel:bf_image_src="http://ak-hdl.buzzfed.com/static/2015-04/21/5/enhanced/webdr12/grid-cell-2501-1429608056-15.jpg" height="412" width="203"/>
+ <div class="pinit">
+ <a class="pin sub-buzz-pinterest-share bf_dom" href="javascript:;" rel:gt_act="share/pinterest/pin/list-item:1" rel:bf_bucket_data="{'pin-share':{'id':'3758406_5547140','not_a_sub':true}}" rel:sub_title="">
+ <span class="icon"></span>
+ </a>
+ </div>
+ </div>
+ <div class="sub_buzz_grid_cell_caption">
+ <p class="sub_buzz_grid_source_via">Facebook</p>
+ </div>
+ </div>
+ <div class="grid_cell cell_2">
+ <div class="grid_cell_image_wrapper">
+ <img src="http://ak-hdl.buzzfed.com/static/2015-04/21/5/enhanced/webdr12/grid-cell-2501-1429608057-18.jpg" rel:bf_image_src="http://ak-hdl.buzzfed.com/static/2015-04/21/5/enhanced/webdr12/grid-cell-2501-1429608057-18.jpg" height="412" width="412"/>
+ <div class="pinit">
+ <a class="pin sub-buzz-pinterest-share bf_dom" href="javascript:;" rel:gt_act="share/pinterest/pin/list-item:2" rel:bf_bucket_data="{'pin-share':{'id':'3758406_5547140','not_a_sub':true}}" rel:sub_title="">
+ <span class="icon"></span>
+ </a>
+ </div>
+ </div>
+ <div class="sub_buzz_grid_cell_caption">
+ <p class="sub_buzz_grid_source_via">Facebook</p>
+ </div>
+ </div>
+ <div class="sub_buzz_content">
+ </div>
+ </div>
+ </div>
+ <div class="buzz_superlist_item buzz_superlist_item_text buzz_superlist_item_wide " id="superlist_3758406_5547284" rel:buzz_num="4">
+ <p class="sub_buzz_desc">West Mercia police <a href="https://www.westmercia.police.uk/article/9500/Warning-Issued-As-Shrewsbury-Woman-Dies-After-Taking-Suspected-Diet-Pills">said the tablets were believed to contain dinitrophenol</a>, known as DNP, which is a highly toxic industrial chemical. </p>
+ <p>“We are undoubtedly concerned over the origin and sale of these pills and are working with partner agencies to establish where they were bought from and how they were advertised,” said chief inspector Jennifer Mattinson from the West Mercia police.</p>
+ <p>The Food Standards Agency warned people to stay away from slimming products that contained DNP.</p>
+ <p>“We advise the public not to take any tablets or powders containing DNP, as it is an industrial chemical and not fit for human consumption,” it said in a statement.</p>
+ </div>
+ <div class="buzz_superlist_item buzz_superlist_item_text buzz_superlist_item_wide " id="superlist_3758406_5547219" rel:buzz_num="5">
+ <h2>Fiona Parry issued a plea for people to stay away from pills containing the chemical.</h2>
+ <br/>
+ <p class="sub_buzz_desc">“[Eloise] just never really understood how dangerous the tablets that she took were,” she said. “Most of us don’t believe that a slimming tablet could possibly kill us.</p>
+ <p>“DNP is not a miracle slimming pill. It is a deadly toxin.”</p>
+ </div>
+ </div>
+ <p class="print c"><a href="http://buzzfeed.com"><b>Check out more articles on BuzzFeed.com!</b></a></p>
+ </div>
+ <div class="user-bio">
+ <div class="user-bio__main-text">Mark di Stefano is a breaking news reporter for BuzzFeed News and is based in Sydney, Australia. </div>
+ <div class="user-bio__user-contact">
+ Contact Mark Di Stefano at <a href="mailto:[email protected]">[email protected]</a>
+ </div>
+ </div>
+ <section class="c bottom_shares square_shares">
+ <div class="bf_dom">
+ <div class="referrer_shares">
+ <div class=" bottom-share-buttons bf_dom" rel:gt_cat="[ttp]:sharing-bottom" rel:bf_bucket="gtrack">
+ <div class="fb_share">
+ <a rel:gt_act="share/facebook/share" href="javascript:;" class="bf_dom shareBtn square">
+ <i class="fb_icon fa"></i><span></span></a>
+ </div>
+ <div class="clear"></div>
+ </div>
+ </div>
+ <div class="vertical_shares">
+ <div class=" bottom-share-buttons bf_dom" rel:gt_cat="[ttp]:sharing-bottom" rel:bf_bucket="gtrack">
+ <div class="tweet_share">
+ <a href="javascript:;" rel:gt_act="share/twitter/tweet" class="bf_dom shareBtn square">
+ <i class="twitter_icon fa"></i><span>Tweet</span></a>
+ </div>
+ <div class="clear"></div>
+ </div>
+ </div>
+ <div class="other_shares">
+ <div class=" bottom-share-buttons bf_dom" rel:gt_cat="[ttp]:sharing-bottom" rel:bf_bucket="gtrack">
+ <div class="email_share">
+ <a href="javascript:;" rel:data="{&quot;share_email&quot;:{&quot;buzz_id&quot;:&quot;3758406&quot;}}" rel:bf_bucket="event_handler sticky_popup_button" rel:actions="click:share_email" rel:gt_act="share/email" class="bf_dom shareBtn square">
+ <i class="email_icon fa"></i><span></span></a>
+ </div>
+ <div class="gplus_share">
+ <a href="javascript:;" rel:gt_act="share/googleplus/plus-one" class="bf_dom shareBtn square">
+ <i class="gplus_icon fa"></i><span></span></a>
+ </div>
+ <div class="pinterest_share">
+ <a href="javascript:;" rel:bf_bucket="pinterest" rel:gt_act="share/pinterest" class="bf_dom shareBtn square">
+ <i class="pi_icon fa"></i><span></span></a>
+ </div>
+ <div class="clear"></div>
+ </div>
+ </div>
+ <a href="javascript:;" class="more_shares bf_dom" rel:bf_bucket="more_shares">More <span class="ie-arrow">▾</span></a>
+ <div id="more_shares_box" class="bf_dom" style="display: none;">
+ <div class="arrow arrowBorder"></div>
+ <div class="arrow arrowFill"></div>
+ <div class="vertical-share-buttons bottom-more-share-buttons bf_dom" rel:gt_cat="[ttp]:sharing-bottom-more" rel:bf_bucket="gtrack">
+ <div rel:buzz_id="3758406" class="rebuzz_share hidden">
+ <a rel:data="{&quot;username&quot;:&quot;markdistefano&quot;}" id="3758406-make_pick-add" rel:gt_act="share/rebuzz" class="add-pick bf_dom make_pick shareBtn big square hidden">
+ <div class="rebuzz_icon fa">&nbsp;</div>
+ <div class="label">Rebuzz</div>
+ </a>
+ </div>
+ <div class="reddit_share">
+ <a href="javascript:;" rel:gt_act="share/reddit" class="bf_dom shareBtn square">
+ <i class="reddit_icon fa"></i><span></span></a>
+ </div>
+ <div class="stumbleupon_share">
+ <a href="javascript:;" rel:gt_act="share/su" class="bf_dom shareBtn square">
+ <i class="su_icon fa"></i><span>Stumble</span></a>
+ </div>
+ <div class="link_share">
+ <a rel:link="http://www.buzzfeed.com/markdistefano/diet-pills-burns-up" rel:bf_bucket="share_link sticky_popup_button" href="javascript:;" rel:gt_act="share/link" class="bf_dom shareBtn square">
+ <i class="copy_icon fa"></i><span></span></a>
+ </div>
+ <div class="clear"></div>
+ </div>
+ </div>
+ </div>
+ </section>
+ </div>
+ </div>
+ <div id="preFacebookComment" class="bf_dom" rel:bf_bucket_data="{&quot;progLoaderElement&quot;:{},&quot;scrollDifference&quot;:&quot;2000&quot;,&quot;reachElementMark&quot;:&quot;.bottom-share-buttons&quot;,&quot;name&quot;:&quot;fb_comments_nexton&quot;}">&nbsp;</div>
+ <section class="section hidden" id="fb_comments_nexton">
+ <header class="header">
+ <div class="headline-1">Facebook Conversations</div>
+ </header>
+ <div class="fb_comments_wrapper">
+ <img nopin="nopin" class="load-spinner" src="http://s3-ak.buzzfeed.com/static/images/public/spinners/big_on_white.gif?v=201504241415"/>
+ </div>
+ </section>
+ <!-- X---NEXT-ON-UNIT---X -@- /plugin/nexton/v:1.0/vt:news -->
+ <div class="bf_dom" rel:bf_bucket="abtest" rel:ab_test="next_on_same_vertical">
+ <div id="next_on" class="next_on_news" rel:gt_cat="[ttp]:next-on-news">
+ <ul id="next_on_same_vertical--same-vertical" class="hidden">
+ <li id="next_on_ab_1" rel:buzz_id="3749467">
+ <div class="leftPage">
+ <a href="/jayasaxena/the-bride-paradox" rel:gt_act="post/thumb" rel:gt_label="user/jayasaxena">
+ <img nopin="nopin" class="bf_dom" rel:bf_bucket="progload" src="http://s3-static-ak.buzzfed.com/static/2015-04/12/10/campaign_images/webdr15/the-bride-paradox-2-24817-1428850014-4_wide.jpg" rel:bf_image_src="http://s3-static-ak.buzzfed.com/static/2015-04/12/10/campaign_images/webdr15/the-bride-paradox-2-24817-1428850014-4_wide.jpg" alt=""/>
+ </a>
+ </div>
+ <div class="bf_dom rightPage" rel:bf_bucket="track" track="{&quot;c&quot;:&quot;7FMJSE7&quot;,&quot;u&quot;:&quot;74ASTR7&quot;,&quot;buzz&quot;:&quot;the-bride-paradox&quot;,&quot;user&quot;:&quot;jayasaxena&quot;,&quot;types&quot;:[],&quot;queries&quot;:[]}">
+ <a rel:gt_act="vertical/title" href="/news">
+ <span> Next On BuzzFeed News <span class="next_arrow">›</span></span>
+ </a>
+ <a href="/jayasaxena/the-bride-paradox" rel:gt_act="post/title" rel:gt_label="user/jayasaxena">
+ <h3>The Bride Paradox Of "Four Weddings"</h3>
+ </a>
+ </div>
+ </li>
+ <li id="next_on_ab_2" style="display:none;" rel:buzz_id="3746270">
+ <div class="leftPage">
+ <a href="/hgiorgis/rihanna-da-gawd" rel:gt_act="post/thumb" rel:gt_label="user/hgiorgis">
+ <img nopin="nopin" class="bf_dom" rel:bf_bucket="progload" src="http://s3-static-ak.buzzfed.com/static/2015-04/7/15/campaign_images/webdr03/rihanna-da-gawd-2-17340-1428435377-8_wide.jpg" rel:bf_image_src="http://s3-static-ak.buzzfed.com/static/2015-04/7/15/campaign_images/webdr03/rihanna-da-gawd-2-17340-1428435377-8_wide.jpg" alt=""/>
+ </a>
+ </div>
+ <div class="bf_dom rightPage" rel:bf_bucket="track" track="{&quot;c&quot;:&quot;7FM2IR7&quot;,&quot;u&quot;:&quot;7B8LV67&quot;,&quot;buzz&quot;:&quot;rihanna-da-gawd&quot;,&quot;user&quot;:&quot;hgiorgis&quot;,&quot;types&quot;:[],&quot;queries&quot;:[]}">
+ <a rel:gt_act="vertical/title" href="/news">
+ <span> Next On BuzzFeed News <span class="next_arrow">›</span></span>
+ </a>
+ <a href="/hgiorgis/rihanna-da-gawd" rel:gt_act="post/title" rel:gt_label="user/hgiorgis">
+ <h3>Rihanna And The Radical Power Of "Carefree Black Girl"...</h3>
+ </a>
+ </div>
+ </li>
+ </ul>
+ <ul id="next_on_same_vertical--control" class="">
+ <li id="next_on_1" rel:buzz_id="3763833">
+ <div class="leftPage">
+ <a href="/richardhjames/this-is-why-streaking-during-a-rugby-match-is-never-a-good-i" rel:gt_act="post/thumb" rel:gt_label="user/richardhjames">
+ <img nopin="nopin" class="bf_dom" rel:bf_bucket="progload" src="http://s3-static-ak.buzzfed.com/static/2015-04/27/7/campaign_images/webdr15/this-is-why-streaking-during-a-rugby-match-is-nev-2-21907-1430135173-1_wide.jpg" rel:bf_image_src="http://s3-static-ak.buzzfed.com/static/2015-04/27/7/campaign_images/webdr15/this-is-why-streaking-during-a-rugby-match-is-nev-2-21907-1430135173-1_wide.jpg" alt=""/>
+ </a>
+ </div>
+ <div class="bf_dom rightPage" rel:bf_bucket="track" track="{&quot;c&quot;:&quot;7FOPDS7&quot;,&quot;u&quot;:&quot;75GYN67&quot;,&quot;use&quot;:&quot;richardhjames&quot;,&quot;buzz&quot;:&quot;this-is-why-streaking-during-a-rugby-match-is-never-a-good-i&quot;,&quot;types&quot;:[],&quot;queries&quot;:[]}">
+ <a rel:gt_act="vertical/title" href="/news">
+ <span> Next On BuzzFeed News <span class="next_arrow">›</span></span>
+ </a>
+ <a href="/richardhjames/this-is-why-streaking-during-a-rugby-match-is-never-a-good-i" rel:gt_act="post/title" rel:gt_label="user/richardhjames">
+ <h3>This Is Why Streaking During A Rugby Match Is Never...</h3>
+ </a>
+ </div>
+ </li>
+ <li id="next_on_2" style="display:none;" rel:buzz_id="3762896">
+ <div class="leftPage">
+ <a href="/stephaniemcneal/people-in-nepal-are-letting-their-loved-ones-know-they-are-s" rel:gt_act="post/thumb" rel:gt_label="user/stephaniemcneal">
+ <img nopin="nopin" class="bf_dom" rel:bf_bucket="progload" src="http://s3-static-ak.buzzfed.com/static/2015-04/25/15/campaign_images/webdr07/people-in-nepal-are-letting-their-loved-ones-know-2-22144-1429990512-0_wide.jpg" rel:bf_image_src="http://s3-static-ak.buzzfed.com/static/2015-04/25/15/campaign_images/webdr07/people-in-nepal-are-letting-their-loved-ones-know-2-22144-1429990512-0_wide.jpg" alt=""/>
+ </a>
+ </div>
+ <div class="bf_dom rightPage" rel:bf_bucket="track" track="{&quot;c&quot;:&quot;7FOKBL7&quot;,&quot;u&quot;:&quot;7A6AR37&quot;,&quot;use&quot;:&quot;stephaniemcneal&quot;,&quot;buzz&quot;:&quot;people-in-nepal-are-letting-their-loved-ones-know-they-are-s&quot;,&quot;types&quot;:[],&quot;queries&quot;:[]}">
+ <a rel:gt_act="vertical/title" href="/news">
+ <span> Next On BuzzFeed News <span class="next_arrow">›</span></span>
+ </a>
+ <a href="/stephaniemcneal/people-in-nepal-are-letting-their-loved-ones-know-they-are-s" rel:gt_act="post/title" rel:gt_label="user/stephaniemcneal">
+ <h3>People In Nepal Are Letting Their Loved Ones Know They...</h3>
+ </a>
+ </div>
+ </li>
+ </ul>
+ </div>
+ </div>
+ <!-- UNIT:Nexton generated on 9:23:23, 4/27/2015 -->
+ <div id="social-actions" class="section SocialActions social-actions social-actions-hybrid" rel:gt_cat="[ttp]:reactions">
+ <div class="social-actions-buttons c">
+ <div id="spinner-sams_react" class="section social-message" style="display:none;">
+ <span class="spinner-text">Saving...</span>
+ </div>
+ <div id="spinner-love_or_hate" class="section social-message" style="display:none;">
+ <span class="spinner-text">Saving...</span>
+ </div>
+ <div id="spinner-badge" class="section social-message" style="display:none;">
+ <span class="spinner-text">Saving...</span>
+ </div>
+ <div id="social_message-rebuzz" class="section social-message" style="display:none;">
+ <div class="headline-5">Rebuzzed! This post has been added to <a href="/signin">your Feed</a></div>
+ </div>
+ <div id="social_message" class="section social-message" style="display:none;">
+ <div class="headline-5" id="badge-message"><span class="highlight">I know, right?</span> And <a rel:gt_act="feed-teaser/react" href="/badges">there’s more</a> where that came from.</div>
+ </div>
+ <div id="social_message-loves" class="section social-message" style="display:none;">
+ <div class="headline-5"><span class="highlight">Totally!</span> And there’s plenty <a rel:gt_act="feed-teaser/love" href="/badge/most-shared">more to love</a>!</div>
+ </div>
+ <div id="social_message-hates" class="section social-message" style="display:none;">
+ <div class="headline-5"><span class="highlight">Broken hearted?</span> Maybe you’ll like something <a rel:gt_act="feed-teaser/hate" href="/badges">over here</a> instead?</div>
+ </div>
+ </div>
+ <div id="share-reaction-box" style="display:none;" rel:gt_cat="[ttp]:reaction-box">
+ <div id="share-reaction-content-wrapper" style="display:none;">
+ <div id="share-reaction-box_title" class="headline-1">I know, right? Will your friends agree?</div>
+ <div id="fb-promo">Share this Link</div>
+ <div id="message-wrapper">
+ <textarea id="reaction-sharing-message"></textarea>
+ </div>
+ <div id="sharing-link-preview">
+ <img nopin="nopin" src="http://s3-ak.buzzfeed.com/static/2015-04/22/5/campaign_images/webdr03/student-dies-after-diet-pills-she-bought-online-b-2-28712-1429696299-24_small.jpg"/>
+ <div id="share-link-details">
+ <div class="headline-1">Student Dies After Diet Pills She Bought Online "Burned Her Up From Within"</div>
+ <span class="link">http://www.buzzfeed.com/markdistefano/diet-pill...</span>
+ <span class="blurb">An inquest into Eloise Parry's death has been adjourned until July.</span>
+ </div>
+ </div>
+ <div id="social-share-box-buttons">
+ <input id="reaction-share-submit" value="Share Link" rel:gt_act="share/facebook/share" class="submit button2" type="button"/>
+ </div>
+ </div>
+ <div id="share-reaction-success-wrapper" style="display:none;">
+ <div class="success_icon"></div><b>Your link was successfully shared!</b>
+ </div>
+ </div>
+ </div>
+ <div id="hotOnPinterestWrap"></div>
+ <div class="normal_reactions">
+ <aside id="bpage_ad_bottom" class="bf_dom std-posts section c" rel:bf_bucket="gtrack" rel:gt_cat="[ttp]:story-bpage">
+ <div class="bf-widget post partner-area viral-post bf_dom gpt" style="display:none;" id="BF_WIDGET_9" rel:bf_ad_position="27">
+ <div id="bf-item-9-1" class="bf-item">
+ <div id="div-gpt-ad-9" style="position:absolute;overflow:hidden;z-index:-1"></div>
+ <script type="text/javascript">
+ if (AD_DESIGN == 'gpt') {
+ loadGPTAd({
+ 'wid': 9
+ });
+ }
+ </script>
+ <div class="thumb-unit">
+ <a rel:gt_act="dfp/thumb" data-label="9" href="" class="bf-url"><img nopin="nopin" class="bf-image-big" src="data:image/gif;base64,R0lGODlhAQABAPAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" height="195" width="293"/></a>
+ </div>
+ <div class="pull-left">
+ <h2 class="bf-item-title"><a rel:gt_act="dfp/title" href="" class="bf-url bf-name"></a></h2>
+ <p class="bf-blurb description"></p>
+ <div class="media media-cleared">
+ <div class="pull-left">
+ <a rel:gt_act="dfp/avatar" href="" class="bf-user-url media__object">
+ <img nopin="nopin" class="bf-user_image_large" src="data:image/gif;base64,R0lGODlhAQABAPAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" height="36" width="36"/>
+ </a>
+ </div>
+ <div class="media__body">
+ <div class="by-line by-line--f-ad cf">
+ <div class="rect pull-left bf-byline_prefix">Promoted by</div>
+ </div>
+ <div class="type-6 by-line by-line--f-other bf-byline-other">BuzzFeed Staff</div>
+ <div class="media__heading">
+ <a rel:gt_act="dfp/username" href="" class="bf-user-url bf-display_name type-5"></a>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <script type="text/javascript">
+ (function() {
+ var AD = document.getElementById('BF_WIDGET_' + 9) || document.getElementById('BF_IFRAME_' + 9);
+ if (AB_AD_TEST && AD && AD_DESIGN) {
+ AD.className = AD.className + " " + AD_DESIGN;
+ }
+ })()
+ </script>
+ <script type="text/javascript">
+ if (AD_DESIGN != 'gpt') {
+
+ if (!window['win8AdCall']) {
+ window['win8AdCall'] = function() { /* do nothing */ };
+ }
+ var ad_tag = 'http://ad.doubleclick.net/N6556/adj/' + BF_DFP_SITE + BF_DFP_ZONE + ';wid=9;page=1;sz=5x5;pos=story-bpage;tile=9;' + BF_DFP_KVS + ';' + BF_TAG + win8AdCall() + '';
+ if (typeof AD_DESIGN != 'undefined') {
+ ad_tag += ';abtest=' + AD_DESIGN + ';'
+ }
+
+ //Loreal MUC channel
+ if (window.location.search.match('loreal_feed=1') && BF_STATIC.tt_page === "Buzz") {
+ ad_tag += 'loreal_feed=1;'
+ }
+
+ ad_tag += 'poe=' + BF_REFERER + ';';
+ ad_tag += 'ord=' + BF_DFP_ORD + '?';
+
+
+
+ if (ad_tag) {
+ if (!('wid=9;page=1;sz=5x5;pos=story-bpage;tile=9').match(/pos=300x250/) && null !== window.location.search.match("skipdfp")) {
+ window.addEventListener('load', function() {
+ var query = (typeof String.prototype.toQueryParams != 'undefined') ? window.location.search.toQueryParams() : $.deparam.querystring();
+ var ad_user = (query['skipdfp']) ? query['skipdfp'] : 'boost';
+ var extra_params = (/bigstory/.test('wid=9;page=1;sz=5x5;pos=story-bpage;tile=9')) ? '&flex_medium=bigstory' : '';
+ local_ad_call(9, ad_user, extra_params);
+ })
+ } else {
+ if (!BF_STATIC.bf_test_mode || document.cookie.match('sel2_ad') !== null) {
+ document.write('&lt;' + 'scr' + 'ipt type="text/javascr' + 'ipt" src="' + ad_tag + '">&lt;\/scr' + 'ipt' + '>');
+ } else {
+ console.info('disable DFP (dfp_tags.tt)');
+ }
+ }
+ }
+
+ if (null !== window.location.search.match("adtest") && console !== undefined && typeof ad_tag != "undefined") console.log(ad_tag);
+ }
+ </script>
+ </aside>
+ <script type="text/javascript">
+ document.observe('dom:loaded', function() {
+ if (acl.user_can('general_admin')) $('related-post-tools').removeClassName('hidden');
+ });
+ </script>
+ <div class="bf_dom" rel:bf_bucket="abtest" rel:ab_test="collaborate_more_buzz">
+ <div id="collaborate" class="hidden">
+ <section id="related-links" class="related-links-full bckg_img_aaa_png c js_site_unit_more_buzz" rel:gt_cat="[ttp]:related-links" pound_position="4ldqpev">
+ <div id="related-post-tools" class="hidden">
+ <a id="edit-related-button" rel:bf_bucket_data="{'update-related':{'buzz_id':'3758406'}}" class="bf_dom edit-related" onclick="return false" href="javascript:;">EDIT</a>
+ </div>
+ <header>
+ <div class="headline-2">More Buzz</div>
+ </header>
+ <ul>
+ <li class="related-big js_opt_unit_more_buzz hidden">
+ <a rel:gt_act="related-link/thumb" rel:gt_label="editor/sirajdatoo" href="/sirajdatoo/police-arrest-3-students-and-use-cs-spray-during-anti-fees-p" class="related-thumb" track_load="imp_attr_" track_mousedown="click_attr_" rel:buzz_id="3758406" rel:opt_variation="control" rel:fallback="true">
+ <img nopin="nopin" src="http://s3-static-ak.buzzfed.com/static/2014-12/4/5/campaign_images/webdr06/police-arrest-three-students-and-use-cs-spray-dur-2-19155-1417690696-19_big.jpg" alt=""/>
+ </a>
+ <span>
+ <a rel:gt_act="related-link/name" rel:gt_label="editor/sirajdatoo" class="related-title" href="/sirajdatoo/police-arrest-3-students-and-use-cs-spray-during-anti-fees-p" track_load="imp_attr_" track_mousedown="click_attr_" rel:buzz_id="3758406" rel:opt_variation="control" rel:fallback="true">Police Arrest Three Students And Use CS Spray During Anti-Fees Protest At Warwick</a>
+ <a rel:gt_act="related-link/remove" rel:gt_label="editor/sirajdatoo" href="javascript:;" class="editor-delete_related_links delete_related_links" onclick="return false;" rel:campaignid="3758406" rel:related_campaignid="3533389" rel:buzz_name="Police%20Arrest%20Three%20Students%20And%20Use%20CS%20Spray%20During%20Anti-Fees%20Protest%20At%20Warwick" style="display:none">×</a>
+ </span>
+ </li>
+ <li>
+ <span><a rel:gt_act="related-link/name" rel:gt_label="editor/richardhjames" href="/richardhjames/durham-student-newspaper-publishes-powerful-front-page-calli" rel:buzz_id="3758406" rel:opt_variation="control" rel:fallback="true">Durham Student Newspaper Publishes Powerful Front Page Calling For Action After Student Drownings</a>
+ <a rel:gt_act="related-link/remove" rel:gt_label="editor/richardhjames" href="javascript:;" class="editor-delete_related_links delete_related_links" onclick="return false;" rel:campaignid="3758406" rel:related_campaignid="3645732" rel:buzz_name="Durham%20Student%20Newspaper%20Publishes%20Powerful%20Front%20Page%20Calling%20For%20Action%20After%20Student%20Drownings" style="display:none">×</a>
+ </span>
+ </li>
+ <li>
+ <span><a rel:gt_act="related-link/name" rel:gt_label="editor/floperry" href="/floperry/university-college-london-closed-an-exhibition-that-displaye" rel:buzz_id="3758406" rel:opt_variation="control" rel:fallback="true">University College London Closed An Exhibition That Displayed Students’ Stories Of Sexual Harrassment</a>
+ <a rel:gt_act="related-link/remove" rel:gt_label="editor/floperry" href="javascript:;" class="editor-delete_related_links delete_related_links" onclick="return false;" rel:campaignid="3758406" rel:related_campaignid="3536836" rel:buzz_name="University%20College%20London%20Closed%20An%20Exhibition%20That%20Displayed%20Students'%20Stories%20Of%20Sexual%20Harrassment" style="display:none">×</a>
+ </span>
+ </li>
+ <li>
+ <span><a rel:gt_act="related-link/name" rel:gt_label="editor/richardhjames" href="/richardhjames/durham-student-lucky-to-be-alive-after-being-rescued-from-ri" rel:buzz_id="3758406" rel:opt_variation="control" rel:fallback="true">Durham Student Rescued From River “Lucky To Be Alive” Following Deaths Of Three Others</a>
+ <a rel:gt_act="related-link/remove" rel:gt_label="editor/richardhjames" href="javascript:;" class="editor-delete_related_links delete_related_links" onclick="return false;" rel:campaignid="3758406" rel:related_campaignid="3596109" rel:buzz_name="Durham%20Student%20%20Rescued%20From%20River%20%E2%80%9CLucky%20To%20Be%20Alive%E2%80%9D%20Following%20Deaths%20Of%20Three%20Others" style="display:none">×</a>
+ </span>
+ </li>
+ </ul>
+ <span style="display:none;" class="alert_box popup_box update_related">
+ <form class="alert_form" id="related_links_form" method="post">
+ <div class="form_header">
+ <div class="headline-1">Related Links</div>
+ <a class="alert_close_btn bf_dom" rel:bf_bucket="related-cancel">×</a>
+ </div>
+ <div class="form_body">
+ <div class="headline-2">Note: once you save these links, they will no longer update automatically.</div>
+
+ <div class="related_input">1. <input id="related1" class="bf_dom" placeholder="http://www.buzzfeed.com/username/uri" value="http://www.buzzfeed.com/sirajdatoo/police-arrest-3-students-and-use-cs-spray-during-anti-fees-p" name="related1" size="75" type="text"/></div>
+
+ <div class="related_input">2. <input id="related2" class="bf_dom" placeholder="http://www.buzzfeed.com/username/uri" value="http://www.buzzfeed.com/richardhjames/durham-student-newspaper-publishes-powerful-front-page-calli" name="related2" size="75" type="text"/></div>
+
+ <div class="related_input">3. <input id="related3" class="bf_dom" placeholder="http://www.buzzfeed.com/username/uri" value="http://www.buzzfeed.com/floperry/university-college-london-closed-an-exhibition-that-displaye" name="related3" size="75" type="text"/></div>
+
+ <div class="related_input">4. <input id="related4" class="bf_dom" placeholder="http://www.buzzfeed.com/username/uri" value="http://www.buzzfeed.com/richardhjames/durham-student-lucky-to-be-alive-after-being-rescued-from-ri" name="related4" size="75" type="text"/></div>
+
+ </div>
+ <div class="form_btns">
+ <span id="save_spinner" style="display: none;">
+ <img nopin="nopin" src="http://s3-ak.buzzfed.com/static/images/public/spinners/big_on_white.gif"/>
+ </span>
+ <a class="button2 smaller bf_dom" rel:bf_bucket_data="{'related-save':{'buzz_id':'3758406'}}" onclick="return false" href="javascript:;">Save Changes</a>
+ <a class="button2 smaller grey bf_dom" rel:bf_bucket="related-cancel" onclick="return false" href="javascript:;">Cancel</a>
+ </div>
+ </form>
+ </span>
+ </section>
+ </div>
+ <div id="control" class="">
+ <section id="related-links" class="related-links-full bckg_img_aaa_png c js_site_unit_more_buzz" rel:gt_cat="[ttp]:related-links" pound_position="4ldqpdu">
+ <div id="related-post-tools" class="hidden">
+ <a id="edit-related-button" rel:bf_bucket_data="{'update-related':{'buzz_id':'3758406'}}" class="bf_dom edit-related" onclick="return false" href="javascript:;">EDIT</a>
+ </div>
+ <header>
+ <div class="headline-2">More Buzz</div>
+ </header>
+ <ul>
+ <li class="related-big ">
+ <a rel:gt_act="related-link/thumb" rel:gt_label="editor/sirajdatoo" href="/sirajdatoo/police-arrest-3-students-and-use-cs-spray-during-anti-fees-p" class="related-thumb" track_load="imp_attr_" track_mousedown="click_attr_" rel:buzz_id="3758406" rel:opt_variation="control">
+ <img nopin="nopin" src="http://s3-static-ak.buzzfed.com/static/2014-12/4/5/campaign_images/webdr06/police-arrest-three-students-and-use-cs-spray-dur-2-19155-1417690696-19_big.jpg" alt=""/>
+ </a>
+ <span>
+ <a rel:gt_act="related-link/name" rel:gt_label="editor/sirajdatoo" class="related-title" href="/sirajdatoo/police-arrest-3-students-and-use-cs-spray-during-anti-fees-p" track_load="imp_attr_" track_mousedown="click_attr_" rel:buzz_id="3758406" rel:opt_variation="control">Police Arrest Three Students And Use CS Spray During Anti-Fees Protest At Warwick</a>
+ <a rel:gt_act="related-link/remove" rel:gt_label="editor/sirajdatoo" href="javascript:;" class="editor-delete_related_links delete_related_links" onclick="return false;" rel:campaignid="3758406" rel:related_campaignid="3533389" rel:buzz_name="Police%20Arrest%20Three%20Students%20And%20Use%20CS%20Spray%20During%20Anti-Fees%20Protest%20At%20Warwick" style="display:none">×</a>
+ </span>
+ </li>
+ <li>
+ <span><a rel:gt_act="related-link/name" rel:gt_label="editor/richardhjames" href="/richardhjames/durham-student-newspaper-publishes-powerful-front-page-calli" rel:buzz_id="3758406" rel:opt_variation="control">Durham Student Newspaper Publishes Powerful Front Page Calling For Action After Student Drownings</a>
+ <a rel:gt_act="related-link/remove" rel:gt_label="editor/richardhjames" href="javascript:;" class="editor-delete_related_links delete_related_links" onclick="return false;" rel:campaignid="3758406" rel:related_campaignid="3645732" rel:buzz_name="Durham%20Student%20Newspaper%20Publishes%20Powerful%20Front%20Page%20Calling%20For%20Action%20After%20Student%20Drownings" style="display:none">×</a>
+ </span>
+ </li>
+ <li>
+ <span><a rel:gt_act="related-link/name" rel:gt_label="editor/floperry" href="/floperry/university-college-london-closed-an-exhibition-that-displaye" rel:buzz_id="3758406" rel:opt_variation="control">University College London Closed An Exhibition That Displayed Students’ Stories Of Sexual Harrassment</a>
+ <a rel:gt_act="related-link/remove" rel:gt_label="editor/floperry" href="javascript:;" class="editor-delete_related_links delete_related_links" onclick="return false;" rel:campaignid="3758406" rel:related_campaignid="3536836" rel:buzz_name="University%20College%20London%20Closed%20An%20Exhibition%20That%20Displayed%20Students'%20Stories%20Of%20Sexual%20Harrassment" style="display:none">×</a>
+ </span>
+ </li>
+ <li>
+ <span><a rel:gt_act="related-link/name" rel:gt_label="editor/richardhjames" href="/richardhjames/durham-student-lucky-to-be-alive-after-being-rescued-from-ri" rel:buzz_id="3758406" rel:opt_variation="control">Durham Student Rescued From River “Lucky To Be Alive” Following Deaths Of Three Others</a>
+ <a rel:gt_act="related-link/remove" rel:gt_label="editor/richardhjames" href="javascript:;" class="editor-delete_related_links delete_related_links" onclick="return false;" rel:campaignid="3758406" rel:related_campaignid="3596109" rel:buzz_name="Durham%20Student%20%20Rescued%20From%20River%20%E2%80%9CLucky%20To%20Be%20Alive%E2%80%9D%20Following%20Deaths%20Of%20Three%20Others" style="display:none">×</a>
+ </span>
+ </li>
+ </ul>
+ <span style="display:none;" class="alert_box popup_box update_related">
+ <form class="alert_form" id="related_links_form" method="post">
+ <div class="form_header">
+ <div class="headline-1">Related Links</div>
+ <a class="alert_close_btn bf_dom" rel:bf_bucket="related-cancel">×</a>
+ </div>
+ <div class="form_body">
+ <div class="headline-2">Note: once you save these links, they will no longer update automatically.</div>
+
+ <div class="related_input">1. <input id="related1" class="bf_dom" placeholder="http://www.buzzfeed.com/username/uri" value="http://www.buzzfeed.com/sirajdatoo/police-arrest-3-students-and-use-cs-spray-during-anti-fees-p" name="related1" size="75" type="text"/></div>
+
+ <div class="related_input">2. <input id="related2" class="bf_dom" placeholder="http://www.buzzfeed.com/username/uri" value="http://www.buzzfeed.com/richardhjames/durham-student-newspaper-publishes-powerful-front-page-calli" name="related2" size="75" type="text"/></div>
+
+ <div class="related_input">3. <input id="related3" class="bf_dom" placeholder="http://www.buzzfeed.com/username/uri" value="http://www.buzzfeed.com/floperry/university-college-london-closed-an-exhibition-that-displaye" name="related3" size="75" type="text"/></div>
+
+ <div class="related_input">4. <input id="related4" class="bf_dom" placeholder="http://www.buzzfeed.com/username/uri" value="http://www.buzzfeed.com/richardhjames/durham-student-lucky-to-be-alive-after-being-rescued-from-ri" name="related4" size="75" type="text"/></div>
+
+ </div>
+ <div class="form_btns">
+ <span id="save_spinner" style="display: none;">
+ <img nopin="nopin" src="http://s3-ak.buzzfed.com/static/images/public/spinners/big_on_white.gif"/>
+ </span>
+ <a class="button2 smaller bf_dom" rel:bf_bucket_data="{'related-save':{'buzz_id':'3758406'}}" onclick="return false" href="javascript:;">Save Changes</a>
+ <a class="button2 smaller grey bf_dom" rel:bf_bucket="related-cancel" onclick="return false" href="javascript:;">Cancel</a>
+ </div>
+ </form>
+ </span>
+ </section>
+ </div>
+ </div>
+ </div>
+ <aside class="views-tags">
+ <p>
+ <span class="tags">Tagged:<a rel:gt_act="post/tag" class="tag pub" href="/tag/diet_pills">diet pills</a>, <a rel:gt_act="post/tag" class="tag pub" href="/tag/inquests">inquests</a>, <a rel:gt_act="post/tag" class="tag pub" href="/tag/online_shopping">online shopping</a>, <a rel:gt_act="post/tag" class="tag pub" href="/tag/uk">uk</a>, <a class="tag" href="/badge/viral">viral</a> </span>
+ </p>
+ </aside>
+ <div id="preFacebookComment" class="bf_dom" rel:bf_bucket_data="{&quot;progLoaderElement&quot;:{},&quot;scrollDifference&quot;:&quot;2000&quot;,&quot;reachElementMark&quot;:&quot;.bottom-share-buttons&quot;,&quot;name&quot;:&quot;fb_comments_control&quot;}">&nbsp;</div>
+ <section class="section hidden" id="fb_comments_control">
+ <header class="header">
+ <div class="headline-1">Facebook Conversations</div>
+ </header>
+ <div class="fb_comments_wrapper">
+ <img nopin="nopin" class="load-spinner" src="http://s3-ak.buzzfeed.com/static/images/public/spinners/big_on_white.gif?v=201504241415"/>
+ </div>
+ </section>
+ </article>
+ </div>
+ <div class="Column2 ">
+ <div class="featured_section section c dfp_bigstory" rel:gt_cat="[ttp]:bigstory">
+ <div class="bf-widget partner-area bf_dom gpt bsu_b" style="display:none;" id="BF_WIDGET_13" rel:bf_ad_position="30" rel:bf_bucket="abtest" rel:ab_test="AD_SIDEWIDE_BSU_REDESIGN">
+ <div id="bf-item-13-1" class="bf-item lede lede--stacked">
+ <div class="partner-sash abtest">Promoted</div>
+ <div id="div-gpt-ad-13" style="position:absolute;overflow:hidden;z-index:-1"></div>
+ <script type="text/javascript">
+ if (AD_DESIGN == 'gpt') {
+ loadGPTAd({
+ 'wid': 13
+ });
+ }
+ </script>
+ <a rel:gt_act="dfp/thumb" href="" class="bf-url lede__link">
+ <div class="lede__media">
+ <img nopin="nopin" class="flex-wide-thumb bf-image-bigstory media__object" src="data:image/gif;base64,R0lGODlhAQABAPAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" width="300"/>
+ </div>
+ </a>
+ <h2 class="bf-item-title lede__title">
+ <a rel:gt_act="dfp/title" href="" class="bf-url bf-name lede__link"></a>
+ </h2>
+ <p class="bf-blurb description" rel:bf_truncate="120"></p>
+ <div class="media">
+ <div class="pull-left">
+ <a rel:gt_act="dfp/avatar" href="" class="bf-user-url media__object pull-left">
+ <img nopin="nopin" class="bf-user_image_large media__object" src="data:image/gif;base64,R0lGODlhAQABAPAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" height="35" width="35"/>
+ </a>
+ </div>
+ <div class="media__body">
+ <div class="by-line by-line--f-ad cf">
+ <div class="rect pull-left promoted-label bf-byline_prefix">Promoted by</div>
+ </div>
+ <div class="type-6 by-line by-line--f-other bf-byline-other">BuzzFeed Staff</div>
+ <div class="media__heading">
+ <a rel:gt_act="dfp/username" href="" class="bf-user-url bf-display_name type-5 byline__author"></a>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <script type="text/javascript">
+ (function() {
+ var AD = document.getElementById('BF_WIDGET_' + 13) || document.getElementById('BF_IFRAME_' + 13);
+ if (AB_AD_TEST && AD && AD_DESIGN) {
+ AD.className = AD.className + " " + AD_DESIGN;
+ }
+ })()
+ </script>
+ <script type="text/javascript">
+ if (AD_DESIGN != 'gpt') {
+
+ if (!window['win8AdCall']) {
+ window['win8AdCall'] = function() { /* do nothing */ };
+ }
+ var ad_tag = 'http://ad.doubleclick.net/N6556/adj/' + BF_DFP_SITE + BF_DFP_ZONE + ';wid=13;page=1;sz=300x250;pos=bigstorybpage;tile=13;flex_medium=bigstory;' + BF_DFP_KVS + ';' + BF_TAG + win8AdCall() + '';
+ if (typeof AD_DESIGN != 'undefined') {
+ ad_tag += ';abtest=' + AD_DESIGN + ';'
+ }
+
+ //Loreal MUC channel
+ if (window.location.search.match('loreal_feed=1') && BF_STATIC.tt_page === "Buzz") {
+ ad_tag += 'loreal_feed=1;'
+ }
+
+ ad_tag += 'poe=' + BF_REFERER + ';';
+ ad_tag += 'ord=' + BF_DFP_ORD + '?';
+
+
+
+ if (ad_tag) {
+ if (!('wid=13;page=1;sz=300x250;pos=bigstorybpage;tile=13;flex_medium=bigstory').match(/pos=300x250/) && null !== window.location.search.match("skipdfp")) {
+ window.addEventListener('load', function() {
+ var query = (typeof String.prototype.toQueryParams != 'undefined') ? window.location.search.toQueryParams() : $.deparam.querystring();
+ var ad_user = (query['skipdfp']) ? query['skipdfp'] : 'boost';
+ var extra_params = (/bigstory/.test('wid=13;page=1;sz=300x250;pos=bigstorybpage;tile=13;flex_medium=bigstory')) ? '&flex_medium=bigstory' : '';
+ local_ad_call(13, ad_user, extra_params);
+ })
+ } else {
+ if (!BF_STATIC.bf_test_mode || document.cookie.match('sel2_ad') !== null) {
+ document.write('&lt;' + 'scr' + 'ipt type="text/javascr' + 'ipt" src="' + ad_tag + '">&lt;\/scr' + 'ipt' + '>');
+ } else {
+ console.info('disable DFP (dfp_tags.tt)');
+ }
+ }
+ }
+
+ if (null !== window.location.search.match("adtest") && console !== undefined && typeof ad_tag != "undefined") console.log(ad_tag);
+ }
+ </script>
+ </div>
+ <!-- \dfp_bigstory -->
+ <!-- X---IN-DEPTH---X -@- /plugin/indepth/v:1.0 -->
+ <div class="indepth-module bf_dom" rel:bf_bucket_data="{'indepth_buzz':{'indepth_buzz_id':3755831}}">
+ <div class="indepth-module__logo-wrap">
+ <a href="/news" class="indepth-module__logo-wrap__logo-image" rel:gt_act="indepth-module:buzzfeed-news-logo"></a>
+ </div>
+ <a class="indepth-module__thumbnail" href="/ellievhall/gone-girl-an-interview-with-an-american-in-isis" rel:gt_label="3755831" rel:gt_act="indepth-module:image"><img nopin="nopin" src="http://s3-ak.buzzfeed.com/static/2015-04/22/14/campaign_images/webdr15/gone-girl-an-interview-with-an-american-in-isis-2-4632-1429727152-8_wide.jpg" height="118" width="336"/></a>
+ <div class="indepth-module__text">
+ <a class="indepth-module__title" href="/ellievhall/gone-girl-an-interview-with-an-american-in-isis" rel:gt_label="3755831" rel:gt_act="indepth-module:title">Gone Girl: An Interview With An American In ISIS</a>
+ <p class="indepth-module__subtitle">
+ by <a href="/ellievhall" rel:gt_act="indepth-module:author">Ellie Hall</a>
+ </p>
+ </div>
+ </div>
+ <!-- UNIT:Indepth generated on 9:20:20, 4/27/2015 -->
+ <!-- \in_depth -->
+ <div class="vertical-sidebar-info">
+ <div class="connect-widget connect-widget--uknews">
+ <h4 class="connect-widget__title">
+ <span>
+ Connect With
+
+ <svg viewBox="0 0 847 151" class="connect-widget__svg-logo">
+ <use xlink:href="#logo"></use>
+ </svg>
+
+
+ News
+
+ </span>
+ </h4>
+ <a href="http://www.facebook.com/BuzzFeedUKNews" class="connect-widget__button btn--facebook" rel:gt_act="share/facebook/like">
+ <svg viewBox="0 0 512 512" class="connect-widget__btn-svg">
+ <use xlink:href="#facebook"></use>
+ </svg>
+ Like Us On Facebook
+ </a>
+ <a href="http://www.twitter.com/BuzzFeedUK" class="connect-widget__button btn--twitter" rel:gt_act="share/twitter/follow">
+ <svg viewBox="0 0 512 512" class="connect-widget__btn-svg">
+ <use xlink:href="#tweet"></use>
+ </svg>
+ Follow Us On Twitter
+ </a>
+ </div>
+ </div>
+ <!-- /.vertical-sidebar-info -->
+ <!-- \sidebar_info -->
+ <!-- X---MORE-NEWS---X -@- /plugin/morenews/v:1.0 -->
+ <div class="section block bf_dom js-rightcol--control" rel:bf_bucket="abtest" rel:ab_test="bpage_sticking_rightcol" rel:gt_cat="[ttp]:sidebar/more-news" pound_position="4ldqpjb">
+ <div class="vertical-info-banner">
+ <span class="text">More News</span>
+ <div class="notch"></div>
+ </div>
+ <div class="content">
+ <ul>
+ <script type="text/javascript">
+ var imp_attr_3763538_13 = {
+ "PROMO_IMPRESSION": "13"
+ };
+ var click_attr_3763538_13 = {
+ "PROMO_CLICK": "13"
+ };
+ </script>
+ <li class="post sidebar-post top bf_dom sidebar-post-wide" rel:bf_bucket="track" track="{&quot;c&quot;:&quot;7FONSF7&quot;,&quot;u&quot;:&quot;71GVND7&quot;,&quot;buzz&quot;:&quot;family-friends-mourn-freddie-gray-at-wake-one-night-after-ch&quot;,&quot;user&quot;:&quot;mbvd&quot;,&quot;types&quot;:[100],&quot;queries&quot;:[]}" id="promoted-family-friends-mourn-freddie-gray-at-wake-one-night-after-ch">
+ <a href="/mbvd/family-friends-mourn-freddie-gray-at-wake-one-night-after-ch" rel:gt_act="buzzing/thumb" rel:buzz_id="3763538">
+ <div style="float:left; position:relative;">
+ <img nopin="nopin" src="http://s3-static-ak.buzzfed.com/static/2015-04/27/5/campaign_images/webdr01/family-friends-mourn-freddie-gray-at-wake-one-nig-2-15357-1430127651-1_wide.jpg" rel:bf_image_src="http://s3-static-ak.buzzfed.com/static/2015-04/27/5/campaign_images/webdr01/family-friends-mourn-freddie-gray-at-wake-one-nig-2-15357-1430127651-1_wide.jpg" class="bf_dom thumb" rel:bf_bucket="progload" alt=""/>
+ </div>
+ </a>
+ <a class="qe editor-admin" style="display:none" rel:data="{&quot;buzz_id&quot;:&quot;3763538&quot;}"></a>
+ <h2><a href="/mbvd/family-friends-mourn-freddie-gray-at-wake-one-night-after-ch" rel:gt_act="buzzing/title" rel:buzz_id="3763538">Family, Friends Mourn Freddie Gray At Wake One Night After Chaotic Protests</a></h2>
+ </li>
+ <script type="text/javascript">
+ var imp_attr_3762718_13 = {
+ "PROMO_IMPRESSION": "13"
+ };
+ var click_attr_3762718_13 = {
+ "PROMO_CLICK": "13"
+ };
+ </script>
+ <li class="post sidebar-post bf_dom sidebar-post-wide" rel:bf_bucket="track" track="{&quot;c&quot;:&quot;7FOJCZ7&quot;,&quot;u&quot;:&quot;7BEY927&quot;,&quot;buzz&quot;:&quot;nepal-shaken-up-by-major-earthquake&quot;,&quot;user&quot;:&quot;felipearaujo&quot;,&quot;types&quot;:[100],&quot;queries&quot;:[]}" id="promoted-nepal-shaken-up-by-major-earthquake">
+ <a href="/felipearaujo/nepal-shaken-up-by-major-earthquake" rel:gt_act="buzzing/thumb" rel:buzz_id="3762718">
+ <div style="float:left; position:relative;">
+ <img nopin="nopin" src="http://s3-static-ak.buzzfed.com/static/2015-04/27/8/campaign_images/webdr02/death-toll-in-nepal-rises-to-3600-2-8835-1430139002-18_wide.jpg" rel:bf_image_src="http://s3-static-ak.buzzfed.com/static/2015-04/27/8/campaign_images/webdr02/death-toll-in-nepal-rises-to-3600-2-8835-1430139002-18_wide.jpg" class="bf_dom thumb" rel:bf_bucket="progload" alt=""/>
+ </div>
+ </a>
+ <a class="qe editor-admin" style="display:none" rel:data="{&quot;buzz_id&quot;:&quot;3762718&quot;}"></a>
+ <h2><a href="/felipearaujo/nepal-shaken-up-by-major-earthquake" rel:gt_act="buzzing/title" rel:buzz_id="3762718">Death Toll In Nepal Rises To 3,600</a></h2>
+ </li>
+ <script type="text/javascript">
+ var imp_attr_3763853_13 = {
+ "PROMO_IMPRESSION": "13"
+ };
+ var click_attr_3763853_13 = {
+ "PROMO_CLICK": "13"
+ };
+ </script>
+ <li class="post sidebar-post bf_dom sidebar-post-wide" rel:bf_bucket="track" track="{&quot;c&quot;:&quot;7FOPHO7&quot;,&quot;u&quot;:&quot;71V1G7&quot;,&quot;buzz&quot;:&quot;tsarnaev-to-launch-defense-against-death-penalty&quot;,&quot;user&quot;:&quot;mikehayes&quot;,&quot;types&quot;:[100],&quot;queries&quot;:[]}" id="promoted-tsarnaev-to-launch-defense-against-death-penalty">
+ <a href="/mikehayes/tsarnaev-to-launch-defense-against-death-penalty" rel:gt_act="buzzing/thumb" rel:buzz_id="3763853">
+ <div style="float:left; position:relative;">
+ <img nopin="nopin" src="http://s3-static-ak.buzzfed.com/static/2015-04/27/9/campaign_images/webdr04/tsarnaev-to-launch-defense-against-death-penalty-2-8928-1430139758-25_wide.jpg" rel:bf_image_src="http://s3-static-ak.buzzfed.com/static/2015-04/27/9/campaign_images/webdr04/tsarnaev-to-launch-defense-against-death-penalty-2-8928-1430139758-25_wide.jpg" class="bf_dom thumb" rel:bf_bucket="progload" alt=""/>
+ </div>
+ </a>
+ <a class="qe editor-admin" style="display:none" rel:data="{&quot;buzz_id&quot;:&quot;3763853&quot;}"></a>
+ <h2><a href="/mikehayes/tsarnaev-to-launch-defense-against-death-penalty" rel:gt_act="buzzing/title" rel:buzz_id="3763853">Tsarnaev To Launch Defense Against Death Penalty</a></h2>
+ </li>
+ <script type="text/javascript">
+ var imp_attr_3763894_13 = {
+ "PROMO_IMPRESSION": "13"
+ };
+ var click_attr_3763894_13 = {
+ "PROMO_CLICK": "13"
+ };
+ </script>
+ <li class="post sidebar-post bf_dom sidebar-post-wide" rel:bf_bucket="track" track="{&quot;c&quot;:&quot;7FOPPN7&quot;,&quot;u&quot;:&quot;7793T17&quot;,&quot;buzz&quot;:&quot;ultra-patriotic-russian-biker-gang-refused-entry-to-poland&quot;,&quot;user&quot;:&quot;franciswhittaker&quot;,&quot;types&quot;:[100],&quot;queries&quot;:[]}" id="promoted-ultra-patriotic-russian-biker-gang-refused-entry-to-poland">
+ <a href="/franciswhittaker/ultra-patriotic-russian-biker-gang-refused-entry-to-poland" rel:gt_act="buzzing/thumb" rel:buzz_id="3763894">
+ <div style="float:left; position:relative;">
+ <img nopin="nopin" src="http://s3-static-ak.buzzfed.com/static/2015-04/27/9/campaign_images/webdr05/ultra-patriotic-russian-biker-gang-refused-entry--2-17023-1430140685-30_wide.jpg" rel:bf_image_src="http://s3-static-ak.buzzfed.com/static/2015-04/27/9/campaign_images/webdr05/ultra-patriotic-russian-biker-gang-refused-entry--2-17023-1430140685-30_wide.jpg" class="bf_dom thumb" rel:bf_bucket="progload" alt=""/>
+ </div>
+ </a>
+ <a class="qe editor-admin" style="display:none" rel:data="{&quot;buzz_id&quot;:&quot;3763894&quot;}"></a>
+ <h2><a href="/franciswhittaker/ultra-patriotic-russian-biker-gang-refused-entry-to-poland" rel:gt_act="buzzing/title" rel:buzz_id="3763894">Ultra-Patriotic Russian Biker Gang Refused Entry To Poland</a></h2>
+ </li>
+ <script type="text/javascript">
+ var imp_attr_3763883_13 = {
+ "PROMO_IMPRESSION": "13"
+ };
+ var click_attr_3763883_13 = {
+ "PROMO_CLICK": "13"
+ };
+ </script>
+ <li class="post sidebar-post bf_dom sidebar-post-wide" rel:bf_bucket="track" track="{&quot;c&quot;:&quot;7FOPNI7&quot;,&quot;u&quot;:&quot;7843DL7&quot;,&quot;buzz&quot;:&quot;swastikas-painted-on-sae-fraternity-house-at-stanford-univer&quot;,&quot;user&quot;:&quot;maryanngeorgantopoulos&quot;,&quot;types&quot;:[100],&quot;queries&quot;:[]}" id="promoted-swastikas-painted-on-sae-fraternity-house-at-stanford-univer">
+ <a href="/maryanngeorgantopoulos/swastikas-painted-on-sae-fraternity-house-at-stanford-univer" rel:gt_act="buzzing/thumb" rel:buzz_id="3763883">
+ <div style="float:left; position:relative;">
+ <img nopin="nopin" src="http://s3-static-ak.buzzfed.com/static/2015-04/27/8/campaign_images/webdr06/swastikas-painted-on-sae-fraternity-house-at-stan-2-29351-1430137347-1_wide.jpg" rel:bf_image_src="http://s3-static-ak.buzzfed.com/static/2015-04/27/8/campaign_images/webdr06/swastikas-painted-on-sae-fraternity-house-at-stan-2-29351-1430137347-1_wide.jpg" class="bf_dom thumb" rel:bf_bucket="progload" alt=""/>
+ </div>
+ </a>
+ <a class="qe editor-admin" style="display:none" rel:data="{&quot;buzz_id&quot;:&quot;3763883&quot;}"></a>
+ <h2><a href="/maryanngeorgantopoulos/swastikas-painted-on-sae-fraternity-house-at-stanford-univer" rel:gt_act="buzzing/title" rel:buzz_id="3763883">Swastikas Painted On SAE Fraternity House At Stanford University</a></h2>
+ </li>
+ <script type="text/javascript">
+ var imp_attr_3763873_13 = {
+ "PROMO_IMPRESSION": "13"
+ };
+ var click_attr_3763873_13 = {
+ "PROMO_CLICK": "13"
+ };
+ </script>
+ <li class="post sidebar-post bf_dom sidebar-post-wide" rel:bf_bucket="track" track="{&quot;c&quot;:&quot;7FOPLK7&quot;,&quot;u&quot;:&quot;7C3FH97&quot;,&quot;buzz&quot;:&quot;andrew-chan-marries-partner-a-day-before-execution&quot;,&quot;user&quot;:&quot;robstott&quot;,&quot;types&quot;:[100],&quot;queries&quot;:[]}" id="promoted-andrew-chan-marries-partner-a-day-before-execution">
+ <a href="/robstott/andrew-chan-marries-partner-a-day-before-execution" rel:gt_act="buzzing/thumb" rel:buzz_id="3763873">
+ <div style="float:left; position:relative;">
+ <img nopin="nopin" src="http://s3-static-ak.buzzfed.com/static/2015-04/27/8/campaign_images/webdr07/andrew-chan-marries-partner-a-day-before-execution-2-26101-1430136567-7_wide.jpg" rel:bf_image_src="http://s3-static-ak.buzzfed.com/static/2015-04/27/8/campaign_images/webdr07/andrew-chan-marries-partner-a-day-before-execution-2-26101-1430136567-7_wide.jpg" class="bf_dom thumb" rel:bf_bucket="progload" alt=""/>
+ </div>
+ </a>
+ <a class="qe editor-admin" style="display:none" rel:data="{&quot;buzz_id&quot;:&quot;3763873&quot;}"></a>
+ <h2><a href="/robstott/andrew-chan-marries-partner-a-day-before-execution" rel:gt_act="buzzing/title" rel:buzz_id="3763873">Andrew Chan Marries Partner A Day Before Execution</a></h2>
+ </li>
+ <script type="text/javascript">
+ var imp_attr_3763406_13 = {
+ "PROMO_IMPRESSION": "13"
+ };
+ var click_attr_3763406_13 = {
+ "PROMO_CLICK": "13"
+ };
+ </script>
+ <li class="post sidebar-post bf_dom sidebar-post-wide" rel:bf_bucket="track" track="{&quot;c&quot;:&quot;7FON2R7&quot;,&quot;u&quot;:&quot;71BDXX7&quot;,&quot;buzz&quot;:&quot;supreme-courts-simple-marriage-case-questions-lead-to-comple&quot;,&quot;user&quot;:&quot;chrisgeidner&quot;,&quot;types&quot;:[100],&quot;queries&quot;:[]}" id="promoted-supreme-courts-simple-marriage-case-questions-lead-to-comple">
+ <a href="/chrisgeidner/supreme-courts-simple-marriage-case-questions-lead-to-comple" rel:gt_act="buzzing/thumb" rel:buzz_id="3763406">
+ <div style="float:left; position:relative;">
+ <img nopin="nopin" src="http://s3-static-ak.buzzfed.com/static/2015-04/27/1/campaign_images/webdr08/supreme-courts-simple-marriage-case-questions-lea-2-3565-1430112279-6_wide.jpg" rel:bf_image_src="http://s3-static-ak.buzzfed.com/static/2015-04/27/1/campaign_images/webdr08/supreme-courts-simple-marriage-case-questions-lea-2-3565-1430112279-6_wide.jpg" class="bf_dom thumb" rel:bf_bucket="progload" alt=""/>
+ </div>
+ </a>
+ <a class="qe editor-admin" style="display:none" rel:data="{&quot;buzz_id&quot;:&quot;3763406&quot;}"></a>
+ <h2><a href="/chrisgeidner/supreme-courts-simple-marriage-case-questions-lead-to-comple" rel:gt_act="buzzing/title" rel:buzz_id="3763406">Supreme Court’s Simple Marriage Case Questions Lead To Complex Arguments</a></h2>
+ </li>
+ <script type="text/javascript">
+ var imp_attr_3739824_13 = {
+ "PROMO_IMPRESSION": "13"
+ };
+ var click_attr_3739824_13 = {
+ "PROMO_CLICK": "13"
+ };
+ </script>
+ <li class="post sidebar-post bf_dom sidebar-post-wide" rel:bf_bucket="track" track="{&quot;c&quot;:&quot;7FL3PD7&quot;,&quot;u&quot;:&quot;7YLFS7&quot;,&quot;buzz&quot;:&quot;the-south-carolina-audition-to-be-hillary-clintons-most-seri&quot;,&quot;user&quot;:&quot;rubycramer&quot;,&quot;types&quot;:[100],&quot;queries&quot;:[]}" id="promoted-the-south-carolina-audition-to-be-hillary-clintons-most-seri">
+ <a href="/rubycramer/the-south-carolina-audition-to-be-hillary-clintons-most-seri" rel:gt_act="buzzing/thumb" rel:buzz_id="3739824">
+ <div style="float:left; position:relative;">
+ <img nopin="nopin" src="http://s3-static-ak.buzzfed.com/static/2015-04/26/22/campaign_images/webdr06/the-south-carolina-audition-to-be-hillary-clinton-2-11926-1430100389-5_wide.jpg" rel:bf_image_src="http://s3-static-ak.buzzfed.com/static/2015-04/26/22/campaign_images/webdr06/the-south-carolina-audition-to-be-hillary-clinton-2-11926-1430100389-5_wide.jpg" class="bf_dom thumb" rel:bf_bucket="progload" alt=""/>
+ </div>
+ </a>
+ <a class="qe editor-admin" style="display:none" rel:data="{&quot;buzz_id&quot;:&quot;3739824&quot;}"></a>
+ <h2><a href="/rubycramer/the-south-carolina-audition-to-be-hillary-clintons-most-seri" rel:gt_act="buzzing/title" rel:buzz_id="3739824">The South Carolina Audition To Be Hillary Clinton’s Most Serious Challenger</a></h2>
+ </li>
+ <script type="text/javascript">
+ var imp_attr_3762507_13 = {
+ "PROMO_IMPRESSION": "13"
+ };
+ var click_attr_3762507_13 = {
+ "PROMO_CLICK": "13"
+ };
+
+ var promotions = [{
+ "width": "125",
+ "extra_fields": {
+ "small": {
+ "width": 870,
+ "left": 0,
+ "top": 0,
+ "height": "578"
+ },
+ "big": {
+ "width": 870,
+ "left": 119.518072289157,
+ "top": 0,
+ "height": 578
+ },
+ "wide": {
+ "width": 870,
+ "left": 119.518072289157,
+ "top": 192,
+ "height": 306
+ }
+ },
+ "image_dblwide": "/static/2015-04/27/9/campaign_images/webdr02/mormon-childless-and-constantly-condescended-to-2-8804-1430140118-12_dblwide.jpg",
+ "clicks": null,
+ "dud": "0",
+ "added": "2015-04-27 09:08:40",
+ "campaign_id": "3762507",
+ "rate": 0,
+ "impressions": null,
+ "image_id": "175776",
+ "original_image_width": "990",
+ "promoter": "2666258",
+ "updated": null,
+ "id": "269482",
+ "image_dblbig": "/static/2015-04/27/9/campaign_images/webdr02/mormon-childless-and-constantly-condescended-to-2-8804-1430140118-12_dblbig.jpg",
+ "is_default": "0",
+ "promotion_image_id": "175776",
+ "sub_buzz_id": "0",
+ "image_big": "/static/2015-04/27/9/campaign_images/webdr02/mormon-childless-and-constantly-condescended-to-2-8804-1430140118-12_big.jpg",
+ "probability": 0.25,
+ "active": "1",
+ "original_image_height": "578",
+ "height": "83",
+ "description": "&lt;b>In my secular life, I'm a marathoner and stand-up comic.&lt;/b> In the eyes of the church, I'm a charity case.",
+ "image": "/static/2015-04/27/9/campaign_images/webdr02/mormon-childless-and-constantly-condescended-to-2-8804-1430140118-12.jpg",
+ "old": "0",
+ "promotion_medium_id": "1",
+ "flexpro_recipients": "",
+ "title": "Rejecting Motherhood As A Mormon Woman",
+ "image_wide": "/static/2015-04/27/9/campaign_images/webdr02/mormon-childless-and-constantly-condescended-to-2-8804-1430140118-12_wide.jpg",
+ "original_image": "/static/2015-04/25/20/enhanced/webdr13/original-25550-1430009073-11.jpg"
+ }, {
+ "width": "125",
+ "extra_fields": {
+ "small": {
+ "width": 870,
+ "left": 0,
+ "top": 0,
+ "height": "578"
+ },
+ "big": {
+ "width": 870,
+ "left": 119.518072289157,
+ "top": 0,
+ "height": 578
+ },
+ "wide": {
+ "width": 870,
+ "left": 119.518072289157,
+ "top": 192,
+ "height": 306
+ }
+ },
+ "image_dblwide": "/static/2015-04/27/9/campaign_images/webdr02/mormon-childless-and-constantly-condescended-to-2-8804-1430140118-12_dblwide.jpg",
+ "clicks": null,
+ "dud": "0",
+ "added": "2015-04-27 09:08:43",
+ "campaign_id": "3762507",
+ "rate": 0,
+ "impressions": null,
+ "image_id": "175776",
+ "original_image_width": "990",
+ "promoter": "2666258",
+ "updated": null,
+ "id": "269485",
+ "image_dblbig": "/static/2015-04/27/9/campaign_images/webdr02/mormon-childless-and-constantly-condescended-to-2-8804-1430140118-12_dblbig.jpg",
+ "is_default": "0",
+ "promotion_image_id": "175776",
+ "sub_buzz_id": "0",
+ "image_big": "/static/2015-04/27/9/campaign_images/webdr02/mormon-childless-and-constantly-condescended-to-2-8804-1430140118-12_big.jpg",
+ "probability": 0.25,
+ "active": "1",
+ "original_image_height": "578",
+ "height": "83",
+ "description": "&lt;b>In my secular life, I'm a marathoner and stand-up comic.&lt;/b> In the eyes of the church, I'm a charity case.",
+ "image": "/static/2015-04/27/9/campaign_images/webdr02/mormon-childless-and-constantly-condescended-to-2-8804-1430140118-12.jpg",
+ "old": "0",
+ "promotion_medium_id": "1",
+ "flexpro_recipients": "",
+ "title": "Mormon, Childless, And Constantly Condescended To",
+ "image_wide": "/static/2015-04/27/9/campaign_images/webdr02/mormon-childless-and-constantly-condescended-to-2-8804-1430140118-12_wide.jpg",
+ "original_image": "/static/2015-04/25/20/enhanced/webdr13/original-25550-1430009073-11.jpg"
+ }, {
+ "width": "125",
+ "extra_fields": {
+ "small": {
+ "width": 870,
+ "left": 0,
+ "top": 0,
+ "height": "578"
+ },
+ "big": {
+ "width": 870,
+ "left": 119.518072289157,
+ "top": 0,
+ "height": 578
+ },
+ "wide": {
+ "width": 870,
+ "left": 119.518072289157,
+ "top": 192,
+ "height": 306
+ }
+ },
+ "image_dblwide": "/static/2015-04/27/9/campaign_images/webdr02/mormon-childless-and-constantly-condescended-to-2-8804-1430140118-12_dblwide.jpg",
+ "clicks": null,
+ "dud": "0",
+ "added": "2015-04-27 09:08:43",
+ "campaign_id": "3762507",
+ "rate": 0,
+ "impressions": null,
+ "image_id": "175776",
+ "original_image_width": "990",
+ "promoter": "2666258",
+ "updated": null,
+ "id": "269484",
+ "image_dblbig": "/static/2015-04/27/9/campaign_images/webdr02/mormon-childless-and-constantly-condescended-to-2-8804-1430140118-12_dblbig.jpg",
+ "is_default": "0",
+ "promotion_image_id": "175776",
+ "sub_buzz_id": "0",
+ "image_big": "/static/2015-04/27/9/campaign_images/webdr02/mormon-childless-and-constantly-condescended-to-2-8804-1430140118-12_big.jpg",
+ "probability": 0.25,
+ "active": "1",
+ "original_image_height": "578",
+ "height": "83",
+ "description": "&lt;b>In my secular life, I'm a marathoner and stand-up comic.&lt;/b> In the eyes of the church, I'm a charity case.",
+ "image": "/static/2015-04/27/9/campaign_images/webdr02/mormon-childless-and-constantly-condescended-to-2-8804-1430140118-12.jpg",
+ "old": "0",
+ "promotion_medium_id": "1",
+ "flexpro_recipients": "",
+ "title": "Mormon And Childless By Choice",
+ "image_wide": "/static/2015-04/27/9/campaign_images/webdr02/mormon-childless-and-constantly-condescended-to-2-8804-1430140118-12_wide.jpg",
+ "original_image": "/static/2015-04/25/20/enhanced/webdr13/original-25550-1430009073-11.jpg"
+ }, {
+ "width": "125",
+ "extra_fields": {
+ "small": {
+ "width": 870,
+ "left": 0,
+ "top": 0,
+ "height": "578"
+ },
+ "big": {
+ "width": 870,
+ "left": 119.518072289157,
+ "top": 0,
+ "height": 578
+ },
+ "wide": {
+ "width": 870,
+ "left": 119.518072289157,
+ "top": 192,
+ "height": 306
+ }
+ },
+ "image_dblwide": "/static/2015-04/27/9/campaign_images/webdr02/mormon-childless-and-constantly-condescended-to-2-8804-1430140122-14_dblwide.jpg",
+ "clicks": null,
+ "dud": "0",
+ "added": "2015-04-27 09:08:43",
+ "campaign_id": "3762507",
+ "rate": 0,
+ "impressions": null,
+ "image_id": "175777",
+ "original_image_width": "990",
+ "promoter": "2666258",
+ "updated": null,
+ "id": "269483",
+ "image_dblbig": "/static/2015-04/27/9/campaign_images/webdr02/mormon-childless-and-constantly-condescended-to-2-8804-1430140122-14_dblbig.jpg",
+ "is_default": "0",
+ "promotion_image_id": "175777",
+ "sub_buzz_id": "0",
+ "image_big": "/static/2015-04/27/9/campaign_images/webdr02/mormon-childless-and-constantly-condescended-to-2-8804-1430140122-14_big.jpg",
+ "probability": 0.25,
+ "active": "1",
+ "original_image_height": "578",
+ "height": "83",
+ "description": "&lt;b>In my secular life, I'm a marathoner and stand-up comic.&lt;/b> In the eyes of the church, I'm a charity case.",
+ "image": "/static/2015-04/27/9/campaign_images/webdr02/mormon-childless-and-constantly-condescended-to-2-8804-1430140122-14.jpg",
+ "old": "0",
+ "promotion_medium_id": "1",
+ "flexpro_recipients": "",
+ "title": "I'm Mormon But I Don't Want Children. Really.",
+ "image_wide": "/static/2015-04/27/9/campaign_images/webdr02/mormon-childless-and-constantly-condescended-to-2-8804-1430140122-14_wide.jpg",
+ "original_image": "/static/2015-04/25/20/enhanced/webdr13/original-25550-1430009073-11.jpg"
+ }];
+ var opts = [];
+ for (var i = 0; i &lt; promotions.length; i++)
+ for (var j = 0; j &lt; (promotions[i].probability * 100); j++) opts.push(promotions[i]);
+ var sel_promo = opts[Math.floor(Math.random() * opts.length)];
+ imp_attr_3762507_13.FLEX_PRO_IMP = sel_promo.id;
+ click_attr_3762507_13.FLEX_PRO_CLICK = sel_promo.id;
+ </script>
+ <li class="post sidebar-post bf_dom sidebar-post-wide" rel:bf_bucket="track" track="{&quot;c&quot;:&quot;7FOI7Y7&quot;,&quot;u&quot;:&quot;7C8UNP7&quot;,&quot;buzz&quot;:&quot;mormon-childless-and-constantly-condescended-to&quot;,&quot;user&quot;:&quot;jenniferpurdie&quot;,&quot;types&quot;:[100],&quot;queries&quot;:[]}" id="promoted-mormon-childless-and-constantly-condescended-to">
+ <script type="text/javascript">
+ document.write('\
+ &lt;a href="/jenniferpurdie/mormon-childless-and-constantly-condescended-to" rel:gt_act="buzzing/thumb" rel:buzz_id="3762507">\
+ &lt;div style="float:left; position:relative;">\
+ &lt;img src="data:image/gif;base64,R0lGODlhAQABAPAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" rel:bf_image_src="http://s3-ak.buzzfeed.com' + sel_promo.image_wide + '" class="bf_dom thumb" rel:bf_bucket="progload" alt="" />\
+ \
+ &lt;/div>\
+ &lt;/a>\
+ &lt;a class="qe editor-admin" style="display:none" rel:data=\'{"buzz_id":"3762507"}\'>&lt;/a>\
+ &lt;h2>\
+ &lt;a href="/jenniferpurdie/mormon-childless-and-constantly-condescended-to" rel:gt_act="buzzing/title">' + sel_promo.title + '&lt;/a>\
+ &lt;/h2>\
+ ');
+ </script>
+ <a href="/jenniferpurdie/mormon-childless-and-constantly-condescended-to" rel:gt_act="buzzing/thumb" rel:buzz_id="3762507">
+ <div style="float:left; position:relative;"> <img nopin="nopin" src="http://s3-ak.buzzfeed.com/static/2015-04/27/9/campaign_images/webdr02/mormon-childless-and-constantly-condescended-to-2-8804-1430140118-12_wide.jpg" rel:bf_image_src="http://s3-ak.buzzfeed.com/static/2015-04/27/9/campaign_images/webdr02/mormon-childless-and-constantly-condescended-to-2-8804-1430140118-12_wide.jpg" class="bf_dom thumb" rel:bf_bucket="progload" alt=""/> </div>
+ </a>
+ <a class="qe editor-admin" style="display:none" rel:data="{&quot;buzz_id&quot;:&quot;3762507&quot;}"></a>
+ <h2> <a href="/jenniferpurdie/mormon-childless-and-constantly-condescended-to" rel:gt_act="buzzing/title">Rejecting Motherhood As A Mormon Woman</a> </h2>
+ </li>
+ <script type="text/javascript">
+ var imp_attr_3763007_13 = {
+ "PROMO_IMPRESSION": "13"
+ };
+ var click_attr_3763007_13 = {
+ "PROMO_CLICK": "13"
+ };
+ </script>
+ <li class="post sidebar-post bf_dom sidebar-post-wide" rel:bf_bucket="track" track="{&quot;c&quot;:&quot;7FOKX67&quot;,&quot;u&quot;:&quot;766OVA7&quot;,&quot;buzz&quot;:&quot;windows-broken-scuffles-break-out-at-baltimore-protests&quot;,&quot;user&quot;:&quot;jimdalrympleii&quot;,&quot;types&quot;:[100],&quot;queries&quot;:[]}" id="promoted-windows-broken-scuffles-break-out-at-baltimore-protests">
+ <a href="/jimdalrympleii/windows-broken-scuffles-break-out-at-baltimore-protests" rel:gt_act="buzzing/thumb" rel:buzz_id="3763007">
+ <div style="float:left; position:relative;">
+ <img nopin="nopin" src="http://s3-static-ak.buzzfed.com/static/2015-04/26/20/campaign_images/webdr11/35-arrested-after-windows-are-broken-and-clashes--2-10900-1430094476-14_wide.jpg" rel:bf_image_src="http://s3-static-ak.buzzfed.com/static/2015-04/26/20/campaign_images/webdr11/35-arrested-after-windows-are-broken-and-clashes--2-10900-1430094476-14_wide.jpg" class="bf_dom thumb" rel:bf_bucket="progload" alt=""/>
+ </div>
+ </a>
+ <a class="qe editor-admin" style="display:none" rel:data="{&quot;buzz_id&quot;:&quot;3763007&quot;}"></a>
+ <h2><a href="/jimdalrympleii/windows-broken-scuffles-break-out-at-baltimore-protests" rel:gt_act="buzzing/title" rel:buzz_id="3763007">35 Arrested After Windows Are Broken And Clashes Break Out At Baltimore Protests</a></h2>
+ </li>
+ </ul>
+ </div>
+ <div class="footer" style="margin-bottom: 35px;">
+ <a class="button2" rel:gt_act="morenews/more-buzz" href="/news">More News ›</a>
+ </div>
+ <script type="text/javascript">
+ var promoted_switch = function() {
+ if (typeof(promoted_match) != 'undefined' && $(promoted_match)) {
+ $(promoted_match).hide();
+ $('promoted-extra-hidden').show();
+ }
+ }
+ promoted_switch();
+ </script>
+ </div>
+ <!-- UNIT:Morenews generated on 9:22:22, 4/27/2015 -->
+ <!-- \morenews -->
+ <div>
+ <!-- X---NOW-BUZZING---X -@- /plugin/nowbuzzing/v:1.0 -->
+ <div class="section block bf_dom fr js-rightcol--control" rel:bf_bucket="abtest" rel:ab_test="bpage_sticking_rightcol" rel:gt_cat="[ttp]:sidebar/now-buzzing" pound_position="4ldqpjc">
+ <div class="vertical-info-banner">
+ <span class="text">Le buzz du moment</span>
+ <div class="notch"></div>
+ </div>
+ <div class="content">
+ <ul>
+ <script type="text/javascript">
+ var imp_attr_3763815_13 = {
+ "PROMO_IMPRESSION": "13"
+ };
+ var click_attr_3763815_13 = {
+ "PROMO_CLICK": "13"
+ };
+ </script>
+ <li class="post sidebar-post top bf_dom sidebar-post-wide" rel:bf_bucket="track" track="{&quot;c&quot;:&quot;7FOPAA7&quot;,&quot;u&quot;:&quot;7CBJA47&quot;,&quot;buzz&quot;:&quot;le-nepal-avant-et-apres-le-dramatique-seisme-de-ce-week-end&quot;,&quot;user&quot;:&quot;adriensenecat&quot;,&quot;types&quot;:[100],&quot;queries&quot;:[]}" id="promoted-le-nepal-avant-et-apres-le-dramatique-seisme-de-ce-week-end">
+ <a href="/adriensenecat/le-nepal-avant-et-apres-le-dramatique-seisme-de-ce-week-end" rel:gt_act="buzzing/thumb" rel:buzz_id="3763815">
+ <div style="float:left; position:relative;">
+ <img nopin="nopin" src="http://s3-static-ak.buzzfed.com/static/2015-04/27/6/campaign_images/webdr12/le-nepal-avant-et-apres-le-dramatique-seisme-de-c-2-18873-1430131833-3_wide.jpg" rel:bf_image_src="http://s3-static-ak.buzzfed.com/static/2015-04/27/6/campaign_images/webdr12/le-nepal-avant-et-apres-le-dramatique-seisme-de-c-2-18873-1430131833-3_wide.jpg" class="bf_dom thumb" rel:bf_bucket="progload" alt=""/>
+ </div>
+ </a>
+ <a class="qe editor-admin" style="display:none" rel:data="{&quot;buzz_id&quot;:&quot;3763815&quot;}"></a>
+ <h2><a href="/adriensenecat/le-nepal-avant-et-apres-le-dramatique-seisme-de-ce-week-end" rel:gt_act="buzzing/title" rel:buzz_id="3763815">Le Népal avant et après le dramatique séisme de ce week-end</a></h2>
+ </li>
+ <script type="text/javascript">
+ var imp_attr_3754380_13 = {
+ "PROMO_IMPRESSION": "13"
+ };
+ var click_attr_3754380_13 = {
+ "PROMO_CLICK": "13"
+ };
+ </script>
+ <li class="post sidebar-post bf_dom sidebar-post-wide" rel:bf_bucket="track" track="{&quot;c&quot;:&quot;7FNABP7&quot;,&quot;u&quot;:&quot;7AQFKR7&quot;,&quot;buzz&quot;:&quot;les-relations-au-debut-et-apres-deux-ans&quot;,&quot;user&quot;:&quot;remeepatel&quot;,&quot;types&quot;:[100],&quot;queries&quot;:[]}" id="promoted-les-relations-au-debut-et-apres-deux-ans">
+ <a href="/remeepatel/les-relations-au-debut-et-apres-deux-ans" rel:gt_act="buzzing/thumb" rel:buzz_id="3754380">
+ <div style="float:left; position:relative;">
+ <img nopin="nopin" src="http://s3-static-ak.buzzfed.com/static/2015-04/16/10/campaign_images/webdr03/les-relations-au-debut-vs-apres-deux-ans-2-12797-1429193278-36_wide.jpg" rel:bf_image_src="http://s3-static-ak.buzzfed.com/static/2015-04/16/10/campaign_images/webdr03/les-relations-au-debut-vs-apres-deux-ans-2-12797-1429193278-36_wide.jpg" class="bf_dom thumb" rel:bf_bucket="progload" alt=""/>
+ </div>
+ </a>
+ <a class="qe editor-admin" style="display:none" rel:data="{&quot;buzz_id&quot;:&quot;3754380&quot;}"></a>
+ <h2><a href="/remeepatel/les-relations-au-debut-et-apres-deux-ans" rel:gt_act="buzzing/title" rel:buzz_id="3754380">Les relations au début VS après deux ans</a></h2>
+ </li>
+ <script type="text/javascript">
+ var imp_attr_3752639_13 = {
+ "PROMO_IMPRESSION": "13"
+ };
+ var click_attr_3752639_13 = {
+ "PROMO_CLICK": "13"
+ };
+ </script>
+ <li class="post sidebar-post bf_dom sidebar-post-wide" rel:bf_bucket="track" track="{&quot;c&quot;:&quot;7FN0X67&quot;,&quot;u&quot;:&quot;79OCLI7&quot;,&quot;buzz&quot;:&quot;13-photos-impressionnantes-de-femmes-qui-accouchent-a-la-mai&quot;,&quot;user&quot;:&quot;agustinacaferri&quot;,&quot;types&quot;:[100],&quot;queries&quot;:[]}" id="promoted-13-photos-impressionnantes-de-femmes-qui-accouchent-a-la-mai">
+ <a href="/agustinacaferri/13-photos-impressionnantes-de-femmes-qui-accouchent-a-la-mai" rel:gt_act="buzzing/thumb" rel:buzz_id="3752639">
+ <div style="float:left; position:relative;">
+ <img nopin="nopin" src="http://s3-static-ak.buzzfed.com/static/2015-04/15/6/campaign_images/webdr14/13-photos-impressionnantes-de-femmes-qui-accouche-2-2246-1429095089-16_wide.jpg" rel:bf_image_src="http://s3-static-ak.buzzfed.com/static/2015-04/15/6/campaign_images/webdr14/13-photos-impressionnantes-de-femmes-qui-accouche-2-2246-1429095089-16_wide.jpg" class="bf_dom thumb" rel:bf_bucket="progload" alt=""/>
+ </div>
+ </a>
+ <a class="qe editor-admin" style="display:none" rel:data="{&quot;buzz_id&quot;:&quot;3752639&quot;}"></a>
+ <h2><a href="/agustinacaferri/13-photos-impressionnantes-de-femmes-qui-accouchent-a-la-mai" rel:gt_act="buzzing/title" rel:buzz_id="3752639">13 photos impressionnantes de femmes qui accouchent à domicile au Brésil</a></h2>
+ </li>
+ <li class="bf-widget post sidebar-post bf_dom lede--stacked gpt" style="display:none;" id="BF_WIDGET_6" rel:bf_ad_position="6">
+ <div id="bf-item-6-1" class="bf-item lede">
+ <div class="partner-sash">Sponsorisé</div>
+ <div id="div-gpt-ad-6" style="position:absolute;overflow:hidden;z-index:-1"></div>
+ <script type="text/javascript">
+ if (AD_DESIGN == 'gpt' && !BF_STATIC.buzz_wide) {
+ loadGPTAd({
+ 'wid': 6,
+ 'sidebar': 1
+ });
+ }
+ </script>
+ <a rel:gt_act="dfp/thumb" rel:gt_label="partner" href="" class="bf-url lede__media" rel:gtrack_id="dfp_ad"><img nopin="nopin" class="bf-image-widestory" src="data:image/gif;base64,R0lGODlhAQABAPAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" height="119" width="338"/></a>
+ <h2 class="bf-item-title lede__title"><a href="" class="bf-url bf-name lede__link" rel:gtrack_id="dfp_ad" rel:bf_truncate="100" rel:gt_act="dfp/title" rel:gt_label="partner"></a></h2>
+ </div>
+ </li>
+ <script type="text/javascript">
+ (function() {
+ var AD = document.getElementById('BF_WIDGET_' + 6) || document.getElementById('BF_IFRAME_' + 6);
+ if (AB_AD_TEST && AD && AD_DESIGN) {
+ AD.className = AD.className + " " + AD_DESIGN;
+ }
+ })()
+ </script>
+ <script type="text/javascript">
+ if (AD_DESIGN != 'gpt') {
+
+ if (!window['win8AdCall']) {
+ window['win8AdCall'] = function() { /* do nothing */ };
+ }
+ var ad_tag = 'http://ad.doubleclick.net/N6556/adj/' + BF_DFP_SITE + BF_DFP_ZONE + ';wid=6;posnum=2;sz=3x3;pos=sidebar;tile=6;' + BF_DFP_KVS + ';' + BF_TAG + win8AdCall() + '';
+ if (typeof AD_DESIGN != 'undefined') {
+ ad_tag += ';abtest=' + AD_DESIGN + ';'
+ }
+
+ //Loreal MUC channel
+ if (window.location.search.match('loreal_feed=1') && BF_STATIC.tt_page === "Buzz") {
+ ad_tag += 'loreal_feed=1;'
+ }
+
+ ad_tag += 'poe=' + BF_REFERER + ';';
+ ad_tag += 'ord=' + BF_DFP_ORD + '?';
+
+ ad_tag += ';large_images=1?';
+
+ if (ad_tag) {
+ if (!('wid=6;posnum=2;sz=3x3;pos=sidebar;tile=6').match(/pos=300x250/) && null !== window.location.search.match("skipdfp")) {
+ window.addEventListener('load', function() {
+ var query = (typeof String.prototype.toQueryParams != 'undefined') ? window.location.search.toQueryParams() : $.deparam.querystring();
+ var ad_user = (query['skipdfp']) ? query['skipdfp'] : 'boost';
+ var extra_params = (/bigstory/.test('wid=6;posnum=2;sz=3x3;pos=sidebar;tile=6')) ? '&flex_medium=bigstory' : '';
+ local_ad_call(6, ad_user, extra_params);
+ })
+ } else {
+ if (!BF_STATIC.bf_test_mode || document.cookie.match('sel2_ad') !== null) {
+ document.write('&lt;' + 'scr' + 'ipt type="text/javascr' + 'ipt" src="' + ad_tag + '">&lt;\/scr' + 'ipt' + '>');
+ } else {
+ console.info('disable DFP (dfp_tags.tt)');
+ }
+ }
+ }
+
+ if (null !== window.location.search.match("adtest") && console !== undefined && typeof ad_tag != "undefined") console.log(ad_tag);
+ }
+ </script>
+ <script type="text/javascript">
+ var imp_attr_3749666_13 = {
+ "PROMO_IMPRESSION": "13"
+ };
+ var click_attr_3749666_13 = {
+ "PROMO_CLICK": "13"
+ };
+ </script>
+ <li class="post sidebar-post bf_dom sidebar-post-wide" rel:bf_bucket="track" track="{&quot;c&quot;:&quot;7FMKV37&quot;,&quot;u&quot;:&quot;76NMVN7&quot;,&quot;buzz&quot;:&quot;14-choses-les-plus-sadiques-imposees-aux-sims&quot;,&quot;user&quot;:&quot;jamiejones&quot;,&quot;types&quot;:[100],&quot;queries&quot;:[]}" id="promoted-14-choses-les-plus-sadiques-imposees-aux-sims">
+ <a href="/jamiejones/14-choses-les-plus-sadiques-imposees-aux-sims" rel:gt_act="buzzing/thumb" rel:buzz_id="3749666">
+ <div style="float:left; position:relative;">
+ <img nopin="nopin" src="http://s3-static-ak.buzzfed.com/static/2015-04/14/10/campaign_images/webdr13/les-14-choses-les-plus-sadiques-quon-ait-pu-infli-2-14077-1429021136-14_wide.jpg" rel:bf_image_src="http://s3-static-ak.buzzfed.com/static/2015-04/14/10/campaign_images/webdr13/les-14-choses-les-plus-sadiques-quon-ait-pu-infli-2-14077-1429021136-14_wide.jpg" class="bf_dom thumb" rel:bf_bucket="progload" alt=""/>
+ </div>
+ </a>
+ <a class="qe editor-admin" style="display:none" rel:data="{&quot;buzz_id&quot;:&quot;3749666&quot;}"></a>
+ <h2><a href="/jamiejones/14-choses-les-plus-sadiques-imposees-aux-sims" rel:gt_act="buzzing/title" rel:buzz_id="3749666">Les 14 choses les plus sadiques qu’on ait pu infliger aux Sims</a></h2>
+ </li>
+ <li class="bf-widget post sidebar-post bf_dom lede--stacked gpt" style="display:none;" id="BF_WIDGET_7" rel:bf_ad_position="6">
+ <div id="bf-item-7-1" class="bf-item lede">
+ <div class="partner-sash">Sponsorisé</div>
+ <div id="div-gpt-ad-7" style="position:absolute;overflow:hidden;z-index:-1"></div>
+ <script type="text/javascript">
+ if (AD_DESIGN == 'gpt' && !BF_STATIC.buzz_wide) {
+ loadGPTAd({
+ 'wid': 7,
+ 'sidebar': 1
+ });
+ }
+ </script>
+ <a rel:gt_act="dfp/thumb" rel:gt_label="partner" href="" class="bf-url lede__media" rel:gtrack_id="dfp_ad"><img nopin="nopin" class="bf-image-widestory" src="data:image/gif;base64,R0lGODlhAQABAPAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" height="119" width="338"/></a>
+ <h2 class="bf-item-title lede__title"><a href="" class="bf-url bf-name lede__link" rel:gtrack_id="dfp_ad" rel:bf_truncate="100" rel:gt_act="dfp/title" rel:gt_label="partner"></a></h2>
+ </div>
+ </li>
+ <script type="text/javascript">
+ (function() {
+ var AD = document.getElementById('BF_WIDGET_' + 7) || document.getElementById('BF_IFRAME_' + 7);
+ if (AB_AD_TEST && AD && AD_DESIGN) {
+ AD.className = AD.className + " " + AD_DESIGN;
+ }
+ })()
+ </script>
+ <script type="text/javascript">
+ if (AD_DESIGN != 'gpt') {
+
+ if (!window['win8AdCall']) {
+ window['win8AdCall'] = function() { /* do nothing */ };
+ }
+ var ad_tag = 'http://ad.doubleclick.net/N6556/adj/' + BF_DFP_SITE + BF_DFP_ZONE + ';wid=7;posnum=3;sz=3x3;pos=sidebar;tile=7;' + BF_DFP_KVS + ';' + BF_TAG + win8AdCall() + '';
+ if (typeof AD_DESIGN != 'undefined') {
+ ad_tag += ';abtest=' + AD_DESIGN + ';'
+ }
+
+ //Loreal MUC channel
+ if (window.location.search.match('loreal_feed=1') && BF_STATIC.tt_page === "Buzz") {
+ ad_tag += 'loreal_feed=1;'
+ }
+
+ ad_tag += 'poe=' + BF_REFERER + ';';
+ ad_tag += 'ord=' + BF_DFP_ORD + '?';
+
+ ad_tag += ';large_images=1?';
+
+ if (ad_tag) {
+ if (!('wid=7;posnum=3;sz=3x3;pos=sidebar;tile=7').match(/pos=300x250/) && null !== window.location.search.match("skipdfp")) {
+ window.addEventListener('load', function() {
+ var query = (typeof String.prototype.toQueryParams != 'undefined') ? window.location.search.toQueryParams() : $.deparam.querystring();
+ var ad_user = (query['skipdfp']) ? query['skipdfp'] : 'boost';
+ var extra_params = (/bigstory/.test('wid=7;posnum=3;sz=3x3;pos=sidebar;tile=7')) ? '&flex_medium=bigstory' : '';
+ local_ad_call(7, ad_user, extra_params);
+ })
+ } else {
+ if (!BF_STATIC.bf_test_mode || document.cookie.match('sel2_ad') !== null) {
+ document.write('&lt;' + 'scr' + 'ipt type="text/javascr' + 'ipt" src="' + ad_tag + '">&lt;\/scr' + 'ipt' + '>');
+ } else {
+ console.info('disable DFP (dfp_tags.tt)');
+ }
+ }
+ }
+
+ if (null !== window.location.search.match("adtest") && console !== undefined && typeof ad_tag != "undefined") console.log(ad_tag);
+ }
+ </script>
+ <script type="text/javascript">
+ var imp_attr_3760955_13 = {
+ "PROMO_IMPRESSION": "13"
+ };
+ var click_attr_3760955_13 = {
+ "PROMO_CLICK": "13"
+ };
+ </script>
+ <li class="post sidebar-post bf_dom sidebar-post-wide" rel:bf_bucket="track" track="{&quot;c&quot;:&quot;7FO9U67&quot;,&quot;u&quot;:&quot;7CEIDY7&quot;,&quot;buzz&quot;:&quot;49-choses-que-ceux-qui-ont-grandi-avec-kd2a-noublieront-jama&quot;,&quot;user&quot;:&quot;jenniferpadjemi&quot;,&quot;types&quot;:[100],&quot;queries&quot;:[]}" id="promoted-49-choses-que-ceux-qui-ont-grandi-avec-kd2a-noublieront-jama">
+ <a href="/jenniferpadjemi/49-choses-que-ceux-qui-ont-grandi-avec-kd2a-noublieront-jama" rel:gt_act="buzzing/thumb" rel:buzz_id="3760955">
+ <div style="float:left; position:relative;">
+ <img nopin="nopin" src="http://s3-static-ak.buzzfed.com/static/2015-04/25/4/campaign_images/webdr11/49-choses-que-ceux-qui-ont-grandi-avec-kd2a-noubl-2-19465-1429948902-10_wide.jpg" rel:bf_image_src="http://s3-static-ak.buzzfed.com/static/2015-04/25/4/campaign_images/webdr11/49-choses-que-ceux-qui-ont-grandi-avec-kd2a-noubl-2-19465-1429948902-10_wide.jpg" class="bf_dom thumb" rel:bf_bucket="progload" alt=""/>
+ </div>
+ </a>
+ <a class="qe editor-admin" style="display:none" rel:data="{&quot;buzz_id&quot;:&quot;3760955&quot;}"></a>
+ <h2><a href="/jenniferpadjemi/49-choses-que-ceux-qui-ont-grandi-avec-kd2a-noublieront-jama" rel:gt_act="buzzing/title" rel:buzz_id="3760955">49 choses que ceux qui ont grandi avec KD2A n’oublieront jamais</a></h2>
+ </li>
+ <script type="text/javascript">
+ var imp_attr_3762016_13 = {
+ "PROMO_IMPRESSION": "13"
+ };
+ var click_attr_3762016_13 = {
+ "PROMO_CLICK": "13"
+ };
+ </script>
+ <li class="post sidebar-post bf_dom sidebar-post-wide" rel:bf_bucket="track" track="{&quot;c&quot;:&quot;7FOFKH7&quot;,&quot;u&quot;:&quot;7CEIDY7&quot;,&quot;buzz&quot;:&quot;pourquoi-tu-fais-ca-shonda&quot;,&quot;user&quot;:&quot;jenniferpadjemi&quot;,&quot;types&quot;:[100],&quot;queries&quot;:[]}" id="promoted-pourquoi-tu-fais-ca-shonda">
+ <a href="/jenniferpadjemi/pourquoi-tu-fais-ca-shonda" rel:gt_act="buzzing/thumb" rel:buzz_id="3762016">
+ <div style="float:left; position:relative;">
+ <img nopin="nopin" src="http://s3-static-ak.buzzfed.com/static/2015-04/24/16/campaign_images/webdr01/les-43-fois-ou-greys-anatomy-a-fait-couler-toutes-2-4861-1429906011-15_wide.jpg" rel:bf_image_src="http://s3-static-ak.buzzfed.com/static/2015-04/24/16/campaign_images/webdr01/les-43-fois-ou-greys-anatomy-a-fait-couler-toutes-2-4861-1429906011-15_wide.jpg" class="bf_dom thumb" rel:bf_bucket="progload" alt=""/>
+ </div>
+ </a>
+ <a class="qe editor-admin" style="display:none" rel:data="{&quot;buzz_id&quot;:&quot;3762016&quot;}"></a>
+ <h2><a href="/jenniferpadjemi/pourquoi-tu-fais-ca-shonda" rel:gt_act="buzzing/title" rel:buzz_id="3762016">Les 43 fois où Grey’s Anatomy a fait couler toutes les larmes de notre corps</a></h2>
+ </li>
+ <script type="text/javascript">
+ var imp_attr_3759579_13 = {
+ "PROMO_IMPRESSION": "13"
+ };
+ var click_attr_3759579_13 = {
+ "PROMO_CLICK": "13"
+ };
+ </script>
+ <li class="post sidebar-post bf_dom sidebar-post-wide" rel:bf_bucket="track" track="{&quot;c&quot;:&quot;7FO2EM7&quot;,&quot;u&quot;:&quot;7CBJA47&quot;,&quot;buzz&quot;:&quot;photos-marine-le-pen-contre-le-systeme&quot;,&quot;user&quot;:&quot;adriensenecat&quot;,&quot;types&quot;:[100],&quot;queries&quot;:[]}" id="promoted-photos-marine-le-pen-contre-le-systeme">
+ <a href="/adriensenecat/photos-marine-le-pen-contre-le-systeme" rel:gt_act="buzzing/thumb" rel:buzz_id="3759579">
+ <div style="float:left; position:relative;">
+ <img nopin="nopin" src="http://s3-static-ak.buzzfed.com/static/2015-04/22/4/campaign_images/webdr08/8-photos-de-marine-le-pen-luttant-contre-le-syste-2-15395-1429693174-4_wide.jpg" rel:bf_image_src="http://s3-static-ak.buzzfed.com/static/2015-04/22/4/campaign_images/webdr08/8-photos-de-marine-le-pen-luttant-contre-le-syste-2-15395-1429693174-4_wide.jpg" class="bf_dom thumb" rel:bf_bucket="progload" alt=""/>
+ </div>
+ </a>
+ <a class="qe editor-admin" style="display:none" rel:data="{&quot;buzz_id&quot;:&quot;3759579&quot;}"></a>
+ <h2><a href="/adriensenecat/photos-marine-le-pen-contre-le-systeme" rel:gt_act="buzzing/title" rel:buzz_id="3759579">8 photos de Marine Le Pen luttant contre le système</a></h2>
+ </li>
+ <script type="text/javascript">
+ var imp_attr_3760563_13 = {
+ "PROMO_IMPRESSION": "13"
+ };
+ var click_attr_3760563_13 = {
+ "PROMO_CLICK": "13"
+ };
+ </script>
+ <li class="post sidebar-post bf_dom sidebar-post-wide" rel:bf_bucket="track" track="{&quot;c&quot;:&quot;7FO7PY7&quot;,&quot;u&quot;:&quot;74N9GW7&quot;,&quot;buzz&quot;:&quot;oui-ceci-est-mon-metier&quot;,&quot;user&quot;:&quot;floperry&quot;,&quot;types&quot;:[100],&quot;queries&quot;:[]}" id="promoted-oui-ceci-est-mon-metier">
+ <a href="/floperry/oui-ceci-est-mon-metier" rel:gt_act="buzzing/thumb" rel:buzz_id="3760563">
+ <div style="float:left; position:relative;">
+ <img nopin="nopin" src="http://s3-static-ak.buzzfed.com/static/2015-04/23/8/campaign_images/webdr08/23-reactions-que-toute-personne-ayant-travaille-d-2-11535-1429792966-16_wide.jpg" rel:bf_image_src="http://s3-static-ak.buzzfed.com/static/2015-04/23/8/campaign_images/webdr08/23-reactions-que-toute-personne-ayant-travaille-d-2-11535-1429792966-16_wide.jpg" class="bf_dom thumb" rel:bf_bucket="progload" alt=""/>
+ </div>
+ </a>
+ <a class="qe editor-admin" style="display:none" rel:data="{&quot;buzz_id&quot;:&quot;3760563&quot;}"></a>
+ <h2><a href="/floperry/oui-ceci-est-mon-metier" rel:gt_act="buzzing/title" rel:buzz_id="3760563">23 réactions que toute personne ayant travaillé dans un centre d’appels reconnaîtra</a></h2>
+ </li>
+ <script type="text/javascript">
+ var imp_attr_3759567_13 = {
+ "PROMO_IMPRESSION": "13"
+ };
+ var click_attr_3759567_13 = {
+ "PROMO_CLICK": "13"
+ };
+ </script>
+ <li class="post sidebar-post bf_dom sidebar-post-wide" rel:bf_bucket="track" track="{&quot;c&quot;:&quot;7FO2CA7&quot;,&quot;u&quot;:&quot;7AEY4T7&quot;,&quot;buzz&quot;:&quot;15-emojis-qui-manquent-e-toutes-les-meilleures-ami&quot;,&quot;user&quot;:&quot;crystalro&quot;,&quot;types&quot;:[100],&quot;queries&quot;:[]}" id="promoted-15-emojis-qui-manquent-e-toutes-les-meilleures-ami">
+ <a href="/crystalro/15-emojis-qui-manquent-e-toutes-les-meilleures-ami" rel:gt_act="buzzing/thumb" rel:buzz_id="3759567">
+ <div style="float:left; position:relative;">
+ <img nopin="nopin" src="http://s3-static-ak.buzzfed.com/static/2015-04/22/4/campaign_images/webdr03/15-emojis-qui-manquent-a-toutes-les-meilleures-am-2-404-1429691042-15_wide.jpg" rel:bf_image_src="http://s3-static-ak.buzzfed.com/static/2015-04/22/4/campaign_images/webdr03/15-emojis-qui-manquent-a-toutes-les-meilleures-am-2-404-1429691042-15_wide.jpg" class="bf_dom thumb" rel:bf_bucket="progload" alt=""/>
+ </div>
+ </a>
+ <a class="qe editor-admin" style="display:none" rel:data="{&quot;buzz_id&quot;:&quot;3759567&quot;}"></a>
+ <h2><a href="/crystalro/15-emojis-qui-manquent-e-toutes-les-meilleures-ami" rel:gt_act="buzzing/title" rel:buzz_id="3759567">15 emojis qui manquent à toutes les meilleures amies</a></h2>
+ </li>
+ <script type="text/javascript">
+ var imp_attr_3759586_13 = {
+ "PROMO_IMPRESSION": "13"
+ };
+ var click_attr_3759586_13 = {
+ "PROMO_CLICK": "13"
+ };
+ </script>
+ <li class="post sidebar-post bf_dom sidebar-post-wide" rel:bf_bucket="track" track="{&quot;c&quot;:&quot;7FO2FZ7&quot;,&quot;u&quot;:&quot;759SBH7&quot;,&quot;buzz&quot;:&quot;choses-que-les-filles-des-annees-2000-faisaient-19dho&quot;,&quot;user&quot;:&quot;jemimaskelley&quot;,&quot;types&quot;:[100],&quot;queries&quot;:[]}" id="promoted-choses-que-les-filles-des-annees-2000-faisaient-19dho">
+ <a href="/jemimaskelley/choses-que-les-filles-des-annees-2000-faisaient-19dho" rel:gt_act="buzzing/thumb" rel:buzz_id="3759586">
+ <div style="float:left; position:relative;">
+ <img nopin="nopin" src="http://s3-static-ak.buzzfed.com/static/2015-04/23/7/campaign_images/webdr13/23-choses-que-toutes-les-filles-des-annees-2000-f-2-22479-1429786805-12_wide.jpg" rel:bf_image_src="http://s3-static-ak.buzzfed.com/static/2015-04/23/7/campaign_images/webdr13/23-choses-que-toutes-les-filles-des-annees-2000-f-2-22479-1429786805-12_wide.jpg" class="bf_dom thumb" rel:bf_bucket="progload" alt=""/>
+ </div>
+ </a>
+ <a class="qe editor-admin" style="display:none" rel:data="{&quot;buzz_id&quot;:&quot;3759586&quot;}"></a>
+ <h2><a href="/jemimaskelley/choses-que-les-filles-des-annees-2000-faisaient-19dho" rel:gt_act="buzzing/title" rel:buzz_id="3759586">23 choses que toutes les filles des années 2000 faisaient</a></h2>
+ </li>
+ </ul>
+ </div>
+ <div class="footer" style="margin-bottom: 35px;">
+ <a class="button2" rel:gt_act="buzzing/more-buzz" href="/?country=fr">Plus de Buzz ›</a>
+ </div>
+ <script type="text/javascript">
+ var promoted_switch = function() {
+ if (typeof(promoted_match) != 'undefined' && $(promoted_match)) {
+ $(promoted_match).hide();
+ $('promoted-extra-hidden').show();
+ }
+ }
+ promoted_switch();
+ </script>
+ </div>
+ <!-- UNIT:Nowbuzzing generated on 9:23:23, 4/27/2015 -->
+ </div>
+ <!-- \nowbuzzing -->
+ </div>
+ <div id="more_stuff">
+ <div class="lower-infinite-content" pound_position="4ldqpja">
+ <ul id="lower-more-content" rel:plugin_version="1.0"></ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="clear"></div>
+ <footer class="page-footer-wrapper">
+ <div class="page-footer" rel:gt_cat="[ttp]:footer">
+ <ul class="list--unstyled footer-menu footer-menu--main">
+ <li>
+ <a class="footer-menu__item" rel:gt_act="advertise" href="/advertise">advertise</a>
+ </li>
+ <li>
+ <a class="footer-menu__item" rel:gt_act="jobs" href="/about/jobs">jobs</a>
+ </li>
+ <li>
+ <a class="footer-menu__item" rel:gt_act="mobile" href="/tools/mobile-ios">mobile</a>
+ </li>
+ <li>
+ <a class="footer-menu__item" rel:gt_act="newsletter" href="/tools/email">newsletter</a>
+ </li>
+ <li>
+ <div class="country_switch country-toggle bf_dom" rel:bf_bucket_data="{'country_switch_menu':{}}">
+ US Edition
+ <span class="fa fa-chevron-down"></span>
+ <ul class="country_switch_menu country-toggle-menu list--unstyled" style="display:none;">
+ <li><a class="bf_dom" rel:bf_bucket_data="{'country_switch':{ 'r': '/?country=us' }}">US</a></li>
+ <li><a class="bf_dom" rel:bf_bucket_data="{'country_switch':{ 'r': '/?country=uk' }}">UK</a></li>
+ <li><a class="bf_dom" rel:bf_bucket_data="{'country_switch':{ 'r': '/?country=au' }}">Australia</a></li>
+ <li><a class="bf_dom" rel:bf_bucket_data="{'country_switch':{ 'r': '/?country=br' }}">Brasil</a></li>
+ <li><a class="bf_dom" rel:bf_bucket_data="{'country_switch':{ 'r': '/?country=de' }}">Deutschland</a></li>
+ <li><a class="bf_dom" rel:bf_bucket_data="{'country_switch':{ 'r': '/?country=es' }}">Español</a></li>
+ <li><a class="bf_dom" rel:bf_bucket_data="{'country_switch':{ 'r': '/?country=fr' }}">France</a></li>
+ <li><a class="bf_dom" rel:bf_bucket_data="{'country_switch':{ 'r': '/?country=in' }}">India</a></li>
+ <li><a class="bf_dom" rel:bf_bucket_data="{'country_switch':{ 'r': '/?country=mx' }}">México</a></li>
+ </ul>
+ </div>
+ </li>
+ </ul>
+ <ul class="list--inline footer-menu footer-menu--sub">
+ <li>
+ <a class="footer-menu__item" rel:gt_act="about" href="/about">about</a>
+ </li>
+ <li>
+ <a class="footer-menu__item" rel:gt_act="press" href="/press">press</a>
+ </li>
+ <li>
+ <a class="footer-menu__item" rel:gt_act="RSS" href="/tools/more">RSS</a>
+ </li>
+ <li>
+ <a class="footer-menu__item" rel:gt_act="privacy" href="/about/privacy">privacy</a>
+ </li>
+ <li>
+ <a class="footer-menu__item" rel:gt_act="user terms" href="/about/useragreement">user terms</a>
+ </li>
+ <li>
+ <a class="footer-menu__item" rel:gt_act="ad Choices" href="/about/privacy#adchoices">ad Choices</a>
+ </li>
+ <li>
+ <a class="footer-menu__item" rel:gt_act="Help" href="/help/faq">Help</a>
+ </li>
+ <li>
+ <a class="footer-menu__item" rel:gt_act="Contact" href="/about/contact">Contact</a>
+ </li>
+ </ul>
+ <ul class="list--unstyled footer-copyright">
+ <li>
+ <p> © 2015 BuzzFeed, Inc </p>
+ </li>
+ <li>
+ <a rel:gt_act="made-in-nyc" class="made-in-nyc-logo" href="http://wearemadeinny.com/" target="_blank"></a>
+ </li>
+ </ul>
+ </div>
+ </footer>
+ <div id="suplist-modal-confirm" class="suplist-modal effect-fade-in-scale">
+ <div class="modal-content">
+ <div class="overlay-text">Are you sure you want to remove this item? You can\'t restore it with "Cancel" button!</div>
+ <div class="buttons">
+ <div class="bf_dom btn modal-cancel" rel:bf_bucket="confirm_cancel">NO</div>
+ <div class="bf_dom btn confirm-ok" rel:bf_bucket="confirm_ok">YES</div>
+ </div>
+ </div>
+ </div>
+ <div id="suplist-modal-spinner" class="suplist-modal effect-fade-in-scale">
+ <div class="modal-content">
+ <div class="overlay-text"></div>
+ <div class="waiting">Please wait...</div>
+ <div class="loader loader-6"></div>
+ <div class="buttons hidden">
+ <div class="bf_dom btn modal-cancel" rel:bf_bucket="spinner_cancel">Cancel</div>
+ </div>
+ </div>
+ </div>
+ <div id="suplist-modal-post-lock" class="suplist-modal effect-fade-in-scale">
+ <div class="modal-content">
+ <div id="post-lock-dialog" rel:gt_cat="[ttp]:special">
+ <div class="post-lock-locked">
+ <div class="post-lock-icon"></div>
+ <div class="headline-2">This Post Is Locked</div>
+ <p>
+ <a href="" class="post-lock-username"></a> has been editing this post since <b class="post-lock-time"></b>.</p>
+ <button class="bf_dom btn confirm-ok" rel:bf_bucket="break_only" rel:gt_act="post-unlock">Unlock and edit anyway</button>
+ </div>
+ <div class="post-lock-unlocked">
+ <div class="post-lock-icon"></div>
+ <div class="headline-2">Uh Oh!</div>
+ <p>
+ <a href="" class="post-lock-username"></a> took your lock at <b class="post-lock-time"></b>.</p>
+ <!-- <button class="bf_dom bf_button bf_submit" rel:bf_bucket="post-lock-duplicate">Save as a new post</button> -->
+ <button class="bf_dom btn confirm-ok" rel:bf_bucket="break_only">Refresh the post</button>
+ </div>
+ <div class="post-lock-error">
+ <div class="post-lock-icon"></div>
+ <div class="headline-2">Super Uh Oh!</div>
+ <p>Something's wrong, a mini-history of this post:</p>
+ <ul id="post-lock-audit">
+ </ul>
+ <button class="bf_dom btn confirm-ok" rel:bf_bucket="reload">Reload the page</button>
+ <br/>
+ </div>
+ <div class="post-view-draft">
+ <button id="quickpost-view-draft-dialog" type="button" class="bf_dom btn confirm-ok quickpost-view-draft" style="display: none;">View Draft</button>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="suplist-modal-content-type" class="suplist-modal effect-fade-in-scale">
+ <div class="modal-content">
+ <div class="overlay-text">What type of post are you making?</div>
+ <div class="buttons">
+ <div class="bf_dom btn content-type-btn longform"><span class="icon bf_dom" rel:bf_bucket_data="{'suplist_modal_content_format':{'format_type':'long'}}">New Article</span></div>
+ <div class="bf_dom btn content-type-btn list"><span class="icon bf_dom" rel:bf_bucket_data="{'suplist_modal_content_format':{'format_type':'none'}}">List</span></div>
+ <div class="bf_dom btn content-type-btn breaking breaking_post_summary acl_control breaking_post"><span class="icon bf_dom" rel:bf_bucket_data="{'suplist_modal_content_format':{'format_type':'breaking'}}">Breaking</span></div>
+ </div>
+ </div>
+ </div>
+ <div id="suplist_disable_overlay"></div>
+ <div class="bf_canvas" id="user-image-edit" style="display:none">
+ <div class="bf_overlay_mask"></div>
+ <div class="bf_dialog">
+ <div class="bf_dialog_header"><span class="title">Crop Image</span> <a href="javascript:;" onclick="BF_UI.closeDialog('user-image-edit');return false;" class="close">×</a></div>
+ <div class="bf_dialog_content">
+ <iframe data-value="Buzz" id="user-image-edit-iframe" src="about:blank" name="iframe_upload" scrolling="no" allowtransparency="true" height="465" width="800"></iframe>
+ </div>
+ </div>
+ </div>
+ <div class="bf_canvas" id="super-image-edit" style="display:none">
+ <div class="bf_overlay_mask"></div>
+ <div class="bf_dialog">
+ <div class="bf_dialog_content">
+ <iframe data-value="Buzz" id="super-image-edit-iframe" name="iframe_upload_super" scrolling="no" allowtransparency="true" height="600" width="800"></iframe>
+ </div>
+ </div>
+ </div>
+ <div id="modal-super-image-edit" class="modal thumbnail-modal cropperbody superpost" style="display:none">
+ <div class="modal-header">
+ <span class="modal-headline upload-title">Upload an Image</span>
+ <span class="modal-headline crop-title">Crop Image</span>
+ <span class="modal-headline thumbs-title">Are These Thumbnails Okay?</span>
+ <a class="modal-close" id="image-cancel" href="javascript:;">×</a>
+ </div>
+ <div class="modal-body" id="modal-super-image-edit-container">
+ </div>
+ <div class="modal-footer" id="save-button">
+ <button id="preview-thumbs" class="hidden bf_button bf_submit">Preview Thumbnails</button>
+ <button id="approve-thumbs" class="hidden bf_button bf_submit">Save Thumbnails</button>
+ <span class="bf_button" id="modal-insert-upload-button">Choose a new image</span>
+ <button id="save-image" class="hidden bf_button bf_submit">Save</button>
+ </div>
+ </div>
+ <div id="social-sharing-box" style="display:none;" rel:gt_cat="Buzz:social-share-box">
+ <div id="fill">
+ <div id="sharing-box-caption">
+ I know, right? Will your friends agree?
+ </div>
+ <textarea id="sharing-message"></textarea>
+ <a href="javascript:;" class="grey button2" onclick="javascript:$('social-sharing-box').hide();" rel:gt_act="facebook-box/close" id="social-close-btn" style="line-height:1;font-weight:normal;font-size:14px;">Close</a>
+ <input value="Post to Facebook" rel:gt_act="share/facebook" rel:gt_label="post/wall" class="submit button2" id="sharing-box-submit" style="float:right;margin-right:5px;font-size: 14px;padding: 3px 8px;" type="button"/>
+ </div>
+ <div id="arrowBorder" class="arrow"></div>
+ <div id="arrowFill" class="arrow"></div>
+ </div>
+ <div id="pin_bg" style="display: none"></div>
+ <div id="pin_bd" style="display: none">
+ <div style="display: block; height: 50px;"></div>
+ <div id="pin_header">
+ <span></span>
+ <a id="pin_close" onclick="if($('pin_bg')) $('pin_bg').hide(); if($('pin_bd')) $('pin_bd').hide(); window.scrollTo(0, bpage.lastScrollPos);">Cancel</a>
+ </div>
+ <span id="pin_img_container"></span>
+ <noembed id="pin_img_template">
+ <span class="pin_img">
+ <img style="#{img_style}" src="#{img_src}" width="#{img_width}px" height="#{img_height}px"/>
+ </span>
+ <cite>
+ <span class="pin_mask"></span>
+ <span>#{img_n_width}x#{img_n_height}</span>
+ </cite>
+ <img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" onload="sharing.buttons.pinterest({
+ replace: this,
+ type: 'pin_image',
+ media: '#{media}',
+ description: '#{desc}'
+ });" />
+ </noembed>
+ </div>
+ <div id="share_email" class="section sticky-popup" style="display:none;">
+ <div id="share_email_cancel" class="bf_dom" rel:bf_bucket="share-email-cancel">x</div>
+ <form id="share_email_form" class="v signin-or-signup share_email_popup">
+ <div class="share_box_header headline-1">Email this to a friend</div>
+ <div id="share_email_message" class="message" style="display:none"></div>
+ <fieldset>
+ <input name="bid" value="3758406" id="bid" type="hidden"/>
+ <input name="sub_buzz_id" value="" id="sub_buzz_id" type="hidden"/>
+ <div class="field">
+ <input placeholder="Friend's email (separate multiple with comma)" rel:gt_act="ignore" class="text" name="b2" value="" id="b2" type="text"/>
+ </div>
+ <div class="field">
+ <input placeholder="Your email" rel:gt_act="ignore" class="text" name="bf" value="" id="bf" type="text"/>
+ </div>
+ <div class="field">
+ <textarea id="note" rel:gt_act="email/note" name="note" cols="10" rows="5">Hey, I saw this on BuzzFeed and thought of you.</textarea>
+ </div>
+ <div class="bf_dom catcha_service" style="display:none" rel:bf_bucket="catcha-email_a_friend">
+ <div class="share_box_header headline-1">Please enter the CAT-CHA</div>
+ <img nopin="nopin" src="data:image/gif;base64,R0lGODlhAQABAPAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="/>
+ <span class="catcha_question share_box_header headline-1">Catcha question...</span>
+ <div class="field">
+ <input class="text" style="width:320px;height:22px" name="catcha_answer" value="" onblur="bf_catcha.catcha_answer=this.value" type="text"/>
+ </div>
+ </div>
+ <div class="field">
+ <input id="share_email_submit" rel:gt_act="ignore" name="submit" value="Send It!" class="button2 grey submit action bf_dom" rel:bf_bucket_data="{'share-email-submit':{'vertical':'UKNews'}}" type="button"/>
+ </div>
+ </fieldset>
+ </form>
+ <form id="newsletter_signup_form" style="display:none;" class="share_email_popup" rel:gt_cat="[ttp]:Newsletters">
+ <div id="empty_sign_up_message" class="hidden">
+ <p><span class="error_icon"></span>Please select the newsletters you'd like to receive.</p>
+ </div>
+ <div id="email_sent_success_message"><span class="success_icon"></span>
+ <p>Your email has been sent!</p>
+ </div>
+ <p>Get our awesome newsletter at <span id="from_address"></span></p>
+ <div id="newsletter_signups">
+ <div class="email_box">
+ <div class="email_box_wrapper">
+ <div id="buzzfeed_signup" class="sprite checkOn checkBox pointer bf_dom" rel:bf_bucket_data="{'newsletter_checkbox':{'id':'buzzfeed_signup'}}" rel:gt_act="buzzfeed"></div>
+ <div class="logo_block bf_dom" rel:bf_bucket_data="{'newsletter_checkbox':{'id':'buzzfeed_signup'}}">
+ <div class="BFLogo pointer">BuzzFeeᴅ</div>
+ <div class="email_frequency">7x per week</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <fieldset>
+ <div class="field form-controls pull-right">
+ <input id="email_signup" value="Sign me up!" class="button2 grey submit action bf_dom" rel:bf_bucket="email-signup" rel:gt_act="newsletters/signup" type="button"/>
+ <div class="plain_cancel">
+ <a id="email_cancel" href="" onclick="return false" class="bf_dom" rel:bf_bucket="share-email-cancel">No thanks</a>
+ </div>
+ </div>
+ </fieldset>
+ </form>
+ <div id="share_email_error" class="section social-message sticky-popup share_email_popup" style="display:none">
+ <p id="share_email_error_text">Oops! We had a problem sending your message. Please try again later.</p>
+ </div>
+ <div id="share_email_confirm" class="section social-message sticky-popup share_email_popup" style="display:none">
+ <span class="success_icon"></span>
+ <p id="share_email_confirm_text">Great! You'll get your first email soon.</p>
+ </div>
+ </div>
+ <!-- #share_email -->
+ <div style="display: none" id="shares-copy-link" class="sticky-popup">
+ <div class="arrow arrowBorder"></div>
+ <div class="arrow arrowFill"></div>
+ <div class="share_box_header headline-1">Share This Link</div>
+ <input class="email_copy_link_text" value="http://www.buzzfeed.com/markdistefano/diet-pills-burns-up" type="text"/>
+ </div>
+ <script src="http://s3-ak.buzzfed.com/static/js/User_and_Buzz_concat_footer.js?v=201504241415" type="text/javascript" ref:jsconf="true"></script>
+ <script src="http://s3-ak.buzzfed.com/static/js/General_concat_footer.js?v=201504241415" type="text/javascript" ref:jsconf="true"></script>
+ <noscript><img src="http://b.scorecardresearch.com/p?c1=2&c2=6768151&c4=buzzfeed.com/markdistefano/diet-pills-burns-up" /></noscript>
+ <noscript><img src='http://pixel.quantserve.com/pixel/p-3aud4J6uA4Z6Y.gif' height='1' width='1' alt='Quantcast' /></noscript>
+ <div id="FB_HiddenContainer" style="position:absolute; top:-10000px; left:-10000px; width:0px; height:0px;"></div>
+ <script src="http://s3-ak.buzzfed.com/static/js/public/bpage-pinterest-nopin.js?v=201504241415" type="text/javascript"></script>
+ <script type="text/javascript">
+ var uagent = this.agent = navigator.userAgent.toLowerCase();
+
+
+ var post_success_cookie = BFW_Util.getCookie('qp_post_success');
+ if (post_success_cookie && location.pathname.replace(/^\/bf2/, '').replace(/^\/h[\d]+\/h[A-Z0-9]+/i, '') == post_success_cookie) {
+ $('post_launch_success').show();
+ BFW_Util.deleteCookie('qp_post_success');
+ }
+
+
+ var buzz_profile = {
+ category: 'UKNews',
+ badges: [],
+ nsfw: 0
+ };
+ buzz_profile.badges.push('viral');
+
+
+
+
+
+
+
+
+
+
+ sailthru_horizon = {
+ "domain": "horizon.buzzfeed.com",
+ "tags": ["UKNews", "--ad-noads", "--primarykeyword-diet pills", "inquests", "online shopping", "uk", "viral"]
+ };
+ sailthru_horizon_track(sailthru_horizon);
+
+
+
+
+
+
+
+
+
+
+ if (typeof bf_contribute !== "undefined") {
+ bf_contribute.enableForm('contribute-text-form');
+ bf_contribute.buttonToggle('text-contribute-activate');
+ }
+ </script>
+ <script type="text/javascript">
+ (function() {
+ window._fbds = window._fbds || {};
+ _fbds.pixelId = 224284281076687;
+ var e = document.createElement("script");
+ e.async = true;
+ e.src = ("https:" == document.location.protocol ? "https:" : "http:") + "//connect.facebook.net/en_US/fbds.js";
+ var t = document.getElementsByTagName("script")[0];
+ t.parentNode.insertBefore(e, t)
+ })();
+ window._fbq = window._fbq || [];
+ window._fbq.push(["track", "PixelInitialized", {}]);
+ window._fbq.push(['track', 'Section', {
+ 'section': "UKNews" ? "UKNews" : buzzDetails.category_name
+ }]);
+ </script>
+ <noscript><img height="1" width="1" border="0" alt="" style="display:none" src="https://www.facebook.com/tr?id=224284281076687&amp;ev=NoScript" /></noscript>
+ <script>
+ (function() {
+ var _fbq = window._fbq || (window._fbq = []);
+ if (!_fbq.loaded) {
+ var fbds = document.createElement('script');
+ fbds.async = true;
+ fbds.src = '//connect.facebook.net/en_US/fbds.js';
+ var s = document.getElementsByTagName('script')[0];
+ s.parentNode.insertBefore(fbds, s);
+ _fbq.loaded = true;
+ }
+ _fbq.push(['addPixelId', '260954170738952']);
+ })();
+ window._fbq = window._fbq || [];
+ window._fbq.push(['track', 'PixelInitialized', {}]);
+ </script>
+ <noscript><img height="1" width="1" alt="" style="display:none" src="https://www.facebook.com/tr?id=260954170738952&amp;ev=PixelInitialized" /></noscript>
+ <script src="//platform.twitter.com/oct.js" type="text/javascript"></script>
+ <script type="text/javascript">
+ twttr.conversion.trackPid('l4lgt');
+ </script>
+ <noscript>
+ <img height="1" width="1" style="display:none;" alt="" src="https://analytics.twitter.com/i/adsct?txn_id=l4lgt&p_id=Twitter" />
+ <img height="1" width="1" style="display:none;" alt="" src="//t.co/i/adsct?txn_id=l4lgt&p_id=Twitter" />
+ </noscript>
+ <div id="buzz-body" style="display:none"></div>
+ <script>
+ try {
+ bf_site_speed.dom_time_spent('Buzz Body Load');
+ } catch (err) {
+ console.log(err);
+ }
+ </script>
+ <script type="text/javascript">
+ var pixelDataLogix = new Image();
+ pixelDataLogix.src = 'http://h.nexac.com/e/a-1177/s-2113/c-386/g-1107.xgi?pkey=bijo15bijox40&chpcm=&chpsg=&chpcr=' + BF_STATIC.campaignid + '&chpck=&rand=' + (Math.random() * 100000000000000000) + '&chpth=';
+ </script>
+ <iframe tabindex="-1" style="width: 1px; height: 1px; position: absolute; top: -100px;" src="https://accounts.google.com/o/oauth2/postmessageRelay?parent=http%3A%2F%2Fwww.buzzfeed.com#rpctoken=416601695&amp;forcesecure=1" id="oauth2relay2056065538" name="oauth2relay2056065538"></iframe>
+ <script src="/static/js/adobe/adobe_tracking.js" type="text/javascript"></script>
+ <div id="fb-root">
+ <script async="" src="http://connect.facebook.net/en_US/sdk.js"></script>
+ </div>
+ <div style="" class="show" id="back_to_top"></div>
+ <div class="bookmark-white-overlay" style="display: none;">
+ <div id="bookmark-popup" style="display: none;">
+ <a href="javascript:;" class="bookmark-popup-close bf_dom fa fa-times" rel:bf_bucket="close_bookmark_popup"></a>
+ <div class="bookmark-popup-content"></div>
+ </div>
+ </div>
+</body>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/challenges/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/challenges/expected-images.json
new file mode 100644
index 000000000..c9eb0acac
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/challenges/expected-images.json
@@ -0,0 +1,3 @@
+[
+ "http:\/\/fakehost\/img\/cha\/placeholders\/placeholder_1000x750.jpg"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/challenges/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/challenges/expected-metadata.json
new file mode 100644
index 000000000..363110945
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/challenges/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "par Alexandria Sage et Lisa Girion",
+ "Image": "http:\/\/fakehost\/img\/cha\/placeholders\/placeholder_1000x750.jpg",
+ "Title": "Les motivations du tueur de Las Vegas demeurent floues",
+ "SiteName": "Challenges"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/challenges/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/challenges/expected.html
new file mode 100644
index 000000000..195bdd271
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/challenges/expected.html
@@ -0,0 +1,35 @@
+<div itemprop="articlebody">
+ <p>par Alexandria Sage et Lisa Girion</p>
+<p>LAS VEGAS, Nevada (Reuters) - La police américaine peinait mardi à établir les motivations qui ont poussé un retraité de 64 ans à tirer sur la foule depuis une chambre d'hôtel de Las Vegas, faisant 59 morts et 527 blessés dans la plus meurtrière fusillade de l'histoire des Etats-Unis.</p>
+<p>Le tireur, qui s'est donné la mort peu avant l'arrivée de police, a été identifié comme Stephen Paddock, un individu apparemment sans histoire, inconnu des services de police et vivant dans un lotissement en périphérie de la ville. Le seul fait notable le concernant était une infraction au code de la route.</p>
+<p>Paddock n'avait pas de passé militaire et n'était pas fiché pour d'éventuels troubles psychologiques, des comportements antisociaux ou l'expression d'opinions politiques et religieuses extrémistes sur les réseaux sociaux.</p>
+<p>L'homme, qui était semble-t-il un pratiquant assidu des jeux de hasards, avait amassé 42 armes à feu et s'est servi de certaines d'entre elles pour tirer depuis la fenêtre de sa chambre, au 32e étage de l'hôtel Mandalay Bay, sur une foule de 22.000 personnes qui assistaient à un concert de country dimanche soir.</p>
+<p>Vingt-trois armes ont été retrouvées dans sa chambre du Mandalay Bay, dont des fusils d'assaut et des armes altérées pour opérer de manière automatique. Un stock de nitrate d'ammonium, un engrais susceptible d'être utilisé dans l'élaboration d'explosifs, a été retrouvé dans sa voiture. </p>
+<p>"C'était un homme malade, un type dément", a déclaré Donald Trump devant la presse, sans fournir de précisions. "Beaucoup de problèmes, j'imagine. On examine son cas de manière très attentive parce qu'on a affaire à un individu très très malade", a ajouté le président américain.</p>
+<p>Interrogé sur un éventuel lien entre le meurtrier et une organisation terroriste, Donald Trump n'a pas répondu. La police estime, en l'état de l'enquête, que l'homme a agi seul.</p>
+<p>"On n'a aucune idée de la nature de ses croyances religieuses", a déclaré Joseph Lombardo, shérif du comté de Clark. "On ne peut pas comprendre ce qui se passe dans la tête d'un psychopathe", a-t-il ajouté.</p>
+
+<p>PISTE D'UN INDIVIDU ISOLE</p>
+<p>Le groupe djihadiste Etat islamique a revendiqué l'attaque dans un communiqué qui affirme que le suspect s'était récemment converti à l'islam, mais un responsable américain s'est dit très sceptique sur cette revendication et a évoqué des "antécédents psychiatriques".</p>
+<p>Aucun lien avec une organisation terroriste internationale n'a été établi pour le moment, a indiqué de son côté le FBI, tandis que la CIA a invité à la prudence.</p>
+<p>Si la piste d'un individu isolé semble s'imposer, les enquêteurs souhaitent entendre la petite amie de Stephen Paddock avec laquelle il vivait, Marilou Danley, actuellement en voyage à l'étranger, sans doute au Japon.</p>
+<p>La police s'intéresse également "à d'autres individus" qui seraient impliqués dans la vente des armes que possédait Stephen Paddock.</p>
+<p>Le massacre commis dimanche soir est le plus meurtrier de l'histoire des Etats-Unis, dépassant celui perpétré par un homme lié à l'EI l'an passé dans une boîte de nuit homosexuelle d'Orlando en Floride. L'assaillant avait tué 49 personnes.</p>
+<p>Stephen Paddock ne présentait aucune des caractéristiques habituelles de ce genre de tueur de masse, qui sont le plus souvent des hommes jeunes en proie à des troubles psychologiques, disent les experts.</p>
+<p>L'homme a mené une existence paisible, occupant des emplois de concierge et d'employé de l'industrie aéronautique et ayant résidé dans plusieurs régions du sud-est et de l'ouest des Etats-Unis.</p>
+<p>Il s'était installé, il y a quelques années, dans un lotissement pour retraités du Nevada, à environ une heure de voiture de Las Vegas où il pouvait s'adonner à sa passion pour le jeu et pour les casinos.</p>
+<p>Dix-neuf armes, des explosifs et quantité de munitions y ont été retrouvés, a annoncé lundi soir le shérif du comté.</p>
+
+<p>PAS L'HEURE D'UN DÉBAT SUR LES ARMES</p>
+<p>Un mandat a été émis pour fouiller une seconde maison située à Reno, une ville du Nevada à plus de 600 km au nord-ouest de Las Vegas, a annoncé lundi soir l'adjoint au shérif Todd Fasulo.</p>
+<p>A Mesquite, l'armurier local Chris Sullivan a confirmé dans un communiqué que Paddock comptait parmi ses clients et qu'il avait passé toutes les "vérifications et procédures" nécessaires à l'achat d'armes à feu.</p>
+<p>Contacté par Reuters, le frère de l'assaillant présumé, Eric Paddock, s'est dit "horrifié" et a présenté ses condoléances aux victimes. Son frère n'appartenait à aucun mouvement religieux ou politique, a-t-il ajouté, précisant qu'il n'avait pas à sa connaissance d'antécédents psychiatriques. </p>
+<p>Le père des deux hommes avait commis plusieurs braquages de banque et a un temps fait partie des fugitifs les plus recherchés par le FBI.</p>
+<p>Depuis sa maison d'Orlando, en Floride, devant laquelle se sont pressés des journalistes, Eric Paddock a décrit en outre son frère comme un "type riche" qui aimait jouer au poker en ligne, partir en croisière et qui coulait une retraite "paisible" dans le Nevada après des années passées en Floride.</p>
+<p>Cette nouvelle tuerie a ranimé le débat sur le contrôle des armes à feu aux Etats-Unis, une mesure contre laquelle le président Trump s'était fermement opposé lors de la campagne présidentielle l'an passé.</p>
+<p>"Nous discuterons d'une loi sur les armes en temps voulu", a commenté l'ancien homme d'affaires devant des journalistes à la Maison blanche. La présidence avait indiqué dès lundi que le débat sur ce sujet était, selon elle, "prématuré", répondant ainsi aux demandes d'élus démocrates.</p>
+
+<p> (Avec Jonathan Allen, Chris Michaud et Frank McGurty à New York, Susan Cornwell et Mark Hosenball à Washington, Ali Abdelaty au Caire, Tangi Salaün, Julie Carriat et Pierre Sérisier pour le service français)</p>
+
+
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/challenges/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/challenges/source.html
new file mode 100644
index 000000000..b6f0267e8
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/challenges/source.html
@@ -0,0 +1,1744 @@
+<!doctype html>
+<html lang="fr">
+ <head>
+ <meta charset="UTF-8">
+ <title>Les motivations du tueur de Las Vegas demeurent floues - Challenges.fr</title>
+ <meta name="description" content="">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
+ <link rel="canonical" href="https://www.challenges.fr/monde/les-motivations-du-tueur-de-las-vegas-demeurent-floues_503396"> <meta property="og:site_name" content="Challenges" /><meta property="og:type" content="article" /><meta property="og:url" content="https://www.challenges.fr/monde/les-motivations-du-tueur-de-las-vegas-demeurent-floues_503396" /><meta property="og:title" content="Les motivations du tueur de Las Vegas demeurent floues" /><meta property="og:image" content="/img/cha/placeholders/placeholder_1000x750.jpg" /><meta property="og:article:published_time" content="2017-10-02T06:31:29.000Z" /><meta property="og:article:author" content="" /><meta property="og:article:section" content="Monde" /><meta property="fb:pages" content="79566127213" /><meta name="twitter:card" content="summary_large_image"><meta name="twitter:site" content="@Challenges"><meta name="twitter:creator" content=""><meta name="twitter:title" content="Les motivations du tueur de Las Vegas demeurent floues"><meta name="twitter:image" content="/img/cha/placeholders/placeholder_1000x750.jpg">
+ <meta name="robots" content="index, follow, noodp, noarchive">
+ <meta name="theme-color" content="#333333">
+ <meta name="apple-itunes-app" content="app-id=377380727">
+ <link rel="shortcut icon" type="image/png" href="https://www.challenges.fr/img/cha/favicon/icon32.png">
+ <link rel="apple-touch-icon" href="https://www.challenges.fr/icons/apple-touch-icon.png">
+ <link rel="apple-touch-icon" sizes="57x57" href="https://www.challenges.fr/icons/apple-touch-icon-57x57.png">
+ <link rel="apple-touch-icon" sizes="72x72" href="https://www.challenges.fr/icons/apple-touch-icon-72x72.png">
+ <link rel="apple-touch-icon" sizes="76x76" href="https://www.challenges.fr/icons/apple-touch-icon-76x76.png">
+ <link rel="apple-touch-icon" sizes="114x114" href="https://www.challenges.fr/icons/apple-touch-icon-114x114.png">
+ <link rel="apple-touch-icon" sizes="120x120" href="https://www.challenges.fr/icons/apple-touch-icon-120x120.png">
+ <link rel="apple-touch-icon" sizes="144x144" href="https://www.challenges.fr/icons/apple-touch-icon-144x144.png">
+ <link rel="apple-touch-icon" sizes="152x152" href="https://www.challenges.fr/icons/apple-touch-icon-152x152.png">
+ <link rel="apple-touch-icon" sizes="180x180" href="https://www.challenges.fr/icons/apple-touch-icon-180x180.png">
+ <meta http-equiv="refresh" content="900">
+ <link rel="stylesheet" type="text/css" href="https://www.challenges.fr/css/article_cha.css">
+
+ <link rel="alternate" type="application/rss+xml" href="https://www.challenges.fr/monde/rss.xml" />
+ </head>
+ <body class="" itemscope itemtype="http://schema.org/WebPage" data-account-base="https://secure.challenges.fr">
+ <header>
+ <menu class="header-top">
+ <div class="out_left"><a href="https://www.challenges.fr/actualite-en-continu">Fil info</a></div>
+ <div class="in">
+ <div class="h-social">
+ <a href="https://www.facebook.com/challenges" target="_blank" class="fb social-btn-grey">Facebook</a>
+ <a href="https://twitter.com/Challenges" target="_blank" class="tw social-btn-grey">Twitter</a>
+ <a href="https://plus.google.com/+challenges" target="_blank" class="gg social-btn-grey">Google +</a>
+ <a href="https://www.linkedin.com/company/80846" target="_blank" class="ln social-btn-grey">Linkedin</a>
+ <a href="https://www.challenges.fr/rss" target="_blank" class="rss social-btn-grey">RSS</a>
+ </div>
+ <div class="h-links">
+ <a href="https://www.sciencesetavenir.fr" target="_blank" class="sm">Sciences et Avenir</a>
+ </div>
+ <div class="h-tools">
+ <a href="https://secure.challenges.fr/mon-compte/newsletters/" class="sm nl">Newsletter</a>
+ <a href="https://www.challenges.fr/services" class="sm app">Services</a>
+ <a href="http://challenges-magazine-digital.challenges.fr/profil/liseuse.html" class="sm shop">Magazine</a>
+ </div>
+ <div class="h-connect">
+ <div class="h-moncompte user-show" style="display:none">
+ <a href="javascript:void(0)" class="sm">Mon compte</a>
+ <div>
+ <a href="https://secure.challenges.fr/mon-compte" class="sm">Mon profil</a>
+ <a href="https://secure.challenges.fr/logout?redirect=/monde/les-motivations-du-tueur-de-las-vegas-demeurent-floues_503396" class="sm logout">Déconnexion</a>
+ </div>
+ </div>
+ <a href="https://secure.challenges.fr/login" class="sm user-hide">Connexion</a>
+ <a href="http://logi150.xiti.com/go.click?xts=562191&amp;p=PromoAbonnement::Blocs_promo&amp;clic=S&amp;type=click&amp;url=https://www.challenges.fr/abonnements" class="sm abo">Abonnez-vous</a>
+ </div>
+ <a href="javascript:void(0)" class="h-search"></a>
+ </div>
+</menu>
+
+ <div class="search-bloc">
+ <div class="fond"></div>
+ <div class="s">
+ <div class="in">
+ <form action="https://www.challenges.fr/search/">
+ <input type="text" name="search" placeholder="Rechercher sur Challenges.fr">
+ <a href="javascript:void(0)" class="close"></a>
+ </form>
+ </div>
+ </div>
+ </div>
+ <nav class="xs-visible">
+ <div class="in">
+ <a href="javascript:void(0)" class="menu-xs-btn"><span class="line"></span></a>
+ <a href="http://logi150.xiti.com/go.click?xts=562191&amp;p=PromoAbonnement::Blocs_promo&amp;clic=S&amp;type=click&amp;url=https://www.challenges.fr/abonnements" class="abo">S'abonner</a>
+ <a href="javascript:void(0)" class="share"></a>
+ </div>
+ </nav>
+ <div class="header-sm">
+ <menu class="main-nav">
+ <ul class="menu">
+ <li class="dropdown">
+ <ul class="dropdown-menu">
+ <li class="menu-btn"><a href="javascript:void(0)" class="menu-xs-btn"><span class="line"></span><span class="text">Menu</span></a></li>
+ <li class="li-logo"><a href="https://www.challenges.fr" class="logo"></a></li>
+ <li class="li-search"><a href="javascript:void(0)" class="search"></a></li>
+ <li class="li-share sm-visible"><a href="javascript:void(0)" class="share"></a></li>
+ <li class="abo"><a href="http://logi150.xiti.com/go.click?xts=562191&amp;p=PromoAbonnement::Blocs_promo&amp;clic=S&amp;type=click&amp;url=https://www.challenges.fr/abonnements">Abonnez-vous</a></li>
+ <li class="connect sm-visible"><a href="https://secure.challenges.fr/login">Connexion</a></li>
+ </ul>
+ </li>
+ </ul>
+ </menu>
+ </div>
+ <div class="header-banner">
+ <div class="in">
+ <div id="pub_oreille_gauche" class="pubs pubs-l"></div>
+ <a href="https://www.challenges.fr" class="logo">
+ <img src="https://www.challenges.fr/img/cha/logo.svg" alt="Challenges, l&#39;actualité de l&#39;économie, de la finance, de l&#39;entreprise et les échos de la Bourse" style="width:270px; height:76px;">
+ </a>
+ <div id="pub_oreille_droite" class="pubs pubs-r"></div>
+ </div>
+ </div>
+
+ <nav class="main-nav" role="navigation" aria-label="primary">
+ <div class="in">
+ <ul class="menu">
+ <li id="home" class="dropdown d-rbrq-home">
+ <a href="https://www.challenges.fr/"><span class="picto"></span></a>
+ </li>
+ <li id="entreprise" class="dropdown">
+ <a href="https://www.challenges.fr/entreprise/"><span>Entreprise</span></a>
+ </li>
+ <li id="economie" class="dropdown">
+ <a href="https://www.challenges.fr/economie/"><span>Economie</span></a>
+ </li>
+ <li id="politique" class="dropdown">
+ <a href="https://www.challenges.fr/politique/"><span>Politique</span></a>
+ </li>
+ <li id="monde" class="dropdown d-rbrq-on">
+ <a href="https://www.challenges.fr/monde/"><span>Monde</span></a>
+ <div class="rbrq-common">
+ <ul class="dropdown-menu">
+ <li><a href="https://www.challenges.fr/monde/europe/">Europe</a></li>
+ <li><a href="https://www.challenges.fr/monde/etats-unis/">Etats-Unis</a></li>
+ <li><a href="https://www.challenges.fr/monde/russie/">Russie</a></li>
+ <li><a href="https://www.challenges.fr/monde/moyen-orient/">Moyen-orient</a></li>
+ <li><a href="https://www.challenges.fr/monde/afrique/">Afrique</a></li>
+ <li><a href="https://www.challenges.fr/monde/ameriques/">Amériques</a></li>
+ <li><a href="https://www.challenges.fr/monde/asie-pacifique/">Asie-Pacifique</a></li>
+ <li><a href="https://www.challenges.fr/monde/japon/">Japon</a></li>
+ <li><a href="https://www.challenges.fr/monde/brics/">Brics</a></li>
+ <li><a href="https://www.challenges.fr/monde/ocde/">OCDE</a></li>
+ <li><a href="http://www.challenges.fr/galeries-photos/monde/">Galeries photos</a></li>
+ <li class="more" style="display:none"><ul></ul></li>
+ </ul>
+ </div>
+ </li>
+ <li id="medias" class="dropdown">
+ <a href="https://www.challenges.fr/media/"><span>Médias</span></a>
+ </li>
+ <li id="tech" class="dropdown">
+ <a href="https://www.challenges.fr/high-tech/"><span>Tech</span></a>
+ </li>
+ <li id="auto" class="dropdown">
+ <a href="https://www.challenges.fr/automobile/"><span>Auto</span></a>
+ </li>
+ <li id="emploi" class="dropdown">
+ <a href="https://www.challenges.fr/emploi/"><span>Emploi</span></a>
+ </li>
+ <li id="patrimoine" class="dropdown">
+ <a href="https://www.challenges.fr/patrimoine/"><span>Patrimoine</span></a>
+ </li>
+ <li id="luxe" class="dropdown">
+ <a href="https://www.challenges.fr/luxe/"><span>Luxe</span></a>
+ </li>
+ </ul>
+ </div>
+ </nav>
+</header>
+
+<nav class="menu-xs">
+ <form action="/search/">
+ <div class="in">
+ <input type="text" name="search" placeholder="Rechercher">
+ </div>
+ </form>
+ <div class="items">
+ <a href="https://www.challenges.fr/">Accueil</a>
+ <div class="bloc rbrq bloc-line">
+ <a class="rbrq-entreprise-color" href="https://www.challenges.fr/entreprise/">Entreprise</a><a class="rbrq-economie-color" href="https://www.challenges.fr/economie/">Economie</a><a class="rbrq-politique-color" href="https://www.challenges.fr/politique/">Politique</a><a class="rbrq-monde-color" href="https://www.challenges.fr/monde/">Monde</a><a class="rbrq-medias-color" href="https://www.challenges.fr/media/">Médias</a><a class="rbrq-tech-color" href="https://www.challenges.fr/high-tech/">Tech</a><a class="rbrq-auto-color" href="https://www.challenges.fr/automobile/">Auto</a><a class="rbrq-emploi-color" href="https://www.challenges.fr/emploi/">Emploi</a><a class="rbrq-patrimoine-color" href="https://www.challenges.fr/patrimoine/">Patrimoine</a><a class="rbrq-luxe-color" href="https://www.challenges.fr/luxe/">Luxe</a> <a href="https://www.challenges.fr/classements/">Classements</a> <a href="https://www.challenges.fr/videos/">Vidéos</a>
+ <a href="https://www.challenges.fr/services">Services</a>
+ </div>
+ </div>
+</nav>
+
+<header class="header-sticky header-shadow">
+ <nav class="main-nav" role="navigation" aria-label="secondary">
+ <ul class="menu">
+ <li class="dropdown">
+ <ul class="dropdown-menu">
+ <li class="menu-btn"><a href="javascript:void(0)" class="menu-xs-btn"><span class="line"></span><span class="text">Menu</span></a></li>
+ <li class="li-logo"><a href="https://www.challenges.fr" class="logo"></a></li>
+ <li><a href="https://www.challenges.fr/">Home</a></li><li><a href="https://www.challenges.fr/entreprise/">Entreprise</a></li><li><a href="https://www.challenges.fr/economie/">Economie</a></li><li><a href="https://www.challenges.fr/politique/">Politique</a></li><li><a href="https://www.challenges.fr/monde/">Monde</a></li><li><a href="https://www.challenges.fr/media/">Médias</a></li><li><a href="https://www.challenges.fr/high-tech/">Tech</a></li><li><a href="https://www.challenges.fr/automobile/">Auto</a></li><li><a href="https://www.challenges.fr/emploi/">Emploi</a></li><li><a href="https://www.challenges.fr/patrimoine/">Patrimoine</a></li><li><a href="https://www.challenges.fr/luxe/">Luxe</a></li>
+ <li class="more" style="display:none"><ul></ul></li>
+ <li class="li-search"><a href="https://www.challenges.fr/search/" class="search"></a></li>
+ <li class="li-share sm-visible"><a href="javascript:void(0)" class="share"></a></li>
+ <li class="user-show"><a href="https://secure.challenges.fr/mon-compte">Mon compte</a></li>
+ <li class="abo user-hide"><a href="http://logi150.xiti.com/go.click?xts=562191&amp;p=PromoAbonnement::Blocs_promo&amp;clic=S&amp;type=click&amp;url=https://www.challenges.fr/abonnements">Abonnez-vous</a></li>
+ <li class="connect sm-visible user-hide"><a href="https://secure.challenges.fr/login">Connexion</a></li>
+ </ul>
+ </li>
+ </ul>
+ </nav>
+</header>
+
+
+
+ <div id="pub_habillage"></div>
+ <div class="pub-container-haut">
+ <div id="pub_banniere_haute" class="pub"></div>
+ </div>
+
+
+ <div class="container
+
+
+
+ ">
+
+
+
+<main class="container-in container-main container-main-article container-in-border-top
+
+ "
+ data-id="503396">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<section class="highlights-top rbrq-common-a ">
+ <div>
+
+
+ <a href="https://www.challenges.fr/emploi/formation/universites-ces-50-masters-d-excellence-qui-font-de-l-ombre-aux-grandes-ecoles_499659">50 Masters</a>
+
+
+ <a href="https://www.challenges.fr/classement/arnault-bettencourt-mulliez-dumas-dassault-les-10-plus-grosses-fortunes-de-france-en-2017_483193">500 FORTUNES 2017</a>
+
+
+ <a href="https://www.challenges.fr/emploi/special-mba/le-top-30-des-global-mba-les-mba-s-adaptent-face-a-la-concurrence_477536">TOP 30 des Global MBA</a>
+
+
+ <a href="http://lesclesdedemain.lemonde.fr/">Les clés de demain</a>
+
+
+ <a href="https://www.challenges.fr/emploi/management/revolution-work-veut-revolutionner-le-travail-une-initiative-du-quartier-de-la-defense_513149">Revolution@work</a>
+
+ </div>
+</section>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <section class="content "
+ itemscope itemtype="http://schema.org/NewsArticle">
+
+ <meta itemprop="mainEntityOfPage" content="https://www.challenges.fr/monde/les-motivations-du-tueur-de-las-vegas-demeurent-floues_503396">
+ <div itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
+ <meta itemprop="name" content="Challenges">
+ <div itemprop="logo" itemscope itemtype="http://schema.org/ImageObject">
+ <meta itemprop="url" content="https://www.challenges.fr/img/cha/pictos/logo.png">
+ </div>
+ </div>
+
+
+
+ <div class="article-share">
+
+ <div>
+
+ <span class="msg sm-visible xs-visible">Partager</span>
+ <a href="https://www.facebook.com/sharer/sharer.php?u=https://www.challenges.fr/monde/les-motivations-du-tueur-de-las-vegas-demeurent-floues_503396" onclick="window.open(this.href,'','menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=600'); return false;" class="fb" title="Partager sur Facebook" rel="nofollow">
+ <svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewbox="0 0 13.1 24" style="enable-background:new 0 0 13.1 24;" xml:space="preserve" class="svg replaced-svg">
+<path d="M12.4,13l0.7-4H8V6.2C8,4.9,8.4,4,10.2,4L13,4V0.2C12.6,0.2,11.8,0,10.2,0C6.8,0,4,2.2,4,6V9H0v4h4v11h4V13H12.4z"/>
+</svg>
+ </a>
+ <a href="https://twitter.com/share?url=https://www.challenges.fr/monde/les-motivations-du-tueur-de-las-vegas-demeurent-floues_503396&via=Challenges&text=Les%20motivations%20du%20tueur%20de%20Las%20Vegas%20demeurent%20floues" onclick="window.open(this.href,'','menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=600');return false;" class="tw" rel="nofollow">
+ <svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewbox="0 0 274 223" style="enable-background:new 0 0 274 223;" xml:space="preserve" class="svg replaced-svg">
+<g>
+ <path d="M86,223c-31.7,0-61.2-9.3-86-25.2c4.4,0.5,8.9,0.8,13.4,0.8c26.3,0,50.5-9,69.7-24c-24.5-0.5-45.3-16.7-52.4-39
+ c3.4,0.7,6.9,1,10.6,1c5.1,0,10.1-0.7,14.8-2c-25.7-5.2-45-27.8-45-55c0-0.2,0-0.5,0-0.7c7.6,4.2,16.2,6.7,25.4,7
+ c-15-10.1-25-27.2-25-46.7c0-10.3,2.8-19.9,7.6-28.2C46.7,45,88,67.4,134.6,69.7c-1-4.1-1.5-8.4-1.5-12.8c0-31,25.1-56.1,56.1-56.1
+ c16.1,0,30.7,6.8,40.9,17.7C243,16,255,11.4,265.8,4.9C261.6,18,252.8,29,241.2,36c11.3-1.4,22.2-4.4,32.2-8.8
+ c-7.5,11.2-17,21.1-28,29c0.1,2.4,0.2,4.8,0.2,7.3C245.6,137.5,189.1,223,86,223"/>
+</g>
+</svg>
+ </a>
+ <a href="https://plus.google.com/share?url=https://www.challenges.fr/monde/les-motivations-du-tueur-de-las-vegas-demeurent-floues_503396" title="Partager sur Google Plus" onclick="window.open(this.href,'','menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=600'); return false;" class="gg" rel="nofollow">
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewbox="0 0 318 202" style="enable-background:new 0 0 318 202;" xml:space="preserve" class="svg replaced-svg">
+<g>
+ <g>
+ <path d="M101,81v40c0,0,38.8-0.1,54.6-0.1C147,146.9,133.7,161,101,161c-33.1,0-59-26.9-59-60c0-33.1,25.9-60,59-60
+ c17.5,0,28.8,6.2,39.2,14.7c8.3-8.3,7.6-9.5,28.8-29.5C151,10,127.2,0,101,0C45.2,0,0,45.2,0,101c0,55.8,45.2,101,101,101
+ c83.4,0,103.8-72.6,97-121C178.3,81,101,81,101,81z M283,83V48h-25v35h-36v25h36v36h25v-36h35V83H283z"/>
+ </g>
+</g>
+</svg>
+ </a>
+ <a href="https://www.linkedin.com/shareArticle?url=https://www.challenges.fr/monde/les-motivations-du-tueur-de-las-vegas-demeurent-floues_503396" title="Partager sur LinkedIn" onclick="window.open(this.href,'','menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=600');return false;" class="ln" rel="nofollow">
+ <svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewbox="-205 83.2 430.1 430.1" style="enable-background:new -205 83.2 430.1 430.1;" xml:space="preserve" class="svg replaced-svg">
+<g>
+ <path id="LinkedIn" d="M225.1,344.7v159h-92.2V355.4c0-37.3-13.3-62.7-46.7-62.7c-25.5,0-40.6,17.1-47.3,33.7
+ c-2.4,5.9-3.1,14.2-3.1,22.5v154.9h-92.2c0,0,1.2-251.3,0-277.3h92.2v39.3c-0.2,0.3-0.4,0.6-0.6,0.9h0.6v-0.9
+ c12.3-18.9,34.1-45.8,83.1-45.8C179.6,219.9,225.1,259.5,225.1,344.7z M-152.8,92.7c-31.5,0-52.2,20.7-52.2,47.9
+ c0,26.6,20,47.9,51,47.9h0.6c32.2,0,52.2-21.3,52.2-47.9C-101.9,113.4-121.3,92.7-152.8,92.7z M-199.5,503.7h92.2V226.4h-92.2
+ V503.7z"/>
+</g>
+</svg>
+ </a>
+ <span class="count"><span class="share_count_unload" data-url="https%3A%2F%2Fwww.challenges.fr%2Fmonde%2Fles-motivations-du-tueur-de-las-vegas-demeurent-floues_503396">-</span><em>shares</em></span>
+ <a href="javascript:void(0)" class="print"></a>
+ </div>
+
+
+ <div class="coms">
+ <a href="#comments"></a>
+ </div>
+
+
+</div>
+
+
+
+
+
+
+
+ <div class="content-main content-main-full content-article-start">
+
+
+
+<p class="breadcrumb">
+
+
+ <a href="https://www.challenges.fr/">Challenges</a>
+
+ <span class="sep"></span>
+
+
+ <a href="https://www.challenges.fr/monde/">Monde</a>
+
+</p>
+
+
+
+ <div class="article-start">
+
+
+
+
+<div class="article-thematique">
+
+
+
+ <span class="rbrq-monde-color">Monde</span>
+
+ <a href="javascript:void(0)" class="follow-rbrq-btn followed
+ rbrq-monde-border
+ rbrq-monde-svg
+ rbrq-monde-color" style="display: none;">
+
+ <svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewbox="0 0 6 4.6" style="enable-background:new 0 0 6 4.6;" xml:space="preserve" class="svg replaced-svg f1">
+<path d="M2.1,4.6L1.4,3.9L5.3,0L6,0.7L2.1,4.6z"/>
+<path d="M2.4,3.5L1.7,4.2L0,2.5l0.7-0.7L2.4,3.5z"/>
+</svg>
+ <svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewbox="0 0 8.7 8.7" style="enable-background:new 0 0 8.7 8.7;" xml:space="preserve" class="svg replaced-svg f2">
+<path d="M8.7,8L8,8.7l-8-8L0.7,0L8.7,8z"/>
+<path d="M8,0l0.7,0.7l-8,8L0,8L8,0z"/>
+</svg>
+ <span class="f1">Thématique suivie</span>
+ <span class="f2">Ne plus suivre</span>
+ </a>
+
+
+
+</div>
+
+
+
+
+
+
+
+<h1 itemprop="headline">Les motivations du tueur de Las Vegas demeurent floues</h1>
+
+
+ </div>
+
+ </div>
+
+
+
+
+
+ <div class="content-main ">
+
+ <div class="article-start">
+
+<p class="article-infos">
+
+ <span>Par
+
+
+
+
+
+
+ <span class="signature">Reuters</span>
+
+
+
+
+
+
+
+ </span>
+
+
+
+
+
+ le <a href="https://www.challenges.fr/index/2017/10/02/">02.10.2017 à 08h31</a>
+
+
+
+ <meta itemprop="datePublished" content="2017-10-02T06:31:29.000Z">
+
+
+
+
+</p>
+
+
+
+
+
+
+<h2 class="article-chapo" itemprop="description"></h2>
+
+
+
+<div class="article-lire-reactions sm-visible">
+
+ <a href="#comments" class="article-reactions">0 réactions</a>
+
+
+</div>
+
+
+
+
+
+
+ </div>
+
+
+
+
+
+ <div class="xs-visible">
+
+ <a href="#comments" class="article-reactions ">0 réactions</a>
+
+
+ </div>
+
+
+
+
+
+
+
+
+ <article class="container-inside-right">
+
+
+
+
+
+
+ <div class="corps " itemprop="articlebody">
+ <p>par Alexandria Sage et Lisa Girion</p>
+<p>LAS VEGAS, Nevada (Reuters) - La police américaine peinait mardi à établir les motivations qui ont poussé un retraité de 64 ans à tirer sur la foule depuis une chambre d'hôtel de Las Vegas, faisant 59 morts et 527 blessés dans la plus meurtrière fusillade de l'histoire des Etats-Unis.</p>
+<p>Le tireur, qui s'est donné la mort peu avant l'arrivée de police, a été identifié comme Stephen Paddock, un individu apparemment sans histoire, inconnu des services de police et vivant dans un lotissement en périphérie de la ville. Le seul fait notable le concernant était une infraction au code de la route.</p>
+<p>Paddock n'avait pas de passé militaire et n'était pas fiché pour d'éventuels troubles psychologiques, des comportements antisociaux ou l'expression d'opinions politiques et religieuses extrémistes sur les réseaux sociaux.</p>
+<p>L'homme, qui était semble-t-il un pratiquant assidu des jeux de hasards, avait amassé 42 armes à feu et s'est servi de certaines d'entre elles pour tirer depuis la fenêtre de sa chambre, au 32e étage de l'hôtel Mandalay Bay, sur une foule de 22.000 personnes qui assistaient à un concert de country dimanche soir.</p>
+<p>Vingt-trois armes ont été retrouvées dans sa chambre du Mandalay Bay, dont des fusils d'assaut et des armes altérées pour opérer de manière automatique. Un stock de nitrate d'ammonium, un engrais susceptible d'être utilisé dans l'élaboration d'explosifs, a été retrouvé dans sa voiture. </p>
+<p>"C'était un homme malade, un type dément", a déclaré Donald Trump devant la presse, sans fournir de précisions. "Beaucoup de problèmes, j'imagine. On examine son cas de manière très attentive parce qu'on a affaire à un individu très très malade", a ajouté le président américain.</p>
+<p>Interrogé sur un éventuel lien entre le meurtrier et une organisation terroriste, Donald Trump n'a pas répondu. La police estime, en l'état de l'enquête, que l'homme a agi seul.</p>
+<p>"On n'a aucune idée de la nature de ses croyances religieuses", a déclaré Joseph Lombardo, shérif du comté de Clark. "On ne peut pas comprendre ce qui se passe dans la tête d'un psychopathe", a-t-il ajouté.</p>
+<p></p>
+<p>PISTE D'UN INDIVIDU ISOLE</p>
+<p>Le groupe djihadiste Etat islamique a revendiqué l'attaque dans un communiqué qui affirme que le suspect s'était récemment converti à l'islam, mais un responsable américain s'est dit très sceptique sur cette revendication et a évoqué des "antécédents psychiatriques".</p>
+<p>Aucun lien avec une organisation terroriste internationale n'a été établi pour le moment, a indiqué de son côté le FBI, tandis que la CIA a invité à la prudence.</p>
+<p>Si la piste d'un individu isolé semble s'imposer, les enquêteurs souhaitent entendre la petite amie de Stephen Paddock avec laquelle il vivait, Marilou Danley, actuellement en voyage à l'étranger, sans doute au Japon.</p>
+<p>La police s'intéresse également "à d'autres individus" qui seraient impliqués dans la vente des armes que possédait Stephen Paddock.</p>
+<p>Le massacre commis dimanche soir est le plus meurtrier de l'histoire des Etats-Unis, dépassant celui perpétré par un homme lié à l'EI l'an passé dans une boîte de nuit homosexuelle d'Orlando en Floride. L'assaillant avait tué 49 personnes.</p>
+<p>Stephen Paddock ne présentait aucune des caractéristiques habituelles de ce genre de tueur de masse, qui sont le plus souvent des hommes jeunes en proie à des troubles psychologiques, disent les experts.</p>
+<p>L'homme a mené une existence paisible, occupant des emplois de concierge et d'employé de l'industrie aéronautique et ayant résidé dans plusieurs régions du sud-est et de l'ouest des Etats-Unis.</p>
+<p>Il s'était installé, il y a quelques années, dans un lotissement pour retraités du Nevada, à environ une heure de voiture de Las Vegas où il pouvait s'adonner à sa passion pour le jeu et pour les casinos.</p>
+<p>Dix-neuf armes, des explosifs et quantité de munitions y ont été retrouvés, a annoncé lundi soir le shérif du comté.</p>
+<p></p>
+<p>PAS L'HEURE D'UN DÉBAT SUR LES ARMES</p>
+<p>Un mandat a été émis pour fouiller une seconde maison située à Reno, une ville du Nevada à plus de 600 km au nord-ouest de Las Vegas, a annoncé lundi soir l'adjoint au shérif Todd Fasulo.</p>
+<p>A Mesquite, l'armurier local Chris Sullivan a confirmé dans un communiqué que Paddock comptait parmi ses clients et qu'il avait passé toutes les "vérifications et procédures" nécessaires à l'achat d'armes à feu.</p>
+<p>Contacté par Reuters, le frère de l'assaillant présumé, Eric Paddock, s'est dit "horrifié" et a présenté ses condoléances aux victimes. Son frère n'appartenait à aucun mouvement religieux ou politique, a-t-il ajouté, précisant qu'il n'avait pas à sa connaissance d'antécédents psychiatriques. </p>
+<p>Le père des deux hommes avait commis plusieurs braquages de banque et a un temps fait partie des fugitifs les plus recherchés par le FBI.</p>
+<p>Depuis sa maison d'Orlando, en Floride, devant laquelle se sont pressés des journalistes, Eric Paddock a décrit en outre son frère comme un "type riche" qui aimait jouer au poker en ligne, partir en croisière et qui coulait une retraite "paisible" dans le Nevada après des années passées en Floride.</p>
+<p>Cette nouvelle tuerie a ranimé le débat sur le contrôle des armes à feu aux Etats-Unis, une mesure contre laquelle le président Trump s'était fermement opposé lors de la campagne présidentielle l'an passé.</p>
+<p>"Nous discuterons d'une loi sur les armes en temps voulu", a commenté l'ancien homme d'affaires devant des journalistes à la Maison blanche. La présidence avait indiqué dès lundi que le débat sur ce sujet était, selon elle, "prématuré", répondant ainsi aux demandes d'élus démocrates.</p>
+<p></p>
+<p> (Avec Jonathan Allen, Chris Michaud et Frank McGurty à New York, Susan Cornwell et Mark Hosenball à Washington, Ali Abdelaty au Caire, Tangi Salaün, Julie Carriat et Pierre Sérisier pour le service français)</p>
+
+
+ </div>
+
+
+
+
+
+
+ <a href="#comments" class="article-reactions xs-visible">0 réactions</a>
+
+
+
+
+
+<p class="article-tags"
+ itemprop="keywords">
+
+
+
+
+
+</p>
+
+
+
+
+ <a href="#comments" class="article-reactions xs-hidden">0 réactions</a>
+
+
+
+
+ </article>
+
+
+
+ <aside class="aside-left container-inside-left">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ </aside>
+
+
+
+
+
+
+ <div class="bottom">
+
+
+
+
+
+ <div class="OUTBRAIN" data-src="https://www.challenges.fr/monde/les-motivations-du-tueur-de-las-vegas-demeurent-floues_503396" data-widget-id="AR_9" data-ob-template="challenges"></div>
+
+
+
+ <div id="ultimedia_chasea" class="digiteka"></div>
+<script>
+ var ULTIMEDIA_mdtk;
+ var ULTIMEDIA_target = "ultimedia_chasea";
+ // var ULTIMEDIA_async = true;
+
+ if (!window.chaDelayedCommands) { window.chaDelayedCommands = []; }
+ window.chaDelayedCommands.push(function () {
+ ULTIMEDIA_mdtk = isMobile.any ? "01253638" : "01650969";
+
+ var ultimediaSmart = document.createElement('script');
+ ultimediaSmart.src = 'https://www.ultimedia.com/js/common/smart.js';
+ ultimediaSmart.async = 1;
+ document.body.appendChild(ultimediaSmart);
+ });
+</script>
+
+
+
+ <div class="OUTBRAIN" data-src="https://www.challenges.fr/monde/les-motivations-du-tueur-de-las-vegas-demeurent-floues_503396" data-widget-id="AR_1" data-ob-template="challenges"></div>
+
+
+
+
+
+<div id="comments" class="commentaires bloc-full">
+
+ <span class="comms-title">0 réactions</span>
+
+ <form class="com user-show" style="display:none"
+ data-node="503396">
+
+ <textarea placeholder="Participez à la conversation" style="min-width:100%; max-width:100%;"></textarea>
+ <a href="javascript:void(0)" class="comms-react">Réagir</a>
+ </form>
+
+ <a href="https://secure.challenges.fr/login" class="comms-react comms-react-big user-hide
+ ">Pour réagir, veuillez vous connecter en cliquant ici</a>
+
+
+ <ul class="not-loaded" data-id="503396" data-nb="0"></ul>
+
+
+
+
+</div>
+
+
+
+ </div>
+
+
+
+
+ </div>
+
+
+ <div class="content-right">
+
+
+
+
+
+
+
+
+
+
+
+<div class="bloc ">
+ <div id="pub_pave_haut"></div>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="bloc noborder">
+ <div class="in bourse bourse-mini">
+ <ul>
+ <li class="infos">
+ <a href="https://bourse.challenges.fr/">Bourse</a>
+ <span>Le 23/11 à 14H45</span>
+ </li>
+ <li class="big">
+
+
+ <span class="ttl">
+ <a href="https://bourse.challenges.fr/fichevaleur.html?pays=FR&amp;ticker=PX1">CAC 40</a>
+ </span>
+ <span class="val">5377,21</span>
+ <span class="value ">+0,46%</span>
+
+ </li>
+ <li class="links">
+ <form class="search-form"
+ action="https://bourse.challenges.fr/recherche.html" method="get">
+
+ <a class="search-link"><span>Rechercher une valeur</span></a>
+ <input type="text" value="" name="code">
+ </form>
+ </li>
+ </ul>
+ </div>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+ <div class="bloc newsletter-form">
+ <span class="title">Newsletter Challenges</span>
+ <div class="in">
+ <form data-type="actu">
+ <span class="title"></span>
+ <input type="email" name="email" placeholder="Entrez votre E-mail" required="true">
+ <div class="cookies-mod cnil-mod">
+ <div class="in">
+ <p class="picto_info"><span>Votre adresse nous sert à envoyer les newsletters qui vous intéressent. Conformément à la loi informatique et liberté du 6 janvier 1978, mise à jour par la loi du 6 août 2004, vous disposez d'un droit d'accès, de rectification et d'opposition aux données vous concernant en écrivant à l'adresse [email protected]</span></p>
+ </div>
+</div>
+
+ <input type="submit" class="" value="Je m'abonne">
+ </form>
+ <span class="conf-fin conf-ok" style="display:none">Votre inscription a bien été prise en compte</span>
+ </div>
+</div>
+
+
+
+
+
+
+
+
+
+
+<div class="bloc ">
+ <div id="pub_pave_milieu"></div>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="bloc list list-rbrq">
+
+ <a href="https://www.challenges.fr/monde/"
+ class="title rbrq-monde-color">Monde</a>
+
+ <div class="in">
+ <ul class="list-square">
+
+
+
+ <li>
+
+
+ <a href="https://www.challenges.fr/monde/quand-donald-trump-insulte-les-plus-grands-sportifs-des-etats-unis_515241" title="Trump se sert de Twitter pour insulter les plus grands sportifs américains" class="overlay-hover">
+ <span class="overlay">
+ <img class="lazyload" src="/img/cha/placeholders/placeholder_200x150.jpg" data-src="https://www.challenges.fr/assets/img/2017/11/06/cover-r4x3w200-5a166cae7e66d-000-u12rd.jpg" alt="Donald Trump" />
+ </span>
+ <span>Trump se sert de Twitter pour insulter les plus grands sportifs américains</span>
+ </a>
+
+ </li>
+
+ <li>
+
+
+ <a href="https://www.challenges.fr/monde/moyen-orient/liban-l-etroite-marge-de-manoeuvre-de-saad-hariri-entre-le-hezbollah-et-l-arabie-saoudite_515134" title="Liban: l&#39;étroite marge de manœuvre de Saad Hariri entre le Hezbollah et l&#39;Arabie saoudite">Liban: l&#39;étroite marge de manœuvre de Saad Hariri</a>
+
+ </li>
+
+ <li>
+
+
+ <a href="https://www.challenges.fr/monde/europe/la-commission-europeenne-critique-fortement-le-premier-budget-de-macron_515161" title="La Commission européenne critique le premier budget de Macron ">Bruxelles épingle le premier budget de Macron </a>
+
+ </li>
+
+ <li>
+
+
+ <a href="https://www.challenges.fr/monde/europe/ce-village-suisse-qui-offre-plus-de-20-000-euros-a-ses-futurs-habitants_515123" title="Ce village suisse qui offre plus de 20.000 euros à ses futurs habitants">Ce village suisse qui offre plus de 20.000 euros à ses futurs habitants</a>
+
+ </li>
+
+ <li>
+
+
+ <a href="https://www.challenges.fr/monde/europe/pourquoi-un-gouvernement-minoritaire-pourrait-dynamiser-l-allemagne_515070" title="Pourquoi un gouvernement minoritaire pourrait dynamiser l&#39;Allemagne">Pourquoi un gouvernement minoritaire pourrait dynamiser l&#39;Allemagne</a>
+
+ </li>
+
+ </ul>
+ <a href="https://www.challenges.fr/monde/" class="more">Tous les articles Monde</a>
+ </div>
+</div>
+
+
+
+
+
+
+
+
+
+
+ <div class="bloc">
+
+ <div class="OUTBRAIN" data-src="https://www.challenges.fr/monde/les-motivations-du-tueur-de-las-vegas-demeurent-floues_503396" data-widget-id="SB_1" data-ob-template="challenges"></div>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="bloc abo">
+ <span class="title">à la une cette semaine</span>
+ <div class="in">
+ <div class="wrap">
+ <img data-src="/static_files/CHA-couv/couv_170.jpg" class="couv lazyload" alt="Couverture du magazine">
+ <img data-src="/static_files/CHA-couv/couv_170.jpg" class="small lazyload" alt="Couverture du magazine">
+ <div class="mask"></div>
+ </div>
+ <a href="http://challenges-magazine-digital.challenges.fr/profil/liseuse.html" class="buy ">
+ <span>Acheter</span>
+ </a>
+ <a href="http://logi150.xiti.com/go.click?xts=562191&amp;p=PromoAbonnement::Blocs_promo&amp;clic=S&amp;type=click&amp;url=https://www.challenges.fr/abonnements" class="subs">
+ <span>S’abonner</span>
+ </a>
+ </div>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="bloc ">
+ <div id="pub_pave_bas"></div>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+ <div class="bloc article-diaporama article-diaporama-main article-diaporama-big">
+ <span class="title">Galeries Photo</span>
+ <div class="in">
+ <div class="left-col">
+
+
+
+ <a href="https://www.challenges.fr/automobile/nouveautes/en-images-aston-martin-vantage_514870/aston-martin-vantage-face-dynamique-jaune_1" title="En images : Aston Martin Vantage" class="overlay-hover rbrq-home-overlay-hover">
+ <div class="visuel">
+ <div class="big">
+ <div class="in">
+ <div class="item">
+ <span class="overlay">
+ <img class="lazyload" src="/img/cha/placeholders/placeholder_400x300.jpg" data-src="https://www.challenges.fr/assets/img/2017/11/21/cover-r4x3w400-5a144273a9070-aston-martin-vantagetungsten-silver07-jpg-jpg.jpg" alt="Aston Martin Vantage" />
+ </span>
+ </div>
+ </div>
+ </div>
+ </div>
+ <strong>En images : Aston Martin Vantage</strong>
+ </a>
+
+
+ <div class="thumbnails">
+ <span class="plus">Les dernières galeries photo</span>
+ <a href="javascript:void(0)" class="prev-btn"></a>
+ <a href="javascript:void(0)" class="next-btn"></a>
+ <ul>
+
+
+ <li>
+ <a href="https://www.challenges.fr/automobile/essais/en-images-essai-ford-f-150-raptor_514620/ford-f-150-raptor-3-4-avant_1" title="En images : essai Ford F-150 Raptor" class="overlay-hover">
+ <span class="overlay">
+ <img class="lazyload" src="/img/cha/placeholders/placeholder_200x150.jpg" data-src="https://www.challenges.fr/assets/img/2017/11/20/cover-r4x3w200-5a12f61d267e2-flf-07217036-56966-99999-99999-rgb-jpg.jpg" alt="Ford F-150 Raptor" />
+ </span>
+ </a>
+ </li>
+
+
+ <li>
+ <a href="https://www.challenges.fr/automobile/actu-auto/les-suv-sont-les-preferes-des-voleurs-selon-palmares-des-vols-de-voitures_514610/smart-fortwo-de-seconde-generation_1" title="Les 10 voitures les plus volées entre juillet 2016 et juin 2017" class="overlay-hover">
+ <span class="overlay">
+ <img class="lazyload" src="/img/cha/placeholders/placeholder_200x150.jpg" data-src="https://www.challenges.fr/assets/img/2017/11/20/cover-r4x3w200-5a12f82ab6a78-nouvelle-image.jpg" alt="Le palmarès 2017 des véhicules les plus volés, par 40 Millions d'Automobilistes, BCA Expertise, Experveo et Traqueur." />
+ </span>
+ </a>
+ </li>
+
+
+ <li>
+ <a href="https://www.challenges.fr/automobile/essais/en-images-essai-mercedes-benz-classe-x_514166/mercedes-benz-x-250d-avant-dynamique_1" title="En images : essai Mercedes-Benz Classe X" class="overlay-hover">
+ <span class="overlay">
+ <img class="lazyload" src="/img/cha/placeholders/placeholder_200x150.jpg" data-src="https://www.challenges.fr/assets/img/2017/11/17/cover-r4x3w200-5a0f1f35245fc-dsc-0590-jpg.jpg" alt="Mercedes-Benz Classe X" />
+ </span>
+ </a>
+ </li>
+
+
+ <li>
+ <a href="https://www.challenges.fr/automobile/concept-cars/en-images-tesla-roadster-2017_514130/tesla-roadster-elon-musk_1" title="En images : Tesla Roadster 2017" class="overlay-hover">
+ <span class="overlay">
+ <img class="lazyload" src="/img/cha/placeholders/placeholder_200x150.jpg" data-src="https://www.challenges.fr/assets/img/2017/11/17/cover-r4x3w200-5a0ef7b71cd78-roadster-hero-jpg.jpg" alt="Tesla Roadster" />
+ </span>
+ </a>
+ </li>
+
+
+ <li>
+ <a href="https://www.challenges.fr/automobile/voitures-propres/premieres-images-du-camion-electrique-tesla-semi-annonce-pour-800-km-et-36-t_514125/tesla-semi-truck-2017-vue-generale-de-la-cabine_1" title="En images : Tesla Semi, le camion électrique de 2020" class="overlay-hover">
+ <span class="overlay">
+ <img class="lazyload" src="/img/cha/placeholders/placeholder_200x150.jpg" data-src="https://www.challenges.fr/assets/img/2017/11/17/images_list-r4x3w200-5a0ef2cb127db-semi-interior-command-jpg.jpg" alt="Tesla Semi Truck (2017) : vue générale de la cabine" />
+ </span>
+ </a>
+ </li>
+
+
+ <li>
+ <a href="https://www.challenges.fr/patrimoine/marche-de-l-art/les-10-tableaux-les-plus-chers-vendus-aux-encheres_513676/10-nurse-de-roy-lichtenstein_1" title="Les 10 tableaux les plus chers vendus aux enchères" class="overlay-hover">
+ <span class="overlay">
+ <img class="lazyload" src="/img/cha/placeholders/placeholder_200x150.jpg" data-src="https://www.challenges.fr/assets/img/2017/11/16/cover-r4x3w200-5a0d3c9b38eee-sipa-ap22125625-000006.jpg" alt="Salvator Mundi de Léonard DE VINCI" />
+ </span>
+ </a>
+ </li>
+
+
+ <li>
+ <a href="https://www.challenges.fr/luxe/montres/rolex-cellini-moonphase-breguet-type-xxi-3817-notre-selection-des-plus-belles-montres-de-luxe_497663/quantieme-perpetuel-patek-philippe_1" title="Notre sélection des plus belles montres de luxe" class="overlay-hover">
+ <span class="overlay">
+ <img class="lazyload" src="/img/cha/placeholders/placeholder_200x150.jpg" data-src="https://www.challenges.fr/assets/img/2017/11/14/cover-r4x3w200-59b007c704372-5320g-001-presse-cotg-rvb-copie-jpg.jpg" alt="Quantième perpétuel Patek Philippe" />
+ </span>
+ </a>
+ </li>
+
+
+ <li>
+ <a href="https://www.challenges.fr/automobile/essais/les-images-de-notre-essai-du-bmw-x3-xdrive30d-x-line-en-novembre-2017_512597/bmw-x3-xdrive30d-x-line-2017-file-sur-route_1" title="En images : essai du BMW X3 xDrive30d X Line (2017)" class="overlay-hover">
+ <span class="overlay">
+ <img class="lazyload" src="/img/cha/placeholders/placeholder_200x150.jpg" data-src="https://www.challenges.fr/assets/img/2017/11/10/cover-r4x3w200-5a05f39735d47-p90263742-highres-the-new-bmw-x3-xdriv-jpg.jpg" alt="BMW X3 de troisième génération (2017)" />
+ </span>
+ </a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ </div>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+<div class="bloc ">
+ <div id="pub_pave_bas_2"></div>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+ <div class="bloc article-diaporama article-diaporama-main article-diaporama-big diapo-video">
+ <span class="title">Vidéos</span>
+
+ <div class="in">
+ <div class="left-col">
+
+ <a href="https://www.challenges.fr/videos/esclavage-en-libye-macron-parle-de-crime-contre-lhumanite_vskpqx" title="Esclavage en Libye: Macron parle de &#34;crime contre l&#39;Humanité&#34;" class="overlay-hover">
+ <div class="visuel">
+ <div class="big">
+ <div class="in">
+ <div class="item">
+ <span class="overlay">
+ <img class="lazyload" data-src="https://medialb.ultimedia.com/multi/3l55k/vskpqx-L.jpg" alt="Esclavage en Libye: Macron parle de &amp;quot;crime contre l&#39;Humanité&amp;quot;">
+ </span>
+ </div>
+ </div>
+ </div>
+ </div>
+ <h3>Esclavage en Libye: Macron parle de &#34;crime contre l&#39;Humanité&#34;</h3>
+ </a>
+ <div class="thumbnails">
+ <span class="plus">Dernières vidéos</span>
+ <a class="prev-btn"></a>
+ <a class="next-btn"></a>
+ <ul>
+
+ <li>
+
+ <a href="https://www.challenges.fr/videos/le-budget-des-francais-pour-noel_vskmvu" title="Le budget des Français pour Noël " class="overlay-hover">
+ <span class="overlay">
+ <img class="lazyload" data-src="https://medialb.ultimedia.com/multi/3l55k/vskmvu-M.jpg" alt="Le budget des Français pour Noël ">
+ </span>
+ </a>
+ </li>
+
+ <li>
+
+ <a href="https://www.challenges.fr/videos/ce-village-suisse-qui-offre-plus-de-20000-euros-a-ses-futurs-habitants_vsvfks" title="Ce village suisse qui offre plus de 20.000 euros à ses futurs habitants" class="overlay-hover">
+ <span class="overlay">
+ <img class="lazyload" data-src="https://medialb.ultimedia.com/multi/3l555/vsvfks-M.jpg" alt="Ce village suisse qui offre plus de 20.000 euros à ses futurs habitants">
+ </span>
+ </a>
+ </li>
+
+ <li>
+
+ <a href="https://www.challenges.fr/videos/des-images-de-lincroyable-defection-dun-militaire-nord-coreen_vsvzrk" title="Des images de l&#39;incroyable défection d&#39;un militaire nord-coréen" class="overlay-hover">
+ <span class="overlay">
+ <img class="lazyload" data-src="https://medialb.ultimedia.com/multi/3l555/vsvzrk-M.jpg" alt="Des images de l&#39;incroyable défection d&#39;un militaire nord-coréen">
+ </span>
+ </a>
+ </li>
+
+ <li>
+
+ <a href="https://www.challenges.fr/videos/emmanuel-macron-il-faut-retourner-dans-son-pays_vsvz0x" title="Emmanuel Macron : &#34;Il faut retourner dans son pays&#34;" class="overlay-hover">
+ <span class="overlay">
+ <img class="lazyload" data-src="https://medialb.ultimedia.com/multi/3l555/vsvz0x-M.jpg" alt="Emmanuel Macron : &amp;quot;Il faut retourner dans son pays&amp;quot;">
+ </span>
+ </a>
+ </li>
+
+ <li>
+
+ <a href="https://www.challenges.fr/videos/faut-il-craquer-pour-le-robot-aspirateur-dark-vador-de-samsung_vsvrmm" title="Faut-il craquer pour le robot aspirateur Dark Vador de Samsung?" class="overlay-hover">
+ <span class="overlay">
+ <img class="lazyload" data-src="https://medialb.ultimedia.com/multi/3l555/vsvrmm-M.jpg" alt="Faut-il craquer pour le robot aspirateur Dark Vador de Samsung?">
+ </span>
+ </a>
+ </li>
+
+ <li>
+
+ <a href="https://www.challenges.fr/videos/pres-de-20-des-salaries-du-prive-ont-renonce-a-un-arret-maladie_vsvrrm" title="Près de 20% des salariés du privé ont renoncé à un arrêt maladie" class="overlay-hover">
+ <span class="overlay">
+ <img class="lazyload" data-src="https://medialb.ultimedia.com/multi/3l555/vsvrrm-M.jpg" alt="Près de 20% des salariés du privé ont renoncé à un arrêt maladie">
+ </span>
+ </a>
+ </li>
+
+ <li>
+
+ <a href="https://www.challenges.fr/videos/les-donnees-de-57-millions-dutilisateurs-duber-ont-ete-piratees-en-2016_vsvum5" title="Les données de 57 millions d&#39;utilisateurs d&#39;Uber ont été piratées en 2016" class="overlay-hover">
+ <span class="overlay">
+ <img class="lazyload" data-src="https://medialb.ultimedia.com/multi/3l555/vsvum5-M.jpg" alt="Les données de 57 millions d&#39;utilisateurs d&#39;Uber ont été piratées en 2016">
+ </span>
+ </a>
+ </li>
+
+ <li>
+
+ <a href="https://www.challenges.fr/videos/tabac-et-cinema-retour-sur-les-affiches-qui-ont-ete-censurees_vsrss8" title="Tabac et cinéma : Retour sur les affiches qui ont été censurées" class="overlay-hover">
+ <span class="overlay">
+ <img class="lazyload" data-src="https://medialb.ultimedia.com/multi/3l5sf/vsrss8-M.jpg" alt="Tabac et cinéma : Retour sur les affiches qui ont été censurées">
+ </span>
+ </a>
+ </li>
+
+ <li>
+
+ <a href="https://www.challenges.fr/videos/travailleurs-detaches-les-routiers-protestent-en-manifestant-aux-frontieres_vsr30s" title="Travailleurs détachés : les routiers protestent en manifestant aux frontières" class="overlay-hover">
+ <span class="overlay">
+ <img class="lazyload" data-src="https://medialb.ultimedia.com/multi/3l5sf/vsr30s-M.jpg" alt="Travailleurs détachés : les routiers protestent en manifestant aux frontières">
+ </span>
+ </a>
+ </li>
+
+ </ul>
+ </div>
+ </div>
+ </div>
+
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="bloc list">
+ <span class="title">
+
+ Notre rubrique Monde
+
+ </span>
+ <div class="in">
+ <ul class="list-square">
+
+ <li>
+
+ <a href="https://www.challenges.fr/monde/europe/" title="Europe" class="overlay-hover">
+ <span>Europe</span>
+ </a>
+ </li>
+
+ <li>
+
+ <a href="https://www.challenges.fr/monde/ameriques/" title="Amériques" class="overlay-hover">
+ <span>Amériques</span>
+ </a>
+ </li>
+
+ <li>
+
+ <a href="https://www.challenges.fr/monde/asie-pacifique/" title="Asie-Pacifique" class="overlay-hover">
+ <span>Asie-Pacifique</span>
+ </a>
+ </li>
+
+ <li>
+
+ <a href="https://www.challenges.fr/monde/afrique/" title="Afrique" class="overlay-hover">
+ <span>Afrique</span>
+ </a>
+ </li>
+
+ <li>
+
+ <a href="https://www.challenges.fr/monde/moyen-orient/" title="Moyen-Orient" class="overlay-hover">
+ <span>Moyen-Orient</span>
+ </a>
+ </li>
+
+ <li>
+
+ <a href="https://www.challenges.fr/monde/japon/" title="Japon" class="overlay-hover">
+ <span>Japon</span>
+ </a>
+ </li>
+
+ <li>
+
+ <a href="https://www.challenges.fr/monde/etats-unis/" title="Etats-Unis" class="overlay-hover">
+ <span>Etats-Unis</span>
+ </a>
+ </li>
+
+ <li>
+
+ <a href="https://www.challenges.fr/monde/brics/" title="BRICS" class="overlay-hover">
+ <span>BRICS</span>
+ </a>
+ </li>
+
+ <li>
+
+ <a href="https://www.challenges.fr/monde/ocde/" title="OCDE" class="overlay-hover">
+ <span>OCDE</span>
+ </a>
+ </li>
+
+ <li>
+
+ <a href="https://www.challenges.fr/monde/elections-americaines/" title="Elections américaines" class="overlay-hover">
+ <span>Elections américaines</span>
+ </a>
+ </li>
+
+ <li>
+
+ <a href="https://www.challenges.fr/galeries-photos/monde/" title="Galeries photos Monde" class="overlay-hover">
+ <span>Galeries photos Monde</span>
+ </a>
+ </li>
+
+ </ul>
+ </div>
+</div>
+
+
+
+
+
+
+
+
+
+ </div>
+
+
+
+
+ </section>
+</main>
+
+
+
+ <div class="container-in container-in-border-top container-in-border-top-sml container-pre-footer list">
+ <div class="table">
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="bloc pre-footer-sm">
+ <span class="title-big">
+
+ <a href="http://www.challenges.fr/emploi/">A ne pas manquer</a>
+
+ </span>
+ <div class="in">
+ <ul class="list-square">
+
+
+ <li>
+ <a href="https://www.challenges.fr/reforme-code-travail/" title="Droit du travail">Droit du travail</a>
+ </li>
+
+
+ <li>
+ <a href="https://www.challenges.fr/immobilier/" title="Immobilier">Immobilier</a>
+ </li>
+
+
+ <li>
+ <a href="https://www.challenges.fr/patrimoine/epargne/" title="Epargne">Epargne</a>
+ </li>
+
+
+ <li>
+ <a href="https://www.challenges.fr/emploi/special-mba/" title="Dossier MBA">Dossier MBA</a>
+ </li>
+
+
+ <li>
+ <a href="https://www.challenges.fr/emploi/formation/non-la-classe-prepa-n-est-pas-en-crise_13183" title="Les meilleures prépas">Les meilleures prépas</a>
+ </li>
+
+
+ <li>
+ <a href="https://www.challenges.fr/emploi/formation/gestion-marketing-web-rh-finance-les-meilleurs-masters-universitaires_27406" title="Les meilleurs masters">Les meilleurs masters</a>
+ </li>
+
+ </ul>
+ </div>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="bloc pre-footer-sm">
+ <span class="title-big">
+
+ <a href="https://www.challenges.fr/entreprise/">Entreprise</a>
+
+ </span>
+ <div class="in">
+ <ul class="list-square">
+
+
+ <li>
+ <a href="https://www.challenges.fr/start-up/" title="L&#39;actu des start-up">L&#39;actu des start-up</a>
+ </li>
+
+
+ <li>
+ <a href="https://www.challenges.fr/entreprise/defense/" title="Défense">Défense</a>
+ </li>
+
+
+ <li>
+ <a href="https://www.challenges.fr/entreprise/aeronautique/" title="Aéronautique">Aéronautique</a>
+ </li>
+
+
+ <li>
+ <a href="https://www.challenges.fr/entreprise/energie/" title="Energie">Energie</a>
+ </li>
+
+
+ <li>
+ <a href="https://www.challenges.fr/entreprise/environnement/" title="Environnement">Environnement</a>
+ </li>
+
+
+ <li>
+ <a href="https://www.challenges.fr/club-entrepreneurs/" title="Le Club des entrepreneurs">Le Club des entrepreneurs</a>
+ </li>
+
+ </ul>
+ </div>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="bloc pre-footer-sm">
+ <span class="title-big">
+
+ <a href="http://www.sciencesetavenir.fr/#xtor=CS1-48-[Lien_home]">Sur Sciences et Avenir</a>
+
+ </span>
+ <div class="in">
+ <ul class="list-square">
+
+
+ <li>
+ <a href="http://www.sciencesetavenir.fr/sante-maladie/#xtor=CS1-48-[Index_Maladies]" title="L&#39;index des maladies">L&#39;index des maladies</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.sciencesetavenir.fr/nutrition/#xtor=CS1-48-[Nutrition]" title="Bien se nourrir">Bien se nourrir</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.sciencesetavenir.fr/sante/#xtor=CS1-48-[Sante]" title="L&#39;actualité santé">L&#39;actualité santé</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.sciencesetavenir.fr/high-tech/#xtor=CS1-48-[High_Tech]" title="Nouveautés High-tech">Nouveautés High-tech</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.sciencesetavenir.fr/nature-environnement/#xtor=CS1-48-[Nature_Environnement]" title="Environnement">Environnement</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.sciencesetavenir.fr/espace/#xtor=CS1-48-[Espace]" title="Tout sur l&#39;espace">Tout sur l&#39;espace</a>
+ </li>
+
+ </ul>
+ </div>
+</div>
+
+
+
+
+
+
+
+
+
+
+ </div>
+ </div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="container-in container-in-border-top container-in-border-top-sml container-pre-footer">
+
+ <div class="bloc pre-footer-sm pre-footer-mail newsletter-form">
+ <span class="title-big">Newsletter Challenges</span>
+ <div class="in">
+ <span>Entrez votre email pour recevoir la newsletter</span>
+ <form data-type="actu">
+ <input type="email" name="email" placeholder="Entrez votre E-mail" required="true">
+ <div class="cookies-mod cnil-mod">
+ <div class="in">
+ <p class="picto_info"><span>Votre adresse nous sert à envoyer les newsletters qui vous intéressent. Conformément à la loi informatique et liberté du 6 janvier 1978, mise à jour par la loi du 6 août 2004, vous disposez d'un droit d'accès, de rectification et d'opposition aux données vous concernant en écrivant à l'adresse [email protected]</span></p>
+ </div>
+</div>
+
+ <input type="submit" class="" value="Je m'abonne">
+ </form>
+ <span class="conf-fin conf-ok" style="display:none">Votre inscription a bien été prise en compte</span>
+ </div>
+ </div>
+
+ <div class="bloc pre-footer-sm pre-footer-social">
+ <span class="title-big">Suivez-nous</span>
+ <div class="in">
+ <a href="https://www.facebook.com/challenges" target="_blank" class="fb social-btn-white">Facebook</a>
+ <a href="https://twitter.com/Challenges" target="_blank" class="tw social-btn-white">Twitter</a>
+ <a href="https://www.linkedin.com/company/80846" target="_blank" class="ln social-btn-white">Linkedin</a>
+ <a href="https://plus.google.com/+challenges" target="_blank" class="gg social-btn-white">Google +</a>
+ <a href="https://www.challenges.fr/rss" target="_blank" class="rs social-btn-white">RSS</a>
+ </div>
+ </div>
+
+</div>
+
+
+ </div>
+
+
+ <div class="pub-container-bas">
+ <div id="pub_banniere_basse" class="pub"></div>
+ </div>
+
+
+
+
+ <script type="text/javascript">
+ xtnv = document; // Ou parent.document
+ xtsd = 'https://logs3';
+ xtsite = '562191';
+ xtpage = 'Monde::Les_Motivations_Du_Tueur_De_Las_Vegas_Demeurent_Floues_503396';
+ xtn2 = '1';
+ xtdmc = '.challenges.fr';
+ xtdi = '';
+ xt_ac = '';
+ xt_an = '';
+ xt_tags = '';
+ xt_multc = '';
+
+ if (!window.chaDelayedCommands) { window.chaDelayedCommands = []; }
+ window.chaDelayedCommands.push(function () {
+ xtn2 = isMobile && isMobile.phone ? '2' : (isMobile && isMobile.tablet ? '2' : '1');
+ xt_multc = '&x1=[Challenges]&x2=7&x3=' + (isMobile && isMobile.phone ? '2' : (isMobile && isMobile.tablet ? '3' : '1')) + '&x15=[Monde]&x5=[Contenu]&x17=2&x18=1&x4=1&x6=[Autres]&x7=[]&x8=Reuters&x9=1&x10=[503396]&x11=[Les_Motivations_Du_Tueur_De_Las_Vegas_Demeurent_Floues]&x12=[]&x13=[]&x14=20171002';
+
+ //do not modify below
+ if (window.xtparam!=null){window.xtparam+="&ac="+xt_ac+"&an="+xt_an+xt_multc;}
+ else{window.xtparam = "&ac="+xt_ac+"&an="+xt_an+xt_multc;};
+ //-->
+
+ var at=document.createElement('script');
+ at.type='text/javascript';
+ at.async=true;
+ at.src='https://www.challenges.fr/js/libs/xtcore.js'; (document.getElementsByTagName('head')[0]||document.getElementsByTagName('body')[0]||document.getElementsByTagName('script')[0].parentNode).insertBefore(at,null);
+ });
+ </script>
+ <noscript>
+ <img width="1" height="1" src="https://logs3.xiti.com/hit.xiti?s=562191&p=Monde::Les_Motivations_Du_Tueur_De_Las_Vegas_Demeurent_Floues_503396" alt="pixel" >
+ </noscript>
+
+
+
+ <!--script src="https://www.challenges.fr/js/libs/xtcore.js"></script-->
+
+
+
+
+ <script type='text/javascript'>
+ // init googletag variable
+ var googletag = googletag || {};
+
+ if (!window.chaDelayedCommands) { window.chaDelayedCommands = []; }
+ window.chaDelayedCommands.push(function () {
+ // display ads
+ $('body').chaAds({
+ googletag: googletag,
+ dfp_vars: {
+ enabled: true,
+ publisherid: '205069399',
+ site: 'CHA_challenges',
+
+ topic: 'monde',
+ subtopic: 'monde',
+
+ pagetype: 'RG'
+ },
+ dfptest: ''
+ });
+ });
+ </script>
+
+ <script type="text/javascript">
+ if (!window.chaDelayedCommands) { window.chaDelayedCommands = []; }
+ window.chaDelayedCommands.push(function () {
+ var i = document.createElement('iframe');
+ i.src = 'https://cstatic.weborama.fr/iframe/customers/premium.html?idEditeur=1164&idSite=233';
+ i.style = 'height: 1px; width: 1px; border: 0px none; position: absolute; display: none; left: 0px; top: 0px; z-index: 0;';
+ document.body.appendChild(i);
+ });
+ </script>
+
+
+
+
+<footer id="footer" class="container-in-border-top">
+ <div class="container-in">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<section class="highlights-top rbrq-common-a ">
+ <div>
+
+
+ <a href="https://www.challenges.fr/emploi/formation/universites-ces-50-masters-d-excellence-qui-font-de-l-ombre-aux-grandes-ecoles_499659">50 Masters</a>
+
+
+ <a href="https://www.challenges.fr/classement/arnault-bettencourt-mulliez-dumas-dassault-les-10-plus-grosses-fortunes-de-france-en-2017_483193">500 FORTUNES 2017</a>
+
+
+ <a href="https://www.challenges.fr/emploi/special-mba/le-top-30-des-global-mba-les-mba-s-adaptent-face-a-la-concurrence_477536">TOP 30 des Global MBA</a>
+
+
+ <a href="http://lesclesdedemain.lemonde.fr/">Les clés de demain</a>
+
+
+ <a href="https://www.challenges.fr/emploi/management/revolution-work-veut-revolutionner-le-travail-une-initiative-du-quartier-de-la-defense_513149">Revolution@work</a>
+
+ </div>
+</section>
+
+
+
+
+
+
+
+
+
+
+ </div>
+ <hr>
+ <div class="container-in container-in-table">
+ <div class="bloc"><a class="title" href="https://www.challenges.fr/automobile/">Automobile</a><a href="https://www.challenges.fr/automobile/actu-auto/les-20-voitures-les-plus-vendues-en-france-en-2015_118048/slide_1">Les meilleures voitures françaises</a><a href="https://www.challenges.fr/automobile/voitures-propres/">Choisir une voiture propre</a><a href="https://www.challenges.fr/automobile/essais/quelle-citadine-automatique-choisir_18666">Quelle citadine automatique choisir ?</a><a href="https://www.challenges.fr/automobile/essais/">Tous les essais auto</a><a href="https://www.challenges.fr/automobile/actu-auto/le-top-20-des-voitures-les-plus-vendues-en-france-en-2016_42006/slide_1">Les voitures les plus vendues</a><hr><a class="title" href="https://www.challenges.fr/emploi/">Emploi</a><a href="https://www.challenges.fr/emploi/salaire-des-cadres/salaires-des-cadres-ceux-qui-gagnent-ceux-qui-perdent_433587">Salaire des cadres</a><a href="https://www.challenges.fr/emploi/carriere/les-10-meilleurs-metiers-de-2016_28704/slide_1">Les meilleurs métiers du monde</a><a href="https://www.challenges.fr/emploi/management/">Nos conseils en management</a><hr><a class="title" href="https://www.challenges.fr/classements/">Classements</a><a href="https://www.challenges.fr/classements/fortune/">Classement des fortunes de France</a><a href="https://www.challenges.fr/classements/prepas/">Classement des prépas</a></div><div class="bloc"><a href="https://www.challenges.fr/classements/start-up/">Classement des start-up</a><a href="https://www.challenges.fr/emploi/classement-des-ecoles-de-commerce/le-palmares-2016-des-ecoles-de-commerce-post-prepa_3215">Classement des écoles de commerce</a><a href="https://www.challenges.fr/patrimoine/pourquoi-vous-payez-bien-trop-de-frais-bancaires_52371">Classement des banques les moins chères</a><a href="https://www.challenges.fr/monde/ameriques/decouvrez-le-classement-2015-des-americains-les-plus-riches_62362">Classement des hommes les plus riches des Etats-Unis</a><a href="https://www.challenges.fr/emploi/les-30-meilleurs-mba-au-monde_85056">Classement des meilleurs MBA au monde</a><a href="https://www.challenges.fr/emploi/le-guide-pour-trouver-les-meilleurs-masters_96137">Classement des meilleurs masters</a><a href="https://www.challenges.fr/classements/cote-des-diplomes/">La cote des diplomes</a><a href="https://www.challenges.fr/immobilier/actu-immo/immobilier-le-classement-des-villes-ou-les-francais-voudraient-investir_415392">Classement des villes où investir en immobilier</a><hr><a class="title" href="https://www.challenges.fr/immobilier/">Immobilier</a><a href="https://www.challenges.fr/immobilier/prix-immobilier-m2/">Le prix de l'immobilier au m2</a><a href="https://www.challenges.fr/immobilier/prix-immobilier-m2/encadrement-des-loyers-a-paris-les-prix-de-reference-par-quartier_32659">Prix des loyers à Paris</a><a href="https://www.challenges.fr/immobilier/actu-immo/immobilier-pourquoi-les-prix-auraient-du-baisser_26539">Evolution des prix de l'immobilier</a><a href="https://www.challenges.fr/immobilier/location-tout-savoir-sur-le-bail-d-habitation_32660">Tout savoir sur le bail d'habitation</a><hr><a class="title" href="https://www.challenges.fr/services">Services</a><a href="https://logs3.xiti.com/go.click?xts=562191&p=BureauxLocaux::Lien_Footer&clic=S&type=click&url=http://www.bureauxlocaux.com/">Trouver des bureaux</a><a href="https://logs3.xiti.com/go.click?xts=562191&p=SeLoger::Lien_Footer&clic=S&type=click&url=http://immobilier.challenges.fr/">Annonces immobilières</a><a href="https://logs3.xiti.com/go.click?xts=562191&p=Choisirmabanque::Lien_Footer&clic=S&type=click&url=https://quellebanque.challenges.fr/index.php">Comparez votre banque</a></div><div class="bloc"><a href="https://logs3.xiti.com/go.click?xts=562191&p=iQuesta::Lien_Footer&clic=S&type=click&url=http://stages-emploi.challenges.fr/">Offres emploi stages</a><a href="https://logs3.xiti.com/go.click?xts=562191&p=Maximis::Lien_Footer&clic=S&type=click&url=http://challenges.simul-retraite.fr/">Simulateur retraite</a><hr><a class="title" href="https://www.challenges.fr/economie/les-graphiques-de-challenges_142117/slide_1">Les graphiques de Challenges</a><hr><a class="title" href="https://www.challenges.fr/confidentiel/">Les confidentiels de Challenges</a><hr><a class="title" href="https://www.challenges.fr/galeries-photos/">Toutes nos galeries photos</a><a href="https://www.challenges.fr/galeries-photos/election-presidentielle-2017/">La Présidentielle 2017 en images</a><a href="https://www.challenges.fr/galeries-photos/economie/">L'économie en images</a><a href="https://www.challenges.fr/galeries-photos/entreprise/">Les entreprises en images</a><a href="https://www.challenges.fr/galeries-photos/emploi/">L'emploi en images</a></div><div class="bloc"><a class="title" href="https://www.sciencesetavenir.fr/">A découvrir sur Sciences et Avenir</a><a href="https://www.sciencesetavenir.fr/sante-nutrition/">Conseils nutrition</a><a href="https://www.sciencesetavenir.fr/sante-maladie/">Fiches maladies</a><hr><a class="title" href="https://success-story.challenges.fr">Success Story</a><hr><a class="title" href="https://partenaires.challenges.fr/">Dossiers Partenaires</a><hr><a href="https://www.challenges.fr/auteurs/" class="highlight ">La rédaction</a><a href="https://www.challenges.fr/donnees-personnelles" class="highlight ">Données personnelles</a><a href="https://www.challenges.fr/mentions-legales" class="highlight ">Mentions légales</a><a href="https://www.challenges.fr/contacts" class="highlight ">Contacts</a><a href="http://www.mediaobs.com/" class="highlight ">Publicité</a><a href="https://www.challenges.fr/licence" class="highlight ">Copyright</a><a href="https://www.challenges.fr/index/" class="highlight ">Nos archives</a><a href="https://www.challenges.fr/plan-du-site" class="highlight ">Plan du site</a><a href="https://www.challenges.fr/depeches/" class="highlight ">Les dépêches</a><a href="http://espaceclient.challenges.fr/" class="highlight ">Espace client</a><a href="https://www.challenges.fr/cgv" class="highlight ">CGV</a><a href="https://www.challenges.fr/abonnements" class="highlight abo">S'abonner</a></div>
+ </div>
+ <hr class="hr-last">
+ <div class="container-in container-footer-last">
+ <a href="https://www.challenges.fr" class="logo"></a>
+ <span class="text">© Challenges - Les contenus, marques, ou logos du site challenges.fr sont soumis à la protection de la propriété intellectuelle.</span>
+ <span class="ojd"><a href="http://www.acpm.fr/Support-Numerique/site/challenges-fr" target="_blank">Audience certifiée par l'</a></span>
+ </div>
+</footer>
+
+<script id="cookieBarTemplate" type="text/x-jsrender">
+ <div class="cookies-mod cookies-mod-bar">
+ <div class="in">
+ <p class="picto_info">
+ En poursuivant votre navigation, vous acceptez nos <a href="https://www.challenges.fr/cgv">CGV</a> et l'utilisation de cookies pour vous proposer des contenus, services, vidéos et publicités personnalisés et vous permettre l'utilisation de boutons de partages sociaux.
+ </p>
+ <p> <button class="link_action close">OK, tout accepter</button> <a href="https://www.challenges.fr/donnees-personnelles" class="link_action">Personnaliser</a></p>
+ </div>
+ </div>
+</script>
+
+
+
+
+<script type="text/javascript" src="https://www.challenges.fr/js/script.min.js" async></script>
+
+
+
+
+
+
+
+
+
+
+
+<script type="text/javascript">
+ !function(){var a=window._nli||(window._nli=[]);if(!a.loaded){var b=document.createElement("script");b.async=!0,b.src="https://non.li/sdk.js";var c=document.getElementsByTagName("script")[0];c.parentNode.insertBefore(b,c),a.loaded=!1}}();
+ window._nli = window._nli || [];
+ window._nli.push(['brand', 'mYWkT%2FCU4s6EKGzwZX53FDL8dWs2t0Qa0GabcOqK02I%3D']);
+ (function(p,u,s,h){p._pcq=p._pcq||[];p._pcq.push(['_currentTime',Date.now()]);s=u.createElement('script');s.type='text/javascript';s.async=true;s.src='https://cdn.pushcrew.com/js/d3990b6196c128325384298ea57e73d7.js';h=u.getElementsByTagName('script')[0];h.parentNode.insertBefore(s,h);})(window,document);
+</script>
+
+<script type="text/javascript" src="https://widgets.outbrain.com/outbrain.js" async></script>
+
+
+
+
+ <meta itemprop="publisher" content="Challenges">
+
+
+
+
+ <script type="text/javascript">
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+ })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
+
+ window.gaName = 'uacha';
+ ga('create', 'UA-22393576-2', 'challenges.fr', { name: window.gaName });
+ ga(window.gaName + '.require', 'displayfeatures');
+
+ ga(window.gaName + '.send', 'pageview');
+ </script>
+
+ <div id="pub_dhtml"></div>
+ <div id="pub_parallaxe"></div>
+
+
+
+
+<script type='text/javascript'>
+var wamid = '4876';
+var typ = '1';
+
+var Wvar = {
+ "site":"challenges",
+ "thematique":"actualite-generale",
+ "rub-pcpl":"monde",
+ "rub-scnds":[],
+ "type-page":"contenu",
+ "type-contenu":"depeche",
+ "statut-article":"gratuit",
+ "statut-abonne":"non-logue",
+ "tags":[]
+};
+
+(function(){
+var w = document.createElement("script");
+w.type = "text/javascript";
+w.src = document.location.protocol + "//cstatic.weborama.fr/js/wam/customers/wamfactory_dpm.wildcard.min.js?rnd="+new Date().getTime();
+w.async = true;
+var body = document.getElementsByTagName('script')[0];
+body.parentNode.insertBefore(w,body);
+})();
+
+</script>
+
+
+
+ <div id="poool_init"
+ data-key="TBX9K-XTCUG-VB4T0-J49VE"
+ data-subscription-url="https://www.challenges.fr/abonnements"
+ data-login-url="https://secure.challenges.fr/login?redirect="
+ data-amorce="0"
+ data-page="free"
+ ></div>
+ </body>
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/clean-links/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/clean-links/expected-images.json
new file mode 100644
index 000000000..be86a5838
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/clean-links/expected-images.json
@@ -0,0 +1,3 @@
+[
+ "http:\/\/fakehost\/test\/hmhome.gif "
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/clean-links/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/clean-links/expected-metadata.json
new file mode 100644
index 000000000..c5166f58c
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/clean-links/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "Ere introducing the scrivener, as he first appeared to me, it is fit \n I make some mention of myself, my employees, my business, my chambers, \n and general surroundings; because some such description is indispensable \n to an adequate understanding of the chief character about to be presented.",
+ "Image": null,
+ "Title": "Bartleby the Scrivener Web Study Text",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/clean-links/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/clean-links/expected.html
new file mode 100644
index 000000000..8c1b8b121
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/clean-links/expected.html
@@ -0,0 +1,1386 @@
+<div>
+ <div>
+ <h3>Study Webtext</h3>
+ <h2><span color="Maroon&#xA; " face="Lucida Handwriting ">"Bartleby the Scrivener: A Story of Wall-Street " </span>(1853) <br></br>
+ Herman Melville</h2>
+ <h2><a href="http://www.vcu.edu/engweb/webtexts/bartleby.html&#xA; " target="_blank "><img alt="To the story text without notes&#xA; " height="38 " src="http://fakehost/test/hmhome.gif " width="38 "></img></a>
+ </h2>
+ <h3>Prepared by <a href="http://www.vcu.edu/engweb ">Ann
+ Woodlief,</a> Virginia Commonwealth University</h3>
+ <h5>Click on text in red for hypertext notes and questions</h5>
+ I
+ am a rather elderly man. The nature of my avocations
+ for the last thirty years has brought me into more than ordinary contact
+ with what would seem an interesting and somewhat singular set of men of whom as yet
+ nothing that I know of has ever been written:-- I mean the law-copyists
+ or scriveners.
+ I have known very many of them, professionally and privately, and if I
+ pleased, could relate divers histories, at which good-natured gentlemen
+ might smile, and sentimental souls might weep. But I waive the biographies
+ of all other scriveners for a few passages
+ in the life of Bartleby, who was a scrivener the strangest
+ I ever saw or heard of. While of other law-copyists I might write the
+ complete life, of Bartleby nothing of that sort can be done. I believe that
+ no materials exist for a full and satisfactory biography of this man. It is an irreparable loss to literature. Bartleby
+ was one of those beings of whom nothing is ascertainable, except from
+ the original sources, and in his case those are very small. What my own
+ astonished eyes saw of Bartleby, that is all I know of him, except, indeed,
+ one vague report which will appear in the sequel.
+ <p>Ere introducing the scrivener, as he first appeared to me, it is fit
+ I make some mention of myself, my employees, my business, my chambers,
+ and general surroundings; because some such description is indispensable
+ to an adequate understanding of the chief character about to be presented.
+ </p><p> <i>Imprimis</i>: I am a man who, from his youth upwards, has been
+ filled with a profound conviction that the easiest way of life is the best.. Hence, though I belong to a profession
+ proverbially energetic and nervous, even to turbulence, at times, yet
+ nothing of that sort have I ever suffered to invade
+ my peace. I am one of those unambitious lawyers who never addresses
+ a jury, or in any way draws down public applause; but in the cool tranquillity
+ of a snug retreat, do a snug business among rich men's bonds and mortgages and title-deeds. The late John Jacob Astor, a personage little given to poetic enthusiasm, had
+ no hesitation in pronouncing my first
+ grand point to be prudence; my next, method. I do not speak
+ it in vanity, but simply record the fact, that I was not
+ unemployed in my profession by the last John Jacob Astor; a name which,
+ I admit, I love to repeat, for it hath a rounded and orbicular sound to
+ it, and rings
+ like unto bullion. I will freely add, that I was not
+ insensible to the late John Jacob Astor's good opinion.</p>
+ <p>Some time prior to the period at which this little history begins, my
+ avocations had been largely increased. The good old office, now
+ extinct in the State of New York, of a Master in Chancery,
+ had been conferred upon me. It was not a very arduous office, but very
+ pleasantly remunerative. I
+ seldom lose my temper; much more seldom indulge in dangerous
+ indignation at wrongs and outrages; but I must be permitted to be rash
+ here and declare, that I consider the sudden and violent abrogation of
+ the office of Master of Chancery, by the new Constitution, as a----premature
+ act; inasmuch as I had counted upon a life-lease of the
+ profits, whereas I only received those of a few short years. But this is
+ by the way.</p>
+ <p>My chambers were up stairs at No.--Wall-street. At one end they looked
+ upon the white wall of the interior of a spacious sky-light shaft, penetrating
+ the building from top to bottom. This view might have been considered rather
+ tame than otherwise, deficient
+ in what landscape painters call "life." But if so, the view
+ from the other end of my chambers offered, at least, a contrast, if nothing
+ more. In that direction my windows commanded an unobstructed view of a
+ lofty brick wall,black by age and everlasting shade; which wall required
+ no spy-glass to bring out its lurking beauties, but for the benefit of
+ all near-sighted spectators, was pushed up to within ten feet of my window
+ panes. Owing to the great height of the surrounding buildings, and my chambers
+ being on the second floor, the interval between this wall and mine not
+ a little resembled a huge square cistern.</p>
+ <p>At the period just preceding the advent of Bartleby, I had two persons
+ as copyists in my employment, and a promising lad as an office-boy. First,
+ Turkey; second, Nippers; third, Ginger Nut.These may seem names, the like
+ of which are not usually found in the Directory. In truth they were nicknames, mutually conferred upon
+ each other by my three clerks, and were deemed expressive of their respective
+ persons or characters. Turkey was a short, pursy Englishman of about my
+ own age, that is, somewhere not far from sixty. In the morning, one might
+ say, his face was of a fine florid hue, but after twelve o'clock, meridian--
+ his dinner hour-- it blazed like a grate full of Christmas coals;
+ and continued blazing--but, as it were, with a gradual wane--till 6 o'clock,
+ P.M. or thereabouts, after which I saw no more of the proprietor of the
+ face, which gaining its meridian with the sun, seemed to set with it, to
+ rise, culminate, and decline the following day, with the like regularity
+ and undiminished glory. There are many singular coincidences I have known
+ in the course of my life, not the least among which was the fact that exactly
+ when Turkey displayed his fullest beams from his red and radiant countenance,
+ just then, too, at the critical moment, began the daily period when I considered
+ his business capacities as seriously disturbed for the remainder of the
+ twenty-four hours. Not that he was absolutely idle, or averse to business
+ then; far from it. The difficulty was, he was apt to be altogether too
+ energetic. There was a strange, inflamed, flurried, flighty
+ recklessness of activity about him. He would be incautious in dipping his
+ pen into his inkstand. All his blots upon my documents, were dropped there
+ after twelve o'clock, meridian. Indeed, not only would he be reckless and
+ sadly given to making blots in the afternoon, but some days he went further,
+ and was rather noisy. At such times, too, his face
+ flamed with augmented blazonry, as if cannel
+ coal had been heaped on anthracite. He made an unpleasant
+ racket with his chair; spilled his sand-box; in mending his pens, impatiently
+ split them all to pieces, and threw them on the floor in a sudden passion;
+ stood up and leaned over his table, boxing his papers about in a most
+ indecorous manner, very sad to behold in an elderly manlike him. Nevertheless,
+ as he was in many ways a most valuable person to me, and all the time before
+ twelve o'clock, meridian, was the quickest, steadiest creature too, accomplishing
+ a great deal of work in a style not easy to be matched--for these reasons,
+ I was willingto overlook his eccentricities, though indeed, occasionally,
+ I remonstrated with him. I did this very gently, however, because, though
+ the civilest, nay, the blandest and most reverential of men in the morning,
+ yet in the afternoon he was disposed, upon provocation, to be slightly
+ rash with his tongue, in fact, insolent. Now, valuing his morning services
+ as I did, and resolved not to lose them; yet, at the same time made uncomfortable
+ by his inflamed ways after twelve o'clock; and being a man
+ of peace, unwilling by my admonitions to call forth unseemingly
+ retorts from him; I took upon me, one Saturday noon (he was always worse
+ on Saturdays), to hint to him, very kindly, that perhaps now that he was
+ growing old, it might be well to abridge his labors; in short, he need
+ not come to my chambers after twelve o'clock, but, dinner over, had best
+ go home to his lodgings and rest himself till tea-time. But no; he insisted
+ upon his afternoon devotions. His countenance became
+ intolerably fervid, as he oratorically assured me--gesticulating with a
+ long ruler at the other end of the room--that if his services in the morning
+ were useful, how indispensible, then, in the afternoon?</p>
+ <p>"With
+ submission, sir," said Turkey on this occasion, "I consider
+ myself your right-hand man. In the morning I but marshal and deploy my
+ columns; but in the afternoon I
+ put myself at their head, and gallantly charge the foe,
+ thus!"--and he made a violent
+ thrust with the ruler.</p>
+ <p>"But the blots, Turkey," intimated I.</p>
+ <p>"True,--but, with submission, sir, behold these hairs! I am getting old.
+ Surely, sir, a blot or two of a warm afternoon is not the page--is honorable.
+ With submission, sir, we both are getting old."</p>
+ <p>This
+ appeal to my fellow-feeling was hardly to be resisted. At
+ all events, I saw that go he would not. So I made up my mind to let him
+ stay, resolving, nevertheless, to see to it, that during the afternoon
+ he had to do with my less important papers.</p>
+ <p>Nippers, the second on my list, was a whiskered, sallow, and, upon the
+ whole, rather piratical-looking young man of about
+ five and twenty. I always deemed him the victim of two evil powers-- ambition
+ and indigestion. The ambition was evinced by a certain impatience of the
+ duties of a mere
+ copyist, an unwarrantable usurpation of strictly profession
+ affairs, such as the original
+ drawing up of legal documents. The indigestion seemed betokened
+ in an occasional nervous testiness and grinning irritability, causing the
+ teeth to audibly grind together over mistakes committed in copying; unnecessary
+ maledictions, hissed, rather than spoken, in the heat of business; and
+ especially by a continual
+ discontent with the height of the table where he worked.
+ Though of a very ingenious mechanical turn, Nippers could never get this
+ table to suit him. He put chips under it, blocks of various sorts, bits
+ of pasteboard, and at last went so far as to attempt an exquisite adjustment
+ by final pieces of folded blotting-paper. But no invention would answer.
+ If, for the sake of easing his back, he brought the table lid at a sharp
+ angle well up towards his chin, and wrote there like a man using the steep
+ roof of a Dutch house for his desk:--then he declared that it stopped the
+ circulation in his arms. If now he lowered the table to his waistbands,
+ and stooped over it in writing, then there was a sore aching in his back.
+ In short, the truth of the matter was, Nippers knew not what he wanted.
+ Or, if
+ he wanted anything, it was to be rid of a scrivener's table
+ altogether. Among the manifestations of his diseased ambition was a fondness
+ he had for receiving visits from certain ambiguous-looking fellows in seedy
+ coats, whom he called his clients. Indeed I was aware that not only was
+ he, at times, considerable of a ward-politician, but he occasionally did
+ a little businessat the Justices' courts, and was not unknown on the
+ steps of the Tombs. I have good reason to believe, however, that one individual
+ who called upon him at my chambers, and who, with a grand air, he insisted
+ was his client, was no other than a dun, and the alleged title-deed, a
+ bill. But with all his failings, and the annoyances he caused me, Nippers,
+ like his compatriot Turkey, was a very useful
+ man to me; wrote a neat, swift hand; and, when he chose,
+ was not deficient in a gentlemanly sort of deportment. Added to this, he
+ always dressedin a gentlemanly sort of way; and so, incidentally,
+ reflected credit upon my chambers. Whereas with respect to Turkey, I had
+ much ado to keep him from being a reproach to me. His clothes were apt
+ to look oily and smell of eating-houses. He wore his pantaloons very loose
+ and baggy in summer. His coats were execrable; his hat not to be handled.
+ But while the hat was a thing of indifference to
+ me, inasmuch as his natural civility and deference, as a dependent Englishman,
+ always led him to doff it the moment he entered the room, yet his coat
+ was another matter. Concerning his coats, I reasoned with him; but with
+ no effect. The truth was, I suppose, that a man with so small an income,
+ could not afford to sport such a lustrous face and a lustrous coat at one
+ and the same time. As Nippers once observed, Turkey's money went chiefly
+ for red ink. One winter day
+ I presented Turkey with a highly-respectable looking coat
+ of my own, a padded gray coat, of a most comfortable warmth, and which
+ buttoned straight up from the knee to the neck. I thought Turkey would
+ appreciate the favor, and abate his rashness and obstreperousness of afternoons.
+ But no. I verily believe that buttoning himself up in so downy and blanket-like
+ a coat had a pernicious effect upon him; upon the same principle that too
+ much oats are bad for horses. In fact, precisely as a rash, restive horse
+ is said to feel his oats, so Turkey felt his coat. It made
+ him insolent. He was a man whom prosperity harmed.</p>
+ <p>Though concerning the self-indulgent habits of Turkey I had my own private
+ surmises, yet touching Nippers I was well persuaded that whatever might
+ be his faults in other respects, he was, at least, a temperate young man.
+ But indeed, nature herself seemed to have been his vintner, and at his birth charged
+ him so thoroughly with an irritable, brandy-like disposition, that all
+ subsequent potations were needless. When I consider how, amid the stillness
+ of my chambers, Nippers would sometimes impatiently rise from his seat,
+ and stooping over his table, spread his arms wide apart, seize the whole
+ desk, and move it, and jerk it, with a grim, grinding motion on the floor,
+ as if the table were a perverse
+ voluntary agent, intent on thwarting and vexing him; I plainly
+ perceive that for Nippers, brandy and water were altogether superfluous.</p>
+ <p>It was fortunate for me that, owing to its course--indigestion--the irritability
+ and consequent nervousness of Nippers, were mainly observable in the morning,
+ while in the afternoon he was comparatively mild. So that Turkey's paroxysms
+ only coming on about twelve o'clock, I never had to do with their eccentricities
+ at one time. Their fits relieved each other like guards. When Nippers'
+ was on, Turkey's was off, and vice versa. This was a good
+ natural arrangement under the circumstances.</p>
+ <p>Ginger Nut, the third on my list, was a lad some twelve years old. His
+ father was a carman, ambitious of seeing his son on the bench instead of
+ a cart, before he died. So he sent him to my office as a student at law,
+ errand boy, and cleaner and sweeper, at the rate of one dollar a week.
+ He had a little desk to himself, but he did not use it much. Upon inspection,
+ the drawer exhibited a great array of the shells of various sorts of nuts.
+ Indeed, to this quick-witted youth the whole noble science of the law was
+ contained in a nut-shell. Not the least among the employments of Ginger
+ Nut, as well as one which he discharged with the most alacrity, was his
+ duty as cake and apple purveyor for Turkey and Nippers. Copying law papers
+ being proverbially a dry,
+ husky sort of business, my two scriveners were fain to moisten
+ their mouths very often with Spitzenbergs to be had at the numerous stalls
+ nigh the Custom House and Post Office. Also, they sent Ginger Nut very
+ frequently for that peculiar cake--small, flat, round, and very spicy--after
+ which he had been named by them. Of a cold morning when business was but
+ dull, Turkey would gobble up scores of these cakes, as if they were mere
+ wafers--indeed they sell them at the rate of six or eight for a penny--the
+ scrape of his pen blending with the crunching of the crisp particles in
+ his mouth. Of all the fiery afternoon blunders and flurried rashnesses
+ of Turkey, was his once moistening a ginger-cake between his lips, and
+ clapping it on to a mortgage for a seal. I
+ came within an ace of dismissing him then. But he mollified
+ me by making an oriental bow, and saying--"With submission, sir, it was
+ generous of me to
+ find you in stationery on my own account."</p>
+ <p>Now my original business--that of a conveyancer
+ and title hunter, and drawer-up of recondite documents of
+ all sorts--was considerably increased by receiving the master's office.
+ There was now great work for scriveners. Not only must I push the clerks
+ already with me, but I must have additional help. In answer to my advertisement,
+ a motionless young man one morning, stood upon my office threshold, the
+ door being open, for it was summer. I can see that figure now--pallidly
+ neat, pitiably respectable, incurably forlorn! It was Bartleby.</p>
+ <p>After a few words touching his qualifications, I engaged him, glad to
+ have among my
+ corps of copyists a man of so singularly
+ sedate an aspect, which I thought might operate beneficially
+ upon the flighty temper of Turkey, and the fiery one of Nippers.</p>
+ <p>I should have stated before that ground glass folding-doors divided my
+ premises into two parts, one of which was occupied by my scriveners, the
+ other by myself. According
+ to my humor I threw open these doors, or closed them. I resolved
+ to assign Bartleby a corner by the folding-doors, but on my side of them,
+ so as to have this quiet man within easy call, in case any trifling
+ thing was to be done. I placed his desk close up to a small
+ side window in that part of the room, a window which originally had afforded
+ a lateral view of certain grimy back-yards and bricks, but which, owing
+ to subsequent
+ erections, commanded at present no view at all, though it
+ gave some light. Within three feet of the panes was a wall, and the light
+ came down from far above, between two lofty buildings, as from a very small
+ opening in a dome. Still further to a satisfactory arrangement, I procured
+ a high green folding screen, which might entirely isolate Bartleby
+ from my sight, though not remove him from my
+ voice. And thus, in a manner, privacy and society were
+ conjoined.
+ </p>
+ <p>At first Bartleby did an extraordinary quantity of writing. As if long
+ famishingfor something to copy, he seemed to gorge himself on my documents. There
+ was no pause for digestion. He ran a day and night line, copying by sun-light
+ and by candle-light. I should have been quite delighted with his application,
+ had be been cheerfully
+ industrious. But he wrote on silently, palely, mechanically.
+ </p>
+ <p>It is, of course, an indispensable part of a scrivener's business to verify
+ the accuracy of his copy, word by word. Where there are two or more scriveners
+ in an office, they assist each other in this examination, one reading from
+ the copy, the other holding the original. It is a very
+ dull, wearisome, and lethargic affair. I can readily imagine
+ that to some sanguine temperaments it would be altogether
+ intolerable. For example, I cannot credit that the mettlesome
+ poet Byron would have contentedly sat down with Bartleby
+ to examine a law document of, say five hundred pages, closely written in
+ a crimpy hand.</p>
+ <p>Now and then, in the haste of business, it had been my habit to assist
+ in comparing some brief document myself, calling Turkey or Nippers for
+ this purpose. One object I had in placing Bartleby so handy to me behind
+ the screen, was to avail myself of his services on such trivial
+ occasions. It was on the third day, I think, of his being
+ with me, and before any necessity had arisen for having his own writing
+ examined, that, being much hurried to complete a small affair I had in
+ hand, I abruptly called to Bartleby. In my haste and natural
+ expectancy of instant compliance, I sat with my head bent
+ over the original on my desk, and my right hand sideways, and somewhat
+ nervously extended with the copy, so that immediately upon emerging from
+ his retreat, Bartleby might snatch it and proceed to business without
+ the least delay.</p>
+ <p>In this very attitude did I sit when I called to him, rapidly stating
+ what it was I wanted him to do--namely, to examine a small paper with me.
+ Imagine my surprise, nay, my consternation, when without moving from his
+ privacy, Bartleby in a singularly mild,
+ firm voice, replied,"I
+ would prefer not to."
+ </p>
+ <p>I sat awhile in perfect silence, rallying my stunned faculties. Immediately
+ it occurred to me that my ears had deceived me, or Bartleby had entirely
+ misunderstood my meaning. I repeated my request in the clearest tone I
+ could assume. But in quite as clear a one came the previous reply, "I would
+ prefer not to."</p>
+ <p>"Prefer not to," echoed I, rising in high excitement, and crossing the
+ room with a stride, "What do you mean? Are you moon-struck? I want you to help me
+ compare this sheet here--take it," and I thrust it towards him.</p>
+ <p>"I would prefer not to," said he.</p>
+ <p>I looked at him steadfastly. His face was leanly composed; his gray eye
+ dimly calm. Not a wrinkle of agitation rippled him. Had there been the
+ least uneasiness, anger, impatience or impertinence in his manner; in other
+ words, had there been any thing ordinarily
+ human about him, doubtless I
+ should have violently dismissed him from the premises. But
+ as it was, I should have as soon thought of turning my pale plaster-of-paris
+ bust of Cicero out of doors. I stood gazing at him awhile,
+ as he went on with his own writing, and then reseated myself at my desk.
+ This is very strange, thought I. What had one best do? But my business hurried
+ me. I concluded to forget the matter for the present, reserving it for
+ my future leisure. So calling Nippers from the other room, the paper was
+ speedily examined.</p>
+ <p>A few days after this, Bartleby concluded four lengthy documents, being
+ quadruplicates of a week's testimony taken before me in my High Court of
+ Chancery. It became necessary to examine them. It was an important suit,
+ and great accuracy was imperative. Having all things arranged I called
+ Turkey, Nippers and Ginger Nut from the next room, meaning to place the
+ four copies in the hands of my four clerks, while I should read from the
+ original. Accordingly Turkey, Nippers and Ginger Nut had taken their seats
+ in a row, each with his document in hand, when I called to Bartleby to
+ join this interesting
+ group.</p>
+ <p>"Bartleby! quick, I am waiting."</p>
+ <p>I heard a low scrape of his chair legs on the unscraped floor, and soon
+ he appeared standing at the entrance of his hermitage.
+ </p>
+ <p>"What is wanted?" said he mildly.</p>
+ <p>"The copies, the copies," said I hurriedly. "We are going to examine them.
+ There"--and I held towards him the fourth quadruplicate.</p>
+ <p>"I would prefer not to," he said, and gently disappeared behind the screen.</p>
+ <p>For a few moments I was turned into a
+ pillar of salt, standing at the head of my seated column
+ of clerks. Recovering myself, I advanced towards the screen, and demanded
+ the reason for such extraordinary conduct.</p>
+ <p>"<i>Why</i> do you refuse?"</p>
+ <p>"I would prefer not to."</p>
+ <p>With any other man I should have flown
+ outright into a dreadful passion, scorned all further words,
+ and thrust him ignominiously from my presence. But there was something
+ about Bartleby that not only strangely disarmed me, but in a wonderful
+ manner touched and disconcerted me. I began to reason with him.</p>
+ <p>"These are your own copies we are about to examine. It is labor saving
+ to you, because one examination will answer for your four papers. It
+ is common usage. Every copyist is bound to help examine his
+ copy. Is it not so? Will you not speak? Answer!"</p>
+ <p>"I prefer not to," he replied in a flute-like tone. It seemed to me that
+ while I had been addressing him, he carefully revolved every statement
+ that I made; fully comprehended the meaning; could not gainsay the irresistible
+ conclusion; but, at the same time, some paramount consideration prevailed
+ with him to reply as he did.</p>
+ <p>"You are decided, then, not to comply with my request--a request made
+ according to common usage and common sense?"</p>
+ <p>He briefly gave me to understand that on that point my
+ judgment was sound. Yes: his decision was irreversible.</p>
+ <p>It is not seldom the case that when a man is browbeaten in some unprecedented and
+ violently unreasonable way, he
+ begins to stagger in his own plainest faith. He begins, as
+ it were, vaguely to surmise that, wonderful as it may be, all the justice
+ and all the reason is on the other side. Accordingly, if any disinterested
+ persons are present, he turns to them for some reinforcement for his own
+ faltering mind.
+ </p>
+ <p>"Turkey," said I, "what do you think of this? Am I not right?"</p>
+ <p>"With submission, sir," said Turkey, with his blandest tone, "I think
+ that you are."</p>
+ <p>"Nippers," said I, "what do<i> you</i> think of it?"</p>
+ <p>"I think I should kick him out of the office."</p>
+ <p>(The reader of nice perceptions will here perceive that, it being morning,
+ Turkey's answer is couched in polite and tranquil terms, but Nippers replies
+ in ill-tempered ones. Or, to repeat a previous sentence, Nipper's ugly
+ mood was on duty, and Turkey's off.)</p>
+ <p>"Ginger Nut," said I, willing to enlist the smallest suffrage in my behalf,
+ "what do<i> you</i> think of it?"</p>
+ <p>"I think, sir, he's a little<i> luny</i>," replied Ginger Nut, with a
+ grin.</p>
+ <p>"You hear what they say," said I, turning towards the screen, "come forth
+ and do
+ your duty."</p>
+ <p>But he vouchsafed no reply. I pondered a moment in sore perplexity. But
+ once more business hurried me. I determined again to postpone the consideration
+ of this dilemma to my future leisure. With a little trouble we made out
+ to examine the papers without Bartleby, though at every page or two, Turkey
+ deferentially dropped his opinion that this proceeding was quite out of
+ the common; while Nippers, twitching in his chair with a dyspeptic nervousness,
+ ground out between his set teeth occasional hissing maledictions against
+ the stubborn oaf behind the screen. And for his (Nipper's) part, this was
+ the first and the last time he would do another man's business without
+ pay.</p>
+ <p>Meanwhile Bartleby sat in his hermitage, oblivious to every thing but
+ his own peculiar business there.</p>
+ <p>Some days passed, the scrivener being employed upon another lengthy work.
+ His late remarkable conduct led me to regard his way narrowly. I observed
+ that he never went to dinner; indeed that he never went any where. As yet
+ I had never of my personal knowledge known him to be outside of my office.
+ He was a perpetual
+ sentry in the corner. At about eleven o'clock though, in
+ the morning, I noticed that Ginger Nut would advance toward the opening
+ in Bartleby's screen, as if silently beckoned thither by a gesture invisible
+ to me where I sat. That boy would then leave the office jingling a few
+ pence, and reappear with a handful of ginger-nuts which he delivered in
+ the hermitage, receiving two of the cakes for his trouble.</p>
+ <p>He lives, then, on ginger-nuts, thought I; never eats a dinner, properly
+ speaking; he must be a vegetarian then, but no; he never eats even vegetables,
+ he eats
+ nothing but ginger-nuts. My mind then ran on in reveries
+ concerning the probable effects upon the human constitution of living entirely
+ on ginger-nuts. Ginger-nuts are so called because they contain ginger as
+ one of their peculiar constituents, and the final flavoring one. Now what
+ was ginger? A hot, spicy thing. Was Bartleby hot and spicy? Not at all.
+ Ginger, then, had no effect upon Bartleby. Probably
+ he preferred it should have none.
+ </p>
+ <p>Nothing so aggravates an earnest person as a passive
+ resistance. If the individual so resisted be of a not inhumane
+ temper, and the resisting one perfectly harmless in his passivity; then,
+ in the better moods of the former, he will endeavor charitably to construe
+ to his imagination what proves impossible to be solved by
+ his judgment. Even so, for the most part, I regarded Bartleby and his ways.
+ Poor fellow! thought I, he means no mischief; it is plain he intends no
+ insolence; his aspect sufficiently evinces that his eccentricities are
+ involuntary. He
+ is useful to me. I can get along with him. If I turn him
+ away, the chances are he will fall in with some less indulgent employer,
+ and then he will be rudely treated, and perhaps driven forth miserably
+ to starve. Yes. Here I
+ can cheaply purchase a delicious self-approval. To befriend
+ Bartleby; to humor him in his strange willfulness, will cost me little
+ or nothing, while I lay up in my soul what will eventually prove a sweet
+ morsel for my conscience. But this mood was not invariable
+ with me. The passiveness of Bartleby sometimes irritated me. I felt strangely
+ goaded on to encounter him in new opposition, to elicit some angry spark
+ from him answerable to my own. But indeed I might as well have essayed
+ to strike fire with my knuckles against a bit of Windsor
+ soap. But one afternoon the evil impulse in me mastered
+ me, and the following little scene ensued:</p>
+ <p>"Bartleby," said I, "when those papers are all copied, I will compare
+ them with you."</p>
+ <p>"I would prefer not to."</p>
+ <p>"How? Surely you do not mean to persist in that mulish
+ vagary?"</p>
+ <p>No answer.</p>
+ <p>I threw open the folding-doors near by, and turning upon Turkey and Nippers,
+ exclaimed in an excited manner--</p>
+ <p>"He says, a second time, he won't examine his papers. What do you think
+ of it, Turkey?"</p>
+ <p>It was afternoon, be it remembered. Turkey sat glowing like a brass boiler,
+ his bald head steaming, his hands reeling among his blotted papers.</p>
+ <p>"Think of it?" roared Turkey; "I think I'll just step behind his screen,
+ and black his eyes for him!"</p>
+ <p>So saying, Turkey rose to his feet and threw his arms into a pugilistic
+ position. He was hurrying away to make good his promise,
+ when I detained him, alarmed at the effect of incautiously rousing Turkey's
+ combativeness after dinner.</p>
+ <p>"Sit down, Turkey," said I, "and hear what Nippers has to say. What do
+ you think of it, Nippers? Would I not be justified in immediately dismissing
+ Bartleby?"</p>
+ <p>"Excuse me, that is for you to decide, sir. I think his conduct quite
+ unusual, and indeed unjust, as regards Turkey and myself. But it may only
+ be a passing whim."</p>
+ <p>"Ah," exclaimed I, "you have strangely changed your mind then--you speak
+ very gently of him now."</p>
+ <p>"All beer," cried Turkey; "gentleness is effects of beer--Nippers and
+ I dined together to-day. You see how gentle I am, sir. Shall I go and black
+ his eyes?"</p>
+ <p>"You refer to Bartleby, I suppose. No, not to-day, Turkey," I replied;
+ "pray, put up your fists."</p>
+ <p>I closed the doors, and again advanced towards Bartleby. I felt additional
+ incentives tempting me to my fate. I
+ burned to be rebelled against again. I remembered that Bartleby
+ never left the office.</p>
+ <p>"Bartleby," said I, "Ginger Nut is away; just step round to the Post
+ Office, won't you? (it was but a three minutes walk,) and
+ see if there is any thing for me."</p>
+ <p>"I would prefer not to."</p>
+ <p>"You<i> will</i> not?"</p>
+ <p>"I <i>prefer</i> not."</p>
+ <p>I staggered to my desk, and sat there
+ in a deep study. My blind
+ inveteracy returned. Was there any other thing in which I
+ could procure myself to be ignominiously repulsed by this lean,
+ penniless with?--my
+ hired clerk? What added thing is there, perfectly reasonable,
+ that he will be sure to refuse to do?</p>
+ <p>"Bartleby!"</p>
+ <p>No answer.</p>
+ <p>"Bartleby," in a louder tone.</p>
+ <p>No answer.</p>
+ <p>"Bartleby," I roared.</p>
+ <p>Like a
+ very ghost, agreeably to the laws of magical invocation,
+ at the third summons, he appeared at the entrance of his hermitage.</p>
+ <p>"Go to the next room, and tell Nippers to come to me."</p>
+ <p>"I prefer not to," he respectfully
+ and slowly said, and mildly disappeared.</p>
+ <p>"Very good, Bartleby," said I, in a quiet sort of serenely severe self-possessed
+ tone, intimating the unalterable purpose of some terrible
+ retribution very close at hand. At the moment I half intended
+ something of the kind. But upon the whole, as it was drawing towards my
+ dinner-hour, I thought it best to put on my hat and walk home for the day,
+ suffering much from perplexity and distress of mind.</p>
+ <p> Shall
+ I acknowledge it? The conclusion of this whole business was
+ that it soon became a fixed fact of my chambers, that a pale young scrivener,
+ by the name of Bartleby, had a desk there; that he copied for me at the
+ usual rate of four
+ cents a folio (one hundred words); but he was permanently
+ exempt from examining the work done by him, that duty being transferred
+ to Turkey and Nippers, one of compliment doubtless to their superior acuteness;
+ moreover, said Bartleby was never on any account to be dispatched on the
+ most trivial errand of any sort; and that even if entreated to take upon
+ him such a matter, it was generally understood that he would prefer not
+ to--in other words, that he would refuse point-blank.
+ </p>
+ <p>32 As days passed on, I became considerably reconciled to Bartleby. His
+ steadiness, his freedom from all dissipation, his incessant industry (except
+ when he chose to throw himself into a standing revery behind his screen),
+ his great stillness, his unalterableness of demeanor under all circumstances,
+ made him a
+ valuable acquisition. One prime thing was this,--he was
+ always there;--first in the morning, continually through the day, and the
+ last at night. I had a singular confidence in his honesty. I felt my most
+ precious papers perfectly safe in his hands. Sometimes to be sure I could
+ not, for
+ the very soul of me, avoid falling into sudden spasmodic
+ passions with him. For it was exceeding difficult to bear in mind all the
+ time those strange peculiarities, privileges, and unheard of exemptions,
+ forming the tacit stipulations on Bartleby's part under which he remained
+ in my office. Now and then, in the eagerness of dispatching pressing business,
+ I would inadvertently summon Bartleby, in a short, rapid tone, to put his
+ finger, say, on the incipient tie of a bit of red tape with which I was
+ about compressing some papers. Of course, from behind the screen the usual
+ answer, "I prefer not to," was sure to come; and then, how
+ could a human creature with the common infirmities of our
+ nature, refrain from bitterly exclaiming upon such perverseness--such unreasonableness.
+ However, every added repulse of this sort which I received only tended
+ to lessen the probability of my repeating the inadvertence.</p>
+ <p>Here is must be said, that according to the custom of most legal gentlemen
+ occupying chambers in densely-populated law buildings, there were several
+ keys to my door. One was kept by a woman residing in the attic, which person
+ weekly scrubbed and daily swept and dusted my apartments. Another was kept
+ by Turkey for convenience sake. The third I sometimes carried in my own
+ pocket. The fourth I knew not who had.</p>
+ <p>Now, one Sunday morning I happened to go to Trinity Church, to
+ hear a celebrated preacher, and finding myself rather early
+ on the ground, I thought I would walk round to my chambers for a while.
+ Luckily I had my key with me; but upon applying it to the lock, I found
+ it resisted by something inserted from the inside. Quite surprised, I called
+ out; when to my consternation a key was turned from within; and thrusting
+ his lean visage at me, and holding the door ajar, the
+ apparition of Bartleby appeared, in his shirt sleeves, and
+ otherwise in a strangely tattered dishabille, saying quietly that he was
+ sorry, but he was deeply engaged just then, and--preferred not admitting
+ me at present. In a brief word or two, he moreover added, that perhaps
+ I had better walk round the block two or three times, and by that time
+ he would probably have concluded his affairs. Now, the utterly unsurmised
+ appearance of Bartleby, tenanting my law-chambers of a Sunday
+ morning, with his cadaverously gentlemanly nonchalance,
+ yet withal firm and self-possessed, had such a strange effect upon me,
+ that incontinently I slunk away from my own door, and did as desired. But
+ not without sundry twinges of impotent rebellion against the mild effrontery
+ of this unaccountable scrivener. Indeed, it was his wonderful mildness
+ chiefly, which not only disarmed me, but unmanned me, as it were. For I consider
+ that one, for the time, is a sort of unmanned when he tranquilly permits
+ his hired clerk to dictate to him, and order
+ him away from his own premises. Furthermore, I was full of
+ uneasiness as to what Bartleby could possibly be doing in my office in
+ his shirt sleeves, and in an otherwise dismantled condition of a Sunday
+ morning. Was any thing amiss going on? Nay, that was out of the question.
+ It was not to be thought of for a moment that Bartleby was an immoral person.
+ But what could he be doing there?--copying? Nay again, whatever might be
+ his eccentricities, Bartleby was an eminently decorous person. He would
+ be the last man to sit down to his desk in any state approaching to nudity.
+ Besides, it was Sunday; and there was something about Bartleby that forbade
+ the supposition that we would by any secular occupation violate the
+ proprieties of the day.</p>
+ <p>Nevertheless, my mind was not pacified; and full of a restless curiosity,
+ at last I returned to the door. Without hindrance I inserted my key, opened
+ it, and entered. Bartleby was not to be seen. I looked round anxiously,
+ peeped behind his screen; but it was very plain that he was gone. Upon
+ more closely examining the place, I surmised that for an indefinite period
+ Bartleby must have ate, dressed, and slept in my office, and that too without
+ plate, mirror, or bed. The cushioned seat of a rickety old sofa in one
+ corner bore t faint impress of a lean, reclining form. Rolled away under
+ his desk, I found a blanket; under the empty grate, a blacking box and
+ brush; on a chair, a tin basin, with soap and a ragged towel; in a newspaper
+ a few crumbs of ginger-nuts and a morsel of cheese. Yet, thought I, it
+ is evident enough that Bartleby has been making his home here, keeping
+ bachelor's hallall by himself. Immediately then the thought came sweeping
+ across me, What miserable friendlessness and loneliness are here revealed!
+ His poverty is great; but his solitude, how
+ horrible! Think of it. Of a Sunday, Wall-street is deserted
+ as Petra; and every night of every day
+ it is an emptiness. This building too, which of week-days hums with industry
+ and life, at nightfall echoes with sheer vacancy, and all through Sunday
+ is forlorn. And here Bartleby makes his home; sole spectator of a solitude
+ which he has seen all populous--a sort of innocent and transformed Marius
+ brooding among the ruins of Carthage!
+ </p>
+ <p>For the first
+ time in my life a feeling of overpowering stinging melancholy
+ seized me. Before, I had never experienced aught but a not-unpleasing sadness.
+ The bond of a common humanity now drew me irresistibly to gloom. A fraternal
+ melancholy! For both I and Bartleby were sons
+ of Adam. I remembered the bright silks and sparkling faces
+ I had seen that day in gala trim, swan-like sailing down the Mississippi
+ of Broadway; and I contrasted them with the pallid copyist, and thought
+ to myself, Ah, happiness courts the light, so we deem the world is gay;
+ but misery hides aloof, so we deem that misery there is none. These sad
+ fancyings-- chimeras, doubtless, of a sick and
+ silly brain--led on to other and more special thoughts, concerning the
+ eccentricities of Bartleby. Presentiments of strange discoveries hovered
+ round me. The scrivener's pale form appeared to me laid
+ out, among uncaring strangers, in its shivering winding
+ sheet.</p>
+ <p>Suddenly I was attracted by Bartleby's closed desk, the key in open sight
+ left in the lock.</p>
+ <p> I
+ mean no mischief, seek the gratification of no heartless
+ curiosity, thought I; besides, the desk is mine, and its contents too,
+ so I will make bold to look within. Every thing was methodically arranged,
+ the papers smoothly placed. The pigeon holes were deep, and removing the
+ files of documents, I groped into their recesses. Presently I felt something
+ there, and dragged it out. It was an old bandanna handkerchief, heavy and
+ knotted. I opened it, and saw it was a savings' bank.</p>
+ <p>I now recalled all the quiet mysteries which I had noted in the man. I
+ remembered that he never spoke but to answer; that though at intervals
+ he had considerable time to himself, yet I had never seen him reading--no,
+ not even a newspaper; that for long periods he would stand looking out,
+ at his pale window behind the screen, upon the dead brick wall; I was quite
+ sure he never visited any refectory or eating house; while his pale face
+ clearly indicated that he never drank beer like Turkey, or tea and coffee
+ even, like other men; that he never went any where in particular that I
+ could learn; never went out for a walk, unless indeed that was the case
+ at present; that he had declined telling who he was, or whence he came,
+ or whether he had any relatives in the world; that though so thin and pale,
+ he never complained of ill health. And more than all, I remembered a certain
+ unconscious air of pallid--how shall I call it?--of pallid
+ haughtiness, say, or rather an austere reserve about him,
+ which had positively awed me into my tame compliance with his eccentricities,
+ when I had feared to ask him to do the slightest incidental thing for me,
+ even though I might know, from his long-continued motionlessness, that
+ behind his screen he must be standing in one of those dead-wall
+ reveries of his.</p>
+ <p>Revolving all these things, and coupling them with the recently discovered
+ fact that he made my office his constant abiding place and home, and not
+ forgetful of his morbid moodiness; revolving all these things, a prudential
+ feeling began to steal over me. My first emotions had been
+ those of pure melancholy and sincerest pity; but just in proportion as
+ the forlornness of Bartleby grew and grew to my imagination, did that same
+ melancholy merge into fear, that pity into repulsion. So
+ true it is, and so terrible too, that up to a certain point the thought
+ or sight of misery enlists our best affections; but, in certain special
+ cases, beyond that point it does not. They err who would assert that invariably
+ this is owing to the inherent selfishness of the human heart. It rather
+ proceeds from a certain hopelessness of remedying excessive and organic
+ ill. To a sensitive being, pity is not seldom pain. And when at last it
+ is perceived that such pity cannot lead to effectual succor, common sense
+ bids the soul be rid of it. What I saw that morning persuaded me that the
+ scrivener was the victim of
+ innate and incurable disorder. I might give alms to his body;
+ but his body did not pain him; it was his soul that suffered, and his
+ soul I could not reach.
+ </p>
+ <p>I did not accomplish the purpose of going to Trinity Church that morning.
+ Somehow, the
+ things I had seen disqualified me for the time from church-going.
+ I walked homeward, thinking what I would do with Bartleby. Finally, I
+ resolvedupon this;--I would put certain calm questions to him the
+ next morning, touching his history, &amp;c., and if he declined to answer
+ then openly and reservedly (and I supposed he would prefer not), then to
+ give him a twenty dollar bill over and above whatever I might owe him,
+ and tell him his services were no longer required; but that if in any other
+ way I could assist him, I would be happy to do so, especially if he desired
+ to return to his native place, wherever that might be, I would willingly
+ help to defray the expenses. Moreover, if after reaching home, he found
+ himself at any time in want of aid, a letter from him would be sure of
+ a reply.</p>
+ <p>The next morning came.</p>
+ <p>"Bartleby," said I, gently calling to him behind the screen.</p>
+ <p>No reply.</p>
+ <p>"Bartleby," said I, in a still gentler tone, "come here; I am not going
+ to ask you to do any thing you would prefer not to do--I simply wish to
+ speak to you."</p>
+ <p>Upon this he noiselessly slid into view.</p>
+ <p>"Will you tell me, Bartleby, where
+ you were born?"
+ </p>
+ <p>"I would prefer not to."</p>
+ <p>"Will you tell me <i>anything </i>about yourself?"</p>
+ <p>"I would prefer not to."</p>
+ <p>"But what reasonable
+ objection can you have to speak to me? I feel friendly towards
+ you."</p>
+ <p>He did not look at me while I spoke, but kept his glance fixed upon my
+ bust of Cicero, which as I then sat, was directly behind me, some
+ six inches above my head. "What is your answer, Bartleby?" said I, after
+ waiting a considerable time for a reply, during which his countenance remained
+ immovable, only there was the faintest
+ conceivable tremor of the white attenuated mouth.</p>
+ <p>"At present I prefer to give no answer," he said, and retired into his
+ hermitage.</p>
+ <p>It was rather weak in me I confess, but his manner on this occasion nettled
+ me. Not only did there seem to lurk in it a certain disdain, but his
+ perverseness seemed ungrateful, considering the undeniable
+ good usage and indulgence he had received from me.</p>
+ <p>Again I sat ruminating what I should do.Mortified as I was at his behavior,
+ and resolved as I had been to dismiss him when I entered my office, nevertheless
+ I strangely felt something superstitious knocking at my heart, and forbidding
+ me to carry out my purpose, and denouncing me for a villain if I dared
+ to breathe one bitter word against this forlornest of mankind. At last,
+ familiarly drawing my chair behind his screen, I sat down and said: "Bartleby,
+ never mind then about revealing your history; but let me entreat you,
+ as a friend, to comply as far as may be with the usages of this office.
+ Say now you will help to examine papers tomorrow or next day: in short,
+ say now that in a day or two you will begin to be a little reasonable:--say
+ so, Bartleby."</p>
+ <p>"At present I would prefer not to be a little reasonable
+ was his idly cadaverous reply.,"</p>
+ <p>Just then the folding-doors opened, and Nippers approached. He seemed
+ suffering from an unusually bad night's rest, induced by severer indigestion
+ than common. He overheard those final words of Bartleby.</p>
+ <p><i>"Prefer</i> not,
+ eh?" gritted Nippers--"I'd<i> prefer</i> him, if I were you, sir," addressing
+ me--"I'd <i>prefer</i> him; I'd give him preferences, the stubborn mule!
+ What is it, sir, pray, that he <i>prefers</i> not to do now?"</p>
+ <p>Bartleby moved not a limb.</p>
+ <p>"Mr.
+ Nippers," said I, "I'd prefer that you would withdraw for the present."
+ </p>
+ <p>Somehow, of late I had got into the way of involuntary using this word
+ "prefer" upon all sorts of not exactly suitable occasions. And I trembled
+ to think that my contact with the scrivener had already and seriously affected
+ me in a mental way. And what further and deeper aberration might it not yet produce?
+ This apprehension had not been without efficacy in determining me to summary
+ means.</p>
+ <p>As Nippers, looking very sour and sulky, was departing, Turkey blandly
+ and deferentially approached.</p>
+ <p>"With submission, sir," said he, "yesterday I was thinking about Bartleby
+ here, and I think that if he would but prefer to take a quart of good ale
+ every day, it would do much towards mending him, and enabling him to assist
+ in examining his papers."</p>
+ <p>"So you have got the word too," said I, slightly excited.</p>
+ <p>"With submission, what word, sir," asked Turkey, respectfully crowding
+ himself into the contracted space behind the screen, and by so doing, making
+ me jostle
+ the scrivener. "What word, sir?"</p>
+ <p>"I would prefer to be left alone here," said Bartleby, as if offended
+ at being mobbed
+ in his privacy.
+ </p>
+ <p>"<i>That's</i> the word, Turkey," said I--<i>"that's</i> it."</p>
+ <p>"Oh,<i> prefer</i> oh yes--queer word. I never use it myself. But, sir
+ as I was saying, if he would but prefer--"</p>
+ <p>"Turkey," interrupted I, "you will please withdraw."</p>
+ <p>"Oh, certainly, sir, if
+ you prefer that I should."</p>
+ <p>As he opened the folding-door to retire, Nippers at his desk caught a
+ glimpse of me, and asked whether I would prefer to have a certain paper
+ copied on blue paper or white. He did not in the least roguishly accent
+ the word prefer. It was plain that it involuntarily rolled from his tongue.
+ I thought to myself, surely I must get rid of a demented man, who already has in some
+ degree turned the tongues, if not the heads of myself and clerks. But I
+ thought it prudent not to break the dismission
+ at once.</p>
+ <p>The next day I noticed that Bartleby
+ did nothing but stand at his window in his dead-wall revery.
+ Upon asking him why he did not write, he said that he had decided upon
+ doing no more writing.</p>
+ <p>"Why, how now? what next?" exclaimed I, "do no more writing?"</p>
+ <p>"No more."</p>
+ <p>"And what is the reason?"</p>
+ <p>"Do
+ you not see the reason for yourself," he indifferently replied.</p>
+ <p>I looked steadfastly at him, and perceived that his eyes looked dull and
+ glazed. Instantly it occurred to me, that his unexampled diligence in copying
+ by his dim window for the first few weeks of his stay with me might have
+ temporarily impaired
+ his vision.</p>
+ <p>I was touched. I said something in condolence with him. I hinted that
+ of course he did wisely in abstaining from writing for a while; and urged
+ him to embrace that opportunity of taking wholesome exercise in the open
+ air. This, however, he
+ did not do. A few days after this, my other clerks being
+ absent, and being in a great hurry to dispatch certain letters by the mail,
+ I thought that, having nothing else earthly to do, Bartleby would surely
+ be less inflexible than usual, and carry these letters to
+ the post-office. But he blankly declined. So, much to my
+ inconvenience, I went myself.</p>
+ <p>Still added
+ days went by. Whether Bartleby's eyes improved or not, I
+ could not say. To all appearance, I thought they did. But when I asked
+ him if they did, he vouchsafed no answer. At all events, he would do no
+ copying. At last, in reply to my urgings, he informed me that he had permanently
+ given up copying.</p>
+ <p>"What!" exclaimed I; "suppose your eyes should get entirely well- better
+ than ever before--would you not copy then?"</p>
+ <p>"I have given up copying," he answered, and slid
+ aside.
+ </p>
+ <p>He remained as ever, a
+ fixture in my chamber. Nay--if that were possible--he became
+ still more of a fixture than before. What was to be done? He would do nothing
+ in the office: why should he stay there? In plain fact, he had now become
+ a millstone to me, not only useless as a necklace, but afflictive to bear.
+ Yet I was sorry for him. I speak less than truth when I say that, on his
+ own account, he occasioned me uneasiness. If he would but have named a
+ single relative or friend, I would instantly have written, and urged their
+ taking the poor fellow away to some convenient retreat. But he seemed alone,
+ absolutely alone in the universe. A
+ bit of wreck&lt;/font&gt; in the mid Atlantic. At length,
+ necessities connected with my business tyrannized over all other considerations.
+ Decently as I could, I told Bartleby that in six days' time he must unconditionally
+ leave the office. I warned him to take measures, in the interval, for procuring
+ some other abode. I offered to assist him in this endeavor, if he himself
+ would but take the first step towards a removal. "And when you finally
+ quit me, Bartleby," added I, "I shall see that you go not away entirely
+ unprovided. Six days from this hour, remember."</p>
+ <p>At the expiration of that period, I peeped behind the screen, and lo!
+ Bartleby was there.
+ </p>
+ <p>I buttoned
+ up my coat, balanced myself; advanced slowly towards him,
+ touched his shoulder, and said, "The time has come; you must quit this
+ place; I am sorry for you; here is money; but you must go."</p>
+ <p>"I would prefer not," he replied, with his back still towards me.</p>
+ <p>"You<i> must</i>."</p>
+ <p>He remained silent.</p>
+ <p>Now I had an unbounded confidence in this man's common honesty. He had
+ frequently restored to me six pences and shillings carelessly dropped upon
+ the floor, for I am apt to be very reckless in such shirt-button
+ affairs. The proceeding then which followed will not be
+ deemed extraordinary. "Bartleby,"
+ said I, "I owe you twelve dollars on account; here are thirty-two; the
+ odd twenty are yours.--Will you take it? and I handed the
+ bills towards him.</p>
+ <p>But he made no motion.</p>
+ <p>"I will leave them here then," putting them under a weight on the table.
+ Then taking my hat and cane and going to the door I tranquilly turned and
+ added--"After you have removed your things from these offices, Bartleby,
+ you will of course lock the door--since every one is now gone for the day
+ but you--and if you please, slip your key underneath the mat, so that I
+ may have it in the morning. I shall not see you again; so good-bye to you.
+ If hereafter in your new place of abode I can be of any service to you,
+ do not fail to advise me by letter. Good-bye, Bartleby, and fare you well."</p>
+ <p>But he answered not a word; like the
+ last column of some ruined temple, he remained standing
+ mute and solitary in the middle of the otherwise deserted room.</p>
+ <p>As I walked home in a pensive mood, my vanity
+ got the better of my pity. I could not but highly plume
+ myself on my masterly management in getting rid of Bartleby. Masterly I
+ call it, and such it must appear to any dispassionate thinker. The beauty
+ of my procedure seemed to consist in its perfect quietness. There was
+ no vulgar bullying, no bravado of any sort, no choleric hectoring
+ and striding to and fro across the apartment, jerking out vehement commands
+ for Bartleby to bundle himself off with his beggarly traps. Nothing of
+ the kind. Without loudly bidding Bartleby depart--as an
+ inferior genius might have done--I assumed the ground that
+ depart he must; and upon the assumption built all I had to say. The more
+ I thought over my procedure, the more I was charmed with it. Nevertheless,
+ next morning, upon awakening, I had my doubts,--I had somehow slept off
+ the fumes of vanity. One of the coolest and wisest hours a man has, is
+ just after he awakes in the morning. My procedure seemed as sagacious as
+ ever,--but only in theory. How it would prove in practice--there was the
+ rub. It was truly a beautiful thought to have assumed Bartleby's departure;
+ but, after all, that assumption was simply my own, and none of Bartleby's.
+ The great point was, not whether I had assumed that he would quit me, but
+ whether he would prefer so to do. He was more a man
+ of preferences than assumptions.</p>
+ <p>After breakfast, I walked down town, arguing the probabilities pro and
+ con. One moment I thought it would prove a miserable failure, and Bartleby
+ would be found all alive at my office as usual; the next moment it seemed
+ certain that I should see his chair empty. And so I kept veering about.
+ At the corner of Broadway and Canal- street, I saw quite an excited group
+ of people standing in earnest conversation.</p>
+ <p>"I'll take odds he doesn't," said a voice as I passed.</p>
+ <p>"Doesn't go?--done!" said I, "put up your money."</p>
+ <p>I was instinctively putting my hand in my pocket to produce my own, when
+ I remembered that this was an election day. The words I had overheard bore
+ no reference to Bartleby, but to the success or non-success of some candidate
+ for the mayoralty. In my intent frame of mind, I had, as it were, imagined
+ that all Broadway shared in my excitement, and were debating
+ the same question with me. I passed on, very thankful that the uproar of
+ the street screened my momentary absent-mindedness.</p>
+ <p>As I had intended, I was earlier than usual at my office door. I stood
+ listening for a moment. All was still. He must be gone. I tried the knob.
+ The door was locked. Yes, my procedure had worked to a charm; he indeed
+ must be vanished. Yet a certain melancholy mixed with this: I was almost
+ sorry for my brilliant success. I was fumbling under the
+ door mat for the key, which Bartleby was to have left there for me, when
+ accidentally my knee knocked against a panel, producing a summoning sound,
+ and in response a voice came to me from within--"Not yet; I am occupied."</p>
+ <p>It was Bartleby.</p>
+ <p>I was thunderstruck. For an instant I stood like
+ the man who, pipe in mouth, was killed one cloudless afternoon
+ long ago in Virginia, by summer lightning; at his own warm open window
+ he was killed, and remained leaning out there upon the dreamy afternoon,
+ till some one touched him, when he fell. "Not gone!" I murmured at last.
+ But again obeying that wondrous
+ ascendancy which the inscrutable scrivener had over me, and
+ from which ascendancy, for all my chafing, I could not completely escape,
+ I slowly went down stairs and out into the street, and while walking round
+ the block, considered what I should next do in this unheard-of-perplexity.
+ Turn the man out by an actual thrusting I could not; to drive him away
+ by calling him hard names would not do; calling in the police was an unpleasant
+ idea; and yet, permit
+ him to enjoy his cadaverous triumph over me,--this too I
+ could not think of. What was to be done? or, if nothing could be done,
+ was there any thing further that I could assume in the matter? Yes, as before
+ I had prospectively assumed that Bartleby would depart, so now I might
+ retrospectively assume that departed he was. In the legitimate carrying
+ out of this assumption, I might enter my office in a great hurry, and pretending
+ not to see Bartleby at all, walk straight against him as if he were air.
+ Such a proceeding would in a singular degree have the appearance of a
+ home-thrust. It was hardly possible that Bartleby could withstand
+ such an application of the doctrine of assumptions. But upon second thoughts
+ the success of the plan seemed rather dubious. I resolved to argue the
+ matter over with him again.</p>
+ <p>Bartleby," said I, entering the office, with a quietly severe expression.
+ "I am seriously displeased. I am pained, Bartleby. I had thought better
+ of you. I had imagined you of such a gentlemanly
+ organization, that in any delicate dilemma a slight hint
+ would suffice--in short, an assumption. But it appears I am deceived. Why,"
+ I added, unaffectedly
+ starting, "you have not even touched the money yet," pointing
+ to it, just where I had left it the evening previous.</p>
+ <p>He answered nothing.</p>
+ <p>"Will you, or will you not, quit me?" I now demanded in a sudden
+ passion, advancing close to him.</p>
+ <p>"I would prefer <i>not</i> to quit you," he replied, gently
+ emphasizing the<i> not</i>.</p>
+ <p>"What earthly
+ right have you to stay here? do you pay any rent? Do you
+ pay my taxes? Or is this property yours?"</p>
+ <p>He answered nothing.</p>
+ <p>"Are you ready to go on and write now? Are your eyes recovered? Could
+ you copy a small paper for me this morning? or help examine a few lines?
+ or step round to the post-office? In a word, will you do any thing at all,
+ to give a coloring to your refusal to depart the premises?"</p>
+ <p>He silently
+ retired into his hermitage.</p>
+ <p>I was now in such a state of nervous resentment that I thought it but
+ prudentto check myself at present from further demonstrations. Bartleby
+ and I were alone. I
+ remembered the tragedy of the unfortunate Adams and the still
+ more unfortunate Colt in the solitary office of the latter; and how poor
+ Colt, being dreadfully incensed by Adams, and imprudently permitting himself
+ to get wildly excited, was at unawares hurried into his fatal
+ act--an act which certainly no
+ man could possibly deplore more than the actor himself. Often
+ it had occurred to me in my ponderings upon the subject, that had
+ that altercation taken place in the public street, or at a private residence,
+ it would not have terminated as it did. It was the circumstance of being
+ alone in a solitary office, up stairs, of a building entirely unhallowed
+ by humanizing domestic associations--an uncarpeted
+ office, doubtless of a dusty, haggard sort of appearance;--this
+ it must have been, which greatly helped to enhance the irritable desperation
+ of the hapless Colt.</p>
+ <p>But when this old
+ Adam of resentment rose in me and tempted me concerning Bartleby,
+ I grappled him and threw him. How? Why, simply by recalling the divine
+ injunction: "A new commandment give I unto you, that ye
+ love one another." Yes, this it was that saved me. Aside from higher considerations,
+ charity often operates as a
+ vastly wise and prudent principle--a great safeguard to its
+ possessor. Men have committed murder for jealousy's sake, and anger's sake,
+ and hatred's sake, and selfishness' sake, and spiritual pride's sake; but
+ no man that ever I heard of, ever committed
+ a diabolical murder for sweet charity's sake. Mere
+ self-interest, then, if no better motive can be enlisted,
+ should, especially with high-tempered men, prompt all beings to charity
+ and philanthropy. At any rate, upon the occasion in question, I strove
+ to drown
+ my exasperated feelings towards the scrivener by benevolently
+ construing his conduct. Poor fellow, poor fellow! thought I, he don't mean
+ any thing; and besides, he has seen hard times, and ought to be indulged.</p>
+ <p>I endeavored also immediately to occupy myself, and at the same time
+ to comfort my despondency.I tried to fancy that in the course of the
+ morning, at such time as might prove agreeable to him, Bartleby, of his
+ own free accord, would emerge from his hermitage, and take up some decided
+ line of march in the direction of the door. But no. Half-past twelve o'clock
+ came; Turkey began to glow in the face, overturn his inkstand, and become
+ generally obstreperous; Nippers abated down into quietude and courtesy;
+ Ginger Nut munched his noon apple; and Bartleby remained standing at his
+ window in one of his profoundest deadwall reveries. Will
+ it be credited? Ought I to acknowledge it? That afternoon
+ I left the office without saying one further word to him.</p>
+ <p>Some days now passed, during which, at leisure intervals I looked a little
+ into Edwards
+ on the Will," and "Priestly on Necessity." Under the circumstances,
+ those books induced a salutary feeling. Gradually I slid
+ into the persuasion that these troubles of mine touching
+ the scrivener, had been all predestinated
+ from eternity, and Bartleby was billeted upon me for some mysterious
+ purpose of an all-wise Providence, which it was not for a mere mortal like
+ me to fathom. Yes, Bartleby, stay there behind your screen, thought
+ I; I shall persecute you no more; you are harmless and noiseless
+ as any of these old chairs; in short, I never feel so private as when I
+ know you are here. At least I see it, I feel it; I penetrate to the predestinated
+ purpose of my life. I am content. Others may have loftier parts to enact;
+ but my
+ mission in this world, Bartleby, is to furnish you with office-room
+ for such period as you may see fit to remain.</p>
+ <p>I believe that this wise and blessed frame of mind would have continued
+ with me, had it not been for the unsolicited and uncharitable remarks obtruded
+ upon me by my
+ professional friends who visited the rooms. But thus it often
+ is, that the constant friction of illiberal minds wears out at last the
+ best resolves of the more generous. Though to be sure, when
+ I reflected upon it, it was not strange that people entering my office
+ should be struck by the peculiar aspect of the unaccountable Bartleby,
+ and so be tempted to throw out some sinister observations concerning him.
+ Sometimes an attorney having business with me, and calling at my office,
+ and finding no one but the scrivener there, would undertake to obtain some
+ sort of precise information from him touching my whereabouts; but without
+ heeding his idle
+ talk, Bartleby would remain standing immovable in the middle
+ of the room. So after contemplating him in that position for a time, the
+ attorney would depart, no wiser than he came.</p>
+ <p>Also, when a Reference was going on, and the room full of lawyers and
+ witnesses and business was driving fast; some deeply occupied legal gentleman
+ present, seeing Bartleby wholly unemployed, would request him to run round
+ to his (the legal gentleman's) office and fetch some papers for him. Thereupon,
+ Bartleby would tranquilly decline, and remain idle as before. Then the
+ lawyer would give a great stare, and turn to me. And what could I say?
+ At last I was made aware that all through the circle of my professional
+ acquaintance, a whisper of wonder was running round, having reference to
+ the strange creature I kept at my office. This worried
+ me very much. And as the idea came upon me of his possibly
+ turning out a long-lived man, and keep occupying my chambers, and denying
+ my authority; and perplexing my visitors; and scandalizing
+ my professional reputation; and casting a general gloom over the premises;
+ keeping soul and body together to the last upon his savings (for doubtless
+ he spent but half a dime a day), and in the end perhaps outlive
+ me, and claim possession of my office by right of his perpetual
+ occupancy: as all these dark anticipations crowded upon me more and more,
+ and my friends continually intruded their relentless remarks upon the apparition
+ in my room; a great change was wrought in me. I resolved to gather all
+ my faculties together, and for ever rid me of this intolerable
+ incubus.</p>
+ <p>Ere revolving any complicated project, however, adapted to this end, I
+ first simply suggested to Bartleby the propriety of his permanent departure.
+ In a calm and serious tone, I commended the idea to his careful and mature
+ consideration. But having taken three days to meditate upon it, he apprised
+ me that his original determination remained the same; in short, that he
+ still preferred to abide
+ with me.</p>
+ <p>What shall I do? I now said to myself, buttoning
+ up my coat to the last button. What shall I do? what ought
+ I to do? what does conscience say I should do with this man, or rather
+ ghost. Rid myself of him, I must; go, he shall. But how? You will not thrust
+ him, the poor, pale, passive mortal,--you will not thrust such a helpless
+ creature out of your door? you will not dishonor
+ yourself by such cruelty? No, I will not, I cannot do that.
+ Rather would I let him live and die here, and then mason
+ up his remains in the wall. What then will you do? For all
+ your coaxing, he will not budge. Bribes he leaves under your own paperweight
+ on your table; in short, it is quite plain that he prefers
+ to cling to you.</p>
+ <p>Then something severe, something unusual must be done. What! surely you
+ will not have him collared by a constable, and commit his innocent pallor
+ to the common jail? And upon what ground could you procure such a thing
+ to be done?--a vagrant, is he? What! he a vagrant, a wanderer, who
+ refuses to budge? It is because he will not be a vagrant, then, that you
+ seek to count him as a vagrant. That is too absurd. No visible means of
+ support: there I have him. Wrong again: for indubitably he does support
+ himself, and that is the only unanswerable proof that any man can show
+ of his possessing the means so to do. No more then. Since he will not quit
+ me, I must quit him. I will change my offices; I will move elsewhere; and
+ give him fair notice, that if I find him on my new premises I will then
+ proceed against him as a common trespasser.</p>
+ <p>Acting accordingly, next day I thus addressed him: "I find these chambers
+ too far from the City Hall; the air is unwholesome. In a word, I propose
+ to remove my offices next week, and shall no longer require your services.
+ I tell you this now, in order that you may seek another place."</p>
+ <p>He made no reply, and nothing more was said.</p>
+ <p>On the appointed day I engaged carts and men, proceeded to my chambers,
+ and having but little furniture, every thing was removed in a few hours.
+ Throughout, the scrivener remained standing behind the
+ screen, which I directed to be removed the last thing. It
+ was withdrawn; and being folded up like a huge folio, left him the motionless
+ occupant of a naked room. I stood in the entry watching him
+ a moment, while something from within me upbraided me.</p>
+ <p>I re-entered, with my hand
+ in my pocket--and--and my heart in my mouth.
+ </p>
+ <p>"Good-bye, Bartleby; I am going--good-bye, and God some way bless you;
+ and take that," slipping something in his hand. But it dropped to the floor,
+ and then,--strange
+ to say--I tore myself from him whom I had so longed to be
+ rid of.</p>
+ <p>Established in my new quarters, for a day or two I kept the door locked,
+ and started at every footfall in the passages. When I returned to my rooms
+ after any little absence, I would pause at the threshold for an instant,
+ and attentively listen, ere applying my key. But these fears were needless.
+ Bartleby never came nigh me.</p>
+ <p>I thought all was going well, when a perturbed looking stranger visited
+ me, inquiring whether I was the person who had recently occupied rooms
+ at No.--Wall-street.</p>
+ <p>Full of forebodings, I replied that I was.</p>
+ <p>"Then, sir," said the stranger,
+ who proved a lawyer, "you are responsible for the man you
+ left there. He refuses to do any copying; he refuses to do any thing; he
+ says he prefers not to; and he refuses to quit the premises."</p>
+ <p>"I am very sorry, sir," said I, with assumed tranquillity, but an inward
+ tremor, "but, really, the
+ man you allude to is nothing to me --he is no relation or
+ apprentice of mine, that you should hold me responsible for him."</p>
+ <p>"In mercy's name, who is he?"</p>
+ <p>"I certainly cannot inform you. I know nothing about him. Formerly I employed
+ him as a copyist; but he has done nothing for me now for some time past."</p>
+ <p>"I
+ shall settle him then,--good morning, sir."</p>
+ <p>Several days passed, and I heard nothing more; and though I often felt
+ a charitable prompting to call at the place and see poor Bartleby, yet
+ a certain squeamishness of I know not what withheld
+ me.</p>
+ <p>All is over with him, by this time, thought I at last, when through another
+ week no further intelligence reached me. But coming to my room the day
+ after, I found several persons waiting at my door in a high state of nervous
+ excitement.</p>
+ <p>"That's the man--here he comes," cried the foremost one, whom recognized
+ as the lawyer who had previously called upon me alone.</p>
+ <p>"You must take him away, sir, at once," cried a portly person among them,
+ advancing upon me, and whom I knew to be the landlord of No.--Wall-street.
+ "These gentlemen, my tenants, cannot stand it any longer; Mr. B--" pointing
+ to the lawyer, "has turned him out of his room, and he now persists in
+ haunting the buildinggenerally, sitting upon the banisters of the
+ stairs by day, and sleeping in the entry by night. Every body is concerned;
+ clients are leaving the offices; some
+ fears are entertained of a mob; something you must do, and
+ that without delay."</p>
+ <p> Aghast
+ at this torment, I fell back before it, and would fain have
+ locked myselfin my new quarters. In vain I persisted that Bartleby
+ was nothing to me--no more than to any one else. In vain:--I was the last
+ person known to have any thing to do with him, and they held me to the
+ terrible account. Fearful
+ then of being exposed in the papers (as one person present
+ obscurely threatened) I considered the matter, and at length said, that
+ if the lawyer would give me a confidential interview with the scrivener,
+ in his (the lawyer's) own room, I would that afternoon strive my best to
+ rid them of the nuisance they complained of.</p>
+ <p>Going up stairs to my old haunt, there was Bartleby silently sitting upon
+ the banister at the landing.</p>
+ <p>"What are you doing here, Bartleby?" said I.</p>
+ <p>"Sitting upon the banister," he mildly replied.</p>
+ <p>I motioned him into the lawyer's room, who then left us.</p>
+ <p>"Bartleby,"
+ said I, "are you aware that you are the cause of great tribulation
+ to me, by persisting in occupying the entry after being dismissed from
+ the office?"</p>
+ <p>No answer.</p>
+ <p>"Now one of two things must take place. Either you must do something or
+ something must be done to you. Now what sort of business would you like
+ to engage in? Would you like to re-engage in copying for some one?"</p>
+ <p>"No; I would prefer not to make any change."</p>
+ <p>"Would you like a clerkship in a dry-goods store?"</p>
+ <p>"There is too much confinement about that. No, I would not like a clerkship;
+ but I am not particular."</p>
+ <p>"Too much confinement," I cried, "why you keep yourself confined all the
+ time!"</p>
+ <p>"I would prefer not to take a clerkship," he rejoined, as if to settle
+ that little item at once.</p>
+ <p>"How would a bar-tender's business suit you? There is no trying of the
+ eyesight in that."</p>
+ <p>"I would not like it at all; though, as I said before, I am not particular."</p>
+ <p>His unwonted wordiness inspirited me. I returned to the charge.</p>
+ <p>"Well then, would you like to travel through the country collecting bills
+ for the merchants? That would improve your health."</p>
+ <p>"No, I would prefer to be doing something else."</p>
+ <p>"How then would going as a companion to Europe, to entertain some young
+ gentleman with your conversation,--how would that suit you?"</p>
+ <p>"Not at all. It does not strike me that there is any thing definite about
+ that. I like to be stationary. But I am not particular.</p>
+ <p>"Stationary you shall be then," I cried, now losing all patience, and
+ for the first time in all my exasperating connection with him fairly flying
+ into a passion. "If you do not go away from these premises before night,
+ I shall feel bound--indeed I am bound--to-- to--to quit the premises
+ myself!" I rather absurdly concluded, knowing not with what possible
+ threat to try to frighten his immobility into compliance.
+ Despairing of all further efforts, I was precipitately leaving him, when
+ a final thought occurred to me--one
+ which had not been wholly unindulged before.
+ </p>
+ <p>"Bartleby," said I, in the kindest tone
+ I could assume under such exciting circumstances, "will you
+ go home with me now--not to my office, but my dwelling--and remain there
+ till we can conclude upon some convenient arrangement for you at our leisure?
+ Come, let us start now, right away."</p>
+ <p>"No: at present I would prefer not to make any change at all."</p>
+ <p>I answered nothing; but effectualy dodging every one by the suddenness
+ and rapidity of my flight, rushed from the building, ran
+ up Wall-street towards Broadway, and jumping into the first omnibus was
+ soon removed from pursuit. As soon as tranquility returned I distinctly
+ perceived that I had now done all that I possibly could, both in respect
+ to the demands of the landlord and his tenants, and with regard to my own
+ desire and sense of duty, to benefit Bartleby, and shield him from rude
+ persecution. I now strove to be entirely care-free and quiescent; and my
+ conscience justified me in the attempt; though indeed it was not so successful
+ as I could have wished. So fearful was I of being again hunted out by the
+ incensed landlord and his exasperated tenants, that, surrendering my business
+ to Nippers, for a few days I drove about the upper part of the town and
+ through the suburbs, in my rockaway; crossed over to Jersey City and Hoboken,
+ and paid fugitive visits to Manhattanville and Astoria. In fact I almost
+ lived in my rockaway for the time.</p>
+ <p>When again I entered my office, lo, a note from the landlord lay upon
+ desk. opened it with trembling hands. informed me that writer had sent
+ to police, and Bartleby removed the
+ Tombs as a vagrant. Moreover, since I knew more
+ about him than any one else, he wished me to appear at that place, and
+ make a suitable statement of the facts. These tidings had a conflicting
+ effect upon me. At first I was indignant; but at last almost approved.
+ The landlord's energetic, summary disposition, had led him to adopt a procedure
+ which I do not think I would have decided upon myself; and yet as a last
+ resort, under such peculiar circumstances, it seemed the only plan.</p>
+ <p>As I afterwards learned, the poor scrivener, when told that he must be
+ conducted to the Tombs, offered not the slightest obstacle, but in his
+ pale unmoving way, silently
+ acquiesced.
+ </p>
+ <p>Some of the compassionate and curious bystanders joined the party; and
+ headed by one of the constables arm in arm with Bartleby, the
+ silent procession filed its way through all the noise, and
+ heat, and joy of the roaring thoroughfares at noon.</p>
+ <p>The same day I received the note I went to the Tombs, or to speak more
+ properly, the Halls of Justice. Seeking the right officer, I stated the
+ purpose of my call, and was informed that the individual I described was
+ indeed within. I then assured the functionary that Bartleby was a perfectly
+ honest man, and greatly to be compassionated, however unaccountably eccentric.
+ I narrated all I knew,and closed by suggesting the idea of letting
+ him remain in as indulgent confinement as possible till something less
+ harsh might be done--though indeed I hardly knew what. At all events, if
+ nothing else could be decided upon, the alms-house must receive him. I
+ then begged to have an interview.</p>
+ <p>Being under no disgraceful charge, and quite serene and harmless in all
+ his ways, they had permitted him freely to wander about the prison, and
+ especially in the inclosed grass-platted yards thereof. And so I found
+ him there, standing all alone in the quietest of the yards, his face
+ towards a high wall, while all around, from the narrow slits of the
+ jail windows, I thought I
+ saw peering out upon him the eyes of murderers and thieves.
+ </p>
+ <p>"Bartleby!"</p>
+ <p>"I
+ know you," he said, without looking round,--"and I want
+ nothing to say to you."</p>
+ <p>"It was not I that brought you here, Bartleby," said I, keenly
+ pained at his implied suspicion. "And to you, this should
+ not be so vile a place. Nothing reproachful attaches to you by being here.
+ And see, it
+ is not so sad a place as one might think. Look, there is
+ the sky, and here is the grass."</p>
+ <p>"I know where I am," he replied, but would say nothing more, and so I
+ left him.</p>
+ <p>As I entered the corridor again, a broad meat-like
+ man in an apron, accosted me, and jerking his thumb over
+ his shoulder said--"Is that your
+ friend?"</p>
+ <p>"Yes."</p>
+ <p>"Does he want to starve? If he does, let him live on the prison fare,
+ that's all.</p>
+ <p>"Who are you?" asked I, not knowing what to make of such an unofficially
+ speaking person in such a place.</p>
+ <p>"I am the grub-man. Such gentlemen as have friends here, hire me to provide
+ them with something good to eat."</p>
+ <p>"Is this so?" said I, turning to the turnkey.</p>
+ <p>He said it was.</p>
+ <p>"Well then," said I, slipping some silver into the grub-man's hands (for
+ so they called him). "I want you to give particular attention to my friend
+ there; let him have the best dinner you can get. And you must be as polite
+ to him as possible."</p>
+ <p>"Introduce me, will you?" said the grub-man, looking at me with an expression
+ which seemed to say he was all impatience for an opportunity to give a
+ specimen of his breeding.</p>
+ <p>Thinking it would prove of benefit to the scrivener, I acquiesced; and
+ asking the grub-man his name, went up with him to Bartleby.</p>
+ <p>"Bartleby, this is a
+ friend; you will find him very useful to you."</p>
+ <p>"Your
+ sarvant, sir, your sarvant," said the grub-man, making a
+ low salutation behind his apron. "Hope you find it pleasant
+ here, sir;--spacious grounds--cool apartments, sir--hope
+ you'll stay with us some time--try to make it agreeable. What will you
+ have for dinner today?"</p>
+ <p>"I prefer not to dine to-day," said Bartleby, turning away. "It would
+ disagree with me; I am unused to dinners." So saying he slowly moved to
+ the other side of the inclosure, and took up a
+ position fronting the dead-wall.</p>
+ <p>"How's this?" said the grub-man, addressing me with a stare of astonishment.
+ "He's odd, aint he?"</p>
+ <p>"I think he is a little deranged," said I, sadly.</p>
+ <p>"Deranged? deranged is it? Well now, upon my word, I thought that friend
+ of yourn was a gentleman
+ forger; they are always pale and genteel-like, them forgers.
+ I can't help pity 'em--can't help it, sir. Did you know Monroe Edwards?"
+ he added touchingly, and paused. Then, laying his hand pityingly on my
+ shoulder, sighed, "he died of consumption at Sing-Sing. so you weren't
+ acquainted with Monroe?"</p>
+ <p>"No, I was never socially acquainted with any forgers. But I cannot stop
+ longer. Look to my friend yonder. You will not lose by it. I will see you
+ again."</p>
+ <p>Some few days after this, I again obtained admission to the Tombs, and
+ went through the corridors in quest of Bartleby; but without finding him.</p>
+ <p>"I saw him coming from his cell not long ago," said a turnkey, "may be
+ he's gone to loiter in the yards."</p>
+ <p>So I went in that direction.</p>
+ <p>"Are you looking for the silent man?" said another turnkey passing me.
+ "Yonder he lies--sleeping in the yard there. 'Tis not twenty minutes since
+ I saw him lie down."</p>
+ <p>The yard was entirely quiet. It was not accessible to the common prisoners.
+ The surrounding walls, of amazing thickness, kept
+ off all sound behind them. The Egyptian
+ character of the masonry weighed upon me with its gloom.
+ But a soft imprisoned
+ turf grew under foot. The heart of the eternal pyramids,
+ it seemed, wherein, by some strange magic, through the clefts, grass-seed,
+ dropped by birds, had sprung.</p>
+ <p>Strangely huddled at the base of the wall, his
+ knees drawn up, and lying on his side, his head touching
+ the cold stones, I saw the wasted Bartleby. But nothing stirred. I paused;
+ then went close up to him; stooped over, and saw that his dim eyes were
+ open; otherwise he seemed profoundly sleeping. Something prompted me
+ to touch him. I felt his hand, when a tingling shiver ran up my arm
+ and down my spine to my feet.</p>
+ <p>The round face of the grub-man peered upon me now. "His dinner is ready.
+ Won't he dine to-day, either? Or does he live without dining?"</p>
+ <p>"Lives without dining," said I, and closed the eyes.</p>
+ <p>"Eh!--He's asleep, aint he?"</p>
+ <p>"With
+ kings and counsellors," murmured I.</p>
+ <p>* * * * * * * *</p>
+ <p>There would seem little need for proceeding further in this history. Imagination
+ will readily supply the meagre recital of poor Bartleby's interment. But
+ ere parting with the reader, let me say, that if this little narrative
+ has sufficiently interested him, to awaken curiosity as to who Bartleby
+ was, and what manner of life he led prior to the present narrator's making
+ his acquaintance, I can only reply, that in such curiosity I fully share,
+ but am wholly unable to gratify it. Yet here I hardly know whether I should
+ divulge one
+ little item of rumor, which came to my ear a few months
+ after the scrivener's decease. Upon what basis it rested, I could never
+ ascertain; and hence how true it is I cannot now tell. But inasmuch as
+ this vague report has not been without a certain strange suggestive
+ interest to me, however said, it may prove the same with
+ some others; and so I will briefly mention it. The report was this: that
+ Bartleby had been a subordinate clerk in the Dead
+ Letter Office at <a href="http://raven.cc.ukans.edu/%7Ezeke/bartleby/parker.html" target="_blank">Washington</a>, from which he had been suddenly removed
+ by a change in the administration. When I think over this rumor, I cannot
+ adequately express the emotions which seize me. Dead
+ letters! does it not sound like dead men? Conceive a man
+ by nature and misfortune prone to a pallid hopelessness, can any business
+ seem more fitted to heighten it than that of continually handling these
+ dead letters and assorting them for the flames? For by the cart-load they
+ are annually burned. Sometimes from out the folded paper
+ the pale clerk takes a ring:--the bank-note sent in swiftest charity:--he
+ whom it would relieve, nor eats nor hungers any more; pardon for those
+ who died despairing; hope for those who died unhoping; good tidings for
+ those who died stifled by unrelieved calamities. On
+ errands of life, these letters speed to death.
+ </p>
+ <p> Ah
+ Bartleby! Ah humanity!</p>
+ </div></div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/clean-links/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/clean-links/source.html
new file mode 100644
index 000000000..775023e7c
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/clean-links/source.html
@@ -0,0 +1,1863 @@
+<!DOCTYPE html>
+<html>
+
+ <head>
+ <title>Bartleby the Scrivener Web Study Text</title>
+ <meta http-equiv="resource-type"
+ content="document"/>
+ <meta http-equiv="copyright" content="Copyright Ann Woodlief"/>
+ <meta name="generator" content="Me :)"/>
+ <LINK REL=" stylesheet "=" " type="text/css " href="http://www.vcu.edu/engweb/webtexts/myweb.css "/>
+ <style type="text/css ">
+<!--
+body { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12pt;}
+-->
+</style>
+ </head>
+<body text="#000000 " background="http://www.vcu.edu/engweb/papyrus.jpg
+ " bgcolor="#DCD1C0 " link="#990000 " vlink="#CC0000 ">
+
+<!-- BEGIN CODE FOR POP-UP NOTES -->
+<div id="overDiv " style="position:absolute; visibility:hidden; z-index:1000; "></div>
+<script language="JavaScript " src="http://www.vcu.edu/engweb/webtexts/popnote.js "></script>
+<!-- END CODE FOR POP-UP NOTES -->
+&nbsp;&nbsp;
+<center>
+ <table width="675 " border="0 " cellpadding="2 ">
+ <tbody>
+ <tr>
+ <td>
+ <h3 align="center ">Study Webtext</h3>
+ <h2 align="center "><font face="Lucida Handwriting " color="Maroon
+ ">"Bartleby the Scrivener: A Story of Wall-Street " </font>(1853)&nbsp;<br/>
+ Herman Melville</h2>
+ <h2 align="center "><a href="http://www.vcu.edu/engweb/webtexts/bartleby.html
+ " target="_blank "><img src="hmhome.gif " alt="To the story text without notes
+ " height="38 " width="38 " align="absmiddle "/></a>
+ </h2>
+ <h3 align="center ">Prepared by <a href="http://www.vcu.edu/engweb ">Ann
+ Woodlief,</a> Virginia Commonwealth University</h3>
+ <h5 align="center ">Click on text in red for hypertext notes and questions</h5>
+ <a href="javascript:void(0); " onclick="return overlib(
+ 'Note that this story is told in first-person by this unnamed lawyer. That means that the reader has to figure out what sort of person he is in order to understand the &quot;angle&quot; or bias from which he presents his story. What sort of man would define himself immediately in terms of his age and nothing else?', STICKY) " onmouseout="nd(); " class="popup ">I</a>
+ am a <a href="javascript:void(0); " onclick="return overlib(
+ 'Why does he stress that he is elderly? To show that he has had a wide range of experience? To suggest that he is very set in his ways?', STICKY) " onmouseout="nd(); " class="popup
+ ">rather elderly</a> man. The nature of my <a href="javascript:void(0); " onclick="return overlib(
+ 'Why does he say that being a lawyer is an &quot;avocation,&quot; meaning a hobby? Is it that Melville is suggesting that he does not take his career all that seriously?', STICKY) " onmouseout="nd(); " class="popup ">avocations</a>
+ for the last thirty years has brought me into more than ordinary contact
+ with what <a href="javascript:void(0); " onclick="return overlib(
+ 'Notice how he qualifies his statement, as if he is not quite sure they are so interesting.', STICKY) " onmouseout="nd(); " class="popup
+ ">would seem</a> an interesting and somewhat singular set of men of whom as yet
+ nothing that I know of has ever been written:-- I mean the <a href="javascript:void(0); " onclick="return overlib(
+ 'The job of a law-copyist was to do exactly what the name suggests--to copy precisely, with pen (or quill) and ink, legal documents (rather like a human xerox machine or carbon paper).', STICKY) " onmouseout="nd(); " class="popup ">law-copyists</a>
+ or <a href="javascript:void(0); " onclick="return overlib(
+ 'The word means &quot;writers.&quot; Some critics have looked at this story as Melville\'s lament that the work of (creative) writers is so little appreciated,
+ especially in financial terms. He struggled all his life to make a living
+ by writing, whereas his brother Gansevoort, who worked on Wall Street,
+ led a very comfortable life and never really understood why his brother
+ bothered to write.
+ ', STICKY)" onmouseout="nd();" class="popup">scriveners</a>.
+ I have known very many of them, professionally and privately, and if I
+ pleased, could relate divers histories, at which good-natured gentlemen
+ might smile, and sentimental souls might weep. But I waive the biographies
+ of all other scriveners for a few <a href="javascript:void(0);" onclick="return overlib('Note the use of the word &quot;passages&quot; here (and only a few). He
+ is looking at Bartleby\
+ 's life as a kind of literary production, but that production will be his, not Bartleby\'s. (Somewhat similar to the way that the copyists copy the lawyer\
+ 's words, not their own.)', STICKY) " onmouseout="nd(); " class="popup ">passages</a>
+ in the life of Bartleby, who was a scrivener the <a href="javascript:void(0);
+ " onclick="return overlib(
+ 'Immediately he judges Bartleby, causing the reader to accept the judgment without knowing more at this point about the person.', STICKY) " onmouseout="nd(); " class="popup ">strangest</a>
+ I ever saw or heard of. While of other law-copyists I might write the
+ <a href="javascript:void(0); " onclick="return overlib(
+ 'It is interesting that he assumes he knows &quot;all about&quot; other copyists, in spite of their great differences in class, education, experience, and power. Is this not presumptuous? Is part of his frustration with Bartleby because he will not reveal himself so that the lawyer can assume that he knows &quot;all&quot; about him?', STICKY) " onmouseout="nd(); " class="popup ">complete life</a>, of Bartleby nothing of that sort can be done. I believe that
+ no materials exist for a full and <a href="javascript:void(0);
+ " onclick="return overlib(
+ 'Satisfactory to whom? to the lawyer? to the reader? to both?', STICKY) " onmouseout="nd(); " class="popup ">satisfactory biography </a> of this man. It is an irreparable loss to literature. Bartleby
+ was one of those beings of whom nothing is ascertainable, except from
+ the original sources, and in his case those are very small. What my own
+ astonished eyes saw of Bartleby, that is all I know of him, except, indeed,
+ one vague report which will appear in the <a href="javascript:void(0);
+ " onclick="return overlib(
+ 'Note that he promises there will be some sort of answer toward the end. Why does he call it a &quot;sequel&quot;? Does he recruit the reader\'s patience with the story by making this promise?&nbsp;
+ ', STICKY)" onmouseout="nd();" class="popup">sequel</a>.
+ <p>Ere introducing the scrivener, as he first appeared to me, it is fit
+ I make some mention of myself, my employees, my business, my chambers,
+ and general surroundings; because some such description is indispensable
+ to an adequate understanding of the chief character about to be presented.
+ </p><p> <i>Imprimis</i>: I am a man who, from his youth upwards, has been
+ filled with a profound conviction that <a href="javascript:void(0);" onclick="return overlib('What sort of person is he, according to this statement? How will this
+ change or be challenged in the story?
+ ', STICKY)" onmouseout="nd();" class="popup">the easiest way of life is the best.</a>. Hence, though I belong to a profession
+ proverbially energetic and nervous, even to turbulence, at times, yet
+ nothing of that sort have I ever suffered to <a href="javascript:void(0);" onclick="return overlib('Why does he use the word &quot;invade&quot;? Has he walled himself up?
+ from what?
+ ', STICKY)" onmouseout="nd();" class="popup">invade</a>
+ my peace. I am one of those unambitious lawyers who never addresses
+ a jury, or in any way draws down public applause; but in the cool tranquillity
+ of a snug retreat, do a <a href="javascript:void(0);" onclick="return overlib('What does &quot;snug&quot; suggest about him? He seems to be unwilling
+ to take risks in his work; how does this apply to his personal life?
+ ', STICKY)" onmouseout="nd();" class="popup">snug business</a> among rich men's bonds and mortgages and title-deeds. The late <a href="javascript:void(0);"
+ onclick="return overlib('John Jacob Astor, 1763-1848, a German immigrant, became quite wealthy because of his shrewd dealings with Canadian Indians, trading whiskey and rifles to establish a very properous fur trade. He also stripped all the sandalwood from the Hawaiian Islands and smuggled opium in China. He invested that money in New York, buying foreclosed mortgages during the Panic of 1837 and building tenements, becoming the wealthiest person in the U.S. at the time of his death. Some model!', STICKY)"
+ onmouseout="nd();" class="popup">John Jacob Astor</a>, a personage little given to poetic enthusiasm, had
+ no hesitation in pronouncing my <a href="javascript:void(0);" onclick="return overlib('Note how he builds a description of himself. How would you describe him? Would you consider him a &quot;typical&quot; lawyer, businessman, or &quot;boss&quot;?', STICKY)"
+ onmouseout="nd();" class="popup">first
+ grand point</a> to be prudence; my next, method. I do not <a href="javascript:void(0);"
+ onclick="return overlib('By claiming not be to boasting, he draws attention to the fact that he is indeed boasting; he drops this famous name three times (just to make sure you get it!)', STICKY)"
+ onmouseout="nd();" class="popup">speak
+ it in vanity</a>, but simply record the fact, that I was not
+ unemployed in my profession by the last John Jacob Astor; a name which,
+ I admit, I love to repeat, for it hath a rounded and orbicular sound to
+ it, and <a href="javascript:void(0);" onclick="return overlib('gold. Clearly the lawyer is rather entranced by Astor\'s wealth. . As a &quot;hero&quot; for the narrator, he represents rapacious materialism.', STICKY)"
+ onmouseout="nd();" class="popup">rings
+ like unto bullion.</a> I will freely add, that I was <a href="javascript:void(0);"
+ onclick="return overlib('In fact, he seems to have been very impressed by Astor and his opinion. Is he trying to convince the reader that he has secure standing in the business community here? Is he trying too hard? Maybe even trying to convince himself? Why does he repeatedly emphasize that Astor is deceased?', STICKY)"
+ onmouseout="nd();" class="popup">not
+ insensible to</a> the late John Jacob Astor's good opinion.</p>
+ <p>Some time prior to the period at which this little history begins, my
+ avocations had been largely increased. The good old office, <a href="javascript:void(0);"
+ onclick="return overlib(' Evidently the job was abolished because it was a sinecure, requiring little of the holder of the job for a great deal of money. Very likely it was a political appointment. New York did abolish this office in 1846 as part of an outdated court system.&nbsp; This would be a perfect kind of job for a writer, supporting his true vocation, but Melville was unable to find such work. His job at the Customs House was too demanding for him to write much and did not pay very much.', STICKY)"
+ onmouseout="nd();" class="popup">now
+ extinct</a> in the State of New York, of a Master in Chancery,
+ had been conferred upon me. It was not a very arduous office, but very
+ pleasantly remunerative. <a href="javascript:void(0);" onclick="return overlib('Again, more description of his personality and character.Will we see these characteristics to be true in his encounter with Bartleby? If not, is it because he doesn\'t really know himself?', STICKY)"
+ onmouseout="nd();" class="popup">I
+ seldom lose my temper</a>; much more seldom indulge in dangerous
+ indignation at wrongs and outrages; but I must be permitted to be rash
+ here and declare, that I consider the sudden and violent abrogation of
+ the office of Master of Chancery, by the new Constitution, as a----<a href="javascript:void(0);"
+ onclick="return overlib('Note that he does not challenge the reason for abolishing the office, only that it was premature, and should have been done later (after his pockets were &quot;pleasantly&quot; filled.).', STICKY)"
+ onmouseout="nd();" class="popup">premature
+ act</a>; inasmuch as I had counted upon a life-lease of the
+ profits, whereas I only received those of a few short years. But this is
+ <a
+ href="javascript:void(0);" onclick="return overlib('Is it? It would seem to be rather vital to understand this man and what sort of person he was before his encounter with Bartleby.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">by the way</a>.</p>
+ <p>My chambers were up stairs at No.--Wall-street. At one end they looked
+ upon the white wall of the interior of a spacious sky-light shaft, penetrating
+ the building from top to bottom. This view might have been considered rather
+ tame than otherwise, <a href="javascript:void(0);" onclick="return overlib('Landscape painters wouldn\'t be the only ones to find this blocked view not &quot;life&quot;! This seems to be an example of his kind of humor, tongue-in-cheek and a little factitious. On the other hand, perhaps the air of death in his chambers is more than a matter of setting.', STICKY)"
+ onmouseout="nd();" class="popup">deficient
+ in what landscape painters call "life."</a> But if so, the view
+ from the other end of my chambers offered, at least, a contrast, if nothing
+ more. In that direction my windows commanded an unobstructed view of a
+ <a
+ href="javascript:void(0);" onclick="return overlib('Though it may contrast with the other brick wall, both are solid walls. Again, note his attempt to be humorous. But how funny is this fact of walls, for Bartleby or for him? Be alert that walls are also being used symbolically in this story (it is about &quot;Wall Street!). Also, this office with its &quot;high, blank walls&quot; is prison-like.', STICKY)"
+ onmouseout="nd();" class="popup">lofty brick wall,</a>black by age and everlasting shade; which wall required
+ no spy-glass to bring out its lurking beauties, but for the benefit of
+ all near-sighted spectators, was pushed up to within ten feet of my window
+ panes. Owing to the great height of the surrounding buildings, and my chambers
+ being on the second floor, the interval between this wall and mine not
+ a little resembled a huge square <a href="javascript:void(0);" onclick="return overlib('An interesting comparison, since a cistern holds water, which is frequently an image for life. This one, of course, is dry.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">cistern</a>.</p>
+ <p>At the period just preceding the advent of Bartleby, I had two persons
+ as copyists in my employment, and a promising lad as an office-boy. First,
+ Turkey; second, Nippers; third, Ginger Nut.These may seem names, the like
+ of which are not usually found in the Directory. In truth they were <a href="javascript:void(0);"
+ onclick="return overlib('He does not ever give their real names. Why would they give each other such nicknames? Does it show affection? lack of respect? equality? Names seem to be very important in this story (except, of course, we don\'t have a name for the lawyer--a significant absence), and perhaps symbolic. Consider how the names fit the persons. Note that none of the characters has a visible family or home.', STICKY)"
+ onmouseout="nd();" class="popup">nicknames</a>, mutually conferred upon
+ each other by my three clerks, and were deemed expressive of their respective
+ persons or characters. Turkey was a short, pursy Englishman of about my
+ own age, that is, somewhere not far from sixty. In the morning, one might
+ say, his face was of a fine florid hue, but after twelve o'clock, meridian--
+ <a
+ href="javascript:void(0);" onclick="return overlib('This is the first of many references to eating (although probably not the most important one!). How do these references play out in the story (culminating in &quot;he lives without eating?&quot;)? The only person who does not eat--although we may assume that he is well-fed--is the lawyer/narrator. Is this significant?', STICKY)"
+ onmouseout="nd();" class="popup">his dinner hour</a>-- it blazed like a grate full of Christmas coals;
+ and continued blazing--but, as it were, with a gradual wane--till 6 o'clock,
+ P.M. or thereabouts, after which I saw no more of the proprietor of the
+ face, which gaining its meridian with the sun, seemed to set with it, to
+ rise, culminate, and decline the following day, with the like regularity
+ and undiminished glory. There are many singular coincidences I have known
+ in the course of my life, not the least among which was the fact that exactly
+ when Turkey displayed his fullest beams from his red and radiant countenance,
+ just then, too, at the critical moment, began the daily period when I considered
+ his business capacities as seriously disturbed for the remainder of the
+ twenty-four hours. Not that he was absolutely idle, or averse to business
+ then; far from it. The difficulty was, he was apt to be altogether <a href="javascript:void(0);"
+ onclick="return overlib('In other words, he is not much use when he is showing too much liveliness.', STICKY)"
+ onmouseout="nd();" class="popup">too
+ energetic</a>. There was a strange, inflamed, flurried, flighty
+ recklessness of activity about him. He would be incautious in dipping his
+ pen into his inkstand. All his blots upon my documents, were dropped there
+ after twelve o'clock, meridian. Indeed, not only would he be reckless and
+ sadly given to making blots in the afternoon, but some days he went further,
+ and was rather <a href="javascript:void(0);" onclick="return overlib('Evidently the lawyer does not like to be disturbed with noise, especially noise of his clerks\' frustration.', STICKY)"
+ onmouseout="nd();" class="popup">noisy</a>. At such times, too, his face
+ flamed with augmented blazonry, as if <a href="javascript:void(0);" onclick="return overlib('Cannel, or soft, coal burns quickly and brightly; anthracite, or hard, coal burns more slowly and intensely.', STICKY)"
+ onmouseout="nd();" class="popup">cannel
+ coal</a> had been heaped on anthracite. He made an unpleasant
+ racket with his chair; spilled his sand-box; in mending his pens, impatiently
+ split them all to pieces, and threw them on the floor in a sudden passion;
+ stood up and leaned over his table, boxing his papers about in a most
+ <a
+ href="javascript:void(0);" onclick="return overlib('He does not behave in an orderly fashion, something the lawyer prizes. He is elderly, like the lawyer! In other words, they should both be more settled and calm because of their age?', STICKY)"
+ onmouseout="nd();" class="popup">indecorous manner, very sad to behold in an elderly man</a>like him. Nevertheless,
+ as he was in many ways a most valuable person to me, and all the time before
+ twelve o'clock, meridian, was the quickest, steadiest creature too, accomplishing
+ a great deal of work in a style not easy to be matched--for these reasons,
+ <a
+ href="javascript:void(0);" onclick="return overlib('Is he saying that he really should have fired him, and only out of the goodness of his heart has he kept him? How does this prepare the reader for his later relationship with Bartleby?', STICKY)"
+ onmouseout="nd();" class="popup">I was willing</a>to overlook his eccentricities, though indeed, occasionally,
+ I remonstrated with him. I did this very gently, however, because, though
+ the civilest, nay, the blandest and most reverential of men in the morning,
+ yet in the afternoon he was disposed, upon provocation, to be slightly
+ rash with his tongue, in fact, insolent. Now, valuing his morning services
+ as I did, and resolved not to lose them; yet, at the same time made uncomfortable
+ by his inflamed ways after twelve o'clock; and being a <a href="javascript:void(0);"
+ onclick="return overlib('or at least a man who does not like to have his peace disturbed! Note his willingness to live with a worker who functions well only half of the time. He seems to have some sympathetic perception of Turkey\'s frustration.', STICKY)"
+ onmouseout="nd();" class="popup">man
+ of peace</a>, unwilling by my admonitions to call forth unseemingly
+ retorts from him; I took upon me, one Saturday noon (he was always worse
+ on Saturdays), to hint to him, very kindly, that perhaps now that he was
+ growing old, it might be well to abridge his labors; in short, he need
+ not come to my chambers after twelve o'clock, but, dinner over, had best
+ go home to his lodgings and rest himself till tea-time. But no; he insisted
+ upon his afternoon <a href="javascript:void(0);" onclick="return overlib('Why does he describe his afternoon excitability in these terms? Is he being ironic?&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">devotions</a>. His countenance became
+ intolerably fervid, as he oratorically assured me--gesticulating with a
+ long ruler at the other end of the room--that if his services in the morning
+ were useful, how indispensible, then, in the afternoon?</p>
+ <p>"<a href="javascript:void(0);" onclick="return overlib('Turkey is careful to &quot;keep his place&quot; with his boss, though his &quot;submission&quot; actually seems to be more suited to his morning than his afternoon work.', STICKY)"
+ onmouseout="nd();" class="popup">With
+ submission, sir,</a>" said Turkey on this occasion, "I consider
+ myself your right-hand man. In the morning I but marshal and deploy my
+ columns; but in the afternoon <a href="javascript:void(0);" onclick="return overlib('Why does he use this military image? Why does he point out that he &quot;puts himself at their head,&quot; in particular?', STICKY)"
+ onmouseout="nd();" class="popup">I
+ put myself at their head</a>, and gallantly charge the foe,
+ thus!"--and he made a <a href="javascript:void(0);" onclick="return overlib('Look out for more &quot;violent thrusts&quot; in the story.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">violent
+ thrust</a> with the ruler.</p>
+ <p>"But the blots, Turkey," intimated I.</p>
+ <p>"True,--but, with submission, sir, behold these hairs! I am getting old.
+ Surely, sir, a blot or two of a warm afternoon is not the page--is honorable.
+ With submission, sir, we both are getting old."</p>
+ <p><a href="javascript:void(0);" onclick="return overlib('Here we can see his weak--or perhaps his more compassionate--side, and a suggestion of identification with the feelings of his employees.',STICKY)"
+ onmouseout="nd();" class="popup">This
+ appeal to my fellow-feeling</a> was hardly to be resisted. At
+ all events, I saw that go he would not. So I made up my mind to let him
+ stay, resolving, nevertheless, to see to it, that during the afternoon
+ he had to do with my less important papers.</p>
+ <p>Nippers, the second on my list, was a whiskered, sallow, and, upon the
+ whole, rather <a href="javascript:void(0);" onclick="return overlib('Pirates rarely suffer from indigestion, do they? In what way could Nippers be considered like a pirate?', STICKY)"
+ onmouseout="nd();" class="popup">piratical-looking</a> young man of about
+ five and twenty. I always deemed him the victim of two evil powers-- ambition
+ and indigestion. The ambition was evinced by a certain impatience of the
+ duties of a <a href="javascript:void(0);" onclick="return overlib('Note this word, one which seems to be attached to this job both by the boss (who actually could not function at all without his copyists) and the scriveners.', STICKY)"
+ onmouseout="nd();" class="popup">mere
+ copyist,</a> an unwarrantable usurpation of strictly profession
+ affairs, such as the <a href="javascript:void(0);" onclick="return overlib('taking over without permission In other words, he took it upon himself to draw up legal documents, which he is evidently able to do. Very likely he feels fully capable of doing the lawyer\'s work, though he is not &quot;properly qualified&quot; to do so.', STICKY)"
+ onmouseout="nd();" class="popup">original
+ drawing up</a> of legal documents. The indigestion seemed betokened
+ in an occasional nervous testiness and grinning irritability, causing the
+ teeth to audibly grind together over mistakes committed in copying; unnecessary
+ maledictions, hissed, rather than spoken, in the heat of business; and
+ especially by a <a href="javascript:void(0);" onclick="return overlib('Why is he so unhappy about the table? What does this show about him and his job?', STICKY)"
+ onmouseout="nd();" class="popup">continual
+ discontent</a> with the height of the table where he worked.
+ Though of a very ingenious mechanical turn, Nippers could never get this
+ table to suit him. He put chips under it, blocks of various sorts, bits
+ of pasteboard, and at last went so far as to attempt an exquisite adjustment
+ by final pieces of folded blotting-paper. But no invention would answer.
+ If, for the sake of easing his back, he brought the table lid at a sharp
+ angle well up towards his chin, and wrote there like a man using the steep
+ roof of a Dutch house for his desk:--then he declared that it stopped the
+ circulation in his arms. If now he lowered the table to his waistbands,
+ and stooped over it in writing, then there was a sore aching in his back.
+ In short, the truth of the matter was, Nippers knew not what he wanted.
+ Or, <a href="javascript:void(0);" onclick="return overlib('This observation is probably quite true, and rather perceptive of the lawyer. He does seem to understand and sympathize with his employee\'s situation, but that does not mean he makes any move to change it (except to try rearranging so there are fewer blots for him to deal with).', STICKY)"
+ onmouseout="nd();" class="popup">if
+ he wanted anything</a>, it was to be rid of a scrivener's table
+ altogether. Among the manifestations of his diseased ambition was a fondness
+ he had for receiving visits from certain ambiguous-looking fellows in seedy
+ coats, whom he called his clients. Indeed I was aware that not only was
+ he, at times, considerable of a ward-politician, but he occasionally did
+ <a
+ href="javascript:void(0);" onclick="return overlib('In other words, he was practicing law with poorer clients. Remember that in that time one did not need to go to law school; all he had to do was to have enough knowledge of the law to pass the bar exam--and the examiners, who were anxious to keep &quot;lower-class&quot; people out of the profession.', STICKY)"
+ onmouseout="nd();" class="popup">a little business</a>at the Justices' courts, and was not unknown on the
+ steps of the Tombs. I have good reason to believe, however, that one individual
+ who called upon him at my chambers, and who, with a grand air, he insisted
+ was his client, was no other than a dun, and the alleged title-deed, a
+ bill. But with all his failings, and the annoyances he caused me, Nippers,
+ like his compatriot Turkey, was a very <a href="javascript:void(0);" onclick="return overlib('This is probably his prime value as a human being, in the lawyer\'s eyes.', STICKY)"
+ onmouseout="nd();" class="popup">useful
+ man </a>to me; wrote a neat, swift hand; and, when he chose,
+ was not deficient in a gentlemanly sort of deportment. Added to this, he
+ <a
+ href="javascript:void(0);" onclick="return overlib('Appearances are very important to the lawyer evidently. He makes it clear that he will forgive a person much who presents a good exterior to the public.', STICKY)"
+ onmouseout="nd();" class="popup">always dressed</a>in a gentlemanly sort of way; and so, incidentally,
+ reflected credit upon my chambers. Whereas with respect to Turkey, I had
+ much ado to keep him from being a reproach to me. His clothes were apt
+ to look oily and smell of eating-houses. He wore his pantaloons very loose
+ and baggy in summer. His coats were execrable; his hat not to be handled.
+ But while the <a href="javascript:void(0);" onclick="return overlib('In other words, the hat is okay because he doffs it as a sign of respect for his boss.', STICKY)"
+ onmouseout="nd();" class="popup">hat</a> was a thing of indifference to
+ me, inasmuch as his natural civility and deference, as a dependent Englishman,
+ always led him to doff it the moment he entered the room, yet his coat
+ was another matter. Concerning his coats, I reasoned with him; but with
+ no effect. The truth was, I suppose, that a man with so small an income,
+ could not afford to sport such a lustrous face and a lustrous coat at one
+ and the same time. As Nippers once observed, Turkey's money went chiefly
+ for red ink. One winter day<a href="javascript:void(0);" onclick="return overlib('He gives him a coat primarily so he will appear better for him, not out of any real sense of charity. See how this kind of transaction will work with Bartleby. It doesn\'t seem to work so well with Turkey either!', STICKY)"
+ onmouseout="nd();" class="popup">
+ I presented Turkey</a> with a highly-respectable looking coat
+ of my own, a padded gray coat, of a most comfortable warmth, and which
+ buttoned straight up from the knee to the neck. I thought Turkey would
+ appreciate the favor, and abate his rashness and obstreperousness of afternoons.
+ But no. I verily believe that buttoning himself up in so downy and blanket-like
+ a coat had a pernicious effect upon him; upon the same principle that too
+ much oats are bad for horses. In fact, precisely as a rash, restive <a href="javascript:void(0);"
+ onclick="return overlib(' &quot;Feelings one\'s oats&quot; has become a cliche today, for it has lost its original metaphorical force. Here, however, Melville is very aware of the original comparison. Evidently a horse with overabundant oats gets very frisky and out of control, even as Turkey seems to be beyond the lawyer\'s control with his new coat. Does Turkey resent this gift, even though he needs it? Is that what makes him &quot;insolent&quot; to his boss? Why would he resent it?&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">horse
+ is said to feel his oats</a>, so Turkey felt his coat. It made
+ him insolent. He was a man whom prosperity harmed.</p>
+ <p>Though concerning the self-indulgent habits of Turkey I had my own private
+ surmises, yet touching Nippers I was well persuaded that whatever might
+ be his faults in other respects, he was, at least, a temperate young man.
+ But indeed, nature herself seemed to have been his <a href="javascript:void(0);"
+ onclick="return overlib('a maker of wine. In other words, Nippers does not have to drink (as Turkey must at his dinner) to be equally restive and discontent.', STICKY)"
+ onmouseout="nd();" class="popup">vintner</a>, and at his birth charged
+ him so thoroughly with an irritable, brandy-like disposition, that all
+ subsequent potations were needless. When I consider how, amid the stillness
+ of my chambers, Nippers would sometimes impatiently rise from his seat,
+ and stooping over his table, spread his arms wide apart, seize the whole
+ desk, and move it, and jerk it, with a grim, grinding motion on the floor,
+ as if the table were a <a href="javascript:void(0);" onclick="return overlib('What or whom is he substituting the table for?&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">perverse
+ voluntary agent</a>, intent on thwarting and vexing him; I plainly
+ perceive that for Nippers, brandy and water were altogether superfluous.</p>
+ <p>It was fortunate for me that, owing to its course--indigestion--the irritability
+ and consequent nervousness of Nippers, were mainly observable in the morning,
+ while in the afternoon he was comparatively mild. So that Turkey's paroxysms
+ only coming on about twelve o'clock, I never had to do with their eccentricities
+ at one time. Their fits relieved each other like guards. When Nippers'
+ was on, Turkey's was off, and vice versa. This was a <a href="javascript:void(0);"
+ onclick="return overlib('Under what circumstances? That anyone employed in such a job will necessarily be discontent and feel less than human? Note that he accepts them with their flaws, perhaps understanding that they may &quot;go with the job.&quot;&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">good
+ natural arrangement</a> under the circumstances.</p>
+ <p>Ginger Nut, the third on my list, was a lad some twelve years old. His
+ father was a carman, ambitious of seeing his son on the bench instead of
+ a cart, before he died. So he sent him to my office as a student at law,
+ errand boy, and cleaner and sweeper, at the rate of one dollar a week.
+ He had a little desk to himself, but he did not use it much. Upon inspection,
+ the drawer exhibited a great array of the shells of various sorts of nuts.
+ Indeed, to this quick-witted youth the whole noble science of the law was
+ <a
+ href="javascript:void(0);" onclick="return overlib('Again he uses a cliche to make a joke at the expense of one of his employees.', STICKY)"
+ onmouseout="nd();" class="popup">contained in a nut-shell</a>. Not the least among the employments of Ginger
+ Nut, as well as one which he discharged with the most alacrity, was his
+ duty as cake and apple purveyor for Turkey and Nippers. Copying law papers
+ being proverbially a <a href="javascript:void(0);" onclick="return overlib('an interesting metaphor, as it suggests emptiness', STICKY)"
+ onmouseout="nd();" class="popup">dry,
+ husky </a>sort of business, my two scriveners were fain to moisten
+ their mouths very often with Spitzenbergs to be had at the numerous stalls
+ nigh the Custom House and Post Office. Also, they sent Ginger Nut very
+ frequently for that peculiar cake--small, flat, round, and very spicy--after
+ which he had been named by them. Of a cold morning when business was but
+ dull, Turkey would gobble up scores of these cakes, as if they were mere
+ wafers--indeed they sell them at the rate of six or eight for a penny--the
+ scrape of his pen blending with the crunching of the crisp particles in
+ his mouth. Of all the fiery afternoon blunders and flurried rashnesses
+ of Turkey, was his once moistening a ginger-cake between his lips, and
+ clapping it on to a mortgage for a seal. <a href="javascript:void(0);" onclick="return overlib('Would this have been adequate cause for firing a long-time employee? Does this show that the lawyer has a temper? Is he upset because he thinks that Turkey is not taking his business seriously enough?', STICKY)"
+ onmouseout="nd();" class="popup">I
+ came within an ace </a>of dismissing him then. But he mollified
+ me by making an oriental bow, and saying--"With submission, sir, it was
+ generous of me <a href="javascript:void(0);" onclick="return overlib('in other words, supply you with stationery at my own expense. It must be morning; note his ornate &quot;submissiveness&quot;! Such a response is one that even the angry lawyer will respond to.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">to
+ find you</a> in stationery on my own account."</p>
+ <p>Now my original business--that of a <a href="javascript:void(0);" onclick="return overlib('A conveyancer does the paper work to legally transfer property; a title hunter makes certain that titles of ownership are free and clear. Note that his business deals strictly with legal paperwork, not with matters of justice. Such paperwork is necessary only in a society where a person\'s word is likely not to be trustworthy, in other words, a world with flawed and dishonest communications.', STICKY)"
+ onmouseout="nd();" class="popup">conveyancer
+ and title hunter</a>, and drawer-up of recondite documents of
+ all sorts--was considerably increased by receiving the master's office.
+ There was now great work for scriveners. Not only must I push the clerks
+ already with me, but I must have additional help. In answer to my advertisement,
+ a motionless young man one morning, stood upon my office threshold, the
+ door being open, for it was summer. I can see that figure now--<a href="javascript:void(0);"
+ onclick="return overlib('What an emotional as well as visual description is packed in these few words! We see more than a man; we see what he would become to the lawyer. Do you think that words like &quot;pitiable&quot; and &quot;incurable&quot; would have occurred to the lawyer at that moment? Or is he also juxtaposing his later understanding of Bartleby? (and himself?)&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">pallidly
+ neat</a>, pitiably respectable, incurably forlorn! It was Bartleby.</p>
+ <p>After a few words touching his qualifications, I engaged him, glad to
+ have among <a href="javascript:void(0);" onclick="return overlib('here is used as a military image, appropriate for the hierarchy which clearly exists in this office.', STICKY)"
+ onmouseout="nd();" class="popup">my
+ corps</a> of copyists a man of so <a href="javascript:void(0);"
+ onclick="return overlib('Note that he chooses Bartleby primarily for his sense of calm and lack of excitability and presentability, and for little else. He takes him at his word about his experience.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">singularly
+ sedate</a> an aspect, which I thought might operate beneficially
+ upon the flighty temper of Turkey, and the fiery one of Nippers.</p>
+ <p>I should have stated before that ground glass folding-doors divided my
+ premises into two parts, one of which was occupied by my scriveners, the
+ other by myself. <a href="javascript:void(0);" onclick="return overlib('He has full control over the doors, and thus over the ability to communicate in the office. But he opens them not for logical reasons but almost on whim, depending on his mood or &quot;humor.&quot;', STICKY)"
+ onmouseout="nd();" class="popup">According
+ to my humor</a> I threw open these doors, or closed them. I resolved
+ to assign Bartleby a corner by the folding-doors, but on my side of them,
+ so as to have this quiet man within easy call, in case any <a href="javascript:void(0);"
+ onclick="return overlib('He will put him on the &quot;communicating&quot; side primarily to take care of trifles, then, not because he cares to communicate with him. At the same time, he is dividing him from his fellow workers.', STICKY)"
+ onmouseout="nd();" class="popup">trifling
+ thing</a> was to be done. I placed his desk close up to a small
+ side window in that part of the room, a window which originally had afforded
+ a lateral view of certain grimy back-yards and bricks, but which, owing
+ to <a href="javascript:void(0);" onclick="return overlib('At this point, the reader is reminded that they are in New York City, and that the tall buildings block views from windows. (no glimpses of the green of Central Park in this office!) The connection of walls and the urban setting seems important in this story.', STICKY)"
+ onmouseout="nd();" class="popup">subsequent
+ erections,</a> commanded at present no view at all, though it
+ gave some light. Within three feet of the panes was a wall, and the light
+ came down from far above, between two lofty buildings, as from a very small
+ opening in a dome. Still further to a satisfactory arrangement, I procured
+ <a
+ href="javascript:void(0);" onclick="return overlib('Although it is green, it is hardly &quot;natural,&quot; especially since it walls Bartleby off from the lawyer\'s sight and his fellow workers. In fact, note that he is walled off, either by the screen, the doors, or the wall outside the window, on all sides. What do you think of this judgment: &quot;Bartleby\'s cubicle faces a ded, blind wall that symbolizes the moral blindness of the laws and the invisibility of the underclass on whose labor prosperity depends.&quot;&nbsp; (Robertson-Lorant, 333)', STICKY)"
+ onmouseout="nd();" class="popup">a high green folding screen</a>, which might entirely isolate Bartleby
+ from my sight, though not remove him from <a href="javascript:void(0);"
+ onclick="return overlib('And the primary function of that &quot;voice&quot; is to summon Bartleby to do &quot;trifling things.&quot;', STICKY)"
+ onmouseout="nd();" class="popup">my
+ voice</a>. And thus, in a manner, privacy and society were
+ <a
+ href="javascript:void(0);" onclick="return overlib('Brought together for whom? the lawyer? Bartleby?&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">conjoined.</a>
+ </p>
+ <p>At first Bartleby did an extraordinary quantity of writing. As if long
+ <a
+ href="javascript:void(0);" onclick="return overlib('This is the first of many references to eating (although probably not the most important one!). How do these references play out in the story (culminating in &quot;he lives without eating?&quot;)? The only person who does not eat--although we may assume that he is well-fed--is the lawyer/narrator. Is this significant?', STICKY)"
+ onmouseout="nd();" class="popup">famishing</a>for something to copy, he seemed to <a href="javascript:void(0);"
+ onclick="return overlib('Now we\'re getting some serious eating imagery', STICKY)"
+ onmouseout="nd();" class="popup">gorge</a> himself on my documents. There
+ was no pause for digestion. He ran a day and night line, copying by sun-light
+ and by candle-light. I should have been quite delighted with his application,
+ had be been <a href="javascript:void(0);" onclick="return overlib('He\'s a tough boss to please! Not only does he like Bartleby\'s extraordinary devotion to his job but he wants him to be happy in the process. Such a man--and the assumptions he has about the ideal employee (not unlike a &quot;happy slave&quot;?) would be most difficult to work for, for there\'s no way he would be pleased with any sort of normal work and attitude.', STICKY)"
+ onmouseout="nd();" class="popup">cheerfully
+ industrious</a>. But he wrote on silently, palely, <a href="javascript:void(0);"
+ onclick="return overlib('A key word for the scrivener who is essentially a human copying machine.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">mechanically.</a>
+ </p>
+ <p>It is, of course, an indispensable part of a scrivener's business to verify
+ the accuracy of his copy, word by word. Where there are two or more scriveners
+ in an office, they assist each other in this examination, one reading from
+ the copy, the other holding the original. It is a <a href="javascript:void(0);"
+ onclick="return overlib('He is certainly correct, but how would he know? Surely he has never had to do such work!', STICKY)"
+ onmouseout="nd();" class="popup">very
+ dull, wearisome, and lethargic</a> affair. I can readily imagine
+ that to some <a href="javascript:void(0);" onclick="return overlib('ardently optimistic, cheerful. In other words, he concedes that a certain melancholy or maladjustment makes for a better employee.', STICKY)"
+ onmouseout="nd();" class="popup">sanguine</a> temperaments it would be altogether
+ intolerable. For example, I cannot credit that the <a href="javascript:void(0);"
+ onclick="return overlib('He has chosen a romantic poet, famed for his adventuresome spirit (although &quot;mettlesome&quot; suggests he doesn\'t care much for poets.) Some interpret this passage as suggesting that no creative person could survive such work, even though it might be necessary for making a decent living. He seems to recognize that legal copying is blinding, cramping, uncreativework.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">mettlesome
+ poet Byron</a> would have contentedly sat down with Bartleby
+ to examine a law document of, say five hundred pages, closely written in
+ a crimpy hand.</p>
+ <p>Now and then, in the haste of business, it had been my habit to assist
+ in comparing some brief document myself, calling Turkey or Nippers for
+ this purpose. One object I had in placing Bartleby so handy to me behind
+ the screen, was to avail myself of his services on such <a href="javascript:void(0);"
+ onclick="return overlib('Again he reminds the reader that he hopes Bartleby will be available for what he freely admits are trivialities.', STICKY)"
+ onmouseout="nd();" class="popup">trivial
+ occasions</a>. It was on the third day, I think, of his being
+ with me, and before any necessity had arisen for having his own writing
+ examined, that, being much hurried to complete a small affair I had in
+ hand, I abruptly called to Bartleby. In my haste and <a href="javascript:void(0);"
+ onclick="return overlib('According to his theory of management, when the boss says &quot;jump,&quot; his employees should say &quot;how high?&quot;', STICKY)"
+ onmouseout="nd();" class="popup">natural
+ expectancy of instant compliance</a>, I sat with my head bent
+ over the original on my desk, and my right hand sideways, and somewhat
+ nervously extended with the copy, so that immediately upon emerging from
+ his retreat, Bartleby might <a href="javascript:void(0);" onclick="return overlib('Evidently he doesn\'t know his man at all if he expects him to &quot;snatch&quot; anything!&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">snatch</a> it and proceed to business without
+ the least delay.</p>
+ <p>In this very attitude did I sit when I called to him, rapidly stating
+ what it was I wanted him to do--namely, to examine a small paper with me.
+ Imagine my surprise, nay, my consternation, when without moving from his
+ privacy, Bartleby in a singularly <a href="javascript:void(0);" onclick="return overlib('These would seem to be very significant adjectives and they are used frequently to describe his voice and demeanor', STICKY)"
+ onmouseout="nd();" class="popup">mild,
+ firm voice</a>, replied,<a href="javascript:void(0);" onclick="return overlib('Note that he does not say &quot;no&quot; and that he is very polite. The underlying assumption is that his preferences should matter. Should they? Do they, in this business world? By voicing a personal preference, Bartleby throws a monkey wrench into the whole system.&quot; In &quot;Civil Disobedience,&quot; Thoreau writes that a person who resists oppression acts as &quot;a counter-friction to the machine&quot; that crushes initiative and creativity. Bartleby is not Thoreau, but he seems to understand the power of passive resistance.', STICKY)"
+ onmouseout="nd();" class="popup">"I
+ would prefer not to."</a>
+ </p>
+ <p>I sat awhile in perfect silence, rallying my stunned faculties. Immediately
+ it occurred to me that my ears had deceived me, or Bartleby had entirely
+ misunderstood my meaning. I repeated my request in the clearest tone I
+ could assume. But in quite as clear a one came the previous reply, "I would
+ prefer not to."</p>
+ <p>"Prefer not to," echoed I, rising in high excitement, and crossing the
+ room with a stride, "What do you mean? Are you <a href="javascript:void(0);"
+ onclick="return overlib('i.e. &quot;looney&quot; (from &quot;lune-ey&quot;). For some reason, there is a common tie between the moon and mild madness! Actually it\'s the lawyer who seems to be &quot;struck,&quot; psychologically anyhow. Notice that the imagery of blows and thrusts (like fencing?) will be repeated.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">moon-struck</a>? I want you to help me
+ compare this sheet here--take it," and I thrust it towards him.</p>
+ <p>"I would prefer not to," said he.</p>
+ <p>I looked at him steadfastly. His face was leanly composed; his gray eye
+ dimly calm. Not a wrinkle of agitation rippled him. Had there been the
+ least uneasiness, anger, impatience or impertinence in his manner; in other
+ words, had there been any thing <a href="javascript:void(0);" onclick="return overlib('How is Bartleby not ordinarily human, at this point? Does this mean he is someh divine? saintly? or inhuman? or just very special in some sense because he does not show violent emotion (which the narrator has adjusted himself to with his other two employees.)', STICKY)"
+ onmouseout="nd();" class="popup">ordinarily
+ human</a> about him, doubtless <a href="javascript:void(0);" onclick="return overlib('Perhaps this is standard business behavior (although the &quot;violence&quot; might not be).', STICKY)"
+ onmouseout="nd();" class="popup">I
+ should have violently dismissed</a> him from the premises. But
+ as it was, I should have as soon thought of turning my pale <a href="javascript:void(0);"
+ onclick="return overlib('>How is Bartleby like this wise philosopher?', STICKY)"
+ onmouseout="nd();" class="popup">plaster-of-paris
+ bust of Cicero</a> out of doors. I stood gazing at him awhile,
+ as he went on with his own writing, and then reseated myself at my desk.
+ This is very strange, thought I. What had <a href="javascript:void(0);"
+ onclick="return overlib('Why does he use the impersonal pronoun here? After all, the real question is what should HE do.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">one</a> best do? But my business hurried
+ me. I concluded to forget the matter for the present, reserving it for
+ my future leisure. So calling Nippers from the other room, the paper was
+ speedily examined.</p>
+ <p>A few days after this, Bartleby concluded four lengthy documents, being
+ quadruplicates of a week's testimony taken before me in my High Court of
+ Chancery. It became necessary to examine them. It was an important suit,
+ and great accuracy was imperative. Having all things arranged I called
+ Turkey, Nippers and Ginger Nut from the next room, meaning to place the
+ four copies in the hands of my four clerks, while I should read from the
+ original. Accordingly Turkey, Nippers and Ginger Nut had taken their seats
+ in a row, each with his document in hand, when I called to Bartleby to
+ join this <a href="javascript:void(0);" onclick="return overlib('Is he being ironic here', STICKY)"
+ onmouseout="nd();" class="popup">interesting
+ group</a>.</p>
+ <p>"Bartleby! quick, I am waiting."</p>
+ <p>I heard a low scrape of his chair legs on the unscraped floor, and soon
+ he appeared standing at the entrance of his <a href="javascript:void(0);"
+ onclick="return overlib('A telling word which will be used repeatedly. A hermitage is a secluded or hidden residence, in which a hermit may reside (although not necessarily). But the seclusion was actually arranged by the lawyer, not Bartleby (so maybe it encourages his being a &quot;hermit&quot;?)&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">hermitage.</a>
+ </p>
+ <p>"What is wanted?" said he mildly.</p>
+ <p>"The copies, the copies," said I hurriedly. "We are going to examine them.
+ There"--and I held towards him the fourth quadruplicate.</p>
+ <p>"I would prefer not to," he said, and gently disappeared behind the screen.</p>
+ <p>For a few moments I was turned into <a href="javascript:void(0);" onclick="return overlib('This is a reference to Genesis 19:26, where Lot\'s wife was turned into a pillar of salt for disobeying God and looking back to Sodom. Ironically, it seems to be Bartleby who is disobedient. Again, he is &quot;struck&quot; still by astonishment. He is temporarily immobile; Bartleby is also immobile behind the screen.', STICKY)"
+ onmouseout="nd();" class="popup">a
+ pillar of salt,</a> standing at the head of my seated column
+ of clerks. Recovering myself, I <a href="javascript:void(0);" onclick="return overlib('a military term again. Note that he advances to the screen, not to the man.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">advanced</a> towards the screen, and demanded
+ the reason for such extraordinary conduct.</p>
+ <p>"<i>Why</i> do you refuse?"</p>
+ <p>"I would prefer not to."</p>
+ <p>With any other man I should have <a href="javascript:void(0);" onclick="return overlib('Another reminder that he is susceptible to violent rages, although he considers himself a prudent and reasonable man. What about Bartleby restrains--or significantly, &quot;disarms&quot;--him?', STICKY)"
+ onmouseout="nd();" class="popup">flown
+ outright into a dreadful passion,</a> scorned all further words,
+ and thrust him ignominiously from my presence. But there was something
+ about Bartleby that not only strangely disarmed me, but in a wonderful
+ manner touched and disconcerted me. I began to reason with him.</p>
+ <p>"These are your own copies we are about to examine. It is labor saving
+ to you, because one examination will answer for your four papers. <a href="javascript:void(0);"
+ onclick="return overlib('Just because something is &quot;common usage&quot;, does that make it humane or right?', STICKY)"
+ onmouseout="nd();" class="popup">It
+ is common usage.</a> Every copyist is bound to help examine his
+ copy. Is it not so? Will you not speak? Answer!"</p>
+ <p>"I prefer not to," he replied in a flute-like tone. It seemed to me that
+ while I had been addressing him, he carefully revolved every statement
+ that I made; fully comprehended the meaning; could not gainsay the irresistible
+ conclusion; but, at the same time, some paramount consideration prevailed
+ with him to reply as he did.</p>
+ <p>"You are decided, then, not to comply with my request--a request made
+ according to common usage and common sense?"</p>
+ <p>He briefly gave me to understand that on that point <a href="javascript:void(0);"
+ onclick="return overlib(' He does like to think of himself as reasonable. Whether that\'s what Bartleby thinks (the narrator is the one to use this phrase) is another question. Certainly Bartleby is calmer.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">my
+ judgment was sound.</a> Yes: his decision was irreversible.</p>
+ <p>It is not seldom the case that when a man is <a href="javascript:void(0);"
+ onclick="return overlib('Has he been browbeaten? (think about that word!) Why is he overreacting?', STICKY)"
+ onmouseout="nd();" class="popup">browbeaten</a> in some unprecedented and
+ violently unreasonable way, <a href="javascript:void(0);" onclick="return overlib('Again, he is struck, and now he doesn\'t even trust himself.', STICKY)"
+ onmouseout="nd();" class="popup">he
+ begins to stagger</a> in his own plainest faith. He begins, as
+ it were, vaguely to surmise that, wonderful as it may be, all the justice
+ and all the reason is on the other side. Accordingly, if any disinterested
+ persons are present, he turns to them for some reinforcement for his own
+ <a
+ href="javascript:void(0);" onclick="return overlib('Note his response here of self-doubt. Why is that? Why would he then turn to support to his other employees, whom he does not appear to respect very much? Is there desperation in his appeal?', STICKY)"
+ onmouseout="nd();" class="popup">faltering mind.</a>
+ </p>
+ <p>"Turkey," said I, "what do you think of this? Am I not right?"</p>
+ <p>"With submission, sir," said Turkey, with his blandest tone, "I think
+ that you are."</p>
+ <p>"Nippers," said I, "what do<i> you</i> think of it?"</p>
+ <p>"I think I should kick him out of the office."</p>
+ <p>(The reader of nice perceptions will here perceive that, it being morning,
+ Turkey's answer is couched in polite and tranquil terms, but Nippers replies
+ in ill-tempered ones. Or, to repeat a previous sentence, Nipper's ugly
+ mood was on duty, and Turkey's off.)</p>
+ <p>"Ginger Nut," said I, willing to enlist the smallest suffrage in my behalf,
+ "what do<i> you</i> think of it?"</p>
+ <p>"I think, sir, he's a little<i> luny</i>," replied Ginger Nut, with a
+ grin.</p>
+ <p>"You hear what they say," said I, turning towards the screen, "come forth
+ and <a href="javascript:void(0);" onclick="return overlib('His &quot;duty&quot; here is verified by his fellow clerks then. What authority do they hold? As Turkey says repeatedly, he responds &quot;with submission.&quot; The idea of &quot;doing your duty&quot; will come back to haunt the narrator toward the end', STICKY)"
+ onmouseout="nd();" class="popup">do
+ your duty</a>."</p>
+ <p>But he vouchsafed no reply. I pondered a moment in sore perplexity. But
+ once more business hurried me. I determined <a href="javascript:void(0);"
+ onclick="return overlib('This makes twice he decides to &quot;think about it.&quot; This will become a pattern in his response to Bartleby.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">again</a> to postpone the consideration
+ of this dilemma to my future leisure. With a little trouble we made out
+ to examine the papers without Bartleby, though at every page or two, Turkey
+ deferentially dropped his opinion that this proceeding was quite out of
+ the common; while Nippers, twitching in his chair with a dyspeptic nervousness,
+ ground out between his set teeth occasional hissing maledictions against
+ the stubborn oaf behind the screen. And for his (Nipper's) part, this was
+ the first and the last time he would do another man's business without
+ pay.</p>
+ <p>Meanwhile Bartleby sat in his hermitage, oblivious to every thing but
+ his own peculiar business there.</p>
+ <p>Some days passed, the scrivener being employed upon another lengthy work.
+ His late remarkable conduct led me to regard his way narrowly. I observed
+ that he never went to dinner; indeed that he never went any where. As yet
+ I had never of my personal knowledge known him to be outside of my office.
+ He was a <a href="javascript:void(0);" onclick="return overlib('Again a military image, and a very immobile one at that.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">perpetual
+ sentry</a> in the corner. At about eleven o'clock though, in
+ the morning, I noticed that Ginger Nut would advance toward the opening
+ in Bartleby's screen, as if silently beckoned thither by a gesture invisible
+ to me where I sat. That boy would then leave the office jingling a few
+ pence, and reappear with a handful of ginger-nuts which he delivered in
+ the hermitage, receiving two of the cakes for his trouble.</p>
+ <p>He lives, then, on ginger-nuts, thought I; never eats a dinner, properly
+ speaking; he must be a vegetarian then, but no; he never eats even vegetables,
+ he <a href="javascript:void(0);" onclick="return overlib('At this point he doesn\'t actually know that this is true, so why does he imagine that it is?', STICKY)"
+ onmouseout="nd();" class="popup">eats
+ nothing but ginger-nuts</a>. My mind then ran on in reveries
+ concerning the probable effects upon the human constitution of living entirely
+ on ginger-nuts. Ginger-nuts are so called because they contain ginger as
+ one of their peculiar constituents, and the final flavoring one. Now what
+ was ginger? A hot, spicy thing. Was Bartleby hot and spicy? Not at all.
+ Ginger, then, had no effect upon Bartleby. Probably<a href="javascript:void(0);"
+ onclick="return overlib('He seems to be trying to be humorous about it all here. But notice that &quot;the phrase&quot; has already become part of his thinking, perhaps without his realizing it.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">
+ he preferred it should have none.</a>
+ </p>
+ <p>Nothing so aggravates an earnest person as a <a href="javascript:void(0);"
+ onclick="return overlib('Some readers see a reflection of Henry David Thoreau, author of &quot;Civil Disobedience,&quot; in this stance. However, Thoreau was not passive; he just did not act violently. He refused to compromise to the business world, choosing to live cheaply as possible so that he would be able to write.', STICKY)"
+ onmouseout="nd();" class="popup">passive
+ resistance.</a> If the individual so resisted be of a not inhumane
+ temper, and the resisting one perfectly harmless in his passivity; then,
+ in the better moods of the former, he will endeavor charitably to <a href="javascript:void(0);"
+ onclick="return overlib('This is exactly what he is going to do.', STICKY)"
+ onmouseout="nd();" class="popup">construe
+ to his imagination</a> what proves impossible to be solved by
+ his judgment. Even so, for the most part, I regarded Bartleby and his ways.
+ Poor fellow! thought I, he means no mischief; it is plain he intends no
+ insolence; his aspect sufficiently evinces that his eccentricities are
+ involuntary. <a href="javascript:void(0);" onclick="return overlib('This, of course, is the primary reason he keeps him at this point, not because of any respect or compassion.', STICKY)"
+ onmouseout="nd();" class="popup">He
+ is useful to me</a>. I can get along with him. If I turn him
+ away, the chances are he will fall in with some less indulgent employer,
+ and then he will be rudely treated, and perhaps driven forth miserably
+ to starve. Yes. Here <a href="javascript:void(0);" onclick="return overlib('In other words, he will tolerate Bartleby not because he cares for him, but because he can gain points in heaven for it and feel good about being so benevolent. Note the words &quot;purchase&quot; and &quot;delicious.&quot;', STICKY)"
+ onmouseout="nd();" class="popup">I
+ can cheaply purchase</a> a delicious self-approval. To befriend
+ Bartleby; to humor him in his strange willfulness, will cost me little
+ or nothing, while I lay up in my soul what will eventually prove a <a href="javascript:void(0);"
+ onclick="return overlib('An interesting instance of food imagery!', STICKY)"
+ onmouseout="nd();" class="popup">sweet
+ morsel</a> for my conscience. But this mood was not invariable
+ with me. The passiveness of Bartleby sometimes irritated me. I felt strangely
+ goaded on to encounter him in new opposition, to elicit some angry spark
+ from him answerable to my own. But indeed I might as well have essayed
+ to strike fire with my knuckles against a bit of <a href="javascript:void(0);"
+ onclick="return overlib('a brand of soft hand soap', STICKY)" onmouseout="nd();"
+ class="popup">Windsor
+ soap</a>. But one afternoon the evil impulse in me mastered
+ me, and the following little scene ensued:</p>
+ <p>"Bartleby," said I, "when those papers are all copied, I will compare
+ them with you."</p>
+ <p>"I would prefer not to."</p>
+ <p>"How? Surely you do not mean to persist in that <a href="javascript:void(0);"
+ onclick="return overlib('so he\'s a mule? No wonder there is no answer to this insult.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">mulish
+ vagary?</a>"</p>
+ <p>No answer.</p>
+ <p>I threw open the folding-doors near by, and turning upon Turkey and Nippers,
+ exclaimed in an excited manner--</p>
+ <p>"He says, a second time, he won't examine his papers. What do you think
+ of it, Turkey?"</p>
+ <p>It was afternoon, be it remembered. Turkey sat glowing like a brass boiler,
+ his bald head steaming, his hands reeling among his blotted papers.</p>
+ <p>"Think of it?" roared Turkey; "I think I'll just step behind his screen,
+ and black his eyes for him!"</p>
+ <p>So saying, Turkey rose to his feet and threw his arms into a <a href="javascript:void(0);"
+ onclick="return overlib('like a fighter. Again we have violent imagery.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">pugilistic
+ position</a>. He was hurrying away to make good his promise,
+ when I detained him, alarmed at the effect of incautiously rousing Turkey's
+ combativeness after dinner.</p>
+ <p>"Sit down, Turkey," said I, "and hear what Nippers has to say. What do
+ you think of it, Nippers? Would I not be justified in immediately dismissing
+ Bartleby?"</p>
+ <p>"Excuse me, that is for you to decide, sir. I think his conduct quite
+ unusual, and indeed unjust, as regards Turkey and myself. But it may only
+ be a passing whim."</p>
+ <p>"Ah," exclaimed I, "you have strangely changed your mind then--you speak
+ very gently of him now."</p>
+ <p>"All beer," cried Turkey; "gentleness is effects of beer--Nippers and
+ I dined together to-day. You see how gentle I am, sir. Shall I go and black
+ his eyes?"</p>
+ <p>"You refer to Bartleby, I suppose. No, not to-day, Turkey," I replied;
+ "pray, put up your fists."</p>
+ <p>I closed the doors, and again advanced towards Bartleby. I felt additional
+ incentives tempting me to my fate. <a href="javascript:void(0);" onclick="return overlib('He is provoking Bartleby to fulfill some personal needs of his own. What might they be?', STICKY)"
+ onmouseout="nd();" class="popup">I
+ burned to be rebelled against again.</a> I remembered that Bartleby
+ never left the office.</p>
+ <p>"Bartleby," said I, "Ginger Nut is away; just step round to the <a href="javascript:void(0);"
+ onclick="return overlib('As we will see later, Bartleby may have good reason for not going there.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">Post
+ Office</a>, won't you? (it was but a three minutes walk,) and
+ see if there is any thing for me."</p>
+ <p>"I would prefer not to."</p>
+ <p>"You<i> will</i> not?"</p>
+ <p>"I <i>prefer</i> not."</p>
+ <p>I <a href="javascript:void(0);" onclick="return overlib('He is clearly deeply shaken.', STICKY)"
+ onmouseout="nd();" class="popup">staggered</a> to my desk, and sat there
+ in a deep study. My <a href="javascript:void(0);" onclick="return overlib('tenacity. They are both being stubborn!', STICKY)"
+ onmouseout="nd();" class="popup">blind
+ inveteracy</a> returned. Was there any other thing in which I
+ could procure myself to be <a href="javascript:void(0);" onclick="return overlib('dishonorably, disgracefully. Evidently he is sensitive about being humiliated.', STICKY)"
+ onmouseout="nd();" class="popup">ignominiously</a> repulsed by this lean,
+ penniless with?--<a href="javascript:void(0);" onclick="return overlib('Not a troubled human being, but his &quot;hired clerk&quot; (almost his slave?) Why does he continue to try to provoke him?&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">my
+ hired clerk</a>? What added thing is there, perfectly reasonable,
+ that he will be sure to refuse to do?</p>
+ <p>"Bartleby!"</p>
+ <p>No answer.</p>
+ <p>"Bartleby," in a louder tone.</p>
+ <p>No answer.</p>
+ <p>"Bartleby," I roared.</p>
+ <p>Like <a href="javascript:void(0);" onclick="return overlib('There will be several references to him as ghostly, perhaps showing death-in-life.', STICKY)"
+ onmouseout="nd();" class="popup">a
+ very ghost</a>, agreeably to the laws of magical invocation,
+ at the third summons, he appeared at the entrance of his hermitage.</p>
+ <p>"Go to the next room, and tell Nippers to come to me."</p>
+ <p>"I prefer not to," he <a href="javascript:void(0);" onclick="return overlib('He is always polite and respectful, even when he is being insulted.', STICKY)"
+ onmouseout="nd();" class="popup">respectfully
+ </a>and slowly said, and mildly disappeared.</p>
+ <p>"Very good, Bartleby," said I, in a quiet sort of serenely severe self-possessed
+ tone, intimating the unalterable purpose of some <a href="javascript:void(0);"
+ onclick="return overlib('What could he have in mind? Oh well, he\'s hungry and doesn\'t want to bother punishing Bartleby.', STICKY)"
+ onmouseout="nd();" class="popup">terrible
+ retribution</a> very close at hand. At the moment I half intended
+ something of the kind. But upon the whole, as it was drawing towards my
+ dinner-hour, I thought it best to put on my hat and walk home for the day,
+ <a
+ href="javascript:void(0);" onclick="return overlib('Why is he so very disturbed? Does he feel he is being personally attacked? punished?&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">suffering much from perplexity and distress of mind</a>.</p>
+ <p> <a href="javascript:void(0);" onclick="return overlib('Here he is openly appealing to the reader, perhaps even confessing. Is this whole story an effort to justify what he has done?', STICKY)"
+ onmouseout="nd();" class="popup">Shall
+ I acknowledge it?</a> The conclusion of this whole business was
+ that it soon became a fixed fact of my chambers, that a pale young scrivener,
+ by the name of Bartleby, had a desk there; that he copied for me at the
+ usual rate of <a href="javascript:void(0);" onclick="return overlib('This shows that Bartleby was not paid by the hour or salary, but &quot;by the piece,&quot; as the others must be.mThat means that the lawyer did not have to pay for work done slowly and poorly, only for acceptable work.', STICKY)"
+ onmouseout="nd();" class="popup">four
+ cents a folio </a>(one hundred words); but he was permanently
+ exempt from examining the work done by him, that duty being transferred
+ to Turkey and Nippers, one of compliment doubtless to their superior acuteness;
+ moreover, said Bartleby was never on any account to be dispatched on the
+ most trivial errand of any sort; and that even if entreated to take upon
+ him such a matter, it was generally understood that he would prefer not
+ to--in other words, that he would refuse <a href="javascript:void(0);" onclick="return overlib('Though he certainly refuses, is it &quot;point blank&quot;?&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">point-blank.</a>
+ </p>
+ <p>32 As days passed on, I became considerably reconciled to Bartleby. His
+ steadiness, his freedom from all dissipation, his incessant industry (except
+ when he chose to throw himself into a standing revery behind his screen),
+ his great stillness, his unalterableness of demeanor under all circumstances,
+ made him <a href="javascript:void(0);" onclick="return overlib('The lawyer convinces himself of Bartleby\'s &quot;virtues.&quot; Note that he speaks of him not as a person, but a &quot;valuable acquisition&quot;! Do you think Bartleby is aware of this dehumanizing attitude?', STICKY)"
+ onmouseout="nd();" class="popup">a
+ valuable acquisition</a>. One prime thing was this,--he was
+ always there;--first in the morning, continually through the day, and the
+ last at night. I had a singular confidence in his honesty. I felt my most
+ precious papers perfectly safe in his hands. Sometimes to be sure I could
+ not, <a href="javascript:void(0);" onclick="return overlib('what a curious statement! Is Bartleby in some way connected with the lawyer\'s soul?', STICKY)"
+ onmouseout="nd();" class="popup">for
+ the very soul of me</a>, avoid falling into sudden spasmodic
+ passions with him. For it was exceeding difficult to bear in mind all the
+ time those strange peculiarities, privileges, and unheard of exemptions,
+ forming the tacit stipulations on Bartleby's part under which he remained
+ in my office. Now and then, in the eagerness of dispatching pressing business,
+ I would inadvertently summon Bartleby, in a short, rapid tone, to put his
+ finger, say, on the incipient tie of a bit of red tape with which I was
+ about compressing some papers. Of course, from behind the screen the usual
+ answer, "I prefer not to," was sure to come; and then, <a href="javascript:void(0);"
+ onclick="return overlib('Is he defending himself here? For whom? Why?', STICKY)"
+ onmouseout="nd();" class="popup">how
+ could a human creature</a> with the common infirmities of our
+ nature, refrain from bitterly exclaiming upon such perverseness--such unreasonableness.
+ However, every added repulse of this sort which I received only <a href="javascript:void(0);"
+ onclick="return overlib('Bartleby seems to be conditioning him very well.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">tended
+ to lessen</a> the probability of my repeating the inadvertence.</p>
+ <p>Here is must be said, that according to the custom of most legal gentlemen
+ occupying chambers in densely-populated law buildings, there were several
+ keys to my door. One was kept by a woman residing in the attic, which person
+ weekly scrubbed and daily swept and dusted my apartments. Another was kept
+ by Turkey for convenience sake. The third I sometimes carried in my own
+ pocket. The fourth I knew not who had.</p>
+ <p>Now, one Sunday morning I happened to go to Trinity Church, <a href="javascript:void(0);"
+ onclick="return overlib('In other words, why else would he go to church? His moral condition does not seem to be very strong, or his generosity very deep.', STICKY)"
+ onmouseout="nd();" class="popup">to
+ hear a celebrated preacher</a>, and finding myself rather early
+ on the ground, I thought I would walk round to my chambers for a while.
+ Luckily I had my key with me; but upon applying it to the lock, I found
+ it resisted by something inserted from the inside. Quite surprised, I called
+ out; when to my consternation a key was turned from within; and thrusting
+ his lean visage at me, and holding the door ajar, <a href="javascript:void(0);"
+ onclick="return overlib('Recall that he has already called him a ghost', STICKY)"
+ onmouseout="nd();" class="popup">the
+ apparition</a> of Bartleby appeared, in his shirt sleeves, and
+ otherwise in a strangely tattered dishabille, saying quietly that he was
+ sorry, but he was deeply engaged just then, and--preferred not admitting
+ me at present. In a brief word or two, he moreover added, that perhaps
+ I had better walk round the block two or three times, and by that time
+ he would probably have concluded his affairs. Now, the utterly <a href="javascript:void(0);"
+ onclick="return overlib('Why is he so surprised? He has already commended Bartleby for working so many hours overtime--and for no extra pay.', STICKY)"
+ onmouseout="nd();" class="popup">unsurmised
+ appearance</a> of Bartleby, tenanting my law-chambers of a Sunday
+ morning, with his <a href="javascript:void(0);" onclick="return overlib('This description adds to the idea of Bartleby as being somehow a &quot;living dead&quot; person.', STICKY)"
+ onmouseout="nd();" class="popup">cadaverously</a> gentlemanly nonchalance,
+ yet withal firm and self-possessed, had such a strange effect upon me,
+ that incontinently I slunk away from my own door, and did as desired. But
+ not without sundry twinges of impotent rebellion against the mild effrontery
+ of this unaccountable scrivener. Indeed, it was his wonderful mildness
+ chiefly, which not only disarmed me, but <a href="javascript:void(0);" onclick="return overlib('A &quot;real man&quot; would have dealt immediately and definitely with such defiance, right? This does seem to be a royal battle of wills at this point, and he\'s afraid he\'s losing--and losing face (a big kind of loss for a person who cherishes appearances).', STICKY)"
+ onmouseout="nd();" class="popup">unmanned</a> me, as it were. For I consider
+ that one, for the time, is a sort of unmanned when he tranquilly permits
+ his hired clerk to dictate to him, and <a href="javascript:void(0);" onclick="return overlib('Was what Bartleby said an &quot;order&quot;? Or does he just take it that way because his &quot;inferior&quot; is not showing proper respect for his property and rights?', STICKY)"
+ onmouseout="nd();" class="popup">order
+ him</a> away from his own premises. Furthermore, I was full of
+ uneasiness as to what Bartleby could possibly be doing in my office in
+ his shirt sleeves, and in an otherwise dismantled condition of a Sunday
+ morning. Was any thing amiss going on? Nay, that was out of the question.
+ It was not to be thought of for a moment that Bartleby was an immoral person.
+ But what could he be doing there?--copying? Nay again, whatever might be
+ his eccentricities, Bartleby was an eminently decorous person. He would
+ be the last man to sit down to his desk in any state approaching to nudity.
+ Besides, it was Sunday; and there was something about Bartleby that forbade
+ the supposition that we would by any secular occupation violate <a href="javascript:void(0);"
+ onclick="return overlib('One thing he likes about Bartleby is his dress and observation of &quot;proprieties,&quot; in short, how well he makes his boss to appear.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">the
+ proprieties</a> of the day.</p>
+ <p>Nevertheless, my mind was not pacified; and full of a restless curiosity,
+ at last I returned to the door. Without hindrance I inserted my key, opened
+ it, and entered. Bartleby was not to be seen. I looked round anxiously,
+ peeped behind his screen; but it was very plain that he was gone. Upon
+ more closely examining the place, I surmised that for an indefinite period
+ Bartleby must have ate, dressed, and slept in my office, and that too without
+ plate, mirror, or bed. The cushioned seat of a rickety old sofa in one
+ corner bore t faint impress of a lean, reclining form. Rolled away under
+ his desk, I found a blanket; under the empty grate, a blacking box and
+ brush; on a chair, a tin basin, with soap and a ragged towel; in a newspaper
+ a few crumbs of ginger-nuts and a morsel of cheese. Yet, thought I, it
+ is evident enough that Bartleby has been making his home here, keeping
+ <a
+ href="javascript:void(0);" onclick="return overlib('Presumably the lawyer is also a bachelor. They may have more in common than immediately appears to be! Both are probably well acquainted with loneliness.', STICKY)"
+ onmouseout="nd();" class="popup">bachelor's hall</a>all by himself. Immediately then the thought came sweeping
+ across me, What miserable friendlessness and loneliness are here revealed!
+ His poverty is great; but his solitude, <a href="javascript:void(0);" onclick="return overlib('Again his sympathy is aroused. Obviously he can imagine with great feeling--perhaps a feeling that he himself has experienced?', STICKY)"
+ onmouseout="nd();" class="popup">how
+ horrible!</a> Think of it. Of a Sunday, Wall-street is deserted
+ as <a href="javascript:void(0);" onclick="return overlib('an ancient ruined city', STICKY)"
+ onmouseout="nd();" class="popup">Petra</a>; and every night of every day
+ it is an emptiness. This building too, which of week-days hums with industry
+ and life, at nightfall echoes with sheer vacancy, and all through Sunday
+ is forlorn. And here Bartleby makes his home; sole spectator of a solitude
+ which he has seen all populous--a sort of innocent and transformed <a href="javascript:void(0);"
+ onclick="return overlib('Marius was a Roman general who was exiled from Rome, captured by enemies, and escaped to Africa, sending back a message to Rome that he was sitting &quot;amid the ruins of Carthage,&quot; presumably feeling very much like a ruin himself.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">Marius
+ brooding among the ruins of Carthage!</a>
+ </p>
+ <p>For the <a href="javascript:void(0);" onclick="return overlib('The lawyer is changing, having feelingsof melancholy (about the human condition?) he never admitted to himself before.', STICKY)"
+ onmouseout="nd();" class="popup">first
+ time in my life</a> a feeling of overpowering stinging melancholy
+ seized me. Before, I had never experienced aught but a not-unpleasing sadness.
+ The bond of a common humanity now drew me irresistibly to gloom. A fraternal
+ melancholy! For both I and Bartleby were <a href="javascript:void(0);" onclick="return overlib('Here he truly connects with Bartleby and so has a new perspective on himself and the connections between human beings.', STICKY)"
+ onmouseout="nd();" class="popup">sons
+ of Adam</a>. I remembered the bright silks and sparkling faces
+ I had seen that day in gala trim, swan-like sailing down the Mississippi
+ of Broadway; and I contrasted them with the pallid copyist, and thought
+ to myself, Ah, happiness courts the light, so we deem the world is gay;
+ but misery hides aloof, so we deem that misery there is none. These sad
+ fancyings-- <a href="javascript:void(0);" onclick="return overlib('fancies, illusions', STICKY)"
+ onmouseout="nd();" class="popup">chimeras</a>, doubtless, of a sick and
+ silly brain--led on to other and more special thoughts, concerning the
+ eccentricities of Bartleby. Presentiments of strange discoveries hovered
+ round me. The scrivener's pale form appeared to me <a href="javascript:void(0);"
+ onclick="return overlib('He imagines Bartleby dead among uncaring people. What does this show about him at this point?&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">laid
+ out</a>, among uncaring strangers, in its shivering winding
+ sheet.</p>
+ <p>Suddenly I was attracted by Bartleby's closed desk, the key in open sight
+ left in the lock.</p>
+ <p> <a href="javascript:void(0);" onclick="return overlib('Again, he is quite defensive before the reader. Isn\'t he invading Bartleby\'s territory? Or is he justified in poking around his desk? Does that explain the change that will come in Bartleby?', STICKY)"
+ onmouseout="nd();" class="popup">I
+ mean no mischief, </a>seek the gratification of no heartless
+ curiosity, thought I; besides, the desk is mine, and its contents too,
+ so I will make bold to look within. Every thing was methodically arranged,
+ the papers smoothly placed. The pigeon holes were deep, and removing the
+ files of documents, I groped into their recesses. Presently I felt something
+ there, and dragged it out. It was an old bandanna handkerchief, heavy and
+ knotted. I opened it, and saw it was a savings' bank.</p>
+ <p>I now recalled all the quiet mysteries which I had noted in the man. I
+ remembered that he never spoke but to answer; that though at intervals
+ he had considerable time to himself, yet I had never seen him reading--no,
+ not even a newspaper; that for long periods he would stand looking out,
+ at his pale window behind the screen, upon the dead brick wall; I was quite
+ sure he never visited any refectory or eating house; while his pale face
+ clearly indicated that he never drank beer like Turkey, or tea and coffee
+ even, like other men; that he never went any where in particular that I
+ could learn; never went out for a walk, unless indeed that was the case
+ at present; that he had declined telling who he was, or whence he came,
+ or whether he had any relatives in the world; that though so thin and pale,
+ he never complained of ill health. And more than all, I remembered a certain
+ unconscious air of pallid--how shall I call it?--of <a href="javascript:void(0);"
+ onclick="return overlib('He finds Bartleby proud but somehow lifeless. Has he yet realized that Bartleby may be fighting for respect?', STICKY)"
+ onmouseout="nd();" class="popup">pallid
+ haughtiness</a>, say, or rather an austere reserve about him,
+ which had positively awed me into my tame compliance with his eccentricities,
+ when I had feared to ask him to do the slightest incidental thing for me,
+ even though I might know, from his long-continued motionlessness, that
+ behind his screen he must be standing in one of those <a href="javascript:void(0);"
+ onclick="return overlib('This is the first time he seems to have personally confronted the &quot;view&quot; that Bartleby sees, as well as its significance. He has evidently been watching Bartleby closely in his &quot;hermitage.&quot;&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">dead-wall
+ reveries</a> of his.</p>
+ <p>Revolving all these things, and coupling them with the recently discovered
+ fact that he made my office his constant abiding place and home, and not
+ forgetful of his morbid moodiness; revolving all these things, a <a href="javascript:void(0);"
+ onclick="return overlib('Remember that prudence was his leading characteristic at the beginning of the story. How is this significant at this point? What is the link between prudence and the train of emotions he is experiencing?', STICKY)"
+ onmouseout="nd();" class="popup">prudential
+ feeling</a> began to steal over me. My first emotions had been
+ those of pure melancholy and sincerest pity; but just in proportion as
+ the forlornness of Bartleby grew and grew to my imagination, did that same
+ melancholy merge into <a href="javascript:void(0);" onclick="return overlib('What is it that he is afraid of?', STICKY)"
+ onmouseout="nd();" class="popup">fear</a>, that pity into repulsion. So
+ true it is, and so terrible too, that up to a certain point the thought
+ or sight of misery enlists our best affections; but, in certain special
+ cases, beyond that point it does not. They err who would assert that invariably
+ this is owing to the inherent selfishness of the human heart. It rather
+ proceeds from a certain hopelessness of remedying excessive and organic
+ ill. To a sensitive being, pity is not seldom pain. And when at last it
+ is perceived that such pity cannot lead to effectual succor, common sense
+ bids the soul be rid of it. What I saw that morning persuaded me that the
+ scrivener was the victim <a href="javascript:void(0);" onclick="return overlib('He sees him as hopelessly sick. Does this then relieve him of any responsibility for Bartleby\'s well-being? Or does it distance him from Bartleby, so he doesn\'t have to have those uncomfortable feelings? What alternatives would an employer have in such a situation? What would you expect him to do? Why?', STICKY)"
+ onmouseout="nd();" class="popup">of
+ innate and incurable disorder.</a> I might give alms to his body;
+ but his body did not pain him; it was his soul that suffered, and <a href="javascript:void(0);"
+ onclick="return overlib('This is a touching sentence, and probably an accurate observation of Bartleby\'s state. What is interesting is that the lawyer wishes, even desperately, to somehow touch his soul. Is it because his own soul is tied up in Bartleby\'s condition at this point?&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">his
+ soul I could not reach.</a>
+ </p>
+ <p>I did not accomplish the purpose of going to Trinity Church that morning.
+ Somehow, <a href="javascript:void(0);" onclick="return overlib('A curious statement. Does he feel soiled in some way? Or does he not feel that Trinity Church will help him with his moral dilemma?', STICKY)"
+ onmouseout="nd();" class="popup">the
+ things I had seen disqualified me</a> for the time from church-going.
+ I walked homeward, thinking what I would do with Bartleby. Finally, I
+ <a
+ href="javascript:void(0);" onclick="return overlib('He\'s quite happy that he\'s found a &quot;reasonable&quot; yet compassionate solution to this problem--fire him with severance pay and a promise of a recommendation. Yet he has just concluded that Bartleby\'s problems are not of the body but the soul. Why would he think this could possibly work?', STICKY)"
+ onmouseout="nd();" class="popup">resolved</a>upon this;--I would put certain calm questions to him the
+ next morning, touching his history, &amp;c., and if he declined to answer
+ then openly and reservedly (and I supposed he would prefer not), then to
+ give him a twenty dollar bill over and above whatever I might owe him,
+ and tell him his services were no longer required; but that if in any other
+ way I could assist him, I would be happy to do so, especially if he desired
+ to return to his native place, wherever that might be, I would willingly
+ help to defray the expenses. Moreover, if after reaching home, he found
+ himself at any time in want of aid, a letter from him would be sure of
+ a reply.</p>
+ <p>The next morning came.</p>
+ <p>"Bartleby," said I, gently calling to him behind the screen.</p>
+ <p>No reply.</p>
+ <p>"Bartleby," said I, in a still gentler tone, "come here; I am not going
+ to ask you to do any thing you would prefer not to do--I simply wish to
+ speak to you."</p>
+ <p>Upon this he noiselessly slid into view.</p>
+ <p>"Will you tell me, Bartleby, <a href="javascript:void(0);" onclick="return overlib(' Is this any business of his? He seems to be trying to establish a personal connection with Bartleby, rather than the business one alone.', STICKY)"
+ onmouseout="nd();" class="popup">where
+ you were born?"</a>
+ </p>
+ <p>"I would prefer not to."</p>
+ <p>"Will you tell me <i>anything </i>about yourself?"</p>
+ <p>"I would prefer not to."</p>
+ <p>"But what <a href="javascript:void(0);" onclick="return overlib('Again, there\'s emphasis on &quot;reason.&quot; Yet people--even the lawyer--often behave from unreasonable motivation (see his prudence and his consciousness of appearances, for example).', STICKY)"
+ onmouseout="nd();" class="popup">reasonable
+ objection</a> can you have to speak to me? I feel friendly towards
+ you."</p>
+ <p>He did not look at me while I spoke, but kept his glance fixed upon my
+ <a
+ href="javascript:void(0);" onclick="return overlib('Earlier he thought Bartleby resembled a bust of Cicero, a Roman philosopher. Why does he note this here? A reader may be reminded of Poe, especially his poem &quot;The Raven&quot; where the raven perches on a bust of Pallas, the Greek goddess of wisdom, saying repeatedly &quot;Nevermore.&quot;', STICKY)"
+ onmouseout="nd();" class="popup">bust of Cicero</a>, which as I then sat, was directly behind me, some
+ six inches above my head. "What is your answer, Bartleby?" said I, after
+ waiting a considerable time for a reply, during which his countenance remained
+ immovable, only there was the <a href="javascript:void(0);" onclick="return overlib('Bartleby\'s first expression of emotion. What do you think has caused this?&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">faintest
+ conceivable tremor</a> of the white attenuated mouth.</p>
+ <p>"At present I prefer to give no answer," he said, and retired into his
+ hermitage.</p>
+ <p>It was rather weak in me I confess, but his manner on this occasion nettled
+ me. Not only did there seem to lurk in it a certain disdain, but <a href="javascript:void(0);"
+ onclick="return overlib('Again, he demands that Bartleby assume the proper &quot;employee demeanor&quot; and be grateful for his good treatment. In other words, he should be properly subservient and recognize what a good person his employer is. This is not disinterested moral behavior!', STICKY)"
+ onmouseout="nd();" class="popup">his
+ perverseness seemed ungrateful</a>, considering the undeniable
+ good usage and indulgence he had received from me.</p>
+ <p>Again I sat ruminating what I should do.<a href="javascript:void(0);"
+ onclick="return overlib('Very upset (but note that he uses a word with the Latin word for &quot;death&quot; in it)', STICKY)"
+ onmouseout="nd();" class="popup">Mortified</a> as I was at his behavior,
+ and resolved as I had been to dismiss him when I entered my office, nevertheless
+ I strangely felt something superstitious knocking at my heart, and forbidding
+ me to carry out my purpose, and denouncing me for a villain if I dared
+ to breathe one bitter word against this forlornest of mankind. At last,
+ familiarly drawing my chair behind his screen, I sat down and said: "Bartleby,
+ never mind then about revealing your history; but let me entreat you,
+ <a
+ href="javascript:void(0);" onclick="return overlib('Is he really his friend? Or is he just desperate?&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">as a friend</a>, to comply as far as may be with the usages of this office.
+ Say now you will help to examine papers tomorrow or next day: in short,
+ say now that in a day or two you will begin to be a little reasonable:--say
+ so, Bartleby."</p>
+ <p>"At present I would prefer not to be a little <a href="javascript:void(0);"
+ onclick="return overlib('Note the repetition and linking of these words.', STICKY)"
+ onmouseout="nd();" class="popup">reasonable
+ was his idly cadaverous reply.</a>,"</p>
+ <p>Just then the folding-doors opened, and Nippers approached. He seemed
+ suffering from an unusually bad night's rest, induced by severer indigestion
+ than common. He overheard those final words of Bartleby.</p>
+ <p><i>"<a href="javascript:void(0);" onclick="return overlib('Here\'s an outbreak of &quot;prefer,&quot; consciously from Nippers and less consciously from the lawyer. The contagion is spreading, and the concept of &quot;preferences&quot; mattering has sunk in.', STICKY)" onmouseout="nd();" class="popup">Prefer</a></i> not,
+ eh?" gritted Nippers--"I'd<i> prefer</i> him, if I were you, sir," addressing
+ me--"I'd <i>prefer</i> him; I'd give him preferences, the stubborn mule!
+ What is it, sir, pray, that he <i>prefers</i> not to do now?"</p>
+ <p>Bartleby moved not a limb.</p>
+ <p><a href="javascript:void(0);" onclick="return overlib('This is the first time that the lawyer uses Bartleby&quot;s phrase in the story.', STICKY)"
+ onmouseout="nd();" class="popup">"Mr.
+ Nippers," said I, "I'd prefer that you would withdraw for the present."</a>
+ </p>
+ <p>Somehow, of late I had got into the way of involuntary using this word
+ "prefer" upon all sorts of not exactly suitable occasions. And I trembled
+ to think that my contact with the scrivener had already and seriously affected
+ me in a mental way. And what further and deeper <a href="javascript:void(0);"
+ onclick="return overlib('e seems worried that he may be losing his sanity. Is he? Just because he assumes that it is all right to &quot;prefer not&quot; to do something?', STICKY)"
+ onmouseout="nd();" class="popup">aberration</a> might it not yet produce?
+ This apprehension had not been without <a href="javascript:void(0);" onclick="return overlib('effectiveness. Why is this sentence so complicated? Is he trying to avoid saying exactly what he means?', STICKY)"
+ onmouseout="nd();" class="popup">efficacy</a> in determining me to summary
+ means.</p>
+ <p>As Nippers, looking very sour and sulky, was departing, Turkey blandly
+ and deferentially approached.</p>
+ <p>"With submission, sir," said he, "yesterday I was thinking about Bartleby
+ here, and I think that if he would but prefer to take a quart of good ale
+ every day, it would do much towards mending him, and enabling him to assist
+ in examining his papers."</p>
+ <p>"So you have got the word too," said I, slightly excited.</p>
+ <p>"With submission, what word, sir," asked Turkey, respectfully crowding
+ himself into the contracted space behind the screen, and by so doing, making
+ me <a href="javascript:void(0);" onclick="return overlib('He has crossed Bartleby\'s boundaries again.', STICKY)"
+ onmouseout="nd();" class="popup">jostle
+ the scrivener.</a> "What word, sir?"</p>
+ <p>"I would prefer to be left alone here," said Bartleby, as if offended
+ at being <a href="javascript:void(0);" onclick="return overlib('In a sense, Bartleby is being ridiculed. Turkey doesn\'t seem to have any idea that he has adopted the word--or the concept of preferring.', STICKY)"
+ onmouseout="nd();" class="popup">mobbed
+ in his privacy.</a>
+ </p>
+ <p>"<i>That's</i> the word, Turkey," said I--<i>"that's</i> it."</p>
+ <p>"Oh,<i> prefer</i> oh yes--queer word. I never use it myself. But, sir
+ as I was saying, if he would but prefer--"</p>
+ <p>"Turkey," interrupted I, "you will please withdraw."</p>
+ <p>"Oh, certainly, sir, <a href="javascript:void(0);" onclick="return overlib('You should be at least smiling at this point! Yet this is quite serious; even the obsequious Turkey has been infected.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">if
+ you prefer that I should</a>."</p>
+ <p>As he opened the folding-door to retire, Nippers at his desk caught a
+ glimpse of me, and asked whether I would prefer to have a certain paper
+ copied on blue paper or white. He did not in the least roguishly accent
+ the word prefer. It was plain that it involuntarily rolled from his tongue.
+ I thought to myself, surely I must get rid of a <a href="javascript:void(0);"
+ onclick="return overlib(' By this definition, is Bartleby &quot;demented&quot;? Just because others start picking up his phrase? (Then we are all in trouble!) But this is a man who loves order and hierarchy; all of a sudden, his employees are getting quite &quot;uppity&quot; and hard to control.', STICKY)"
+ onmouseout="nd();" class="popup">demented</a> man, who already has in some
+ degree turned the tongues, if not the heads of myself and clerks. But I
+ thought it <a href="javascript:void(0);" onclick="return overlib(' Why wouldn\'t it be &quot;prudent&quot;? Is he not admitting his need to delay?', STICKY)"
+ onmouseout="nd();" class="popup">prudent</a> not to break the dismission
+ at once.</p>
+ <p>The next day I noticed that <a href="javascript:void(0);" onclick="return overlib('Obviously the intrusive encounter of the previous day has turned Bartleby\'s polite defiance into a fatal direction. Do you think he would have continued to work as before had the lawyer not confronted him?', STICKY)"
+ onmouseout="nd();" class="popup">Bartleby
+ did nothing </a>but stand at his window in his dead-wall revery.
+ Upon asking him why he did not write, he said that he had decided upon
+ doing no more writing.</p>
+ <p>"Why, how now? what next?" exclaimed I, "do no more writing?"</p>
+ <p>"No more."</p>
+ <p>"And what is the reason?"</p>
+ <p>"<a href="javascript:void(0);" onclick="return overlib('What should he be seeing? That Bartleby is staring at the dead wall? Or what that might mean?&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">Do
+ you not see the reason</a> for yourself," he indifferently replied.</p>
+ <p>I looked steadfastly at him, and perceived that his eyes looked dull and
+ glazed. Instantly it occurred to me, that his unexampled diligence in copying
+ by his dim window for the first few weeks of his stay with me might have
+ temporarily <a href="javascript:void(0);" onclick="return overlib('He immediately assumes that the problem is a physical one. Evidently his understanding of &quot;seeing&quot; is quite different from Bartleby\'s. Note that Bartleby is now the one talking about &quot;reason.&quot; Why does he say it &quot;indifferently&quot;? Does he know the answer?', STICKY)"
+ onmouseout="nd();" class="popup">impaired
+ his vision</a>.</p>
+ <p>I was touched. I said something in condolence with him. I hinted that
+ of course he did wisely in abstaining from writing for a while; and urged
+ him to embrace that opportunity of taking wholesome exercise in the open
+ air. This, however, <a href="javascript:void(0);" onclick="return overlib('He seems to prefer not to leave the office. Surely the lawyer realizes that suggesting exercise is futile; again, he wishes to speak to the body, not the soul.', STICKY)"
+ onmouseout="nd();" class="popup">he
+ did not do</a>. A few days after this, my other clerks being
+ absent, and being in a great hurry to dispatch certain letters by the mail,
+ I thought that, having nothing else earthly to do, Bartleby would surely
+ be less inflexible than usual, and carry these letters <a href="javascript:void(0);"
+ onclick="return overlib('again, he wants to send him here. He seems desperate to get Bartleby out of the office, but Bartleby refuses to go anywhere.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">to
+ the post-office</a>. But he blankly declined. So, much to my
+ inconvenience, I went myself.</p>
+ <p>Still <a href="javascript:void(0);" onclick="return overlib('His reluctance to act is even more pronounced; he wants to believe everything will be all right if he gives it some time. Maybe his eyes will improve!', STICKY)"
+ onmouseout="nd();" class="popup">added
+ days went by.</a> Whether Bartleby's eyes improved or not, I
+ could not say. To all appearance, I thought they did. But when I asked
+ him if they did, he vouchsafed no answer. At all events, he would do no
+ copying. At last, in reply to my urgings, he informed me that he had permanently
+ given up copying.</p>
+ <p>"What!" exclaimed I; "suppose your eyes should get entirely well- better
+ than ever before--would you not copy then?"</p>
+ <p>"I have given up copying," he answered, and <a href="javascript:void(0);"
+ onclick="return overlib('No direct confrontation here! This action seems to reflect the willingness of the lawyer to &quot;let things slide&quot; also.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">slid
+ aside.</a>
+ </p>
+ <p>He remained as ever, <a href="javascript:void(0);" onclick="return overlib('His physical immobility is emphasized, and it will remain his major characteristic. Have you seen hints of immobility leading up to this point? Does the lawyer share that tendency?', STICKY)"
+ onmouseout="nd();" class="popup">a
+ fixture</a> in my chamber. Nay--if that were possible--he became
+ still more of a fixture than before. What was to be done? He would do nothing
+ in the office: why should he stay there? In plain fact, he had now become
+ a millstone to me, not only useless as a necklace, but afflictive to bear.
+ Yet I was sorry for him. I speak less than truth when I say that, on his
+ own account, he occasioned me uneasiness. If he would but have named a
+ single relative or friend, I would instantly have written, and urged their
+ taking the poor fellow away to some convenient retreat. But he seemed alone,
+ absolutely alone in the universe. <a href="javascript:void(0);" onclick="return overlib('Again the image of ruin and utter loneliness. Yet Bartleby is in a busy office, separated only by a green &quot;wall&quot; of a screen. The narrator seems to be overdramatizing; why might that be?&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">A
+ bit of wreck&lt;</a>/font&gt; in the mid Atlantic. At length,
+ necessities connected with my business tyrannized over all other considerations.
+ Decently as I could, I told Bartleby that in six days' time he must unconditionally
+ leave the office. I warned him to take measures, in the interval, for procuring
+ some other abode. I offered to assist him in this endeavor, if he himself
+ would but take the first step towards a removal. "And when you finally
+ quit me, Bartleby," added I, "I shall see that you go not away entirely
+ unprovided. Six days from this hour, remember."</p>
+ <p>At the expiration of that period, I peeped behind the screen, and <a href="javascript:void(0);"
+ onclick="return overlib('Of course he was! What would make him expect anything else?', STICKY)"
+ onmouseout="nd();" class="popup">lo!
+ Bartleby was there.</a>
+ </p>
+ <p>I <a href="javascript:void(0);" onclick="return overlib('and his courage! This is not easy for him.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">buttoned
+ up my coat</a>, balanced myself; advanced slowly towards him,
+ touched his shoulder, and said, "The time has come; you must quit this
+ place; I am sorry for you; here is money; but you must go."</p>
+ <p>"I would prefer not," he replied, with his back still towards me.</p>
+ <p>"You<i> must</i>."</p>
+ <p>He remained silent.</p>
+ <p>Now I had an unbounded confidence in this man's common honesty. He had
+ frequently restored to me six pences and shillings carelessly dropped upon
+ the floor, for I am apt to be very reckless in such <a href="javascript:void(0);"
+ onclick="return overlib('Though money means little to him, so little that he throws it around, it must seem quite different for his impoverished clerks. He seems rather insensitive in this case.', STICKY)"
+ onmouseout="nd();" class="popup">shirt-button
+ affairs</a>. The proceeding then which followed will not be
+ deemed extraordinary. "<a href="javascript:void(0);" onclick="return overlib('This sounds like a speech he has practiced for some time. In fact, he seems rather proud that he has wrapped up the situation, and Bartleby, paid him off and kept his conscience clean.', STICKY)"
+ onmouseout="nd();" class="popup">Bartleby,"
+ said I, "I owe you twelve dollars on account; here are thirty-two; the
+ odd twenty are yours.--Will you take it?</a> and I handed the
+ bills towards him.</p>
+ <p>But he made no motion.</p>
+ <p>"I will leave them here then," putting them under a weight on the table.
+ Then taking my hat and cane and going to the door I tranquilly turned and
+ added--"After you have removed your things from these offices, Bartleby,
+ you will of course lock the door--since every one is now gone for the day
+ but you--and if you please, slip your key underneath the mat, so that I
+ may have it in the morning. I shall not see you again; so good-bye to you.
+ If hereafter in your new place of abode I can be of any service to you,
+ do not fail to advise me by letter. Good-bye, Bartleby, and fare you well."</p>
+ <p>But he answered not a word; like <a href="javascript:void(0);" onclick="return overlib('Again, the image of ruin, immobility, and solitude. This is further emphasized by the rest of the sentence.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">the
+ last column of some ruined temple</a>, he remained standing
+ mute and solitary in the middle of the otherwise deserted room.</p>
+ <p>As I walked home in a pensive mood, my <a href="javascript:void(0);" onclick="return overlib('These two emotions have been very prominent in his relation with Bartleby. He is extremely proud of what he has done. &quot;Masterly&quot; seems very significant, as he feels he has established his rightful authority over Bartleby and mollified his conscience with the money.', STICKY)"
+ onmouseout="nd();" class="popup">vanity
+ got the better of my pity</a>. I could not but highly plume
+ myself on my masterly management in getting rid of Bartleby. Masterly I
+ call it, and such it must appear to any dispassionate thinker. The beauty
+ of my procedure seemed to consist in its perfect quietness. There was
+ <a
+ href="javascript:void(0);" onclick="return overlib('This detailed list of what he did NOT do suggests that he had considered each of these actions thoroughly, but each would have been emotional and &quot;disorderly.&quot;', STICKY)"
+ onmouseout="nd();" class="popup">no vulgar bullying</a>, no bravado of any sort, no choleric hectoring
+ and striding to and fro across the apartment, jerking out vehement commands
+ for Bartleby to bundle himself off with his beggarly traps. Nothing of
+ the kind. Without loudly bidding Bartleby depart--as <a href="javascript:void(0);"
+ onclick="return overlib('Wow, he IS proud of himself. Such pride &quot;goeth before a fall.&quot;', STICKY)"
+ onmouseout="nd();" class="popup">an
+ inferior genius</a> might have done--I assumed the ground that
+ depart he must; and upon the assumption built all I had to say. The more
+ I thought over my procedure, the more I was charmed with it. Nevertheless,
+ next morning, upon awakening, I had my doubts,--I had somehow slept off
+ the fumes of vanity. One of the coolest and wisest hours a man has, is
+ just after he awakes in the morning. My procedure seemed as sagacious as
+ ever,--but only in theory. How it would prove in practice--there was the
+ rub. It was truly a beautiful thought to have assumed Bartleby's departure;
+ but, after all, that assumption was simply my own, and none of Bartleby's.
+ The great point was, not whether I had assumed that he would quit me, but
+ whether he would prefer so to do. He was more a <a href="javascript:void(0);"
+ onclick="return overlib('Bartleby prefers; the lawyer assumes! Clearly the question here is which has the most power, and deep down, the lawyer knows that Bartleby is the stronger.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">man
+ of preferences than assumptions</a>.</p>
+ <p>After breakfast, I walked down town, arguing the probabilities pro and
+ con. One moment I thought it would prove a miserable failure, and Bartleby
+ would be found all alive at my office as usual; the next moment it seemed
+ certain that I should see his chair empty. And so I kept veering about.
+ At the corner of Broadway and Canal- street, I saw quite an excited group
+ of people standing in earnest conversation.</p>
+ <p>"I'll take odds he doesn't," said a voice as I passed.</p>
+ <p>"Doesn't go?--done!" said I, "put up your money."</p>
+ <p>I was instinctively putting my hand in my pocket to produce my own, when
+ I remembered that this was an election day. The words I had overheard bore
+ no reference to Bartleby, but to the success or non-success of some candidate
+ for the mayoralty. In my intent frame of mind, I had, as it were, <a href="javascript:void(0);"
+ onclick="return overlib('His obsession with Bartleby has led him to assume it is shared by everyone.', STICKY)"
+ onmouseout="nd();" class="popup">imagined
+ that all Broadway shared in my excitement</a>, and were debating
+ the same question with me. I passed on, very thankful that the uproar of
+ the street screened my momentary absent-mindedness.</p>
+ <p>As I had intended, I was earlier than usual at my office door. I stood
+ listening for a moment. All was still. He must be gone. I tried the knob.
+ The door was locked. Yes, my procedure had worked to a charm; he indeed
+ must be vanished. Yet a certain melancholy mixed with this: I was <a href="javascript:void(0);"
+ onclick="return overlib('Again, he is experiencing conflicting emotions. He wants Bartleby to leave but he has also bonded with him without meaning to.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">almost
+ sorry for my brilliant success</a>. I was fumbling under the
+ door mat for the key, which Bartleby was to have left there for me, when
+ accidentally my knee knocked against a panel, producing a summoning sound,
+ and in response a voice came to me from within--"Not yet; I am occupied."</p>
+ <p>It was Bartleby.</p>
+ <p>I was thunderstruck. For an instant I stood <a href="javascript:void(0);"
+ onclick="return overlib('This happened at Berkeley plantation to the young statesman, Benjamin Harrison. He was holding a child and another was hanging on to his leg as he lowered a window; all were killed by the lightning. Perhaps Melville knew this story.', STICKY)"
+ onmouseout="nd();" class="popup">like
+ the man who, pipe in mouth, was killed</a> one cloudless afternoon
+ long ago in Virginia, by summer lightning; at his own warm open window
+ he was killed, and remained leaning out there upon the dreamy afternoon,
+ till some one touched him, when he fell. "Not gone!" I murmured at last.
+ But again obeying that <a href="javascript:void(0);" onclick="return overlib('Here he is acknowledging Bartleby\'s strange power over him. He can no longer avoid the issue and talk his way out of it.', STICKY)"
+ onmouseout="nd();" class="popup">wondrous
+ ascendancy</a> which the inscrutable scrivener had over me, and
+ from which ascendancy, for all my chafing, I could not completely escape,
+ I slowly went down stairs and out into the street, and while walking round
+ the block, considered what I should next do in this unheard-of-perplexity.
+ Turn the man out by an actual thrusting I could not; to drive him away
+ by calling him hard names would not do; calling in the police was an unpleasant
+ idea; and yet, <a href="javascript:void(0);" onclick="return overlib('Here it becomes quite clear that this has been a power struggle, and that Bartleby in some way is winning. Yet he is &quot;cadaverous,&quot; deathlike. Does he represent a death-in-life? Is this what terrifies the lawyer?', STICKY)"
+ onmouseout="nd();" class="popup">permit
+ him</a> to enjoy his cadaverous triumph over me,--this too I
+ could not think of. What was to be done? or, if nothing could be done,
+ was there any thing further that I could <a href="javascript:void(0);" onclick="return overlib('The idea of making assumptions about Bartleby has become very important. He cannot assume that he understands Bartleby\'s behavior, and can thus change it, because that behavior is not usual and &quot;rational.&quot;', STICKY)"
+ onmouseout="nd();" class="popup">assume</a> in the matter? Yes, as before
+ I had prospectively assumed that Bartleby would depart, so now I might
+ retrospectively assume that departed he was. In the legitimate carrying
+ out of this assumption, I might enter my office in a great hurry, and pretending
+ not to see Bartleby at all, walk straight against him as if he were air.
+ Such a proceeding would in a singular degree have the appearance of a
+ <a
+ href="javascript:void(0);" onclick="return overlib('This is the second time this word has been used in the paragraph. Some readers see sexual undertones in this struggle between the two. Or it could be military imagery again (the thrust of the sword?)&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">home-thrust</a>. It was hardly possible that Bartleby could withstand
+ such an application of the doctrine of assumptions. But upon second thoughts
+ the success of the plan seemed rather dubious. I resolved to argue the
+ matter over with him again.</p>
+ <p>Bartleby," said I, entering the office, with a quietly severe expression.
+ "I am seriously displeased. I am pained, Bartleby. I had thought better
+ of you. I had imagined you of such a <a href="javascript:void(0);" onclick="return overlib('Bartleby is far beyond responding to insults, even gentle ones like this. He cannot be humiliated; his determined self-respect is too strong for that.', STICKY)"
+ onmouseout="nd();" class="popup">gentlemanly
+ organization</a>, that in any delicate dilemma a slight hint
+ would suffice--in short, an assumption. But it appears I am deceived. Why,"
+ I added, <a href="javascript:void(0);" onclick="return overlib('His shock at seeing the money lying there shows that he just now realizes that he cannot buy Bartleby off.', STICKY)"
+ onmouseout="nd();" class="popup">unaffectedly
+ starting</a>, "you have not even touched the money yet," pointing
+ to it, just where I had left it the evening previous.</p>
+ <p>He answered nothing.</p>
+ <p>"Will you, or will you not, quit me?" I now demanded in a <a href="javascript:void(0);"
+ onclick="return overlib('His strong feelings are now exposed, and he invades Bartleby\'s territory again.', STICKY)"
+ onmouseout="nd();" class="popup">sudden
+ passion</a>, advancing close to him.</p>
+ <p>"I would prefer <i>not</i> to quit you," he replied, <a href="javascript:void(0);"
+ onclick="return overlib('Notice the contrasting emotion here. In fact, the word &quot;gentle&quot; has been applied to him several times already. He is no raving maniac!', STICKY)"
+ onmouseout="nd();" class="popup">gently
+ emphasizing</a> the<i> not</i>.</p>
+ <p>"What <a href="javascript:void(0);" onclick="return overlib('In a society based on the power of private property, he is correct. But does it not imply that there may be other, even higher rights?', STICKY)"
+ onmouseout="nd();" class="popup">earthly
+ right</a> have you to stay here? do you pay any rent? Do you
+ pay my taxes? Or is this property yours?"</p>
+ <p>He answered nothing.</p>
+ <p>"Are you ready to go on and write now? Are your eyes recovered? Could
+ you copy a small paper for me this morning? or help examine a few lines?
+ or step round to the post-office? In a word, will you do any thing at all,
+ to give a coloring to your refusal to depart the premises?"</p>
+ <p>He <a href="javascript:void(0);" onclick="return overlib('Bartleby has no answer to these questions because he does not recognize their validity. Note that hermitage is used again.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">silently
+ retired into his hermitage</a>.</p>
+ <p>I was now in such a state of nervous resentment that I thought it but
+ <a
+ href="javascript:void(0);" onclick="return overlib('Why is this prudent? Isn\'t this a rather mild word considering the force of his anger? Evidently he does not trust himself at this point to be &quot;reasonable.&quot;', STICKY)"
+ onmouseout="nd();" class="popup">prudent</a>to check myself at present from further demonstrations. Bartleby
+ and I were alone. <a href="javascript:void(0);" onclick="return overlib('The printer Samuel Adams was ax murdered by John C. Colt in 1841 when Adams tried to collect a debt. Colt apparently crated Adams\'s body to ship to New Orleans. Shortly before he was scheduled to hang, he married his mistress in his jail cell and was found stabbed to death soon afterward. Colt would seem to have led a far more interesting life than the lawyer!', STICKY)"
+ onmouseout="nd();" class="popup">I
+ remembered</a> the tragedy of the unfortunate Adams and the still
+ more unfortunate Colt in the solitary office of the latter; and how poor
+ Colt, being dreadfully incensed by Adams, and imprudently permitting himself
+ to get wildly excited, was at unawares hurried into his <a href="javascript:void(0);"
+ onclick="return overlib('He probably fears that he would be tempted to do the same rash act.', STICKY)"
+ onmouseout="nd();" class="popup">fatal
+ act</a>--an act which certainly <a href="javascript:void(0);"
+ onclick="return overlib('This is his assumption; there\'s no particular evidence that it was true for Colt (as it would have been true for the lawyer had he done something similar).', STICKY)"
+ onmouseout="nd();" class="popup">no
+ man could possibly deplore</a> more than the actor himself. Often
+ it had occurred to me in my <a href="javascript:void(0);" onclick="return overlib('Why would he have spent so much time thinking about this case?', STICKY)"
+ onmouseout="nd();" class="popup">ponderings</a> upon the subject, that had
+ that altercation taken place in the public street, or at a private residence,
+ it would not have terminated as it did. It was the circumstance of being
+ alone in a solitary office, up stairs, of a building entirely unhallowed
+ by humanizing domestic associations--an <a href="javascript:void(0);" onclick="return overlib('Undoubtedly he sees parallels here. He seems to be learning how to imagine a situation of someone quite different from himself very vividly.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">uncarpeted
+ office</a>, doubtless of a dusty, haggard sort of appearance;--this
+ it must have been, which greatly helped to enhance the irritable desperation
+ of the hapless Colt.</p>
+ <p>But when this <a href="javascript:void(0);" onclick="return overlib('Perhaps he is speaking of original sin, finding in himself a urge to murder. However, it was Adam\'s son, Cain, who resented and then murdered his brother.', STICKY)"
+ onmouseout="nd();" class="popup">old
+ Adam of resentment</a> rose in me and tempted me concerning Bartleby,
+ I grappled him and threw him. How? Why, simply by recalling the <a href="javascript:void(0);"
+ onclick="return overlib('This Christian injunction conflicts with the principles of private property, ownership, and power he has been operating from previously. He is reminded that he is Bartleby\'s brother, in a sense, not a vengeful god', STICKY)"
+ onmouseout="nd();" class="popup">divine
+ injunction</a>: "A new commandment give I unto you, that ye
+ love one another." Yes, this it was that saved me. Aside from higher considerations,
+ charity often operates as <a href="javascript:void(0);" onclick="return overlib('He misses the point. The &quot;injunction&quot; says one should love one another (as brothers), not with the promise that it will be advantageous and prudent to do so. Is it love for Bartleby that motivates him or fear that he might be &quot;imprudent&quot; enough to murder him?', STICKY)"
+ onmouseout="nd();" class="popup">a
+ vastly wise and prudent</a> principle--a great safeguard to its
+ possessor. Men have committed murder for jealousy's sake, and anger's sake,
+ and hatred's sake, and selfishness' sake, and spiritual pride's sake; but
+ no man that ever I heard of, ever <a href="javascript:void(0);" onclick="return overlib('which he seems to feel he is on the ver', STICKY)"
+ onmouseout="nd();" class="popup">committed
+ a diabolical murder</a> for sweet charity's sake. <a href="javascript:void(0);"
+ onclick="return overlib('That was not what Jesus had in mind! If Bartleby has been &quot;sent&quot; to teach him the lesson of brotherhood, the lawyer hasn\'t yet fully comprehended it, and is still deeply concerned with his own welfare. Is this true charity, to do something for &quot;mere self interest&quot;? Is that the kind of charity you would like to be the beneficiary of?', STICKY)"
+ onmouseout="nd();" class="popup">Mere
+ self-interest</a>, then, if no better motive can be enlisted,
+ should, especially with high-tempered men, prompt all beings to charity
+ and philanthropy. At any rate, upon the occasion in question, I strove
+ to <a href="javascript:void(0);" onclick="return overlib('He may say that Bartleby is a &quot;poor fellow,&quot; but at this point he is primarily interested in calming himself down so that he won\'t murder him.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">drown
+ my exasperated feelings</a> towards the scrivener by benevolently
+ construing his conduct. Poor fellow, poor fellow! thought I, he don't mean
+ any thing; and besides, he has seen hard times, and ought to be indulged.</p>
+ <p>I endeavored also immediately to occupy myself, and at the same time
+ <a
+ href="javascript:void(0);" onclick="return overlib('He is very deeply affected by what has happened, but again he tries to ignore it, and wallow in wishful fantasy.', STICKY)"
+ onmouseout="nd();" class="popup">to comfort my despondency.</a>I tried to fancy that in the course of the
+ morning, at such time as might prove agreeable to him, Bartleby, of his
+ own free accord, would emerge from his hermitage, and take up some decided
+ line of march in the direction of the door. But no. Half-past twelve o'clock
+ came; Turkey began to glow in the face, overturn his inkstand, and become
+ generally obstreperous; Nippers abated down into quietude and courtesy;
+ Ginger Nut munched his noon apple; and Bartleby remained standing at his
+ window in one of his profoundest <a href="javascript:void(0);" onclick="return overlib('These two words are completely linked by this point. Bartleby is facing a real wall; the lawyer is facing the equally immovable wall that Bartleby presents him.', STICKY)"
+ onmouseout="nd();" class="popup">deadwall</a> reveries. <a href="javascript:void(0);"
+ onclick="return overlib('This is a strange phrase, one which has financial tones. Does he mean that he might be credited with his good behavior (for not killing Bartleby\ either on earth, by his employees and others recognizing his great restraint?', STICKY)"
+ onmouseout="nd();" class="popup">Will
+ it be credited?</a> Ought I to acknowledge it? That afternoon
+ I left the office without saying one further word to him.</p>
+ <p>Some days now passed, during which, at leisure intervals I looked a little
+ into <a href="javascript:void(0);" onclick="return overlib('Neither Jonathan Edwards, a Puritan minister, or Joseph Priestley, an English scientist, believed that man has totally free will. Perhaps the lawyer would like to believe that none of this is his fault, and that it was fated to happen. This way he would have to take no responsibility for what has happened and will happen.', STICKY)"
+ onmouseout="nd();" class="popup">Edwards
+ on the Will,</a>" and "Priestly on Necessity." Under the circumstances,
+ those books induced a salutary feeling. Gradually I <a href="javascript:void(0);"
+ onclick="return overlib('now look who\'s sliding! He doesn\'t exactly choose to believe this, but it certainly does work for him to appease his conscience.', STICKY)"
+ onmouseout="nd();" class="popup">slid
+ into the persuasion</a> that these troubles of mine touching
+ the scrivener, had been all <a href="javascript:void(0);" onclick="return overlib('By whom? God? fate? natural law? That does get him off the hook though.', STICKY)"
+ onmouseout="nd();" class="popup">predestinated
+ from eternity</a>, and Bartleby was <a href="javascript:void(0);"
+ onclick="return overlib('sent to live with, as soldiers may be billeted with citizens. Again, he uses military imagery. As you think about why, consider that the military is highly hierarchical, with superiors giving orders to inferiors which are supposed to be accepted without question.', STICKY)"
+ onmouseout="nd();" class="popup">billeted</a> upon me for some mysterious
+ purpose of an all-wise Providence, which it was not for a mere mortal like
+ me to fathom. Yes, Bartleby, stay there behind your screen, <a href="javascript:void(0);"
+ onclick="return overlib('However, he does not say this.', STICKY)" onmouseout="nd();"
+ class="popup">thought
+ I</a>; I shall persecute you no more; you are harmless and noiseless
+ as any of these old chairs; in short, I never feel so private as when I
+ know you are here. At least I see it, I feel it; I penetrate to the predestinated
+ purpose of my life. I am content. Others may have loftier parts to enact;
+ but <a href="javascript:void(0);" onclick="return overlib('He\'s being very philosophical, resigning himself to the will of fate or Providence. Of course, he may also be being ironic, even laughing at himself.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">my
+ mission</a> in this world, Bartleby, is to furnish you with office-room
+ for such period as you may see fit to remain.</p>
+ <p>I believe that this wise and blessed frame of mind would have continued
+ with me, had it not been for the unsolicited and uncharitable remarks obtruded
+ upon me by <a href="javascript:void(0);" onclick="return overlib('The lawyer is very aware of the opinions of others (recall his feelings about how his clerks dressed). Since his benevolence is primarily based on self-interest, it seems logical that it will also be challenged by other self-interests.', STICKY)"
+ onmouseout="nd();" class="popup">my
+ professional friends</a> who visited the rooms. But thus it often
+ is, that the constant friction of illiberal minds wears out at last the
+ best resolves of the more <a href="javascript:void(0);" onclick="return overlib('Is he generous? Or avoiding the issue--again?', STICKY)"
+ onmouseout="nd();" class="popup">generous</a>. Though to be sure, when
+ I reflected upon it, it was not strange that people entering my office
+ should be struck by the peculiar aspect of the unaccountable Bartleby,
+ and so be tempted to throw out some sinister observations concerning him.
+ Sometimes an attorney having business with me, and calling at my office,
+ and finding no one but the scrivener there, would undertake to obtain some
+ sort of precise information from him touching my whereabouts; but without
+ heeding his <a href="javascript:void(0);" onclick="return overlib('&quot;Idle&quot; is very much like &quot;trivial,&quot; the sort of business Bartleby will have nothing to do with.', STICKY)"
+ onmouseout="nd();" class="popup">idle
+ talk,</a> Bartleby would remain standing immovable in the middle
+ of the room. So after contemplating him in that position for a time, the
+ attorney would depart, no wiser than he came.</p>
+ <p>Also, when a Reference was going on, and the room full of lawyers and
+ witnesses and business was driving fast; some deeply occupied legal gentleman
+ present, seeing Bartleby wholly unemployed, would request him to run round
+ to his (the legal gentleman's) office and fetch some papers for him. Thereupon,
+ Bartleby would tranquilly decline, and remain idle as before. Then the
+ lawyer would give a great stare, and turn to me. And what could I say?
+ At last I was made aware that all through the circle of my professional
+ acquaintance, a whisper of wonder was running round, having reference to
+ the strange creature I kept at my office. This <a href="javascript:void(0);"
+ onclick="return overlib('as it would any prudent man anxious to keep up good appearances.', STICKY)"
+ onmouseout="nd();" class="popup">worried
+ me very much</a>. And as the idea came upon me of his possibly
+ turning out a long-lived man, and keep occupying my chambers, and <a href="javascript:void(0);"
+ onclick="return overlib('Is this the crux of the problem', STICKY)" onmouseout="nd();"
+ class="popup">denying
+ my authority</a>; and perplexing my visitors; and scandalizing
+ my professional reputation; and casting a general gloom over the premises;
+ keeping soul and body together to the last upon his savings (for doubtless
+ he spent but half a dime a day), and in the end perhaps <a href="javascript:void(0);"
+ onclick="return overlib('Why would he fancy that Bartleby would outlive him and &quot;claim possession&quot;? Notice that he is worried that Bartleby would continue to live. Is he thus wishing his death as a way of solving his problem?', STICKY)"
+ onmouseout="nd();" class="popup">outlive
+ me</a>, and claim possession of my office by right of his perpetual
+ occupancy: as all these dark anticipations crowded upon me more and more,
+ and my friends continually intruded their relentless remarks upon the apparition
+ in my room; a great change was wrought in me. I resolved to gather all
+ my faculties together, and for ever rid me of this <a href="javascript:void(0);"
+ onclick="return overlib('an evil spirit or person who oppresses like a nightmare. Clearly he\'s not feeling Christian brotherhood at this point, for he has demonized him.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">intolerable
+ incubus</a>.</p>
+ <p>Ere revolving any complicated project, however, adapted to this end, I
+ first simply suggested to Bartleby the <a href="javascript:void(0);" onclick="return overlib('He is definitely a man who believes in propriety above all; Bartleby is not.', STICKY)"
+ onmouseout="nd();" class="popup">propriety</a> of his permanent departure.
+ In a calm and serious tone, I commended the idea to his careful and mature
+ consideration. But having taken three days to meditate upon it, he apprised
+ me that his original determination remained the same; in short, that he
+ still preferred to <a href="javascript:void(0);" onclick="return overlib('Note the Biblical language here. Is that significant?', STICKY)"
+ onmouseout="nd();" class="popup">abide
+ with me</a>.</p>
+ <p>What shall I do? I now said to myself, <a href="javascript:void(0);" onclick="return overlib('This seems to be his way of summoning courage to confront Bartleby! In a way, he is hiding behind his coat (a kind of wall?)', STICKY)"
+ onmouseout="nd();" class="popup">buttoning
+ up my coat</a> to the last button. What shall I do? what ought
+ I to do? what does conscience say I should do with this man, or rather
+ ghost. Rid myself of him, I must; go, he shall. But how? You will not thrust
+ him, the poor, pale, passive mortal,--you will not thrust such a helpless
+ creature out of your door? you will not <a href="javascript:void(0);" onclick="return overlib('His primary concern here seems to be dishonor to himself, not true conscience about the moral way to act. Again, he is most concerned about how others will judge him.', STICKY)"
+ onmouseout="nd();" class="popup">dishonor
+ yourself</a> by such cruelty? No, I will not, I cannot do that.
+ Rather would I let him live and die here, and then <a href="javascript:void(0);"
+ onclick="return overlib('Melville probably knew Poe\'s story &quot;The Cask of Amontillado&quot; in which the main character does exactly this--but before his &quot;enemy&quot; is dead. This image of &quot;living&quot; or &quot;premature death&quot; in Poe\'s story is rather appropriate for this one also. The lawyer still seems to be contemplating murder, in a way.', STICKY)"
+ onmouseout="nd();" class="popup">mason
+ up his remains</a> in the wall. What then will you do? For all
+ your coaxing, he will not budge. <a href="javascript:void(0);" onclick="return overlib('At least he acknowledges that\'s what he\'s trying to do! Yet he also reluctantly admires Bartleby for his resisting temptation and sticking to his &quot;preferences.&quot;', STICKY)"
+ onmouseout="nd();" class="popup">Bribes</a> he leaves under your own paperweight
+ on your table; in short, it is quite plain that he prefers<a href="javascript:void(0);"
+ onclick="return overlib('Bartleby isn\'t exactly &quot;clinging,&quot; so why does the lawyer say this? This may represent more the psychological burden that he feels!&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">
+ to cling to you</a>.</p>
+ <p>Then something severe, something unusual must be done. What! surely you
+ will not have him collared by a constable, and commit his innocent pallor
+ to the common jail? And upon what ground could you procure such a thing
+ to be done?--a vagrant, is he? <a href="javascript:void(0);" onclick="return overlib('His inner struggle goes on, as he considers possible legal, but inhumane, ways of solving the problem. It\'s true: he\'s not a vagrant! His answer is a legal one, based on the idea of trespassing on private property, which is the only legal answer.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">What!</a> he a vagrant, a wanderer, who
+ refuses to budge? It is because he will not be a vagrant, then, that you
+ seek to count him as a vagrant. That is too absurd. No visible means of
+ support: there I have him. Wrong again: for indubitably he does support
+ himself, and that is the only unanswerable proof that any man can show
+ of his possessing the means so to do. No more then. Since he will not quit
+ me, I must quit him. I will change my offices; I will move elsewhere; and
+ give him fair notice, that if I find him on my new premises I will then
+ proceed against him as a common trespasser.</p>
+ <p>Acting accordingly, next day I thus addressed him: "I find these chambers
+ too far from the City Hall; the air is unwholesome. In a word, I propose
+ to remove my offices next week, and shall no longer require your services.
+ I tell you this now, in order that you may seek another place."</p>
+ <p>He made no reply, and nothing more was said.</p>
+ <p>On the appointed day I engaged carts and men, proceeded to my chambers,
+ and having but little furniture, every thing was removed in a few hours.
+ Throughout, the scrivener remained standing behind <a href="javascript:void(0);"
+ onclick="return overlib('Again we are reminded of this wall in the office. Why does he leave it for the end?', STICKY)"
+ onmouseout="nd();" class="popup">the
+ screen,</a> which I directed to be removed the last thing. It
+ was withdrawn; and being folded up like a huge folio, left him the <a href="javascript:void(0);"
+ onclick="return overlib('Only at this point is the wall taken down, both in the room and to some degree, in the lawyer. Again, note the conjunction of immobility and aloneness.', STICKY)"
+ onmouseout="nd();" class="popup">motionless
+ occupant of a naked room.</a> I stood in the entry watching him
+ a moment, while something from within me upbraided me.</p>
+ <p>I re-entered, with my <a href="javascript:void(0);" onclick="return overlib('A symbolic connection of money and his strong emotion.Why is his heart in his mouth? Is that because his smooth talking has not worked?', STICKY)"
+ onmouseout="nd();" class="popup">hand
+ in my pocket--and--and my heart in my mouth.</a>
+ </p>
+ <p>"Good-bye, Bartleby; I am going--good-bye, and God some way bless you;
+ and take that," slipping something in his hand. But it dropped to the floor,
+ and then,<a href="javascript:void(0);" onclick="return overlib('Why is it &quot;strange to say&quot;? What is this strong bond between them? Here we see his great conflict in feelings toward Bartleby.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">--strange
+ to say</a>--I tore myself from him whom I had so longed to be
+ rid of.</p>
+ <p>Established in my new quarters, for a day or two I kept the door locked,
+ and started at every footfall in the passages. When I returned to my rooms
+ after any little absence, I would pause at the threshold for an instant,
+ and attentively listen, ere applying my key. But these fears were needless.
+ Bartleby never came nigh me.</p>
+ <p>I thought all was going well, when a perturbed looking stranger visited
+ me, inquiring whether I was the person who had recently occupied rooms
+ at No.--Wall-street.</p>
+ <p>Full of forebodings, I replied that I was.</p>
+ <p>"Then, sir," said the <a href="javascript:void(0);" onclick="return overlib('Certainly he is taking the legalistic stance, insisting that legally the lawyer is responsible for his employee. This is the other side of the hierarchical equation; the master has some obligation to care for his servant. Note that the man uses the word &quot;refuses&quot; three times. That is much stronger than anything we have heard thus far about Bartleby\'s adamant stance.', STICKY)"
+ onmouseout="nd();" class="popup">stranger,
+ who proved a lawyer</a>, "you are responsible for the man you
+ left there. He refuses to do any copying; he refuses to do any thing; he
+ says he prefers not to; and he refuses to quit the premises."</p>
+ <p>"I am very sorry, sir," said I, with assumed tranquillity, but an inward
+ tremor, "but, really, <a href="javascript:void(0);" onclick="return overlib('Is this true? Does he feel no responsibility for Bartleby? Even though technically he has none, is that how he feels? His statement here is said to echo Saint Peter\'s denial of Christ in Mark 14:68, 70-71).', STICKY)"
+ onmouseout="nd();" class="popup">the
+ man you allude to is nothing to me</a> --he is no relation or
+ apprentice of mine, that you should hold me responsible for him."</p>
+ <p>"In mercy's name, who is he?"</p>
+ <p>"I certainly cannot inform you. I know nothing about him. Formerly I employed
+ him as a copyist; but he has done nothing for me now for some time past."</p>
+ <p>"<a href="javascript:void(0);" onclick="return overlib('An ironic phrase, considering that Bartleby is nothing if not thoroughly settled.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">I
+ shall settle him</a> then,--good morning, sir."</p>
+ <p>Several days passed, and I heard nothing more; and though I often felt
+ a charitable prompting to call at the place and see poor Bartleby, yet
+ a certain <a href="javascript:void(0);" onclick="return overlib('For whatever reason, we have seen many examples of this &quot;squeamish&quot; unwillingness to confront Bartleby.', STICKY)"
+ onmouseout="nd();" class="popup">squeamishness</a> of I know not what withheld
+ me.</p>
+ <p>All is over with him, by this time, thought I at last, when through another
+ week no further intelligence reached me. But coming to my room the day
+ after, I found several persons waiting at my door in a high state of nervous
+ excitement.</p>
+ <p>"That's the man--here he comes," cried the foremost one, whom recognized
+ as the lawyer who had previously called upon me alone.</p>
+ <p>"You must take him away, sir, at once," cried a portly person among them,
+ advancing upon me, and whom I knew to be the landlord of No.--Wall-street.
+ "These gentlemen, my tenants, cannot stand it any longer; Mr. B--" pointing
+ to the lawyer, "has turned him out of his room, and he now persists in
+ <a
+ href="javascript:void(0);" onclick="return overlib('What else would a &quot;ghost&quot; or &quot;apparition&quot; do?', STICKY)"
+ onmouseout="nd();" class="popup">haunting the building</a>generally, sitting upon the banisters of the
+ stairs by day, and sleeping in the entry by night. Every body is concerned;
+ clients are leaving the offices; <a href="javascript:void(0);" onclick="return overlib('Doesn\'t this seem a bit exaggerated? They seem to be as desperate as the lawyer was.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">some
+ fears are entertained of a mob</a>; something you must do, and
+ that without delay."</p>
+ <p> <a href="javascript:void(0);" onclick="return overlib('They aren\'t the only people exaggerating! It does show how deep the narator\'s feelings are though.', STICKY)"
+ onmouseout="nd();" class="popup">Aghast
+ at this torment</a>, I fell back before it, and would fain have
+ <a
+ href="javascript:void(0);" onclick="return overlib('They will not let him hide this time. Note that he wishes to hide behind the walls of his office to escape the problem.', STICKY)"
+ onmouseout="nd();" class="popup">locked myself</a>in my new quarters. In vain I persisted that Bartleby
+ was nothing to me--no more than to any one else. In vain:--I was the last
+ person known to have any thing to do with him, and they held me to the
+ terrible account. <a href="javascript:void(0);" onclick="return overlib('For such a prudent man, this is a major threat. Exposure, or being thrust out from behind walls (of respectability) frightens him greatly.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">Fearful
+ then of being exposed</a> in the papers (as one person present
+ obscurely threatened) I considered the matter, and at length said, that
+ if the lawyer would give me a confidential interview with the scrivener,
+ in his (the lawyer's) own room, I would that afternoon strive my best to
+ rid them of the nuisance they complained of.</p>
+ <p>Going up stairs to my old haunt, there was Bartleby silently sitting upon
+ the banister at the landing.</p>
+ <p>"What are you doing here, Bartleby?" said I.</p>
+ <p>"Sitting upon the banister," he mildly replied.</p>
+ <p>I motioned him into the lawyer's room, who then left us.</p>
+ <p>"<a href="javascript:void(0);" onclick="return overlib('This interchange is the most extended one they have ever had. Why does Bartleby say he is not particular? Is the problem that the lawyer cannot come up with a job that would suit Bartleby? Is there such a job? Note that he gets increasingly ironic, but Bartleby remains calm and serious, and adamant as ever.', STICKY)"
+ onmouseout="nd();" class="popup">Bartleby,"
+ said I</a>, "are you aware that you are the cause of great tribulation
+ to me, by persisting in occupying the entry after being dismissed from
+ the office?"</p>
+ <p>No answer.</p>
+ <p>"Now one of two things must take place. Either you must do something or
+ something must be done to you. Now what sort of business would you like
+ to engage in? Would you like to re-engage in copying for some one?"</p>
+ <p>"No; I would prefer not to make any change."</p>
+ <p>"Would you like a clerkship in a dry-goods store?"</p>
+ <p>"There is too much confinement about that. No, I would not like a clerkship;
+ but I am not particular."</p>
+ <p>"Too much confinement," I cried, "why you keep yourself confined all the
+ time!"</p>
+ <p>"I would prefer not to take a clerkship," he rejoined, as if to settle
+ that little item at once.</p>
+ <p>"How would a bar-tender's business suit you? There is no trying of the
+ eyesight in that."</p>
+ <p>"I would not like it at all; though, as I said before, I am not particular."</p>
+ <p>His unwonted wordiness inspirited me. I returned to the charge.</p>
+ <p>"Well then, would you like to travel through the country collecting bills
+ for the merchants? That would improve your health."</p>
+ <p>"No, I would prefer to be doing something else."</p>
+ <p>"How then would going as a companion to Europe, to entertain some young
+ gentleman with your conversation,--how would that suit you?"</p>
+ <p>"Not at all. It does not strike me that there is any thing definite about
+ that. I like to be stationary. But I am not particular.</p>
+ <p>"Stationary you shall be then," I cried, now losing all patience, and
+ for the first time in all my exasperating connection with him fairly flying
+ into a passion. "If you do not go away from these premises before night,
+ <a
+ href="javascript:void(0);" onclick="return overlib('Perhaps this may be taken two ways, since he is clearly--and unwillingly--bound to Bartleby.', STICKY)"
+ onmouseout="nd();" class="popup">I shall feel bound</a>--indeed I am bound--to-- to--to quit the premises
+ myself!" I rather absurdly concluded, knowing not with what <a href="javascript:void(0);"
+ onclick="return overlib('Again, he tries to use psychological force, wanting compliance but met but immobility.', STICKY)"
+ onmouseout="nd();" class="popup">possible
+ threat to try to frighten</a> his immobility into compliance.
+ Despairing of all further efforts, I was precipitately leaving him, when
+ a final thought occurred to me--<a href="javascript:void(0);" onclick="return overlib('Why then has he never mentioned it? Is this offer made out of love or out of desperation? Also, note the highly negative construction of the sentence. Perhaps he has been affected by Bartleby\'s negativism so much that it affects his language.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">one
+ which had not been wholly unindulged before.</a>
+ </p>
+ <p>"Bartleby," said I, in the kindest <a href="javascript:void(0);" onclick="return overlib('This indicates that his hospitality is all a ruse, an act. Perhaps Bartleby senses that. He\'s not going to give him an easy way out which will ease his conscience.', STICKY)"
+ onmouseout="nd();" class="popup">tone
+ I could assume</a> under such exciting circumstances, "will you
+ go home with me now--not to my office, but my dwelling--and remain there
+ till we can conclude upon some convenient arrangement for you at our leisure?
+ Come, let us start now, right away."</p>
+ <p>"No: at present I would prefer not to make any change at all."</p>
+ <p>I answered nothing; but effectualy dodging every one by the <a href="javascript:void(0);"
+ onclick="return overlib('He is in motion, but escaping from his problem as hard as he can. Is that so different from Bartleby\'s immobility, which is also a kind of escape?', STICKY)"
+ onmouseout="nd();" class="popup">suddenness
+ and rapidity of my flight,</a> rushed from the building, ran
+ up Wall-street towards Broadway, and jumping into the first omnibus was
+ soon removed from pursuit. As soon as tranquility returned I distinctly
+ perceived that I had now done all that I possibly could, both in respect
+ to the demands of the landlord and his tenants, and with regard to my own
+ desire and sense of duty, to benefit Bartleby, and shield him from rude
+ persecution. I now strove to be entirely care-free and quiescent; and my
+ conscience justified me in the attempt; though indeed it was not so successful
+ as I could have wished. So fearful was I of being again hunted out by the
+ incensed landlord and his exasperated tenants, that, surrendering my business
+ to Nippers, for a few days I drove about the upper part of the town and
+ through the suburbs, in my rockaway; crossed over to Jersey City and Hoboken,
+ and paid fugitive visits to Manhattanville and Astoria. In fact I almost
+ lived in my <a href="javascript:void(0);" onclick="return overlib('a carriage with open sides and top--not perhaps the most comfortable place to live! It is interesting that he meets Bartleby\'s &quot;stationary&quot; stance with pointless motion of his own. Also, note that he needs this because he lives in the suburbs, away from the callous materialism and injustices of the city.', STICKY)"
+ onmouseout="nd();" class="popup">rockaway</a> for the time.</p>
+ <p>When again I entered my office, lo, a note from the landlord lay upon
+ desk. opened it with trembling hands. informed me that writer had sent
+ to police, and Bartleby removed <a href="javascript:void(0);" onclick="return overlib('The Tombs is a name for the Halls of Justice (jail). However, it also carries symbolic power here, considering the death-in-life theme.', STICKY)"
+ onmouseout="nd();" class="popup">the
+ Tombs</a> as a <a href="javascript:void(0);" onclick="return overlib('This is ironic, since the word means &quot;a wanderer,&quot; and Bartleby is anything but that (although he is homeless). Note the previous comments the lawyer made on this subject.', STICKY)"
+ onmouseout="nd();" class="popup">vagrant</a>. Moreover, since I knew more
+ about him than any one else, he wished me to appear at that place, and
+ make a suitable statement of the facts. These tidings had a conflicting
+ effect upon me. At first I was indignant; but at last almost approved.
+ The landlord's energetic, summary disposition, had led him to adopt a procedure
+ which I do not think I would have decided upon myself; and yet as a last
+ resort, under such peculiar circumstances, it seemed the only plan.</p>
+ <p>As I afterwards learned, the poor scrivener, when told that he must be
+ conducted to the Tombs, offered not the slightest obstacle, but in his
+ pale unmoving way, <a href="javascript:void(0);" onclick="return overlib('Surely he preferred not to go! Why does he agree instead of resisting? Is it because it IS called the Tombs, and he knows that there (in death) he will not be disturbed? Also note the repeated use of &quot;pale&quot; throughout the story. Why is it used? One meaning of &quot;pale&quot; is &quot;an area enclosed by a fence or boundary&quot;; a &quot;vagrant&quot; would go &quot;beyond the pale.&quot;', STICKY)"
+ onmouseout="nd();" class="popup">silently
+ acquiesced.</a>
+ </p>
+ <p>Some of the compassionate and curious bystanders joined the party; and
+ headed by one of the constables arm in arm with Bartleby, <a href="javascript:void(0);"
+ onclick="return overlib('Note the contrast between their (funereal?) silence and the city noises.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">the
+ silent procession</a> filed its way through all the noise, and
+ heat, and joy of the roaring thoroughfares at noon.</p>
+ <p>The same day I received the note I went to the Tombs, or to speak more
+ properly, the Halls of Justice. Seeking the right officer, I stated the
+ purpose of my call, and was informed that the individual I described was
+ indeed within. I then assured the functionary that Bartleby was a perfectly
+ honest man, and greatly to be compassionated, however unaccountably eccentric.
+ <a
+ href="javascript:void(0);" onclick="return overlib('He is trying to personalize Bartleby to a &quot;functionary,&quot; whose job, like Bartleby\'s, requires that he not make any personal attachment. Is this likely to do any good? Or does it just relieve his conscience?', STICKY)"
+ onmouseout="nd();" class="popup">I narrated all I knew,</a>and closed by suggesting the idea of letting
+ him remain in as indulgent confinement as possible till something less
+ harsh might be done--though indeed I hardly knew what. At all events, if
+ nothing else could be decided upon, the alms-house must receive him. I
+ then begged to have an interview.</p>
+ <p>Being under no disgraceful charge, and quite serene and harmless in all
+ his ways, they had permitted him freely to wander about the prison, and
+ especially in the inclosed grass-platted yards thereof. And so I found
+ him there, standing all alone in the quietest of the yards, his face
+ <a
+ href="javascript:void(0);" onclick="return overlib('He is outside, yet even in this natural setting he is enclosed and facing a wall. There is grass here though (remember the green screen?)', STICKY)"
+ onmouseout="nd();" class="popup">towards a high wall</a>, while all around, from the narrow slits of the
+ jail windows, I thought <a href="javascript:void(0);" onclick="return overlib('This may be his vivid imagination at work. They may be looking out windows but they are seeing a person, not a dead brick wall.', STICKY)"
+ onmouseout="nd();" class="popup">I
+ saw peering out upon him the eyes of murderers and thieves.</a>
+ </p>
+ <p>"Bartleby!"</p>
+ <p>"<a href="javascript:void(0);" onclick="return overlib('Perhaps he does, even better than the lawyer knows himself.', STICKY)"
+ onmouseout="nd();" class="popup">I
+ know you</a>," he said, without looking round,--"and I want
+ nothing to say to you."</p>
+ <p>"It was not I that brought you here, Bartleby," said I, <a href="javascript:void(0);"
+ onclick="return overlib('Note his strong emotion here; Bartleby\'s opinion of him matters very much to him.', STICKY)"
+ onmouseout="nd();" class="popup">keenly
+ pained</a> at his implied suspicion. "And to you, this should
+ not be so vile a place. Nothing reproachful attaches to you by being here.
+ And see, <a href="javascript:void(0);" onclick="return overlib('Who does he think he\'s fooling?&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">it
+ is not so sad</a> a place as one might think. Look, there is
+ the sky, and here is the grass."</p>
+ <p>"I know where I am," he replied, but would say nothing more, and so I
+ left him.</p>
+ <p>As I entered the corridor again, a broad <a href="javascript:void(0);"
+ onclick="return overlib('Again, an image of food.', STICKY)" onmouseout="nd();"
+ class="popup">meat-like
+ </a>man in an apron, accosted me, and jerking his thumb over
+ his shoulder said--"Is that <a href="javascript:void(0);" onclick="return overlib('Notice that he is now claiming Bartleby as a friend, not a former employee.', STICKY)"
+ onmouseout="nd();" class="popup">your
+ friend</a>?"</p>
+ <p>"Yes."</p>
+ <p>"Does he want to starve? If he does, let him live on the prison fare,
+ that's all.</p>
+ <p>"Who are you?" asked I, not knowing what to make of such an <a href="javascript:void(0);"
+ onclick="return overlib('The lawyer is much more comfortable with officials.', STICKY)"
+ onmouseout="nd();" class="popup">unofficially
+ speaking person</a> in such a place.</p>
+ <p>"I am the grub-man. Such gentlemen as have friends here, hire me to provide
+ them with something good to eat."</p>
+ <p>"Is this so?" said I, turning to the turnkey.</p>
+ <p>He said it was.</p>
+ <p>"Well then," said I, slipping some silver into the grub-man's hands (for
+ so they called him). "I want you to give particular attention to my friend
+ there; let him have the best dinner you can get. And you must be as polite
+ to him as possible."</p>
+ <p>"Introduce me, will you?" said the grub-man, looking at me with an expression
+ which seemed to say he was all impatience for an opportunity to give a
+ specimen of his breeding.</p>
+ <p>Thinking it would prove of benefit to the scrivener, I acquiesced; and
+ <a
+ href="javascript:void(0);" onclick="return overlib('But he doesn\'t use the name, and keeps calling him the &quot;grub-man.&quot;', STICKY)"
+ onmouseout="nd();" class="popup">asking the grub-man his name</a>, went up with him to Bartleby.</p>
+ <p>"Bartleby, this is <a href="javascript:void(0);" onclick="return overlib('Why does he call him that? It seems to devalue his own claiming of friendship with Bartleby.', STICKY)"
+ onmouseout="nd();" class="popup">a
+ friend; </a>you will find him very useful to you."</p>
+ <p>"<a href="javascript:void(0);" onclick="return overlib('Like Turkey, he makes all the sounds of subservience.', STICKY)"
+ onmouseout="nd();" class="popup">Your
+ sarvant</a>, sir, your sarvant," said the grub-man, making a
+ low salutation behind his apron. "Hope you find it <a href="javascript:void(0);"
+ onclick="return overlib('Why does he say this? Is he assuming that Bartleby is too crazy to know where he really is?', STICKY)"
+ onmouseout="nd();" class="popup">pleasant
+ here</a>, sir;--spacious grounds--cool apartments, sir--hope
+ you'll stay with us some time--try to make it agreeable. What will you
+ have for dinner today?"</p>
+ <p>"I prefer not to dine to-day," said Bartleby, turning away. "It would
+ disagree with me; I am unused to dinners." So saying he slowly moved to
+ the other side of the inclosure, and took up <a href="javascript:void(0);"
+ onclick="return overlib('Just like the position he had assumed in the lawyer\'s office (although at the beginning, the placement of the desk forced him to look at the dead wall). Now it is clearly voluntary.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">a
+ position</a> fronting the dead-wall.</p>
+ <p>"How's this?" said the grub-man, addressing me with a stare of astonishment.
+ "He's odd, aint he?"</p>
+ <p>"I think he is a little deranged," said I, sadly.</p>
+ <p>"Deranged? deranged is it? Well now, upon my word, I thought that friend
+ of yourn was a <a href="javascript:void(0);" onclick="return overlib('a forger is someone who also writes the words of others, representing them as his own. There is a relationship with the scrivener, but he is honest about the words not being his own; he does not plagiarize.', STICKY)"
+ onmouseout="nd();" class="popup">gentleman
+ forger</a>; they are always pale and genteel-like, them forgers.
+ <a
+ href="javascript:void(0);" onclick="return overlib('He is like the lawyer here, except that the lawyer would not pity a dishonest person. Perhaps the grub-man is even more compassionate.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">I can't help pity 'em</a>--can't help it, sir. Did you know Monroe Edwards?"
+ he added touchingly, and paused. Then, laying his hand pityingly on my
+ shoulder, sighed, "he died of consumption at Sing-Sing. so you weren't
+ acquainted with Monroe?"</p>
+ <p>"No, I was never socially acquainted with any forgers. But I cannot stop
+ longer. Look to my friend yonder. You will not lose by it. I will see you
+ again."</p>
+ <p>Some few days after this, I again obtained admission to the Tombs, and
+ went through the corridors in quest of Bartleby; but without finding him.</p>
+ <p>"I saw him coming from his cell not long ago," said a turnkey, "may be
+ he's gone to loiter in the yards."</p>
+ <p>So I went in that direction.</p>
+ <p>"Are you looking for the silent man?" said another turnkey passing me.
+ "Yonder he lies--sleeping in the yard there. 'Tis not twenty minutes since
+ I saw him lie down."</p>
+ <p>The yard was entirely quiet. It was not accessible to the common prisoners.
+ The surrounding walls, of amazing thickness, <a href="javascript:void(0);"
+ onclick="return overlib('Again there is silence behind walls.', STICKY)"
+ onmouseout="nd();" class="popup">kept
+ off all sound</a> behind them. The <a href="javascript:void(0);"
+ onclick="return overlib('The Egyptians, of course, were obsessed with death (and masonry). This is appropriate architecture for the Tombs.', STICKY)"
+ onmouseout="nd();" class="popup">Egyptian
+ character</a> of the masonry weighed upon me with its gloom.
+ But a soft <a href="javascript:void(0);" onclick="return overlib('In the midst of death there is life. Perhaps even in this sad death there is some hope and life for the narrator. Is that possible? At the &quot;heart&quot; of the &quot;eternal pyramids,&quot; where death lies enshrined, is life from above?', STICKY)"
+ onmouseout="nd();" class="popup">imprisoned
+ turf</a> grew under foot. The heart of the eternal pyramids,
+ it seemed, wherein, by some strange magic, through the clefts, grass-seed,
+ dropped by birds, had sprung.</p>
+ <p>Strangely huddled at the base of the wall, <a href="javascript:void(0);"
+ onclick="return overlib('He\'s in a fetal position, and at the base of the impenetrable wall. In the Brittanica film, his hands are pressed together, as if praying---obviously an interpretive directorial decision.', STICKY)"
+ onmouseout="nd();" class="popup">his
+ knees drawn up</a>, and lying on his side, his head touching
+ the cold stones, I saw the wasted Bartleby. But nothing stirred. I paused;
+ then went close up to him; stooped over, and saw that his dim eyes were
+ open; otherwise he seemed profoundly sleeping. Something prompted me
+ <a
+ href="javascript:void(0);" onclick="return overlib('Only when he is dead does he touch him, and the touch affects his whole body.', STICKY)"
+ onmouseout="nd();" class="popup">to touch him</a>. I felt his hand, when a tingling shiver ran up my arm
+ and down my spine to my feet.</p>
+ <p>The round face of the grub-man peered upon me now. "His dinner is ready.
+ Won't he dine to-day, either? Or does he live without dining?"</p>
+ <p>"Lives without dining," said I, and closed the eyes.</p>
+ <p>"Eh!--He's asleep, aint he?"</p>
+ <p>"<a href="javascript:void(0);" onclick="return overlib('In other words, he is dead and with the great. The phrase comes from Job 3:14 where Job, in his sufferings, wishes he were &quot;at rest, With kings and counsellors of the earth which built desolate places for themselve', STICKY)"
+ onmouseout="nd();" class="popup">With
+ kings and counsellors</a>," murmured I.</p>
+ <p>* * * * * * * *</p>
+ <p>There would seem little need for proceeding further in this history. Imagination
+ will readily supply the meagre recital of poor Bartleby's interment. But
+ ere parting with the reader, let me say, that if this little narrative
+ has sufficiently interested him, to awaken curiosity as to who Bartleby
+ was, and what manner of life he led prior to the present narrator's making
+ his acquaintance, I can only reply, that in such curiosity I fully share,
+ but am wholly unable to gratify it. Yet here I hardly know whether I should
+ divulge <a href="javascript:void(0);" onclick="return overlib('Note that he does not know if this is true. Perhaps his hesitancy in reporting it is because he sees it in such emotional terms, and he doesn\'t wish to reveal himself.', STICKY)"
+ onmouseout="nd();" class="popup">one
+ little item of rumor</a>, which came to my ear a few months
+ after the scrivener's decease. Upon what basis it rested, I could never
+ ascertain; and hence how true it is I cannot now tell. But inasmuch as
+ this vague report has not been without a certain strange <a href="javascript:void(0);"
+ onclick="return overlib('In other words, it elicits ideas and feelings which reverberate with his own.', STICKY)"
+ onmouseout="nd();" class="popup">suggestive
+ interest</a> to me, however said, it may prove the same with
+ some others; and so I will briefly mention it. The report was this: that
+ Bartleby had been a subordinate clerk in the <a href="javascript:void(0);"
+ onclick="return overlib('&quot;Dead letters&quot; are those which cannot be delivered for various reasons. Since this was in Washington, D.C. perhaps it indicts the legal profession and/or politicians who were passing laws to buttress the dying institution of slavery.', STICKY)"
+ onmouseout="nd();" class="popup">Dead
+ Letter Office</a> at <a href="http://raven.cc.ukans.edu/%7Ezeke/bartleby/parker.html"
+ target="_blank">Washington</a>, from which he had been suddenly removed
+ by a change in the administration. When I think over this rumor, I cannot
+ adequately express the emotions which seize me. <a href="javascript:void(0);"
+ onclick="return overlib('Perhaps it does sound like dead men, in the context of this story and what the narrator has come to understand about himself and humanity.', STICKY)"
+ onmouseout="nd();" class="popup">Dead
+ letters!</a> does it not sound like dead men? Conceive a man
+ by nature and misfortune prone to a pallid hopelessness, can any business
+ seem more fitted to heighten it than that of continually handling these
+ dead letters and assorting them for the flames? For by the cart-load they
+ are annually burned. <a href="javascript:void(0);" onclick="return overlib('Notice the stories which the narrator associates with these letters--all tragic stories of blocked communications. Since he is creating the stories, it seems clear that he has been touched deeply by his experience with Bartleby. Could the lawyer at the beginning of the story, as he pictured himself, have imagined such personal tragedies?', STICKY)"
+ onmouseout="nd();" class="popup">Sometimes</a> from out the folded paper
+ the pale clerk takes a ring:--the bank-note sent in swiftest charity:--he
+ whom it would relieve, nor eats nor hungers any more; pardon for those
+ who died despairing; hope for those who died unhoping; good tidings for
+ those who died stifled by unrelieved calamities. <a href="javascript:void(0);"
+ onclick="return overlib(' Some readers interpret this as suggesting that Bartleby has sped to death on an errand of bringing life to the narrator, and thus see him as a kind of Christ figure. Certainly the narrator has come to experience the reality of death deeply.&nbsp;', STICKY)"
+ onmouseout="nd();" class="popup">On
+ errands of life, these letters speed to death.</a>
+ </p>
+ <p> <a href="javascript:void(0);" onclick="return overlib('Why does he equate Bartleby with humanity? What does the &quot;Ah&quot; suggest? This statement, which seems to be very emotional, seems to reveal a person quite changed from the one who began this story. Has he been transformed? Some readers think not, and that he despairs for the fate of humanity. Others find this a mockery of the typical sentimental ending of stories published in<i> Harper\'s</i> (as this one was.) Your decision.', STICKY)"
+ onmouseout="nd();" class="popup">Ah
+ Bartleby! Ah humanity</a>!</p>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </center>
+ <p></p>
+ <center>
+ <img src="../bar.gif" width="535" height="15" border="0" align="middle"/>
+ <p>
+<a href="http://www.vcu.edu/engweb/webtexts/bartleby/bartleby.html">Text Without Notes</a>
+<br/> <a href="http://www.vcu.edu/engweb/webtexts/bartleby/web-hm.htm">Melville Web Links</a>
+ </p>
+ <p>
+ <img src="../bar.gif" width="535" height="15" border="0" align="middle"/>
+ </p>
+ <p> <a href="http://www.vcu.edu/engweb"><img src="../myhome.jpg" width="50" height="21" border="0" align="middle"/></a>
+ </p>
+ </center>
+ </body>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnet-svg-classes/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnet-svg-classes/expected-images.json
new file mode 100644
index 000000000..f83aea18c
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnet-svg-classes/expected-images.json
@@ -0,0 +1,5 @@
+[
+ "https:\/\/cdn1.cnet.com\/img\/JumVcu1ZSLtPP8ui0UWaSlgi5RU=\/670x503\/2017\/12\/01\/b36ce794-e0b8-495c-a198-184923a8f4e9\/twitter-lite.jpg",
+ "https:\/\/cdn2.cnet.com\/img\/LI8y19stcvIQUdzbYdH4-DAigtc=\/fit-in\/570x0\/2017\/12\/01\/b36ce794-e0b8-495c-a198-184923a8f4e9\/twitter-lite.jpg",
+ "https:\/\/cdn1.cnet.com\/img\/mWcZaiA8Ngv61OQcpdoh6Ra9nY0=\/170x96\/2017\/11\/13\/70540d7a-cbc5-4563-ab86-b5549ef68168\/oneplus-5t-product-21.jpg"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnet-svg-classes/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnet-svg-classes/expected-metadata.json
new file mode 100644
index 000000000..be68e3164
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnet-svg-classes/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "Twitter Lite llega a 11 países de América Latina, para ayudar a los usuarios con mala señal de sus redes móviles.",
+ "Image": "https:\/\/cdn1.cnet.com\/img\/JumVcu1ZSLtPP8ui0UWaSlgi5RU=\/670x503\/2017\/12\/01\/b36ce794-e0b8-495c-a198-184923a8f4e9\/twitter-lite.jpg",
+ "Title": "Twitter Lite se estrena en México, Venezuela y otros nueve países",
+ "SiteName": "CNET en Español"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnet-svg-classes/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnet-svg-classes/expected.html
new file mode 100644
index 000000000..1b6351245
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnet-svg-classes/expected.html
@@ -0,0 +1,23 @@
+<div data-component="lazyloadImages" itemprop="articleBody">
+ <figure section="shortcodeImage"><span><span itemprop="image" itemscope="" itemtype="https://schema.org/ImageObject"><img alt="twitter-lite" class="" height="0" src="https://cdn2.cnet.com/img/LI8y19stcvIQUdzbYdH4-DAigtc=/fit-in/570x0/2017/12/01/b36ce794-e0b8-495c-a198-184923a8f4e9/twitter-lite.jpg" width="570"></img><meta content="https://cdn2.cnet.com/img/LI8y19stcvIQUdzbYdH4-DAigtc=/fit-in/570x0/2017/12/01/b36ce794-e0b8-495c-a198-184923a8f4e9/twitter-lite.jpg" itemprop="url"></meta><meta content="0" itemprop="height"></meta><meta content="570" itemprop="width"></meta></span></span>
+ <figcaption><span><p>Twitter Lite estará disponible en Google Play Store en 11 países de América Latina.</p></span><span>
+ Twitter
+ </span></figcaption></figure><p>Twitter ha dado a conocer que Twitter Lite llegará a un total de 24 nuevos países a partir de hoy, 11 de ellos de América Latina. </p>
+ <p>Según explicó en un <a data-component="externalLink" href="https://blog.twitter.com/official/en_us/topics/product/2017/twitter-lite-in-the-google-play-store-in-24-more-countries.html#" target="_blank">comunicado</a> <span section="shortcodeLink"><a href="http://fakehost/es/noticias/twitter-estrena-twitter-lite/">Twitter Lite</a></span> ahora estará disponible en Bolivia, Brasil, Chile, Colombia, Costa Rica, Ecuador, México, Panamá, Perú, El Salvador y Venezuela.</p>
+ <p>Twitter Lite es la versión ligera de la aplicación de la red social para Android, disponible en la Google Play Store. Con este app los usuarios que experimentan fallos de red o que viven en países con redes con poca velocidad de conexión como Venezuela podrán descargar los tuits de forma más rápida.</p>
+
+ <p>Entre sus novedades, Twitter Lite permite la carga rápida de tuits en redes 2G y 3G, y ofrece ayuda offline en caso de que pierdas tu conexión; a eso debemos sumar que minimiza el uso de datos y ofrece un modo de ahorro, en el que únicamente se descargan las fotos o videos de los tuits que quieres ver.</p>
+
+
+ <p>Además, el app ocupa menos espacio en tu teléfono móvil, al reducir a 3MB su peso.</p>
+ <p>Twitter dio a conocer Twitter Lite en abril en India, y desde entonces ha estado trabajando para llevarlo a más países. La empresa en los últimos meses también se ha involucrado de forma definitiva en la <span section="shortcodeLink"><a href="http://fakehost/es/noticias/twitter-hemos-progresado-en-nuestra-batalla-contra-el-abuso/">eliminación de los abusos en la red social</a></span>, tomando medidas incluso en la <span section="shortcodeLink"><a href="http://fakehost/es/noticias/twitter-elimina-verificacion-a-cuentas-ofensivas/">verificación de cuentas.</a></span></p><svg><symbol id="play" viewbox="0 0 26.6 32"><path d="M0,2.6c0-2.4,1.6-3.3,3.7-2L25,13.7c2,1.3,2,3.2,0,4.5L3.7,31.4c-2,1.3-3.7,0.3-3.7-2C0,29.4,0,2.6,0,2.6z"></path></symbol><symbol id="pause" viewbox="0 0 26.6 32"><g><polygon points="16,32 26.5,32 26.5,8.8 26.5,0 16,0"></polygon><rect height="32" width="10.6" x="0.1" y="0"></rect></g></symbol><symbol id="playlist" viewbox="0 0 32 22.9"><g><circle cx="2.3" cy="20.6" r="2.3"></circle><circle cx="2.3" cy="11.4" r="2.3"></circle><circle cx="2.3" cy="2.3" r="2.3"></circle><path d="M32,1.1C32,0.5,31.5,0,30.9,0H10.3C9.7,0,9.1,0.5,9.1,1.1v2.3c0,0.6,0.5,1.1,1.1,1.1h20.6c0.6,0,1.1-0.5,1.1-1.1V1.1z"></path><path d="M32,10.3c0-0.6-0.5-1.1-1.1-1.1H10.3c-0.6,0-1.1,0.5-1.1,1.1v2.3c0,0.6,0.5,1.1,1.1,1.1h20.6c0.6,0,1.1-0.5,1.1-1.1V10.3z"></path><path d="M32,19.4c0-0.6-0.5-1.1-1.1-1.1H10.3c-0.6,0-1.1,0.5-1.1,1.1v2.3c0,0.6,0.5,1.1,1.1,1.1h20.6c0.6,0,1.1-0.5,1.1-1.1V19.4z"></path></g></symbol><symbol id="speaker-on" viewbox="0 0 32 28.1"><g><g><path d="M12.6,5L6.3,8.7H0.6C0.3,8.7,0,9,0,9.3V19c0,0.4,0.3,0.7,0.6,0.7h5.9l6.1,3.4c1.3,0.8,1.5,0.2,1.5-1.5V6.5C14.2,4.8,13.9,4.2,12.6,5z"></path></g><path d="M18,23.1v-2.8c2.6,0,4.7-2.8,4.7-6.2S20.6,7.8,18,7.8V5c4.2,0,7.5,4,7.5,9S22.1,23.1,18,23.1z"></path><path d="M21.3,28.1v-2.8c4.4,0,7.9-5,7.9-11.2S25.6,2.8,21.3,2.8V0C27.2,0,32,6.3,32,14C32,21.8,27.2,28.1,21.3,28.1z"></path></g></symbol><symbol id="speaker-off" viewbox="0 0 32 18.8"><g><g><path d="M12.6,0.4L6.3,4H0.6C0.3,4,0,4.3,0,4.7v9.7c0,0.4,0.3,0.7,0.6,0.7h5.9l6.1,3.4c1.3,0.8,1.5,0.2,1.5-1.5V1.8C14.2,0.2,13.9-0.5,12.6,0.4z"></path></g><polygon points="32,4.5 30.2,2.7 25.3,7.6 20.4,2.7 18.6,4.5 23.5,9.4 18.6,14.3 20.4,16.1 25.3,11.2 30.2,16.1 32,14.3 27.1,9.4 "></polygon></g></symbol><symbol id="captions" viewbox="0 0 32 16.2"><g><path d="M8.6,16.2c-1.2,0-2.4-0.2-3.4-0.6c-1.1-0.4-2-0.9-2.7-1.6c-0.8-0.7-1.4-1.6-1.8-2.6C0.2,10.4,0,9.3,0,8.1c0-1.2,0.2-2.3,0.7-3.3s1-1.8,1.8-2.6C3.2,1.5,4.1,1,5.2,0.6S7.4,0,8.6,0c1,0,1.9,0.1,2.7,0.4c0.8,0.3,1.4,0.6,2,1.1c0.6,0.4,1.1,0.9,1.4,1.5c0.4,0.5,0.7,1.1,0.9,1.6l-4.1,1.9c-0.1-0.3-0.2-0.6-0.4-0.9C11,5.3,10.8,5,10.5,4.8c-0.3-0.2-0.6-0.4-0.9-0.5c-0.3-0.1-0.7-0.2-1-0.2C8,4.2,7.5,4.3,7,4.5C6.6,4.7,6.2,5,5.8,5.3C5.5,5.7,5.2,6.1,5.1,6.5C4.9,7,4.8,7.5,4.8,8.1c0,0.5,0.1,1.1,0.3,1.5c0.2,0.5,0.4,0.9,0.8,1.2c0.3,0.4,0.7,0.6,1.2,0.8C7.5,11.9,8,12,8.6,12c0.3,0,0.7-0.1,1-0.2c0.3-0.1,0.6-0.3,0.9-0.5c0.3-0.2,0.5-0.4,0.7-0.7c0.2-0.3,0.3-0.6,0.4-0.9l4.1,1.9c-0.2,0.5-0.5,1-0.9,1.6c-0.4,0.5-0.9,1-1.4,1.5c-0.6,0.4-1.2,0.8-2,1.1C10.5,16,9.6,16.2,8.6,16.2z"></path><path d="M24.9,16.2c-1.2,0-2.4-0.2-3.4-0.6c-1.1-0.4-2-0.9-2.7-1.6c-0.8-0.7-1.4-1.6-1.8-2.6c-0.4-1-0.7-2.1-0.7-3.3c0-1.2,0.2-2.3,0.7-3.3c0.4-1,1-1.8,1.8-2.6c0.8-0.7,1.7-1.3,2.7-1.7C22.6,0.2,23.7,0,24.9,0c1,0,1.9,0.1,2.7,0.4c0.8,0.3,1.4,0.6,2,1.1c0.6,0.4,1.1,0.9,1.4,1.5C31.5,3.5,31.8,4,32,4.5l-4.1,1.9c-0.1-0.3-0.2-0.6-0.4-0.9c-0.2-0.3-0.4-0.5-0.7-0.7c-0.3-0.2-0.6-0.4-0.9-0.5c-0.3-0.1-0.7-0.2-1-0.2c-0.6,0-1.1,0.1-1.5,0.3c-0.5,0.2-0.9,0.5-1.2,0.8c-0.3,0.4-0.6,0.8-0.8,1.2c-0.2,0.5-0.3,1-0.3,1.5c0,0.5,0.1,1.1,0.3,1.5c0.2,0.5,0.4,0.9,0.8,1.2c0.3,0.4,0.7,0.6,1.2,0.8c0.5,0.2,1,0.3,1.5,0.3c0.3,0,0.7-0.1,1-0.2c0.3-0.1,0.6-0.3,0.9-0.5c0.3-0.2,0.5-0.4,0.7-0.7c0.2-0.3,0.3-0.6,0.4-0.9l4.1,1.9c-0.2,0.5-0.5,1-0.9,1.6c-0.4,0.5-0.9,1-1.4,1.5c-0.6,0.4-1.2,0.8-2,1.1C26.8,16,25.9,16.2,24.9,16.2z"></path></g></symbol><symbol id="fullscreen" viewbox="0 0 32 32"><g><g><polygon points="11.4,0 0,0 0,11.4 3.4,8 9.1,13.7 13.7,9.1 8,3.4 &#x9;&#x9;&#x9;"></polygon></g><g><polygon points="20.6,32 32,32 32,20.6 28.6,24 22.9,18.3 18.3,22.9 24,28.6 &#x9;&#x9;&#x9;"></polygon></g><g><polygon points="32,11.4 32,0 20.6,0 24,3.4 18.3,9.1 22.9,13.7 28.6,8 &#x9;&#x9;&#x9;"></polygon></g><g><polygon points="0,20.6 0,32 11.4,32 8,28.6 13.7,22.9 9.1,18.3 3.4,24 &#x9;&#x9;&#x9;"></polygon></g></g></symbol><symbol id="video" viewbox="0 0 32 22"><g><path d="M29,2.2c-0.7,0.2-4.6,3-7.9,5.3V2.1C21.1,1,20.1,0,19,0H2.1C1,0,0,1,0,2.1v17.7C0,21,1,22,2.1,22H19c1.2,0,2.1-1,2.1-2.1v-5.9c3.3,2.4,7.4,5.4,8.2,5.6c1.4,0.4,2.7-0.1,2.7-0.1V2.2C32,2.2,30.1,1.8,29,2.2z"></path></g></symbol></svg><div data-load-playlist="[{&quot;id&quot;:&quot;dc362fcb-cba9-4bf6-b62d-aa7e39a092c7&quot;,&quot;title&quot;:&quot;Google Assistant mejora, hay m\u00e1s cambios en Twitter y llega el OnePlus 5T&quot;,&quot;description&quot;:&quot;[La semana en CNET en Espa\u00f1ol #163] Esta semana hablamos de las caracter\u00edsticas del OnePlus 5T, las novedades de Google Assistant y los cambios que ha hecho Twitter a su proceso de verificaci\u00f3n.&quot;,&quot;slug&quot;:&quot;google-assistant-mejora-hay-mas-cambios-en-twitter-y-llega-el-oneplus-5t&quot;,&quot;chapters&quot;:{&quot;data&quot;:[],&quot;paging&quot;:{&quot;total&quot;:0,&quot;limit&quot;:15,&quot;offset&quot;:0}},&quot;duration&quot;:489,&quot;hasCaptions&quot;:true,&quot;mpxId&quot;:&quot;&quot;,&quot;mpxRefId&quot;:&quot;38uKprB1_hIkwXffuj20eMptuapoWX4K&quot;,&quot;ratingVChip&quot;:&quot;TV-14&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;1c0fd1cb-c387-11e2-8208-0291187b029a&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;6a9b3b6b-575a-4b66-b4b2-4aedee01be6d&quot;,&quot;firstName&quot;:&quot;Gabriel&quot;,&quot;lastName&quot;:&quot;Sama&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;b45f7536-5ba2-40d8-a054-40341b279649&quot;,&quot;title&quot;:&quot;La semana&quot;},&quot;image&quot;:{&quot;id&quot;:&quot;70540d7a-cbc5-4563-ab86-b5549ef68168&quot;,&quot;filename&quot;:&quot;oneplus-5t-product-21.jpg&quot;,&quot;dateCreated&quot;:{&quot;date&quot;:&quot;2017-11-13 17:56:07&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;alt&quot;:&quot;oneplus-5t-product-21&quot;,&quot;credits&quot;:&quot;Andrew Hoyle\/CNET&quot;,&quot;path&quot;:&quot;https:\/\/cnet4.cbsistatic.com\/img\/EcEJ76YiEastX8yctETLURpwICc=\/2017\/11\/13\/70540d7a-cbc5-4563-ab86-b5549ef68168\/oneplus-5t-product-21.jpg&quot;,&quot;cropGravity&quot;:0,&quot;crop&quot;:null,&quot;typeName&quot;:&quot;content_image&quot;},&quot;thumbnail&quot;:&quot;https:\/\/cdn1.cnet.com\/img\/xTOX9ZdBnxWFXxkzSLG6dBydTMg=\/fit-in\/194x109\/2017\/11\/13\/70540d7a-cbc5-4563-ab86-b5549ef68168\/oneplus-5t-product-21.jpg&quot;,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/es\/videos\/manifest\/google-assistant-mejora-hay-mas-cambios-en-twitter-y-llega-el-oneplus-5t.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/11\/17\/1098353731717\/es_lasemana16novFINAL_1265786_740.mp4&quot;,&quot;selector&quot;:&quot;\/es\/videos\/selector\/google-assistant-mejora-hay-mas-cambios-en-twitter-y-llega-el-oneplus-5t\/&quot;},{&quot;id&quot;:&quot;7097a578-8dc8-48b8-9bea-bc0dcabdb558&quot;,&quot;title&quot;:&quot;El \u0027bug\u0027 de MacOS High Sierra y la expansi\u00f3n de Huawei en Latinoam\u00e9rica&quot;,&quot;description&quot;:&quot;[La semana en CNET en Espa\u00f1ol #165] Apple solucion\u00f3 el problema de que se pod\u00eda acceder a algunas Mac sin contrase\u00f1a. Huawei adelant\u00f3 planes para la regi\u00f3n.&quot;,&quot;slug&quot;:&quot;bug-de-macos-high-sierra-expansion-huawei-en-latinoamerica&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;duration&quot;:550,&quot;hasCaptions&quot;:true,&quot;mpxId&quot;:1107731523514,&quot;mpxRefId&quot;:&quot;IwoiIhK2JgjRf8oj2sS99ClHB2K8w8uw&quot;,&quot;ratingVChip&quot;:&quot;&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;272ff2eb-03d3-4e24-9b55-09f4633368f9&quot;,&quot;firstName&quot;:&quot;Mariana&quot;,&quot;lastName&quot;:&quot;Marcaletti&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;b45f7536-5ba2-40d8-a054-40341b279649&quot;,&quot;title&quot;:[&quot;La semana&quot;]},&quot;image&quot;:{&quot;id&quot;:&quot;1934b65e-89f2-4449-ae15-61584288ed9d&quot;,&quot;name&quot;:&quot;macos-high-sierra-image&quot;,&quot;filename&quot;:&quot;macos-high-sierra-image.jpg&quot;,&quot;path&quot;:&quot;https:\/\/cnet4.cbsistatic.com\/img\/bmNGTUwxlWz6QUuj1pUj2G90QUE=\/2017\/09\/27\/1934b65e-89f2-4449-ae15-61584288ed9d\/macos-high-sierra-image.jpg&quot;,&quot;size&quot;:1306802,&quot;height&quot;:1080,&quot;width&quot;:1920,&quot;dateCreated&quot;:{&quot;date&quot;:&quot;2017-09-27 17:49:57&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;dateUpdated&quot;:{&quot;date&quot;:&quot;2017-09-27 17:49:57&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;needsModeration&quot;:0,&quot;mimeType&quot;:&quot;image\/jpeg&quot;,&quot;deleted&quot;:0,&quot;preferred&quot;:0,&quot;watermark&quot;:0,&quot;alt&quot;:&quot;macos-high-sierra-image&quot;,&quot;cropGravity&quot;:0},&quot;thumbnail&quot;:&quot;https:\/\/cdn3.cnet.com\/img\/C6S9ny6QsPl0M4RazJBreX1ZaO8=\/fit-in\/194x109\/2017\/09\/27\/1934b65e-89f2-4449-ae15-61584288ed9d\/macos-high-sierra-image.jpg&quot;,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/es\/videos\/manifest\/bug-de-macos-high-sierra-expansion-huawei-en-latinoamerica.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/12\/01\/1107731523514\/es_lasemana1diciembre_1275504_740.mp4&quot;,&quot;selector&quot;:&quot;\/es\/videos\/selector\/bug-de-macos-high-sierra-expansion-huawei-en-latinoamerica\/&quot;},{&quot;id&quot;:&quot;41e31d24-ab17-445d-8841-ceb86ae9044f&quot;,&quot;title&quot;:&quot;Nuestros consejos para la temporada de ofertas&quot;,&quot;description&quot;:&quot;[La semana en CNET en Espa\u00f1ol #164] Nada de madrugar, hacer filas largas y estresarte. Esta semana te compartimos sugerencias puntuales para que le saques m\u00e1s jugo a las compras de Black Friday y Cyber Monday.&quot;,&quot;slug&quot;:&quot;consejos-ofertas-viernes-negro&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;duration&quot;:441,&quot;hasCaptions&quot;:true,&quot;mpxId&quot;:1102073923731,&quot;mpxRefId&quot;:&quot;5XzHm1c3DBSxFhifEcVyEyTaNwlg6R0a&quot;,&quot;ratingVChip&quot;:&quot;&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;272ff2eb-03d3-4e24-9b55-09f4633368f9&quot;,&quot;firstName&quot;:&quot;Mariana&quot;,&quot;lastName&quot;:&quot;Marcaletti&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;b45f7536-5ba2-40d8-a054-40341b279649&quot;,&quot;title&quot;:[&quot;La semana&quot;]},&quot;image&quot;:{&quot;id&quot;:&quot;154d2576-1ff8-41d8-ac2a-414450d5ee6c&quot;,&quot;name&quot;:&quot;viernesnegro&quot;,&quot;filename&quot;:&quot;viernesnegro.jpg&quot;,&quot;path&quot;:&quot;https:\/\/cnet4.cbsistatic.com\/img\/e6vO1LTPdKpSs3924nDWctNCZMY=\/2017\/11\/22\/154d2576-1ff8-41d8-ac2a-414450d5ee6c\/viernesnegro.jpg&quot;,&quot;size&quot;:278742,&quot;height&quot;:900,&quot;width&quot;:1600,&quot;dateCreated&quot;:{&quot;date&quot;:&quot;2017-11-22 22:32:03&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;dateUpdated&quot;:{&quot;date&quot;:&quot;2017-11-22 22:32:03&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;needsModeration&quot;:0,&quot;mimeType&quot;:&quot;image\/jpeg&quot;,&quot;deleted&quot;:0,&quot;preferred&quot;:0,&quot;watermark&quot;:0,&quot;alt&quot;:&quot;viernesnegro&quot;},&quot;thumbnail&quot;:&quot;https:\/\/cdn4.cnet.com\/img\/fcY_4UWuEddB5TbPXMSaNvgfcec=\/fit-in\/194x109\/2017\/11\/22\/154d2576-1ff8-41d8-ac2a-414450d5ee6c\/viernesnegro.jpg&quot;,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/es\/videos\/manifest\/consejos-ofertas-viernes-negro.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/11\/22\/1102073923731\/semana_nov22_1270073_740.mp4&quot;,&quot;selector&quot;:&quot;\/es\/videos\/selector\/consejos-ofertas-viernes-negro\/&quot;},{&quot;id&quot;:&quot;db8b62cc-68fc-4f96-8fbc-bcbe5d4f8a1c&quot;,&quot;title&quot;:&quot;El desembarco de Xiaomi en Espa\u00f1a y la previa del OnePlus 5T&quot;,&quot;description&quot;:&quot;[La semana en CNET en Espa\u00f1ol #162] La fabricante de celulares china llega a Espa\u00f1a con m\u00e1s de seis tel\u00e9fonos de menos de 300 euros, y el OnePlus 5T se presentar\u00e1 el 16 de noviembre en Estados Unidos.&quot;,&quot;slug&quot;:&quot;el-desembarco-de-xiaomi-en-espana-y-la-previa-del-oneplus-5t&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;duration&quot;:500,&quot;hasCaptions&quot;:true,&quot;mpxId&quot;:1093211715579,&quot;mpxRefId&quot;:&quot;APQJZKaXzbhmwxYJcFFg_AHYIHfLWNU6&quot;,&quot;ratingVChip&quot;:&quot;&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;272ff2eb-03d3-4e24-9b55-09f4633368f9&quot;,&quot;firstName&quot;:&quot;Mariana&quot;,&quot;lastName&quot;:&quot;Marcaletti&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;b45f7536-5ba2-40d8-a054-40341b279649&quot;,&quot;title&quot;:[&quot;La semana&quot;]},&quot;image&quot;:{&quot;id&quot;:&quot;96ec74ea-1acb-48be-b74e-816ba301d19a&quot;,&quot;name&quot;:&quot;oneplus-5t&quot;,&quot;filename&quot;:&quot;oneplus-5t.jpg&quot;,&quot;path&quot;:&quot;https:\/\/cnet4.cbsistatic.com\/img\/KK0CqnMaqMxZ9bC-3jbAiQhnutM=\/2017\/10\/30\/96ec74ea-1acb-48be-b74e-816ba301d19a\/oneplus-5t.jpg&quot;,&quot;caption&quot;:&quot;&lt;p>Una supuesta foto del OnePlus 5T filtrada en China.&lt;\/p>&quot;,&quot;size&quot;:41019,&quot;height&quot;:592,&quot;width&quot;:690,&quot;dateCreated&quot;:{&quot;date&quot;:&quot;2017-10-30 19:55:39&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;dateUpdated&quot;:{&quot;date&quot;:&quot;2017-10-30 19:56:18&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;needsModeration&quot;:0,&quot;mimeType&quot;:&quot;image\/jpeg&quot;,&quot;deleted&quot;:0,&quot;preferred&quot;:0,&quot;watermark&quot;:0,&quot;credits&quot;:&quot;Weibo&quot;,&quot;alt&quot;:&quot;oneplus-5t&quot;},&quot;thumbnail&quot;:&quot;https:\/\/cdn2.cnet.com\/img\/9CtVwepYPv7fktP5LlCjoAjq0is=\/fit-in\/194x109\/2017\/10\/30\/96ec74ea-1acb-48be-b74e-816ba301d19a\/oneplus-5t.jpg&quot;,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/es\/videos\/manifest\/el-desembarco-de-xiaomi-en-espana-y-la-previa-del-oneplus-5t.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/11\/10\/1093211715579\/es_lasemana_9noviembre02_1259372_740.mp4&quot;,&quot;selector&quot;:&quot;\/es\/videos\/selector\/el-desembarco-de-xiaomi-en-espana-y-la-previa-del-oneplus-5t\/&quot;},{&quot;id&quot;:&quot;283c729a-eeeb-454b-ae03-d1d95229031d&quot;,&quot;title&quot;:&quot;Google Assistant habla espa\u00f1ol y el iPhone X presenta un nuevo idioma de dise\u00f1o&quot;,&quot;description&quot;:&quot;[La semana en CNET en Espa\u00f1ol #161] El asistente virtual de Google ahora domina el idioma de Cervantes, y el iPhone X inaugura nuevos gestos y un nuevo lenguaje de dise\u00f1o de la marca.&quot;,&quot;slug&quot;:&quot;google-assistant-habla-espanol-y-el-iphone-x-un-nuevo-idioma&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;duration&quot;:683,&quot;hasCaptions&quot;:true,&quot;mpxId&quot;:1087923267594,&quot;mpxRefId&quot;:&quot;jCXv62P0jCNTJB3jKuthMzA3CV0ghejk&quot;,&quot;ratingVChip&quot;:&quot;&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;272ff2eb-03d3-4e24-9b55-09f4633368f9&quot;,&quot;firstName&quot;:&quot;Mariana&quot;,&quot;lastName&quot;:&quot;Marcaletti&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;b45f7536-5ba2-40d8-a054-40341b279649&quot;,&quot;title&quot;:[&quot;La semana&quot;]},&quot;image&quot;:{&quot;id&quot;:&quot;0d404b1c-30e9-4ccf-9901-d2125b2b23f2&quot;,&quot;name&quot;:&quot;iphone-x-67&quot;,&quot;filename&quot;:&quot;iphone-x-67.jpg&quot;,&quot;path&quot;:&quot;https:\/\/cnet4.cbsistatic.com\/img\/JoewZeNO5ePGyD5iGiD7VM32i9w=\/2017\/11\/03\/0d404b1c-30e9-4ccf-9901-d2125b2b23f2\/iphone-x-67.jpg&quot;,&quot;size&quot;:153088,&quot;height&quot;:900,&quot;width&quot;:1600,&quot;dateCreated&quot;:{&quot;date&quot;:&quot;2017-11-03 16:19:37&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;dateUpdated&quot;:{&quot;date&quot;:&quot;2017-11-03 16:19:37&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;needsModeration&quot;:0,&quot;mimeType&quot;:&quot;image\/jpeg&quot;,&quot;deleted&quot;:0,&quot;preferred&quot;:0,&quot;watermark&quot;:0,&quot;alt&quot;:&quot;iphone-x-67&quot;},&quot;thumbnail&quot;:&quot;https:\/\/cdn3.cnet.com\/img\/6fdfuTdyxV3t7waWLSKyE6df3fY=\/fit-in\/194x109\/2017\/11\/03\/0d404b1c-30e9-4ccf-9901-d2125b2b23f2\/iphone-x-67.jpg&quot;,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/es\/videos\/manifest\/google-assistant-habla-espanol-y-el-iphone-x-un-nuevo-idioma.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/11\/03\/1087923267594\/semananov2_1253191_740.mp4&quot;,&quot;selector&quot;:&quot;\/es\/videos\/selector\/google-assistant-habla-espanol-y-el-iphone-x-un-nuevo-idioma\/&quot;},{&quot;id&quot;:&quot;a3c0de25-3d75-44b9-9c83-6925dbd3ebb2&quot;,&quot;title&quot;:&quot;La pantalla del Pixel 2 XL, la llave maestra de Amazon y el inminente iPhone X&quot;,&quot;description&quot;:&quot;[La semana en CNET en Espa\u00f1ol #160] Analizamos los problemas con el panel OLED del tel\u00e9fono de Google, los env\u00edos de Amazon entran en tu hogar y ya est\u00e1 a la puerta el nuevo tel\u00e9fono de Apple.&quot;,&quot;slug&quot;:&quot;la-pantalla-de-pixel-2-xl-la-llave-maestra-de-amazon-y-el-inminente-iphone-x&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;duration&quot;:574,&quot;hasCaptions&quot;:true,&quot;mpxId&quot;:1082906179568,&quot;mpxRefId&quot;:&quot;t4LPcFt8Hmm8Vg7U8o4s4_E0Xn_xqxAj&quot;,&quot;ratingVChip&quot;:&quot;&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;272ff2eb-03d3-4e24-9b55-09f4633368f9&quot;,&quot;firstName&quot;:&quot;Mariana&quot;,&quot;lastName&quot;:&quot;Marcaletti&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;b45f7536-5ba2-40d8-a054-40341b279649&quot;,&quot;title&quot;:[&quot;La semana&quot;]},&quot;image&quot;:{&quot;id&quot;:&quot;00597069-4f14-41dd-b1f1-e7bc413d4e17&quot;,&quot;name&quot;:&quot;Google Pixel 2 XL screen burn-in&quot;,&quot;filename&quot;:&quot;screen-problems-2405-001.jpg&quot;,&quot;path&quot;:&quot;https:\/\/cnet4.cbsistatic.com\/img\/zM13Oy086Lnor1efnDjx0mVca88=\/2017\/10\/23\/00597069-4f14-41dd-b1f1-e7bc413d4e17\/screen-problems-2405-001.jpg&quot;,&quot;caption&quot;:&quot;&lt;p>&lt;\/p>&quot;,&quot;size&quot;:1865911,&quot;height&quot;:1467,&quot;width&quot;:2200,&quot;dateCreated&quot;:{&quot;date&quot;:&quot;2017-10-23 19:09:04&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;dateUpdated&quot;:{&quot;date&quot;:&quot;2017-10-23 19:09:23&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;needsModeration&quot;:0,&quot;mimeType&quot;:&quot;image\/jpeg&quot;,&quot;deleted&quot;:0,&quot;preferred&quot;:0,&quot;watermark&quot;:1,&quot;credits&quot;:&quot;Josh Miller\/CNET&quot;,&quot;alt&quot;:&quot;Google Pixel 2 XL screen burn-in&quot;},&quot;thumbnail&quot;:&quot;https:\/\/cdn4.cnet.com\/img\/XTHaIZ7ZBuXvKPKB5niFqcP_23M=\/fit-in\/194x109\/2017\/10\/23\/00597069-4f14-41dd-b1f1-e7bc413d4e17\/screen-problems-2405-001.jpg&quot;,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/es\/videos\/manifest\/la-pantalla-de-pixel-2-xl-la-llave-maestra-de-amazon-y-el-inminente-iphone-x.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/10\/27\/1082906179568\/es_lasemana27october_1247416_740.mp4&quot;,&quot;selector&quot;:&quot;\/es\/videos\/selector\/la-pantalla-de-pixel-2-xl-la-llave-maestra-de-amazon-y-el-inminente-iphone-x\/&quot;},{&quot;id&quot;:&quot;ae23b111-1e88-4edd-b1b5-dfed3e0cb061&quot;,&quot;title&quot;:&quot;Se consolida el hogar inteligente y aparece el fallo KRACK&quot;,&quot;description&quot;:&quot;[La semana en CNET en Espa\u00f1ol #159] Esta semana hablamos de la nueva plataforma de Samsung para el Internet de las Cosas, de la vulnerabilidad KRACK y de los nuevos tel\u00e9fonos en el mercado.&quot;,&quot;slug&quot;:&quot;la-semana-oct-19-cnet-espanol&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;duration&quot;:691,&quot;hasCaptions&quot;:true,&quot;mpxId&quot;:1077887555736,&quot;mpxRefId&quot;:&quot;H4gkX0JjbU6b4gxZOkirySjFp3Z845dA&quot;,&quot;ratingVChip&quot;:&quot;&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;6a9b3b6b-575a-4b66-b4b2-4aedee01be6d&quot;,&quot;firstName&quot;:&quot;Gabriel&quot;,&quot;lastName&quot;:&quot;Sama&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;b45f7536-5ba2-40d8-a054-40341b279649&quot;,&quot;title&quot;:[&quot;La semana&quot;]},&quot;image&quot;:{&quot;id&quot;:&quot;d704b38b-cafe-414b-879b-459dd712796c&quot;,&quot;name&quot;:&quot;zte-axon-m-9755-024&quot;,&quot;filename&quot;:&quot;zte-axon-m-9755-024.jpg&quot;,&quot;path&quot;:&quot;https:\/\/cnet4.cbsistatic.com\/img\/VAqXY-db6xzcKly6P5BNqbaHpQw=\/2017\/10\/20\/d704b38b-cafe-414b-879b-459dd712796c\/zte-axon-m-9755-024.jpg&quot;,&quot;size&quot;:87148,&quot;height&quot;:900,&quot;width&quot;:1600,&quot;dateCreated&quot;:{&quot;date&quot;:&quot;2017-10-20 16:33:13&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;dateUpdated&quot;:{&quot;date&quot;:&quot;2017-10-20 16:33:13&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;needsModeration&quot;:0,&quot;mimeType&quot;:&quot;image\/jpeg&quot;,&quot;deleted&quot;:0,&quot;preferred&quot;:0,&quot;watermark&quot;:0,&quot;alt&quot;:&quot;zte-axon-m-9755-024&quot;},&quot;thumbnail&quot;:&quot;https:\/\/cdn3.cnet.com\/img\/ReV56T1ZCShd3YWImeR2IWEqAXU=\/fit-in\/194x109\/2017\/10\/20\/d704b38b-cafe-414b-879b-459dd712796c\/zte-axon-m-9755-024.jpg&quot;,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/es\/videos\/manifest\/la-semana-oct-19-cnet-espanol.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/10\/20\/1077887555736\/semana_oct19_1241505_740.mp4&quot;,&quot;selector&quot;:&quot;\/es\/videos\/selector\/la-semana-oct-19-cnet-espanol\/&quot;},{&quot;id&quot;:&quot;4cb73b8d-1b2f-40ef-bb98-6b093198c681&quot;,&quot;title&quot;:&quot;Un nuevo Kindle y se asoman las nuevas gafas VR de Oculus&quot;,&quot;description&quot;:&quot;[La semana en CNET en Espa\u00f1ol #158] Esta semana, lleg\u00f3 el Kindle Oasis impermeable, se anunciaron las Oculus Go y Santa Cruz para realidad virtual y hubo un problemita con la Google Home Mini.&quot;,&quot;slug&quot;:&quot;un-nuevo-kindle-y-nuevas-gafas-vr-de-oculus-se-asoman&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;duration&quot;:422,&quot;hasCaptions&quot;:true,&quot;mpxId&quot;:1072264259697,&quot;mpxRefId&quot;:&quot;8RTAYZ4ou1BgXXiybOYiclkJ6avdl6SM&quot;,&quot;ratingVChip&quot;:&quot;&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;272ff2eb-03d3-4e24-9b55-09f4633368f9&quot;,&quot;firstName&quot;:&quot;Mariana&quot;,&quot;lastName&quot;:&quot;Marcaletti&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;b45f7536-5ba2-40d8-a054-40341b279649&quot;,&quot;title&quot;:[&quot;La semana&quot;]},&quot;image&quot;:{&quot;id&quot;:&quot;4514916c-88c7-4c00-8324-9d522e0b3047&quot;,&quot;name&quot;:&quot;kindle-oasis-covers&quot;,&quot;filename&quot;:&quot;kindle-oasis-covers.jpg&quot;,&quot;path&quot;:&quot;https:\/\/cnet4.cbsistatic.com\/img\/el7STcxt2T02OoIFWp08KB2D1Bk=\/2017\/10\/05\/4514916c-88c7-4c00-8324-9d522e0b3047\/kindle-oasis-covers.jpg&quot;,&quot;caption&quot;:&quot;&lt;p>The optional covers start at $40 and come in nylon or leather.&lt;\/p>&quot;,&quot;size&quot;:4432570,&quot;height&quot;:3024,&quot;width&quot;:4032,&quot;dateCreated&quot;:{&quot;date&quot;:&quot;2017-10-05 19:52:22&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;dateUpdated&quot;:{&quot;date&quot;:&quot;2017-10-05 19:53:38&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;startDate&quot;:{&quot;date&quot;:&quot;2017-10-11 13:00:00&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;needsModeration&quot;:0,&quot;mimeType&quot;:&quot;image\/jpeg&quot;,&quot;deleted&quot;:0,&quot;preferred&quot;:0,&quot;watermark&quot;:1,&quot;credits&quot;:&quot;David Carnoy\/CNET&quot;,&quot;alt&quot;:&quot;kindle-oasis-covers&quot;},&quot;thumbnail&quot;:&quot;https:\/\/cdn3.cnet.com\/img\/vDQrwxSq2oDqDHdtnPLwD_eJR98=\/fit-in\/194x109\/2017\/10\/05\/4514916c-88c7-4c00-8324-9d522e0b3047\/kindle-oasis-covers.jpg&quot;,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/es\/videos\/manifest\/un-nuevo-kindle-y-nuevas-gafas-vr-de-oculus-se-asoman.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/10\/13\/1072264259697\/es_lasemana12_oct_1235274_740.mp4&quot;,&quot;selector&quot;:&quot;\/es\/videos\/selector\/un-nuevo-kindle-y-nuevas-gafas-vr-de-oculus-se-asoman\/&quot;},{&quot;id&quot;:&quot;09051611-4cd7-4384-a459-b4a1050b5c1c&quot;,&quot;title&quot;:&quot;Google Pixel 2 y lo que nos dej\u00f3 la temporada de s\u00faper tel\u00e9fonos&quot;,&quot;description&quot;:&quot;[La semana en CNET en Espa\u00f1ol #157] La gigante de las b\u00fasquedas se anima con todo al hardware, y sus tel\u00e9fonos marcan el fin de una \u00e9poca de grandes anuncios.&quot;,&quot;slug&quot;:&quot;google-pixel-2-lo-que-nos-dejo-la-temporada-de-super-telefonos&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;duration&quot;:598,&quot;hasCaptions&quot;:true,&quot;mpxId&quot;:1064365123530,&quot;mpxRefId&quot;:&quot;Us3jKld5gPd3TfSG9QLLbD5jw_vdMyds&quot;,&quot;ratingVChip&quot;:&quot;&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;272ff2eb-03d3-4e24-9b55-09f4633368f9&quot;,&quot;firstName&quot;:&quot;Mariana&quot;,&quot;lastName&quot;:&quot;Marcaletti&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;b45f7536-5ba2-40d8-a054-40341b279649&quot;,&quot;title&quot;:[&quot;La semana&quot;]},&quot;image&quot;:{&quot;id&quot;:&quot;d077c3c0-c88f-492f-a8a2-8b043af04f0e&quot;,&quot;name&quot;:&quot;100417-google-pixel-2-7126&quot;,&quot;filename&quot;:&quot;100417-google-pixel-2-7126.jpg&quot;,&quot;path&quot;:&quot;https:\/\/cnet4.cbsistatic.com\/img\/BNbeNYmhimN2Z_KulzpEpn0l7AI=\/2017\/10\/05\/d077c3c0-c88f-492f-a8a2-8b043af04f0e\/100417-google-pixel-2-7126.jpg&quot;,&quot;size&quot;:52547,&quot;height&quot;:467,&quot;width&quot;:830,&quot;dateCreated&quot;:{&quot;date&quot;:&quot;2017-10-05 23:35:43&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;dateUpdated&quot;:{&quot;date&quot;:&quot;2017-10-05 23:35:43&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;needsModeration&quot;:0,&quot;mimeType&quot;:&quot;image\/jpeg&quot;,&quot;deleted&quot;:0,&quot;preferred&quot;:0,&quot;watermark&quot;:0,&quot;alt&quot;:&quot;100417-google-pixel-2-7126&quot;},&quot;thumbnail&quot;:&quot;https:\/\/cdn2.cnet.com\/img\/5-e1P5u3K43hFHiSjBjhdB3f1lI=\/fit-in\/194x109\/2017\/10\/05\/d077c3c0-c88f-492f-a8a2-8b043af04f0e\/100417-google-pixel-2-7126.jpg&quot;,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/es\/videos\/manifest\/google-pixel-2-lo-que-nos-dejo-la-temporada-de-super-telefonos.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/10\/06\/1064365123530\/semana_oct5_1229769_740.mp4&quot;,&quot;selector&quot;:&quot;\/es\/videos\/selector\/google-pixel-2-lo-que-nos-dejo-la-temporada-de-super-telefonos\/&quot;},{&quot;id&quot;:&quot;4bb8f3fd-304c-495e-8b83-57fcea47b89b&quot;,&quot;title&quot;:&quot;La avalancha de productos de Amazon, y tuits de 280 caracteres&quot;,&quot;description&quot;:&quot;[La semana en CNET en Espa\u00f1ol #156] Esta semana vimos nuevas bocinas de Amazon; una nueva c\u00e1mara GoPro y Twitter dijo que duplicar\u00e1 el l\u00edmite de caracteres en tuits.&quot;,&quot;slug&quot;:&quot;amazon-nuevos-productos-twitter-280-caracteres&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;duration&quot;:673,&quot;hasCaptions&quot;:true,&quot;mpxId&quot;:1057969219682,&quot;mpxRefId&quot;:&quot;IUOzQ0y6ps_ludp4UH9c1EZFCsJNA7X8&quot;,&quot;ratingVChip&quot;:&quot;&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;272ff2eb-03d3-4e24-9b55-09f4633368f9&quot;,&quot;firstName&quot;:&quot;Mariana&quot;,&quot;lastName&quot;:&quot;Marcaletti&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;b45f7536-5ba2-40d8-a054-40341b279649&quot;,&quot;title&quot;:[&quot;La semana&quot;]},&quot;image&quot;:{&quot;id&quot;:&quot;194498de-a074-4687-ab0d-d880d5ee05de&quot;,&quot;name&quot;:&quot;amazon-spot-1&quot;,&quot;filename&quot;:&quot;amazon-spot-1.jpg&quot;,&quot;path&quot;:&quot;https:\/\/cnet4.cbsistatic.com\/img\/MLV0Q7ERz3liDf123UtGhwIuMjU=\/2017\/09\/28\/194498de-a074-4687-ab0d-d880d5ee05de\/amazon-spot-1.jpg&quot;,&quot;size&quot;:850748,&quot;height&quot;:1080,&quot;width&quot;:1920,&quot;dateCreated&quot;:{&quot;date&quot;:&quot;2017-09-28 05:39:36&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;dateUpdated&quot;:{&quot;date&quot;:&quot;2017-09-28 05:39:36&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;needsModeration&quot;:0,&quot;mimeType&quot;:&quot;image\/jpeg&quot;,&quot;deleted&quot;:0,&quot;preferred&quot;:0,&quot;watermark&quot;:0,&quot;alt&quot;:&quot;amazon-spot-1&quot;},&quot;thumbnail&quot;:&quot;https:\/\/cdn1.cnet.com\/img\/0t12kUyxiPUjjBEvghADT8bfI1Q=\/fit-in\/194x109\/2017\/09\/28\/194498de-a074-4687-ab0d-d880d5ee05de\/amazon-spot-1.jpg&quot;,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/es\/videos\/manifest\/amazon-nuevos-productos-twitter-280-caracteres.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/09\/29\/1057969219682\/es_lasemana_28septiembre_1223993_740.mp4&quot;,&quot;selector&quot;:&quot;\/es\/videos\/selector\/amazon-nuevos-productos-twitter-280-caracteres\/&quot;}]">
+ <div>
+ <div> <svg><use aria-hidden="false" xlink:href="#play"></use></svg><svg><use aria-hidden="false" xlink:href="#pause"></use></svg><figure><img alt="" height="96" src="https://cdn1.cnet.com/img/mWcZaiA8Ngv61OQcpdoh6Ra9nY0=/170x96/2017/11/13/70540d7a-cbc5-4563-ab86-b5549ef68168/oneplus-5t-product-21.jpg" width="170"></img></figure></div>
+ <p><span>
+ <span>Reproduciendo:</span> <span>Mira esto:</span> </span> Google Assistant mejora, hay más cambios en Twitter y... </p>
+ <p><span>
+ 8:09 <svg><use aria-hidden="false" xlink:href="#video"></use></svg></span> </p>
+ </div>
+ </div>
+
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnet-svg-classes/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnet-svg-classes/source.html
new file mode 100644
index 000000000..c71419fe9
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnet-svg-classes/source.html
@@ -0,0 +1,662 @@
+<!DOCTYPE html>
+<html lang="es" xmlns:og="http://opengraphprotocol.org/schema/" xmlns:fb="http://ogp.me/ns/fb#" class="">
+
+<head>
+ <!-- MacLeod loves you! -->
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
+ <meta content="es_US" http-equiv="Content-Language"/>
+ <meta name="theme-color" content="#B80000"/>
+ <meta name="apple-mobile-web-app-capable" content="yes"/>
+ <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/>
+ <title>Twitter Lite se estrena en México, Venezuela y otros nueve países - CNET en Español</title>
+ <meta name="description" content="Twitter Lite llega a 11 países de América Latina, para ayudar a los usuarios con mala señal de sus redes móviles."/>
+ <link rel="canonical" href="https://www.cnet.com/es/noticias/twitter-lite-america-latina/"/>
+ <meta property="al:ios:app_name" content="CNET"/>
+ <meta property="al:ios:app_store_id" content="383989837"/>
+ <meta property="al:ios:url" content="https://www.cnet.com/es/noticias/twitter-lite-america-latina/?search=toapp"/>
+ <link rel="search" type="application/opensearchdescription+xml" title="CNET Search" href="https://www.cnet.com/opensearch.xml"/>
+ <meta property="og:site_name" content="CNET en Español"/>
+ <meta property="og:title" content="Twitter Lite se estrena en México, Venezuela y otros nueve países"/>
+ <meta property="og:description" content="Twitter Lite llega a 11 países de América Latina, para ayudar a los usuarios con mala señal de sus redes móviles."/>
+ <meta property="og:image" content="https://cdn1.cnet.com/img/JumVcu1ZSLtPP8ui0UWaSlgi5RU=/670x503/2017/12/01/b36ce794-e0b8-495c-a198-184923a8f4e9/twitter-lite.jpg"/>
+ <meta property="og:type" content="Article"/>
+ <meta property="og:url" content="https://www.cnet.com/es/noticias/twitter-lite-america-latina/"/>
+ <meta property="fb:app_id" content="16995676698"/>
+ <meta property="fb:admins" content="100001036810388"/>
+ <meta property="article:publisher" content="https://facebook.com/CNETenEspanol"/>
+ <meta property="article:author" content="https://www.facebook.com/profile.php?id=cesarsalza"/>
+ <meta property="fb:pages" content="145802748959745"/>
+ <meta content="30261067" property="twitter:account_id"/>
+ <meta content="summary" property="twitter:card"/>
+ <meta content="https://www.cnet.com/es/noticias/twitter-lite-america-latina/" property="twitter:url"/>
+ <meta content="Twitter Lite se estrena en 11 países de América Latina" property="twitter:title"/>
+ <meta content="Twitter Lite llega a 11 países de América Latina, para ayudar a los usuarios con mala señal de sus redes móviles." property="twitter:description"/>
+ <meta content="https://cdn1.cnet.com/img/JumVcu1ZSLtPP8ui0UWaSlgi5RU=/670x503/2017/12/01/b36ce794-e0b8-495c-a198-184923a8f4e9/twitter-lite.jpg" property="twitter:image"/>
+ <meta content="670" property="twitter:image:width"/>
+ <meta content="503" property="twitter:image:height"/>
+ <meta content="@CNET_Es" property="twitter:site"/>
+ <meta content="@cesarsalza" property="twitter:creator"/>
+ <meta content="I1kHyfzmmG1fEVjq8GBUgkfCHc6PNtxce1_VyUuJhws" name="google-site-verification"/>
+ <meta content="wNWLoFvk5wsdZQ-u75uCNiaHNa7FLFmNtH2t7dZbXmQ" name="google-site-verification"/>
+ <meta content="47524839a64b83c951afca9ef6c838e0" name="p:domain_verify"/>
+ <meta content="CNET en español, análisis de productos, comparaciones de precios, guías de compras, y noticias sobre tecnología" name="msapplication-tooltip"/>
+ <meta content="https://www.cnet.com/es/" name="msapplication-starturl"/>
+ <meta content="width=1024;height=768" name="msapplication-window"/>
+ <meta content="#424244" name="msapplication-navbutton-color"/>
+ <meta content="name=Hogar; action-uri=https://www.cnet.com/es/; icon-uri=https://www.cnet.com/favicon.ico" name="msapplication-task"/>
+ <meta content="name=Descargas; action-uri=http://download.cnet.com/; icon-uri=http://download.cnet.com/favicon.ico" name="msapplication-task"/>
+ <meta content="name=Noticias; action-uri=https://www.cnet.com/es/noticias/; icon-uri=https://www.cnet.com/favicon.ico" name="msapplication-task"/>
+ <meta content="name=Analisis; action-uri=https://www.cnet.com/es/analisis/; icon-uri=https://www.cnet.com/favicon.ico" name="msapplication-task"/>
+ <meta content="name=Videos; action-uri=https://www.cnet.com/es/videos/; icon-uri=https://www.cnet.com/favicon.ico" name="msapplication-task"/>
+ <meta content="name=Forums; action-uri=http://forums.cnet.com/; icon-uri=https://www.cnet.com/favicon.ico" name="msapplication-task"/>
+ <link rel="manifest" href="/manifest.json"/>
+ <meta name="viewport" content="width=device-width"/>
+ <meta name="news_keywords" content="twitter, google, mobile apps, networking"/>
+ <link rel="amphtml" href="https://www.cnet.com/es/google-amp/noticias/twitter-lite-america-latina/"/>
+ <meta itemprop="speakable" itemscope="" itemtype="http://schema.org/SpeakableSpecification" itemref="speakablemeta"/>
+ <meta id="speakablemeta" itemprop="cssSelector" content=".speakableText"/>
+ <link rel="stylesheet" href="https://cnet1.cbsistatic.com/fly/css/core/main.desktop-9e4ac49584-rev.css"/>
+ <link rel="stylesheet" href="https://cnet4.cbsistatic.com/fly/css/article/v3/article.desktop-ad70a38a52-rev.css"/>
+ <script async="" type="application/javascript" src="//mtrx.go.sonobi.com/morpheus.cnet.1591.js"></script>
+</head>
+
+<body class="not-logged-in
+ es
+
+
+ noBleed
+
+
+
+ v3Article
+
+" data-cms-edit="{&quot;url&quot;:&quot;http:\/\/cms-beta.cnet.com\/content\/article\/87f5b8c3-cb62-4fd5-b3e0-3ce877bcdaea\/version\/es&quot;}"> <svg class="svg-symbol"><symbol id="stars-full" viewBox="0 0 14 14"><polygon points="7,0 8.8,5.1 14,5.3 9.9,8.7 11.3,14 7,11 2.7,14 4.1,8.7 0,5.3 5.2,5.1"></polygon></symbol><symbol id="stars-half" viewBox="0 0 14 14"><polygon points="7.1,0 7.1,11 2.7,14 4.1,8.7 0,5.3 5.2,5.1"></polygon></symbol><symbol id="play" viewBox="0 0 26.6 32"><path d="M0,2.6c0-2.4,1.6-3.3,3.7-2L25,13.7c2,1.3,2,3.2,0,4.5L3.7,31.4c-2,1.3-3.7,0.3-3.7-2C0,29.4,0,2.6,0,2.6z"></path></symbol><symbol id="playOverlay" viewBox="0 0 70 70"><g><circle cx="35" cy="35" r="33"></circle></g><path class="overlayBorder" d="M35,2c18.2,0,33,14.8,33,33S53.2,68,35,68S2,53.2,2,35S16.8,2,35,2 M35,0C15.7,0,0,15.7,0,35s15.7,35,35,35
+ s35-15.7,35-35S54.3,0,35,0L35,0z"></path><path class="overlayIcon" d="M24.7,22.6c0-2.2,1.5-3.1,3.4-1.9l19.8,12.2c1.9,1.2,1.9,3,0,4.2L28.1,49.3c-1.9,1.2-3.4,0.3-3.4-1.9
+ C24.7,47.4,24.7,22.6,24.7,22.6z"></path></symbol><symbol id="galleryOverlay" viewBox="0 0 70 70"><g><circle cx="35" cy="35" r="33"></circle></g><path class="overlayBorder" d="M35,2c18.2,0,33,14.8,33,33S53.2,68,35,68S2,53.2,2,35S16.8,2,35,2 M35,0C15.7,0,0,15.7,0,35s15.7,35,35,35
+ s35-15.7,35-35S54.3,0,35,0L35,0z"></path><circle class="overlayIcon" cx="30.5" cy="34.2" r="1.8"></circle><polygon class="overlayIcon" points="21.2,41.3 19.1,41.3 19.1,22.9 45.5,22.9 45.5,25 21.2,25 "></polygon><path class="overlayIcon" d="M48.9,30v15.1h-23V30H48.9 M50.9,28h-27v19.1h27V28L50.9,28z"></path><polygon class="overlayIcon" points="29,42.8 33.1,37.5 35.7,40 40.4,33.6 46.6,42.8 "></polygon></symbol><symbol id="arrow-round" viewBox="0 0 16 28"><g><path d="M0.6,27.4c0.8,0.8,2,0.8,2.8,0l12-12c0.8-0.8,0.8-2,0-2.8l-12-12C3,0.2,2.5,0,2,0C1.5,0,1,0.2,0.6,0.6
+ c-0.8,0.8-0.8,2,0,2.8L11.2,14L0.6,24.6C-0.2,25.4-0.2,26.6,0.6,27.4z"></path></g></symbol><symbol id="allContent" viewBox="0 0 32 32"><g><ellipse cx="4.1" cy="4.1" rx="4.1" ry="4.1"></ellipse><ellipse cx="16" cy="4.1" rx="4.1" ry="4.1"></ellipse><ellipse cx="27.9" cy="4.1" rx="4.1" ry="4.1"></ellipse></g><g><ellipse cx="4.1" cy="16" rx="4.1" ry="4.1"></ellipse><ellipse cx="16" cy="16" rx="4.1" ry="4.1"></ellipse><ellipse cx="27.9" cy="16" rx="4.1" ry="4.1"></ellipse></g><g><ellipse cx="4.1" cy="27.9" rx="4.1" ry="4.1"></ellipse><ellipse cx="16" cy="27.9" rx="4.1" ry="4.1"></ellipse><ellipse cx="27.9" cy="27.9" rx="4.1" ry="4.1"></ellipse></g></symbol><symbol id="video" viewBox="0 0 32 22"><g><path d="M29,2.2c-0.7,0.2-4.6,3-7.9,5.3V2.1C21.1,1,20.1,0,19,0H2.1C1,0,0,1,0,2.1v17.7C0,21,1,22,2.1,22H19c1.2,0,2.1-1,2.1-2.1
+ v-5.9c3.3,2.4,7.4,5.4,8.2,5.6c1.4,0.4,2.7-0.1,2.7-0.1V2.2C32,2.2,30.1,1.8,29,2.2z"></path></g></symbol><symbol id="cnet" viewBox="0 0 180 131.5"><g><rect x="44.2" width="8.1" height="131.5"></rect><path d="M11.1,47.9c0.1-8.3,14.5-8.6,14.5-0.4l0.1,7.1h11V48c0.7-22-37-22-36.7-0.5v37.9c-0.3,21.5,37.5,22,36.8,0v-7.9H25.6v8.5
+ c0,8.2-14.3,8.4-14.5,0V47.5L11.1,47.9z"></path><path d="M73.8,39.3c0,0,1.9-2.8,6.9-5.6c6.4-3.5,12.6,0,11.7-0.4c5,2.2,6.9,7.6,7.3,13.6v44.9h7.1v8.2H88.6l0-53.6
+ c0-7.8-13.2-7.6-13.3,0.4l0-0.4V100H59v-8.2l5.2,0V41.5l-6.1-0.1v-8.2h15.7L73.8,39.3z"></path><path d="M156.1,85.2c0.4,6,2.3,11.4,7.3,13.6c-0.9-0.4,2.5,1.3,5.9,1.2c1.8,0,10.7,0,10.7,0v-8.2c0,0-4.5-0.1-6.9,0
+ c-3,0-5.6-1.4-5.8-5.7l0,0l0-44.5l0-0.1H178v-8.1h-10.7l0-0.1V16h-11.2l0,0L156.1,85.2L156.1,85.2z"></path><path d="M135.9,77.4v8.5c0,8.2-14.4,8.4-14.5,0V68.2l23.6,0c1.1,0,2-0.9,2-2l0-18.2c0.7-22-37-22-36.7-0.5v37.9
+ c-0.3,21.5,37.5,22,36.8,0v-7.9H135.9z M121.4,47.4c0.2-8.2,14.5-8.2,14.5,0.1l0,12.4h-14.4V47.4z"></path></g></symbol><symbol id="photo" viewBox="0 0 32 24"><path d="M30,4h-6c-0.5,0-2.9-4-4-4h-8c-1.1,0-3.6,4-4,4H2C0.9,4,0,4.9,0,6v16c0,1.1,0.9,2,2,2h28c1.1,0,2-0.9,2-2V6
+ C32,4.9,31.1,4,30,4z M16,20.3c-3.9,0-7-3.1-7-7c0-3.9,3.1-7,7-7c3.9,0,7,3.1,7,7C23,17.2,19.9,20.3,16,20.3z M16,19
+ c-3.1,0-5.6-2.5-5.6-5.6c0-3.1,2.5-5.6,5.6-5.6c3.1,0,5.6,2.5,5.6,5.6C21.6,16.5,19.1,19,16,19z"></path></symbol><symbol id="pop-out" viewBox="0 0 32 32"><g><polygon points="25.2,19.9 25.2,27.9 4.1,27.9 4.1,7 12.6,7 12.6,2.7 0,2.7 0,32 29.3,32 29.3,19.9 "></polygon><polygon points="18.6,0 18.6,4.1 25.1,4.1 15.2,14 18.2,16.9 27.9,7.2 27.9,13 32,13 32,0 "></polygon></g></symbol><symbol id="close" viewBox="0 0 28 28"><polygon points="28,1.9 26.1,0 14,12.1 1.9,0 0,1.9 12.1,14 0,26.1 1.9,28 14,15.9 26.1,28 28,26.1 15.9,14 "></polygon></symbol></svg><svg class="svg-symbol"><symbol id="comments" viewBox="0 0 15 15"><polygon points="0,11 12,11 15,15 15,0 0,0"></polygon></symbol><symbol id="copy" viewBox="0 0 16 8"><g><path d="M3.6,5.9C2.6,5.9,1.7,5,1.7,4c0-1,0.8-1.9,1.9-1.9l3.4,0c0.4,0,0.7,0.1,1,0.3c0.8,0.5,1.1,1.5,0.7,2.3l1.8,0
+ C10.9,2.9,9.8,1.1,8,0.5C7.7,0.5,7.3,0.4,7,0.4l-3.4,0C1.6,0.4,0,2,0,4c0,2,1.6,3.6,3.6,3.6h2.3c-0.5-0.5-1-1.1-1.3-1.7H3.6z"></path><path d="M12.4,0.4h-2.3c0.5,0.5,1,1.1,1.3,1.7h1c1,0,1.9,0.8,1.9,1.9c0,1-0.8,1.9-1.9,1.9H9C8,5.9,7.1,5,7.1,4c0-0.2,0-0.5,0.1-0.7
+ l-1.8,0c0,0.2-0.1,0.5-0.1,0.7c0,0.6,0.2,1.3,0.5,1.9C6.4,6.6,7.1,7.2,8,7.5c0.3,0.1,0.7,0.1,1,0.1l3.4,0C14.4,7.6,16,6,16,4
+ C16,2,14.4,0.4,12.4,0.4z"></path></g></symbol><symbol id="email" viewBox="0 0 32 21"><g><polygon points="32,19.5 32,1.3 23.1,10.4"></polygon></g><g><path d="M16.9,13.8L30.4,0h-29l13.5,13.9C15.4,14.4,16.3,14.4,16.9,13.8z"></path></g><g><polygon points="0,1.5 0,19.4 8.7,10.5"></polygon></g><g><path d="M18.3,15.3c-0.7,0.7-1.6,1-2.4,1c-0.9,0-1.7-0.3-2.4-1L10.2,12l-8.8,9h29.2l-8.9-9.2L18.3,15.3z"></path></g><g><polygon points="32,21 32,21 32,21"></polygon></g></symbol><symbol id="facebook" viewBox="0 0 15.2 32"><path d="M15.2,11.1H9.6V7c0-1.2,1.3-1.5,1.9-1.5c0.6,0,3.6,0,3.6,0V0L11,0C5.4,0,4.1,4.1,4.1,6.7v4.4H0v5.6h4.1
+ c0,7.3,0,15.2,0,15.2h5.5c0,0,0-8.1,0-15.2h4.7L15.2,11.1z"></path></symbol><symbol id="googleplus" viewBox="0 0 32 32"><path d="M18.8,1c1.1-0.6,1.6-1,1.6-1H9.9C7.8,0,2,2.4,2,7.9c0,5.5,6,6.7,8.2,6.6C9,16,10,17.4,10.7,18.1
+ c0.7,0.7,0.5,0.9-0.3,0.9C9.7,19,0,19.1,0,26s12.8,7.4,17.1,3.7s3.3-8.9,0-11.2c-3.3-2.3-4.5-3.4-2.4-5.3
+ c2.1-1.8,3.7-3.3,3.7-6.8s-2.8-5.2-2.8-5.2S17.7,1.6,18.8,1z M17.1,25.7c0,3-2.5,4.4-6.8,4.4c-4.3,0-6.6-2.1-6.6-5.4
+ c0-3.2,3.1-4.8,9-4.8C14.3,21.2,17.1,22.7,17.1,25.7z M10.9,13.2c-5.2,0-7.5-12.1-1.4-12.1C14.2,0.9,17.8,13.2,10.9,13.2z
+ M28.1,4V0.1h-2V4h-4v2h4V10h2V6.1H32V4H28.1z"></path></symbol><symbol id="linkedin" viewBox="0 0 31.9 32"><path d="M24,8c-5.1,0.1-7.7,3.8-8,4V8h-6v24h6V18c0-0.5,1.3-4.6,6-4c2.5,0.2,3.9,3.5,4,4v14l6,0V15.4
+ C31.7,13,30.5,8.1,24,8z M0,32h6V8H0V32z M3,0C1.3,0,0,1.3,0,3s1.3,3,3,3c1.7,0,3-1.3,3-3S4.7,0,3,0z"></path></symbol><symbol id="more" viewBox="0 0 32 7.3"><circle cx="3.7" cy="3.7" r="3.7"></circle><circle cx="16" cy="3.7" r="3.7"></circle><circle cx="28.3" cy="3.7" r="3.7"></circle></symbol><symbol id="pinterest" viewBox="0 0 24.9 32"><path d="M13.2,0C4.4,0,0,6.3,0,11.5c0,3.2,1.2,6,3.8,7c0.4,0.2,0.8,0,0.9-0.5c0.1-0.3,0.3-1.1,0.4-1.5
+ c0.1-0.5,0.1-0.6-0.3-1c-0.7-0.9-1.2-2-1.2-3.6c0-4.6,3.5-8.8,9.1-8.8c5,0,7.7,3,7.7,7c0,5.3-2.4,9.8-5.9,9.8
+ c-1.9,0-3.4-1.6-2.9-3.5c0.6-2.3,1.6-4.8,1.6-6.5c0-1.5-0.8-2.8-2.5-2.8c-2,0-3.6,2-3.6,4.8c0,1.7,0.6,2.9,0.6,2.9s-2,8.5-2.4,10
+ c-0.7,3-0.1,6.6-0.1,7c0,0.2,0.3,0.3,0.4,0.1c0.2-0.2,2.5-3.1,3.3-6c0.2-0.8,1.3-5.1,1.3-5.1c0.6,1.2,2.5,2.3,4.5,2.3
+ c5.9,0,10-5.4,10-12.6C24.9,5.1,20.3,0,13.2,0z"></path></symbol><symbol id="reddit" viewBox="0 0 32 26.7"><path d="M22.9,14.5C23,14.7,23,15,23,15.2c0,0.4-0.2,0.9-0.4,1.2c-0.3,0.3-0.6,0.6-1,0.7h0c0,0,0,0,0,0c0,0,0,0,0,0
+ c-0.2,0.1-0.4,0.1-0.6,0.1c-0.5,0-0.9-0.2-1.3-0.5c-0.4-0.3-0.6-0.7-0.7-1.2c0,0,0,0,0,0c0,0,0,0,0,0h0c0-0.1,0-0.2,0-0.4
+ c0-0.4,0.1-0.8,0.4-1.2c0.2-0.3,0.6-0.6,1-0.7c0,0,0,0,0,0c0,0,0,0,0,0c0.2-0.1,0.5-0.1,0.7-0.1c0.4,0,0.8,0.1,1.2,0.4
+ C22.5,13.8,22.7,14.1,22.9,14.5C22.9,14.5,22.9,14.5,22.9,14.5C22.9,14.5,22.9,14.5,22.9,14.5L22.9,14.5z M21.6,19.7
+ c-0.2-0.1-0.4-0.2-0.6-0.2c-0.2,0-0.3,0-0.5,0.1c-1.4,0.8-3.1,1.3-4.7,1.3c-1.2,0-2.5-0.3-3.6-0.8l0,0l0,0
+ c-0.2-0.1-0.4-0.2-0.6-0.4c-0.1-0.1-0.2-0.1-0.3-0.2c-0.1-0.1-0.3-0.1-0.4-0.1c-0.1,0-0.2,0-0.4,0.1c0,0,0,0,0,0
+ c-0.2,0.1-0.3,0.2-0.4,0.4c-0.1,0.2-0.2,0.4-0.2,0.6c0,0.2,0,0.3,0.1,0.5c0.1,0.1,0.2,0.3,0.4,0.4c1.6,1.1,3.5,1.6,5.4,1.6
+ c1.7,0,3.4-0.4,4.9-1.1l0,0l0,0c0.2-0.1,0.5-0.2,0.7-0.4c0.1-0.1,0.2-0.2,0.4-0.3c0.1-0.1,0.2-0.3,0.2-0.4c0-0.1,0-0.2,0-0.2
+ c0-0.1,0-0.3-0.1-0.4C21.9,19.9,21.8,19.8,21.6,19.7L21.6,19.7z M10.4,17.1C10.4,17.1,10.4,17.1,10.4,17.1
+ c0.2,0.1,0.4,0.1,0.6,0.1c0.5,0,1-0.2,1.4-0.6c0.4-0.3,0.6-0.8,0.6-1.4c0,0,0,0,0,0c0,0,0-0.1,0-0.1c0-0.6-0.3-1-0.6-1.4
+ c-0.4-0.3-0.9-0.6-1.4-0.6c-0.1,0-0.3,0-0.4,0c0,0,0,0,0,0h0c-0.7,0.1-1.3,0.7-1.5,1.4c0,0,0,0,0,0C9,14.8,9,15,9,15.2
+ c0,0.4,0.1,0.9,0.4,1.2C9.6,16.7,10,17,10.4,17.1C10.4,17.1,10.4,17.1,10.4,17.1L10.4,17.1z M32,12.1L32,12.1c0,0.1,0,0.1,0,0.2
+ c0,0.8-0.2,1.5-0.7,2.2c-0.4,0.6-0.9,1.1-1.5,1.4c0,0.3,0.1,0.6,0.1,0.9c0,1.7-0.6,3.3-1.6,4.6v0h0c-1.9,2.5-4.7,3.9-7.6,4.7l0,0
+ c-1.5,0.4-3.1,0.6-4.7,0.6c-2.4,0-4.7-0.4-6.9-1.3v0h0c-2.3-0.9-4.5-2.4-5.8-4.6c-0.7-1.2-1.1-2.5-1.1-3.9c0-0.3,0-0.6,0.1-0.9
+ c-0.6-0.3-1.1-0.8-1.5-1.4C0.3,13.9,0,13.2,0,12.4v0c0-1.1,0.5-2.1,1.2-2.8c0.7-0.7,1.7-1.2,2.8-1.2h0c0.1,0,0.2,0,0.3,0
+ c0.5,0,1.1,0.1,1.6,0.3l0,0h0C6.3,8.8,6.8,9,7.1,9.3c0.1-0.1,0.3-0.1,0.4-0.2c2.3-1.4,5-1.9,7.6-2c0-1.3,0.2-2.7,0.8-3.8
+ c0.5-1,1.4-1.8,2.5-2l0,0h0c0.4-0.1,0.8-0.1,1.2-0.1c1.1,0,2.2,0.3,3.2,0.7c0.5-0.7,1.1-1.2,1.9-1.5l0,0l0,0
+ C25.3,0.1,25.8,0,26.2,0c0.5,0,1,0.1,1.5,0.3v0c0,0,0,0,0,0c0,0,0,0,0,0C28.4,0.6,29,1,29.4,1.6C29.8,2.2,30,3,30,3.7
+ c0,0.1,0,0.3,0,0.4l0,0c0,0,0,0,0,0c-0.1,1-0.6,1.8-1.2,2.4c-0.7,0.6-1.6,1-2.5,1c-0.1,0-0.3,0-0.4,0c-0.9-0.1-1.8-0.5-2.4-1.2
+ c-0.6-0.7-1-1.5-1-2.5c0,0,0-0.1,0-0.1C21.6,3.3,20.7,3,19.8,3c-0.1,0-0.3,0-0.4,0h0c-0.7,0.1-1.3,0.5-1.6,1.1v0
+ c-0.5,0.9-0.6,1.9-0.6,3c2.6,0.2,5.2,0.8,7.4,2.1h0l0,0c0,0,0.1,0.1,0.2,0.1C25,9.2,25.2,9,25.4,8.9c0.7-0.5,1.5-0.7,2.3-0.7
+ c0.4,0,0.7,0,1.1,0.1h0l0,0c0,0,0,0,0,0c0.8,0.2,1.6,0.7,2.2,1.3C31.5,10.4,31.9,11.2,32,12.1L32,12.1L32,12.1z M24.4,3.6
+ c0,0,0,0.1,0,0.1v0c0,0.4,0.2,0.9,0.6,1.2c0.3,0.3,0.8,0.5,1.2,0.5h0c0,0,0.1,0,0.1,0c0.4,0,0.9-0.2,1.2-0.5
+ C27.8,4.6,28,4.2,28,3.8v0c0,0,0-0.1,0-0.1c0-0.5-0.2-0.9-0.6-1.2c-0.3-0.3-0.8-0.5-1.2-0.5c-0.1,0-0.3,0-0.4,0.1h0l0,0
+ c-0.4,0.1-0.7,0.3-1,0.6C24.6,2.9,24.4,3.2,24.4,3.6L24.4,3.6z M5.4,10.5c-0.3-0.2-0.7-0.3-1.1-0.3c-0.1,0-0.1,0-0.2,0h0l0,0
+ c-0.5,0-1,0.2-1.4,0.6c-0.4,0.4-0.6,0.8-0.7,1.4v0l0,0c0,0,0,0.1,0,0.1c0,0.3,0.1,0.6,0.3,0.9c0.1,0.2,0.3,0.4,0.5,0.6
+ C3.4,12.6,4.3,11.5,5.4,10.5L5.4,10.5z M27.8,16.9c0-1.2-0.4-2.3-1.1-3.2c-1.3-1.9-3.4-3.1-5.6-3.8l0,0c-0.4-0.1-0.8-0.2-1.3-0.3
+ c-1.3-0.3-2.6-0.4-3.9-0.4c-1.7,0-3.5,0.3-5.2,0.8c-2.2,0.7-4.3,1.9-5.6,3.8v0c-0.7,0.9-1.1,2.1-1.1,3.3c0,0.4,0.1,0.9,0.2,1.3
+ l0,0c0.2,0.9,0.7,1.8,1.3,2.5c0.6,0.7,1.4,1.3,2.2,1.8c0.2,0.1,0.4,0.2,0.5,0.3c2.3,1.3,5,1.9,7.6,1.9c0.4,0,0.9,0,1.3,0
+ c2.7-0.2,5.3-1,7.5-2.6v0c0.7-0.5,1.3-1.1,1.8-1.8c0.5-0.7,0.9-1.5,1-2.3v0C27.8,17.5,27.8,17.2,27.8,16.9L27.8,16.9z M29.9,12.3
+ c0-0.3-0.1-0.6-0.2-0.8l0,0l0,0c-0.2-0.4-0.5-0.7-0.8-0.9c-0.4-0.2-0.8-0.3-1.2-0.3c-0.4,0-0.7,0.1-1.1,0.3c1.1,0.9,2,2,2.6,3.3
+ c0.2-0.2,0.4-0.4,0.5-0.6C29.8,13,29.9,12.6,29.9,12.3L29.9,12.3z M29.9,12.3"></path></symbol><symbol id="stumble" viewBox="0 0 32 24"><path d="M17.8,8.6l2.1,1.5l3.3-1.5l0-1.6C23,3.3,19.9,0,16,0c-3.8,0-7,3.2-7.1,6.9v9.9c0,0.9-0.8,1.6-1.7,1.6
+ c-0.9,0-1.9-0.4-1.9-1.3V12H0c0,0,0,5.1,0,5.1C0,20.9,3.2,24,7.1,24c3.9,0,7.1-3.1,7.1-6.9V6.9c0-0.9,0.8-1.7,1.8-1.7
+ c0.9,0,1.8,0.8,1.8,1.7V8.6z M26.7,12v5.1c0,0.9-1,1.5-1.9,1.5c-0.9,0-1.7-0.7-1.7-1.6l0-5l-3.3,1.6L17.8,12v5.1
+ c0,3.8,3.2,6.9,7.1,6.9c3.9,0,7.1-3.1,7.1-6.9c0,0,0-5.1,0-5.1H26.7z"></path></symbol><symbol id="tumblr" viewBox="0 0 20.9 32"><path d="M7,0C6.8,1.8,6.7,2.4,6.1,3.6C5.5,4.7,4.7,6.2,3.7,7.1C2.8,7.9,1.4,8.7,0,9.2v5.5h4.1v8.9
+ c0,1.6,0.2,2.8,0.5,3.6c0.3,0.8,0.9,1.6,1.8,2.4c0.9,0.7,2.8,1.7,2.8,1.7s1.6,0.6,3.2,0.6c1.4,0,2.7-0.1,4-0.4c1.2-0.3,3-1,4.6-1.7
+ v-5.5c-1.8,1.1-4,1.9-5.8,1.9c-1,0-1.9-0.2-2.7-0.7c-0.6-0.3-1-0.8-1.2-1.4c-0.2-0.6-0.7-1.9-0.7-3.9v-5.7H19V8.6h-8.5V0H7z"></path></symbol><symbol id="twitter" viewBox="0 0 32.5 28.4"><path d="M32.5,3.4c-0.5,0.3-2.2,1-3.7,1.1c1-0.6,2.4-2.4,2.8-3.9c-0.9,0.6-3.1,1.6-4.2,1.6c0,0,0,0,0,0
+ C26.1,0.9,24.4,0,22.5,0c-3.7,0-6.7,3.2-6.7,7.2c0,0.6,0.1,1.1,0.2,1.6h0C11,8.7,5.1,6,1.8,1.3c-2,3.8-0.3,8,2,9.5
+ c-0.8,0.1-2.2-0.1-2.9-0.8c0,2.5,1.1,5.8,5.2,7c-0.8,0.5-2.2,0.3-2.8,0.2c0.2,2.1,3,4.9,6,4.9c-1.1,1.3-4.7,3.8-9.3,3
+ c3.1,2,6.7,3.2,10.5,3.2c10.8,0,19.2-9.4,18.7-21.1c0,0,0,0,0,0c0,0,0-0.1,0-0.1c0,0,0-0.1,0-0.1C30.2,6.4,31.5,5.1,32.5,3.4z"></path></symbol><symbol id="yahoo" viewBox="-133 141 30.3 20"><path d="M-107.7,146.7c0,0,1.2-0.7,2.1-0.7s2.1,0,2.1,0l0.8-1.9h-12.9l0.1,1.4l0.8,0.4l3.3,0.1c0,0,0.2,0.7-0.3,1.1
+ c-0.6,0.4-5.4,4.7-5.4,4.7l-6.2-7.5c0,0,0.1-0.2,1-0.2c0.9,0,3.5,0,3.5,0V141H-133v3.1c0,0,1.8,0,2.7,0c0.9,0,1.9,1,2.8,1.8
+ c0.9,0.9,7.1,7.4,7.1,7.4v5.4c0,0-0.5,0.8-2.2,0.8c-1.8,0-2.5,0.1-2.5,0.1v1.4h14.1v-1c0,0-0.4-0.6-0.8-0.6h-3.4
+ c-0.4,0-0.5-0.5-0.5-1.1c0-0.6,0-4.7,0-4.7L-107.7,146.7z"></path></symbol><symbol id="sms" viewBox="0 0 72 72"><path d="M38,58 L24,72 L24,58 L9.99237268,58 C4.47373763,58 0,53.5215031 0,48.0046567 L0,15.9953433 C0,10.4750676 4.47671884,
+ 6 9.99237268,6 L62.0076273,6 C67.5262624,6 72,10.4784969 72,15.9953433 L72,48.0046567 C72,53.5249324 67.5232812,58 62.0076273,
+ 58 L38,58 Z M9.9,28.475 C9.9,33.075 13.825,33.575 16.825,33.925 C18.675,34.125 20.2,34.475 20.2,35.725 C20.2,37.15 19,37.7 16.875,
+ 37.7 C15.275,37.7 14.15,37.05 13.65,35.975 C13.325,35.225 13.05,35.1 12.325,35.375 L10.5,36.025 C9.8,36.275 9.6,36.6 9.85,37.325 C10.825,
+ 39.95 12.975,41.375 16.875,41.375 C21.475,41.375 24.3,39.075 24.3,35.65 C24.3,31.25 20.75,30.5 17.825,30.15 C15.8,29.925 14.075,29.65 14.075,
+ 28.3 C14.075,27.1 14.975,26.575 17.025,26.575 C18.6,26.575 19.45,27.175 19.975,28.225 C20.35,28.9 20.625,29.025 21.275,28.725 L23.175,
+ 27.9 C23.875,27.6 24.075,27.25 23.725,26.55 C22.575,24.1 20.675,22.875 17.025,22.875 C12.35,22.875 9.9,25.25 9.9,28.475 Z M43.875,23.25 L42.1,
+ 23.25 C41.325,23.25 41.125,23.375 40.75,24.025 L36.15,32.45 L31.575,24 C31.225,23.4 30.975,23.25 30.15,23.25 L28.525,23.25 C27.775,23.25 27.5,
+ 23.5 27.5,24.25 L27.5,40 C27.5,40.75 27.775,41 28.525,41 L30.3,41 C31.05,41 31.3,40.75 31.3,40 L31.3,34.35 C31.3,32.675 31.15,31.25 30.55,28.7 L30.775,
+ 28.7 C31.275,30.525 31.825,32 32.625,33.35 L34.425,36.525 C34.725,37.1 34.95,37.25 35.575,37.25 L36.725,37.25 C37.35,37.25 37.575,37.05 37.85,
+ 36.525 L39.625,33.35 C40.375,32 41.075,30.4 41.6,28.7 L41.825,28.7 C41.2,31.15 41,32.8 41,34.325 L41,40 C41,40.75 41.25,41 42,41 L43.875,41 C44.65,
+ 41 44.9,40.75 44.9,40 L44.9,24.25 C44.9,23.5 44.65,23.25 43.875,23.25 Z M48.325,28.475 C48.325,33.075 52.25,33.575 55.25,33.925 C57.1,34.125 58.625,
+ 34.475 58.625,35.725 C58.625,37.15 57.425,37.7 55.3,37.7 C53.7,37.7 52.575,37.05 52.075,35.975 C51.75,35.225 51.475,35.1 50.75,35.375 L48.925,36.025 C48.225,
+ 36.275 48.025,36.6 48.275,37.325 C49.25,39.95 51.4,41.375 55.3,41.375 C59.9,41.375 62.725,39.075 62.725,35.65 C62.725,31.25 59.175,30.5 56.25,
+ 30.15 C54.225,29.925 52.5,29.65 52.5,28.3 C52.5,27.1 53.4,26.575 55.45,26.575 C57.025,26.575 57.875,27.175 58.4,28.225 C58.775,28.9 59.05,
+ 29.025 59.7,28.725 L61.6,27.9 C62.3,27.6 62.5,27.25 62.15,26.55 C61,24.1 59.1,22.875 55.45,22.875 C50.775,22.875 48.325,25.25 48.325,28.475 Z"></path></symbol><symbol id="instagram" viewBox="0 0 24 24"><path d="M21.2,0H2.8C1.2,0,0,1.2,0,2.8v18.5C0,22.8,1.2,24,2.8,24h18.5c1.5,0,2.8-1.2,2.8-2.8V2.8C24,1.2,22.8,0,21.2,0z M12,7.4
+ c2.5,0,4.6,2.1,4.6,4.6c0,2.5-2.1,4.6-4.6,4.6S7.4,14.5,7.4,12C7.4,9.5,9.5,7.4,12,7.4z M21,20.1c0,0.5-0.4,0.9-0.9,0.9H3.9
+ C3.4,21,3,20.6,3,20.1V10h1.9c-0.1,0.3-0.2,0.6-0.2,1c-0.1,0.3-0.1,0.7-0.1,1c0,4.1,3.3,7.4,7.4,7.4s7.4-3.3,7.4-7.4
+ c0-0.4,0-0.6-0.1-1c0-0.3-0.1-0.7-0.2-1H21V20.1z M21,6.1C21,6.6,20.6,7,20.1,7h-2.2C17.4,7,17,6.6,17,6.1V3.9C17,3.4,17.4,3,17.9,3
+ h2.2C20.6,3,21,3.4,21,3.9V6.1z"></path></symbol><symbol id="flipboard" viewBox="0 0 100 100"><g shape-rendering="crispEdges"><path d="M35 35h25v25H35z" opacity=".8"></path><path d="M35 10h50v25H35z" opacity=".9"></path><path d="M10 10h25v80H10z"></path></g></symbol></svg><svg class="svg-symbol"><symbol id="deal" viewBox="0 0 28 28"><path d="M4.66666667,6.53333333 C3.63377778,6.53333333 2.8,5.69955556 2.8,4.66666667 C2.8,3.63377778 3.63377778,2.8 4.66666667,2.8 C5.69955556,2.8 6.53333333,3.63377778 6.53333333,4.66666667 C6.53333333,5.69955556 5.69955556,6.53333333 4.66666667,6.53333333 M27.174,13.412 L14.574,0.812 C14.07,0.308 13.37,0 12.6,0 L2.8,0 C1.26,0 0,1.26 0,2.8 L0,12.6 C0,13.37 0.308,14.07 0.826,14.588 L13.426,27.188 C13.93,27.692 14.63,28 15.4,28 C16.17,28 16.87,27.692 17.374,27.174 L27.174,17.374 C27.692,16.87 28,16.17 28,15.4 C28,14.63 27.678,13.916 27.174,13.412" id="deals-icon"></path></symbol><symbol id="gift" viewBox="0 0 32 32"><path d="M25,8c0.6-0.8,1-1.9,1-3c0-2.8-2.2-5-5-5c-2.4,0-4.4,1.7-4.9,4h-0.2c-0.5-2.3-2.5-4-4.9-4C8.2,0,6,2.2,6,5
+ c0,1.1,0.4,2.2,1,3H0v8h4v16h24V16h4V8H25z M11,2c1.7,0,3,1.3,3,3s-1.3,3-3,3S8,6.7,8,5S9.3,2,11,2z M15,30H6V16h9V30z M15,14H4H2
+ v-4h13V14z M21,2c1.7,0,3,1.3,3,3s-1.3,3-3,3s-3-1.3-3-3S19.3,2,21,2z M26,30h-9V16h9V30z M30,14h-2H17v-4h13V14z"></path></symbol><symbol id="list" viewBox="0 0 375 392"><path fill="white" d="M0,0v392h375V97.7L277.1,0H0z"></path><path d="M0,0v392h375V97.7L277.1,0H0z M17,17h243v98h98v260H17V17z M277,23l75,75h-75V23z M81,164h65v-17H81V164z
+ M81,212h213v-16H81V212z M81,261h213v-15H81V261z M81,309h147v-15H81V309z"></path></symbol><symbol id="video-stroke" viewBox="0 0 32 32"><path d="M18.8,32H2.9C1.3,32,0,30.6,0,29V12.3c0-1.6,1.4-2.9,2.9-2.9h15.9c1.6,0,2.9,1.4,2.9,2.9v3.3l0.3-0.2
+ c3.7-2.6,5.3-3.7,5.9-3.9c1.3-0.4,3.1-0.1,3.3,0l0.7,0.2v17.7l-0.6,0.2c-0.2,0.1-1.6,0.6-3.1,0.1c-0.7-0.2-2.3-1.3-6.5-4.3v3.7
+ C21.7,30.7,20.4,32,18.8,32z M2.9,11.3c-0.5,0-1,0.5-1,1V29c0,0.6,0.5,1.1,1,1.1h15.9c0.6,0,1-0.5,1-1v-7.4l1.9,1.4
+ c2.4,1.7,6.3,4.6,7,4.8c0.5,0.1,1,0.1,1.4,0.1V13.2c-0.6-0.1-1.2-0.1-1.6,0.1l0,0c-0.5,0.2-3.4,2.2-5.4,3.6l-3.2,2.3v-6.9
+ c0-0.5-0.5-1-1-1H2.9z"></path></symbol><symbol id="mag" viewBox="0 0 16 16"><path d="M15.9,14.3l-3.5-3.5c0.7-1.1,1.1-2.4,1.1-3.8c0-3.8-3-6.9-6.7-6.9C3,0,0,3.1,0,6.9s3,6.9,6.7,6.9
+ c1.6,0,3-0.5,4.1-1.5l3.5,3.5c0.1,0.1,0.2,0.1,0.3,0.1c0,0,0,0,0,0c0.1,0,0.3-0.1,0.3-0.2l0.8-0.9C16,14.8,16,14.5,15.9,14.3z
+ M6.7,11.6c-2.6,0-4.6-2.1-4.6-4.7s2.1-4.7,4.6-4.7c2.6,0,4.6,2.1,4.6,4.7S9.3,11.6,6.7,11.6z"></path></symbol></svg>
+ <div class="espanol-match" data-component="editionToggler" data-espanol-match-options="{&quot;generic&quot;:true}">
+ <div class="match-text">
+ <p>CNET también está disponible en español.</p>
+ </div>
+ <div class="read-button" data-action="readButton"><a data-edition="es" href="https://www.cnet.com/es/noticias/twitter-lite-america-latina/">Ir a español</a></div>
+ <div class="close" data-action="closeMatch">
+ <p>Don't show this again</p> <svg viewBox="0 0 28 28"><polygon points="28,1.9 26.1,0 14,12.1 1.9,0 0,1.9 12.1,14 0,26.1 1.9,28 14,15.9 26.1,28 28,26.1 15.9,14 "></polygon></svg></div>
+ </div>
+ <div id="nav-ad-5a229f90e23b5" class="ad-nav-ad" data-ad="nav-ad">
+ <script type="application/javascript">
+ window.console && console.log && console.log("ADS: queuing nav-ad-5a229f90e23b5 for display");
+ var cbsiGptDivIds = cbsiGptDivIds || [];
+ cbsiGptDivIds.push("nav-ad-5a229f90e23b5");
+ </script>
+ </div>
+ <div id="rbWrapper">
+ <header id="rbHeader" data-component="siteHeader">
+ <nav section="brand_nav|top" data-component="tabsModal" data-tabs-modal-options="{&quot;enableDeselect&quot;:true,&quot;idOverlay&quot;:&quot;modalBodyWrapper&quot;,&quot;classOverlay&quot;:&quot;&quot;,&quot;notRoadshow&quot;:true,&quot;enableEsc&quot;:true,&quot;classOpen&quot;:&quot;menuOpen&quot;,&quot;closeOnScroll&quot;:true}">
+ <div section="site_sections|logo"> <a class="rbLogo " href="/es/" title="CNET en Español">
+
+ <img class="logo" src="/bundles/cnetcss/images/core/redball/esLogo_250.png" height="88" width="88" alt="CNET"/><span class="site">CNET</span>
+ </a> </div>
+ <div class="primary">
+ <div class="submenu">
+ <div class="menu" id="reviewsMenu" section="site_sections|reviews"> <a class="menuHead" href="/es/analisis/">Análisis</a>
+ <div class="tab" id="reviewsTab">
+ <div class="wrapper">
+ <ul>
+ <li><a href="/es/temas/audio/">Audio</a></li>
+ <li><a href="/es/temas/tecnologia-automotriz/">Automotriz</a></li>
+ <li><a href="/es/temas/celulares/">Celulares</a></li>
+ <li><a href="/es/temas/computadoras-de-escritorio/">Computadoras</a></li>
+ <li><a href="/es/temas/electrodomesticos/">Hogar inteligente</a></li>
+ </ul>
+ <ul>
+ <li><a href="/es/temas/computadoras-portatiles/">Portátiles</a></li>
+ <li><a href="/es/temas/software/">Sistemas Operativos</a></li>
+ <li><a href="/es/temas/tabletas/">Tabletas</a></li>
+ <li><a href="/es/temas/tecnologia-de-vestir/">Tecnología de vestir</a></li>
+ <li><a href="/es/temas/televisiones/">Televisores</a></li>
+ </ul>
+ <ul>
+ <li><a href="/es/temas/videojuegos/">Videojuegos</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div class="menu active" id="newsMenu" section="site_sections|news"> <a class="menuHead" href="/es/noticias/">Noticias</a>
+ <div class="tab" id="newsTab">
+ <div class="wrapper">
+ <ul>
+ <li><a href="/es/etiquetas/amazon/">Amazon</a></li>
+ <li><a href="/es/apple/">Apple</a></li>
+ <li><a href="/es/ces/">CES</a></li>
+ <li><a href="/es/temas/cultura-tecnologica/">Cultura tecnológica</a></li>
+ <li><a href="/es/etiquetas/facebook/">Facebook</a></li>
+ </ul>
+ <ul>
+ <li><a href="/es/etiquetas/google/">Google</a></li>
+ <li><a href="/es/temas/industria-de-la-tecnologia/">Industria de la tecnología</a></li>
+ <li><a href="/es/etiquetas/lg/">LG</a></li>
+ <li><a href="/es/etiquetas/microsoft/">Microsoft</a></li>
+ <li><a href="/es/mobile-world-congress/">MWC</a></li>
+ </ul>
+ <ul>
+ <li><a href="/es/etiquetas/samsung/">Samsung</a></li>
+ </ul>
+ <div class="tertiaryMenu">
+ <div class="hed"> <span>SUSCRÍBETE</span> </div>
+ <div>
+ <ul>
+ <li><a href="/es/user/registro-comunidad-cnet-en-espanol/">Boletín informativo</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="menu " id="videoMenu" section="site_sections|video"> <a class="menuHead" href="/es/videos/">Videos</a>
+ <div class="tab" id="videosTab">
+ <div class="wrapper">
+ <ul>
+ <li><a href="/es/actualizacion-android/">Actualización Android</a></li>
+ <li><a href="/es/colecciones/chismes-de-la-manzana/">Chismes de la manzana</a></li>
+ <li><a href="/es/como-se-hace/videos/">Cómo se Hace</a></li>
+ <li><a href="/es/comparativos/">Comparativos</a></li>
+ <li><a href="/es/colecciones/la-semana/">La semana</a></li>
+ </ul>
+ <ul>
+ <li><a href="/es/feature/video-primer-vistazo/">Primer Vistazo</a></li>
+ <li><a href="/es/cnet-top-5/">Top 5</a></li>
+ <li><a href="/es/unboxing/">Unboxing</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="link" id="howtoMenu" section="site_sections|howto"> <a class="menuHead" href="/es/como-se-hace/">Cómo se hace</a> </div>
+ <div class="submenu">
+ <div class="menu" id="listsMenu" section="site_sections|lists"> <a class="menuHead" href="/es/listas/">Listas</a>
+ <div class="tab" id="listsTab">
+ <div class="wrapper">
+ <ul>
+ <li><a href="/es/temas/celulares/los-mejores-celulares/">Los mejores celulares</a></li>
+ <li><a href="/es/temas/telefonos-moviles/los-mejores-celulares/android/">Los mejores celulares con Android</a></li>
+ <li><a href="/es/temas/celulares/los-mejores-celulares/windows-phone/">Los mejores celulares con Windows Phone</a></li>
+ <li><a href="/es/temas/celulares/los-mejores-celulares/camaras/">Los teléfonos con las mejores cámaras</a></li>
+ </ul>
+ <ul>
+ <li><a href="/es/temas/tabletas/las-mejores-tabletas/">Las mejores tabletas</a></li>
+ <li><a href="/es/temas/tabletas/las-mejores-tabletas/pequenas/">Las mejores tabletas pequeñas</a></li>
+ <li><a href="/es/temas/tabletas/las-mejores-tabletas/econmicas/">Las mejores tabletas económicas</a></li>
+ <li><a href="/es/temas/tabletas/las-mejores-tabletas/con-las-mejores-pantallas/">Las tabletas con las mejores pantallas</a></li>
+ </ul>
+ <ul>
+ <li><a href="/es/temas/computadoras-portatiles/las-mejores-computadoras-portatiles/">Las mejores portátiles</a></li>
+ <li><a href="/es/ces/">Lo mejor de CES</a></li>
+ <li><a href="/es/mobile-world-congress/">Lo mejor de MWC</a></li>
+ <li><a href="/es/movil/guia-de-compra-de-telefonos-moviles/">Guía de celulares</a></li>
+ </ul>
+ <ul>
+ <li><a href="/es/noticias/telefonos-celulares-desbloqueados/">Guía de celulares desbloqueados</a></li>
+ <li><a href="/es/noticias/guia-de-compras-de-tabletas/">Guía de tabletas</a></li>
+ <li><a href="/es/televisiones/guia-de-compra-de-televisores/">Guía de televisores</a></li>
+ <li><a href="/es/guia-de-compras-navidenas/">Guía de compras navideñas</a></li>
+ </ul>
+ <ul>
+ <li><a href="/es/colecciones/los-mejores-audifonos/">Los mejores audifonos</a></li>
+ <li><a href="/es/colecciones/las-mejores-bocinas-bluetooth/">Las mejores bocinas bluetooth</a></li>
+ <li><a href="/es/colecciones/mejores-bocinas-inteligentes-domotica/">Las mejores bocinas inteligentes domotica</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="secondary">
+ <div class="menuClick" id="searchMenu" data-item="trigger" data-target="#search" aria-expanded="false" aria-controls="search" tabindex="0" data-event-name="searchToggle" section="search"> <svg viewBox="0 0 16 16"><g><path class="st1" d="M15.9,14.3l-3.5-3.5c0.7-1.1,1.1-2.4,1.1-3.8c0-3.8-3-6.9-6.7-6.9C3,0,0,3.1,0,6.9s3,6.9,6.7,6.9
+ c1.6,0,3-0.5,4.1-1.5l3.5,3.5c0.1,0.1,0.2,0.1,0.3,0.1c0,0,0,0,0,0c0.1,0,0.3-0.1,0.3-0.2l0.8-0.9C16,14.8,16,14.5,15.9,14.3z
+ M6.7,11.6c-2.6,0-4.6-2.1-4.6-4.7s2.1-4.7,4.6-4.7c2.6,0,4.6,2.1,4.6,4.7S9.3,11.6,6.7,11.6z"></path></g></svg></div>
+ <div class="menuClick" id="editionMenu" data-item="trigger" data-target="#editionTab" aria-expanded="false" aria-controls="edition" tabindex="0" data-event-name="editionToggle" section="edition"> <svg viewBox="0 0 32 32"><path d="M16,0C7.2,0,0,7.2,0,16s7.2,16,16,16s16-7.2,16-16S24.8,0,16,0z M17,10.3c1.3,0,2.7-0.2,3.9-0.3c0.3,1.5,0.5,3.2,0.6,5H17
+ V10.3z M17,8.3V2.7c1.3,0.7,2.5,2.6,3.4,5.3C19.3,8.1,18.2,8.2,17,8.3z M15,2.7v5.6c-1.2,0-2.3-0.1-3.4-0.3
+ C12.5,5.2,13.7,3.3,15,2.7z M15,10.3V15h-4.5c0.1-1.8,0.3-3.5,0.6-5C12.3,10.1,13.7,10.2,15,10.3z M8.5,15H2.1
+ c0.2-2.6,1.1-4.9,2.4-6.9c1.4,0.6,2.9,1.2,4.6,1.5C8.8,11.2,8.6,13.1,8.5,15z M8.5,17c0.1,2,0.3,3.8,0.6,5.5
+ c-1.7,0.4-3.2,0.9-4.6,1.5c-1.4-2-2.3-4.4-2.5-7H8.5z M10.5,17H15v4.8c-1.3,0-2.7,0.1-3.9,0.3C10.8,20.6,10.5,18.8,10.5,17z
+ M15,23.7v5.6c-1.3-0.7-2.5-2.5-3.4-5.3C12.7,23.9,13.8,23.8,15,23.7z M17,29.3v-5.6c1.2,0,2.3,0.1,3.4,0.3
+ C19.5,26.8,18.3,28.7,17,29.3z M17,21.7V17h4.5c-0.1,1.9-0.3,3.6-0.6,5.1C19.7,21.9,18.3,21.8,17,21.7z M23.5,17H30
+ c-0.2,2.6-1.1,5-2.5,7c-1.4-0.6-2.9-1.2-4.6-1.5C23.2,20.8,23.5,18.9,23.5,17z M23.5,15c-0.1-1.9-0.3-3.7-0.6-5.4
+ c1.7-0.4,3.2-0.9,4.6-1.6c1.4,2,2.3,4.4,2.5,7H23.5z M26.2,6.4c-1.1,0.5-2.4,0.9-3.8,1.2c-0.6-2.1-1.5-3.8-2.5-5.1
+ C22.3,3.2,24.5,4.6,26.2,6.4z M12.2,2.5c-1,1.3-1.9,3-2.5,5.1C8.2,7.3,6.9,6.9,5.8,6.5C7.5,4.6,9.7,3.3,12.2,2.5z M5.8,25.6
+ c1.1-0.5,2.4-0.9,3.8-1.2c0.6,2.1,1.5,3.8,2.5,5.1C9.7,28.8,7.5,27.4,5.8,25.6z M19.8,29.5c1-1.2,1.9-3,2.5-5.1
+ c1.4,0.3,2.7,0.7,3.8,1.2C24.5,27.4,22.3,28.7,19.8,29.5z"></path></svg></div>
+ <div class="menuClick" id="loginMenu" tabindex="0" data-authentication="{&quot;appId&quot;:370,&quot;refresh&quot;:false}" section="login"> <span class="login">Registro / Acceso</span> </div>
+ <div class="menuClick" id="profileMenu" data-item="trigger" data-target="#loginTab" aria-expanded="false" aria-controls="login" tabindex="0" data-event-name="loginToggle" section="profile"> <span data-user-var="userName">Mi perfil</span> </div>
+ </div>
+ <div class="tab" id="search" aria-hidden="true">
+ <div class="wrapper">
+ <form method="get" action="/es/busqueda/" data-auto-suggest-options="{&quot;url&quot;:&quot;\/es\/smartsearch\/xhr\/&quot;,&quot;showLimit&quot;:&quot;5&quot;,&quot;selectorSuggestions&quot;:&quot;.topCategories li a&quot;,&quot;clickable&quot;:true}" data-component="[&quot;formTrim&quot;,&quot;autoSuggest&quot;]" section="brand_nav|top" data-searchtracking="null">
+ <div class="searchBar">
+ <div class="submit"> <svg viewBox="0 0 16 16"><g><path class="st1" d="M15.9,14.3l-3.5-3.5c0.7-1.1,1.1-2.4,1.1-3.8c0-3.8-3-6.9-6.7-6.9C3,0,0,3.1,0,6.9s3,6.9,6.7,6.9
+ c1.6,0,3-0.5,4.1-1.5l3.5,3.5c0.1,0.1,0.2,0.1,0.3,0.1c0,0,0,0,0,0c0.1,0,0.3-0.1,0.3-0.2l0.8-0.9C16,14.8,16,14.5,15.9,14.3z
+ M6.7,11.6c-2.6,0-4.6-2.1-4.6-4.7s2.1-4.7,4.6-4.7c2.6,0,4.6,2.1,4.6,4.7S9.3,11.6,6.7,11.6z"></path></g></svg></div> <input type="search" placeholder="Buscar" id="primarySearch" name="query" value="" autocomplete="off" data-item="focus"/></div>
+ <div class="close" data-item="close"><svg viewBox="0 0 28 28"><polygon points="28,1.9 26.1,0 14,12.1 1.9,0 0,1.9 12.1,14 0,26.1 1.9,28 14,15.9 26.1,28 28,26.1 15.9,14 "></polygon></svg></div>
+ </form>
+ </div>
+ </div>
+ <div class="tab" id="editionTab" aria-hidden="true">
+ <div class="wrapper" data-component="editionToggler">
+ <ul>
+ <li><a data-edition="au" href="/au/">Australia</a></li>
+ <li><a target="_blank" href="http://www.cnetnews.com.cn/">China</a></li>
+ <li><a target="_blank" href="http://www.cnetfrance.fr/">Francia</a></li>
+ <li><a target="_blank" href="http://www.cnet.de/">Alemania</a></li>
+ <li><a target="_blank" href="http://japan.cnet.com/">Japón</a></li>
+ </ul>
+ <ul>
+ <li><a target="_blank" href="http://www.cnet.co.kr/">Corea</a></li>
+ <li><a target="_blank" href="http://me.cnet.com/">Medio Oriente</a></li>
+ <li><a data-edition="uk" href="/uk/">Reino Unido</a></li>
+ </ul>
+ <ul>
+ <li class="hed">US Ediciones</li>
+ <li><a data-edition="us" href="/">Inglés</a></li>
+ <li class="selected"><a data-edition="es" href="/es/noticias/twitter-lite-america-latina/">Español</a></li>
+ </ul>
+ </div>
+ </div>
+ <div class="tab" id="loginTab" aria-hidden="true">
+ <div class="wrapper">
+ <ul class="logged-in">
+ <li section="user"><a data-user-var="profileLink" data-template="/es/perfiles/__username__/">Mi perfil</a></li>
+ <li section="user"><a href="/forums/">Forums</a></li>
+ <li section="user|sign-out"><a href="/user/logout/" data-user-action="logout" data-user-suppress-refresh="true">Salir</a></li>
+ </ul>
+ </div>
+ </div>
+ </nav><a section="holiday_promo" class="holidayPromo" href="/es/guia-de-compras-navidenas/" data-component="stickyElement" data-sticky-element-options="{&quot;offset&quot;:-10}">
+ <svg viewBox="0 0 32 32"><path d="M25,8c0.6-0.8,1-1.9,1-3c0-2.8-2.2-5-5-5c-2.4,0-4.4,1.7-4.9,4h-0.2c-0.5-2.3-2.5-4-4.9-4C8.2,0,6,2.2,6,5
+ c0,1.1,0.4,2.2,1,3H0v8h4v16h24V16h4V8H25z M11,2c1.7,0,3,1.3,3,3s-1.3,3-3,3S8,6.7,8,5S9.3,2,11,2z M15,30H6V16h9V30z M15,14H4H2
+ v-4h13V14z M21,2c1.7,0,3,1.3,3,3s-1.3,3-3,3s-3-1.3-3-3S19.3,2,21,2z M26,30h-9V16h9V30z M30,14h-2H17v-4h13V14z"></path></svg><div class="promoText">
+ guía de compras <span>navideñas</span>
+ </div>
+</a> </header>
+ <div id="intromercial-5a229f90e23b5" class="ad-intromercial" data-ad="intromercial">
+ <script type="application/javascript">
+ window.console && console.log && console.log("ADS: queuing intromercial-5a229f90e23b5 for display");
+ var cbsiGptDivIds = cbsiGptDivIds || [];
+ cbsiGptDivIds.push("intromercial-5a229f90e23b5");
+ </script>
+ </div>
+ <div id="rbContent" class="">
+ <div itemscope="" itemtype="http://schema.org/Article" id="page-twitter-lite-america-latina" class="pageWrapper pageContainer current" data-container-asset-id="87f5b8c3-cb62-4fd5-b3e0-3ce877bcdaea" data-article-options="{&quot;autoplayVideo&quot;:false}" data-page-options="{&quot;browserTitle&quot;:&quot;Twitter Lite se estrena en 11 pa\u00edses de Am\u00e9rica Latina&quot;,&quot;browserUrl&quot;:&quot;\/es\/noticias\/twitter-lite-america-latina\/&quot;,&quot;cmsUrl&quot;:&quot;https:\/\/cms.cnet.com\/content\/article\/87f5b8c3-cb62-4fd5-b3e0-3ce877bcdaea&quot;,&quot;initialPage&quot;:true,&quot;taboolaElement&quot;:&quot;taboola-twitter-lite-america-latina-below-article-thumbnails-article-redesign&quot;,&quot;trackingEventData&quot;:[],&quot;trackScroll25&quot;:true,&quot;trackScroll100&quot;:true}" data-component="[&quot;article&quot;,&quot;page&quot;]">
+ <div class="content-header">
+ <div class="hero-content">
+ <div class="container">
+ <div class="col-1"></div>
+ <div class="col-7 articleHead"> <a href="/es/temas/aplicaciones-moviles/" section="topic" class="bc-2">Aplicaciones móviles</a>
+ <h1 class="speakableText">Twitter Lite se estrena en 11 países de América Latina</h1>
+ <p class="article-dek">La aplicación de Twitter que minimiza el uso de datos y permite la carga de tuits de forma más rápida llega a México y Venezuela.</p>
+ <div class="authorInfo" section="author">
+ <ul itemprop="author" itemscope="" itemtype="http://schema.org/Person"><span class="byText">por </span>
+ <li>
+ <div class="profileInfo"> <a rel="author" aria-label="Página de autor de César Salza" class="author" href="https://www.cnet.com/es/perfiles/cesarsalza/">
+ <span itemprop="name">César Salza</span>
+ </a> </div>
+ </li>
+ </ul><time class="timeStamp" itemprop="datePublished" content="2017-12-01T03:00:00-0800"><span class="formattedDate">1 de diciembre de 2017</span> <span class="formattedTime">3:00 AM PST</span></time>
+ <meta itemprop="dateModified" content="2017-12-01T03:00:00-0800"/>
+ </div>
+ <div class="sharebarRedesign inline-view atTop" section="topSharebar" data-component="sharebar" data-sharebar-options="{&quot;title&quot;:&quot;Twitter Lite se estrena en 11 pa\u00edses de Am\u00e9rica Latina&quot;,&quot;description&quot;:&quot;La aplicaci\u00f3n de Twitter que minimiza el uso de datos y permite la carga de tuits de forma m\u00e1s r\u00e1pida llega a M\u00e9xico y Venezuela.&quot;,&quot;url&quot;:&quot;https:\/\/www.cnet.com\/es\/noticias\/twitter-lite-america-latina\/#COS-05-10aaa2d&quot;,&quot;popupWidth&quot;:780,&quot;popupHeight&quot;:510,&quot;data&quot;:{&quot;media&quot;:&quot;https:\/\/cdn1.cnet.com\/img\/Jg9RongOPbMqcuJVb66rWY88SLg=\/170x128\/2017\/12\/01\/b36ce794-e0b8-495c-a198-184923a8f4e9\/twitter-lite.jpg&quot;},&quot;scrollToComments&quot;:false}">
+ <div class="sharebarWrapper ">
+ <ul class="sharebarContainer">
+ <li class="share-button sharebarRedesignButton facebookWrapper">
+ <a tabindex="0" aria-label="Comparte en Facebook" data-popup="facebook" data-tracking="facebook">
+ <div class="social-button-small-redesign facebook"> <svg class=" facebook"><use aria-hidden="false" xlink:href="#facebook"></use></svg></div>
+ </a>
+ </li>
+ <li class="share-button sharebarRedesignButton twitterWrapper">
+ <a tabindex="0" aria-label="Comparte en Twitter" data-popup="twitter" data-tracking="twitter">
+ <div class="social-button-small-redesign twitter"> <svg class=" twitter"><use aria-hidden="false" xlink:href="#twitter"></use></svg></div>
+ </a>
+ </li>
+ <li class="share-button sharebarRedesignButton flipboardWrapper">
+ <a tabindex="0" aria-label="component.sharebar.share_on_flipboard" data-popup="flipboard" data-tracking="flipboard">
+ <div class="social-button-small-redesign flipboard"> <svg class=" flipboard"><use aria-hidden="false" xlink:href="#flipboard"></use></svg></div>
+ </a>
+ </li>
+ <li class="share-button sharebarRedesignButton copyWrapper">
+ <a tabindex="0" aria-label="Copiar enlace" data-popup="copy" data-tracking="copy">
+ <div class="social-button-small-redesign copy"> <svg class=" copy"><use aria-hidden="false" xlink:href="#copy"></use></svg></div>
+ </a>
+ </li>
+ <li class="share-button sharebarRedesignButton emailWrapper">
+ <a tabindex="0" aria-label="Comparte por correo electrónico" data-popup="email" data-tracking="email">
+ <div class="social-button-small-redesign email"> <svg class=" email"><use aria-hidden="false" xlink:href="#email"></use></svg></div>
+ </a>
+ </li>
+ <li class="share-button sharebarRedesignButton comment-count-redesign" data-conversation-id="87f5b8c3-cb62-4fd5-b3e0-3ce877bcdaea" data-article-id="87f5b8c3-cb62-4fd5-b3e0-3ce877bcdaea">
+ <a href="#comentarios">
+ <div class="social-button-small-redesign comments"> <svg class=" comments"><use aria-hidden="false" xlink:href="#comments"></use></svg></div>
+ </a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="leadWrap">
+ <div class="sticky-leader" data-component="stickyLeader">
+ <div id="leader-top-5a229f90e23b5" class="ad-leader-top" data-ad="leader-top">
+ <script type="application/javascript">
+ window.console && console.log && console.log("ADS: queuing leader-top-5a229f90e23b5 for display");
+ var cbsiGptDivIds = cbsiGptDivIds || [];
+ cbsiGptDivIds.push("leader-top-5a229f90e23b5");
+ </script>
+ </div>
+ </div>
+ </div>
+ <div class="contentWrap">
+ <div class="container">
+ <div class="row">
+ <div class="row">
+ <div class="col-12">
+ <div class="row">
+ <div class="col-8"> </div>
+ <div class="col-4"> </div>
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="col-12">
+ <article id="article-body" class="row" section="articleBody">
+ <meta itemprop="thumbnailUrl" content="https://cdn1.cnet.com/img/P3hYlJ31dPDzxeZk72LruJu9d4k=/770x433/2017/12/01/b36ce794-e0b8-495c-a198-184923a8f4e9/twitter-lite.jpg"/>
+ <meta itemprop="keywords" content="Aplicaciones móviles"/>
+ <meta itemprop="url mainEntityOfPage" content="https://www.cnet.com/es/noticias/twitter-lite-america-latina/"/>
+ <meta itemprop="headline" content="Twitter Lite se estrena en 11 países de América Latina"/>
+ <meta itemprop="description" content="La aplicación de Twitter que minimiza el uso de datos y permite la carga de tuits de forma más rápida llega a México y Venezuela."/>
+ <div itemprop="publisher" itemscope="" itemtype="https://schema.org/Organization">
+ <meta itemprop="name" content="CNET en Español"/>
+ <div itemprop="logo" itemscope="" itemtype="https://schema.org/ImageObject">
+ <meta itemprop="url" content="https://cnet2.cbsistatic.com/fly/bundles/cnetcore/images/logos/CNET-Espanol-Lockup.jpg"/>
+ </div>
+ </div>
+ <div class="col-1"></div>
+ <div class="col-7 article-main-body row" itemprop="articleBody" data-component="lazyloadImages">
+ <figure class="image image-medium pull-right shortcode" section="shortcodeImage"><span class="imageContainer"><span itemprop="image" itemscope="" itemtype="https://schema.org/ImageObject"><img src="https://cdn2.cnet.com/img/LI8y19stcvIQUdzbYdH4-DAigtc=/fit-in/570x0/2017/12/01/b36ce794-e0b8-495c-a198-184923a8f4e9/twitter-lite.jpg" class="" alt="twitter-lite" height="0" width="570"/><meta itemprop="url" content="https://cdn2.cnet.com/img/LI8y19stcvIQUdzbYdH4-DAigtc=/fit-in/570x0/2017/12/01/b36ce794-e0b8-495c-a198-184923a8f4e9/twitter-lite.jpg"/><meta itemprop="height" content="0"/><meta itemprop="width" content="570"/></span></span>
+ <figcaption><span class="caption"><p>Twitter Lite estará disponible en Google Play Store en 11 países de América Latina.</p></span><span class="credit">
+ Twitter
+ </span></figcaption>
+ </figure>
+ <p>Twitter ha dado a conocer que Twitter Lite llegará a un total de 24 nuevos países a partir de hoy, 11 de ellos de América Latina. </p>
+ <p>Según explicó en un <a href="https://blog.twitter.com/official/en_us/topics/product/2017/twitter-lite-in-the-google-play-store-in-24-more-countries.html#" target="_blank" data-component="externalLink">comunicado</a> <span class="link" section="shortcodeLink"><a href="/es/noticias/twitter-estrena-twitter-lite/">Twitter Lite</a></span> ahora estará disponible en Bolivia, Brasil, Chile, Colombia, Costa Rica, Ecuador, México, Panamá, Perú, El Salvador y Venezuela.</p>
+ <p>Twitter Lite es la versión ligera de la aplicación de la red social para Android, disponible en la Google Play Store. Con este app los usuarios que experimentan fallos de red o que viven en países con redes con poca velocidad de conexión como Venezuela podrán descargar los tuits de forma más rápida.</p>
+ <div class="shortcode related-links float_left" section="shortcodeRelatedLinks">
+ <h3> <span>Artículos Relacionados</span> </h3>
+ <ul>
+ <li><a href="/es/noticias/este-es-el-hombre-que-elimino-la-cuenta-de-twitter-de-trump/">Este es el hombre que eliminó la cuenta de Twitter de Trump</a></li>
+ <li><a href="/es/noticias/twitter-bookmark-leer-despues-guardar-links/">Twitter muestra avances de Bookmarks, su herramienta para guardar enlaces</a></li>
+ <li><a href="/es/noticias/twitter-personas-hablando-sobre-un-tema/">Twitter mostrará cuántas personas están hablando sobre un mismo tuit</a></li>
+ </ul>
+ </div>
+ <p>Entre sus novedades, Twitter Lite permite la carga rápida de tuits en redes 2G y 3G, y ofrece ayuda offline en caso de que pierdas tu conexión; a eso debemos sumar que minimiza el uso de datos y ofrece un modo de ahorro, en el que únicamente se descargan las fotos o videos de los tuits que quieres ver.</p>
+ <div id="inpage-video-top-5a229f90e23b5" class="ad-inpage-video-top" data-ad="inpage-video-top">
+ <script type="application/javascript">
+ window.console && console.log && console.log("ADS: queuing inpage-video-top-5a229f90e23b5 for display");
+ var cbsiGptDivIds = cbsiGptDivIds || [];
+ cbsiGptDivIds.push("inpage-video-top-5a229f90e23b5");
+ </script>
+ </div>
+ <div id="replay-wide-top-5a229f90e23b5" class="ad-replay-wide-top" data-ad="replay-wide-top">
+ <script type="application/javascript">
+ window.console && console.log && console.log("ADS: queuing replay-wide-top-5a229f90e23b5 for display");
+ var cbsiGptDivIds = cbsiGptDivIds || [];
+ cbsiGptDivIds.push("replay-wide-top-5a229f90e23b5");
+ </script>
+ </div>
+ <p>Además, el app ocupa menos espacio en tu teléfono móvil, al reducir a 3MB su peso.</p>
+ <p>Twitter dio a conocer Twitter Lite en abril en India, y desde entonces ha estado trabajando para llevarlo a más países. La empresa en los últimos meses también se ha involucrado de forma definitiva en la <span class="link" section="shortcodeLink"><a href="/es/noticias/twitter-hemos-progresado-en-nuestra-batalla-contra-el-abuso/">eliminación de los abusos en la red social</a></span>, tomando medidas incluso en la <span class="link" section="shortcodeLink"><a href="/es/noticias/twitter-elimina-verificacion-a-cuentas-ofensivas/">verificación de cuentas.</a></span></p><svg class="svg-symbol playerControls"><symbol id="play" viewBox="0 0 26.6 32"><path d="M0,2.6c0-2.4,1.6-3.3,3.7-2L25,13.7c2,1.3,2,3.2,0,4.5L3.7,31.4c-2,1.3-3.7,0.3-3.7-2C0,29.4,0,2.6,0,2.6z"></path></symbol><symbol id="pause" viewBox="0 0 26.6 32"><g><polygon points="16,32 26.5,32 26.5,8.8 26.5,0 16,0"></polygon><rect x="0.1" y="0" width="10.6" height="32"></rect></g></symbol><symbol id="playlist" viewBox="0 0 32 22.9"><g><circle class="st11" cx="2.3" cy="20.6" r="2.3"></circle><circle class="st11" cx="2.3" cy="11.4" r="2.3"></circle><circle class="st11" cx="2.3" cy="2.3" r="2.3"></circle><path class="st11" d="M32,1.1C32,0.5,31.5,0,30.9,0H10.3C9.7,0,9.1,0.5,9.1,1.1v2.3c0,0.6,0.5,1.1,1.1,1.1h20.6c0.6,0,1.1-0.5,1.1-1.1V1.1z"></path><path class="st11" d="M32,10.3c0-0.6-0.5-1.1-1.1-1.1H10.3c-0.6,0-1.1,0.5-1.1,1.1v2.3c0,0.6,0.5,1.1,1.1,1.1h20.6c0.6,0,1.1-0.5,1.1-1.1V10.3z"></path><path class="st11" d="M32,19.4c0-0.6-0.5-1.1-1.1-1.1H10.3c-0.6,0-1.1,0.5-1.1,1.1v2.3c0,0.6,0.5,1.1,1.1,1.1h20.6c0.6,0,1.1-0.5,1.1-1.1V19.4z"></path></g></symbol><symbol id="speaker-on" viewBox="0 0 32 28.1"><g><g><path d="M12.6,5L6.3,8.7H0.6C0.3,8.7,0,9,0,9.3V19c0,0.4,0.3,0.7,0.6,0.7h5.9l6.1,3.4c1.3,0.8,1.5,0.2,1.5-1.5V6.5C14.2,4.8,13.9,4.2,12.6,5z"></path></g><path d="M18,23.1v-2.8c2.6,0,4.7-2.8,4.7-6.2S20.6,7.8,18,7.8V5c4.2,0,7.5,4,7.5,9S22.1,23.1,18,23.1z"></path><path d="M21.3,28.1v-2.8c4.4,0,7.9-5,7.9-11.2S25.6,2.8,21.3,2.8V0C27.2,0,32,6.3,32,14C32,21.8,27.2,28.1,21.3,28.1z"></path></g></symbol><symbol id="speaker-off" viewBox="0 0 32 18.8"><g><g><path d="M12.6,0.4L6.3,4H0.6C0.3,4,0,4.3,0,4.7v9.7c0,0.4,0.3,0.7,0.6,0.7h5.9l6.1,3.4c1.3,0.8,1.5,0.2,1.5-1.5V1.8C14.2,0.2,13.9-0.5,12.6,0.4z"></path></g><polygon points="32,4.5 30.2,2.7 25.3,7.6 20.4,2.7 18.6,4.5 23.5,9.4 18.6,14.3 20.4,16.1 25.3,11.2 30.2,16.1 32,14.3 27.1,9.4 "></polygon></g></symbol><symbol id="captions" viewBox="0 0 32 16.2"><g><path d="M8.6,16.2c-1.2,0-2.4-0.2-3.4-0.6c-1.1-0.4-2-0.9-2.7-1.6c-0.8-0.7-1.4-1.6-1.8-2.6C0.2,10.4,0,9.3,0,8.1c0-1.2,0.2-2.3,0.7-3.3s1-1.8,1.8-2.6C3.2,1.5,4.1,1,5.2,0.6S7.4,0,8.6,0c1,0,1.9,0.1,2.7,0.4c0.8,0.3,1.4,0.6,2,1.1c0.6,0.4,1.1,0.9,1.4,1.5c0.4,0.5,0.7,1.1,0.9,1.6l-4.1,1.9c-0.1-0.3-0.2-0.6-0.4-0.9C11,5.3,10.8,5,10.5,4.8c-0.3-0.2-0.6-0.4-0.9-0.5c-0.3-0.1-0.7-0.2-1-0.2C8,4.2,7.5,4.3,7,4.5C6.6,4.7,6.2,5,5.8,5.3C5.5,5.7,5.2,6.1,5.1,6.5C4.9,7,4.8,7.5,4.8,8.1c0,0.5,0.1,1.1,0.3,1.5c0.2,0.5,0.4,0.9,0.8,1.2c0.3,0.4,0.7,0.6,1.2,0.8C7.5,11.9,8,12,8.6,12c0.3,0,0.7-0.1,1-0.2c0.3-0.1,0.6-0.3,0.9-0.5c0.3-0.2,0.5-0.4,0.7-0.7c0.2-0.3,0.3-0.6,0.4-0.9l4.1,1.9c-0.2,0.5-0.5,1-0.9,1.6c-0.4,0.5-0.9,1-1.4,1.5c-0.6,0.4-1.2,0.8-2,1.1C10.5,16,9.6,16.2,8.6,16.2z"></path><path d="M24.9,16.2c-1.2,0-2.4-0.2-3.4-0.6c-1.1-0.4-2-0.9-2.7-1.6c-0.8-0.7-1.4-1.6-1.8-2.6c-0.4-1-0.7-2.1-0.7-3.3c0-1.2,0.2-2.3,0.7-3.3c0.4-1,1-1.8,1.8-2.6c0.8-0.7,1.7-1.3,2.7-1.7C22.6,0.2,23.7,0,24.9,0c1,0,1.9,0.1,2.7,0.4c0.8,0.3,1.4,0.6,2,1.1c0.6,0.4,1.1,0.9,1.4,1.5C31.5,3.5,31.8,4,32,4.5l-4.1,1.9c-0.1-0.3-0.2-0.6-0.4-0.9c-0.2-0.3-0.4-0.5-0.7-0.7c-0.3-0.2-0.6-0.4-0.9-0.5c-0.3-0.1-0.7-0.2-1-0.2c-0.6,0-1.1,0.1-1.5,0.3c-0.5,0.2-0.9,0.5-1.2,0.8c-0.3,0.4-0.6,0.8-0.8,1.2c-0.2,0.5-0.3,1-0.3,1.5c0,0.5,0.1,1.1,0.3,1.5c0.2,0.5,0.4,0.9,0.8,1.2c0.3,0.4,0.7,0.6,1.2,0.8c0.5,0.2,1,0.3,1.5,0.3c0.3,0,0.7-0.1,1-0.2c0.3-0.1,0.6-0.3,0.9-0.5c0.3-0.2,0.5-0.4,0.7-0.7c0.2-0.3,0.3-0.6,0.4-0.9l4.1,1.9c-0.2,0.5-0.5,1-0.9,1.6c-0.4,0.5-0.9,1-1.4,1.5c-0.6,0.4-1.2,0.8-2,1.1C26.8,16,25.9,16.2,24.9,16.2z"></path></g></symbol><symbol id="share" viewBox="0 0 32 20"><path d="M20,6c0,0-7.9-0.1-13.2,3.3C1.6,12.7,0,20,0,20s5.1-5.4,9.8-7.2C14.9,10.9,20,12,20,12v6l12-8L20,0V6z"></path></symbol><symbol id="fullscreen" viewBox="0 0 32 32"><g><g><polygon class="st11" points="11.4,0 0,0 0,11.4 3.4,8 9.1,13.7 13.7,9.1 8,3.4 "></polygon></g><g><polygon class="st11" points="20.6,32 32,32 32,20.6 28.6,24 22.9,18.3 18.3,22.9 24,28.6 "></polygon></g><g><polygon class="st11" points="32,11.4 32,0 20.6,0 24,3.4 18.3,9.1 22.9,13.7 28.6,8 "></polygon></g><g><polygon class="st11" points="0,20.6 0,32 11.4,32 8,28.6 13.7,22.9 9.1,18.3 3.4,24 "></polygon></g></g></symbol><symbol id="video" viewBox="0 0 32 22"><g><path d="M29,2.2c-0.7,0.2-4.6,3-7.9,5.3V2.1C21.1,1,20.1,0,19,0H2.1C1,0,0,1,0,2.1v17.7C0,21,1,22,2.1,22H19c1.2,0,2.1-1,2.1-2.1v-5.9c3.3,2.4,7.4,5.4,8.2,5.6c1.4,0.4,2.7-0.1,2.7-0.1V2.2C32,2.2,30.1,1.8,29,2.2z"></path></g></symbol></svg>
+ <div class="shortcode video v2" data-load-playlist="[{&quot;id&quot;:&quot;dc362fcb-cba9-4bf6-b62d-aa7e39a092c7&quot;,&quot;title&quot;:&quot;Google Assistant mejora, hay m\u00e1s cambios en Twitter y llega el OnePlus 5T&quot;,&quot;description&quot;:&quot;[La semana en CNET en Espa\u00f1ol #163] Esta semana hablamos de las caracter\u00edsticas del OnePlus 5T, las novedades de Google Assistant y los cambios que ha hecho Twitter a su proceso de verificaci\u00f3n.&quot;,&quot;slug&quot;:&quot;google-assistant-mejora-hay-mas-cambios-en-twitter-y-llega-el-oneplus-5t&quot;,&quot;chapters&quot;:{&quot;data&quot;:[],&quot;paging&quot;:{&quot;total&quot;:0,&quot;limit&quot;:15,&quot;offset&quot;:0}},&quot;duration&quot;:489,&quot;hasCaptions&quot;:true,&quot;mpxId&quot;:&quot;&quot;,&quot;mpxRefId&quot;:&quot;38uKprB1_hIkwXffuj20eMptuapoWX4K&quot;,&quot;ratingVChip&quot;:&quot;TV-14&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;1c0fd1cb-c387-11e2-8208-0291187b029a&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;6a9b3b6b-575a-4b66-b4b2-4aedee01be6d&quot;,&quot;firstName&quot;:&quot;Gabriel&quot;,&quot;lastName&quot;:&quot;Sama&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;b45f7536-5ba2-40d8-a054-40341b279649&quot;,&quot;title&quot;:&quot;La semana&quot;},&quot;image&quot;:{&quot;id&quot;:&quot;70540d7a-cbc5-4563-ab86-b5549ef68168&quot;,&quot;filename&quot;:&quot;oneplus-5t-product-21.jpg&quot;,&quot;dateCreated&quot;:{&quot;date&quot;:&quot;2017-11-13 17:56:07&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;alt&quot;:&quot;oneplus-5t-product-21&quot;,&quot;credits&quot;:&quot;Andrew Hoyle\/CNET&quot;,&quot;path&quot;:&quot;https:\/\/cnet4.cbsistatic.com\/img\/EcEJ76YiEastX8yctETLURpwICc=\/2017\/11\/13\/70540d7a-cbc5-4563-ab86-b5549ef68168\/oneplus-5t-product-21.jpg&quot;,&quot;cropGravity&quot;:0,&quot;crop&quot;:null,&quot;typeName&quot;:&quot;content_image&quot;},&quot;thumbnail&quot;:&quot;https:\/\/cdn1.cnet.com\/img\/xTOX9ZdBnxWFXxkzSLG6dBydTMg=\/fit-in\/194x109\/2017\/11\/13\/70540d7a-cbc5-4563-ab86-b5549ef68168\/oneplus-5t-product-21.jpg&quot;,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/es\/videos\/manifest\/google-assistant-mejora-hay-mas-cambios-en-twitter-y-llega-el-oneplus-5t.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/11\/17\/1098353731717\/es_lasemana16novFINAL_1265786_740.mp4&quot;,&quot;selector&quot;:&quot;\/es\/videos\/selector\/google-assistant-mejora-hay-mas-cambios-en-twitter-y-llega-el-oneplus-5t\/&quot;},{&quot;id&quot;:&quot;7097a578-8dc8-48b8-9bea-bc0dcabdb558&quot;,&quot;title&quot;:&quot;El \u0027bug\u0027 de MacOS High Sierra y la expansi\u00f3n de Huawei en Latinoam\u00e9rica&quot;,&quot;description&quot;:&quot;[La semana en CNET en Espa\u00f1ol #165] Apple solucion\u00f3 el problema de que se pod\u00eda acceder a algunas Mac sin contrase\u00f1a. Huawei adelant\u00f3 planes para la regi\u00f3n.&quot;,&quot;slug&quot;:&quot;bug-de-macos-high-sierra-expansion-huawei-en-latinoamerica&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;duration&quot;:550,&quot;hasCaptions&quot;:true,&quot;mpxId&quot;:1107731523514,&quot;mpxRefId&quot;:&quot;IwoiIhK2JgjRf8oj2sS99ClHB2K8w8uw&quot;,&quot;ratingVChip&quot;:&quot;&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;272ff2eb-03d3-4e24-9b55-09f4633368f9&quot;,&quot;firstName&quot;:&quot;Mariana&quot;,&quot;lastName&quot;:&quot;Marcaletti&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;b45f7536-5ba2-40d8-a054-40341b279649&quot;,&quot;title&quot;:[&quot;La semana&quot;]},&quot;image&quot;:{&quot;id&quot;:&quot;1934b65e-89f2-4449-ae15-61584288ed9d&quot;,&quot;name&quot;:&quot;macos-high-sierra-image&quot;,&quot;filename&quot;:&quot;macos-high-sierra-image.jpg&quot;,&quot;path&quot;:&quot;https:\/\/cnet4.cbsistatic.com\/img\/bmNGTUwxlWz6QUuj1pUj2G90QUE=\/2017\/09\/27\/1934b65e-89f2-4449-ae15-61584288ed9d\/macos-high-sierra-image.jpg&quot;,&quot;size&quot;:1306802,&quot;height&quot;:1080,&quot;width&quot;:1920,&quot;dateCreated&quot;:{&quot;date&quot;:&quot;2017-09-27 17:49:57&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;dateUpdated&quot;:{&quot;date&quot;:&quot;2017-09-27 17:49:57&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;needsModeration&quot;:0,&quot;mimeType&quot;:&quot;image\/jpeg&quot;,&quot;deleted&quot;:0,&quot;preferred&quot;:0,&quot;watermark&quot;:0,&quot;alt&quot;:&quot;macos-high-sierra-image&quot;,&quot;cropGravity&quot;:0},&quot;thumbnail&quot;:&quot;https:\/\/cdn3.cnet.com\/img\/C6S9ny6QsPl0M4RazJBreX1ZaO8=\/fit-in\/194x109\/2017\/09\/27\/1934b65e-89f2-4449-ae15-61584288ed9d\/macos-high-sierra-image.jpg&quot;,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/es\/videos\/manifest\/bug-de-macos-high-sierra-expansion-huawei-en-latinoamerica.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/12\/01\/1107731523514\/es_lasemana1diciembre_1275504_740.mp4&quot;,&quot;selector&quot;:&quot;\/es\/videos\/selector\/bug-de-macos-high-sierra-expansion-huawei-en-latinoamerica\/&quot;},{&quot;id&quot;:&quot;41e31d24-ab17-445d-8841-ceb86ae9044f&quot;,&quot;title&quot;:&quot;Nuestros consejos para la temporada de ofertas&quot;,&quot;description&quot;:&quot;[La semana en CNET en Espa\u00f1ol #164] Nada de madrugar, hacer filas largas y estresarte. Esta semana te compartimos sugerencias puntuales para que le saques m\u00e1s jugo a las compras de Black Friday y Cyber Monday.&quot;,&quot;slug&quot;:&quot;consejos-ofertas-viernes-negro&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;duration&quot;:441,&quot;hasCaptions&quot;:true,&quot;mpxId&quot;:1102073923731,&quot;mpxRefId&quot;:&quot;5XzHm1c3DBSxFhifEcVyEyTaNwlg6R0a&quot;,&quot;ratingVChip&quot;:&quot;&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;272ff2eb-03d3-4e24-9b55-09f4633368f9&quot;,&quot;firstName&quot;:&quot;Mariana&quot;,&quot;lastName&quot;:&quot;Marcaletti&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;b45f7536-5ba2-40d8-a054-40341b279649&quot;,&quot;title&quot;:[&quot;La semana&quot;]},&quot;image&quot;:{&quot;id&quot;:&quot;154d2576-1ff8-41d8-ac2a-414450d5ee6c&quot;,&quot;name&quot;:&quot;viernesnegro&quot;,&quot;filename&quot;:&quot;viernesnegro.jpg&quot;,&quot;path&quot;:&quot;https:\/\/cnet4.cbsistatic.com\/img\/e6vO1LTPdKpSs3924nDWctNCZMY=\/2017\/11\/22\/154d2576-1ff8-41d8-ac2a-414450d5ee6c\/viernesnegro.jpg&quot;,&quot;size&quot;:278742,&quot;height&quot;:900,&quot;width&quot;:1600,&quot;dateCreated&quot;:{&quot;date&quot;:&quot;2017-11-22 22:32:03&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;dateUpdated&quot;:{&quot;date&quot;:&quot;2017-11-22 22:32:03&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;needsModeration&quot;:0,&quot;mimeType&quot;:&quot;image\/jpeg&quot;,&quot;deleted&quot;:0,&quot;preferred&quot;:0,&quot;watermark&quot;:0,&quot;alt&quot;:&quot;viernesnegro&quot;},&quot;thumbnail&quot;:&quot;https:\/\/cdn4.cnet.com\/img\/fcY_4UWuEddB5TbPXMSaNvgfcec=\/fit-in\/194x109\/2017\/11\/22\/154d2576-1ff8-41d8-ac2a-414450d5ee6c\/viernesnegro.jpg&quot;,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/es\/videos\/manifest\/consejos-ofertas-viernes-negro.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/11\/22\/1102073923731\/semana_nov22_1270073_740.mp4&quot;,&quot;selector&quot;:&quot;\/es\/videos\/selector\/consejos-ofertas-viernes-negro\/&quot;},{&quot;id&quot;:&quot;db8b62cc-68fc-4f96-8fbc-bcbe5d4f8a1c&quot;,&quot;title&quot;:&quot;El desembarco de Xiaomi en Espa\u00f1a y la previa del OnePlus 5T&quot;,&quot;description&quot;:&quot;[La semana en CNET en Espa\u00f1ol #162] La fabricante de celulares china llega a Espa\u00f1a con m\u00e1s de seis tel\u00e9fonos de menos de 300 euros, y el OnePlus 5T se presentar\u00e1 el 16 de noviembre en Estados Unidos.&quot;,&quot;slug&quot;:&quot;el-desembarco-de-xiaomi-en-espana-y-la-previa-del-oneplus-5t&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;duration&quot;:500,&quot;hasCaptions&quot;:true,&quot;mpxId&quot;:1093211715579,&quot;mpxRefId&quot;:&quot;APQJZKaXzbhmwxYJcFFg_AHYIHfLWNU6&quot;,&quot;ratingVChip&quot;:&quot;&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;272ff2eb-03d3-4e24-9b55-09f4633368f9&quot;,&quot;firstName&quot;:&quot;Mariana&quot;,&quot;lastName&quot;:&quot;Marcaletti&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;b45f7536-5ba2-40d8-a054-40341b279649&quot;,&quot;title&quot;:[&quot;La semana&quot;]},&quot;image&quot;:{&quot;id&quot;:&quot;96ec74ea-1acb-48be-b74e-816ba301d19a&quot;,&quot;name&quot;:&quot;oneplus-5t&quot;,&quot;filename&quot;:&quot;oneplus-5t.jpg&quot;,&quot;path&quot;:&quot;https:\/\/cnet4.cbsistatic.com\/img\/KK0CqnMaqMxZ9bC-3jbAiQhnutM=\/2017\/10\/30\/96ec74ea-1acb-48be-b74e-816ba301d19a\/oneplus-5t.jpg&quot;,&quot;caption&quot;:&quot;<p>Una supuesta foto del OnePlus 5T filtrada en China.<\/p>&quot;,&quot;size&quot;:41019,&quot;height&quot;:592,&quot;width&quot;:690,&quot;dateCreated&quot;:{&quot;date&quot;:&quot;2017-10-30 19:55:39&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;dateUpdated&quot;:{&quot;date&quot;:&quot;2017-10-30 19:56:18&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;needsModeration&quot;:0,&quot;mimeType&quot;:&quot;image\/jpeg&quot;,&quot;deleted&quot;:0,&quot;preferred&quot;:0,&quot;watermark&quot;:0,&quot;credits&quot;:&quot;Weibo&quot;,&quot;alt&quot;:&quot;oneplus-5t&quot;},&quot;thumbnail&quot;:&quot;https:\/\/cdn2.cnet.com\/img\/9CtVwepYPv7fktP5LlCjoAjq0is=\/fit-in\/194x109\/2017\/10\/30\/96ec74ea-1acb-48be-b74e-816ba301d19a\/oneplus-5t.jpg&quot;,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/es\/videos\/manifest\/el-desembarco-de-xiaomi-en-espana-y-la-previa-del-oneplus-5t.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/11\/10\/1093211715579\/es_lasemana_9noviembre02_1259372_740.mp4&quot;,&quot;selector&quot;:&quot;\/es\/videos\/selector\/el-desembarco-de-xiaomi-en-espana-y-la-previa-del-oneplus-5t\/&quot;},{&quot;id&quot;:&quot;283c729a-eeeb-454b-ae03-d1d95229031d&quot;,&quot;title&quot;:&quot;Google Assistant habla espa\u00f1ol y el iPhone X presenta un nuevo idioma de dise\u00f1o&quot;,&quot;description&quot;:&quot;[La semana en CNET en Espa\u00f1ol #161] El asistente virtual de Google ahora domina el idioma de Cervantes, y el iPhone X inaugura nuevos gestos y un nuevo lenguaje de dise\u00f1o de la marca.&quot;,&quot;slug&quot;:&quot;google-assistant-habla-espanol-y-el-iphone-x-un-nuevo-idioma&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;duration&quot;:683,&quot;hasCaptions&quot;:true,&quot;mpxId&quot;:1087923267594,&quot;mpxRefId&quot;:&quot;jCXv62P0jCNTJB3jKuthMzA3CV0ghejk&quot;,&quot;ratingVChip&quot;:&quot;&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;272ff2eb-03d3-4e24-9b55-09f4633368f9&quot;,&quot;firstName&quot;:&quot;Mariana&quot;,&quot;lastName&quot;:&quot;Marcaletti&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;b45f7536-5ba2-40d8-a054-40341b279649&quot;,&quot;title&quot;:[&quot;La semana&quot;]},&quot;image&quot;:{&quot;id&quot;:&quot;0d404b1c-30e9-4ccf-9901-d2125b2b23f2&quot;,&quot;name&quot;:&quot;iphone-x-67&quot;,&quot;filename&quot;:&quot;iphone-x-67.jpg&quot;,&quot;path&quot;:&quot;https:\/\/cnet4.cbsistatic.com\/img\/JoewZeNO5ePGyD5iGiD7VM32i9w=\/2017\/11\/03\/0d404b1c-30e9-4ccf-9901-d2125b2b23f2\/iphone-x-67.jpg&quot;,&quot;size&quot;:153088,&quot;height&quot;:900,&quot;width&quot;:1600,&quot;dateCreated&quot;:{&quot;date&quot;:&quot;2017-11-03 16:19:37&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;dateUpdated&quot;:{&quot;date&quot;:&quot;2017-11-03 16:19:37&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;needsModeration&quot;:0,&quot;mimeType&quot;:&quot;image\/jpeg&quot;,&quot;deleted&quot;:0,&quot;preferred&quot;:0,&quot;watermark&quot;:0,&quot;alt&quot;:&quot;iphone-x-67&quot;},&quot;thumbnail&quot;:&quot;https:\/\/cdn3.cnet.com\/img\/6fdfuTdyxV3t7waWLSKyE6df3fY=\/fit-in\/194x109\/2017\/11\/03\/0d404b1c-30e9-4ccf-9901-d2125b2b23f2\/iphone-x-67.jpg&quot;,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/es\/videos\/manifest\/google-assistant-habla-espanol-y-el-iphone-x-un-nuevo-idioma.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/11\/03\/1087923267594\/semananov2_1253191_740.mp4&quot;,&quot;selector&quot;:&quot;\/es\/videos\/selector\/google-assistant-habla-espanol-y-el-iphone-x-un-nuevo-idioma\/&quot;},{&quot;id&quot;:&quot;a3c0de25-3d75-44b9-9c83-6925dbd3ebb2&quot;,&quot;title&quot;:&quot;La pantalla del Pixel 2 XL, la llave maestra de Amazon y el inminente iPhone X&quot;,&quot;description&quot;:&quot;[La semana en CNET en Espa\u00f1ol #160] Analizamos los problemas con el panel OLED del tel\u00e9fono de Google, los env\u00edos de Amazon entran en tu hogar y ya est\u00e1 a la puerta el nuevo tel\u00e9fono de Apple.&quot;,&quot;slug&quot;:&quot;la-pantalla-de-pixel-2-xl-la-llave-maestra-de-amazon-y-el-inminente-iphone-x&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;duration&quot;:574,&quot;hasCaptions&quot;:true,&quot;mpxId&quot;:1082906179568,&quot;mpxRefId&quot;:&quot;t4LPcFt8Hmm8Vg7U8o4s4_E0Xn_xqxAj&quot;,&quot;ratingVChip&quot;:&quot;&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;272ff2eb-03d3-4e24-9b55-09f4633368f9&quot;,&quot;firstName&quot;:&quot;Mariana&quot;,&quot;lastName&quot;:&quot;Marcaletti&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;b45f7536-5ba2-40d8-a054-40341b279649&quot;,&quot;title&quot;:[&quot;La semana&quot;]},&quot;image&quot;:{&quot;id&quot;:&quot;00597069-4f14-41dd-b1f1-e7bc413d4e17&quot;,&quot;name&quot;:&quot;Google Pixel 2 XL screen burn-in&quot;,&quot;filename&quot;:&quot;screen-problems-2405-001.jpg&quot;,&quot;path&quot;:&quot;https:\/\/cnet4.cbsistatic.com\/img\/zM13Oy086Lnor1efnDjx0mVca88=\/2017\/10\/23\/00597069-4f14-41dd-b1f1-e7bc413d4e17\/screen-problems-2405-001.jpg&quot;,&quot;caption&quot;:&quot;<p><\/p>&quot;,&quot;size&quot;:1865911,&quot;height&quot;:1467,&quot;width&quot;:2200,&quot;dateCreated&quot;:{&quot;date&quot;:&quot;2017-10-23 19:09:04&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;dateUpdated&quot;:{&quot;date&quot;:&quot;2017-10-23 19:09:23&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;needsModeration&quot;:0,&quot;mimeType&quot;:&quot;image\/jpeg&quot;,&quot;deleted&quot;:0,&quot;preferred&quot;:0,&quot;watermark&quot;:1,&quot;credits&quot;:&quot;Josh Miller\/CNET&quot;,&quot;alt&quot;:&quot;Google Pixel 2 XL screen burn-in&quot;},&quot;thumbnail&quot;:&quot;https:\/\/cdn4.cnet.com\/img\/XTHaIZ7ZBuXvKPKB5niFqcP_23M=\/fit-in\/194x109\/2017\/10\/23\/00597069-4f14-41dd-b1f1-e7bc413d4e17\/screen-problems-2405-001.jpg&quot;,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/es\/videos\/manifest\/la-pantalla-de-pixel-2-xl-la-llave-maestra-de-amazon-y-el-inminente-iphone-x.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/10\/27\/1082906179568\/es_lasemana27october_1247416_740.mp4&quot;,&quot;selector&quot;:&quot;\/es\/videos\/selector\/la-pantalla-de-pixel-2-xl-la-llave-maestra-de-amazon-y-el-inminente-iphone-x\/&quot;},{&quot;id&quot;:&quot;ae23b111-1e88-4edd-b1b5-dfed3e0cb061&quot;,&quot;title&quot;:&quot;Se consolida el hogar inteligente y aparece el fallo KRACK&quot;,&quot;description&quot;:&quot;[La semana en CNET en Espa\u00f1ol #159] Esta semana hablamos de la nueva plataforma de Samsung para el Internet de las Cosas, de la vulnerabilidad KRACK y de los nuevos tel\u00e9fonos en el mercado.&quot;,&quot;slug&quot;:&quot;la-semana-oct-19-cnet-espanol&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;duration&quot;:691,&quot;hasCaptions&quot;:true,&quot;mpxId&quot;:1077887555736,&quot;mpxRefId&quot;:&quot;H4gkX0JjbU6b4gxZOkirySjFp3Z845dA&quot;,&quot;ratingVChip&quot;:&quot;&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;6a9b3b6b-575a-4b66-b4b2-4aedee01be6d&quot;,&quot;firstName&quot;:&quot;Gabriel&quot;,&quot;lastName&quot;:&quot;Sama&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;b45f7536-5ba2-40d8-a054-40341b279649&quot;,&quot;title&quot;:[&quot;La semana&quot;]},&quot;image&quot;:{&quot;id&quot;:&quot;d704b38b-cafe-414b-879b-459dd712796c&quot;,&quot;name&quot;:&quot;zte-axon-m-9755-024&quot;,&quot;filename&quot;:&quot;zte-axon-m-9755-024.jpg&quot;,&quot;path&quot;:&quot;https:\/\/cnet4.cbsistatic.com\/img\/VAqXY-db6xzcKly6P5BNqbaHpQw=\/2017\/10\/20\/d704b38b-cafe-414b-879b-459dd712796c\/zte-axon-m-9755-024.jpg&quot;,&quot;size&quot;:87148,&quot;height&quot;:900,&quot;width&quot;:1600,&quot;dateCreated&quot;:{&quot;date&quot;:&quot;2017-10-20 16:33:13&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;dateUpdated&quot;:{&quot;date&quot;:&quot;2017-10-20 16:33:13&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;needsModeration&quot;:0,&quot;mimeType&quot;:&quot;image\/jpeg&quot;,&quot;deleted&quot;:0,&quot;preferred&quot;:0,&quot;watermark&quot;:0,&quot;alt&quot;:&quot;zte-axon-m-9755-024&quot;},&quot;thumbnail&quot;:&quot;https:\/\/cdn3.cnet.com\/img\/ReV56T1ZCShd3YWImeR2IWEqAXU=\/fit-in\/194x109\/2017\/10\/20\/d704b38b-cafe-414b-879b-459dd712796c\/zte-axon-m-9755-024.jpg&quot;,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/es\/videos\/manifest\/la-semana-oct-19-cnet-espanol.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/10\/20\/1077887555736\/semana_oct19_1241505_740.mp4&quot;,&quot;selector&quot;:&quot;\/es\/videos\/selector\/la-semana-oct-19-cnet-espanol\/&quot;},{&quot;id&quot;:&quot;4cb73b8d-1b2f-40ef-bb98-6b093198c681&quot;,&quot;title&quot;:&quot;Un nuevo Kindle y se asoman las nuevas gafas VR de Oculus&quot;,&quot;description&quot;:&quot;[La semana en CNET en Espa\u00f1ol #158] Esta semana, lleg\u00f3 el Kindle Oasis impermeable, se anunciaron las Oculus Go y Santa Cruz para realidad virtual y hubo un problemita con la Google Home Mini.&quot;,&quot;slug&quot;:&quot;un-nuevo-kindle-y-nuevas-gafas-vr-de-oculus-se-asoman&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;duration&quot;:422,&quot;hasCaptions&quot;:true,&quot;mpxId&quot;:1072264259697,&quot;mpxRefId&quot;:&quot;8RTAYZ4ou1BgXXiybOYiclkJ6avdl6SM&quot;,&quot;ratingVChip&quot;:&quot;&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;272ff2eb-03d3-4e24-9b55-09f4633368f9&quot;,&quot;firstName&quot;:&quot;Mariana&quot;,&quot;lastName&quot;:&quot;Marcaletti&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;b45f7536-5ba2-40d8-a054-40341b279649&quot;,&quot;title&quot;:[&quot;La semana&quot;]},&quot;image&quot;:{&quot;id&quot;:&quot;4514916c-88c7-4c00-8324-9d522e0b3047&quot;,&quot;name&quot;:&quot;kindle-oasis-covers&quot;,&quot;filename&quot;:&quot;kindle-oasis-covers.jpg&quot;,&quot;path&quot;:&quot;https:\/\/cnet4.cbsistatic.com\/img\/el7STcxt2T02OoIFWp08KB2D1Bk=\/2017\/10\/05\/4514916c-88c7-4c00-8324-9d522e0b3047\/kindle-oasis-covers.jpg&quot;,&quot;caption&quot;:&quot;<p>The optional covers start at $40 and come in nylon or leather.<\/p>&quot;,&quot;size&quot;:4432570,&quot;height&quot;:3024,&quot;width&quot;:4032,&quot;dateCreated&quot;:{&quot;date&quot;:&quot;2017-10-05 19:52:22&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;dateUpdated&quot;:{&quot;date&quot;:&quot;2017-10-05 19:53:38&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;startDate&quot;:{&quot;date&quot;:&quot;2017-10-11 13:00:00&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;needsModeration&quot;:0,&quot;mimeType&quot;:&quot;image\/jpeg&quot;,&quot;deleted&quot;:0,&quot;preferred&quot;:0,&quot;watermark&quot;:1,&quot;credits&quot;:&quot;David Carnoy\/CNET&quot;,&quot;alt&quot;:&quot;kindle-oasis-covers&quot;},&quot;thumbnail&quot;:&quot;https:\/\/cdn3.cnet.com\/img\/vDQrwxSq2oDqDHdtnPLwD_eJR98=\/fit-in\/194x109\/2017\/10\/05\/4514916c-88c7-4c00-8324-9d522e0b3047\/kindle-oasis-covers.jpg&quot;,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/es\/videos\/manifest\/un-nuevo-kindle-y-nuevas-gafas-vr-de-oculus-se-asoman.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/10\/13\/1072264259697\/es_lasemana12_oct_1235274_740.mp4&quot;,&quot;selector&quot;:&quot;\/es\/videos\/selector\/un-nuevo-kindle-y-nuevas-gafas-vr-de-oculus-se-asoman\/&quot;},{&quot;id&quot;:&quot;09051611-4cd7-4384-a459-b4a1050b5c1c&quot;,&quot;title&quot;:&quot;Google Pixel 2 y lo que nos dej\u00f3 la temporada de s\u00faper tel\u00e9fonos&quot;,&quot;description&quot;:&quot;[La semana en CNET en Espa\u00f1ol #157] La gigante de las b\u00fasquedas se anima con todo al hardware, y sus tel\u00e9fonos marcan el fin de una \u00e9poca de grandes anuncios.&quot;,&quot;slug&quot;:&quot;google-pixel-2-lo-que-nos-dejo-la-temporada-de-super-telefonos&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;duration&quot;:598,&quot;hasCaptions&quot;:true,&quot;mpxId&quot;:1064365123530,&quot;mpxRefId&quot;:&quot;Us3jKld5gPd3TfSG9QLLbD5jw_vdMyds&quot;,&quot;ratingVChip&quot;:&quot;&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;272ff2eb-03d3-4e24-9b55-09f4633368f9&quot;,&quot;firstName&quot;:&quot;Mariana&quot;,&quot;lastName&quot;:&quot;Marcaletti&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;b45f7536-5ba2-40d8-a054-40341b279649&quot;,&quot;title&quot;:[&quot;La semana&quot;]},&quot;image&quot;:{&quot;id&quot;:&quot;d077c3c0-c88f-492f-a8a2-8b043af04f0e&quot;,&quot;name&quot;:&quot;100417-google-pixel-2-7126&quot;,&quot;filename&quot;:&quot;100417-google-pixel-2-7126.jpg&quot;,&quot;path&quot;:&quot;https:\/\/cnet4.cbsistatic.com\/img\/BNbeNYmhimN2Z_KulzpEpn0l7AI=\/2017\/10\/05\/d077c3c0-c88f-492f-a8a2-8b043af04f0e\/100417-google-pixel-2-7126.jpg&quot;,&quot;size&quot;:52547,&quot;height&quot;:467,&quot;width&quot;:830,&quot;dateCreated&quot;:{&quot;date&quot;:&quot;2017-10-05 23:35:43&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;dateUpdated&quot;:{&quot;date&quot;:&quot;2017-10-05 23:35:43&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;needsModeration&quot;:0,&quot;mimeType&quot;:&quot;image\/jpeg&quot;,&quot;deleted&quot;:0,&quot;preferred&quot;:0,&quot;watermark&quot;:0,&quot;alt&quot;:&quot;100417-google-pixel-2-7126&quot;},&quot;thumbnail&quot;:&quot;https:\/\/cdn2.cnet.com\/img\/5-e1P5u3K43hFHiSjBjhdB3f1lI=\/fit-in\/194x109\/2017\/10\/05\/d077c3c0-c88f-492f-a8a2-8b043af04f0e\/100417-google-pixel-2-7126.jpg&quot;,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/es\/videos\/manifest\/google-pixel-2-lo-que-nos-dejo-la-temporada-de-super-telefonos.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/10\/06\/1064365123530\/semana_oct5_1229769_740.mp4&quot;,&quot;selector&quot;:&quot;\/es\/videos\/selector\/google-pixel-2-lo-que-nos-dejo-la-temporada-de-super-telefonos\/&quot;},{&quot;id&quot;:&quot;4bb8f3fd-304c-495e-8b83-57fcea47b89b&quot;,&quot;title&quot;:&quot;La avalancha de productos de Amazon, y tuits de 280 caracteres&quot;,&quot;description&quot;:&quot;[La semana en CNET en Espa\u00f1ol #156] Esta semana vimos nuevas bocinas de Amazon; una nueva c\u00e1mara GoPro y Twitter dijo que duplicar\u00e1 el l\u00edmite de caracteres en tuits.&quot;,&quot;slug&quot;:&quot;amazon-nuevos-productos-twitter-280-caracteres&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;duration&quot;:673,&quot;hasCaptions&quot;:true,&quot;mpxId&quot;:1057969219682,&quot;mpxRefId&quot;:&quot;IUOzQ0y6ps_ludp4UH9c1EZFCsJNA7X8&quot;,&quot;ratingVChip&quot;:&quot;&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;272ff2eb-03d3-4e24-9b55-09f4633368f9&quot;,&quot;firstName&quot;:&quot;Mariana&quot;,&quot;lastName&quot;:&quot;Marcaletti&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;b45f7536-5ba2-40d8-a054-40341b279649&quot;,&quot;title&quot;:[&quot;La semana&quot;]},&quot;image&quot;:{&quot;id&quot;:&quot;194498de-a074-4687-ab0d-d880d5ee05de&quot;,&quot;name&quot;:&quot;amazon-spot-1&quot;,&quot;filename&quot;:&quot;amazon-spot-1.jpg&quot;,&quot;path&quot;:&quot;https:\/\/cnet4.cbsistatic.com\/img\/MLV0Q7ERz3liDf123UtGhwIuMjU=\/2017\/09\/28\/194498de-a074-4687-ab0d-d880d5ee05de\/amazon-spot-1.jpg&quot;,&quot;size&quot;:850748,&quot;height&quot;:1080,&quot;width&quot;:1920,&quot;dateCreated&quot;:{&quot;date&quot;:&quot;2017-09-28 05:39:36&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;dateUpdated&quot;:{&quot;date&quot;:&quot;2017-09-28 05:39:36&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;needsModeration&quot;:0,&quot;mimeType&quot;:&quot;image\/jpeg&quot;,&quot;deleted&quot;:0,&quot;preferred&quot;:0,&quot;watermark&quot;:0,&quot;alt&quot;:&quot;amazon-spot-1&quot;},&quot;thumbnail&quot;:&quot;https:\/\/cdn1.cnet.com\/img\/0t12kUyxiPUjjBEvghADT8bfI1Q=\/fit-in\/194x109\/2017\/09\/28\/194498de-a074-4687-ab0d-d880d5ee05de\/amazon-spot-1.jpg&quot;,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/es\/videos\/manifest\/amazon-nuevos-productos-twitter-280-caracteres.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/09\/29\/1057969219682\/es_lasemana_28septiembre_1223993_740.mp4&quot;,&quot;selector&quot;:&quot;\/es\/videos\/selector\/amazon-nuevos-productos-twitter-280-caracteres\/&quot;}]">
+ <div class="embeddedVideoContainer">
+ <div class="videoContainer"> <svg class=" play"><use aria-hidden="false" xlink:href="#play"></use></svg><svg class=" pause"><use aria-hidden="false" xlink:href="#pause"></use></svg>
+ <figure class=" img"><img src="https://cdn1.cnet.com/img/mWcZaiA8Ngv61OQcpdoh6Ra9nY0=/170x96/2017/11/13/70540d7a-cbc5-4563-ab86-b5549ef68168/oneplus-5t-product-21.jpg" class="photo" alt="" height="96" width="170"/></figure>
+ </div>
+ <div class="videoTitle"> <span class="bold">
+ <span class="nowPlaying">Reproduciendo:</span> <span class="watchThis">Mira esto:</span> </span> Google Assistant mejora, hay más cambios en Twitter y... </div>
+ <div class="videoMeta"> <span class="duration">
+ 8:09 <svg class=" video"><use aria-hidden="false" xlink:href="#video"></use></svg></span> </div>
+ </div>
+ </div>
+ <div class="taboola col-7" id="taboola-twitter-lite-america-latina-below-article-thumbnails-article-redesign" data-component="taboola" data-taboola-options="{&quot;mode&quot;:&quot;thumbnails-g&quot;,&quot;container&quot;:&quot;taboola-twitter-lite-america-latina-below-article-thumbnails-article-redesign&quot;,&quot;url&quot;:&quot;https:\/\/www.cnet.com\/es\/noticias\/twitter-lite-america-latina\/&quot;,&quot;placement&quot;:&quot;Below Article Thumbnails Article Redesign&quot;,&quot;width&quot;:&quot;col-7&quot;,&quot;isXhr&quot;:false,&quot;target_type&quot;:&quot;mix&quot;}"></div>
+ <footer>
+ <div class="comment-container" data-component="sharebar" data-sharebar-options="{&quot;title&quot;:&quot;Twitter Lite se estrena en 11 pa\u00edses de Am\u00e9rica Latina&quot;,&quot;description&quot;:&quot;La aplicaci\u00f3n de Twitter que minimiza el uso de datos y permite la carga de tuits de forma m\u00e1s r\u00e1pida llega a M\u00e9xico y Venezuela.&quot;,&quot;url&quot;:&quot;https:\/\/www.cnet.com\/es\/noticias\/twitter-lite-america-latina\/&quot;,&quot;popupWidth&quot;:780,&quot;popupHeight&quot;:510,&quot;data&quot;:{&quot;media&quot;:&quot;&quot;},&quot;scrollToComments&quot;:true}">
+ <h2>Comparte tu opinión</h2>
+ <div class="share-button sharebarRedesignButton comment-count-redesign" data-conversation-id="87f5b8c3-cb62-4fd5-b3e0-3ce877bcdaea">
+ <a href="#comentarios">
+ <div class="wrapper">
+ <div class="icon-container "><svg class=" comments"><use aria-hidden="false" xlink:href="#comments"></use></svg></div> <span class="disqus-comment-count count" data-component="disqusCount" data-disqus-count-options="{&quot;disqusIdentifier&quot;:&quot;87f5b8c3-cb62-4fd5-b3e0-3ce877bcdaea&quot;,&quot;disqusUrl&quot;:&quot;https:\/\/www.cnet.com\/es\/noticias\/twitter-lite-america-latina\/&quot;}">0</span> </div>
+ </a>
+ </div>
+ </div>
+ <div class="row tags" section="tag">
+ <h2>Etiquetas</h2>
+ <div class="tagList"> <a href="/es/temas/aplicaciones-moviles/">Aplicaciones móviles</a> </div>
+ </div>
+ </footer>
+ </div>
+ <div class="col-4" section="rColumn">
+ <div data-video-player="container">
+ <div class="inviewElement dock entered" data-component="inviewElement" data-inview-element-options="{&quot;events&quot;:[&quot;entered&quot;],&quot;repeat&quot;:false}" style="background-image: url(https://cdn2.cnet.com/img/ZP-31IwCuzwDW2kwBFhKUciVjyQ=/433x244/2017/11/13/70540d7a-cbc5-4563-ab86-b5549ef68168/oneplus-5t-product-21.jpg)">
+ <div class="upnext hidden" data-video-info="upnext"></div> <svg class="svg-symbol playerControls"><symbol id="play" viewBox="0 0 26.6 32"><path d="M0,2.6c0-2.4,1.6-3.3,3.7-2L25,13.7c2,1.3,2,3.2,0,4.5L3.7,31.4c-2,1.3-3.7,0.3-3.7-2C0,29.4,0,2.6,0,2.6z"></path></symbol><symbol id="pause" viewBox="0 0 26.6 32"><g><polygon points="16,32 26.5,32 26.5,8.8 26.5,0 16,0"></polygon><rect x="0.1" y="0" width="10.6" height="32"></rect></g></symbol><symbol id="playlist" viewBox="0 0 32 22.9"><g><circle class="st11" cx="2.3" cy="20.6" r="2.3"></circle><circle class="st11" cx="2.3" cy="11.4" r="2.3"></circle><circle class="st11" cx="2.3" cy="2.3" r="2.3"></circle><path class="st11" d="M32,1.1C32,0.5,31.5,0,30.9,0H10.3C9.7,0,9.1,0.5,9.1,1.1v2.3c0,0.6,0.5,1.1,1.1,1.1h20.6c0.6,0,1.1-0.5,1.1-1.1V1.1z"></path><path class="st11" d="M32,10.3c0-0.6-0.5-1.1-1.1-1.1H10.3c-0.6,0-1.1,0.5-1.1,1.1v2.3c0,0.6,0.5,1.1,1.1,1.1h20.6c0.6,0,1.1-0.5,1.1-1.1V10.3z"></path><path class="st11" d="M32,19.4c0-0.6-0.5-1.1-1.1-1.1H10.3c-0.6,0-1.1,0.5-1.1,1.1v2.3c0,0.6,0.5,1.1,1.1,1.1h20.6c0.6,0,1.1-0.5,1.1-1.1V19.4z"></path></g></symbol><symbol id="speaker-on" viewBox="0 0 32 28.1"><g><g><path d="M12.6,5L6.3,8.7H0.6C0.3,8.7,0,9,0,9.3V19c0,0.4,0.3,0.7,0.6,0.7h5.9l6.1,3.4c1.3,0.8,1.5,0.2,1.5-1.5V6.5C14.2,4.8,13.9,4.2,12.6,5z"></path></g><path d="M18,23.1v-2.8c2.6,0,4.7-2.8,4.7-6.2S20.6,7.8,18,7.8V5c4.2,0,7.5,4,7.5,9S22.1,23.1,18,23.1z"></path><path d="M21.3,28.1v-2.8c4.4,0,7.9-5,7.9-11.2S25.6,2.8,21.3,2.8V0C27.2,0,32,6.3,32,14C32,21.8,27.2,28.1,21.3,28.1z"></path></g></symbol><symbol id="speaker-off" viewBox="0 0 32 18.8"><g><g><path d="M12.6,0.4L6.3,4H0.6C0.3,4,0,4.3,0,4.7v9.7c0,0.4,0.3,0.7,0.6,0.7h5.9l6.1,3.4c1.3,0.8,1.5,0.2,1.5-1.5V1.8C14.2,0.2,13.9-0.5,12.6,0.4z"></path></g><polygon points="32,4.5 30.2,2.7 25.3,7.6 20.4,2.7 18.6,4.5 23.5,9.4 18.6,14.3 20.4,16.1 25.3,11.2 30.2,16.1 32,14.3 27.1,9.4 "></polygon></g></symbol><symbol id="captions" viewBox="0 0 32 16.2"><g><path d="M8.6,16.2c-1.2,0-2.4-0.2-3.4-0.6c-1.1-0.4-2-0.9-2.7-1.6c-0.8-0.7-1.4-1.6-1.8-2.6C0.2,10.4,0,9.3,0,8.1c0-1.2,0.2-2.3,0.7-3.3s1-1.8,1.8-2.6C3.2,1.5,4.1,1,5.2,0.6S7.4,0,8.6,0c1,0,1.9,0.1,2.7,0.4c0.8,0.3,1.4,0.6,2,1.1c0.6,0.4,1.1,0.9,1.4,1.5c0.4,0.5,0.7,1.1,0.9,1.6l-4.1,1.9c-0.1-0.3-0.2-0.6-0.4-0.9C11,5.3,10.8,5,10.5,4.8c-0.3-0.2-0.6-0.4-0.9-0.5c-0.3-0.1-0.7-0.2-1-0.2C8,4.2,7.5,4.3,7,4.5C6.6,4.7,6.2,5,5.8,5.3C5.5,5.7,5.2,6.1,5.1,6.5C4.9,7,4.8,7.5,4.8,8.1c0,0.5,0.1,1.1,0.3,1.5c0.2,0.5,0.4,0.9,0.8,1.2c0.3,0.4,0.7,0.6,1.2,0.8C7.5,11.9,8,12,8.6,12c0.3,0,0.7-0.1,1-0.2c0.3-0.1,0.6-0.3,0.9-0.5c0.3-0.2,0.5-0.4,0.7-0.7c0.2-0.3,0.3-0.6,0.4-0.9l4.1,1.9c-0.2,0.5-0.5,1-0.9,1.6c-0.4,0.5-0.9,1-1.4,1.5c-0.6,0.4-1.2,0.8-2,1.1C10.5,16,9.6,16.2,8.6,16.2z"></path><path d="M24.9,16.2c-1.2,0-2.4-0.2-3.4-0.6c-1.1-0.4-2-0.9-2.7-1.6c-0.8-0.7-1.4-1.6-1.8-2.6c-0.4-1-0.7-2.1-0.7-3.3c0-1.2,0.2-2.3,0.7-3.3c0.4-1,1-1.8,1.8-2.6c0.8-0.7,1.7-1.3,2.7-1.7C22.6,0.2,23.7,0,24.9,0c1,0,1.9,0.1,2.7,0.4c0.8,0.3,1.4,0.6,2,1.1c0.6,0.4,1.1,0.9,1.4,1.5C31.5,3.5,31.8,4,32,4.5l-4.1,1.9c-0.1-0.3-0.2-0.6-0.4-0.9c-0.2-0.3-0.4-0.5-0.7-0.7c-0.3-0.2-0.6-0.4-0.9-0.5c-0.3-0.1-0.7-0.2-1-0.2c-0.6,0-1.1,0.1-1.5,0.3c-0.5,0.2-0.9,0.5-1.2,0.8c-0.3,0.4-0.6,0.8-0.8,1.2c-0.2,0.5-0.3,1-0.3,1.5c0,0.5,0.1,1.1,0.3,1.5c0.2,0.5,0.4,0.9,0.8,1.2c0.3,0.4,0.7,0.6,1.2,0.8c0.5,0.2,1,0.3,1.5,0.3c0.3,0,0.7-0.1,1-0.2c0.3-0.1,0.6-0.3,0.9-0.5c0.3-0.2,0.5-0.4,0.7-0.7c0.2-0.3,0.3-0.6,0.4-0.9l4.1,1.9c-0.2,0.5-0.5,1-0.9,1.6c-0.4,0.5-0.9,1-1.4,1.5c-0.6,0.4-1.2,0.8-2,1.1C26.8,16,25.9,16.2,24.9,16.2z"></path></g></symbol><symbol id="share" viewBox="0 0 32 20"><path d="M20,6c0,0-7.9-0.1-13.2,3.3C1.6,12.7,0,20,0,20s5.1-5.4,9.8-7.2C14.9,10.9,20,12,20,12v6l12-8L20,0V6z"></path></symbol><symbol id="fullscreen" viewBox="0 0 32 32"><g><g><polygon class="st11" points="11.4,0 0,0 0,11.4 3.4,8 9.1,13.7 13.7,9.1 8,3.4 "></polygon></g><g><polygon class="st11" points="20.6,32 32,32 32,20.6 28.6,24 22.9,18.3 18.3,22.9 24,28.6 "></polygon></g><g><polygon class="st11" points="32,11.4 32,0 20.6,0 24,3.4 18.3,9.1 22.9,13.7 28.6,8 "></polygon></g><g><polygon class="st11" points="0,20.6 0,32 11.4,32 8,28.6 13.7,22.9 9.1,18.3 3.4,24 "></polygon></g></g></symbol><symbol id="video" viewBox="0 0 32 22"><g><path d="M29,2.2c-0.7,0.2-4.6,3-7.9,5.3V2.1C21.1,1,20.1,0,19,0H2.1C1,0,0,1,0,2.1v17.7C0,21,1,22,2.1,22H19c1.2,0,2.1-1,2.1-2.1v-5.9c3.3,2.4,7.4,5.4,8.2,5.6c1.4,0.4,2.7-0.1,2.7-0.1V2.2C32,2.2,30.1,1.8,29,2.2z"></path></g></symbol></svg>
+ <div class="videoPlayer " data-component="videoPlayer" data-video-player-options="{&quot;config&quot;:{&quot;policies&quot;:{&quot;default&quot;:11417438},&quot;tracking&quot;:{&quot;can_partner_id&quot;:&quot;canPartnerID&quot;,&quot;comscore_id&quot;:&quot;3000085&quot;,&quot;comscore_home&quot;:&quot;3000085&quot;,&quot;comscore_how_to&quot;:&quot;3000078&quot;,&quot;comscore_news&quot;:&quot;3000078&quot;,&quot;comscore_reviews&quot;:&quot;3000087&quot;,&quot;comscore_videos&quot;:&quot;3000088&quot;,&quot;comscore_sense_id&quot;:&quot;cnetvideo&quot;,&quot;comscore_sense_home&quot;:&quot;cnethome&quot;,&quot;comscore_sense_how_to&quot;:&quot;cnethowto&quot;,&quot;comscore_sense_news&quot;:&quot;cnetnews&quot;,&quot;comscore_sense_reviews&quot;:&quot;cnetreviews&quot;,&quot;comscore_sense_videos&quot;:&quot;cnetvideo&quot;,&quot;nielsen_cid&quot;:&quot;us-200330&quot;,&quot;nielsen_vcid&quot;:&quot;c07&quot;,&quot;nielsen_vcid_reviews&quot;:&quot;c05&quot;,&quot;nielsen_vcid_home&quot;:&quot;c07&quot;,&quot;nielsen_vcid_news&quot;:&quot;c08&quot;,&quot;nielsen_vcid_how_to&quot;:&quot;c09&quot;,&quot;nielsen_vcid_videos&quot;:&quot;c20&quot;},&quot;uvpConfig&quot;:{&quot;mpx_account&quot;:&quot;kYEXFC&quot;}},&quot;playlist&quot;:[{&quot;id&quot;:&quot;dc362fcb-cba9-4bf6-b62d-aa7e39a092c7&quot;,&quot;title&quot;:&quot;Google Assistant mejora, hay m\u00e1s cambios en Twitter y llega el OnePlus 5T&quot;,&quot;description&quot;:&quot;[La semana en CNET en Espa\u00f1ol #163] Esta semana hablamos de las caracter\u00edsticas del OnePlus 5T, las novedades de Google Assistant y los cambios que ha hecho Twitter a su proceso de verificaci\u00f3n.&quot;,&quot;slug&quot;:&quot;google-assistant-mejora-hay-mas-cambios-en-twitter-y-llega-el-oneplus-5t&quot;,&quot;chapters&quot;:{&quot;data&quot;:[],&quot;paging&quot;:{&quot;total&quot;:0,&quot;limit&quot;:15,&quot;offset&quot;:0}},&quot;duration&quot;:489,&quot;hasCaptions&quot;:true,&quot;mpxId&quot;:&quot;&quot;,&quot;mpxRefId&quot;:&quot;38uKprB1_hIkwXffuj20eMptuapoWX4K&quot;,&quot;ratingVChip&quot;:&quot;TV-14&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;1c0fd1cb-c387-11e2-8208-0291187b029a&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;6a9b3b6b-575a-4b66-b4b2-4aedee01be6d&quot;,&quot;firstName&quot;:&quot;Gabriel&quot;,&quot;lastName&quot;:&quot;Sama&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;b45f7536-5ba2-40d8-a054-40341b279649&quot;,&quot;title&quot;:&quot;La semana&quot;},&quot;image&quot;:{&quot;id&quot;:&quot;70540d7a-cbc5-4563-ab86-b5549ef68168&quot;,&quot;filename&quot;:&quot;oneplus-5t-product-21.jpg&quot;,&quot;dateCreated&quot;:{&quot;date&quot;:&quot;2017-11-13 17:56:07&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;alt&quot;:&quot;oneplus-5t-product-21&quot;,&quot;credits&quot;:&quot;Andrew Hoyle\/CNET&quot;,&quot;path&quot;:&quot;https:\/\/cnet4.cbsistatic.com\/img\/EcEJ76YiEastX8yctETLURpwICc=\/2017\/11\/13\/70540d7a-cbc5-4563-ab86-b5549ef68168\/oneplus-5t-product-21.jpg&quot;,&quot;cropGravity&quot;:0,&quot;crop&quot;:null,&quot;typeName&quot;:&quot;content_image&quot;},&quot;thumbnail&quot;:&quot;https:\/\/cdn1.cnet.com\/img\/xTOX9ZdBnxWFXxkzSLG6dBydTMg=\/fit-in\/194x109\/2017\/11\/13\/70540d7a-cbc5-4563-ab86-b5549ef68168\/oneplus-5t-product-21.jpg&quot;,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/es\/videos\/manifest\/google-assistant-mejora-hay-mas-cambios-en-twitter-y-llega-el-oneplus-5t.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/11\/17\/1098353731717\/es_lasemana16novFINAL_1265786_740.mp4&quot;,&quot;selector&quot;:&quot;\/es\/videos\/selector\/google-assistant-mejora-hay-mas-cambios-en-twitter-y-llega-el-oneplus-5t\/&quot;},{&quot;id&quot;:&quot;7097a578-8dc8-48b8-9bea-bc0dcabdb558&quot;,&quot;title&quot;:&quot;El \u0027bug\u0027 de MacOS High Sierra y la expansi\u00f3n de Huawei en Latinoam\u00e9rica&quot;,&quot;description&quot;:&quot;[La semana en CNET en Espa\u00f1ol #165] Apple solucion\u00f3 el problema de que se pod\u00eda acceder a algunas Mac sin contrase\u00f1a. Huawei adelant\u00f3 planes para la regi\u00f3n.&quot;,&quot;slug&quot;:&quot;bug-de-macos-high-sierra-expansion-huawei-en-latinoamerica&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;duration&quot;:550,&quot;hasCaptions&quot;:true,&quot;mpxId&quot;:1107731523514,&quot;mpxRefId&quot;:&quot;IwoiIhK2JgjRf8oj2sS99ClHB2K8w8uw&quot;,&quot;ratingVChip&quot;:&quot;&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;272ff2eb-03d3-4e24-9b55-09f4633368f9&quot;,&quot;firstName&quot;:&quot;Mariana&quot;,&quot;lastName&quot;:&quot;Marcaletti&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;b45f7536-5ba2-40d8-a054-40341b279649&quot;,&quot;title&quot;:[&quot;La semana&quot;]},&quot;image&quot;:{&quot;id&quot;:&quot;1934b65e-89f2-4449-ae15-61584288ed9d&quot;,&quot;name&quot;:&quot;macos-high-sierra-image&quot;,&quot;filename&quot;:&quot;macos-high-sierra-image.jpg&quot;,&quot;path&quot;:&quot;https:\/\/cnet4.cbsistatic.com\/img\/bmNGTUwxlWz6QUuj1pUj2G90QUE=\/2017\/09\/27\/1934b65e-89f2-4449-ae15-61584288ed9d\/macos-high-sierra-image.jpg&quot;,&quot;size&quot;:1306802,&quot;height&quot;:1080,&quot;width&quot;:1920,&quot;dateCreated&quot;:{&quot;date&quot;:&quot;2017-09-27 17:49:57&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;dateUpdated&quot;:{&quot;date&quot;:&quot;2017-09-27 17:49:57&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;needsModeration&quot;:0,&quot;mimeType&quot;:&quot;image\/jpeg&quot;,&quot;deleted&quot;:0,&quot;preferred&quot;:0,&quot;watermark&quot;:0,&quot;alt&quot;:&quot;macos-high-sierra-image&quot;,&quot;cropGravity&quot;:0},&quot;thumbnail&quot;:&quot;https:\/\/cdn3.cnet.com\/img\/C6S9ny6QsPl0M4RazJBreX1ZaO8=\/fit-in\/194x109\/2017\/09\/27\/1934b65e-89f2-4449-ae15-61584288ed9d\/macos-high-sierra-image.jpg&quot;,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/es\/videos\/manifest\/bug-de-macos-high-sierra-expansion-huawei-en-latinoamerica.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/12\/01\/1107731523514\/es_lasemana1diciembre_1275504_740.mp4&quot;,&quot;selector&quot;:&quot;\/es\/videos\/selector\/bug-de-macos-high-sierra-expansion-huawei-en-latinoamerica\/&quot;},{&quot;id&quot;:&quot;41e31d24-ab17-445d-8841-ceb86ae9044f&quot;,&quot;title&quot;:&quot;Nuestros consejos para la temporada de ofertas&quot;,&quot;description&quot;:&quot;[La semana en CNET en Espa\u00f1ol #164] Nada de madrugar, hacer filas largas y estresarte. Esta semana te compartimos sugerencias puntuales para que le saques m\u00e1s jugo a las compras de Black Friday y Cyber Monday.&quot;,&quot;slug&quot;:&quot;consejos-ofertas-viernes-negro&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;duration&quot;:441,&quot;hasCaptions&quot;:true,&quot;mpxId&quot;:1102073923731,&quot;mpxRefId&quot;:&quot;5XzHm1c3DBSxFhifEcVyEyTaNwlg6R0a&quot;,&quot;ratingVChip&quot;:&quot;&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;272ff2eb-03d3-4e24-9b55-09f4633368f9&quot;,&quot;firstName&quot;:&quot;Mariana&quot;,&quot;lastName&quot;:&quot;Marcaletti&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;b45f7536-5ba2-40d8-a054-40341b279649&quot;,&quot;title&quot;:[&quot;La semana&quot;]},&quot;image&quot;:{&quot;id&quot;:&quot;154d2576-1ff8-41d8-ac2a-414450d5ee6c&quot;,&quot;name&quot;:&quot;viernesnegro&quot;,&quot;filename&quot;:&quot;viernesnegro.jpg&quot;,&quot;path&quot;:&quot;https:\/\/cnet4.cbsistatic.com\/img\/e6vO1LTPdKpSs3924nDWctNCZMY=\/2017\/11\/22\/154d2576-1ff8-41d8-ac2a-414450d5ee6c\/viernesnegro.jpg&quot;,&quot;size&quot;:278742,&quot;height&quot;:900,&quot;width&quot;:1600,&quot;dateCreated&quot;:{&quot;date&quot;:&quot;2017-11-22 22:32:03&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;dateUpdated&quot;:{&quot;date&quot;:&quot;2017-11-22 22:32:03&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;needsModeration&quot;:0,&quot;mimeType&quot;:&quot;image\/jpeg&quot;,&quot;deleted&quot;:0,&quot;preferred&quot;:0,&quot;watermark&quot;:0,&quot;alt&quot;:&quot;viernesnegro&quot;},&quot;thumbnail&quot;:&quot;https:\/\/cdn4.cnet.com\/img\/fcY_4UWuEddB5TbPXMSaNvgfcec=\/fit-in\/194x109\/2017\/11\/22\/154d2576-1ff8-41d8-ac2a-414450d5ee6c\/viernesnegro.jpg&quot;,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/es\/videos\/manifest\/consejos-ofertas-viernes-negro.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/11\/22\/1102073923731\/semana_nov22_1270073_740.mp4&quot;,&quot;selector&quot;:&quot;\/es\/videos\/selector\/consejos-ofertas-viernes-negro\/&quot;},{&quot;id&quot;:&quot;db8b62cc-68fc-4f96-8fbc-bcbe5d4f8a1c&quot;,&quot;title&quot;:&quot;El desembarco de Xiaomi en Espa\u00f1a y la previa del OnePlus 5T&quot;,&quot;description&quot;:&quot;[La semana en CNET en Espa\u00f1ol #162] La fabricante de celulares china llega a Espa\u00f1a con m\u00e1s de seis tel\u00e9fonos de menos de 300 euros, y el OnePlus 5T se presentar\u00e1 el 16 de noviembre en Estados Unidos.&quot;,&quot;slug&quot;:&quot;el-desembarco-de-xiaomi-en-espana-y-la-previa-del-oneplus-5t&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;duration&quot;:500,&quot;hasCaptions&quot;:true,&quot;mpxId&quot;:1093211715579,&quot;mpxRefId&quot;:&quot;APQJZKaXzbhmwxYJcFFg_AHYIHfLWNU6&quot;,&quot;ratingVChip&quot;:&quot;&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;272ff2eb-03d3-4e24-9b55-09f4633368f9&quot;,&quot;firstName&quot;:&quot;Mariana&quot;,&quot;lastName&quot;:&quot;Marcaletti&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;b45f7536-5ba2-40d8-a054-40341b279649&quot;,&quot;title&quot;:[&quot;La semana&quot;]},&quot;image&quot;:{&quot;id&quot;:&quot;96ec74ea-1acb-48be-b74e-816ba301d19a&quot;,&quot;name&quot;:&quot;oneplus-5t&quot;,&quot;filename&quot;:&quot;oneplus-5t.jpg&quot;,&quot;path&quot;:&quot;https:\/\/cnet4.cbsistatic.com\/img\/KK0CqnMaqMxZ9bC-3jbAiQhnutM=\/2017\/10\/30\/96ec74ea-1acb-48be-b74e-816ba301d19a\/oneplus-5t.jpg&quot;,&quot;caption&quot;:&quot;<p>Una supuesta foto del OnePlus 5T filtrada en China.<\/p>&quot;,&quot;size&quot;:41019,&quot;height&quot;:592,&quot;width&quot;:690,&quot;dateCreated&quot;:{&quot;date&quot;:&quot;2017-10-30 19:55:39&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;dateUpdated&quot;:{&quot;date&quot;:&quot;2017-10-30 19:56:18&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;needsModeration&quot;:0,&quot;mimeType&quot;:&quot;image\/jpeg&quot;,&quot;deleted&quot;:0,&quot;preferred&quot;:0,&quot;watermark&quot;:0,&quot;credits&quot;:&quot;Weibo&quot;,&quot;alt&quot;:&quot;oneplus-5t&quot;},&quot;thumbnail&quot;:&quot;https:\/\/cdn2.cnet.com\/img\/9CtVwepYPv7fktP5LlCjoAjq0is=\/fit-in\/194x109\/2017\/10\/30\/96ec74ea-1acb-48be-b74e-816ba301d19a\/oneplus-5t.jpg&quot;,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/es\/videos\/manifest\/el-desembarco-de-xiaomi-en-espana-y-la-previa-del-oneplus-5t.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/11\/10\/1093211715579\/es_lasemana_9noviembre02_1259372_740.mp4&quot;,&quot;selector&quot;:&quot;\/es\/videos\/selector\/el-desembarco-de-xiaomi-en-espana-y-la-previa-del-oneplus-5t\/&quot;},{&quot;id&quot;:&quot;283c729a-eeeb-454b-ae03-d1d95229031d&quot;,&quot;title&quot;:&quot;Google Assistant habla espa\u00f1ol y el iPhone X presenta un nuevo idioma de dise\u00f1o&quot;,&quot;description&quot;:&quot;[La semana en CNET en Espa\u00f1ol #161] El asistente virtual de Google ahora domina el idioma de Cervantes, y el iPhone X inaugura nuevos gestos y un nuevo lenguaje de dise\u00f1o de la marca.&quot;,&quot;slug&quot;:&quot;google-assistant-habla-espanol-y-el-iphone-x-un-nuevo-idioma&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;duration&quot;:683,&quot;hasCaptions&quot;:true,&quot;mpxId&quot;:1087923267594,&quot;mpxRefId&quot;:&quot;jCXv62P0jCNTJB3jKuthMzA3CV0ghejk&quot;,&quot;ratingVChip&quot;:&quot;&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;272ff2eb-03d3-4e24-9b55-09f4633368f9&quot;,&quot;firstName&quot;:&quot;Mariana&quot;,&quot;lastName&quot;:&quot;Marcaletti&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;b45f7536-5ba2-40d8-a054-40341b279649&quot;,&quot;title&quot;:[&quot;La semana&quot;]},&quot;image&quot;:{&quot;id&quot;:&quot;0d404b1c-30e9-4ccf-9901-d2125b2b23f2&quot;,&quot;name&quot;:&quot;iphone-x-67&quot;,&quot;filename&quot;:&quot;iphone-x-67.jpg&quot;,&quot;path&quot;:&quot;https:\/\/cnet4.cbsistatic.com\/img\/JoewZeNO5ePGyD5iGiD7VM32i9w=\/2017\/11\/03\/0d404b1c-30e9-4ccf-9901-d2125b2b23f2\/iphone-x-67.jpg&quot;,&quot;size&quot;:153088,&quot;height&quot;:900,&quot;width&quot;:1600,&quot;dateCreated&quot;:{&quot;date&quot;:&quot;2017-11-03 16:19:37&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;dateUpdated&quot;:{&quot;date&quot;:&quot;2017-11-03 16:19:37&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;needsModeration&quot;:0,&quot;mimeType&quot;:&quot;image\/jpeg&quot;,&quot;deleted&quot;:0,&quot;preferred&quot;:0,&quot;watermark&quot;:0,&quot;alt&quot;:&quot;iphone-x-67&quot;},&quot;thumbnail&quot;:&quot;https:\/\/cdn3.cnet.com\/img\/6fdfuTdyxV3t7waWLSKyE6df3fY=\/fit-in\/194x109\/2017\/11\/03\/0d404b1c-30e9-4ccf-9901-d2125b2b23f2\/iphone-x-67.jpg&quot;,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/es\/videos\/manifest\/google-assistant-habla-espanol-y-el-iphone-x-un-nuevo-idioma.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/11\/03\/1087923267594\/semananov2_1253191_740.mp4&quot;,&quot;selector&quot;:&quot;\/es\/videos\/selector\/google-assistant-habla-espanol-y-el-iphone-x-un-nuevo-idioma\/&quot;},{&quot;id&quot;:&quot;a3c0de25-3d75-44b9-9c83-6925dbd3ebb2&quot;,&quot;title&quot;:&quot;La pantalla del Pixel 2 XL, la llave maestra de Amazon y el inminente iPhone X&quot;,&quot;description&quot;:&quot;[La semana en CNET en Espa\u00f1ol #160] Analizamos los problemas con el panel OLED del tel\u00e9fono de Google, los env\u00edos de Amazon entran en tu hogar y ya est\u00e1 a la puerta el nuevo tel\u00e9fono de Apple.&quot;,&quot;slug&quot;:&quot;la-pantalla-de-pixel-2-xl-la-llave-maestra-de-amazon-y-el-inminente-iphone-x&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;duration&quot;:574,&quot;hasCaptions&quot;:true,&quot;mpxId&quot;:1082906179568,&quot;mpxRefId&quot;:&quot;t4LPcFt8Hmm8Vg7U8o4s4_E0Xn_xqxAj&quot;,&quot;ratingVChip&quot;:&quot;&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;272ff2eb-03d3-4e24-9b55-09f4633368f9&quot;,&quot;firstName&quot;:&quot;Mariana&quot;,&quot;lastName&quot;:&quot;Marcaletti&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;b45f7536-5ba2-40d8-a054-40341b279649&quot;,&quot;title&quot;:[&quot;La semana&quot;]},&quot;image&quot;:{&quot;id&quot;:&quot;00597069-4f14-41dd-b1f1-e7bc413d4e17&quot;,&quot;name&quot;:&quot;Google Pixel 2 XL screen burn-in&quot;,&quot;filename&quot;:&quot;screen-problems-2405-001.jpg&quot;,&quot;path&quot;:&quot;https:\/\/cnet4.cbsistatic.com\/img\/zM13Oy086Lnor1efnDjx0mVca88=\/2017\/10\/23\/00597069-4f14-41dd-b1f1-e7bc413d4e17\/screen-problems-2405-001.jpg&quot;,&quot;caption&quot;:&quot;<p><\/p>&quot;,&quot;size&quot;:1865911,&quot;height&quot;:1467,&quot;width&quot;:2200,&quot;dateCreated&quot;:{&quot;date&quot;:&quot;2017-10-23 19:09:04&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;dateUpdated&quot;:{&quot;date&quot;:&quot;2017-10-23 19:09:23&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;needsModeration&quot;:0,&quot;mimeType&quot;:&quot;image\/jpeg&quot;,&quot;deleted&quot;:0,&quot;preferred&quot;:0,&quot;watermark&quot;:1,&quot;credits&quot;:&quot;Josh Miller\/CNET&quot;,&quot;alt&quot;:&quot;Google Pixel 2 XL screen burn-in&quot;},&quot;thumbnail&quot;:&quot;https:\/\/cdn4.cnet.com\/img\/XTHaIZ7ZBuXvKPKB5niFqcP_23M=\/fit-in\/194x109\/2017\/10\/23\/00597069-4f14-41dd-b1f1-e7bc413d4e17\/screen-problems-2405-001.jpg&quot;,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/es\/videos\/manifest\/la-pantalla-de-pixel-2-xl-la-llave-maestra-de-amazon-y-el-inminente-iphone-x.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/10\/27\/1082906179568\/es_lasemana27october_1247416_740.mp4&quot;,&quot;selector&quot;:&quot;\/es\/videos\/selector\/la-pantalla-de-pixel-2-xl-la-llave-maestra-de-amazon-y-el-inminente-iphone-x\/&quot;},{&quot;id&quot;:&quot;ae23b111-1e88-4edd-b1b5-dfed3e0cb061&quot;,&quot;title&quot;:&quot;Se consolida el hogar inteligente y aparece el fallo KRACK&quot;,&quot;description&quot;:&quot;[La semana en CNET en Espa\u00f1ol #159] Esta semana hablamos de la nueva plataforma de Samsung para el Internet de las Cosas, de la vulnerabilidad KRACK y de los nuevos tel\u00e9fonos en el mercado.&quot;,&quot;slug&quot;:&quot;la-semana-oct-19-cnet-espanol&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;duration&quot;:691,&quot;hasCaptions&quot;:true,&quot;mpxId&quot;:1077887555736,&quot;mpxRefId&quot;:&quot;H4gkX0JjbU6b4gxZOkirySjFp3Z845dA&quot;,&quot;ratingVChip&quot;:&quot;&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;6a9b3b6b-575a-4b66-b4b2-4aedee01be6d&quot;,&quot;firstName&quot;:&quot;Gabriel&quot;,&quot;lastName&quot;:&quot;Sama&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;b45f7536-5ba2-40d8-a054-40341b279649&quot;,&quot;title&quot;:[&quot;La semana&quot;]},&quot;image&quot;:{&quot;id&quot;:&quot;d704b38b-cafe-414b-879b-459dd712796c&quot;,&quot;name&quot;:&quot;zte-axon-m-9755-024&quot;,&quot;filename&quot;:&quot;zte-axon-m-9755-024.jpg&quot;,&quot;path&quot;:&quot;https:\/\/cnet4.cbsistatic.com\/img\/VAqXY-db6xzcKly6P5BNqbaHpQw=\/2017\/10\/20\/d704b38b-cafe-414b-879b-459dd712796c\/zte-axon-m-9755-024.jpg&quot;,&quot;size&quot;:87148,&quot;height&quot;:900,&quot;width&quot;:1600,&quot;dateCreated&quot;:{&quot;date&quot;:&quot;2017-10-20 16:33:13&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;dateUpdated&quot;:{&quot;date&quot;:&quot;2017-10-20 16:33:13&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;needsModeration&quot;:0,&quot;mimeType&quot;:&quot;image\/jpeg&quot;,&quot;deleted&quot;:0,&quot;preferred&quot;:0,&quot;watermark&quot;:0,&quot;alt&quot;:&quot;zte-axon-m-9755-024&quot;},&quot;thumbnail&quot;:&quot;https:\/\/cdn3.cnet.com\/img\/ReV56T1ZCShd3YWImeR2IWEqAXU=\/fit-in\/194x109\/2017\/10\/20\/d704b38b-cafe-414b-879b-459dd712796c\/zte-axon-m-9755-024.jpg&quot;,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/es\/videos\/manifest\/la-semana-oct-19-cnet-espanol.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/10\/20\/1077887555736\/semana_oct19_1241505_740.mp4&quot;,&quot;selector&quot;:&quot;\/es\/videos\/selector\/la-semana-oct-19-cnet-espanol\/&quot;},{&quot;id&quot;:&quot;4cb73b8d-1b2f-40ef-bb98-6b093198c681&quot;,&quot;title&quot;:&quot;Un nuevo Kindle y se asoman las nuevas gafas VR de Oculus&quot;,&quot;description&quot;:&quot;[La semana en CNET en Espa\u00f1ol #158] Esta semana, lleg\u00f3 el Kindle Oasis impermeable, se anunciaron las Oculus Go y Santa Cruz para realidad virtual y hubo un problemita con la Google Home Mini.&quot;,&quot;slug&quot;:&quot;un-nuevo-kindle-y-nuevas-gafas-vr-de-oculus-se-asoman&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;duration&quot;:422,&quot;hasCaptions&quot;:true,&quot;mpxId&quot;:1072264259697,&quot;mpxRefId&quot;:&quot;8RTAYZ4ou1BgXXiybOYiclkJ6avdl6SM&quot;,&quot;ratingVChip&quot;:&quot;&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;272ff2eb-03d3-4e24-9b55-09f4633368f9&quot;,&quot;firstName&quot;:&quot;Mariana&quot;,&quot;lastName&quot;:&quot;Marcaletti&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;b45f7536-5ba2-40d8-a054-40341b279649&quot;,&quot;title&quot;:[&quot;La semana&quot;]},&quot;image&quot;:{&quot;id&quot;:&quot;4514916c-88c7-4c00-8324-9d522e0b3047&quot;,&quot;name&quot;:&quot;kindle-oasis-covers&quot;,&quot;filename&quot;:&quot;kindle-oasis-covers.jpg&quot;,&quot;path&quot;:&quot;https:\/\/cnet4.cbsistatic.com\/img\/el7STcxt2T02OoIFWp08KB2D1Bk=\/2017\/10\/05\/4514916c-88c7-4c00-8324-9d522e0b3047\/kindle-oasis-covers.jpg&quot;,&quot;caption&quot;:&quot;<p>The optional covers start at $40 and come in nylon or leather.<\/p>&quot;,&quot;size&quot;:4432570,&quot;height&quot;:3024,&quot;width&quot;:4032,&quot;dateCreated&quot;:{&quot;date&quot;:&quot;2017-10-05 19:52:22&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;dateUpdated&quot;:{&quot;date&quot;:&quot;2017-10-05 19:53:38&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;startDate&quot;:{&quot;date&quot;:&quot;2017-10-11 13:00:00&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;needsModeration&quot;:0,&quot;mimeType&quot;:&quot;image\/jpeg&quot;,&quot;deleted&quot;:0,&quot;preferred&quot;:0,&quot;watermark&quot;:1,&quot;credits&quot;:&quot;David Carnoy\/CNET&quot;,&quot;alt&quot;:&quot;kindle-oasis-covers&quot;},&quot;thumbnail&quot;:&quot;https:\/\/cdn3.cnet.com\/img\/vDQrwxSq2oDqDHdtnPLwD_eJR98=\/fit-in\/194x109\/2017\/10\/05\/4514916c-88c7-4c00-8324-9d522e0b3047\/kindle-oasis-covers.jpg&quot;,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/es\/videos\/manifest\/un-nuevo-kindle-y-nuevas-gafas-vr-de-oculus-se-asoman.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/10\/13\/1072264259697\/es_lasemana12_oct_1235274_740.mp4&quot;,&quot;selector&quot;:&quot;\/es\/videos\/selector\/un-nuevo-kindle-y-nuevas-gafas-vr-de-oculus-se-asoman\/&quot;},{&quot;id&quot;:&quot;09051611-4cd7-4384-a459-b4a1050b5c1c&quot;,&quot;title&quot;:&quot;Google Pixel 2 y lo que nos dej\u00f3 la temporada de s\u00faper tel\u00e9fonos&quot;,&quot;description&quot;:&quot;[La semana en CNET en Espa\u00f1ol #157] La gigante de las b\u00fasquedas se anima con todo al hardware, y sus tel\u00e9fonos marcan el fin de una \u00e9poca de grandes anuncios.&quot;,&quot;slug&quot;:&quot;google-pixel-2-lo-que-nos-dejo-la-temporada-de-super-telefonos&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;duration&quot;:598,&quot;hasCaptions&quot;:true,&quot;mpxId&quot;:1064365123530,&quot;mpxRefId&quot;:&quot;Us3jKld5gPd3TfSG9QLLbD5jw_vdMyds&quot;,&quot;ratingVChip&quot;:&quot;&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;272ff2eb-03d3-4e24-9b55-09f4633368f9&quot;,&quot;firstName&quot;:&quot;Mariana&quot;,&quot;lastName&quot;:&quot;Marcaletti&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;b45f7536-5ba2-40d8-a054-40341b279649&quot;,&quot;title&quot;:[&quot;La semana&quot;]},&quot;image&quot;:{&quot;id&quot;:&quot;d077c3c0-c88f-492f-a8a2-8b043af04f0e&quot;,&quot;name&quot;:&quot;100417-google-pixel-2-7126&quot;,&quot;filename&quot;:&quot;100417-google-pixel-2-7126.jpg&quot;,&quot;path&quot;:&quot;https:\/\/cnet4.cbsistatic.com\/img\/BNbeNYmhimN2Z_KulzpEpn0l7AI=\/2017\/10\/05\/d077c3c0-c88f-492f-a8a2-8b043af04f0e\/100417-google-pixel-2-7126.jpg&quot;,&quot;size&quot;:52547,&quot;height&quot;:467,&quot;width&quot;:830,&quot;dateCreated&quot;:{&quot;date&quot;:&quot;2017-10-05 23:35:43&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;dateUpdated&quot;:{&quot;date&quot;:&quot;2017-10-05 23:35:43&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;needsModeration&quot;:0,&quot;mimeType&quot;:&quot;image\/jpeg&quot;,&quot;deleted&quot;:0,&quot;preferred&quot;:0,&quot;watermark&quot;:0,&quot;alt&quot;:&quot;100417-google-pixel-2-7126&quot;},&quot;thumbnail&quot;:&quot;https:\/\/cdn2.cnet.com\/img\/5-e1P5u3K43hFHiSjBjhdB3f1lI=\/fit-in\/194x109\/2017\/10\/05\/d077c3c0-c88f-492f-a8a2-8b043af04f0e\/100417-google-pixel-2-7126.jpg&quot;,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/es\/videos\/manifest\/google-pixel-2-lo-que-nos-dejo-la-temporada-de-super-telefonos.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/10\/06\/1064365123530\/semana_oct5_1229769_740.mp4&quot;,&quot;selector&quot;:&quot;\/es\/videos\/selector\/google-pixel-2-lo-que-nos-dejo-la-temporada-de-super-telefonos\/&quot;},{&quot;id&quot;:&quot;4bb8f3fd-304c-495e-8b83-57fcea47b89b&quot;,&quot;title&quot;:&quot;La avalancha de productos de Amazon, y tuits de 280 caracteres&quot;,&quot;description&quot;:&quot;[La semana en CNET en Espa\u00f1ol #156] Esta semana vimos nuevas bocinas de Amazon; una nueva c\u00e1mara GoPro y Twitter dijo que duplicar\u00e1 el l\u00edmite de caracteres en tuits.&quot;,&quot;slug&quot;:&quot;amazon-nuevos-productos-twitter-280-caracteres&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;duration&quot;:673,&quot;hasCaptions&quot;:true,&quot;mpxId&quot;:1057969219682,&quot;mpxRefId&quot;:&quot;IUOzQ0y6ps_ludp4UH9c1EZFCsJNA7X8&quot;,&quot;ratingVChip&quot;:&quot;&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;272ff2eb-03d3-4e24-9b55-09f4633368f9&quot;,&quot;firstName&quot;:&quot;Mariana&quot;,&quot;lastName&quot;:&quot;Marcaletti&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;b45f7536-5ba2-40d8-a054-40341b279649&quot;,&quot;title&quot;:[&quot;La semana&quot;]},&quot;image&quot;:{&quot;id&quot;:&quot;194498de-a074-4687-ab0d-d880d5ee05de&quot;,&quot;name&quot;:&quot;amazon-spot-1&quot;,&quot;filename&quot;:&quot;amazon-spot-1.jpg&quot;,&quot;path&quot;:&quot;https:\/\/cnet4.cbsistatic.com\/img\/MLV0Q7ERz3liDf123UtGhwIuMjU=\/2017\/09\/28\/194498de-a074-4687-ab0d-d880d5ee05de\/amazon-spot-1.jpg&quot;,&quot;size&quot;:850748,&quot;height&quot;:1080,&quot;width&quot;:1920,&quot;dateCreated&quot;:{&quot;date&quot;:&quot;2017-09-28 05:39:36&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;dateUpdated&quot;:{&quot;date&quot;:&quot;2017-09-28 05:39:36&quot;,&quot;timezone_type&quot;:3,&quot;timezone&quot;:&quot;UTC&quot;},&quot;needsModeration&quot;:0,&quot;mimeType&quot;:&quot;image\/jpeg&quot;,&quot;deleted&quot;:0,&quot;preferred&quot;:0,&quot;watermark&quot;:0,&quot;alt&quot;:&quot;amazon-spot-1&quot;},&quot;thumbnail&quot;:&quot;https:\/\/cdn1.cnet.com\/img\/0t12kUyxiPUjjBEvghADT8bfI1Q=\/fit-in\/194x109\/2017\/09\/28\/194498de-a074-4687-ab0d-d880d5ee05de\/amazon-spot-1.jpg&quot;,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/es\/videos\/manifest\/amazon-nuevos-productos-twitter-280-caracteres.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/09\/29\/1057969219682\/es_lasemana_28septiembre_1223993_740.mp4&quot;,&quot;selector&quot;:&quot;\/es\/videos\/selector\/amazon-nuevos-productos-twitter-280-caracteres\/&quot;}],&quot;customCSS&quot;:&quot;https:\/\/cnet3.cbsistatic.com\/fly\/css\/video\/common\/uvpjsDefaults-475e4ed2ed-rev.css&quot;,&quot;apeList&quot;:false,&quot;autoplay&quot;:&quot;load&quot;,&quot;mainPlayer&quot;:true,&quot;useCloseButton&quot;:true}"> </div>
+ </div>
+ </div>
+ <div class="stickyColumn" data-component="stickyColumn" data-sticky-column-options="{&quot;offset&quot;:0,&quot;selectorHeightConstraint&quot;:&quot;article&quot;}">
+ <div class="stickyColumnElement" data-meta="{&quot;height&quot;:600,&quot;type&quot;:&quot;required&quot;}">
+ <div id="mpu-plus-top-5a229f90e23b5" class="ad-mpu-plus-top" data-ad="mpu-plus-top">
+ <script type="application/javascript">
+ window.console && console.log && console.log("ADS: queuing mpu-plus-top-5a229f90e23b5 for display");
+ var cbsiGptDivIds = cbsiGptDivIds || [];
+ cbsiGptDivIds.push("mpu-plus-top-5a229f90e23b5");
+ </script>
+ </div>
+ </div>
+ <div class="stickyColumnElement" data-meta="{&quot;height&quot;:300,&quot;type&quot;:&quot;required&quot;}">
+ <div id="mpu-bottom-5a229f90e23b5" class="ad-mpu-bottom" data-ad="mpu-bottom">
+ <script type="application/javascript">
+ window.console && console.log && console.log("ADS: queuing mpu-bottom-5a229f90e23b5 for display");
+ var cbsiGptDivIds = cbsiGptDivIds || [];
+ cbsiGptDivIds.push("mpu-bottom-5a229f90e23b5");
+ </script>
+ </div>
+ </div>
+ </div>
+ </div>
+ </article>
+ <div class="comments collapsible hidden" data-component="toggle" data-toggle-options="{&quot;closeOnUrlChange&quot;:true,&quot;openOnInit&quot;:false}">
+ <div class="close" data-item="trigger"><svg viewBox="0 0 28 28"><polygon points="28,1.9 26.1,0 14,12.1 1.9,0 0,1.9 12.1,14 0,26.1 1.9,28 14,15.9 26.1,28 28,26.1 15.9,14 "></polygon></svg> Cerrar</div>
+ <!-- General comments -->
+ <div id="disqusContainer-87f5b8c3-cb62-4fd5-b3e0-3ce877bcdaea" class="commentsContainer disqusContainer" data-component="selfishScroll" data-disqus-container="null"> <a name="comentarios"></a> <button class="disqusLogin btn-link">Regístrate o inicia sesión para comentar</button>
+ <p class="policy">Les pedimos que sean respetuosos y que utilicen un lenguaje apropiado al opinar. Los comentarios que no respeten nuestra <a href="https://www.cnet.com/es/acerca/reglas-comentarios/" target="_blank">política del foro comunitario</a> serán eliminados.</p>
+ <div data-social="disqus" data-id="87f5b8c3-cb62-4fd5-b3e0-3ce877bcdaea" data-title="Twitter Lite se estrena en 11 países de América Latina" data-url="https://www.cnet.com/es/noticias/twitter-lite-america-latina/"></div>
+ </div>
+ </div>
+ <div class="fixate-bottom-anchor"></div>
+ <div class="upNextBottomWrapper"> <a class="upNextBottom" href="#page-iphone-x-compra-tiempo-espera" data-component="linkTracker" data-link-tracker-options="{&quot;action&quot;:&quot;bottom|UpNext&quot;}">
+ <span class="label">Siguiente artículo:</span>
+ Si quieres un iPhone X, ya no tendrás que esperar tanto
+ </a> </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="tailWrap">
+ <div id="flex-leader-plus-incontent-bottom-5a229f90e23b5" class="ad-flex-leader-plus-incontent-bottom" data-ad="flex-leader-plus-incontent-bottom">
+ <script type="application/javascript">
+ window.console && console.log && console.log("ADS: queuing flex-leader-plus-incontent-bottom-5a229f90e23b5 for display");
+ var cbsiGptDivIds = cbsiGptDivIds || [];
+ cbsiGptDivIds.push("flex-leader-plus-incontent-bottom-5a229f90e23b5");
+ </script>
+ </div>
+ </div>
+ </div>
+ <div id="page-iphone-x-compra-tiempo-espera" class="pageWrapper pageContainer" data-container-asset-id="3d9aefce-56d8-4263-91b4-033609bb98d8" data-component="page" data-page-options="{&quot;allowAds&quot;:true,&quot;ajaxOffset&quot;:2000,&quot;ajaxUrl&quot;:&quot;\/es\/news\/iphone-x-compra-tiempo-espera\/xhr\/&quot;,&quot;browserTitle&quot;:&quot;Si quieres un iPhone X, ya no tendr\u00e1s que esperar tanto&quot;,&quot;browserUrl&quot;:&quot;\/es\/noticias\/iphone-x-compra-tiempo-espera\/&quot;,&quot;cmsUrl&quot;:&quot;https:\/\/cms.cnet.com\/content\/article\/3d9aefce-56d8-4263-91b4-033609bb98d8&quot;,&quot;limit&quot;:5,&quot;resetAdPosition&quot;:true,&quot;taboolaElement&quot;:&quot;taboola-iphone-x-compra-tiempo-espera-below-article-thumbnails-article-redesign&quot;,&quot;trackingEventData&quot;:[],&quot;trackingPageLoadData&quot;:[],&quot;trackScroll25&quot;:true,&quot;trackScroll100&quot;:true}"> </div>
+ </div>
+ <section id="contentPromo" section="footer|content_promo" class="hide" data-component="lazyloadComponent" data-lazyload-component-options="{&quot;endpoint&quot;:&quot;\/es\/component\/load\/xhr\/&quot;,&quot;view&quot;:&quot;responsive_listing_highlight&quot;,&quot;familyName&quot;:&quot;listing&quot;,&quot;typeName&quot;:&quot;curated_listing&quot;,&quot;slug&quot;:&quot;footer-promo-es&quot;}"></section>
+ <footer id="cnetFooter" section="footer">
+ <div class="container">
+ <div id="cnetPromo" class="hide" section="mag_promo" data-component="lazyloadComponent" data-lazyload-component-options="{&quot;endpoint&quot;:&quot;\/es\/component\/load\/xhr\/&quot;,&quot;view&quot;:&quot;h1_and_dek&quot;,&quot;familyName&quot;:&quot;editorial&quot;,&quot;typeName&quot;:&quot;component_editorial_component&quot;,&quot;slug&quot;:&quot;mag-promo-es&quot;}"> </div>
+ <div id="cnetLegal">
+ <div section="site_sections|logo"> <a class="rbLogo " href="/es/" title="CNET en Español">
+
+ <img class="logo" src="/bundles/cnetcss/images/core/redball/esLogo_250.png" height="88" width="88" alt="CNET"/><span class="site">CNET</span>
+ </a> </div>
+ <div class="footerText">
+ <div class="copyright">© CBS Interactive Inc. &nbsp;/&nbsp; Derechos reservados.</div> <a href="/es/acerca/">Acerca de CNET</a> <a href="https://cnet.app.link/e/ZcTLbpPxzG" rel="nofollow">Descarga nuestro app</a> <a href="http://cbsi.force.com/CBSi/privacyesp" rel="nofollow">Política de privacidad</a> <a href="http://cbsi.force.com/CBSi/eulaesp" rel="nofollow">Acuerdo del usuario</a> <a href="http://cbsi.force.com/CBSi/adchoiceesp" rel="nofollow">Condiciones de uso</a> <a href="http://cbsi.force.com/CBSi/touesp" rel="nofollow">Acuerdo del usuario</a> <a href="https://cbsi.secure.force.com/CBSi/knowledgehome_esp?referer=cnet.com/_esp" rel="nofollow">Centro de ayuda</a> </div>
+ </div>
+ <div class="dtl"> <span class="dtlBrands">Marcas de Primera:</span>
+ <div id="dynamic-text-link-top-5a229f90e23b5" class="ad-dynamic-text-link-top" data-ad="dynamic-text-link-top">
+ <script type="application/javascript">
+ window.console && console.log && console.log("ADS: queuing dynamic-text-link-top-5a229f90e23b5 for display");
+ var cbsiGptDivIds = cbsiGptDivIds || [];
+ cbsiGptDivIds.push("dynamic-text-link-top-5a229f90e23b5");
+ </script>
+ </div>
+ <div id="dynamic-text-link-bottom-5a229f90e23b5" class="ad-dynamic-text-link-bottom" data-ad="dynamic-text-link-bottom">
+ <script type="application/javascript">
+ window.console && console.log && console.log("ADS: queuing dynamic-text-link-bottom-5a229f90e23b5 for display");
+ var cbsiGptDivIds = cbsiGptDivIds || [];
+ cbsiGptDivIds.push("dynamic-text-link-bottom-5a229f90e23b5");
+ </script>
+ </div>
+ </div>
+ </div>
+ </footer>
+ </div>
+ <script async="" type="application/javascript" src="https://cnet3.cbsistatic.com/fly/bundles/cnetcore/js/nav.js"></script>
+ <script type="application/javascript">
+ if (window.console) {
+ window.console.log("Service: mpulse");
+ }
+ </script>
+ <script type="application/javascript" src="https://cnet4.cbsistatic.com/fly/bundles/cnetjs/js/libs/mpulse.js"></script>
+ <script type="application/javascript">
+ (function() {
+ try {
+ window.mPulseApp = mPulse.init("38QDY-8CT77-8XNH2-VJQTD-EK4YX", "b57b1dbc-378d-449c-af20-04cebd350c11");
+ } catch (e) {}
+ })();
+
+ function addVars() {
+ BOOMR.addVar({
+ "txId": (window.CnetPageVars && window.CnetPageVars.txId) ? window.CnetPageVars.txId : ""
+ });
+ }
+ if (document.addEventListener) {
+ document.addEventListener("onBoomerangLoaded", addVars);
+ } else if (document.attachEvent) {
+ document.attachEvent("onpropertychange", function(e) {
+ if (!e) {
+ e = window.event;
+ }
+ if (e && e.propertyName === "onBoomerangLoaded") {
+ addVars();
+ }
+ });
+ }
+ </script>
+ <script async="" type="application/javascript" data-main="https://cnet3.cbsistatic.com/fly/4623-fly/js/main.default.js" src="https://cnet2.cbsistatic.com/fly/js/libs/require-2.1.2.js"></script>
+</body>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnet/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnet/expected-images.json
new file mode 100644
index 000000000..e8bdae4fb
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnet/expected-images.json
@@ -0,0 +1,4 @@
+[
+ "https:\/\/cnet3.cbsistatic.com\/img\/1JaRRjqhoGxDVkFxTRRWkZgyK2Q=\/670x503\/2014\/03\/21\/863df5d9-e8b8-4b38-851b-5e3f77f2cf0e\/mark-zuckerberg-facebook-home-10671610x407.jpg",
+ "https:\/\/cnet1.cbsistatic.com\/img\/nAMdBzIE1ogVw5bOBZBaiJCt3Ro=\/570x0\/2014\/03\/21\/863df5d9-e8b8-4b38-851b-5e3f77f2cf0e\/mark-zuckerberg-facebook-home-10671610x407.jpg"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnet/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnet/expected-metadata.json
new file mode 100644
index 000000000..773cbb9f0
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnet/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "Steven Musil",
+ "Direction": null,
+ "Excerpt": "Facebook CEO says be a friend and have a shared vision, but scare them when you have to and move fast.",
+ "Image": "https:\/\/cnet3.cbsistatic.com\/img\/1JaRRjqhoGxDVkFxTRRWkZgyK2Q=\/670x503\/2014\/03\/21\/863df5d9-e8b8-4b38-851b-5e3f77f2cf0e\/mark-zuckerberg-facebook-home-10671610x407.jpg",
+ "Title": "Zuckerberg offers peek at Facebook's acquisition strategies",
+ "SiteName": "CNET"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnet/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnet/expected.html
new file mode 100644
index 000000000..4f401dad0
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnet/expected.html
@@ -0,0 +1,43 @@
+<div data-component="lazyloadImages" itemprop="articleBody">
+
+
+
+
+ <figure section="shortcodeImage"><span><span itemprop="image" itemscope="" itemtype="https://schema.org/ImageObject"><img alt="" class="" height="0" src="https://cnet1.cbsistatic.com/img/nAMdBzIE1ogVw5bOBZBaiJCt3Ro=/570x0/2014/03/21/863df5d9-e8b8-4b38-851b-5e3f77f2cf0e/mark-zuckerberg-facebook-home-10671610x407.jpg" width="570"></img><meta content="https://cnet1.cbsistatic.com/img/nAMdBzIE1ogVw5bOBZBaiJCt3Ro=/570x0/2014/03/21/863df5d9-e8b8-4b38-851b-5e3f77f2cf0e/mark-zuckerberg-facebook-home-10671610x407.jpg" itemprop="url"></meta><meta content="0" itemprop="height"></meta><meta content="570" itemprop="width"></meta></span></span>
+ <figcaption><span><p>Facebook CEO Mark Zuckerberg, the man with the acquisition plan.</p></span><span>Photo by James Martin/CNET
+ </span></figcaption></figure><p>Anyone who has ever been involved in closing a billion-dollar acquisition deal will tell you that you don't go in without a clear, well thought out plan.</p>
+
+ <p>Facebook CEO Mark Zuckerberg knows a thing or two about how to seal the deal on blockbuster buys. After all, he's the man behind his company's <a href="https://www.cnet.com/news/facebook-closes-19-billion-deal-for-whatsapp/" target="_blank">$19 billion acquisition</a> of WhatsApp, he <a href="https://www.cnet.com/news/zuckerberg-did-1-billion-instagram-deal-on-his-own/" target="_blank">personally brokered</a> its $1 billion buyout of <a href="https://www.cnet.com/news/why-facebook-plunked-down-1-billion-to-buy-instagram/" target="_blank">Instagram</a> and closed the <a href="https://www.cnet.com/news/facebook-to-buy-oculus-for-2-billion/" target="_blank">$3 billion deal</a> to buy Oculus VR.</p>
+ <p>Zuckerberg offered a primer on the strategies he and his company employ when they see an attractive target during testimony Tuesday <a href="https://www.cnet.com/news/zenimax-sues-oculus-over-virtual-reality-rift-tech/">in a lawsuit with ZeniMax Media</a>, which accuses Oculus and Facebook of "misappropriating" trade secrets and copyright infringement. At the heart of the lawsuit is technology that helped create liftoff for virtual reality, one of the <a data-component="externalLink" href="http://www.cbsnews.com/videos/the-reality-of-the-virtual-world/" target="_blank">hottest gadget trends today.</a></p>
+ <p>A key Facebook approach is building a long-term relationship with your target, Zuckerberg said at the trial. These deals don't just pop up over night, he said according to a transcript reviewed by <a data-component="externalLink" href="http://www.businessinsider.com/mark-zuckerberg-explains-facebooks-acquisition-strategy-2017-1" target="_blank">Business Insider</a>. They take time to cultivate. </p>
+ <blockquote>
+ <p>I've been building relationships, at least in Instagram and the WhatsApp cases, for years with the founders and the people that are involved in these companies, which made [it] so that when it became time or when we thought it was the right time to move, we felt like we had a good amount of context and had good relationships so that we could move quickly, which was competitively important and why a lot of these acquisitions, I think, came to us instead of our competitors and ended up being very good acquisitions over time that a lot of competitors wished they had gotten instead. </p>
+ </blockquote>
+ <p> He also stressed the need assure your target that you have a shared vision about how you will collaborate after the deal is put to bed. Zuckerberg said this was reason Facebook was able to acquire Oculus for less than its original $4 billion asking price.</p>
+ <blockquote>If this [deal] is going to happen, it's not going to be because we offer a lot of money, although we're going to have to offer a fair price for the company that is more than what they felt like they could do on their own. But they also need to feel like this was actually going to help their mission.</blockquote>
+
+
+
+
+
+
+ <p>When that doesn't work, Zuckerberg said scare tactics is an effective, if undesirable, way of persuading small startups that they face a better chance of survival if they have Facebook to guide their way rather than going it alone.</p>
+ <blockquote>That's less my thing, but I think if you are trying to help convince people that they want to join you, helping them understand all the pain that they would have to go through to build it out independently is a valuable tactic. </blockquote>
+ <p>It also pays to be weary of competing suitors for your startup, Zuckerberg said, and be willing to move fast to stave off rivals and get the deal done.</p>
+ <blockquote>Often, if a company knows we're offering something, they will offer more. So being able to move quickly not only increases our chance of being able to get a deal done if we want to, but it makes it so we don't have end up having to pay a lot more because the process drags out.</blockquote>
+ <p>It wasn't clear why these strategies didn't work on Snapchat CEO Evan Spiegel, who <a href="https://www.cnet.com/news/snapchat-said-to-rebuff-3-billion-offer-from-facebook/">famously rebuffed</a> a $3 billion takeover offer from Facebook in 2013.</p>
+
+
+
+
+
+
+ <p><em><strong>Tech Enabled:</strong> CNET chronicles tech's role in providing new kinds of accessibility. Check it out <a href="https://www.cnet.com/tech-enabled/">here</a>.</em><em><strong><br></br></strong></em></p>
+ <p><em><strong>Technically Literate:</strong> Original works of short fiction with unique perspectives on tech, exclusively on CNET. <a href="https://www.cnet.com/technically-literate/">Here</a>.</em></p>
+
+
+
+
+
+
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnet/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnet/source.html
new file mode 100644
index 000000000..410bf3cc8
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnet/source.html
@@ -0,0 +1,19356 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://opengraphprotocol.org/schema/" xmlns:fb="http://ogp.me/ns/fb#" class="" lang="en">
+
+<head>
+ <script type="text/javascript" src="https://cbsi.demdex.net/event?d_mid=50214751830842117273598128141218526661&amp;d_nsid=0&amp;d_cid_ic=cnet_reg%01%012&amp;d_ld=_ts%3D1484820262002&amp;d_rtbd=json&amp;d_jsonv=1&amp;d_dst=1&amp;d_cb=demdexRequestCallback_0_1484820262002&amp;c_pageName=cnet%3A%2Fnews%2Fzuckerberg-offers-peek-at-facebooks-acquisition-strategies%2F&amp;c_channel=news&amp;c_server=www.cnet.com&amp;c_events=event56%3D4%2Cevent65%2Cevent62&amp;c_eVar1=cnet&amp;c_hier1=cnet%3Anews%7Ctech-industry&amp;c_eVar2=us&amp;c_list2=1c0fd1cb-c387-11e2-8208-0291187b029a&amp;c_eVar3=responsive%20web%7C%7C%7Cdesktop&amp;c_list3=922e7b92-1087-453a-8fe9-04310a618b39&amp;c_eVar5=cbsicnetglobalsite&amp;c_eVar6=cnet%3Anews%7Ctech-industry&amp;c_eVar7=https%3A%2F%2Fwww.cnet.com%2Fnews%2Fzuckerberg-offers-peek-at-facebooks-acquisition-strategies%2F&amp;c_eVar8=Zuckerberg%20offers%20peek%20at%20Facebook%27s%20acquisition%20strategies%20-%20CNET&amp;c_prop9=D%3DUser-Agent&amp;c_eVar10=article&amp;c_eVar11=D%3Dch%2B%22%3A%22%2Bv10&amp;c_eVar15=undefined%7Cundefined&amp;c_eVar16=not_adblocking&amp;c_eVar20=zuckerberg%20offers%20peek%20at%20facebook%27s%20acquisition%20strategies&amp;c_eVar22=magnet_article&amp;c_eVar23=1c0fd1cb-c387-11e2-8208-0291187b029a&amp;c_eVar24=9ebac140-de2e-11e6-80be-03a3e80ab46f&amp;c_prop25=Battle%20of%20the%20CES%20robot%20baristas&amp;c_eVar25=Battle%20of%20the%20CES%20robot%20baristas&amp;c_eVar27=e22d5201-ad55-436c-bcdb-3b1747a584e9&amp;c_eVar30=ca76438a-4f9c-425f-bdb7-a69a7121cef0&amp;c_prop31=a1d3349d-ed37-4c13-a80b-3624ca349b6b&amp;c_eVar31=a1d3349d-ed37-4c13-a80b-3624ca349b6b&amp;c_prop33=a1d3349d-ed37-4c13-a80b-3624ca349b6b&amp;c_eVar33=a1d3349d-ed37-4c13-a80b-3624ca349b6b&amp;c_prop34=Battle%20of%20the%20CES%20robot%20baristas&amp;c_eVar34=Battle%20of%20the%20CES%20robot%20baristas&amp;c_eVar37=patrick%20holland&amp;c_prop38=video&amp;c_eVar38=video&amp;c_prop39=1%3AA%3APRE%3A0%3A1&amp;c_eVar39=1%3AA%3APRE%3A0%3A1&amp;c_prop50=5%3A00AM&amp;c_eVar50=5%3A00AM&amp;c_prop51=Thursday&amp;c_eVar51=Thursday&amp;c_prop52=1&amp;c_eVar52=1&amp;c_prop53=New&amp;c_eVar53=New&amp;c_prop54=First%20Visit&amp;c_eVar54=First%20Visit&amp;c_eVar56=facebook%2Coculus-vr-inc%2Cwhatsapp&amp;c_prop67=1&amp;c_eVar67=1&amp;c_eVar75=article&amp;c_pe=lnk_o&amp;c_pev2=videoAd25Percent"></script>
+ <script type="text/javascript" src="https://cbsi.demdex.net/event?d_mid=50214751830842117273598128141218526661&amp;d_nsid=0&amp;d_cid_ic=cnet_reg%01%012&amp;d_ld=_ts%3D1484820257779&amp;d_rtbd=json&amp;d_jsonv=1&amp;d_dst=1&amp;d_cb=demdexRequestCallback_0_1484820257779&amp;c_pageName=cnet%3A%2Fnews%2Fzuckerberg-offers-peek-at-facebooks-acquisition-strategies%2F&amp;c_channel=news&amp;c_server=www.cnet.com&amp;c_events=event65%2Cevent60&amp;c_eVar1=cnet&amp;c_hier1=cnet%3Anews%7Ctech-industry&amp;c_eVar2=us&amp;c_list2=1c0fd1cb-c387-11e2-8208-0291187b029a&amp;c_eVar3=responsive%20web%7C%7C%7Cdesktop&amp;c_list3=922e7b92-1087-453a-8fe9-04310a618b39&amp;c_eVar5=cbsicnetglobalsite&amp;c_eVar6=cnet%3Anews%7Ctech-industry&amp;c_eVar7=https%3A%2F%2Fwww.cnet.com%2Fnews%2Fzuckerberg-offers-peek-at-facebooks-acquisition-strategies%2F&amp;c_eVar8=Zuckerberg%20offers%20peek%20at%20Facebook%27s%20acquisition%20strategies%20-%20CNET&amp;c_prop9=D%3DUser-Agent&amp;c_eVar10=article&amp;c_eVar11=D%3Dch%2B%22%3A%22%2Bv10&amp;c_eVar15=undefined%7Cundefined&amp;c_eVar16=not_adblocking&amp;c_eVar20=zuckerberg%20offers%20peek%20at%20facebook%27s%20acquisition%20strategies&amp;c_eVar22=magnet_article&amp;c_eVar23=1c0fd1cb-c387-11e2-8208-0291187b029a&amp;c_eVar24=9ebac140-de2e-11e6-80be-03a3e80ab46f&amp;c_prop25=Battle%20of%20the%20CES%20robot%20baristas&amp;c_eVar25=Battle%20of%20the%20CES%20robot%20baristas&amp;c_eVar27=e22d5201-ad55-436c-bcdb-3b1747a584e9&amp;c_eVar30=ca76438a-4f9c-425f-bdb7-a69a7121cef0&amp;c_prop31=a1d3349d-ed37-4c13-a80b-3624ca349b6b&amp;c_eVar31=a1d3349d-ed37-4c13-a80b-3624ca349b6b&amp;c_prop33=a1d3349d-ed37-4c13-a80b-3624ca349b6b&amp;c_eVar33=a1d3349d-ed37-4c13-a80b-3624ca349b6b&amp;c_prop34=Battle%20of%20the%20CES%20robot%20baristas&amp;c_eVar34=Battle%20of%20the%20CES%20robot%20baristas&amp;c_eVar37=patrick%20holland&amp;c_prop38=video&amp;c_eVar38=video&amp;c_prop39=0%3AA%3APRE%3A0%3A1&amp;c_eVar39=0%3AA%3APRE%3A0%3A1&amp;c_prop50=5%3A00AM&amp;c_eVar50=5%3A00AM&amp;c_prop51=Thursday&amp;c_eVar51=Thursday&amp;c_prop52=1&amp;c_eVar52=1&amp;c_prop53=New&amp;c_eVar53=New&amp;c_prop54=First%20Visit&amp;c_eVar54=First%20Visit&amp;c_eVar56=facebook%2Coculus-vr-inc%2Cwhatsapp&amp;c_prop67=1&amp;c_eVar67=1&amp;c_eVar75=article&amp;c_pe=lnk_o&amp;c_pev2=videoAdStart"></script>
+ <script async="" src="https://sb.scorecardresearch.com/beacon.js"></script>
+ <script async="" src="//www.google-analytics.com/analytics.js"></script>
+ <script charset="UTF-8" type="text/javascript" src="https://cdn.taboola.com/libtrc/impl.241-93-RELEASE.js"></script>
+ <script async="" src="//widget.perfectmarket.com/cbsinteractive-cnet/load.js"></script>
+ <script async="" src="https://sb.scorecardresearch.com/beacon.js"></script>
+ <script async="" src="https://cdn.teads.tv/media/format/v3/teads-format.min.js?201711918"></script>
+ <script src="//pagead2.googlesyndication.com/pagead/expansion_embed.js?source=safeframe"></script>
+ <script src="https://pagead2.googlesyndication.com/pagead/osd.js"></script>
+ <script type="text/javascript" async="" charset="utf-8" src="https://connect.facebook.net/en_US/fbevents.js" id="utag_43"></script>
+ <script type="text/javascript" src="//zn_0xssfnnsxmogd01-cbs.siteintercept.qualtrics.com/WRSiteInterceptEngine/?Q_ZID=ZN_0xsSFNNsXmogd01&amp;Q_LOC=https%3A%2F%2Fwww.cnet.com%2Fnews%2Fzuckerberg-offers-peek-at-facebooks-acquisition-strategies%2F"></script>
+ <script type="text/javascript" src="https://cbsi.demdex.net/event?d_mid=50214751830842117273598128141218526661&amp;d_nsid=0&amp;d_cid_ic=cnet_reg%01%012&amp;d_ld=_ts%3D1484820251007&amp;d_rtbd=json&amp;d_jsonv=1&amp;d_dst=1&amp;d_cb=demdexRequestCallback_0_1484820251007&amp;c_pageName=cnet%3A%2Fnews%2Fzuckerberg-offers-peek-at-facebooks-acquisition-strategies%2F&amp;c_channel=news&amp;c_server=www.cnet.com&amp;c_eVar1=cnet&amp;c_hier1=cnet%3Anews%7Ctech-industry&amp;c_prop2=D%3Dv2&amp;c_eVar2=us&amp;c_list2=1c0fd1cb-c387-11e2-8208-0291187b029a&amp;c_prop3=D%3Dv3&amp;c_eVar3=responsive%20web%7C%7C%7Cdesktop&amp;c_list3=95d547b2-8176-11e2-9d12-0018fe8a00b0&amp;c_prop4=D%3Dv4&amp;c_prop5=D%3Dv5&amp;c_eVar5=cbsicnetglobalsite&amp;c_prop6=D%3Dv6&amp;c_eVar6=cnet%3Anews%7Ctech-industry&amp;c_prop7=D%3Dv7&amp;c_eVar7=https%3A%2F%2Fwww.cnet.com%2Fnews%2Fzuckerberg-offers-peek-at-facebooks-acquisition-strategies%2F&amp;c_prop8=D%3Dv8&amp;c_eVar8=Zuckerberg%20offers%20peek%20at%20Facebook%27s%20acquisition%20strategies%20-%20CNET&amp;c_prop9=D%3DUser-Agent&amp;c_prop10=D%3Dv10&amp;c_eVar10=article&amp;c_prop11=D%3Dv11&amp;c_eVar11=D%3Dch%2B%22%3A%22%2Bv10&amp;c_eVar15=not%20authenticated%7Canon&amp;c_prop20=D%3Dv20&amp;c_eVar20=zuckerberg%20offers%20peek%20at%20facebook%27s%20acquisition%20strategies&amp;c_prop22=D%3Dv22&amp;c_eVar22=magnet_article&amp;c_prop23=D%3Dv23&amp;c_eVar23=1c0fd1cb-c387-11e2-8208-0291187b029a&amp;c_prop24=D%3Dv24&amp;c_eVar24=9ebac140-de2e-11e6-80be-03a3e80ab46f&amp;c_prop28=D%3Dv28&amp;c_eVar28=facebook&amp;c_prop30=D%3Dv30&amp;c_eVar30=ca76438a-4f9c-425f-bdb7-a69a7121cef0&amp;c_prop35=D%3Dv35&amp;c_eVar35=HX2Wu1iAjQc1%2BxnJGHw&amp;c_eVar37=steven%20musil&amp;c_eVar49=Below%20Article%20Thumbnails%20Article%20Redesign&amp;c_prop50=5%3A00AM&amp;c_eVar50=5%3A00AM&amp;c_prop51=Thursday&amp;c_eVar51=Thursday&amp;c_prop52=1&amp;c_eVar52=1&amp;c_prop53=New&amp;c_eVar53=New&amp;c_prop54=First%20Visit&amp;c_eVar54=First%20Visit&amp;c_eVar56=facebook%2Coculus-vr-inc%2Cwhatsapp&amp;c_prop67=1&amp;c_eVar67=1"></script>
+ <script src="https://s0.2mdn.net/instream/video/client.js" async="" type="text/javascript"></script>
+ <script type="text/javascript" async="" id="tealium-tag-3005" src="https://sb.scorecardresearch.com/c2/3005086/cs.js"></script>
+ <script src="//tru.am/scripts/ta-pagesocial-sdk.js"></script>
+ <script type="text/javascript" async="async" src="https://dpm.demdex.net/id?d_visid_ver=1.5.4&amp;d_rtbd=json&amp;d_ver=2&amp;d_orgid=10D31225525FF5790A490D4D%40AdobeOrg&amp;d_nsid=0&amp;d_mid=50214751830842117273598128141218526661&amp;d_blob=NRX38WO0n5BH8Th-nqAG_A&amp;d_cid_ic=cnet_reg%01%012&amp;d_cb=s_c_il%5B2%5D._setMarketingCloudFields"></script>
+ <!-- MacLeod loves you! -->
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
+ <meta content="en_US" http-equiv="Content-Language" />
+ <meta name="theme-color" content="#B80000" />
+ <meta name="apple-mobile-web-app-capable" content="yes" />
+ <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
+ <title>Zuckerberg offers peek at Facebook's acquisition strategies - CNET</title>
+ <meta name="description" content="Facebook CEO says be a friend and have a shared vision, but scare them when you have to and move fast." />
+ <link rel="canonical" href="https://www.cnet.com/news/zuckerberg-offers-peek-at-facebooks-acquisition-strategies/" />
+ <meta property="al:ios:app_name" content="CNET" />
+ <meta property="al:ios:app_store_id" content="383989837" />
+ <meta property="al:ios:url" content="https://www.cnet.com/news/zuckerberg-offers-peek-at-facebooks-acquisition-strategies/?search=toapp" />
+ <link rel="alternate" hreflang="x-default" href="https://www.cnet.com/news/zuckerberg-offers-peek-at-facebooks-acquisition-strategies/" />
+ <link rel="alternate" hreflang="en-au" href="https://www.cnet.com/au/news/zuckerberg-offers-peek-at-facebooks-acquisition-strategies/" />
+ <link rel="alternate" hreflang="en-gb" href="https://www.cnet.com/uk/news/zuckerberg-offers-peek-at-facebooks-acquisition-strategies/" />
+ <link rel="alternate" hreflang="en-ie" href="https://www.cnet.com/uk/news/zuckerberg-offers-peek-at-facebooks-acquisition-strategies/" />
+ <link rel="alternate" hreflang="en-us" href="https://www.cnet.com/news/zuckerberg-offers-peek-at-facebooks-acquisition-strategies/" />
+ <link rel="search" type="application/opensearchdescription+xml" title="CNET Search" href="https://www.cnet.com/opensearch.xml" />
+ <meta property="og:site_name" content="CNET" />
+ <meta property="og:title" content="Zuckerberg offers peek at Facebook's acquisition strategies" />
+ <meta property="og:description" content="Facebook CEO says be a friend and have a shared vision, but scare them when you have to and move fast." />
+ <meta property="og:image" content="https://cnet3.cbsistatic.com/img/1JaRRjqhoGxDVkFxTRRWkZgyK2Q=/670x503/2014/03/21/863df5d9-e8b8-4b38-851b-5e3f77f2cf0e/mark-zuckerberg-facebook-home-10671610x407.jpg" />
+ <meta property="og:type" content="Article" />
+ <meta property="og:url" content="https://www.cnet.com/news/zuckerberg-offers-peek-at-facebooks-acquisition-strategies/" />
+ <meta property="fb:app_id" content="16995676698" />
+ <meta property="fb:admins" content="100001036810388" />
+ <meta property="article:publisher" content="https://www.facebook.com/cnet" />
+ <meta content="30261067" property="twitter:account_id" />
+ <meta content="summary" property="twitter:card" />
+ <meta content="https://www.cnet.com/news/zuckerberg-offers-peek-at-facebooks-acquisition-strategies/" property="twitter:url" />
+ <meta content="Zuckerberg offers peek at Facebook's acquisition strategies" property="twitter:title" />
+ <meta content="Facebook CEO says be a friend and have a shared vision, but scare them when you have to and move fast." property="twitter:description" />
+ <meta content=" https://cnet3.cbsistatic.com/img/1JaRRjqhoGxDVkFxTRRWkZgyK2Q=/670x503/2014/03/21/863df5d9-e8b8-4b38-851b-5e3f77f2cf0e/mark-zuckerberg-facebook-home-10671610x407.jpg" property="twitter:image" />
+ <meta content="670" property="twitter:image:width" />
+ <meta content="503" property="twitter:image:height" />
+ <meta content="@CNET" property="twitter:site" />
+ <meta content="@stevenmusil" property="twitter:creator" />
+ <meta content="I1kHyfzmmG1fEVjq8GBUgkfCHc6PNtxce1_VyUuJhws" name="google-site-verification" />
+ <meta content="wNWLoFvk5wsdZQ-u75uCNiaHNa7FLFmNtH2t7dZbXmQ" name="google-site-verification" />
+ <meta content="47524839a64b83c951afca9ef6c838e0" name="p:domain_verify" />
+ <meta content="Product reviews and prices, software downloads, and tech news - CNET" name="msapplication-tooltip" />
+ <meta content="https://www.cnet.com/" name="msapplication-starturl" />
+ <meta content="width=1024;height=768" name="msapplication-window" />
+ <meta content="#424244" name="msapplication-navbutton-color" />
+ <meta content="name=Home; action-uri=https://www.cnet.com/; icon-uri=https://www.cnet.com/favicon.ico" name="msapplication-task" />
+ <meta content="name=Downloads; action-uri=http://download.cnet.com/; icon-uri=http://download.cnet.com/favicon.ico" name="msapplication-task" />
+ <meta content="name=News; action-uri=https://www.cnet.com/news/; icon-uri=https://www.cnet.com/favicon.ico" name="msapplication-task" />
+ <meta content="name=Reviews; action-uri=https://www.cnet.com/reviews/; icon-uri=https://www.cnet.com/favicon.ico" name="msapplication-task" />
+ <meta content="name=Videos; action-uri=https://www.cnet.com/videos/; icon-uri=https://www.cnet.com/favicon.ico" name="msapplication-task" />
+ <meta content="name=Forums; action-uri=http://forums.cnet.com/; icon-uri=https://www.cnet.com/favicon.ico" name="msapplication-task" />
+ <link rel="manifest" href="/manifest.json" />
+ <meta name="viewport" content="width=device-width" />
+ <link rel="amphtml" href="https://www.cnet.com/google-amp/news/zuckerberg-offers-peek-at-facebooks-acquisition-strategies/" />
+ <link rel="stylesheet" href="https://cnet3.cbsistatic.com/fly/css/core/v2/main.desktop-3620562002-rev.css" />
+ <link rel="stylesheet" href="https://cnet3.cbsistatic.com/fly/css/article/v2/article.desktop-2cc9131e47-rev.css" /><iframe src="javascript:false" title="" style="width: 0px; height: 0px; border: 0px none; display: none;"></iframe>
+ <script type="text/javascript" src="https://cbsi.demdex.net/event?d_mid=50214751830842117273598128141218526661&amp;d_nsid=0&amp;d_ld=_ts%3D1484820249978&amp;d_rtbd=json&amp;d_jsonv=1&amp;d_dst=1&amp;d_cb=demdexRequestCallback_0_1484820249978&amp;c_hash=&amp;c_host=www.cnet.com&amp;c_hostname=www.cnet.com&amp;c_pathname=news%2Fzuckerberg-offers-peek-at-facebooks-acquisition-strategies%2F&amp;c_protocol=https%3A"></script>
+ <script type="text/javascript" async="" charset="utf-8" src="//tru.am/scripts/custom/cbsinteractive.js" id="utag_34"></script>
+ <script type="text/javascript" async="" charset="utf-8" src="https://dw.cbsi.com/js/cbsi/ds.js" id="utag_4"></script>
+ <script src="https://asset.pagefair.net/ads.min.js"></script>
+ <script src="https://asset.pagefair.com/measure.min.js"></script>
+ <script type="text/javascript" async="" src="https://segment-data.zqtk.net/cbsi-a7d9c2?url=https%3A%2F%2Fwww.cnet.com%2Fnews%2Fzuckerberg-offers-peek-at-facebooks-acquisition-strategies%2F"></script>
+ <script src="https://as-sec.casalemedia.com/cygnus?v=7&amp;fn=cygnus_index_parse_res&amp;s=182415&amp;r=%7B%22id%22%3A211321091%2C%22site%22%3A%7B%22page%22%3A%22https%3A%2F%2Fwww.cnet.com%2Fnews%2Fzuckerberg-offers-peek-at-facebooks-acquisition-strategies%2F%22%2C%22ref%22%3A%22%22%7D%2C%22imp%22%3A%5B%7B%22id%22%3A%221%22%2C%20%22banner%22%3A%7B%22w%22%3A728%2C%22h%22%3A90%2C%22topframe%22%3A1%7D%2C%22ext%22%3A%20%7B%22sid%22%3A%22101%22%2C%22siteID%22%3A182415%7D%7D%2C%7B%22id%22%3A%222%22%2C%20%22banner%22%3A%7B%22w%22%3A970%2C%22h%22%3A250%2C%22topframe%22%3A1%7D%2C%22ext%22%3A%20%7B%22sid%22%3A%22119%22%2C%22siteID%22%3A183213%7D%7D%2C%7B%22id%22%3A%223%22%2C%20%22banner%22%3A%7B%22w%22%3A300%2C%22h%22%3A250%2C%22topframe%22%3A1%7D%2C%22ext%22%3A%20%7B%22sid%22%3A%22111%22%2C%22siteID%22%3A182416%7D%7D%2C%7B%22id%22%3A%224%22%2C%20%22banner%22%3A%7B%22w%22%3A300%2C%22h%22%3A250%2C%22topframe%22%3A1%7D%2C%22ext%22%3A%20%7B%22sid%22%3A%22108%22%2C%22siteID%22%3A182417%7D%7D%2C%7B%22id%22%3A%225%22%2C%20%22banner%22%3A%7B%22w%22%3A300%2C%22h%22%3A600%2C%22topframe%22%3A1%7D%2C%22ext%22%3A%20%7B%22sid%22%3A%22122%22%2C%22siteID%22%3A182418%7D%7D%2C%7B%22id%22%3A%226%22%2C%20%22banner%22%3A%7B%22w%22%3A728%2C%22h%22%3A90%2C%22topframe%22%3A1%7D%2C%22ext%22%3A%20%7B%22sid%22%3A%22105%22%2C%22siteID%22%3A182421%7D%7D%5D%7D" type="text/javascript"></script>
+ <script>
+ (function() {
+ if (window.BOOMR & amp; & amp; window.BOOMR.version) {
+ return;
+ }
+
+ var dom, doc, where, iframe = document.createElement('iframe');
+
+ iframe.src = "javascript:false";
+ iframe.title = "";
+ iframe.role = "presentation";
+ (iframe.frameElement || iframe).style.cssText = "width:0;height:0;border:0;display:none;";
+
+ where = document.getElementsByTagName('script')[0];
+ where.parentNode.insertBefore(iframe, where);
+
+ try {
+ doc = iframe.contentWindow.document;
+ } catch (e) {
+ dom = document.domain;
+ iframe.src = "javascript:var d=document.open();d.domain='" + dom + "';void(0);";
+ doc = iframe.contentWindow.document;
+ }
+
+ doc.open()._l = function() {
+ var js = this.createElement("script");
+ if (dom) this.domain = dom;
+ js.id = "boomr-if-as";
+ js.src = '//c.go-mpulse.net/boomerang/' + '38QDY-8CT77-8XNH2-VJQTD-EK4YX';
+ BOOMR_lstart = new Date().getTime();
+ this.body.appendChild(js);
+ };
+
+ doc.write('&lt;' + 'body onload="document._l();"&gt;');
+ doc.close();
+ })();
+ </script>
+ <script type="text/javascript">
+ window.CnetPageVars = {
+ ads: {
+ enabled: true,
+ data: {
+ "gpt": {
+ "targeting": {
+ "section": "news",
+ "pid": "ca76438a-4f9c-425f-bdb7-a69a7121cef0",
+ "topic": "tech-industry",
+ "tag": "facebook,startups,virtual-reality",
+ "edition": "us",
+ "test": "||",
+ "mfr": "facebook,oculus-vr-inc,whatsapp",
+ "people": "mark-zuckerberg",
+ "device": "desktop",
+ "ptype": "article",
+ "cid": "zuckerberg-offers-peek-at-facebooks-acquisition-strategies",
+ "env": "prod"
+ },
+ "adConfig": {
+ "network": {
+ "dev": 8264,
+ "prod": 8264
+ },
+ "method": "async-inline",
+ "regions": [{
+ "region": "uk",
+ "countries": ["gb", "ie", "za", "bh", "kw", "om", "qa", "sa", "ae", "iq", "eg", "ye", "fr"]
+ }, {
+ "region": "au",
+ "countries": ["au", "nz"]
+ }, {
+ "region": "asia",
+ "countries": ["sg", "my", "th", "id", "ph", "hk", "vn", "in", "tw"]
+ }],
+ "adUnits": {
+ "intromercial": {
+ "outOfPage": true,
+ "eventCallbacks": {
+ "slotRenderEnded": "intromercialCallback"
+ },
+ "collapseEmptyDiv": true,
+ "collapseEmptyDivOnPageload": true
+ },
+ "skin": {
+ "sizes": [
+ [1600, 1000]
+ ],
+ "position": "top",
+ "eventCallbacks": {
+ "slotRenderEnded": "adSkinCallback"
+ }
+ },
+ "resourceCenterTop": {
+ "sizes": [
+ [300, 300]
+ ],
+ "position": "top"
+ },
+ "resourceCenterBottom": {
+ "sizes": [
+ [632, 160]
+ ],
+ "position": "bottom"
+ },
+ "mpuPlusTop": {
+ "sizes": [
+ [300, 250],
+ [300, 600],
+ [300, 1050]
+ ],
+ "position": "top",
+ "eventCallbacks": {
+ "slotRenderEnded": "mpuPlusTopCallback"
+ }
+ },
+ "marqueeTop": {
+ "sizes": [
+ [300, 60]
+ ],
+ "position": "top"
+ },
+ "mpuTop": {
+ "sizes": [
+ [300, 250]
+ ],
+ "position": "top",
+ "eventCallbacks": {
+ "slotRenderEnded": "mpuTopCallback"
+ }
+ },
+ "mpuBottom": {
+ "sizes": [
+ [300, 250]
+ ],
+ "position": "bottom",
+ "eventCallbacks": {
+ "slotRenderEnded": "mpuBottomCallback"
+ }
+ },
+ "leaderPlusTop": {
+ "sizes": [
+ [970, 66],
+ [728, 90],
+ [970, 250]
+ ],
+ "position": "top",
+ "eventCallbacks": {
+ "slotRenderEnded": "leaderboardTopPlusCallback"
+ }
+ },
+ "leaderTop": {
+ "sizes": [
+ [970, 66],
+ [728, 90]
+ ],
+ "position": "top",
+ "eventCallbacks": {
+ "slotRenderEnded": "leaderTopCallback"
+ }
+ },
+ "buttonTop": {
+ "sizes": [
+ [88, 31],
+ [70, 20],
+ [155, 40]
+ ],
+ "position": "top",
+ "collapseEmptyDiv": true,
+ "collapseEmptyDivOnPageload": true
+ },
+ "omnibarTop": {
+ "sizes": [
+ [980, 45]
+ ],
+ "position": "top",
+ "eventCallbacks": {
+ "slotRenderEnded": "omnibarTopCallback"
+ },
+ "collapseEmptyDiv": true,
+ "collapseEmptyDivOnPageload": true
+ },
+ "sponsoredSearchTop": {
+ "sizes": [
+ [501, 11]
+ ],
+ "position": "top",
+ "collapseEmptyDiv": true,
+ "collapseEmptyDivOnPageload": true
+ },
+ "dynamicTextLinkTop": {
+ "sizes": [
+ [1171, 61]
+ ],
+ "position": "top",
+ "collapseEmptyDiv": true,
+ "collapseEmptyDivOnPageload": true
+ },
+ "mpuHalfTop": {
+ "sizes": [
+ [300, 250],
+ [300, 600]
+ ],
+ "position": "top"
+ },
+ "mpuMiddle": {
+ "sizes": [
+ [300, 250]
+ ],
+ "position": "middle",
+ "eventCallbacks": {
+ "slotRenderEnded": "mpuMiddleCallback"
+ }
+ },
+ "mpuPlusMiddle": {
+ "sizes": [
+ [300, 250],
+ [300, 600]
+ ],
+ "position": "middle"
+ },
+ "mpuMiddle2": {
+ "sizes": [
+ [300, 250]
+ ],
+ "position": "middle2",
+ "eventCallbacks": {
+ "slotRenderEnded": "mpuMiddle2Callback"
+ }
+ },
+ "mpuMiddle3": {
+ "sizes": [
+ [300, 250]
+ ],
+ "position": "middle3",
+ "eventCallbacks": {
+ "slotRenderEnded": "mpuMiddle3Callback"
+ }
+ },
+ "mpuPlusBottom": {
+ "sizes": [
+ [300, 250],
+ [300, 600]
+ ],
+ "position": "bottom"
+ },
+ "leaderPlusMiddle": {
+ "sizes": [
+ [970, 66],
+ [728, 90],
+ [970, 250]
+ ],
+ "position": "middle"
+ },
+ "leaderPlusIncontentTop": {
+ "sizes": [
+ [970, 66],
+ [728, 90],
+ [970, 250],
+ [321, 31]
+ ],
+ "position": "top"
+ },
+ "leaderPlusMantle": {
+ "sizes": [
+ [970, 66],
+ [728, 90],
+ [970, 250]
+ ],
+ "position": "mantle",
+ "eventCallbacks": {
+ "slotRenderEnded": "leaderPlusMantleCallback"
+ }
+ },
+ "leaderMiddle": {
+ "sizes": [
+ [970, 66],
+ [728, 90]
+ ],
+ "position": "middle",
+ "eventCallbacks": {
+ "slotRenderEnded": "leaderMiddleCallback"
+ }
+ },
+ "leaderMiddle2": {
+ "sizes": [
+ [970, 66],
+ [728, 90]
+ ],
+ "position": "middle2"
+ },
+ "leaderMiddle3": {
+ "sizes": [
+ [970, 66],
+ [728, 90]
+ ],
+ "position": "middle3"
+ },
+ "leaderMiddle4": {
+ "sizes": [
+ [970, 66],
+ [728, 90]
+ ],
+ "position": "middle4"
+ },
+ "leaderBottom": {
+ "sizes": [
+ [970, 66],
+ [728, 90]
+ ],
+ "position": "bottom"
+ },
+ "leaderPlusBottom": {
+ "sizes": [
+ [970, 66],
+ [728, 90]
+ ],
+ "position": "bottom"
+ },
+ "flexLeaderTop": {
+ "sizes": [
+ [970, 66],
+ [728, 90],
+ [7, 7]
+ ],
+ "position": "top"
+ },
+ "flexLeaderPlusTop": {
+ "sizes": [
+ [970, 66],
+ [728, 90],
+ [970, 250],
+ [7, 7]
+ ],
+ "position": "top"
+ },
+ "flexLeaderPlusBottom": {
+ "sizes": [
+ [7, 7],
+ [970, 250],
+ [970, 66],
+ [728, 90]
+ ],
+ "position": "bottom"
+ },
+ "flexIncontentAdTop": {
+ "sizes": [
+ [321, 31],
+ [7, 7]
+ ],
+ "position": "top"
+ },
+ "flexLeaderPlusIncontentBottom": {
+ "sizes": [
+ [7, 7],
+ [970, 250],
+ [970, 66],
+ [728, 90],
+ [321, 31]
+ ],
+ "position": "bottom",
+ "eventCallbacks": {
+ "slotRenderEnded": "flexLeaderPlusIncontentBottomCallback"
+ },
+ "collapseEmptyDiv": true
+ },
+ "dynamicShowcaseTop": {
+ "sizes": [
+ [371, 771]
+ ],
+ "position": "top",
+ "collapseEmptyDiv": true,
+ "collapseEmptyDivOnPageload": true
+ },
+ "infoBoardTop": {
+ "sizes": [
+ [771, 201],
+ [620, 90]
+ ],
+ "position": "top",
+ "collapseEmptyDiv": true,
+ "collapseEmptyDivOnPageload": true
+ },
+ "infoButtonsTop": {
+ "sizes": [
+ [771, 61]
+ ],
+ "position": "top",
+ "collapseEmptyDiv": true,
+ "collapseEmptyDivOnPageload": true
+ },
+ "socialLogoTop": {
+ "sizes": [
+ [88, 31]
+ ],
+ "position": "top",
+ "collapseEmptyDiv": true,
+ "collapseEmptyDivOnPageload": true
+ },
+ "inlineProductCarouselTop": {
+ "sizes": [
+ [621, 221],
+ [621, 471],
+ [321, 31]
+ ],
+ "position": "top",
+ "eventCallbacks": {
+ "slotRenderEnded": "inlineProductCarouselTopCallback"
+ },
+ "collapseEmptyDiv": true,
+ "collapseEmptyDivOnPageload": true
+ },
+ "inpageVideoTop": {
+ "sizes": [
+ [641, 321]
+ ],
+ "position": "top",
+ "collapseEmptyDiv": true,
+ "collapseEmptyDivOnPageload": true
+ },
+ "windowTop": {
+ "sizes": [
+ [120, 90]
+ ],
+ "position": "top",
+ "collapseEmptyDiv": true,
+ "collapseEmptyDivOnPageload": true
+ },
+ "windowBottom": {
+ "sizes": [
+ [120, 90]
+ ],
+ "position": "bottom",
+ "collapseEmptyDiv": true,
+ "collapseEmptyDivOnPageload": true
+ },
+ "sponsoredMatchTop": {
+ "sizes": [
+ [971, 201]
+ ],
+ "position": "top",
+ "collapseEmptyDiv": true,
+ "collapseEmptyDivOnPageload": true
+ },
+ "replaySquareTop": {
+ "sizes": [
+ [271, 271]
+ ],
+ "position": "top",
+ "eventCallbacks": {
+ "slotRenderEnded": "replaySquareCallBack"
+ },
+ "collapseEmptyDiv": true,
+ "collapseEmptyDivOnPageload": true
+ },
+ "replayWideTop": {
+ "sizes": [
+ [771, 131],
+ [11, 11]
+ ],
+ "position": "top",
+ "eventCallbacks": {
+ "slotRenderEnded": "replayWideTopCallback"
+ },
+ "collapseEmptyDiv": true,
+ "collapseEmptyDivOnPageload": true,
+ "customTargeting": {
+ "strr": "",
+ "strb": "",
+ "stc": "jeTMd4HjGdxg4dTceXGzahvk",
+ "strnativekey": "9ZUFuTwq2XugQH5BAj3iNPab"
+ }
+ },
+ "replayWideBottom": {
+ "sizes": [
+ [771, 131],
+ [11, 11]
+ ],
+ "position": "bottom",
+ "eventCallbacks": {
+ "slotRenderEnded": "replayWideBottomCallback"
+ },
+ "collapseEmptyDiv": true,
+ "collapseEmptyDivOnPageload": true
+ },
+ "replayWideEditorspicks": {
+ "sizes": [
+ [771, 131],
+ [11, 11]
+ ],
+ "position": "editorspicks",
+ "eventCallbacks": {
+ "slotRenderEnded": "replayWideEditorspicksCallback"
+ },
+ "collapseEmptyDiv": true,
+ "collapseEmptyDivOnPageload": true
+ },
+ "nativeDeals": {
+ "sizes": [
+ [11, 11]
+ ],
+ "position": "deals",
+ "collapseEmptyDiv": true,
+ "collapseEmptyDivOnPageload": true
+ },
+ "nativeThisweekoncnet": {
+ "sizes": [
+ [11, 11]
+ ],
+ "position": "thisweekoncnet",
+ "eventCallbacks": {
+ "slotRenderEnded": "nativeThisweekoncnetCallback"
+ },
+ "collapseEmptyDiv": true,
+ "collapseEmptyDivOnPageload": true,
+ "customTargeting": {
+ "strr": "d320ba44",
+ "strb": "2434f2df",
+ "stc": "d320ba44",
+ "strnativekey": "2434f2df"
+ }
+ },
+ "nativeCompare": {
+ "sizes": [
+ [11, 11]
+ ],
+ "position": "compare",
+ "eventCallbacks": {
+ "slotRenderEnded": "nativeCompareCallback"
+ },
+ "collapseEmptyDiv": true,
+ "collapseEmptyDivOnPageload": true
+ },
+ "overgifTop": {
+ "sizes": [
+ [251, 11]
+ ],
+ "position": "top",
+ "collapseEmptyDiv": true,
+ "collapseEmptyDivOnPageload": true
+ },
+ "showcaseBottom": {
+ "sizes": [
+ [3, 3],
+ [728, 90],
+ [970, 66]
+ ],
+ "position": "bottom"
+ },
+ "showcaseTop": {
+ "sizes": [
+ [3, 3]
+ ],
+ "position": "top"
+ },
+ "videoThumbnailTop": {
+ "sizes": [
+ [171, 231],
+ [771, 131],
+ [11, 11]
+ ],
+ "position": "thumbnail",
+ "eventCallbacks": {
+ "slotRenderEnded": "videoThumbnailTopCallback"
+ },
+ "collapseEmptyDiv": true,
+ "collapseEmptyDivOnPageload": true,
+ "customTargeting": {
+ "strr": "ec8036a4",
+ "strb": "bfdbade1",
+ "stc": "ec8036a4",
+ "strnativekey": "bfdbade1"
+ }
+ },
+ "nativeToc": {
+ "sizes": [
+ [300, 90],
+ [11, 11]
+ ],
+ "position": "toc",
+ "eventCallbacks": {
+ "slotRenderEnded": "nativeTocCallBack"
+ },
+ "collapseEmptyDiv": true,
+ "collapseEmptyDivOnPageload": true,
+ "customTargeting": {
+ "strr": "9bebd1e1",
+ "strb": "12b2a632",
+ "stc": "9bebd1e1",
+ "strnativekey": "12b2a632"
+ }
+ },
+ "customAd": {
+ "sizes": [
+ [330, 100],
+ [330, 59]
+ ],
+ "position": "top"
+ },
+ "navAd": {
+ "sizes": [
+ [7, 7]
+ ],
+ "position": "nav",
+ "collapseEmptyDiv": true,
+ "collapseEmptyDivOnPageload": true
+ },
+ "incontentAd": {
+ "sizes": [
+ [321, 31]
+ ],
+ "position": "top"
+ },
+ "incontentAdMiddle": {
+ "sizes": [
+ [321, 31]
+ ],
+ "position": "middle"
+ },
+ "incontentAdPlusTop": {
+ "sizes": [
+ [970, 66],
+ [728, 90],
+ [321, 31],
+ [7, 7],
+ [9, 9]
+ ],
+ "position": "top"
+ },
+ "incontentAdPlusBillboardTop": {
+ "sizes": [
+ [970, 66],
+ [728, 90],
+ [970, 250],
+ [321, 31],
+ [7, 7],
+ [9, 9]
+ ],
+ "position": "top"
+ },
+ "incontentAdPlusMiddle": {
+ "sizes": [
+ [970, 66],
+ [728, 90],
+ [321, 31],
+ [7, 7]
+ ],
+ "position": "middle"
+ },
+ "incontentAdPlusBillboardMiddle": {
+ "sizes": [
+ [970, 66],
+ [728, 90],
+ [970, 250],
+ [321, 31],
+ [7, 7]
+ ],
+ "position": "middle"
+ },
+ "incontentAdPlusMiddle2": {
+ "sizes": [
+ [970, 66],
+ [728, 90],
+ [321, 31],
+ [7, 7]
+ ],
+ "position": "middle2"
+ },
+ "incontentAdPlusBillboardMiddle2": {
+ "sizes": [
+ [970, 66],
+ [728, 90],
+ [970, 250],
+ [321, 31],
+ [7, 7]
+ ],
+ "position": "middle2"
+ },
+ "incontentAdPlusMiddle3": {
+ "sizes": [
+ [970, 66],
+ [728, 90],
+ [321, 31],
+ [7, 7]
+ ],
+ "position": "middle3"
+ },
+ "incontentAdPlusBillboardMiddle3": {
+ "sizes": [
+ [970, 66],
+ [728, 90],
+ [970, 250],
+ [321, 31],
+ [7, 7]
+ ],
+ "position": "middle3"
+ },
+ "incontentAdPlusBottom": {
+ "sizes": [
+ [970, 66],
+ [728, 90],
+ [321, 31],
+ [7, 7]
+ ],
+ "position": "bottom"
+ },
+ "incontentAdPlusBillboardBottom": {
+ "sizes": [
+ [970, 66],
+ [728, 90],
+ [970, 250],
+ [321, 31],
+ [7, 7]
+ ],
+ "position": "bottom"
+ },
+ "flexIncontentAdPlusBillboardTop": {
+ "sizes": [
+ [970, 250],
+ [321, 31],
+ [7, 7]
+ ],
+ "position": "top",
+ "eventCallbacks": {
+ "slotRenderEnded": "flexIncontentAdPlusBillboardTopCallback"
+ }
+ },
+ "premierBrandsTop": {
+ "sizes": [
+ [372, 142]
+ ],
+ "position": "top"
+ },
+ "premierBrandsBottom": {
+ "sizes": [
+ [372, 142]
+ ],
+ "position": "bottom"
+ },
+ "sponsoredLogoTop": {
+ "sizes": [
+ [88, 31]
+ ],
+ "position": "top",
+ "eventCallbacks": {
+ "slotRenderEnded": "sponsoredLogoTopCallback"
+ }
+ },
+ "sponsoredLogoBottom": {
+ "sizes": [
+ [88, 31]
+ ],
+ "position": "bottom"
+ },
+ "nativeMiddle": {
+ "sizes": [
+ [11, 11]
+ ],
+ "position": "middle"
+ },
+ "nativeMiddle2": {
+ "sizes": [
+ [11, 11]
+ ],
+ "position": "middle2"
+ },
+ "dealsTileTop": {
+ "sizes": [
+ [30, 30]
+ ],
+ "position": "top",
+ "collapseEmptyDiv": true
+ },
+ "dealsTileMiddle2": {
+ "sizes": [
+ [30, 30]
+ ],
+ "position": "middle2",
+ "collapseEmptyDiv": true
+ },
+ "dealsTileMiddle3": {
+ "sizes": [
+ [30, 30]
+ ],
+ "position": "middle3",
+ "collapseEmptyDiv": true
+ },
+ "dealsTileBottom": {
+ "sizes": [
+ [30, 30]
+ ],
+ "position": "bottom",
+ "collapseEmptyDiv": true
+ }
+ },
+ "mobile": {
+ "adUnits": {
+ "hpto": {
+ "outOfPage": true,
+ "eventCallbacks": {
+ "slotRenderEnded": "hptoCallback"
+ },
+ "collapseEmptyDiv": true,
+ "collapseEmptyDivOnPageload": true
+ },
+ "mobileBannerTop": {
+ "sizes": [
+ [320, 50],
+ [6, 1]
+ ],
+ "position": "increment"
+ },
+ "mobileBannerMpuHptoOverlay": {
+ "outOfPage": true
+ },
+ "mobileMpuBottom": {
+ "sizes": [
+ [300, 250]
+ ],
+ "position": "increment"
+ },
+ "mobileBanner": {
+ "sizes": [
+ [320, 50]
+ ],
+ "position": "increment",
+ "eventCallbacks": {
+ "slotRenderEnded": "mobileBannerCallback"
+ }
+ },
+ "mobileCustomAd": {
+ "sizes": [
+ [330, 100]
+ ],
+ "position": "increment"
+ },
+ "mobileReplaySquare": {
+ "sizes": [
+ [271, 271]
+ ],
+ "position": "increment"
+ },
+ "mobileReplayWide": {
+ "sizes": [
+ [771, 131],
+ [11, 11]
+ ],
+ "position": "increment"
+ },
+ "mobileReplayWideInc": {
+ "sizes": [
+ [771, 131],
+ [11, 11]
+ ],
+ "position": "inc",
+ "eventCallbacks": {
+ "slotRenderEnded": "mobileReplayWideInc"
+ }
+ },
+ "mobileReplayWidePlus": {
+ "sizes": [
+ [771, 131],
+ [320, 50],
+ [11, 11]
+ ],
+ "position": "increment",
+ "eventCallbacks": {
+ "slotRenderEnded": "mobileReplayWidePlusCallBack"
+ }
+ },
+ "mobileBannerPlus": {
+ "sizes": [
+ [300, 250],
+ [320, 50],
+ [621, 221]
+ ],
+ "position": "increment"
+ },
+ "mobileMpu": {
+ "sizes": [
+ [300, 250]
+ ],
+ "position": "increment"
+ },
+ "mobileMpuFlex": {
+ "sizes": [
+ [300, 250],
+ [7, 7]
+ ],
+ "position": "increment"
+ },
+ "mobileMpuNative": {
+ "sizes": [
+ [300, 250],
+ [11, 11]
+ ],
+ "position": "increment"
+ },
+ "mobileOvergif": {
+ "sizes": [
+ [251, 11]
+ ],
+ "position": "increment",
+ "collapseEmptyDiv": true,
+ "collapseEmptyDivOnPageload": true
+ },
+ "mobileShowcase": {
+ "sizes": [
+ [3, 3]
+ ],
+ "position": "increment",
+ "collapseEmptyDiv": true,
+ "collapseEmptyDivOnPageload": true
+ },
+ "mobileNavAd": {
+ "sizes": [
+ [7, 7]
+ ],
+ "position": "nav",
+ "collapseEmptyDiv": true,
+ "collapseEmptyDivOnPageload": true
+ },
+ "mobileRevealAd": {
+ "sizes": [
+ [9, 9]
+ ],
+ "position": "rev"
+ },
+ "mobileIncontentAd": {
+ "sizes": [
+ [321, 31]
+ ],
+ "position": "increment"
+ },
+ "mobileIncontentAdPlus": {
+ "sizes": [
+ [321, 31],
+ [300, 250],
+ [7, 7]
+ ],
+ "position": "increment"
+ },
+ "mobileIncontentMpuAd": {
+ "sizes": [
+ [300, 250],
+ [321, 31]
+ ],
+ "position": "increment"
+ },
+ "mobileSponsoredLogo": {
+ "sizes": [
+ [88, 31]
+ ],
+ "position": "increment",
+ "eventCallbacks": {
+ "slotRenderEnded": "mobileSponsoredLogoCallback"
+ }
+ },
+ "mobileNativeDeals": {
+ "sizes": [
+ [11, 11]
+ ],
+ "position": "deals"
+ },
+ "mobileNativeBottom": {
+ "sizes": [
+ [11, 11]
+ ],
+ "position": "increment"
+ },
+ "mobileInpageVideoTop": {
+ "sizes": [
+ [641, 321]
+ ],
+ "position": "top",
+ "collapseEmptyDiv": true,
+ "collapseEmptyDivOnPageload": true
+ }
+ }
+ },
+ "tablet": {
+ "adUnits": {
+ "resourceCenterTop": {
+ "sizes": [
+ [300, 300]
+ ],
+ "position": "top"
+ },
+ "resourceCenterBottom": {
+ "sizes": [
+ [632, 160]
+ ],
+ "position": "bottom"
+ },
+ "mpuPlusTop": {
+ "sizes": [
+ [300, 600],
+ [300, 250]
+ ]
+ },
+ "marqueeTop": {
+ "sizes": [
+ [234, 60]
+ ],
+ "position": "top"
+ },
+ "mpuTop": {
+ "sizes": [
+ [300, 250],
+ [300, 600]
+ ],
+ "position": "top"
+ },
+ "mpuBottom": {
+ "sizes": [
+ [300, 250]
+ ],
+ "position": "bottom"
+ },
+ "leaderTop": {
+ "sizes": [
+ [728, 90],
+ [970, 66]
+ ],
+ "position": "bottom"
+ },
+ "leaderPlusTop": {
+ "sizes": [
+ [728, 90],
+ [970, 66],
+ [970, 250]
+ ],
+ "position": "top"
+ }
+ }
+ },
+ "siteName": "cnet",
+ "collapseEmptyDiv": false,
+ "setRefreshUnfilledSlots": true,
+ "setClearUnfilledSlots": false,
+ "disableInitialLoad": false,
+ "disableInitialLoadCompanions": false,
+ "enableSingleRequest": true,
+ "enableAsyncRendering": true,
+ "defaultRegion": "aw",
+ "adOrder": ["flex_leader_top", "flex_leader_plus_top", "leader_plus_incontent_top", "leader_top", "leader_plus_top", "incontent_ad", "incontent_ad_plus_top", "incontent_ad_plus_billboard_top", "mpu_top", "mpu_plus_top", "flex_incontent_ad_top", "leader_middle", "leader_plus_middle", "incontent_ad_plus_middle", "incontent_ad_plus_billboard_middle", "incontent_ad_middle", "leader_middle2", "incontent_ad_plus_middle2", "incontent_ad_plus_billboard_middle2", "mpu_middle", "mpu_plus_middle", "mpu_middle2", "incontent_ad_plus_middle3", "incontent_ad_plus_billboard_middle3", "leader_middle3", "leader_middle4", "mpu_bottom", "mpu_plus_bottom", "leader_bottom", "incontent_ad_plus_bottom", "incontent_ad_plus_billboard_bottom", "flex_leader_plus_bottom", "skin", "nav_ad", "flex_incontent_ad_plus_billboard_top", "omnibar_top", "premier_brands_top", "premier_brands_bottom", "window_bottom", "inpage_video_top", "intromercial", "replay_wide_top", "replay_wide_bottom", "replay_wide_editorspicks", "video_thumbnail_top", "native_toc", "native_compare", "native_thisweekoncnet", "native_middle", "native_middle2", "inline_product_carousel_top", "resource_center_top", "sponsored_logo_top", "sponsored_logo_bottom", "custom_ad", "info_board_top", "info_buttons_top", "dynamic_text_link_top", "showcase_top", "dynamic_showcase_top"],
+ "disableInitialLoadRefresh": true,
+ "enableHeaderBidding": true,
+ "enableRepeatedAds": true,
+ "deviceRegions": {
+ "mobile": [{
+ "region": "aw",
+ "countries": ["all"]
+ }],
+ "desktop": [],
+ "tablet": []
+ },
+ "disableAdIncrement": false,
+ "disableClearTargetingOnInit": false
+ },
+ "containerId": "58808543f19c0",
+ "slotVars": {
+ "network": "8264",
+ "siteName": "cnet",
+ "collapseEmptyDiv": "",
+ "topics": "tech-industry",
+ "platform": "desktop"
+ },
+ "adType": "gpt",
+ "adDivIds": ["inpage-video-top-58808543f19c0", "replay-wide-top-58808543f19c0", "mpu-half-top-58808543f19c0", "mpu-bottom-58808543f19c0", "nav-ad-58808543f19c0", "intromercial-58808543f19c0", "leader-top-58808543f19c0", "flex-leader-plus-incontent-bottom-58808543f19c0", "dynamic-text-link-top-58808543f19c0"]
+ },
+ "cookieName": "cnet_ad",
+ "cookieServicePath": "http:\/\/www.cnet.com\/ad\/ad-cookie\/",
+ "session": 4,
+ "subSession": 6
+ }
+ },
+ assetsVersion: {
+ version: '3483-fly'
+ },
+ auto: false,
+ build: true,
+ cmsEdit: {
+ contentId: 'ca76438a-4f9c-425f-bdb7-a69a7121cef0',
+ contentType: 'article'
+ },
+ device: 'desktop',
+ deviceOriginal: 'desktop',
+ edition: {
+ code: 'us'
+ },
+ environment: 'prod',
+ pageType: 'article',
+ promotionals: {
+ flyoutPromo: {
+ url: '/flyout-promo/'
+ }
+ },
+ tracking: {
+ enabled: true
+ },
+ txId: '7d6d8b39-e339-40d6-8c45-ee737e789f0d',
+ user: {
+ baseUrl: 'https://www.cnet.com',
+ 'urls': {
+ 'login': "https://www.cnet.com/user/login/",
+ 'register': "https://www.cnet.com/user/registration/",
+ 'confirmRegistration': "https://www.cnet.com/user/instructions-confirm-registration/",
+ 'forgotPassword': "https://www.cnet.com/user/forgotten-password/",
+ 'passwordSent': "https://www.cnet.com/user/password-sent/",
+ 'createUsername': "https://www.cnet.com/user/create-username/",
+ 'sendConfirmation': "https://www.cnet.com/user/send-confirmation/?registered=1",
+ 'userData': "https://www.cnet.com/user/get-data/",
+ 'socialAdditionalInformation': "https://www.cnet.com/user/social-additional-information/"
+ }
+ },
+ video: {
+ tpBaseUrl: 'https://cnet2.cbsistatic.com/fly/bundles/cnetmpxpdk/pdk',
+ playCount: 0,
+ prepend: {
+ "id": "5f324b7b-7ad8-4ddd-a1cb-450055d96224",
+ "title": "Zuckerberg takes the stand, Seinfeld's new home at Netflix",
+ "description": "Today's biggest tech stories include Mark Zuckerberg's testimony in a major lawsuit, Android 2.0 rumors pointing to a February release and Jerry Seinfeld's web series finding a new home at (you guessed it) Netflix.",
+ "slug": "zuckerberg-takes-the-stand-seinfelds-new-home-at-netflix",
+ "chapters": "",
+ "hasCaptions": false,
+ "mpxId": 857216579792,
+ "mpxRefId": "fWS7L5D1noUch_Dkjawm9M9T_1GsvYdM",
+ "primaryTopic": {
+ "id": ""
+ },
+ "author": {
+ "id": "3dd87c14-8176-11e2-9d12-0018fe8a00b0",
+ "firstName": "Jeff",
+ "lastName": "Bakalar"
+ },
+ "primaryCollection": {
+ "id": "0d8f9ac8-61cb-4e36-9263-552d5468e04b",
+ "title": ["Tech Today"]
+ },
+ "duration": 73,
+ "isVertical": false,
+ "m3u8": "\/videos\/manifest\/zuckerberg-takes-the-stand-seinfelds-new-home-at-netflix.m3u8",
+ "mp4": "https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/01\/18\/857216579792\/TT_011817_1232948_740.mp4"
+ }
+ }
+ };
+
+
+
+
+ var utag_data = {
+ "isEnabled": true,
+ "articleAuthorId": ["95d547b2-8176-11e2-9d12-0018fe8a00b0"],
+ "articleAuthorName": ["steven musil"],
+ "articleId": "ca76438a-4f9c-425f-bdb7-a69a7121cef0",
+ "articlePubDate": "2017-01-19 07:00:12",
+ "articleTitle": "zuckerberg offers peek at facebook's acquisition strategies",
+ "articleType": "magnet_article",
+ "collectionId": [],
+ "collectionName": [],
+ "deviceType": "desktop",
+ "isDev": "0",
+ "pageNum": "1",
+ "pageType": "article",
+ "siteEdition": "us",
+ "siteHier": ["news", "tech-industry"],
+ "siteSection": "news",
+ "siteType": "responsive web",
+ "topicId": ["1c0fd1cb-c387-11e2-8208-0291187b029a"],
+ "topicName": ["tech industry"],
+ "dwAccount": "cbsicnetglobalsite",
+ "dwHost": "dw.cbsi.com",
+ "siteId": 1,
+ "reportSuiteId": "cbsicnetglobalsite",
+ "bkSiteId": 3321,
+ "limit": 4,
+ "brand": "cnet",
+ "collectionSlug": [],
+ "tagSlugs": ["facebook"],
+ "topicSlugs": ["tech-industry"],
+ "siteName": "cnet",
+ "tealium": {
+ "profile": "cnetglobalsite",
+ "env": "prod"
+ },
+ "soastaBucket": "",
+ "soastaPageType": "article"
+ };
+
+ if (window.I10C & amp; & amp; window.I10C.MorphState & amp; & amp; utag_data & amp; & amp; CnetPageVars) {
+ utag_data.testName = "IL";
+ utag_data.testVersion = "1";
+ utag_data.testGroup = window.I10C.MorphState;
+
+ utag_data.soastaBucket = utag_data.testName + '_' + utag_data.testVersion + '_' + utag_data.testGroup;
+
+ CnetPageVars.ads.data.gpt.targeting.test = utag_data.testName + '|' + utag_data.testVersion + '|' + utag_data.testGroup;
+ }
+ </script>
+ <script type="application/javascript" src="//www.googletagservices.com/tag/js/gpt.js" async=""></script>
+ <script src="//js-sec.indexww.com/ht/ls-cnet.js" async=""></script>
+ <script src="https://securepubads.g.doubleclick.net/gpt/pubads_impl_107.js" async=""></script>
+ <script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="main.default" src="https://cnet3.cbsistatic.com/fly/3483-fly/js/main.default.js"></script>
+ <link rel="prefetch" href="https://tpc.googlesyndication.com/safeframe/1-0-5/html/container.html" />
+ <script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="//native.sharethrough.com/assets/sfp.js" src="//native.sharethrough.com/assets/sfp.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="pages/desktop/article" src="https://cnet4.cbsistatic.com/fly/js/pages/desktop/article-3a7bce9390-rev.js"></script>
+ <style type="text/css"></style>
+ <script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="//tags.tiqcdn.com/utag/cbsi/cnetglobalsite/prod/utag.js" src="//tags.tiqcdn.com/utag/cbsi/cnetglobalsite/prod/utag.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="https://urs.cnet.com/sdk/urs.js" src="https://urs.cnet.com/sdk/urs.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="//cdn.livefyre.com/Livefyre.js" src="//cdn.livefyre.com/Livefyre.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="//s0.2mdn.net/instream/html5/ima3.js" src="//s0.2mdn.net/instream/html5/ima3.js"></script>
+ <script type="text/javascript" async="" charset="utf-8" src="//tags.tiqcdn.com/utag/cbsi/cnetglobalsite/prod/utag.36.js?utv=ut4.39.201610031939" id="utag_cbsi.cnetglobalsite_36"></script>
+ <script type="text/javascript" async="" charset="utf-8" src="//tags.tiqcdn.com/utag/cbsi/cnetglobalsite/prod/utag.4.js?utv=ut4.39.201701182245" id="utag_cbsi.cnetglobalsite_4"></script>
+ <script type="text/javascript" async="" charset="utf-8" src="//tags.tiqcdn.com/utag/cbsi/cnetglobalsite/prod/utag.38.js?utv=ut4.39.201612191505" id="utag_cbsi.cnetglobalsite_38"></script>
+ <script type="text/javascript" async="" charset="utf-8" src="//tags.tiqcdn.com/utag/cbsi/cnetglobalsite/prod/utag.12.js?utv=ut4.39.201605231556" id="utag_cbsi.cnetglobalsite_12"></script>
+ <script type="text/javascript" async="" charset="utf-8" src="//tags.tiqcdn.com/utag/cbsi/cnetglobalsite/prod/utag.16.js?utv=ut4.39.201605231556" id="utag_cbsi.cnetglobalsite_16"></script>
+ <script type="text/javascript" async="" charset="utf-8" src="//tags.tiqcdn.com/utag/cbsi/cnetglobalsite/prod/utag.34.js?utv=ut4.39.201608172105" id="utag_cbsi.cnetglobalsite_34"></script>
+ <script type="text/javascript" async="" charset="utf-8" src="//tags.tiqcdn.com/utag/cbsi/cnetglobalsite/prod/utag.35.js?utv=ut4.39.201610201920" id="utag_cbsi.cnetglobalsite_35"></script>
+ <script src="//script.crazyegg.com/pages/scripts/0049/4900.js"></script>
+ <link rel="stylesheet" href="https://cnet1.cbsistatic.com/fly/css/video/htmlPlayerControls/controls-0b1dae622a-rev.css" type="text/css" media="screen" charset="utf-8" />
+ <script src="//vidtech.cbsinteractive.com/uvpjs/1.7.2/lib/tracking/comscore/streamsense.5.1.1.160316.min.js" async=""></script>
+ <style type="text/css"></style>
+ <style type="text/css">
+ @keyframes resizeanim {
+ from {
+ opacity: 0;
+ }
+ to {
+ opacity: 0;
+ }
+ }
+
+ .resize-triggers {
+ animation: 1ms resizeanim;
+ visibility: hidden;
+ opacity: 0;
+ }
+
+ .resize-triggers,
+ .resize-triggers &gt;
+ div,
+ .contract-trigger:before {
+ content: " ";
+ display: block;
+ position: absolute;
+ top: 0;
+ left: 0;
+ height: 100%;
+ width: 100%;
+ overflow: hidden;
+ }
+
+ .resize-triggers &gt;
+ div {
+ background: #eee;
+ overflow: auto;
+ }
+
+ .contract-trigger:before {
+ width: 200%;
+ height: 200%;
+ }
+ </style>
+ <style type="text/css">
+ #menu_uvpJs_1_player {
+ background: rgba(28, 28, 28, 0.9);
+ border: 0;
+ border-radius: 4px;
+ color: #FFF;
+ direction: ltr;
+ display: none;
+ font-family: Arial, Tahoma, Geneva, sans-serif;
+ font-size: 12px;
+ font-weight: bold;
+ line-height: 1;
+ list-style: none;
+ margin: 0;
+ overflow: hidden;
+ padding: 10px 0;
+ position: absolute;
+ text-align: left;
+ text-shadow: 0 0 2px rgba(0, 0, 0, .5);
+ width: 180px;
+ z-index: 2147483647;
+ transition: opacity .1s cubic-bezier(0.0, 0.0, 0.2, 1);
+ -moz-transition: opacity .1s cubic-bezier(0.0, 0.0, 0.2, 1);
+ -webkit-transition: opacity .1s cubic-bezier(0.0, 0.0, 0.2, 1);
+ -moz-user-select: none;
+ -ms-user-select: none;
+ -webkit-user-select: none;
+ -webkit-font-smoothing: antialiased;
+ }
+
+ #menu_uvpJs_1_player li {
+ cursor: pointer;
+ padding: 10px 15px;
+ border: 0;
+ margin: 0;
+ }
+
+ #menu_uvpJs_1_player li:hover:not(:last-child) {
+ background-color: rgba(255, 255, 255, .1);
+ cursor: pointer;
+ }
+
+ #diagnostic_uvpJs_1_player {
+ background: rgba(28, 28, 28, 0.7);
+ border: 0;
+ border-radius: 4px;
+ color: white;
+ display: none;
+ font-family: Arial, Tahoma, Geneva, sans-serif;
+ font-size: 12px;
+ left: 5px;
+ line-height: 1;
+ padding: 5px;
+ position: absolute;
+ top: 5px;
+ z-index: 10;
+ }
+
+ #diagnostic_uvpJs_1_player span {
+ color: #777;
+ cursor: pointer;
+ float: right;
+ font-size: 14px;
+ line-height: 1;
+ margin: -15px -10px;
+ padding: 10px;
+ }
+
+ #diagnostic_uvpJs_1_player span:hover {
+ color: #fff;
+ }
+
+ #diagnostic_uvpJs_1_player table {
+ border-spacing: auto;
+ margin-right: 20px;
+ border: 0;
+ padding: 0;
+ margin: 0;
+ }
+
+ #diagnostic_uvpJs_1_player table td {
+ background: transparent;
+ }
+
+ #diagnostic_uvpJs_1_player table td:first-child {
+ color: #c9c9c9;
+ padding: 0 5px;
+ }
+
+ #diagnostic_uvpJs_1_player table td:last-child {
+ width: 60px;
+ }
+ </style>
+ <script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="//cdn.taboola.com/libtrc/cbsinteractive-cnet/loader.js" src="//cdn.taboola.com/libtrc/cbsinteractive-cnet/loader.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="//cdn.livefyre.com/libs/fyre.conv/v3.0.0/livefyre.min.js" src="//cdn.livefyre.com/libs/fyre.conv/v3.0.0/livefyre.min.js"></script>
+ <script type="text/javascript" async="" charset="utf-8" src="//tags.tiqcdn.com/utag/cbsi/cnetglobalsite/prod/utag.43.js?utv=ut4.39.201701182245" id="utag_cbsi.cnetglobalsite_43"></script>
+ <script type="text/javascript" async="" src="//cdn.viglink.com/api/vglnk.js"></script>
+ <link rel="stylesheet" type="text/css" href="https://d3qdfnco3bamip.cloudfront.net/wjs/v3.0.1484263742/css/livefyre_main.css" media="all" />
+ <script type="text/javascript" src="https://d3qdfnco3bamip.cloudfront.net/wjs/v3.0.1484263742/javascripts/livefyre_base.js" async="" defer="defer"></script>
+ <script type="text/javascript" src="https://d3qdfnco3bamip.cloudfront.net/wjs/v3.0.1484263742/javascripts/livefyre_mod_main.js" async="" defer="defer"></script>
+ <link rel="stylesheet" type="text/css" href="https://cdn.teads.tv/media/format/v3/teads-format.css" />
+ <script type="text/javascript" src="//widget.perfectmarket.com/cbsinteractive-cnet/pmk-201642011.6.js"></script>
+ <style type="text/css">
+ .trc_rbox_container {
+ direction: ltr;
+ text-align: left
+ }
+
+ .trc_rbox_header {
+ border-style: solid;
+ border-width: 0
+ }
+
+ .in_trc_header {
+ position: relative!important;
+ float: right;
+ margin: 0
+ }
+
+ #trc_rbox_css_loaded {
+ overflow: hidden;
+ width: 0;
+ height: 0
+ }
+
+ .trc_rbox {
+ margin-top: 0
+ }
+
+ .trc_rbox_div {
+ margin: 0 0 3px;
+ direction: ltr;
+ padding: 0;
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ overflow: auto;
+ position: relative;
+ width: auto;
+ *width: auto;
+ border: solid #CCC 1px
+ }
+
+ .loading-animation span {
+ display: block
+ }
+
+ .videoCube {
+ zoom: 1;
+ cursor: pointer;
+ float: none;
+ overflow: hidden;
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ -webkit-box-sizing: border-box
+ }
+
+ div.videoCube:hover,
+ .videoCube_hover {
+ cursor: pointer
+ }
+
+ .videoCube span.video-title:hover,
+ .videoCube_hover span.video-title {
+ text-decoration: underline
+ }
+
+ .videoCube a {
+ text-decoration: none;
+ border: 0;
+ color: #000;
+ cursor: pointer
+ }
+
+ .videoCube a:hover,
+ .videoCube_hover a,
+ .videoCube a:link,
+ .videoCube a {
+ text-decoration: none!important;
+ outline: 0
+ }
+
+ .videoCube a .thumbBlock {
+ float: left;
+ display: block;
+ overflow: hidden!important
+ }
+
+ .videoCube a img,
+ .videoCube img {
+ border: 0;
+ _border: 0;
+ display: block;
+ margin: 0;
+ height: auto;
+ width: auto
+ }
+
+ .videoCube .video-label {
+ display: block;
+ overflow: hidden
+ }
+
+ .videoCube .video-title {
+ width: auto!important;
+ white-space: pre-wrap;
+ white-space: -moz-pre-wrap;
+ white-space: -o-pre-wrap;
+ word-wrap: break-word
+ }
+
+ .videoCube .video-duration a {}
+
+ .videoCube .video-duration {
+ height: 0;
+ float: left;
+ position: relative;
+ color: #fff;
+ font-size: 11px
+ }
+
+ .videoCube .video-duration dt {
+ border-radius: 4px;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ background-color: #000;
+ opacity: .6;
+ filter: alpha(opacity=60)
+ }
+
+ .videoCube span.video-label.trc_ellipsis {
+ position: relative;
+ overflow: hidden;
+ display: -webkit-box;
+ -webkit-box-orient: vertical
+ }
+
+ .videoCube span.video-label.trc-smart-ellipsis {
+ position: relative;
+ overflow: hidden
+ }
+
+ .videoCube span.video-label.trc-smart-ellipsis ins {
+ display: inline-block;
+ text-decoration: inherit
+ }
+
+ .videoCube span.video-label.trc-smart-ellipsis ins.lastLineEllipsis {
+ display: block;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ word-wrap: normal
+ }
+
+ .sponsored-default .video-description {
+ font-weight: 400;
+ color: #000;
+ font-size: 9px;
+ max-height: 22px;
+ *height: 22px;
+ overflow: hidden;
+ line-height: 9px
+ }
+
+ .video-duration.video-duration-detail div {
+ color: #fff
+ }
+
+ .sponsored-default {
+ background-color: #f7f6c6;
+ padding-bottom: 0!important
+ }
+
+ .trc_rbox .sponsored {
+ position: relative;
+ display: block;
+ overflow: visible;
+ height: auto;
+ width: auto;
+ padding-right: 0;
+ text-align: right;
+ font-size: 9px
+ }
+
+ .sponsored-url {
+ white-space: nowrap;
+ float: left;
+ overflow: hidden;
+ width: 98%;
+ height: auto;
+ margin-top: 0;
+ margin-left: 1px;
+ padding-bottom: 2px;
+ color: green;
+ font-size: 9px;
+ text-decoration: underline
+ }
+
+ .sponsored-default .video-title {
+ height: 26px;
+ font-size: 11px;
+ line-height: 13px;
+ max-height: 26px;
+ *height: 26px
+ }
+
+ .sponsored-default .thumbBlock img {}
+
+ .sponsored-default .thumbBlock {
+ text-align: center;
+ background-color: transparent
+ }
+
+ .trc_rbox_div {
+ height: 410px
+ }
+
+ .videoCube {
+ direction: ltr;
+ font-size: 11px;
+ margin: 0;
+ color: #000;
+ border-width: 0
+ }
+
+ .videoCube.vertical:first-child {
+ border-top: 0;
+ margin-top: 0
+ }
+
+ .videoCube.horizontal:first-child {
+ border-left: 0;
+ margin-left: 0
+ }
+
+ .trc_rbox .trc_rbox_div .videoCube.vertical {
+ _margin-top: expression(this.previousSibling==null?'0':'default')
+ }
+
+ .trc_rbox .trc_rbox_div .videoCube.horizontal {
+ _margin-left: expression(this.previousSibling==null?'0':'default')
+ }
+
+ div.videoCube:hover,
+ .videoCube_hover {
+ background-color: #EBF0FF;
+ color: #000
+ }
+
+ .videoCube .thumbBlock {
+ margin-right: 5px;
+ margin-left: 1px;
+ border-style: solid
+ }
+
+ .videoCube a img,
+ .videoCube img {
+ border-color: #ececec
+ }
+
+ .videoCube .overlayImg {}
+
+ .videoCube .video-label-box {
+ margin-left: 81px
+ }
+
+ .videoCube .video-label dt {
+ font-weight: 700
+ }
+
+ .videoCube .video-title {
+ height: auto;
+ margin-bottom: 3px;
+ white-space: normal
+ }
+
+ .videoCube .trc_inline_detail_spacer {
+ display: inline-block;
+ white-space: pre
+ }
+
+ .sponsored-default {
+ padding-bottom: 0
+ }
+
+ .loading-animation {
+ font-family: sans;
+ font-size: 1.5em;
+ text-align: center;
+ color: gray;
+ height: 100%
+ }
+
+ .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-weight: 700;
+ text-decoration: none;
+ color: #000
+ }
+
+ .trc_header_right_part {
+ position: absolute;
+ left: 50%;
+ top: 0
+ }
+
+ .branding_div {
+ overflow: visible;
+ float: right
+ }
+
+ .branding_div img {
+ height: 20px
+ }
+
+ .trc_pager div {
+ float: left;
+ font-family: sans;
+ cursor: pointer;
+ margin-left: 2px;
+ margin-right: 2px
+ }
+
+ .trc_pager_prev,
+ .trc_pager_next {}
+
+ .trc_pager {
+ font-weight: 400
+ }
+
+ .trc_pager_pages {
+ display: block!important
+ }
+
+ .trc_related_container div.horizontal {
+ float: left;
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ -webkit-box-sizing: border-box
+ }
+
+ .trc_related_container div.vertical {}
+
+ .trc_related_container DIV.videoCube.thumbnail_top .thumbBlock,
+ .trc_related_container DIV.videoCube.thumbnail_bottom .thumbBlock {
+ float: none
+ }
+
+ @media screen and (-webkit-min-device-pixel-ratio:0) {
+ .sponsored-url {
+ margin-top: 2px
+ }
+ }
+
+ .vidiscovery-note {
+ display: none
+ }
+
+ .pager_disabled {
+ cursor: auto
+ }
+
+ .videoCube .thumbBlock .trc_sponsored_overlay_base {
+ display: block;
+ width: auto;
+ margin-left: 0;
+ position: absolute;
+ color: #fff!important
+ }
+
+ .videoCube .thumbBlock .trc_sponsored_overlay {
+ filter: alpha(opacity=60);
+ opacity: .6;
+ display: block;
+ position: absolute;
+ *left: 0
+ }
+
+ .videoCube .thumbBlock .trc_sponsored_overlay_base .sponsored {
+ position: relative;
+ display: block;
+ overflow: visible;
+ width: auto;
+ text-align: center;
+ padding: 0 5px;
+ margin-top: 0
+ }
+
+ .videoCube .thumbBlock .trc_sponsored_overlay_base.round .trc_sponsored_overlay {
+ border-radius: 4px;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px
+ }
+
+ .videoCube .thumbBlock .trc_sponsored_overlay_base.round {
+ margin-left: 4px
+ }
+
+ .thumbnail-emblem {
+ background-color: transparent;
+ background-repeat: no-repeat;
+ position: absolute;
+ z-index: 50
+ }
+
+ .playerCube .thumbnail-overlay,
+ .videoCube .thumbnail-overlay {
+ position: absolute;
+ background-color: transparent;
+ background-repeat: no-repeat;
+ z-index: 50
+ }
+
+ .videoCube:hover .thumbnail-overlay,
+ .videoCube_hover .thumbnail-overlay {
+ position: absolute;
+ background-color: transparent;
+ background-repeat: no-repeat;
+ z-index: 50
+ }
+
+ .thumbnail_bottom {
+ padding-bottom: 8px
+ }
+
+ .trc_pager_next img,
+ trc_pager_next pager_disabled img,
+ trc_pager_next:hover img {
+ -moz-transform: scaleX(-1);
+ -o-transform: scaleX(-1);
+ -webkit-transform: scaleX(-1);
+ transform: scaleX(-1);
+ filter: FlipH;
+ -ms-filter: "FlipH"
+ }
+
+ .trc_cover_iframe {
+ position: absolute;
+ z-index: 100000;
+ top: 0;
+ left: 0;
+ background: #000;
+ opacity: .4;
+ filter: alpha(opacity=40);
+ border: 0
+ }
+
+ .trc_lightbox_base {
+ z-index: 100001;
+ position: fixed
+ }
+
+ .trc_lightbox_overlay {
+ background-color: transparent;
+ position: absolute;
+ z-index: 100002
+ }
+
+ .trc_lightbox_transparent {
+ position: absolute;
+ z-index: 100003
+ }
+
+ #trc_lightbox_header {
+ font-family: "Trebuchet MS", Helvetica, sans-serif
+ }
+
+ .trc_whitebox {
+ background-color: #fff;
+ position: relative;
+ z-index: 100004;
+ padding: 0 20px 20px;
+ margin: 0 auto;
+ border: 2px solid #000;
+ -moz-box-shadow: 3px 3px 20px #000;
+ -webkit-box-shadow: 3px 3px 20px #000;
+ box-shadow: 3px 3px 20px #000;
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+ box-sizing: content-box;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px
+ }
+
+ .trc_whiteboxCloseButton {
+ width: 32px;
+ height: 32px;
+ border: 0;
+ position: absolute;
+ right: -16px;
+ top: -14px;
+ cursor: pointer;
+ background: url(//cdn.taboola.com/taboola-generic/close.png) no-repeat top left transparent;
+ color: #fff;
+ color: transparent;
+ font-size: 0
+ }
+
+ .trc_related_container .logoDiv {
+ font-family: Arial, Helvetica, sans-serif;
+ white-space: nowrap;
+ font-size: 9px
+ }
+
+ .trc_related_container .logoDiv a {
+ font-size: 9px;
+ text-decoration: none!important;
+ color: #000;
+ margin-right: 1px;
+ vertical-align: text-bottom
+ }
+
+ .logoDiv a span:hover {
+ text-decoration: underline
+ }
+
+ .trc_rbox_header .logoDiv {
+ font-size: 1em
+ }
+
+ .trc_related_container .vertical-start-shade {
+ background-image: url(//cdn.taboola.com/taboola-generic/shade-down.png);
+ height: 10px;
+ width: auto;
+ position: absolute;
+ z-index: 5
+ }
+
+ .trc_related_container .vertical-end-shade {
+ background-image: url(//cdn.taboola.com/taboola-generic/shade-up.png);
+ height: 10px;
+ width: auto;
+ position: absolute;
+ z-index: 5
+ }
+
+ .trc_related_container .horizontal-start-shade {
+ background-image: url(//cdn.taboola.com/taboola-generic/shade-right.png);
+ height: auto;
+ width: 10px;
+ position: absolute;
+ z-index: 5
+ }
+
+ .trc_related_container .horizontal-end-shade {
+ background-image: url(//cdn.taboola.com/taboola-generic/shade-left.png);
+ height: auto;
+ width: 10px;
+ position: absolute;
+ z-index: 5
+ }
+
+ .trc_rbox_container.trc_expandable {
+ overflow: hidden;
+ max-height: 0;
+ transition-property: max-height;
+ -webkit-transition-property: max-height;
+ -moz-transition-property: max-height;
+ -o-transition-property: max-height;
+ -webkit-transform: translateZ(0);
+ -moz-transform: translateZ(0);
+ -ms-transform: translateZ(0);
+ -o-transform: translateZ(0);
+ transform: translateZ(0)
+ }
+
+ DIV.trc_autoplaylist-box {
+ margin: 6px auto 0;
+ border: 0;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ padding: 4px;
+ font-family: "Trebuchet MS", Helvetica, sans-serif;
+ width: 320px;
+ background: #191919;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#191919', endColorstr='#393939');
+ -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#191919, endColorstr=#393939)";
+ background: -webkit-gradient(linear, left top, left bottom, from(#191919), to(#393939));
+ background: -moz-linear-gradient(top, #191919, #393939);
+ background: linear-gradient(top, #191919, #393939)
+ }
+
+ DIV.trc_autoplaylist-box .trc-next-up-header {
+ font-size: 14px;
+ color: #CCC;
+ float: left;
+ line-height: 31px;
+ margin: 0 4px 0 6px;
+ overflow: hidden;
+ white-space: nowrap
+ }
+
+ DIV.trc_autoplaylist-box .trc-next-up-countdown {
+ color: #fff;
+ font-weight: 700;
+ font-size: 15px;
+ padding-left: 4px
+ }
+
+ DIV.trc_autoplaylist-box .nextup {
+ cursor: pointer
+ }
+
+ DIV.trc_autoplaylist-box .nextup .thumbblock {
+ border: solid #FEFEFE 1px;
+ margin-right: 10px
+ }
+
+ DIV.trc_autoplaylist-box:hover .nextup .thumbblock SPAN.thumbnail-overlay {
+ background-image: url(//cdn.taboola.com/taboola-generic/lightbox-overlay.png)
+ }
+
+ DIV.trc_autoplaylist-box .nextup .video-label-box {
+ color: #fff;
+ font-weight: 700;
+ font-size: 12px;
+ line-height: 14px
+ }
+
+ .trc-syndication-link {
+ text-decoration: none;
+ color: inherit
+ }
+
+ .playerCube {
+ width: 100%;
+ height: 100%;
+ position: relative;
+ cursor: pointer
+ }
+
+ .playerCube .thumbnail-overlay {
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: 0;
+ position: absolute
+ }
+
+ .trc_related_container .whatsThisSyndicated {
+ position: absolute;
+ cursor: pointer
+ }
+
+ .trc_related_container .whatsThisSyndicated.a-bottom-right,
+ .trc_related_container .static-text.bottom-right {
+ bottom: 0;
+ right: 0
+ }
+
+ .trc_related_container .whatsThisSyndicated.a-top-right,
+ .trc_related_container .static-text.top-right {
+ top: 0;
+ right: 0
+ }
+
+ .trc_related_container .whatsThisSyndicated.a-bottom-left,
+ .trc_related_container .static-text.bottom-left {
+ bottom: 0;
+ left: 0
+ }
+
+ .trc_related_container .whatsThisSyndicated.a-top-left,
+ .trc_related_container .static-text.top-left {
+ top: 0;
+ left: 0
+ }
+
+ .trc_related_container .videoCube .thumbBlock .branding {
+ position: absolute;
+ bottom: 0;
+ z-index: 1;
+ width: 100%;
+ margin: 0;
+ padding: 5px 0;
+ text-align: center
+ }
+
+ .syndicatedItem .branding {
+ margin: 0
+ }
+
+ .trc_related_container .videoCube .thumbBlock .static-text {
+ position: absolute;
+ z-index: 1;
+ margin: 0;
+ padding: 5px;
+ background-color: #000;
+ color: #fff;
+ display: block;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: 400;
+ text-align: left;
+ text-decoration: none;
+ opacity: .7
+ }
+
+ .trc_related_container .static-text.top {
+ width: 100%;
+ top: 0;
+ padding: 5px 0
+ }
+
+ .trc_related_container .static-text.bottom {
+ width: 100%;
+ bottom: 0;
+ padding: 2px 0
+ }
+
+ .trc-inplayer-rbox {
+ background: #333;
+ background: rgba(30, 30, 30, .9);
+ *background: #333;
+ bottom: 0;
+ position: absolute;
+ height: 300px;
+ text-align: center
+ }
+
+ .trc-inplayer-rbox .trc_rbox_container {
+ margin: 50px auto 0;
+ width: 640px
+ }
+
+ .trc_rbox.trc-auto-size {
+ width: 100%;
+ height: 100%
+ }
+
+ .videoCube.thumbnail_under .thumbBlock {
+ margin-left: 0;
+ margin-right: 0
+ }
+
+ .videoCube.thumbnail_under .label-box-overlay {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ background: #000;
+ opacity: .75;
+ filter: alpha(opacity=75);
+ top: 0;
+ _display: none
+ }
+
+ .videoCube.thumbnail_under .video-labels-anchor {
+ width: 100%;
+ height: auto;
+ position: absolute;
+ z-index: 1;
+ left: 0;
+ bottom: 0;
+ min-height: 2.58em;
+ max-height: 2.58em;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ _background-color: #CECECE;
+ -webkit-transition: all .2s linear;
+ -moz-transition: all .2s linear;
+ -ms-transition: all .2s linear;
+ -o-transition: all .2s linear;
+ transition: all .2s linear;
+ line-height: 1.25em
+ }
+
+ .videoCube.thumbnail_under .video-labels-anchor span.video-title,
+ .videoCube.thumbnail_under .video-labels-anchor span.branding {
+ position: relative;
+ z-index: 1;
+ padding: 0 3px;
+ margin: 0
+ }
+
+ .videoCube.thumbnail_under .video-title {
+ min-height: 2.58em
+ }
+
+ .videoCube.thumbnail_under:hover .video-labels-anchor {
+ opacity: 1;
+ max-height: 6.45em
+ }
+
+ .trc-auto-size .trc_rbox_outer .trc_rbox_div {
+ height: auto;
+ width: auto
+ }
+
+ .trc-auto-size .trc_rbox_div .videoCube {
+ height: auto
+ }
+
+ .trc-auto-size .trc_rbox_div .videoCube.trc-first-recommendation {
+ margin-top: 0
+ }
+
+ .trc_rbox .trc_rbox_outer .trc_rbox_div .videoCube.trc-first-in-row {
+ margin-left: 0
+ }
+
+ .trc_elastic .trc_rbox {
+ width: auto
+ }
+
+ .trc_elastic .videoCube {
+ overflow: hidden
+ }
+
+ .trc_elastic .videoCube .thumbBlock {
+ display: block;
+ background-color: transparent;
+ background-position: center center;
+ background-repeat: no-repeat;
+ background-size: cover;
+ position: absolute;
+ display: inline-block;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ margin-left: 0;
+ margin-right: 0
+ }
+
+ .trc_elastic .thumbBlock_holder {
+ position: relative;
+ width: 100%
+ }
+
+ .trc_elastic .thumbnail_start .thumbBlock_holder {
+ float: left;
+ margin-right: 10px
+ }
+
+ .trc_elastic .videoCube_aspect {
+ width: 1px
+ }
+
+ .trc_elastic .trc_rbox .trc_rbox_div {
+ height: auto
+ }
+
+ .trc_elastic .video-label-box {
+ display: block
+ }
+
+ .trc_user_adChoice_btn {
+ background: url(//cdn.taboola.com/libtrc/static/thumbnails/3aadbb71016ecd7a194bbe2791777e9a.png) no-repeat scroll 0 0 rgba(255, 255, 255, .7);
+ border-radius: 0 0 0 5px;
+ width: 16px;
+ height: 16px;
+ position: absolute;
+ right: 0;
+ top: 0;
+ z-index: 9000;
+ cursor: pointer;
+ visibility: hidden
+ }
+
+ .trc_user_adChoice_anchor {
+ width: 100%;
+ height: 100%;
+ position: absolute
+ }
+
+ .videoCube:hover .trc_user_adChoice_btn,
+ .videoCube_hover .trc_user_adChoice_btn {
+ visibility: visible
+ }
+
+ .trc_user_exclude_btn {
+ background: url(//cdn.taboola.com/libtrc/static/thumbnails/f539211219b796ffbb49949997c764f0.png) no-repeat scroll 0 0 transparent;
+ width: 12px;
+ height: 12px;
+ position: absolute;
+ right: 2px;
+ top: 2px;
+ z-index: 9000;
+ cursor: pointer;
+ visibility: hidden
+ }
+
+ .trc_undo_btn {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 11px;
+ line-height: 14px;
+ font-weight: 400;
+ color: #36C;
+ text-decoration: underline;
+ cursor: pointer;
+ position: absolute;
+ right: 2px;
+ top: 2px;
+ padding: 0 1px;
+ z-index: 11000;
+ visibility: hidden
+ }
+
+ .videoCube:hover .trc_user_exclude_btn,
+ .videoCube_hover .trc_user_exclude_btn,
+ .trc_user_excluded.videoCube:hover .trc_undo_btn,
+ .trc_user_excluded.videoCube_hover .trc_undo_btn,
+ .trc_undo_btn.trc_anchor {
+ visibility: visible
+ }
+
+ .videoCube.trc_user_excluded .trc_user_exclude_btn {
+ visibility: hidden
+ }
+
+ .trc_fade {
+ opacity: 0;
+ filter: alpha(opacity=0);
+ visibility: hidden;
+ transition: opacity 500ms 0s, visibility 0s 500ms;
+ -webkit-transition: opacity 500ms 0s, visibility 0s 500ms;
+ -moz-transition: opacity 500ms 0s, visibility 0s 500ms;
+ -o-transition: opacity 500ms 0s, visibility 0s 500ms;
+ -ms-transition: opacity 500ms 0s, visibility 0s 500ms
+ }
+
+ .trc_fade.trc_in,
+ .trc_user_excluded .trc_exclude_overlay {
+ visibility: visible;
+ opacity: 1;
+ filter: alpha(opacity=100);
+ transition-delay: 0s, 0s;
+ -moz-transition-delay: 0s, 0s;
+ -webkit-transition-delay: 0s, 0s;
+ -o-transition-delay: 0s, 0s;
+ -ms-transition-delay: 0s, 0s
+ }
+
+ .trc_excludable .trc_exclude_overlay {
+ position: absolute;
+ z-index: 10000;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ cursor: default;
+ background-color: #fff
+ }
+
+ .videoCube.trc_excludable .trc_exclude_overlay.trc_fade {
+ filter: alpha(opacity=80)\9
+ }
+
+ .videoCube.trc_user_excluded .trc_exclude_overlay {
+ visibility: visible;
+ opacity: .8;
+ filter: alpha(opacity=80)
+ }
+
+ .videoCube.trc_user_excluded .thumbBlock {
+ filter: url("data:image/svg+xml;utf8,&lt;svg xmlns='http://www.w3.org/2000/svg'&gt;&lt;filter id='grayscale'&gt;&lt;feColorMatrix type='matrix' values='0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0' /&gt;&lt;/filter&gt;&lt;/svg&gt;#grayscale");
+ filter: gray;
+ -webkit-filter: grayscale(100%)
+ }
+
+ .videoCube.trc_user_excluded:hover a .video-label-box .video-title,
+ .videoCube_hover.trc_user_excluded a .video-label-box .video-title {
+ text-decoration: none
+ }
+
+ .videoCube.trc_user_excluded a .video-label-box *,
+ .videoCube.trc_user_excluded:hover a .video-label-box *,
+ .videoCube_hover.trc_user_excluded a .video-label-box * {
+ color: #000;
+ overflow: hidden;
+ -webkit-transition: color 500ms 0s;
+ -moz-transition: color 500ms 0s;
+ -ms-transition: color 500ms 0s;
+ -o-transition: color 500ms 0s;
+ transition: color 500ms 0s
+ }
+
+ .videoCube.trc_user_excluded a .video-label-box .label-box-overlay {
+ background-color: #BBB;
+ -webkit-transition: background-color 500ms 0s;
+ -moz-transition: background-color 500ms 0s;
+ -ms-transition: background-color 500ms 0s;
+ -o-transition: background-color 500ms 0s;
+ transition: background-color 500ms 0s
+ }
+
+ .videoCube.thumbnail_under.trc_user_excluded .video-labels-anchor,
+ .videoCube.thumbnail_under.trc_user_excluded:hover .video-labels-anchor {
+ max-height: none;
+ -webkit-transition: none;
+ -moz-transition: none;
+ -ms-transition: none;
+ -o-transition: none;
+ transition: none
+ }
+
+ .trc_related_container .trc_clearer {
+ clear: both;
+ height: 0;
+ overflow: hidden;
+ font-size: 0;
+ line-height: 0;
+ visibility: hidden
+ }
+
+ .link-adc {
+ float: right!important
+ }
+
+ .trc-widget-footer .link-adc a .trc_adc_wrapper,
+ .trc_header_ext .link-adc a .trc_adc_wrapper {
+ vertical-align: baseline;
+ height: 15px;
+ width: 19px;
+ display: inline-block;
+ position: relative
+ }
+
+ .trc-widget-footer .link-adc a .trc_adc_s_logo,
+ .trc_header_ext .link-adc a .trc_adc_s_logo,
+ .trc-widget-footer .link-adc a .trc_adc_b_logo,
+ .trc_header_ext .link-adc a .trc_adc_b_logo {
+ vertical-align: middle;
+ height: 15px;
+ display: inline-block;
+ margin-top: -1px
+ }
+
+ .trc-widget-footer .link-adc a .trc_adc_s_logo,
+ .trc_header_ext .link-adc a .trc_adc_s_logo {
+ width: 19px;
+ background: url(//cdn.taboola.com/libtrc/static/thumbnails/3aadbb71016ecd7a194bbe2791777e9a.png) no-repeat!important
+ }
+
+ .trc-widget-footer .link-adc a .trc_adc_b_logo,
+ .trc_header_ext .link-adc a .trc_adc_b_logo {
+ width: 77px;
+ background: #fff url(//cdn.taboola.com/libtrc/static/thumbnails/0781f9c5a8637d1e162874f157460048.png) no-repeat!important;
+ right: -1px;
+ display: none;
+ position: absolute
+ }
+
+ .trc_mobile_disclosure_link,
+ .trc_mobile_attribution_link,
+ .trc_mobile_adc_link {
+ display: none
+ }
+
+ .trc_desktop_disclosure_link,
+ .trc_desktop_attribution_link,
+ .trc_desktop_adc_link {
+ display: inline
+ }
+
+ @media screen and (max-width:767px) {
+ .trc_mobile_disclosure_link {
+ display: inline
+ }
+ .trc_mobile_attribution_link {
+ display: inline
+ }
+ .trc_mobile_adc_link {
+ display: inline
+ }
+ .trc_desktop_disclosure_link {
+ display: none
+ }
+ .trc_desktop_attribution_link {
+ display: none
+ }
+ .trc_desktop_adc_link {
+ display: none
+ }
+ }
+
+ .trc_in_iframe .trc_mobile_attribution_link,
+ .trc_in_iframe .trc_mobile_disclosure_link {
+ display: inline
+ }
+
+ .trc_in_iframe .trc_desktop_attribution_link,
+ .trc_in_iframe .trc_desktop_disclosure_link {
+ display: none
+ }
+
+ .trc_related_container .logoDiv,
+ .trc_related_container .trc_header_ext .logoDiv {
+ float: right
+ }
+
+ .trc_related_container .logoDiv+.logoDiv {
+ margin-right: 2px
+ }
+
+ .trc_related_container .attribution-disclosure-link-sponsored,
+ .trc_related_container .attribution-disclosure-link-hybrid {
+ display: none
+ }
+
+ .trc_related_container .trc-content-sponsored .attribution-disclosure-link-sponsored {
+ display: block
+ }
+
+ .trc_related_container .trc-content-hybrid .attribution-disclosure-link-hybrid {
+ display: block
+ }
+
+ .trc_related_container .trc-widget-footer:hover a span,
+ .trc_related_container .trc_header_ext:hover a span {
+ text-decoration: underline!important
+ }
+
+ .logoDiv a span.trc_logos_v_align {
+ display: inline-block!important;
+ font-size: 15px!important;
+ line-height: 1em!important;
+ width: 0!important
+ }
+
+ .trc_related_container .trc_header_ext:hover a span.trc_logos_v_align,
+ .trc_related_container .trc_header_ext:hover a span.trc_adc_wrapper,
+ .trc_related_container .trc-widget-footer:hover a span.trc_logos_v_align,
+ .trc_related_container .trc-widget-footer:hover a span.trc_adc_wrapper {
+ text-decoration: none!important
+ }
+
+ .trc_related_container {
+ clear: both
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ max-height: 88.0px;
+ *height: 88.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .video-label,
+ .ab_alternating-thumbnails-a_abp-mode .sponsored,
+ .ab_alternating-thumbnails-a_abp-mode .sponsored-url {
+ font-family: 'Proxima Nova', Proxima-Nova, Helvetica, Arial, sans-serif\3b;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .trc_rbox_header {
+ font-family: 'Proxima Nova', proxima-nova, Helvetica, Arial, sans-serif\3b;
+ font-size: 14.0px;
+ font-weight: bold;
+ text-decoration: none;
+ color: #860000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0 0 6px 0;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-style: none;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode div.videoCube:hover,
+ .ab_alternating-thumbnails-a_abp-mode div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode div.sponsored-default:hover,
+ .ab_alternating-thumbnails-a_abp-mode div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .videoCube:hover .thumbnail-overlay,
+ .ab_alternating-thumbnails-a_abp-mode .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .trc_pager_prev:hover,
+ .ab_alternating-thumbnails-a_abp-mode .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .video-label-box {
+ text-align: left;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode {
+ width: 300px;
+ _width: 300px;
+ border-width: 1px 0px 1px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 8px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .trc_pager_prev,
+ .ab_alternating-thumbnails-a_abp-mode .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .playerCube:hover .thumbnail-overlay,
+ .ab_alternating-thumbnails-a_abp-mode .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .playerCube div.videoCube:hover,
+ .ab_alternating-thumbnails-a_abp-mode div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode div.syndicatedItem:hover,
+ .ab_alternating-thumbnails-a_abp-mode div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ border-style: none;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .syndicatedItem .video-title {
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #000000;
+ font-family: 'Proxima Nova', Proxima-Nova, Helvetica, Arial, sans-serif\3b;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .syndicatedItem .branding {
+ color: #768696;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Proxima Nova', Proxima-Nova, Helvetica, Arial, sans-serif\3b;
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 19.0px;
+ font-weight: bold;
+ max-height: 76.0px;
+ *height: 76.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .video-label,
+ .ab_alternating-thumbnails-a_zoom .sponsored,
+ .ab_alternating-thumbnails-a_zoom .sponsored-url {
+ font-family: 'Proxima Nova', Proxima-Nova, Helvetica, Arial, sans-serif\3b;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .trc_rbox_header {
+ font-family: 'Proxima Nova', proxima-nova, Helvetica, Arial, sans-serif\3b;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #860000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-style: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom div.videoCube:hover,
+ .ab_alternating-thumbnails-a_zoom div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_alternating-thumbnails-a_zoom div.sponsored-default:hover,
+ .ab_alternating-thumbnails-a_zoom div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .videoCube:hover .thumbnail-overlay,
+ .ab_alternating-thumbnails-a_zoom .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_alternating-thumbnails-a_zoom div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .trc_pager_prev:hover,
+ .ab_alternating-thumbnails-a_zoom .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_alternating-thumbnails-a_zoom div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_alternating-thumbnails-a_zoom .video-label-box {
+ text-align: left;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 20px 0px 20px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .trc_pager_prev,
+ .ab_alternating-thumbnails-a_zoom .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .playerCube:hover .thumbnail-overlay,
+ .ab_alternating-thumbnails-a_zoom .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .playerCube div.videoCube:hover,
+ .ab_alternating-thumbnails-a_zoom div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_alternating-thumbnails-a_zoom div.syndicatedItem:hover,
+ .ab_alternating-thumbnails-a_zoom div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_alternating-thumbnails-a_zoom div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ border-style: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .syndicatedItem .video-title {
+ max-height: 57.0px;
+ *height: 57.0px;
+ color: #000000;
+ font-family: 'Proxima Nova', Proxima-Nova, Helvetica, Arial, sans-serif\3b;
+ font-size: 16.0px;
+ line-height: 19.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .syndicatedItem .branding {
+ color: #768696;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Proxima Nova', Proxima-Nova, Helvetica, Arial, sans-serif\3b;
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 19.0px;
+ font-weight: bold;
+ max-height: 76.0px;
+ *height: 76.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .video-label,
+ .ab_alternating-thumbnails-a_zoom-out .sponsored,
+ .ab_alternating-thumbnails-a_zoom-out .sponsored-url {
+ font-family: 'Proxima Nova', Proxima-Nova, Helvetica, Arial, sans-serif\3b;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .trc_rbox_header {
+ font-family: 'Proxima Nova', proxima-nova, Helvetica, Arial, sans-serif\3b;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #860000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-style: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out div.videoCube:hover,
+ .ab_alternating-thumbnails-a_zoom-out div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out div.sponsored-default:hover,
+ .ab_alternating-thumbnails-a_zoom-out div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .videoCube:hover .thumbnail-overlay,
+ .ab_alternating-thumbnails-a_zoom-out .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .trc_pager_prev:hover,
+ .ab_alternating-thumbnails-a_zoom-out .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .video-label-box {
+ text-align: left;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 20px 0px 20px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .trc_pager_prev,
+ .ab_alternating-thumbnails-a_zoom-out .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .playerCube:hover .thumbnail-overlay,
+ .ab_alternating-thumbnails-a_zoom-out .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .playerCube div.videoCube:hover,
+ .ab_alternating-thumbnails-a_zoom-out div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out div.syndicatedItem:hover,
+ .ab_alternating-thumbnails-a_zoom-out div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ border-style: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .syndicatedItem .video-title {
+ max-height: 57.0px;
+ *height: 57.0px;
+ color: #000000;
+ font-family: 'Proxima Nova', Proxima-Nova, Helvetica, Arial, sans-serif\3b;
+ font-size: 16.0px;
+ line-height: 19.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .syndicatedItem .branding {
+ color: #768696;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Proxima Nova', Proxima-Nova, Helvetica, Arial, sans-serif\3b;
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 19.0px;
+ font-weight: bold;
+ max-height: 76.0px;
+ *height: 76.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .video-label,
+ .ab_alternating-thumbnails-a_zoom-rotate .sponsored,
+ .ab_alternating-thumbnails-a_zoom-rotate .sponsored-url {
+ font-family: 'Proxima Nova', Proxima-Nova, Helvetica, Arial, sans-serif\3b;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .trc_rbox_header {
+ font-family: 'Proxima Nova', proxima-nova, Helvetica, Arial, sans-serif\3b;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #860000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-style: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate div.videoCube:hover,
+ .ab_alternating-thumbnails-a_zoom-rotate div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate div.sponsored-default:hover,
+ .ab_alternating-thumbnails-a_zoom-rotate div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .videoCube:hover .thumbnail-overlay,
+ .ab_alternating-thumbnails-a_zoom-rotate .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .trc_pager_prev:hover,
+ .ab_alternating-thumbnails-a_zoom-rotate .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .video-label-box {
+ text-align: left;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 20px 0px 20px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .trc_pager_prev,
+ .ab_alternating-thumbnails-a_zoom-rotate .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .playerCube:hover .thumbnail-overlay,
+ .ab_alternating-thumbnails-a_zoom-rotate .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .playerCube div.videoCube:hover,
+ .ab_alternating-thumbnails-a_zoom-rotate div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate div.syndicatedItem:hover,
+ .ab_alternating-thumbnails-a_zoom-rotate div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ border-style: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .syndicatedItem .video-title {
+ max-height: 57.0px;
+ *height: 57.0px;
+ color: #000000;
+ font-family: 'Proxima Nova', Proxima-Nova, Helvetica, Arial, sans-serif\3b;
+ font-size: 16.0px;
+ line-height: 19.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .syndicatedItem .branding {
+ color: #768696;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Proxima Nova', Proxima-Nova, Helvetica, Arial, sans-serif\3b;
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ max-height: 88.0px;
+ *height: 88.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .video-label,
+ .ab_alternating-thumbnails-c_abp-mode .sponsored,
+ .ab_alternating-thumbnails-c_abp-mode .sponsored-url {
+ font-family: 'Proxima Nova', proxima-nova, helvetica, arial;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .trc_rbox_header {
+ font-family: 'Proxima Nova', Proxima-Nova, Helvetica, Arial, sans-serif\3b;
+ font-size: 14.0px;
+ font-weight: bold;
+ text-decoration: none;
+ color: #860000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0 0 6px 0;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-style: none;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode div.videoCube:hover,
+ .ab_alternating-thumbnails-c_abp-mode div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode div.sponsored-default:hover,
+ .ab_alternating-thumbnails-c_abp-mode div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .videoCube:hover .thumbnail-overlay,
+ .ab_alternating-thumbnails-c_abp-mode .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .trc_pager_prev:hover,
+ .ab_alternating-thumbnails-c_abp-mode .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .video-label-box {
+ text-align: left;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode {
+ width: 300px;
+ _width: 300px;
+ border-width: 1px 0px 1px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 8px 60px 0px 60px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .trc_pager_prev,
+ .ab_alternating-thumbnails-c_abp-mode .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .playerCube:hover .thumbnail-overlay,
+ .ab_alternating-thumbnails-c_abp-mode .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .playerCube div.videoCube:hover,
+ .ab_alternating-thumbnails-c_abp-mode div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode div.syndicatedItem:hover,
+ .ab_alternating-thumbnails-c_abp-mode div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ border-style: none;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .syndicatedItem .video-title {
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #000000;
+ font-family: 'Proxima Nova', proxima-nova, helvetica, arial;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .syndicatedItem .branding {
+ color: #768696;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Proxima Nova', proxima-nova, helvetica, arial;
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ max-height: 88.0px;
+ *height: 88.0px;
+ color: #000;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .video-label,
+ .ab_alternating-thumbnails-e_abp-mode .sponsored,
+ .ab_alternating-thumbnails-e_abp-mode .sponsored-url {
+ font-family: 'Proxima Nova', proxima-nova;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .trc_rbox_header {
+ font-family: 'Proxima Nova', proxima-nova;
+ font-size: 15.0px;
+ font-weight: bold;
+ text-decoration: none;
+ color: #b80000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0 0 6px 0;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-style: none;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode div.videoCube:hover,
+ .ab_alternating-thumbnails-e_abp-mode div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode div.sponsored-default:hover,
+ .ab_alternating-thumbnails-e_abp-mode div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .videoCube:hover .thumbnail-overlay,
+ .ab_alternating-thumbnails-e_abp-mode .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .trc_pager_prev:hover,
+ .ab_alternating-thumbnails-e_abp-mode .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .video-label-box {
+ text-align: left;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode {
+ width: 300px;
+ _width: 300px;
+ border-width: 1px 1px 1px 1px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 5px 5px 0px 5px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .trc_pager_prev,
+ .ab_alternating-thumbnails-e_abp-mode .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .playerCube:hover .thumbnail-overlay,
+ .ab_alternating-thumbnails-e_abp-mode .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .playerCube div.videoCube:hover,
+ .ab_alternating-thumbnails-e_abp-mode div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode div.syndicatedItem:hover,
+ .ab_alternating-thumbnails-e_abp-mode div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ border-style: none;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .syndicatedItem .video-title {
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #000;
+ font-family: 'Proxima Nova', proxima-nova;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Proxima Nova', proxima-nova;
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ max-height: 88.0px;
+ *height: 88.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .video-label,
+ .ab_alternating-thumbnails-rr_abp-mode .sponsored,
+ .ab_alternating-thumbnails-rr_abp-mode .sponsored-url {
+ font-family: 'Proxima Nova', proxima-nova, helvetica, arial, 'sans-serif';
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .trc_rbox_header {
+ font-family: 'Proxima Nova', proxima-nova, helvetica;
+ font-size: 19.0px;
+ font-weight: bold;
+ text-decoration: none;
+ color: #860000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0 0 6px 0;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-style: none;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode div.videoCube:hover,
+ .ab_alternating-thumbnails-rr_abp-mode div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode div.sponsored-default:hover,
+ .ab_alternating-thumbnails-rr_abp-mode div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .videoCube:hover .thumbnail-overlay,
+ .ab_alternating-thumbnails-rr_abp-mode .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .trc_pager_prev:hover,
+ .ab_alternating-thumbnails-rr_abp-mode .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .video-label-box {
+ text-align: left;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode {
+ width: 300px;
+ _width: 300px;
+ border-width: 1px 1px 1px 1px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 8px 8px 0px 8px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .trc_pager_prev,
+ .ab_alternating-thumbnails-rr_abp-mode .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .playerCube:hover .thumbnail-overlay,
+ .ab_alternating-thumbnails-rr_abp-mode .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .playerCube div.videoCube:hover,
+ .ab_alternating-thumbnails-rr_abp-mode div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode div.syndicatedItem:hover,
+ .ab_alternating-thumbnails-rr_abp-mode div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ border-style: none;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .syndicatedItem .video-title {
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #000000;
+ font-family: 'Proxima Nova', proxima-nova, helvetica, arial, 'sans-serif';
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .syndicatedItem .branding {
+ color: #768696;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Proxima Nova', proxima-nova, helvetica, arial, 'sans-serif';
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .ab_thumbnails-c_abp-mode .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ max-height: 88.0px;
+ *height: 88.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-c_abp-mode .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-c_abp-mode .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_thumbnails-c_abp-mode .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_thumbnails-c_abp-mode .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-c_abp-mode .video-label,
+ .ab_thumbnails-c_abp-mode .sponsored,
+ .ab_thumbnails-c_abp-mode .sponsored-url {
+ font-family: 'Proxima Nova', proxima-nova, helvetica, arial, sans-serif;
+ }
+
+ .ab_thumbnails-c_abp-mode .trc_rbox_header {
+ font-family: 'Proxima Nova', proxima-nova, helvetica, arial, sans-serif;
+ font-size: 14.0px;
+ font-weight: bold;
+ text-decoration: none;
+ color: #860000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0 0 6px 0;
+ }
+
+ .ab_thumbnails-c_abp-mode .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_thumbnails-c_abp-mode .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_thumbnails-c_abp-mode .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-c_abp-mode .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-c_abp-mode .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-c_abp-mode .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-c_abp-mode .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-c_abp-mode .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-c_abp-mode .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_thumbnails-c_abp-mode .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_thumbnails-c_abp-mode .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-style: none;
+ }
+
+ .ab_thumbnails-c_abp-mode div.videoCube:hover,
+ .ab_thumbnails-c_abp-mode div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-c_abp-mode .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_thumbnails-c_abp-mode div.sponsored-default:hover,
+ .ab_thumbnails-c_abp-mode div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_thumbnails-c_abp-mode .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-c_abp-mode .videoCube:hover .thumbnail-overlay,
+ .ab_thumbnails-c_abp-mode .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-c_abp-mode .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-c_abp-mode .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-c_abp-mode div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-c_abp-mode .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-c_abp-mode .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_thumbnails-c_abp-mode .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-c_abp-mode .trc_pager_prev:hover,
+ .ab_thumbnails-c_abp-mode .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-c_abp-mode .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-c_abp-mode .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-c_abp-mode div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-c_abp-mode .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_thumbnails-c_abp-mode .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-c_abp-mode .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_thumbnails-c_abp-mode .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-c_abp-mode .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_thumbnails-c_abp-mode {
+ width: 300px;
+ _width: 300px;
+ border-width: 1px 1px 1px 1px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 8px 8px 0px 8px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_thumbnails-c_abp-mode .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-c_abp-mode .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-c_abp-mode .trc_pager_prev,
+ .ab_thumbnails-c_abp-mode .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-c_abp-mode .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-c_abp-mode .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-c_abp-mode .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_thumbnails-c_abp-mode .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-c_abp-mode .playerCube:hover .thumbnail-overlay,
+ .ab_thumbnails-c_abp-mode .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-c_abp-mode .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_thumbnails-c_abp-mode .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_thumbnails-c_abp-mode .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-c_abp-mode .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-c_abp-mode .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-c_abp-mode .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-c_abp-mode .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-c_abp-mode .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-c_abp-mode .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_thumbnails-c_abp-mode .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_thumbnails-c_abp-mode .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-c_abp-mode .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-c_abp-mode .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-c_abp-mode .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-c_abp-mode .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_thumbnails-c_abp-mode .playerCube div.videoCube:hover,
+ .ab_thumbnails-c_abp-mode div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-c_abp-mode .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_thumbnails-c_abp-mode div.syndicatedItem:hover,
+ .ab_thumbnails-c_abp-mode div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-c_abp-mode div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-c_abp-mode .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ border-style: none;
+ }
+
+ .ab_thumbnails-c_abp-mode .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-c_abp-mode .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_thumbnails-c_abp-mode .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-c_abp-mode .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-c_abp-mode .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_thumbnails-c_abp-mode .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_thumbnails-c_abp-mode .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-c_abp-mode .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-c_abp-mode .syndicatedItem .video-title {
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #000000;
+ font-family: 'Proxima Nova', proxima-nova, helvetica, arial, sans-serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-c_abp-mode .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-c_abp-mode .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-c_abp-mode .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-c_abp-mode .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-c_abp-mode .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-c_abp-mode .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-c_abp-mode .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-c_abp-mode .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-c_abp-mode .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-c_abp-mode .syndicatedItem .branding {
+ color: #768696;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Proxima Nova', proxima-nova, helvetica, arial, sans-serif;
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_thumbnails-c_abp-mode .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_thumbnails-c_abp-mode .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_thumbnails-c_abp-mode .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .alternating-thumbnails-a .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 19.0px;
+ font-weight: bold;
+ max-height: 76.0px;
+ *height: 76.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-a .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-a .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .alternating-thumbnails-a .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .alternating-thumbnails-a .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .alternating-thumbnails-a .video-label,
+ .alternating-thumbnails-a .sponsored,
+ .alternating-thumbnails-a .sponsored-url {
+ font-family: 'Proxima Nova', Proxima-Nova, Helvetica, Arial, sans-serif\3b;
+ }
+
+ .alternating-thumbnails-a .trc_rbox_header {
+ font-family: 'Proxima Nova', proxima-nova, Helvetica, Arial, sans-serif\3b;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #860000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .alternating-thumbnails-a .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .alternating-thumbnails-a .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .alternating-thumbnails-a .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-a .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-a .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-a .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-a .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-a .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-a .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .alternating-thumbnails-a .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .alternating-thumbnails-a .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-style: none;
+ }
+
+ .alternating-thumbnails-a div.videoCube:hover,
+ .alternating-thumbnails-a div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .alternating-thumbnails-a .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .alternating-thumbnails-a div.sponsored-default:hover,
+ .alternating-thumbnails-a div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .alternating-thumbnails-a .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .alternating-thumbnails-a .videoCube:hover .thumbnail-overlay,
+ .alternating-thumbnails-a .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .alternating-thumbnails-a .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .alternating-thumbnails-a .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .alternating-thumbnails-a div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .alternating-thumbnails-a .pager_enabled {
+ color: #0056b3;
+ }
+
+ .alternating-thumbnails-a .trc_pager_counter {
+ color: #000000;
+ }
+
+ .alternating-thumbnails-a .pager_disabled {
+ color: #7d898f;
+ }
+
+ .alternating-thumbnails-a .trc_pager_prev:hover,
+ .alternating-thumbnails-a .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .alternating-thumbnails-a .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .alternating-thumbnails-a .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .alternating-thumbnails-a div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .alternating-thumbnails-a .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .alternating-thumbnails-a .video-label-box {
+ text-align: left;
+ }
+
+ .alternating-thumbnails-a .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .alternating-thumbnails-a .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .alternating-thumbnails-a .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .alternating-thumbnails-a {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 20px 0px 20px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .alternating-thumbnails-a .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .alternating-thumbnails-a .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .alternating-thumbnails-a .trc_pager_prev,
+ .alternating-thumbnails-a .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-a .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-a .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-a .trc_pager div {
+ font-family: serif;
+ }
+
+ .alternating-thumbnails-a .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .alternating-thumbnails-a .playerCube:hover .thumbnail-overlay,
+ .alternating-thumbnails-a .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .alternating-thumbnails-a .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .alternating-thumbnails-a .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .alternating-thumbnails-a .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .alternating-thumbnails-a .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-a .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-a .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .alternating-thumbnails-a .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-a .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-a .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .alternating-thumbnails-a .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .alternating-thumbnails-a .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .alternating-thumbnails-a .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-a .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-a .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-a .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .alternating-thumbnails-a .playerCube div.videoCube:hover,
+ .alternating-thumbnails-a div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .alternating-thumbnails-a .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .alternating-thumbnails-a div.syndicatedItem:hover,
+ .alternating-thumbnails-a div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .alternating-thumbnails-a div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .alternating-thumbnails-a .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ border-style: none;
+ }
+
+ .alternating-thumbnails-a .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .alternating-thumbnails-a .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .alternating-thumbnails-a .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .alternating-thumbnails-a .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .alternating-thumbnails-a .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .alternating-thumbnails-a .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .alternating-thumbnails-a .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .alternating-thumbnails-a .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-a .syndicatedItem .video-title {
+ max-height: 57.0px;
+ *height: 57.0px;
+ color: #000000;
+ font-family: 'Proxima Nova', Proxima-Nova, Helvetica, Arial, sans-serif\3b;
+ font-size: 16.0px;
+ line-height: 19.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-a .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-a .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .alternating-thumbnails-a .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-a .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-a .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-a .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-a .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-a .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-a .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-a .syndicatedItem .branding {
+ color: #768696;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Proxima Nova', Proxima-Nova, Helvetica, Arial, sans-serif\3b;
+ background-image: null;
+ text-align: left;
+ }
+
+ .alternating-thumbnails-a .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .alternating-thumbnails-a .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .alternating-thumbnails-a .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .alternating-thumbnails-b .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 18.0px;
+ line-height: 24.0px;
+ font-weight: bold;
+ max-height: 96.0px;
+ *height: 96.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-b .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-b .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .alternating-thumbnails-b .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .alternating-thumbnails-b .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .alternating-thumbnails-b .video-label,
+ .alternating-thumbnails-b .sponsored,
+ .alternating-thumbnails-b .sponsored-url {
+ font-family: Panton;
+ }
+
+ .alternating-thumbnails-b .trc_rbox_header {
+ font-family: Panton;
+ font-size: 21.0px;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0 0 6px 0;
+ }
+
+ .alternating-thumbnails-b .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .alternating-thumbnails-b .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .alternating-thumbnails-b .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-b .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-b .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-b .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-b .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-b .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-b .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .alternating-thumbnails-b .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .alternating-thumbnails-b .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-style: none;
+ }
+
+ .alternating-thumbnails-b div.videoCube:hover,
+ .alternating-thumbnails-b div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .alternating-thumbnails-b .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .alternating-thumbnails-b div.sponsored-default:hover,
+ .alternating-thumbnails-b div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .alternating-thumbnails-b .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .alternating-thumbnails-b .videoCube:hover .thumbnail-overlay,
+ .alternating-thumbnails-b .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .alternating-thumbnails-b .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .alternating-thumbnails-b .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .alternating-thumbnails-b div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .alternating-thumbnails-b .pager_enabled {
+ color: #0056b3;
+ }
+
+ .alternating-thumbnails-b .trc_pager_counter {
+ color: #000000;
+ }
+
+ .alternating-thumbnails-b .pager_disabled {
+ color: #7d898f;
+ }
+
+ .alternating-thumbnails-b .trc_pager_prev:hover,
+ .alternating-thumbnails-b .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .alternating-thumbnails-b .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .alternating-thumbnails-b .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .alternating-thumbnails-b div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .alternating-thumbnails-b .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .alternating-thumbnails-b .video-label-box {
+ text-align: left;
+ }
+
+ .alternating-thumbnails-b .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .alternating-thumbnails-b .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .alternating-thumbnails-b .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .alternating-thumbnails-b {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .alternating-thumbnails-b .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .alternating-thumbnails-b .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .alternating-thumbnails-b .trc_pager_prev,
+ .alternating-thumbnails-b .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-b .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-b .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-b .trc_pager div {
+ font-family: serif;
+ }
+
+ .alternating-thumbnails-b .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .alternating-thumbnails-b .playerCube:hover .thumbnail-overlay,
+ .alternating-thumbnails-b .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .alternating-thumbnails-b .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .alternating-thumbnails-b .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .alternating-thumbnails-b .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .alternating-thumbnails-b .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-b .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-b .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .alternating-thumbnails-b .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-b .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-b .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .alternating-thumbnails-b .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .alternating-thumbnails-b .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .alternating-thumbnails-b .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-b .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-b .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-b .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .alternating-thumbnails-b .playerCube div.videoCube:hover,
+ .alternating-thumbnails-b div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .alternating-thumbnails-b .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .alternating-thumbnails-b div.syndicatedItem:hover,
+ .alternating-thumbnails-b div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .alternating-thumbnails-b div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .alternating-thumbnails-b .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ border-style: none;
+ }
+
+ .alternating-thumbnails-b .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .alternating-thumbnails-b .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .alternating-thumbnails-b .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .alternating-thumbnails-b .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .alternating-thumbnails-b .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .alternating-thumbnails-b .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .alternating-thumbnails-b .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .alternating-thumbnails-b .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-b .syndicatedItem .video-title {
+ max-height: 72.0px;
+ *height: 72.0px;
+ color: #000000;
+ font-family: Panton;
+ font-size: 16.0px;
+ line-height: 20.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-b .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-b .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .alternating-thumbnails-b .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-b .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-b .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-b .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-b .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-b .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-b .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-b .syndicatedItem .branding {
+ color: #000000;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Proxima Nova';
+ background-image: null;
+ text-align: left;
+ }
+
+ .alternating-thumbnails-b .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .alternating-thumbnails-b .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .alternating-thumbnails-b .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .alternating-thumbnails-c .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ max-height: 88.0px;
+ *height: 88.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-c .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-c .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .alternating-thumbnails-c .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .alternating-thumbnails-c .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .alternating-thumbnails-c .video-label,
+ .alternating-thumbnails-c .sponsored,
+ .alternating-thumbnails-c .sponsored-url {
+ font-family: 'Proxima Nova', proxima-nova, helvetica, arial;
+ }
+
+ .alternating-thumbnails-c .trc_rbox_header {
+ font-family: 'Proxima Nova', Proxima-Nova, Helvetica, Arial, sans-serif\3b;
+ font-size: 14.0px;
+ font-weight: bold;
+ text-decoration: none;
+ color: #860000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0 0 6px 0;
+ }
+
+ .alternating-thumbnails-c .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .alternating-thumbnails-c .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .alternating-thumbnails-c .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-c .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-c .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-c .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-c .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-c .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-c .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .alternating-thumbnails-c .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .alternating-thumbnails-c .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-style: none;
+ }
+
+ .alternating-thumbnails-c div.videoCube:hover,
+ .alternating-thumbnails-c div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .alternating-thumbnails-c .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .alternating-thumbnails-c div.sponsored-default:hover,
+ .alternating-thumbnails-c div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .alternating-thumbnails-c .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .alternating-thumbnails-c .videoCube:hover .thumbnail-overlay,
+ .alternating-thumbnails-c .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .alternating-thumbnails-c .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .alternating-thumbnails-c .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .alternating-thumbnails-c div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .alternating-thumbnails-c .pager_enabled {
+ color: #0056b3;
+ }
+
+ .alternating-thumbnails-c .trc_pager_counter {
+ color: #000000;
+ }
+
+ .alternating-thumbnails-c .pager_disabled {
+ color: #7d898f;
+ }
+
+ .alternating-thumbnails-c .trc_pager_prev:hover,
+ .alternating-thumbnails-c .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .alternating-thumbnails-c .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .alternating-thumbnails-c .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .alternating-thumbnails-c div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .alternating-thumbnails-c .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .alternating-thumbnails-c .video-label-box {
+ text-align: left;
+ }
+
+ .alternating-thumbnails-c .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .alternating-thumbnails-c .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .alternating-thumbnails-c .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .alternating-thumbnails-c {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .alternating-thumbnails-c .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .alternating-thumbnails-c .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .alternating-thumbnails-c .trc_pager_prev,
+ .alternating-thumbnails-c .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-c .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-c .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-c .trc_pager div {
+ font-family: serif;
+ }
+
+ .alternating-thumbnails-c .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .alternating-thumbnails-c .playerCube:hover .thumbnail-overlay,
+ .alternating-thumbnails-c .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .alternating-thumbnails-c .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .alternating-thumbnails-c .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .alternating-thumbnails-c .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .alternating-thumbnails-c .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-c .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-c .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .alternating-thumbnails-c .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-c .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-c .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .alternating-thumbnails-c .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .alternating-thumbnails-c .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .alternating-thumbnails-c .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-c .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-c .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-c .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .alternating-thumbnails-c .playerCube div.videoCube:hover,
+ .alternating-thumbnails-c div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .alternating-thumbnails-c .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .alternating-thumbnails-c div.syndicatedItem:hover,
+ .alternating-thumbnails-c div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .alternating-thumbnails-c div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .alternating-thumbnails-c .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ border-style: none;
+ }
+
+ .alternating-thumbnails-c .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .alternating-thumbnails-c .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .alternating-thumbnails-c .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .alternating-thumbnails-c .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .alternating-thumbnails-c .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .alternating-thumbnails-c .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .alternating-thumbnails-c .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .alternating-thumbnails-c .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-c .syndicatedItem .video-title {
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #000000;
+ font-family: 'Proxima Nova', proxima-nova, helvetica, arial;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-c .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-c .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .alternating-thumbnails-c .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-c .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-c .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-c .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-c .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-c .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-c .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-c .syndicatedItem .branding {
+ color: #768696;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Proxima Nova', proxima-nova, helvetica, arial;
+ background-image: null;
+ text-align: left;
+ }
+
+ .alternating-thumbnails-c .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .alternating-thumbnails-c .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .alternating-thumbnails-c .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .alternating-thumbnails-e .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ max-height: 88.0px;
+ *height: 88.0px;
+ color: #000;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-e .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-e .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .alternating-thumbnails-e .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .alternating-thumbnails-e .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .alternating-thumbnails-e .video-label,
+ .alternating-thumbnails-e .sponsored,
+ .alternating-thumbnails-e .sponsored-url {
+ font-family: 'Proxima Nova', Proxima-Nova, Helvetica, Arial, sans-serif\3b;
+ }
+
+ .alternating-thumbnails-e .trc_rbox_header {
+ font-family: 'Proxima Nova', proxima-nova;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #b80000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .alternating-thumbnails-e .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .alternating-thumbnails-e .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .alternating-thumbnails-e .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-e .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-e .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-e .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-e .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-e .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-e .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .alternating-thumbnails-e .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .alternating-thumbnails-e .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-style: none;
+ }
+
+ .alternating-thumbnails-e div.videoCube:hover,
+ .alternating-thumbnails-e div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .alternating-thumbnails-e .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .alternating-thumbnails-e div.sponsored-default:hover,
+ .alternating-thumbnails-e div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .alternating-thumbnails-e .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .alternating-thumbnails-e .videoCube:hover .thumbnail-overlay,
+ .alternating-thumbnails-e .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .alternating-thumbnails-e .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .alternating-thumbnails-e .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .alternating-thumbnails-e div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .alternating-thumbnails-e .pager_enabled {
+ color: #0056b3;
+ }
+
+ .alternating-thumbnails-e .trc_pager_counter {
+ color: #000000;
+ }
+
+ .alternating-thumbnails-e .pager_disabled {
+ color: #7d898f;
+ }
+
+ .alternating-thumbnails-e .trc_pager_prev:hover,
+ .alternating-thumbnails-e .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .alternating-thumbnails-e .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .alternating-thumbnails-e .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .alternating-thumbnails-e div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .alternating-thumbnails-e .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .alternating-thumbnails-e .video-label-box {
+ text-align: left;
+ }
+
+ .alternating-thumbnails-e .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .alternating-thumbnails-e .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .alternating-thumbnails-e .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .alternating-thumbnails-e {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .alternating-thumbnails-e .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .alternating-thumbnails-e .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .alternating-thumbnails-e .trc_pager_prev,
+ .alternating-thumbnails-e .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-e .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-e .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-e .trc_pager div {
+ font-family: serif;
+ }
+
+ .alternating-thumbnails-e .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .alternating-thumbnails-e .playerCube:hover .thumbnail-overlay,
+ .alternating-thumbnails-e .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .alternating-thumbnails-e .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .alternating-thumbnails-e .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .alternating-thumbnails-e .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .alternating-thumbnails-e .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-e .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-e .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .alternating-thumbnails-e .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-e .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-e .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .alternating-thumbnails-e .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .alternating-thumbnails-e .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .alternating-thumbnails-e .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-e .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-e .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-e .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .alternating-thumbnails-e .playerCube div.videoCube:hover,
+ .alternating-thumbnails-e div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .alternating-thumbnails-e .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .alternating-thumbnails-e div.syndicatedItem:hover,
+ .alternating-thumbnails-e div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .alternating-thumbnails-e div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .alternating-thumbnails-e .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ border-style: none;
+ }
+
+ .alternating-thumbnails-e .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .alternating-thumbnails-e .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .alternating-thumbnails-e .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .alternating-thumbnails-e .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .alternating-thumbnails-e .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .alternating-thumbnails-e .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .alternating-thumbnails-e .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .alternating-thumbnails-e .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-e .syndicatedItem .video-title {
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #000;
+ font-family: 'Proxima Nova', Proxima-Nova, Helvetica, Arial, sans-serif\3b;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-e .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-e .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .alternating-thumbnails-e .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-e .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-e .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-e .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-e .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-e .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-e .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-e .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Proxima Nova', Proxima-Nova, Helvetica, Arial, sans-serif\3b;
+ background-image: null;
+ text-align: left;
+ }
+
+ .alternating-thumbnails-e .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .alternating-thumbnails-e .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .alternating-thumbnails-e .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .alternating-thumbnails-g .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ max-height: 88.0px;
+ *height: 88.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-g .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-g .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .alternating-thumbnails-g .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .alternating-thumbnails-g .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .alternating-thumbnails-g .video-label,
+ .alternating-thumbnails-g .sponsored,
+ .alternating-thumbnails-g .sponsored-url {
+ font-family: 'Proxima Nova', Proxima-Nova, Helvetica, Arial, sans-serif\3b;
+ }
+
+ .alternating-thumbnails-g .trc_rbox_header {
+ font-family: 'Proxima Nova', Proxima-Nova, Helvetica, Arial, sans-serif\3b;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #B80000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .alternating-thumbnails-g .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .alternating-thumbnails-g .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .alternating-thumbnails-g .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-g .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-g .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-g .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-g .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-g .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-g .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .alternating-thumbnails-g .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .alternating-thumbnails-g .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-style: none;
+ }
+
+ .alternating-thumbnails-g div.videoCube:hover,
+ .alternating-thumbnails-g div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .alternating-thumbnails-g .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .alternating-thumbnails-g div.sponsored-default:hover,
+ .alternating-thumbnails-g div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .alternating-thumbnails-g .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .alternating-thumbnails-g .videoCube:hover .thumbnail-overlay,
+ .alternating-thumbnails-g .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .alternating-thumbnails-g .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .alternating-thumbnails-g .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .alternating-thumbnails-g div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .alternating-thumbnails-g .pager_enabled {
+ color: #0056b3;
+ }
+
+ .alternating-thumbnails-g .trc_pager_counter {
+ color: #000000;
+ }
+
+ .alternating-thumbnails-g .pager_disabled {
+ color: #7d898f;
+ }
+
+ .alternating-thumbnails-g .trc_pager_prev:hover,
+ .alternating-thumbnails-g .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .alternating-thumbnails-g .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .alternating-thumbnails-g .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .alternating-thumbnails-g div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .alternating-thumbnails-g .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .alternating-thumbnails-g .video-label-box {
+ text-align: left;
+ }
+
+ .alternating-thumbnails-g .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .alternating-thumbnails-g .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .alternating-thumbnails-g .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .alternating-thumbnails-g {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 20px 0px 20px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .alternating-thumbnails-g .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .alternating-thumbnails-g .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .alternating-thumbnails-g .trc_pager_prev,
+ .alternating-thumbnails-g .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-g .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-g .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-g .trc_pager div {
+ font-family: serif;
+ }
+
+ .alternating-thumbnails-g .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .alternating-thumbnails-g .playerCube:hover .thumbnail-overlay,
+ .alternating-thumbnails-g .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .alternating-thumbnails-g .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .alternating-thumbnails-g .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .alternating-thumbnails-g .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .alternating-thumbnails-g .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-g .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-g .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .alternating-thumbnails-g .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-g .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-g .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .alternating-thumbnails-g .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .alternating-thumbnails-g .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .alternating-thumbnails-g .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-g .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-g .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-g .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .alternating-thumbnails-g .playerCube div.videoCube:hover,
+ .alternating-thumbnails-g div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .alternating-thumbnails-g .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .alternating-thumbnails-g div.syndicatedItem:hover,
+ .alternating-thumbnails-g div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .alternating-thumbnails-g div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .alternating-thumbnails-g .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ border-style: none;
+ }
+
+ .alternating-thumbnails-g .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .alternating-thumbnails-g .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .alternating-thumbnails-g .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .alternating-thumbnails-g .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .alternating-thumbnails-g .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .alternating-thumbnails-g .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .alternating-thumbnails-g .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .alternating-thumbnails-g .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-g .syndicatedItem .video-title {
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #000000;
+ font-family: 'Proxima Nova', Proxima-Nova, Helvetica, Arial, sans-serif\3b;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-g .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-g .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .alternating-thumbnails-g .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-g .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-g .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-g .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-g .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-g .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-g .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-g .syndicatedItem .branding {
+ color: #768696;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Proxima Nova', Proxima-Nova, Helvetica, Arial, sans-serif\3b;
+ background-image: null;
+ text-align: left;
+ }
+
+ .alternating-thumbnails-g .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .alternating-thumbnails-g .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .alternating-thumbnails-g .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .alternating-thumbnails-rr .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ max-height: 88.0px;
+ *height: 88.0px;
+ color: #000;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-rr .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-rr .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .alternating-thumbnails-rr .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .alternating-thumbnails-rr .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .alternating-thumbnails-rr .video-label,
+ .alternating-thumbnails-rr .sponsored,
+ .alternating-thumbnails-rr .sponsored-url {
+ font-family: 'Proxima Nova', proxima-nova, helvetica, arial, 'sans-serif';
+ }
+
+ .alternating-thumbnails-rr .trc_rbox_header {
+ font-family: 'Proxima Nova', proxima-nova, helvetica;
+ font-size: 100%;
+ font-weight: bold;
+ text-decoration: none;
+ color: #B80000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .alternating-thumbnails-rr .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .alternating-thumbnails-rr .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .alternating-thumbnails-rr .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-rr .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-rr .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-rr .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-rr .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-rr .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-rr .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .alternating-thumbnails-rr .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .alternating-thumbnails-rr .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-style: none;
+ }
+
+ .alternating-thumbnails-rr div.videoCube:hover,
+ .alternating-thumbnails-rr div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .alternating-thumbnails-rr .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .alternating-thumbnails-rr div.sponsored-default:hover,
+ .alternating-thumbnails-rr div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .alternating-thumbnails-rr .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .alternating-thumbnails-rr .videoCube:hover .thumbnail-overlay,
+ .alternating-thumbnails-rr .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .alternating-thumbnails-rr .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .alternating-thumbnails-rr .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .alternating-thumbnails-rr div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .alternating-thumbnails-rr .pager_enabled {
+ color: #0056b3;
+ }
+
+ .alternating-thumbnails-rr .trc_pager_counter {
+ color: #000000;
+ }
+
+ .alternating-thumbnails-rr .pager_disabled {
+ color: #7d898f;
+ }
+
+ .alternating-thumbnails-rr .trc_pager_prev:hover,
+ .alternating-thumbnails-rr .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .alternating-thumbnails-rr .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .alternating-thumbnails-rr .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .alternating-thumbnails-rr div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .alternating-thumbnails-rr .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .alternating-thumbnails-rr .video-label-box {
+ text-align: left;
+ }
+
+ .alternating-thumbnails-rr .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .alternating-thumbnails-rr .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .alternating-thumbnails-rr .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .alternating-thumbnails-rr {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .alternating-thumbnails-rr .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .alternating-thumbnails-rr .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .alternating-thumbnails-rr .trc_pager_prev,
+ .alternating-thumbnails-rr .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-rr .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-rr .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-rr .trc_pager div {
+ font-family: serif;
+ }
+
+ .alternating-thumbnails-rr .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .alternating-thumbnails-rr .playerCube:hover .thumbnail-overlay,
+ .alternating-thumbnails-rr .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .alternating-thumbnails-rr .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .alternating-thumbnails-rr .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .alternating-thumbnails-rr .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .alternating-thumbnails-rr .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-rr .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-rr .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .alternating-thumbnails-rr .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-rr .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-rr .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .alternating-thumbnails-rr .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .alternating-thumbnails-rr .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .alternating-thumbnails-rr .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-rr .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-rr .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .alternating-thumbnails-rr .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .alternating-thumbnails-rr .playerCube div.videoCube:hover,
+ .alternating-thumbnails-rr div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .alternating-thumbnails-rr .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .alternating-thumbnails-rr div.syndicatedItem:hover,
+ .alternating-thumbnails-rr div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .alternating-thumbnails-rr div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .alternating-thumbnails-rr .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ border-style: none;
+ }
+
+ .alternating-thumbnails-rr .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .alternating-thumbnails-rr .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .alternating-thumbnails-rr .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .alternating-thumbnails-rr .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .alternating-thumbnails-rr .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .alternating-thumbnails-rr .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .alternating-thumbnails-rr .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .alternating-thumbnails-rr .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-rr .syndicatedItem .video-title {
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #000;
+ font-family: 'Proxima Nova', proxima-nova, helvetica, arial, 'sans-serif';
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-rr .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-rr .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .alternating-thumbnails-rr .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-rr .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-rr .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-rr .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-rr .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-rr .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-rr .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-rr .syndicatedItem .branding {
+ color: #768696;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Proxima Nova', proxima-nova, helvetica, arial, 'sans-serif';
+ background-image: null;
+ text-align: left;
+ }
+
+ .alternating-thumbnails-rr .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .alternating-thumbnails-rr .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .alternating-thumbnails-rr .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 30%;
+ _width: 30%;
+ }
+
+ .rbox-blended .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .rbox-blended .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .rbox-blended .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 1px;
+ padding: 0;
+ }
+
+ .rbox-blended .videoCube .video-duration {
+ left: 36px;
+ display: block;
+ }
+
+ .rbox-blended .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .rbox-blended .video-label,
+ .rbox-blended .sponsored,
+ .rbox-blended .sponsored-url {
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .rbox-blended .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16px;
+ font-weight: bold;
+ text-decoration: none;
+ color: black;
+ border-width: 0;
+ background: transparent;
+ border-style: none none solid none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .rbox-blended .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .rbox-blended .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .rbox-blended .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .rbox-blended .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .rbox-blended .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 3px;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-style: none;
+ }
+
+ .rbox-blended div.videoCube:hover,
+ .rbox-blended div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .rbox-blended .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .rbox-blended div.sponsored-default:hover,
+ .rbox-blended div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .rbox-blended .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .rbox-blended .videoCube:hover .thumbnail-overlay,
+ .rbox-blended .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .rbox-blended .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .rbox-blended .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .rbox-blended div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .rbox-blended .pager_enabled {
+ color: #0056b3;
+ }
+
+ .rbox-blended .trc_pager_counter {
+ color: #000000;
+ }
+
+ .rbox-blended .pager_disabled {
+ color: #7d898f;
+ }
+
+ .rbox-blended .trc_pager_prev:hover,
+ .rbox-blended .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .rbox-blended .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .rbox-blended .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .rbox-blended div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .rbox-blended .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .rbox-blended .video-label-box {
+ text-align: left;
+ }
+
+ .rbox-blended .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .rbox-blended .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .rbox-blended .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .rbox-blended {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px;
+ border-style: solid solid solid solid;
+ border-color: #000000;
+ padding: 0;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .rbox-blended .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .rbox-blended .videoCube.horizontal {
+ border-style: none none none solid;
+ }
+
+ .rbox-blended .trc_pager_prev,
+ .rbox-blended .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .trc_pager div {
+ font-family: serif;
+ }
+
+ .rbox-blended .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .rbox-blended .playerCube:hover .thumbnail-overlay,
+ .rbox-blended .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .rbox-blended .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .rbox-blended .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .rbox-blended .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .rbox-blended .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .rbox-blended .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .rbox-blended .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .rbox-blended .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .rbox-blended .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .rbox-blended .playerCube div.videoCube:hover,
+ .rbox-blended div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .rbox-blended .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .rbox-blended div.syndicatedItem:hover,
+ .rbox-blended div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .rbox-blended div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .rbox-blended .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ border-style: none;
+ }
+
+ .rbox-blended .videoCube.syndicatedItem.horizontal {
+ border-style: none none none solid;
+ }
+
+ .rbox-blended .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .rbox-blended .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .rbox-blended .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .rbox-blended .videoCube.syndicatedItem .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .rbox-blended .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .rbox-blended .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .rbox-blended .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .rbox-blended .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .branding {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ text-align: left;
+ }
+
+ .rbox-blended .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: block;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .rbox-blended .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: block;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .rbox-blended .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .thumbnails-a .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: normal;
+ max-height: 68.0px;
+ *height: 68.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .thumbnails-a .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .thumbnails-a .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .thumbnails-a .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .thumbnails-a .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .thumbnails-a .video-label,
+ .thumbnails-a .sponsored,
+ .thumbnails-a .sponsored-url {
+ font-family: Panton;
+ }
+
+ .thumbnails-a .trc_rbox_header {
+ font-family: Panton;
+ font-size: 25px;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .thumbnails-a .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .thumbnails-a .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .thumbnails-a .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .thumbnails-a .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .thumbnails-a .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-style: none;
+ }
+
+ .thumbnails-a div.videoCube:hover,
+ .thumbnails-a div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-a .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .thumbnails-a div.sponsored-default:hover,
+ .thumbnails-a div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .thumbnails-a .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-a .videoCube:hover .thumbnail-overlay,
+ .thumbnails-a .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-a .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .thumbnails-a .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-a div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-a .pager_enabled {
+ color: #0056b3;
+ }
+
+ .thumbnails-a .trc_pager_counter {
+ color: #000000;
+ }
+
+ .thumbnails-a .pager_disabled {
+ color: #7d898f;
+ }
+
+ .thumbnails-a .trc_pager_prev:hover,
+ .thumbnails-a .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-a .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .thumbnails-a .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .thumbnails-a div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-a .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .thumbnails-a .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-a .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .thumbnails-a .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-a .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .thumbnails-a {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .thumbnails-a .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-a .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-a .trc_pager_prev,
+ .thumbnails-a .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-a .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-a .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a .trc_pager div {
+ font-family: serif;
+ }
+
+ .thumbnails-a .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-a .playerCube:hover .thumbnail-overlay,
+ .thumbnails-a .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-a .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .thumbnails-a .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .thumbnails-a .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .thumbnails-a .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-a .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .thumbnails-a .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .thumbnails-a .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-a .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .thumbnails-a .playerCube div.videoCube:hover,
+ .thumbnails-a div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-a .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .thumbnails-a div.syndicatedItem:hover,
+ .thumbnails-a div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-a div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-a .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ border-style: none;
+ }
+
+ .thumbnails-a .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-a .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .thumbnails-a .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-a .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-a .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .thumbnails-a .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .thumbnails-a .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .thumbnails-a .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .thumbnails-a .syndicatedItem .video-title {
+ max-height: 68.0px;
+ *height: 68.0px;
+ color: #000000;
+ font-family: Panton;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-a .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-a .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .thumbnails-a .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-a .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-a .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-a .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-a .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-a .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-a .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-a .syndicatedItem .branding {
+ color: #4caf50;
+ font-size: 14.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Proxima Nova', Proxima-Nova, proxima-nova;
+ background-image: null;
+ text-align: left;
+ }
+
+ .thumbnails-a .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .thumbnails-a .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .thumbnails-a .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .thumbnails-d .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: normal;
+ max-height: 68.0px;
+ *height: 68.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .thumbnails-d .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .thumbnails-d .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .thumbnails-d .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .thumbnails-d .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .thumbnails-d .video-label,
+ .thumbnails-d .sponsored,
+ .thumbnails-d .sponsored-url {
+ font-family: Panton;
+ }
+
+ .thumbnails-d .trc_rbox_header {
+ font-family: Panton;
+ font-size: 25px;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .thumbnails-d .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .thumbnails-d .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .thumbnails-d .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .thumbnails-d .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .thumbnails-d .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-style: none;
+ }
+
+ .thumbnails-d div.videoCube:hover,
+ .thumbnails-d div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-d .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .thumbnails-d div.sponsored-default:hover,
+ .thumbnails-d div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .thumbnails-d .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-d .videoCube:hover .thumbnail-overlay,
+ .thumbnails-d .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-d .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .thumbnails-d .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-d div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-d .pager_enabled {
+ color: #0056b3;
+ }
+
+ .thumbnails-d .trc_pager_counter {
+ color: #000000;
+ }
+
+ .thumbnails-d .pager_disabled {
+ color: #7d898f;
+ }
+
+ .thumbnails-d .trc_pager_prev:hover,
+ .thumbnails-d .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-d .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .thumbnails-d .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .thumbnails-d div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-d .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .thumbnails-d .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-d .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .thumbnails-d .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-d .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .thumbnails-d {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .thumbnails-d .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-d .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-d .trc_pager_prev,
+ .thumbnails-d .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-d .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-d .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d .trc_pager div {
+ font-family: serif;
+ }
+
+ .thumbnails-d .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-d .playerCube:hover .thumbnail-overlay,
+ .thumbnails-d .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-d .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .thumbnails-d .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .thumbnails-d .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .thumbnails-d .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-d .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .thumbnails-d .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .thumbnails-d .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-d .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-d .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .thumbnails-d .playerCube div.videoCube:hover,
+ .thumbnails-d div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-d .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .thumbnails-d div.syndicatedItem:hover,
+ .thumbnails-d div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-d div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-d .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ border-style: none;
+ }
+
+ .thumbnails-d .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-d .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .thumbnails-d .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-d .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-d .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .thumbnails-d .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .thumbnails-d .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .thumbnails-d .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .thumbnails-d .syndicatedItem .video-title {
+ max-height: 68.0px;
+ *height: 68.0px;
+ color: #000000;
+ font-family: Panton;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-d .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-d .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .thumbnails-d .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-d .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-d .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-d .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-d .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-d .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-d .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-d .syndicatedItem .branding {
+ color: #4caf50;
+ font-size: 14.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Proxima Nova', Proxima-Nova, proxima-nova;
+ background-image: null;
+ text-align: left;
+ }
+
+ .thumbnails-d .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .thumbnails-d .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .thumbnails-d .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .thumbnails-f .video-title {
+ font-family: ProximaNova-Regular, 'Proxima Nova', Proxima-Nova, proxima-nova;
+ font-size: 14.0px;
+ line-height: 18.0px;
+ font-weight: normal;
+ max-height: 90.0px;
+ *height: 90.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .thumbnails-f .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .thumbnails-f .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .thumbnails-f .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .thumbnails-f .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .thumbnails-f .video-label,
+ .thumbnails-f .sponsored,
+ .thumbnails-f .sponsored-url {
+ font-family: Panton;
+ }
+
+ .thumbnails-f .trc_rbox_header {
+ font-family: Panton, sans-serif;
+ font-size: 25px;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .thumbnails-f .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .thumbnails-f .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .thumbnails-f .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-f .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-f .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-f .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-f .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-f .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-f .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .thumbnails-f .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .thumbnails-f .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-style: none;
+ }
+
+ .thumbnails-f div.videoCube:hover,
+ .thumbnails-f div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-f .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .thumbnails-f div.sponsored-default:hover,
+ .thumbnails-f div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .thumbnails-f .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-f .videoCube:hover .thumbnail-overlay,
+ .thumbnails-f .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-f .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .thumbnails-f .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-f div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-f .pager_enabled {
+ color: #0056b3;
+ }
+
+ .thumbnails-f .trc_pager_counter {
+ color: #000000;
+ }
+
+ .thumbnails-f .pager_disabled {
+ color: #7d898f;
+ }
+
+ .thumbnails-f .trc_pager_prev:hover,
+ .thumbnails-f .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-f .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .thumbnails-f .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .thumbnails-f div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-f .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .thumbnails-f .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-f .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .thumbnails-f .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-f .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .thumbnails-f {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .thumbnails-f .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-f .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-f .trc_pager_prev,
+ .thumbnails-f .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-f .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-f .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-f .trc_pager div {
+ font-family: serif;
+ }
+
+ .thumbnails-f .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-f .playerCube:hover .thumbnail-overlay,
+ .thumbnails-f .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-f .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .thumbnails-f .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .thumbnails-f .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .thumbnails-f .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-f .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-f .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-f .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-f .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-f .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .thumbnails-f .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .thumbnails-f .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-f .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-f .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-f .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-f .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .thumbnails-f .playerCube div.videoCube:hover,
+ .thumbnails-f div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-f .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .thumbnails-f div.syndicatedItem:hover,
+ .thumbnails-f div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-f div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-f .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ border-style: none;
+ }
+
+ .thumbnails-f .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-f .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .thumbnails-f .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-f .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-f .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .thumbnails-f .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .thumbnails-f .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .thumbnails-f .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .thumbnails-f .syndicatedItem .video-title {
+ max-height: 72.0px;
+ *height: 72.0px;
+ color: #000000;
+ font-family: ProximaNova-Regular, 'Proxima Nova', Proxima-Nova, proxima-nova;
+ font-size: 14.0px;
+ line-height: 18.0px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-f .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-f .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .thumbnails-f .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-f .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-f .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-f .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-f .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-f .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-f .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-f .syndicatedItem .branding {
+ color: #4caf50;
+ font-size: 12.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: ProximaNova-Regular, 'Proxima Nova', Proxima-Nova, proxima-nova;
+ background-image: null;
+ text-align: left;
+ }
+
+ .thumbnails-f .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .thumbnails-f .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .thumbnails-f .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .thumbnails-m .video-title {
+ font-family: 'Proxima Nova', Proxima-Nova, proxima-nova, Helvetica, Arial, sans-serif;
+ font-size: 17.0px;
+ line-height: 20.0px;
+ font-weight: normal;
+ max-height: 60.0px;
+ *height: 60.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .thumbnails-m .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .thumbnails-m .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .thumbnails-m .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .thumbnails-m .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .thumbnails-m .video-label,
+ .thumbnails-m .sponsored,
+ .thumbnails-m .sponsored-url {
+ font-family: 'Proxima Nova', Proxima-Nova, proxima-nova, Helvetica, Arial, sans-serif;
+ }
+
+ .thumbnails-m .trc_rbox_header {
+ font-family: Panton, sans-serif;
+ font-size: 25.0px;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0 0 40px 0;
+ }
+
+ .thumbnails-m .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .thumbnails-m .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .thumbnails-m .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-m .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-m .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-m .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-m .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-m .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-m .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .thumbnails-m .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .thumbnails-m .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-style: none;
+ }
+
+ .thumbnails-m div.videoCube:hover,
+ .thumbnails-m div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-m .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .thumbnails-m div.sponsored-default:hover,
+ .thumbnails-m div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .thumbnails-m .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-m .videoCube:hover .thumbnail-overlay,
+ .thumbnails-m .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-m .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .thumbnails-m .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-m div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-m .pager_enabled {
+ color: #0056b3;
+ }
+
+ .thumbnails-m .trc_pager_counter {
+ color: #000000;
+ }
+
+ .thumbnails-m .pager_disabled {
+ color: #7d898f;
+ }
+
+ .thumbnails-m .trc_pager_prev:hover,
+ .thumbnails-m .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-m .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .thumbnails-m .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .thumbnails-m div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-m .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .thumbnails-m .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-m .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .thumbnails-m .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-m .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .thumbnails-m {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .thumbnails-m .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-m .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-m .trc_pager_prev,
+ .thumbnails-m .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-m .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-m .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-m .trc_pager div {
+ font-family: serif;
+ }
+
+ .thumbnails-m .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-m .playerCube:hover .thumbnail-overlay,
+ .thumbnails-m .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-m .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .thumbnails-m .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .thumbnails-m .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .thumbnails-m .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-m .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-m .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-m .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-m .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-m .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .thumbnails-m .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .thumbnails-m .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-m .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-m .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-m .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-m .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .thumbnails-m .playerCube div.videoCube:hover,
+ .thumbnails-m div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-m .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .thumbnails-m div.syndicatedItem:hover,
+ .thumbnails-m div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-m div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-m .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ border-style: none;
+ }
+
+ .thumbnails-m .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-m .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .thumbnails-m .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-m .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-m .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .thumbnails-m .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .thumbnails-m .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .thumbnails-m .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .thumbnails-m .syndicatedItem .video-title {
+ max-height: 48px;
+ *height: 48px;
+ color: #000000;
+ font-family: 'Proxima Nova', Proxima-Nova, proxima-nova, Helvetica, Arial, sans-serif;
+ font-size: 17.0px;
+ line-height: 24px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-m .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-m .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .thumbnails-m .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-m .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-m .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-m .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-m .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-m .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-m .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-m .syndicatedItem .branding {
+ color: #000;
+ font-size: 14.0px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Panton, sans-serif;
+ background-image: null;
+ text-align: left;
+ }
+
+ .thumbnails-m .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .thumbnails-m .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .thumbnails-m .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .thumbnails-m2 .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ max-height: 88.0px;
+ *height: 88.0px;
+ color: #860000;
+ text-decoration: none;
+ }
+
+ .thumbnails-m2 .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .thumbnails-m2 .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .thumbnails-m2 .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .thumbnails-m2 .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .thumbnails-m2 .video-label,
+ .thumbnails-m2 .sponsored,
+ .thumbnails-m2 .sponsored-url {
+ font-family: proxima-nova, helvetica;
+ }
+
+ .thumbnails-m2 .trc_rbox_header {
+ font-family: proxima-nova, helvetica;
+ font-size: 15.0px;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0 0 6px 0;
+ }
+
+ .thumbnails-m2 .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .thumbnails-m2 .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .thumbnails-m2 .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-m2 .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-m2 .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-m2 .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-m2 .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-m2 .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-m2 .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .thumbnails-m2 .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .thumbnails-m2 .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-style: none;
+ }
+
+ .thumbnails-m2 div.videoCube:hover,
+ .thumbnails-m2 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-m2 .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .thumbnails-m2 div.sponsored-default:hover,
+ .thumbnails-m2 div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .thumbnails-m2 .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-m2 .videoCube:hover .thumbnail-overlay,
+ .thumbnails-m2 .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-m2 .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .thumbnails-m2 .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-m2 div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-m2 .pager_enabled {
+ color: #0056b3;
+ }
+
+ .thumbnails-m2 .trc_pager_counter {
+ color: #000000;
+ }
+
+ .thumbnails-m2 .pager_disabled {
+ color: #7d898f;
+ }
+
+ .thumbnails-m2 .trc_pager_prev:hover,
+ .thumbnails-m2 .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-m2 .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .thumbnails-m2 .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .thumbnails-m2 div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-m2 .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .thumbnails-m2 .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-m2 .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .thumbnails-m2 .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-m2 .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .thumbnails-m2 {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .thumbnails-m2 .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-m2 .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-m2 .trc_pager_prev,
+ .thumbnails-m2 .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-m2 .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-m2 .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-m2 .trc_pager div {
+ font-family: serif;
+ }
+
+ .thumbnails-m2 .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-m2 .playerCube:hover .thumbnail-overlay,
+ .thumbnails-m2 .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-m2 .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .thumbnails-m2 .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .thumbnails-m2 .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .thumbnails-m2 .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-m2 .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-m2 .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-m2 .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-m2 .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-m2 .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .thumbnails-m2 .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .thumbnails-m2 .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-m2 .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-m2 .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-m2 .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-m2 .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .thumbnails-m2 .playerCube div.videoCube:hover,
+ .thumbnails-m2 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-m2 .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .thumbnails-m2 div.syndicatedItem:hover,
+ .thumbnails-m2 div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-m2 div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-m2 .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ border-style: none;
+ }
+
+ .thumbnails-m2 .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-m2 .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .thumbnails-m2 .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-m2 .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-m2 .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .thumbnails-m2 .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .thumbnails-m2 .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .thumbnails-m2 .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .thumbnails-m2 .syndicatedItem .video-title {
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #860000;
+ font-family: proxima-nova, helvetica;
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .thumbnails-m2 .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-m2 .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .thumbnails-m2 .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-m2 .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-m2 .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-m2 .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-m2 .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-m2 .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-m2 .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-m2 .syndicatedItem .branding {
+ color: #999999;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: proxima-nova, helvetica;
+ background-image: null;
+ text-align: left;
+ }
+
+ .thumbnails-m2 .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .thumbnails-m2 .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .thumbnails-m2 .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .thumbnails-n .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 18.0px;
+ line-height: 24.0px;
+ font-weight: bold;
+ max-height: 96.0px;
+ *height: 96.0px;
+ color: #000000;
+ text-decoration: none;
+ }
+
+ .thumbnails-n .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .thumbnails-n .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .thumbnails-n .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .thumbnails-n .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .thumbnails-n .video-label,
+ .thumbnails-n .sponsored,
+ .thumbnails-n .sponsored-url {
+ font-family: Panton;
+ }
+
+ .thumbnails-n .trc_rbox_header {
+ font-family: Panton;
+ font-size: 21.0px;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0 0 6px 0;
+ }
+
+ .thumbnails-n .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .thumbnails-n .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .thumbnails-n .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-n .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-n .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-n .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-n .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-n .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-n .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .thumbnails-n .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .thumbnails-n .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-style: none;
+ }
+
+ .thumbnails-n div.videoCube:hover,
+ .thumbnails-n div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-n .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .thumbnails-n div.sponsored-default:hover,
+ .thumbnails-n div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .thumbnails-n .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-n .videoCube:hover .thumbnail-overlay,
+ .thumbnails-n .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-n .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .thumbnails-n .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-n div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-n .pager_enabled {
+ color: #0056b3;
+ }
+
+ .thumbnails-n .trc_pager_counter {
+ color: #000000;
+ }
+
+ .thumbnails-n .pager_disabled {
+ color: #7d898f;
+ }
+
+ .thumbnails-n .trc_pager_prev:hover,
+ .thumbnails-n .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-n .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .thumbnails-n .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .thumbnails-n div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-n .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .thumbnails-n .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-n .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .thumbnails-n .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-n .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .thumbnails-n {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .thumbnails-n .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-n .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-n .trc_pager_prev,
+ .thumbnails-n .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-n .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-n .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-n .trc_pager div {
+ font-family: serif;
+ }
+
+ .thumbnails-n .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-n .playerCube:hover .thumbnail-overlay,
+ .thumbnails-n .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-n .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .thumbnails-n .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .thumbnails-n .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .thumbnails-n .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-n .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-n .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-n .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-n .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-n .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .thumbnails-n .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .thumbnails-n .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-n .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-n .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-n .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-n .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .thumbnails-n .playerCube div.videoCube:hover,
+ .thumbnails-n div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-n .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .thumbnails-n div.syndicatedItem:hover,
+ .thumbnails-n div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-n div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-n .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ border-style: none;
+ }
+
+ .thumbnails-n .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-n .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .thumbnails-n .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-n .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-n .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .thumbnails-n .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .thumbnails-n .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .thumbnails-n .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .thumbnails-n .syndicatedItem .video-title {
+ max-height: 72.0px;
+ *height: 72.0px;
+ color: #000000;
+ font-family: Panton;
+ font-size: 16.0px;
+ line-height: 20.0px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .thumbnails-n .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-n .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .thumbnails-n .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-n .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-n .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-n .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-n .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-n .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-n .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-n .syndicatedItem .branding {
+ color: #000000;
+ font-size: 11.0px;
+ font-weight: bold;
+ text-decoration: none;
+ font-family: 'Proxima Nova';
+ background-image: null;
+ text-align: left;
+ }
+
+ .thumbnails-n .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .thumbnails-n .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .thumbnails-n .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .videoCube:hover .video-label-box .video-title {
+ text-decoration: none !important;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_alternating-thumbnails-a_abp-mode [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: auto;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: auto;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: normal;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .videoCube a {
+ padding: 0;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_alternating-thumbnails-a_abp-mode .video-label-box {
+ height: 88.0px;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .syndicatedItem .branding {
+ line-height: 22.0px;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .trc_header_left_column {
+ width: 48%;
+ display: inline-block;
+ background: transparent;
+ height: auto;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_alternating-thumbnails-a_abp-mode .trc_rbox_header .trc_header_ext {
+ position: relative;
+ top: auto;
+ right: auto;
+ }
+
+ .ab_alternating-thumbnails-a_zoom img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_alternating-thumbnails-a_zoom [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(https://cdn.taboola.com/libtrc/static/thumbnails/a9e525401b3db5d91c17641f5a9a2f76.png) no-repeat;
+ height: 19px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 19px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 19px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .videoCube a {
+ padding: 0;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_alternating-thumbnails-a_zoom .video-label-box {
+ height: 76.0px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .syndicatedItem .branding {
+ line-height: 19.0px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .trc_header_left_column {
+ width: 100%;
+ display: inline-block;
+ background: transparent;
+ height: 19px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_alternating-thumbnails-a_zoom .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ right: 0;
+ bottom: -1px;
+ background: white;
+ padding-left: 8px;
+ }
+ /*** Zoom-only on Thumbnails ***/
+
+ @media screen and (min-width: 769px) {
+ .ab_alternating-thumbnails-a_zoom .trc_rbox_outer .trc_rbox_div .videoCube .thumbBlock_holder {
+ overflow: hidden;
+ }
+ .ab_alternating-thumbnails-a_zoom .trc_rbox_outer .trc_rbox_div .videoCube .thumbBlock_holder .thumbBlock {
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ -o-transform: scale(1);
+ transform: scale(1);
+ -webkit-transition: all 0.15s ease-in-out;
+ -moz-transition: all 0.15s ease-in-out;
+ transition: all 0.15s ease-in-out;
+ }
+ .ab_alternating-thumbnails-a_zoom .trc_rbox_outer .trc_rbox_div .videoCube:hover .thumbBlock_holder .thumbBlock {
+ -webkit-transform: scale(1.05);
+ -moz-transform: scale(1.05);
+ -ms-transform: scale(1.05);
+ -o-transform: scale(1.05);
+ transform: scale(1.05);
+ }
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_alternating-thumbnails-a_zoom-out [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(https://cdn.taboola.com/libtrc/static/thumbnails/a9e525401b3db5d91c17641f5a9a2f76.png) no-repeat;
+ height: 19px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 19px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 19px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .videoCube a {
+ padding: 0;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_alternating-thumbnails-a_zoom-out .video-label-box {
+ height: 76.0px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .syndicatedItem .branding {
+ line-height: 19.0px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .trc_header_left_column {
+ width: 100%;
+ display: inline-block;
+ background: transparent;
+ height: 19px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-out .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ right: 0;
+ bottom: -1px;
+ background: white;
+ padding-left: 8px;
+ }
+ /*** Zoom-OUT on Thumbnails ***/
+
+ @media screen and (min-width: 769px) {
+ .ab_alternating-thumbnails-a_zoom-out .trc_rbox_outer .trc_rbox_div .videoCube .thumbBlock_holder {
+ overflow: hidden;
+ }
+ .ab_alternating-thumbnails-a_zoom-out .trc_rbox_outer .trc_rbox_div .videoCube .thumbBlock_holder .thumbBlock {
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ -o-transform: scale(1);
+ transform: scale(1);
+ -webkit-transition: all 0.15s ease-in-out;
+ -moz-transition: all 0.15s ease-in-out;
+ transition: all 0.15s ease-in-out;
+ }
+ .ab_alternating-thumbnails-a_zoom-out .trc_rbox_outer .trc_rbox_div .videoCube .thumbBlock_holder .thumbBlock {
+ -webkit-transform: scale(1.05);
+ -moz-transform: scale(1.05);
+ -ms-transform: scale(1.05);
+ -o-transform: scale(1.05);
+ transform: scale(1.05);
+ }
+ .ab_alternating-thumbnails-a_zoom-out .trc_rbox_outer .trc_rbox_div .videoCube:hover .thumbBlock_holder .thumbBlock {
+ -webkit-transform: scale(1.00);
+ -moz-transform: scale(1.00);
+ -ms-transform: scale(1.00);
+ -o-transform: scale(1.00);
+ transform: scale(1.00);
+ }
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_alternating-thumbnails-a_zoom-rotate [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(https://cdn.taboola.com/libtrc/static/thumbnails/a9e525401b3db5d91c17641f5a9a2f76.png) no-repeat;
+ height: 19px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 19px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 19px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .videoCube a {
+ padding: 0;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_alternating-thumbnails-a_zoom-rotate .video-label-box {
+ height: 76.0px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .syndicatedItem .branding {
+ line-height: 19.0px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .trc_header_left_column {
+ width: 100%;
+ display: inline-block;
+ background: transparent;
+ height: 19px;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_alternating-thumbnails-a_zoom-rotate .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ right: 0;
+ bottom: -1px;
+ background: white;
+ padding-left: 8px;
+ }
+ /*** Zoom-rotate on Thumbnails ***/
+
+ @media screen and (min-width: 769px) {
+ .ab_alternating-thumbnails-a_zoom-rotate .trc_rbox_outer .trc_rbox_div .videoCube .thumbBlock_holder {
+ overflow: hidden;
+ }
+ .ab_alternating-thumbnails-a_zoom-rotate .trc_rbox_outer .trc_rbox_div .videoCube .thumbBlock_holder .thumbBlock {
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ -o-transform: scale(1);
+ transform: scale(1);
+ -webkit-transition: all 0.15s ease-in-out;
+ -moz-transition: all 0.15s ease-in-out;
+ transition: all 0.15s ease-in-out;
+ }
+ .ab_alternating-thumbnails-a_zoom-rotate .trc_rbox_outer .trc_rbox_div .videoCube:hover .thumbBlock_holder .thumbBlock {
+ -webkit-transform: scale(1.05) rotate(1deg);
+ -moz-transform: scale(1.05) rotate(1deg);
+ -ms-transform: scale(1.05) rotate(1deg);
+ -o-transform: scale(1.05) rotate(1deg);
+ transform: scale(1.05) rotate(1deg);
+ }
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_alternating-thumbnails-c_abp-mode [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: auto;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: auto;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: normal;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .videoCube a {
+ padding: 0;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_alternating-thumbnails-c_abp-mode .video-label-box {
+ height: 88.0px;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .syndicatedItem .branding {
+ line-height: 22.0px;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .trc_header_left_column {
+ width: 48%;
+ display: inline-block;
+ background: transparent;
+ height: auto;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_alternating-thumbnails-c_abp-mode .trc_rbox_header .trc_header_ext {
+ position: relative;
+ top: auto;
+ right: auto;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_alternating-thumbnails-e_abp-mode [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .trc_rbox_div {
+ margin-bottom: 0;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: auto;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: auto;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: normal;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .videoCube a {
+ padding: 0;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .trc_rbox_outer .videoCube {
+ margin-bottom: 10px;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_alternating-thumbnails-e_abp-mode .video-label-box {
+ height: 76.0px;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin-bottom: 0;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .syndicatedItem .branding {
+ line-height: 22.0px;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .trc_header_left_column {
+ width: 48%;
+ display: inline-block;
+ background: transparent;
+ height: auto;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .videoCube .video-label-box {
+ margin-top: 0px;
+ }
+
+ .ab_alternating-thumbnails-e_abp-mode .trc_rbox_header .trc_header_ext {
+ position: relative;
+ top: auto;
+ right: auto;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_alternating-thumbnails-rr_abp-mode [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .trc_rbox_div {
+ margin-bottom: 0;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: auto;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: auto;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: normal;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .videoCube a {
+ padding: 0;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .trc_rbox_outer .videoCube {
+ margin-bottom: 10px;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_alternating-thumbnails-rr_abp-mode .video-label-box {
+ height: 76.0px;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin-bottom: 0;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .syndicatedItem .branding {
+ line-height: 22.0px;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .trc_header_left_column {
+ width: 48%;
+ display: inline-block;
+ background: transparent;
+ height: auto;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .videoCube .video-label-box {
+ margin-top: 0px;
+ }
+
+ .ab_alternating-thumbnails-rr_abp-mode .trc_rbox_header .trc_header_ext {
+ position: relative;
+ top: auto;
+ right: auto;
+ }
+
+ .ab_thumbnails-c_abp-mode img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_thumbnails-c_abp-mode [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .ab_thumbnails-c_abp-mode .trc_rbox_div {
+ margin-bottom: 0;
+ }
+
+ .ab_thumbnails-c_abp-mode .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: auto;
+ }
+
+ .ab_thumbnails-c_abp-mode .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: auto;
+ }
+
+ .ab_thumbnails-c_abp-mode .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: normal;
+ }
+
+ .ab_thumbnails-c_abp-mode .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-c_abp-mode .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .ab_thumbnails-c_abp-mode .videoCube a {
+ padding: 0;
+ }
+
+ .ab_thumbnails-c_abp-mode .trc_rbox_outer .videoCube {
+ margin-bottom: 10px;
+ }
+
+ .ab_thumbnails-c_abp-mode .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_thumbnails-c_abp-mode .video-label-box {
+ height: 76.0px;
+ }
+
+ .ab_thumbnails-c_abp-mode .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin-bottom: 0;
+ }
+
+ .ab_thumbnails-c_abp-mode .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-c_abp-mode .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_thumbnails-c_abp-mode .syndicatedItem .branding {
+ line-height: 22.0px;
+ }
+
+ .ab_thumbnails-c_abp-mode .trc_header_left_column {
+ width: 48%;
+ display: inline-block;
+ background: transparent;
+ height: auto;
+ }
+
+ .ab_thumbnails-c_abp-mode .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-c_abp-mode .videoCube .video-label-box {
+ margin-top: 0px;
+ }
+
+ .ab_thumbnails-c_abp-mode .trc_rbox_header .trc_header_ext {
+ position: relative;
+ top: auto;
+ right: auto;
+ }
+
+ .alternating-thumbnails-a img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .alternating-thumbnails-a [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .alternating-thumbnails-a .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(https://cdn.taboola.com/libtrc/static/thumbnails/a9e525401b3db5d91c17641f5a9a2f76.png) no-repeat;
+ height: 19px;
+ }
+
+ .alternating-thumbnails-a .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 19px;
+ }
+
+ .alternating-thumbnails-a .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 19px;
+ }
+
+ .alternating-thumbnails-a .logoDiv a {
+ font-size: 100%;
+ }
+
+ .alternating-thumbnails-a .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .alternating-thumbnails-a .videoCube a {
+ padding: 0;
+ }
+
+ .alternating-thumbnails-a .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .alternating-thumbnails-a .video-label-box {
+ height: 76.0px;
+ }
+
+ .alternating-thumbnails-a .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .alternating-thumbnails-a .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .alternating-thumbnails-a .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .alternating-thumbnails-a .video-label-box .branding {
+ display: block;
+ }
+
+ .alternating-thumbnails-a .syndicatedItem .branding {
+ line-height: 19.0px;
+ }
+
+ .alternating-thumbnails-a .trc_header_left_column {
+ width: 100%;
+ display: inline-block;
+ background: transparent;
+ height: 19px;
+ }
+
+ .alternating-thumbnails-a .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .alternating-thumbnails-a .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ right: 0;
+ bottom: -1px;
+ background: white;
+ padding-left: 8px;
+ }
+
+ .alternating-thumbnails-b img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .alternating-thumbnails-b [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .alternating-thumbnails-b .trc_rbox_div {
+ padding-bottom: 10px;
+ }
+
+ .alternating-thumbnails-b .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: auto;
+ }
+
+ .alternating-thumbnails-b .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: auto;
+ }
+
+ .alternating-thumbnails-b .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: normal;
+ }
+
+ .alternating-thumbnails-b .trc_rbox_header .logoDiv a span {
+ font-size: 13px;
+ font-family: 'proxima nova';
+ font-weight: regular;
+ }
+
+ .alternating-thumbnails-b .logoDiv a {
+ font-size: 100%;
+ }
+
+ .alternating-thumbnails-b .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .alternating-thumbnails-b .videoCube a {
+ padding: 0;
+ }
+
+ .alternating-thumbnails-b .trc_rbox_outer .videoCube {
+ margin: 0px 0PX 10px 0px;
+ }
+
+ .alternating-thumbnails-b .videoCube .item-thumbnail-href .thumbBlock_holder {
+ margin: 0 0 20px 0;
+ margin-right: 0px;
+ }
+
+ .alternating-thumbnails-b .thumbBlock {
+ margin: 0;
+ }
+
+ .alternating-thumbnails-b .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ border-width: 1px 0px 0px 0px;
+ border-style: solid;
+ border-color: #E4E7EA;
+ padding: 11px 0 0 10px;
+ margin-bottom: 9px;
+ font-weight: 400;
+ line-height: 20px;
+ height: 60px;
+ }
+
+ .alternating-thumbnails-b .videoCube:hover .video-label-box .video-title {
+ text-decoration: none;
+ }
+
+ .alternating-thumbnails-b .video-label-box .branding {
+ display: block;
+ font-family: 'Proxima Nova';
+ font-weight: bold;
+ font-size: 13px;
+ padding: 0 0 0px 10px;
+ }
+
+ .alternating-thumbnails-b .syndicatedItem .branding {
+ line-height: 20.0px;
+ max-height: 20px;
+ font-family: 'Proxima Nova';
+ font-weight: bold;
+ font-size: 13px;
+ -webkit-line-clamp: 1 !important;
+ overflow: hidden;
+ }
+
+ .alternating-thumbnails-b .trc_header_left_column {
+ width: 48%;
+ display: inline-block;
+ background: transparent;
+ height: auto;
+ }
+
+ .alternating-thumbnails-b .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .alternating-thumbnails-b .videoCube .video-label-box {
+ margin-top: 0px;
+ margin-right: 20px;
+ }
+
+ .alternating-thumbnails-b .videoCube.syndicatedItem .video-label-box {
+ margin-right: 20px;
+ }
+
+ .alternating-thumbnails-b .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ bottom: 20px;
+ left: 1px;
+ }
+
+ .alternating-thumbnails-b .trc_rbox_header .trc_rbox_header_span::before {
+ content: 'YOU ';
+ font-weight: 400;
+ padding-top: 9px;
+ line-height: 20px;
+ }
+
+ .alternating-thumbnails-b .syndicatedItem .branding::before {
+ content: 'Sponsored by ';
+ font-size: 13px;
+ color: #4CAF50;
+ line-height: 20px;
+ font-weight: 400;
+ font-family: 'Proxima Nova';
+ }
+
+ .trc_rbox.alternating-thumbnails-b {
+ background: linear-gradient(to bottom, rgba(0, 0, 0, 0.05) 0%, rgba(0, 0, 0, 0) 10%);
+ }
+
+ .alternating-thumbnails-b .trc_rbox_div .videoCube {
+ border-width: 0px 0px 0px 0px;
+ border-style: solid;
+ border-color: #E4E7EA;
+ margin: 0px 0px 0px 0px !important;
+ }
+
+ .alternating-thumbnails-b .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 96px;
+ }
+
+ .alternating-thumbnails-b .trc_rbox_header {
+ margin: 0px 20px 0px 20px;
+ padding: 25px 0px 48px 0px;
+ }
+
+ .alternating-thumbnails-c img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .alternating-thumbnails-c [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .alternating-thumbnails-c .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: auto;
+ }
+
+ .alternating-thumbnails-c .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: auto;
+ }
+
+ .alternating-thumbnails-c .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: normal;
+ }
+
+ .alternating-thumbnails-c .logoDiv a {
+ font-size: 100%;
+ }
+
+ .alternating-thumbnails-c .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .alternating-thumbnails-c .videoCube a {
+ padding: 0;
+ }
+
+ .alternating-thumbnails-c .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .alternating-thumbnails-c .video-label-box {
+ height: 88.0px;
+ }
+
+ .alternating-thumbnails-c .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .alternating-thumbnails-c .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .alternating-thumbnails-c .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .alternating-thumbnails-c .video-label-box .branding {
+ display: block;
+ }
+
+ .alternating-thumbnails-c .syndicatedItem .branding {
+ line-height: 22.0px;
+ }
+
+ .alternating-thumbnails-c .trc_header_left_column {
+ width: 48%;
+ display: inline-block;
+ background: transparent;
+ height: auto;
+ }
+
+ .alternating-thumbnails-c .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .alternating-thumbnails-c .trc_rbox_header .trc_header_ext {
+ position: relative;
+ top: auto;
+ right: auto;
+ }
+
+ .alternating-thumbnails-e img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .alternating-thumbnails-e [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .alternating-thumbnails-e .trc_rbox_div {
+ margin-bottom: 0;
+ }
+
+ .alternating-thumbnails-e .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(https://cdn.taboola.com/libtrc/static/thumbnails/d9e803677642513a04038d94bd9e359b.png) no-repeat;
+ height: 47px;
+ }
+
+ .alternating-thumbnails-e .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 47px;
+ }
+
+ .alternating-thumbnails-e .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 47px;
+ }
+
+ .alternating-thumbnails-e .logoDiv a {
+ font-size: 100%;
+ }
+
+ .alternating-thumbnails-e .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .alternating-thumbnails-e .videoCube a {
+ padding: 0;
+ }
+
+ .alternating-thumbnails-e .trc_rbox_outer .videoCube {
+ margin-bottom: 10px;
+ }
+
+ .alternating-thumbnails-e .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .alternating-thumbnails-e .video-label-box {
+ height: 76.0px;
+ }
+
+ .alternating-thumbnails-e .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin-bottom: 0;
+ }
+
+ .alternating-thumbnails-e .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .alternating-thumbnails-e .video-label-box .branding {
+ display: block;
+ }
+
+ .alternating-thumbnails-e .syndicatedItem .branding {
+ line-height: 22.0px;
+ }
+
+ .alternating-thumbnails-e .trc_header_left_column {
+ width: 100%;
+ display: inline-block;
+ background: transparent;
+ height: 47px;
+ }
+
+ .alternating-thumbnails-e .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .alternating-thumbnails-e .videoCube .video-label-box {
+ margin-top: 0px;
+ }
+
+ .alternating-thumbnails-e .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .alternating-thumbnails-g img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .alternating-thumbnails-g [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .alternating-thumbnails-g .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(https://cdn.taboola.com/libtrc/static/thumbnails/caf75321143d3f323ac0584894c4831c.jpg) no-repeat;
+ height: 19px;
+ }
+
+ .alternating-thumbnails-g .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 19px;
+ }
+
+ .alternating-thumbnails-g .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 19px;
+ }
+
+ .alternating-thumbnails-g .logoDiv a {
+ font-size: 100%;
+ }
+
+ .alternating-thumbnails-g .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .alternating-thumbnails-g .videoCube a {
+ padding: 0;
+ }
+
+ .alternating-thumbnails-g .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .alternating-thumbnails-g .video-label-box {
+ height: 88.0px;
+ }
+
+ .alternating-thumbnails-g .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .alternating-thumbnails-g .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+
+ .alternating-thumbnails-g .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .alternating-thumbnails-g .video-label-box .branding {
+ display: block;
+ }
+
+ .alternating-thumbnails-g .syndicatedItem .branding {
+ line-height: 22.0px;
+ }
+
+ .alternating-thumbnails-g .trc_header_left_column {
+ width: 100%;
+ display: inline-block;
+ background: transparent;
+ height: 19px;
+ }
+
+ .alternating-thumbnails-g .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .alternating-thumbnails-g .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ right: 0;
+ bottom: -1px;
+ background: white;
+ padding-left: 8px;
+ }
+
+ .alternating-thumbnails-rr img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .alternating-thumbnails-rr [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .alternating-thumbnails-rr .trc_rbox_div {
+ margin-bottom: 0;
+ }
+
+ .alternating-thumbnails-rr .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: url(https://cdn.taboola.com/libtrc/static/thumbnails/2f70e29f935fdd259b8fff94a3320bba.jpg) no-repeat;
+ height: 50px;
+ }
+
+ .alternating-thumbnails-rr .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 50px;
+ }
+
+ .alternating-thumbnails-rr .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: 50px;
+ }
+
+ .alternating-thumbnails-rr .logoDiv a {
+ font-size: 100%;
+ }
+
+ .alternating-thumbnails-rr .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+
+ .alternating-thumbnails-rr .videoCube a {
+ padding: 0;
+ }
+
+ .alternating-thumbnails-rr .trc_rbox_outer .videoCube {
+ margin-bottom: 10px;
+ }
+
+ .alternating-thumbnails-rr .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .alternating-thumbnails-rr .video-label-box {
+ height: 76.0px;
+ }
+
+ .alternating-thumbnails-rr .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin-bottom: 0;
+ }
+
+ .alternating-thumbnails-rr .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+
+ .alternating-thumbnails-rr .video-label-box .branding {
+ display: block;
+ }
+
+ .alternating-thumbnails-rr .syndicatedItem .branding {
+ line-height: 22.0px;
+ }
+
+ .alternating-thumbnails-rr .trc_header_left_column {
+ width: 100%;
+ display: inline-block;
+ background: transparent;
+ height: 50px;
+ }
+
+ .alternating-thumbnails-rr .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .alternating-thumbnails-rr .videoCube .video-label-box {
+ margin-top: 0px;
+ }
+
+ .alternating-thumbnails-rr .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .thumbnails-a img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .thumbnails-a [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .thumbnails-a .trc_rbox_header {
+ line-height: 35px;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: auto;
+ margin-bottom: 10px;
+ }
+
+ .thumbnails-a .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ }
+
+ .thumbnails-a .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ }
+
+ .thumbnails-a .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-a .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: 200;
+ font-size: 16.0px;
+ font-family: Panton, sans-serif;
+ }
+
+ .thumbnails-a .trc_rbox_header_span {
+ padding-right: 20px;
+ }
+
+ .thumbnails-a .videoCube a {
+ padding: 0;
+ }
+
+ .thumbnails-a .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .thumbnails-a .video-label-box {
+ height: 108.0px;
+ }
+
+ .thumbnails-a .videoCube .video-label-box {
+ margin-top: 20px;
+ }
+
+ .thumbnails-a .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0 0 10px 0;
+ }
+
+ .thumbnails-a .videoCube .video-label-box .video-title {
+ -webkit-transition-property: all;
+ transition-property: all;
+ -webkit-transition-duration: 0.2s;
+ transition-duration: 0.2s;
+ -webkit-transition-timing-function: ease;
+ transition-timing-function: ease;
+ }
+
+ .thumbnails-a .videoCube:hover .video-label-box .video-title {
+ text-decoration: none;
+ color: #FF8B00;
+ -webkit-transition-property: all;
+ transition-property: all;
+ -webkit-transition-duration: 0.2s;
+ transition-duration: 0.2s;
+ -webkit-transition-timing-function: ease;
+ transition-timing-function: ease;
+ }
+
+ .thumbnails-a .video-label-box .branding {
+ display: block;
+ }
+
+ .thumbnails-a .syndicatedItem .branding {
+ line-height: 17.0px;
+ }
+
+ .thumbnails-a .trc_header_left_column {
+ width: 100%;
+ display: inline-block;
+ background: transparent;
+ height: 34px;
+ }
+
+ .thumbnails-a .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-a .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .thumbnails-a .syndicatedItem .video-title {
+ height: 68px;
+ }
+
+ .thumbnails-a .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ background: white;
+ padding-left: 20px;
+ z-index: 2;
+ line-height: 25px;
+ }
+
+ .thumbnails-a .logoDiv .trc_desktop_attribution_link span {
+ font-weight: bold;
+ }
+
+ .thumbnails-a .videoCube:hover .thumbnail-overlay {
+ background: rgba(0, 0, 0, 0.2);
+ -webkit-transition-property: all;
+ transition-property: all;
+ -webkit-transition-duration: 0.2s;
+ transition-duration: 0.2s;
+ -webkit-transition-timing-function: ease;
+ transition-timing-function: ease;
+ width: 100%;
+ height: 100%;
+ }
+
+ .thumbnails-a .firstWord {
+ font-weight: 200;
+ }
+
+ .thumbnails-a .trc_rbox_header:after {
+ position: absolute;
+ height: 5px;
+ background-color: #E4E7EA;
+ flex: 2;
+ content: '';
+ top: 15px;
+ width: 100%;
+ }
+
+ .thumbnails-a .syndicatedItem .branding .firstTabBranding {
+ font-weight: 400;
+ }
+
+ .thumbnails-d img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .thumbnails-d [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .thumbnails-d .trc_rbox_header {
+ line-height: 35px;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: auto;
+ margin-bottom: 10px;
+ }
+
+ .thumbnails-d .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ }
+
+ .thumbnails-d .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ }
+
+ .thumbnails-d .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-d .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: 200;
+ font-size: 16.0px;
+ font-family: Panton, sans-serif;
+ }
+
+ .thumbnails-d .trc_rbox_header_span {
+ padding-right: 20px;
+ }
+
+ .thumbnails-d .videoCube a {
+ padding: 0;
+ }
+
+ .thumbnails-d .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .thumbnails-d .video-label-box {
+ height: 108.0px;
+ }
+
+ .thumbnails-d .videoCube .video-label-box {
+ margin-top: 20px;
+ }
+
+ .thumbnails-d .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0 0 10px 0;
+ }
+
+ .thumbnails-d .videoCube .video-label-box .video-title {
+ -webkit-transition-property: all;
+ transition-property: all;
+ -webkit-transition-duration: 0.2s;
+ transition-duration: 0.2s;
+ -webkit-transition-timing-function: ease;
+ transition-timing-function: ease;
+ }
+
+ .thumbnails-d .videoCube:hover .video-label-box .video-title {
+ text-decoration: none;
+ color: #FF8B00;
+ -webkit-transition-property: all;
+ transition-property: all;
+ -webkit-transition-duration: 0.2s;
+ transition-duration: 0.2s;
+ -webkit-transition-timing-function: ease;
+ transition-timing-function: ease;
+ }
+
+ .thumbnails-d .video-label-box .branding {
+ display: block;
+ }
+
+ .thumbnails-d .syndicatedItem .branding {
+ line-height: 17.0px;
+ }
+
+ .thumbnails-d .trc_header_left_column {
+ width: 100%;
+ display: inline-block;
+ background: transparent;
+ height: 34px;
+ }
+
+ .thumbnails-d .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-d .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+
+ .thumbnails-d .syndicatedItem .video-title {
+ height: 68px;
+ }
+
+ .thumbnails-d .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ background: white;
+ padding-left: 20px;
+ z-index: 2;
+ line-height: 25px;
+ }
+
+ .thumbnails-d .logoDiv .trc_desktop_attribution_link span {
+ font-weight: bold;
+ }
+
+ .thumbnails-d .videoCube:hover .thumbnail-overlay {
+ background: rgba(0, 0, 0, 0.2);
+ -webkit-transition-property: all;
+ transition-property: all;
+ -webkit-transition-duration: 0.2s;
+ transition-duration: 0.2s;
+ -webkit-transition-timing-function: ease;
+ transition-timing-function: ease;
+ width: 100%;
+ height: 100%;
+ }
+
+ .thumbnails-d .firstWord {
+ font-weight: 200;
+ }
+
+ .thumbnails-d .trc_rbox_header:after {
+ position: absolute;
+ height: 5px;
+ background-color: #E4E7EA;
+ flex: 2;
+ content: '';
+ top: 15px;
+ width: 100%;
+ }
+
+ .thumbnails-d .syndicatedItem .branding .firstTabBranding {
+ font-weight: 400;
+ }
+
+ .thumbnails-f img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .thumbnails-f [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .thumbnails-f .trc_rbox_header {
+ line-height: 35px;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: auto;
+ margin-bottom: 20px;
+ }
+
+ .thumbnails-f .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ }
+
+ .thumbnails-f .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ }
+
+ .thumbnails-f .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-f .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: 200;
+ font-size: 16.0px;
+ font-family: Panton, sans-serif;
+ }
+
+ .thumbnails-f .trc_rbox_header_span {
+ padding-right: 20px;
+ }
+
+ .thumbnails-f .videoCube a {
+ padding: 0;
+ }
+
+ .thumbnails-f .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .thumbnails-f .video-label-box {
+ height: 99.0px;
+ }
+
+ .thumbnails-f .videoCube .video-label-box {
+ margin-top: 12px;
+ }
+
+ .thumbnails-f .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0 0 10px 0;
+ }
+
+ .thumbnails-f .videoCube .video-label-box .video-title {
+ -webkit-transition-property: all;
+ transition-property: all;
+ -webkit-transition-duration: 0.2s;
+ transition-duration: 0.2s;
+ -webkit-transition-timing-function: ease;
+ transition-timing-function: ease;
+ }
+
+ .thumbnails-f .videoCube:hover .video-label-box .video-title {
+ text-decoration: none;
+ color: #FF8B00;
+ -webkit-transition-property: all;
+ transition-property: all;
+ -webkit-transition-duration: 0.2s;
+ transition-duration: 0.2s;
+ -webkit-transition-timing-function: ease;
+ transition-timing-function: ease;
+ }
+
+ .thumbnails-f .video-label-box .branding {
+ display: block;
+ }
+
+ .thumbnails-f .syndicatedItem .branding {
+ line-height: 15.0px;
+ max-height: 15.0px;
+ position: relative;
+ overflow: hidden;
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ }
+ }
+ .thumbnails-f .trc_header_left_column {
+ width: 100%;
+ display: inline-block;
+ background: transparent;
+ height: 34px;
+ }
+ .thumbnails-f .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+ .thumbnails-f .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
+ .thumbnails-f .syndicatedItem .video-title {
+ height: 72px;
+ }
+ .thumbnails-f .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ top: 0;
+ right: 0;
+ background: white;
+ padding-left: 20px;
+ z-index: 2;
+ line-height: 25px;
+ }
+ .thumbnails-f .logoDiv .trc_desktop_attribution_link span {
+ font-weight: bold;
+ }
+ .thumbnails-f .videoCube:hover .thumbnail-overlay {
+ background: rgba(0, 0, 0, 0.2);
+ -webkit-transition-property: all;
+ transition-property: all;
+ -webkit-transition-duration: 0.2s;
+ transition-duration: 0.2s;
+ -webkit-transition-timing-function: ease;
+ transition-timing-function: ease;
+ width: 100%;
+ height: 100%;
+ }
+ .thumbnails-f .firstWord {
+ font-weight: 200;
+ }
+ .thumbnails-f .trc_rbox_header:after {
+ position: absolute;
+ height: 5px;
+ background-color: #E4E7EA;
+ flex: 2;
+ content: '';
+ top: 15px;
+ width: 100%;
+ }
+ .thumbnails-f .syndicatedItem .branding .firstTabBranding {
+ font-weight: 400;
+ }
+ .thumbnails-f .trc_rbox_outer .trc_rbox_div .videoCube {
+ width: 163px;
+ margin-left: 24px;
+ }
+ .thumbnails-f .trc_rbox_outer .trc_rbox_div .videoCube_1_child {
+ margin-left: 0px;
+ }
+ .thumbnails-f .trc_rbox_outer .trc_rbox_div .videoCube .thumbBlock_holder {
+ height: 122px;
+ }
+ .trc_elastic .trc_rbox_container .thumbnails-f {
+ width: 724px;
+ height: 282px;
+ }
+ .thumbnails-m img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+ .thumbnails-m [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+ .thumbnails-m .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: auto;
+ }
+ .thumbnails-m .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: auto;
+ }
+ .thumbnails-m .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: normal;
+ }
+ .thumbnails-m .logoDiv a {
+ font-size: 100%;
+ }
+ .thumbnails-m .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+ .thumbnails-m .videoCube a {
+ padding: 0;
+ }
+ .thumbnails-m .thumbBlock {
+ margin: 0;
+ }
+ .trc_elastic .thumbnails-m .video-label-box {
+ height: 60.0px;
+ }
+ .thumbnails-m .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+ .thumbnails-m .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+ .thumbnails-m .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+ .thumbnails-m .video-label-box .branding {
+ display: block;
+ font-weight: bold;
+ }
+ .thumbnails-m .syndicatedItem .branding {
+ line-height: 20.0px;
+ -webkit-line-clamp: 1 !important;
+ overflow: hidden;
+ }
+ .thumbnails-m .trc_header_left_column {
+ width: 48%;
+ display: inline-block;
+ background: transparent;
+ height: auto;
+ }
+ .thumbnails-m .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+ .thumbnails-m .trc_rbox_header .trc_header_ext {
+ position: relative;
+ top: auto;
+ right: auto;
+ }
+ .thumbnails-m .syndicatedItem .branding::before {
+ content: 'Sponsored by ';
+ font-size: 14px;
+ color: #4CAF50;
+ line-height: 20px;
+ font-weight: 400;
+ font-family: Panton, sans-serif;
+ }
+ .thumbnails-m .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ bottom: 20px;
+ left: 1px;
+ }
+ .thumbnails-m .trc_rbox_header .trc_rbox_header_span::before {
+ content: 'YOU ';
+ font-weight: 300;
+ padding-top: 9px;
+ line-height: 20px;
+ }
+ .trc_elastic .thumbnails-m .logoDiv a span {
+ font-size: 14px;
+ }
+ .thumbnails-m2 img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+ .thumbnails-m2 [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+ .thumbnails-m2 .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: auto;
+ }
+ .thumbnails-m2 .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: auto;
+ }
+ .thumbnails-m2 .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: normal;
+ }
+ .thumbnails-m2 .logoDiv a {
+ font-size: 100%;
+ }
+ .thumbnails-m2 .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+ .thumbnails-m2 .videoCube a {
+ padding: 0;
+ }
+ .thumbnails-m2 .thumbBlock {
+ margin: 0;
+ }
+ .trc_elastic .thumbnails-m2 .video-label-box {
+ height: 88.0px;
+ }
+ .thumbnails-m2 .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+ .thumbnails-m2 .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ }
+ .thumbnails-m2 .videoCube:hover .video-label-box .video-title {
+ text-decoration: underline;
+ }
+ .thumbnails-m2 .video-label-box .branding {
+ display: block;
+ }
+ .thumbnails-m2 .syndicatedItem .branding {
+ line-height: 22.0px;
+ }
+ .thumbnails-m2 .trc_header_left_column {
+ width: 48%;
+ display: inline-block;
+ background: transparent;
+ height: auto;
+ }
+ .thumbnails-m2 .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+ .thumbnails-m2 .trc_rbox_header .trc_header_ext {
+ position: relative;
+ top: auto;
+ right: auto;
+ }
+ .thumbnails-n img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+ .thumbnails-n [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+ .thumbnails-n .trc_rbox_div {
+ padding-bottom: 10px;
+ }
+ .thumbnails-n .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: auto;
+ }
+ .thumbnails-n .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: auto;
+ }
+ .thumbnails-n .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: normal;
+ }
+ .thumbnails-n .trc_rbox_header .logoDiv a span {
+ font-size: 13px;
+ font-family: 'proxima nova';
+ font-weight: regular;
+ }
+ .thumbnails-n .logoDiv a {
+ font-size: 100%;
+ }
+ .thumbnails-n .logoDiv a span {
+ display: inline;
+ color: #000000;
+ font-weight: normal;
+ font-size: 11.0px;
+ }
+ .thumbnails-n .videoCube a {
+ padding: 0;
+ }
+ .thumbnails-n .trc_rbox_outer .videoCube {
+ margin: 0px 0PX 10px 0px;
+ }
+ .thumbnails-n .videoCube .item-thumbnail-href .thumbBlock_holder {
+ margin: 0 0 20px 0;
+ margin-right: 0px;
+ }
+ .thumbnails-n .thumbBlock {
+ margin: 0;
+ }
+ .thumbnails-n .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ border-width: 1px 0px 0px 0px;
+ border-style: solid;
+ border-color: #E4E7EA;
+ padding: 11px 0 0 10px;
+ margin-bottom: 9px;
+ font-weight: 400;
+ line-height: 20px;
+ height: 60px;
+ }
+ .thumbnails-n .videoCube:hover .video-label-box .video-title {
+ text-decoration: none;
+ }
+ .thumbnails-n .video-label-box .branding {
+ display: block;
+ font-family: 'Proxima Nova';
+ font-weight: bold;
+ font-size: 13px;
+ padding: 0 0 0px 10px;
+ }
+ .thumbnails-n .syndicatedItem .branding {
+ line-height: 20.0px;
+ max-height: 20px;
+ font-family: 'Proxima Nova';
+ font-weight: bold;
+ font-size: 13px;
+ -webkit-line-clamp: 1 !important;
+ overflow: hidden;
+ }
+ .thumbnails-n .trc_header_left_column {
+ width: 48%;
+ display: inline-block;
+ background: transparent;
+ height: auto;
+ }
+ .thumbnails-n .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+ .thumbnails-n .videoCube .video-label-box {
+ margin-top: 0px;
+ margin-right: 20px;
+ }
+ .thumbnails-n .videoCube.syndicatedItem .video-label-box {
+ margin-right: 20px;
+ }
+ .thumbnails-n .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ bottom: 20px;
+ left: 1px;
+ }
+ .thumbnails-n .trc_rbox_header .trc_rbox_header_span::before {
+ content: 'YOU ';
+ font-weight: 400;
+ padding-top: 9px;
+ line-height: 20px;
+ }
+ .thumbnails-n .syndicatedItem .branding::before {
+ content: 'Sponsored by ';
+ font-size: 13px;
+ color: #4CAF50;
+ line-height: 20px;
+ font-weight: 400;
+ font-family: 'Proxima Nova';
+ }
+ .trc_rbox.thumbnails-n {
+ background: linear-gradient(to bottom, rgba(0, 0, 0, 0.05) 0%, rgba(0, 0, 0, 0) 10%);
+ }
+ .thumbnails-n .trc_rbox_div .videoCube {
+ border-width: 0px 0px 0px 0px;
+ border-style: solid;
+ border-color: #E4E7EA;
+ margin: 0px 0px 0px 0px !important;
+ }
+ .thumbnails-n .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 96px;
+ }
+ .thumbnails-n .trc_rbox_header {
+ margin: 0px 20px 0px 20px;
+ padding: 25px 0px 48px 0px;
+ }
+ </style>
+ <script type="text/javascript" src="https://d3qdfnco3bamip.cloudfront.net/wjs/v3.0.1484263742/javascripts/livefyre_mod_editor_main.js" async="" defer="defer"></script>
+ <style type="text/css"></style>
+ <script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="components/flyout-promo.desktop" src="https://cnet2.cbsistatic.com/fly/js/components/flyout-promo.desktop-b30bb4d65e-rev.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="managers/third-party/facebook" src="https://cnet4.cbsistatic.com/fly/js/managers/third-party/facebook-856ce2b6eb-rev.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="components/modal-async.desktop" src="https://cnet1.cbsistatic.com/fly/js/components/modal-async.desktop-b2e042271d-rev.js"></script>
+ <style type="text/css">
+ @media screen and (min-width: 0px) {
+ .trc_elastic_trc_55099 .trc_rbox_outer {
+ margin-left: -0%;
+ }
+ .trc_elastic_trc_55099 .videoCube_aspect {
+ padding-bottom: 56.25%;
+ width: 100%;
+ }
+ .trc_elastic_trc_55099 .videoCube {
+ width: 24.9975%;
+ position: relative;
+ float: left;
+ margin: 0 0 0% 0;
+ margin-left: 0%;
+ }
+ .trc_elastic_trc_55099 div.videoCube:nth-of-type(-n+4) {
+ display: block;
+ visibility: visible;
+ }
+ .trc_elastic_trc_55099 div.videoCube:nth-of-type(n+5) {
+ display: none;
+ visibility: hidden;
+ }
+ }
+ </style>
+ <style type="text/css">
+ .trc_popover_aug_container {
+ position: static;
+ }
+
+ #tbl-aug-wgbmm6 #tbl-aug-awrsmt #tbl-aug-5fmjui .trc_popover {
+ position: absolute;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ line-height: 16px;
+ color: #000000;
+ cursor: default;
+ position: absolute;
+ top: 0;
+ right: 0;
+ z-index: 12000;
+ width: 180px;
+ padding: 1px;
+ text-align: left;
+ white-space: normal;
+ background-color: #ffffff;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ -webkit-border-radius: 6px;
+ -moz-border-radius: 6px;
+ border-radius: 6px;
+ -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+ -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+ box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+ -webkit-background-clip: padding-box;
+ -moz-background-clip: padding;
+ background-clip: padding-box;
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+ box-sizing: content-box;
+ }
+
+ #tbl-aug-wgbmm6 #tbl-aug-awrsmt #tbl-aug-5fmjui .trc_popover iframe {
+ width: 100%;
+ }
+
+ #tbl-aug-wgbmm6 #tbl-aug-awrsmt #tbl-aug-5fmjui .trc_popover .trc_popover_arrow,
+ .trc_popover .trc_popover_arrow:after {
+ position: absolute;
+ display: block;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+ }
+
+ #tbl-aug-wgbmm6 #tbl-aug-awrsmt #tbl-aug-5fmjui .trc_popover .trc_popover_arrow {
+ border-width: 11px;
+ }
+
+ #tbl-aug-wgbmm6 #tbl-aug-awrsmt #tbl-aug-5fmjui .trc_popover .trc_popover_arrow:after {
+ border-width: 10px;
+ content: "";
+ }
+
+ #tbl-aug-wgbmm6 #tbl-aug-awrsmt #tbl-aug-5fmjui .trc_popover.trc_bottom {
+ margin-top: 10px;
+ }
+
+ #tbl-aug-wgbmm6 #tbl-aug-awrsmt #tbl-aug-5fmjui .trc_popover.trc_bottom .trc_popover_arrow {
+ top: -11px;
+ right: 11px;
+ margin-left: -11px;
+ border-bottom-color: #999;
+ border-bottom-color: rgba(0, 0, 0, 0.25);
+ border-top-width: 0;
+ }
+
+ #tbl-aug-wgbmm6 #tbl-aug-awrsmt #tbl-aug-5fmjui .trc_popover.trc_bottom .trc_popover_arrow:after {
+ top: 1px;
+ margin-left: -10px;
+ border-bottom-color: #ffffff;
+ border-top-width: 0;
+ }
+
+ #tbl-aug-wgbmm6 #tbl-aug-awrsmt #tbl-aug-5fmjui .trc_popover_fade.trc_in {
+ visibility: visible;
+ opacity: 1;
+ filter: alpha(opacity=100);
+ transition-delay: 0s, 0s;
+ -moz-transition-delay: 0s, 0s;
+ -webkit-transition-delay: 0s, 0s;
+ -o-transition-delay: 0s, 0s;
+ -ms-transition-delay: 0s, 0s;
+ }
+
+ #tbl-aug-wgbmm6 #tbl-aug-awrsmt #tbl-aug-5fmjui .trc_popover_fade {
+ visibility: hidden;
+ opacity: 0;
+ filter: alpha(opacity=0);
+ transition: opacity 500ms 0s, visibility 0s 500ms;
+ -webkit-transition: opacity 500ms 0s, visibility 0s 500ms;
+ -moz-transition: opacity 500ms 0s, visibility 0s 500ms;
+ -o-transition: opacity 500ms 0s, visibility 0s 500ms;
+ -ms-transition: opacity 500ms 0s, visibility 0s 500ms;
+ }
+ </style>
+ <style>
+ div.teads-inread div.teads-ui-components-label,
+ div.teads-inboard div.teads-ui-components-label,
+ div.teads-expand div.teads-ui-components-label {
+ font-family: 'Helvetica', Arial, sans-serif !important;
+ font-size: 11.5px !important;
+ color: #aaa;
+ text-align: center !important;
+ /*padding: 3px 0;*/
+ text-transform: uppercase !important;
+ height: 21px !important;
+ line-height: 21px !important;
+ letter-spacing: 0.3px !important;
+ font-weight: 300 !important;
+ }
+
+ div.teads-inread div.teads-ui-components-label::before,
+ div.teads-inboard div.teads-ui-components-label::before,
+ div.teads-impact div.teads-ui-components-label::before,
+ div.teads-inread div.teads-ui-components-label::after,
+ div.teads-inboard div.teads-ui-components-label::after,
+ div.teads-impact div.teads-ui-components-label::after {
+ display: none !important;
+ }
+
+ div.teads-inread.sm-screen div.teads-ui-components-label,
+ div.teads-inread.xs-screen div.teads-ui-components-label,
+ div.teads-inboard.sm-screen div.teads-ui-components-label,
+ div.teads-inboard.xs-screen div.teads-ui-components-label {
+ font-size: 10px !important;
+ }
+ </style>
+ <style>
+ div.teads-inread div.teads-ui-components-credits,
+ div.teads-inboard div.teads-ui-components-credits,
+ div.teads-expand div.teads-ui-components-credits {
+ font-family: 'Helvetica', Arial, sans-serif !important;
+ font-size: 11.5px !important;
+ color: #aaa !important;
+ text-align: right !important;
+ padding: 1px 0 !important;
+ height: 26px !important;
+ line-height: 26px !important;
+ padding-right: 4px !important;
+ letter-spacing: 0.3px !important;
+ }
+
+ div.teads-inread div.teads-ui-components-credits a span,
+ div.teads-inboard div.teads-ui-components-credits a span,
+ div.teads-expand div.teads-ui-components-credits a span {
+ display: inline !important;
+ }
+
+ div.teads-inread div.teads-ui-components-credits a span,
+ div.teads-inboard div.teads-ui-components-credits a span,
+ div.teads-expand div.teads-ui-components-credits a span,
+ div.teads-inread div.teads-ui-components-credits a,
+ div.teads-inboard div.teads-ui-components-credits a,
+ div.teads-expand div.teads-ui-components-credits a {
+ font-family: 'Helvetica', Arial, sans-serif !important;
+ font-size: 11.5px !important;
+ box-shadow: none !important;
+ letter-spacing: 0.3px !important;
+ }
+
+ div.teads-inread.sm-screen div.teads-ui-components-credits a span,
+ div.teads-inboard.sm-screen div.teads-ui-components-credits a span,
+ div.teads-expand.sm-screen div.teads-ui-components-credits a span,
+ div.teads-inread.sm-screen div.teads-ui-components-credits a,
+ div.teads-inboard.sm-screen div.teads-ui-components-credits a,
+ div.teads-expand.sm-screen div.teads-ui-components-credits a,
+ div.teads-inread.xs-screen div.teads-ui-components-credits a span,
+ div.teads-inboard.xs-screen div.teads-ui-components-credits a span,
+ div.teads-expand.xs-screen div.teads-ui-components-credits a span,
+ div.teads-inread.xs-screen div.teads-ui-components-credits a,
+ div.teads-inboard.xs-screen div.teads-ui-components-credits a,
+ div.teads-expand.xs-screen div.teads-ui-components-credits a {
+ font-family: 'Helvetica', Arial, sans-serif !important;
+ font-size: 9px !important;
+ box-shadow: none !important;
+ letter-spacing: 0.3px !important;
+ }
+
+ div.teads-inread.sm-screen div.teads-ui-components-credits,
+ div.teads-inboard.xs-screen div.teads-ui-components-credits {
+ font-size: 9px !important;
+ letter-spacing: 0.3px !important;
+ }
+
+ div.teads-inread .teads-ui-components-credits a,
+ div.teads-inboard .teads-ui-components-credits a,
+ div.teads-expand .teads-ui-components-credits a {
+ color: #aaa !important;
+ text-decoration: none !important;
+ font-weight: 300 !important;
+ border: none !important;
+ letter-spacing: 0.3px !important;
+ /*
+ * From @jean-pierre.colomb comment on https://jira.teads.net/browse/TT-4076
+ * The gqjapan.jp website overrides &lt;a&gt; properties to add 2 orange squares
+ * which affects the credits link
+ */
+ background: none !important;
+ padding: 0 !important;
+ }
+
+ div.teads-inread.sm-screen .teads-ui-components-credits a,
+ div.teads-inboard.sm-screen .teads-ui-components-credits a,
+ div.teads-expand.sm-screen .teads-ui-components-credits a,
+ div.teads-inread.xs-screen .teads-ui-components-credits a,
+ div.teads-inboard.xs-screen .teads-ui-components-credits a,
+ div.teads-expand.xs-screen .teads-ui-components-credits a {
+ font-size: 9px !important;
+ letter-spacing: 0.3px !important;
+ }
+
+ div.teads-inread div.teads-ui-components-credits span.teads-ui-components-credits-colored,
+ div.teads-inboard div.teads-ui-components-credits span.teads-ui-components-credits-colored,
+ div.teads-expand div.teads-ui-components-credits span.teads-ui-components-credits-colored {
+ color: #79BBE9 !important;
+ }
+
+ div.teads-inread div.teads-ui-components-credits span::before,
+ div.teads-inboard div.teads-ui-components-credits span::before,
+ div.teads-impact div.teads-ui-components-credits span::before,
+ div.teads-inread div.teads-ui-components-credits span::after,
+ div.teads-inboard div.teads-ui-components-credits span::after,
+ div.teads-impact div.teads-ui-components-credits span::after {
+ display: none !important;
+ }
+
+ div.teads-inread div.teads-ui-components-credits a::before,
+ div.teads-inboard div.teads-ui-components-credits a::before,
+ div.teads-impact div.teads-ui-components-credits a::before,
+ div.teads-inread div.teads-ui-components-credits a::after,
+ div.teads-inboard div.teads-ui-components-credits a::after,
+ div.teads-impact div.teads-ui-components-credits a::after {
+ display: none !important;
+ }
+ </style>
+ <script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="//connect.facebook.net/en_US/all.js" src="//connect.facebook.net/en_US/all.js"></script><iframe tabindex="-1" style="display: none;" src="//widget.perfectmarket.com/opt/tboptevent.html?v=2&amp;a=u&amp;d=%7B%22stp%22%3A%7B%22a%22%3A1%7D%2C%22Video%22%3A%7B%22a%22%3A1%7D%7D" width="0" height="0"></iframe>
+ <style type="text/css">
+ .fb_hidden {
+ position: absolute;
+ top: -10000px;
+ z-index: 10001
+ }
+
+ .fb_reposition {
+ overflow: hidden;
+ position: relative
+ }
+
+ .fb_invisible {
+ display: none
+ }
+
+ .fb_reset {
+ background: none;
+ border: 0;
+ border-spacing: 0;
+ color: #000;
+ cursor: auto;
+ direction: ltr;
+ font-family: "lucida grande", tahoma, verdana, arial, sans-serif;
+ font-size: 11px;
+ font-style: normal;
+ font-variant: normal;
+ font-weight: normal;
+ letter-spacing: normal;
+ line-height: 1;
+ margin: 0;
+ overflow: visible;
+ padding: 0;
+ text-align: left;
+ text-decoration: none;
+ text-indent: 0;
+ text-shadow: none;
+ text-transform: none;
+ visibility: visible;
+ white-space: normal;
+ word-spacing: normal
+ }
+
+ .fb_reset&gt;
+ div {
+ overflow: hidden
+ }
+
+ .fb_link img {
+ border: none
+ }
+
+ @keyframes fb_transform {
+ from {
+ opacity: 0;
+ transform: scale(.95)
+ }
+ to {
+ opacity: 1;
+ transform: scale(1)
+ }
+ }
+
+ .fb_animate {
+ animation: fb_transform .3s forwards
+ }
+
+ .fb_dialog {
+ background: rgba(82, 82, 82, .7);
+ position: absolute;
+ top: -10000px;
+ z-index: 10001
+ }
+
+ .fb_reset .fb_dialog_legacy {
+ overflow: visible
+ }
+
+ .fb_dialog_advanced {
+ padding: 10px;
+ -moz-border-radius: 8px;
+ -webkit-border-radius: 8px;
+ border-radius: 8px
+ }
+
+ .fb_dialog_content {
+ background: #fff;
+ color: #333
+ }
+
+ .fb_dialog_close_icon {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/yq/r/IE9JII6Z1Ys.png) no-repeat scroll 0 0 transparent;
+ _background-image: url(https://static.xx.fbcdn.net/rsrc.php/v3/yL/r/s816eWC-2sl.gif);
+ cursor: pointer;
+ display: block;
+ height: 15px;
+ position: absolute;
+ right: 18px;
+ top: 17px;
+ width: 15px
+ }
+
+ .fb_dialog_mobile .fb_dialog_close_icon {
+ top: 5px;
+ left: 5px;
+ right: auto
+ }
+
+ .fb_dialog_padding {
+ background-color: transparent;
+ position: absolute;
+ width: 1px;
+ z-index: -1
+ }
+
+ .fb_dialog_close_icon:hover {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/yq/r/IE9JII6Z1Ys.png) no-repeat scroll 0 -15px transparent;
+ _background-image: url(https://static.xx.fbcdn.net/rsrc.php/v3/yL/r/s816eWC-2sl.gif)
+ }
+
+ .fb_dialog_close_icon:active {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/yq/r/IE9JII6Z1Ys.png) no-repeat scroll 0 -30px transparent;
+ _background-image: url(https://static.xx.fbcdn.net/rsrc.php/v3/yL/r/s816eWC-2sl.gif)
+ }
+
+ .fb_dialog_loader {
+ background-color: #f6f7f9;
+ border: 1px solid #606060;
+ font-size: 24px;
+ padding: 20px
+ }
+
+ .fb_dialog_top_left,
+ .fb_dialog_top_right,
+ .fb_dialog_bottom_left,
+ .fb_dialog_bottom_right {
+ height: 10px;
+ width: 10px;
+ overflow: hidden;
+ position: absolute
+ }
+
+ .fb_dialog_top_left {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/ye/r/8YeTNIlTZjm.png) no-repeat 0 0;
+ left: -10px;
+ top: -10px
+ }
+
+ .fb_dialog_top_right {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/ye/r/8YeTNIlTZjm.png) no-repeat 0 -10px;
+ right: -10px;
+ top: -10px
+ }
+
+ .fb_dialog_bottom_left {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/ye/r/8YeTNIlTZjm.png) no-repeat 0 -20px;
+ bottom: -10px;
+ left: -10px
+ }
+
+ .fb_dialog_bottom_right {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/ye/r/8YeTNIlTZjm.png) no-repeat 0 -30px;
+ right: -10px;
+ bottom: -10px
+ }
+
+ .fb_dialog_vert_left,
+ .fb_dialog_vert_right,
+ .fb_dialog_horiz_top,
+ .fb_dialog_horiz_bottom {
+ position: absolute;
+ background: #525252;
+ filter: alpha(opacity=70);
+ opacity: .7
+ }
+
+ .fb_dialog_vert_left,
+ .fb_dialog_vert_right {
+ width: 10px;
+ height: 100%
+ }
+
+ .fb_dialog_vert_left {
+ margin-left: -10px
+ }
+
+ .fb_dialog_vert_right {
+ right: 0;
+ margin-right: -10px
+ }
+
+ .fb_dialog_horiz_top,
+ .fb_dialog_horiz_bottom {
+ width: 100%;
+ height: 10px
+ }
+
+ .fb_dialog_horiz_top {
+ margin-top: -10px
+ }
+
+ .fb_dialog_horiz_bottom {
+ bottom: 0;
+ margin-bottom: -10px
+ }
+
+ .fb_dialog_iframe {
+ line-height: 0
+ }
+
+ .fb_dialog_content .dialog_title {
+ background: #6d84b4;
+ border: 1px solid #365899;
+ color: #fff;
+ font-size: 14px;
+ font-weight: bold;
+ margin: 0
+ }
+
+ .fb_dialog_content .dialog_title&gt;
+ span {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/yd/r/Cou7n-nqK52.gif) no-repeat 5px 50%;
+ float: left;
+ padding: 5px 0 7px 26px
+ }
+
+ body.fb_hidden {
+ -webkit-transform: none;
+ height: 100%;
+ margin: 0;
+ overflow: visible;
+ position: absolute;
+ top: -10000px;
+ left: 0;
+ width: 100%
+ }
+
+ .fb_dialog.fb_dialog_mobile.loading {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/ya/r/3rhSv5V8j3o.gif) white no-repeat 50% 50%;
+ min-height: 100%;
+ min-width: 100%;
+ overflow: hidden;
+ position: absolute;
+ top: 0;
+ z-index: 10001
+ }
+
+ .fb_dialog.fb_dialog_mobile.loading.centered {
+ width: auto;
+ height: auto;
+ min-height: initial;
+ min-width: initial;
+ background: none
+ }
+
+ .fb_dialog.fb_dialog_mobile.loading.centered #fb_dialog_loader_spinner {
+ width: 100%
+ }
+
+ .fb_dialog.fb_dialog_mobile.loading.centered .fb_dialog_content {
+ background: none
+ }
+
+ .loading.centered #fb_dialog_loader_close {
+ color: #fff;
+ display: block;
+ padding-top: 20px;
+ clear: both;
+ font-size: 18px
+ }
+
+ #fb-root #fb_dialog_ipad_overlay {
+ background: rgba(0, 0, 0, .45);
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ top: 0;
+ width: 100%;
+ min-height: 100%;
+ z-index: 10000
+ }
+
+ #fb-root #fb_dialog_ipad_overlay.hidden {
+ display: none
+ }
+
+ .fb_dialog.fb_dialog_mobile.loading iframe {
+ visibility: hidden
+ }
+
+ .fb_dialog_content .dialog_header {
+ -webkit-box-shadow: white 0 1px 1px -1px inset;
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#738ABA), to(#2C4987));
+ border-bottom: 1px solid;
+ border-color: #1d4088;
+ color: #fff;
+ font: 14px Helvetica, sans-serif;
+ font-weight: bold;
+ text-overflow: ellipsis;
+ text-shadow: rgba(0, 30, 84, .296875) 0 -1px 0;
+ vertical-align: middle;
+ white-space: nowrap
+ }
+
+ .fb_dialog_content .dialog_header table {
+ -webkit-font-smoothing: subpixel-antialiased;
+ height: 43px;
+ width: 100%
+ }
+
+ .fb_dialog_content .dialog_header td.header_left {
+ font-size: 12px;
+ padding-left: 5px;
+ vertical-align: middle;
+ width: 60px
+ }
+
+ .fb_dialog_content .dialog_header td.header_right {
+ font-size: 12px;
+ padding-right: 5px;
+ vertical-align: middle;
+ width: 60px
+ }
+
+ .fb_dialog_content .touchable_button {
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#4966A6), color-stop(.5, #355492), to(#2A4887));
+ border: 1px solid #29487d;
+ -webkit-background-clip: padding-box;
+ -webkit-border-radius: 3px;
+ -webkit-box-shadow: rgba(0, 0, 0, .117188) 0 1px 1px inset, rgba(255, 255, 255, .167969) 0 1px 0;
+ display: inline-block;
+ margin-top: 3px;
+ max-width: 85px;
+ line-height: 18px;
+ padding: 4px 12px;
+ position: relative
+ }
+
+ .fb_dialog_content .dialog_header .touchable_button input {
+ border: none;
+ background: none;
+ color: #fff;
+ font: 12px Helvetica, sans-serif;
+ font-weight: bold;
+ margin: 2px -12px;
+ padding: 2px 6px 3px 6px;
+ text-shadow: rgba(0, 30, 84, .296875) 0 -1px 0
+ }
+
+ .fb_dialog_content .dialog_header .header_center {
+ color: #fff;
+ font-size: 16px;
+ font-weight: bold;
+ line-height: 18px;
+ text-align: center;
+ vertical-align: middle
+ }
+
+ .fb_dialog_content .dialog_content {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/y9/r/jKEcVPZFk-2.gif) no-repeat 50% 50%;
+ border: 1px solid #555;
+ border-bottom: 0;
+ border-top: 0;
+ height: 150px
+ }
+
+ .fb_dialog_content .dialog_footer {
+ background: #f6f7f9;
+ border: 1px solid #555;
+ border-top-color: #ccc;
+ height: 40px
+ }
+
+ #fb_dialog_loader_close {
+ float: left
+ }
+
+ .fb_dialog.fb_dialog_mobile .fb_dialog_close_button {
+ text-shadow: rgba(0, 30, 84, .296875) 0 -1px 0
+ }
+
+ .fb_dialog.fb_dialog_mobile .fb_dialog_close_icon {
+ visibility: hidden
+ }
+
+ #fb_dialog_loader_spinner {
+ animation: rotateSpinner 1.2s linear infinite;
+ background-color: transparent;
+ background-image: url(https://static.xx.fbcdn.net/rsrc.php/v3/yD/r/t-wz8gw1xG1.png);
+ background-repeat: no-repeat;
+ background-position: 50% 50%;
+ height: 24px;
+ width: 24px
+ }
+
+ @keyframes rotateSpinner {
+ 0% {
+ transform: rotate(0deg)
+ }
+ 100% {
+ transform: rotate(360deg)
+ }
+ }
+
+ .fb_iframe_widget {
+ display: inline-block;
+ position: relative
+ }
+
+ .fb_iframe_widget span {
+ display: inline-block;
+ position: relative;
+ text-align: justify
+ }
+
+ .fb_iframe_widget iframe {
+ position: absolute
+ }
+
+ .fb_iframe_widget_fluid_desktop,
+ .fb_iframe_widget_fluid_desktop span,
+ .fb_iframe_widget_fluid_desktop iframe {
+ max-width: 100%
+ }
+
+ .fb_iframe_widget_fluid_desktop iframe {
+ min-width: 220px;
+ position: relative
+ }
+
+ .fb_iframe_widget_lift {
+ z-index: 1
+ }
+
+ .fb_hide_iframes iframe {
+ position: relative;
+ left: -10000px
+ }
+
+ .fb_iframe_widget_loader {
+ position: relative;
+ display: inline-block
+ }
+
+ .fb_iframe_widget_fluid {
+ display: inline
+ }
+
+ .fb_iframe_widget_fluid span {
+ width: 100%
+ }
+
+ .fb_iframe_widget_loader iframe {
+ min-height: 32px;
+ z-index: 2;
+ zoom: 1
+ }
+
+ .fb_iframe_widget_loader .FB_Loader {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/y9/r/jKEcVPZFk-2.gif) no-repeat;
+ height: 32px;
+ width: 32px;
+ margin-left: -16px;
+ position: absolute;
+ left: 50%;
+ z-index: 4
+ }
+ </style><iframe tabindex="-1" style="display: none;" src="//widget.perfectmarket.com/opt/tboptevent.html?v=2&amp;a=u&amp;d=%7B%22Video%22%3A%7B%22v%22%3A1%7D%7D" width="0" height="0"></iframe></head>
+<body class="not-logged-in
+ us
+
+
+
+
+
+
+
+ noBleed
+
+ touch-disabled" data-cms-edit="{&quot;url&quot;:&quot;http:\/\/cms-beta.cnet.com\/content\/article\/ca76438a-4f9c-425f-bdb7-a69a7121cef0&quot;}">
+ <svg xmlns="http://www.w3.org/2000/svg" class="svg-symbol"><symbol id="stars-full" viewBox="0 0 14 14"><polygon points="7,0 8.8,5.1 14,5.3 9.9,8.7 11.3,14 7,11 2.7,14 4.1,8.7 0,5.3 5.2,5.1"/></symbol><symbol id="stars-half" viewBox="0 0 14 14"><polygon points="7.1,0 7.1,11 2.7,14 4.1,8.7 0,5.3 5.2,5.1"/></symbol><symbol id="play" viewBox="0 0 26.6 32"><path d="M0,2.6c0-2.4,1.6-3.3,3.7-2L25,13.7c2,1.3,2,3.2,0,4.5L3.7,31.4c-2,1.3-3.7,0.3-3.7-2C0,29.4,0,2.6,0,2.6z"/></symbol><symbol id="playOverlay" viewBox="-99 101 100 100"><g><circle cx="-50" cy="151" r="33"/></g><path class="playOverlayBorder" d="M-50,118c18.2,0,33,14.8,33,33s-14.8,33-33,33s-33-14.8-33-33S-68.2,118-50,118 M-50,116c-19.3,0-35,15.7-35,35 s15.7,35,35,35s35-15.7,35-35S-30.7,116-50,116L-50,116z"/><g><path class="playOverlayArrow" d="M-60.3,138.6c0-2.2,1.5-3.1,3.4-1.9l19.8,12.2c1.9,1.2,1.9,3,0,4.2l-19.8,12.2c-1.9,1.2-3.4,0.3-3.4-1.9C-60.3,163.4-60.3,138.6-60.3,138.6z"/></g></symbol><symbol id="allContent" viewBox="0 0 32 32"><g><ellipse cx="4.1" cy="4.1" rx="4.1" ry="4.1"/><ellipse cx="16" cy="4.1" rx="4.1" ry="4.1"/><ellipse cx="27.9" cy="4.1" rx="4.1" ry="4.1"/></g><g><ellipse cx="4.1" cy="16" rx="4.1" ry="4.1"/><ellipse cx="16" cy="16" rx="4.1" ry="4.1"/><ellipse cx="27.9" cy="16" rx="4.1" ry="4.1"/></g><g><ellipse cx="4.1" cy="27.9" rx="4.1" ry="4.1"/><ellipse cx="16" cy="27.9" rx="4.1" ry="4.1"/><ellipse cx="27.9" cy="27.9" rx="4.1" ry="4.1"/></g></symbol><symbol id="video" viewBox="0 0 32 22"><g><path d="M29,2.2c-0.7,0.2-4.6,3-7.9,5.3V2.1C21.1,1,20.1,0,19,0H2.1C1,0,0,1,0,2.1v17.7C0,21,1,22,2.1,22H19c1.2,0,2.1-1,2.1-2.1
+ v-5.9c3.3,2.4,7.4,5.4,8.2,5.6c1.4,0.4,2.7-0.1,2.7-0.1V2.2C32,2.2,30.1,1.8,29,2.2z"/></g></symbol><symbol id="cnet" viewBox="0 0 180 131.5"><g><rect x="44.2" width="8.1" height="131.5"/><path d="M11.1,47.9c0.1-8.3,14.5-8.6,14.5-0.4l0.1,7.1h11V48c0.7-22-37-22-36.7-0.5v37.9c-0.3,21.5,37.5,22,36.8,0v-7.9H25.6v8.5
+ c0,8.2-14.3,8.4-14.5,0V47.5L11.1,47.9z"/><path d="M73.8,39.3c0,0,1.9-2.8,6.9-5.6c6.4-3.5,12.6,0,11.7-0.4c5,2.2,6.9,7.6,7.3,13.6v44.9h7.1v8.2H88.6l0-53.6
+ c0-7.8-13.2-7.6-13.3,0.4l0-0.4V100H59v-8.2l5.2,0V41.5l-6.1-0.1v-8.2h15.7L73.8,39.3z"/><path d="M156.1,85.2c0.4,6,2.3,11.4,7.3,13.6c-0.9-0.4,2.5,1.3,5.9,1.2c1.8,0,10.7,0,10.7,0v-8.2c0,0-4.5-0.1-6.9,0
+ c-3,0-5.6-1.4-5.8-5.7l0,0l0-44.5l0-0.1H178v-8.1h-10.7l0-0.1V16h-11.2l0,0L156.1,85.2L156.1,85.2z"/><path d="M135.9,77.4v8.5c0,8.2-14.4,8.4-14.5,0V68.2l23.6,0c1.1,0,2-0.9,2-2l0-18.2c0.7-22-37-22-36.7-0.5v37.9
+ c-0.3,21.5,37.5,22,36.8,0v-7.9H135.9z M121.4,47.4c0.2-8.2,14.5-8.2,14.5,0.1l0,12.4h-14.4V47.4z"/></g></symbol><symbol id="photo" viewBox="0 0 32 24"><path d="M30,4h-6c-0.5,0-2.9-4-4-4h-8c-1.1,0-3.6,4-4,4H2C0.9,4,0,4.9,0,6v16c0,1.1,0.9,2,2,2h28c1.1,0,2-0.9,2-2V6
+ C32,4.9,31.1,4,30,4z M16,20.3c-3.9,0-7-3.1-7-7c0-3.9,3.1-7,7-7c3.9,0,7,3.1,7,7C23,17.2,19.9,20.3,16,20.3z M16,19
+ c-3.1,0-5.6-2.5-5.6-5.6c0-3.1,2.5-5.6,5.6-5.6c3.1,0,5.6,2.5,5.6,5.6C21.6,16.5,19.1,19,16,19z"/></symbol><symbol id="galleryOverlay" viewBox="0 0 70 70"><style type="text/css">
+ .circle{opacity:0.3;}
+ .outline{opacity:0.5;fill:#FFFFFF;enable-background:new;}
+ .icon{fill:#FFFFFF;}
+ </style><g class="circle"><circle cx="35" cy="35" r="33"/></g><path class="outline" d="M35,2c18.2,0,33,14.8,33,33S53.2,68,35,68S2,53.2,2,35S16.8,2,35,2 M35,0C15.7,0,0,15.7,0,35s15.7,35,35,35
+ s35-15.7,35-35S54.3,0,35,0L35,0z"/><circle class="icon" cx="30.5" cy="34.2" r="1.8"/><polygon class="icon" points="21.2,41.3 19.1,41.3 19.1,22.9 45.5,22.9 45.5,25 21.2,25 "/><path class="icon" d="M48.9,30v15.1h-23V30H48.9 M50.9,28h-27v19.1h27V28L50.9,28z"/><polygon class="icon" points="29,42.8 33.1,37.5 35.7,40 40.4,33.6 46.6,42.8 "/></symbol><symbol id="arrow-round" viewBox="0 0 16 28"><g><path d="M0.6,27.4c0.8,0.8,2,0.8,2.8,0l12-12c0.8-0.8,0.8-2,0-2.8l-12-12C3,0.2,2.5,0,2,0C1.5,0,1,0.2,0.6,0.6
+ c-0.8,0.8-0.8,2,0,2.8L11.2,14L0.6,24.6C-0.2,25.4-0.2,26.6,0.6,27.4z"/></g></symbol><symbol id="pop-out" viewBox="0 0 32 32"><g><polygon points="25.2,19.9 25.2,27.9 4.1,27.9 4.1,7 12.6,7 12.6,2.7 0,2.7 0,32 29.3,32 29.3,19.9 "/><polygon points="18.6,0 18.6,4.1 25.1,4.1 15.2,14 18.2,16.9 27.9,7.2 27.9,13 32,13 32,0 "/></g></symbol><symbol id="close" viewBox="0 0 28 28"><polygon points="28,1.9 26.1,0 14,12.1 1.9,0 0,1.9 12.1,14 0,26.1 1.9,28 14,15.9 26.1,28 28,26.1 15.9,14 "/></symbol></svg><svg xmlns="http://www.w3.org/2000/svg" class="svg-symbol"><symbol id="comments" viewBox="0 0 15 15"><polygon points="0,11 12,11 15,15 15,0 0,0"/></symbol><symbol id="email" viewBox="0 0 32 21"><g><polygon points="32,19.5 32,1.3 23.1,10.4"/></g><g><path d="M16.9,13.8L30.4,0h-29l13.5,13.9C15.4,14.4,16.3,14.4,16.9,13.8z"/></g><g><polygon points="0,1.5 0,19.4 8.7,10.5"/></g><g><path d="M18.3,15.3c-0.7,0.7-1.6,1-2.4,1c-0.9,0-1.7-0.3-2.4-1L10.2,12l-8.8,9h29.2l-8.9-9.2L18.3,15.3z"/></g><g><polygon points="32,21 32,21 32,21"/></g></symbol><symbol id="facebook" viewBox="0 0 15.2 32"><path d="M15.2,11.1H9.6V7c0-1.2,1.3-1.5,1.9-1.5c0.6,0,3.6,0,3.6,0V0L11,0C5.4,0,4.1,4.1,4.1,6.7v4.4H0v5.6h4.1
+ c0,7.3,0,15.2,0,15.2h5.5c0,0,0-8.1,0-15.2h4.7L15.2,11.1z"/></symbol><symbol id="googleplus" viewBox="0 0 32 32"><path d="M18.8,1c1.1-0.6,1.6-1,1.6-1H9.9C7.8,0,2,2.4,2,7.9c0,5.5,6,6.7,8.2,6.6C9,16,10,17.4,10.7,18.1
+ c0.7,0.7,0.5,0.9-0.3,0.9C9.7,19,0,19.1,0,26s12.8,7.4,17.1,3.7s3.3-8.9,0-11.2c-3.3-2.3-4.5-3.4-2.4-5.3
+ c2.1-1.8,3.7-3.3,3.7-6.8s-2.8-5.2-2.8-5.2S17.7,1.6,18.8,1z M17.1,25.7c0,3-2.5,4.4-6.8,4.4c-4.3,0-6.6-2.1-6.6-5.4
+ c0-3.2,3.1-4.8,9-4.8C14.3,21.2,17.1,22.7,17.1,25.7z M10.9,13.2c-5.2,0-7.5-12.1-1.4-12.1C14.2,0.9,17.8,13.2,10.9,13.2z
+ M28.1,4V0.1h-2V4h-4v2h4V10h2V6.1H32V4H28.1z"/></symbol><symbol id="linkedin" viewBox="0 0 31.9 32"><path d="M24,8c-5.1,0.1-7.7,3.8-8,4V8h-6v24h6V18c0-0.5,1.3-4.6,6-4c2.5,0.2,3.9,3.5,4,4v14l6,0V15.4
+ C31.7,13,30.5,8.1,24,8z M0,32h6V8H0V32z M3,0C1.3,0,0,1.3,0,3s1.3,3,3,3c1.7,0,3-1.3,3-3S4.7,0,3,0z"/></symbol><symbol id="more" viewBox="0 0 32 7.3"><circle cx="3.7" cy="3.7" r="3.7"/><circle cx="16" cy="3.7" r="3.7"/><circle cx="28.3" cy="3.7" r="3.7"/></symbol><symbol id="pinterest" viewBox="0 0 24.9 32"><path d="M13.2,0C4.4,0,0,6.3,0,11.5c0,3.2,1.2,6,3.8,7c0.4,0.2,0.8,0,0.9-0.5c0.1-0.3,0.3-1.1,0.4-1.5
+ c0.1-0.5,0.1-0.6-0.3-1c-0.7-0.9-1.2-2-1.2-3.6c0-4.6,3.5-8.8,9.1-8.8c5,0,7.7,3,7.7,7c0,5.3-2.4,9.8-5.9,9.8
+ c-1.9,0-3.4-1.6-2.9-3.5c0.6-2.3,1.6-4.8,1.6-6.5c0-1.5-0.8-2.8-2.5-2.8c-2,0-3.6,2-3.6,4.8c0,1.7,0.6,2.9,0.6,2.9s-2,8.5-2.4,10
+ c-0.7,3-0.1,6.6-0.1,7c0,0.2,0.3,0.3,0.4,0.1c0.2-0.2,2.5-3.1,3.3-6c0.2-0.8,1.3-5.1,1.3-5.1c0.6,1.2,2.5,2.3,4.5,2.3
+ c5.9,0,10-5.4,10-12.6C24.9,5.1,20.3,0,13.2,0z"/></symbol><symbol id="reddit" viewBox="0 0 32 26.7"><path d="M22.9,14.5C23,14.7,23,15,23,15.2c0,0.4-0.2,0.9-0.4,1.2c-0.3,0.3-0.6,0.6-1,0.7h0c0,0,0,0,0,0c0,0,0,0,0,0
+ c-0.2,0.1-0.4,0.1-0.6,0.1c-0.5,0-0.9-0.2-1.3-0.5c-0.4-0.3-0.6-0.7-0.7-1.2c0,0,0,0,0,0c0,0,0,0,0,0h0c0-0.1,0-0.2,0-0.4
+ c0-0.4,0.1-0.8,0.4-1.2c0.2-0.3,0.6-0.6,1-0.7c0,0,0,0,0,0c0,0,0,0,0,0c0.2-0.1,0.5-0.1,0.7-0.1c0.4,0,0.8,0.1,1.2,0.4
+ C22.5,13.8,22.7,14.1,22.9,14.5C22.9,14.5,22.9,14.5,22.9,14.5C22.9,14.5,22.9,14.5,22.9,14.5L22.9,14.5z M21.6,19.7
+ c-0.2-0.1-0.4-0.2-0.6-0.2c-0.2,0-0.3,0-0.5,0.1c-1.4,0.8-3.1,1.3-4.7,1.3c-1.2,0-2.5-0.3-3.6-0.8l0,0l0,0
+ c-0.2-0.1-0.4-0.2-0.6-0.4c-0.1-0.1-0.2-0.1-0.3-0.2c-0.1-0.1-0.3-0.1-0.4-0.1c-0.1,0-0.2,0-0.4,0.1c0,0,0,0,0,0
+ c-0.2,0.1-0.3,0.2-0.4,0.4c-0.1,0.2-0.2,0.4-0.2,0.6c0,0.2,0,0.3,0.1,0.5c0.1,0.1,0.2,0.3,0.4,0.4c1.6,1.1,3.5,1.6,5.4,1.6
+ c1.7,0,3.4-0.4,4.9-1.1l0,0l0,0c0.2-0.1,0.5-0.2,0.7-0.4c0.1-0.1,0.2-0.2,0.4-0.3c0.1-0.1,0.2-0.3,0.2-0.4c0-0.1,0-0.2,0-0.2
+ c0-0.1,0-0.3-0.1-0.4C21.9,19.9,21.8,19.8,21.6,19.7L21.6,19.7z M10.4,17.1C10.4,17.1,10.4,17.1,10.4,17.1
+ c0.2,0.1,0.4,0.1,0.6,0.1c0.5,0,1-0.2,1.4-0.6c0.4-0.3,0.6-0.8,0.6-1.4c0,0,0,0,0,0c0,0,0-0.1,0-0.1c0-0.6-0.3-1-0.6-1.4
+ c-0.4-0.3-0.9-0.6-1.4-0.6c-0.1,0-0.3,0-0.4,0c0,0,0,0,0,0h0c-0.7,0.1-1.3,0.7-1.5,1.4c0,0,0,0,0,0C9,14.8,9,15,9,15.2
+ c0,0.4,0.1,0.9,0.4,1.2C9.6,16.7,10,17,10.4,17.1C10.4,17.1,10.4,17.1,10.4,17.1L10.4,17.1z M32,12.1L32,12.1c0,0.1,0,0.1,0,0.2
+ c0,0.8-0.2,1.5-0.7,2.2c-0.4,0.6-0.9,1.1-1.5,1.4c0,0.3,0.1,0.6,0.1,0.9c0,1.7-0.6,3.3-1.6,4.6v0h0c-1.9,2.5-4.7,3.9-7.6,4.7l0,0
+ c-1.5,0.4-3.1,0.6-4.7,0.6c-2.4,0-4.7-0.4-6.9-1.3v0h0c-2.3-0.9-4.5-2.4-5.8-4.6c-0.7-1.2-1.1-2.5-1.1-3.9c0-0.3,0-0.6,0.1-0.9
+ c-0.6-0.3-1.1-0.8-1.5-1.4C0.3,13.9,0,13.2,0,12.4v0c0-1.1,0.5-2.1,1.2-2.8c0.7-0.7,1.7-1.2,2.8-1.2h0c0.1,0,0.2,0,0.3,0
+ c0.5,0,1.1,0.1,1.6,0.3l0,0h0C6.3,8.8,6.8,9,7.1,9.3c0.1-0.1,0.3-0.1,0.4-0.2c2.3-1.4,5-1.9,7.6-2c0-1.3,0.2-2.7,0.8-3.8
+ c0.5-1,1.4-1.8,2.5-2l0,0h0c0.4-0.1,0.8-0.1,1.2-0.1c1.1,0,2.2,0.3,3.2,0.7c0.5-0.7,1.1-1.2,1.9-1.5l0,0l0,0
+ C25.3,0.1,25.8,0,26.2,0c0.5,0,1,0.1,1.5,0.3v0c0,0,0,0,0,0c0,0,0,0,0,0C28.4,0.6,29,1,29.4,1.6C29.8,2.2,30,3,30,3.7
+ c0,0.1,0,0.3,0,0.4l0,0c0,0,0,0,0,0c-0.1,1-0.6,1.8-1.2,2.4c-0.7,0.6-1.6,1-2.5,1c-0.1,0-0.3,0-0.4,0c-0.9-0.1-1.8-0.5-2.4-1.2
+ c-0.6-0.7-1-1.5-1-2.5c0,0,0-0.1,0-0.1C21.6,3.3,20.7,3,19.8,3c-0.1,0-0.3,0-0.4,0h0c-0.7,0.1-1.3,0.5-1.6,1.1v0
+ c-0.5,0.9-0.6,1.9-0.6,3c2.6,0.2,5.2,0.8,7.4,2.1h0l0,0c0,0,0.1,0.1,0.2,0.1C25,9.2,25.2,9,25.4,8.9c0.7-0.5,1.5-0.7,2.3-0.7
+ c0.4,0,0.7,0,1.1,0.1h0l0,0c0,0,0,0,0,0c0.8,0.2,1.6,0.7,2.2,1.3C31.5,10.4,31.9,11.2,32,12.1L32,12.1L32,12.1z M24.4,3.6
+ c0,0,0,0.1,0,0.1v0c0,0.4,0.2,0.9,0.6,1.2c0.3,0.3,0.8,0.5,1.2,0.5h0c0,0,0.1,0,0.1,0c0.4,0,0.9-0.2,1.2-0.5
+ C27.8,4.6,28,4.2,28,3.8v0c0,0,0-0.1,0-0.1c0-0.5-0.2-0.9-0.6-1.2c-0.3-0.3-0.8-0.5-1.2-0.5c-0.1,0-0.3,0-0.4,0.1h0l0,0
+ c-0.4,0.1-0.7,0.3-1,0.6C24.6,2.9,24.4,3.2,24.4,3.6L24.4,3.6z M5.4,10.5c-0.3-0.2-0.7-0.3-1.1-0.3c-0.1,0-0.1,0-0.2,0h0l0,0
+ c-0.5,0-1,0.2-1.4,0.6c-0.4,0.4-0.6,0.8-0.7,1.4v0l0,0c0,0,0,0.1,0,0.1c0,0.3,0.1,0.6,0.3,0.9c0.1,0.2,0.3,0.4,0.5,0.6
+ C3.4,12.6,4.3,11.5,5.4,10.5L5.4,10.5z M27.8,16.9c0-1.2-0.4-2.3-1.1-3.2c-1.3-1.9-3.4-3.1-5.6-3.8l0,0c-0.4-0.1-0.8-0.2-1.3-0.3
+ c-1.3-0.3-2.6-0.4-3.9-0.4c-1.7,0-3.5,0.3-5.2,0.8c-2.2,0.7-4.3,1.9-5.6,3.8v0c-0.7,0.9-1.1,2.1-1.1,3.3c0,0.4,0.1,0.9,0.2,1.3
+ l0,0c0.2,0.9,0.7,1.8,1.3,2.5c0.6,0.7,1.4,1.3,2.2,1.8c0.2,0.1,0.4,0.2,0.5,0.3c2.3,1.3,5,1.9,7.6,1.9c0.4,0,0.9,0,1.3,0
+ c2.7-0.2,5.3-1,7.5-2.6v0c0.7-0.5,1.3-1.1,1.8-1.8c0.5-0.7,0.9-1.5,1-2.3v0C27.8,17.5,27.8,17.2,27.8,16.9L27.8,16.9z M29.9,12.3
+ c0-0.3-0.1-0.6-0.2-0.8l0,0l0,0c-0.2-0.4-0.5-0.7-0.8-0.9c-0.4-0.2-0.8-0.3-1.2-0.3c-0.4,0-0.7,0.1-1.1,0.3c1.1,0.9,2,2,2.6,3.3
+ c0.2-0.2,0.4-0.4,0.5-0.6C29.8,13,29.9,12.6,29.9,12.3L29.9,12.3z M29.9,12.3"/></symbol><symbol id="stumble" viewBox="0 0 32 24"><path d="M17.8,8.6l2.1,1.5l3.3-1.5l0-1.6C23,3.3,19.9,0,16,0c-3.8,0-7,3.2-7.1,6.9v9.9c0,0.9-0.8,1.6-1.7,1.6
+ c-0.9,0-1.9-0.4-1.9-1.3V12H0c0,0,0,5.1,0,5.1C0,20.9,3.2,24,7.1,24c3.9,0,7.1-3.1,7.1-6.9V6.9c0-0.9,0.8-1.7,1.8-1.7
+ c0.9,0,1.8,0.8,1.8,1.7V8.6z M26.7,12v5.1c0,0.9-1,1.5-1.9,1.5c-0.9,0-1.7-0.7-1.7-1.6l0-5l-3.3,1.6L17.8,12v5.1
+ c0,3.8,3.2,6.9,7.1,6.9c3.9,0,7.1-3.1,7.1-6.9c0,0,0-5.1,0-5.1H26.7z"/></symbol><symbol id="tumblr" viewBox="0 0 20.9 32"><path d="M7,0C6.8,1.8,6.7,2.4,6.1,3.6C5.5,4.7,4.7,6.2,3.7,7.1C2.8,7.9,1.4,8.7,0,9.2v5.5h4.1v8.9
+ c0,1.6,0.2,2.8,0.5,3.6c0.3,0.8,0.9,1.6,1.8,2.4c0.9,0.7,2.8,1.7,2.8,1.7s1.6,0.6,3.2,0.6c1.4,0,2.7-0.1,4-0.4c1.2-0.3,3-1,4.6-1.7
+ v-5.5c-1.8,1.1-4,1.9-5.8,1.9c-1,0-1.9-0.2-2.7-0.7c-0.6-0.3-1-0.8-1.2-1.4c-0.2-0.6-0.7-1.9-0.7-3.9v-5.7H19V8.6h-8.5V0H7z"/></symbol><symbol id="twitter" viewBox="0 0 32.5 28.4"><path d="M32.5,3.4c-0.5,0.3-2.2,1-3.7,1.1c1-0.6,2.4-2.4,2.8-3.9c-0.9,0.6-3.1,1.6-4.2,1.6c0,0,0,0,0,0
+ C26.1,0.9,24.4,0,22.5,0c-3.7,0-6.7,3.2-6.7,7.2c0,0.6,0.1,1.1,0.2,1.6h0C11,8.7,5.1,6,1.8,1.3c-2,3.8-0.3,8,2,9.5
+ c-0.8,0.1-2.2-0.1-2.9-0.8c0,2.5,1.1,5.8,5.2,7c-0.8,0.5-2.2,0.3-2.8,0.2c0.2,2.1,3,4.9,6,4.9c-1.1,1.3-4.7,3.8-9.3,3
+ c3.1,2,6.7,3.2,10.5,3.2c10.8,0,19.2-9.4,18.7-21.1c0,0,0,0,0,0c0,0,0-0.1,0-0.1c0,0,0-0.1,0-0.1C30.2,6.4,31.5,5.1,32.5,3.4z"/></symbol><symbol id="yahoo" viewBox="-133 141 30.3 20"><path d="M-107.7,146.7c0,0,1.2-0.7,2.1-0.7s2.1,0,2.1,0l0.8-1.9h-12.9l0.1,1.4l0.8,0.4l3.3,0.1c0,0,0.2,0.7-0.3,1.1
+ c-0.6,0.4-5.4,4.7-5.4,4.7l-6.2-7.5c0,0,0.1-0.2,1-0.2c0.9,0,3.5,0,3.5,0V141H-133v3.1c0,0,1.8,0,2.7,0c0.9,0,1.9,1,2.8,1.8
+ c0.9,0.9,7.1,7.4,7.1,7.4v5.4c0,0-0.5,0.8-2.2,0.8c-1.8,0-2.5,0.1-2.5,0.1v1.4h14.1v-1c0,0-0.4-0.6-0.8-0.6h-3.4
+ c-0.4,0-0.5-0.5-0.5-1.1c0-0.6,0-4.7,0-4.7L-107.7,146.7z"/></symbol><symbol id="whatsapp" viewBox="0 0 32 32"><path d="M16.2,0C7.6,0,0.6,7,0.6,15.6c0,4.3,2.3,8.1,2.3,8.1L0.2,32l8.5-2.7c0,0,3.2,1.9,7.5,1.9
+ c8.6,0,15.6-7,15.6-15.6C31.8,7,24.8,0,16.2,0z M16.2,28.7c-4,0-7.2-2.2-7.2-2.2l-4.9,1.6l1.6-4.8c0,0-2.6-3.5-2.6-7.8
+ C3.1,8.4,9,2.5,16.2,2.5c7.2,0,13.1,5.9,13.1,13.1C29.3,22.8,23.5,28.7,16.2,28.7z"/><path d="M10.3,8.8c0,0,0.4-0.3,0.6-0.3c0.2,0,1.2,0,1.2,0s0.3,0.1,0.5,0.4c0.2,0.3,1.2,2.8,1.3,3
+ c0.1,0.2,0.3,0.7,0,1.1c-0.3,0.4-1,1.2-1,1.2s-0.3,0.2,0,0.6c0.2,0.4,1,1.6,2.1,2.6c1.1,1,2.4,1.7,3,1.9c0.7,0.2,0.8-0.1,1-0.4
+ c0.2-0.3,1-1.3,1-1.3s0.3-0.4,0.8-0.2c0.5,0.2,3.1,1.5,3.1,1.5s0.3,0.1,0.3,0.4c0,0.3,0.2,1.4-0.7,2.4c-0.9,1-2.9,1.5-3.8,1.2
+ c-0.9-0.3-4-1.1-6-2.9s-3.6-3.8-4.3-5.3c-0.7-1.5-0.6-2.3-0.6-2.7S9,9.6,10.3,8.8z"/></symbol><symbol id="instagram" viewBox="0 0 24 24"><path d="M21.2,0H2.8C1.2,0,0,1.2,0,2.8v18.5C0,22.8,1.2,24,2.8,24h18.5c1.5,0,2.8-1.2,2.8-2.8V2.8C24,1.2,22.8,0,21.2,0z M12,7.4
+ c2.5,0,4.6,2.1,4.6,4.6c0,2.5-2.1,4.6-4.6,4.6S7.4,14.5,7.4,12C7.4,9.5,9.5,7.4,12,7.4z M21,20.1c0,0.5-0.4,0.9-0.9,0.9H3.9
+ C3.4,21,3,20.6,3,20.1V10h1.9c-0.1,0.3-0.2,0.6-0.2,1c-0.1,0.3-0.1,0.7-0.1,1c0,4.1,3.3,7.4,7.4,7.4s7.4-3.3,7.4-7.4
+ c0-0.4,0-0.6-0.1-1c0-0.3-0.1-0.7-0.2-1H21V20.1z M21,6.1C21,6.6,20.6,7,20.1,7h-2.2C17.4,7,17,6.6,17,6.1V3.9C17,3.4,17.4,3,17.9,3
+ h2.2C20.6,3,21,3.4,21,3.9V6.1z"/></symbol></svg><svg xmlns="http://www.w3.org/2000/svg" class="svg-symbol"><symbol id="deal" viewBox="0 0 28 28"><path d="M4.66666667,6.53333333 C3.63377778,6.53333333 2.8,5.69955556 2.8,4.66666667 C2.8,3.63377778 3.63377778,2.8 4.66666667,2.8 C5.69955556,2.8 6.53333333,3.63377778 6.53333333,4.66666667 C6.53333333,5.69955556 5.69955556,6.53333333 4.66666667,6.53333333 M27.174,13.412 L14.574,0.812 C14.07,0.308 13.37,0 12.6,0 L2.8,0 C1.26,0 0,1.26 0,2.8 L0,12.6 C0,13.37 0.308,14.07 0.826,14.588 L13.426,27.188 C13.93,27.692 14.63,28 15.4,28 C16.17,28 16.87,27.692 17.374,27.174 L27.174,17.374 C27.692,16.87 28,16.17 28,15.4 C28,14.63 27.678,13.916 27.174,13.412" id="deals-icon"/></symbol><symbol id="gift" viewBox="0 0 32 32"><path d="M25,8c0.6-0.8,1-1.9,1-3c0-2.8-2.2-5-5-5c-2.4,0-4.4,1.7-4.9,4h-0.2c-0.5-2.3-2.5-4-4.9-4C8.2,0,6,2.2,6,5
+ c0,1.1,0.4,2.2,1,3H0v8h4v16h24V16h4V8H25z M11,2c1.7,0,3,1.3,3,3s-1.3,3-3,3S8,6.7,8,5S9.3,2,11,2z M15,30H6V16h9V30z M15,14H4H2
+ v-4h13V14z M21,2c1.7,0,3,1.3,3,3s-1.3,3-3,3s-3-1.3-3-3S19.3,2,21,2z M26,30h-9V16h9V30z M30,14h-2H17v-4h13V14z"/></symbol><symbol id="list" viewBox="0 0 375 392"><path fill="white" d="M0,0v392h375V97.7L277.1,0H0z"/><path d="M0,0v392h375V97.7L277.1,0H0z M17,17h243v98h98v260H17V17z M277,23l75,75h-75V23z M81,164h65v-17H81V164z
+ M81,212h213v-16H81V212z M81,261h213v-15H81V261z M81,309h147v-15H81V309z"/></symbol><symbol id="video-stroke" viewBox="0 0 32 32"><path d="M18.8,32H2.9C1.3,32,0,30.6,0,29V12.3c0-1.6,1.4-2.9,2.9-2.9h15.9c1.6,0,2.9,1.4,2.9,2.9v3.3l0.3-0.2
+ c3.7-2.6,5.3-3.7,5.9-3.9c1.3-0.4,3.1-0.1,3.3,0l0.7,0.2v17.7l-0.6,0.2c-0.2,0.1-1.6,0.6-3.1,0.1c-0.7-0.2-2.3-1.3-6.5-4.3v3.7
+ C21.7,30.7,20.4,32,18.8,32z M2.9,11.3c-0.5,0-1,0.5-1,1V29c0,0.6,0.5,1.1,1,1.1h15.9c0.6,0,1-0.5,1-1v-7.4l1.9,1.4
+ c2.4,1.7,6.3,4.6,7,4.8c0.5,0.1,1,0.1,1.4,0.1V13.2c-0.6-0.1-1.2-0.1-1.6,0.1l0,0c-0.5,0.2-3.4,2.2-5.4,3.6l-3.2,2.3v-6.9
+ c0-0.5-0.5-1-1-1H2.9z"/></symbol><symbol id="mag" viewBox="0 0 16 16"><path d="M15.9,14.3l-3.5-3.5c0.7-1.1,1.1-2.4,1.1-3.8c0-3.8-3-6.9-6.7-6.9C3,0,0,3.1,0,6.9s3,6.9,6.7,6.9
+ c1.6,0,3-0.5,4.1-1.5l3.5,3.5c0.1,0.1,0.2,0.1,0.3,0.1c0,0,0,0,0,0c0.1,0,0.3-0.1,0.3-0.2l0.8-0.9C16,14.8,16,14.5,15.9,14.3z
+ M6.7,11.6c-2.6,0-4.6-2.1-4.6-4.7s2.1-4.7,4.6-4.7c2.6,0,4.6,2.1,4.6,4.7S9.3,11.6,6.7,11.6z"/></symbol></svg>
+ <div id="nav-ad-58808543f19c0" class="ad-nav-ad" data-ad="nav-ad" style="display: none;" data-google-query-id="CIvU97z6zdECFVUbvAod6bMGxA">
+ <div id="google_ads_iframe_/8264/asia-cnet/tech-industry_2__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/8264/asia-cnet/tech-industry_2" title="3rd party ad content" name="google_ads_iframe_/8264/asia-cnet/tech-industry_2" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" srcdoc="" width="7" height="7" frameborder="0"></iframe></div>
+ </div>
+
+ <div id="rbWrapper">
+ <header id="rbHeader" data-component="siteHeader" data-site-header-options="{&quot;isTrackTab&quot;:false}">
+ <nav section="brand_nav|top">
+ <div section="site_sections|logo">
+ <a class="rbLogo" href="/">
+ <svg xmlns="http://www.w3.org/2000/svg" class=" cnet"><use xlink:href="#cnet" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg><span class="site">CNET</span>
+ </a>
+ </div>
+ <div class="primary">
+ <div class="menu " id="reviewsMenu" section="site_sections|reviews" data-component="touchMenuHover">
+ <a class="menuHead" data-trigger="menu" href="/reviews/">Reviews</a>
+
+ <div class="tab" id="reviewsTab">
+ <div class="wrapper">
+ <ul>
+ <li><a href="/best-products/">Best Products</a></li>
+ <li><a href="/cnet100/">CNET 100</a></li>
+ <li><a href="/topics/appliances/">Appliances</a></li>
+ <li><a href="/topics/audio/">Audio</a></li>
+ <li><a href="/topics/cameras/">Cameras</a></li>
+ </ul>
+ <ul>
+ <li><a href="/roadshow/" target="_blank">Cars</a></li>
+ <li><a href="/topics/desktops/">Desktops</a></li>
+ <li><a href="/topics/drones/">Drones</a></li>
+ <li><a href="/topics/headphones/">Headphones</a></li>
+ <li><a href="/topics/laptops/">Laptops</a></li>
+ </ul>
+ <ul>
+ <li><a href="/topics/networking/">Networking</a></li>
+ <li><a href="/topics/phones/">Phones</a></li>
+ <li><a href="/topics/printers/">Printers</a></li>
+ <li><a href="/smart-home/">Smart Home</a></li>
+ <li><a href="/topics/tablets/">Tablets</a></li>
+ </ul>
+ <ul>
+ <li><a href="/topics/tvs/">TVs</a></li>
+ <li><a href="/tags/virtual-reality/">Virtual Reality</a></li>
+ <li><a href="/topics/wearable-tech/">Wearable Tech</a></li>
+ <li><a href="/web-hosting/">Web Hosting</a></li>
+ <li><a href="/forums/">Forums</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div class="menu active" id="newsMenu" section="site_sections|news" data-component="touchMenuHover">
+ <a class="menuHead" data-trigger="menu" href="/news/">News</a>
+
+ <div class="tab" id="newsTab">
+ <div class="wrapper">
+ <ul>
+ <li><a href="/apple/">Apple</a></li>
+ <li><a href="/topics/computers/">Computers</a></li>
+ <li><a href="/crave/">Crave</a></li>
+ <li><a href="/deals/">Deals</a></li>
+ <li><a href="/google/">Google</a></li>
+ </ul>
+ <ul>
+ <li><a href="/topics/internet/">Internet</a></li>
+ <li><a href="/tags/microsoft/">Microsoft</a></li>
+ <li><a href="/topics/mobile/">Mobile</a></li>
+ <li><a href="/topics/photography/">Photography</a></li>
+ <li><a href="/topics/security/">Security</a></li>
+ </ul>
+ <ul>
+ <li><a href="/topics/sci-tech/">Sci-Tech</a></li>
+ <li><a href="/topics/tech-culture/">Tech Culture</a></li>
+ <li><a href="/topics/tech-industry/">Tech Industry</a></li>
+ <li><a href="/pictures/">Photo Galleries</a></li>
+ <li><a href="/videos/cnet-news/">Video</a></li>
+ </ul>
+ <ul>
+ <li><a href="/forums/">Forums</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div class="menu " id="videoMenu" section="site_sections|video" data-component="touchMenuHover">
+ <a class="menuHead" data-trigger="menu" href="/videos/">Video</a>
+
+ <div class="tab" id="videosTab">
+ <div class="wrapper">
+ <ul>
+ <li><a href="/apple-byte/">Apple Byte</a></li>
+ <li><a href="/carfection/" target="_blank">Carfection</a></li>
+ <li><a href="/cnet-top-5/">CNET Top 5</a></li>
+ <li><a href="/cnet-update/">CNET Update</a></li>
+ <li><a href="/googlicious/">Googlicious</a></li>
+ </ul>
+ <ul>
+ <li><a href="/how-to/videos/">How To</a></li>
+ <li><a href="/netpicks/">Netpicks</a></li>
+ <li><a href="/next-big-thing/">Next Big Thing</a></li>
+ <li><a href="/videos/cnet-news/">News</a></li>
+ <li><a href="/cnet-on-cars/" target="_blank">On Cars</a></li>
+ </ul>
+ <ul>
+ <li><a href="/topics/phones/videos/">Phones</a></li>
+ <li><a href="/prizefight/">Prizefight</a></li>
+ <li><a href="/topics/tablets/videos/">Tablets</a></li>
+ <li><a href="/tomorrow-daily/">Tomorrow Daily</a></li>
+ <li><a href="/cnet-podcasts/">CNET Podcasts</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div class="menu " id="howtoMenu" section="site_sections|howto" data-component="touchMenuHover">
+ <a class="menuHead" data-trigger="menu" href="/how-to/">How To</a>
+
+ <div class="tab" id="howtoTab">
+ <div class="wrapper">
+ <ul>
+ <li><a href="/topics/appliances/how-to/">Appliances</a></li>
+ <li><a href="/topics/computers/how-to/">Computers</a></li>
+ <li><a href="/topics/gaming/how-to/">Gaming</a></li>
+ <li><a href="/topics/home-entertainment/how-to/">Home Entertainment</a></li>
+ <li><a href="/topics/internet/how-to/">Internet</a></li>
+ </ul>
+ <ul>
+ <li><a href="/topics/mobile-apps/how-to/">Mobile Apps</a></li>
+ <li><a href="/topics/phones/how-to/">Phones</a></li>
+ <li><a href="/topics/photography/how-to/">Photography</a></li>
+ <li><a href="/topics/security/how-to/">Security</a></li>
+ <li><a href="/topics/smart-home/how-to/">Smart Home</a></li>
+ </ul>
+ <ul>
+ <li><a href="/topics/tablets/how-to/">Tablets</a></li>
+ <li><a href="/topics/wearable-tech/how-to/">Wearable Tech</a></li>
+ <li><a href="/forums/">Forums</a></li>
+ <li><a href="/internet-speed-test/">Speed Test</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div class="menu" id="smartHomeMenu" section="site_sections|smartHome" data-component="touchMenuHover">
+ <a class="menuHead" data-trigger="menu" href="/smart-home/">Smart Home</a>
+
+ <div class="tab" id="smartHomeTab">
+ <div class="wrapper">
+ <ul>
+ <li><a href="/topics/smart-home/best-smart-home-devices/">Best smart home devices</a></li>
+ <li><a href="/topics/smart-home/how-to/">How To</a></li>
+ <li><a href="/topics/smart-home/#latest">News</a></li>
+ <li><a href="/smart-home/apartment/">Tour our smart apartment</a></li>
+ <li><a href="/smart-home/">Tour our smart house</a></li>
+ </ul>
+ <div class="tertiaryMenu">
+ <a class="hed" href="/smart-home/compatibility/">Product Compatibility</a>
+ <div>
+ <ul>
+ <li><a href="/smart-home/compatibility/amazon-alexa/">Amazon Alexa</a></li>
+ <li><a href="/products/apple-homekit/compatibility/">Apple HomeKit</a></li>
+ <li><a href="/products/belkin-wemo/compatibility/">Belkin WeMo</a></li>
+
+ </ul>
+ <ul>
+ <li><a href="/products/google-home/compatibility/">Google Home</a></li>
+ <li><a href="/products/lutron/compatibility/">Lutron</a></li>
+ <li><a href="/products/nest/compatibility/">Nest</a></li>
+ </ul>
+ <ul>
+ <li><a href="/products/philips-hue/compatibility/">Philips Hue</a></li>
+ <li><a href="/products/smartthings-hub-and-sensors/compatibility/">Samsung SmartThings</a></li>
+ <li><a href="/products/wink/compatibility/">Wink</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="menu " id="carsMenu" section="site_sections|cars" data-component="touchMenuHover">
+ <a class="menuHead" data-trigger="menu" href="/roadshow/">Cars</a>
+
+ <div class="tab" id="carsTab">
+ <div class="wrapper">
+ <ul>
+ <li><a href="/roadshow/finder/automobiles/">Car Reviews</a></li>
+ <li><a href="/roadshow/best/automobiles/">Best Cars</a></li>
+ <li><a href="/roadshow/for-sale/?filter=condition_new">New Cars</a></li>
+ <li><a href="/roadshow/for-sale/?filter=condition_used">Used Cars</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div class="menu " id="dealsMenu" section="site_sections|deals" data-component="touchMenuHover">
+ <a class="menuHead" href="/deals/">Deals</a>
+
+ <div class="tab" id="dealsTab">
+ <div class="wrapper">
+ <ul>
+ <li><a href="/cheapskate/">Cheapskate</a></li>
+ <li><a href="/holiday-gift-guide/under-50/">Best Tech Under $50</a></li>
+ <li><a href="/deals/">All Deals</a></li>
+ <li><a href="/deals/tech/">Tech Deals</a></li>
+ <li><a href="/deals/non-tech/">Non-Tech Deals</a></li>
+ </ul>
+ <ul>
+ <li><a href="/deals/audio/">Audio Deals</a></li>
+ <li><a href="/deals/phones/">Cell Phone Deals</a></li>
+ <li><a href="/deals/desktops/">Desktop Deals</a></li>
+ <li><a href="/deals/laptops/">Laptop Deals</a></li>
+ <li><a href="/deals/storage/">Hard Drive &amp; Storage Deals</a></li>
+ </ul>
+ <ul>
+ <li><a href="/deals/printers/">Printer Deals</a></li>
+ <li><a href="/deals/tablets/">Tablet Deals</a></li>
+ <li><a href="/deals/cameras/">Camera Deals</a></li>
+ <li><a href="/deals/monitors/">Monitor Deals</a></li>
+ <li><a href="/deals/software/">Software Deals</a></li>
+ </ul>
+ <ul>
+ <li><a href="/deals/televisions/">TV Deals</a></li>
+ <li><a href="/web-hosting/">Web Hosting</a></li>
+ <li><a href="/best-vpn-services-directory/">VPN Services</a></li>
+ <li><a href="/wordpress-hosting-providers/">WordPress Hosting</a></li>
+ <li><a href="/domain-name-providers/">Domain Names</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div class="menu" id="download" section="site_sections|download">
+ <a class="menuHead link" href="http://download.cnet.com" data-user-action="legacy" data-component="trackDownload">Download</a>
+ </div>
+ </div>
+
+ <div class="secondary">
+ <div class="menu" id="searchMenu" section="search" data-component="touchMenuHover">
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><g><path class="st1" d="M15.9,14.3l-3.5-3.5c0.7-1.1,1.1-2.4,1.1-3.8c0-3.8-3-6.9-6.7-6.9C3,0,0,3.1,0,6.9s3,6.9,6.7,6.9
+ c1.6,0,3-0.5,4.1-1.5l3.5,3.5c0.1,0.1,0.2,0.1,0.3,0.1c0,0,0,0,0,0c0.1,0,0.3-0.1,0.3-0.2l0.8-0.9C16,14.8,16,14.5,15.9,14.3z
+ M6.7,11.6c-2.6,0-4.6-2.1-4.6-4.7s2.1-4.7,4.6-4.7c2.6,0,4.6,2.1,4.6,4.7S9.3,11.6,6.7,11.6z"/></g></svg>
+ <div class="tab" id="searchTab">
+ <div class="wrapper">
+ <form method="get" action="/search/" data-auto-suggest-options="{&quot;url&quot;:&quot;\/smartsearch\/xhr\/&quot;,&quot;showLimit&quot;:&quot;5&quot;,&quot;selectorSuggestions&quot;:&quot;.topCategories li a&quot;}" data-component="[&quot;formTrim&quot;,&quot;autoSuggest&quot;]" section="brand_nav|top" data-searchtracking="null">
+ <div class="searchBar">
+ <input placeholder="Search" id="primarySearch" name="query" value="" autocomplete="off" type="search" /><button type="submit" class="submit" value="Search" data-smartsearch="null">
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><g><path class="st1" d="M15.9,14.3l-3.5-3.5c0.7-1.1,1.1-2.4,1.1-3.8c0-3.8-3-6.9-6.7-6.9C3,0,0,3.1,0,6.9s3,6.9,6.7,6.9
+ c1.6,0,3-0.5,4.1-1.5l3.5,3.5c0.1,0.1,0.2,0.1,0.3,0.1c0,0,0,0,0,0c0.1,0,0.3-0.1,0.3-0.2l0.8-0.9C16,14.8,16,14.5,15.9,14.3z
+ M6.7,11.6c-2.6,0-4.6-2.1-4.6-4.7s2.1-4.7,4.6-4.7c2.6,0,4.6,2.1,4.6,4.7S9.3,11.6,6.7,11.6z"/></g></svg></button>
+ </div>
+ </form>
+ </div>
+ </div>
+ <div class="searchOverlay" data-searchoverlay="null"></div>
+ </div>
+ <div class="menu" id="loginMenu" data-component="touchMenuHover">
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M2.1,32c-0.1-0.9-0.5-5,1.6-5.4c0.2,0,0.5-0.1,0.8-0.1c2.8-0.5,7.5-1.3,8.9-4.4c0.7-1.6,0.5-3.5-0.8-5.7
+ C11,13.6,9.1,7.9,10.8,4.6C11.7,3,13.2,2.1,15.5,2l0.9,0c2.4,0.2,3.9,1,4.8,2.6c1.8,3.3-0.2,9-1.8,11.9c-1.2,2.2-1.5,4.1-0.8,5.7
+ c1.4,3.1,6.1,3.9,8.9,4.4c0.3,0,0.5,0.1,0.8,0.1c2.2,0.4,1.7,4.5,1.6,5.4h2c0.4-2.7,0-6.7-3.2-7.3c-0.2,0-0.5-0.1-0.8-0.1
+ c-2.3-0.4-6.4-1.1-7.5-3.3c-0.5-1-0.2-2.3,0.7-3.9c1.6-2.8,4.1-9.4,1.8-13.8c-1.2-2.2-3.3-3.4-6.4-3.6l-1,0c-3,0.2-5.2,1.4-6.3,3.6
+ C6.8,8,9.3,14.6,10.9,17.4c0.9,1.6,1.1,2.9,0.7,3.9c-1,2.2-5.2,2.9-7.5,3.3c-0.3,0.1-0.6,0.1-0.8,0.1c-3.2,0.6-3.6,4.7-3.2,7.3H2.1
+ z"/></svg>
+ <div class="menuHead" data-trigger="menu">
+ <div class="user-avatar" data-user-var="avatar"></div>
+ </div>
+
+ <div class="tab" id="loginTab">
+
+ <div class="wrapper">
+ <ul class="logged-out">
+ <li section="user|join">
+ <a href="/user/registration/?appId=376">Join CNET</a>
+ </li>
+ <li><a href="/user/join-cnet/">Member Benefits</a></li>
+ </ul>
+ <ul class="logged-out">
+ <li section="user|sign-in">
+ <a href="/user/login/?appId=376">Sign In to CNET</a>
+ </li>
+ </ul>
+ <ul class="logged-in">
+ <li section="user" class="selected"><a data-user-var="profileLink" data-template="/profiles/__username__/"><span data-user-var="userName">My Profile</span></a></li>
+ <li section="user"><a href="/forums/">Forums</a></li>
+ <li section="user|sign-out"><a href="/user/logout/?t=1484820250019" data-user-action="logout" data-user-suppress-refresh="true">Sign Out</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div class="menu" id="editionMenu" section="edition" data-component="touchMenuHover">
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M16,0C7.2,0,0,7.2,0,16s7.2,16,16,16s16-7.2,16-16S24.8,0,16,0z M17,10.3c1.3,0,2.7-0.2,3.9-0.3c0.3,1.5,0.5,3.2,0.6,5H17
+ V10.3z M17,8.3V2.7c1.3,0.7,2.5,2.6,3.4,5.3C19.3,8.1,18.2,8.2,17,8.3z M15,2.7v5.6c-1.2,0-2.3-0.1-3.4-0.3
+ C12.5,5.2,13.7,3.3,15,2.7z M15,10.3V15h-4.5c0.1-1.8,0.3-3.5,0.6-5C12.3,10.1,13.7,10.2,15,10.3z M8.5,15H2.1
+ c0.2-2.6,1.1-4.9,2.4-6.9c1.4,0.6,2.9,1.2,4.6,1.5C8.8,11.2,8.6,13.1,8.5,15z M8.5,17c0.1,2,0.3,3.8,0.6,5.5
+ c-1.7,0.4-3.2,0.9-4.6,1.5c-1.4-2-2.3-4.4-2.5-7H8.5z M10.5,17H15v4.8c-1.3,0-2.7,0.1-3.9,0.3C10.8,20.6,10.5,18.8,10.5,17z
+ M15,23.7v5.6c-1.3-0.7-2.5-2.5-3.4-5.3C12.7,23.9,13.8,23.8,15,23.7z M17,29.3v-5.6c1.2,0,2.3,0.1,3.4,0.3
+ C19.5,26.8,18.3,28.7,17,29.3z M17,21.7V17h4.5c-0.1,1.9-0.3,3.6-0.6,5.1C19.7,21.9,18.3,21.8,17,21.7z M23.5,17H30
+ c-0.2,2.6-1.1,5-2.5,7c-1.4-0.6-2.9-1.2-4.6-1.5C23.2,20.8,23.5,18.9,23.5,17z M23.5,15c-0.1-1.9-0.3-3.7-0.6-5.4
+ c1.7-0.4,3.2-0.9,4.6-1.6c1.4,2,2.3,4.4,2.5,7H23.5z M26.2,6.4c-1.1,0.5-2.4,0.9-3.8,1.2c-0.6-2.1-1.5-3.8-2.5-5.1
+ C22.3,3.2,24.5,4.6,26.2,6.4z M12.2,2.5c-1,1.3-1.9,3-2.5,5.1C8.2,7.3,6.9,6.9,5.8,6.5C7.5,4.6,9.7,3.3,12.2,2.5z M5.8,25.6
+ c1.1-0.5,2.4-0.9,3.8-1.2c0.6,2.1,1.5,3.8,2.5,5.1C9.7,28.8,7.5,27.4,5.8,25.6z M19.8,29.5c1-1.2,1.9-3,2.5-5.1
+ c1.4,0.3,2.7,0.7,3.8,1.2C24.5,27.4,22.3,28.7,19.8,29.5z"/></svg>
+ <div class="tab" id="editionTab">
+ <div class="wrapper" data-component="editionToggler">
+ <ul>
+ <li><a data-edition="au" href="/au/news/zuckerberg-offers-peek-at-facebooks-acquisition-strategies/">Australia</a></li>
+ <li><a target="_blank" href="http://www.cnetnews.com.cn/">China</a></li>
+ <li><a target="_blank" href="http://www.cnetfrance.fr/">France</a></li>
+ <li><a target="_blank" href="http://www.cnet.de/">Germany</a></li>
+ <li><a target="_blank" href="http://japan.cnet.com/">Japan</a></li>
+ </ul>
+ <ul>
+ <li><a target="_blank" href="http://www.cnet.co.kr/">Korea</a></li>
+ <li><a data-edition="uk" href="/uk/news/zuckerberg-offers-peek-at-facebooks-acquisition-strategies/">United Kingdom</a></li>
+ </ul>
+ <ul>
+ <li class="hed">US Editions</li>
+ <li class="selected"><a data-edition="us" href="/news/zuckerberg-offers-peek-at-facebooks-acquisition-strategies/">English</a></li>
+ <li><a data-edition="es" href="/es/">Español</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ </nav>
+ </header>
+ <div id="intromercial-58808543f19c0" class="ad-intromercial" data-ad="intromercial" style="display: none;" data-google-query-id="CI3U97z6zdECFVUbvAod6bMGxA">
+ <div id="google_ads_iframe_/8264/asia-cnet/tech-industry_4__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/8264/asia-cnet/tech-industry_4" title="3rd party ad content" name="google_ads_iframe_/8264/asia-cnet/tech-industry_4" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" srcdoc="" width="1" height="1" frameborder="0"></iframe></div>
+ </div>
+
+ <div id="rbContent" class="">
+
+
+ <div id="page-zuckerberg-offers-peek-at-facebooks-acquisition-strategies" class="pageWrapper pageContainer current" data-container-asset-id="ca76438a-4f9c-425f-bdb7-a69a7121cef0" data-article-options="{&quot;autoplayVideo&quot;:true}" data-page-options="{&quot;browserTitle&quot;:&quot;Zuckerberg offers peek at Facebook\u0027s acquisition strategies&quot;,&quot;browserUrl&quot;:&quot;\/news\/zuckerberg-offers-peek-at-facebooks-acquisition-strategies\/&quot;,&quot;cmsUrl&quot;:&quot;https:\/\/cms.cnet.com\/content\/article\/ca76438a-4f9c-425f-bdb7-a69a7121cef0&quot;,&quot;initialPage&quot;:true,&quot;taboolaElement&quot;:&quot;taboola-zuckerberg-offers-peek-at-facebooks-acquisition-strategies-below-article-thumbnails-article-redesign&quot;,&quot;trackingEventData&quot;:[],&quot;trackPageChange&quot;:true}" data-component="[&quot;article&quot;,&quot;page&quot;]">
+
+
+
+ <div class="content-header">
+
+ <div class="hero-content">
+ <div class="container">
+
+
+ <div class="row">
+ <div class="col-8">
+ <ul class="breadcrumb" section="bc">
+ <li>
+ <a href="/">CNET</a>
+ <span class="divider"> </span>
+ </li>
+
+ <li>
+ <a href="/topics/tech-industry/">Tech Industry</a>
+ <span class="divider"></span>
+ </li>
+
+ <li>Zuckerberg offers peek at Facebook's acquisition strategies</li>
+ </ul>
+ </div>
+ </div>
+
+
+
+ <div class="articleHead col-9">
+ <h1>Zuckerberg offers peek at Facebook's acquisition strategies</h1>
+ <p class="article-dek">Facebook CEO says be a friend and have a shared vision, but scare them when you have to and move fast.</p>
+ </div>
+ </div>
+ </div>
+
+ </div>
+ <div class="sticky-element-placeholder hidden" style="height: 86px;"></div>
+ <div class="sticky-leader" data-component="stickyLeader">
+
+
+
+
+
+ <div id="leader-top-58808543f19c0" class="ad-leader-top" data-ad="leader-top" data-google-query-id="CInU97z6zdECFVUbvAod6bMGxA">
+ <div id="google_ads_iframe_/8264/asia-cnet/tech-industry_0__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/8264/asia-cnet/tech-industry_0" title="3rd party ad content" name="google_ads_iframe_/8264/asia-cnet/tech-industry_0" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" srcdoc="" width="728" height="90" frameborder="0"></iframe></div><iframe id="google_ads_iframe_/8264/asia-cnet/tech-industry_0__hidden__" title="" name="google_ads_iframe_/8264/asia-cnet/tech-industry_0__hidden__" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom; visibility: hidden; display: none;" srcdoc="" width="0" height="0" frameborder="0"></iframe></div>
+ </div>
+
+
+ <div class="container">
+ <div class="row">
+ <div class="row">
+ <div class="col-12">
+ <div class="row">
+ <div class="col-8">
+ </div>
+ <div class="col-4">
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="col-12">
+
+
+
+
+
+ <article itemscope="" itemtype="http://schema.org/Article" id="article-body" section="articleBody">
+ <meta itemprop="thumbnailUrl" content="https://cnet3.cbsistatic.com/img/xgSbTJU0S_VQYrJTZ5k0R7M_raE=/770x433/2014/03/21/863df5d9-e8b8-4b38-851b-5e3f77f2cf0e/mark-zuckerberg-facebook-home-10671610x407.jpg" />
+ <meta itemprop="keywords" content="Tech Industry, Facebook" />
+ <meta itemprop="url mainEntityOfPage" content="https://www.cnet.com/news/zuckerberg-offers-peek-at-facebooks-acquisition-strategies/" />
+ <meta itemprop="headline" content="Zuckerberg offers peek at Facebook's acquisition strategies" />
+ <meta itemprop="description" content="Facebook CEO says be a friend and have a shared vision, but scare them when you have to and move fast." />
+ <div itemprop="publisher" itemscope="" itemtype="https://schema.org/Organization">
+ <meta itemprop="name" content="CNET" />
+ <div itemprop="logo" itemscope="" itemtype="https://schema.org/ImageObject">
+ <meta itemprop="url" content="https://cnet1.cbsistatic.com/fly/bundles/cnetcore/images/logos/cnet-redball-large.jpg" />
+ </div>
+ </div>
+
+ <div class="col-2 leftColumn" section="lColumn">
+
+
+ <div class="authorInfo" section="author">
+ <h6><a href="/topics/tech-industry/" section="topic">Tech Industry</a></h6>
+
+ <ul>
+ <li itemprop="author" itemscope="" itemtype="http://schema.org/Person">
+ <div class="profilePic">
+ <a rel="author" href="/profiles/stevenmusil/" section="author_headshot">
+ <figure class=" img"><img src="https://cnet4.cbsistatic.com/img/GKAekmXh44rNOqaTl91J3WOQrSU=/70x70/2013/07/29/d7513a63-f8ee-11e2-8c7c-d4ae52e62bcc/Steven_Musil2.jpg" class="" alt="Steven Musil mugshot" width="70" height="70" /></figure>
+ </a>
+ </div>
+
+ <div class="profileInfo">
+ <span class="byText">by </span>
+
+ <a rel="author" class="author" href="https://www.cnet.com/profiles/stevenmusil/">
+ <span itemprop="name">Steven Musil</span>
+ </a>
+
+
+ <time class="timeStamp" itemprop="datePublished" content="2017-01-18T23:00:00-0800"><span class="formattedDate">January 18, 2017</span> <span class="formattedTime">11:00 PM PST</span></time>
+ <meta itemprop="dateModified" content="2017-01-18T23:00:00-0800" /><span class="asset-twitter" data-component="socialTracking" data-social-tracking-options="{&quot;socialSite&quot;:&quot;twitterfollow&quot;}" section="author_twitter">
+ <a class="twitterIcon" target="_blank" href="https://twitter.com/intent/user?screen_name=stevenmusil">
+ <div class="twitter">
+ <div class="icon icon-twitter-red"></div>
+ </div>
+ </a>
+
+ <a class="twitterHandle" target="_blank" href="https://twitter.com/intent/user?screen_name=stevenmusil">
+ @stevenmusil
+ <svg xmlns="http://www.w3.org/2000/svg" class="twitter twitter"><use xlink:href="#twitter" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div class="slidingArticleInfo ready" data-component="slidingElement" data-sliding-element-options="{&quot;offset&quot;:0,&quot;selectorGuideParallel&quot;:&quot;#page-zuckerberg-offers-peek-at-facebooks-acquisition-strategies .article-main-body&quot;,&quot;selectorGuideTop&quot;:&quot;#page-zuckerberg-offers-peek-at-facebooks-acquisition-strategies .authorInfo&quot;}">
+
+
+
+
+
+ <div class="sharebarRedesign inline-view atTop" section="topSharebar" data-component="sharebar" data-sharebar-options="{&quot;title&quot;:&quot;Zuckerberg offers peek at Facebook\u0027s acquisition strategies&quot;,&quot;description&quot;:&quot;Facebook CEO says be a friend and have a shared vision, but scare them when you have to and move fast.&quot;,&quot;url&quot;:&quot;https:\/\/www.cnet.com\/news\/zuckerberg-offers-peek-at-facebooks-acquisition-strategies\/&quot;,&quot;popupWidth&quot;:780,&quot;popupHeight&quot;:510,&quot;data&quot;:{&quot;media&quot;:&quot;https:\/\/cnet3.cbsistatic.com\/img\/Yutq4XZHF3bqKOtddsWXDKZPEWo=\/170x128\/2014\/03\/21\/863df5d9-e8b8-4b38-851b-5e3f77f2cf0e\/mark-zuckerberg-facebook-home-10671610x407.jpg&quot;},&quot;scrollToComments&quot;:false}">
+ <div class="sharebarWrapper ">
+ <ul class="sharebarContainer">
+ <li class="share-button sharebarRedesignButton">
+ <a data-popup="facebook" data-tracking="facebook">
+ <div class="social-button-small-redesign facebook">
+ <svg xmlns="http://www.w3.org/2000/svg" class=" facebook"><use xlink:href="#facebook" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg></div>
+ </a>
+ </li>
+
+
+ <li class="share-button sharebarRedesignButton">
+ <a data-popup="twitter" data-tracking="twitter">
+ <div class="social-button-small-redesign twitter">
+ <svg xmlns="http://www.w3.org/2000/svg" class=" twitter"><use xlink:href="#twitter" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg></div>
+ </a>
+ </li>
+
+
+
+
+ <li class="share-button sharebarRedesignButton">
+ <a data-popup="email" data-tracking="email">
+ <div class="social-button-small-redesign email">
+ <svg xmlns="http://www.w3.org/2000/svg" class=" email"><use xlink:href="#email" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg></div>
+ </a>
+ </li>
+
+
+ <li class="share-button sharebarRedesignButton comment-count-redesign" data-livefyre-count-redesign="ca76438a-4f9c-425f-bdb7-a69a7121cef0">
+ <a href="#comments">
+ <div class="social-button-small-redesign comments">
+ <svg xmlns="http://www.w3.org/2000/svg" class=" comments"><use xlink:href="#comments" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg></div>
+ </a>
+ </li>
+
+ </ul>
+ </div>
+ </div>
+ </div>
+
+ <a class="nextPreview col-2 ready" href="#page-governments-social-media-wpp-leaders-report" section="upnextClicked" data-component="slidingElement" data-sliding-element-options="{&quot;offset&quot;:-30,&quot;offsetGuideParallelTop&quot;:&quot;70%&quot;,&quot;selectorGuideParallel&quot;:&quot;#page-zuckerberg-offers-peek-at-facebooks-acquisition-strategies .article-main-body&quot;,&quot;stickTo&quot;:&quot;bottom&quot;}" style="top: 1172.5px;">
+ <div class="title">
+ <span class="upNext">Up Next</span>
+
+ <span>Governments suck at social media, but you deserve some blame</span>
+ </div>
+ </a>
+ </div>
+
+ <div class="col-7 article-main-body row" itemprop="articleBody" data-component="lazyloadImages">
+
+
+
+
+ <figure class="image image-medium
+ pull-right" section="shortcodeImage"><span class="imageContainer"><span itemprop="image" itemscope="" itemtype="https://schema.org/ImageObject"><img src="https://cnet1.cbsistatic.com/img/nAMdBzIE1ogVw5bOBZBaiJCt3Ro=/570x0/2014/03/21/863df5d9-e8b8-4b38-851b-5e3f77f2cf0e/mark-zuckerberg-facebook-home-10671610x407.jpg" class="" alt="" width="570" height="0" /><meta itemprop="url" content="https://cnet1.cbsistatic.com/img/nAMdBzIE1ogVw5bOBZBaiJCt3Ro=/570x0/2014/03/21/863df5d9-e8b8-4b38-851b-5e3f77f2cf0e/mark-zuckerberg-facebook-home-10671610x407.jpg" /><meta itemprop="height" content="0" /><meta itemprop="width" content="570" /></span></span>
+ <figcaption><span class="caption"><p style="">Facebook CEO Mark Zuckerberg, the man with the acquisition plan.</p></span><span class="credit">Photo by James Martin/CNET
+ </span></figcaption>
+ </figure>
+ <p style="">Anyone who has ever been involved in closing a billion-dollar acquisition deal will tell you that you don't go in without a clear, well thought out plan.</p>
+ <div class="teads-inread" style="height: 0px; text-align: center; max-width: 100%; overflow: hidden; margin-top: 0px; position: relative;">
+ <div style="position: relative;">
+ <div class="teads-ui-components-label">ADVERTISING</div>
+ <div class="teads-player" id="teads0"></div>
+ <div class="teads-ui-components-credits"><a href="http://inread-experience.teads.tv" target="_blank"><span class="teads-ui-components-credits-colored">inRead</span> invented by Teads</a></div>
+ </div>
+ </div>
+ <p style="">Facebook CEO Mark Zuckerberg knows a thing or two about how to seal the deal on blockbuster buys. After all, he's the man behind his company's <a href="https://www.cnet.com/news/facebook-closes-19-billion-deal-for-whatsapp/" target="_blank">$19 billion acquisition</a> of WhatsApp, he <a href="https://www.cnet.com/news/zuckerberg-did-1-billion-instagram-deal-on-his-own/" target="_blank">personally brokered</a> its $1 billion buyout of <a href="https://www.cnet.com/news/why-facebook-plunked-down-1-billion-to-buy-instagram/" target="_blank">Instagram</a> and closed the <a href="https://www.cnet.com/news/facebook-to-buy-oculus-for-2-billion/" target="_blank">$3 billion deal</a> to buy Oculus VR.</p>
+ <p style="">Zuckerberg offered a primer on the strategies he and his company employ when they see an attractive target during testimony Tuesday <a href="https://www.cnet.com/news/zenimax-sues-oculus-over-virtual-reality-rift-tech/">in a lawsuit with ZeniMax Media</a>, which accuses Oculus and Facebook of "misappropriating" trade secrets and copyright infringement. At the heart of the lawsuit is technology that helped create liftoff for virtual reality, one of the <a href="http://www.cbsnews.com/videos/the-reality-of-the-virtual-world/" target="_blank" data-component="externalLink">hottest gadget trends today.</a></p>
+ <p style="">A key Facebook approach is building a long-term relationship with your target, Zuckerberg said at the trial. These deals don't just pop up over night, he said according to a transcript reviewed by <a href="http://www.businessinsider.com/mark-zuckerberg-explains-facebooks-acquisition-strategy-2017-1" target="_blank" data-component="externalLink">Business Insider</a>. They take time to cultivate. </p>
+ <blockquote>
+ <p style="">I've been building relationships, at least in Instagram and the WhatsApp cases, for years with the founders and the people that are involved in these companies, which made [it] so that when it became time or when we thought it was the right time to move, we felt like we had a good amount of context and had good relationships so that we could move quickly, which was competitively important and why a lot of these acquisitions, I think, came to us instead of our competitors and ended up being very good acquisitions over time that a lot of competitors wished they had gotten instead. </p>
+ </blockquote>
+ <p style=""> He also stressed the need assure your target that you have a shared vision about how you will collaborate after the deal is put to bed. Zuckerberg said this was reason Facebook was able to acquire Oculus for less than its original $4 billion asking price.</p>
+ <blockquote>If this [deal] is going to happen, it's not going to be because we offer a lot of money, although we're going to have to offer a fair price for the company that is more than what they felt like they could do on their own. But they also need to feel like this was actually going to help their mission.</blockquote>
+
+
+
+
+
+ <div id="inpage-video-top-58808543f19c0" class="ad-inpage-video-top" data-ad="inpage-video-top" style="display: none;" data-google-query-id="CIzU97z6zdECFVUbvAod6bMGxA">
+ <div id="google_ads_iframe_/8264/asia-cnet/tech-industry_3__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/8264/asia-cnet/tech-industry_3" title="3rd party ad content" name="google_ads_iframe_/8264/asia-cnet/tech-industry_3" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" srcdoc="" width="641" height="321" frameborder="0"></iframe></div>
+ </div>
+ <p style="">When that doesn't work, Zuckerberg said scare tactics is an effective, if undesirable, way of persuading small startups that they face a better chance of survival if they have Facebook to guide their way rather than going it alone.</p>
+ <blockquote>That's less my thing, but I think if you are trying to help convince people that they want to join you, helping them understand all the pain that they would have to go through to build it out independently is a valuable tactic. </blockquote>
+ <p style="">It also pays to be weary of competing suitors for your startup, Zuckerberg said, and be willing to move fast to stave off rivals and get the deal done.</p>
+ <blockquote>Often, if a company knows we're offering something, they will offer more. So being able to move quickly not only increases our chance of being able to get a deal done if we want to, but it makes it so we don't have end up having to pay a lot more because the process drags out.</blockquote>
+ <p style="">It wasn't clear why these strategies didn't work on Snapchat CEO Evan Spiegel, who <a href="https://www.cnet.com/news/snapchat-said-to-rebuff-3-billion-offer-from-facebook/">famously rebuffed</a> a $3 billion takeover offer from Facebook in 2013.</p>
+
+
+
+
+
+ <div id="replay-wide-top-58808543f19c0" class="ad-replay-wide-top" data-ad="replay-wide-top" style="display: none;" data-google-query-id="CI7U97z6zdECFVUbvAod6bMGxA">
+ <div id="google_ads_iframe_/8264/asia-cnet/tech-industry_5__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/8264/asia-cnet/tech-industry_5" title="3rd party ad content" name="google_ads_iframe_/8264/asia-cnet/tech-industry_5" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" srcdoc="" width="11" height="11" frameborder="0"></iframe></div>
+ </div>
+ <p style=""><em><strong>Tech Enabled:</strong> CNET chronicles tech's role in providing new kinds of accessibility. Check it out <a href="https://www.cnet.com/tech-enabled/">here</a>.</em><em><strong><br /></strong></em></p>
+ <p style=""><em><strong>Technically Literate:</strong> Original works of short fiction with unique perspectives on tech, exclusively on CNET. <a href="https://www.cnet.com/technically-literate/">Here</a>.</em></p>
+
+
+
+ <div class="taboola col-8 trc_related_container trc_spotlight_widget trc_elastic trc_elastic_trc_55099 " id="taboola-zuckerberg-offers-peek-at-facebooks-acquisition-strategies-below-article-thumbnails-article-redesign" data-component="taboola" data-taboola-options="{&quot;mode&quot;:&quot;thumbnails-f&quot;,&quot;container&quot;:&quot;taboola-zuckerberg-offers-peek-at-facebooks-acquisition-strategies-below-article-thumbnails-article-redesign&quot;,&quot;canonicalUrl&quot;:&quot;https:\/\/www.cnet.com\/news\/zuckerberg-offers-peek-at-facebooks-acquisition-strategies\/&quot;,&quot;placement&quot;:&quot;Below Article Thumbnails Article Redesign&quot;,&quot;width&quot;:&quot;col-8&quot;,&quot;isXhr&quot;:false,&quot;target_type&quot;:&quot;mix&quot;}" data-placement-name="article desktop Below Article Thumbnails Article Redesign">
+ <div class="trc_rbox_container" style="display: block;">
+ <div>
+ <div id="trc_wrapper_55099" class="trc_rbox thumbnails-f trc-content-sponsored " style="overflow: hidden; display: block;">
+ <div id="trc_header_55099" class="trc_rbox_header trc_rbox_border_elm">
+ <div class="trc_header_ext">
+ <div class="logoDiv link-adc "><a class="trc_desktop_adc_link trc_attribution_position_top" rel="nofollow" href="https://popup.taboola.com/en/?template=colorbox&amp;utm_source=cbsinteractive-cnet&amp;utm_medium=referral&amp;utm_content=thumbnails-f:article%20desktop%20Below%20Article%20Thumbnails%20Article%20Redesign:" target="_blank"><span class="trc_adc_wrapper"><span class="trc_adc_s_logo"></span> </span><span class="trc_logos_v_align"> </span></a><a class="trc_mobile_adc_link trc_attribution_position_top" rel="nofollow" href="https://popup.taboola.com/en/?template=colorbox&amp;utm_source=cbsinteractive-cnet&amp;utm_medium=referral&amp;utm_content=thumbnails-f:article%20desktop%20Below%20Article%20Thumbnails%20Article%20Redesign:" target="_blank"><span class="trc_adc_wrapper"><span class="trc_adc_s_logo"></span> </span><span class="trc_logos_v_align"> </span></a></div>
+ <div class="logoDiv link-attribution "><a class="trc_desktop_attribution_link trc_attribution_position_top" rel="nofollow" href="https://popup.taboola.com/en/?template=colorbox&amp;utm_source=cbsinteractive-cnet&amp;utm_medium=referral&amp;utm_content=thumbnails-f:article%20desktop%20Below%20Article%20Thumbnails%20Article%20Redesign:" target="_blank"><span>Taboola</span><span class="trc_logos_v_align"> </span></a><a class="trc_mobile_attribution_link trc_attribution_position_top" rel="nofollow" href="https://popup.taboola.com/en/?template=colorbox&amp;utm_source=cbsinteractive-cnet&amp;utm_medium=referral&amp;utm_content=thumbnails-f:article%20desktop%20Below%20Article%20Thumbnails%20Article%20Redesign:" target="_blank"><span>Taboola</span><span class="trc_logos_v_align"> </span></a></div>
+ <div class="logoDiv link-disclosure attribution-disclosure-link-sponsored"><a class="trc_desktop_disclosure_link trc_attribution_position_top" rel="nofollow" href="https://popup.taboola.com/en/?template=colorbox&amp;utm_source=cbsinteractive-cnet&amp;utm_medium=referral&amp;utm_content=thumbnails-f:article%20desktop%20Below%20Article%20Thumbnails%20Article%20Redesign:" target="_blank"><span>Sponsored Links by </span><span class="trc_logos_v_align"> </span></a><a class="trc_mobile_disclosure_link trc_attribution_position_top" rel="nofollow" href="https://popup.taboola.com/en/?template=colorbox&amp;utm_source=cbsinteractive-cnet&amp;utm_medium=referral&amp;utm_content=thumbnails-f:article%20desktop%20Below%20Article%20Thumbnails%20Article%20Redesign:" target="_blank"><span>Sponsored Links by </span><span class="trc_logos_v_align"> </span></a></div>
+ <div class="logoDiv link-disclosure attribution-disclosure-link-hybrid"><a class="trc_desktop_disclosure_link trc_attribution_position_top" rel="nofollow" href="https://popup.taboola.com/en/?template=colorbox&amp;utm_source=cbsinteractive-cnet&amp;utm_medium=referral&amp;utm_content=thumbnails-f:article%20desktop%20Below%20Article%20Thumbnails%20Article%20Redesign:" target="_blank"><span>Promoted Links</span><span class="trc_logos_v_align"> </span></a><a class="trc_mobile_disclosure_link trc_attribution_position_top" rel="nofollow" href="https://popup.taboola.com/en/?template=colorbox&amp;utm_source=cbsinteractive-cnet&amp;utm_medium=referral&amp;utm_content=thumbnails-f:article%20desktop%20Below%20Article%20Thumbnails%20Article%20Redesign:" target="_blank"><span>Promoted Links</span><span class="trc_logos_v_align"> </span></a></div>
+ </div><span class="trc_rbox_header_span"><span class="firstWord">YOU</span> MAY ALSO LIKE</span>
+ </div>
+ <div id="outer_55099" class="trc_rbox_outer">
+ <div id="rbox-t2m" class="trc_rbox_div trc_rbox_border_elm">
+ <div id="internal_trc_55099">
+ <div data-item-id="~~V1~~-893380842433424006~~rhLzuaNqOmnO4rIn0ZHOsSItunY2dpi87v_IfxwvEo8SO_fFkG-bpaW2-qyqBDD669-MlAvAMFXGgJq6zMPUc44ZGylOV7X5ExoRexp9hkQ" data-item-title="Best Tracking Device Ever is Selling Like Crazy" data-item-thumb="http://dailylifetech.com/banners/trackr/v2dt/3.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem videoCube_1_child trc-first-recommendation trc-spotlight-first-recommendation trc_excludable ">
+ <a title="Best Tracking Device Ever is Selling Like Crazy" href="http://trkwl.me/base.php?c=186&amp;key=379e47b237b0078f8419f0a6df5f3ab7&amp;cp=%7Bcampaign%7D&amp;site=cbsinteractive-cnet&amp;thumb=http%3A%2F%2Fdailylifetech.com%2Fbanners%2Ftrackr%2Fv2dt%2F3.jpg&amp;title=Best+Tracking+Device+Ever+is+Selling+Like+Crazy" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;https://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_auto%2Ch_255%2Cw_340%2Cc_fill%2Cg_faces:auto%2Ce_sharpen/http%3A//dailylifetech.com/banners/trackr/v2dt/3.jpg&quot;);"><span class="thumbnail-overlay"></span><span class="branding">&lt;span class=firstTabBranding&gt;Sponsored by &lt;/span&gt;TrackR Bravo</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Best Tracking Device Ever is Selling Like Crazy" href="http://trkwl.me/base.php?c=186&amp;key=379e47b237b0078f8419f0a6df5f3ab7&amp;cp=%7Bcampaign%7D&amp;site=cbsinteractive-cnet&amp;thumb=http%3A%2F%2Fdailylifetech.com%2Fbanners%2Ftrackr%2Fv2dt%2F3.jpg&amp;title=Best+Tracking+Device+Ever+is+Selling+Like+Crazy" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">Best Tracking Device Ever is Selling Like Crazy</span><span class="branding"><span class="firstTabBranding">Sponsored by </span>TrackR Bravo</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~798462909385093416~~DyLS1YTpwFu3KimDcSf3Hm3dVppf3Hngoq9scqIJMIcSO_fFkG-bpaW2-qyqBDD6GSP-PCbrrhTbdhjP5-D7LI4ZGylOV7X5ExoRexp9hkQ" data-item-title="Crazy Cheap Flashlight - Selling Like Hotcakes!" data-item-thumb="http://dailylifetech.com/banners/lumify/v1dt/5.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem videoCube_2_child trc_excludable ">
+ <a title="Crazy Cheap Flashlight - Selling Like Hotcakes!" href="http://trkwl.me/base.php?c=195&amp;key=c0475562870cd291fb435a478cd27388&amp;cp=%7Bcampaign%7D&amp;site=cbsinteractive-cnet&amp;thumb=http%3A%2F%2Fdailylifetech.com%2Fbanners%2Flumify%2Fv1dt%2F5.jpg&amp;title=Crazy+Cheap+Flashlight+-+Selling+Like+Hotcakes%21" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;https://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_auto%2Ch_255%2Cw_340%2Cc_fill%2Cg_faces:auto%2Ce_sharpen/http%3A//dailylifetech.com/banners/lumify/v1dt/5.jpg&quot;);"><span class="thumbnail-overlay"></span><span class="branding">&lt;span class=firstTabBranding&gt;Sponsored by &lt;/span&gt;Lumify X9</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Crazy Cheap Flashlight - Selling Like Hotcakes!" href="http://trkwl.me/base.php?c=195&amp;key=c0475562870cd291fb435a478cd27388&amp;cp=%7Bcampaign%7D&amp;site=cbsinteractive-cnet&amp;thumb=http%3A%2F%2Fdailylifetech.com%2Fbanners%2Flumify%2Fv1dt%2F5.jpg&amp;title=Crazy+Cheap+Flashlight+-+Selling+Like+Hotcakes%21" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">Crazy Cheap Flashlight - Selling Like Hotcakes!</span><span class="branding"><span class="firstTabBranding">Sponsored by </span>Lumify X9</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~-6911648573594303085~~r7cMhFRt-fcjonumxfeo1OPzFJLP9fyVanxUK6rQOYUSO_fFkG-bpaW2-qyqBDD64-U7zNB5r4zu7x_t4vNcKY4ZGylOV7X5ExoRexp9hkQ" data-item-title="How this app teaches you a language in 3 weeks!" data-item-thumb="http://cdn.taboolasyndication.com/libtrc/static/thumbnails/9bd19f7534f9917dea78978e5989cdd0.png" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem videoCube_3_child trc_excludable ">
+ <a title="How this app teaches you a language in 3 weeks!" href="https://go.babbel.com/engmag-a189-appsanywhere-cd-xo-tb/1_eng_tab_cd?utm_source=taboola&amp;utm_medium=CON&amp;utm_campaign=cd_engall_gen_cxo_spanishchallenge&amp;utm_term=cbsinteractive-cnet&amp;utm_content=How+this+app+teaches+you+a+language+in+3+weeks%21" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;https://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_auto%2Ch_255%2Cw_340%2Cc_fill%2Cg_faces:auto%2Ce_sharpen/http%3A//cdn.taboolasyndication.com/libtrc/static/thumbnails/9bd19f7534f9917dea78978e5989cdd0.png&quot;);"><span class="thumbnail-overlay"></span><span class="branding">&lt;span class=firstTabBranding&gt;Sponsored by &lt;/span&gt;Babbel</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="How this app teaches you a language in 3 weeks!" href="https://go.babbel.com/engmag-a189-appsanywhere-cd-xo-tb/1_eng_tab_cd?utm_source=taboola&amp;utm_medium=CON&amp;utm_campaign=cd_engall_gen_cxo_spanishchallenge&amp;utm_term=cbsinteractive-cnet&amp;utm_content=How+this+app+teaches+you+a+language+in+3+weeks%21" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">How this app teaches you a language in 3 weeks!</span><span class="branding"><span class="firstTabBranding">Sponsored by </span>Babbel</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~2373116301310985151~~OYztXYBqZRMkd8OLbv1r6dWQT6PM09ali7LZGt2tpCUSO_fFkG-bpaW2-qyqBDD62nigSbBKlHqmnhGDhGeZA44ZGylOV7X5ExoRexp9hkQ" data-item-title="The Ultimate Way to Get Cheap Hotel Rooms" data-item-thumb="http://cdn.taboolasyndication.com/libtrc/static/thumbnails/0e7815ee2413aaa0c8ed3a207d3d6837.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem videoCube_4_child trc_excludable ">
+ <a title="The Ultimate Way to Get Cheap Hotel Rooms" href="http://www.save70.com/find-hotels/?utm_source=taboola_whitelist_hotels&amp;utm_medium=cbsinteractive-cnet" rel="nofollow" target="_blank" class=" item-thumbnail-href ">
+ <div class="thumbBlock_holder"><span class="thumbBlock" style="background-image: url(&quot;https://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_auto%2Ch_255%2Cw_340%2Cc_fill%2Cg_faces:auto%2Ce_sharpen/http%3A//cdn.taboolasyndication.com/libtrc/static/thumbnails/0e7815ee2413aaa0c8ed3a207d3d6837.jpg&quot;);"><span class="thumbnail-overlay"></span><span class="branding">&lt;span class=firstTabBranding&gt;Sponsored by &lt;/span&gt;Save70.com</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="The Ultimate Way to Get Cheap Hotel Rooms" href="http://www.save70.com/find-hotels/?utm_source=taboola_whitelist_hotels&amp;utm_medium=cbsinteractive-cnet" rel="nofollow" target="_blank" class=" item-label-href "><span class="video-label-box"><span class="video-label video-title">The Ultimate Way to Get Cheap Hotel Rooms</span><span class="branding"><span class="firstTabBranding">Sponsored by </span>Save70.com</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="trc_clearer"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+
+ <footer>
+ <div class="comment-container" data-component="sharebar" data-sharebar-options="{&quot;title&quot;:&quot;&quot;,&quot;description&quot;:&quot;&quot;,&quot;url&quot;:&quot;&quot;,&quot;popupWidth&quot;:780,&quot;popupHeight&quot;:510,&quot;data&quot;:{&quot;media&quot;:&quot;&quot;},&quot;scrollToComments&quot;:true}">
+ <h2>Share your voice</h2>
+ <div class="share-button sharebarRedesignButton comment-count-redesign" data-livefyre-count-redesign="ca76438a-4f9c-425f-bdb7-a69a7121cef0">
+ <a href="#comments">
+ <div class="wrapper">
+ <div class="icon-container "><svg xmlns="http://www.w3.org/2000/svg" class=" comments"><use xlink:href="#comments" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg></div>
+ <span class="livefyre-commentcount count" data-lf-site-id="311569" data-lf-article-id="ca76438a-4f9c-425f-bdb7-a69a7121cef0" data-lf-format="numberOnly">0</span>
+ <span>comments</span>
+ </div>
+ </a>
+ </div>
+ </div>
+
+
+ <div class="row tags" section="tag">
+ <h2><a href="/tags/">Tags</a></h2>
+
+
+ <a href="/topics/tech-industry/">Tech Industry</a>
+
+ <a href="/tags/facebook/">Facebook</a>
+ </div>
+ </footer>
+ </div>
+
+ <div class="col-3 stickyColumn ready" section="rColumn" data-component="stickyColumn" data-sticky-column-options="{&quot;offset&quot;:0,&quot;selectorHeightConstraint&quot;:&quot;article&quot;}" style="height: 1675px;">
+ <div class="stickyColumnElement" data-meta="{&quot;height&quot;:600,&quot;type&quot;:&quot;required&quot;}">
+
+
+
+
+
+ <div id="mpu-half-top-58808543f19c0" class="ad-mpu-half-top" data-ad="mpu-half-top" data-google-query-id="CJDU97z6zdECFVUbvAod6bMGxA">
+ <div id="google_ads_iframe_/8264/asia-cnet/tech-industry_7__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/8264/asia-cnet/tech-industry_7" title="3rd party ad content" name="google_ads_iframe_/8264/asia-cnet/tech-industry_7" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" srcdoc="" width="300" height="250" frameborder="0"></iframe></div>
+ </div>
+ </div>
+
+
+
+
+ <div class="stickyColumnElement" data-meta="{&quot;height&quot;:250,&quot;type&quot;:&quot;required&quot;}" style="top: 837.5px;">
+
+
+
+
+
+ <div id="mpu-bottom-58808543f19c0" class="ad-mpu-bottom" data-ad="mpu-bottom" data-google-query-id="CIrU97z6zdECFVUbvAod6bMGxA">
+ <div id="google_ads_iframe_/8264/asia-cnet/tech-industry_1__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/8264/asia-cnet/tech-industry_1" title="3rd party ad content" name="google_ads_iframe_/8264/asia-cnet/tech-industry_1" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" srcdoc="" width="300" height="250" frameborder="0"></iframe></div>
+ </div>
+ </div>
+ </div>
+ </article>
+ <div class="collapsible hidden" data-component="toggle" data-toggle-options="{&quot;closeOnUrlChange&quot;:true,&quot;openOnInit&quot;:false}">
+ <div class="close" data-item="trigger"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 28 28"><polygon points="28,1.9 26.1,0 14,12.1 1.9,0 0,1.9 12.1,14 0,26.1 1.9,28 14,15.9 26.1,28 28,26.1 15.9,14 "/></svg> Close</div>
+
+
+
+
+
+ <!-- General comments -->
+ <div id="livefyreContainer-ca76438a-4f9c-425f-bdb7-a69a7121cef0" class="livefyreContainer" data-component="selfishScroll">
+ <a name="comments" class="livefyreJumpTarget"> </a>
+ <h3>
+ <span>Discuss: Zuckerberg offers peek at Facebook's acquisition...</span>
+ </h3>
+
+
+ <div id="livefyreConversation-ca76438a-4f9c-425f-bdb7-a69a7121cef0" class="livefyreConversation" data-component="livefyreConversation" data-livefyre-conversation-options="{&quot;urlUserToken&quot;:&quot;\/livefyre\/user-token\/&quot;,&quot;globalConfig&quot;:{&quot;network&quot;:&quot;cnet.fyre.co&quot;,&quot;stringOverrides&quot;:[]},&quot;commentStreamConfigs&quot;:{&quot;initialNumVisible&quot;:5,&quot;maxVisible&quot;:5,&quot;siteId&quot;:311569,&quot;articleId&quot;:&quot;ca76438a-4f9c-425f-bdb7-a69a7121cef0&quot;,&quot;el&quot;:&quot;livefyreConversation-ca76438a-4f9c-425f-bdb7-a69a7121cef0&quot;,&quot;checksum&quot;:&quot;ed70d8b48db87e571d974ed8a51ba1d5&quot;,&quot;collectionMeta&quot;:&quot;eyJ0eXAiOiJqd3QiLCJhbGciOiJIUzI1NiJ9.eyJ0aXRsZSI6Ilp1Y2tlcmJlcmcgb2ZmZXJzIHBlZWsgYXQgRmFjZWJvb2sncyBhY3F1aXNpdGlvbiBzdHJhdGVnaWVzIiwidXJsIjoiaHR0cHM6XC9cL3d3dy5jbmV0LmNvbVwvbmV3c1wvenVja2VyYmVyZy1vZmZlcnMtcGVlay1hdC1mYWNlYm9va3MtYWNxdWlzaXRpb24tc3RyYXRlZ2llc1wvIiwiY2hlY2tzdW0iOiJlZDcwZDhiNDhkYjg3ZTU3MWQ5NzRlZDhhNTFiYTFkNSIsImFydGljbGVJZCI6ImNhNzY0MzhhLTRmOWMtNDI1Zi1iZGI3LWE2OWE3MTIxY2VmMCJ9.Z7VvYowqd0Mp4v_k2EY1Gjr7vu6AdJYh1TAwx4Op5wg&quot;},&quot;profileURL&quot;:&quot;\/profiles\/%7Busername%7D\/&quot;,&quot;edition&quot;:&quot;us&quot;}">
+ <div class="fyre fyre-width-medium">
+ <div class="fyre-widget fyre-avatar-disabled">
+ <div class="fyre-featured-content-wrapper" style="display: none"></div>
+ <div class="fyre-stream-stats">
+ <div class="fyre-comment-count"><span><span class="commentCountNumber">No</span> comments</span>
+ </div>
+ <div class="fyre-help">
+ <div class="fyre-box-wrapper">
+ <a class="fyre-logo-link" href="http://livefyre.com" target="_blank"><img class="fyre-logo-drop" src="https://d3qdfnco3bamip.cloudfront.net/wjs/v3.0.1484263742/images/down_arrow.png" alt="Down arrow" /><img class="fyre-logo-help" src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" alt="Livefyre" /></a>
+ <ul class="fyre-box-list">
+ <li><a href="http://livefyre.com" target="_blank" title="Get Livefyre">Get Livefyre</a></li>
+ <li><a href="http://support.livefyre.com" target="_blank" title="FAQ">FAQ</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div class="fyre-auth">
+ <div class="fyre-login-bar"><a rel="nofollow" class="fyre-user-loggedout" role="button" tabindex="0">Log in</a></div>
+ <div class="fyre-live-container">
+ <div class="fyre-livecount"><em class="fyre-stream-livecount">33 people following</em></div>
+ </div>
+ </div>
+ <div class="fyre-editor">
+ <div class="fyre-editor-container fyre-editor-container-focus">
+ <div class="fyre-editor-editable editable fyre-editor-iframe" id="fyre-editor-3" style=""> <iframe style="width: 430px; height: 100px;" aria-label="editor" title="editor" frameborder="0"></iframe></div><span class="fyre-editor-spinner" style="display: none;"></span>
+ <div class="fyre-editor-preview"></div>
+ <div class="fyre-editor-media-drawer" style="display: none;"></div>
+ <div class="fyre-editor-toolbar">
+ <div class="fyre-mention-menu fyre-mention-menu-vertical" style="-moz-user-select: none; display: none;" role="menu" aria-haspopup="true">
+ <div class="fyre-mention-menu-filter">
+ <div></div><input autocomplete="off" aria-autocomplete="list" aria-owns=":g.content-el" aria-expanded="true" tabindex="-1" type="text" /></div>
+ <div class="fyre-mention-menu-content" id=":g.content-el">
+ <div class="goog-control goog-control-disabled" aria-disabled="true" style="-moz-user-select: none;" id=":d"></div>
+ <div class="goog-control goog-control-disabled" aria-disabled="true" style="-moz-user-select: none;" id=":e"></div>
+ <div class="goog-control goog-control-disabled" aria-disabled="true" style="-moz-user-select: none;" id=":f"></div>
+ <div class="fyre-mention-item fyre-mention-item-twitter" aria-hidden="true" style="-moz-user-select: none; display: none;" id=":h"><img src="https://dpstvy7p9whsy.cloudfront.net/a/anon/50.jpg" class="fyre-mention-item-avatar" />
+ <h4 class="fyre-mention-item-display-name"></h4><span class="fyre-mention-item-twitter"></span></div>
+ <div class="fyre-mention-item fyre-mention-item-livefyre" aria-hidden="true" style="-moz-user-select: none; display: none;" id=":i"><img src="https://dpstvy7p9whsy.cloudfront.net/a/anon/50.jpg" class="fyre-mention-item-avatar" />
+ <h4 class="fyre-mention-item-display-name"></h4><span class="fyre-mention-item-livefyre"></span></div>
+ </div>
+ </div>
+ <div class="goog-toolbar goog-toolbar-horizontal" style="-moz-user-select: none;" role="toolbar">
+ <div class="goog-toolbar-separator goog-inline-block" style="-moz-user-select: none;" role="separator" id=":a"> </div>
+ <div class="goog-inline-block fyre-button-left fyre-format-button" role="button" style="-moz-user-select: none;" id=":c" tabindex="0" aria-label="editor format text">
+ <div class="goog-inline-block fyre-button-left-outer-box">
+ <div class="goog-inline-block fyre-button-left-inner-box"></div>
+ </div>
+ </div>
+ <div class="goog-inline-block fyre-button-left fyre-mention-button" role="button" style="-moz-user-select: none;" id=":k" tabindex="0" aria-label="editor mention user">
+ <div class="goog-inline-block fyre-button-left-outer-box">
+ <div class="goog-inline-block fyre-button-left-inner-box"></div>
+ </div>
+ </div>
+ <div class="goog-inline-block fyre-button-left fyre-embed-button" role="button" style="-moz-user-select: none; display: none;" id=":m" tabindex="0" aria-label="editor add media" aria-hidden="true">
+ <div class="goog-inline-block fyre-button-left-outer-box">
+ <div class="goog-inline-block fyre-button-left-inner-box"></div>
+ </div>
+ </div>
+ <div class="goog-inline-block fyre-button-left fyre-raw-button" role="button" style="-moz-user-select: none; display: none;" id=":o" tabindex="0" aria-label="editor html embed">
+ <div class="goog-inline-block fyre-button-left-outer-box">
+ <div class="goog-inline-block fyre-button-left-inner-box"></div>
+ </div>
+ </div>
+ <div class="goog-inline-block fyre-button-left fyre-follow-button" role="button" style="-moz-user-select: none;" id=":q" tabindex="0" aria-label="editor follow button">
+ <div class="goog-inline-block fyre-button-left-outer-box">
+ <div class="goog-inline-block fyre-button-left-inner-box">+ Follow conversation</div>
+ </div>
+ </div>
+ <div class="goog-inline-block fyre-button-right fyre-share-button" role="button" style="-moz-user-select: none;" id=":s" tabindex="0" aria-label="editor share control">
+ <div class="goog-inline-block fyre-button-right-outer-box">
+ <div class="goog-inline-block fyre-button-right-inner-box">Share<label class="fyre-share-counter fyre-share-empty"></label></div>
+ </div>
+ </div>
+ <div class="goog-inline-block fyre-button-right fyre-post-button fyre-post-button-new" role="button" style="-moz-user-select: none;" id=":u" tabindex="0" aria-label="editor post comment">
+ <div class="goog-inline-block fyre-button-right-outer-box">
+ <div class="goog-inline-block fyre-button-right-inner-box">Post comment as...</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="livefyreOverlay" style="left: 0px;"><span>Please Log In to CNET to Comment</span></div>
+ </div>
+ <div class="fyre-comment-preview" style="display: none;">
+ <h5>Custom HTML Preview<span class="fyre-icon-remove"></span></h5>
+ <div class="fyre-roundedpanel-content fyre-comment-preview-content">
+ <article class="fyre-comment-article">
+ <div class="fyre-comment">
+ <div class="fyre-comment-raw-html"></div>
+ </div>
+ </article>
+ </div>
+ </div>
+ <div class="livefyreInfo"><a href="/community-faqs/" target="_blank">FAQs</a> / <a href="/community-guidelines/" target="_blank">Guidelines</a></div>
+ </div>
+ <div class="fyre-input-box-collapsed"></div>
+ <div class="fyre-stream-header">
+ <div class="fyre-content-loading" style="display: none;">Loading</div>
+ <div class="fyre-stream-sort">
+ <div class="fyre-stream-sort-options"><a class="fyre-stream-sort-newest fyre-stream-sort-selected">Newest</a><span class="fyre-stream-sort-bar"> | </span><a class="fyre-stream-sort-oldest">Oldest</a><span class="fyre-stream-sort-bar"> | </span><a class="fyre-stream-sort-top-comments">Top Comments</a></div>
+ <a class="fyre-stream-sort-back"></a>
+ </div>
+ </div>
+ <div class="fyre-comment-stream">
+ <div class="fyre-stream-content"></div>
+ <div class="fyre-stream-content-not-found"></div>
+ <div class="fyre-stream-more" style="display: none;">
+ <div class="fyre-stream-more-container">
+ <div class="fyre-text">Show More Comments</div>
+ <div class="fyre-spinner"><img src="https://d3qdfnco3bamip.cloudfront.net/wjs/v3.0.1484263742/images/snake-loader.gif" alt="" /></div>
+ </div>
+ </div>
+ </div>
+ <div class="fyre-top-content-stream"></div>
+ <div class="fyre-thread-breakout-stream"></div>
+ <div class="fyre-stream-menu-container"></div>
+ </div>
+ </div>
+ </div>
+
+ <div class="livefyreFooter">
+ <p class="livefyrePowered">Conversation powered by Livefyre</p>
+ </div>
+ </div>
+ </div>
+
+ <div class="fixate-bottom-anchor"></div>
+
+ <div class="upNextBottomWrapper">
+ <a class="upNextBottom" href="#page-governments-social-media-wpp-leaders-report">
+ <span class="label">Up Next:</span> Governments suck at social media, but you deserve some blame
+ </a>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+
+
+
+
+ <div id="flex-leader-plus-incontent-bottom-58808543f19c0" class="ad-flex-leader-plus-incontent-bottom adSize-728x90" data-ad="flex-leader-plus-incontent-bottom" data-google-query-id="CKW5_bz6zdECFQculgod4rcAew">
+ <div id="google_ads_iframe_/8264/asia-cnet/tech-industry_8__container__" style="border: 0pt none; display: inline-block; width: 728px; height: 90px;"><iframe style="border: 0px none; vertical-align: bottom;" src="https://tpc.googlesyndication.com/safeframe/1-0-5/html/container.html#xpc=sf-gdn-exp-1&amp;p=https%3A//www.cnet.com" id="google_ads_iframe_/8264/asia-cnet/tech-industry_8" title="3rd party ad content" name="" scrolling="no" marginwidth="0" marginheight="0" data-is-safeframe="true" width="728" height="90" frameborder="0"></iframe></div>
+ </div>
+ </div>
+ <div id="page-governments-social-media-wpp-leaders-report" class="pageWrapper pageContainer" data-container-asset-id="621f0934-9ad9-4bc1-aba2-76a21645b051" data-component="page" data-page-options="{&quot;ajaxOffset&quot;:2000,&quot;ajaxUrl&quot;:&quot;\/news\/governments-social-media-wpp-leaders-report\/xhr\/&quot;,&quot;browserTitle&quot;:&quot;Governments suck at social media, but you deserve some blame&quot;,&quot;browserUrl&quot;:&quot;\/news\/governments-social-media-wpp-leaders-report\/&quot;,&quot;cmsUrl&quot;:&quot;https:\/\/cms.cnet.com\/content\/article\/621f0934-9ad9-4bc1-aba2-76a21645b051&quot;,&quot;limit&quot;:5,&quot;resetAdPosition&quot;:true,&quot;taboolaElement&quot;:&quot;taboola-governments-social-media-wpp-leaders-report-below-article-thumbnails-article-redesign&quot;,&quot;trackingEventData&quot;:[],&quot;trackingPageLoadData&quot;:[],&quot;trackPageChange&quot;:true}"> </div>
+
+
+ <div class="featuredVideo">
+
+
+
+
+
+ <div class="popOnScroll" data-component="popOnScroll" data-pop-on-scroll-options="{&quot;popOnScroll&quot;:true,&quot;popOnLoad&quot;:false,&quot;popOutReturn&quot;:true,&quot;popOutOffset&quot;:-160,&quot;hideOnClose&quot;:false}">
+ <div class="videoContainer popOut ui-draggable playerLoaded playbackStarted isPlaying ad">
+ <div class="videoPlayer" data-component="cnetVideo" data-cnet-video-options="{&quot;videos&quot;:[{&quot;id&quot;:&quot;a1d3349d-ed37-4c13-a80b-3624ca349b6b&quot;,&quot;title&quot;:&quot;Battle of the CES robot baristas&quot;,&quot;description&quot;:&quot;Several companies at CES 2017 had large robotic arms that could make coffee and tea. While all the robots drew crowds, which one was the best?&quot;,&quot;slug&quot;:&quot;battle-of-the-ces-robot-baristas&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;hasCaptions&quot;:false,&quot;mpxId&quot;:&quot;857471555813&quot;,&quot;mpxRefId&quot;:&quot;JqkvYwfEL3Bu_kkWtdJ3hPYKHxBJHarE&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;922e7b92-1087-453a-8fe9-04310a618b39&quot;,&quot;firstName&quot;:&quot;Patrick&quot;,&quot;lastName&quot;:&quot;Holland&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;e22d5201-ad55-436c-bcdb-3b1747a584e9&quot;,&quot;title&quot;:&quot;CES 2017&quot;},&quot;duration&quot;:170,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/videos\/manifest\/battle-of-the-ces-robot-baristas.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/01\/18\/857471555813\/ces17_RobotBattleBarista_1233311_740.mp4&quot;},{&quot;id&quot;:&quot;a1d3349d-ed37-4c13-a80b-3624ca349b6b&quot;,&quot;title&quot;:&quot;Battle of the CES robot baristas&quot;,&quot;description&quot;:&quot;Several companies at CES 2017 had large robotic arms that could make coffee and tea. While all the robots drew crowds, which one was the best?&quot;,&quot;slug&quot;:&quot;battle-of-the-ces-robot-baristas&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;hasCaptions&quot;:false,&quot;mpxId&quot;:857471555813,&quot;mpxRefId&quot;:&quot;JqkvYwfEL3Bu_kkWtdJ3hPYKHxBJHarE&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;922e7b92-1087-453a-8fe9-04310a618b39&quot;,&quot;firstName&quot;:&quot;Patrick&quot;,&quot;lastName&quot;:&quot;Holland&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;e22d5201-ad55-436c-bcdb-3b1747a584e9&quot;,&quot;title&quot;:[&quot;Special Features&quot;,&quot;CES 2017&quot;]},&quot;duration&quot;:170,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/videos\/manifest\/battle-of-the-ces-robot-baristas.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/01\/18\/857471555813\/ces17_RobotBattleBarista_1233311_740.mp4&quot;},{&quot;id&quot;:&quot;5f324b7b-7ad8-4ddd-a1cb-450055d96224&quot;,&quot;title&quot;:&quot;Zuckerberg takes the stand, Seinfeld\u0027s new home at Netflix&quot;,&quot;description&quot;:&quot;Today\u0027s biggest tech stories include Mark Zuckerberg\u0027s testimony in a major lawsuit, Android 2.0 rumors pointing to a February release and Jerry Seinfeld\u0027s web series finding a new home at (you guessed it) Netflix.&quot;,&quot;slug&quot;:&quot;zuckerberg-takes-the-stand-seinfelds-new-home-at-netflix&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;hasCaptions&quot;:false,&quot;mpxId&quot;:857216579792,&quot;mpxRefId&quot;:&quot;fWS7L5D1noUch_Dkjawm9M9T_1GsvYdM&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;3dd87c14-8176-11e2-9d12-0018fe8a00b0&quot;,&quot;firstName&quot;:&quot;Jeff&quot;,&quot;lastName&quot;:&quot;Bakalar&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;0d8f9ac8-61cb-4e36-9263-552d5468e04b&quot;,&quot;title&quot;:[&quot;Tech Today&quot;]},&quot;duration&quot;:73,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/videos\/manifest\/zuckerberg-takes-the-stand-seinfelds-new-home-at-netflix.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/01\/18\/857216579792\/TT_011817_1232948_740.mp4&quot;},{&quot;id&quot;:&quot;863a7e23-5348-461a-b95e-269f2802780f&quot;,&quot;title&quot;:&quot;MacBooks may grow more powerful this year&quot;,&quot;description&quot;:&quot;According to an analyst known for accurate predictions, Apple will refresh its MacBook line with more processing power and more RAM.&quot;,&quot;slug&quot;:&quot;macbooks-may-grow-more-powerful-this-year&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;hasCaptions&quot;:false,&quot;mpxId&quot;:856459331943,&quot;mpxRefId&quot;:&quot;1bxJdo_9IAwC4nDL3iFSjZIgGd4VCHNC&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;74504c8d-a5f9-4894-9cc3-b7e94f30d64b&quot;,&quot;firstName&quot;:&quot;Iyaz&quot;,&quot;lastName&quot;:&quot;Akhtar&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;040fa0bc-bf08-43dc-ac3d-ee7869a9fc85&quot;,&quot;title&quot;:[&quot;CNET News Video&quot;]},&quot;duration&quot;:90,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/videos\/manifest\/macbooks-may-grow-more-powerful-this-year.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/01\/17\/856459331943\/News_0117_Apple_1232167_740.mp4&quot;},{&quot;id&quot;:&quot;8a7b97a5-627e-4a68-a3c1-0e2b9bcac2fa&quot;,&quot;title&quot;:&quot;Oculus\u0027 ugly allegations, Nintendo\u0027s Switch won\u0027t oust 3DS&quot;,&quot;description&quot;:&quot;The day\u0027s biggest tech stories include an ugly set of allegations against Facebook\u0027s Oculus, Google\u0027s impressive image technology and Nintendo of America president\u0027s assertion that the Switch and 3DS can coexist.&quot;,&quot;slug&quot;:&quot;oculus-ugly-allegations-nintendo-says-switch-wont-oust-3ds&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;hasCaptions&quot;:false,&quot;mpxId&quot;:856306243511,&quot;mpxRefId&quot;:&quot;rfJEMtyqJwJctVv_Y8nfF0a8RJ_7QqO0&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;3dd87c14-8176-11e2-9d12-0018fe8a00b0&quot;,&quot;firstName&quot;:&quot;Jeff&quot;,&quot;lastName&quot;:&quot;Bakalar&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;0d8f9ac8-61cb-4e36-9263-552d5468e04b&quot;,&quot;title&quot;:[&quot;Tech Today&quot;]},&quot;duration&quot;:82,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/videos\/manifest\/oculus-ugly-allegations-nintendo-says-switch-wont-oust-3ds.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/01\/17\/856306243511\/JG_TT170117_V1_1021865_740.mp4&quot;},{&quot;id&quot;:&quot;88d5a293-485c-4854-bf2d-c60aec62d297&quot;,&quot;title&quot;:&quot;Samsung heir formally accused of bribery, Nintendo\u0027s Fils-Aime says The Switch won\u0027t oust 3DS&quot;,&quot;description&quot;:&quot;Acting Samsung President Jay Y. Lee may be arrested in connection with a multi million dollar government bribery allegation. Also in today\u0027s tech news Nintendo says the 3DS will still be supported after the Switch is released and the Chinese government tightens grip on Android app stores.&quot;,&quot;slug&quot;:&quot;samsung-heir-formally-accused-of-bribery-nintendos-fils-aime-says-the-switch-wont-oust-3ds&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;hasCaptions&quot;:false,&quot;mpxId&quot;:855777347886,&quot;mpxRefId&quot;:&quot;XXA2tJGz1Q4euf_NSj_1I16cOCyxzFae&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;1e98ecc9-b62b-4bd7-a62b-f8a579faf8b2&quot;,&quot;firstName&quot;:&quot;Jonathan&quot;,&quot;lastName&quot;:&quot;Garnham&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;0d8f9ac8-61cb-4e36-9263-552d5468e04b&quot;,&quot;title&quot;:[&quot;Tech Today&quot;]},&quot;duration&quot;:89,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/videos\/manifest\/samsung-heir-formally-accused-of-bribery-nintendos-fils-aime-says-the-switch-wont-oust-3ds.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/01\/16\/855777347886\/JG_TT170116_V1_1021303_740.mp4&quot;},{&quot;id&quot;:&quot;714ec383-5833-4616-945e-28e4d7ea113e&quot;,&quot;title&quot;:&quot;Nintendo Switch debuts with tons of info&quot;,&quot;description&quot;:&quot;This week\u0027s biggest tech stories include a blowout of new information on Nintendo\u0027s next console, the tablet-hybrid Switch.&quot;,&quot;slug&quot;:&quot;nintendo-switch-debuts-with-tons-of-info&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;hasCaptions&quot;:false,&quot;mpxId&quot;:854472259934,&quot;mpxRefId&quot;:&quot;w6zsDNaeFf8KjsmNoG3NUPk02a6mgAe4&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;3dd87c14-8176-11e2-9d12-0018fe8a00b0&quot;,&quot;firstName&quot;:&quot;Jeff&quot;,&quot;lastName&quot;:&quot;Bakalar&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;0d8f9ac8-61cb-4e36-9263-552d5468e04b&quot;,&quot;title&quot;:[&quot;Tech Today&quot;]},&quot;duration&quot;:82,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/videos\/manifest\/nintendo-switch-debuts-with-tons-of-info.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/01\/13\/854472259934\/TT_011417_1230116_740.mp4&quot;},{&quot;id&quot;:&quot;7a810056-05c9-4007-9272-3f2ae42a4867&quot;,&quot;title&quot;:&quot;The \u0027iPhone 8\u0027 will take design cues from the iPhone 4&quot;,&quot;description&quot;:&quot;One of the best-looking iPhones could inspire the new \u0022premium\u0022 iPhone 8. The Touch Bar MacBook Pros finally get a Consumer Reports recommendation after a software fix, and do you want Apple Glasses?&quot;,&quot;slug&quot;:&quot;the-iphone-8-will-take-design-cues-from-the-iphone-4-apple-byte&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;hasCaptions&quot;:false,&quot;mpxId&quot;:854604355965,&quot;mpxRefId&quot;:&quot;2HAEiu4VQODIn0SSutHCeW5kVv6hXqRH&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;02167fb4-8176-11e2-9d12-0018fe8a00b0&quot;,&quot;firstName&quot;:&quot;Brian&quot;,&quot;lastName&quot;:&quot;Tong&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;b1a9dea1-31dc-4a54-88f7-cd7d6cde4bae&quot;,&quot;title&quot;:[&quot;Apple Byte&quot;]},&quot;duration&quot;:310,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/videos\/manifest\/the-iphone-8-will-take-design-cues-from-the-iphone-4-apple-byte.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/01\/13\/854604355965\/AB420_1019748_740.mp4&quot;},{&quot;id&quot;:&quot;d1502427-80e3-470a-86c7-eaab58175f1d&quot;,&quot;title&quot;:&quot;Did Samsung just leak the Galaxy S8?&quot;,&quot;description&quot;:&quot;Two new videos from Samsung\u0027s display division show off a new phone that might be the upcoming Galaxy S8.&quot;,&quot;slug&quot;:&quot;did-samsung-just-leak-the-galaxy-s8&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;hasCaptions&quot;:false,&quot;mpxId&quot;:854577731804,&quot;mpxRefId&quot;:&quot;NdM3wr60DY5ltJD7fBMUk_xWFqW5yBaO&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;7cbbe78d-a591-11e2-8a8e-0291187978f3&quot;,&quot;firstName&quot;:&quot;Lexy&quot;,&quot;lastName&quot;:&quot;Savvides&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;040fa0bc-bf08-43dc-ac3d-ee7869a9fc85&quot;,&quot;title&quot;:[&quot;CNET News Video&quot;]},&quot;duration&quot;:69,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/videos\/manifest\/did-samsung-just-leak-the-galaxy-s8.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/01\/13\/854577731804\/17n_samsungS8_0113_1019682_740.mp4&quot;},{&quot;id&quot;:&quot;e25fb849-4b57-402e-8fe6-b37e2a936b32&quot;,&quot;title&quot;:&quot;Nintendo debuts all-in-one gaming console Switch&quot;,&quot;description&quot;:&quot;The Switch, revealed at a Tokyo press conference, is a hybrid handheld system with detachable gaming controllers so you can also play on a TV or tablet.&quot;,&quot;slug&quot;:&quot;nintendo-debuts-all-in-one-gaming-console-switch&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;hasCaptions&quot;:false,&quot;mpxId&quot;:854380099881,&quot;mpxRefId&quot;:&quot;G6gOTWCgCYwMC7Evtn3gu_YCitDYMlut&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;&quot;,&quot;firstName&quot;:&quot;&quot;,&quot;lastName&quot;:&quot;&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;040fa0bc-bf08-43dc-ac3d-ee7869a9fc85&quot;,&quot;title&quot;:[&quot;CNET News Video&quot;]},&quot;duration&quot;:193,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/videos\/manifest\/nintendo-debuts-all-in-one-gaming-console-switch.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/01\/13\/854380099881\/2017n_nintendo_switch_0113_1019299_740.mp4&quot;},{&quot;id&quot;:&quot;1602c81e-979a-4fd8-9299-a59150e7cb35&quot;,&quot;title&quot;:&quot;Nintendo debuts Switch price and date, Apple to buy scripted TV shows?&quot;,&quot;description&quot;:&quot;The biggest tech stories of the day include brand new info on Nintendo\u0027s Switch console, Apple\u0027s interest in scripted TV shows and a Google Maps update that\u0027ll let you order a ride share straight from the app.&quot;,&quot;slug&quot;:&quot;nintendo-debuts-switch-price-and-date-apple-to-buy-scripted-tv-shows&quot;,&quot;chapters&quot;:&quot;&quot;,&quot;hasCaptions&quot;:false,&quot;mpxId&quot;:854089795843,&quot;mpxRefId&quot;:&quot;tiyEGG6yqhY54Q0veiLitR9n1959km4_&quot;,&quot;primaryTopic&quot;:{&quot;id&quot;:&quot;&quot;},&quot;author&quot;:{&quot;id&quot;:&quot;3dd87c14-8176-11e2-9d12-0018fe8a00b0&quot;,&quot;firstName&quot;:&quot;Jeff&quot;,&quot;lastName&quot;:&quot;Bakalar&quot;},&quot;primaryCollection&quot;:{&quot;id&quot;:&quot;0d8f9ac8-61cb-4e36-9263-552d5468e04b&quot;,&quot;title&quot;:[&quot;Tech Today&quot;]},&quot;duration&quot;:75,&quot;isVertical&quot;:false,&quot;m3u8&quot;:&quot;\/videos\/manifest\/nintendo-debuts-switch-price-and-date-apple-to-buy-scripted-tv-shows.m3u8&quot;,&quot;mp4&quot;:&quot;https:\/\/cnetmedia-a.akamaihd.net\/21923\/2017\/01\/13\/854089795843\/TT011317_1229578_740.mp4&quot;}],&quot;relatedItems&quot;:null,&quot;controlsCss&quot;:&quot;https:\/\/cnet1.cbsistatic.com\/fly\/css\/video\/htmlPlayerControls\/controls-0b1dae622a-rev.css&quot;,&quot;autoplay&quot;:false,&quot;timelineContainer&quot;:null,&quot;vidInfoContainer&quot;:null,&quot;monitorProgress&quot;:null,&quot;refreshAds&quot;:null,&quot;timeRange&quot;:&quot;&quot;,&quot;playFullScreen&quot;:false,&quot;prepend&quot;:true,&quot;config&quot;:{&quot;policies&quot;:{&quot;default&quot;:11417438},&quot;tracking&quot;:{&quot;can_partner_id&quot;:&quot;canPartnerID&quot;,&quot;comscore_id&quot;:&quot;3000085&quot;,&quot;comscore_home&quot;:&quot;3000085&quot;,&quot;comscore_news&quot;:&quot;3000078&quot;,&quot;comscore_reviews&quot;:&quot;3000087&quot;,&quot;comscore_videos&quot;:&quot;3000088&quot;,&quot;comscore_sense_id&quot;:&quot;cnetvideo&quot;,&quot;comscore_sense_home&quot;:&quot;cnethome&quot;,&quot;comscore_sense_news&quot;:&quot;cnetnews&quot;,&quot;comscore_sense_reviews&quot;:&quot;cnetreviews&quot;,&quot;comscore_sense_videos&quot;:&quot;cnetvideo&quot;,&quot;nielsen_cid&quot;:&quot;us-200330&quot;,&quot;nielsen_vcid&quot;:&quot;c07&quot;,&quot;nielsen_vcid_reviews&quot;:&quot;c05&quot;,&quot;nielsen_vcid_home&quot;:&quot;c07&quot;,&quot;nielsen_vcid_news&quot;:&quot;c08&quot;,&quot;nielsen_vcid_how_to&quot;:&quot;c09&quot;,&quot;nielsen_vcid_videos&quot;:&quot;c20&quot;}},&quot;baseUrl&quot;:&quot;https:\/\/www.cnet.com\/&quot;,&quot;runtime&quot;:&quot;Flash&quot;,&quot;plugins&quot;:[&quot;\/\/vidtech.cbsinteractive.com\/plugins\/closed_captions\/3_7_1\/Captions.swf&quot;,&quot;\/\/vidtech.cbsinteractive.com\/plugins\/akamai\/3_7_0\/AkamaiAnalytics.swf&quot;],&quot;policy&quot;:null,&quot;partnerId&quot;:null,&quot;uvpPartner&quot;:&quot;cnet&quot;,&quot;introVideo&quot;:&quot;&quot;}" id="uvpJs_1">
+
+
+
+ <div class="videoPromo" style="display: none;">
+ <div class="videoSlide">
+ <div class="v2">
+ <svg xmlns="http://www.w3.org/2000/svg" class=" playOverlay"><use xlink:href="#playOverlay" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg>
+ <figure class=" img"><img src="https://cnet4.cbsistatic.com/img/nEQp5MZWOoB48gCDqN6BYecID1A=/770x433/2017/01/18/7c9ebfcb-37d7-4155-871e-14e083fa6cbf/ces17robotbattlebarista.jpg" class="photo" alt="" width="770" height="433" /></figure>
+ </div>
+
+ <div class="meta">
+ <h4>Battle of the CES robot baristas</h4>
+ <p class="dek">Several companies at CES 2017 had large robotic arms that could make coffee and tea. While all the robots drew crowds, which one was the best?</p>
+
+ <span class="author">by <span class="name">Patrick Holland</span></span>
+ </div>
+
+ <div class="duration"><span>2:50 <svg xmlns="http://www.w3.org/2000/svg" class=" video"><use xlink:href="#video" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg></span></div>
+ </div>
+ </div>
+
+
+
+
+
+ <div class="popControls">
+ <div class="close" data-pop-on-scroll="close">
+ <div class="popOnScroll-close">Close</div>
+ </div>
+ <div class="dragHandle" data-pop-on-scroll="drag">
+ <span class="popOnScroll-logo">
+ </span>
+ <span class="title" data-video-info-title="">Battle of the CES robot baristas</span>
+ <div class="drag">
+ <div class="popOnScroll-drag">Drag</div>
+ </div>
+ </div>
+ </div>
+
+ <div class="autoplayControls visible" data-component="autoplayControls" data-autoplay-controls-options="{&quot;clickElement&quot;:&quot;&quot;,&quot;onText&quot;:&quot;Autoplay: ON&quot;,&quot;offText&quot;:&quot;Autoplay: OFF&quot;}">
+ <span class="autoplayOn visible">Autoplay: ON</span>
+ <span class="autoplayOff">Autoplay: OFF</span>
+ </div>
+
+ <div class="playerMessaging">
+ </div>
+ <div class="playerContainer" style="visibility: visible;">
+ <div id="uvpJs_1_player" style="height: 100%; position: relative;">
+ <div id="content_uvpJs_1_player">
+ <div id="diagnostic_uvpJs_1_player"><span>x</span>
+ <table>
+ <tbody>
+ <tr>
+ <td>player version</td>
+ <td>1.7.2</td>
+ </tr>
+ <tr>
+ <td>playback state</td>
+ <td>1</td>
+ </tr>
+ <tr>
+ <td>duration</td>
+ <td>15</td>
+ </tr>
+ <tr>
+ <td>current time</td>
+ <td>7.00</td>
+ </tr>
+ <tr>
+ <td>buffer length</td>
+ <td>0.00</td>
+ </tr>
+ <tr>
+ <td>average dropped (fps)</td>
+ <td>0</td>
+ </tr>
+ </tbody>
+ </table>
+ </div><video id="video_uvpJs_1_player" style="width: 100%;"></video></div>
+ <div id="ad_uvpJs_1_player" style="position: absolute; width: 100%; height: 100%; left: 0px; top: 0px;">
+ <div style="position: absolute; width: 433px; height: 244px;"><iframe src="https://imasdk.googleapis.com/js/core/bridge3.154.1_en.html#goog_318185325" allowfullscreen="" style="border: 0px none; opacity: 1; margin: 0px; padding: 0px; position: relative;" width="433" height="244"></iframe></div>
+ </div>
+ <div class="resize-triggers">
+ <div class="expand-trigger">
+ <div style="width: 434px; height: 245px;"></div>
+ </div>
+ <div class="contract-trigger"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="overlays min" style="width: 433px; height: 244px; pointer-events: none; margin-top: -244px;">
+ <div class="mouseListener" style="width: 100%; height: 100%; pointer-events: auto; background: rgb(0, 0, 0) none repeat scroll 0% 0%; opacity: 0; display: none;"></div>
+ <div class="playlist overlay">
+ <div class="playScroll">
+ <div data-item="loadingCircle" id="loadingCircle"></div>
+ </div>
+ </div>
+ <div class="share overlay"></div>
+ </div>
+ <div class="videoControls" data-component="videoControls" style="margin-left: 20px; width: 393px;">
+ <ul class="controlsList">
+ <li class="playPause">
+ <div class="play" style="display: none;"></div>
+ <div class="pause" style="display: block;"></div>
+ <div class="divider"></div>
+ </li>
+ <li class="playlist">playlist</li>
+ <li class="progress" style="width: 73px;">
+ <div class="progress-slider ui-slider ui-slider-horizontal ui-widget ui-widget-content ui-corner-all ui-slider-disabled ui-state-disabled ui-disabled" aria-disabled="true">
+ <div class="ui-slider-range ui-widget-header ui-slider-range-min" style="width: 0%;"></div>
+ <a class="ui-slider-handle ui-state-default ui-corner-all" href="#" style="left: 0%;"></a>
+ </div>
+ <div class="chapters"></div>
+ </li>
+ <li class="time">0:07 / 0:15</li>
+ <li class="captions">captions</li>
+ <li class="volume">
+ <div class="mute"></div>
+ <div class="volume-slider ui-slider ui-slider-vertical ui-widget ui-widget-content ui-corner-all">
+ <div class="ui-slider-range ui-widget-header ui-slider-range-min" style="height: 75%;"></div>
+ <a class="ui-slider-handle ui-state-default ui-corner-all" href="#" style="bottom: 75%;"></a>
+ </div>
+ </li>
+ <li class="share">share</li>
+ <li class="fullscreen">fullscreen</li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+
+
+ <section id="contentPromo" section="footer|content_promo" class="show" data-component="lazyloadComponent" data-lazyload-component-options="{&quot;endpoint&quot;:&quot;\/component\/load\/xhr\/&quot;,&quot;view&quot;:&quot;responsive_listing_highlight&quot;,&quot;familyName&quot;:&quot;listing&quot;,&quot;typeName&quot;:&quot;curated_listing&quot;,&quot;slug&quot;:&quot;footer-promo&quot;}">
+ <div class="asset" section="pos1" data-component="lazyloadImages">
+ <a class="mainStory" href="/news/blizzard-25/"></a>
+
+ <figure class=" img"><span><img src="" class="" alt="" data-original=" https://cnet4.cbsistatic.com/img/ADhScBH_L3W5TAopZGiN7F1fokU=/1170x658/2016/11/01/8c94db8b-3727-4e28-a70f-222f07c9884a/blizzard-promo.jpg" width="1170" height="658" /></span><noscript>&lt;span
+ &gt;&lt;img src=" https://cnet4.cbsistatic.com/img/ADhScBH_L3W5TAopZGiN7F1fokU=/1170x658/2016/11/01/8c94db8b-3727-4e28-a70f-222f07c9884a/blizzard-promo.jpg" class="" alt="" height="658"
+ width="1170"
+ /&gt;&lt;/span&gt;</noscript></figure>
+
+ <div class="content">
+ <span class="tag-article">Special feature</span>
+
+ <h3 class="h">How to build worlds for fun and profit</h3>
+
+ <span class="assetAuthor">
+ <span class="author">by
+ <a rel="author" href="/profiles/seamus+byrne/">
+ Seamus Byrne </a>
+ </span>
+ </span>
+ </div>
+ </div>
+ <div class="asset" section="pos2" data-component="lazyloadImages">
+ <a class="mainStory" href="/news/does-the-mac-still-matter/"></a>
+
+ <figure class=" img"><span><img src="" class="" alt="" data-original=" https://cnet1.cbsistatic.com/img/BCN2RF5RZaqa0kiLNvo_43hB5Ls=/1170x658/2016/10/28/af0ce604-1a5b-4271-b116-2df39fd4332a/apple-event-macbook-102716-craig-federighi-3368.jpg" width="1170" height="658" /></span><noscript>&lt;span
+ &gt;&lt;img src=" https://cnet1.cbsistatic.com/img/BCN2RF5RZaqa0kiLNvo_43hB5Ls=/1170x658/2016/10/28/af0ce604-1a5b-4271-b116-2df39fd4332a/apple-event-macbook-102716-craig-federighi-3368.jpg" class="" alt="" height="658"
+ width="1170"
+ /&gt;&lt;/span&gt;</noscript></figure>
+
+ <div class="content">
+ <span class="tag-article">Exclusive interview</span>
+
+ <h3 class="h">Does the Mac still matter?</h3>
+
+ <span class="assetAuthor">
+ <span class="author">by
+ <a rel="author" href="/profiles/sharatibken/">
+ Shara Tibken </a>
+ </span>
+ </span>
+ </div>
+ </div>
+ </section>
+ <footer id="cnetFooter" section="footer">
+ <div class="container">
+
+ <div id="cnetPromo" class="show" section="mag_promo" data-component="lazyloadComponent" data-lazyload-component-options="{&quot;endpoint&quot;:&quot;\/component\/load\/xhr\/&quot;,&quot;view&quot;:&quot;h1_and_dek&quot;,&quot;familyName&quot;:&quot;editorial&quot;,&quot;typeName&quot;:&quot;component_editorial_component&quot;,&quot;slug&quot;:&quot;mag-promo&quot;}">
+ <div data-component="lazyloadImages">
+ <h3>CNET Magazine</h3>
+ <p>Read about tech’s impact on the worldwide refugee crisis, discover what conservationists, scientists and tech companies are doing to save the rhino, learn how Tetris conquered the world, and more in the Winter issue of CNET Magazine.</p>
+ <span class="promoLabel">Grab your copy</span>
+ <figure class="promoImage img"><span><img src="" class="" alt="" data-original=" https://cnet2.cbsistatic.com/img/7EsyCWIMGotBXdU9pWue3Mh-Rdo=/1254x620/2016/11/11/5d5be602-9298-445c-bcf7-c246d1c5b6a6/tjmfooter-image-template.png" width="1254" height="620" /></span><noscript>&lt;span
+ &gt;&lt;img src=" https://cnet2.cbsistatic.com/img/7EsyCWIMGotBXdU9pWue3Mh-Rdo=/1254x620/2016/11/11/5d5be602-9298-445c-bcf7-c246d1c5b6a6/tjmfooter-image-template.png" class="" alt="" height="620"
+ width="1254"
+ /&gt;&lt;/span&gt;</noscript></figure>
+ <a class="promoLink" href="http://subscribe.cnet.com/magazine/subscribe/#ftag=CAD63a33e1"></a>
+ </div>
+ </div>
+
+ <div id="cnetLegal">
+ <div section="site_sections|logo">
+ <a class="rbLogo" href="/">
+ <svg xmlns="http://www.w3.org/2000/svg" class=" cnet"><use xlink:href="#cnet" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg><span class="site">CNET</span>
+ </a>
+ </div>
+ <div class="footerText">
+ <div class="copyright">© CBS Interactive Inc. / All Rights Reserved.</div>
+ <a href="/about/">About CNET</a>
+ <a href="http://cbsi.force.com/CBSi/privacy" rel="nofollow">Privacy Policy</a>
+ <a href="http://legalterms.cbsinteractive.com/adchoice" rel="nofollow">Ad Choice</a>
+ <a href="http://legalterms.cbsinteractive.com/terms-of-use" rel="nofollow">Terms of Use</a>
+ <a href="http://legalterms.cbsinteractive.com/eula" rel="nofollow">Mobile User Agreement</a>
+ <a href="https://cbsi.secure.force.com/CBSi/knowledgehome?referer=cnet.com" rel="nofollow">Help Center</a>
+ </div>
+ </div>
+
+
+
+
+
+ <div id="dynamic-text-link-top-58808543f19c0" class="ad-dynamic-text-link-top" data-ad="dynamic-text-link-top" style="" data-google-query-id="CI_U97z6zdECFVUbvAod6bMGxA">
+ <div id="google_ads_iframe_/8264/asia-cnet/tech-industry_6__container__" style="border: 0pt none; height: auto;"><iframe id="google_ads_iframe_/8264/asia-cnet/tech-industry_6" title="3rd party ad content" name="google_ads_iframe_/8264/asia-cnet/tech-industry_6" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom; display: none;" srcdoc="" width="1171" height="61" frameborder="0"></iframe></div>
+ </div>
+ </div>
+ </footer>
+ </div>
+
+
+
+ <script>
+ function addVars() {
+ BOOMR.addVar({
+ "txId": (window.CnetPageVars & amp; & amp; window.CnetPageVars.txId) ? window.CnetPageVars.txId : ""
+ });
+ }
+
+ if (document.addEventListener) {
+ document.addEventListener("onBoomerangLoaded", addVars);
+ } else if (document.attachEvent) {
+ document.attachEvent("onpropertychange", function(e) {
+ if (!e) e = window.event;
+ if (e & amp; & amp; e.propertyName === "onBoomerangLoaded") {
+ addVars();
+ }
+ });
+ }
+
+ /*! mpulse v0.0.2 */
+
+ ! function(a) {
+ "use strict";
+
+ function b(b, c) {
+ j || ("object" == typeof XDomainRequest ? (r = !0, j = function() {
+ return new XDomainRequest
+ }) : "function" == typeof XMLHttpRequest || "object" == typeof XMLHttpRequest ? j = function() {
+ return new XMLHttpRequest
+ } : "function" == typeof require ? j = function() {
+ var a = require("xmlhttprequest").XMLHttpRequest;
+ return new a
+ } : a & amp; & amp;
+ "undefined" != typeof a.ActiveXObject & amp; & amp;
+ (j = function() {
+ return new a.ActiveXObject("Microsoft.XMLHTTP")
+ }));
+ var d = j();
+ "function" == typeof c & amp; & amp;
+ (r ? d.onload = function() {
+ c(d.responseText)
+ } : d.onreadystatechange = function() {
+ 4 === d.readyState & amp; & amp;
+ c(d.responseText)
+ }), d.open("GET", b, !0), d.send()
+ }
+
+ function c() {
+ return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(a) {
+ var b = 16 * Math.random() | 0,
+ c = "x" === a ? b : 3 & amp;
+ b | 8;
+ return c.toString(16)
+ })
+ }
+
+ function d(d, e) {
+ function f(b) {
+ return -1 !== b.indexOf("http://") || -1 !== b.indexOf("https://") ? b : (Q ? b = "https:" + b : "undefined" == typeof a ? -1 === b.indexOf("http:") & amp; & amp;
+ (b = "http:" + b) : "undefined" != typeof a & amp; & amp;
+ "file:" === a.location.protocol & amp; & amp; - 1 === b.indexOf("http:") & amp; & amp;
+ (b = "http:" + b), b)
+ }
+
+ function g() {
+ var a = P;
+ return a += -1 !== a.indexOf("?") ? "&amp;" : "?", a += "key=" + O, a += "&amp;acao=", f(a)
+ }
+
+ function h() {
+ var a = R.beacon_url;
+ return a += -1 !== a.indexOf("?") ? "&amp;" : "?", a += "acao=1", f(a)
+ }
+
+ function i(a) {
+ try {
+ var b = JSON.parse(a);
+ for (var c in b) b.hasOwnProperty(c) & amp; & amp;
+ (R[c] = b[c])
+ } catch (d) {
+ return void(T = !1)
+ }
+ if ($ || I(R.session_id), _ = {}, ba = {}, Z = {}, R.PageParams) {
+ var e = R.PageParams.customMetrics,
+ f = R.PageParams.customTimers,
+ g = R.PageParams.customDimensions;
+ if (e)
+ for (q = 0; q & lt; e.length; q++) {
+ var h = e[q];
+ _[h.name] = h.label
+ }
+ if (f)
+ for (q = 0; q & lt; f.length; q++) {
+ var i = f[q];
+ ba[i.name] = i.label
+ }
+ if (g)
+ for (q = 0; q & lt; g.length; q++) {
+ var m = g[q];
+ Z[m.name] = m.label
+ }
+ }
+ T = !0, S = !0, setTimeout(j, l), k(r)
+ }
+
+ function j() {
+ if ("" !== P) {
+ var a = g();
+ S & amp; & amp;
+ (a += "&amp;r="), b(a, i)
+ }
+ }
+
+ function n() {
+ var a = {};
+ for (var b in Y) Y.hasOwnProperty(b) & amp; & amp;
+ (a[b] = Y[b]);
+ return a
+ }
+
+ function o(a, b, c) {
+ U.push({
+ type: a,
+ name: b,
+ value: c,
+ group: W,
+ ab: X,
+ dimensions: n()
+ })
+ }
+
+ function r(a) {
+ if (0 !== U.length) {
+ if (!T) return void((!V || a) & amp; & amp;
+ (V = !0, setTimeout(function() {
+ r(!0)
+ }, m)));
+ var b = U.shift(),
+ c = b.type,
+ d = b.name,
+ e = b.value,
+ f = {};
+ "boolean" != typeof b.group & amp; & amp;
+ (f["h.pg"] = b.group), "boolean" != typeof b.ab & amp; & amp;
+ (f["h.ab"] = b.ab);
+ for (var g in b.dimensions) b.dimensions.hasOwnProperty(g) & amp; & amp;
+ "undefined" != typeof Z[g] & amp; & amp;
+ (f[Z[g]] = b.dimensions[g]);
+ "metric" === c ? "undefined" != typeof _[d] & amp; & amp;
+ (f[_[d]] = e, t(f)): "timer" === c & amp; & amp;
+ "undefined" != typeof ba[d] & amp; & amp;
+ (f.t_other = ba[d] + "|" + e, t(f)), k(r)
+ }
+ }
+
+ function t(a) {
+ a.d = R.site_domain, a["h.key"] = R["h.key"], a["h.d"] = R["h.d"], a["h.cr"] = R["h.cr"], a["h.t"] = R["h.t"], a["http.initiator"] = "api", $ !== !1 & amp; & amp;
+ (a["rt.si"] = $, a["rt.ss"] = da, a["rt.sl"] = ea), a.api = 1, a.v = 1, a.u = "http://" + R.site_domain, a.t_done = 0, N("before_beacon", a);
+ var c = [];
+ for (var d in a) a.hasOwnProperty(d) & amp; & amp;
+ c.push(encodeURIComponent(d) + "=" + (void 0 === a[d] || null === a[d] ? "" : encodeURIComponent(a[d])));
+ var e = h(),
+ f = e + (e.indexOf("?") & gt; - 1 ? "&amp;" : "?") + c.join("&amp;");
+ N("beacon", a), b(f)
+ }
+
+ function u(a) {
+ return "string" != typeof a ? -1 : (ca++, aa[ca] = {
+ time: s(),
+ name: a
+ }, ca)
+ }
+
+ function v(a) {
+ if ("number" != typeof a || 0 & gt; a) return -1;
+ var b = aa[a],
+ c = 0;
+ return b ? (c = Math.round(s() - b.time), w(b.name, c), delete aa[a], c) : -1
+ }
+
+ function w(a, b) {
+ return "string" != typeof a ? -1 : "number" != typeof b || 0 & gt;
+ b ? -1 : (b = Math.round(b), o("timer", a, b), k(r), b)
+ }
+
+ function x(a, b) {
+ "string" == typeof a & amp; & amp;
+ ("undefined" == typeof b || "number" == typeof b) & amp; & amp;
+ ("undefined" == typeof b & amp; & amp;
+ (b = 1), o("metric", a, b), k(r))
+ }
+
+ function y(a) {
+ "string" == typeof a & amp; & amp;
+ (W = a)
+ }
+
+ function z() {
+ return W
+ }
+
+ function A() {
+ W = !1
+ }
+
+ function B(a) {
+ return "string" != typeof a ? !1 : /^[a-zA-Z0-9_ -]{1,25}$/.test(a) === !1 ? !1 : (X = a, !0)
+ }
+
+ function C() {
+ return X
+ }
+
+ function D() {
+ X = !1
+ }
+
+ function E(a, b) {
+ return "undefined" != typeof a ? "undefined" == typeof b ? void F(a) : void(Y[a] = b) : void 0
+ }
+
+ function F(a) {
+ "undefined" != typeof a & amp; & amp;
+ "undefined" != typeof Y[a] & amp; & amp;
+ delete Y[a]
+ }
+
+ function G(a) {
+ ("string" == typeof a || "number" == typeof a) & amp; & amp;
+ ("number" == typeof a & amp; & amp;
+ (a = "" + a), $ = a)
+ }
+
+ function H() {
+ return $
+ }
+
+ function I(a) {
+ return G(a || c()), K(0), H()
+ }
+
+ function J() {
+ ea++
+ }
+
+ function K(a) {
+ "number" != typeof a || 0 & gt;
+ a || (ea = a)
+ }
+
+ function L() {
+ return ea
+ }
+
+ function M(a, b) {
+ fa.hasOwnProperty(a) & amp; & amp;
+ "function" == typeof b & amp; & amp;
+ fa[a].push(b)
+ }
+
+ function N(a, b) {
+ for (var c = 0; c & lt; fa[a].length; c++) fa[a][c](b)
+ }
+ e = e || {};
+ var O = d,
+ P = "//c.go-mpulse.net/api/config.json",
+ Q = !1,
+ R = {},
+ S = !1,
+ T = !1,
+ U = [],
+ V = !1,
+ W = !1,
+ X = !1,
+ Y = {},
+ Z = {},
+ $ = !1,
+ _ = {},
+ aa = {},
+ ba = {},
+ ca = -1,
+ da = s(),
+ ea = 0,
+ fa = {};
+ for (q = 0; q & lt; p.length; q++) fa[p[q]] = [];
+ "undefined" != typeof e.configUrl & amp; & amp;
+ (P = e.configUrl), e.forceSSL & amp; & amp;
+ (Q = !0), j();
+ var ga = {
+ startTimer: u,
+ stopTimer: v,
+ sendTimer: w,
+ sendMetric: x,
+ setPageGroup: y,
+ getPageGroup: z,
+ resetPageGroup: A,
+ setABTest: B,
+ getABTest: C,
+ resetABTest: D,
+ setDimension: E,
+ resetDimension: F,
+ setSessionID: G,
+ getSessionID: H,
+ startSession: I,
+ incrementSessionLength: J,
+ setSessionLength: K,
+ getSessionLength: L,
+ subscribe: M,
+ parseConfig: i
+ };
+ return ga
+ }
+
+ function e() {
+ return w.mPulse = x, v
+ }
+
+ function f(a, b) {
+ if (b = b || {}, "undefined" != typeof b.name & amp; & amp;
+ "undefined" != typeof z[b.name]) return z[b.name];
+ var c = d(a, b);
+ if (y === !1) {
+ y = c;
+ for (var e = 0; e & lt; o.length; e++) {
+ var f = o[e];
+ v[f] = y[f]
+ }
+ }
+ return "undefined" != typeof b.name & amp; & amp;
+ (z[b.name] = c), c
+ }
+
+ function g(a) {
+ return z[a]
+ }
+
+ function h() {}
+
+ function i(a) {
+ "undefined" != typeof z[a] & amp; & amp;
+ delete z[a]
+ }
+ var j, k, l = 3e5,
+ m = 5e3,
+ n = "0.0.1",
+ o = ["startTimer", "stopTimer", "sendTimer", "sendMetric", "setPageGroup", "getPageGroup", "resetPageGroup", "setABTest", "getABTest", "resetABTest", "setDimension", "resetDimension", "setSessionID", "getSessionID", "startSession", "incrementSessionLength", "setSessionLength", "getSessionLength", "subscribe"],
+ p = ["before_beacon", "beacon"],
+ q = 0,
+ r = !1,
+ s = !1,
+ t = +new Date;
+ if (k = "undefined" != typeof process & amp; & amp;
+ "function" == typeof process.nextTick ? process.nextTick.bind(process) : "undefined" != typeof a ? a.setImmediate ? a.setImmediate.bind(a) : a.msSetImmediate ? a.msSetImmediate.bind(a) : a.webkitSetImmediate ? a.webkitSetImmediate.bind(a) : a.mozSetImmediate ? a.mozSetImmediate.bind(a) : function(a) {
+ setTimeout(a, 10)
+ } : function(a) {
+ setTimeout(a, 10)
+ }, "undefined" != typeof a)
+ if ("undefined" != typeof a.performance & amp; & amp;
+ "function" == typeof a.performance.now) s = a.performance.now.bind(a.performance);
+ else if ("undefined" != typeof a.performance) {
+ var u = ["webkitNow", "msNow", "mozNow"];
+ for (q = 0; q & lt; u.length; q++)
+ if ("function" == typeof a.performance[u[q]]) {
+ s = a.performance[u[q]];
+ break
+ }
+ }
+ s || ("undefined" != typeof a & amp; & amp; a.performance & amp; & amp; a.performance.timing & amp; & amp; a.performance.timing.navigationStart & amp; & amp;
+ (t = a.performance.timing.navigationStart), s = "undefined" != typeof Date & amp; & amp; Date.now ? function() {
+ return Date.now() - t
+ } : function() {
+ return +new Date - t
+ });
+ var v, w, x, y = !1,
+ z = {};
+ for ("undefined" != typeof a & amp; & amp;
+ (w = a, x = w.mPulse), v = {
+ version: n,
+ noConflict: e,
+ init: f,
+ getApp: g,
+ stop: i
+ }, q = 0; q & lt; o.length; q++) v[o[q]] = h;
+ "function" == typeof define & amp; & amp;
+ define.amd ? define([], function() {
+ return v
+ }) : "undefined" != typeof module & amp; & amp;
+ module.exports ? module.exports = v : "undefined" != typeof w & amp; & amp;
+ (w.mPulse = v)
+ }("undefined" != typeof window ? window : void 0);
+
+ (function() {
+ try {
+ window.mPulseApp = mPulse.init("38QDY-8CT77-8XNH2-VJQTD-EK4YX");
+ } catch (e) {}
+ })();
+ </script>
+ <script data-main="https://cnet3.cbsistatic.com/fly/3483-fly/js/main.default.js" src="https://cnet2.cbsistatic.com/fly/js/libs/require-2.1.2.js"></script>
+ <iframe id="destination_publishing_iframe_cbsi_0" style="display: none; width: 0px; height: 0px;" src="https://cbsi.demdex.net/dest5.html?d_nsid=0#https%3A%2F%2Fwww.cnet.com%2Fnews%2Fzuckerberg-offers-peek-at-facebooks-acquisition-strategies%2F" class="aamIframeLoaded"></iframe>
+ <div id="uvpjs-tracking-1484820250408"><img src="//dw.cbsi.com/levt/video/e.gif?bitrate=0&amp;blockcntry=&amp;codec=&amp;componentid=9f4fae40de2e11e6a3947d73dcb07f9e&amp;contsessid=&amp;device=type%3Adesktop%3Bos%3Aos%2520x%3Bver%3A10.11%3Bscreensz%3A1440x900&amp;distntwrk=&amp;encodeprfl=&amp;event=init&amp;eventdur=0&amp;gestval=&amp;ip=&amp;mapp=UVPJS%3B1.7.2&amp;medastid=0&amp;medid=0&amp;medlength=0&amp;mednum=0&amp;medrls=&amp;medtime=0&amp;medtitle=&amp;medtype=0&amp;mso=&amp;pageurl=https%3A%2F%2Fwww.cnet.com%2Fnews%2Fzuckerberg-offers-peek-at-facebooks-acquisition-strategies%2F&amp;part=cnet&amp;playerembed=0&amp;playersz=&amp;playertime=0&amp;qosnum=0&amp;recommend=&amp;relsessid=&amp;sdlvrytype=&amp;siteid=1&amp;sponsored=&amp;srchost=www.cnet.com&amp;subj=&amp;ts=1484820250362&amp;ua=&amp;ursuid=&amp;usrbndwdth=0&amp;v16=9ebac140-de2e-11e6-80be-03a3e80ab46f&amp;v17=tech%20industry&amp;v18=news%2Ctech-industry&amp;v19=article&amp;v20=ca76438a-4f9c-425f-bdb7-a69a7121cef0&amp;v21=desktop%2520web&amp;v22=&amp;v23=cbsicnetglobalsite&amp;v25=anon&amp;v26=&amp;videosz=&amp;volume=0" style="position: absolute; bottom: 0px; right: 0px;" width="1" border="0" height="1" /><img src="//dw.cbsi.com/levt/video/e.gif?bitrate=0&amp;blockcntry=&amp;codec=&amp;componentid=9f4fae40de2e11e6a3947d73dcb07f9e&amp;contsessid=&amp;device=type%3Adesktop%3Bos%3Aos%2520x%3Bver%3A10.11%3Bscreensz%3A1440x900&amp;distntwrk=cnet&amp;encodeprfl=&amp;event=start&amp;eventdur=0&amp;gestval=paywall%3A0%3Bcaption_available%3A1&amp;ip=&amp;mapp=UVPJS%3B1.7.2&amp;medastid=595&amp;medid=&amp;medlength=-1&amp;mednum=1&amp;medrls=&amp;medtime=0&amp;medtitle=&amp;medtype=0&amp;mso=&amp;pageurl=https%3A%2F%2Fwww.cnet.com%2Fnews%2Fzuckerberg-offers-peek-at-facebooks-acquisition-strategies%2F&amp;part=cnet&amp;playerembed=0&amp;playersz=0x0&amp;playertime=0&amp;qosnum=0&amp;recommend=&amp;relsessid=&amp;sdlvrytype=3&amp;siteid=1&amp;sponsored=&amp;srchost=www.cnet.com&amp;subj=&amp;ts=1484820250362&amp;ua=&amp;ursuid=&amp;usrbndwdth=0&amp;v16=9ebac140-de2e-11e6-80be-03a3e80ab46f&amp;v17=tech%20industry&amp;v18=news%2Ctech-industry&amp;v19=article&amp;v20=ca76438a-4f9c-425f-bdb7-a69a7121cef0&amp;v21=desktop%2520web&amp;v22=&amp;v23=cbsicnetglobalsite&amp;v25=anon&amp;v26=&amp;videosz=&amp;volume=0&amp;adastid=43&amp;adbreak=&amp;adid=259895529&amp;adlength=15&amp;adnum=1&amp;adpod=0&amp;adpodpos=1&amp;adpos=pre&amp;adtime=0&amp;adtitle=7HF71V15SE-promos&amp;adtype=1" style="position: absolute; bottom: 0px; right: 0px;" width="1" border="0" height="1" /><img src="//dw.cbsi.com/levt/video/e.gif?bitrate=0&amp;blockcntry=&amp;codec=&amp;componentid=9f4fae40de2e11e6a3947d73dcb07f9e&amp;contsessid=&amp;device=type%3Adesktop%3Bos%3Aos%2520x%3Bver%3A10.11%3Bscreensz%3A1440x900&amp;distntwrk=cnet&amp;encodeprfl=&amp;event=play&amp;eventdur=0&amp;gestval=&amp;ip=&amp;mapp=UVPJS%3B1.7.2&amp;medastid=595&amp;medid=&amp;medlength=-1&amp;mednum=1&amp;medrls=&amp;medtime=0&amp;medtitle=&amp;medtype=0&amp;mso=&amp;pageurl=https%3A%2F%2Fwww.cnet.com%2Fnews%2Fzuckerberg-offers-peek-at-facebooks-acquisition-strategies%2F&amp;part=cnet&amp;playerembed=0&amp;playersz=0x0&amp;playertime=7&amp;qosnum=0&amp;recommend=&amp;relsessid=&amp;sdlvrytype=3&amp;siteid=1&amp;sponsored=&amp;srchost=www.cnet.com&amp;subj=&amp;ts=1484820250362&amp;ua=&amp;ursuid=&amp;usrbndwdth=0&amp;v16=9ebac140-de2e-11e6-80be-03a3e80ab46f&amp;v17=tech%20industry&amp;v18=news%2Ctech-industry&amp;v19=article&amp;v20=ca76438a-4f9c-425f-bdb7-a69a7121cef0&amp;v21=desktop%2520web&amp;v22=&amp;v23=cbsicnetglobalsite&amp;v25=anon&amp;v26=&amp;videosz=&amp;volume=0&amp;adastid=43&amp;adbreak=&amp;adid=259895529&amp;adlength=15&amp;adnum=1&amp;adpod=0&amp;adpodpos=1&amp;adpos=pre&amp;adtime=2&amp;adtitle=7HF71V15SE-promos&amp;adtype=1" style="position: absolute; bottom: 0px; right: 0px;" width="1" border="0" height="1" /><img src="//dw.cbsi.com/levt/video/e.gif?bitrate=0&amp;blockcntry=&amp;codec=&amp;componentid=9f4fae40de2e11e6a3947d73dcb07f9e&amp;contsessid=&amp;device=type%3Adesktop%3Bos%3Aos%2520x%3Bver%3A10.11%3Bscreensz%3A1440x900&amp;distntwrk=cnet&amp;encodeprfl=&amp;event=play&amp;eventdur=0&amp;gestval=&amp;ip=&amp;mapp=UVPJS%3B1.7.2&amp;medastid=595&amp;medid=&amp;medlength=-1&amp;mednum=1&amp;medrls=&amp;medtime=0&amp;medtitle=&amp;medtype=0&amp;mso=&amp;pageurl=https%3A%2F%2Fwww.cnet.com%2Fnews%2Fzuckerberg-offers-peek-at-facebooks-acquisition-strategies%2F&amp;part=cnet&amp;playerembed=0&amp;playersz=0x0&amp;playertime=11&amp;qosnum=0&amp;recommend=&amp;relsessid=&amp;sdlvrytype=3&amp;siteid=1&amp;sponsored=&amp;srchost=www.cnet.com&amp;subj=&amp;ts=1484820250362&amp;ua=&amp;ursuid=&amp;usrbndwdth=0&amp;v16=9ebac140-de2e-11e6-80be-03a3e80ab46f&amp;v17=tech%20industry&amp;v18=news%2Ctech-industry&amp;v19=article&amp;v20=ca76438a-4f9c-425f-bdb7-a69a7121cef0&amp;v21=desktop%2520web&amp;v22=&amp;v23=cbsicnetglobalsite&amp;v25=anon&amp;v26=&amp;videosz=&amp;volume=0&amp;adastid=43&amp;adbreak=&amp;adid=259895529&amp;adlength=15&amp;adnum=1&amp;adpod=0&amp;adpodpos=1&amp;adpos=pre&amp;adtime=7&amp;adtitle=7HF71V15SE-promos&amp;adtype=1" style="position: absolute; bottom: 0px; right: 0px;" width="1" border="0" height="1" /></div>
+ <ul id="menu_uvpJs_1_player">
+ <li>Playback statistics</li>
+ <li>CBSi Player 1.7.2</li>
+ </ul><iframe id="destination_publishing_iframe_cbsi_undefined" style="display: none; width: 0px; height: 0px;" src="https://cbsi.demdex.net/dest5.html?d_nsid=undefined#https%3A%2F%2Fwww.cnet.com%2Fnews%2Fzuckerberg-offers-peek-at-facebooks-acquisition-strategies%2F" class="aamIframeLoaded"></iframe>
+ <div id="ZN_0xsSFNNsXmogd01"></div><iframe id="google_osd_static_frame_3547234450103" name="google_osd_static_frame" style="display: none; width: 0px; height: 0px;"></iframe><iframe style="margin: 0px; padding: 0px; width: 0px; height: 0px; border: 0px none; overflow: hidden; display: none;" scrolling="no" src="https://sync.teads.tv/iframe?pid=26801&amp;userId=8294a986-ea85-4110-adb5-ba4bf0a49530&amp;1484820252386" frameborder="0"></iframe><span><iframe class="trc-hidden" id="trc-pixel-iframe-9763" name="trc-pixel-iframe-9763" style="display:none" width="0" height="0"></iframe></span>
+ <div id="tbl-aug-wgbmm6" class="trc_popover_aug_container">
+ <div id="tbl-aug-awrsmt" class="trc_popover_aug_container">
+ <div id="tbl-aug-5fmjui" class="trc_popover_aug_container">
+ <div class=" trc_popover trc_popover_fade trc_bottom ">
+ <div class=" trc_popover_arrow "></div><iframe scrolling="no" src="javascript:void(0)" style="width: 100%;" frameborder="0"></iframe></div>
+ </div>
+ </div>
+ </div>
+ <form class="trc-hidden" target="tb-trc-transportFrame-3915" style="display: none;" method="post" action="https://trc.taboola.com/cbsinteractive-cnet/log/3/available"><input name="ri" value="3b2e6ab5ae4cc117de4ce1de078aaa27" type="hidden" /><input name="sd" value="v2_318b3ddad0235c85499a7978f941b9d6_570bc319-bde3-4e97-9b9e-3b1e7cee0d8d_1484820254_1484820254_CNawjgYQ9rE_GOGdvLGbKyABKAE" type="hidden" /><input name="ui" value="570bc319-bde3-4e97-9b9e-3b1e7cee0d8d" type="hidden" /><input name="pi" value="/news/zuckerberg-offers-peek-at-facebooks-acquisition-strategies" type="hidden" /><input name="wi" value="-8701498927067025324" type="hidden" /><input name="pt" value="text" type="hidden" /><input name="vi" value="1484820254433" type="hidden" /><input name="li" value="rbox-t2m" type="hidden" /><input name="utm" value="7,607,1853,3538" type="hidden" /><input name="df" value="1" type="hidden" /><input name="ppb" value="COMH" type="hidden" /><input name="cpb" value="Eg4yNDEtOTMtUkVMRUFTRRjyCyARKhloay50YWJvb2xhc3luZGljYXRpb24uY29tMgh3YXRlcjYzOQ" type="hidden" /><input name="tim" value="18:04:17.387" type="hidden" /><input name="id" value="3915" type="hidden" /><input name="llvl" value="1" type="hidden" /><input name="cv" value="241-93-RELEASE" type="hidden" /><input name="fil" value="[{&quot;tii&quot;:&quot;~~V1~~-893380842433424006~~rhLzuaNqOmnO4rIn0ZHOsSItunY2dpi87v_IfxwvEo8SO_fFkG-bpaW2-qyqBDD669-MlAvAMFXGgJq6zMPUc44ZGylOV7X5ExoRexp9hkQ&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;text&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~798462909385093416~~DyLS1YTpwFu3KimDcSf3Hm3dVppf3Hngoq9scqIJMIcSO_fFkG-bpaW2-qyqBDD6GSP-PCbrrhTbdhjP5-D7LI4ZGylOV7X5ExoRexp9hkQ&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;text&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~-6911648573594303085~~r7cMhFRt-fcjonumxfeo1OPzFJLP9fyVanxUK6rQOYUSO_fFkG-bpaW2-qyqBDD64-U7zNB5r4zu7x_t4vNcKY4ZGylOV7X5ExoRexp9hkQ&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;text&quot;,&quot;tids&quot;:&quot;a&quot;},{&quot;tii&quot;:&quot;~~V1~~2373116301310985151~~OYztXYBqZRMkd8OLbv1r6dWQT6PM09ali7LZGt2tpCUSO_fFkG-bpaW2-qyqBDD62nigSbBKlHqmnhGDhGeZA44ZGylOV7X5ExoRexp9hkQ&quot;,&quot;tipt&quot;:&quot;SP&quot;,&quot;tit&quot;:&quot;text&quot;,&quot;tids&quot;:&quot;a&quot;}]" type="hidden" /></form><span><iframe class="trc-hidden" id="tb-trc-transportFrame-3915" name="tb-trc-transportFrame-3915" style="display:none" width="0" height="0"></iframe></span>
+ <div id="fb-root" class=" fb_reset">
+ <div style="position: absolute; top: -10000px; height: 0px; width: 0px;">
+ <div></div>
+ </div>
+ <div style="position: absolute; top: -10000px; height: 0px; width: 0px;">
+ <div><iframe name="fb_xdm_frame_https" allowtransparency="true" allowfullscreen="true" scrolling="no" id="fb_xdm_frame_https" aria-hidden="true" title="Facebook Cross Domain Communication Frame" tabindex="-1" style="border: medium none;" src="https://staticxx.facebook.com/connect/xd_arbiter/r/qXiJsurHCex.js?version=42#channel=f8f091f0f27e9a&amp;origin=https%3A%2F%2Fwww.cnet.com" frameborder="0"></iframe></div>
+ </div>
+ </div>
+ <div id="flyoutPromo" class="col-4">
+ <div class="closeFlyoutPromo" data-close="flyout-promo">
+ Close
+ </div>
+ <div class="flyoutHeader">BECOME A CNET MEMBER FOR FREE!</div>
+
+ <div class="normal-authenticate">
+ <p class="flyoutContent">Share your ideas with the community, receive exclusive offers for sweeps and events, and get the latest news, reviews and how-tos in your inbox.</p>
+ <button class="btn btn-link btn-margin" data-user-show="{&quot;action&quot;:&quot;register&quot;,&quot;params&quot;:{&quot;appId&quot;:376}}">GET STARTED</button>
+ <a class="user-close" data-close="flyout-promo">No, thanks.</a>
+ </div>
+
+ <div class="social-authenticate">
+ <form data-component="formValidate" novalidate="novalidate">
+ <h2>Quickly sign up with:</h2>
+
+ <div class="social-site facebook" data-user-social="{&quot;socialSite&quot;:&quot;facebook&quot;,&quot;action&quot;:&quot;register&quot;,&quot;params&quot;:{&quot;appId&quot;:376}}">
+ <span class="logo">Facebook</span>
+ </div>
+
+ <div class="agree">
+ <label>
+ <input id="user_tos" name="user[tos]" required="required" value="1" type="checkbox" /><p>I have read and agree to the CBS Interactive <a href="http://legalterms.cbsinteractive.com/terms-of-use" target="_blank">Terms of Use</a> and <a href="http://legalterms.cbsinteractive.com/privacy" target="_blank">Privacy Policy</a>. I understand I will receive the CNET Insider, How To and Smart Home newsletters (you can opt out at any time).</p>
+ </label>
+ </div>
+ </form>
+ </div>
+ </div>
+ </body>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnn/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnn/expected-images.json
new file mode 100644
index 000000000..93a8c3360
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnn/expected-images.json
@@ -0,0 +1,3 @@
+[
+ "http:\/\/i2.cdn.turner.com\/money\/dam\/assets\/141103182938-income-inequality-780x439.png"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnn/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnn/expected-metadata.json
new file mode 100644
index 000000000..46a71fa8d
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnn/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "Ahiza Garcia",
+ "Direction": null,
+ "Excerpt": "A recently-released report on poverty and inequality found that the U.S. ranks the lowest among countries with welfare states.",
+ "Image": "http:\/\/i2.cdn.turner.com\/money\/dam\/assets\/141103182938-income-inequality-780x439.png",
+ "Title": "The 'birth lottery' and economic mobility",
+ "SiteName": "CNNMoney"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnn/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnn/expected.html
new file mode 100644
index 000000000..552455fe8
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnn/expected.html
@@ -0,0 +1,51 @@
+<div id="storytext">
+
+
+ <h2>The U.S. has long been heralded as a land of opportunity -- a place where anyone can succeed regardless of the economic class they were born into.</h2>
+ <p> But a new report released on Monday by <a href="http://web.stanford.edu/group/scspi-dev/cgi-bin/" target="_blank">Stanford University's Center on Poverty and Inequality</a> calls that into question. </p>
+
+ <p> The report assessed poverty levels, income and wealth inequality, economic mobility and unemployment levels among 10 wealthy countries with social welfare programs. </p>
+ <div id="smartassetcontainer">
+ <div>
+ <div>
+ <div id="smartasset-article">
+ <div>
+ <p>
+ Powered by SmartAsset.com
+ </p>
+
+
+
+
+
+
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <p> Among its key findings: the class you're born into matters much more in the U.S. than many of the other countries. </p>
+ <p> As the <a href="http://web.stanford.edu/group/scspi-dev/cgi-bin/publications/state-union-report" target="_blank">report states</a>: "[T]he birth lottery matters more in the U.S. than in most well-off countries." </p>
+
+ <p> But this wasn't the only finding that suggests the U.S. isn't quite living up to its reputation as a country where everyone has an equal chance to get ahead through sheer will and hard work. </p>
+ <p> <a href="http://money.cnn.com/2016/01/11/news/economy/rich-taxes/index.html?iid=EL"><span>Related: Rich are paying more in taxes but not as much as they used to</span></a> </p>
+
+ <p> The report also suggested the U.S. might not be the "jobs machine" it thinks it is, when compared to other countries. </p>
+ <p> It ranked near the bottom of the pack based on the levels of unemployment among men and women of prime working age. The study determined this by taking the ratio of employed men and women between the ages of 25 and 54 compared to the total population of each country. </p>
+ <p> The overall rankings of the countries were as follows:<span> <br></br>1. Finland <span> <br></br>2. Norway<span> <br></br>3. Australia <span> <br></br>4. Canada<span> <br></br>5. Germany<span> <br></br>6. France<span> <br></br>7. United Kingdom <span> <br></br>8. Italy<span> <br></br>9. Spain<span> <br></br>10. United States </span></span>
+ </span>
+ </span>
+ </span>
+ </span>
+ </span>
+ </span>
+ </span>
+ </span>
+ </p>
+ <p> The low ranking the U.S. received was due to its extreme levels of wealth and income inequality and the ineffectiveness of its "safety net" -- social programs aimed at reducing poverty. </p>
+ <p> <a href="http://money.cnn.com/2016/01/05/news/economy/chicago-segregated/index.html?iid=EL"><span>Related: Chicago is America's most segregated city</span></a> </p>
+ <p> The report concluded that the American safety net was ineffective because it provides only half the financial help people need. Additionally, the levels of assistance in the U.S. are generally lower than in other countries. </p>
+
+
+ <p><span> CNNMoney (New York) </span> <span>First published February 1, 2016: 1:28 AM ET</span> </p>
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnn/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnn/source.html
new file mode 100644
index 000000000..a4950a147
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/cnn/source.html
@@ -0,0 +1,4190 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+ <script type="text/javascript" src="http://cdn.krxd.net/userdata/get?pub=e9eaedd3-c1da-4334-82f0-d7e3ff883c87&amp;technographics=1&amp;callback=Krux.ns._default.kxjsonp_userdata"></script>
+ <script type="text/javascript" src="http://beacon.krxd.net/optout_check?callback=Krux.ns._default.kxjsonp_optOutCheck"></script>
+ <script async="" src="https://cdn.teads.tv/media/format/v3/teads-format.min.js?201712516"></script>
+ <script src="http://pagead2.googlesyndication.com/pagead/osd.js"></script>
+ <script type="text/javascript" src="http://odb.outbrain.com/utils/get?url=http%3A%2F%2Fmoney.cnn.com%2F2016%2F02%2F01%2Fnews%2Feconomy%2Fpoverty-inequality-united-states%2Findex.html&amp;settings=true&amp;recs=true&amp;widgetJSId=AR_11&amp;key=NANOWDGT01&amp;idx=0&amp;version=01001301&amp;ref=&amp;apv=false&amp;sig=pco6Hqth&amp;format=html&amp;rand=42826&amp;winW=1280&amp;winH=685&amp;adblck=false" charset="UTF-8" async=""></script>
+ <script src="//s.cdn.turner.com/analytics/comscore/streamsense.5.2.0.160629.min.js"></script>
+ <script type="text/javascript" async="" src="//ml314.com/tag.aspx?2502017"></script>
+ <script type="text/javascript" async="" src="http://aax.amazon-adsystem.com/e/dtb/bid?src=3159&amp;u=http%3A%2F%2Fmoney.cnn.com%2F2016%2F02%2F01%2Fnews%2Feconomy%2Fpoverty-inequality-united-states%2Findex.html&amp;cb=1738745&amp;t=1000"></script>
+ <script type="text/javascript" async="" src="http://rtax.criteo.com/delivery/rta/rta.js?netId=4157&amp;cookieName=crtg_trnr&amp;rnd=53464413671&amp;varName=crtg_content"></script>
+ <script id="twitter-wjs" src="//platform.twitter.com/widgets.js"></script>
+ <script id="facebook-jssdk" src="//connect.facebook.net/en_US/sdk.js"></script>
+ <script type="text/javascript" id="async-buttons" src="http://w.sharethis.com/button/async-buttons.js"></script>
+ <script src="http://pixel.quantserve.com/aquant.js?a=p-D1yc5zQgjmqr5" async="" type="text/javascript"></script>
+ <script type="text/javascript" src="http://beacon.krxd.net/cookie2json?callback=Krux.ns._default.kxjsonp_3pevents"></script>
+ <script async="" src="//cdn.krxd.net/ctjs/controltag.js.836fa2cc8007bb6234a5da3cc5415177"></script>
+ <script type="text/javascript" async="" src="http://nexus.ensighten.com/turner/money-prod/code/6b83967578ba7f85f04a5c2c75835bc9.js?conditionId0=462898"></script>
+ <script src="http://nexus.ensighten.com/turner/money-prod/serverComponent.php?r=8960.530516705317&amp;ClientID=1511&amp;PageID=http%3A%2F%2Fmoney.cnn.com%2F2016%2F02%2F01%2Fnews%2Feconomy%2Fpoverty-inequality-united-states%2Findex.html"></script>
+ <meta name="viewport" content="width=1140" />
+ <title>The 'birth lottery' and economic mobility - Feb. 1, 2016 </title>
+ <link rel="image_src" href="http://i2.cdn.turner.com/money/dam/assets/141103182938-income-inequality-780x439.png" />
+ <link rel="canonical" href="http://money.cnn.com/2016/02/01/news/economy/poverty-inequality-united-states/index.html" />
+ <link rel="shortlink" href="http://cnnmon.ie/1SSExWC" />
+ <meta name="date" content="2016-02-01 01:28:49" />
+ <meta name="title" content="The 'birth lottery' and economic mobility " />
+ <meta name="description" content="A recently-released report on poverty and inequality found that the U.S. ranks the lowest among countries with welfare states." />
+ <meta name="keywords" content="U.S. , poverty , inequality, welfare state, countries, wealthy, ranking, report, Stanford Center on Povery &amp; Inequality, 2016" />
+ <meta name="news_keywords" content="U.S. , poverty , inequality, welfare state, countries, wealthy, ranking, report, Stanford Center on Povery &amp; Inequality, 2016" />
+ <meta name="author" content="Ahiza Garcia" />
+ <meta name="section" content="news" />
+ <meta name="subsection" content="economy" />
+ <meta property="og:title" content="The 'birth lottery' and economic mobility " />
+ <meta property="og:type" content="article" />
+ <meta property="og:url" content="http://money.cnn.com/2016/02/01/news/economy/poverty-inequality-united-states/index.html" />
+ <meta property="og:image" content="http://i2.cdn.turner.com/money/dam/assets/141103182938-income-inequality-780x439.png" />
+ <meta property="og:site_name" content="CNNMoney" />
+ <meta property="og:description" content="A recently-released report on poverty and inequality found that the U.S. ranks the lowest among countries with welfare states." />
+ <meta property="fb:app_id" content="521848191196480" />
+ <meta name="twitter:card" content="summary_large_image" />
+ <meta name="twitter:site" content="@CNNMoney" />
+ <meta name="twitter:url" content="http://money.cnn.com/2016/02/01/news/economy/poverty-inequality-united-states/index.html" />
+ <meta name="twitter:title" content="The 'birth lottery' and economic mobility " />
+ <meta name="twitter:description" content="A recently-released report on poverty and inequality found that the U.S. ranks the lowest among countries with welfare states." />
+ <meta name="twitter:image" content="http://i2.cdn.turner.com/money/dam/assets/141103182938-income-inequality-540x304.png" />
+ <meta name="DC.date.issued" content="2016-02-01T01:28:49" />
+ <meta property="vr:type" content="Article" />
+ <meta property="vr:category" content="economy" />
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
+ <link rel="stylesheet" type="text/css" href="http://z.cdn.turner.com/money/tmpl_asset/static/style/2260/css/cnnm-ocean.story-min.css" /> <iframe src="javascript:void(0)" title="" style="width: 0px; height: 0px; border: 0px none; display: none;"></iframe>
+ <script type="text/javascript" async="" src="http://smartasset.com/embed.js"></script>
+ <script type="text/javascript" src="http://contextual.media.net/dmedianet.js?cid=8CUS8896N" async=""></script>
+ <script type="text/javascript" async="" src="http://smartasset.com/embed.js"></script>
+ <script type="text/javascript" src="http://www.googletagservices.com/tag/js/gpt.js"></script>
+ <script type="text/javascript" async="" src="http://cdn.krxd.net/controltag?confid=IWzCuclz"></script>
+ <script type="text/javascript" async="" src="http://www.ugdturner.com/xd.sjs"></script>
+ <script type="text/javascript" async="" src="http://c.amazon-adsystem.com/aax2/amzn_ads.js"></script>
+ <script async="" src="//connect.facebook.net/en_US/fbevents.js"></script>
+ <script async="" src="http://a.visualrevenue.com/vrs.js"></script>
+ <script type="text/javascript" src="http://z.cdn.turner.com/money/tmpl_asset/static/script/1455/js/cnnmoney.main-min.js"></script>
+ <script type="text/javascript" src="http://z.cdn.turner.com/money/.e/script/jquery/1.11.1/jquery.min.js"></script>
+ <script type="text/javascript" src="http://z.cdn.turner.com/money/.e/script/jquery.migrate/jquery.migrate.min.js"></script>
+ <script language="JavaScript" type="text/javascript">
+ var cnnSiteWideCurrDate = new Date(2014, 11, 4);
+ </script>
+ <!--[if lt IE 9]>
+<script src = "http://z.cdn.turner.com/money/.element/script/html5shiv/3.7.0/html5shiv.js"> </script>
+<![endif]-->
+
+ <!--// Optimizely script include //-->
+ <script src="//cdn.optimizely.com/js/59492907.js">
+ </script>
+
+ <!--// Outbrain VR: generic //-->
+ <script type="text/javascript">
+ var _vrq_automate = false;
+ /* Home and international pages */
+ var _vrq_pathname = location.pathname.toLowerCase();
+ if (location.pathname == '/' || location.pathname == '/index.html' || (_vrq_pathname.match('news/world') != null) || (_vrq_pathname.match('/international') != null)) {
+ _vrq_automate = true;
+ }
+ var _vrq = _vrq || [];
+ _vrq.push(['id', 454]);
+ _vrq.push(['automate', _vrq_automate]);
+ _vrq.push(['track',
+ function() {}
+ ]);
+ (function(d, a) {
+ var s = d.createElement(a),
+ x = d.getElementsByTagName(a)[0];
+ s.async = true;
+ s.src = 'http://a.visualrevenue.com/vrs.js';
+ x.parentNode.insertBefore(s, x);
+ })(document, 'script');
+
+ /** HOT FIX HACK **/
+ _vrtrack = function(Object) {};
+ </script>
+
+
+
+ <style>
+ .cmmtcount {
+ display: none;
+ }
+ </style>
+
+ <!--// MSIB SDK for login //-->
+ <script type="text/javascript">
+ if (window.location.hostname.match(/^money.cnn.com$/i)) {
+ document.write(' &lt;scr' + 'ipt src="https://s.cdn.turner.com/money/.element/script/msib/msib_sdk.min.js"&gt;&lt;/scr' + 'ipt&gt;');
+ } else {
+ /* document.write(' &lt;scr' + 'ipt src="http://aud-qai.cnn.com/services/money/sdk/msib_sdk.js"&gt;&lt;/scr' + 'ipt&gt;'); */
+ document.write(' &lt;scr' + 'ipt src="https://s.cdn.turner.com/money/.element/script/msib/msib_sdk.min.js"&gt;&lt;/scr' + 'ipt&gt;');
+ }
+ </script>
+ <script src="https://s.cdn.turner.com/money/.element/script/msib/msib_sdk.min.js"></script>
+
+ <!-- Facebook Custom Audience Pixel Code -->
+ <script>
+ ! function(f, b, e, v, n, t, s) {
+ if (f.fbq) return;
+ n = f.fbq = function() {
+ n.callMethod ?
+ n.callMethod.apply(n, arguments) : n.queue.push(arguments)
+ };
+ if (!f._fbq) f._fbq = n;
+ n.push = n;
+ n.loaded = !0;
+ n.version = '2.0';
+ n.queue = [];
+ t = b.createElement(e);
+ t.async = !0;
+ t.src = v;
+ s = b.getElementsByTagName(e)[0];
+ s.parentNode.insertBefore(t, s)
+ }(window,
+ document, 'script', '//connect.facebook.net/en_US/fbevents.js');
+
+ fbq('init', '687168111412131');
+ fbq('track', "PageView");
+ </script>
+ <noscript>&lt;img height="1" width="1" style="display:none"
+src="https://www.facebook.com/tr?id=687168111412131&amp;ev=PageView&amp;noscript=1"
+/&gt;</noscript>
+ <!-- End Facebook Custom Audience Pixel Code -->
+
+
+ <!-- MNYGEN-6523: mPulse -->
+ <script>
+ (function() {
+ if (window.BOOMR & amp; & amp; window.BOOMR.version) {
+ return;
+ }
+ var dom, doc, where, iframe = document.createElement("iframe"),
+ win = window;
+
+ function boomerangSaveLoadTime(e) {
+ win.BOOMR_onload = (e & amp; & amp; e.timeStamp) || new Date().getTime();
+ }
+ if (win.addEventListener) {
+ win.addEventListener("load", boomerangSaveLoadTime, false);
+ } else if (win.attachEvent) {
+ win.attachEvent("onload", boomerangSaveLoadTime);
+ }
+
+ iframe.src = "javascript:void(0)";
+ iframe.title = "";
+ iframe.role = "presentation";
+ (iframe.frameElement || iframe).style.cssText = "width:0;height:0;border:0;display:none;";
+ where = document.getElementsByTagName("script")[0];
+ where.parentNode.insertBefore(iframe, where);
+
+ try {
+ doc = iframe.contentWindow.document;
+ } catch (e) {
+ dom = document.domain;
+ iframe.src = "javascript:var d=document.open();d.domain='" + dom + "';void(0);";
+ doc = iframe.contentWindow.document;
+ }
+ doc.open()._l = function() {
+ var js = this.createElement("script");
+ if (dom) {
+ this.domain = dom;
+ }
+ js.id = "boomr-if-as";
+ js.src = "//c.go-mpulse.net/boomerang/" +
+ "VQUZM-ZM9PY-YXUX2-SMCUL-QHMKQ";
+ BOOMR_lstart = new Date().getTime();
+ this.body.appendChild(js);
+ };
+ doc.write('&lt;body onload="document._l();"&gt;');
+ doc.close();
+ })();
+ </script>
+ <!-- /MNYGEN-6523: mPulse -->
+
+ <script type="text/javascript">
+ var cnnActivePlayer = null;
+ var cnnPlayers = [];
+ var vidConfig = [];
+ </script>
+ <script type="text/javascript">
+ var _sf_startpt = (new Date()).getTime();
+ document.adoffset = 0;
+ </script>
+ <script type="text/javascript" src="http://i.cdn.turner.com/ads/adfuel/ais/cnn_money-ais.js"></script>
+ <script type="text/javascript" async="" src="http://ads.rubiconproject.com/header/11016.js"></script>
+ <script type="text/javascript" src="http://i.cdn.turner.com/ads/adfuel/adfuel-1.1.2.js"></script>
+ <script type="text/javascript" src="//nexus.ensighten.com/turner/money-prod/Bootstrap.js"></script>
+ <script>
+ var CNNMONEY = window.CNNMONEY || {};
+ CNNMONEY.adTargets = {};
+
+ if (document.referrer.match("edition|us|www.cnn.com")) {
+ CNNMONEY.adTargets.refdom = "cnn";
+ } else if (document.referrer.match("money.cnn.com")) {
+ CNNMONEY.adTargets.refdom = "money";
+ } else if (document.referrer.match("facebook.com")) {
+ CNNMONEY.adTargets.refdom = "facebook";
+ } else if (document.referrer.match("twitter.com") || document.referrer.match("/t.co/")) {
+ CNNMONEY.adTargets.refdom = "twitter";
+ } else if (document.referrer.match("google.com")) {
+ CNNMONEY.adTargets.refdom = "google";
+ } else {
+ CNNMONEY.adTargets.refdom = "other";
+ }
+ </script>
+ <script type="text/javascript">
+ CNNMONEY.adTargets.c_type = 'article';
+ CNNMONEY.adTargets.spec = 'american_opportunity';
+ </script>
+ <script src="http://i.cdn.turner.com/ads/cnn_money/cnnmoney_economy.js"></script>
+ <script src="https://securepubads.g.doubleclick.net/gpt/pubads_impl_108.js" async=""></script>
+ <link rel="dns-prefetch" href="//optimized-by.rubiconproject.com/" />
+ <link rel="prefetch" href="http://tpc.googlesyndication.com/safeframe/1-0-5/html/container.html" />
+ <script type="text/javascript" async="" src="http://segment-data-us-east.zqtk.net/turner-47fcf6?url=http%3A%2F%2Fmoney.cnn.com%2F2016%2F02%2F01%2Fnews%2Feconomy%2Fpoverty-inequality-united-states%2Findex.html"></script>
+ <style type="text/css">
+ #mc_embed_signup input.mce_inline_error {
+ border-color: #6B0505;
+ }
+
+ #mc_embed_signup div.mce_inline_error {
+ margin: 0 0 1em 0;
+ padding: 5px 10px;
+ background-color: #6B0505;
+ font-weight: bold;
+ z-index: 1;
+ color: #fff;
+ }
+ </style>
+ <script type="text/javascript" async="" src="//r.skimresources.com/api/?callback=skimlinksApplyHandlers&amp;data=%7B%22pubcode%22%3A%2287768X1540669%22%2C%22domains%22%3A%5B%22edition.cnn.com%22%2C%22twitter.com%22%2C%22web.stanford.edu%22%2C%22indeed.com%22%2C%22nextadvisor.com%22%2C%22facebook.com%22%2C%22linkedin.com%22%2C%22cnnmoneytech.tumblr.com%22%2C%22plus.google.com%22%5D%2C%22page%22%3A%22http%3A%2F%2Fmoney.cnn.com%2F2016%2F02%2F01%2Fnews%2Feconomy%2Fpoverty-inequality-united-states%2Findex.html%22%7D"></script>
+ <div id="linkedin_script">
+ <script type="text/javascript" src="http://platform.linkedin.com/in.js"></script>
+ </div>
+ <script type="text/javascript" async="" src="//r.skimresources.com/api/?callback=skimlinksApplySecondaryHandlers&amp;data=%7B%22pubcode%22%3A%2287768X1540669%22%2C%22domains%22%3A%5B%22pinterest.com%22%2C%22stumbleupon.com%22%2C%22reddit.com%22%2C%22smartasset.com%22%5D%2C%22page%22%3A%22http%3A%2F%2Fmoney.cnn.com%2F2016%2F02%2F01%2Fnews%2Feconomy%2Fpoverty-inequality-united-states%2Findex.html%22%7D"></script>
+ <script src="https://platform.linkedin.com/js/secureAnonymousFramework?v=0.0.2000-RC8.59485-1429&amp;"></script>
+ <link rel="stylesheet" type="text/css" href="http://w.sharethis.com/button/css/buttons.e80452d5e7cc382dad89d10f50bde247.css" />
+ <link href="http://z.cdn.turner.com/money/tmpl_asset/static/style/2260/css/cnnm-ocean.members.services-min.css" rel="stylesheet" id="js-ms-form-styles" /><iframe id="stSegmentFrame" name="stSegmentFrame" scrolling="no" sandbox="allow-scripts allow-same-origin" style="display:none;" width="0px" height="0px" frameborder="0"></iframe>
+ <link rel="stylesheet" type="text/css" href="https://cdn.teads.tv/media/format/v3/teads-format.css" />
+ <style>
+ div.teads-inread div.teads-ui-components-label,
+ div.teads-inboard div.teads-ui-components-label,
+ div.teads-expand div.teads-ui-components-label {
+ font-family: 'Helvetica', Arial, sans-serif !important;
+ font-size: 11.5px !important;
+ color: #aaa;
+ text-align: center !important;
+ /*padding: 3px 0;*/
+ text-transform: uppercase !important;
+ height: 21px !important;
+ line-height: 21px !important;
+ letter-spacing: 0.3px !important;
+ font-weight: 300 !important;
+ }
+
+ div.teads-inread div.teads-ui-components-label::before,
+ div.teads-inboard div.teads-ui-components-label::before,
+ div.teads-impact div.teads-ui-components-label::before,
+ div.teads-inread div.teads-ui-components-label::after,
+ div.teads-inboard div.teads-ui-components-label::after,
+ div.teads-impact div.teads-ui-components-label::after {
+ display: none !important;
+ }
+
+ div.teads-inread.sm-screen div.teads-ui-components-label,
+ div.teads-inread.xs-screen div.teads-ui-components-label,
+ div.teads-inboard.sm-screen div.teads-ui-components-label,
+ div.teads-inboard.xs-screen div.teads-ui-components-label {
+ font-size: 10px !important;
+ }
+ </style>
+ <style>
+ div.teads-inread div.teads-ui-components-credits,
+ div.teads-inboard div.teads-ui-components-credits,
+ div.teads-expand div.teads-ui-components-credits {
+ font-family: 'Helvetica', Arial, sans-serif !important;
+ font-size: 11.5px !important;
+ color: #aaa !important;
+ text-align: right !important;
+ padding: 1px 0 !important;
+ height: 26px !important;
+ line-height: 26px !important;
+ padding-right: 4px !important;
+ letter-spacing: 0.3px !important;
+ }
+
+ div.teads-inread div.teads-ui-components-credits a span,
+ div.teads-inboard div.teads-ui-components-credits a span,
+ div.teads-expand div.teads-ui-components-credits a span {
+ display: inline !important;
+ }
+
+ div.teads-inread div.teads-ui-components-credits a span,
+ div.teads-inboard div.teads-ui-components-credits a span,
+ div.teads-expand div.teads-ui-components-credits a span,
+ div.teads-inread div.teads-ui-components-credits a,
+ div.teads-inboard div.teads-ui-components-credits a,
+ div.teads-expand div.teads-ui-components-credits a {
+ font-family: 'Helvetica', Arial, sans-serif !important;
+ font-size: 11.5px !important;
+ box-shadow: none !important;
+ letter-spacing: 0.3px !important;
+ }
+
+ div.teads-inread.sm-screen div.teads-ui-components-credits a span,
+ div.teads-inboard.sm-screen div.teads-ui-components-credits a span,
+ div.teads-expand.sm-screen div.teads-ui-components-credits a span,
+ div.teads-inread.sm-screen div.teads-ui-components-credits a,
+ div.teads-inboard.sm-screen div.teads-ui-components-credits a,
+ div.teads-expand.sm-screen div.teads-ui-components-credits a,
+ div.teads-inread.xs-screen div.teads-ui-components-credits a span,
+ div.teads-inboard.xs-screen div.teads-ui-components-credits a span,
+ div.teads-expand.xs-screen div.teads-ui-components-credits a span,
+ div.teads-inread.xs-screen div.teads-ui-components-credits a,
+ div.teads-inboard.xs-screen div.teads-ui-components-credits a,
+ div.teads-expand.xs-screen div.teads-ui-components-credits a {
+ font-family: 'Helvetica', Arial, sans-serif !important;
+ font-size: 9px !important;
+ box-shadow: none !important;
+ letter-spacing: 0.3px !important;
+ }
+
+ div.teads-inread.sm-screen div.teads-ui-components-credits,
+ div.teads-inboard.xs-screen div.teads-ui-components-credits {
+ font-size: 9px !important;
+ letter-spacing: 0.3px !important;
+ }
+
+ div.teads-inread .teads-ui-components-credits a,
+ div.teads-inboard .teads-ui-components-credits a,
+ div.teads-expand .teads-ui-components-credits a {
+ color: #aaa !important;
+ text-decoration: none !important;
+ font-weight: 300 !important;
+ border: none !important;
+ letter-spacing: 0.3px !important;
+ /*
+ * From @jean-pierre.colomb comment on https://jira.teads.net/browse/TT-4076
+ * The gqjapan.jp website overrides &lt;a&gt; properties to add 2 orange squares
+ * which affects the credits link
+ */
+ background: none !important;
+ padding: 0 !important;
+ }
+
+ div.teads-inread.sm-screen .teads-ui-components-credits a,
+ div.teads-inboard.sm-screen .teads-ui-components-credits a,
+ div.teads-expand.sm-screen .teads-ui-components-credits a,
+ div.teads-inread.xs-screen .teads-ui-components-credits a,
+ div.teads-inboard.xs-screen .teads-ui-components-credits a,
+ div.teads-expand.xs-screen .teads-ui-components-credits a {
+ font-size: 9px !important;
+ letter-spacing: 0.3px !important;
+ }
+
+ div.teads-inread div.teads-ui-components-credits span.teads-ui-components-credits-colored,
+ div.teads-inboard div.teads-ui-components-credits span.teads-ui-components-credits-colored,
+ div.teads-expand div.teads-ui-components-credits span.teads-ui-components-credits-colored {
+ color: #79BBE9 !important;
+ }
+
+ div.teads-inread div.teads-ui-components-credits span::before,
+ div.teads-inboard div.teads-ui-components-credits span::before,
+ div.teads-impact div.teads-ui-components-credits span::before,
+ div.teads-inread div.teads-ui-components-credits span::after,
+ div.teads-inboard div.teads-ui-components-credits span::after,
+ div.teads-impact div.teads-ui-components-credits span::after {
+ display: none !important;
+ }
+
+ div.teads-inread div.teads-ui-components-credits a::before,
+ div.teads-inboard div.teads-ui-components-credits a::before,
+ div.teads-impact div.teads-ui-components-credits a::before,
+ div.teads-inread div.teads-ui-components-credits a::after,
+ div.teads-inboard div.teads-ui-components-credits a::after,
+ div.teads-impact div.teads-ui-components-credits a::after {
+ display: none !important;
+ }
+ </style>
+ <script async="" type="text/javascript" charset="UTF-8" src="http://gscounters.us1.gigya.com/gscounters.sendReport?reports=%5B%7B%22name%22%3A%22loadc%22%2C%22time%22%3A%221485333489121%22%2C%22reportData%22%3A%7B%22sref%22%3A%22%22%7D%7D%5D&amp;APIKey=3_gtUbleJNtrRITgx-1mM_ci7GcIrH8xL9W_VfAbzSa4zpFrRwnpq_eYd8QTRkr7VC&amp;sdk=js_6.5.40&amp;format=jsonp&amp;callback=gigya._.apiAdapters.web.callback&amp;context=R4025602799"></script>
+ <style type="text/css">
+ .fb_hidden {
+ position: absolute;
+ top: -10000px;
+ z-index: 10001
+ }
+
+ .fb_reposition {
+ overflow: hidden;
+ position: relative
+ }
+
+ .fb_invisible {
+ display: none
+ }
+
+ .fb_reset {
+ background: none;
+ border: 0;
+ border-spacing: 0;
+ color: #000;
+ cursor: auto;
+ direction: ltr;
+ font-family: "lucida grande", tahoma, verdana, arial, sans-serif;
+ font-size: 11px;
+ font-style: normal;
+ font-variant: normal;
+ font-weight: normal;
+ letter-spacing: normal;
+ line-height: 1;
+ margin: 0;
+ overflow: visible;
+ padding: 0;
+ text-align: left;
+ text-decoration: none;
+ text-indent: 0;
+ text-shadow: none;
+ text-transform: none;
+ visibility: visible;
+ white-space: normal;
+ word-spacing: normal
+ }
+
+ .fb_reset&gt;
+ div {
+ overflow: hidden
+ }
+
+ .fb_link img {
+ border: none
+ }
+
+ @keyframes fb_transform {
+ from {
+ opacity: 0;
+ transform: scale(.95)
+ }
+ to {
+ opacity: 1;
+ transform: scale(1)
+ }
+ }
+
+ .fb_animate {
+ animation: fb_transform .3s forwards
+ }
+
+ .fb_dialog {
+ background: rgba(82, 82, 82, .7);
+ position: absolute;
+ top: -10000px;
+ z-index: 10001
+ }
+
+ .fb_reset .fb_dialog_legacy {
+ overflow: visible
+ }
+
+ .fb_dialog_advanced {
+ padding: 10px;
+ -moz-border-radius: 8px;
+ -webkit-border-radius: 8px;
+ border-radius: 8px
+ }
+
+ .fb_dialog_content {
+ background: #fff;
+ color: #333
+ }
+
+ .fb_dialog_close_icon {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/yq/r/IE9JII6Z1Ys.png) no-repeat scroll 0 0 transparent;
+ _background-image: url(https://static.xx.fbcdn.net/rsrc.php/v3/yL/r/s816eWC-2sl.gif);
+ cursor: pointer;
+ display: block;
+ height: 15px;
+ position: absolute;
+ right: 18px;
+ top: 17px;
+ width: 15px
+ }
+
+ .fb_dialog_mobile .fb_dialog_close_icon {
+ top: 5px;
+ left: 5px;
+ right: auto
+ }
+
+ .fb_dialog_padding {
+ background-color: transparent;
+ position: absolute;
+ width: 1px;
+ z-index: -1
+ }
+
+ .fb_dialog_close_icon:hover {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/yq/r/IE9JII6Z1Ys.png) no-repeat scroll 0 -15px transparent;
+ _background-image: url(https://static.xx.fbcdn.net/rsrc.php/v3/yL/r/s816eWC-2sl.gif)
+ }
+
+ .fb_dialog_close_icon:active {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/yq/r/IE9JII6Z1Ys.png) no-repeat scroll 0 -30px transparent;
+ _background-image: url(https://static.xx.fbcdn.net/rsrc.php/v3/yL/r/s816eWC-2sl.gif)
+ }
+
+ .fb_dialog_loader {
+ background-color: #f6f7f9;
+ border: 1px solid #606060;
+ font-size: 24px;
+ padding: 20px
+ }
+
+ .fb_dialog_top_left,
+ .fb_dialog_top_right,
+ .fb_dialog_bottom_left,
+ .fb_dialog_bottom_right {
+ height: 10px;
+ width: 10px;
+ overflow: hidden;
+ position: absolute
+ }
+
+ .fb_dialog_top_left {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/ye/r/8YeTNIlTZjm.png) no-repeat 0 0;
+ left: -10px;
+ top: -10px
+ }
+
+ .fb_dialog_top_right {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/ye/r/8YeTNIlTZjm.png) no-repeat 0 -10px;
+ right: -10px;
+ top: -10px
+ }
+
+ .fb_dialog_bottom_left {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/ye/r/8YeTNIlTZjm.png) no-repeat 0 -20px;
+ bottom: -10px;
+ left: -10px
+ }
+
+ .fb_dialog_bottom_right {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/ye/r/8YeTNIlTZjm.png) no-repeat 0 -30px;
+ right: -10px;
+ bottom: -10px
+ }
+
+ .fb_dialog_vert_left,
+ .fb_dialog_vert_right,
+ .fb_dialog_horiz_top,
+ .fb_dialog_horiz_bottom {
+ position: absolute;
+ background: #525252;
+ filter: alpha(opacity=70);
+ opacity: .7
+ }
+
+ .fb_dialog_vert_left,
+ .fb_dialog_vert_right {
+ width: 10px;
+ height: 100%
+ }
+
+ .fb_dialog_vert_left {
+ margin-left: -10px
+ }
+
+ .fb_dialog_vert_right {
+ right: 0;
+ margin-right: -10px
+ }
+
+ .fb_dialog_horiz_top,
+ .fb_dialog_horiz_bottom {
+ width: 100%;
+ height: 10px
+ }
+
+ .fb_dialog_horiz_top {
+ margin-top: -10px
+ }
+
+ .fb_dialog_horiz_bottom {
+ bottom: 0;
+ margin-bottom: -10px
+ }
+
+ .fb_dialog_iframe {
+ line-height: 0
+ }
+
+ .fb_dialog_content .dialog_title {
+ background: #6d84b4;
+ border: 1px solid #365899;
+ color: #fff;
+ font-size: 14px;
+ font-weight: bold;
+ margin: 0
+ }
+
+ .fb_dialog_content .dialog_title&gt;
+ span {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/yd/r/Cou7n-nqK52.gif) no-repeat 5px 50%;
+ float: left;
+ padding: 5px 0 7px 26px
+ }
+
+ body.fb_hidden {
+ -webkit-transform: none;
+ height: 100%;
+ margin: 0;
+ overflow: visible;
+ position: absolute;
+ top: -10000px;
+ left: 0;
+ width: 100%
+ }
+
+ .fb_dialog.fb_dialog_mobile.loading {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/ya/r/3rhSv5V8j3o.gif) white no-repeat 50% 50%;
+ min-height: 100%;
+ min-width: 100%;
+ overflow: hidden;
+ position: absolute;
+ top: 0;
+ z-index: 10001
+ }
+
+ .fb_dialog.fb_dialog_mobile.loading.centered {
+ width: auto;
+ height: auto;
+ min-height: initial;
+ min-width: initial;
+ background: none
+ }
+
+ .fb_dialog.fb_dialog_mobile.loading.centered #fb_dialog_loader_spinner {
+ width: 100%
+ }
+
+ .fb_dialog.fb_dialog_mobile.loading.centered .fb_dialog_content {
+ background: none
+ }
+
+ .loading.centered #fb_dialog_loader_close {
+ color: #fff;
+ display: block;
+ padding-top: 20px;
+ clear: both;
+ font-size: 18px
+ }
+
+ #fb-root #fb_dialog_ipad_overlay {
+ background: rgba(0, 0, 0, .45);
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ top: 0;
+ width: 100%;
+ min-height: 100%;
+ z-index: 10000
+ }
+
+ #fb-root #fb_dialog_ipad_overlay.hidden {
+ display: none
+ }
+
+ .fb_dialog.fb_dialog_mobile.loading iframe {
+ visibility: hidden
+ }
+
+ .fb_dialog_content .dialog_header {
+ -webkit-box-shadow: white 0 1px 1px -1px inset;
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#738ABA), to(#2C4987));
+ border-bottom: 1px solid;
+ border-color: #1d4088;
+ color: #fff;
+ font: 14px Helvetica, sans-serif;
+ font-weight: bold;
+ text-overflow: ellipsis;
+ text-shadow: rgba(0, 30, 84, .296875) 0 -1px 0;
+ vertical-align: middle;
+ white-space: nowrap
+ }
+
+ .fb_dialog_content .dialog_header table {
+ -webkit-font-smoothing: subpixel-antialiased;
+ height: 43px;
+ width: 100%
+ }
+
+ .fb_dialog_content .dialog_header td.header_left {
+ font-size: 12px;
+ padding-left: 5px;
+ vertical-align: middle;
+ width: 60px
+ }
+
+ .fb_dialog_content .dialog_header td.header_right {
+ font-size: 12px;
+ padding-right: 5px;
+ vertical-align: middle;
+ width: 60px
+ }
+
+ .fb_dialog_content .touchable_button {
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#4966A6), color-stop(.5, #355492), to(#2A4887));
+ border: 1px solid #29487d;
+ -webkit-background-clip: padding-box;
+ -webkit-border-radius: 3px;
+ -webkit-box-shadow: rgba(0, 0, 0, .117188) 0 1px 1px inset, rgba(255, 255, 255, .167969) 0 1px 0;
+ display: inline-block;
+ margin-top: 3px;
+ max-width: 85px;
+ line-height: 18px;
+ padding: 4px 12px;
+ position: relative
+ }
+
+ .fb_dialog_content .dialog_header .touchable_button input {
+ border: none;
+ background: none;
+ color: #fff;
+ font: 12px Helvetica, sans-serif;
+ font-weight: bold;
+ margin: 2px -12px;
+ padding: 2px 6px 3px 6px;
+ text-shadow: rgba(0, 30, 84, .296875) 0 -1px 0
+ }
+
+ .fb_dialog_content .dialog_header .header_center {
+ color: #fff;
+ font-size: 16px;
+ font-weight: bold;
+ line-height: 18px;
+ text-align: center;
+ vertical-align: middle
+ }
+
+ .fb_dialog_content .dialog_content {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/y9/r/jKEcVPZFk-2.gif) no-repeat 50% 50%;
+ border: 1px solid #555;
+ border-bottom: 0;
+ border-top: 0;
+ height: 150px
+ }
+
+ .fb_dialog_content .dialog_footer {
+ background: #f6f7f9;
+ border: 1px solid #555;
+ border-top-color: #ccc;
+ height: 40px
+ }
+
+ #fb_dialog_loader_close {
+ float: left
+ }
+
+ .fb_dialog.fb_dialog_mobile .fb_dialog_close_button {
+ text-shadow: rgba(0, 30, 84, .296875) 0 -1px 0
+ }
+
+ .fb_dialog.fb_dialog_mobile .fb_dialog_close_icon {
+ visibility: hidden
+ }
+
+ #fb_dialog_loader_spinner {
+ animation: rotateSpinner 1.2s linear infinite;
+ background-color: transparent;
+ background-image: url(https://static.xx.fbcdn.net/rsrc.php/v3/yD/r/t-wz8gw1xG1.png);
+ background-repeat: no-repeat;
+ background-position: 50% 50%;
+ height: 24px;
+ width: 24px
+ }
+
+ @keyframes rotateSpinner {
+ 0% {
+ transform: rotate(0deg)
+ }
+ 100% {
+ transform: rotate(360deg)
+ }
+ }
+
+ .fb_iframe_widget {
+ display: inline-block;
+ position: relative
+ }
+
+ .fb_iframe_widget span {
+ display: inline-block;
+ position: relative;
+ text-align: justify
+ }
+
+ .fb_iframe_widget iframe {
+ position: absolute
+ }
+
+ .fb_iframe_widget_fluid_desktop,
+ .fb_iframe_widget_fluid_desktop span,
+ .fb_iframe_widget_fluid_desktop iframe {
+ max-width: 100%
+ }
+
+ .fb_iframe_widget_fluid_desktop iframe {
+ min-width: 220px;
+ position: relative
+ }
+
+ .fb_iframe_widget_lift {
+ z-index: 1
+ }
+
+ .fb_hide_iframes iframe {
+ position: relative;
+ left: -10000px
+ }
+
+ .fb_iframe_widget_loader {
+ position: relative;
+ display: inline-block
+ }
+
+ .fb_iframe_widget_fluid {
+ display: inline
+ }
+
+ .fb_iframe_widget_fluid span {
+ width: 100%
+ }
+
+ .fb_iframe_widget_loader iframe {
+ min-height: 32px;
+ z-index: 2;
+ zoom: 1
+ }
+
+ .fb_iframe_widget_loader .FB_Loader {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/y9/r/jKEcVPZFk-2.gif) no-repeat;
+ height: 32px;
+ width: 32px;
+ margin-left: -16px;
+ position: absolute;
+ left: 50%;
+ z-index: 4
+ }
+ </style>
+</head>
+
+<body class="cnn-story body--tos body--sticky viewability--on inbetweener-pinner--type1">
+ <div id="fb-root" class=" fb_reset">
+ <div style="position: absolute; top: -10000px; height: 0px; width: 0px;">
+ <div><iframe name="fb_xdm_frame_http" allowtransparency="true" allowfullscreen="true" scrolling="no" id="fb_xdm_frame_http" aria-hidden="true" title="Facebook Cross Domain Communication Frame" tabindex="-1" style="border: medium none;" src="http://staticxx.facebook.com/connect/xd_arbiter/r/WFAdUidhDBg.js?version=42#channel=f1d3d9bb7487c6&amp;origin=http%3A%2F%2Fmoney.cnn.com" frameborder="0"></iframe><iframe name="fb_xdm_frame_https" allowtransparency="true" allowfullscreen="true" scrolling="no" id="fb_xdm_frame_https" aria-hidden="true" title="Facebook Cross Domain Communication Frame" tabindex="-1" style="border: medium none;" src="https://staticxx.facebook.com/connect/xd_arbiter/r/WFAdUidhDBg.js?version=42#channel=f1d3d9bb7487c6&amp;origin=http%3A%2F%2Fmoney.cnn.com" frameborder="0"></iframe></div>
+ </div>
+ <div style="position: absolute; top: -10000px; height: 0px; width: 0px;">
+ <div></div>
+ </div>
+ </div><iframe marginwidth="0" marginheight="0" scrolling="no" id="_mN_beacons" style="display: none !important;" width="0" height="0" frameborder="0"></iframe>
+ <div class="moneyEconomyNav">
+ <!--script language="JavaScript" src="http://i.cdn.turner.com/money/.element/ssi/javascript/1.1/cnnhat_section.js"></script-->
+
+
+
+ <header class="main-banner js-banner banner-intl">
+ <div class="container">
+
+ <a href="http://edition.cnn.com/?iid=badge_cnn" class="main-banner-logo">
+ <img src="http://i.cdn.turner.com/money/.element/img/8.0/logos/cnn-logo.png" class="cnn-logo" width="82" height="82" />
+ </a>
+ <a href="/?iid=badge_money" class="main-banner-logo">
+ <img src="http://i.cdn.turner.com/money/.element/img/8.0/logos/money-logo.png" class="money-logo" width="140" height="82" />
+ </a>
+
+ <span class="editionizer js-editionizer">
+ <a class="editionizer-display"><span class="js-editionDisplay">International</span>
+ <span class="icon-display js-editionIcon">+</span>
+ </a>
+ <a class="js-editionOption editionizer-option" id="www">U.S.</a>
+ </span>
+
+ <nav class="main-nav js-nav" role="navigation">
+ <ul class="main-nav-ul">
+ <li class="main-nav-li" id="main-nav--markets">
+ <a class="main-nav-a" id="markets-link" href="/markets/">Markets</a>
+
+
+
+
+
+ <div class="flyout-nav markets">
+ <div class="row flyout-markets">
+ <div class="column" data-vr-zone="Nav-markets col1">
+ <article class="summary hero" data-vr-contentbox="">
+ <a class="flyout-nav-link" href="http://money.cnn.com/2017/01/24/investing/wilbur-ross-interfere-climate-science/index.html?iid=A_MKT_News">
+ <figure class="summary-image">
+
+
+
+
+
+ <img src="http://i2.cdn.turner.com/money/dam/assets/170118130731-wilbur-ross-hearing-commerce-336x188.jpg" alt="Wilbur Ross hearing commerce" width="298" border="0" height="168" />
+
+
+
+ </figure>
+ <figcaption class="nav-summary-hed">
+ Wilbur Ross pledges not to intimidate climate scientists
+ </figcaption>
+ </a>
+ </article>
+ </div>
+ <div class="column">
+ <ul class="flyout-nav-list" data-vr-zone="Nav-markets col2">
+ <!--<li data-vr-contentbox=""><a href="/data/markets/trade/" class="flyout-nav-link">Trade</a></li>-->
+ <li data-vr-contentbox=""><a href="http://money.cnn.com/investing/thebuzz/?iid=A_MKT_QL" class="flyout-nav-link">Buzz</a></li>
+ <!--<li data-vr-contentbox=""><a href="/data/markets/profit/" class="flyout-nav-link">Profit</a></li>-->
+ <li data-vr-contentbox=""><a href="http://money.cnn.com/investing/?iid=A_MKT_QL" class="flyout-nav-link">Investing</a></li>
+ <li data-vr-contentbox=""><a href="http://money.cnn.com/news/economy/?iid=A_MKT_QL" class="flyout-nav-link">Economy</a></li>
+ <li data-vr-contentbox=""><a href="http://money.cnn.com/data/markets/stockswatch/?iid=A_MKT_QL" class="flyout-nav-link">Stockswatch</a></li>
+ </ul>
+ <ul class="flyout-nav-list" data-vr-zone="Nav-markets col3">
+ <li data-vr-contentbox=""><a href="http://money.cnn.com/data/premarket/?iid=A_MKT_QL" class="flyout-nav-link">Premarkets</a></li>
+ <li data-vr-contentbox=""><a href="http://money.cnn.com/data/hotstocks/?iid=A_MKT_QL" class="flyout-nav-link">Market Movers</a></li>
+ <li data-vr-contentbox=""><a href="http://money.cnn.com/data/dow30/?iid=A_MKT_QL" class="flyout-nav-link">Dow 30</a></li>
+ <li data-vr-contentbox=""><a href="http://money.cnn.com/data/afterhours/?iid=A_MKT_QL" class="flyout-nav-link">After-Hours</a></li>
+ <li data-vr-contentbox=""><a href="http://money.cnn.com/data/world_markets/americas/?iid=A_MKT_QL" class="flyout-nav-link">World Markets</a></li>
+ </ul>
+ <ul class="flyout-nav-list" data-vr-zone="Nav-markets col4">
+ <li data-vr-contentbox=""><a href="http://money.cnn.com/data/markets/investing-guide/?iid=A_MKT_QL" class="flyout-nav-link">Investing Guide</a></li>
+ <li data-vr-contentbox=""><a href="http://money.cnn.com/data/markets/the-open?iid=A_MKT_QL" class="flyout-nav-link">The Open</a></li>
+
+ <li data-vr-contentbox=""><a href="http://money.cnn.com/technology/tech30?iid=A_MKT_QL" class="flyout-nav-link">Tech30</a></li>
+ <li data-vr-contentbox=""><a href="http://money.cnn.com/data/fear-and-greed?iid=A_MKT_QL" class="flyout-nav-link">Fear &amp; Greed</a></li>
+ <!-- <li data-vr-contentbox=""><a href="/news/specials/jobs" class="flyout-nav-link">Jobs</a></li> -->
+ </ul>
+ </div>
+
+ </div>
+ </div>
+
+
+ </li>
+ <li class="main-nav-li" id="main-nav--economy">
+ <a class="main-nav-a" href="/economy/">Economy</a>
+
+
+
+
+
+ <div class="flyout-nav economy">
+ <div class="row flyout-economy">
+ <div class="column" data-vr-zone="Nav-economy col1">
+ <article class="summary hero" data-vr-contentbox="">
+ <a class="flyout-nav-link" href="/2017/01/24/news/economy/us-canada-mexico-trade-deal/index.html">
+ <figure class="summary-image">
+
+
+
+
+
+ <img src="http://i2.cdn.turner.com/money/dam/assets/170123154121-sean-spicer-white-house-336x188.jpg" alt="sean spicer white house" width="298" border="0" height="168" />
+
+
+
+ </figure>
+ <figcaption class="nav-summary-hed">
+ Will the U.S. and Canada leave Mexico behind?
+ </figcaption>
+ </a>
+ </article>
+ </div>
+ <div class="column">
+ <ul class="flyout-nav-list" data-vr-zone="Nav-markets col2">
+ <li data-vr-contentbox=""><a href="/news/growing-india/" class="flyout-nav-link">Growing India</a></li>
+ <li data-vr-contentbox=""><a href="/news/europe-2020/" class="flyout-nav-link">Europe 2020</a></li>
+ <li data-vr-contentbox=""><a href="/news/going-global/" class="flyout-nav-link">Going Global</a></li>
+ <li data-vr-contentbox=""><a href="/news/traders/" class="flyout-nav-link">Traders</a></li>
+ </ul>
+ </div>
+
+ </div>
+ </div>
+
+
+ </li>
+ <li class="main-nav-li" id="main-nav--companies">
+ <a class="main-nav-a" href="/news/companies/">Companies</a>
+ </li>
+ <li class="main-nav-li" id="main-nav--tech">
+ <a class="main-nav-a" href="/technology/">Tech</a>
+
+
+
+
+
+ <div class="flyout-nav tech">
+ <div class="row flyout-tech">
+ <div class="column" data-vr-zone="Nav-tech col1">
+ <article class="summary hero" data-vr-contentbox="">
+ <a class="flyout-nav-link" href="http://money.cnn.com/2016/12/13/technology/microsoft-chat-bot-tay-zo/index.html?iid=A_T_News">
+ <figure class="summary-image">
+
+
+
+
+
+ <img src="http://i2.cdn.turner.com/money/dam/assets/161213114825-microsoft-zo-ai-336x188.png" alt="microsoft zo ai" width="298" border="0" height="168" />
+
+
+
+ </figure>
+ <figcaption class="nav-summary-hed">
+ Microsoft unveils new, nicer chat bot
+ </figcaption>
+ </a>
+ </article>
+ </div>
+ <div class="column">
+ <ul class="flyout-nav-list" data-vr-zone="Nav-tech col2">
+ <li data-vr-contentbox=""><a href="http://money.cnn.com/technology/business/?iid=A_T_QL" class="flyout-nav-link">Business</a></li>
+ <li data-vr-contentbox=""><a href="http://money.cnn.com/technology/culture/?iid=A_T_QL" class="flyout-nav-link">Culture</a></li>
+ <li data-vr-contentbox=""><a href="http://money.cnn.com/technology/gadgets/?iid=A_T_QL" class="flyout-nav-link">Gadgets</a></li>
+ <li data-vr-contentbox=""><a href="http://money.cnn.com/technology/future/?iid=A_T_QL" class="flyout-nav-link">Future</a></li>
+ <li data-vr-contentbox=""><a href="http://money.cnn.com/technology/startups/?iid=A_T_QL" class="flyout-nav-link">Startups</a></li>
+ </ul>
+ <ul class="flyout-nav-list" data-vr-zone="Nav-tech col3">
+ <li data-vr-contentbox=""><a href="http://money.cnn.com/technology/powering-your-world/?iid=A_T_QL" class="flyout-nav-link">Powering Your World</a></li>
+ <li data-vr-contentbox=""><a href="http://money.cnn.com/technology/agility-in-action/?iid=A_T_QL" class="flyout-nav-link">Agility in Action</a></li>
+ <li data-vr-contentbox=""><a href="http://money.cnn.com/technology/upstarts/?iid=A_T_QL" class="flyout-nav-link">Upstarts</a></li>
+ <li data-vr-contentbox=""><a href="http://money.cnn.com/technology/innovative-cities/?iid=A_T_QL" class="flyout-nav-link">Innovative Cities</a></li>
+ </ul>
+ <ul class="flyout-nav-list" data-vr-zone="Nav-tech col4">
+ <li data-vr-contentbox=""><a href="http://money.cnn.com/technology/unhackable/?iid=A_T_QL" class="flyout-nav-link">Unhackable</a></li>
+ <li data-vr-contentbox=""><a href="http://money.cnn.com/technology/15-questions/?iid=A_T_QL" class="flyout-nav-link">15 Questions</a></li>
+ </ul>
+ </div>
+
+ </div>
+ </div>
+
+
+ </li>
+ <li class="main-nav-li" id="main-nav--autos">
+ <a class="main-nav-a" href="/autos/">Autos</a>
+
+
+
+
+
+ <div class="flyout-nav autos">
+ <div class="row flyout-autos">
+ <div class="column" data-vr-zone="Nav-autos col1">
+ <article class="summary hero" data-vr-contentbox="">
+ <a class="flyout-nav-link" href="/2017/01/24/luxury/gm-cerv-i/index.html">
+ <figure class="summary-image">
+
+
+
+
+
+ <img src="http://i2.cdn.turner.com/money/dam/assets/170124115244-gm-cerv-1-barrett-jackson-336x188.jpg" alt="gm cerv 1 barrett jackson" width="298" border="0" height="168" />
+
+
+
+ </figure>
+ <figcaption class="nav-summary-hed">
+ GM paid $1.3 million to buy back its cool 1960s research car
+ </figcaption>
+ </a>
+ </article>
+ </div>
+ <div class="column">
+ <ul class="flyout-nav-list" data-vr-zone="Nav-autos col2">
+ <li data-vr-contentbox=""><a href="/luxury/drive/" class="flyout-nav-link">Drive</a></li>
+ <li data-vr-contentbox=""><a href="/luxury/the-collector/" class="flyout-nav-link">The Collector</a></li>
+
+ </ul>
+ <ul class="flyout-nav-list" data-vr-zone="Nav-autos col3">
+
+ </ul>
+ <ul class="flyout-nav-list" data-vr-zone="Nav-autos col4">
+
+ </ul>
+ </div>
+
+ </div>
+ </div>
+
+
+ </li>
+ <li class="main-nav-li" id="main-nav--india">
+ <a class="main-nav-a" href="/news/india">India</a>
+ </li>
+ <li class="main-nav-li" id="main-nav--video">
+ <a class="main-nav-a" href="/video/">Video</a>
+ </li>
+ </ul>
+ </nav>
+ <div class="main-banner-right">
+
+ <div class="main-banner-eyebrow">
+ <span class="login">
+ <span class="username js-username-display" style="display: none;"></span>
+ <span class="status js-logged-in-display">
+ <a href="javascript:void(0)" class="cnnLogin">Log In</a>
+ </span>
+ <span class="status js-logged-out-display" style="display: none;">
+ <a href="javascript:void(0)" class="cnnLogout">Log Out</a>
+ </span>
+ </span>
+ </div>
+
+ <form role="search" class="search" method="get" action="http://searchapp.cnn.com/money-search/validate.jsp" name="quoteForm">
+ <input id="symb" title="Search" name="symbols" autocomplete="off" class="blur search--input" placeholder="stock tickers" type="text" />
+ <span id="search_button" class="search-icon" onclick="document.quoteForm.submit();"><img src="http://i.cdn.turner.com/money/.element/img/8.0/misc/icon-search-intl.png" class="search-icon-img" width="24px" height="25px" /></span>
+ </form>
+
+ </div>
+ </div>
+ </header>
+ </div>
+ <div id="adBanner">
+ <div id="ad_bnr_atf_01" style="" data-google-query-id="CMS4wLjy3NECFYkjvQodgmEMMw" class=" adfuel-rendered">
+ <div id="google_ads_iframe_/8663477/CNNMoney/economy/main_1__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/8663477/CNNMoney/economy/main_1" title="3rd party ad content" name="google_ads_iframe_/8663477/CNNMoney/economy/main_1" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" srcdoc="" width="970" height="90" frameborder="0"></iframe></div>
+ </div>
+ </div>
+ <main class="container js-social-anchor-start" role="main">
+ <header>
+ <div class="row">
+ <div class="column">
+ <div class="breadcrumb"> <a href="/news/american-opportunity/">American Opportunity</a> </div>
+ <h1 class="article-title">The 'birth lottery' and economic mobility </h1>
+ <style>
+ #ad_ns_atf_01 {
+ float: right;
+ margin-bottom: 8px;
+ display: inline-block;
+ }
+ </style>
+ <div id="ad_ns_atf_01"></div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="column share-byline-timestamp"> <span class="byline-timestamp"> <span id="js-byline-icon"> </span> <span class="cnnbyline "> <span class="byline">by Ahiza Garcia </span> <a href="https://twitter.com/intent/user?screen_name=ahiza_garcia" class="soc-twtname">@ahiza_garcia</a> </span> <span class="cnnDateStamp"> February 1, 2016: 12:41 PM ET </span> </span>
+ <div class="share-tools" id="js-sharebar-main">
+ <div id="js-sharebar-main-bin"><span class="fbrec js-share-fbrec"><div class="fb-like fb_iframe_widget" data-action="recommend" data-href="http://money.cnn.com/2016/02/01/news/economy/poverty-inequality-united-states/index.html" data-layout="button_count" data-send="false" data-width="90" data-show-faces="false" fb-xfbml-state="rendered" fb-iframe-plugin-query="action=recommend&amp;app_id=80401312489&amp;container_width=0&amp;href=http%3A%2F%2Fmoney.cnn.com%2F2016%2F02%2F01%2Fnews%2Feconomy%2Fpoverty-inequality-united-states%2Findex.html&amp;layout=button_count&amp;locale=en_US&amp;sdk=joey&amp;send=false&amp;show_faces=false&amp;width=90"><span style="vertical-align: bottom; width: 130px; height: 20px;"><iframe name="f17fee802a1e95a" allowtransparency="true" allowfullscreen="true" scrolling="no" title="fb:like Facebook Social Plugin" style="border: medium none; visibility: visible; width: 130px; height: 20px;" src="https://www.facebook.com/v2.0/plugins/like.php?action=recommend&amp;app_id=80401312489&amp;channel=http%3A%2F%2Fstaticxx.facebook.com%2Fconnect%2Fxd_arbiter%2Fr%2FWFAdUidhDBg.js%3Fversion%3D42%23cb%3Df1c1ab12d5c0484%26domain%3Dmoney.cnn.com%26origin%3Dhttp%253A%252F%252Fmoney.cnn.com%252Ff1d3d9bb7487c6%26relation%3Dparent.parent&amp;container_width=0&amp;href=http%3A%2F%2Fmoney.cnn.com%2F2016%2F02%2F01%2Fnews%2Feconomy%2Fpoverty-inequality-united-states%2Findex.html&amp;layout=button_count&amp;locale=en_US&amp;sdk=joey&amp;send=false&amp;show_faces=false&amp;width=90" class="" width="90px" height="1000px" frameborder="0"></iframe></span></div>
+ </span>
+ <a href="javascript:void(0)" class="st_email_custom icon icon--social-mail js-share-mail" st_url="http://money.cnn.com/2016/02/01/news/economy/poverty-inequality-united-states/index.html" st_title="The%20'birth%20lottery'%20and%20economic%20mobility" st_summary="Check%20out%20this%20story%20on%20CNNMoney%3A%20http%3A%2F%2Fmoney.cnn.com%2F2016%2F02%2F01%2Fnews%2Feconomy%2Fpoverty-inequality-united-states%2Findex.html" st_processed="yes"></a>
+ <a class="icon icon--social-facebook js-share-fb" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fmoney.cnn.com%2F2016%2F02%2F01%2Fnews%2Feconomy%2Fpoverty-inequality-united-states%2Findex.html&amp;title=The%20%27birth%20lottery%27%20and%20economic%20mobility" target="new"></a>
+ <a class="icon icon--social-twitter js-share-tw" href="https://twitter.com/intent/tweet?text=The%20%27birth%20lottery%27%20and%20economic%20mobility&amp;via=CNNMoney&amp;related=CNNMoney%3ABreaking%20news%20and%20in-depth%20looks%20at%20the%20most%20important%20business%20stories%20of%20the%20day.&amp;url=http://cnnmon.ie/1SSExWC"></a>
+ <a class="icon icon--social-linkedin js-share-linkedin" onclick="openWindow('http://www.linkedin.com/shareArticle?mini=true&amp;source=CNNMoney&amp;url=http%3A%2F%2Fmoney.cnn.com%2F2016%2F02%2F01%2Fnews%2Feconomy%2Fpoverty-inequality-united-states%2Findex.html%3Fsource%3Dlinkedin&amp;title=The%20\'birth%20lottery\'%20and%20economic%20mobility','linkedin', 'scrollbars=yes,resizable=yes,toolbar=no,location=yes,width=600,height=450,left=0,top=0'); eventLogger.social_track('lin-share'); return false;" target="new"></a>
+ <a class="icon icon--social-more js-share-more">
+ <div class="popup-menu js-share-more-popup"><a class="icon icon--social-pinterest js-share-pinterest" href="http://pinterest.com/pin/create/bookmarklet/?is_video=false&amp;url=http%3A%2F%2Fmoney.cnn.com%2F2016%2F02%2F01%2Fnews%2Feconomy%2Fpoverty-inequality-united-states%2Findex.html&amp;media=http%3A%2F%2Fi2.cdn.turner.com%2Fmoney%2Fdam%2Fassets%2F141103182938-income-inequality-780x439.png&amp;description=The%20%27birth%20lottery%27%20and%20economic%20mobility"><span></span></a>
+ <a class="icon icon--social-stumbleupon js-share-stumbleupon" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fmoney.cnn.com%2F2016%2F02%2F01%2Fnews%2Feconomy%2Fpoverty-inequality-united-states%2Findex.html&amp;title=The%20%27birth%20lottery%27%20and%20economic%20mobility"></a><a class="icon icon--social-googleplus js-share-gplus" href="https://plus.google.com/share?url=http%3A%2F%2Fmoney.cnn.com%2F2016%2F02%2F01%2Fnews%2Feconomy%2Fpoverty-inequality-united-states%2Findex.html"><span></span></a><a class="icon icon--social-reddit js-share-reddit" href="http://www.reddit.com/submit?url=http%3A%2F%2Fmoney.cnn.com%2F2016%2F02%2F01%2Fnews%2Feconomy%2Fpoverty-inequality-united-states%2Findex.html&amp;title=The%20%27birth%20lottery%27%20and%20economic%20mobility"><span></span></a></div>
+ </a>
+ </div>
+ </div>
+ </div>
+ </div>
+ </header>
+ <div class="row two-columns-fixed-rr">
+ <section class="column">
+ <article class="module">
+ <div id="storycontent">
+ <!--storytext-->
+ <div id="storytext">
+ <div id="js-ie-storytop" class="ie--storytop" style="height: 482px;">
+ <script type="text/javascript">
+ vidConfig.push({
+ videoArray: [{
+ id: "/video/news/2015/11/30/homeboy-industries-priest.cnnmoney",
+ collection: "",
+ hed: "The priest saving LA\'s gang members"
+ }],
+ loc: 'top',
+ autoplay: true,
+ playerprofile: 'story',
+ playerid: 'cvp_story_0',
+ divid: 'vid0',
+ hedtarget: '#cnnplayer0 .cnnHeadline'
+ });
+ </script>
+ <div class="js-inbetweener-unpinner inbetweener-unpinner"></div>
+ <div class="js-inbetweener-pinner--type1 inbetweener-pinner--type1" style="left: 890px;"></div>
+ <div class="js-inbetweener-pinner--type2 inbetweener-pinner--type2"></div>
+ <div class="cnnplayer fade-in" id="cnnplayer_cvp_story_0" style="left: 890px;">
+ <div class="cnnVidplayer">
+ <div class="summaryImg" id="vid0" href="/video/news/2015/11/30/homeboy-industries-priest.cnnmoney" onclick="javascript:VideoPlayerManager.playVideos('cvp_story_0'); return false;" style="width: 780px; height: 439px;"><video id="cvp_story_0" style="width: 300px; height: 169px;" preload="metadata" poster="" src="http://ht3.cdn.turner.com/money/big/news/2015/11/30/homeboy-industries-priest.cnnmoney_1024x576.mp4" controls="controls" width="300" height="169"></video>
+ <div id="cvp_story_0_endSlate" class="video-posterboard end-slate" style="display: none;">
+ <div class="video-slate-wrapper">
+ <div class="video-bg">
+ <div class="mask"></div><img src="" alt="" width="620" height="348" /></div>
+ <div class="video-slate-content">
+ <div class="video-thumbnails-wrapper">
+ <a class="video-thumbnail first" href="/" target="_top"> <img src="" alt="" width="160" height="90" />
+ <div class="video-thumbnail-caption"></div>
+ </a>
+ <a class="video-thumbnail second" href="/" target="_top"> <img src="" alt="" width="160" height="90" />
+ <div class="video-thumbnail-caption"></div>
+ </a>
+ <a class="video-thumbnail third" href="/" target="_top"> <img src="" alt="" width="160" height="90" />
+ <div class="video-thumbnail-caption"></div>
+ </a>
+ <div class="clearFloat"></div>
+ </div>
+ <div data-playerid="cvp_story_0" class="replay">Replay</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="cnnVidFooter">
+ <div class="js-vid-hed-cvp_story_0 cnnHeadline">The priest saving LA's gang members</div>
+ <div class="js-vid-countdown-cvp_story_0 countdown">Your video will play in 00:25</div>
+ </div>
+ </div>
+ </div>
+ <div class="share-tools share-tools--floater" id="js-sharebar-floater" style="visibility: visible; top: 70px; position: fixed; display: block;">
+ <div id="js-sharebar-floater-bin">
+ <a href="javascript:void(0)" class="st_email_custom icon icon--social-mail js-share-mail" st_url="http://money.cnn.com/2016/02/01/news/economy/poverty-inequality-united-states/index.html" st_title="The%20'birth%20lottery'%20and%20economic%20mobility" st_summary="Check%20out%20this%20story%20on%20CNNMoney%3A%20http%3A%2F%2Fmoney.cnn.com%2F2016%2F02%2F01%2Fnews%2Feconomy%2Fpoverty-inequality-united-states%2Findex.html" st_processed="yes"></a>
+ <a class="icon icon--social-facebook js-share-fb" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fmoney.cnn.com%2F2016%2F02%2F01%2Fnews%2Feconomy%2Fpoverty-inequality-united-states%2Findex.html&amp;title=The%20%27birth%20lottery%27%20and%20economic%20mobility" target="new"></a>
+ <a class="icon icon--social-twitter js-share-tw" href="https://twitter.com/intent/tweet?text=The%20%27birth%20lottery%27%20and%20economic%20mobility&amp;via=CNNMoney&amp;related=CNNMoney%3ABreaking%20news%20and%20in-depth%20looks%20at%20the%20most%20important%20business%20stories%20of%20the%20day.&amp;url=http://cnnmon.ie/1SSExWC"></a>
+ <a class="icon icon--social-linkedin js-share-linkedin" onclick="openWindow('http://www.linkedin.com/shareArticle?mini=true&amp;source=CNNMoney&amp;url=http%3A%2F%2Fmoney.cnn.com%2F2016%2F02%2F01%2Fnews%2Feconomy%2Fpoverty-inequality-united-states%2Findex.html%3Fsource%3Dlinkedin&amp;title=The%20\'birth%20lottery\'%20and%20economic%20mobility','linkedin', 'scrollbars=yes,resizable=yes,toolbar=no,location=yes,width=600,height=450,left=0,top=0'); eventLogger.social_track('lin-share'); return false;" target="new"></a>
+ <a class="icon icon--social-more js-share-more">
+ <div class="popup-menu js-share-more-popup"><a class="icon icon--social-pinterest js-share-pinterest" href="http://pinterest.com/pin/create/bookmarklet/?is_video=false&amp;url=http%3A%2F%2Fmoney.cnn.com%2F2016%2F02%2F01%2Fnews%2Feconomy%2Fpoverty-inequality-united-states%2Findex.html&amp;media=http%3A%2F%2Fi2.cdn.turner.com%2Fmoney%2Fdam%2Fassets%2F141103182938-income-inequality-780x439.png&amp;description=The%20%27birth%20lottery%27%20and%20economic%20mobility&amp;iid=EL"><span></span></a>
+ <a class="icon icon--social-stumbleupon js-share-stumbleupon" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fmoney.cnn.com%2F2016%2F02%2F01%2Fnews%2Feconomy%2Fpoverty-inequality-united-states%2Findex.html&amp;title=The%20%27birth%20lottery%27%20and%20economic%20mobility&amp;iid=EL"></a><a class="icon icon--social-googleplus js-share-gplus" href="https://plus.google.com/share?url=http%3A%2F%2Fmoney.cnn.com%2F2016%2F02%2F01%2Fnews%2Feconomy%2Fpoverty-inequality-united-states%2Findex.html&amp;iid=EL"><span></span></a><a class="icon icon--social-reddit js-share-reddit" href="http://www.reddit.com/submit?url=http%3A%2F%2Fmoney.cnn.com%2F2016%2F02%2F01%2Fnews%2Feconomy%2Fpoverty-inequality-united-states%2Findex.html&amp;title=The%20%27birth%20lottery%27%20and%20economic%20mobility&amp;iid=EL"><span></span></a></div>
+ </a>
+ </div>
+ </div>
+ <h2>The U.S. has long been heralded as a land of opportunity -- a place where anyone can succeed regardless of the economic class they were born into.</h2>
+ <p style=""> But a new report released on Monday by <a href="http://web.stanford.edu/group/scspi-dev/cgi-bin/" target="_blank">Stanford University's Center on Poverty and Inequality</a> calls that into question. </p>
+ <div id="ie_column">
+ <script>
+ var SMARTASSET = SMARTASSET || {};
+ SMARTASSET.setDivIndex = function(i) {
+ return i;
+ }
+
+ SMARTASSET.setSmartAssetDiv = function() {
+ // get paragraphs only in the storytext
+ var storytext = document.getElementById('storytext');
+ var currentParagraph;
+ var smartasset;
+ var i;
+ var heights = 0;
+ var limit = 1875;
+ var afterParagraphFour = false;
+ var insertAfterThisParagraphIndex = -1;
+ var smartAssetDiv = '&lt;div id="smartassetcontainer" class="module" style="float:none; width: 300px; margin-bottom:0;"&gt;&lt;div class="module" style="height:35px; margin-bottom:0;"&gt;&lt;div class="module-body" style="padding-top:0;"&gt;&lt;div id="smartasset-article" class="collapsible"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;';
+ for (i = 0; i & lt; storytext.childNodes.length; i++) {
+ if (storytext.childNodes[i].nodeName.toLowerCase() === 'p') {
+ if (!afterParagraphFour & amp; & amp; i & gt; 4) {
+ afterParagraphFour = true;
+ }
+ currentParagraph = storytext.childNodes[i];
+ heights += currentParagraph.clientHeight;
+ if (heights & gt; = limit & amp; & amp; insertAfterThisParagraphIndex === -1) {
+ insertAfterThisParagraphIndex = SMARTASSET.setDivIndex(i);
+ console.log("insert after paragraph number " + i);
+ console.log("HEIGHTS = " + heights);
+ console.log("LIMIT = " + limit);
+ }
+ }
+ /* div with id="ie_column" */
+ else if (storytext.childNodes[i].nodeName.toLowerCase() === 'div' & amp; & amp; storytext.childNodes[i].id !== "undefined" & amp; & amp; storytext.childNodes[i].id === "ie_column") {
+ heights = 0;
+ limit = 80;
+ insertAfterThisParagraphIndex = -1
+ }
+ /* embeds from twitter, facebook, youtube */
+ else if (storytext.childNodes[i].nodeName.toLowerCase() === 'div' & amp; & amp; storytext.childNodes[i].classList.contains('embed')) {
+ heights = 0;
+ limit = 80;
+ insertAfterThisParagraphIndex = -1
+ }
+ /* cnn video player */
+ else if (storytext.childNodes[i].nodeName.toLowerCase() === 'div' & amp; & amp; storytext.childNodes[i].classList.contains('cnnplayer')) {
+ heights = 0;
+ limit = 80;
+ insertAfterThisParagraphIndex = -1
+ }
+ /* images */
+ else if (storytext.childNodes[i].nodeName.toLowerCase() === 'img') {
+ heights = 0;
+ limit = 80;
+ }
+ /* images stored in figure tags */
+ else if (storytext.childNodes[i].nodeName.toLowerCase() === 'figure') {
+ heights = 0;
+ limit = 80;
+ }
+ }
+ if (heights & gt; = 875 & amp; & amp; afterParagraphFour) {
+ storytext.childNodes[insertAfterThisParagraphIndex].insertAdjacentHTML('afterend', smartAssetDiv);
+ smartasset = document.getElementById('smartasset-article');
+ smartasset.style.float = 'left'; // allows module to have text float to right
+ smartasset.style.marginRight = '20px';
+ smartasset.style.marginBottom = '25px';
+ }
+ }
+
+ SMARTASSET.setSmartAssetScript = function() {
+ console.log('starting setSmartAssetScript');
+ SA = document.SA || [];
+ SA.push({
+ embedUrl: "https://smartasset.com",
+ container: "#smartasset-article",
+ version: 1.1,
+ data: {
+ key: "bdknf2rinbhwvdksm6zbmhf3twrv4oih"
+ }
+ /*{ key: "CNNe038d38a57032085441e7fe7010b0" }*/
+ });
+ console.log('finished in setSmartAssetScript push() call');
+
+ var smscript = document.createElement("script");
+ smscript.type = "text/javascript";
+ smscript.async = true;
+ smscript.src = ("https:" == document.location.protocol ? "https://" : "http://") + "smartasset.com/embed.js";
+
+ var s = document.getElementsByTagName("script")[0];
+ s.parentNode.insertBefore(smscript, s);
+ console.log("finished entire function of setSmartAssetFunction()");
+ };
+ SMARTASSET.setSmartAssetDiv();
+ SMARTASSET.setSmartAssetScript();
+ </script>
+ </div>
+ <p style=""> The report assessed poverty levels, income and wealth inequality, economic mobility and unemployment levels among 10 wealthy countries with social welfare programs. </p>
+ <div id="smartassetcontainer" class="module" style="float:none; width: 300px; margin-bottom:0;">
+ <div class="module" style="height:35px; margin-bottom:0;">
+ <div class="module-body" style="padding-top:0;">
+ <div id="smartasset-article" class="collapsible" style="float: left; margin-right: 20px; margin-bottom: 25px;">
+ <div>
+ <style>
+ div.cnnhdr {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ line-height: 1em;
+ vertical-align: top;
+ height: 30px;
+ padding: 8px 10px 7px 10px;
+ width: 300px;
+ background: #77b7d9;
+ color: #fff;
+ font-family: 'CNN', Arial, sans-serif;
+ font-size: 14px;
+ font-weight: 500;
+ }
+
+ div.cnnhdr img {
+ max-width: 120px;
+ margin-bottom: -1px;
+ }
+
+ div.collapsible {
+ width: 300px;
+ }
+
+ div.collapsible.expanded {
+ width: 780px;
+ }
+
+ div.collapsible.expanded #sa_swtYhka26oGQ {
+ width: 100%;
+ min-width: 780px;
+ }
+
+ .collapsible #sa_swtYhka26oGQ {
+ border: none;
+ max-width: 300px;
+ width: 100%;
+ min-width: 300px;
+ }
+
+ #sa_swtYhka26oGQ {
+ border: none;
+ max-width: 750px;
+ width: 100%;
+ min-width: 300px;
+ }
+
+ .sa-hide-attribution #sa_swtYhka26oGQ-img {
+ display: none;
+ }
+
+ #sa_swtYhka26oGQ-img,
+ #sa_swtYhka26oGQ-img a,
+ #sa_swtYhka26oGQ-img a img {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-size: 100%;
+ font-weight: normal;
+ vertical-align: middle;
+ background: transparent;
+ box-sizing: border-box;
+ opacity: 1;
+ outline: 0;
+ box-shadow: none;
+ line-height: 1.3;
+ }
+
+ .collapsible #sa_swtYhka26oGQ-img {
+ text-align: left;
+ }
+
+ .collapsible .rightcnn {
+ display: none;
+ }
+
+ .collapsible.expanded #sa_swtYhka26oGQ-img a.rightcnn {
+ display: inline-block;
+ float: left;
+ font-weight: normal;
+ }
+
+ .collapsible.expanded #sa_swtYhka26oGQ-img {
+ text-align: right;
+ max-width: 780px;
+ }
+
+ #sa_swtYhka26oGQ-img {
+ max-width: 750px;
+ border-top: 1px solid #bbb;
+ padding-top: 5px;
+ text-align: right;
+ line-height: 1em;
+ }
+
+ #sa_swtYhka26oGQ-img a img,
+ #sa_swtYhka26oGQ-img.no-links img {
+ width: auto;
+ height: auto;
+ display: inline-block;
+ margin-left: 4px;
+ vertical-align: baseline;
+ margin-bottom: -1px;
+ }
+
+ #sa_swtYhka26oGQ-img a:hover {
+ color: #555;
+ text-decoration: underline;
+ }
+
+ #sa_swtYhka26oGQ-img span,
+ #sa_swtYhka26oGQ-img a {
+ font-family: arial, helvetica, sans-serif;
+ font-size: 10px;
+ /** pc: adjusted line-height **/
+ line-height: 14px;
+ font-weight: bold;
+ color: #aaa;
+ text-decoration: none;
+ text-transform: uppercase;
+ }
+ </style>
+
+
+ <script>
+ // send sa-attribution click
+ window.saCnnClick = function() {
+ var el = document.getElementById('sa_swtYhka26oGQ');
+ el.contentWindow.postMessage("fnfsvm:on_sa_click", "*");
+ }
+
+ var IFRAMERESIZE_LOADED = IFRAMERESIZE_LOADED || false;
+
+ if (IFRAMERESIZE_LOADED != true) {
+ IFRAMERESIZE_LOADED = true;
+
+ ;
+ (function(window) {
+ 'use strict';
+
+ var
+ count = 0,
+ logEnabled = false,
+ msgHeader = 'message',
+ msgHeaderLen = msgHeader.length,
+ msgId = '[iFrameSizer_SA]', //Must match iframe msg ID
+ msgIdLen = msgId.length,
+ pagePosition = null,
+ requestAnimationFrame = window.requestAnimationFrame,
+ resetRequiredMethods = {
+ max: 1,
+ scroll: 1,
+ bodyScroll: 1,
+ documentElementScroll: 1
+ },
+ settings = {},
+ timer = null,
+
+ defaults = {
+ autoResize: true,
+ bodyBackground: null,
+ bodyMargin: null,
+ bodyMarginV1: 8,
+ bodyPadding: null,
+ checkOrigin: true,
+ enableInPageLinks: false,
+ enablePublicMethods: false,
+ heightCalculationMethod: 'offset',
+ interval: 32,
+ log: false,
+ maxHeight: Infinity,
+ maxWidth: Infinity,
+ minHeight: 0,
+ minWidth: 0,
+ resizeFrom: 'parent',
+ scrolling: false,
+ sizeHeight: true,
+ sizeWidth: false,
+ tolerance: 0,
+ closedCallback: function() {},
+ initCallback: function() {},
+ messageCallback: function() {},
+ resizedCallback: function() {},
+ scrollCallback: function() {
+ return true;
+ }
+ };
+
+ function addEventListener(obj, evt, func) {
+ if ('addEventListener' in window) {
+ obj.addEventListener(evt, func, false);
+ } else if ('attachEvent' in window) { //IE
+ obj.attachEvent('on' + evt, func);
+ }
+ }
+
+ function setupRequestAnimationFrame() {
+ var
+ vendors = ['moz', 'webkit', 'o', 'ms'],
+ x;
+
+ // Remove vendor prefixing if prefixed and break early if not
+ for (x = 0; x & lt; vendors.length & amp; & amp; !requestAnimationFrame; x += 1) {
+ requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];
+ }
+
+ if (!(requestAnimationFrame)) {
+ log(' RequestAnimationFrame not supported');
+ }
+ }
+
+ function getMyID() {
+ var retStr = 'Host page';
+
+ if (window.top !== window.self) {
+ if (window.parentIFrame) {
+ retStr = window.parentIFrame.getId();
+ } else {
+ retStr = 'Nested host page';
+ }
+ }
+
+ return retStr;
+ }
+
+ function formatLogMsg(msg) {
+ return msgId + '[' + getMyID() + ']' + msg;
+ }
+
+ function log(msg) {
+ if (logEnabled & amp; & amp;
+ ('object' === typeof window.console)) {
+ console.log(formatLogMsg(msg));
+ }
+ }
+
+ function warn(msg) {
+ if ('object' === typeof window.console) {
+ console.warn(formatLogMsg(msg));
+ }
+ }
+
+ function iFrameListener(event) {
+ function resizeIFrame() {
+ function resize() {
+ setSize(messageData);
+ setPagePosition();
+ settings[iframeId].resizedCallback(messageData);
+ }
+
+ ensureInRange('Height');
+ ensureInRange('Width');
+
+ syncResize(resize, messageData, 'resetPage');
+ }
+
+ function closeIFrame(iframe) {
+ var iframeId = iframe.id;
+
+ log(' Removing iFrame: ' + iframeId);
+ iframe.parentNode.removeChild(iframe);
+ settings[iframeId].closedCallback(iframeId);
+ delete settings[iframeId];
+ log(' --');
+ }
+
+ function processMsg() {
+ var data = msg.substr(msgIdLen).split(':');
+
+ return {
+ iframe: document.getElementById(data[0]),
+ id: data[0],
+ height: data[1],
+ width: data[2],
+ type: data[3]
+ };
+ }
+
+ function ensureInRange(Dimension) {
+ var
+ max = Number(settings[iframeId]['max' + Dimension]),
+ min = Number(settings[iframeId]['min' + Dimension]),
+ dimension = Dimension.toLowerCase(),
+ size = Number(messageData[dimension]);
+
+ if (min & gt; max) {
+ throw new Error('Value for min' + Dimension + ' can not be greater than max' + Dimension);
+ }
+
+ log(' Checking ' + dimension + ' is in range ' + min + '-' + max);
+
+ if (size & lt; min) {
+ size = min;
+ log(' Set ' + dimension + ' to min value');
+ }
+
+ if (size & gt; max) {
+ size = max;
+ log(' Set ' + dimension + ' to max value');
+ }
+
+ messageData[dimension] = '' + size;
+ }
+
+
+ function isMessageFromIFrame() {
+ function checkAllowedOrigin() {
+ function checkList() {
+ log(' Checking connection is from allowed list of origins: ' + checkOrigin);
+ var i;
+ for (i = 0; i & lt; checkOrigin.length; i++) {
+ if (checkOrigin[i] === origin) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ function checkSingle() {
+ log(' Checking connection is from: ' + remoteHost);
+ return origin === remoteHost;
+ }
+
+ return checkOrigin.constructor === Array ? checkList() : checkSingle();
+ }
+
+ var
+ origin = event.origin,
+ checkOrigin = settings[iframeId].checkOrigin,
+ remoteHost = messageData.iframe.src.split('/').slice(0, 3).join('/');
+
+ if (checkOrigin) {
+ if (('' + origin !== 'null') & amp; & amp; !checkAllowedOrigin()) {
+ throw new Error(
+ 'Unexpected message received from: ' + origin +
+ ' for ' + messageData.iframe.id +
+ '. Message was: ' + event.data +
+ '. This error can be disabled by setting the checkOrigin: false option or by providing of array of trusted domains.'
+ );
+ }
+ }
+
+ return true;
+ }
+
+ function isMessageForUs() {
+ return msgId === ('' + msg).substr(0, msgIdLen); //''+Protects against non-string msg
+ }
+
+ function isMessageFromMetaParent() {
+ //Test if this message is from a parent above us. This is an ugly test, however, updating
+ //the message format would break backwards compatibity.
+ var retCode = messageData.type in {
+ 'true': 1,
+ 'false': 1,
+ 'undefined': 1
+ };
+
+ if (retCode) {
+ log(' Ignoring init message from meta parent page');
+ }
+
+ return retCode;
+ }
+
+ function getMsgBody(offset) {
+ return msg.substr(msg.indexOf(':') + msgHeaderLen + offset);
+ }
+
+ function forwardMsgFromIFrame(msgBody) {
+ log(' MessageCallback passed: {iframe: ' + messageData.iframe.id + ', message: ' + msgBody + '}');
+ settings[iframeId].messageCallback({
+ iframe: messageData.iframe,
+ message: JSON.parse(msgBody)
+ });
+ log(' --');
+ }
+
+ function checkIFrameExists() {
+ if (null === messageData.iframe) {
+ warn(' IFrame (' + messageData.id + ') not found');
+ return false;
+ }
+ return true;
+ }
+
+ function getElementPosition(target) {
+ var
+ iFramePosition = target.getBoundingClientRect();
+
+ getPagePosition();
+
+ return {
+ x: parseInt(iFramePosition.left, 10) + parseInt(pagePosition.x, 10),
+ y: parseInt(iFramePosition.top, 10) + parseInt(pagePosition.y, 10)
+ };
+ }
+
+ function scrollRequestFromChild(addOffset) {
+ function reposition() {
+ pagePosition = newPosition;
+
+ scrollTo();
+
+ log(' --');
+ }
+
+ function calcOffset() {
+ return {
+ x: Number(messageData.width) + offset.x,
+ y: Number(messageData.height) + offset.y
+ };
+ }
+
+ var
+ offset = addOffset ? getElementPosition(messageData.iframe) : {
+ x: 0,
+ y: 0
+ },
+ newPosition = calcOffset();
+
+ log(' Reposition requested from iFrame (offset x:' + offset.x + ' y:' + offset.y + ')');
+
+ if (window.top !== window.self) {
+ if (window.parentIFrame) {
+ if (addOffset) {
+ window.parentIFrame.scrollToOffset(newPosition.x, newPosition.y);
+ } else {
+ window.parentIFrame.scrollTo(messageData.width, messageData.height);
+ }
+ } else {
+ warn(' Unable to scroll to requested position, window.parentIFrame not found');
+ }
+ } else {
+ reposition();
+ }
+
+ }
+
+ function scrollTo() {
+ if (false !== settings[iframeId].scrollCallback(pagePosition)) {
+ setPagePosition();
+ }
+ }
+
+ function findTarget(location) {
+ function jumpToTarget(target) {
+ var jumpPosition = getElementPosition(target);
+
+ log(' Moving to in page link (#' + hash + ') at x: ' + jumpPosition.x + ' y: ' + jumpPosition.y);
+ pagePosition = {
+ x: jumpPosition.x,
+ y: jumpPosition.y
+ };
+
+ scrollTo();
+ log(' --');
+ }
+
+ var
+ hash = location.split('#')[1] || '',
+ hashData = decodeURIComponent(hash),
+ target = document.getElementById(hashData) || document.getElementsByName(hashData)[0];
+
+ if (window.top !== window.self) {
+ if (window.parentIFrame) {
+ window.parentIFrame.moveToAnchor(hash);
+ } else {
+ log(' In page link #' + hash + ' not found and window.parentIFrame not found');
+ }
+ } else if (target) {
+ jumpToTarget(target);
+ } else {
+ log(' In page link #' + hash + ' not found');
+ }
+ }
+
+ function actionMsg() {
+ switch (messageData.type) {
+ case 'close':
+ closeIFrame(messageData.iframe);
+ break;
+ case 'message':
+ forwardMsgFromIFrame(getMsgBody(6));
+ break;
+ case 'scrollTo':
+ scrollRequestFromChild(false);
+ break;
+ case 'scrollToOffset':
+ scrollRequestFromChild(true);
+ break;
+ case 'inPageLink':
+ findTarget(getMsgBody(9));
+ break;
+ case 'reset':
+ resetIFrame(messageData);
+ break;
+ case 'init':
+ resizeIFrame();
+ settings[iframeId].initCallback(messageData.iframe);
+ break;
+ default:
+ resizeIFrame();
+ }
+ }
+
+ function hasSettings(iframeId) {
+ var retBool = true;
+
+ if (!settings[iframeId]) {
+ retBool = false;
+ warn(messageData.type + ' No settings for ' + iframeId + '. Message was: ' + msg);
+ }
+
+ return retBool;
+ }
+
+ var
+ msg = event.data,
+ messageData = {},
+ iframeId = null;
+
+ if (isMessageForUs()) {
+ messageData = processMsg();
+ iframeId = messageData.id;
+
+ if (!isMessageFromMetaParent() & amp; & amp; hasSettings(iframeId)) {
+ logEnabled = settings[iframeId].log;
+ log(' Received: ' + msg);
+
+ if (checkIFrameExists() & amp; & amp; isMessageFromIFrame()) {
+ settings[iframeId].firstRun = false;
+ actionMsg();
+ }
+ }
+ }
+ }
+
+
+ function getPagePosition() {
+ if (null === pagePosition) {
+ pagePosition = {
+ x: (window.pageXOffset !== undefined) ? window.pageXOffset : document.documentElement.scrollLeft,
+ y: (window.pageYOffset !== undefined) ? window.pageYOffset : document.documentElement.scrollTop
+ };
+ log(' Get page position: ' + pagePosition.x + ',' + pagePosition.y);
+ }
+ }
+
+ function setPagePosition() {
+ if (null !== pagePosition) {
+ window.scrollTo(pagePosition.x, pagePosition.y);
+ log(' Set page position: ' + pagePosition.x + ',' + pagePosition.y);
+ pagePosition = null;
+ }
+ }
+
+ function resetIFrame(messageData) {
+ function reset() {
+ setSize(messageData);
+ trigger('reset', 'reset', messageData.iframe, messageData.id);
+ }
+
+ log(' Size reset requested by ' + ('init' === messageData.type ? 'host page' : 'iFrame'));
+ getPagePosition();
+ syncResize(reset, messageData, 'init');
+ }
+
+ function setSize(messageData) {
+ function setDimension(dimension) {
+ messageData.iframe.style[dimension] = messageData[dimension] + 'px';
+ log(
+ ' IFrame (' + iframeId +
+ ') ' + dimension +
+ ' set to ' + messageData[dimension] + 'px'
+ );
+ }
+ var iframeId = messageData.iframe.id;
+ if (settings[iframeId].sizeHeight) {
+ setDimension('height');
+ }
+ if (settings[iframeId].sizeWidth) {
+ setDimension('width');
+ }
+ }
+
+ function syncResize(func, messageData, doNotSync) {
+ if (doNotSync !== messageData.type & amp; & amp; requestAnimationFrame) {
+ log(' Requesting animation frame');
+ requestAnimationFrame(func);
+ } else {
+ func();
+ }
+ }
+
+ function trigger(calleeMsg, msg, iframe, id) {
+ if (iframe & amp; & amp; iframe.contentWindow) {
+ log('[' + calleeMsg + '] Sending msg to iframe (' + msg + ')');
+ iframe.contentWindow.postMessage(msgId + msg, '*');
+ } else {
+ warn('[' + calleeMsg + '] IFrame not found');
+ if (settings[id]) {
+ delete settings[id];
+ }
+ }
+ }
+
+
+ function setupIFrame(options) {
+ function setLimits() {
+ function addStyle(style) {
+ if ((Infinity !== settings[iframeId][style]) & amp; & amp;
+ (0 !== settings[iframeId][style])) {
+ iframe.style[style] = settings[iframeId][style] + 'px';
+ log(' Set ' + style + ' = ' + settings[iframeId][style] + 'px');
+ }
+ }
+
+ addStyle('maxHeight');
+ addStyle('minHeight');
+ addStyle('maxWidth');
+ addStyle('minWidth');
+ }
+
+ function ensureHasId(iframeId) {
+ if ('' === iframeId) {
+ iframe.id = iframeId = 'iFrameResizer' + count++;
+ logEnabled = (options || {}).log;
+ log(' Added missing iframe ID: ' + iframeId + ' (' + iframe.src + ')');
+ }
+
+ return iframeId;
+ }
+
+ function setScrolling() {
+ log(' IFrame scrolling ' + (settings[iframeId].scrolling ? 'enabled' : 'disabled') + ' for ' + iframeId);
+ iframe.style.overflow = false === settings[iframeId].scrolling ? 'hidden' : 'auto';
+ iframe.scrolling = false === settings[iframeId].scrolling ? 'no' : 'yes';
+ }
+
+ //The V1 iFrame script expects an int, where as in V2 expects a CSS
+ //string value such as '1px 3em', so if we have an int for V2, set V1=V2
+ //and then convert V2 to a string PX value.
+ function setupBodyMarginValues() {
+ if (('number' === typeof(settings[iframeId].bodyMargin)) || ('0' === settings[iframeId].bodyMargin)) {
+ settings[iframeId].bodyMarginV1 = settings[iframeId].bodyMargin;
+ settings[iframeId].bodyMargin = '' + settings[iframeId].bodyMargin + 'px';
+ }
+ }
+
+ function createOutgoingMsg() {
+ return iframeId +
+ ':' + settings[iframeId].bodyMarginV1 +
+ ':' + settings[iframeId].sizeWidth +
+ ':' + settings[iframeId].log +
+ ':' + settings[iframeId].interval +
+ ':' + settings[iframeId].enablePublicMethods +
+ ':' + settings[iframeId].autoResize +
+ ':' + settings[iframeId].bodyMargin +
+ ':' + settings[iframeId].heightCalculationMethod +
+ ':' + settings[iframeId].bodyBackground +
+ ':' + settings[iframeId].bodyPadding +
+ ':' + settings[iframeId].tolerance +
+ ':' + settings[iframeId].enableInPageLinks +
+ ':' + settings[iframeId].resizeFrom;
+ }
+
+ function init(msg) {
+ //We have to call trigger twice, as we can not be sure if all
+ //iframes have completed loading when this code runs. The
+ //event listener also catches the page changing in the iFrame.
+ addEventListener(iframe, 'load', function() {
+ var fr = settings[iframeId].firstRun; // Reduce scope of var to function, because IE8's JS execution
+ // context stack is borked and this value gets externally
+ // changed midway through running this function.
+ trigger('iFrame.onload', msg, iframe);
+ if (!fr & amp; & amp; settings[iframeId].heightCalculationMethod in resetRequiredMethods) {
+ resetIFrame({
+ iframe: iframe,
+ height: 0,
+ width: 0,
+ type: 'init'
+ });
+ }
+ });
+ trigger('init', msg, iframe);
+ }
+
+ function checkOptions(options) {
+ if ('object' !== typeof options) {
+ throw new TypeError('Options is not an object.');
+ }
+ }
+
+ function processOptions(options) {
+ options = options || {};
+ settings[iframeId] = {
+ firstRun: true
+ };
+
+ checkOptions(options);
+
+ for (var option in defaults) {
+ if (defaults.hasOwnProperty(option)) {
+ settings[iframeId][option] = options.hasOwnProperty(option) ? options[option] : defaults[option];
+ }
+ }
+
+ logEnabled = settings[iframeId].log;
+ }
+
+ var
+ /*jshint validthis:true */
+ iframe = this,
+ iframeId = ensureHasId(iframe.id);
+
+ processOptions(options);
+ setScrolling();
+ setLimits();
+ setupBodyMarginValues();
+ init(createOutgoingMsg());
+ }
+
+ function throttle(fn, time) {
+ if (null === timer) {
+ timer = setTimeout(function() {
+ timer = null;
+ fn();
+ }, time);
+ }
+ }
+
+ function winResize() {
+ function isIFrameResizeEnabled(iframeId) {
+ return 'parent' === settings[iframeId].resizeFrom & amp; & amp;
+ settings[iframeId].autoResize & amp; & amp;
+ !settings[iframeId].firstRun;
+ }
+
+ throttle(function() {
+ for (var iframeId in settings) {
+ if (isIFrameResizeEnabled(iframeId)) {
+ trigger('Window resize', 'resize', document.getElementById(iframeId), iframeId);
+ }
+ }
+ }, 66);
+ }
+
+ function factory() {
+ function init(element, options) {
+ if (!element.tagName) {
+ throw new TypeError('Object is not a valid DOM element');
+ } else if ('IFRAME' !== element.tagName.toUpperCase()) {
+ throw new TypeError('Expected &lt;IFRAME&gt; tag, found &lt;' + element.tagName + '&gt;.');
+ } else {
+ setupIFrame.call(element, options);
+ }
+ }
+
+ setupRequestAnimationFrame();
+ addEventListener(window, 'message', iFrameListener);
+ addEventListener(window, 'resize', winResize);
+
+ return function iFrameResizeF(options, target) {
+ switch (typeof(target)) {
+ case 'undefined':
+ case 'string':
+ Array.prototype.forEach.call(document.querySelectorAll(target || 'iframe'), function(element) {
+ init(element, options);
+ });
+ break;
+ case 'object':
+ init(target, options);
+ break;
+ default:
+ throw new TypeError('Unexpected data type (' + typeof(target) + ').');
+ }
+ };
+ }
+
+ function createJQueryPublicMethod($) {
+ $.fn.iFrameResize = function $iFrameResizeF(options) {
+ return this.filter('iframe').each(function(index, element) {
+ setupIFrame.call(element, options);
+ }).end();
+ };
+ }
+
+ // if (typeof define === 'function' &amp;&amp; define.amd) {
+ // define([],factory);
+ // } else if (typeof module === 'object' &amp;&amp; typeof module.exports === 'object') { //Node for browserfy
+ // module.exports = factory();
+ // } else {
+ window.iFrameResizeSA = window.iFrameResizeSA || factory();
+ // }
+
+ })(window || {});
+ }
+
+ iFrameResizeSA({
+ log: false,
+ checkOrigin: false
+ }, document.getElementById('sa_swtYhka26oGQ'));
+
+ (function() {
+ var hasTriggered = false;
+
+ //
+ // check whether element is visible
+ //
+ var el = document.getElementById('sa_swtYhka26oGQ');
+
+ var isElementInViewport = function(el) {
+ var rect = el.getBoundingClientRect();
+ return (rect.top & lt; = (window.innerHeight || document.documentElement.clientHeight));
+ }
+
+ var onVisibilityChange = function(el, callback) {
+ return function() {
+ if (!hasTriggered) {
+ var visible = isElementInViewport(el);
+ if (visible) {
+ // set hasTriggered flag to true
+ hasTriggered = true;
+ // send message to iframe
+ parent.postMessage("fnfsvm:on_visible", "*");
+ el.contentWindow.postMessage("fnfsvm:on_visible", "*");
+ }
+ }
+ }
+ }
+
+ var isIE10 = false;
+ if (window.PointerEvent || window.navigator.msPointerEnabled || document.documentMode) {
+ isIE10 = true;
+ }
+
+ //
+ // PC / SA-6873 // The code block below queues up the "on_visible" message, since
+ // this is getting sent to the iFrame *before* the widget code is loaded -- and
+ // hence being missed. We therefore wait for the on_load event first, and send
+ // the on_visible event, if the visible event came through before the on_load
+ //
+ var isLoaded = false,
+ isVisibleQueued = false;
+ var localListener = function(event) {
+ if (!isLoaded & amp; & amp; typeof(event.data) === "string") {
+ var data = event.data;
+ if (data.indexOf(random) == 0) {
+ var event = data.substr(data.indexOf(":") + 1);
+ if (event == "on_load") {
+ isLoaded = true;
+ if (isVisibleQueued) {
+ el.contentWindow.postMessage("fnfsvm:on_visible", "*");
+ }
+ }
+ if (event == "on_visible") {
+ if (!isLoaded) {
+ // queue up the isVisible event
+ isVisibleQueued = true;
+ }
+ }
+ }
+ }
+ }
+
+ if (window.addEventListener) {
+ addEventListener("message", localListener, false);
+ } else {
+ attachEvent("onmessage", localListener);
+ }
+
+ var mouseUpHandler = function(e) {
+ if (isIE10) {
+ el.contentWindow.postMessage("fnfsvm:on_mouse_up", "*");
+ }
+ };
+
+ var mouseDownHandler = function(e) {
+ el.contentWindow.postMessage("fnfsvm:on_mouse_down", "*");
+ };
+
+ var handler = onVisibilityChange(el);
+
+ if (window.addEventListener) {
+ addEventListener('DOMContentLoaded', handler, false);
+ addEventListener('load', handler, false);
+ addEventListener('scroll', handler, false);
+ addEventListener('resize', handler, false);
+ addEventListener('mouseup', mouseUpHandler, false);
+ addEventListener('mousedown', mouseDownHandler, false);
+ } else if (window.attachEvent) {
+ attachEvent('onDOMContentLoaded', handler); // IE9+ :(
+ attachEvent('onload', handler);
+ attachEvent('onscroll', handler);
+ attachEvent('onresize', handler);
+ attachEvent('onmouseup', mouseUpHandler);
+ attachEvent('onmousedown', mouseDownHandler);
+ }
+
+ if (window.attachEvent) {
+ window.attachEvent('onresize', function() {
+ //console.log("ID: sa_swtYhka26oGQ");
+ resizeFrame();
+ });
+ } else if (window.addEventListener) {
+ window.addEventListener('resize', function() {
+ //console.log("ID: sa_swtYhka26oGQ");
+ resizeFrame();
+ }, true);
+ }
+
+ //
+ // set height/width on startup
+ //
+ var resizeFrame = function() {
+ var width = document.getElementById('sa_swtYhka26oGQ').parentNode.offsetWidth;
+ document.getElementById('sa_swtYhka26oGQ').style.width = width + "px";
+ }
+
+ // resize frame on startup
+ resizeFrame();
+
+ // check visibiliy (note the (), since onVisibilityChange is a function-ref)
+ onVisibilityChange(el)();
+
+ // resize on timeout
+ setTimeout(function() {
+ resizeFrame();
+ }, 2000);
+ })();
+ </script>
+
+ <div class="cnnhdr">
+ Powered by SmartAsset.com
+ </div>
+
+ <iframe id="sa_swtYhka26oGQ" class="sa-iframe" name="sa_swtYhka26oGQ" src="https://smartasset.com/embed/retirementcalculatorc?&amp;key=bdknf2rinbhwvdksm6zbmhf3twrv4oih&amp;src=http%253A%252F%252Fmoney.cnn.com%252F2016%252F02%252F01%252Fnews%252Feconomy%252Fpoverty-inequality-united-states%252Findex.html&amp;ref=&amp;ver=1.1&amp;rnd=fnfsvm" scrolling="no" style="overflow: hidden; width: 300px; height: 512px;"></iframe>
+
+ <div id="sa_swtYhka26oGQ-img">
+ <a class="rightcnn" href="#" onclick="saCnnClick();return false;">Disclosures</a>
+ <a href="https://smartasset.com" target="_blank">SmartAsset.com</a>
+ </div>
+
+
+ <img src="https://smrt.as/ck" style="height:0px; width:0px;display: none;border:none;outline:none;position:absolute" />
+
+
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <p style=""> Among its key findings: the class you're born into matters much more in the U.S. than many of the other countries. </p>
+ <p style=""> As the <a href="http://web.stanford.edu/group/scspi-dev/cgi-bin/publications/state-union-report" target="_blank">report states</a>: "[T]he birth lottery matters more in the U.S. than in most well-off countries." </p>
+ <div id="ad_nat_btf_03" style="display: none;" data-google-query-id="CMe4wLjy3NECFYkjvQodgmEMMw" class=" adfuel-rendered">
+ <div id="google_ads_iframe_/8663477/CNNMoney/economy/main_4__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/8663477/CNNMoney/economy/main_4" title="3rd party ad content" name="google_ads_iframe_/8663477/CNNMoney/economy/main_4" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" srcdoc="" width="1" height="2" frameborder="0"></iframe></div>
+ </div>
+ <p style=""> But this wasn't the only finding that suggests the U.S. isn't quite living up to its reputation as a country where everyone has an equal chance to get ahead through sheer will and hard work. </p>
+ <p style=""> <a href="http://money.cnn.com/2016/01/11/news/economy/rich-taxes/index.html?iid=EL"><span class="inStoryHeading">Related: Rich are paying more in taxes but not as much as they used to</span></a> </p>
+ <div class="teads-inread">
+ <div style="position: relative;">
+ <div class="teads-ui-components-label">ADVERTISING</div>
+ <div class="teads-player" id="teads0"></div>
+ <div class="teads-ui-components-credits"><a href="http://inread-experience.teads.tv" target="_blank"><span class="teads-ui-components-credits-colored">inRead</span> invented by Teads</a></div>
+ </div>
+ </div>
+ <p style=""> The report also suggested the U.S. might not be the "jobs machine" it thinks it is, when compared to other countries. </p>
+ <p style=""> It ranked near the bottom of the pack based on the levels of unemployment among men and women of prime working age. The study determined this by taking the ratio of employed men and women between the ages of 25 and 54 compared to the total population of each country. </p>
+ <p style=""> The overall rankings of the countries were as follows:<span> <br />1. Finland <span> <br />2. Norway<span> <br />3. Australia <span> <br />4. Canada<span> <br />5. Germany<span> <br />6. France<span> <br />7. United Kingdom <span> <br />8. Italy<span> <br />9. Spain<span> <br />10. United States </span></span>
+ </span>
+ </span>
+ </span>
+ </span>
+ </span>
+ </span>
+ </span>
+ </span>
+ </p>
+ <p style=""> The low ranking the U.S. received was due to its extreme levels of wealth and income inequality and the ineffectiveness of its "safety net" -- social programs aimed at reducing poverty. </p>
+ <p style=""> <a href="http://money.cnn.com/2016/01/05/news/economy/chicago-segregated/index.html?iid=EL"><span class="inStoryHeading">Related: Chicago is America's most segregated city</span></a> </p>
+ <p style=""> The report concluded that the American safety net was ineffective because it provides only half the financial help people need. Additionally, the levels of assistance in the U.S. are generally lower than in other countries. </p>
+ <div id="storyFooter"></div>
+ <div class="clearfix"></div>
+ <div class="storytimestamp"> <span class="cnnStorySource"> CNNMoney (New York) </span> <span class="cnnDateStamp">First published February 1, 2016: 1:28 AM ET</span> </div>
+ </div>
+ <!--/storytext-->
+ <div class="foot">
+ <div id="postedin"></div>
+ <div class="clearFloat"></div>
+ </div>
+ </div>
+ </article>
+ <div class="cnnoutbrain outbrain-recommended" id="js-outbrain-recommended">
+ <div id="ob_holder" style="display: none;"><iframe id="ob_iframe" style="display: none; width: 1px; height: 1px;" src="about:blank"></iframe></div>
+ <div class="OUTBRAIN" data-widget-id="AR_11" data-src="http://money.cnn.com/2016/02/01/news/economy/poverty-inequality-united-states/index.html" data-ob-template="cnnmoney" data-ob-mark="true" data-browser="firefox" data-os="macintel" data-dynload="" data-idx="0" id="outbrain_widget_0"></div>
+ </div>
+ <div class="cnnoutbrain outbrain-relateds" id="js-outbrain-relateds">
+ <div class="OUTBRAIN" data-widget-id="AR_6" data-src="http://money.cnn.com/2016/02/01/news/economy/poverty-inequality-united-states/index.html" data-ob-template="cnnmoney" data-ob-mark="true" data-browser="firefox" data-os="macintel" data-dynload="" data-idx="1" id="outbrain_widget_1"></div>
+ </div>
+ <script type="text/javascript">
+ window._mNHandle = window._mNHandle || {};
+ window._mNHandle.queue = window._mNHandle.queue || [];
+ medianet_versionId = "121199";
+ (function() {
+ var sct = document.createElement("script"),
+ sctHl = document.getElementsByTagName("script")[0],
+ isSSL = 'https:' == document.location.protocol;
+ sct.type = "text/javascript";
+ sct.src = (isSSL ? 'https:' : 'http:') + '//contextual.media.net/dmedianet.js?cid=8CUS8896N' + (isSSL ? '&amp;https=1' : '') + '';
+ sct.async = "async";
+ sctHl.parentNode.insertBefore(sct, sctHl);
+ })();
+ </script>
+
+ <div id="medianet" style="width: 780px; height: 218px; margin: 20px auto;">
+ <div id="461374455">
+ <script type="text/javascript">
+ try {
+ window._mNHandle.queue.push(function() {
+ window._mNDetails.loadTag("461374455", "780x218", "461374455");
+ });
+ } catch (error) {}
+ </script>
+ <iframe marginwidth="0" marginheight="0" scrolling="no" id="_mN_dy_461374455" width="100%" height="218" frameborder="0"></iframe></div>
+ </div>
+ <script>
+ var SMARTASSET = SMARTASSET || {};
+ SMARTASSET.setDivIndex = function(i) {
+ return i;
+ }
+
+ SMARTASSET.setSmartAssetDiv = function() {
+ // get paragraphs only in the storytext
+ var storytext = document.getElementById('storytext');
+ var currentParagraph;
+ var smartasset;
+ var i;
+ var heights = 0;
+ var limit = 1875;
+ var afterParagraphFour = false;
+ var insertAfterThisParagraphIndex = -1;
+ var smartAssetDiv = '&lt;div id="smartassetcontainer" class="module" style="float:none; width: 300px; margin-bottom:0;"&gt;&lt;div class="module" style="height:35px; margin-bottom:0;"&gt;&lt;div class="module-body" style="padding-top:0;"&gt;&lt;div id="smartasset-article" class="collapsible"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;';
+ for (i = 0; i & lt; storytext.childNodes.length; i++) {
+ if (storytext.childNodes[i].nodeName.toLowerCase() === 'p') {
+ if (!afterParagraphFour & amp; & amp; i & gt; 4) {
+ afterParagraphFour = true;
+ }
+ currentParagraph = storytext.childNodes[i];
+ heights += currentParagraph.clientHeight;
+ if (heights & gt; = limit & amp; & amp; insertAfterThisParagraphIndex === -1) {
+ insertAfterThisParagraphIndex = SMARTASSET.setDivIndex(i);
+ console.log("insert after paragraph number " + i);
+ console.log("HEIGHTS = " + heights);
+ console.log("LIMIT = " + limit);
+ }
+ }
+ /* div with id="ie_column" */
+ else if (storytext.childNodes[i].nodeName.toLowerCase() === 'div' & amp; & amp; storytext.childNodes[i].id !== "undefined" & amp; & amp; storytext.childNodes[i].id === "ie_column") {
+ heights = 0;
+ limit = 80;
+ insertAfterThisParagraphIndex = -1
+ }
+ /* embeds from twitter, facebook, youtube */
+ else if (storytext.childNodes[i].nodeName.toLowerCase() === 'div' & amp; & amp; storytext.childNodes[i].classList.contains('embed')) {
+ heights = 0;
+ limit = 80;
+ insertAfterThisParagraphIndex = -1
+ }
+ /* cnn video player */
+ else if (storytext.childNodes[i].nodeName.toLowerCase() === 'div' & amp; & amp; storytext.childNodes[i].classList.contains('cnnplayer')) {
+ heights = 0;
+ limit = 80;
+ insertAfterThisParagraphIndex = -1
+ }
+ /* images */
+ else if (storytext.childNodes[i].nodeName.toLowerCase() === 'img') {
+ heights = 0;
+ limit = 80;
+ }
+ /* images stored in figure tags */
+ else if (storytext.childNodes[i].nodeName.toLowerCase() === 'figure') {
+ heights = 0;
+ limit = 80;
+ }
+ }
+ if (heights & gt; = 875 & amp; & amp; afterParagraphFour) {
+ storytext.childNodes[insertAfterThisParagraphIndex].insertAdjacentHTML('afterend', smartAssetDiv);
+ smartasset = document.getElementById('smartasset-article');
+ smartasset.style.float = 'left'; // allows module to have text float to right
+ smartasset.style.marginRight = '20px';
+ smartasset.style.marginBottom = '25px';
+ }
+ }
+
+ SMARTASSET.setSmartAssetScript = function() {
+ console.log('starting setSmartAssetScript');
+ SA = document.SA || [];
+ SA.push({
+ embedUrl: "https://smartasset.com",
+ container: "#smartasset-article",
+ version: 1.1,
+ data: {
+ key: "bdknf2rinbhwvdksm6zbmhf3twrv4oih"
+ }
+ /*{ key: "CNNe038d38a57032085441e7fe7010b0" }*/
+ });
+ console.log('finished in setSmartAssetScript push() call');
+
+ var smscript = document.createElement("script");
+ smscript.type = "text/javascript";
+ smscript.async = true;
+ smscript.src = ("https:" == document.location.protocol ? "https://" : "http://") + "smartasset.com/embed.js";
+
+ var s = document.getElementsByTagName("script")[0];
+ s.parentNode.insertBefore(smscript, s);
+ console.log("finished entire function of setSmartAssetFunction()");
+ };
+ SMARTASSET.setSmartAssetDiv();
+ SMARTASSET.setSmartAssetScript();
+ </script>
+ </section>
+ <section class="column">
+
+
+
+
+
+ <div class="module module-surge-story js-surge-module">
+ <a href="http://money.cnn.com/surge/?iid=surge-landing">
+ <h3 class="module-header">Social Surge - What's Trending</h3>
+ <div class="module-surge-story-icon"></div>
+ </a>
+ <div class="module-body">
+ <ul class="summary-list summary-list-thumbs summary-list-numbered">
+
+
+
+
+
+ <li>
+ <a class="summary summary-hed" href="http://money.cnn.com/2017/01/23/pf/cfpb-citi-mortgage-fined/index.html?iid=surge-story-summary">
+
+ <figure class="thumb-image pull-left">
+
+
+
+
+
+ <img src="http://i2.cdn.turner.com/money/dam/assets/170123170010-cfpb-citi-subsidiaries-124x70.jpg" alt="Citi mortgage units fined $28.8 million" width="124" border="0" height="70" />
+
+
+
+ </figure>
+
+ <figcaption class="thumb-caption">
+ Citi mortgage units fined $28.8 million
+ </figcaption>
+ <div style="clear:both"></div>
+ </a>
+
+
+ </li>
+
+
+
+
+
+ <li>
+ <a class="summary summary-hed" href="http://money.cnn.com/2017/01/24/news/airasia-us-flights-low-cost-budget-airline/index.html?iid=surge-story-summary">
+
+ <figure class="thumb-image pull-left">
+
+
+
+
+
+ <img src="http://i2.cdn.turner.com/money/dam/assets/170124063354-air-asia-x-124x70.jpg" alt="First low-cost Asian airline cleared for flights to the U.S." width="124" border="0" height="70" />
+
+
+
+ </figure>
+
+ <figcaption class="thumb-caption">
+ First low-cost Asian airline cleared for flights to the U.S.
+ </figcaption>
+ <div style="clear:both"></div>
+ </a>
+
+
+ </li>
+
+
+
+
+
+ <li>
+ <a class="summary summary-hed" href="http://money.cnn.com/gallery/luxury/2017/01/24/scottsdale-collector-car-auctions/index.html?iid=surge-story-summary">
+
+ <figure class="thumb-image pull-left">
+
+
+
+
+
+ <img src="http://i2.cdn.turner.com/money/dam/assets/170123114700-scottsdale-auctions-1963-jaguar-etype-124x70.jpg" alt="Most expensive cars from the Scottsdale collector car auctions" width="124" border="0" height="70" />
+
+
+
+ </figure>
+
+ <figcaption class="thumb-caption">
+ Most expensive cars from the Scottsdale collector car auctions
+ </figcaption>
+ <div style="clear:both"></div>
+ </a>
+
+ <div class="surge-sponsored">
+
+
+
+ <div id="ad_mod_b5d9c7a2a" style="display: none;" data-google-query-id="CMK4wLjy3NECFYkjvQodgmEMMw" class=" adfuel-rendered">
+ <div id="google_ads_iframe_/8663477/CNNMoney/surge_0__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/8663477/CNNMoney/surge_0" title="3rd party ad content" name="google_ads_iframe_/8663477/CNNMoney/surge_0" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" srcdoc="" width="175" height="31" frameborder="0"></iframe></div><iframe id="google_ads_iframe_/8663477/CNNMoney/surge_0__hidden__" title="" name="google_ads_iframe_/8663477/CNNMoney/surge_0__hidden__" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom; visibility: hidden; display: none;" srcdoc="" width="0" height="0" frameborder="0"></iframe></div>
+
+ </div>
+
+ </li>
+
+
+
+
+ </ul>
+
+ </div>
+ </div>
+
+ <div id="adsquare">
+ <div id="ad_rect_atf_01" style="" data-google-query-id="CMW4wLjy3NECFYkjvQodgmEMMw" class=" adfuel-rendered">
+ <div id="google_ads_iframe_/8663477/CNNMoney/economy/main_2__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/8663477/CNNMoney/economy/main_2" title="3rd party ad content" name="google_ads_iframe_/8663477/CNNMoney/economy/main_2" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" srcdoc="" width="300" height="250" frameborder="0"></iframe></div>
+ </div>
+ </div>
+ <style>
+ #cnnBody .module {
+ border-bottom: 1px solid #ddd;
+ }
+
+ #cnnBody .module-body {
+ background: transparent;
+ margin-bottom: 15px;
+ padding: 0;
+ }
+
+ #cnnBody .module-header {
+ background: transparent;
+ color: #151515;
+ font-size: 20px;
+ padding: 0;
+ margin-bottom: 23px;
+ }
+
+ #cnnBody .module-body.sponsored .sponsor {
+ padding: 20px 0;
+ }
+ </style>
+
+ <div class="module mortgage-and-savings">
+ <h3 class="module-header">Mortgage &amp; Savings
+ <div class="paid-partner module-heading-right">Powered by LendingTree</div>
+ </h3>
+ <div class="module-body">
+ <iframe src="http://offers.lendingtree.com/splitter/splitter.ashx?id=ns-cnn-rtwidget&amp;widget_height_cssclass=h414&amp;splitter_personal=ns-cnn-rt-pl&amp;splitter_mortgage=ns-cnn-rt-m&amp;siteid=markets&amp;esourceid=6201916&amp;esourceid_personal=6213006" scrolling="no" id="widgetFrame" title="LendingTree Widget" class="ng-pristine ng-valid" width="300px" height="354px" frameborder="0"></iframe>
+ <div style="height:30px">
+ <a href="https://www.lendingtree.com" target="_blank" style="display: inline-block;">
+ <img id="lt-logo" class="logowrap" src="http://widgets.lendingtree.com/Content/images/white-logo.jpg" alt="LendingTree" />
+ </a>
+ <div style="float: right; padding-top: 10px;">
+ <div>
+ <span style="color: #c2c2c2; font-family: arial; font-size: 9px; text-decoration: none;">Terms &amp; Conditions apply</span>
+ <p style="font-size: 8px; color: #c2c2c2; font-family: arial; line-height: normal; text-align: right; margin-bottom: 0; margin-top: 4px;">NMLS #1136</p>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div class="module glass-door">
+ <h3 class="module-header">Search for Jobs
+ <div class="paid-partner module-heading-right">Powered by Indeed</div>
+ </h3>
+ <div class="module-body sponsored">
+ <!--BEGIN: Indeed widget include -->
+ <div id="gdWidgetStatic">
+ <div class="cnnrow">
+ <div class="defaultWidgetBody widgetBody">
+ <div id="Content">
+ <div id="Contentrow">
+ <div class="col1 searchFormrow defaultSearchForm">
+ <div class="h2">Millions of job openings!</div>
+
+ <form action="http://www.indeed.com/jobs" class="clear" id="gd_jsform" name="gd_jsform" target="_job">
+ <input name="indpubnum" value="7133302637958085" type="hidden" />
+ <div class="inputrow">
+ <fieldset>
+ <input class="sbox keyword" id="keyword" name="q" placeholder="Job title" type="text" />
+ </fieldset>
+
+ <fieldset>
+ <input class="sbox location" id="location" name="l" placeholder="Location" type="text" />
+ </fieldset>
+ </div>
+ <button class="cnnm-btn" id="searchButton" type="submit">Find Jobs <i class="icon icon--arrow-right"></i>
+ </button>
+ </form>
+ </div>
+
+ <div class="row three-equal-columns categories">
+ <div class="column">
+ <ul>
+ <li>
+ <a href="http://www.indeed.com/jobs?q=Accounting&amp;indpubnum=7133302637958085" target="_blank">Accounting</a>
+ </li>
+
+ <li>
+ <a href="http://www.indeed.com/jobs?q=Finance&amp;indpubnum=7133302637958085" target="_blank">Finance</a>
+ </li>
+
+ <li>
+ <a href="%20http://www.indeed.com/jobs?q=Marketing&amp;indpubnum=7133302637958085" target="_blank">Marketing</a>
+ </li>
+ </ul>
+ </div>
+
+ <div class="column">
+ <ul>
+ <li>
+ <a href="http://www.indeed.com/jobs?q=Engineering&amp;indpubnum=7133302637958085" target="_blank">Engineering</a>
+ </li>
+
+ <li>
+ <a href="http://www.indeed.com/jobs?q=Management&amp;indpubnum=7133302637958085" target="_blank">Management</a>
+ </li>
+
+ <li>
+ <a href="http://www.indeed.com/jobs?q=Sales&amp;indpubnum=7133302637958085" target="_blank">Sales</a>
+ </li>
+ </ul>
+ </div>
+
+ <div class="column">
+ <ul>
+ <li>
+ <a href="http://www.indeed.com/jobs?q=Developer&amp;indpubnum=7133302637958085" target="_blank">Developer</a>
+ </li>
+
+ <li>
+ <a href="http://www.indeed.com/jobs?q=Media&amp;indpubnum=7133302637958085" target="_blank">Media</a>
+ </li>
+
+ <li>
+ <a href="http://www.indeed.com/jobs?indpubnum=7133302637958085" target="_blank">See all jobs</a>
+ </li>
+ </ul>
+ </div>
+ </div>
+
+ <a href="http://www.indeed.com/hire?indpubnum=7133302637958085" target="_blank">Employers / Post a Job</a>
+ <div class="clear"></div>
+ <blockquote class="sponsor">
+ <span id="indeed_at">
+ <a href="http://www.indeed.com/?indpubnum=7133302637958085" style="text-decoration: none; color: #000" target="_blank">jobs</a> by<a href="http://www.indeed.com/?indpubnum=7133302637958085" target="_blank" title="Job Search" style="float:right; margin-top:2px;"><img src="/.element/ssi/partners/indeed/8.0/indeed_blue.png" style="border: 0; vertical-align: middle" alt="job search" />
+ </a>
+ </span>
+ </blockquote>
+ </div>
+ </div>
+
+ <div class="clear"></div>
+ </div>
+ </div>
+ </div>
+ <!--END: Indeed widget include-->
+ </div>
+ </div>
+ <div class="cnnoutbrain outbrain-module" id="js-outbrain-rightrail-ads-module">
+ <div class="OUTBRAIN" data-widget-id="AR_34" data-src="http://money.cnn.com/2016/02/01/news/economy/poverty-inequality-united-states/index.html" data-ob-template="cnnmoney" data-ob-mark="true" data-browser="firefox" data-os="macintel" data-dynload="" data-idx="2" id="outbrain_widget_2"></div>
+ </div>
+ <style>
+ body.blog .cnnoutbrain {
+ border: 1px solid #ddd;
+ background-color: #fff;
+ margin-bottom: 5px;
+ padding: 10px 9px;
+ }
+ </style>
+ <div class="cnnoutbrain outbrain-module" id="js-outbrain-module">
+ <div class="OUTBRAIN" data-widget-id="AR_5" data-src="http://money.cnn.com/2016/02/01/news/economy/poverty-inequality-united-states/index.html" data-ob-template="cnnmoney" data-ob-mark="true" data-browser="firefox" data-os="macintel" data-dynload="" data-idx="3" id="outbrain_widget_3"></div>
+ </div>
+ <div id="lendingtree" class="module">
+ <h3 class="boxHeading module-header" style="width: 100%; margin-bottom: 0;">LendingTree
+ <div class="paid-partner module-heading-right">Paid Partner</div>
+ </h3>
+ <div class="module-body" style="padding-top:0;">
+ <iframe src="https://offers.lendingtree.com/splitter/splitter.ashx?id=cnn-money-cp" border="0" scrolling="no" style="border:0;" width="300" height="400"></iframe>
+ </div>
+ </div>
+ <div id="before-the-bell-newletter-mod" class="module">
+ <style>
+ .before-the-bell-newsletter-body {
+ color: #fff;
+ }
+
+ h3.email-signup-description {
+ margin: 0 auto;
+ font-size: 1.05em;
+ margin-top: 5%;
+ text-align: center;
+ width: 100%;
+ }
+
+ p.email-signup-description {
+ font-size: 0.8em;
+ text-align: center;
+ padding: 0px 20px;
+ margin: 10px 0px 25px 0px;
+ }
+
+ #mc-embedded-subscribe {
+ background-color: #14222F;
+ border: none;
+ color: #fff;
+ font-size: 16px;
+ height: 43px;
+ margin: 17.5px 5px 17.5px 15px;
+ text-indent: -35px;
+ width: 150px;
+ }
+
+ div.before-the-bell-sponsor-banner {
+ text-align: center;
+ margin: 20px 0px;
+ }
+
+ div.before-the-bell-sponsor-banner &gt;
+ span {
+ color: white;
+ font-size: 10px;
+ }
+
+ div.before-the-bell-sponsor-banner &gt;
+ img {
+ position: relative;
+ width: 100px;
+ top: 1px;
+ right: -5px;
+ }
+
+ #mce-EMAIL {
+ background-color: #E6E6E6;
+ border: none;
+ color: #000;
+ display: block;
+ font-size: 15px;
+ height: 40px;
+ margin: 0 auto;
+ margin-top: 15px;
+ text-indent: 10px;
+ width: 90%;
+ }
+
+ #mce-responses .response {
+ margin: 0 auto;
+ margin-top: 5px;
+ width: 90%;
+ }
+
+ div.mce_inline_error {
+ position: relative;
+ font-size: 12px;
+ padding: 5px 0px 0px 17px;
+ }
+
+ .btb-privacy-policy {
+ font-size: 12px !important;
+ color: white;
+ }
+
+ .btb-privacy-policy:hover {
+ color: #ccc;
+ }
+
+ #mce-error-response {
+ font-size: 12px;
+ }
+
+ #mce-success-response {
+ font-size: 12px;
+ }
+
+ #mce-error-response &gt;
+ a {
+ font-size: 12px;
+ display: block;
+ }
+ </style>
+ <!-- Begin MailChimp Signup Form -->
+ <form action="//cnn.us11.list-manage.com/subscribe/post?u=47c9040f6ff957a59bd88396e&amp;id=1d49e2a168" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate="novalidate">
+ <h3 class="module-header">Newsletter</h3>
+ <div class="before-the-bell-newsletter-module" style="background-size: contain; background: #000 url(http://i.cdn.turner.com/money/.element/img/8.0/newsletters/beforethebell/right-rail-sign-up-skin-2.0_2X.png) no-repeat">
+ <div class="before-the-bell-newsletter-banner">
+ <img src="http://i.cdn.turner.com/money/.element/img/8.0/newsletters/beforethebell/right-rail-sign-up-logo_2X.png" style="width: 50%; margin-top: 10%; margin-left: 25%;" />
+
+ <div class="before-the-bell-sponsor-banner">
+ <span>Sponsored by</span>
+ <img src="http://i.cdn.turner.com/money/.element/img/8.0/newsletters/beforethebell/etrade-logo-2.png" />
+ </div>
+
+ </div>
+ <div class="before-the-bell-newsletter-body">
+ <h3 class="email-signup-description"><strong>Key market news. In your inbox.<br />Every morning.</strong></h3>
+
+ <div class="mc-field-group">
+ <p class="email-signup-description">Start your day right with the latest news driving global markets, from major stock movers and key economic headlines to important events on the calendar. Daily newsletter, Sunday through Friday.</p>
+ <input value="" name="EMAIL" class="required email" id="mce-EMAIL" placeholder="Enter email address" aria-required="true" type="email" />
+ </div>
+ <div id="mce-responses" class="clear">
+ <div class="response" id="mce-error-response" style="display:none"></div>
+ <div class="response" id="mce-success-response" style="display:none"></div>
+ </div>
+ <!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
+ <div style="position: absolute; left: -5000px;"><input name="b_47c9040f6ff957a59bd88396e_e95cdc16a9" tabindex="-1" value="" type="text" /></div>
+ <div class="clear">
+ <div style="position: relative; display: inline-block;">
+ <input name="MERGE1" id="MERGE1" value="economy_article" type="hidden" />
+ <input value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button" type="submit" />
+ <i id="rr-subscription-arrow" class="icon icon--arrow-right" style="position: absolute; top: 32px; right:30px;"></i>
+ </div>
+ <div style="display:inline-block; position: relative;">
+ <a class="btb-privacy-policy" href="http://money.cnn.com/services/privacy/" target="_blank" style="position: absolute; font-size: 14px; text-align:right; display: block; width: 106px;">Privacy Policy</a>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ </form>
+ <script type="text/javascript" src="//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js"></script>
+ <script type="text/javascript">
+ (function($) {
+ window.fnames = new Array();
+ window.ftypes = new Array();
+ fnames[0] = 'EMAIL';
+ ftypes[0] = 'email';
+ }
+
+ (jQuery));
+ var $mcj = jQuery.noConflict(true);
+ </script>
+ </div>
+ <div id="moneySponsors" class="module">
+ <h3 class="boxHeading module-header">CNNMoney Sponsors</h3>
+ <div class="module-body partner-center-module">
+ <ul class="summary-list">
+ <li>
+ <div id="ad_mod_048fa0f34" style="display: none;" data-google-query-id="CMi4wLjy3NECFYkjvQodgmEMMw" class=" adfuel-rendered">
+ <div id="google_ads_iframe_/8663477/CNNMoney_0__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/8663477/CNNMoney_0" title="3rd party ad content" name="google_ads_iframe_/8663477/CNNMoney_0" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" srcdoc="" width="300" height="25" frameborder="0"></iframe></div>
+ </div>
+ </li>
+ <li>
+ <div id="ad_mod_439fb79c2" style="display: none;" data-google-query-id="CMm4wLjy3NECFYkjvQodgmEMMw" class=" adfuel-rendered">
+ <div id="google_ads_iframe_/8663477/CNNMoney_1__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/8663477/CNNMoney_1" title="3rd party ad content" name="google_ads_iframe_/8663477/CNNMoney_1" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" srcdoc="" width="300" height="25" frameborder="0"></iframe></div>
+ </div>
+ </li>
+ <li>
+ <div id="ad_mod_f5abb3fc6" style="display: none;" data-google-query-id="CMq4wLjy3NECFYkjvQodgmEMMw" class=" adfuel-rendered">
+ <div id="google_ads_iframe_/8663477/CNNMoney_2__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/8663477/CNNMoney_2" title="3rd party ad content" name="google_ads_iframe_/8663477/CNNMoney_2" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" srcdoc="" width="300" height="25" frameborder="0"></iframe></div>
+ </div>
+ </li>
+ <li>
+ <div id="ad_mod_a60ca7487" style="display: none;" data-google-query-id="CMu4wLjy3NECFYkjvQodgmEMMw" class=" adfuel-rendered">
+ <div id="google_ads_iframe_/8663477/CNNMoney_3__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/8663477/CNNMoney_3" title="3rd party ad content" name="google_ads_iframe_/8663477/CNNMoney_3" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" srcdoc="" width="300" height="25" frameborder="0"></iframe></div>
+ </div>
+ </li>
+ <li>
+ <div id="ad_mod_a7cebd199" style="display: none;" data-google-query-id="CMy4wLjy3NECFYkjvQodgmEMMw" class=" adfuel-rendered">
+ <div id="google_ads_iframe_/8663477/CNNMoney_4__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/8663477/CNNMoney_4" title="3rd party ad content" name="google_ads_iframe_/8663477/CNNMoney_4" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" srcdoc="" width="300" height="25" frameborder="0"></iframe></div>
+ </div>
+ </li>
+ </ul>
+ </div>
+ </div>
+
+
+
+
+
+ <div class="module">
+ <h3 class="module-header">Partner Offers
+ <div class="paid-partner module-heading-right">Paid Partner</div>
+ </h3>
+ <div class="module-body">
+ <ul class="summary-list">
+ <iframe valign="middle" marginheight="0" marginwidth="0" vspace="0" hspace="0" scrolling="NO" src="//www.dianomi.com/smartads.epl?id=2622" width="300" height="400" frameborder="0"></iframe>
+
+ </ul>
+ </div>
+ </div>
+ <div class="module">
+ <a class="full-width-header" target="_other" href="http://www.nextadvisor.com/credit_cards/index.php?kw=cnnmoneybp_int_nabrand-121015">
+
+ <h3 class="module-header">NextAdvisor <i class="icon icon--arrow-right"></i>
+ <div class="paid-partner module-heading-right">Paid Partner</div>
+ </h3>
+ </a>
+ <a target="_other" href="http://www.nextadvisor.com/credit_cards/index.php?kw=cnnmoneybp_int_nabrand-121015">
+ </a>
+ <div class="module-body">
+ <ul class="summary-list">
+ <li><a class="summary summary-hed " href="http://www.nextadvisor.com/redirect.php?link=www.creditcards.com/reward.php&amp;kw=cnnmoneybp_rr_jawdropping40k_#a22105772" target="_blank">A jaw-dropping 40,000 point bonus has arrived</a></li>
+ <li><a class="summary summary-hed " href="http://www.nextadvisor.com/blog/2013/11/06/top-7-credit-card-offers-for-those-with-excellent-credit/?kw=cnnmoneybp_rr-7outrageous" target="_blank">7 outrageous credit cards if you have excellent credit</a></li>
+ <li><a class="summary summary-hed " href="http://www.nextadvisor.com/blog/2016/12/16/best-credit-cards-for-2017/?kw=cnnmoneybp_rr-best2017" target="_blank">The best credit cards for 2017</a></li>
+ <li><a class="summary summary-hed " href="http://www.nextadvisor.com/credit_cards/low_APR.php?kw=cnnmoneybp_rr-10chargecomp" target="_blank">10 cards charging 0% interest until 2018</a></li>
+ <li><a class="summary summary-hed last" href="http://www.nextadvisor.com/blog/2016/06/14/double-rewards-discover-it-cashback-match/?kw=cnnmoneybp_rr-hpcbcc" target="_blank">The highest paying cash back card has arrived</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+ <div id="adsquare">
+ <div id="ad_rect_btf_01" style="" data-google-query-id="CMa4wLjy3NECFYkjvQodgmEMMw" class=" adfuel-rendered">
+ <div id="google_ads_iframe_/8663477/CNNMoney/economy/main_3__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/8663477/CNNMoney/economy/main_3" title="3rd party ad content" name="google_ads_iframe_/8663477/CNNMoney/economy/main_3" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" srcdoc="" width="300" height="250" frameborder="0"></iframe></div>
+ </div>
+ </div>
+ </section>
+ </div>
+ </main>
+ <script language="javascript" type="text/javascript">
+ var cnnBrandingValue = "american_opportunity";
+ var cnnAuthor = "Ahiza Garcia";
+ var cnnSource = "CNN";
+ var cnnPublishDate = "2016-02-01";
+ var cnnContentType = "article";
+ var cnnOmniture_videoopps = "1";
+ </script>
+ <script language="JavaScript">
+ if (window.btnDone) btnDone();
+ </script>
+ <div id="csiIframe"></div>
+ <script>
+ function getCookie(check_name) {
+ var a_all_cookies = document.cookie.split(';');
+ var a_temp_cookie = '';
+ var ck_name = '';
+ var cookie_value = '';
+ var b_cookie_found = false;
+ for (i = 0; i & lt; a_all_cookies.length; i++) {
+ a_temp_cookie = a_all_cookies[i].split('=');
+ ck_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');
+ if (ck_name == check_name) {
+ b_cookie_found = true;
+ if (a_temp_cookie.length & gt; 1) {
+ cookie_value = unescape(a_temp_cookie[1].replace(/^\s+|\s+$/g, ''));
+ }
+ return cookie_value;
+ break;
+ }
+ a_temp_cookie = null;
+ ck_name = '';
+ }
+ if (!b_cookie_found) {
+ return null;
+ }
+ }
+
+ function setCookie(c_name, value) {
+ var exdate = new Date();
+ exdate.setDate(exdate.getDate() + 365);
+ document.cookie = c_name + "=" + escape(value) + ";expires=" + exdate.toUTCString() + ";path=/;domain=cnn.com";
+ return;
+ }
+
+ function checkCookie(set_value) {
+ if (getCookie('SelectedEdition') == null || getCookie('SelectedEdition') == "") {
+ setCookie('SelectedEdition', set_value);
+ }
+ return;
+ }
+ try {
+ checkCookie('edition');
+ } catch (e) {}
+ </script>
+
+
+ <footer class="footer footer-intl">
+ <section class="container">
+ <nav class="row four-equal-columns">
+ <div class="column">
+ <div class="list-header">
+ <div class="footer-cnnmoney-logo">
+ <img src="http://i.cdn.turner.com/money/.element/img/8.0/logos/CNNMoney-logo.png" class="cnnmoney-logo" width="220" height="82" />
+ </div>
+ </div>
+ <ul class="footer-links first">
+ <li class="footer-link"><a rel="nofollow" href="/services/speakup/speakup.html">Contact Us</a></li>
+ <li class="footer-link"><a rel="nofollow" href="/services/advertise/" target="_blank">Advertise with Us</a></li>
+ <li class="footer-link"><a rel="nofollow" href="/profile/">User Preferences</a></li>
+ <li class="footer-link"><a rel="nofollow" href="/services/closed-captioning.html">Closed Captioning</a></li>
+ </ul>
+ </div>
+
+ <div class="column">
+ <div class="list-header"> Content</div>
+ <ul class="footer-links">
+ <div class="row two-equal-columns">
+ <div class="column">
+ <li class="footer-link"><a href="/news/">Business</a></li>
+ <li class="footer-link"><a href="/markets/">Markets</a></li>
+ <li class="footer-link"><a href="/investing/">Investing</a></li>
+ <li class="footer-link"><a href="/news/economy/">Economy</a></li>
+ <li class="footer-link"><a href="/technology/">Tech</a></li>
+ </div>
+ <div class="column">
+ <li class="footer-link"><a href="/pf/">Personal Finance</a></li>
+ <li class="footer-link"><a href="/smallbusiness/">Small Business</a></li>
+ <li class="footer-link"><a href="/luxury/">Luxury</a></li>
+ <li class="footer-link"><a href="/media/">Media</a></li>
+ <li class="footer-link"><a href="/video/">Video</a></li>
+ </div>
+ </div>
+ </ul>
+ </div>
+
+ <div class="column">
+ <div class="list-header"> Tools</div>
+ <ul class="footer-links">
+ <div class="row two-equal-columns">
+ <div class="column">
+ <li class="footer-link"><a href="/services/sitemap/">Site Map</a></li>
+ <li class="footer-link"><a href="/interactive/">Interactive</a></li>
+ <li class="footer-link"><a href="https://portfolio.money.cnn.com/">Portfolio</a></li>
+ <li class="footer-link"><a href="http://jobsearch.money.cnn.com/a/all-jobs/list" target="_blank">Job Search</a></li>
+ <li class="footer-link"><a href="http://realestate.money.cnn.com/">Real Estate Search</a></li>
+ </div>
+ <div class="column">
+ <li class="footer-link"><a href="/pf/loan_center/">Loan Center</a></li>
+ <li class="footer-link"><a href="/tools/">Calculators</a></li>
+ <li class="footer-link"><a href="/news/corrections/">Corrections</a></li>
+ <li class="footer-link"><a href="/profile/">Market Data Alerts</a></li>
+ <li class="footer-link"><a href="/profile/">News Alerts</a></li>
+ </div>
+ </div>
+ </ul>
+ </div>
+
+ <div class="column">
+ <div class="list-header">Connect</div>
+ <ul class="footer-links">
+ <div class="row two-equal-columns">
+ <div class="column">
+ <li class="footer-link"><a href="/profile/" rel="nofollow">My Account</a></li>
+ <li class="footer-link"><a href="/services/mobile/" rel="nofollow">Mobile Site &amp; Apps</a></li>
+ <li class="footer-link"><a href="http://facebook.com/cnnmoney" target="_blank">Facebook</a></li>
+ <li class="footer-link"><a href="http://twitter.com/cnnmoney" target="_blank">Twitter</a></li>
+ <li class="footer-link"><a href="http://www.linkedin.com/today/money.cnn.com" target="_blank">LinkedIn</a></li>
+ </div>
+ <div class="column">
+ <li class="footer-link"><a href="http://www.youtube.com/CNNMoney" target="_blank">YouTube</a></li>
+ <li class="footer-link"><a href="/services/rss/">RSS Feeds</a></li>
+ <li class="footer-link"><a href="/profile/">Newsletters</a></li>
+ <li class="footer-link"><a href="http://cnnmoneytech.tumblr.com/">Tumblr</a></li>
+ <li class="footer-link"><a href="https://plus.google.com/115995105609774588517/" rel="publisher" target="_blank">Google+</a></li>
+ </div>
+ </div>
+ </ul>
+ </div>
+ </nav>
+ <p class="disclaimer" id="market-copyright">
+ </p>
+ <p>Most stock quote data provided by BATS. Market indices are shown in real time, except for the DJIA, which is delayed by two minutes. All times are ET. <a href="http://money.cnn.com/services/disclaimer.html">Disclaimer</a>. Morningstar: © 2016 Morningstar, Inc. All Rights Reserved. Factset: FactSet Research Systems Inc. 2016. All rights reserved. Chicago Mercantile Association: Certain market data is the property of Chicago Mercantile Exchange Inc. and its licensors. All rights reserved. Dow Jones: The Dow Jones branded indices are proprietary to and are calculated, distributed and marketed by DJI Opco, a subsidiary of S&amp;P Dow Jones Indices LLC and have been licensed for use to S&amp;P Opco, LLC and CNN. Standard &amp; Poor's and S&amp;P are registered trademarks of Standard &amp; Poor’s Financial Services LLC and Dow Jones is a registered trademark of Dow Jones Trademark Holdings LLC. All content of the Dow Jones branded indices © S&amp;P Dow Jones Indices LLC 2016 and/or its affiliates.</p>
+ <p></p>
+ <p class="copyright">
+ <style>
+ img#adchoice-logo {
+ display: initial;
+ margin-left: 5px;
+ }
+ </style>
+ © 2016 Cable News Network. A Time Warner Company. All Rights Reserved. <a href="/services/terms.html" rel="nofollow"> Terms</a> under which this service is provided to you. <a href="/services/privacy/"> Privacy Policy</a>.
+ <a id="trusteLink">
+ <script type="text/javascript" src="http://consent.truste.com/notice?domain=turner.com&amp;c=trusteLink&amp;text=true"></script>
+ </a>
+ <!--<img id="adchoice-logo" src="http://i2.cdn.turner.com/money/.element/img/1.0/services/advertise/adchoiceslogo_footer.png" width="12" height="12">-->.
+
+ <!-- legal docs include -->
+ <script type="text/javascript" src="http://z.cdn.turner.com/money/tmpl_asset/static/script/1455/js/cnnmoney.legal.docs-min.js"></script>
+ </p>
+ </section>
+ </footer>
+ <script>
+ if (window.location.hostname === "ref2.money.cnn.com") {
+ var cnnOmniture_prodenv = false;
+ } else if (window.location.hostname === "dev.money.cnn.com") {
+ var cnnOmniture_prodenv = false;
+ } else if (window.location.hostname === "train.money.cnn.com") {
+ var cnnOmniture_prodenv = false;
+ } else if (window.location.hostname === "stage.money.cnn.com") {
+ var cnnOmniture_prodenv = false;
+ } else {
+ var cnnOmniture_prodenv = true;
+ }
+ </script>
+
+ <script language="JavaScript" src="http://i.cdn.turner.com/analytics/mon/jsmd-prod.js"></script>
+ <script language="JavaScript">
+ & lt;
+ !--
+ if (window.location.pathname.indexOf(".element") == -1 & amp; & amp; window.location.href.indexOf("?fb_xd_fragment#?=&amp;") == -1 & amp; & amp; window.location.href.indexOf("search/index.html?") == -1) {
+ var jsmd = _jsmd.init();
+ jsmd.send();
+ }
+ //--&gt;
+ </script>
+ <script type="text/javascript" src="http://z.cdn.turner.com/money/.element/script/6.0/newsbeat/newsbeat.js"></script>
+
+ <!-- STILL NEEDED?
+<script language="JavaScript">
+ var R = new String(document.referrer);
+ var serveAd=1;
+ if(R.length > 0)
+ {
+ if (R.indexOf("yahoo.com") >= 0)
+ serveAd=0;
+ }
+ if(serveAd)
+ {
+ /* dynamic logic */
+ document.write('<scr'+'ipt src="http://content.dl-rms.com/rms/mother/8101/nodetag.js"></scr'+'ipt>');
+ /* ADSPACE: ros/popunders/bot.1x1 */
+ cnnad_createAd("229469","http://ads.cnn.com/html.ng/site=cnn_money&cnn_money_position=1x1_bot&params.styles=fs","1","1");
+ try { selectSurvey(); } catch(e){}
+ }
+</script>-->
+
+ <!-- Begin: www.iperceptions.com -->
+ <script src="http://ips-invite.iperceptions.com/webValidator.aspx?sdfc=8903e7fe-104983-4d96497c-d068-4528-a4f9-0dbb51a45963&amp;lID=1&amp;loc=STUDY&amp;cD=90&amp;rF=False&amp;iType=1&amp;domainname=0" type="text/javascript" defer="defer"></script>
+ <!-- End: www.iperceptions.com -->
+
+
+
+ <!-- ClickTale Bottom part -->
+ <script type="text/javascript">
+ (function(win, doc) {
+
+ var scriptElement, scrSrc;
+
+ if (typeof(win.ClickTaleCreateDOMElement) != "function") {
+ win.ClickTaleCreateDOMElement = function(tagName) {
+ if (doc.createElementNS) {
+ return doc.createElementNS('http://www.w3.org/1999/xhtml', tagName);
+ }
+ return doc.createElement(tagName);
+ }
+ }
+
+ win.WRInitTime = (new Date()).getTime();
+
+ scriptElement = ClickTaleCreateDOMElement('script');
+ scriptElement.type = "text/javascript";
+
+ scrSrc = doc.location.protocol == 'https:' ? 'https://cdnssl.clicktale.net/' : 'http://cdn.clicktale.net/';
+
+ scrSrc += 'www04/ptc/1db4a0f2-17e4-45f8-b5fd-5fd78f545b59.js';
+
+ scriptElement.src = scrSrc;
+
+ doc.getElementsByTagName('body')[0].appendChild(scriptElement);
+ })(window, document);
+ </script>
+ <script type="text/javascript" src="http://cdn.clicktale.net/www04/ptc/1db4a0f2-17e4-45f8-b5fd-5fd78f545b59.js"></script>
+ <!-- ClickTale end of Bottom part -->
+
+ <script>
+ (function(doc, win) {
+ var fetchUrl = 'http://data.cnn.com/1m/sp/imm.dat';
+ jQuery.get(fetchUrl, '', function(data) {
+ try {
+ var dsVal, details = jQuery.parseHTML(data, doc, true)[0],
+ script = doc.createElement('script');
+ script.src = details.src;
+ script.async = details.async;
+ script.type = details.type;
+ for (dsVal in details.dataset) {
+ script.dataset[dsVal] = details.dataset[dsVal];
+ }
+ doc.body.appendChild(script);
+ } catch (e) {}
+ }, 'html');
+ })(document, window);
+ </script>
+ <!-- Quantcast Tag -->
+ <script>
+ var ezt = ezt || [];
+
+ (function() {
+ var elem = document.createElement('script');
+ elem.src = (document.location.protocol == "https:" ? "https://secure" : "http://pixel") + ".quantserve.com/aquant.js?a=p-D1yc5zQgjmqr5";
+ elem.async = true;
+ elem.type = "text/javascript";
+ var scpt = document.getElementsByTagName('script')[0];
+ scpt.parentNode.insertBefore(elem, scpt);
+ }());
+
+
+ ezt.push({
+ qacct: 'p-D1yc5zQgjmqr5',
+ uid: 'USER-ID-HERE'
+ });
+ </script>
+ <noscript>
+ &lt;img src="//pixel.quantserve.com/pixel/p-D1yc5zQgjmqr5.gif" style="display: none;" border="0" height="1" width="1" alt="Quantcast"/&gt;
+</noscript>
+ <!-- End Quantcast Tag -->
+
+ <img src="http://i.cdn.turner.com/money/video/bvp/images/1.gif" alt="" name="OmnitureTrack" id="OmnitureTrack" width="0" vspace="0" border="0" align="right" hspace="0" height="0" /> <img src="http://i.cdn.turner.com/money/images/1.gif" alt="" name="cookieCrumb" id="cookieCrumb" width="0" vspace="0" border="0" align="right" hspace="0" height="0" />
+ <script type="text/javascript">
+ var urlPre = "http://markets.money.cnn.com/";
+ var cnnDomain = "http://money.cnn.com/";
+ var cookieDomain = "cnn.com";
+ var tzOffset = -240;
+ </script>
+ <script type="text/javascript" src="http://z.cdn.turner.com/xslo/cvp/ads/freewheel/js/fwjslib_1.1.js?version=1.1"></script>
+ <script type="text/javascript" src="http://z.cdn.turner.com/xslo/cvp/js/cvp/2.8.4.1/cvp.min.js"></script>
+ <script type="text/javascript" src="http://z.cdn.turner.com/money/tmpl_asset/static/script/1455/js/cnnm-ocean.story-min.js"></script>
+ <div id="bubbleGroup" style="z-index: 10000000000000;">
+ <div id="popbubble" class="popbub">
+ <div class="brdr-top">
+ <div class="brdr-cornerL"></div>
+ <div class="brdr-mid">
+ <div class="pinch"></div>
+ </div>
+ <div class="brdr-cornerR"></div>
+ </div>
+ <div class="popbub-body">
+ <div class="brder-right">
+ <div class="innershell">
+ <div class="close_btn"></div>
+ <div class="popbody">
+ </div>
+ <ul class="sponsor_ad"></ul>
+ </div>
+ </div>
+ </div>
+ <div class="clearFloat"></div>
+ <div class="brdr-btm">
+ <div class="brdr-cornerL"></div>
+ <div class="brdr-mid">
+ <div class="pinch"></div>
+ </div>
+ <div class="brdr-cornerR"></div>
+ </div>
+ </div>
+ </div>
+ <script type="text/javascript" src="http://w.sharethis.com/button/buttons.js"></script>
+ <script type="text/javascript">
+ stLight.options({
+ doNotHash: true
+ });
+ </script>
+ <script type="text/javascript" src="http://i.cdn.turner.com/xslo/aspen/js/1.3/aspenweb_1.3.0.min.js"></script>
+ <!--// Nativo/Post Release //-->
+ <!--// Nativo/Post Release
+<script type="text/javascript" src="http://a.postrelease.com/serve/load.js?async=true" async="async"></script>
+//-->
+ <!--// skimlinks -->
+ <script type="text/javascript" src="//s.skimresources.com/js/87768X1540669.skimlinks.js"></script>
+ <div id="ad_oop_skin_01" style="" data-google-query-id="CMO4wLjy3NECFYkjvQodgmEMMw" class=" adfuel-rendered">
+ <div id="google_ads_iframe_/8663477/CNNMoney/economy/main_0__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/8663477/CNNMoney/economy/main_0" title="3rd party ad content" name="google_ads_iframe_/8663477/CNNMoney/economy/main_0" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" srcdoc="" width="1" height="1" frameborder="0"></iframe></div>
+ </div>
+ <div id="fb-root"></div>
+ <script src="http://d2lv4zbk7v5f93.cloudfront.net/esf.js" async="" type="text/javascript" data-client-id="MciousnsysXuwtD"></script>
+ <script language="javascript" async="async" type="text/javascript" src="http://widgets.outbrain.com/outbrain.js"></script>
+ <div class="kxhead" data-id="IWzCuclz" style="display:none !important;"><span class="kxtag kxinvisible" data-id="28716"><!-- Facebook Pixel Code -->
+<script>
+!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
+n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
+n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
+t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
+document,'script','https://connect.facebook.net/en_US/fbevents.js');
+fbq('init', '1747946482194849'); // Insert your pixel ID here.
+fbq('track', 'PageView');
+</script>
+<noscript></noscript>
+<!-- DO NOT MODIFY -->
+<!-- End Facebook Pixel Code --></span><span class="kxtag kxinvisible" data-id="23413"><script>
+(function(){
+ if (window.Krux) {
+ var kuid = window.Krux('get', 'user');
+ if (kuid &amp;&amp; typeof kuid != 'undefined') {
+ var rubicon_url = '//tap.rubiconproject.com/oz/feeds/krux/tokens?afu=' + kuid;
+ var i = new Image();
+ i.src = rubicon_url;
+ }
+ }
+})();
+</script></span><span class="kxtag kxinvisible" data-id="23416"><script type="text/javascript">
+(function () {
+_ml = window._ml || {};
+_ml.pub = '748';
+_ml.redirect = '//beacon.krxd.net/usermatch.gif?partner=madisonlogic&amp;partner_uid=[PersonID]';
+var s = document.getElementsByTagName('script')[0], cd = new Date(), mltag = document.createElement('script');
+mltag.type = 'text/javascript'; mltag.async = true;
+mltag.src = '//ml314.com/tag.aspx?' + cd.getDate() + cd.getMonth() + cd.getFullYear();
+s.parentNode.insertBefore(mltag, s);
+})();
+</script></span><span class="kxtag kxinvisible" data-id="26790"><script>
+(function(){
+ var kuid = Krux('get', 'user');
+ var prefix = window.location.protocol == 'https:' ? 'https:' : 'http:';
+ if (kuid) {
+ new Image().src = prefix + '//tapestry.tapad.com/tapestry/1?ta_partner_id=1969&amp;ta_redirect=' + prefix + encodeURIComponent('//beacon.krxd.net/usermatch.gif?partner=tapad&amp;partner_uid=${IDS:key}');
+ }
+})();
+</script></span><span class="kxtag kxinvisible" data-id="24231"><script>
+(function(){
+ new Image().src = location.protocol + '//usersync.videoamp.com/usersync?partner_id=6902992&amp;redirect=' + location.protocol + encodeURIComponent('//beacon.krxd.net/usermatch.gif?partner=vidamp&amp;partner_uid={vamp_user_id}');
+})();
+</script></span><span class="kxtag kxinvisible" data-id="27404"><script>
+(function(){
+
+ var kuid = Krux('get', 'user');
+ if (kuid) {
+ var prefix = location.protocol == 'https:' ? "https:" : "http:";
+ var kurl = prefix + encodeURIComponent('//beacon.krxd.net/usermatch.gif?partner=spotxchange&amp;partner_uid=&lt;spotx_audience_id&gt;');
+ var spotxchange_url = prefix + '//sync.search.spotxchange.com/audience_sync/9?redir=' + kurl;
+ new Image().src = spotxchange_url;
+ }
+
+})();
+</script></span><span class="kxtag kxinvisible" data-id="26137"><script>
+ (function() {
+ var kuid = Krux('get', 'user');
+ if (kuid) {
+ var prefix = location.protocol == 'https:' ? "https:" : "http:";
+ var kurl_params = encodeURIComponent("_kuid=" + kuid + "&amp;_kdpid=4e3f8627-26fa-484d-bd95-a1f8f09d95a6&amp;dlxid=&lt;na_id&gt;&amp;dlxdata=&lt;na_da&gt;");
+ var kurl = prefix + "//beacon.krxd.net/data.gif?" + kurl_params;
+ var dlx_url = '//r.nexac.com/e/getdata.xgi?dt=br&amp;pkey=quky68qukyi81&amp;ru=' + kurl;
+ var i = new Image();
+ i.src = dlx_url;
+ }
+ })();
+</script>
+</span><span class="kxtag kxinvisible" data-id="23605"></span><span class="kxtag kxinvisible" data-id="23619"><script>
+(function() {
+ if (window.location.protocol == 'http:') {
+ var img = new Image();
+ img.src = "//bea4.v.fwmrm.net/ad/u?mode=echo&amp;cr=http%3A%2F%2Fbeacon.krxd.net%2Fusermatch.gif%3Fpartner%3Dfreewheel%26partner_uid%3D%23%7Buser.id%7D"
+ img.setAttribute("style", "width:0px; height:0px; visibility:hidden;");
+ document.body.appendChild(img);
+ }
+})();
+</script></span><span class="kxtag kxinvisible" data-id="23641"><img style="border-style:none;" alt="" src="//googleads.g.doubleclick.net/pagead/viewthroughconversion/925133270/?value=1.00&amp;currency_code=USD&amp;label=OuhECLD29GcQ1tORuQM&amp;guid=ON&amp;script=0" width="1" height="1" /></span><span class="kxtag kxinvisible" data-id="23409"><script>
+// this tag is intentionally blank
+</script></span><span class="kxtag kxinvisible" data-id="23410"></span><span class="kxtag kxinvisible" data-id="23412"><script type="text/javascript">Krux('social.init');</script></span><span class="kxtag kxinvisible" data-id="23414"><script>
+(function() {
+ if (Krux('get', 'user') != null) {
+ new Image().src = 'https://usermatch.krxd.net/um/v2?partner=google';
+ }
+})();
+</script></span><span class="kxtag kxinvisible" data-id="27284"><script>
+ (function() {
+ var kuid = Krux('get', 'user');
+ if (kuid) {
+ var prefix = location.protocol == 'https:' ? "https:" : "http:";
+ var kurl_params = encodeURIComponent("_kuid=" + kuid + "&amp;_kdpid=a8138b01-9fff-43bb-b649-99241ab62170&amp;dlxid=&lt;na_id&gt;&amp;dlxdata=&lt;na_da&gt;");
+ var kurl = prefix + "//beacon.krxd.net/data.gif?" + kurl_params;
+ var dlx_url = '//r.nexac.com/e/getdata.xgi?dt=br&amp;pkey=qkgx66qkgxw46&amp;ru=' + kurl;
+ var i = new Image();
+ i.src = dlx_url;
+ }
+ })();
+</script></span><span class="kxtag kxinvisible" data-id="23445"><script>
+ var slot;
+ (function() {
+ if (window.googletag &amp;&amp; googletag.pubads() &amp;&amp; googletag.pubads().getSlots()) {
+ var c1 = {};
+ var arr = googletag.pubads().getSlots();
+ var site = ["br", "cnn", "cnn_arabic", "cnn_international", "cnn_money", "conan", "eSports", "espanol", "funnyordie", "hln", "nascar", "nba", "ncaa", "pga", "tbs", "tcm", "toonswim", "trutv"];
+
+ if (arr) {
+ for (var i = 0, l = arr.length; i &lt; l; i++) {
+ c1[arr[i].getAdUnitPath()] = (c1[arr[i].getAdUnitPath()] || 0) + 1;
+ }
+ slot = Object.keys(c1)[0] || null;
+ for (k in c1) slot = (c1[k] &gt; c1[slot]) ? k : slot;
+ }
+
+ if (window.slot) { // Set string lowercase and split slot into an array
+ slot = slot.toLowerCase();
+ slot = slot.split('/');
+
+ // Changes slot from "as" to "toonswim"
+ slot[2] = slot[2] == 'as' ? 'toonswim' : slot[2];
+ // Changes slot from "arabic" to "cnn_arabic"
+ slot[2] = slot[2] == 'arabic' ? 'cnn_arabic' : slot[2];
+ // Changes slot from "cnni" to "cnn_internation"
+ slot[2] = slot[2] == 'cnni' ? 'cnn_international' : slot[2];
+ // Changes slot from "cnnmoney" to "cnn_money"
+ slot[2] = slot[2] == 'cnnmoney' ? 'cnn_money' : slot[2];
+
+ // "teamcoco"
+ if(slot[2] === "tbs" &amp;&amp; slot[4] === "conan"){
+ slot = slot.splice(2)
+ };
+
+ for (var i = 0; i &lt; site.length; i++) {
+
+ if (slot[2] == site[i]) {
+ // Using domain to dynamically scrape page attribute site
+ Krux('set', 'page_attr_' + slot[2] + '_site', slot[2]);
+ // Using domain to dynamically scrape page attribute rollup
+ Krux('set', 'page_attr_' + slot[2] + '_rollup', slot[3]);
+ // Using domain to dynamically scrape page attribute section
+ Krux('set', 'page_attr_' + slot[2] + '_section', slot[4]);
+ // Using domain to dynamically scrape page attribute subsection
+ Krux('set', 'page_attr_' + slot[2] + '_subsection', slot[5]);
+ // Using domain to dynamically scrape page attribute AdUnit 5
+ Krux('set', 'page_attr_' + slot[2] + '_adunit5', slot[6]);
+
+
+ };
+ };
+ };
+ };
+
+ if(window.CNNMONEY &amp;&amp; window.CNNMONEY.adTargets) spec = CNNMONEY.adTargets.spec;
+ if(window.CNN &amp;&amp; window.CNN.adTargets) spec = CNN.adTargets.spec;
+ if(window.CNNI &amp;&amp; window.CNNI.adTargets) spec = CNNI.adTargets.spec;
+
+ if (window.spec &amp;&amp; slot &amp;&amp; slot.length &gt;= 3) {
+ Krux('set', 'page_attr_' + slot[2] + '_spec', spec);
+ };
+
+
+
+
+ if (window.queryString) {
+ Krux('set', 'page_attr_on_site_searcher', true)
+ };
+
+
+ if (window.CNN &amp;&amp; window.CNN.contentModel &amp;&amp; window.CNN.contentModel.analytics) {
+ var ct = CNN.contentModel.analytics.cap_topics;
+ if (ct) {
+ ct = ct.replace(/ /g, '');
+ Krux('set', 'page_attr_cap_topics', ct);
+ };
+ };
+
+ })();
+</script></span><span class="kxtag kxinvisible" data-id="23474"><script>
+(function() {
+
+ // Using Meta keywords to produce page attribute keywords
+ Krux('scrape', { "page_attr_keywords": {meta_name: "keywords"}});
+ // Using Cookie last5stocks to produce page attribute cookie_last5stocks
+ Krux('scrape', { "page_attr_cookie_last5stocks": {cookie: "last5stocks"}});
+
+ if (document.location.host.match("bleacherreport")) {
+ // Using Meta keywords to produce page attribute keywords
+ Krux('scrape', {"page_attr_bleacherreport_keywords": {meta_name: "keywords"}});
+ Krux('scrape', {"page_attr_bleacherreport_site": {javascript: "document.location.host.split('.')[0]"}});
+ }
+
+ if(window.slot) {
+ // get namespace;
+ var ns = (function() {
+ var exceptions, jsmdmap, key1, key2, val1, val2, _ref;
+ if (window._jsmd_default) {
+ jsmdmap = _jsmd_default.map;
+ for (key1 in jsmdmap) {
+ val1 = jsmdmap[key1];
+ for (key2 in val1) {
+ val2 = val1[key2];
+ if (ns = val2 != null ? (_ref = val2.settings) != null ? _ref.visitorNamespace : void 0 : void 0) {
+ return ns;
+ }
+ }
+ }
+ }
+ exceptions = {
+ 'NBA': '0_nbagroup',
+ 'Nascar': 'nascardigitalsap',
+ 'Bleacher Report': 'turnersidigital',
+ 'Teamcoco': '0_teamcoco'
+ };
+ return exceptions[Krux('get', 'site')];
+ })();
+
+ if(!ns) return;
+ //get site
+ var site = slot[2];
+ // get pixel
+ var pixel = window["s_i_" + ns] || window["s_i_1_" + ns] || window["s_i_0_" + ns];
+ // regex for pixel source
+ var lookFor = "&amp;h1=(.*?)&amp;";
+ // check if pixel source matches the regex
+ var match = (pixel &amp;&amp; pixel.src) ? pixel.src.match(lookFor) : null;
+
+ if (match) {
+ var parts = decodeURIComponent(match[1]).split('|');
+ var keys = ['lob', 'brand', 'bizunit', 'sitename', 'sitesectionlevel1', 'sitesectionlevel2'];
+ for (var i = 0, l = keys.length;i &lt; l; i++) {
+ var key = keys[i];
+ if(parts[i]) Krux('set', "page_attr_" + site + "_" + key, parts[i]);
+ }
+ }
+ }
+
+})();
+</script></span><span class="kxtag kxinvisible" data-id="23477"><script>
+ (function() {
+ // To Pull GUID
+ Krux('scrape', {
+ 'user_attr_turner_guid': {
+ cookie: 'ug'
+ }
+ });
+
+ // To Pull Adobe Analytics ID
+ adobeID = Krux('scrape.javascript', "Krux('scrape.cookie', 's_vi').split('|',2)[1].split('[')[0]");
+ if (window.adobeID) {
+ if (adobeID.length === 33 &amp;&amp; adobeID.indexOf('-') != -1) {
+ Krux('set', 'user_attr_aa_id', adobeID);
+ };
+ };
+
+ // To Pull Backup Adobe Analytics ID
+ Krux('scrape', {
+ 'user_attr_af_id': {
+ cookie: 's_fid'
+ }
+ });
+
+ })();
+</script></span><span class="kxtag kxinvisible" data-id="23509"></span><span class="kxtag kxinvisible" data-id="23511"></span><span class="kxtag kxinvisible" data-id="23513"><script>
+ (function() {
+ var kuid = Krux('get', 'user');
+ if (kuid) {
+ var prefix = location.protocol == 'https:' ? "https:" : "http:";
+ var bk_prefix = location.protocol == 'https:' ? "stags" : "tags";
+ var kurl_params = encodeURIComponent("_kuid=" + kuid + "&amp;partner=bluekai&amp;bk_uuid=$_BK_UUID");
+ var kurl = prefix + "//beacon.krxd.net/usermatch.gif?" + kurl_params;
+ var bk_params = 'id=' + kuid;
+ var bk_url = '//' + bk_prefix + '.bluekai.com/site/26357?' + bk_params + '&amp;redir=' + kurl;
+ var i = new Image();
+ i.src = bk_url;
+ }
+ })();
+</script>
+</span><span class="kxtag kxinvisible" data-id="26604"><script>
+(function(){
+var kxfbmap = {
+ 'JLmLD3_1': '782589578427709',
+ 'ITcBPihd': '289259704582565',
+ 'ITcA0tkB': '1517553741888280',
+ 'ITcA76Nx': '1407388882899380',
+ 'ITcAwecV': '497430300356774',
+ 'IWzDCwHo': '418245194992316',
+ 'ITcAsWsy': '418245194992316',
+ 'ITcATbN4': '418245194992316',
+ 'ITcAEoo6': '177383419263866',
+ 'ITb_4eqO': '731697573629176',
+ 'ITb9NmYG': '596760543765088',
+ 'ITb9Q03y': '418245194992316'
+};
+
+!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
+n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
+n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
+t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
+document,'script','//connect.facebook.net/en_US/fbevents.js');
+
+fbq('init', kxfbmap[Krux('get', 'confid')]);
+fbq('track', 'PageView');
+})();
+</script> </span><span class="kxtag kxinvisible" data-id="23548"></span></div>
+ <script type="text/javascript">
+ // Copyright 2006-2016 ClickTale Ltd., US Patent Pending
+ // PID: 86
+ // WR destination: www04
+ // WR version: latest
+ // Recording ratio: 0.018
+ // Generated on: 12/22/2016 2:52:53 AM (UTC 12/22/2016 8:52:53 AM)
+ (function() {
+ var dependencyCallback;
+ var scriptSyncTokens = ["wr"];
+ var dependencies = scriptSyncTokens.slice(0);
+ var ct2Callback, isRecorderReady;
+ var clickTaleOnReadyList = window.ClickTaleOnReadyList || (window.ClickTaleOnReadyList = []);
+
+ function isValidToken(token) {
+ if (scriptSyncTokens.indexOf(token) & gt; - 1) {
+ var index = dependencies.indexOf(token);
+
+ if (index & gt; - 1) {
+ dependencies.splice(index, 1);
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ clickTaleOnReadyList.push(function() {
+ if (ct2Callback) {
+ ct2Callback();
+ }
+
+ isRecorderReady = true;
+ });
+
+ window.ClickTaleGlobal = window.ClickTaleGlobal || {};
+ ClickTaleGlobal.scripts = ClickTaleGlobal.scripts || {};
+ ClickTaleGlobal.scripts.dependencies = {
+ setDependencies: function(deps) {
+ scriptSyncTokens = deps;
+ },
+ onDependencyResolved: function(callback) {
+ dependencyCallback = callback;
+ },
+ notifyScriptLoaded: function(token) {
+ if (isValidToken(token)) {
+ if (dependencies.length === 0 & amp; & amp; typeof dependencyCallback === "function") {
+ dependencyCallback();
+ }
+ }
+ }
+ };
+
+ ClickTaleGlobal.scripts.integration = {
+ onReady: function(callback) {
+ if (isRecorderReady) {
+ callback();
+ } else {
+ ct2Callback = callback;
+ }
+ }
+ };
+ })();
+
+
+
+ function ClickTaleCDNHTTPSRewrite(u) {
+ try {
+ var scripts = document.getElementsByTagName('script');
+ if (scripts.length) {
+ var script = scripts[scripts.length - 1],
+ s = 'https://clicktalecdn.sslcs.cdngc.net/';
+ if (script.src & amp; & amp; script.src.substr(0, s.length) == s)
+ return u.replace('https://cdnssl.clicktale.net/', s);
+ }
+ } catch (e) {}
+ return u;
+ }
+
+ var ClickTaleIsXHTMLCompliant = true;
+ if (typeof(ClickTaleCreateDOMElement) != "function") {
+ ClickTaleCreateDOMElement = function(tagName) {
+ if (document.createElementNS) {
+ return document.createElementNS('http://www.w3.org/1999/xhtml', tagName);
+ }
+ return document.createElement(tagName);
+ }
+ }
+
+ if (typeof(ClickTaleAppendInHead) != "function") {
+ ClickTaleAppendInHead = function(element) {
+ var parent = document.getElementsByTagName('head').item(0) || document.documentElement;
+ parent.appendChild(element);
+ }
+ }
+
+ if (typeof(ClickTaleXHTMLCompliantScriptTagCreate) != "function") {
+ ClickTaleXHTMLCompliantScriptTagCreate = function(code) {
+ var script = ClickTaleCreateDOMElement('script');
+ script.setAttribute("type", "text/javascript");
+ script.text = code;
+ return script;
+ }
+ }
+
+ var pccScriptElement = ClickTaleCreateDOMElement('script');
+ pccScriptElement.type = "text/javascript";
+ pccScriptElement.src = (document.location.protocol == 'https:' ?
+ ClickTaleCDNHTTPSRewrite('https://cdnssl.clicktale.net/www04/pcc/1db4a0f2-17e4-45f8-b5fd-5fd78f545b59.js?DeploymentConfigName=Release_11142016&amp;Version=1') :
+ 'http://cdn.clicktale.net/www04/pcc/1db4a0f2-17e4-45f8-b5fd-5fd78f545b59.js?DeploymentConfigName=Release_11142016&amp;Version=1');
+ document.body.appendChild(pccScriptElement);
+
+ var ClickTalePrevOnReady;
+ if (typeof ClickTaleOnReady == 'function') {
+ ClickTalePrevOnReady = ClickTaleOnReady;
+ ClickTaleOnReady = undefined;
+ }
+
+ if (typeof window.ClickTaleScriptSource == 'undefined') {
+ window.ClickTaleScriptSource = (document.location.protocol == 'https:' ?
+ ClickTaleCDNHTTPSRewrite('https://cdnssl.clicktale.net/www/') :
+ 'http://cdn.clicktale.net/www/');
+ }
+
+
+ // Start of user-defined pre WR code (PreLoad)b
+ //PTC Code Version 7
+
+ window.ClickTaleSettings = window.ClickTaleSettings || {};
+ window.ClickTaleSettings.PTC = window.ClickTaleSettings.PTC || {};
+ window.ClickTaleIncludedOnDOMReady = true;
+ window.ClickTaleSettings.PTC.EnableChangeMonitor = false;
+ window.ClickTaleSettings.PTC.UseTransport = true;
+
+ window.ClickTaleUIDCookieName = 'WRUID14112016';
+
+ function deleteIrrelevantUIDCookies(relevant) {
+ var cookieArray = document.cookie.replace(/\s+/g, '').split(";");
+ var hostArray = location.host.split('.');
+ var topDom = (hostArray.length & lt; = 2 ? location.host : hostArray.slice(1).join('.'));
+ for (var i = 0; i & lt; cookieArray.length; i++) {
+ var currentCookie = cookieArray[i];
+ var cookieKey = currentCookie.substring(0, currentCookie.indexOf('='));
+ if (cookieKey.indexOf('WRUID') & gt; - 1 & amp; & amp; relevant.indexOf(cookieKey) == -1) {
+ document.cookie = cookieKey + "='';domain=." + topDom + ";path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT;";
+ document.cookie = cookieKey + "='';path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT;";
+ }
+ }
+ }
+
+ deleteIrrelevantUIDCookies([window.ClickTaleUIDCookieName]);
+
+ window.ClickTaleSettings.Protocol = {
+ Method: "ImpactRecorder"
+ };
+
+ window.ClickTaleSettings.Proxy = {
+ WR: "ing-district.clicktale.net/ctn_v2/",
+ ImageFlag: "ing-district.clicktale.net/ctn_v2/"
+ };
+
+ window.ClickTaleSettings.CheckAgentSupport = function(f, v) {
+ if (v.t == v.IE & amp; & amp; v.v & lt; = 8) {
+ window.ClickTaleSettings.PTC.okToRunPCC = false;
+ return false;
+ } else {
+ if (!(v.t == v.IE & amp; & amp; v.v & lt; = 10)) {
+ window.ClickTaleSettings.PTC.EnableChangeMonitor = true;
+ window.ClickTaleSettings.PTC.ConfigChangeMonitor();
+ }
+ var fv = f(v);
+ window.ClickTaleSettings.PTC.okToRunPCC = fv;
+ return fv;
+ }
+ };
+
+
+ window.ClickTaleSettings.PTC.RulesObj = [{
+ selector: "input[type=\"text\"], input[type=\"tel\"], input[type=\"email\"]",
+ changeMon: {
+ Attributes: ['value'],
+ Text: false
+ },
+ rewriteApi: {
+ Attributes: ['value'],
+ Text: false
+ }
+ }];
+
+ window.ClickTaleSettings.PTC.RulesObjRemoveEls = [{
+ rewriteApi: 'div[id^="google_ads_iframe"],iframe[id^="google_ads_iframe"], iframe[src*= "xd_arbiter"], #fb-root',
+ changeMonLive: "head script"
+ }];
+
+ ;
+ (function() {
+ if (typeof window.ClickTalePIISelector === 'string' & amp; & amp; window.ClickTalePIISelector != '') {
+ try {
+ var domNodes = document.querySelectorAll(window.ClickTalePIISelector);
+ if (domNodes) {
+ window.ClickTaleSettings.PTC.RulesObj.push({
+ selector: window.ClickTalePIISelector,
+ changeMon: {
+ Attributes: ['value'],
+ Text: true
+ },
+ rewriteApi: {
+ Attributes: ['value'],
+ Text: true
+ }
+ });
+ }
+ } catch (err) {}
+ }
+ })();
+
+ window.ClickTaleSettings.PTC.cloneNodeIE9 = function(node) {
+ var clone = node.nodeType === 3 ? document.createTextNode(node.nodeValue) : node.cloneNode(false);
+
+ var child = node.firstChild;
+ while (child) {
+ if (child.nodeName !== 'SCRIPT') {
+ clone.appendChild(window.ClickTaleSettings.PTC.cloneNodeIE9(child));
+ } else {
+ var script = document.createElement('script');
+ clone.appendChild(script);
+ }
+ child = child.nextSibling;
+ }
+
+ return clone;
+ };
+
+ window.ClickTaleSettings.PTC.ConfigChangeMonitor = function() {
+
+ if (window.ClickTaleSettings.PTC.EnableChangeMonitor) {
+ window.ClickTaleSettings.XHRWrapper = {
+ Enable: false
+ };
+
+ var script = document.createElement("SCRIPT");
+ script.src = (document.location.protocol === "https:" ? "https://cdnssl." : "http://cdn.") + "clicktale.net/www/ChangeMonitor-latest.js";
+ document.body.appendChild(script);
+
+ window.ClickTaleSettings.ChangeMonitor = {
+ Enable: true,
+ AddressingMode: "id",
+ OnReadyHandler: function(changeMonitor) {
+ changeMonitor.observe();
+
+ var CMRemrule = window.ClickTaleSettings.PTC.RulesObjRemoveEls;
+ if (CMRemrule) {
+ for (var i = 0; i & lt; CMRemrule.length; i++) {
+ var rule = CMRemrule[i];
+ var CMlocation = rule['location'];
+ if ((!CMlocation || (CMlocation & amp; & amp; document.location[CMlocation['prop']].toLowerCase().search(CMlocation.search) === -1))) {
+ if (rule.changeMon) {
+ changeMonitor.exclude(rule.changeMon);
+ }
+ if (rule.changeMonLive) {
+ changeMonitor.exclude({
+ selector: rule.changeMonLive,
+ multiple: true
+ });
+ }
+ }
+ }
+ }
+ },
+ OnBeforeReadyHandler: function(settings) {
+ settings.Enable = window.ClickTaleGetUID ? !!ClickTaleGetUID() : false;
+ return settings;
+ },
+ Filters: {
+ MaxBufferSize: 300000,
+ MaxElementCount: 3000
+ },
+ PII: {
+ Text: [],
+ Attributes: []
+ }
+ }
+ var RulesObj = window.ClickTaleSettings.PTC.RulesObj;
+ if (RulesObj) {
+ window.ClickTaleSettings.ChangeMonitor.PII.Text = window.ClickTaleSettings.ChangeMonitor.PII.Text || [];
+ window.ClickTaleSettings.ChangeMonitor.PII.Attributes = window.ClickTaleSettings.ChangeMonitor.PII.Attributes || [];
+ for (var i = 0; i & lt; RulesObj.length; i++) {
+ var CMrule = RulesObj[i]['changeMon'];
+ var CMlocation = RulesObj[i]['location'];
+ if (!CMrule || (CMlocation & amp; & amp; document.location[CMlocation['prop']].toLowerCase().search(CMlocation.search) === -1)) {
+ continue;
+ }
+ var selector = RulesObj[i]['selector'];
+ var attributesArr = CMrule.Attributes;
+ if (attributesArr instanceof Array) {
+ for (var u = 0; u & lt; attributesArr.length; u++) {
+ var attr = attributesArr[u];
+ window.ClickTaleSettings.ChangeMonitor.PII.Attributes.push({
+ selector: selector,
+ transform: (function(attr) {
+ return function(el) {
+ var attrs = el.attributes;
+ var attrsToReturn = {}
+ for (var i = 0; i & lt; attrs.length; i++) {
+ var name = attrs[i].nodeName;
+ attrsToReturn[name] = attrs[i].nodeValue;
+ }
+ var attrib = el.getAttribute(attr);;
+ if (typeof attrib === 'string') {
+ attrsToReturn[attr] = attrib.replace(/\w/g, '-');
+ }
+ return attrsToReturn;
+ }
+ })(attr)
+ });
+ }
+ }
+ if (CMrule.Text) {
+ window.ClickTaleSettings.ChangeMonitor.PII.Text.push({
+ selector: selector,
+ transform: function(el) {
+ return el.textContent.replace(/\w/g, '-');
+ }
+ });
+ }
+ }
+ }
+ }
+ };
+
+ window.ClickTaleSettings.Compression = {
+ Method: function() {
+ return "deflate";
+ }
+ };
+
+ window.ClickTaleSettings.Transport = {
+ Legacy: false,
+ MaxConcurrentRequests: 5
+ };
+
+ window.ClickTaleSettings.RewriteRules = {
+ OnBeforeRewrite: function(rewriteApi) {
+ var bodyClone = ((document.documentMode & amp; & amp; document.documentMode & lt; = 9) ? ClickTaleSettings.PTC.cloneNodeIE9(document.documentElement) : document.documentElement.cloneNode(true));
+
+ if (window.ClickTaleSettings.PTC.RulesObj) {
+ rewriteApi.add(function(buffer) {
+
+
+ var RulesObj = window.ClickTaleSettings.PTC.RulesObj;
+ for (var i = 0; i & lt; RulesObj.length; i++) {
+ var rewriteApirule = RulesObj[i]['rewriteApi'];
+ var rewriteApilocation = RulesObj[i]['location'];
+ if (!rewriteApirule || (rewriteApilocation & amp; & amp; document.location[rewriteApilocation['prop']].toLowerCase().search(rewriteApilocation.search) === -1)) {
+ continue;
+ }
+ var selector = RulesObj[i]['selector'];
+ var elements = bodyClone.querySelectorAll(selector);
+
+ Array.prototype.forEach.call(elements, function(el, ind) {
+ var attributesArr = rewriteApirule.Attributes;
+ if (attributesArr instanceof Array) {
+
+ for (var u = 0; u & lt; attributesArr.length; u++) {
+ var attr = attributesArr[u];
+ var attrib = el.getAttribute(attr);
+ if (typeof attrib === 'string') {
+ el.setAttribute(attr, attrib.replace(/\w/g, '-'));
+ }
+ }
+
+ }
+ if (rewriteApirule.Text) {
+ var children = el.childNodes;
+ Array.prototype.forEach.call(children, function(child) {
+ if (child & amp; & amp; child.nodeType === 3) {
+ child.textContent = child.textContent.replace(/\w/g, '-');
+ }
+ });
+ }
+ });
+ }
+
+ //work on body
+ var RulesObjRemoveEls = window.ClickTaleSettings.PTC.RulesObjRemoveEls;
+ if (RulesObjRemoveEls) {
+ for (var i = 0; i & lt; RulesObjRemoveEls.length; i++) {
+ if (RulesObjRemoveEls[i].rewriteApi) {
+ var elementsToRemove = bodyClone.querySelectorAll(RulesObjRemoveEls[i].rewriteApi);
+ Array.prototype.forEach.call(elementsToRemove, function(el, ind) {
+ if (el.parentNode) {
+ el.parentNode.removeChild(el);
+ }
+ });
+ }
+ if (RulesObjRemoveEls[i].rewriteApiReplace) {
+ var elementsToReplace = bodyClone.querySelectorAll(RulesObjRemoveEls[i].rewriteApiReplace);
+ Array.prototype.forEach.call(elementsToReplace, function(el, ind) {
+ if (el.parentNode) {
+ var comment = document.createComment(el.outerHTML);
+ el.parentNode.replaceChild(comment, el);
+ }
+ });
+ }
+ }
+ }
+
+ return bodyClone.innerHTML.replace(/&lt;script\b([^&gt;]*)&gt;([\s\S]*?)&lt;\/script&gt;/gi, '&lt;script&gt;&lt;\/script&gt;').replace(/(&lt;div id="?ClickTaleDiv"?[^&gt;]+&gt;)\s*&lt;script[^&gt;]+&gt;&lt;\/script&gt;\s*(&lt;\/div&gt;)/i, '$1$2');
+ });
+ }
+ rewriteApi.add({
+ pattern: /(&lt;head[^&gt;]*&gt;)/i,
+ replace: '$1&lt;script type="text\/javascript" class="cm-ignore" src="http:\/\/dummytest.clicktale-samples.com\/GlobalResources\/jquery.js"&gt;&lt;\/script&gt;'
+ });
+ }
+ };
+ // End of user-defined pre WR code
+
+
+ var ClickTaleOnReady = function() {
+ var PID = 86,
+ Ratio = 0.018,
+ PartitionPrefix = "www04";
+
+ if (window.navigator & amp; & amp; window.navigator.loadPurpose === "preview") {
+ return; //in preview
+ };
+
+
+ // Start of user-defined header code (PreInitialize)
+ if (typeof ClickTaleSetAllSensitive === "function") {
+ ClickTaleSetAllSensitive();
+ };
+
+ if (typeof ClickTaleUploadPage === 'function' & amp; & amp; window.ClickTaleSettings.PTC.UseTransport) {
+ if (window.ClickTaleSettings.PTC.EnableChangeMonitor) {
+ if (typeof ClickTaleEvent === "function") {
+ ClickTaleEvent("CM");
+ }
+ }
+
+ ClickTaleUploadPage();
+ };
+ // End of user-defined header code (PreInitialize)
+
+
+ window.ClickTaleIncludedOnDOMReady = true;
+
+ ClickTale(PID, Ratio, PartitionPrefix);
+
+ if ((typeof ClickTalePrevOnReady == 'function') & amp; & amp;
+ (ClickTaleOnReady.toString() != ClickTalePrevOnReady.toString())) {
+ ClickTalePrevOnReady();
+ }
+
+
+ // Start of user-defined footer code
+
+ // End of user-defined footer code
+
+ };
+
+
+ (function() {
+ var div = ClickTaleCreateDOMElement("div");
+ div.id = "ClickTaleDiv";
+ div.style.display = "none";
+ document.body.appendChild(div);
+
+
+
+ var externalWrScript = ClickTaleCreateDOMElement("script");
+ var wrSrc = (document.location.protocol == 'https:' ? 'https://cdnssl.clicktale.net/www/' : 'http://cdn.clicktale.net/www/') + 'tc/WR-latest.js';
+ externalWrScript.src = (window.ClickTaleCDNHTTPSRewrite ? ClickTaleCDNHTTPSRewrite(wrSrc) : wrSrc);
+ externalWrScript.type = 'text/javascript';
+ document.body.appendChild(externalWrScript);
+ })();
+
+
+
+
+ ! function() {
+ function t() {
+ window.addEventListener & amp; & amp;
+ addEventListener("message", e, !1)
+ }
+
+ function e(t) {
+ var e, n = new RegExp("(clicktale.com|ct.test)($|:)"),
+ i = new RegExp("ct.test"),
+ c = !1,
+ l = t.origin;
+ try {
+ e = JSON.parse(t.data)
+ } catch (d) {
+ return
+ }
+ n.test(t.origin) !== !1 & amp; & amp;
+ (window.ct_ve_parent_window = t.source, i.test(t.origin) === !0 & amp; & amp;
+ (c = !0), "CTload_ve" === e["function"] & amp; & amp;
+ "function" == typeof ClickTaleGetPID & amp; & amp; null !== ClickTaleGetPID() & amp; & amp; o(l, c))
+ }
+
+ function n(t) {
+ return document.createElementNS ? document.createElementNS("http://www.w3.org/1999/xhtml", t) : document.createElement(t)
+ }
+
+ function o(t, e) {
+ var o = n("script");
+ o.setAttribute("type", "text/javascript"), o.setAttribute("id", "ctVisualEditorClientModule");
+ var i;
+ i = e ? document.location.protocol + "//ct.test/VisualEditor/Client/dist/veClientModule.js" : document.location.protocol + "//" + t.match(/subs\d*/)[0] + ".app.clicktale.com/VisualEditor/Client/dist/veClientModule.js", o.src = i, document.getElementById("ctVisualEditorClientModule") || document.body.appendChild(o)
+ }
+ try {
+ var i = window.chrome,
+ c = window.navigator & amp; & amp;
+ window.navigator.vendor;
+ null !== i & amp; & amp;
+ void 0 !== i & amp; & amp;
+ "Google Inc." === c & amp; & amp;
+ t()
+ } catch (l) {}
+ }();
+ </script>
+ <script type="text/javascript" src="http://cdn.clicktale.net/www04/pcc/1db4a0f2-17e4-45f8-b5fd-5fd78f545b59.js?DeploymentConfigName=Release_11142016&amp;Version=1"></script>
+ <div id="ClickTaleDiv" style="display: none;"></div>
+ <script src="http://cdn.clicktale.net/www/tc/WR-latest.js" type="text/javascript"></script>
+ <div class="ms-overlay" id="js-ms-overlay">
+ <div class="ms-overlay-bg" onclick="CNNM_MODAL.hide()"></div>
+ <div class="ms-overlay-modal"> <span class="icon icon--close" onclick="CNNM_MODAL.hide()"></span>
+ <h1 id="js-ms-overlay-modal-title" class="ms-overlay-modal-title"></h1>
+ <div id="js-ms-overlay-modal-body" class="ms-overlay-modal-body"></div>
+ <div></div>
+ </div>
+ </div>
+ <script src="http://cdn.clicktale.net/www/ChangeMonitor-latest.js"></script><object id="cvpXhrFlash" type="application/x-shockwave-flash" data="http://z.cdn.turner.com/xslo/cvp/plugins/cvp/xhr/1.0/cvp_flashXhr.swf" style="position: fixed; top: 0px; left: 0px;" width="10" height="10"><param name="menu" value="false" /><param name="scale" value="noScale" /><param name="allowScriptAccess" value="always" /><param name="wmode" value="transparent" /><param name="flashvars" value="callPrefix=cvp_flash_xhr&amp;log=true" /></object><iframe id="rufous-sandbox" scrolling="no" allowtransparency="true" allowfullscreen="true" style="position: absolute; visibility: hidden; display: none; width: 0px; height: 0px; padding: 0px; border: medium none;" title="Twitter analytics iframe" frameborder="0"></iframe><iframe style="margin: 0px; padding: 0px; width: 0px; height: 0px; border: 0px none; overflow: hidden; display: none;" scrolling="no" src="https://sync.teads.tv/iframe?pid=43054&amp;userId=5e7966a9-b600-4122-8119-36084a44e379&amp;1485333491623" frameborder="0"></iframe><img src="//bea4.v.fwmrm.net/ad/u?mode=echo&amp;cr=http%3A%2F%2Fbeacon.krxd.net%2Fusermatch.gif%3Fpartner%3Dfreewheel%26partner_uid%3D%23%7Buser.id%7D" style="width:0px; height:0px; visibility:hidden;" /><iframe id="vpaidFrame" style="display: none;" width="0" height="0"></iframe>
+ <div id="csimanagerdiv"></div>
+ <div id="csimanagerdivdelayed"></div>
+ <script language="javascript" type="text/javascript" src="//static.chartbeat.com/js/chartbeat_video.js"></script><iframe id="google_osd_static_frame_9591037305274" name="google_osd_static_frame" style="display: none; width: 0px; height: 0px;"></iframe>
+ <div id="stwrapper" class="stwrapper stwrapper4x stwrapper4x" style="display: none;"><iframe allowtransparency="true" id="stLframe" class="stLframe" name="stLframe" scrolling="no" src="http://edge.sharethis.com/share4x/index.5f5dcf6d0b830bf5db044baa34091c04.html" frameborder="0"></iframe></div>
+ <div id="stOverlay" onclick="javascript:stWidget.closeWidget();"></div>
+</body><iframe id="kx-proxy-IWzCuclz" src="http://cdn.krxd.net/partnerjs/xdi/proxy.fbdd44589e2d9fd8c91d841c8cb79227.html#%21kxcid=IWzCuclz&amp;kxt=http%3A%2F%2Fmoney.cnn.com&amp;kxcl=cdn&amp;kxp=" style="display: none; visibility: hidden; height: 0; width: 0;"></iframe>
+
+</html> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/comment-inside-script-parsing/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/comment-inside-script-parsing/expected-images.json
new file mode 100644
index 000000000..0637a088a
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/comment-inside-script-parsing/expected-images.json
@@ -0,0 +1 @@
+[] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/comment-inside-script-parsing/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/comment-inside-script-parsing/expected-metadata.json
new file mode 100644
index 000000000..b1c1035b5
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/comment-inside-script-parsing/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua.",
+ "Image": null,
+ "Title": "Test script parsing",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/comment-inside-script-parsing/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/comment-inside-script-parsing/expected.html
new file mode 100644
index 000000000..57c50c6f3
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/comment-inside-script-parsing/expected.html
@@ -0,0 +1,18 @@
+<div>
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua.</p>
+ <p>Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat.</p>
+ <p>Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+ </div><div>
+ <p>Tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat.</p>
+ <p>Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur.
+ Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/comment-inside-script-parsing/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/comment-inside-script-parsing/source.html
new file mode 100644
index 000000000..59b7a02ca
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/comment-inside-script-parsing/source.html
@@ -0,0 +1,34 @@
+<html>
+ <head><title>Test script parsing</title></head>
+<body>
+ <script>
+ <!--
+ Silly test
+ <script src="foo.js"></script>
+ -->
+ </script>
+ <article>
+ <h1>Lorem</h1>
+ <div>
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua.</p>
+ <p>Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat.</p>
+ <p>Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+ </div>
+ <h2>Foo</h2>
+ <div>
+ <p>Tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat.</p>
+ <p>Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur.
+ Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+ </div>
+ </article>
+</body>
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/daringfireball-1/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/daringfireball-1/expected-images.json
new file mode 100644
index 000000000..888aa8524
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/daringfireball-1/expected-images.json
@@ -0,0 +1,3 @@
+[
+ "http:\/\/fakehost\/graphics\/author\/addison-bw-425.jpg"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/daringfireball-1/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/daringfireball-1/expected-metadata.json
new file mode 100644
index 000000000..1dbda03bd
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/daringfireball-1/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "Daring Fireball is written and produced by John Gruber.",
+ "Image": null,
+ "Title": "Daring Fireball: Colophon",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/daringfireball-1/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/daringfireball-1/expected.html
new file mode 100644
index 000000000..6c3f15447
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/daringfireball-1/expected.html
@@ -0,0 +1,38 @@
+<div id="Box">
+
+
+
+ <div id="Main">
+ <div>
+
+ <p>Daring Fireball is written and produced by John Gruber.</p>
+ <p>
+ <a href="http://fakehost/graphics/author/addison-bw.jpg"> <img alt="Photograph of the author." src="http://fakehost/graphics/author/addison-bw-425.jpg"></img></a>
+ <br></br><em>Portrait by <a href="http://superbiate.com/inquiries/">George Del Barrio</a></em> </p>
+ <h2>Mac Apps</h2>
+ <ul><li><a href="http://www.barebones.com/products/bbedit/">BBEdit</a></li>
+ <li><a href="http://www.flyingmeat.com/acorn/">Acorn</a></li>
+ <li><a href="http://www.red-sweater.com/marsedit/">MarsEdit</a></li>
+ <li><a href="http://aged-and-distilled.com/napkin/">Napkin</a></li>
+ <li><a href="http://www.barebones.com/products/Yojimbo/">Yojimbo</a></li>
+ <li><a href="http://www.panic.com/transmit/">Transmit</a></li>
+ <li><a href="http://latenightsw.com/sd4/index.html">Script Debugger</a></li>
+ <li><a href="http://www.ambrosiasw.com/utilities/snapzprox/">Snapz Pro X</a></li>
+ <li><a href="http://nightly.webkit.org/">WebKit</a></li>
+ </ul><h2>iPhone Apps</h2>
+ <ul><li><a href="http://vesperapp.co/">Vesper</a></li>
+ </ul><h2>Server Software</h2>
+ <p>The Daring Fireball website is hosted by <a href="http://joyent.com/">Joyent</a>.</p>
+ <p>Articles and links are published through <a href="http://movabletype.org/">Movable Type</a>. In addition to my own SmartyPants and Markdown plug-ins, Daring Fireball uses several excellent Movable Type plug-ins, including Brad Choate’s <a href="http://bradchoate.com/weblog/2003/06/24/regular-expressions">MT-Regex</a> and <a href="http://bradchoate.com/weblog/2004/10/20/mtifempty">MT-IfEmpty</a>, and <a href="http://bumppo.net/projects/amputator/">Nat Irons’s Amputator</a>.</p>
+ <p>Stats are tracked using <a href="http://haveamint.com/">Mint</a>. Additional web nerdery, including the membership system, is fueled by <a href="http://perl.org/">Perl</a>, <a href="http://www.php.net/">PHP</a>, and <a href="http://www.mysql.com/">MySQL</a>.</p>
+ <h2>Web Standards</h2>
+ <p>Web standards are important, and Daring Fireball adheres to them. Specifically, Daring Fireball’s HTML markup should validate as either <a href="http://www.whatwg.org/specs/web-apps/current-work/">HTML 5</a> or XHTML 4.01 Transitional, its layout is constructed using <a href="http://jigsaw.w3.org/css-validator/validator?uri=http://daringfireball.net/css/fireball_screen.css">valid CSS</a>, and its syndicated feed is <a href="http://feedvalidator.org/check?url=http%3A%2F%2Fdaringfireball.net%2Findex.xml">valid Atom</a>.</p>
+ <p>If Daring Fireball looks goofy in your browser, you’re likely using a shitty browser that doesn’t support web standards. Internet Explorer, I’m looking in your direction. If you complain about this, I will laugh at you, because I do not care. If, however, you are using a modern, standards-compliant browser and have trouble viewing or reading Daring Fireball, please do let me know.</p>
+ </div>
+
+
+
+
+ </div>
+
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/daringfireball-1/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/daringfireball-1/source.html
new file mode 100644
index 000000000..c68f39009
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/daringfireball-1/source.html
@@ -0,0 +1,151 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
+ <title>Daring Fireball: Colophon</title>
+ <meta name="viewport" content="width=600, initial-scale=0.5, minimum-scale=0.45"/>
+ <link rel="apple-touch-icon-precomposed" href="/graphics/apple-touch-icon.png"/>
+ <link rel="shortcut icon" href="/graphics/favicon.ico?v=005"/>
+ <link rel="stylesheet" type="text/css" media="screen" href="/css/fireball_screen.css?v1.6"/>
+ <link rel="stylesheet" type="text/css" media="screen" href="/css/ie_sucks.php"/>
+ <link rel="stylesheet" type="text/css" media="print" href="/css/fireball_print.css?v01"/>
+ <link rel="alternate" type="application/atom+xml" href="/feeds/main"/>
+ <script src="/js/js-global/FancyZoom.js" type="text/javascript"></script>
+ <script src="/js/js-global/FancyZoomHTML.js" type="text/javascript"></script>
+ <link rel="shortcut icon" href="/favicon.ico"/> </head>
+
+<body onload="setupZoom()">
+ <div id="Box">
+ <div id="Banner">
+ <a href="/" title="Daring Fireball: Home"><img src="/graphics/logos/" alt="Daring Fireball" height="56"/></a>
+ </div>
+ <div id="Sidebar">
+ <p>By <strong>John&nbsp;Gruber</strong></p>
+ <ul>
+ <!--&#9733;-->
+ <li><a href="/archive/" title="Previous articles.">Archive</a></li>
+ <li>
+ <script type="text/javascript">
+ // <![CDATA[
+ function ReadCookie(name) {
+ var nameEQ = name + "=";
+ var ca = document.cookie.split(';');
+ for (var i = 0; i < ca.length; i++) {
+ var c = ca[i];
+ while (c.charAt(0) == ' ') c = c.substring(1, c.length);
+ if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
+ }
+ return null;
+ }
+ var display_linked_list = ReadCookie('displayLinkedList');
+ var li_linked = '<a href="/linked/" title="The Linked List.">Linked List<\/a>';
+ if (display_linked_list == "hide") {
+ // Linked List is off on home page, so show it in menu:
+ document.write(li_linked + "<\/li>\n<li>");
+ } else {
+ // Default to not putting separate LL item in sidebar:
+ }
+ // ]]>
+ </script>
+ </li>
+ <li><a href="/thetalkshow/" title="The world’s most popular podcast.">The Talk Show</a></li>
+ <li><a href="http://vesperapp.co/" title="A simple, elegant iOS app for collecting notes, ideas, thoughts, and images.">Vesper: <em>Now for iPad</em></a></li>
+ <li><a href="/projects/" title="Software projects, including SmartyPants and Markdown.">Projects</a></li>
+ <li><a href="/contact/" title="How to send email regarding Daring Fireball.">Contact</a></li>
+ <li><a href="/colophon/" title="About this site and the tools used to produce it.">Colophon</a></li>
+ <li><a href="/feeds/">RSS Feed</a></li>
+ <li><a href="https://twitter.com/daringfireball">Twitter</a></li>
+ <li><a href="/feeds/sponsors/">Sponsorship</a></li>
+ </ul>
+ </div>
+ <!-- Sidebar -->
+ <div id="Main">
+ <div class="article">
+ <h1>About This Site</h1>
+ <p>Daring Fireball is written and produced by John Gruber.</p>
+ <p>
+ <a href="/graphics/author/addison-bw.jpg"> <img src="/graphics/author/addison-bw-425.jpg" alt="Photograph of the author." style="border: 0;"/></a>
+ <br/><em>Portrait by <a href="http://superbiate.com/inquiries/">George Del Barrio</a></em> </p>
+ <h2>Mac Apps</h2>
+ <ul>
+ <li><a href="http://www.barebones.com/products/bbedit/">BBEdit</a></li>
+ <li><a href="http://www.flyingmeat.com/acorn/">Acorn</a></li>
+ <li><a href="http://www.red-sweater.com/marsedit/">MarsEdit</a></li>
+ <li><a href="http://aged-and-distilled.com/napkin/">Napkin</a></li>
+ <li><a href="http://www.barebones.com/products/Yojimbo/">Yojimbo</a></li>
+ <li><a href="http://www.panic.com/transmit/">Transmit</a></li>
+ <li><a href="http://latenightsw.com/sd4/index.html">Script Debugger</a></li>
+ <li><a href="http://www.ambrosiasw.com/utilities/snapzprox/">Snapz Pro X</a></li>
+ <li><a href="http://nightly.webkit.org/">WebKit</a></li>
+ </ul>
+ <h2>iPhone Apps</h2>
+ <ul>
+ <li><a href="http://vesperapp.co/">Vesper</a></li>
+ </ul>
+ <h2>Server Software</h2>
+ <p>The Daring Fireball website is hosted by <a href="http://joyent.com/">Joyent</a>.</p>
+ <p>Articles and links are published through <a href="http://movabletype.org/">Movable Type</a>. In addition to my own SmartyPants and Markdown plug-ins, Daring Fireball uses several excellent Movable Type plug-ins, including Brad Choate’s <a href="http://bradchoate.com/weblog/2003/06/24/regular-expressions">MT-Regex</a> and <a href="http://bradchoate.com/weblog/2004/10/20/mtifempty">MT-IfEmpty</a>, and <a href="http://bumppo.net/projects/amputator/">Nat Irons’s Amputator</a>.</p>
+ <p>Stats are tracked using <a href="http://haveamint.com/">Mint</a>. Additional web nerdery, including the membership system, is fueled by <a href="http://perl.org/">Perl</a>, <a href="http://www.php.net/">PHP</a>, and <a href="http://www.mysql.com/">MySQL</a>.</p>
+ <h2>Web Standards</h2>
+ <p>Web standards are important, and Daring Fireball adheres to them. Specifically, Daring Fireball’s HTML markup should validate as either <a href="http://www.whatwg.org/specs/web-apps/current-work/">HTML 5</a> or XHTML 4.01 Transitional, its layout is constructed using <a href="http://jigsaw.w3.org/css-validator/validator?uri=http://daringfireball.net/css/fireball_screen.css">valid CSS</a>, and its syndicated feed is <a href="http://feedvalidator.org/check?url=http%3A%2F%2Fdaringfireball.net%2Findex.xml">valid Atom</a>.</p>
+ <p>If Daring Fireball looks goofy in your browser, you’re likely using a shitty browser that doesn’t support web standards. Internet Explorer, I’m looking in your direction. If you complain about this, I will laugh at you, because I do not care. If, however, you are using a modern, standards-compliant browser and have trouble viewing or reading Daring Fireball, please do let me know.</p>
+ </div>
+ <!-- article -->
+ <div id="Footer">
+ <form id="SiteSearch" action="https://daringfireball.net/search" method="get" style="margin-bottom: 2.5em;">
+ <div>
+ <input name="q" type="text" value="" style="margin-right: 8px; width: 66%;"/>
+ <input type="submit" value="Search"/> </div>
+ </form>
+ <p class="smallprint"> <a href="/preferences/" title="Customize the font size and presentation options for this web site.">Display Preferences</a>
+ <br/>
+ <br/> Copyright © 2002–2015 The Daring Fireball Company LLC. </p>
+ </div>
+ <div id="SidebarTheDeck">
+ <script type="text/javascript">
+ // <![CDATA[
+ (function(id) {
+ document.write('<script type="text/javascript" src="' + '//connect.decknetwork.net/deck' + id + '_js.php?' + (new Date().getTime()) + '"></' + 'script>');
+ })("DF");
+ var deckDiv = document.getElementById("SidebarTheDeck");
+ var sidebarDiv = document.getElementById("Sidebar");
+ sidebarDiv.appendChild(deckDiv);
+ // ]]>
+ </script>
+ <p id="ViaTheDeck">
+ <a href="http://decknetwork.net/"> <img src="//daringfireball.net/graphics/madison/via_the_deck.png" alt="Ads via The Deck" class="the_deck_promo" width="70"/> <span>Ads via The Deck</span> </a>
+ </p>
+ </div>
+ <!-- Google Analytics -->
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-593949-1']);
+ _gaq.push(['_trackPageview']);
+ (function() {
+ var ga = document.createElement('script');
+ ga.type = 'text/javascript';
+ ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0];
+ s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ <!-- Asynchronously load Mint -->
+ <script type="text/javascript">
+ (function() {
+ var ma = document.createElement('script');
+ ma.type = 'text/javascript';
+ ma.src = '/mint/?js';
+ ma.async = true;
+ var s = document.getElementsByTagName('script')[0];
+ s.parentNode.insertBefore(ma, s);
+ })();
+ </script>
+ </div>
+ <!-- Main -->
+ </div>
+ <!-- box -->
+</body>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/different-sources-for-images/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/different-sources-for-images/expected-images.json
new file mode 100644
index 000000000..12cfc8c63
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/different-sources-for-images/expected-images.json
@@ -0,0 +1,7 @@
+[
+ "https:\/\/test\/foo\/bar\/src.jpg",
+ "https:\/\/test\/foo\/bar\/data-original.jpg",
+ "https:\/\/test\/foo\/bar\/data-orig.jpg",
+ "https:\/\/test\/foo\/bar\/data-url.jpg",
+ "https:\/\/test\/foo\/bar\/data-src.jpg"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/different-sources-for-images/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/different-sources-for-images/expected-metadata.json
new file mode 100644
index 000000000..c442d503c
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/different-sources-for-images/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,\n quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo\n consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse\n cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non\n proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
+ "Image": null,
+ "Title": "Image sources test",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/different-sources-for-images/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/different-sources-for-images/expected.html
new file mode 100644
index 000000000..93f4c92fe
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/different-sources-for-images/expected.html
@@ -0,0 +1,23 @@
+<article>
+ <p>
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ <p>Images</p>
+ <p><img src="https://test/foo/bar/src.jpg"></img></p>
+ <p><img data-original="https://test/foo/bar/data-original.jpg" src="https://test/foo/bar/data-original.jpg"></img></p>
+ <p><img data-orig="https://test/foo/bar/data-orig.jpg" src="https://test/foo/bar/data-orig.jpg"></img></p>
+ <p><img data-url="https://test/foo/bar/data-url.jpg" src="https://test/foo/bar/data-url.jpg"></img></p>
+ <p><img data-src="https://test/foo/bar/data-src.jpg" src="https://test/foo/bar/data-src.jpg"></img></p>
+ <p>
+ Tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+</article> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/different-sources-for-images/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/different-sources-for-images/source.html
new file mode 100644
index 000000000..8727af66d
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/different-sources-for-images/source.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8"/>
+ <title>Image sources test</title>
+</head>
+<body>
+<article>
+ <h1>Lorem</h1>
+ <div>
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </div>
+ <p>Images</p>
+ <p><img src="https://test/foo/bar/src.jpg"/></p>
+ <p><img data-original="https://test/foo/bar/data-original.jpg"/></p>
+ <p><img data-orig="https://test/foo/bar/data-orig.jpg"/></p>
+ <p><img data-url="https://test/foo/bar/data-url.jpg"/></p>
+ <p><img data-src="https://test/foo/bar/data-src.jpg"/></p>
+ <div>
+ Tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </div>
+</article>
+</body>
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ehow-1/config.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ehow-1/config.json
new file mode 100644
index 000000000..4bb89904f
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ehow-1/config.json
@@ -0,0 +1,3 @@
+{
+ "summonCthulhu": true
+} \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ehow-1/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ehow-1/expected-images.json
new file mode 100644
index 000000000..d0e64966f
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ehow-1/expected-images.json
@@ -0,0 +1,14 @@
+[
+ "http:\/\/img-aws.ehowcdn.com\/200x200\/cme\/photography.prod.demandstudios.com\/16149374-814f-40bc-baf3-ca20f149f0ba.jpg",
+ "http:\/\/img-aws.ehowcdn.com\/640\/cme\/photography.prod.demandstudios.com\/16149374-814f-40bc-baf3-ca20f149f0ba.jpg",
+ "http:\/\/img-aws.ehowcdn.com\/default\/cme\/photography.prod.demandstudios.com\/fc249ef6-4d27-41b4-8c21-15f7a8512b50.jpg",
+ "http:\/\/img-aws.ehowcdn.com\/default\/cme\/photography.prod.demandstudios.com\/aae11d4d-a4aa-4251-a4d9-41023ebf6d84.jpg",
+ "http:\/\/img-aws.ehowcdn.com\/default\/cme\/photography.prod.demandstudios.com\/7afdfa1e-da74-44b5-b89c-ca8123516272.jpg",
+ "http:\/\/img-aws.ehowcdn.com\/default\/cme\/photography.prod.demandstudios.com\/4f6612c0-316a-4c74-bb03-cb4e778f6d72.jpg",
+ "http:\/\/img-aws.ehowcdn.com\/default\/cme\/photography.prod.demandstudios.com\/eeb1e0b4-e573-40a3-8db1-2c76f0b13b84.jpg",
+ "http:\/\/img-aws.ehowcdn.com\/default\/cme\/photography.prod.demandstudios.com\/812d4649-4152-4363-97c0-f181d02e709a.jpg",
+ "http:\/\/img-aws.ehowcdn.com\/default\/cme\/photography.prod.demandstudios.com\/0cb3988c-9318-47d6-bc9c-c798da1ede72.jpg",
+ "http:\/\/img-aws.ehowcdn.com\/640\/cme\/photography.prod.demandstudios.com\/e3e18f0b-ab2c-4ffb-9988-a1ea63faef8b.jpg",
+ "http:\/\/img-aws.ehowcdn.com\/640\/cme\/photography.prod.demandstudios.com\/2cd79f8d-0d16-4573-8861-e47fb74b0638.jpg",
+ "http:\/\/img-aws.ehowcdn.com\/640\/cme\/photography.prod.demandstudios.com\/78670312-8636-4c42-a75c-3029f7aa6c73.jpg"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ehow-1/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ehow-1/expected-metadata.json
new file mode 100644
index 000000000..4de144894
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ehow-1/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "Lucy Akins",
+ "Direction": null,
+ "Excerpt": "Glass cloche terrariums are not only appealing to the eye, but they also preserve a bit of nature in your home and serve as a simple, yet beautiful, piece of art. Closed terrariums are easy to care for, as they retain much of their own moisture and provide a warm environment with a consistent level of humidity. You won’t have to water the...",
+ "Image": "http:\/\/img-aws.ehowcdn.com\/200x200\/cme\/photography.prod.demandstudios.com\/16149374-814f-40bc-baf3-ca20f149f0ba.jpg",
+ "Title": "How to Build a Terrarium | eHow",
+ "SiteName": "eHow"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ehow-1/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ehow-1/expected.html
new file mode 100644
index 000000000..397322e20
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ehow-1/expected.html
@@ -0,0 +1,94 @@
+<div>
+ <header>
+
+
+ </header><div>
+ <div>
+ <p>Glass cloche terrariums are not only appealing to the eye, but they also preserve a bit of nature in your home and serve as a simple, yet beautiful, piece of art. Closed terrariums are easy to care for, as they retain much of their own moisture and provide a warm environment with a consistent level of humidity. You won’t have to water the terrariums unless you see that the walls are not misting up. Small growing plants that don’t require a lot of light work best such as succulents, ferns, moss, even orchids.</p>
+ <figure><img alt="Glass cloche terrariums" data-credit="Lucy Akins " longdesc="http://s3.amazonaws.com/photography.prod.demandstudios.com/16149374-814f-40bc-baf3-ca20f149f0ba.jpg" src="http://img-aws.ehowcdn.com/640/cme/photography.prod.demandstudios.com/16149374-814f-40bc-baf3-ca20f149f0ba.jpg" title="Glass cloche terrariums"></img></figure><figcaption> Glass cloche terrariums (Lucy Akins) </figcaption></div>
+ </div>
+
+ <div>
+ <div>
+ <div> <p><span>What You'll Need:</span></p><ul><li>Cloche</li>
+ <li>Planter saucer, small shallow dish or desired platform</li>
+ <li>Floral foam oasis</li>
+ <li>Ruler </li>
+ <li>Spoon</li>
+ <li>Floral wire pins or paper clips</li>
+ <li>Small plants (from a florist or nursery)</li>
+ <li>Moss</li>
+ <li>Tweezers</li>
+ <li>Other small decorative items (optional)</li>
+ </ul></div>
+ </div>
+ </div>
+ <div>
+ <div>
+ <div> <p><span>Step 1</span></p><p>Measure the circumference of your cloche and cut the foam oasis about 3/4 inch (2 cm) smaller. Place the foam oasis into a container full of water and allow to soak until it sinks to the bottom. Dig out a hole on the oasis large enough to fit your plant, being careful not to pierce all the way through to the bottom.</p>
+ </div>
+ <figure><img alt="Dig a hole in the oasis." data-credit="Lucy Akins" src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/fc249ef6-4d27-41b4-8c21-15f7a8512b50.jpg"></img></figure><figcaption> Dig a hole in the oasis. (Lucy Akins) </figcaption></div>
+ </div>
+
+
+ <div>
+ <div>
+ <div> <p><span>Step 2</span></p><p>Insert your plant into the hole.</p>
+ </div>
+ <figure><img alt="Orchid in foam oasis" data-credit="Lucy Akins" src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/aae11d4d-a4aa-4251-a4d9-41023ebf6d84.jpg"></img></figure><figcaption> Orchid in foam oasis (Lucy Akins) </figcaption></div>
+ </div>
+ <div>
+ <div>
+ <div> <p><span>Step 3</span></p><p>You can add various plants if you wish.</p>
+ </div>
+ <figure><img alt="Various foliage" data-credit="Lucy Akins" src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/7afdfa1e-da74-44b5-b89c-ca8123516272.jpg"></img></figure><figcaption> Various foliage (Lucy Akins) </figcaption></div>
+ </div>
+ <div>
+ <div>
+ <div> <p><span>Step 4</span></p><p>Using floral pins, attach enough moss around the oasis to cover it.</p>
+ </div>
+ <figure><img alt="Attach moss." data-credit="Lucy Akins" src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/4f6612c0-316a-4c74-bb03-cb4e778f6d72.jpg"></img></figure><figcaption> Attach moss. (Lucy Akins) </figcaption></div>
+ </div>
+ <div>
+ <div>
+ <div> <p><span>Step 5</span></p><p>Gently place the cloche over the oasis. The glass may push some of the moss upward, exposing some of the foam.</p>
+ </div>
+ <figure><img alt="Place cloche over oasis." data-credit="Lucy Akins" src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/eeb1e0b4-e573-40a3-8db1-2c76f0b13b84.jpg"></img></figure><figcaption> Place cloche over oasis. (Lucy Akins) </figcaption></div>
+ </div>
+ <div>
+ <div>
+ <div> <p><span>Step 6</span></p><p>Simply pull down the moss with tweezers or insert more moss to fill in the empty spaces.</p>
+ </div>
+ <figure><img alt="Rearrange moss." data-credit="Lucy Akins" src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/812d4649-4152-4363-97c0-f181d02e709a.jpg"></img></figure><figcaption> Rearrange moss. (Lucy Akins) </figcaption></div>
+ </div>
+ <div>
+ <div>
+ <div> <p><span>Step 7</span></p><p>You can use any platform you wish. In this case, a small saucer was used.</p>
+ </div>
+ <figure><img alt="Place cloche on a platform to sit on." data-credit="Lucy Akins" src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/0cb3988c-9318-47d6-bc9c-c798da1ede72.jpg"></img></figure><figcaption> Place cloche on a platform to sit on. (Lucy Akins) </figcaption></div>
+ </div>
+ <div>
+ <div>
+ <div> <p><span>Step 8</span></p><p>This particular terrarium rests on a planter saucer and features a small white pumpkin.</p>
+ </div>
+ <figure><img alt="Cloche placed on a terracotta saucer" data-credit="Lucy Akins" src="http://img-aws.ehowcdn.com/640/cme/photography.prod.demandstudios.com/e3e18f0b-ab2c-4ffb-9988-a1ea63faef8b.jpg"></img></figure><figcaption> Cloche placed on a terracotta saucer (Lucy Akins) </figcaption></div>
+ </div>
+ <div>
+ <div>
+ <div> <p><span>Step 9</span></p><p>This particular terrarium was placed on a wood slice and a little toy squirrel was placed inside to add a little whimsy.</p>
+ </div>
+ <figure><img alt="Placed on a wooden slice" data-credit="Lucy Akins" src="http://img-aws.ehowcdn.com/640/cme/photography.prod.demandstudios.com/2cd79f8d-0d16-4573-8861-e47fb74b0638.jpg"></img></figure><figcaption> Placed on a wooden slice (Lucy Akins) </figcaption></div>
+ </div>
+ <div>
+ <div>
+ <div> <p><span>Finished Terrarium</span></p><p>Displayed alone or in a group, these pretty arrangements allow you to add a little nature to your decor or tablescape.</p>
+ </div>
+ <figure><img alt="Cloche terrarium" data-credit="Lucy Akins" src="http://img-aws.ehowcdn.com/640/cme/photography.prod.demandstudios.com/78670312-8636-4c42-a75c-3029f7aa6c73.jpg"></img></figure><figcaption> Cloche terrarium (Lucy Akins) </figcaption></div>
+ </div>
+
+
+
+
+ <section data-module="rcp_tombstone" id="FeaturedTombstone"><h2>Featured</h2>
+
+ </section></div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ehow-1/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ehow-1/source.html
new file mode 100644
index 000000000..f5c9afe19
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ehow-1/source.html
@@ -0,0 +1,934 @@
+<!DOCTYPE html>
+<!--[if IE]><![endif]-->
+<html class="Crafts en-US" lang="en-US" xmlns:fb="http://www.facebook.com/2008/fbml" xmlns:og="http://ogp.me/ns#" data-channel="crafts" itemscope="" itemtype="http://schema.org/Article">
+
+<head>
+ <meta charset="utf-8"/>
+ <meta name="description" content="How to Build a Terrarium. Glass cloche terrariums are not only appealing to the eye, but they also preserve a bit of nature in your home and serve as a simple, yet beautiful, piece of art. Closed terrariums are easy to care for, as they retain much of their own moisture and provide a warm environment with a consistent level of humidity. You..."/>
+ <meta name="format-detection" content="telephone=no"/>
+ <meta name="y_key" content="4d4cb4ef1ad334cb"/>
+ <meta name="alexaVerifyID" content="xlJch1oUHrXNtOQBpiuUCV0-rlc"/>
+ <meta name="cachetime" content="201504281431"/>
+ <meta name="p:domain_verify" content="4d1387210be25228f0c4692cc47db05b"/>
+ <meta name="cme_last_updated" content="2015-04-28T11:54:11.401000"/>
+ <meta name="publishdate" content="05/29/2007 09:49:00"/>
+ <meta name="last_rcp_import" content="2015-04-27T19:34:40.179876"/>
+ <meta name="articleimage" content="http://s3.amazonaws.com/photography.prod.demandstudios.com/16149374-814f-40bc-baf3-ca20f149f0ba.jpg"/>
+ <link href="http://www.ehow.com/how_2042752_build-terrarium.html" rel="canonical"/>
+ <link type="application/rss+xml" href="http://www.ehow.com/feed/ehow-crafts.rss" rel="alternate" title="Subscribe to our RSS Feed"/>
+ <meta name="studioid" scheme="DMINSTR2" content="f941e4cd-a49e-4948-b244-677c15ff8b7f"/>
+ <meta name="contentid" scheme="DMINSTR2" content="2042752"/>
+ <meta name="category" scheme="DMINSTR2" content="Crafts"/>
+ <meta name="subcategory" scheme="DMINSTR2" content="Other DIY Crafts"/>
+ <meta name="subsubcat" scheme="DMINSTR2" content="Other DIY Projects"/>
+ <meta name="subpagetype" scheme="DMINSTR2" content="topic_view"/>
+ <meta name="exp_page" scheme="DMINSTR2" content=""/>
+ <meta name="wa_pchn" scheme="DMINSTR2" content="Crafts"/>
+ <meta name="pagetype" scheme="DMINSTR2" content="inline"/>
+ <meta name="wa_lr" scheme="DMINSTR2" content="en-US"/>
+ <meta name="siteid" scheme="DMINSTR2" content="EHWC"/>
+ <meta name="exp_name" scheme="DMINSTR2" content="desktop:default"/>
+ <meta name="wa_un" scheme="DMINSTR2" content=""/>
+ <meta name="wa_isreg" scheme="DMINSTR2" content=""/>
+ <meta name="wa_lgdin" scheme="DMINSTR2" content=""/>
+ <meta name="wa_clvl" scheme="DMINSTR2" content="1"/>
+ <meta name="wa_lgsrc" scheme="DMINSTR2" content="1"/>
+ <meta name="author" scheme="DMINSTR2" content="Lucy Akins"/>
+ <meta name="author_image" content=""/>
+ <meta name="twitter:card" content="summary"/>
+ <meta name="twitter:site" content="@ehow"/>
+ <meta property="og:image" content="http://img-aws.ehowcdn.com/200x200/cme/photography.prod.demandstudios.com/16149374-814f-40bc-baf3-ca20f149f0ba.jpg"/>
+ <meta property="og:url" content="http://www.ehow.com/how_2042752_build-terrarium.html"/>
+ <meta property="og:type" content="article"/>
+ <meta property="og:title" content="How to Build a Terrarium | eHow"/>
+ <meta property="og:description" content="Glass cloche terrariums are not only appealing to the eye, but they also preserve a bit of nature in your home and serve as a simple, yet beautiful, piece of art. Closed terrariums are easy to care for, as they retain much of their own moisture and provide a warm environment with a consistent level of humidity. You won’t have to water the..."/>
+ <meta property="fb:app_id" content="63203377906"/>
+ <meta property="fb:ttl" content="604800"/>
+ <meta property="og:site_name" content="eHow"/>
+ <title>How to Build a Terrarium (with Pictures) | eHow</title>
+ <link type="image/x-icon" href="http://v5-static.ehowcdn.com/favicon.ico" rel="shortcut icon apple-touch-icon"/>
+ <link rel="stylesheet" type="text/css" href="http://dynamic02.ehowcdn.com/services/modules/css/common_header,corporate-skin,inline/fa923205/"/>
+ <!--[if lt IE 9]><link href="http://v5-static.ehowcdn.com/ui/stylesheets/layout/ie.css" rel="stylesheet" /><script src="http://v5-static.ehowcdn.com/ui/scripts/ie_hacks/header.js"></script><![endif]-->
+ <!--[if IE 9]><link href="http://v5-static.ehowcdn.com/ui/stylesheets/layout/ie9.css" rel="stylesheet" /><![endif]-->
+ <script>
+ window._omnitureLinkSetDomain = 'extended.dmtracker.com';
+ </script>
+ <script>
+ var dmjs = dmjs || {};
+ dmjs.global = dmjs.global || {};
+ dmjs.global.glbBaseUrl = "http:\/\/www.ehow.com";
+ dmjs.global.facebook = {
+ "app_id": "63203377906",
+ "api_version": "v2.0",
+ "login_service": "http:\/\/www.ehow.com\/services\/fb\/login\/",
+ "comment_service": "http:\/\/www.ehow.com\/services\/comment\/refresh\/"
+ };
+ dmjs.urls = {
+ "cdn": "http:\/\/v5-static.ehowcdn.com",
+ "sitelife": "http:\/\/sitelife.ehow.com\/ver1.0\/",
+ "dmtracker": "vs.dmtracker.com"
+ };
+ dmjs.global.IN_PRODUCTION = true;
+ dmjs.global.darkhorse = true;
+ dmjs.global.pool = "default";
+ dmjs.global.channel = "crafts";
+ dmjs.global.skin = "crafts";
+ dmjs.global.facebook.xid = "aG93XzIwNDI3NTJfYnVpbGQtdGVycmFyaXVtLmh0bWw";
+ dmjs.global.facebook.associate_on_comment = false;
+ dmjs.global._adChannel = "craft_other_diy,text,suggested7";
+ dmjs.global.IsSlideStep = false;
+ dmjs.global.fixed_category = [{
+ "id": 5352,
+ "title": "Crafts",
+ "url": "\/crafts\/"
+ }, {
+ "id": 5426,
+ "title": "Other DIY Crafts",
+ "url": "\/diy-crafts\/"
+ }, {
+ "id": 5429,
+ "title": "Other DIY Projects",
+ "url": "\/diy-projects\/"
+ }];
+ dmjs.global.SlideShowTest = {
+ "_id": "www.ehow.com\/how_16357_make-paper-sunflowers.html",
+ "dimensions": "none",
+ "image": {
+ "url": "http:\/\/s3.amazonaws.com\/uploadedimages.demandmedia\/sunflowers-1.jpg"
+ },
+ "subtitle": "",
+ "title": "How to Make Paper Sunflowers",
+ "type": "Article",
+ "url": "\/how_16357_make-paper-sunflowers.html"
+ };
+ dmjs.global.contributor = "www.demandstudios.com\/contributor\/3959b24c-24bb-447f-a676-55ce0b6e5519";
+ dmjs.global.articleType = "Article";
+ dmjs.global.articleID = 2042752;
+ /* Add xdomain first event helper to be added before ad event listeners are added */
+ dmjs.xdomainFirstEventListener = true;
+ if (window.addEventListener) {
+ window.addEventListener("message", function(event) {
+ if (typeof xdomain != 'undefined' && typeof xdomain.dmjsFirstEventListener != 'undefined') {
+ xdomain.dmjsFirstEventListener(event);
+ }
+ }, false);
+ } else {
+ window.attachEvent("message", function(event) {
+ if (typeof xdomain != 'undefined' && typeof xdomain.dmjsFirstEventListener != 'undefined') {
+ xdomain.dmjsFirstEventListener(event);
+ }
+ });
+ }
+ </script>
+ <!--[if lt IE 9]>
+<script src="http://v5-static.ehowcdn.com/content/compressed/common_header-646656f9.js" ></script>
+<![endif]-->
+ <script src="http://dynamic01.ehowcdn.com/services/modules/js/gpt,common_header_slim/4eb05a96/"></script>
+ <script class="kxct" data-id="JWC_M4Hq" data-timing="async" data-version="1.9" type="text/javascript">
+ window.Krux || ((Krux = function() {
+ Krux.q.push(arguments)
+ }).q = []);
+ (function() {
+ var k = document.createElement('script');
+ k.type = 'text/javascript';
+ k.async = true;
+ var m, src = (m = location.href.match(/\bkxsrc=([^&]+)/)) && decodeURIComponent(m[1]);
+ k.src = /^https?:\/\/([a-z0-9_\-\.]+\.)?krxd\.net(:\d{1,5})?\//i.test(src) ? src : src === "disable" ? "" : (location.protocol === "https:" ? "https:" : "http:") + "//cdn.krxd.net/controltag?confid=JWC_M4Hq";
+ var s = document.getElementsByTagName('script')[0];
+ s.parentNode.insertBefore(k, s);
+ }());
+ </script>
+ <script>
+ window.Krux || ((Krux = function() {
+ Krux.q.push(arguments);
+ }).q = []);
+ (function() {
+ function retrieve(n) {
+ var m, k = 'kx' + n;
+ if (window.localStorage) {
+ return window.localStorage[k] || "";
+ } else if (navigator.cookieEnabled) {
+ m = document.cookie.match(k + '=([^;]*)');
+ return (m && unescape(m[1])) || "";
+ } else {
+ return '';
+ }
+ }
+ Krux.user = retrieve('user');
+ Krux.segments = retrieve('segs') && retrieve('segs').split(',') || [];
+ })();
+ </script>
+ <script type="text/javascript">
+ var GPT = [];
+ googletag.cmd.push(function() {
+ window.slot_define_string = "6117/dmd.ehow/crafts/otherdiycrafts/otherdiyprojects";
+ GPT['300x250_300x600'] = googletag.defineSlot('/6117/dmd.ehow/crafts/otherdiycrafts/otherdiyprojects', [
+ [300, 250],
+ [300, 600]
+ ], '300x250_300x600').addService(googletag.pubads());
+ GPT['728x90_990x90_970x250'] = googletag.defineSlot('/6117/dmd.ehow/crafts/otherdiycrafts/otherdiyprojects', [
+ [728, 90],
+ [990, 90],
+ [970, 250]
+ ], '728x90_990x90_970x250').addService(googletag.pubads());
+ GPT['outofpage'] = googletag.defineOutOfPageSlot('/6117/dmd.ehow/crafts/otherdiycrafts/otherdiyprojects', 'outofpage').addService(googletag.pubads()).setCollapseEmptyDiv(true, true);
+ googletag.pubads().setTargeting('cat', 'crafts');
+ googletag.pubads().setTargeting('scat', 'otherdiycrafts');
+ googletag.pubads().setTargeting('sscat', 'otherdiyprojects');
+ googletag.pubads().setTargeting('x', '7');
+ googletag.pubads().setTargeting('art', '2042752');
+ googletag.pubads().setTargeting('ctype', 'step_articles');
+ googletag.pubads().setTargeting('vid', '0');
+ googletag.pubads().setTargeting('blog', '0');
+ googletag.pubads().setTargeting('ad_chan', 'craft_other_diy');
+ window.gpt_targeting_vars = {
+ "cat": "crafts",
+ "scat": "otherdiycrafts",
+ "sscat": "otherdiyprojects",
+ "x": "7",
+ "art": 2042752,
+ "ctype": "step_articles",
+ "vid": 0,
+ "blog": 0,
+ "ad_chan": "craft_other_diy"
+ };
+ googletag.pubads().setTargeting('dc_ref', top.window.location.href.replace('#', '-'));
+ googletag.pubads().setTargeting("envr", ""); //for production. set envr to empty string
+ googletag.pubads().setTargeting("ksg", Krux.segments);
+ googletag.pubads().setTargeting("kuid", Krux.user);
+ googletag.pubads().collapseEmptyDivs();
+ googletag.pubads().enableSingleRequest();
+ googletag.enableServices();
+ });
+ </script>
+ <script>
+ dataLayer = [{
+ 'content_category': 'Crafts',
+ 'content_subCategory': 'Other DIY Crafts',
+ 'content_subSubCategory': 'Other DIY Projects',
+ 'content_pageType': 'inline',
+ 'content_subPageType': 'topic_view',
+ 'content_channel': 'crafts',
+ 'content_author': 'Lucy Akins',
+ 'content_publishDate': '05/29/2007 09:49:00',
+ 'content_name': 'How to Build a Terrarium (with Pictures) | eHow',
+ 'content_hasImages': 'True',
+ 'content_experience': 'desktop:default',
+ 'httpStatusCode': '200'
+ }];
+ </script>
+ <!--
+<PageMap>
+ <DataObject type="meta">
+ <Attribute name="articlethumbnail"><![CDATA[]]></Attribute>
+ <Attribute name="articletype"><![CDATA[professional]]></Attribute>
+ </DataObject>
+</PageMap>
+-->
+</head>
+
+<body class="Crafts TopicView " data-skin="crafts">
+ <!--[if IE 7]>
+ <script src="http://v5-static.ehowcdn.com/ui/scripts/ie7_notification.js" ></script> <![endif]-->
+ <noscript>
+ <iframe src="//www.googletagmanager.com/ns.html?id=GTM-K7RB82" height="0" width="0" style="display:none;visibility:hidden"></iframe>
+ </noscript>
+ <script>
+ (function(w, d, s, l, i) {
+ w[l] = w[l] || [];
+ w[l].push({
+ 'gtm.start': new Date().getTime(),
+ event: 'gtm.js'
+ });
+ var f = d.getElementsByTagName(s)[0],
+ j = d.createElement(s),
+ dl = l != 'dataLayer' ? '&l=' + l : '';
+ j.async = true;
+ j.src = '//www.googletagmanager.com/gtm.js?id=' + i + dl;
+ f.parentNode.insertBefore(j, f);
+ })(window, document, 'script', 'dataLayer', 'GTM-K7RB82');
+ </script>
+ <header id="Header" data-section="header">
+ <section class="topContainer inner-container page-header clearfix">
+ <a href="http://www.ehow.com/" class="image corp-logo fl"><img src="http://v5-static.ehowcdn.com/media/images/logos/logo-stamp.png" width="134" height="38" alt="eHow Logo"/></a>
+ <form method="get" action="http://www.ehow.com/search.html" id="searchHeader" class="Search ">
+ <input type="text" name="s" data-type="searchinput" class="input fl headline4"/>
+ <input name="skin" type="hidden" value="corporate"/>
+ <input name="t" type="hidden" value="all"/>
+ <input type="submit" value="Search" class="bttn submit headline5 head"/> </form>
+ </section>
+ <nav id="primaryNav" role="navigation">
+ <ul class="inner-container channelListing clearfix skin-crafts">
+ <li class="list js-list"><a href="http://www.ehow.com/ehow-mom/" class="mom head title channel gtm_headerNavmom" data-channel="mom">mom</a></li>
+ <li class="list js-list"><a href="http://www.ehow.com/ehow-style/" class="style head title channel gtm_headerNavstyle" data-channel="style">style</a></li>
+ <li class="list js-list"><a href="http://www.ehow.com/ehow-food/" class="food head title channel gtm_headerNavfood" data-channel="food">food</a></li>
+ <li class="list js-list"><a href="http://www.ehow.com/ehow-tech/" class="tech head title channel gtm_headerNavtech" data-channel="tech">tech</a></li>
+ <li class="list js-list"><a href="http://www.ehow.com/ehow-home/" class="home head title channel gtm_headerNavhome" data-channel="home">home</a></li>
+ <li class="list js-list"><a href="http://www.ehow.com/ehow-money/" class="money head title channel gtm_headerNavmoney" data-channel="money">money</a></li>
+ <li class="list js-list"><a href="http://www.ehow.com/ehow-crafts/" class="crafts head title channel gtm_headerNavcrafts" data-channel="crafts">crafts</a></li>
+ <li class="list js-list more"><a class="head title more js-more" data-channel="more" href="#">More<span class="js-icon more-icon elegant-icons">3</span></a>
+ <div class="more_dropdown">
+ <div class="moreLinks">
+ <div class="headline2 head mg-4">Browse Articles &amp; Videos By Category</div>
+ <ul class="list list-0">
+ <li class="item"><a href="http://www.ehow.com/arts/" class="headline5 title target">Arts &amp; Entertainment</a></li>
+ <li class="item"><a href="http://www.ehow.com/business/" class="headline5 title target">Business</a></li>
+ <li class="item"><a href="http://www.ehow.com/careers/" class="headline5 title target">Careers &amp; Work</a></li>
+ <li class="item"><a href="http://www.ehow.com/cars/" class="headline5 title target">Cars</a></li>
+ <li class="item"><a href="http://www.ehow.com/computers/" class="headline5 title target">Computers</a></li>
+ <li class="item"><a href="http://www.ehow.com/crafts/" class="headline5 title target">Crafts</a></li>
+ <li class="item"><a href="http://www.ehow.com/cultures/" class="headline5 title target">Culture &amp; Society</a></li>
+ </ul>
+ <ul class="list list-1">
+ <li class="item"><a href="http://www.ehow.com/education/" class="headline5 title target">Education</a></li>
+ <li class="item"><a href="http://www.ehow.com/electronics/" class="headline5 title target">Electronics</a></li>
+ <li class="item"><a href="http://www.ehow.com/fashion/" class="headline5 title target">Fashion, Style &amp; Personal Care</a></li>
+ <li class="item"><a href="http://www.ehow.com/food/" class="headline5 title target">Food &amp; Drink</a></li>
+ <li class="item"><a href="http://www.ehow.com/health/" class="headline5 title target">Health</a></li>
+ <li class="item"><a href="http://www.ehow.com/hobbies-games/" class="headline5 title target">Hobbies, Games &amp; Toys</a></li>
+ <li class="item"><a href="http://www.ehow.com/holidays/" class="headline5 title target">Holidays &amp; Celebrations</a></li>
+ </ul>
+ <ul class="list list-2">
+ <li class="item"><a href="http://www.ehow.com/home/" class="headline5 title target">Home &amp; Garden</a></li>
+ <li class="item"><a href="http://www.ehow.com/internet/" class="headline5 title target">Internet</a></li>
+ <li class="item"><a href="http://www.ehow.com/legal/" class="headline5 title target">Legal</a></li>
+ <li class="item"><a href="http://www.ehow.com/parenting/" class="headline5 title target">Parenting</a></li>
+ <li class="item"><a href="http://www.ehow.com/parties/" class="headline5 title target">Parties &amp; Entertaining</a></li>
+ <li class="item"><a href="http://www.ehow.com/personal-finance/" class="headline5 title target">Personal Finance</a></li>
+ <li class="item"><a href="http://www.ehow.com/pets/" class="headline5 title target">Pets</a></li>
+ </ul>
+ <ul class="list list-3">
+ <li class="item"><a href="http://www.ehow.com/relationships/" class="headline5 title target">Relationships &amp; Family</a></li>
+ <li class="item"><a href="http://www.ehow.com/sports/" class="headline5 title target">Sports &amp; Fitness</a></li>
+ <li class="item"><a href="http://www.ehow.com/travel/" class="headline5 title target">Travel</a></li>
+ <li class="item"><a href="http://www.ehow.com/weddings/" class="headline5 title target">Weddings</a></li>
+ </ul>
+ </div>
+ <div class="sponsored_programs">
+ <ul class="unstyled">
+ <li class="item">
+ <a href="http://www.ehow.com/ehow-indoor/" class="diyhome"></a>
+ </li>
+ <li class="item">
+ <a href="http://www.ehow.com/ehow-outdoor/" class="diyoutdoor"></a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </li>
+ </ul>
+ </nav>
+ </header>
+ <div class="inner-container">
+ <!-- gpt slot 728x90_990x90_970x250 -->
+ <div class="bannerAd mod" data-module="gpt-ad-728x90_990x90_970x250" id="728x90_990x90_970x250">
+ <script type="text/javascript">
+ googletag.cmd.push(function() {
+ googletag.display('728x90_990x90_970x250');
+ });
+ </script>
+ </div>
+ <!-- gpt slot outofpage -->
+ <div class="AdUnitOutOfPage mod" data-module="gpt-ad-outofpage" id="outofpage">
+ <script type="text/javascript">
+ googletag.cmd.push(function() {
+ googletag.display('outofpage');
+ });
+ </script>
+ </div>
+ </div>
+ <section id="Body" class="InlineTemplate FLC" data-page-id="inlinetemplate" data-section="body">
+ <script id="_ehow-com-hnh"></script>
+ <ol class="breadcrumbs unstyled inline" itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb" data-module="breadcrumb">
+ <li class="list">
+ <a href="http://www.ehow.com/" rel="home" itemprop="url" class="title"> <span itemprop="title">eHow</span> </a>
+ </li>
+ <li class="list" itemprop="child" itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb">
+ <a href="http://www.ehow.com/crafts/" rel="directory" itemprop="url" class="title"> <span itemprop="title">Crafts</span> </a>
+ </li>
+ <li class="list" itemprop="child" itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb">
+ <a href="http://www.ehow.com/crafts/diy-crafts/" rel="directory" itemprop="url" class="title"> <span itemprop="title">Other DIY Crafts</span> </a>
+ </li>
+ <li class="list" itemprop="child" itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb">
+ <a href="http://www.ehow.com/crafts/diy-crafts/diy-projects/" rel="directory" itemprop="url" class="title"> <span itemprop="title">Other DIY Projects</span> </a>
+ </li>
+ <li class="list" itemprop="child" itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb">
+ <a href="http://www.ehow.com/how_2042752_build-terrarium.html" rel="directory" itemprop="url" class="title"> <span itemprop="title">How to Build a Terrarium</span> </a>
+ </li>
+ </ol>
+ <!-- gpt slot 990x50 -->
+ <div class="col-main">
+ <header class="page-head bordered">
+ <h1 class="headline1 head mg-2" itemprop="headline">
+How to Build a Terrarium </h1>
+ <div data-type="AuthorProfile" itemprop="author" itemscope="" itemtype="http://www.schema.org/Person">
+ <script type="text/html" data-element="template">
+ <footer class="AuthorProfileWrap footer">
+ <div class="AuthorProfileModal" data-element="modal">
+ <div class="wrapper">
+ <div class="ModalClose close" data-action="hideModal" data-element="closeButton">X</div> <img src="http://img-aws.ehowcdn.com/100x100/studio-image/ver1.0/Content/images/store/3/11/a3407c7f-fdf9-4ae6-8bac-48007b0109ea.Medium.jpg" onerror="this.className = &#039;hide&#039;" />
+ <div class="headline3 head mg-2" itemprop="name"> Lucy Akins </div>
+ <p class="bio"> Lucy Akins is an artist/photographer/blogger living in Toronto, Ontario. Her blog, Craftberry Bush, has blossomed into a business, having gained domestic and international recognition. Her work has been published in several magazines, including: Cottages and Bungalows, American Farmlife Style, National Geographic Kids, Artful Blogger, Somerset Life, and most recently graced the cover of Somerset Home. </p>
+ <p class="portfolio"> <a class="profile" itemprop="url" rel="author" href="http://www.demandstudios.com/profile-3959b24c-Lucy-Akins/" target="_blank">View my portfolio</a> </p>
+ </div>
+ </div>
+ </footer>
+ </script>
+ <div class="post-meta clearfix headline6 mg-2 ">
+ <div class="meta">
+ <a class="byline trigger gtm_contributorByline head-alt nb-name" rel="author" itemprop="author" href="/contributor/lucy_akins/" target="_top"> <span itemprop="name">By Lucy Akins</span> </a>
+ <div class="nb-byline">eHow Contributor</div>
+ </div>
+ </div>
+ <div class="article-meta"> </div>
+ <div data-element="container"></div>
+ </div>
+ <div class="clearfix">
+ <ul class="social-icons js-social-icons inline flcb" data-url="http://www.ehow.com/how_2042752_build-terrarium.html">
+ <li class="item btnPinterest">
+ <a class="js-btn btn gtm_socialShare" data-social="pinterest" data-url="http://www.ehow.com/how_2042752_build-terrarium.html?p=d" data-title="How to Build a Terrarium" data-media="http://s3.amazonaws.com/photography.prod.demandstudios.com/16149374-814f-40bc-baf3-ca20f149f0ba.jpg"> <span class="social-icon elegant-icons"></span> <span class="action js-pins">Pin</span> </a>
+ </li>
+ <li class="item btnFacebook">
+ <a class="js-btn btn gtm_socialShare" data-social="facebook" data-url="http://www.ehow.com/how_2042752_build-terrarium.html" data-title="How to Build a Terrarium" data-media="http://s3.amazonaws.com/photography.prod.demandstudios.com/16149374-814f-40bc-baf3-ca20f149f0ba.jpg" data-description="Glass cloche terrariums are not only appealing to the eye, but they also preserve a bit of nature in your home and serve as a simple, yet beautiful, piece of art. Closed terrariums are easy to care for, as they retain much of their own moisture and provide a warm environment with a consistent level of humidity. You won’t have to water the..."> <span class="social-icon elegant-icons"></span> <span class="action js-facebook_shares">Share</span> </a>
+ </li>
+ <li class="item btnTwitter">
+ <a class="js-btn btn gtm_socialShare" data-social="twitter" data-url="http://www.ehow.com/how_2042752_build-terrarium.html" data-title="How to Build a Terrarium" data-media="http://s3.amazonaws.com/photography.prod.demandstudios.com/16149374-814f-40bc-baf3-ca20f149f0ba.jpg"> <span class="social-icon elegant-icons"></span> <span class="action js-tweets">Tweet</span> </a>
+ </li>
+ <li class="item btnGoogle">
+ <a class="js-btn btn gtm_socialShare" data-social="google" data-url="http://www.ehow.com/how_2042752_build-terrarium.html" data-title="How to Build a Terrarium"> <span class="social-icon elegant-icons"></span> <span class="action js-plusones">Share</span> </a>
+ </li>
+ </ul>
+ <div class="pagescore js-pagescore page-heading" data-score="true" data-url="http://www.ehow.com/how_2042752_build-terrarium.html"> <span class="headline3 num js-num"></span> <span class="icon"></span> <span class="msg">Found This Helpful</span> </div>
+ </div>
+ </header>
+ <div class="mod step">
+ <div class="stepContent mod">
+ <div class="content lead">
+ <p>Glass cloche terrariums are not only appealing to the eye, but they also preserve a bit of nature in your home and serve as a simple, yet beautiful, piece of art. Closed terrariums are easy to care for, as they retain much of their own moisture and provide a warm environment with a consistent level of humidity. You won’t have to water the terrariums unless you see that the walls are not misting up. Small growing plants that don’t require a lot of light work best such as succulents, ferns, moss, even orchids.</p>
+ </div>
+ <figure class="stepThumb"> <img src="http://img-aws.ehowcdn.com/640/cme/photography.prod.demandstudios.com/16149374-814f-40bc-baf3-ca20f149f0ba.jpg" alt="Glass cloche terrariums" title="Glass cloche terrariums" class="photo" data-credit="Lucy Akins " longdesc="http://s3.amazonaws.com/photography.prod.demandstudios.com/16149374-814f-40bc-baf3-ca20f149f0ba.jpg"/> </figure>
+ <figcaption class="small caption"> Glass cloche terrariums (Lucy Akins) </figcaption>
+ </div>
+ </div>
+ <div id="relatedContentUpper" class="RelatedContent Module" data-module="rcp_top">
+ <header class="">
+ <h3 class="head headline2 mg-2">Other People Are Reading</h3> </header>
+ <ul class="unstyled inline box box-inner people-reading mod FLC" data-type="more-relatedArticles">
+ <li class="fl item headline5 first">
+ <a class="gtm_otherPeopleReading" href="http://www.ehow.com/video_12263138_plant-terrarium-ideas.html"> <img src="http://img-aws.ehowcdn.com/105x70/viper/media/2b3830ca-4eb6-4bfd-a1cd-d430b3e28d59/jpeg/a7edbb0f-86a7-4c73-9c2d-f85f87b49efa_0.jpg" class="thumb fl"/> </a> <a class="title gtm_otherPeopleReading headline5" href="http://www.ehow.com/video_12263138_plant-terrarium-ideas.html">Plant Terrarium Ideas</a> </li>
+ <li class="fl item headline5 mid">
+ <a class="gtm_otherPeopleReading" href="http://www.ehow.com/how_4885344_build-terrarium-succulent-plants.html"> <img src="http://img-aws.ehowcdn.com/105x70/cme/photography.prod.demandstudios.com/619daaaa-7991-4fc6-9b62-dfeab8a285b4.jpg" class="thumb fl"/> </a> <a class="title gtm_otherPeopleReading headline5" href="http://www.ehow.com/how_4885344_build-terrarium-succulent-plants.html">How to Build a Terrarium With Succulent Plants</a> </li>
+ </ul>
+ </div>
+ <div class="mod step">
+ <div class="stepContent">
+ <div class="content"> <span class="headline2 head mg-1 block">What You'll Need:</span>
+ <ul class="markdown-ul">
+ <li>Cloche</li>
+ <li>Planter saucer, small shallow dish or desired platform</li>
+ <li>Floral foam oasis</li>
+ <li>Ruler </li>
+ <li>Spoon</li>
+ <li>Floral wire pins or paper clips</li>
+ <li>Small plants (from a florist or nursery)</li>
+ <li>Moss</li>
+ <li>Tweezers</li>
+ <li>Other small decorative items (optional)</li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div class="mod step">
+ <div class="stepContent">
+ <div class="content"> <span class="headline2 head mg-1 block">Step 1</span>
+ <p>Measure the circumference of your cloche and cut the foam oasis about 3/4 inch (2 cm) smaller. Place the foam oasis into a container full of water and allow to soak until it sinks to the bottom. Dig out a hole on the oasis large enough to fit your plant, being careful not to pierce all the way through to the bottom.</p>
+ </div>
+ <figure class="stepThumb"> <img src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/fc249ef6-4d27-41b4-8c21-15f7a8512b50.jpg" alt="Dig a hole in the oasis." class="photo" data-credit="Lucy Akins"/> </figure>
+ <figcaption class="small caption"> Dig a hole in the oasis. (Lucy Akins) </figcaption>
+ </div>
+ </div>
+ <div id="m1"></div>
+ <div class="mod Inline">
+ <div id="DMINSTR" type="adimpression" data-type="adTracking" name="&amp;adunit_id=ca-ehow_300x250&amp;ad_unit_type=CNT&amp;ad_unit_network=GAP&amp;revenue_basis=CPC&amp;ad_position=-&amp;revenue_tag=craft_other_diy">
+ <div id="GoogleAdsense300x250"></div>
+ <script>
+ dmjs.revenueTags.push('ca-ehow_300x250;craft_other_diy,text,suggested7');
+ googleAds.addAdUnit({
+ priority: 3,
+ adUnitId: 'GoogleAdsense300x250',
+ google_ad_channel: 'craft_other_diy,text,suggested7',
+ google_ad_client: 'ca-ehow_300x250',
+ google_page_url: 'http://www.ehow.com/how_2042752_build-terrarium.html',
+ google_max_num_ads: '1',
+ google_ad_type: 'text',
+ templates: {
+ text: '&lt;div class="GoogleTextAd GoogleAd300x250 ad-300"> \
+ &lt;p>&lt;a class="header" href="{!= google_info.feedback_url !}">Sponsored Links&lt;/a>&lt;/p> \
+ &lt;ul> \
+ {! for (var i = 0; i &lt; ads.length; i++) { !} \
+ &lt;li class="Ad"> \
+ &lt;a rel="nofollow" href="{!= ads[i].url !}" target="_blank" title="go to {!= clean(ads[i].visible_url) !}" class="title"> \
+ {!= ads[i].line1 !} \
+ &lt;/a> \
+ &lt;p class="copy">{!= ads[i].line2 !} {!= ads[i].line3 !}&lt;/p> \
+ &lt;a rel="nofollow" href="{!= ads[i].url !}" target="_blank" title="go to {!= clean(ads[i].visible_url) !}" class="baseurl url"> \
+ {!= ads[i].visible_url !} \
+ &lt;/a> \
+ &lt;/li> \
+ {! } !} \
+ &lt;/ul> \
+ &lt;/div>',
+ image: '&lt;div class="GoogleImageAd GoogleImageAdNew"> \
+ &lt;a class="header" href="{!= google_info.feedback_url !}">Sponsored Links&lt;/a> \
+ &lt;a href="{!= ads[0].url !}" title="go to {!= clean(ads[0].visible_url) !}" target="_blank" class="Ad" >\
+ &lt;img src="{!= ads[0].image_url !}" width="{!= ads[0].image_width !}" height="{!= ads[0].image_height !}" border="0" alt="" />\
+ &lt;/a> \
+ &lt;/div>',
+ flash: '&lt;div class="GoogleFlashAd GoogleFlashAdNew">\
+ &lt;a class="header" href="{!= google_info.feedback_url !}">Sponsored Links&lt;/a> \
+ &lt;div class="Ad">\
+ &lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="{!= ads[0].image_width !}" height="{!= ads[0].image_height !}">&lt;param name="movie" value="{!= ads[0].image_url !}">&lt;param name="quality" value="high">&lt;param name="AllowScriptAccess" value="never">&lt;embed src="{!= ads[0].image_url !}" width="{!= ads[0].image_width !}" height="{!= ads[0].image_height !}" type="application/x-shockwave-flash" AllowScriptAccess="never" pluginspage="http://www.macromedia.com/go/getflashplayer">&lt;/embed>&lt;/object>\
+ &lt;/div>\
+ &lt;/div>'
+ },
+ google_image_size: '300x250'
+ });
+ </script>
+ </div>
+ </div>
+ <div class="mod step">
+ <div class="stepContent">
+ <div class="content"> <span class="headline2 head mg-1 block">Step 2</span>
+ <p>Insert your plant into the hole.</p>
+ </div>
+ <figure class="stepThumb"> <img src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/aae11d4d-a4aa-4251-a4d9-41023ebf6d84.jpg" alt="Orchid in foam oasis" class="photo" data-credit="Lucy Akins"/> </figure>
+ <figcaption class="small caption"> Orchid in foam oasis (Lucy Akins) </figcaption>
+ </div>
+ </div>
+ <div class="mod step">
+ <div class="stepContent">
+ <div class="content"> <span class="headline2 head mg-1 block">Step 3</span>
+ <p>You can add various plants if you wish.</p>
+ </div>
+ <figure class="stepThumb"> <img src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/7afdfa1e-da74-44b5-b89c-ca8123516272.jpg" alt="Various foliage" class="photo" data-credit="Lucy Akins"/> </figure>
+ <figcaption class="small caption"> Various foliage (Lucy Akins) </figcaption>
+ </div>
+ </div>
+ <div class="mod step">
+ <div class="stepContent">
+ <div class="content"> <span class="headline2 head mg-1 block">Step 4</span>
+ <p>Using floral pins, attach enough moss around the oasis to cover it.</p>
+ </div>
+ <figure class="stepThumb"> <img src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/4f6612c0-316a-4c74-bb03-cb4e778f6d72.jpg" alt="Attach moss." class="photo" data-credit="Lucy Akins"/> </figure>
+ <figcaption class="small caption"> Attach moss. (Lucy Akins) </figcaption>
+ </div>
+ </div>
+ <div class="mod step">
+ <div class="stepContent">
+ <div class="content"> <span class="headline2 head mg-1 block">Step 5</span>
+ <p>Gently place the cloche over the oasis. The glass may push some of the moss upward, exposing some of the foam.</p>
+ </div>
+ <figure class="stepThumb"> <img src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/eeb1e0b4-e573-40a3-8db1-2c76f0b13b84.jpg" alt="Place cloche over oasis." class="photo" data-credit="Lucy Akins"/> </figure>
+ <figcaption class="small caption"> Place cloche over oasis. (Lucy Akins) </figcaption>
+ </div>
+ </div>
+ <div class="mod step">
+ <div class="stepContent">
+ <div class="content"> <span class="headline2 head mg-1 block">Step 6</span>
+ <p>Simply pull down the moss with tweezers or insert more moss to fill in the empty spaces.</p>
+ </div>
+ <figure class="stepThumb"> <img src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/812d4649-4152-4363-97c0-f181d02e709a.jpg" alt="Rearrange moss." class="photo" data-credit="Lucy Akins"/> </figure>
+ <figcaption class="small caption"> Rearrange moss. (Lucy Akins) </figcaption>
+ </div>
+ </div>
+ <div class="mod step">
+ <div class="stepContent">
+ <div class="content"> <span class="headline2 head mg-1 block">Step 7</span>
+ <p>You can use any platform you wish. In this case, a small saucer was used.</p>
+ </div>
+ <figure class="stepThumb"> <img src="http://img-aws.ehowcdn.com/default/cme/photography.prod.demandstudios.com/0cb3988c-9318-47d6-bc9c-c798da1ede72.jpg" alt="Place cloche on a platform to sit on." class="photo" data-credit="Lucy Akins"/> </figure>
+ <figcaption class="small caption"> Place cloche on a platform to sit on. (Lucy Akins) </figcaption>
+ </div>
+ </div>
+ <div class="mod step">
+ <div class="stepContent">
+ <div class="content"> <span class="headline2 head mg-1 block">Step 8</span>
+ <p>This particular terrarium rests on a planter saucer and features a small white pumpkin.</p>
+ </div>
+ <figure class="stepThumb"> <img src="http://img-aws.ehowcdn.com/640/cme/photography.prod.demandstudios.com/e3e18f0b-ab2c-4ffb-9988-a1ea63faef8b.jpg" alt="Cloche placed on a terracotta saucer" class="photo" data-credit="Lucy Akins"/> </figure>
+ <figcaption class="small caption"> Cloche placed on a terracotta saucer (Lucy Akins) </figcaption>
+ </div>
+ </div>
+ <div class="mod step">
+ <div class="stepContent">
+ <div class="content"> <span class="headline2 head mg-1 block">Step 9</span>
+ <p>This particular terrarium was placed on a wood slice and a little toy squirrel was placed inside to add a little whimsy.</p>
+ </div>
+ <figure class="stepThumb"> <img src="http://img-aws.ehowcdn.com/640/cme/photography.prod.demandstudios.com/2cd79f8d-0d16-4573-8861-e47fb74b0638.jpg" alt="Placed on a wooden slice" class="photo" data-credit="Lucy Akins"/> </figure>
+ <figcaption class="small caption"> Placed on a wooden slice (Lucy Akins) </figcaption>
+ </div>
+ </div>
+ <div class="mod step">
+ <div class="stepContent">
+ <div class="content"> <span class="headline2 head mg-1 block">Finished Terrarium</span>
+ <p>Displayed alone or in a group, these pretty arrangements allow you to add a little nature to your decor or tablescape.</p>
+ </div>
+ <figure class="stepThumb"> <img src="http://img-aws.ehowcdn.com/640/cme/photography.prod.demandstudios.com/78670312-8636-4c42-a75c-3029f7aa6c73.jpg" alt="Cloche terrarium" class="photo" data-credit="Lucy Akins"/> </figure>
+ <figcaption class="small caption"> Cloche terrarium (Lucy Akins) </figcaption>
+ </div>
+ </div>
+ <div id="m2"></div>
+ <div id="DMINSTR" type="adimpression" data-type="adTracking" name="&amp;adunit_id=ca-ehow_336x280&amp;ad_unit_type=CNT&amp;ad_unit_network=GAP&amp;revenue_basis=CPC&amp;ad_position=-&amp;revenue_tag=craft_other_diy" data-module="google-ad-336x280">
+ <div id="GoogleAdsense336x280" class="mod"></div>
+ <script>
+ dmjs.revenueTags.push('ca-ehow_336x280;craft_other_diy,text,suggested7');
+ googleAds.addAdUnit({
+ priority: 2,
+ adUnitId: 'GoogleAdsense336x280',
+ google_ad_channel: 'craft_other_diy,text,suggested7',
+ google_ad_client: 'ca-ehow_336x280',
+ google_page_url: 'http://www.ehow.com/how_2042752_build-terrarium.html',
+ google_max_num_ads: '4',
+ google_ad_type: 'text',
+ google_hints: '',
+ templates: {
+ text: '&lt;div class="GoogleTextAd GoogleTextAdNew">\
+ &lt;a class="header" href="{!= google_info.feedback_url !}">Sponsored Links&lt;/a>\
+ &lt;ul class="opNew336 evenColorItems">\
+ {! for (var i = 0; i &lt; ads.length; i++) { !}\
+ &lt;li class="item">\
+ &lt;div class="term">\
+ &lt;a rel="nofollow" target="_blank" href="{!= ads[i].url !}" title="go to {!= clean(ads[i].visible_url) !}" class="title">\
+ &lt;span>{!= ads[i].line1 !}&lt;/span>\
+ &lt;/a>\
+ &lt;/div>\
+ &lt;div class="Ad">\
+ &lt;p class="copy">{!= ads[i].line2 !}&lt;/p>\
+ &lt;p class="copy">{!= ads[i].line3 !}&lt;/p>\
+ &lt;a rel="nofollow" target="_blank" href="{!= ads[i].url !}" title="go to {!= clean(ads[i].visible_url) !}" class="baseurl url">\
+ {!= ads[i].visible_url !}\
+ &lt;/a>\
+ &lt;/div>\
+ &lt;/li>\
+ {! } !}\
+ &lt;/ul>\
+ &lt;/div>',
+ image: '&lt;div class="GoogleImageAd GoogleImageAdNew"> \
+ &lt;a class="header" href="{!= google_info.feedback_url !}">Sponsored Links&lt;/a> \
+ &lt;a href="{!= ads[0].url !}" title="go to {!= clean(ads[0].visible_url) !}" target="_blank" class="Ad" >\
+ &lt;img src="{!= ads[0].image_url !}" width="{!= ads[0].image_width !}" height="{!= ads[0].image_height !}" border="0" alt="" />\
+ &lt;/a> \
+ &lt;/div>',
+ flash: '&lt;div class="GoogleFlashAd GoogleFlashAdNew">\
+ &lt;a class="header" href="{!= google_info.feedback_url !}">Sponsored Links&lt;/a> \
+ &lt;div class="Ad">\
+ &lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="{!= ads[0].image_width !}" height="{!= ads[0].image_height !}">&lt;param name="movie" value="{!= ads[0].image_url !}">&lt;param name="quality" value="high">&lt;param name="AllowScriptAccess" value="never">&lt;embed src="{!= ads[0].image_url !}" width="{!= ads[0].image_width !}" height="{!= ads[0].image_height !}" type="application/x-shockwave-flash" AllowScriptAccess="never" pluginspage="http://www.macromedia.com/go/getflashplayer">&lt;/embed>&lt;/object>\
+ &lt;/div>\
+ &lt;/div>'
+ },
+ google_image_size: '336x280'
+ });
+ AdblockPlus.detect(function(usesABP) {
+ if (usesABP) {
+ googleAds.overrideAd('GoogleAdsense336x280', {
+ google_ad_channel: 'craft_other_diy,text,suggested7,Art6'
+ });
+ }
+ });
+ </script>
+ </div>
+ <div class="RelatedSearches FLC mod" id="RelatedSearches" data-module="related-searches">
+ <div class="headline2 head heading">Related Searches</div>
+ </div>
+ <div class="community mod" style="float:left;width: 610px;">
+ <div id="_ehow-com-injection" data-article-id="2042752" data-cat-id="5352" data-scat-id="5426" data-sscat-id="5429"></div>
+ <script id="_ehow-com-article" type="text/javascript">
+ dmjs.domready(function() {
+ if (!(dmjs.platform.isTablet())) {
+ var ehowCom = document.createElement('script');
+ ehowCom.type = 'text/javascript';
+ ehowCom.async = true;
+ ehowCom.src = 'https://community.ehow.com/widget/ehow/community.js';
+ var s = document.getElementsByTagName('script')[0];
+ s.parentNode.insertBefore(ehowCom, s);
+ }
+ });
+ </script>
+ </div>
+ <aside class="mod related clearfix" data-module="rcp_bottom">
+ <h3 class="head headline2 mg-2">More Like This</h3>
+ <ul class="unstyled">
+ <li class="item fl ">
+ <a href="http://www.ehow.com/how_4431062_convert-aquarium-terrarium.html"> <img src="http://img-aws.ehowcdn.com/200x133/cme/photography.prod.demandstudios.com/90f9f3d7-6e4f-4be8-b379-3d994ccbf69c.jpg" class="img" alt=""/>
+ <p class="headline6 mg-0">How to Convert an Aquarium to a Terrarium</p>
+ </a>
+ </li>
+ <li class="item fl even">
+ <a href="http://www.ehow.com/video_12263138_plant-terrarium-ideas.html"> <img src="http://img-aws.ehowcdn.com/200x133/viper/media/2b3830ca-4eb6-4bfd-a1cd-d430b3e28d59/jpeg/a7edbb0f-86a7-4c73-9c2d-f85f87b49efa_0.jpg" class="img" alt=""/>
+ <p class="headline6 mg-0">Plant Terrarium Ideas</p>
+ </a>
+ </li>
+ <li class="item fl ">
+ <a href="http://www.ehow.com/video_9374_make-terrarium.html"> <img src="http://img-aws.ehowcdn.com/200x133/ehow/images/a00/09/4u/make-terrarium-800x800.jpg" class="img" alt=""/>
+ <p class="headline6 mg-0">How to Make a Terrarium</p>
+ </a>
+ </li>
+ </ul>
+ </aside>
+ <figure id="Comments" class="mod FLC" data-module="comments">
+ <div data-id="fb_comments"></div>
+ </figure>
+ <section id="FeaturedTombstone" class="mod" data-module="rcp_tombstone">
+ <h2 class="headline2 head mg-2">Featured</h2>
+ <div class="featured FLC">
+ <section class="Alpha item" data-cme-module="0">
+ <a class="target link-accent gtm_featuredArticles" href="http://www.ehow.com/how_2056495_make-ballet-tutu.html"> <img src="http://img-aws.ehowcdn.com/200x133/cme/photography.prod.demandstudios.com/7f06be69-3650-4e94-88d4-2289c1a5c6a2.jpg" class="photo" alt=""/> <span class="subtitle">Read Article</span>
+ <div class="title headline6">How to Make a Ballet Tutu</div>
+ </a>
+ </section>
+ <section class=" item" data-cme-module="1">
+ <a class="target link-accent gtm_featuredArticles" href="http://www.ehow.com/how_7687715_paint-tulip-watercolor.html"> <img src="http://img-aws.ehowcdn.com/200x133/cme/uploadedimages.demandmedia/tulips-1.jpg" class="photo" alt=""/> <span class="subtitle">Read Article</span>
+ <div class="title headline6">How to Paint a Tulip in Watercolor</div>
+ </a>
+ </section>
+ <section class="Omega item" data-cme-module="2">
+ <a class="target link-accent gtm_featuredArticles" href="http://www.ehow.com/info_12340422_kids-kitchen-slipcover.html"> <img src="http://img-aws.ehowcdn.com/200x133/cme/uploadedimages.demandmedia/kitchen-1.jpg" class="photo" alt=""/> <span class="subtitle">Read Article</span>
+ <div class="title headline6">Kids Kitchen Slipcover</div>
+ </a>
+ </section>
+ </div>
+ </section>
+ </div>
+ <div class="col-rail">
+ <!-- gpt slot 300x250_300x600 -->
+ <div class="AdUnit mod" data-module="gpt-ad-300x250_300x600" id="300x250_300x600">
+ <script type="text/javascript">
+ googletag.cmd.push(function() {
+ googletag.display('300x250_300x600');
+ });
+ </script>
+ </div>
+ <!-- gpt slot 300x100 -->
+ <div class="mod hide" data-module="radlinks">
+ <h3 class="headline3 head mg-2">Related Ads</h3>
+ <div id="DMINSTR" type="rlimpression" data-type="adTracking" name="&amp;adunit_id=ca-ehow-radlinks_js&amp;ad_unit_type=LNK&amp;ad_unit_network=GAP&amp;revenue_basis=CPC&amp;ad_position=-&amp;revenue_tag=craft_other_diy">
+ <div id="GoogleRelatedAds"></div>
+ <script>
+ dmjs.revenueTags.push('ca-ehow-radlinks_js;craft_other_diy,text,suggested7');
+ googleAds.addAdUnit({
+ priority: 1,
+ adUnitId: 'GoogleRelatedAds',
+ google_ad_channel: 'craft_other_diy,text,suggested7',
+ google_ad_client: 'ca-ehow-radlinks_js',
+ google_page_url: 'http://www.ehow.com/how_2042752_build-terrarium.html',
+ google_max_num_ads: '0',
+ google_num_radlinks: '6',
+ google_max_radlink_len: '27',
+ metaData: {
+ "contentid": "2042752",
+ "studioid": "f941e4cd-a49e-4948-b244-677c15ff8b7f",
+ "category": "Crafts",
+ "subcategory": "Other DIY Crafts",
+ "skin": "crafts"
+ }
+ });
+ </script>
+ </div>
+ </div>
+ <div class="RelatedSearches FLC mod" id="RelatedSearches" data-module="related-searches-right">
+ <div class="headline3 head mg-2">Related Searches</div>
+ </div>
+ <section class="mod box slideshow" data-module="rcp_slideshow_module">
+ <a href="http://www.ehow.com/how_16357_make-paper-sunflowers.html"> <img src="http://img-aws.ehowcdn.com/300x200/cme/uploadedimages.demandmedia/sunflowers-1.jpg" alt="" title="" class="photo" longdesc="http://s3.amazonaws.com/uploadedimages.demandmedia/sunflowers-1.jpg"/> <span class="arrow arrow-left" data-icon="4"></span> <span class="arrow arrow-right" data-icon="5"></span> <span class="subtitle">
+Read Article </span> </a>
+ <a href="http://www.ehow.com/how_16357_make-paper-sunflowers.html">
+ <h3 class="headline4 title">
+How to Make Paper Sunflowers </h3> </a>
+ </section>
+ <ul class="media-list mod unstyled " data-module="rcp_right_rail">
+ <h2 class="headline3 head mg-2 title">You May Like</h2>
+ <li class="media headline6">
+ <a href="http://www.ehow.com/how_4431062_convert-aquarium-terrarium.html" class="fl gtm_youMayLike"> <img src="http://img-aws.ehowcdn.com/150X100/cme/photography.prod.demandstudios.com/90f9f3d7-6e4f-4be8-b379-3d994ccbf69c.jpg" alt="" class="media-object"/>
+ <div class="pagescore js-pagescore small" data-score="true" data-url="http://www.ehow.com/how_4431062_convert-aquarium-terrarium.html"> <span class=" num js-num"></span> <span class="icon"></span> </div>
+ </a>
+ <div class="media-body"> <a href="http://www.ehow.com/how_4431062_convert-aquarium-terrarium.html" class="gtm_youMayLike">How to Convert an Aquarium to a Terrarium</a> </div>
+ </li>
+ <li class="media headline6">
+ <a href="http://www.ehow.com/video_12263137_build-orchid-terrarium.html" class="fl gtm_youMayLike"> <img src="http://img-aws.ehowcdn.com/150X100/viper/media/2b3830ca-4eb6-4bfd-a1cd-d430b3e28d59/jpeg/47b02568-2cde-44f4-a39c-494294e50ccd_1.jpg" alt="" class="media-object"/>
+ <div class="pagescore js-pagescore small" data-score="true" data-url="http://www.ehow.com/video_12263137_build-orchid-terrarium.html"> <span class=" num js-num"></span> <span class="icon"></span> </div>
+ </a>
+ <div class="media-body"> <a href="http://www.ehow.com/video_12263137_build-orchid-terrarium.html" class="gtm_youMayLike">How to Build an Orchid Terrarium</a> </div>
+ </li>
+ <li class="media headline6">
+ <a href="http://www.ehow.com/video_9374_make-terrarium.html" class="fl gtm_youMayLike"> <img src="http://img-aws.ehowcdn.com/150X100/ehow/images/a00/09/4u/make-terrarium-800x800.jpg" alt="" class="media-object"/>
+ <div class="pagescore js-pagescore small" data-score="true" data-url="http://www.ehow.com/video_9374_make-terrarium.html"> <span class=" num js-num"></span> <span class="icon"></span> </div>
+ </a>
+ <div class="media-body"> <a href="http://www.ehow.com/video_9374_make-terrarium.html" class="gtm_youMayLike">How to Make a Terrarium</a> </div>
+ </li>
+ <li class="media headline6">
+ <a href="http://www.ehow.com/video_12263133_group-plants-together-terrarium.html" class="fl gtm_youMayLike"> <img src="http://img-aws.ehowcdn.com/150X100/viper/media/2b3830ca-4eb6-4bfd-a1cd-d430b3e28d59/jpeg/dc66dd37-78b6-4494-a8db-7bbe697cedda_0.jpg" alt="" class="media-object"/>
+ <div class="pagescore js-pagescore small" data-score="true" data-url="http://www.ehow.com/video_12263133_group-plants-together-terrarium.html"> <span class=" num js-num"></span> <span class="icon"></span> </div>
+ </a>
+ <div class="media-body"> <a href="http://www.ehow.com/video_12263133_group-plants-together-terrarium.html" class="gtm_youMayLike">How to Group Plants Together in a Terrarium</a> </div>
+ </li>
+ <li class="media headline6">
+ <a href="http://www.ehow.com/video_12263135_build-tropical-terrarium.html" class="fl gtm_youMayLike"> <img src="http://img-aws.ehowcdn.com/150X100/viper/media/2b3830ca-4eb6-4bfd-a1cd-d430b3e28d59/jpeg/70ebb809-634d-41df-9fff-9b183f81e9e0_1.jpg" alt="" class="media-object"/>
+ <div class="pagescore js-pagescore small" data-score="true" data-url="http://www.ehow.com/video_12263135_build-tropical-terrarium.html"> <span class=" num js-num"></span> <span class="icon"></span> </div>
+ </a>
+ <div class="media-body"> <a href="http://www.ehow.com/video_12263135_build-tropical-terrarium.html" class="gtm_youMayLike">How to Build a Tropical Terrarium</a> </div>
+ </li>
+ <li class="media headline6">
+ <a href="http://www.ehow.com/how_7853040_diy-own-living-room-furniture.html" class="fl gtm_youMayLike"> <img src="http://img-aws.ehowcdn.com/150X100/cme/photography.prod.demandstudios.com/2ecfca5a-1c35-4fbe-9ff5-8f5bd8129d97.jpg" alt="" class="media-object"/>
+ <div class="pagescore js-pagescore small" data-score="true" data-url="http://www.ehow.com/how_7853040_diy-own-living-room-furniture.html"> <span class=" num js-num"></span> <span class="icon"></span> </div>
+ </a>
+ <div class="media-body"> <a href="http://www.ehow.com/how_7853040_diy-own-living-room-furniture.html" class="gtm_youMayLike">DIY Build Your Own Living Room Furniture</a> </div>
+ </li>
+ <li class="media headline6">
+ <a href="http://www.ehow.com/slideshow_12333243_edible-arrangements-make-own-easter-candy-terrariums.html" class="fl gtm_youMayLike"> <img src="http://img-aws.ehowcdn.com/150X100/ds-cdn-write/upload/image/39/4D/34B73D38-EC9F-4415-A740-23DCF2F94D39/34B73D38-EC9F-4415-A740-23DCF2F94D39.jpg" alt="" class="media-object"/>
+ <div class="pagescore js-pagescore small" data-score="true" data-url="http://www.ehow.com/slideshow_12333243_edible-arrangements-make-own-easter-candy-terrariums.html"> <span class=" num js-num"></span> <span class="icon"></span> </div>
+ </a>
+ <div class="media-body"> <a href="http://www.ehow.com/slideshow_12333243_edible-arrangements-make-own-easter-candy-terrariums.html" class="gtm_youMayLike">Edible Arrangements: Make Your Own Easter Candy Terrariums</a> </div>
+ </li>
+ <li class="media headline6">
+ <a href="http://www.ehow.com/ehow-mom/blog/3-ingredient-easter-bark/" class="fl gtm_youMayLike"> <img src="http://img-aws.ehowcdn.com/150X100/ehow-mom-blog-us/files/2015/03/easterbark0.jpg" alt="" class="media-object"/>
+ <div class="pagescore js-pagescore small" data-score="true" data-url="http://www.ehow.com/ehow-mom/blog/3-ingredient-easter-bark/"> <span class=" num js-num"></span> <span class="icon"></span> </div>
+ </a>
+ <div class="media-body"> <a href="http://www.ehow.com/ehow-mom/blog/3-ingredient-easter-bark/" class="gtm_youMayLike">3-Ingredient Easter Bark</a> </div>
+ </li>
+ </ul>
+ </div>
+ </section>
+ <script src="http://v5-static.ehowcdn.com/content/compressed/module-jquery-764eded0.js"></script>
+ <footer id="Footer" data-section="footer">
+ <div class="inner-container">
+ <div class="details clearfix">
+ <div class="identity"> <a href="http://www.demandmedia.com/" class="logo">demandmedia.com</a>
+ <p class="copyright">© 1999-2015 Demand Media, Inc.</p>
+ </div>
+ <nav xmlns="http://www.w3.org/1999/html">
+ <ul class="listing">
+ <li>
+ <ul>
+ <li class="item row1"> <a href="http://www.ehow.com/about-us.html" class="title">About eHow</a> </li>
+ <li class="item row1"> <a href="http://www.ehow.co.uk/" class="title">eHow UK</a> </li>
+ <li class="item row1"> <a href="http://www.ehowenespanol.com/" class="title">eHow en Español</a> </li>
+ <li class="item row1"> <a href="http://www.ehow.com.br/" class="title">eHow Brasil</a> </li>
+ <li class="item row1"> <a href="http://www.ehow.de/" class="title">eHow Deutschland</a> </li>
+ <li class="item row1"> <a href="http://www.ehowhelp.com/hc/en-us" class="title">Contact Us</a> </li>
+ </ul>
+ </li>
+ <li>
+ <ul>
+ <li class="item row2"> <a href="http://www.ehow.com/blog/" class="title">eHow Blog</a> </li>
+ <li class="item row2"> <a href="http://www.ehow.com/how-to.html" class="title">How to by Topic</a> </li>
+ <li class="item row2"> <a href="http://www.ehow.com/videos.html" class="title">How to Videos</a> </li>
+ </ul>
+ </li>
+ <li>
+ <ul>
+ <li class="item row3"> <a href="http://www.ehow.com/terms-of-use.html" class="title">Terms of Use</a> </li>
+ <li class="item row3"> <a href="http://www.ehow.com/privacy.html" class="title">Privacy Policy</a> </li>
+ <li class="item row3"> <a href="http://www.ehow.com/terms-of-use.html#copyright/" class="title">Report Copyright</a> </li>
+ <li class="item row3">
+ <a id="_bapw-link" class="ad-choice" style="cursor:pointer !important"><img id="_bapw-icon" style="display:inline !important;vertical-align:middle !important"/> <span style="vertical-align:middle !important">Ad Choices</span></a> <abbr>en-US</abbr> </li>
+ </ul>
+ </li>
+ </ul>
+ </nav>
+ <div class="socialConnect fr">
+ <p class="headline4 heading head">Connect with us:</p>
+ <ul>
+ <li class="source"><a class="icon elegant-icons gtm_social" href="http://www.pinterest.com/ehow/" target="_blank"></a></li>
+ <li class="source"><a class="icon elegant-icons gtm_social" href="https://www.facebook.com/eHow" target="_blank"></a></li>
+ <li class="source"><a class="icon elegant-icons gtm_social" href="https://twitter.com/ehow" target="_blank"></a></li>
+ <li class="source"><a class="icon elegant-icons gtm_social" href="https://plus.google.com/+howto/posts" target="_blank"></a></li>
+ <li class="source last"><a class="icon elegant-icons gtm_social" href="http://instagram.com/ehow_team" target="_blank"></a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div class="extras">
+ <div class="comscore comscore-eh">
+ <div class="category5352 eh-cat"></div>
+ </div>
+ </div>
+ </footer>
+ <!-- BEGIN dmtracker -->
+ <noscript><img src="http://vs.dmtracker.com/images/zig.gif?Log=1" alt="zig" /></noscript>
+ <div id="dmOmni"></div>
+ <!-- END dmtracker -->
+ <noscript><img src="http://b.scorecardresearch.com/b?c1=2&c2=6036385&c3=&c7=http%3A%2F%2Fwww.ehow.com%2Fhow_2042752_build-terrarium.html%3Fcomscorekw%3DeHow_Hobbies_Games_and_Toys&cv=2.0&cj=1" /></noscript>
+ <script>
+ var dmjs = dmjs || {};
+ dmjs.global = dmjs.global || {};
+ dmjs.global.comscore = {
+ "c1": "2",
+ "c2": "6036385",
+ "c3": "",
+ "options": {
+ "url_append": "comscorekw=eHow_Hobbies_Games_and_Toys"
+ }
+ };
+ dmjs.global.dm_tracker = {
+ "domain": "vs.dmtracker.com",
+ "url": "bit.ehow.com",
+ "bit": "bit"
+ };
+ dmjs.global.fb_comment = {
+ "num_posts": 5,
+ "width": 620,
+ "mobile": false,
+ "href": "http:\/\/www.ehow.com\/how_2042752_build-terrarium.html",
+ "selector": "[data-id=\"fb_comments\"]"
+ };
+ dmjs.global.hnh = {
+ "url": "http:\/\/services.ehowcdn.com\/widgets\/generated\/hnh.min.js"
+ };
+ </script>
+ <script src="http://dynamic01.ehowcdn.com/services/modules/js/hnh,evidon,rev_tag,dm_track,comscore,common_deferred,cache_buster/ba9c0085/" defer="defer"></script>
+ <!--[if lt IE 9]>
+<script src="http://v5-static.ehowcdn.com/content/compressed/common_footer-266c5d77.js" ></script>
+<![endif]-->
+ <script src="http://v5-static.ehowcdn.com/content/compressed/inline-81314781.js" defer="defer"></script>
+ <script>
+ dmjs.domready(function() {
+ new OmnitureLinkSet($('[data-module="rcp_top"]'), "TLS101", "default_IL");
+ });
+ </script>
+ <script>
+ dmjs.domready(function() {
+ new OmnitureLinkSet($('[data-module="rcp_bottom"]'), "TLS103", "default_B");
+ });
+ </script>
+ <script>
+ dmjs.domready(function() {
+ new OmnitureLinkSet($('[data-module="rcp_tombstone"]'), "LS103", "default_TOMB");
+ });
+ </script>
+ <script>
+ dmjs.domready(function() {
+ new OmnitureLinkSet($('[data-module="rcp_slideshow_module"]'), "TLS106", "default_SS");
+ });
+ </script>
+ <script>
+ dmjs.domready(function() {
+ new OmnitureLinkSet($('[data-module="rcp_right_rail"]'), "TLS102", "default_R3");
+ });
+ </script>
+ <script>
+ googleAds.defaults.google_adtest = 'off';
+ googleAds.defaults.google_page_url = 'http://www.ehow.com/how_2042752_build-terrarium.html';
+ googleAds.render();
+ </script>
+ <script defer="" src="//cdn.optimizely.com/js/9718688.js"></script>
+ <script>
+ dmjs.addEvent(window, 'load', function() {
+ dmjs.fireEvents();
+ });
+ </script>
+ <script defer="" src="http://static.ehownowcdn.com/widget/ehow/auth.js"></script>
+ <div id="fb-root"></div>
+ <div class="view-mobile"></div>
+</body>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ehow-2/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ehow-2/expected-images.json
new file mode 100644
index 000000000..a6dcad5dc
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ehow-2/expected-images.json
@@ -0,0 +1,13 @@
+[
+ "http:\/\/img-aws.ehowcdn.com\/200x200\/cme\/cme_public_images\/www_ehow_com\/cdn-write.demandstudios.com\/upload\/image\/2F\/86\/5547EF62-EAF5-4256-945D-0496F61C862F\/5547EF62-EAF5-4256-945D-0496F61C862F.jpg",
+ "http:\/\/img-aws.ehowcdn.com\/60x60\/cme\/cme_public_images\/www_demandstudios_com\/sitelife.studiod.com\/ver1.0\/Content\/images\/store\/9\/2\/d9dd6f61-b183-4893-927f-5b540e45be91.Small.jpg",
+ "http:\/\/img-aws.ehowcdn.com\/640\/cme\/cme_public_images\/www_ehow_com\/cdn-write.demandstudios.com\/upload\/image\/2F\/86\/5547EF62-EAF5-4256-945D-0496F61C862F\/5547EF62-EAF5-4256-945D-0496F61C862F.jpg",
+ "http:\/\/img-aws.ehowcdn.com\/640\/cme\/cme_public_images\/www_ehow_com\/cdn-write.demandstudios.com\/upload\/image\/FE\/CB\/121569D2-6984-4B2F-83C4-9D2D9A27CBFE\/121569D2-6984-4B2F-83C4-9D2D9A27CBFE.jpg",
+ "http:\/\/img-aws.ehowcdn.com\/640\/cme\/cme_public_images\/www_ehow_com\/cdn-write.demandstudios.com\/upload\/image\/DF\/FC\/A05B0252-BD73-4BC7-A09A-96F0A504FCDF\/A05B0252-BD73-4BC7-A09A-96F0A504FCDF.jpg",
+ "http:\/\/img-aws.ehowcdn.com\/640\/cme\/cme_public_images\/www_ehow_com\/cdn-write.demandstudios.com\/upload\/image\/EB\/DB\/8A04CCA7-3255-4225-B59A-C41441F8DBEB\/8A04CCA7-3255-4225-B59A-C41441F8DBEB.jpg",
+ "http:\/\/img-aws.ehowcdn.com\/640\/cme\/cme_public_images\/www_ehow_com\/cdn-write.demandstudios.com\/upload\/image\/94\/10\/08035476-0167-4A03-AADC-13A7E7AA1094\/08035476-0167-4A03-AADC-13A7E7AA1094.jpg",
+ "http:\/\/img-aws.ehowcdn.com\/640\/cme\/cme_public_images\/www_ehow_com\/cdn-write.demandstudios.com\/upload\/image\/06\/49\/4AD62696-FC95-4DA2-8351-42740C7B4906\/4AD62696-FC95-4DA2-8351-42740C7B4906.jpg",
+ "http:\/\/img-aws.ehowcdn.com\/640\/cme\/cme_public_images\/www_ehow_com\/cdn-write.demandstudios.com\/upload\/image\/D0\/51\/B6AED06C-5E19-4A26-9AAD-0E175F6251D0\/B6AED06C-5E19-4A26-9AAD-0E175F6251D0.jpg",
+ "http:\/\/img-aws.ehowcdn.com\/640\/cme\/cme_public_images\/www_ehow_com\/cdn-write.demandstudios.com\/upload\/image\/35\/B4\/DD5FD05A-B631-4AFE-BC8F-FDACAD1EB435\/DD5FD05A-B631-4AFE-BC8F-FDACAD1EB435.jpg",
+ "http:\/\/img-aws.ehowcdn.com\/640\/cme\/cme_public_images\/www_ehow_com\/cdn-write.demandstudios.com\/upload\/image\/A1\/FA\/2C368B34-8F6A-45F6-9DFC-0B0C4E33FAA1\/2C368B34-8F6A-45F6-9DFC-0B0C4E33FAA1.jpg"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ehow-2/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ehow-2/expected-metadata.json
new file mode 100644
index 000000000..756b8c1b7
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ehow-2/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "Gina Roberts-Grey",
+ "Direction": null,
+ "Excerpt": "Graduation parties are a great way to commemorate the years of hard work teens and college co-eds devote to education. They’re also costly for mom and dad.The average cost of a graduation party in 2013 was a whopping $1,200, according to Graduationparty.com; $700 of that was allocated for food. However that budget was based on Midwestern...",
+ "Image": "http:\/\/img-aws.ehowcdn.com\/200x200\/cme\/cme_public_images\/www_ehow_com\/cdn-write.demandstudios.com\/upload\/image\/2F\/86\/5547EF62-EAF5-4256-945D-0496F61C862F\/5547EF62-EAF5-4256-945D-0496F61C862F.jpg",
+ "Title": "How to Throw a Graduation Party on a Budget | eHow",
+ "SiteName": "eHow"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ehow-2/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ehow-2/expected.html
new file mode 100644
index 000000000..ea7d138e1
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ehow-2/expected.html
@@ -0,0 +1,124 @@
+<section data-page-id="inlinetemplate" data-section="body" id="Body">
+
+ <header>
+ <div data-type="AuthorProfile">
+ <div>
+ <p><a href="http://fakehost/contributor/gina_robertsgrey/" id="img-follow-tip" target="_top">
+ <img data-failover="//img-aws.ehowcdn.com/60x60/ehow-cdn-assets/test15/media/images/authors/missing-author-image.png" onerror="var failover = this.getAttribute('data-failover');&#xA; if (failover) failover = failover.replace(/^https?:/,'');&#xA; var src = this.src ? this.src.replace(/^https?:/,'') : '';&#xA; if (src != failover){&#xA; this.src = failover;&#xA; }" src="http://img-aws.ehowcdn.com/60x60/cme/cme_public_images/www_demandstudios_com/sitelife.studiod.com/ver1.0/Content/images/store/9/2/d9dd6f61-b183-4893-927f-5b540e45be91.Small.jpg"></img></a></p>
+ </div>
+
+ <p><time datetime="2016-09-14T07:07:00-04:00" itemprop="dateModified">Last updated September 14, 2016</time></p>
+
+ </div>
+
+ </header><div>
+ <article data-type="article"><div>
+ <div>
+ <div>
+ <p>Graduation parties are a great way to commemorate the years of hard work teens and college co-eds devote to education. They’re also costly for mom and dad.</p>
+ <p>The average cost of a graduation party in 2013 was a whopping $1,200, according to Graduationparty.com; $700 of that was allocated for food. However that budget was based on Midwestern statistics, and parties in urban areas like New York City are thought to have a much higher price tag.</p>
+ <p>Thankfully, there are plenty of creative ways to trim a little grad party fat without sacrificing any of the fun or celebratory spirit.</p>
+ </div>
+ <figure><img alt="Graduation" data-credit="Mike Watson Images/Moodboard/Getty " data-pin-ehow-hover="true" data-pin-no-hover="true" longdesc="http://s3.amazonaws.com/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/2F/86/5547EF62-EAF5-4256-945D-0496F61C862F/5547EF62-EAF5-4256-945D-0496F61C862F.jpg" src="http://img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/2F/86/5547EF62-EAF5-4256-945D-0496F61C862F/5547EF62-EAF5-4256-945D-0496F61C862F.jpg" title="Graduation"></img></figure><figcaption>
+ (Mike Watson Images/Moodboard/Getty)
+ </figcaption></div>
+ </div>
+
+
+ <span>
+<span>
+<div>
+<div>
+<p><span><p>Parties hosted at restaurants, clubhouses and country clubs eliminate the need to spend hours cleaning up once party guests have gone home. But that convenience comes with a price tag. A country club may charge as much as $2,000 for room rental and restaurant food and beverage will almost always cost more than food prepped and served at home.</p></span> </p>
+ <figure><img alt="Save money hosting the party at home." data-credit="Thomas Jackson/Digital Vision/Getty Images" data-pin-ehow-hover="true" data-pin-no-hover="true" src="http://img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/FE/CB/121569D2-6984-4B2F-83C4-9D2D9A27CBFE/121569D2-6984-4B2F-83C4-9D2D9A27CBFE.jpg"></img></figure><figcaption>
+ Thomas Jackson/Digital Vision/Getty Images </figcaption></div>
+ </div>
+ </span>
+ </span>
+ <span>
+<span>
+<div>
+<div>
+<p><span><p>Instead of hiring a DJ, use your iPod or Smartphone to spin the tunes. Both easily hook up to most speakers or mp3 compatible docks to play music from your music library. Or download Pandora, the free online radio app, and play hours of music for free.</p>
+<p>Personalize the music with a playlist of the grad’s favorite songs or songs that were big hits during his or her years in school.</p></span> </p>
+ <figure><img alt="Online radio can take the place of a hired DJ." data-credit="Spencer Platt/Getty Images News/Getty Images" data-pin-ehow-hover="true" data-pin-no-hover="true" src="http://img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/DF/FC/A05B0252-BD73-4BC7-A09A-96F0A504FCDF/A05B0252-BD73-4BC7-A09A-96F0A504FCDF.jpg"></img></figure><figcaption>
+ Spencer Platt/Getty Images News/Getty Images </figcaption></div>
+ </div>
+ </span>
+ </span>
+ <span>
+<span>
+<div>
+<div>
+<p><span><p>Avoid canned drinks, which guests often open, but don't finish. Serve pitchers of tap water with lemon and cucumber slices or sliced strawberries for an interesting and refreshing flavor. Opt for punches and non-alcoholic drinks for high school graduates that allow guests to dole out the exact amount they want to drink.</p></span> </p>
+ <figure><img alt="Serve drinks in pitchers, not in cans." data-credit="evgenyb/iStock/Getty Images" data-pin-ehow-hover="true" data-pin-no-hover="true" src="http://img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/EB/DB/8A04CCA7-3255-4225-B59A-C41441F8DBEB/8A04CCA7-3255-4225-B59A-C41441F8DBEB.jpg"></img></figure><figcaption>
+ evgenyb/iStock/Getty Images </figcaption></div>
+ </div>
+
+ </span>
+ </span>
+ <span>
+<span>
+<div>
+<div>
+<p><span><p>Instead of inviting everyone you – and the graduate – know or ever knew, scale back the guest list. Forgo inviting guests that you or your grad haven't seen for eons. There is no reason to provide provisions for people who are essentially out of your lives. Sticking to a small, but personal, guest list allows more time to mingle with loved ones during the party, too.</p></span> </p>
+ <figure><img alt="Limit guests to those close to the graduate." data-credit="Kane Skennar/Photodisc/Getty Images" data-pin-ehow-hover="true" data-pin-no-hover="true" src="http://img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/94/10/08035476-0167-4A03-AADC-13A7E7AA1094/08035476-0167-4A03-AADC-13A7E7AA1094.jpg"></img></figure><figcaption>
+ Kane Skennar/Photodisc/Getty Images </figcaption></div>
+ </div>
+ </span>
+ </span>
+ <span>
+<span>
+<div>
+<div>
+<p><span><p>See if your grad and his best friend, girlfriend or close family member would consider hosting a joint party. You can split some of the expenses, especially when the two graduates share mutual friends. You'll also have another parent to bounce ideas off of and to help you stick to your budget when you're tempted to splurge.</p></span> </p>
+ <figure><img alt="Throw a joint bash for big savings." data-credit="Mike Watson Images/Moodboard/Getty" data-pin-ehow-hover="true" data-pin-no-hover="true" src="http://img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/06/49/4AD62696-FC95-4DA2-8351-42740C7B4906/4AD62696-FC95-4DA2-8351-42740C7B4906.jpg"></img></figure><figcaption>
+ Mike Watson Images/Moodboard/Getty </figcaption></div>
+ </div>
+ </span>
+ </span>
+ <span>
+<span>
+<div>
+<div>
+<p><span><p>Skip carving stations of prime rib and jumbo shrimp as appetizers, especially for high school graduation parties. Instead, serve some of the graduate's favorite side dishes that are cost effective, like a big pot of spaghetti with breadsticks. Opt for easy and simple food such as pizza, finger food and mini appetizers. </p>
+<p>Avoid pre-packaged foods and pre-made deli platters. These can be quite costly. Instead, make your own cheese and deli platters for less than half the cost of pre-made.</p></span> </p>
+ <figure><img alt="Cost effective appetizers are just as satisfying as pre-made deli platters." data-credit="Mark Stout/iStock/Getty Images" data-pin-ehow-hover="true" data-pin-no-hover="true" src="http://img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/D0/51/B6AED06C-5E19-4A26-9AAD-0E175F6251D0/B6AED06C-5E19-4A26-9AAD-0E175F6251D0.jpg"></img></figure><figcaption>
+ Mark Stout/iStock/Getty Images </figcaption></div>
+ </div>
+ </span>
+ </span>
+ <span>
+<span>
+<div>
+<div>
+<p><span><p>Instead of an evening dinner party, host a grad lunch or all appetizers party. Brunch and lunch fare or finger food costs less than dinner. Guests also tend to consume less alcohol in the middle of the day, which keeps cost down.</p></span> </p>
+ <figure><img alt="A brunch gathering will cost less than a dinner party." data-credit="Mark Stout/iStock/Getty Images" data-pin-ehow-hover="true" data-pin-no-hover="true" src="http://img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/35/B4/DD5FD05A-B631-4AFE-BC8F-FDACAD1EB435/DD5FD05A-B631-4AFE-BC8F-FDACAD1EB435.jpg"></img></figure><figcaption>
+ Mark Stout/iStock/Getty Images </figcaption></div>
+ </div>
+
+
+ </span>
+ </span>
+ <span>
+<span>
+<div>
+<div>
+<p><span><p>Decorate your party in the graduate's current school colors or the colors of the school he or she will be headed to next. Décor that is not specifically graduation-themed may cost a bit less, and any leftovers can be re-used for future parties, picnics and events.</p></span> </p>
+ <figure><img alt="Theme the party by color without graduation-specific decor." data-credit="jethuynh/iStock/Getty Images" data-pin-ehow-hover="true" data-pin-no-hover="true" src="http://img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/A1/FA/2C368B34-8F6A-45F6-9DFC-0B0C4E33FAA1/2C368B34-8F6A-45F6-9DFC-0B0C4E33FAA1.jpg"></img></figure><figcaption>
+ jethuynh/iStock/Getty Images </figcaption></div>
+ </div>
+ </span>
+ </span>
+
+
+ <h2>
+ <a href="https://www.google.com/adsense/support/bin/request.py?contact=abg_afc&amp;url=http://ehow.com/&amp;hl=en&amp;client=ehow&amp;gl=US" target="_blank">Related Searches</a>
+ </h2>
+
+
+ <p>Promoted By Zergnet</p>
+ </article></div>
+
+
+ </section> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ehow-2/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ehow-2/source.html
new file mode 100644
index 000000000..6976de340
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ehow-2/source.html
@@ -0,0 +1,1621 @@
+<!DOCTYPE html>
+<!--[if IE]><![endif]-->
+<html xmlns="http://www.w3.org/1999/xhtml" class="Corporate en-US" xmlns:fb="http://www.facebook.com/2008/fbml" xmlns:og="http://ogp.me/ns#" data-channel="corporate" lang="en-US">
+
+<head>
+ <script>
+ // ET-1126: Remove 'pool' query string parameter after dmp cookie is set
+ function removeVariableFromURL(url_string, variable_name) {
+ var URL = String(url_string);
+ var regex = new RegExp("\\?" + variable_name + "=[^&amp;]*&amp;?", "gi");
+ URL = URL.replace(regex, '?');
+ regex = new RegExp("\\&amp;" + variable_name + "=[^&amp;]*&amp;?", "gi");
+ URL = URL.replace(regex, '&amp;');
+ URL = URL.replace(/(\?|&amp;)$/, '');
+ regex = null;
+ return URL;
+ }
+ var new_url = removeVariableFromURL(window.location.href, 'pool');
+ if (new_url !== window.location.href) {
+ window.location.href = new_url;
+ }
+ </script>
+ <script src="//v5-static.ehowcdn.com/test15/ui/scripts/plugins/adunblock.plugin.js"></script>
+ <meta charset="utf-8" />
+ <meta name="description" content="How to Throw a Graduation Party on a Budget. Graduation parties are a great way to commemorate the years of hard work teens and college co-eds devote to education. They’re also costly for mom and dad.The average cost of a graduation party in 2013 was a whopping $1,200, according to Graduationparty.com; $700 of that was allocated for food...." />
+ <meta name="format-detection" content="telephone=no" />
+ <meta name="apple-mobile-web-app-status-bar-style" content="black" />
+ <meta name="apple-mobile-web-app-capable" content="yes" />
+ <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no, minimal-ui" />
+ <meta name="y_key" content="4d4cb4ef1ad334cb" />
+ <meta name="alexaVerifyID" content="xlJch1oUHrXNtOQBpiuUCV0-rlc" />
+ <meta name="cachetime" content="201701100200" />
+ <meta name="p:domain_verify" content="4d1387210be25228f0c4692cc47db05b" />
+ <meta name="last_updated" content="2016-09-14T12:33:10.443000" />
+ <meta name="publish_date" content="05/08/2014 07:01:00" />
+ <meta name="last_rcp_import" content="2017-01-09T20:27:15.507425" />
+ <meta name="articleimage" content="http://s3.amazonaws.com/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/2F/86/5547EF62-EAF5-4256-945D-0496F61C862F/5547EF62-EAF5-4256-945D-0496F61C862F.jpg" />
+ <meta name="inlineimageallsteps" content="true" />
+ <link href="http://www.ehow.com/how_4851888_throw-graduation-party-budget.html" rel="canonical" />
+ <link href="https://plus.google.com/115690814317760150668" rel="author" />
+ <meta name="studioid" scheme="DMINSTR2" content="ecfabbce-0245-4b5f-9111-5223553b7afd" />
+ <meta name="contentid" scheme="DMINSTR2" content="4851888" />
+ <meta name="category" scheme="DMINSTR2" content="Holidays &amp; Celebrations" />
+ <meta name="subcategory" scheme="DMINSTR2" content="More Holidays &amp; Celebrations" />
+ <meta name="subsubcat" scheme="DMINSTR2" content="Graduations" />
+ <meta name="subpagetype" scheme="DMINSTR2" content="inline" />
+ <meta name="exp_page" scheme="DMINSTR2" content="" />
+ <meta name="wa_pchn" scheme="DMINSTR2" content="Corporate" />
+ <meta name="wa_page" scheme="DMINSTR2" content="http://www.ehow.com/how_4851888_throw-graduation-party-budget.html" />
+ <meta name="author" scheme="DMINSTR2" content="Gina Roberts-Grey" />
+ <meta name="article_length" scheme="DMINSTR2" content="8" />
+ <meta name="pagetype" scheme="DMINSTR2" content="article" />
+ <meta name="wa_lr" scheme="DMINSTR2" content="en-US" />
+ <meta name="siteid" scheme="DMINSTR2" content="EHWC" />
+ <meta name="exp_name" scheme="DMINSTR2" content="desktop:test15" />
+ <meta name="wa_un" scheme="DMINSTR2" content="" />
+ <meta name="wa_isreg" scheme="DMINSTR2" content="" />
+ <meta name="wa_lgdin" scheme="DMINSTR2" content="" />
+ <meta name="wa_clvl" scheme="DMINSTR2" content="1" />
+ <meta name="wa_lgsrc" scheme="DMINSTR2" content="1" />
+ <meta name="author" scheme="DMINSTR2" content="Gina Roberts-Grey" />
+ <meta name="author_image" content="" />
+ <meta name="twitter:card" content="summary" />
+ <meta name="twitter:site" content="@ehow" />
+ <meta property="og:image" content="http://img-aws.ehowcdn.com/200x200/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/2F/86/5547EF62-EAF5-4256-945D-0496F61C862F/5547EF62-EAF5-4256-945D-0496F61C862F.jpg" />
+ <meta property="og:url" content="http://www.ehow.com/how_4851888_throw-graduation-party-budget.html" />
+ <meta property="og:type" content="article" />
+ <meta property="og:title" content="How to Throw a Graduation Party on a Budget | eHow" />
+ <meta property="og:description" content="Graduation parties are a great way to commemorate the years of hard work teens and college co-eds devote to education. They’re also costly for mom and dad.The average cost of a graduation party in 2013 was a whopping $1,200, according to Graduationparty.com; $700 of that was allocated for food. However that budget was based on Midwestern..." />
+ <meta property="fb:app_id" content="63203377906" />
+ <meta property="fb:pages" content="93743106025" />
+ <meta property="og:site_name" content="eHow" />
+ <title>How to Throw a Graduation Party on a Budget (with Pictures) | eHow</title>
+ <link type="image/x-icon" href="//v5-static.ehowcdn.com/test15/favicon.ico" rel="shortcut icon apple-touch-icon" />
+ <link rel="stylesheet" type="text/css" href="//dynamic02.ehowcdn.com/test15/services/modules/css/common_header,corporate-skin/7bd35e3a/" />
+ <link type="text/css" href="//v5-static.ehowcdn.com/test15/content/compressed/article-consolidated-infinitescroll-6f4c6813.css" rel="stylesheet" />
+ <meta http-equiv="“X-UA-Compatible”" content="“IE=edge”" />
+ <!--[if lt IE 9]><link href="//v5-static.ehowcdn.com/test15/ui/stylesheets/layout/ie.css" rel="stylesheet" /><script src="//v5-static.ehowcdn.com/test15/ui/scripts/ie_hacks/header.js"></script><![endif]-->
+ <script>
+ window._omnitureLinkSetDomain = 'extended.dmtracker.com';
+ </script>
+ <script>
+ var dmjs = dmjs || {};
+
+ /* Core DMJS configuration */
+ dmjs.global = dmjs.global || {};
+ dmjs.global.glbBaseUrl = "\/\/www.ehow.com";
+ dmjs.global.facebook = {
+ "app_id": "63203377906",
+ "api_version": "v2.1",
+ "login_service": "\/\/www.ehow.com\/services\/fb\/login\/",
+ "comment_service": "\/\/www.ehow.com\/services\/comment\/refresh\/"
+ };
+ dmjs.urls = {
+ "cdn": "\/\/v5-static.ehowcdn.com\/test15",
+ "sitelife": "http:\/\/sitelife.ehow.com\/ver1.0\/",
+ "dmtracker": "vs.dmtracker.com"
+ };
+ dmjs.global.IN_PRODUCTION = true;
+ dmjs.global.pool = "test15";
+ dmjs.global.channel = "corporate";
+ dmjs.global.skin = "corporate";
+ dmjs.global.zergnetId = 33846;
+ dmjs.global._adChannel = "holi_more_holidays_celebration,text,suggested7";
+ dmjs.global.author_data = "{\"name\":\"Gina Roberts-Grey\",\"slug\":\"\\\/contributor\\\/gina_robertsgrey\\\/\",\"image_url\":\"http:\\\/\\\/s3.amazonaws.com\\\/cme_public_images\\\/www_demandstudios_com\\\/sitelife.studiod.com\\\/ver1.0\\\/Content\\\/images\\\/store\\\/9\\\/2\\\/d9dd6f61-b183-4893-927f-5b540e45be91.Small.jpg\",\"website\":\"\"}";
+ dmjs.global.author_url = "\/contributor\/gina_robertsgrey\/";
+ dmjs.global.IsSlideStep = false;
+ dmjs.global.fixed_category = [{
+ "_id": "\/holidays\/",
+ "external_url": "\/holidays\/",
+ "id": 15,
+ "title": "Holidays &amp; Celebrations",
+ "url": "\/holidays\/"
+ }, {
+ "_id": "\/more-holidays-celebrations\/",
+ "external_url": "\/more-holidays-celebrations\/",
+ "id": 1046,
+ "title": "More Holidays &amp; Celebrations",
+ "url": "\/more-holidays-celebrations\/"
+ }, {
+ "_id": "\/graduations\/",
+ "external_url": "\/graduations\/",
+ "id": 4257,
+ "title": "Graduations",
+ "url": "\/graduations\/"
+ }];
+ dmjs.global.SlideShowTest = {
+ "_full_id": "http:\/\/cme3.demandmedia.com\/www.ehow.com\/how_12343015_delicious-thanksgiving-sides-thatll-make-turkey-insignificant.html",
+ "_id": "www.ehow.com\/how_12343015_delicious-thanksgiving-sides-thatll-make-turkey-insignificant.html",
+ "_url": "http:\/\/www.ehow.com\/how_12343015_delicious-thanksgiving-sides-thatll-make-turkey-insignificant.html",
+ "dimensions": "none",
+ "external_url": "www.ehow.com\/how_12343015_delicious-thanksgiving-sides-thatll-make-turkey-insignificant.html",
+ "image": {
+ "thumbnail_url": "http:\/\/s3.amazonaws.com\/photography.prod.demandstudios.com\/082b04c2-3114-44fb-8be6-4e0e84e9b045.jpg",
+ "url": "http:\/\/s3.amazonaws.com\/photography.prod.demandstudios.com\/082b04c2-3114-44fb-8be6-4e0e84e9b045.jpg"
+ },
+ "subtitle": "",
+ "thumbnail": "http:\/\/s3.amazonaws.com\/photography.prod.demandstudios.com\/082b04c2-3114-44fb-8be6-4e0e84e9b045.jpg",
+ "title": "13 Delicious Thanksgiving Sides That'll Make Turkey Insignificant",
+ "url": "\/how_12343015_delicious-thanksgiving-sides-thatll-make-turkey-insignificant.html"
+ };
+ dmjs.global.contributor = "www.demandstudios.com\/contributor\/10589130-1fd3-4d3a-8e7c-18fd1d5cf4de";
+ dmjs.global.articleType = "Article";
+ dmjs.global.articleID = 4851888;
+ dmjs.global.rcp_units = [{
+ "url": "\/how_4900703_high-school-graduation-party-budget.html",
+ "title": "How to Throw a High School Graduation Party on a Budget",
+ "type": "Article"
+ }, {
+ "url": "\/way_5173339_cheap-graduation-party-meal-ideas.html",
+ "title": "Cheap Graduation Party Meal Ideas",
+ "type": "Article"
+ }, {
+ "url": "\/way_5408721_high-graduation-open-house-ideas.html",
+ "title": "High School Graduation Open House Ideas",
+ "type": "Article"
+ }, {
+ "url": "\/way_5299560_etiquette-high-school-graduation-party.html",
+ "title": "What Is the Etiquette for a High School Graduation Party?",
+ "type": "Article"
+ }, {
+ "url": "\/info_8172097_simple-food-ideas-graduation-party.html",
+ "title": "23 Simple Food Ideas for a Graduation Party",
+ "type": "Article"
+ }, {
+ "url": "\/how_2205228_throw-upscale-party-budget.html",
+ "title": "How to throw an Upscale Party on a Budget",
+ "type": "Article"
+ }, {
+ "url": "\/info_8620636_much-cab-driver-new-york.html",
+ "title": "How Much Does it Cost to Become a Cab Driver in New York?",
+ "type": "Article"
+ }, {
+ "url": "\/ehow-home\/blog\/how-to-throw-a-fabulous-graduation-party\/",
+ "title": "How to Throw a Fabulous Graduation Party",
+ "type": "Blog"
+ }, {
+ "url": "\/info_7964741_foods-serve-backyard-graduation-party.html",
+ "title": "What Foods to Serve at a Backyard Graduation Party",
+ "type": "Article"
+ }, {
+ "url": "\/info_8295762_top-ten-foods-graduation-parties.html",
+ "title": "The Top Ten Foods at Graduation Parties",
+ "type": "Article"
+ }, {
+ "url": "\/way_5534730_things-do-graduation-party.html",
+ "title": "Things to Do at a Graduation Party",
+ "type": "Article"
+ }, {
+ "url": "\/way_5154290_high-school-graduation-party-ideas.html",
+ "title": "The Best High School Graduation Party Ideas",
+ "type": "Article"
+ }, {
+ "url": "\/list_5832362_finger-food-recipe-ideas.html",
+ "title": "Finger Food Recipe Ideas",
+ "type": "Article"
+ }, {
+ "url": "\/how_12343531_out-registered-vote.html",
+ "title": "How to Find Out If You're Registered to Vote",
+ "type": "Article"
+ }, {
+ "url": "\/how_7187093_word-graduation-party-invitations.html",
+ "title": "How to Word Graduation Party Invitations",
+ "type": "Article"
+ }, {
+ "url": "\/how_12517_graduation-party.html",
+ "title": "How to Plan a Graduation Party",
+ "type": "Article"
+ }, {
+ "url": "\/how_7368664_throw-party-club.html",
+ "title": "How to Throw a Party at a Club",
+ "type": "Article"
+ }, {
+ "url": "\/how_7283538_throw-1940s-party.html",
+ "title": "How to Throw a 1940s Party",
+ "type": "Article"
+ }, {
+ "url": "\/how_6930_throw-oscar-party.html",
+ "title": "How to Throw an Oscar Party",
+ "type": "Article"
+ }, {
+ "url": "\/how_7224366_throw-listening-party.html",
+ "title": "How to Throw a Listening Party",
+ "type": "Article"
+ }];
+ /* Add xdomain first event helper to be added before ad event listeners are added */
+ dmjs.xdomainFirstEventListener = true;
+ if (window.addEventListener) {
+ window.addEventListener("message", function(event) {
+ if (typeof xdomain != 'undefined' & amp; & amp; typeof xdomain.dmjsFirstEventListener != 'undefined') {
+ xdomain.dmjsFirstEventListener(event);
+ }
+ }, false);
+ } else {
+ window.attachEvent("message", function(event) {
+ if (typeof xdomain != 'undefined' & amp; & amp; typeof xdomain.dmjsFirstEventListener != 'undefined') {
+ xdomain.dmjsFirstEventListener(event);
+ }
+ });
+ }
+ </script>
+ <script>
+ /* Add xdomain first event helper to be added before ad event listeners are added */
+ dmjs.xdomainFirstEventListener = true;
+ if (window.addEventListener) {
+ window.addEventListener("message", function(event) {
+ if (typeof xdomain != 'undefined' & amp; & amp; typeof xdomain.dmjsFirstEventListener != 'undefined') {
+ xdomain.dmjsFirstEventListener(event);
+ }
+ }, false);
+ } else {
+ window.attachEvent("message", function(event) {
+ if (typeof xdomain != 'undefined' & amp; & amp; typeof xdomain.dmjsFirstEventListener != 'undefined') {
+ xdomain.dmjsFirstEventListener(event);
+ }
+ });
+ }
+ </script>
+ <!--[if lt IE 9]>
+<script src="//v5-static.ehowcdn.com/test15/content/compressed/common_header_ie_legacy-753c1c9a.js" ></script>
+<![endif]-->
+ <script>
+ if (!window.console) window.console = {};
+ if (!window.console.log) window.console.log = function() {};
+ if (!window.console.error) window.console.error = function() {};
+ </script>
+ <script src="//dynamic01.ehowcdn.com/test15/services/modules/js/gpt,common_header/79b594d4/"></script>
+ <script type="text/javascript">
+ googletag.cmd.push(function() {
+ googletag.pubads().addEventListener('slotRenderEnded', function(event) {
+ dmjs.global.gpt_logger.log(event, 'slotRenderEnded');
+ });
+ googletag.pubads().addEventListener('impressionViewable', function(event) {
+ dmjs.global.gpt_logger.log(event, 'impressionViewable');
+ });
+ googletag.pubads().addEventListener('slotOnload', function(event) {
+ dmjs.global.gpt_logger.log(event, 'slotOnload');
+ });
+ });
+ </script>
+ <script type="text/javascript">
+ var GPT = [];
+ googletag.cmd.push(function() {
+ window.slot_define_string = "/6117/dmd.ehow/holidays/moreholidayscelebrations/graduations";
+ GPT['300x250_300x600_REM'] = googletag.defineSlot('/6117/dmd.rem.ehow/holidays/moreholidayscelebrations/graduations', [
+ [300, 250],
+ [300, 600]
+ ], '300x250_300x600_REM').addService(googletag.pubads()).setTargeting('loc', 'btf');
+ GPT['300x250_300x600_REM'].set('create_date', new Date());
+ GPT['640x120_ATF'] = googletag.defineSlot('/6117/dmd.ehow/holidays/moreholidayscelebrations/graduations', [640, 120], '640x120_ATF').addService(googletag.pubads()).setTargeting('loc', 'atf');
+ GPT['640x120_ATF'].set('create_date', new Date());
+ GPT['300x250_300x600'] = googletag.defineSlot('/6117/dmd.ehow/holidays/moreholidayscelebrations/graduations', [
+ [300, 250],
+ [300, 600]
+ ], '300x250_300x600').addService(googletag.pubads()).setTargeting('loc', 'atf');
+ GPT['300x250_300x600'].set('create_date', new Date());
+ GPT['728x90_990x90_970x250'] = googletag.defineSlot('/6117/dmd.ehow/holidays/moreholidayscelebrations/graduations', [
+ [728, 90],
+ [970, 90],
+ [970, 250]
+ ], '728x90_990x90_970x250').addService(googletag.pubads()).setTargeting('loc', 'atf');
+ GPT['728x90_990x90_970x250'].set('create_date', new Date());
+ GPT['outofpage'] = googletag.defineOutOfPageSlot('/6117/dmd.ehow/holidays/moreholidayscelebrations/graduations', 'outofpage').addService(googletag.pubads()).setCollapseEmptyDiv(true, true);
+ GPT['outofpage'].set('create_date', new Date());
+ googletag.pubads().setTargeting('cat', 'holidayscelebrations');
+ googletag.pubads().setTargeting('scat', 'moreholidayscelebrations');
+ googletag.pubads().setTargeting('sscat', 'graduations');
+ googletag.pubads().setTargeting('art', '4851888');
+ googletag.pubads().setTargeting('ctype', 'articles');
+ googletag.pubads().setTargeting('vid', '0');
+ googletag.pubads().setTargeting('blog', '0');
+ googletag.pubads().setTargeting('ad_chan', 'holi_more_holidays_celebration');
+ googletag.pubads().setTargeting('dc_ref', top.window.location.href.replace('#', '-'));
+
+ googletag.pubads().setTargeting("envr", dmjs.global.pool === 'default' ? '' : dmjs.global.pool);
+
+
+ // ET-405
+ googletag.pubads().setTargeting('ref_src', dmjs.platform.getPageReferrer());
+ googletag.pubads().setTargeting('source_page_type', dmjs.platform.getPageType());
+
+ // EH-9727
+ googletag.pubads().setTargeting('secu', '');
+ googletag.pubads().collapseEmptyDivs();
+ googletag.pubads().enableSingleRequest();
+ googletag.pubads().disableInitialLoad();
+ googletag.enableServices();
+ }); /*gpt_end*/
+ window.gpt_targeting_vars = {
+ "cat": "holidayscelebrations",
+ "scat": "moreholidayscelebrations",
+ "sscat": "graduations",
+ "art": 4851888,
+ "ctype": "articles",
+ "vid": 0,
+ "blog": 0,
+ "ad_chan": "holi_more_holidays_celebration"
+ };
+ </script>
+ <script src="//js-sec.indexww.com/ht/ls-ehow.js"></script>
+ <script type="text/javascript" src="//c.amazon-adsystem.com/aax2/amzn_ads.js"></script>
+ <script type="text/javascript">
+ try {
+ amznads.getAds('3066');
+ } catch (e) {
+ window.onerror(e, "ehow.com/module", "0", "amznads");
+ }
+ </script>
+ <script>
+ try {
+ amznads.setTargetingForGPTAsync('amznslots');
+ } catch (e) {
+ window.onerror(e, "ehow.com/module", "0", "amznads");
+ }
+ </script>
+ <script type="text/javascript" src="//native.sharethrough.com/assets/sfp.js" defer="defer"></script>
+ <script type="text/javascript" src="//www.zergnet.com/zerg-inf-multi.js"></script>
+ <script>
+ __reach_config = {
+ pid: '562a6183736b79323600086f',
+ title: "How to Throw a Graduation Party on a Budget",
+ url: "http:\/\/www.ehow.com\/how_4851888_throw-graduation-party-budget.html",
+ date: "2014-05-08T16:40:56.018000",
+ authors: ["Gina Roberts-Grey"],
+ channels: "holidays &amp; celebrations",
+ tags: ["Graduation parties", "budget", "cheap graduation party"],
+ iframe: true,
+ landing_url: "http:\/\/www.ehow.com\/how_4851888_throw-graduation-party-budget.html"
+ };
+ (function() {
+ var s = document.createElement('script');
+ s.async = true;
+ s.type = 'text/javascript';
+ s.src = document.location.protocol + '//d8rk54i4mohrb.cloudfront.net/js/reach.js';
+ (document.getElementsByTagName('head')[0] ||
+ document.getElementsByTagName('body')[0]).appendChild(s);
+ })();
+ </script>
+ <!--
+<PageMap>
+ <DataObject type="meta">
+ <Attribute name="articlethumbnail"><![CDATA[http://s3.amazonaws.com/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/2F/86/5547EF62-EAF5-4256-945D-0496F61C862F/5547EF62-EAF5-4256-945D-0496F61C862F.jpg]]></Attribute>
+ <Attribute name="articletype"><![CDATA[professional]]></Attribute>
+ </DataObject>
+</PageMap>
+-->
+</head>
+
+<body class="Corporate Inline " data-skin="corporate">
+ <!--[if IE 7]>
+ <script src="//v5-static.ehowcdn.com/test15/ui/scripts/ie7_notification.js" ></script> <![endif]-->
+ <noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-K7RB82" style="display:none;visibility:hidden" width="0" height="0"></iframe></noscript>
+ <script>
+ (function(w, d, s, l, i) {
+ w[l] = w[l] || [];
+ w[l].push({
+ 'gtm.start': new Date().getTime(),
+ event: 'gtm.js'
+ });
+ var f = d.getElementsByTagName(s)[0],
+ j = d.createElement(s),
+ dl = l != 'dataLayer' ? '&amp;l=' + l : '';
+ j.async = true;
+ j.src = '//www.googletagmanager.com/gtm.js?id=' + i + dl;
+ f.parentNode.insertBefore(j, f);
+ })(window, document, 'script', 'dataLayer', 'GTM-K7RB82');
+ </script>
+ <header id="Header" data-section="header" class="header-non-responsive js-headroom">
+ <section class="header-section">
+ <div class="container-fluid container-non-responsive">
+ <div class="fl">
+ <a href="//www.ehow.com/" class="logo-container"><img src="//v5-static.ehowcdn.com/test15/media/images/logos/logov3.png" alt="eHow Logo" class="logo" /></a>
+ <span class="nav hidden-xs">
+<label for="menu-toggle" class="label">Discover<div class="elegant-icons arrow">C</div></label>
+<input id="menu-toggle" type="checkbox" />
+<div class="dropdown">
+<div class="category-links">
+<ul>
+<li><a href="/home/" data-gtm-event="navHeaderMore">Home Decor &amp; Repair</a></li>
+<li><a href="/crafts/" data-gtm-event="navHeaderMore">Crafts</a></li>
+<li><a href="/food/" data-gtm-event="navHeaderMore">Food &amp; Drink</a></li>
+<li><a href="/garden/" data-gtm-event="navHeaderMore">Garden</a></li>
+</ul>
+<ul>
+<li><a href="/parties/" data-gtm-event="navHeaderMore">Entertaining</a></li>
+<li><a href="/fashion/" data-gtm-event="navHeaderMore">Fashion &amp; Beauty</a></li>
+<li><a href="/holidays/" data-gtm-event="navHeaderMore">Holidays</a></li>
+<li><a href="/tech/" data-gtm-event="navHeaderMore">Tech</a></li>
+</ul>
+<ul>
+<li><a href="/personal-finance/" data-gtm-event="navHeaderMore">Personal Finance</a></li>
+<li><a href="/cars/" data-gtm-event="navHeaderMore">Cars</a></li>
+<li><a href="/pets/" data-gtm-event="navHeaderMore">Pets</a></li>
+<li><a href="/legal/" data-gtm-event="navHeaderMore">Legal</a></li>
+</ul>
+</div>
+<div class="sponsored-programs">
+<ul>
+<li><a href="//www.ehow.com/honest-hacks/" class="item honest-hacks">Honest Hacks</a></li>
+<li class="sponsored-filler size-2">FOLLOW US
+<ul class="icons inline">
+<li class="pinterest"><a data-gtm-event="nav header" data-gtm-info="pinterest" href="//pinterest.com/ehow/" class="elegant-icons" target="_blank"></a></li>
+<li class="facebook"><a data-gtm-event="nav header" data-gtm-info="facebook" href="//facebook.com/eHow/" class="elegant-icons" target="_blank"></a></li>
+<li class="twitter"><a data-gtm-event="nav header" data-gtm-info="twitter" href="//twitter.com/eHow/" class="elegant-icons" target="_blank"></a></li>
+<li class="googleplus"><a data-gtm-event="nav header" data-gtm-info="googleplus" href="//plus.google.com/+howto/" class="social-icon icon-google_plus" target="_blank"></a></li>
+<li class="instagram btnInstagram"><a data-gtm-event="nav header" data-gtm-info="instagram" href="//instagram.com/ehow_team/" class="icon-social_instagram" target="_blank"></a></li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+</span>
+ </div>
+ <div>
+ <div class="eHowUserMenu fr"></div>
+ <form method="get" action="/sitesearch.html" id="searchHeader">
+ <label class="elegant-icons magnifying-glass hidden-xs">U</label>
+ <input name="s" value="" autofocus="" onfocus="this.value = this.value;" placeholder="Search" type="text" />
+ <input name="skin" value="corporate" type="hidden" />
+ <button class="submit gh-bttn" type="submit">
+<span class="hidden-xs">Search</span>
+<span class="elegant-icons magnifying-glass visible-xs">U</span>
+</button>
+ <input name="t" value="all" type="hidden" />
+ </form>
+ </div>
+ </div>
+ </section>
+ </header>
+ <div class="non-responsive-spacer"></div>
+ <div class="inner-container">
+ <!-- gpt slot 728x90_990x90_970x250 -->
+ <div class="bannerAd mod" data-module="gpt-ad-728x90_990x90_970x250" id="728x90_990x90_970x250">
+ <script type="text/javascript">
+ if (typeof index_headertag_lightspeed === "undefined") {
+ setTimeout(function() {
+ googletag.cmd.push(function() {
+ googletag.display('728x90_990x90_970x250');
+ });
+ }, 500);
+ };
+ </script>
+ </div>
+ <!-- gpt slot outofpage -->
+ <div class="AdUnitOutOfPage mod" data-module="gpt-ad-outofpage" id="outofpage">
+ <script type="text/javascript">
+ if (typeof index_headertag_lightspeed === "undefined") {
+ setTimeout(function() {
+ googletag.cmd.push(function() {
+ googletag.display('outofpage');
+ });
+ }, 500);
+ };
+ </script>
+ </div>
+ </div>
+ <section id="Body" class="InlineTemplate FLC" data-page-id="inlinetemplate" data-section="body">
+ <script type="text/javascript">
+ dmjs.global.generalMeta = {
+ "title": "How to Throw a Graduation Party on a Budget",
+ "description": "How to Throw a Graduation Party on a Budget. Graduation parties are a great way to commemorate the years of hard work teens and college co-eds devote to education. They&amp;#8217;re also costly for mom and dad.\n\nThe average cost of a graduation party in 2013 was a whopping $1,200, according to Graduationparty.com; $700 of that was allocated for food. However that budget was based on Midwestern statistics, and parties in urban areas like New York City are thought to have a much higher price tag.\n\nThankfully, there are plenty of creative ways to trim a little grad party fat without sacrificing any of the fun or celebratory spirit.",
+ "last_updated": "2016-09-14T12:33:10.443000",
+ "publish_date": "05\/08\/2014 07:01:00",
+ "last_rcp_import": "2017-01-09T20:27:15.507425",
+ "articleimage": "http:\/\/s3.amazonaws.com\/cme_public_images\/www_ehow_com\/cdn-write.demandstudios.com\/upload\/image\/2F\/86\/5547EF62-EAF5-4256-945D-0496F61C862F\/5547EF62-EAF5-4256-945D-0496F61C862F.jpg",
+ "pagetype": "article",
+ "zergnetId": 33846,
+ "keywords": ["Graduation parties", "budget", "cheap graduation party"]
+ };
+ dmjs.global.facebookMeta = {
+ "og:image": "\/\/img-aws.ehowcdn.com\/200x200\/cme\/cme_public_images\/www_ehow_com\/cdn-write.demandstudios.com\/upload\/image\/2F\/86\/5547EF62-EAF5-4256-945D-0496F61C862F\/5547EF62-EAF5-4256-945D-0496F61C862F.jpg",
+ "og:url": "http:\/\/www.ehow.com\/how_4851888_throw-graduation-party-budget.html",
+ "og:type": "article",
+ "og:title": "How to Throw a Graduation Party on a Budget | eHow",
+ "og:description": "Graduation parties are a great way to commemorate the years of hard work teens and college co-eds devote to education. They&amp;#8217;re also costly for mom and dad.The average cost of a graduation party in 2013 was a whopping $1,200, according to Graduationparty.com; $700 of that was allocated for food. However that budget was based on Midwestern..."
+ };
+ dmjs.global.omnitureMeta = {
+ "studioid": "ecfabbce-0245-4b5f-9111-5223553b7afd",
+ "contentid": "4851888",
+ "category": "Holidays &amp; Celebrations",
+ "subcategory": "More Holidays &amp; Celebrations",
+ "subsubcat": "Graduations",
+ "subpagetype": "inline",
+ "exp_page": "",
+ "wa_pchn": "Corporate",
+ "wa_page": "http:\/\/www.ehow.com\/how_4851888_throw-graduation-party-budget.html",
+ "author": "Gina Roberts-Grey",
+ "article_length": "8"
+ };
+ dmjs.global.comscorekw = "eHow_Holidays_and_Celebrations";
+ </script>
+ <div class="infiniteScrollAdFunction">
+ <!-- <script type='text/javascript'>
+ var GPT = [];
+ googletag.cmd.push(function() {
+ window.slot_define_string = "/6117/dmd.ehow/holidays/moreholidayscelebrations/graduations";GPT['300x250_300x600_REM'] = googletag.defineSlot('/6117/dmd.rem.ehow/holidays/moreholidayscelebrations/graduations', [[300,250],[300,600]], '300x250_300x600_REM').addService(googletag.pubads()).setTargeting('loc','btf');
+GPT['300x250_300x600_REM'].set('create_date', new Date());GPT['640x120_ATF'] = googletag.defineSlot('/6117/dmd.ehow/holidays/moreholidayscelebrations/graduations', [640,120], '640x120_ATF').addService(googletag.pubads()).setTargeting('loc','atf');
+GPT['640x120_ATF'].set('create_date', new Date());GPT['300x250_300x600'] = googletag.defineSlot('/6117/dmd.ehow/holidays/moreholidayscelebrations/graduations', [[300,250], [300,600]], '300x250_300x600').addService(googletag.pubads()).setTargeting('loc','atf');
+GPT['300x250_300x600'].set('create_date', new Date());GPT['728x90_990x90_970x250'] = googletag.defineSlot('/6117/dmd.ehow/holidays/moreholidayscelebrations/graduations', [[728,90], [970,90], [970,250]], '728x90_990x90_970x250').addService(googletag.pubads()).setTargeting('loc','atf');
+GPT['728x90_990x90_970x250'].set('create_date', new Date());GPT['outofpage'] = googletag.defineOutOfPageSlot('/6117/dmd.ehow/holidays/moreholidayscelebrations/graduations', 'outofpage').addService(googletag.pubads()).setCollapseEmptyDiv(true,true);
+GPT['outofpage'].set('create_date', new Date());googletag.pubads().setTargeting('cat','holidayscelebrations');
+googletag.pubads().setTargeting('scat','moreholidayscelebrations');
+googletag.pubads().setTargeting('sscat','graduations');
+googletag.pubads().setTargeting('art','4851888');
+googletag.pubads().setTargeting('ctype','articles');
+googletag.pubads().setTargeting('vid','0');
+googletag.pubads().setTargeting('blog','0');
+googletag.pubads().setTargeting('ad_chan','holi_more_holidays_celebration');
+ googletag.pubads().setTargeting('dc_ref',top.window.location.href.replace('#', '-'));
+
+ googletag.pubads().setTargeting("envr", dmjs.global.pool === 'default' ? '' : dmjs.global.pool);
+
+
+ // ET-405
+ googletag.pubads().setTargeting('ref_src', dmjs.platform.getPageReferrer());
+ googletag.pubads().setTargeting('source_page_type', dmjs.platform.getPageType());
+
+ // EH-9727
+ googletag.pubads().setTargeting('secu', '');
+ googletag.pubads().collapseEmptyDivs();
+ googletag.pubads().enableSingleRequest();
+ googletag.pubads().disableInitialLoad();
+ googletag.enableServices();
+ });/*gpt_end*/ window.gpt_targeting_vars = {"cat":"holidayscelebrations","scat":"moreholidayscelebrations","sscat":"graduations","art":4851888,"ctype":"articles","vid":0,"blog":0,"ad_chan":"holi_more_holidays_celebration"};
+ </script>
+
+ <script src="//js-sec.indexww.com/ht/ls-ehow.js"></script>
+ -->
+ </div>
+ <div style="display:none;" data-template-type="Inline"></div>
+ <ol class="breadcrumbs unstyled inline" itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb" data-module="breadcrumb">
+ <li class="list">
+ <a href="//www.ehow.com/" rel="home" itemprop="url" class="title">
+ <span itemprop="title">eHow</span>
+ </a>
+ </li>
+ <li class="list" itemprop="child" itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb">
+ <a href="//www.ehow.com/holidays/" rel="directory" itemprop="url" class="title">
+ <span itemprop="title">Holidays &amp; Celebrations</span>
+ </a>
+ </li>
+ <li class="list" itemprop="child" itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb">
+ <a href="//www.ehow.com/holidays/more-holidays-celebrations/" rel="directory" itemprop="url" class="title">
+ <span itemprop="title">More Holidays &amp; Celebrations</span>
+ </a>
+ </li>
+ <li class="list" itemprop="child" itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb">
+ <a href="//www.ehow.com/holidays/more-holidays-celebrations/graduations/" rel="directory" itemprop="url" class="title">
+ <span itemprop="title">Graduations</span>
+ </a>
+ </li>
+ <li class="list" itemprop="child" itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb">
+ <a href="//www.ehow.com/how_4851888_throw-graduation-party-budget.html" rel="directory" itemprop="url" class="title">
+ <span itemprop="title">How to Throw a Graduation Party on a Budget</span>
+ </a>
+ </li>
+ </ol>
+ <!-- gpt slot 990x50 -->
+ <header class="page-head bordered pre-col">
+ <h1 class="headline1 head mg-2" itemprop="headline">
+ How to Throw a Graduation Party on a Budget </h1>
+ <div data-type="AuthorProfile">
+ <div class="post-meta clearfix headline6 mg-2">
+ <a class="gtm_contributorBylineAvatar contributor-follow-tip" id="img-follow-tip" href="/contributor/gina_robertsgrey/" target="_top">
+ <img src="//img-aws.ehowcdn.com/60x60/cme/cme_public_images/www_demandstudios_com/sitelife.studiod.com/ver1.0/Content/images/store/9/2/d9dd6f61-b183-4893-927f-5b540e45be91.Small.jpg" class="avatar fl" data-failover="//img-aws.ehowcdn.com/60x60/ehow-cdn-assets/test15/media/images/authors/missing-author-image.png" onerror="var failover = this.getAttribute('data-failover');
+ if (failover) failover = failover.replace(/^https?:/,'');
+ var src = this.src ? this.src.replace(/^https?:/,'') : '';
+ if (src != failover){
+ this.src = failover;
+ }" /> </a>
+ <div class="meta">
+ <a class="byline trigger gtm_contributorByline head-alt nb-name contributor-follow-tip" id="name-follow-tip" rel="author" href="/contributor/gina_robertsgrey/" data-author-url="/contributor/gina_robertsgrey/" target="_top">
+By <span>Gina Roberts-Grey</span> </a>
+ <div class="nb-byline">eHow Contributor</div>
+ </div>
+ </div>
+ <div class="post-meta clearfix headline6 mg-2" id="author_powertip" data-author-url="/contributor/gina_robertsgrey/" style="display: none;">
+ <a class="gtm_contributorBylineAvatar" href="/contributor/gina_robertsgrey/" target="_top" style="padding-top: 0 !important;">
+ <img src="//img-aws.ehowcdn.com/60x60/cme/cme_public_images/www_demandstudios_com/sitelife.studiod.com/ver1.0/Content/images/store/9/2/d9dd6f61-b183-4893-927f-5b540e45be91.Small.jpg" class="avatar fl" data-failover="//img-aws.ehowcdn.com/60x60/ehow-cdn-assets/test15/media/images/authors/missing-author-image.png" onerror="var failover = this.getAttribute('data-failover');
+ if (failover) failover = failover.replace(/^https?:/,'');
+ var src = this.src ? this.src.replace(/^https?:/,'') : '';
+ if (src != failover){
+ this.src = failover;
+ }" /> </a>
+ <div class="meta">
+ <a class="byline trigger gtm_contributorByline head-alt nb-name" rel="author" href="/contributor/gina_robertsgrey/" target="_top">
+Gina Roberts-Grey </a>
+ </div>
+ <div class="btn btnFollow" data-type="contributor" data-author-url="/contributor/gina_robertsgrey/" data-follow-data="{&quot;name&quot;:&quot;Gina Roberts-Grey&quot;,&quot;slug&quot;:&quot;\/contributor\/gina_robertsgrey\/&quot;,&quot;image_url&quot;:&quot;http:\/\/s3.amazonaws.com\/cme_public_images\/www_demandstudios_com\/sitelife.studiod.com\/ver1.0\/Content\/images\/store\/9\/2\/d9dd6f61-b183-4893-927f-5b540e45be91.Small.jpg&quot;,&quot;website&quot;:&quot;&quot;}">Follow</div>
+ </div>
+ <div class="article-meta">
+ <time datetime="2016-09-14T07:07:00-04:00" itemprop="dateModified">Last updated September 14, 2016</time>
+ </div>
+ <div data-element="container"></div>
+ </div>
+ <div class="clearfix mg-3">
+ <ul class="social-icons js-social-icons inline " data-url="http://www.ehow.com/how_4851888_throw-graduation-party-budget.html" share-buttons-uninitialized="">
+ <li class="item round-button-circle pinterest-any-image">
+ <a class="js-btn btn btnPinterest gtm_socialShare" data-social="pinterest" data-url="http://www.ehow.com/how_4851888_throw-graduation-party-budget.html" data-title="How to Throw a Graduation Party on a Budget" data-media="http://img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/2F/86/5547EF62-EAF5-4256-945D-0496F61C862F/5547EF62-EAF5-4256-945D-0496F61C862F.jpg" data-description="Graduation parties are a great way to commemorate the years of hard work teens and college co-eds devote to education. They&amp;#8217;re also costly for mom and dad.The average cost of a graduation party in 2013 was a whopping $1,200, according to Graduationparty.com; $700 of that was allocated for food. However that budget was based on Midwestern...">
+ <span class="social-icon elegant-icons"></span>
+ </a>
+ <span class="action js-pins">Pin</span>
+ </li>
+ <li class="item round-button-circle">
+ <a class="js-btn btn btnFacebook gtm_socialShare" data-social="facebook" data-url="http://www.ehow.com/how_4851888_throw-graduation-party-budget.html" data-title="How to Throw a Graduation Party on a Budget" data-media="http://img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/2F/86/5547EF62-EAF5-4256-945D-0496F61C862F/5547EF62-EAF5-4256-945D-0496F61C862F.jpg" data-description="Graduation parties are a great way to commemorate the years of hard work teens and college co-eds devote to education. They&amp;#8217;re also costly for mom and dad.The average cost of a graduation party in 2013 was a whopping $1,200, according to Graduationparty.com; $700 of that was allocated for food. However that budget was based on Midwestern...">
+ <span class="social-icon elegant-icons"></span>
+ </a>
+ <span class="action js-facebook_shares">Share</span>
+ </li>
+ <li class="item round-button-circle">
+ <a class="js-btn btn btnTwitter gtm_socialShare" data-social="twitter" data-url="http://www.ehow.com/how_4851888_throw-graduation-party-budget.html" data-title="How to Throw a Graduation Party on a Budget" data-media="http://img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/2F/86/5547EF62-EAF5-4256-945D-0496F61C862F/5547EF62-EAF5-4256-945D-0496F61C862F.jpg">
+ <span class="social-icon elegant-icons"></span>
+ </a>
+ <span class="action js-tweets">Tweet</span>
+ </li>
+ <li class="item round-button-circle">
+ <a class="js-btn btn btnGoogle gtm_socialShare" data-social="google" data-url="http://www.ehow.com/how_4851888_throw-graduation-party-budget.html" data-title="How to Throw a Graduation Party on a Budget">
+ <span class="social-icon icon-google_plus"></span>
+ </a>
+ <span class="action js-plusones">Share</span>
+ </li>
+ <li class="item round-button-circle">
+ <a class="js-btn btn btnEmail gtm_socialShare" data-social="email" data-url="http://www.ehow.com/how_4851888_throw-graduation-party-budget.html?utm_source=eHowDesktopShare%26utm_medium=email" data-title="How to Throw a Graduation Party on a Budget" data-media="http://img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/2F/86/5547EF62-EAF5-4256-945D-0496F61C862F/5547EF62-EAF5-4256-945D-0496F61C862F.jpg" data-description="Graduation parties are a great way to commemorate the years of hard work teens and college co-eds devote to education. They&amp;#8217;re also costly for mom and dad.The average cost of a graduation party in 2013 was a whopping $1,200, according to Graduationparty.com; $700 of that was allocated for food. However that budget was based on Midwestern...">
+ <span class="social-icon elegant-icons"></span>
+ </a>
+ <span class="action">Email</span>
+ </li>
+ </ul>
+ <script type="text/javascript">
+ dmjs.global.article_data = JSON.stringify({
+ "image_url": "http:\/\/s3.amazonaws.com\/cme_public_images\/www_ehow_com\/cdn-write.demandstudios.com\/upload\/image\/2F\/86\/5547EF62-EAF5-4256-945D-0496F61C862F\/5547EF62-EAF5-4256-945D-0496F61C862F.jpg",
+ "image_thumb": "http:\/\/s3.amazonaws.com\/cme_public_images\/www_ehow_com\/cdn-write.demandstudios.com\/upload\/image\/2F\/86\/5547EF62-EAF5-4256-945D-0496F61C862F\/5547EF62-EAF5-4256-945D-0496F61C862F_tn.jpg",
+ "title": "How to Throw a Graduation Party on a Budget",
+ "summary": "Graduation parties are a great way to commemorate the years of hard work teens and college co-eds devote to education. They&amp;#8217;re also costly for mom and dad.\n\nThe average cost of a graduation party in 2013 was a whopping $1,200, according to Graduationparty.com; $700 of that was allocated for food. However that budget was based on Midwestern statistics, and parties in urban areas like New York City are thought to have a much higher price tag.\n\nThankfully, there are plenty of creative ways to trim a little grad party fat without sacrificing any of the fun or celebratory spirit.",
+ "article_url": "\/\/www.ehow.com\/how_4851888_throw-graduation-party-budget.html"
+ });
+ </script>
+ <div class="article-bookmark js-pagescore" data-score="true" data-url="http://www.ehow.com/how_4851888_throw-graduation-party-budget.html">
+ <div class="gh-bttn save gh-bttn-large deselected btnSave" data-url="http://www.ehow.com/how_4851888_throw-graduation-party-budget.html">
+ <span class="state-msg"> Save</span>
+ </div>
+ <div class="save-text">
+ <span class="js-num"></span>
+ <span class="bookmark-num"></span>
+ <span class="bookmark-msg"></span>
+ </div>
+ </div>
+ </div>
+ </header>
+ <!-- schema.org recipe itemtype scope -->
+ <div class="col-main">
+ <article data-type="article">
+ <div class="mod step">
+ <div class="stepContent mod">
+ <div class="content lead">
+ <p>Graduation parties are a great way to commemorate the years of hard work teens and college co-eds devote to education. They’re also costly for mom and dad.</p>
+ <p>The average cost of a graduation party in 2013 was a whopping $1,200, according to Graduationparty.com; $700 of that was allocated for food. However that budget was based on Midwestern statistics, and parties in urban areas like New York City are thought to have a much higher price tag.</p>
+ <p>Thankfully, there are plenty of creative ways to trim a little grad party fat without sacrificing any of the fun or celebratory spirit.</p>
+ </div>
+ <figure class="stepThumb">
+ <img src="//img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/2F/86/5547EF62-EAF5-4256-945D-0496F61C862F/5547EF62-EAF5-4256-945D-0496F61C862F.jpg" alt="Graduation" title="Graduation" class="photo" data-credit="Mike Watson Images/Moodboard/Getty " longdesc="http://s3.amazonaws.com/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/2F/86/5547EF62-EAF5-4256-945D-0496F61C862F/5547EF62-EAF5-4256-945D-0496F61C862F.jpg" data-pin-ehow-hover="true" data-pin-no-hover="true" />
+ </figure>
+ <figcaption class="small caption">
+ (Mike Watson Images/Moodboard/Getty)
+ </figcaption>
+ </div>
+ </div>
+ <!-- gpt slot 640x120_ATF -->
+ <div class="AdUnit mod" data-module="gpt-ad-640x120_ATF" id="640x120_ATF">
+ <script type="text/javascript">
+ if (typeof index_headertag_lightspeed === "undefined") {
+ setTimeout(function() {
+ googletag.cmd.push(function() {
+ googletag.display('640x120_ATF');
+ });
+ }, 500);
+ };
+ </script>
+ </div>
+ <span>
+<span>
+<div class="mod step">
+<div class="stepContent mod">
+<div class="content">
+<span><p>Parties hosted at restaurants, clubhouses and country clubs eliminate the need to spend hours cleaning up once party guests have gone home. But that convenience comes with a price tag. A country club may charge as much as $2,000 for room rental and restaurant food and beverage will almost always cost more than food prepped and served at home.</p></span> </div>
+ <figure class="stepThumb">
+ <img src="//img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/FE/CB/121569D2-6984-4B2F-83C4-9D2D9A27CBFE/121569D2-6984-4B2F-83C4-9D2D9A27CBFE.jpg" alt="Save money hosting the party at home." class="photo" data-credit="Thomas Jackson/Digital Vision/Getty Images" data-pin-ehow-hover="true" data-pin-no-hover="true" />
+ </figure>
+ <figcaption class="small caption">
+ Thomas Jackson/Digital Vision/Getty Images </figcaption>
+ </div>
+ </div>
+ </span>
+ </span>
+ <span>
+<span>
+<div class="mod step">
+<div class="stepContent mod">
+<div class="content">
+<span><p>Instead of hiring a DJ, use your iPod or Smartphone to spin the tunes. Both easily hook up to most speakers or mp3 compatible docks to play music from your music library. Or download Pandora, the free online radio app, and play hours of music for free.</p>
+<p>Personalize the music with a playlist of the grad’s favorite songs or songs that were big hits during his or her years in school.</p></span> </div>
+ <figure class="stepThumb">
+ <img src="//img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/DF/FC/A05B0252-BD73-4BC7-A09A-96F0A504FCDF/A05B0252-BD73-4BC7-A09A-96F0A504FCDF.jpg" alt="Online radio can take the place of a hired DJ." class="photo" data-credit="Spencer Platt/Getty Images News/Getty Images" data-pin-ehow-hover="true" data-pin-no-hover="true" />
+ </figure>
+ <figcaption class="small caption">
+ Spencer Platt/Getty Images News/Getty Images </figcaption>
+ </div>
+ </div>
+ </span>
+ </span>
+ <span>
+<span>
+<div class="mod step">
+<div class="stepContent mod">
+<div class="content">
+<span><p>Avoid canned drinks, which guests often open, but don't finish. Serve pitchers of tap water with lemon and cucumber slices or sliced strawberries for an interesting and refreshing flavor. Opt for punches and non-alcoholic drinks for high school graduates that allow guests to dole out the exact amount they want to drink.</p></span> </div>
+ <figure class="stepThumb">
+ <img src="//img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/EB/DB/8A04CCA7-3255-4225-B59A-C41441F8DBEB/8A04CCA7-3255-4225-B59A-C41441F8DBEB.jpg" alt="Serve drinks in pitchers, not in cans." class="photo" data-credit="evgenyb/iStock/Getty Images" data-pin-ehow-hover="true" data-pin-no-hover="true" />
+ </figure>
+ <figcaption class="small caption">
+ evgenyb/iStock/Getty Images </figcaption>
+ </div>
+ </div>
+ <div class="mod Inline">
+ <div id="DMINSTR" type="adimpression" data-type="adTracking" name="&amp;adunit_id=ca-ehow_300x250&amp;ad_unit_type=CNT&amp;ad_unit_network=GAP&amp;revenue_basis=CPC&amp;ad_position=-&amp;revenue_tag=holi_more_holidays_celebration" data-adsense-id="300">
+ <div id="GoogleAdsense300x250"></div>
+ <script>
+ dmjs.revenueTags.push('ca-ehow_300x250;holi_more_holidays_celebration,text,suggested7');
+ googleAds.addAdUnit({
+ priority: 3,
+ adUnitId: 'GoogleAdsense300x250',
+ google_ad_channel: 'holi_more_holidays_celebration,text,suggested7',
+ google_ad_client: 'ca-ehow_300x250',
+ google_page_url: 'http://www.ehow.com/how_4851888_throw-graduation-party-budget.html',
+ google_max_num_ads: '1',
+ google_ad_type: 'text',
+ templates: {
+ text: '&lt;div class="GoogleTextAd GoogleAd300x250 ad-300"&gt; \
+ &lt;p&gt;&lt;a class="header" href="{!= google_info.feedback_url !}"&gt;Sponsored Links&lt;/a&gt;&lt;/p&gt; \
+ &lt;ul&gt; \
+ {! for (var i = 0; i &lt; ads.length; i++) { !} \
+ &lt;li class="Ad"&gt; \
+ &lt;a rel="nofollow" href="{!= ads[i].url !}" target="_blank" title="go to {!= clean(ads[i].visible_url) !}" class="title"&gt; \
+ {!= ads[i].line1 !} \
+ &lt;/a&gt; \
+ &lt;p class="copy"&gt;{!= ads[i].line2 !} {!= ads[i].line3 !}&lt;/p&gt; \
+ &lt;a rel="nofollow" href="{!= ads[i].url !}" target="_blank" title="go to {!= clean(ads[i].visible_url) !}" class="baseurl url"&gt; \
+ {!= ads[i].visible_url !} \
+ &lt;/a&gt; \
+ &lt;/li&gt; \
+ {! } !} \
+ &lt;/ul&gt; \
+ &lt;/div&gt;',
+ image: '&lt;div class="GoogleImageAd GoogleImageAdNew"&gt; \
+ &lt;a class="header" href="{!= google_info.feedback_url !}"&gt;Sponsored Links&lt;/a&gt; \
+ &lt;a href="{!= ads[0].url !}" title="go to {!= clean(ads[0].visible_url) !}" target="_blank" class="Ad" &gt;\
+ &lt;img src="{!= ads[0].image_url !}" width="{!= ads[0].image_width !}" height="{!= ads[0].image_height !}" border="0" alt="" /&gt;\
+ &lt;/a&gt; \
+ &lt;/div&gt;',
+ flash: '&lt;div class="GoogleFlashAd GoogleFlashAdNew"&gt;\
+ &lt;a class="header" href="{!= google_info.feedback_url !}"&gt;Sponsored Links&lt;/a&gt; \
+ &lt;div class="Ad"&gt;\
+ &lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="{!= ads[0].image_width !}" height="{!= ads[0].image_height !}"&gt;&lt;param name="movie" value="{!= ads[0].image_url !}"&gt;&lt;param name="quality" value="high"&gt;&lt;param name="AllowScriptAccess" value="never"&gt;&lt;embed src="{!= ads[0].image_url !}" width="{!= ads[0].image_width !}" height="{!= ads[0].image_height !}" type="application/x-shockwave-flash" AllowScriptAccess="never" pluginspage="http://www.macromedia.com/go/getflashplayer"&gt;&lt;/embed&gt;&lt;/object&gt;\
+ &lt;/div&gt;\
+ &lt;/div&gt;'
+ },
+ google_image_size: '300x250'
+ });
+ </script>
+ </div>
+ </div>
+ </span>
+ </span>
+ <span>
+<span>
+<div class="mod step">
+<div class="stepContent mod">
+<div class="content">
+<span><p>Instead of inviting everyone you – and the graduate – know or ever knew, scale back the guest list. Forgo inviting guests that you or your grad haven't seen for eons. There is no reason to provide provisions for people who are essentially out of your lives. Sticking to a small, but personal, guest list allows more time to mingle with loved ones during the party, too.</p></span> </div>
+ <figure class="stepThumb">
+ <img src="//img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/94/10/08035476-0167-4A03-AADC-13A7E7AA1094/08035476-0167-4A03-AADC-13A7E7AA1094.jpg" alt="Limit guests to those close to the graduate." class="photo" data-credit="Kane Skennar/Photodisc/Getty Images" data-pin-ehow-hover="true" data-pin-no-hover="true" />
+ </figure>
+ <figcaption class="small caption">
+ Kane Skennar/Photodisc/Getty Images </figcaption>
+ </div>
+ </div>
+ </span>
+ </span>
+ <span>
+<span>
+<div class="mod step">
+<div class="stepContent mod">
+<div class="content">
+<span><p>See if your grad and his best friend, girlfriend or close family member would consider hosting a joint party. You can split some of the expenses, especially when the two graduates share mutual friends. You'll also have another parent to bounce ideas off of and to help you stick to your budget when you're tempted to splurge.</p></span> </div>
+ <figure class="stepThumb">
+ <img src="//img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/06/49/4AD62696-FC95-4DA2-8351-42740C7B4906/4AD62696-FC95-4DA2-8351-42740C7B4906.jpg" alt="Throw a joint bash for big savings." class="photo" data-credit="Mike Watson Images/Moodboard/Getty" data-pin-ehow-hover="true" data-pin-no-hover="true" />
+ </figure>
+ <figcaption class="small caption">
+ Mike Watson Images/Moodboard/Getty </figcaption>
+ </div>
+ </div>
+ </span>
+ </span>
+ <span>
+<span>
+<div class="mod step">
+<div class="stepContent mod">
+<div class="content">
+<span><p>Skip carving stations of prime rib and jumbo shrimp as appetizers, especially for high school graduation parties. Instead, serve some of the graduate's favorite side dishes that are cost effective, like a big pot of spaghetti with breadsticks. Opt for easy and simple food such as pizza, finger food and mini appetizers. </p>
+<p>Avoid pre-packaged foods and pre-made deli platters. These can be quite costly. Instead, make your own cheese and deli platters for less than half the cost of pre-made.</p></span> </div>
+ <figure class="stepThumb">
+ <img src="//img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/D0/51/B6AED06C-5E19-4A26-9AAD-0E175F6251D0/B6AED06C-5E19-4A26-9AAD-0E175F6251D0.jpg" alt="Cost effective appetizers are just as satisfying as pre-made deli platters." class="photo" data-credit="Mark Stout/iStock/Getty Images" data-pin-ehow-hover="true" data-pin-no-hover="true" />
+ </figure>
+ <figcaption class="small caption">
+ Mark Stout/iStock/Getty Images </figcaption>
+ </div>
+ </div>
+ </span>
+ </span>
+ <span>
+<span>
+<div class="mod step">
+<div class="stepContent mod">
+<div class="content">
+<span><p>Instead of an evening dinner party, host a grad lunch or all appetizers party. Brunch and lunch fare or finger food costs less than dinner. Guests also tend to consume less alcohol in the middle of the day, which keeps cost down.</p></span> </div>
+ <figure class="stepThumb">
+ <img src="//img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/35/B4/DD5FD05A-B631-4AFE-BC8F-FDACAD1EB435/DD5FD05A-B631-4AFE-BC8F-FDACAD1EB435.jpg" alt="A brunch gathering will cost less than a dinner party." class="photo" data-credit="Mark Stout/iStock/Getty Images" data-pin-ehow-hover="true" data-pin-no-hover="true" />
+ </figure>
+ <figcaption class="small caption">
+ Mark Stout/iStock/Getty Images </figcaption>
+ </div>
+ </div>
+ <div id="relatedContentUpper" class="RelatedContent Module fl" data-module="rcp_top">
+ <header class="">
+ <h3 class="head headline2 mg-2">Other People Are Reading</h3>
+ </header>
+ <ul class="unstyled inline box box-inner people-reading mod FLC" data-type="more-relatedArticles">
+ <li class="fl item headline5 first">
+ <a class="gtm_otherPeopleReading" href="//www.ehow.com/how_4900703_high-school-graduation-party-budget.html">
+ <img src="//img-aws.ehowcdn.com/105x70/cme/cme_public_images/www_ehow_com/i.ehow.com/images/a04/lh/qv/high-school-graduation-party-budget-800x800.jpg" class="thumb fl" /> </a>
+ <a class="title gtm_otherPeopleReading headline5" href="//www.ehow.com/how_4900703_high-school-graduation-party-budget.html">How to Throw a High School Graduation Party on a Budget</a>
+ </li>
+ <li class="fl item headline5 mid">
+ <a class="gtm_otherPeopleReading" href="//www.ehow.com/way_5173339_cheap-graduation-party-meal-ideas.html">
+ <img src="//img-aws.ehowcdn.com/105x70/cme/cme_public_images/www_ehow_com/i.ehow.com/images/a04/ts/2r/cheap-graduation-party-meal-ideas-800x800.jpg" class="thumb fl" /> </a>
+ <a class="title gtm_otherPeopleReading headline5" href="//www.ehow.com/way_5173339_cheap-graduation-party-meal-ideas.html">Cheap Graduation Party Meal Ideas</a>
+ </li>
+ </ul>
+ </div>
+ <div style="clear:both;"></div>
+ </span>
+ </span>
+ <span>
+<span>
+<div class="mod step">
+<div class="stepContent mod">
+<div class="content">
+<span><p>Decorate your party in the graduate's current school colors or the colors of the school he or she will be headed to next. Décor that is not specifically graduation-themed may cost a bit less, and any leftovers can be re-used for future parties, picnics and events.</p></span> </div>
+ <figure class="stepThumb">
+ <img src="//img-aws.ehowcdn.com/640/cme/cme_public_images/www_ehow_com/cdn-write.demandstudios.com/upload/image/A1/FA/2C368B34-8F6A-45F6-9DFC-0B0C4E33FAA1/2C368B34-8F6A-45F6-9DFC-0B0C4E33FAA1.jpg" alt="Theme the party by color without graduation-specific decor." class="photo" data-credit="jethuynh/iStock/Getty Images" data-pin-ehow-hover="true" data-pin-no-hover="true" />
+ </figure>
+ <figcaption class="small caption">
+ jethuynh/iStock/Getty Images </figcaption>
+ </div>
+ </div>
+ </span>
+ </span>
+ <div id="m2"></div>
+ <div id="DMINSTR" type="adimpression" data-type="adTracking" name="&amp;adunit_id=ca-ehow_336x280&amp;ad_unit_type=CNT&amp;ad_unit_network=GAP&amp;revenue_basis=CPC&amp;ad_position=-&amp;revenue_tag=holi_more_holidays_celebration" data-module="google-ad-336x280" data-adsense-id="336v2">
+ <div id="GoogleAdsense336x280" class="mod"></div>
+ <script>
+ dmjs.revenueTags.push('ca-ehow_336x280;holi_more_holidays_celebration,text,suggested7');
+ googleAds.addAdUnit({
+ priority: 2,
+ adUnitId: 'GoogleAdsense336x280',
+ google_ad_channel: 'holi_more_holidays_celebration,text,suggested7',
+ google_ad_client: 'ca-ehow_336x280',
+ google_page_url: 'http://www.ehow.com/how_4851888_throw-graduation-party-budget.html',
+ google_max_num_ads: '4',
+ google_ad_type: 'text',
+ google_hints: '',
+ templates: {
+ text: '&lt;div class="GoogleTextAd GoogleTextAdNew"&gt;\
+ &lt;a class="header" href="{!= google_info.feedback_url !}"&gt;Sponsored Links&lt;/a&gt;\
+ &lt;ul class="opNew336 evenColorItems"&gt;\
+ {! for (var i = 0; i &lt; ads.length; i++) { !}\
+ &lt;li class="item"&gt;\
+ &lt;div class="term"&gt;\
+ &lt;a rel="nofollow" target="_blank" href="{!= ads[i].url !}" title="go to {!= clean(ads[i].visible_url) !}" class="title"&gt;\
+ &lt;span&gt;{!= ads[i].line1 !}&lt;/span&gt;\
+ &lt;/a&gt;\
+ &lt;/div&gt;\
+ &lt;div class="Ad"&gt;\
+ &lt;p class="copy"&gt;{!= ads[i].line2 !}&lt;/p&gt;\
+ &lt;p class="copy"&gt;{!= ads[i].line3 !}&lt;/p&gt;\
+ &lt;a rel="nofollow" target="_blank" href="{!= ads[i].url !}" title="go to {!= clean(ads[i].visible_url) !}" class="baseurl url"&gt;\
+ {!= ads[i].visible_url !}\
+ &lt;/a&gt;\
+ &lt;/div&gt;\
+ &lt;/li&gt;\
+ {! } !}\
+ &lt;/ul&gt;\
+ &lt;/div&gt;',
+ image: '&lt;div class="GoogleImageAd GoogleImageAdNew"&gt; \
+ &lt;a class="header" href="{!= google_info.feedback_url !}"&gt;Sponsored Links&lt;/a&gt; \
+ &lt;a href="{!= ads[0].url !}" title="go to {!= clean(ads[0].visible_url) !}" target="_blank" class="Ad" &gt;\
+ &lt;img src="{!= ads[0].image_url !}" width="{!= ads[0].image_width !}" height="{!= ads[0].image_height !}" border="0" alt="" /&gt;\
+ &lt;/a&gt; \
+ &lt;/div&gt;',
+ flash: '&lt;div class="GoogleFlashAd GoogleFlashAdNew"&gt;\
+ &lt;a class="header" href="{!= google_info.feedback_url !}"&gt;Sponsored Links&lt;/a&gt; \
+ &lt;div class="Ad"&gt;\
+ &lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="{!= ads[0].image_width !}" height="{!= ads[0].image_height !}"&gt;&lt;param name="movie" value="{!= ads[0].image_url !}"&gt;&lt;param name="quality" value="high"&gt;&lt;param name="AllowScriptAccess" value="never"&gt;&lt;embed src="{!= ads[0].image_url !}" width="{!= ads[0].image_width !}" height="{!= ads[0].image_height !}" type="application/x-shockwave-flash" AllowScriptAccess="never" pluginspage="http://www.macromedia.com/go/getflashplayer"&gt;&lt;/embed&gt;&lt;/object&gt;\
+ &lt;/div&gt;\
+ &lt;/div&gt;'
+ },
+ google_image_size: '336x280'
+ });
+ </script>
+ </div>
+ <h2 class="RsTitle head mg-2 title">
+ <a target="_blank" href="https://www.google.com/adsense/support/bin/request.py?contact=abg_afc&amp;url=http://ehow.com/&amp;hl=en&amp;client=ehow&amp;gl=US">Related Searches</a>
+ </h2>
+ <div class="RelatedSearches FLC mod" id="RelatedSearches" data-module="related-searches">
+ <div id="RelatedSearchesMain"></div>
+ </div>
+ <div class="zergnet-widget zergnet-widget-33846" data-zerg-widget-id="33846"></div>
+ <div class="zergnet-pw">Promoted By Zergnet</div>
+ <figure id="Comments" class="mod FLC" data-module="comments">
+ <h2 class="decoration headline2 head mg-2">Comments</h2>
+ <div id="disqus_thread"></div>
+ <script type="text/javascript">
+ /* * * CONFIGURATION VARIABLES * * */
+ var disqus_shortname = 'ehow',
+ disqus_api_key = 'rnFiy8PpBapCC32Vm32eFiyFUginrBQc9LZzk0XJb7h6YjeWsWamFqyI5jjqk6WD';
+
+ var disqus_category_id = '3917728';
+ var disqus_url = 'http://www.ehow.com/how_4851888_throw-graduation-party-budget.html';
+
+ function disqus_config() {
+ var thisPlatform = (dmjs.platform.isMobile() ? 'mobile' : (dmjs.platform.isTablet() ? 'tablet' : 'desktop'));
+ this.callbacks.onNewComment = [function(comment) {
+ // Google Analytic Tracking
+ dataLayer.push({
+ 'event': 'Disqus Comment'
+ });
+
+ // Custom eHow Disqus Tracking Dashboard
+ $.ajax({
+ type: 'GET',
+ url: 'http://disqusdash.ehow.com/pub/api/tags/' + comment.id + '/' + thisPlatform + '?api_key=' + disqus_api_key,
+ dataType: "jsonp"
+ });
+ }];
+ }
+
+ /* * * DON'T EDIT BELOW THIS LINE * * */
+ (function() {
+ var dsq = document.createElement('script');
+ dsq.type = 'text/javascript';
+ dsq.async = true;
+ dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
+ (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
+ })();
+ </script>
+ <noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript" rel="nofollow">comments powered by Disqus.</a></noscript>
+ </figure>
+ </article>
+ </div>
+ <!-- end schema.org recipe itemtype scope -->
+ <div class="col-rail">
+ <!-- gpt slot 300x250_300x600 -->
+ <div class="AdUnit mod" data-module="gpt-ad-300x250_300x600" id="300x250_300x600">
+ <script type="text/javascript">
+ if (typeof index_headertag_lightspeed === "undefined") {
+ setTimeout(function() {
+ googletag.cmd.push(function() {
+ googletag.display('300x250_300x600');
+ });
+ }, 500);
+ };
+ </script>
+ </div>
+ <!-- gpt slot 300x100 -->
+ <h2 class="RsTitle head mg-2 title">
+ <a target="_blank" href="https://www.google.com/adsense/support/bin/request.py?contact=abg_afc&amp;url=http://ehow.com/&amp;hl=en&amp;client=ehow&amp;gl=US">Related Searches</a>
+ </h2>
+ <div class="RelatedSearches FLC mod" id="RelatedSearches" data-module="related-searches">
+ <div id="RelatedSearchesRight"></div>
+ </div>
+ <section class="mod box slideshow" data-module="rcp_slideshow_module">
+ <a href="//www.ehow.com/how_12343015_delicious-thanksgiving-sides-thatll-make-turkey-insignificant.html">
+ <img src="//img-aws.ehowcdn.com/300x200/cme/photography.prod.demandstudios.com/082b04c2-3114-44fb-8be6-4e0e84e9b045.jpg" alt="" title="" class="photo" data-pin-nopin="1" longdesc="http://s3.amazonaws.com/photography.prod.demandstudios.com/082b04c2-3114-44fb-8be6-4e0e84e9b045.jpg" /> <span class="subtitle">
+Check It Out </span>
+ </a>
+ <a href="//www.ehow.com/how_12343015_delicious-thanksgiving-sides-thatll-make-turkey-insignificant.html">
+ <h3 class="headline4 title">
+ 13 Delicious Thanksgiving Sides That'll Make Turkey Insignificant </h3>
+ </a>
+ </section>
+ <ul class="media-list mod unstyled " data-module="rcp_right_rail">
+ <h2 class="head mg-2 title">You May Like</h2>
+ <li class="media headline6">
+ <a href="//www.ehow.com/way_5408721_high-graduation-open-house-ideas.html" class="fl gtm_youMayLike">
+ <img src="//img-aws.ehowcdn.com/150X100/cme/cme_public_images/www_ehow_com/photos.demandstudios.com/getty/article/103/89/dv1850012_XS.jpg" alt="" class="media-object" data-pin-nopin="true" />
+ <div class="pagescore js-pagescore small" data-score="true" data-url="http://www.ehow.com/way_5408721_high-graduation-open-house-ideas.html">
+ <span class=" num js-num"></span>
+ <span class="icon"></span>
+ </div>
+ </a>
+ <div class="media-body">
+ <a href="//www.ehow.com/way_5408721_high-graduation-open-house-ideas.html" class="gtm_youMayLike">High School Graduation Open House Ideas</a>
+ </div>
+ </li>
+ <li class="media headline6">
+ <a href="//www.ehow.com/way_5299560_etiquette-high-school-graduation-party.html" class="fl gtm_youMayLike">
+ <img src="//img-aws.ehowcdn.com/150X100/cme/cme_public_images/www_ehow_com/i.ehow.com/images/a05/1n/b8/etiquette-high-school-graduation-party-800x800.jpg" alt="" class="media-object" data-pin-nopin="true" />
+ <div class="pagescore js-pagescore small" data-score="true" data-url="http://www.ehow.com/way_5299560_etiquette-high-school-graduation-party.html">
+ <span class=" num js-num"></span>
+ <span class="icon"></span>
+ </div>
+ </a>
+ <div class="media-body">
+ <a href="//www.ehow.com/way_5299560_etiquette-high-school-graduation-party.html" class="gtm_youMayLike">What Is the Etiquette for a High School Graduation Party?</a>
+ </div>
+ </li>
+ <li class="media headline6">
+ <a href="//www.ehow.com/info_8172097_simple-food-ideas-graduation-party.html" class="fl gtm_youMayLike">
+ <img src="//img-aws.ehowcdn.com/150X100/cme/photography.prod.demandstudios.com/33c61293-ddba-4178-ae65-5eb82bab4a0c.jpg" alt="" class="media-object" data-pin-nopin="true" />
+ <div class="pagescore js-pagescore small" data-score="true" data-url="http://www.ehow.com/info_8172097_simple-food-ideas-graduation-party.html">
+ <span class=" num js-num"></span>
+ <span class="icon"></span>
+ </div>
+ </a>
+ <div class="media-body">
+ <a href="//www.ehow.com/info_8172097_simple-food-ideas-graduation-party.html" class="gtm_youMayLike">23 Simple Food Ideas for a Graduation Party</a>
+ </div>
+ </li>
+ <li class="media headline6">
+ <a href="//www.ehow.com/how_2205228_throw-upscale-party-budget.html" class="fl gtm_youMayLike">
+ <img src="//img-aws.ehowcdn.com/150X100/cme/cme_public_images/www_ehow_com/i.ehow.com/images/a02/39/hc/throw-upscale-party-budget-800x800.jpg" alt="" class="media-object" data-pin-nopin="true" />
+ <div class="pagescore js-pagescore small" data-score="true" data-url="http://www.ehow.com/how_2205228_throw-upscale-party-budget.html">
+ <span class=" num js-num"></span>
+ <span class="icon"></span>
+ </div>
+ </a>
+ <div class="media-body">
+ <a href="//www.ehow.com/how_2205228_throw-upscale-party-budget.html" class="gtm_youMayLike">How to throw an Upscale Party on a Budget</a>
+ </div>
+ </li>
+ <li class="media headline6">
+ <a href="//www.ehow.com/info_8620636_much-cab-driver-new-york.html" class="fl gtm_youMayLike">
+ <img src="//img-aws.ehowcdn.com/150X100/cme/cme_public_images/www_ehow_com/photos.demandstudios.com/getty/article/190/137/452190602_XS.jpg" alt="" class="media-object" data-pin-nopin="true" />
+ <div class="pagescore js-pagescore small" data-score="true" data-url="http://www.ehow.com/info_8620636_much-cab-driver-new-york.html">
+ <span class=" num js-num"></span>
+ <span class="icon"></span>
+ </div>
+ </a>
+ <div class="media-body">
+ <a href="//www.ehow.com/info_8620636_much-cab-driver-new-york.html" class="gtm_youMayLike">How Much Does it Cost to Become a Cab Driver in New York?</a>
+ </div>
+ </li>
+ <li class="media headline6">
+ <a href="//www.ehow.com/ehow-home/blog/how-to-throw-a-fabulous-graduation-party/" class="fl gtm_youMayLike">
+ <img src="//img-aws.ehowcdn.com/150X100/cme/cme_public_images/www_ehow_com/home-ehow-com.blog.ehow.com/files/2013/05/graduation_ceremony1.jpg" alt="" class="media-object" data-pin-nopin="true" />
+ <div class="pagescore js-pagescore small" data-score="true" data-url="http://www.ehow.com/ehow-home/blog/how-to-throw-a-fabulous-graduation-party/">
+ <span class=" num js-num"></span>
+ <span class="icon"></span>
+ </div>
+ </a>
+ <div class="media-body">
+ <a href="//www.ehow.com/ehow-home/blog/how-to-throw-a-fabulous-graduation-party/" class="gtm_youMayLike">How to Throw a Fabulous Graduation Party</a>
+ </div>
+ </li>
+ </ul>
+ <!-- gpt slot 300x250_300x600_REM -->
+ <div class="AdUnit mod" data-module="gpt-ad-300x250_300x600_REM" id="300x250_300x600_REM">
+ <script type="text/javascript">
+ if (typeof index_headertag_lightspeed === "undefined") {
+ setTimeout(function() {
+ googletag.cmd.push(function() {
+ googletag.display('300x250_300x600_REM');
+ });
+ }, 500);
+ };
+ </script>
+ </div>
+ </div>
+ </section>
+ <div class="InfiniteScroll"></div>
+ <script src="//v5-static.ehowcdn.com/test15/content/compressed/jquery-657217e9.js"></script>
+ <div class="bottompopout hide">
+ <div class="close js-close elegant-icons">M</div>
+ <div class="pop">
+ <div class="desc">Is DIY in your DNA? Become part of our maker community.</div>
+ <a href="//www.ehow.com/write-for-ehow/" class="gh-bttn go gh-bttn-large" data-gtm-event="write slideout">Submit Your Work!</a>
+ </div>
+ </div>
+ <a style="display:none" class="emailPopoutTrigger" href="#emailPopout">out of box</a>
+ <div id="emailPopout" style="display:none">
+ <div class="emailPopoutClose">
+ <span class="icon elegant-icons">M</span>
+ </div>
+ <div class="emailPopoutContents">
+ <div class="email-popout-title">
+ Get Weekly DIY Guides &amp; Inspiration
+ <div class="email-popout-subtitle">Life Made Easier.</div>
+ </div>
+ <div class="email-popout-form">
+ <input class="email-popout-email" name="email" placeholder="Email" autocomplete="off" type="email" />
+ <input class="email-popout-submit" value="Get Inspired" data-gtm-event="newsletter signup attempt" type="submit" />
+ <input class="collection-source" value="popup_lightbox" type="hidden" />
+ <input class="collection-campaign" value="" type="hidden" />
+ </div>
+ <div class="email-popout-error"></div>
+ </div>
+ </div>
+ <div class="clearfix visible-xs"></div>
+ <footer id="Footer" data-section="footer">
+ <div class="footer-section">
+ <!-- Mobile only -->
+ <div class="container-fluid container-non-responsive visible-xs">
+ <ul class="listing">
+ <li>
+ <a href="//www.ehow.com/about/" class="title">About eHow</a>
+ </li>
+ <li>
+ <a href="//www.ehow.com/advertise/" class="title">Advertise</a>
+ </li>
+ <li>
+ <a href="//www.ehow.com/write-for-ehow/" class="title">Write For eHow</a>
+ </li>
+ <li>
+ <a href="//www.ehow.com/about/#contact" class="title">Contact Us</a>
+ </li>
+ </ul>
+ <!-- Mobile only -->
+ <div class="socialConnect visible-xs">
+ <div class="social-icons-mobile">
+ <ul class="icons unstyled inline">
+ <li class="icon">
+ <div class="round-button">
+ <div class="round-button-circle">
+ <a href="//pinterest.com/ehow/" data-gtmsocial="pinterest" class="gtm_social btnPinterest" target="_blank">
+ <span class="social-icon icon-social_pinterest"></span>
+ </a>
+ </div>
+ </div>
+ </li>
+ <li class="icon">
+ <div class="round-button">
+ <div class="round-button-circle">
+ <a href="//facebook.com/eHow/" data-gtmsocial="facebook" class="gtm_social btnFacebook" target="_blank">
+ <span class="social-icon icon-social_facebook"></span>
+ </a>
+ </div>
+ </div>
+ </li>
+ <li class="icon">
+ <div class="round-button">
+ <div class="round-button-circle">
+ <a href="//twitter.com/eHow/" data-gtmsocial="twitter" class="gtm_social btnTwitter" target="_blank">
+ <span class="social-icon elegant-icons icon-social_twitter"></span>
+ </a>
+ </div>
+ </div>
+ </li>
+ <li class="icon">
+ <div class="round-button">
+ <div class="round-button-circle">
+ <a href="//plus.google.com/+howto/" data-gtmsocial="google-plus" class="gtm_social btnGoogle" target="_blank">
+ <span class="social-icon icon-google_plus"></span>
+ </a>
+ </div>
+ </div>
+ </li>
+ <li class="icon">
+ <div class="round-button">
+ <div class="round-button-circle">
+ <a href="//instagram.com/ehow_team/" data-gtmsocial="instagram" class="gtm_social btnInstagram" target="_blank">
+ <span class="social-icon icon-social_instagram"></span>
+ </a>
+ </div>
+ </div>
+ </li>
+ </ul>
+ </div>
+ </div>
+ <!-- End Mobile only -->
+ <!-- Non-Mobile only -->
+ <div class="socialConnect fr hidden-xs">
+ <div class="headline4 heading head">Connect with us</div>
+ <div class="social">
+ <ul class="icons unstyled inline footer-social">
+ <li class="icon">
+ <div class="round-button">
+ <div class="round-button-circle">
+ <a href="//pinterest.com/ehow/" data-gtm-event="nav footer" data-gtm-info="pinterest" class="gtm_social btnPinterest" target="_blank">
+ <span class="social-icon icon-social_pinterest"></span>
+ </a>
+ </div>
+ </div>
+ </li>
+ <li class="icon">
+ <div class="round-button">
+ <div class="round-button-circle">
+ <a href="//facebook.com/eHow/" data-gtmsocial="facebook" data-gtm-event="nav footer" data-gtm-info="facebook" class="gtm_social btnFacebook" target="_blank">
+ <span class="social-icon icon-social_facebook"></span>
+ </a>
+ </div>
+ </div>
+ </li>
+ <li class="icon">
+ <div class="round-button">
+ <div class="round-button-circle">
+ <a href="//twitter.com/eHow/" data-gtm-event="nav footer" data-gtm-info="twitter" class="gtm_social btnTwitter" target="_blank">
+ <span class="social-icon elegant-icons icon-social_twitter"></span>
+ </a>
+ </div>
+ </div>
+ </li>
+ <li class="icon">
+ <div class="round-button">
+ <div class="round-button-circle">
+ <a href="//plus.google.com/+howto/" data-gtm-event="nav footer" data-gtm-info="googleplus" class="gtm_social btnGoogle" target="_blank">
+ <span class="social-icon icon-google_plus"></span>
+ </a>
+ </div>
+ </div>
+ </li>
+ <li class="icon">
+ <div class="round-button">
+ <div class="round-button-circle">
+ <a href="//instagram.com/ehow_team/" data-gtm-event="nav footer" data-gtm-info="instagram" class="gtm_social btnInstagram" target="_blank">
+ <span class="social-icon icon-social_instagram"></span>
+ </a>
+ </div>
+ </div>
+ </li>
+ </ul>
+ </div>
+ </div>
+ <!-- End Non-Mobile only -->
+ <div class="row">
+ <div class="column separator col-xs-4 col-xs-offset-4"></div>
+ </div>
+ <div class="row">
+ <ul class="listing below-separator">
+ <li>
+ <a href="//www.ehow.com/terms-of-use.html" class="title">Terms of Use</a>
+ </li>
+ <li>
+ <a href="//www.ehow.com/copyright.html" class="title">Report Copyright</a>
+ </li>
+ <li>
+ <a id="_bapw-link" class="ad-choice" style="cursor:pointer !important">
+ <img id="_bapw-icon" style="display:inline !important;vertical-align:middle !important" />
+ <span style="vertical-align:middle !important">Ad Choices</span>
+ </a>
+ <abbr>en-US</abbr>
+ </li>
+ </ul>
+ <ul class="listing below-separator">
+ <li>
+ <a href="//www.ehow.com/privacy.html" class="title">Privacy Policy</a>
+ </li>
+ <li>
+ <a href="//www.ehow.com/mobile-privacy.html" class="title">Mobile Privacy</a>
+ </li>
+ </ul>
+ </div>
+ <div class="row logo-container">
+ <div class="col-xs-4 col-xs-offset-4">
+ <a rel="nofollow" class="logo-mobile" data-url="http://www.leafgroup.com/">leafgroup.com</a>
+ </div>
+ <div class="clearfix"></div>
+ <div class="col-xs-8 col-xs-offset-2">
+ <p class="copyright">© 1999-2017 Leaf Group Ltd.</p>
+ </div>
+ </div>
+ </div>
+ <!-- End Mobile only -->
+ <!-- Non-mobile only -->
+ <div class="container-fluid container-non-responsive hidden-xs">
+ <div class="row">
+ <div class="column col-xs-6 col-sm-4 col-md-3">
+ <a rel="nofollow" class="logo" data-url="http://www.leafgroup.com/">leafgroup.com</a>
+ <p class="copyright">© 1999-2017 Leaf Group Ltd.</p>
+ </div>
+ <div class="column col-xs-6 col-sm-4 col-md-6 footer-links">
+ <div class="row">
+ <a0:nav xmlns:a0="http://www.w3.org/1999/xhtml" xmlns="http://www.w3.org/1999/html">
+ <a0:ul class="listing">
+ <a0:li class="column col-xs-12 col-sm-6 col-md-4">
+ <a0:ul>
+ <a0:li>
+ <a0:a href="//www.ehow.com/about/" class="title">About eHow</a0:a>
+ </a0:li>
+ <a0:li>
+ <a0:a href="//www.ehow.com/advertise/" class="title">Advertise</a0:a>
+ </a0:li>
+ <a0:li>
+ <a0:a href="//www.ehow.com/about/#contact" class="title">Contact Us</a0:a>
+ </a0:li>
+ <a0:li>
+ <a0:a href="//www.ehow.com/write-for-ehow/" class="title">Write For eHow</a0:a>
+ </a0:li>
+ </a0:ul>
+ </a0:li>
+ <a0:li class="column col-xs-12 col-sm-6 col-md-4">
+ <a0:ul>
+ <a0:li>
+ <a0:a href="//www.ehow.com/terms-of-use.html" class="title">Terms of Use</a0:a>
+ </a0:li>
+ <a0:li>
+ <a0:a href="//www.ehow.com/privacy.html" class="title">Privacy Policy</a0:a>
+ </a0:li>
+ </a0:ul>
+ </a0:li>
+ <a0:li class="column col-xs-12 col-sm-6 col-md-4">
+ <a0:ul>
+ <a0:li>
+ <a0:a href="//www.ehow.com/copyright.html" class="title">Report Copyright</a0:a>
+ </a0:li>
+ <a0:li>
+ <a0:a id="_bapw-link" class="ad-choice" style="cursor:pointer !important"><a0:img id="_bapw-icon" src="http://cdn.betrad.com/pub/icon1.png" style="display:inline !important;vertical-align:middle !important" />
+ <a0:span style="vertical-align:middle !important">Ad Choices</a0:span>
+ </a0:a>
+ <a0:abbr>en-US</a0:abbr>
+ </a0:li>
+ <a0:li>
+ <a0:a href="//www.ehow.com/how-to.html" class="title visible-xs-inline-block">How to by Topic</a0:a>
+ </a0:li>
+ <a0:li>
+ <a0:a href="//www.ehow.com/mobile-privacy.html" class="title visible-xs-inline-block">Mobile Privacy</a0:a>
+ </a0:li>
+ </a0:ul>
+ </a0:li>
+ </a0:ul>
+ </a0:nav>
+ </div>
+ </div>
+ <div class="column col-xs-6 col-sm-4 col-md-3">
+ <!-- Mobile only -->
+ <div class="socialConnect visible-xs">
+ <div class="social-icons-mobile">
+ <ul class="icons unstyled inline">
+ <li class="icon">
+ <div class="round-button">
+ <div class="round-button-circle">
+ <a href="//pinterest.com/ehow/" data-gtmsocial="pinterest" class="gtm_social btnPinterest" target="_blank">
+ <span class="social-icon icon-social_pinterest"></span>
+ </a>
+ </div>
+ </div>
+ </li>
+ <li class="icon">
+ <div class="round-button">
+ <div class="round-button-circle">
+ <a href="//facebook.com/eHow/" data-gtmsocial="facebook" class="gtm_social btnFacebook" target="_blank">
+ <span class="social-icon icon-social_facebook"></span>
+ </a>
+ </div>
+ </div>
+ </li>
+ <li class="icon">
+ <div class="round-button">
+ <div class="round-button-circle">
+ <a href="//twitter.com/eHow/" data-gtmsocial="twitter" class="gtm_social btnTwitter" target="_blank">
+ <span class="social-icon elegant-icons icon-social_twitter"></span>
+ </a>
+ </div>
+ </div>
+ </li>
+ <li class="icon">
+ <div class="round-button">
+ <div class="round-button-circle">
+ <a href="//plus.google.com/+howto/" data-gtmsocial="google-plus" class="gtm_social btnGoogle" target="_blank">
+ <span class="social-icon icon-google_plus"></span>
+ </a>
+ </div>
+ </div>
+ </li>
+ <li class="icon">
+ <div class="round-button">
+ <div class="round-button-circle">
+ <a href="//instagram.com/ehow_team/" data-gtmsocial="instagram" class="gtm_social btnInstagram" target="_blank">
+ <span class="social-icon icon-social_instagram"></span>
+ </a>
+ </div>
+ </div>
+ </li>
+ </ul>
+ </div>
+ </div>
+ <!-- End Mobile only -->
+ <!-- Non-Mobile only -->
+ <div class="socialConnect fr hidden-xs">
+ <div class="headline4 heading head">Connect with us</div>
+ <div class="social">
+ <ul class="icons unstyled inline footer-social">
+ <li class="icon">
+ <div class="round-button">
+ <div class="round-button-circle">
+ <a href="//pinterest.com/ehow/" data-gtm-event="nav footer" data-gtm-info="pinterest" class="gtm_social btnPinterest" target="_blank">
+ <span class="social-icon icon-social_pinterest"></span>
+ </a>
+ </div>
+ </div>
+ </li>
+ <li class="icon">
+ <div class="round-button">
+ <div class="round-button-circle">
+ <a href="//facebook.com/eHow/" data-gtmsocial="facebook" data-gtm-event="nav footer" data-gtm-info="facebook" class="gtm_social btnFacebook" target="_blank">
+ <span class="social-icon icon-social_facebook"></span>
+ </a>
+ </div>
+ </div>
+ </li>
+ <li class="icon">
+ <div class="round-button">
+ <div class="round-button-circle">
+ <a href="//twitter.com/eHow/" data-gtm-event="nav footer" data-gtm-info="twitter" class="gtm_social btnTwitter" target="_blank">
+ <span class="social-icon elegant-icons icon-social_twitter"></span>
+ </a>
+ </div>
+ </div>
+ </li>
+ <li class="icon">
+ <div class="round-button">
+ <div class="round-button-circle">
+ <a href="//plus.google.com/+howto/" data-gtm-event="nav footer" data-gtm-info="googleplus" class="gtm_social btnGoogle" target="_blank">
+ <span class="social-icon icon-google_plus"></span>
+ </a>
+ </div>
+ </div>
+ </li>
+ <li class="icon">
+ <div class="round-button">
+ <div class="round-button-circle">
+ <a href="//instagram.com/ehow_team/" data-gtm-event="nav footer" data-gtm-info="instagram" class="gtm_social btnInstagram" target="_blank">
+ <span class="social-icon icon-social_instagram"></span>
+ </a>
+ </div>
+ </div>
+ </li>
+ </ul>
+ </div>
+ </div>
+ <!-- End Non-Mobile only -->
+ </div>
+ </div>
+ </div>
+ <!-- End Non-mobile only -->
+ </div>
+ <!-- Non-Mobile only -->
+ <div class="extras container-fluid container-non-responsive hidden-xs">
+ <div class="row">
+ <div class="column col-xs-12">
+ <div class="comscore comscore-eh">
+ <div class="category15 eh-cat"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <!-- End Non-Mobile only -->
+ </footer>
+ <!-- BEGIN dmtracker -->
+ <noscript><img src="//vs.dmtracker.com/images/zig.gif?Log=1" alt="zig" /></noscript>
+ <div id="dmOmni"></div>
+ <!-- END dmtracker --><noscript><img src="//b.scorecardresearch.com/b?c1=2&amp;c2=6036385&amp;c3=&amp;c7=%2F%2Fwww.ehow.com%2Fhow_4851888_throw-graduation-party-budget.html%3Fcomscorekw%3DeHow_Holidays_and_Celebrations&amp;cv=2.0&amp;cj=1" /></noscript>
+ <noscript><img src="//pixel.quantserve.com/pixel/p-4dIM5nVs2rFio.gif?labels=_fp.event.Default" style="display: none;" alt="Quantcast" width="1" border="0" height="1" /></noscript>
+ <script>
+ var dmjs = dmjs || {};
+
+ /* Core DMJS configuration */
+ dmjs.global = dmjs.global || {};
+ dmjs.global.comscore = {
+ "c1": "2",
+ "c2": "6036385",
+ "c3": "",
+ "options": {
+ "url_append": "comscorekw=eHow_Holidays_and_Celebrations"
+ }
+ };
+ dmjs.global.dm_tracker = {
+ "domain": "vs.dmtracker.com",
+ "url": "bit.ehow.com",
+ "bit": "bit"
+ };
+ /* Add xdomain first event helper to be added before ad event listeners are added */
+ dmjs.xdomainFirstEventListener = true;
+ if (window.addEventListener) {
+ window.addEventListener("message", function(event) {
+ if (typeof xdomain != 'undefined' & amp; & amp; typeof xdomain.dmjsFirstEventListener != 'undefined') {
+ xdomain.dmjsFirstEventListener(event);
+ }
+ }, false);
+ } else {
+ window.attachEvent("message", function(event) {
+ if (typeof xdomain != 'undefined' & amp; & amp; typeof xdomain.dmjsFirstEventListener != 'undefined') {
+ xdomain.dmjsFirstEventListener(event);
+ }
+ });
+ }
+ </script>
+ <script src="//dynamic01.ehowcdn.com/test15/services/modules/js/zergnet,evidon,rev_tag,dm_track,comscore,quantcast,common_footer/7da5ff40/" defer="defer"></script>
+ <!--[if lt IE 9]>
+<script src="//v5-static.ehowcdn.com/test15/content/compressed/common_footer_ie_legacy-f629e488.js" ></script>
+<![endif]-->
+ <script src="//v5-static.ehowcdn.com/test15/content/compressed/article-consolidated-infinitescroll-e08bbacd.js" defer="defer"></script>
+ <script>
+ googletag.cmd.push(function() {
+ if ((typeof BannerAdManager !== 'undefined') & amp; & amp;
+ (typeof document.getElementsByClassName('bannerAd')[0] !== 'undefined')) {
+ //--BannerAdManager setup starts--
+ var slots = googletag.pubads().getSlots();
+ for (var i = 0; i & lt; slots.length; i++) {
+ slots[i].set('called', Date.now());
+ }
+ dmjs.global.bannerAdManager = BannerAdManager(document.getElementsByClassName('bannerAd')[0]);
+ dmjs.global.bannerAdManager.init();
+ //--BannerAdManager setup ends--
+ }
+ googletag.pubads().refresh();
+ });
+ </script>
+ <script>
+ dmjs.domready(function() {
+ new OmnitureLinkSet($('[data-module="rcp_top"]'), "TLS101", "test15_IL");
+ });
+ </script>
+ <script>
+ dmjs.domready(function() {
+ new OmnitureLinkSet($('[data-module="rcp_slideshow_module"]'), "TLS106", "test15_SS");
+ });
+ </script>
+ <script>
+ dmjs.domready(function() {
+ new OmnitureLinkSet($('[data-module="rcp_right_rail"]'), "TLS102", "test15_R3");
+ });
+ </script>
+ <script>
+ googleAds.addChannel('GoogleAdsense336x280', 'source15');
+ googleAds.addChannel('GoogleRelatedAds', 'source15');
+ googleAds.addChannel('GoogleAdsense300x250', 'source15');
+ googleAds.addChannel('GoogleAdsense728x90', 'source15');
+
+
+ googleAds.defaults.google_adtest = 'off';
+ googleAds.defaults.google_page_url = 'http://www.ehow.com/how_4851888_throw-graduation-party-budget.html';
+
+ if (typeof(window.usesABP) !== 'undefined' & amp; & amp; window.usesABP) {
+ googleAds.overrideAd('GoogleAdsense336x280', {
+ google_ad_channel: 'holi_more_holidays_celebration,text,suggested7,Art6'
+ });
+ }
+
+ googleAds.render();
+ </script>
+ <script>
+ dmjs.domready(function() {
+ dmjs.dom.loadCss("//v5-static.ehowcdn.com/test15/content/compressed/common_footer-eb0c06ef.css");
+ });
+ </script>
+ <script defer="defer" src="//cdn.optimizely.com/js/9718688.js"></script>
+ <script>
+ dmjs.addEvent(window, 'load', function() {
+ dmjs.fireEvents();
+ });
+ </script>
+ <script defer="defer" src="//static.ehownowcdn.com/widget/ehow/auth.js"></script>
+ <div id="fb-root"></div>
+ <!-- Neustar Tracking -->
+ <img src="http://d.agkn.com/pixel/7698/?che=005022400148404245675981&amp;atr=HolidaysCelebrations,MoreHolidaysCelebrationsHolidays" style="display:none;" width="1" border="0" height="1" />
+ <!-- /Neustar Tracking -->
+
+
+</body>
+
+</html> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/embedded-videos/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/embedded-videos/expected-images.json
new file mode 100644
index 000000000..0637a088a
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/embedded-videos/expected-images.json
@@ -0,0 +1 @@
+[] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/embedded-videos/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/embedded-videos/expected-metadata.json
new file mode 100644
index 000000000..e0e885940
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/embedded-videos/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,\n quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo\n consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse\n cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non\n proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
+ "Image": null,
+ "Title": "Embedded videos test",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/embedded-videos/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/embedded-videos/expected.html
new file mode 100644
index 000000000..327e6503c
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/embedded-videos/expected.html
@@ -0,0 +1,25 @@
+<article>
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+ <h2>Videos</h2>
+ <p>At root</p>
+ <iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/LtOGa5M8AuU" width="560"></iframe>
+ <iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube-nocookie.com/embed/LtOGa5M8AuU" width="560"></iframe>
+ <iframe allowfullscreen="" frameborder="0" height="281" mozallowfullscreen="" src="https://player.vimeo.com/video/32246206?color=ffffff+title=0+byline=0+portrait=0" webkitallowfullscreen="" width="500"></iframe>
+ <p>In a paragraph</p>
+ <p><iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube-nocookie.com/embed/LtOGa5M8AuU" width="560"></iframe></p>
+ <p>In a div</p>
+ <p><iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/LtOGa5M8AuU" width="560"></iframe></p>
+ <h2>Foo</h2>
+ <p>
+ Tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ </article> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/embedded-videos/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/embedded-videos/source.html
new file mode 100644
index 000000000..ff43acfa3
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/embedded-videos/source.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8"/>
+ <title>Embedded videos test</title>
+</head>
+<body>
+ <article>
+ <h1>Lorem</h1>
+ <div>
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+ </div>
+ <h2>Videos</h2>
+ <p>At root</p>
+ <iframe width="560" height="315" src="https://www.youtube.com/embed/LtOGa5M8AuU"
+ frameborder="0" allowfullscreen=""></iframe>
+ <iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/LtOGa5M8AuU"
+ frameborder="0" allowfullscreen=""></iframe>
+ <iframe src="https://player.vimeo.com/video/32246206?color=ffffff+title=0+byline=0+portrait=0"
+ width="500" height="281" frameborder="0"
+ webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""></iframe>
+ <p>In a paragraph</p>
+ <p><iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/LtOGa5M8AuU"
+ frameborder="0" allowfullscreen=""></iframe></p>
+ <p>In a div</p>
+ <div><iframe width="560" height="315" src="https://www.youtube.com/embed/LtOGa5M8AuU"
+ frameborder="0" allowfullscreen=""></iframe></div>
+ <h2>Foo</h2>
+ <div>
+ Tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </div>
+ </article>
+</body>
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/engadget/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/engadget/expected-images.json
new file mode 100644
index 000000000..f3993407b
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/engadget/expected-images.json
@@ -0,0 +1,14 @@
+[
+ "https:\/\/o.aolcdn.com\/images\/dims?crop=1600%2C943%2C0%2C0&quality=85&format=jpg&resize=1600%2C943&image_uri=http%3A%2F%2Fo.aolcdn.com%2Fhss%2Fstorage%2Fmidas%2Fd457f269d1400106a402302a310de800%2F205826071%2FXbox%2BOne%2BX%2Breview%2Bgallery%2B1.jpg&client=a1acac3e1b3290917d92&signature=9fa7b29452763464190c6edff6822489df516d1b",
+ "https:\/\/o.aolcdn.com\/images\/dims?thumbnail=45%2C45&quality=80&image_uri=http%3A%2F%2Fwww.blogcdn.com%2Fwww.engadget.com%2Fmedia%2F2016%2F03%2Fdevindra-engadget-headshot-small.jpg&client=cbc79c14efcebee57402&signature=e6ffba7468c380581b6589a70ce5d7c1ec40cd1d",
+ "https:\/\/o.aolcdn.com\/images\/dims?thumbnail=980%2C653&quality=80&image_uri=https%3A%2F%2Fs.blogcdn.com%2Fslideshows%2Fimages%2Fslides%2F714%2F208%2F8%2FS7142088%2Fslug%2Fl%2Fxbox-one-x-review-gallery-1-1.jpg&client=cbc79c14efcebee57402&signature=9bb08b52e12de8e4060f863a52c613489529818d",
+ "https:\/\/o.aolcdn.com\/images\/dims?crop=1600%2C1067%2C0%2C0&quality=85&format=jpg&resize=1600%2C1067&image_uri=http%3A%2F%2Fo.aolcdn.com%2Fhss%2Fstorage%2Fmidas%2F93beb86758ae1cf95721699e1e006e35%2F205826074%2FXbox%2BOne%2BX%2Breview%2Bgallery%2B7.jpg&client=a1acac3e1b3290917d92&signature=c0f2d36259c2c1decfb60aae364527cda2560d4a",
+ "https:\/\/o.aolcdn.com\/images\/dims?crop=1600%2C949%2C0%2C0&quality=85&format=jpg&resize=1600%2C949&image_uri=http%3A%2F%2Fo.aolcdn.com%2Fhss%2Fstorage%2Fmidas%2F9ece7fdad1e7025dec06ac9bf98688d0%2F205826075%2FXbox%2BOne%2BX%2Breview%2Bgallery%2B5.jpg&client=a1acac3e1b3290917d92&signature=9913883753141e7df322616bfe0bc41c6ecd80c8",
+ "https:\/\/o.aolcdn.com\/images\/dims?resize=980%2C640&quality=100&image_uri=https%3A%2F%2Fo.aolcdn.com%2Fimages%2Fdims%3Fcrop%3D1599%252C1043%252C0%252C0%26quality%3D85%26format%3Djpg%26resize%3D1600%252C1043%26image_uri%3Dhttp%253A%252F%252Fo.aolcdn.com%252Fhss%252Fstorage%252Fmidas%252F8b98ec8f6649158fe7448ac2f2695ac5%252F205826072%252FXbox%252BOne%252BX%252Breview%252Bgallery%252B6.jpg%26client%3Da1acac3e1b3290917d92%26signature%3D353dad1308f98c2c9dfc82c58a540a8b2f1fe63c&client=cbc79c14efcebee57402&signature=60b7c061460d0d45f5d367b8a9c62978af6b76ce",
+ "https:\/\/o.aolcdn.com\/images\/dims?resize=980%2C640&quality=100&image_uri=https%3A%2F%2Fo.aolcdn.com%2Fimages%2Fdims%3Fcrop%3D1600%252C900%252C0%252C0%26quality%3D85%26format%3Djpg%26resize%3D1600%252C900%26image_uri%3Dhttp%253A%252F%252Fo.aolcdn.com%252Fhss%252Fstorage%252Fmidas%252F1885534bd201fc37481b806645c1fc8b%252F205828119%252FXbox%252Bone%252BX%252Bscreenshot%252Bgallery%252B8.jpg%26client%3Da1acac3e1b3290917d92%26signature%3Df63cf67c88b37fd9424855984e45f6b950c8c11a&client=cbc79c14efcebee57402&signature=0adca80fc8ee26a7353be639082881450a5ad49f",
+ "https:\/\/o.aolcdn.com\/images\/dims?crop=1600%2C900%2C0%2C0&quality=85&format=jpg&resize=1600%2C900&image_uri=http%3A%2F%2Fo.aolcdn.com%2Fhss%2Fstorage%2Fmidas%2F8352a8a14e88e2ca2ba5be4d8381a055%2F205828115%2FXbox%2Bone%2BX%2Bscreenshot%2Bgallery%2B1.jpg&client=a1acac3e1b3290917d92&signature=d2ccb22e0eaabeb05bfe46e83dbe26fd07f01da8",
+ "https:\/\/o.aolcdn.com\/images\/dims?thumbnail=980%2C653&quality=80&image_uri=https%3A%2F%2Fs.blogcdn.com%2Fslideshows%2Fimages%2Fslides%2F714%2F292%2F4%2FS7142924%2Fslug%2Fl%2Fxbox-one-x-screenshot-gallery-2-1.jpg&client=cbc79c14efcebee57402&signature=38c95635c7aad58a8a48038e05589f5cf35b1e28",
+ "https:\/\/o.aolcdn.com\/images\/dims?crop=1600%2C900%2C0%2C0&quality=85&format=jpg&resize=1600%2C900&image_uri=http%3A%2F%2Fo.aolcdn.com%2Fhss%2Fstorage%2Fmidas%2Facb08903fbe26ad77b80db8c8e7e8fb1%2F205828118%2FXbox%2Bone%2BX%2Bscreenshot%2Bgallery%2B7.jpg&client=a1acac3e1b3290917d92&signature=21630fa5ec6d8fdce2c35f7e1f652636a2d8efe7",
+ "https:\/\/o.aolcdn.com\/images\/dims?resize=980%2C640&quality=100&image_uri=https%3A%2F%2Fo.aolcdn.com%2Fimages%2Fdims%3Fcrop%3D1600%252C1027%252C0%252C0%26quality%3D85%26format%3Djpg%26resize%3D1600%252C1027%26image_uri%3Dhttp%253A%252F%252Fo.aolcdn.com%252Fhss%252Fstorage%252Fmidas%252Fa2c8ba1caccdbb9e0559797e5141eafd%252F205826078%252FXbox%252BOne%252BX%252Breview%252Bgallery%252B11.jpg%26client%3Da1acac3e1b3290917d92%26signature%3Da11bcddced805c6e3698f8ce0494102aef057265&client=cbc79c14efcebee57402&signature=1e9bd192add2772bc842a34e67b7572cfd1b265a",
+ "https:\/\/o.aolcdn.com\/images\/dims?crop=1600%2C1028%2C0%2C0&quality=85&format=jpg&resize=1600%2C1028&image_uri=http%3A%2F%2Fo.aolcdn.com%2Fhss%2Fstorage%2Fmidas%2F5396460ef8b6bde7fb7272d9e66a7701%2F205826076%2FXbox%2BOne%2BX%2Breview%2Bgallery%2B9.jpg&client=a1acac3e1b3290917d92&signature=f5b5b4b986c2f8b5031a4469ae0ecec82aff65b0"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/engadget/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/engadget/expected-metadata.json
new file mode 100644
index 000000000..3eb49bef2
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/engadget/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "The Xbox One X is the most powerful gaming console ever, but it's not for everyone yet.",
+ "Image": "https:\/\/o.aolcdn.com\/images\/dims?crop=1600%2C943%2C0%2C0&quality=85&format=jpg&resize=1600%2C943&image_uri=http%3A%2F%2Fo.aolcdn.com%2Fhss%2Fstorage%2Fmidas%2Fd457f269d1400106a402302a310de800%2F205826071%2FXbox%2BOne%2BX%2Breview%2Bgallery%2B1.jpg&client=a1acac3e1b3290917d92&signature=9fa7b29452763464190c6edff6822489df516d1b",
+ "Title": "Xbox One X review: A console that keeps up with gaming PCs",
+ "SiteName": "Engadget"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/engadget/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/engadget/expected.html
new file mode 100644
index 000000000..44a2afe0d
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/engadget/expected.html
@@ -0,0 +1,479 @@
+<div role="main"><nav data-behavior="ContextNav" data-context-nav-offset="200">
+ </nav><header>
+ <p>
+
+ <h2> But only hardcore
+ gamers will appreciate it. </h2>
+ </p>
+ <div>
+ <div>
+ <div>
+
+ <div>
+ <p><a href="http://fakehost/about/editors/devindra-hardawar/">
+ <img src="https://o.aolcdn.com/images/dims?thumbnail=45%2C45&amp;quality=80&amp;image_uri=http%3A%2F%2Fwww.blogcdn.com%2Fwww.engadget.com%2Fmedia%2F2016%2F03%2Fdevindra-engadget-headshot-small.jpg&amp;client=cbc79c14efcebee57402&amp;signature=e6ffba7468c380581b6589a70ce5d7c1ec40cd1d"></img></a></p>
+ </div>
+
+ </div>
+
+
+
+ </div>
+ </div>
+ </header><div data-behavior="BreakoutsHandler">
+ <div>
+
+ <div>
+ <article><div data-behavior="trigger_contents_nav" id="page_body">
+ <div>
+
+ <div data-behavior="FitVids ">
+
+
+ <div>
+ <div>
+ <div>
+ <div data-behavior="Dropcap">
+ <p>The <a href="https://www.engadget.com/2017/06/13/the-xbox-one-x-is-aspirational-in-the-purest-sense-of-the-word/">Xbox
+ One X</a> is the ultimate video game system. It sports
+ more horsepower than any system ever. And it plays more
+ titles in native 4K than <a href="https://www.engadget.com/2016/11/07/sony-playstation-4-pro-review/">Sony's
+ PlayStation 4 Pro</a>. It's just about everything
+ you could want without investing in a gaming PC. The
+ only problem? It's now been a year since the PS4 Pro
+ launched, and the One X costs $500, while Sony's console
+ launched at $400. That high price limits the Xbox One X
+ to diehard Microsoft fans who don't mind paying a bit
+ more to play the console's exclusive titles in 4K.
+ Everyone else might be better off waiting, or opting for
+ the $279 <a href="https://www.engadget.com/2016/08/02/xbox-one-s-review/">Xbox
+ One S</a>. </p>
+
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div>
+ <div>
+ <div>
+ <section><h4> Gallery: Xbox One
+ X | 14 Photos </h4>
+ <div data-behavior="lightbox_trigger" data-eng-bang="{&quot;gallery&quot;:803271,&quot;slide&quot;:7142088,&quot;index&quot;:0}" data-eng-mn="93511844" data-engadget-slideshow-id="803271"><p><a data-eng-bang="{&quot;gallery&quot;:803271,&quot;slide&quot;:7142088,&quot;index&quot;:0}" data-engadget-slide-id="7142088" data-index="0" href="#">
+ <img src="https://o.aolcdn.com/images/dims?thumbnail=980%2C653&amp;quality=80&amp;image_uri=https%3A%2F%2Fs.blogcdn.com%2Fslideshows%2Fimages%2Fslides%2F714%2F208%2F8%2FS7142088%2Fslug%2Fl%2Fxbox-one-x-review-gallery-1-1.jpg&amp;client=cbc79c14efcebee57402&amp;signature=9bb08b52e12de8e4060f863a52c613489529818d"></img></a></p>
+ </div>
+ </section></div>
+ </div>
+ </div>
+
+
+ <div>
+ <div>
+ <div>
+
+
+ <div>
+
+ <div>
+ <div>
+
+ <ul><li>Most
+ powerful hardware ever in a home console
+ </li>
+ <li>Solid
+ selection of enhanced titles
+ </li>
+ <li>4K Blu-ray
+ drive is great for movie fans
+ </li>
+ </ul></div>
+ <div>
+
+ <ul><li>Expensive
+ </li>
+ <li>Not worth
+ it if you don’t have a 4K TV
+ </li>
+ <li>Still no VR
+ support
+ </li>
+ </ul></div>
+ </div>
+ </div>
+ <div>
+
+ <p>As promised, the Xbox One X is the
+ most powerful game console ever. In practice, though, it
+ really just puts Microsoft on equal footing with Sony’s
+ PlayStation 4 Pro. 4K/HDR enhanced games look great, but
+ it’s lack of VR is disappointing in 2017.</p>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div>
+
+ <div>
+ <div>
+ <div>
+ <div>
+ <h3>Hardware</h3>
+ <p><img alt="" data-credit="Devindra Hardawar/AOL" data-mep="2181678" src="https://o.aolcdn.com/images/dims?crop=1600%2C1067%2C0%2C0&amp;quality=85&amp;format=jpg&amp;resize=1600%2C1067&amp;image_uri=http%3A%2F%2Fo.aolcdn.com%2Fhss%2Fstorage%2Fmidas%2F93beb86758ae1cf95721699e1e006e35%2F205826074%2FXbox%2BOne%2BX%2Breview%2Bgallery%2B7.jpg&amp;client=a1acac3e1b3290917d92&amp;signature=c0f2d36259c2c1decfb60aae364527cda2560d4a"></img></p>
+ <p>Despite all the power inside, the One X is
+ Microsoft's smallest console to date. It looks
+ similar to the Xbox One S, except it has an entirely
+ matte black case and is slightly slimmer. It's also
+ surprisingly dense -- the console weighs 8.4 pounds,
+ but it feels far heavier than you'd expect for its
+ size, thanks to all of its new hardware. The One S,
+ in comparison, weighs two pounds less.</p>
+ <p>The Xbox One X's real upgrades are under the hood. It
+ features an 8-core CPU running at 2.3Ghz, 12GB of
+ GDDR5 RAM, a 1 terabyte hard drive and an upgraded
+ AMD Polaris GPU with 6 teraflops of computing power.
+ The PS4 Pro has only 8GB of RAM and tops out at 4.2
+ teraflops. Microsoft's console is clearly faster.
+ That additional horsepower means the Xbox One X can
+ run more games in full native 4K than the Sony's
+ console.</p>
+ <p><img alt="" data-credit="Devindra Hardawar/AOL" data-mep="2182489" src="https://o.aolcdn.com/images/dims?crop=1600%2C949%2C0%2C0&amp;quality=85&amp;format=jpg&amp;resize=1600%2C949&amp;image_uri=http%3A%2F%2Fo.aolcdn.com%2Fhss%2Fstorage%2Fmidas%2F9ece7fdad1e7025dec06ac9bf98688d0%2F205826075%2FXbox%2BOne%2BX%2Breview%2Bgallery%2B5.jpg&amp;client=a1acac3e1b3290917d92&amp;signature=9913883753141e7df322616bfe0bc41c6ecd80c8"></img></p>
+ <p>Along the front, there's the slot-loading 4K Blu-ray
+ drive, a physical power button, a single USB port
+ and a controller pairing button. And around back,
+ there are HDMI out and in ports, the latter of which
+ lets you plug in your cable box. Additionally, there
+ are two USB ports, connections for optical audio, IR
+ out, and gigabit Ethernet. If you've still got a
+ Kinect around, you'll need to use a USB adapter to
+ plug it in.</p>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div>
+ <div>
+
+
+ <div data-engadget-breakout-type="image">
+ <figure><img src="https://o.aolcdn.com/images/dims?resize=980%2C640&amp;quality=100&amp;image_uri=https%3A%2F%2Fo.aolcdn.com%2Fimages%2Fdims%3Fcrop%3D1599%252C1043%252C0%252C0%26quality%3D85%26format%3Djpg%26resize%3D1600%252C1043%26image_uri%3Dhttp%253A%252F%252Fo.aolcdn.com%252Fhss%252Fstorage%252Fmidas%252F8b98ec8f6649158fe7448ac2f2695ac5%252F205826072%252FXbox%252BOne%252BX%252Breview%252Bgallery%252B6.jpg%26client%3Da1acac3e1b3290917d92%26signature%3D353dad1308f98c2c9dfc82c58a540a8b2f1fe63c&amp;client=cbc79c14efcebee57402&amp;signature=60b7c061460d0d45f5d367b8a9c62978af6b76ce"></img><figcaption><span>Devindra Hardawar/AOL</span>
+ </figcaption></figure></div>
+ </div>
+ </div>
+ <div>
+ <div>
+ <div>
+ <div>
+ <p>The console's controller hasn't changed since its
+ last mini-upgrade with the Xbox One S. That revision
+ rounded out its seams, improved bumper performance
+ and added a 3.5mm headphone jack. It's still a great
+ controller, though I'm annoyed Microsoft is sticking
+ with AA batteries as their default power source.
+ Sure, you could just pick up some renewable
+ batteries, or the Play and Charge kit, but that's an
+ extra expense. And manually swapping batteries feels
+ like a bad user experience when every other console
+ has rechargeable controllers.</p>
+ <h3>In use</h3>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div>
+ <div>
+
+
+ <div data-engadget-breakout-type="image">
+ <figure><img src="https://o.aolcdn.com/images/dims?resize=980%2C640&amp;quality=100&amp;image_uri=https%3A%2F%2Fo.aolcdn.com%2Fimages%2Fdims%3Fcrop%3D1600%252C900%252C0%252C0%26quality%3D85%26format%3Djpg%26resize%3D1600%252C900%26image_uri%3Dhttp%253A%252F%252Fo.aolcdn.com%252Fhss%252Fstorage%252Fmidas%252F1885534bd201fc37481b806645c1fc8b%252F205828119%252FXbox%252Bone%252BX%252Bscreenshot%252Bgallery%252B8.jpg%26client%3Da1acac3e1b3290917d92%26signature%3Df63cf67c88b37fd9424855984e45f6b950c8c11a&amp;client=cbc79c14efcebee57402&amp;signature=0adca80fc8ee26a7353be639082881450a5ad49f"></img><figcaption><span>Devindra Hardawar/AOL</span>
+ </figcaption></figure></div>
+ </div>
+ </div>
+ <div>
+ <div>
+ <div>
+ <div>
+ <p>You won't find any major differences between the One
+ X and the last Xbox at first — aside from a more
+ dramatic startup sequence. Navigating the Xbox
+ interface is fast and zippy, but mostly that's due
+ to a recent OS upgrade. If you're moving over from
+ an older Xbox One, you can use the backup tool to
+ transfer your games and settings to an external hard
+ drive. Just plug that into the new console during
+ setup and it'll make it feel just like your old
+ machine. It's also a lot faster than waiting for
+ everything to download from Xbox Live.</p>
+ <p>You'll still have to set aside some time if you want
+ to play an Xbox One X-enhanced title, though. Those
+ 4K textures will make games significantly larger,
+ but Microsoft says it's come up with a few ways to
+ help developers make downloading them more
+ efficient. For example, language packs and other
+ optional content won't get installed by default.</p>
+ <p>We only had a few enhanced titles to test out during
+ our review: <em>Gears of War 4</em>, <em>Killer
+ Instinct</em> and <em>Super Lucky's Tale</em>.
+ They each took advantage of the console in different
+ ways. <em>Gears of War 4</em> runs natively in 4K at
+ 30 FPS with Dolby Atmos and HDR (high dynamic range
+ lighting) support. It looked great -- especially
+ with HDR, which highlighted bright elements like
+ lightning strikes -- but I noticed the frame rate
+ dip occasionally. I was also surprised that load
+ times were on-par with what I've seen with the game
+ on the Xbox One S.</p>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div>
+ <div>
+ <div data-engadget-breakout-type="e2ehero">
+
+ <div>
+ <div>
+ <div>
+ <div>
+
+ <figure><img src="https://o.aolcdn.com/images/dims?crop=1600%2C900%2C0%2C0&amp;quality=85&amp;format=jpg&amp;resize=1600%2C900&amp;image_uri=http%3A%2F%2Fo.aolcdn.com%2Fhss%2Fstorage%2Fmidas%2F8352a8a14e88e2ca2ba5be4d8381a055%2F205828115%2FXbox%2Bone%2BX%2Bscreenshot%2Bgallery%2B1.jpg&amp;client=a1acac3e1b3290917d92&amp;signature=d2ccb22e0eaabeb05bfe46e83dbe26fd07f01da8"></img><div>
+ <div>
+ <div>
+
+ </div>
+ </div>
+ </div>
+ </figure></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div>
+ <div>
+ <div>
+ <div>
+ <p>You can also play in Performance mode, which bumps
+ the frame rate up to 60FPS and uses higher quality
+ graphical effects, while rendering it lower in
+ 1080p. Personally, I preferred this, since it makes
+ the game much smoother -- as if you're playing it on
+ a high-end gaming PC, not a console. Some
+ PlayStation 4 Pro games also let you choose how you
+ wanted to distribute its power, so in some ways
+ Microsoft is just following in its footsteps.</p>
+ <p>I've been playing <em>Gears of War 4</em> on my
+ gaming PC (which is connected to my home theater)
+ over the past year, and I was impressed that the
+ Xbox One X is able to deliver a similar experience.
+ It didn't quite match my rig though, which is
+ powered by Intel Core i7 4790k CPU running at 4GHz,
+ 16GB DDR3 RAM and an NVIDIA GTX 1080 GPU. Typically,
+ I play at 1,440p (2,560 by 1,440 pixels) with HDR
+ and all of the graphical settings set to their
+ highest level, and I can easily maintain a 60FPS
+ frame rate. The One X felt just as solid at 1080p,
+ but there were clearly plenty of graphics settings
+ it couldn't take advantage of, in particular higher
+ levels of bloom lighting and shadow detail.</p>
+
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div>
+ <div>
+ <div data-engadget-breakout-type="gallery">
+ <section><h3> Gallery: Xbox
+ One X screenshots | 9 Photos </h3>
+ <div data-behavior="lightbox_trigger" data-eng-bang="{&quot;gallery&quot;:803330,&quot;slide&quot;:7142924}" data-eng-mn="93511844" data-engadget-slideshow-id="803330"><p><a data-eng-bang="{&quot;gallery&quot;:803330,&quot;slide&quot;:7142924}" data-engadget-slide-id="7142924" data-index="0" href="#">
+ <img src="https://o.aolcdn.com/images/dims?thumbnail=980%2C653&amp;quality=80&amp;image_uri=https%3A%2F%2Fs.blogcdn.com%2Fslideshows%2Fimages%2Fslides%2F714%2F292%2F4%2FS7142924%2Fslug%2Fl%2Fxbox-one-x-screenshot-gallery-2-1.jpg&amp;client=cbc79c14efcebee57402&amp;signature=38c95635c7aad58a8a48038e05589f5cf35b1e28"></img></a></p>
+ </div>
+ </section></div>
+ </div>
+ </div>
+ <div>
+ <div>
+ <div>
+ <div>
+ <p><em>Killer Instinct</em> and <em>Super Lucky's
+ Tale</em> run in 4K at a smooth 60FPS. They both
+ looked and played better than their standard
+ versions, though I was surprised they didn't take
+ advantage of HDR. As usual, I noticed the
+ improvement in frame rates more than the higher
+ resolution. Unless you're sitting very close to a TV
+ above 50-inches, you'd likely have a hard time
+ telling between 4K and 1080p.</p>
+ <p>That poses a problem for Microsoft: It's betting that
+ gamers will actually want true 4K rendering. In
+ practice, though, PlayStation 4 Pro titles running
+ in HDR and resolutions between 1080p and 4K often
+ look just as good to the naked eye. The Xbox One X's
+ big advantage is that its hardware could let more
+ games reach 60FPS compared to Sony's console.</p>
+ <p>Microsoft says over 130 Xbox One X-enhanced titles
+ are in the works. That includes already-released
+ games like <em>Forza Motorsport 7</em> and <em>Assassin's
+ Creed Origins</em>, as well as upcoming titles
+ like <em>Call of Duty: WW2</em>. You'll be able to
+ find them easily in a special section in the Xbox
+ store. There is also a handful of Xbox 360 games
+ that'll get enhanced eventually, including <em>Halo
+ 3</em> and <em>Fallout 3</em>. Some of those
+ titles will get bumped up to a higher resolution,
+ while others will get HDR support. Microsoft
+ describes these upgrades as a bonus for developers
+ who were prescient about how they built their games.
+ Basically, don't expect your entire 360 library to
+ get enhanced.</p>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div>
+ <div>
+ <div data-engadget-breakout-type="e2ehero">
+
+ <div>
+ <div>
+ <div>
+ <div>
+
+ <figure><img src="https://o.aolcdn.com/images/dims?crop=1600%2C900%2C0%2C0&amp;quality=85&amp;format=jpg&amp;resize=1600%2C900&amp;image_uri=http%3A%2F%2Fo.aolcdn.com%2Fhss%2Fstorage%2Fmidas%2Facb08903fbe26ad77b80db8c8e7e8fb1%2F205828118%2FXbox%2Bone%2BX%2Bscreenshot%2Bgallery%2B7.jpg&amp;client=a1acac3e1b3290917d92&amp;signature=21630fa5ec6d8fdce2c35f7e1f652636a2d8efe7"></img><div>
+ <div>
+ <div>
+
+ </div>
+ </div>
+ </div>
+ </figure></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div>
+ <div>
+ <div>
+ <div>
+ <p>Even if a game isn't specifically tuned for the new
+ console, Microsoft says you might still see some
+ performance improvements. The PlayStation 4 Pro,
+ meanwhile, has over one hundred games built for its
+ hardware, and its boost mode can speed up some older
+ games.</p>
+ <p>Microsoft is still pushing the Xbox as more than just
+ a game console, though. 4K Blu-rays loaded up
+ quickly, and I didn't notice many delays as I
+ skipped around films. <em>Planet Earth II</em>, in
+ particular, looked fantastic thanks to its brilliant
+ use of HDR. Unfortunately, the One X doesn't support
+ Dolby Vision, so you're stuck with the slightly less
+ capable HDR 10 standard. That makes sense since it's
+ more widely supported, but it would have been nice
+ to see Dolby's, too.</p>
+ <p>
+ <iframe allowfullscreen="" frameborder="0" gesture="media" height="360" src="https://www.youtube.com/embed/c8aFcHFu8QM" width="640"></iframe>
+ </p>
+ <p>And speaking of Dolby technology, Microsoft is also
+ highlighting Atmos support on the One X, just like
+ it did with the One S. The company's app lets you
+ configure the console to pass audio Atmos signals to
+ your audio receiver. You can also shell out $15 to
+ get Atmos support for headphones, which simulates
+ immersive surround sound. It's strange to pay money
+ to unlock Dolby features, but it's worth it since
+ it's significantly better than Microsoft's audio
+ virtualization technology. The Netflix app also
+ supports Atmos for a handful of films (something
+ that the Xbox One S and PlayStation 4 offer, as
+ well).</p>
+ <p>One thing you won't find in the new Xbox is VR
+ support. Microsoft has mentioned that the console
+ will offer some sort of mixed reality, but it hasn't
+ offered up any details yet. It's technically
+ powerful enough to work with any of the Windows
+ Mixed Reality headsets launching this fall. It's a
+ shame that Microsoft is being so wishy-washy because
+ Sony has had a very successful head start with the
+ PlayStation VR.</p>
+ <h3>Pricing and the competition</h3>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div>
+ <div>
+
+
+ <div data-engadget-breakout-type="image">
+ <figure><img src="https://o.aolcdn.com/images/dims?resize=980%2C640&amp;quality=100&amp;image_uri=https%3A%2F%2Fo.aolcdn.com%2Fimages%2Fdims%3Fcrop%3D1600%252C1027%252C0%252C0%26quality%3D85%26format%3Djpg%26resize%3D1600%252C1027%26image_uri%3Dhttp%253A%252F%252Fo.aolcdn.com%252Fhss%252Fstorage%252Fmidas%252Fa2c8ba1caccdbb9e0559797e5141eafd%252F205826078%252FXbox%252BOne%252BX%252Breview%252Bgallery%252B11.jpg%26client%3Da1acac3e1b3290917d92%26signature%3Da11bcddced805c6e3698f8ce0494102aef057265&amp;client=cbc79c14efcebee57402&amp;signature=1e9bd192add2772bc842a34e67b7572cfd1b265a"></img><figcaption><span>Devindra Hardawar/AOL</span>
+ </figcaption></figure></div>
+ </div>
+ </div>
+ <div>
+ <div>
+ <div>
+ <div>
+ <p>The biggest knock against the Xbox One X is its $500
+ price. The PS4 Pro launched at $400 last year, and
+ there's a good chance we'll see plenty of deals
+ around the holidays. If your friends are on Xbox
+ Live, or you're a devotee of Microsoft's first party
+ franchises, then the X makes more sense. If you just
+ want to play third-party titles that come to both
+ platforms, though, the PS4 Pro is clearly the better
+ deal.</p>
+ <p>If you're looking to upgrade from an original Xbox
+ One, and you have a new TV, the One X might be more
+ compelling. It's faster and offers more features
+ than the One S, and more importantly, it'll last you
+ much longer without needing an upgrade. There's also
+ plenty of wisdom in simply waiting a while before
+ you buy the One X, especially if you haven't moved
+ to a 4K TV yet. The new console can make games look
+ better on 1080p sets, since it'll supersample
+ high-res textures and have more graphical effects,
+ but it's simply not worth the upgrade since those
+ TVs don't support HDR.</p>
+ <p>If price isn't a huge concern for you, it's worth
+ considering investing in a gaming PC. A decent one
+ costs between $600 and $800, plus the price of a
+ monitor, but it'll easily be more powerful than the
+ One X. And you have the added benefit of upgrading
+ components down the line. Now that Microsoft and
+ game publishers are offering most major titles on
+ PC, you won't be missing out on much by ditching
+ consoles.</p>
+ <h3>Wrap-up</h3>
+ <p><img alt="" data-credit="Devindra Hardawar/AOL" data-mep="2181681" src="https://o.aolcdn.com/images/dims?crop=1600%2C1028%2C0%2C0&amp;quality=85&amp;format=jpg&amp;resize=1600%2C1028&amp;image_uri=http%3A%2F%2Fo.aolcdn.com%2Fhss%2Fstorage%2Fmidas%2F5396460ef8b6bde7fb7272d9e66a7701%2F205826076%2FXbox%2BOne%2BX%2Breview%2Bgallery%2B9.jpg&amp;client=a1acac3e1b3290917d92&amp;signature=f5b5b4b986c2f8b5031a4469ae0ecec82aff65b0"></img></p>
+ <p>Ultimately, the Xbox One X offers some major
+ performance upgrades that gamers will notice --
+ especially if you're coming from an original Xbox
+ One. But it's also a bit disappointing since it's
+ coming a year after the PS4 Pro, and it doesn't
+ offer VR yet. For Microsoft fans, though, none of
+ that will matter. It's exactly what the company
+ promised: the fastest game console ever made.</p>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ </div>
+ </div>
+ </div>
+ </div>
+ </article></div>
+ </div>
+ </div>
+
+ <p>
+ <h2> From around the web </h2>
+ </p>
+
+
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/engadget/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/engadget/source.html
new file mode 100644
index 000000000..2bed80809
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/engadget/source.html
@@ -0,0 +1,3513 @@
+<html lang="en">
+
+<head>
+ <meta charset="UTF-8"></meta>
+ <meta http-equiv="cache-control" content="no-cache"></meta>
+ <meta http-equiv="cache-control" content="no-store"></meta>
+ <meta http-equiv="expires" content="0"></meta>
+ <meta http-equiv="pragma" content="no-cache"></meta>
+ <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"></meta>
+ <script src="https://o.aolcdn.com/ads/adsWrapper.min.js"></script>
+ <!-- Rapid -->
+ <script src="https://s.yimg.com/ss/rapid-3.45.0.js"></script>
+ <script>
+ var rapidConfig = {
+ spaceid: 1197802876,
+ nol: true,
+ keys: {
+ "pt": "content",
+ "pct": "story",
+ "paid": "engadget_479=bsd:23265143",
+ "st_sec": "us.engadget",
+ "ver": "blogsmith"
+ },
+ webworker_file: 'https://s.blogsmithmedia.com/www.engadget.com/assets-h159e8c9b49d08fd74b1f658dac6e12df/js/rapidworker-1.2.js'
+ };
+ var myRapidInstance = new YAHOO.i13n.Rapid(rapidConfig);
+ </script>
+ <!-- End Rapid -->
+ <meta http-equiv="content-type" content="text/html"></meta>
+ <link rel="stylesheet"
+ href="https://s.blogsmithmedia.com/www.engadget.com/assets-h159e8c9b49d08fd74b1f658dac6e12df/css/split/styles.css?h=d85ad52bbabf0f534ab4b3baf22e8900"></link>
+ <title>Xbox One X review: A console that keeps up with gaming PCs</title>
+ <link rel="amphtml" href="https://www.engadget.com/amp/2017/11/03/xbox-one-x-review/"></link>
+ <meta name="description"
+ content="The Xbox One X is the ultimate video game system. It sports more horsepower than any system ever. And it plays more titles in native 4K than Sony's PlayStation..."></meta>
+ <link rel="canonical" href="https://www.engadget.com/2017/11/03/xbox-one-x-review/"></link>
+ <meta property="og:type" content="article"></meta>
+ <meta property="og:url" content="https://www.engadget.com/2017/11/03/xbox-one-x-review/"></meta>
+ <meta property="og:title" content="Xbox One X review: A console that keeps up with gaming PCs"></meta>
+ <meta property="og:description"
+ content="The Xbox One X is the most powerful gaming console ever, but it's not for everyone yet."></meta>
+ <meta property="og:image"
+ content="https://o.aolcdn.com/images/dims?thumbnail=1200%2C630&amp;quality=80&amp;image_uri=https%3A%2F%2Fo.aolcdn.com%2Fimages%2Fdims%3Fcrop%3D1600%252C943%252C0%252C0%26quality%3D85%26format%3Djpg%26resize%3D1600%252C943%26image_uri%3Dhttp%253A%252F%252Fo.aolcdn.com%252Fhss%252Fstorage%252Fmidas%252Fd457f269d1400106a402302a310de800%252F205826071%252FXbox%252BOne%252BX%252Breview%252Bgallery%252B1.jpg%26client%3Da1acac3e1b3290917d92%26signature%3D9fa7b29452763464190c6edff6822489df516d1b&amp;client=cbc79c14efcebee57402&amp;signature=ab988e814a2686e0d93dd7ae306d241356fb7b9c"></meta>
+ <meta property="og:image:width" content="1200"></meta>
+ <meta property="og:image:height" content="630"></meta>
+ <meta property="article:tag" content="av"></meta>
+ <meta property="article:tag" content="consoles"></meta>
+ <meta property="article:tag" content="entertainment"></meta>
+ <meta property="article:tag" content="gadgetry"></meta>
+ <meta property="article:tag" content="gadgets"></meta>
+ <meta property="article:tag" content="gaming"></meta>
+ <meta property="article:tag" content="gear"></meta>
+ <meta property="article:tag" content="microsoft"></meta>
+ <meta property="article:tag" content="review"></meta>
+ <meta property="article:tag" content="video"></meta>
+ <meta property="article:tag" content="videogames"></meta>
+ <meta property="article:tag" content="Xbox"></meta>
+ <meta property="article:tag" content="XboxOne"></meta>
+ <meta property="article:tag" content="XboxOneX"></meta>
+ <meta name="post_id" content="23265143"></meta>
+ <meta property="article:author" content="devindra"></meta>
+ <meta name="robots" content="noodp,noydir"></meta>
+ <meta class="swiftype" name="sections" data-type="string" content=""></meta>
+ <meta name="twitter:card" content="summary_large_image"></meta>
+ <meta name="twitter:site" content="@engadget"></meta>
+ <meta name="twitter:url" content="https://www.engadget.com/2017/11/03/xbox-one-x-review/"></meta>
+ <meta name="twitter:title" content="Xbox One X review: A console that keeps up with gaming PCs"></meta>
+ <meta name="twitter:description"
+ content="The Xbox One X is the ultimate video game system. It sports more horsepower than any system ever. And it plays more titles in native 4K than Sony's PlayStation..."></meta>
+ <meta name="twitter:image"
+ content="https://o.aolcdn.com/images/dims?crop=1600%2C943%2C0%2C0&amp;quality=85&amp;format=jpg&amp;resize=1600%2C943&amp;image_uri=http%3A%2F%2Fo.aolcdn.com%2Fhss%2Fstorage%2Fmidas%2Fd457f269d1400106a402302a310de800%2F205826071%2FXbox%2BOne%2BX%2Breview%2Bgallery%2B1.jpg&amp;client=a1acac3e1b3290917d92&amp;signature=9fa7b29452763464190c6edff6822489df516d1b"></meta>
+ <meta name="twitter:creator" content="@devindra"></meta>
+ <meta name="twitter:app:name:iphone" content="Engadget for iPhone"></meta>
+ <meta name="twitter:app:url:iphone" content="com.aol.engadget://www.engadget.com/2017/11/03/xbox-one-x-review/"></meta>
+ <meta name="twitter:app:name:ipad" content="Engadget for iPad"></meta>
+ <meta name="twitter:app:url:ipad"
+ content="com.aol.appspinner.engadget://www.engadget.com/2017/11/03/xbox-one-x-review/"></meta>
+ <meta name="twitter:app:id:googleplay" content="com.aol.mobile.engadget"></meta>
+ <meta name="twitter:app:name:googleplay" content="Engadget"></meta>
+ <meta name="twitter:app:url:googleplay" content="engadget://xbox-one-x-review"></meta>
+ <meta name="activeEdition" content="irl"></meta>
+ <meta name="google-site-verification" content="wLXjbTY6pixubu5bTDip5LFbmV3y14B-1FuGRBA608U"></meta>
+ <meta name="google-site-verification" content="tWejEOjeALosEomCYTYn5Ps9e_bfdSDFep3l5tdwP30"></meta>
+ <meta name="google-site-verification" content="1GwTnKM_I1dlzvY6ZgkdMD7npjzC-zbHHs9BXlA8BrI"></meta>
+ <meta name="bitly-verification" content="f57da7265213"></meta>
+ <meta name="p:domain_verify" content="fb69533f2acad78bdd89abf093c35a28"></meta>
+ <meta name="msvalidate.01" content="5ABD8A078F3356F3A6A8C8643C31FB8F"></meta>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"></meta>
+ <meta name="apple-mobile-web-app-status-bar-style" content="black"></meta>
+ <meta name="application-name" content="Engadget"></meta>
+ <meta property="fb:pages" content="5738237369"></meta>
+ <meta property="fb:admins" content="11710688"></meta>
+ <meta property="fb:app_id" content="132746074315"></meta>
+ <meta property="og:locale" content="en_US"></meta>
+ <meta property="og:site_name" content="Engadget"></meta>
+ <meta name="application-name" content="Engadget"></meta>
+ <meta name="msapplication-TileColor" content="#2B2D32"></meta>
+ <meta name="msapplication-TileImage"
+ content="https://s.blogsmithmedia.com/www.engadget.com/assets-h159e8c9b49d08fd74b1f658dac6e12df/images/eng-e-558.png?h=e46e7a1510fad56707bc442189dbb7bd"></meta>
+ <meta name="msapplication-square70x70logo"
+ content="https://s.blogsmithmedia.com/www.engadget.com/assets-h159e8c9b49d08fd74b1f658dac6e12df/images/eng-e-128.png?h=899847bb37304e3b3dc54c93580a087c"></meta>
+ <meta name="msapplication-square150x150logo"
+ content="https://s.blogsmithmedia.com/www.engadget.com/assets-h159e8c9b49d08fd74b1f658dac6e12df/images/eng-e-270.png?h=d343c1055c3eded8aa8f05c2d42dcaed"></meta>
+ <meta name="msapplication-wide310x150logo"
+ content="https://s.blogsmithmedia.com/www.engadget.com/assets-h159e8c9b49d08fd74b1f658dac6e12df/images/eng-e-558x270.png?h=61de5b820dbedd7eba8bb1b0fd08ce57"></meta>
+ <meta name="msapplication-square310x310logo"
+ content="https://s.blogsmithmedia.com/www.engadget.com/assets-h159e8c9b49d08fd74b1f658dac6e12df/images/eng-e-558.png?h=e46e7a1510fad56707bc442189dbb7bd"></meta>
+ <meta name="msapplication-notification"
+ content="frequency=30;polling-uri=https://notifications.buildmypinnedsite.com/?feed=https://www.engadget.com/rss.xml&amp;id=1;polling-uri2=https://notifications.buildmypinnedsite.com/?feed=https://www.engadget.com/rss.xml&amp;id=2;polling-uri3=https://notifications.buildmypinnedsite.com/?feed=https://www.engadget.com/rss.xml&amp;id=3;polling-uri4=https://notifications.buildmypinnedsite.com/?feed=https://www.engadget.com/rss.xml&amp;id=4;polling-uri5=https://notifications.buildmypinnedsite.com/?feed=https://www.engadget.com/rss.xml&amp;id=5; cycle=1"></meta>
+ <link rel="alternate" type="application/rss+xml" title="Engadget" href="//www.engadget.com/rss.xml"></link>
+ <link rel="apple-touch-icon" sizes="57x57"
+ href="https://s.blogsmithmedia.com/www.engadget.com/assets-h159e8c9b49d08fd74b1f658dac6e12df/images/apple-touch-icon-57x57.png?h=b07835531d7826b72615c77771a72171"></link>
+ <link rel="apple-touch-icon" sizes="114x114"
+ href="https://s.blogsmithmedia.com/www.engadget.com/assets-h159e8c9b49d08fd74b1f658dac6e12df/images/apple-touch-icon-114x114.png?h=50cf09ab299e153bf29c8649d827c83a"></link>
+ <link rel="apple-touch-icon" sizes="72x72"
+ href="https://s.blogsmithmedia.com/www.engadget.com/assets-h159e8c9b49d08fd74b1f658dac6e12df/images/apple-touch-icon-72x72.png?h=8f37a2b779de4fbfe1a7874704cc01e2"></link>
+ <link rel="apple-touch-icon" sizes="144x144"
+ href="https://s.blogsmithmedia.com/www.engadget.com/assets-h159e8c9b49d08fd74b1f658dac6e12df/images/apple-touch-icon-144x144.png?h=de656b4889f628881dabd59b88d24460"></link>
+ <link rel="apple-touch-icon" sizes="60x60"
+ href="https://s.blogsmithmedia.com/www.engadget.com/assets-h159e8c9b49d08fd74b1f658dac6e12df/images/apple-touch-icon-60x60.png?h=30dc9d03897d7b5e1c7d66ea023a628d"></link>
+ <link rel="apple-touch-icon" sizes="120x120"
+ href="https://s.blogsmithmedia.com/www.engadget.com/assets-h159e8c9b49d08fd74b1f658dac6e12df/images/apple-touch-icon-120x120.png?h=232a14b1a350de05a49b584a62abac9e"></link>
+ <link rel="apple-touch-icon" sizes="76x76"
+ href="https://s.blogsmithmedia.com/www.engadget.com/assets-h159e8c9b49d08fd74b1f658dac6e12df/images/apple-touch-icon-76x76.png?h=41c7920a7654ebebc6827434c8563668"></link>
+ <link rel="apple-touch-icon" sizes="152x152"
+ href="https://s.blogsmithmedia.com/www.engadget.com/assets-h159e8c9b49d08fd74b1f658dac6e12df/images/apple-touch-icon-152x152.png?h=443922d02603331286171a9bbc12fadd"></link>
+ <link rel="icon" type="image/png"
+ href="https://s.blogsmithmedia.com/www.engadget.com/assets-h159e8c9b49d08fd74b1f658dac6e12df/images/favicon-16x16.png?h=288a0831497b5dbbde1fdb670dc8a62c"
+ sizes="16x16"></link>
+ <link rel="icon" type="image/png"
+ href="https://s.blogsmithmedia.com/www.engadget.com/assets-h159e8c9b49d08fd74b1f658dac6e12df/images/favicon-32x32.png?h=876ea6dda580d9954a93627f24b6b25b"
+ sizes="32x32"></link>
+ <link rel="icon" type="image/png"
+ href="https://s.blogsmithmedia.com/www.engadget.com/assets-h159e8c9b49d08fd74b1f658dac6e12df/images/favicon-96x96.png?h=9680b5ecfb3de364248a4a98bf84664f"
+ sizes="96x96"></link>
+ <link rel="icon" type="image/png"
+ href="https://s.blogsmithmedia.com/www.engadget.com/assets-h159e8c9b49d08fd74b1f658dac6e12df/images/favicon-160x160.png?h=1638b0a8bbe7effa8f85c3ecabb63620"
+ sizes="160x160"></link>
+ <meta name="apple-touch-fullscreen" content="yes"></meta>
+ <link rel="dns-prefetch" href="//media.gdgt.com"></link>
+ <link rel="dns-prefetch" href="//ajax.googleapis.com"></link>
+ <link rel="search" type="application/opensearchdescription+xml" href="/osd.xml" title="Engadget"></link>
+ <script>
+ var _sf_startpt = (new Date()).getTime(),
+ Sitevars = {
+ geoCountry: "irl",
+ activeEdition: "irl"
+ };
+ </script>
+ <meta class="swiftype" name="blogger_name" data-type="string" content="Devindra Hardawar"></meta>
+ <meta class="swiftype" name="blogger_slug" data-type="enum" content="devindra-hardawar"></meta>
+ <meta class="swiftype" name="blogger_image" data-type="enum"
+ content="https://s.blogcdn.com/www.engadget.com/media/2016/03/devindra-engadget-headshot-small.jpg"></meta>
+ <meta class="swiftype" name="blogger_twitter" data-type="enum" content="devindra"></meta>
+ <meta class="swiftype" name="has_author" data-type="integer" content="1"></meta>
+ <meta class="swiftype" name="type" data-type="enum" content="reviews"></meta>
+ <meta class="swiftype" name="content_type_id" data-type="enum" content="23265143"></meta>
+ <meta class="swiftype" name="title" data-type="string"
+ content="Xbox One X review: A console that keeps up with gaming PCs"></meta>
+ <meta class="swiftype" name="main_tag_label" data-type="string" content="Gadgetry"></meta>
+ <meta class="swiftype" name="published_at" data-type="date" content="2017-11-03T03:01:00-04:00"></meta>
+ <meta class="swiftype" name="image" data-type="enum"
+ content="https://o.aolcdn.com/images/dims?crop=1600%2C943%2C0%2C0&amp;quality=85&amp;format=jpg&amp;resize=1600%2C943&amp;image_uri=http%3A%2F%2Fo.aolcdn.com%2Fhss%2Fstorage%2Fmidas%2Fd457f269d1400106a402302a310de800%2F205826071%2FXbox%2BOne%2BX%2Breview%2Bgallery%2B1.jpg&amp;client=a1acac3e1b3290917d92&amp;signature=9fa7b29452763464190c6edff6822489df516d1b"></meta>
+ <meta class="swiftype" name="thumbnail_url" data-type="enum"
+ content="https://o.aolcdn.com/images/dims?thumbnail=300%2C200&amp;quality=80&amp;image_uri=https%3A%2F%2Fo.aolcdn.com%2Fimages%2Fdims%3Fcrop%3D1600%252C943%252C0%252C0%26quality%3D85%26format%3Djpg%26resize%3D1600%252C943%26image_uri%3Dhttp%253A%252F%252Fo.aolcdn.com%252Fhss%252Fstorage%252Fmidas%252Fd457f269d1400106a402302a310de800%252F205826071%252FXbox%252BOne%252BX%252Breview%252Bgallery%252B1.jpg%26client%3Da1acac3e1b3290917d92%26signature%3D9fa7b29452763464190c6edff6822489df516d1b&amp;client=cbc79c14efcebee57402&amp;signature=44978fa251cd5f68b2f2d722afa2ea162cc35d35"></meta>
+ <meta class="swiftype" name="autocomplete_thumbnail_url" data-type="enum"
+ content="https://o.aolcdn.com/images/dims?thumbnail=130%2C86&amp;quality=80&amp;image_uri=https%3A%2F%2Fo.aolcdn.com%2Fimages%2Fdims%3Fcrop%3D1600%252C943%252C0%252C0%26quality%3D85%26format%3Djpg%26resize%3D1600%252C943%26image_uri%3Dhttp%253A%252F%252Fo.aolcdn.com%252Fhss%252Fstorage%252Fmidas%252Fd457f269d1400106a402302a310de800%252F205826071%252FXbox%252BOne%252BX%252Breview%252Bgallery%252B1.jpg%26client%3Da1acac3e1b3290917d92%26signature%3D9fa7b29452763464190c6edff6822489df516d1b&amp;client=cbc79c14efcebee57402&amp;signature=59500f8bfd9da79dd2445e808c704cd7ffcc4d20"></meta>
+ <meta class="swiftype" name="url" data-type="enum" content="/2017/11/03/xbox-one-x-review/"></meta>
+ <meta class="swiftype" name="dek" data-type="string" content="But only hardcore gamers will appreciate it."></meta>
+ <meta class="swiftype" name="has_video" data-type="integer" content="1"></meta>
+ <meta class="swiftype" name="has_gallery" data-type="integer" content="1"></meta>
+ <meta class="swiftype" name="has_video_and_gallery" data-type="integer" content="1"></meta>
+ <meta class="swiftype" name="popularity" data-type="integer" content="2192"></meta>
+ <meta class="swiftype" name="country_origin" data-type="string" content="origin-us"></meta>
+ <meta class="swiftype" name="tags" data-type="string" content="av"></meta>
+ <meta class="swiftype" name="tags" data-type="string" content="consoles"></meta>
+ <meta class="swiftype" name="tags" data-type="string" content="entertainment"></meta>
+ <meta class="swiftype" name="tags" data-type="string" content="gadgetry"></meta>
+ <meta class="swiftype" name="tags" data-type="string" content="gadgets"></meta>
+ <meta class="swiftype" name="tags" data-type="string" content="gaming"></meta>
+ <meta class="swiftype" name="tags" data-type="string" content="gear"></meta>
+ <meta class="swiftype" name="tags" data-type="string" content="microsoft"></meta>
+ <meta class="swiftype" name="tags" data-type="string" content="review"></meta>
+ <meta class="swiftype" name="tags" data-type="string" content="video"></meta>
+ <meta class="swiftype" name="tags" data-type="string" content="videogames"></meta>
+ <meta class="swiftype" name="tags" data-type="string" content="Xbox"></meta>
+ <meta class="swiftype" name="tags" data-type="string" content="XboxOne"></meta>
+ <meta class="swiftype" name="tags" data-type="string" content="XboxOneX"></meta>
+ <meta class="swiftype" name="channel" data-type="string" content="review"></meta>
+ <meta class="swiftype" name="engadget_score" data-type="string" content="87"></meta>
+ <meta class="swiftype" name="computed_score" data-type="string" content="87"></meta>
+ <meta class="swiftype" name="channel" data-type="string" content="gear"></meta>
+ <meta class="swiftype" name="channel" data-type="string" content="gaming"></meta>
+ <meta class="swiftype" name="channel" data-type="string" content="entertainment"></meta>
+ <meta class="swiftype" name="order" data-type="integer" content="3"></meta>
+ <script type="application/javascript">
+ <!--
+ function runOmni() {
+ s_265.pfxID = "weg";
+ s_265.pageName = s_265.pfxID + ' : ' + "Xbox One X review: A console that keeps up with gaming PCs";
+ s_265.server = location.protocol + '//' + location.host;
+ s_265.channel = "us.engadget";
+ s_265.linkInternalFilters = "javascript:,engadget.com,joystiq.com,massively.com,tuaw.com,switched.com,techcrunch.com";
+ s_265.mmxgo = true;
+ s_265.prop12 = document.location;
+ s_265.prop1 = "article";
+ s_265.prop2 = "gaming";
+ s_265.prop8 = "bss:21";
+ s_265.prop45 = "aws";
+ s_265.prop54 = "blogsmith";
+ s_265.prop62 = "video_o2_entrybody|video_youtube_entrybody";
+ s_265.prop9 = "bsd:23265143";
+ s_265.prop18 = "gaming|microsoft|entertainment|gear|av|gadgetry";
+ s_265.prop19 = "av|consoles|entertainment|gadgetry|gadgets|gaming|gear|microsoft|review|video|videogames|Xbox|XboxOne|XboxOneX|@aoloriginal|@applenews|@av|@badge-video|@company-microsoft|@entertainment|@features|@gadgetry|@gaming|@gear|@spotim|@swipe-review|@uk";
+ s_265.prop22 = "devindra-hardawar";
+ s_265.prop23 = "11-03-2017";
+ s_265.prop65 = "original_content";
+ s_265.eVar14 = "amp-ex";
+ s_265.eVar57 = "amp-ex";
+ s_265.t();
+ }
+
+ var s_account = "aolwbengadget,aolsvc";
+ (function (d) {
+ var h = d.getElementsByTagName('head')[0],
+ s1 = d.createElement('script');
+ s1.src = '//o.aolcdn.com/os/aol/omniture.min.js';
+ h.appendChild(s1);
+ })(document);
+ var bN_cfg = {
+ h: location.hostname,
+ p: {
+ "dL_ch": "us.engadget",
+ "dL_dpt": document.title,
+ "dL_sDpt": document.title,
+ "cms_src": "AMP",
+ "dL_siteID": "bss:21",
+ "dL_cmsID": "bsd:23265143",
+ "dL_categories": "gaming|microsoft|entertainment|gear|av|gadgetry",
+ "dL_tags": "av|consoles|entertainment|gadgetry|gadgets|gaming|gear|microsoft|review|video|videogames|Xbox|XboxOne|XboxOneX|@aoloriginal|@applenews|@av|@badge-video|@company-microsoft|@entertainment|@features|@gadgetry|@gaming|@gear|@spotim|@swipe-review|@uk",
+ "dL_author": "devindra-hardawar",
+ "dL_published": "11-03-2017",
+ "dL_source": "original_content",
+ "dL_vid": "video_o2_entrybody|video_youtube_entrybody",
+ "spaceid": "1197802876"
+ }
+ };
+ (function (d) {
+ var h = d.getElementsByTagName('head')[0],
+ s2 = d.createElement('script');
+ s2.src = '//o.aolcdn.com/os/aol/beacon.min.js';
+ h.appendChild(s2);
+ })(document);
+ //-->
+ </script>
+ <style>
+ html {
+ display: none;
+ }
+ </style>
+ <script>
+ if (self == top) {
+ document.documentElement.style.display = 'block';
+ } else {
+ top.location = self.location;
+ }
+ </script>
+ <script type="text/javascript">
+ window._taboola = window._taboola || [];
+ _taboola.push({
+ article: 'auto'
+ });
+ !function (e, f, u) {
+ e.async = 1;
+ e.src = u;
+ f.parentNode.insertBefore(e, f);
+ }(document.createElement('script'), document.getElementsByTagName('script')[0], '//cdn.taboola.com/libtrc/aol-engadget/loader.js');
+ </script>
+</head>
+
+<body class="th-base" data-behavior="addthis">
+<div class="o-h">
+ <div class="i-nav_drawer_slide@tp-" data-behavior="NavDrawerSlide">
+ <!-- global-header -->
+ <header class="uk-cookiebanner o-sticky_header@tp- th-reverse@tp- c-white@tp- border-bottom@tp- bc-gray-2@tp- i-nav_drawer_slide@tp-__panel z-1"
+ data-nav-drawer-slide-panel="">
+ <div class="container@tl+ pl-25@tp- o-h h-60@s h-80@m+">
+ <div>
+ <div class="table h-60@s h-80@m+ ">
+ <div class="table-cell">
+ <div class="hide@tl+ inline-block vm mr-20">
+ <button class="block i-nav_drawer_slide@tp-__menu_btn" data-nav-drawer-slide-btn="">
+ <div class="w-20 h-2 bg-white"></div>
+ <div class="w-20 h-2 mt-3 bg-white"></div>
+ <div class="w-20 h-2 mt-3 bg-white"></div>
+ </button>
+ </div>
+ <div class="inline-block vm">
+ <a href="/" class="">
+ <h1>
+ <svg role="img" aria-label="Engadget" class="th-title header-logo">
+ <title>Engadget</title>
+ <use xlink:href="#icon-logo"></use>
+ </svg>
+ </h1>
+ </a>
+ </div>
+ </div>
+ <ul class="table-cell ta-r c-gray-7 hide@tp-">
+ <li class="inline-block t-meta "><a href="https://www.engadget.com/user/login"
+ class="increase-hit th-meta" target="_blank"
+ data-behavior="Pop"
+ data-engadget-popname="engadget_auth_window"> <span
+ class="increase-hit__inner">
+ Login
+ </span>
+ </a></li>
+ </ul>
+ <a href="#search-box" data-search-box-trigger=""
+ class="hide@tl+ table-cell ta-c c-gray-5 w-60@s w-80@m+ full-height border-left">
+ <svg class="icon inline-block vm">
+ <use xlink:href="#icon-search"></use>
+ </svg>
+ </a></div>
+ </div>
+ </div>
+ </header>
+ <div class="o-sticky_header@tp-__spacer"></div>
+ <!-- global-nav -->
+ <nav role="navigation"
+ class="o-nav_drawer@tp- bg-gray-1 c-gray-5 border-bottom bc-gray-2 h-80@tl+ i-nav_drawer_slide@tp-__nav z-5@tp- z-0@tl+">
+ <a href="#" class="i-nav_drawer_slide@tp-__close hide@tl+ absolute r-n40 c-gray-2">
+ <svg class="icon increase-hit__inner">
+ <use xlink:href="#icon-close"></use>
+ </svg>
+ </a>
+ <div class="container@tl+ cf o-nav_drawer@tp-__inner c-gray-7">
+ <ul class="left@tl+ ml-n35@tl+ o-nav_drawer@tp-__main" data-nav-drawer-slide-nav="">
+ <li class="inline-block@tl+ t-global-nav@tl+ pt-45@tl+ pl-25@tl+ hide@tl+ border-top@tp-">
+ <a href="/" class="increase-hit@tl+ c-gray-10:hvr block@tp- p-20@tp- o-h@tp- ">
+ <div class="left@tp-"> <span class="increase-hit@tl+__inner t-global-nav@tp-">
+ Home
+ </span></div>
+ </a>
+ </li>
+ <li class="inline-block@tl+ t-global-nav@tl+ pt-45@tl+ pl-25@tl+ border-top@tp-">
+ <a href="/gear/" class="increase-hit@tl+ c-gray-10:hvr block@tp- p-20@tp- o-h@tp- ">
+ <div class="left@tp-"> <span class="increase-hit@tl+__inner t-global-nav@tp-">
+ Gear
+ </span></div>
+ </a>
+ </li>
+ <li class="inline-block@tl+ t-global-nav@tl+ pt-45@tl+ pl-25@tl+ border-top@tp-">
+ <a href="/gaming/" class="increase-hit@tl+ c-gray-10:hvr block@tp- p-20@tp- o-h@tp- ">
+ <div class="left@tp-"> <span class="increase-hit@tl+__inner t-global-nav@tp-">
+ Gaming
+ </span></div>
+ </a>
+ </li>
+ <li class="inline-block@tl+ t-global-nav@tl+ pt-45@tl+ pl-25@tl+ border-top@tp-">
+ <a href="/entertainment/" class="increase-hit@tl+ c-gray-10:hvr block@tp- p-20@tp- o-h@tp- ">
+ <div class="left@tp-"> <span class="increase-hit@tl+__inner t-global-nav@tp-">
+ Entertainment
+ </span></div>
+ </a>
+ </li>
+ <li class="inline-block@tl+ t-global-nav@tl+ pt-45@tl+ pl-25@tl+ border-top@tp-">
+ <a href="/tomorrow/" class="increase-hit@tl+ c-gray-10:hvr block@tp- p-20@tp- o-h@tp- ">
+ <div class="left@tp-"> <span class="increase-hit@tl+__inner t-global-nav@tp-">
+ Tomorrow
+ </span></div>
+ </a>
+ </li>
+ <li class="inline-block@tl+ t-global-nav@tl+ pt-45@tl+ pl-25@tl+ border-top@tp-">
+ <a href="/videos/" class="increase-hit@tl+ c-gray-10:hvr block@tp- p-20@tp- o-h@tp- ">
+ <div class="left@tp-"> <span class="increase-hit@tl+__inner t-global-nav@tp-">
+ Video
+ </span></div>
+ </a>
+ </li>
+ <li class="inline-block@tl+ t-global-nav@tl+ pt-45@tl+ pl-25@tl+ border-top@tp-">
+ <a href="/reviews/" class="increase-hit@tl+ c-gray-10:hvr block@tp- p-20@tp- o-h@tp- ">
+ <div class="left@tp-"> <span class="increase-hit@tl+__inner t-global-nav@tp-">
+ Reviews
+ </span></div>
+ </a>
+ </li>
+ <li class="inline-block@tl+ t-global-nav@tl+ pt-45@tl+ pl-25@tl+ border-top@tp-">
+ <a href="/events/the-engadget-experience-2017/"
+ class="increase-hit@tl+ c-gray-10:hvr block@tp- p-20@tp- o-h@tp- ">
+ <div class="left@tp-"> <span class="increase-hit@tl+__inner t-global-nav@tp-">
+ Events
+ </span></div>
+ </a>
+ </li>
+ <li class="inline-block@tl+ t-global-nav@tl+ pt-45@tl+ pl-25@tl+ border-top@tp-">
+ <a href="/?edition=usa" class="increase-hit@tl+ c-gray-10:hvr block@tp- p-20@tp- o-h@tp- ">
+ <div class="left@tp-"> <span class="increase-hit@tl+__inner t-global-nav@tp-">
+ US Edition
+ </span></div>
+ </a>
+ </li>
+ </ul>
+ <a href="#search-box" data-search-box-trigger="" class="hide@tp- increase-hit mt-30 ml-25 right">
+ <svg class="icon search-icon increase-hit__inner">
+ <use xlink:href="#icon-search"></use>
+ </svg>
+ </a>
+ <ul class="hide@tl+" data-nav-drawer-slide-nav="">
+ <li class="inline-block@tl+ t-global-nav@tl+ pt-45@tl+ pl-25@tl+ hide@tl+ bg-gray-2@tp- bc-gray-3@tp- ">
+ <a href="https://www.engadget.com/user/"
+ class="increase-hit@tl+ c-gray-10:hvr block@tp- p-20@tp- o-h@tp- " target="_blank"
+ data-behavior="Pop" data-engadget-popname="engadget_auth_window">
+ <div class="left@tp-"> <span class="increase-hit@tl+__inner t-global-nav@tp-">
+ Log in
+ </span></div>
+ </a>
+ </li>
+ <li class="inline-block@tl+ t-global-nav@tl+ pt-45@tl+ pl-25@tl+ hide@tl+ bg-gray-2@tp- bc-gray-3@tp- border-top@tp-">
+ <a href="https://www.engadget.com/user/register"
+ class="increase-hit@tl+ c-gray-10:hvr block@tp- p-20@tp- o-h@tp- " target="_blank"
+ data-behavior="Pop" data-engadget-popname="engadget_auth_window">
+ <div class="left@tp-"> <span class="increase-hit@tl+__inner t-global-nav@tp-">
+ Sign up
+ </span></div>
+ </a>
+ </li>
+ </ul>
+ <!-- share-macro -->
+ <div class="hide@tl+ fixed-table h-60 bg-gray-2 bc-gray-3 border-top" data-nav-drawer-slide-nav=""><a
+ href="https://www.facebook.com/dialog/share?app_id=132746074315&amp;display=popup&amp;href=https%3A%2F%2Fwww.engadget.com%2F2017%2F11%2F03%2Fxbox-one-x-review%2F"
+ class="table-cell contain c-white:hvr sharebtn facebook-share" target="_blank"
+ data-behavior="Pop" data-engadget-popname="engadget_share" data-engadget-pop-w="560"
+ data-engadget-h="636">
+ <svg class="icon contain__inner">
+ <use xlink:href="#icon-facebook"></use>
+ </svg>
+ </a>
+ <a href="https://twitter.com/share?url=https%3A%2F%2Fwww.engadget.com%2F2017%2F11%2F03%2Fxbox-one-x-review%2F&amp;text=Xbox%20One%20X%20review%3A%20%20A%20console%20that%20keeps%20up%20with%20gaming%20PCs&amp;via=engadget"
+ class="table-cell contain border-left c-white:hvr sharebtn twitter-share" target="_blank"
+ data-behavior="Pop" data-engadget-popname="engadget_share" data-engadget-pop-w="670"
+ data-engadget-h="430">
+ <svg class="icon contain__inner">
+ <use xlink:href="#icon-twitter"></use>
+ </svg>
+ </a>
+ <a href="https://www.reddit.com/submit?url=https%3A%2F%2Fwww.engadget.com%2F2017%2F11%2F03%2Fxbox-one-x-review%2F&amp;title=Xbox%20One%20X%20review%3A%20%20A%20console%20that%20keeps%20up%20with%20gaming%20PCs"
+ class="table-cell contain border-left c-white:hvr sharebtn reddit-share" target="_blank"
+ data-behavior="Pop" data-engadget-popname="engadget_share" data-engadget-pop-w="960"
+ data-engadget-h="750">
+ <svg class="icon contain__inner">
+ <use xlink:href="#icon-reddit"></use>
+ </svg>
+ </a></div>
+ </div>
+ </nav>
+ <section id="search-box"
+ class="i-search_box is-box-hidden is-results-hidden i-nav_drawer_slide@tp-__panel z-1 fixed@tp- absolute@tl+ full-width t-0@tp- t-80@tl+"
+ data-behavior="SearchBox SearchAutocomplete">
+ <div class="th-reverse bg-gray-2 bc-gray-3 c-gray-6">
+ <div class="container@tp+ pl-20@m- pr-20@m-">
+ <div class="relative pl-40 pr-40"><label for="search-terms">
+ <svg class="absolute l-0 t-0 b-0 mt-a mb-a search-icon inline-block mr-5 relative">
+ <use xlink:href="#icon-search"></use>
+ </svg>
+ </label>
+ <form action="/search/" data-engadget-search-submit=""><input data-search-box-input=""
+ class="c-white bg-trans full-width pt-20@s pt-25@m+ pb-20@s pb-25@m+ tx-d5@s tx-d3@m+"
+ type="Text" id="search-terms"
+ name="search-terms" value=""
+ placeholder="What are you searching for?"
+ autocomplete="off" required=""></input>
+ </form>
+ <a href="#" data-search-box-close="">
+ <svg class="absolute t-0 r-0 b-0 mt-a mb-a icon vm">
+ <use xlink:href="#icon-close"></use>
+ </svg>
+ </a></div>
+ </div>
+ </div>
+ <section class="th-reverse bg-gray-2 bc-gray-3 c-gray-6 border-top pt-15 pb-25 i-search_box__results">
+ <div class="container@tp+ pl-20@m- pr-20@m-">
+ <div class="scroll custom-scroll scroll-track-gray-4-30 scroll-handle-gray-4"
+ style="max-height: 313px">
+ <div class="contain">
+ <div class="contain__inner">
+ <div class="grid full-height">
+ <div class="grid__cell col-1-of-2@tp col-1-of-3@tl+ full-height grid-divider"></div>
+ <div class="hide@m- grid__cell col-1-of-2@tp col-1-of-3@tl+ full-height grid-divider"></div>
+ <div class="hide@tp- grid__cell col-1-of-2@tp col-1-of-3@tl+ full-height grid-divider"></div>
+ </div>
+ </div>
+ <div id="autocomplete-results-container"
+ class="grid o-grid_divider_mask mt-n15@s mt-n25@m+">
+ <div class="hide@m- o-grid_divider_mask__mask bg-gray-2"></div>
+ </div>
+ </div>
+ </div>
+ <div class="js-show-more-acresults-container container@tp- mt-15 hide"><a href="#"
+ class="js-show-more-acresults o-btn th-btn">
+ <span class="t-btn">
+ <span class="hide@s">Show</span> More <span class="hide@s">Results</span>
+ </span>
+ </a></div>
+ </div>
+ </section>
+ </section>
+ <div class="i-nav_drawer_slide@tp-__panel relative z-0" data-nav-drawer-slide-panel="">
+ <!-- banner-leaderboard -->
+ <aside role="banner" class="">
+ <div class="relative">
+ <div id="leaderboard_article"
+ data-aol-adcall="{&quot;s&quot;:{&quot;adSetType&quot;:&quot;F&quot;,&quot;htmlAdWH&quot;:{&quot;mn&quot;:93484767,&quot;sizes&quot;:{&quot;w&quot;:&quot;320&quot;,&quot;h&quot;:&quot;50&quot;},&quot;type&quot;:&quot;f&quot;},&quot;cb&quot;:&quot;adjust_lb&quot;},&quot;tp&quot;:{&quot;adSetType&quot;:&quot;F&quot;,&quot;htmlAdWH&quot;:{&quot;mn&quot;:93484768,&quot;sizes&quot;:{&quot;w&quot;:&quot;LB&quot;,&quot;h&quot;:&quot;LB&quot;},&quot;type&quot;:&quot;fc&quot;},&quot;cb&quot;:&quot;adjust_lb&quot;}}"
+ data-behavior="Advertisement"></div>
+ </div>
+ </aside>
+ <main role="main" class="th-base o-h">
+ <!-- article-context-nav -->
+ <!-- context-nav -->
+ <nav data-behavior="ContextNav"
+ class="i-context_nav bc-white-10 border-bottom c-gray-5 t-0 full-width o-context_nav hide@tp- z-10"
+ data-context-nav-offset="200" style="z-index: 100000">
+ <div class="th-reverse bc-gray-2 h-80">
+ <div class="container relative">
+ <div class="o-bar">
+ <div class="table-cell-top">
+ <div class="vt pt-20 pb-20 pr-50"><a href="/">
+ <svg role="img" aria-label="Engadget" class="header-logo c-white">
+ <title>Engadget</title>
+ <use xlink:href="#icon-logo"></use>
+ </svg>
+ </a></div>
+ <a href="#"
+ class="hide@tl- i-context_nav__related_btn vt pl-60 pr-60 border-left border-right h-80 hit c-white:hvr c-inherit-*:hvr"
+ data-context-nav-related-btn="">
+ <div class="t-btn-context-nav mt-30">
+ <div class="inline-block">3 related articles</div>
+ <svg class="c-gray-4 inline-block vm ml-10 caret-icon">
+ <use xlink:href="#icon-down-caret"></use>
+ </svg>
+ </div>
+ </a>
+ </div>
+ <div class="o-bar__cell">
+ <div class="vt pr-20">
+ <div class="table h-80">
+ <div class="table-cell">
+ <div class="inline-block hide@tl-">
+ <!-- buy-button-alt -->
+ <a href="/buylink/110829"
+ class="o-btn o-btn--small th-btn-alt w-130@tl+ c-white@tp-"
+ target="_blank">
+ <div class="t-btn"> Buy Now
+ <div class="ml-10 inline-block hide@m-">
+ <svg class="icon t-1 relative">
+ <use xlink:href="#icon-link-off"></use>
+ </svg>
+ </div>
+ </div>
+ </a>
+ </div>
+ <div class="inline-block pr-60">
+ <!-- share-macro -->
+ <div class="inline-block border-right icon-20-line-height"><a
+ href="https://www.facebook.com/dialog/share?app_id=132746074315&amp;display=popup&amp;href=https%3A%2F%2Fwww.engadget.com%2F2017%2F11%2F03%2Fxbox-one-x-review%2F"
+ class="inline-block pl-20 pr-20 th-meta sharebtn facebook-share"
+ target="_blank" data-behavior="Pop"
+ data-engadget-popname="engadget_share"
+ data-engadget-pop-w="560" data-engadget-h="636">
+ <svg class="inline-block icon vm th-meta__icon">
+ <use xlink:href="#icon-facebook"></use>
+ </svg>
+ </a></div>
+ <div class="inline-block border-right icon-20-line-height"><a
+ href="https://twitter.com/share?url=https%3A%2F%2Fwww.engadget.com%2F2017%2F11%2F03%2Fxbox-one-x-review%2F&amp;text=Xbox%20One%20X%20review%3A%20%20A%20console%20that%20keeps%20up%20with%20gaming%20PCs&amp;via=engadget"
+ class="inline-block pl-20 pr-20 th-meta sharebtn twitter-share"
+ target="_blank" data-behavior="Pop"
+ data-engadget-popname="engadget_share"
+ data-engadget-pop-w="670" data-engadget-h="430">
+ <svg class="inline-block icon vm th-meta__icon">
+ <use xlink:href="#icon-twitter"></use>
+ </svg>
+ </a></div>
+ <div class="inline-block border-right icon-20-line-height"><a
+ href="https://www.reddit.com/submit?url=https%3A%2F%2Fwww.engadget.com%2F2017%2F11%2F03%2Fxbox-one-x-review%2F&amp;title=Xbox%20One%20X%20review%3A%20%20A%20console%20that%20keeps%20up%20with%20gaming%20PCs"
+ class="inline-block pl-20 pr-20 th-meta sharebtn reddit-share"
+ target="_blank" data-behavior="Pop"
+ data-engadget-popname="engadget_share"
+ data-engadget-pop-w="960" data-engadget-h="750">
+ <svg class="inline-block icon vm th-meta__icon">
+ <use xlink:href="#icon-reddit"></use>
+ </svg>
+ </a></div>
+ <div class="inline-block border-right icon-20-line-height"><a
+ href="mailto:?subject=Xbox%20One%20X%20review%3A%20%20A%20console%20that%20keeps%20up%20with%20gaming%20PCs via Engadget&amp;body=https%3A%2F%2Fwww.engadget.com%2F2017%2F11%2F03%2Fxbox-one-x-review%2F"
+ class="inline-block pl-20 pr-20 th-meta" target="_blank"
+ data-behavior="Pop" data-engadget-popname="engadget_share">
+ <svg class="inline-block icon vm th-meta__icon">
+ <use xlink:href="#icon-email"></use>
+ </svg>
+ </a></div>
+ </div>
+ <ul class="inline-block pr-30">
+ <li class="inline-block t-meta "><a
+ href="https://www.engadget.com/user/login"
+ class="increase-hit th-meta" target="_blank"
+ data-behavior="Pop"
+ data-engadget-popname="engadget_auth_window">
+ <span class="increase-hit__inner">
+ Login
+ </span>
+ </a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div class="inline-block vt"><a href="#search-box" data-search-box-trigger=""
+ class="w-80 h-80 contain inline-block border-left th-meta">
+ <svg class="icon search-icon contain__inner">
+ <use xlink:href="#icon-search"></use>
+ </svg>
+ </a></div>
+ </div>
+ </div>
+ </div>
+ <section
+ class="i-context_nav__related bg-gray-2 c-gray-9 bc-gray-5 pt-25 pb-25 o-context_nav__related">
+ <div class="container">
+ <div class="grid">
+ <div class="grid__cell col-1-of-3">
+ <a href="https://www.engadget.com/2018/03/21/google-lytro-acquisition-rumor/"
+ class="c-white:hvr">
+ <article class="table">
+ <div class="table-cell-top pr-20 w-130"><img
+ src="https://o.aolcdn.com/images/dims?thumbnail=130%2C87&amp;quality=80&amp;image_uri=https%3A%2F%2Fo.aolcdn.com%2Fimages%2Fdims%3Fcrop%3D3000%252C1996%252C0%252C0%26quality%3D85%26format%3Djpg%26resize%3D1600%252C1065%26image_uri%3Dhttp%253A%252F%252Fo.aolcdn.com%252Fhss%252Fstorage%252Fmidas%252F4281e1d07a07ef72be80107dbe2507de%252F206231272%252Fthe-lytro-camera-is-displayed-for-a-photograph-in-san-francisco-us-picture-id140228514%26client%3Da1acac3e1b3290917d92%26signature%3D3652a66233df6394ce5f09154619f3b62feab93e&amp;client=cbc79c14efcebee57402&amp;signature=7ac5f830221b7d6285b7c08212b6724ceeeada60"
+ alt="Google is reportedly acquiring Lytro for around $40 million"
+ class="max-img"></img></div>
+ <div class="table-cell-top pl-20">
+ <h2 class="t-h6">Google is reportedly acquiring Lytro for around $40
+ million</h2>
+ </div>
+ </article>
+ </a>
+ </div>
+ <div class="grid__cell col-1-of-3">
+ <a href="https://www.engadget.com/2018/03/21/hyper-light-drifter-is-another-indie-game-coming-to-switch/"
+ class="c-white:hvr">
+ <article class="table">
+ <div class="table-cell-top pr-20 w-130"><img
+ src="https://o.aolcdn.com/images/dims?thumbnail=130%2C87&amp;quality=80&amp;image_uri=https%3A%2F%2Fs.aolcdn.com%2Fhss%2Fstorage%2Fmidas%2Fa45e94a7987030d3366b8e9570d04df2%2F206231033%2Ffba4a93144c04a87dc2bd998e822b218_original.jpg&amp;client=cbc79c14efcebee57402&amp;signature=69faf46cf16b248637d393468f674362c6da2688"
+ alt="'Hyper Light Drifter' is another indie game coming to Switch"
+ class="max-img"></img></div>
+ <div class="table-cell-top pl-20">
+ <h2 class="t-h6">'Hyper Light Drifter' is another indie game coming
+ to Switch</h2>
+ </div>
+ </article>
+ </a>
+ </div>
+ <div class="grid__cell col-1-of-3">
+ <a href="https://www.engadget.com/2018/03/20/samsungs-commercial-grade-galaxy-tab-active-2-is-available-in-t/"
+ class="c-white:hvr">
+ <article class="table">
+ <div class="table-cell-top pr-20 w-130"><img
+ src="https://o.aolcdn.com/images/dims?thumbnail=130%2C87&amp;quality=80&amp;image_uri=https%3A%2F%2Fs.aolcdn.com%2Fhss%2Fstorage%2Fmidas%2F468b08b5911b6515fc5903f0a07d362%2F206230195%2Ftabactive2.jpg&amp;client=cbc79c14efcebee57402&amp;signature=622dbee20f12ddc433bec544928a36b582216a77"
+ alt="Samsung's commercial-grade Galaxy Tab Active 2 is available in the US"
+ class="max-img"></img></div>
+ <div class="table-cell-top pl-20">
+ <h2 class="t-h6">Samsung's commercial-grade Galaxy Tab Active 2 is
+ available in the US</h2>
+ </div>
+ </article>
+ </a>
+ </div>
+ </div>
+ </div>
+ </section>
+ </div>
+ </nav>
+ <!-- article -->
+ <!-- article-hero-embed -->
+ <header class="bg-gray-11 cf">
+ <div class="ta-c bg-gray-1">
+ <div class="container@d">
+ <!-- TAG START { player: "Eng: HERO EMBED - sideview, autoplay, muted ", owner: "Engadget AOL", for: "Engadget AOL" } -->
+ <div id="56e83c06e4b01fe390d9dadd"
+ class="vdb_player vdb_56e83c06e4b01fe390d9dadd564f3144ff690c0a7c285e51"
+ vdb_params="m.embeded=cms_video_plugin_cms.publishing.oath.com"
+ data-placeholder="//img.vidible.tv/prod/2017-11/01/59fa00654db5ff559119c006/59fa012bae56975c360acc8b_o_U_v1.jpg?w=1440&amp;h=900">
+ <script async="" type="text/javascript"
+ src="//delivery.vidible.tv/jsonp/pid=56e83c06e4b01fe390d9dadd/vid=59fa00654db5ff559119c006/564f3144ff690c0a7c285e51.js?m.embeded=cms_video_plugin_cms.publishing.oath.com"></script>
+ </div>
+ <!-- TAG END { date: 11/02/17 } -->
+ </div>
+ </div>
+ <div class="ta-c pb-60@tp- pb-80@tl+ container">
+ <h1 class="t-h4@s t-h3@m t-h1@tp t-alpha-h1@tl+ mt-40@tp- mt-75@tl+ c-gray-1 ml-a mr-a col-11-of-15">
+ Xbox One X review: A console that keeps up with gaming PCs </h1>
+ <h2 class="t-d7@m- t-d3-b@tp t-d2@tl+ mt-25 c-gray-3 ml-a mr-a col-11-of-15"> But only hardcore
+ gamers will appreciate it. </h2>
+ </div>
+ <div class="container border-top pt-25 pb-25">
+ <div class="grid">
+ <div class="grid__cell vm col-6-of-15@tp- col-7-of-15@tl+">
+ <!-- article-author-header -->
+ <div class="o-article_meta_bar__avatar left mr-20 mr-10@s o-avatar_offset">
+ <div class="w-45@m+ h-45@m+ o-h w-30@s h-30@s"><a
+ href="/about/editors/devindra-hardawar/">
+ <img src="https://o.aolcdn.com/images/dims?thumbnail=45%2C45&amp;quality=80&amp;image_uri=http%3A%2F%2Fwww.blogcdn.com%2Fwww.engadget.com%2Fmedia%2F2016%2F03%2Fdevindra-engadget-headshot-small.jpg&amp;client=cbc79c14efcebee57402&amp;signature=e6ffba7468c380581b6589a70ce5d7c1ec40cd1d"
+ class="inline-block vm circle-mask"></img>
+ </a></div>
+ </div>
+ <div class="t-meta-small@s t-meta@m+"><a href="/about/editors/devindra-hardawar/"
+ class="th-meta">Devindra Hardawar</a><span
+ class="hide@s th-meta">, <a href="https://twitter.com/devindra" class="th-meta">@devindra</a></span>
+ <div class="th-meta"> 11.03.17 in <a href="/tags/gadgetry/" class="th-topic">Gadgetry</a>
+ </div>
+ </div>
+ </div>
+ <div class="grid__cell vm col-2-of-15 grid-divider hide@tp-">
+ <!-- article-stat --><a href="#comments" class="o-hit"><span
+ class="t-d1 pb-5 spot-im-replies-count" data-post-id="post-23265143"></span>
+ <span class="t-meta pb-0 th-meta">Comments</span>
+ </a></div>
+ <div class="grid__cell vm col-2-of-15 grid-divider hide@tp-">
+ <!-- article-stat --><span class="t-d1 pb-5 ">2192</span> <span
+ class="t-meta pb-0 th-meta">Shares</span></div>
+ <div class="grid__cell vm col-9-of-15@tp- col-4-of-15@tl+ ta-r">
+ <!-- article-social-nav -->
+ <div class="o-social_nav c-gray-9">
+ <!-- share-macro -->
+ <div class="o-social_nav__item" data-tooltip-outer=""><a
+ href="https://www.facebook.com/dialog/share?app_id=132746074315&amp;display=popup&amp;href=https%3A%2F%2Fwww.engadget.com%2F2017%2F11%2F03%2Fxbox-one-x-review%2F"
+ class="inline-block pl-10@s th-meta sharebtn facebook-share"
+ data-behavior="Tooltip Pop" target="_blank"
+ data-engadget-popname="engadget_share" data-engadget-pop-w="560"
+ data-engadget-h="636">
+ <svg class="inline-block icon vm th-meta__icon">
+ <use xlink:href="#icon-facebook"></use>
+ </svg>
+ </a>
+ <div class="hide" data-tooltip-content="">
+ <div class="o-tooltip ta-c th-reverse">
+ <div class="t-meta th-meta"><span class="c-white">Share</span> <span
+ data-share-count-facebook=""></span></div>
+ </div>
+ </div>
+ </div>
+ <div class="o-social_nav__item" data-tooltip-outer=""><a
+ href="https://twitter.com/share?url=https%3A%2F%2Fwww.engadget.com%2F2017%2F11%2F03%2Fxbox-one-x-review%2F&amp;text=Xbox%20One%20X%20review%3A%20%20A%20console%20that%20keeps%20up%20with%20gaming%20PCs&amp;via=engadget"
+ class="inline-block pl-10@s th-meta sharebtn twitter-share"
+ data-behavior="Tooltip Pop" target="_blank"
+ data-engadget-popname="engadget_share" data-engadget-pop-w="670"
+ data-engadget-h="430">
+ <svg class="inline-block icon vm th-meta__icon">
+ <use xlink:href="#icon-twitter"></use>
+ </svg>
+ </a>
+ <div class="hide" data-tooltip-content="">
+ <div class="o-tooltip ta-c th-reverse">
+ <div class="t-meta th-meta"><span class="c-white">Tweet</span> <span
+ data-share-count-twitter=""></span></div>
+ </div>
+ </div>
+ </div>
+ <div class="o-social_nav__item " data-tooltip-outer=""><a
+ href="https://www.reddit.com/submit?url=https%3A%2F%2Fwww.engadget.com%2F2017%2F11%2F03%2Fxbox-one-x-review%2F&amp;title=Xbox%20One%20X%20review%3A%20%20A%20console%20that%20keeps%20up%20with%20gaming%20PCs"
+ class="inline-block pl-10@s th-meta sharebtn reddit-share"
+ data-behavior="Tooltip Pop" target="_blank"
+ data-engadget-popname="engadget_share" data-engadget-pop-w="960"
+ data-engadget-h="750">
+ <svg class="inline-block icon vm th-meta__icon">
+ <use xlink:href="#icon-reddit"></use>
+ </svg>
+ </a>
+ <div class="hide" data-tooltip-content="">
+ <div class="o-tooltip ta-c th-reverse">
+ <div class="t-meta th-meta"><span class="c-white">Share</span> <span
+ data-share-count-reddit=""></span></div>
+ </div>
+ </div>
+ </div>
+ <div class="o-social_nav__item" data-tooltip-outer=""><a href="javascript:;"
+ class="inline-block pl-10@s th-meta"
+ data-engadget-reading-list-id="23265143"
+ data-engadget-reading-list-type="post"
+ data-behavior="Tooltip AddToReadingList"
+ target="_blank"
+ data-engadget-auth="false">
+ <svg class="inline-block icon vm th-meta__icon">
+ <use xlink:href="#icon-save"></use>
+ </svg>
+ </a>
+ <div class="hide" data-tooltip-content="">
+ <div class="o-tooltip ta-c th-reverse">
+ <div class="t-meta th-meta"><span class="c-white">Save</span> <span
+ data-share-count-save=""></span></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </header>
+ <div class="container@tp+ pt-40@tp+" data-behavior="BreakoutsHandler">
+ <div class="grid flex">
+ <div class="grid__cell col-3-of-15 hide@tl- flex pb-80" style="flex-direction: column">
+ <div class="flex-1" id="hero-table-of-contents" data-sticky-container=""
+ style="margin-top: -160px; padding-top: 160px">
+ <ul class="i-contents_nav flush-top " data-behavior="sticky"></ul>
+ </div>
+ </div>
+ <div class="grid__cell col-12-of-15@d ">
+ <article class="c-gray-1">
+ <div id="page_body" data-behavior="trigger_contents_nav">
+ <div class="container@m-">
+ <!-- article-contents -->
+ <div class="flush-top flush-bottom" data-behavior="FitVids ">
+ <div class="o-article_block ">
+ <!-- rail -->
+ <div class="grid@tl+ mt-n40">
+ <div style="clear: right;"></div>
+ <div id="right-ads-rail"
+ class="hide@tp- grid@tl+__cell col-4-of-12@tl+ right@tl+ flush-top pt-40 relative z-1">
+ <!-- product-card -->
+ <aside class="o-card rounded mb-40 hide@tp-">
+ <div class="o-hit th-meta i-hover_text o-h">
+ <header class="o-bar">
+ <div class=" h-70 o-h">
+ <div class="i-hover_text__barrel">
+ <div class="o-bar h-70">
+ <div class="o-bar__cell o-card__title">
+ <h4 class="t-list-header c-gray-2">
+ Xbox One X </h4>
+ </div>
+ <div class="o-bar__cell ta-r o-card__title h-70 w-45 contain">
+ <svg class="vc inline-block arrow-small contain__inner">
+ <use xlink:href="#icon-right-arrow-thick"></use>
+ </svg>
+ </div>
+ </div>
+ <div class="o-bar h-70">
+ <div class="o-bar__cell o-card__title">
+ <h4 class="t-list-header c-gray-2">
+ Get more info </h4>
+ </div>
+ <div class="o-bar__cell ta-r o-card__title h-70 w-45 contain">
+ <svg class="vc inline-block arrow-small contain__inner">
+ <use xlink:href="#icon-right-arrow-thick"></use>
+ </svg>
+ </div>
+ </div>
+ </div>
+ </div>
+ <a href="https://www.engadget.com/products/microsoft/xbox/one/x/"
+ class="o-hit__link">More</a></header>
+ </div>
+ <a href="https://www.engadget.com/products/microsoft/xbox/one/x/"
+ class="o-hit__link">
+ <!-- rating-thumb -->
+ <div class="o-rating_thumb c-white"><img
+ data-original="https://o.aolcdn.com/images/dims?quality=100&amp;image_uri=https%3A%2F%2Fs3.amazonaws.com%2Fengadget-production%2Fproducts%2F558%2Fbyyh%2Fbyyh.jpg&amp;client=cbc79c14efcebee57402&amp;signature=be3d0bf5faf20e48947fa9635f7f3305460f3198"
+ alt="Xbox" class="ml-a mr-a pb-30 max-img"></img>
+ <div class="o-rating_thumb__rating b-75@m- z-3">
+ <!-- rating -->
+ <div class="o-rating bg-rating-85 c-white ">
+ <div class="o-rating__inner t-rating-large">
+ 87
+ </div>
+ </div>
+ </div>
+ </div>
+ </a>
+ <section>
+ <div class="hide@m-">
+ <div class="border-top pt-20 pr-20 pb-25 pl-20">
+ <div class="th-title t-list-header-2"><a
+ href="https://www.engadget.com/products/microsoft/xbox/one/x/scores/">Scores</a>
+ </div>
+ <!-- rating-bars -->
+ <div class="i-rating_bars mt-0"
+ data-behavior="RatingBars">
+ <article class=" pt-15">
+ <div class="table">
+ <div class="table-cell-bottom">
+ <h4 class=" t-meta">
+ <span class="th-title">Engadget</span>
+ </h4>
+ </div>
+ <div class="table-cell-bottom ta-r">
+ <div class="t-list-header-2 th-title">
+ 87
+ </div>
+ </div>
+ </div>
+ <!-- rating-meter -->
+ <div class="bg-gray-10 mt-10 i-rating_bars__bar">
+ <div style="width: 87%;"
+ class="h-10 bg-rating-85">
+ &nbsp;
+ </div>
+ </div>
+ </article>
+ <article class=" pt-15">
+ <div class="table">
+ <div class="table-cell-bottom">
+ <h4 class=" t-meta">
+ <span class="th-title">Critic</span>
+ <a href="//www.engadget.com/products/microsoft/xbox/one/x/scores/"
+ class="inline tx-meta ml-5 lh-inherit th-meta">
+ 10 Reviews
+ </a></h4>
+ </div>
+ <div class="table-cell-bottom ta-r">
+ <div class="t-list-header-2 th-title">
+ 8.3
+ </div>
+ </div>
+ </div>
+ <!-- rating-meter -->
+ <div class="bg-gray-10 mt-10 i-rating_bars__bar">
+ <div style="width: 83%;"
+ class="h-10 bg-rating-70">
+ &nbsp;
+ </div>
+ </div>
+ </article>
+ <article class=" pt-15">
+ <div class="table">
+ <div class="table-cell-bottom">
+ <h4 class=" t-meta">
+ <span class="th-title">Users</span>
+ <a href="//www.engadget.com/products/microsoft/xbox/one/x/user-scores/"
+ class="inline tx-meta ml-5 lh-inherit th-meta">
+ 1 Reviews
+ </a></h4>
+ </div>
+ <div class="table-cell-bottom ta-r">
+ <div class="t-list-header-2 th-title">
+ 10
+ </div>
+ </div>
+ </div>
+ <!-- rating-meter -->
+ <div class="bg-gray-10 mt-10 i-rating_bars__bar">
+ <div style="width: 100%;"
+ class="h-10 bg-rating-85">
+ &nbsp;
+ </div>
+ </div>
+ </article>
+ </div>
+ </div>
+ <div class="border-top pt-20 pr-20 pb-25 pl-20">
+ <h4 class="th-title t-list-header-2"><a
+ href="https://www.engadget.com/products/microsoft/xbox/one/x/specs/">Key
+ Specs</a></h4>
+ <ul class="t-meta-list th-meta mt-15">
+ <li><span
+ class="c-gray-3">Game format&nbsp;</span>
+ Optical, Downloadable
+ </li>
+ <li><span class="c-gray-3">Online features&nbsp;</span>
+ Multiplayer, Voice chat, Store
+ </li>
+ <li><span class="c-gray-3">Drive capacity&nbsp;</span>
+ 10001
+ </li>
+ <li><span class="c-gray-3">Controller type&nbsp;</span>
+ Wired, Wireless
+ </li>
+ <li><span class="c-gray-3">Video outputs&nbsp;</span>
+ HDMI
+ </li>
+ </ul>
+ </div>
+ </div>
+ </section>
+ <div class="border-top hide@m p-20 ta-c"><span
+ class="inline-block vm t-meta c-gray-7">From</span>
+ <span class="inline-block vm t-h3-b">$610.00</span>
+ <div class="mt-10">
+ <!-- buy-button-alt -->
+ <a href="/buylink/110829"
+ class="o-btn o-btn--small th-btn-alt c-white@tp-"
+ target="_blank">
+ <div class="t-btn"> Buy Now
+ <div class="ml-10 inline-block hide@m-">
+ <svg class="icon t-1 relative">
+ <use xlink:href="#icon-link-off"></use>
+ </svg>
+ </div>
+ </div>
+ </a>
+ </div>
+ </div>
+ </aside>
+ <aside id="shared-ads-container" role="banner">
+ <div class="vc relative mb-20">
+ <div id="multi_size_article"
+ data-aol-adcall="{&quot;tl&quot;:{&quot;adSetType&quot;:&quot;F&quot;,&quot;htmlAdWH&quot;:{&quot;mn&quot;:93484769,&quot;sizes&quot;:{&quot;w&quot;:&quot;RR&quot;,&quot;h&quot;:&quot;RR&quot;},&quot;type&quot;:&quot;f&quot;}}}"
+ data-behavior="Advertisement"></div>
+ </div>
+ </aside>
+ <div id="taboola-right-rail-thumbnails"
+ class="mt-35 mb-35"></div>
+ <script type="text/javascript">
+ window._taboola = window._taboola || [];
+ _taboola.push({
+ mode: 'thumbnails-e',
+ container: 'taboola-right-rail-thumbnails',
+ placement: 'Right Rail Thumbnails',
+ target_type: 'mix'
+ });
+ </script>
+ <aside role="banner">
+ <div class="relative mb-15 mt-25">
+ <div id="latest_rail_article"
+ data-aol-adcall="{&quot;tl&quot;:{&quot;adSetInView&quot;:[&quot;D&quot;,&quot;&quot;,&quot;250&quot;],&quot;htmlAdWH&quot;:{&quot;mn&quot;:93484770,&quot;sizes&quot;:{&quot;w&quot;:&quot;RR&quot;,&quot;h&quot;:&quot;RR&quot;},&quot;type&quot;:&quot;f&quot;}}}"
+ data-behavior="Advertisement"></div>
+ </div>
+ </aside>
+ </div>
+ </div>
+ </div>
+ <!-- post-contents -->
+ <div class="o-article_block pb-15 pb-5@m- mt-25@s">
+ <div class="grid@tl+">
+ <div class="grid@tl+__cell col-8-of-12@tl+">
+ <div class="article-text c-gray-1" data-behavior="Dropcap">
+ <p>The <a
+ href="https://www.engadget.com/2017/06/13/the-xbox-one-x-is-aspirational-in-the-purest-sense-of-the-word/">Xbox
+ One X</a> is the ultimate video game system. It sports
+ more horsepower than any system ever. And it plays more
+ titles in native 4K than <a
+ href="https://www.engadget.com/2016/11/07/sony-playstation-4-pro-review/">Sony's
+ PlayStation 4 Pro</a>. It's just about everything
+ you could want without investing in a gaming PC. The
+ only problem? It's now been a year since the PS4 Pro
+ launched, and the One X costs $500, while Sony's console
+ launched at $400. That high price limits the Xbox One X
+ to diehard Microsoft fans who don't mind paying a bit
+ more to play the console's exclusive titles in 4K.
+ Everyone else might be better off waiting, or opting for
+ the $279 <a
+ href="https://www.engadget.com/2016/08/02/xbox-one-s-review/">Xbox
+ One S</a>. </p>
+ <!-- inline article gal -->
+ </div>
+ </div>
+ </div>
+ </div>
+ <!-- article-gallery -->
+ <div class="o-article_block o-subtle_divider">
+ <div class="grid@tl+">
+ <div class="grid@tl+__cell col-8-of-12@tl+ left">
+ <section>
+ <h4 class="t-section-title mb-35 mb-15@s"> Gallery: Xbox One
+ X | 14 Photos </h4>
+ <div class="relative mb-n15 mb-25@tp-"
+ data-behavior="lightbox_trigger"
+ data-engadget-slideshow-id="803271"
+ data-eng-bang="{&quot;gallery&quot;:803271,&quot;slide&quot;:7142088,&quot;index&quot;:0}"
+ data-eng-mn="93511844"><a href="#" data-index="0"
+ data-engadget-slide-id="7142088"
+ data-eng-bang="{&quot;gallery&quot;:803271,&quot;slide&quot;:7142088,&quot;index&quot;:0}">
+ <img src="https://o.aolcdn.com/images/dims?thumbnail=980%2C653&amp;quality=80&amp;image_uri=https%3A%2F%2Fs.blogcdn.com%2Fslideshows%2Fimages%2Fslides%2F714%2F208%2F8%2FS7142088%2Fslug%2Fl%2Fxbox-one-x-review-gallery-1-1.jpg&amp;client=cbc79c14efcebee57402&amp;signature=9bb08b52e12de8e4060f863a52c613489529818d"
+ class="stretch-img"></img>
+ </a>
+ <div class="hide@tp+ t-meta absolute b-0 l-0 c-white">
+ <svg class="inline-block slideshow-icon vm mr-n15">
+ <use xlink:href="#icon-slideshow"></use>
+ </svg>
+ 14
+ </div>
+ <ul class="hide@m- absolute b-0 l-0 ml-n10 pt-10 pr-10 bg-white">
+ <li class="ml-10 inline-block vt contain"><a
+ href="#" data-index="1"
+ data-engadget-slide-id="7142089"
+ data-eng-bang="{&quot;gallery&quot;:803271,&quot;slide&quot;:7142089,&quot;index&quot;:0}">
+ <img src="https://o.aolcdn.com/images/dims?thumbnail=130%2C87&amp;quality=80&amp;image_uri=https%3A%2F%2Fs.blogcdn.com%2Fslideshows%2Fimages%2Fslides%2F714%2F208%2F9%2FS7142089%2Fslug%2Fl%2Fxbox-one-x-review-gallery-2-1.jpg&amp;client=cbc79c14efcebee57402&amp;signature=916edb7e63b5363e0d7ddfa5a1eb84cde5b6c0f9"></img>
+ </a></li>
+ <li class="ml-10 inline-block vt contain"><a
+ href="#" data-index="2"
+ data-engadget-slide-id="7142090"
+ data-eng-bang="{&quot;gallery&quot;:803271,&quot;slide&quot;:7142090,&quot;index&quot;:0}">
+ <img src="https://o.aolcdn.com/images/dims?thumbnail=130%2C87&amp;quality=80&amp;image_uri=https%3A%2F%2Fs.blogcdn.com%2Fslideshows%2Fimages%2Fslides%2F714%2F209%2F0%2FS7142090%2Fslug%2Fl%2Fxbox-one-x-review-gallery-3-1.jpg&amp;client=cbc79c14efcebee57402&amp;signature=2ff9a50b64a05d9bb5f006c6a7ed6a38818c6111"></img>
+ </a></li>
+ <li class="ml-10 inline-block vt contain"><a
+ href="#" data-index="3"
+ data-engadget-slide-id="7142091"
+ data-eng-bang="{&quot;gallery&quot;:803271,&quot;slide&quot;:7142091,&quot;index&quot;:0}">
+ <img src="https://o.aolcdn.com/images/dims?thumbnail=130%2C87&amp;quality=80&amp;image_uri=https%3A%2F%2Fs.blogcdn.com%2Fslideshows%2Fimages%2Fslides%2F714%2F209%2F1%2FS7142091%2Fslug%2Fl%2Fxbox-one-x-review-gallery-4-1.jpg&amp;client=cbc79c14efcebee57402&amp;signature=05f59c708541c0bcc6569a09deb733249b6ffce6"></img>
+ </a></li>
+ <li class="ml-10 inline-block vt contain"><a
+ href="#" data-index="4"
+ data-engadget-slide-id="7142092"
+ data-eng-bang="{&quot;gallery&quot;:803271,&quot;slide&quot;:7142092,&quot;index&quot;:0}">
+ <img src="https://o.aolcdn.com/images/dims?thumbnail=130%2C87&amp;quality=80&amp;image_uri=https%3A%2F%2Fs.blogcdn.com%2Fslideshows%2Fimages%2Fslides%2F714%2F209%2F2%2FS7142092%2Fslug%2Fl%2Fxbox-one-x-review-gallery-5-1.jpg&amp;client=cbc79c14efcebee57402&amp;signature=e9fe81e42526f7f32e57e22fcc6cd7ac4e00801a"></img>
+ </a>
+ <a href="#" data-index="grid"
+ data-engadget-slide-type="grid"
+ data-eng-bang="{&quot;gallery&quot;:803271,&quot;view&quot;:&quot;grid&quot;}"
+ class="contain__inner bg-gray-1 translucent">
+ <div class="t-article-gallery-count absolute b-10 l-15 c-white">
+ +10
+ </div>
+ </a>
+ </li>
+ </ul>
+ </div>
+ </section>
+ </div>
+ </div>
+ </div>
+ <div class="o-article_block pb-15 pb-5@m- cf@tp-">
+ <div class="grid@tl+">
+ <div class="move-up@tp- full-width@tp- grid@tl+__cell col-8-of-12@tl+">
+ <div class="article-text c-gray-1">
+ <p></p>
+ <p style="margin-top: -20px"></p>
+ </div>
+ </div>
+ </div>
+ </div>
+ <!-- review-card -->
+ <div class="o-article_block o-subtle_divider@tl+">
+ <div class="grid@tl+">
+ <div class="full-width@tp- grid@tl+__cell col-8-of-12@tl+">
+ <h4 class="t-list-header">Engadget Score
+ <div class="right">
+ <!-- rating-key -->
+ <figure class="pb-0 ta-r c-gray-6 hide@s o-rating_key i-rating-key t-meta-small cf">
+ <div class="o-rating_key__score o-rating_key__score--poor
+ i-rating-key__score i-rating-key__score--poor left" data-rating-from="1" data-rating-to="55"><span
+ class="o-rating_key__score__label i-rating-key__score__label c-gray-2">Poor</span>
+ <div class="inline-block full-width bg-rating-1"
+ style="height: 3px"></div>
+ </div>
+ <div class="o-rating_key__score o-rating_key__score--uninspiring
+ i-rating-key__score i-rating-key__score--uninspiring left" data-rating-from="55" data-rating-to="70"><span
+ class="o-rating_key__score__label i-rating-key__score__label c-gray-2">Uninspiring</span>
+ <div class="inline-block full-width bg-rating-55"
+ style="height: 3px"></div>
+ </div>
+ <div class="o-rating_key__score o-rating_key__score--good
+ i-rating-key__score i-rating-key__score--good left" data-rating-from="70" data-rating-to="85"><span
+ class="o-rating_key__score__label i-rating-key__score__label c-gray-2">Good</span>
+ <div class="inline-block full-width bg-rating-70"
+ style="height: 3px"></div>
+ </div>
+ <div class="o-rating_key__score o-rating_key__score--excellent
+ i-rating-key__score i-rating-key__score--excellent left" data-rating-from="85" data-rating-to="100"><span
+ class="o-rating_key__score__label i-rating-key__score__label c-gray-2">Excellent</span>
+ <div class="inline-block full-width bg-rating-85"
+ style="height: 3px"></div>
+ </div>
+ <figcaption class="t-meta mt-5">Key</figcaption>
+ </figure>
+ </div>
+ </h4>
+ <div class="border-top pt-20 mt-30 cf relative">
+ <div class="table">
+ <div class="table-cell">
+ <div class="t-meta"><a href="/products/microsoft/"
+ class="th-topic">Microsoft</a>
+ </div>
+ <div class="t-meta th-title mt-5"><a
+ href="/products/microsoft/xbox/one/x">Xbox</a>
+ </div>
+ </div>
+ <div class="table-cell">
+ <div class="grid">
+ <div class="grid__cell col-1-of-3">
+ <div class="relative t-15"><span
+ class="th-meta inline-block">from</span>&nbsp;<span
+ class="t-h4-b inline-block">$610.00</span>
+ </div>
+ </div>
+ <div class="grid__cell col-2-of-3">
+ <!-- buy-button-alt -->
+ <a href="/buylink/110829"
+ class="o-btn o-btn--medium th-btn-alt c-white@tp-"
+ target="_blank">
+ <div class="t-btn"> Buy Now
+ <div class="ml-10 inline-block hide@m-">
+ <svg class="icon t-1 relative">
+ <use xlink:href="#icon-link-off"></use>
+ </svg>
+ </div>
+ </div>
+ </a>
+ </div>
+ </div>
+ </div>
+ <div class="table-cell w-60">
+ <!-- rating -->
+ <div class="o-rating bg-rating-85 c-white w-60 h-60 ml-20 right">
+ <div class="o-rating__inner t-rating-large">
+ 87
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="mt-35 border-top">
+ <!-- pros-cons -->
+ <div class="grid mt-30">
+ <div class="grid__cell col-1-of-2@m+ ">
+ <h5 class="t-list-header">Pros</h5>
+ <ul class="t-bullet-list-large mt-20 c-gray-3">
+ <li class="bulleted bulleted--large">Most
+ powerful hardware ever in a home console
+ </li>
+ <li class="bulleted bulleted--large">Solid
+ selection of enhanced titles
+ </li>
+ <li class="bulleted bulleted--large">4K Blu-ray
+ drive is great for movie fans
+ </li>
+ </ul>
+ </div>
+ <div class="grid__cell col-1-of-2@m+ grid-divider@m+ mt-20@m-">
+ <h5 class="t-list-header">Cons</h5>
+ <ul class="t-bullet-list-large mt-20 c-gray-3">
+ <li class="bulleted bulleted--large">Expensive
+ </li>
+ <li class="bulleted bulleted--large">Not worth
+ it if you don’t have a 4K TV
+ </li>
+ <li class="bulleted bulleted--large">Still no VR
+ support
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div class="mt-35 pb-35 pt-35 border-top border-bottom">
+ <h4 class="t-list-header">Summary</h4>
+ <p class="t-d3 mt-15">As promised, the Xbox One X is the
+ most powerful game console ever. In practice, though, it
+ really just puts Microsoft on equal footing with Sony’s
+ PlayStation 4 Pro. 4K/HDR enhanced games look great, but
+ it’s lack of VR is disappointing in 2017.</p>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="js-notMobileReferredByFbTw">
+ <!-- continued contents -->
+ <div class="o-article_block pb-15 pb-5@m- mt-n35 mt-n25@m mt-n15@s">
+ <div class="grid@tl+">
+ <div class="full-width@tp- grid@tl+__cell col-8-of-12@tl+">
+ <div class="article-text c-gray-1 Array">
+ <h3>Hardware</h3>
+ <p><img data-credit="Devindra Hardawar/AOL"
+ data-mep="2181678"
+ src="https://o.aolcdn.com/images/dims?crop=1600%2C1067%2C0%2C0&amp;quality=85&amp;format=jpg&amp;resize=1600%2C1067&amp;image_uri=http%3A%2F%2Fo.aolcdn.com%2Fhss%2Fstorage%2Fmidas%2F93beb86758ae1cf95721699e1e006e35%2F205826074%2FXbox%2BOne%2BX%2Breview%2Bgallery%2B7.jpg&amp;client=a1acac3e1b3290917d92&amp;signature=c0f2d36259c2c1decfb60aae364527cda2560d4a"
+ alt=""></img></p>
+ <p>Despite all the power inside, the One X is
+ Microsoft's smallest console to date. It looks
+ similar to the Xbox One S, except it has an entirely
+ matte black case and is slightly slimmer. It's also
+ surprisingly dense -- the console weighs 8.4 pounds,
+ but it feels far heavier than you'd expect for its
+ size, thanks to all of its new hardware. The One S,
+ in comparison, weighs two pounds less.</p>
+ <p>The Xbox One X's real upgrades are under the hood. It
+ features an 8-core CPU running at 2.3Ghz, 12GB of
+ GDDR5 RAM, a 1 terabyte hard drive and an upgraded
+ AMD Polaris GPU with 6 teraflops of computing power.
+ The PS4 Pro has only 8GB of RAM and tops out at 4.2
+ teraflops. Microsoft's console is clearly faster.
+ That additional horsepower means the Xbox One X can
+ run more games in full native 4K than the Sony's
+ console.</p>
+ <p><img data-credit="Devindra Hardawar/AOL"
+ data-mep="2182489"
+ src="https://o.aolcdn.com/images/dims?crop=1600%2C949%2C0%2C0&amp;quality=85&amp;format=jpg&amp;resize=1600%2C949&amp;image_uri=http%3A%2F%2Fo.aolcdn.com%2Fhss%2Fstorage%2Fmidas%2F9ece7fdad1e7025dec06ac9bf98688d0%2F205826075%2FXbox%2BOne%2BX%2Breview%2Bgallery%2B5.jpg&amp;client=a1acac3e1b3290917d92&amp;signature=9913883753141e7df322616bfe0bc41c6ecd80c8"
+ alt=""></img></p>
+ <p>Along the front, there's the slot-loading 4K Blu-ray
+ drive, a physical power button, a single USB port
+ and a controller pairing button. And around back,
+ there are HDMI out and in ports, the latter of which
+ lets you plug in your cable box. Additionally, there
+ are two USB ports, connections for optical audio, IR
+ out, and gigabit Ethernet. If you've still got a
+ Kinect around, you'll need to use a USB adapter to
+ plug it in.</p>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="o-article_block pb-0 pt-0">
+ <div class="move-up@tp- full-width@tp-">
+ <!-- article-full-bleed -->
+ <!-- article-figure -->
+ <div class="js-breakout-container"
+ data-engadget-breakout-type="image">
+ <figure><img
+ src="https://o.aolcdn.com/images/dims?resize=980%2C640&amp;quality=100&amp;image_uri=https%3A%2F%2Fo.aolcdn.com%2Fimages%2Fdims%3Fcrop%3D1599%252C1043%252C0%252C0%26quality%3D85%26format%3Djpg%26resize%3D1600%252C1043%26image_uri%3Dhttp%253A%252F%252Fo.aolcdn.com%252Fhss%252Fstorage%252Fmidas%252F8b98ec8f6649158fe7448ac2f2695ac5%252F205826072%252FXbox%252BOne%252BX%252Breview%252Bgallery%252B6.jpg%26client%3Da1acac3e1b3290917d92%26signature%3D353dad1308f98c2c9dfc82c58a540a8b2f1fe63c&amp;client=cbc79c14efcebee57402&amp;signature=60b7c061460d0d45f5d367b8a9c62978af6b76ce"
+ class="stretch-img"></img>
+ <figcaption class="mt-15 t-meta c-gray-3"><span
+ class="c-gray-7">Devindra Hardawar/AOL</span>
+ </figcaption>
+ </figure>
+ </div>
+ </div>
+ </div>
+ <div class="o-article_block pb-10 pb-5@m- cf@tp-">
+ <div class="grid@tl+">
+ <div class="move-up@tp- full-width@tp- grid@tl+__cell col-8-of-12@tl+">
+ <div class="article-text c-gray-1">
+ <p>The console's controller hasn't changed since its
+ last mini-upgrade with the Xbox One S. That revision
+ rounded out its seams, improved bumper performance
+ and added a 3.5mm headphone jack. It's still a great
+ controller, though I'm annoyed Microsoft is sticking
+ with AA batteries as their default power source.
+ Sure, you could just pick up some renewable
+ batteries, or the Play and Charge kit, but that's an
+ extra expense. And manually swapping batteries feels
+ like a bad user experience when every other console
+ has rechargeable controllers.</p>
+ <h3>In use</h3>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="o-article_block pb-0 pt-0">
+ <div class="move-up@tp- full-width@tp-">
+ <!-- article-full-bleed -->
+ <!-- article-figure -->
+ <div class="js-breakout-container"
+ data-engadget-breakout-type="image">
+ <figure><img
+ src="https://o.aolcdn.com/images/dims?resize=980%2C640&amp;quality=100&amp;image_uri=https%3A%2F%2Fo.aolcdn.com%2Fimages%2Fdims%3Fcrop%3D1600%252C900%252C0%252C0%26quality%3D85%26format%3Djpg%26resize%3D1600%252C900%26image_uri%3Dhttp%253A%252F%252Fo.aolcdn.com%252Fhss%252Fstorage%252Fmidas%252F1885534bd201fc37481b806645c1fc8b%252F205828119%252FXbox%252Bone%252BX%252Bscreenshot%252Bgallery%252B8.jpg%26client%3Da1acac3e1b3290917d92%26signature%3Df63cf67c88b37fd9424855984e45f6b950c8c11a&amp;client=cbc79c14efcebee57402&amp;signature=0adca80fc8ee26a7353be639082881450a5ad49f"
+ class="stretch-img"></img>
+ <figcaption class="mt-15 t-meta c-gray-3"><span
+ class="c-gray-7">Devindra Hardawar/AOL</span>
+ </figcaption>
+ </figure>
+ </div>
+ </div>
+ </div>
+ <div class="o-article_block pb-10 pb-5@m- cf@tp-">
+ <div class="grid@tl+">
+ <div class="move-up@tp- full-width@tp- grid@tl+__cell col-8-of-12@tl+">
+ <div class="article-text c-gray-1">
+ <p>You won't find any major differences between the One
+ X and the last Xbox at first — aside from a more
+ dramatic startup sequence. Navigating the Xbox
+ interface is fast and zippy, but mostly that's due
+ to a recent OS upgrade. If you're moving over from
+ an older Xbox One, you can use the backup tool to
+ transfer your games and settings to an external hard
+ drive. Just plug that into the new console during
+ setup and it'll make it feel just like your old
+ machine. It's also a lot faster than waiting for
+ everything to download from Xbox Live.</p>
+ <p>You'll still have to set aside some time if you want
+ to play an Xbox One X-enhanced title, though. Those
+ 4K textures will make games significantly larger,
+ but Microsoft says it's come up with a few ways to
+ help developers make downloading them more
+ efficient. For example, language packs and other
+ optional content won't get installed by default.</p>
+ <p>We only had a few enhanced titles to test out during
+ our review: <em>Gears of War 4</em>, <em>Killer
+ Instinct</em> and <em>Super Lucky's Tale</em>.
+ They each took advantage of the console in different
+ ways. <em>Gears of War 4</em> runs natively in 4K at
+ 30 FPS with Dolby Atmos and HDR (high dynamic range
+ lighting) support. It looked great -- especially
+ with HDR, which highlighted bright elements like
+ lightning strikes -- but I noticed the frame rate
+ dip occasionally. I was also surprised that load
+ times were on-par with what I've seen with the game
+ on the Xbox One S.</p>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="o-article_block o-subtle_divider pb-10 pb-5@m-">
+ <div class="mt-n40">
+ <div class="move-up@tp- full-width@tp- pt-40 js-breakout-container"
+ data-engadget-breakout-type="e2ehero">
+ <!-- article-full-bleed -->
+ <div class="pull-3-of-12@d">
+ <div class="ml-n10@d">
+ <div class="ml-i mr-i">
+ <div class="ml-a mr-a full-screen-width">
+ <!-- article-hero -->
+ <figure class="contain "><img
+ src="https://o.aolcdn.com/images/dims?crop=1600%2C900%2C0%2C0&amp;quality=85&amp;format=jpg&amp;resize=1600%2C900&amp;image_uri=http%3A%2F%2Fo.aolcdn.com%2Fhss%2Fstorage%2Fmidas%2F8352a8a14e88e2ca2ba5be4d8381a055%2F205828115%2FXbox%2Bone%2BX%2Bscreenshot%2Bgallery%2B1.jpg&amp;client=a1acac3e1b3290917d92&amp;signature=d2ccb22e0eaabeb05bfe46e83dbe26fd07f01da8"
+ class="stretch-img"></img>
+ <div class="container@tp- contain@tl+__inner">
+ <div class="grid@tl+ full-height ">
+ <div class="grid@tl+__cell full-height col-4-of-15@tl+ ta-l">
+ <div class="full-height relative@tl+"></div>
+ </div>
+ </div>
+ </div>
+ </figure>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="o-article_block pb-10 pb-5@m- cf@tp- js-after-hero-quote">
+ <div class="grid@tl+">
+ <div class="move-up@tp- full-width@tp- grid@tl+__cell col-8-of-12@tl+">
+ <div class="article-text c-gray-1">
+ <p>You can also play in Performance mode, which bumps
+ the frame rate up to 60FPS and uses higher quality
+ graphical effects, while rendering it lower in
+ 1080p. Personally, I preferred this, since it makes
+ the game much smoother -- as if you're playing it on
+ a high-end gaming PC, not a console. Some
+ PlayStation 4 Pro games also let you choose how you
+ wanted to distribute its power, so in some ways
+ Microsoft is just following in its footsteps.</p>
+ <p>I've been playing <em>Gears of War 4</em> on my
+ gaming PC (which is connected to my home theater)
+ over the past year, and I was impressed that the
+ Xbox One X is able to deliver a similar experience.
+ It didn't quite match my rig though, which is
+ powered by Intel Core i7 4790k CPU running at 4GHz,
+ 16GB DDR3 RAM and an NVIDIA GTX 1080 GPU. Typically,
+ I play at 1,440p (2,560 by 1,440 pixels) with HDR
+ and all of the graphical settings set to their
+ highest level, and I can easily maintain a 60FPS
+ frame rate. The One X felt just as solid at 1080p,
+ but there were clearly plenty of graphics settings
+ it couldn't take advantage of, in particular higher
+ levels of bloom lighting and shadow detail.</p>
+ <!-- inline article gal -->
+ </div>
+ </div>
+ </div>
+ </div>
+ <!-- article-gallery-breakout -->
+ <div class="o-article_block o-subtle_divider">
+ <div class="mt-n40">
+ <div class="move-up@tp- full-width@tp- pt-40 js-breakout-container"
+ data-engadget-breakout-type="gallery">
+ <section>
+ <h3 class="t-section-title mb-35 mb-15@s"> Gallery: Xbox
+ One X screenshots | 9 Photos </h3>
+ <div class="relative" data-behavior="lightbox_trigger"
+ data-engadget-slideshow-id="803330"
+ data-eng-bang="{&quot;gallery&quot;:803330,&quot;slide&quot;:7142924}"
+ data-eng-mn="93511844"><a href="#" data-index="0"
+ data-engadget-slide-id="7142924"
+ data-eng-bang="{&quot;gallery&quot;:803330,&quot;slide&quot;:7142924}">
+ <img src="https://o.aolcdn.com/images/dims?thumbnail=980%2C653&amp;quality=80&amp;image_uri=https%3A%2F%2Fs.blogcdn.com%2Fslideshows%2Fimages%2Fslides%2F714%2F292%2F4%2FS7142924%2Fslug%2Fl%2Fxbox-one-x-screenshot-gallery-2-1.jpg&amp;client=cbc79c14efcebee57402&amp;signature=38c95635c7aad58a8a48038e05589f5cf35b1e28"
+ class="stretch-img"></img>
+ </a>
+ <div class="hide@tp+ t-meta absolute b-0 l-0 c-white">
+ <svg class="inline-block slideshow-icon vm mr-n15">
+ <use xlink:href="#icon-slideshow"></use>
+ </svg>
+ 9
+ </div>
+ <ul class="hide@m- absolute b-0 l-0 ml-n10 pt-10 pr-10 bg-white">
+ <li class="ml-10 inline-block vt contain"><a
+ href="#" data-index="1"
+ data-engadget-slide-id="7142925"
+ data-eng-bang="{&quot;gallery&quot;:803330,&quot;slide&quot;:7142925}">
+ <img src="https://o.aolcdn.com/images/dims?thumbnail=130%2C87&amp;quality=80&amp;image_uri=https%3A%2F%2Fs.blogcdn.com%2Fslideshows%2Fimages%2Fslides%2F714%2F292%2F5%2FS7142925%2Fslug%2Fl%2Fxbox-one-x-screenshot-gallery-3-1.jpg&amp;client=cbc79c14efcebee57402&amp;signature=4dfa6e80acd3f2286ec97fadee78f05d440b1b64"></img>
+ </a></li>
+ <li class="ml-10 inline-block vt contain"><a
+ href="#" data-index="2"
+ data-engadget-slide-id="7142926"
+ data-eng-bang="{&quot;gallery&quot;:803330,&quot;slide&quot;:7142926}">
+ <img src="https://o.aolcdn.com/images/dims?thumbnail=130%2C87&amp;quality=80&amp;image_uri=https%3A%2F%2Fs.blogcdn.com%2Fslideshows%2Fimages%2Fslides%2F714%2F292%2F6%2FS7142926%2Fslug%2Fl%2Fxbox-one-x-screenshot-gallery-4-1.jpg&amp;client=cbc79c14efcebee57402&amp;signature=e35908c4fa292b0578fb81152657eea02ae148fd"></img>
+ </a></li>
+ <li class="ml-10 inline-block vt contain"><a
+ href="#" data-index="3"
+ data-engadget-slide-id="7142927"
+ data-eng-bang="{&quot;gallery&quot;:803330,&quot;slide&quot;:7142927}">
+ <img src="https://o.aolcdn.com/images/dims?thumbnail=130%2C87&amp;quality=80&amp;image_uri=https%3A%2F%2Fs.blogcdn.com%2Fslideshows%2Fimages%2Fslides%2F714%2F292%2F7%2FS7142927%2Fslug%2Fl%2Fxbox-one-x-screenshot-gallery-5-1.jpg&amp;client=cbc79c14efcebee57402&amp;signature=894210646519be60ae021b1835372b3fb2055339"></img>
+ </a></li>
+ <li class="ml-10 inline-block vt contain"><a
+ href="#" data-index="4"
+ data-engadget-slide-id="7142923"
+ data-eng-bang="{&quot;gallery&quot;:803330,&quot;slide&quot;:7142923}">
+ <img src="https://o.aolcdn.com/images/dims?thumbnail=130%2C87&amp;quality=80&amp;image_uri=https%3A%2F%2Fs.blogcdn.com%2Fslideshows%2Fimages%2Fslides%2F714%2F292%2F3%2FS7142923%2Fslug%2Fl%2Fxbox-one-x-screenshot-gallery-1-1.jpg&amp;client=cbc79c14efcebee57402&amp;signature=9a6cc2c58efde1b4dbd4989d5a534ae67dac6f2e"></img>
+ </a>
+ <a href="#" data-index="grid"
+ data-engadget-slide-type="grid"
+ data-eng-bang="{&quot;gallery&quot;:803330,&quot;view&quot;:&quot;grid&quot;}"
+ class="contain__inner bg-gray-1 translucent">
+ <div class="t-article-gallery-count absolute b-10 l-15 c-white">
+ +6
+ </div>
+ </a>
+ </li>
+ </ul>
+ </div>
+ </section>
+ </div>
+ </div>
+ </div>
+ <div class="o-article_block o-subtle_divider pb-15 pb-5@m- cf@tp-">
+ <div class="grid@tl+">
+ <div class="move-up@tp- full-width@tp- grid@tl+__cell col-8-of-12@tl+">
+ <div class="article-text c-gray-1">
+ <p><em>Killer Instinct</em> and <em>Super Lucky's
+ Tale</em> run in 4K at a smooth 60FPS. They both
+ looked and played better than their standard
+ versions, though I was surprised they didn't take
+ advantage of HDR. As usual, I noticed the
+ improvement in frame rates more than the higher
+ resolution. Unless you're sitting very close to a TV
+ above 50-inches, you'd likely have a hard time
+ telling between 4K and 1080p.</p>
+ <p>That poses a problem for Microsoft: It's betting that
+ gamers will actually want true 4K rendering. In
+ practice, though, PlayStation 4 Pro titles running
+ in HDR and resolutions between 1080p and 4K often
+ look just as good to the naked eye. The Xbox One X's
+ big advantage is that its hardware could let more
+ games reach 60FPS compared to Sony's console.</p>
+ <p>Microsoft says over 130 Xbox One X-enhanced titles
+ are in the works. That includes already-released
+ games like <em>Forza Motorsport 7</em> and <em>Assassin's
+ Creed Origins</em>, as well as upcoming titles
+ like <em>Call of Duty: WW2</em>. You'll be able to
+ find them easily in a special section in the Xbox
+ store. There is also a handful of Xbox 360 games
+ that'll get enhanced eventually, including <em>Halo
+ 3</em> and <em>Fallout 3</em>. Some of those
+ titles will get bumped up to a higher resolution,
+ while others will get HDR support. Microsoft
+ describes these upgrades as a bonus for developers
+ who were prescient about how they built their games.
+ Basically, don't expect your entire 360 library to
+ get enhanced.</p>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="o-article_block o-subtle_divider pb-10 pb-5@m-">
+ <div class="mt-n40">
+ <div class="move-up@tp- full-width@tp- pt-40 js-breakout-container"
+ data-engadget-breakout-type="e2ehero">
+ <!-- article-full-bleed -->
+ <div class="pull-3-of-12@d">
+ <div class="ml-n10@d">
+ <div class="ml-i mr-i">
+ <div class="ml-a mr-a full-screen-width">
+ <!-- article-hero -->
+ <figure class="contain "><img
+ src="https://o.aolcdn.com/images/dims?crop=1600%2C900%2C0%2C0&amp;quality=85&amp;format=jpg&amp;resize=1600%2C900&amp;image_uri=http%3A%2F%2Fo.aolcdn.com%2Fhss%2Fstorage%2Fmidas%2Facb08903fbe26ad77b80db8c8e7e8fb1%2F205828118%2FXbox%2Bone%2BX%2Bscreenshot%2Bgallery%2B7.jpg&amp;client=a1acac3e1b3290917d92&amp;signature=21630fa5ec6d8fdce2c35f7e1f652636a2d8efe7"
+ class="stretch-img"></img>
+ <div class="container@tp- contain@tl+__inner">
+ <div class="grid@tl+ full-height ">
+ <div class="grid@tl+__cell full-height col-4-of-15@tl+ ta-l">
+ <div class="full-height relative@tl+"></div>
+ </div>
+ </div>
+ </div>
+ </figure>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="o-article_block pb-10 pb-5@m- cf@tp- js-after-hero-quote">
+ <div class="grid@tl+">
+ <div class="move-up@tp- full-width@tp- grid@tl+__cell col-8-of-12@tl+">
+ <div class="article-text c-gray-1">
+ <p>Even if a game isn't specifically tuned for the new
+ console, Microsoft says you might still see some
+ performance improvements. The PlayStation 4 Pro,
+ meanwhile, has over one hundred games built for its
+ hardware, and its boost mode can speed up some older
+ games.</p>
+ <p>Microsoft is still pushing the Xbox as more than just
+ a game console, though. 4K Blu-rays loaded up
+ quickly, and I didn't notice many delays as I
+ skipped around films. <em>Planet Earth II</em>, in
+ particular, looked fantastic thanks to its brilliant
+ use of HDR. Unfortunately, the One X doesn't support
+ Dolby Vision, so you're stuck with the slightly less
+ capable HDR 10 standard. That makes sense since it's
+ more widely supported, but it would have been nice
+ to see Dolby's, too.</p>
+ <p>
+ <iframe allowfullscreen="" frameborder="0"
+ gesture="media" height="360"
+ src="https://www.youtube.com/embed/c8aFcHFu8QM"
+ width="640"></iframe>
+ </p>
+ <p>And speaking of Dolby technology, Microsoft is also
+ highlighting Atmos support on the One X, just like
+ it did with the One S. The company's app lets you
+ configure the console to pass audio Atmos signals to
+ your audio receiver. You can also shell out $15 to
+ get Atmos support for headphones, which simulates
+ immersive surround sound. It's strange to pay money
+ to unlock Dolby features, but it's worth it since
+ it's significantly better than Microsoft's audio
+ virtualization technology. The Netflix app also
+ supports Atmos for a handful of films (something
+ that the Xbox One S and PlayStation 4 offer, as
+ well).</p>
+ <p>One thing you won't find in the new Xbox is VR
+ support. Microsoft has mentioned that the console
+ will offer some sort of mixed reality, but it hasn't
+ offered up any details yet. It's technically
+ powerful enough to work with any of the Windows
+ Mixed Reality headsets launching this fall. It's a
+ shame that Microsoft is being so wishy-washy because
+ Sony has had a very successful head start with the
+ PlayStation VR.</p>
+ <h3>Pricing and the competition</h3>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="o-article_block pb-0 pt-0">
+ <div class="move-up@tp- full-width@tp-">
+ <!-- article-full-bleed -->
+ <!-- article-figure -->
+ <div class="js-breakout-container"
+ data-engadget-breakout-type="image">
+ <figure><img
+ src="https://o.aolcdn.com/images/dims?resize=980%2C640&amp;quality=100&amp;image_uri=https%3A%2F%2Fo.aolcdn.com%2Fimages%2Fdims%3Fcrop%3D1600%252C1027%252C0%252C0%26quality%3D85%26format%3Djpg%26resize%3D1600%252C1027%26image_uri%3Dhttp%253A%252F%252Fo.aolcdn.com%252Fhss%252Fstorage%252Fmidas%252Fa2c8ba1caccdbb9e0559797e5141eafd%252F205826078%252FXbox%252BOne%252BX%252Breview%252Bgallery%252B11.jpg%26client%3Da1acac3e1b3290917d92%26signature%3Da11bcddced805c6e3698f8ce0494102aef057265&amp;client=cbc79c14efcebee57402&amp;signature=1e9bd192add2772bc842a34e67b7572cfd1b265a"
+ class="stretch-img"></img>
+ <figcaption class="mt-15 t-meta c-gray-3"><span
+ class="c-gray-7">Devindra Hardawar/AOL</span>
+ </figcaption>
+ </figure>
+ </div>
+ </div>
+ </div>
+ <div class="o-article_block pb-10 pb-5@m- cf@tp-">
+ <div class="grid@tl+">
+ <div class="move-up@tp- full-width@tp- grid@tl+__cell col-8-of-12@tl+">
+ <div class="article-text c-gray-1">
+ <p>The biggest knock against the Xbox One X is its $500
+ price. The PS4 Pro launched at $400 last year, and
+ there's a good chance we'll see plenty of deals
+ around the holidays. If your friends are on Xbox
+ Live, or you're a devotee of Microsoft's first party
+ franchises, then the X makes more sense. If you just
+ want to play third-party titles that come to both
+ platforms, though, the PS4 Pro is clearly the better
+ deal.</p>
+ <p>If you're looking to upgrade from an original Xbox
+ One, and you have a new TV, the One X might be more
+ compelling. It's faster and offers more features
+ than the One S, and more importantly, it'll last you
+ much longer without needing an upgrade. There's also
+ plenty of wisdom in simply waiting a while before
+ you buy the One X, especially if you haven't moved
+ to a 4K TV yet. The new console can make games look
+ better on 1080p sets, since it'll supersample
+ high-res textures and have more graphical effects,
+ but it's simply not worth the upgrade since those
+ TVs don't support HDR.</p>
+ <p>If price isn't a huge concern for you, it's worth
+ considering investing in a gaming PC. A decent one
+ costs between $600 and $800, plus the price of a
+ monitor, but it'll easily be more powerful than the
+ One X. And you have the added benefit of upgrading
+ components down the line. Now that Microsoft and
+ game publishers are offering most major titles on
+ PC, you won't be missing out on much by ditching
+ consoles.</p>
+ <h3>Wrap-up</h3>
+ <p><img data-credit="Devindra Hardawar/AOL"
+ data-mep="2181681"
+ src="https://o.aolcdn.com/images/dims?crop=1600%2C1028%2C0%2C0&amp;quality=85&amp;format=jpg&amp;resize=1600%2C1028&amp;image_uri=http%3A%2F%2Fo.aolcdn.com%2Fhss%2Fstorage%2Fmidas%2F5396460ef8b6bde7fb7272d9e66a7701%2F205826076%2FXbox%2BOne%2BX%2Breview%2Bgallery%2B9.jpg&amp;client=a1acac3e1b3290917d92&amp;signature=f5b5b4b986c2f8b5031a4469ae0ecec82aff65b0"
+ alt=""></img></p>
+ <p>Ultimately, the Xbox One X offers some major
+ performance upgrades that gamers will notice --
+ especially if you're coming from an original Xbox
+ One. But it's also a bit disappointing since it's
+ coming a year after the PS4 Pro, and it doesn't
+ offer VR yet. For Microsoft fans, though, none of
+ that will matter. It's exactly what the company
+ promised: the fastest game console ever made.</p>
+ </div>
+ </div>
+ </div>
+ </div>
+ <!-- footer -->
+ <footer class="o-article_block">
+ <div class="grid@tl+ mt-n40">
+ <div class="grid@tl+__cell col-8-of-12@tl+ pb-80@tp+ pb-120@d ">
+ <div class="pb-35 border-top mt-20 mt-35@s pt-35 pt-30@m pt-25@s pb-25@s break-out@s">
+ <section class="t-meta c-gray-3">
+ <div class="mt-5">In this article: <span
+ class="th-meta">
+ <a href="/tag/av" class="th-meta">av</a>, <a href="/tag/consoles" class="th-meta">consoles</a>, <a
+ href="/tag/entertainment" class="th-meta">entertainment</a>, <a
+ href="/tag/gadgetry" class="th-meta">gadgetry</a>, <a
+ href="/tag/gadgets"
+ class="th-meta">gadgets</a>, <a
+ href="/tag/gaming"
+ class="th-meta">gaming</a>, <a
+ href="/tag/gear" class="th-meta">gear</a>, <a
+ href="/tag/microsoft" class="th-meta">microsoft</a>, <a
+ href="/tag/review"
+ class="th-meta">review</a>, <a
+ href="/tag/video" class="th-meta">video</a>, <a
+ href="/tag/videogames" class="th-meta">videogames</a>, <a
+ href="/tag/Xbox" class="th-meta">Xbox</a>, <a
+ href="/tag/XboxOne"
+ class="th-meta">XboxOne</a>, <a
+ href="/tag/XboxOneX" class="th-meta">XboxOneX</a> </span>
+ </div>
+ </section>
+ </div>
+ <div class="border-top pt-40 pt-30@s break-out@s pb-35">
+ <div class="table">
+ <div class="table-cell w-100@m+ w-55@s"><a
+ href="/about/editors/devindra-hardawar/">
+ <img src="https://o.aolcdn.com/images/dims?thumbnail=100%2C100&amp;quality=80&amp;image_uri=http%3A%2F%2Fwww.blogcdn.com%2Fwww.engadget.com%2Fmedia%2F2016%2F03%2Fdevindra-engadget-headshot-small.jpg&amp;client=cbc79c14efcebee57402&amp;signature=30e2e66c20e041451c3d8f10afbba87b97998f2b"
+ class="circle-mask"></img>
+ </a></div>
+ <div class="table-cell pl-30 pl-20@s"><span
+ class="t-list-header@m+ t-meta@s">By <a
+ href="/about/editors/devindra-hardawar/">Devindra Hardawar</a></span>
+ <a href="https://twitter.com/devindra"
+ class="t-meta th-meta mt-5">@devindra</a>
+ </div>
+ </div>
+ <div class="t-d6 c-gray-3 mt-35 hide@s">Devindra has
+ been obsessed with technology for as long as he can
+ remember -- starting with the first time he ever
+ glimpsed an NES. He spent several years fixing other
+ people's computers before he started down the
+ treacherous path of writing about technology.
+ Mission accomplished?
+ </div>
+ </div>
+ <!-- article-comments -->
+ <div class="table@m+ pt-40@m+ pb-40@m+ border-top@m+ hide@s">
+ <div class="table-cell@m+"><span
+ class="t-h3@m+ pb-5 pl-30@s">2192</span> <span
+ class="t-meta@m+ pb-0 c-gray-7@m+">Shares</span>
+ </div>
+ <div class="table-cell@m+ ta-r@m+ c-gray-9">
+ <div class="o-social_nav@m+">
+ <!-- share-macro -->
+ <div class="o-social_nav__item"
+ data-tooltip-outer=""><a
+ href="https://www.facebook.com/dialog/share?app_id=132746074315&amp;display=popup&amp;href=https%3A%2F%2Fwww.engadget.com%2F2017%2F11%2F03%2Fxbox-one-x-review%2F"
+ class="inline-block pl-10@s th-meta sharebtn facebook-share"
+ data-behavior="Tooltip Pop"
+ target="_blank"
+ data-engadget-popname="engadget_share"
+ data-engadget-pop-w="560"
+ data-engadget-h="636">
+ <svg class="inline-block icon vm th-meta__icon">
+ <use xlink:href="#icon-facebook"></use>
+ </svg>
+ </a>
+ <div class="hide" data-tooltip-content="">
+ <div class="o-tooltip ta-c th-reverse">
+ <div class="t-meta th-meta"><span
+ class="c-white">Share</span>
+ <span data-share-count-facebook=""></span>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="o-social_nav__item"
+ data-tooltip-outer=""><a
+ href="https://twitter.com/share?url=https%3A%2F%2Fwww.engadget.com%2F2017%2F11%2F03%2Fxbox-one-x-review%2F&amp;text=Xbox%20One%20X%20review%3A%20%20A%20console%20that%20keeps%20up%20with%20gaming%20PCs&amp;via=engadget"
+ class="inline-block pl-10@s th-meta sharebtn twitter-share"
+ data-behavior="Tooltip Pop"
+ target="_blank"
+ data-engadget-popname="engadget_share"
+ data-engadget-pop-w="670"
+ data-engadget-h="430">
+ <svg class="inline-block icon vm th-meta__icon">
+ <use xlink:href="#icon-twitter"></use>
+ </svg>
+ </a>
+ <div class="hide" data-tooltip-content="">
+ <div class="o-tooltip ta-c th-reverse">
+ <div class="t-meta th-meta"><span
+ class="c-white">Tweet</span>
+ <span data-share-count-twitter=""></span>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="o-social_nav__item "
+ data-tooltip-outer=""><a
+ href="https://www.reddit.com/submit?url=https%3A%2F%2Fwww.engadget.com%2F2017%2F11%2F03%2Fxbox-one-x-review%2F&amp;title=Xbox%20One%20X%20review%3A%20%20A%20console%20that%20keeps%20up%20with%20gaming%20PCs"
+ class="inline-block pl-10@s th-meta sharebtn reddit-share"
+ data-behavior="Tooltip Pop"
+ target="_blank"
+ data-engadget-popname="engadget_share"
+ data-engadget-pop-w="960"
+ data-engadget-h="750">
+ <svg class="inline-block icon vm th-meta__icon">
+ <use xlink:href="#icon-reddit"></use>
+ </svg>
+ </a>
+ <div class="hide" data-tooltip-content="">
+ <div class="o-tooltip ta-c th-reverse">
+ <div class="t-meta th-meta"><span
+ class="c-white">Share</span>
+ <span data-share-count-reddit=""></span>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="o-social_nav__item"
+ data-tooltip-outer=""><a
+ href="javascript:;"
+ class="inline-block pl-10@s th-meta"
+ data-engadget-reading-list-id="23265143"
+ data-engadget-reading-list-type="post"
+ data-behavior="Tooltip AddToReadingList"
+ target="_blank"
+ data-engadget-auth="false">
+ <svg class="inline-block icon vm th-meta__icon">
+ <use xlink:href="#icon-save"></use>
+ </svg>
+ </a>
+ <div class="hide" data-tooltip-content="">
+ <div class="o-tooltip ta-c th-reverse">
+ <div class="t-meta th-meta"><span
+ class="c-white">Save</span>
+ <span data-share-count-save=""></span>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <section id="recirculation"
+ class="border-top@m+ pt-40@s+ pb-40@s+">
+ <div data-spotim-module="recirculation"
+ data-spot-id="sp_f76RE06N"></div>
+ </section>
+ <section id="comments" class="border-top@m+ border-bottom@s"
+ data-site-id="20"
+ data-engadget-svg-assets="https://s.blogsmithmedia.com/www.engadget.com/assets-h159e8c9b49d08fd74b1f658dac6e12df/svg/icons.svg?h=bbb41e9a8e18f1699b5c221570e081c2">
+ <header class="table pt-35@m+ pb-10@m+">
+ <div class="table@s">
+ <div class="table-cell@s w-40@s ta-c inline@m+">
+ <svg class="inline-block icon vm@m+ vt@s th-meta__icon hide@m+">
+ <use xlink:href="#icon-comment"></use>
+ </svg>
+ </div>
+ <div class="table-cell@s inline@m+"> <span
+ class="t-h3@m+ pb-5 th-title pl-20@s">
+ <span class="c-gray-6@s spot-im-replies-count" data-post-id="post-23265143"></span> </span> <span
+ class="t-meta@m+ pb-0 c-gray-7@m+ c-gray-6@s">Comments</span>
+ </div>
+ </div>
+ <div class="table-cell ta-r">
+ <div class="hide@s"><a href="/user/login/"
+ class="o-btn o-btn--small th-btn w-120"
+ target="_blank"
+ data-behavior="Pop"
+ data-engadget-popname="engadget_auth_window">
+ <span class="t-btn">Sign In</span>
+ </a></div>
+ </div>
+ </header>
+ <div class="spot-im-frame-inpage"
+ data-post-id="post-23265143"
+ data-messages-count="0"
+ data-sort-by="newest"></div>
+ </section>
+ </div>
+ </div>
+ </footer>
+ </div>
+ </div>
+ </div>
+ </div>
+ </article>
+ </div>
+ </div>
+ </div>
+ <!-- section-latest-footer -->
+ <aside class="pb-40@m- pb-20@s pt-25@m mt-25@m- border-top">
+ <div class=" pb-40@tp+ pt-40@tp+">
+ <div class="container@m+">
+ <!-- latest-listing -->
+ <article class="o-hit ">
+ <div class="grid@m+">
+ <div class="hide@tp- grid@tl+__cell col-1-of-8@tl+ col-1-of-15@d">
+ <!-- listing-time-label -->
+ <div class="t-meta th-meta absolute">
+ <svg class="icon inline-block th-meta__icon vm"
+ style="margin-top: -2px; margin-right: 2px">
+ <use xlink:href="#icon-clock"></use>
+ </svg>
+ 52m
+ </div>
+ </div>
+ <div class="grid@m+__cell col-2-of-4@tp col-3-of-8@tl+ col-4-of-15@d">
+ <!-- rating-thumb -->
+ <div class="o-rating_thumb c-white"><img
+ data-original="https://o.aolcdn.com/images/dims?thumbnail=300%2C200&amp;quality=80&amp;image_uri=https%3A%2F%2Fo.aolcdn.com%2Fimages%2Fdims%3Fcrop%3D3000%252C2000%252C0%252C0%26quality%3D85%26format%3Djpg%26resize%3D1600%252C1067%26image_uri%3Dhttp%253A%252F%252Fo.aolcdn.com%252Fhss%252Fstorage%252Fmidas%252F36514d02b27e52baa311efcbcbda2610%252F203644880%252F464270905.jpg%26client%3Da1acac3e1b3290917d92%26signature%3Da29e527af032f490baae3ac233ff2aad96f1b383&amp;client=cbc79c14efcebee57402&amp;signature=58657eab6bc275a3affd3fce9d4357e11d7ec2fc"
+ alt="AMD vows to fix newly-disclosed processor vulnerabilities"
+ class="stretch-img prelazy"></img>
+ <div class="absolute l-0 b-0 b-55@s"></div>
+ <div class="o-rating_thumb__rating b-75@m- z-3">
+ <!-- rating -->
+ </div>
+ </div>
+ </div>
+ <div class="grid@m+__cell col-2-of-4@tp col-4-of-8@tl+ col-10-of-15@d ">
+ <!-- listing-body -->
+ <div class=" o-feed_listing@m- o-feed_bleed@s" data-feed-container="">
+ <div class=" o-feed_listing@m-__mid">
+ <div class=" o-feed_listing@m-__inner th-base@m- break-left@s ">
+ <div class="">
+ <!-- time-label -->
+ <div class="t-meta th-meta inline-block hide@tl+ hide@m-">
+ <svg class="icon inline-block th-meta__icon vm"
+ style="margin-top: -2px; margin-right: 2px">
+ <use xlink:href="#icon-clock"></use>
+ </svg>
+ 52m ago in
+ </div>
+ <!-- topic-link -->
+ <div class="t-meta hide@m- inline-block"><a
+ href="https://www.engadget.com/tags/security"
+ class="th-topic">
+ Security
+ </a></div>
+ </div>
+ <div class="th-title">
+ <h2 class="mt-10@tp+ t-h4@s t-h3-c@m t-h3-b@tp t-h4@tl t-h3@d"> <span
+ class="th-underline">
+ AMD vows to fix newly-disclosed processor vulnerabilities
+ </span></h2>
+ </div>
+ <div class="hide@s mt-10@s">
+ <p class="mt-15@m+ t-d5@m- t-d5@tp+ c-gray-3">The company was
+ given just 24 hours' notice before the flaws were made
+ public.</p>
+ </div>
+ <div class="mt-20@s">
+ <!-- listing-meta-bar -->
+ <div class="">
+ <div class="table@tp+ mt-15@m+ th-meta">
+ <div class="relative inline-block "><a
+ href="/about/editors/rachel-england/">
+ <img class="vc circle-mask absolute l-0 "
+ src="https://o.aolcdn.com/images/dims?thumbnail=30%2C30&amp;quality=70&amp;image_uri=https%3A%2F%2Fs.blogcdn.com%2Fwww.engadget.com%2Fmedia%2F2017%2F06%2Frachelengland-300x300.jpg&amp;client=cbc79c14efcebee57402&amp;signature=c05d26e9ef7778f715b176f03d4781a094f21f6d"
+ width="30px" height="30px"></img>
+ </a>
+ <div class="h-1 w-40 inline-block "></div>
+ <span class="t-meta pb-0 vt mt-5@tp+ w-185@m mr-10@tp+
+ ">
+
+ <span class="hide@m-">By </span> <span class="block@m-"><a href="/about/editors/rachel-england"
+ class="th-meta">R. England</a></span><span
+ class="hide@m- hide@tp">, </span><span
+ class=" hide@tp">
+ &nbsp;52m ago</span></span>
+ </div>
+ <div class="inline-block@tp+ relative@tp+ t-2@tp+ o-feed_share@m- mt-5@m "
+ style="vertical-align: -2px">
+ <div class="o-feed_share@m-__item inline-block@tp+"
+ data-tooltip-outer="">
+ <!-- listing-action --><a href="javascript:;"
+ class=" vc@tp+ ml-a@m- icon th-meta increase-hit "
+ data-engadget-reading-list-id="23391267"
+ data-engadget-reading-list-type="article"
+ data-behavior="Tooltip AddToReadingList"
+ data-engadget-icon="save"
+ target="_blank"
+ data-engadget-auth="false">
+ <span class="increase-hit__inner contain block full-height">
+ <svg class="icon contain__inner th-meta__icon" role="img" aria-label="save">
+ <title>save</title>
+ <use xlink:href="#icon-save"></use>
+ </svg>
+ </span>
+ </a>
+ <div class="hide" data-tooltip-content="">
+ <div class="o-tooltip ta-c th-reverse">
+ <div class="t-meta th-meta"><span
+ class="c-white">Save</span>
+ </div>
+ </div>
+ </div>
+ </div>
+ <!-- share-macro -->
+ <div class="o-feed_share@m-__item icon-divider@tp+ relative i-share_overlay"
+ data-behavior="ShareOverlay">
+ <div class="bg-gray-2 o-share_ui i-share_overlay__over o-h"
+ data-share-overlay-over="">
+ <div style="padding-top: 8px">
+ <div class="icon-20-line-height"><a
+ href="https://twitter.com/share?url=https%3A%2F%2Fwww.engadget.com%2F2018%2F03%2F21%2Famd-vows-to-fix-newly-disclosed-processor-vulnerabilities%2F&amp;text=AMD%20vows%20to%20fix%20newly-disclosed%20processor%20vulnerabilities&amp;via=engadget"
+ class="c-white:hvr block o-share_ui__item sharebtn twitter-share"
+ target="_blank"
+ data-behavior="Pop"
+ data-engadget-popname="engadget_share"
+ data-engadget-pop-w="670"
+ data-engadget-h="430">
+ <svg class="inline-block icon vm">
+ <use xlink:href="#icon-twitter"></use>
+ </svg>
+ </a></div>
+ <div class="icon-20-line-height"><a
+ href="https://www.facebook.com/dialog/share?app_id=132746074315&amp;display=popup&amp;href=https%3A%2F%2Fwww.engadget.com%2F2018%2F03%2F21%2Famd-vows-to-fix-newly-disclosed-processor-vulnerabilities%2F"
+ class="c-white:hvr block o-share_ui__item sharebtn facebook-share"
+ target="_blank"
+ data-behavior="Pop"
+ data-engadget-popname="engadget_share"
+ data-engadget-pop-w="560"
+ data-engadget-h="636">
+ <svg class="inline-block icon vm">
+ <use xlink:href="#icon-facebook"></use>
+ </svg>
+ </a></div>
+ <div class="icon-20-line-height"><a
+ href="https://www.reddit.com/submit?url=https%3A%2F%2Fwww.engadget.com%2F2018%2F03%2F21%2Famd-vows-to-fix-newly-disclosed-processor-vulnerabilities%2F&amp;title=AMD%20vows%20to%20fix%20newly-disclosed%20processor%20vulnerabilities"
+ class="c-white:hvr block o-share_ui__item sharebtn reddit-share"
+ target="_blank"
+ data-behavior="Pop"
+ data-engadget-popname="engadget_share"
+ data-engadget-pop-w="960"
+ data-engadget-h="750">
+ <svg class="inline-block icon vm">
+ <use xlink:href="#icon-reddit"></use>
+ </svg>
+ </a></div>
+ <div class="icon-20-line-height"><a
+ href="mailto:?subject=AMD%20vows%20to%20fix%20newly-disclosed%20processor%20vulnerabilities via Engadget&amp;body=https%3A%2F%2Fwww.engadget.com%2F2018%2F03%2F21%2Famd-vows-to-fix-newly-disclosed-processor-vulnerabilities%2F"
+ class="c-white:hvr block o-share_ui__item"
+ target="_blank"
+ data-behavior="Pop">
+ <svg class="inline-block icon vm">
+ <use xlink:href="#icon-email"></use>
+ </svg>
+ </a></div>
+ </div>
+ </div>
+ <div class="relative i-share_overlay__btn full-height"
+ data-share-overlay-btn="">
+ <!-- listing-action --><a
+ href="javascript:;"
+ class=" c-white:hvr! c-inherit-*:hvr vc@tp+ ml-a@m- icon th-meta increase-hit c-white:hvr! c-inherit-*:hvr">
+ <span class="increase-hit__inner contain block full-height">
+ <svg class="icon contain__inner th-meta__icon" role="img" aria-label="share">
+ <title>share</title>
+ <use xlink:href="#icon-share"></use>
+ </svg>
+ </span>
+ </a></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <a href="/2018/03/21/amd-vows-to-fix-newly-disclosed-processor-vulnerabilities/"
+ class="o-hit__link">
+ View
+ </a></article>
+ </div>
+ </div>
+ <div class="border-top@tp+ pb-40@tp+ pt-40@tp+">
+ <div class="container@m+">
+ <!-- latest-listing -->
+ <article class="o-hit ">
+ <div class="grid@m+">
+ <div class="hide@tp- grid@tl+__cell col-1-of-8@tl+ col-1-of-15@d">
+ <!-- listing-time-label -->
+ <div class="t-meta th-meta absolute">
+ <svg class="icon inline-block th-meta__icon vm"
+ style="margin-top: -2px; margin-right: 2px">
+ <use xlink:href="#icon-clock"></use>
+ </svg>
+ 1h
+ </div>
+ </div>
+ <div class="grid@m+__cell col-2-of-4@tp col-3-of-8@tl+ col-4-of-15@d">
+ <!-- rating-thumb -->
+ <div class="o-rating_thumb c-white"><img
+ src="https://s.aolcdn.com/hss/storage/midas/320e92598e4f352eb5686998e408f820/206231387/hmm.gif"
+ alt="The Morning After: Two days with the always on, always online laptop"
+ class="stretch-img"></img>
+ <div class="absolute l-0 b-0 b-55@s"></div>
+ <div class="o-rating_thumb__rating b-75@m- z-3">
+ <!-- rating -->
+ </div>
+ </div>
+ </div>
+ <div class="grid@m+__cell col-2-of-4@tp col-4-of-8@tl+ col-10-of-15@d ">
+ <!-- listing-body -->
+ <div class=" o-feed_listing@m- o-feed_bleed@s" data-feed-container="">
+ <div class=" o-feed_listing@m-__mid">
+ <div class=" o-feed_listing@m-__inner th-base@m- break-left@s ">
+ <div class="">
+ <!-- time-label -->
+ <div class="t-meta th-meta inline-block hide@tl+ hide@m-">
+ <svg class="icon inline-block th-meta__icon vm"
+ style="margin-top: -2px; margin-right: 2px">
+ <use xlink:href="#icon-clock"></use>
+ </svg>
+ 1h ago in
+ </div>
+ <!-- topic-link -->
+ <div class="t-meta hide@m- inline-block"><a
+ href="https://www.engadget.com/tags/internet"
+ class="th-topic">
+ Internet
+ </a></div>
+ </div>
+ <div class="th-title">
+ <h2 class="mt-10@tp+ t-h4@s t-h3-c@m t-h3-b@tp t-h4@tl t-h3@d"> <span
+ class="th-underline">
+ The Morning After: Two days with the always on, always online laptop
+ </span></h2>
+ </div>
+ <div class="hide@s mt-10@s">
+ <p class="mt-15@m+ t-d5@m- t-d5@tp+ c-gray-3">Last week, we'd
+ never heard of Cambridge Analytica...</p>
+ </div>
+ <div class="mt-20@s">
+ <!-- listing-meta-bar -->
+ <div class="">
+ <div class="table@tp+ mt-15@m+ th-meta">
+ <div class="relative inline-block "><a
+ href="/about/editors/mat-smith/">
+ <img class="vc circle-mask absolute l-0 "
+ src="https://o.aolcdn.com/images/dims?thumbnail=30%2C30&amp;quality=70&amp;image_uri=https%3A%2F%2Fs.blogcdn.com%2Fwww.engadget.com%2Fmedia%2F2017%2F07%2Fsmiles.jpg&amp;client=cbc79c14efcebee57402&amp;signature=7ab9ed3575aea521e45af95481a6e3eb095e4102"
+ width="30px" height="30px"></img>
+ </a>
+ <div class="h-1 w-40 inline-block "></div>
+ <span class="t-meta pb-0 vt mt-5@tp+ w-185@m mr-10@tp+
+ ">
+
+ <span class="hide@m-">By </span> <span class="block@m-"><a href="/about/editors/mat-smith" class="th-meta">M. Smith</a></span><span
+ class="hide@m- hide@tp">, </span><span
+ class=" hide@tp">
+ &nbsp;1h ago</span></span>
+ </div>
+ <div class="inline-block@tp+ relative@tp+ t-2@tp+ o-feed_share@m- mt-5@m "
+ style="vertical-align: -2px">
+ <div class="o-feed_share@m-__item inline-block@tp+"
+ data-tooltip-outer="">
+ <!-- listing-action --><a href="javascript:;"
+ class=" vc@tp+ ml-a@m- icon th-meta increase-hit "
+ data-engadget-reading-list-id="23391253"
+ data-engadget-reading-list-type="article"
+ data-behavior="Tooltip AddToReadingList"
+ data-engadget-icon="save"
+ target="_blank"
+ data-engadget-auth="false">
+ <span class="increase-hit__inner contain block full-height">
+ <svg class="icon contain__inner th-meta__icon" role="img" aria-label="save">
+ <title>save</title>
+ <use xlink:href="#icon-save"></use>
+ </svg>
+ </span>
+ </a>
+ <div class="hide" data-tooltip-content="">
+ <div class="o-tooltip ta-c th-reverse">
+ <div class="t-meta th-meta"><span
+ class="c-white">Save</span>
+ </div>
+ </div>
+ </div>
+ </div>
+ <!-- share-macro -->
+ <div class="o-feed_share@m-__item icon-divider@tp+ relative i-share_overlay"
+ data-behavior="ShareOverlay">
+ <div class="bg-gray-2 o-share_ui i-share_overlay__over o-h"
+ data-share-overlay-over="">
+ <div style="padding-top: 8px">
+ <div class="icon-20-line-height"><a
+ href="https://twitter.com/share?url=https%3A%2F%2Fwww.engadget.com%2F2018%2F03%2F21%2Fthe-morning-after-two-days-with-the-always-on-always-online-la%2F&amp;text=The%20Morning%20After%3A%20Two%20days%20with%20the%20always%20on%2C%20always%20online%20laptop&amp;via=engadget"
+ class="c-white:hvr block o-share_ui__item sharebtn twitter-share"
+ target="_blank"
+ data-behavior="Pop"
+ data-engadget-popname="engadget_share"
+ data-engadget-pop-w="670"
+ data-engadget-h="430">
+ <svg class="inline-block icon vm">
+ <use xlink:href="#icon-twitter"></use>
+ </svg>
+ </a></div>
+ <div class="icon-20-line-height"><a
+ href="https://www.facebook.com/dialog/share?app_id=132746074315&amp;display=popup&amp;href=https%3A%2F%2Fwww.engadget.com%2F2018%2F03%2F21%2Fthe-morning-after-two-days-with-the-always-on-always-online-la%2F"
+ class="c-white:hvr block o-share_ui__item sharebtn facebook-share"
+ target="_blank"
+ data-behavior="Pop"
+ data-engadget-popname="engadget_share"
+ data-engadget-pop-w="560"
+ data-engadget-h="636">
+ <svg class="inline-block icon vm">
+ <use xlink:href="#icon-facebook"></use>
+ </svg>
+ </a></div>
+ <div class="icon-20-line-height"><a
+ href="https://www.reddit.com/submit?url=https%3A%2F%2Fwww.engadget.com%2F2018%2F03%2F21%2Fthe-morning-after-two-days-with-the-always-on-always-online-la%2F&amp;title=The%20Morning%20After%3A%20Two%20days%20with%20the%20always%20on%2C%20always%20online%20laptop"
+ class="c-white:hvr block o-share_ui__item sharebtn reddit-share"
+ target="_blank"
+ data-behavior="Pop"
+ data-engadget-popname="engadget_share"
+ data-engadget-pop-w="960"
+ data-engadget-h="750">
+ <svg class="inline-block icon vm">
+ <use xlink:href="#icon-reddit"></use>
+ </svg>
+ </a></div>
+ <div class="icon-20-line-height"><a
+ href="mailto:?subject=The%20Morning%20After%3A%20Two%20days%20with%20the%20always%20on%2C%20always%20online%20laptop via Engadget&amp;body=https%3A%2F%2Fwww.engadget.com%2F2018%2F03%2F21%2Fthe-morning-after-two-days-with-the-always-on-always-online-la%2F"
+ class="c-white:hvr block o-share_ui__item"
+ target="_blank"
+ data-behavior="Pop">
+ <svg class="inline-block icon vm">
+ <use xlink:href="#icon-email"></use>
+ </svg>
+ </a></div>
+ </div>
+ </div>
+ <div class="relative i-share_overlay__btn full-height"
+ data-share-overlay-btn="">
+ <!-- listing-action --><a
+ href="javascript:;"
+ class=" c-white:hvr! c-inherit-*:hvr vc@tp+ ml-a@m- icon th-meta increase-hit c-white:hvr! c-inherit-*:hvr">
+ <span class="increase-hit__inner contain block full-height">
+ <svg class="icon contain__inner th-meta__icon" role="img" aria-label="share">
+ <title>share</title>
+ <use xlink:href="#icon-share"></use>
+ </svg>
+ </span>
+ </a></div>
+ </div>
+ </div>
+ <a href="https://www.engadget.com/about/newsletter"
+ class="absolute sponsored-byline r-0 b-n25"><img
+ alt="The Morning After logo"
+ src="https://s.blogsmithmedia.com/www.engadget.com/assets-h159e8c9b49d08fd74b1f658dac6e12df/images/morning-after-static.png?h=c98aa0f8b50bb6027fc52135691e1240"
+ width="130"
+ class="hide@tl- inline vm right"></img></a></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <a href="/2018/03/21/the-morning-after-two-days-with-the-always-on-always-online-la/"
+ class="o-hit__link">
+ View
+ </a></article>
+ </div>
+ </div>
+ <div class="border-top@tp+ pb-40@tp+ pt-40@tp+">
+ <div class="container@m+">
+ <!-- latest-listing -->
+ <article class="o-hit ">
+ <div class="grid@m+">
+ <div class="hide@tp- grid@tl+__cell col-1-of-8@tl+ col-1-of-15@d">
+ <!-- listing-time-label -->
+ <div class="t-meta th-meta absolute">
+ <svg class="icon inline-block th-meta__icon vm"
+ style="margin-top: -2px; margin-right: 2px">
+ <use xlink:href="#icon-clock"></use>
+ </svg>
+ 2h
+ </div>
+ </div>
+ <div class="grid@m+__cell col-2-of-4@tp col-3-of-8@tl+ col-4-of-15@d">
+ <!-- rating-thumb -->
+ <div class="o-rating_thumb c-white"><img
+ data-original="https://o.aolcdn.com/images/dims?thumbnail=300%2C200&amp;quality=80&amp;image_uri=https%3A%2F%2Fo.aolcdn.com%2Fimages%2Fdims%3Fcrop%3D3000%252C1996%252C0%252C0%26quality%3D85%26format%3Djpg%26resize%3D1600%252C1065%26image_uri%3Dhttp%253A%252F%252Fo.aolcdn.com%252Fhss%252Fstorage%252Fmidas%252F4281e1d07a07ef72be80107dbe2507de%252F206231272%252Fthe-lytro-camera-is-displayed-for-a-photograph-in-san-francisco-us-picture-id140228514%26client%3Da1acac3e1b3290917d92%26signature%3D3652a66233df6394ce5f09154619f3b62feab93e&amp;client=cbc79c14efcebee57402&amp;signature=3c05d14f6db98dba9696b3a4075264474311ca5c"
+ alt="Google is reportedly acquiring Lytro for around $40 million"
+ class="stretch-img prelazy"></img>
+ <div class="absolute l-0 b-0 b-55@s"></div>
+ <div class="o-rating_thumb__rating b-75@m- z-3">
+ <!-- rating -->
+ </div>
+ </div>
+ </div>
+ <div class="grid@m+__cell col-2-of-4@tp col-4-of-8@tl+ col-10-of-15@d ">
+ <!-- listing-body -->
+ <div class=" o-feed_listing@m- o-feed_bleed@s" data-feed-container="">
+ <div class=" o-feed_listing@m-__mid">
+ <div class=" o-feed_listing@m-__inner th-base@m- break-left@s ">
+ <div class="">
+ <!-- time-label -->
+ <div class="t-meta th-meta inline-block hide@tl+ hide@m-">
+ <svg class="icon inline-block th-meta__icon vm"
+ style="margin-top: -2px; margin-right: 2px">
+ <use xlink:href="#icon-clock"></use>
+ </svg>
+ 2h ago in
+ </div>
+ <!-- topic-link -->
+ <div class="t-meta hide@m- inline-block"><a
+ href="https://www.engadget.com/tags/gadgetry"
+ class="th-topic">
+ Gadgetry
+ </a></div>
+ </div>
+ <div class="th-title">
+ <h2 class="mt-10@tp+ t-h4@s t-h3-c@m t-h3-b@tp t-h4@tl t-h3@d"> <span
+ class="th-underline">
+ Google is reportedly acquiring Lytro for around $40 million
+ </span></h2>
+ </div>
+ <div class="hide@s mt-10@s">
+ <p class="mt-15@m+ t-d5@m- t-d5@tp+ c-gray-3">The light field
+ camera/VR company had been valued at $360 million.</p>
+ </div>
+ <div class="mt-20@s">
+ <!-- listing-meta-bar -->
+ <div class="">
+ <div class="table@tp+ mt-15@m+ th-meta">
+ <div class="relative inline-block "><a
+ href="/about/editors/richard-lawler/">
+ <img class="vc circle-mask absolute l-0 "
+ src="https://o.aolcdn.com/images/dims?thumbnail=30%2C30&amp;quality=70&amp;image_uri=https%3A%2F%2Fs.blogcdn.com%2Fwww.engadget.com%2Fmedia%2F2017%2F04%2F1781464810155265074044066361860786402917460o.jpg&amp;client=cbc79c14efcebee57402&amp;signature=9768114a5782d84bc7017417fe1ef974f76300b4"
+ width="30px" height="30px"></img>
+ </a>
+ <div class="h-1 w-40 inline-block "></div>
+ <span class="t-meta pb-0 vt mt-5@tp+ w-185@m mr-10@tp+
+ ">
+
+ <span class="hide@m-">By </span> <span class="block@m-"><a href="/about/editors/richard-lawler"
+ class="th-meta">R. Lawler</a></span><span
+ class="hide@m- hide@tp">, </span><span
+ class=" hide@tp">
+ &nbsp;2h ago</span></span>
+ </div>
+ <div class="inline-block@tp+ relative@tp+ t-2@tp+ o-feed_share@m- mt-5@m "
+ style="vertical-align: -2px">
+ <div class="o-feed_share@m-__item inline-block@tp+"
+ data-tooltip-outer="">
+ <!-- listing-action --><a href="javascript:;"
+ class=" vc@tp+ ml-a@m- icon th-meta increase-hit "
+ data-engadget-reading-list-id="23391149"
+ data-engadget-reading-list-type="article"
+ data-behavior="Tooltip AddToReadingList"
+ data-engadget-icon="save"
+ target="_blank"
+ data-engadget-auth="false">
+ <span class="increase-hit__inner contain block full-height">
+ <svg class="icon contain__inner th-meta__icon" role="img" aria-label="save">
+ <title>save</title>
+ <use xlink:href="#icon-save"></use>
+ </svg>
+ </span>
+ </a>
+ <div class="hide" data-tooltip-content="">
+ <div class="o-tooltip ta-c th-reverse">
+ <div class="t-meta th-meta"><span
+ class="c-white">Save</span>
+ </div>
+ </div>
+ </div>
+ </div>
+ <!-- share-macro -->
+ <div class="o-feed_share@m-__item icon-divider@tp+ relative i-share_overlay"
+ data-behavior="ShareOverlay">
+ <div class="bg-gray-2 o-share_ui i-share_overlay__over o-h"
+ data-share-overlay-over="">
+ <div style="padding-top: 8px">
+ <div class="icon-20-line-height"><a
+ href="https://twitter.com/share?url=https%3A%2F%2Fwww.engadget.com%2F2018%2F03%2F21%2Fgoogle-lytro-acquisition-rumor%2F&amp;text=Google%20is%20reportedly%20acquiring%20Lytro%20for%20around%20%2440%20million&amp;via=engadget"
+ class="c-white:hvr block o-share_ui__item sharebtn twitter-share"
+ target="_blank"
+ data-behavior="Pop"
+ data-engadget-popname="engadget_share"
+ data-engadget-pop-w="670"
+ data-engadget-h="430">
+ <svg class="inline-block icon vm">
+ <use xlink:href="#icon-twitter"></use>
+ </svg>
+ </a></div>
+ <div class="icon-20-line-height"><a
+ href="https://www.facebook.com/dialog/share?app_id=132746074315&amp;display=popup&amp;href=https%3A%2F%2Fwww.engadget.com%2F2018%2F03%2F21%2Fgoogle-lytro-acquisition-rumor%2F"
+ class="c-white:hvr block o-share_ui__item sharebtn facebook-share"
+ target="_blank"
+ data-behavior="Pop"
+ data-engadget-popname="engadget_share"
+ data-engadget-pop-w="560"
+ data-engadget-h="636">
+ <svg class="inline-block icon vm">
+ <use xlink:href="#icon-facebook"></use>
+ </svg>
+ </a></div>
+ <div class="icon-20-line-height"><a
+ href="https://www.reddit.com/submit?url=https%3A%2F%2Fwww.engadget.com%2F2018%2F03%2F21%2Fgoogle-lytro-acquisition-rumor%2F&amp;title=Google%20is%20reportedly%20acquiring%20Lytro%20for%20around%20%2440%20million"
+ class="c-white:hvr block o-share_ui__item sharebtn reddit-share"
+ target="_blank"
+ data-behavior="Pop"
+ data-engadget-popname="engadget_share"
+ data-engadget-pop-w="960"
+ data-engadget-h="750">
+ <svg class="inline-block icon vm">
+ <use xlink:href="#icon-reddit"></use>
+ </svg>
+ </a></div>
+ <div class="icon-20-line-height"><a
+ href="mailto:?subject=Google%20is%20reportedly%20acquiring%20Lytro%20for%20around%20%2440%20million via Engadget&amp;body=https%3A%2F%2Fwww.engadget.com%2F2018%2F03%2F21%2Fgoogle-lytro-acquisition-rumor%2F"
+ class="c-white:hvr block o-share_ui__item"
+ target="_blank"
+ data-behavior="Pop">
+ <svg class="inline-block icon vm">
+ <use xlink:href="#icon-email"></use>
+ </svg>
+ </a></div>
+ </div>
+ </div>
+ <div class="relative i-share_overlay__btn full-height"
+ data-share-overlay-btn="">
+ <!-- listing-action --><a
+ href="javascript:;"
+ class=" c-white:hvr! c-inherit-*:hvr vc@tp+ ml-a@m- icon th-meta increase-hit c-white:hvr! c-inherit-*:hvr">
+ <span class="increase-hit__inner contain block full-height">
+ <svg class="icon contain__inner th-meta__icon" role="img" aria-label="share">
+ <title>share</title>
+ <use xlink:href="#icon-share"></use>
+ </svg>
+ </span>
+ </a></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <a href="/2018/03/21/google-lytro-acquisition-rumor/" class="o-hit__link">
+ View
+ </a></article>
+ </div>
+ </div>
+ <div class="border-top@tp+ pb-40@tp+ pt-40@tp+">
+ <div class="container@m+">
+ <!-- latest-listing -->
+ <article class="o-hit ">
+ <div class="grid@m+">
+ <div class="hide@tp- grid@tl+__cell col-1-of-8@tl+ col-1-of-15@d">
+ <!-- listing-time-label -->
+ <div class="t-meta th-meta absolute">
+ <svg class="icon inline-block th-meta__icon vm"
+ style="margin-top: -2px; margin-right: 2px">
+ <use xlink:href="#icon-clock"></use>
+ </svg>
+ 4h
+ </div>
+ </div>
+ <div class="grid@m+__cell col-2-of-4@tp col-3-of-8@tl+ col-4-of-15@d">
+ <!-- rating-thumb -->
+ <div class="o-rating_thumb c-white"><img
+ data-original="https://o.aolcdn.com/images/dims?thumbnail=300%2C200&amp;quality=80&amp;image_uri=https%3A%2F%2Fs.aolcdn.com%2Fhss%2Fstorage%2Fmidas%2F24ce2419e679c50b46e1ad2dcede3428%2F206231202%2Fyoutube-pic-in-pic2.jpg&amp;client=cbc79c14efcebee57402&amp;signature=71a527a92ddd95eba0dba79d5615c02033420fff"
+ alt="YouTube is testing floating picture-in-picture videos on the web"
+ class="stretch-img prelazy"></img>
+ <div class="absolute l-0 b-0 b-55@s"></div>
+ <div class="o-rating_thumb__rating b-75@m- z-3">
+ <!-- rating -->
+ </div>
+ </div>
+ </div>
+ <div class="grid@m+__cell col-2-of-4@tp col-4-of-8@tl+ col-10-of-15@d ">
+ <!-- listing-body -->
+ <div class=" o-feed_listing@m- o-feed_bleed@s" data-feed-container="">
+ <div class=" o-feed_listing@m-__mid">
+ <div class=" o-feed_listing@m-__inner th-base@m- break-left@s ">
+ <div class="">
+ <!-- time-label -->
+ <div class="t-meta th-meta inline-block hide@tl+ hide@m-">
+ <svg class="icon inline-block th-meta__icon vm"
+ style="margin-top: -2px; margin-right: 2px">
+ <use xlink:href="#icon-clock"></use>
+ </svg>
+ 4h ago in
+ </div>
+ <!-- topic-link -->
+ <div class="t-meta hide@m- inline-block"><a
+ href="https://www.engadget.com/tags/internet"
+ class="th-topic">
+ Internet
+ </a></div>
+ </div>
+ <div class="th-title">
+ <h2 class="mt-10@tp+ t-h4@s t-h3-c@m t-h3-b@tp t-h4@tl t-h3@d"> <span
+ class="th-underline">
+ YouTube is testing floating picture-in-picture videos on the web
+ </span></h2>
+ </div>
+ <div class="hide@s mt-10@s">
+ <p class="mt-15@m+ t-d5@m- t-d5@tp+ c-gray-3">This one's for the
+ multitaskers. </p>
+ </div>
+ <div class="mt-20@s">
+ <!-- listing-meta-bar -->
+ <div class="">
+ <div class="table@tp+ mt-15@m+ th-meta">
+ <div class="relative inline-block "><a
+ href="/about/editors/mariella-moon/">
+ <img class="vc circle-mask absolute l-0 "
+ src="https://o.aolcdn.com/images/dims?thumbnail=30%2C30&amp;quality=70&amp;image_uri=https%3A%2F%2Fs.blogcdn.com%2Fwww.engadget.com%2Fmedia%2F2017%2F04%2Fprofile-picture.jpg&amp;client=cbc79c14efcebee57402&amp;signature=5bab654f3e7a19c6a7ffe4940f30763e8c7b3c18"
+ width="30px" height="30px"></img>
+ </a>
+ <div class="h-1 w-40 inline-block "></div>
+ <span class="t-meta pb-0 vt mt-5@tp+ w-185@m mr-10@tp+
+ ">
+
+ <span class="hide@m-">By </span> <span class="block@m-"><a href="/about/editors/mariella-moon"
+ class="th-meta">M. Moon</a></span><span
+ class="hide@m- hide@tp">, </span><span
+ class=" hide@tp">
+ &nbsp;4h ago</span></span>
+ </div>
+ <div class="inline-block@tp+ relative@tp+ t-2@tp+ o-feed_share@m- mt-5@m "
+ style="vertical-align: -2px">
+ <div class="o-feed_share@m-__item inline-block@tp+"
+ data-tooltip-outer="">
+ <!-- listing-action --><a href="javascript:;"
+ class=" vc@tp+ ml-a@m- icon th-meta increase-hit "
+ data-engadget-reading-list-id="23391131"
+ data-engadget-reading-list-type="article"
+ data-behavior="Tooltip AddToReadingList"
+ data-engadget-icon="save"
+ target="_blank"
+ data-engadget-auth="false">
+ <span class="increase-hit__inner contain block full-height">
+ <svg class="icon contain__inner th-meta__icon" role="img" aria-label="save">
+ <title>save</title>
+ <use xlink:href="#icon-save"></use>
+ </svg>
+ </span>
+ </a>
+ <div class="hide" data-tooltip-content="">
+ <div class="o-tooltip ta-c th-reverse">
+ <div class="t-meta th-meta"><span
+ class="c-white">Save</span>
+ </div>
+ </div>
+ </div>
+ </div>
+ <!-- share-macro -->
+ <div class="o-feed_share@m-__item icon-divider@tp+ relative i-share_overlay"
+ data-behavior="ShareOverlay">
+ <div class="bg-gray-2 o-share_ui i-share_overlay__over o-h"
+ data-share-overlay-over="">
+ <div style="padding-top: 8px">
+ <div class="icon-20-line-height"><a
+ href="https://twitter.com/share?url=https%3A%2F%2Fwww.engadget.com%2F2018%2F03%2F21%2Fyoutube-pic-in-pic-testing-on-the-web%2F&amp;text=YouTube%20is%20testing%20floating%20picture-in-picture%20videos%20on%20the%20web&amp;via=engadget"
+ class="c-white:hvr block o-share_ui__item sharebtn twitter-share"
+ target="_blank"
+ data-behavior="Pop"
+ data-engadget-popname="engadget_share"
+ data-engadget-pop-w="670"
+ data-engadget-h="430">
+ <svg class="inline-block icon vm">
+ <use xlink:href="#icon-twitter"></use>
+ </svg>
+ </a></div>
+ <div class="icon-20-line-height"><a
+ href="https://www.facebook.com/dialog/share?app_id=132746074315&amp;display=popup&amp;href=https%3A%2F%2Fwww.engadget.com%2F2018%2F03%2F21%2Fyoutube-pic-in-pic-testing-on-the-web%2F"
+ class="c-white:hvr block o-share_ui__item sharebtn facebook-share"
+ target="_blank"
+ data-behavior="Pop"
+ data-engadget-popname="engadget_share"
+ data-engadget-pop-w="560"
+ data-engadget-h="636">
+ <svg class="inline-block icon vm">
+ <use xlink:href="#icon-facebook"></use>
+ </svg>
+ </a></div>
+ <div class="icon-20-line-height"><a
+ href="https://www.reddit.com/submit?url=https%3A%2F%2Fwww.engadget.com%2F2018%2F03%2F21%2Fyoutube-pic-in-pic-testing-on-the-web%2F&amp;title=YouTube%20is%20testing%20floating%20picture-in-picture%20videos%20on%20the%20web"
+ class="c-white:hvr block o-share_ui__item sharebtn reddit-share"
+ target="_blank"
+ data-behavior="Pop"
+ data-engadget-popname="engadget_share"
+ data-engadget-pop-w="960"
+ data-engadget-h="750">
+ <svg class="inline-block icon vm">
+ <use xlink:href="#icon-reddit"></use>
+ </svg>
+ </a></div>
+ <div class="icon-20-line-height"><a
+ href="mailto:?subject=YouTube%20is%20testing%20floating%20picture-in-picture%20videos%20on%20the%20web via Engadget&amp;body=https%3A%2F%2Fwww.engadget.com%2F2018%2F03%2F21%2Fyoutube-pic-in-pic-testing-on-the-web%2F"
+ class="c-white:hvr block o-share_ui__item"
+ target="_blank"
+ data-behavior="Pop">
+ <svg class="inline-block icon vm">
+ <use xlink:href="#icon-email"></use>
+ </svg>
+ </a></div>
+ </div>
+ </div>
+ <div class="relative i-share_overlay__btn full-height"
+ data-share-overlay-btn="">
+ <!-- listing-action --><a
+ href="javascript:;"
+ class=" c-white:hvr! c-inherit-*:hvr vc@tp+ ml-a@m- icon th-meta increase-hit c-white:hvr! c-inherit-*:hvr">
+ <span class="increase-hit__inner contain block full-height">
+ <svg class="icon contain__inner th-meta__icon" role="img" aria-label="share">
+ <title>share</title>
+ <use xlink:href="#icon-share"></use>
+ </svg>
+ </span>
+ </a></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <a href="/2018/03/21/youtube-pic-in-pic-testing-on-the-web/" class="o-hit__link">
+ View
+ </a></article>
+ </div>
+ </div>
+ <div class="border-top@tp+ pb-40@tp+ pt-40@tp+">
+ <div class="container@m+">
+ <!-- latest-listing -->
+ <article class="o-hit ">
+ <div class="grid@m+">
+ <div class="hide@tp- grid@tl+__cell col-1-of-8@tl+ col-1-of-15@d">
+ <!-- listing-time-label -->
+ <div class="t-meta th-meta absolute">
+ <svg class="icon inline-block th-meta__icon vm"
+ style="margin-top: -2px; margin-right: 2px">
+ <use xlink:href="#icon-clock"></use>
+ </svg>
+ 6h
+ </div>
+ </div>
+ <div class="grid@m+__cell col-2-of-4@tp col-3-of-8@tl+ col-4-of-15@d">
+ <!-- rating-thumb -->
+ <div class="o-rating_thumb c-white"><img
+ data-original="https://o.aolcdn.com/images/dims?thumbnail=300%2C200&amp;quality=80&amp;image_uri=https%3A%2F%2Fs.aolcdn.com%2Fhss%2Fstorage%2Fmidas%2Fa45e94a7987030d3366b8e9570d04df2%2F206231033%2Ffba4a93144c04a87dc2bd998e822b218_original.jpg&amp;client=cbc79c14efcebee57402&amp;signature=4151c220a7131de869d37436d4ebcbfdade4b9d7"
+ alt="'Hyper Light Drifter' is another indie game coming to Switch"
+ class="stretch-img prelazy"></img>
+ <div class="absolute l-0 b-0 b-55@s"></div>
+ <div class="o-rating_thumb__rating b-75@m- z-3">
+ <!-- rating -->
+ </div>
+ </div>
+ </div>
+ <div class="grid@m+__cell col-2-of-4@tp col-4-of-8@tl+ col-10-of-15@d ">
+ <!-- listing-body -->
+ <div class=" o-feed_listing@m- o-feed_bleed@s" data-feed-container="">
+ <div class=" o-feed_listing@m-__mid">
+ <div class=" o-feed_listing@m-__inner th-base@m- break-left@s ">
+ <div class="">
+ <!-- time-label -->
+ <div class="t-meta th-meta inline-block hide@tl+ hide@m-">
+ <svg class="icon inline-block th-meta__icon vm"
+ style="margin-top: -2px; margin-right: 2px">
+ <use xlink:href="#icon-clock"></use>
+ </svg>
+ 6h ago in
+ </div>
+ <!-- topic-link -->
+ <div class="t-meta hide@m- inline-block"><a
+ href="https://www.engadget.com/tags/gadgetry"
+ class="th-topic">
+ Gadgetry
+ </a></div>
+ </div>
+ <div class="th-title">
+ <h2 class="mt-10@tp+ t-h4@s t-h3-c@m t-h3-b@tp t-h4@tl t-h3@d"> <span
+ class="th-underline">
+ 'Hyper Light Drifter' is another indie game coming to Switch
+ </span></h2>
+ </div>
+ <div class="hide@s mt-10@s">
+ <p class="mt-15@m+ t-d5@m- t-d5@tp+ c-gray-3">'Nidhogg 2' and
+ 'Crashlands' also have Switch ports due later this year.</p>
+ </div>
+ <div class="mt-20@s">
+ <!-- listing-meta-bar -->
+ <div class="">
+ <div class="table@tp+ mt-15@m+ th-meta">
+ <div class="relative inline-block "><a
+ href="/about/editors/richard-lawler/">
+ <img class="vc circle-mask absolute l-0 "
+ src="https://o.aolcdn.com/images/dims?thumbnail=30%2C30&amp;quality=70&amp;image_uri=https%3A%2F%2Fs.blogcdn.com%2Fwww.engadget.com%2Fmedia%2F2017%2F04%2F1781464810155265074044066361860786402917460o.jpg&amp;client=cbc79c14efcebee57402&amp;signature=9768114a5782d84bc7017417fe1ef974f76300b4"
+ width="30px" height="30px"></img>
+ </a>
+ <div class="h-1 w-40 inline-block "></div>
+ <span class="t-meta pb-0 vt mt-5@tp+ w-185@m mr-10@tp+
+ ">
+
+ <span class="hide@m-">By </span> <span class="block@m-"><a href="/about/editors/richard-lawler"
+ class="th-meta">R. Lawler</a></span><span
+ class="hide@m- hide@tp">, </span><span
+ class=" hide@tp">
+ &nbsp;6h ago</span></span>
+ </div>
+ <div class="inline-block@tp+ relative@tp+ t-2@tp+ o-feed_share@m- mt-5@m "
+ style="vertical-align: -2px">
+ <div class="o-feed_share@m-__item inline-block@tp+"
+ data-tooltip-outer="">
+ <!-- listing-action --><a href="javascript:;"
+ class=" vc@tp+ ml-a@m- icon th-meta increase-hit "
+ data-engadget-reading-list-id="23391093"
+ data-engadget-reading-list-type="article"
+ data-behavior="Tooltip AddToReadingList"
+ data-engadget-icon="save"
+ target="_blank"
+ data-engadget-auth="false">
+ <span class="increase-hit__inner contain block full-height">
+ <svg class="icon contain__inner th-meta__icon" role="img" aria-label="save">
+ <title>save</title>
+ <use xlink:href="#icon-save"></use>
+ </svg>
+ </span>
+ </a>
+ <div class="hide" data-tooltip-content="">
+ <div class="o-tooltip ta-c th-reverse">
+ <div class="t-meta th-meta"><span
+ class="c-white">Save</span>
+ </div>
+ </div>
+ </div>
+ </div>
+ <!-- share-macro -->
+ <div class="o-feed_share@m-__item icon-divider@tp+ relative i-share_overlay"
+ data-behavior="ShareOverlay">
+ <div class="bg-gray-2 o-share_ui i-share_overlay__over o-h"
+ data-share-overlay-over="">
+ <div style="padding-top: 8px">
+ <div class="icon-20-line-height"><a
+ href="https://twitter.com/share?url=https%3A%2F%2Fwww.engadget.com%2F2018%2F03%2F21%2Fhyper-light-drifter-is-another-indie-game-coming-to-switch%2F&amp;text=%27Hyper%20Light%20Drifter%27%20is%20another%20indie%20game%20coming%20to%20Switch&amp;via=engadget"
+ class="c-white:hvr block o-share_ui__item sharebtn twitter-share"
+ target="_blank"
+ data-behavior="Pop"
+ data-engadget-popname="engadget_share"
+ data-engadget-pop-w="670"
+ data-engadget-h="430">
+ <svg class="inline-block icon vm">
+ <use xlink:href="#icon-twitter"></use>
+ </svg>
+ </a></div>
+ <div class="icon-20-line-height"><a
+ href="https://www.facebook.com/dialog/share?app_id=132746074315&amp;display=popup&amp;href=https%3A%2F%2Fwww.engadget.com%2F2018%2F03%2F21%2Fhyper-light-drifter-is-another-indie-game-coming-to-switch%2F"
+ class="c-white:hvr block o-share_ui__item sharebtn facebook-share"
+ target="_blank"
+ data-behavior="Pop"
+ data-engadget-popname="engadget_share"
+ data-engadget-pop-w="560"
+ data-engadget-h="636">
+ <svg class="inline-block icon vm">
+ <use xlink:href="#icon-facebook"></use>
+ </svg>
+ </a></div>
+ <div class="icon-20-line-height"><a
+ href="https://www.reddit.com/submit?url=https%3A%2F%2Fwww.engadget.com%2F2018%2F03%2F21%2Fhyper-light-drifter-is-another-indie-game-coming-to-switch%2F&amp;title=%27Hyper%20Light%20Drifter%27%20is%20another%20indie%20game%20coming%20to%20Switch"
+ class="c-white:hvr block o-share_ui__item sharebtn reddit-share"
+ target="_blank"
+ data-behavior="Pop"
+ data-engadget-popname="engadget_share"
+ data-engadget-pop-w="960"
+ data-engadget-h="750">
+ <svg class="inline-block icon vm">
+ <use xlink:href="#icon-reddit"></use>
+ </svg>
+ </a></div>
+ <div class="icon-20-line-height"><a
+ href="mailto:?subject=%27Hyper%20Light%20Drifter%27%20is%20another%20indie%20game%20coming%20to%20Switch via Engadget&amp;body=https%3A%2F%2Fwww.engadget.com%2F2018%2F03%2F21%2Fhyper-light-drifter-is-another-indie-game-coming-to-switch%2F"
+ class="c-white:hvr block o-share_ui__item"
+ target="_blank"
+ data-behavior="Pop">
+ <svg class="inline-block icon vm">
+ <use xlink:href="#icon-email"></use>
+ </svg>
+ </a></div>
+ </div>
+ </div>
+ <div class="relative i-share_overlay__btn full-height"
+ data-share-overlay-btn="">
+ <!-- listing-action --><a
+ href="javascript:;"
+ class=" c-white:hvr! c-inherit-*:hvr vc@tp+ ml-a@m- icon th-meta increase-hit c-white:hvr! c-inherit-*:hvr">
+ <span class="increase-hit__inner contain block full-height">
+ <svg class="icon contain__inner th-meta__icon" role="img" aria-label="share">
+ <title>share</title>
+ <use xlink:href="#icon-share"></use>
+ </svg>
+ </span>
+ </a></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <a href="/2018/03/21/hyper-light-drifter-is-another-indie-game-coming-to-switch/"
+ class="o-hit__link">
+ View
+ </a></article>
+ </div>
+ </div>
+ <footer class="container@m- pt-40@s"><a href="/all"
+ class="o-btn@m- th-btn block h-120@tp+ pt-45@tp+ ta-c border-top@tp+ border-bottom@tp+ mb-45@tp+">
+ <span class="t-meta">More Stories</span>
+ </a></footer>
+ </aside>
+ <!-- section-title -->
+ <div class="o-title_mark pb-15@ mt-20 mb-20 container bc-gray-2">
+ <h2 class="t-section-title th-title mt-15"> From around the web </h2>
+ </div>
+ <div class="container">
+ <div class="grid">
+ <div class="col-12-of-12 grid__cell">
+ <div id="taboola-below-article-thumbnails"></div>
+ <script type="text/javascript">
+ window._taboola = window._taboola || [];
+ _taboola.push({
+ mode: 'thumbnails-b',
+ container: 'taboola-below-article-thumbnails',
+ placement: 'Below Article Thumbnails',
+ target_type: 'mix'
+ });
+ </script>
+ </div>
+ </div>
+ </div>
+ <div class="container mt-25@s mb-25@s">
+ <aside role="banner">
+ <div class="vc relative stretch-img">
+ <div class="ml-a mr-a" style="width: 300px;">
+ <div id="mo_300x250_article"
+ data-aol-adcall="{&quot;s&quot;:{&quot;adSetType&quot;:&quot;F&quot;,&quot;adSetInView&quot;:1,&quot;htmlAdWH&quot;:{&quot;mn&quot;:963860499,&quot;sizes&quot;:{&quot;w&quot;:&quot;MM&quot;,&quot;h&quot;:&quot;MM&quot;},&quot;type&quot;:&quot;f&quot;}},&quot;m&quot;:false}"
+ data-behavior="Advertisement"></div>
+ </div>
+ </div>
+ </aside>
+ </div>
+ <script type="application/ld+json">
+ {
+ "@context": "https://schema.org",
+ "@type": "Review",
+ "reviewBody": "The Xbox One X is the ultimate video game system. It sports more horsepower than any system ever. And it plays more titles in native 4K than Sony's PlayStation 4 Pro. It's just about everything you could want without investing in a gaming PC. The only problem? It's now been a year since the PS4 Pro launched, and the One X costs $500, while Sony's console launched at $400. That high price limits the Xbox One X to diehard Microsoft fans who don't mind paying a bit more to play the console's exclusive titles in 4K. Everyone else might be better off waiting, or opting for the $279 Xbox One S. %Slideshow-803271%",
+ "author": [{
+ "@type": "Person",
+ "url": "https://www.engadget.com/about/editors/devindra-hardawar",
+ "name": "Devindra Hardawar"
+ }],
+ "datePublished": "2017-11-03 03:01:00.000000",
+ "keywords": ["av", "consoles", "entertainment", "gadgetry", "gadgets", "gaming", "gear", "microsoft", "review", "video", "videogames", "Xbox", "XboxOne", "XboxOneX"],
+ "itemReviewed": "Microsoft Xbox One",
+ "reviewRating": [{
+ "@type": "Rating",
+ "ratingValue": "87",
+ "bestRating": "100",
+ "worstRating": "0"
+ }],
+ "sourceOrganization": [{
+ "@type": "Organization",
+ "name": "Engadget",
+ "url": "https://www.engadget.com",
+ "logo": [{
+ "@type": "ImageObject",
+ "url": "https://www.engadget.com/assets/eng-e-128.png",
+ "width": "128px",
+ "height": "128px"
+ }]
+ }]
+ }
+
+ </script>
+ <script type="application/ld+json">
+ {
+ "@context": "https://schema.org",
+ "@type": "Article",
+ "url": "https://www.engadget.com/2017/11/03/xbox-one-x-review/",
+ "author": [{
+ "@type": "Person",
+ "url": "https://www.engadget.com/about/editors/devindra-hardawar",
+ "name": "Devindra Hardawar"
+ }],
+ "headline": "Xbox One X review: A console that keeps up with gaming PCs",
+ "datePublished": "2017-11-03 03:01:00.000000",
+ "mainEntityOfPage": "True",
+ "thumbnailUrl": "https://o.aolcdn.com/images/dims?crop=1600%2C943%2C0%2C0&quality=85&format=jpg&resize=1600%2C943&image_uri=http%3A%2F%2Fo.aolcdn.com%2Fhss%2Fstorage%2Fmidas%2Fd457f269d1400106a402302a310de800%2F205826071%2FXbox%2BOne%2BX%2Breview%2Bgallery%2B1.jpg&client=a1acac3e1b3290917d92&signature=9fa7b29452763464190c6edff6822489df516d1b",
+ "image": [{
+ "@type": "ImageObject",
+ "url": "https://o.aolcdn.com/images/dims?thumbnail=640%2C480&amp;quality=80&amp;image_uri=https%3A%2F%2Fo.aolcdn.com%2Fimages%2Fdims%3Fcrop%3D1600%252C943%252C0%252C0%26quality%3D85%26format%3Djpg%26resize%3D1600%252C943%26image_uri%3Dhttp%253A%252F%252Fo.aolcdn.com%252Fhss%252Fstorage%252Fmidas%252Fd457f269d1400106a402302a310de800%252F205826071%252FXbox%252BOne%252BX%252Breview%252Bgallery%252B1.jpg%26client%3Da1acac3e1b3290917d92%26signature%3D9fa7b29452763464190c6edff6822489df516d1b&amp;client=cbc79c14efcebee57402&amp;signature=d93f3537fca242c8851867bc9d49d057e6d382c5",
+ "width": "640px",
+ "height": "480px"
+ }],
+ "articleBody": "The Xbox One X is the ultimate video game system. It sports more horsepower than any system ever. And it plays more titles in native 4K than Sony's PlayStation 4 Pro. It's just about everything you could want without investing in a gaming PC. The only problem? It's now been a year since the PS4 Pro launched, and the One X costs $500, while Sony's console launched at $400. That high price limits the Xbox One X to diehard Microsoft fans who don't mind paying a bit more to play the console's exclusive titles in 4K. Everyone else might be better off waiting, or opting for the $279 Xbox One S. %Slideshow-803271% Hardware\n\n\n\nDespite all the power inside, the One X is Microsoft's smallest console to date. It looks similar to the Xbox One S, except it has an entirely matte black case and is slightly slimmer. It's also surprisingly dense -- the console weighs 8.4 pounds, but it feels far heavier than you'd expect for its size, thanks to all of its new hardware. The One S, in comparison, weighs two pounds less.\n\nThe Xbox One X's real upgrades are under the hood. It features an 8-core CPU running at 2.3Ghz, 12GB of GDDR5 RAM, a 1 terabyte hard drive and an upgraded AMD Polaris GPU with 6 teraflops of computing power. The PS4 Pro has only 8GB of RAM and tops out at 4.2 teraflops. Microsoft's console is clearly faster. That additional horsepower means the Xbox One X can run more games in full native 4K than the Sony's console.\n\n\n\nAlong the front, there's the slot-loading 4K Blu-ray drive, a physical power button, a single USB port and a controller pairing button. And around back, there are HDMI out and in ports, the latter of which lets you plug in your cable box. Additionally, there are two USB ports, connections for optical audio, IR out, and gigabit Ethernet. If you've still got a Kinect around, you'll need to use a USB adapter to plug it in.\n\n\nDevindra Hardawar\/AOL\n\n\nThe console's controller hasn't changed since its last mini-upgrade with the Xbox One S. That revision rounded out its seams, improved bumper performance and added a 3.5mm headphone jack. It's still a great controller, though I'm annoyed Microsoft is sticking with AA batteries as their default power source. Sure, you could just pick up some renewable batteries, or the Play and Charge kit, but that's an extra expense. And manually swapping batteries feels like a bad user experience when every other console has rechargeable controllers.\n\nIn use\n\n\nDevindra Hardawar\/AOL\n\n\nYou won't find any major differences between the One X and the last Xbox at first &mdash; aside from a more dramatic startup sequence. Navigating the Xbox interface is fast and zippy, but mostly that's due to a recent OS upgrade. If you're moving over from an older Xbox One, you can use the backup tool to transfer your games and settings to an external hard drive. Just plug that into the new console during setup and it'll make it feel just like your old machine. It's also a lot faster than waiting for everything to download from Xbox Live.\n\nYou'll still have to set aside some time if you want to play an Xbox One X-enhanced title, though. Those 4K textures will make games significantly larger, but Microsoft says it's come up with a few ways to help developers make downloading them more efficient. For example, language packs and other optional content won't get installed by default.\n\nWe only had a few enhanced titles to test out during our review: Gears of War 4, Killer Instinct and Super Lucky's Tale. They each took advantage of the console in different ways. Gears of War 4 runs natively in 4K at 30 FPS with Dolby Atmos and HDR (high dynamic range lighting) support. It looked great -- especially with HDR, which highlighted bright elements like lightning strikes -- but I noticed the frame rate dip occasionally. I was also surprised that load times were on-par with what I've seen with the game on the Xbox One S.\n\n\nDevindra Hardawar\/AOL\n\n\nYou can also play in Performance mode, which bumps the frame rate up to 60FPS and uses higher quality graphical effects, while rendering it lower in 1080p. Personally, I preferred this, since it makes the game much smoother -- as if you're playing it on a high-end gaming PC, not a console. Some PlayStation 4 Pro games also let you choose how you wanted to distribute its power, so in some ways Microsoft is just following in its footsteps.\n\nI've been playing Gears of War 4 on my gaming PC (which is connected to my home theater) over the past year, and I was impressed that the Xbox One X is able to deliver a similar experience. It didn't quite match my rig though, which is powered by Intel Core i7 4790k CPU running at 4GHz, 16GB DDR3 RAM and an NVIDIA GTX 1080 GPU. Typically, I play at 1,440p (2,560 by 1,440 pixels) with HDR and all of the graphical settings set to their highest level, and I can easily maintain a 60FPS frame rate. The One X felt just as solid at 1080p, but there were clearly plenty of graphics settings it couldn't take advantage of, in particular higher levels of bloom lighting and shadow detail.\n\n%Slideshow-803330%\n\nKiller Instinct and Super Lucky's Tale run in 4K at a smooth 60FPS. They both looked and played better than their standard versions, though I was surprised they didn't take advantage of HDR. As usual, I noticed the improvement in frame rates more than the higher resolution. Unless you're sitting very close to a TV above 50-inches, you'd likely have a hard time telling between 4K and 1080p.\n\nThat poses a problem for Microsoft: It's betting that gamers will actually want true 4K rendering. In practice, though, PlayStation 4 Pro titles running in HDR and resolutions between 1080p and 4K often look just as good to the naked eye. The Xbox One X's big advantage is that its hardware could let more games reach 60FPS compared to Sony's console.\n\nMicrosoft says over 130 Xbox One X-enhanced titles are in the works. That includes already-released games like Forza Motorsport 7 and Assassin's Creed Origins, as well as upcoming titles like Call of Duty: WW2. You'll be able to find them easily in a special section in the Xbox store. There is also a handful of Xbox 360 games that'll get enhanced eventually, including Halo 3 and Fallout 3. Some of those titles will get bumped up to a higher resolution, while others will get HDR support. Microsoft describes these upgrades as a bonus for developers who were prescient about how they built their games. Basically, don't expect your entire 360 library to get enhanced.\n\n\nDevindra Hardawar\/AOL\n\n\nEven if a game isn't specifically tuned for the new console, Microsoft says you might still see some performance improvements. The PlayStation 4 Pro, meanwhile, has over one hundred games built for its hardware, and its boost mode can speed up some older games.\n\nMicrosoft is still pushing the Xbox as more than just a game console, though. 4K Blu-rays loaded up quickly, and I didn't notice many delays as I skipped around films. Planet Earth II, in particular, looked fantastic thanks to its brilliant use of HDR. Unfortunately, the One X doesn't support Dolby Vision, so you're stuck with the slightly less capable HDR 10 standard. That makes sense since it's more widely supported, but it would have been nice to see Dolby's, too.\n\n\n\nAnd speaking of Dolby technology, Microsoft is also highlighting Atmos support on the One X, just like it did with the One S. The company's app lets you configure the console to pass audio Atmos signals to your audio receiver. You can also shell out $15 to get Atmos support for headphones, which simulates immersive surround sound. It's strange to pay money to unlock Dolby features, but it's worth it since it's significantly better than Microsoft's audio virtualization technology. The Netflix app also supports Atmos for a handful of films (something that the Xbox One S and PlayStation 4 offer, as well).\n\nOne thing you won't find in the new Xbox is VR support. Microsoft has mentioned that the console will offer some sort of mixed reality, but it hasn't offered up any details yet. It's technically powerful enough to work with any of the Windows Mixed Reality headsets launching this fall. It's a shame that Microsoft is being so wishy-washy because Sony has had a very successful head start with the PlayStation VR.\n\nPricing and the competition\n\n\nDevindra Hardawar\/AOL\n\n\nThe biggest knock against the Xbox One X is its $500 price. The PS4 Pro launched at $400 last year, and there's a good chance we'll see plenty of deals around the holidays. If your friends are on Xbox Live, or you're a devotee of Microsoft's first party franchises, then the X makes more sense. If you just want to play third-party titles that come to both platforms, though, the PS4 Pro is clearly the better deal.\n\nIf you're looking to upgrade from an original Xbox One, and you have a new TV, the One X might be more compelling. It's faster and offers more features than the One S, and more importantly, it'll last you much longer without needing an upgrade. There's also plenty of wisdom in simply waiting a while before you buy the One X, especially if you haven't moved to a 4K TV yet. The new console can make games look better on 1080p sets, since it'll supersample high-res textures and have more graphical effects, but it's simply not worth the upgrade since those TVs don't support HDR.\n\nIf price isn't a huge concern for you, it's worth considering investing in a gaming PC. A decent one costs between $600 and $800, plus the price of a monitor, but it'll easily be more powerful than the One X. And you have the added benefit of upgrading components down the line. Now that Microsoft and game publishers are offering most major titles on PC, you won't be missing out on much by ditching consoles.\n\nWrap-up\n\n\n\nUltimately, the Xbox One X offers some major performance upgrades that gamers will notice -- especially if you're coming from an original Xbox One. But it's also a bit disappointing since it's coming a year after the PS4 Pro, and it doesn't offer VR yet. For Microsoft fans, though, none of that will matter. It's exactly what the company promised: the fastest game console ever made.",
+ "articleSection": "Reviews",
+ "keywords": ["av", "consoles", "entertainment", "gadgetry", "gadgets", "gaming", "gear", "microsoft", "review", "video", "videogames", "Xbox", "XboxOne", "XboxOneX"],
+ "publisher": [{
+ "@type": "Organization",
+ "name": "Engadget",
+ "url": "https://www.engadget.com",
+ "logo": [{
+ "@type": "ImageObject",
+ "url": "https://www.engadget.com/assets/images/eng-e-128.png",
+ "width": "128px",
+ "height": "128px"
+ }]
+ }],
+ "dateModified": "2017-11-03 02:22:36.000000"
+ }
+
+ </script>
+ </main>
+ <!-- global-footer -->
+ <footer role="navigation">
+ <nav class="th-reverse pt-40 pb-60 h-450 hide@tp-">
+ <div class="container full-height">
+ <div class="grid full-height">
+ <div class="grid__cell col-1-of-5 full-height">
+ <section>
+ <!-- list-header -->
+ <div class=" bc-violet o-title_mark">
+ <h3 class=" th-title t-list-header mt-10"> About </h3>
+ </div>
+ <ul class="t-meta-list mt-20 c-white-50">
+ <li><a href="https://www.engadget.com/about/" class="c-white:hvr">About
+ Engadget</a></li>
+ <li><a href="https://www.engadget.com/about-our-advertising/"
+ class="c-white:hvr">About Our Ads</a></li>
+ <li><a href="https://www.engadget.com/about/advertise/" class="c-white:hvr">Advertise</a>
+ </li>
+ <li><a href="https://www.engadget.com/brand-kit/" class="c-white:hvr">Brand
+ Kit</a></li>
+ <li><a href="https://www.engadget.com/about/contact/" class="c-white:hvr">Contact
+ Us</a></li>
+ <li><a href="https://www.engadget.com/rss.xml" class="c-white:hvr">RSS Feed</a>
+ </li>
+ </ul>
+ </section>
+ </div>
+ <div class="grid__cell col-1-of-5 grid-divider bc-white-10 full-height">
+ <section>
+ <!-- list-header -->
+ <div class=" bc-violet o-title_mark">
+ <h3 class=" th-title t-list-header mt-10"> Sections </h3>
+ </div>
+ <ul class="t-meta-list mt-20 c-white-50">
+ <li><a href="https://www.engadget.com/reviews/" class="c-white:hvr">Reviews</a>
+ </li>
+ <li><a href="https://www.engadget.com/gear/" class="c-white:hvr">Gear</a></li>
+ <li><a href="https://www.engadget.com/gaming/" class="c-white:hvr">Gaming</a>
+ </li>
+ <li><a href="https://www.engadget.com/entertainment/" class="c-white:hvr">Entertainment</a>
+ </li>
+ <li><a href="https://www.engadget.com/tomorrow/"
+ class="c-white:hvr">Tomorrow</a></li>
+ <li><a href="https://www.engadget.com/videos/" class="c-white:hvr">Video</a>
+ </li>
+ <li><a href="https://www.engadget.com/podcasts/"
+ class="c-white:hvr">Podcasts</a></li>
+ <li><a href="http://deals.gdgt.com/" class="c-white:hvr">Deals</a></li>
+ <li><a href="https://www.engadget.com/events/the-engadget-experience-2017/"
+ class="c-white:hvr">Events</a></li>
+ <li><a href="https://www.engadget.com/buyers-guide/" class="c-white:hvr">The
+ Buyer's Guide</a></li>
+ </ul>
+ </section>
+ </div>
+ <div class="grid__cell col-1-of-5 grid-divider bc-white-10 full-height">
+ <section>
+ <!-- list-header -->
+ <div class=" bc-violet o-title_mark">
+ <h3 class=" th-title t-list-header mt-10"> Contribute </h3>
+ </div>
+ <ul class="t-meta-list mt-20 c-white-50">
+ <li><a href="https://www.engadget.com/2017/05/01/engadget-commenting-policy/"
+ class="c-white:hvr">Comment Guidelines</a></li>
+ <li><a href="https://www.engadget.com/about/tips/" class="c-white:hvr">Send us a
+ tip!</a></li>
+ <li><a href="https://www.engadget.com/about/support/" class="c-white:hvr">Support</a>
+ </li>
+ </ul>
+ </section>
+ </div>
+ <div class="grid__cell col-1-of-5 grid-divider bc-white-10 full-height">
+ <section>
+ <!-- list-header -->
+ <div class=" bc-violet o-title_mark">
+ <h3 class=" th-title t-list-header mt-10"> International </h3>
+ </div>
+ <ul class="t-meta-list mt-20 c-white-50">
+ <li><a href="http://es.engadget.com/" class="c-white:hvr">Español</a></li>
+ <li><a href="http://chinese.engadget.com/" class="c-white:hvr">繁體中文</a></li>
+ <li><a href="http://cn.engadget.com/" class="c-white:hvr">简体中文</a></li>
+ <li><a href="http://japanese.engadget.com/" class="c-white:hvr">日本版</a></li>
+ <li><a href="http://de.engadget.com/" class="c-white:hvr">Deutschland</a></li>
+ <li><a href="https://www.engadget.com/uk" class="c-white:hvr">UK</a></li>
+ </ul>
+ </section>
+ </div>
+ <div class="grid__cell col-1-of-5 grid-divider bc-white-10 full-height">
+ <section>
+ <!-- list-header -->
+ <div class=" bc-violet o-title_mark">
+ <h3 class=" th-title t-list-header mt-10"> Apps </h3>
+ </div>
+ <ul class="t-meta-list mt-20 c-white-50">
+ <li>
+ <a href="https://play.google.com/store/apps/details?id=com.aol.mobile.engadget&amp;feature=nav_result#?t=W251bGwsMSwyLDNd"
+ class="c-white:hvr">Android</a></li>
+ <li>
+ <a href="https://itunes.apple.com/us/app/engadget/id347839246?mt=8&amp;ign-mpt=uo%3D4"
+ class="c-white:hvr">iPhone</a></li>
+ <li>
+ <a href="https://itunes.apple.com/us/app/engadget/id347839246?mt=8&amp;ign-mpt=uo%3D4"
+ class="c-white:hvr">iPad</a></li>
+ </ul>
+ </section>
+ </div>
+ </div>
+ </div>
+ </nav>
+ <nav class="pb-25@tp- th-reverse bg-gray-2@tl+">
+ <div class="container">
+ <div class="grid">
+ <section class="grid__cell col-2-of-5 col-12-of-12@tp- pt-40 pt-30@tp- hide@tp-">
+ <div class="break-out@tp- border-bottom pb-40 pb-30@tp-">
+ <div class="container@tp-"><span
+ class="hide@tl+ t-list-header-2@tp- c-white@tp- mb-20@tp-">Join Our Newsletter</span>
+ <form class="relative pr-190@tl+" action="/a/mail_subscribe" method="post">
+ <input type="hidden"
+ value="eyJyIjoiN2R5MUFQdzdhblwvZ3NmMndCRnJ4VjZrT0pDNnZrazhFakZtblFZMjhRcHM9IiwidCI6MTUyMTYzMzE4NywicyI6IlhKZ2duZXRUODJUVktUeExmYVVUNlwvamtaNjFWMHFlN3RVOUJRbXc3U1R5TTBGKzhVdVI1RlZ4bEJpSndMV0ZoVWJPRDFBWUJrOEV3Wm9tTEYrUE5ndz09In0="
+ name="csrf"></input> <input type="text" name="email"
+ placeholder="Sign up for our newsletter"
+ class="input pl-15 pr-15 rounded c-gray-1 bg-white-90 tx-meta pr-100@tp-"></input>
+ <input type="hidden" name="redirect"
+ value="https://www.engadget.com/thanks"></input>
+ <div class="absolute@tl+ t-0 r-0 w-170@tl+">
+ <button type="submit"
+ class="o-btn@tl+ o-btn@tl+--small th-btn@tl+ absolute@tp- c-violet@tp- t-0 b-0 r-0 pl-20@tp- pr-20@tp- bc-white-50">
+ <span class="t-btn t-meta@s">Subscribe</span>
+ </button>
+ </div>
+ </form>
+ </div>
+ </div>
+ </section>
+ <section
+ class="grid__cell col-3-of-5 col-12-of-12@tp- pt-60 pt-20@tp- bc-white-10 ta-r@tl+">
+ <div class="container@tp-"><span
+ class="t-list-header-2@tp- c-white@tp- vc t-meta@tl+ c-gray-7@tl+">Follow Us</span>
+ <ul class="vc c-gray-6 fixed-table@tp- mt-20@tp-">
+ <li class="inline-block@tl+ table-cell@tp- ml-30@tl+"><a
+ href="https://www.facebook.com/Engadget" class="c-white:hvr">
+ <svg class="w-15@s h-15@s h-22@m+ w-22@m+ inline-block">
+ <use xlink:href="#icon-facebook"></use>
+ </svg>
+ </a></li>
+ <li class="inline-block@tl+ table-cell@tp- ml-40@tl+"><a
+ href="https://twitter.com/engadget" class="c-white:hvr">
+ <svg class="w-15@s h-15@s h-22@m+ w-22@m+ inline-block">
+ <use xlink:href="#icon-twitter"></use>
+ </svg>
+ </a></li>
+ <li class="inline-block@tl+ table-cell@tp- ml-40@tl+"><a
+ href="https://plus.google.com/+Engadget" class="c-white:hvr">
+ <svg class="w-15@s h-15@s h-22@m+ w-22@m+ inline-block">
+ <use xlink:href="#icon-googleplus"></use>
+ </svg>
+ </a></li>
+ <li class="inline-block@tl+ table-cell@tp- ml-40@tl+"><a
+ href="https://www.youtube.com/engadget" class="c-white:hvr">
+ <svg class="w-15@s h-15@s h-22@m+ w-22@m+ inline-block">
+ <use xlink:href="#icon-youtube"></use>
+ </svg>
+ </a></li>
+ <li class="inline-block@tl+ table-cell@tp- ml-40@tl+"><a
+ href="https://instagram.com/engadget" class="c-white:hvr">
+ <svg class="w-15@s h-15@s h-22@m+ w-22@m+ inline-block">
+ <use xlink:href="#icon-instagram"></use>
+ </svg>
+ </a></li>
+ <li class="inline-block@tl+ table-cell@tp- ml-40@tl+"><a
+ href="http://engadget.tumblr.com/" class="c-white:hvr">
+ <svg class="w-15@s h-15@s h-22@m+ w-22@m+ inline-block">
+ <use xlink:href="#icon-tumblr"></use>
+ </svg>
+ </a></li>
+ <li class="inline-block@tl+ table-cell@tp- ml-40@tl+"><a
+ href="https://www.linkedin.com/company/101421" class="c-white:hvr">
+ <svg class="w-15@s h-15@s h-22@m+ w-22@m+ inline-block">
+ <use xlink:href="#icon-linkedin"></use>
+ </svg>
+ </a></li>
+ </ul>
+ </div>
+ </section>
+ </div>
+ </div>
+ </nav>
+ <div class="c-gray-6 pt-25@tp- pb-20@tp-">
+ <div class="container ta-l">
+ <div class="table@tl+ h-80@tl+">
+ <div class="table-cell@tl+ pr-25 pb-25@tp- w-110@tl+">
+ <svg class="oath-logo">
+ <use xlink:href="#icon-eng-oath-logo"></use>
+ </svg>
+ </div>
+ <div class="table-cell@tl+">
+ <div class="t-meta">© 2018 Oath Tech Network Aol Tech. All rights reserved.</div>
+ </div>
+ <div class="table-cell@tl+ ta-r@tl+">
+ <ul class="ml-n25 ml-n10@tp-">
+ <li class="pl-20 pl-10@tp- inline-block"><a href="http://www.engadgetreprints.com/"
+ class="t-meta th-meta">Reprints and
+ Permissions</a></li>
+ <li class="pl-20 pl-10@tp- inline-block"><a href="http://privacy.aol.com/"
+ class="t-meta th-meta">Privacy
+ Policy</a></li>
+ <li class="pl-20 pl-10@tp- inline-block"><a href="http://legal.aol.com/TOS/"
+ class="t-meta th-meta">Terms
+ of Use</a></li>
+ <li class="pl-20 pl-10@tp- inline-block"><a href="http://legal.aol.com/trademarks/"
+ class="t-meta th-meta">Trademarks</a>
+ </li>
+ <li class="pl-20 pl-10@tp- inline-block"><a
+ href="https://www.engadget.com/about/advertise" class="t-meta th-meta">Advertise</a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ </footer>
+ </div>
+ </div>
+</div>
+<div class="hide svg-icon-list">
+ <svg xmlns="http://www.w3.org/2000/svg">
+ <symbol id="icon-alert" viewBox="0 0 29.6 29.6">
+ <g fill="currentColor">
+ <path d="M14.8 2c7.1 0 12.8 5.7 12.8 12.8s-5.7 12.8-12.8 12.8S2 21.9 2 14.8 7.7 2 14.8 2m0-2C6.6 0 0 6.6 0 14.8s6.6 14.8 14.8 14.8S29.6 23 29.6 14.8 23 0 14.8 0z"></path>
+ <path d="M13.3 8.8h3l-.5 8h-2l-.5-8zm.5 10h2v2h-2v-2z"></path>
+ </g>
+ </symbol>
+ <symbol id="icon-all" viewBox="0 0 36 36">
+ <path fill="currentColor"
+ d="M23 19h2c1.1 0 2-.9 2-2v-6c0-1.1-.9-2-2-2h-6c-1.1 0-2 .9-2 2v6h-7v-6c0-1.1-.9-2-2-2H2c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h6v7H2c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h6c1.1 0 2-.9 2-2v-6h7v6c0 1.1.9 2 2 2h6c1.1 0 2-.9 2-2v-6c0-1.1-.9-2-2-2h-6v-7h4zm-4-5v-3h6v6h-6v-3zM8 30v4H2v-6h6v2zm0-17v4H2v-6h6v2zm9 13h-7v-7h7v7zm6 2h2v6h-6v-6h4z"></path>
+ </symbol>
+ <symbol id="icon-aol-tech" viewBox="0 0 168.272 39.167">
+ <path fill="#9A9A9A"
+ d="M104.889 5.836c0-1.096-.776-1.917-2.009-1.917H83.934c-1.232 0-2.009.822-2.009 1.917 0 1.05.776 1.872 2.009 1.872h7.168c.182 0 .273.092.273.274v25.019c0 1.369.822 2.191 2.055 2.191 1.187 0 2.009-.822 2.009-2.191V7.982c0-.183.091-.274.273-.274h7.168c1.233 0 2.009-.822 2.009-1.872zm51.673 6.757c-2.968 0-5.067 1.278-6.118 2.967h-.045V5.745c0-1.278-.822-2.055-1.918-2.055s-1.918.776-1.918 2.055v27.393c0 1.278.822 2.055 1.918 2.055s1.918-.776 1.918-2.055V21.496c0-3.242 2.054-5.342 5.021-5.342 3.287 0 4.885 2.055 4.885 5.57v11.414c0 1.278.822 2.055 1.918 2.055s1.917-.776 1.917-2.055V20.811c0-4.976-2.83-8.218-7.578-8.218zm-22.871 3.561c1.963 0 3.15.73 4.154 1.826.502.548 1.004.913 1.689.913.959 0 1.689-.73 1.689-1.689 0-.502-.184-.913-.549-1.415-1.369-1.78-3.697-3.196-6.984-3.196-4.2 0-7.396 2.1-8.629 5.889-.411 1.324-.685 3.104-.685 5.524 0 2.465.273 4.246.685 5.57 1.232 3.789 4.429 5.889 8.629 5.889 3.287 0 5.615-1.415 6.984-3.195.365-.502.549-.913.549-1.416 0-.958-.73-1.688-1.689-1.688-.686 0-1.188.365-1.689.913-1.004 1.096-2.191 1.826-4.154 1.826-2.374 0-4.154-1.142-4.885-3.424-.365-1.142-.503-2.512-.503-4.475 0-1.917.138-3.287.503-4.429.731-2.281 2.511-3.423 4.885-3.423zm-22.778-3.561c-4.154 0-7.305 2.1-8.537 5.889-.457 1.37-.685 2.922-.685 5.524s.273 4.154.73 5.524c1.232 3.835 4.291 5.935 8.812 5.935 3.377 0 5.98-1.278 7.851-3.013.365-.365.594-.822.594-1.37 0-.913-.685-1.598-1.598-1.598-.457 0-.867.183-1.324.548-1.644 1.232-3.104 1.872-5.25 1.872-2.693 0-4.702-1.278-5.524-3.789-.273-.868-.365-1.599-.365-2.648 0-.183.092-.273.274-.273h12.828c.914 0 1.507-.594 1.507-1.461 0-2.146-.228-3.835-.73-5.296-1.187-3.744-4.292-5.844-8.583-5.844zm5.112 9.541h-10.134c-.183 0-.274-.091-.274-.273 0-1.005.092-1.781.319-2.466.73-2.191 2.557-3.424 5.022-3.424 2.465 0 4.292 1.232 5.022 3.424.228.685.319 1.461.319 2.466.001.183-.091.273-.274.273zm-68.746-11.46c-8.505 0-12.59 6.725-12.59 12.479 0 5.753 4.085 12.479 12.59 12.479 8.504 0 12.587-6.727 12.587-12.479 0-5.755-4.083-12.479-12.587-12.479zm0 18.401c-3.032 0-5.6-2.498-5.6-5.922 0-3.427 2.568-5.922 5.6-5.922 3.03 0 5.599 2.495 5.599 5.922-.001 3.424-2.569 5.922-5.599 5.922zm16.541 5.9h7.082V3.668H63.82v31.307zm109.707-9.095a4.706 4.706 0 1 0-.001 9.413 4.706 4.706 0 0 0 .001-9.413zM15.606 3.668L3.272 34.975h8.357l1.65-4.527h10.872l1.525 4.527h8.442L21.911 3.668h-6.305zm-.126 20.433l3.28-10.915 3.279 10.915H15.48z"></path>
+ </symbol>
+ <symbol id="icon-camera-large" viewBox="0 0 36 36">
+ <path fill="currentColor"
+ d="M33 14c.5 0 1 .5 1 1v18c0 .5-.5 1-1 1H3c-.5 0-1-.5-1-1V15c0-.5.5-1 1-1h30m0-2H3c-1.6 0-3 1.4-3 3v18c0 1.6 1.4 3 3 3h30c1.6 0 3-1.4 3-3V15c0-1.6-1.4-3-3-3z"></path>
+ <path fill="currentColor"
+ d="M18 19.2c2.6 0 4.8 2.2 4.8 4.8s-2.2 4.8-4.8 4.8-4.8-2.2-4.8-4.8 2.2-4.8 4.8-4.8m0-2c-3.8 0-6.8 3-6.8 6.8s3 6.8 6.8 6.8 6.8-3 6.8-6.8-3-6.8-6.8-6.8zM8 8.5h6v1H8z"></path>
+ </symbol>
+ <symbol id="icon-camera" viewBox="0 0 16 16">
+ <path fill="currentColor" d="M8 6C6.3 6 5 7.3 5 9s1.3 3 3 3 3-1.3 3-3-1.3-3-3-3zm1 4H7V8h2v2z"></path>
+ <path fill="currentColor"
+ d="M13 3h-1c0-1.1-.9-2-2-2H6c-1.1 0-2 .9-2 2H3C1.4 3 0 4.3 0 6v6c0 1.6 1.4 3 3 3h10c1.7 0 3-1.4 3-3V6c0-1.7-1.3-3-3-3zm1 9c0 .5-.5 1-1 1H3c-.5 0-1-.5-1-1V6c0-.5.5-1 1-1h3V3h4v2h3c.5 0 1 .5 1 1v6z"></path>
+ </symbol>
+ <symbol id="icon-chain-link" viewBox="0 0 150 70.823">
+ <path fill="currentColor"
+ d="M9 0h44v9.022H9zM0 9.022h62v9.022H0zM8.823 62.154h44.118V71H8.823zM0 53.132h62v9.022H0z"></path>
+ <path fill="currentColor"
+ d="M0 18.045h18v35.087H0zM44.117 26.537h61.766v17.69H44.117zM97 0h44v9.022H97zM88 9.022h62v9.022H88zM97.059 62.154h44.118V71H97.059zM88 53.132h62v9.022H88z"></path>
+ <path fill="currentColor" d="M132 18.045h18v35.087h-18z"></path>
+ </symbol>
+ <symbol id="icon-clock" viewBox="0 0 16 16">
+ <path d="M8 1.8c3.4 0 6.2 2.8 6.2 6.2s-2.8 6.2-6.2 6.2S1.8 11.4 1.8 8 4.6 1.8 8 1.8M8 .2C3.7.2.2 3.7.2 8s3.5 7.8 7.8 7.8 7.8-3.5 7.8-7.8S12.3.2 8 .2z"
+ fill="currentColor"></path>
+ <path d="M7 7c0 1.1.4 2 1 2s1-.9 1-2V6c0-1.1-.4-2-1-2s-1 .9-1 2v1z" fill="currentColor"></path>
+ <path d="M12 8c0 .6-.9 1-2 1H9c-1.1 0-2-.4-2-1s.9-1 2-1h1c1.1 0 2 .4 2 1z" fill="currentColor"></path>
+ </symbol>
+ <symbol id="icon-close" viewBox="0 0 15.4 15.4">
+ <path fill="currentColor"
+ d="M15.4 1.4L14 0 7.7 6.3 1.4 0 0 1.4l6.3 6.3L0 14l1.4 1.4 6.3-6.3 6.3 6.3 1.4-1.4-6.3-6.3z"></path>
+ </symbol>
+ <symbol id="icon-comment" viewBox="0 0 19 18">
+ <path fill="currentColor"
+ d="M15 2H3c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h1v4h1v-1h1v-1h1v-1h1v-1h7c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 8c0 1.1-.9 2-2 2H5c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2h8c1.1 0 2 .9 2 2v4z"></path>
+ </symbol>
+ <symbol id="icon-down-arrow" viewBox="0 0 20.7 11.1">
+ <path fill="none" stroke="currentColor" d="M.4.4l10 10 10-10"></path>
+ </symbol>
+ <symbol id="icon-down-caret" viewBox="0 0 11.4 7.1">
+ <path fill="currentColor" d="M5.7 7.1L0 1.4 1.4 0l4.3 4.3L10 0l1.4 1.4z"></path>
+ </symbol>
+ <symbol id="icon-ear" viewBox="0 0 69 80"><title>ear icon</title>
+ <path d="M53.578 72.294c-1.113 0-2.143-.23-2.909-.574-2.72-1.42-4.632-3.383-6.55-9.157-1.949-6.01-5.617-8.82-9.142-11.553-3.026-2.353-6.163-4.773-8.88-9.747-2.028-3.69-3.138-7.736-3.138-11.32 0-10.78 8.422-19.246 19.135-19.246 10.712 0 19.135 8.466 19.135 19.246h7.654C68.883 14.82 57.13 2.99 42.094 2.99c-15.04 0-26.79 11.83-26.79 26.953 0 4.847 1.459 10.207 4.1 15.024 3.478 6.346 7.577 9.543 10.907 12.123 3.095 2.383 5.318 4.123 6.541 7.893 2.296 7 5.245 10.93 10.444 13.67A15.275 15.275 0 0 0 53.578 80c8.46 0 15.308-6.887 15.308-15.4h-7.654c0 4.23-3.446 7.694-7.654 7.694zM17.757 5.467L12.323 0C4.705 7.66 0 18.253 0 29.947 0 41.653 4.705 52.243 12.323 59.9l5.394-5.43A34.8 34.8 0 0 1 7.654 29.947c0-9.58 3.87-18.244 10.103-24.48zm14.774 24.48c0 5.313 4.285 9.633 9.566 9.633 5.282 0 9.57-4.32 9.57-9.633 0-5.314-4.288-9.627-9.57-9.627-5.281.003-9.566 4.317-9.566 9.627z"
+ fill="currentColor" fill-rule="evenodd"></path>
+ </symbol>
+ <symbol id="icon-email" viewBox="0 0 16 16">
+ <g fill="currentColor">
+ <path d="M16 12.3V2.7l-8 8-8-8v9.6l4.6-4.7.8.8L.7 13h14.6l-4.7-4.6.8-.8z"></path>
+ <path d="M.7 2L8 9.3 15.3 2z"></path>
+ </g>
+ </symbol>
+ <symbol id="icon-eng-oath-logo" viewBox="0 0 142.9 32">
+ <path d="M14.1 25c0 3.9-3.1 7-7 7s-7-3.2-7-7c0-3.9 3.1-7 7-7s7 3.1 7 7M14.1 7c0 3.9-3.1 7-7 7s-7-3.2-7-7c0-3.9 3.1-7 7-7s7 3.2 7 7M21.6.2h9.3v2.4h-6.5v2.5H30v2.3h-5.6v2.9H31v2.4h-9.4V.2zM34.9 5.1c.6-1.1 1.6-1.6 2.8-1.6 2 0 3.1 1.3 3.1 3.3v5.9h-2.6V7.3c0-1-.5-1.6-1.5-1.6s-1.7.8-1.7 2v5h-2.6V3.8h2.5v1.3zM42.1 13h2.6c.2.5.7.9 1.7.9 1.2 0 1.9-.6 1.9-1.7V12v-1.2h-.1c-.5.9-1.3 1.3-2.4 1.3-2.1 0-3.9-1.5-3.9-4.2 0-2.6 1.6-4.4 3.7-4.4 1.2 0 2.1.4 2.6 1.4V3.8h2.5v8.1c0 1.3-.4 2.3-1.2 2.9-.8.7-1.9 1-3.2 1-2.3 0-3.9-1-4.2-2.8zm6.2-5.2c0-1.3-.7-2.3-1.9-2.3s-1.9.9-1.9 2.3.7 2.3 1.9 2.3c1.3.1 1.9-.9 1.9-2.3zM57.7 11.6c-.6.8-1.4 1.3-2.7 1.3-1.8 0-3-.9-3-2.7 0-2 1.6-2.5 3.5-2.7 1.6-.2 2.2-.5 2.2-1.1 0-.6-.4-1.1-1.3-1.1-1 0-1.5.5-1.6 1.2h-2.4c.1-1.5 1.3-2.9 3.9-2.9 1.1 0 1.9.2 2.6.5.9.5 1.4 1.5 1.4 2.7v4.6c0 .7.1 1.1.3 1.2v.2H58c-.1-.3-.2-.7-.3-1.2zm.1-2.1V8.3c-.4.2-1 .4-1.5.5-1.2.3-1.7.5-1.7 1.3s.6 1.1 1.3 1.1c1.1 0 1.9-.7 1.9-1.7zM61.4 8.2c0-2.7 1.5-4.7 3.8-4.7 1.2 0 2 .6 2.6 1.5 0-.6-.1-1.3-.1-2.1V.2h2.6v12.5H68v-1.3c-.5 1.1-1.5 1.6-2.7 1.6-2.4 0-3.9-1.8-3.9-4.8zm6.5 0c0-1.6-.7-2.7-2-2.7-1.2 0-1.9 1.1-1.9 2.7s.6 2.6 1.8 2.6c1.4.1 2.1-1 2.1-2.6zM71.9 13h2.6c.2.5.7.9 1.7.9 1.2 0 1.9-.6 1.9-1.7V12v-1.2H78c-.5.9-1.3 1.3-2.4 1.3-2.1 0-3.9-1.5-3.9-4.2 0-2.6 1.6-4.4 3.7-4.4 1.2 0 2.1.4 2.6 1.4V3.8h2.5v8.1c0 1.3-.4 2.3-1.2 2.9-.8.7-1.9 1-3.2 1-2.4 0-3.9-1-4.2-2.8zm6.2-5.2c0-1.3-.7-2.3-1.9-2.3s-1.9.9-1.9 2.3.7 2.3 1.9 2.3c1.3.1 1.9-.9 1.9-2.3zM81.7 8.3c0-2.7 1.9-4.7 4.6-4.7 1.3 0 2.3.4 3.1 1.1 1 1 1.5 2.5 1.4 4.2h-6.5c.2 1.3.9 2.1 2.2 2.1.8 0 1.3-.3 1.6-.9h2.5c-.5 1.6-1.9 2.8-4.2 2.8-2.9.1-4.7-2-4.7-4.6zm2.6-.9h3.8c-.1-1.2-.8-2-1.8-2-1.3 0-1.9.8-2 2zM91.4 3.8h1.3V.9h2.6v2.8H97v1.7h-1.7v4.4c0 .7.4.9 1 .9h.7v2c-.3.1-.8.1-1.5.1-1.7 0-2.8-.5-2.8-2.3v-5h-1.3V3.8z"></path>
+ <g>
+ <path d="M25.1 19.2h3l4.5 12.5h-3l-.8-2.4h-4.5l-.8 2.4h-2.9l4.5-12.5zm-.1 8.1h3.2l-.8-2.3c-.5-1.7-.8-3.3-.8-3.3s-.4 2.1-.8 3.3l-.8 2.3zM36 24.1c.6-1.1 1.6-1.6 2.8-1.6 2 0 3.1 1.3 3.1 3.3v5.9h-2.6v-5.4c0-1-.5-1.6-1.5-1.6s-1.7.8-1.7 2v5h-2.6v-8.9H36v1.3zM46.9 25.5c0-3.7 2.4-6.5 6.1-6.5 3.8 0 6.1 2.8 6.1 6.5S56.7 32 53 32c-3.7 0-6.1-2.8-6.1-6.5zm9.4 0c0-2.4-1.1-4.2-3.2-4.2-2.2 0-3.3 1.8-3.3 4.2 0 2.3 1.1 4.1 3.3 4.1 2.1 0 3.2-1.7 3.2-4.1zM65.8 30.6c-.6.8-1.4 1.3-2.7 1.3-1.8 0-3-.9-3-2.7 0-2 1.6-2.5 3.5-2.7 1.6-.2 2.2-.5 2.2-1.1 0-.6-.4-1.1-1.3-1.1-1 0-1.5.5-1.6 1.2h-2.4c.1-1.5 1.3-2.9 3.9-2.9 1.1 0 1.9.2 2.6.5.9.5 1.4 1.5 1.4 2.7v4.6c0 .7.1 1.1.3 1.2v.2h-2.6c-.2-.3-.3-.7-.3-1.2zm0-2.1v-1.2c-.4.2-1 .4-1.5.5-1.2.3-1.7.5-1.7 1.3s.6 1.1 1.3 1.1c1.1 0 1.9-.7 1.9-1.7zM69.4 22.8h1.3V20h2.6v2.8H75v1.7h-1.7v4.4c0 .7.4.9 1 .9h.7v2c-.3.1-.8.1-1.5.1-1.7 0-2.8-.5-2.8-2.3v-5h-1.3v-1.8zM78.8 24.1c.6-1 1.5-1.5 2.7-1.5 2 0 3.1 1.3 3.1 3.3v5.9H82v-5.4c0-1-.5-1.6-1.5-1.6s-1.7.8-1.7 2v5h-2.6V19.2h2.6v4.9zM92.5 30.4v1.3H90V19.2h2.6V22c0 .8-.1 1.5-.1 2.1.6-.9 1.4-1.5 2.7-1.5 2.3 0 3.8 2 3.8 4.7 0 2.9-1.5 4.7-3.8 4.7-1.2 0-2.2-.5-2.7-1.6zm3.9-3.2c0-1.6-.6-2.7-1.9-2.7-1.4 0-2 1.2-2 2.7 0 1.6.8 2.6 2 2.6 1.2.1 1.9-1 1.9-2.6zM102.7 24.4c.6-1.2 1.4-1.7 2.5-1.7.2 0 .4 0 .5.1V25h-.7c-1.4 0-2.4.9-2.4 2.6v4.1H100v-8.9h2.5v1.6zM112.2 30.6c-.6.8-1.4 1.3-2.7 1.3-1.8 0-3-.9-3-2.7 0-2 1.6-2.5 3.5-2.7 1.6-.2 2.2-.5 2.2-1.1 0-.6-.4-1.1-1.3-1.1-1 0-1.5.5-1.6 1.2h-2.4c.1-1.5 1.3-2.9 3.9-2.9 1.1 0 1.9.2 2.6.5.9.5 1.4 1.5 1.4 2.7v4.6c0 .7.1 1.1.3 1.2v.2h-2.6c-.1-.3-.2-.7-.3-1.2zm.1-2.1v-1.2c-.4.2-1 .4-1.5.5-1.2.3-1.7.5-1.7 1.3s.6 1.1 1.3 1.1c1.1 0 1.9-.7 1.9-1.7zM118.9 24.1c.6-1.1 1.6-1.6 2.8-1.6 2 0 3.1 1.3 3.1 3.3v5.9h-2.6v-5.4c0-1-.5-1.6-1.5-1.6s-1.7.8-1.7 2v5h-2.6v-8.9h2.5v1.3zM125.8 27.2c0-2.7 1.5-4.7 3.8-4.7 1.2 0 2 .6 2.6 1.5 0-.6-.1-1.3-.1-2.1v-2.7h2.6v12.5h-2.5v-1.3c-.5 1.1-1.5 1.6-2.7 1.6-2.2 0-3.7-1.8-3.7-4.8zm6.5 0c0-1.6-.7-2.7-2-2.7-1.2 0-1.9 1.1-1.9 2.7s.6 2.6 1.8 2.6c1.4.1 2.1-1 2.1-2.6z"></path>
+ </g>
+ </symbol>
+ <symbol id="icon-eye" viewBox="0 0 100 69"><title>eye icon</title>
+ <path d="M50 0C27.275 0 7.862 14.256 0 34.387c7.862 20.13 27.275 34.386 50 34.386s42.133-14.255 50-34.386C92.134 14.256 72.725 0 50 0zm0 57.308c-12.546 0-22.725-10.267-22.725-22.921 0-12.655 10.18-22.922 22.725-22.922 12.546 0 22.725 10.267 22.725 22.922 0 12.654-10.18 22.921-22.725 22.921zm0-36.673c-7.55 0-13.633 6.14-13.633 13.752 0 7.61 6.087 13.751 13.633 13.751 7.546 0 13.633-6.14 13.633-13.751S57.55 20.635 50 20.635z"
+ fill="currentColor" fill-rule="evenodd"></path>
+ </symbol>
+ <symbol id="icon-facebook" viewBox="0 0 7.8 16">
+ <path fill="currentColor"
+ d="M0 8.5V5.8h2v-.7-1.6c0-.5.1-.9.3-1.3s.3-.8.7-1.1c.3-.3.7-.6 1.2-.8.4-.2 1-.3 1.7-.3.6 0 1 0 1.4.1l.5.1-.1 2.5H6c-.5 0-.8.1-1 .3-.1.2-.2.5-.2.9v1.9h3l-.1 2.7H4.8V16H2V8.5H0z"></path>
+ </symbol>
+ <symbol id="icon-fullscreen" viewBox="0 0 16 16">
+ <g fill="currentColor">
+ <path d="M5.9 7.3l1.4-1.4-3.1-3.1L6 1H1v5l1.8-1.8zM7.3 10.1L5.9 8.7l-3.1 3.1L1 10v5h5l-1.8-1.8zM10.1 8.7l-1.4 1.4 3.1 3.1L10 15h5v-5l-1.8 1.8zM14 1h-4l1.8 1.8-3.1 3.1 1.4 1.4 3.1-3.1L15 6V1z"></path>
+ </g>
+ </symbol>
+ <symbol id="icon-gaming-large" viewBox="0 0 36 36">
+ <path fill="currentColor"
+ d="M26 16.1c-.4 0-.9-.1-1.3-.1H11.3c-.4 0-.9.1-1.3.1C4.6 16.1.2 20.6.2 26s4.4 9.8 9.8 9.8c2.7 0 5-1.1 6.8-2.8h2.4c1.8 1.7 4.2 2.8 6.8 2.8 5.4 0 9.8-4.5 9.8-9.9s-4.4-9.8-9.8-9.8zm0 17.7c-2.3 0-4.5-1-6-2.8h-4a7.79 7.79 0 0 1-6 2.8c-4.3 0-7.8-3.6-7.8-7.9 0-4 3-6.9 6.8-7.9h18c3.8 1 6.8 3.9 6.8 7.9 0 4.3-3.5 7.9-7.8 7.9z"></path>
+ <path fill="currentColor"
+ d="M14 25h-2v-2h-2v2H8v2h2v2h2v-2h2zM24 28h2v2h-2zM21 25h2v2h-2zM27 25h2v2h-2zM24 22h2v2h-2zM18.5 13h-1V6.5h9V1h1v6.5h-9z"></path>
+ </symbol>
+ <symbol id="icon-googleplus" viewBox="0 0 16.1 13.8">
+ <path fill="currentColor"
+ d="M.1 10.7c.1-.2.1-.4.2-.6.1-.2.2-.4.4-.6.2-.2.4-.3.7-.5.3-.2.6-.3.9-.4.3-.1.6-.2 1-.2.3-.1.6-.1.9-.1h.7c-.1-.2-.1-.3-.2-.4 0-.1-.1-.2-.1-.3-.1-.1-.1-.2-.2-.3v-.4-.2-.2c0-.1 0-.1.1-.2v-.1h-.6c-.4 0-.8 0-1.2-.2-.4-.1-.7-.4-1-.7-.2-.2-.4-.5-.6-.9-.1-.3-.2-.6-.2-1s.1-.9.3-1.3.5-.8.9-1.1c.3-.2.5-.4.8-.5.3-.1.5-.2.8-.3.2-.1.5-.1.8-.2h4.3l-1 .6H6.6c.1 0 .1 0 .2.1l.2.2c.1.1.2.2.2.3.1.1.1.2.2.3.1.1.1.2.2.3.1.1.1.2.2.3 0 .1.1.3.1.4V3c0 .3-.1.6-.1.9-.1.3-.2.5-.3.7-.1.1-.2.2-.2.3l-.3.3c-.1 0-.2.1-.2.2s-.2.2-.3.2c-.1.1-.1.2-.2.2s-.1.2-.1.2c-.1.1-.1.2-.2.3v.6c0 .1.1.1.2.1.1.1.1.1.1.2s.1.1.1.1l.6.5c.3.2.4.3.6.5.2.2.3.4.4.6.1.2.2.4.3.7s.1.5.1.8c0 .4-.1.9-.3 1.2-.1.4-.4.8-.8 1.1-.4.4-.9.6-1.5.8-.6.2-1.3.3-2 .3-.6 0-1.2-.1-1.7-.2-.4-.1-.8-.3-1.1-.6-.3-.2-.5-.5-.7-.8-.2-.3-.2-.6-.2-1-.1-.1-.1-.3 0-.5zm1.7 1c.2.3.4.5.7.7.3.2.6.4 1 .5s.8.1 1.2.1c.4 0 .8 0 1.1-.1.3-.1.6-.2.8-.4.2-.2.4-.4.5-.6s.2-.5.2-.8c0-.2 0-.5-.1-.7l-.3-.6c-.2-.1-.4-.3-.6-.5l-.9-.6H5h-.7c-.2 0-.4.1-.6.1-.2.1-.4.1-.5.2H3c-.1 0-.1.1-.2.1s-.2.1-.3.1l-.3.3c-.1 0-.1.1-.2.2s-.1.2-.2.3c-.1.1-.1.2-.2.4s0 .3 0 .4c0 .4.1.6.2.9zm.9-8.2c.1.3.2.7.4 1 .1.2.2.4.3.5s.2.3.4.4c.2.1.3.2.5.3.2.1.3.1.5.1s.5-.1.6-.1c.3-.2.4-.3.6-.5.1-.1.1-.2.2-.3 0-.1.1-.2.1-.4v-.3-.3c0-.4 0-.7-.1-1.1-.1-.3-.2-.7-.4-1-.1-.2-.2-.4-.3-.5-.1-.2-.2-.3-.4-.4C5 .8 4.8.7 4.7.6h-.6c-.2 0-.5.1-.7.2-.1 0-.3.2-.5.4l-.3.6c0 .2-.1.4-.1.6v.1c0 .3.1.7.2 1zm9.4.7v3h1v-3h3V3h-3V0h-1v3H9v1.1h3.1z"></path>
+ </symbol>
+ <symbol id="icon-grid" viewBox="0 0 19 19">
+ <g fill="currentColor">
+ <path d="M0 0h3v3H0zM8 0h3v3H8zM16 0h3v3h-3zM0 8h3v3H0zM8 8h3v3H8zM16 8h3v3h-3zM0 16h3v3H0zM8 16h3v3H8zM16 16h3v3h-3z"></path>
+ </g>
+ </symbol>
+ <symbol id="icon-headphones-large" viewBox="0 0 36 36">
+ <path fill="currentColor"
+ d="M30.8 24.3c-.4-6.7-5.9-12.1-12.8-12.1-6.8 0-12.4 5.3-12.8 12.1-2.8.4-5 2.8-5 5.7 0 2.9 2.1 5.2 4.8 5.7v.3h2V26h.3c0-.3-.1-.7-.1-1 0-6 4.8-10.8 10.8-10.8S28.8 19 28.8 25c0 .3 0 .7-.1 1h.3v10h2v-.3c2.7-.5 4.8-2.8 4.8-5.7 0-2.9-2.2-5.4-5-5.7zM5 33.6c-1.6-.4-2.8-1.9-2.8-3.6 0-1.7 1.2-3.2 2.8-3.6v7.2zm26 0v-7.3c1.6.4 2.8 1.9 2.8 3.6s-1.2 3.3-2.8 3.7z"></path>
+ </symbol>
+ <symbol id="icon-headphones" viewBox="0 0 15.7 14.2">
+ <path fill="currentColor"
+ d="M9.8 11.2c0 1.6.7 3 1.5 3s1.5-1.4 1.5-3v-1c0-1.6-.7-3-1.5-3s-1.5 1.4-1.5 3v1z"></path>
+ <path d="M2.8 11.2c0 1.6.7 3 1.5 3s1.5-1.4 1.5-3v-1c0-1.6-.7-3-1.5-3s-1.5 1.4-1.5 3v1z"></path>
+ <path d="M2 9.2c-.2-1.9.4-3.9 1.6-5.2 1.1-1.3 2.6-2 4.2-2s3.1.7 4.2 1.9c1.2 1.4 1.8 3.4 1.5 5.3-.1.7-.1 1.4-.2 2.4h2c.1-1 .1-1.5.2-2.1.6-4.9-2.9-9.4-7.8-9.5C3 .1-.5 4.6.1 9.5c.1.7.1 1.1.2 2.1h2c-.1-1-.2-1.7-.3-2.4z"></path>
+ </symbol>
+ <symbol id="icon-instagram" viewBox="0 0 14 14">
+ <path fill="currentColor"
+ d="M0 12.4V11 9.6 8.2 7 5.6 4.2 2.8 1.6c0-.4.1-.7.4-1 .2-.3.6-.5 1-.5H4.3C5.2.1 6.1 0 7 0h5.4c.4 0 .8.1 1.1.4s.5.6.5 1V12.5c0 .4-.1.8-.4 1.1s-.6.5-1 .5h-.1H1.6c-.4 0-.7-.1-1-.4-.3-.3-.5-.6-.5-.9v-.1c-.1-.2-.1-.2-.1-.3zm1.7-.1c.1.1.2.2.4.2h9.6c.2 0 .3-.1.4-.2.1-.1.2-.2.2-.4v-1.5-1.5-1.5-1.5-.1h-1.2c.1.4.1.8.1 1.1v.2c0 .4-.1.8-.3 1.3-.2.4-.4.8-.7 1.2-.3.3-.6.6-1 .9-.2.3-.5.5-.9.6-.4.1-.8.2-1.2.2H7c-.4 0-.7 0-1.1-.1-.4-.1-.8-.2-1.1-.4-.4-.2-.7-.5-1-.8-.2-.3-.4-.6-.6-1-.3-.5-.4-1-.5-1.5V7c0-.4 0-.7.1-1.1H1.6V12c-.1.1 0 .2.1.3zm2.8-4.2c.1.3.3.6.6.9.2.2.5.4.9.6s.7.2 1 .2c.4 0 .7-.1 1.1-.2.3-.2.6-.4.8-.6.2-.2.4-.5.6-.9.1-.3.2-.7.2-1.1 0-.4-.1-.7-.2-1.1-.2-.2-.4-.5-.6-.8s-.5-.4-.9-.6c-.3-.1-.6-.2-1-.2s-.7.1-1 .2-.7.4-.9.6-.5.6-.6.9-.2.7-.2 1.1c0 .3.1.7.2 1zm5.3-3.9c.1.1.2.2.4.2h1.6c.2 0 .3-.1.4-.2s.2-.2.2-.4V3v-.8c0-.2-.1-.3-.2-.4-.1-.1-.2-.2-.4-.2h-1.6c-.2 0-.3.1-.4.2s-.1.1-.1.3v1.6c0 .2 0 .3.1.5z"></path>
+ </symbol>
+ <symbol id="icon-laptop-large" viewBox="-461 263 36 36">
+ <path fill="currentColor"
+ d="M-432 274c.5 0 1 .5 1 1v16c0 .5-.5 1-1 1h-22c-.5 0-1-.5-1-1v-16c0-.5.5-1 1-1h22m0-2h-22c-1.6 0-3 1.4-3 3v16c0 1.6 1.4 3 3 3h22c1.6 0 3-1.4 3-3v-16c0-1.6-1.4-3-3-3zM-461 297.5h36v1h-36z"></path>
+ </symbol>
+ <symbol id="icon-laptop" viewBox="0 0 16 16">
+ <path fill="currentColor" d="M0 14h16v2H0zM12 5v6H4V5h8m2-2H2v10h12V3z"></path>
+ </symbol>
+ <symbol id="icon-left-arrow-thick" viewBox="0 0 386 618">
+ <path fill="none" stroke="currentColor" stroke-width="108" d="M347 39L77 309l270 270"></path>
+ </symbol>
+ <symbol id="icon-left-arrow" viewBox="0 0 11.1 20.7">
+ <path fill="none" stroke="currentColor" d="M10.7.4l-10 10 10 10"></path>
+ </symbol>
+ <symbol id="icon-link-off" viewBox="0 0 16 16">
+ <path fill="currentColor"
+ d="M13 13H3V3h2V1H1v14h14v-4h-2v2zM8 1v2h3.6L7.3 7.3l1.4 1.4L13 4.4V8h2V1H8z"></path>
+ </symbol>
+ <symbol id="icon-linkedin" viewBox="0 0 14 13.9">
+ <path fill="currentColor"
+ d="M0 1.7c0-.2 0-.4.1-.6C.2.9.3.7.5.6.7.3.8.2 1 .1c.2-.1.5-.1.7-.1s.5 0 .6.1c.2.1.4.2.6.4.2.2.3.3.4.5.1.2.1.4.1.6 0 .2 0 .5-.1.7-.1.3-.2.4-.4.6-.2.2-.4.3-.6.4s-.4.1-.6.1-.5-.1-.7-.1-.3-.2-.5-.4-.3-.3-.4-.5C0 2.2 0 1.9 0 1.7zm.1 11.9V4.9v-.1s0-.1.1-.1l.1-.1H3s.1 0 .1.1c0 0 0 .1.1.1V13.7s0 .1-.1.1l-.1.1H.4s-.1 0-.1-.1c0 0 0-.1-.1-.1s-.1-.1-.1-.1zm4.6 0V4.9v-.1s0-.1.1-.1l.1-.1h2.7l.1.1v.5c.3-.3.7-.5 1.1-.6.4-.1.9-.2 1.4-.2.6 0 1.1.1 1.5.2.5.1.8.4 1.2.6.3.3.6.6.7 1.1.3.4.4.9.4 1.4V13.6s0 .1-.1.1l-.1.1h-2.7-.1s-.1 0-.1-.1l-.1-.1V8.2c0-.2 0-.5-.1-.6 0-.2-.1-.3-.2-.4-.1-.1-.2-.2-.4-.2-.2-.2-.4-.2-.6-.2-.3 0-.5 0-.8.1-.2.1-.4.3-.5.4-.1.2-.2.4-.2.7s-.1.5-.1.8V13.7s0 .1-.1.1l-.1.1H5h-.1s-.1 0-.1-.1l-.1-.1v-.1z"></path>
+ </symbol>
+ <symbol id="icon-list" viewBox="0 0 16 16">
+ <path fill="currentColor" d="M1 3h14v2H1zM1 7h14v2H1zM1 11h14v2H1z"></path>
+ </symbol>
+ <symbol id="icon-logo-uk" viewBox="0 0 485.4 99.7">
+ <path fill="currentColor"
+ d="M2 72.3c0 5 4 9 9 9h36v-9H11v-9h36c5 0 9-4 9-9v-18c0-5-4-9-9-9H11c-5 0-9 4-9 9v36zm45-18H11v-18h36v18zM169 27.3h-36c-5 0-9 4-9 9v36c0 5 4 9 9 9h36v9h-36v9h36c5 0 9-4 9-9v-54c0-4.9-4.1-9-9-9zm0 45h-36v-36h36v36zM99 27.3H72c-5 0-9 4-9 9v45h9v-45h27c5 0 9 4 9 9v36h9v-36c0-9.9-8.1-18-18-18zM230 72.3h-36v-27c0-5 4-9 9-9h27v45h9v-45c0-5-4-9-9-9h-27c-9.9 0-18 8.1-18 18v27c0 5 4 9 9 9h15.9c7.9 0 15.1-3.4 20.1-9v9M436 .3h-9v81h9v-45h27v-9h-27zM307 72.3c0 5 4 9 9 9h36v9h-36v9h36c5 0 9-4 9-9v-54c0-5-4-9-9-9h-36c-5 0-9 4-9 9v36zm45 0h-36v-36h36v36zM291 27.3h-36c-5 0-9 4-9 9v36c0 5 4 9 9 9h45V.3h-9v27zm0 45h-36v-36h36v36zM367 72.3c0 5 4 9 9 9h36v-9h-36v-9h36c5 0 9-4 9-9v-18c0-5-4-9-9-9h-36c-5 0-9 4-9 9m45 18h-36v-18h36v18z"></path>
+ <g fill="currentColor">
+ <path d="M449.5 75.4V63.3h3.1v11.9c0 3.1 1.3 4 3.8 4s3.8-.9 3.8-4V63.3h2.8v12c0 4.3-2.2 6.3-6.7 6.3s-6.8-2-6.8-6.2zM466.6 63.3h3.1v18h-3.1v-18zm3.7 8.9l5.8-8.9h3.2l-5.9 8.6 6.2 9.4h-3.4l-5.9-9.1z"></path>
+ </g>
+ </symbol>
+ <symbol id="icon-logo" viewBox="0 0 820.7 177">
+ <g fill="currentColor">
+ <path d="M0 129.2C0 138 7.2 145 16 145h64.7v-16h-65v-16H80c8.8 0 16.7-7.3 16.7-16.1v.4-32C96.7 56.4 88.8 48 80 48H16C7.2 48 0 56.4 0 65.2v64zM80.7 97h-65V64h65v33zM296.8 48h-64c-8.8 0-17.1 8.4-17.1 17.3v64-.4c0 8.8 8.3 16.1 17.1 16.1h63.9v16h-65v16h65.1c8.8 0 15.9-6.9 15.9-15.7v-96c0-8.9-7-17.3-15.9-17.3zm-.1 81h-65V64h65v65zM172.4 48h-48c-8.8 0-16.7 8.4-16.7 17.3V145h16V64h48.7c8.8 0 16.3 8.4 16.3 17.3V145h16V81.3c0-17.7-14.6-33.3-32.3-33.3zM404.7 129h-65V81.3c0-8.8 8.7-17.3 17.6-17.3h47.4v81h16V65.3c0-8.8-6.6-17.3-15.4-17.3h-48c-17.7 0-33.6 15.6-33.6 33.3v48c0 8.8 8.7 15.7 17.6 15.7h28.2c14.2 0 29.2-5.9 35.2-15.7V145M771.7 0h-16v145h16V64h49V48h-49zM511.7 48h-62c-8.8 0-18 8.4-18 17.3v64-.4c0 8.8 9.2 16.1 18 16.1h79V0h-17v48zm0 81h-64V64h64v65zM647.7 129.3c0 8.8 9.2 15.7 18.1 15.7h62.9v-16h-65v-16h66.1c8.8 0 14.9-7.3 14.9-16.1v.4-32c0-8.8-6.1-17.3-14.9-17.3h-64c-8.8 0-18.1 8.4-18.1 17.3v64zm81-32.3h-65V64h65v33zM621.3 48h-64c-8.8 0-17.6 8.4-17.6 17.3v64-.4c0 8.8 8.8 16.1 17.6 16.1h63.4v16h-64v16h64.6c8.8 0 15.4-6.9 15.4-15.7v-96c0-8.9-6.6-17.3-15.4-17.3zm-.6 81h-64V64h64v65z"></path>
+ </g>
+ </symbol>
+ <symbol id="icon-mouse-large" viewBox="0 0 36 36">
+ <path fill="currentColor"
+ d="M12 6.1V1c0-.6-.4-1-1-1s-1 .4-1 1v5.1c-5 .5-9 4.7-9 9.9v10c0 5.5 4.5 10 10 10s10-4.5 10-10V16c0-5.2-4-9.4-9-9.9zM19 26c0 4.4-3.6 8-8 8s-8-3.6-8-8V16c0-4.4 3.6-8 8-8s8 3.6 8 8v10z"></path>
+ <circle fill="currentColor" cx="11" cy="15" r="1.8"></circle>
+ </symbol>
+ <symbol id="icon-networking-large" viewBox="0 0 36 36">
+ <path fill="currentColor"
+ d="M7 16c-.6 0-1-.4-1-1V1c0-.6.4-1 1-1s1 .4 1 1v14c0 .6-.4 1-1 1zM21 30c-.6 0-1-.4-1-1v-4c0-.6.4-1 1-1s1 .4 1 1v4c0 .6-.4 1-1 1zM25 30c-.6 0-1-.4-1-1v-4c0-.6.4-1 1-1s1 .4 1 1v4c0 .6-.4 1-1 1zM29 30c-.6 0-1-.4-1-1v-4c0-.6.4-1 1-1s1 .4 1 1v4c0 .6-.4 1-1 1z"></path>
+ <path fill="currentColor"
+ d="M33 20c.5 0 1 .5 1 1v12c0 .5-.5 1-1 1H3c-.5 0-1-.5-1-1V21c0-.5.5-1 1-1h30m0-2H3c-1.6 0-3 1.4-3 3v12c0 1.6 1.4 3 3 3h30c1.6 0 3-1.4 3-3V21c0-1.6-1.4-3-3-3z"></path>
+ </symbol>
+ <symbol id="icon-play" viewBox="0 0 100 100">
+ <g fill="currentColor">
+ <path d="M50 3.3c25.7 0 46.7 20.9 46.7 46.7S75.7 96.7 50 96.7 3.3 75.7 3.3 50 24.3 3.3 50 3.3m0-3C22.6.3.3 22.6.3 50S22.6 99.7 50 99.7 99.7 77.4 99.7 50 77.4.3 50 .3z"></path>
+ <path d="M42.1 34.9l25.3 14.4-25.3 14.3V34.9m-.6-3.3c-1.4 0-2.4 1.1-2.4 3.1v29.1c0 2 1 3.1 2.4 3.1.6 0 1.2-.2 1.9-.6l25.7-14.5c2.4-1.4 2.4-3.6 0-4.9L43.4 32.2c-.7-.4-1.3-.6-1.9-.6z"></path>
+ </g>
+ </symbol>
+ <symbol id="icon-reddit" viewBox="0 0 17.1 14.2">
+ <path fill="currentColor"
+ d="M12.2 7.7c0 .1.1.2.1.3 0 .2-.1.5-.2.6-.1.2-.3.3-.5.4-.1 0-.2.1-.3.1-.2 0-.5-.1-.7-.2-.2-.2-.3-.4-.4-.6v-.2c0-.2.1-.4.2-.6.1-.2.3-.3.5-.4 0-.1.1-.1.3-.1.2 0 .4.1.6.2.2.1.3.3.4.5zm-.7 2.8c-.1-.1-.2-.1-.3-.1-.1 0-.2 0-.3.1-.8.4-1.6.7-2.5.7-.7 0-1.3-.1-1.9-.4-.1 0-.2-.1-.3-.2-.1 0-.1-.1-.2-.1h-.4c-.1 0-.2.1-.2.2-.1.1-.1.2-.1.3 0 .1 0 .2.1.3 0 .1.1.1.2.2.9.6 1.9.8 2.9.8.9 0 1.8-.2 2.6-.6.1-.1.2-.1.4-.2.1 0 .1-.1.2-.2s.1-.1.1-.2V11v-.2c-.1-.2-.2-.3-.3-.3zm-6-1.4s.1 0 0 0c.1 0 .2.1.3.1.3 0 .5-.1.7-.3.3-.2.5-.5.5-.8 0-.3-.1-.6-.3-.7-.3-.3-.5-.4-.8-.4h-.2c-.4.1-.7.4-.8.8v.3c0 .2.1.5.2.6 0 .2.2.3.4.4zm11.6-2.7v.1c0 .4-.1.8-.4 1.2-.2.3-.5.6-.8.8V9c0 .9-.3 1.8-.8 2.5-1 1.3-2.5 2.1-4 2.5-.8.2-1.7.3-2.5.3-1.3 0-2.5-.2-3.7-.7-1.2-.5-2.4-1.3-3.1-2.5-.4-.7-.7-1.4-.7-2.1v-.5C.9 8.3.6 8 .4 7.7.2 7.4 0 7 0 6.6c0-.6.2-1.1.6-1.5.4-.4.9-.7 1.5-.7h.2c.3 0 .6 0 .8.1.3.2.5.3.7.5.1 0 .1-.1.2-.1 1.2-.7 2.7-1 4.1-1.1 0-.7.1-1.4.4-2 .3-.5.8-.9 1.3-1.1.2 0 .4-.1.7-.1.6 0 1.2.1 1.7.4.2-.4.6-.6 1-.8.3-.2.5-.2.8-.2.3 0 .5 0 .8.2.4.1.7.4.9.7.2.3.3.7.3 1.1v.2c0 .5-.3 1-.7 1.3-.3.3-.8.5-1.3.5h-.2c-.5 0-.9-.3-1.3-.6-.3-.4-.6-.9-.6-1.4v-.1c-.5-.2-.9-.4-1.4-.4h-.2c-.4 0-.7.3-.9.6-.2.5-.3 1-.3 1.6 1.4.1 2.8.4 4 1.1 0 0 .1 0 .1.1.1-.1.2-.1.3-.2.4-.2.8-.4 1.2-.4.2 0 .4 0 .6.1.4.1.8.4 1.1.7.4.4.6.9.7 1.3zM13 1.9c0 .1 0 .1 0 0 0 .3.1.5.3.7.2.2.4.3.6.3.2 0 .5-.1.6-.3.2-.2.3-.4.3-.6v-.1c0-.2-.1-.5-.3-.7 0-.1-.3-.2-.5-.2h-.2c-.2.1-.4.2-.5.3-.2.2-.3.4-.3.6zM2.9 5.6c-.2-.1-.4-.1-.6-.1h-.1c-.3 0-.5.1-.7.3-.2.2-.4.4-.4.7v.1c0 .2.1.3.1.5l.3.3c.3-.7.8-1.3 1.4-1.8zM14.8 9c0-.6-.2-1.2-.6-1.7-.7-1-1.8-1.6-3-2-.2-.1-.4-.1-.7-.2-.6-.2-1.3-.3-2-.3-.9 0-1.8.2-2.7.5-1.2.4-2.3 1-3 2-.4.5-.6 1.1-.6 1.7 0 .2 0 .5.1.7.1.5.4.9.7 1.3.3.4.7.7 1.2 1 .1.1.2.1.3.2 1.2.7 2.7 1 4.1 1h.7c1.4-.1 2.8-.5 4-1.4.4-.3.7-.6 1-1 .3-.4.5-.8.6-1.2-.1-.3-.1-.4-.1-.6zM16 6.5c0-.1 0-.3-.1-.4-.1-.2-.3-.4-.4-.5-.2-.1-.4-.2-.6-.2-.2 0-.4 0-.6.1.6.5 1.1 1.1 1.4 1.8L16 7c-.1-.1 0-.3 0-.5zm0 0"
+ opacity=".9"></path>
+ </symbol>
+ <symbol id="icon-right-arrow-thick" viewBox="0 0 386 618">
+ <path fill="none" stroke="currentColor" stroke-width="108" d="M39 579l270-270L39 39"></path>
+ </symbol>
+ <symbol id="icon-right-arrow" viewBox="0 0 11.1 20.7">
+ <path fill="none" stroke="currentColor" d="M.4 20.4l10-10L.4.4"></path>
+ </symbol>
+ <symbol id="icon-save" viewBox="0 0 16 16">
+ <g fill="currentColor">
+ <path d="M6 1h4v7H6zM4 8h8v1H4z"></path>
+ <path d="M3 7h10v1H3zM5 9h6v1H5zM6 10h4v1H6zM7 11h2v1H7zM3 13h10v2H3z"></path>
+ </g>
+ </symbol>
+ <symbol id="icon-search" viewBox="0 0 20 20">
+ <path fill="currentColor"
+ d="M19.7 18.3l-4.1-4.1c1.4-1.5 2.2-3.5 2.2-5.7 0-4.6-3.7-8.3-8.3-8.3-4.6 0-8.3 3.7-8.3 8.3 0 4.6 3.7 8.3 8.3 8.3 1.7 0 3.2-.5 4.5-1.4l4.3 4.3 1.4-1.4zM3.2 8.5C3.2 5 6 2.2 9.5 2.2s6.3 2.8 6.3 6.3-2.8 6.3-6.3 6.3S3.2 12 3.2 8.5z"></path>
+ </symbol>
+ <symbol id="icon-share" viewBox="0 0 16 16">
+ <path d="M10 1v3H6C3.8 4 2 5.8 2 8v7l3.1-3.1c.3.1.6.1.9.1V8h4v3l5-5-5-5z" fill="currentColor"></path>
+ </symbol>
+ <symbol id="icon-slideshow" viewBox="0 0 64 64">
+ <path fill="currentColor"
+ d="M20.5 43.5h15v-15h-15v15zm8-23v2h13v13h2v-15h-15zm-4 6h13v13h2v-15h-15v2z"></path>
+ </symbol>
+ <symbol id="icon-smartphone-large" viewBox="0 0 36 36">
+ <path fill="currentColor"
+ d="M24 6c.5 0 1 .5 1 1v26c0 .5-.5 1-1 1H12c-.5 0-1-.5-1-1V7c0-.5.5-1 1-1h12m0-2H12c-1.6 0-3 1.4-3 3v26c0 1.6 1.4 3 3 3h12c1.6 0 3-1.4 3-3V7c0-1.6-1.4-3-3-3z"></path>
+ <path fill="currentColor" d="M17 30h2v2h-2z"></path>
+ </symbol>
+ <symbol id="icon-smartphone" viewBox="0 0 16 16">
+ <g fill="currentColor">
+ <path d="M11 3v11H5V3h6m0-2H5c-1.1 0-2 .9-2 2v11c0 1.1.9 2 2 2h6c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2z"></path>
+ <path d="M7 11h2v2H7z"></path>
+ </g>
+ </symbol>
+ <symbol id="icon-storage-large" viewBox="0 0 36 36">
+ <path fill="currentColor"
+ d="M18 9h-1V0H3v9H0v24c0 1.6 1.4 3 3 3h14c1.7 0 3-1.4 3-3V9h-2zM5 2h4v4c0 .6.4 1 1 1s1-.4 1-1V2h4v7H5V2zm13 15v16c0 .5-.5 1-1 1H3c-.5 0-1-.5-1-1V11h16v6z"></path>
+ </symbol>
+ <symbol id="icon-tablet" viewBox="0 0 16 16">
+ <path fill="currentColor"
+ d="M12 2v12H4V2h8m0-2H4C2.9 0 2 .9 2 2v12c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2z"></path>
+ <path fill="currentColor" d="M7 10h2v2H7z"></path>
+ </symbol>
+ <symbol id="icon-text-file" viewBox="0 0 55 68"><title>text file</title>
+ <g fill="#FFF" fill-rule="evenodd">
+ <path d="M54.088 20.127c-.572-1.412-1.258-2.53-2.06-3.354L38.635 3.001c-.802-.823-1.889-1.53-3.262-2.119C33.999.294 32.74 0 31.596 0H4.12C2.976 0 2.003.412 1.2 1.236.402 2.059 0 3.06 0 4.237v59.324c0 1.177.4 2.178 1.202 3.002.801.823 1.774 1.235 2.919 1.235h46.705c1.145 0 2.117-.412 2.918-1.235.801-.825 1.202-1.825 1.202-3.002V24.01c0-1.176-.285-2.471-.858-3.884zM32.968 6.003c.83.294 1.417.618 1.76.97L48.165 20.79c.343.353.658.956.944 1.81h-16.14V6.002zm16.484 56.146H5.494v-56.5h21.98v18.363c0 1.177.4 2.178 1.2 3.002.802.823 1.775 1.235 2.92 1.235h17.858v33.9z"></path>
+ <path d="M42.75 44.993H12.528c-.4 0-.73.132-.987.396-.257.265-.386.603-.386 1.015v2.825c0 .413.128.751.386 1.016.258.264.587.397.987.397H42.75c.4 0 .73-.133.987-.397.257-.265.385-.603.385-1.016v-2.825c0-.412-.128-.75-.385-1.015-.258-.264-.587-.396-.987-.396zM11.54 34.713c-.256.264-.385.603-.385 1.016v2.824c0 .413.128.751.386 1.016.258.264.587.396.987.396H42.75c.4 0 .73-.132.987-.396.257-.265.385-.603.385-1.016V35.73c0-.412-.128-.75-.385-1.016-.258-.264-.587-.397-.987-.397H12.528c-.4 0-.73.133-.987.397z"></path>
+ </g>
+ </symbol>
+ <symbol id="icon-tumblr" viewBox="0 0 8.6 14">
+ <path fill="currentColor"
+ d="M0 5.9v-2c.3-.1.5-.2.8-.3s.4-.3.6-.5c.2-.2.4-.4.5-.6s.3-.4.4-.7.3-.5.4-.8.1-.6.2-1h2v3.5h3.3v2.4H4.8v4.3c0 .2.1.4.1.5s.1.2.2.3c.1.1.2.2.3.2.2.1.3.2.5.2s.4.1.6.1c.4 0 .7-.1 1.1-.2.4-.1.7-.3 1-.4v2.2c-.3.1-.6.3-.8.4-.3.1-.5.2-.8.2-.2.1-.5.1-.8.1h-.8c-.3 0-.6 0-.9-.1-.3 0-.5-.1-.8-.2s-.4.1-.7 0c-.2-.1-.4-.2-.6-.4-.2-.1-.3-.3-.4-.4-.1-.2-.2-.3-.3-.5-.1-.2-.1-.4-.1-.6V5.9H0z"></path>
+ </symbol>
+ <symbol id="icon-tv-large" viewBox="0 0 36 36">
+ <path fill="currentColor"
+ d="M23 36H13c-.6 0-1-.4-1-1s.4-1 1-1h10c.6 0 1 .4 1 1s-.4 1-1 1zM33 9c.5 0 1 .5 1 1v18c0 .5-.5 1-1 1H3c-.5 0-1-.5-1-1V10c0-.5.5-1 1-1h30m0-2H3c-1.6 0-3 1.4-3 3v18c0 1.6 1.4 3 3 3h30c1.6 0 3-1.4 3-3V10c0-1.6-1.4-3-3-3z"></path>
+ </symbol>
+ <symbol id="icon-twitter" viewBox="0 0 16 13">
+ <path fill="currentColor"
+ d="M0 11.5h.8c.8 0 1.5-.1 2.2-.4s1.3-.6 1.9-1c-.7 0-1.4-.2-1.9-.7-.6-.3-1-.9-1.2-1.5h1c.1 0 .3 0 .4-.1-.7-.1-1.3-.5-1.8-1.1C.9 6.1.6 5.4.6 4.6c.2.1.5.2.7.3.3 0 .6.1.8.1-.4-.3-.8-.7-1-1.2-.3-.5-.4-1-.4-1.6 0-.3 0-.6.1-.9s.2-.5.3-.7c.4.5.9.9 1.4 1.4s1 .8 1.6 1.1 1.2.5 1.8.7c.6.1 1.3.2 2 .2 0-.1 0-.2-.1-.4s0-.3 0-.4c0-.4.1-.9.3-1.3.2-.4.4-.8.7-1s.6-.5 1-.7.8-.2 1.3-.2.9.1 1.3.3.8.4 1.1.8c.4-.1.7-.2 1.1-.3.3-.1.7-.3 1-.5-.1.4-.3.7-.6 1s-.5.6-.9.8c.3 0 .7-.1 1-.2l.9-.3c-.2.3-.5.6-.7.9-.3.2-.6.5-.9.7v.4c0 1.1-.2 2.2-.6 3.3s-1 2.1-1.8 3c-.8.9-1.8 1.6-2.9 2.2-1.2.6-2.6.9-4.1.9-.5 0-.9 0-1.4-.1-.4-.1-.9-.2-1.3-.3s-.8-.3-1.2-.5-.7-.3-1.1-.6z"></path>
+ </symbol>
+ <symbol id="icon-up-arrow" viewBox="0 0 20.7 11.1">
+ <path fill="none" stroke="currentColor" d="M20.4 10.7l-10-10-10 10"></path>
+ </symbol>
+ <symbol id="icon-up-caret" viewBox="0 0 960 560">
+ <path fill="currentColor"
+ d="M480 0l449.578 449.578L819.154 560 480 220.845 140.845 560 30.423 449.578z"></path>
+ </symbol>
+ <symbol id="icon-video" viewBox="0 0 65 65">
+ <path fill="currentColor"
+ d="M41.3 38c0 1.1-.9 2-2 2h-13c-1.1 0-2-.9-2-2V27c0-1.1.9-2 2-2h13c1.1 0 2 .9 2 2v11zM48.3 36c0 1.1-.7 1.4-1.6.8l-3.9-3c-.9-.7-.9-1.8 0-2.5l3.9-3c.9-.7 1.6-.3 1.6.8V36z"></path>
+ </symbol>
+ <symbol id="icon-vr" viewBox="0 0 49.41 29.65"><title>vr</title>
+ <path d="M45.35 0H4.07A4.07 4.07 0 0 0 0 4.07v21.51a4.07 4.07 0 0 0 4.07 4.07h13.82l5.41-9.36a1.74 1.74 0 0 1 3 0l5.41 9.36h13.64a4.07 4.07 0 0 0 4.07-4.07V4.07A4.07 4.07 0 0 0 45.35 0zm2.91 25.58a2.91 2.91 0 0 1-2.91 2.91H32.4l-5.07-8.78a2.91 2.91 0 0 0-5 0l-5.07 8.78H4.07a2.91 2.91 0 0 1-2.91-2.91V4.07a2.91 2.91 0 0 1 2.91-2.91h41.28a2.91 2.91 0 0 1 2.91 2.91z"></path>
+ <path data-name="Shape"
+ d="M14.24 10.46a6.1 6.1 0 1 0 6.1 6.1 6.11 6.11 0 0 0-6.1-6.1zm0 11a4.94 4.94 0 1 1 4.94-4.94 4.95 4.95 0 0 1-4.94 4.99zM35.49 10.46a6.1 6.1 0 1 0 6.1 6.1 6.11 6.11 0 0 0-6.1-6.1zm0 11a4.94 4.94 0 1 1 4.94-4.94 4.95 4.95 0 0 1-4.94 4.99z"></path>
+ </symbol>
+ <symbol id="icon-watch" viewBox="0 0 16 16">
+ <path fill="none"
+ d="M8.998 2H7c-.245.009-.841.357-1.004.682-.039.105-.065.213-.101.318h4.211c-.036-.105-.063-.213-.102-.318-.163-.324-.758-.673-1.006-.682zM5.353 11h5.295a15.338 15.338 0 0 0 0-6H5.353a15.3 15.3 0 0 0 0 6zM5.996 13.318c.163.325.759.673 1.006.682H9c.245-.009.841-.357 1.004-.682.039-.105.065-.212.102-.318H5.895c.036.105.062.213.101.318z"></path>
+ <path fill="#2C2E33"
+ d="M5.353 5h5.295a15.484 15.484 0 0 0-.542-2H5.895a15.168 15.168 0 0 0-.542 2zM12.305 3.313c.86 3.065.86 6.309 0 9.374A3 3 0 0 0 14 10V6a3 3 0 0 0-1.695-2.687zM5.895 13h4.211c.227-.657.407-1.325.542-2H5.353c.134.675.315 1.343.542 2zM3.695 3.313A3 3 0 0 0 2 6v4a3 3 0 0 0 1.695 2.687 17.352 17.352 0 0 1 0-9.374z"></path>
+ <path fill="#2C2E33"
+ d="M10.105 13c-.036.105-.063.213-.102.318-.162.325-.758.673-1.003.682H7.002c-.247-.009-.843-.357-1.006-.682-.039-.105-.065-.213-.101-.318H5a2.96 2.96 0 0 1-1.305-.313c.131.468.279.933.45 1.391C4.607 15.157 5.971 16 7 16h2c1.029 0 2.393-.843 2.855-1.922.171-.458.319-.923.45-1.391A2.96 2.96 0 0 1 11 13h-.895zM5.895 3c.036-.105.063-.213.102-.318C6.159 2.357 6.755 2.009 7 2h1.998c.247.009.842.358 1.006.682.039.105.065.213.101.318H11c.469 0 .908.119 1.305.313a17.327 17.327 0 0 0-.45-1.391C11.393.843 10.029 0 9 0H7C5.971 0 4.607.843 4.145 1.922c-.171.458-.319.923-.45 1.391A2.96 2.96 0 0 1 5 3h.895z"></path>
+ <path fill="#2C2E33"
+ d="M5.895 13a15.324 15.324 0 0 1-.542-2H5c-.542 0-1-.458-1-1V6c0-.542.458-1 1-1h.353c.135-.675.316-1.343.542-2H5a2.96 2.96 0 0 0-1.305.313 17.352 17.352 0 0 0 0 9.374A2.96 2.96 0 0 0 5 13h.895zM12.305 3.313A2.96 2.96 0 0 0 11 3h-.895c.227.657.407 1.325.542 2H11c.542 0 1 .458 1 1v4c0 .542-.458 1-1 1h-.353a15.484 15.484 0 0 1-.542 2H11a2.96 2.96 0 0 0 1.305-.313c.86-3.065.86-6.309 0-9.374z"></path>
+ </symbol>
+ <symbol id="icon-youtube" viewBox="0 0 13.2 16">
+ <path fill="currentColor"
+ d="M0 11.4V9.8c0-.5.1-1.1.2-1.6.1-.3.3-.6.5-.9.3-.1.6-.3 1-.3.8-.1 1.6-.1 2.5-.2s1.7 0 2.5 0h2.5c.8 0 1.6.1 2.5.2.4 0 .7.2.9.4.3.2.4.5.5.9.1.5.2 1 .2 1.6v3.2c0 .5-.1 1.1-.2 1.6-.1.4-.3.6-.5.9s-.6.4-.9.4c-.9-.1-1.8 0-2.6 0h-5c-.9 0-1.7-.1-2.5-.2-.4 0-.7-.2-.9-.4s-.4-.5-.5-.9c-.1-.5-.1-1-.2-1.5v-1.6zm1-2.3h1v5.1h.8V9.1h1v-.8H1v.8zM2.1 0c.1.2.2.5.3.8l.3.9c.2.4.3.8.3 1.1s.1.6.2.8v2.5H4V3.6L5.2 0h-.9l-.6 2.4L3.1 0h-1zm1.8 13.3v.7c0 .1.1.2.2.2.1.1.2.1.3.1.1 0 .3 0 .4-.1.2-.1.4-.2.5-.4v.5h.8V9.8h-.8v3.5c-.1.1-.2.2-.2.3s-.2.1-.2.1h-.1s0-.1-.1-.1v-.1-3.7h-.8v3.5zm1.4-8.8V3v-.6c0-.2.1-.3.2-.4.1-.1.2-.3.4-.3s.3-.1.5-.1.4 0 .5.1.3.2.4.3c.2 0 .2.2.2.4V5.2c0 .2-.1.3-.2.4-.1.1-.2.3-.3.3s-.4.1-.6.1c-.2 0-.3 0-.5-.1s-.2-.2-.4-.3c0-.1-.1-.3-.1-.4 0-.2-.1-.4-.1-.7zm.7.2c0 .2 0 .4.1.5.1.1.2.2.3.2.1 0 .2-.1.3-.2.1-.1.1-.3.1-.5V2.8c0-.2 0-.4-.1-.5-.1 0-.2-.1-.3-.1-.1 0-.2.1-.3.1-.1.2-.1.3-.1.5v1.9zm.9 9.5h.6v-.4c.2.2.4.3.5.4.1.1.3.1.4.1.2 0 .3 0 .4-.1.2-.1.3-.2.3-.4 0-.1.1-.2.1-.4v-2.3-.5-.4l-.3-.3c-.2-.1-.3-.1-.4-.1-.1 0-.3 0-.4.1s-.3.2-.5.4v-2h-.7v5.9zm.7-.8v-2.7c.1-.1.2-.1.2-.1H8c.1 0 .2.1.3.1.1.1.1.3.1.5V13c0 .2 0 .3-.1.4-.1.1-.2.1-.3.1h-.2c-.1 0-.1 0-.2-.1zM8.2 5v.4c0 .1.1.2.1.3 0 .1.1.2.2.2.2.1.3.1.4.1.1 0 .3 0 .5-.1s.3-.2.5-.4v.6h.8V1.6h-.9v3.3c-.1.2-.1.3-.2.3s-.2.1-.3.1h-.1v-.1-.1-3.5h-1V5zm1.6 7.8c0 .2 0 .4.1.6s.1.3.2.4c.1.1.3.3.4.3s.4.1.6.1c.2 0 .4 0 .6-.1s.3-.2.4-.4c.1-.1.1-.1.1-.2s0-.2.1-.2v-.2-.3h-.8v.5c0 .1-.1.2-.1.2s-.1.1-.2.1-.2-.1-.3-.2c-.1-.1-.1-.3-.1-.5v-.8h1.6v-.9-.6c0-.2-.1-.3-.2-.4-.1-.2-.2-.3-.4-.3-.2-.1-.3-.1-.5-.1s-.4 0-.5.1c-.2.1-.3.2-.4.3-.1.1-.2.3-.2.4s-.1.4-.1.6v1.6zm.8-1.3h.8v-.4c0-.2 0-.3-.1-.5-.1-.1-.2-.2-.3-.2-.1 0-.2.1-.3.2-.1.1-.1.3-.1.5v.4z"></path>
+ </symbol>
+ </svg>
+</div>
+<div data-engadget-article-tacprop=""></div>
+<div id="KVTAGS"
+ data-engadget-relegence-string="kvsubj=982665:978826:979377:983462:978896:979432:980877:981907:983875:6325647:6371511:978794:980487:978782:978792:6398737:4942091;kvent=4013672:4136474:5105352:6253390:3688889:3693453:6144751:3692222:3631643:4260427:6225669:2833872:6392821:3572520:3173032:3576651:3625909:3696831:3841115:3853545:4050903:4162145:4208574:5417195:6444455:6451115"
+ data-engadget-post-id="23265143"></div>
+<script src="https://s.blogsmithmedia.com/www.engadget.com/assets-h159e8c9b49d08fd74b1f658dac6e12df/js/modernizr.min.js?h=03f6ba65ad449c5defaf101e042f262e"></script>
+<script src="https://s.blogsmithmedia.com/www.engadget.com/assets-h159e8c9b49d08fd74b1f658dac6e12df/js/main.js?h=4574b6330320aa0b896b2fab228e3db0"></script>
+<script src="https://code.jquery.com/jquery-migrate-3.0.1.min.js"></script>
+<script type="text/javascript">
+ window._taboola = window._taboola || [];
+ _taboola.push({
+ flush: true
+ });
+</script>
+<!-- Google Analytics -->
+<script>
+ (function (i, s, o, g, r, a, m) {
+ i['GoogleAnalyticsObject'] = r;
+ i[r] = i[r] || function () {
+ (i[r].q = i[r].q || []).push(arguments)
+ }, i[r].l = 1 * new Date();
+ a = s.createElement(o),
+ m = s.getElementsByTagName(o)[0];
+ a.async = 1;
+ a.src = g;
+ m.parentNode.insertBefore(a, m)
+ })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
+ ga('create', 'UA-818999-11', 'auto');
+ ga('require', 'displayfeatures');
+ ga('send', 'pageview');
+</script>
+<script type="text/javascript" src="//s.swiftypecdn.com/cc/vKhrkVp6Cfwro_h8kpyC.js"></script>
+<!-- START Parse.ly Include: Standard -->
+<div id="parsely-root" style="display: none"><span id="parsely-cfg" data-parsely-site="engadget.com"></span></div>
+<script>
+ (function (s, p, d) {
+ var h = d.location.protocol,
+ i = p + "-" + s,
+ e = d.getElementById(i),
+ r = d.getElementById(p + "-root"),
+ u = h === "https:" ? "d1z2jf7jlzjs58.cloudfront.net" : "static." + p + ".com";
+ if (e) return;
+ e = d.createElement(s);
+ e.id = i;
+ e.async = true;
+ e.src = h + "//" + u + "/p.js";
+ r.appendChild(e);
+ })("script", "parsely", document);
+</script>
+<!-- END Parse.ly Include: Standard -->
+<!-- SpotIM -->
+<script type="text/x-spotim-options">
+ SPOTIM_OPTIONS = { frameStyleBlock: '@font-face{font-family:GuardianTextSans-Regular;src:url(https://o.aolcdn.com/engadget/fonts/Guardian-Text-Sans-Web-Regular.eot);src:url(https://o.aolcdn.com/engadget/fonts/Guardian-Text-Sans-Web-Regular.eot?#iefix) format("embedded-opentype"),url(https://o.aolcdn.com/engadget/fonts/Guardian-Text-Sans-Web-Regular.woff2) format("woff2"),url(https://o.aolcdn.com/engadget/fonts/Guardian-Text-Sans-Web-Regular.woff) format("woff"),url(https://o.aolcdn.com/engadget/fonts/Guardian-Text-Sans-Web-Regular.ttf) format("truetype"),url(https://o.aolcdn.com/engadget/fonts/Guardian-Text-Sans-Web-Regular.svg#Guardian-Text-Sans-Web-Regular) format("svg");font-weight:400;font-style:normal;font-stretch:normal}@font-face{font-family:GuardianTextEgyp-Regular;src:url(https://o.aolcdn.com/engadget/fonts/Guardian-Text-Egyptian-LF-Web-Regular.eot);src:url(https://o.aolcdn.com/engadget/fonts/Guardian-Text-Egyptian-LF-Web-Regular.eot?#iefix) format("embedded-opentype"),url(https://o.aolcdn.com/engadget/fonts/Guardian-Text-Egyptian-LF-Web-Regular.woff2) format("woff2"),url(https://o.aolcdn.com/engadget/fonts/Guardian-Text-Egyptian-LF-Web-Regular.woff) format("woff"),url(https://o.aolcdn.com/engadget/fonts/Guardian-Text-Egyptian-LF-Web-Regular.ttf) format("truetype"),url(https://o.aolcdn.com/engadget/fonts/Guardian-Text-Egyptian-LF-Web-Regular.svg#Guardian-Text-Egyptian-LF-Web-Regular) format("svg");font-weight:400;font-style:normal;font-stretch:normal}[data-spot-im-class=conversation-root]{font-family:GuardianTextSans-Regular;font-size:15px;color:#373E44;line-height:22px;padding:7px 0;-webkit-font-smoothing:auto!important}[data-spot-im-class=message-text]{font-family:GuardianTextEgyp-Regular;font-size:15px;color:#373E44;line-height:22px}[data-spot-im-class=current-user-menu] [data-spot-im-class=handler],[data-spot-im-class=sort-menu]{font-size:15px}[data-spot-im-class=top-strip]{margin-top:20px}[data-spot-im-class=message-username]{font-family:GuardianTextSans-Regular;font-size:15px!important;color:#373E44;font-weight:700}[data-spot-im-class=message-timestamp]{font-family:GuardianTextSans-Regular;font-size:15px;color:#7B7F83}[data-spot-im-class=faces-list]{display:none}[data-spot-im-class=message-reply],[data-spot-im-class=message-share]{font-family:GuardianTextSans-Regular;font-size:13px;color:#7B7F83}[data-spot-im-class=conversation-header]{padding-top:0;padding-bottom:15px}[data-spot-im-class=rich-editor]{background-color:#fff!important;-webkit-border-radius:0!important;border-radius:0!important;border:none!important}[data-spot-im-class=rich-editor-input]{box-sizing:border-box;-webkit-box-shadow:none!important;box-shadow:none!important;border-radius:2px!important;margin-bottom:15px;border:1px solid #d5d5d6}[data-spot-im-class=rich-editor-panel]{padding:0;border:1px solid #d5d5d6;box-sizing:border-box;border-radius:2px;height:55px}[data-spot-im-class=rich-editor-upload-image-button]{display:none;pointer-events:none}[data-spot-im-class=rich-editor-panel-actions] [data-spot-im-class=rich-editor-send-button][disabled],[data-spot-im-class=conversation-root] [data-spot-im-class=load-more-messages]:hover{background-color:#F4F4F5!important;color:#ABABAD}[data-spot-im-class=rich-editor-send-button]{font-family:GuardianTextSans-Regular;display:block;color:#FFF;font-weight:400;margin:0!important;padding:0;width:100%;height:53px;border-radius:2px;line-height:53px;box-sizing:border-box;font-size:15px}[data-spot-im-class=rich-editor-panel-actions]{width:100%;line-height:53px;margin:auto 0;text-align:center;background-color:#2C2E33;height:53px;border-radius:2px}[data-spot-im-class=load-more-messages]{font-family:GuardianTextSans-Regular;font-size:15px;font-weight:400;color:#ababad;margin-top:40px;border-radius:2px;border:1px solid #d5d5d6;height:55px;line-height:55px;background-color:#fff!important}[data-spot-im-class=current-user-menu],[data-spot-im-class=conversation-footer],[data-spot-im-class=moderator],[data-spot-im-class=sort-menu]{font-family:GuardianTextSans-Regular}[data-spot-im-class=header-text]{display:none!important}', loginUponSayControlFocus: true };
+</script>
+<script type="text/javascript" src="//www.spot.im/embed/modules/launcher/bundle.js?module=messages-count"
+ data-spot-id="sp_f76RE06N"></script>
+<script src="https://recirculation.spot.im/spot/sp_f76RE06N" data-spotim-script="recirculation"></script>
+<script type="text/javascript">
+ !function (t, e, n) {
+ function a(t) {
+ var a = e.createElement("script");
+ a.type = "text/javascript", a.async = !1, a.src = ("https:" === e.location.protocol ? "https" : "http") + ":" + n, (t || e.body || e.head).appendChild(a)
+ }
+
+ function o() {
+ var t = e.getElementsByTagName("script"),
+ n = t[t.length - 1];
+ return n.parentNode
+ }
+
+ var p = o();
+ t.spotId = "sp_f76RE06N", t.parentElement = p, a(p)
+ }(window.SPOTIM = {
+ options: {
+ newsfeed: false
+ }
+ }, document, "//www.spot.im/launcher/bundle.js");
+</script>
+<script src="https://s.blogsmithmedia.com/www.engadget.com/assets-h159e8c9b49d08fd74b1f658dac6e12df/js/spotim-sso-logout.js?h=7fd2f92b87989e342650792a630c8d5a"></script>
+<!-- END SpotIM -->
+<script type="text/javascript" src="//s.skimresources.com/js/72705X1521812.skimlinks.js"></script>
+<script async="" src="//plugin.mediavoice.com/mediaconductor/mc.js"></script>
+<script>
+ window.mediaconductor = window.mediaconductor || function () {
+ (mediaconductor.q = mediaconductor.q || []).push(arguments);
+ }
+ mediaconductor("init", "c4e4233e71b04b459b7b0524ca99125f");
+ mediaconductor("exec");
+</script>
+</body>
+
+</html> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/fortressofsolitude/config.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/fortressofsolitude/config.json
new file mode 100644
index 000000000..0ac6816ed
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/fortressofsolitude/config.json
@@ -0,0 +1,3 @@
+{
+ "ArticleByLine": true
+} \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/fortressofsolitude/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/fortressofsolitude/expected-images.json
new file mode 100644
index 000000000..5f0cd4927
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/fortressofsolitude/expected-images.json
@@ -0,0 +1,4 @@
+[
+ "http:\/\/www.fortressofsolitude.co.za\/wp-content\/uploads\/2018\/05\/Céline-Dion-Belches-Her-Way-Onto-Deadpool-2s-Soundtrack.jpg",
+ "http:\/\/www.fortressofsolitude.co.za\/wp-content\/uploads\/2018\/05\/Céline-Dion-Belches-Her-Way-Onto-Deadpool-2s-Soundtrack-750x400.jpg"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/fortressofsolitude/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/fortressofsolitude/expected-metadata.json
new file mode 100644
index 000000000..8405f6763
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/fortressofsolitude/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "Written by Edward Wallace",
+ "Direction": null,
+ "Excerpt": "Just when you think the marketing behind the film couldn't get any more amazing, they go and release a music video from the Deadpool 2 soundtrack starring Canadian singer Céline Dion.",
+ "Image": "http:\/\/www.fortressofsolitude.co.za\/wp-content\/uploads\/2018\/05\/Céline-Dion-Belches-Her-Way-Onto-Deadpool-2s-Soundtrack.jpg",
+ "Title": "Céline Dion Belches Her Way Onto Deadpool 2's Soundtrack",
+ "SiteName": "Fortress of Solitude"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/fortressofsolitude/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/fortressofsolitude/expected.html
new file mode 100644
index 000000000..5dc679145
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/fortressofsolitude/expected.html
@@ -0,0 +1 @@
+<div id="primary"><div id="content" role="main"> <article id="post-116764"><p><span> <a href="http://www.fortressofsolitude.co.za/celine-dion-deadpool-2-soundtrack-ashes/" title="Céline Dion Belches Her Way Onto Deadpool 2's Soundtrack"><img alt="Céline Dion Belches Her Way Onto Deadpool 2's Soundtrack" height="400" sizes="(max-width: 750px) 100vw, 750px" src="http://www.fortressofsolitude.co.za/wp-content/uploads/2018/05/Céline-Dion-Belches-Her-Way-Onto-Deadpool-2s-Soundtrack-750x400.jpg" srcset="http://www.fortressofsolitude.co.za/wp-content/uploads/2018/05/Céline-Dion-Belches-Her-Way-Onto-Deadpool-2s-Soundtrack-750x400.jpg 750w, http://www.fortressofsolitude.co.za/wp-content/uploads/2018/05/Céline-Dion-Belches-Her-Way-Onto-Deadpool-2s-Soundtrack-24x14.jpg 24w" width="750"></img></a> </span></p><header></header><div><hr></hr><div><div><p><span>R</span>yan Reynolds never stops surprising fans with his <a href="http://www.fortressofsolitude.co.za/new-deadpool-2-trailer/">Deadpool</a>, a.k.a. the Merc with the Mouth, persona. Just when you think the marketing behind the film couldn’t get any more amazing, they go and release a music video from the <strong><em>Deadpool 2</em></strong> soundtrack starring Canadian singer Céline Dion. Yes, the one who sang the <em>Titanic</em> theme song. Your eyes do not deceive you.</p><center><blockquote data-lang="en"><p dir="ltr" lang="tl">Showtime, Mama. <a href="https://twitter.com/hashtag/EffortMaximal?src=hash&amp;ref_src=twsrc%5Etfw" rel="nofollow" target="_blank">#EffortMaximal</a> <a href="https://twitter.com/hashtag/Deadpool2?src=hash&amp;ref_src=twsrc%5Etfw" rel="nofollow" target="_blank">#Deadpool2</a> <a href="https://t.co/ZKLrucXJO4" rel="nofollow" target="_blank">pic.twitter.com/ZKLrucXJO4</a></p><p>— Ryan Reynolds (@VancityReynolds) <a href="https://twitter.com/VancityReynolds/status/992018849225695242?ref_src=twsrc%5Etfw" rel="nofollow" target="_blank">May 3, 2018</a></p></blockquote></center><p>“What’s left to say? These prayers ain’t working anymore. Every word shot down in flames. What’s left to do with these broken pieces on the floor? I’m losing my voice calling on you,” Dion croons in the video for “Ashes”. Near the end of it, the filthy, foul-mouthed <a href="http://www.fortressofsolitude.co.za/hilarious-deadpool-2-teaser-bob-ross/">Deadpool</a> shows up in a surprising twist mentioning that he should have gotten N’sync instead.</p><h3><strong><em>Deadpool 2</em></strong> opens in theatres on May 18.</h3></div></div></div><hr></hr></article></div></div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/fortressofsolitude/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/fortressofsolitude/source.html
new file mode 100644
index 000000000..af8f61a2b
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/fortressofsolitude/source.html
@@ -0,0 +1,141 @@
+<!DOCTYPE html><html lang="en-GB" prefix="og: http://ogp.me/ns#"><head><link rel="stylesheet" href="http://www.fortressofsolitude.co.za/wp-content/cache/min/1/adba62a3e99cf2beef85d754f2a69c39.css" data-minify="1" /><script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script><script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script><script src="http://www.fortressofsolitude.co.za/wp-content/cache/min/1/a3014bc665e0dfcfe262ab88b13db6dc.js" data-minify="1"></script> <meta http-equiv="x-dns-prefetch-control" content="on"><link rel="dns-prefetch" href="//fonts.googleapis.com" /><link rel="dns-prefetch" href="//www.google-analytics.com" /><link rel="dns-prefetch" href="https://ajax.googleapis.com" /><link rel="dns-prefetch" href="//fonts.gstatic.com" /><link rel="dns-prefetch" href="//0.gravatar.com/" /><link rel="dns-prefetch" href="//2.gravatar.com/" /><link rel="dns-prefetch" href="//1.gravatar.com/" /><link rel="dns-prefetch" href="//i1.wp.com/" /><link rel="publisher" href="https://plus.google.com/+FortressofsolitudeCoZa/posts" /><link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="https://feeds.feedburner.com/co/CRDp" /><meta name="google-site-verification" content="R0Fm4RBvru8vN03ZdvANPG25splcUQaE__Ao4hyOvQs" /><meta charset="UTF-8" /><meta name="viewport" content="width=device-width" /><meta name="copyright" content="Fortress of Solitude"><meta name="theme-color" content="#ff0000" /><meta property="article:publisher" content="https://www.facebook.com/FortressZA/" /><link rel="profile" href="http://gmpg.org/xfn/11" /><link rel="pingback" href="" /><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"><title>Céline Dion Belches Her Way Onto Deadpool 2&#039;s Soundtrack</title> <script type="text/javascript">var trackScrolling=true;
+var trackScrollingPercentage=false;
+var ScrollingPercentageNumber=25;
+var stLogInterval=10*1000;
+var cutOffTime=900;
+var trackNoEvents=false;
+var trackNoMaxTime=true;
+var docTitle='Céline Dion Belches Her Way Onto Deadpool 2&#8217;s Soundtrack';</script> <link rel="shortcut icon" href="https://i0.wp.com/www.fortressofsolitude.co.za/wp-content/themes/mightymag/images/fortress-of-Solitude_y1u6tm.jpg" /><meta name="description" content="Just when you think the marketing behind the film couldn&#039;t get any more amazing, they go and release a music video from the Deadpool 2 soundtrack starring Canadian singer Céline Dion." /><link rel="canonical" href="http://www.fortressofsolitude.co.za/celine-dion-deadpool-2-soundtrack-ashes/" /><link rel="publisher" href="https://plus.google.com/b/110541590461645839653/110541590461645839653/posts" /><meta property="og:locale" content="en_GB" /><meta property="og:type" content="article" /><meta property="og:title" content="Céline Dion Belches Her Way Onto Deadpool 2&#039;s Soundtrack" /><meta property="og:description" content="Just when you think the marketing behind the film couldn&#039;t get any more amazing, they go and release a music video from the Deadpool 2 soundtrack starring Canadian singer Céline Dion." /><meta property="og:url" content="http://www.fortressofsolitude.co.za/celine-dion-deadpool-2-soundtrack-ashes/" /><meta property="og:site_name" content="Fortress of Solitude" /><meta property="article:publisher" content="https://www.facebook.com/FortressZA" /><meta property="article:tag" content="Deadpool" /><meta property="article:tag" content="Deadpool 2" /><meta property="article:tag" content="Marvel" /><meta property="article:tag" content="Movies" /><meta property="article:tag" content="Music" /><meta property="article:section" content="Movies" /><meta property="article:published_time" content="2018-05-03T15:37:08+02:00" /><meta property="og:image" content="http://www.fortressofsolitude.co.za/wp-content/uploads/2018/05/Céline-Dion-Belches-Her-Way-Onto-Deadpool-2s-Soundtrack.jpg" /><meta property="og:image:width" content="770" /><meta property="og:image:height" content="450" /><meta property="og:image:alt" content="Céline Dion Belches Her Way Onto Deadpool 2&#039;s Soundtrack" /><meta name="twitter:card" content="summary_large_image" /><meta name="twitter:description" content="Just when you think the marketing behind the film couldn&#039;t get any more amazing, they go and release a music video from the Deadpool 2 soundtrack starring Canadian singer Céline Dion." /><meta name="twitter:title" content="Céline Dion Belches Her Way Onto Deadpool 2&#039;s Soundtrack" /><meta name="twitter:site" content="@FortressofS" /><meta name="twitter:image" content="http://www.fortressofsolitude.co.za/wp-content/uploads/2018/05/Céline-Dion-Belches-Her-Way-Onto-Deadpool-2s-Soundtrack.jpg" /><meta name="twitter:creator" content="@FortressofS" /> <script type='application/ld+json'>{"@context":"https:\/\/schema.org","@type":"Organization","url":"http:\/\/www.fortressofsolitude.co.za\/","sameAs":["https:\/\/www.facebook.com\/FortressZA","https:\/\/www.instagram.com\/fortresszar\/","https:\/\/plus.google.com\/b\/110541590461645839653\/110541590461645839653\/posts","https:\/\/www.youtube.com\/channel\/UCdB1prTqEL-GNyYyi8xcGwA","https:\/\/twitter.com\/FortressofS"],"@id":"http:\/\/www.fortressofsolitude.co.za\/#organization","name":"Fortress of Solitude","logo":"https:\/\/i0.wp.com\/www.fortressofsolitude.co.za\/wp-content\/themes\/mightymag\/images\/fortress-of-Solitude_y1u6tm.jpg"}</script> <link rel='dns-prefetch' href='//fonts.googleapis.com' /><link rel='dns-prefetch' href='//s.w.org' /><link rel='dns-prefetch' href='//ajax.googleapis.com' /><link rel="alternate" type="application/rss+xml" title="Fortress of Solitude &raquo; Feed" href="http://www.fortressofsolitude.co.za/feed/" /><link rel="alternate" type="application/rss+xml" title="Fortress of Solitude &raquo; Comments Feed" href="http://www.fortressofsolitude.co.za/comments/feed/" /><link rel="alternate" type="application/rss+xml" title="Fortress of Solitude &raquo; Céline Dion Belches Her Way Onto Deadpool 2&#8217;s Soundtrack Comments Feed" href="http://www.fortressofsolitude.co.za/celine-dion-deadpool-2-soundtrack-ashes/feed/" /><style id='mashsb-styles-inline-css' type='text/css'>.mashsb-count{color:red}@media only screen and (min-width:568px){.mashsb-buttons a{min-width:177px}}</style><style id='wp-polls-inline-css' type='text/css'>.wp-polls .pollbar{margin:1px;font-size:8px;line-height:10px;height:10px;background:red;border:1px solid #}</style><style id='rocket-lazyload-inline-css' type='text/css'>.rll-youtube-player{position:relative;padding-bottom:56.23%;height:0;overflow:hidden;max-width:100%;background:#000;margin:5px}.rll-youtube-player iframe{position:absolute;top:0;left:0;width:100%;height:100%;z-index:100;background:0 0}.rll-youtube-player img{bottom:0;display:block;left:0;margin:auto;max-width:100%;width:100%;position:absolute;right:0;top:0;border:none;height:auto;cursor:pointer;-webkit-transition:.4s all;-moz-transition:.4s all;transition:.4s all}.rll-youtube-player img:hover{-webkit-filter:brightness(75%)}.rll-youtube-player .play{height:72px;width:72px;left:50%;top:50%;margin-left:-36px;margin-top:-36px;position:absolute;background:url(http://www.fortressofsolitude.co.za/wp-content/plugins/wp-rocket/inc/front/img/play.png) no-repeat;cursor:pointer}</style> <script type='text/javascript'>/* <![CDATA[ */ var mashsb = {"shares":"28","round_shares":"1","animate_shares":"0","dynamic_buttons":"0","share_url":"http:\/\/www.fortressofsolitude.co.za\/celine-dion-deadpool-2-soundtrack-ashes\/","title":"C%C3%A9line+Dion+Belches+Her+Way+Onto+Deadpool+2%E2%80%99s+Soundtrack","image":"http:\/\/www.fortressofsolitude.co.za\/wp-content\/uploads\/2018\/05\/C\u00e9line-Dion-Belches-Her-Way-Onto-Deadpool-2s-Soundtrack.jpg","desc":"Ryan Reynolds never stops surprising fans with his Deadpool, a.k.a. the Merc with the Mouth, persona. Just when you think the marketing behind the film couldn't get any more amazing, they go and release a \u2026","hashtag":"FortressofS","subscribe":"link","subscribe_url":"http:\/\/eepurl.com\/bj4sA9","activestatus":"1","singular":"1","twitter_popup":"1","refresh":"1","nonce":"977a5f84f6","postid":"116764","servertime":"1525511212","ajaxurl":"http:\/\/www.fortressofsolitude.co.za\/wp-admin\/admin-ajax.php"}; /* ]]> */</script> <script type='text/javascript'>/* <![CDATA[ */ var WpDisableAsyncLinks = {"wp-disable-google-fonts":"https:\/\/fonts.googleapis.com\/css?family=Roboto|Oswald"}; /* ]]> */</script> <link rel="amphtml" href="http://www.fortressofsolitude.co.za/amp/celine-dion-deadpool-2-soundtrack-ashes" /><style type="text/css">.wpsdc-drop-cap{float:left;font-size:5.5em;margin-right:.1em;line-height:90%;font-family:Oswald;font-weight:700}</style><style>.mgm-title a,.mgm-title span{color:#333333!important}body{color:#333}a{color:#000}a:hover{color:#1e73be}.breadcrumb a:hover,.woocommerce-breadcrumb a:hover,.bbp-breadcrumb a:hover{color:#1e73be!important}.cat-bg,.inverse .boxed,.inverse .boxed .entry-details,.social-count-plus .items,.social-count-plus span.label,.sticky .entry-details,.article-content-wrapper:hover .img-hover-info,.rw-user-rating-desc .user_rating,.rw-user-rating-desc .your_rating,.btn-success,.btn-success:hover,.btn-success:active,.btn-success:focus,.generic-button a,div.item-list-tabs ul li a span,.taxonomy-description p,#mgm-toolbar .topnav-wrap a,#mgm-toolbar .mgm-search-icon-trigger:hover .glyphicon-search{color:#fff}.inverse .boxed a,.social-count-plus .items a,.social-count-plus span.label a,.sticky .entry-details a,.mgm-cat .entry-details a,.cat-panes-content .entry-details,.cat-panes-content .entry-details a{color:#fff}.inverse .boxed a:hover,.social-count-plus .items a:hover,.social-count-plus span.label a:hover,.sticky .entry-details a:hover{color:#eaeaea}.search-in-place,.search-in-place .more,#collapse-trigger-wrap #collapse-icons,.entry-details,.mgm-title:after,.reply-wrap,#author-socials-wrap,.mgm-gray-frame,.rw-bar-wrap,.rw-end,.affiliate-wrap,table thead tr,div.item-list-tabs,#bbpress-forums li.bbp-header,#bbpress-forums li.bbp-footer,.gallery-caption{background-color:#f9f9f9}#mgm-grid,#mgm-grid .mgm-grid-block:last-child{border-left:1px solid #f9f9f9}#mgm-grid .mgm-grid-block.mgm-grid-wide{border-bottom:1px solid #f9f9f9}#mgm-live-search input{border-color:#f9f9f9}.search-in-place,.search-in-place .more,#collapse-trigger-wrap #collapse-icons,.entry-details,.mgm-title:after,.reply-wrap,#author-socials-wrap,.rw-bar-wrap,.rw-end,.affiliate-wrap,.gallery-caption,.gallery-caption:before{color:#000}.search-in-place a,.search-in-place .more a,#collapse-trigger-wrap #collapse-icons a,.mgm-title:after a,#author-socials-wrap a,.rw-bar-wrap a,.rw-end a{color:#000}.search-in-place a:hover,.search-in-place .more a:hover,#collapse-trigger-wrap #collapse-icons a:hover,.entry-details a:hover,.mgm-title:after a:hover,#author-socials-wrap a:hover,.rw-bar-wrap a:hover,.rw-end a:hover{color:#1e73be}.boxed,#respond,.woocommerce #reviews #respond,.woocommerce-page #reviews #respond,div.activity-comments ul li,#bbpress-forums label,.wpcf7 label{border-style:solid;border-bottom:none}.tag-list a,.page-nav .page-numbers,.bbp-pagination-links .page-numbers{border-style:solid;border-left:none}.page-nav,.bbp-pagination-links{border-left-style:solid}.widget.buddypress ul#members-list li,.widget.buddypress ul#groups-list li,.widget_categories ul li a,.widget_pages ul li a,.widget_meta ul li a,.widget_archive ul li a,.widget_nav_menu ul li a,.widget_recent_entries ul li a,.widget_recent_comments ul li{border-bottom-style:solid}.boxed,#respond{border-color:rgba(255,255,255,.1)}.main-navigation ul{background-color:#000}.mgm-full-main,.mgm-title a,.mgm-title span,.boxed.entry-block,.reply-wrap a:first-child:before,.reply-wrap .reply-wrap-submit:first-child:before,.white-line{background-color:#fff}@media (max-width:767px){.mgm-full-main{padding:0;box-shadow:none;background:none}}@media (max-width:767px){#mgm-top-ad{display:none}}@media (max-width:767px){#mgm-middle-ad{display:none}}@media (max-width:767px){#mgm-bottom-ad{display:none}}@media (min-width:1199px){.mgm-logo{float:left;margin-left:40px}#nav-clone .mgm-logo{margin-left:0}#mgm-top-ad{margin-top:0;margin-right:80px;text-align:right}}</style><style>.mgm-font,h1,h2,h3,h4,h5,h6,.topnav-wrap,.main-navigation,.main-small-navigation ul,.page-nav,.flex-cat,#carousel div span,.carousel-text a,.widget a.twtr-join-conv,#comments .simil-widget-comment,#comments .bypostauthor .mgm-title-bg:before,.nocomments,.lwa .lwa-title,.lwa-register .lwa-title,.lwa .dropdown-menu li>a,.date a,.info-stripe .cat-stripe,.info-stripe .percent-stripe,.social-count-plus span.count,.cat-tabs span a,.accordion-heading,.vc_text_separator div,#content .wpb_accordion .ui-accordion .ui-accordion-header a,.wpb_accordion .ui-accordion .ui-accordion-header a,#content .wpb_content_element .ui-tabs .ui-tabs-nav,.jackbox-modal h2,.jackbox-modal h3,.jackbox-title-text,#ticker-items li a,#ticker-items li span,#mgm-live-search input,.search-in-place .title,.search-in-place .more,.social-count-plus span.count,.img-hover-info,.btn,#mgm-collapse-newsletter span,.author-name a,#rating-box,cite.fn,.mgm-trigger,.mgm-overtitle,.mgm-share-text,.mgm-onsale,.delete-activity,.delete-activity-single,.buddypress .generic-button a,.buddypress .actions a,#mgm-notifications-modal .modal-content,.bbp-form legend,.wpb_button,.bbp-forum-title,.bbp-view-title,.bbp-reply-topic-title,.bbp-pagination-links,ul.tabs li a,.woocommerce .product_list_widget,.woocommerce span.amount,.item-title{font-family:Oswald}body{font-family:Roboto}body{font-size:20px}</style><style></style><link rel="icon" href="http://www.fortressofsolitude.co.za/wp-content/uploads/2016/06/cropped-fortress-of-Solitude-60x60.jpg" sizes="32x32" /><link rel="icon" href="http://www.fortressofsolitude.co.za/wp-content/uploads/2016/06/cropped-fortress-of-Solitude-220x220.jpg" sizes="192x192" /><link rel="apple-touch-icon-precomposed" href="http://www.fortressofsolitude.co.za/wp-content/uploads/2016/06/cropped-fortress-of-Solitude-220x220.jpg" /><meta name="msapplication-TileImage" content="http://www.fortressofsolitude.co.za/wp-content/uploads/2016/06/cropped-fortress-of-Solitude-375x375.jpg" /><style type='text/css'>.ai-viewport-3{display:none!important}.ai-viewport-2{display:none!important}.ai-viewport-1{display:inherit!important}.ai-viewport-0{display:none!important}@media (min-width:768px) and (max-width:979px){.ai-viewport-1{display:none!important}.ai-viewport-2{display:inherit!important}}@media (max-width:767px){.ai-viewport-1{display:none!important}.ai-viewport-3{display:inherit!important}}</style><link rel="stylesheet" type="text/css" href="http://www.fortressofsolitude.co.za/wp-content/themes/mightymag/css/customcss.css"></head><body class="post-template-default single single-post postid-116764 single-format-standard group-blog"> <a href="#mgm-menu" class="menu-toggle animated visible-xs"><i class="glyphicon glyphicon-align-justify"></i></a><div class="nav-wrap" id="nav-original"><nav class="site-navigation main-navigation" itemscope="itemscope" itemtype="http://schema.org/SiteNavigationElement" id="mgm-menu"><div class="assistive-text skip-link"><a href="#content" title="Skip to content">Skip to content</a></div> <a href="#" class="menu-toggle toggle-close"><i class="glyphicon glyphicon-remove-sign"></i></a><div class="menu-main-container"><ul id="menu-main" class="menu"><li id="menu-item-104983" class="logohome menu-item menu-item-type-custom menu-item-object-custom menu-item-home"><a href="http://www.fortressofsolitude.co.za/" class="menu-image-title-hide menu-image-hovered"><span class="menu-image-title">Home</span><span class='menu-image-hover-wrapper'><img width="147" height="35" src="http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/fortress-of-solitude-2.jpg" class="menu-image menu-image-title-hide" alt="fortress of solitude" srcset="http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/fortress-of-solitude-2.jpg 147w, http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/fortress-of-solitude-2-24x6.jpg 24w, http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/fortress-of-solitude-2-36x9.jpg 36w, http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/fortress-of-solitude-2-48x11.jpg 48w" sizes="(max-width: 147px) 100vw, 147px" /><img width="147" height="35" src="http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/fortress-of-solitude2-1.jpg" class="hovered-image menu-image-title-hide" alt="fortress of solitude" style="margin-left: -147px;" srcset="http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/fortress-of-solitude2-1.jpg 147w, http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/fortress-of-solitude2-1-24x6.jpg 24w, http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/fortress-of-solitude2-1-36x9.jpg 36w, http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/fortress-of-solitude2-1-48x11.jpg 48w" sizes="(max-width: 147px) 100vw, 147px" /></span></a><span class="bottom-line custom-color cat-bg"></span></li><li id="menu-item-14615" class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent"><a title="Movies" href="http://www.fortressofsolitude.co.za/movies/" class="menu-image-title-after"><span class="menu-image-title">Movies</span></a><span class="bottom-line custom-color cat-bg"></span></li><li id="menu-item-14614" class="menu-item menu-item-type-taxonomy menu-item-object-category"><a title="Gaming" href="http://www.fortressofsolitude.co.za/gaming/" class="menu-image-title-after"><span class="menu-image-title">Gaming</span></a><span class="bottom-line custom-color cat-bg"></span></li><li id="menu-item-49958" class="menu-item menu-item-type-taxonomy menu-item-object-category"><a title="Comics" href="http://www.fortressofsolitude.co.za/comic-books/" class="menu-image-title-after"><span class="menu-image-title">Comics</span></a><span class="bottom-line custom-color cat-bg"></span></li><li id="menu-item-14617" class="menu-item menu-item-type-taxonomy menu-item-object-category"><a title="Technology" href="http://www.fortressofsolitude.co.za/technology/" class="menu-image-title-after"><span class="menu-image-title">Tech</span></a><span class="bottom-line custom-color cat-bg"></span></li><li id="menu-item-51559" class="menu-item menu-item-type-taxonomy menu-item-object-category"><a title="TV" href="http://www.fortressofsolitude.co.za/tv-series/" class="menu-image-title-after"><span class="menu-image-title">TV</span></a><span class="bottom-line custom-color cat-bg"></span></li><li id="menu-item-116612" class="menu-item menu-item-type-taxonomy menu-item-object-category"><a href="http://www.fortressofsolitude.co.za/toys-figurines/" class="menu-image-title-after"><span class="menu-image-title">Toys</span></a><span class="bottom-line custom-color cat-bg"></span></li><li id="menu-item-116613" class="menu-item menu-item-type-taxonomy menu-item-object-category"><a href="http://www.fortressofsolitude.co.za/sneakers/" class="menu-image-title-after"><span class="menu-image-title">Sneakers</span></a><span class="bottom-line custom-color cat-bg"></span></li><li id="menu-item-34182" class="menu-item menu-item-type-taxonomy menu-item-object-category"><a title="Win" href="http://www.fortressofsolitude.co.za/competitions/" class="menu-image-title-after"><span class="menu-image-title">Win</span></a><span class="bottom-line custom-color cat-bg"></span></li><li id="menu-item-103242" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="http://www.fortressofsolitude.co.za/contact/" class="menu-image-title-after"><span class="menu-image-title">Contact</span></a><span class="bottom-line custom-color cat-bg"></span></li><li id="menu-item-116607" class="menu-item menu-item-type-post_type menu-item-object-page"><a title="Search" href="http://www.fortressofsolitude.co.za/search/" class="menu-image-title-hide menu-image-not-hovered"><span class="menu-image-title">Search</span><img width="36" height="36" src="http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/search-1-36x36.png" class="menu-image menu-image-title-hide" alt="" srcset="http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/search-1-36x36.png 36w, http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/search-1-220x220.png 220w, http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/search-1-375x375.png 375w, http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/search-1-60x60.png 60w, http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/search-1-100x100.png 100w, http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/search-1-24x24.png 24w, http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/search-1-48x48.png 48w, http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/search-1-470x470.png 470w, http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/search-1.png 512w" sizes="(max-width: 36px) 100vw, 36px" /></a><span class="bottom-line custom-color cat-bg"></span></li></ul></div></nav></div><div id="toppy"><div id="mgm-top-ad"><div class='code-block code-block-3 ai-viewport-1' style='margin: 8px auto; text-align: center; clear: both;'><div class="pt-cv-wrapper"><div class="pt-cv-view pt-cv-grid pt-cv-colsys" id="pt-cv-view-469f818ys2"><div data-id="pt-cv-page-1" class="pt-cv-page" data-cvc="5"><div class="col-md-2 col-sm-6 col-xs-12 pt-cv-content-item pt-cv-1-col"><div class='pt-cv-ifield'><a href="http://www.fortressofsolitude.co.za/black-people-avengers-infinity-war/" class="_self pt-cv-href-thumbnail pt-cv-thumb-default" target="_self"><img width="370" height="180" src="http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/avengers-infinity-war-black-people-370x180.jpg" class="pt-cv-thumbnail" alt="avengers: infinity war black people" srcset="http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/avengers-infinity-war-black-people-370x180.jpg 370w, http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/avengers-infinity-war-black-people-268x130.jpg 268w" sizes="(max-width: 370px) 100vw, 370px" /></a><h4 class="pt-cv-title"><a href="http://www.fortressofsolitude.co.za/black-people-avengers-infinity-war/" class="_self" target="_self">Wakanda Fury: Some Viewers Are Upset About How Black People Are Treated In Avengers: Infinity War</a></h4></div></div><div class="col-md-2 col-sm-6 col-xs-12 pt-cv-content-item pt-cv-1-col"><div class='pt-cv-ifield'><a href="http://www.fortressofsolitude.co.za/jason-momoa-comic-con-africa/" class="_self pt-cv-href-thumbnail pt-cv-thumb-default" target="_self"><img width="370" height="180" src="http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/jason-2-370x180.jpg" class="pt-cv-thumbnail" alt="" srcset="http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/jason-2-370x180.jpg 370w, http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/jason-2-268x130.jpg 268w, http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/jason-2-24x13.jpg 24w" sizes="(max-width: 370px) 100vw, 370px" /></a><h4 class="pt-cv-title"><a href="http://www.fortressofsolitude.co.za/jason-momoa-comic-con-africa/" class="_self" target="_self">Aquaman&#8217;s Jason Momoa Will Be Attending Comic Con Africa</a></h4></div></div><div class="col-md-2 col-sm-6 col-xs-12 pt-cv-content-item pt-cv-1-col"><div class='pt-cv-ifield'><a href="http://www.fortressofsolitude.co.za/win-avengers-infinity-war-hamper/" class="_self pt-cv-href-thumbnail pt-cv-thumb-default" target="_self"><img width="370" height="180" src="http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/avengers_infinity_war-370x180.jpg" class="pt-cv-thumbnail" alt="" srcset="http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/avengers_infinity_war-370x180.jpg 370w, http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/avengers_infinity_war-268x130.jpg 268w" sizes="(max-width: 370px) 100vw, 370px" /></a><h4 class="pt-cv-title"><a href="http://www.fortressofsolitude.co.za/win-avengers-infinity-war-hamper/" class="_self" target="_self">Win An Avengers: Infinity War Hamper</a></h4></div></div><div class="col-md-2 col-sm-6 col-xs-12 pt-cv-content-item pt-cv-1-col"><div class='pt-cv-ifield'><a href="http://www.fortressofsolitude.co.za/8-ways-to-introduce-x-men-fantastic-four-more-into-the-mcu/" class="_self pt-cv-href-thumbnail pt-cv-thumb-default" target="_self"><img width="370" height="180" src="http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/8-Ways-To-Introduce-X-Men-Fantastic-Four-More-Into-The-MCU-370x180.jpg" class="pt-cv-thumbnail" alt="8 Ways To Introduce X-Men, Fantastic Four &amp; More Into The MCU" srcset="http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/8-Ways-To-Introduce-X-Men-Fantastic-Four-More-Into-The-MCU-370x180.jpg 370w, http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/8-Ways-To-Introduce-X-Men-Fantastic-Four-More-Into-The-MCU-268x130.jpg 268w" sizes="(max-width: 370px) 100vw, 370px" /></a><h4 class="pt-cv-title"><a href="http://www.fortressofsolitude.co.za/8-ways-to-introduce-x-men-fantastic-four-more-into-the-mcu/" class="_self" target="_self">8 Ways To Introduce X-Men, Fantastic Four &#038; More Into The MCU</a></h4></div></div><div class="col-md-4 col-sm-6 col-xs-12 pt-cv-content-item pt-cv-1-col"><div class='pt-cv-ifield'><a href="http://www.fortressofsolitude.co.za/zack-snyder-justice-league-cut/" class="_self pt-cv-href-thumbnail pt-cv-thumb-default" target="_self"><img width="370" height="180" src="http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/zack-snyder-justice-league-1-370x180.jpg" class="pt-cv-thumbnail" alt="zack snyder justice league" srcset="http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/zack-snyder-justice-league-1-370x180.jpg 370w, http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/zack-snyder-justice-league-1-268x130.jpg 268w" sizes="(max-width: 370px) 100vw, 370px" /></a><h4 class="pt-cv-title"><a href="http://www.fortressofsolitude.co.za/zack-snyder-justice-league-cut/" class="_self" target="_self">We Don&#8217;t Need A Zack Snyder Cut of Justice League</a></h4></div></div></div></div></div></div><center><ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6351331605423593" data-ad-slot="1569546207" data-ad-format="auto"></ins> <script>(adsbygoogle = window.adsbygoogle || []).push({});</script> </center></div></div><div id="mgm-super-container"><div class="mgm-full-main"><div id="page" class="hfeed site"><div id="mgm-header-wrap" class="mgm-gray-frame"><div id="mgm-header-opacity"><div id="mgm-full-supertop"><div id="mgm-full-supertop-overlay"></div></div></div></div><div id="main" class="site-main container"><div class="content-sidebar-wrap"><div class="row"><header class="entry-header boxed"><h1 class="entry-title"><a href="http://www.fortressofsolitude.co.za/celine-dion-deadpool-2-soundtrack-ashes/" rel="bookmark" title="Céline Dion Belches Her Way Onto Deadpool 2&#8217;s Soundtrack">Céline Dion Belches Her Way Onto Deadpool 2&#8217;s Soundtrack</a></h1><div><p class="byline2">Because his heart will go on.</p></div><div class="mgm-title2"><h4><span class="author-name">Written by <a href="http://www.fortressofsolitude.co.za/author/the-riddler/" title="Posts by Edward Wallace" rel="author">Edward Wallace</a> </span></h4></div></header><div id="primary" class="content-area col-md-8"><div id="content" class="site-content" role="main"><div id="fb-root"></div> <script>(function(d, s, id) {
+ var js, fjs = d.getElementsByTagName(s)[0];
+ if (d.getElementById(id)) return;
+ js = d.createElement(s); js.id = id;
+ js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
+ fjs.parentNode.insertBefore(js, fjs);
+ }(document, "script", "facebook-jssdk"));</script> <article id="post-116764" class="post-116764 post type-post status-publish format-standard has-post-thumbnail hentry category-deadpool category-marvel category-movies category-news tag-deadpool tag-deadpool-2 tag-marvel tag-movies tag-music-2"><div class="entry-img featured-img"> <span class="entry-img-src"> <a href="http://www.fortressofsolitude.co.za/celine-dion-deadpool-2-soundtrack-ashes/" title="Céline Dion Belches Her Way Onto Deadpool 2&#039;s Soundtrack"><img width="750" height="400" src="http://www.fortressofsolitude.co.za/wp-content/uploads/2018/05/Céline-Dion-Belches-Her-Way-Onto-Deadpool-2s-Soundtrack-750x400.jpg" class="attachment-regular-featured size-regular-featured wp-post-image" alt="Céline Dion Belches Her Way Onto Deadpool 2&#039;s Soundtrack" srcset="http://www.fortressofsolitude.co.za/wp-content/uploads/2018/05/Céline-Dion-Belches-Her-Way-Onto-Deadpool-2s-Soundtrack-750x400.jpg 750w, http://www.fortressofsolitude.co.za/wp-content/uploads/2018/05/Céline-Dion-Belches-Her-Way-Onto-Deadpool-2s-Soundtrack-24x14.jpg 24w" sizes="(max-width: 750px) 100vw, 750px" /></a> </span></div><header class="entry-header boxed"><div class="clear"></div><div class="entry-details clearfix"><div class="mgm-cat"> <a style="background-color: #cf0707" href="http://www.fortressofsolitude.co.za/deadpool/" title="View all posts in Deadpool">Deadpool</a> <a style="background-color: " href="http://www.fortressofsolitude.co.za/marvel/" title="View all posts in Marvel">Marvel</a> <a style="background-color: #ff6600" href="http://www.fortressofsolitude.co.za/movies/" title="View all posts in Movies">Movies</a> <a style="background-color: " href="http://www.fortressofsolitude.co.za/news/" title="View all posts in News">News</a></div> <span class="mgm-details"> <span class="entry-posted-on"><span class="glyphicon glyphicon-edit"></span> <a href="http://www.fortressofsolitude.co.za/celine-dion-deadpool-2-soundtrack-ashes/" title="3:37 pm" rel="bookmark"><time class="entry-date" datetime="2018-05-03T15:37:08+00:00">May 3, 2018</time></a><span class="byline"> <i class="icon-pencil"></i> <span class="author vcard"><a class="url fn n" href="http://www.fortressofsolitude.co.za/author/the-riddler/" title="View all posts by Edward Wallace" rel="author">Edward Wallace</a></span></span></span> </span></div></header><div class="entry-content clearfix"><aside class="mashsb-container mashsb-main mashsb-stretched"><div class="mashsb-box"><div class="mashsb-count mash-large" style="float:left;"><div class="counts mashsbcount">28</div><span class="mashsb-sharetext">SHARES</span></div><div class="mashsb-buttons"><a class="mashicon-facebook mash-large mash-center mashsb-noshadow" href="https://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.fortressofsolitude.co.za%2Fceline-dion-deadpool-2-soundtrack-ashes%2F" target="_blank" rel="noopener nofollow"><span class="icon"></span><span class="text">Share</span></a><a class="mashicon-twitter mash-large mash-center mashsb-noshadow" href="https://twitter.com/intent/tweet?text=C%C3%A9line%20Dion%20Belches%20Her%20Way%20Onto%20Deadpool%202%27s%20Soundtrack&url=http://www.fortressofsolitude.co.za/celine-dion-deadpool-2-soundtrack-ashes/&via=FortressofS" target="_blank" rel="noopener nofollow"><span class="icon"></span><span class="text">Tweet</span></a><a class="mashicon-subscribe mash-large mash-center mashsb-noshadow" href="#" target="_blank" rel="noopener nofollow"><span class="icon"></span><span class="text">Subscribe</span></a><div class="onoffswitch2 mash-large mashsb-noshadow" style="display:none;"></div></div></div><div style="clear:both;"></div></aside><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><hr><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div><div><div></div><div></div><div></div><div></div><div></div><div></div><div class="mobileads"><center><ins class="adsbygoogle" style="display:inline-block;width:300px;height:250px" data-ad-client="ca-pub-6351331605423593" data-ad-slot="5026959162"></ins> <script>(adsbygoogle = window.adsbygoogle || []).push({});</script></center></div><p><span class="wpsdc-drop-cap">R</span>yan Reynolds never stops surprising fans with his <a href="http://www.fortressofsolitude.co.za/new-deadpool-2-trailer/">Deadpool</a>, a.k.a. the Merc with the Mouth, persona. Just when you think the marketing behind the film couldn&#8217;t get any more amazing, they go and release a music video from the <strong><em>Deadpool 2</em></strong> soundtrack starring Canadian singer Céline Dion. Yes, the one who sang the <em>Titanic</em> theme song. Your eyes do not deceive you.</p><p><center></p><blockquote class="twitter-tweet" data-lang="en"><p lang="tl" dir="ltr">Showtime, Mama. <a rel="nofollow" target="_blank" href="https://twitter.com/hashtag/EffortMaximal?src=hash&amp;ref_src=twsrc%5Etfw">#EffortMaximal</a> <a rel="nofollow" target="_blank" href="https://twitter.com/hashtag/Deadpool2?src=hash&amp;ref_src=twsrc%5Etfw">#Deadpool2</a> <a rel="nofollow" target="_blank" href="https://t.co/ZKLrucXJO4">pic.twitter.com/ZKLrucXJO4</a></p><p>&mdash; Ryan Reynolds (@VancityReynolds) <a rel="nofollow" target="_blank" href="https://twitter.com/VancityReynolds/status/992018849225695242?ref_src=twsrc%5Etfw">May 3, 2018</a></p></blockquote><p><br /></center></p><p>&#8220;What’s left to say? These prayers ain’t working anymore. Every word shot down in flames. What’s left to do with these broken pieces on the floor? I’m losing my voice calling on you,&#8221; Dion croons in the video for &#8220;Ashes&#8221;. Near the end of it, the filthy, foul-mouthed <a href="http://www.fortressofsolitude.co.za/hilarious-deadpool-2-teaser-bob-ross/">Deadpool</a> shows up in a surprising twist mentioning that he should have gotten N&#8217;sync instead.</p><h3><strong><em>Deadpool 2</em></strong> opens in theatres on May 18.</h3><p><div class="rll-youtube-player" data-id="CX11yw6YL1w"></div><noscript><iframe width="1140" height="641" src="https://www.youtube.com/embed/CX11yw6YL1w?feature=oembed" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe></noscript></p></div></div></div><div class="mobileads"><center><ins class="adsbygoogle" style="display:inline-block;width:300px;height:250px" data-ad-client="ca-pub-6351331605423593" data-ad-slot="5026959162"></ins> <script>(adsbygoogle = window.adsbygoogle || []).push({});</script></center></div><hr><div class="socialcredits"><p>Connect with us on <a target="_blank" rel="nofollow" href="https://web.facebook.com/FortressZA/">Facebook</a>, <a target="_blank" rel="nofollow" href="https://twitter.com/FortressofS">Twitter</a> and <a target="_blank" rel="nofollow" href="https://www.instagram.com/fortresszar/">Instagram.</a> Sign up to our <a target="_blank" rel="nofollow" href="https://fortressofsolitude.us10.list-manage.com/subscribe?u=d45e8fb2bd3ba44e57869f584&id=4d3d5fcd86">Newsletter</a>.</p></div><div class="tag-list"> <a href="http://www.fortressofsolitude.co.za/tag/deadpool/"><span>Deadpool</span></a> <a href="http://www.fortressofsolitude.co.za/tag/deadpool-2/"><span>Deadpool 2</span></a> <a href="http://www.fortressofsolitude.co.za/tag/marvel/"><span>Marvel</span></a> <a href="http://www.fortressofsolitude.co.za/tag/movies/"><span>Movies</span></a> <a href="http://www.fortressofsolitude.co.za/tag/music-2/"><span>Music</span></a></div><div class="mgm-social-share clearfix"><span class="mgm-share-text hidden-xs wow pulse" data-wow-delay="1s">Share it !</span><ul class="clearfix"><li> <a href="https://twitter.com/home?status=C%C3%A9line+Dion+Belches+Her+Way+Onto+Deadpool+2%26%238217%3Bs+Soundtrack+http%3A%2F%2Fwww.fortressofsolitude.co.za%2Fceline-dion-deadpool-2-soundtrack-ashes%2F" class="mgm-share-twitter" onclick="javascript:void window.open('http://twitter.com/home?status=C%C3%A9line+Dion+Belches+Her+Way+Onto+Deadpool+2%26%238217%3Bs+Soundtrack+http%3A%2F%2Fwww.fortressofsolitude.co.za%2Fceline-dion-deadpool-2-soundtrack-ashes%2F','1412258836570','width=640,height=480,toolbar=0,menubar=0,location=0,status=1,scrollbars=1,resizable=1,left=0,top=0');return false;"><span class="socicon socicon-twitter"></span></a></li><li> <a href="https://www.facebook.com/share.php?u=http%3A%2F%2Fwww.fortressofsolitude.co.za%2Fceline-dion-deadpool-2-soundtrack-ashes%2F&amp;title=C%C3%A9line+Dion+Belches+Her+Way+Onto+Deadpool+2%26%238217%3Bs+Soundtrack" class="mgm-share-fb" onclick="javascript:void window.open('http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.fortressofsolitude.co.za%2Fceline-dion-deadpool-2-soundtrack-ashes%2F&amp;title=C%C3%A9line+Dion+Belches+Her+Way+Onto+Deadpool+2%26%238217%3Bs+Soundtrack','1412258836570','width=640,height=480,toolbar=0,menubar=0,location=0,status=1,scrollbars=1,resizable=1,left=0,top=0');return false;"><span class="socicon socicon-facebook"></span></a></li><li> <a href="https://plus.google.com/share?url=http%3A%2F%2Fwww.fortressofsolitude.co.za%2Fceline-dion-deadpool-2-soundtrack-ashes%2F" class="mgm-share-google" onclick="javascript:void window.open('https://plus.google.com/share?url=http%3A%2F%2Fwww.fortressofsolitude.co.za%2Fceline-dion-deadpool-2-soundtrack-ashes%2F','1412258836570','width=640,height=480,toolbar=0,menubar=0,location=0,status=1,scrollbars=1,resizable=1,left=0,top=0');return false;"><span class="socicon socicon-google"></span></a></li><li> <a href="https://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.fortressofsolitude.co.za%2Fceline-dion-deadpool-2-soundtrack-ashes%2F&amp;title=C%C3%A9line+Dion+Belches+Her+Way+Onto+Deadpool+2%26%238217%3Bs+Soundtrack&amp;source=Fortress of Solitude" class="mgm-share-linkedin" onclick="javascript:void window.open('http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.fortressofsolitude.co.za%2Fceline-dion-deadpool-2-soundtrack-ashes%2F&amp;title=C%C3%A9line+Dion+Belches+Her+Way+Onto+Deadpool+2%26%238217%3Bs+Soundtrack&amp;source=Fortress of Solitude','1412258836570','width=640,height=480,toolbar=0,menubar=0,location=0,status=1,scrollbars=1,resizable=1,left=0,top=0');return false;"><span class="socicon socicon-linkedin"></span></a></li><li> <a href="https://pinterest.com/pin/create/bookmarklet/?media=http://www.fortressofsolitude.co.za/wp-content/uploads/2018/05/Céline-Dion-Belches-Her-Way-Onto-Deadpool-2s-Soundtrack.jpg&amp;url=http%3A%2F%2Fwww.fortressofsolitude.co.za%2Fceline-dion-deadpool-2-soundtrack-ashes%2F&amp;is_video=false&amp;description=C%C3%A9line+Dion+Belches+Her+Way+Onto+Deadpool+2%26%238217%3Bs+Soundtrack" class="mgm-share-pinterest" onclick="javascript:void window.open('http://pinterest.com/pin/create/bookmarklet/?media=http://www.fortressofsolitude.co.za/wp-content/uploads/2018/05/Céline-Dion-Belches-Her-Way-Onto-Deadpool-2s-Soundtrack.jpg&amp;url=http%3A%2F%2Fwww.fortressofsolitude.co.za%2Fceline-dion-deadpool-2-soundtrack-ashes%2F&amp;is_video=false&amp;description=C%C3%A9line+Dion+Belches+Her+Way+Onto+Deadpool+2%26%238217%3Bs+Soundtrack','1412258836570','width=640,height=480,toolbar=0,menubar=0,location=0,status=1,scrollbars=1,resizable=1,left=0,top=0');return false;"><span class="socicon socicon-pinterest"></span></a></li><li> <a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.fortressofsolitude.co.za%2Fceline-dion-deadpool-2-soundtrack-ashes%2F&amp;title=C%C3%A9line+Dion+Belches+Her+Way+Onto+Deadpool+2%26%238217%3Bs+Soundtrack" class="mgm-share-stumbleupon" onclick="javascript:void window.open('http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.fortressofsolitude.co.za%2Fceline-dion-deadpool-2-soundtrack-ashes%2F&amp;title=C%C3%A9line+Dion+Belches+Her+Way+Onto+Deadpool+2%26%238217%3Bs+Soundtrack','1412258836570','width=640,height=480,toolbar=0,menubar=0,location=0,status=1,scrollbars=1,resizable=1,left=0,top=0');return false;"><span class="socicon socicon-stumbleupon"></span></a></li><li> <a href="https://www.reddit.com/submit?url=http%3A%2F%2Fwww.fortressofsolitude.co.za%2Fceline-dion-deadpool-2-soundtrack-ashes%2F&amp;title=C%C3%A9line+Dion+Belches+Her+Way+Onto+Deadpool+2%26%238217%3Bs+Soundtrack" class="mgm-share-reddit" onclick="javascript:void window.open('http://www.reddit.com/submit?url=http%3A%2F%2Fwww.fortressofsolitude.co.za%2Fceline-dion-deadpool-2-soundtrack-ashes%2F&amp;title=C%C3%A9line+Dion+Belches+Her+Way+Onto+Deadpool+2%26%238217%3Bs+Soundtrack','1412258836570','width=640,height=480,toolbar=0,menubar=0,location=0,status=1,scrollbars=1,resizable=1,left=0,top=0');return false;"><span class="socicon socicon-reddit"></span></a></li></ul></div><div class="clear"></div><div class="space"></div><div class="addthis_sharing_toolbox" data-url="http://www.fortressofsolitude.co.za/celine-dion-deadpool-2-soundtrack-ashes/" data-title="Céline Dion Belches Her Way Onto Deadpool 2&#8217;s Soundtrack"></div><div id="mgm-related-wrap" class="row"><h4 class="mgm-title col-md-12"> <span>You may also like</span></h4><div class="doggy"><div class="mgm-related-item col-md-6 wow fadeInUp"><div class="custom-widget"><div class="entry-img"><div class="img-frame"> <a href="http://www.fortressofsolitude.co.za/robin-hood-trailer/" title="Robin Hood Gets Another Gritty Reboot. Here Is The Trailer"><img width="370" height="180" src="http://www.fortressofsolitude.co.za/wp-content/uploads/2018/05/Robin-Hood-Trailer-370x180.jpg" class="attachment-medium size-medium wp-post-image" alt="Robin Hood Gets Another Gritty Reboot. Here Is The Trailer" title="Robin Hood Gets Another Gritty Reboot. Here Is The Trailer" srcset="http://www.fortressofsolitude.co.za/wp-content/uploads/2018/05/Robin-Hood-Trailer-370x180.jpg 370w, http://www.fortressofsolitude.co.za/wp-content/uploads/2018/05/Robin-Hood-Trailer-268x130.jpg 268w" sizes="(max-width: 370px) 100vw, 370px" /></a><div class="mgm-cat2"> <a href="http://www.fortressofsolitude.co.za/movies/" title="View all posts in Movies">Movies</a> <a href="http://www.fortressofsolitude.co.za/news/" title="View all posts in News">News</a> <a href="http://www.fortressofsolitude.co.za/trailer/" title="View all posts in Trailer">Trailer</a></div></div></div><h3 class="entry-title"> <a href="http://www.fortressofsolitude.co.za/robin-hood-trailer/" title="Permalink to Robin Hood Gets Another Gritty Reboot. Here Is The Trailer" rel="bookmark">Robin Hood Gets Another Gritty Reboot. Here Is The Trailer</a></h3><div style="font-size: 15px; line-height: 17px!important; margin-bottom: 10px; margin-left: 20px; color: grey;">Hollywood has run out of ideas again. With that comes another Robin Hood film just eight years after Ridley Scott&#8217;s film starring Russell Crowe. It seems audiences can&#8217;t get enough</div><div class="written"> By <span>Edward Wallace</span> on 04 May 2018</div></div></div></div><div class="doggy"><div class="mgm-related-item col-md-6 wow fadeInUp"><div class="custom-widget"><div class="entry-img"><div class="img-frame"> <a href="http://www.fortressofsolitude.co.za/jamie-foxx-spawn-reboot/" title="Jamie Foxx Might Be Playing Spawn After All"><img width="370" height="180" src="http://www.fortressofsolitude.co.za/wp-content/uploads/2018/05/Jamie-Foxx-Might-Be-Playing-Spawn-After-All-370x180.jpg" class="attachment-medium size-medium wp-post-image" alt="Jamie Foxx Might Be Playing Spawn After All" title="Jamie Foxx Might Be Playing Spawn After All" srcset="http://www.fortressofsolitude.co.za/wp-content/uploads/2018/05/Jamie-Foxx-Might-Be-Playing-Spawn-After-All-370x180.jpg 370w, http://www.fortressofsolitude.co.za/wp-content/uploads/2018/05/Jamie-Foxx-Might-Be-Playing-Spawn-After-All-268x130.jpg 268w" sizes="(max-width: 370px) 100vw, 370px" /></a><div class="mgm-cat2"> <a href="http://www.fortressofsolitude.co.za/movies/" title="View all posts in Movies">Movies</a> <a href="http://www.fortressofsolitude.co.za/news/" title="View all posts in News">News</a></div></div></div><h3 class="entry-title"> <a href="http://www.fortressofsolitude.co.za/jamie-foxx-spawn-reboot/" title="Permalink to Jamie Foxx Might Be Playing Spawn After All" rel="bookmark">Jamie Foxx Might Be Playing Spawn After All</a></h3><div style="font-size: 15px; line-height: 17px!important; margin-bottom: 10px; margin-left: 20px; color: grey;">Todd McFarlane’s long-discussed gritty R-rated Spawn movie reboot is moving forward. There are now rumours that Jamie Foxx, who has been lobbying for the role since 2013, is in early</div><div class="written"> By <span>Edward Wallace</span> on 03 May 2018</div></div></div></div></div><div id="comments" class="comments-area"><h3 class="mgm-title"> <span> No Comments <span class="comment-title-visibility"></span> </span></h4><div id="respond" class="comment-respond"><h3 id="reply-title" class="comment-reply-title">Leave a Comment <small><a rel="nofollow" id="cancel-comment-reply-link" href="/celine-dion-deadpool-2-soundtrack-ashes/#respond" style="display:none;">Cancel reply</a></small></h3><form action="http://www.fortressofsolitude.co.za/wp-comments-post.php" method="post" id="commentform" class="comment-form"><div class="comment-form-input comment-form-comment"><label for="comment">Comment</label><textarea id="comment" name="comment" class="form-control" cols="45" rows="8" aria-required="true"></textarea></div><div class="comment-form-input comment-form-author"><label for="author">Name</label><div class="input-group"><span class="input-group-addon"><span class="glyphicon glyphicon-user"></span></span> <input class="form-control" id="author" name="author" type="text" placeholder="Name" value="" size="20" aria-required='true' /><span class="glyphicon glyphicon-asterisk"></span></div></div><div class="comment-form-input comment-form-email"><label for="email">Email</label><div class="input-group"><span class="input-group-addon"><span class="glyphicon glyphicon-envelope"></span></span> <input class="form-control" id="email" name="email" type="text" placeholder="Email" value="" size="20" aria-required='true' /><span class="glyphicon glyphicon-asterisk"></span></div></div><p class="form-submit"><input name="submit" type="submit" id="submit" class="submit" value="Post Comment" /> <input type='hidden' name='comment_post_ID' value='116764' id='comment_post_ID' /> <input type='hidden' name='comment_parent' id='comment_parent' value='0' /></p><p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="4d86b8296f" /></p><p style="display: none;"><input type="hidden" id="ak_js" name="ak_js" value="175" /></p></form></div></div><footer class="entry-meta clearfix"></footer></article></div></div><div class="col-md-4"><div id="sidebar"><div id="secondary" role="complementary" itemscope="itemscope" itemtype="http://schema.org/WPSideBar"><aside id="media_image-2" class="widget clearfix widget_media_image"><a target="_blank" rel="nofollow" href="https://goo.gl/8oxHCK"><img width="320" height="250" src="http://www.fortressofsolitude.co.za/wp-content/uploads/2018/05/Games-Festival-banner_-320-x250.jpg" class="image wp-image-116807 attachment-full size-full" alt="Games Festival" style="max-width: 100%; height: auto;" srcset="http://www.fortressofsolitude.co.za/wp-content/uploads/2018/05/Games-Festival-banner_-320-x250.jpg 320w, http://www.fortressofsolitude.co.za/wp-content/uploads/2018/05/Games-Festival-banner_-320-x250-24x19.jpg 24w, http://www.fortressofsolitude.co.za/wp-content/uploads/2018/05/Games-Festival-banner_-320-x250-36x28.jpg 36w, http://www.fortressofsolitude.co.za/wp-content/uploads/2018/05/Games-Festival-banner_-320-x250-48x38.jpg 48w" sizes="(max-width: 320px) 100vw, 320px" /></a></aside><aside id="text-11" class="widget clearfix widget_text"><h2 class="mgm-title"><span>Don&#8217;t Miss</span></h2><div class="textwidget"><div class="pt-cv-wrapper"><div class="pt-cv-view pt-cv-grid pt-cv-colsys" id="pt-cv-view-b49103f0lt"><div data-id="pt-cv-page-1" class="pt-cv-page" data-cvc="1"><div class="col-md-12 col-sm-12 col-xs-12 pt-cv-content-item pt-cv-1-col"><div class='pt-cv-ifield'><a href="http://www.fortressofsolitude.co.za/showmax-animated-tv-show-for-adults/" class="_self pt-cv-href-thumbnail pt-cv-thumb-default" target="_self"><img width="370" height="180" src="http://www.fortressofsolitude.co.za/wp-content/uploads/2018/05/Animated-TV-Shows-For-Adults-Were-Currently-Watching-370x180.jpg" class="pt-cv-thumbnail" alt="Animated TV Shows For Adults We&#039;re Currently Watching" srcset="http://www.fortressofsolitude.co.za/wp-content/uploads/2018/05/Animated-TV-Shows-For-Adults-Were-Currently-Watching-370x180.jpg 370w, http://www.fortressofsolitude.co.za/wp-content/uploads/2018/05/Animated-TV-Shows-For-Adults-Were-Currently-Watching-268x130.jpg 268w" sizes="(max-width: 370px) 100vw, 370px" /></a></p><h4 class="pt-cv-title"><a href="http://www.fortressofsolitude.co.za/showmax-animated-tv-show-for-adults/" class="_self" target="_self">Animated TV Shows For Adults We&#8217;re Currently Watching</a></h4></div></div><div class="col-md-12 col-sm-12 col-xs-12 pt-cv-content-item pt-cv-1-col"><div class='pt-cv-ifield'><a href="http://www.fortressofsolitude.co.za/showmax-sci-fi/" class="_self pt-cv-href-thumbnail pt-cv-thumb-default" target="_self"><img width="370" height="180" src="http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/The-Beyond-sci-fi-370x180.jpg" class="pt-cv-thumbnail" alt="The Beyond sci-fi" srcset="http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/The-Beyond-sci-fi-370x180.jpg 370w, http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/The-Beyond-sci-fi-268x130.jpg 268w" sizes="(max-width: 370px) 100vw, 370px" /></a></p><h4 class="pt-cv-title"><a href="http://www.fortressofsolitude.co.za/showmax-sci-fi/" class="_self" target="_self">Underrated Current Sci-Fi TV Shows And Films You Need To Be Watching</a></h4></div></div><div class="col-md-12 col-sm-12 col-xs-12 pt-cv-content-item pt-cv-1-col"><div class='pt-cv-ifield'><a href="http://www.fortressofsolitude.co.za/most-amazing-moments-marvel-cinematic-universe/" class="_self pt-cv-href-thumbnail pt-cv-thumb-default" target="_self"><img width="370" height="180" src="http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/Marvel-Cinematic-Universe-370x180.jpg" class="pt-cv-thumbnail" alt="Marvel Cinematic Universe" srcset="http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/Marvel-Cinematic-Universe-370x180.jpg 370w, http://www.fortressofsolitude.co.za/wp-content/uploads/2018/04/Marvel-Cinematic-Universe-268x130.jpg 268w" sizes="(max-width: 370px) 100vw, 370px" /></a></p><h4 class="pt-cv-title"><a href="http://www.fortressofsolitude.co.za/most-amazing-moments-marvel-cinematic-universe/" class="_self" target="_self">The Most Amazing Moments From The Marvel Cinematic Universe So Far</a></h4></div></div></div></div></div></div></aside><aside id="custom_html-3" class="widget_text widget clearfix widget_custom_html"><div class="textwidget custom-html-widget"><center><ins class="adsbygoogle" style="display:inline-block;width:300px;height:250px" data-ad-client="ca-pub-6351331605423593" data-ad-slot="8971065090"></ins> <script>(adsbygoogle = window.adsbygoogle || []).push({});</script> </center></div></aside><aside id="polls-widget-2" class="widget clearfix widget_polls-widget"><h2 class="mgm-title"><span>Poll Question</span></h2><div id="polls-4" class="wp-polls"><form id="polls_form_4" class="wp-polls-form" action="/index.php" method="post"><p style="display: none;"><input type="hidden" id="poll_4_nonce" name="wp-polls-nonce" value="d74139a68d" /></p><p style="display: none;"><input type="hidden" name="poll_id" value="4" /></p><p style="text-align: center"><strong style="color: #ff0000">What is the best Marvel movie?</strong><div id="polls-4-ans" class="wp-polls-ans"><ul class="wp-polls-ul"></p><li><input type="radio" id="poll-answer-17" name="poll_4" value="17" /> <label for="poll-answer-17">Avengers: Infinity War</label></li><li><input type="radio" id="poll-answer-18" name="poll_4" value="18" /> <label for="poll-answer-18">Black Panther</label></li><li><input type="radio" id="poll-answer-19" name="poll_4" value="19" /> <label for="poll-answer-19">Thor: Ragnarok</label></li><li><input type="radio" id="poll-answer-20" name="poll_4" value="20" /> <label for="poll-answer-20">Captain America: The Winter Soldier</label></li><li><input type="radio" id="poll-answer-21" name="poll_4" value="21" /> <label for="poll-answer-21">Captain America: Civil War</label></li><li><input type="radio" id="poll-answer-22" name="poll_4" value="22" /> <label for="poll-answer-22">The Avengers</label></li><li><input type="radio" id="poll-answer-23" name="poll_4" value="23" /> <label for="poll-answer-23">Guardians of the Galaxy Vol. 1</label></li><li><input type="radio" id="poll-answer-24" name="poll_4" value="24" /> <label for="poll-answer-24">Spider-Man: Homecoming</label></li><li><input type="radio" id="poll-answer-25" name="poll_4" value="25" /> <label for="poll-answer-25">Iron Man</label></li></ul><p style="text-align: center"><input type="button" name="vote" value=" Vote " class="Buttons" onclick="poll_vote(4);" /></p><p style="text-align: center"><a href="#ViewPollResults" onclick="poll_result(4); return false;" title="View Results Of This Poll">View Results</a></p></div></form></div><div id="polls-4-loading" class="wp-polls-loading"><img src="http://www.fortressofsolitude.co.za/wp-content/plugins/wp-polls/images/loading.gif" width="16" height="16" alt="Loading ..." title="Loading ..." class="wp-polls-image" />&nbsp;Loading ...</div></aside></div></div></div></div></div></div><div class="mobileads"><center> <a target="_blank" rel="nofollow" href="https://goo.gl/8oxHCK"><img width="320" height="250" src="http://www.fortressofsolitude.co.za/wp-content/uploads/2018/05/Games-Festival-banner_-320-x250.jpg" class="image wp-image-116807 attachment-full size-full" alt="Games Festival" style="max-width: 100%; height: auto;" srcset="http://www.fortressofsolitude.co.za/wp-content/uploads/2018/05/Games-Festival-banner_-320-x250.jpg 320w, http://www.fortressofsolitude.co.za/wp-content/uploads/2018/05/Games-Festival-banner_-320-x250-24x19.jpg 24w, http://www.fortressofsolitude.co.za/wp-content/uploads/2018/05/Games-Festival-banner_-320-x250-36x28.jpg 36w, http://www.fortressofsolitude.co.za/wp-content/uploads/2018/05/Games-Festival-banner_-320-x250-48x38.jpg 48w" sizes="(max-width: 320px) 100vw, 320px" /></a></div><div id="mgm-footer-wrap" class="mgm-gray-frame"><div id="mgm-full-footer"><footer class="container" id="widgetized-footer"><div class="row"><div class="col-md-4 footer-item"></div><div class="col-md-4 footer-item"></div><div class="col-md-4 footer-item"></div></div></footer></div></div></div></div></div></div></div><div id="mgm-full-site-info"><div id="colophon" class="site-footer container" itemscope="itemscope" itemtype="http://schema.org/WPFooter" role="contentinfo"><div class="site-info row"><div class="col-md-12"><div id="footer-logo" class="wow flipInX" data-wow-delay="0.5s"> <a href="http://www.fortressofsolitude.co.za/" title="Fortress of Solitude"><img src="https://i0.wp.com/www.fortressofsolitude.co.za/wp-content/themes/mightymag/images/fortress-of-Solitude_y1u6tm.jpg" alt="Fortress of Solitude" /></a></div><div class="endy"> <a target="_blank" rel="nofollow" href="https://www.facebook.com/FortressZA/" class="fa fa-facebook"></a> <a target="_blank" rel="nofollow" href="https://twitter.com/FortressofS" class="fa fa-twitter"></a> <a target="_blank" rel="nofollow" href="https://www.youtube.com/channel/UCdB1prTqEL-GNyYyi8xcGwA" class="fa fa-youtube"></a> <a target="_blank" rel="nofollow" href="https://www.instagram.com/fortresszar/" class="fa fa-instagram"></a> <a href="http://www.fortressofsolitude.co.za/feeds/" class="fa fa-rss"></a><h6>Copyright ©2018 Fortress of Solitude. All Rights Reserved.</h6><h6><a href="http://www.fortressofsolitude.co.za/privacy-site-disclaimer/">Site Disclaimer and Terms of Use.</a></h6></div></div></div></div></div></div></div></div> <script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+ })(window,document,'script','http://www.fortressofsolitude.co.za/wp-content/plugins/wp-disable/cache/local-ga.js','ga');ga('create', 'UA-29869719-1', 'auto');ga('set', 'displayFeaturesTask', null);ga('send', 'pageview');</script> <script>jQuery(document).ready(function($) {
+ $(".entry-img .entry-img-src a").attr("href", "http://www.fortressofsolitude.co.za/wp-content/uploads/2018/05/Céline-Dion-Belches-Her-Way-Onto-Deadpool-2s-Soundtrack.jpg");
+ $(".entry-img .entry-img-src a").attr("data-group", "mgm-featured");
+ });</script> <script>var templateDir = "http://www.fortressofsolitude.co.za/wp-content/themes/mightymag";</script> <script>jQuery( document ).ready( function( $ ) {
+
+ /* djwd StickyClone function */
+ var $nav = $(".nav-wrap"),
+
+ //clone navigation
+ $clone = $nav.before($nav.clone().attr( "id" , "nav-clone") );
+
+ //rename the original nav ID to make the small menu toggle:target work
+ $("#mgm-menu").attr('id', 'mgm-menu-replica');
+
+ timeout = false;
+
+ /* The function */
+ $.fn.stickyNav = function() {
+
+ $(window).on("scroll", function() {
+ var fromTop = $( document ).scrollTop(); /* Firefox abmazumdar fix @since MGM 1.4 */
+
+ if(fromTop > 400){
+ $("body").addClass('down')
+ } else {
+ $("body").removeClass('down');
+ };
+ });
+
+ };
+
+ // Check viewport width on first load.
+ if ( $( window ).width() >= 767 ) {
+ $.fn.stickyNav();
+ };
+
+ // Check viewport width when user resizes the browser window.
+ $( window ).resize( function() {
+ var browserWidth = $( window ).width();
+
+ if ( false !== timeout )
+ clearTimeout( timeout );
+
+ timeout = setTimeout( function() {
+ if ( browserWidth > 767 ) {
+ $.fn.stickyNav();
+ }
+ }, 200 );
+ } );
+
+ //Remove double scroll up
+ $( "#mgm-branding .scrollup, .nav-wrap#nav-original .scrollup" ).remove();
+ } );</script> <script>jQuery(document).ready(function($) {
+
+ $(".flex-container .mgm-spinner").hide(300);
+ //$(".flexslider").delay(200).fadeIn(500);
+
+ jQuery('.slider1 .flexslider').flexslider({
+
+ animation: "fade",
+ direction: "horizontal",
+ startAt: 0,
+ slideshowSpeed: 1000,
+ animationSpeed: 200,
+ useCSS: false,
+ //directionNav: true,
+ prevText: "",
+ nextText: "",
+
+ start: function(slider){
+ $('.slider1 .flexslider').resize();
+ }
+
+ });
+
+ });</script> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-29869719-1"></script> <script>window.dataLayer = window.dataLayer || [];
+ function gtag(){dataLayer.push(arguments);}
+ gtag('js', new Date());
+
+ gtag('config', 'UA-29869719-1');</script> <script type="text/javascript">!function(t,e){"use strict";function n(){if(!a){a=!0;for(var t=0;t<d.length;t++)d[t].fn.call(window,d[t].ctx);d=[]}}function o(){"complete"===document.readyState&&n()}t=t||"docReady",e=e||window;var d=[],a=!1,c=!1;e[t]=function(t,e){return a?void setTimeout(function(){t(e)},1):(d.push({fn:t,ctx:e}),void("complete"===document.readyState||!document.attachEvent&&"interactive"===document.readyState?setTimeout(n,1):c||(document.addEventListener?(document.addEventListener("DOMContentLoaded",n,!1),window.addEventListener("load",n,!1)):(document.attachEvent("onreadystatechange",o),window.attachEvent("onload",n)),c=!0)))}}("wpBruiserDocReady",window);
+ (function(){var wpbrLoader = (function(){var g=document,b=g.createElement('script'),c=g.scripts[0];b.async=1;b.src='http://www.fortressofsolitude.co.za/?gdbc-client=3.1.18-'+(new Date()).getTime();c.parentNode.insertBefore(b,c);});wpBruiserDocReady(wpbrLoader);window.onunload=function(){};window.addEventListener('pageshow',function(event){if(event.persisted){(typeof window.WPBruiserClient==='undefined')?wpbrLoader():window.WPBruiserClient.requestTokens();}},false);})();</script><script type='text/javascript'>/* <![CDATA[ */ var scriptParams = {"google_search_engine_id":"016690364512356521279:bphulqdtzzw"}; /* ]]> */</script> <script type='text/javascript'>/* <![CDATA[ */ var PT_CV_PUBLIC = {"_prefix":"pt-cv-","page_to_show":"5","_nonce":"849f825a20","is_admin":"","is_mobile":"","ajaxurl":"http:\/\/www.fortressofsolitude.co.za\/wp-admin\/admin-ajax.php","lang":"","loading_image_src":"data:image\/gif;base64,R0lGODlhDwAPALMPAMrKygwMDJOTkz09PZWVla+vr3p6euTk5M7OzuXl5TMzMwAAAJmZmWZmZszMzP\/\/\/yH\/C05FVFNDQVBFMi4wAwEAAAAh+QQFCgAPACwAAAAADwAPAAAEQvDJaZaZOIcV8iQK8VRX4iTYoAwZ4iCYoAjZ4RxejhVNoT+mRGP4cyF4Pp0N98sBGIBMEMOotl6YZ3S61Bmbkm4mAgAh+QQFCgAPACwAAAAADQANAAAENPDJSRSZeA418itN8QiK8BiLITVsFiyBBIoYqnoewAD4xPw9iY4XLGYSjkQR4UAUD45DLwIAIfkEBQoADwAsAAAAAA8ACQAABC\/wyVlamTi3nSdgwFNdhEJgTJoNyoB9ISYoQmdjiZPcj7EYCAeCF1gEDo4Dz2eIAAAh+QQFCgAPACwCAAAADQANAAAEM\/DJBxiYeLKdX3IJZT1FU0iIg2RNKx3OkZVnZ98ToRD4MyiDnkAh6BkNC0MvsAj0kMpHBAAh+QQFCgAPACwGAAAACQAPAAAEMDC59KpFDll73HkAA2wVY5KgiK5b0RRoI6MuzG6EQqCDMlSGheEhUAgqgUUAFRySIgAh+QQFCgAPACwCAAIADQANAAAEM\/DJKZNLND\/kkKaHc3xk+QAMYDKsiaqmZCxGVjSFFCxB1vwy2oOgIDxuucxAMTAJFAJNBAAh+QQFCgAPACwAAAYADwAJAAAEMNAs86q1yaWwwv2Ig0jUZx3OYa4XoRAfwADXoAwfo1+CIjyFRuEho60aSNYlOPxEAAAh+QQFCgAPACwAAAIADQANAAAENPA9s4y8+IUVcqaWJ4qEQozSoAzoIyhCK2NFU2SJk0hNnyEOhKR2AzAAj4Pj4GE4W0bkJQIAOw=="};
+var PT_CV_PAGINATION = {"first":"\u00ab","prev":"\u2039","next":"\u203a","last":"\u00bb","goto_first":"Go to first page","goto_prev":"Go to previous page","goto_next":"Go to next page","goto_last":"Go to last page","current_page":"Current page is","goto_page":"Go to page"}; /* ]]> */</script> <script type='text/javascript'>/* <![CDATA[ */ var pollsL10n = {"ajax_url":"http:\/\/www.fortressofsolitude.co.za\/wp-admin\/admin-ajax.php","text_wait":"Your last request is still being processed. Please wait a while ...","text_valid":"Please choose a valid poll answer.","text_multiple":"Maximum number of choices allowed: ","show_loading":"1","show_fading":"1"}; /* ]]> */</script> <script type='text/javascript'>/* <![CDATA[ */ var yjlSettings = {"pagination":"","comPerpage":"50","numPerpage":"","pagerPos":"","repForm":"","gifUrl":"http:\/\/www.fortressofsolitude.co.za\/wp-content\/themes\/mightymag\/images\/spinner.gif","prev":"<i class=\"icon-chevron-left><\/i>","next":"<i class=\"icon-chevron-right><\/i>","timeOut":"<div class=\"alert alert-error\"><strong>Error: <\/strong> server time out, please try again.<\/div>","fast":"<div class=\"alert alert-block\"><strong>Please<\/strong> slow down, you are posting to fast!<\/div>","thank":"<div class=\"alert alert-success\"><strong>Thank you<\/strong> for your comment!<\/div>","order":"asc","autoGrow":""}; /* ]]> */</script> <script>(function(w, d){
+ var b = d.getElementsByTagName("body")[0];
+ var s = d.createElement("script"); s.async = true;
+ var v = !("IntersectionObserver" in w) ? "8.6.0" : "10.4.2";
+ s.src = "http://www.fortressofsolitude.co.za/wp-content/plugins/wp-rocket/inc/front/js/lazyload-" + v + ".min.js";
+ w.lazyLoadOptions = {
+ elements_selector: "img, iframe",
+ data_src: "lazy-src",
+ data_srcset: "lazy-srcset",
+ skip_invisible: false,
+ class_loading: "lazyloading",
+ class_loaded: "lazyloaded",
+ threshold: 300,
+ callback_load: function(element) {
+ if ( element.tagName === "IFRAME" && element.dataset.rocketLazyload == "fitvidscompatible" ) {
+ if (element.classList.contains("lazyloaded") ) {
+ if (typeof window.jQuery != "undefined") {
+ if (jQuery.fn.fitVids) {
+ jQuery(element).parent().fitVids();
+ }
+ }
+ }
+ }
+ }
+ }; // Your options here. See "recipes" for more information about async.
+ b.appendChild(s);
+}(window, document));
+
+// Listen to the Initialized event
+window.addEventListener('LazyLoad::Initialized', function (e) {
+ // Get the instance and puts it in the lazyLoadInstance variable
+ var lazyLoadInstance = e.detail.instance;
+
+ var observer = new MutationObserver(function(mutations) {
+ mutations.forEach(function(mutation) {
+ lazyLoadInstance.update();
+ } );
+ } );
+
+ var b = document.getElementsByTagName("body")[0];
+ var config = { childList: true, subtree: true };
+
+ observer.observe(b, config);
+}, false);</script> <script>function lazyLoadThumb(e){var t='<img src="https://i.ytimg.com/vi/ID/hqdefault.jpg">',a='<div class="play"></div>';return t.replace("ID",e)+a}function lazyLoadYoutubeIframe(){var e=document.createElement("iframe"),t="https://www.youtube.com/embed/ID?autoplay=1";e.setAttribute("src",t.replace("ID",this.dataset.id)),e.setAttribute("frameborder","0"),e.setAttribute("allowfullscreen","1"),this.parentNode.replaceChild(e,this)}document.addEventListener("DOMContentLoaded",function(){var e,t,a=document.getElementsByClassName("rll-youtube-player");for(t=0;t<a.length;t++)e=document.createElement("div"),e.setAttribute("data-id",a[t].dataset.id),e.innerHTML=lazyLoadThumb(a[t].dataset.id),e.onclick=lazyLoadYoutubeIframe,a[t].appendChild(e)});</script> </div> <script src="http://www.fortressofsolitude.co.za/wp-content/cache/min/1/6ae0bb5a20bf3865d386cde5a15c26b8.js" data-minify="1"></script></body></html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/gmw/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/gmw/expected-images.json
new file mode 100644
index 000000000..79181b26b
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/gmw/expected-images.json
@@ -0,0 +1,6 @@
+[
+ "http:\/\/imgtech.gmw.cn\/attachement\/jpg\/site2\/20170310\/448a5bc1e2861a2c4e5929.jpg",
+ "http:\/\/imgtech.gmw.cn\/attachement\/jpg\/site2\/20170310\/448a5bc1e2861a2c4e592a.jpg",
+ "http:\/\/imgtech.gmw.cn\/attachement\/jpg\/site2\/20170310\/448a5bc1e2861a2c4e592d.jpg",
+ "https:\/\/img.gmw.cn\/pic\/content_logo.png"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/gmw/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/gmw/expected-metadata.json
new file mode 100644
index 000000000..65cd6ab1b
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/gmw/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "肖春芳",
+ "Direction": null,
+ "Excerpt": "不幸的是,对于希望能喝上一杯的太空探险者,那些将他们送上太空的政府机构普遍禁止他们染指包括酒在内的含酒精饮料。",
+ "Image": null,
+ "Title": "宇航员在太空中喝酒会怎么样?后果很严重 _探索者 _光明网",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/gmw/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/gmw/expected.html
new file mode 100644
index 000000000..1b69754ff
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/gmw/expected.html
@@ -0,0 +1,58 @@
+<div id="contentMsg">
+ <p><span id="pubTime">2017-03-10 09:58</span> <span id="source">来源:<a href="http://tech.163.com/17/0228/00/CEAPST9C00097U81.html" target="_blank">网易科学人</a></span> <span id="author"></span></p></div><div id="contentMain">
+
+
+
+ <p>  翱翔于距地球数千公里的太空中,进入广袤漆黑的未知领域,是一项艰苦卓绝的工作。这让人感到巨大压力和极度恐慌。那么,为什么不能让宇航员来一杯“地球末日”鸡尾酒来放松一下?</p>
+ <p>  不幸的是,对于希望能喝上一杯的太空探险者,那些将他们送上太空的政府机构普遍禁止他们染指包括酒在内的含酒精饮料。</p>
+ <p>  但是,很快普通人都会有机会向人类“最终的边疆”出发——以平民化旅行的形式,去探索和殖民火星。确实,火星之旅将是一次令人感到痛苦的旅行,可能一去不复返并要几年时间才能完成,但是否应该允许参与者在旅程中痛饮一番?或至少携带能在火星上发酵自制酒精饮料的设备?</p>
+ <p><img alt="(Credit: Nasa)" id="45395168" src="http://imgtech.gmw.cn/attachement/jpg/site2/20170310/448a5bc1e2861a2c4e5929.jpg" title="宇航员在太空中喝酒会怎么样?后果很严重"></img></p>
+ <p>
+ <span face="楷体">  图注:巴兹?奥尔德林(Buzz Aldrin)可能是第二个在月球上行走的人,但他是第一个在月球上喝酒的人</span>
+ </p>
+ <p>  事实是,历史上酒与太空探险有一种复杂的关系。让我们来看看喝了酒的航天员究竟会发生什么—— 如果我们开始给予进入太空的人类更大的自由度,又可能会发生什么。</p>
+ <p>  人们普遍认为,当一个人所处的海拔越高,喝醉后会越容易感到头昏。因此,人们自然地想到,当人身处地球轨道上时,饮酒会对人体有更强烈的致眩作用。但这种说法可能不是正确的。</p>
+ <p>  事实上,有证据表明,早在上世纪八十年代就澄清了这一传言。1985年,美国联邦航空管理局(UFAA)开展了一项研究,以验证人在不同的海拔高度饮酒,是否会影响执行复杂任务时的表现和酒精测定仪的读数。</p>
+ <p>  在这项研究中,17名男子被要求在地面和一间模拟海拔3.7公里的房间内喝下一些伏特加。然后,他们被要求完成各种任务,包括心算口算问题、用操纵杆在示波器上跟踪灯光以及各种其它测试。研究人员发现,“酒精和海拔高度对酒精测定仪读数或完成任务的表现情况没有交互作用”。</p>
+ <p>  所以,人乘坐飞机时醉得更快是个传说?纽约州立大学(State University of New York,SUNY)社会学荣誉教授戴夫·汉森(Dave Hanson)研究酒精和饮酒超过40年,他认为确实如此。他说:“我不认为它(在太空中饮酒)会有任何不同。”</p>
+ <p>  他认为高原反应可能类似于宿醉,但它也可能类似于中毒。他说:“如果人们没有感受到充分的大气压力,他们也会觉得喝醉了一样。”</p>
+ <p>  相反,那些声称在飞机上比在地面上醉得更快的人,可能只是经历了“自认喝醉(think-drink)”效应,这种效应多年来已被广泛研究。它表明,如果人们认为自己喝醉了,那他们的一举一动会真的像喝醉了一样—— 而不是实际上他们真的醉了。</p>
+ <p>  汉森指出:“如果人们脑子里一直认为在飞机上酒精会对他们产生与平常不同的作用,那么他们乘坐飞机时真的会觉得酒精对他们产生了不同的作用。”</p>
+ <p>  所以,如果酒精对人体的物理效应与海拔高度无关,那么在国际空间站上睡前小饮一杯不应该是一个大问题,对吧?错了。</p>
+ <p>  美国宇航局约翰逊航天中心发言人丹尼尔·霍特(Daniel Huot)表示:“国际空间站上的宇航员不允许喝酒。在国际空间站上,酒精和其它挥发性化合物的使用受到控制,因为它们的挥发物可能对该站的水回收系统产生影响。”</p>
+ <p>  为此,国际空间站上的宇航员甚至没有被提供含有酒精的产品,例如漱口水、香水或须后水。如果在国际空间站上饮酒狂欢,溢出的啤酒也可能存在损坏设备的风险。</p>
+ <p><img alt="(Credit: iStock)" id="45395150" src="http://imgtech.gmw.cn/attachement/jpg/site2/20170310/448a5bc1e2861a2c4e592a.jpg" title="宇航员在太空中喝酒会怎么样?后果很严重"></img></p>
+ <p>
+ <span face="楷体">  图注:测试表明,有关人在高空中喝酒更容易醉的传言是不正确的</span>
+ </p>
+ <p>  然后是责任的问题。我们不允许汽车司机或飞机飞行员喝醉后驾驶,所以并不奇怪同样的规则适用于国际空间站上的宇航员。毕竟国际空间站的造价高达1500亿美元,而且在接近真空的太空中其运行速度达到了每小时27680公里。</p>
+ <p>  然而,2007年,美国宇航局(NASA)成立了一个负责调查宇航员健康状况的独立小组,称历史上该机构至少有两名宇航员在即将飞行前喝了大量的酒,但仍然被允许飞行。Nasa安全负责人随后的审查发现并没有证据支持这一指控。宇航员在飞行前12小时是严禁饮酒的,因为他们需要充分的思维能力和清醒的意识。</p>
+ <p>  出台这一规则的原因很清楚。在1985年UFAA开展的关于酒精在不同海拔高度影响的研究中,研究人员得出结论,酒精的影响与海拔高度无关。无论参与测试的人员在什么海拔高度喝酒,其酒精测量仪的读数都是一样的。他们的行为表现受到的影响也相同,但如果提供给测试人员的是安慰剂,则身处高空比身处海平面的行为表现要更差一些。这表明,无论是否摄入酒精,海拔高度可能对心理表现有轻微的影响。</p>
+ <p>  国际空间站禁止享用啤酒等有大量泡沫的饮料,可能有另一个原因:没有重力的帮助,液体和气体会在宇航员的胃里不停地翻滚,导致他们不断地打嗝。</p>
+ <p>  然而,尽管有严格的规则,这并不意味着太空中的人类不会接触发酵液体。在国际空间站上进行了大量有关酒精的实验—— 但没有发生让众人去饮酒的情况,所以没有人真正了解太空中人体对酒精具体有怎样的反应。</p>
+ <p>  NASA发言人斯蒂芬妮?席尔霍尔茨(Stephanie Schierhol)表示:“我们研究了太空中宇航员身体的各种变化,包括微生物层面的。我们有一个营养计划,以确保他们的身体获得保持健康所需要的营养。显然,在实施‘天空实验室(skylab)’项目时,他们曾将雪利酒与宇航员一起送到太空中,但宇航员在零重力飞行时使用雪利酒的测试结果不太好。”天空实验室是美国第一座空间站。</p>
+ <p>  席尔霍尔茨补充说,在测试中使用雪利酒“引发呕吐反射,公众也反对”。</p>
+ <p>  也许最令人惊讶的是,人类在月球表面上喝的第一种液体是葡萄酒。前NASA宇航员巴兹·奥尔德林(Buzz Aldrin)在采访和他撰写的书中表示,1969年,在和尼尔·阿姆斯特朗(Neil Armstrong)走出登月舱之前的圣餐仪式上,他喝了少量葡萄酒。举行这一仪式时与地面的通信出现了暂停,因此这一过程从来没有播出。</p>
+ <p>  虽然Nasa对太空中酒精的使用有严格的规定,但在这方面俄罗斯过去似乎更为宽松。在其“和平号”空间站上,宇航员允许喝点干邑和伏特加。当他们发现国际空间站将严格禁止饮酒时,显然有不少怨言。</p>
+ <p>  然而,奇怪的是,酒仍然能通过各种方式出现在国际空间站上。2015年,日本酿酒商三得利(Suntory)的全球创新中心将该公司一些获奖的威士忌运送到国际空间站,参与一项旨在验证“能否通过利用微重力环境增强酒精饮料醇厚性”的实验。换句话说,在微重力下酒的陈酿过程可能不同,导致它的陈酿进程更快、味道更好。对此,地球上的每家酿酒商都想进一步地了解。</p>
+ <p>  几年前,即2011年9月至2014年9月,Nasa赞助了一个试验,研究微重力环境对威士忌中未发酵麦芽与烧焦橡木颗粒的影响,这两种物质能对威士忌的陈酿起帮助作用。在太空中逗留将近1000天后,用于测试的威士忌的单宁成分保持不变——但是太空中橡木颗粒产生了更高浓度的木质素分解产物,这种物质能赋予威士忌特别的风味。</p>
+ <p>  Nasa表示:“这种试验不仅对麦芽威士忌行业有影响,而且对整个食品和饮料行业也有影响。送上太空的威士忌与对照样品之间的风味差异是如此显著,需要进一步分析以破解不同口味产生的原因。”</p>
+ <p>  因此,即使宇航员自己被禁止在地球轨道上饮酒,但他们正在做的工作可以提高在地上消费的酒的质量。</p>
+ <p>  相比之下,执行登陆火星任务的人将远离家乡几年,而不是几个月,因此可能会有人提出有关禁止饮酒的规定可以放松一些。</p>
+ <p>  然而,像戴夫?汉森这样的专家认为,继续禁止饮酒并没有什么害处。除了实际的安全问题,饮酒还可能有其它挑战。汉森认为,地球人存在许多社会文化方面的差异,而且人连续几年时间呆在一个狭小的空间里,很容易突然发怒,这些因素都使饮酒问题变得很棘手。</p>
+ <p><img alt="(Credit: David Frohman/Peachstate Historical Consulting Inc)" id="45395153" src="http://imgtech.gmw.cn/attachement/jpg/site2/20170310/448a5bc1e2861a2c4e592d.jpg" title="宇航员在太空中喝酒会怎么样?后果很严重"></img></p>
+ <p>
+ <span face="楷体">  图注:奥尔德林的圣餐杯回到了地球上</span>
+ </p>
+ <p>  他说:“这是一个政治问题,也是一个文化方面的问题,但不是一个科学上的问题。这将是未来一个可能产生冲突领域,因为人们具有不同的文化背景,他们对饮酒的态度不同。”他进一步指出,如果你与穆斯林、摩门教徒或禁酒主义者分配在同一间宿舍怎么办?面对未来人们可能在一个没有期限的时间内呆在一个有限的空间里,需要“尽早解决”如何协调不同文化观点的问题。</p>
+ <p><ins></ins>  所以,当宇航员在地球轨道上时,将还不得不满足于通过欣赏外面的景色来振作精神,而不要指望沉溺于烈酒中。我们留在地球上的人,则可以准备好适量的香槟酒,以迎接他们的归来。</p>
+ <p>  原标题:他晚于阿姆斯特朗登月 却是首个敢在月球喝酒的人</p>
+ <p><strong>  出品︱网易科学人栏目组 胖胖</strong></p>
+ <p><strong>  作者︱春春</strong>
+ <a href="http://www.gmw.cn" target="_blank"><img src="https://img.gmw.cn/pic/content_logo.png" title="返回光明网首页"></img></a>
+ </p>
+
+ <p>[责任编辑:肖春芳]</p>
+
+
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/gmw/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/gmw/source.html
new file mode 100644
index 000000000..048d101c3
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/gmw/source.html
@@ -0,0 +1,2103 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+ <script type="text/javascript" async="" src="https://d31qbv1cthcecs.cloudfront.net/atrk.js"></script>
+ <script async="" src="//www.google-analytics.com/analytics.js"></script>
+ <script type="text/javascript" async="" src="http://pos.baidu.com/jcwm?di=u2864599&amp;dri=0&amp;dis=0&amp;dai=11&amp;ps=0x0&amp;dcb=___adblockplus&amp;dtm=SSP_JSONP&amp;dvi=0.0&amp;dci=-1&amp;dpt=none&amp;tsr=0&amp;tpr=1489140824683&amp;ti=%E5%AE%87%E8%88%AA%E5%91%98%E5%9C%A8%E5%A4%AA%E7%A9%BA%E4%B8%AD%E5%96%9D%E9%85%92%E4%BC%9A%E6%80%8E%E4%B9%88%E6%A0%B7%EF%BC%9F%E5%90%8E%E6%9E%9C%E5%BE%88%E4%B8%A5%E9%87%8D%20_%E6%8E%A2%E7%B4%A2%E8%80%85%20_%E5%85%89%E6%98%8E%E7%BD%91&amp;ari=2&amp;dbv=0&amp;drs=1&amp;pcs=573x798&amp;pss=573x5268&amp;cfv=21&amp;cpl=1&amp;chi=2&amp;cce=true&amp;cec=UTF-8&amp;tlm=1489140825&amp;rw=588&amp;ltu=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm&amp;ecd=1&amp;uc=1436x877&amp;pis=-1x-1&amp;ccd=24&amp;cja=false&amp;cmi=2&amp;col=en-US&amp;cdo=-1&amp;sr=1440x900&amp;tcn=1489140826"></script>
+ <script type="text/javascript" async="" src="http://pos.baidu.com/jcwm?di=u2864598&amp;dri=0&amp;dis=0&amp;dai=10&amp;ps=0x0&amp;dcb=___adblockplus&amp;dtm=SSP_JSONP&amp;dvi=0.0&amp;dci=-1&amp;dpt=none&amp;tsr=0&amp;tpr=1489140824683&amp;ti=%E5%AE%87%E8%88%AA%E5%91%98%E5%9C%A8%E5%A4%AA%E7%A9%BA%E4%B8%AD%E5%96%9D%E9%85%92%E4%BC%9A%E6%80%8E%E4%B9%88%E6%A0%B7%EF%BC%9F%E5%90%8E%E6%9E%9C%E5%BE%88%E4%B8%A5%E9%87%8D%20_%E6%8E%A2%E7%B4%A2%E8%80%85%20_%E5%85%89%E6%98%8E%E7%BD%91&amp;ari=2&amp;dbv=0&amp;drs=1&amp;pcs=573x798&amp;pss=573x5268&amp;cfv=21&amp;cpl=1&amp;chi=2&amp;cce=true&amp;cec=UTF-8&amp;tlm=1489140825&amp;rw=588&amp;ltu=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm&amp;ecd=1&amp;uc=1436x877&amp;pis=-1x-1&amp;ccd=24&amp;cja=false&amp;cmi=2&amp;col=en-US&amp;cdo=-1&amp;sr=1440x900&amp;tcn=1489140826"></script>
+ <script src="http://ope.tanx.com/ex?i=mm_26632169_2503481_23184864&amp;cb=jsonp_callback_79895&amp;callback=&amp;userid=&amp;o=&amp;f=&amp;n=&amp;r=&amp;cg=acf99354455fd242dd9899e0198d49b4&amp;pvid=aef92d4739c549d14653be8e29f2ee3b&amp;u=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm&amp;psl=0&amp;fp=1.DJv4my_q6%7EpT47yoGs_yfzIYcVcltZOjYNKgnVTLR82bx3-cXd__Sz.UTF-8.uHaiogwaKoFOqFSaheXotHKFzVQSomCx5QcAaAk5Q7BaHx_wcCqA55oBH6gpHKCziQAQD6gRcaBEvoKAB1gkoqBwZoIr-QA.Q.1cnh7kp" async=""></script>
+ <script charset="utf-8" async="" src="http://atanx.alicdn.com/t/tanxssp.js?_v=12"></script>
+ <script type="text/javascript" charset="gbk" id="tanx-s-mm_26632169_2503481_23184864" async="" src="http://p.tanx.com/ex?i=mm_26632169_2503481_23184864"></script>
+ <script type="text/javascript" async="" src="http://pos.baidu.com/jcwm?di=u2725146&amp;dri=0&amp;dis=0&amp;dai=3&amp;ps=0x0&amp;dcb=___adblockplus&amp;dtm=SSP_JSONP&amp;dvi=0.0&amp;dci=-1&amp;dpt=none&amp;tsr=0&amp;tpr=1489140824683&amp;ti=%E5%AE%87%E8%88%AA%E5%91%98%E5%9C%A8%E5%A4%AA%E7%A9%BA%E4%B8%AD%E5%96%9D%E9%85%92%E4%BC%9A%E6%80%8E%E4%B9%88%E6%A0%B7%EF%BC%9F%E5%90%8E%E6%9E%9C%E5%BE%88%E4%B8%A5%E9%87%8D%20_%E6%8E%A2%E7%B4%A2%E8%80%85%20_%E5%85%89%E6%98%8E%E7%BD%91&amp;ari=2&amp;dbv=0&amp;drs=1&amp;pcs=573x798&amp;pss=573x5268&amp;cfv=21&amp;cpl=1&amp;chi=2&amp;cce=true&amp;cec=UTF-8&amp;tlm=1489140824&amp;rw=588&amp;ltu=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm&amp;ecd=1&amp;uc=1436x877&amp;pis=-1x-1&amp;ccd=24&amp;cja=false&amp;cmi=2&amp;col=en-US&amp;cdo=-1&amp;sr=1440x900&amp;tcn=1489140825"></script>
+ <script type="text/javascript" async="" src="http://motions.gmw.cn/show/23937776"></script>
+ <script id="allmobilize" charset="utf-8" src="http://a.yunshipei.com/4f0e27edde19de22b9752fdca6ca7599/allmobilize.min.js"></script>
+ <style type="text/css"></style>
+ <meta http-equiv="Cache-Control" content="no-siteapp" />
+ <link rel="alternate" media="handheld" href="#" />
+ <meta name="applicable-device" content="pc" />
+ <!-- tplID:8569 -->
+
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
+ <meta name="keywords" content="宇航员 太空 国际空间站 一个 1975年" />
+ <meta name="description" content="不幸的是,对于希望能喝上一杯的太空探险者,那些将他们送上太空的政府机构普遍禁止他们染指包括酒在内的含酒精饮料。" />
+ <meta name="filetype" content="0" />
+ <meta name="publishedtype" content="1" />
+ <meta name="pagetype" content="1" />
+ <meta name="catalogs" content="5555" />
+ <meta name="contentid" content="23937776" />
+ <meta name="publishdate" content="2017-03-10" />
+ <meta name="author" content="肖春芳" />
+ <title>宇航员在太空中喝酒会怎么样?后果很严重 _探索者 _光明网</title>
+ <link rel="stylesheet" type="text/css" href="http://img.gmw.cn/css/content_global.css" />
+ <link rel="stylesheet" type="text/css" href="http://img.gmw.cn/css/public_gmw.css" />
+
+ <!-- RTA Loader: 放置于页面的header中 2016-09-09 pengbo mail -->
+ <script type="text/javascript">
+ var crtg_nid = '3914';
+ var crtg_cookiename = 'crtg_rta';
+ var crtg_varname = 'crtg_content';
+
+ function crtg_getCookie(c_name) {
+ var i, x, y, ARRCookies = document.cookie.split(";");
+ for (i = 0; i & lt; ARRCookies.length; i++) {
+ x = ARRCookies[i].substr(0, ARRCookies[i].indexOf("="));
+ y = ARRCookies[i].substr(ARRCookies[i].indexOf("=") + 1);
+ x = x.replace(/^\s+|\s+$/g, "");
+ if (x == c_name) {
+ return unescape(y);
+ }
+ }
+ return '';
+ }
+ var crtg_content = crtg_getCookie(crtg_cookiename);
+ var crtg_rnd = Math.floor(Math.random() * 99999999999);
+ (function() {
+ var crtg_url = location.protocol + '//rtax.criteo.com/delivery/rta/rta.js?netId=' + escape(crtg_nid);
+ crtg_url += '&amp;cookieName=' + escape(crtg_cookiename);
+ crtg_url += '&amp;rnd=' + crtg_rnd;
+ crtg_url += '&amp;varName=' + escape(crtg_varname);
+ crtg_url += '&amp;domain=' + escape('.gmw.cn');
+ var crtg_script = document.createElement('script');
+ crtg_script.type = 'text/javascript';
+ crtg_script.src = crtg_url;
+ crtg_script.async = true;
+ if (document.getElementsByTagName("head").length & gt; 0) document.getElementsByTagName("head")[0].appendChild(crtg_script);
+ else if (document.getElementsByTagName("body").length & gt; 0) document.getElementsByTagName("body")[0].appendChild(crtg_script);
+ })();
+ </script>
+ <script type="text/javascript" src="http://rtax.criteo.com/delivery/rta/rta.js?netId=3914&amp;cookieName=crtg_rta&amp;rnd=76240119498&amp;varName=crtg_content&amp;domain=.gmw.cn" async=""></script>
+ <!-- RTA Loader: 放置于页面的header中 2016-09-09 pengbo mail -->
+
+
+ <script src="http://static.bshare.cn/b/components/bsStatic.js?v=20161227" type="text/javascript" charset="utf-8"></script>
+ <script type="text/javascript" async="" id="ac_js86_$5759144147" src="//afpmm.alicdn.com/g/mm/afp-cdn/JS/r.js"></script>
+ <script src="http://static.bshare.cn/js/libs/fingerprint2.min.js" type="text/javascript" charset="utf-8"></script>
+ <script src="http://static.bshare.cn/b/engines/bs-engine.js?v=20161227" type="text/javascript" charset="utf-8"></script>
+ <style type="text/css">
+ a.bshareDiv,
+ #bsPanel,
+ #bsMorePanel,
+ #bshareF {
+ border: none;
+ background: none;
+ padding: 0;
+ margin: 0;
+ font: 12px Helvetica, Calibri, Tahoma, Arial, 宋体, sans-serif;
+ line-height: 14px;
+ }
+
+ #bsPanel div,
+ #bsMorePanel div,
+ #bshareF div {
+ display: block;
+ }
+
+ .bsRlogo .bsPopupAwd,
+ .bsRlogoSel .bsPopupAwd,
+ .bsLogo .bsPopupAwd,
+ .bsLogoSel .bsPopupAwd {
+ line-height: 16px !important;
+ }
+
+ a.bshareDiv div,
+ #bsFloatTab div {
+ *display: inline;
+ zoom: 1;
+ display: inline-block;
+ }
+
+ a.bshareDiv img,
+ a.bshareDiv div,
+ a.bshareDiv span,
+ a.bshareDiv a,
+ #bshareF table,
+ #bshareF tr,
+ #bshareF td {
+ text-decoration: none;
+ background: none;
+ margin: 0;
+ padding: 0;
+ border: none;
+ line-height: 1.2
+ }
+
+ a.bshareDiv span {
+ display: inline;
+ float: none;
+ }
+
+ div.buzzButton {
+ cursor: pointer;
+ font-weight: bold;
+ }
+
+ .buzzButton .shareCount a {
+ color: #333
+ }
+
+ .bsStyle1 .shareCount a {
+ color: #fff
+ }
+
+ span.bshareText {
+ white-space: nowrap;
+ }
+
+ span.bshareText:hover {
+ text-decoration: underline;
+ }
+
+ a.bshareDiv .bsPromo,
+ div.bshare-custom .bsPromo {
+ display: none;
+ position: absolute;
+ z-index: 100;
+ }
+
+ a.bshareDiv .bsPromo.bsPromo1,
+ div.bshare-custom .bsPromo.bsPromo1 {
+ width: 51px;
+ height: 18px;
+ top: -18px;
+ left: 0;
+ line-height: 16px;
+ font-size: 12px !important;
+ font-weight: normal !important;
+ color: #fff;
+ text-align: center;
+ background: url(http://static.bshare.cn/frame/images/bshare_box_sprite2.gif) no-repeat 0 -606px;
+ }
+
+ div.bshare-custom .bsPromo.bsPromo2 {
+ background: url(http://static.bshare.cn/frame/images/bshare_promo_sprite.gif) no-repeat;
+ cursor: pointer;
+ }
+ </style>
+ <style type="text/css">
+ .bsBox {
+ display: none;
+ z-index: 100000001;
+ font-size: 12px;
+ background: url(http://static.bshare.cn/frame/images//background-opaque-dark.gif) !important;
+ padding: 6px !important;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ }
+
+ .bsClose {
+ _overflow: hidden;
+ cursor: pointer;
+ position: absolute;
+ z-index: 10000000;
+ color: #666;
+ font-weight: bold;
+ font-family: Helvetica, Arial;
+ font-size: 14px;
+ line-height: 20px;
+ }
+
+ .bsTop {
+ color: #666;
+ background: #f2f2f2;
+ height: 24px;
+ line-height: 24px;
+ border-bottom: 1px solid #e8e8e8;
+ }
+
+ .bsTop span {
+ float: left;
+ }
+
+ .bsFrameDiv,
+ #bsMorePanel {
+ border: none;
+ background: #fff;
+ }
+
+ .bsReturn {
+ float: right;
+ *margin-right: 20px;
+ margin-right: 36px;
+ text-align: right;
+ cursor: pointer;
+ line-height: 24px;
+ color: #666;
+ opacity: 0.5;
+ }
+
+ #bsReturn:hover {
+ text-decoration: underline;
+ opacity: 1;
+ }
+ </style>
+ <script src="http://static.bshare.cn/b/components/bsMore.js?v=20161227" type="text/javascript" charset="utf-8"></script>
+ <script src="http://static.bshare.cn/b/styles/bshareS2.js?v=20161227" type="text/javascript" charset="utf-8"></script>
+ <style type="text/css">
+ .opaque {
+ filter: alpha(opacity=70);
+ -moz-opacity: 0.7;
+ -khtml-opacity: 0.7;
+ opacity: 0.7;
+ }
+ </style>
+ <script src="http://static.bshare.cn/b/styles/bshareS887.js?v=20161227" type="text/javascript" charset="utf-8"></script>
+ <style type="text/css">
+ div.bsClear {
+ clear: both;
+ height: 0;
+ line-height: 0;
+ overflow: hidden;
+ font-size: 0;
+ }
+
+ .bsSearchDiv {
+ padding: 5px 15px;
+ background-color: #fafafa;
+ }
+
+ .bFind-wrapper-top {
+ background: #fff;
+ border-color: #ccc #aaa #aaa #ccc;
+ border-style: solid;
+ border-width: 1px;
+ height: 16px;
+ padding: 4px;
+ margin: 0;
+ }
+
+ .bFind-wrapper-top input {
+ padding: 0 !important;
+ border: none !important;
+ box-shadow: none !important;
+ line-height: 16px !important;
+ }
+
+ .bFind-placeholder {
+ background: url("http://static.bshare.cn/css/images/search-icon.gif") no-repeat;
+ display: block;
+ float: left;
+ height: 16px;
+ width: 16px;
+ }
+
+ .bFind {
+ background: none;
+ border: none;
+ float: left;
+ font-size: 11px !important;
+ height: 16px !important;
+ margin-left: 3px;
+ outline: none;
+ padding: 0;
+ width: 400px;
+ }
+
+ .bsPlatDiv {
+ height: 322px;
+ background: #fff;
+ overflow: auto;
+ padding: 0 15px;
+ }
+
+ #bsLogoList {
+ display: block;
+ list-style: none;
+ overflow: hidden;
+ margin: 0;
+ padding: 0;
+ }
+
+ #bsLogoList li {
+ float: left;
+ display: inline-block;
+ width: 71px;
+ text-align: center;
+ font-size: 12px;
+ height: 80px;
+ margin: 0 !important;
+ }
+
+ #bsLogoList .bsPlatIcon {
+ cursor: pointer;
+ display: block !important;
+ text-align: center;
+ }
+
+ #bsLogoList .bsPlatImg {
+ width: 32px;
+ height: 32px;
+ border: none !important;
+ display: inline-block;
+ }
+
+ #bsLogoList .bsPlatImg:hover {
+ -moz-border-radius: 7px;
+ -webkit-border-radius: 7px;
+ border-radius: 7px;
+ box-shadow: 0 0 15px #a7a8ac;
+ }
+
+ #bsLogoList .bsPlatName {
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ text-align: center;
+ color: #333 !important;
+ margin-top: 2px;
+ line-height: 140%;
+ *width: 70px;
+ }
+
+ #bsLogoList .bsPromoM {
+ text-align: center;
+ }
+
+ .bsFooterDiv {
+ height: 24px;
+ line-height: 24px;
+ padding: 0 15px;
+ border-top: 1px solid #e8e8e8;
+ background: #f2f2f2;
+ text-align: right;
+ }
+
+ a.bsLogoLink {
+ color: #666;
+ }
+
+ .bsLogoLink:hover {
+ text-decoration: underline;
+ }
+
+ .bsPromoM {
+ background: url(http://static.bshare.cn/frame/images//bshare_box_sprite2.gif) no-repeat top left;
+ }
+
+ .bsNew,
+ .bsHot,
+ .bsRec,
+ .bsAwd {
+ background-position: 0 -552px;
+ width: 19px;
+ margin: 5px auto 1px;
+ line-height: 16px;
+ height: 18px;
+ font-size: 12px;
+ color: #fff;
+ overflow: hidden;
+ }
+
+ .bsNew {
+ background-position: 0 -570px;
+ }
+
+ .bsRec {
+ width: 30px;
+ background-position: 0 -588px;
+ }
+
+ .bsAwd {
+ background: url(http://static.bshare.cn/frame/images//promot/promote.gif) no-repeat;
+ }
+ </style>
+ <script src="http://bshare.optimix.asia/bshare_view?Callback=bShare.viewcb&amp;url=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm&amp;h=&amp;uuid=fbe7b28e-050d-4ab3-9af4-0740ed16ea11&amp;sc=1&amp;l=17&amp;lite=1&amp;ot=%E5%AE%87%E8%88%AA%E5%91%98%E5%9C%A8%E5%A4%AA%E7%A9%BA%E4%B8%AD%E5%96%9D%E9%85%92%E4%BC%9A%E6%80%8E%E4%B9%88%E6%A0%B7%EF%BC%9F%E5%90%8E%E6%9E%9C%E5%BE%88%E4%B8%A5%E9%87%8D+_%E6%8E%A2%E7%B4%A2%E8%80%85+_%E5%85%89%E6%98%8E%E7%BD%91&amp;cs=UTF-8&amp;kws=%E5%AE%87%E8%88%AA%E5%91%98+%E5%A4%AA%E7%A9%BA+%E5%9B%BD%E9%99%85%E7%A9%BA%E9%97%B4%E7%AB%99+%E4%B8%80%E4%B8%AA+1975%E5%B9%B4&amp;fp=765f362b2e4bbbd06a3a3855d5854bdd&amp;b=bs234b2d" type="text/javascript" charset="utf-8"></script>
+ <style type="text/css">
+ a.bsSiteLink {
+ text-decoration: none;
+ color: #666;
+ }
+
+ a.bsSiteLink:hover {
+ text-decoration: underline;
+ }
+
+ a.bshareDiv {
+ overflow: hidden;
+ height: 16px;
+ line-height: 18px;
+ font-size: 14px;
+ color: #333;
+ padding-left: 0;
+ }
+
+ a.bshareDiv:hover {
+ text-decoration: none;
+ }
+
+ div.bsTitle {
+ padding: 0 8px;
+ border-bottom: 1px solid #e8e8e8;
+ color: #666;
+ background: #f2f2f2;
+ text-align: left;
+ }
+
+ div.buzzButton {
+ cursor: pointer;
+ }
+
+ div.bsRlogo,
+ div.bsRlogoSel {
+ width: 68px;
+ float: left;
+ margin: 0;
+ padding: 2px 0;
+ }
+
+ div.bsRlogo a,
+ div.bsRlogoSel a {
+ float: left;
+ }
+
+ div.bsLogo,
+ div.bsLogoSel {
+ float: left;
+ width: 111px;
+ text-align: left;
+ height: auto;
+ padding: 2px 4px;
+ margin: 2px 0;
+ white-space: nowrap;
+ overflow: hidden;
+ }
+
+ div.bsLogoSel,
+ div.bsRlogoSel {
+ border: 1px solid #ddd;
+ background: #f1f1f1;
+ }
+
+ div.bsLogo,
+ div.bsRlogo {
+ border: 1px solid #fff;
+ background: #fff;
+ }
+
+ div.bsLogo a,
+ div.bsLogoSel a {
+ display: block;
+ height: 16px;
+ line-height: 16px;
+ padding: 0 0 0 24px;
+ text-decoration: none;
+ float: left;
+ overflow: hidden;
+ }
+
+ div.bsLogoSel a,
+ div.bsRlogoSel a {
+ color: #000;
+ border: none;
+ }
+
+ div.bsLogo a,
+ div.bsRlogo a {
+ color: #666;
+ border: none;
+ }
+
+ div.bsLogoLink {
+ width: 121px;
+ overflow: hidden;
+ background: #FFF;
+ float: left;
+ margin: 3px 0;
+ }
+
+ #bsPanel {
+ position: absolute;
+ z-index: 100000000;
+ font-size: 12px;
+ width: 258px;
+ background: url(http://static.bshare.cn/frame/images/background-opaque-dark.png);
+ padding: 6px;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ }
+
+ div.bsClear {
+ clear: both;
+ height: 0;
+ line-height: 0;
+ font-size: 0;
+ overflow: hidden;
+ }
+
+ div.bsPopupAwd {
+ background: url(http://static.bshare.cn/frame/images//bshare_box_sprite2.gif) no-repeat top left;
+ background-position: 0 -624px;
+ width: 18px;
+ padding-left: 3px;
+ text-align: center;
+ float: left;
+ margin-left: 2px;
+ height: 15px;
+ font-size: 12px;
+ color: #fff;
+ overflow: hidden;
+ }
+
+ div.bsRlogo .bsPopupAwd,
+ div.bsRlogoSel .bsPopupAwd {
+ float: left;
+ margin: 5px 0 0 -14px;
+ }
+ </style>
+</head>
+
+<body>
+ <div id="BAIDU_DUP_fp_wrapper" style="position: absolute; left: -1px; bottom: -1px; z-index: 0; width: 0px; height: 0px; overflow: hidden; visibility: hidden; display: none;"><iframe id="BAIDU_DUP_fp_iframe" src="https://pos.baidu.com/wh/o.htm?ltr=" style="width: 0px; height: 0px; visibility: hidden; display: none;"></iframe></div>
+ <div class="noMobile">
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+ <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
+
+ <meta name="msapplication-navbutton-color" content="#d40004" />
+ <meta content="name=光明日报;action-uri=http://epaper.gmw.cn/gmrb/;icon-uri=http://img.gmw.cn/ico/paper.ico" name="msapplication-task" />
+ <meta content="name=时评;action-uri=http://guancha.gmw.cn/;icon-uri=http://img.gmw.cn/ico/guancha.ico" name="msapplication-task" />
+ <meta content="name=科技探索;action-uri=http://tech.gmw.cn/;icon-uri=http://img.gmw.cn/ico/tech.ico" name="msapplication-task" />
+ <meta content="name=文化娱乐;action-uri=http://culture.gmw.cn/;icon-uri=http://img.gmw.cn/ico/e.ico" name="msapplication-task" />
+
+ <link rel="stylesheet" type="text/css" href="http://img.gmw.cn/css/jquery.mbox.css" media="all" />
+ <link rel="stylesheet" type="text/css" href="http://img.gmw.cn/css/public_gmw.css?fan" media="all" />
+ <script type="text/javascript" src="http://img.gmw.cn/js/jquery.js"></script>
+ <script type="text/javascript" src="http://img.gmw.cn/js/jquery.contentTab.js"></script>
+ <script src="http://img.gmw.cn/js/jquery.mbox.js"></script>
+ <script src="http://img.gmw.cn/js/eggshell.js"></script>
+
+ <!--[if IE 6]>
+ <script type="text/javascript" src="http://img.gmw.cn/js/ie6png.js" ></script>
+ <script type="text/javascript">DD_belatedPNG.fix('#GMWlogo,#Larrow,#Rarrow'); </script>
+ <![endif]-->
+ <style type="text/css">
+ * {
+ font-family: "微软雅黑"
+ }
+
+ #channelHead {
+ width: 100%;
+ background: #f1f1f1;
+ border-bottom: 1px #999 solid;
+ }
+
+ .headtopNav {
+ width: 1000px;
+ margin: 0 auto;
+ padding: 4px 0;
+ height: 24px;
+ line-height: 24px;
+ _padding-bottom: 0;
+ }
+
+ .headtopNav span {
+ margin: 0 5px;
+ color: #bb2737;
+ }
+
+ .channeLogin {
+ float: left;
+ height: 24px;
+ line-height: 24px;
+ text-align: right;
+ width: 550px;
+ }
+
+ .headLogin {
+ width: 80px;
+ height: 18px;
+ border: 1px #ccc solid;
+ }
+
+ .headSubLog {
+ width: 50px;
+ height: 24px;
+ margin-right: 4px;
+ }
+
+ .whereGo li {
+ width: 100px;
+ height: 24px;
+ background: #fff;
+ border: 1px #999 solid;
+ float: right;
+ text-align: center;
+ list-style: none;
+ cursor: pointer;
+ }
+
+ .whereGo {
+ margin-right: 9px;
+ }
+
+ .whereGo li a {
+ font-size: 12px;
+ color: #000;
+ line-height: 24px;
+ }
+
+ .whereGo li ul {
+ display: none;
+ }
+
+ .whereGo li ul li {
+ border-top: none;
+ position: relative;
+ z-index: 2;
+ left: 1px;
+ top: 1px;
+ background: #f2f2f2;
+ }
+
+ .whereGo li ul a:hover li {
+ background: #bb2737;
+ color: #fff;
+ }
+
+ .whereGo li:hover ul {
+ display: block;
+ }
+
+ .navBg {
+ width: 100%;
+ background: #fff;
+ }
+
+ .channelNav {
+ width: 1000px;
+ text-align: center;
+ margin: 0 auto;
+ clear: both;
+ height: 24px;
+ line-height: 24px;
+ position: relative;
+ z-index: 1;
+ padding-top: 6px;
+ background: #fff;
+ }
+
+ .channelNav li {
+ padding: 0 9px;
+ list-style: none;
+ float: left;
+ border-right: 1px #ccc solid;
+ font-size: 12px;
+ color: #000;
+ line-height: 14px;
+ }
+
+ .channelNav li a {
+ color: #000;
+ }
+
+ .channelNav li a:hover {
+ color: #bb2737;
+ }
+
+ .lightgrey12 {
+ font-size: 12px;
+ color: #ccc;
+ }
+
+ #back_top {
+ display: none;
+ }
+
+ .footLine {
+ width: 1000px;
+ margin: 0 auto;
+ height: 0;
+ font-size: 0;
+ border-bottom: 1px #999 solid;
+ }
+ </style>
+
+ <div class="banner1000" id="banner_top">
+ <div id="ac_wrap_mm_113716014_12970037_52770157" style="width:1000px">
+ <style>
+ iframe {
+ padding: 0;
+ margin: 0;
+ }
+ </style>
+ <iframe src="http://www.gmw.cn/ad/tech_content_top_1000x60_52768302.html" scrolling="no" width="1000" height="60" frameborder="0"></iframe>
+ <script type="text/javascript"></script>
+ <script type="text/javascript"></script>
+ <script type="text/javascript"></script>
+ <script type="text/javascript"></script>
+ <script type="text/javascript"></script>
+ </div>
+ </div>
+ <div id="channelHead">
+ <div class="grey12_3 headtopNav">
+ <div style="width:320px; float:left;">
+ <a title="光明网" href="http://www.gmw.cn/"><img id="GMWlogo" src="http://img.gmw.cn/pic/Logo.png" style="float:left; padding-top:2px;" alt="光明网" /></a>
+ <span><a href="http://en.gmw.cn/" style="color:#bb2737;">English</a></span>
+
+ </div>
+ <div class="channeLogin" id="loginbar_new"><input class="headSubLog" value="登录" onclick="gotoLogin('http://tech.gmw.cn/2017-03/10/content_23937776.htm')" type="submit" /><input class="headSubLog" name="login" value="注册" onclick="document.location.href='http://home.gmw.cn/register.php?callback=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm'" type="button" /></div>
+ <ul class="whereGo">
+ <li><a href="http://home.gmw.cn/">您想去哪里?</a>
+ <ul class="wgse">
+ <a href="http://pic.gmw.cn/">
+ <li>光明图片</li>
+ </a>
+ <a href="http://guancha.gmw.cn/2012-04/27/content_4048222.htm">
+ <li>我要投稿</li>
+ </a>
+ <a href="http://training.gmw.cn/">
+ <li>光明培训</li>
+ </a>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <div class="clear"></div>
+ </div>
+ <div class="navBg">
+ <div class="channelNav">
+ <li><a href="http://politics.gmw.cn/">时政</a></li>
+ <li><a href="http://world.gmw.cn/">国际</a></li>
+ <li><a href="http://guancha.gmw.cn/">时评</a></li>
+ <li><a href="http://theory.gmw.cn/">理论</a></li>
+ <li><a href="http://culture.gmw.cn/">文化</a></li>
+ <li><a href="http://tech.gmw.cn/">科技</a></li>
+ <li><a href="http://edu.gmw.cn/">教育</a></li>
+ <li><a href="http://economy.gmw.cn/">经济</a></li>
+ <li><a href="http://life.gmw.cn/">生活</a></li>
+ <li><a href="http://legal.gmw.cn/">法治</a></li>
+ <li><a href="http://mil.gmw.cn/">军事</a></li>
+ <li><a href="http://health.gmw.cn/">卫生</a></li>
+ <li><a href="http://yangsheng.gmw.cn/">养生</a></li>
+ <li><a href="http://lady.gmw.cn/">女人</a></li>
+ <li><a href="http://e.gmw.cn/">娱乐</a></li>
+ <li><a href="http://v.gmw.cn/">电视</a></li>
+ <li><a href="http://photo.gmw.cn">图片</a></li>
+ <li><a href="http://blog.gmw.cn/">博客</a></li>
+ <li><a href="http://qp.gmw.cn/?from=publicdh">棋牌</a></li>
+ <li><a href="http://epaper.gmw.cn/">光明报系</a></li>
+ <li style="border:none;"><a href="http://www.gmw.cn/map.htm">更多&gt;&gt;</a></li>
+ </div>
+ </div>
+ </div>
+ <div class="banner1000" id="banner_top2"></div>
+ <div class="noMobile">
+ <link rel="stylesheet" type="text/css" href="http://img.gmw.cn/css/public_gmw.css" />
+ <div class="banner1000" id="banner_top_index"></div>
+ <div class="banner1000" id="banner_top02"></div>
+ <div class="banner1000" id="banner"></div>
+ <div class="banner1000" id="bannertop1000"></div>
+ <div class="clear"></div>
+ </div>
+ <!--content after body in normal template start-->
+ <div style="display:none;">
+ <script type="text/javascript" src="http://s.csbew.com/k.js"></script>
+ <ins style="display: none;" id="ac_js86_96739"></ins>
+ <script type="text/javascript">
+ _acK({
+ aid: 96739,
+ format: 0,
+ mode: 1,
+ gid: 1,
+ serverbaseurl: "afp.csbew.com/"
+ });
+ </script>
+ <script type="text/javascript">
+ ac_as_id = 96739;
+ window.afp_cur_query = "pv=1&amp;sp=96739,1,0,0,0,1,1,21&amp;ec=UTF-8&amp;re=1440,900&amp;jsv=7&amp;cb=1202482056&amp;seq=1&amp;fs=0";
+ ac_format = 0;
+ ac_mode = 1;
+ window.__trans__96739 = true;
+ ac_group_id = 1;
+ ac_server_base_url = "afpeng.csbew.com/";
+ </script>
+ <script type="text/javascript" src="http://afpmm.alicdn.com/g/mm/afp-cdn/JS/k.js"></script>
+ <script></script>
+ <script type="text/javascript" src="http://afpeng.csbew.com/ex?a=96739&amp;sp=1&amp;cb=_acM.r&amp;u=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm&amp;ds=1440x900&amp;_=1489140822798&amp;fs=0&amp;pvid=a2cf7fc65f0942696903e6e1e701bec7&amp;cg=f49260e6c70b45111b07b7e46f4415b6&amp;from_csbew=1" id="ac_js86_$8709288600"></script>
+ <script type="text/javascript">
+ document.write(unescape("%3Cscript src='https://img.gmw.cn/js/market/mooncake_final.js' type='text/javascript'%3E%3C/script%3E"));
+ </script>
+ <script src="https://img.gmw.cn/js/market/mooncake_final.js" type="text/javascript"></script>
+
+ </div>
+ <!--content after body in normal template end-->
+ <div class="contentWrapper">
+ <div class="contentLeft">
+ <div id="contentBreadcrumbs2" class="black12">
+ <a href="../../"><img src="http://img.gmw.cn/pic/contentlogo/4224.gif" id="ArticleChannelID" /></a><a href="http://www.gmw.cn/" target="_blank">首页</a>
+ <font class="">&gt; </font><a href="../../" target="_blank" class="">科技频道</a>
+ <font class="">&gt; </font><a href="../../node_5555.htm" target="_blank" class="">探索者</a>
+ <font class="">&gt; </font>
+ <font>正文</font>
+ </div>
+
+ <h1 id="articleTitle">宇航员在太空中喝酒会怎么样?后果很严重</h1>
+
+ <div id="contentMsg">
+ <span id="pubTime">2017-03-10 09:58</span> <span id="source">来源:<a href="http://tech.163.com/17/0228/00/CEAPST9C00097U81.html" target="_blank">网易科学人</a></span> <span id="author"></span>
+ <!--<span class="noMobile"><a href="#commentAnchor" target="_self" style="color:#f33">我有话说</a></span>--></div>
+ <div id="contentMsg_baidu" style="height:0px; line-height:0px; font-size:0; overflow:hidden;">
+ <span id="pubtime_baidu">2017-03-10 09:58:03</span><span id="source_baidu">来源:<a href="http://tech.163.com/17/0228/00/CEAPST9C00097U81.html" target="_blank">网易科学人</a></span><span id="author_baidu">作者:</span><span id="editor_baidu">责任编辑:肖春芳</span>
+ </div>
+ <div id="contentMain">
+ <!--enpproperty <articleid>23937776</articleid><date>2017-03-10 09:58:03.0</date><author></author><title>宇航员在太空中喝酒会怎么样?后果很严重</title><keyword>宇航员,太空,国际空间站,一个,1975年</keyword><subtitle></subtitle><introtitle></introtitle><siteid>2</siteid><nodeid>5555</nodeid><nodename>探索者</nodename><nodesearchname></nodesearchname>/enpproperty-->
+ <!--enpcontent-->
+ <!--enpcontent-->
+ <p>  翱翔于距地球数千公里的太空中,进入广袤漆黑的未知领域,是一项艰苦卓绝的工作。这让人感到巨大压力和极度恐慌。那么,为什么不能让宇航员来一杯“地球末日”鸡尾酒来放松一下?</p>
+ <p>  不幸的是,对于希望能喝上一杯的太空探险者,那些将他们送上太空的政府机构普遍禁止他们染指包括酒在内的含酒精饮料。</p>
+ <p>  但是,很快普通人都会有机会向人类“最终的边疆”出发——以平民化旅行的形式,去探索和殖民火星。确实,火星之旅将是一次令人感到痛苦的旅行,可能一去不复返并要几年时间才能完成,但是否应该允许参与者在旅程中痛饮一番?或至少携带能在火星上发酵自制酒精饮料的设备?</p>
+ <p align="center"><img id="45395168" alt="(Credit: Nasa)" src="http://imgtech.gmw.cn/attachement/jpg/site2/20170310/448a5bc1e2861a2c4e5929.jpg" title="宇航员在太空中喝酒会怎么样?后果很严重" /></p>
+ <p style="TEXT-ALIGN: center" align="center">
+ <font style="font-family: 楷体;" face="楷体">  图注:巴兹?奥尔德林(Buzz Aldrin)可能是第二个在月球上行走的人,但他是第一个在月球上喝酒的人</font>
+ </p>
+ <p>  事实是,历史上酒与太空探险有一种复杂的关系。让我们来看看喝了酒的航天员究竟会发生什么—— 如果我们开始给予进入太空的人类更大的自由度,又可能会发生什么。</p>
+ <p>  人们普遍认为,当一个人所处的海拔越高,喝醉后会越容易感到头昏。因此,人们自然地想到,当人身处地球轨道上时,饮酒会对人体有更强烈的致眩作用。但这种说法可能不是正确的。</p>
+ <p>  事实上,有证据表明,早在上世纪八十年代就澄清了这一传言。1985年,美国联邦航空管理局(UFAA)开展了一项研究,以验证人在不同的海拔高度饮酒,是否会影响执行复杂任务时的表现和酒精测定仪的读数。</p>
+ <p>  在这项研究中,17名男子被要求在地面和一间模拟海拔3.7公里的房间内喝下一些伏特加。然后,他们被要求完成各种任务,包括心算口算问题、用操纵杆在示波器上跟踪灯光以及各种其它测试。研究人员发现,“酒精和海拔高度对酒精测定仪读数或完成任务的表现情况没有交互作用”。</p>
+ <p>  所以,人乘坐飞机时醉得更快是个传说?纽约州立大学(State University of New York,SUNY)社会学荣誉教授戴夫·汉森(Dave Hanson)研究酒精和饮酒超过40年,他认为确实如此。他说:“我不认为它(在太空中饮酒)会有任何不同。”</p>
+ <p>  他认为高原反应可能类似于宿醉,但它也可能类似于中毒。他说:“如果人们没有感受到充分的大气压力,他们也会觉得喝醉了一样。”</p>
+ <p>  相反,那些声称在飞机上比在地面上醉得更快的人,可能只是经历了“自认喝醉(think-drink)”效应,这种效应多年来已被广泛研究。它表明,如果人们认为自己喝醉了,那他们的一举一动会真的像喝醉了一样—— 而不是实际上他们真的醉了。</p>
+ <p>  汉森指出:“如果人们脑子里一直认为在飞机上酒精会对他们产生与平常不同的作用,那么他们乘坐飞机时真的会觉得酒精对他们产生了不同的作用。”</p>
+ <p>  所以,如果酒精对人体的物理效应与海拔高度无关,那么在国际空间站上睡前小饮一杯不应该是一个大问题,对吧?错了。</p>
+ <p>  美国宇航局约翰逊航天中心发言人丹尼尔·霍特(Daniel Huot)表示:“国际空间站上的宇航员不允许喝酒。在国际空间站上,酒精和其它挥发性化合物的使用受到控制,因为它们的挥发物可能对该站的水回收系统产生影响。”</p>
+ <p>  为此,国际空间站上的宇航员甚至没有被提供含有酒精的产品,例如漱口水、香水或须后水。如果在国际空间站上饮酒狂欢,溢出的啤酒也可能存在损坏设备的风险。</p>
+ <p align="center"><img id="45395150" alt="(Credit: iStock)" src="http://imgtech.gmw.cn/attachement/jpg/site2/20170310/448a5bc1e2861a2c4e592a.jpg" title="宇航员在太空中喝酒会怎么样?后果很严重" /></p>
+ <p class="pictext" align="center">
+ <font style="font-family: 楷体;" face="楷体">  图注:测试表明,有关人在高空中喝酒更容易醉的传言是不正确的</font>
+ </p>
+ <p>  然后是责任的问题。我们不允许汽车司机或飞机飞行员喝醉后驾驶,所以并不奇怪同样的规则适用于国际空间站上的宇航员。毕竟国际空间站的造价高达1500亿美元,而且在接近真空的太空中其运行速度达到了每小时27680公里。</p>
+ <p>  然而,2007年,美国宇航局(NASA)成立了一个负责调查宇航员健康状况的独立小组,称历史上该机构至少有两名宇航员在即将飞行前喝了大量的酒,但仍然被允许飞行。Nasa安全负责人随后的审查发现并没有证据支持这一指控。宇航员在飞行前12小时是严禁饮酒的,因为他们需要充分的思维能力和清醒的意识。</p>
+ <p>  出台这一规则的原因很清楚。在1985年UFAA开展的关于酒精在不同海拔高度影响的研究中,研究人员得出结论,酒精的影响与海拔高度无关。无论参与测试的人员在什么海拔高度喝酒,其酒精测量仪的读数都是一样的。他们的行为表现受到的影响也相同,但如果提供给测试人员的是安慰剂,则身处高空比身处海平面的行为表现要更差一些。这表明,无论是否摄入酒精,海拔高度可能对心理表现有轻微的影响。</p>
+ <p>  国际空间站禁止享用啤酒等有大量泡沫的饮料,可能有另一个原因:没有重力的帮助,液体和气体会在宇航员的胃里不停地翻滚,导致他们不断地打嗝。</p>
+ <p>  然而,尽管有严格的规则,这并不意味着太空中的人类不会接触发酵液体。在国际空间站上进行了大量有关酒精的实验—— 但没有发生让众人去饮酒的情况,所以没有人真正了解太空中人体对酒精具体有怎样的反应。</p>
+ <p>  NASA发言人斯蒂芬妮?席尔霍尔茨(Stephanie Schierhol)表示:“我们研究了太空中宇航员身体的各种变化,包括微生物层面的。我们有一个营养计划,以确保他们的身体获得保持健康所需要的营养。显然,在实施‘天空实验室(skylab)’项目时,他们曾将雪利酒与宇航员一起送到太空中,但宇航员在零重力飞行时使用雪利酒的测试结果不太好。”天空实验室是美国第一座空间站。</p>
+ <p>  席尔霍尔茨补充说,在测试中使用雪利酒“引发呕吐反射,公众也反对”。</p>
+ <p>  也许最令人惊讶的是,人类在月球表面上喝的第一种液体是葡萄酒。前NASA宇航员巴兹·奥尔德林(Buzz Aldrin)在采访和他撰写的书中表示,1969年,在和尼尔·阿姆斯特朗(Neil Armstrong)走出登月舱之前的圣餐仪式上,他喝了少量葡萄酒。举行这一仪式时与地面的通信出现了暂停,因此这一过程从来没有播出。</p>
+ <p>  虽然Nasa对太空中酒精的使用有严格的规定,但在这方面俄罗斯过去似乎更为宽松。在其“和平号”空间站上,宇航员允许喝点干邑和伏特加。当他们发现国际空间站将严格禁止饮酒时,显然有不少怨言。</p>
+ <p>  然而,奇怪的是,酒仍然能通过各种方式出现在国际空间站上。2015年,日本酿酒商三得利(Suntory)的全球创新中心将该公司一些获奖的威士忌运送到国际空间站,参与一项旨在验证“能否通过利用微重力环境增强酒精饮料醇厚性”的实验。换句话说,在微重力下酒的陈酿过程可能不同,导致它的陈酿进程更快、味道更好。对此,地球上的每家酿酒商都想进一步地了解。</p>
+ <p>  几年前,即2011年9月至2014年9月,Nasa赞助了一个试验,研究微重力环境对威士忌中未发酵麦芽与烧焦橡木颗粒的影响,这两种物质能对威士忌的陈酿起帮助作用。在太空中逗留将近1000天后,用于测试的威士忌的单宁成分保持不变——但是太空中橡木颗粒产生了更高浓度的木质素分解产物,这种物质能赋予威士忌特别的风味。</p>
+ <p>  Nasa表示:“这种试验不仅对麦芽威士忌行业有影响,而且对整个食品和饮料行业也有影响。送上太空的威士忌与对照样品之间的风味差异是如此显著,需要进一步分析以破解不同口味产生的原因。”</p>
+ <p>  因此,即使宇航员自己被禁止在地球轨道上饮酒,但他们正在做的工作可以提高在地上消费的酒的质量。</p>
+ <p>  相比之下,执行登陆火星任务的人将远离家乡几年,而不是几个月,因此可能会有人提出有关禁止饮酒的规定可以放松一些。</p>
+ <p>  然而,像戴夫?汉森这样的专家认为,继续禁止饮酒并没有什么害处。除了实际的安全问题,饮酒还可能有其它挑战。汉森认为,地球人存在许多社会文化方面的差异,而且人连续几年时间呆在一个狭小的空间里,很容易突然发怒,这些因素都使饮酒问题变得很棘手。</p>
+ <p align="center"><img id="45395153" alt="(Credit: David Frohman/Peachstate Historical Consulting Inc)" src="http://imgtech.gmw.cn/attachement/jpg/site2/20170310/448a5bc1e2861a2c4e592d.jpg" title="宇航员在太空中喝酒会怎么样?后果很严重" /> </p>
+ <p class="pictext" align="center">
+ <font style="font-family: 楷体;" face="楷体">  图注:奥尔德林的圣餐杯回到了地球上</font>
+ </p>
+ <p>  他说:“这是一个政治问题,也是一个文化方面的问题,但不是一个科学上的问题。这将是未来一个可能产生冲突领域,因为人们具有不同的文化背景,他们对饮酒的态度不同。”他进一步指出,如果你与穆斯林、摩门教徒或禁酒主义者分配在同一间宿舍怎么办?面对未来人们可能在一个没有期限的时间内呆在一个有限的空间里,需要“尽早解决”如何协调不同文化观点的问题。</p>
+ <p><ins style="float:left;display:inline;margin:8px 13px 8px 0px;"><iframe name="inline_ads" src="http://www.gmw.cn/index/market/content_inside_ad.html" scrolling="no" width="300" height="250" frameborder="0"></iframe></ins>  所以,当宇航员在地球轨道上时,将还不得不满足于通过欣赏外面的景色来振作精神,而不要指望沉溺于烈酒中。我们留在地球上的人,则可以准备好适量的香槟酒,以迎接他们的归来。</p>
+ <p>  原标题:他晚于阿姆斯特朗登月 却是首个敢在月球喝酒的人</p>
+ <p><strong>  出品︱网易科学人栏目组 胖胖</strong></p>
+ <p><strong>  作者︱春春</strong>
+ <a href="http://www.gmw.cn" target="_blank"><img src="https://img.gmw.cn/pic/content_logo.png" title="返回光明网首页" /></a>
+ </p>
+ <!--/enpcontent-->
+ <div id="contentLiability">[责任编辑:肖春芳]</div>
+ <!--/enpcontent-->
+ <div style="clear: both;"></div>
+ </div>
+
+ <div style="height:0; width:0;overflow:hidden; position:relative;">
+ <img src="http://img.gmw.cn/pic/gmwLogo_share.jpg" style="position:absolute; bottom:-9999px; left:-9999px;" />
+ </div>
+
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+ <div><img src="http://ad.gmw.cn/content_banner/content_650x120_qrcodes.jpg" width="650" /></div>
+ <div class="noMobile">
+ <div id="sc0001"></div>
+ <!-- AFP两段式代码-公用代码 -->
+ <script type="text/javascript" src="http://s.csbew.com/k.js"></script>
+ <!-- 92477:全部频道通投-文章页底部(新) 类型:固定广告位 尺寸:650x200-->
+ <ins style="display: none;" id="ac_js86_92477"></ins>
+ <script type="text/javascript">
+ _acK({
+ aid: 92477,
+ format: 0,
+ mode: 1,
+ gid: 1,
+ destid: "sc0001",
+ serverbaseurl: "afp.csbew.com/"
+ });
+ </script>
+ <script type="text/javascript">
+ ac_as_id = 92477;
+ window.afp_cur_query = "pv=1&amp;sp=92477,1,0,0,0,1,1,21&amp;ec=UTF-8&amp;re=1440,900&amp;jsv=7&amp;cb=4216868104&amp;seq=2&amp;fs=0";
+ ac_format = 0;
+ ac_mode = 1;
+ window.__trans__92477 = true;
+ ac_group_id = 1;
+ ac_server_base_url = "afpeng.csbew.com/";
+ </script>
+ <script type="text/javascript" src="http://afpmm.alicdn.com/g/mm/afp-cdn/JS/k.js"></script>
+ <script type="text/javascript" src="http://afpeng.csbew.com/ex?a=92477&amp;sp=1&amp;cb=_acM.r&amp;u=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm&amp;ds=1440x900&amp;_=1489140823729&amp;fs=0&amp;pvid=ac07ff9093462a2b6b1a12ee62e7cc01&amp;cg=af4a555c5c4c0459a95a498ab40f4fda&amp;from_csbew=1" id="ac_js86_$6569660586"></script>
+
+ <div class="contentColumnLeft" style="margin:20px 0;">
+ <table width="100%" cellspacing="0" cellpadding="0" border="0">
+ <tbody>
+ <tr>
+ <td width="210" align="left">
+ <!-- 关注新浪微博
+ <iframe src="http://widget.weibo.com/relationship/followbutton.php?btn=red&style=3&uid=1752825395&width=100%&height=22&language=zh_cn" width="100%" height="22" frameborder="0" scrolling="no" marginheight="0"></iframe>-->
+ </td>
+ <td width="120" align="left">
+ <!-- 关注QQ空间
+ <iframe src="http://open.qzone.qq.com/like?url=http%3A%2F%2Fuser.qzone.qq.com%2F2232833389&type=button_num&width=120&height=22&style=2" allowtransparency="true" scrolling="no" border="0" frameborder="0" style="width:120px;height:22px;border:none;overflow:hidden; text-align:right;vertical-align:middle;"></iframe>-->
+ </td>
+ <td align="right">
+ <div class="bshare-custom">
+ <a title="分享到QQ空间" class="bshare-qzone" href="javascript:void(0);"></a>
+ <a title="分享到新浪微博" class="bshare-sinaminiblog" href="javascript:void(0);"></a>
+ <a title="分享到微信" class="bshare-weixin" href="javascript:void(0);"></a>
+ </div>
+ <a class="bshareDiv" href="http://www.bshare.cn/share" style="display: block; text-decoration: none; padding: 0px; margin: 0px; height: 21px; width: 47px;">
+ <div class="bsPromo bsPromo1"></div>
+ <div id="bsList" style="font-size:12px;float:left;overflow:hidden;height:20px;color:#000000;">
+ <div class="buzzButton" style="float:left;padding:2px 5px 0 0">
+ <div style="background:url(http://static.bshare.cn/frame/images//logo_square_s.gif) no-repeat;height:16px;width:16px;"></div>
+ </div>
+ <div onclick="bShare.more();return false;" class="bsLiteralDiv" style="color: rgb(0, 0, 0); float: left; font-weight: bold; padding-right: 4px; width: 3px;"><span class="bshareText bsLiteral" style="line-height:22px;">分享</span></div>
+ <div style="float:left;padding-right:2px;cursor:pointer" onmouseover="javascript:this.className='opaque'" onmouseout="javascript:this.className=''" onclick="javascript:bShare.share(event,'weixin',0);return false;" title="微信"><img src="http://static.bshare.cn/frame/images//forground.gif" style="cursor:pointer;float:left;margin:2px 1px;height:16px;width:16px;background:url(http://static.bshare.cn/frame/images//logos/s4/weixin.png) no-repeat;" /></div>
+ <div style="float:left;padding-right:2px;cursor:pointer" onmouseover="javascript:this.className='opaque'" onmouseout="javascript:this.className=''" onclick="javascript:bShare.share(event,'sinaminiblog',0);return false;" title="新浪微博"><img src="http://static.bshare.cn/frame/images//forground.gif" style="cursor:pointer;float:left;margin:2px 1px;height:16px;width:16px;background:url(http://static.bshare.cn/frame/images//slogos_sprite8.png) no-repeat 0 -1728px;" /></div>
+ <div style="float:left;padding-right:2px;cursor:pointer" onmouseover="javascript:this.className='opaque'" onmouseout="javascript:this.className=''" onclick="javascript:bShare.share(event,'qqmb',0);return false;" title="腾讯微博"><img src="http://static.bshare.cn/frame/images//forground.gif" style="cursor:pointer;float:left;margin:2px 1px;height:16px;width:16px;background:url(http://static.bshare.cn/frame/images//slogos_sprite8.png) no-repeat 0 -1512px;" /></div>
+ <div class="buzzButton" title="更多平台..." style="float:left;padding:0 6px;margin:2px 0 0 3px;width:16px;border-left:1px #ccc solid;"><img src="http://static.bshare.cn/frame/images//more.gif" /></div>
+ </div>
+ <div style="float:left;width:41px;background:transparent url(http://static.bshare.cn/frame/images/counter_box_18.gif) no-repeat;height:18px;margin:1px 0 0 5px;text-align:center;font:bold 11px Arial,宋体,sans-serif;"> <span style="position:relative;line-height:18px;" class="shareCount">0</span></div>
+ <div style="clear:both;"></div>
+ </a>
+ <script type="text/javascript" charset="utf-8" src="http://static.bshare.cn/b/buttonLite.js#uuid=fbe7b28e-050d-4ab3-9af4-0740ed16ea11&amp;style=2&amp;textcolor=#000000&amp;bgcolor=none&amp;bp=weixin,sinaminiblog,qqmb&amp;text=%E5%88%86%E4%BA%AB&amp;logo=false"></script>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <!-- baidu 猜你喜欢
+<div class="contentColumnLeft contentRelatedArea noMobile">
+ <script>document.write(unescape('%3Cdiv id="hm_t_90626"%3E%3C/div%3E%3Cscript charset="utf-8" src="http://crs.baidu.com/t.js?siteId=0b2007edc647fec486f98a9528a1e9cd&planId=90626&async=0&referer=') + encodeURIComponent(document.referrer) + '&title=' + encodeURIComponent(document.title) + '&rnd=' + (+new Date) + unescape('"%3E%3C/script%3E'));</script>
+<div class="clear"></div>
+</div> -->
+ <!-- con_left_mid -->
+ <div class="noMobile">
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <!--版权-->
+ <div id="copyrightClarify">
+ <a href="http://www.gmw.cn/content/2011-02/14/content_1609313.htm" target="_blank" style="text-decoration:none;"><span class="red14b">版权声明:</span><span class="black14">转载须经版权人书面授权并注明来源</span></a>
+ </div>
+
+ </div>
+
+ <a name="commentAnchor"></a>
+ <!--新闻表情 begin-->
+ <div id="motionsDiv">
+ <a name="Mtns"></a>
+ <style>
+ #mood * {
+ margin: 0;
+ padding: 0;
+ text-align: center;
+ font-size: 12px;
+ }
+
+ #mood ul li a {
+ color: #000;
+ text-decoration: none;
+ cursor: pointer;
+ }
+
+ #mood ul li a img {
+ border: 0;
+ }
+
+ #mood ul li,
+ #mood ul li div.pillar {
+ display: inline-block;
+ display: -moz-inline-stack;
+ zoom: 1;
+ *display: inline;
+ }
+
+ #mood ul li {
+ vertical-align: bottom;
+ display: inline-block;
+ display: inline9;
+ }
+
+ #mood ul li {
+ width: 70px;
+ padding-bottom: 10px
+ }
+
+ #mood ul li div.pillar {
+ width: 70px;
+ display: inline-block !important;
+ height: 0px;
+ max-height: 40px;
+ line-height: 0px;
+ background: url(http://imghealth.gmw.cn/motions/mood.gif) repeat-y center;
+ margin-bottom: 5px;
+ }
+
+ #mood_title {
+ background-color: #f0f0f0;
+ height: 26px;
+ line-height: 26px;
+ }
+
+ #mood_title div {
+ margin: 0 2em;
+ font-size: 14px;
+ font-weight: bold;
+ }
+
+ #mood_tl {
+ float: left;
+ }
+
+ #mood_tr {
+ float: right;
+ }
+
+ .list_more {
+ border-top: 1px solid #fff;
+ clear: both;
+ overflow-: hidden;
+ padding-bottom: 8px;
+ margin: 0 auto;
+ width: 94%;
+ }
+
+ .list_more a {
+ -webkit-border-radius: 10px;
+ -moz-border-radius: 10px;
+ border-radius: 10px;
+ display: block;
+ text-align: center;
+ border: 1px solid #eae9e9;
+ height: 30px;
+ line-height: 30px;
+ font-size: 15px;
+ background-color: #e6e6e6;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f3f3f3), to(#e6e6e6));
+ background-image: -webkit-linear-gradient(top, #f3f3f3, #e6e6e6);
+ background-image: -moz-linear-gradient(top, #f3f3f3, #e6e6e6);
+ background-image: -ms-linear-gradient(top, #f3f3f3, #e6e6e6);
+ background-image: -o-linear-gradient(top, #f3f3f3, #e6e6e6);
+ background-image: linear-gradient(top, #f3f3f3, #e6e6e6);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorStr="#f3f3f3", EndColorStr="#e6e6e6");
+ color: #9b9b9b;
+ text-shadow: 1px 1px 1px #fff;
+ font-weight: bold;
+ -moz-box-shadow: 1px 1px 1px #999;
+ -webkit-box-shadow: 1px 1px 1px #999;
+ box-shadow: 1px 1px 1px #999;
+ }
+
+ .list_more a:hover {
+ color: #0095EF;
+ text-decoration: none;
+ }
+ </style>
+ <div id="mood">
+ <div id="mood_title">
+ <div id="mood_tl">您此时的心情</div>
+ <div id="mood_tr">新闻表情排行 <a href="http://www.gmw.cn/motionsdaytop.htm" target="_blank">日</a>/<a href="http://www.gmw.cn/motionsweektop.htm" target="_blank">周</a></div>
+ </div>
+ <div style="clear:both;"></div>
+ <ul>
+ <li>
+ <p id="hits_1">1</p>
+ <div id="zhu_1" style="height:10px; line-height:10px;" class="pillar"> </div>
+ <a onclick="getMotions(1);"><img src="http://imgp.gmw.cn/motionsimg/0/m1.gif" />
+ <p>开心</p>
+ </a>
+ </li>
+ <li>
+ <p id="hits_2">0</p>
+ <div id="zhu_2" style="height:0px; line-height:0px;" class="pillar"> </div>
+ <a onclick="getMotions(2);"><img src="http://imgp.gmw.cn/motionsimg/0/m2.gif" />
+ <p>板砖</p>
+ </a>
+ </li>
+ <li>
+ <p id="hits_3">0</p>
+ <div id="zhu_3" style="height:0px; line-height:0px;" class="pillar"> </div>
+ <a onclick="getMotions(3);"><img src="http://imgp.gmw.cn/motionsimg/0/m3.gif" />
+ <p>感动</p>
+ </a>
+ </li>
+ <li>
+ <p id="hits_4">4</p>
+ <div id="zhu_4" style="height:40px; line-height:40px;" class="pillar"> </div>
+ <a onclick="getMotions(4);"><img src="http://imgp.gmw.cn/motionsimg/0/m4.gif" />
+ <p>撒花</p>
+ </a>
+ </li>
+ <li>
+ <p id="hits_5">0</p>
+ <div id="zhu_5" style="height:0px; line-height:0px;" class="pillar"> </div>
+ <a onclick="getMotions(5);"><img src="http://imgp.gmw.cn/motionsimg/0/m5.gif" />
+ <p>怀疑</p>
+ </a>
+ </li>
+ <li>
+ <p id="hits_6">0</p>
+ <div id="zhu_6" style="height:0px; line-height:0px;" class="pillar"> </div>
+ <a onclick="getMotions(6);"><img src="http://imgp.gmw.cn/motionsimg/0/m6.gif" />
+ <p>难过</p>
+ </a>
+ </li>
+ <li>
+ <p id="hits_7">0</p>
+ <div id="zhu_7" style="height:0px; line-height:0px;" class="pillar"> </div>
+ <a onclick="getMotions(7);"><img src="http://imgp.gmw.cn/motionsimg/0/m7.gif" />
+ <p>无聊</p>
+ </a>
+ </li>
+ <li>
+ <p id="hits_8">0</p>
+ <div id="zhu_8" style="height:0px; line-height:0px;" class="pillar"> </div>
+ <a onclick="getMotions(8);"><img src="http://imgp.gmw.cn/motionsimg/0/m8.gif" />
+ <p>震惊</p>
+ </a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ <script>
+ var M_contentId = $("META[name=contentid]").attr("content");
+ (function() {
+ var mojs1 = document.createElement('script');
+ mojs1.type = 'text/javascript';
+ mojs1.async = true;
+ mojs1.src = 'http://motions.gmw.cn/show/' + M_contentId;
+ var smo1 = document.getElementsByTagName('script')[0];
+ smo1.parentNode.insertBefore(mojs1, smo1);
+ })();
+ </script>
+ <!--新闻表情 end-->
+
+ <!-- 20151113 豆子游戏 begin -->
+ <div class="noMobile" style="margin:10px 0;">
+ <!-- 112417:通发-内-底部表情下-豆子 类型:固定广告位 尺寸:650x90-->
+ <span style="overflow: visible; position: relative; display: block; width: 650px; height: 90px; background: rgba(0, 0, 0, 0) none repeat scroll 0% 0%; border: 0px none; text-align: left;"><span style="overflow: hidden; position: absolute; display: block; width: 650px; height: 90px; background: rgba(0, 0, 0, 0) none repeat scroll 0% 0%; border: 0px none; text-align: left;"><span style="overflow: hidden; position: absolute; display: block; width: 650px; height: 90px; background: rgba(0, 0, 0, 0) none repeat scroll 0% 0%; border: 0px none; text-align: left;"><a href="http://afptrack.csbew.com/clk?bid=0a671d61000058c27c59b13906761f01&amp;pid=mm_113716014_12970037_52772596&amp;cid=2485&amp;mid=3274&amp;oid=376&amp;productType=1&amp;qytInfoMTime=1489082528&amp;e=65jNm6hIUYyGJgTPtIvipkpkK%2F62DaN5A7mySUZ7RZeubpFI6Mi%2FRxQoA3tZJHHPR289L%2BdlzZNTDiuKzxzB1BSqLlG1JgPB1oeHY7S32O73Ynpsla%2BSODS%2BXkeGL8MOj5E43hR%2FA2qZFTr1gPmfgQ8X%2BqnoUzCZGxCYs%2FnOiYw%3D&amp;k=173" target="_blank" style="position: absolute; display: block; top: 0px; left: 0px; margin: 0px; padding: 0px; width: 650px; height: 90px; text-decoration: none; opacity: 0; z-index: 1; cursor: pointer; background: rgb(255, 255, 255) none repeat scroll 0% 0%;"></a><img id="ac_cs_112417_1" src="http://afp.alicdn.com/afp-creative/creative/u113716014/8fffe82208528de01df9dd6c686cdfed.jpg" style="width: 650px; height: 90px;" border="0" /></span></span>
+ </span><ins style="display: none;" id="ac_js86_112417"></ins>
+ <script type="text/javascript">
+ _acK({
+ aid: 112417,
+ format: 0,
+ mode: 1,
+ gid: 1,
+ serverbaseurl: "afp.csbew.com/"
+ });
+ </script>
+ <script type="text/javascript">
+ ac_as_id = 112417;
+ window.afp_cur_query = "pv=1&amp;sp=112417,1,0,0,0,1,1,21&amp;ec=UTF-8&amp;re=1440,900&amp;jsv=7&amp;cb=6032452068&amp;seq=3&amp;fs=0";
+ ac_format = 0;
+ ac_mode = 1;
+ window.__trans__112417 = true;
+ ac_group_id = 1;
+ ac_server_base_url = "afpeng.csbew.com/";
+ </script>
+ <script type="text/javascript" src="http://afpmm.alicdn.com/g/mm/afp-cdn/JS/k.js"></script>
+ <script></script>
+ <script type="text/javascript" src="http://afpeng.csbew.com/ex?a=112417&amp;sp=1&amp;cb=_acM.r&amp;u=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm&amp;ds=1440x900&amp;_=1489140824079&amp;fs=0&amp;pvid=aa6d5fd5629d1301bbaaa88f5dec1d34&amp;cg=a3c46ebbc5b33fb9ee267f4ef73ca10c&amp;from_csbew=1" id="ac_js86_$5237524208"></script>
+
+ </div>
+ <!-- 20151113 豆子游戏 end -->
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+
+ <!-- con_left_end.htm -->
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <div class="noMobile">
+ <div id="leftad1" class="noMobile contentadBox_left">
+ <div id="ac_wrap_mm_113716014_12970037_69446086" style="width:650px">
+ <style type="text/css">
+ #BAIDU_SSP__wrapper_u2864467_0 {
+ float: left;
+ width: 20%;
+ }
+
+ #BAIDU_SSP__wrapper_u2864483_0 {
+ float: left;
+ width: 20%;
+ }
+
+ #BAIDU_SSP__wrapper_u2864494_0 {
+ float: left;
+ width: 20%;
+ }
+
+ #BAIDU_SSP__wrapper_u2864497_0 {
+ float: left;
+ width: 20%;
+ }
+
+ #BAIDU_SSP__wrapper_u2864590_0 {
+ float: left;
+ width: 20%;
+ }
+ </style>
+ <div style="width:650px;">
+ <div style="width:20%; float:left;">
+ <script type="text/javascript">
+ /*PC-内-底推1-1-17/1/3*/
+ var cpro_id = "u2864467";
+ </script>
+ <script type="text/javascript"></script>
+ <div id="BAIDU_SSP__wrapper_u2864467_0"><iframe id="iframeu2864467_0" src="http://pos.baidu.com/jcwm?rdid=2864467&amp;dc=3&amp;di=u2864467&amp;dri=0&amp;dis=0&amp;dai=14&amp;ps=0x0&amp;dcb=___adblockplus&amp;dtm=HTML_POST&amp;dvi=0.0&amp;dci=-1&amp;dpt=none&amp;tsr=0&amp;tpr=1489140824683&amp;ti=%E5%AE%87%E8%88%AA%E5%91%98%E5%9C%A8%E5%A4%AA%E7%A9%BA%E4%B8%AD%E5%96%9D%E9%85%92%E4%BC%9A%E6%80%8E%E4%B9%88%E6%A0%B7%EF%BC%9F%E5%90%8E%E6%9E%9C%E5%BE%88%E4%B8%A5%E9%87%8D%20_%E6%8E%A2%E7%B4%A2%E8%80%85%20_%E5%85%89%E6%98%8E%E7%BD%91&amp;ari=2&amp;dbv=0&amp;drs=1&amp;pcs=573x798&amp;pss=573x5268&amp;cfv=21&amp;cpl=1&amp;chi=2&amp;cce=true&amp;cec=UTF-8&amp;tlm=1489140826&amp;rw=588&amp;ltu=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm&amp;ecd=1&amp;uc=1436x877&amp;pis=-1x-1&amp;ccd=24&amp;cja=false&amp;cmi=2&amp;col=en-US&amp;cdo=-1&amp;sr=1440x900&amp;tcn=1489140826&amp;qn=c109617e717f528e&amp;tt=1489140824660.1507.1507.1507" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" style="border:0;vertical-align:bottom;margin:0;width:130px;height:90px" allowtransparency="true" width="130" align="center,center" height="90" frameborder="0"></iframe></div>
+ </div>
+ <div style="width:20%; float:left;">
+ <script type="text/javascript">
+ /*PC-内-底推1-2-17/1/3*/
+ var cpro_id = "u2864483";
+ </script>
+ <script type="text/javascript"></script>
+ <div id="BAIDU_SSP__wrapper_u2864483_0"><iframe id="iframeu2864483_0" src="http://pos.baidu.com/jcwm?rdid=2864483&amp;dc=3&amp;di=u2864483&amp;dri=0&amp;dis=0&amp;dai=15&amp;ps=0x0&amp;dcb=___adblockplus&amp;dtm=HTML_POST&amp;dvi=0.0&amp;dci=-1&amp;dpt=none&amp;tsr=0&amp;tpr=1489140824683&amp;ti=%E5%AE%87%E8%88%AA%E5%91%98%E5%9C%A8%E5%A4%AA%E7%A9%BA%E4%B8%AD%E5%96%9D%E9%85%92%E4%BC%9A%E6%80%8E%E4%B9%88%E6%A0%B7%EF%BC%9F%E5%90%8E%E6%9E%9C%E5%BE%88%E4%B8%A5%E9%87%8D%20_%E6%8E%A2%E7%B4%A2%E8%80%85%20_%E5%85%89%E6%98%8E%E7%BD%91&amp;ari=2&amp;dbv=0&amp;drs=1&amp;pcs=573x798&amp;pss=573x5268&amp;cfv=21&amp;cpl=1&amp;chi=2&amp;cce=true&amp;cec=UTF-8&amp;tlm=1489140826&amp;rw=588&amp;ltu=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm&amp;ecd=1&amp;uc=1436x877&amp;pis=-1x-1&amp;ccd=24&amp;cja=false&amp;cmi=2&amp;col=en-US&amp;cdo=-1&amp;sr=1440x900&amp;tcn=1489140826&amp;qn=5e702cbb89b52182&amp;tt=1489140824660.1528.1528.1528" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" style="border:0;vertical-align:bottom;margin:0;width:130px;height:90px" allowtransparency="true" width="130" align="center,center" height="90" frameborder="0"></iframe></div>
+ </div>
+ <div style="width:20%; float:left;">
+ <script type="text/javascript">
+ /*PC-内-底推1-3-17/1/3*/
+ var cpro_id = "u2864494";
+ </script>
+ <script type="text/javascript"></script>
+ <div id="BAIDU_SSP__wrapper_u2864494_0"><iframe id="iframeu2864494_0" src="http://pos.baidu.com/jcwm?rdid=2864494&amp;dc=3&amp;di=u2864494&amp;dri=0&amp;dis=0&amp;dai=16&amp;ps=0x0&amp;dcb=___adblockplus&amp;dtm=HTML_POST&amp;dvi=0.0&amp;dci=-1&amp;dpt=none&amp;tsr=0&amp;tpr=1489140824683&amp;ti=%E5%AE%87%E8%88%AA%E5%91%98%E5%9C%A8%E5%A4%AA%E7%A9%BA%E4%B8%AD%E5%96%9D%E9%85%92%E4%BC%9A%E6%80%8E%E4%B9%88%E6%A0%B7%EF%BC%9F%E5%90%8E%E6%9E%9C%E5%BE%88%E4%B8%A5%E9%87%8D%20_%E6%8E%A2%E7%B4%A2%E8%80%85%20_%E5%85%89%E6%98%8E%E7%BD%91&amp;ari=2&amp;dbv=0&amp;drs=1&amp;pcs=573x798&amp;pss=573x5268&amp;cfv=21&amp;cpl=1&amp;chi=2&amp;cce=true&amp;cec=UTF-8&amp;tlm=1489140826&amp;rw=588&amp;ltu=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm&amp;ecd=1&amp;uc=1436x877&amp;pis=-1x-1&amp;ccd=24&amp;cja=false&amp;cmi=2&amp;col=en-US&amp;cdo=-1&amp;sr=1440x900&amp;tcn=1489140826&amp;qn=aef48c987d804f87&amp;tt=1489140824660.1581.1581.1581" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" style="border:0;vertical-align:bottom;margin:0;width:130px;height:90px" allowtransparency="true" width="130" align="center,center" height="90" frameborder="0"></iframe></div>
+ </div>
+ <div style="width:20%; float:left;">
+ <script type="text/javascript">
+ /*PC-内-底推1-4-17/1/3*/
+ var cpro_id = "u2864497";
+ </script>
+ <script type="text/javascript"></script>
+ <div id="BAIDU_SSP__wrapper_u2864497_0"><iframe id="iframeu2864497_0" src="http://pos.baidu.com/jcwm?rdid=2864497&amp;dc=3&amp;di=u2864497&amp;dri=0&amp;dis=0&amp;dai=17&amp;ps=0x0&amp;dcb=___adblockplus&amp;dtm=HTML_POST&amp;dvi=0.0&amp;dci=-1&amp;dpt=none&amp;tsr=0&amp;tpr=1489140824683&amp;ti=%E5%AE%87%E8%88%AA%E5%91%98%E5%9C%A8%E5%A4%AA%E7%A9%BA%E4%B8%AD%E5%96%9D%E9%85%92%E4%BC%9A%E6%80%8E%E4%B9%88%E6%A0%B7%EF%BC%9F%E5%90%8E%E6%9E%9C%E5%BE%88%E4%B8%A5%E9%87%8D%20_%E6%8E%A2%E7%B4%A2%E8%80%85%20_%E5%85%89%E6%98%8E%E7%BD%91&amp;ari=2&amp;dbv=0&amp;drs=1&amp;pcs=573x798&amp;pss=573x5268&amp;cfv=21&amp;cpl=1&amp;chi=2&amp;cce=true&amp;cec=UTF-8&amp;tlm=1489140826&amp;rw=588&amp;ltu=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm&amp;ecd=1&amp;uc=1436x877&amp;pis=-1x-1&amp;ccd=24&amp;cja=false&amp;cmi=2&amp;col=en-US&amp;cdo=-1&amp;sr=1440x900&amp;tcn=1489140826&amp;qn=f0d055c3b3d97b11&amp;tt=1489140824660.1712.1712.1712" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" style="border:0;vertical-align:bottom;margin:0;width:130px;height:90px" allowtransparency="true" width="130" align="center,center" height="90" frameborder="0"></iframe></div>
+ </div>
+ <div style="width:20%; float:left;">
+ <script type="text/javascript">
+ /*PC-内-底推1-5-17/1/3*/
+ var cpro_id = "u2864590";
+ </script>
+ <script type="text/javascript"></script>
+ <div id="BAIDU_SSP__wrapper_u2864590_0"><iframe id="iframeu2864590_0" src="http://pos.baidu.com/jcwm?rdid=2864590&amp;dc=3&amp;di=u2864590&amp;dri=0&amp;dis=0&amp;dai=18&amp;ps=0x0&amp;dcb=___adblockplus&amp;dtm=HTML_POST&amp;dvi=0.0&amp;dci=-1&amp;dpt=none&amp;tsr=0&amp;tpr=1489140824683&amp;ti=%E5%AE%87%E8%88%AA%E5%91%98%E5%9C%A8%E5%A4%AA%E7%A9%BA%E4%B8%AD%E5%96%9D%E9%85%92%E4%BC%9A%E6%80%8E%E4%B9%88%E6%A0%B7%EF%BC%9F%E5%90%8E%E6%9E%9C%E5%BE%88%E4%B8%A5%E9%87%8D%20_%E6%8E%A2%E7%B4%A2%E8%80%85%20_%E5%85%89%E6%98%8E%E7%BD%91&amp;ari=2&amp;dbv=0&amp;drs=1&amp;pcs=573x798&amp;pss=573x5268&amp;cfv=21&amp;cpl=1&amp;chi=2&amp;cce=true&amp;cec=UTF-8&amp;tlm=1489140826&amp;rw=588&amp;ltu=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm&amp;ecd=1&amp;uc=1436x877&amp;pis=-1x-1&amp;ccd=24&amp;cja=false&amp;cmi=2&amp;col=en-US&amp;cdo=-1&amp;sr=1440x900&amp;tcn=1489140826&amp;qn=5b8528dd467b3b03&amp;tt=1489140824660.1823.1823.1823" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" style="border:0;vertical-align:bottom;margin:0;width:130px;height:90px" allowtransparency="true" width="130" align="center,center" height="90" frameborder="0"></iframe></div>
+ </div>
+ </div>
+ <script type="text/javascript"></script>
+ <script type="text/javascript"></script>
+ <script type="text/javascript"></script>
+ <script type="text/javascript"></script>
+ <script type="text/javascript"></script>
+ </div>
+ </div>
+ <div id="leftad2" class="noMobile contentadBox_left">
+ <div id="ac_wrap_mm_113716014_12970037_69440205" style="width:650px">
+ <div style="width:650px;">
+ <div style="width:20%; float:left;">
+ <script type="text/javascript">
+ /*PC-内-底推2-1-17/1/3*/
+ var cpro_id = "u2864594";
+ </script>
+ <script type="text/javascript"></script>
+ <div id="BAIDU_SSP__wrapper_u2864594_0"><iframe id="iframeu2864594_0" src="http://pos.baidu.com/jcwm?rdid=2864594&amp;dc=3&amp;di=u2864594&amp;dri=0&amp;dis=0&amp;dai=9&amp;ps=0x0&amp;dcb=___adblockplus&amp;dtm=HTML_POST&amp;dvi=0.0&amp;dci=-1&amp;dpt=none&amp;tsr=0&amp;tpr=1489140824683&amp;ti=%E5%AE%87%E8%88%AA%E5%91%98%E5%9C%A8%E5%A4%AA%E7%A9%BA%E4%B8%AD%E5%96%9D%E9%85%92%E4%BC%9A%E6%80%8E%E4%B9%88%E6%A0%B7%EF%BC%9F%E5%90%8E%E6%9E%9C%E5%BE%88%E4%B8%A5%E9%87%8D%20_%E6%8E%A2%E7%B4%A2%E8%80%85%20_%E5%85%89%E6%98%8E%E7%BD%91&amp;ari=2&amp;dbv=0&amp;drs=1&amp;pcs=573x798&amp;pss=573x5268&amp;cfv=21&amp;cpl=1&amp;chi=2&amp;cce=true&amp;cec=UTF-8&amp;tlm=1489140825&amp;rw=588&amp;ltu=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm&amp;ecd=1&amp;uc=1436x877&amp;pis=-1x-1&amp;ccd=24&amp;cja=false&amp;cmi=2&amp;col=en-US&amp;cdo=-1&amp;sr=1440x900&amp;tcn=1489140826&amp;qn=c29776678656f46c&amp;tt=1489140824660.1022.1022.1023" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" style="border:0;vertical-align:bottom;margin:0;width:130px;height:90px" allowtransparency="true" width="130" align="center,center" height="90" frameborder="0"></iframe></div>
+ </div>
+ <div style="width:20%; float:left;">
+ <script type="text/javascript">
+ /*PC-内-底推2-2-17/1/3*/
+ var cpro_id = "u2864598";
+ </script>
+ <script type="text/javascript"></script>
+ <div id="BAIDU_SSP__wrapper_u2864598_0"><iframe id="iframeu2864598_0" src="http://pos.baidu.com/jcwm?rdid=2864598&amp;dc=3&amp;di=u2864598&amp;dri=0&amp;dis=0&amp;dai=10&amp;ps=0x0&amp;dcb=___adblockplus&amp;dtm=HTML_POST&amp;dvi=0.0&amp;dci=-1&amp;dpt=none&amp;tsr=0&amp;tpr=1489140824683&amp;ti=%E5%AE%87%E8%88%AA%E5%91%98%E5%9C%A8%E5%A4%AA%E7%A9%BA%E4%B8%AD%E5%96%9D%E9%85%92%E4%BC%9A%E6%80%8E%E4%B9%88%E6%A0%B7%EF%BC%9F%E5%90%8E%E6%9E%9C%E5%BE%88%E4%B8%A5%E9%87%8D%20_%E6%8E%A2%E7%B4%A2%E8%80%85%20_%E5%85%89%E6%98%8E%E7%BD%91&amp;ari=2&amp;dbv=0&amp;drs=1&amp;pcs=573x798&amp;pss=573x5268&amp;cfv=21&amp;cpl=1&amp;chi=2&amp;cce=true&amp;cec=UTF-8&amp;tlm=1489140825&amp;rw=588&amp;ltu=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm&amp;ecd=1&amp;uc=1436x877&amp;pis=-1x-1&amp;ccd=24&amp;cja=false&amp;cmi=2&amp;col=en-US&amp;cdo=-1&amp;sr=1440x900&amp;tcn=1489140826&amp;qn=b5fa8307deca83b0&amp;tt=1489140824660.1152.1259.1260" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" style="border:0;vertical-align:bottom;margin:0;width:130px;height:90px" allowtransparency="true" width="130" align="center,center" height="90" frameborder="0"></iframe></div>
+ </div>
+ <div style="width:20%; float:left;">
+ <script type="text/javascript">
+ /*PC-内-底推2-3-17/1/3*/
+ var cpro_id = "u2864599";
+ </script>
+ <script type="text/javascript"></script>
+ <div id="BAIDU_SSP__wrapper_u2864599_0"><iframe id="iframeu2864599_0" src="http://pos.baidu.com/jcwm?rdid=2864599&amp;dc=3&amp;di=u2864599&amp;dri=0&amp;dis=0&amp;dai=11&amp;ps=0x0&amp;dcb=___adblockplus&amp;dtm=HTML_POST&amp;dvi=0.0&amp;dci=-1&amp;dpt=none&amp;tsr=0&amp;tpr=1489140824683&amp;ti=%E5%AE%87%E8%88%AA%E5%91%98%E5%9C%A8%E5%A4%AA%E7%A9%BA%E4%B8%AD%E5%96%9D%E9%85%92%E4%BC%9A%E6%80%8E%E4%B9%88%E6%A0%B7%EF%BC%9F%E5%90%8E%E6%9E%9C%E5%BE%88%E4%B8%A5%E9%87%8D%20_%E6%8E%A2%E7%B4%A2%E8%80%85%20_%E5%85%89%E6%98%8E%E7%BD%91&amp;ari=2&amp;dbv=0&amp;drs=1&amp;pcs=573x798&amp;pss=573x5268&amp;cfv=21&amp;cpl=1&amp;chi=2&amp;cce=true&amp;cec=UTF-8&amp;tlm=1489140825&amp;rw=588&amp;ltu=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm&amp;ecd=1&amp;uc=1436x877&amp;pis=-1x-1&amp;ccd=24&amp;cja=false&amp;cmi=2&amp;col=en-US&amp;cdo=-1&amp;sr=1440x900&amp;tcn=1489140826&amp;qn=216e8076a343ba9e&amp;tt=1489140824660.1189.1264.1265" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" style="border:0;vertical-align:bottom;margin:0;width:130px;height:90px" allowtransparency="true" width="130" align="center,center" height="90" frameborder="0"></iframe></div>
+ </div>
+ <div style="width:20%; float:left;">
+ <script type="text/javascript">
+ /*PC-内-底推2-4-17/1/3*/
+ var cpro_id = "u2864603";
+ </script>
+ <script type="text/javascript"></script>
+ <div id="BAIDU_SSP__wrapper_u2864603_0"><iframe id="iframeu2864603_0" src="http://pos.baidu.com/jcwm?rdid=2864603&amp;dc=3&amp;di=u2864603&amp;dri=0&amp;dis=0&amp;dai=12&amp;ps=0x0&amp;dcb=___adblockplus&amp;dtm=HTML_POST&amp;dvi=0.0&amp;dci=-1&amp;dpt=none&amp;tsr=0&amp;tpr=1489140824683&amp;ti=%E5%AE%87%E8%88%AA%E5%91%98%E5%9C%A8%E5%A4%AA%E7%A9%BA%E4%B8%AD%E5%96%9D%E9%85%92%E4%BC%9A%E6%80%8E%E4%B9%88%E6%A0%B7%EF%BC%9F%E5%90%8E%E6%9E%9C%E5%BE%88%E4%B8%A5%E9%87%8D%20_%E6%8E%A2%E7%B4%A2%E8%80%85%20_%E5%85%89%E6%98%8E%E7%BD%91&amp;ari=2&amp;dbv=0&amp;drs=1&amp;pcs=573x798&amp;pss=573x5268&amp;cfv=21&amp;cpl=1&amp;chi=2&amp;cce=true&amp;cec=UTF-8&amp;tlm=1489140825&amp;rw=588&amp;ltu=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm&amp;ecd=1&amp;uc=1436x877&amp;pis=-1x-1&amp;ccd=24&amp;cja=false&amp;cmi=2&amp;col=en-US&amp;cdo=-1&amp;sr=1440x900&amp;tcn=1489140826&amp;qn=0c303e3cf7833508&amp;tt=1489140824660.1255.1255.1256" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" style="border:0;vertical-align:bottom;margin:0;width:130px;height:90px" allowtransparency="true" width="130" align="center,center" height="90" frameborder="0"></iframe></div>
+ </div>
+ <div style="width:20%; float:left;">
+ <script type="text/javascript">
+ /*PC-内-底推2-5-17/1/3*/
+ var cpro_id = "u2864605";
+ </script>
+ <script type="text/javascript"></script>
+ <div id="BAIDU_SSP__wrapper_u2864605_0"><iframe id="iframeu2864605_0" src="http://pos.baidu.com/jcwm?rdid=2864605&amp;dc=3&amp;di=u2864605&amp;dri=0&amp;dis=0&amp;dai=13&amp;ps=0x0&amp;dcb=___adblockplus&amp;dtm=HTML_POST&amp;dvi=0.0&amp;dci=-1&amp;dpt=none&amp;tsr=0&amp;tpr=1489140824683&amp;ti=%E5%AE%87%E8%88%AA%E5%91%98%E5%9C%A8%E5%A4%AA%E7%A9%BA%E4%B8%AD%E5%96%9D%E9%85%92%E4%BC%9A%E6%80%8E%E4%B9%88%E6%A0%B7%EF%BC%9F%E5%90%8E%E6%9E%9C%E5%BE%88%E4%B8%A5%E9%87%8D%20_%E6%8E%A2%E7%B4%A2%E8%80%85%20_%E5%85%89%E6%98%8E%E7%BD%91&amp;ari=2&amp;dbv=0&amp;drs=1&amp;pcs=573x798&amp;pss=573x5268&amp;cfv=21&amp;cpl=1&amp;chi=2&amp;cce=true&amp;cec=UTF-8&amp;tlm=1489140825&amp;rw=588&amp;ltu=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm&amp;ecd=1&amp;uc=1436x877&amp;pis=-1x-1&amp;ccd=24&amp;cja=false&amp;cmi=2&amp;col=en-US&amp;cdo=-1&amp;sr=1440x900&amp;tcn=1489140826&amp;qn=13236dba96133b74&amp;tt=1489140824660.1316.1316.1316" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" style="border:0;vertical-align:bottom;margin:0;width:130px;height:90px" allowtransparency="true" width="130" align="center,center" height="90" frameborder="0"></iframe></div>
+ </div>
+ </div>
+ <script type="text/javascript"></script>
+ <script type="text/javascript"></script>
+ <script type="text/javascript"></script>
+ <script type="text/javascript"></script>
+ <script type="text/javascript"></script>
+ </div>
+ </div>
+ <div id="leftad3" class="noMobile contentadBox_left">
+ <div id="ac_wrap_mm_113716014_12970037_69446087" style="width:650px">
+ <div style="width:650px;">
+ <div style="width:20%; float:left;">
+ <script type="text/javascript">
+ /*PC-内-底推3-1-17/1/3*/
+ var cpro_id = "u2864609";
+ </script>
+ <script type="text/javascript"></script>
+ <div id="BAIDU_SSP__wrapper_u2864609_0"><iframe id="iframeu2864609_0" src="http://pos.baidu.com/jcwm?rdid=2864609&amp;dc=3&amp;di=u2864609&amp;dri=0&amp;dis=0&amp;dai=4&amp;ps=0x0&amp;dcb=___adblockplus&amp;dtm=HTML_POST&amp;dvi=0.0&amp;dci=-1&amp;dpt=none&amp;tsr=0&amp;tpr=1489140824683&amp;ti=%E5%AE%87%E8%88%AA%E5%91%98%E5%9C%A8%E5%A4%AA%E7%A9%BA%E4%B8%AD%E5%96%9D%E9%85%92%E4%BC%9A%E6%80%8E%E4%B9%88%E6%A0%B7%EF%BC%9F%E5%90%8E%E6%9E%9C%E5%BE%88%E4%B8%A5%E9%87%8D%20_%E6%8E%A2%E7%B4%A2%E8%80%85%20_%E5%85%89%E6%98%8E%E7%BD%91&amp;ari=2&amp;dbv=0&amp;drs=1&amp;pcs=573x798&amp;pss=573x5268&amp;cfv=21&amp;cpl=1&amp;chi=2&amp;cce=true&amp;cec=UTF-8&amp;tlm=1489140825&amp;rw=588&amp;ltu=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm&amp;ecd=1&amp;uc=1436x877&amp;pis=-1x-1&amp;ccd=24&amp;cja=false&amp;cmi=2&amp;col=en-US&amp;cdo=-1&amp;sr=1440x900&amp;tcn=1489140825&amp;qn=0a6eb3663677d888&amp;tt=1489140824660.555.555.556" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" style="border:0;vertical-align:bottom;margin:0;width:130px;height:90px" allowtransparency="true" width="130" align="center,center" height="90" frameborder="0"></iframe></div>
+ </div>
+ <div style="width:20%; float:left;">
+ <script type="text/javascript">
+ /*PC-内-底推3-2-17/1/3*/
+ var cpro_id = "u2864610";
+ </script>
+ <script type="text/javascript"></script>
+ <div id="BAIDU_SSP__wrapper_u2864610_0"><iframe id="iframeu2864610_0" src="http://pos.baidu.com/jcwm?rdid=2864610&amp;dc=3&amp;di=u2864610&amp;dri=0&amp;dis=0&amp;dai=5&amp;ps=0x0&amp;dcb=___adblockplus&amp;dtm=HTML_POST&amp;dvi=0.0&amp;dci=-1&amp;dpt=none&amp;tsr=0&amp;tpr=1489140824683&amp;ti=%E5%AE%87%E8%88%AA%E5%91%98%E5%9C%A8%E5%A4%AA%E7%A9%BA%E4%B8%AD%E5%96%9D%E9%85%92%E4%BC%9A%E6%80%8E%E4%B9%88%E6%A0%B7%EF%BC%9F%E5%90%8E%E6%9E%9C%E5%BE%88%E4%B8%A5%E9%87%8D%20_%E6%8E%A2%E7%B4%A2%E8%80%85%20_%E5%85%89%E6%98%8E%E7%BD%91&amp;ari=2&amp;dbv=0&amp;drs=1&amp;pcs=573x798&amp;pss=573x5268&amp;cfv=21&amp;cpl=1&amp;chi=2&amp;cce=true&amp;cec=UTF-8&amp;tlm=1489140825&amp;rw=588&amp;ltu=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm&amp;ecd=1&amp;uc=1436x877&amp;pis=-1x-1&amp;ccd=24&amp;cja=false&amp;cmi=2&amp;col=en-US&amp;cdo=-1&amp;sr=1440x900&amp;tcn=1489140825&amp;qn=97ec9d3516864212&amp;tt=1489140824660.574.574.575" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" style="border:0;vertical-align:bottom;margin:0;width:130px;height:90px" allowtransparency="true" width="130" align="center,center" height="90" frameborder="0"></iframe></div>
+ </div>
+ <div style="width:20%; float:left;">
+ <script type="text/javascript">
+ /*PC-内-底推3-3-17/1/3*/
+ var cpro_id = "u2864614";
+ </script>
+ <script type="text/javascript"></script>
+ <div id="BAIDU_SSP__wrapper_u2864614_0"><iframe id="iframeu2864614_0" src="http://pos.baidu.com/jcwm?rdid=2864614&amp;dc=3&amp;di=u2864614&amp;dri=0&amp;dis=0&amp;dai=6&amp;ps=0x0&amp;dcb=___adblockplus&amp;dtm=HTML_POST&amp;dvi=0.0&amp;dci=-1&amp;dpt=none&amp;tsr=0&amp;tpr=1489140824683&amp;ti=%E5%AE%87%E8%88%AA%E5%91%98%E5%9C%A8%E5%A4%AA%E7%A9%BA%E4%B8%AD%E5%96%9D%E9%85%92%E4%BC%9A%E6%80%8E%E4%B9%88%E6%A0%B7%EF%BC%9F%E5%90%8E%E6%9E%9C%E5%BE%88%E4%B8%A5%E9%87%8D%20_%E6%8E%A2%E7%B4%A2%E8%80%85%20_%E5%85%89%E6%98%8E%E7%BD%91&amp;ari=2&amp;dbv=0&amp;drs=1&amp;pcs=573x798&amp;pss=573x5268&amp;cfv=21&amp;cpl=1&amp;chi=2&amp;cce=true&amp;cec=UTF-8&amp;tlm=1489140825&amp;rw=588&amp;ltu=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm&amp;ecd=1&amp;uc=1436x877&amp;pis=-1x-1&amp;ccd=24&amp;cja=false&amp;cmi=2&amp;col=en-US&amp;cdo=-1&amp;sr=1440x900&amp;tcn=1489140825&amp;qn=4c66ee28add39d75&amp;tt=1489140824660.600.600.601" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" style="border:0;vertical-align:bottom;margin:0;width:130px;height:90px" allowtransparency="true" width="130" align="center,center" height="90" frameborder="0"></iframe></div>
+ </div>
+ <div style="width:20%; float:left;">
+ <script type="text/javascript">
+ /*PC-内-底推4-4-17/1/3*/
+ var cpro_id = "u2864616";
+ </script>
+ <script type="text/javascript"></script>
+ <div id="BAIDU_SSP__wrapper_u2864616_0"><iframe id="iframeu2864616_0" src="http://pos.baidu.com/jcwm?rdid=2864616&amp;dc=3&amp;di=u2864616&amp;dri=0&amp;dis=0&amp;dai=7&amp;ps=0x0&amp;dcb=___adblockplus&amp;dtm=HTML_POST&amp;dvi=0.0&amp;dci=-1&amp;dpt=none&amp;tsr=0&amp;tpr=1489140824683&amp;ti=%E5%AE%87%E8%88%AA%E5%91%98%E5%9C%A8%E5%A4%AA%E7%A9%BA%E4%B8%AD%E5%96%9D%E9%85%92%E4%BC%9A%E6%80%8E%E4%B9%88%E6%A0%B7%EF%BC%9F%E5%90%8E%E6%9E%9C%E5%BE%88%E4%B8%A5%E9%87%8D%20_%E6%8E%A2%E7%B4%A2%E8%80%85%20_%E5%85%89%E6%98%8E%E7%BD%91&amp;ari=2&amp;dbv=0&amp;drs=1&amp;pcs=573x798&amp;pss=573x5268&amp;cfv=21&amp;cpl=1&amp;chi=2&amp;cce=true&amp;cec=UTF-8&amp;tlm=1489140825&amp;rw=588&amp;ltu=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm&amp;ecd=1&amp;uc=1436x877&amp;pis=-1x-1&amp;ccd=24&amp;cja=false&amp;cmi=2&amp;col=en-US&amp;cdo=-1&amp;sr=1440x900&amp;tcn=1489140825&amp;qn=f288f6f35ea7ec6c&amp;tt=1489140824660.633.633.634" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" style="border:0;vertical-align:bottom;margin:0;width:130px;height:90px" allowtransparency="true" width="130" align="center,center" height="90" frameborder="0"></iframe></div>
+ </div>
+ <div style="width:20%; float:left;">
+ <script type="text/javascript">
+ /*PC-内-底推3-5-17/1/3*/
+ var cpro_id = "u2864619";
+ </script>
+ <script type="text/javascript"></script>
+ <div id="BAIDU_SSP__wrapper_u2864619_0"><iframe id="iframeu2864619_0" src="http://pos.baidu.com/jcwm?rdid=2864619&amp;dc=3&amp;di=u2864619&amp;dri=0&amp;dis=0&amp;dai=8&amp;ps=0x0&amp;dcb=___adblockplus&amp;dtm=HTML_POST&amp;dvi=0.0&amp;dci=-1&amp;dpt=none&amp;tsr=0&amp;tpr=1489140824683&amp;ti=%E5%AE%87%E8%88%AA%E5%91%98%E5%9C%A8%E5%A4%AA%E7%A9%BA%E4%B8%AD%E5%96%9D%E9%85%92%E4%BC%9A%E6%80%8E%E4%B9%88%E6%A0%B7%EF%BC%9F%E5%90%8E%E6%9E%9C%E5%BE%88%E4%B8%A5%E9%87%8D%20_%E6%8E%A2%E7%B4%A2%E8%80%85%20_%E5%85%89%E6%98%8E%E7%BD%91&amp;ari=2&amp;dbv=0&amp;drs=1&amp;pcs=573x798&amp;pss=573x5268&amp;cfv=21&amp;cpl=1&amp;chi=2&amp;cce=true&amp;cec=UTF-8&amp;tlm=1489140825&amp;rw=588&amp;ltu=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm&amp;ecd=1&amp;uc=1436x877&amp;pis=-1x-1&amp;ccd=24&amp;cja=false&amp;cmi=2&amp;col=en-US&amp;cdo=-1&amp;sr=1440x900&amp;tcn=1489140825&amp;qn=1754421f407bc865&amp;tt=1489140824660.757.757.757" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" style="border:0;vertical-align:bottom;margin:0;width:130px;height:90px" allowtransparency="true" width="130" align="center,center" height="90" frameborder="0"></iframe></div>
+ </div>
+ </div>
+ <script type="text/javascript"></script>
+ <script type="text/javascript"></script>
+ <script type="text/javascript"></script>
+ <script type="text/javascript"></script>
+ <script type="text/javascript"></script>
+ </div>
+ </div>
+ </div>
+ </div>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+ <!-- tplD:7762 -->
+ <style type="text/css">
+ .contentPicTxt_right {
+ padding: 5px;
+ }
+
+ .contentPicTxt_right img {
+ margin: 0 5px 0 0;
+ float: left;
+ }
+ /* 右侧侧Tab01 3个栏目*/
+
+ ul#contentTabs_right01 {
+ width: 308px;
+ }
+
+ ul#contentTabs_right01 li {
+ float: left;
+ }
+
+ ul#contentTabs_right01 li a {
+ display: block;
+ width: 102px;
+ border-bottom: 1px solid #ccc;
+ border-right: 1px solid #ccc;
+ height: 30px;
+ line-height: 30px;
+ text-align: center;
+ text-decoration: none;
+ outline: none;
+ background: #f9f9f9;
+ }
+
+ ul#contentTabs_right01 li a.current {
+ background: #fff;
+ border-bottom: none;
+ font-weight: bold;
+ }
+
+ ul#contentTabs_right01 li a.current:hover {
+ text-decoration: none;
+ cursor: default;
+ }
+
+ ul#contentOutput_right01,
+ ul#contentOutput_right01 li {
+ width: 308px;
+ height: 260px;
+ overflow: hidden;
+ }
+ /* 右侧侧Tab02 2个栏目*/
+
+ ul#contentTabs_right02 {
+ width: 308px;
+ }
+
+ ul#contentTabs_right02 li {
+ float: left;
+ }
+
+ ul#contentTabs_right02 li a,
+ ul#contentTabs_right01 li a {
+ display: block;
+ width: 153px;
+ border-bottom: 1px solid #ccc;
+ border-right: 1px solid #ccc;
+ height: 30px;
+ line-height: 30px;
+ text-align: center;
+ text-decoration: none;
+ outline: none;
+ background: #f9f9f9;
+ }
+
+ ul#contentTabs_right02 li {
+ display: block;
+ width: 100%;
+ border-bottom: 1px solid #ccc;
+ line-height: 30px;
+ text-align: center;
+ text-decoration: none;
+ outline: none;
+ background: #f9f9f9;
+ font-weight: bold;
+ }
+
+ ul#contentTabs_right02 li a.current {
+ background: #fff;
+ border-bottom: none;
+ font-weight: bold;
+ }
+
+ ul#contentTabs_right02 li a.current:hover {
+ text-decoration: none;
+ cursor: default;
+ }
+
+ ul#contentOutput_right02,
+ ul#contentOutput_right02 li {
+ width: 308px;
+ height: 260px;
+ overflow: hidden;
+ }
+
+ ul.contentOutput_right02,
+ ul.contentOutput_right02 li {
+ width: 308px;
+ height: 260px;
+ overflow: hidden;
+ }
+ /* 右侧排行*/
+
+ .rankRight p {
+ display: block;
+ height: 24px;
+ margin: 0;
+ padding: 0;
+ border-bottom: 1px dotted #cecece;
+ clear: both;
+ }
+
+ .rankRight p span {
+ display: block;
+ float: left;
+ height: 24px;
+ line-height: 24px;
+ }
+
+ .rankRight p span.rankRightTit {
+ width: 220px;
+ overflow: hidden;
+ }
+
+ .rankRight p span.clickRate {
+ width: 55px;
+ color: #666;
+ }
+
+ .rankRight p span.r1,
+ .rankRight p span.r2 {
+ width: 18px;
+ height: 18px;
+ line-height: 18px;
+ margin: 3px 5px 0 0;
+ text-align: center;
+ font-size: 12px;
+ }
+
+ .rankRight p span.r1 {
+ color: #c00;
+ }
+ </style>
+
+ <div class="contentRight">
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <style>
+ #searchBar {
+ padding-bottom: 2px;
+ }
+
+ #searchText {
+ width: 140px;
+ height: 20px;
+ line-height: 20px;
+ border: 1px #ccc solid;
+ }
+
+ #selectId {
+ width: 96px;
+ height: 22px;
+ border: 1px #ccc solid;
+ }
+
+ #submitS {
+ background: #123377;
+ border: 1px #ccc solid;
+ width: 50px;
+ height: 24px;
+ line-height: 20px;
+ color: #fff;
+ font-size: 12px;
+ cursor: pointer;
+ }
+ </style>
+ <div id="searchBar">
+ <form id="form2" name="form2" method="post" target="_blank" onsubmit="change()">
+ <table width="370" cellspacing="0" cellpadding="0" border="0">
+ <tbody>
+ <tr>
+ <td width="153" align="left"> <input id="searchText" name="searchText" type="text" /></td>
+ <td width="102" align="left">
+ <select name="selectId" id="selectId">
+ <option value="0">站内搜索</option>
+ <option value="1">光明网</option>
+ <option value="2">光明报系</option>
+ </select>
+ </td>
+ <td width="55" align="right"><input id="submitS" value="搜索" type="submit" /></td>
+ <td align="right">
+ <a href="http://skype.gmw.cn/"><img src="http://img.gmw.cn/pic/skypelogo.jpg" width="45" border="0" height="20" /></a>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </form>
+ </div>
+
+ <!--值班总编推荐-->
+ <div class="contentColumnRight">
+ <div class="contentBoxRight">
+ <p><span class="navy12">[值班总编推荐]</span>
+ <span class="black12"><a atremote="" href="http://guancha.gmw.cn/2017-03/10/content_23937646.htm" target="_blank">想想童乞的遭遇,谁都会坐立不安</a><br /></span>
+ </p>
+ <p><span class="navy12">[值班总编推荐]</span>
+ <span class="black12"><a atremote="" href="http://news.gmw.cn/2017-03/10/content_23932721.htm" target="_blank">网络慈善:珍视每一份爱心</a><br /></span>
+ </p>
+ <p><span class="navy12">[值班总编推荐]</span>
+ <span class="black12"><a atremote="" href="http://news.gmw.cn/2017-03/07/content_23904471.htm" target="_blank">被村上春树打脸,日本右翼急了</a><br /></span>
+ </p>
+ </div>
+ </div>
+ <!--右侧广告1-->
+ <div id="rightad1" class="contentadBox_right">
+ <div id="ac_wrap_mm_113716014_12970037_52770159" style="width:300px">
+ <script type="text/javascript">
+ /*PC-IT-PIP1-16年8月5日*/
+ var cpro_id = "u2725145";
+ </script>
+ <script type="text/javascript"></script>
+ <div id="BAIDU_SSP__wrapper_u2725145_0"><iframe id="iframeu2725145_0" src="http://pos.baidu.com/jcwm?rdid=2725145&amp;dc=3&amp;di=u2725145&amp;dri=0&amp;dis=0&amp;dai=1&amp;ps=0x0&amp;dcb=___adblockplus&amp;dtm=HTML_POST&amp;dvi=0.0&amp;dci=-1&amp;dpt=none&amp;tsr=0&amp;tpr=1489140824683&amp;ti=%E5%AE%87%E8%88%AA%E5%91%98%E5%9C%A8%E5%A4%AA%E7%A9%BA%E4%B8%AD%E5%96%9D%E9%85%92%E4%BC%9A%E6%80%8E%E4%B9%88%E6%A0%B7%EF%BC%9F%E5%90%8E%E6%9E%9C%E5%BE%88%E4%B8%A5%E9%87%8D%20_%E6%8E%A2%E7%B4%A2%E8%80%85%20_%E5%85%89%E6%98%8E%E7%BD%91&amp;ari=2&amp;dbv=0&amp;drs=1&amp;pcs=573x798&amp;pss=573x5268&amp;cfv=21&amp;cpl=1&amp;chi=2&amp;cce=true&amp;cec=UTF-8&amp;tlm=1489140824&amp;rw=588&amp;ltu=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm&amp;ecd=1&amp;uc=1436x877&amp;pis=-1x-1&amp;ccd=24&amp;cja=false&amp;cmi=2&amp;col=en-US&amp;cdo=-1&amp;sr=1440x900&amp;tcn=1489140825&amp;qn=b2823388fb3b29c7&amp;tt=1489140824660.26.26.28" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" style="border:0;vertical-align:bottom;margin:0;width:300px;height:250px" allowtransparency="true" width="300" align="center,center" height="250" frameborder="0"></iframe></div>
+ <script type="text/javascript"></script>
+ <script type="text/javascript"></script>
+ <script type="text/javascript"></script>
+ <script type="text/javascript"></script>
+ <script type="text/javascript"></script>
+ </div>
+ </div>
+
+
+ <!--360推荐 begin-->
+ <div class="contentColumnRight black12">
+ <div class="contentBoxRight">
+ <div class="contentPicBox">
+ <a atremote="" href="http://politics.gmw.cn/2017-02/27/content_23830993.htm" target="_blank"><img atremote="" src="http://imgtech.gmw.cn/attachement/gif/site2/20170228/002564a5d1f31a1f298305.gif" width="140" border="0" height="100" /></a><br /><a atremote="" href="http://politics.gmw.cn/2017-02/27/content_23830993.htm" target="_blank">老人制万根“爱心拐棍”</a></div>
+ <div class="contentPicBox">
+ <a atremote="" href="http://politics.gmw.cn/2017-02/28/content_23845465.htm" target="_blank"><img atremote="" src="http://imgtech.gmw.cn/attachement/gif/site2/20170228/002564a5d1f31a1f294604.gif" width="140" border="0" height="100" /></a><br /><a atremote="" href="http://politics.gmw.cn/2017-02/28/content_23845465.htm" target="_blank">公安破获象牙制售案件</a></div>
+ <div class="contentPicBox">
+ <a atremote="" href="http://politics.gmw.cn/2017-02/20/content_23766334.htm" target="_blank"><img atremote="" src="http://imgtech.gmw.cn/attachement/gif/site2/20170228/002564a5d1f31a1f291e03.gif" width="140" border="0" height="100" /></a><br /><a atremote="" href="http://politics.gmw.cn/2017-02/20/content_23766334.htm" target="_blank">古稀老人照顾病妻26年</a></div>
+ <div class="contentPicBox">
+ <a atremote="" href="http://politics.gmw.cn/2017-02/28/content_23845523.htm" target="_blank"><img atremote="" src="http://imgtech.gmw.cn/attachement/gif/site2/20170228/002564a5d1f31a1f28ea02.gif" width="140" border="0" height="100" /></a><br /><a atremote="" href="http://politics.gmw.cn/2017-02/28/content_23845523.htm" target="_blank">维和部队营救演习侧记</a></div>
+ </div>
+ <div class="clear"></div>
+ </div>
+
+ <!--右侧广告2-->
+ <div id="rightad8" style="margin-bottom:10px;"></div>
+ <div id="rightad2" class="contentadBox_right">
+ <div id="ac_wrap_mm_113716014_12970037_52770160" style="width:300px">
+ <script type="text/javascript">
+ /*PC-IT-右二-300*250-16年8月5日*/
+ var cpro_id = "u2725146";
+ </script>
+ <script type="text/javascript"></script>
+ <div id="BAIDU_SSP__wrapper_u2725146_0"><iframe id="iframeu2725146_0" src="http://pos.baidu.com/jcwm?rdid=2725146&amp;dc=3&amp;di=u2725146&amp;dri=0&amp;dis=0&amp;dai=3&amp;ps=0x0&amp;dcb=___adblockplus&amp;dtm=HTML_POST&amp;dvi=0.0&amp;dci=-1&amp;dpt=none&amp;tsr=0&amp;tpr=1489140824683&amp;ti=%E5%AE%87%E8%88%AA%E5%91%98%E5%9C%A8%E5%A4%AA%E7%A9%BA%E4%B8%AD%E5%96%9D%E9%85%92%E4%BC%9A%E6%80%8E%E4%B9%88%E6%A0%B7%EF%BC%9F%E5%90%8E%E6%9E%9C%E5%BE%88%E4%B8%A5%E9%87%8D%20_%E6%8E%A2%E7%B4%A2%E8%80%85%20_%E5%85%89%E6%98%8E%E7%BD%91&amp;ari=2&amp;dbv=0&amp;drs=1&amp;pcs=573x798&amp;pss=573x5268&amp;cfv=21&amp;cpl=1&amp;chi=2&amp;cce=true&amp;cec=UTF-8&amp;tlm=1489140824&amp;rw=588&amp;ltu=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm&amp;ecd=1&amp;uc=1436x877&amp;pis=-1x-1&amp;ccd=24&amp;cja=false&amp;cmi=2&amp;col=en-US&amp;cdo=-1&amp;sr=1440x900&amp;tcn=1489140825&amp;qn=e3fd1a54494df19e&amp;tt=1489140824660.328.397.399" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" style="border:0;vertical-align:bottom;margin:0;width:300px;height:250px" allowtransparency="true" width="300" align="center,center" height="250" frameborder="0"></iframe></div>
+ <script type="text/javascript"></script>
+ <script type="text/javascript"></script>
+ <script type="text/javascript"></script>
+ <script type="text/javascript"></script>
+ <script type="text/javascript"></script>
+ </div>
+ </div>
+
+ <!--图说能源-->
+ <div class="contentColumnRight black12">
+ <div class="contentTitBarRight">图说能源</div>
+ <div class="contentBoxRight">
+ <div class="contentPicBox">
+ <a atremote="" href="http://www.gmw.cn/ny/2016-09/19/content_22034037.htm" target="_blank"><img atremote="" src="http://imgtech.gmw.cn/attachement/jpg/site2/20161010/448a5b7c82a419653f8e01.jpg" width="140" border="0" height="100" /></a><br /><a atremote="" href="http://www.gmw.cn/ny/2016-09/19/content_22034037.htm" target="_blank">工业遗迹的二次生命</a></div>
+ <div class="contentPicBox">
+ <a atremote="" href="http://www.gmw.cn/ny/2016-08/29/content_21687829.htm" target="_blank"><img atremote="" src="http://imgtech.gmw.cn/attachement/jpg/site2/20161010/448a5b7c82a4196542d504.jpg" width="140" border="0" height="100" /></a><br /><a atremote="" href="http://www.gmw.cn/ny/2016-08/29/content_21687829.htm" target="_blank">电力作业上的“瓦力”</a></div>
+ <div class="contentPicBox">
+ <a atremote="" href="http://www.gmw.cn/ny/2016-06/02/content_20390690.htm" target="_blank"><img atremote="" src="http://imgtech.gmw.cn/attachement/jpg/site2/20161010/448a5b7c82a41965427203.jpg" width="140" border="0" height="100" /></a><br /><a atremote="" href="http://www.gmw.cn/ny/2016-06/02/content_20390690.htm" target="_blank">芳烃技术有多牛?</a></div>
+ <div class="contentPicBox">
+ <a atremote="" href="http://www.gmw.cn/ny/2016-07/08/content_20890703.htm" target="_blank"><img atremote="" src="http://imgtech.gmw.cn/attachement/jpg/site2/20161010/448a5b7c82a41965411e02.jpg" width="140" border="0" height="100" /></a><br /><a atremote="" href="http://www.gmw.cn/ny/2016-07/08/content_20890703.htm" target="_blank">EFG2016新看点</a></div>
+ </div>
+ <div class="clear"></div>
+ </div>
+
+ <!--右侧广告3-->
+ <div id="rightad3" class="contentadBox_right">
+ <div id="ac_wrap_mm_113716014_12970037_52770184" style="width:300px">
+ <script type="text/javascript">
+ document.write('&lt;a style="display:none!important" id="tanx-a-mm_26632169_2503481_23184864"&gt;&lt;/a&gt;');
+ tanx_s = document.createElement("script");
+ tanx_s.type = "text/javascript";
+ tanx_s.charset = "gbk";
+ tanx_s.id = "tanx-s-mm_26632169_2503481_23184864";
+ tanx_s.async = true;
+ tanx_s.src = "http://p.tanx.com/ex?i=mm_26632169_2503481_23184864";
+ tanx_h = document.getElementsByTagName("head")[0];
+ if (tanx_h) tanx_h.insertBefore(tanx_s, tanx_h.firstChild);
+ </script><ins style="display:inline-block;padding:0;margin:0;width:300px;height:250px;*zoom:1;*display:inline; position:relative;" id="tanxssp-outer-conmm_26632169_2503481_23184864"><div id="tanxssp_con_mm_26632169_2503481_23184864" style="overflow:hidden;display:inline-block;position:relative;width:300px;height:250px;*display:inline;*zoom:1;font:12px/1.5 tahoma,'Hiragino Sans GB','microsoft yahei',sans-serif;"><iframe id="tanxssp-tuwen-iframemm_26632169_2503481_23184864" src="https://a1.alicdn.com/creation/html/2016/06/20/creation-245057E3sJ6U0UZ8D-2830683.html?tanxdspv=http%3a%2f%2frdstat.tanx.com%2ftrd%3ff%3d%26k%3da09e279ad7f7a12a%26p%3dmm_26632169_2503481_23184864%26pvid%3d0bb4df44000258c27c5a8b1900134a48%26s%3d300x250%26d%3d0%26t%3d1489140826&amp;pid=mm_26632169_2503481_23184864&amp;tp=5&amp;tsid=0bb4df44000258c27c5a8b1900134a48&amp;pid=mm_26632169_2503481_23184864" style="width:300px;height:250px" border="0" marginwidth="0" marginheight="0" scrolling="no" allowtransparency="true" frameborder="0"></iframe><a id="sxmm_26632169_2503481_23184864" href="javascript:;" style="width:20px;height:13px;right:0px;bottom:0px;display:block;position:absolute;cursor:pointer;z-index:250;margin:0;"> <span id="sx1mm_26632169_2503481_23184864" style="float:none;width:20px;display:block;height:13px;"><img src="//atanx.alicdn.com/t/img/TB1tWvVJFXXXXc_aXXXXXXXXXXX-40-26.png" style="width:20px;height:13px;margin:auto;display:block;min-height:13px;" border="0/" /></span><div id="sxtipmm_26632169_2503481_23184864" style="display:none;position:absolute;left:-38px;bottom:13px;"><img src="//atanx.alicdn.com/t/img/TB1upAiJXXXXXa5aXXXXXXXXXXX-116-30.png" style="width:58px;height:15px;margin:auto;display:block;min-height:15px;" border="0" /></div></a></div></ins>
+ <a style="display:none!important" id="tanx-a-mm_26632169_2503481_23184864"></a>
+ <script type="text/javascript"></script>
+ <script type="text/javascript"></script>
+ <script type="text/javascript"></script>
+ <script type="text/javascript"></script>
+ <script type="text/javascript"></script>
+ </div>
+ </div>
+
+
+ <!--右侧广告5-->
+ <!-- rightad5.htm -->
+ <!-- 画中画广告 -->
+ <script src="http://img.gmw.cn/js/content_inside_ad.js"></script>
+ <!-- AFP两段式代码-公用代码 -->
+ <script type="text/javascript" src="http://afpmm.alicdn.com/g/mm/afp-cdn/JS/k.js"></script>
+ <!-- 72417:科技-内-顶通 -->
+ <ins id="ac_js86_mm_113716014_12970037_52770157" style="display: none;"></ins>
+ <script type="text/javascript">
+ _acM({
+ aid: "mm_113716014_12970037_52770157",
+ format: 1,
+ mode: 1,
+ gid: 1,
+ destid: "banner_top",
+ sendreferer: 1,
+ serverbaseurl: "afpeng.alimama.com/"
+ });
+ </script>
+ <script></script>
+ <script type="text/javascript" src="http://afpeng.alimama.com/ex?a=mm_113716014_12970037_52770157&amp;sp=1&amp;cb=_acM.r&amp;u=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm&amp;ds=1440x900&amp;_=1489140824173&amp;fs=0&amp;pvid=db814da9e3a35503fc157809c1b135df&amp;cg=ca017a584f16b997d1bf766e52393cbf" id="ac_js86_$9577777313"></script>
+
+ <!-- 52770158:科技-内-中通 类型:固定 尺寸:1000x60-->
+ <ins id="ac_js86_mm_113716014_12970037_52770158" style="display: none;"></ins>
+ <script type="text/javascript">
+ _acM({
+ aid: "mm_113716014_12970037_52770158",
+ format: 1,
+ mode: 1,
+ gid: 1,
+ destid: "banner_top2",
+ sendreferer: 1,
+ serverbaseurl: "afpeng.alimama.com/"
+ });
+ </script>
+ <script type="text/javascript" src="http://afpeng.alimama.com/ex?a=mm_113716014_12970037_52770158&amp;sp=1&amp;cb=_acM.r&amp;u=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm&amp;ds=1440x900&amp;_=1489140824317&amp;fs=0&amp;pvid=a878c27dd82defbff7ca01100119e55f&amp;cg=a915710ca3938dfb12ac4df5c4fe7ae0" id="ac_js86_$1480679826"></script>
+
+ <!-- 72445:科技-内-对联 -->
+ <ins id="ac_js86_mm_113716014_12970037_52770140" style="display: none;"></ins>
+ <script type="text/javascript">
+ _acM({
+ aid: "mm_113716014_12970037_52770140",
+ format: 2,
+ mode: 1,
+ gid: 1,
+ destid: "side",
+ sendreferer: 1,
+ serverbaseurl: "afpeng.alimama.com/"
+ });
+ </script>
+ <script type="text/javascript" src="http://afpeng.alimama.com/ex?a=mm_113716014_12970037_52770140&amp;sp=1&amp;cb=_acM.r&amp;u=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm&amp;ds=1440x900&amp;_=1489140824450&amp;fs=0&amp;pvid=ec9ae90805545c3190a0f196dfdf1f39&amp;cg=a4d6a8ecdd097dc53a1cf386011dd066" id="ac_js86_$846092339"></script>
+ <!-- 72433:科技-内-右1 -->
+ <ins id="ac_js86_mm_113716014_12970037_52770159" style="display: none;"></ins>
+ <script type="text/javascript">
+ _acM({
+ aid: "mm_113716014_12970037_52770159",
+ format: 1,
+ mode: 1,
+ gid: 1,
+ destid: "rightad1",
+ sendreferer: 1,
+ serverbaseurl: "afpeng.alimama.com/"
+ });
+ </script>
+ <script></script>
+ <script type="text/javascript" src="http://afpeng.alimama.com/ex?a=mm_113716014_12970037_52770159&amp;sp=1&amp;cb=_acM.r&amp;u=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm&amp;ds=1440x900&amp;_=1489140824570&amp;fs=0&amp;pvid=a43cfe5f769a0ccdd29c9a1023184f7d&amp;cg=f465030143df57efea76f027d322077f" id="ac_js86_$9120837297"></script>
+ <!-- 73787:科技-内-弹窗 -->
+ <ins id="ac_js86_mm_113716014_12970037_52770455" style="display: none;"></ins>
+ <script type="text/javascript">
+ _acM({
+ aid: "mm_113716014_12970037_52770455",
+ format: 2,
+ mode: 1,
+ gid: 1,
+ destid: "window",
+ sendreferer: 1,
+ serverbaseurl: "afpeng.alimama.com/"
+ });
+ </script>
+ <script></script>
+ <script type="text/javascript" src="http://afpeng.alimama.com/ex?a=mm_113716014_12970037_52770455&amp;sp=1&amp;cb=_acM.r&amp;u=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm&amp;ds=1440x900&amp;_=1489140824701&amp;fs=0&amp;pvid=e6c4e84fc23793568c74a7405693c6ff&amp;cg=a5b63168866e84f4a11c70e38261f645" id="ac_js86_$3030429943"></script>
+ <div id="ac_wrap_mm_113716014_12970037_52770455" style="width:0px">
+ <script type="text/javascript">
+ if (crtg_content.indexOf("criteo_300250zy02") == -1) {
+ /*弹窗300*250 创建于 2016年8月5日*/
+ var cpro_id = "u2725027";
+ document.write('&lt;scr' + 'ipt type="text/javas' + 'cript" src="http://cpro.baidustatic.com/cpro/ui/f.js"&gt;&lt;/scr' + 'ipt&gt;');
+ } else {
+ document.write('&lt;div id="gwm_criteo_pop" style="position: fixed; display: block; z-index: 99999999; height: 250px; width: 300px; overflow: visible; right: 5px; top: auto;bottom: 0px;"&gt;');
+ document.write('&lt;div style="height:13px;font-size:14px;float:right;cursor:pointer;position:absolute;top:-16px;right:0px" onclick="javascript:document.getElementById(\'gwm_criteo_pop\').style.cssText=\'display:none\';"&gt;关闭&lt;/div&gt;');
+ document.MAX_ct0 = 'INSERT_CLICK_URL';
+ var m3_u = (location.protocol == 'https:' ? 'https://cas.criteo.com/delivery/ajs.php?' : 'http://cas.criteo.com/delivery/ajs.php?');
+ var m3_r = Math.floor(Math.random() * 99999999999);
+ document.write("&lt;scr" + "ipt type='text/javascript' src='" + m3_u);
+ document.write("zoneid=202614");
+ document.write('&amp;amp;cb=' + m3_r);
+ if (document.MAX_used != ',') document.write("&amp;amp;exclude=" + document.MAX_used);
+ document.write(document.charset ? '&amp;amp;charset=' + document.charset : (document.characterSet ? '&amp;amp;charset=' + document.characterSet : ''));
+ document.write("&amp;amp;loc=" + escape(window.location).substring(0, 1600));
+ if (document.context) document.write("&amp;context=" + escape(document.context));
+ if ((typeof(document.MAX_ct0) != 'undefined') & amp; & amp;
+ (document.MAX_ct0.substring(0, 4) == 'http')) {
+ document.write("&amp;amp;ct0=" + escape(document.MAX_ct0));
+ }
+ if (document.mmm_fo) document.write("&amp;amp;mmm_fo=1");
+ document.write("'&gt;&lt;/scr" + "ipt&gt;");
+ document.write('&lt;/div&gt;');
+ }
+ </script>
+ <script type="text/javascript" src="http://cpro.baidustatic.com/cpro/ui/f.js"></script>
+ <div id="BAIDU_SSP__wrapper_u2725027_0"></div>
+ <script type="text/javascript" src="//afpmm.alicdn.com/g/mm/afp-cdn/JS/e.js"></script>
+ <script type="text/javascript" src="//afpmm.alicdn.com/g/mm/afp-cdn/JS/e.js"></script>
+ <script type="text/javascript" src="//afpmm.alicdn.com/g/mm/afp-cdn/JS/e.js"></script>
+ <script type="text/javascript" src="//afpmm.alicdn.com/g/mm/afp-cdn/JS/e.js"></script>
+ <script type="text/javascript" src="//afpmm.alicdn.com/g/mm/afp-cdn/JS/e.js"></script>
+ </div>
+ <!-- 72435:科技-内-右2 -->
+ <ins id="ac_js86_mm_113716014_12970037_52770160" style="display: none;"></ins>
+ <script type="text/javascript">
+ _acM({
+ aid: "mm_113716014_12970037_52770160",
+ format: 1,
+ mode: 1,
+ gid: 1,
+ destid: "rightad2",
+ sendreferer: 1,
+ serverbaseurl: "afpeng.alimama.com/"
+ });
+ </script>
+ <script></script>
+ <script type="text/javascript" src="http://afpeng.alimama.com/ex?a=mm_113716014_12970037_52770160&amp;sp=1&amp;cb=_acM.r&amp;u=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm&amp;ds=1440x900&amp;_=1489140824894&amp;fs=0&amp;pvid=a02bff5e4f352af035b93227509e8e87&amp;cg=a98877641cb3b3dfb133cbcf1740be11" id="ac_js86_$2934036839"></script>
+ <!-- 72437:科技-内-右3 -->
+ <ins id="ac_js86_mm_113716014_12970037_52770184" style="display: none;"></ins>
+ <script type="text/javascript">
+ _acM({
+ aid: "mm_113716014_12970037_52770184",
+ format: 1,
+ mode: 1,
+ gid: 1,
+ destid: "rightad3",
+ sendreferer: 1,
+ serverbaseurl: "afpeng.alimama.com/"
+ });
+ </script>
+ <script></script>
+ <script type="text/javascript" src="http://afpeng.alimama.com/ex?a=mm_113716014_12970037_52770184&amp;sp=1&amp;cb=_acM.r&amp;u=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm&amp;ds=1440x900&amp;_=1489140824996&amp;fs=0&amp;pvid=afdaa432fe1f20bed896ce98f10a5b83&amp;cg=a09d824423f0229dd59e211a20d0c7ab" id="ac_js86_$1994759442"></script>
+
+ <!-- 69446087:科技-内-左3 类型:固定 尺寸:650x90-->
+ <ins id="ac_js86_mm_113716014_12970037_69446087" style="display: none;"></ins>
+ <script type="text/javascript">
+ _acM({
+ aid: "mm_113716014_12970037_69446087",
+ format: 1,
+ mode: 1,
+ gid: 1,
+ destid: "leftad3",
+ sendreferer: 1,
+ serverbaseurl: "afpeng.alimama.com/"
+ });
+ </script>
+ <script></script>
+ <script type="text/javascript" src="http://afpeng.alimama.com/ex?a=mm_113716014_12970037_69446087&amp;sp=1&amp;cb=_acM.r&amp;u=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm&amp;ds=1440x900&amp;_=1489140825123&amp;fs=0&amp;pvid=ce53b8f4de77a26f78a19dcddea1187f&amp;cg=ad26531f1c45f6f1392ce53404f9ccc7" id="ac_js86_$7618901310"></script>
+
+
+ <!-- 69440205:科技-内-左2 类型:固定 尺寸:650x90-->
+ <ins id="ac_js86_mm_113716014_12970037_69440205" style="display: none;"></ins>
+ <script type="text/javascript">
+ _acM({
+ aid: "mm_113716014_12970037_69440205",
+ format: 1,
+ mode: 1,
+ gid: 1,
+ destid: "leftad2",
+ sendreferer: 1,
+ serverbaseurl: "afpeng.alimama.com/"
+ });
+ </script>
+ <script></script>
+ <script type="text/javascript" src="http://afpeng.alimama.com/ex?a=mm_113716014_12970037_69440205&amp;sp=1&amp;cb=_acM.r&amp;u=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm&amp;ds=1440x900&amp;_=1489140825526&amp;fs=0&amp;pvid=a451eb6bc552042f1e3427662d5dfc6c&amp;cg=abda4b6ec70d62f7ce27df43bdda52e4" id="ac_js86_$1935065969"></script>
+
+
+ <!-- 69446086:科技-内-左1 类型:固定 尺寸:650x90-->
+ <ins id="ac_js86_mm_113716014_12970037_69446086" style="display: none;"></ins>
+ <script type="text/javascript">
+ _acM({
+ aid: "mm_113716014_12970037_69446086",
+ format: 1,
+ mode: 1,
+ gid: 1,
+ destid: "leftad1",
+ sendreferer: 1,
+ serverbaseurl: "afpeng.alimama.com/"
+ });
+ </script>
+ <script></script>
+ <script type="text/javascript" src="http://afpeng.alimama.com/ex?a=mm_113716014_12970037_69446086&amp;sp=1&amp;cb=_acM.r&amp;u=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm&amp;ds=1440x900&amp;_=1489140826002&amp;fs=0&amp;pvid=af3d681a357a80688ba533e39e931d6d&amp;cg=a86d1d11f2542e07c412d3b57fae2a6e" id="ac_js86_$4408269306"></script>
+
+
+ </div>
+
+ <div class="clear"></div>
+ </div><iframe src="http://www.gmw.cn/ad/economy_index_380x100_72714879.html" scrolling="no" width="0" height="0" frameborder="0"></iframe>
+
+ <!-- <div id="back_top"><a><span>回到顶部</span></a></div> -->
+ <div class="channel-mobileFooter noDesktop">
+ <p><a href="http://m.gmw.cn/">手机光明网</a></p>
+ <p>光明网版权所有</p>
+ </div>
+ <div class="noMobile">
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
+ <div class="clear"></div>
+ <div class="footLine"></div>
+ <div class="black12" style="margin:11px auto 28px;padding:0;text-align:center;">
+ <p style="line-height:30px;height:30px;"><a href="http://www.gmw.cn/node_21441.htm">光明日报社概况</a> | <a href="http://www.gmw.cn/aboutus.htm">关于光明网</a> | <a href="http://www.gmw.cn/content/node_8926.htm">报网动态</a> | <a href="http://www.gmw.cn/node_46280.htm">联系我们</a> | <a href="http://www.gmw.cn/node_46279.htm">法律声明</a> | <a href="http://www.gmw.cn/gm/">光明员工</a> | <a href="http://mail.gmw.cn/">光明网邮箱</a> | <a href="http://www.gmw.cn/map.htm">网站地图</a></p>
+ <p style="line-height:30px;height:30px;">光明网版权所有</p>
+ </div>
+ <div id="thistime" style="display:none">
+ <script type="text/javascript" src="https://img.gmw.cn/js/haf_gmw_2013.js"></script>
+ </div>
+ <!-- 天润 统计 -->
+ <script type="text/javascript">
+ document.write(unescape("%3Cscript src='http://cl.webterren.com/webdig.js?z=7' type='text/javascript'%3E%3C/script%3E"));
+ </script>
+ <script src="http://cl.webterren.com/webdig.js?z=7" type="text/javascript"></script>
+ <script type="text/javascript">
+ wd_paramtracker("_wdxid=000000000000000000000000000000000000000000")
+ </script>
+
+ <!-- 谷歌 统计 -->
+ <script>
+ (function(i, s, o, g, r, a, m) {
+ i['GoogleAnalyticsObject'] = r;
+ i[r] = i[r] || function() {
+ (i[r].q = i[r].q || []).push(arguments)
+ }, i[r].l = 1 * new Date();
+ a = s.createElement(o),
+ m = s.getElementsByTagName(o)[0];
+ a.async = 1;
+ a.src = g;
+ m.parentNode.insertBefore(a, m)
+ })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
+ ga('create', 'UA-20947729-1', 'auto');
+ ga('require', 'displayfeatures');
+ ga('send', 'pageview');
+ </script>
+
+ <script type="text/javascript">
+ _atrk_opts = {
+ atrk_acct: "4+gli1aUCm00OA",
+ domain: "gmw.cn",
+ dynamic: true
+ };
+ (function() {
+ var as = document.createElement('script');
+ as.type = 'text/javascript';
+ as.async = true;
+ as.src = "https://d31qbv1cthcecs.cloudfront.net/atrk.js";
+ var s = document.getElementsByTagName('script')[0];
+ s.parentNode.insertBefore(as, s);
+ })();
+ </script>
+ <noscript>&lt;img src="https://d5nxst8fruw4z.cloudfront.net/atrk.gif?account=4+gli1aUCm00OA" style="display:none" height="1" width="1" alt="" /&gt;</noscript>
+
+ </div>
+ <style>
+ .onlyYSP {
+ display: none;
+ }
+ </style>
+ <!-- 光明日报系列下载 bengin -->
+ <div class="gmrbAppLayer onlyYSP" id="ysp_gmrbAppLayer">
+ <img class="btn_gmrbApp_close" src="http://imgm.gmw.cn/images/index_QRCode_btn_close.png" />
+ <div class="">
+ <ul class="infoList">
+ <li><img src="http://imgm.gmw.cn/images/gmrb_logo_white_180x180.png" width="50" /><a href="http://yunmei.cloudapi.gmw.cn/gmym_download/" class="txtLink">光明日报客户端</a></li>
+ </ul><a class="btn_openApp" href="http://yunmei.cloudapi.gmw.cn/gmym_download/">立即打开</a></div>
+ <script>
+ $(".btn_gmrbApp_close").click(function() {
+ $(".gmrbAppLayer").hide();
+ });
+ </script>
+ </div>
+ <!-- 光明日报系列下载 end -->
+
+
+ <!-- 20160428 mail form pengbo -->
+ <!-- AFP两段式代码-公用代码 -->
+ <script type="text/javascript" src="http://afpmm.alicdn.com/g/mm/afp-cdn/JS/k.js"></script>
+
+
+ <!-- 52772462:人才-内-0像素 类型:固定 尺寸:0x1-->
+ <ins id="ac_js86_mm_113716014_12970037_52772462" style="display: none;"></ins>
+ <script type="text/javascript">
+ _acM({
+ aid: "mm_113716014_12970037_52772462",
+ format: 1,
+ mode: 1,
+ gid: 1,
+ serverbaseurl: "afpeng.alimama.com/"
+ });
+ </script>
+ <script></script>
+ <script type="text/javascript" src="http://afpeng.alimama.com/ex?a=mm_113716014_12970037_52772462&amp;sp=1&amp;cb=_acM.r&amp;u=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm&amp;ds=1440x900&amp;_=1489140826630&amp;fs=7&amp;pvid=a767cdb98dd50132922b062cbc5b2236&amp;cg=a7bd18b0631f2d95c7b79682205b3646" id="ac_js86_$3318940481"></script>
+ <script type="text/javascript">
+ document.write(unescape("%3Cscript src='https://img.gmw.cn/js/market/mooncake_final.js' type='text/javascript'%3E%3C/script%3E"));
+ </script>
+ <script src="https://img.gmw.cn/js/market/mooncake_final.js" type="text/javascript"></script>
+
+ <div style="display:none; width:0; height:0;">
+ <!-- AFP两段式代码-公用代码 -->
+ <script type="text/javascript" src="http://afpmm.alicdn.com/g/mm/afp-cdn/JS/k.js"></script>
+ <!-- 68950863:PC刷量-0-0 类型:固定 尺寸:0x0-->
+ <span style="overflow: visible; position: relative; display: block; width: 0px; height: 1px; background: rgba(0, 0, 0, 0) none repeat scroll 0% 0%; border: 0px none; text-align: left;"><span style="overflow: hidden; position: absolute; display: block; width: 0px; height: 1px; background: rgba(0, 0, 0, 0) none repeat scroll 0% 0%; border: 0px none; text-align: left;"><span style="overflow: hidden; position: absolute; display: block; width: 0px; height: 1px; background: rgba(0, 0, 0, 0) none repeat scroll 0% 0%; border: 0px none; text-align: left;"><img id="ac_cs_mm_113716014_12970037_68950863_1" src="http://afp.alicdn.com/afp-creative/creative/u113716014/37c9f0d8c68fe9458ff53caee567332f.jpg" style="width: 0px; height: 1px;" border="0" /></span></span>
+ </span><ins id="ac_js86_mm_113716014_12970037_68950863" style="display: none;"></ins>
+ <script type="text/javascript">
+ _acM({
+ aid: "mm_113716014_12970037_68950863",
+ format: 1,
+ mode: 1,
+ gid: 1,
+ serverbaseurl: "afpeng.alimama.com/"
+ });
+ </script>
+ <script></script>
+ <script type="text/javascript" src="http://afpeng.alimama.com/ex?a=mm_113716014_12970037_68950863&amp;sp=1&amp;cb=_acM.r&amp;u=http%3A%2F%2Ftech.gmw.cn%2F2017-03%2F10%2Fcontent_23937776.htm&amp;ds=1440x900&amp;_=1489140826830&amp;fs=0&amp;pvid=a4a87426794791571e9eb9ea6a535c5e&amp;cg=a5ca357cfbf85d0cd51257efd122d911" id="ac_js86_$164015126"></script>
+ </div>
+
+
+ <div id="bsBox" class="bsBox">
+ <div class="bsClose">X</div>
+ <div class="bsTop">
+ <div class="bsReturn">选择其他平台 &gt;&gt;</div><span style="margin-left:15px;">分享到</span><span class="bsPlatName"></span></div>
+ <div class="bsFrameDiv"><iframe class="bShareFrame" name="bsFrame815" scrolling="no" allowtransparency="true" frameborder="0"></iframe></div>
+ <div id="bsMorePanel" style="display: none;"></div>
+ </div><iframe src="http://www.gmw.cn/ad/economy_index_380x100_72714879.html" scrolling="no" width="0" height="0" frameborder="0"></iframe>
+ <div id="ads"></div>
+ <div id="bsPanelHolder">
+ <div id="bsPanel" style="display:none;">
+ <div class="bsTitle"><a style="float:left;height:20px;line-height:20px;font-weight:bold;" class="bsSiteLink" target="_blank" href="http://www.bshare.cn/intro">分享到</a><a class="bsSiteLink" style="cursor:pointer;float:right;height:20px;line-height:20px;font-weight:bold;" onclick="document.getElementById('bsPanel').style.display='none';">X</a>
+ <div class="bsClear"></div>
+ </div>
+ <div class="bsClear"></div>
+ <div style="padding-left:8px;background:#fff;*height:244px;">
+ <div style="height:47px;border-bottom:1px #ccc solid;padding:4px 0 4px 16px;margin-right:8px;_padding-left:12px;">
+ <div class="bsRlogo" onmouseover="javascript:this.className='bsRlogoSel'" onmouseout="javascript:this.className='bsRlogo'">
+ <a href="javascript:;" onclick="javascript:bShare.share(event,'bsharesync');return false;" style="text-decoration:none;line-height:120%;">
+ <div style="cursor:pointer;width:24px;height:24px;margin:0 18px 2px;background:url(http://static.bshare.cn/frame/images//logos/m2/bsharesync.gif) no-repeat;"></div>
+ <div style="cursor:pointer;text-align:center;width:60px;height:16px !important;overflow:hidden;color:inherit;white-space:nowrap;line-height:120% !important">一键通</div>
+ </a>
+ </div>
+ <div class="bsRlogo" onmouseover="javascript:this.className='bsRlogoSel'" onmouseout="javascript:this.className='bsRlogo'">
+ <a href="javascript:;" onclick="javascript:bShare.share(event,'sinaminiblog');return false;" style="text-decoration:none;line-height:120%;">
+ <div style="cursor:pointer;width:24px;height:24px;margin:0 18px 2px;background:url(http://static.bshare.cn/frame/images//logos/m2/sinaminiblog.gif) no-repeat;"></div>
+ <div style="cursor:pointer;text-align:center;width:60px;height:16px !important;overflow:hidden;color:inherit;white-space:nowrap;line-height:120% !important">新浪微博</div>
+ </a>
+ </div>
+ <div class="bsRlogo" onmouseover="javascript:this.className='bsRlogoSel'" onmouseout="javascript:this.className='bsRlogo'">
+ <a href="javascript:;" onclick="javascript:bShare.share(event,'qqmb');return false;" style="text-decoration:none;line-height:120%;">
+ <div style="cursor:pointer;width:24px;height:24px;margin:0 18px 2px;background:url(http://static.bshare.cn/frame/images//logos/m2/qqmb.gif) no-repeat;"></div>
+ <div style="cursor:pointer;text-align:center;width:60px;height:16px !important;overflow:hidden;color:inherit;white-space:nowrap;line-height:120% !important">腾讯微博</div>
+ </a>
+ </div>
+ </div>
+ <div class="bsLogoLink">
+ <div class="bsLogo" onmouseover="javascript:this.className='bsLogoSel'" onmouseout="javascript:this.className='bsLogo'"><a href="javascript:;" title="人人网" onclick="javascript:bShare.share(event,'renren');return false;" style="background:url(http://static.bshare.cn/frame/images//slogos_sprite8.png) no-repeat 0 -1674px;">人人网</a></div>
+ <div class="bsLogo" onmouseover="javascript:this.className='bsLogoSel'" onmouseout="javascript:this.className='bsLogo'"><a href="javascript:;" title="搜狐微博" onclick="javascript:bShare.share(event,'sohuminiblog');return false;" style="background:url(http://static.bshare.cn/frame/images//slogos_sprite8.png) no-repeat 0 -1800px;">搜狐微博</a></div>
+ <div class="bsLogo" onmouseover="javascript:this.className='bsLogoSel'" onmouseout="javascript:this.className='bsLogo'"><a href="javascript:;" title="开心网" onclick="javascript:bShare.share(event,'kaixin001');return false;" style="background:url(http://static.bshare.cn/frame/images//slogos_sprite8.png) no-repeat 0 -1008px;">开心网</a></div>
+ <div class="bsLogo" onmouseover="javascript:this.className='bsLogoSel'" onmouseout="javascript:this.className='bsLogo'"><a href="javascript:;" title="朋友网" onclick="javascript:bShare.share(event,'qqxiaoyou');return false;" style="background:url(http://static.bshare.cn/frame/images//slogos_sprite8.png) no-repeat 0 -1548px;">朋友网</a></div>
+ <div class="bsLogo" onmouseover="javascript:this.className='bsLogoSel'" onmouseout="javascript:this.className='bsLogo'"><a href="javascript:;" title="凤凰微博" onclick="javascript:bShare.share(event,'ifengmb');return false;" style="background:url(http://static.bshare.cn/frame/images//slogos_sprite8.png) no-repeat 0 -918px;">凤凰微博</a></div>
+ <div class="bsLogo" onmouseover="javascript:this.className='bsLogoSel'" onmouseout="javascript:this.className='bsLogo'"><a href="javascript:;" title="Facebook" onclick="javascript:bShare.share(event,'facebook');return false;" style="background:url(http://static.bshare.cn/frame/images//slogos_sprite8.png) no-repeat 0 -648px;">Facebook</a></div>
+ <div class="bsLogo" onmouseover="javascript:this.className='bsLogoSel'" onmouseout="javascript:this.className='bsLogo'"><a href="javascript:;" title="天涯" onclick="javascript:bShare.share(event,'tianya');return false;" style="background:url(http://static.bshare.cn/frame/images//slogos_sprite8.png) no-repeat 0 -1890px;">天涯</a></div>
+ </div>
+ <div class="bsLogoLink">
+ <div class="bsLogo" onmouseover="javascript:this.className='bsLogoSel'" onmouseout="javascript:this.className='bsLogo'"><a href="javascript:;" title="QQ空间" onclick="javascript:bShare.share(event,'qzone');return false;" style="background:url(http://static.bshare.cn/frame/images//slogos_sprite8.png) no-repeat 0 -1566px;">QQ空间</a></div>
+ <div class="bsLogo" onmouseover="javascript:this.className='bsLogoSel'" onmouseout="javascript:this.className='bsLogo'"><a href="javascript:;" title="豆瓣网" onclick="javascript:bShare.share(event,'douban');return false;" style="background:url(http://static.bshare.cn/frame/images//slogos_sprite8.png) no-repeat 0 -540px;">豆瓣网</a></div>
+ <div class="bsLogo" onmouseover="javascript:this.className='bsLogoSel'" onmouseout="javascript:this.className='bsLogo'"><a href="javascript:;" title="百度空间" onclick="javascript:bShare.share(event,'baiduhi');return false;" style="background:url(http://static.bshare.cn/frame/images//slogos_sprite8.png) no-repeat 0 -144px;">百度空间</a></div>
+ <div class="bsLogo" onmouseover="javascript:this.className='bsLogoSel'" onmouseout="javascript:this.className='bsLogo'"><a href="javascript:;" title="网易微博" onclick="javascript:bShare.share(event,'neteasemb');return false;" style="background:url(http://static.bshare.cn/frame/images//slogos_sprite8.png) no-repeat 0 -1332px;">网易微博</a></div>
+ <div class="bsLogo" onmouseover="javascript:this.className='bsLogoSel'" onmouseout="javascript:this.className='bsLogo'"><a href="javascript:;" title="电子邮件" onclick="javascript:bShare.share(event,'email');return false;" style="background:url(http://static.bshare.cn/frame/images//slogos_sprite8.png) no-repeat 0 -612px;">电子邮件</a></div>
+ <div class="bsLogo" onmouseover="javascript:this.className='bsLogoSel'" onmouseout="javascript:this.className='bsLogo'"><a href="javascript:;" title="Twitter" onclick="javascript:bShare.share(event,'twitter');return false;" style="background:url(http://static.bshare.cn/frame/images//slogos_sprite8.png) no-repeat 0 -1962px;">Twitter</a></div>
+ <div class="bsLogo" onmouseover="javascript:this.className='bsLogoSel'" onmouseout="javascript:this.className='bsLogo'"><a href="javascript:;" title="复制网址" onclick="javascript:bShare.share(event,'clipboard');return false;" style="background:url(http://static.bshare.cn/frame/images//slogos_sprite8.png) no-repeat 0 -378px;">复制网址</a></div>
+ </div>
+ <div class="bsClear"></div>
+ </div>
+ <div style="height:20px;line-height:20px;padding:0 8px;border-top:1px solid #e8e8e8;color:#666;background:#f2f2f2;">
+ <div class="buzzButton" style="float:left;">更多平台...
+ <font style="font-weight:normal;">(133)</font>
+ </div>
+ </div>
+ </div>
+ </div>
+</body>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/heise/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/heise/expected-images.json
new file mode 100644
index 000000000..07cba8ba0
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/heise/expected-images.json
@@ -0,0 +1,4 @@
+[
+ "http:\/\/www.heise.de\/imgs\/18\/1\/4\/6\/2\/3\/5\/1\/Barcode-Scanner-With-Border-f0c62350bd8d9d96.jpeg",
+ "http:\/\/3.f.ix.de\/scale\/geometry\/600\/q75\/imgs\/18\/1\/4\/6\/2\/3\/5\/1\/Barcode-Scanner-With-Border-fc08c913da5cea5d.jpeg"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/heise/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/heise/expected-metadata.json
new file mode 100644
index 000000000..bb8e4c47f
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/heise/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "Mac & i",
+ "Direction": null,
+ "Excerpt": "Das in der iOS-Version bereits enthaltene TOTP-Feature ist nun auch für OS X 10.10 verfügbar. Zudem gibt es neue Zusatzfelder in der Datenbank und weitere Verbesserungen.",
+ "Image": "http:\/\/www.heise.de\/imgs\/18\/1\/4\/6\/2\/3\/5\/1\/Barcode-Scanner-With-Border-f0c62350bd8d9d96.jpeg",
+ "Title": "1Password für Mac generiert Einmal-Passwörter",
+ "SiteName": "Mac & i"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/heise/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/heise/expected.html
new file mode 100644
index 000000000..95ab304b5
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/heise/expected.html
@@ -0,0 +1,20 @@
+<div>
+
+
+ <figure><img src="http://3.f.ix.de/scale/geometry/600/q75/imgs/18/1/4/6/2/3/5/1/Barcode-Scanner-With-Border-fc08c913da5cea5d.jpeg"></img><figcaption><p>1Password scannt auch QR-Codes.</p>
+
+
+ <p>(Bild: Hersteller)</p>
+
+ </figcaption></figure><p><strong>Das in der iOS-Version bereits enthaltene TOTP-Feature ist nun auch für OS X 10.10 verfügbar. Zudem gibt es neue Zusatzfelder in der Datenbank und weitere Verbesserungen.</strong></p>
+ <p><a href="https://itunes.apple.com/de/app/1password-password-manager/id443987910" rel="external" target="_blank">AgileBits hat Version 5.3 seines bekannten Passwortmanagers 1Password für OS X freigegeben.</a> Mit dem Update wird eine praktische Funktion nachgereicht, die <a href="http://fakehost/mac-and-i/meldung/Passwortmanager-1Password-mit-groesseren-Updates-fuer-OS-X-und-iOS-2529204.html">die iOS-Version der Anwendung bereits seit längerem beherrscht</a>: Das direkte Erstellen von Einmal-Passwörtern. Unterstützt wird dabei der <a href="https://blog.agilebits.com/2015/01/26/totp-for-1password-users/" rel="external" target="_blank">TOTP-Standard</a> (Time-Based One-Time Passwords), den unter anderem Firmen wie Evernote, Dropbox oder Google einsetzen, um ihre Zugänge besser abzusichern. Neben Account und regulärem Passwort wird dabei dann ein Zusatzcode verlangt, der nur kurze Zeit gilt.</p>
+<p>Zur TOTP-Nutzung muss zunächst ein Startwert an 1Password übergeben werden. Das geht unter anderem per QR-Code, den die App über ein neues Scanfenster selbst einlesen kann – etwa aus dem Webbrowser. Eine Einführung in die Technik gibt <a href="http://1pw.ca/TOTPvideoMac" rel="external" target="_blank">ein kurzes Video</a>. Die TOTP-Unterstützung in 1Password erlaubt es, auf ein zusätzliches Gerät (z.B. ein iPhone) neben dem Mac zu verzichten, das den Code liefert – was allerdings auch die Sicherheit verringert, weil es keinen "echten" zweiten Faktor mehr gibt.</p>
+<p>Update 5.3 des Passwortmanagers liefert auch noch weitere Verbesserungen. So gibt es die Möglichkeit, FaceTime-Audio- oder Skype-Anrufe aus 1Password zu starten, die Zahl der Zusatzfelder in der Datenbank wurde erweitert und der Umgang mit unterschiedlichen Zeitzonen klappt besser. Die Engine zur Passworteingabe im Browser soll beschleunigt worden sein.</p>
+<p>1Password kostet aktuell knapp 50 Euro im Mac App Store und setzt in seiner aktuellen Version mindestens OS X 10.10 voraus.
+
+
+
+<span>(<a href="mailto:[email protected]" title="Ben Schwan">bsc</a>)</span>
+<br></br></p>
+
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/heise/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/heise/source.html
new file mode 100644
index 000000000..5ac581f07
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/heise/source.html
@@ -0,0 +1,887 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" lang="de"><head>
+ <title>1Password für Mac generiert Einmal-Passwörter | Mac &amp; i</title>
+
+
+
+
+
+
+<meta charset="utf-8" />
+<meta content="Heise Medien" name="publisher" />
+<meta content="width=1175" name="viewport" />
+<link id="mobil_variante" href="//m.heise.de/meldung/1Password-fuer-Mac-generiert-Einmal-Passwoerter-2596987.html" media="only screen and (max-width: 640px)" rel="alternate" />
+
+ <link href="/mac-and-i/meldung/HBO-Zugriff-per-Apple-Geraet-verfuegbar-2596982.html" title="Vorige Meldung" rel="prev" /> <link href="/mac-and-i/meldung/GPS-Streckenerfasser-Speed-PRO-aktuell-kostenlos-2597093.html" title="Naechste Meldung" rel="next" /><link href="/mac-and-i/" title="Startseite" type="text/html" rel="home" />
+<link href="/mac-and-i/impressum.html" title="Copyright" rel="copyright" /> <meta content="2015-04-08T12:46:00" name="date" />
+ <meta content="1Password, Mac OS X, Passwort, Passwortmanager, Sicherheit, TOTP" name="keywords" />
+ <meta content="News" name="topic" />
+ <meta content="Das in der iOS-Version bereits enthaltene TOTP-Feature ist nun auch für OS X 10.10 verfügbar. Zudem gibt es neue Zusatzfelder in der Datenbank und weitere Verbesserungen." name="description" />
+ <meta content="1Password für Mac generiert Einmal-Passwörter" name="fulltitle" />
+ <meta content="1Password für Mac generiert Einmal-Passwörter" name="DC.title" />
+ <meta content="Das in der iOS-Version bereits enthaltene TOTP-Feature ist nun auch für OS X 10.10 verfügbar. Zudem gibt es neue Zusatzfelder in der Datenbank und weitere Verbesserungen." name="DC.description" />
+ <meta scheme="DCTERMS.URI" content="http://heise.de/-2596987" name="DC.identifier" />
+ <meta content="" name="kill_switch" /> <!--googleoff: all-->
+ <meta content="1Password für Mac generiert Einmal-Passwörter" property="og:title" />
+ <meta content="website" property="og:type" />
+ <meta content="de_DE" property="og:locale" />
+ <meta content="http://www.heise.de/mac-and-i/meldung/1Password-fuer-Mac-generiert-Einmal-Passwoerter-2596987.html" property="og:url" />
+ <meta content="Mac &amp; i" property="og:site_name" />
+ <meta content="http://www.heise.de/imgs/18/1/4/6/2/3/5/1/Barcode-Scanner-With-Border-f0c62350bd8d9d96.jpeg" property="og:image" />
+ <meta content="Das in der iOS-Version bereits enthaltene TOTP-Feature ist nun auch für OS X 10.10 verfügbar. Zudem gibt es neue Zusatzfelder in der Datenbank und weitere Verbesserungen." property="og:description" />
+
+ <!--googleon: all--><!--googleoff: all-->
+<meta content="InterRed V15.4.1, http://www.interred.de/, InterRed GmbH" name="generator" />
+<!--googleon: all-->
+
+
+
+
+
+
+
+
+
+<script src="//cdn.optimizely.com/js/2310910166.js"></script>
+
+
+
+<script src="/js/jquery/jquery-1.7.1.min.js" type="text/javascript"></script>
+
+
+
+<script src="/js/plugins/jquery-ui-1.8.18_cycle.custom.min.js" type="text/javascript"></script>
+
+
+
+
+<script src="/js/plugins/jquery.equalheights.min.js" type="text/javascript"></script>
+
+
+<script src="/support/lib/teaser_linking.js" type="text/javascript"></script>
+
+<script src="/js/ho/link_inline_images.min.js" type="text/javascript"></script>
+
+
+
+<script src="//script.ioam.de/iam.js" type="text/javascript"></script>
+
+
+<script src="//ad.yieldlab.net/yp/66424,66430,66442,66444,66446?ts=20150409195044" type="text/javascript"></script>
+
+
+
+
+
+
+
+<link type="text/css" rel="stylesheet" href="/stil/standard2008.css?383ad47c92d5add95b5f" />
+<link media="print" type="text/css" rel="stylesheet" href="/stil/drucken.css?fead9096de1c0d0ca94e" />
+
+<link type="text/css" rel="stylesheet" href="/stil/heise.css?65bb0f586a7f0285f4fc" />
+
+
+ <!--googleoff: all-->
+ <link rel="shortcut icon" href="/favicon_mac-and-i.ico" />
+ <link href="mailto:redaktion%40mac%2Dand%2Di.de" title="Kontakt" rel="author" />
+ <link href="http://www.heise.de/mac-and-i/suche/" title="Suche" rel="search" />
+ <link type="application/atom+xml" href="http://www.heise.de/mac-and-i/news-atom.xml" title="Aktuelle News von Mac &amp; i" rel="alternate" />
+ <link type="application/rss+xml" href="http://www.heise.de/mac-and-i/news.rdf" title="Aktuelle News von Mac &amp; i (für ältere RSS-Reader)" rel="alternate" />
+ <link href="/mac-and-i/icons/apple-touch-icon-57x57-precomposed.png" rel="apple-touch-icon-precomposed" />
+ <link href="/mac-and-i/icons/apple-touch-icon-114x114-precomposed.png" sizes="114x114" rel="apple-touch-icon-precomposed" />
+ <link href="/mac-and-i/icons/apple-touch-icon-72x72-precomposed.png" sizes="72x72" rel="apple-touch-icon-precomposed" />
+ <meta content="Magazin rund um Apple" name="application-name" />
+ <meta content="Mac &amp; i" name="msapplication-tooltip" />
+ <meta content="/mac-and-i/" name="msapplication-starturl" />
+ <meta content="#666666" name="msapplication-TileColor" />
+ <meta content="/mac-and-i/icons/windows_tiny.png" name="msapplication-square70x70logo" />
+ <meta content="/mac-and-i/icons/windows_square.png" name="msapplication-square150x150logo" />
+ <meta content="/mac-and-i/icons/windows_wide.png" name="msapplication-wide310x150logo" />
+ <meta content="/mac-and-i/icons/windows_large.png" name="msapplication-square310x310logo" />
+ <meta content="frequency=30;polling-uri=http://notifications.buildmypinnedsite.com/?feed=http://www.heise.de/mac-and-i/news-atom.xml&amp;id=1;polling-uri2=http://notifications.buildmypinnedsite.com/?feed=http://www.heise.de/mac-and-i/news-atom.xml&amp;id=2;polling-uri3=http://notifications.buildmypinnedsite.com/?feed=http://www.heise.de/mac-and-i/news-atom.xml&amp;id=3;polling-uri4=http://notifications.buildmypinnedsite.com/?feed=http://www.heise.de/mac-and-i/news-atom.xml&amp;id=4;polling-uri5=http://notifications.buildmypinnedsite.com/?feed=http://www.heise.de/mac-and-i/news-atom.xml&amp;id=5; cycle=1" name="msapplication-notification" />
+ <meta content="Mac &amp; i" name="DC.creator" />
+ <link type="text/css" rel="stylesheet" href="/stil/mac-and-i/mac2012.css?29c941bf0f8196521a1c" />
+ <link rel="publisher" href="https://plus.google.com/117217265406849882611" />
+ <script src="/support/lib/jquery/jquery.clearfield.js?ce79f657201b214e3560" type="text/javascript"></script>
+
+
+
+
+<style type="text/css"></style></head>
+
+<body class="apple">
+
+
+
+
+
+
+
+
+ <div class="heisetopnavi heisetopnavi_relaunch">
+ <div class="heisetopnavi_header">
+ <header role="banner">
+ <div class="heisetopnavi_login">
+ <script src="/js/ho/login.min.js" type="text/javascript"></script>
+ <div id="navi_login">
+ <p><span class="heise_foren">Heise-Foren:</span> <a href="https://www.heise.de/login?forward=http%3A%2F%2Fwww.heise.de%2Fmac-and-i%2Fmeldung%2F1Password-fuer-Mac-generiert-Einmal-Passwoerter-2596987.html">Einloggen</a> | <a href="https://www.heise.de/register?forward=http%3A%2F%2Fwww.heise.de%2Fmac-and-i%2Fmeldung%2F1Password-fuer-Mac-generiert-Einmal-Passwoerter-2596987.html">Registrieren</a></p>
+ </div>
+ </div>
+ <nav role="navigation">
+ <div class="heisetopnavi_hover_legacy">
+ <a title="heise online" class="heisetopnavi_logo" href="/index.html/from/navi_oben_ho">
+ <img width="200" height="44" id="heisetopnavi_ho_logo_top_img" alt="heise online" src="//www.heise.de/icons/ho/heise_online_logo_top.gif" />
+ </a>
+ <a aria-haspopup="true" class="heisetopnavi_button" href="#heisetopnavi_sub_container">Menü auf-/zuklappen</a>
+ <div id="heisetopnavi_sub_container">
+ <ul id="heisetopnavi_sub">
+ <li>
+ <ul>
+ <li class="heisetopnavi_ho"><a name="dachzeile.ho.ho" title="heise online – IT-News" href="/index.html/from/navi_oben_ho">News</a></li>
+ <li class="heisetopnavi_ct"><a name="dachzeile.ho.ct" title="c't – Magazin für Computertechnik" href="/ct/from/navi_oben_ct">c't</a></li>
+ <li class="heisetopnavi_ix"><a name="dachzeile.ho.ix" title="iX – Magazin für professionelle Informationstechnik" href="/ix/from/navi_oben_ix">iX</a></li>
+ <li class="heisetopnavi_tr"><a name="dachzeile.ho.tr" title="Technology Review – Das M.I.T.-Magazin für Innovation" href="/tr/from/navi_oben_tr">Technology Review</a></li>
+ <li class="heisetopnavi_mac"><a name="dachzeile.ho.mac-and-i" title="Mac &amp; i – Nachrichten, Tests, Tipps und Meinungen rund um Apple" href="/mac-and-i/from/navi_oben_mac">Mac &amp; i</a></li>
+ <li class="heisetopnavi_tp"><a name="dachzeile.ho.tp" title="Telepolis" href="/tp/from/navi_oben_tp">Telepolis</a></li>
+ <li class="heisetopnavi_hh"><a name="dachzeile.ho.make" title="Make – Kreativ mit Technik" href="/make/from/navi_oben_hh">Make</a></li>
+ <li class="heisetopnavi_df"><a name="dachzeile.ho.digitale-fotografie" title="Digitale Fotografie" href="/foto/special/from/navi_oben_df">Digitale Fotografie</a></li>
+ </ul>
+ </li>
+ <li>
+ <ul>
+ <li class="heisetopnavi_aut"><a name="dachzeile.ho.autos" title="heise Autos – News, Tests, Technik, Service rund ums Auto" href="/autos/from/navi_oben_aut">heise Autos</a></li>
+ <li class="heisetopnavi_dev"><a name="dachzeile.ho.developer" title="heise Developer – Informationen für Entwickler" href="/developer/from/navi_oben_dev">heise Developer</a></li>
+ <li class="heisetopnavi_foto"><a name="dachzeile.ho.foto" title="heise Foto – Das Online-Magazin rund ums digitale Bild" href="/foto/from/navi_oben_foto">heise Foto</a></li>
+ <li class="heisetopnavi_net"><a name="dachzeile.ho.netze" title="heise Netze – Alles über Netzwerk-Technik" href="/netze/from/navi_oben_net">heise Netze</a></li>
+ <li class="heisetopnavi_op"><a name="dachzeile.ho.open" title="heise open – Open Source im Unternehmen" href="/open/from/navi_oben_op">heise Open Source</a></li>
+ <li class="heisetopnavi_sec"><a name="dachzeile.ho.security" title="heise Security – News, Dienste und Foren zum Thema Computer-Sicherheit" href="/security/from/navi_oben_sec">heise Security</a></li>
+ <li class="heisetopnavi_video"><a name="dachzeile.ho.video" title="heise Video – Clips zu Nachrichten und Artikeln" href="/video/from/navi_oben_video">heise Video</a></li>
+ <li class="heisetopnavi_tech"><a name="dachzeile.ho.techstage" title="TechStage – News, Tests &amp; Praxis zu Smartphones und Tablets mit Android, iOS, Windows Phone &amp; Co." href="/redirect-to/techstage/from/navi_oben_techstage">TechStage</a></li>
+ </ul>
+ </li>
+ <li class="heisetopnavi_third">
+ <ul>
+ <li class="heisetopnavi_swv"><a name="dachzeile.ho.download" title="Software-Verzeichnis – Software zum Download fuer Windows, Mac, Linux, iPhone, Symbian, Android" href="/download/from/navi_oben_swv">Download</a></li>
+ <li class="heisetopnavi_pvg"><a name="dachzeile.ho.preisvergleich" title="Preisvergleich – Günstige Preise, Meinungen und Bewertungen zu vielen Produkten" href="/preisvergleich/from/navi_oben_pvg">Preisvergleich</a></li>
+ <li class="heisetopnavi_job"><a name="dachzeile.ho.jobs" title="heise jobs – Jobbörse für qualifizierte Fach- und Führungskräfte aus der IT-Branche" href="/jobs/from/navi_oben_job">Stellenmarkt</a></li>
+ <li class="heisetopnavi_eve"><a name="dachzeile.ho.events" title="heise Events – Konferenzen, Seminare, Workshops" href="/events/from/navi_oben_eve">Veranstaltungen</a></li>
+ <li class="heisetopnavi_itm"><a name="dachzeile.ho.itmarkt" title="IT-Markt – Branchenverzeichnis der IT-Fachhändler" href="/itmarkt/from/navi_oben_itm">IT-Markt</a></li>
+ <li class="heisetopnavi_whi"><a name="dachzeile.ho.whitepapers" title="heise Whitepapers – Kostenloser Download aktueller Praxisbeispiele, Firmeninfos, Case Studies und Webcasts zu neuen Produkten, Strategien und Lösungen namhafter IT-Hersteller" href="/whitepapers/from/navi_oben_whi">Whitepapers</a></li>
+ <li class="heisetopnavi_webcasts"><a name="dachzeile.ho.webcasts" title="heise Webcasts – Kompakte Firmeninformationen zu komplexen IT-Sachverhalten" href="/redirect-to/webcasts/from/navi_oben_webcasts">Webcasts</a></li>
+ <li class="heisetopnavi_tarifr"><a name="dachzeile.ho.tarifrechner" title="Tarifrechner – DSL, Mobiles Internet, Handy, Telefon, Strom, Gas" href="/redirect-to/tarifrechner/from/navi_oben_tarifr">Tarifrechner</a></li>
+ </ul>
+ </li>
+ <li class="heisetopnavi_fourth">
+ <ul>
+ <li class="heisetopnavi_shop"><a name="dachzeile.ho.shop" title="heise shop – IT Fachzeitschriften, Bücher, CD/DVD/Blu-ray" href="/redirect-to/shop/from/navi_oben_shop">heise shop</a></li>
+ <li class="heisetopnavi_kio"><a name="dachzeile.ho.artikel-archiv" title="Artikel-Archiv – c't, iX, Technology Review, Digitale Fotografie, Mac &amp; i, Sonderhefte" href="/artikel-archiv/from/navi_oben_kio">Artikel-Archiv</a></li>
+ <li class="heisetopnavi_abo"><a name="dachzeile.ho.abo" title="Abo – c't, iX, Technology Review, Digitale Fotografie, Mac &amp; i" href="/redirect-to/abo/from/navi_oben_abo">Zeitschriften-Abo</a></li>
+ <li class="heisetopnavi_hmg"><a name="dachzeile.ho.hmg" title="Arbeiten bei heise – Aktuelle Stellenangebote der Heise Gruppe" href="/redirect-to/hmg/from/navi_oben_hmg">Arbeiten bei heise</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </nav>
+
+
+
+
+
+
+
+
+
+ <form role="search" id="heisetopnavi_search" action="/mac-and-i/suche/" method="get" accept-charset="utf-8">
+ <fieldset>
+ <input type="text" placeholder="in Mac &amp; i suchen" name="q" value="" class="search_text" /><input type="image" name="search_submit" class="search_submit" alt="Los" src="//www.heise.de/icons/ho/heise_online_lupe.gif" />
+ <input type="hidden" name="rm" value="search" class="search_hidden" />
+ </fieldset>
+ </form>
+ </header>
+ </div>
+ <div class="clear"></div>
+</div>
+
+<script type="text/javascript">
+if (typeof jQuery !== "undefined") {
+ jQuery(document).ready(function($) {
+ // Support Touch-Devices
+ if ('ontouchstart' in document) {
+ $('.heisetopnavi_relaunch').removeClass('no-touch');
+ }
+ $('.heisetopnavi_button').bind('touchstart', function(e) {
+ e.preventDefault();
+ if ($(e.target).is('a.heisetopnavi_button')) {
+ $(this).toggleClass('active');
+ $('.heisetopnavi header &gt; nav').toggleClass('hover');
+ }
+ });
+
+ $('.heisetopnavi_relaunch .heisetopnavi_button').click(function(e) {
+ e.preventDefault();
+ });
+
+ // Support Keyboard
+ $('.heisetopnavi_relaunch .heisetopnavi_button').keyup(function(e) {
+ if (e.which == 13 &amp;&amp; $(e.target).is('a.heisetopnavi_button')) {
+ $('.heisetopnavi_relaunch .heisetopnavi_button').toggleClass('active');
+ $('.heisetopnavi_relaunch header &gt; nav').toggleClass('hover');
+ }
+ });
+
+ /*
+ * Open/Close Menu with JavaScript for more Usability
+ */
+
+ $('.heisetopnavi_relaunch').removeClass('no-touch');
+
+ // Logo + Icon
+ $('.heisetopnavi_relaunch .heisetopnavi_hover_legacy').mouseenter(function() {
+ var timeout_id = window.setTimeout(function() {
+ $('.heisetopnavi_relaunch .heisetopnavi_button').addClass('active');
+ $('.heisetopnavi_relaunch nav').addClass('hover');
+ $('body').addClass('refreshDOM');
+ $('body').removeClass('refreshDOM');
+ }, 300);
+ $(this).data('timeout_id', timeout_id);
+ });
+ $('.heisetopnavi_relaunch .heisetopnavi_hover_legacy').mouseleave(function() {
+ var timeout_id = $(this).data('timeout_id');
+ window.clearTimeout(timeout_id);
+ timeout_id = window.setTimeout(function() {
+ $('.heisetopnavi_relaunch .heisetopnavi_button').removeClass('active');
+ $('.heisetopnavi_relaunch nav').removeClass('hover');
+ $('body').addClass('refreshDOM');
+ $('body').removeClass('refreshDOM');
+ }, 0);
+ $(this).data('timeout_id', timeout_id);
+ });
+ });
+
+ if (typeof heiseLogin != "undefined") {
+ heiseLogin.login_fill_navigation({});
+ }
+}
+</script>
+
+
+
+
+<div id="container">
+ <div id="container_content">
+ <div id="logo_bereich">
+ <a title="Mac &amp; i" href="/mac-and-i/"><img id="logo" alt="heise Mac &amp; i" src="//3.f.ix.de/mac-and-i/icons/heise_mac-and-i_logo.gif" /></a>
+ </div>
+ <ul class="navigation_news">
+ <li><a href="/mac-and-i/news/7_tage_news/">7-Tage-News</a></li>
+ <li><a href="/mac-and-i/news/archiv/">News-Archiv</a></li>
+ <li><a href="http://live.mac-and-i.de/#AllEvents">Liveticker</a></li>
+ <li><a href="/mac-and-i/news/foren/">News-Foren</a></li>
+ <li><a href="/mac-and-i/artikel/foren/">Artikel-Foren</a></li>
+ <li><a href="/newsletter/manage/mac-and-i">Newsletter</a></li>
+ <li><a href="/mac-and-i/kontakt/">Kontakt</a></li>
+ <li><a title="News RSS-Feed (Atom)" href="/mac-and-i/news-atom.xml">RSS</a></li>
+ </ul>
+ <ul id="navi_main">
+ <li id="first" class="aktiv"><a href="/mac-and-i/news/">News</a></li>
+ <li><a href="/mac-and-i/artikel/">Artikel</a></li>
+ <li><a href="/mac-and-i/forum/">Forum</a></li>
+ <li><a href="/mac-and-i/produkte/">Produkte</a></li>
+ <li><a href="/mac-and-i/heft/">Heft</a></li>
+ <li><a href="/mac-and-i/heftarchiv/">Archiv</a></li>
+ <li id="last"><a href="http://shop.heise.de/mac-and-i-abo/">Abo</a></li>
+ </ul>
+ <ul class="meta_navi">
+ <li><a rel="external" title="Mac &amp; i Twitter" href="http://twitter.com/#%21/mac_and_i"><img alt="Mac &amp; i Twitter" src="//1.f.ix.de/icons/ho/navi_icon_twitter_big.png" /></a></li>
+ <li><a rel="external" title="Mac &amp; i Facebook" href="http://www.facebook.com/ct.Mac.and.i"><img alt="Mac &amp; i Facebook" src="//3.f.ix.de/icons/ho/navi_icon_facebook_big.png" /></a></li>
+ <li><a target="_blank" title="Mac &amp; i Google+" rel="publisher" href="https://plus.google.com/+Mac-and-iDe"><img alt="Mac &amp; i Google+" src="//3.f.ix.de/icons/ho/navi_icon_google_big.png" /></a></li>
+ <li><a target="_blank" title="Mac &amp; i YouTube" rel="publisher" href="https://www.youtube.com/macandiVideo"><img alt="Mac &amp; i YouTube" src="//3.f.ix.de/icons/ho/navi_icon_youtube_black_big.png" /></a></li>
+ <li>
+ <dl class="apps">
+ <dt><img alt="Mac &amp; i Apps" src="//2.f.ix.de/mac-and-i/icons/navi_icon_apps.png" /></dt>
+ <dd><a rel="external" title="Mac &amp; i für das iPhone" href="http://itunes.apple.com/de/app/mac-i/id424199222?mt=8"><img alt="Mac &amp; i für das iPhone" src="//2.f.ix.de/icons/ho/navi_icon_mobi_mac.png" /></a></dd>
+ <dd><a rel="external" title="Mac &amp; i für das iPad" href="http://itunes.apple.com/de/app/mac-i/id424199222?mt=8"><img alt="Mac &amp; i für das iPad" src="//2.f.ix.de/icons/ho/navi_icon_ipad.png" /></a></dd>
+ </dl>
+ </li>
+ </ul>
+
+ <div id="breadcrumb">
+
+ <a title="Mac &amp; i" href="/mac-and-i/">Mac &amp; i</a>
+ <span class="bread_gt">&gt;</span>
+
+ <a title="News" href="/mac-and-i/news/">News</a>
+ <span class="bread_gt">&gt;</span>
+
+ <a title="2015" href="/mac-and-i/news/archiv/?jahr=2015">2015</a>
+ <span class="bread_gt">&gt;</span>
+
+ <a title="KW 15" href="/mac-and-i/news/archiv/?jahr=2015;woche=15">KW 15</a>
+ <span class="bread_gt">&gt;</span>
+
+ <span class="titel">1Password für Mac generiert Einmal-Passwörter</span>
+
+
+ </div>
+
+
+ <div id="mitte">
+ <div id="mitte_links">
+
+
+<div id="mitte_news">
+ <p class="news_navi"> <a href="/mac-and-i/meldung/HBO-Zugriff-per-Apple-Geraet-verfuegbar-2596982.html"><span class="rsaquo">«</span> Vorige</a> | <a href="/mac-and-i/meldung/GPS-Streckenerfasser-Speed-PRO-aktuell-kostenlos-2597093.html">Nächste <span class="rsaquo">»</span></a> </p> <article>
+ <p class="news_datum">08.04.2015 12:46</p>
+ <!--googleon: all-->
+ <!-- RSPEAK_START -->
+ <h1> 1Password für Mac generiert Einmal-Passwörter</h1>
+ <div class="meldung_wrapper">
+
+ <!-- RSPEAK_STOP -->
+ <figure class="aufmacherbild">
+ <img src="//3.f.ix.de/scale/geometry/600/q75/imgs/18/1/4/6/2/3/5/1/Barcode-Scanner-With-Border-fc08c913da5cea5d.jpeg" />
+
+ <figcaption>
+
+ <p class="caption">1Password scannt auch QR-Codes.</p>
+
+
+ <p class="source">(Bild: Hersteller)</p>
+
+ </figcaption>
+
+ </figure>
+ <!-- RSPEAK_START -->
+
+
+ <p class="meldung_anrisstext"><strong>Das in der iOS-Version bereits enthaltene TOTP-Feature ist nun auch für OS X 10.10 verfügbar. Zudem gibt es neue Zusatzfelder in der Datenbank und weitere Verbesserungen.</strong></p>
+ <p><a rel="external" target="_blank" href="https://itunes.apple.com/de/app/1password-password-manager/id443987910">AgileBits hat Version 5.3 seines bekannten Passwortmanagers 1Password für OS X freigegeben.</a> Mit dem Update wird eine praktische Funktion nachgereicht, die <a href="/mac-and-i/meldung/Passwortmanager-1Password-mit-groesseren-Updates-fuer-OS-X-und-iOS-2529204.html">die iOS-Version der Anwendung bereits seit längerem beherrscht</a>: Das direkte Erstellen von Einmal-Passwörtern. Unterstützt wird dabei der <a rel="external" target="_blank" href="https://blog.agilebits.com/2015/01/26/totp-for-1password-users/">TOTP-Standard</a> (Time-Based One-Time Passwords), den unter anderem Firmen wie Evernote, Dropbox oder Google einsetzen, um ihre Zugänge besser abzusichern. Neben Account und regulärem Passwort wird dabei dann ein Zusatzcode verlangt, der nur kurze Zeit gilt.</p>
+<p>Zur TOTP-Nutzung muss zunächst ein Startwert an 1Password übergeben werden. Das geht unter anderem per QR-Code, den die App über ein neues Scanfenster selbst einlesen kann – etwa aus dem Webbrowser. Eine Einführung in die Technik gibt <a rel="external" target="_blank" href="http://1pw.ca/TOTPvideoMac">ein kurzes Video</a>. Die TOTP-Unterstützung in 1Password erlaubt es, auf ein zusätzliches Gerät (z.B. ein iPhone) neben dem Mac zu verzichten, das den Code liefert – was allerdings auch die Sicherheit verringert, weil es keinen "echten" zweiten Faktor mehr gibt.</p>
+<p>Update 5.3 des Passwortmanagers liefert auch noch weitere Verbesserungen. So gibt es die Möglichkeit, FaceTime-Audio- oder Skype-Anrufe aus 1Password zu starten, die Zahl der Zusatzfelder in der Datenbank wurde erweitert und der Umgang mit unterschiedlichen Zeitzonen klappt besser. Die Engine zur Passworteingabe im Browser soll beschleunigt worden sein.</p>
+<p>1Password kostet aktuell knapp 50 Euro im Mac App Store und setzt in seiner aktuellen Version mindestens OS X 10.10 voraus.<!-- AUTHOR-DATA-MARKER-BEGIN -->
+
+
+<!-- RSPEAK_STOP -->
+<span class="ISI_IGNORE">(<a title="Ben Schwan" href="mailto:[email protected]">bsc</a>)</span>
+<br class="clear" />
+<!-- RSPEAK_START -->
+<!-- AUTHOR-DATA-MARKER-END -->
+</p>
+
+ </div>
+
+ <!-- RSPEAK_STOP -->
+ <!--googleoff: all-->
+
+ <footer class="article-footer"> <p class="news_navi"> <a href="/mac-and-i/meldung/HBO-Zugriff-per-Apple-Geraet-verfuegbar-2596982.html"><span class="rsaquo">«</span> Vorige</a> | <a href="/mac-and-i/meldung/GPS-Streckenerfasser-Speed-PRO-aktuell-kostenlos-2597093.html">Nächste <span class="rsaquo">»</span></a> </p>
+ <div class="link_forum_beitrag news">
+
+
+
+ <p>
+ <a href="http://www.heise.de/forum/Mac-i/News-Kommentare/1Password-fuer-Mac-generiert-Einmal-Passwoerter/forum-65645/comment/">
+ <b>
+
+ Kommentare lesen
+
+
+ (1 Beitrag)
+
+ </b>
+ </a>
+ </p>
+ </div>
+
+ <p class="themen_foren">
+
+ Forum zum Thema:
+
+ <a title="Zum Themenforum Software für Mac OS X" href="http://www.heise.de/forum/Mac-i/Themen-Hilfe/Software-fuer-Mac-OS-X/forum-12/comment/">
+
+ Software für Mac OS X
+
+ </a>
+ </p>
+ <div data-services="[&quot;facebook&quot;,&quot;twitter&quot;,&quot;googleplus&quot;,&quot;mail&quot;,&quot;info&quot;]" class="shariff clear" data-backend-url="/shariff-backend/"><ul class="theme-color orientation-horizontal"><li class="shariff-button facebook"><a href="https://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fwww.heise.de%2Fmac-and-i%2Fmeldung%2F1Password-fuer-Mac-generiert-Einmal-Passwoerter-2596987.html" rel="popup" title="Bei Facebook teilen"><span class="fa fa-facebook"></span><span class="share_text">teilen</span><span class="share_count">17</span></a></li><li class="shariff-button twitter"><a href="https://twitter.com/intent/tweet?text=1Password%20f%C3%BCr%20Mac%20generiert%20Einmal-Passw%C3%B6rter%20-%20Mac%20%26%20i&amp;url=http%3A%2F%2Fwww.heise.de%2Fmac-and-i%2Fmeldung%2F1Password-fuer-Mac-generiert-Einmal-Passwoerter-2596987.html" rel="popup" title="Bei Twitter teilen"><span class="fa fa-twitter"></span><span class="share_text">tweet</span><span class="share_count">0</span></a></li><li class="shariff-button googleplus"><a href="https://plus.google.com/share?url=http%3A%2F%2Fwww.heise.de%2Fmac-and-i%2Fmeldung%2F1Password-fuer-Mac-generiert-Einmal-Passwoerter-2596987.html" rel="popup" title="Bei Google+ teilen"><span class="fa fa-google-plus"></span><span class="share_text">+1</span><span class="share_count">2</span></a></li><li class="shariff-button mail"><a href="http://www.heise.de/mac-and-i/meldung/1Password-fuer-Mac-generiert-Einmal-Passwoerter-2596987.html?view=mail" target="_blank" title="Per E-Mail versenden"><span class="fa fa-envelope"></span><span class="share_text">mail</span></a></li><li class="shariff-button info"><a href="http://ct.de/-2467514" target="_blank" title="weitere Informationen"><span class="fa fa-info"></span><span class="share_text">Info</span></a></li></ul></div>
+ <p class="permalink">Permalink: <a href="http://heise.de/-2596987">http://heise.de/-2596987</a></p>
+
+ <p class="printversion">
+ <a rel="nofollow" href="/mac-and-i/meldung/1Password-fuer-Mac-generiert-Einmal-Passwoerter-2596987.html?view=print">Version zum Drucken</a>
+ </p>
+
+
+
+
+
+<div class="related_items">
+ <h4>Auch auf heise online:</h4>
+ <ul>
+
+ <li><a title="1Password verbessert iOS-8-Erweiterung" href="http://www.heise.de/mac-and-i/meldung/1Password-verbessert-iOS-8-Erweiterung-2587926.html/from/related">1Password verbessert iOS-8-Erweiterung</a></li>
+
+ <li><a title="Parallels-Mac-Bundle mit 1Password und Waltr" href="http://www.heise.de/mac-and-i/meldung/Parallels-Mac-Bundle-mit-1Password-und-Waltr-2572511.html/from/related">Parallels-Mac-Bundle mit 1Password und Waltr</a></li>
+
+ <li><a title="1Password 5 für Yosemite angepasst" href="http://www.heise.de/mac-and-i/meldung/1Password-5-fuer-Yosemite-angepasst-2428275.html/from/related">1Password 5 für Yosemite angepasst</a></li>
+
+ <li><a title="1Password für iOS bringt iTunes-Synchronisation zurück – teilweise" href="http://www.heise.de/mac-and-i/meldung/1Password-fuer-iOS-bringt-iTunes-Synchronisation-zurueck-teilweise-2213740.html/from/related">1Password für iOS bringt iTunes-Synchronisation zurück – teilweise</a></li>
+
+ <li><a title="1Password mit Heartbleed-Warnfunktion" href="http://www.heise.de/mac-and-i/meldung/1Password-mit-Heartbleed-Warnfunktion-2183120.html/from/related">1Password mit Heartbleed-Warnfunktion</a></li>
+
+ <li><a title="1Password mit Updates für OS X und iOS" href="http://www.heise.de/mac-and-i/meldung/1Password-mit-Updates-fuer-OS-X-und-iOS-2143961.html/from/related">1Password mit Updates für OS X und iOS</a></li>
+
+ </ul>
+</div>
+
+
+
+<p class="themenseiten">
+ <span class="themen_label">Mehr zum Thema</span>
+
+ <a title="Themenseite Mac OS X" href="/thema/Mac-OS-X">Mac OS X</a>
+
+ <a title="Themenseite Passwort" href="/thema/Passwort">Passwort</a>
+
+</p>
+
+
+
+
+
+ </footer>
+ </article>
+
+</div>
+
+ <div class="adbottom"><!--googleoff: index-->
+<!-- RSPEAK_STOP -->
+<a class="hinweis_anzeige" target="_blank" href="http://www.heise.de/mediadaten/online/">Anzeige</a><br /><script type="text/javascript">
+&lt;!--//--&gt;&lt;![CDATA[//&gt;&lt;!--
+var dfp_ord; if (!dfp_ord) { dfp_ord = Math.floor(Math.random()*1000000000)+1000000000; }
+var yp_res; if (typeof yl !== "undefined" &amp;&amp; yl.YpResult !== "undefined") { yp_res = yl.YpResult.get(''); }
+document.write('&lt;script src="http://ad-emea.doubleclick.net/N6514/adj/mac/mac-inhalt;sz=500x500;kw=1Password,Mac%20OS%20X,Passwort,Passwortmanager,Sicherheit,TOTP;tile=1;_YL_;ord=_ORD_?" type="text/javascript"&gt;&lt;\/script&gt;'.replace('_ORD_', dfp_ord).replace(';_YL_', typeof yp_res !== "undefined" &amp;&amp; yp_res.pricerange ? ';pricerange=' + yp_res.pricerange : ''));
+if (typeof jQuery != 'undefined') {
+ jQuery( function() {
+ jQuery('.adbottom div[id^=google_ads_div_]').parent().prepend('&lt;span style="font-family: Arial, Helvetica, sans-serif; color: Black; font-size:7pt; font-weight: normal; text-align: left;"&gt;Anzeige&lt;/span&gt;&lt;br/&gt;');
+ });
+}
+
+//--&gt;&lt;!]]&gt;
+</script><script type="text/javascript" src="http://ad-emea.doubleclick.net/N6514/adj/mac/mac-inhalt;sz=500x500;kw=1Password,Mac%20OS%20X,Passwort,Passwortmanager,Sicherheit,TOTP;tile=1;ord=1875073260?"></script>
+<noscript>&lt;div&gt;&lt;a href="http://ad-emea.doubleclick.net/N6514/jump/mac/mac-inhalt;sz=500x500;kw=1Password,Mac%20OS%20X,Passwort,Passwortmanager,Sicherheit,TOTP;tile=1;_YL_;ord=7840756744?" target="_blank"&gt;&lt;img alt="" src="http://ad-emea.doubleclick.net/N6514/ad/mac/mac-inhalt;sz=500x500;kw=1Password,Mac%20OS%20X,Passwort,Passwortmanager,Sicherheit,TOTP;tile=1;_YL_;ord=7840756744?" /&gt;&lt;/a&gt;&lt;/div&gt;</noscript>
+
+<!-- RSPEAK_START -->
+<!--googleon: index--><!--googleoff: all--></div>
+ </div>
+ <div id="mitte_rechts">
+ <!--googleoff: index-->
+<!-- RSPEAK_STOP -->
+<div class="bcadv ISI_IGNORE bcadv_oben"><a class="hinweis_anzeige" target="_blank" href="http://www.heise.de/mediadaten/online/">Anzeige</a><br /><script type="text/javascript">
+&lt;!--//--&gt;&lt;![CDATA[//&gt;&lt;!--
+var dfp_ord; if (!dfp_ord) { dfp_ord = Math.floor(Math.random()*1000000000)+1000000000; }
+var yp_res; if (typeof yl !== "undefined" &amp;&amp; yl.YpResult !== "undefined") { yp_res = yl.YpResult.get('66442'); }
+document.write('&lt;script src="http://ad-emea.doubleclick.net/N6514/adj/mac/mac-inhalt;sz=300x250,336x280;kw=1Password,Mac%20OS%20X,Passwort,Passwortmanager,Sicherheit,TOTP;tile=2;_YL_;ord=_ORD_?" type="text/javascript"&gt;&lt;\/script&gt;'.replace('_ORD_', dfp_ord).replace(';_YL_', typeof yp_res !== "undefined" &amp;&amp; yp_res.pricerange ? ';pricerange=' + yp_res.pricerange : ''));
+//--&gt;&lt;!]]&gt;
+</script><script type="text/javascript" src="http://ad-emea.doubleclick.net/N6514/adj/mac/mac-inhalt;sz=300x250,336x280;kw=1Password,Mac%20OS%20X,Passwort,Passwortmanager,Sicherheit,TOTP;tile=2;ord=1875073260?"></script>
+<noscript>&lt;div&gt;&lt;a href="http://ad-emea.doubleclick.net/N6514/jump/mac/mac-inhalt;sz=300x250,336x280;kw=1Password,Mac%20OS%20X,Passwort,Passwortmanager,Sicherheit,TOTP;tile=2;_YL_;ord=7840756744?" target="_blank"&gt;&lt;img alt="" src="http://ad-emea.doubleclick.net/N6514/ad/mac/mac-inhalt;sz=300x250,336x280;kw=1Password,Mac%20OS%20X,Passwort,Passwortmanager,Sicherheit,TOTP;tile=2;_YL_;ord=7840756744?" /&gt;&lt;/a&gt;&lt;/div&gt;</noscript>
+</div>
+<!-- RSPEAK_START -->
+<!--googleon: index--><!-- RSPEAK_STOP -->
+ <!--googleoff: all-->
+
+
+ <div class="magazinteaser">
+ <a href="/mac-and-i/heft/">
+ <img width="127" height="180" alt="" src="//1.f.ix.de/mac-and-i/imgs/65/1/3/7/0/9/3/7/mac-2015-02-92ccee0374aa9def.jpeg" />
+ <h3>Heft 2/2015</h3>
+ <p>Billig kontra Apple • Zaubern mit Skripten • HomeKit • Datenrettung • iPad automatisieren • Standort freigeben • Verräterische Daten • Kameras fernsteuern • MacBooks • Bluetooth-Kopfhörer • iPhone-6-Hüllen • Ableton-Live-Apps • Kommt das Apple-Auto?</p>
+ </a>
+ <ul>
+ <li class="first"><a href="/mac-and-i/heft/">Aktuelles Heft</a></li>
+ <li><a target="_blank" href="http://shop.heise.de/mac-and-i-abo/">Abonnieren</a></li>
+ <li><a href="/mac-and-i/heftarchiv/">Heftarchiv</a></li>
+ </ul>
+ </div>
+
+
+
+
+
+ <form id="webcode" method="get" action="/bin/softlink">
+ <div class="ident">Webcode:</div> <div class="url">www.mac-and-i.de/</div>
+ <fieldset>
+ <input type="text" id="webcode_input" class="textfield" required="required" placeholder="mi1101003" size="9" name="ctid" />
+ <input type="submit" class="submit" value="enter" />
+ <input type="hidden" name="objekt" value="mi" />
+ </fieldset>
+ </form>
+
+
+
+
+
+<div class="teaser_frei">
+ <div class="anriss_mit_bild_links"> <h3><a href="http://shop.heise.de/ct-mac-special-2014?pid=5001002207">c't special Mac</a></h3> <a href="http://shop.heise.de/ct-mac-special-2014?pid=5001002207"><img alt="" src="//1.f.ix.de/mac-and-i/imgs/65/1/3/8/3/2/3/7/Titel-97485b58f23ceb92.png" /></a> <p><a href="http://shop.heise.de/ct-mac-special-2014?pid=5001002207"><a href="http://shop.heise.de/ct-mac-special-2014?pid=5001002207">
+ Mac: Der bessere PC • Kaufberatung: Alle Macs im Vergleich • Umsteigen von Windows • 150 Seiten Praxistipps zu OS X und Anwendungen • Mac schneller machen • Erste Hilfe, wenns klemmt • Terminal <a href="http://shop.heise.de/ct-mac-special-2014?pid=5001002207"><a href="http://shop.heise.de/ct-mac-special-2014?pid=5001002207"><span class="mehr_schnipsel">Mehr…</span></a></a>
+ </a></a></p> </div>
+</div>
+
+
+
+
+
+ <script type="text/javascript">
+ $(document).ready( function() {
+ $('div#meistgelesen_tabbox').tabs();
+ });
+ </script>
+ <div id="meistgelesen_tabbox" class="ui-tabs ui-widget ui-widget-content ui-corner-all">
+ <ul id="meistgelesen_tabs" class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
+ <li class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active"><a href="#meistgelesen_tabs-1">Meistgelesen</a></li>
+ <li class="ui-state-default ui-corner-top"><a href="#meistgelesen_tabs-2">Meistkommentiert</a></li>
+ </ul>
+ <div id="meistgelesen_tabs-1" class="ui-tabs-panel ui-widget-content ui-corner-bottom">
+ <ul>
+ <li><a href="/mac-and-i/artikel/Pro-Contra-Hat-Apple-den-Bogen-ueberspannt-2580439.html">Pro &amp; Contra: Hat Apple den Bogen überspannt?</a></li>
+ <li><a href="/meldung/Fotos-und-mehr-Apple-stellt-OS-X-10-10-3-zum-Download-bereit-2597165.html">"Fotos" und mehr: Apple stellt OS X 10.10.3 zum Download bereit</a></li>
+ <li><a href="/meldung/iOS-8-3-verfuegbar-2597556.html">iOS 8.3 verfügbar</a></li>
+ <li><a href="/meldung/Apple-Watch-Erste-Testberichte-fallen-ordentlich-aus-2597244.html">Apple Watch: Erste Testberichte fallen ordentlich aus</a></li>
+ <li><a href="/meldung/LG-kuendigt-8K-iMac-an-und-wieder-ab-2596469.html">LG kündigt 8K-iMac an – und wieder ab</a></li>
+ </ul>
+ </div>
+ <div id="meistgelesen_tabs-2" class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide">
+ <ul>
+
+
+ <li>
+ <a href="/mac-and-i/meldung/Quadratischer-Monitor-fuer-das-Buero-Eizos-FlexScan-EV2730Q-2460773.html">
+ Quadratischer Monitor für das Büro: Eizos FlexScan EV2730Q
+ </a>
+ </li>
+
+ <li>
+ <a href="/mac-and-i/meldung/Umfangreiches-Firmware-Update-fuer-Amazon-Fire-TV-und-Fire-TV-Stick-2584775.html">
+ Umfangreiches Firmware-Update für Amazon Fire TV und Fire TV Stick
+ </a>
+ </li>
+
+ <li>
+ <a href="/mac-and-i/meldung/Jay-Z-verbuendet-sich-mit-anderen-Musikern-fuer-Streaming-Dienst-Tidal-2591043.html">
+ Jay Z verbündet sich mit anderen Musikern für Streaming-Dienst Tidal
+ </a>
+ </li>
+
+ <li>
+ <a href="/mac-and-i/meldung/Apple-Browser-Update-fuer-drei-Safari-Versionen-behebt-Sicherheitsluecken-2578006.html">
+ Apple-Browser: Update für drei Safari-Versionen behebt Sicherheitslücken
+ </a>
+ </li>
+
+ <li>
+ <a href="/mac-and-i/meldung/Safari-Alte-Sicherheitsluecke-speichert-URLs-auch-im-Private-Browsing-Modus-2575426.html">
+ Safari: Alte Sicherheitslücke speichert URLs auch im Private-Browsing-Modus
+ </a>
+ </li>
+
+
+
+ </ul>
+ </div>
+ </div>
+
+
+
+ <p class="us_ad">
+ <span><a target="_blank" href="/mediadaten/heise-online/">Anzeige</a></span><br />
+ <a target="_blank" href="http://pubads.g.doubleclick.net/gampad/clk?id=31532750&amp;iu=/6514/www.heise.de/clicktracking/usAd"><img width="336" height="200" alt="" src="//2.f.ix.de/mac-and-i/imgs/65/1/4/5/5/6/0/2/alto_heise_hp_tour_mpu__20150324-e4f5620ffc9f3323.jpg" /></a>
+ <script type="text/javascript">
+ &lt;!--//--&gt;&lt;![CDATA[//&gt;&lt;!--
+ (function (){
+ var AVW = '&lt;' + 'img id="avw_pixel_intern" src="/avw-bin/ivw/CP/barfoo/ho/2585134/0.gif?d=_ORD_" width="1" height="1" alt=""&gt;'.replace('_ORD_', Math.floor(Math.random()*1000000000)+1000000000);
+ document.write(AVW);
+ })();
+ //--&gt;&lt;!]]&gt;
+ </script><img width="1" height="1" alt="" src="/avw-bin/ivw/CP/barfoo/ho/2585134/0.gif?d=1029284408" id="avw_pixel_intern" />
+ <noscript>&lt;img id="avw_pixel_intern" src="/avw-bin/ivw/CP/barfoo/ho/2585134/0.gif" width="1" height="1" alt=""&gt;</noscript>
+ </p>
+
+
+ <div class="teaser_adliste">
+ <p><a target="_blank" href="/mediadaten/heise-online/">Anzeige</a></p>
+ <ul class="microsites">
+ <li><a target="_blank" rel="nofollow" href="http://pubads.g.doubleclick.net/gampad/clk?id=30995390&amp;iu=/6514/www.heise.de/clicktracking/textlink">Datenberge in Informationen verwandeln</a></li>
+ <li><a target="_blank" rel="nofollow" href="http://pubads.g.doubleclick.net/gampad/clk?id=31000430&amp;iu=/6514/www.heise.de/clicktracking/textlink">IT Angriffe proaktiv erkennen und abwehren</a></li>
+ <li><a target="_blank" rel="nofollow" href="http://pubads.g.doubleclick.net/gampad/clk?id=30944270&amp;iu=/6514/www.heise.de/clicktracking/textlink">Webcast Next Gen Enduser Protection</a></li>
+ <li><a target="_blank" rel="nofollow" href="http://pubads.g.doubleclick.net/gampad/clk?id=29918270&amp;iu=/6514/www.heise.de/clicktracking/textlink">Nerd-Shirts für Informatiker</a></li>
+ <li><a target="_blank" rel="nofollow" href="http://pubads.g.doubleclick.net/gampad/clk?id=31718150&amp;iu=/6514/www.heise.de/clicktracking/textlink">Der 3. IT-Jobtag bei Heise am 16. April</a></li>
+ <li><a target="_blank" rel="nofollow" href="http://pubads.g.doubleclick.net/gampad/clk?id=31588190&amp;iu=/6514/www.heise.de/clicktracking/textlink">Risiko Logfiles: Protokollieren Sie rechtssicher!</a></li>
+ <li><a target="_blank" rel="nofollow" href="http://pubads.g.doubleclick.net/gampad/clk?id=31533230&amp;iu=/6514/www.heise.de/clicktracking/textlink">Skype for Business macht Unternehmen produktiver</a></li>
+ <li><a target="_blank" rel="nofollow" href="http://pubads.g.doubleclick.net/gampad/clk?id=31069190&amp;iu=/6514/www.heise.de/clicktracking/textlink">kostenfreies IT-Event im Fußballstadion</a></li>
+ <li><a target="_blank" rel="nofollow" href="http://pubads.g.doubleclick.net/gampad/clk?id=31048910&amp;iu=/6514/www.heise.de/clicktracking/textlink">Ratgeber: Desktop-Virtualisierung kurz und knapp</a></li>
+ </ul>
+ </div>
+
+ <!--googleoff: all-->
+
+
+ <div class="newsteaser"> <h4><a href="/mac-and-i/news/">News</a></h4> <div class="anriss_mit_bild_links">
+ <h3><a title="Apple stopft Sicherheitslücken in iOS und mehreren OS-X-Versionen" href="/mac-and-i/meldung/Apple-stopft-Sicherheitsluecken-in-iOS-und-mehreren-OS-X-Versionen-2597723.html">Apple stopft Sicherheitslücken in iOS und mehreren OS-X-Versionen</a></h3>
+
+ <a href="/mac-and-i/meldung/Apple-stopft-Sicherheitsluecken-in-iOS-und-mehreren-OS-X-Versionen-2597723.html"><img alt="OS X Yosemite" src="//1.f.ix.de/scale/geometry/160x90/q75/imgs/18/1/4/6/2/8/0/3/urn-newsml-dpa-com-20090101-141017-99-01179_large_4_3-c0577d3c5419b335.jpeg" /></a>
+
+ <p><a href="/mac-and-i/meldung/Apple-stopft-Sicherheitsluecken-in-iOS-und-mehreren-OS-X-Versionen-2597723.html">Apple hat mit den Betriebssystem-Updates vom Mittwoch ein Bündel an Security-Fixes mitgeliefert. Sicherheitsaktualisierungen gibt es auch für OS X 10.8, 10.9 und Apple TV. <a href="/mac-and-i/meldung/Apple-stopft-Sicherheitsluecken-in-iOS-und-mehreren-OS-X-Versionen-2597723.html"><span class="mehr_schnipsel">Mehr…</span></a></a></p> </div>
+ <div class="anriss_mit_bild_links">
+ <h3><a title="Ex-HP-Chefin kritisiert Tim Cooks Kritik an Gesetz zur Religionsfreiheit" href="/mac-and-i/meldung/Ex-HP-Chefin-kritisiert-Tim-Cooks-Kritik-an-Gesetz-zur-Religionsfreiheit-2597091.html">Ex-HP-Chefin kritisiert Tim Cooks Kritik an Gesetz zur Religionsfreiheit</a></h3>
+
+ <a href="/mac-and-i/meldung/Ex-HP-Chefin-kritisiert-Tim-Cooks-Kritik-an-Gesetz-zur-Religionsfreiheit-2597091.html"><img alt="Ehemalige HP-Chefin kritisiert Tim Cooks Kritik an Gesetz zur Religionsfreiheit" src="//3.f.ix.de/scale/geometry/160x90/q75/imgs/18/1/4/6/2/4/2/4/1024px-Carly_Fiorina_by_Gage_Skidmore-e15691fffb93dd28.jpeg" /></a>
+
+ <p><a href="/mac-and-i/meldung/Ex-HP-Chefin-kritisiert-Tim-Cooks-Kritik-an-Gesetz-zur-Religionsfreiheit-2597091.html">Der Apple-Chef hatte sich gegen die Gesetzgebung eines US-Bundesstaates ausgesprochen, der die Diskriminierung von Schwulen und Lesben unter bestimmten Umständen erlauben soll. Carly Fiorina hält dies für "heuchlerisch". <a href="/mac-and-i/meldung/Ex-HP-Chefin-kritisiert-Tim-Cooks-Kritik-an-Gesetz-zur-Religionsfreiheit-2597091.html"><span class="mehr_schnipsel">Mehr…</span></a></a></p> </div>
+ <div class="anriss_mit_bild_links">
+ <h3><a title="Apple Watch: Bestellungen können offenbar dauern" href="/mac-and-i/meldung/Apple-Watch-Bestellungen-koennen-offenbar-dauern-2597741.html">Apple Watch: Bestellungen können offenbar dauern</a></h3>
+
+ <a href="/mac-and-i/meldung/Apple-Watch-Bestellungen-koennen-offenbar-dauern-2597741.html"><img alt="Apple Watch: Bestellungen können offenbar dauern" src="//2.f.ix.de/scale/geometry/160x90/q75/imgs/18/1/4/6/2/8/1/7/apple_watch_liefer1-ecb875926df4a41b.jpeg" /></a>
+
+ <p><a href="/mac-and-i/meldung/Apple-Watch-Bestellungen-koennen-offenbar-dauern-2597741.html">Im deutschen und im britischen Apple Online Store sind kurzzeitig Liefertermine für die Computeruhr aufgetaucht. Manche Modelle brauchen demnach bis zu sechs Wochen. <a href="/mac-and-i/meldung/Apple-Watch-Bestellungen-koennen-offenbar-dauern-2597741.html"><span class="mehr_schnipsel">Mehr…</span></a></a></p> </div>
+ <div class="anriss_mit_bild_links">
+ <h3><a title="Apple aktualisiert Xcode, OS X Server und Apple Configurator" href="/mac-and-i/meldung/Apple-aktualisiert-Xcode-OS-X-Server-und-Apple-Configurator-2597739.html">Apple aktualisiert Xcode, OS X Server und Apple Configurator</a></h3>
+
+ <a href="/mac-and-i/meldung/Apple-aktualisiert-Xcode-OS-X-Server-und-Apple-Configurator-2597739.html"><img alt="Apple aktualisiert Xcode, OS X Server und Apple Configurator" src="//3.f.ix.de/scale/geometry/160x90/q75/imgs/18/1/4/6/2/8/1/5/screen800x500-ed2bb768f9ab35c2.jpeg" /></a>
+
+ <p><a href="/mac-and-i/meldung/Apple-aktualisiert-Xcode-OS-X-Server-und-Apple-Configurator-2597739.html">Neben iOS 8.3 und OS X 10.10.3 hat der Hersteller auch drei weitere hauseigene Anwendungen auf den neuesten Stand gebracht. Xcode 6.3 bringt unter anderem Support für die neue Force-Touch-Technik und ein neues Swift. <a href="/mac-and-i/meldung/Apple-aktualisiert-Xcode-OS-X-Server-und-Apple-Configurator-2597739.html"><span class="mehr_schnipsel">Mehr…</span></a></a></p> </div>
+
+ </div>
+
+
+
+
+
+<div class="teaser_frei">
+ <div class="anriss_mit_bild_links"> <h3><a href="/meldung/Quiz-Wie-gut-kennen-Sie-Apple-2504501.html">Quiz: Wie gut kennen Sie Apple?</a></h3> <a href="/meldung/Quiz-Wie-gut-kennen-Sie-Apple-2504501.html"><img alt="Quiz: Wie gut kennen Sie Apple?" src="//3.f.ix.de/mac-and-i/imgs/65/1/4/1/5/1/2/2/Quiz-Frage-5b1e2e989f5a3cc9.png" /></a> <p><a href="/meldung/Quiz-Wie-gut-kennen-Sie-Apple-2504501.html"><a href="/meldung/Quiz-Wie-gut-kennen-Sie-Apple-2504501.html">
+ 12 Fragen rund um das Unternehmen und seine Produkte – einige davon dürften nur Fortgeschrittene knacken können. <a href="/meldung/Quiz-Wie-gut-kennen-Sie-Apple-2504501.html"><a href="/meldung/Quiz-Wie-gut-kennen-Sie-Apple-2504501.html"><span class="mehr_schnipsel">Mehr…</span></a></a>
+ </a></a></p> </div>
+</div>
+
+
+
+
+
+ <div class="artikelteaser"> <h4><a href="/mac-and-i/artikel/">Artikel </a></h4> <div class="anriss_mit_bild_links">
+ <h3><a title="Pro &amp; Contra: Hat Apple den Bogen überspannt?" href="/mac-and-i/artikel/Pro-Contra-Hat-Apple-den-Bogen-ueberspannt-2580439.html">Pro &amp; Contra: Hat Apple den Bogen überspannt?</a></h3>
+
+ <a href="/mac-and-i/artikel/Pro-Contra-Hat-Apple-den-Bogen-ueberspannt-2580439.html"><img alt="" src="//3.f.ix.de/scale/geometry/160x90/q75/mac-and-i/imgs/65/1/4/5/2/5/6/5/Screen_Shot-4a5e2819f374a051.jpeg" /></a>
+ <p><a href="/mac-and-i/artikel/Pro-Contra-Hat-Apple-den-Bogen-ueberspannt-2580439.html">Beim neuen MacBook 12" gibt es außer der Kopfhörerbuchse nur eine Schnittstelle: USB Typ C. Darüber scheiden sich wieder mal die Geister. <a href="/mac-and-i/artikel/Pro-Contra-Hat-Apple-den-Bogen-ueberspannt-2580439.html"><span class="mehr_schnipsel">Mehr…</span></a></a></p> </div> <div class="anriss_mit_bild_links">
+ <h3><a title="Praxistipp: Größere SSD im MacBook Air 2011" href="/mac-and-i/artikel/Praxistipp-Groessere-SSD-im-MacBook-Air-2011-2560061.html">Praxistipp: Größere SSD im MacBook Air 2011</a></h3>
+
+ <a href="/mac-and-i/artikel/Praxistipp-Groessere-SSD-im-MacBook-Air-2011-2560061.html"><img alt="" src="//1.f.ix.de/scale/geometry/160x90/q75/mac-and-i/imgs/65/1/4/4/0/1/2/3/MacBook-mit-SSD-breit-d974d1a97ebb442b.png" /></a>
+ <p><a href="/mac-and-i/artikel/Praxistipp-Groessere-SSD-im-MacBook-Air-2011-2560061.html">Wenn das MacBook an seine Grenzen stößt, brauchen Sie nicht unbedingt ein neues: Ersatz-SSDs gibt es ab 170 Euro, der Umbau ist auch für Laien zu schaffen und in wenigen Minuten erledigt. <a href="/mac-and-i/artikel/Praxistipp-Groessere-SSD-im-MacBook-Air-2011-2560061.html"><span class="mehr_schnipsel">Mehr…</span></a></a></p> </div> <div class="anriss_mit_bild_links">
+ <h3><a title="Pro &amp; Contra: Ist Apple zu streng?" href="/mac-and-i/artikel/Pro-Contra-Ist-Apple-zu-streng-2530140.html">Pro &amp; Contra: Ist Apple zu streng?</a></h3>
+
+ <a href="/mac-and-i/artikel/Pro-Contra-Ist-Apple-zu-streng-2530140.html"><img width="71" height="100" title="" alt="" src="//2.f.ix.de/mac-and-i/imgs/65/1/4/2/2/6/3/4/Voransicht-8552184f61c1fab3.jpeg" /></a>
+ <p><a href="/mac-and-i/artikel/Pro-Contra-Ist-Apple-zu-streng-2530140.html">Das Prüferteam im iOS-App-Store lehnt immer häufiger ganze Apps ab oder verlangt eine Beschneidung der Funktionen. Ist das richtig so? <a href="/mac-and-i/artikel/Pro-Contra-Ist-Apple-zu-streng-2530140.html"><span class="mehr_schnipsel">Mehr…</span></a></a></p> </div> <div class="anriss_mit_bild_links">
+ <h3><a title="Die besseren Mac minis" href="/mac-and-i/artikel/Die-besseren-Mac-minis-2445333.html">Die besseren Mac minis</a></h3>
+
+ <a href="/mac-and-i/artikel/Die-besseren-Mac-minis-2445333.html"><img alt="" src="//3.f.ix.de/scale/geometry/160x90/q75/mac-and-i/imgs/65/1/3/7/4/7/9/6/MacMiniDiagonal-ddc35b43efc0f9d5-f08e367febe26a99.jpeg" /></a>
+ <p><a href="/mac-and-i/artikel/Die-besseren-Mac-minis-2445333.html">Nachdem wir den günstigsten Mac mini mit 1,4 GHz bereits in Mac &amp; i Heft 6/2014 vorstellen konnten, reichen wir nun – wie versprochen – einen Test der beiden besseren Konfigurationen nach. <a href="/mac-and-i/artikel/Die-besseren-Mac-minis-2445333.html"><span class="mehr_schnipsel">Mehr…</span></a></a></p> </div> </div>
+
+
+
+
+
+
+
+
+
+
+<div class="teaser_frei">
+ <div class="anriss_mit_bild_links"> <h3><a href="/meldung/In-eigener-Sache-Mac-i-im-Digitalabo-2137456.html">In eigener Sache: Mac &amp; i im Digitalabo</a></h3> <a href="/meldung/In-eigener-Sache-Mac-i-im-Digitalabo-2137456.html"><img alt="In eigener Sache: Mac &amp;amp; i im Digitalabo" src="//2.f.ix.de/mac-and-i/imgs/65/1/1/8/9/2/5/6/14_auf_iPad_Air-32d65b8788224ed5.png" /></a> <p><a href="/meldung/In-eigener-Sache-Mac-i-im-Digitalabo-2137456.html"><a href="/meldung/In-eigener-Sache-Mac-i-im-Digitalabo-2137456.html">
+ Heise Medien bietet Lesern, die kein gedrucktes Heft mehr wollen, nun auch ein vergünstigtes Digitalabo von Mac &amp; i für das iPad an. <a href="/meldung/In-eigener-Sache-Mac-i-im-Digitalabo-2137456.html"><a href="/meldung/In-eigener-Sache-Mac-i-im-Digitalabo-2137456.html"><span class="mehr_schnipsel">Mehr…</span></a></a>
+ </a></a></p> </div>
+</div>
+
+
+
+
+
+
+
+
+ </div>
+ </div>
+ </div>
+ <div id="bannerzone">
+ <div class="leaderboard"><script type="text/javascript">
+&lt;!--//--&gt;&lt;![CDATA[//&gt;&lt;!--
+var dfp_ord; if (!dfp_ord) { dfp_ord = Math.floor(Math.random()*1000000000)+1000000000; }
+var yp_res; if (typeof yl !== "undefined" &amp;&amp; yl.YpResult !== "undefined") { yp_res = yl.YpResult.get('66444'); }
+var rb = false; document.write('&lt;script src="http://ad-emea.doubleclick.net/N6514/adj/mac/mac-inhalt;sz=728x90,468x60;kw=1Password,Mac%20OS%20X,Passwort,Passwortmanager,Sicherheit,TOTP;tile=3;_YL_;ord=_ORD_?" type="text/javascript"&gt;&lt;\/script&gt;'.replace('_ORD_', dfp_ord).replace(';_YL_', typeof yp_res !== "undefined" &amp;&amp; yp_res.pricerange ? ';pricerange=' + yp_res.pricerange : ''));
+//--&gt;&lt;!]]&gt;
+</script><script type="text/javascript" src="http://ad-emea.doubleclick.net/N6514/adj/mac/mac-inhalt;sz=728x90,468x60;kw=1Password,Mac%20OS%20X,Passwort,Passwortmanager,Sicherheit,TOTP;tile=3;ord=1875073260?"></script>
+<noscript>&lt;div&gt;&lt;a href="http://ad-emea.doubleclick.net/N6514/jump/mac/mac-inhalt;sz=728x90,468x60;kw=1Password,Mac%20OS%20X,Passwort,Passwortmanager,Sicherheit,TOTP;tile=3;_YL_;ord=7840756744?" target="_blank"&gt;&lt;img alt="" src="http://ad-emea.doubleclick.net/N6514/ad/mac/mac-inhalt;sz=728x90,468x60;kw=1Password,Mac%20OS%20X,Passwort,Passwortmanager,Sicherheit,TOTP;tile=3;_YL_;ord=7840756744?" /&gt;&lt;/a&gt;&lt;/div&gt;</noscript>
+</div>
+ <div class="heiseadvert"></div>
+ <div class="skyscraper"><script type="text/javascript">
+&lt;!--//--&gt;&lt;![CDATA[//&gt;&lt;!--
+var dfp_ord; if (!dfp_ord) { dfp_ord = Math.floor(Math.random()*1000000000)+1000000000; }
+var yp_res; if (typeof yl !== "undefined" &amp;&amp; yl.YpResult !== "undefined") { yp_res = yl.YpResult.get('66424'); }
+if (typeof rb != "undefined" &amp;&amp; rb != true) document.write('&lt;script src="http://ad-emea.doubleclick.net/N6514/adj/mac/mac-inhalt;sz=120x600,120x800,160x600,160x800;kw=1Password,Mac%20OS%20X,Passwort,Passwortmanager,Sicherheit,TOTP;tile=4;_YL_;ord=_ORD_?" type="text/javascript"&gt;&lt;\/script&gt;'.replace('_ORD_', dfp_ord).replace(';_YL_', typeof yp_res !== "undefined" &amp;&amp; yp_res.pricerange ? ';pricerange=' + yp_res.pricerange : ''));
+//--&gt;&lt;!]]&gt;
+</script><script type="text/javascript" src="http://ad-emea.doubleclick.net/N6514/adj/mac/mac-inhalt;sz=120x600,120x800,160x600,160x800;kw=1Password,Mac%20OS%20X,Passwort,Passwortmanager,Sicherheit,TOTP;tile=4;ord=1875073260?"></script>
+<noscript>&lt;div&gt;&lt;a href="http://ad-emea.doubleclick.net/N6514/jump/mac/mac-inhalt;sz=120x600,120x800,160x600,160x800;kw=1Password,Mac%20OS%20X,Passwort,Passwortmanager,Sicherheit,TOTP;tile=4;_YL_;ord=7840756744?" target="_blank"&gt;&lt;img alt="" src="http://ad-emea.doubleclick.net/N6514/ad/mac/mac-inhalt;sz=120x600,120x800,160x600,160x800;kw=1Password,Mac%20OS%20X,Passwort,Passwortmanager,Sicherheit,TOTP;tile=4;_YL_;ord=7840756744?" /&gt;&lt;/a&gt;&lt;/div&gt;</noscript>
+</div>
+ </div>
+</div>
+
+
+
+
+<div style="display: inline;"><img width="1" height="1" alt="" src="/ivw-bin/ivw/CP/mac-and-i/meldung/1Password-fuer-Mac-generiert-Einmal-Passwoerter-2596987.html?url=%2Fmac-and-i%2Fmeldung%2F1Password-fuer-Mac-generiert-Einmal-Passwoerter-2596987.html" id="ivw_pixel_intern" /></div>
+
+
+
+
+ <script type="text/javascript">
+ var iam_data = {
+ "st":"heise",
+ "cp":"mac",
+ "sv":"in",
+ "co":"%2Fmac-and-i%2Fmeldung%2F1Password-fuer-Mac-generiert-Einmal-Passwoerter-2596987.html"
+ }
+ iom.c(iam_data);
+ </script><script src="http://de.ioam.de/tx.io?st=heise&amp;cp=mac&amp;sv=in&amp;co=%252Fmac-and-i%252Fmeldung%252F1Password-fuer-Mac-generiert-Einmal-Passwoerter-2596987.html&amp;pt=CP&amp;rf=&amp;r2=&amp;ur=www.heise.de&amp;xy=1440x900x24&amp;lo=GB%2FBirmingham&amp;cb=0002&amp;vr=307&amp;id=q4s141&amp;lt=1428601857876&amp;ev=&amp;cs=bt2w10&amp;mo=1"></script>
+
+
+
+
+<!-- Webtrekk 3.2.2, (c) www.webtrekk.com -->
+ <script src="/js/ho/webtrekk-v3-bundle-heise-2013-01-21.js" type="text/javascript"></script>
+ <script type="text/javascript">
+ &lt;!--
+ var pageConfig = {
+ linkTrack : "standard", // Activate Link Tracking [link or standard]
+ heatmap : "0", // Activate Heatmap Tracking [1 = on | 0 = off]
+ form : "0", // Activate Form Tracking [1 = on | 0 = off]
+ trackId : "288689636920174",
+ pixelSampling : "",
+ contentId: "www.heise.de.mac-and-i.meldung.1password-fuer-mac-generiert-einmal-passwoerter-2596987"
+ };
+ var wt = new webtrekkV3(pageConfig);
+ wt.contentGroup = {};
+ wt.contentGroup['1'] = "www.heise.de";
+ wt.contentGroup['2'] = "mac-and-i";
+ wt.contentGroup['3'] = "meldung";
+ wt.contentGroup['4'] = "1password-fuer-mac-generiert-einmal-passwoerter-2596987";
+
+
+
+
+ wt.contentGroup['9'] = "1password-fuer-mac-generiert-einmal-passwoerter-2596987";
+ wt.contentGroup['10'] = "meldung";
+
+ wt.customParameter = {};
+
+ wt.customParameter['2'] = "1password;mac os x;passwort;passwortmanager;sicherheit;totp";
+
+
+
+ wt.customParameter['6'] = "1password;mac os x;passwort;passwortmanager;sicherheit;totp";
+
+ wt.customParameter['8'] = "2015-04-08T12:46:00";
+ wt.customParameter['9'] = "mac-and-i";
+ wt.customParameter['10'] = "mac-and-i";
+
+
+
+
+
+
+
+ wt.heatmapRefpoint = 'container_content';
+ wt.sendinfo();
+
+ //--&gt;
+ </script>
+ <noscript>&lt;div&gt;&lt;img src="//prophet.heise.de/288689636920174/wt.pl?p=322,www.heise.de.mac-and-i.meldung.1password-fuer-mac-generiert-einmal-passwoerter-2596987&amp;cg1=www.heise.de&amp;cg10=meldung&amp;cg2=mac-and-i&amp;cg3=meldung&amp;cg4=1password-fuer-mac-generiert-einmal-passwoerter-2596987&amp;cg9=1password-fuer-mac-generiert-einmal-passwoerter-2596987&amp;cp10=mac-and-i&amp;cp2=1password%3Bmac%20os%20x%3Bpasswort%3Bpasswortmanager%3Bsicherheit%3Btotp&amp;cp6=1password%3Bmac%20os%20x%3Bpasswort%3Bpasswortmanager%3Bsicherheit%3Btotp&amp;cp8=2015-04-08T12%3A46%3A00&amp;cp9=mac-and-i" height="1" width="1" alt="" /&gt;&lt;/div&gt;</noscript>
+
+
+<!-- /Webtrekk -->
+
+
+
+
+ <script type="text/javascript">
+ &lt;!--//--&gt;&lt;![CDATA[//&gt;&lt;!--
+ // VGWORT-CROP-MARKER
+ var vgwort_token='c9016af5c9984399bf413fa66e5ba786';
+ document.write('&lt;div style="display: inline;"&gt;&lt;img src="http://heise.met.vgwort.de/na/' + vgwort_token);
+ document.write('" width="1" height="1" alt="" /&gt;&lt;' + '/div&gt;');
+ //--&gt;&lt;!]]&gt;
+ </script><div style="display: inline;"><img width="1" height="1" alt="" src="http://heise.met.vgwort.de/na/c9016af5c9984399bf413fa66e5ba786" /></div>
+
+
+
+
+
+
+
+
+
+
+
+
+ <ul id="navi_bottom">
+
+
+ <li class="left"><a href="/Privacy-Policy-der-Heise-Medien-GmbH-Co-KG-4860.html">Datenschutzhinweis</a> </li>
+
+
+
+ <li class="left"><a href="/mac-and-i/impressum.html">Impressum</a></li>
+
+
+
+ <li class="left"><a href="/mac-and-i/kontakt/">Kontakt</a> </li>
+
+
+
+ <li class="left"><a rel="external" target="_blank" href="/mediadaten/mac_and_i/">Mediadaten</a> </li>
+
+
+
+ <li class="left"><a href="http://m.heise.de/mac-and-i/">News mobil</a></li>
+
+
+
+<li class="bid_anzeige">
+1462351
+</li>
+
+
+
+ <li class="right"><a style="margin-right: 0;" rel="external" href="http://www.interred.de/">Content Management</a> by <b style="margin-right: 0.5em;">Inter<span class="tx_red">Red</span></b></li>
+
+
+
+
+ <li class="right"><a href="http://www.heise-medien.de/">Copyright © 2015 Heise Medien</a></li>
+
+
+
+
+
+
+</ul>
+
+<script src="/js/heise.min.js"></script><section class="heise-modal newsletter_2014_modal"><div class="wrapper-transparent"></div><div class="stage"><button data-role="close">×</button></div></section>
+
+
+
+
+
+
+
+
+</body></html>
+<!-- Created with InterRed V15.4-x.x.x.x.1, http://www.interred.de/, by InterRed GmbH -->
+<!-- BID: 1462351, iBID: 1462432, CID: 2596987, iCID: 2597101 -->
+<!-- Link: $(LB1462351:Linktext)$ $(LC2596987:Linktext)$ -->
+<!-- Generiert: 2015-04-08 12:48:46 -->
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/herald-sun-1/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/herald-sun-1/expected-images.json
new file mode 100644
index 000000000..a26021c34
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/herald-sun-1/expected-images.json
@@ -0,0 +1,3 @@
+[
+ "http:\/\/api.news.com.au\/content\/1.0\/heraldsun\/images\/1227261885862?format=jpg&group=iphone&size=medium"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/herald-sun-1/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/herald-sun-1/expected-metadata.json
new file mode 100644
index 000000000..102413240
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/herald-sun-1/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "JOE HILDEBRAND",
+ "Direction": null,
+ "Excerpt": "A HIGH-powered federal government team has been doing the rounds of media organisations in the past few days in an attempt to allay concerns about the impact of new surveillance legislation on press freedom. It failed.",
+ "Image": "http:\/\/api.news.com.au\/content\/1.0\/heraldsun\/images\/1227261885862?format=jpg&group=iphone&size=medium",
+ "Title": "Angry media won’t buckle over new surveillance laws",
+ "SiteName": "HeraldSun"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/herald-sun-1/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/herald-sun-1/expected.html
new file mode 100644
index 000000000..6896eedab
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/herald-sun-1/expected.html
@@ -0,0 +1,26 @@
+<div>
+ <div>
+ <div>
+ <p><img alt="A new Bill would require telecommunications service providers to store so-called ‘metadat" data-src="http://api.news.com.au/content/1.0/heraldsun/images/1227261885862?format=jpg&amp;group=iphone&amp;size=medium" src="http://api.news.com.au/content/1.0/heraldsun/images/1227261885862?format=jpg&amp;group=iphone&amp;size=medium"></img></p>
+ <p>
+ <span id="imgCaption">A new Bill would require telecommunications service providers to store so-called ‘metadata’ for two years.</span>
+ <span><em>Source:</em>
+ Supplied</span>
+ </p>
+ </div>
+ </div>
+ <p><strong>
+ A HIGH-powered federal government team has been doing the rounds of media organisations in the past few days in an attempt to allay concerns about the impact of new surveillance legislation on press freedom. It failed.
+ </strong></p>
+ <p>The roadshow featured the Prime Minister’s national security adviser, Andrew Shearer, Justin Bassi, who advises Attorney-General George Brandis on crime and security matters, and Australian Federal Police Commissioner Andrew Colvin. Staffers from the office of Communications Minister Malcolm Turnbull also took part.</p><p>They held meetings with executives from News Corporation and Fairfax, representatives of the TV networks, the ABC top brass and a group from the media union and the Walkley journalism foundation. I was involved as a member of the Walkley board.</p><p>The initiative, from Tony Abbott’s office, is evidence that the Government has been alarmed by the strength of criticism from media of the Data Retention Bill it wants passed before Parliament rises in a fortnight. Bosses, journalists, even the Press Council, are up in arms, not only over this measure, but also over aspects of two earlier pieces of national security legislation that interfere with the ability of the media to hold government to account.</p>
+
+
+
+<div id="read-more">
+
+
+ <div id="read-more-content">
+ <p>The Bill would require telecommunications service providers to store so-called “metadata” — the who, where, when and how of a communication, but not its content — for two years so security and law enforcement agencies can access it without warrant. Few would argue against the use of such material to catch criminals or terrorists. But, as Parliament’s Joint Committee on Intelligence and Security has pointed out, it would also be used “for the purpose of determining the identity of a journalist’s sources”.</p><p>And that should ring warning bells for anyone genuinely concerned with the health of our democracy. Without the ability to protect the identity of sources, journalists would be greatly handicapped in exposing corruption, dishonesty, waste, incompetence and misbehaviour by public officials.</p><p>The Press Council is concerned the laws would crush investigative journalism.</p><p>“These legitimate concerns cannot be addressed effectively short of exempting journalists and media organisations,” says president David Weisbrot.</p><p>The media union is adamant journalists’ metadata must be exempted from the law. That’s what media bosses want, too, though they have a fallback position based on new safeguards being implemented in Britain.</p><p>That would prevent access to the metadata of journalists or media organisations without a judicial warrant. There would be a code including — according to the explanatory notes of the British Bill — “provision to protect the public interest in the confidentiality of journalistic sources”.</p><p>In their meetings this week, the government team boasted of concessions in the new Data Retention Bill. The number of agencies able to access metadata will be reduced by excluding such organisations as the RSPCA and local councils. And whenever an authorisation is issued for access to information about a journalist’s sources, the Ombudsman (or, where ASIO is involved, the Inspector-General of Intelligence and Security) will receive a copy.</p><p>That does nothing to solve the problem. The Government has effectively admitted as much by agreeing that the parliamentary committee should conduct a separate review of how to deal with the issue of journalists’ sources.</p><p>But another inquiry would be a waste of time — the committee has already received and considered dozens of submissions on the subject. The bottom line is that the Government does not deny that the legislation is flawed, but is demanding it be passed anyway with the possibility left open of a repair job down the track. That is a ridiculous approach.</p><p>Claims that immediate action is imperative do not stand up. These are measures that won’t come into full effect for two years. Anyway, amending the Bill to either exempt journalists or adopt the UK model could be done quickly, without any risk to national security.</p><p>AS Opposition Leader Bill Shorten said in a letter to Abbott last month: “Press freedom concerns about mandatory data retention would ideally be addressed in this Bill to avoid the need for future additional amendments or procedures to be put in place in the future.”</p><p>The Data Retention Bill will be debated in the House of Representatives this week. Then, on Friday, CEOs from leading media organisations will front the parliamentary committee to air their concerns before the legislation goes to the Senate.</p><p>Those CEOs should make it clear they are just as angry about this as they were about Stephen Conroy’s attempt to impinge on press freedom through media regulation under the previous Labor government.</p><p>Memories of the grief Conroy brought down on his head would undoubtedly make Abbott sit up and take notice.</p><p><b>LAURIE OAKES IS THE NINE NETWORK POLITICAL EDITOR </b></p>
+ </div>
+</div>
+</div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/herald-sun-1/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/herald-sun-1/source.html
new file mode 100644
index 000000000..050bed449
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/herald-sun-1/source.html
@@ -0,0 +1,1193 @@
+<!--?xml version="1.0" encoding="UTF-8" ?--><!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.2//EN" "http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en-au" xml:lang="en-au"><head>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- site: HeraldSun esi: true breachflag: true channel: mobile -->
+
+
+
+
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
+ <meta name="HandheldFriendly" content="true"/>
+ <meta name="MobileOptimized" content="320"/>
+ <meta http-equiv="cleartype" content="on"/>
+ <meta name="format-detection" content="telephone=no"/>
+ <meta name="format-detection" content="address=no"/>
+ <!--thisPage::>1226616041343 thisMobilePage::>1226586877147 -->
+
+ <script>bruce_rtget={"sno": "1", "snol": "h,e,g", "tmstamp": "2015-03-21 11:30:02.973988"};</script>
+
+
+ <script type="text/javascript">
+(function() {
+ var useSSL = 'https:' == document.location.protocol;
+ var src = (useSSL ? 'https:' : 'http:') + '//tags.news.com.au/prod/utrack/utrack.js?cb='+ (new Date()).getTime();
+ document.write('&lt;scr' + 'ipt src="' + src + '">&lt;/scr' + 'ipt>');
+ })();
+</script><script src="http://tags.news.com.au/prod/utrack/utrack.js?cb=1426898115317"></script>
+
+
+ <title>Angry media won’t buckle over new surveillance laws
+ | Herald Sun</title>
+ <meta name="description" content="A HIGH-powered federal government team has been doing the rounds of media organisations in the past few days in an attempt to allay concerns about the impact of new surveillance legislation on press freedom. It failed."/>
+ <meta name="keywords" content=" mandatory data retention, legitimate concerns, investigative journalism, journalistic sources, freedom concerns, federal Government team, Inspector General, News Corporation, House of Representatives, RSPCA, Tony Abbott, Bill Shorten, media organisations, national security, media union, press freedom, Government team, Angry media, telecommunications service providers, national security legislation, immediate action, media regulation, national security adviser, journalism foundation, surveillance legislation, media bosses, political editor, exempt journalists, law enforcement agencies, ,,,United Kingdom, Malcolm Bligh Turnbull, George Brandis, Justin Bassi, Andrew Colvin, Stephen Conroy, Laurie Oakes"/>
+ <!-- primary is not empty-->
+ <meta property="og:image" content="http://api.news.com.au/content/1.0/heraldsun/images/1227261885862?format=jpg&amp;group=iphone&amp;size=medium"/>
+ <meta name="twitter:card" content="summary_large_image"/>
+ <meta name="twitter:image:src" content="http://api.news.com.au/content/1.0/heraldsun/images/1227261885862?format=jpg&amp;group=iphone&amp;size=medium"/>
+ <meta property="og:title" content="Angry media won’t buckle over new surveillance laws"/>
+ <meta property="og:type" content="article"/>
+ <meta property="og:url" content="http://www.heraldsun.com.au/news/opinion/angry-media-wont-buckle-over-new-surveillance-laws/story-fni0fha6-1227261886014"/>
+ <meta property="og:site_name" content="HeraldSun"/>
+ <meta property="fb:app_id" content="135469303148773"/>
+ <meta property="og:description" content="A HIGH-powered federal government team has been doing the rounds of media organisations in the past few days in an attempt to allay concerns about the impact of new surveillance legislation on press freedom. It failed."/>
+ <meta property="og:country-name" content="Australia"/>
+ <meta name="article:publisher" content="News Limited"/>
+ <meta name="article:author" content="Laurie Oakes"/>
+ <meta name="article:publicationdate" content="Fri Mar 13 21:30:09 EST 2015"/>
+ <meta property="fb:admins" content=",100000875899514"/>
+ <link rel="canonical" href="http://www.heraldsun.com.au/news/opinion/angry-media-wont-buckle-over-new-surveillance-laws/story-fni0fha6-1227261886014"/>
+ <meta name="twitter:site" content="@theheraldsun"/>
+ <meta name="twitter:site:id" content="@theheraldsun"/>
+ <script type="text/javascript">
+ //<![CDATA[
+ window.ndm = window.ndm || {};
+ window.ndm.fwResourcesNewscdn = 'http://resources.newscdn.com.au';
+ window.ndm.social = window.ndm.social || {};
+ window.ndm.social.activity = "{'activitycenter':'','historytab':'','quicklinks':'','readlist':''}";
+ window.ndm.social.section = {
+ 'url': '/news/opinion/laurie-oakes/',
+ 'sections': ["News","Opinion","Laurie Oakes"],
+ 'sectionpath':'/section/heraldsun.com.au/news/opinion/laurie-oakes/'
+ };
+ var overrideNdmPageSite, overrideNdmPageUs, overridePageType, overrideNdmPageCustom, overrideNdmPageAdsenseGoogleAdClient, overrideNdmPageAdsenseGoogleAdChannel;
+ ndm.account = {
+ urls: { login: "http://www.heraldsun.com.au/login", signup: "http://subscription.news.com.au/heraldsun/offers", account: "https://myaccount.news.com.au/heraldsun/viewAccount" }
+ };
+
+
+
+
+
+
+ window.ndm = window.ndm || {};window.ndm.cam = {'status': 'logged-out', 'memtype': 'anonymous'};ndm.config = {idp: {relayState: 'http://m.heraldsun.com.au/news/opinion/angry-media-wont-buckle-over-new-surveillance-laws/story-fni0fha6-1227261886014?nk=e65db50ff7e443a778cb38df8e9ad061',samlLoc: 'http://saml.cam.idmndm.com',channel: 'msite',site: 'HeraldSun'}, metered: {mode: 'free',state: {'max': 5, 'access': 'true', 'count': 1},endpoint: {registration: 'https://idp.news.com.au/idp/Authn/rest',products: 'http://digitalpass.heraldsun.com.au'},productInfo: {offerCode: '2_1_',sourceCode: 'HSWEB_MOB100_a'}}};
+ window.ndm.idp = window.ndm.idp || {};
+ window.ndm.idp.socialEnabled = !window.ndm.cam.paywalldisabled;
+ window.ndm.idp.channel = "msite";
+ window.ndm.idp.domain = "https://idp.news.com.au/";
+ window.ndm.idp.activity = true;
+ window.ndm.idp.frictionless = false;
+ window.ndm.idp.sitename = "HeraldSun";
+ window.ndm.idp.location = "http://saml.cam.idmndm.com";
+ window.ndm.idp.linkerror = "http://m.heraldsun.com.au/linkerror";
+ window.ndm.idp.registrationUrl = "http://m.heraldsun.com.au/signupfinal";
+ ndm.cam = ndm.cam || {};
+ //]]>
+ </script>
+ <!--default position [{id=1226636939151, type=News_Resources_Group}]-->
+<!-- Resource Included [{id=1226636960308, type=News_Resources_Group}]-->
+<!-- Resource Included [{id=1226305922727, type=News_Javascript}, {id=1226636894336, type=News_Resources_Group}, {id=1226641842346, type=News_Resources_Group}, {id=1226766835979, type=News_Resources_Group}, {id=1226814635510, type=News_Stylesheet}]-->
+<!-- Resource Included [{id=1226636896198, type=News_Javascript}, {id=1226768825469, type=News_Javascript}, {id=1226636896348, type=News_Javascript}, {id=1226636941781, type=News_Stylesheet}, {id=1226636941933, type=News_Stylesheet}, {id=1226975215417, type=News_Resources_Group}, {id=1226636898522, type=News_Resources_Group}, {id=1226717662103, type=News_Resources_Group}, {id=1227125508198, type=News_Resources_Group}]-->
+<!-- Resource Included [{id=1226975215371, type=News_Javascript}]-->
+<!-- Resource Included [{id=1226636898905, type=News_Javascript}]-->
+<!-- Resource Included [{id=1227075473855, type=News_Resources_Group}]-->
+<!-- Resource Included [{id=1227023921688, type=News_Javascript}, {id=1227023921564, type=News_Stylesheet}]-->
+<!-- Resource Included [{id=1227125511995, type=News_Javascript}]-->
+<!-- Resource Included [{id=1226641837720, type=News_Javascript}, {id=1226641840116, type=News_Stylesheet}]-->
+<!-- Resource Included [{id=1226866557087, type=News_Stylesheet}, {id=1226766829330, type=News_Javascript}, {id=1226858257711, type=News_Javascript}, {id=1226766829929, type=News_Javascript}]-->
+ <link rel="stylesheet" media="screen" type="text/css" href="http://resources.newscdn.com.au/cs/frameworks/prefab/latest/public/css/site/m.heraldsun/v3/base.css"/>
+ <link rel="stylesheet" media="screen" type="text/css" href="http://resources.newscdn.com.au/cs/frameworks/prefab/latest/public/css/site/m.heraldsun/v3/story.css"/>
+ <link rel="stylesheet" media="screen" type="text/css" href="http://resources.newscdn.com.au/cs/video/stable/build/player.css"/>
+ <link rel="stylesheet" media="screen" type="text/css" href="http://resources.newscdn.com.au/cs/social/latest/css/base-mobile.css"/>
+ <link rel="stylesheet" media="screen" type="text/css" href="http://resources.newscdn.com.au/cs/metered/current/deployBucketA/themes/default/css/mobile/metered.css"/>
+ <link rel="stylesheet" media="screen" type="text/css" href="http://media.news.com.au/nnd/mobile-fixes/hideformobile-module-rule-hotfix.css"/>
+ <script type="text/javascript" src="http://resources.newscdn.com.au/cs/frameworks/prefab/latest/lib/mobile-vendors-concat-min.js"></script>
+ <script type="text/javascript" src="http://resources.newscdn.com.au/cs/frameworks/prefab/latest/public/js/channel/mobile/brandify-concat-min.js"></script>
+ <script type="text/javascript" async="true" src="http://resources.newscdn.com.au/cs/social/latest/js/main.r.min.js"></script>
+ <script type="text/javascript" src="http://subscription.news.com.au/landingpages/mastheadresources/mobile/heraldsun_metered/1/js/hs-mm-config.js"></script>
+ <script type="text/javascript">
+ //<![CDATA[
+ //]]>
+</script>
+<link rel="shortcut icon" href="http://resources.news.com.au/cs/heraldsun/images/favicon.ico" type="image/x-icon"/>
+<link rel="icon" href="http://resources.news.com.au/cs/heraldsun/images/favicon.ico" type="image/x-icon"/>
+ <!-- Icons for Mobile Devices -->
+ <!-- For third-generation iPad with high-resolution Retina display: -->
+<link rel="apple-touch-icon-precomposed" sizes="144x144" href="http://resources.newscdn.com.au/cs/frameworks/prefab/latest/public/img/metros/heraldsun/icons/apple-touch-icon-144x144-precomposed.png"/>
+ <!-- For iPhone with high-resolution Retina display: -->
+<link rel="apple-touch-icon-precomposed" sizes="114x114" href="http://resources.newscdn.com.au/cs/frameworks/prefab/latest/public/img/metros/heraldsun/icons/apple-touch-icon-144x144-precomposed.png"/>
+ <!-- For first- and second-generation iPad: -->
+<link rel="apple-touch-icon-precomposed" sizes="72x72" href="http://resources.newscdn.com.au/cs/frameworks/prefab/latest/public/img/metros/heraldsun/icons/apple-touch-icon-72x72-precomposed.png"/>
+ <!-- For non-Retina iPhone, iPod Touch, and Android 2.1+ devices: -->
+<link rel="apple-touch-icon-precomposed" href="http://resources.newscdn.com.au/cs/frameworks/prefab/latest/public/img/metros/heraldsun/icons/apple-touch-icon-precomposed.png"/>
+<script type="text/javascript">
+//<![CDATA[
+ //]]>
+ </script>
+ <script type="text/javascript">
+ //<![CDATA[
+ $.config.init({
+ "location": {
+ "postcode": 3000,
+ "localised": true,
+ "geo": true,
+ "weather-url": "http://m.weather.heraldsun.com.au/"
+ },
+ "search": {
+ "adPublisherID": "ca-nd-heraldsun_js",
+ "cx": "012148326047351459851:r3aolj9uplk",
+ "drawLightForm": true,
+ "container": "#mobile-footer-nav",
+ "pre": true,
+ "useLegacySearch": true
+ }
+});
+ //]]>
+ </script>
+ <script type="text/javascript">
+ //<![CDATA[
+ window.envoy_config = window.envoy_config || {};
+window.envoy_config.identity = {
+ ninbar: {
+ 'subscribe-url': 'http://m.heraldsun.com.au/subscribe/news/1/?sourceCode=HSWEB_MOB538'
+ }
+};
+(function(i, s, o, g, r, a, m){
+ i[r]={};a=s.createElement(o),m=s.getElementsByTagName(o)[0],
+ g=('https:'===document.location.protocol?'https://envoyssl.':
+ 'http://envoy.')+g;a.async=1;a.src=g;m.parentNode.insertBefore(a,m);
+ })(window, document, 'script', 'newscdn.com.au/service/concat.js?envoy&identity/latest&siteid=hsm', 'newscdn');
+ //]]>
+ </script>
+ <script type="text/javascript">
+ //<![CDATA[
+ (function (global) {
+ var msite = global.msite || {};
+ msite.config = {
+ site: 'hwt.mobile',
+ name: 'heraldsun',
+ section: 'VIDEO',
+ ads: true
+ };
+ // Export
+ global.msite = msite;
+}(window));
+ //]]>
+ </script>
+ <script type="text/javascript">
+ //<![CDATA[
+ //]]>
+ </script>
+ <style>
+ .story .text-g-other-news-stories .story-block:last-child {
+ border-bottom: none;
+}
+.story .affiliate-strip h3 {
+ background: none !important;
+}
+.story .affiliate-inner {
+ min-height: 115px;
+}
+ </style>
+<script>
+ //]]>
+ </script>
+ <script type="text/javascript">
+ //<![CDATA[
+ ndm.page.section = "NEWS.OPINION.LAURIE-OAKES";
+ //]]>
+ </script>
+<!-- Resource Included []-->
+
+
+ <!-- new.adkit -->
+ <script type="text/javascript">
+ //<![CDATA[
+ (function() {
+ var useSSL = 'https:' == document.location.protocol;
+ var src = (useSSL ? 'https:' : 'http:') +
+ '//tags.news.com.au/prod/utrack/utrack.js?cb='+ (new Date()).getTime();
+ document.write('<scr' + 'ipt src="' + src + '"></scr' + 'ipt>');
+ })();
+ //]]>
+ </script>
+ <script type="text/javascript">
+ //<![CDATA[
+ <!-- new.adkit -->
+ utag_data = window.utag_data || {};
+ utag_data.ad_pagetype = overridePageType || "story";
+ utag_data.adsense_client = overrideNdmPageAdsenseGoogleAdClient || "ca-nd-heraldsun_js";
+ utag_data.adsense_client_intl = overrideNdmPageAdsenseGoogleAdClient || "ca-nd-heraldsun-st-intl_js";
+ utag_data.adsense_channel = overrideNdmPageAdsenseGoogleAdChannel || "news";
+ //]]>
+ </script>
+ <script type="text/javascript">
+ //<![CDATA[
+ window.ndm = window.ndm || {};
+ window.ndm.page = window.ndm.page || {};
+ ndm.page.site = overrideNdmPageSite || "HWT";
+ ndm.page.us = overrideNdmPageUs || "ndmheraldsun";
+ ndm.page.runads = true;
+ ndm.page.adstyles = "auto";
+ ndm.page.type = overridePageType || "story";
+ ndm.page.shareid = "62096b8e16f25e2422eca8e6ed13572a";
+ ndm.page.storyid = "1227261886014";
+ utag_data.net_article_date="2015-03-13 20:19:42";
+ utag_data.net_article_updated_time="2015-03-13 21:30:09";
+ //]]>
+ </script>
+
+<script src="http://tags.news.com.au/prod/trending/hs_m.js?id=1227261886014"></script>
+ <meta http-equiv="X-UA-Compatible" content="IE=8"/>
+ <meta name="robots" content="noarchive"/>
+ <script type="text/javascript">
+ //<![CDATA[
+ ndm.cam.contentTypeRule = 'NON_PREMIUM' === 'PREMIUM' ? 'restricted' : 'free';
+ ndm.cam.contentTypeGranted = 'full';
+ //]]>
+ </script>
+ <script type="text/javascript">
+ //<![CDATA[
+ ndm.page.msrelatedlinks = false;
+ //]]>
+ </script>
+</head>
+<body class="heraldsun story story-1227261886014 no-js news news-opinion news-opinion-laurie-oakes news-opinion-laurie-oakes-index cam user-anonymous paywall source-heraldsun ">
+<div id="page">
+ <div id="header">
+ <div id="header-logo">
+ <strong><a href="http://m.heraldsun.com.au">m.heraldsun.com.au</a></strong>
+ </div>
+ <div id="mobile-nav" class="site-nav">
+ <!-- support 3 tiers/levels of m sites navigation -->
+ <!-- esi true once login 1226622207516-->
+
+ <div class="module navigation-module primaryholder-nav sectionref-header-nav id1226622207516 ">
+ <div class="module-content">
+ <ul class=" tier-1">
+ <li class="sectionref-news first">
+ <a href="/news">News</a>
+ <ul class=" tier-2">
+ <li class="first">
+ <a href="/news/breaking-news">Breaking News</a>
+ </li>
+ <li>
+ <a href="/leader">Local</a>
+ </li>
+ <li>
+ <a href="/news/victoria">Victoria</a>
+ </li>
+ <li>
+ <a href="/news/national">National</a>
+ </li>
+ <li>
+ <a href="/news/world">World</a>
+ </li>
+ <li>
+ <a href="/news/law-order" class="law-order-home">Law &amp; Order</a>
+ </li>
+ <li>
+ <a href="/news/weird">Weird</a>
+ </li>
+ <li>
+ <a href="/technology">Technology</a>
+ </li>
+ <li class="active">
+ <a href="/news/opinion">Opinion</a>
+ </li>
+ <li class="last">
+ <a href="/news/photos">Photos</a>
+ </li>
+ </ul>
+ <!-- // .tier-2 -->
+ </li>
+ <li class="sectionref-sport">
+ <a href="/sport">Sport</a>
+ <ul class=" tier-2">
+ <li class="first">
+ <a href="/sport/afl" class="afl-new-style">AFL</a>
+ </li>
+ <li>
+ <a href="/sport/cricket" class="sport-tier-3">Cricket</a>
+ </li>
+ <li>
+ <a href="/sport/nrl" class="nrl-home">NRL</a>
+ </li>
+ <li>
+ <a href="/sport/football" class="sport-tier-3">Football</a>
+ </li>
+ <li>
+ <a href="/sport/rugby">Rugby</a>
+ </li>
+ <li>
+ <a href="/sport/superracing" class="srlogo">Racing</a>
+ </li>
+ <li>
+ <a href="/sport/tennis" class="sport-tier-3">Tennis</a>
+ </li>
+ <li>
+ <a href="/sport/motor-sport" class="sport-tier-3">Motor</a>
+ </li>
+ <li>
+ <a href="/sport/golf">Golf</a>
+ </li>
+ <li>
+ <a href="/sport/netball" class="sport-tier-3">Netball</a>
+ </li>
+ <li>
+ <a href="/sport/more-sports">More Sports</a>
+ </li>
+ <li>
+ <a href="/video/sport">Video</a>
+ </li>
+ <li class="last">
+ <a href="/sport/photos">Photos</a>
+ </li>
+ </ul>
+ <!-- // .tier-2 -->
+ </li>
+ <li class="sectionref-entertainment">
+ <a href="/entertainment">Entertainment</a>
+ <ul class=" tier-2">
+ <li class="first">
+ <a href="/entertainment/confidential">Confidential</a>
+ </li>
+ <li>
+ <a href="/entertainment/photos">Photos</a>
+ </li>
+ <li>
+ <a href="/entertainment/movies">Movies</a>
+ </li>
+ <li>
+ <a href="/entertainment/television">Television</a>
+ </li>
+ <li>
+ <a href="/entertainment/arts">Arts</a>
+ </li>
+ <li>
+ <a href="/entertainment/music">Music</a>
+ </li>
+ <li>
+ <a href="/entertainment/books">Books</a>
+ </li>
+ <li>
+ <a href="/entertainment/competitions">Competitions</a>
+ </li>
+ <li class="last">
+ <a href="/entertainment/awards">Awards</a>
+ </li>
+ </ul>
+ <!-- // .tier-2 -->
+ </li>
+ <li class="sectionref-business">
+ <a href="/business">Business</a>
+ <ul class=" tier-2">
+ <li class="first">
+ <a href="/business/breaking-news">Breaking</a>
+ </li>
+ <li>
+ <a href="/business/markets">Markets</a>
+ </li>
+ <li>
+ <a href="/business/economy">Economy</a>
+ </li>
+ <li>
+ <a href="/business/work">Work</a>
+ </li>
+ <li>
+ <a href="/business/companies">Companies</a>
+ </li>
+ <li>
+ <a href="/business/terry-mccrann">Terry McCrann</a>
+ </li>
+ <li>
+ <a href="/business/barefoot-investor">Barefoot Investor</a>
+ </li>
+ <li>
+ <a href="/business/in-the-black">In The Black</a>
+ </li>
+ <li class="last">
+ <a href="/business/your-hip-pocket">Your Hip Pocket</a>
+ </li>
+ </ul>
+ <!-- // .tier-2 -->
+ </li>
+ <li class="sectionref-lifestyle">
+ <a href="/lifestyle" class="lifestyle-nlm">Lifestyle</a>
+ <ul class=" tier-2">
+ <li class="first">
+ <a href="/lifestyle/melbourne">Melbourne</a>
+ </li>
+ <li>
+ <a href="/realestate" class="sectionref-realestate">Real Estate</a>
+ </li>
+ <li>
+ <a href="/travel">Travel</a>
+ </li>
+ <li>
+ <a href="http://m.moneysaverhq.heraldsun.com.au/">Money</a>
+ </li>
+ <li class="health linkto-group-1226683145977">
+ <a href="/lifestyle/health" class="block-header-highlight">Health</a>
+ </li>
+ <li class="food linkto-group-1226683144505">
+ <a href="/lifestyle/food" class="block-header-highlight">Food</a>
+ </li>
+ <li class="fashion linkto-group-1226683144895">
+ <a href="/lifestyle/fashion" class="block-header-highlight">Fashion</a>
+ </li>
+ <li class="parenting linkto-group-1226683146103">
+ <a href="/lifestyle/parenting" class="block-header-highlight">Parenting</a>
+ </li>
+ <li>
+ <a href="/lifestyle/relationships">Relationships</a>
+ </li>
+ <li class="home-garden linkto-group-1226683147384">
+ <a href="/lifestyle/home-garden" class="block-header-highlight"> Home</a>
+ </li>
+ <li class="last">
+ <a href="/lifestyle/horoscopes">Horoscopes</a>
+ </li>
+ </ul>
+ <!-- // .tier-2 -->
+ </li>
+ <li class="sectionref-video last">
+ <a href="http://m.video.heraldsun.com.au">Video</a>
+ </li>
+ </ul>
+ <!-- // .tier-1 -->
+ </div><!-- // .module-content -->
+ </div><!-- // .module.navigation-module -->
+
+ <div class="nav-login">
+
+ <div class="module form-module form-module-cam-login">
+ <div class="module-header">
+ <ul class="more-links">
+ <li class="first"><a class="login" href="http://www.heraldsun.com.au/login#header-nav-login-lightbox">Login</a></li>
+ <li class="last"><a class="signup" href="http://www.heraldsun.com.au/subscribe/offers/1/?sourceCode=HSWEB_MOB100_a">Subscribe</a></li>
+ </ul>
+ </div>
+ <div class="module-content">
+ <div class="content-item" id="header-nav-login-lightbox">
+ <div class="ci-header">
+
+ <h4 class="heading">Login using your social network</h4>
+ <form action="https://idp.news.com.au/idp/Authn/social" method="GET">
+ <fieldset>
+ <legend><span class="legend">Social Login</span></legend>
+ <div class="form-item fpos-1 frpos-3">
+ <fieldset class="form-radio-group">
+ <legend>
+ <span class="legend-text">Social Network
+ <span class="required">
+ <abbr title="required">*</abbr>
+ </span>
+ </span>
+ </legend>
+ <div class="form-radio-item signin signin-facebook">
+ <input type="radio" id="service-facebook" value="facebook.com" name="service" class="radio required-field"/>
+ <label for="service-facebook" class="radio">
+ <span class="label-text">Login with Facebook</span>
+ </label>
+ </div>
+ <div class="form-radio-item signin signin-twitter">
+ <input type="radio" id="service-twitter" value="twitter.com" name="service" class="radio required-field"/>
+ <label for="service-twitter" class="radio">
+ <span class="label-text">Login with Twitter</span>
+ </label>
+ </div>
+ <div class="form-radio-item signin signin-linkedin">
+ <input type="radio" id="service-linkedin" value="linkedin.com" name="service" class="radio required-field"/>
+ <label for="service-linkedin" class="radio">
+ <span class="label-text">Login with LinkedIn</span>
+ </label>
+ </div>
+ <div class="form-radio-item signin signin-google">
+ <input type="radio" id="service-google" value="google.com" name="service" class="radio required-field"/>
+ <label for="service-google" class="radio">
+ <span class="label-text">Login with Google</span>
+ </label>
+ </div>
+ </fieldset>
+ </div>
+ <div class="form-item fipos-3 frpos-1 form-item-submit">
+ <input type="hidden" name="cancelUrl" value="http://m.heraldsun.com.au/remote/talogin-error.html"/>
+ <input type="hidden" name="channel" value="msite"/>
+ <input type="hidden" name="authMethod" value="social"/>
+ <input type="hidden" name="site" value="HeraldSun"/>
+ <input type="hidden" name="relayState" value="http://m.heraldsun.com.au/news/opinion/angry-media-wont-buckle-over-new-surveillance-laws/story-fni0fha6-1227261886014?nk=e65db50ff7e443a778cb38df8e9ad061"/>
+ <input type="hidden" name="location" value="http://saml.cam.idmndm.com"/>
+ <button type="submit" class="button-submit"><span>Login</span></button>
+ </div><!-- // .form-item -->
+ </fieldset>
+ </form>
+
+ </div>
+ <div class="ci-content">
+
+<h4 class="heading">Login using your Newspass account</h4>
+<form action="https://idp.news.com.au/idp/Authn/rest" method="POST" class="formBuilder">
+ <fieldset>
+ <legend><span class="legend">User Login</span></legend>
+ <div class="form-item fipos-1">
+ <label for="cam_username">Username <span class="required"><abbr title="required">*</abbr></span></label>
+ <input type="text" id="cam_username" name="username" class="required-field email"/>
+ </div>
+ <div class="form-item fipos-2">
+ <label for="cam_password">Password <span class="required"><abbr title="required">*</abbr></span></label>
+ <input type="password" id="cam_password" name="password" class="required-field password"/>
+ </div>
+ <div class="form-item fipos-3">
+ <div class="form-checkbox-item">
+ <input type="checkbox" id="cam_remember_me" name="remember_me" checked=""/>
+ <label for="cam_remember_me">Remember me</label>
+ </div>
+ </div>
+ <div class="form-item fipos-4 form-item-submit">
+ <input type="hidden" name="channel" value="msite"/>
+ <input type="hidden" name="site" value="HeraldSun"/>
+ <input type="hidden" name="cancelUrl" value="http://m.heraldsun.com.au/remote/talogin-error.html"/>
+ <input type="hidden" name="relayState" value="http://m.heraldsun.com.au/news/opinion/angry-media-wont-buckle-over-new-surveillance-laws/story-fni0fha6-1227261886014?nk=e65db50ff7e443a778cb38df8e9ad061"/>
+ <input type="hidden" name="location" value="http://saml.cam.idmndm.com"/>
+ <button type="submit" class="button-submit"><span>Login</span></button>
+ </div>
+ </fieldset>
+</form>
+
+ </div>
+ <div class="ci-related">
+ <ul class="related">
+ <li><a class="password" href="https://myaccount.news.com.au/heraldsun/forgotPassword">Forgot your password?</a></li>
+ </ul>
+ </div>
+ <div class="ci-footer">
+ <ul class="more-links">
+ <li>Subscribe now to access Herald Sun.</li>
+ <li class="btn-subscribe"><a class="subscribe" href="http://subscription.news.com.au/heraldsun/offers">Subscribe</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ </div>
+ </div>
+ <div id="headerAd">
+ <!-- new.adkit -->
+ <div class="ad-block ad-m-banner" id="ad-m-banner"></div>
+ </div>
+ </div>
+ <div id="content">
+ <div id="section-header">
+ <div id="section-header-logo">
+ <h2>Opinion</h2>
+ </div><!-- // #section-header-logo -->
+ </div><!-- // #section-header -->
+ <div id="story">
+
+ <div class="story-header">
+ <div class="story-section">
+ <h2 class="heading">
+ <a href="/news/opinion/laurie-oakes"><p>Laurie Oakes</p></a>
+ </h2>
+ </div>
+ <div class="story-headline">
+ <h1 class="heading">
+ Angry media won’t buckle over new surveillance laws
+ </h1>
+ </div>
+ <div class="story-info">
+ <ul>
+ <li class="byline first ">
+ <span class="source-prefix">by:</span>
+ <cite class="author author-laurie-oakes "> Laurie Oakes</cite>
+ </li>
+ <li class="source ">
+ <span class="source-prefix">From:</span>
+ <cite>
+ Herald Sun
+ </cite>
+ </li>
+ <li class="date-and-time last" title="2015-03-13T21:00:00+11:00">
+ <span class="datestamp">March 13, 2015</span>
+ <span class="timestamp">9:00PM</span>
+ </li>
+ </ul>
+ </div>
+ </div>
+<div class="story-body ">
+ <div class="article-media article-media-main">
+ <div class="image">
+ <div class="image-frame">
+ <img data-src="http://api.news.com.au/content/1.0/heraldsun/images/1227261885862?format=jpg&amp;group=iphone&amp;size=medium" alt="A new Bill would require telecommunications service providers to store so-called ‘metadat"/>
+ </div>
+ <p class="caption">
+ <span id="imgCaption" class="caption-text">A new Bill would require telecommunications service providers to store so-called ‘metadata’ for two years.</span>
+ <span class="image-source"><em>Source:</em>
+ Supplied</span>
+ </p>
+ </div>
+ </div>
+ <div class="story-intro">
+ <p><strong>
+ A HIGH-powered federal government team has been doing the rounds of media organisations in the past few days in an attempt to allay concerns about the impact of new surveillance legislation on press freedom. It failed.
+ </strong></p>
+ </div>
+ <p>The roadshow featured the Prime Minister’s national security adviser, Andrew Shearer, Justin Bassi, who advises Attorney-General George Brandis on crime and security matters, and Australian Federal Police Commissioner Andrew Colvin. Staffers from the office of Communications Minister Malcolm Turnbull also took part.</p><p>They held meetings with executives from News Corporation and Fairfax, representatives of the TV networks, the ABC top brass and a group from the media union and the Walkley journalism foundation. I was involved as a member of the Walkley board.</p><p>The initiative, from Tony Abbott’s office, is evidence that the Government has been alarmed by the strength of criticism from media of the Data Retention Bill it wants passed before Parliament rises in a fortnight. Bosses, journalists, even the Press Council, are up in arms, not only over this measure, but also over aspects of two earlier pieces of national security legislation that interfere with the ability of the media to hold government to account.</p>
+
+ <div class="story-promo story-promo-middle">
+ </div>
+
+<div id="read-more">
+ <div id="read-more-link">
+ <a href="">Read more</a>
+ </div>
+ <div id="middleAd">
+ <!-- new.adkit -->
+ <div class="ad-block ad-m-mrec" id="ad-m-mrec"></div>
+ </div>
+ <div id="read-more-content">
+ <p>The Bill would require telecommunications service providers to store so-called “metadata” — the who, where, when and how of a communication, but not its content — for two years so security and law enforcement agencies can access it without warrant. Few would argue against the use of such material to catch criminals or terrorists. But, as Parliament’s Joint Committee on Intelligence and Security has pointed out, it would also be used “for the purpose of determining the identity of a journalist’s sources”.</p><p>And that should ring warning bells for anyone genuinely concerned with the health of our democracy. Without the ability to protect the identity of sources, journalists would be greatly handicapped in exposing corruption, dishonesty, waste, incompetence and misbehaviour by public officials.</p><p>The Press Council is concerned the laws would crush investigative journalism.</p><p>“These legitimate concerns cannot be addressed effectively short of exempting journalists and media organisations,” says president David Weisbrot.</p><p>The media union is adamant journalists’ metadata must be exempted from the law. That’s what media bosses want, too, though they have a fallback position based on new safeguards being implemented in Britain.</p><p>That would prevent access to the metadata of journalists or media organisations without a judicial warrant. There would be a code including — according to the explanatory notes of the British Bill — “provision to protect the public interest in the confidentiality of journalistic sources”.</p><p>In their meetings this week, the government team boasted of concessions in the new Data Retention Bill. The number of agencies able to access metadata will be reduced by excluding such organisations as the RSPCA and local councils. And whenever an authorisation is issued for access to information about a journalist’s sources, the Ombudsman (or, where ASIO is involved, the Inspector-General of Intelligence and Security) will receive a copy.</p><p>That does nothing to solve the problem. The Government has effectively admitted as much by agreeing that the parliamentary committee should conduct a separate review of how to deal with the issue of journalists’ sources.</p><p>But another inquiry would be a waste of time — the committee has already received and considered dozens of submissions on the subject. The bottom line is that the Government does not deny that the legislation is flawed, but is demanding it be passed anyway with the possibility left open of a repair job down the track. That is a ridiculous approach.</p><p>Claims that immediate action is imperative do not stand up. These are measures that won’t come into full effect for two years. Anyway, amending the Bill to either exempt journalists or adopt the UK model could be done quickly, without any risk to national security.</p><p>AS Opposition Leader Bill Shorten said in a letter to Abbott last month: “Press freedom concerns about mandatory data retention would ideally be addressed in this Bill to avoid the need for future additional amendments or procedures to be put in place in the future.”</p><p>The Data Retention Bill will be debated in the House of Representatives this week. Then, on Friday, CEOs from leading media organisations will front the parliamentary committee to air their concerns before the legislation goes to the Senate.</p><p>Those CEOs should make it clear they are just as angry about this as they were about Stephen Conroy’s attempt to impinge on press freedom through media regulation under the previous Labor government.</p><p>Memories of the grief Conroy brought down on his head would undoubtedly make Abbott sit up and take notice.</p><p><b>LAURIE OAKES IS THE NINE NETWORK POLITICAL EDITOR </b></p>
+ </div>
+</div>
+</div>
+<div class="share-tools share-tools-story">
+</div>
+<!-- new.adkit adsense -->
+<div class="ad-block ad-adsense-medium" id="ad-adsense-medium-1"></div>
+<!-- End new.adkit adsense -->
+ <div id="social-comments" data-livefyre-collectionmeta="eyJhbGciOiJIUzI1NiJ9.eyJ0YWdzIjoiTGF1cmllIE9ha2VzLExhdXJpZSBPYWtlcyIsInRpdGxlIjoiQW5ncnkgbWVkaWEgd29uJiM4MjE3O3QgYnVja2xlIG9uIHN1cnZlaWxsYW5jZSBsYXdzIiwiY2hlY2tzdW0iOiIwZmRhYWVkYzY0Nzk4NDYyMWM0M2FjODNkODE4ZDk5ZSIsImFydGljbGVJZCI6IkZXMTIyNzI2MTg4NjAxNCIsInVybCI6Imh0dHA6Ly93d3cuaGVyYWxkc3VuLmNvbS5hdS9uZXdzL29waW5pb24vYW5ncnktbWVkaWEtd29udC1idWNrbGUtb3Zlci1uZXctc3VydmVpbGxhbmNlLWxhd3Mvc3RvcnktZm5pMGZoYTYtMTIyNzI2MTg4NjAxNCJ9.sA4RqU0tVSYKJUzSFIHvG-JBw6I5jMf2Jj9Wb4Hz4lY" data-livefyre-checksum="0fdaaedc647984621c43ac83d818d99e" data-articleid="FW1227261886014" data-siteid="342836">
+ </div>
+ <script type="text/javascript">
+ utag_data = window.utag_data || {};
+ utag_data.net_content_type = (utag_data.net_content_type ? utag_data.net_content_type + "+" : "") + "comments";
+ </script>
+
+ <div class="story-promo story-promo-bottom">
+ </div>
+
+
+
+<!-- [Group:1226671432961] on [fwprodcontent02.ni.news.com.au] @ [March 21, 2015 11:05AM] -->
+<div class="group text-g-news-ms-group-adsense-medium item-count-1 group-id-1226671432961">
+ <div class="group-content">
+ <div class="item ipos-1 irpos-1">
+ <div class="custom-html ">
+ <div class="ad-block ad-adsense-medium" id="ad-adsense-medium-1"></div>
+ </div><!-- // .custom-html -->
+ </div><!-- // .item ipos-1 irpos-1 -->
+ </div><!-- // .group-content.item-count-1 -->
+</div><!-- // .group -->
+
+
+<!-- [Group:1226721033461] on [fwprodcontent10.ni.news.com.au] @ [March 21, 2015 11:30AM] -->
+<div class="group outbrain-group text-g-more-stories item-count-1 group-id-1226721033461">
+ <div class="group-header">
+ <h2 class="heading">more stories</h2>
+ </div><!-- // .group-header -->
+ <div class="group-content">
+ <div class="item ipos-1 irpos-1">
+ <div class="custom-html ">
+ </div><!-- // .custom-html -->
+ </div><!-- // .item ipos-1 irpos-1 -->
+ </div><!-- // .group-content.item-count-1 -->
+</div><!-- // .group -->
+
+
+<!-- [Group:1226615951541] on [fwprodcontent08.ni.news.com.au] @ [March 21, 2015 11:26AM] -->
+<div class="group text-g-other-opinion-columns item-count-1 group-id-1226615951541">
+ <div class="group-header">
+ <h2 class="heading">Other Opinion Columns</h2>
+ </div><!-- // .group-header -->
+ <div class="group-content">
+ <div class="item ipos-1 irpos-1">
+ <div class="module default sectionref-hs-opinion first-image-100w75h collection mpos-1 mrpos-1 text-m-nn-mob-pmnt-news-opinion-story-x5 id1226615938269" id="id1226615938269">
+ <div class="module-content ">
+ <div class="story-block sectionref-news sbpos-1 sbrpos-5 id1227272078989">
+ <!-- PC related summary IDs: 1227272078989 -->
+ <!-- PC related summary IDs: 1227272078989 -->
+ <!-- PC related summary IDs: 1227272078989 -->
+ <h4 class="heading">
+ <strong class="kicker">Editorial</strong>
+ <a href="/news/opinion/malcolm-frasers-lasting-legacy/story-fni0ffsx-1227272078989">Fraser’s lasting legacy</a>
+ </h4>
+ <a href="/news/opinion/malcolm-frasers-lasting-legacy/story-fni0ffsx-1227272078989" class="thumb-link"><img data-src="http://api.news.com.au/content/1.0/heraldsun/images/1227272077962?format=jpg&amp;group=iphone&amp;size=small" alt="Fraser’s lasting legacy" class="thumbnail"/></a>
+ <!-- Locale from Config : . Locale from Request : en. Locale from Response : en_US -->
+ <p class="standfirst">
+ <span class="article-info">
+ <span class="date-and-time" title="2015-03-21T00:00:00+11:00">
+ </span> <!-- // .date-and-time -->
+ <em class="byline"> </em>
+ </span> <!-- // .article-info -->
+ MALCOLM Fraser — an effective prime minister controversially installed, soundly elected and re-elected, a relentless contributor, thinker and reformer, a blue-blooded egalitarian.
+ </p> <!-- // .standfirst11 -->
+ <div class="storyblock-footer">
+ <span class="share"></span>
+ <span class="bookmark"></span>
+ <ul class="related related-media">
+ </ul>
+ </div>
+ <!-- PC related summary IDs: 1227272078989 -->
+ </div> <!-- // .story-block pos-1 rpos-5 id1227272078989 -->
+ <div class="story-block sectionref-news sbpos-2 sbrpos-4 id1227272060915">
+ <!-- PC related summary IDs: 1227272060915 -->
+ <!-- PC related summary IDs: 1227272060915 -->
+ <!-- PC related summary IDs: 1227272060915 -->
+ <h4 class="heading">
+ <strong class="kicker">Wave of stupidity</strong>
+ <a href="/news/opinion/doctor-knows-best-not-starbeam-fantapants/story-fni0ffsx-1227272060915">Doctor knows best, not Starbeam Fantapants</a>
+ </h4>
+ <a href="/news/opinion/doctor-knows-best-not-starbeam-fantapants/story-fni0ffsx-1227272060915" class="thumb-link"><img data-src="http://api.news.com.au/content/1.0/heraldsun/images/1227272071432?format=jpg&amp;group=iphone&amp;size=small" alt="Doctor knows best, not Starbeam Fantapants" class="thumbnail"/></a>
+ <!-- Locale from Config : . Locale from Request : en. Locale from Response : en_US -->
+ <p class="standfirst">
+ <span class="article-info">
+ <span class="date-and-time" title="2015-03-21T00:00:00+11:00">
+ </span> <!-- // .date-and-time -->
+ <em class="byline">JOE HILDEBRAND </em>
+ </span> <!-- // .article-info -->
+ HOW is it that ideas and philosophies that are patently absurd capture people’s imagination? It seems we’re being swamped by a wave of stupidity.
+ </p> <!-- // .standfirst11 -->
+ <div class="storyblock-footer">
+ <span class="share"></span>
+ <span class="bookmark"></span>
+ <ul class="related related-media">
+ <li class="comments">
+ <a href="/news/opinion/doctor-knows-best-not-starbeam-fantapants/story-fni0ffsx-1227272060915">
+ <span class="livefyre-commentcount" data-lf-site-id="342836" data-lf-article-id="FW1227272060915"></span>
+ </a>
+ </li>
+ </ul>
+ </div>
+ <!-- PC related summary IDs: 1227272060915 -->
+ </div> <!-- // .story-block pos-2 rpos-4 id1227272060915 -->
+ <div class="story-block sectionref-news sbpos-3 sbrpos-3 id1227272050794">
+ <!-- PC related summary IDs: 1227272050794 -->
+ <!-- PC related summary IDs: 1227272050794 -->
+ <!-- PC related summary IDs: 1227272050794 -->
+ <h4 class="heading">
+ <strong class="kicker">Ikea challenge</strong>
+ <a href="/news/opinion/ikea-is-good-for-some-but-im-not-buying-it/story-fni0fhie-1227272050794">Good for some, but I’m not buying it</a>
+ </h4>
+ <a href="/news/opinion/ikea-is-good-for-some-but-im-not-buying-it/story-fni0fhie-1227272050794" class="thumb-link"><img data-src="http://api.news.com.au/content/1.0/heraldsun/images/1227272050710?format=jpg&amp;group=iphone&amp;size=small" alt="Good for some, but I’m not buying it" class="thumbnail"/></a>
+ <!-- Locale from Config : . Locale from Request : en. Locale from Response : en_US -->
+ <p class="standfirst">
+ <span class="article-info">
+ <span class="date-and-time" title="2015-03-21T00:00:00+11:00">
+ </span> <!-- // .date-and-time -->
+ <em class="byline">SUSIE O’BRIEN </em>
+ </span> <!-- // .article-info -->
+ THE good thing about Ikea is that it’s cheap and good quality. The bad thing is the whole, exhausting business of shopping at their stores.
+ </p> <!-- // .standfirst11 -->
+ <div class="storyblock-footer">
+ <span class="share"></span>
+ <span class="bookmark"></span>
+ <ul class="related related-media">
+ <li class="comments">
+ <a href="/news/opinion/ikea-is-good-for-some-but-im-not-buying-it/story-fni0fhie-1227272050794">
+ <span class="livefyre-commentcount" data-lf-site-id="342836" data-lf-article-id="FW1227272050794"></span>
+ </a>
+ </li>
+ </ul>
+ </div>
+ <!-- PC related summary IDs: 1227272050794 -->
+ </div> <!-- // .story-block pos-3 rpos-3 id1227272050794 -->
+ <div class="story-block sectionref-news sbpos-4 sbrpos-2 id1227272039501">
+ <!-- PC related summary IDs: 1227272039501 -->
+ <!-- PC related summary IDs: 1227272039501 -->
+ <!-- PC related summary IDs: 1227272039501 -->
+ <h4 class="heading">
+ <strong class="kicker">True liberal</strong>
+ <a href="/news/opinion/malcolm-fraser-was-a-man-of-contrasts/story-fni0fha6-1227272039501">Ex-PM a man of contrasts</a>
+ </h4>
+ <a href="/news/opinion/malcolm-fraser-was-a-man-of-contrasts/story-fni0fha6-1227272039501" class="thumb-link"><img data-src="http://api.news.com.au/content/1.0/heraldsun/images/1227272037318?format=jpg&amp;group=iphone&amp;size=small" alt="Ex-PM a man of contrasts" class="thumbnail"/></a>
+ <!-- Locale from Config : . Locale from Request : en. Locale from Response : en_US -->
+ <p class="standfirst">
+ <span class="article-info">
+ <span class="date-and-time" title="2015-03-21T00:00:00+11:00">
+ </span> <!-- // .date-and-time -->
+ <em class="byline">LAURIE OAKES </em>
+ </span> <!-- // .article-info -->
+ IT was said that Malcolm Fraser moved to the Left after losing office but the former PM didn’t change - he was always a “small l” liberal.
+ </p> <!-- // .standfirst11 -->
+ <div class="storyblock-footer">
+ <span class="share"></span>
+ <span class="bookmark"></span>
+ <ul class="related related-media">
+ <li class="comments">
+ <a href="/news/opinion/malcolm-fraser-was-a-man-of-contrasts/story-fni0fha6-1227272039501">
+ <span class="livefyre-commentcount" data-lf-site-id="342836" data-lf-article-id="FW1227272039501"></span>
+ </a>
+ </li>
+ </ul>
+ </div>
+ <!-- PC related summary IDs: 1227272039501 -->
+ </div> <!-- // .story-block pos-4 rpos-2 id1227272039501 -->
+ <div class="story-block sectionref-news sbpos-5 sbrpos-1 id1227272010784">
+ <!-- PC related summary IDs: 1227272010784 -->
+ <!-- PC related summary IDs: 1227272010784 -->
+ <!-- PC related summary IDs: 1227272010784 -->
+ <h4 class="heading">
+ <strong class="kicker">Own backyard</strong>
+ <a href="/news/opinion/lets-make-local-issues-a-priority/story-fni0ffsx-1227272010784">Let’s make local issues a priority</a>
+ </h4>
+ <a href="/news/opinion/lets-make-local-issues-a-priority/story-fni0ffsx-1227272010784" class="thumb-link"><img data-src="http://api.news.com.au/content/1.0/heraldsun/images/1227272009394?format=jpg&amp;group=iphone&amp;size=small" alt="Let’s make local issues a priority" class="thumbnail"/></a>
+ <!-- Locale from Config : . Locale from Request : en. Locale from Response : en_US -->
+ <p class="standfirst">
+ <span class="article-info">
+ <span class="date-and-time" title="2015-03-21T00:00:00+11:00">
+ </span> <!-- // .date-and-time -->
+ <em class="byline">TOM ELLIOTT </em>
+ </span> <!-- // .article-info -->
+ IT’S nice to think Australia is a player on the world stage but, really, we’re not. So forget global posturing and let’s sort out our own backyard.
+ </p> <!-- // .standfirst11 -->
+ <div class="storyblock-footer">
+ <span class="share"></span>
+ <span class="bookmark"></span>
+ <ul class="related related-media">
+ <li class="comments">
+ <a href="/news/opinion/lets-make-local-issues-a-priority/story-fni0ffsx-1227272010784">
+ <span class="livefyre-commentcount" data-lf-site-id="342836" data-lf-article-id="FW1227272010784"></span>
+ </a>
+ </li>
+ </ul>
+ </div>
+ <!-- PC related summary IDs: 1227272010784 -->
+ </div> <!-- // .story-block pos-5 rpos-1 id1227272010784 -->
+ </div> <!-- // .module-content -->
+ </div> <!-- // .module .collection -->
+ </div><!-- // .item ipos-1 irpos-1 -->
+ </div><!-- // .group-content.item-count-1 -->
+</div><!-- // .group -->
+
+
+<!-- [Group:1226586873038] on [fwprodcontent07.ni.news.com.au] @ [March 21, 2015 11:30AM] -->
+<div class="group collection text-g-nn-mob-group-mostread item-count-1 group-id-1226586873038">
+ <div class="group-content">
+ <div class="item ipos-1 irpos-1">
+ <div class="esi_fragment">
+ <div class="most-popular"><div class="module-header"><h3 class="heading">Most Popular Stories</h3></div> <div class="module most-popular "><div class="module-content"><ol><li class="lipos-1 lirpos-5"><a href="http://www.heraldsun.com.au/entertainment/confidential/wifes-fury-at-hawthorn-husbands-million-dollar-gamble/story-fnn7ma1h-1227271771330?sv=df95c2a03e18b583f7f54541951f2017">Wife’s fury at hubby’s million dollar gamble</a></li><li class="lipos-2 lirpos-4"><a href="http://www.heraldsun.com.au/sport/cricket/australia-v-pakistan-live-coverage-of-cricket-world-cup-2015-quarter-final-at-adelaide-oval/story-fnq1ugvn-1227271183293?sv=95140b10c5a6b3327f331184667b7101">Australia passes fierce Pakistan test</a></li><li class="lipos-3 lirpos-3"><a href="http://www.heraldsun.com.au/news/law-order/masa-vukotics-brave-dad-comes-face-to-face-with-accused-killer-sean-christian-price/story-fni0fee2-1227272036011?sv=abb755bd4ae48d7229b821ba9bd37c4b">Masa’s brave dad faces accused killer</a></li><li class="lipos-4 lirpos-2"><a href="http://www.heraldsun.com.au/news/law-order/police-allege-masa-vukotics-accused-killer-sean-christian-price-went-on-orgy-of-violence-before-surrender/story-fni0fee2-1227271332272?sv=19cd7b2abf1a89d6eb84d5b52580aa8">Police allege Price went on 90-minute rampage</a></li><li class="lipos-5 lirpos-1"><a href="http://www.heraldsun.com.au/news/law-order/fallen-afl-star-ben-cousins-dodges-bullet-with-latest-drug-relapse/story-fni0fee2-1227271552942?sv=5053c480d78ab9737e526145e7efff47">This time Cousins really dodged a bullet</a></li></ol></div></div>
+<img src="http://tcog.news.com.au/track/news/content/v1/?category=/section/heraldsun.com.au/collection/popular-content/all/24hours/&amp;format=module&amp;t_product=most-popular-mobile&amp;maxRelated=5&amp;t_template=popular-plain&amp;origin=omniture&amp;domain=heraldsun.com.au" style="opacity:0; height:0px; width:0px; position:absolute;" width="0" height="0"/>
+</div>
+ </div>
+ </div><!-- // .item ipos-1 irpos-1 -->
+ </div><!-- // .group-content.item-count-1 -->
+</div><!-- // .group -->
+
+ </div><!-- // #story -->
+ </div><!-- // #content -->
+ <div id="footer">
+ <div id="footerAd">
+ <!-- new.adkit -->
+ <div class="ad-block ad-m-banner" id="ad-m-banner-1"></div>
+ </div>
+ <div id="network-account">
+
+ <div class="network-login">
+
+ <div class="module form-module form-module-cam-login">
+ <div class="module-header">
+ <ul class="more-links">
+ <li class="first"><a class="login" href="http://www.heraldsun.com.au/login#header-nav-login-lightbox">Login</a></li>
+ <li class="last"><a class="signup" href="http://www.heraldsun.com.au/subscribe/offers/1/?sourceCode=HSWEB_MOB100_a">Subscribe</a></li>
+ </ul>
+ </div>
+ <div class="module-content">
+ <div class="content-item" id="header-nav-login-lightbox">
+ <div class="ci-header">
+
+ <h4 class="heading">Login using your social network</h4>
+ <form action="https://idp.news.com.au/idp/Authn/social" method="GET">
+ <fieldset>
+ <legend><span class="legend">Social Login</span></legend>
+ <div class="form-item fpos-1 frpos-3">
+ <fieldset class="form-radio-group">
+ <legend>
+ <span class="legend-text">Social Network
+ <span class="required">
+ <abbr title="required">*</abbr>
+ </span>
+ </span>
+ </legend>
+ <div class="form-radio-item signin signin-facebook">
+ <input type="radio" id="service-facebook" value="facebook.com" name="service" class="radio required-field"/>
+ <label for="service-facebook" class="radio">
+ <span class="label-text">Login with Facebook</span>
+ </label>
+ </div>
+ <div class="form-radio-item signin signin-twitter">
+ <input type="radio" id="service-twitter" value="twitter.com" name="service" class="radio required-field"/>
+ <label for="service-twitter" class="radio">
+ <span class="label-text">Login with Twitter</span>
+ </label>
+ </div>
+ <div class="form-radio-item signin signin-linkedin">
+ <input type="radio" id="service-linkedin" value="linkedin.com" name="service" class="radio required-field"/>
+ <label for="service-linkedin" class="radio">
+ <span class="label-text">Login with LinkedIn</span>
+ </label>
+ </div>
+ <div class="form-radio-item signin signin-google">
+ <input type="radio" id="service-google" value="google.com" name="service" class="radio required-field"/>
+ <label for="service-google" class="radio">
+ <span class="label-text">Login with Google</span>
+ </label>
+ </div>
+ </fieldset>
+ </div>
+ <div class="form-item fipos-3 frpos-1 form-item-submit">
+ <input type="hidden" name="cancelUrl" value="http://m.heraldsun.com.au/remote/talogin-error.html"/>
+ <input type="hidden" name="channel" value="msite"/>
+ <input type="hidden" name="authMethod" value="social"/>
+ <input type="hidden" name="site" value="HeraldSun"/>
+ <input type="hidden" name="relayState" value="http://m.heraldsun.com.au/news/opinion/angry-media-wont-buckle-over-new-surveillance-laws/story-fni0fha6-1227261886014?nk=e65db50ff7e443a778cb38df8e9ad061"/>
+ <input type="hidden" name="location" value="http://saml.cam.idmndm.com"/>
+ <button type="submit" class="button-submit"><span>Login</span></button>
+ </div><!-- // .form-item -->
+ </fieldset>
+ </form>
+
+ </div>
+ <div class="ci-content">
+
+<h4 class="heading">Login using your Newspass account</h4>
+<form action="https://idp.news.com.au/idp/Authn/rest" method="POST" class="formBuilder">
+ <fieldset>
+ <legend><span class="legend">User Login</span></legend>
+ <div class="form-item fipos-1">
+ <label for="cam_username">Username <span class="required"><abbr title="required">*</abbr></span></label>
+ <input type="text" id="cam_username" name="username" class="required-field email"/>
+ </div>
+ <div class="form-item fipos-2">
+ <label for="cam_password">Password <span class="required"><abbr title="required">*</abbr></span></label>
+ <input type="password" id="cam_password" name="password" class="required-field password"/>
+ </div>
+ <div class="form-item fipos-3">
+ <div class="form-checkbox-item">
+ <input type="checkbox" id="cam_remember_me" name="remember_me" checked=""/>
+ <label for="cam_remember_me">Remember me</label>
+ </div>
+ </div>
+ <div class="form-item fipos-4 form-item-submit">
+ <input type="hidden" name="channel" value="msite"/>
+ <input type="hidden" name="site" value="HeraldSun"/>
+ <input type="hidden" name="cancelUrl" value="http://m.heraldsun.com.au/remote/talogin-error.html"/>
+ <input type="hidden" name="relayState" value="http://m.heraldsun.com.au/news/opinion/angry-media-wont-buckle-over-new-surveillance-laws/story-fni0fha6-1227261886014?nk=e65db50ff7e443a778cb38df8e9ad061"/>
+ <input type="hidden" name="location" value="http://saml.cam.idmndm.com"/>
+ <button type="submit" class="button-submit"><span>Login</span></button>
+ </div>
+ </fieldset>
+</form>
+
+ </div>
+ <div class="ci-related">
+ <ul class="related">
+ <li><a class="password" href="https://myaccount.news.com.au/heraldsun/forgotPassword">Forgot your password?</a></li>
+ </ul>
+ </div>
+ <div class="ci-footer">
+ <ul class="more-links">
+ <li>Subscribe now to access Herald Sun.</li>
+ <li class="btn-subscribe"><a class="subscribe" href="http://subscription.news.com.au/heraldsun/offers">Subscribe</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ </div> <!-- .network-login -->
+ </div> <!-- .network-account -->
+ <div id="mobile-footer-nav" class="site-nav">
+
+ <div class="module navigation-module footer-nav follow-us sectionref-footer-top id1226899054033 ">
+ <div class="module-content">
+ <ul class=" tier-1">
+ <li class="first">
+ <span>Follow Us</span>
+ <ul class=" tier-2">
+ <li class="facebook" title="Facebook" data-class=" first">
+ <a href="http://www.facebook.com/heraldsun">facebook</a>
+ </li>
+ <li class="twitter" title="Twitter">
+ <a href="http://twitter.com/theheraldsun">twitter</a>
+ </li>
+ <li class="instagram" title="Instagram">
+ <a href="http://instagram.com/heraldsunphoto">instagram</a>
+ </li>
+ <li class="gplus" title="Google+">
+ <a href="https://plus.google.com/103153711572615333666/posts">google+</a>
+ </li>
+ <li class="email" title="Email" data-class=" last">
+ <a href="http://pages.e.newsdigitalmedia.com.au/GPC?a=HeraldSun">email</a>
+ </li>
+ </ul>
+ <!-- // .tier-2 -->
+ </li>
+ <li class="footertop-nav last">
+
+ <ul class=" tier-2">
+ <li class="backtotop-nav first">
+ <a href="#page">Back To Top</a>
+ </li>
+
+ <li class="login">
+ <a href="/login">Log In</a>
+ </li>
+
+ <li class="signup-nav">
+ <a href="http://m.heraldsun.com.au/subscribe/news/1/?sourceCode=HSWEB_MOB539">Subscribe</a>
+ </li>
+ <li class="logout-nav">
+ <a href="https://sslcam.news.com.au/cam/logout?url=http://m.heraldsun.com.au">Log Out</a>
+ </li>
+ <li class="nav-external myaccount last">
+ <a href="https://myaccount.news.com.au/heraldsun/viewAccount">My Account</a>
+ </li>
+ </ul>
+ <!-- // .tier-2 -->
+ </li>
+ </ul>
+ <!-- // .tier-1 -->
+ </div><!-- // .module-content -->
+ </div><!-- // .module.navigation-module -->
+
+ </div>
+ <div id="footer-tools-fonts">
+ <ul><li id="footer-tools-small"><a name="footer-tools-small">Small</a></li>
+ <li id="footer-tools-default"><a name="footer-tools-default">Default</a></li>
+ <li id="footer-tools-large"><a name="footer-tools-large">Large</a></li></ul>
+ </div>
+ <div id="footer-legals">
+ <div class="module navigation-module sectionref-footer-bottom id1226612506289 ">
+ <div class="module-content">
+ <ul class=" tier-1">
+ <li class="footer-disclaimer first">
+ <a href="http://www.newscorpaustraliaprivacy.com">find out more about our policy and your choices, including how to opt-out here</a>
+ </li>
+ <li class="desktop">
+ <a href="http://www.heraldsun.com.au">Desktop Site</a>
+ </li>
+ <li class="digitalprint">
+ <a href="/digitalprinteditions">Digital Print Edition</a>
+ </li>
+ <li>
+ <a href="http://www.newscorpaustraliaprivacy.com ">Privacy Policy</a>
+ </li>
+ <li>
+ <a href="http://www.newscorpaustraliaprivacy.com/index.html#optout">Relevant Ads Opt-out</a>
+ </li>
+ <li>
+ <a href="http://www.newscorpaustraliaprivacy.com/index.html#collect">Cookie Policy</a>
+ </li>
+ <li>
+ <a href="/help">Help</a>
+ </li>
+ <li>
+ <a href="/help/contact-us">Contact Us</a>
+ </li>
+ <li>
+ <a href="/network">More News Corp Sites</a>
+ </li>
+ <li>
+ <a href="/help/termsconditions">Terms of Use</a>
+ </li>
+ <li>
+ <a href="/help/sitemap">Site Map</a>
+ </li>
+ <li>
+ <a href="/help/subscription-terms">Subscription Terms</a>
+ </li>
+ <li>
+ <a href="http://www.heraldsun.com.au/group">Group Subscription Terms</a>
+ </li>
+ <li class="last">
+ Copyright Herald and Weekly Times. All times AEST (GMT +10:00)
+ </li>
+ </ul>
+ <!-- // .tier-1 -->
+ </div><!-- // .module-content -->
+ </div><!-- // .module.navigation-module -->
+ <p class="copyright">© Herald and Weekly Times. All times AEDT (GMT +11:00) </p>
+ </div>
+ </div>
+ <div id="resources">
+ <!-- Site includes [HeraldSun:null] last generated at Sat Mar 21 11:31:27 EST 2015 -->
+<!-- site include -->
+<!-- Resource Included [{id=1226636939151, type=News_Resources_Group}]-->
+<!-- Resource Included [{id=1226305922727, type=News_Javascript}, {id=1226636894336, type=News_Resources_Group}, {id=1226641842346, type=News_Resources_Group}, {id=1226766835979, type=News_Resources_Group}]-->
+<!-- Resource Included [{id=1226636896198, type=News_Javascript}, {id=1226768825469, type=News_Javascript}, {id=1226636896348, type=News_Javascript}, {id=1226636941781, type=News_Stylesheet}, {id=1226636941933, type=News_Stylesheet}, {id=1226975215417, type=News_Resources_Group}, {id=1226636898522, type=News_Resources_Group}, {id=1226717662103, type=News_Resources_Group}, {id=1227125508198, type=News_Resources_Group}]-->
+<!-- Resource Included [{id=1226975215371, type=News_Javascript}]-->
+<!-- Resource Included [{id=1226636898905, type=News_Javascript}]-->
+<!-- Resource Included [{id=1227075473855, type=News_Resources_Group}]-->
+<!-- Resource Included [{id=1227023921688, type=News_Javascript}, {id=1227023921564, type=News_Stylesheet}]-->
+<!-- Resource Included [{id=1227125511995, type=News_Javascript}]-->
+<!-- Resource Included [{id=1226641837720, type=News_Javascript}, {id=1226641840116, type=News_Stylesheet}]-->
+<!-- Resource Included [{id=1226866557087, type=News_Stylesheet}, {id=1226766829330, type=News_Javascript}, {id=1226858257711, type=News_Javascript}, {id=1226766829929, type=News_Javascript}]-->
+<!-- //site include -->
+ <script type="text/javascript" src="http://resources.newscdn.com.au/cs/video/stable/build/player.js"></script>
+ <script type="text/javascript" src="http://resources.newscdn.com.au/cs/metered/current/deployBucketA/js/metered.min.js"></script>
+ <script type="text/javascript">
+ //<![CDATA[
+ $(function(){
+ if (typeof(ndm) !== 'undefined' && ndm.metered && ndm.metered.init) {
+ ndm.metered.init();
+ }
+});
+ //]]>
+ </script>
+ </div><!-- // # resources -->
+ <div id="stats">
+ <!-- Start Tealium -->
+ <script type="text/javascript">
+ var utagSections = [];
+ if (window.ndm && window.ndm.page && window.ndm.page.section) {
+ utagSections = ndm.page.section.toLowerCase().split(".");
+ }
+ utag_data = window.utag_data || {};
+ utag_data.pn = "heraldsun | news | story | angry media won8217t buckle over new surveillance laws";
+ utag_data.net_section = utagSections[0];
+ utag_data.net_subsec = utagSections[1];
+ utag_data.net_subsubsec = utagSections[2];
+ utag_data.net_subsubsubsec = utagSections[3];
+ utag_data.net_subsubsubsubsec = utagSections[4];
+ utag_data.net_content_type = (utag_data.net_content_type ? utag_data.net_content_type + "+" : "") + "story";
+ utag_data.mp_story_id = "1227261886014";
+ utag_data.mp_section_id = "1226617568574";
+ utag_data.mp_mlc_path = "/news/opinion/laurieoakes/story";
+ utag_data.net_article_id = "1227261886014";
+ utag_data.net_article_byline = "Laurie Oakes";
+ utag_data.net_article_headline = "Angry media won&#8217;t buckle on surveillance laws";
+ utag_data.net_platform = "mobile";
+ utag_data.net_article_source = "HeraldSun";
+ </script>
+ <script type="text/javascript" src="//tags.tiqcdn.com/utag/newsltd/hwt.mobile/prod/utag.js"></script>
+ <!-- End Tealium -->
+ </div><!-- // # stats -->
+</div><!-- // #page -->
+
+
+</body></html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/hidden-nodes/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/hidden-nodes/expected-images.json
new file mode 100644
index 000000000..0637a088a
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/hidden-nodes/expected-images.json
@@ -0,0 +1 @@
+[] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/hidden-nodes/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/hidden-nodes/expected-metadata.json
new file mode 100644
index 000000000..332533a12
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/hidden-nodes/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.",
+ "Image": null,
+ "Title": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/hidden-nodes/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/hidden-nodes/expected.html
new file mode 100644
index 000000000..431532997
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/hidden-nodes/expected.html
@@ -0,0 +1,14 @@
+<div>
+
+ <p>
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
+ </p>
+ <h2>
+ Secondary header
+ </h2>
+
+ <h2>
+ Third header
+ </h2>
+
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/hidden-nodes/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/hidden-nodes/source.html
new file mode 100644
index 000000000..e0699a003
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/hidden-nodes/source.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <meta charset="utf-8" />
+ <title>
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt
+ </title>
+ </head>
+ <body>
+ <h1>
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt
+ </h1>
+ <p>
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
+ </p>
+ <h2>
+ Secondary header
+ </h2>
+ <p style="display: none;">
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
+ </p>
+ <h2>
+ Third header
+ </h2>
+ <p hidden="hidden">
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
+ </p>
+ </body>
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/hukumusume/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/hukumusume/expected-images.json
new file mode 100644
index 000000000..88d2990ee
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/hukumusume/expected-images.json
@@ -0,0 +1,7 @@
+[
+ "http:\/\/fakehost\/test\/..\/..\/..\/gazou\/pc_gazou\/aesop\/aesop052.jpg",
+ "http:\/\/fakehost\/test\/..\/..\/..\/..\/366\/logo_bana\/corner_1.gif",
+ "http:\/\/fakehost\/test\/..\/..\/..\/..\/366\/logo_bana\/corner_2.gif",
+ "http:\/\/fakehost\/test\/..\/..\/..\/gazou\/origami_gazou\/kantan\/dogface.gif",
+ "http:\/\/fakehost\/test\/..\/..\/..\/gazou\/origami_gazou\/kantan\/dog.gif"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/hukumusume/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/hukumusume/expected-metadata.json
new file mode 100644
index 000000000..b16149a42
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/hukumusume/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "福娘童話集 > きょうのイソップ童話 > 1月のイソップ童話 > 欲張りなイヌ",
+ "Image": null,
+ "Title": "欲張りなイヌ <福娘童話集 きょうのイソップ童話>",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/hukumusume/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/hukumusume/expected.html
new file mode 100644
index 000000000..defbcc10c
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/hukumusume/expected.html
@@ -0,0 +1,39 @@
+<div width="619">
+ <p>
+ <a href="http://fakehost/test/../../../index.html">福娘童話集</a> &gt; <a href="http://fakehost/test/../index.html">きょうのイソップ童話</a> &gt; <a href="http://fakehost/test/../itiran/01gatu.htm">1月のイソップ童話</a> &gt; 欲張りなイヌ
+ </p>
+ <div>
+ <p><span color="#FF0000" size="+2">元旦のイソップ童話</span></p><p><img alt="よくばりなイヌ" height="360" src="http://fakehost/test/../../../gazou/pc_gazou/aesop/aesop052.jpg" width="480"></img></p><p>
+ 欲張りなイヌ</p><p><a href="http://hukumusume.com/douwa/English/aesop/01/01_j.html">ひらがな</a> ←→ <a href="http://hukumusume.com/douwa/English/aesop/01/01_j&amp;E.html">日本語・英語</a> ←→ <a href="http://hukumusume.com/douwa/English/aesop/01/01_E.html">English</a></p></div>
+ <div>
+ <table readabilityDataTable="0"><tbody><tr><td>
+ <img height="7" src="http://fakehost/test/../../../../366/logo_bana/corner_1.gif" width="7"></img></td>
+ <td>
+ <span color="#FF0000"><b>おりがみをつくろう</b></span>
+ </td>
+ <td>
+ <span size="-1">( <a href="http://www.origami-club.com/index.html">おりがみくらぶ</a> より)</span>
+ </td>
+ <td>
+ <img height="7" src="http://fakehost/test/../../../../366/logo_bana/corner_2.gif" width="7"></img></td>
+ </tr><tr><td colspan="4">
+ <p>
+ <a href="http://www.origami-club.com/easy/dogfase/index.html"><span size="+2"><img alt="犬の顔の折り紙" height="51" src="http://fakehost/test/../../../gazou/origami_gazou/kantan/dogface.gif" width="73"></img>いぬのかお</span></a>   <a href="http://www.origami-club.com/easy/dog/index.html"><img alt="犬の顔の紙" height="43" src="http://fakehost/test/../../../gazou/origami_gazou/kantan/dog.gif" width="62"></img><span size="+2">いぬ</span></a>
+ </p></td>
+ </tr></tbody></table></div><table readabilityDataTable="0"><tbody><tr><td>
+ ♪音声配信(html5)
+ </td>
+ </tr><tr><td>
+ <audio controls="" src="http://ohanashi2.up.seesaa.net/mp3/ae_0101.mp3"></audio></td>
+ </tr><tr><td>
+ <a href="http://www.voiceblog.jp/onokuboaki/"><span size="-1">亜姫の朗読☆ イソップ童話より</span></a>
+ </td>
+ </tr></tbody></table><p>
+  肉をくわえたイヌが、橋を渡っていました。  ふと下を見ると、川の中にも肉をくわえたイヌがいます。 イヌはそれを見て、思いました。(あいつの肉の方が、大きそうだ)  イヌは、くやしくてたまりません。 (そうだ、あいつをおどかして、あの肉を取ってやろう)  そこでイヌは、川の中のイヌに向かって思いっきり吠えました。 「ウゥー、ワン!!」  そのとたん、くわえていた肉はポチャンと川の中に落ちてしまいました。 「ああー、ぁぁー」  川の中には、がっかりしたイヌの顔がうつっています。  さっきの川の中のイヌは、水にうつった自分の顔だったのです。  同じ物を持っていても、人が持っている物の方が良く見え、また、欲張るとけっきょく損をするというお話しです。
+ </p>
+ <p>
+ おしまい
+ </p>
+ <div>
+ <p></p></div>
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/hukumusume/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/hukumusume/source.html
new file mode 100644
index 000000000..7cbaacd6f
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/hukumusume/source.html
@@ -0,0 +1,356 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>
+ 欲張りなイヌ <福娘童話集 きょうのイソップ童話>
+ </title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ </head>
+ <body bgcolor="#FFFFFF" text="#000000">
+ <table width="969" border="0" align="center" cellpadding="0" cellspacing="0">
+ <tbody>
+ <tr>
+ <td colspan="5" height="12">
+ <div align="center">
+ <table width="100%" border="0">
+ <tbody>
+ <tr>
+ <td width="27%" align="center">
+ <a href="../../../index.html">福娘童話集</a> &gt; <a href="../index.html">きょうのイソップ童話</a>
+ </td>
+ <td width="46%" align="center">
+ <a href="http://hukumusume.com/douwa/pc/aesop/index.html"><img src="../../../gazou/pc_gazou/all/aesop_logo_llll.gif" alt="福娘童話集 きょうのイソップ童話" width="320" height="100" border="0" /></a>
+ </td>
+ <td width="27%" align="center" valign="bottom">
+ <a href="http://hukumusume.com/douwa/index.html"><img src="../../../gazou/pc_gazou/all/douwa_logo_top_.gif" alt="童話・昔話・おとぎ話の福娘童話集" width="170" height="50" border="0" /></a>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td width="166" height="830" valign="top">
+ <table width="166" border="0" cellpadding="0" cellspacing="0" bgcolor="#C8FFC8">
+ <tbody>
+ <tr>
+ <td height="7" valign="top">
+ <img src="../../../../366/logo_bana/corner_1.gif" width="7" height="7" />
+ </td>
+ <td></td>
+ <td align="right" valign="top">
+ <img src="../../../../366/logo_bana/corner_2.gif" width="7" height="7" />
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <table width="166" border="0" cellpadding="0" cellspacing="0">
+ <tbody>
+ <tr>
+ <td width="310" height="610" align="center" bgcolor="#C8FFC8">
+ <script type="text/javascript">
+ //<![CDATA[
+ <!--
+ google_ad_client = "ca-pub-2746615155806331";
+ /* 1a月160x600 */
+ google_ad_slot = "0764542773";
+ google_ad_width = 160;
+ google_ad_height = 600;
+ //-->
+ //]]>
+ </script>
+ <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
+ </td>
+ </tr>
+ <tr>
+ <td align="center">
+ &#160;
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </td>
+ <td width="619" valign="top">
+ <p align="center">
+ <a href="../../../index.html">福娘童話集</a> &gt; <a href="../index.html">きょうのイソップ童話</a> &gt; <a href="../itiran/01gatu.htm">1月のイソップ童話</a> &gt; 欲張りなイヌ
+ </p>
+ <p align="center">
+ <font color="#FF0000" size="+2">元旦のイソップ童話</font><br />
+ <br />
+ <br />
+ <br />
+ <img src="../../../gazou/pc_gazou/aesop/aesop052.jpg" alt="よくばりなイヌ" width="480" height="360" border="1" /><br />
+ <br />
+ <br />
+ <br />
+ 欲張りなイヌ<br />
+ <br />
+ <br />
+ <br />
+ <a href="http://hukumusume.com/douwa/English/aesop/01/01_j.html">ひらがな</a> ←→ <a href="http://hukumusume.com/douwa/English/aesop/01/01_j&amp;E.html">日本語・英語</a> ←→ <a href="http://hukumusume.com/douwa/English/aesop/01/01_E.html">English</a>
+ </p>
+ <table width="100%" border="0" cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td height="90" align="center">
+ <table width="80%" border="0" cellpadding="0" cellspacing="0" bgcolor="#C8FFC8">
+ <tbody>
+ <tr>
+ <td width="35%" height="25" valign="top">
+ <img src="../../../../366/logo_bana/corner_1.gif" width="7" height="7" />
+ </td>
+ <td width="29%" align="center">
+ <font color="#FF0000"><b>おりがみをつくろう</b></font>
+ </td>
+ <td width="35%" valign="bottom">
+ <font size="-1">( <a href="http://www.origami-club.com/index.html">おりがみくらぶ</a> より)</font>
+ </td>
+ <td width="1%" align="right" valign="top">
+ <img src="../../../../366/logo_bana/corner_2.gif" width="7" height="7" />
+ </td>
+ </tr>
+ <tr>
+ <td height="80" colspan="4" align="center" valign="top">
+ <table width="98%" border="0" cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td height="75" align="center" valign="middle" bgcolor="#ECFFEC">
+ <a href="http://www.origami-club.com/easy/dogfase/index.html"><font size="+2"><img src="../../../gazou/origami_gazou/kantan/dogface.gif" alt="犬の顔の折り紙" width="73" height="51" border="0" />いぬのかお</font></a>   <a href="http://www.origami-club.com/easy/dog/index.html"><img src="../../../gazou/origami_gazou/kantan/dog.gif" alt="犬の顔の紙" width="62" height="43" border="0" /><font size="+2">いぬ</font></a>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <table width="100%" border="0">
+ <tbody>
+ <tr>
+ <td align="center">
+ ♪音声配信(html5)
+ </td>
+ </tr>
+ <tr>
+ <td align="center">
+ <audio src="http://ohanashi2.up.seesaa.net/mp3/ae_0101.mp3" controls=""></audio>
+ </td>
+ </tr>
+ <tr>
+ <td align="center">
+ <a href="http://www.voiceblog.jp/onokuboaki/"><font size="-1">亜姫の朗読☆ イソップ童話より</font></a>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>
+  肉をくわえたイヌが、橋を渡っていました。  ふと下を見ると、川の中にも肉をくわえたイヌがいます。 イヌはそれを見て、思いました。(あいつの肉の方が、大きそうだ)  イヌは、くやしくてたまりません。 (そうだ、あいつをおどかして、あの肉を取ってやろう)  そこでイヌは、川の中のイヌに向かって思いっきり吠えました。 「ウゥー、ワン!!」  そのとたん、くわえていた肉はポチャンと川の中に落ちてしまいました。 「ああー、ぁぁー」  川の中には、がっかりしたイヌの顔がうつっています。  さっきの川の中のイヌは、水にうつった自分の顔だったのです。  同じ物を持っていても、人が持っている物の方が良く見え、また、欲張るとけっきょく損をするというお話しです。
+ </p>
+ <p align="center">
+ おしまい
+ </p>
+ <p align="center">
+ <a href="javascript:history.back();" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image10','','../../../gazou/pc_gazou/all/top_bana/back_logo_b.gif',1)"><img src="../../../gazou/pc_gazou/all/top_bana/back_logo_r.gif" alt="前のページへ戻る" name="Image10" width="175" height="32" border="0" id="Image10" /></a><br />
+ <br />
+ <br />
+ <br />
+ <script type="text/javascript">
+ //<![CDATA[
+
+ <!--
+ google_ad_client = "ca-pub-2746615155806331";
+ /* 1月336x280 */
+ google_ad_slot = "6046482409";
+ google_ad_width = 336;
+ google_ad_height = 280;
+ //-->
+ //]]>
+ </script>
+ <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
+ </p>
+ </td>
+ <td width="10">
+ <img src="file:///C|/Documents%20and%20Settings/%E7%A6%8F%E5%A8%98note/%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88%E3%83%83%E3%83%97/company_website15/image/spacer.gif" width="1" height="1" />
+ </td>
+ <td width="166" valign="top">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#C8FFC8">
+ <tbody>
+ <tr>
+ <td height="7" valign="top">
+ <img src="../../../../366/logo_bana/corner_1.gif" width="7" height="7" />
+ </td>
+ <td></td>
+ <td align="right" valign="top">
+ <img src="../../../../366/logo_bana/corner_2.gif" width="7" height="7" />
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <table width="166" border="0" bgcolor="#C8FFC8">
+ <tbody>
+ <tr>
+ <td width="156" height="50">
+ &#160;&#160;&#160;&#160; <font size="-1"><b>1月 1日の豆知識</b></font><br />
+ <br />
+ <font size="-2"><u><br />
+ <br />
+ 366日への旅</u></font>
+ </td>
+ </tr>
+ <tr>
+ <td height="50" bgcolor="#ECFFEC">
+ <img src="file:///C|/Documents%20and%20Settings/%E7%A6%8F%E5%A8%98note/%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88%E3%83%83%E3%83%97" width="1" height="1" /><b><font size="-1">きょうの記念日</font></b><br />
+ <br />
+ <a href="../../../../366/kinenbi/pc/01gatu/1_01.htm"><font size="-1">元旦</font></a>
+ </td>
+ </tr>
+ <tr>
+ <td height="50" bgcolor="#ECFFEC">
+ <img src="file:///C|/Documents%20and%20Settings/%E7%A6%8F%E5%A8%98note/%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88%E3%83%83%E3%83%97/company_website15/image/spacer.gif" width="1" height="1" /><b><font size="-1">きょうの誕生花</font></b><br />
+ <br />
+ <a href="../../../../366/hana/pc/01gatu/1_01.htm"><font size="-1">松(まつ)</font></a>
+ </td>
+ </tr>
+ <tr>
+ <td height="50" bgcolor="#ECFFEC">
+ <b><font size="-1">きょうの誕生日・出来事</font></b><br />
+ <br />
+ <a href="../../../../366/birthday/pc/01gatu/1_01.htm"><font size="-1">1949年 Mr.マリック(マジシャン)</font></a>
+ </td>
+ </tr>
+ <tr>
+ <td height="50" bgcolor="#ECFFEC">
+ <b><font size="-1">恋の誕生日占い</font></b><br />
+ <br />
+ <a href="../../../../sakura/uranai/birthday/01/01.html"><font size="-1">自分の考えをしっかりと持った女の子。</font></a>
+ </td>
+ </tr>
+ <tr>
+ <td height="50" bgcolor="#ECFFEC">
+ <b><font size="-1">なぞなぞ小学校</font></b><br />
+ <br />
+ <a href="../../../../nazonazo/new/2012/04/02.html"><font size="-1">○(丸)を取ったらお母さんになってしまう男の人は?</font></a>
+ </td>
+ </tr>
+ <tr>
+ <td height="50" bgcolor="#ECFFEC">
+ <b><font size="-1">あこがれの職業紹介</font></b><br />
+ <br />
+ <a href="../../../../sakura/navi/work/2017/041.html"><font size="-1">歌手</font></a>
+ </td>
+ </tr>
+ <tr>
+ <td height="50" bgcolor="#ECFFEC">
+ <b><font size="-1">恋の魔法とおまじない</font></b> 001<br />
+ <br />
+ <a href="../../../../omajinai/new/2012/00/re01.html"><font size="-1">両思いになれる おまじない</font></a>
+ </td>
+ </tr>
+ <tr>
+ <td height="50" bgcolor="#C8FFC8">
+ <font size="-1">  <b>1月 1日の童話・昔話</b><br />
+ <br />
+ <u><font size="-2"><br />
+ <br />
+ 福娘童話集</font></u></font>
+ </td>
+ </tr>
+ <tr>
+ <td height="50" bgcolor="#ECFFEC">
+ <b><font size="-1">きょうの日本昔話</font></b><br />
+ <br />
+ <a href="../../../../douwa/pc/jap/01/01.htm"><font size="-1">ネコがネズミを追いかける訳</font></a>
+ </td>
+ </tr>
+ <tr>
+ <td height="50" bgcolor="#ECFFEC">
+ <b><font size="-1">きょうの世界昔話<img src="file:///C|/Documents%20and%20Settings/%E7%A6%8F%E5%A8%98note/%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88%E3%83%83%E3%83%97/company_website15/image/spacer.gif" width="1" height="1" /></font></b><br />
+ <br />
+ <a href="../../../../douwa/pc/world/01/01a.htm"><font size="-1">モンゴルの十二支話</font></a>
+ </td>
+ </tr>
+ <tr>
+ <td height="50" bgcolor="#ECFFEC">
+ <img src="file:///C|/Documents%20and%20Settings/%E7%A6%8F%E5%A8%98note/%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88%E3%83%83%E3%83%97/company_website15/image/spacer.gif" width="1" height="1" /><b><font size="-1">きょうの日本民話</font></b><br />
+ <br />
+ <a href="../../../../douwa/pc/minwa/01/01c.html"><font size="-1">仕事の取替えっこ</font></a>
+ </td>
+ </tr>
+ <tr>
+ <td height="50" bgcolor="#ECFFEC">
+ <b><font size="-1">きょうのイソップ童話</font></b><br />
+ <br />
+ <a href="../../../../douwa/pc/aesop/01/01.htm"><font size="-1">欲張りなイヌ</font></a>
+ </td>
+ </tr>
+ <tr>
+ <td height="50" bgcolor="#ECFFEC">
+ <b><font size="-1">きょうの江戸小話</font></b><br />
+ <br />
+ <a href="../../../../douwa/pc/kobanashi/01/01.htm"><font size="-1">ぞうきんとお年玉</font></a>
+ </td>
+ </tr>
+ <tr>
+ <td height="50" bgcolor="#ECFFEC">
+ <b><font size="-1">きょうの百物語</font></b><br />
+ <br />
+ <a href="../../../../douwa/pc/kaidan/01/01.htm"><font size="-1">百物語の幽霊</font></a>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <table width="100%" border="0" bgcolor="#C8FFC8">
+ <tbody>
+ <tr>
+ <td height="30" align="center" bgcolor="#C8FFC8">
+ <b><font size="-1">福娘のサイト</font></b>
+ </td>
+ </tr>
+ <tr>
+ <td height="60" bgcolor="#ECFFEC">
+ <font size="-1"><b>366日への旅</b><br />
+ <br />
+ <a href="http://hukumusume.com/366/">毎日の記念日・誕生花 ・有名人の誕生日と性格判断</a></font>
+ </td>
+ </tr>
+ <tr>
+ <td height="60" bgcolor="#ECFFEC">
+ <font size="-1"><b>福娘童話集</b><br />
+ <br />
+ <a href="http://hukumusume.com/douwa/">世界と日本の童話と昔話</a></font>
+ </td>
+ </tr>
+ <tr>
+ <td height="60" bgcolor="#ECFFEC">
+ <font size="-1"><b>女の子応援サイト -さくら-</b><br />
+ <br />
+ <a href="http://hukumusume.com/sakura/index.html">誕生日占い、お仕事紹介、おまじない、など</a></font>
+ </td>
+ </tr>
+ <tr>
+ <td height="60" bgcolor="#ECFFEC">
+ <font size="-1"><b>子どもの病気相談所</b><br />
+ <br />
+ <a href="http://hukumusume.com/my_baby/sick/">病気検索と対応方法、症状から検索するWEB問診</a></font>
+ </td>
+ </tr>
+ <tr>
+ <td height="60" bgcolor="#ECFFEC">
+ <font size="-1"><b>世界60秒巡り</b><br />
+ <br />
+ <a href="http://hukumusume.com/366/world/">国旗国歌や世界遺産など、世界の国々の豆知識</a></font>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </body>
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/iab-1/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/iab-1/expected-images.json
new file mode 100644
index 000000000..f548bd9b2
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/iab-1/expected-images.json
@@ -0,0 +1,4 @@
+{
+ "0": "http:\/\/www.iab.com\/wp-content\/uploads\/2015\/10\/getting-lean-with-digital-ad-ux-300x250.jpg",
+ "2": "http:\/\/www.iab.com\/wp-content\/uploads\/2015\/05\/auto-draft-16-150x150.jpg"
+} \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/iab-1/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/iab-1/expected-metadata.json
new file mode 100644
index 000000000..a8d6766bd
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/iab-1/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "By\n\t\t\tScott Cunningham",
+ "Direction": null,
+ "Excerpt": "We messed up. As technologists, tasked with delivering content and services to users, we lost track of the user experience. Twenty years ago we saw an explosion of websites, built by developers around the world, providing all forms of content. This was the beginning of an age of enlightenment, the intersection of content and technology. … Continued",
+ "Image": "http:\/\/www.iab.com\/wp-content\/uploads\/2015\/10\/getting-lean-with-digital-ad-ux-300x250.jpg",
+ "Title": "Getting LEAN with Digital Ad UX | IAB",
+ "SiteName": "IAB"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/iab-1/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/iab-1/expected.html
new file mode 100644
index 000000000..dd4faf3b4
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/iab-1/expected.html
@@ -0,0 +1,30 @@
+<div>
+ <div>
+ <p>We messed up. As technologists, tasked with delivering content and services to users, we lost track of the user experience.</p>
+<p>Twenty years ago we saw an explosion of websites, built by developers around the world, providing all forms of content. This was the beginning of an age of enlightenment, the intersection of content and technology. Many of us in the technical field felt compelled, and even empowered, to produce information as the distribution means for mass communication were no longer restricted by a high barrier to entry.</p>
+<p>In 2000, the dark ages came when the dot-com bubble burst. We were told that our startups were gone or that our divisions sustained by corporate parent companies needed to be in the black. It was a wakeup call that led to a renaissance age. Digital advertising became the foundation of an economic engine that, still now, sustains the free and democratic World Wide Web. In digital publishing, we strived to balance content, commerce, and technology. The content management systems and communication gateways we built to inform and entertain populations around the world disrupted markets and in some cases governments, informed communities of imminent danger, and liberated new forms of art and entertainment—all while creating a digital middle class of small businesses.</p>
+<p>We engineered not just the technical, but also the social and economic foundation that users around the world came to lean on for access to real time information. And users came to expect this information whenever and wherever they needed it. And more often than not, for anybody with a connected device, it was free.</p>
+<p>This was choice—powered by digital advertising—and premised on user experience.</p>
+<p>But we messed up.</p>
+<p>Through our pursuit of further automation and maximization of margins during the industrial age of media technology, we built advertising technology to optimize publishers’ yield of marketing budgets that had eroded after the last recession. Looking back now, our scraping of dimes may have cost us dollars in consumer loyalty. The fast, scalable systems of targeting users with ever-heftier advertisements have slowed down the public internet and drained more than a few batteries. We were so clever and so good at it that we over-engineered the capabilities of the plumbing laid down by, well, ourselves. This steamrolled the users, depleted their devices, and tried their patience.</p>
+<p>The rise of ad blocking poses a threat to the internet and could potentially drive users to an enclosed platform world dominated by a few companies. We have let the fine equilibrium of content, commerce, and technology get out of balance in the open web. We had, and still do have, a responsibility to educate the business side, and in some cases to push back. We lost sight of our social and ethical responsibility to provide a safe, usable experience for anyone and everyone wanting to consume the content of their choice.</p>
+<p>We need to bring that back into alignment, starting right now.</p>
+<p><a href="http://www.iab.com/wp-content/uploads/2015/10/getting-lean-with-digital-ad-ux.jpg"><img alt="Getting LEAN with Digital Ad UX" height="250" src="http://www.iab.com/wp-content/uploads/2015/10/getting-lean-with-digital-ad-ux-300x250.jpg" width="300"></img></a>Today, the IAB Tech Lab is launching the L.E.A.N. Ads program. Supported by the Executive Committee of the IAB Tech Lab Board, IABs around the world, and hundreds of member companies, L.E.A.N. stands for Light, Encrypted, Ad choice supported, Non-invasive ads. These are principles that will help guide the next phases of advertising technical standards for the global digital advertising supply chain.</p>
+<p>As with any other industry, standards should be created by non-profit standards-setting bodies, with many diverse voices providing input. We will invite all parties for public comment, and make sure consumer interest groups have the opportunity to provide input.</p>
+<p>L.E.A.N. Ads do not replace the current advertising standards many consumers still enjoy and engage with while consuming content on our sites across all IP enabled devices. Rather, these principles will guide an alternative set of standards that provide choice for marketers, content providers, and consumers.</p>
+<p>Among the many areas of concentration, we must also address frequency capping on retargeting in Ad Tech and make sure a user is targeted appropriately before, but never AFTER they make a purchase. If we are so good at reach and scale, we can be just as good, if not better, at moderation. Additionally, we must address volume of ads per page as well as continue on the path to viewability. The dependencies here are critical to an optimized user experience.</p>
+<p>The consumer is demanding these actions, challenging us to do better, and we must respond.</p>
+<p>The IAB Tech Lab will continue to provide the tools for publishers in the digital supply chain to have a dialogue with users about their choices so that content providers can generate revenue while creating value. Publishers should have the opportunity to provide rich advertising experiences, L.E.A.N. advertising experiences, and subscription services. Or publishers can simply deny their service to users who choose to keep on blocking ads. That is all part of elasticity of consumer tolerance and choice.</p>
+<p>Finally, we must do this in an increasingly fragmented market, across screens. We must do this in environments where entire sites are blocked, purposefully or not. Yes, it is disappointing that our development efforts will have to manage with multiple frameworks while we work to supply the economic engine to sustain an open internet. However, our goal is still to provide diverse content and voices to as many connected users as possible around the world.</p>
+<p>That is user experience.</p>
+
+<p>IAB Tech Lab Members can join the IAB Tech Lab Ad Blocking Working Group, please email <a href="mailto:[email protected]">[email protected]</a> for more information.</p><p>Read <a href="http://www.iab.com/insights/ad-blocking/" target="_blank">more about ad blocking here</a>.</p>
+ </div>
+ </div><div id="post-author"><div>
+ <figure><img alt="Auto Draft 14" src="http://www.iab.com/wp-content/uploads/2015/05/auto-draft-16-150x150.jpg"></img></figure><div>
+ <h4>About the author</h4>
+ <p><strong>Scott Cunningham</strong></p>
+ <p>Senior Vice President of Technology and Ad Operations at IAB, and General Manager of the IAB Tech Lab</p>
+ </div>
+ </div>
+</div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/iab-1/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/iab-1/source.html
new file mode 100644
index 000000000..a8c36b957
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/iab-1/source.html
@@ -0,0 +1,1103 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" prefix="og: http://ogp.me/ns#" class="js flexbox flexboxlegacy canvas canvastext webgl no-touch geolocation postmessage no-websqldatabase indexeddb hashchange history draganddrop websockets rgba hsla multiplebgs backgroundsize borderimage borderradius boxshadow textshadow opacity cssanimations csscolumns cssgradients no-cssreflections csstransforms csstransforms3d csstransitions fontface generatedcontent video audio localstorage sessionstorage webworkers applicationcache svg inlinesvg smil svgclippaths"><head>
+ <meta charset="utf-8" />
+ <meta content="IE=edge" http-equiv="X-UA-Compatible" />
+ <title>Getting LEAN with Digital Ad UX | IAB</title>
+ <meta content="width=device-width, initial-scale=1" name="viewport" />
+
+ <link href="http://www.iab.com/feed/" title="IAB Feed" type="application/rss+xml" rel="alternate" />
+ <link href="http://fast.fonts.net/cssapi/be2c5049-bd2c-454d-97be-0b863908afc5.css" rel="stylesheet" type="text/css" />
+
+
+ <script async="" type="text/javascript" src="http://www.googletagservices.com/tag/js/gpt.js" style=""></script><script type="text/javascript">
+ // google dfp
+ var googletag = googletag || {};
+ googletag.cmd = googletag.cmd || [];
+ (function() {
+ var gads = document.createElement('script');
+ gads.async = true;
+ gads.type = 'text/javascript';
+ var useSSL = 'https:' == document.location.protocol;
+ gads.src = (useSSL ? 'https:' : 'http:') +
+ '//www.googletagservices.com/tag/js/gpt.js';
+ var node = document.getElementsByTagName('script')[0];
+ node.parentNode.insertBefore(gads, node);
+
+ })();
+</script>
+
+
+<!-- This site is optimized with the Yoast WordPress SEO plugin v1.7.3.3 - https://yoast.com/wordpress/plugins/seo/ -->
+<meta content="noindex,follow" name="robots" />
+<link href="http://www.iab.com/news/lean" rel="canonical" />
+<meta content="en_US" property="og:locale" />
+<meta content="article" property="og:type" />
+<meta content="Getting LEAN with Digital Ad UX | IAB" property="og:title" />
+<meta content="We messed up. As technologists, tasked with delivering content and services to users, we lost track of the user experience. Twenty years ago we saw an explosion of websites, built by developers around the world, providing all forms of content. This was the beginning of an age of enlightenment, the intersection of content and technology. … Continued" property="og:description" />
+<meta content="http://www.iab.com/news/lean" property="og:url" />
+<meta content="IAB" property="og:site_name" />
+<meta content="Ad Blocking" property="article:section" />
+<meta content="2015-10-15T08:00:26+00:00" property="article:published_time" />
+<meta content="2015-10-16T12:56:08+00:00" property="article:modified_time" />
+<meta content="2015-10-16T12:56:08+00:00" property="og:updated_time" />
+<meta content="http://www.iab.com/wp-content/uploads/2015/10/getting-lean-with-digital-ad-ux-300x250.jpg" property="og:image" />
+<meta content="summary" name="twitter:card" />
+<meta content="We messed up. As technologists, tasked with delivering content and services to users, we lost track of the user experience. Twenty years ago we saw an explosion of websites, built by developers around the world, providing all forms of content. This was the beginning of an age of enlightenment, the intersection of content and technology. … Continued" name="twitter:description" />
+<meta content="Getting LEAN with Digital Ad UX | IAB" name="twitter:title" />
+<meta content="IAB" name="twitter:domain" />
+<meta content="http://www.iab.com/wp-content/uploads/2015/10/getting-lean-with-digital-ad-ux-300x250.jpg" name="twitter:image:src" />
+<!-- / Yoast WordPress SEO plugin. -->
+
+ <script type="text/javascript">
+ window._wpemojiSettings = {"baseUrl":"http:\/\/s.w.org\/images\/core\/emoji\/72x72\/","ext":".png","source":{"concatemoji":"http:\/\/www.iab.com\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.3.1"}};
+ !function(a,b,c){function d(a){var c=b.createElement("canvas"),d=c.getContext&amp;&amp;c.getContext("2d");return d&amp;&amp;d.fillText?(d.textBaseline="top",d.font="600 32px Arial","flag"===a?(d.fillText(String.fromCharCode(55356,56812,55356,56807),0,0),c.toDataURL().length&gt;3e3):(d.fillText(String.fromCharCode(55357,56835),0,0),0!==d.getImageData(16,16,1,1).data[0])):!1}function e(a){var c=b.createElement("script");c.src=a,c.type="text/javascript",b.getElementsByTagName("head")[0].appendChild(c)}var f,g;c.supports={simple:d("simple"),flag:d("flag")},c.DOMReady=!1,c.readyCallback=function(){c.DOMReady=!0},c.supports.simple&amp;&amp;c.supports.flag||(g=function(){c.readyCallback()},b.addEventListener?(b.addEventListener("DOMContentLoaded",g,!1),a.addEventListener("load",g,!1)):(a.attachEvent("onload",g),b.attachEvent("onreadystatechange",function(){"complete"===b.readyState&amp;&amp;c.readyCallback()})),f=c.source||{},f.concatemoji?e(f.concatemoji):f.wpemoji&amp;&amp;f.twemoji&amp;&amp;(e(f.twemoji),e(f.wpemoji)))}(window,document,window._wpemojiSettings);
+ </script><script src="http://www.iab.com/wp-includes/js/wp-emoji-release.min.js?ver=4.3.1" type="text/javascript"></script>
+ <style type="text/css">
+img.wp-smiley,
+img.emoji {
+ display: inline !important;
+ border: none !important;
+ box-shadow: none !important;
+ height: 1em !important;
+ width: 1em !important;
+ margin: 0 .07em !important;
+ vertical-align: -0.1em !important;
+ background: none !important;
+ padding: 0 !important;
+}
+</style>
+<link media="all" type="text/css" href="http://www.iab.com/wp-content/themes/iab/assets/css/main.min.css?82f9d716b94e6392728220b0edf0e520" id="iab_css-css" rel="stylesheet" />
+<link media="all" type="text/css" href="http://www.iab.com/wp-content/themes/iab/assets/css/custom_styles.css" id="iab_custom_styles-css" rel="stylesheet" />
+<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js" type="text/javascript"></script><script src="http://partner.googleadservices.com/gpt/pubads_impl_73.js" async=""></script>
+<script>window.jQuery || document.write('&lt;script src="http://www.iab.com/wp-content/themes/iab/assets/vendor/jquery/dist/jquery.min.js?2.1.1"&gt;&lt;\/script&gt;')</script>
+<script src="http://www.iab.com/wp-content/plugins/gravityforms/js/jquery.json-1.3.js?ver=1.8.22" type="text/javascript"></script>
+<script src="http://www.iab.com/wp-content/plugins/gravityforms/js/jquery.placeholders.2.1.1.min.js?ver=1.8.22" type="text/javascript"></script>
+<script src="http://www.iab.com/wp-content/plugins/gravityforms/js/gravityforms.js?ver=1.8.22" type="text/javascript"></script>
+<link href="http://www.iab.com/xmlrpc.php?rsd" title="RSD" type="application/rsd+xml" rel="EditURI" />
+<link href="http://www.iab.com/wp-includes/wlwmanifest.xml" type="application/wlwmanifest+xml" rel="wlwmanifest" />
+<link href="http://www.iab.com/?p=15323" rel="shortlink" />
+ <style type="text/css">.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style>
+<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.1.12/jquery.mousewheel.min.js"></script><style type="text/css">.fancybox-margin{margin-right:0px;}</style><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/osd.js"></script><script type="text/javascript" charset="UTF-8" src="http://maps.gstatic.com/maps-api-v3/api/js/20/1/common.js"></script><script type="text/javascript" charset="UTF-8" src="http://maps.gstatic.com/maps-api-v3/api/js/20/1/util.js"></script><script type="text/javascript" charset="UTF-8" src="http://maps.gstatic.com/maps-api-v3/api/js/20/1/stats.js"></script></head><body class="single single-post postid-15323 lean sidebar-primary">
+
+ <!--[if lt IE 8]>
+ <div class="alert alert-warning">
+ You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience. </div>
+ <![endif]-->
+
+ <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><symbol id="icon-arrow-down" viewBox="0 0 118.3 62.7"><title>arrow-down</title><path d="M118.3 7.3L111.4 0 59.1 49 6.8 0 0 7.3l59.1 55.4z"/></symbol><symbol id="icon-arrow-left" viewBox="0 0 62.7 118.3"><title>arrow-left</title><path d="M55.4 118.3l7.3-6.9-49-52.3 49-52.3L55.4 0 0 59.1z"/></symbol><symbol id="icon-arrow-right" viewBox="0 0 62.7 118.3"><title>arrow-right</title><path d="M7.3 118.3L0 111.4l49-52.3L0 6.8 7.3 0l55.4 59.1z"/></symbol><symbol id="icon-arrow-up" viewBox="0 0 118.3 62.7"><title>arrow-up</title><path d="M0 55.4l6.8 7.3 52.3-49 52.3 49 6.9-7.3L59.1 0z"/></symbol><symbol id="icon-bio" viewBox="0 0 150.5 108.4"><title>bio</title><path clip-rule="evenodd" fill-rule="evenodd" d="M0 0h150.5v24.1H0V0zm0 42.1h150.5v24.1H0V42.1zm0 42.2h96.3v24.1H0V84.3z"/></symbol><symbol id="icon-circle" viewBox="0 0 108.4 108.4"><title>circle</title><circle r="54.2" cy="54.2" cx="54.2"/></symbol><symbol id="icon-close" viewBox="0 0 108.4 108.4"><title>close</title><path d="M104.68 108.322L.03 3.672l3.675-3.68 104.65 104.65zm-100.983-.004L.02 104.64 104.67-.01l3.678 3.677z"/></symbol><symbol id="icon-download" viewBox="0 0 55.2 109.8"><title>download</title><path d="M2.7 76.2s48.3.1 49.8 0c2.4-.1 3.6 2.4 2 4.4-2.3 2.7-24.2 27.1-25.5 28.4-1.3 1.3-2.9.9-3.9 0-1-1-23.8-27.7-24.7-28.5s-.5-4.3 2.3-4.3zM22.3 70.2V2.1C22.3 1 23.4 0 24.7 0h5.7c1.3 0 2.4.9 2.4 2.1v68.1"/></symbol><symbol id="icon-facebook" viewBox="0 0 47.1 97.6"><title>facebook</title><path d="M0 32.3h10.1v-9.8c0-4.3.1-11 3.3-15.1C16.6 3 21.2 0 29 0c12.7 0 18.1 1.8 18.1 1.8l-2.5 14.9s-4.2-1.2-8.1-1.2c-3.9 0-7.4 1.4-7.4 5.3v11.4h16.1L44 46.9H29v50.7H10.1V46.9H0V32.3z"/></symbol><symbol id="icon-gplus" viewBox="0 0 76.4 79.2"><title>gplus</title><path d="M25.1 75.3c-9.4 0-16.2-6-16.2-13.1 0-7 8.4-12.9 17.9-12.8 2.2 0 4.2.4 6.1 1C38 54 41.7 56 42.7 60c.2.8.3 1.7.3 2.5-.1 7.2-4.7 12.8-17.9 12.8m2.4-42c-6.3-.2-12.3-7.1-13.4-15.4C13 9.6 17.3 3.3 23.6 3.5c6.3.2 12.3 6.8 13.4 15.2 1.1 8.2-3.1 14.8-9.5 14.6m13.2 12.3c-2.2-1.6-6.5-5.4-6.5-7.6 0-2.6.8-3.9 4.7-7 4.1-3.2 6.9-7.6 6.9-12.8C45.8 12 43.1 6 37.9 4h7.8l5.5-4H26.7C15.7 0 5.3 8.3 5.3 18c0 9.9 7.5 17.8 18.7 17.8.8 0 1.5 0 2.3-.1-.7 1.4-1.2 3-1.2 4.6 0 2.7 1.5 5 3.3 6.8h-4.3C10.5 47.2 0 55.8 0 64.8c0 8.9 11.5 14.4 25.1 14.4 15.5 0 24.1-8.8 24.1-17.7 0-7.1-2.1-11.3-8.5-15.9M76.4 34h-9.6v-9.6h-7.7V34h-9.6v7.7h9.6v9.6h7.7v-9.6h9.6V34z"/></symbol><symbol id="icon-instagram" viewBox="0 0 77.3 77.3"><title>instagram</title><path d="M62.4 0H14.9C6.7 0 0 6.7 0 14.9v47.5c0 8.2 6.7 14.9 14.9 14.9h47.5c8.2 0 14.9-6.7 14.9-14.9V14.9C77.4 6.7 70.6 0 62.4 0zm4.3 8.9h1.7V22H55.3V8.9h11.4zM27.6 30.7c2.5-3.4 6.5-5.7 11-5.7s8.6 2.2 11 5.7c1.6 2.2 2.6 5 2.6 7.9 0 7.5-6.1 13.6-13.6 13.6S25 46.1 25 38.6c.1-2.9 1-5.6 2.6-7.9zm42.2 31.7c0 4.1-3.3 7.4-7.4 7.4H14.9c-4.1 0-7.4-3.3-7.4-7.4V30.7H19c-1 2.5-1.6 5.1-1.6 7.9 0 11.7 9.5 21.2 21.1 21.2 11.7 0 21.1-9.5 21.1-21.2 0-2.8-.6-5.5-1.6-7.9h11.5v31.7z"/></symbol><symbol id="icon-linkedin" viewBox="0 0 80.2 73.7"><title>linkedin</title><path d="M17.7 73.7H2v-50h15.6v50zM9.4 17.4h-.1C3.7 17.4 0 13.5 0 8.7 0 3.7 3.8 0 9.6 0s9.3 3.7 9.4 8.7c0 4.8-3.7 8.7-9.6 8.7zm70.8 56.3H62.5V47.8c0-6.8-2.8-11.4-8.9-11.4-4.7 0-7.3 3.1-8.5 6.1-.5 1.1-.4 2.6-.4 4.1v27.1H27.2s.2-45.9 0-50h17.6v7.9c1-3.4 6.6-8.3 15.6-8.3 11.1 0 19.8 7.2 19.8 22.7v27.7z"/></symbol><symbol id="icon-mail" viewBox="0 0 165 97.3"><title>mail</title><path clip-rule="evenodd" fill-rule="evenodd" d="M2.4 10.8l79.2 50.5 80.9-50.5s-4.2-8.3-14.2-7.6C129.5 4.4 6.5-3 2.4 10.8zM155 97.3H10c-5.5 0-10-4.5-10-10V10C0 4.5 4.5 0 10 0h145c5.5 0 10 4.5 10 10v77.3c0 5.5-4.5 10-10 10zm3-14.8V14.8c0-5.5-2.5-8-8-8H15c-5.5 0-8 2.5-8 8v67.7c0 5.5 2.5 8 8 8h135c5.5 0 8-2.5 8-8z"/></symbol><symbol id="icon-menu" viewBox="0 0 142.9 102.9"><title>menu</title><path d="M0 0h142.9v17H0zm0 42.9h142.9v17H0zm0 42.9h142.9v17H0z"/></symbol><symbol id="icon-phone" viewBox="0 0 79.8 121.6"><title>phone</title><path d="M43 93.1c3.8 2.1 13.8-6.8 15.6-7.5s4-.1 7.2 3.5 13.7 16.2 13.9 18c.2 1.8-2.9 13.9-18.9 14.6-16 .7-36.2-11.9-51.4-44.5s-10-64.3.8-71.7S31.7-.4 32.5 2.6c.8 3 5.2 24.8 4.9 26.9s-1 2.6-6.2 4.6-13.7 1.9-13 10.2C19 52.5 32.5 87.2 43 93.1z"/></symbol><symbol id="icon-play" viewBox="0 0 52.2 111.4"><title>play</title><path d="M0 0l52.2 55.7L0 111.4V0z" clip-rule="evenodd" fill-rule="evenodd"/></symbol><symbol id="icon-search" viewBox="0 0 102 103.8"><title>search</title><path d="M86 43c0 23.7-19.3 43-43 43S0 66.7 0 43 19.3 0 43 0s43 19.3 43 43zM43 7C23.1 7 7 23.1 7 43s16.1 36 36 36 36-16.1 36-36S62.9 7 43 7zm57.6 89.9l-5.4 5.4c-1.9 2-5.1 2-7.1 0L65.6 80c-2-1.9-2-5.1 0-7.1l5.4-5.4c1.9-2 5.1-2 7.1 0l22.5 22.3c1.9 1.9 1.9 5.1 0 7.1z"/></symbol><symbol id="icon-share" viewBox="0 0 107.7 118.3"><title>share</title><circle r="20.1" cy="20.1" cx="87.7"/><circle r="20.1" cy="98.3" cx="87.7"/><circle r="20.1" cy="57.9" cx="20.1"/><path d="M14.66 58.65L92.6 15.89l2.692 4.91-77.938 42.76zm-1.816-7.133L88.72 97.842l-2.918 4.78L9.926 56.296z"/></symbol><symbol id="icon-spinner" viewBox="0 0 108.8 108.8"><title>spinner</title><path d="M54.8 27.1c-.6 0-1-.4-1-1V1c0-.6.4-1 1-1s1 .4 1 1v25.1c0 .6-.5 1-1 1zm-20.1 8c-.3 0-.5-.1-.7-.3L16.2 17.1c-.4-.4-.4-1 0-1.4s1-.4 1.4 0l17.8 17.8c.4.4.4 1 0 1.4-.2.1-.4.2-.7.2zM26.1 55H1c-.6 0-1-.4-1-1s.4-1 1-1h25.1c.6 0 1 .4 1 1s-.4 1-1 1zm-9.7 37.8c-.3 0-.5-.1-.7-.3-.4-.4-.4-1 0-1.4l17.8-17.8c.4-.4 1-.4 1.4 0s.4 1 0 1.4L17.1 92.5c-.2.2-.5.3-.7.3zm37.6 16c-.6 0-1-.4-1-1V82.6c0-.6.4-1 1-1s1 .4 1 1v25.1c0 .6-.5 1.1-1 1.1zm37.8-15.4c-.3 0-.5-.1-.7-.3L73.4 75.3c-.4-.4-.4-1 0-1.4s1-.4 1.4 0l17.8 17.8c.4.4.4 1 0 1.4-.2.2-.5.3-.8.3zm16-37.6H82.6c-.6 0-1-.4-1-1s.4-1 1-1h25.1c.6 0 1 .4 1 1s-.4 1-.9 1zM74.6 35.7c-.3 0-.5-.1-.7-.3-.4-.4-.4-1 0-1.4l17.8-17.8c.4-.4 1-.4 1.4 0s.4 1 0 1.4L75.3 35.4c-.2.2-.4.3-.7.3z"/></symbol><symbol id="icon-twitter" viewBox="0 0 104.7 85.1"><title>twitter</title><path d="M104.7 10.1c-3.9 1.7-8 2.9-12.3 3.4 4.4-2.7 7.8-6.9 9.4-11.9-4.1 2.4-8.7 4.2-13.6 5.2C84.3 2.6 78.7 0 72.5 0 60.7 0 51 9.6 51 21.5c0 1.7.2 3.3.6 4.9-17.9-.9-33.7-9.5-44.3-22.5-1.8 3.2-2.9 6.9-2.9 10.8 0 7.4 3.8 14 9.6 17.9-3.5-.1-6.8-1.1-9.7-2.7v.3c0 10.4 7.4 19.1 17.2 21.1-1.8.5-3.7.8-5.7.8-1.4 0-2.7-.1-4-.4 2.7 8.5 10.7 14.8 20.1 14.9-7.4 5.8-16.6 9.2-26.7 9.2-1.7 0-3.4-.1-5.1-.3 9.5 6.1 20.8 9.7 32.9 9.7 39.5 0 61.1-32.7 61.1-61.1 0-.9 0-1.9-.1-2.8 4.2-3.1 7.9-6.9 10.7-11.2"/></symbol><symbol id="icon-youtube" viewBox="0 0 512 512"><title>youtube</title><path d="M416 64H96c-52.8 0-96 43.2-96 96v192c0 52.8 43.2 96 96 96h320c52.8 0 96-43.2 96-96V160c0-52.8-43.2-96-96-96zM192 384V128l160 128-160 128z"/></symbol></svg>
+ <div role="document" class="wrap">
+ <header role="banner" class="header">
+ <div class="header__container clearfix">
+ <a class="site-logo" href="http://www.iab.com/">
+ <img alt="IAB logo" src="http://www.iab.com/wp-content/themes/iab/assets/img/iab-logo.png" />
+ </a>
+ <aside class="header__breadcrumbs">
+ <ul class="clearfix">
+ <li class="header__breadcrumbs_item">
+ <a href="http://www.iab.com">Home</a>
+ </li>
+ <li class="header__breadcrumbs_item">
+ <a href="http://www.iab.com/news/">News</a>
+ </li>
+ <li class="header__breadcrumbs_item">
+ <a>Getting LEAN with Digital Ad UX</a>
+ </li>
+ </ul>
+ </aside>
+ <div class="search-account-container">
+ <div class="login-register">
+ <a href="http://members.iab.net/eweb/DynamicPage.aspx?WebCode=LoginRequired&amp;expires=yes&amp;Site=iab">Sign In</a>
+ <a href="mailto:[email protected]">Join IAB</a>
+ <div style="display: none;" id="modal-newsletterform">
+
+ <div id="gform_wrapper_1" class="gf_browser_chrome gform_wrapper"><a class="gform_anchor" name="gf_1" id="gf_1"></a><form action="/news/lean/#gf_1" id="gform_1" target="gform_ajax_frame_1" enctype="multipart/form-data" method="post">
+ <div class="gform_body">
+ <ul class="gform_fields top_label description_below" id="gform_fields_1"><li class="gfield gsection form--header" id="field_1_1"><h2 class="gsection_title">Subscribe to IAB News</h2></li><li class="gfield gsection" id="field_1_2"><h2 class="gsection_title">All you need to know about digital advertising.</h2><div class="gsection_description">Get the latest news, guidelines, &amp; tools, research, cutting edge trends, learning, public policy, and events. </div></li><li class="gfield gfield_contains_required" id="field_1_4"><label for="input_1_4" class="gfield_label">First name<span class="gfield_required">*</span></label><div class="ginput_container"><input type="text" tabindex="1" class="medium" value="" id="input_1_4" name="input_4" /></div></li><li class="gfield gfield_contains_required" id="field_1_5"><label for="input_1_5" class="gfield_label">Last name<span class="gfield_required">*</span></label><div class="ginput_container"><input type="text" tabindex="2" class="medium" value="" id="input_1_5" name="input_5" /></div></li><li class="gfield gfield_contains_required" id="field_1_3"><label for="input_1_3" class="gfield_label">Email<span class="gfield_required">*</span></label><div class="ginput_container"><input type="text" tabindex="3" class="medium" value="" id="input_1_3" name="input_3" /></div></li><li class="gfield gfield_contains_required" id="field_1_6"><label for="input_1_6" class="gfield_label">Company<span class="gfield_required">*</span></label><div class="ginput_container"><input type="text" tabindex="4" class="medium" value="" id="input_1_6" name="input_6" /></div></li><li class="gfield" id="field_1_7"><label for="input_1_7" class="gfield_label">Title</label><div class="ginput_container"><input type="text" tabindex="5" class="medium" value="" id="input_1_7" name="input_7" /></div></li><li class="gfield" id="field_1_14"><label for="input_1_14" class="gfield_label">Country</label><div class="ginput_container"><div class="selector fixedWidth" id="uniform-input_1_14"><span style="-moz-user-select: none;">▼ United States</span><select tabindex="6" class="medium gfield_select" id="input_1_14" name="input_14" style="height: 100%;"><option value="Afghanistan">Afghanistan</option><option value="Albania">Albania</option><option value="Algeria">Algeria</option><option value="American Samoa">American Samoa</option><option value="Andorra">Andorra</option><option value="Angola">Angola</option><option value="Antigua and Barbuda">Antigua and Barbuda</option><option value="Argentina">Argentina</option><option value="Armenia">Armenia</option><option value="Australia">Australia</option><option value="Austria">Austria</option><option value="Azerbaijan">Azerbaijan</option><option value="Bahamas">Bahamas</option><option value="Bahrain">Bahrain</option><option value="Bangladesh">Bangladesh</option><option value="Barbados">Barbados</option><option value="Belarus">Belarus</option><option value="Belgium">Belgium</option><option value="Belize">Belize</option><option value="Benin">Benin</option><option value="Bermuda">Bermuda</option><option value="Bhutan">Bhutan</option><option value="Bolivia">Bolivia</option><option value="Bosnia and Herzegovina">Bosnia and Herzegovina</option><option value="Botswana">Botswana</option><option value="Brazil">Brazil</option><option value="Brunei">Brunei</option><option value="Bulgaria">Bulgaria</option><option value="Burkina Faso">Burkina Faso</option><option value="Burundi">Burundi</option><option value="Cambodia">Cambodia</option><option value="Cameroon">Cameroon</option><option value="Canada">Canada</option><option value="Cape Verde">Cape Verde</option><option value="Cayman Islands">Cayman Islands</option><option value="Central African Republic">Central African Republic</option><option value="Chad">Chad</option><option value="Chile">Chile</option><option value="China">China</option><option value="Colombia">Colombia</option><option value="Comoros">Comoros</option><option value="Congo, Democratic Republic of the">Congo, Democratic Republic of the</option><option value="Congo, Republic of the">Congo, Republic of the</option><option value="Costa Rica">Costa Rica</option><option value="Côte d'Ivoire">Côte d'Ivoire</option><option value="Croatia">Croatia</option><option value="Cuba">Cuba</option><option value="Cyprus">Cyprus</option><option value="Czech Republic">Czech Republic</option><option value="Denmark">Denmark</option><option value="Djibouti">Djibouti</option><option value="Dominica">Dominica</option><option value="Dominican Republic">Dominican Republic</option><option value="East Timor">East Timor</option><option value="Ecuador">Ecuador</option><option value="Egypt">Egypt</option><option value="El Salvador">El Salvador</option><option value="Equatorial Guinea">Equatorial Guinea</option><option value="Eritrea">Eritrea</option><option value="Estonia">Estonia</option><option value="Ethiopia">Ethiopia</option><option value="Fiji">Fiji</option><option value="Finland">Finland</option><option value="France">France</option><option value="French Polynesia">French Polynesia</option><option value="Gabon">Gabon</option><option value="Gambia">Gambia</option><option value="Georgia">Georgia</option><option value="Germany">Germany</option><option value="Ghana">Ghana</option><option value="Greece">Greece</option><option value="Greenland">Greenland</option><option value="Grenada">Grenada</option><option value="Guam">Guam</option><option value="Guatemala">Guatemala</option><option value="Guinea">Guinea</option><option value="Guinea-Bissau">Guinea-Bissau</option><option value="Guyana">Guyana</option><option value="Haiti">Haiti</option><option value="Honduras">Honduras</option><option value="Hong Kong">Hong Kong</option><option value="Hungary">Hungary</option><option value="Iceland">Iceland</option><option value="India">India</option><option value="Indonesia">Indonesia</option><option value="Iran">Iran</option><option value="Iraq">Iraq</option><option value="Ireland">Ireland</option><option value="Israel">Israel</option><option value="Italy">Italy</option><option value="Jamaica">Jamaica</option><option value="Japan">Japan</option><option value="Jordan">Jordan</option><option value="Kazakhstan">Kazakhstan</option><option value="Kenya">Kenya</option><option value="Kiribati">Kiribati</option><option value="North Korea">North Korea</option><option value="South Korea">South Korea</option><option value="Kosovo">Kosovo</option><option value="Kuwait">Kuwait</option><option value="Kyrgyzstan">Kyrgyzstan</option><option value="Laos">Laos</option><option value="Latvia">Latvia</option><option value="Lebanon">Lebanon</option><option value="Lesotho">Lesotho</option><option value="Liberia">Liberia</option><option value="Libya">Libya</option><option value="Liechtenstein">Liechtenstein</option><option value="Lithuania">Lithuania</option><option value="Luxembourg">Luxembourg</option><option value="Macedonia">Macedonia</option><option value="Madagascar">Madagascar</option><option value="Malawi">Malawi</option><option value="Malaysia">Malaysia</option><option value="Maldives">Maldives</option><option value="Mali">Mali</option><option value="Malta">Malta</option><option value="Marshall Islands">Marshall Islands</option><option value="Mauritania">Mauritania</option><option value="Mauritius">Mauritius</option><option value="Mexico">Mexico</option><option value="Micronesia">Micronesia</option><option value="Moldova">Moldova</option><option value="Monaco">Monaco</option><option value="Mongolia">Mongolia</option><option value="Montenegro">Montenegro</option><option value="Morocco">Morocco</option><option value="Mozambique">Mozambique</option><option value="Myanmar">Myanmar</option><option value="Namibia">Namibia</option><option value="Nauru">Nauru</option><option value="Nepal">Nepal</option><option value="Netherlands">Netherlands</option><option value="New Zealand">New Zealand</option><option value="Nicaragua">Nicaragua</option><option value="Niger">Niger</option><option value="Nigeria">Nigeria</option><option value="Norway">Norway</option><option value="Northern Mariana Islands">Northern Mariana Islands</option><option value="Oman">Oman</option><option value="Pakistan">Pakistan</option><option value="Palau">Palau</option><option value="Palestine">Palestine</option><option value="Panama">Panama</option><option value="Papua New Guinea">Papua New Guinea</option><option value="Paraguay">Paraguay</option><option value="Peru">Peru</option><option value="Philippines">Philippines</option><option value="Poland">Poland</option><option value="Portugal">Portugal</option><option value="Puerto Rico">Puerto Rico</option><option value="Qatar">Qatar</option><option value="Romania">Romania</option><option value="Russia">Russia</option><option value="Rwanda">Rwanda</option><option value="Saint Kitts and Nevis">Saint Kitts and Nevis</option><option value="Saint Lucia">Saint Lucia</option><option value="Saint Vincent and the Grenadines">Saint Vincent and the Grenadines</option><option value="Samoa">Samoa</option><option value="San Marino">San Marino</option><option value="Sao Tome and Principe">Sao Tome and Principe</option><option value="Saudi Arabia">Saudi Arabia</option><option value="Senegal">Senegal</option><option value="Serbia and Montenegro">Serbia and Montenegro</option><option value="Seychelles">Seychelles</option><option value="Sierra Leone">Sierra Leone</option><option value="Singapore">Singapore</option><option value="Slovakia">Slovakia</option><option value="Slovenia">Slovenia</option><option value="Solomon Islands">Solomon Islands</option><option value="Somalia">Somalia</option><option value="South Africa">South Africa</option><option value="Spain">Spain</option><option value="Sri Lanka">Sri Lanka</option><option value="Sudan">Sudan</option><option value="Sudan, South">Sudan, South</option><option value="Suriname">Suriname</option><option value="Swaziland">Swaziland</option><option value="Sweden">Sweden</option><option value="Switzerland">Switzerland</option><option value="Syria">Syria</option><option value="Taiwan">Taiwan</option><option value="Tajikistan">Tajikistan</option><option value="Tanzania">Tanzania</option><option value="Thailand">Thailand</option><option value="Togo">Togo</option><option value="Tonga">Tonga</option><option value="Trinidad and Tobago">Trinidad and Tobago</option><option value="Tunisia">Tunisia</option><option value="Turkey">Turkey</option><option value="Turkmenistan">Turkmenistan</option><option value="Tuvalu">Tuvalu</option><option value="Uganda">Uganda</option><option value="Ukraine">Ukraine</option><option value="United Arab Emirates">United Arab Emirates</option><option value="United Kingdom">United Kingdom</option><option selected="selected" value="United States">United States</option><option value="Uruguay">Uruguay</option><option value="Uzbekistan">Uzbekistan</option><option value="Vanuatu">Vanuatu</option><option value="Vatican City">Vatican City</option><option value="Venezuela">Venezuela</option><option value="Vietnam">Vietnam</option><option value="Virgin Islands, British">Virgin Islands, British</option><option value="Virgin Islands, U.S.">Virgin Islands, U.S.</option><option value="Yemen">Yemen</option><option value="Zambia">Zambia</option><option value="Zimbabwe">Zimbabwe</option></select></div></div></li><li class="gfield gsection" id="field_1_9"><h2 class="gsection_title">Newsletters</h2></li><li class="gfield" id="field_1_15"><label class="gfield_label gfield_label--top"></label><div class="ginput_container"><ul id="input_1_15" class="gfield_checkbox"><li class="gchoice_15_1"><input type="checkbox" tabindex="7" id="choice_1_15_1" value="IAB Informer (monthly)" name="input_15.1" /><label id="label_1_15_1" for="choice_1_15_1">IAB Informer (monthly)</label></li></ul></div><div class="gfield_description">IAB news and information</div></li><li class="gfield has-description" id="field_1_12"><label class="gfield_label gfield_label--top"></label><div class="ginput_container"><ul id="input_1_12" class="gfield_checkbox"><li class="gchoice_12_1"><input type="checkbox" tabindex="8" id="choice_1_12_1" value="Upcoming@IAB (bi-weekly)" name="input_12.1" /><label id="label_1_12_1" for="choice_1_12_1">Upcoming@IAB (bi-weekly)</label></li></ul></div><div class="gfield_description">Member only newsletter for IAB news and information</div></li><li class="gfield has-description" id="field_1_11"><label class="gfield_label gfield_label--top"></label><div class="ginput_container"><ul id="input_1_11" class="gfield_checkbox"><li class="gchoice_11_1"><input type="checkbox" tabindex="9" id="choice_1_11_1" value="IAB.U (quarterly)" name="input_11.1" /><label id="label_1_11_1" for="choice_1_11_1">IAB.U (quarterly)</label></li></ul></div><div class="gfield_description">Updates on IAB Learning &amp; Development educational offerings and classes</div></li><li class="gfield has-description" id="field_1_10"><label class="gfield_label gfield_label--top"></label><div class="ginput_container"><ul id="input_1_10" class="gfield_checkbox"><li class="gchoice_10_1"><input type="checkbox" tabindex="10" id="choice_1_10_1" value="IAB Smartbrief (daily)" name="input_10.1" /><label id="label_1_10_1" for="choice_1_10_1">IAB Smartbrief (daily)</label></li></ul></div><div class="gfield_description">A snapshot of the advertising, marketing, and media industry with new from AdWeek, eMarketer, and other leading sources</div></li><li class="gfield" id="field_1_16"><label class="gfield_label gfield_label--top"></label><div class="ginput_container"><ul id="input_1_16" class="gfield_checkbox"><li class="gchoice_16_1"><input type="checkbox" tabindex="11" id="choice_1_16_1" value="IAB Smartbrief on Video" name="input_16.1" /><label id="label_1_16_1" for="choice_1_16_1">IAB Smartbrief on Video</label></li></ul></div><div class="gfield_description">News, trends and insights on Digital Video from the industry's leading sources</div></li><li class="gfield" id="field_1_13"><label class="gfield_label gfield_label--top">Other IAB Updates</label><div class="ginput_container"><ul id="input_1_13" class="gfield_checkbox"><li class="gchoice_13_1"><input type="checkbox" tabindex="12" id="choice_1_13_1" value="Conferences" name="input_13.1" /><label id="label_1_13_1" for="choice_1_13_1">Conferences</label></li><li class="gchoice_13_2"><input type="checkbox" tabindex="13" id="choice_1_13_2" value="Networking &amp; social events" name="input_13.2" /><label id="label_1_13_2" for="choice_1_13_2">Networking &amp; social events</label></li><li class="gchoice_13_3"><input type="checkbox" tabindex="14" id="choice_1_13_3" value="General announcements / press releases" name="input_13.3" /><label id="label_1_13_3" for="choice_1_13_3">General announcements / press releases</label></li></ul></div></li>
+ </ul></div>
+ <div class="gform_footer top_label"> <input type="submit" onclick='if(window["gf_submitting_1"]){return false;} window["gf_submitting_1"]=true; ' tabindex="15" value="Submit" class="gform_button button" id="gform_submit_button_1"><svg xmlns="http://www.w3.org/2000/svg" class="btn__arrow"><use xlink:href="#icon-arrow-right" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg></input><input type="hidden" value="form_id=1&amp;title=&amp;description=&amp;tabindex=1" name="gform_ajax" />
+ <input type="hidden" value="1" name="is_submit_1" class="gform_hidden" />
+ <input type="hidden" value="1" name="gform_submit" class="gform_hidden" />
+ <input type="hidden" value="" name="gform_unique_id" class="gform_hidden" />
+ <input type="hidden" value="WyJbXSIsIjkwOTc3NTEyZDg4NTNiNzZkMDM5YmU4NmFmZDBmZDU4Il0=" name="state_1" class="gform_hidden" />
+ <input type="hidden" value="0" id="gform_target_page_number_1" name="gform_target_page_number_1" class="gform_hidden" />
+ <input type="hidden" value="1" id="gform_source_page_number_1" name="gform_source_page_number_1" class="gform_hidden" />
+ <input type="hidden" value="" name="gform_field_values" />
+
+ </div>
+ </form>
+ </div>
+ <iframe id="gform_ajax_frame_1" name="gform_ajax_frame_1" src="about:blank" style="display:none;width:0px;height:0px;"></iframe>
+ <script type="text/javascript">jQuery(document).ready(function($){gformInitSpinner( 1, 'http://www.iab.com/wp-content/plugins/gravityforms/images/spinner.gif' );jQuery('#gform_ajax_frame_1').load( function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') &gt;= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_1');var is_redirect = contents.indexOf('gformRedirect(){') &gt;= 0;var is_form = !(form_content.length &lt;= 0 || is_redirect);if(is_form){jQuery('#gform_wrapper_1').html(form_content.html());jQuery(document).scrollTop(jQuery('#gform_wrapper_1').offset().top);if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_1').val();gformInitSpinner( 1, 'http://www.iab.com/wp-content/plugins/gravityforms/images/spinner.gif' );jQuery(document).trigger('gform_page_loaded', [1, current_page]);window['gf_submitting_1'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('#gforms_confirmation_message').html();if(!confirmation_content){confirmation_content = contents;}setTimeout(function(){jQuery('#gform_wrapper_1').replaceWith('&lt;' + 'div id=\'gforms_confirmation_message\' class=\'gform_confirmation_message_1\'' + '&gt;' + confirmation_content + '&lt;' + '/div' + '&gt;');jQuery(document).scrollTop(jQuery('#gforms_confirmation_message').offset().top);jQuery(document).trigger('gform_confirmation_loaded', [1]);window['gf_submitting_1'] = false;}, 50);}else{jQuery('#gform_1').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger('gform_post_render', [1, current_page]);} );} );</script></div> </div>
+ <div class="menu-toggle" href="#">
+ <div class="open">
+ <svg xmlns="http://www.w3.org/2000/svg"><use xlink:href="#icon-menu" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg>
+ </div>
+ <div class="close">
+ <svg xmlns="http://www.w3.org/2000/svg"><use xlink:href="#icon-close" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg>
+ </div>
+ </div>
+ <div class="search">
+ <input type="text" value="" placeholder="Search IAB" class="search-field-header" id="search-header" name="search-iab" />
+ <a href="http://www.iab.com/search" class="search-icon">
+ <svg xmlns="http://www.w3.org/2000/svg"><use xlink:href="#icon-search" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg>
+ </a>
+ </div>
+ </div>
+ </div>
+</header>
+
+<div class="nav-container" style="left: 130px; width: 180px; height: 100%;">
+ <nav role="navigation" class="nav js-nav">
+ <ul>
+
+ <li class="active js-nav-item">
+ <a href="http://www.iab.com/news" class="nav-item">News<div class="sub-menu__arrow"></div></a>
+ <div data-referal="news" class="sub-menu js-sub-menu" style="left: 180px;">
+ <h2>
+ <a class="nav__back-button js-nav-back" href="#"><svg xmlns="http://www.w3.org/2000/svg"><use xlink:href="#icon-arrow-left" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg></a>
+ News </h2>
+ <ul class="list--common"><li class="sub-menu__title">News Type</li><li class="current-post-ancestor active current-post-parent menu-iab-news"><a class="fancybox" href="http://www.iab.com/news/?category=iab-news/">IAB News</a></li>
+<li class="menu-member-news"><a class="fancybox" href="http://www.iab.com/news/?category=member-news/">Member News</a></li>
+<li class="menu-press-release"><a class="fancybox" href="http://www.iab.com/news/?category=press-release/">Press Release</a></li>
+</ul><ul class="list--common"><li class="sub-menu__title">Popular Topics</li><li class="menu-creative"><a class="fancybox" href="http://www.iab.com/news/?topic=creative/">Creative</a></li>
+<li class="menu-digital-video"><a class="fancybox" href="http://www.iab.com/news/?topic=digital-video/">Digital Video</a></li>
+<li class="menu-measurement-viewability"><a class="fancybox" href="http://www.iab.com/news/?topic=measurement/">Measurement &amp; Viewability</a></li>
+<li class="menu-mobile"><a class="fancybox" href="http://www.iab.com/news/?topic=mobile/">Mobile</a></li>
+<li class="menu-programmatic"><a class="fancybox" href="http://www.iab.com/news/?topic=programmatic/">Programmatic</a></li>
+</ul>
+ <ul class="list--most-popular">
+ <li class="sub-menu__title">Featured News</li>
+ <div class="list--row">
+ <li>
+ <div class="media">
+ <div class="media__details--wide">
+ <h3 class="media__details__text">
+ <a href="http://www.iab.com/news/iab-education-foundation-reveals-plan-to-strengthen-diversity-in-the-digital-media-and-marketing-industry-candidate-pool-by-50-increase-employee-diversity-and-retention-by-25">IAB Education Foundation Reveals Plan to Strengthen Diversity in the Digital Media and Marketing Industry Candidate Pool by 50% &amp; Increase Employee Diversity and Retention by 25%</a>
+ </h3>
+ </div>
+ </div>
+ </li>
+ <li>
+ <div class="media">
+ <div class="media__details--wide">
+ <h3 class="media__details__text">
+ <a href="http://www.iab.com/news/iab-tech-lab-releases-updated-iab-html5-for-digital-advertising-guide-for-public-comment">IAB Tech Lab Releases Updated ‘IAB HTML5 for Digital Advertising Guide’ for Public Comment</a>
+ </h3>
+ </div>
+ </div>
+ </li>
+ </div>
+ <div class="list--row">
+ <li>
+ <div class="media">
+ <a href="http://www.wsj.com/articles/iab-ceo-randall-rothenberg-on-ad-blocking-viewability-fraud-1442836801">
+ <img src="http://www.iab.com/wp-content/uploads/2015/09/iab-ceo-randall-rothenberg-on-ad-blocking-viewability-fraud-in-the-wall-street-journal-3-644x429-185x124.jpg" class="media__img" />
+ </a>
+ <div class="media__details">
+ <h3 class="media__details__text">
+ <a href="http://www.wsj.com/articles/iab-ceo-randall-rothenberg-on-ad-blocking-viewability-fraud-1442836801">IAB CEO Randall Rothenberg on Ad Blocking, Viewability, &amp; Fraud in The Wall Street Journal</a>
+ </h3>
+ </div>
+ </div>
+ </li>
+ </div></ul>
+ </div>
+ </li>
+ <li class=" js-nav-item">
+ <a href="http://www.iab.com/guidelines" class="nav-item">Standards, Guidelines &amp; Best Practices<div class="sub-menu__arrow"></div></a>
+ <div data-referal="guidelines" class="sub-menu js-sub-menu" style="left: 180px;">
+ <h2>
+ <a class="nav__back-button js-nav-back" href="#"><svg xmlns="http://www.w3.org/2000/svg"><use xlink:href="#icon-arrow-left" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg></a>
+ Standards, Guidelines &amp; Best Practices </h2>
+ <ul class="list--common"><li class="sub-menu__title">Standard Ad Units</li><li class="menu-display"><a class="fancybox" href="http://www.iab.com/guidelines/iab-display-advertising-guidelines/">Display</a></li>
+<li class="menu-mobile"><a class="fancybox" href="http://www.iab.com/guidelines/mobile-phone-creative-guidelines/">Mobile</a></li>
+<li class="menu-display-rising-stars"><a class="fancybox" href="http://www.iab.com/guidelines/display-rising-stars-ad-units/">Display Rising Stars</a></li>
+<li class="menu-digital-video-rising-stars"><a class="fancybox" href="http://www.iab.com/guidelines/digital-video-rising-stars-ad-units/">Digital Video Rising Stars</a></li>
+<li class="menu-mobile-rising-stars"><a class="fancybox" href="http://www.iab.com/guidelines/mobile-rising-stars-ad-units/">Mobile Rising Stars</a></li>
+<li class="menu-documents-for-public-comment"><a class="fancybox" href="http://www.iab.com/guidelines/iab-standards-guidelines-best-practice-documents-in-public-comment/">Documents for Public Comment</a></li>
+</ul><ul class="list--common"><li class="sub-menu__title">Browse by Topics</li><li class="menu-compliance"><a class="fancybox" href="http://www.iab.com/guidelines/understanding-iab-compliance-programs/">Compliance</a></li>
+<li class="menu-data"><a class="fancybox" href="http://www.iab.com/guidelines/?topic=data/">Data</a></li>
+<li class="menu-digital-video"><a class="fancybox" href="http://www.iab.com/guidelines/?topic=digital-video/">Digital Video</a></li>
+<li class="menu-mobile"><a class="fancybox" href="http://www.iab.com/guidelines/?topic=mobile/">Mobile</a></li>
+<li class="menu-native-advertising"><a class="fancybox" href="http://www.iab.com/guidelines/?topic=native-advertising/">Native Advertising</a></li>
+<li class="menu-programmatic"><a class="fancybox" href="http://www.iab.com/guidelines/?topic=programmatic/">Programmatic</a></li>
+<li class="menu-social"><a class="fancybox" href="http://www.iab.com/guidelines/?topic=social/">Social</a></li>
+</ul>
+ <ul class="list--most-popular">
+ <li class="sub-menu__title">Featured Standards, Guidelines &amp; Best Practices</li>
+ <div class="list--row">
+ <li>
+ <div class="media">
+ <a href="http://www.iab.com/guidelines/html5-for-digital-advertising-1-0-guidance-for-ad-designers-creative-technologists/">
+ <img src="http://www.iab.com/wp-content/uploads/2015/08/the-age-of-html5-ads-644x429-185x124.png" class="media__img" />
+ </a>
+ <div class="media__details">
+ <h3 class="media__details__text">
+ <a href="http://www.iab.com/guidelines/html5-for-digital-advertising-1-0-guidance-for-ad-designers-creative-technologists/">HTML5 for Digital Advertising v2.0: Guidance for Ad Designers and Creative Technologists</a>
+ </h3>
+ </div>
+ </div>
+ </li>
+ <li>
+ <div class="media">
+ <a href="http://measurementnow.net/">
+ <img src="http://www.iab.com/wp-content/uploads/2014/11/Screen-Shot-2015-01-15-at-4.55.46-PM-185x124.png" class="media__img" />
+ </a>
+ <div class="media__details">
+ <h3 class="media__details__text">
+ <a href="http://measurementnow.net/">Making Measurement Make Sense (3MS)</a>
+ </h3>
+ </div>
+ </div>
+ </li>
+ </div>
+ <div class="list--row">
+ <li>
+ <div class="media">
+ <a href="http://www.iab.com/guidelines/3ms-resources/">
+ <img src="http://www.iab.com/wp-content/uploads/2014/11/Screen-Shot-2015-01-15-at-4.55.46-PM-185x124.png" class="media__img" />
+ </a>
+ <div class="media__details">
+ <h3 class="media__details__text">
+ <a href="http://www.iab.com/guidelines/3ms-resources/">3MS Resources for Publishers</a>
+ </h3>
+ </div>
+ </div>
+ </li>
+ <li>
+ <div class="media">
+ <a href="http://www.iab.com/guidelines/understanding-iab-compliance-programs/">
+ <img src="http://www.iab.com/wp-content/uploads/2014/12/understanding-iab-compliance-programs-3-644x429-185x124.jpg" class="media__img" />
+ </a>
+ <div class="media__details">
+ <h3 class="media__details__text">
+ <a href="http://www.iab.com/guidelines/understanding-iab-compliance-programs/">Understanding IAB Compliance Programs</a>
+ </h3>
+ </div>
+ </div>
+ </li>
+ </div>
+ </ul>
+ </div>
+ </li>
+ <li class=" js-nav-item">
+ <a href="http://www.iab.com/insights" class="nav-item">Research &amp; Thought Leadership<div class="sub-menu__arrow"></div></a>
+ <div data-referal="insights" class="sub-menu js-sub-menu" style="left: 180px;">
+ <h2>
+ <a class="nav__back-button js-nav-back" href="#"><svg xmlns="http://www.w3.org/2000/svg"><use xlink:href="#icon-arrow-left" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg></a>
+ Research &amp; Thought Leadership </h2>
+ <ul class="list--common"><li class="sub-menu__title">Browse by Type</li><li class="menu-case-study"><a class="fancybox" href="http://www.iab.com/insights/?category=case-study/">Case Study</a></li>
+<li class="menu-research"><a class="fancybox" href="http://www.iab.com/insights/?category=research/">Research</a></li>
+<li class="menu-white-paper"><a class="fancybox" href="http://www.iab.com/insights/?category=white-paper/">White Paper</a></li>
+</ul><ul class="list--common"><li class="sub-menu__title">Popular Topics</li><li class="menu-creative"><a class="fancybox" href="http://www.iab.com/insights/?topic=creative/">Creative</a></li>
+<li class="menu-digital-video"><a class="fancybox" href="http://www.iab.com/insights/?topic=digital-video/">Digital Video</a></li>
+<li class="menu-global"><a class="fancybox" href="http://www.iab.com/insights/?topic=global/">Global</a></li>
+<li class="menu-iab-ad-revenue-report"><a class="fancybox" href="http://www.iab.com/insights/?topic=iab-ad-revenue/">IAB Ad Revenue Report</a></li>
+<li class="menu-market-intelligence"><a class="fancybox" href="http://www.iab.com/insights/?topic=market-intelligence/">Market Intelligence</a></li>
+<li class="menu-measurement-viewability"><a class="fancybox" href="http://www.iab.com/insights/?topic=measurement/">Measurement &amp; Viewability</a></li>
+<li class="menu-mobile"><a class="fancybox" href="http://www.iab.com/insights/?topic=mobile/">Mobile</a></li>
+<li class="menu-programmatic"><a class="fancybox" href="http://www.iab.com/insights/?topic=programmatic/">Programmatic</a></li>
+</ul>
+ <ul class="list--most-popular">
+ <li class="sub-menu__title">Featured Insights</li>
+ <div class="list--row">
+ <li>
+ <div class="media">
+ <a href="http://www.iab.com/insights/ad-blocking/">
+ <img src="http://www.iab.com/wp-content/uploads/2015/09/ad-blocking-what-you-need-to-know-3-644x429-185x124.jpg" class="media__img" />
+ </a>
+ <div class="media__details">
+ <h3 class="media__details__text">
+ <a href="http://www.iab.com/insights/ad-blocking/">Ad Blocking: What you need to know</a>
+ </h3>
+ </div>
+ </div>
+ </li>
+ <li>
+ <div class="media">
+ <a href="http://www.iab.com/insights/iab-internet-advertising-revenue-report-conducted-by-pricewaterhousecoopers-pwc/">
+ <img src="http://www.iab.com/wp-content/uploads/2015/04/iab-internet-advertising-revenue-report-conducted-by-pricewaterhousecoopers-pwc-2-644x429-185x124.png" class="media__img" />
+ </a>
+ <div class="media__details">
+ <h3 class="media__details__text">
+ <a href="http://www.iab.com/insights/iab-internet-advertising-revenue-report-conducted-by-pricewaterhousecoopers-pwc/">IAB Internet Advertising Revenue Report conducted by PricewaterhouseCoopers (PWC)</a>
+ </h3>
+ </div>
+ </div>
+ </li>
+ </div>
+ <div class="list--row">
+ <li>
+ <div class="media">
+ <a href="http://www.iab.com/insights/madison-avenue-meets-silicon-valley-and-silicon-alley-building-collaboration-between-creativity-and-technology/">
+ <img src="http://www.iab.com/wp-content/uploads/2015/06/madison-avenue-meets-silicon-valley-and-silicon-alley-building-collaboration-between-creativity-and-technology-4-644x429-185x124.png" class="media__img" />
+ </a>
+ <div class="media__details">
+ <h3 class="media__details__text">
+ <a href="http://www.iab.com/insights/madison-avenue-meets-silicon-valley-and-silicon-alley-building-collaboration-between-creativity-and-technology/">Madison Avenue Meets Silicon Valley and Silicon Alley: Building Collaboration Between Creativity and Technology</a>
+ </h3>
+ </div>
+ </div>
+ </li>
+ <li>
+ <div class="media">
+ <a href="http://www.iab.com/insights/defining-and-measuring-digital-ad-engagement-in-a-cross-platform-world/">
+ <img src="http://www.iab.com/wp-content/uploads/2015/01/the-power-of-open-source-collaboration-we-need-you-2-644x429-185x124.jpg" class="media__img" />
+ </a>
+ <div class="media__details">
+ <h3 class="media__details__text">
+ <a href="http://www.iab.com/insights/defining-and-measuring-digital-ad-engagement-in-a-cross-platform-world/">Defining and Measuring Digital Ad Engagement in a Cross-Platform World</a>
+ </h3>
+ </div>
+ </div>
+ </li>
+ </div>
+ </ul>
+ </div>
+ </li>
+ <li class=" js-nav-item">
+ <a href="http://www.iab.com/events" class="nav-item">Events<div class="sub-menu__arrow"></div></a>
+ <div data-referal="events" class="sub-menu js-sub-menu" style="left: 180px;">
+ <h2>
+ <a class="nav__back-button js-nav-back" href="#"><svg xmlns="http://www.w3.org/2000/svg"><use xlink:href="#icon-arrow-left" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg></a>
+ Events </h2>
+ <ul class="list--common"><li class="sub-menu__title">Browse by Type</li><li class="menu-committee-council"><a class="fancybox" href="http://www.iab.com/events/?category=committee-council/">Committee &amp; Council</a></li>
+<li class="menu-conferences"><a class="fancybox" href="http://www.iab.com/events/?category=conferences/">Conferences</a></li>
+<li class="menu-iab-on-the-road"><a class="fancybox" href="http://www.iab.com/events/?category=iab-on-the-road/">IAB on the Road</a></li>
+<li class="menu-international"><a class="fancybox" href="http://www.iab.com/events/?category=international/">International</a></li>
+<li class="menu-training"><a class="fancybox" href="http://www.iab.com/events/?category=training/">Training</a></li>
+<li class="menu-webinars"><a class="fancybox" href="http://www.iab.com/events/?category=webinars/">Webinars</a></li>
+</ul><ul class="list--common"><li class="sub-menu__title">Upcoming Events</li><li class="menu-half-year-2015-iab-internet-advertising-revenue-report-webinar"><a class="fancybox" href="http://www.iab.com/events/half-year-2015-iab-internet-advertising-revenue-report-webinar-members-and-invited-press-only/">Half Year 2015 IAB Internet Advertising Revenue Report Webinar</a></li>
+<li class="menu-iab-ad-operations-summit-2015"><a class="fancybox" href="http://www.iab.com/events/iab-ad-operations-summit/">IAB Ad Operations Summit 2015</a></li>
+<li class="menu-iab-annual-leadership-meeting-2016"><a class="fancybox" href="http://www.iab.com/events/iab-annual-leadership-meeting-2016/">IAB Annual Leadership Meeting 2016</a></li>
+</ul>
+ <ul class="list--most-popular">
+ <li class="sub-menu__title">Featured Events</li>
+ <div class="list--row">
+ <li>
+ <div class="media">
+ <a href="http://www.iab.com/events/iab-ad-operations-summit/">
+ <img src="http://www.iab.com/wp-content/uploads/2015/07/iab-ad-operations-summit-2015-2-644x429-185x124.jpg" class="media__img" />
+ </a>
+ <div class="media__details">
+ <h3 class="media__details__text">
+ <a href="http://www.iab.com/events/iab-ad-operations-summit/">IAB Ad Operations Summit 2015</a>
+ </h3>
+ </div>
+ </div>
+ </li>
+ <li>
+ <div class="media">
+ <a href="http://www.iab.com/events/iab-annual-leadership-meeting-2016/">
+ <img src="http://www.iab.com/wp-content/uploads/2015/05/iab-annual-leadership-meeting-2015-content-and-the-kingmakers-2-644x429-185x124.jpg" class="media__img" />
+ </a>
+ <div class="media__details">
+ <h3 class="media__details__text">
+ <a href="http://www.iab.com/events/iab-annual-leadership-meeting-2016/">IAB Annual Leadership Meeting 2016</a>
+ </h3>
+ </div>
+ </div>
+ </li>
+ </div>
+ <div class="list--row">
+ <li>
+ <div class="media">
+ <a href="http://www.iab.net/events_training/mixx15">
+ <img src="http://www.iab.com/wp-content/uploads/2015/07/iab-mixx-conference-2-644x429-185x124.png" class="media__img" />
+ </a>
+ <div class="media__details">
+ <h3 class="media__details__text">
+ <a href="http://www.iab.net/events_training/mixx15">IAB MIXX Conference 2015</a>
+ </h3>
+ </div>
+ </div>
+ </li>
+ <li>
+ <div class="media">
+ <a href="http://www.iab.net/mixxawards">
+ <img src="http://www.iab.com/wp-content/uploads/2015/07/iab-mixx-awards-2015-644x429-185x124.png" class="media__img" />
+ </a>
+ <div class="media__details">
+ <h3 class="media__details__text">
+ <a href="http://www.iab.net/mixxawards">IAB MIXX Awards 2015</a>
+ </h3>
+ </div>
+ </div>
+ </li>
+ </div>
+ <div class="list--row">
+ <li>
+ <div class="media">
+ <div class="media__details--wide">
+ <h3 class="media__details__text">
+ <a href="http://www.iab.net/events_training/2015/newfronts">Digital Content NewFronts 2015</a>
+ </h3>
+ </div>
+ </div>
+ </li>
+ </div></ul>
+ </div>
+ </li>
+ <li class=" js-nav-item">
+ <a href="http://www.iab.com/topics/learning" class="nav-item">Learning<div class="sub-menu__arrow"></div></a>
+ <div data-referal="learning" class="sub-menu js-sub-menu" style="left: 180px;">
+ <h2>
+ <a class="nav__back-button js-nav-back" href="#"><svg xmlns="http://www.w3.org/2000/svg"><use xlink:href="#icon-arrow-left" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg></a>
+ Learning </h2>
+ <ul class="list--common"><li class="sub-menu__title">Learning Resources</li><li class="menu-training-seminars"><a class="fancybox" href="http://www.iab.com/topics/learning/?topic=training-and-seminars/">Training &amp; Seminars</a></li>
+<li class="menu-webinars"><a class="fancybox" href="http://www.iab.com/topics/learning/?topic=webinars/">Webinars</a></li>
+<li class="menu-digital-simplified"><a class="fancybox" href="http://www.iab.com/digital-simplified/">Digital Simplified</a></li>
+<li class="menu-digital-leadership-program"><a class="fancybox" href="http://www.iab.com/about-iab-digital-leadership-program/">Digital Leadership Program</a></li>
+<li class="menu-certification custom-link"><a class="fancybox" href="http://www.iab.com/topics/certification/">Certification</a></li>
+</ul>
+ <ul class="list--most-popular">
+ <li class="sub-menu__title">Featured News</li>
+ <div class="list--row">
+ <li>
+ <div class="media">
+ <a href="http://www.iab.com/news/the-iab-arena-a-simplified-view-of-the-digital-advertising-ecosystem">
+ <img src="http://www.iab.com/wp-content/uploads/2015/06/the-iab-arena-a-simplified-view-of-the-digital-advertising-ecosystem-2-644x429-185x124.jpg" class="media__img" />
+ </a>
+ <div class="media__details">
+ <h3 class="media__details__text">
+ <a href="http://www.iab.com/news/the-iab-arena-a-simplified-view-of-the-digital-advertising-ecosystem">The IAB Arena: A Simplified View of the Digital Advertising Ecosystem</a>
+ </h3>
+ </div>
+ </div>
+ </li>
+ <li>
+ <div class="media">
+ <a href="http://www.iab.com/news/how-do-i-retain-my-best-employees-empower-them-with-leadership-skills">
+ <img src="http://www.iab.com/wp-content/uploads/2015/09/how-do-i-retain-my-best-employees-empower-them-with-leadership-skills-2-644x429-185x124.jpg" class="media__img" />
+ </a>
+ <div class="media__details">
+ <h3 class="media__details__text">
+ <a href="http://www.iab.com/news/how-do-i-retain-my-best-employees-empower-them-with-leadership-skills">How Do I Retain My Best Employees? Empower Them with Leadership Skills</a>
+ </h3>
+ </div>
+ </div>
+ </li>
+ </div>
+ <div class="list--row">
+ <li>
+ <div class="media">
+ <a href="http://www.iab.net/wiki/index.php/Category:Glossary">
+ <img src="http://www.iab.com/wp-content/uploads/2015/07/iab-deep-dive-on-in-feed-ad-units-a-supplement-to-the-iab-native-advertising-playbook-9-e1443630877709-644x429-185x124.jpg" class="media__img" />
+ </a>
+ <div class="media__details">
+ <h3 class="media__details__text">
+ <a href="http://www.iab.net/wiki/index.php/Category:Glossary">IAB Wiki</a>
+ </h3>
+ </div>
+ </div>
+ </li>
+ </div></ul>
+ </div>
+ </li>
+ <li class=" js-nav-item">
+ <a href="http://www.iab.com/topics/certification" class="nav-item">Certification<div class="sub-menu__arrow"></div></a>
+ <div data-referal="certification" class="sub-menu js-sub-menu" style="left: 180px;">
+ <h2>
+ <a class="nav__back-button js-nav-back" href="#"><svg xmlns="http://www.w3.org/2000/svg"><use xlink:href="#icon-arrow-left" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg></a>
+ Certification </h2>
+ <ul class="list--common"><li class="sub-menu__title">Browse by Certification</li><li class="menu-ad-ops-certification"><a class="fancybox" href="http://www.iab.com/iab-ad-ops-certification-overview/">Ad Ops Certification</a></li>
+<li class="menu-data-solutions-certification"><a class="fancybox" href="http://www.iab.com/iab-data-solutions-certification-overview/">Data Solutions Certification</a></li>
+<li class="menu-digital-media-sales-certification"><a class="fancybox" href="http://www.iab.com/iab-digital-media-sales-certification-overview/">Digital Media Sales Certification</a></li>
+</ul><ul class="list--common"><li class="sub-menu__title">Browse by Recertification</li><li class="menu-ad-ops-recertification"><a class="fancybox" href="http://www.iab.com/iab-ad-ops-certification-recertification/">Ad Ops Recertification</a></li>
+<li class="menu-digital-media-sales-recertification"><a class="fancybox" href="http://www.iab.com/iab-digital-media-sales-certification-recertification/">Digital Media Sales Recertification</a></li>
+</ul>
+ <ul class="list--most-popular">
+ <li class="sub-menu__title">Featured News</li>
+ <div class="list--row">
+ <li>
+ <div class="media">
+ <a href="http://www.tvnewscheck.com/article/88637/digital-turning-broadcast-sales-upside-down">
+ <img src="http://www.iab.com/wp-content/uploads/2015/09/nbctelemundos-goal-is-to-have-all-their-salespeople-iab-certified-2-e1443725298522-644x429-185x124.jpg" class="media__img" />
+ </a>
+ <div class="media__details">
+ <h3 class="media__details__text">
+ <a href="http://www.tvnewscheck.com/article/88637/digital-turning-broadcast-sales-upside-down">NBC/Telemundo's Goal Is To Have All Their Salespeople "IAB-certified"</a>
+ </h3>
+ </div>
+ </div>
+ </li>
+ <li>
+ <div class="media">
+ <div class="media__details--wide">
+ <h3 class="media__details__text">
+ <a href="http://www.iab.com/news/iab-launches-digital-data-solutions-certification-program-to-establish-vital-professional-benchmark-that-will-address-growing-need-for-data-proficient-workforce">IAB Launches Digital Data Solutions Certification Program to Establish Vital Professional Benchmark That Will Address Growing Need for Data Proficient Workforce</a>
+ </h3>
+ </div>
+ </div>
+ </li>
+ </div>
+ </ul>
+ </div>
+ </li>
+ <li class=" js-nav-item">
+ <a href="http://www.iab.com/topics/public-policy" class="nav-item">Public Policy<div class="sub-menu__arrow"></div></a>
+ <div data-referal="public-policy" class="sub-menu js-sub-menu" style="left: 180px;">
+ <h2>
+ <a class="nav__back-button js-nav-back" href="#"><svg xmlns="http://www.w3.org/2000/svg"><use xlink:href="#icon-arrow-left" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg></a>
+ Public Policy </h2>
+ <ul class="list--common"><li class="sub-menu__title">Initiative</li><li class="menu-advocacy"><a class="fancybox" href="http://www.iab.com/topics/public-policy/?topic=advocacy/">Advocacy</a></li>
+<li class="menu-long-tail-alliance"><a class="fancybox" href="http://www.iab.com/topics/public-policy/?topic=long-tail-alliance/">Long Tail Alliance</a></li>
+<li class="menu-self-regulation"><a class="fancybox" href="http://www.iab.com/topics/public-policy/?topic=self-regulation/">Self-Regulation</a></li>
+</ul>
+ <ul class="list--most-popular">
+ <li class="sub-menu__title">Featured News</li>
+ <div class="list--row">
+ <li>
+ <div class="media">
+ <a href="http://www.iab.com/news/eu-court-invalidates-safe-harbor-program-threatens-transatlantic-trade-and-digital-innovation">
+ <img src="http://www.iab.com/wp-content/uploads/2015/10/eu-court-invalidates-safe-harbor-program-threatens-transatlantic-trade-and-digital-innovation-2-644x429-185x124.jpg" class="media__img" />
+ </a>
+ <div class="media__details">
+ <h3 class="media__details__text">
+ <a href="http://www.iab.com/news/eu-court-invalidates-safe-harbor-program-threatens-transatlantic-trade-and-digital-innovation">EU Court Invalidates Safe Harbor Program; Threatens Transatlantic Trade and Digital Innovation</a>
+ </h3>
+ </div>
+ </div>
+ </li>
+ <li>
+ <div class="media">
+ <a href="http://www.iab.com/events/2015-iab-small-publisher-conference-fly-in/">
+ <img src="http://www.iab.com/wp-content/uploads/2015/05/2015-iab-small-publisher-conference-fly-in-5-185x124.jpg" class="media__img" />
+ </a>
+ <div class="media__details">
+ <h3 class="media__details__text">
+ <a href="http://www.iab.com/events/2015-iab-small-publisher-conference-fly-in/">2015 IAB Small Publisher Conference &amp; Fly-In</a>
+ </h3>
+ </div>
+ </div>
+ </li>
+ </div>
+ <div class="list--row">
+ <li>
+ <div class="media">
+ <a href="http://www.iab.com/guidelines/global-legal-summaries/">
+ <img src="http://www.iab.com/wp-content/uploads/2015/04/global-legal-summaries-5-644x429-185x124.jpg" class="media__img" />
+ </a>
+ <div class="media__details">
+ <h3 class="media__details__text">
+ <a href="http://www.iab.com/guidelines/global-legal-summaries/">Global Legal Summaries</a>
+ </h3>
+ </div>
+ </div>
+ </li>
+ <li>
+ <div class="media">
+ <a href="http://www.iab.com/news/legislative-and-regulatory-tracker">
+ <img src="http://www.iab.com/wp-content/uploads/2015/03/legislative-and-regulatory-tracker-2-644x429-185x124.jpg" class="media__img" />
+ </a>
+ <div class="media__details">
+ <h3 class="media__details__text">
+ <a href="http://www.iab.com/news/legislative-and-regulatory-tracker">Legislative and Regulatory Tracker</a>
+ </h3>
+ </div>
+ </div>
+ </li>
+ </div>
+ </ul>
+ </div>
+ </li>
+ <li class=" js-nav-item">
+ <a href="http://www.iab.com/members" class="nav-item">Membership<div class="sub-menu__arrow"></div></a>
+ <div data-referal="" class="sub-menu js-sub-menu" style="left: 180px;">
+ <h2>
+ <a class="nav__back-button js-nav-back" href="#"><svg xmlns="http://www.w3.org/2000/svg"><use xlink:href="#icon-arrow-left" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg></a>
+ Membership </h2>
+ <ul class="list--common"><li class="sub-menu__title">New Members</li><li class="menu-member-benefits"><a class="fancybox" href="http://www.iab.com/iab-member-benefits/">Member Benefits</a></li>
+<li class="menu-join-iab"><a class="fancybox" href="http://www.iab.com/members/">Join IAB</a></li>
+<li class="menu-iab-committees-councils-a-guide"><a class="fancybox" href="http://www.iab.com/a-guide-to-iab-committees-councils/">IAB Committees &amp; Councils: A Guide</a></li>
+</ul><ul class="list--common"><li class="sub-menu__title">Member Resources</li><li class="menu-iab-committees-councils-whats-happening"><a class="fancybox" href="http://www.iab.com/news/iab-committees-councils-whats-happening">IAB Committees &amp; Councils: What’s Happening</a></li>
+<li class="menu-iab-member-center"><a class="fancybox" href="http://www.iab.com/iab-member-center/">IAB Member Center</a></li>
+<li class="menu-who-are-our-members"><a class="fancybox" href="http://www.iab.com/member-directory/">Who are our members</a></li>
+<li class="menu-advertise-with-us"><a class="fancybox" href="http://www.iab.com/advertise-with-us/">Advertise with Us</a></li>
+<li class="menu-upcoming-events custom-link"><a class="fancybox" href="/events/">Upcoming Events</a></li>
+</ul>
+ <ul class="list--most-popular">
+ <li class="sub-menu__title">Featured</li>
+ <div class="list--row">
+ <li>
+ <div class="media">
+ <a href="http://www.iab.com/insights/content-marketing-and-native-member-research/">
+ <img src="http://www.iab.com/wp-content/uploads/2015/04/native-advertising-3-644x393-185x124.png" class="media__img" />
+ </a>
+ <div class="media__details">
+ <h3 class="media__details__text">
+ <a href="http://www.iab.com/insights/content-marketing-and-native-member-research/">Content Marketing and Native: Member Research Library</a>
+ </h3>
+ </div>
+ </div>
+ </li>
+ <li>
+ <div class="media">
+ <a href="http://www.iab.com/insights/digital-audio-library/">
+ <img src="http://www.iab.com/wp-content/uploads/2012/07/digital-audio-member-research-library-644x429-185x124.jpg" class="media__img" />
+ </a>
+ <div class="media__details">
+ <h3 class="media__details__text">
+ <a href="http://www.iab.com/insights/digital-audio-library/">Digital Audio: Member Research Library</a>
+ </h3>
+ </div>
+ </div>
+ </li>
+ </div>
+ <div class="list--row">
+ <li>
+ <div class="media">
+ <a href="http://www.iab.com/insights/digital-video-library/">
+ <img src="http://www.iab.com/wp-content/uploads/2015/04/68-of-marketers-agencies-anticipate-increasing-video-ad-spend-3-644x429-185x124.jpg" class="media__img" />
+ </a>
+ <div class="media__details">
+ <h3 class="media__details__text">
+ <a href="http://www.iab.com/insights/digital-video-library/">Digital Video: Member Research Library</a>
+ </h3>
+ </div>
+ </div>
+ </li>
+ <li>
+ <div class="media">
+ <a href="http://www.iab.com/insights/multicultural-member-research-library/">
+ <img src="http://www.iab.com/wp-content/uploads/2015/08/multicultural-member-research-library-3-644x429-185x124.jpg" class="media__img" />
+ </a>
+ <div class="media__details">
+ <h3 class="media__details__text">
+ <a href="http://www.iab.com/insights/multicultural-member-research-library/">Multicultural: Member Research Library</a>
+ </h3>
+ </div>
+ </div>
+ </li>
+ </div>
+ <div class="list--row">
+ <li>
+ <div class="media">
+ <a href="http://www.iab.com/insights/general-online-marketing-library/">
+ <img src="http://www.iab.com/wp-content/uploads/2015/09/online-marketing-member-research-library-e1443639959731-644x429-185x124.jpg" class="media__img" />
+ </a>
+ <div class="media__details">
+ <h3 class="media__details__text">
+ <a href="http://www.iab.com/insights/general-online-marketing-library/">Online Marketing: Member Research Library</a>
+ </h3>
+ </div>
+ </div>
+ </li>
+ <li>
+ <div class="media">
+ <a href="http://www.iab.com/insights/social-media-library/">
+ <img src="http://www.iab.com/wp-content/uploads/2012/07/social-media-member-research-library-644x429-185x124.jpg" class="media__img" />
+ </a>
+ <div class="media__details">
+ <h3 class="media__details__text">
+ <a href="http://www.iab.com/insights/social-media-library/">Social Media: Member Research Library</a>
+ </h3>
+ </div>
+ </div>
+ </li>
+ </div>
+ </ul>
+ </div>
+ </li>
+ <li class=" js-nav-item">
+ <a href="http://www.iab.com/our-story" class="nav-item">About IAB<div class="sub-menu__arrow"></div></a>
+ <div data-referal="organizations" class="sub-menu js-sub-menu" style="left: 180px;">
+ <h2>
+ <a class="nav__back-button js-nav-back" href="#"><svg xmlns="http://www.w3.org/2000/svg"><use xlink:href="#icon-arrow-left" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg></a>
+ About IAB </h2>
+ <ul class="list--common"><li class="sub-menu__title">About IAB</li><li class="menu-board-of-directors custom-link"><a class="fancybox" href="/our-story/#board-of-directors">Board of Directors</a></li>
+<li class="menu-ad-ops-advisory-board custom-link"><a class="fancybox" href="/our-story/#ad-ops-advisory-board">Ad Ops Advisory Board</a></li>
+<li class="menu-ad-tech-advisory-board custom-link"><a class="fancybox" href="/our-story/#ad-tech-advisory-board">Ad Tech Advisory Board</a></li>
+<li class="menu-agency-advisory-board custom-link"><a class="fancybox" href="/our-story/#agency-advisory-board">Agency Advisory Board</a></li>
+<li class="menu-digital-video-board custom-link"><a class="fancybox" href="/our-story/#digital-video-board">Digital Video Board</a></li>
+<li class="menu-mobile-center-board custom-link"><a class="fancybox" href="/our-story/#mobile-center-board">Mobile Center Board</a></li>
+<li class="menu-tech-lab-board custom-link"><a class="fancybox" href="/our-story/#tech-lab-board">Tech Lab Board</a></li>
+<li class="menu-iab-staff custom-link"><a class="fancybox" href="/our-story/#iab-staff">IAB Staff</a></li>
+<li class="menu-contact-us"><a class="fancybox" href="http://www.iab.com/contact/">Contact Us</a></li>
+</ul><ul class="list--common"><li class="sub-menu__title">Our Organizations</li><li class="menu-iab-education-foundation"><a class="fancybox" href="http://www.iab.com/organizations/iab-education-foundation/">IAB Education Foundation</a></li>
+<li class="menu-iab-global-network"><a class="fancybox" href="http://www.iab.com/global">IAB Global Network</a></li>
+<li class="menu-iab-tech-lab"><a class="fancybox" href="http://www.iab.com/organizations/iab-tech-lab/">IAB Tech Lab</a></li>
+<li class="menu-digital-video-center-of-excellence custom-link"><a class="fancybox" href="/topics/digital-video/">Digital Video Center Of Excellence</a></li>
+<li class="menu-mobile-marketing-center-of-excellence custom-link"><a class="fancybox" href="/topics/mobile/">Mobile Marketing Center Of Excellence</a></li>
+</ul>
+ <ul class="list--most-popular">
+ <li class="sub-menu__title">Featured News</li>
+ <div class="list--row">
+ <li>
+ <div class="media">
+ <div class="media__details--wide">
+ <h3 class="media__details__text">
+ <a href="http://careers.iab.net/">IAB Job Board</a>
+ </h3>
+ </div>
+ </div>
+ </li>
+ <li>
+ <div class="media">
+ <a href="http://www.iab.com/iab-by-laws/">
+ <img src="http://www.iab.com/wp-content/uploads/2012/11/interactive-glossary-2-644x429-185x124.jpg" class="media__img" />
+ </a>
+ <div class="media__details">
+ <h3 class="media__details__text">
+ <a href="http://www.iab.com/iab-by-laws/">IAB By Laws</a>
+ </h3>
+ </div>
+ </div>
+ </li>
+ </div>
+ <div class="list--row">
+ <li>
+ <div class="media">
+ <div class="media__details--wide">
+ <h3 class="media__details__text">
+ <a href="http://www.iab.com/iab-member-seal-terms-use/">IAB Member Seal</a>
+ </h3>
+ </div>
+ </div>
+ </li>
+ <li>
+ <div class="media">
+ <div class="media__details--wide">
+ <h3 class="media__details__text">
+ <a href="http://www.iab.com/member-directory/">IAB Member Directory</a>
+ </h3>
+ </div>
+ </div>
+ </li>
+ </div>
+ </ul>
+ </div>
+ </li>
+ </ul>
+ </nav>
+ <div class="social-accounts-login-register">
+ <div class="social-accounts">
+ <a target="_blank" href="https://twitter.com/iab" class="icon--no-bg">
+ <svg xmlns="http://www.w3.org/2000/svg"><use xlink:href="#icon-twitter" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg>
+ </a>
+ <a target="_blank" href="https://www.facebook.com/IAB" class="icon--no-bg">
+ <svg xmlns="http://www.w3.org/2000/svg"><use xlink:href="#icon-facebook" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg>
+ </a>
+ <a target="_blank" href="https://www.linkedin.com/company/iab" class="icon--no-bg">
+ <svg xmlns="http://www.w3.org/2000/svg"><use xlink:href="#icon-linkedin" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg>
+ </a>
+ <a target="_blank" href="http://instagram.com/iabnet" class="icon--no-bg">
+ <svg xmlns="http://www.w3.org/2000/svg"><use xlink:href="#icon-instagram" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg>
+ </a>
+ <a target="_blank" href="https://plus.google.com/+iab/" class="icon--no-bg">
+ <svg xmlns="http://www.w3.org/2000/svg"><use xlink:href="#icon-gplus" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg>
+ </a>
+ </div>
+
+ <p class="login-register"><a href="http://members.iab.net/eweb/DynamicPage.aspx?WebCode=LoginRequired&amp;expires=yes&amp;Site=iab">Sign In</a><span>|</span>
+ <a href="mailto:[email protected]">Join IAB</a>
+ </p>
+ </div>
+</div>
+ <main role="main" class="main">
+
+<section class="single-post clearfix" id="single">
+
+<article class="article">
+
+ <section class="module--ad container">
+
+ <div data-sizes="[728,90]" data-adunitid="728x90_1_home_hrreview" data-networkid="4049405" class="iab-ads" id="iab_ads_container_1"><div id="google_ads_iframe_/4049405/728x90_1_home_hrreview_0__container__" style="border: 0pt none; margin: auto; text-align: center;"><iframe width="728" height="90" frameborder="0" id="google_ads_iframe_/4049405/728x90_1_home_hrreview_0" name="google_ads_iframe_/4049405/728x90_1_home_hrreview_0" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" src="javascript:&quot;<html><body style='background:transparent'></body></html>&quot;"></iframe></div><iframe width="0" height="0" frameborder="0" id="google_ads_iframe_/4049405/728x90_1_home_hrreview_0__hidden__" name="google_ads_iframe_/4049405/728x90_1_home_hrreview_0__hidden__" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom; visibility: hidden; display: none;" src="javascript:&quot;<html><body style='background:transparent'></body></html>&quot;"></iframe></div>
+ </section>
+
+
+ <div class="article__header container">
+ <h1 class="article__title">Getting LEAN with Digital Ad UX</h1>
+ <time class="article__date">10.15.15<span class="date__separator"></span></time>
+ <div class="article__author">By
+ Scott Cunningham </div>
+ </div>
+
+ <div class="article__image">
+ <img alt="Getting LEAN with Digital Ad UX 1" src="http://www.iab.com/wp-content/uploads/2015/10/getting-lean-with-digital-ad-ux-2-1000x305.jpg" />
+ <div class="social-sharing">
+ <a href="#" class="icon--red-bg">
+ <svg xmlns="http://www.w3.org/2000/svg"><use xlink:href="#icon-share" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg>
+ </a>
+ <ul class="social-sharing__icons">
+ <li class="social-sharing__icon">
+ <a target="_blank" href="http://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fwww.iab.com%2Fnews%2Flean&amp;title=Getting%20LEAN%20with%20Digital%20Ad%20UX" data-pagepath="http://www.iab.com/news/lean" data-target="Getting LEAN with Digital Ad UX" data-action="share" data-network="facebook" class="js-social-share">
+ <svg xmlns="http://www.w3.org/2000/svg"><use xlink:href="#icon-facebook" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg>
+ </a>
+ </li>
+ <li class="social-sharing__icon">
+ <a target="_blank" href="https://twitter.com/intent/tweet/?text=Getting+LEAN+with+Digital+Ad+UX&amp;url=http%3A%2F%2Fwww.iab.com%2Fnews%2Flean&amp;via=iab" data-pagepath="http://www.iab.com/news/lean" data-target="Getting LEAN with Digital Ad UX" data-action="share" data-network="twitter" class="js-social-share">
+ <svg xmlns="http://www.w3.org/2000/svg"><use xlink:href="#icon-twitter" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg>
+ </a>
+ </li>
+ <li class="social-sharing__icon">
+ <a target="_blank" href="https://www.linkedin.com/shareArticle?mini=true&amp;title=Getting+LEAN+with+Digital+Ad+UX&amp;url=http://www.iab.com/news/lean&amp;summary=We+messed+up.+As+technologists%2C+tasked+with+delivering+content+and+services+to+users%2C+we+lost+track+of+the+user+experience.+Twenty+years+ago+we+saw+an+explosion+of+websites%2C+built+by+developers+around+the+world%2C+providing+all+forms+of+content.+This+was+the+beginning+of+an+age+of+enlightenment%2C+the+intersection+of+content+and+technology.+%26hellip%3B+%3Ca+href%3D%22http%3A%2F%2Fwww.iab.com%2Fnews%2Flean%22%3EContinued%3C%2Fa%3E" data-pagepath="http://www.iab.com/news/lean" data-target="Getting LEAN with Digital Ad UX" data-action="share" class="js-social-share">
+ <svg xmlns="http://www.w3.org/2000/svg"><use xlink:href="#icon-linkedin" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg>
+ </a>
+ </li>
+ </ul>
+</div>
+ <!-- -->
+ </div>
+
+ <div class="container module--news">
+ <div class="article__content">
+ <p>We messed up. As technologists, tasked with delivering content and services to users, we lost track of the user experience.</p>
+<p>Twenty years ago we saw an explosion of websites, built by developers around the world, providing all forms of content. This was the beginning of an age of enlightenment, the intersection of content and technology. Many of us in the technical field felt compelled, and even empowered, to produce information as the distribution means for mass communication were no longer restricted by a high barrier to entry.</p>
+<p>In 2000, the dark ages came when the dot-com bubble burst. We were told that our startups were gone or that our divisions sustained by corporate parent companies needed to be in the black. It was a wakeup call that led to a renaissance age. Digital advertising became the foundation of an economic engine that, still now, sustains the free and democratic World Wide Web. In digital publishing, we strived to balance content, commerce, and technology. The content management systems and communication gateways we built to inform and entertain populations around the world disrupted markets and in some cases governments, informed communities of imminent danger, and liberated new forms of art and entertainment—all while creating a digital middle class of small businesses.</p>
+<p>We engineered not just the technical, but also the social and economic foundation that users around the world came to lean on for access to real time information. And users came to expect this information whenever and wherever they needed it. And more often than not, for anybody with a connected device, it was free.</p>
+<p>This was choice—powered by digital advertising—and premised on user experience.</p>
+<p>But we messed up.</p>
+<p>Through our pursuit of further automation and maximization of margins during the industrial age of media technology, we built advertising technology to optimize publishers’ yield of marketing budgets that had eroded after the last recession. Looking back now, our scraping of dimes may have cost us dollars in consumer loyalty. The fast, scalable systems of targeting users with ever-heftier advertisements have slowed down the public internet and drained more than a few batteries. We were so clever and so good at it that we over-engineered the capabilities of the plumbing laid down by, well, ourselves. This steamrolled the users, depleted their devices, and tried their patience.</p>
+<p>The rise of ad blocking poses a threat to the internet and could potentially drive users to an enclosed platform world dominated by a few companies. We have let the fine equilibrium of content, commerce, and technology get out of balance in the open web. We had, and still do have, a responsibility to educate the business side, and in some cases to push back. We lost sight of our social and ethical responsibility to provide a safe, usable experience for anyone and everyone wanting to consume the content of their choice.</p>
+<p>We need to bring that back into alignment, starting right now.</p>
+<p><a href="http://www.iab.com/wp-content/uploads/2015/10/getting-lean-with-digital-ad-ux.jpg"><img width="300" height="250" alt="Getting LEAN with Digital Ad UX" src="http://www.iab.com/wp-content/uploads/2015/10/getting-lean-with-digital-ad-ux-300x250.jpg" class="alignnone size-medium wp-image-15403" /></a>Today, the IAB Tech Lab is launching the L.E.A.N. Ads program. Supported by the Executive Committee of the IAB Tech Lab Board, IABs around the world, and hundreds of member companies, L.E.A.N. stands for Light, Encrypted, Ad choice supported, Non-invasive ads. These are principles that will help guide the next phases of advertising technical standards for the global digital advertising supply chain.</p>
+<p>As with any other industry, standards should be created by non-profit standards-setting bodies, with many diverse voices providing input. We will invite all parties for public comment, and make sure consumer interest groups have the opportunity to provide input.</p>
+<p>L.E.A.N. Ads do not replace the current advertising standards many consumers still enjoy and engage with while consuming content on our sites across all IP enabled devices. Rather, these principles will guide an alternative set of standards that provide choice for marketers, content providers, and consumers.</p>
+<p>Among the many areas of concentration, we must also address frequency capping on retargeting in Ad Tech and make sure a user is targeted appropriately before, but never AFTER they make a purchase. If we are so good at reach and scale, we can be just as good, if not better, at moderation. Additionally, we must address volume of ads per page as well as continue on the path to viewability. The dependencies here are critical to an optimized user experience.</p>
+<p>The consumer is demanding these actions, challenging us to do better, and we must respond.</p>
+<p>The IAB Tech Lab will continue to provide the tools for publishers in the digital supply chain to have a dialogue with users about their choices so that content providers can generate revenue while creating value. Publishers should have the opportunity to provide rich advertising experiences, L.E.A.N. advertising experiences, and subscription services. Or publishers can simply deny their service to users who choose to keep on blocking ads. That is all part of elasticity of consumer tolerance and choice.</p>
+<p>Finally, we must do this in an increasingly fragmented market, across screens. We must do this in environments where entire sites are blocked, purposefully or not. Yes, it is disappointing that our development efforts will have to manage with multiple frameworks while we work to supply the economic engine to sustain an open internet. However, our goal is still to provide diverse content and voices to as many connected users as possible around the world.</p>
+<p>That is user experience.</p>
+<p> </p>
+<table style="background-color: #cccccc;">
+<tbody>
+<tr>
+<td>IAB Tech Lab Members can join the IAB Tech Lab Ad Blocking Working Group, please email <a href="mailto:[email protected]">[email protected]</a> for more information.</td>
+</tr>
+</tbody>
+</table>
+<p>Read <a target="_blank" href="http://www.iab.com/insights/ad-blocking/">more about ad blocking here</a>.</p>
+ </div>
+ </div>
+
+
+<aside id="post-author" class="author container">
+ <div class="clearfix">
+ <figure class="author__img"><img alt="Auto Draft 14" src="http://www.iab.com/wp-content/uploads/2015/05/auto-draft-16-150x150.jpg" /></figure>
+ <div class="author__text">
+ <h4 class="author__text__heading">About the author</h4>
+ <div class="author__text__content"><strong>Scott Cunningham</strong></div>
+ <div class="author__text__content">Senior Vice President of Technology and Ad Operations at IAB, and General Manager of the IAB Tech Lab</div>
+ </div>
+ </div>
+</aside>
+</article>
+<div class="module module--related">
+
+ <h2 class="heading--block">Related Content</h2>
+
+ <div class="article-list container">
+
+ <article data-sort="2015-09-28T16:06:35+00:00" class="media article-list__item" id="related-13427">
+ <a href="http://www.iab.com/news/iab-tech-lab-releases-updated-iab-html5-for-digital-advertising-guide-for-public-comment" class="media__link">
+
+ <div class="media__details no-featured-image">
+ <h2 class="media__details__title article-list__item__title">IAB Tech Lab Releases Updated ‘IAB HTML5 for Digital Advertising Guide’ for Public Comment</h2>
+ <div class="media__details__meta">
+ <time>09.28.15</time>
+ </div>
+ </div>
+ </a>
+ </article>
+
+ <article data-sort="2015-09-22T15:16:51+00:00" class="media--inset article-list__item" id="related-13027">
+ <a href="http://adage.com/article/digitalnext/ad-blocking-unnecessary-internet-apocalypse/300470/" class="media__link">
+ <div class="media__overlay"></div>
+ <img src="http://www.iab.com/wp-content/uploads/2015/05/presidents-reports-2-288x192.jpg" class="media__img" />
+
+ <div class="media__details ">
+ <h2 class="media__details__title article-list__item__title">Ad Blocking: The Unnecessary Internet Apocalypse</h2>
+ <div class="media__details__meta">
+ <time>09.22.15</time>
+ </div>
+ </div>
+ </a>
+ </article>
+
+ <article data-sort="2015-09-21T17:01:26+00:00" class="media--inset article-list__item" id="related-12991">
+ <a href="http://www.wsj.com/articles/iab-ceo-randall-rothenberg-on-ad-blocking-viewability-fraud-1442836801" class="media__link">
+ <div class="media__overlay"></div>
+ <img src="http://www.iab.com/wp-content/uploads/2015/09/iab-ceo-randall-rothenberg-on-ad-blocking-viewability-fraud-in-the-wall-street-journal-3-288x192.jpg" class="media__img" />
+
+ <div class="media__details ">
+ <h2 class="media__details__title article-list__item__title">IAB CEO Randall Rothenberg on Ad Blocking, Viewability, &amp; Fraud in The Wall Street Journal</h2>
+ <div class="media__details__meta">
+ <time>09.21.15</time>
+ </div>
+ </div>
+ </a>
+ </article>
+
+ <article data-sort="2015-09-16T14:45:09+00:00" class="media article-list__item" id="related-12971">
+ <a href="http://www.iab.com/news/iab-tech-lab-releases-updated-digital-video-in-stream-ad-format-guidelines-best-practices-for-public-comment" class="media__link">
+
+ <div class="media__details no-featured-image">
+ <h2 class="media__details__title article-list__item__title">IAB Tech Lab Releases Updated ‘Digital Video In-Stream Ad Format Guidelines &amp; Best Practices...</h2>
+ <div class="media__details__meta">
+ <time>09.16.15</time>
+ </div>
+ </div>
+ </a>
+ </article>
+
+ <article data-sort="2015-08-27T15:17:46+00:00" class="media--inset article-list__item" id="related-12726">
+ <a href="http://www.iab.com/news/the-age-of-html5-ads" class="media__link">
+ <div class="media__overlay"></div>
+ <img src="http://www.iab.com/wp-content/uploads/2015/08/the-age-of-html5-ads-3-288x192.jpg" class="media__img" />
+
+ <div class="media__details ">
+ <h2 class="media__details__title article-list__item__title">The Age of HTML5 Ads</h2>
+ <div class="media__details__meta">
+ <time>08.27.15</time>
+ </div>
+ </div>
+ </a>
+ </article>
+
+ <article data-sort="2015-08-17T14:48:53+00:00" class="media article-list__item" id="related-12123">
+ <a href="http://www.iab.com/news/iab-tech-lab-releases-updated-iab-display-creative-guidelines-for-public-comment" class="media__link">
+
+ <div class="media__details no-featured-image">
+ <h2 class="media__details__title article-list__item__title">IAB Tech Lab Releases Updated ‘IAB Display Creative Guidelines’ For Public Comment</h2>
+ <div class="media__details__meta">
+ <time>08.17.15</time>
+ </div>
+ </div>
+ </a>
+ </article>
+ </div>
+
+ <script id="relatedContentsTemplate" type="text/template">
+ &lt;% var has_image = false,
+ media_class = "media";
+ if(featured_image !== '') { has_image = true; media_class = "media--inset"; } %&gt;
+ &lt;article id="related-&lt;%= post_id %&gt;" class="&lt;%= media_class %&gt; article-list__item" data-sort="&lt;%= datetime %&gt;"&gt;
+ &lt;a class="media__link" href="&lt;%= permalink %&gt;"&gt;
+ &lt;% if(has_image) { %&gt;
+
+ &lt;div class="media__overlay"&gt;&lt;/div&gt;
+ &lt;img class="media__img" src="&lt;%= featured_image %&gt;" /&gt;
+
+ &lt;% } %&gt;
+
+ &lt;div class="media__details &lt;% if( !has_image ) { %&gt; no-featured-image &lt;% } %&gt;"&gt;
+ &lt;h2 class="media__details__title article-list__item__title"&gt;&lt;%= title %&gt;&lt;/h2&gt;
+ &lt;div class="media__details__meta"&gt;
+ &lt;% if (show_dateline) { %&gt;
+ &lt;time&gt;&lt;%= date_display %&gt;&lt;/time&gt;
+ &lt;% } %&gt;
+ &lt;/div&gt;
+ &lt;/div&gt;
+ &lt;/a&gt;
+ &lt;/article&gt;
+ </script>
+
+ <div data-page="2" data-posts-limit="6" data-post-id="15323" class="cta-section show-more">
+ <a href="#" class="btn">Show more related content</a>
+ </div>
+ </div></section>
+
+
+<section class="module module--newsletter">
+ <div class="container">
+ <h4 class="newsletter__heading">Get connected with IAB</h4>
+ <div class="newsletter__text">
+ <p>Be the first to know. Sign up to receive news about the IAB programs, standards, events, classes, and more!</p>
+ </div>
+ <a class="btn fancybox" href="https://portal.iab.com/cpbase__form?scontrolCaching=1&amp;id=a0Mj00000009XDV">Sign up now <svg xmlns="http://www.w3.org/2000/svg" class="btn__arrow"><use xlink:href="#icon-arrow-right" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg></a>
+ </div>
+</section><footer role="contentinfo" class="content-info footer">
+
+ <div class="container">
+
+ <div class="footer__column">
+ <h2 class="footer__column__heading">IAB Leadership</h2>
+ <ul class="plain-list footer__link-list" id="menu-iab-leadership-1"><li class="menu-board-of-directors custom-link"><a class="fancybox" href="/our-story/#board-of-directors">Board of Directors</a></li>
+<li class="menu-ad-ops-advisory-board custom-link"><a class="fancybox" href="/our-story/#ad-ops-advisory-board">Ad Ops Advisory Board</a></li>
+<li class="menu-ad-tech-advisory-board custom-link"><a class="fancybox" href="/our-story/#ad-tech-advisory-board">Ad Tech Advisory Board</a></li>
+<li class="menu-agency-advisory-board custom-link"><a class="fancybox" href="/our-story/#agency-advisory-board">Agency Advisory Board</a></li>
+<li class="menu-digital-video-board custom-link"><a class="fancybox" href="/our-story/#digital-video-board">Digital Video Board</a></li>
+<li class="menu-mobile-center-board custom-link"><a class="fancybox" href="/our-story/#mobile-center-board">Mobile Center Board</a></li>
+<li class="menu-tech-lab-board custom-link"><a class="fancybox" href="/our-story/#tech-lab-board">Tech Lab Board</a></li>
+<li class="menu-iab-staff custom-link"><a class="fancybox" href="/our-story/#iab-staff">IAB Staff</a></li>
+<li class="menu-contact-us"><a class="fancybox" href="http://www.iab.com/contact/">Contact Us</a></li>
+</ul> </div>
+ <div class="footer__column">
+ <h2 class="footer__column__heading">Our Work</h2>
+ <ul class="plain-list footer__link-list" id="menu-our-work"><li class="menu-news custom-link"><a class="fancybox" href="/news">News</a></li>
+<li class="menu-public-policy custom-link"><a class="fancybox" href="/topics/public-policy/">Public Policy</a></li>
+<li class="menu-research-thought-leadership custom-link"><a class="fancybox" href="/insights/">Research &amp; Thought Leadership</a></li>
+<li class="menu-standards-guidelines-best-practices custom-link"><a class="fancybox" href="/guidelines/">Standards, Guidelines &amp; Best Practices</a></li>
+</ul> </div>
+ <div class="footer__column">
+ <h2 class="footer__column__heading">Participate</h2>
+ <ul class="plain-list footer__link-list" id="menu-participate"><li class="menu-certification custom-link"><a class="fancybox" href="/topics/certification/">Certification</a></li>
+<li class="menu-events custom-link"><a class="fancybox" href="/events">Events</a></li>
+<li class="menu-learning custom-link"><a class="fancybox" href="/topics/learning/">Learning</a></li>
+<li class="menu-log-in custom-link"><a class="fancybox" href="http://members.iab.net/eweb/DynamicPage.aspx?WebCode=LoginRequired&amp;expires=yes&amp;Site=iab">Log-In</a></li>
+<li class="menu-members custom-link"><a class="fancybox" href="/members">Members</a></li>
+</ul> </div>
+
+ <div class="footer__column">
+ <h2 class="footer__column__heading">Follow Us</h2>
+
+ <a target="_blank" href="https://twitter.com/iab" class="icon--circular">
+ <svg xmlns="http://www.w3.org/2000/svg"><use xlink:href="#icon-twitter" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg>
+ </a>
+ <a target="_blank" href="https://www.facebook.com/IAB" class="icon--circular">
+ <svg xmlns="http://www.w3.org/2000/svg"><use xlink:href="#icon-facebook" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg>
+ </a>
+ <a target="_blank" href="https://www.linkedin.com/company/iab" class="icon--circular">
+ <svg xmlns="http://www.w3.org/2000/svg"><use xlink:href="#icon-linkedin" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg>
+ </a>
+ <a target="_blank" href="http://instagram.com/iabnet" class="icon--circular">
+ <svg xmlns="http://www.w3.org/2000/svg"><use xlink:href="#icon-instagram" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg>
+ </a>
+ <a target="_blank" href="https://plus.google.com/+iab/" class="icon--circular">
+ <svg xmlns="http://www.w3.org/2000/svg"><use xlink:href="#icon-gplus" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg>
+ </a>
+ <a target="_blank" href="https://www.youtube.com/IABtv" class="icon--circular">
+ <svg xmlns="http://www.w3.org/2000/svg"><use xlink:href="#icon-youtube" xmlns:xlink="http://www.w3.org/1999/xlink"/></svg>
+ </a>
+
+ </div>
+ </div>
+
+ <div class="container clearfix">
+
+ <div class="footer__column--wide clearfix">
+
+ </div>
+
+ <div class="footer__column--wider">
+ <p class="footer__copyright">
+ </p><div id="iab_tos"><div class="content1"><span style="color: #ee3224;" class="copyright">©</span> 2015 Interactive Advertising Bureau | <a target="_blank" href="http://www.iab.com/privacy-policy" style="display: inline;">Privacy Policy</a><img align="absmiddle" hspace="5" style="margin: 0 5px; display: inline;" src="//www.iab.net/media/image/badge-updated.png" /> | <a target="_blank" href="http://www.iab.com/terms-of-use" style="display: inline;">Terms of Use</a> | <img align="absmiddle" src="http://www.iab.net/media/image/IconOnlyCollisionMarker.png" /> <a href="http://www.iab.com/privacy-policy#pp" style="display: inline;">Your Ad Choices</a></div></div><script src="//iab.net/extra/tos/tos.js"></script>
+ <p></p>
+ </div>
+ </div>
+</footer>
+
+ <script type="text/javascript">
+/* &lt;![CDATA[ */
+var localizedVars = {"startPage":"1","postType":""};
+/* ]]&gt; */
+</script>
+<script src="http://www.iab.com/wp-content/themes/iab/assets/js/scripts.min.js?9770f7e9a73e11230b967637839b8db3" type="text/javascript"></script><script src="http://maps.gstatic.com/maps-api-v3/api/js/20/1/main.js"></script><iframe src="http://tpc.googlesyndication.com/safeframe/1-0-2/html/container.html" style="visibility: hidden; display: none;"></iframe>
+<script type="text/javascript"> if(typeof gf_global == 'undefined') var gf_global = {"gf_currency_config":{"name":"U.S. Dollar","symbol_left":"$","symbol_right":"","symbol_padding":"","thousand_separator":",","decimal_separator":".","decimals":2},"base_url":"http:\/\/www.iab.com\/wp-content\/plugins\/gravityforms","number_formats":[],"spinnerUrl":"http:\/\/www.iab.com\/wp-content\/plugins\/gravityforms\/images\/spinner.gif"};jQuery(document).bind('gform_post_render', function(event, formId, currentPage){if(formId == 1) {GravityFormError();
+ function GravityFormError(){
+ if(jQuery('div.validation_error').length != 0){
+ jQuery('.gform_wrapper').find('.gfield_error input:eq(0)').focus();
+ }
+ }
+ } } );jQuery(document).bind('gform_post_conditional_logic', function(event, formId, fields, isInit){} );</script><script type="text/javascript"> jQuery(document).ready(function(){jQuery(document).trigger('gform_post_render', [1, 1]) } ); </script><script>var pltNewTabURLs = ["http:\/\/www.wsj.com\/articles\/iab-ceo-randall-rothenberg-on-ad-blocking-viewability-fraud-1442836801","http:\/\/measurementnow.net\/","http:\/\/www.iab.net\/events_training\/mixx15","http:\/\/www.iab.net\/events_training\/2015\/newfronts","http:\/\/www.tvnewscheck.com\/article\/88637\/digital-turning-broadcast-sales-upside-down","http:\/\/adage.com\/article\/digitalnext\/ad-blocking-unnecessary-internet-apocalypse\/300470\/"];(function(){(function(e){var t;t=e.jQueryWP||e.jQuery;return t(function(e){return typeof e.fn.on=="function"?e("body").on("click","a",function(t){var n;n=e(this);if(e.inArray(n.attr("href"),pltNewTabURLs)&gt;-1)return n.attr("target","_blank")}):typeof console!="undefined"&amp;&amp;console!==null?console.log("Page Links To: Some other code has overridden the WordPress copy of jQuery. This is bad. Because of this, Page Links To cannot open links in a new window."):void 0})})(window)}).call(this);</script>
+ </main><!-- /.main -->
+ </div><!-- /.wrap -->
+<script type="text/javascript">
+/* &lt;![CDATA[ */
+(function(){try{var s,a,i,j,r,c,l=document.getElementsByTagName("a"),t=document.createElement("textarea");for(i=0;l.length-i;i++){try{a=l[i].getAttribute("href");if(a&amp;&amp;a.indexOf("/cdn-cgi/l/email-protection") &gt; -1 &amp;&amp; (a.length &gt; 28)){s='';j=27+ 1 + a.indexOf("/cdn-cgi/l/email-protection");if (a.length &gt; j) {r=parseInt(a.substr(j,2),16);for(j+=2;a.length&gt;j&amp;&amp;a.substr(j,1)!='X';j+=2){c=parseInt(a.substr(j,2),16)^r;s+=String.fromCharCode(c);}j+=1;s+=a.substr(j,a.length-j);}t.innerHTML=s.replace(/&lt;/g,"&amp;lt;").replace(/&gt;/g,"&amp;gt;");l[i].setAttribute("href","mailto:"+t.value);}}catch(e){}}}catch(e){}})();
+/* ]]&gt; */
+</script>
+
+
+<iframe id="google_osd_static_frame_1648099466980" name="google_osd_static_frame" style="display: none; width: 0px; height: 0px;"></iframe></body></html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ietf-1/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ietf-1/expected-images.json
new file mode 100644
index 000000000..0637a088a
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ietf-1/expected-images.json
@@ -0,0 +1 @@
+[] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ietf-1/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ietf-1/expected-metadata.json
new file mode 100644
index 000000000..ddf0094b9
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ietf-1/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "Jong, Michiel de",
+ "Direction": null,
+ "Excerpt": null,
+ "Image": null,
+ "Title": "remoteStorage",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ietf-1/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ietf-1/expected.html
new file mode 100644
index 000000000..ff46f7a1d
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ietf-1/expected.html
@@ -0,0 +1,1110 @@
+<div>
+
+<span>[<a href="http://fakehost/test/../html/" title="Document search and retrieval page">Docs</a>] [<a href="https://tools.ietf.org/id/draft-dejong-remotestorage-04.txt" title="Plaintext version of this document">txt</a>|<a href="http://fakehost/pdf/draft-dejong-remotestorage-04.txt" title="PDF version of this document">pdf</a>] [<a href="https://datatracker.ietf.org/doc/draft-dejong-remotestorage" title="IESG Datatracker information for this document">Tracker</a>] [<a href="mailto:[email protected]?subject=draft-dejong-remotestorage%20" title="Send email to the document authors">Email</a>] [<a href="http://fakehost/rfcdiff?difftype=--hwdiff&amp;url2=draft-dejong-remotestorage-04.txt" title="Inline diff (wdiff)">Diff1</a>] [<a href="http://fakehost/rfcdiff?url2=draft-dejong-remotestorage-04.txt" title="Side-by-side diff">Diff2</a>] [<a href="http://fakehost/idnits?url=https://tools.ietf.org/id/draft-dejong-remotestorage-04.txt" title="Run an idnits check of this document">Nits</a>] </span><br></br><span> </span><br></br><span>Versions: <a href="http://fakehost/test/draft-dejong-remotestorage-00">00</a> <a href="http://fakehost/test/draft-dejong-remotestorage-01">01</a> <a href="http://fakehost/test/draft-dejong-remotestorage-02">02</a> <a href="http://fakehost/test/draft-dejong-remotestorage-03">03</a> <a href="http://fakehost/test/draft-dejong-remotestorage-04">04</a> </span><br></br><span> </span><br></br><pre>INTERNET DRAFT Michiel B. de Jong
+Document: <a href="http://fakehost/test/draft-dejong-remotestorage-04">draft-dejong-remotestorage-04</a> IndieHosters
+ F. Kooman
+Intended Status: Proposed Standard (independent)
+Expires: 18 June 2015 15 December 2014
+
+
+ <span>remoteStorage</span>
+
+Abstract
+
+ This draft describes a protocol by which client-side applications,
+ running inside a web browser, can communicate with a data storage
+ server that is hosted on a different domain name. This way, the
+ provider of a web application need not also play the role of data
+ storage provider. The protocol supports storing, retrieving, and
+ removing individual documents, as well as listing the contents of an
+ individual folder, and access control is based on bearer tokens.
+
+Status of this Memo
+
+ This Internet-Draft is submitted in full conformance with the
+ provisions of <a href="http://fakehost/test/bcp78">BCP 78</a> and <a href="http://fakehost/test/bcp79">BCP 79</a>.
+
+ Internet-Drafts are working documents of the Internet Engineering
+ Task Force (IETF). Note that other groups may also distribute
+ working documents as Internet-Drafts. The list of current Internet-
+ Drafts is at <a href="http://datatracker.ietf.org/drafts/current/">http://datatracker.ietf.org/drafts/current/</a>.
+
+ Internet-Drafts are draft documents valid for a maximum of six months
+ and may be updated, replaced, or obsoleted by other documents at any
+ time. It is inappropriate to use Internet-Drafts as reference
+ material or to cite them other than as "work in progress."
+
+ This Internet-Draft will expire on 15 December 2014.
+
+Copyright Notice
+
+ Copyright (c) 2014 IETF Trust and the persons identified as the
+ document authors. All rights reserved.
+
+ This document is subject to <a href="http://fakehost/test/bcp78">BCP 78</a> and the IETF Trust's Legal
+ Provisions Relating to IETF Documents
+ (<a href="http://trustee.ietf.org/license-info">http://trustee.ietf.org/license-info</a>) in effect on the date of
+ publication of this document. Please review these documents
+ carefully, as they describe your rights and restrictions with respect
+ to this document. Code Components extracted from this document must
+ include Simplified BSD License text as described in <a href="#section-4">Section 4</a>.e of
+ the Trust Legal Provisions and are provided without warranty as
+ described in the Simplified BSD License.
+
+
+<span>de Jong [Page 1]</span>
+</pre><pre><a href="#page-2" id="page-2" name="page-2"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
+
+
+Table of Contents
+
+ <a href="#section-1">1</a>. Introduction...................................................<a href="#page-2">2</a>
+ <a href="#section-2">2</a>. Terminology....................................................<a href="#page-3">3</a>
+ <a href="#section-3">3</a>. Storage model..................................................<a href="#page-3">3</a>
+ <a href="#section-4">4</a>. Requests.......................................................<a href="#page-4">4</a>
+ <a href="#section-5">5</a>. Response codes.................................................<a href="#page-7">7</a>
+ <a href="#section-6">6</a>. Versioning.....................................................<a href="#page-7">7</a>
+ <a href="#section-7">7</a>. CORS headers...................................................<a href="#page-8">8</a>
+ <a href="#section-8">8</a>. Session description............................................<a href="#page-8">8</a>
+ <a href="#section-9">9</a>. Bearer tokens and access control...............................<a href="#page-9">9</a>
+ <a href="#section-10">10</a>. Application-first bearer token issuance.......................<a href="#page-10">10</a>
+ <a href="#section-11">11</a>. Storage-first bearer token issuance...........................<a href="#page-11">11</a>
+ <a href="#section-12">12</a>. Example wire transcripts......................................<a href="#page-12">12</a>
+ <a href="#section-12.1">12.1</a>. WebFinger................................................<a href="#page-12">12</a>
+ <a href="#section-12.2">12.2</a>. OAuth dialog form........................................<a href="#page-13">13</a>
+ <a href="#section-12.3">12.3</a>. OAuth dialog form submission.............................<a href="#page-14">14</a>
+ <a href="#section-12.4">12.4</a>. OPTIONS preflight........................................<a href="#page-15">15</a>
+ <a href="#section-12.5">12.5</a>. Initial PUT..............................................<a href="#page-15">15</a>
+ <a href="#section-12.6">12.6</a>. Subsequent PUT...........................................<a href="#page-16">16</a>
+ <a href="#section-12.7">12.7</a>. GET......................................................<a href="#page-16">16</a>
+ <a href="#section-12.8">12.8</a>. DELETE...................................................<a href="#page-17">17</a>
+ <a href="#section-13">13</a>. Distributed versioning........................................<a href="#page-17">17</a>
+ <a href="#section-14">14</a>. Security Considerations.......................................<a href="#page-19">19</a>
+ <a href="#section-15">15</a>. IANA Considerations...........................................<a href="#page-20">20</a>
+ <a href="#section-16">16</a>. Acknowledgments...............................................<a href="#page-20">20</a>
+ <a href="#section-17">17</a>. References....................................................<a href="#page-21">21</a>
+ <a href="#section-17.1">17.1</a>. Normative References.....................................<a href="#page-21">21</a>
+ <a href="#section-17.2">17.2</a>. Informative References...................................<a href="#page-21">21</a>
+ <a href="#section-18">18</a>. Authors' addresses............................................<a href="#page-22">22</a>
+
+
+<span><a href="#section-1" name="section-1">1</a>. Introduction</span>
+
+ Many services for data storage are available over the internet. This
+ specification describes a vendor-independent interface for such
+ services. It is based on https, CORS and bearer tokens. The
+ metaphor for addressing data on the storage is that of folders
+ containing documents and subfolders. The actions the interface
+ exposes are:
+
+ * GET a folder: retrieve the names and current versions of the
+ documents and subfolders currently contained by the folder
+
+
+<span>de Jong [Page 2]</span>
+</pre><pre><a href="#page-3" id="page-3" name="page-3"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
+
+
+ * GET a document: retrieve its content type, current version,
+ and contents
+
+ * PUT a document: store a new version, its content type, and
+ contents, conditional on the current version
+
+ * DELETE a document: remove it from the storage, conditional on
+ the current version
+
+ * HEAD a folder or document: like GET, but omitting the response
+ body
+
+ The exact details of these four actions are described in this
+ specification.
+
+<span><a href="#section-2" name="section-2">2</a>. Terminology</span>
+
+ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+ "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
+ document are to be interpreted as described in <a href="http://fakehost/test/rfc2119">RFC 2119</a> [<a href="#ref-WORDS">WORDS</a>].
+
+ "SHOULD" and "SHOULD NOT" are appropriate when valid exceptions to a
+ general requirement are known to exist or appear to exist, and it is
+ infeasible or impractical to enumerate all of them. However, they
+ should not be interpreted as permitting implementors to fail to
+ implement the general requirement when such failure would result in
+ interoperability failure.
+
+<span><a href="#section-3" name="section-3">3</a>. Storage model</span>
+
+ The server stores data in nodes that form a tree structure.
+ Internal nodes are called 'folders' and leaf nodes are called
+ 'documents'. For a folder, the server stores references to nodes
+ contained in the folder, and it should be able to produce a list of
+ them, with for each contained item:
+
+ * item name
+ * item type (folder or document)
+ * current version
+ * content type
+ * content length
+
+ For a document, the server stores, and should be able to produce:
+
+
+<span>de Jong [Page 3]</span>
+</pre><pre><a href="#page-4" id="page-4" name="page-4"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
+
+
+
+ * current version
+ * content type
+ * content length
+ * content
+
+<span><a href="#section-4" name="section-4">4</a>. Requests</span>
+
+ Client-to-server requests SHOULD be made over https [<a href="#ref-HTTPS">HTTPS</a>], and
+ servers MUST comply with HTTP/1.1 [<a href="#ref-HTTP">HTTP</a>]. Specifically, they
+ MUST support chunked transfer coding on PUT requests. Servers MAY
+ also offer an optional switch from https to SPDY [<a href="#ref-SPDY">SPDY</a>].
+
+ A request is considered successful if the HTTP response code is in
+ the 2xx range (e.g. 200 OK, 201 Created), and unsuccessful if an
+ error occurred or a condition was not met (response code e.g. 404
+ Not Found, 304 Not Modified).
+
+ The root folder of the storage tree is represented by the following
+ URL:
+
+ URI_ENCODE( &lt;storage_root&gt; '/' )
+
+ Subsequently, if &lt;parent_folder&gt; is the URL of a folder, then the
+ URL of an item contained in it is:
+
+ URI_ENCODE( &lt;parent_folder&gt; &lt;document_name&gt; )
+
+ for a document, or:
+
+ URI_ENCODE( &lt;parent_folder&gt; &lt;folder_name&gt; '/' )
+
+ for a folder. Item names MAY contain all characters except '/' and
+ the null character, and MUST NOT have zero length.
+
+ A document description is a map containing one string-valued 'ETag'
+ field, one string-valued 'Content-Type' and one integer-valued
+ 'Content-Length' field. They represent the document's current
+ version, its content type, and its content length respectively. Note
+ that content length is measured in octets (bytes), not in
+ characters.
+
+ A folder description is a map containing a string-valued 'ETag'
+
+
+<span>de Jong [Page 4]</span>
+</pre><pre><a href="#page-5" id="page-5" name="page-5"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
+
+
+ field, representing the folder's current version.
+
+ A successful GET request to a folder MUST be responded to with a
+ JSON-LD [<a href="#ref-JSON-LD">JSON-LD</a>] document (content type 'application/ld+json'),
+ containing as its 'items' field a map in which contained documents
+ appear as entries &lt;item_name&gt; to a document description, and
+ contained non-empty folders appear as entries &lt;item_name&gt; '/' to a
+ folder description. It MUST also contain an '@context' field with
+ the value 'http://remotestorage.io/spec/folder-description'. For
+ instance:
+
+ {
+ "@context": "<a href="http://remotestorage.io/spec/folder-description">http://remotestorage.io/spec/folder-description</a>",
+ "items": {
+ "abc": {
+ "ETag": "DEADBEEFDEADBEEFDEADBEEF",
+ "Content-Type": "image/jpeg",
+ "Content-Length": 82352
+ },
+ "def/": {
+ "ETag": "1337ABCD1337ABCD1337ABCD"
+ }
+ }
+ }
+
+ All folders are treated as existing, and therefore GET requests to
+ untouched folders SHOULD be responded to with a folder description
+ with no items (the items field set to '{}'). However, an empty
+ folder MUST NOT be listed as an item in its parent folder.
+
+ Also, since folders exist automatically, PUT and DELETE requests
+ only need to be made to documents, and never to folders. A document
+ PUT will make all ancestor folders along its path become non-empty;
+ deleting the last document from a subtree will make that whole
+ subtree become empty. Folders will therefore show up in their parent
+ folder descriptions if and only if their subtree contains at least
+ one document.
+
+ A successful GET request to a document SHOULD be responded to with
+ the full document contents in the body, the document's content type
+ in a 'Content-Type' header, its content length in octets (not in
+ characters) in a 'Content-Length' header, and the document's current
+ version as a strong ETag in an 'ETag' header.
+
+
+<span>de Jong [Page 5]</span>
+</pre><pre><a href="#page-6" id="page-6" name="page-6"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
+
+
+
+ Note that the use of strong ETags prohibits changing the response
+ body based on request headers; in particular, the server will not be
+ able to serve the same document uncompressed to some clients and
+ gzipped when requested by the client, since the two bodies would not
+ be identical byte-for-byte.
+
+ Servers MAY support Content-Range headers [<a href="#ref-RANGE">RANGE</a>] on GET requests,
+ but whether or not they do SHOULD be announced through the &lt;ranges&gt;
+ variable mentioned below in <a href="#section-10">section 10</a>.
+
+ A successful PUT request to a document MUST result in:
+
+ * the request body being stored as the document's new content,
+ * parent and further ancestor folders being silently created as
+ necessary, with the document (name and version) being added to
+ its parent folder, and each folder added to its subsequent
+ parent,
+ * the value of its Content-Type header being stored as the
+ document's new content type,
+ * its version being updated, as well as that of its parent folder
+ and further ancestor folders, using a strong validator [HTTP,
+ <a href="#section-7.2">section 7.2</a>].
+
+ The response MUST contain a strong ETag header, with the document's
+ new version (for instance a hash of its contents) as its value.
+
+ A successful DELETE request to a document MUST result in:
+
+ * the deletion of that document from the storage, and from its
+ parent folder,
+ * silent deletion of the parent folder if it is left empty by
+ this, and so on for further ancestor folders,
+ * the version of its parent folder being updated, as well as that
+ of further ancestor folders.
+
+ A successful OPTIONS request SHOULD be responded to as described in
+ the CORS section below.
+
+ A successful HEAD request SHOULD be responded to like to the
+ equivalent GET request, but omitting the response body.
+
+
+
+
+<span>de Jong [Page 6]</span>
+</pre><pre><a href="#page-7" id="page-7" name="page-7"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
+
+
+<span><a href="#section-5" name="section-5">5</a>. Response codes</span>
+
+ Response codes SHOULD be given as defined by [HTTP, <a href="#section-6">section 6</a>] and
+ [BEARER, <a href="#section-3.1">section 3.1</a>]. The following is a non-normative checklist
+ of status codes that are likely to occur in practice:
+
+ * 500 if an internal server error occurs,
+ * 429 if the client makes too frequent requests or is suspected
+ of malicious activity,
+ * 414 if the request URI is too long,
+ * 416 if Range requests are supported by the server and the Range
+ request can not be satisfied,
+ * 401 for all requests that don't have a bearer token with
+ sufficient permissions,
+ * 404 for all DELETE and GET requests to documents that do not
+ exist on the storage,
+ * 304 for a conditional GET request whose pre-condition
+ fails (see "Versioning" below),
+ * 409 for a PUT request where any folder name in the path
+ clashes with an existing document's name at the same
+ level, or where the document name coincides with an
+ existing folder's name at the same level.
+ * 412 for a conditional PUT or DELETE request whose pre-condition
+ fails (see "Versioning" below),
+ * 507 in case the account is over its storage quota,
+ * 4xx for all malformed requests (e.g. foreign characters in the
+ path), as well as for all PUT and DELETE requests to
+ folders,
+ * 2xx for all successful requests.
+
+ Clients SHOULD also handle the case where a response takes too long
+ to arrive, or where no response is received at all.
+
+<span><a href="#section-6" name="section-6">6</a>. Versioning</span>
+
+ All successful requests MUST return an 'ETag' header [<a href="#ref-HTTP">HTTP</a>] with, in
+ the case of GET, the current version, in the case of PUT, the new
+ version, and in case of DELETE, the version that was deleted. All
+ successful GET requests MUST return an 'Expires: 0' header. PUT and
+ DELETE requests MAY have an 'If-Match' request header [<a href="#ref-COND">COND</a>], and
+ MUST fail with a 412 response code if that doesn't match the
+ document's current version.
+
+
+
+<span>de Jong [Page 7]</span>
+</pre><pre><a href="#page-8" id="page-8" name="page-8"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
+
+
+ GET requests MAY have a comma-separated list of revisions in an
+ 'If-None-Match' header [<a href="#ref-COND">COND</a>], and SHOULD be responded to with a 304
+ response if that list includes the document or folder's current
+ version. A PUT request MAY have an 'If-None-Match: *' header [<a href="#ref-COND">COND</a>],
+ in which case it MUST fail with a 412 response code if the document
+ already exists.
+
+ In all 'ETag', 'If-Match' and 'If-None-Match' headers, revision
+ strings should appear inside double quotes (").
+
+ A provider MAY offer version rollback functionality to its users,
+ but this specification does not define the user interface for that.
+
+<span><a href="#section-7" name="section-7">7</a>. CORS headers</span>
+
+ All responses MUST carry CORS headers [<a href="#ref-CORS">CORS</a>]. The server MUST also
+ reply to OPTIONS requests as per CORS. For GET requests, a wildcard
+ origin MAY be returned, but for PUT and DELETE requests, the
+ response MUST echo back the Origin header sent by the client.
+
+<span><a href="#section-8" name="section-8">8</a>. Session description</span>
+
+ The information that a client needs to receive in order to be able
+ to connect to a server SHOULD reach the client as described in the
+ 'bearer token issuance' sections below. It consists of:
+
+ * &lt;storage_root&gt;, consisting of 'https://' followed by a server
+ host, and optionally a server port and a path prefix as per
+ [<a href="#ref-IRI">IRI</a>]. Examples:
+ * 'https://example.com' (host only)
+ * 'https://example.com:8080' (host and port)
+ * 'https://example.com/path/to/storage' (host, port and
+ path prefix; note there is no trailing slash)
+ * &lt;access_token&gt; as per [<a href="#ref-OAUTH">OAUTH</a>]. The token SHOULD be hard to
+ guess and SHOULD NOT be reused from one client to another. It
+ can however be reused in subsequent interactions with the same
+ client, as long as that client is still trusted. Example:
+ * 'ofb24f1ac3973e70j6vts19qr9v2eei'
+ * &lt;storage_api&gt;, always '<a href="http://fakehost/test/draft-dejong-remotestorage-04">draft-dejong-remotestorage-04</a>' for this
+ alternative version of the specification.
+
+ The client can make its requests using https with CORS and bearer
+ tokens, to the URL that is the concatenation of &lt;storage_root&gt; with
+
+
+<span>de Jong [Page 8]</span>
+</pre><pre><a href="#page-9" id="page-9" name="page-9"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
+
+
+ '/' plus one or more &lt;folder&gt; '/' strings indicating a path in the
+ folder tree, followed by zero or one &lt;document&gt; strings, indicating
+ a document. For example, if &lt;storage_root&gt; is
+ "https://storage.example.com/bob", then to retrieve the folder
+ contents of the /public/documents/ folder, or to retrieve a
+ 'draft.txt' document from that folder, the client would make
+ requests to, respectively:
+
+ * https://storage.example.com/bob/public/documents/
+ * https://storage.example.com/bob/public/documents/draft.txt
+
+<span><a href="#section-9" name="section-9">9</a>. Bearer tokens and access control</span>
+
+ A bearer token represents one or more access scopes. These access
+ scopes are represented as strings of the form &lt;module&gt; &lt;level&gt;,
+ where the &lt;module&gt; string SHOULD be lower-case alphanumerical, other
+ than the reserved word 'public', and &lt;level&gt; can be ':r' or ':rw'.
+ The access the bearer token gives is the sum of its access scopes,
+ with each access scope representing the following permissions:
+
+ '*:rw') any request,
+
+ '*:r') any GET or HEAD request,
+
+ &lt;module&gt; ':rw') any requests to paths that start with
+ '/' &lt;module&gt; '/' or '/public/' &lt;module&gt; '/',
+
+ &lt;module&gt; ':r') any GET or HEAD requests to paths that start with
+ '/' &lt;module&gt; '/' or '/public/' &lt;module&gt; '/',
+
+ As a special exceptions, GET requests to a document (but not a
+ folder) whose path starts with '/public/' are always allowed. They,
+ as well as OPTIONS requests, can be made without a bearer token.
+ Unless [<a href="#ref-KERBEROS">KERBEROS</a>] is used (see <a href="#section-10">section 10</a> below), all other requests
+ SHOULD present a bearer token with sufficient access scope, using a
+ header of the following form (no double quotes here):
+
+ Authorization: Bearer &lt;access_token&gt;
+
+ In addition, providing the access token via a HTTP query parameter
+ for GET requests MAY be supported by the server, although its use
+ is not recommended, due to its security deficiencies; see [BEARER,
+ <a href="#section-2.3">section 2.3</a>].
+
+
+<span>de Jong [Page 9]</span>
+</pre><pre><a href="#page-10" id="page-10" name="page-10"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
+
+
+
+<span><a href="#section-10" name="section-10">10</a>. Application-first bearer token issuance</span>
+
+ To make a remoteStorage server available as 'the remoteStorage of
+ &lt;account&gt; at &lt;host&gt;', exactly one link of the following format
+ SHOULD be added to the WebFinger record [<a href="#ref-WEBFINGER">WEBFINGER</a>] of &lt;account&gt; at
+ &lt;host&gt;:
+
+ {
+ "href": &lt;storage_root&gt;,
+ "rel": "remotestorage",
+ "properties": {
+ "<a href="http://remotestorage.io/spec/version">http://remotestorage.io/spec/version</a>": &lt;storage_api&gt;,
+ "<a href="http://tools.ietf.org/html/rfc6749#section-4.2">http://tools.ietf.org/html/rfc6749#section-4.2</a>": &lt;auth-dialog&gt;,
+ ... : ... ,
+ }
+ }
+
+ Here &lt;storage_root&gt; and &lt;storage_api&gt; are as per "Session
+ description" above, and &lt;auth-dialog&gt; SHOULD be either null or a
+ URL where an OAuth 2.0 implicit-grant flow dialog [<a href="#ref-OAUTH">OAUTH</a>] is
+ presented.
+
+ If &lt;auth-dialog&gt; is a URL, the user can supply their credentials
+ for accessing the account (how, is out of scope), and allow or
+ reject a request by the connecting application to obtain a bearer
+ token for a certain list of access scopes. Note that an account
+ will often belong to just one human user, but may also belong to a
+ group of multiple users (the remoteStorage of &lt;group&gt; at &lt;host&gt;).
+
+ If &lt;auth-dialog&gt; is null, the client will not have a way to obtain
+ an access token, and SHOULD send all requests without Authorization
+ header, and rely on Kerberos [<a href="#ref-KERBEROS">KERBEROS</a>] instead for requests that
+ would normally be sent with a bearer token, but servers SHOULD NOT
+ impose any such access barriers for resources that would normally
+ not require an access token.
+
+ The '...' ellipses indicate that more properties may be present.
+ Non-breaking examples that have been proposed so far, include a
+ "<a href="http://tools.ietf.org/html/rfc6750#section-2.3">http://tools.ietf.org/html/rfc6750#section-2.3</a>" property, set to
+ the string value "true" if the server supports passing the bearer
+ token in the URI query parameter as per section 2.3 of [<a href="#ref-BEARER">BEARER</a>],
+ instead of in the request header.
+
+
+<span>de Jong [Page 10]</span>
+</pre><pre><a href="#page-11" id="page-11" name="page-11"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
+
+
+
+ Another example is "<a href="http://tools.ietf.org/html/rfc7233">http://tools.ietf.org/html/rfc7233</a>" with a
+ string value of "GET" if Content-Range headers are supported for
+ GET requests as per [<a href="#ref-RANGE">RANGE</a>], "PUT" if they are supported for PUT
+ requests, and "GET,PUT" if supported for both.
+
+ Both these proposals are non-breaking extensions, since the client
+ will have a way to work around it if these features are not present
+ (e.g. retrieve the protected resource asynchronously in the first
+ case, or request the entire resource in the second case).
+
+ A "<a href="http://remotestorage.io/spec/web-authoring">http://remotestorage.io/spec/web-authoring</a>" property has been
+ proposed with a string value of the fully qualified domain name to
+ which web authoring content is published if the server supports web
+ authoring as per [<a href="#ref-AUTHORING">AUTHORING</a>]. Note that this extension is a breaking
+ extension in the sense that it divides users into "haves", whose
+ remoteStorage accounts allow them to author web content, and
+ "have-nots", whose remoteStorage account does not support this
+ functionality.
+
+ The server MAY expire bearer tokens, and MAY require the user to
+ register applications as OAuth clients before first use; if no
+ client registration is required, then the server MAY ignore the
+ client_id parameter in favor of relying on the redirect_uri
+ parameter for client identification.
+
+<span><a href="#section-11" name="section-11">11</a>. Storage-first bearer token issuance</span>
+
+ The provider MAY also present a dashboard to the user, where they
+ have some way to add open web app manifests [<a href="#ref-MANIFEST">MANIFEST</a>]. Adding a
+ manifest to the dashboard is considered equivalent to clicking
+ 'accept' in the dialog of the application-first flow. Removing one
+ is considered equivalent to revoking its access token.
+
+ As an equivalent to OAuth's 'scope' parameter, a 'datastores-access'
+ field SHOULD be present in the root of such an application manifest
+ document, with entries &lt;module&gt; -&gt; '{"access": "readonly"}' for
+ &lt;level&gt; 'r' or '{"access": "readwrite"}' for &lt;level&gt; 'rw', as
+ prescribed in [<a href="#ref-DATASTORE">DATASTORE</a>].
+
+ When the user gestures they want to use a certain application whose
+ manifest is present on the dashboard, the dashboard SHOULD redirect
+ to the application or open it in a new window. To mimic coming back
+
+
+<span>de Jong [Page 11]</span>
+</pre><pre><a href="#page-12" id="page-12" name="page-12"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
+
+
+ from the OAuth dialog, it MAY add 'access_token' and 'scope'
+ fields to the URL fragment.
+
+ Regardless of whether 'access_token' and 'scope' are specified, it
+ SHOULD add a 'remotestorage' field to the URL fragment, with a
+ value of the form &lt;account&gt; '@' &lt;host&gt;. When the application detects
+ this parameter, it SHOULD resolve the WebFinger record for &lt;account&gt;
+ at &lt;host&gt; and extract the &lt;storage_root&gt; and &lt;storage_api&gt;
+ information.
+
+ If no access_token was given, then the application SHOULD also
+ extract the &lt;auth_endpoint&gt; information from WebFinger, and continue
+ as per application-first bearer token issuance.
+
+ Note that whereas a remoteStorage server SHOULD offer support for
+ the application-first flow with WebFinger and OAuth, it MAY choose
+ not to support the storage-first flow, provided that users will
+ easily remember their &lt;account&gt; '@' &lt;host&gt; WebFinger address at that
+ provider. Applications SHOULD, however, support both flows, which
+ means checking the URL for a 'remotestorage' parameter, but giving
+ the user a way to specify the WebFinger address if there is none.
+
+ If a server provides an application manifest dashboard, then it
+ SHOULD merge the list of applications there with the list of
+ issued access tokens as specified by OAuth into one list. Also,
+ the interface for revoking an access token as specified by OAuth
+ SHOULD coincide with removing an application from the dashboard.
+
+ Servers MAY also provide a way to create access tokens directly from
+ their user interface. Such functionality would be aimed mainly at
+ developers, to manually copy and paste a token into a script or
+ debug tool, thus bypassing the need for an OAuth dance. Clients
+ SHOULD NOT rely on this in production.
+
+<span><a href="#section-12" name="section-12">12</a>. Example wire transcripts</span>
+
+ The following examples are not normative ("\" indicates a line was
+ wrapped).
+
+<span><a href="#section-12.1" name="section-12.1">12.1</a>. WebFinger</span>
+
+ In application-first, an in-browser application might issue the
+ following request, using XMLHttpRequest and CORS:
+
+
+<span>de Jong [Page 12]</span>
+</pre><pre><a href="#page-13" id="page-13" name="page-13"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
+
+
+
+ GET /.well-known/webfinger?resource=acct:michiel@michielbdejon\
+g.com HTTP/1.1
+ Host: michielbdejong.com
+
+ and the server's response might look like this:
+
+ HTTP/1.1 200 OK
+ Access-Control-Allow-Origin: *
+ Access-Control-Allow-Methods: GET
+ Access-Control-Allow-Headers: If-Match, If-None-Match
+ Access-Control-Expose-Headers: ETag, Content-Length
+ Content-Type: application/jrd+json
+
+ {
+ "links":[{
+ "href": "<a href="https://michielbdejong.com:7678/inbox">https://michielbdejong.com:7678/inbox</a>",
+ "rel": "post-me-anything"
+ }, {
+ "href": "<a href="https://michielbdejong.com/me.jpg">https://michielbdejong.com/me.jpg</a>",
+ "rel": "avatar"
+ }, {
+ "href": "<a href="https://3pp.io:4439/storage/michiel">https://3pp.io:4439/storage/michiel</a>",
+ "rel": "remotestorage",
+ "properties": {
+ "<a href="http://remotestorage.io/spec/version">http://remotestorage.io/spec/version</a>": "<a href="http://fakehost/test/draft-dejong-re">draft-dejong-re</a>\
+motestorage-04",
+ "<a href="http://tools.ietf.org/html/rfc6749#section-4.2">http://tools.ietf.org/html/rfc6749#section-4.2</a>": "https\
+://3pp.io:4439/oauth/michiel",
+ "<a href="http://tools.ietf.org/html/rfc6750#section-2.3">http://tools.ietf.org/html/rfc6750#section-2.3</a>": false,
+ "<a href="http://tools.ietf.org/html/rfc7233">http://tools.ietf.org/html/rfc7233</a>": false,
+ "<a href="http://remotestorage.io/spec/web-authoring">http://remotestorage.io/spec/web-authoring</a>": false
+ }
+ }]
+ }
+
+<span><a href="#section-12.2" name="section-12.2">12.2</a>. OAuth dialog form</span>
+
+ Once the in-browser application has discovered the server's OAuth
+ end-point, it will typically redirect the user to this URL, in
+ order to obtain a bearer token. Say the application is hosted on
+ <a href="https://drinks-unhosted.5apps.com/">https://drinks-unhosted.5apps.com/</a> and wants read-write access to
+ the account's "myfavoritedrinks" scope:
+
+
+<span>de Jong [Page 13]</span>
+</pre><pre><a href="#page-14" id="page-14" name="page-14"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
+
+
+
+ GET /oauth/michiel?redirect_uri=https%3A%2F%2Fdrinks-unhosted.5\
+apps.com%2F&amp;scope=myfavoritedrinks%3Arw&amp;client_id=https%3A%2F%2Fdrinks-\
+unhosted.5apps.com&amp;response_type=token HTTP/1.1
+ Host: 3pp.io
+
+ The server's response might look like this (truncated for brevity):
+
+ HTTP/1.1 200 OK
+
+ &lt;!DOCTYPE html&gt;
+ &lt;html lang="en"&gt;
+ &lt;head&gt;
+ &lt;title&gt;Allow access?&lt;/title&gt;
+ ...
+
+<span><a href="#section-12.3" name="section-12.3">12.3</a>. OAuth dialog form submission</span>
+
+ When the user submits the form, the request would look something
+ like this:
+
+ POST /oauth HTTP/1.1
+ Host: 3pp.io:4439
+ Origin: <a href="https://3pp.io:4439">https://3pp.io:4439</a>
+ Content-Type: application/x-www-form-urlencoded
+ Referer: <a href="https://3pp">https://3pp</a>.io:4439/oauth/michiel?redirect_uri=https%3\
+A%2F%2Fdrinks-unhosted.5apps.com%2F&amp;scope=myfavoritedrinks%3Arw&amp;client_\
+id=https%3A%2F%2Fdrinks-unhosted.5apps.com&amp;response_type=token
+
+ client_id=https%3A%2F%2Fdrinks-unhosted.5apps.com&amp;redirect_uri=\
+https%3A%2F%2Fdrinks-unhosted.5apps.com%2F&amp;response_type=token&amp;scope=my\
+favoritedrinks%3Arw&amp;state=&amp;username=michiel&amp;password=something&amp;allow=Al\
+low
+
+ To which the server could respond with a 302 redirect, back to the
+ origin of the requesting application:
+
+ HTTP/1.1 302 Found
+ Location:https://drinks-unhosted.5apps.com/#access_token=j2YnGt\
+XjzzzHNjkd1CJxoQubA1o%3D&amp;token_type=bearer&amp;state=
+
+<span><a href="#section-12.4" name="section-12.4">12.4</a>. OPTIONS preflight</span>
+
+
+
+<span>de Jong [Page 14]</span>
+</pre><pre><a href="#page-15" id="page-15" name="page-15"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
+
+
+ When an in-browser application makes a cross-origin request which
+ may affect the server-state, the browser will make a preflight
+ request first, with the OPTIONS verb, for instance:
+
+ OPTIONS /storage/michiel/myfavoritedrinks/ HTTP/1.1
+ Host: 3pp.io:4439
+ Access-Control-Request-Method: GET
+ Origin: <a href="https://drinks-unhosted.5apps.com">https://drinks-unhosted.5apps.com</a>
+ Access-Control-Request-Headers: Authorization
+ Referer: <a href="https://drinks-unhosted.5apps.com/">https://drinks-unhosted.5apps.com/</a>
+
+ To which the server can for instance respond:
+
+ HTTP/1.1 200 OK
+ Access-Control-Allow-Origin: <a href="https://drinks-unhosted.5apps.com">https://drinks-unhosted.5apps.com</a>
+ Access-Control-Allow-Methods: GET, PUT, DELETE
+ Access-Control-Allow-Headers: Authorization, Content-Length, Co\
+ntent-Type, Origin, X-Requested-With, If-Match, If-None-Match
+
+<span><a href="#section-12.5" name="section-12.5">12.5</a>. Initial PUT</span>
+
+ An initial PUT may contain an 'If-None-Match: *' header, like this:
+
+ PUT /storage/michiel/myfavoritedrinks/test HTTP/1.1
+ Host: 3pp.io:4439
+ Content-Length: 91
+ Origin: <a href="https://drinks-unhosted.5apps.com">https://drinks-unhosted.5apps.com</a>
+ Authorization: Bearer j2YnGtXjzzzHNjkd1CJxoQubA1o=
+ Content-Type: application/json; charset=UTF-8
+ Referer: <a href="https://drinks-unhosted.5apps.com/?">https://drinks-unhosted.5apps.com/?</a>
+ If-None-Match: *
+
+ {"name":"test","@context":"<a href="http://remotestorage">http://remotestorage</a>.io/spec/modules\
+/myfavoritedrinks/drink"}
+
+ And the server may respond with either a 201 Created or a 200 OK
+ status:
+
+ HTTP/1.1 201 Created
+ Access-Control-Allow-Origin: <a href="https://drinks-unhosted.5apps.com">https://drinks-unhosted.5apps.com</a>
+ ETag: "1382694045000"
+
+<span><a href="#section-12.6" name="section-12.6">12.6</a>. Subsequent PUT</span>
+
+
+<span>de Jong [Page 15]</span>
+</pre><pre><a href="#page-16" id="page-16" name="page-16"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
+
+
+
+ A subsequent PUT may contain an 'If-Match' header referring to the
+ ETag previously returned, like this:
+
+ PUT /storage/michiel/myfavoritedrinks/test HTTP/1.1
+ Host: 3pp.io:4439
+ Content-Length: 91
+ Origin: <a href="https://drinks-unhosted.5apps.com">https://drinks-unhosted.5apps.com</a>
+ Authorization: Bearer j2YnGtXjzzzHNjkd1CJxoQubA1o=
+ Content-Type: application/json; charset=UTF-8
+ Referer: <a href="https://drinks-unhosted.5apps.com/?">https://drinks-unhosted.5apps.com/?</a>
+ If-Match: "1382694045000"
+
+ {"name":"test", "updated":true, "@context":"http://remotestorag\
+e.io/spec/modules/myfavoritedrinks/drink"}
+
+ And the server may respond with a 412 Conflict or a 200 OK status:
+
+ HTTP/1.1 200 OK
+ Access-Control-Allow-Origin: <a href="https://drinks-unhosted.5apps.com">https://drinks-unhosted.5apps.com</a>
+ ETag: "1382694048000"
+
+<span><a href="#section-12.7" name="section-12.7">12.7</a>. GET</span>
+
+ A GET request would also include the bearer token, and optionally
+ an If-None-Match header:
+
+ GET /storage/michiel/myfavoritedrinks/test HTTP/1.1
+ Host: 3pp.io:4439
+ Origin: <a href="https://drinks-unhosted.5apps.com">https://drinks-unhosted.5apps.com</a>
+ Authorization: Bearer j2YnGtXjzzzHNjkd1CJxoQubA1o=
+ Referer: <a href="https://drinks-unhosted.5apps.com/?">https://drinks-unhosted.5apps.com/?</a>
+ If-None-Match: "1382694045000", "1382694048000"
+
+ And the server may respond with a 304 Not Modified status:
+
+ HTTP/1.1 304 Not Modified
+ Access-Control-Allow-Origin: <a href="https://drinks-unhosted.5apps.com">https://drinks-unhosted.5apps.com</a>
+ ETag: "1382694048000"
+
+ Or a 200 OK status, plus a response body:
+
+ HTTP/1.1 200 OK
+
+
+<span>de Jong [Page 16]</span>
+</pre><pre><a href="#page-17" id="page-17" name="page-17"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
+
+
+ Access-Control-Allow-Origin: <a href="https://drinks-unhosted.5apps.com">https://drinks-unhosted.5apps.com</a>
+ Content-Type: application/json; charset=UTF-8
+ Content-Length: 106
+ ETag: "1382694048000"
+ Expires: 0
+
+ {"name":"test", "updated":true, "@context":"http://remotestora\
+ge.io/spec/modules/myfavoritedrinks/drink"}
+
+ If the GET URL would have been "/storage/michiel/myfavoritedrinks/",
+ a 200 OK response would have a folder description as the response
+ body:
+
+ HTTP/1.1 200 OK
+ Access-Control-Allow-Origin: <a href="https://drinks-unhosted.5apps.com">https://drinks-unhosted.5apps.com</a>
+ Content-Type: application/ld+json
+ Content-Length: 171
+ ETag: "1382694048000"
+ Expires: 0
+
+ {"@context":"<a href="http://remotestorage.io/spec/folder-version">http://remotestorage.io/spec/folder-version</a>","ite\
+ms":{"test":{"ETag":"1382694048000","Content-Type":"application/json; \
+charset=UTF-8","Content-Length":106}}}
+
+ If the GET URL would have been a non-existing document like
+ "/storage/michiel/myfavoritedrinks/x", the response would have a 404
+ Not Found status, and no ETag header:
+
+ HTTP/1.1 404 Not Found
+ Access-Control-Allow-Origin: <a href="https://drinks-unhosted.5apps.com">https://drinks-unhosted.5apps.com</a>
+
+<span><a href="#section-12.8" name="section-12.8">12.8</a>. DELETE</span>
+
+ A DELETE request may look like this:
+
+ DELETE /storage/michiel/myfavoritedrinks/test HTTP/1.1
+ Host: 3pp.io:4439
+ Origin: <a href="https://drinks-unhosted.5apps.com">https://drinks-unhosted.5apps.com</a>
+ Authorization: Bearer j2YnGtXjzzzHNjkd1CJxoQubA1o=
+ Content-Type: application/json; charset=UTF-8
+ Referer: <a href="https://drinks-unhosted.5apps.com/?">https://drinks-unhosted.5apps.com/?</a>
+ If-Match: "1382694045000"
+
+
+
+<span>de Jong [Page 17]</span>
+</pre><pre><a href="#page-18" id="page-18" name="page-18"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
+
+
+ And the server may respond with a 412 Conflict or a 200 OK status:
+
+ HTTP/1.1 412 Conflict
+ Access-Control-Allow-Origin: <a href="https://drinks-unhosted.5apps.com">https://drinks-unhosted.5apps.com</a>
+ ETag: "1382694048000"
+
+<span><a href="#section-13" name="section-13">13</a>. Distributed versioning</span>
+
+ This section is non-normative, and is intended to explain some of
+ the design choices concerning ETags and folder listings. At the
+ same time it will hopefully help readers who intend to develop an
+ application that uses remoteStorage as its per-user data storage.
+ When multiple clients have read/write access to the same document,
+ versioning conflicts may occur. For instance, client A may make
+ a PUT request that changes the document from version 1 to version
+ 2, after which client B may make a PUT request attempting to change
+ the same document from version 1 to version 3.
+
+ In this case, client B can add an 'If-Match: "1"' header, which
+ would trigger a 412 Conflict response code, since the current
+ version ("2") does not match the version required as a condition by
+ the header If-Match header ("1").
+
+ Client B is now aware of the conflict, and may consult the user,
+ saying the update to version 3 failed. The user may then choose,
+ through the user interface of client B, whether version 2 or
+ version 3 should be kept, or maybe the document should be reverted
+ on the server to version 1, or a merged version 4 is needed. Client
+ B may then make a request that puts the document to the version the
+ user wishes; this time setting an 'If-Match: "2"' header instead.
+
+ Both client A and client B would periodically poll the root
+ folder of each scope they have access to, to see if the version
+ of the root folder changed. If it did, then one of the versions
+ listed in there will necessarily have changed, and the client can
+ make a GET request to that child folder or document, to obtain
+ its latest version.
+
+ Because an update in a document will result in a version change of
+ its containing folder, and that change will propagate all the way
+ to the root folder, it is not necessary to poll each document for
+ changes individually.
+
+
+
+<span>de Jong [Page 18]</span>
+</pre><pre><a href="#page-19" id="page-19" name="page-19"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
+
+
+ As an example, the root folder may contain 10 directories,
+ each of which contain 10 directories, which each contain 10
+ documents, so their paths would be for instance '/0/0/1', '/0/0/2',
+ etcetera. Then one GET request to the root folder '/' will be
+ enough to know if any of these 1000 documents has changed.
+
+ Say document '/7/9/2' has changed; then the GET request to '/' will
+ come back with a different ETag, and entry '7/' will have a
+ different value in its JSON content. The client could then request
+ '/7/', '/7/9/', and '/7/9/2' to narrow down the one document that
+ caused the root folder's ETag to change.
+
+ Note that the remoteStorage server does not get involved in the
+ conflict resolution. It keeps the canonical current version at all
+ times, and allows clients to make conditional GET and PUT requests,
+ but it is up to whichever client discovers a given version
+ conflict, to resolve it.
+
+<span><a href="#section-14" name="section-14">14</a>. Security Considerations</span>
+
+ To prevent man-in-the-middle attacks, the use of https instead of
+ http is important for both the interface itself and all end-points
+ involved in WebFinger, OAuth, and (if present) the storage-first
+ application launch dashboard.
+
+ A malicious party could link to an application, but specifying a
+ remoteStorage account address that it controls, thus tricking the
+ user into using a trusted application to send sensitive data to the
+ wrong remoteStorage server. To mitigate this, applications SHOULD
+ clearly display to which remoteStorage server they are sending the
+ user's data.
+
+ Applications could request scopes that the user did not intend to
+ give access to. The user SHOULD always be prompted to carefully
+ review which scopes an application is requesting.
+
+ An application may upload malicious html pages and then trick the
+ user into visiting them, or upload malicious client-side scripts,
+ that take advantage of being hosted on the user's domain name. The
+ origin on which the remoteStorage server has its interface SHOULD
+ therefore NOT be used for anything else, and the user SHOULD be
+ warned not to visit any web pages on that origin. In particular, the
+ OAuth dialog and launch dashboard or token revokation interface
+
+
+<span>de Jong [Page 19]</span>
+</pre><pre><a href="#page-20" id="page-20" name="page-20"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
+
+
+ SHOULD be on a different origin than the remoteStorage interface.
+
+ Where the use of bearer tokens is impractical, a user may choose to
+ store documents on hard-to-guess URLs whose path after
+ &lt;storage_root&gt; starts with '/public/', while sharing this URL only
+ with the intended audience. That way, only parties who know the
+ document's hard-to-guess URL, can access it. The server SHOULD
+ therefore make an effort to detect and stop brute-force attacks that
+ attempt to guess the location of such documents.
+
+ The server SHOULD also detect and stop denial-of-service attacks
+ that aim to overwhelm its interface with too much traffic.
+
+<span><a href="#section-15" name="section-15">15</a>. IANA Considerations</span>
+
+ This document registers the 'remotestorage' link relation, as well
+ as the following WebFinger properties:
+ * "<a href="http://remotestorage.io/spec/version">http://remotestorage.io/spec/version</a>"
+ * "<a href="http://tools.ietf.org/html/rfc6749#section-4.2">http://tools.ietf.org/html/rfc6749#section-4.2</a>"
+ * "<a href="http://tools.ietf.org/html/rfc6750#section-2.3">http://tools.ietf.org/html/rfc6750#section-2.3</a>"
+ * "<a href="http://tools.ietf.org/html/rfc7233">http://tools.ietf.org/html/rfc7233</a>"
+ * "<a href="http://remotestorage.io/spec/web-authoring">http://remotestorage.io/spec/web-authoring</a>"
+
+<span><a href="#section-16" name="section-16">16</a>. Acknowledgements</span>
+
+ The authors would like to thank everybody who contributed to the
+ development of this protocol, including Kenny Bentley, Javier Diaz,
+ Daniel Groeber, Bjarni Runar, Jan Wildeboer, Charles Schultz, Peter
+ Svensson, Valer Mischenko, Michiel Leenaars, Jan-Christoph
+ Borchardt, Garret Alfert, Sebastian Kippe, Max Wiehle, Melvin
+ Carvalho, Martin Stadler, Geoffroy Couprie, Niklas Cathor, Marco
+ Stahl, James Coglan, Ken Eucker, Daniel Brolund, elf Pavlik, Nick
+ Jennings, Markus Sabadello, Steven te Brinke, Matthias Treydte,
+ Rick van Rein, Mark Nottingham, Julian Reschke, and Markus
+ Lanthaler, among many others.
+
+<span><a href="#section-17" name="section-17">17</a>. References</span>
+
+<span><a href="#section-17.1" name="section-17.1">17.1</a>. Normative References</span>
+
+ [<a id="ref-WORDS" name="ref-WORDS">WORDS</a>]
+ Bradner, S., "Key words for use in RFCs to Indicate Requirement
+ Levels", <a href="http://fakehost/test/bcp14">BCP 14</a>, <a href="http://fakehost/test/rfc2119">RFC 2119</a>, March 1997.
+
+
+<span>de Jong [Page 20]</span>
+</pre><pre><a href="#page-21" id="page-21" name="page-21"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
+
+
+
+ [<a id="ref-IRI" name="ref-IRI">IRI</a>]
+ Duerst, M., "Internationalized Resource Identifiers (IRIs)",
+ <a href="http://fakehost/test/rfc3987">RFC 3987</a>, January 2005.
+
+ [<a id="ref-WEBFINGER" name="ref-WEBFINGER">WEBFINGER</a>]
+ Jones, P., Salguerio, G., Jones, M, and Smarr, J.,
+ "WebFinger", <a href="http://fakehost/test/rfc7033">RFC7033</a>, September 2013.
+
+ [<a id="ref-OAUTH" name="ref-OAUTH">OAUTH</a>]
+ "<a href="#section-4.2">Section 4.2</a>: Implicit Grant", in: Hardt, D. (ed), "The OAuth
+ 2.0 Authorization Framework", <a href="http://fakehost/test/rfc6749">RFC6749</a>, October 2012.
+
+<span><a href="#section-17.2" name="section-17.2">17.2</a>. Informative References</span>
+
+ [<a id="ref-HTTPS" name="ref-HTTPS">HTTPS</a>]
+ Rescorla, E., "HTTP Over TLS", <a href="http://fakehost/test/rfc2818">RFC2818</a>, May 2000.
+
+ [<a id="ref-HTTP" name="ref-HTTP">HTTP</a>]
+ Fielding et al., "Hypertext Transfer Protocol (HTTP/1.1):
+ Semantics and Content", <a href="http://fakehost/test/rfc7231">RFC7231</a>, June 2014.
+
+ [<a id="ref-COND" name="ref-COND">COND</a>]
+ Fielding et al., "Hypertext Transfer Protocol (HTTP/1.1):
+ Conditional Requests", <a href="http://fakehost/test/rfc7232">RFC7232</a>, June 2014.
+
+ [<a id="ref-RANGE" name="ref-RANGE">RANGE</a>]
+ Fielding et al., "Hypertext Transfer Protocol (HTTP/1.1):
+ Conditional Requests", <a href="http://fakehost/test/rfc7233">RFC7233</a>, June 2014.
+
+ [<a id="ref-SPDY" name="ref-SPDY">SPDY</a>]
+ Mark Belshe, Roberto Peon, "SPDY Protocol - Draft 3.1", <a href="http://www.chromium.org/spdy/spdy-protocol/spdy-protocol-draft3-1">http://</a>
+ <a href="http://www.chromium.org/spdy/spdy-protocol/spdy-protocol-draft3-1">www.chromium.org/spdy/spdy-protocol/spdy-protocol-draft3-1</a>,
+ September 2013.
+
+ [<a id="ref-JSON-LD" name="ref-JSON-LD">JSON-LD</a>]
+ M. Sporny, G. Kellogg, M. Lanthaler, "JSON-LD 1.0", W3C
+ Proposed Recommendation,
+ <a href="http://www.w3.org/TR/2014/REC-json-ld-20140116/">http://www.w3.org/TR/2014/REC-json-ld-20140116/</a>, January 2014.
+
+ [<a id="ref-CORS" name="ref-CORS">CORS</a>]
+ van Kesteren, Anne (ed), "Cross-Origin Resource Sharing --
+ W3C Candidate Recommendation 29 January 2013",
+
+
+<span>de Jong [Page 21]</span>
+</pre><pre><a href="#page-22" id="page-22" name="page-22"> </a>
+<span>Internet-Draft remoteStorage December 2014</span>
+
+
+ <a href="http://www.w3.org/TR/cors/">http://www.w3.org/TR/cors/</a>, January 2013.
+
+ [<a id="ref-MANIFEST" name="ref-MANIFEST">MANIFEST</a>]
+ Mozilla Developer Network (ed), "App manifest -- Revision
+ 330541", <a href="https://developer.mozilla.org/en-">https://developer.mozilla.org/en-</a>
+ US/Apps/Build/Manifest$revision/566677, April 2014.
+
+ [<a id="ref-DATASTORE" name="ref-DATASTORE">DATASTORE</a>]
+ "WebAPI/DataStore", MozillaWiki, retrieved May 2014.
+ <a href="https://wiki.mozilla.org/WebAPI/DataStore#Manifest">https://wiki.mozilla.org/WebAPI/DataStore#Manifest</a>
+
+ [<a id="ref-KERBEROS" name="ref-KERBEROS">KERBEROS</a>]
+ C. Neuman et al., "The Kerberos Network Authentication Service
+ (V5)", <a href="http://fakehost/test/rfc4120">RFC4120</a>, July 2005.
+
+ [<a id="ref-BEARER" name="ref-BEARER">BEARER</a>]
+ M. Jones, D. Hardt, "The OAuth 2.0 Authorization Framework:
+ Bearer Token Usage", <a href="http://fakehost/test/rfc6750">RFC6750</a>, October 2012.
+
+ [<a id="ref-AUTHORING" name="ref-AUTHORING">AUTHORING</a>]
+ "Using remoteStorage for web authoring", reSite wiki, retrieved
+ September 2014. <a href="https://github.com/michielbdejong/resite/wiki">https://github.com/michielbdejong/resite/wiki</a>
+ /Using-remoteStorage-for-web-authoring
+
+<span><a href="#section-18" name="section-18">18</a>. Authors' addresses</span>
+
+ Michiel B. de Jong
+ IndieHosters
+
+
+
+ F. Kooman
+ (independent)
+
+
+
+
+
+
+
+
+
+
+de Jong [Page 22]
+
+</pre><br></br><span><small><small>Html markup produced by rfcmarkup 1.111, available from
+<a href="https://tools.ietf.org/tools/rfcmarkup/">https://tools.ietf.org/tools/rfcmarkup/</a>
+</small></small></span>
+</div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ietf-1/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ietf-1/source.html
new file mode 100644
index 000000000..ded744e77
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/ietf-1/source.html
@@ -0,0 +1,1269 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head profile="http://dublincore.org/documents/2008/08/04/dc-html/">
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta name="robots" content="index,follow" />
+ <meta name="creator" content="rfcmarkup version 1.111" />
+ <link rel="schema.DC" href="http://purl.org/dc/elements/1.1/" />
+<meta name="DC.Identifier" content="urn:ietf:id:dejong-remotestorage" />
+<meta name="DC.Description.Abstract" content="This draft describes a protocol by which client-side applications,
+running inside a web browser, can communicate with a data storage
+server that is hosted on a different domain name. This way, the
+provider of a web application need not also play the role of data
+storage provider. The protocol supports storing, retrieving, and
+removing individual documents, as well as listing the contents of an
+individual folder, and access control is based on bearer tokens." />
+<meta name="DC.Creator" content="Kooman, F." />
+<meta name="DC.Creator" content="Jong, Michiel de" />
+<meta name="DC.Date.Issued" content="2014-12-15" />
+<meta name="DC.Title" content="remoteStorage" />
+
+ <link rel="icon" href="/images/id.png" type="image/png" />
+ <link rel="shortcut icon" href="/images/id.png" type="image/png" />
+ <title>draft-dejong-remotestorage-04 - remoteStorage</title>
+
+
+ <style type="text/css">
+ body {
+ margin: 0px 8px;
+ font-size: 1em;
+ }
+ h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
+ font-weight: bold;
+ line-height: 0pt;
+ display: inline;
+ white-space: pre;
+ font-family: monospace;
+ font-size: 1em;
+ font-weight: bold;
+ }
+ pre {
+ font-size: 1em;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ }
+ .pre {
+ white-space: pre;
+ font-family: monospace;
+ }
+ .header{
+ font-weight: bold;
+ }
+ .newpage {
+ page-break-before: always;
+ }
+ .invisible {
+ text-decoration: none;
+ color: white;
+ }
+ a.selflink {
+ color: black;
+ text-decoration: none;
+ }
+ @media print {
+ body {
+ font-family: monospace;
+ font-size: 10.5pt;
+ }
+ h1, h2, h3, h4, h5, h6 {
+ font-size: 1em;
+ }
+
+ a:link, a:visited {
+ color: inherit;
+ text-decoration: none;
+ }
+ .noprint {
+ display: none;
+ }
+ }
+ @media screen {
+ .grey, .grey a:link, .grey a:visited {
+ color: #777;
+ }
+ .docinfo {
+ background-color: #EEE;
+ }
+ .top {
+ border-top: 7px solid #EEE;
+ }
+ .bgwhite { background-color: white; }
+ .bgred { background-color: #F44; }
+ .bggrey { background-color: #666; }
+ .bgbrown { background-color: #840; }
+ .bgorange { background-color: #FA0; }
+ .bgyellow { background-color: #EE0; }
+ .bgmagenta{ background-color: #F4F; }
+ .bgblue { background-color: #66F; }
+ .bgcyan { background-color: #4DD; }
+ .bggreen { background-color: #4F4; }
+
+ .legend { font-size: 90%; }
+ .cplate { font-size: 70%; border: solid grey 1px; }
+ }
+ </style>
+ <!--[if IE]>
+ <style>
+ body {
+ font-size: 13px;
+ margin: 10px 10px;
+ }
+ </style>
+ <![endif]-->
+
+ <script type="text/javascript"><!--
+ function addHeaderTags() {
+ var spans = document.getElementsByTagName("span");
+ for (var i=0; i < spans.length; i++) {
+ var elem = spans[i];
+ if (elem) {
+ var level = elem.getAttribute("class");
+ if (level == "h1" || level == "h2" || level == "h3" || level == "h4" || level == "h5" || level == "h6") {
+ elem.innerHTML = "<"+level+">"+elem.innerHTML+"</"+level+">";
+ }
+ }
+ }
+ }
+ var legend_html = "Colour legend:<br /> <table> <tr><td>Unknown:</td> <td><span class='cplate bgwhite'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr> <tr><td>Draft:</td> <td><span class='cplate bgred'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr> <tr><td>Informational:</td> <td><span class='cplate bgorange'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr> <tr><td>Experimental:</td> <td><span class='cplate bgyellow'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr> <tr><td>Best Common Practice:</td> <td><span class='cplate bgmagenta'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr> <tr><td>Proposed Standard:</td> <td><span class='cplate bgblue'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr> <tr><td>Draft Standard (old designation):</td> <td><span class='cplate bgcyan'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr> <tr><td>Internet Standard:</td> <td><span class='cplate bggreen'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr> <tr><td>Historic:</td> <td><span class='cplate bggrey'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr> <tr><td>Obsolete:</td> <td><span class='cplate bgbrown'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr> </table>";
+ function showElem(id) {
+ var elem = document.getElementById(id);
+ elem.innerHTML = eval(id+"_html");
+ elem.style.visibility='visible';
+ }
+ function hideElem(id) {
+ var elem = document.getElementById(id);
+ elem.style.visibility='hidden';
+ elem.innerHTML = "";
+ }
+ // -->
+ </script>
+</head>
+<body onload="addHeaderTags()">
+ <div style="height: 13px;">
+ <div onmouseover="this.style.cursor='pointer';"
+ onclick="showElem('legend');"
+ onmouseout="hideElem('legend')"
+ style="height: 6px; position: absolute;"
+ class="pre noprint docinfo bgred"
+ title="Click for colour legend." > </div>
+ <div id="legend"
+ class="docinfo noprint pre legend"
+ style="position:absolute; top: 4px; left: 4ex; visibility:hidden; background-color: white; padding: 4px 9px 5px 7px; border: solid #345 1px; "
+ onmouseover="showElem('legend');"
+ onmouseout="hideElem('legend');">
+ </div>
+ </div>
+<span class="pre noprint docinfo top">[<a href="../html/" title="Document search and retrieval page">Docs</a>] [<a href="https://tools.ietf.org/id/draft-dejong-remotestorage-04.txt" title="Plaintext version of this document">txt</a>|<a href="/pdf/draft-dejong-remotestorage-04.txt" title="PDF version of this document">pdf</a>] [<a href='https://datatracker.ietf.org/doc/draft-dejong-remotestorage' title='IESG Datatracker information for this document'>Tracker</a>] [<a href="mailto:[email protected]?subject=draft-dejong-remotestorage%20" title="Send email to the document authors">Email</a>] [<a href="/rfcdiff?difftype=--hwdiff&amp;url2=draft-dejong-remotestorage-04.txt" title="Inline diff (wdiff)">Diff1</a>] [<a href="/rfcdiff?url2=draft-dejong-remotestorage-04.txt" title="Side-by-side diff">Diff2</a>] [<a href="/idnits?url=https://tools.ietf.org/id/draft-dejong-remotestorage-04.txt" title="Run an idnits check of this document">Nits</a>] </span><br />
+<span class="pre noprint docinfo"> </span><br />
+<span class="pre noprint docinfo">Versions: <a href="./draft-dejong-remotestorage-00">00</a> <a href="./draft-dejong-remotestorage-01">01</a> <a href="./draft-dejong-remotestorage-02">02</a> <a href="./draft-dejong-remotestorage-03">03</a> <a href="./draft-dejong-remotestorage-04">04</a> </span><br />
+<span class="pre noprint docinfo"> </span><br />
+<pre>INTERNET DRAFT Michiel B. de Jong
+Document: <a href="./draft-dejong-remotestorage-04">draft-dejong-remotestorage-04</a> IndieHosters
+ F. Kooman
+Intended Status: Proposed Standard (independent)
+Expires: 18 June 2015 15 December 2014
+
+
+ <span class="h1">remoteStorage</span>
+
+Abstract
+
+ This draft describes a protocol by which client-side applications,
+ running inside a web browser, can communicate with a data storage
+ server that is hosted on a different domain name. This way, the
+ provider of a web application need not also play the role of data
+ storage provider. The protocol supports storing, retrieving, and
+ removing individual documents, as well as listing the contents of an
+ individual folder, and access control is based on bearer tokens.
+
+Status of this Memo
+
+ This Internet-Draft is submitted in full conformance with the
+ provisions of <a href="./bcp78">BCP 78</a> and <a href="./bcp79">BCP 79</a>.
+
+ Internet-Drafts are working documents of the Internet Engineering
+ Task Force (IETF). Note that other groups may also distribute
+ working documents as Internet-Drafts. The list of current Internet-
+ Drafts is at <a href="http://datatracker.ietf.org/drafts/current/">http://datatracker.ietf.org/drafts/current/</a>.
+
+ Internet-Drafts are draft documents valid for a maximum of six months
+ and may be updated, replaced, or obsoleted by other documents at any
+ time. It is inappropriate to use Internet-Drafts as reference
+ material or to cite them other than as "work in progress."
+
+ This Internet-Draft will expire on 15 December 2014.
+
+Copyright Notice
+
+ Copyright (c) 2014 IETF Trust and the persons identified as the
+ document authors. All rights reserved.
+
+ This document is subject to <a href="./bcp78">BCP 78</a> and the IETF Trust's Legal
+ Provisions Relating to IETF Documents
+ (<a href="http://trustee.ietf.org/license-info">http://trustee.ietf.org/license-info</a>) in effect on the date of
+ publication of this document. Please review these documents
+ carefully, as they describe your rights and restrictions with respect
+ to this document. Code Components extracted from this document must
+ include Simplified BSD License text as described in <a href="#section-4">Section 4</a>.e of
+ the Trust Legal Provisions and are provided without warranty as
+ described in the Simplified BSD License.
+
+
+<span class="grey">de Jong [Page 1]</span>
+</pre><!--NewPage--><pre class='newpage'><a name="page-2" id="page-2" href="#page-2" class="invisible"> </a>
+<span class="grey">Internet-Draft remoteStorage December 2014</span>
+
+
+Table of Contents
+
+ <a href="#section-1">1</a>. Introduction...................................................<a href="#page-2">2</a>
+ <a href="#section-2">2</a>. Terminology....................................................<a href="#page-3">3</a>
+ <a href="#section-3">3</a>. Storage model..................................................<a href="#page-3">3</a>
+ <a href="#section-4">4</a>. Requests.......................................................<a href="#page-4">4</a>
+ <a href="#section-5">5</a>. Response codes.................................................<a href="#page-7">7</a>
+ <a href="#section-6">6</a>. Versioning.....................................................<a href="#page-7">7</a>
+ <a href="#section-7">7</a>. CORS headers...................................................<a href="#page-8">8</a>
+ <a href="#section-8">8</a>. Session description............................................<a href="#page-8">8</a>
+ <a href="#section-9">9</a>. Bearer tokens and access control...............................<a href="#page-9">9</a>
+ <a href="#section-10">10</a>. Application-first bearer token issuance.......................<a href="#page-10">10</a>
+ <a href="#section-11">11</a>. Storage-first bearer token issuance...........................<a href="#page-11">11</a>
+ <a href="#section-12">12</a>. Example wire transcripts......................................<a href="#page-12">12</a>
+ <a href="#section-12.1">12.1</a>. WebFinger................................................<a href="#page-12">12</a>
+ <a href="#section-12.2">12.2</a>. OAuth dialog form........................................<a href="#page-13">13</a>
+ <a href="#section-12.3">12.3</a>. OAuth dialog form submission.............................<a href="#page-14">14</a>
+ <a href="#section-12.4">12.4</a>. OPTIONS preflight........................................<a href="#page-15">15</a>
+ <a href="#section-12.5">12.5</a>. Initial PUT..............................................<a href="#page-15">15</a>
+ <a href="#section-12.6">12.6</a>. Subsequent PUT...........................................<a href="#page-16">16</a>
+ <a href="#section-12.7">12.7</a>. GET......................................................<a href="#page-16">16</a>
+ <a href="#section-12.8">12.8</a>. DELETE...................................................<a href="#page-17">17</a>
+ <a href="#section-13">13</a>. Distributed versioning........................................<a href="#page-17">17</a>
+ <a href="#section-14">14</a>. Security Considerations.......................................<a href="#page-19">19</a>
+ <a href="#section-15">15</a>. IANA Considerations...........................................<a href="#page-20">20</a>
+ <a href="#section-16">16</a>. Acknowledgments...............................................<a href="#page-20">20</a>
+ <a href="#section-17">17</a>. References....................................................<a href="#page-21">21</a>
+ <a href="#section-17.1">17.1</a>. Normative References.....................................<a href="#page-21">21</a>
+ <a href="#section-17.2">17.2</a>. Informative References...................................<a href="#page-21">21</a>
+ <a href="#section-18">18</a>. Authors' addresses............................................<a href="#page-22">22</a>
+
+
+<span class="h2"><a class="selflink" name="section-1" href="#section-1">1</a>. Introduction</span>
+
+ Many services for data storage are available over the internet. This
+ specification describes a vendor-independent interface for such
+ services. It is based on https, CORS and bearer tokens. The
+ metaphor for addressing data on the storage is that of folders
+ containing documents and subfolders. The actions the interface
+ exposes are:
+
+ * GET a folder: retrieve the names and current versions of the
+ documents and subfolders currently contained by the folder
+
+
+<span class="grey">de Jong [Page 2]</span>
+</pre><!--NewPage--><pre class='newpage'><a name="page-3" id="page-3" href="#page-3" class="invisible"> </a>
+<span class="grey">Internet-Draft remoteStorage December 2014</span>
+
+
+ * GET a document: retrieve its content type, current version,
+ and contents
+
+ * PUT a document: store a new version, its content type, and
+ contents, conditional on the current version
+
+ * DELETE a document: remove it from the storage, conditional on
+ the current version
+
+ * HEAD a folder or document: like GET, but omitting the response
+ body
+
+ The exact details of these four actions are described in this
+ specification.
+
+<span class="h2"><a class="selflink" name="section-2" href="#section-2">2</a>. Terminology</span>
+
+ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+ "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
+ document are to be interpreted as described in <a href="./rfc2119">RFC 2119</a> [<a href="#ref-WORDS">WORDS</a>].
+
+ "SHOULD" and "SHOULD NOT" are appropriate when valid exceptions to a
+ general requirement are known to exist or appear to exist, and it is
+ infeasible or impractical to enumerate all of them. However, they
+ should not be interpreted as permitting implementors to fail to
+ implement the general requirement when such failure would result in
+ interoperability failure.
+
+<span class="h2"><a class="selflink" name="section-3" href="#section-3">3</a>. Storage model</span>
+
+ The server stores data in nodes that form a tree structure.
+ Internal nodes are called 'folders' and leaf nodes are called
+ 'documents'. For a folder, the server stores references to nodes
+ contained in the folder, and it should be able to produce a list of
+ them, with for each contained item:
+
+ * item name
+ * item type (folder or document)
+ * current version
+ * content type
+ * content length
+
+ For a document, the server stores, and should be able to produce:
+
+
+<span class="grey">de Jong [Page 3]</span>
+</pre><!--NewPage--><pre class='newpage'><a name="page-4" id="page-4" href="#page-4" class="invisible"> </a>
+<span class="grey">Internet-Draft remoteStorage December 2014</span>
+
+
+
+ * current version
+ * content type
+ * content length
+ * content
+
+<span class="h2"><a class="selflink" name="section-4" href="#section-4">4</a>. Requests</span>
+
+ Client-to-server requests SHOULD be made over https [<a href="#ref-HTTPS">HTTPS</a>], and
+ servers MUST comply with HTTP/1.1 [<a href="#ref-HTTP">HTTP</a>]. Specifically, they
+ MUST support chunked transfer coding on PUT requests. Servers MAY
+ also offer an optional switch from https to SPDY [<a href="#ref-SPDY">SPDY</a>].
+
+ A request is considered successful if the HTTP response code is in
+ the 2xx range (e.g. 200 OK, 201 Created), and unsuccessful if an
+ error occurred or a condition was not met (response code e.g. 404
+ Not Found, 304 Not Modified).
+
+ The root folder of the storage tree is represented by the following
+ URL:
+
+ URI_ENCODE( &lt;storage_root&gt; '/' )
+
+ Subsequently, if &lt;parent_folder&gt; is the URL of a folder, then the
+ URL of an item contained in it is:
+
+ URI_ENCODE( &lt;parent_folder&gt; &lt;document_name&gt; )
+
+ for a document, or:
+
+ URI_ENCODE( &lt;parent_folder&gt; &lt;folder_name&gt; '/' )
+
+ for a folder. Item names MAY contain all characters except '/' and
+ the null character, and MUST NOT have zero length.
+
+ A document description is a map containing one string-valued 'ETag'
+ field, one string-valued 'Content-Type' and one integer-valued
+ 'Content-Length' field. They represent the document's current
+ version, its content type, and its content length respectively. Note
+ that content length is measured in octets (bytes), not in
+ characters.
+
+ A folder description is a map containing a string-valued 'ETag'
+
+
+<span class="grey">de Jong [Page 4]</span>
+</pre><!--NewPage--><pre class='newpage'><a name="page-5" id="page-5" href="#page-5" class="invisible"> </a>
+<span class="grey">Internet-Draft remoteStorage December 2014</span>
+
+
+ field, representing the folder's current version.
+
+ A successful GET request to a folder MUST be responded to with a
+ JSON-LD [<a href="#ref-JSON-LD">JSON-LD</a>] document (content type 'application/ld+json'),
+ containing as its 'items' field a map in which contained documents
+ appear as entries &lt;item_name&gt; to a document description, and
+ contained non-empty folders appear as entries &lt;item_name&gt; '/' to a
+ folder description. It MUST also contain an '@context' field with
+ the value 'http://remotestorage.io/spec/folder-description'. For
+ instance:
+
+ {
+ "@context": "<a href="http://remotestorage.io/spec/folder-description">http://remotestorage.io/spec/folder-description</a>",
+ "items": {
+ "abc": {
+ "ETag": "DEADBEEFDEADBEEFDEADBEEF",
+ "Content-Type": "image/jpeg",
+ "Content-Length": 82352
+ },
+ "def/": {
+ "ETag": "1337ABCD1337ABCD1337ABCD"
+ }
+ }
+ }
+
+ All folders are treated as existing, and therefore GET requests to
+ untouched folders SHOULD be responded to with a folder description
+ with no items (the items field set to '{}'). However, an empty
+ folder MUST NOT be listed as an item in its parent folder.
+
+ Also, since folders exist automatically, PUT and DELETE requests
+ only need to be made to documents, and never to folders. A document
+ PUT will make all ancestor folders along its path become non-empty;
+ deleting the last document from a subtree will make that whole
+ subtree become empty. Folders will therefore show up in their parent
+ folder descriptions if and only if their subtree contains at least
+ one document.
+
+ A successful GET request to a document SHOULD be responded to with
+ the full document contents in the body, the document's content type
+ in a 'Content-Type' header, its content length in octets (not in
+ characters) in a 'Content-Length' header, and the document's current
+ version as a strong ETag in an 'ETag' header.
+
+
+<span class="grey">de Jong [Page 5]</span>
+</pre><!--NewPage--><pre class='newpage'><a name="page-6" id="page-6" href="#page-6" class="invisible"> </a>
+<span class="grey">Internet-Draft remoteStorage December 2014</span>
+
+
+
+ Note that the use of strong ETags prohibits changing the response
+ body based on request headers; in particular, the server will not be
+ able to serve the same document uncompressed to some clients and
+ gzipped when requested by the client, since the two bodies would not
+ be identical byte-for-byte.
+
+ Servers MAY support Content-Range headers [<a href="#ref-RANGE">RANGE</a>] on GET requests,
+ but whether or not they do SHOULD be announced through the &lt;ranges&gt;
+ variable mentioned below in <a href="#section-10">section 10</a>.
+
+ A successful PUT request to a document MUST result in:
+
+ * the request body being stored as the document's new content,
+ * parent and further ancestor folders being silently created as
+ necessary, with the document (name and version) being added to
+ its parent folder, and each folder added to its subsequent
+ parent,
+ * the value of its Content-Type header being stored as the
+ document's new content type,
+ * its version being updated, as well as that of its parent folder
+ and further ancestor folders, using a strong validator [HTTP,
+ <a href="#section-7.2">section 7.2</a>].
+
+ The response MUST contain a strong ETag header, with the document's
+ new version (for instance a hash of its contents) as its value.
+
+ A successful DELETE request to a document MUST result in:
+
+ * the deletion of that document from the storage, and from its
+ parent folder,
+ * silent deletion of the parent folder if it is left empty by
+ this, and so on for further ancestor folders,
+ * the version of its parent folder being updated, as well as that
+ of further ancestor folders.
+
+ A successful OPTIONS request SHOULD be responded to as described in
+ the CORS section below.
+
+ A successful HEAD request SHOULD be responded to like to the
+ equivalent GET request, but omitting the response body.
+
+
+
+
+<span class="grey">de Jong [Page 6]</span>
+</pre><!--NewPage--><pre class='newpage'><a name="page-7" id="page-7" href="#page-7" class="invisible"> </a>
+<span class="grey">Internet-Draft remoteStorage December 2014</span>
+
+
+<span class="h2"><a class="selflink" name="section-5" href="#section-5">5</a>. Response codes</span>
+
+ Response codes SHOULD be given as defined by [HTTP, <a href="#section-6">section 6</a>] and
+ [BEARER, <a href="#section-3.1">section 3.1</a>]. The following is a non-normative checklist
+ of status codes that are likely to occur in practice:
+
+ * 500 if an internal server error occurs,
+ * 429 if the client makes too frequent requests or is suspected
+ of malicious activity,
+ * 414 if the request URI is too long,
+ * 416 if Range requests are supported by the server and the Range
+ request can not be satisfied,
+ * 401 for all requests that don't have a bearer token with
+ sufficient permissions,
+ * 404 for all DELETE and GET requests to documents that do not
+ exist on the storage,
+ * 304 for a conditional GET request whose pre-condition
+ fails (see "Versioning" below),
+ * 409 for a PUT request where any folder name in the path
+ clashes with an existing document's name at the same
+ level, or where the document name coincides with an
+ existing folder's name at the same level.
+ * 412 for a conditional PUT or DELETE request whose pre-condition
+ fails (see "Versioning" below),
+ * 507 in case the account is over its storage quota,
+ * 4xx for all malformed requests (e.g. foreign characters in the
+ path), as well as for all PUT and DELETE requests to
+ folders,
+ * 2xx for all successful requests.
+
+ Clients SHOULD also handle the case where a response takes too long
+ to arrive, or where no response is received at all.
+
+<span class="h2"><a class="selflink" name="section-6" href="#section-6">6</a>. Versioning</span>
+
+ All successful requests MUST return an 'ETag' header [<a href="#ref-HTTP">HTTP</a>] with, in
+ the case of GET, the current version, in the case of PUT, the new
+ version, and in case of DELETE, the version that was deleted. All
+ successful GET requests MUST return an 'Expires: 0' header. PUT and
+ DELETE requests MAY have an 'If-Match' request header [<a href="#ref-COND">COND</a>], and
+ MUST fail with a 412 response code if that doesn't match the
+ document's current version.
+
+
+
+<span class="grey">de Jong [Page 7]</span>
+</pre><!--NewPage--><pre class='newpage'><a name="page-8" id="page-8" href="#page-8" class="invisible"> </a>
+<span class="grey">Internet-Draft remoteStorage December 2014</span>
+
+
+ GET requests MAY have a comma-separated list of revisions in an
+ 'If-None-Match' header [<a href="#ref-COND">COND</a>], and SHOULD be responded to with a 304
+ response if that list includes the document or folder's current
+ version. A PUT request MAY have an 'If-None-Match: *' header [<a href="#ref-COND">COND</a>],
+ in which case it MUST fail with a 412 response code if the document
+ already exists.
+
+ In all 'ETag', 'If-Match' and 'If-None-Match' headers, revision
+ strings should appear inside double quotes (").
+
+ A provider MAY offer version rollback functionality to its users,
+ but this specification does not define the user interface for that.
+
+<span class="h2"><a class="selflink" name="section-7" href="#section-7">7</a>. CORS headers</span>
+
+ All responses MUST carry CORS headers [<a href="#ref-CORS">CORS</a>]. The server MUST also
+ reply to OPTIONS requests as per CORS. For GET requests, a wildcard
+ origin MAY be returned, but for PUT and DELETE requests, the
+ response MUST echo back the Origin header sent by the client.
+
+<span class="h2"><a class="selflink" name="section-8" href="#section-8">8</a>. Session description</span>
+
+ The information that a client needs to receive in order to be able
+ to connect to a server SHOULD reach the client as described in the
+ 'bearer token issuance' sections below. It consists of:
+
+ * &lt;storage_root&gt;, consisting of 'https://' followed by a server
+ host, and optionally a server port and a path prefix as per
+ [<a href="#ref-IRI">IRI</a>]. Examples:
+ * 'https://example.com' (host only)
+ * 'https://example.com:8080' (host and port)
+ * 'https://example.com/path/to/storage' (host, port and
+ path prefix; note there is no trailing slash)
+ * &lt;access_token&gt; as per [<a href="#ref-OAUTH">OAUTH</a>]. The token SHOULD be hard to
+ guess and SHOULD NOT be reused from one client to another. It
+ can however be reused in subsequent interactions with the same
+ client, as long as that client is still trusted. Example:
+ * 'ofb24f1ac3973e70j6vts19qr9v2eei'
+ * &lt;storage_api&gt;, always '<a href="./draft-dejong-remotestorage-04">draft-dejong-remotestorage-04</a>' for this
+ alternative version of the specification.
+
+ The client can make its requests using https with CORS and bearer
+ tokens, to the URL that is the concatenation of &lt;storage_root&gt; with
+
+
+<span class="grey">de Jong [Page 8]</span>
+</pre><!--NewPage--><pre class='newpage'><a name="page-9" id="page-9" href="#page-9" class="invisible"> </a>
+<span class="grey">Internet-Draft remoteStorage December 2014</span>
+
+
+ '/' plus one or more &lt;folder&gt; '/' strings indicating a path in the
+ folder tree, followed by zero or one &lt;document&gt; strings, indicating
+ a document. For example, if &lt;storage_root&gt; is
+ "https://storage.example.com/bob", then to retrieve the folder
+ contents of the /public/documents/ folder, or to retrieve a
+ 'draft.txt' document from that folder, the client would make
+ requests to, respectively:
+
+ * https://storage.example.com/bob/public/documents/
+ * https://storage.example.com/bob/public/documents/draft.txt
+
+<span class="h2"><a class="selflink" name="section-9" href="#section-9">9</a>. Bearer tokens and access control</span>
+
+ A bearer token represents one or more access scopes. These access
+ scopes are represented as strings of the form &lt;module&gt; &lt;level&gt;,
+ where the &lt;module&gt; string SHOULD be lower-case alphanumerical, other
+ than the reserved word 'public', and &lt;level&gt; can be ':r' or ':rw'.
+ The access the bearer token gives is the sum of its access scopes,
+ with each access scope representing the following permissions:
+
+ '*:rw') any request,
+
+ '*:r') any GET or HEAD request,
+
+ &lt;module&gt; ':rw') any requests to paths that start with
+ '/' &lt;module&gt; '/' or '/public/' &lt;module&gt; '/',
+
+ &lt;module&gt; ':r') any GET or HEAD requests to paths that start with
+ '/' &lt;module&gt; '/' or '/public/' &lt;module&gt; '/',
+
+ As a special exceptions, GET requests to a document (but not a
+ folder) whose path starts with '/public/' are always allowed. They,
+ as well as OPTIONS requests, can be made without a bearer token.
+ Unless [<a href="#ref-KERBEROS">KERBEROS</a>] is used (see <a href="#section-10">section 10</a> below), all other requests
+ SHOULD present a bearer token with sufficient access scope, using a
+ header of the following form (no double quotes here):
+
+ Authorization: Bearer &lt;access_token&gt;
+
+ In addition, providing the access token via a HTTP query parameter
+ for GET requests MAY be supported by the server, although its use
+ is not recommended, due to its security deficiencies; see [BEARER,
+ <a href="#section-2.3">section 2.3</a>].
+
+
+<span class="grey">de Jong [Page 9]</span>
+</pre><!--NewPage--><pre class='newpage'><a name="page-10" id="page-10" href="#page-10" class="invisible"> </a>
+<span class="grey">Internet-Draft remoteStorage December 2014</span>
+
+
+
+<span class="h2"><a class="selflink" name="section-10" href="#section-10">10</a>. Application-first bearer token issuance</span>
+
+ To make a remoteStorage server available as 'the remoteStorage of
+ &lt;account&gt; at &lt;host&gt;', exactly one link of the following format
+ SHOULD be added to the WebFinger record [<a href="#ref-WEBFINGER">WEBFINGER</a>] of &lt;account&gt; at
+ &lt;host&gt;:
+
+ {
+ "href": &lt;storage_root&gt;,
+ "rel": "remotestorage",
+ "properties": {
+ "<a href="http://remotestorage.io/spec/version">http://remotestorage.io/spec/version</a>": &lt;storage_api&gt;,
+ "<a href="http://tools.ietf.org/html/rfc6749#section-4.2">http://tools.ietf.org/html/rfc6749#section-4.2</a>": &lt;auth-dialog&gt;,
+ ... : ... ,
+ }
+ }
+
+ Here &lt;storage_root&gt; and &lt;storage_api&gt; are as per "Session
+ description" above, and &lt;auth-dialog&gt; SHOULD be either null or a
+ URL where an OAuth 2.0 implicit-grant flow dialog [<a href="#ref-OAUTH">OAUTH</a>] is
+ presented.
+
+ If &lt;auth-dialog&gt; is a URL, the user can supply their credentials
+ for accessing the account (how, is out of scope), and allow or
+ reject a request by the connecting application to obtain a bearer
+ token for a certain list of access scopes. Note that an account
+ will often belong to just one human user, but may also belong to a
+ group of multiple users (the remoteStorage of &lt;group&gt; at &lt;host&gt;).
+
+ If &lt;auth-dialog&gt; is null, the client will not have a way to obtain
+ an access token, and SHOULD send all requests without Authorization
+ header, and rely on Kerberos [<a href="#ref-KERBEROS">KERBEROS</a>] instead for requests that
+ would normally be sent with a bearer token, but servers SHOULD NOT
+ impose any such access barriers for resources that would normally
+ not require an access token.
+
+ The '...' ellipses indicate that more properties may be present.
+ Non-breaking examples that have been proposed so far, include a
+ "<a href="http://tools.ietf.org/html/rfc6750#section-2.3">http://tools.ietf.org/html/rfc6750#section-2.3</a>" property, set to
+ the string value "true" if the server supports passing the bearer
+ token in the URI query parameter as per section 2.3 of [<a href="#ref-BEARER">BEARER</a>],
+ instead of in the request header.
+
+
+<span class="grey">de Jong [Page 10]</span>
+</pre><!--NewPage--><pre class='newpage'><a name="page-11" id="page-11" href="#page-11" class="invisible"> </a>
+<span class="grey">Internet-Draft remoteStorage December 2014</span>
+
+
+
+ Another example is "<a href="http://tools.ietf.org/html/rfc7233">http://tools.ietf.org/html/rfc7233</a>" with a
+ string value of "GET" if Content-Range headers are supported for
+ GET requests as per [<a href="#ref-RANGE">RANGE</a>], "PUT" if they are supported for PUT
+ requests, and "GET,PUT" if supported for both.
+
+ Both these proposals are non-breaking extensions, since the client
+ will have a way to work around it if these features are not present
+ (e.g. retrieve the protected resource asynchronously in the first
+ case, or request the entire resource in the second case).
+
+ A "<a href="http://remotestorage.io/spec/web-authoring">http://remotestorage.io/spec/web-authoring</a>" property has been
+ proposed with a string value of the fully qualified domain name to
+ which web authoring content is published if the server supports web
+ authoring as per [<a href="#ref-AUTHORING">AUTHORING</a>]. Note that this extension is a breaking
+ extension in the sense that it divides users into "haves", whose
+ remoteStorage accounts allow them to author web content, and
+ "have-nots", whose remoteStorage account does not support this
+ functionality.
+
+ The server MAY expire bearer tokens, and MAY require the user to
+ register applications as OAuth clients before first use; if no
+ client registration is required, then the server MAY ignore the
+ client_id parameter in favor of relying on the redirect_uri
+ parameter for client identification.
+
+<span class="h2"><a class="selflink" name="section-11" href="#section-11">11</a>. Storage-first bearer token issuance</span>
+
+ The provider MAY also present a dashboard to the user, where they
+ have some way to add open web app manifests [<a href="#ref-MANIFEST">MANIFEST</a>]. Adding a
+ manifest to the dashboard is considered equivalent to clicking
+ 'accept' in the dialog of the application-first flow. Removing one
+ is considered equivalent to revoking its access token.
+
+ As an equivalent to OAuth's 'scope' parameter, a 'datastores-access'
+ field SHOULD be present in the root of such an application manifest
+ document, with entries &lt;module&gt; -&gt; '{"access": "readonly"}' for
+ &lt;level&gt; 'r' or '{"access": "readwrite"}' for &lt;level&gt; 'rw', as
+ prescribed in [<a href="#ref-DATASTORE">DATASTORE</a>].
+
+ When the user gestures they want to use a certain application whose
+ manifest is present on the dashboard, the dashboard SHOULD redirect
+ to the application or open it in a new window. To mimic coming back
+
+
+<span class="grey">de Jong [Page 11]</span>
+</pre><!--NewPage--><pre class='newpage'><a name="page-12" id="page-12" href="#page-12" class="invisible"> </a>
+<span class="grey">Internet-Draft remoteStorage December 2014</span>
+
+
+ from the OAuth dialog, it MAY add 'access_token' and 'scope'
+ fields to the URL fragment.
+
+ Regardless of whether 'access_token' and 'scope' are specified, it
+ SHOULD add a 'remotestorage' field to the URL fragment, with a
+ value of the form &lt;account&gt; '@' &lt;host&gt;. When the application detects
+ this parameter, it SHOULD resolve the WebFinger record for &lt;account&gt;
+ at &lt;host&gt; and extract the &lt;storage_root&gt; and &lt;storage_api&gt;
+ information.
+
+ If no access_token was given, then the application SHOULD also
+ extract the &lt;auth_endpoint&gt; information from WebFinger, and continue
+ as per application-first bearer token issuance.
+
+ Note that whereas a remoteStorage server SHOULD offer support for
+ the application-first flow with WebFinger and OAuth, it MAY choose
+ not to support the storage-first flow, provided that users will
+ easily remember their &lt;account&gt; '@' &lt;host&gt; WebFinger address at that
+ provider. Applications SHOULD, however, support both flows, which
+ means checking the URL for a 'remotestorage' parameter, but giving
+ the user a way to specify the WebFinger address if there is none.
+
+ If a server provides an application manifest dashboard, then it
+ SHOULD merge the list of applications there with the list of
+ issued access tokens as specified by OAuth into one list. Also,
+ the interface for revoking an access token as specified by OAuth
+ SHOULD coincide with removing an application from the dashboard.
+
+ Servers MAY also provide a way to create access tokens directly from
+ their user interface. Such functionality would be aimed mainly at
+ developers, to manually copy and paste a token into a script or
+ debug tool, thus bypassing the need for an OAuth dance. Clients
+ SHOULD NOT rely on this in production.
+
+<span class="h2"><a class="selflink" name="section-12" href="#section-12">12</a>. Example wire transcripts</span>
+
+ The following examples are not normative ("\" indicates a line was
+ wrapped).
+
+<span class="h3"><a class="selflink" name="section-12.1" href="#section-12.1">12.1</a>. WebFinger</span>
+
+ In application-first, an in-browser application might issue the
+ following request, using XMLHttpRequest and CORS:
+
+
+<span class="grey">de Jong [Page 12]</span>
+</pre><!--NewPage--><pre class='newpage'><a name="page-13" id="page-13" href="#page-13" class="invisible"> </a>
+<span class="grey">Internet-Draft remoteStorage December 2014</span>
+
+
+
+ GET /.well-known/webfinger?resource=acct:michiel@michielbdejon\
+g.com HTTP/1.1
+ Host: michielbdejong.com
+
+ and the server's response might look like this:
+
+ HTTP/1.1 200 OK
+ Access-Control-Allow-Origin: *
+ Access-Control-Allow-Methods: GET
+ Access-Control-Allow-Headers: If-Match, If-None-Match
+ Access-Control-Expose-Headers: ETag, Content-Length
+ Content-Type: application/jrd+json
+
+ {
+ "links":[{
+ "href": "<a href="https://michielbdejong.com:7678/inbox">https://michielbdejong.com:7678/inbox</a>",
+ "rel": "post-me-anything"
+ }, {
+ "href": "<a href="https://michielbdejong.com/me.jpg">https://michielbdejong.com/me.jpg</a>",
+ "rel": "avatar"
+ }, {
+ "href": "<a href="https://3pp.io:4439/storage/michiel">https://3pp.io:4439/storage/michiel</a>",
+ "rel": "remotestorage",
+ "properties": {
+ "<a href="http://remotestorage.io/spec/version">http://remotestorage.io/spec/version</a>": "<a href="./draft-dejong-re">draft-dejong-re</a>\
+motestorage-04",
+ "<a href="http://tools.ietf.org/html/rfc6749#section-4.2">http://tools.ietf.org/html/rfc6749#section-4.2</a>": "https\
+://3pp.io:4439/oauth/michiel",
+ "<a href="http://tools.ietf.org/html/rfc6750#section-2.3">http://tools.ietf.org/html/rfc6750#section-2.3</a>": false,
+ "<a href="http://tools.ietf.org/html/rfc7233">http://tools.ietf.org/html/rfc7233</a>": false,
+ "<a href="http://remotestorage.io/spec/web-authoring">http://remotestorage.io/spec/web-authoring</a>": false
+ }
+ }]
+ }
+
+<span class="h3"><a class="selflink" name="section-12.2" href="#section-12.2">12.2</a>. OAuth dialog form</span>
+
+ Once the in-browser application has discovered the server's OAuth
+ end-point, it will typically redirect the user to this URL, in
+ order to obtain a bearer token. Say the application is hosted on
+ <a href="https://drinks-unhosted.5apps.com/">https://drinks-unhosted.5apps.com/</a> and wants read-write access to
+ the account's "myfavoritedrinks" scope:
+
+
+<span class="grey">de Jong [Page 13]</span>
+</pre><!--NewPage--><pre class='newpage'><a name="page-14" id="page-14" href="#page-14" class="invisible"> </a>
+<span class="grey">Internet-Draft remoteStorage December 2014</span>
+
+
+
+ GET /oauth/michiel?redirect_uri=https%3A%2F%2Fdrinks-unhosted.5\
+apps.com%2F&amp;scope=myfavoritedrinks%3Arw&amp;client_id=https%3A%2F%2Fdrinks-\
+unhosted.5apps.com&amp;response_type=token HTTP/1.1
+ Host: 3pp.io
+
+ The server's response might look like this (truncated for brevity):
+
+ HTTP/1.1 200 OK
+
+ &lt;!DOCTYPE html&gt;
+ &lt;html lang="en"&gt;
+ &lt;head&gt;
+ &lt;title&gt;Allow access?&lt;/title&gt;
+ ...
+
+<span class="h3"><a class="selflink" name="section-12.3" href="#section-12.3">12.3</a>. OAuth dialog form submission</span>
+
+ When the user submits the form, the request would look something
+ like this:
+
+ POST /oauth HTTP/1.1
+ Host: 3pp.io:4439
+ Origin: <a href="https://3pp.io:4439">https://3pp.io:4439</a>
+ Content-Type: application/x-www-form-urlencoded
+ Referer: <a href="https://3pp">https://3pp</a>.io:4439/oauth/michiel?redirect_uri=https%3\
+A%2F%2Fdrinks-unhosted.5apps.com%2F&amp;scope=myfavoritedrinks%3Arw&amp;client_\
+id=https%3A%2F%2Fdrinks-unhosted.5apps.com&amp;response_type=token
+
+ client_id=https%3A%2F%2Fdrinks-unhosted.5apps.com&amp;redirect_uri=\
+https%3A%2F%2Fdrinks-unhosted.5apps.com%2F&amp;response_type=token&amp;scope=my\
+favoritedrinks%3Arw&amp;state=&amp;username=michiel&amp;password=something&amp;allow=Al\
+low
+
+ To which the server could respond with a 302 redirect, back to the
+ origin of the requesting application:
+
+ HTTP/1.1 302 Found
+ Location:https://drinks-unhosted.5apps.com/#access_token=j2YnGt\
+XjzzzHNjkd1CJxoQubA1o%3D&amp;token_type=bearer&amp;state=
+
+<span class="h3"><a class="selflink" name="section-12.4" href="#section-12.4">12.4</a>. OPTIONS preflight</span>
+
+
+
+<span class="grey">de Jong [Page 14]</span>
+</pre><!--NewPage--><pre class='newpage'><a name="page-15" id="page-15" href="#page-15" class="invisible"> </a>
+<span class="grey">Internet-Draft remoteStorage December 2014</span>
+
+
+ When an in-browser application makes a cross-origin request which
+ may affect the server-state, the browser will make a preflight
+ request first, with the OPTIONS verb, for instance:
+
+ OPTIONS /storage/michiel/myfavoritedrinks/ HTTP/1.1
+ Host: 3pp.io:4439
+ Access-Control-Request-Method: GET
+ Origin: <a href="https://drinks-unhosted.5apps.com">https://drinks-unhosted.5apps.com</a>
+ Access-Control-Request-Headers: Authorization
+ Referer: <a href="https://drinks-unhosted.5apps.com/">https://drinks-unhosted.5apps.com/</a>
+
+ To which the server can for instance respond:
+
+ HTTP/1.1 200 OK
+ Access-Control-Allow-Origin: <a href="https://drinks-unhosted.5apps.com">https://drinks-unhosted.5apps.com</a>
+ Access-Control-Allow-Methods: GET, PUT, DELETE
+ Access-Control-Allow-Headers: Authorization, Content-Length, Co\
+ntent-Type, Origin, X-Requested-With, If-Match, If-None-Match
+
+<span class="h3"><a class="selflink" name="section-12.5" href="#section-12.5">12.5</a>. Initial PUT</span>
+
+ An initial PUT may contain an 'If-None-Match: *' header, like this:
+
+ PUT /storage/michiel/myfavoritedrinks/test HTTP/1.1
+ Host: 3pp.io:4439
+ Content-Length: 91
+ Origin: <a href="https://drinks-unhosted.5apps.com">https://drinks-unhosted.5apps.com</a>
+ Authorization: Bearer j2YnGtXjzzzHNjkd1CJxoQubA1o=
+ Content-Type: application/json; charset=UTF-8
+ Referer: <a href="https://drinks-unhosted.5apps.com/?">https://drinks-unhosted.5apps.com/?</a>
+ If-None-Match: *
+
+ {"name":"test","@context":"<a href="http://remotestorage">http://remotestorage</a>.io/spec/modules\
+/myfavoritedrinks/drink"}
+
+ And the server may respond with either a 201 Created or a 200 OK
+ status:
+
+ HTTP/1.1 201 Created
+ Access-Control-Allow-Origin: <a href="https://drinks-unhosted.5apps.com">https://drinks-unhosted.5apps.com</a>
+ ETag: "1382694045000"
+
+<span class="h3"><a class="selflink" name="section-12.6" href="#section-12.6">12.6</a>. Subsequent PUT</span>
+
+
+<span class="grey">de Jong [Page 15]</span>
+</pre><!--NewPage--><pre class='newpage'><a name="page-16" id="page-16" href="#page-16" class="invisible"> </a>
+<span class="grey">Internet-Draft remoteStorage December 2014</span>
+
+
+
+ A subsequent PUT may contain an 'If-Match' header referring to the
+ ETag previously returned, like this:
+
+ PUT /storage/michiel/myfavoritedrinks/test HTTP/1.1
+ Host: 3pp.io:4439
+ Content-Length: 91
+ Origin: <a href="https://drinks-unhosted.5apps.com">https://drinks-unhosted.5apps.com</a>
+ Authorization: Bearer j2YnGtXjzzzHNjkd1CJxoQubA1o=
+ Content-Type: application/json; charset=UTF-8
+ Referer: <a href="https://drinks-unhosted.5apps.com/?">https://drinks-unhosted.5apps.com/?</a>
+ If-Match: "1382694045000"
+
+ {"name":"test", "updated":true, "@context":"http://remotestorag\
+e.io/spec/modules/myfavoritedrinks/drink"}
+
+ And the server may respond with a 412 Conflict or a 200 OK status:
+
+ HTTP/1.1 200 OK
+ Access-Control-Allow-Origin: <a href="https://drinks-unhosted.5apps.com">https://drinks-unhosted.5apps.com</a>
+ ETag: "1382694048000"
+
+<span class="h3"><a class="selflink" name="section-12.7" href="#section-12.7">12.7</a>. GET</span>
+
+ A GET request would also include the bearer token, and optionally
+ an If-None-Match header:
+
+ GET /storage/michiel/myfavoritedrinks/test HTTP/1.1
+ Host: 3pp.io:4439
+ Origin: <a href="https://drinks-unhosted.5apps.com">https://drinks-unhosted.5apps.com</a>
+ Authorization: Bearer j2YnGtXjzzzHNjkd1CJxoQubA1o=
+ Referer: <a href="https://drinks-unhosted.5apps.com/?">https://drinks-unhosted.5apps.com/?</a>
+ If-None-Match: "1382694045000", "1382694048000"
+
+ And the server may respond with a 304 Not Modified status:
+
+ HTTP/1.1 304 Not Modified
+ Access-Control-Allow-Origin: <a href="https://drinks-unhosted.5apps.com">https://drinks-unhosted.5apps.com</a>
+ ETag: "1382694048000"
+
+ Or a 200 OK status, plus a response body:
+
+ HTTP/1.1 200 OK
+
+
+<span class="grey">de Jong [Page 16]</span>
+</pre><!--NewPage--><pre class='newpage'><a name="page-17" id="page-17" href="#page-17" class="invisible"> </a>
+<span class="grey">Internet-Draft remoteStorage December 2014</span>
+
+
+ Access-Control-Allow-Origin: <a href="https://drinks-unhosted.5apps.com">https://drinks-unhosted.5apps.com</a>
+ Content-Type: application/json; charset=UTF-8
+ Content-Length: 106
+ ETag: "1382694048000"
+ Expires: 0
+
+ {"name":"test", "updated":true, "@context":"http://remotestora\
+ge.io/spec/modules/myfavoritedrinks/drink"}
+
+ If the GET URL would have been "/storage/michiel/myfavoritedrinks/",
+ a 200 OK response would have a folder description as the response
+ body:
+
+ HTTP/1.1 200 OK
+ Access-Control-Allow-Origin: <a href="https://drinks-unhosted.5apps.com">https://drinks-unhosted.5apps.com</a>
+ Content-Type: application/ld+json
+ Content-Length: 171
+ ETag: "1382694048000"
+ Expires: 0
+
+ {"@context":"<a href="http://remotestorage.io/spec/folder-version">http://remotestorage.io/spec/folder-version</a>","ite\
+ms":{"test":{"ETag":"1382694048000","Content-Type":"application/json; \
+charset=UTF-8","Content-Length":106}}}
+
+ If the GET URL would have been a non-existing document like
+ "/storage/michiel/myfavoritedrinks/x", the response would have a 404
+ Not Found status, and no ETag header:
+
+ HTTP/1.1 404 Not Found
+ Access-Control-Allow-Origin: <a href="https://drinks-unhosted.5apps.com">https://drinks-unhosted.5apps.com</a>
+
+<span class="h3"><a class="selflink" name="section-12.8" href="#section-12.8">12.8</a>. DELETE</span>
+
+ A DELETE request may look like this:
+
+ DELETE /storage/michiel/myfavoritedrinks/test HTTP/1.1
+ Host: 3pp.io:4439
+ Origin: <a href="https://drinks-unhosted.5apps.com">https://drinks-unhosted.5apps.com</a>
+ Authorization: Bearer j2YnGtXjzzzHNjkd1CJxoQubA1o=
+ Content-Type: application/json; charset=UTF-8
+ Referer: <a href="https://drinks-unhosted.5apps.com/?">https://drinks-unhosted.5apps.com/?</a>
+ If-Match: "1382694045000"
+
+
+
+<span class="grey">de Jong [Page 17]</span>
+</pre><!--NewPage--><pre class='newpage'><a name="page-18" id="page-18" href="#page-18" class="invisible"> </a>
+<span class="grey">Internet-Draft remoteStorage December 2014</span>
+
+
+ And the server may respond with a 412 Conflict or a 200 OK status:
+
+ HTTP/1.1 412 Conflict
+ Access-Control-Allow-Origin: <a href="https://drinks-unhosted.5apps.com">https://drinks-unhosted.5apps.com</a>
+ ETag: "1382694048000"
+
+<span class="h2"><a class="selflink" name="section-13" href="#section-13">13</a>. Distributed versioning</span>
+
+ This section is non-normative, and is intended to explain some of
+ the design choices concerning ETags and folder listings. At the
+ same time it will hopefully help readers who intend to develop an
+ application that uses remoteStorage as its per-user data storage.
+ When multiple clients have read/write access to the same document,
+ versioning conflicts may occur. For instance, client A may make
+ a PUT request that changes the document from version 1 to version
+ 2, after which client B may make a PUT request attempting to change
+ the same document from version 1 to version 3.
+
+ In this case, client B can add an 'If-Match: "1"' header, which
+ would trigger a 412 Conflict response code, since the current
+ version ("2") does not match the version required as a condition by
+ the header If-Match header ("1").
+
+ Client B is now aware of the conflict, and may consult the user,
+ saying the update to version 3 failed. The user may then choose,
+ through the user interface of client B, whether version 2 or
+ version 3 should be kept, or maybe the document should be reverted
+ on the server to version 1, or a merged version 4 is needed. Client
+ B may then make a request that puts the document to the version the
+ user wishes; this time setting an 'If-Match: "2"' header instead.
+
+ Both client A and client B would periodically poll the root
+ folder of each scope they have access to, to see if the version
+ of the root folder changed. If it did, then one of the versions
+ listed in there will necessarily have changed, and the client can
+ make a GET request to that child folder or document, to obtain
+ its latest version.
+
+ Because an update in a document will result in a version change of
+ its containing folder, and that change will propagate all the way
+ to the root folder, it is not necessary to poll each document for
+ changes individually.
+
+
+
+<span class="grey">de Jong [Page 18]</span>
+</pre><!--NewPage--><pre class='newpage'><a name="page-19" id="page-19" href="#page-19" class="invisible"> </a>
+<span class="grey">Internet-Draft remoteStorage December 2014</span>
+
+
+ As an example, the root folder may contain 10 directories,
+ each of which contain 10 directories, which each contain 10
+ documents, so their paths would be for instance '/0/0/1', '/0/0/2',
+ etcetera. Then one GET request to the root folder '/' will be
+ enough to know if any of these 1000 documents has changed.
+
+ Say document '/7/9/2' has changed; then the GET request to '/' will
+ come back with a different ETag, and entry '7/' will have a
+ different value in its JSON content. The client could then request
+ '/7/', '/7/9/', and '/7/9/2' to narrow down the one document that
+ caused the root folder's ETag to change.
+
+ Note that the remoteStorage server does not get involved in the
+ conflict resolution. It keeps the canonical current version at all
+ times, and allows clients to make conditional GET and PUT requests,
+ but it is up to whichever client discovers a given version
+ conflict, to resolve it.
+
+<span class="h2"><a class="selflink" name="section-14" href="#section-14">14</a>. Security Considerations</span>
+
+ To prevent man-in-the-middle attacks, the use of https instead of
+ http is important for both the interface itself and all end-points
+ involved in WebFinger, OAuth, and (if present) the storage-first
+ application launch dashboard.
+
+ A malicious party could link to an application, but specifying a
+ remoteStorage account address that it controls, thus tricking the
+ user into using a trusted application to send sensitive data to the
+ wrong remoteStorage server. To mitigate this, applications SHOULD
+ clearly display to which remoteStorage server they are sending the
+ user's data.
+
+ Applications could request scopes that the user did not intend to
+ give access to. The user SHOULD always be prompted to carefully
+ review which scopes an application is requesting.
+
+ An application may upload malicious html pages and then trick the
+ user into visiting them, or upload malicious client-side scripts,
+ that take advantage of being hosted on the user's domain name. The
+ origin on which the remoteStorage server has its interface SHOULD
+ therefore NOT be used for anything else, and the user SHOULD be
+ warned not to visit any web pages on that origin. In particular, the
+ OAuth dialog and launch dashboard or token revokation interface
+
+
+<span class="grey">de Jong [Page 19]</span>
+</pre><!--NewPage--><pre class='newpage'><a name="page-20" id="page-20" href="#page-20" class="invisible"> </a>
+<span class="grey">Internet-Draft remoteStorage December 2014</span>
+
+
+ SHOULD be on a different origin than the remoteStorage interface.
+
+ Where the use of bearer tokens is impractical, a user may choose to
+ store documents on hard-to-guess URLs whose path after
+ &lt;storage_root&gt; starts with '/public/', while sharing this URL only
+ with the intended audience. That way, only parties who know the
+ document's hard-to-guess URL, can access it. The server SHOULD
+ therefore make an effort to detect and stop brute-force attacks that
+ attempt to guess the location of such documents.
+
+ The server SHOULD also detect and stop denial-of-service attacks
+ that aim to overwhelm its interface with too much traffic.
+
+<span class="h2"><a class="selflink" name="section-15" href="#section-15">15</a>. IANA Considerations</span>
+
+ This document registers the 'remotestorage' link relation, as well
+ as the following WebFinger properties:
+ * "<a href="http://remotestorage.io/spec/version">http://remotestorage.io/spec/version</a>"
+ * "<a href="http://tools.ietf.org/html/rfc6749#section-4.2">http://tools.ietf.org/html/rfc6749#section-4.2</a>"
+ * "<a href="http://tools.ietf.org/html/rfc6750#section-2.3">http://tools.ietf.org/html/rfc6750#section-2.3</a>"
+ * "<a href="http://tools.ietf.org/html/rfc7233">http://tools.ietf.org/html/rfc7233</a>"
+ * "<a href="http://remotestorage.io/spec/web-authoring">http://remotestorage.io/spec/web-authoring</a>"
+
+<span class="h2"><a class="selflink" name="section-16" href="#section-16">16</a>. Acknowledgements</span>
+
+ The authors would like to thank everybody who contributed to the
+ development of this protocol, including Kenny Bentley, Javier Diaz,
+ Daniel Groeber, Bjarni Runar, Jan Wildeboer, Charles Schultz, Peter
+ Svensson, Valer Mischenko, Michiel Leenaars, Jan-Christoph
+ Borchardt, Garret Alfert, Sebastian Kippe, Max Wiehle, Melvin
+ Carvalho, Martin Stadler, Geoffroy Couprie, Niklas Cathor, Marco
+ Stahl, James Coglan, Ken Eucker, Daniel Brolund, elf Pavlik, Nick
+ Jennings, Markus Sabadello, Steven te Brinke, Matthias Treydte,
+ Rick van Rein, Mark Nottingham, Julian Reschke, and Markus
+ Lanthaler, among many others.
+
+<span class="h2"><a class="selflink" name="section-17" href="#section-17">17</a>. References</span>
+
+<span class="h3"><a class="selflink" name="section-17.1" href="#section-17.1">17.1</a>. Normative References</span>
+
+ [<a name="ref-WORDS" id="ref-WORDS">WORDS</a>]
+ Bradner, S., "Key words for use in RFCs to Indicate Requirement
+ Levels", <a href="./bcp14">BCP 14</a>, <a href="./rfc2119">RFC 2119</a>, March 1997.
+
+
+<span class="grey">de Jong [Page 20]</span>
+</pre><!--NewPage--><pre class='newpage'><a name="page-21" id="page-21" href="#page-21" class="invisible"> </a>
+<span class="grey">Internet-Draft remoteStorage December 2014</span>
+
+
+
+ [<a name="ref-IRI" id="ref-IRI">IRI</a>]
+ Duerst, M., "Internationalized Resource Identifiers (IRIs)",
+ <a href="./rfc3987">RFC 3987</a>, January 2005.
+
+ [<a name="ref-WEBFINGER" id="ref-WEBFINGER">WEBFINGER</a>]
+ Jones, P., Salguerio, G., Jones, M, and Smarr, J.,
+ "WebFinger", <a href="./rfc7033">RFC7033</a>, September 2013.
+
+ [<a name="ref-OAUTH" id="ref-OAUTH">OAUTH</a>]
+ "<a href="#section-4.2">Section 4.2</a>: Implicit Grant", in: Hardt, D. (ed), "The OAuth
+ 2.0 Authorization Framework", <a href="./rfc6749">RFC6749</a>, October 2012.
+
+<span class="h3"><a class="selflink" name="section-17.2" href="#section-17.2">17.2</a>. Informative References</span>
+
+ [<a name="ref-HTTPS" id="ref-HTTPS">HTTPS</a>]
+ Rescorla, E., "HTTP Over TLS", <a href="./rfc2818">RFC2818</a>, May 2000.
+
+ [<a name="ref-HTTP" id="ref-HTTP">HTTP</a>]
+ Fielding et al., "Hypertext Transfer Protocol (HTTP/1.1):
+ Semantics and Content", <a href="./rfc7231">RFC7231</a>, June 2014.
+
+ [<a name="ref-COND" id="ref-COND">COND</a>]
+ Fielding et al., "Hypertext Transfer Protocol (HTTP/1.1):
+ Conditional Requests", <a href="./rfc7232">RFC7232</a>, June 2014.
+
+ [<a name="ref-RANGE" id="ref-RANGE">RANGE</a>]
+ Fielding et al., "Hypertext Transfer Protocol (HTTP/1.1):
+ Conditional Requests", <a href="./rfc7233">RFC7233</a>, June 2014.
+
+ [<a name="ref-SPDY" id="ref-SPDY">SPDY</a>]
+ Mark Belshe, Roberto Peon, "SPDY Protocol - Draft 3.1", <a href="http://www.chromium.org/spdy/spdy-protocol/spdy-protocol-draft3-1">http://</a>
+ <a href="http://www.chromium.org/spdy/spdy-protocol/spdy-protocol-draft3-1">www.chromium.org/spdy/spdy-protocol/spdy-protocol-draft3-1</a>,
+ September 2013.
+
+ [<a name="ref-JSON-LD" id="ref-JSON-LD">JSON-LD</a>]
+ M. Sporny, G. Kellogg, M. Lanthaler, "JSON-LD 1.0", W3C
+ Proposed Recommendation,
+ <a href="http://www.w3.org/TR/2014/REC-json-ld-20140116/">http://www.w3.org/TR/2014/REC-json-ld-20140116/</a>, January 2014.
+
+ [<a name="ref-CORS" id="ref-CORS">CORS</a>]
+ van Kesteren, Anne (ed), "Cross-Origin Resource Sharing --
+ W3C Candidate Recommendation 29 January 2013",
+
+
+<span class="grey">de Jong [Page 21]</span>
+</pre><!--NewPage--><pre class='newpage'><a name="page-22" id="page-22" href="#page-22" class="invisible"> </a>
+<span class="grey">Internet-Draft remoteStorage December 2014</span>
+
+
+ <a href="http://www.w3.org/TR/cors/">http://www.w3.org/TR/cors/</a>, January 2013.
+
+ [<a name="ref-MANIFEST" id="ref-MANIFEST">MANIFEST</a>]
+ Mozilla Developer Network (ed), "App manifest -- Revision
+ 330541", <a href="https://developer.mozilla.org/en-">https://developer.mozilla.org/en-</a>
+ US/Apps/Build/Manifest$revision/566677, April 2014.
+
+ [<a name="ref-DATASTORE" id="ref-DATASTORE">DATASTORE</a>]
+ "WebAPI/DataStore", MozillaWiki, retrieved May 2014.
+ <a href="https://wiki.mozilla.org/WebAPI/DataStore#Manifest">https://wiki.mozilla.org/WebAPI/DataStore#Manifest</a>
+
+ [<a name="ref-KERBEROS" id="ref-KERBEROS">KERBEROS</a>]
+ C. Neuman et al., "The Kerberos Network Authentication Service
+ (V5)", <a href="./rfc4120">RFC4120</a>, July 2005.
+
+ [<a name="ref-BEARER" id="ref-BEARER">BEARER</a>]
+ M. Jones, D. Hardt, "The OAuth 2.0 Authorization Framework:
+ Bearer Token Usage", <a href="./rfc6750">RFC6750</a>, October 2012.
+
+ [<a name="ref-AUTHORING" id="ref-AUTHORING">AUTHORING</a>]
+ "Using remoteStorage for web authoring", reSite wiki, retrieved
+ September 2014. <a href="https://github.com/michielbdejong/resite/wiki">https://github.com/michielbdejong/resite/wiki</a>
+ /Using-remoteStorage-for-web-authoring
+
+<span class="h2"><a class="selflink" name="section-18" href="#section-18">18</a>. Authors' addresses</span>
+
+ Michiel B. de Jong
+ IndieHosters
+
+
+
+ F. Kooman
+ (independent)
+
+
+
+
+
+
+
+
+
+
+de Jong [Page 22]
+
+</pre><br />
+<span class="noprint"><small><small>Html markup produced by rfcmarkup 1.111, available from
+<a href="https://tools.ietf.org/tools/rfcmarkup/">https://tools.ietf.org/tools/rfcmarkup/</a>
+</small></small></span>
+</body></html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/infobae/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/infobae/expected-images.json
new file mode 100644
index 000000000..785f18284
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/infobae/expected-images.json
@@ -0,0 +1,7 @@
+[
+ "https:\/\/www.infobae.com\/new-resizer\/shi8E0F5ldd8a7vtvFaJomRURqU=\/1200x0\/filters:quality(100)\/s3.amazonaws.com\/arc-wordpress-client-uploads\/infobae-wp\/wp-content\/uploads\/2017\/12\/01154429\/Rugbier-golpeado-1920.jpg",
+ "https:\/\/www.infobae.com\/new-resizer\/b_LU5bsrOM_BmZtNMzegvdNoPNE=\/600x0\/filters:quality(100)\/s3.amazonaws.com\/arc-wordpress-client-uploads\/infobae-wp\/wp-content\/uploads\/2017\/12\/01154429\/Rugbier-golpeado-1920.jpg",
+ "https:\/\/www.infobae.com\/new-resizer\/PUJQSwJZOtaetM7tXKqic4Ib1Wg=\/600x0\/filters:quality(100)\/s3.amazonaws.com\/arc-wordpress-client-uploads\/infobae-wp\/wp-content\/uploads\/2017\/12\/01161934\/Jonathan-Castellani-SF-2.jpg",
+ "https:\/\/www.infobae.com\/new-resizer\/yS5kphJxw_CBn1mycqbcrMjoNmQ=\/600x0\/filters:quality(100)\/s3.amazonaws.com\/arc-wordpress-client-uploads\/infobae-wp\/wp-content\/uploads\/2017\/12\/01163101\/JonathanGay2.jpg",
+ "https:\/\/www.infobae.com\/new-resizer\/cFidtpanVMHP25zNoWF78I4qjMA=\/600x0\/filters:quality(100)\/s3.amazonaws.com\/arc-wordpress-client-uploads\/infobae-wp\/wp-content\/uploads\/2017\/12\/01161927\/Jonathan-Castellani-1920.jpg"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/infobae/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/infobae/expected-metadata.json
new file mode 100644
index 000000000..b6d25979e
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/infobae/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "Por Mauricio Luna 1 de diciembre de 2017",
+ "Direction": null,
+ "Excerpt": "Jonathan Castellari fue salvajemente golpeado en un local de comidas rápidas, mientras esperaba el desayuno junto a un amigo. Podría perder un ojo",
+ "Image": "https:\/\/www.infobae.com\/new-resizer\/shi8E0F5ldd8a7vtvFaJomRURqU=\/1200x0\/filters:quality(100)\/s3.amazonaws.com\/arc-wordpress-client-uploads\/infobae-wp\/wp-content\/uploads\/2017\/12\/01154429\/Rugbier-golpeado-1920.jpg",
+ "Title": "Una patota de varones atacó a un rugbier gay: \"Te vamos a matar por puto\"",
+ "SiteName": "Infobae"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/infobae/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/infobae/expected.html
new file mode 100644
index 000000000..e575c7beb
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/infobae/expected.html
@@ -0,0 +1 @@
+<div id="article-body"> <div id="article-content"> <div> <figure><div> <p><img alt="Jonathan Castellari tiene 25 años y fue golpeado por una patota de 8 hombres" data-original="https://www.infobae.com/new-resizer/b_LU5bsrOM_BmZtNMzegvdNoPNE=/600x0/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01154429/Rugbier-golpeado-1920.jpg" data-url="http://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/%23QU6XDTECU5EDVI4HBTME4PLIOQ" height="422.32142857142856" id="QU6XDTECU5EDVI4HBTME4PLIOQ" src="https://www.infobae.com/new-resizer/b_LU5bsrOM_BmZtNMzegvdNoPNE=/600x0/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01154429/Rugbier-golpeado-1920.jpg" width="750"></img></p></div> <figcaption class=""><span>Jonathan Castellari tiene 25 años y fue golpeado por una patota de 8 hombres</span> </figcaption></figure></div> <div> <p> Eran casi las 6:30 de la mañana. Jonathan Castellari, de 25 años, volvía de bailar junto a Sebastián, su amigo. Les pareció una buena idea detenerse en el Mc Donald's de Avenida Córdoba al 3100 con el objetivo de desayunar y continuar el viaje hasta sus hogares. Mientras esperaban la comida, un grupo de 8 chicos de entre 20 y 25 años ingresó al local con el mismo objetivo, aunque adoptaron otro plan: mirarlos fijamente, reírse de ellos y hacer chistes sobre la sexualidad de ambos.</p> </div> <div> <p> Sebastián relató a<strong> Infobae:</strong> "Estábamos esperando nuestro pedido, haciéndonos chistes, riéndonos de lo sucedido durante la noche. Hablábamos entre nosotros. En ese momento entró un grupo de 8 chicos, de contextura grande, y notamos que estaban alcoholizados. Nos miraban, hacían chistes, se reían de nosotros. Fue ahí cuando decidimos salir con Jonathan a fumar un cigarrillo y esperar que se fueran. <strong>Él salió primero y vi que uno de estos pibes lo abrazó y se lo llevó. Instantáneamente se metieron los demás a pegarle. Le pegaron mucho.</strong> Quise pararlos y no pude. Ligué yo también, pero nada en comparación a lo que sufrió Jonathan. Cuando lo soltaron lo agarré como pude y justo una enfermera del Sanatorio Güemes (está a dos cuadras del local) estaba tomando un café y le dio los primeros auxilios".</p> </div> <div> <figure><div> <p><img alt="" data-original="https://www.infobae.com/new-resizer/PUJQSwJZOtaetM7tXKqic4Ib1Wg=/600x0/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01161934/Jonathan-Castellani-SF-2.jpg" data-url="http://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/%23NH7MLFDU4JH4VOSMUUN6JPRYUQ" height="937.7289377289377" id="NH7MLFDU4JH4VOSMUUN6JPRYUQ" src="https://www.infobae.com/new-resizer/PUJQSwJZOtaetM7tXKqic4Ib1Wg=/600x0/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01161934/Jonathan-Castellani-SF-2.jpg" width="750"></img></p></div> <figcaption class=""><span></span> </figcaption></figure></div> <div> <p> "Fuimos a verlo recién, no paraba de llorar y de decirnos que le pegaron por puto", dijo a <strong>Infobae</strong> María Rachid, titular del Instituto contra la Discriminación de la Defensoría del Pueblo CABA. "Lamentablemente su situación es delicada. Recién nos informaron que lo van a intervenir quirúrgicamente porque <strong>podría perder un ojo</strong>".</p> </div> <div> <p> Como Jonathan no conoce a los agresores, desde la Defensoría y la Federación LGBT se comunicaron con autoridades del Ministerio de Seguridad para que soliciten las cámaras de seguridad del Mc Donald's, del sanatorio Güemes y de otros negocios de la cuadra para poder identificarlos.</p> </div> <div> <figure><div> <p><img alt="" data-original="https://www.infobae.com/new-resizer/yS5kphJxw_CBn1mycqbcrMjoNmQ=/600x0/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01163101/JonathanGay2.jpg" data-url="http://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/%23O7QMD7FTTNCIJOVETW7KYJVVDA" height="422.32142857142856" id="O7QMD7FTTNCIJOVETW7KYJVVDA" src="https://www.infobae.com/new-resizer/yS5kphJxw_CBn1mycqbcrMjoNmQ=/600x0/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01163101/JonathanGay2.jpg" width="750"></img></p></div> <figcaption class=""><span></span> </figcaption></figure></div> <div> <p> Gastón Llopart, abogado de Sebastián, le detalló a <strong>Infobae</strong> que Jonathan está "próximo a recibir una intervención quirúrgica, ya que<strong> tuvo fractura en el hueso del pómulo derecho de su rostro. Sebastián llamó al 911 dos veces y no fueron.</strong> Me contaron que los agresores los siguieron hasta el sanatorio mientras los insultaban: la gente de seguridad tuvo que echarlos".</p> </div> <div> <p> Llopart agregó que la patota, <strong>mientras lo golpeaban, le gritaba: "Te vamos a matar por puto"</strong>. La familia de Jonathan está en el sanatorio a la espera de la intervención quirúrgica. Llopart dijo que "harán la denuncia el lunes por la mañana, cuando existan mayores precisiones de lo ocurrido".</p> </div> <div> <figure><div> <p><img alt="" data-original="https://www.infobae.com/new-resizer/cFidtpanVMHP25zNoWF78I4qjMA=/600x0/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01161927/Jonathan-Castellani-1920.jpg" data-url="http://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/%237BCY2NEI6ZADBA3TRJGQC6R3BU" height="422.32142857142856" id="7BCY2NEI6ZADBA3TRJGQC6R3BU" src="https://www.infobae.com/new-resizer/cFidtpanVMHP25zNoWF78I4qjMA=/600x0/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01161927/Jonathan-Castellani-1920.jpg" width="750"></img></p></div> <figcaption class=""><span></span> </figcaption></figure></div> <div> <p> Jonathan y Sebastián forman parte de Ciervos Pampas Rugby Club, un equipo que nació hace cinco años como el primer equipo de la Argentina por la diversidad sexual. Se trata de un combinado que no está integrado en un 100% por varones gays, pero en el que estos encuentran un lugar en el cual expresar libremente su orientación sexual, <strong>sin miedo a los prejuicios o a la discriminación.</strong> El club emitió un comunicado en su cuenta de Facebook, relatando los hechos y solidarizándose con Jonathan.</p> </div> </div> </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/infobae/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/infobae/source.html
new file mode 100644
index 000000000..8d6832e6f
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/infobae/source.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html> <html itemscope itemtype="http://schema.org/ItemList" class="story"><head> <link rel="shortcut icon" href="/pb/resources/favicon.ico" type="image/x-icon"/> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta charset="UTF-8"/> <meta id="viewport" name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes, minimum-scale=0.5, maximum-scale=2.0"/> <meta property="keywords" content="Violencia, Homofobia, Agresión homosexual,"> <meta itemprop="description" name="description" value="Jonathan Castellari fue salvajemente golpeado en un local de comidas rápidas, mientras esperaba el desayuno junto a un amigo. Podría perder un ojo "/> <meta name="news_keywords" content="Violencia, Homofobia, Agresión homosexual,"/> <meta name="twitter:site" value="@infobae"/> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:creator" content="@infobae"> <meta property="og:description" content="Jonathan Castellari fue salvajemente golpeado en un local de comidas rápidas, mientras esperaba el desayuno junto a un amigo. Podría perder un ojo "/> <meta name="twitter:description" content="Jonathan Castellari fue salvajemente golpeado en un local de comidas rápidas, mientras esperaba el desayuno junto a un amigo. Podría perder un ojo "/> <meta property="og:type" content="article"/> <meta property="og:site_name" content="Infobae"/> <meta property="og:locale" content="es_LA"/> <meta name="robots" content="index, follow"/> <meta name="distribution" content="global"/> <meta name="rating" content="general"/> <meta name="language" content="es_ES"/> <meta itemprop="image" property="og:image" content="https://www.infobae.com/new-resizer/shi8E0F5ldd8a7vtvFaJomRURqU=/1200x0/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01154429/Rugbier-golpeado-1920.jpg"/> <meta name="twitter:image" content="https://www.infobae.com/new-resizer/shi8E0F5ldd8a7vtvFaJomRURqU=/1200x0/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01154429/Rugbier-golpeado-1920.jpg"/> <meta property="og:title" content="Una patota de varones atacó a un rugbier gay: &#x22;Te vamos a matar por puto&#x22;"/> <meta name="twitter:title" content="Una patota de varones atacó a un rugbier gay: &#x22;Te vamos a matar por puto&#x22;"/> <meta property="article:publisher" content="https://www.facebook.com/infobae"> <meta property="fb:app_id" content="303536999846097"/> <meta property="fb:pages" content="34839376970"/> <meta property="fb:pages" content="436205896728888"/> <meta property="fb:pages" content="142361755806396"/> <meta property="og:url" content="https://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/"/> <link rel="canonical" href="https://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/"/> <link rel="amphtml" href="https://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/?outputType=amp-type"/> <title>Una patota de varones atacó a un rugbier gay: "Te vamos a matar por puto" - Infobae</title> <meta property="article:tag" content="Homofobia, violencia de género"> <meta property="article:section" content="Sociedad"> <meta name="dfpPageType" content="nota"/> <meta name="fb:pages" content="34839376970"/> <meta name="external" content="true"/> <link href="/pb/gr/c/default/rxO4LI1ihN8KCq/css/da39a3ee5e.css?_=2f025" rel="stylesheet"/> <link href="https://static.infobae.com/tools/elecciones-2017-v2.css" rel="stylesheet"/> <link href="/pb/gr/c/default/rxO4LI1ihN8KCq/css/934059ed2a.css?_=2f025" rel="stylesheet"/> <link href="/pb/resources/assets/fontawesome/latest/css/font-awesome.min.css" rel="stylesheet"/> <link href="/pb/gr/p/default/rxO4LI1ihN8KCq/style.css?_=c91be" rel="stylesheet"/><script src="/pb/resources/scripts/jquery/jquery-2.2.4.min.js"></script> <script>var isMobile={Android:function(){return navigator.userAgent.match(/Android/i)?!0:!1},AndroidOld:function(){return navigator.userAgent.match(/Android 2.3.3/i)?!0:!1},AndroidTablet:function(){return navigator.userAgent.match(/Android/i)&&!navigator.userAgent.match(/Mobile/i)?!0:!1},Kindle:function(){return navigator.userAgent.match(/Kindle/i)?!0:!1},KindleFire:function(){return navigator.userAgent.match(/KFOT/i)?!0:!1},Silk:function(){return navigator.userAgent.match(/Silk/i)?!0:!1},BlackBerry:function(){return navigator.userAgent.match(/BlackBerry/i)?
+!0:!1},iOS:function(){return navigator.userAgent.match(/iPhone|iPad|iPod/i)?!0:!1},iPhone:function(){return navigator.userAgent.match(/iPhone|iPod/i)?!0:!1},iPad:function(){return navigator.userAgent.match(/iPad/i)?!0:!1},Windows:function(){return navigator.userAgent.match(/IEMobile/i)?!0:!1},FirefoxOS:function(){return navigator.userAgent.match(/Mozilla/i)&&navigator.userAgent.match(/Mobile/i)?!0:!1},Retina:function(){return window.retina||1<window.devicePixelRatio?!0:!1},any:function(){return isMobile.Android()||
+isMobile.Kindle()||isMobile.KindleFire()||isMobile.Silk()||isMobile.BlackBerry()||isMobile.iOS()||isMobile.Windows()||isMobile.FirefoxOS()},all:function(){return navigator.userAgent},tablet:function(){return isMobile.AndroidTablet()||isMobile.iPad()||isMobile.Kindle()||isMobile.KindleFire()||isMobile.Silk()}},mobile_browser=isMobile.any()?1:0,iphone_browser=isMobile.iPhone()?1:0,ipad_browser=isMobile.iPad()?1:0,android_browser=isMobile.Android()?1:0,android233_browser=isMobile.AndroidOld()?1:0,kindle_browser=
+isMobile.Kindle()?1:0,retina_browser=isMobile.Retina()?1:0,mobile_tablet=isMobile.tablet()?1:0;</script><script>(function(a,e,f,g,b,c,d){a.GoogleAnalyticsObject=b;a[b]=a[b]||function(){(a[b].q=a[b].q||[]).push(arguments)};a[b].l=1*new Date;c=e.createElement(f);d=e.getElementsByTagName(f)[0];c.async=0;c.src=g;d.parentNode.insertBefore(c,d)})(window,document,"script","//www.google-analytics.com/analytics.js","ga");ga("create","UA-759511-1","auto");ga("send","pageview");</script> <script>(function(){function f(a){b.BOOMR_onload=a&&a.timeStamp||(new Date).getTime()}if(!window.BOOMR||!window.BOOMR.version){var d,c,e,a=document.createElement("iframe"),b=window;b.addEventListener?b.addEventListener("load",f,!1):b.attachEvent&&b.attachEvent("onload",f);a.src="javascript:void(0)";a.title="";a.role="presentation";(a.frameElement||a).style.cssText="width:0;height:0;border:0;display:none;";e=document.getElementsByTagName("script")[0];e.parentNode.insertBefore(a,e);try{c=a.contentWindow.document}catch(g){d=
+document.domain,a.src="javascript:var d\x3ddocument.open();d.domain\x3d'"+d+"';void(0);",c=a.contentWindow.document}c.open()._l=function(){var a=this.createElement("script");d&&(this.domain=d);a.id="boomr-if-as";a.src="https://c.go-mpulse.net/boomerang/VSGA2-YTLVV-VY5L5-HB56H-W3YTX";BOOMR_lstart=(new Date).getTime();this.body.appendChild(a)};c.write('\x3cbody onload\x3d"document._l();"\x3e');c.close()}})();</script> <script>var _comscore=_comscore||[];_comscore.push({c1:"2",c2:"8030908"});(function(){var a=document.createElement("script"),b=document.getElementsByTagName("script")[0];a.async=!0;a.src=("https:"==document.location.protocol?"https://sb":"http://b")+".scorecardresearch.com/beacon.js";b.parentNode.insertBefore(a,b)})();</script> <noscript> <img src="http://b.scorecardresearch.com/p?c1=2&c2=8030908&cv=2.0&cj=1"/> </noscript> <script>var _sf_startpt=(new Date).getTime();</script> <script>var limit="10:00",parselimit=limit.split(":"),parselimit=60*parselimit[0]+1*parselimit[1];localStorage.setItem("preventAutoRefresh",!1);
+function beginrefresh(){var a=!0;"true"==localStorage.getItem("preventAutoRefresh")&&(a=!1);if(1==parselimit&&a){for(var c=$(".jwplayer"),b=0;b<c.length;b++)if(playerID=$(c).eq(b).attr("id"),playerStat=window.jwplayer(playerID).getState(),"playing"==playerStat||"paused"==playerStat){a=!1;break}a?window.location.reload():(parselimit=limit.split(":"),parselimit=60*parselimit[0]+1*parselimit[1],setTimeout("beginrefresh()",1E3))}else a&&(--parselimit,setTimeout("beginrefresh()",1E3))}
+window.addEventListener?window.addEventListener("load",beginrefresh,!1):window.attachEvent&&window.attachEvent("load",beginrefresh);var handleAutoRefresh=function(a){"stopAutoRefresh"==a.type?localStorage.setItem("preventAutoRefresh",!0):(localStorage.setItem("preventAutoRefresh",!1),beginrefresh())};$(window).on("stopAutoRefresh",handleAutoRefresh);$(window).on("restartAutoRefresh",handleAutoRefresh);</script> <script>var dfpAdHelper={adSlots:[],pendingSlots:{},cmd:[],appendAd:function(a,b,c,d){dfpAdHelper.renderedAdSlots=dfpAdHelper.renderedAdSlots||{};dfpAdHelper.renderedAdSlots[a]||(dfpAdHelper.adSlots.push({slotName:a,fullAdSlot:b,dimensions:c,slotType:d}),dfpAdHelper.renderedAdSlots[a]=!0)},runAds:function(){var a=document.createElement("script");a.async=!0;a.src="https://www.googletagservices.com/tag/js/gpt.js";var b=document.getElementsByTagName("script")[0];b.parentNode.insertBefore(a,b);a=document.createElement("script");
+a.async=!0;a.src="http://www.infobae.com/resources/scripts/infobae-dfp-js-libraries/dfpHelper.v1.js";b=document.getElementsByTagName("script")[0];b.parentNode.insertBefore(a,b);dfpAdHelper.cmd.push({event:"runAds"});dfpAdHelper.run&&dfpAdHelper.run()}};</script> <script src="/pb/gr/c/default/rxO4LI1ihN8KCq/load_immediately/230c792bb8.js?_=319d2"></script>
+ <script>var w=window;if(w.performance||w.mozPerformance||w.msPerformance||w.webkitPerformance){var d=document;AKSB=w.AKSB||{},AKSB.q=AKSB.q||[],AKSB.mark=AKSB.mark||function(e,_){AKSB.q.push(["mark",e,_||(new Date).getTime()])},AKSB.measure=AKSB.measure||function(e,_,t){AKSB.q.push(["measure",e,_,t||(new Date).getTime()])},AKSB.done=AKSB.done||function(e){AKSB.q.push(["done",e])},AKSB.mark("firstbyte",(new Date).getTime()),AKSB.prof={custid:"619111",ustr:"",originlat:"0",clientrtt:"15",ghostip:"88.221.89.182",ipv6:false,pct:"10",clientip:"109.255.39.253",requestid:"942cffa",region:"24021",protocol:"",blver:13,akM:"g",akN:"ae",akTT:"O",akTX:"1",akTI:"942cffa",ai:"403159",ra:"false",pmgn:"",pmgi:"",pmp:"",qc:""},function(e){var _=d.createElement("script");_.async="async",_.src=e;var t=d.getElementsByTagName("script"),t=t[t.length-1];t.parentNode.insertBefore(_,t)}(("https:"===d.location.protocol?"https:":"http:")+"//ds-aksb-a.akamaihd.net/aksb.min.js")}</script>
+ </head> <body> <script>var pb_global={pageName:"infobae-article",pageId:"rxO4LI1ihN8KCq",contextPath:"/pb",isAdmin:!1,layoutEngineName:"",environment:"prod",resourceToken:"",dfpVideoPath:"infobae/sociedad/nota",videoAdOverride:""};</script> <div id="fb-root"></div> <style type="text/css">.jw-media>video.sas-video{background-color:transparent !important}</style> <div id="pb-root" class=""><section id="top" class=""> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-global-header-nav-dfp" id="fXZA622EOu6IBq"> <div id="siteheader" class="headernav fixed skinny slimline navOnTop"> <div class="row-two" style="background-color: #FFFFFF"> <div class="top-banner-wrapper"> <div class="wrapper clearfix pb-feature pb-layout-item pb-f-ads-dfp" id=""> <div id="top-banner-970x80" class="dfp-ad-hidden pb-ad-container pb-ad pb-ad-prod ad-970X60" data-slot-name="top-banner-970x80" data-mobile-display="true" data-desktop-display="true"> </div> <div class="dfp-ad-hidden border-bottom-off"></div> <script>window.dfpAdHelper.appendAd("top-banner-970x80","/1058609/infobae/sociedad/nota/top_banner_970x80",[[970,60],[970,80],[320,50]],"");</script> </div> </div> <div class="nav-items-wrapper"> <div class="left-burger-logo"> <span class="icon-burger"></span> <span class="burger-text" style="color: #000000;"></span> <a href="/?noredirect"><img class="scroll-logo nav-hp-link" src="https://www.infobae.com/new-resizer/cftaRoICqtw9YTIGBmJn0ysCM4A=/600x0/filters:quality(100)/s3.amazonaws.com/wapopartners.com/infobae-wp/wp-content/uploads/2016/03/29190548/infobae.png" alt="Infobae"/></a> </div> <div class="center-nav"> <ul class="top-nav-list hidden-sm hidden-xs"> <a href="https://www.infobae.com/ultimas-noticias/"><li class="top-nav-list-item first">Últimas Noticias</li></a> <a href="https://www.infobae.com/politica/"><li class="top-nav-list-item">Política</li></a> <a href="https://www.infobae.com/sociedad/"><li class="top-nav-list-item">Sociedad</li></a> <a href="https://www.infobae.com/deportes/"><li class="top-nav-list-item">Deportes</li></a> <a href="https://www.infobae.com/tecno/"><li class="top-nav-list-item">Tecno</li></a> <a href="https://www.infobae.com/economia/"><li class="top-nav-list-item">Economía</li></a> <a href="https://www.infobae.com/tendencias/"><li class="top-nav-list-item">Tendencias</li></a> <a href="https://www.infobae.com/la-vidriera-de-infobae/"><li class="top-nav-list-item">Vidriera</li></a> <a href="https://www.infobae.com/salud/"><li class="top-nav-list-item">Salud</li></a> <a href="http://www.infobae.com/series-peliculas/"><li class="top-nav-list-item">Series</li></a> <a href="https://www.infobae.com/autos/"><li class="top-nav-list-item">Autos</li></a> <a href="https://www.infobae.com/turismo/"><li class="top-nav-list-item">Turismo</li></a> <a href="https://www.infobae.com/cultura/"><li class="top-nav-list-item">Cultura</li></a> <a href="https://www.infobae.com/grandes-libros"><li class="top-nav-list-item">Grandes Libros</li></a> <a href="https://www.infobae.com/mix5411"><li class="top-nav-list-item">Mix5411</li></a> <a href="https://www.infobae.com/tests/"><li class="top-nav-list-item">Tests y Trivias</li></a> <a href="https://www.infobae.com/horoscopo"><li class="top-nav-list-item last">Horóscopo</li></a> </ul> </div> <div class="search-container "> <form class="search" action="/search/" method="GET" onsubmit="javascript:this.action+=this.q.value.replace(/ /g,'+')" style="background-color: #FFFFFF"> <input type="submit" class="submit"/> <button class="button search-icon icon-loupe" style="background-color: #FFFFFF"></button> <input type="text-field" class="text-field" id="q" name="q"/> </form> </div> </div> </div> <div id="drawer"> <div id="slider-menu"> <div id="slider-menu-scroll"> <ul class="sections hover-selected" id="slider-menu-nav-list"> <li class="main-nav main-nav-sections main-nav-selected"> <a class="main-nav-item main-nav-item-selected" href="/?noredirect" target="_blank">Argentina</a> </li> <li class="main-nav main-nav-sections"> <a class="main-nav-item" href="/america/" target="_blank">Am&#233;rica</a> </li> <li class="main-nav main-nav-sections"> <a class="main-nav-item" href="/tendencias/" target="_blank">Tendencias</a> </li> <li class="main-nav main-nav-sections"> <a class="main-nav-item" href="/teleshow/" target="_blank">Teleshow</a> </li> <li class="main-nav main-nav-sections"> <a class="main-nav-item" href="/deportes/" target="_blank">Deportes</a> </li> <li class="main-nav main-nav-sections"> <a class="main-nav-item" href="/gente/" target="_blank">Revista Gente</a> </li> <li class="main-nav main-nav-sections"> <a class="main-nav-item" href="/parati/" target="_blank">Revista Para Ti</a> </li> <li class="main-nav-border"></li> <li id="mainnav-0" class="main-nav" data-subnav="0"> <a class="main-nav-item" href="https://www.infobae.com/ultimas-noticias/">Últimas Noticias</a> </li> <li id="mainnav-1" class="main-nav" data-subnav="1"> <a class="main-nav-item" href="https://www.infobae.com/politica/">Política</a> </li> <li id="mainnav-2" class="main-nav" data-subnav="2"> <a class="main-nav-item" href="https://www.infobae.com/sociedad/">Sociedad</a> </li> <li id="mainnav-3" class="main-nav" data-subnav="3"> <a class="main-nav-item" href="https://www.infobae.com/deportes/">Deportes</a> </li> <li id="mainnav-4" class="main-nav" data-subnav="4"> <a class="main-nav-item" href="https://www.infobae.com/tecno/">Tecno</a> </li> <li id="mainnav-5" class="main-nav" data-subnav="5"> <a class="main-nav-item" href="https://www.infobae.com/economia/">Economía</a> <i class="fa fa-angle-right main-nav-angle"></i> </li> <li id="mainnav-6" class="main-nav" data-subnav="6"> <a class="main-nav-item" href="https://www.infobae.com/tendencias/">Tendencias</a> <i class="fa fa-angle-right main-nav-angle"></i> </li> <li id="mainnav-7" class="main-nav" data-subnav="7"> <a class="main-nav-item" href="https://www.infobae.com/la-vidriera-de-infobae/">Vidriera</a> </li> <li id="mainnav-8" class="main-nav" data-subnav="8"> <a class="main-nav-item" href="https://www.infobae.com/salud/">Salud</a> <i class="fa fa-angle-right main-nav-angle"></i> </li> <li id="mainnav-9" class="main-nav" data-subnav="9"> <a class="main-nav-item" href="http://www.infobae.com/series-peliculas/">Series</a> </li> <li id="mainnav-10" class="main-nav" data-subnav="10"> <a class="main-nav-item" href="https://www.infobae.com/autos/">Autos</a> </li> <li id="mainnav-11" class="main-nav" data-subnav="11"> <a class="main-nav-item" href="https://www.infobae.com/turismo/">Turismo</a> </li> <li id="mainnav-12" class="main-nav" data-subnav="12"> <a class="main-nav-item" href="https://www.infobae.com/cultura/">Cultura</a> </li> <li id="mainnav-13" class="main-nav" data-subnav="13"> <a class="main-nav-item" href="https://www.infobae.com/grandes-libros">Grandes Libros</a> </li> <li id="mainnav-14" class="main-nav" data-subnav="14"> <a class="main-nav-item" href="https://www.infobae.com/mix5411">Mix5411</a> </li> <li id="mainnav-15" class="main-nav" data-subnav="15"> <a class="main-nav-item" href="https://www.infobae.com/tests/">Tests y Trivias</a> </li> <li id="mainnav-16" class="main-nav" data-subnav="16"> <a class="main-nav-item" href="https://www.infobae.com/horoscopo">Horóscopo</a> </li> </ul> </div> </div> <div id="arrow-5" class="sub-nav-arrow"></div> <ul id="subnav-5" class="sub-nav hover-selected"> <li class="sub-nav-item"> <a href="https://www.infobae.com/economia/finanzas-y-negocios">Finanzas y Negocios</a> </li> <li class="sub-nav-item"> <a href="https://www.infobae.com/economia/real-estate/">Real Estate</a> </li> <li class="sub-nav-item"> <a href="https://www.infobae.com/economia/rse">RSE & Sustentabilidad</a> </li> </ul> <div id="arrow-6" class="sub-nav-arrow"></div> <ul id="subnav-6" class="sub-nav hover-selected"> <li class="sub-nav-item"> <a href="https://www.infobae.com/tendencias/lifestyle/">Lifestyle</a> </li> <li class="sub-nav-item"> <a href="https://www.infobae.com/tendencias/nutriglam/">NutriGlam</a> </li> <li class="sub-nav-item"> <a href="https://www.infobae.com/tendencias/mascotas">Mascotas</a> </li> </ul> <div id="arrow-8" class="sub-nav-arrow"></div> <ul id="subnav-8" class="sub-nav hover-selected"> <li class="sub-nav-item"> <a href="https://www.infobae.com/salud/ciencia/">Ciencia</a> </li> <li class="sub-nav-item"> <a href="https://www.infobae.com/salud/fitness/">Fitness</a> </li> </ul> </div> </div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-global-sharebar" id="fxoRBF1EOu6IBq"> <div id="sharebar_2856" class="sharebar-top-desktop sharebar-wrapper sharebar-top-mobile"> <div class="social-tools-wrapper"> <span class="social-tools-primary"> <div class="social-tools"> <a onclick="ga('.send', 'event', 'Share Bar Click', 'click', 'Facebook'); window.open('https://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fwww.infobae.com%2Fsociedad%2F2017%2F12%2F01%2Funa-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto%2F','share_facebook','width=658,height=354,scrollbars=no');" tabindex=_tbidx_> <div class="facebook tool first"><span class="hideText">Share on Facebook</span><span class="fa fa-facebook-square"></span></div> </a><a onclick="ga('send', 'event', 'Share Bar Click', 'click', 'Twitter'); window.open('https://twitter.com/share?url=http%3A%2F%2Fwww.infobae.com%2Fsociedad%2F2017%2F12%2F01%2Funa-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto%2F&text=Una+patota+de+varones+atac%C3%B3+a+un+rugbier+gay%3A+%22Te+vamos+a+matar+por+puto%22','share_twitter','width=550, height=350, scrollbars=no');" tabindex=_tbidx_> <div class="twitter tool"><span class="hideText">Share on Twitter</span><span class="fa fa-twitter"></span></div> </a><a onclick="ga('send', 'event', 'Share Bar Click', 'click', 'email'); window.location.href = 'mailto:?subject=Una%20patota%20de%20varones%20atac%C3%B3%20a%20un%20rugbier%20gay%3A%20%22Te%20vamos%20a%20matar%20por%20puto%22&body=http%3A%2F%2Fwww.infobae.com%2Fsociedad%2F2017%2F12%2F01%2Funa-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto%2F';" tabindex=_tbidx_> <div class="email tool"><span class="hideText">Share via Email</span><span class="fa fa-envelope"></span></div> </a><a onclick="ga('send', 'event', 'Share Bar Click', 'click', 'Whatsapp'); window.location.href = 'whatsapp://send?text=Una%20patota%20de%20varones%20atac%C3%B3%20a%20un%20rugbier%20gay%3A%20%22Te%20vamos%20a%20matar%20por%20puto%22 - http%3A%2F%2Fwww.infobae.com%2Fsociedad%2F2017%2F12%2F01%2Funa-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto%2F';" tabindex=_tbidx_> <div class="whatsapp tool"><span class="hideText">Share on Whatsapp</span><span class="fa fa-whatsapp"></span></div> </a><a onclick="ga('send', 'event', 'Share Bar Click', 'click', 'Telegram'); window.location.href = 'https://telegram.me/share/url?url=http%3A%2F%2Fwww.infobae.com%2Fsociedad%2F2017%2F12%2F01%2Funa-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto%2F';" tabindex=_tbidx_> <div class="telegram tool"><span class="hideText">Share on Telegram</span><span class="fa fa-paper-plane"></span></div> </a><a onclick="ga('send', 'event', 'Share Bar Click', 'click', 'LinkedIn'); window.open('https://www.linkedin.com/shareArticle?mini=true&url=http%3A%2F%2Fwww.infobae.com%2Fsociedad%2F2017%2F12%2F01%2Funa-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto%2F&title=Una+patota+de+varones+atac%C3%B3+a+un+rugbier+gay%3A+%22Te+vamos+a+matar+por+puto%22','share_linkedin','width=830,height=460,scrollbars=no');" tabindex=_tbidx_> <div class="linkedin tool"><span class="hideText">Share on LinkedIn</span><span class="fa fa-linkedin"></span></div> </a><a onclick="ga('send', 'event', 'Share Bar Click', 'click', 'Google+'); window.open('https://plus.google.com/share?url=http%3A%2F%2Fwww.infobae.com%2Fsociedad%2F2017%2F12%2F01%2Funa-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto%2F','share_google-plus','width=832,height=472,scrollbars=no');" tabindex=_tbidx_> <div class="google-plus tool"><span class="hideText">Share on Google Plus</span><span class="fa fa-google-plus"></span></div> </a><a onclick="ga('send', 'event', 'Share Bar Click', 'click', 'Pinterest'); window.open('//pinterest.com/pin/create/button/?url=%2Fsociedad%2F2017%2F12%2F01%2Funa-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto%2F&media=https://s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01154429/Rugbier-golpeado-1920.jpg&description=Una+patota+de+varones+atac%C3%B3+a+un+rugbier+gay%3A+%22Te+vamos+a+matar+por+puto%22','share_linkedin','width=550,height=450,scrollbars=no');" tabindex=_tbidx_> <div class="pinterest tool"><span class="hideText">Share on Pinterest</span><span class="fa fa-pinterest"></span></div> </a><a class="sms-share-device unprocessed" onclick="ga('send', 'event', 'Share Bar Click', 'click', 'SMS'); window.location.href = 'sms://&body=Una%20patota%20de%20varones%20atac%C3%B3%20a%20un%20rugbier%20gay%3A%20%22Te%20vamos%20a%20matar%20por%20puto%22%20-%20http%3A%2F%2Fwww.infobae.com%2Fsociedad%2F2017%2F12%2F01%2Funa-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto%2F%3Ftid=ss_sms'; return false;" tabindex=_tbidx_> <div class="sms tool"><span class="hideText">Share on SMS</span><span class="fa fa-commenting"></span></div> </a></div> </span> </div> </div> <div class="clear"></div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-global-breaking-alert" id="f0EWJzVEOu6IBq"> <div id="breaking-alert-wrapper" data-render-bar="true" data-href="/pb/api/v2/render/feature?name=homepage-breaking-news&uri=/homepage/&loadNews=true"> </div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-ads-dfp" id="fG3jHV1EOu6IBq"> <div id="megalateral-250x600" class="dfp-ad-hidden pb-ad-container pb-ad pb-ad-prod megalateral ad-250X600" data-slot-name="megalateral-250x600" data-mobile-display="true" data-desktop-display="true"> </div> <div class="dfp-ad-hidden border-bottom-none"></div> <script>window.dfpAdHelper.appendAd("megalateral-250x600","/1058609/infobae/sociedad/nota/megalateral_250x600",[250,600],"megalateral");</script> </div> <div class="pb-container"> </div></section> <section id="main" class="container"> <div class="pb-container"> <div class="wrapper clearfix col-lg-12 pb-feature pb-layout-item pb-f-homepage-masthead-with-dfp col-md-12 col-sm-12 col-xs-12" id="fqwId91EOu6IBq"> <div id="mastnav-wrapper" class="row mastnav hidden-xs"> <div id="mastnav-container"> <div class="masthead headerbox"> <div class="home-masthead-image"> <div class="masthead-ad-wrapper-left"> <div class="wrapper clearfix pb-feature pb-layout-item pb-f-ads-dfp" id=""> <div id="header-izq-180x70" class="dfp-ad-hidden pb-ad-container pb-ad pb-ad-prod ad-180X70 hide-mobile" data-slot-name="header-izq-180x70" data-mobile-display="false" data-desktop-display="true"> </div> <div class="dfp-ad-hidden border-bottom-off hide-mobile"></div> <script>window.dfpAdHelper.appendAd("header-izq-180x70","/1058609/infobae/sociedad/nota/header_izq_180x70",[180,70],"");</script> </div> </div> <a href="/?noredirect" class="logo hidden-xs" title="Infobae"> <img class="wplogo" src="https://www.infobae.com/new-resizer/cftaRoICqtw9YTIGBmJn0ysCM4A=/600x0/filters:quality(100)/s3.amazonaws.com/wapopartners.com/infobae-wp/wp-content/uploads/2016/03/29190548/infobae.png" alt="Infobae"/> </a> <div class="masthead-ad-wrapper-right"> <div class="wrapper clearfix pb-feature pb-layout-item pb-f-ads-dfp" id=""> <div id="header-der-180x70" class="dfp-ad-hidden pb-ad-container pb-ad pb-ad-prod ad-180X70 hide-mobile" data-slot-name="header-der-180x70" data-mobile-display="false" data-desktop-display="true"> </div> <div class="dfp-ad-hidden border-bottom-off hide-mobile"></div> <script>window.dfpAdHelper.appendAd("header-der-180x70","/1058609/infobae/sociedad/nota/header_der_180x70",[180,70],"");</script> </div> </div> </div> <div id="edition-toggle" class="logo-sub-nav"> <div class="day-container pr15"> <div class="full-date"> Domingo 3 de Diciembre de 2017 </div> </div> <div class="toggle-container"> <ul class="button-group even-2 edition-toggle"> <li><a href="/america/" target="_blank" id="edition-one" class="tiny mb0">América</a></li> <li><a href="/teleshow/" target="_blank" id="edition-two" class="tiny mb0">Teleshow</a></li> <li><a href="/tendencias/" target="_blank" id="edition-three" class="tiny mb0">Tendencias</a></li> <li><a href="/mix5411/" target="_blank" id="edition-four" class="tiny mb0">Mix5411</a></li> <li><a href="/grandes-libros/" target="_blank" id="edition-five" class="tiny mb0">Grandes Libros</a></li> </ul> </div> </div> </div> </div> </div> <div class="clear"></div> <div class="border-bottom-thick-tight border-bottom- mastnav-separator hidden-xs"></div> </div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-global-hot-topics" id="f06hLD9EOu6IBq"> <div class=" hot-topics hidden-sm hidden-xs border-bottom-tight-hairline no-space border-top-no-space "> <div class="hot-topics-wrapper"> <p> <a href=" http://www.infobae.com/ultimas-noticias/">Últimas Noticias</a> </p> <p> <a href=" https://www.infobae.com/g20/"> G20</a> </p> <p> <a href=" https://www.infobae.com/deportes/mundial-rusia-2018/"> Mundial 2018</a> </p> <p> <a href=" https://www.infobae.com/tag/la-busqueda-del-submarino-ara-san-juan/"> La búsqueda del ARA San Juan</a> </p> <p> <a href=" https://www.infobae.com/politica/2017/11/10/el-gobierno-establecio-cuales-seran-los-feriados-puente-en-2018-y-2019/"> Feriados 2018</a> </p> <p> <a href=" https://www.infobae.com/la-vidriera-de-infobae/"> Vidriera</a> </p> <p> <a href=" https://www.infobae.com/sociedad/personajes/"> Personajes</a> </p> <p> <a href=" https://www.infobae.com/play-tv/"> Play TV</a> </p> <p> <a href=" https://www.infobae.com/tag/fotos-al-100/"> Fotos al 100</a> </p> <p> <a href=" http://www.infobae.com/gente/</a>"> <a href="http://www.infobae.com/gente" target="_blank"><img src="https://s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/10/04135319/logo-gente-chico.png"></a> </p> <p> <a href=""><a href="http://www.infobae.com/parati" target="_blank"><img src="https://s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/10/13163150/parati-chico-quick.png"></a></a> </p> </div> </div> <div class="clearfix clear"></div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-ads-dfp" id="f09RG6kEOu6IBq"> <div id="exp-push-1-970x250" class="dfp-ad-hidden pb-ad-container pb-ad pb-ad-prod expandable ad-970X90 hide-mobile" data-slot-name="exp-push-1-970x250" data-mobile-display="false" data-desktop-display="true"> </div> <div class="dfp-ad-hidden border-bottom-airy hide-mobile"></div> <script>window.dfpAdHelper.appendAd("exp-push-1-970x250","/1058609/infobae/sociedad/nota/exp_push_1_970x250",[[970,90],[970,250]],"expandable");</script> </div> <div class="pb-container"> <div class="wrapper clearfix col-lg-12 pb-feature pb-layout-item pb-f-article-header col-md-12 col-sm-12 col-xs-12" id="fA2Drw1EOu6IBq"> <div class="row"> <header class="article-header hed-first col-sm-12"> <div class="header-label"> <a href="/sociedad/">Sociedad</a> </div> <h1>Una patota de varones atacó a un rugbier gay: "Te vamos a matar por puto"</h1> <span class="subheadline">Jonathan Castellari fue salvajemente golpeado en un local de comidas rápidas, mientras esperaba el desayuno junto a un amigo. Podría perder un ojo </span> </header> </div> </div> <div class="wrapper clearfix col-lg-12 col-md-12 pb-feature pb-layout-item pb-f-article-byline col-sm-12 col-xs-12" id="fZ8gS02EOu6IBq"> <div class="byline col-md-8 col-xs-12 col-print-12"> <div class="clearfix"> <img src="https://www.infobae.com/new-resizer/IL3kQvq3jxh8MdYbOw9b15XuxPc=/0x200/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-authors/mauricio_luna.jpg"/> <div class="byline-author"> Por <a class="author-name" href="/autor/mauricio-luna/" rel="author">Mauricio Luna</a> <span class="byline-date"> 1 de diciembre de 2017 </span> </div> <div class="byline-bio"> [email protected] </div> </div> <div class="clearfix"> <img src="https://www.infobae.com/new-resizer/kDRrc7yzsAnENGeWAxXxNTL7aN4=/0x200/filters:quality(100)/s3.amazonaws.com/arc-authors/infobae/9e4a86e5-0832-4826-8e82-fbe41f1d1be7.jpg"/> <div class="byline-author"> Por <a class="author-name" href="/autor/gisele-sousa-dias/" rel="author">Gisele Sousa Dias</a> <span class="byline-date"> 1 de diciembre de 2017 </span> </div> <div class="byline-bio"> [email protected] </div> </div> </div> </div> <div class="col-md-8 col-sm-12 col-xs-12 pb-layout-item pb-chain pb-c-list-chain" id="cLqIjw1EOu6IBq"> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-article-body" id="f08MimYEOu6IBq"> <div id="article-body" class="article-body article-body-elements"> <div id="article-content"> <div class="row"> <figure class="element element-image col-xs-12"> <div class="single-image"> <div class="shares"> <div class="share-button share"><span class="fa fa-share-square-o"></span></div> <div class="share-button facebook" data-url="http://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/%23QU6XDTECU5EDVI4HBTME4PLIOQ" data-original="https://s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01154429/Rugbier-golpeado-1920.jpg"><span class="fa fa-facebook"></span></div> <a target="_blank" href="https://twitter.com/intent/tweet?text=Una%20patota%20de%20varones%20atacó%20a%20un%20rugbier%20gay:%20&quot;Te%20vamos%20a%20matar%20por%20puto&quot;&amp;url=http://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/%23QU6XDTECU5EDVI4HBTME4PLIOQ" class="share-button twitter"><span class="fa fa-twitter"></span></a> <a target="_blank" href="http://pinterest.com/pin/create/button/?&amp;media=https://s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01154429/Rugbier-golpeado-1920.jpg&amp;description=Una%20patota%20de%20varones%20atacó%20a%20un%20rugbier%20gay:%20&quot;Te%20vamos%20a%20matar%20por%20puto&quot;&amp;url=http://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/%23QU6XDTECU5EDVI4HBTME4PLIOQ" class="share-button pinterest"><span class="fa fa-pinterest"></span></a> <a target="_blank" href="whatsapp://send?text=Una%20patota%20de%20varones%20atacó%20a%20un%20rugbier%20gay:%20&quot;Te%20vamos%20a%20matar%20por%20puto&quot;%20-%20http://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/%23QU6XDTECU5EDVI4HBTME4PLIOQ" class="share-button whatsapp"><span class="fa fa-whatsapp"></span></a> <a target="_blank" href="https://telegram.me/share/url?url=http://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/%23QU6XDTECU5EDVI4HBTME4PLIOQ&amp;text=Una%20patota%20de%20varones%20atacó%20a%20un%20rugbier%20gay:%20&quot;Te%20vamos%20a%20matar%20por%20puto&quot;" class="share-button telegram"><span class="fa fa-paper-plane"></span></a> </div> <img id="QU6XDTECU5EDVI4HBTME4PLIOQ" data-url="http://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/%23QU6XDTECU5EDVI4HBTME4PLIOQ" data-original="https://www.infobae.com/new-resizer/b_LU5bsrOM_BmZtNMzegvdNoPNE=/600x0/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01154429/Rugbier-golpeado-1920.jpg" alt="Jonathan Castellari tiene 25 años y fue golpeado por una patota de 8 hombres" height="422.32142857142856" width="750" class="image-lazy"> </div> <figcaption class=""> <span class="credit">Jonathan Castellari tiene 25 años y fue golpeado por una patota de 8 hombres</span> </figcaption> </figure> </div> <div class="row"> <div class="col-xs-12 col-print-12"> <p class="element element-paragraph"> Eran casi las 6:30 de la mañana. Jonathan Castellari, de 25 años, volvía de bailar junto a Sebastián, su amigo. Les pareció una buena idea detenerse en el Mc Donald's de Avenida Córdoba al 3100 con el objetivo de desayunar y continuar el viaje hasta sus hogares. Mientras esperaban la comida, un grupo de 8 chicos de entre 20 y 25 años ingresó al local con el mismo objetivo, aunque adoptaron otro plan: mirarlos fijamente, reírse de ellos y&nbsp;hacer chistes sobre la sexualidad de ambos.</p> </div> </div> <div class="row"> <div class="col-xs-12 col-print-12"> <p class="element element-paragraph"> Sebastián relató a<strong> Infobae:</strong>&nbsp;"Estábamos esperando nuestro pedido, haciéndonos chistes, riéndonos de lo sucedido durante la noche. Hablábamos entre nosotros. En ese momento entró un grupo de 8 chicos, de contextura grande, y notamos que estaban alcoholizados. Nos miraban, hacían chistes, se reían de nosotros. Fue ahí cuando decidimos salir con Jonathan a fumar un cigarrillo y esperar que se fueran. <strong>Él salió primero y vi que uno de estos pibes lo abrazó y se lo llevó. Instantáneamente se metieron los demás a pegarle. Le pegaron mucho.</strong> Quise pararlos y no pude. Ligué yo también, pero nada en comparación a lo que sufrió Jonathan. Cuando lo soltaron lo agarré como pude y justo una enfermera del Sanatorio Güemes (está a dos cuadras del local) estaba tomando un café y le dio los primeros auxilios".</p> </div> </div> <div class="row"> <figure class="element element-image col-xs-12"> <div class="single-image"> <div class="shares"> <div class="share-button share"><span class="fa fa-share-square-o"></span></div> <div class="share-button facebook" data-url="http://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/%23NH7MLFDU4JH4VOSMUUN6JPRYUQ" data-original="https://s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01161934/Jonathan-Castellani-SF-2.jpg"><span class="fa fa-facebook"></span></div> <a target="_blank" href="https://twitter.com/intent/tweet?text=Una%20patota%20de%20varones%20atacó%20a%20un%20rugbier%20gay:%20&quot;Te%20vamos%20a%20matar%20por%20puto&quot;&amp;url=http://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/%23NH7MLFDU4JH4VOSMUUN6JPRYUQ" class="share-button twitter"><span class="fa fa-twitter"></span></a> <a target="_blank" href="http://pinterest.com/pin/create/button/?&amp;media=https://s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01161934/Jonathan-Castellani-SF-2.jpg&amp;description=Una%20patota%20de%20varones%20atacó%20a%20un%20rugbier%20gay:%20&quot;Te%20vamos%20a%20matar%20por%20puto&quot;&amp;url=http://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/%23NH7MLFDU4JH4VOSMUUN6JPRYUQ" class="share-button pinterest"><span class="fa fa-pinterest"></span></a> <a target="_blank" href="whatsapp://send?text=Una%20patota%20de%20varones%20atacó%20a%20un%20rugbier%20gay:%20&quot;Te%20vamos%20a%20matar%20por%20puto&quot;%20-%20http://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/%23NH7MLFDU4JH4VOSMUUN6JPRYUQ" class="share-button whatsapp"><span class="fa fa-whatsapp"></span></a> <a target="_blank" href="https://telegram.me/share/url?url=http://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/%23NH7MLFDU4JH4VOSMUUN6JPRYUQ&amp;text=Una%20patota%20de%20varones%20atacó%20a%20un%20rugbier%20gay:%20&quot;Te%20vamos%20a%20matar%20por%20puto&quot;" class="share-button telegram"><span class="fa fa-paper-plane"></span></a> </div> <img id="NH7MLFDU4JH4VOSMUUN6JPRYUQ" data-url="http://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/%23NH7MLFDU4JH4VOSMUUN6JPRYUQ" data-original="https://www.infobae.com/new-resizer/PUJQSwJZOtaetM7tXKqic4Ib1Wg=/600x0/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01161934/Jonathan-Castellani-SF-2.jpg" alt="" height="937.7289377289377" width="750" class="image-lazy"> </div> <figcaption class=""> <span class="credit"></span> </figcaption> </figure> </div> <div class="row"> <div class="col-xs-12 col-print-12"> <p class="element element-paragraph"> "Fuimos a verlo recién, no paraba de llorar y de decirnos que le pegaron por puto", dijo a <strong>Infobae</strong> María Rachid, titular del Instituto contra la Discriminación de la Defensoría del Pueblo CABA. "Lamentablemente su situación es delicada. Recién nos informaron que lo van a intervenir quirúrgicamente porque <strong>podría perder un ojo</strong>".</p> </div> </div> <div class="row"> <div class="wrapper clearfix pb-feature pb-layout-item pb-f-ads-dfp" id=""> <div id="inline" class="dfp-ad-hidden pb-ad-container pb-ad pb-ad-prod ad-1X1" data-slot-name="inline" data-mobile-display="true" data-desktop-display="true"> </div> <div class="dfp-ad-hidden border-bottom-"></div> <script>window.dfpAdHelper.appendAd("inline","/1058609/infobae/sociedad/nota/inline",[1,1],"");</script> </div> <div class="col-xs-12 col-print-12"> <p class="element element-paragraph"> Como Jonathan no conoce a los agresores, desde la Defensoría y la Federación LGBT se comunicaron con autoridades del Ministerio de Seguridad para que soliciten las cámaras de seguridad del Mc Donald's, del sanatorio Güemes y de otros negocios de la cuadra para poder identificarlos.</p> </div> </div> <div class="row"> <figure class="element element-image col-xs-12"> <div class="single-image"> <div class="shares"> <div class="share-button share"><span class="fa fa-share-square-o"></span></div> <div class="share-button facebook" data-url="http://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/%23O7QMD7FTTNCIJOVETW7KYJVVDA" data-original="https://s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01163101/JonathanGay2.jpg"><span class="fa fa-facebook"></span></div> <a target="_blank" href="https://twitter.com/intent/tweet?text=Una%20patota%20de%20varones%20atacó%20a%20un%20rugbier%20gay:%20&quot;Te%20vamos%20a%20matar%20por%20puto&quot;&amp;url=http://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/%23O7QMD7FTTNCIJOVETW7KYJVVDA" class="share-button twitter"><span class="fa fa-twitter"></span></a> <a target="_blank" href="http://pinterest.com/pin/create/button/?&amp;media=https://s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01163101/JonathanGay2.jpg&amp;description=Una%20patota%20de%20varones%20atacó%20a%20un%20rugbier%20gay:%20&quot;Te%20vamos%20a%20matar%20por%20puto&quot;&amp;url=http://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/%23O7QMD7FTTNCIJOVETW7KYJVVDA" class="share-button pinterest"><span class="fa fa-pinterest"></span></a> <a target="_blank" href="whatsapp://send?text=Una%20patota%20de%20varones%20atacó%20a%20un%20rugbier%20gay:%20&quot;Te%20vamos%20a%20matar%20por%20puto&quot;%20-%20http://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/%23O7QMD7FTTNCIJOVETW7KYJVVDA" class="share-button whatsapp"><span class="fa fa-whatsapp"></span></a> <a target="_blank" href="https://telegram.me/share/url?url=http://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/%23O7QMD7FTTNCIJOVETW7KYJVVDA&amp;text=Una%20patota%20de%20varones%20atacó%20a%20un%20rugbier%20gay:%20&quot;Te%20vamos%20a%20matar%20por%20puto&quot;" class="share-button telegram"><span class="fa fa-paper-plane"></span></a> </div> <img id="O7QMD7FTTNCIJOVETW7KYJVVDA" data-url="http://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/%23O7QMD7FTTNCIJOVETW7KYJVVDA" data-original="https://www.infobae.com/new-resizer/yS5kphJxw_CBn1mycqbcrMjoNmQ=/600x0/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01163101/JonathanGay2.jpg" alt="" height="422.32142857142856" width="750" class="image-lazy"> </div> <figcaption class=""> <span class="credit"></span> </figcaption> </figure> </div> <div class="row"> <div class="col-xs-12 col-print-12"> <p class="element element-paragraph"> Gastón Llopart, abogado de Sebastián, le detalló a <strong>Infobae</strong> que Jonathan está "próximo a recibir una intervención quirúrgica, ya que<strong> tuvo fractura en el hueso del pómulo derecho de su rostro. Sebastián llamó al 911 dos veces y no fueron.</strong> Me contaron que los agresores los siguieron hasta el sanatorio mientras los insultaban: la gente de seguridad tuvo que echarlos".</p> </div> </div> <div class="row"> <div class="col-xs-12 col-print-12"> <p class="element element-paragraph"> Llopart agregó que la patota, <strong>mientras lo golpeaban, le gritaba: "Te vamos a matar por puto"</strong>. La familia de Jonathan está en el sanatorio a la espera de la intervención quirúrgica. Llopart dijo que "harán la denuncia el lunes por la mañana, cuando existan mayores precisiones de lo ocurrido".</p> </div> </div> <div class="row"> <figure class="element element-image col-xs-12"> <div class="single-image"> <div class="shares"> <div class="share-button share"><span class="fa fa-share-square-o"></span></div> <div class="share-button facebook" data-url="http://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/%237BCY2NEI6ZADBA3TRJGQC6R3BU" data-original="https://s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01161927/Jonathan-Castellani-1920.jpg"><span class="fa fa-facebook"></span></div> <a target="_blank" href="https://twitter.com/intent/tweet?text=Una%20patota%20de%20varones%20atacó%20a%20un%20rugbier%20gay:%20&quot;Te%20vamos%20a%20matar%20por%20puto&quot;&amp;url=http://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/%237BCY2NEI6ZADBA3TRJGQC6R3BU" class="share-button twitter"><span class="fa fa-twitter"></span></a> <a target="_blank" href="http://pinterest.com/pin/create/button/?&amp;media=https://s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01161927/Jonathan-Castellani-1920.jpg&amp;description=Una%20patota%20de%20varones%20atacó%20a%20un%20rugbier%20gay:%20&quot;Te%20vamos%20a%20matar%20por%20puto&quot;&amp;url=http://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/%237BCY2NEI6ZADBA3TRJGQC6R3BU" class="share-button pinterest"><span class="fa fa-pinterest"></span></a> <a target="_blank" href="whatsapp://send?text=Una%20patota%20de%20varones%20atacó%20a%20un%20rugbier%20gay:%20&quot;Te%20vamos%20a%20matar%20por%20puto&quot;%20-%20http://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/%237BCY2NEI6ZADBA3TRJGQC6R3BU" class="share-button whatsapp"><span class="fa fa-whatsapp"></span></a> <a target="_blank" href="https://telegram.me/share/url?url=http://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/%237BCY2NEI6ZADBA3TRJGQC6R3BU&amp;text=Una%20patota%20de%20varones%20atacó%20a%20un%20rugbier%20gay:%20&quot;Te%20vamos%20a%20matar%20por%20puto&quot;" class="share-button telegram"><span class="fa fa-paper-plane"></span></a> </div> <img id="7BCY2NEI6ZADBA3TRJGQC6R3BU" data-url="http://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/%237BCY2NEI6ZADBA3TRJGQC6R3BU" data-original="https://www.infobae.com/new-resizer/cFidtpanVMHP25zNoWF78I4qjMA=/600x0/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01161927/Jonathan-Castellani-1920.jpg" alt="" height="422.32142857142856" width="750" class="image-lazy"> </div> <figcaption class=""> <span class="credit"></span> </figcaption> </figure> </div> <div class="row"> <div class="col-xs-12 col-print-12"> <p class="element element-paragraph"> Jonathan y Sebastián forman parte de Ciervos Pampas Rugby Club, un equipo que nació hace cinco años como el primer equipo de la Argentina por la diversidad sexual. Se trata de un combinado que no está integrado en un 100% por varones gays, pero en el que estos encuentran un lugar en el cual expresar libremente su orientación sexual, <strong>sin miedo a los prejuicios o a la discriminación.</strong> El club emitió un comunicado en su cuenta de Facebook, relatando los hechos y solidarizándose con Jonathan.</p> </div> </div> <div class="row"> <div class="col-xs-12 col-print-12"> <p class="element element-paragraph"> <strong>LEA MÁS:</strong></p> </div> </div> <div class="row"> <div class="col-xs-12 col-print-12"> <p class="element element-paragraph"> <strong><em><a href="https://www.infobae.com/america/deportes/mundial-rusia-2018/2017/12/01/pese-a-la-ley-contra-la-propaganda-homosexual-vigente-rusia-permitira-banderas-gay-en-el-mundial/" target="_blank">Pese a la ley contra la propaganda homosexual vigente, Rusia permitirá banderas gays en el Mundial</a></em></strong></p> </div> </div> </div> </div> <div class="selectionSharer" id="selectionSharerPopover" data-selection="true"> <div id="selectionSharerPopover-inner"> <ul> <li id="popoverTwitter"><a class="action" href="" title="Share this selection on Twitter" target="_blank"><span id="twIcon" class="fa fa-twitter"></span>Tweet</a></li> </ul> </div> <div class="selectionSharerPopover-clip"><span class="selectionSharerPopover-arrow"></span></div> </div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-homepage-story" id="f01GzrMEOu6IBq"> <div class="border-bottom-off"> <div class="no-skin flex-item flex-stack text-align-center equalize-height-target"> <div class="headline small normal-style "> <a href="https://app.infobae.com/" data-pb-field="headlines.basic" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> </a><a href="https://app.infobae.com/" target="_blank">⚡ ¿Probaste <img src="http://www.infobae.com/resizer/?op=resize&amp;url=https://s3.amazonaws.com/wapopartners.com/infobae-wp/wp-content/uploads/2016/03/29190548/infobae.png&amp;mode=crop&amp;h=24&amp;q=75&amp;token=bar" style="height:17px; margin-top:-5px"> en Alta Velocidad en tu smartphone?</a> </div> <div class="blurb normal-style" data-pb-field="description.basic" data-pb-field-type="text" data-pb-placeholder="Write blurb here."><span style="color: #000000; background-color:#FFFC41">Permite ver las noticias en menos de un segundo.</span></div> </div> </div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-article-big-button-share" id="fXpds01EOu6IBq"> <div class="social-tools-wrapper-bottom full"> <ul class="social-tools-bottom inline"> <li data-sharetype="facebook" class="left facebook"> <a href="#" onclick="ga('send', 'event', 'Big Button Share Click', 'click', 'Facebook'); window.open('https://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fwww.infobae.com%2Fsociedad%2F2017%2F12%2F01%2Funa-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto%2F','share_facebook','width=658,height=354,scrollbars=no'); return false;" tabindex="_tbidx_"> <span class="fa fa-facebook-square">&nbsp;</span><span class="longname">Compartir en Facebook</span><span class="shortname">Compartir</span> </a> </li> <li data-sharetype="twitter" class="right twitter"> <a href="#" onclick="ga('send', 'event', 'Big Button Share Click', 'click', 'Twitter'); window.open('https://twitter.com/share?url=http%3A%2F%2Fwww.infobae.com%2Fsociedad%2F2017%2F12%2F01%2Funa-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto%2F&amp;text=Una patota de varones atacó a un rugbier gay: &quot;Te vamos a matar por puto&quot;','share_twitter','width=550, height=350, scrollbars=no'); return false;" tabindex="_tbidx_"> <span class="fa fa-twitter">&nbsp;</span> <span class="longname">Compartir en Twitter</span><span class="shortname">Tweet</span> </a> </li> </ul> <div class="clear"></div> </div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-ads-dfp" id="fza3sq1EOu6IBq"> <div id="middle-1-300x250" class="dfp-ad-hidden pb-ad-container pb-ad pb-ad-prod ad-300X250" data-slot-name="middle-1-300x250" data-mobile-display="true" data-desktop-display="true"> </div> <div class="dfp-ad-hidden border-bottom-none"></div> <script>window.dfpAdHelper.appendAd("middle-1-300x250","/1058609/infobae/sociedad/nota/middle_1_300x250",[[300,250],[300,600]],"");</script> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-global-single-line" id="f0h0bqdEOu6IBq"> <div class="border-bottom-none"></div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-homepage-story" id="f0b7WEoEOu6IBq"> <div class="border-bottom-off"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="label-wrapper text-align-inherit"> <a href="http://www.infobae.com/ultimas-noticias/"> <div style="color:#000000;background-color:#DDDDDD;" class="pb-font-smoothing label label-bar label-with-background class_3119645" data-pb-field="custom.label" data-pb-placeholder="Label">ÚLTIMAS NOTICIAS</div> </a> </div> </div> </div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-global-generic-results-list" id="f0dPEneEOu6IBq"> <div class="result-listing"> <div class="label-text"> <h2 class="header-label"></h2> </div> <div class="generic-results-list-main-wrapper" data-load-more="5175528"> <div class="generic-results-list-item pwa_card" data-load-more="5175528"> <article class="result-item result-teaser result-teaser-normal first-item row"> <header> <div class="row"> <div class="col-sm-8"> <figure> <a href="/america/mundo/2017/12/03/el-impactante-hundimiento-de-un-barco-surcoreano-en-el-mar-amarillo-al-menos-13-muertos/"> <h4 class="">El impactante hundimiento de un barco surcoreano en el Mar Amarillo: al menos 13 muertos</h4> <p><span class="excerpt">El navío, de más de 9 toneladas y con 22 personas a bordo, colisionó con un buque cisterna de más de 300 toneladas cerca de la isla de Yeongheung. Cuatro helicópteros y 14 barcos continúan su búsqueda por dos desaparecidos</span></p> </a> </figure> </div> <div class="col-sm-4"> <a href="/america/mundo/2017/12/03/el-impactante-hundimiento-de-un-barco-surcoreano-en-el-mar-amarillo-al-menos-13-muertos/"> <div class="lazy-wrapper hover-media-overlay"> <img data-original="https://www.infobae.com/new-resizer/cgUxNFQciDOFdUihSd9dgGf6b_Y=/600x400/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/03074750/Barco-pesquero-Corea-del-Sur-2.jpg" alt="" class="image-lazy"> <noscript><img src="https://www.infobae.com/new-resizer/cgUxNFQciDOFdUihSd9dgGf6b_Y=/600x400/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/03074750/Barco-pesquero-Corea-del-Sur-2.jpg" alt=""></noscript> </div> </a> </div> </div> </header> </article> </div> <div class="generic-results-list-item pwa_card" data-load-more="5175528"> <article class="result-item result-teaser result-teaser-normal row"> <header> <div class="row"> <div class="col-sm-8"> <figure> <a href="/politica/2017/12/03/g20-venezuela-y-la-busqueda-del-ara-san-juan-la-agenda-de-marcos-pena-en-su-visita-a-eeuu/"> <h4 class="">G20, Venezuela y la búsqueda del ARA San Juan, la agenda de Marcos Peña en su visita a EEUU</h4> <p><span class="excerpt"></span></p> </a> </figure> </div> <div class="col-sm-4"> <a href="/politica/2017/12/03/g20-venezuela-y-la-busqueda-del-ara-san-juan-la-agenda-de-marcos-pena-en-su-visita-a-eeuu/"> <div class="lazy-wrapper hover-media-overlay"> <img data-original="https://www.infobae.com/new-resizer/w1z7tobCQL3GZ9YhdYCC9UuUbC0=/600x400/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/02193822/Marcos-Pena-con-Ricky-Waddell-1920.jpg" alt="" class="image-lazy"> <noscript><img src="https://www.infobae.com/new-resizer/w1z7tobCQL3GZ9YhdYCC9UuUbC0=/600x400/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/02193822/Marcos-Pena-con-Ricky-Waddell-1920.jpg" alt=""></noscript> </div> </a> </div> </div> </header> </article> </div> <div class="generic-results-list-item pwa_card" data-load-more="5175528"> <article class="result-item result-teaser result-teaser-normal row"> <header> <div class="row"> <div class="col-sm-8"> <figure> <a href="/america/deportes/2017/12/03/el-club-ingles-que-es-sensacion-en-las-redes-sociales-por-su-creatividad-al-anunciar-los-goles-de-su-equipo/"> <h4 class="">El club inglés que es sensación en las redes sociales por su creatividad al anunciar los goles de su equipo</h4> <p><span class="excerpt">El community manager del Bristol City, de la segunda división de Inglaterra, empleó unos llamativos GIF's que se disparan cada vez que sus jugadores convierten</span></p> </a> </figure> </div> <div class="col-sm-4"> <a href="/america/deportes/2017/12/03/el-club-ingles-que-es-sensacion-en-las-redes-sociales-por-su-creatividad-al-anunciar-los-goles-de-su-equipo/"> <div class="lazy-wrapper hover-media-overlay"> <img data-original="https://www.infobae.com/new-resizer/fA7qBMo72SfnZmiZbZ9AiiSHPUY=/600x400/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/03080601/PARTIDA-BRISTOL-CITY-2.jpg" alt="" class="image-lazy"> <noscript><img src="https://www.infobae.com/new-resizer/fA7qBMo72SfnZmiZbZ9AiiSHPUY=/600x400/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/03080601/PARTIDA-BRISTOL-CITY-2.jpg" alt=""></noscript> </div> </a> </div> </div> </header> </article> </div> <div class="generic-results-list-item pwa_card" data-load-more="5175528"> <article class="result-item result-teaser result-teaser-normal row"> <header> <div class="row"> <div class="col-sm-8"> <figure> <a href="/sociedad/2017/12/03/cuanto-dinero-se-necesita-para-armar-el-arbolito-navideno/"> <h4 class="">¿Cuánto dinero se necesita para armar el arbolito navideño?</h4> <p><span class="excerpt">Decorar el hogar a la espera de las fiestas es parte de la tradición navideña. Los precios exponen una diferencia notable en relación a Chile y Estados Unidos </span></p> </a> </figure> </div> <div class="col-sm-4"> <a href="/sociedad/2017/12/03/cuanto-dinero-se-necesita-para-armar-el-arbolito-navideno/"> <div class="lazy-wrapper hover-media-overlay"> <img data-original="https://www.infobae.com/new-resizer/C-feFCQoaidN8MY0aVPIDhss3hw=/600x400/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/02193532/Navidad2.jpg" alt="" class="image-lazy"> <noscript><img src="https://www.infobae.com/new-resizer/C-feFCQoaidN8MY0aVPIDhss3hw=/600x400/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/02193532/Navidad2.jpg" alt=""></noscript> </div> </a> </div> </div> </header> </article> </div> <div class="generic-results-list-item pwa_card" data-load-more="5175528"> <article class="result-item result-teaser result-teaser-normal row"> <header> <div class="row"> <div class="col-sm-8"> <figure> <a href="/parati/estar-mejor/2017/12/03/la-tecnica-del-10-10-10-el-original-metodo-para-tomar-decisiones/"> <h4 class="">La técnica del 10-10-10: el original método para tomar decisiones</h4> <p><span class="excerpt">¿Horas, minutos... años? Elegir no es fácil: hay que pensar bien, elaborar alternativas e imaginar consecuencias, a corto y largo plazo. Pero, ¿cómo podemos saber y evaluar ese alcance? La norteamericana Suzy Welch, especialista en finanzas, propuso un técnica para encarar determinaciones, y fue un éxito instantáneo. </span></p> </a> </figure> </div> <div class="col-sm-4"> <a href="/parati/estar-mejor/2017/12/03/la-tecnica-del-10-10-10-el-original-metodo-para-tomar-decisiones/"> <div class="lazy-wrapper hover-media-overlay"> <img data-original="https://www.infobae.com/new-resizer/eyA2ZbzBOFgKK0YS7VjlKkV1BTc=/600x400/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/11/27174708/PARATI-IDEAS-APERTURA.jpg" alt="" class="image-lazy"> <noscript><img src="https://www.infobae.com/new-resizer/eyA2ZbzBOFgKK0YS7VjlKkV1BTc=/600x400/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/11/27174708/PARATI-IDEAS-APERTURA.jpg" alt=""></noscript> </div> </a> </div> </div> </header> </article> </div> <div class="generic-results-list-item pwa_card" data-load-more="5175528"> <article class="result-item result-teaser result-teaser-normal last-item row"> <header> <div class="row"> <div class="col-sm-8"> <figure> <a href="/america/mundo/2017/12/03/afganistan-un-terrorista-hizo-estallar-su-motocicleta-y-mato-a-seis-personas-en-el-norte-del-pais/"> <h4 class="">Afganistán: un terrorista hizo estallar su motocicleta y mató a seis personas en el norte del país</h4> <p><span class="excerpt">El hecho ocurrió en una zona donde opera el Estado Islámico, aunque ningún grupo se atribuyó aún el ataque. Se trata del último de una serie de atentados en el país que no vive tregua desde el fin de la misión de la OTAN en 2015</span></p> </a> </figure> </div> <div class="col-sm-4"> <a href="/america/mundo/2017/12/03/afganistan-un-terrorista-hizo-estallar-su-motocicleta-y-mato-a-seis-personas-en-el-norte-del-pais/"> <div class="lazy-wrapper hover-media-overlay"> <img data-original="https://www.infobae.com/new-resizer/nsbMjcTGaowWVNWWetFTZuLTtxI=/600x400/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/03075442/Atentado-en-Jalalabad-Afganistan-2.jpg" alt="" class="image-lazy"> <noscript><img src="https://www.infobae.com/new-resizer/nsbMjcTGaowWVNWWetFTZuLTtxI=/600x400/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/03075442/Atentado-en-Jalalabad-Afganistan-2.jpg" alt=""></noscript> </div> </a> </div> </div> </header> </article> </div> </div> </div> <div class="button pb-loadmore clear generic-results-list-load-more" data-load-more-button-id="5175528" data-keys="Feed-Type,_jge,Feed-Parameter,Feed-Limit,Feed-Order,Feed-Offset" data-values="taxonomy.sites.path:(&quot;/politica&quot; &quot;/sociedad&quot; &quot;/economia&quot; &quot;/deportes-2&quot; &quot;/tecno&quot; &quot;/tendencias&quot; &quot;/salud&quot; &quot;/series-peliculas&quot; &quot;/autos&quot; &quot;/turismo&quot; &quot;/cultura&quot; &quot;/grandes-libros&quot; &quot;/vidriera&quot; &quot;/fotos&quot; &quot;/discapacidad&quot; &quot;/teleshow&quot; &quot;/gente&quot; &quot;/america/america-latina&quot; &quot;/america/mundo&quot; &quot;/america/eeuu&quot; &quot;/america/venezuela&quot; &quot;/america/mexico&quot; &quot;/america/colombia&quot; &quot;/america/entretenimiento&quot; &quot;/america/deportes&quot; &quot;/america/tecno&quot; &quot;/america/fotos&quot; &quot;/america/wapo&quot; &quot;/america/vice&quot; &quot;/parati&quot; &quot;/america/cultura-america&quot; NOT &quot;/deportes-2/diarios-deportivos&quot; AND NOT &quot;/gente/espacio-no-editorial-revista-gente&quot; AND NOT &quot;/gente/ediciones&quot; AND NOT &quot;/parati/ediciones-archivo&quot; AND NOT &quot;/parati/espacio-no-editorial-parati/&quot;) AND revision.published,content-feed,true,6,display_date:desc,0" data-custom-field-keys="formattingOption,enabledLoadMore,showSigline,dateType,offset,commentsCountCivil,commentsCountDisqus,numItems" data-custom-field-values="relative,true,false,displayOnly,0,false,false,7" data-href="/pb/api/v2/render/feature/global/generic-results-list" data-offset="0" data-number-items="6">Mas Noticias</div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-global-single-line" id="f0MkVHTEOu6IBq"> <div class="border-bottom-none"></div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-homepage-story" id="fHM8zB1EOu6IBq"> <div class="border-bottom-off"> <div class="no-skin flex-item flex-stack text-align-center equalize-height-target"> <div class="label-wrapper text-align-inherit"> <a href="http://www.infobae.com/te-recomendamos/"> <div style="color:#000000;background-color:#DDDDDD;" class="pb-font-smoothing label label-bar label-with-background class_1052791" data-pb-field="custom.label" data-pb-placeholder="Label">TE RECOMENDAMOS</div> </a> </div> </div> </div> </div> <div class="wrapper clearfix pb-feature pb-layout-item pb-f-global-recommend col-lg-12 col-md-12 col-sm-12 col-xs-12" id="fE6dot1EOu6IBq"> <div id="recommendations-marker"></div> <div id="recommendations" style="display:none"> <div class="row result-listing"> <div class="label-text"> <h2 class="header-label"></h2> </div> <script data-template-id="recommendation" type="text/template">
+ <article class="result-item result-teaser result-teaser-normal">
+ <header class="row">
+ <div class="row">
+ <div class="col-sm-8">
+ <figure>
+ <a data-href="{{url}}">
+ <h4>{{headline}}</h4>
+ <p><span class="excerpt">{{summary}}</span></p>
+ </a>
+ </figure>
+ </div>
+ <div class="col-sm-4">
+ <a data-href="{{url}}">
+ <img data-src="{{picture}}"/>
+ </a>
+ </div>
+ </div>
+ </header>
+ </article>
+ </script> </div> </div> <script>(function(){function b(a){"loading"!=document.readyState?a():document.addEventListener("DOMContentLoaded",a)}window.XDomainRequest||b(function(){recommend({count:3,content:"5EPSP5OX6BDPPIKTHQ4JYUHSNI",element:"#recommendations",scrollMarker:"#recommendations-marker",endpoint:"https://recommendations.infobae.arcpublishing.com/hybrid/hybrid-filter",whenToRun:"smart",clientName:"recommend-arc",imageMaxWidth:300})})})();</script> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-global-single-line" id="f8SMu52EOu6IBq"> <div class="border-bottom-kinda-tight"></div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-ads-dfp" id="fiV2kC1EOu6IBq"> <div id="middle-2-300x250" class="dfp-ad-hidden pb-ad-container pb-ad pb-ad-prod ad-300X250" data-slot-name="middle-2-300x250" data-mobile-display="true" data-desktop-display="true"> </div> <div class="dfp-ad-hidden border-bottom-none"></div> <script>window.dfpAdHelper.appendAd("middle-2-300x250","/1058609/infobae/sociedad/nota/middle_2_300x250",[[300,250],[300,600]],"");</script> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-global-single-line" id="fMfcTw1EOu6IBq"> <div class="border-bottom-tight"></div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-article-comments-facebook" id="f0Gcl69EOu6IBq"> <h2 class="header-label">Comentarios</h2> <div class="fb-comments" data-href="http://www.infobae.com/sociedad/2017/12/01/una-patota-de-varones-ataco-a-un-rugbier-gay-te-vamos-a-matar-por-puto/" data-numposts="3" data-colorscheme="light" data-order-by="reverse_time" data-width="700px"></div> <div class="clear"></div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-global-single-line" id="f0RsxmmEOu6IBq"> <div class="border-bottom-tight"></div> </div> </div> <div class="right-rail-chain col-md-4 col-sm-12 col-xs-12 pb-layout-item pb-chain pb-c-right-rail-chain" id="cPOkQK1EOu6IBq"> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-ads-dfp" id="fLfroK1EOu6IBq"> <div id="right-1-300x600" class="dfp-ad-hidden pb-ad-container pb-ad pb-ad-prod ad-300X250" data-slot-name="right-1-300x600" data-mobile-display="true" data-desktop-display="true"> </div> <div class="dfp-ad-hidden border-bottom-none"></div> <script>window.dfpAdHelper.appendAd("right-1-300x600","/1058609/infobae/sociedad/nota/right_1_300x600",[[300,250],[300,600]],"");</script> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-ads-dfp" id="fZpXBh1EOu6IBq"> <div id="right-2-300x600" class="dfp-ad-hidden pb-ad-container pb-ad pb-ad-prod ad-300X250" data-slot-name="right-2-300x600" data-mobile-display="true" data-desktop-display="true"> </div> <div class="dfp-ad-hidden border-bottom-none"></div> <script>window.dfpAdHelper.appendAd("right-2-300x600","/1058609/infobae/sociedad/nota/right_2_300x600",[[300,250],[300,600]],"");</script> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-global-single-line" id="fDpyZS1EOu6IBq"> <div class="border-bottom-none"></div> </div> <div class="wrapper clearfix col-lg-12 col-md-12 pb-feature pb-layout-item pb-f-global-most-read col-sm-12 col-xs-12" id="f0JgBcJFOu6IBq"> <div class="row"> <h2 class="header-label label label-kicker most-read-wrapper"><a href="http://www.infobae.com/mas-leidas/">MÁS LEÍDAS</a></h2> <aside class="line-up most-read skin skin-card with-bottom-border col-lg-12 col-md-12 col-sm-12 col-xs-12 "> <article class="left"> <header> <div class="number left">1</div><h4 class="left"><a href="/sociedad/policiales/2017/12/03/exclusivo-habla-el-lider-de-la-temible-banda-del-millon-ibamos-a-ir-por-los-bolsos-que-lopez-tiro-en-el-convento/">Exclusivo, habla el líder de la temible Banda del Millón: “Íbamos a ir por los bolsos que López tiró en el convento”</a></h4> <a href="/sociedad/policiales/2017/12/03/exclusivo-habla-el-lider-de-la-temible-banda-del-millon-ibamos-a-ir-por-los-bolsos-que-lopez-tiro-en-el-convento/"> <img src="https://www.infobae.com/new-resizer/R1RvY0B8ow2txSDcg233vSkrhEs=/130x130/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/11/29180028/leonardo-mercado-ympa-banda-del-millon-02.jpg" alt="" class="photo right small-img"> </a> </header> </article> <article class="left"> <header> <div class="number left">2</div><h4 class="left"><a href="/sociedad/policiales/2017/12/02/santiago-del-estero-asi-fue-el-pacto-satanico-para-descuartizar-a-un-chico-de-once-anos-2/">Santiago del Estero: así fue el pacto satánico para descuartizar a un chico de once años</a></h4> <a href="/sociedad/policiales/2017/12/02/santiago-del-estero-asi-fue-el-pacto-satanico-para-descuartizar-a-un-chico-de-once-anos-2/"> <img src="https://www.infobae.com/new-resizer/N_NvH9Omw_814ujN5txdgAG57D8=/130x130/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2016/06/04180802/asesinato-Mario-Agust%C3%ADn-Salto-1920-4.jpg" alt="Marito fue violado antes de ser estrangulado con un cable." class="photo right small-img"> </a> </header> </article> <article class="left"> <header> <div class="number left">3</div><h4 class="left"><a href="/sociedad/2017/12/03/sobrevivir-a-la-prostitucion-tuve-que-matar-a-la-puta-que-construyeron-dentro-de-mi/">Sobrevivir a la prostitución: "Tuve que matar a la puta que construyeron dentro de mí"</a></h4> <a href="/sociedad/2017/12/03/sobrevivir-a-la-prostitucion-tuve-que-matar-a-la-puta-que-construyeron-dentro-de-mi/"> <img src="https://www.infobae.com/new-resizer/9Ms00i-xfAU9gbJSgqTnoF9zFkA=/130x130/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/11/30160846/Sonia-Sanchez-8.jpg" alt="" class="photo right small-img"> </a> </header> </article> <article class="left"> <header> <div class="number left">4</div><h4 class="left"><a href="/noticias/2017/12/02/el-furioso-ataque-de-luciana-salazar-contra-martin-redrado/">El furioso ataque de Luciana Salazar contra Martín Redrado</a></h4> <a href="/noticias/2017/12/02/el-furioso-ataque-de-luciana-salazar-contra-martin-redrado/"> <img src="https://www.infobae.com/new-resizer/RUk9KmlnV9ross113tr-1jXTx5U=/130x130/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2016/08/17135104/luli.jpg" alt="Martín Redrado y Luciana Salazar" class="photo right small-img"> </a> </header> </article> <article class="left"> <header> <div class="number left">5</div><h4 class="left"><a href="/politica/2017/12/03/un-grupo-mapuche-ya-recibio-del-estado-mas-de-100-millones/">Un grupo mapuche ya recibió del Estado más de 100 millones</a></h4> <a href="/politica/2017/12/03/un-grupo-mapuche-ya-recibio-del-estado-mas-de-100-millones/"> <img src="https://www.infobae.com/new-resizer/h3EUdxrpI48Hz9UOkeb3mxyE12I=/130x130/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/09/19112338/NEUQUEN2.jpg" alt="" class="photo right small-img"> </a> </header> </article> </aside> </div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-ads-dfp" id="f0dRBteFOu6IBq"> <div id="right-3-300x250" class="dfp-ad-hidden pb-ad-container pb-ad pb-ad-prod ad-300X250" data-slot-name="right-3-300x250" data-mobile-display="true" data-desktop-display="true"> </div> <div class="dfp-ad-hidden border-bottom-none"></div> <script>window.dfpAdHelper.appendAd("right-3-300x250","/1058609/infobae/sociedad/nota/right_3_300x250",[[300,250],[300,600]],"");</script> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-global-single-line" id="fKnhyt1FOu6IBq"> <div class="border-bottom-none"></div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-list-card-column" id="fQuy4j2FOu6IBq"> <div class="col-sm-12 section-column"> <header><a href="/category/"></a><h3 class="header-label"><a href="/category/"></a><a href="http://www.infobae.com/deportes/"><img src="http://www.infobae.com/resizer/?op=resize&amp;url=https://s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2016/08/29170312/logo_deportes.png&amp;mode=crop&amp;h=24&amp;q=75&amp;token=bar" style="height:21px; margin-top:-10px"></a></h3></header> <div class="column-item"> <a href="/america/deportes/2017/12/03/el-club-ingles-que-es-sensacion-en-las-redes-sociales-por-su-creatividad-al-anunciar-los-goles-de-su-equipo/"> <div class="lazy-wrapper"> <img data-original="https://www.infobae.com/new-resizer/fA7qBMo72SfnZmiZbZ9AiiSHPUY=/600x400/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/03080601/PARTIDA-BRISTOL-CITY-2.jpg" alt="" class="image-lazy"> </div> </a> <h4 class="first"><a href="/america/deportes/2017/12/03/el-club-ingles-que-es-sensacion-en-las-redes-sociales-por-su-creatividad-al-anunciar-los-goles-de-su-equipo/">El club inglés que es sensación en las redes sociales por su creatividad al anunciar los goles de su equipo</a></h4> </div> <div class="column-item"> <h4><a href="/deportes-2/2017/12/03/superliga-argentina-20172018-fecha-11-boca-vs-arsenal-hora-tv-arbitro-y-formaciones/">Boca buscará ante Arsenal un resultado que aleje los fantasmas: hora, TV, árbitro y formaciones</a></h4> </div> <div class="column-item"> <h4><a href="/deportes-2/2017/12/03/superliga-argentina-20172018-fecha-11-tigre-vs-san-lorenzo-hora-tv-arbitro-y-formaciones/">San Lorenzo visita a Tigre para superar a Boca y ser el nuevo líder: hora, TV, árbitro y formaciones</a></h4> </div> </div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-global-single-line" id="f0xyZMPFOu6IBq"> <div class="border-bottom-none"></div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-ads-dfp" id="f0sFpkiFOu6IBq"> <div id="right-4-300x250" class="dfp-ad-hidden pb-ad-container pb-ad pb-ad-prod ad-300X250" data-slot-name="right-4-300x250" data-mobile-display="true" data-desktop-display="true"> </div> <div class="dfp-ad-hidden border-bottom-none"></div> <script>window.dfpAdHelper.appendAd("right-4-300x250","/1058609/infobae/sociedad/nota/right_4_300x250",[[300,250],[300,600]],"");</script> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-global-single-line" id="f07ZAViFOu6IBq"> <div class="border-bottom-none"></div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-list-card-column" id="fKvqUn1FOu6IBq"> <div class="col-sm-12 section-column"> <header><a href="/category/"></a><h3 class="header-label"><a href="/category/"></a><a href="https://www.infobae.com/gente/"><strong>MÁS EN &nbsp;<img src="https://s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/10/02173811/gente.png" style="height:24px; margin-top:-5px"></strong></a></h3></header> <div class="column-item"> <a href="/gente/lo-ultimo/2017/12/02/exclusivo-vimos-antes-que-nadie-13-minutos-de-star-wars-los-ultimos-jedi/"> <div class="lazy-wrapper"> <img data-original="https://www.infobae.com/new-resizer/4DMFMiuID1BL6lbiVzl-yl5NDoA=/600x400/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/11/27162306/GENTE-Starwars-Apertura-241117.jpg" alt="El productor Ram Bergman, la actriz Daisy Ridley, el director Rian Johnson y el actor Mark Hamill. Foto: gentileza Disney" class="image-lazy"> </div> </a> <h4 class="first"><a href="/gente/lo-ultimo/2017/12/02/exclusivo-vimos-antes-que-nadie-13-minutos-de-star-wars-los-ultimos-jedi/">Exclusivo: Vimos antes que nadie 13 minutos de Star Wars: Los últimos Jedi</a></h4> </div> <div class="column-item"> <h4><a href="/gente/lo-ultimo/2017/12/02/morla-el-abogado-de-maradona-diego-insiste-con-que-claudia-lo-quiere-ver-muerto/">Morla, el abogado de Maradona: "Diego insiste con que Claudia lo quiere ver muerto"</a></h4> </div> <div class="column-item"> <h4><a href="/gente/lo-ultimo/2017/12/02/toto-kirzner-debuta-en-los-unitarios-de-la-fundacion-huesped-y-dice-hay-prejuicios-y-discriminacion-sobre-el-sida/">Toto Kirzner debuta en los unitarios de la Fundación Huésped y dice: "Hay prejuicios y discriminación sobre el SIDA"</a></h4> </div> </div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-global-single-line" id="f02bKzyFOu6IBq"> <div class="border-bottom-none"></div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-ads-dfp" id="fWuTM72FOu6IBq"> <div id="right-5-300x250" class="dfp-ad-hidden pb-ad-container pb-ad pb-ad-prod ad-300X250" data-slot-name="right-5-300x250" data-mobile-display="true" data-desktop-display="true"> </div> <div class="dfp-ad-hidden border-bottom-none"></div> <script>window.dfpAdHelper.appendAd("right-5-300x250","/1058609/infobae/sociedad/nota/right_5_300x250",[[300,250],[300,600]],"");</script> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-list-card-column" id="f0IQUdnFOu6IBq"> <div class="col-sm-12 section-column"> <header><a href="/category/"></a><h3 class="header-label"><a href="/category/"></a><a href="http://www.infobae.com/tecno"><strong>TECNO</strong></a></h3></header> <div class="column-item"> <a href="/america/tecno/2017/12/03/quien-fue-madame-x-la-mujer-que-revelo-los-codigos-secretos-de-japon-durante-la-segunda-guerra-mundial/"> <div class="lazy-wrapper"> <img data-original="https://www.infobae.com/new-resizer/tgPKJq7_YhCj19pbaMC8gxFQ7bQ=/600x400/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/11/27145850/AGNES-MAYER-DRISCOLL1.jpg" alt="" class="image-lazy"> </div> </a> <h4 class="first"><a href="/america/tecno/2017/12/03/quien-fue-madame-x-la-mujer-que-revelo-los-codigos-secretos-de-japon-durante-la-segunda-guerra-mundial/">Quién fue Madame X, la mujer que reveló los códigos secretos de Japón durante la Segunda Guerra Mundial</a></h4> </div> <div class="column-item"> <h4><a href="/tendencias/innovacion/2017/12/02/las-tres-tecnologias-que-cambiaran-nuestro-futuro/">Las tres tecnologías que cambiarán nuestro futuro</a></h4> </div> <div class="column-item"> <h4><a href="/tecno/2017/12/02/quien-controla-el-bitcoin/">¿Quién controla el Bitcoin?</a></h4> </div> </div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-global-single-line" id="fAKJEr1FOu6IBq"> <div class="border-bottom-airy"></div> </div> <div class="wrapper clearfix col-lg-12 col-md-12 pb-feature pb-layout-item pb-f-global-most-read col-sm-12 col-xs-12" id="f8owjl1FOu6IBq"> <div class="row"> <h2 class="header-label label label-kicker most-read-wrapper"><a href="http://www.infobae.com/america/">MÁS LEÍDAS <img src="http://www.infobae.com/resizer/?op=resize&amp;url=https://s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2016/09/27141508/america.png&amp;mode=crop&amp;h=24&amp;q=75&amp;token=bar" style="height:22px; margin-top:-6px"></a></h2> <aside class="line-up most-read skin skin-card with-bottom-border col-lg-12 col-md-12 col-sm-12 col-xs-12 "> <article class="left"> <header> <div class="number left">1</div><h4 class="left"><a href="/america/mundo/2017/12/03/la-horrenda-historia-de-la-condesa-hungara-que-asesino-a-mas-de-600-mujeres-para-lograr-la-belleza-eterna-con-su-sangre/">La horrenda historia de la condesa húngara que asesinó a más de 600 mujeres para lograr la belleza eterna con su sangre</a></h4> <a href="/america/mundo/2017/12/03/la-horrenda-historia-de-la-condesa-hungara-que-asesino-a-mas-de-600-mujeres-para-lograr-la-belleza-eterna-con-su-sangre/"> <img src="https://www.infobae.com/new-resizer/kUIgIYssfcsPB48GUiOIDg2AxuU=/130x130/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/11/30184950/Erzs%C3%A9bet-Isabel-Bathory.jpg" alt="" class="photo right small-img"> </a> </header> </article> <article class="left"> <header> <div class="number left">2</div><h4 class="left"><a href="/america/mundo/2017/12/02/como-es-albinen-el-pueblo-que-ofrece-usd-25-mil-a-quienes-quieran-mudarse/">Cómo es Albinen, el pueblo que ofrece USD 25 mil a quienes quieran mudarse</a></h4> <a href="/america/mundo/2017/12/02/como-es-albinen-el-pueblo-que-ofrece-usd-25-mil-a-quienes-quieran-mudarse/"> <img src="https://www.infobae.com/new-resizer/2QIoCOtACpHy-5EpMxIDP4pDzjY=/130x130/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/02094537/albinen-suiza-1920-4.jpg" alt="CZR23. ALBINEN (SUIZA), 30/11/2017.- Vista general del pueblo de Albinen hoy, jueves 30 de noviembre de 2017, durante la asamblea comunal de Albinen, en Albinen (Suiza). Los residentes de Albinen votarán una nueva regulación comunitaria que propone 25,000 francos suizos por cada persona que se establezca en la municipalidad por al menos 10 años. El subsidio en efectivo surge como una iniciativa para frenar el éxodo de residentes locales fuera de la aldea de Albinen y para atraer a nuevas familias. EFE/CYRIL ZINGARO" class="photo right small-img"> </a> </header> </article> <article class="left"> <header> <div class="number left">3</div><h4 class="left"><a href="/america/deportes/2017/12/02/medios-irlandeses-aseguraron-que-la-vida-de-conor-mcgregor-corre-un-grave-peligro/">Medios irlandeses aseguraron que la vida de Conor McGregor corre un "grave peligro"</a></h4> <a href="/america/deportes/2017/12/02/medios-irlandeses-aseguraron-que-la-vida-de-conor-mcgregor-corre-un-grave-peligro/"> <img src="https://www.infobae.com/new-resizer/V0Xe13tXim1KgOjta3O03N_WTD0=/130x130/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2016/08/31084830/063_592638926.jpg" alt="(AFP)" class="photo right small-img"> </a> </header> </article> <article class="left"> <header> <div class="number left">4</div><h4 class="left"><a href="/america/entretenimiento/2017/12/03/los-curiosos-comienzos-como-extras-de-algunas-de-las-estrellas-mas-famosas-de-hollywood/">Los curiosos comienzos como extras de algunas de las estrellas más famosas de Hollywood</a></h4> <a href="/america/entretenimiento/2017/12/03/los-curiosos-comienzos-como-extras-de-algunas-de-las-estrellas-mas-famosas-de-hollywood/"> <img src="https://www.infobae.com/new-resizer/akM-LtOKQ5lEGQkcupgQSGBNDWQ=/130x130/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/11/30120001/pre-fama-famosos-partida-301117.jpg" alt="" class="photo right small-img"> </a> </header> </article> <article class="left"> <header> <div class="number left">5</div><h4 class="left"><a href="/america/mexico/2017/12/01/regreso-a-su-casa-y-encontro-a-siete-familiares-muertos-y-con-espuma-en-la-boca/">Regresó a su casa y encontró a siete familiares muertos y con espuma en la boca</a></h4> <a href="/america/mexico/2017/12/01/regreso-a-su-casa-y-encontro-a-siete-familiares-muertos-y-con-espuma-en-la-boca/"> <img src="https://www.infobae.com/new-resizer/2PT_ACjXRhuL5RpF8JEBizadhSI=/130x130/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01153823/Suicidio-familiar-Mexico-1.jpg" alt="Siete integrantes de una familia murieron dentro de su domicilio en Tizayuca, Hidalgo. (La prensa. Especial)" class="photo right small-img"> </a> </header> </article> </aside> </div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-ads-dfp" id="fz4KXK1FOu6IBq"> <div id="right-6-300x250" class="dfp-ad-hidden pb-ad-container pb-ad pb-ad-prod ad-300X250" data-slot-name="right-6-300x250" data-mobile-display="true" data-desktop-display="true"> </div> <div class="dfp-ad-hidden border-bottom-none"></div> <script>window.dfpAdHelper.appendAd("right-6-300x250","/1058609/infobae/sociedad/nota/right_6_300x250",[[300,250],[300,600]],"");</script> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-global-single-line" id="fzq1TV1FOu6IBq"> <div class="border-bottom-airy"></div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-list-card-column" id="f009HK2FOu6IBq"> <div class="col-sm-12 section-column"> <header><a href="/category/"></a><h3 class="header-label"><a href="/category/"></a><a href="http://www.infobae.com/tendencias/"><strong>Tendencias</strong></a></h3></header> <div class="column-item"> <a href="/tendencias/2017/12/02/julian-serrano-a-solas-con-infobae-los-jovenes-de-hoy-son-autodidactas-ambiciosos-y-emprendedores/"> <div class="lazy-wrapper"> <img data-original="https://www.infobae.com/new-resizer/0Gkd-hY3O-OurTrOQBCXGwjwDvw=/600x400/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/11/30145414/julian-serrano.jpg" alt="" class="image-lazy"> </div> </a> <h4 class="first"><a href="/tendencias/2017/12/02/julian-serrano-a-solas-con-infobae-los-jovenes-de-hoy-son-autodidactas-ambiciosos-y-emprendedores/">Julián Serrano, a solas con Infobae: "Los jóvenes de hoy son autodidactas, ambiciosos y emprendedores"</a></h4> </div> <div class="column-item"> <h4><a href="/mix5411/2017/12/02/la-casa-plegable-que-cuesta-menos-de-30-000-euros-y-se-arma-en-solo-6-horas/">La casa plegable que cuesta menos de 30.000 euros y se arma en solo 6 horas</a></h4> </div> <div class="column-item"> <h4><a href="/mix5411/2017/12/02/el-apasionado-beso-del-ken-humano-que-confirmo-su-verdadera-sexualidad/">El apasionado beso del “Ken humano” que confirmó su verdadera sexualidad</a></h4> </div> </div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-global-single-line" id="f0PcYSlFOu6IBq"> <div class="border-bottom-airy"></div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-ads-dfp" id="f0zJQibFOu6IBq"> <div id="right-7-300x250" class="dfp-ad-hidden pb-ad-container pb-ad pb-ad-prod ad-300X250" data-slot-name="right-7-300x250" data-mobile-display="true" data-desktop-display="true"> </div> <div class="dfp-ad-hidden border-bottom-none"></div> <script>window.dfpAdHelper.appendAd("right-7-300x250","/1058609/infobae/sociedad/nota/right_7_300x250",[[300,250],[300,600]],"");</script> </div> <div class="wrapper clearfix pb-feature pb-layout-item pb-f-global-mailchimp-signup col-lg-12 col-md-12 col-sm-12 col-xs-12" id="f0kgs26FOu6IBq"> <div class=" col-xs-12 col-sm-10 col-sm-offset-1 col-md-10 col-md-offset-1"> <div class="form-wrapper row"> <div id="mc_embed_signup" style="width: 100%;"> <form action="//infobae.us13.list-manage.com/subscribe/post?u=4e953e7139f83467d8edcac2e&amp;id=4ec30b39ed" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate> <div id="mc_embed_signup_scroll" style="height: 165px; border: 1px solid #e2e2e2; "> <h2 style="font-size: 20px; font-family: arial; font-weight: normal; margin-top: 0px; margin-bottom: 0px; padding-top: 15px; text-align: center; color: #f68e01;"><img src="http://www.infobae.com/resizer/?op=resize&amp;url=https://s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2016/09/22145201/closed-envelope.png&amp;mode=crop&amp;h=24&amp;q=75&amp;token=bar" width="40px" style="padding-right: 10px; vertical-align: middle;">Newsletter <img src="http://www.infobae.com/resizer/?op=resize&amp;url=https://s3.amazonaws.com/wapopartners.com/infobae-wp/wp-content/uploads/2016/03/29190548/infobae.png&amp;mode=crop&amp;h=24&amp;q=75&amp;token=bar" style="height:20px; margin-top:-8px"></h2> <p style="font-family: arial; font-size: 16px; color: #9e9e9e; margin-top: 5px; text-align: center;"> </p><div class="mc-field-group" style="text-align: center; "> <input type="email" id="mce-EMAIL" name="EMAIL" required placeholder="Tu email" style="width:100%; height: 34px; font-size: 14px; "> </div> <div id="mce-responses" class="clear"> <div class="response" id="mce-error-response" style="display:none"></div> <div class="response" id="mce-success-response" style="display:none"></div> </div> <div style="position: absolute; left: -5000px;" aria-hidden="true"> <input type="text" name="b_4e953e7139f83467d8edcac2e_4ec30b39ed" tabindex="-1" value=""> </div> <div class="clear"> <input type="submit" value="Suscribirse" name="subscribe" id="mc-embedded-subscribe" style=" background: #f68e01; color: white !important; font-weight: normal; display: block; margin-top: 5px; margin-bottom: 10px; border: 1px solid #f68e01; width: 80%; height: 36px; transition: background 0.3s; font-size: 19px; margin-left: 10%; margin-right: 10%;"> </div> </div> </form> </div> </div> </div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-global-single-line" id="fwnELc2FOu6IBq"> <div class="border-bottom-none"></div> </div> </div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-ads-dfp" id="fC7J2j2FOu6IBq"> <div id="exp-push-2-970x250" class="dfp-ad-hidden pb-ad-container pb-ad pb-ad-prod expandable ad-970X90 hide-mobile" data-slot-name="exp-push-2-970x250" data-mobile-display="false" data-desktop-display="true"> </div> <div class="dfp-ad-hidden border-bottom-none hide-mobile"></div> <script>window.dfpAdHelper.appendAd("exp-push-2-970x250","/1058609/infobae/sociedad/nota/exp_push_2_970x250",[[970,90],[970,250]],"expandable");</script> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-global-single-line" id="f3CSaU1FOu6IBq"> <div class="border-bottom-none"></div> </div> <div class="standard-chain in-chain border-bottom-none pb-layout-item pb-chain pb-c-standard-chain full" id="c0G2Xa9FOu6IBq"> <div class="chain-content no-skin"> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-homepage-story" id="fWDW661g7DnoCq"> <div class="border-bottom-kinda-tight"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="label-wrapper text-align-inherit"> <a href="https://www.infobae.com/teleshow/"> <div style="color:#000000;background-color:#DDDDDD;" class="pb-font-smoothing label label-bar label-with-background class_990267" data-pb-field="custom.label" data-pb-placeholder="Label">TELESHOW</div> </a> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-md-3 col-xs-12 col-sm-3 pb-feature pb-layout-item pb-f-homepage-story-feed" id="f0N7qeTg7DnoCq"> <div class="border-bottom-hairline flex-feature-wrapper"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="headline small normal-style "> <a href="/teleshow/infoshow/2017/12/03/quienes-son-yon-gonzalez-y-amaia-salamanca-los-actores-de-las-series-espanolas-que-hacen-furor-en-netflix/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> Quiénes son Yon González y Amaia Salamanca, los actores de las series españolas que hacen furor en Netflix </a> </div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_3658" class="lazy-wrapper photo-wrapper"> <a href="/teleshow/infoshow/2017/12/03/quienes-son-yon-gonzalez-y-amaia-salamanca-los-actores-de-las-series-espanolas-que-hacen-furor-en-netflix/"><img data-original="https://www.infobae.com/new-resizer/hxs4a_adg23D-1h7b2YDrBgQu3U=/999x561/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/11/21200606/gran-hotel.jpg" class="image-lazy"></a></div> <style>#flex_3658.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:56.17977528089888%}#flex_3658.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-md-3 col-xs-12 col-sm-3 pb-feature pb-layout-item pb-f-homepage-story-feed" id="f0uK44Dg7DnoCq"> <div class="border-bottom-hairline flex-feature-wrapper"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="headline small normal-style "> <a href="/teleshow/infoshow/2017/12/03/la-ultima-moda-de-la-farandula-las-hijas-de-los-famosos-se-convierten-en-empresarias-y-lanzan-sus-propias-marcas/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> La última moda de la farándula: las hijas de los famosos se convierten en empresarias y lanzan sus propias marcas </a> </div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_6639" class="lazy-wrapper photo-wrapper"> <a href="/teleshow/infoshow/2017/12/03/la-ultima-moda-de-la-farandula-las-hijas-de-los-famosos-se-convierten-en-empresarias-y-lanzan-sus-propias-marcas/"><img data-original="https://www.infobae.com/new-resizer/44VfN5GfgFdhha4Amz9eLstvf2s=/999x561/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01123729/hijas-famosos-portada.jpg" class="image-lazy"></a></div> <style>#flex_6639.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:56.17977528089888%}#flex_6639.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-md-3 col-xs-12 col-sm-3 pb-feature pb-layout-item pb-f-homepage-story-feed" id="ffTE5O1g7DnoCq"> <div class="border-bottom-hairline flex-feature-wrapper"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="headline small normal-style "> <a href="/teleshow/infoshow/2017/12/03/a-25-anos-del-boom-de-la-pachanga-la-historia-jamas-contada-del-hit-de-vilma-palma-quien-era-el-pelado/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> A 25 años del boom de "La pachanga", la historia jamás contada del hit de Vilma Palma: ¿quién era "El Pelado"? </a> </div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_3727" class="lazy-wrapper photo-wrapper"> <a href="/teleshow/infoshow/2017/12/03/a-25-anos-del-boom-de-la-pachanga-la-historia-jamas-contada-del-hit-de-vilma-palma-quien-era-el-pelado/"><img data-original="https://www.infobae.com/new-resizer/lf2elydCw7tq93Y0zafy17RLdjU=/999x561/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01185417/Vilma-Palma-portada-1.jpg" class="image-lazy"></a></div> <style>#flex_3727.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:56.17977528089888%}#flex_3727.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-md-3 col-xs-12 col-sm-3 pb-feature pb-layout-item pb-f-homepage-story-feed" id="fD8D3i1g7DnoCq"> <div class="border-bottom-hairline flex-feature-wrapper"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="headline small normal-style "> <a href="/america/entretenimiento/2017/12/03/los-curiosos-comienzos-como-extras-de-algunas-de-las-estrellas-mas-famosas-de-hollywood/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> Los curiosos comienzos como extras de algunas de las estrellas más famosas de Hollywood </a> </div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_6285" class="lazy-wrapper photo-wrapper"> <a href="/america/entretenimiento/2017/12/03/los-curiosos-comienzos-como-extras-de-algunas-de-las-estrellas-mas-famosas-de-hollywood/"><img data-original="https://www.infobae.com/new-resizer/GrSLk3FaBhPdtA-V0dJ3l4UWlTQ=/999x561/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/11/30120001/pre-fama-famosos-partida-301117.jpg" class="image-lazy"></a></div> <style>#flex_6285.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:56.17977528089888%}#flex_6285.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="clear"></div> </div> <div class="clear"></div> </div> <div class="pb-container"> <div class="standard-chain in-chain border-bottom-none pb-layout-item pb-chain pb-c-standard-chain col-lg-12 col-md-12 col-sm-12 col-xs-12" id="c0Mg8RVFOu6IBq"> <div class="chain-content no-skin"> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-homepage-story" id="f00OvHUg7DnoCq"> <div class="border-bottom-kinda-tight"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="label-wrapper text-align-center"> <a href="https://www.infobae.com/deportes/"> <div style="color:#000000;background-color:#DDDDDD;" class="pb-font-smoothing label label-bar label-with-background class_3341952" data-pb-field="custom.label" data-pb-placeholder="Label">DEPORTES</div> </a> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-md-3 col-xs-12 col-sm-3 pb-feature pb-layout-item pb-f-homepage-story-feed" id="f0cCBJ1g7DnoCq"> <div class="border-bottom-hairline flex-feature-wrapper"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="headline x-small normal-style "> <a href="/america/deportes/2017/12/03/el-club-ingles-que-es-sensacion-en-las-redes-sociales-por-su-creatividad-al-anunciar-los-goles-de-su-equipo/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> El club inglés que es sensación en las redes sociales por su creatividad al anunciar los goles de su equipo </a> </div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_1241" class="lazy-wrapper photo-wrapper"> <a href="/america/deportes/2017/12/03/el-club-ingles-que-es-sensacion-en-las-redes-sociales-por-su-creatividad-al-anunciar-los-goles-de-su-equipo/"><img data-original="https://www.infobae.com/new-resizer/Hdy0B-KZrJ-ozGgG1oClQK8hohw=/999x561/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/03080601/PARTIDA-BRISTOL-CITY-2.jpg" class="image-lazy"></a></div> <style>#flex_1241.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:56.17977528089888%}#flex_1241.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-md-3 col-xs-12 col-sm-3 pb-feature pb-layout-item pb-f-homepage-story-feed" id="fAgG012g7DnoCq"> <div class="border-bottom-hairline flex-feature-wrapper"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="headline x-small normal-style "> <a href="/deportes-2/2017/12/03/superliga-argentina-20172018-fecha-11-boca-vs-arsenal-hora-tv-arbitro-y-formaciones/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> Boca buscará ante Arsenal un resultado que aleje los fantasmas: hora, TV, árbitro y formaciones </a> </div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_4998" class="lazy-wrapper photo-wrapper"> <a href="/deportes-2/2017/12/03/superliga-argentina-20172018-fecha-11-boca-vs-arsenal-hora-tv-arbitro-y-formaciones/"><img data-original="https://www.infobae.com/new-resizer/52xrGqaxiziwIEgP5uz0Sq3Ndm0=/999x561/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/10/01184009/Boca-Juniors-vs-Chacarita-Juniors-1920-3.jpg" class="image-lazy"></a></div> <style>#flex_4998.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:56.17977528089888%}#flex_4998.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-md-3 col-xs-12 col-sm-3 pb-feature pb-layout-item pb-f-homepage-story-feed" id="f06nWvtg7DnoCq"> <div class="border-bottom-hairline flex-feature-wrapper"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="headline x-small normal-style "> <a href="/deportes-2/2017/12/03/superliga-argentina-20172018-fecha-11-tigre-vs-san-lorenzo-hora-tv-arbitro-y-formaciones/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> San Lorenzo visita a Tigre para superar a Boca y ser el nuevo líder: hora, TV, árbitro y formaciones </a> </div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_3439" class="lazy-wrapper photo-wrapper"> <a href="/deportes-2/2017/12/03/superliga-argentina-20172018-fecha-11-tigre-vs-san-lorenzo-hora-tv-arbitro-y-formaciones/"><img data-original="https://www.infobae.com/new-resizer/bWfREjUA_H17Qy9fA01pcxu5_NM=/999x561/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/04/02193748/Tigre-vs-San-Lorenzo-2017-1920-Telam.jpg" class="image-lazy"></a></div> <style>#flex_3439.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:56.17977528089888%}#flex_3439.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-md-3 col-xs-12 col-sm-3 pb-feature pb-layout-item pb-f-homepage-story-feed" id="f0X2H9Zg7DnoCq"> <div class="border-bottom-hairline flex-feature-wrapper"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="headline x-small normal-style "> <a href="/deportes-2/2017/12/03/superliga-argentina-20162017-fecha-11-talleres-vs-estudiantes/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> Talleres recibe a Estudiantes para acercarse a la cima: hora, TV y formaciones </a> </div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_856" class="lazy-wrapper photo-wrapper"> <a href="/deportes-2/2017/12/03/superliga-argentina-20162017-fecha-11-talleres-vs-estudiantes/"><img data-original="https://www.infobae.com/new-resizer/YRtH5ZxPVN7RX4moey6FvIjbGeQ=/999x561/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/03070044/talleres-vs-estudiantes-superliga-1920.jpg" class="image-lazy"></a></div> <style>#flex_856.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:56.17977528089888%}#flex_856.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="clear"></div> </div> <div class="clear"></div> </div> <div class="standard-chain in-chain border-bottom-none pb-layout-item pb-chain pb-c-standard-chain" id="c0RxE6EFOu6IBq"> <div class="chain-content no-skin"> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-homepage-story" id="fodP881g7DnoCq"> <div class="border-bottom-kinda-tight"> <div class="no-skin flex-item flex-stack text-align-center equalize-height-target"> <div class="label-wrapper text-align-center"> <a href="https://www.infobae.com/tendencias/"> <div style="color:#000000;background-color:#DDDDDD;" class="pb-font-smoothing label label-bar label-with-background class_9017760" data-pb-field="custom.label" data-pb-placeholder="Label">TENDENCIAS</div> </a> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-md-3 col-xs-12 col-sm-3 pb-feature pb-layout-item pb-f-homepage-story-feed" id="f0WZbSpg7DnoCq"> <div class="border-bottom-hairline flex-feature-wrapper"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="headline x-small normal-style "> <a href="/discapacidad/2017/12/02/reflexion-conciencia-e-inclusion-los-3-objetivos-que-persigue-el-dia-internacional-de-las-personas-con-discapacidad/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> Reflexión, conciencia e inclusión, los 3 objetivos que persigue el Día Internacional de las Personas con Discapacidad </a> </div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_6203" class="lazy-wrapper photo-wrapper"> <a href="/discapacidad/2017/12/02/reflexion-conciencia-e-inclusion-los-3-objetivos-que-persigue-el-dia-internacional-de-las-personas-con-discapacidad/"><img data-original="https://www.infobae.com/new-resizer/OrVJ4FksGGi_EnTPTVvlh1NXPJw=/999x561/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01151604/discapacidad.jpg" class="image-lazy"></a></div> <style>#flex_6203.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:56.17977528089888%}#flex_6203.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-md-3 col-xs-12 col-sm-3 pb-feature pb-layout-item pb-f-homepage-story-feed" id="f0kjckmg7DnoCq"> <div class="border-bottom-hairline flex-feature-wrapper"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="headline x-small normal-style "> <a href="/turismo/2017/12/02/turismo-instagrammer-los-10-rincones-mas-fotogenicos-de-jamaica/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> Turismo instagrammer: los 10 rincones más "fotogénicos" de Jamaica </a> </div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_1591" class="lazy-wrapper photo-wrapper"> <a href="/turismo/2017/12/02/turismo-instagrammer-los-10-rincones-mas-fotogenicos-de-jamaica/"><img data-original="https://www.infobae.com/new-resizer/4J_GegtAPRNosLKfU_eKCJNbuYo=/999x561/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/11/26145521/jamaica-2.jpg" class="image-lazy"></a></div> <style>#flex_1591.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:56.17977528089888%}#flex_1591.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-md-3 col-xs-12 col-sm-3 pb-feature pb-layout-item pb-f-homepage-story-feed" id="fW0LGR1g7DnoCq"> <div class="border-bottom-hairline flex-feature-wrapper"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="headline x-small normal-style "> <a href="/tendencias/2017/12/02/narda-lepes-uno-de-los-errores-mas-grandes-es-preguntarle-a-los-chicos-que-quieren-comer/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> Narda Lepes: "Uno de los errores más grandes es preguntarle a los chicos qué quieren comer" </a> </div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_6979" class="lazy-wrapper photo-wrapper"> <a href="/tendencias/2017/12/02/narda-lepes-uno-de-los-errores-mas-grandes-es-preguntarle-a-los-chicos-que-quieren-comer/"><img data-original="https://www.infobae.com/new-resizer/C3VHqg20pdYUd-2c3xRsAvPlKdo=/999x561/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/11/30142733/narda-portada.jpg" class="image-lazy"></a></div> <style>#flex_6979.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:56.17977528089888%}#flex_6979.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-md-3 col-xs-12 col-sm-3 pb-feature pb-layout-item pb-f-homepage-story-feed" id="f0DyQLfg7DnoCq"> <div class="border-bottom-hairline flex-feature-wrapper"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="headline x-small normal-style "> <a href="/tendencias/2017/12/02/julian-serrano-a-solas-con-infobae-los-jovenes-de-hoy-son-autodidactas-ambiciosos-y-emprendedores/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> Julián Serrano, a solas con Infobae: "Los jóvenes de hoy son autodidactas, ambiciosos y emprendedores" </a> </div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_6693" class="lazy-wrapper photo-wrapper"> <a href="/tendencias/2017/12/02/julian-serrano-a-solas-con-infobae-los-jovenes-de-hoy-son-autodidactas-ambiciosos-y-emprendedores/"><img data-original="https://www.infobae.com/new-resizer/bExHnE6e6ZQa7TyXcue8nsx3xc8=/999x561/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/11/30145414/julian-serrano.jpg" class="image-lazy"></a></div> <style>#flex_6693.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:56.17977528089888%}#flex_6693.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="clear"></div> </div> <div class="clear"></div> </div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-ads-dfp" id="f0jHQggFOu6IBq"> <div id="exp-push-3-970x250" class="dfp-ad-hidden pb-ad-container pb-ad pb-ad-prod expandable ad-970X90 hide-mobile" data-slot-name="exp-push-3-970x250" data-mobile-display="false" data-desktop-display="true"> </div> <div class="dfp-ad-hidden border-bottom-none hide-mobile"></div> <script>window.dfpAdHelper.appendAd("exp-push-3-970x250","/1058609/infobae/sociedad/nota/exp_push_3_970x250",[[970,90],[970,250]],"expandable");</script> </div> <div class="standard-chain in-chain border-bottom-none pb-layout-item pb-chain pb-c-standard-chain full" id="cbqaIH1FOu6IBq"> <div class="chain-content no-skin"> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-homepage-story" id="f3LWzd1f7DnoCq"> <div class="border-bottom-kinda-tight"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="label-wrapper text-align-inherit"> <a href="https://www.infobae.com/gente/"> <div style="color:#000000;background-color:#DDDDDD;" class="pb-font-smoothing label label-bar label-with-background class_5384964" data-pb-field="custom.label" data-pb-placeholder="Label"><img src="https://s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/10/02173813/gente-25.png" style="height:24px; margin-top:-5px"></div> </a> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-md-3 col-xs-12 col-sm-3 pb-feature pb-layout-item pb-f-homepage-story-feed" id="f0mmsI9f7DnoCq"> <div class="border-bottom-hairline flex-feature-wrapper"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="headline small normal-style "> <a href="/gente/lo-ultimo/2017/12/02/toto-kirzner-debuta-en-los-unitarios-de-la-fundacion-huesped-y-dice-hay-prejuicios-y-discriminacion-sobre-el-sida/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> Toto Kirzner debuta en los unitarios de la Fundación Huésped y dice: "Hay prejuicios y discriminación sobre el SIDA" </a> </div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_5848" class="lazy-wrapper photo-wrapper"> <a href="/gente/lo-ultimo/2017/12/02/toto-kirzner-debuta-en-los-unitarios-de-la-fundacion-huesped-y-dice-hay-prejuicios-y-discriminacion-sobre-el-sida/"><img data-original="https://www.infobae.com/new-resizer/O9mKGdyH5B-Jv9YgcYks6rtyrwo=/999x561/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/11/27104906/GENTE-TOTO-Kirzner-AP-004-241117.jpg" class="image-lazy"></a></div> <style>#flex_5848.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:56.17977528089888%}#flex_5848.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-md-3 col-xs-12 col-sm-3 pb-feature pb-layout-item pb-f-homepage-story-feed" id="f0pQnPsf7DnoCq"> <div class="border-bottom-hairline flex-feature-wrapper"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="headline small normal-style "> <a href="/gente/personajes/2017/12/02/los-rituales-de-axel-antes-de-cada-show-piso-el-escenario-y-siento-una-explosion/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> Los rituales de Axel antes de cada show: "Piso el escenario y siento una explosión" </a> </div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_5996" class="lazy-wrapper photo-wrapper"> <a href="/gente/personajes/2017/12/02/los-rituales-de-axel-antes-de-cada-show-piso-el-escenario-y-siento-una-explosion/"><img data-original="https://www.infobae.com/new-resizer/s93U6tfFeCi6Ez_FadNzzfjZ0h4=/999x561/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/11/27222707/GENTE-RECITAL-AXEL-AP-017-FOM-20171128.jpg" class="image-lazy"></a></div> <style>#flex_5996.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:56.17977528089888%}#flex_5996.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-md-3 col-xs-12 col-sm-3 pb-feature pb-layout-item pb-f-homepage-story-feed" id="fbt12L1f7DnoCq"> <div class="border-bottom-hairline flex-feature-wrapper"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="headline small normal-style "> <a href="/gente/revista-gente-fotos/2017/12/02/las-fotos-mas-sensuales-de-barbie-velez-en-gente/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> Las fotos más sensuales de Barbie Vélez en GENTE </a> </div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_9490" class="lazy-wrapper photo-wrapper"> <a href="/gente/revista-gente-fotos/2017/12/02/las-fotos-mas-sensuales-de-barbie-velez-en-gente/"><img data-original="https://www.infobae.com/new-resizer/DeNaRzPPQp4-Jcg2OKaGyYVH_y0=/999x561/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01162803/GENTE-BarbieVelez-APERTURA2-011217-02.jpg" class="image-lazy"></a></div> <style>#flex_9490.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:56.17977528089888%}#flex_9490.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-md-3 col-xs-12 col-sm-3 pb-feature pb-layout-item pb-f-homepage-story-feed" id="fWjAv02f7DnoCq"> <div class="border-bottom-hairline flex-feature-wrapper"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="headline small normal-style "> <a href="/gente/notas-de-tapa/2017/11/28/barbie-velez-despues-de-fede-bal-hay-muchos-lugares-que-evito-para-no-cruzarlo/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> Barbie Vélez después de Fede Bal: "Hay muchos lugares que evito para no cruzarlo" </a> </div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_3751" class="lazy-wrapper photo-wrapper"> <a href="/gente/notas-de-tapa/2017/11/28/barbie-velez-despues-de-fede-bal-hay-muchos-lugares-que-evito-para-no-cruzarlo/"><img data-original="https://www.infobae.com/new-resizer/erwd19H8nCdPPC8jM0ZESPNr1co=/999x561/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/11/28094237/GENTE-BARBIE-VELEZ-002-2711171.jpg" class="image-lazy"></a></div> <style>#flex_3751.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:56.17977528089888%}#flex_3751.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="clear"></div> </div> <div class="clear"></div> </div> <div class="standard-chain in-chain border-bottom-none pb-layout-item pb-chain pb-c-standard-chain full" id="cYJc9I1FOu6IBq"> <div class="chain-content no-skin"> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-homepage-story" id="f0bbjBig7DnoCq"> <div class="border-bottom-kinda-tight"> <div class="no-skin flex-item flex-stack text-align-center equalize-height-target"> <div class="label-wrapper text-align-center"> <a href="https://www.infobae.com/salud/"> <div style="color:#000000;background-color:#DDDDDD;" class="pb-font-smoothing label label-bar label-with-background class_1123380" data-pb-field="custom.label" data-pb-placeholder="Label">SALUD</div> </a> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-md-3 col-xs-12 col-sm-3 pb-feature pb-layout-item pb-f-homepage-story-feed" id="fVKVnY1g7DnoCq"> <div class="border-bottom-hairline flex-feature-wrapper"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="headline x-small normal-style "> <a href="/salud/fitness/2017/12/02/the-trip-el-entrenamiento-futurista-de-ciclismo-indoor-que-es-furor-en-europa/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> The Trip, el entrenamiento futurista de ciclismo indoor que es furor en Europa </a> </div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_2551" class="lazy-wrapper photo-wrapper"> <a href="/salud/fitness/2017/12/02/the-trip-el-entrenamiento-futurista-de-ciclismo-indoor-que-es-furor-en-europa/"><img data-original="https://www.infobae.com/new-resizer/tb6U33BQ6Abvukc1HwPIT1901x4=/999x561/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/11/28191540/the-trip.jpg" class="image-lazy"></a></div> <style>#flex_2551.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:56.17977528089888%}#flex_2551.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-md-3 col-xs-12 col-sm-3 pb-feature pb-layout-item pb-f-homepage-story-feed" id="fyRyZX1g7DnoCq"> <div class="border-bottom-hairline flex-feature-wrapper"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="headline x-small normal-style "> <a href="/salud/2017/12/01/vivir-con-hipertimesia-el-extrano-sindrome-de-los-que-recuerdan-con-exactitud-cada-detalle-de-su-vida/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> Vivir con hipertimesia, el extraño síndrome de los que recuerdan con exactitud cada detalle de su vida </a> </div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_957" class="lazy-wrapper photo-wrapper"> <a href="/salud/2017/12/01/vivir-con-hipertimesia-el-extrano-sindrome-de-los-que-recuerdan-con-exactitud-cada-detalle-de-su-vida/"><img data-original="https://www.infobae.com/new-resizer/K4c5Gjdk6qy-whpvAUSPgxPbok4=/999x561/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/11/30134206/GettyImages-543174872.jpg" class="image-lazy"></a></div> <style>#flex_957.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:56.17977528089888%}#flex_957.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-md-3 col-xs-12 col-sm-3 pb-feature pb-layout-item pb-f-homepage-story-feed" id="f0y3nImg7DnoCq"> <div class="border-bottom-hairline flex-feature-wrapper"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="headline x-small normal-style "> <a href="/salud/2017/12/01/el-spa-del-corazon-asi-funciona-la-ultima-tecnologia-para-el-tratamiento-de-angioplastias/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> El spa del corazón: así funciona la última tecnología para el tratamiento de angioplastias </a> </div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_3025" class="lazy-wrapper photo-wrapper"> <a href="/salud/2017/12/01/el-spa-del-corazon-asi-funciona-la-ultima-tecnologia-para-el-tratamiento-de-angioplastias/"><img data-original="https://www.infobae.com/new-resizer/vsC8urmO6AetNnMxPyqBDsIeDM4=/999x561/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/08/29084700/cuidado-corazon-2.jpg" class="image-lazy"></a></div> <style>#flex_3025.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:56.17977528089888%}#flex_3025.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-md-3 col-xs-12 col-sm-3 pb-feature pb-layout-item pb-f-homepage-story-feed" id="f0d4PGgg7DnoCq"> <div class="border-bottom-hairline flex-feature-wrapper"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="headline x-small normal-style "> <a href="/salud/fitness/2017/12/01/el-plan-fit-para-el-verano-la-rutina-ideal-para-afinar-la-silueta-antes-de-las-vacaciones/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> El plan fit para el verano: la rutina ideal para afinar la silueta antes de las vacaciones </a> </div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_1794" class="lazy-wrapper photo-wrapper"> <a href="/salud/fitness/2017/12/01/el-plan-fit-para-el-verano-la-rutina-ideal-para-afinar-la-silueta-antes-de-las-vacaciones/"><img data-original="https://www.infobae.com/new-resizer/evSziA2xz-hO8Irc_vIr02N5o3g=/999x561/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/11/30162416/playa-entrenamiento.jpg" class="image-lazy"></a></div> <style>#flex_1794.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:56.17977528089888%}#flex_1794.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="clear"></div> </div> <div class="clear"></div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-global-single-line" id="f0PYm6WFOu6IBq"> <div class="border-bottom-none"></div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-homepage-story" id="fYUikr1FOu6IBq"> <div class="border-bottom-kinda-tight"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="label-wrapper text-align-inherit"> <a href="http://www.infobae.com/america/fotos/"> <div style="color:#000000;background-color:#DDDDDD;" class="pb-font-smoothing label label-bar label-with-background class_355378" data-pb-field="custom.label" data-pb-placeholder="Label">FOTOS AL 100</div> </a> </div> </div> </div> </div> <div class="pb-container"> <div class="standard-chain in-chain border-bottom-none pb-layout-item pb-chain pb-c-standard-chain col-lg-12 col-md-12 col-sm-12 col-xs-12" id="cUETB72FOu6IBq"> <div class="chain-content no-skin"> <div class="wrapper clearfix col-lg-4 col-xs-12 col-md-4 pb-feature pb-layout-item pb-f-homepage-story-feed col-sm-4" id="f09Xaimg7DnoCq"> <div class="border-bottom-tight flex-feature-wrapper"> <div class="skin skin-card flex-item flex-stack text-align-left equalize-height-target"> <div class="headline small normal-style "> <a href="/vidriera/2017/12/03/40-fotos-del-124o-campeonato-argentino-abierto-de-polo-de-palermo/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> 40 fotos del 124º Campeonato Argentino Abierto de Polo de Palermo </a> </div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_6596" class="lazy-wrapper photo-wrapper"> <a href="/vidriera/2017/12/03/40-fotos-del-124o-campeonato-argentino-abierto-de-polo-de-palermo/"><img data-original="https://www.infobae.com/new-resizer/UgWnm-sqKzNRVhG5xW2c7-MxP-8=/999x999/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/03051929/valeria-mazza1.jpg" class="image-lazy"></a></div> <style>#flex_6596.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:100.0%}#flex_6596.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-4 col-xs-12 col-md-4 pb-feature pb-layout-item pb-f-homepage-story-feed col-sm-4" id="fm1eng1g7DnoCq"> <div class="border-bottom-tight flex-feature-wrapper"> <div class="skin skin-card flex-item flex-stack text-align-left equalize-height-target"> <div class="headline small normal-style "> <a href="/teleshow/fotos-teleshow/2017/12/03/un-fuego-las-fotos-mas-sexies-de-vicky-garay-la-cunada-de-pampita-en-la-intimidad-tengo-la-iniciativa/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> ¡Un fuego! Las fotos más sexies de Vicky Garay, la cuñada de Pampita: "En la intimidad tengo la iniciativa" </a> </div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_6736" class="lazy-wrapper photo-wrapper"> <a href="/teleshow/fotos-teleshow/2017/12/03/un-fuego-las-fotos-mas-sexies-de-vicky-garay-la-cunada-de-pampita-en-la-intimidad-tengo-la-iniciativa/"><img data-original="https://www.infobae.com/new-resizer/w5Vt8TMqiJmcFdCBZ0IZsQf4dd8=/999x999/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/11/30125820/Vicky-Garay-cunada-Pampita-8.jpg" class="image-lazy"></a></div> <style>#flex_6736.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:100.0%}#flex_6736.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-4 col-xs-12 col-md-4 pb-feature pb-layout-item pb-f-homepage-story-feed col-sm-4" id="f0q3bwig7DnoCq"> <div class="border-bottom-tight flex-feature-wrapper"> <div class="skin skin-card flex-item flex-stack text-align-left equalize-height-target"> <div class="headline small normal-style "> <a href="/gente/revista-gente-fotos/2017/12/02/las-fotos-mas-sensuales-de-barbie-velez-en-gente/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> Las fotos más sensuales de Barbie Vélez en GENTE </a> </div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_1752" class="lazy-wrapper photo-wrapper"> <a href="/gente/revista-gente-fotos/2017/12/02/las-fotos-mas-sensuales-de-barbie-velez-en-gente/"><img data-original="https://www.infobae.com/new-resizer/WY0dN2YIclfNe-8yHVrFMVP4gCk=/999x999/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01162803/GENTE-BarbieVelez-APERTURA2-011217-02.jpg" class="image-lazy"></a></div> <style>#flex_1752.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:100.0%}#flex_1752.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-global-single-line" id="fOnNlj1g7DnoCq"> <div class="border-bottom-off"></div> </div> <div class="wrapper clearfix col-lg-4 col-xs-12 col-md-4 pb-feature pb-layout-item pb-f-homepage-story-feed col-sm-4" id="f0I1hnug7DnoCq"> <div class="border-bottom-tight flex-feature-wrapper"> <div class="skin skin-card flex-item flex-stack text-align-left equalize-height-target"> <div class="headline small normal-style "> <a href="/teleshow/fotos-teleshow/2017/12/02/asi-lucian-los-actores-de-el-chavo-del-8-cuando-eran-ninos-en-la-vida-real/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> Así lucían los actores de "El Chavo del 8" cuando eran niños en la vida real </a> </div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_1473" class="lazy-wrapper photo-wrapper"> <a href="/teleshow/fotos-teleshow/2017/12/02/asi-lucian-los-actores-de-el-chavo-del-8-cuando-eran-ninos-en-la-vida-real/"><img data-original="https://www.infobae.com/new-resizer/kRNFVofmqVaiOJME7eqI_Ry3I5s=/999x999/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2016/06/18125550/1457985288-chavo-del-8-y-su-cancelacion.jpg" class="image-lazy"></a></div> <style>#flex_1473.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:100.0%}#flex_1473.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-4 col-xs-12 col-md-4 pb-feature pb-layout-item pb-f-homepage-story-feed col-sm-4" id="f0IRKNog7DnoCq"> <div class="border-bottom-tight flex-feature-wrapper"> <div class="skin skin-card flex-item flex-stack text-align-left equalize-height-target"> <div class="headline small normal-style "> <a href="/vidriera/2017/12/02/25-fotos-del-100-aniversario-de-la-residencia-britanica/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> 25 fotos del 100° aniversario de la Residencia Británica </a> </div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_8402" class="lazy-wrapper photo-wrapper"> <a href="/vidriera/2017/12/02/25-fotos-del-100-aniversario-de-la-residencia-britanica/"><img data-original="https://www.infobae.com/new-resizer/h0TF3u1_fPFYvReVzQE2pw_Q4rg=/999x999/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01163839/Aniversario-Embajada-de-Reino-Unido-21.jpg" class="image-lazy"></a></div> <style>#flex_8402.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:100.0%}#flex_8402.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-4 col-xs-12 col-md-4 pb-feature pb-layout-item pb-f-homepage-story-feed col-sm-4" id="f0BKb6eg7DnoCq"> <div class="border-bottom-tight flex-feature-wrapper"> <div class="skin skin-card flex-item flex-stack text-align-left equalize-height-target"> <div class="headline small normal-style "> <a href="/teleshow/fotos-teleshow/2017/12/02/la-semana-en-imagenes-el-suicidio-de-rocio-gancedo-el-polemico-noviazgo-de-barbie-velez-y-la-gala-de-gente/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> La semana, en imágenes: el suicidio de Rocío Gancedo, el polémico noviazgo de Barbie Vélez y la gala de Gente </a> </div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_7735" class="lazy-wrapper photo-wrapper"> <a href="/teleshow/fotos-teleshow/2017/12/02/la-semana-en-imagenes-el-suicidio-de-rocio-gancedo-el-polemico-noviazgo-de-barbie-velez-y-la-gala-de-gente/"><img data-original="https://www.infobae.com/new-resizer/Fi1nrjjm8sXWDxhOQ0KxjdsdsG8=/999x999/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/01132302/Semana-imagenes.jpg" class="image-lazy"></a></div> <style>#flex_7735.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:100.0%}#flex_7735.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="clear"></div> </div> <div class="clear"></div> </div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-ads-dfp" id="fOsxDr1FOu6IBq"> <div id="exp-push-4-970x250" class="dfp-ad-hidden pb-ad-container pb-ad pb-ad-prod expandable ad-970X90 hide-mobile" data-slot-name="exp-push-4-970x250" data-mobile-display="false" data-desktop-display="true"> </div> <div class="dfp-ad-hidden border-bottom-none hide-mobile"></div> <script>window.dfpAdHelper.appendAd("exp-push-4-970x250","/1058609/infobae/sociedad/nota/exp_push_4_970x250",[[970,90],[970,250]],"expandable");</script> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-global-single-line" id="fpYsDi2FOu6IBq"> <div class="border-bottom-none"></div> </div> <div class="pb-container"> <div class="standard-chain in-chain border-bottom-none pb-layout-item pb-chain pb-c-standard-chain" id="cDMwUv1FOu6IBq"> <div class="chain-content no-skin"> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-homepage-story" id="fqgKgI1g7DnoCq"> <div class="border-bottom-kinda-tight"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="label-wrapper text-align-inherit"> <a href="https://www.infobae.com/series-peliculas/"> <div style="color:#000000;background-color:#DDDDDD;" class="pb-font-smoothing label label-bar label-with-background class_4556411" data-pb-field="custom.label" data-pb-placeholder="Label">SERIES Y PELÍCULAS</div> </a> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-md-3 col-xs-12 col-sm-3 pb-feature pb-layout-item pb-f-homepage-story-feed" id="f0tn05Jg7DnoCq"> <div class="border-bottom-hairline flex-feature-wrapper"> <div class="skin skin-card flex-item flex-stack text-align-left equalize-height-target"> <div class="headline x-small normal-style "> <a href="/series-peliculas/2017/12/03/young-sheldon-un-spin-off-de-la-serie-la-teoria-del-big-bang/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> “Young Sheldon”: un spin-off de la serie “La teoría del Big Bang” </a> </div> <div class="blurb normal-style" data-pb-field="description.basic" data-pb-field-type="text" data-pb-placeholder="Write blurb here.">🍿🍿🍿 Buena</div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_1293" class="lazy-wrapper photo-wrapper"> <a href="/series-peliculas/2017/12/03/young-sheldon-un-spin-off-de-la-serie-la-teoria-del-big-bang/"><img data-original="https://www.infobae.com/new-resizer/0564aPlHib0y4AVwwnLw8WZNyoc=/999x999/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/11/02174411/sheldon8.jpg" class="image-lazy"></a></div> <style>#flex_1293.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:100.0%}#flex_1293.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-md-3 col-xs-12 col-sm-3 pb-feature pb-layout-item pb-f-homepage-story-feed" id="f05Dv52g7DnoCq"> <div class="border-bottom-hairline flex-feature-wrapper"> <div class="skin skin-card flex-item flex-stack text-align-left equalize-height-target"> <div class="headline x-small normal-style "> <a href="/series-peliculas/2017/12/02/el-actor-jeremy-renner-protagoniza-la-cinta-policiaca-viento-salvaje/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> El policial “Viento salvaje”, con Jeremy Renner, llega al streaming vía iTunes </a> </div> <div class="blurb normal-style" data-pb-field="description.basic" data-pb-field-type="text" data-pb-placeholder="Write blurb here.">🍿🍿🍿🍿 Muy Buena</div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_8881" class="lazy-wrapper photo-wrapper"> <a href="/series-peliculas/2017/12/02/el-actor-jeremy-renner-protagoniza-la-cinta-policiaca-viento-salvaje/"><img data-original="https://www.infobae.com/new-resizer/cIhw1FZ0NLaN0UHeEkBDX4tPr64=/999x999/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/10/30134716/wind5.jpg" class="image-lazy"></a></div> <style>#flex_8881.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:100.0%}#flex_8881.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-md-3 col-xs-12 col-sm-3 pb-feature pb-layout-item pb-f-homepage-story-feed" id="fhxzjT1g7DnoCq"> <div class="border-bottom-hairline flex-feature-wrapper"> <div class="skin skin-card flex-item flex-stack text-align-left equalize-height-target"> <div class="headline x-small normal-style "> <a href="/series-peliculas/2017/12/02/la-querida-del-centauro-serie-netflix/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> La segunda temporada de “La querida del Centauro” trae acción y venganza </a> </div> <div class="blurb normal-style" data-pb-field="description.basic" data-pb-field-type="text" data-pb-placeholder="Write blurb here.">🍿🍿🍿🍿🍿 Excelente</div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_4261" class="lazy-wrapper photo-wrapper"> <a href="/series-peliculas/2017/12/02/la-querida-del-centauro-serie-netflix/"><img data-original="https://www.infobae.com/new-resizer/AOfkpyAGNm7FB2FXy4eh4Q2zIt0=/999x999/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/10/22094847/querida7.jpg" class="image-lazy"></a></div> <style>#flex_4261.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:100.0%}#flex_4261.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-md-3 col-xs-12 col-sm-3 pb-feature pb-layout-item pb-f-homepage-story-feed" id="fsQTMO1g7DnoCq"> <div class="border-bottom-hairline flex-feature-wrapper"> <div class="skin skin-card flex-item flex-stack text-align-left equalize-height-target"> <div class="headline x-small normal-style "> <a href="/series-peliculas/2017/12/01/32-pills-my-sisters-suicide-se-estrena-en-hbo/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> “32 Pills: My Sister’s Suicide”: un documental desgarrador en HBO </a> </div> <div class="blurb normal-style" data-pb-field="description.basic" data-pb-field-type="text" data-pb-placeholder="Write blurb here.">🍿🍿🍿 Buena</div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_7721" class="lazy-wrapper photo-wrapper"> <a href="/series-peliculas/2017/12/01/32-pills-my-sisters-suicide-se-estrena-en-hbo/"><img data-original="https://www.infobae.com/new-resizer/BXyYUEsoYXgq85VtBXHrOfcA_hc=/999x999/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/11/20171636/pills5.jpeg" class="image-lazy"></a></div> <style>#flex_7721.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:100.0%}#flex_7721.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="clear"></div> </div> <div class="clear"></div> </div> <div class="standard-chain in-chain border-bottom-none pb-layout-item pb-chain pb-c-standard-chain" id="c0r7MoKFOu6IBq"> <div class="chain-content no-skin"> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-homepage-story" id="fxA1VN1g7DnoCq"> <div class="border-bottom-kinda-tight"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="label-wrapper text-align-inherit"> <a href="https://www.infobae.com/america/"> <div style="color:#000000;background-color:#DDDDDD;" class="pb-font-smoothing label label-bar label-with-background class_6602736" data-pb-field="custom.label" data-pb-placeholder="Label">INFOBAE AMÉRICA</div> </a> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-md-3 col-xs-12 col-sm-3 pb-feature pb-layout-item pb-f-homepage-story-feed" id="f0A4tzxg7DnoCq"> <div class="border-bottom-hairline flex-feature-wrapper"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="headline x-small normal-style "> <a href="/america/venezuela/2017/12/02/la-oposicion-venezolana-califico-de-relevante-el-dialogo-con-el-regimen-de-nicolas-maduro/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> La oposición venezolana calificó de "relevante" el diálogo con el régimen de Nicolás Maduro </a> </div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_4728" class="lazy-wrapper photo-wrapper"> <a href="/america/venezuela/2017/12/02/la-oposicion-venezolana-califico-de-relevante-el-dialogo-con-el-regimen-de-nicolas-maduro/"><img data-original="https://www.infobae.com/new-resizer/AUFnC7lWvqDSXK7n9n5c2cLZlHY=/999x561/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/02230532/julio-borges.jpg" class="image-lazy"></a></div> <style>#flex_4728.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:56.17977528089888%}#flex_4728.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-md-3 col-xs-12 col-sm-3 pb-feature pb-layout-item pb-f-homepage-story-feed" id="fkZpIn1g7DnoCq"> <div class="border-bottom-hairline flex-feature-wrapper"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="headline x-small normal-style "> <a href="/america/eeuu/2017/12/03/la-felicidad-de-una-perra-rescatada-de-la-calle-luego-de-recibir-un-corte-de-pelo-y-ser-adoptada/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> La felicidad de una perra rescatada de la calle luego de recibir un corte de pelo y ser adoptada </a> </div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_9039" class="lazy-wrapper photo-wrapper"> <a href="/america/eeuu/2017/12/03/la-felicidad-de-una-perra-rescatada-de-la-calle-luego-de-recibir-un-corte-de-pelo-y-ser-adoptada/"><img data-original="https://www.infobae.com/new-resizer/82fqkJzLYSZ29x3SmW4iB3oI0GE=/999x561/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/03013054/perro-callejero-.jpg" class="image-lazy"></a></div> <style>#flex_9039.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:56.17977528089888%}#flex_9039.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-md-3 col-xs-12 col-sm-3 pb-feature pb-layout-item pb-f-homepage-story-feed" id="f0c5XQVg7DnoCq"> <div class="border-bottom-hairline flex-feature-wrapper"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="headline x-small normal-style "> <a href="/america/mundo/2017/12/03/afganistan-un-terrorista-hizo-estallar-su-motocicleta-y-mato-a-seis-personas-en-el-norte-del-pais/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> Afganistán: un terrorista hizo estallar su motocicleta y mató a seis personas en el norte del país </a> </div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_380" class="lazy-wrapper photo-wrapper"> <a href="/america/mundo/2017/12/03/afganistan-un-terrorista-hizo-estallar-su-motocicleta-y-mato-a-seis-personas-en-el-norte-del-pais/"><img data-original="https://www.infobae.com/new-resizer/xjF9ninc_gb063jjrgzgdtMz8k4=/999x561/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/03075442/Atentado-en-Jalalabad-Afganistan-2.jpg" class="image-lazy"></a></div> <style>#flex_380.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:56.17977528089888%}#flex_380.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-md-3 col-xs-12 col-sm-3 pb-feature pb-layout-item pb-f-homepage-story-feed" id="f0eAMdrg7DnoCq"> <div class="border-bottom-hairline flex-feature-wrapper"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="headline x-small normal-style "> <a href="/series-peliculas/2017/12/03/young-sheldon-un-spin-off-de-la-serie-la-teoria-del-big-bang/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> “Young Sheldon”: un spin-off de la serie “La teoría del Big Bang” </a> </div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_2485" class="lazy-wrapper photo-wrapper"> <a href="/series-peliculas/2017/12/03/young-sheldon-un-spin-off-de-la-serie-la-teoria-del-big-bang/"><img data-original="https://www.infobae.com/new-resizer/orok5NUpB9AvW-PM8Uu8f77qWE8=/999x561/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/11/02174411/sheldon8.jpg" class="image-lazy"></a></div> <style>#flex_2485.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:56.17977528089888%}#flex_2485.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="clear"></div> </div> <div class="clear"></div> </div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-ads-dfp" id="f06IFjoFOu6IBq"> <div id="exp-push-5-970x250" class="dfp-ad-hidden pb-ad-container pb-ad pb-ad-prod expandable ad-970X90 hide-mobile" data-slot-name="exp-push-5-970x250" data-mobile-display="false" data-desktop-display="true"> </div> <div class="dfp-ad-hidden border-bottom-none hide-mobile"></div> <script>window.dfpAdHelper.appendAd("exp-push-5-970x250","/1058609/infobae/sociedad/nota/exp_push_5_970x250",[[970,90],[970,250]],"expandable");</script> </div> <div class="pb-container"> <div class="standard-chain in-chain border-bottom-none pb-layout-item pb-chain pb-c-standard-chain" id="ckKFao1FOu6IBq"> <div class="chain-content no-skin"> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-homepage-story" id="f3joKi2g7DnoCq"> <div class="border-bottom-kinda-tight"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="label-wrapper text-align-inherit"> <a href="https://www.infobae.com/america/wapo/"> <div style="color:#000000;background-color:#000000;" class="pb-font-smoothing label label-bar label-with-background class_5768958" data-pb-field="custom.label" data-pb-placeholder="Label"><img src="https://s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/05/22094331/the-washington-post_logo.png" style="height:28px; margin-top:-1px"></div> </a> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-md-3 col-xs-12 col-sm-3 pb-feature pb-layout-item pb-f-homepage-story-feed" id="f0pyzIrg7DnoCq"> <div class="border-bottom-hairline flex-feature-wrapper"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="headline small normal-style "> <a href="/america/wapo/2017/12/03/como-el-perro-parlante-de-alexander-graham-bell-ayudo-al-diseno-del-apple-iphone-x/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> De qué forma el perro parlante de Alexander Graham Bell ayudó al diseño del iPhone X </a> </div> <div class="art art-low art-x-small art-full-width text-align-left no-art-separator"> <div id="flex_3150" class="lazy-wrapper photo-wrapper"> <a href="/america/wapo/2017/12/03/como-el-perro-parlante-de-alexander-graham-bell-ayudo-al-diseno-del-apple-iphone-x/"><img data-original="https://www.infobae.com/new-resizer/P3xpBeKhzmpLzNStNJd5pDwTvaE=/999x751/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/11/21152830/iphone-tienda-apple.jpg" class="image-lazy"></a></div> <style>#flex_3150.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:75.18796992481202%}#flex_3150.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-md-3 col-xs-12 col-sm-3 pb-feature pb-layout-item pb-f-homepage-story-feed" id="f1A6Gy1g7DnoCq"> <div class="border-bottom-hairline flex-feature-wrapper"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="headline small normal-style "> <a href="/america/wapo/2017/12/03/mi-hermana-sigue-saliendo-con-hombres-mayores-acaso-es-por-culpa-de-nuestro-padre/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> Mi hermana sigue saliendo con hombres mayores ¿Acaso es por culpa de nuestro padre? </a> </div> <div class="art art-low art-x-small art-full-width text-align-left no-art-separator"> <div id="flex_6333" class="lazy-wrapper photo-wrapper"> <a href="/america/wapo/2017/12/03/mi-hermana-sigue-saliendo-con-hombres-mayores-acaso-es-por-culpa-de-nuestro-padre/"><img data-original="https://www.infobae.com/new-resizer/v7mVgpICo2sJw3MhzWJlMWvI7l4=/999x751/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/10/30161427/PARATI-PAREJA-APERTURA-ESTARMEJOR-150917.jpg" class="image-lazy"></a></div> <style>#flex_6333.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:75.18796992481202%}#flex_6333.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-md-3 col-xs-12 col-sm-3 pb-feature pb-layout-item pb-f-homepage-story-feed" id="f0pA22yg7DnoCq"> <div class="border-bottom-hairline flex-feature-wrapper"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="headline small normal-style "> <a href="/america/wapo/2017/12/03/como-el-aspecto-humoristico-de-lo-burdo-puede-ayudar-a-los-ninos-a-entender-sus-cuerpos/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> Cómo el aspecto humorístico de lo burdo puede ayudar a los niños a entender sus cuerpos </a> </div> <div class="art art-low art-x-small art-full-width text-align-left no-art-separator"> <div id="flex_3153" class="lazy-wrapper photo-wrapper"> <a href="/america/wapo/2017/12/03/como-el-aspecto-humoristico-de-lo-burdo-puede-ayudar-a-los-ninos-a-entender-sus-cuerpos/"><img data-original="https://www.infobae.com/new-resizer/46VTEtSQHJxGnI5KLhXnQQLauZ4=/999x751/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/08/18104012/iStock-665870928.jpg" class="image-lazy"></a></div> <style>#flex_3153.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:75.18796992481202%}#flex_3153.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-md-3 col-xs-12 col-sm-3 pb-feature pb-layout-item pb-f-homepage-story-feed" id="f0gXLurg7DnoCq"> <div class="border-bottom-hairline flex-feature-wrapper"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="headline small normal-style "> <a href="/america/wapo/2017/12/02/ondas-gravitacionales-estrellas-de-neutrones-y-kilonovas-que-significan-para-la-fisica/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> Ondas gravitacionales, estrellas de neutrones y kilonovas ¿Qué significan para la física? </a> </div> <div class="art art-low art-x-small art-full-width text-align-left no-art-separator"> <div id="flex_4205" class="lazy-wrapper photo-wrapper"> <a href="/america/wapo/2017/12/02/ondas-gravitacionales-estrellas-de-neutrones-y-kilonovas-que-significan-para-la-fisica/"><img data-original="https://www.infobae.com/new-resizer/QZEca-Rj5yrdHsBE5H_ti5o3WPk=/999x751/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/10/11172746/GettyImages-472679632.jpg" class="image-lazy"></a></div> <style>#flex_4205.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:75.18796992481202%}#flex_4205.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="clear"></div> </div> <div class="clear"></div> </div> <div class="standard-chain in-chain border-bottom-none pb-layout-item pb-chain pb-c-standard-chain" id="c2DhVC1FOu6IBq"> <div class="chain-content no-skin"> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-homepage-story" id="f07hVJ1g7DnoCq"> <div class="border-bottom-kinda-tight"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="label-wrapper text-align-inherit"> <a href="https://www.infobae.com/america/vice/"> <div style="color:#000000;background-color:#DDDDDD;" class="pb-font-smoothing label label-bar label-with-background class_2335339" data-pb-field="custom.label" data-pb-placeholder="Label"><img src="http://www.infobae.com/resizer/?op=resize&amp;url=https://s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/09/14154721/logo_vice.png&amp;mode=crop&amp;h=24&amp;q=75&amp;token=bar" style="height:24px; margin-top:-5px"></div> </a> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-md-3 col-xs-12 col-sm-3 pb-feature pb-layout-item pb-f-homepage-story-feed" id="fcp6Fa2g7DnoCq"> <div class="border-bottom-hairline flex-feature-wrapper"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="headline small normal-style "> <a href="/america/vice/2017/12/02/practique-el-mejor-sexo-de-mi-vida-estando-embarazada/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> La experiencia de practicar el mejor sexo de tu vida estando embarazada </a> </div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_6176" class="lazy-wrapper photo-wrapper"> <a href="/america/vice/2017/12/02/practique-el-mejor-sexo-de-mi-vida-estando-embarazada/"><img data-original="https://www.infobae.com/new-resizer/6Dq6FU-bJMy7S8cGTWb1tEMftvA=/999x561/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/11/30072118/embarazo-pareja.jpg" class="image-lazy"></a></div> <style>#flex_6176.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:56.17977528089888%}#flex_6176.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-md-3 col-xs-12 col-sm-3 pb-feature pb-layout-item pb-f-homepage-story-feed" id="f47lg72g7DnoCq"> <div class="border-bottom-hairline flex-feature-wrapper"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="headline small normal-style "> <a href="/america/vice/2017/12/02/escuchar-musica-en-el-trabajo-puede-empeorar-tu-desempeno/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> Escuchar música en el trabajo puede empeorar tu desempeño profesional </a> </div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_6445" class="lazy-wrapper photo-wrapper"> <a href="/america/vice/2017/12/02/escuchar-musica-en-el-trabajo-puede-empeorar-tu-desempeno/"><img data-original="https://www.infobae.com/new-resizer/wcE6Gmso_wlNnoZ0oeaPejwtXTM=/999x561/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/11/30205805/escuchar-musica-trabajando.jpg" class="image-lazy"></a></div> <style>#flex_6445.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:56.17977528089888%}#flex_6445.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-md-3 col-xs-12 col-sm-3 pb-feature pb-layout-item pb-f-homepage-story-feed" id="fbDncF1g7DnoCq"> <div class="border-bottom-hairline flex-feature-wrapper"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="headline small normal-style "> <a href="/america/vice/2017/12/02/todo-lo-que-me-hubiera-gustado-saber-antes-de-ir-a-la-universidad/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> Todo lo que me hubiera gustado saber antes de ir a la universidad </a> </div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_2107" class="lazy-wrapper photo-wrapper"> <a href="/america/vice/2017/12/02/todo-lo-que-me-hubiera-gustado-saber-antes-de-ir-a-la-universidad/"><img data-original="https://www.infobae.com/new-resizer/hGbzz9dscI1oPngO5JZxLh2vq8U=/999x561/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/11/30035331/Vuelta-a-las-aulas.jpg" class="image-lazy"></a></div> <style>#flex_2107.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:56.17977528089888%}#flex_2107.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-md-3 col-xs-12 col-sm-3 pb-feature pb-layout-item pb-f-homepage-story-feed" id="f0Gwq1lg7DnoCq"> <div class="border-bottom-hairline flex-feature-wrapper"> <div class="no-skin flex-item flex-stack text-align-left equalize-height-target"> <div class="headline small normal-style "> <a href="/america/vice/2017/12/01/la-alergia-a-la-comida-podria-afectar-la-salud-mental-de-los-ninos/" data-pb-field="headline" data-pb-url-field="canonical_url" data-pb-placeholder="Write headline here"> La alergia a la comida podría afectar la salud mental de los niños </a> </div> <div class="art art-low art-small art-full-width text-align-left no-art-separator"> <div id="flex_5946" class="lazy-wrapper photo-wrapper"> <a href="/america/vice/2017/12/01/la-alergia-a-la-comida-podria-afectar-la-salud-mental-de-los-ninos/"><img data-original="https://www.infobae.com/new-resizer/GvaK3yL2gIUkYUgRVOnY7_En5n8=/999x561/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/11/29223312/manies-cacahuates.jpg" class="image-lazy"></a></div> <style>#flex_5946.lazy-wrapper{position:relative;height:0;overflow:hidden;padding-bottom:56.17977528089888%}#flex_5946.lazy-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%}</style> <div class="clear"></div> </div> </div> </div> </div> <div class="clear"></div> </div> <div class="clear"></div> </div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-global-single-line" id="fLyh9K1FOu6IBq"> <div class="border-bottom-tight"></div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-ads-dfp" id="f08Jv41FOu6IBq"> <div id="exp-push-6-970x250" class="dfp-ad-hidden pb-ad-container pb-ad pb-ad-prod expandable ad-970X90 hide-mobile" data-slot-name="exp-push-6-970x250" data-mobile-display="false" data-desktop-display="true"> </div> <div class="dfp-ad-hidden border-bottom-none hide-mobile"></div> <script>window.dfpAdHelper.appendAd("exp-push-6-970x250","/1058609/infobae/sociedad/nota/exp_push_6_970x250",[[970,90],[970,250]],"expandable");</script> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-global-single-line" id="fjwl7i1FOu6IBq"> <div class="border-bottom-tight"></div> </div> <div class="standard-chain in-chain border-bottom- pb-layout-item pb-chain pb-c-standard-chain full" id="cs1ZT22FOu6IBq"> <div class="chain-content equalize-heights no-skin"> <div class="wrapper clearfix col-lg-3 col-sm-6 col-md-3 col-xs-12 pb-feature pb-layout-item pb-f-list-card-column" id="fpCCIO1FOu6IBq"> <div class="col-sm-12 section-column"> <header><a href="/category/"></a><h3 class="header-label"><a href="/category/"></a><a href="http://www.infobae.com/ultimas-noticias"><strong>ÚLTIMAS NOTICIAS</strong></a></h3></header> <div class="column-item"> <a href="/politica/2017/12/03/g20-venezuela-y-la-busqueda-del-ara-san-juan-la-agenda-de-marcos-pena-en-su-visita-a-eeuu/"> <div class="lazy-wrapper"> <img data-original="https://www.infobae.com/new-resizer/w1z7tobCQL3GZ9YhdYCC9UuUbC0=/600x400/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/02193822/Marcos-Pena-con-Ricky-Waddell-1920.jpg" alt="" class="image-lazy"> </div> </a> <h4 class="first"><a href="/politica/2017/12/03/g20-venezuela-y-la-busqueda-del-ara-san-juan-la-agenda-de-marcos-pena-en-su-visita-a-eeuu/">G20, Venezuela y la búsqueda del ARA San Juan, la agenda de Marcos Peña en su visita a EEUU</a></h4> </div> <div class="column-item"> <h4><a href="/sociedad/2017/12/03/cuanto-dinero-se-necesita-para-armar-el-arbolito-navideno/">¿Cuánto dinero se necesita para armar el arbolito navideño?</a></h4> </div> <div class="column-item"> <h4><a href="/sociedad/2017/12/03/un-taller-de-panes-dulces-donde-la-integracion-es-posible/">Un taller de panes dulces donde la integración es posible</a></h4> </div> <div class="column-item"> <h4><a href="/economia/2017/12/03/orlando-ferreres-en-2018-la-economia-va-a-crecer-menos-y-tambien-la-inflacion-sera-menor/">Orlando Ferreres: "En 2018 la economía va a crecer menos y también la inflación será menor"</a></h4> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-sm-6 col-md-3 col-xs-12 pb-feature pb-layout-item pb-f-list-card-column" id="fhTMuN1FOu6IBq"> <div class="col-sm-12 section-column"> <header><a href="/category/"></a><h3 class="header-label"><a href="/category/"></a><a href="http://www.infobae.com/america/"><img src="http://www.infobae.com/resizer/?op=resize&amp;url=https://s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2016/09/27141508/america.png&amp;mode=crop&amp;h=24&amp;q=75&amp;token=bar" style="height:22px; margin-top:-6px"></a></h3></header> <div class="column-item"> <a href="/america/mundo/2017/12/03/afganistan-un-terrorista-hizo-estallar-su-motocicleta-y-mato-a-seis-personas-en-el-norte-del-pais/"> <div class="lazy-wrapper"> <img data-original="https://www.infobae.com/new-resizer/nsbMjcTGaowWVNWWetFTZuLTtxI=/600x400/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/03075442/Atentado-en-Jalalabad-Afganistan-2.jpg" alt="(AFP)" class="image-lazy"> </div> </a> <h4 class="first"><a href="/america/mundo/2017/12/03/afganistan-un-terrorista-hizo-estallar-su-motocicleta-y-mato-a-seis-personas-en-el-norte-del-pais/">Afganistán: un terrorista hizo estallar su motocicleta y mató a seis personas en el norte del país</a></h4> </div> <div class="column-item"> <h4><a href="/america/opinion/2017/12/03/la-falacia-de-los-robots-y-la-futura-falta-de-empleos/">La falacia de los robots y la futura falta de empleos</a></h4> </div> <div class="column-item"> <h4><a href="/america/cultura-america/2017/12/03/auguste-rodin-el-mal-alumno-al-que-sus-padres-enviaron-a-la-escuela-de-arte/">Auguste Rodin, el “mal alumno” al que sus padres enviaron a la escuela de arte</a></h4> </div> <div class="column-item"> <h4><a href="/america/mundo/2017/12/03/la-horrenda-historia-de-la-condesa-hungara-que-asesino-a-mas-de-600-mujeres-para-lograr-la-belleza-eterna-con-su-sangre/">La horrenda historia de la condesa húngara que asesinó a más de 600 mujeres para lograr la belleza eterna con su sangre</a></h4> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-sm-6 col-md-3 col-xs-12 pb-feature pb-layout-item pb-f-list-card-column" id="frLX6u1FOu6IBq"> <div class="col-sm-12 section-column"> <header><a href="/category/"></a><h3 class="header-label"><a href="/category/"></a><a href="http://www.infobae.com/teleshow/"><img src="http://www.infobae.com/resizer/?op=resize&amp;url=https://s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2016/05/29175800/Logo_teleshow.png&amp;mode=crop&amp;h=24&amp;q=75&amp;token=bar" style="height:26px; margin-top:-7px"></a></h3></header> <div class="column-item"> <a href="/teleshow/infoshow/2017/12/03/quienes-son-yon-gonzalez-y-amaia-salamanca-los-actores-de-las-series-espanolas-que-hacen-furor-en-netflix/"> <div class="lazy-wrapper"> <img data-original="https://www.infobae.com/new-resizer/_mxs5x5gvgcmeLULs8iVkzwtCvI=/600x400/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/11/21200606/gran-hotel.jpg" alt="" class="image-lazy"> </div> </a> <h4 class="first"><a href="/teleshow/infoshow/2017/12/03/quienes-son-yon-gonzalez-y-amaia-salamanca-los-actores-de-las-series-espanolas-que-hacen-furor-en-netflix/">Quiénes son Yon González y Amaia Salamanca, los actores de las series españolas que hacen furor en Netflix</a></h4> </div> <div class="column-item"> <h4><a href="/teleshow/infoshow/2017/12/03/la-ultima-moda-de-la-farandula-las-hijas-de-los-famosos-se-convierten-en-empresarias-y-lanzan-sus-propias-marcas/">La última moda de la farándula: las hijas de los famosos se convierten en empresarias y lanzan sus propias marcas</a></h4> </div> <div class="column-item"> <h4><a href="/teleshow/infoshow/2017/12/03/a-25-anos-del-boom-de-la-pachanga-la-historia-jamas-contada-del-hit-de-vilma-palma-quien-era-el-pelado/">A 25 años del boom de "La pachanga", la historia jamás contada del hit de Vilma Palma: ¿quién era "El Pelado"?</a></h4> </div> <div class="column-item"> <h4><a href="/america/entretenimiento/2017/12/03/los-curiosos-comienzos-como-extras-de-algunas-de-las-estrellas-mas-famosas-de-hollywood/">Los curiosos comienzos como extras de algunas de las estrellas más famosas de Hollywood</a></h4> </div> </div> </div> <div class="wrapper clearfix col-lg-3 col-sm-6 col-md-3 col-xs-12 pb-feature pb-layout-item pb-f-list-card-column" id="f03iXGIFOu6IBq"> <div class="col-sm-12 section-column"> <header><a href="/category/"></a><h3 class="header-label"><a href="/category/"></a><a href="http://www.infobae.com/deportes/"><img src="http://www.infobae.com/resizer/?op=resize&amp;url=https://s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2016/08/29170312/logo_deportes.png&amp;mode=crop&amp;h=24&amp;q=75&amp;token=bar" style="height:21px; margin-top:-10px"></a></h3></header> <div class="column-item"> <a href="/deportes-2/2017/12/03/superliga-argentina-20162017-fecha-11-talleres-vs-estudiantes/"> <div class="lazy-wrapper"> <img data-original="https://www.infobae.com/new-resizer/sTkG8rPssqcsZ5tW3IocdSZMvsI=/600x400/filters:quality(100)/s3.amazonaws.com/arc-wordpress-client-uploads/infobae-wp/wp-content/uploads/2017/12/03070044/talleres-vs-estudiantes-superliga-1920.jpg" alt="" class="image-lazy"> </div> </a> <h4 class="first"><a href="/deportes-2/2017/12/03/superliga-argentina-20162017-fecha-11-talleres-vs-estudiantes/">Talleres recibe a Estudiantes para acercarse a la cima: hora, TV y formaciones</a></h4> </div> <div class="column-item"> <h4><a href="/deportes-2/2017/12/03/daniel-orsanic-a-un-ano-de-la-historica-davis-como-fue-que-el-joven-que-durmio-en-un-auto-se-transformo-en-el-capitan-campeon/">Daniel Orsanic, a un año de la histórica Davis: cómo fue que el joven que durmió en un auto se transformó en el capitán campeón</a></h4> </div> <div class="column-item"> <h4><a href="/deportes-2/2017/12/03/15-minutos-con-messi-en-el-fin-del-mundo-la-increible-historia-de-alejandro-ocampo/">15 minutos con Messi en el fin del mundo: la increíble historia de Alejandro Ocampo</a></h4> </div> <div class="column-item"> <h4><a href="/deportes-2/mundial-2018/2017/12/03/estamos-ante-el-mundial-mas-dificil-y-glorioso-de-la-historia/">Estamos ante el Mundial más difícil y glorioso de la historia</a></h4> </div> </div> </div> <div class="clear"></div> </div> <div class="clear"></div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-global-flyin" id="fIh1Tf1FOu6IBq"> <div class="flyin-pb flyin-pb-right"> <a onclick="ga('send', 'event', 'Flyin Button', 'click');" href="http://www.infobae.com/?noredirect"> <span class="full-pb-span"> <i class="fa fa-home"></i> </span> </a> <div class="close-btn-pb-flyin"> <i class="fa fa-times"></i> </div> </div> </div> <div class="pb-container"> </div></section> <section id="bottom" class=""> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-global-footer-colored" id="f0Pz041FOu6IBq"> <footer class="light"> <div class="footer-row-1 row"> <div class="homepage-footer-share-buttons"> <a href="https://www.facebook.com/Infobae/" target="_blank" class="homepage-footer-button"s> <i class="fa fa-facebook" aria-hidden="true"></i> </a> <a href="https://www.twitter.com/Infobae/" class="homepage-footer-button" target="_blank"> <i class="fa fa-twitter" aria-hidden="true"></i> </a> <a href="http://www.infobae.com/argentina-rss.xml" class="homepage-footer-button " target="_blank"> <i class="fa fa-rss" aria-hidden="true"></i> </a> <a href="https://www.instagram.com/Infobae/" class="homepage-footer-button" target="_blank"> <i class="fa fa-instagram" aria-hidden="true"></i> </a> <a href="https://www.youtube.com/c/infobae" class="homepage-footer-button " target="_blank"> <i class="fa fa-youtube-play" aria-hidden="true"></i> </a> <div class="clear"></div> </div> <aside class="header-label footer-nav-item logo-holder"> <img src="https://www.infobae.com/new-resizer/lL0I2ZL9bhnWNZ6yfu3ZDD8Ydho=/300x0/filters:quality(100)/s3.amazonaws.com/wapopartners.com/infobae-wp/wp-content/uploads/2016/03/29190548/infobae.png" class="footer-logo"/> </aside> <aside class="header-label footer-nav-item company-name"> Todos los derechos reservados &#169; 2017 Infobae </aside> </div> <div class="footer-row-2 row"> <div class="footer-links col-lg-12 col-md-12 col-sm-12 col-xs-12"> <div class="footer-nav has-sub col-sm-3 col-xs-12"> <a class="footer-nav-item header-label" href="http://www.infobae.com/">Infobae</a> <ul class="footer-sub-nav"> <li class="footer-sub-nav-item header-label"> <a href="https://www.infobae.com/apps/">Apps</a> </li> <li class="footer-sub-nav-item header-label"> <a href="https://www.infobae.com/ultimas-noticias/">Últimas noticias</a> </li> <li class="footer-sub-nav-item header-label"> <a href="https://www.infobae.com/feeds/rss/">RSS</a> </li> <li class="footer-sub-nav-item header-label"> <a href="https://www.infobae.com/sitemap.xml">Sitemap</a> </li> </ul> </div> <div class="footer-nav has-sub col-sm-3 col-xs-12"> <a class="footer-nav-item header-label" href="http://www.infobae.com/">Contáctenos</a> <ul class="footer-sub-nav"> <li class="footer-sub-nav-item header-label"> <a href="mailto:[email protected]">Contacto</a> </li> <li class="footer-sub-nav-item header-label"> <a href="mailto:[email protected]">Redacción</a> </li> <li class="footer-sub-nav-item header-label"> <a href="http://cdn01.ib.infobae.com/adjuntos/162/documentos/periodistas/index.html">Red de Periodistas</a> </li> <li class="footer-sub-nav-item header-label"> <a href="mailto:[email protected]">Comercial</a> </li> <li class="footer-sub-nav-item header-label"> <a href="http://mediakit.infobae.com">Media Kit</a> </li> </ul> </div> <div class="footer-nav has-sub col-sm-3 col-xs-12"> <a class="footer-nav-item header-label" href="http://www.infobae.com/">Redes Sociales</a> <ul class="footer-sub-nav"> <li class="footer-sub-nav-item header-label"> <a href="http://www.facebook.com/infobae">Facebook</a> </li> <li class="footer-sub-nav-item header-label"> <a href="http://www.twitter.com/infobae">Twitter</a> </li> <li class="footer-sub-nav-item header-label"> <a href="http://www.instagram.com/infobae">Instagram</a> </li> </ul> </div> <div class="footer-nav has-sub col-sm-3 col-xs-12"> <a class="footer-nav-item header-label" href="http://www.infobae.com/">legal</a> <ul class="footer-sub-nav"> <li class="footer-sub-nav-item header-label"> <a href="https://www.infobae.com/terminos-y-condiciones/">Términos y Condiciones</a> </li> <li class="footer-sub-nav-item header-label"> <a href="https://www.infobae.com/politicas-de-privacidad/">Política de Privacidad</a> </li> </ul> </div> </div> <div class="footer-links col-lg-12 col-md-12 col-sm-12 col-xs-12"> </div> </div> </footer> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-ads-dfp" id="f0daG6aFOu6IBq"> <div id="background-1x1" class="dfp-ad-hidden pb-ad-container pb-ad pb-ad-prod wallpaper ad-1900X1200 hide-mobile" data-slot-name="background-1x1" data-mobile-display="false" data-desktop-display="true"> </div> <div class="dfp-ad-hidden border-bottom-none hide-mobile"></div> <script>window.dfpAdHelper.appendAd("background-1x1","/1058609/infobae/sociedad/nota/background_1x1",[1900,1200],"wallpaper");</script> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-ads-dfp" id="finDRi2FOu6IBq"> <div id="zocalo-1x1" class="dfp-ad-hidden pb-ad-container pb-ad pb-ad-prod zocalo ad-940X80" data-slot-name="zocalo-1x1" data-mobile-display="true" data-desktop-display="true"> </div> <div class="dfp-ad-hidden border-bottom-none"></div> <script>window.dfpAdHelper.appendAd("zocalo-1x1","/1058609/infobae/sociedad/nota/zocalo_1x1",[[940,80],[320,50],[1,1]],"zocalo");</script> </div> <div class="pb-container"> <div class="wrapper clearfix pb-feature pb-layout-item pb-f-global-clavis" id="f0AHs12FOu6IBq"> <script>(function(){window.clavis={topics:[],keywords:[],auxiliaries:[],contentId:"5EPSP5OX6BDPPIKTHQ4JYUHSNI",targetingUrl:"https://targeting.infobae.arcpublishing.com/TargetingWebAPP/targeting"}})();</script> </div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-ads-dfp" id="f0e8Y9iFOu6IBq"> <div id="interstitial-800x600" class="dfp-ad-hidden pb-ad-container pb-ad pb-ad-prod interstitial ad-800X600" data-slot-name="interstitial-800x600" data-mobile-display="true" data-desktop-display="true"> </div> <div class="dfp-ad-hidden border-bottom-none"></div> <script>window.dfpAdHelper.appendAd("interstitial-800x600","/1058609/infobae/sociedad/nota/interstitial_800x600",[[800,600],[300,416],[518,690]],"interstitial");</script> </div> <div class="pb-container"> <div class="pb-layout-item pb-chain pb-c-default-chain full" id="ci7w7a2FOu6IBq"> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-homepage-story" id="f0o4uD8FOu6IBq"> </div> </div> </div> <div class="wrapper clearfix full pb-feature pb-layout-item pb-f-video-sticky-player" id="f0h0MCmFOu6IBq"> <div class="arc-sticky-player-video pb-font-smoothing wpv-hidden" data-video-background-image=""> <div class="arc-sticky-player-exit"> <i class="fa fa-times"></i> <span class="franklin-bold">Cerrar</span> </div> <div class="arc-sticky-player-wrapper" id="arc-sticky-player-wrapper"></div> <div class="arc-sticky-player-text wpv-hidden"> <div class="label label-normal">Now Playing</div> <div class="arc-sticky-player-caption pb-caption"></div> </div> </div> </div> <div class="pb-container"> </div></section> <div class="pb-container"> </div></div> <script>(function(){function g(a,d,c,e){var b=new XMLHttpRequest;b.open("GET",a);b.onreadystatechange=function(){if(4==b.readyState)if(200===b.status)try{var a=JSON.parse(b.responseText);d(a)}catch(e){c()}else c()};e&&(b.ontimeout=c,b.timeout=e);b.send()}function l(a){var d=Date.now()-p;g("https://bandito-events-prod.infobae.arcpublishing.com/api/save-perf?status\x3d"+a+"\x26time\x3d"+d,function(){},function(){})}function q(){for(var a in _variantFeatureIds)_variantFeatureIds.hasOwnProperty(a)&&(l("failure"),
+k(_variantFeatureIds[a],!1))}function k(a,d){var c=document.getElementById(n[a]);m(a,a,c,d)}function t(a,d,c,e){var b=document.getElementById(a);g(_context+"/api/v2/render/feature/variant/"+c+"?rid\x3d"+_rid+"\x26uri\x3d"+_uri+"\x26outputType\x3d"+_outputType,function(a){var e=a.pageResources||{},f=b.parentNode,h=document.createElement("div");h.innerHTML=a.rendering;a=h.childNodes[0];f.replaceChild(a,b);f=Array.prototype.slice.call(a.getElementsByTagName("script"));for(h=0;h<f.length;h++)if(""!=f[h].src){var k=
+document.createElement("script");k.setAttribute("src",f[h].src);document.body.appendChild(k)}else eval(f[h].innerHTML);for(var g in e)e.hasOwnProperty(g)&&g.endsWith(".js")&&(f=document.createElement("script"),f.setAttribute("src",e[g]),document.body.appendChild(f));l("success-variant");m(d,c,a,!0)},function(){l("failure-step2");m(d,d,b,!1)},e)}function m(a,d,c,e){r[a]||(r[a]=!0,c.style.visibility="visible",e&&(e=new XMLHttpRequest,e.open("POST","https://bandito-events-prod.infobae.arcpublishing.com/api/save-event",
+!0),e.setRequestHeader("Content-Type","application/json"),e.send(JSON.stringify({event:"served",test_id:a,variant_id:d})),c.querySelectorAll("a").forEach(function(b){b.addEventListener("click",function(b){if(b&&b.target&&b.target.href){var c=new XMLHttpRequest;c.open("POST","https://bandito-events-prod.infobae.arcpublishing.com/api/save-event",!0);c.setRequestHeader("Content-Type","application/json");c.send(JSON.stringify({event:"clicked",test_id:a,variant_id:d}));0<b.button||b.ctrlKey||b.metaKey||
+b.shiftKey||(b.preventDefault(),setTimeout(function(){document.location=b.target.href},250))}})})))}function u(a){var d={};if(a&&a.length){for(var c=0;c<a.length;c++){var e=a[c].winner,b=a[c]._id,g=n[b];d[b]=!0;if(b==e)l("success-default"),k(b,!0);else{var m=1500-(Date.now()-p);50<m?t(g,b,e,m):(l("timeout-step1"),k(b,!1))}}for(var f in _variantFeatureIds)_variantFeatureIds.hasOwnProperty(f)&&(b=_variantFeatureIds[f],d[b]||(l("not-found"),k(b,!1)))}else q()}window.pageBuilder=window.pageBuilder||{};
+var n={},r={},p=Date.now();window.pageBuilder.showVariants=function(){var a=[],d;for(d in _variantFeatureIds)if(_variantFeatureIds.hasOwnProperty(d)){var c=_variantFeatureIds[d];n[c]=d;a.push(c)}a="/bandito/tests-pb/?q\x3d"+encodeURIComponent(JSON.stringify({_id:{$in:a}}));g(a,u,q)}})();</script> <script src="/pb/gr/c/default/rxO4LI1ihN8KCq/js/b4be7738ff.js?_=0365e"></script> <script src="/pb/gr/c/default/rxO4LI1ihN8KCq/footjs/b88498aec9.js?_=e49cb"></script> <script src="//www.youtube.com/iframe_api"></script> <script src="/pb/gr/c/default/rxO4LI1ihN8KCq/footjs/11f3bebf7c.js?_=e49cb"></script> <script src="https://d2ylgh2cnbot5i.cloudfront.net/v1/embed.js"></script> <script src="/pb/gr/c/default/rxO4LI1ihN8KCq/footjs/762e36a48c.js?_=e49cb"></script> <script src="/pb/gr/p/default/rxO4LI1ihN8KCq/render.js?_=c91be"></script> <script>jQuery(function(){jQuery.scrollDepth()});</script> <script>window.fbAsyncInit=function(){FB.init({appId:"303536999846097",xfbml:!0,version:"v2.6"})};(function(a,b,c){var d=a.getElementsByTagName(b)[0];a.getElementById(c)||(a=a.createElement(b),a.id=c,a.src="//connect.facebook.net/es_LA/sdk.js#xfbml\x3d1\x26version\x3dv2.6\x26appId\x3d303536999846097",d.parentNode.insertBefore(a,d))})(document,"script","facebook-jssdk");</script> <script>var _sf_async_config={uid:52562,domain:"infobae.com",useCanonical:!0,sections:"Sociedad",authors:"Mauricio Luna,Gisele Sousa Dias"};(function(){window._sf_endpt=(new Date).getTime();var a=document.createElement("script");a.setAttribute("language","javascript");a.setAttribute("type","text/javascript");a.setAttribute("src","//static.chartbeat.com/js/chartbeat.js");document.body.appendChild(a)})();</script> <script>dfpAdHelper.runAds();</script> </body> </html> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/keep-images/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/keep-images/expected-images.json
new file mode 100644
index 000000000..d5b5affb7
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/keep-images/expected-images.json
@@ -0,0 +1,17 @@
+{
+ "0": "https:\/\/d262ilb51hltx0.cloudfront.net\/max\/800\/1*sLDnS1UWEFIS33uLMxq3cw.jpeg",
+ "1": "https:\/\/d262ilb51hltx0.cloudfront.net\/max\/2000\/1*sLDnS1UWEFIS33uLMxq3cw.jpeg",
+ "2": "https:\/\/d262ilb51hltx0.cloudfront.net\/max\/800\/1*3vIhkoHIzcxvUdijoCVx6w.png",
+ "3": "https:\/\/d262ilb51hltx0.cloudfront.net\/max\/2000\/1*4gN1-fzOwCniw-DbqQjDeQ.jpeg",
+ "4": "https:\/\/d262ilb51hltx0.cloudfront.net\/max\/2000\/1*2KPmZkIBUrhps-2uwDvYFQ.jpeg",
+ "5": "https:\/\/d262ilb51hltx0.cloudfront.net\/max\/2000\/1*PU40bbbox2Ompc5I3RE99A.jpeg",
+ "6": "https:\/\/d262ilb51hltx0.cloudfront.net\/max\/800\/1*ohyycinH18fz98TCyUzVgQ.png",
+ "7": "https:\/\/d262ilb51hltx0.cloudfront.net\/max\/2000\/1*mKvUNOAVQxl6atCbxbCZsg.jpeg",
+ "8": "https:\/\/d262ilb51hltx0.cloudfront.net\/max\/2000\/1*knT10_FNVUmqQIBLnutmzQ.jpeg",
+ "10": "https:\/\/d262ilb51hltx0.cloudfront.net\/max\/2000\/1*Vr61dyCTRwk6CemmVF8YAQ.jpeg",
+ "11": "https:\/\/d262ilb51hltx0.cloudfront.net\/max\/2000\/1*a-1_13xE6_ErQ-QSlz6myw.jpeg",
+ "13": "https:\/\/d262ilb51hltx0.cloudfront.net\/max\/2000\/1*IWXhtSsVv0gNnCwnDEXk-Q.jpeg",
+ "14": "https:\/\/d262ilb51hltx0.cloudfront.net\/max\/2000\/1*NGcrjfkV0l37iQH2uyYjEw.jpeg",
+ "15": "https:\/\/d262ilb51hltx0.cloudfront.net\/max\/2000\/1*WRlKt3q3mt7utmwxcbl3sQ.jpeg",
+ "16": "https:\/\/d262ilb51hltx0.cloudfront.net\/max\/800\/1*320_4I0lxbn5x3bx4XPI5Q.png"
+} \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/keep-images/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/keep-images/expected-metadata.json
new file mode 100644
index 000000000..3b705f98a
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/keep-images/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "Joseph Cox",
+ "Direction": null,
+ "Excerpt": "Welcome to DoctorX’s Barcelona lab, where the drugs you bought online are tested for safety and purity. No questions ask…",
+ "Image": "https:\/\/d262ilb51hltx0.cloudfront.net\/max\/800\/1*sLDnS1UWEFIS33uLMxq3cw.jpeg",
+ "Title": "Inside the Deep Web Drug Lab",
+ "SiteName": "Medium"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/keep-images/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/keep-images/expected.html
new file mode 100644
index 000000000..d3696f7d1
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/keep-images/expected.html
@@ -0,0 +1,381 @@
+<div>
+ <div>
+ <section name="ef8c">
+ <div>
+ <div>
+ <figure id="b9ad" name="b9ad"><div>
+
+ <p><img data-height="1402" data-image-id="1*sLDnS1UWEFIS33uLMxq3cw.jpeg" data-width="2100" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*sLDnS1UWEFIS33uLMxq3cw.jpeg"></img></p></div>
+ </figure></div>
+ <div>
+
+
+ <h4 data-align="center" id="9736" name="9736">Welcome to DoctorX’s Barcelona lab, where the drugs you bought online are tested for safety and purity. No questions asked.</h4>
+
+ <figure id="7417" name="7417"><div>
+
+ <p><img data-action="zoom" data-action-value="1*3vIhkoHIzcxvUdijoCVx6w.png" data-height="24" data-image-id="1*3vIhkoHIzcxvUdijoCVx6w.png" data-width="1200" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*3vIhkoHIzcxvUdijoCVx6w.png"></img></p></div>
+ </figure><p id="8a83" name="8a83">Standing at a table in a chemistry lab in Barcelona, Cristina Gil Lladanosa
+ tears open a silver, smell-proof protective envelope. She slides out a
+ transparent bag full of crystals. Around her, machines whir and hum, and
+ other researchers mill around in long, white coats.</p>
+ <p id="b675" name="b675">She is holding the lab’s latest delivery of a drug bought from the “deep
+ web,” the clandestine corner of the internet that isn’t reachable by normal
+ search engines, and is home to some sites that require special software
+ to access. Labeled as <a data-href="http://en.wikipedia.org/wiki/MDMA" href="http://en.wikipedia.org/wiki/MDMA" rel="nofollow">MDMA</a> (the street
+ term is ecstasy), this sample has been shipped from Canada. Lladanosa and
+ her colleague Iván Fornís Espinosa have also received drugs, anonymously,
+ from people in China, Australia, Europe and the United States.</p>
+ <p id="3c0b" name="3c0b">“Here we have speed, MDMA, cocaine, pills,” Lladanosa says, pointing to
+ vials full of red, green, blue and clear solutions sitting in labeled boxes.</p>
+ </div>
+ <div>
+ <figure id="c4e6" name="c4e6"><div>
+
+ <p><img data-height="1402" data-image-id="1*4gN1-fzOwCniw-DbqQjDeQ.jpeg" data-width="2100" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*4gN1-fzOwCniw-DbqQjDeQ.jpeg"></img></p></div>
+ <figcaption>Cristina Gil Lladanosa, at the Barcelona testing lab | photo by Joan Bardeletti</figcaption></figure></div>
+ <div>
+ <p id="7a54" name="7a54">Since 2011, with the launch of <a data-href="http://en.wikipedia.org/wiki/Silk_Road_%28marketplace%29" href="http://en.wikipedia.org/wiki/Silk_Road_%28marketplace%29" rel="nofollow">Silk Road</a>, anybody has been able to safely buy illegal
+ drugs from the deep web and have them delivered to their door. Though the
+ FBI shut down that black market in October 2013, other outlets have emerged
+ to fill its role. For the last 10 months the lab at which Lladanosa and
+ Espinosa work has offered a paid testing service of those drugs. By sending
+ in samples for analysis, users can know exactly what it is they are buying,
+ and make a more informed decision about whether to ingest the substance.
+ The group, called <a data-href="http://energycontrol.org/" href="http://energycontrol.org/" rel="nofollow">Energy Control</a>,
+ which has being running “harm reduction” programs since 1999, is the first
+ to run a testing service explicitly geared towards verifying those purchases
+ from the deep web.</p>
+ <p id="4395" name="4395">Before joining Energy Control, Lladanosa briefly worked at a pharmacy,
+ whereas Espinosa spent 14 years doing drug analysis. Working at Energy
+ Control is “more gratifying,” and “rewarding” than her previous jobs, Lladanosa
+ told me. They also receive help from a group of volunteers, made up of
+ a mixture of “squatters,” as Espinosa put it, and medical students, who
+ prepare the samples for testing.</p>
+ <p id="0c18" name="0c18">After weighing out the crystals, aggressively mixing it with methanol
+ until dissolved, and delicately pouring the liquid into a tiny brown bottle,
+ Lladanosa, a petite woman who is nearly engulfed by her lab coat, is now
+ ready to test the sample. She loads a series of three trays on top of a
+ large white appliance sitting on a table, called a gas chromatograph (GC).
+ A jungle of thick pipes hang from the lab’s ceiling behind it.</p>
+ </div>
+ <div>
+ <figure id="559c" name="559c"><div>
+
+ <p><img data-height="1402" data-image-id="1*2KPmZkIBUrhps-2uwDvYFQ.jpeg" data-width="2100" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*2KPmZkIBUrhps-2uwDvYFQ.jpeg"></img></p></div>
+ <figcaption>Photo by Joan Bardeletti</figcaption></figure></div>
+ <div>
+ <p id="1549" name="1549">“Chromatography separates all the substances,” Lladanosa says as she loads
+ the machine with an array of drugs sent from the deep web and local Spanish
+ users. It can tell whether a sample is pure or contaminated, and if the
+ latter, with what.</p>
+ <p id="5d0f" name="5d0f">Rushes of hot air blow across the desk as the gas chromatograph blasts
+ the sample at 280 degrees Celsius. Thirty minutes later the machine’s robotic
+ arm automatically moves over to grip another bottle. The machine will continue
+ cranking through the 150 samples in the trays for most of the work week.</p>
+ </div>
+ <div>
+ <figure id="d6aa" name="d6aa"><div>
+
+ <p><img data-height="1241" data-image-id="1*PU40bbbox2Ompc5I3RE99A.jpeg" data-width="2013" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*PU40bbbox2Ompc5I3RE99A.jpeg"></img></p></div>
+ <figcaption>Photo by Joan Bardeletti</figcaption></figure></div>
+ <div>
+ <p id="15e0" name="15e0">To get the drugs to Barcelona, a user mails at least 10 milligrams of
+ a substance to the offices of the Asociación Bienestar y Desarrollo, the
+ non-government organization that oversees Energy Control. The sample then
+ gets delivered to the testing service’s laboratory, at the Barcelona Biomedical
+ Research Park, a futuristic, seven story building sitting metres away from
+ the beach. Energy Control borrows its lab space from a biomedical research
+ group for free.</p>
+ <p id="2574" name="2574">The tests cost 50 Euro per sample. Users pay, not surprisingly, with Bitcoin.
+ In the post announcing Energy Control’s service on the deep web, the group
+ promised that “All profits of this service are set aside of maintenance
+ of this project.”</p>
+ <p id="2644" name="2644">About a week after testing, those results are sent in a PDF to an email
+ address provided by the anonymous client.</p>
+ <p id="9f91" name="9f91">“The process is quite boring, because you are in a routine,” Lladanosa
+ says. But one part of the process is consistently surprising: that moment
+ when the results pop up on the screen. “Every time it’s something different.”
+ For instance, one cocaine sample she had tested also contained phenacetin,
+ a painkiller added to increase the product’s weight; lidocaine, an anesthetic
+ that numbs the gums, giving the impression that the user is taking higher
+ quality cocaine; and common caffeine.</p>
+ <figure id="b821" name="b821"><div>
+
+ <p><img data-action="zoom" data-action-value="1*ohyycinH18fz98TCyUzVgQ.png" data-height="24" data-image-id="1*ohyycinH18fz98TCyUzVgQ.png" data-width="1200" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*ohyycinH18fz98TCyUzVgQ.png"></img></p></div>
+ </figure><p id="39a6" name="39a6">The deep web drug lab is the brainchild of Fernando Caudevilla, a Spanish
+ physician who is better known as “DoctorX” on the deep web, a nickname
+ given to him by his Energy Control co-workers because of his earlier writing
+ about the history, risks and recreational culture of MDMA. In the physical
+ world, Caudevilla has worked for over a decade with Energy Control on various
+ harm reduction focused projects, most of which have involved giving Spanish
+ illegal drug users medical guidance, and often writing leaflets about the
+ harms of certain substances.</p>
+ </div>
+ <div>
+ <figure id="eebc" name="eebc"><div>
+
+ <p><img data-height="1241" data-image-id="1*mKvUNOAVQxl6atCbxbCZsg.jpeg" data-width="2100" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*mKvUNOAVQxl6atCbxbCZsg.jpeg"></img></p></div>
+ <figcaption>Fernando Caudevilla, AKA DoctorX. Photo: Joseph Cox</figcaption></figure></div>
+ <div>
+ <p id="c099" name="c099">Caudevilla first ventured into Silk Road forums in April 2013. “I would
+ like to contribute to this forum offering professional advice in topics
+ related to drug use and health,” he wrote in an <a data-href="http://web.archive.org/web/20131015051405/https://dkn255hz262ypmii.onion.to/index.php?topic=147607.0" href="http://web.archive.org/web/20131015051405/https://dkn255hz262ypmii.onion.to/index.php?topic=147607.0" rel="nofollow">introductory post</a>,
+ using his DoctorX alias. Caudevilla offered to provide answers to questions
+ that a typical doctor is not prepared, or willing, to respond to, at least
+ not without a lecture or a judgment. “This advice cannot replace a complete
+ face-to-face medical evaluation,” he wrote, “but I know how difficult it
+ can be to talk frankly about these things.”</p>
+ <p id="ff1d" name="ff1d">The requests flooded in. A diabetic asked what effect MDMA has on blood
+ sugar; another what the risks of frequent psychedelic use were for a young
+ person. Someone wanted to know whether amphetamine use should be avoided
+ during lactation. In all, Fernando’s thread received over 50,000 visits
+ and 300 questions before the FBI shut down Silk Road.</p>
+ <p id="1f35" name="1f35">“He’s amazing. A gift to this community,” one user wrote on the Silk Road
+ 2.0 forum, a site that sprang up after the original. “His knowledge is
+ invaluable, and never comes with any judgment.” Up until recently, Caudevilla
+ answered questions on the marketplace “Evolution.” Last week, however,
+ the administrators of that site <a data-href="http://motherboard.vice.com/read/one-of-the-darknets-biggest-markets-may-have-just-stole-all-its-users-bitcoin" href="http://motherboard.vice.com/read/one-of-the-darknets-biggest-markets-may-have-just-stole-all-its-users-bitcoin" rel="nofollow">pulled a scam</a>,
+ shutting the market down and escaping with an estimated $12 million worth
+ of Bitcoin.</p>
+ <p id="b20f" name="b20f">Caudevilla’s transition from dispensing advice to starting up a no-questions-asked
+ drug testing service came as a consequence of his experience on the deep
+ web. He’d wondered whether he could help bring more harm reduction services
+ to a marketplace without controls. The Energy Control project, as part
+ of its mandate of educating drug users and preventing harm, had already
+ been carrying out drug testing for local Spanish users since 2001, at music
+ festivals, night clubs, or through a drop-in service at a lab in Madrid.</p>
+ <p id="f739" name="f739">“I thought, we are doing this in Spain, why don’t we do an international
+ drug testing service?” Caudevilla told me when I visited the other Energy
+ Control lab, in Madrid. Caudevilla, a stocky character with ear piercings
+ and short, shaved hair, has eyes that light up whenever he discusses the
+ world of the deep web. Later, via email, he elaborated that it was not
+ a hard sell. “It was not too hard to convince them,” he wrote me. Clearly,
+ Energy Control believed that the reputation he had earned as an unbiased
+ medical professional on the deep web might carry over to the drug analysis
+ service, where one needs to establish “credibility, trustworthiness, [and]
+ transparency,” Caudevilla said. “We could not make mistakes,” he added.</p>
+ </div>
+ <div>
+ <figure id="4058" name="4058"><div>
+
+ <p><img data-height="3141" data-image-id="1*knT10_FNVUmqQIBLnutmzQ.jpeg" data-width="4400" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*knT10_FNVUmqQIBLnutmzQ.jpeg"></img></p></div>
+ <figcaption>Photo: Joseph Cox</figcaption></figure></div>
+ <div>
+ <figure id="818c" name="818c"><div>
+
+ <p><img data-action="zoom" data-action-value="1*ohyycinH18fz98TCyUzVgQ.png" data-height="24" data-image-id="1*ohyycinH18fz98TCyUzVgQ.png" data-width="1200" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*ohyycinH18fz98TCyUzVgQ.png"></img></p></div>
+ </figure><p id="7b5e" name="7b5e">While the Energy Control lab in Madrid lab only tests Spanish drugs from
+ various sources, it is the Barcelona location which vets the substances
+ bought in the shadowy recesses of of the deep web. Caudevilla no longer
+ runs it, having handed it over to his colleague Ana Muñoz. She maintains
+ a presence on the deep web forums, answers questions from potential users,
+ and sends back reports when they are ready.</p>
+ <p id="0f0e" name="0f0e">The testing program exists in a legal grey area. The people who own the
+ Barcelona lab are accredited to experiment with and handle drugs, but Energy
+ Control doesn’t have this permission itself, at least not in writing.</p>
+ <p id="e002" name="e002">“We have a verbal agreement with the police and other authorities. They
+ already know what we are doing,” Lladanosa tells me. It is a pact of mutual
+ benefit. Energy Control provides the police with information on batches
+ of drugs in Spain, whether they’re from the deep web or not, Espinosa says.
+ They also contribute to the European Monitoring Centre for Drugs and Drug
+ Addiction’s early warning system, a collaboration that attempts to spread
+ information about dangerous drugs as quickly as possible.</p>
+ <p id="db1b" name="db1b">By the time of my visit in February, Energy Control had received over
+ 150 samples from the deep web and have been receiving more at a rate of
+ between 4 and 8 a week. Traditional drugs, such as cocaine and MDMA, make
+ up about 70 percent of the samples tested, but the Barcelona lab has also
+ received samples of the prescription pill codeine, research chemicals and
+ synthetic cannabinoids, and even pills of Viagra.</p>
+ </div>
+ <div>
+ <figure id="b885" name="b885"><div>
+
+ <p><img data-height="1402" data-image-id="1*Vr61dyCTRwk6CemmVF8YAQ.jpeg" data-width="2100" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*Vr61dyCTRwk6CemmVF8YAQ.jpeg"></img></p></div>
+ <figcaption>Photo by Joan Bardeletti</figcaption></figure></div>
+ <div>
+ <p id="e76f" name="e76f">So it’s fair to make a tentative judgement on what people are paying for
+ on the deep web. The verdict thus far? Overall, drugs on the deep web appear
+ to be of much higher quality than those found on the street.</p>
+ <p id="5352" name="5352">“In general, the cocaine is amazing,” says Caudevilla, saying that the
+ samples they’ve seen have purities climbing towards 80 or 90 percent, and
+ some even higher. To get an idea of how unusual this is, take a look at
+ the <a data-href="http://www.unodc.org/documents/wdr2014/Cocaine_2014_web.pdf" href="http://www.unodc.org/documents/wdr2014/Cocaine_2014_web.pdf" rel="nofollow">United Nations Office on Drugs and Crime World Drug Report 2014</a>,
+ which reports that the average quality of street cocaine in Spain is just
+ over 40 percent, while in the United Kingdom it is closer to 30 percent.“We
+ have found 100 percent [pure] cocaine,” he adds. “That’s really, really
+ strange. That means that, technically, this cocaine has been purified,
+ with clandestine methods.”</p>
+ <p id="a71c" name="a71c">Naturally, identifying vendors who sell this top-of-the-range stuff is
+ one of the reasons that people have sent samples to Energy Control. Caudevilla
+ was keen to stress that, officially, Energy Control’s service “is not intended
+ to be a control of drug quality,” meaning a vetting process for identifying
+ the best sellers, but that is exactly how some people have been using it.</p>
+ <p id="cb5b" name="cb5b">As one buyer on the Evolution market, elmo666, wrote to me over the site’s
+ messaging system, “My initial motivations were selfish. My primary motivation
+ was to ensure that I was receiving and continue to receive a high quality
+ product, essentially to keep the vendor honest as far as my interactions
+ with them went.”</p>
+ <p id="d80d" name="d80d">Vendors on deep web markets advertise their product just like any other
+ outlet does, using flash sales, gimmicky giveaways and promises of drugs
+ that are superior to those of their competitors. The claims, however, can
+ turn out to be empty: despite the test results that show that deep web
+ cocaine vendors typically sell product that is of a better quality than
+ that found on the street, in plenty of cases, the drugs are nowhere near
+ as pure as advertised.</p>
+ <p id="36de" name="36de">“You won’t be getting anything CLOSE to what you paid for,” one user complained
+ about the cocaine from ‘Mirkov’, a vendor on Evolution. “He sells 65% not
+ 95%.”</p>
+ </div>
+ <div>
+ <figure id="8544" name="8544"><div>
+
+ <p><img data-height="1402" data-image-id="1*a-1_13xE6_ErQ-QSlz6myw.jpeg" data-width="2100" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*a-1_13xE6_ErQ-QSlz6myw.jpeg"></img></p></div>
+ <figcaption>Photo by Joan Bardeletti</figcaption></figure></div>
+ <div>
+ <figure id="d521" name="d521"><div>
+
+ <p><img data-action="zoom" data-action-value="1*ohyycinH18fz98TCyUzVgQ.png" data-height="24" data-image-id="1*ohyycinH18fz98TCyUzVgQ.png" data-width="1200" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*ohyycinH18fz98TCyUzVgQ.png"></img></p></div>
+ </figure><p id="126b" name="126b">Despite the prevalence of people using the service to gauge the quality
+ of what goes up their nose, many users send samples to Energy Control in
+ the spirit of its original mission: keeping themselves alive and healthy.
+ The worst case scenario from drugs purchased on the deep web is, well the
+ worst case. That was the outcome when <a data-href="http://www.independent.co.uk/news/uk/crime/teenager-patrick-mcmullen-who-died-while-on-skype-had-bought-drugs-from-silk-road-8942329.html" href="http://www.independent.co.uk/news/uk/crime/teenager-patrick-mcmullen-who-died-while-on-skype-had-bought-drugs-from-silk-road-8942329.html" rel="nofollow">Patrick McMullen,</a> a
+ 17-year-old Scottish student, ingested half a gram of MDMA and three tabs
+ of LSD, reportedly purchased from the Silk Road. While talking to his friends
+ on Skype, his words became slurred and he passed out. Paramedics could
+ not revive him. The coroner for that case, Sherrif Payne, who deemed the
+ cause of death ecstasy toxicity, told <em>The Independent</em> “You
+ never know the purity of what you are taking and you can easily come unstuck.”</p>
+ <p id="5e9e" name="5e9e">ScreamMyName, a deep web user who has been active since the original Silk
+ Road, wants to alert users to the dangerous chemicals that are often mixed
+ with drugs, and is using Energy Control as a means to do so.</p>
+ <p id="19a6" name="19a6">“We’re at a time where some vendors are outright sending people poison.
+ Some do it unknowingly,” ScreamMyName told me in an encrypted message.
+ “Cocaine production in South America is often tainted with either levamisole
+ or phenacetine. Both poison to humans and both with severe side effects.”</p>
+ <p id="9fef" name="9fef">In the case of Levamisole, those prescribing it are often not doctors
+ but veterinarians, as Levamisole is commonly used on animals, primarily
+ for the treatment of worms. If ingested by humans it can lead to cases
+ of extreme eruptions of the skin, as <a data-href="http://www.ncbi.nlm.nih.gov/pubmed/22127712" href="http://www.ncbi.nlm.nih.gov/pubmed/22127712" rel="nofollow">documented in a study</a> from researchers at the University
+ of California, San Francisco. But Lladanosa has found Levamisole in cocaine
+ samples; dealers use it to increase the product weight, allowing them to
+ stretch their batch further for greater profit — and also, she says, because
+ Levamisole has a strong stimulant effect.</p>
+ <p id="7886" name="7886">“It got me sick as fuck,” Dr. Feel, an Evolution user, wrote on the site’s
+ forums after consuming cocaine that had been cut with 23 percent Levamisole,
+ and later tested by Energy Control. “I was laid up in bed for several days
+ because of that shit. The first night I did it, I thought I was going to
+ die. I nearly drove myself to the ER.”</p>
+ <p id="18d3" name="18d3">“More people die because of tainted drugs than the drugs themselves,”
+ Dr. Feel added. “It’s the cuts and adulterants that are making people sick
+ and killing them.”</p>
+ </div>
+ <div>
+ <figure id="552a" name="552a"><div>
+
+ <p><img data-height="1192" data-image-id="1*IWXhtSsVv0gNnCwnDEXk-Q.jpeg" data-width="2100" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*IWXhtSsVv0gNnCwnDEXk-Q.jpeg"></img></p></div>
+ <figcaption>Photo by Joan Bardeletti</figcaption></figure></div>
+ <div>
+ <p id="839a" name="839a">The particular case of cocaine cut with Levamisole is one of the reasons
+ that ScreamMyName has been pushing for more drug testing on the deep web
+ markets. “I recognize that drug use isn’t exactly healthy, but why exacerbate
+ the problem?” he told me when I contacted him after his post. “[Energy
+ Control] provides a way for users to test the drugs they’ll use and for
+ these very users to know what it is they’re putting in their bodies. Such
+ services are in very short supply.”</p>
+ <p id="18dc" name="18dc">After sending a number of Energy Control tests himself, ScreamMyName started
+ a de facto crowd-sourcing campaign to get more drugs sent to the lab, and
+ then shared the results, after throwing in some cash to get the ball rolling.
+ <a data-href="https://blockchain.info/address/1Mi6VjMFqjcD48FPV7cnPB24MAtQQenRy3" href="https://blockchain.info/address/1Mi6VjMFqjcD48FPV7cnPB24MAtQQenRy3" rel="nofollow">He set up a Bitcoin wallet</a>, with the hope that users might chip in
+ to fund further tests. At the time of writing, the wallet has received
+ a total of 1.81 bitcoins; around $430 at today’s exchange rates.</p>
+ <p id="dcbd" name="dcbd">In posts to the Evolution community, ScreamMyName pitched this project
+ as something that will benefit users and keep drug dealer honest. “When
+ the funds build up to a point where we can purchase an [Energy Control]
+ test fee, we’ll do a US thread poll for a few days and try to cohesively
+ decide on what vendor to test,” he continued.</p>
+ </div>
+ <div>
+ <figure id="9d32" name="9d32"><div>
+
+ <p><img data-height="913" data-image-id="1*NGcrjfkV0l37iQH2uyYjEw.jpeg" data-width="1368" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*NGcrjfkV0l37iQH2uyYjEw.jpeg"></img></p></div>
+ <figcaption>Photo by Joan Bardeletti</figcaption></figure></div>
+ <div>
+ <p id="bff6" name="bff6">Other members of the community have been helping out, too. PlutoPete,
+ a vendor from the original Silk Road who sold cannabis seeds and other
+ legal items, has provided ScreamMyName with packaging to safely send the
+ samples to Barcelona. “A box of baggies, and a load of different moisture
+ barrier bags,” PlutoPete told me over the phone. “That’s what all the vendors
+ use.”</p>
+ <p id="bb78" name="bb78">It’s a modest program so far. ScreamMyName told me that so far he had
+ gotten enough public funding to purchase five different Energy Control
+ tests, in addition to the ten or so he’s sent himself so far. “The program
+ created is still in its infancy and it is growing and changing as we go
+ along but I have a lot of faith in what we’re doing,” he says.</p>
+ <p id="5638" name="5638">But the spirit is contagious: elmo666, the other deep web user testing
+ cocaine, originally kept the results of the drug tests to himself, but
+ he, too, saw a benefit to distributing the data. “It is clear that it is
+ a useful service to other users, keeping vendors honest and drugs (and
+ their users) safe,” he told me. He started to report his findings to others
+ on the forums, and then created a thread with summaries of the test results,
+ as well as comments from the vendors if they provided it. Other users were
+ soon basing their decisions on what to buy on elmo666‘s tests.</p>
+ <p id="de75" name="de75">“I’m defo trying the cola based on the incredibly helpful elmo and his
+ energy control results and recommendations,” wrote user jayk1984. On top
+ of this, elmo666 plans to launch an independent site on the deep web that
+ will collate all of these results, which should act as a resource for users
+ of all the marketplaces.</p>
+ <p id="6b72" name="6b72">As word of elmo666's efforts spread, he began getting requests from drug
+ dealers who wanted him to use their wares for testing. Clearly, they figured
+ that a positive result from Energy Control would be a fantastic marketing
+ tool to draw more customers. They even offered elmo666 free samples. (He
+ passed.)</p>
+ <p id="b008" name="b008">Meanwhile, some in the purchasing community are arguing that those running
+ markets on the deep web should be providing quality control themselves.
+ PlutoPete told me over the phone that he had been in discussions about
+ this with Dread Pirate Roberts, the pseudonymous owner of the original
+ Silk Road site. “We [had been] talking about that on a more organized basis
+ on Silk Road 1, doing lots of anonymous buys to police each category. But
+ of course they took the thing [Silk Road] down before we got it properly
+ off the ground,” he lamented.</p>
+ <p id="49c8" name="49c8">But perhaps it is best that the users, those who are actually consuming
+ the drugs, remain in charge of shaming dealers and warning each other.
+ “It’s our responsibility to police the market based on reviews and feedback,”
+ elmo666 wrote in an Evolution forum post. It seems that in the lawless
+ space of the deep web, where everything from child porn to weapons are
+ sold openly, users have cooperated in an organic display of self-regulation
+ to stamp out those particular batches of drugs that are more likely to
+ harm users.</p>
+ <p id="386d" name="386d">“That’s always been the case with the deep web,” PlutoPete told me. Indeed,
+ ever since Silk Road, a stable of the drug markets has been the review
+ system, where buyers can leave a rating and feedback for vendors, letting
+ others know about the reliability of the seller. But DoctorX’s lab, rigorously
+ testing the products with scientific instruments, takes it a step further.</p>
+ </div>
+ <div>
+ <figure id="890b" name="890b"><div>
+
+ <p><img data-height="1373" data-image-id="1*WRlKt3q3mt7utmwxcbl3sQ.jpeg" data-width="2100" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*WRlKt3q3mt7utmwxcbl3sQ.jpeg"></img></p></div>
+ <figcaption>Photo by Joan Bardeletti</figcaption></figure></div>
+ <div>
+ <p id="b109" name="b109">“In the white market, they have quality control. In the dark market, it
+ should be the same,” Cristina Gil Lladanosa says to me before I leave the
+ Barcelona lab.</p>
+ <p id="e3a4" name="e3a4">A week after I visit the lab, the results of the MDMA arrive in my inbox:
+ it is 85 percent pure, with no indications of other active ingredients.
+ Whoever ordered that sample from the digital shelves of the deep web, and
+ had it shipped to their doorstep in Canada, got hold of some seriously
+ good, and relatively safe drugs. And now they know it.</p>
+ <figure id="31cf" name="31cf"><div>
+
+ <p><img data-action="zoom" data-action-value="1*320_4I0lxbn5x3bx4XPI5Q.png" data-height="24" data-image-id="1*320_4I0lxbn5x3bx4XPI5Q.png" data-width="1200" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*320_4I0lxbn5x3bx4XPI5Q.png"></img></p></div>
+ </figure><p data-align="center" id="9b87" name="9b87"><em>Top photo by Joan Bardeletti</em>
+ </p>
+ <p data-align="center" id="c30a" name="c30a">Follow Backchannel: <a data-href="https://twitter.com/backchnnl" href="https://twitter.com/backchnnl" rel="nofollow"><em>Twitter</em></a>
+ <em>|</em><a data-href="https://www.facebook.com/pages/Backchannel/1488568504730671" href="https://www.facebook.com/pages/Backchannel/1488568504730671" rel="nofollow"><em>Facebook</em></a>
+ </p>
+ </div>
+ </div>
+ </section></div>
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/keep-images/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/keep-images/source.html
new file mode 100644
index 000000000..6d2b2821c
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/keep-images/source.html
@@ -0,0 +1,833 @@
+<!DOCTYPE html>
+<html>
+
+ <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# medium-com: http://ogp.me/ns/fb/medium-com#">
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"
+ user-scalable="no"/>
+ <title>Inside the Deep Web Drug Lab — Backchannel — Medium</title>
+ <link rel="canonical"
+ href="https://medium.com/backchannel/inside-the-deep-web-drug-lab-9718cd0fe504"/>
+ <meta name="title" content="Inside the Deep Web Drug Lab"/>
+ <meta name="referrer" content="always"/>
+ <meta name="description" content="Welcome to DoctorX’s Barcelona lab, where the drugs you bought online are tested for safety and purity. No questions ask…"/>
+ <meta property="og:site_name" content="Medium"/>
+ <meta property="og:title" content="Inside the Deep Web Drug Lab"/>
+ <meta property="og:url" content="https://medium.com/backchannel/inside-the-deep-web-drug-lab-9718cd0fe504"/>
+ <meta property="og:image" content="https://d262ilb51hltx0.cloudfront.net/max/800/1*sLDnS1UWEFIS33uLMxq3cw.jpeg"/>
+ <meta property="fb:app_id" content="542599432471018"/>
+ <meta property="og:description" content="Welcome to DoctorX’s Barcelona lab, where the drugs you bought online are tested for safety and purity. No questions ask…"/>
+ <meta name="twitter:site" content="@Medium"/>
+ <meta name="twitter:image:src" content="https://d262ilb51hltx0.cloudfront.net/max/800/1*sLDnS1UWEFIS33uLMxq3cw.jpeg"/>
+ <link rel="publisher" href="https://plus.google.com/103654360130207659246"/>
+ <link rel="author" href="https://medium.com/@josephfcox"/>
+ <meta name="author" content="Joseph Cox"/>
+ <meta property="og:type" content="article"/>
+ <meta name="twitter:card" content="summary_large_image"/>
+ <meta property="article:publisher" content="https://www.facebook.com/medium"/>
+ <meta property="article:author" content="https://medium.com/@josephfcox"/>
+ <meta property="article:published_time" content="2015-03-27T13:07:55.096Z"/>
+ <meta name="twitter:creator" content="@josephfcox"/>
+ <meta name="apple-itunes-app" content="app-id=828256236, app-argument=medium:/p/9718cd0fe504"/>
+ <meta name="twitter:app:name:iphone" content="Medium"/>
+ <meta name="twitter:app:id:iphone" content="828256236"/>
+ <meta name="twitter:app:url:iphone" content="medium:/p/9718cd0fe504"/>
+ <meta property="al:ios:app_name" content="Medium"/>
+ <meta property="al:ios:app_store_id" content="828256236"/>
+ <meta property="al:ios:url" content="medium:/p/9718cd0fe504"/>
+ <meta property="al:web:url" content="https://medium.com/backchannel/inside-the-deep-web-drug-lab-9718cd0fe504"/>
+ <meta name="theme-color" content="#000000"/>
+ <script type="text/javascript" src="http://www.google-analytics.com/ga.js"></script>
+ <script>
+ if (window.top !== window.self) window.top.location = window.self.location.href;var OB_startTime = new Date().getTime(); var OB_fontLoaded = 0; var OB_loadErrors = []; function _onerror(e) { OB_loadErrors.push(e) }; if (document.addEventListener) document.addEventListener("error", _onerror, true); else if (document.attachEvent) document.attachEvent("onerror", _onerror); function _asyncScript(u) {var d = document, f = d.getElementsByTagName("script")[0], s = d.createElement("script"); s.type = "text/javascript"; s.async = true; s.src = u; f.parentNode.insertBefore(s, f);}function _asyncStyles(u) {var d = document, f = d.getElementsByTagName("script")[0], s = d.createElement("link"); s.rel = "stylesheet"; s.href = u; f.parentNode.insertBefore(s, f); return s}var _gaq = _gaq || []; _gaq.push(["_setAccount", "UA-24232453-2"]); _gaq.push(["_setDomainName", window.location.hostname]); _gaq.push(["_setAllowLinker", true]); _gaq.push(["_trackPageview"]); _asyncScript(("https:" == document.location.protocol ? "https://ssl" : "http://www") + ".google-analytics.com/ga.js");(new Image()).src = "/_/stat?event=pixel.load&origin=" + encodeURIComponent(location.origin);
+ </script>
+ <script>
+ _asyncStyles('https:\/\/dnqgz544uhbo8.cloudfront.net\/_\/fp\/css\/main-sprites.1B2M2Y8AsgTpgAmY7PhCfg.css')
+ </script>
+ <link rel="stylesheet" href="https://dnqgz544uhbo8.cloudfront.net/_/fp/css/main-base.6kQxKAiKOmce2ozmMfuxGQ.css"/>
+ <script>
+ (function () {var height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; document.write("<style>section.section-image--fullBleed {padding-top: " + Math.round(1.1 * height) + "px;}section.section-image--fullScreen, section.section-image--coverFade {min-height: " + height + "px; padding-top: " + Math.round(0.5 * height) + "px;}.u-sizeViewHeight100 {height: " + height + "px !important;}.u-sizeViewHeightMin100 {min-height: " + height + "px !important;}section.section-image--coverFade, .section-image--fullScreen > .section-background, .section-image--coverFade > .section-background, .section-image--fullBleed .section-backgroundImage, .section-image--fullScreen .section-backgroundImage, .section-image--coverFade .section-backgroundImage {height: " + height + "px;}.section-image--content > .section-background, .section-image--content .section-backgroundImage, .section-aspectRatioViewportPlaceholder, .section-aspectRatioViewportCropPlaceholder {max-height: " + height + "px;}.section-image--fullBleed > .section-background {height: " + Math.round(1.1 * height) + "px;}.section-aspectRatioViewportBottomSpacer, .section-aspectRatioViewportBottomPlaceholder {max-height: " + Math.round(0.5 * height) + "px;}</style>");})()
+ </script>
+ <!--[if lt IE 9]>
+ <script charset="UTF-8" src="https://dnqgz544uhbo8.cloudfront.net/_/fp/js/shiv.RI2ePTZ5gFmMgLzG5bEVAA.js"></script>
+ <![endif]-->
+ <link rel="shortcut icon" href="https://dnqgz544uhbo8.cloudfront.net/_/fp/icons/favicon.n7eHNqdWyHhbTLN2-3a-6g.ico"/>
+ <link rel="apple-touch-icon-precomposed" sizes="152x152" href="/apple-touch-icon-precomposed-152.png"/>
+ <link rel="apple-touch-icon-precomposed" sizes="120x120" href="/apple-touch-icon-precomposed-120.png"/>
+ <link rel="apple-touch-icon-precomposed" sizes="76x76" href="/apple-touch-icon-precomposed-76.png"/>
+ <link rel="apple-touch-icon-precomposed" href="/apple-touch-icon-precomposed.png"/>
+ </head>
+
+ <body itemscope="" itemtype="http://schema.org/Article" class=" template-flex-article js-loading ">
+ <div class="site-main" id="container">
+ <div class="butterBar butterBar--error"></div>
+ <div class="surface">
+ <div id="prerendered" class="screenContent is-showingReadNextSidebar">
+ <canvas class="canvas-renderer"></canvas>
+ <div class="listingEditorOverlay"></div>
+ <div class="listingEditor js-listingEditor">
+ <div class="listingEditor-inner u-backgroundWhite">
+ <div class="listingEditor-content">
+ <div class="listingEditor-header u-textAlignCenter">Ready to publish?</div>
+ <div class="listingEditor-description u-textAlignCenter js-titleEditorInstructions">Change the story’s title, subtitle, and visibility as needed</div>
+ <div
+ class="listingEditor-section listingEditor-section--highlightOnHover">
+ <div class="block block--list js-block">
+ <div class="block-image js-blockImage"></div>
+ <div class="block-firefoxPositioningContainerHack">
+ <div class="block-content">
+ <div class="block-title js-titleEditor u-hideOutline"></div>
+ <div class="block-snippet block-snippet--subtitle js-subtitleEditor u-hideOutline"></div>
+ <div class="block-postMetaWrap u-clearfix">
+ <div class="block-postMeta u-inlineBlock">
+ <div class="postMetaInline postMetaInline--author">Joseph Cox</div>
+ <div class="postMetaInline js-readingTime"><span class="readingTime">14 min read</span>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="listingEditor-section listingEditor-section--controls">
+ <div class="listingEditor-controlsLeft u-floatLeft js-tagEditor"></div>
+ <div class="listingEditor-controlsRight u-floatRight">
+ <button class="button button--chromeless js-selectVisibility js-buttonRequiresPostId"
+ data-action="show-disabled-button-info" data-action-value="Changing post visibility will become available after you start writing."
+ data-delayed-action="show-visibility-popover"></button>
+ <button class="button button--chromeless js-selectFeatured" data-action="show-featured-popover">Featured</button>
+ <button class="button js-listingEditorCancelButton" data-action="close-listing-editor">Close</button>
+ <button class="button button--primary js-publishButton"
+ data-action="publish">Publish changes</button>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="metabar u-clearfix js-metabar metabar--top metabar--postArticle is-withCollectionLogo ">
+ <div class="metabar-block metabar-left u-floatLeft"><a href="https://medium.com/" alt="Homepage" data-log-event="home" class="siteNav-logo"><span class="icon icon--logoM"></span></a>
+ <span
+ class="metabar-divider metabar-divider--first u-showOnMobile"></span><span class="postMetaInline postMetaInline--avatar u-showOnMobile"><a class="link" title="Go to Backchannel" href="https://medium.com/backchannel?source=avatarTopMetabar-lo_69de9372095b-d16afa0ae7c" data-action-source="avatarTopMetabar-lo_69de9372095b-d16afa0ae7c"><img src="https://d262ilb51hltx0.cloudfront.net/fit/c/32/32/1*VN9AINEbi2CS8bHWeu80GQ.png" class="avatar-image avatar-image--icon avatar-image--roundedRectangle" alt="Backchannel"/></a></span>
+ </div>
+ <div class="metabar-block metabar-center"><a class="metabar-logoWrapper js-logCollection" href="https://medium.com/backchannel?source=logo-lo_69de9372095b-d16afa0ae7c"><img class="metabar-logo" src="https://d262ilb51hltx0.cloudfront.net/fit/c/280/36/1*CBYh7ADvcY9Z-WYUrJN2Gw.png?source=logoAvatar-lo_69de9372095b-d16afa0ae7c"/></a>
+ </div>
+ <div class="metabar-block metabar-right u-floatRight">
+ <div class="metabar-text"></div>
+ <div class="buttonSet"></div>
+ <div class="buttonSet"><a class="button button--circle is-inSiteNavBar" href="https://medium.com/search"
+ data-action="open-search"><span class="icon icon--search"></span></a>
+ <a
+ class="button button--primary" href="https://medium.com/m/signin?redirect=https%3A%2F%2Fmedium.com%3A443%2Fbackchannel%2Finside-the-deep-web-drug-lab-9718cd0fe504"
+ data-action="sign-in-prompt">Sign in / Sign up</a>
+ </div>
+ </div>
+ </div>
+ <div class="metabar u-clearfix metabar--bottom metabar--bordered metabar--social metabar--postSecondaryBar js-postSecondaryBar">
+ <div class="metabar-block metabar-left u-floatLeft"><span class="postMetaInline postMetaInline--avatar u-xs-hide"><a class="link" title="Go to Backchannel" href="https://medium.com/backchannel?source=avatarSecondaryBar-lo_69de9372095b-d16afa0ae7c" data-action-source="avatarSecondaryBar-lo_69de9372095b-d16afa0ae7c"><img src="https://d262ilb51hltx0.cloudfront.net/fit/c/32/32/1*VN9AINEbi2CS8bHWeu80GQ.png" class="avatar-image avatar-image--icon avatar-image--roundedRectangle" alt="Backchannel"/></a></span>
+ <span
+ class="postMetaInline postMetaInline--avatar"><a href="https://medium.com/@josephfcox" class="avatar avatar--icon avatar--inline link link--secondary"
+ title="Go to the profile of Joseph Cox"><img src="https://d262ilb51hltx0.cloudfront.net/fit/c/32/32/0*caZ172e36yu_pElb.png" class="avatar-image avatar-image--icon" title="Joseph Cox"/></a>
+ </span><span class="postMetaInline postMetaInline--authorDateline"><a class="link link--secondary" title="Go to the profile of Joseph Cox" href="https://medium.com/@josephfcox">Joseph Cox</a><span class="u-showOnTabletMini"><br/></span>
+ <span
+ class="postMetaInline postMetaInline--date"><span class="u-xs-hide"> on </span>
+ <time class="post-date">Mar 27</time><span class="middotDivider"></span>14 min</span>
+ </span>
+ </div>
+ <div class="metabar-block metabar-right u-floatRight">
+ <div class="voteWidget"></div>
+ <div class="metabar-shareActions">
+ <button class="button button--chromeless button--social button--recommend js-recommendButton"
+ title="Recommend to share this article with your followers and let the author know you liked it"
+ data-action="sign-in-prompt" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/9718cd0fe504"><span class="icon icon--heart2Outline"></span><span class="icon icon--heart2"></span>
+ </button>
+ <button class="button button--chromeless button--social js-bookmarkButton"
+ title="Bookmark this story to read later" data-action="sign-in-prompt"
+ data-requires-token="true" data-redirect="https://medium.com/_/bookmark/p/9718cd0fe504"><span class="icon icon--readingList2outline"></span><span class="icon icon--readingList2"></span>
+ </button>
+ <button class="button button--chromeless u-showOnMobile button--social"
+ title="Share this story on Twitter, Facebook, or email" data-action="toggle-share-drawer"
+ data-action-value="9718cd0fe504"><span class="icon icon--share2Outline "></span>
+ </button>
+ <button class="button button--chromeless u-xs-hide button--social" title="Share this story on Twitter, Facebook, or email"
+ data-action="show-share-popover" data-action-value="9718cd0fe504" data-action-source="metabar"><span class="icon icon--share2Outline "></span>
+ </button>
+ </div>
+ <div class="metabar-readNext js-metabarReadNext">
+ <button class="button button--chromeless">Next story</button>
+ </div>
+ </div>
+ </div>
+ <div class="metabar u-clearfix metabar--bottom metabar--social metabar--peekaboo js-persistentShareFooter">
+ <div class="metabar-block metabar-left u-floatLeft"></div>
+ <div class="metabar-block metabar-center">
+ <div class="metabar-readNext metabar-readNext--bottom js-metabarReadNextMobile">
+ <button class="button button--chromeless">Next story</button>
+ </div>
+ <div class="metabar-shareActions">
+ <button class="button button--chromeless button--social button--recommend js-recommendButton"
+ title="Recommend to share this article with your followers and let the author know you liked it"
+ data-action="sign-in-prompt" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/9718cd0fe504"><span class="icon icon--heart2Outline"></span><span class="icon icon--heart2"></span>
+ </button>
+ <button class="button button--chromeless button--social js-bookmarkButton"
+ title="Bookmark this story to read later" data-action="sign-in-prompt"
+ data-requires-token="true" data-redirect="https://medium.com/_/bookmark/p/9718cd0fe504"><span class="icon icon--readingList2outline"></span><span class="icon icon--readingList2"></span>
+ </button>
+ <button class="button button--chromeless u-showOnMobile button--social"
+ title="Share this story on Twitter, Facebook, or email" data-action="toggle-share-drawer"
+ data-action-value="9718cd0fe504"><span class="icon icon--share2Outline "></span>
+ </button>
+ <button class="button button--chromeless u-xs-hide button--social" title="Share this story on Twitter, Facebook, or email"
+ data-action="show-share-popover" data-action-value="9718cd0fe504" data-action-source="metabar"><span class="icon icon--share2Outline "></span>
+ </button>
+ </div>
+ <div class="metabar-drawer">
+ <div class="metabar-drawerWarning">The author chose to make this story unlisted, which means only people
+ with a link can see it. Are you sure you want to share it?
+ <button class="button button--chromeless"
+ data-action="ignore-share-drawer-warning">Yes, show me sharing options</button>
+ </div>
+ <div class="metabar-drawerContent">
+ <h4 class="metabar-drawerTitle">Inside the Deep Web Drug Lab</h4>
+ <ul class="list">
+ <li>
+ <button class="button button--chromeless" data-action="share-on-twitter"
+ data-action-value="9718cd0fe504" data-action-source="metabar_mobile"><span class="icon icon--twitter"></span> Share on Twitter</button>
+ </li>
+ <li>
+ <button class="button button--chromeless" data-action="share-on-facebook"
+ data-action-value="9718cd0fe504" data-action-source="metabar_mobile"><span class="icon icon--facebook"></span> Share on Facebook</button>
+ </li>
+ <li>
+ <button class="button button--chromeless" data-action="share-by-email"
+ data-action-value="9718cd0fe504" data-action-source="metabar_mobile"><span class="icon icon--email"></span> Share by email</button>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ <article class="u-sizeViewHeightMin100 postArticle postArticle--full is-languageTier1"
+ lang="en" data-allow-notes="true">
+ <section class="postWrapper postWrapper--contain">
+ <div class="postWrapper-inner">
+ <div class="postContent">
+ <div class="postContent-inner">
+ <div class="notesSource">
+ <div class="postField postField--body">
+ <section name="ef8c" class=" section--first section--last">
+ <div class="section-divider layoutSingleColumn">
+ <hr class="section-divider"/>
+ </div>
+ <div class="section-content">
+ <div class="section-inner u-sizeFullWidth">
+ <figure name="b9ad" id="b9ad" class="graf--figure postField--fillWidthImage graf--first">
+ <div class="aspectRatioPlaceholder is-locked">
+ <div class="aspect-ratio-fill" style="padding-bottom: 66.8%;"></div>
+ <img class="graf-image" data-image-id="1*sLDnS1UWEFIS33uLMxq3cw.jpeg"
+ data-width="2100" data-height="1402" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*sLDnS1UWEFIS33uLMxq3cw.jpeg"/>
+ </div>
+ </figure>
+ </div>
+ <div class="section-inner layoutSingleColumn">
+ <h2 name="9ebb" id="9ebb" data-align="center" class="graf--h2">Inside the Deep Web Drug Lab</h2>
+ <p name="1f41" id="1f41" class="graf--p graf--empty">
+ <br/>
+ </p>
+ <h4 name="9736" id="9736" data-align="center" class="graf--h4">Welcome to DoctorX’s Barcelona lab, where the drugs you bought online are tested for safety and purity. No questions asked.</h4>
+ <p name="fc64" id="fc64" class="graf--p graf--empty">
+ <br/>
+ </p>
+ <figure name="7417" id="7417" class="graf--figure">
+ <div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 14px;">
+ <div class="aspect-ratio-fill" style="padding-bottom: 2%;"></div>
+ <img class="graf-image" data-image-id="1*3vIhkoHIzcxvUdijoCVx6w.png"
+ data-width="1200" data-height="24" data-action="zoom" data-action-value="1*3vIhkoHIzcxvUdijoCVx6w.png"
+ src="https://d262ilb51hltx0.cloudfront.net/max/800/1*3vIhkoHIzcxvUdijoCVx6w.png"/>
+ </div>
+ </figure>
+ <p name="8a83" id="8a83" class="graf--p">Standing at a table in a chemistry lab in Barcelona, Cristina Gil Lladanosa
+ tears open a silver, smell-proof protective envelope. She slides out a
+ transparent bag full of crystals. Around her, machines whir and hum, and
+ other researchers mill around in long, white coats.</p>
+ <p name="b675" id="b675"
+ class="graf--p">She is holding the lab’s latest delivery of a drug bought from the “deep
+ web,” the clandestine corner of the internet that isn’t reachable by normal
+ search engines, and is home to some sites that require special software
+ to access. Labeled as <a href="http://en.wikipedia.org/wiki/MDMA" data-href="http://en.wikipedia.org/wiki/MDMA"
+ class="markup--anchor markup--p-anchor" rel="nofollow">MDMA</a> (the street
+ term is ecstasy), this sample has been shipped from Canada. Lladanosa and
+ her colleague Iván Fornís Espinosa have also received drugs, anonymously,
+ from people in China, Australia, Europe and the United States.</p>
+ <p name="3c0b"
+ id="3c0b" class="graf--p graf--startsWithDoubleQuote">“Here we have speed, MDMA, cocaine, pills,” Lladanosa says, pointing to
+ vials full of red, green, blue and clear solutions sitting in labeled boxes.</p>
+ </div>
+ <div class="section-inner u-sizeFullWidth">
+ <figure name="c4e6" id="c4e6" class="graf--figure postField--fillWidthImage">
+ <div class="aspectRatioPlaceholder is-locked">
+ <div class="aspect-ratio-fill" style="padding-bottom: 66.8%;"></div>
+ <img class="graf-image" data-image-id="1*4gN1-fzOwCniw-DbqQjDeQ.jpeg"
+ data-width="2100" data-height="1402" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*4gN1-fzOwCniw-DbqQjDeQ.jpeg"/>
+ </div>
+ <figcaption class="imageCaption">Cristina Gil Lladanosa, at the Barcelona testing lab | photo by Joan Bardeletti</figcaption>
+ </figure>
+ </div>
+ <div class="section-inner layoutSingleColumn">
+ <p name="7a54" id="7a54" class="graf--p">Since 2011, with the launch of <a href="http://en.wikipedia.org/wiki/Silk_Road_%28marketplace%29"
+ data-href="http://en.wikipedia.org/wiki/Silk_Road_%28marketplace%29" class="markup--anchor markup--p-anchor"
+ rel="nofollow">Silk Road</a>, anybody has been able to safely buy illegal
+ drugs from the deep web and have them delivered to their door. Though the
+ FBI shut down that black market in October 2013, other outlets have emerged
+ to fill its role. For the last 10 months the lab at which Lladanosa and
+ Espinosa work has offered a paid testing service of those drugs. By sending
+ in samples for analysis, users can know exactly what it is they are buying,
+ and make a more informed decision about whether to ingest the substance.
+ The group, called <a href="http://energycontrol.org/" data-href="http://energycontrol.org/"
+ class="markup--anchor markup--p-anchor" rel="nofollow">Energy Control</a>,
+ which has being running “harm reduction” programs since 1999, is the first
+ to run a testing service explicitly geared towards verifying those purchases
+ from the deep web.</p>
+ <p name="4395" id="4395" class="graf--p">Before joining Energy Control, Lladanosa briefly worked at a pharmacy,
+ whereas Espinosa spent 14 years doing drug analysis. Working at Energy
+ Control is “more gratifying,” and “rewarding” than her previous jobs, Lladanosa
+ told me. They also receive help from a group of volunteers, made up of
+ a mixture of “squatters,” as Espinosa put it, and medical students, who
+ prepare the samples for testing.</p>
+ <p name="0c18" id="0c18" class="graf--p">After weighing out the crystals, aggressively mixing it with methanol
+ until dissolved, and delicately pouring the liquid into a tiny brown bottle,
+ Lladanosa, a petite woman who is nearly engulfed by her lab coat, is now
+ ready to test the sample. She loads a series of three trays on top of a
+ large white appliance sitting on a table, called a gas chromatograph (GC).
+ A jungle of thick pipes hang from the lab’s ceiling behind it.</p>
+ </div>
+ <div class="section-inner u-sizeFullWidth">
+ <figure name="559c" id="559c" class="graf--figure postField--fillWidthImage">
+ <div class="aspectRatioPlaceholder is-locked">
+ <div class="aspect-ratio-fill" style="padding-bottom: 66.8%;"></div>
+ <img class="graf-image" data-image-id="1*2KPmZkIBUrhps-2uwDvYFQ.jpeg"
+ data-width="2100" data-height="1402" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*2KPmZkIBUrhps-2uwDvYFQ.jpeg"/>
+ </div>
+ <figcaption class="imageCaption">Photo by Joan Bardeletti</figcaption>
+ </figure>
+ </div>
+ <div class="section-inner layoutSingleColumn">
+ <p name="1549" id="1549" class="graf--p graf--startsWithDoubleQuote">“Chromatography separates all the substances,” Lladanosa says as she loads
+ the machine with an array of drugs sent from the deep web and local Spanish
+ users. It can tell whether a sample is pure or contaminated, and if the
+ latter, with what.</p>
+ <p name="5d0f" id="5d0f" class="graf--p">Rushes of hot air blow across the desk as the gas chromatograph blasts
+ the sample at 280 degrees Celsius. Thirty minutes later the machine’s robotic
+ arm automatically moves over to grip another bottle. The machine will continue
+ cranking through the 150 samples in the trays for most of the work week.</p>
+ </div>
+ <div class="section-inner u-sizeFullWidth">
+ <figure name="d6aa" id="d6aa" class="graf--figure postField--fillWidthImage">
+ <div class="aspectRatioPlaceholder is-locked">
+ <div class="aspect-ratio-fill" style="padding-bottom: 61.6%;"></div>
+ <img class="graf-image" data-image-id="1*PU40bbbox2Ompc5I3RE99A.jpeg"
+ data-width="2013" data-height="1241" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*PU40bbbox2Ompc5I3RE99A.jpeg"/>
+ </div>
+ <figcaption class="imageCaption">Photo by Joan Bardeletti</figcaption>
+ </figure>
+ </div>
+ <div class="section-inner layoutSingleColumn">
+ <p name="15e0" id="15e0" class="graf--p">To get the drugs to Barcelona, a user mails at least 10 milligrams of
+ a substance to the offices of the Asociación Bienestar y Desarrollo, the
+ non-government organization that oversees Energy Control. The sample then
+ gets delivered to the testing service’s laboratory, at the Barcelona Biomedical
+ Research Park, a futuristic, seven story building sitting metres away from
+ the beach. Energy Control borrows its lab space from a biomedical research
+ group for free.</p>
+ <p name="2574" id="2574" class="graf--p">The tests cost 50 Euro per sample. Users pay, not surprisingly, with Bitcoin.
+ In the post announcing Energy Control’s service on the deep web, the group
+ promised that “All profits of this service are set aside of maintenance
+ of this project.”</p>
+ <p name="2644" id="2644" class="graf--p">About a week after testing, those results are sent in a PDF to an email
+ address provided by the anonymous client.</p>
+ <p name="9f91" id="9f91" class="graf--p graf--startsWithDoubleQuote">“The process is quite boring, because you are in a routine,” Lladanosa
+ says. But one part of the process is consistently surprising: that moment
+ when the results pop up on the screen. “Every time it’s something different.”
+ For instance, one cocaine sample she had tested also contained phenacetin,
+ a painkiller added to increase the product’s weight; lidocaine, an anesthetic
+ that numbs the gums, giving the impression that the user is taking higher
+ quality cocaine; and common caffeine.</p>
+ <figure name="b821" id="b821"
+ class="graf--figure">
+ <div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 14px;">
+ <div class="aspect-ratio-fill" style="padding-bottom: 2%;"></div>
+ <img class="graf-image" data-image-id="1*ohyycinH18fz98TCyUzVgQ.png"
+ data-width="1200" data-height="24" data-action="zoom" data-action-value="1*ohyycinH18fz98TCyUzVgQ.png"
+ src="https://d262ilb51hltx0.cloudfront.net/max/800/1*ohyycinH18fz98TCyUzVgQ.png"/>
+ </div>
+ </figure>
+ <p name="39a6" id="39a6" class="graf--p">The deep web drug lab is the brainchild of Fernando Caudevilla, a Spanish
+ physician who is better known as “DoctorX” on the deep web, a nickname
+ given to him by his Energy Control co-workers because of his earlier writing
+ about the history, risks and recreational culture of MDMA. In the physical
+ world, Caudevilla has worked for over a decade with Energy Control on various
+ harm reduction focused projects, most of which have involved giving Spanish
+ illegal drug users medical guidance, and often writing leaflets about the
+ harms of certain substances.</p>
+ </div>
+ <div class="section-inner u-sizeFullWidth">
+ <figure name="eebc" id="eebc" class="graf--figure postField--fillWidthImage">
+ <div class="aspectRatioPlaceholder is-locked">
+ <div class="aspect-ratio-fill" style="padding-bottom: 59.099999999999994%;"></div>
+ <img class="graf-image" data-image-id="1*mKvUNOAVQxl6atCbxbCZsg.jpeg"
+ data-width="2100" data-height="1241" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*mKvUNOAVQxl6atCbxbCZsg.jpeg"/>
+ </div>
+ <figcaption class="imageCaption">Fernando Caudevilla, AKA DoctorX. Photo: Joseph Cox</figcaption>
+ </figure>
+ </div>
+ <div class="section-inner layoutSingleColumn">
+ <p name="c099" id="c099" class="graf--p">Caudevilla first ventured into Silk Road forums in April 2013. “I would
+ like to contribute to this forum offering professional advice in topics
+ related to drug use and health,” he wrote in an <a href="http://web.archive.org/web/20131015051405/https://dkn255hz262ypmii.onion.to/index.php?topic=147607.0"
+ data-href="http://web.archive.org/web/20131015051405/https://dkn255hz262ypmii.onion.to/index.php?topic=147607.0"
+ class="markup--anchor markup--p-anchor" rel="nofollow">introductory post</a>,
+ using his DoctorX alias. Caudevilla offered to provide answers to questions
+ that a typical doctor is not prepared, or willing, to respond to, at least
+ not without a lecture or a judgment. “This advice cannot replace a complete
+ face-to-face medical evaluation,” he wrote, “but I know how difficult it
+ can be to talk frankly about these things.”</p>
+ <p name="ff1d" id="ff1d"
+ class="graf--p">The requests flooded in. A diabetic asked what effect MDMA has on blood
+ sugar; another what the risks of frequent psychedelic use were for a young
+ person. Someone wanted to know whether amphetamine use should be avoided
+ during lactation. In all, Fernando’s thread received over 50,000 visits
+ and 300 questions before the FBI shut down Silk Road.</p>
+ <p name="1f35"
+ id="1f35" class="graf--p graf--startsWithDoubleQuote">“He’s amazing. A gift to this community,” one user wrote on the Silk Road
+ 2.0 forum, a site that sprang up after the original. “His knowledge is
+ invaluable, and never comes with any judgment.” Up until recently, Caudevilla
+ answered questions on the marketplace “Evolution.” Last week, however,
+ the administrators of that site <a href="http://motherboard.vice.com/read/one-of-the-darknets-biggest-markets-may-have-just-stole-all-its-users-bitcoin"
+ data-href="http://motherboard.vice.com/read/one-of-the-darknets-biggest-markets-may-have-just-stole-all-its-users-bitcoin"
+ class="markup--anchor markup--p-anchor" rel="nofollow">pulled a scam</a>,
+ shutting the market down and escaping with an estimated $12 million worth
+ of Bitcoin.</p>
+ <p name="b20f" id="b20f" class="graf--p">Caudevilla’s transition from dispensing advice to starting up a no-questions-asked
+ drug testing service came as a consequence of his experience on the deep
+ web. He’d wondered whether he could help bring more harm reduction services
+ to a marketplace without controls. The Energy Control project, as part
+ of its mandate of educating drug users and preventing harm, had already
+ been carrying out drug testing for local Spanish users since 2001, at music
+ festivals, night clubs, or through a drop-in service at a lab in Madrid.</p>
+ <p
+ name="f739" id="f739" class="graf--p graf--startsWithDoubleQuote">“I thought, we are doing this in Spain, why don’t we do an international
+ drug testing service?” Caudevilla told me when I visited the other Energy
+ Control lab, in Madrid. Caudevilla, a stocky character with ear piercings
+ and short, shaved hair, has eyes that light up whenever he discusses the
+ world of the deep web. Later, via email, he elaborated that it was not
+ a hard sell. “It was not too hard to convince them,” he wrote me. Clearly,
+ Energy Control believed that the reputation he had earned as an unbiased
+ medical professional on the deep web might carry over to the drug analysis
+ service, where one needs to establish “credibility, trustworthiness, [and]
+ transparency,” Caudevilla said. “We could not make mistakes,” he added.</p>
+ </div>
+ <div class="section-inner u-sizeFullWidth">
+ <figure name="4058" id="4058" class="graf--figure postField--fillWidthImage">
+ <div class="aspectRatioPlaceholder is-locked">
+ <div class="aspect-ratio-fill" style="padding-bottom: 71.39999999999999%;"></div>
+ <img class="graf-image" data-image-id="1*knT10_FNVUmqQIBLnutmzQ.jpeg"
+ data-width="4400" data-height="3141" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*knT10_FNVUmqQIBLnutmzQ.jpeg"/>
+ </div>
+ <figcaption class="imageCaption">Photo: Joseph Cox</figcaption>
+ </figure>
+ </div>
+ <div class="section-inner layoutSingleColumn">
+ <figure name="818c" id="818c" class="graf--figure">
+ <div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 14px;">
+ <div class="aspect-ratio-fill" style="padding-bottom: 2%;"></div>
+ <img class="graf-image" data-image-id="1*ohyycinH18fz98TCyUzVgQ.png"
+ data-width="1200" data-height="24" data-action="zoom" data-action-value="1*ohyycinH18fz98TCyUzVgQ.png"
+ src="https://d262ilb51hltx0.cloudfront.net/max/800/1*ohyycinH18fz98TCyUzVgQ.png"/>
+ </div>
+ </figure>
+ <p name="7b5e" id="7b5e" class="graf--p">While the Energy Control lab in Madrid lab only tests Spanish drugs from
+ various sources, it is the Barcelona location which vets the substances
+ bought in the shadowy recesses of of the deep web. Caudevilla no longer
+ runs it, having handed it over to his colleague Ana Muñoz. She maintains
+ a presence on the deep web forums, answers questions from potential users,
+ and sends back reports when they are ready.</p>
+ <p name="0f0e" id="0f0e"
+ class="graf--p">The testing program exists in a legal grey area. The people who own the
+ Barcelona lab are accredited to experiment with and handle drugs, but Energy
+ Control doesn’t have this permission itself, at least not in writing.</p>
+ <p
+ name="e002" id="e002" class="graf--p graf--startsWithDoubleQuote">“We have a verbal agreement with the police and other authorities. They
+ already know what we are doing,” Lladanosa tells me. It is a pact of mutual
+ benefit. Energy Control provides the police with information on batches
+ of drugs in Spain, whether they’re from the deep web or not, Espinosa says.
+ They also contribute to the European Monitoring Centre for Drugs and Drug
+ Addiction’s early warning system, a collaboration that attempts to spread
+ information about dangerous drugs as quickly as possible.</p>
+ <p name="db1b"
+ id="db1b" class="graf--p">By the time of my visit in February, Energy Control had received over
+ 150 samples from the deep web and have been receiving more at a rate of
+ between 4 and 8 a week. Traditional drugs, such as cocaine and MDMA, make
+ up about 70 percent of the samples tested, but the Barcelona lab has also
+ received samples of the prescription pill codeine, research chemicals and
+ synthetic cannabinoids, and even pills of Viagra.</p>
+ </div>
+ <div class="section-inner u-sizeFullWidth">
+ <figure name="b885" id="b885" class="graf--figure postField--fillWidthImage">
+ <div class="aspectRatioPlaceholder is-locked">
+ <div class="aspect-ratio-fill" style="padding-bottom: 66.8%;"></div>
+ <img class="graf-image" data-image-id="1*Vr61dyCTRwk6CemmVF8YAQ.jpeg"
+ data-width="2100" data-height="1402" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*Vr61dyCTRwk6CemmVF8YAQ.jpeg"/>
+ </div>
+ <figcaption class="imageCaption">Photo by Joan Bardeletti</figcaption>
+ </figure>
+ </div>
+ <div class="section-inner layoutSingleColumn">
+ <p name="e76f" id="e76f" class="graf--p">So it’s fair to make a tentative judgement on what people are paying for
+ on the deep web. The verdict thus far? Overall, drugs on the deep web appear
+ to be of much higher quality than those found on the street.</p>
+ <p name="5352"
+ id="5352" class="graf--p graf--startsWithDoubleQuote">“In general, the cocaine is amazing,” says Caudevilla, saying that the
+ samples they’ve seen have purities climbing towards 80 or 90 percent, and
+ some even higher. To get an idea of how unusual this is, take a look at
+ the <a href="http://www.unodc.org/documents/wdr2014/Cocaine_2014_web.pdf"
+ data-href="http://www.unodc.org/documents/wdr2014/Cocaine_2014_web.pdf"
+ class="markup--anchor markup--p-anchor" rel="nofollow">United Nations Office on Drugs and Crime World Drug Report 2014</a>,
+ which reports that the average quality of street cocaine in Spain is just
+ over 40 percent, while in the United Kingdom it is closer to 30 percent.“We
+ have found 100 percent [pure] cocaine,” he adds. “That’s really, really
+ strange. That means that, technically, this cocaine has been purified,
+ with clandestine methods.”</p>
+ <p name="a71c" id="a71c" class="graf--p">Naturally, identifying vendors who sell this top-of-the-range stuff is
+ one of the reasons that people have sent samples to Energy Control. Caudevilla
+ was keen to stress that, officially, Energy Control’s service “is not intended
+ to be a control of drug quality,” meaning a vetting process for identifying
+ the best sellers, but that is exactly how some people have been using it.</p>
+ <p
+ name="cb5b" id="cb5b" class="graf--p">As one buyer on the Evolution market, elmo666, wrote to me over the site’s
+ messaging system, “My initial motivations were selfish. My primary motivation
+ was to ensure that I was receiving and continue to receive a high quality
+ product, essentially to keep the vendor honest as far as my interactions
+ with them went.”</p>
+ <p name="d80d" id="d80d" class="graf--p">Vendors on deep web markets advertise their product just like any other
+ outlet does, using flash sales, gimmicky giveaways and promises of drugs
+ that are superior to those of their competitors. The claims, however, can
+ turn out to be empty: despite the test results that show that deep web
+ cocaine vendors typically sell product that is of a better quality than
+ that found on the street, in plenty of cases, the drugs are nowhere near
+ as pure as advertised.</p>
+ <p name="36de" id="36de" class="graf--p graf--startsWithDoubleQuote">“You won’t be getting anything CLOSE to what you paid for,” one user complained
+ about the cocaine from ‘Mirkov’, a vendor on Evolution. “He sells 65% not
+ 95%.”</p>
+ </div>
+ <div class="section-inner u-sizeFullWidth">
+ <figure name="8544" id="8544" class="graf--figure postField--fillWidthImage">
+ <div class="aspectRatioPlaceholder is-locked">
+ <div class="aspect-ratio-fill" style="padding-bottom: 66.8%;"></div>
+ <img class="graf-image" data-image-id="1*a-1_13xE6_ErQ-QSlz6myw.jpeg"
+ data-width="2100" data-height="1402" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*a-1_13xE6_ErQ-QSlz6myw.jpeg"/>
+ </div>
+ <figcaption class="imageCaption">Photo by Joan Bardeletti</figcaption>
+ </figure>
+ </div>
+ <div class="section-inner layoutSingleColumn">
+ <figure name="d521" id="d521" class="graf--figure">
+ <div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 14px;">
+ <div class="aspect-ratio-fill" style="padding-bottom: 2%;"></div>
+ <img class="graf-image" data-image-id="1*ohyycinH18fz98TCyUzVgQ.png"
+ data-width="1200" data-height="24" data-action="zoom" data-action-value="1*ohyycinH18fz98TCyUzVgQ.png"
+ src="https://d262ilb51hltx0.cloudfront.net/max/800/1*ohyycinH18fz98TCyUzVgQ.png"/>
+ </div>
+ </figure>
+ <p name="126b" id="126b" class="graf--p">Despite the prevalence of people using the service to gauge the quality
+ of what goes up their nose, many users send samples to Energy Control in
+ the spirit of its original mission: keeping themselves alive and healthy.
+ The worst case scenario from drugs purchased on the deep web is, well the
+ worst case. That was the outcome when <a href="http://www.independent.co.uk/news/uk/crime/teenager-patrick-mcmullen-who-died-while-on-skype-had-bought-drugs-from-silk-road-8942329.html"
+ data-href="http://www.independent.co.uk/news/uk/crime/teenager-patrick-mcmullen-who-died-while-on-skype-had-bought-drugs-from-silk-road-8942329.html"
+ class="markup--anchor markup--p-anchor" rel="nofollow">Patrick McMullen,</a> a
+ 17-year-old Scottish student, ingested half a gram of MDMA and three tabs
+ of LSD, reportedly purchased from the Silk Road. While talking to his friends
+ on Skype, his words became slurred and he passed out. Paramedics could
+ not revive him. The coroner for that case, Sherrif Payne, who deemed the
+ cause of death ecstasy toxicity, told <em class="markup--em markup--p-em">The Independent</em> “You
+ never know the purity of what you are taking and you can easily come unstuck.”</p>
+ <p
+ name="5e9e" id="5e9e" class="graf--p">ScreamMyName, a deep web user who has been active since the original Silk
+ Road, wants to alert users to the dangerous chemicals that are often mixed
+ with drugs, and is using Energy Control as a means to do so.</p>
+ <p name="19a6"
+ id="19a6" class="graf--p graf--startsWithDoubleQuote">“We’re at a time where some vendors are outright sending people poison.
+ Some do it unknowingly,” ScreamMyName told me in an encrypted message.
+ “Cocaine production in South America is often tainted with either levamisole
+ or phenacetine. Both poison to humans and both with severe side effects.”</p>
+ <p
+ name="9fef" id="9fef" class="graf--p">In the case of Levamisole, those prescribing it are often not doctors
+ but veterinarians, as Levamisole is commonly used on animals, primarily
+ for the treatment of worms. If ingested by humans it can lead to cases
+ of extreme eruptions of the skin, as <a href="http://www.ncbi.nlm.nih.gov/pubmed/22127712"
+ data-href="http://www.ncbi.nlm.nih.gov/pubmed/22127712" class="markup--anchor markup--p-anchor"
+ rel="nofollow">documented in a study</a> from researchers at the University
+ of California, San Francisco. But Lladanosa has found Levamisole in cocaine
+ samples; dealers use it to increase the product weight, allowing them to
+ stretch their batch further for greater profit — and also, she says, because
+ Levamisole has a strong stimulant effect.</p>
+ <p name="7886" id="7886" class="graf--p graf--startsWithDoubleQuote">“It got me sick as fuck,” Dr. Feel, an Evolution user, wrote on the site’s
+ forums after consuming cocaine that had been cut with 23 percent Levamisole,
+ and later tested by Energy Control. “I was laid up in bed for several days
+ because of that shit. The first night I did it, I thought I was going to
+ die. I nearly drove myself to the ER.”</p>
+ <p name="18d3" id="18d3" class="graf--p graf--startsWithDoubleQuote">“More people die because of tainted drugs than the drugs themselves,”
+ Dr. Feel added. “It’s the cuts and adulterants that are making people sick
+ and killing them.”</p>
+ </div>
+ <div class="section-inner u-sizeFullWidth">
+ <figure name="552a" id="552a" class="graf--figure postField--fillWidthImage">
+ <div class="aspectRatioPlaceholder is-locked">
+ <div class="aspect-ratio-fill" style="padding-bottom: 56.8%;"></div>
+ <img class="graf-image" data-image-id="1*IWXhtSsVv0gNnCwnDEXk-Q.jpeg"
+ data-width="2100" data-height="1192" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*IWXhtSsVv0gNnCwnDEXk-Q.jpeg"/>
+ </div>
+ <figcaption class="imageCaption">Photo by Joan Bardeletti</figcaption>
+ </figure>
+ </div>
+ <div class="section-inner layoutSingleColumn">
+ <p name="839a" id="839a" class="graf--p">The particular case of cocaine cut with Levamisole is one of the reasons
+ that ScreamMyName has been pushing for more drug testing on the deep web
+ markets. “I recognize that drug use isn’t exactly healthy, but why exacerbate
+ the problem?” he told me when I contacted him after his post. “[Energy
+ Control] provides a way for users to test the drugs they’ll use and for
+ these very users to know what it is they’re putting in their bodies. Such
+ services are in very short supply.”</p>
+ <p name="18dc" id="18dc" class="graf--p">After sending a number of Energy Control tests himself, ScreamMyName started
+ a de facto crowd-sourcing campaign to get more drugs sent to the lab, and
+ then shared the results, after throwing in some cash to get the ball rolling.
+ <a
+ href="https://blockchain.info/address/1Mi6VjMFqjcD48FPV7cnPB24MAtQQenRy3"
+ data-href="https://blockchain.info/address/1Mi6VjMFqjcD48FPV7cnPB24MAtQQenRy3"
+ class="markup--anchor markup--p-anchor" rel="nofollow">He set up a Bitcoin wallet</a>, with the hope that users might chip in
+ to fund further tests. At the time of writing, the wallet has received
+ a total of 1.81 bitcoins; around $430 at today’s exchange rates.</p>
+ <p
+ name="dcbd" id="dcbd" class="graf--p">In posts to the Evolution community, ScreamMyName pitched this project
+ as something that will benefit users and keep drug dealer honest. “When
+ the funds build up to a point where we can purchase an [Energy Control]
+ test fee, we’ll do a US thread poll for a few days and try to cohesively
+ decide on what vendor to test,” he continued.</p>
+ </div>
+ <div class="section-inner u-sizeFullWidth">
+ <figure name="9d32" id="9d32" class="graf--figure postField--fillWidthImage">
+ <div class="aspectRatioPlaceholder is-locked">
+ <div class="aspect-ratio-fill" style="padding-bottom: 66.7%;"></div>
+ <img class="graf-image" data-image-id="1*NGcrjfkV0l37iQH2uyYjEw.jpeg"
+ data-width="1368" data-height="913" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*NGcrjfkV0l37iQH2uyYjEw.jpeg"/>
+ </div>
+ <figcaption class="imageCaption">Photo by Joan Bardeletti</figcaption>
+ </figure>
+ </div>
+ <div class="section-inner layoutSingleColumn">
+ <p name="bff6" id="bff6" class="graf--p">Other members of the community have been helping out, too. PlutoPete,
+ a vendor from the original Silk Road who sold cannabis seeds and other
+ legal items, has provided ScreamMyName with packaging to safely send the
+ samples to Barcelona. “A box of baggies, and a load of different moisture
+ barrier bags,” PlutoPete told me over the phone. “That’s what all the vendors
+ use.”</p>
+ <p name="bb78" id="bb78" class="graf--p">It’s a modest program so far. ScreamMyName told me that so far he had
+ gotten enough public funding to purchase five different Energy Control
+ tests, in addition to the ten or so he’s sent himself so far. “The program
+ created is still in its infancy and it is growing and changing as we go
+ along but I have a lot of faith in what we’re doing,” he says.</p>
+ <p name="5638"
+ id="5638" class="graf--p">But the spirit is contagious: elmo666, the other deep web user testing
+ cocaine, originally kept the results of the drug tests to himself, but
+ he, too, saw a benefit to distributing the data. “It is clear that it is
+ a useful service to other users, keeping vendors honest and drugs (and
+ their users) safe,” he told me. He started to report his findings to others
+ on the forums, and then created a thread with summaries of the test results,
+ as well as comments from the vendors if they provided it. Other users were
+ soon basing their decisions on what to buy on elmo666‘s tests.</p>
+ <p name="de75"
+ id="de75" class="graf--p graf--startsWithDoubleQuote">“I’m defo trying the cola based on the incredibly helpful elmo and his
+ energy control results and recommendations,” wrote user jayk1984. On top
+ of this, elmo666 plans to launch an independent site on the deep web that
+ will collate all of these results, which should act as a resource for users
+ of all the marketplaces.</p>
+ <p name="6b72" id="6b72" class="graf--p">As word of elmo666's efforts spread, he began getting requests from drug
+ dealers who wanted him to use their wares for testing. Clearly, they figured
+ that a positive result from Energy Control would be a fantastic marketing
+ tool to draw more customers. They even offered elmo666 free samples. (He
+ passed.)</p>
+ <p name="b008" id="b008" class="graf--p">Meanwhile, some in the purchasing community are arguing that those running
+ markets on the deep web should be providing quality control themselves.
+ PlutoPete told me over the phone that he had been in discussions about
+ this with Dread Pirate Roberts, the pseudonymous owner of the original
+ Silk Road site. “We [had been] talking about that on a more organized basis
+ on Silk Road 1, doing lots of anonymous buys to police each category. But
+ of course they took the thing [Silk Road] down before we got it properly
+ off the ground,” he lamented.</p>
+ <p name="49c8" id="49c8" class="graf--p">But perhaps it is best that the users, those who are actually consuming
+ the drugs, remain in charge of shaming dealers and warning each other.
+ “It’s our responsibility to police the market based on reviews and feedback,”
+ elmo666 wrote in an Evolution forum post. It seems that in the lawless
+ space of the deep web, where everything from child porn to weapons are
+ sold openly, users have cooperated in an organic display of self-regulation
+ to stamp out those particular batches of drugs that are more likely to
+ harm users.</p>
+ <p name="386d" id="386d" class="graf--p graf--startsWithDoubleQuote">“That’s always been the case with the deep web,” PlutoPete told me. Indeed,
+ ever since Silk Road, a stable of the drug markets has been the review
+ system, where buyers can leave a rating and feedback for vendors, letting
+ others know about the reliability of the seller. But DoctorX’s lab, rigorously
+ testing the products with scientific instruments, takes it a step further.</p>
+ </div>
+ <div class="section-inner u-sizeFullWidth">
+ <figure name="890b" id="890b" class="graf--figure postField--fillWidthImage">
+ <div class="aspectRatioPlaceholder is-locked">
+ <div class="aspect-ratio-fill" style="padding-bottom: 65.4%;"></div>
+ <img class="graf-image" data-image-id="1*WRlKt3q3mt7utmwxcbl3sQ.jpeg"
+ data-width="2100" data-height="1373" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*WRlKt3q3mt7utmwxcbl3sQ.jpeg"/>
+ </div>
+ <figcaption class="imageCaption">Photo by Joan Bardeletti</figcaption>
+ </figure>
+ </div>
+ <div class="section-inner layoutSingleColumn">
+ <p name="b109" id="b109" class="graf--p graf--startsWithDoubleQuote">“In the white market, they have quality control. In the dark market, it
+ should be the same,” Cristina Gil Lladanosa says to me before I leave the
+ Barcelona lab.</p>
+ <p name="e3a4" id="e3a4" class="graf--p">A week after I visit the lab, the results of the MDMA arrive in my inbox:
+ it is 85 percent pure, with no indications of other active ingredients.
+ Whoever ordered that sample from the digital shelves of the deep web, and
+ had it shipped to their doorstep in Canada, got hold of some seriously
+ good, and relatively safe drugs. And now they know it.</p>
+ <figure name="31cf"
+ id="31cf" class="graf--figure">
+ <div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 14px;">
+ <div class="aspect-ratio-fill" style="padding-bottom: 2%;"></div>
+ <img class="graf-image" data-image-id="1*320_4I0lxbn5x3bx4XPI5Q.png"
+ data-width="1200" data-height="24" data-action="zoom" data-action-value="1*320_4I0lxbn5x3bx4XPI5Q.png"
+ src="https://d262ilb51hltx0.cloudfront.net/max/800/1*320_4I0lxbn5x3bx4XPI5Q.png"/>
+ </div>
+ </figure>
+ <p name="9b87" id="9b87" data-align="center" class="graf--p"><em class="markup--em markup--p-em">Top photo by Joan Bardeletti</em>
+ </p>
+ <p name="c30a" id="c30a" data-align="center" class="graf--p graf--last">Follow Backchannel: <a href="https://twitter.com/backchnnl" data-href="https://twitter.com/backchnnl"
+ class="markup--anchor markup--p-anchor" rel="nofollow"><em class="markup--em markup--p-em">Twitter</em></a>
+ <em
+ class="markup--em markup--p-em">|</em><a href="https://www.facebook.com/pages/Backchannel/1488568504730671"
+ data-href="https://www.facebook.com/pages/Backchannel/1488568504730671"
+ class="markup--anchor markup--p-anchor" rel="nofollow"><em class="markup--em markup--p-em">Facebook</em></a>
+ </p>
+ </div>
+ </div>
+ </section>
+ </div>
+ </div>
+ <div class="postFooter--simple2 supplementalPostContent layoutSingleColumn js-postFooter">
+ <div class="u-clearfix postFooter-actions--simple2">
+ <div class="u-floatLeft">
+ <button class="button button--primary button--toggle button--recommend js-recommendButton"
+ title="Recommend to share this article with your followers and let the author know you liked it"
+ data-action="sign-in-prompt" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/9718cd0fe504"><span class="icon icon--heart2Outline75 icon--default"></span><span class="icon icon--active icon--heart2"></span>
+ <span
+ class="button-label label--default">Recommend</span><span class="button-label label--active">Recommended</span>
+ </button>
+ <!-- Recommended by string will be injected here from the VoteWidget -->
+ <div class="voteWidget--footer js-footerVoteWidget"></div>
+ </div>
+ <div class="u-floatRight">
+ <div class="buttonSet">
+ <button class="button button--vertical button--bookmark js-bookmarkButton"
+ title="Bookmark this story to read later" data-action="sign-in-prompt"
+ data-requires-token="true" data-redirect="/_/bookmark/p/9718cd0fe504"><span class="icon icon--readingList2outline icon--default"></span>
+ <span
+ class="icon icon--active icon--readingList2"></span><span class="label label--default">Bookmark</span><span class="label label--active">Bookmarked</span>
+ </button>
+ <button class="button button--vertical button--share" title="Share this story on Twitter, Facebook, or email"
+ data-action="show-share-popover" data-action-value="9718cd0fe504" data-action-source="footer"><span class="icon icon--share2Outline "></span><span class="label ">Share</span>
+ </button>
+ <button class="button button--vertical u-xs-hide button--more" title="More actions"
+ data-action="more-actions"><span class="icon icon--arrowDownThin "></span><span class="label ">More</span>
+ </button>
+ </div>
+ </div>
+ </div>
+ <div class="postFooter-mobileRecommendNote u-showOnMobile js-recommendNote"></div>
+ <div class="postFooter-tags infoCard js-postTags"></div>
+ <div class="postFooter-info js-postFooterInfo">
+ <div class="infoCard u-clearfix js-infoCardCollection">
+ <div class="infoCard-avatar"><a class="link js-logCollection" title="Go to Backchannel" href="https://medium.com/backchannel"
+ data-action-source="footer"><img class="card-image card-image--collection" alt="Go to Backchannel" src="https://d262ilb51hltx0.cloudfront.net/fit/c/60/60/1*VN9AINEbi2CS8bHWeu80GQ.png"/></a>
+ </div>
+ <div class="infoCard-info ">
+ <div class="infoCard-wrapper">
+ <div class="infoCard-title">Published in</div><a class="link link--primary js-logCollection" title="Go to Backchannel"
+ href="https://medium.com/backchannel" data-action-source="footer">Backchannel</a>
+ <div
+ class="infoCard-bio">Mining the tech world for lively and meaningful tales and analysis.</div>
+ </div>
+ </div>
+ <div class="infoCard-actions">
+ <button class="button button--small infoCard-showSubscribeForm" data-action="toggle-css-class"
+ data-action-value="is-emailFollowActive" data-action-target="js-infoCardCollection"><span class="button-label ">Follow by email</span>
+ </button>
+ <div class="infoCard-emailFollow">
+ <div class="infoCard-emailFollowTitle u-xs-hide">Email me when there are new stories in the publication</div>
+ <div class="textInput textInput--singleLine textInput--narrow">
+ <div class="js-emailToSubscribe js-emailToSubscribeCollection u-textAlignLeft u-hideOutline"></div>
+ </div>
+ <button class="button button--primary button--small u-verticalAlignTop"
+ data-action="subscribe-by-email" data-action-target="js-emailToSubscribeCollection">Follow</button>
+ </div>
+ </div>
+ </div>
+ <hr class="infoCard-border"/>
+ <div class="infoCard u-clearfix js-infoCardUser">
+ <div class="infoCard-avatar"><a href="https://medium.com/@josephfcox" class="avatar avatar--small"
+ title="Go to the profile of Joseph Cox"><img src="https://d262ilb51hltx0.cloudfront.net/fit/c/60/60/0*caZ172e36yu_pElb.png" class="avatar-image avatar-image--small" title="Joseph Cox"/></a>
+ </div>
+ <div class="infoCard-info ">
+ <div class="infoCard-wrapper">
+ <div class="infoCard-title">Written <span class="postMetaInline postMetaInline--date"><span class="u-xs-hide"> on </span>
+ <time
+ class="post-date">Mar 27</time>
+ </span>by</div><a class="link link--primary" title="Go to the profile of Joseph Cox"
+ href="https://medium.com/@josephfcox">Joseph Cox</a>
+ <div class="infoCard-bio">Encryption Enthusiast. Words for Motherboard, WIRED, Daily Dot. Documentaries
+ for VICE. OTR chat: <a rel="nofollow" href="mailto:[email protected]">[email protected]</a>
+ </div>
+ </div>
+ </div>
+ <div class="infoCard-actions"><span class="followState js-followState"><button class="button button--small button--toggle u-noUserSelect button--follow" title="Follow to get new stories and recommendations from this author" data-action="sign-in-prompt" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/99f6d9c3c62c/9718cd0fe504"><span class="button-label label--default">Follow</span>
+ <span
+ class="button-label label--active">Following</span>
+ </button>
+ </span>
+ </div>
+ </div>
+ <div class="postFooter-acknowledgments--simple2">
+ <div class="postMeta-acknowledgments"><span data-tooltip="The following people helped the author by providing feedback before the story was published.">Thanks to</span> <span><a class="link" title="Go to the profile of Steven Levy" href="https://medium.com/@stevenlevy">Steven Levy</a></span>.</div>
+ </div>
+ </div>
+ </div>
+ <div class="responsesWrapper supplementalPostContent js-responsesWrapper"></div>
+ </div>
+ </div>
+ </div>
+ </section>
+ <footer class="post-footer supplementalPostContent js-readNext"></footer>
+ </article>
+ <div class="postArticle-remote u-sm-hide js-readNextSidebarRemote">
+ <button class="button button--circle" data-action="toggle-read-next-sidebar"><span class="icon icon--arrowRight"></span>
+ </button>
+ </div>
+ <div class="sidebar sidebar--fixed sidebar--bordered sidebar--readNext js-readNextSidebar"></div>
+ </div>
+ </div>
+ </div>
+ <div class="loadingBar"></div>
+ <script>
+ // <![CDATA[
+ var GLOBALS = {"audioUrl":"https://d1fcbxp97j4nb2.cloudfront.net","baseUrl":"https://medium.com","bestOfFirstSlug":"may-2013","bestOfLatestSlug":"february-2015","buildLabel":"14871-a6236ac","currentUser":{"userId":"lo_69de9372095b","subscriberEmail":""},"currentUserHasUnverifiedEmail":false,"defaultPreviewImage":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/default-preview-image.IsBK38jFAJBlWifMLO4z9g.png","defaultUserImage":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/default-avatar.dmbNkD5D-u45r44go_cf0g.png","editorTipsAddCoverImage":"/img/help/add-cover.gif","editorTipsAddMediaImage":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/help/add-media.SZH2LBmkwVExuhozFfVvYg.gif","editorTipsAddMediaImageStatic":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/help/add-media-start.GXmqQ2Svt1WfZGIZSM93tg.gif","editorTipsEmbedImageStatic":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/help/embed-start.EBJ2PcWFJuYopsQV4wwklA.gif","editorTipsShareDraftImage":"/img/help/share-draft.gif","editorTipsTextHighlightImage":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/help/text-highlight.XVChoKYZ1-s3gJgHm9-7Yg.gif","editorTipsTextHighlightImageStatic":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/help/text-highlight-start.AvTbakaFuUCd05YoMECoMQ.gif","facebookKey":"542599432471018","facebookScope":["public_profile","email","user_friends"],"homeImageId":"1*4ncz3hLxmL8E_bUh-0z62w.jpeg","importHighlightMenuImage":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/import/highlight-menu.kzoaVM8mJJ-Hu9m9uo3Omg.png","importImageHighlightMenuImage":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/import/image-highlight-menu.q43-H2dl0JvBS_5znQCW8A.png","importPublishImage":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/import/publish-metabar.YbEX1a2Pu0rAR_LuKeg8JA.png","isAuthenticated":false,"isCurrentUserVerified":"","language":null,"loadingPlaceholderImg":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/media-loading-placeholder.b31hiO4ynbDLRrXWEFF4aQ.png","mediumTwitterScreenName":"medium","miroUrl":"https://d262ilb51hltx0.cloudfront.net","moduleUrls":{"base":"https://dnqgz544uhbo8.cloudfront.net/_/fp/js/main-base.bundle.7QMgaqDVNQgp-bY5wRbaAA.js","notes":"https://dnqgz544uhbo8.cloudfront.net/_/fp/js/main-notes.bundle.7b_8yDOHVH3UqngnJtaCqQ.js","posters":"https://dnqgz544uhbo8.cloudfront.net/_/fp/js/main-posters.bundle.x8MAdL_CX-zTLBVYm5wtig.js","common-async":"https://dnqgz544uhbo8.cloudfront.net/_/fp/js/main-common-async.bundle.h51Lr2SeFxwUSXiieImVBA.js","stats":"https://dnqgz544uhbo8.cloudfront.net/_/fp/js/main-stats.bundle.F5ERK2rv6UtCHgWEAM8U6A.js","misc-screens":"https://dnqgz544uhbo8.cloudfront.net/_/fp/js/main-misc-screens.bundle.8tehRXRNwY8FZ3YDlb-gCQ.js"},"onboardingLandscapeFooterImage":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/logged-out-footer/landscape-bg.W4fnHJbJjHt0fgxh7ssrvQ.jpg","postColumnWidth":700,"previewConfig":{"weightThreshold":1,"weightEmptyParagraph":0,"weightIframeParagraph":0.8,"weightImageParagraph":0.51,"weightTextParagraph":0.05,"weightBq":0.003,"weightH":0.003,"weightP":0.0025,"minPTextLength":40,"truncateBoundaryChars":20,"detectTitle":true,"detectTitleLevThreshold":0.15,"previewConfigVariantA":{"weightThreshold":2},"previewConfigVariantB":{"weightThreshold":10,"detectTitle":false}},"productName":"Medium","responsesRecommendationThreshold":5,"supportsEdit":false,"termsUrl":"//medium.com/policy/9db0094a1e0f","textshotHost":"textshot.medium.com","transactionId":"1427473292297:8ad488838d94","useragent":{"browser":"other","family":"","os":"","version":0,"supportsDesktopEdit":false,"supportsMobileEdit":false,"supportsInteract":false,"supportsView":true,"isMobile":false,"isTablet":false,"isNative":false,"supportsFileAPI":false,"isTier1":false,"clientVersion":"","unknownParagraphsBad":false,"clientChannel":"","supportsRealScrollEvents":false,"supportsVhUnits":false,"ruinsViewportSections":false,"supportsHtml5Video":false,"supportsMagicUnderlines":false},"variants":{"policy_collection_slug":"policy","can_vote":true,"can_update_settings":true,"can_send_push_notifications":true,"can_export_data":true,"enable_notes":true,"allow_test_auth":"disallow","enable_logged_out_sessions":true,"filter_other_languages":true,"use_experimental_css":true,"has_prl_provider_collection_latest":true,"can_resume_from_last_read_location":true,"can_report_bad_posts":true,"enable_social_posts":true,"enable_gosocial_queries":true,"enable_embeds":true,"enable_embed_ui":true,"enable_recommend_notes":true,"enable_recommend_notes_composition":true,"max_upload_size_mb":25,"use_full_width_images":true,"upload_multiple_files":true,"can_follow_users":true,"enable_coverless_consumption_ios":true,"allow_request_account_deletion":true,"enable_sidebar_upload_collection_logo":true,"use_session_tokens":true,"enable_bookmarks_list_ios":true,"enable_gifs_ios":true,"feature_post_in_sidebar":true,"see_featured_post_tab":true,"show_respond_button":true,"can_see_follower_counts":true,"enable_prl_reasons_on_homepage":true,"enable_follower_emails":true,"post_recommend_lists":true,"receive_post_published_pushes":true,"enable_account_conversion":true,"use_new_scheduled_delivery_flow":true,"feed_homepage":true,"enable_collection_subscription_fanout":true,"post_publish_email":true,"manage_collection_in_post_metabar":true,"send_delighted_survey":true,"welcome_post_url":"https://medium.com/@Medium/welcome-to-medium-735fbbc085a1","post_share_metabar":true,"self_serve_fonts":true,"use_direct_switchboard_collection_published_flow":true,"can_see_ios_smart_banner":true,"listing_editor":true,"beautiful_homepage":true,"new_twitter_flow":true,"new_facebook_flow":true,"google_search":true,"enable_simple_reach":true,"signin_services":"twitter,facebook","signup_services":"twitter,facebook","enable_categories":true,"enable_homepage_promos":true,"promo_stream_signup":true,"promo_stream_feature_following":true,"promo_stream_why_write":true,"promo_stream_feature_responses":true,"promo_sidebar_start_writing":true,"promo_sidebar_writing_prompt":true,"promo_sidebar_feature_unlisted":true,"interactions_footer":true,"post_page_collection_logo":true,"enable_bing_search":true,"enable_algolia_search":true,"show_tagged_posts_in_search":true,"enable_textshots":true,"feature_post_on_profile":true,"streamy_profile":true,"profile_interstitial":true,"casual_content_viewer":true,"casual_content_creator":true,"ttr_on_post_list":true,"drafts_unauth":true,"enable_quotes":true,"combined_margin_quotes":true,"friends_only_quotes":true,"enable_quotes_emails":true,"consolidate_publication_info":true,"edit_tags":true,"view_tags":true,"inline_tags":true,"read_next_experiment":"sidebar","edit_publication_contact_info":true,"enable_search_ios":true,"enable_new_cover_flow_ios":true,"enable_rating_prompt":true,"enable_post_show_refactor":true,"enable_your_stories_more_actions":true,"enable_user_search_with_bing":true,"enable_textshot_post":true,"show_related_tags":true,"new_search_interface":true,"restrict_set_visibility":true,"show_actions_after_quote":true,"enable_post_top_quotes":true,"min_quoters_top_quotes":2,"max_quotes_top_quotes":1},"xsrfToken":"","useDynamicCss":false,"canonicalBaseUrl":"https://medium.com","iosAppId":"828256236","supportEmail":"[email protected]","teamName":"Team Medium","fp":{"/img/email/check1.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/check1.0DM77li7vZhq5o2V9cVYLQ.png","/img/email/check2.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/check2.GLlNusQmn1hwo9WDN-gE1w.png","/img/email/check3.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/check3.7VxOUVMXAVbHRRnzMrJ_5A.png","/img/email/fb_logo.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/fb_logo.Q0M98YwNTu77gLWTK6-RyQ.png","/img/email/heart1.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/heart1.rnGEmSwcGUhztl_zSU7l6Q.png","/img/email/heart2.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/heart2.HBiLu3koIYsKjjKroohgbA.png","/img/email/heart3.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/heart3.AIJBOHw11HuhdClVJNtmtg.png","/img/email/logo.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/logo.dPr5ZCzgKMooKYKJwnKarQ.png","/img/email/twitter_logo.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/twitter_logo.Pz4a3o9WMU5QioxLKcyFhQ.png","/img/email/unlisted.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/unlisted.ikh8R2LElOz_1YM8A2Db4g.png","/img/email/follow.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/follow.-VSXwmQhfi2entHPht8l2g.png","/img/email/recommend.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/recommend.scZJ6ysjDBJYd-K3wFK2Hg.png","/img/email/write.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/write.wWIWbAqfZUqn1JD4YSJYNw.png"},"configLabel":"fd2c29e","cssBaseUrl":"https://dnqgz544uhbo8.cloudfront.net/_/fp/css/main-base.6kQxKAiKOmce2ozmMfuxGQ.css","cssSpriteUrl":"https://dnqgz544uhbo8.cloudfront.net/_/fp/css/main-sprites.1B2M2Y8AsgTpgAmY7PhCfg.css","cssFontUrl":"https://dnqgz544uhbo8.cloudfront.net/_/fp/css/fonts-base.RB0XGp9t6rSpksYHwudieQ.css","googleAnalyticsTrackingCode":"UA-24232453-2","iconsJsUrl":"https://dnqgz544uhbo8.cloudfront.net/_/fp/js/icons.kMtvd60hqPtTdUxvP9j8rw.js","jsShivUrl":"https://dnqgz544uhbo8.cloudfront.net/_/fp/js/shiv.RI2ePTZ5gFmMgLzG5bEVAA.js","jsUrl":"https://dnqgz544uhbo8.cloudfront.net/_/fp/js/main-base.bundle.7QMgaqDVNQgp-bY5wRbaAA.js","facebookNamespace":"medium-com","highlightAnimationImg":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/highlight-educational-animation._BG4I2h0KF83wFb3fWnWbA.gif","editorTipsEmbedImage":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/help/embed.1BM0Di9vd91Kv8fLioJabw.gif","authBaseUrl":"https://medium.com","imageUploadSizeMb":25,"isAuthDomainRequest":true,"favIconUrl":"https://dnqgz544uhbo8.cloudfront.net/_/fp/icons/favicon.n7eHNqdWyHhbTLN2-3a-6g.ico","cssFontHintedUrl":"https://dnqgz544uhbo8.cloudfront.net/_/fp/css/fonts-hinted-base.h1mF0S6dQagtUyBbsS0NbQ.css","embedded":{"value":{"id":"9718cd0fe504","versionId":"c57a8ab1e09e","creatorId":"99f6d9c3c62c","creator":{"userId":"99f6d9c3c62c","name":"Joseph Cox","username":"josephfcox","createdAt":1420573722072,"lastPostCreatedAt":1426152018640,"imageId":"0*caZ172e36yu_pElb.png","backgroundImageId":"","bio":"Encryption Enthusiast. \n\nWords for Motherboard, WIRED, Daily Dot. Documentaries for VICE. OTR chat: [email protected]","twitterScreenName":"josephfcox","facebookAccountId":"","type":"User"},"homeCollection":{"id":"d16afa0ae7c","name":"Backchannel","slug":"backchannel","tags":[],"creatorId":"2fff2fb3e70a","description":"Mining the tech world for lively and meaningful tales and analysis.","shortDescription":"Mining the tech world for lively and meaningful tales and…","image":{"imageId":"1*VN9AINEbi2CS8bHWeu80GQ.png","filter":"","backgroundSize":"contain","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":153,"followerCount":11087,"activeAt":1427461675125},"virtuals":{"permissions":{},"isSubscribed":false},"layoutType":1,"logo":{"imageId":"1*CBYh7ADvcY9Z-WYUrJN2Gw.png","filter":"","backgroundSize":"contain","originalWidth":771,"originalHeight":99,"strategy":"resample","height":0,"width":0},"sections":[{"type":2,"collectionHeaderMetadata":{"title":"","description":"","backgroundImage":{"id":"","originalWidth":0,"originalHeight":0,"backgroundSize":"contain","filter":"","isFeatured":false,"externalSrc":""},"logoImage":{"id":"1*CBYh7ADvcY9Z-WYUrJN2Gw.png","originalWidth":771,"originalHeight":99,"backgroundSize":"contain","filter":"","isFeatured":false,"externalSrc":""},"alignment":1,"layout":1}},{"type":1,"postListMetadata":{"source":3,"layout":4,"number":3,"postIds":[],"posts":[]}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":2,"postIds":[],"posts":[]}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":1,"postIds":[],"posts":[]}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":25,"postIds":[],"posts":[]}}],"twitterUsername":"backchnnl","facebookPageName":"backchnnl","publicEmail":"[email protected]","collectionMastheadId":"6837e8bdabbb","domain":"","type":"Collection"},"homeCollectionId":"d16afa0ae7c","title":"Inside the Deep Web Drug Lab","detectedLanguage":"en","latestVersion":"c57a8ab1e09e","latestPublishedVersion":"c57a8ab1e09e","hasUnpublishedEdits":false,"latestRev":1424,"createdAt":1426152018640,"updatedAt":1427461675096,"acceptedAt":0,"firstPublishedAt":1427461675096,"latestPublishedAt":1427461675096,"isRead":false,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Welcome to DoctorX’s Barcelona lab, where the drugs you bought online are tested for safety and purity. No questions asked.","image":{"backgroundSize":"full","strategy":"crop-fixed"},"bodyModel":{"paragraphs":[{"name":"b9ad","type":4,"text":"","markups":[],"layout":5,"metadata":{"id":"1*sLDnS1UWEFIS33uLMxq3cw.jpeg","originalWidth":2100,"originalHeight":1402}},{"name":"9ebb","type":2,"text":"Inside the Deep Web Drug Lab","markups":[],"alignment":2},{"name":"1f41","type":1,"text":"","markups":[]},{"name":"9736","type":13,"text":"Welcome to DoctorX’s Barcelona lab, where the drugs you bought online are tested for safety and purity. No questions asked.","markups":[],"alignment":2},{"name":"fc64","type":1,"text":"","markups":[]},{"name":"7417","type":4,"text":"","markups":[],"layout":1,"metadata":{"id":"1*3vIhkoHIzcxvUdijoCVx6w.png","originalWidth":1200,"originalHeight":24}},{"name":"8a83","type":1,"text":"Standing at a table in a chemistry lab in Barcelona, Cristina Gil Lladanosa tears open a silver, smell-proof protective envelope. She slides out a transparent bag full of crystals. Around her, machines whir and hum, and other researchers mill around in long, white coats.","markups":[]},{"name":"b675","type":1,"text":"She is holding the lab’s latest delivery of a drug bought from the “deep web,” the clandestine corner of the internet that isn’t reachable by normal search engines, and is home to some sites that require special software to access. Labeled as MDMA (the street term is ecstasy), this sample has been shipped from Canada. Lladanosa and her colleague Iván Fornís Espinosa have also received drugs, anonymously, from people in China, Australia, Europe and the United States.","markups":[{"type":3,"start":243,"end":247,"href":"http://en.wikipedia.org/wiki/MDMA","title":"","rel":"","anchorType":0}]},{"name":"3c0b","type":1,"text":"“Here we have speed, MDMA, cocaine, pills,” Lladanosa says, pointing to vials full of red, green, blue and clear solutions sitting in labeled boxes.","markups":[]},{"name":"c4e6","type":4,"text":"Cristina Gil Lladanosa, at the Barcelona testing lab | photo by Joan Bardeletti","markups":[],"layout":5,"metadata":{"id":"1*4gN1-fzOwCniw-DbqQjDeQ.jpeg","originalWidth":2100,"originalHeight":1402}},{"name":"7a54","type":1,"text":"Since 2011, with the launch of Silk Road, anybody has been able to safely buy illegal drugs from the deep web and have them delivered to their door. Though the FBI shut down that black market in October 2013, other outlets have emerged to fill its role. For the last 10 months the lab at which Lladanosa and Espinosa work has offered a paid testing service of those drugs. By sending in samples for analysis, users can know exactly what it is they are buying, and make a more informed decision about whether to ingest the substance. The group, called Energy Control, which has being running “harm reduction” programs since 1999, is the first to run a testing service explicitly geared towards verifying those purchases from the deep web.","markups":[{"type":3,"start":31,"end":40,"href":"http://en.wikipedia.org/wiki/Silk_Road_%28marketplace%29","title":"","rel":"","anchorType":0},{"type":3,"start":551,"end":565,"href":"http://energycontrol.org/","title":"","rel":"","anchorType":0}]},{"name":"4395","type":1,"text":"Before joining Energy Control, Lladanosa briefly worked at a pharmacy, whereas Espinosa spent 14 years doing drug analysis. Working at Energy Control is “more gratifying,” and “rewarding” than her previous jobs, Lladanosa told me. They also receive help from a group of volunteers, made up of a mixture of “squatters,” as Espinosa put it, and medical students, who prepare the samples for testing.","markups":[]},{"name":"0c18","type":1,"text":"After weighing out the crystals, aggressively mixing it with methanol until dissolved, and delicately pouring the liquid into a tiny brown bottle, Lladanosa, a petite woman who is nearly engulfed by her lab coat, is now ready to test the sample. She loads a series of three trays on top of a large white appliance sitting on a table, called a gas chromatograph (GC). A jungle of thick pipes hang from the lab’s ceiling behind it.","markups":[]},{"name":"559c","type":4,"text":"Photo by Joan Bardeletti","markups":[],"layout":5,"metadata":{"id":"1*2KPmZkIBUrhps-2uwDvYFQ.jpeg","originalWidth":2100,"originalHeight":1402}},{"name":"1549","type":1,"text":"“Chromatography separates all the substances,” Lladanosa says as she loads the machine with an array of drugs sent from the deep web and local Spanish users. It can tell whether a sample is pure or contaminated, and if the latter, with what.","markups":[]},{"name":"5d0f","type":1,"text":"Rushes of hot air blow across the desk as the gas chromatograph blasts the sample at 280 degrees Celsius. Thirty minutes later the machine’s robotic arm automatically moves over to grip another bottle. The machine will continue cranking through the 150 samples in the trays for most of the work week.","markups":[]},{"name":"d6aa","type":4,"text":"Photo by Joan Bardeletti","markups":[],"layout":5,"metadata":{"id":"1*PU40bbbox2Ompc5I3RE99A.jpeg","originalWidth":2013,"originalHeight":1241}},{"name":"15e0","type":1,"text":"To get the drugs to Barcelona, a user mails at least 10 milligrams of a substance to the offices of the Asociación Bienestar y Desarrollo, the non-government organization that oversees Energy Control. The sample then gets delivered to the testing service’s laboratory, at the Barcelona Biomedical Research Park, a futuristic, seven story building sitting metres away from the beach. Energy Control borrows its lab space from a biomedical research group for free.","markups":[]},{"name":"2574","type":1,"text":"The tests cost 50 Euro per sample. Users pay, not surprisingly, with Bitcoin. In the post announcing Energy Control’s service on the deep web, the group promised that “All profits of this service are set aside of maintenance of this project.”","markups":[]},{"name":"2644","type":1,"text":"About a week after testing, those results are sent in a PDF to an email address provided by the anonymous client.","markups":[]},{"name":"9f91","type":1,"text":"“The process is quite boring, because you are in a routine,” Lladanosa says. But one part of the process is consistently surprising: that moment when the results pop up on the screen. “Every time it’s something different.” For instance, one cocaine sample she had tested also contained phenacetin, a painkiller added to increase the product’s weight; lidocaine, an anesthetic that numbs the gums, giving the impression that the user is taking higher quality cocaine; and common caffeine.","markups":[]},{"name":"b821","type":4,"text":"","markups":[],"layout":1,"metadata":{"id":"1*ohyycinH18fz98TCyUzVgQ.png","originalWidth":1200,"originalHeight":24}},{"name":"39a6","type":1,"text":"The deep web drug lab is the brainchild of Fernando Caudevilla, a Spanish physician who is better known as “DoctorX” on the deep web, a nickname given to him by his Energy Control co-workers because of his earlier writing about the history, risks and recreational culture of MDMA. In the physical world, Caudevilla has worked for over a decade with Energy Control on various harm reduction focused projects, most of which have involved giving Spanish illegal drug users medical guidance, and often writing leaflets about the harms of certain substances.","markups":[]},{"name":"eebc","type":4,"text":"Fernando Caudevilla, AKA DoctorX. Photo: Joseph Cox","markups":[],"layout":5,"metadata":{"id":"1*mKvUNOAVQxl6atCbxbCZsg.jpeg","originalWidth":2100,"originalHeight":1241}},{"name":"c099","type":1,"text":"Caudevilla first ventured into Silk Road forums in April 2013. “I would like to contribute to this forum offering professional advice in topics related to drug use and health,” he wrote in an introductory post, using his DoctorX alias. Caudevilla offered to provide answers to questions that a typical doctor is not prepared, or willing, to respond to, at least not without a lecture or a judgment. “This advice cannot replace a complete face-to-face medical evaluation,” he wrote, “but I know how difficult it can be to talk frankly about these things.”","markups":[{"type":3,"start":192,"end":209,"href":"http://web.archive.org/web/20131015051405/https://dkn255hz262ypmii.onion.to/index.php?topic=147607.0","title":"","rel":"","anchorType":0}]},{"name":"ff1d","type":1,"text":"The requests flooded in. A diabetic asked what effect MDMA has on blood sugar; another what the risks of frequent psychedelic use were for a young person. Someone wanted to know whether amphetamine use should be avoided during lactation. In all, Fernando’s thread received over 50,000 visits and 300 questions before the FBI shut down Silk Road.","markups":[]},{"name":"1f35","type":1,"text":"“He’s amazing. A gift to this community,” one user wrote on the Silk Road 2.0 forum, a site that sprang up after the original. “His knowledge is invaluable, and never comes with any judgment.” Up until recently, Caudevilla answered questions on the marketplace “Evolution.” Last week, however, the administrators of that site pulled a scam, shutting the market down and escaping with an estimated $12 million worth of Bitcoin.","markups":[{"type":3,"start":326,"end":339,"href":"http://motherboard.vice.com/read/one-of-the-darknets-biggest-markets-may-have-just-stole-all-its-users-bitcoin","title":"","rel":"","anchorType":0}]},{"name":"b20f","type":1,"text":"Caudevilla’s transition from dispensing advice to starting up a no-questions-asked drug testing service came as a consequence of his experience on the deep web. He’d wondered whether he could help bring more harm reduction services to a marketplace without controls. The Energy Control project, as part of its mandate of educating drug users and preventing harm, had already been carrying out drug testing for local Spanish users since 2001, at music festivals, night clubs, or through a drop-in service at a lab in Madrid.","markups":[]},{"name":"f739","type":1,"text":"“I thought, we are doing this in Spain, why don’t we do an international drug testing service?” Caudevilla told me when I visited the other Energy Control lab, in Madrid. Caudevilla, a stocky character with ear piercings and short, shaved hair, has eyes that light up whenever he discusses the world of the deep web. Later, via email, he elaborated that it was not a hard sell. “It was not too hard to convince them,” he wrote me. Clearly, Energy Control believed that the reputation he had earned as an unbiased medical professional on the deep web might carry over to the drug analysis service, where one needs to establish “credibility, trustworthiness, [and] transparency,” Caudevilla said. “We could not make mistakes,” he added.","markups":[]},{"name":"4058","type":4,"text":"Photo: Joseph Cox","markups":[],"layout":5,"metadata":{"id":"1*knT10_FNVUmqQIBLnutmzQ.jpeg","originalWidth":4400,"originalHeight":3141}},{"name":"818c","type":4,"text":"","markups":[],"layout":1,"metadata":{"id":"1*ohyycinH18fz98TCyUzVgQ.png","originalWidth":1200,"originalHeight":24}},{"name":"7b5e","type":1,"text":"While the Energy Control lab in Madrid lab only tests Spanish drugs from various sources, it is the Barcelona location which vets the substances bought in the shadowy recesses of of the deep web. Caudevilla no longer runs it, having handed it over to his colleague Ana Muñoz. She maintains a presence on the deep web forums, answers questions from potential users, and sends back reports when they are ready.","markups":[]},{"name":"0f0e","type":1,"text":"The testing program exists in a legal grey area. The people who own the Barcelona lab are accredited to experiment with and handle drugs, but Energy Control doesn’t have this permission itself, at least not in writing.","markups":[]},{"name":"e002","type":1,"text":"“We have a verbal agreement with the police and other authorities. They already know what we are doing,” Lladanosa tells me. It is a pact of mutual benefit. Energy Control provides the police with information on batches of drugs in Spain, whether they’re from the deep web or not, Espinosa says. They also contribute to the European Monitoring Centre for Drugs and Drug Addiction’s early warning system, a collaboration that attempts to spread information about dangerous drugs as quickly as possible.","markups":[]},{"name":"db1b","type":1,"text":"By the time of my visit in February, Energy Control had received over 150 samples from the deep web and have been receiving more at a rate of between 4 and 8 a week. Traditional drugs, such as cocaine and MDMA, make up about 70 percent of the samples tested, but the Barcelona lab has also received samples of the prescription pill codeine, research chemicals and synthetic cannabinoids, and even pills of Viagra.","markups":[]},{"name":"b885","type":4,"text":"Photo by Joan Bardeletti","markups":[],"layout":5,"metadata":{"id":"1*Vr61dyCTRwk6CemmVF8YAQ.jpeg","originalWidth":2100,"originalHeight":1402}},{"name":"e76f","type":1,"text":"So it’s fair to make a tentative judgement on what people are paying for on the deep web. The verdict thus far? Overall, drugs on the deep web appear to be of much higher quality than those found on the street.","markups":[]},{"name":"5352","type":1,"text":"“In general, the cocaine is amazing,” says Caudevilla, saying that the samples they’ve seen have purities climbing towards 80 or 90 percent, and some even higher. To get an idea of how unusual this is, take a look at the United Nations Office on Drugs and Crime World Drug Report 2014, which reports that the average quality of street cocaine in Spain is just over 40 percent, while in the United Kingdom it is closer to 30 percent.“We have found 100 percent [pure] cocaine,” he adds. “That’s really, really strange. That means that, technically, this cocaine has been purified, with clandestine methods.”","markups":[{"type":3,"start":221,"end":284,"href":"http://www.unodc.org/documents/wdr2014/Cocaine_2014_web.pdf","title":"","rel":"","anchorType":0}]},{"name":"a71c","type":1,"text":"Naturally, identifying vendors who sell this top-of-the-range stuff is one of the reasons that people have sent samples to Energy Control. Caudevilla was keen to stress that, officially, Energy Control’s service “is not intended to be a control of drug quality,” meaning a vetting process for identifying the best sellers, but that is exactly how some people have been using it.","markups":[]},{"name":"cb5b","type":1,"text":"As one buyer on the Evolution market, elmo666, wrote to me over the site’s messaging system, “My initial motivations were selfish. My primary motivation was to ensure that I was receiving and continue to receive a high quality product, essentially to keep the vendor honest as far as my interactions with them went.”","markups":[]},{"name":"d80d","type":1,"text":"Vendors on deep web markets advertise their product just like any other outlet does, using flash sales, gimmicky giveaways and promises of drugs that are superior to those of their competitors. The claims, however, can turn out to be empty: despite the test results that show that deep web cocaine vendors typically sell product that is of a better quality than that found on the street, in plenty of cases, the drugs are nowhere near as pure as advertised.","markups":[]},{"name":"36de","type":1,"text":"“You won’t be getting anything CLOSE to what you paid for,” one user complained about the cocaine from ‘Mirkov’, a vendor on Evolution. “He sells 65% not 95%.”","markups":[]},{"name":"8544","type":4,"text":"Photo by Joan Bardeletti","markups":[],"layout":5,"metadata":{"id":"1*a-1_13xE6_ErQ-QSlz6myw.jpeg","originalWidth":2100,"originalHeight":1402}},{"name":"d521","type":4,"text":"","markups":[],"layout":1,"metadata":{"id":"1*ohyycinH18fz98TCyUzVgQ.png","originalWidth":1200,"originalHeight":24}},{"name":"126b","type":1,"text":"Despite the prevalence of people using the service to gauge the quality of what goes up their nose, many users send samples to Energy Control in the spirit of its original mission: keeping themselves alive and healthy. The worst case scenario from drugs purchased on the deep web is, well the worst case. That was the outcome when Patrick McMullen, a 17-year-old Scottish student, ingested half a gram of MDMA and three tabs of LSD, reportedly purchased from the Silk Road. While talking to his friends on Skype, his words became slurred and he passed out. Paramedics could not revive him. The coroner for that case, Sherrif Payne, who deemed the cause of death ecstasy toxicity, told The Independent “You never know the purity of what you are taking and you can easily come unstuck.”","markups":[{"type":3,"start":331,"end":348,"href":"http://www.independent.co.uk/news/uk/crime/teenager-patrick-mcmullen-who-died-while-on-skype-had-bought-drugs-from-silk-road-8942329.html","title":"","rel":"","anchorType":0},{"type":2,"start":685,"end":700}]},{"name":"5e9e","type":1,"text":"ScreamMyName, a deep web user who has been active since the original Silk Road, wants to alert users to the dangerous chemicals that are often mixed with drugs, and is using Energy Control as a means to do so.","markups":[]},{"name":"19a6","type":1,"text":"“We’re at a time where some vendors are outright sending people poison. Some do it unknowingly,” ScreamMyName told me in an encrypted message. “Cocaine production in South America is often tainted with either levamisole or phenacetine. Both poison to humans and both with severe side effects.”","markups":[]},{"name":"9fef","type":1,"text":"In the case of Levamisole, those prescribing it are often not doctors but veterinarians, as Levamisole is commonly used on animals, primarily for the treatment of worms. If ingested by humans it can lead to cases of extreme eruptions of the skin, as documented in a study from researchers at the University of California, San Francisco. But Lladanosa has found Levamisole in cocaine samples; dealers use it to increase the product weight, allowing them to stretch their batch further for greater profit — and also, she says, because Levamisole has a strong stimulant effect.","markups":[{"type":3,"start":250,"end":271,"href":"http://www.ncbi.nlm.nih.gov/pubmed/22127712","title":"","rel":"","anchorType":0}]},{"name":"7886","type":1,"text":"“It got me sick as fuck,” Dr. Feel, an Evolution user, wrote on the site’s forums after consuming cocaine that had been cut with 23 percent Levamisole, and later tested by Energy Control. “I was laid up in bed for several days because of that shit. The first night I did it, I thought I was going to die. I nearly drove myself to the ER.”","markups":[]},{"name":"18d3","type":1,"text":"“More people die because of tainted drugs than the drugs themselves,” Dr. Feel added. “It’s the cuts and adulterants that are making people sick and killing them.”","markups":[]},{"name":"552a","type":4,"text":"Photo by Joan Bardeletti","markups":[],"layout":5,"metadata":{"id":"1*IWXhtSsVv0gNnCwnDEXk-Q.jpeg","originalWidth":2100,"originalHeight":1192}},{"name":"839a","type":1,"text":"The particular case of cocaine cut with Levamisole is one of the reasons that ScreamMyName has been pushing for more drug testing on the deep web markets. “I recognize that drug use isn’t exactly healthy, but why exacerbate the problem?” he told me when I contacted him after his post. “[Energy Control] provides a way for users to test the drugs they’ll use and for these very users to know what it is they’re putting in their bodies. Such services are in very short supply.”","markups":[]},{"name":"18dc","type":1,"text":"After sending a number of Energy Control tests himself, ScreamMyName started a de facto crowd-sourcing campaign to get more drugs sent to the lab, and then shared the results, after throwing in some cash to get the ball rolling. He set up a Bitcoin wallet, with the hope that users might chip in to fund further tests. At the time of writing, the wallet has received a total of 1.81 bitcoins; around $430 at today’s exchange rates.","markups":[{"type":3,"start":229,"end":255,"href":"https://blockchain.info/address/1Mi6VjMFqjcD48FPV7cnPB24MAtQQenRy3","title":"","rel":"","anchorType":0}]},{"name":"dcbd","type":1,"text":"In posts to the Evolution community, ScreamMyName pitched this project as something that will benefit users and keep drug dealer honest. “When the funds build up to a point where we can purchase an [Energy Control] test fee, we’ll do a US thread poll for a few days and try to cohesively decide on what vendor to test,” he continued.","markups":[]},{"name":"9d32","type":4,"text":"Photo by Joan Bardeletti","markups":[],"layout":5,"metadata":{"id":"1*NGcrjfkV0l37iQH2uyYjEw.jpeg","originalWidth":1368,"originalHeight":913}},{"name":"bff6","type":1,"text":"Other members of the community have been helping out, too. PlutoPete, a vendor from the original Silk Road who sold cannabis seeds and other legal items, has provided ScreamMyName with packaging to safely send the samples to Barcelona. “A box of baggies, and a load of different moisture barrier bags,” PlutoPete told me over the phone. “That’s what all the vendors use.”","markups":[]},{"name":"bb78","type":1,"text":"It’s a modest program so far. ScreamMyName told me that so far he had gotten enough public funding to purchase five different Energy Control tests, in addition to the ten or so he’s sent himself so far. “The program created is still in its infancy and it is growing and changing as we go along but I have a lot of faith in what we’re doing,” he says.","markups":[]},{"name":"5638","type":1,"text":"But the spirit is contagious: elmo666, the other deep web user testing cocaine, originally kept the results of the drug tests to himself, but he, too, saw a benefit to distributing the data. “It is clear that it is a useful service to other users, keeping vendors honest and drugs (and their users) safe,” he told me. He started to report his findings to others on the forums, and then created a thread with summaries of the test results, as well as comments from the vendors if they provided it. Other users were soon basing their decisions on what to buy on elmo666‘s tests.","markups":[]},{"name":"de75","type":1,"text":"“I’m defo trying the cola based on the incredibly helpful elmo and his energy control results and recommendations,” wrote user jayk1984. On top of this, elmo666 plans to launch an independent site on the deep web that will collate all of these results, which should act as a resource for users of all the marketplaces.","markups":[]},{"name":"6b72","type":1,"text":"As word of elmo666's efforts spread, he began getting requests from drug dealers who wanted him to use their wares for testing. Clearly, they figured that a positive result from Energy Control would be a fantastic marketing tool to draw more customers. They even offered elmo666 free samples. (He passed.)","markups":[]},{"name":"b008","type":1,"text":"Meanwhile, some in the purchasing community are arguing that those running markets on the deep web should be providing quality control themselves. PlutoPete told me over the phone that he had been in discussions about this with Dread Pirate Roberts, the pseudonymous owner of the original Silk Road site. “We [had been] talking about that on a more organized basis on Silk Road 1, doing lots of anonymous buys to police each category. But of course they took the thing [Silk Road] down before we got it properly off the ground,” he lamented.","markups":[]},{"name":"49c8","type":1,"text":"But perhaps it is best that the users, those who are actually consuming the drugs, remain in charge of shaming dealers and warning each other. “It’s our responsibility to police the market based on reviews and feedback,” elmo666 wrote in an Evolution forum post. It seems that in the lawless space of the deep web, where everything from child porn to weapons are sold openly, users have cooperated in an organic display of self-regulation to stamp out those particular batches of drugs that are more likely to harm users.","markups":[]},{"name":"386d","type":1,"text":"“That’s always been the case with the deep web,” PlutoPete told me. Indeed, ever since Silk Road, a stable of the drug markets has been the review system, where buyers can leave a rating and feedback for vendors, letting others know about the reliability of the seller. But DoctorX’s lab, rigorously testing the products with scientific instruments, takes it a step further.","markups":[]},{"name":"890b","type":4,"text":"Photo by Joan Bardeletti","markups":[],"layout":5,"metadata":{"id":"1*WRlKt3q3mt7utmwxcbl3sQ.jpeg","originalWidth":2100,"originalHeight":1373}},{"name":"b109","type":1,"text":"“In the white market, they have quality control. In the dark market, it should be the same,” Cristina Gil Lladanosa says to me before I leave the Barcelona lab.","markups":[]},{"name":"e3a4","type":1,"text":"A week after I visit the lab, the results of the MDMA arrive in my inbox: it is 85 percent pure, with no indications of other active ingredients. Whoever ordered that sample from the digital shelves of the deep web, and had it shipped to their doorstep in Canada, got hold of some seriously good, and relatively safe drugs. And now they know it.","markups":[]},{"name":"31cf","type":4,"text":"","markups":[],"layout":1,"metadata":{"id":"1*320_4I0lxbn5x3bx4XPI5Q.png","originalWidth":1200,"originalHeight":24}},{"name":"9b87","type":1,"text":"Top photo by Joan Bardeletti","markups":[{"type":2,"start":0,"end":28}],"alignment":2},{"name":"c30a","type":1,"text":"Follow Backchannel: Twitter | Facebook","markups":[{"type":3,"start":20,"end":27,"href":"https://twitter.com/backchnnl","title":"","rel":"nofollow","anchorType":0},{"type":3,"start":30,"end":38,"href":"https://www.facebook.com/pages/Backchannel/1488568504730671","title":"","rel":"nofollow","anchorType":0},{"type":2,"start":20,"end":38}],"alignment":2}],"sections":[{"name":"ef8c","startIndex":0}]},"postDisplay":{"coverless":true}},"media":null,"virtuals":{"currentCollectionId":"","statusForCollection":"APPROVED","createdAtRelative":"15 days ago","updatedAtRelative":"3 hours ago","acceptedAtRelative":"","createdAtEnglish":"March 12, 2015","updatedAtEnglish":"March 27, 2015","acceptedAtEnglish":"","firstPublishedAtEnglish":"March 27, 2015","latestPublishedAtEnglish":"March 27, 2015","allowNotes":true,"languageTier":1,"snippet":"Welcome to DoctorX’s Barcelona lab, where the drugs you bought online are tested for safety and purity. No questions asked.","previewImage":{"imageId":"1*sLDnS1UWEFIS33uLMxq3cw.jpeg","filter":"","backgroundSize":"contain","originalWidth":2100,"originalHeight":1402,"strategy":"resample","height":0,"width":0},"wordCount":3213,"imageCount":16,"readingTime":13.674528301886793,"subtitle":"Welcome to DoctorX’s Barcelona lab, where the drugs you bought online are tested for safety and purity. No questions asked.","postedIn":[{"collectionId":"d16afa0ae7c","collection":{"id":"d16afa0ae7c","name":"Backchannel","slug":"backchannel","tags":[],"creatorId":"2fff2fb3e70a","description":"Mining the tech world for lively and meaningful tales and analysis.","shortDescription":"Mining the tech world for lively and meaningful tales and…","image":{"imageId":"1*VN9AINEbi2CS8bHWeu80GQ.png","filter":"","backgroundSize":"contain","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":153,"followerCount":11087,"activeAt":1427461675125},"virtuals":{"permissions":{},"isSubscribed":false},"layoutType":1,"logo":{"imageId":"1*CBYh7ADvcY9Z-WYUrJN2Gw.png","filter":"","backgroundSize":"contain","originalWidth":771,"originalHeight":99,"strategy":"resample","height":0,"width":0},"sections":[{"type":2,"collectionHeaderMetadata":{"title":"","description":"","backgroundImage":{"id":"","originalWidth":0,"originalHeight":0,"backgroundSize":"contain","filter":"","isFeatured":false,"externalSrc":""},"logoImage":{"id":"1*CBYh7ADvcY9Z-WYUrJN2Gw.png","originalWidth":771,"originalHeight":99,"backgroundSize":"contain","filter":"","isFeatured":false,"externalSrc":""},"alignment":1,"layout":1}},{"type":1,"postListMetadata":{"source":3,"layout":4,"number":3,"postIds":[],"posts":[]}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":2,"postIds":[],"posts":[]}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":1,"postIds":[],"posts":[]}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":25,"postIds":[],"posts":[]}}],"twitterUsername":"backchnnl","facebookPageName":"backchnnl","publicEmail":"[email protected]","collectionMastheadId":"6837e8bdabbb","domain":"","type":"Collection"},"status":"APPROVED","posterId":"2fff2fb3e70a"}],"publishedInCount":1,"usersBySocialRecommends":[],"notesBySocialRecommends":[],"proposedAtRelative":"","latestPublishedAtAbbreviated":"Mar 27","firstPublishedAtAbbreviated":"Mar 27","emailSnippet":"Standing at a table in a chemistry lab in Barcelona, Cristina Gil Lladanosa tears open a silver, smell-proof protective envelope. She slides out a transparent bag full of crystals. Around her, machines whir and hum, and other researchers mill around in long, white coats. ¶\n\nShe is holding the lab’s latest delivery of a drug bought from the “deep web,” the clandestine corner of the internet that isn’t reachable by normal search engines, and is home to some sites that require special software to…","recommends":0,"featuredRecommendNoteId":"","socialRecommends":[],"addedToFeedAt":0,"isBookmarked":false},"coverless":true,"slug":"inside-the-deep-web-drug-lab","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"contentType":0,"isViewed":false,"uniqueSlug":"inside-the-deep-web-drug-lab-9718cd0fe504","previewContent":{"bodyModel":{"paragraphs":[{"name":"b9ad","type":4,"text":"","markups":[],"layout":10,"metadata":{"id":"1*sLDnS1UWEFIS33uLMxq3cw.jpeg","originalWidth":2100,"originalHeight":1402}},{"name":"9ebb","type":2,"text":"Inside the Deep Web Drug Lab","markups":[],"alignment":1},{"name":"1f41","type":1,"text":""},{"name":"9736","type":13,"text":"Welcome to DoctorX’s Barcelona lab, where the drugs you bought online are tested for safety and purity. No questions asked.","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false},"type":"Post","_isPopulated":true},"collaborators":[{"user":{"userId":"2fff2fb3e70a","name":"Steven Levy","username":"stevenlevy","createdAt":1344982818449,"lastPostCreatedAt":1427329229793,"imageId":"0*kF9quiBAmUdJcOGV.jpg","backgroundImageId":"","bio":"I’m starting a tech hub at Medium.","twitterScreenName":"StevenLevy","facebookAccountId":"10154441010485624","type":"User"},"state":"visible","_isPopulated":true}],"collectionUserRelations":[],"mode":null,"references":{"User":{"99f6d9c3c62c":{"userId":"99f6d9c3c62c","name":"Joseph Cox","username":"josephfcox","createdAt":1420573722072,"lastPostCreatedAt":1426152018640,"imageId":"0*caZ172e36yu_pElb.png","backgroundImageId":"","bio":"Encryption Enthusiast. \n\nWords for Motherboard, WIRED, Daily Dot. Documentaries for VICE. OTR chat: [email protected]","twitterScreenName":"josephfcox","facebookAccountId":"","type":"User"}},"Collection":{"d16afa0ae7c":{"id":"d16afa0ae7c","name":"Backchannel","slug":"backchannel","tags":[],"creatorId":"2fff2fb3e70a","description":"Mining the tech world for lively and meaningful tales and analysis.","shortDescription":"Mining the tech world for lively and meaningful tales and…","image":{"imageId":"1*VN9AINEbi2CS8bHWeu80GQ.png","filter":"","backgroundSize":"contain","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"metadata":{"postCount":153,"followerCount":11087,"activeAt":1427461675125},"virtuals":{"permissions":{},"isSubscribed":false},"layoutType":1,"logo":{"imageId":"1*CBYh7ADvcY9Z-WYUrJN2Gw.png","filter":"","backgroundSize":"contain","originalWidth":771,"originalHeight":99,"strategy":"resample","height":0,"width":0},"sections":[{"type":2,"collectionHeaderMetadata":{"title":"","description":"","backgroundImage":{"id":"","originalWidth":0,"originalHeight":0,"backgroundSize":"contain","filter":"","isFeatured":false,"externalSrc":""},"logoImage":{"id":"1*CBYh7ADvcY9Z-WYUrJN2Gw.png","originalWidth":771,"originalHeight":99,"backgroundSize":"contain","filter":"","isFeatured":false,"externalSrc":""},"alignment":1,"layout":1}},{"type":1,"postListMetadata":{"source":3,"layout":4,"number":3,"postIds":[],"posts":[]}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":2,"postIds":[],"posts":[]}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":1,"postIds":[],"posts":[]}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":25,"postIds":[],"posts":[]}}],"twitterUsername":"backchnnl","facebookPageName":"backchnnl","publicEmail":"[email protected]","collectionMastheadId":"6837e8bdabbb","domain":"","type":"Collection"}}}}}
+ // ]]>
+ </script>
+ <script charset="UTF-8" src="https://dnqgz544uhbo8.cloudfront.net/_/fp/js/icons.kMtvd60hqPtTdUxvP9j8rw.js"></script>
+ </body>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/la-nacion/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/la-nacion/expected-images.json
new file mode 100644
index 000000000..1ff254f29
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/la-nacion/expected-images.json
@@ -0,0 +1,4 @@
+[
+ "http:\/\/bucket.glanacion.com\/anexos\/fotos\/77\/2585177.jpg",
+ "http:\/\/bucket2.glanacion.com\/anexos\/fotos\/77\/conflicto-mapuche-2585177w280.jpg"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/la-nacion/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/la-nacion/expected-metadata.json
new file mode 100644
index 000000000..d2e56b0f8
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/la-nacion/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "Los pueblos indígenas reclaman por derechos que permanecen incumplidos, por eso es más eficiente canalizar la protesta que reprimirla",
+ "Image": "http:\/\/bucket.glanacion.com\/anexos\/fotos\/77\/2585177.jpg",
+ "Title": "Una solución no violenta para la cuestión mapuche",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/la-nacion/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/la-nacion/expected.html
new file mode 100644
index 000000000..5640699c1
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/la-nacion/expected.html
@@ -0,0 +1,85 @@
+<article data-asociarposwall="false" data-login="false" data-loginposwall="false" id="nota" itemscope="" itemtype="http://schema.org/NewsArticle"><div>
+ <p itemprop="description">Los pueblos indígenas reclaman por derechos que permanecen
+ incumplidos, por eso es más eficiente canalizar la protesta que reprimirla</p>
+ </div>
+ <section id="cuerpo" itemprop="articleBody">
+
+ <p>Abdullah Ocalan, el líder independentista kurdo, desembarcó en Italia en noviembre de
+ 1998 y pidió asilo político. Arrastraba un pedido de captura de Turquía, donde era acusado por
+ terrorismo. El ex comunista Massimo D'Alema, recién asumido, dudaba. Acoger a Ocalan implicaba comprarse
+ un problema con un aliado de la OTAN e importar un conflicto ajeno, pero deportarlo lo exponía a la pena
+ de muerte, legal en Turquía pero inadmisible en la Unión Europea. Optó por la estrecha avenida del
+ medio: se ignoró el mandato de captura al tiempo que se negó el asilo, presionando a Ocalan para que se
+ fuera por las suyas. Tras una carambola a tres bandas, fue capturado por agentes turcos en Kenia, donde
+ se encontraba bajo la protección del embajador griego, mientras intentaba abordar un avión hacia
+ Holanda. Desde febrero de 1999 permanece en una cárcel de máxima seguridad en la isla turca de
+ Imrali.</p>
+ <p>Uno de los autores de esta columna vivía en Italia en esa época y siguió la crisis de cerca; el otro la
+ estudió en profundidad, años más tarde. Pero no hacía falta: cualquiera puede encontrar esta información
+ a un clic de distancia. Eso fue lo que no hizo un periodista de un diario argentino, que no es la
+ nacion. La semana pasada se publicaron extractos de un "informe de carácter secreto" que mencionaba
+ supuestos contactos internacionales de organizaciones mapuches. Entre ellos aparecía Ocalan, a quien el
+ informe ubicó "con domicilios en Palermo y en el centro porteño", y aseguraba incluso que había sido
+ visto "en Neuquén, Río Negro y Chubut durante el juicio a Jones Huala".</p>
+ <figure><p><span title="Ampliar imagen"></span><img src="http://bucket2.glanacion.com/anexos/fotos/77/conflicto-mapuche-2585177w280.jpg"></img></p>
+ <figcaption id="epigrafe2585177">Foto: LA NACION</figcaption></figure><p>Esta falsa noticia fue la más rocambolesca de una larga cadena. Dos hechos quedaron en evidencia:
+ primero, que hay periodistas que no chequean la información; segundo, que los servicios de inteligencia
+ los utilizan para manipular la agenda pública. Y sobre los servicios hay dos posibilidades: o son burros
+ o son perversos. Las opciones no son excluyentes, aunque cualquiera alcanza para tornarlos indignos de
+ confianza. Sin embargo, de ellos proviene la información que alimenta a muchos medios de comunicación y,
+ aún más grave, al Estado argentino.</p>
+ <p>El reguero de noticias falsas y vínculos brumosos tiene, paradójicamente, un objetivo prístino: asociar
+ la acción de los grupos mapuches con el terrorismo internacional. Comunicadores, analistas y escritores
+ alineados con el discurso oficial llegaron a relacionar las ideas de las organizaciones patagónicas con
+ las de Estado Islámico (ISIS) de Irak y Siria. El terrorismo carece de definiciones consensuales y ha
+ sido utilizado para emparentar cosas bien diferentes. Aunque el líder mapuche más radicalizado (y menos
+ representativo) declare que propician "un proceso de construcción de autonomía sin pedirle permiso al
+ Estado", vincular a un grupo que reclama tierras en la región de sus ancestros con otro que busca
+ gobernar el mundo según sus normas religiosas y ha masacrado a miles de personas requiere de una
+ operación intelectual tan audaz como inadecuada.</p>
+ <p>La asociación con el movimiento kurdo, en cambio, asoma menos inverosímil. Desde su arresto, Ocalan
+ transformó su pensamiento: de una visión nacionalista con inspiración estalinista evolucionó al
+ confederalismo democrático, una propuesta de organización comunal, ecologista, más apegada a las raíces
+ locales que a las fronteras nacionales. Parece lógico que esas ideas resuenen en agrupamientos
+ indígenas, que reivindican una organización anterior a la consolidación de los Estados sudamericanos.
+ Los paralelos, sin embargo, terminan allí. En Chile, donde el conflicto ha tenido su desarrollo más
+ dramático, la Sociedad de Fomento Agrícola denunció en 2014 que los insurrectos causaron daños por 10
+ millones de dólares y la muerte de tres agricultores y un carabinero a lo largo de 15 años; en la
+ Argentina, por ahora, se registran actos de vandalismo, ocupaciones de tierras y cortes de rutas
+ aislados. En contraste, el conflicto entre el Partido de los Trabajadores del Kurdistán y la República
+ de Turquía se cobró cerca de 40.000 vidas en los años 90 y lleva más de 2000 desde la reanudación de
+ hostilidades en 2015.</p>
+ <p>Consultada sobre esta desproporción, una fuente de los servicios nos la resumió así: "La estrategia de la
+ Coordinadora Arauco-Malleco (CAM), de Chile, y ahora de la Resistencia Ancestral Mapuche (RAM), más que
+ matar directamente, es realizar sabotajes, movilizaciones, ataques a iglesias y empresas y mucha
+ prensa". ¡En Medio Oriente pagarían por un terrorismo así! Ningún hecho de violencia debe ser
+ minimizado, pero las analogías no resisten prueba.</p>
+ <p>La "cuestión mapuche" es social antes que policial. La Constitución manda "reconocer la preexistencia
+ étnica y cultural de los pueblos indígenas argentinos. Garantizar el respeto a su identidad?; reconocer
+ la personería jurídica de sus comunidades, y la posesión y propiedad comunitarias de las tierras que
+ tradicionalmente ocupan; y regular la entrega de otras aptas y suficientes para el desarrollo humano".
+ Estos derechos permanecen incumplidos. Y no son un capricho chavista: los países que reputamos serios
+ también los reconocen. En Estados Unidos, las reservaciones indígenas ocupan 80.000 kilómetros
+ cuadrados, el 1,3% de la superficie del país (y 400 veces la superficie de la ciudad de Buenos Aires).
+ En Canadá, unas 2300 reservas ocupan 28.000 kilómetros cuadrados. Australia otorga a los pueblos
+ indígenas más de la mitad de los territorios del norte del país y son los nativos quienes negocian con
+ las empresas mineras los permisos para que operen en sus tierras. En Nueva Zelanda existen tribunales
+ especiales con jurisdicción sobre las tierras ancestrales de los maoríes; una de sus ventajas es que
+ empoderan a los aborígenes individualmente, liberándolos del yugo de los caciques.</p>
+ <p>La protesta social es indisociable de la democracia. Cuando desborda, recanalizarla es más eficiente que
+ reprimirla: ahí reside el arte del acuerdo. En la Argentina la tarea es delicada porque pocos confían en
+ la imparcialidad de las instituciones. Entonces, cada actor reivindica sus intereses con los medios de
+ que dispone: los sindicatos hacen huelga, los estudiantes toman colegios, los empresarios cierran las
+ fábricas y todos hacen piquetes. El politólogo Samuel Huntington definía una sociedad así como
+ pretoriana y el jurista Carlos Nino llamó a la Argentina "un país al margen de la ley". Al movilizarse
+ por sus derechos y desconfiar del Estado, la comunidad mapuche se demuestra bien argentina.</p>
+ <p>Las cinco provincias patagónicas tienen una población similar a la de La Matanza. A diferencia de los
+ Estados Unidos, que se integraron hacia el oeste otorgando parcelas de tierra a los colonizadores, y de
+ Brasil, donde el rol de ocupación y desarrollo territorial fue cumplido por las fuerzas armadas, la
+ Argentina obvió la tarea integradora tras consolidar su soberanía a finales del siglo XX. Hoy sobra
+ tierra y falta gente. Gobernar sigue siendo poblar, pero también integrar.</p>
+ <p>Seamos claros: ningún individuo u organización tiene derecho a violar la ley. Pero el problema histórico
+ del Estado argentino no fue tanto quiénes lo desafiaron como quiénes lo gobernaron. Cambiemos.</p>
+ <p><b><i>Andrés Malamud es politólogo e investigador en la Universidad de Lisboa. Martín Schapiro es abogado
+ administrativista y analista internacional</i></b></p>
+ </section></article> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/la-nacion/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/la-nacion/source.html
new file mode 100644
index 000000000..2c0a8c72a
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/la-nacion/source.html
@@ -0,0 +1,700 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
+ <link rel="amphtml"
+ href="http://www.lanacion.com.ar/2089096-una-solucion-no-violenta-para-la-cuestion-mapuche/amp/2089096"></link>
+ <title>Una solución no violenta para la cuestión mapuche - 07.12.2017 - LA NACION </title>
+ <link rel="stylesheet" type="text/css" href="http://static.glanacion.com/v1/ln/css/ln.201711231106.min.css"></link>
+ <link rel="stylesheet" type="text/css"
+ href="http://static.glanacion.com/v1/ln/css/ln.nota.201711231106.min.css"></link>
+ <link rel="stylesheet" type="text/css"
+ href="http://especiales.lanacion.com.ar/multimedia/proyectos/css/iframes.css"></link>
+ <meta property="fb:pages" content="71339054219"></meta>
+ <meta name="copyright" content="LA NACION"></meta>
+ <meta name="title" content="Una solución no violenta para la cuestión mapuche - 07.12.2017"></meta>
+ <meta name="description"
+ content="Una solución no violenta para la cuestión mapuche | Los pueblos indígenas reclaman por derechos que permanecen incumplidos, por eso es más eficiente canalizar la protesta que reprimirla - LA NACION"></meta>
+ <meta name="keywords"
+ content="Una solución no violenta para la cuestión mapuche, Opinión, Nota de Opinion, Actualidad política, Conflicto mapuche"></meta>
+ <meta name="news_keywords"
+ content="Una solución no violenta para la cuestión mapuche, Opinión, Nota de Opinion, Actualidad política, Conflicto mapuche"></meta>
+ <meta property="fb:admins" content="1069203912"></meta>
+ <meta property="fb:app_id" content="205326199490321"></meta>
+ <meta property="og:type" content="article"></meta>
+ <meta property="og:title" content="Una solución no violenta para la cuestión mapuche"></meta>
+ <meta property="og:description"
+ content="Los pueblos indígenas reclaman por derechos que permanecen incumplidos, por eso es más eficiente canalizar la protesta que reprimirla"></meta>
+ <meta property="og:image" content="http://bucket.glanacion.com/anexos/fotos/77/2585177.jpg"></meta>
+ <meta name="twitter:card" content="summary"></meta>
+ <meta name="twitter:site" content="@LANACION"></meta>
+ <meta name="twitter:title" content="Una solución no violenta para la cuestión mapuche"></meta>
+ <meta name="twitter:description"
+ content="Abdullah Ocalan, el líder independentista kurdo, desembarcó en Italia en noviembre de 1998 y pidió asilo político. Arrastraba un pedido de captura de Turquía, donde era acusado por terrorismo. El ex comunista Massimo D'Alema, recién asumido, dudaba. Acoger a Ocalan implicaba comprarse un problema con un aliado de la OTAN e importar un conflicto ajeno, pero deportarlo lo exponía a la pena de muerte, legal en Turquía pero inadmisible en la Unión Europea. Optó por la estrecha avenida del medio: se ignoró el mandato de captura al tiempo que se negó el asilo, presionando a Ocalan para que se fuera por las suyas. Tras una carambola a tres bandas, fue capturado por agentes turcos en Kenia, donde se encontraba bajo la protección del embajador griego, mientras intentaba abordar un avión hacia Holanda. Desde febrero de 1999 permanece en una cárcel de máxima seguridad en la isla turca de Imrali."></meta>
+ <meta name="twitter:image" content="http://bucket2.glanacion.com/anexos/fotos/77/2585177.jpg"></meta>
+ <meta name="copyright" content="2015 LA NACION"></meta>
+ <meta name="application-name" content="LA NACION"></meta>
+ <meta name="msapplication-starturl" content="http://www.lanacion.com.ar/"></meta>
+ <meta name="msapplication-tooltip" content="Noticias actualizadas las 24 hs."></meta>
+ <meta name="msapplication-window" content="width=800;height=600"></meta>
+ <meta name="msapplication-navbutton-color" content="#0EA8DC"></meta>
+ <meta name="msapplication-task"
+ content="name=Ultimas noticias;action-uri=http://www.lanacion.com.ar/ultimas-noticias;icon-uri=http://www.lanacion.com.ar/item1.ico"></meta>
+ <meta name="msapplication-task"
+ content="name=Tránsito;action-uri=http://servicios.lanacion.com.ar/transito;icon-uri=http://www.lanacion.com.ar/item2.ico"></meta>
+ <meta name="msapplication-task"
+ content="name=Pronóstico;action-uri=http://servicios.lanacion.com.ar/informacion-general/pronostico;icon-uri=http://www.lanacion.com.ar/item3.ico"></meta>
+ <meta name="msapplication-task"
+ content="name=Horóscopo;action-uri=http://servicios.lanacion.com.ar/horoscopo;icon-uri=http://www.lanacion.com.ar/item4.ico"></meta>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"></meta>
+ <meta name="cXenseParse:pageclass" content="article"></meta>
+ <link rel="canonical"
+ href="http://www.lanacion.com.ar/2089096-una-solucion-no-violenta-para-la-cuestion-mapuche"></link>
+ <link rel="alternate" href="android-app://app.lanacion.activity/http/www.lanacion.com.ar/2089096"></link>
+</head>
+<body>
+<a href="http://servicios.lanacion.com.ar/solo-texto" class="sinBarreras">Si usted es una persona con dificultades
+ visuales, navegue el sitio desde aquí</a>
+<div id="alertaDisclaimer" class="mensajeEx8" style="display:none">NO SOPORTADO</div>
+<header id="header" itemscope="" itemtype="http://schema.org/WPHeader">
+ <section class="banners">
+ <center>
+ <aside class="banner top" data-adpos="top" itemscope="" itemtype="http://schema.org/WPAdBlock"></aside>
+ </center>
+ <aside class="banner lateral-izq" data-adpos="lateralIzq" itemscope=""
+ itemtype="http://schema.org/WPAdBlock"></aside>
+ <aside class="banner lateral-der" data-adpos="lateralDer" itemscope=""
+ itemtype="http://schema.org/WPAdBlock"></aside>
+ </section>
+ <section class="cabezal interna floatFix">
+ <div class="btn-secciones" onclick="_gaq.push(['_trackEvent','CabezalLN8','cabezal','Menu']);">
+ <button id="boton-menu" class="icon-menu-mobile"></button>
+ <span>MENÚ</span></div>
+ <a class="logo" href="/" onclick="_gaq.push(['_trackEvent','CabezalLN8','cabezal','LANACION']);"
+ title="LA NACION"></a>
+ <section class="tema">
+ <section class="encabezado"><h2><a onclick="_gaq.push(['_trackEvent','CabezalLN8','Acu','tag']);"
+ href="/conflicto-mapuche-t62235">Conflicto mapuche</a></h2>
+ <div class="seguir f-btnSeguir" data-tagId="62235" data-tipoTag="7"><span>SEGUIR</span><b
+ class="icon-mas"></b></div>
+ </section>
+ </section>
+ <aside class="banner auspicio" data-adpos="logo_cabezal"></aside>
+ <section class="login logueado">
+ <ul class="floatFix">
+ <li id="cajaUsuario" class="usuario">
+ <div id="cant-notas" class="notas-siguiendo floatFix"></div>
+ <div class="loginLogout floatFix"><span id="usuario"></span></div>
+ </li>
+ </ul>
+ <div class="notas-preferencias"></div>
+ </section>
+ <div class="herramientas floatFix f-herramientasSociales">
+ <button class="icon-facebook" title="Compartir en Facebook"
+ data-evento="LN.Compartir.popUpFacebookCabezal();"></button>
+ <button class="icon-twitter" title="Compartir en Twitter"
+ data-evento="LN.Compartir.popUpTwitterCabezal();"></button>
+ <span class="extras"><button class="icon-download f-download" title="Descargar"
+ onclick="_gaq.push(['_trackEvent','NotaLN8','herramientas','pdf']);"></button><button
+ class="icon-print" title="Imprimir" data-evento="print();"
+ onclick="_gaq.push(['_trackEvent','NotaLN8','herramientas','imprimir']);"></button><button
+ class="icon-mail f-enviarMail" title="Enviar por mail"
+ onclick="_gaq.push(['_trackEvent','NotaLN8','herramientas','mail']);"></button></span>
+ <div class="icon-flecha-abajo">
+ <div class="desplegable"><span class="pico"></span>
+ <div class="floatFix">
+ <button class="icon-download f-download" title="Descargar"
+ onclick="_gaq.push(['_trackEvent','NotaLN8','herramientas','pdf']);"></button>
+ <button class="icon-print" title="Imprimir" data-evento="print();"
+ onclick="_gaq.push(['_trackEvent','NotaLN8','herramientas','imprimir']);"></button>
+ <button class="icon-mail f-enviarMail" title="Enviar por mail"
+ onclick="_gaq.push(['_trackEvent','NotaLN8','herramientas','mail']);"></button>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="troncal-movil" class="floatFix" name="top">
+ <nav class="desplegable" id="topico-movil">
+ <section class="buscador">
+ <div>
+ <form onkeypress="javascript:Buscar(self.document.buscarsimpleformMovil.cadena-movil.value, event.keyCode);"
+ name="buscarsimpleformMovil" method="post" action="" itemprop="potentialAction"
+ itemscope="itemscope" itemtype="http://schema.org/SearchAction" target="_blank">
+ <span class="icon-buscar" onclick="javascript:Buscar($('#cadena-movil').val(),13);"> </span><span
+ class="icon-cerrar" onclick="$('.buscador').removeClass('expandido');"></span><span
+ class="boton-buscar"
+ onclick="javascript:Buscar($('#cadena-movil').val(),13);">BUSCAR</span></form>
+ </div>
+ </section>
+ <div class="floatFix">
+ <div class="columnaUno"><a href="/ultimas-noticias" class="">Últimas Noticias</a><a
+ href="/sociedad">Sociedad</a><a href="/politica">Política</a><a href="/el-mundo">El
+ Mundo</a><a href="/opinion">Opinión</a></div>
+ <div class="columnaDos"><a href="/mas-popular">Más Leídas</a><a href="/buenos-aires">Buenos
+ Aires</a><a href="/seguridad">Seguridad</a><a href="/data">La Nacion Data</a><a
+ href="/editorial-t54796">Editoriales</a></div>
+ </div>
+ <div class="floatFix">
+ <div class="columnaUno">
+ <div class="tit">Canales:</div>
+ <a href="/comunidad-de-negocios">Negocios</a><a href="/deportes">Deportes</a></div>
+ <div class="columnaDos"><a href="/vida-y-ocio-t54328">Vida y ocio</a><a href="/ideas">Ideas</a><a
+ href="/espectaculos">Espectáculos</a></div>
+ </div>
+ <div class="primero floatFix caja-lnmas"><a title="LN+" class="descrip-lnMAs"
+ href="http://lnmas.lanacion.com.ar/"
+ onclick="_gaq.push(['_trackEvent','troncal-movilLN8','nav','LN+']);"
+ target="_blank">
+ <svg version="1.1" id="Layer_1" x="0" y="0" width="30" height="20" viewBox="202.43 250.51 475.03 283.09" enable-background="new 202.427 250.514 475.03 283.087" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <linearGradient id="color1" gradientUnits="userSpaceOnUse" x1="500.53" y1="544.93" x2="500.53" y2="317.79" gradientTransform="matrix(1 0 0 -1 0 851.3936)"><stop offset="0" stop-color="#3CC3DD" /><stop offset="0.23" stop-color="#38C0DA" /><stop offset="0.44" stop-color="#24B8D5" /><stop offset="0.63" stop-color="#00ACCC" /><stop offset="0.81" stop-color="#009DC1" /><stop offset="0.99" stop-color="#008BB4" /><stop offset="1" stop-color="#008AB2" /></linearGradient>
+ <polygon fill="url(#color1)" points="479.73 306.46 382.68 306.46 382.68 326.57 410.4 326.57 591.01 533.6 618.39 533.6 618.39 469.04 " />
+ <linearGradient id="color2" gradientUnits="userSpaceOnUse" x1="306.42" y1="544.93" x2="306.42" y2="317.79" gradientTransform="matrix(1 0 0 -1 0 851.3936)"><stop offset="0" stop-color="#3CC3DD" /><stop offset="0.23" stop-color="#38C0DA" /><stop offset="0.44" stop-color="#24B8D5" /><stop offset="0.63" stop-color="#00ACCC" /><stop offset="0.81" stop-color="#009DC1" /><stop offset="0.99" stop-color="#008BB4" /><stop offset="1" stop-color="#008AB2" /></linearGradient>
+ <path fill="url(#color2)" d="M327.21 513.5c0 0-26.06 0.05-27.73 0V326.57h41.6v-20.1H202.43v20.1h41.6V513.5h-41.6v20.1h207.98V448.24h-13.86C397.29 490.05 383.75 512.41 327.21 513.5z" />
+ <polygon fill="#00BADD" points="677.46 306.46 621.51 306.46 621.51 250.51 601.41 250.51 601.41 306.46 545.45 306.46 545.45 326.57 601.41 326.57 601.41 382.52 621.51 382.52 621.51 326.57 677.46 326.57 " />
+ </svg>
+ </a><a title="LN+" class="descrip-lnMAs" href="http://lnmas.lanacion.com.ar/"
+ onclick="_gaq.push(['_trackEvent','troncal-movilLN8','nav','LN+']);" target="_blank">TODOS LOS
+ PROGRAMAS</a></div>
+ <div class="primero floatFix">
+ <div class="columnaUno"><a href="/edicion-impresa">Edición Impresa</a></div>
+ <div class="columnaDos"><a href="https://club.lanacion.com.ar/" class="clubMenu" target="_blank">Club
+ LA NACION</a></div>
+ </div>
+ <div class="floatFix">
+ <div class="columnaUno">
+ <div class="tit">Servicios:</div>
+ <a href="http://servicios.lanacion.com.ar/horoscopo" target="_blank">Horóscopo</a><a
+ href="http://servicios.lanacion.com.ar/pronostico-del-tiempo" target="_blank">Pronóstico</a><a
+ href="http://servicios.lanacion.com.ar/loterias" target="_blank">Loterías</a><a
+ href="http://servicios.lanacion.com.ar/feriados/2016" target="_blank">Feriados</a><a
+ href="http://servicios.lanacion.com.ar/edicion-impresa/avisos-funebres" target="_blank">Fúnebres</a>
+ </div>
+ <div class="columnaDos"><a href="http://servicios.lanacion.com.ar/transito"
+ target="_blank">Tránsito</a><a href="http://guia.lanacion.com.ar/cine"
+ target="_blank">Guía de Cine</a><a
+ href="http://guia.lanacion.com.ar/teatro" target="_blank">Guía de Teatro</a><a href="/humor"
+ target="_blank">Humor</a><a
+ href="http://servicios.lanacion.com.ar/sudoku-online" target="_blank">Sudoku</a></div>
+ </div>
+ <div class="primero floatFix">
+ <div class="columnaUno"><a href="https://ingresar.lanacion.com.ar/acceso-digital/"
+ class="suscribite"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','secciones','suscribite']);">Suscribite</a>
+ </div>
+ </div>
+ </nav>
+ </div>
+ </section>
+ <section class="menu-secciones" style="display:none;" id="desplegable">
+ <div class="menu-internas">
+ <nav class="principal"><span class="nuevo-menu-canales"><section class="buscador"><div><form
+ onkeypress="javascript:Buscar(self.document.buscarsimpleform.cadena.value, event.keyCode);"
+ name="buscarsimpleform" method="post" action="" itemprop="potentialAction" itemscope="itemscope"
+ itemtype="http://schema.org/SearchAction" target="_blank"><span
+ class="icon-buscar" onclick="javascript:Buscar($('#cadena').val(),13);"> </span><span
+ class="icon-cerrar"
+ onclick="$('.buscador').removeClass('expandido');"></span><span
+ class="boton-buscar" onclick="javascript:Buscar($('#cadena').val(),13);">BUSCAR</span></form></div></section><div
+ class="desplegable actualidad floatFix"><div class="col2"><span class="actualidad-color"><a href="/"
+ class="toi-200"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','actualidad','actualidad']);">Actualidad</a></span><a
+ href="/ultimas-noticias" class="toi-200"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','actualidad','ultimas']);">Últimas noticias</a><a
+ href="/mas-popular" class="toi-201"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','actualidad','actualidad-mas-leidas']);">Más leídas</a><a
+ href="/politica" onclick="_gaq.push(['_trackEvent','CabezalLN8','actualidad','politica']);"
+ class="toi-202">Política</a><a href="/el-mundo"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','actualidad','actualidad-mundo']);"
+ class="toi-208">El mundo</a><a href="/sociedad"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','actualidad','actualidad-sociedad']);"
+ class="toi-203">Sociedad</a><a
+ href="/buenos-aires"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','actualidad','actualidad-buenos-aires']);"
+ class="toi-206">Buenos Aires</a><a href="/seguridad"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','actualidad','actualidad-seguridad']);"
+ class="toi-211">Seguridad</a><div class="data"><a href="/data"
+ class="toi-300"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','actualidad','actualidad-data']);">
+ LA NACION Data
+ </a></div></div><div class="col2"><span class="negocios-color"><a href="/comunidad-de-negocios"
+ class="negocios toi-400"
+ title="Comunidad de negocios"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','secciones','Negocios']);">Negocios</a></span><a
+ href="/negocios-t53674" title="NEGOCIOS"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','canal-negocios','negocios']);">Negocios</a><a
+ href="/consumo-t46838" title="CONSUMO"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','canal-negocios','consumo']);">Consumo</a><a
+ href="/finanzas-t48750" title="FINANZAS"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','canal-negocios','Finzanzas']);">Finanzas</a><a
+ href="/emprendedores-t53673" title="EMPRENDEDORES"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','canal-negocios','Emprededores']);">Emprendedores</a><a
+ href="/propiedades-t46876" title="PROPIEDADES"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','canal-negocios','propiedades']);">Propiedades</a><a
+ href="/campo-t29405" title="CAMPO"
+ onclick="gaq.push(['_trackEvent','CabezalLN8','canal-negocios','campo']);">Campo</a><a
+ href="/dolar-hoy-t1369" title="DÓLAR HOY"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','canal-negocios','dolar']);">Dólar Hoy</a></div><div
+ class="col2"><span class="deportes-color"><a href="/deportes" class="deportes toi-401"
+ title="Deportes"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','secciones','Deportes']);">Deportes</a></span><a
+ href="/futbol-t55394" title="FÚTBOL"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','canal-deportes','futbol']);">Fútbol</a><a
+ href="/basquet-t57233" title="BÁSQUET"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','canal-deportes','basquet']);">Básquet</a><a
+ href="/automovilismo-t57235" title="AUTOMOVILISMO"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','canal-deportes','automovilismo']);">Automovilismo</a><a
+ href="/rugby-t54732" title="RUGBY"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','canal-deportes','rugby']);">Rugby</a><a
+ href="/tenis-t57234" title="TENIS"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','canal-deportes','tenis']);">Tenis</a><a
+ href="/mas-deportes-t57236" title="MÁS DEPORTES"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','canal-deportes','mas-deportes']);">Más Deportes</a><a
+ href="/deportes/estadisticas" class="estadisticas" title="ESTADÍSTICAS"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','canal-deportes','estadisticas']);"><span
+ class="texto">Estadísticas</span></a></div><div class="col2"><span class="vida-y-ocio-color"><a
+ href="/vida-y-ocio-t54328" class="sociedad toi-402" title="Vida y Ocio"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','secciones','vida-ocio']);">vida y ocio</a></span><a
+ href="/tecnologia-t47502" title="TECNOLOGÍA"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','canal-vida','tecnologia']);">Tecnología</a><a
+ href="/relaciones-t46841" title="RELACIONES"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','canal-vida','relaciones']);">Relaciones</a><a
+ href="/salud-t54645" title="SALUD"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','canal-vida','salud']);">Salud</a><a
+ href="/tendencias-t50150" title="TENDENCIAS"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','canal-vida','tendencias']);">Tendencias</a><a
+ href="/comunidad-t46789" title="COMUNIDAD"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','canal-vida','comunidad']);">Comunidad</a><a
+ href="/moda-t50796" title="MODA"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','canal-vida','moda']);">Moda</a><a
+ href="/viajes-t46947" title="VIAJES"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','canal-vida','viajes']);">Viajes</a><a
+ href="http://recetas.lanacion.com.ar/" title="RECETAS"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','canal-vida','recetas']);"
+ target="_blank">Recetas</a></div><div class="col2"><span class="ideas-color"><a href="/ideas"
+ class="ideas toi-403"
+ title="Ideas"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','secciones','Ideas']);">ideas</a></span><a
+ href="/cultura" title="CULTURA"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','canal-ideas','cultura']);">Cultura</a><a
+ href="/libros-t54646" title="LIBROS"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','canal-ideas','libros']);">Libros</a><a
+ href="/entrevistas-t51978" title="ENTREVISTAS"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','canal-ideas','entrevistas']);">Entrevistas</a><a
+ href="/arte-t54647" title="ARTE"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','canal-ideas','arte']);">Arte</a><a href="/opinion"
+ title="OPINIÓN"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','canal-ideas','opinion']);">Opinión</a><a
+ href="/columnistas" title="COLUMNISTAS"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','canal-ideas','columnistas']);">Columnistas</a><a
+ href="http://blogs.lanacion.com.ar/" title="BLOGS"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','canal-ideas','blogs']);"
+ target="_blank">Blogs</a></div><div class="col2"><span class="espectaculos-color"><a
+ href="/espectaculos" class="espectaculos toi-404" title="Espcectáculos"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','secciones','espectaculos']);">espectáculos</a></span><a
+ href="/personajes-t46949" title="PERSONAJES"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','canal-espectaculos','personajes']);">Personajes</a><a
+ href="/series-t46778" title="SERIES"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','canal-espectaculos','series']);">Series</a><a
+ href="/cine-t52776" title="CINE"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','canal-espectaculos','cine']);">Cine</a><a
+ href="/television-t54581" title="TELEVISIÓN"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','canal-espectaculos','television']);">Televisión</a><a
+ href="/teatro-t46922" title="TEATRO"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','canal-espectaculos','teatro']);">Teatro</a><a
+ href="/musica-t46816" title="MÚSICA"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','canal-espectaculos','musica']);">Música</a><a
+ href="http://guia.lanacion.com.ar/cine" title="GUÍA DE CINE"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','canal-espectaculos','cartelera-cine']);"
+ target="_blank">Guía de Cine</a><a href="http://guia.lanacion.com.ar/teatro" title="GUÍA DE TEATRO"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','canal-espectaculos','cartelera-teatro']);"
+ target="_blank">Guía de Teatro</a></div><div class="menu-bajo"><a
+ title="LN+" class="lnMas toi-405" href="http://lnmas.lanacion.com.ar/" target="_blank"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','secciones','LN+']);"><svg version="1.1" id="Layer_1" x="0" y="0" width="30" height="20" viewBox="202.43 250.51 475.03 283.09" enable-background="new 202.427 250.514 475.03 283.087" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="color1" gradientUnits="userSpaceOnUse" x1="500.53" y1="544.93" x2="500.53" y2="317.79" gradientTransform="matrix(1 0 0 -1 0 851.3936)"><stop offset="0" stop-color="#3CC3DD" /><stop offset="0.23" stop-color="#38C0DA" /><stop offset="0.44" stop-color="#24B8D5" /><stop offset="0.63" stop-color="#00ACCC" /><stop offset="0.81" stop-color="#009DC1" /><stop offset="0.99" stop-color="#008BB4" /><stop offset="1" stop-color="#008AB2" /></linearGradient><polygon fill="url(#color1)" points="479.73 306.46 382.68 306.46 382.68 326.57 410.4 326.57 591.01 533.6 618.39 533.6 618.39 469.04 " /><linearGradient id="color2" gradientUnits="userSpaceOnUse" x1="306.42" y1="544.93" x2="306.42" y2="317.79" gradientTransform="matrix(1 0 0 -1 0 851.3936)"><stop offset="0" stop-color="#3CC3DD" /><stop offset="0.23" stop-color="#38C0DA" /><stop offset="0.44" stop-color="#24B8D5" /><stop offset="0.63" stop-color="#00ACCC" /><stop offset="0.81" stop-color="#009DC1" /><stop offset="0.99" stop-color="#008BB4" /><stop offset="1" stop-color="#008AB2" /></linearGradient><path fill="url(#color2)" d="M327.21 513.5c0 0-26.06 0.05-27.73 0V326.57h41.6v-20.1H202.43v20.1h41.6V513.5h-41.6v20.1h207.98V448.24h-13.86C397.29 490.05 383.75 512.41 327.21 513.5z" /><polygon fill="#00BADD" points="677.46 306.46 621.51 306.46 621.51 250.51 601.41 250.51 601.41 306.46 545.45 306.46 545.45 326.57 601.41 326.57 601.41 382.52 621.51 382.52 621.51 326.57 677.46 326.57 " /></svg>Todos los programas
+ </a><a href="http://servicios.lanacion.com.ar" title="Ir a Servicios" class="servicios"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','secciones','Servicios']);">Servicios</a><b>|</b><a
+ title="Ir a la Edición Impresa" href="/edicion-impresa" class="toi-103 impresa"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','secciones','Ed-Impresa']);">Edición Impresa</a><b>|</b><a
+ title="Ir a Club LA NACION" href="http://club.lanacion.com.ar/" target="_blank"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','secciones','Club']);"
+ class="clubLN">Club LA NACION</a></div></div></span>
+ <div class="otro-menu-canales"><b>|</b><a href="/comunidad-de-negocios" class="negocios toi-400"
+ title="Comunidad de negocios"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','secciones','Negocios']);">NEGOCIOS</a><b>|</b><a
+ href="/deportes" class="deportes toi-401" title="Deportes"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','secciones','Deportes']);">DEPORTES</a><b>|</b><a
+ href="/vida-y-ocio-t54328" class="sociedad toi-402" title="Vida y Ocio"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','secciones','vida-ocio']);">VIDA Y
+ OCIO</a><b>|</b><a href="/ideas" class="ideas toi-403" title="Ideas"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','secciones','Ideas']);">IDEAS</a><b>|</b><a
+ href="/espectaculos" class="espectaculos toi-404" title="Espcectáculos"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','secciones','espectaculos']);">ESPECTÁCULOS</a><b>|</b><span
+ class="icon-buscar" onclick="$('.buscador').addClass('expandido');"></span><a title="LN+"
+ class="lnMas toi-405"
+ href="http://lnmas.lanacion.com.ar/"
+ target="_blank"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','secciones','LN+']);">
+ <svg version="1.1" id="Layer_1" x="0" y="0" width="30" height="20" viewBox="202.43 250.51 475.03 283.09" enable-background="new 202.427 250.514 475.03 283.087" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="color1" gradientUnits="userSpaceOnUse" x1="500.53" y1="544.93" x2="500.53" y2="317.79" gradientTransform="matrix(1 0 0 -1 0 851.3936)"><stop offset="0" stop-color="#3CC3DD" /><stop offset="0.23" stop-color="#38C0DA" /><stop offset="0.44" stop-color="#24B8D5" /><stop offset="0.63" stop-color="#00ACCC" /><stop offset="0.81" stop-color="#009DC1" /><stop offset="0.99" stop-color="#008BB4" /><stop offset="1" stop-color="#008AB2" /></linearGradient><polygon fill="url(#color1)" points="479.73 306.46 382.68 306.46 382.68 326.57 410.4 326.57 591.01 533.6 618.39 533.6 618.39 469.04 " /><linearGradient id="color2" gradientUnits="userSpaceOnUse" x1="306.42" y1="544.93" x2="306.42" y2="317.79" gradientTransform="matrix(1 0 0 -1 0 851.3936)"><stop offset="0" stop-color="#3CC3DD" /><stop offset="0.23" stop-color="#38C0DA" /><stop offset="0.44" stop-color="#24B8D5" /><stop offset="0.63" stop-color="#00ACCC" /><stop offset="0.81" stop-color="#009DC1" /><stop offset="0.99" stop-color="#008BB4" /><stop offset="1" stop-color="#008AB2" /></linearGradient><path fill="url(#color2)" d="M327.21 513.5c0 0-26.06 0.05-27.73 0V326.57h41.6v-20.1H202.43v20.1h41.6V513.5h-41.6v20.1h207.98V448.24h-13.86C397.29 490.05 383.75 512.41 327.21 513.5z" /><polygon fill="#00BADD" points="677.46 306.46 621.51 306.46 621.51 250.51 601.41 250.51 601.41 306.46 545.45 306.46 545.45 326.57 601.41 326.57 601.41 382.52 621.51 382.52 621.51 326.57 677.46 326.57 " /></svg>
+ </a></div>
+ </nav>
+ <nav class="temas floatFix"><span>HOY</span>
+ <div class="temas-hoy"><h3><a class="toi-501" href="/ln-t58215"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','troncal','temas']);">LN+</a>
+ </h3>
+ <h3><a class="toi-502" href="/carlos-zannini-detenido-t63314"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','troncal','temas']);">Carlos Zannini
+ detenido</a></h3>
+ <h3><a class="toi-503" href="/reformas-del-gobierno-t62064"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','troncal','temas']);">Reformas del
+ Gobierno</a></h3>
+ <h3><a class="toi-504" href="/actualidad-politica-t56691"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','troncal','temas']);">Actualidad política</a>
+ </h3>
+ <h3><a class="toi-505" href="/submarino-ara-san-juan-t62183"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','troncal','temas']);">Submarino ARA San
+ Juan</a></h3></div>
+ <div class="dolar-hoy"><h3><a href="/dolar-hoy-t1369" title="Ir a Dólar oficial y dólar blue hoy"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','troncal','dolar']);"
+ id="link-dolar" onmouseover="$('#caja-dolar').css('display','block');"
+ onmouseout="$('#caja-dolar').css('display', 'none');">Dólar hoy</a></h3>
+ <div class="desplegable floatFix"><h2><a class="toi-9969" href="/dolar-hoy-t1369"
+ onclick="_gaq.push(['_trackEvent','cabezal','temas','dolar']);">Dólar
+ oficial hoy</a></h2>
+ <section class="dolarHoy oficial floatFix">
+ <ul>
+ <li class="tipo">Compra</li>
+ <li><p class="peso">$</p>
+ <p class="valor" id="dcompraHome">-</p></li>
+ </ul>
+ <ul>
+ <li class="tipo">Venta</li>
+ <li><p class="peso">$</p>
+ <p class="valor" id="dventaHome">-</p></li>
+ </ul>
+ </section>
+
+ <section class="dolarhoy-invertir">
+
+ Provisto por <a href="http://www.invertironline.com/" target="_blank"><img
+ src="http://static.glanacion.com/v1/ln/imgs/layout/logos/logo-invertir-online.png"
+ width="88" height="18" border="0" alt="Invertir Online"
+ title="Invertir Online"></img></a>
+ </section>
+ </div>
+ </div>
+ <div class="servicios-hoy"><h3><a href="http://servicios.lanacion.com.ar" title="Ir a Servicios">SERVICIOS</a>
+ </h3>
+ <div class="desplegable servicios">
+ <div class="floatFix"><a href="http://servicios.lanacion.com.ar/horoscopo" class="toi-104"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','servicios','horoscopo']);"><span
+ class="icon-horoscopo"></span>Horóscopo
+ </a><a href="http://servicios.lanacion.com.ar/pronostico-del-tiempo" class="toi-105"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','servicios','pronostico']);"><span
+ class="icon-pronostico"></span>Pronóstico
+ </a><a href="http://servicios.lanacion.com.ar/transito" class="toi-106"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','servicios','transito']);"><span
+ class="icon-transito"></span>Tránsito
+ </a><a href="http://servicios.lanacion.com.ar/loterias" class="toi-108"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','servicios','loterias']);"><span
+ class="icon-loterias"></span>Loterías y quinielas
+ </a><a href="http://servicios.lanacion.com.ar/feriados" class="toi-109"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','servicios','feriados']);"><span
+ class="icon-calendario"></span>Feriados
+ </a><a href="http://servicios.lanacion.com.ar/sudoku-online" class="toi-110"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','servicios','sudoku']);"><span
+ class="icon-sudoku"></span>Sudoku
+ </a><a href="http://servicios.lanacion.com.ar/edicion-impresa/avisos-funebres" class="toi-111"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','servicios','funebres']);"><span
+ class="icon-funebres"></span>Fúnebres
+ </a><a href="http://guia.lanacion.com.ar/cine" target="_blank" class="toi-112"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','servicios','cine']);"><span
+ class="icon-cine"></span>Cartelera de cine
+ </a><a href="http://guia.lanacion.com.ar/teatro" target="_blank" class="toi-113"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','servicios','teatro']);"><span
+ class="icon-teatro"></span>Cartelera de teatro
+ </a><a href="http://servicios.lanacion.com.ar/solo-texto" target="_blank" class="toi-114"
+ onclick="_gaq.push(['_trackEvent','CabezalLN8','servicios']);">
+ LA NACION en versión sólo texto
+ </a></div>
+ </div>
+ </div>
+ </nav>
+ </div>
+ </section>
+</header>
+<main class="floatFix">
+ <aside class="banner megalateral" data-adpos="megaLateral" itemscope=""
+ itemtype="http://schema.org/WPAdBlock"></aside>
+ <section id="alerta" style="display:none;">
+ <article><span>Anticipo: </span>
+ <h2 id="alertaContenido"></h2></article>
+ </section>
+ <aside class="banner interstitial" data-adpos="interstitial" itemscope=""
+ itemtype="http://schema.org/WPAdBlock"></aside>
+ <aside class="banner expandable" data-adpos="expandable" itemscope=""
+ itemtype="http://schema.org/WPAdBlock"></aside>
+ <section id="ultimoMomentoResponsive" style="display:none;" class="suscripcion">
+ <article class="bombaInterna conTopico conFoto floatFix"><a id="ultimoMomentoTopico" class="topico"
+ href="#"></a><a id="ultimoMomentoFoto" class="foto"
+ href=""></a>
+ <div class="contenedorUltimoMomento"><a id="ultimoMomentoLinkTitulo" class="titulo floatFix" href="#">
+ <div id="tituloBomba">Último momento:</div>
+ <h2 id="ultimoMomentoTitulo"></h2></a></div>
+ <div id="" class="cajaSuscripcion">
+ <div class="usuario" id="usuarioNick"></div>
+ <h3></h3>
+ <p class="texto"><b>Recibí por mail</b> las noticias que impactan
+ </p>
+ <div class="ingresar-mail">
+ <form name="" method="" action=""><input class="mail" type="text" name="email" id="emailBomba"
+ onblur="doFill(this);" onclick="doClear(this);"></input>
+ </form>
+ </div>
+ <div id="respuestaBomba" style="display:none;"></div>
+ </div>
+ </article>
+ </section>
+ <div class="logoprint-content"><img class="logoprint" src="http://static.glanacion.com/v1/ln/imgs/logoprint.jpg"
+ width="150px"></img></div>
+ <div id="responsive" class="modal fade id" data-backdrop="static" role="dialog" tabindex="-1">
+ <div class="modal-body">
+ <div id="login-signwall" class="login-poswall">
+ <iframe id="iframe-registracion"></iframe>
+ </div>
+ </div>
+ </div>
+ <article id="nota" itemscope="" itemtype="http://schema.org/NewsArticle" class="floatFix" data-login="false"
+ data-loginposwall="false" data-asociarposwall="false">
+ <div class="encabezado-columnista"><h1 itemprop="headline">Una solución no violenta para la cuestión
+ mapuche</h1>
+ <p class="bajada" itemprop="description">Los pueblos indígenas reclaman por derechos que permanecen
+ incumplidos, por eso es más eficiente canalizar la protesta que reprimirla</p>
+ </div>
+ <section id="cuerpo" class="floatFix" itemprop="articleBody">
+ <div style="display:none"><input type="hidden" id="share_url"
+ value="http://www.lanacion.com.ar/2089096"></input>
+ </div>
+ <div class="contenedor-herramientas">
+ <div id="herramientas-sociales" class="herramientas"><input type="hidden" id="hs-dominioCore"
+ value="http://www.lanacion.com.ar"></input><input
+ type="hidden" id="hs-notaId" value="2089096"></input><input type="hidden" id="hs-titulo"
+ value="Una solución no violenta para la cuestión mapuche"></input><input
+ type="hidden" id="hs-twitter" value=""></input>
+ <button class="icon-facebook"
+ data-evento="LN.Compartir.popUpRedSocial('http://www.facebook.com/sharer.php?s=100&amp;u=http://www.lanacion.com.ar/2089096')"
+ title="Compartir en Facebook"></button>
+ <button class="icon-twitter"
+ data-evento="LN.Compartir.popUpRedSocial('http://twitter.com/share?text=Una solución no violenta para la cuestión mapuche&amp;url=http://www.lanacion.com.ar/2089096&amp;via=LANACION');"
+ title="Compartir en Twitter"></button>
+ <a href="whatsapp://send?text=LA NACION: &quot;Una soluci%C3%B3n no violenta para la cuesti%C3%B3n mapuche&quot; - http://www.lanacion.com.ar/2089096"
+ data-action="share/whatsapp/share" class="wapp icon-whatsapp"></a><a
+ class="icon-go-to-top volver" href="#top"></a>
+ <button class="icon-mail" id="btnEnviarAmigo"
+ data-url="/herramientas/nota/enviar-por-mail.html?nota_id=2089096;" title="Enviar por mail"
+ onclick="_gaq.push(['_trackEvent','NotaLN8','herramientas','mail']);"></button>
+ <button class="icon-dialogo" title="Comentarios"
+ data-evento="window.location.href= '#comunidad'; LN.LiveFyre.Init();"></button>
+ <span class="total lf"><span class="livefyre-commentcount" data-lf-site-id="356483"
+ data-lf-article-id="1256448">0
+ </span></span></div>
+ </div>
+ <aside class="banner caja1" data-adpos="caja1" itemscope="" itemtype="http://schema.org/WPAdBlock"></aside>
+ <p class="primero">Abdullah Ocalan, el líder independentista kurdo, desembarcó en Italia en noviembre de
+ 1998 y pidió asilo político. Arrastraba un pedido de captura de Turquía, donde era acusado por
+ terrorismo. El ex comunista Massimo D'Alema, recién asumido, dudaba. Acoger a Ocalan implicaba comprarse
+ un problema con un aliado de la OTAN e importar un conflicto ajeno, pero deportarlo lo exponía a la pena
+ de muerte, legal en Turquía pero inadmisible en la Unión Europea. Optó por la estrecha avenida del
+ medio: se ignoró el mandato de captura al tiempo que se negó el asilo, presionando a Ocalan para que se
+ fuera por las suyas. Tras una carambola a tres bandas, fue capturado por agentes turcos en Kenia, donde
+ se encontraba bajo la protección del embajador griego, mientras intentaba abordar un avión hacia
+ Holanda. Desde febrero de 1999 permanece en una cárcel de máxima seguridad en la isla turca de
+ Imrali.</p>
+ <p>Uno de los autores de esta columna vivía en Italia en esa época y siguió la crisis de cerca; el otro la
+ estudió en profundidad, años más tarde. Pero no hacía falta: cualquiera puede encontrar esta información
+ a un clic de distancia. Eso fue lo que no hizo un periodista de un diario argentino, que no es la
+ nacion. La semana pasada se publicaron extractos de un "informe de carácter secreto" que mencionaba
+ supuestos contactos internacionales de organizaciones mapuches. Entre ellos aparecía Ocalan, a quien el
+ informe ubicó "con domicilios en Palermo y en el centro porteño", y aseguraba incluso que había sido
+ visto "en Neuquén, Río Negro y Chubut durante el juicio a Jones Huala".</p>
+ <figure class="S encolumnada">
+ <div class="conModal f-imagenRelacionada"><span title="Ampliar imagen"
+ class="icon-resize"></span><img
+ src="http://bucket2.glanacion.com/anexos/fotos/77/conflicto-mapuche-2585177w280.jpg"></img></div>
+ <figcaption id="epigrafe2585177">Foto: LA NACION</figcaption>
+ </figure>
+ <aside class="banner caja2" data-adpos="caja2" itemscope="" itemtype="http://schema.org/WPAdBlock"></aside>
+ <p>Esta falsa noticia fue la más rocambolesca de una larga cadena. Dos hechos quedaron en evidencia:
+ primero, que hay periodistas que no chequean la información; segundo, que los servicios de inteligencia
+ los utilizan para manipular la agenda pública. Y sobre los servicios hay dos posibilidades: o son burros
+ o son perversos. Las opciones no son excluyentes, aunque cualquiera alcanza para tornarlos indignos de
+ confianza. Sin embargo, de ellos proviene la información que alimenta a muchos medios de comunicación y,
+ aún más grave, al Estado argentino.</p>
+ <p>El reguero de noticias falsas y vínculos brumosos tiene, paradójicamente, un objetivo prístino: asociar
+ la acción de los grupos mapuches con el terrorismo internacional. Comunicadores, analistas y escritores
+ alineados con el discurso oficial llegaron a relacionar las ideas de las organizaciones patagónicas con
+ las de Estado Islámico (ISIS) de Irak y Siria. El terrorismo carece de definiciones consensuales y ha
+ sido utilizado para emparentar cosas bien diferentes. Aunque el líder mapuche más radicalizado (y menos
+ representativo) declare que propician "un proceso de construcción de autonomía sin pedirle permiso al
+ Estado", vincular a un grupo que reclama tierras en la región de sus ancestros con otro que busca
+ gobernar el mundo según sus normas religiosas y ha masacrado a miles de personas requiere de una
+ operación intelectual tan audaz como inadecuada.</p>
+ <aside class="banner caja3" data-adpos="caja3" itemscope="" itemtype="http://schema.org/WPAdBlock"></aside>
+ <p>La asociación con el movimiento kurdo, en cambio, asoma menos inverosímil. Desde su arresto, Ocalan
+ transformó su pensamiento: de una visión nacionalista con inspiración estalinista evolucionó al
+ confederalismo democrático, una propuesta de organización comunal, ecologista, más apegada a las raíces
+ locales que a las fronteras nacionales. Parece lógico que esas ideas resuenen en agrupamientos
+ indígenas, que reivindican una organización anterior a la consolidación de los Estados sudamericanos.
+ Los paralelos, sin embargo, terminan allí. En Chile, donde el conflicto ha tenido su desarrollo más
+ dramático, la Sociedad de Fomento Agrícola denunció en 2014 que los insurrectos causaron daños por 10
+ millones de dólares y la muerte de tres agricultores y un carabinero a lo largo de 15 años; en la
+ Argentina, por ahora, se registran actos de vandalismo, ocupaciones de tierras y cortes de rutas
+ aislados. En contraste, el conflicto entre el Partido de los Trabajadores del Kurdistán y la República
+ de Turquía se cobró cerca de 40.000 vidas en los años 90 y lleva más de 2000 desde la reanudación de
+ hostilidades en 2015.</p>
+ <p>Consultada sobre esta desproporción, una fuente de los servicios nos la resumió así: "La estrategia de la
+ Coordinadora Arauco-Malleco (CAM), de Chile, y ahora de la Resistencia Ancestral Mapuche (RAM), más que
+ matar directamente, es realizar sabotajes, movilizaciones, ataques a iglesias y empresas y mucha
+ prensa". ¡En Medio Oriente pagarían por un terrorismo así! Ningún hecho de violencia debe ser
+ minimizado, pero las analogías no resisten prueba.</p>
+ <aside class="banner caja4" data-adpos="caja4" itemscope="" itemtype="http://schema.org/WPAdBlock"></aside>
+ <p>La "cuestión mapuche" es social antes que policial. La Constitución manda "reconocer la preexistencia
+ étnica y cultural de los pueblos indígenas argentinos. Garantizar el respeto a su identidad?; reconocer
+ la personería jurídica de sus comunidades, y la posesión y propiedad comunitarias de las tierras que
+ tradicionalmente ocupan; y regular la entrega de otras aptas y suficientes para el desarrollo humano".
+ Estos derechos permanecen incumplidos. Y no son un capricho chavista: los países que reputamos serios
+ también los reconocen. En Estados Unidos, las reservaciones indígenas ocupan 80.000 kilómetros
+ cuadrados, el 1,3% de la superficie del país (y 400 veces la superficie de la ciudad de Buenos Aires).
+ En Canadá, unas 2300 reservas ocupan 28.000 kilómetros cuadrados. Australia otorga a los pueblos
+ indígenas más de la mitad de los territorios del norte del país y son los nativos quienes negocian con
+ las empresas mineras los permisos para que operen en sus tierras. En Nueva Zelanda existen tribunales
+ especiales con jurisdicción sobre las tierras ancestrales de los maoríes; una de sus ventajas es que
+ empoderan a los aborígenes individualmente, liberándolos del yugo de los caciques.</p>
+ <p>La protesta social es indisociable de la democracia. Cuando desborda, recanalizarla es más eficiente que
+ reprimirla: ahí reside el arte del acuerdo. En la Argentina la tarea es delicada porque pocos confían en
+ la imparcialidad de las instituciones. Entonces, cada actor reivindica sus intereses con los medios de
+ que dispone: los sindicatos hacen huelga, los estudiantes toman colegios, los empresarios cierran las
+ fábricas y todos hacen piquetes. El politólogo Samuel Huntington definía una sociedad así como
+ pretoriana y el jurista Carlos Nino llamó a la Argentina "un país al margen de la ley". Al movilizarse
+ por sus derechos y desconfiar del Estado, la comunidad mapuche se demuestra bien argentina.</p>
+ <p>Las cinco provincias patagónicas tienen una población similar a la de La Matanza. A diferencia de los
+ Estados Unidos, que se integraron hacia el oeste otorgando parcelas de tierra a los colonizadores, y de
+ Brasil, donde el rol de ocupación y desarrollo territorial fue cumplido por las fuerzas armadas, la
+ Argentina obvió la tarea integradora tras consolidar su soberanía a finales del siglo XX. Hoy sobra
+ tierra y falta gente. Gobernar sigue siendo poblar, pero también integrar.</p>
+ <p>Seamos claros: ningún individuo u organización tiene derecho a violar la ley. Pero el problema histórico
+ del Estado argentino no fue tanto quiénes lo desafiaron como quiénes lo gobernaron. Cambiemos.</p>
+ <p><b><i>Andrés Malamud es politólogo e investigador en la Universidad de Lisboa. Martín Schapiro es abogado
+ administrativista y analista internacional</i></b></p>
+ <aside class="mas-sobre-tema">
+ <div class="techo floatFix"><span>Más sobre <a href="/conflicto-mapuche-t62235"
+ title="Más sobre Conflicto mapuche"
+ onclick="_gaq.push(['_trackEvent','NotaLN8','cinturon','mas-notas-tag']);">Conflicto mapuche</a></span>
+ </div>
+ </aside>
+ </section>
+ </article>
+ <aside class="banner middle">
+ <aside class="banner middle1" data-adpos="middle1" itemscope="" itemtype="http://schema.org/WPAdBlock"></aside>
+ </aside>
+ <section class="cinturon-notas videos floatFix" id="cinturonVideos" data-nota-id="2089096"
+ data-tipocaja="default"></section>
+ <section id="comunidad" class="no-logueado">
+ <div class="titulo-comentarios">
+ Enviá tu comentario<span class="icon-linea-share-vertical"></span></div>
+ <div class="texto-comentarios"><p>Los comentarios publicados son de exclusiva responsabilidad de sus autores y
+ las consecuencias derivadas de ellos pueden ser pasibles de sanciones legales. Aquel usuario que incluya en
+ sus mensajes algún comentario violatorio del reglamento será eliminado e inhabilitado para volver a
+ comentar. Enviar un comentario implica la aceptación del Reglamento.</p>
+ <div class="recordar-logueo">Para poder comentar tenés que ingresar con tu usuario de LA NACION.</div>
+ </div>
+ <div id="livefyre" data-articleId="1256448"
+ data-collectionMeta="eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhcnRpY2xlSWQiOiIxMjU2NDQ4IiwidGl0bGUiOiJVbmEgc29sdWNpw7NuIG5vIHZpb2xlbnRhIHBhcmEgbGEgY3Vlc3Rpw7NuIG1hcHVjaGUiLCJ1cmwiOiJodHRwOi8vd3d3LmxhbmFjaW9uLmNvbS5hci8yMDg5MDk2LXVuYS1zb2x1Y2lvbi1uby12aW9sZW50YS1wYXJhLWxhLWN1ZXN0aW9uLW1hcHVjaGUifQ.OLRkllsyNcPhaMFnTMAEBTM2RxzWga9mKcy45JQ1duI"></div>
+ </section>
+ <div id="ranking-nota">
+ <section id="ranking" class="floatFix">
+ <div class="techo floatFix"><span>Las más leídas</span></div>
+ <article class="toi-801 num-1 floatFix"><span>1</span>
+ <h2>
+ <a href="http://www.lanacion.com.ar/2089730-por-que-jerusalen-esta-dividida-en-occidental-y-oriental-y-por-que-importa-que-donald-trump-no-mencionara-esto"
+ onclick="_gaq.push(['_trackEvent','NotaLN8','cinturon','Ranking']);">Por qué Jerusalén está
+ dividida en occidental y oriental y por qué importa que Donald Trump no mencionara esto </a>
+ </h2>
+ <hr></hr>
+ </article>
+ <article class="toi-802 num-2 floatFix"><span>2</span>
+ <h2>
+ <a href="http://www.lanacion.com.ar/2089368-que-son-los-criptogatos-valen-mas-de-us-100000-y-pueden-ser-un-problema-para-las-criptomonedas"
+ onclick="_gaq.push(['_trackEvent','NotaLN8','cinturon','Ranking']);">Qué son los "criptogatos":
+ valen más de US$ 100.000 y pueden ser un problema para las criptomonedas </a></h2>
+ <hr></hr>
+ </article>
+ <article class="toi-803 num-3 floatFix"><span>3</span>
+ <h2>
+ <a href="http://www.lanacion.com.ar/2089732-soy-el-mejor-de-la-historia-la-frase-de-cristiano-ronaldo-tras-su-quinto-balon-de-oro-que-encendio-el-debate-la-comparacion-con-lionel-messi"
+ onclick="_gaq.push(['_trackEvent','NotaLN8','cinturon','Ranking']);">"Soy el mejor de la
+ historia", la frase de Cristiano Ronaldo tras su quinto Balón de Oro que encendió el debate: la
+ comparación con Lionel Messi </a></h2>
+ <hr></hr>
+ </article>
+ <article class="toi-804 num-4 floatFix"><span>4</span>
+ <h2>
+ <a href="http://www.lanacion.com.ar/2089728-el-vuelo-de-zannini-de-rio-gallegos-a-buenos-aires-un-viaje-de-tres-horas-cargado-de-indiferencia"
+ onclick="_gaq.push(['_trackEvent','NotaLN8','cinturon','Ranking']);">El viaje de Zannini de Río
+ Gallegos a Buenos Aires, un vuelo de tres horas cargado de indiferencia </a></h2>
+ <hr></hr>
+ </article>
+ <article class="toi-805 num-5 floatFix"><span>5</span>
+ <h2>
+ <a href="http://www.lanacion.com.ar/2089742-la-boca-dos-motochorros-apunalaron-a-un-turista-estadounidense"
+ onclick="_gaq.push(['_trackEvent','NotaLN8','cinturon','Ranking']);">La Boca: dos motochorros
+ apuñalaron a un turista estadounidense </a></h2>
+ <hr></hr>
+ </article>
+ </section>
+ <aside class="banner caja_footer" data-adpos="caja_footer" itemscope=""
+ itemtype="http://schema.org/WPAdBlock"></aside>
+ </div>
+</main>
+<footer id="footer">
+ <div class="top floatFix">
+ <div class="links-principales"><a href="http://especiales.lanacion.com.ar/varios/mapa-sitio/index.asp"
+ target="_blank"
+ onclick="_gaq.push(['_trackEvent','homeLN8','Footer','mapa']);">Mapa del
+ sitio</a> | <a href="https://micuenta.lanacion.com.ar/ayuda" target="_blank"
+ onclick="_gaq.push(['_trackEvent','homeLN8','Footer','ayuda']);">Ayuda</a> | <a
+ href="https://micuenta.lanacion.com.ar/tyc" target="_blank"
+ onclick="_gaq.push(['_trackEvent','homeLN8','Footer','terminos-condiciones']);">Términos y
+ condiciones</a></div>
+ <div class="links-extra">
+ <button class="icon-mail-footer"></button>
+ <a href="https://micuenta.lanacion.com.ar/mis-newsletters" target="_blank"
+ onclick="_gaq.push(['_trackEvent','homeLN8','Footer','newsletter']);">Newsletter</a>
+ <button class="icon-mobile"></button>
+ <a href="http://especiales.lanacion.com.ar/dispositivos/index.asp" target="_blank"
+ onclick="_gaq.push(['_trackEvent','homeLN8','Footer','dispositivos']);">Dispositivos</a></div>
+ <div class="redes-sociales">
+ <button class="icon-facebook" id="pie-facebook"
+ onclick="_gaq.push(['_trackEvent','homeLN8','Footer','facebook']);"></button>
+ <button class="icon-twitter" id="pie-twitter"
+ onclick="_gaq.push(['_trackEvent','homeLN8','Footer','twiiter']);"></button>
+ <button class="icon-google" id="pie-google"
+ onclick="_gaq.push(['_trackEvent','homeLN8','Footer','google']);"></button>
+ <button class="icon-rss" id="pie-rss"
+ onclick="_gaq.push(['_trackEvent','homeLN8','Footer','rss']);"></button>
+ </div>
+ </div>
+ <div class="bottom">
+ <ul class="floatFix">
+ <li class="link-copyright">Copyright 2017 SA LA NACION | Todos los derechos reservados</li>
+ <li class="link-gda">
+ <div class="gda"></div>
+ Miembro de GDA. Grupo de Diarios América
+ </li>
+ <li class="link-bbc"><a class="pie-bbc" target="_blank" href="http://www.bbcmundo.com" rel="external"
+ title="BBC MUNDO"
+ onclick="_gaq.push(['_trackEvent', 'promos-medios', 'bbc-mundo', 'pie']);">
+ <div class="logo-bbc"></div>
+ </a></li>
+ </ul>
+ </div>
+</footer>
+</body><!--ONLINE--></html> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lemonde-1/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lemonde-1/expected-images.json
new file mode 100644
index 000000000..e32833b65
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lemonde-1/expected-images.json
@@ -0,0 +1,3 @@
+[
+ "http:\/\/s1.lemde.fr\/image\/2015\/05\/05\/600x315\/4628128_3_47fc_projet-de-loi-renseignement_aeba800424730d672d1bd08faf203438.jpg"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lemonde-1/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lemonde-1/expected-metadata.json
new file mode 100644
index 000000000..a45fcaf97
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lemonde-1/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "Largement approuvé par les députés, le texte sera désormais examiné par le Sénat, puis le Conseil constitutionnel.",
+ "Image": "http:\/\/s1.lemde.fr\/image\/2015\/05\/05\/600x315\/4628128_3_47fc_projet-de-loi-renseignement_aeba800424730d672d1bd08faf203438.jpg",
+ "Title": "Le projet de loi sur le renseignement massivement approuvé à l'Assemblée",
+ "SiteName": "Le Monde.fr"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lemonde-1/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lemonde-1/expected.html
new file mode 100644
index 000000000..dd91ed502
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lemonde-1/expected.html
@@ -0,0 +1,46 @@
+<p> <span data-source="Le Monde.fr" id="publisher" itemprop="Publisher">Le Monde</span> |
+ <time datetime="2015-05-04T13:36:31+02:00" itemprop="datePublished">04.05.2015 à 13h36</time> • Mis à jour le
+ <time datetime="2015-05-05T20:13:12+02:00" itemprop="dateModified">05.05.2015 à 20h13</time> | <span>
+Par <span itemprop="author"> <a href="http://fakehost/journaliste/martin-untersinger/" target="_blank">Martin Untersinger</a> (avec Damien Leloup et Morgane Tual)
+ </span> </span>
+ </p><div id="articleBody" itemprop="articleBody">
+ <p>
+ <iframe frameborder="0" height="320" src="//www.dailymotion.com/embed/video/x2p552m?syndication=131181" width="534"></iframe>
+ </p>
+ <p>Les députés ont, sans surprise, adopté à une large majorité (438 contre 86 et 42 abstentions) le projet de loi sur le renseignement défendu par le gouvernement lors d’un vote solennel, mardi 5 mai. Il sera désormais examiné par le Sénat, puis le Conseil constitutionnel, prochainement saisi par 75 députés. Dans un souci d'apaisement, François Hollande avait annoncé par avance qu'il saisirait les Sages.</p>
+ <p><strong>Revivez <a href="http://fakehost/pixels/live/2015/05/05/suivez-le-vote-de-la-loi-renseignement-en-direct_4628012_4408996.html">le direct du vote à l’Assemblée avec vos questions.</a></strong></p>
+ <p>Ont voté contre : 10 députés socialistes (sur 288), 35 UMP (sur 198), 11 écologistes (sur 18), 11 UDI (sur 30), 12 députés Front de gauche (sur 15) et 7 non-inscrits (sur 9). <a href="http://www2.assemblee-nationale.fr/scrutins/detail/%28legislature%29/14/%28num%29/1109">Le détail est disponible sur le site de l'Assemblée nationale.</a></p>
+ <p>Parmi les députés ayan voté contre figurent notamment des opposants de la première heure, comme l'UMP Laure de la Raudière ou l'écologiste Sergio Coronado, mais aussi quelques poids lourds de l'opposition comme Patrick Devedjian ou Claude Goasguen. A gauche, on trouve parmi les quelque opposants au texte Aurélie Filipetti. Christian Paul, qui avait été très actif lors d'autres débats sur les libertés numériques, s'est abstenu.</p>
+ <p>Pouria Amirshahi, député socialiste des Français de l'étranger qui a également voté contre, a annoncé qu'il transmettrait un « mémorandum argumenté » au Conseil constitutionnel et demanderait à se faire auditionner sur le projet de loi. D'autres députés ont prévu de faire la même démarche.</p>
+ <p>Ce texte, fortement décrié par la société civile pour son manque de contre-pouvoir et le caractère intrusif des techniques qu’il autorise, entend donner un cadre aux pratiques des services de renseignement, rendant légales certaines pratiques qui, jusqu’à présent, ne l’étaient pas.</p>
+ <p><u>Retour sur ses principales dispositions, après son passage en commission des lois et après le débat en séance publique.</u></p>
+ <h2>Définition des objectifs des services</h2>
+ <p>Le projet de loi énonce les domaines que peuvent invoquer les services pour justifier leur surveillance. Il s’agit notamment, de manière attendue, de <em>« l’indépendance nationale, de l’intégrité du territoire et de la défense nationale »</em> et de<em> « la prévention du terrorisme »,</em> mais également des <em>« intérêts majeurs de la politique étrangère »,</em> ainsi que de la <em>« prévention des atteintes à la forme républicaine des institutions »</em> et de <em>« la criminalité et de la délinquance organisées »</em>. Des formulations parfois larges qui inquiètent les opposants au texte qui craignent qu’elles puissent permettre de surveiller des activistes ou des manifestants.</p>
+ <h2>La Commission de contrôle</h2>
+ <p>Le contrôle de cette surveillance sera confié à une nouvelle autorité administrative indépendante, la Commission nationale de contrôle des techniques de renseignement (CNCTR), composée de six magistrats du Conseil d’Etat et de la Cour de cassation, de trois députés et trois sénateurs de la majorité et de l’opposition, et d’un expert technique. Elle remplacera l’actuelle Commission nationale de contrôle des interceptions de sécurité (CNCIS).</p>
+ <p>Elle délivrera son avis, sauf cas d’urgence, avant toute opération de surveillance ciblée. Deux types urgences sont prévus par la loi : d’un côté une <em>« urgence absolue »</em>, pour laquelle un agent pourra se passer de l’avis de la CNCTR mais pas de l’autorisation du premier ministre. De l’autre, une urgence opérationnelle extrêmement limitée, notamment en termes de techniques, à l’initiative du chef du service de renseignement, qui se passe de l’avis de la CNCTR. Ces cas d’urgence ne justifieront pas l’intrusion d’un domicile ni la surveillance d’un journaliste, un parlementaire ou un avocat. Dans ces cas, la procédure classique devra s’appliquer.</p>
+ <p>L’avis de la CNCTR ne sera pas contraignant, mais cette commission pourra saisir le Conseil d’Etat si elle estime que la loi n’est pas respectée et elle disposera de pouvoirs d’enquête. Ce recours juridictionnel est une nouveauté dans le monde du renseignement.</p>
+ <h2>Les « boîtes noires »</h2>
+ <p>Une des dispositions les plus contestées de ce projet de loi prévoit de pouvoir contraindre les fournisseurs d’accès à Internet (FAI) à « <em>détecter une menace terroriste sur la base d’un traitement automatisé ». </em>Ce dispositif – autorisé par le premier ministre par tranche de quatre mois – permettrait de détecter, en temps réel ou quasi réel, les personnes ayant une activité en ligne typique de « schémas » utilisés par les terroristes pour transmettre des informations.</p>
+ <p>En pratique, les services de renseignement pourraient installer chez les FAI une « boîte noire » surveillant le trafic. Le contenu des communications – qui resterait « anonyme » – ne serait pas surveillé, mais uniquement les métadonnées : origine ou destinataire d’un message, adresse IP d’un site visité, durée de la conversation ou de la connexion… Ces données ne seraient pas conservées.</p>
+ <p>La Commission nationale informatique et libertés<strong> </strong>(CNIL), qui critique fortement cette disposition. La CNIL soulève notamment que l’anonymat de ces données est très relatif, puisqu’il peut être levé.</p>
+ <p>Lire aussi : <a href="http://fakehost/pixels/article/2015/03/18/les-critiques-de-la-cnil-contre-le-projet-de-loi-sur-le-renseignement_4595839_4408996.html">Les critiques de la CNIL contre le projet de loi sur le renseignement</a> </p>
+ <p>Le dispositif introduit une forme de « pêche au chalut » – un brassage très large des données des Français à la recherche de quelques individus. Le gouvernement se défend de toute similarité avec les dispositifs mis en place par la NSA américaine, arguant notamment que les données ne seront pas conservées et que cette activité sera contrôlée par une toute nouvelle commission aux moyens largement renforcés. Il s’agit cependant d’un dispositif très large, puisqu’il concernera tous les fournisseurs d’accès à Internet, et donc tous les internautes français.</p>
+ <h2>L’élargissement de la surveillance électronique pour détecter les « futurs » terroristes</h2>
+ <p>La surveillance des métadonnées sera aussi utilisée pour tenter de détecter de nouveaux profils de terroristes potentiels, prévoit le projet de loi. Le gouvernement considère qu’il s’agit d’une manière efficace de détecter les profils qui passent aujourd’hui <em>« entre les mailles du filet »</em>, par exemple des personnes parties en Syrie ou en Irak sans qu’aucune activité suspecte n’ait été décelée avant leur départ.</p>
+ <p>Pour repérer ces personnes, la loi permettra d’étendre la surveillance électronique à toutes les personnes en contact avec des personnes déjà suspectées. En analysant leurs contacts, la fréquence de ces derniers et les modes de communication, les services de renseignement espèrent pouvoir détecter ces nouveaux profils en amont.</p>
+ <h2>De nouveaux outils et méthodes de collecte</h2>
+ <p>Les services pourront également procéder, après un avis de la CNCTR, à la pose de micros dans une pièce ou de mouchards sur un objet (voiture par exemple), ou à l’intérieur d’un ordinateur. L’utilisation des IMSI-catchers (fausses antennes qui permettent d’intercepter des conversations téléphoniques) est également légalisée, pour les services de renseignement, dans certains cas. Le nombre maximal de ces appareils sera fixé par arrêté du premier ministre après l’avis de la CNCTR.</p>
+ <p><strong>Lire : <a href="http://fakehost/pixels/article/2015/03/31/que-sont-les-imsi-catchers-ces-valises-qui-espionnent-les-telephones-portables_4605827_4408996.html">Que sont les IMSI-catchers, ces valises qui espionnent les téléphones portables ?</a></strong></p>
+ <p>La loi introduit également des mesures de surveillance internationale : concrètement, les procédures de contrôle seront allégées lorsqu’un des « bouts » de la communication sera situé à l’étranger (concrètement, un Français qui parle avec un individu situé à l’étranger). Cependant, comme l’a souligné l’Arcep (l’Autorité de régulation des communications électroniques et des postes), sollicitée pour le versant technique de cette mesure, il est parfois difficile de s’assurer qu’une communication, même passant par l’étranger, ne concerne pas deux Français.</p>
+ <h2>Un nouveau fichier</h2>
+ <p>La loi crée un fichier judiciaire national automatisé des auteurs d’infractions terroristes (Fijait), dont les données pourront être conservées pendant vingt ans.</p>
+ <p>Ce fichier concerne les personnes ayant été condamnées, même si une procédure d’appel est en cours. Les mineurs pourront aussi être inscrits dans ce fichier et leurs données conservées jusqu’à dix ans. L’inscription ne sera pas automatique et se fera sur décision judiciaire. Certaines mises en examen pourront aussi apparaître sur ce fichier. En cas de non-lieu, relaxe, acquittement, amnistie ou réhabilitation, ces informations seront effacées.</p>
+ <h2>Renseignement pénitentiaire</h2>
+ <p>Le renseignement pénitentiaire pourra, dans des conditions qui seront fixées par décret, profiter des techniques que légalise le projet de loi pour les services de renseignement. La ministre de la justice, Christiane Taubira, était défavorable à cette disposition, soutenue par le rapporteur du texte, la droite et une partie des députés de gauche. Pour la ministre, cette innovation va dénaturer le renseignement pénitentiaire et le transformer en véritable service de renseignement.</p>
+ <h2>Conservation des données</h2>
+ <p>La CNIL <a href="http://www.cnil.fr/fileadmin/documents/La_CNIL/actualite/Les_propositions_de_la_CNIL_sur_les_evolutions_de_la_loi_Informatique_et_Libertes.pdf">a fait part à plusieurs reprises de sa volonté</a> d’exercer sa mission de contrôle sur les fichiers liés au renseignement, qui seront alimentés par ces collectes. Ces fichiers sont aujourd’hui exclus du périmètre d’action de la CNIL.</p>
+ <p>La durée de conservation des données collectées – et l’adaptation de cette durée à la technique employée – a par ailleurs été inscrite dans la loi, contrairement au projet initial du gouvernement qui entendait fixer ces limites par décret. Elle pourra aller jusqu’à cinq ans dans le cas des données de connexion.</p>
+ <h2>Un dispositif pour les lanceurs d’alerte</h2>
+ <p>La loi prévoit également une forme de protection pour les agents qui seraient témoins de surveillance illégale. Ces lanceurs d’alerte pourraient solliciter la CNCTR, voire le premier ministre, et leur fournir toutes les pièces utiles. La CNCTR pourra ensuite aviser le procureur de la République et solliciter la Commission consultative du secret de la défense nationale afin que cette dernière <em>« donne au premier ministre son avis sur la possibilité de déclassifier tout ou partie de ces éléments »</em>. Aucune mesure de rétorsion ne pourra viser l’agent qui aurait dénoncé des actes potentiellement illégaux.</p>
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lemonde-1/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lemonde-1/source.html
new file mode 100644
index 000000000..093b02e52
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lemonde-1/source.html
@@ -0,0 +1,1117 @@
+<!DOCTYPE html>
+<!--[if lt IE 9]><html class="ie"><![endif]-->
+<!--[if IE 9]><html class="ie9"><![endif]-->
+<!--[if gte IE 9]><!-->
+<html lang="fr">
+<!--<![endif]-->
+
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ <script>
+ if ("undefined" === typeof lmd || !lmd) lmd = {};
+ (function(a, b) {
+ var d = a.onerror,
+ c = "";
+ a.onerror = function(a, e, f) {
+ d && d.apply(this, [a, e, f]);
+ c = e + " line:" + f + " : " + a;
+ "undefined" !== typeof b.jserrors && "function" === typeof b.jserrors.push ? 10 >= b.jserrors.length && b.jserrors.push(c) : b.jserrors = [c]
+ }
+ })(this, lmd);
+ </script>
+ <!-- context -->
+ <script>
+ if ("undefined" === typeof lmd || !lmd) lmd = {};
+ lmd.context = {
+ "pageType": "Element",
+ "rubrique": {
+ "id": 4408996,
+ "url_friendly": "pixels",
+ "maquette": "technologies_home",
+ "parents": [],
+ "rubrique_ombrelle": {
+ "id": 4408996,
+ "url_friendly": "pixels"
+ }
+ },
+ "rubriques": [{
+ "id": 4408996,
+ "url_friendly": "pixels"
+ }, {
+ "id": 4614001,
+ "url_friendly": "loi-sur-le-renseignement"
+ }, {
+ "id": 4409015,
+ "url_friendly": "vie-en-ligne"
+ }],
+ "element": {
+ "id": 4627068,
+ "titre": "Le projet de loi sur le renseignement massivement approuv\u00e9 \u00e0 l'Assembl\u00e9e",
+ "gabarit": "colright",
+ "partenaire": null,
+ "nature_editoriale": {
+ "nom": "compte_rendu",
+ "libelle": "Compte rendu"
+ },
+ "type": {
+ "id": 4,
+ "nom": "article",
+ "libelle": "Article",
+ "est_en_continu": true,
+ "est_editorial": true,
+ "icon": "article"
+ },
+ "restreint": false,
+ "link": "\/pixels\/article\/2015\/05\/04\/que-contient-la-loi-sur-le-renseignement_4627068_4408996.html",
+ "ensemble": {
+ "id": 4595835,
+ "tetiere": "Loi sur le renseignement"
+ },
+ "nb_signes": 9885,
+ "has_atome_video": true
+ },
+ "page": {
+ "advert": {
+ "active": true,
+ "colonne_light": false,
+ "adserver": "smartadserver",
+ "smart": {
+ "site": "50270",
+ "page": 444463,
+ "query": null,
+ "all_formats": "21489,21490,21935,21486,21482,21488,21483,21484,21485,25258,25259,25260,21936,21487,21492,22396,21491,21493,21938,21937,23371,23885,15187,15188,29752,29753,27863,25553,25553,26077,26076,26333,25551,26078,25550,25550,22379,26080,26613,22380,27863,25553,25553,26077,26076,26333,25551,26078,25550,25550,22379,26080,26613,22380,21488",
+ "domain": "ww690.smartadserver.com",
+ "render_mode": 0
+ }
+ },
+ "xiti": {
+ "xtpage": "pixels::que_contient_la_loi_sur_le_renseignement",
+ "xtpagetype": null,
+ "xtn2": 56,
+ "xtsite": "43260",
+ "xt_multc": "&x1=&x2=article",
+ "xt_abmv": null,
+ "xt_chains": null,
+ "xtcustom": {},
+ "xt_tag": null,
+ "xtergo": null
+ },
+ "ezakus": ["g:asq", "d:lemonde", "flt:1", "cat_l1:pixels", "t_article:article", "t_contenu:article", "signe:art_long", "m_contenu:compte_rendu"],
+ "bizdev": {
+ "ligatus": {
+ "primary_id": 49541,
+ "secondary_id": 49665
+ }
+ }
+ },
+ "application": "www"
+ };
+ lmd.context.item = lmd.context.element;
+ </script>
+ <!-- Mobile redirect, lmd conf, registered redirect -->
+ <script src="//s1.lemde.fr/bootstrap/list-early-load.js"></script>
+ <title>Le projet de loi sur le renseignement massivement approuvé à l'Assemblée</title>
+ <meta name="description" content="Largement approuvé par les députés, le texte sera désormais examiné par le Sénat, puis le Conseil constitutionnel."/>
+ <meta name="robots" content="index, follow, noarchive"/>
+ <meta http-equiv="refresh" content="900"/>
+ <meta http-equiv="Expires" content="0"/>
+ <meta http-equiv="Pragma" content="no-cache"/>
+ <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+ <meta name="application-name" content="Le Monde.fr"/>
+ <meta name="DC.language" content="fr"/>
+ <meta name="DC.format" content="text/html"/>
+ <meta name="DC.publisher" content="Le Monde"/>
+ <meta name="DC.identifier" content="ISSN 1950-6244"/>
+ <meta name="msapplication-tooltip" content="Le Monde.fr"/>
+ <meta name="msapplication-navbutton-color" content="#000"/>
+ <meta name="msapplication-starturl" content="/"/>
+ <meta name="msapplication-task" content="name=A la Une;action-uri=/;icon-uri=/medias/web/ico/ie9-pin/une.ico"/>
+ <meta name="msapplication-task" content="name=International;action-uri=/international/;icon-uri=/medias/web/ico/ie9-pin/international.ico"/>
+ <meta name="msapplication-task" content="name=Politique;action-uri=/politique/;icon-uri=/medias/web/ico/ie9-pin/politique.ico"/>
+ <meta name="msapplication-task" content="name=Economie;action-uri=/economie/;icon-uri=/medias/web/ico/ie9-pin/economie.ico"/>
+ <meta name="msapplication-task" content="name=Sport;action-uri=/sport/;icon-uri=/medias/web/ico/ie9-pin/sport.ico"/>
+ <link rel="apple-touch-icon-precomposed" sizes="72x72" href="//s1.lemde.fr/medias/web/1.2.671/ico/apple/icon-72.png"/>
+ <link rel="apple-touch-icon-precomposed" sizes="144x144" href="//s1.lemde.fr/medias/web/1.2.671/ico/apple/icon-144.png"/>
+ <meta property="fb:app_id" content="166878320861"/>
+ <meta property="fb:page_id" content="14892757589"/>
+ <meta property="og:site_name" content="Le Monde.fr"/>
+ <meta property="og:locale" content="fr_FR"/>
+ <meta property="og:url" content="http://www.lemonde.fr/pixels/article/2015/05/04/que-contient-la-loi-sur-le-renseignement_4627068_4408996.html"/>
+ <meta property="og:title" content="Le projet de loi sur le renseignement massivement approuvé à l'Assemblée"/>
+ <meta property="og:description" content="Largement approuvé par les députés, le texte sera désormais examiné par le Sénat, puis le Conseil constitutionnel."/>
+ <meta property="og:image" content="http://s1.lemde.fr/image/2015/05/05/600x315/4628128_3_47fc_projet-de-loi-renseignement_aeba800424730d672d1bd08faf203438.jpg"/>
+ <meta property="og:image:width" content="600"/>
+ <meta property="og:image:height" content="315"/>
+ <meta property="og:image:type" content="image/jpeg"/>
+ <meta property="og:type" content="article"/>
+ <meta property="al:ios:url" content="lmfr://element/article/4627068?x4=8"/>
+ <meta property="al:ios:app_store_id" content="294047850"/>
+ <meta property="al:android:url" content="lmfr://element/article/4627068?x4=8"/>
+ <meta property="al:android:package" content="com.lemonde.androidapp"/>
+ <meta property="al:web:url" content="http://www.lemonde.fr/pixels/article/2015/05/04/que-contient-la-loi-sur-le-renseignement_4627068_4408996.html"/>
+ <meta property="al:web:should_fallback" content="true"/>
+ <meta name="twitter:card" content="summary_large_image"/>
+ <meta name="twitter:site" content="@lemondefr"/>
+ <meta name="twitter:url" content="http://www.lemonde.fr/pixels/article/2015/05/04/que-contient-la-loi-sur-le-renseignement_4627068_4408996.html"/>
+ <meta name="twitter:title" content="Le projet de loi sur le renseignement massivement approuvé à l'Assemblée"/>
+ <meta name="twitter:description" content="Largement approuvé par les députés, le texte sera désormais examiné par le Sénat, puis le Conseil constitutionnel."/>
+ <meta name="twitter:image" content="http://s1.lemde.fr/image/2015/05/05/600x315/4628128_3_47fc_projet-de-loi-renseignement_aeba800424730d672d1bd08faf203438.jpg"/>
+ <meta name="twitter:app:country" content="FR"/>
+ <meta name="twitter:app:id:iphone" content="294047850"/>
+ <meta name="twitter:app:url:iphone" content="lmfr://element/article/4627068?x4=8"/>
+ <meta name="twitter:app:id:ipad" content="294047850"/>
+ <meta name="twitter:app:url:ipad" content="lmfr://element/article/4627068?x4=8"/>
+ <meta name="twitter:app:id:googleplay" content="com.lemonde.androidapp"/>
+ <meta name="twitter:app:url:googleplay" content="lmfr://element/article/4627068?x4=8"/>
+ <link rel="alternate" href="android-app://com.lemonde.androidapp/lmfr/element/article/4627068?x4=8"/>
+ <link rel="shortcut icon" href="//s1.lemde.fr/medias/web/1.2.671/ico/favicon.ico"/>
+ <link rel="stylesheet" type="text/css" href="//s1.lemde.fr/bootstrap/www/67e40ec439cec7837a3a02ea3a19df14.css?m[]=normalize&amp;m[]=fonts&amp;m[]=grille&amp;m[]=base&amp;m[]=header&amp;m[]=footer&amp;m[]=rubrique&amp;m[]=article&amp;m[]=friends%2Fpaves&amp;m[]=col_droite&amp;m[]=ticker&amp;m[]=couleurs&amp;m[]=marketing%2Fmeter&amp;m[]=evenementiel%2Fcoupe-du-monde&amp;m[]=friends%2Fnewsweb%2Fbase&amp;m[]=friends%2Fnewsweb%2Fdatabox&amp;m[]=friends%2Fnewsweb%2Flivescore&amp;m[]=friends%2Fnewsweb%2Flivescore_tennis&amp;m[]=print&amp;m[]=element&amp;m[]=rubriques%2Fpixels&amp;m[]=modules%2Fportfolio&amp;m[]=modules%2Fzen&amp;m[]=abonnes%2Foverlay"/>
+ <link rel="canonical" href="http://www.lemonde.fr/pixels/article/2015/05/04/que-contient-la-loi-sur-le-renseignement_4627068_4408996.html"/>
+ <link rel="alternate" href="http://mobile.lemonde.fr/pixels/article/2015/05/04/que-contient-la-loi-sur-le-renseignement_4627068_4408996.html" media="only screen and (max-width: 640px)"/>
+ <link rel="alternate" href="http://www.lemonde.fr/pixels/rss_full.xml" title="Le Monde.fr : Pixels" type="application/rss+xml"/>
+ <script src="//s1.lemde.fr/medias/web/1.2.671/js/lib/require/core/current/require.js"></script>
+ <script src="//s1.lemde.fr/bootstrap/www/main.js"></script>
+ <script>
+ if (-1 === requirejs.s.contexts._.config.baseUrl.indexOf('lemde')) {
+ require = function() {};
+ }
+ </script>
+ <script>
+ "undefined" !== typeof lmd && lmd || (lmd = {});
+ (function(e, d) {
+ var f = function(a, c) {
+ var b;
+ if (void 0 === c || null === c || "" === c) return !0;
+ for (b = 0; b &lt; a.requireModules.length; b++)
+ if (a.requireModules[b].match(c)) return !0;
+ return !1
+ },
+ g = function(a, c) {
+ var b;
+ for (b = 0; b &lt; d.requirejs.error_history.length; b++) f(d.requirejs.error_history[b], c) && a.call(this, d.requirejs.error_history[b])
+ },
+ h = function(a) {
+ var c, b = d.requirejs.handlers;
+ for (c = 0; c &lt; b.length; c++) f(a, b[c].regex) && b[c].fn.call(this, a)
+ };
+ d.requirejs = {
+ handlers: [],
+ error_history: [],
+ addHandler: function(a, c, b) {
+ "undefined" !== typeof b && b && g(a, c);
+ d.requirejs.handlers.push({
+ fn: a,
+ regex: c
+ })
+ }
+ };
+ requirejs.onError = function(a) {
+ h(a);
+ d.requirejs.error_history.push(a);
+ if ("function" === typeof e.onerror) e.onerror("REQUIRE ERROR (" + a.requireType + ") [" + a.originalError.target.src + "]", a.originalError.target.baseURI, "N/A");
+ else throw a;
+ }
+ })(this, lmd);
+ </script>
+ <!--[if IE]>
+ <script src="//s1.lemde.fr/medias/web/1.2.671/js/lib/ecma/core/262/base64.js"></script>
+<![endif]-->
+ <!--[if lte IE 9]>
+ <script src="//s1.lemde.fr/medias/web/1.2.671/js/lib/polyfill/placeholder.js"></script>
+<![endif]-->
+ <!--[if lt IE 9]>
+ <script src="//s1.lemde.fr/medias/web/1.2.671/js/lib/html5shiv/html5.js"></script>
+ <script src="//s1.lemde.fr/medias/web/1.2.671/js/lib/ecma/core/262/array.js"></script>
+<![endif]-->
+ <!--[if lte IE 8]>
+<![endif]-->
+ <!--[if lte IE 7]>
+ <script src="//s1.lemde.fr/medias/web/1.2.671/js/lib/ecma/core/262/json.js"></script>
+<![endif]-->
+ <script>
+ require(['lmd.afrique.cookie']);
+ </script>
+ <script>
+ (function(d) {
+ var script = d.createElement('script');
+ var trange = (new Date()).getTime().toString().slice(0, -5);
+ script.src = '//s1.lemde.fr/medias/web/1.2.671/js/lmd/module/meter/toggle-off.js?' + trange;
+ d.write(script.outerHTML);
+ })(document);
+ require(['lmd.meter'], function(loader) {
+ loader.launch();
+ });
+ </script>
+ <script>
+ SMART_listpos_temp = [];
+ ADVERT_AD = function(a) {
+ SMART_listpos_temp.push(a)
+ };
+ </script>
+ <script>
+ if (lmd.conf.fsw.kameleoon) {
+ kameleoonOptions = {
+ asynchronous: true
+ };
+ require(["//static.kameleoon.com/css/customers/r9u0567aww/0/kameleoon.js"], function() {});
+ }
+ </script>
+ <script>
+ var _vrq = _vrq || [];
+ _vrq.push(['id', 53]);
+ _vrq.push(['track', function() {}]);
+ if (lmd.conf.fsw.visual_revenue && document.location.protocol === "http:") {
+ require(["http://a.visualrevenue.com/vrs.js"]);
+ }
+ </script>
+ <script>
+ var _sf_startpt = (new Date()).getTime()
+ </script>
+ <script>
+ require(["lib/require/plugin/domReady", "lmd/util/link"], function(a, b) {
+ a(function() {
+ b.parse()
+ })
+ });
+ </script>
+ <script>
+ if ("undefined" === typeof lmd || !lmd) lmd = {};
+ lmd.pic = function(a) {
+ require(["lmd/module/retina"], function(b) {
+ b(a)
+ })
+ };
+ lmpic = lmd.pic;
+ </script>
+ <script>
+ if ("undefined" === typeof lmd || !lmd) lmd = {};
+ lmd.onload = function(a) {
+ var b;
+ if ("undefined" !== typeof addEventListener) return addEventListener("load", a, !1);
+ if ("undefined" !== typeof attachEvent) return attachEvent("onload", a);
+ b = onload;
+ onload = "function" !== typeof onload ? a : function() {
+ b && b();
+ a()
+ }
+ };
+ _lmOnLoad = lmd.onload;
+ </script>
+ <script>
+ require(['lmd/core/login-register']);
+ </script>
+ <!--[if IE]>
+<script>require(["lib/require/plugin/domReady!","lmd/ui/ie9-pinning"],function(b,a){a.start()});</script>
+<![endif]-->
+ <link rel="dns-prefetch" href="//cdn1.smartadserver.com"/>
+ <link rel="dns-prefetch" href="//ww690.smartadserver.com"/>
+ <link rel="dns-prefetch" href="//logc2.xiti.com"/> </head>
+
+<body class="pixels">
+ <header id="header">
+ <div id="alerte_tracking" class="bandeau_info_importante bord_gris_moyen" style="display:none;height:0;"> En poursuivant votre navigation sur ce site, vous acceptez l’utilisation de cookies pour vous proposer des contenus et services adaptés à vos centres d’intérêts. <span data-href="aHR0cDovL3d3dy5sZW1vbmRlLmZyL3NlcnZpY2UvZG9ubmVlc19wZXJzb25uZWxsZXMuaHRtbA==" class="obf">En savoir plus et gérer ces paramètres</span>. <span class="croix_grise mgl8" title="Fermer cet avertissement"></span> </div>
+ <script>
+ require(["lmd/module/user/alerte_tracking"]);
+ </script>
+ <div id="surheader">
+ <div class="conteneur_haut">
+ <p class="gauche"> <a href="/" class="actif">Le Monde</a> <span data-target="_blank" data-href="aHR0cDovL3d3dy50ZWxlcmFtYS5mci8=" class="obf">Télérama</span> <span data-target="_blank" data-href="aHR0cDovL3d3dy5tb25kZS1kaXBsb21hdGlxdWUuZnIv" class="obf">Le Monde diplomatique</span> <span data-target="_blank" data-href="aHR0cDovL3d3dy5odWZmaW5ndG9ucG9zdC5mci8=" class="obf">Le Huffington Post</span> <span data-target="_blank" data-href="aHR0cDovL3d3dy5jb3VycmllcmludGVybmF0aW9uYWwuY29tLw==" class="obf">Courrier international</span> <span data-target="_blank" data-href="aHR0cDovL3d3dy5sYXZpZS5mci8=" class="obf">La Vie</span> <span data-target="_blank" data-href="aHR0cDovL3d3dy5hdWphcmRpbi5pbmZvLw==" class="obf">au Jardin</span> </p>
+ <div class="droit"> <span data-href="L2Fiby8/Y2xlZj1CVE5fQUJPR09MRDE0" class="bt_abo obf" onclick="return xt_click(this, 'C', lmd.context.page.xiti.xtn2, 'entrees_tunnel_abo::header','N');" title="Abonnez-vous au Monde à partir de 1 €">S'abonner au Monde à partir de 1 €</span>
+ <ul class="services droite">
+ <li> <span data-href="L3NlcnZpY2VzLw==" class="obf lien_deroulant">Services Le Monde ▾</span>
+ <div>
+ <ul>
+ <li><strong>Boutique Le Monde</strong></li>
+ <li> <span data-target="_blank" data-href="aHR0cDovL2JvdXRpcXVlLmxlbW9uZGUuZnIvI3h0b3I9QUQtNDY=" class="obf">Accueil</span> </li>
+ <li> <span data-target="_blank" data-href="aHR0cDovL2JvdXRpcXVlLmxlbW9uZGUuZnIvaG9ycy1zZXJpZXMuaHRtbCN4dG9yPUFELTEwMQ==" class="obf">Hors-séries</span> </li>
+ <li> <span data-target="_blank" data-href="aHR0cDovL2JvdXRpcXVlLmxlbW9uZGUuZnIvbGl2cmVzLmh0bWwjeHRvcj1BRC0xMDA=" class="obf">Livres</span> </li>
+ <li> <span data-target="_blank" data-href="aHR0cDovL2JvdXRpcXVlLmxlbW9uZGUuZnIvZHZkLTEuaHRtbCN4dG9yPUFELTk4" class="obf">DVD</span> </li>
+ <li> <span data-target="_blank" data-href="aHR0cDovL2JvdXRpcXVlLmxlbW9uZGUuZnIvY2QuaHRtbCN4dG9yPUFELTk5" class="obf">CD</span> </li>
+ <li> <span data-target="_blank" data-href="aHR0cDovL2JvdXRpcXVlLmxlbW9uZGUuZnIvdW5lcy1kdS1tb25kZS5odG1sI3h0b3I9QUQtMTQ5" class="obf">Unes du Monde</span> </li>
+ <li> <span data-target="_blank" data-href="aHR0cDovL2JvdXRpcXVlLmxlbW9uZGUuZnIvbG9pc2lycy1ldC1wYXBldGVyaWUuaHRtbCN4dG9yPUFELTEwMw==" class="obf">Loisirs &amp; papeterie</span> </li>
+ <li> <span data-target="_blank" data-href="aHR0cDovL2JvdXRpcXVlLmxlbW9uZGUuZnIvcHJvbW9zLmh0bWwjeHRvcj1BRC0zNDU=" class="obf">Promotions</span> </li>
+ </ul>
+ <ul>
+ <li><strong>Partenaires Le Monde</strong></li>
+ <li> <span data-target="" data-href="aHR0cDovL3ZvaXR1cmUtb2NjYXNpb24ubGVtb25kZS5mcg==" class="obf">Annonces auto</span> </li>
+ <li> <span data-target="_blank" data-href="aHR0cDovL29mZnJlcy5vZmZyZXMtZW1wbG9pLm1vbnN0ZXIuZnIvP2NoPUxFTU9OREU=" class="obf">Annonces emploi</span> </li>
+ <li> <span data-target="" data-href="aHR0cDovL2ltbW9iaWxpZXIubGVtb25kZS5mci8=" class="obf">Annonces immo</span> </li>
+ <li> <span data-target="" data-href="aHR0cDovL2NvbXBhcmF0ZXVycy1iYW5xdWVzLmxlbW9uZGUuZnIv" class="obf">Comparateur de banques</span> </li>
+ <li> <span data-target="" data-href="aHR0cDovL2NyZWRpdC5sZW1vbmRlLmZyLw==" class="obf">Comparateur de crédit</span> </li>
+ <li> <span data-target="" data-href="aHR0cDovL2FuZ2xhaXMubGVtb25kZS5mci8=" class="obf">Cours d’anglais</span> </li>
+ <li> <span data-target="" data-href="aHR0cDovL21vZGVsZS1sZXR0cmUubGVtb25kZS5mci8=" class="obf">Modèles de lettres</span> </li>
+ <li> <span data-target="" data-href="aHR0cDovL3ByaXgtaW1tb2JpbGllci5sZW1vbmRlLmZyL3ByaXgtaW1tb2JpbGllci8=" class="obf">Prix de l’immobilier</span> </li>
+ <li> <span data-target="" data-href="aHR0cDovL3Nob3BwaW5nLmxlbW9uZGUuZnI=" class="obf">Shopping</span> </li>
+ </ul>
+ </div>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div id="header_utilisateur">
+ <div class="conteneur_haut clearfix">
+ <div class="tcell"> <a class="logo_lm_small" href="/">Le Monde.fr</a>
+ <div class="menu_lma_lmfr">
+ <ul>
+ <li><span>Édition globale</span></li>
+ <li><span data-href="L2FmcmlxdWUv" onclick="return xt_click(this,'C',lmd.context.page.xiti.xtn2,'edition_afrique','N')" class="obf">Édition afrique</span></li>
+ </ul>
+ </div>
+ <form name="recherche" action="/recherche/" method="get" class="recherche">
+ <p>
+ <label for="recherche_globale" class="cache">Rechercher&nbsp;:</label>
+ <input type="search" name="keywords" id="recherche_globale" placeholder="Rechercher"/>
+ <input type="hidden" name="qt" value="recherche_globale"/>
+ <input type="submit" value="rechercher" class="loupe"/> </p>
+ </form>
+ </div>
+ <div class="tcell">
+ <div class="sociaux">
+ <div id="header_facebook" class="fb20x20 facebook lien_social_header"> <span class="ico">Facebook</span>
+ <div class="conteneur_popinbox">
+ <div class="popinbox">
+ <div id="header_facebook_contenu" data-href="http://www.facebook.com/lemonde.fr" data-width="292" data-show-faces="true" data-stream="false" data-header="false" data-border-color="#D2D6DB"> </div>
+ </div>
+ </div>
+ </div>
+ <div id="header_twitter" class="tw20x20 twitter lien_social_header"> <span class="ico">Twitter</span>
+ <div class="conteneur_popinbox">
+ <div class="popinbox">
+ <div id="header_twitter_contenu"> <span class="block txt4">Suivre le Monde sur Twitter</span>
+ <div class="liste_img_lien"> <span data-target="_blank" data-href="aHR0cDovL3R3aXR0ZXIuY29tL2xlbW9uZGVmcg==" class="block obf">
+ <img data-n-src="//s1.lemde.fr/medias/web/1.2.671/img/pictos/twitter_lemonde.jpg" alt="Avatar lemonde.fr" width="48" height="48" class="radius5"/></span> <span data-target="_blank" data-href="aHR0cDovL3R3aXR0ZXIuY29tL2xlbW9uZGVmcg==" class="block obf">@lemondefr</span> <span data-href="aHR0cDovL3R3aXR0ZXIuY29tL2xlbW9uZGVmcg==" class="twitter-follow-button obf">Suivre @lemondefr</span> </div>
+ </div>
+ </div>
+ </div>
+ </div> <span data-target="_blank" data-href="aHR0cDovL3BsdXMuZ29vZ2xlLmNvbS8xMDk3NTU4MzQwMzgwNTE0NjA2Nzg=" class="google20x20 obf" title="Suivez LeMonde.fr sur Google+" id="header_google">
+ <span class="ico">Google+</span> </span>
+ </div> <span data-href="L2VtcGxvaS8=" class="lien_promo obf" onclick="return xt_click(this, 'N', lmd.context.page.xiti.xtn2, 'Lien_emploi_header' ,'N');" id="ln_monde_academie">Emploi</span> <span data-href="aHR0cHM6Ly93d3dzLmxlbW9uZGUuZnIvYWNjb3VudC8/cm91dGU9bmV3c2xldHRlcnM=" class="nl js_trigger_login_register obf" data-route="newsletters" data-xtclick="tunnel_inscription_2014::lien_header::recevez_nos_newsletters">Newsletters</span>
+ <p class="meteo js_meteo" style="display:none"> <span data-href="L3ZvdHJlX2NvbXB0ZS8jbWV0ZW8=" class="ville-meteo obf" title="Choisissez d'afficher la météo de vos villes fétiches">Affichez ici la météo de votre ville</span> </p>
+ <div class="js_identifiant"> <span data-href="aHR0cHM6Ly93d3dzLmxlbW9uZGUuZnIvYWNjb3VudC8/cm91dGU9bmV3c2xldHRlcnM=" class="inscrire js_trigger_login_register obf" id="btn_inscription" data-route="newsletters" data-xtclick="tunnel_inscription_2014::lien_header::inscrivez_vous"><span>S'inscrire</span></span> <span data-href="aHR0cHM6Ly93d3dzLmxlbW9uZGUuZnIvYWNjb3VudC8/cm91dGU9Y29ubmV4aW9u" class="identifier js_trigger_login_register obf" id="btn_identification" data-route="connexion" data-xtclick="tunnel_inscription_2014::lien_header::connexion">Connexion</span> </div>
+ </div>
+ </div>
+ </div>
+ </header>
+ <script>
+ require(["lmd/core/auth", "lmd/ui/header/header"], function(a, b) {
+ a.loadUser().done(function() {
+ b.init();
+ })
+ });
+ require(["lmd/module/acces-non-abonne"], function(a) {
+ a.init();
+ });
+ </script>
+ <nav id="nav" class="pixels pixels ">
+ <ul>
+ <li class="accueil"> <a data-bypass="false" data-rubrique-title="A la une" data-rubrique-id="3208" href="/"><i class="maison">Accueil</i></a> </li>
+ <li class="international"> <a data-bypass="false" data-rubrique-title="International" data-rubrique-id="3210" href="/international/">International</a> </li>
+ <li class="politique"> <a data-bypass="false" data-rubrique-title="Politique" data-rubrique-id="823448" href="/politique/">Politique</a> </li>
+ <li class="societe"> <a data-bypass="false" data-rubrique-title="Société" data-rubrique-id="3224" href="/societe/">Société</a> </li>
+ <li class="economie"> <a data-bypass="false" data-rubrique-title="Économie" data-rubrique-id="3234" href="/economie/">Éco</a> </li>
+ <li class="culture"> <a data-bypass="false" data-rubrique-title="Culture" data-rubrique-id="3246" href="/culture/">Culture</a> </li>
+ <li class="idees"> <a data-bypass="false" data-rubrique-title="Idées" data-rubrique-id="3232" href="/idees/">Idées</a> </li>
+ <li class="planete"> <a data-bypass="false" data-rubrique-title="Planète" data-rubrique-id="3244" href="/planete/">Planète</a> </li>
+ <li class="sport"> <a data-bypass="false" data-rubrique-title="Sport" data-rubrique-id="3242" href="/sport/">Sport</a> </li>
+ <li class="sciences"> <a data-bypass="false" data-rubrique-title="Sciences" data-rubrique-id="1650684" href="/sciences/">Sciences</a> </li>
+ <li class="pixels actif"> <a data-bypass="false" data-rubrique-title="Pixels" data-rubrique-id="4408996" href="/pixels/">Techno</a> </li>
+ <li class="campus"> <a data-bypass="false" data-rubrique-title="Campus" data-rubrique-id="4401467" href="/campus/">Campus</a> </li>
+ <li class="m-mag"> <a data-bypass="false" data-rubrique-title="M le mag" data-rubrique-id="4500055" href="/m-le-mag/">Le Mag</a> </li>
+ <li class="abonnes"> <a data-bypass="false" data-rubrique-title="Édition Abonnés" data-rubrique-id="1667658" href="/teaser/?clef=BARNAV14" onclick="return xt_click(this, 'C', lmd.context.page.xiti.xtn2, 'entrees_tunnel_abo::bar_nav','N');">Édition Abonnés</a> </li>
+ </ul>
+ </nav>
+ <script>
+ require(['jquery'], function($) {
+ $("#nav li").on('click', onNavItemClick);
+
+ function onNavItemClick(event) {
+ var classAttr,
+ className,
+ prefixXiti;
+ classAttr = $(event.target).closest("li").attr("class");
+ // If li tag has no class attributes or if class attribute is empty
+ if ($.trim(classAttr).length === 0) {
+ return;
+ }
+ className = classAttr.split(/\s+/)[0];
+ prefixXiti = (lmd.context.application === "www" ? "barre_nav_" : "barre_nav_abo_");
+ if (typeof xt_click === "function") {
+ xt_click(this, 'C', lmd.context.page.xiti.xtn2, prefixXiti + className, 'N');
+ }
+ }
+ });
+ </script>
+ <div class="position_pub habillage" data-adformat="habillage" data-adsite="50270" data-adpage="444463" data-adquery="" data-adformat-id="21486">
+ <script>
+ //sas_manager.render(21486);
+ ADVERT_AD(['50270/444463', 21486, '', 'habillage', '']);
+ </script>
+ <noscript>
+ <a href="http://ww690.smartadserver.com/call/pubjumpi/50270/444463/21486/S/1430854052/?" target="_blank"> <img src="http://ww690.smartadserver.com/call/pubi/50270/444463/21486/S/1430854052/?" border="0" alt=""/></a>
+ </noscript>
+ </div>
+ <div class="position_pub top banniere" data-adformat="top" data-adsite="50270" data-adpage="444463" data-adquery="" data-adformat-id="21482">
+ <script>
+ //sas_manager.render(21482);
+ ADVERT_AD(['50270/444463', 21482, '', 'top', '']);
+ </script>
+ <noscript>
+ <a href="http://ww690.smartadserver.com/call/pubjumpi/50270/444463/21482/S/1430854052/?" target="_blank"> <img src="http://ww690.smartadserver.com/call/pubi/50270/444463/21482/S/1430854052/?" border="0" alt=""/></a>
+ </noscript>
+ </div>
+ <div class="ombrelle ombrelle_pixels">
+ <div class="container_18">
+ <div class="tt_rubrique_ombrelle"> <span class="m_titre"></span><a href="/pixels/" class="couleur_rubrique obf">Pixels</a> </div>
+ <nav>
+ <ul>
+ <li><a href="/vie-en-ligne/" class="tt5_capital">Vie en ligne</a></li>
+ <li><a href="/jeux-video/" class="tt5_capital">Jeux vidéo</a></li>
+ <li><a href="/banc-essai/" class="tt5_capital">Banc d'essai</a></li>
+ <li><a href="/cultures-web/" class="tt5_capital">Cultures Web</a></li>
+ </ul>
+ </nav>
+ </div>
+ </div>
+ <div class="global meter_global js_meter_global">
+ <div class="top_container_article"></div>
+ <div class="container_18 clearfix">
+ <div class="grid_12 alpha">
+ <div class="clearfix" style="background: #fff">
+ <div class="grid_10 alpha prefix_1 suffix_1 col_gauche">
+ <!-- col gauche -->
+ <article class="article article_normal" itemscope="" itemtype="http://schema.org/NewsArticle">
+ <h1 class="tt2" itemprop="Headline">Le projet de loi sur le renseignement massivement approuvé à l'Assemblée</h1>
+ <p class="bloc_signature"> <span id="publisher" itemprop="Publisher" data-source="Le Monde.fr">Le Monde</span> |
+ <time datetime="2015-05-04T13:36:31+02:00" itemprop="datePublished">04.05.2015 à 13h36</time> • Mis à jour le
+ <time datetime="2015-05-05T20:13:12+02:00" itemprop="dateModified">05.05.2015 à 20h13</time> | <span class="signature_article">
+Par <span itemprop="author" class="auteur txt2_120"> <a class="auteur" target="_blank" href="/journaliste/martin-untersinger/">Martin Untersinger</a> (avec Damien Leloup et Morgane Tual)
+ </span> </span>
+ </p>
+ <div class="toolbar"></div>
+ <div class="fb-like" data-send="true" data-show-faces="true" data-action="recommend" data-font="arial" data-width="534"> </div>
+ <div id="articleBody" class="contenu_article js_article_body" itemprop="articleBody">
+ <div class="video_player">
+ <iframe src="//www.dailymotion.com/embed/video/x2p552m?syndication=131181" frameborder="0" width="534" height="320"></iframe>
+ </div>
+ <p>Les députés ont, sans surprise, adopté à une large majorité (438 contre 86 et 42 abstentions) le projet de loi sur le renseignement défendu par le gouvernement lors d’un vote solennel, mardi&nbsp;5&nbsp;mai. Il sera désormais examiné par le Sénat, puis le Conseil constitutionnel, prochainement saisi par 75 députés. Dans un souci d'apaisement, François Hollande avait annoncé par avance qu'il saisirait les Sages.</p>
+ <p><strong>Revivez <a href="/pixels/live/2015/05/05/suivez-le-vote-de-la-loi-renseignement-en-direct_4628012_4408996.html">le direct du vote à l’Assemblée avec vos questions.</a></strong></p>
+ <p>Ont voté contre : 10 députés socialistes (sur 288), 35 UMP (sur 198), 11 écologistes (sur 18), 11 UDI (sur 30), 12 députés Front de gauche (sur 15) et 7 non-inscrits (sur 9). <a href="http://www2.assemblee-nationale.fr/scrutins/detail/%28legislature%29/14/%28num%29/1109">Le détail est disponible sur le site de l'Assemblée nationale.</a></p>
+ <p>Parmi les députés ayan voté contre figurent notamment des opposants de la première heure, comme l'UMP Laure de la Raudière ou l'écologiste Sergio Coronado, mais aussi quelques poids lourds de l'opposition comme Patrick Devedjian ou Claude Goasguen. A gauche, on trouve parmi les quelque opposants au texte Aurélie Filipetti. Christian Paul, qui avait été très actif lors d'autres débats sur les libertés numériques, s'est abstenu.</p>
+ <p>Pouria Amirshahi, député socialiste des Français de l'étranger qui a également voté contre, a annoncé qu'il transmettrait un «&nbsp;mémorandum argumenté » au Conseil constitutionnel et demanderait à se faire auditionner sur le projet de loi. D'autres députés ont prévu de faire la même démarche.</p>
+ <p>Ce texte, fortement décrié par la société civile pour son manque de contre-pouvoir et le caractère intrusif des techniques qu’il autorise, entend donner un cadre aux pratiques des services de renseignement, rendant légales certaines pratiques qui, jusqu’à présent, ne l’étaient pas.</p>
+ <p><u>Retour sur ses principales dispositions, après son passage en commission des lois et après le débat en séance publique.</u></p>
+ <h2 class="intertitre">Définition des objectifs des services</h2>
+ <p>Le projet de loi énonce les domaines que peuvent invoquer les services pour justifier leur surveillance. Il s’agit notamment, de manière attendue, de <em>«&nbsp;l’indépendance nationale, de l’intégrité du territoire et de la défense nationale&nbsp;»</em> et de<em> «&nbsp;la prévention du terrorisme&nbsp;»,</em> mais également des <em>«&nbsp;intérêts majeurs de la politique étrangère&nbsp;»,</em> ainsi que de la <em>«&nbsp;prévention des atteintes à la forme républicaine des institutions&nbsp;»</em> et de <em>«&nbsp;la criminalité et de la délinquance organisées&nbsp;»</em>. Des formulations parfois larges qui inquiètent les opposants au texte qui craignent qu’elles puissent permettre de surveiller des activistes ou des manifestants.</p>
+ <h2 class="intertitre">La Commission de contrôle</h2>
+ <p>Le contrôle de cette surveillance sera confié à une nouvelle autorité administrative indépendante, la Commission nationale de contrôle des techniques de renseignement (CNCTR), composée de six magistrats du Conseil d’Etat et de la Cour de cassation, de trois députés et trois sénateurs de la majorité et de l’opposition, et d’un expert technique. Elle remplacera l’actuelle Commission nationale de contrôle des interceptions de sécurité (CNCIS).</p>
+ <p>Elle délivrera son avis, sauf cas d’urgence, avant toute opération de surveillance ciblée. Deux types urgences sont prévus par la loi&nbsp;: d’un côté une <em>«&nbsp;urgence absolue&nbsp;»</em>, pour laquelle un agent pourra se passer de l’avis de la CNCTR mais pas de l’autorisation du premier ministre. De l’autre, une urgence opérationnelle extrêmement limitée, notamment en termes de techniques, à l’initiative du chef du service de renseignement, qui se passe de l’avis de la CNCTR. Ces cas d’urgence ne justifieront pas l’intrusion d’un domicile ni la surveillance d’un journaliste, un parlementaire ou un avocat. Dans ces cas, la procédure classique devra s’appliquer.</p>
+ <p>L’avis de la CNCTR ne sera pas contraignant, mais cette commission pourra saisir le Conseil d’Etat si elle estime que la loi n’est pas respectée et elle disposera de pouvoirs d’enquête. Ce recours juridictionnel est une nouveauté dans le monde du renseignement.</p>
+ <h2 class="intertitre">Les «&nbsp;boîtes noires&nbsp;»</h2>
+ <p>Une des dispositions les plus contestées de ce projet de loi prévoit de pouvoir contraindre les fournisseurs d’accès à Internet (FAI) à «&nbsp;<em>détecter une menace terroriste sur la base d’un traitement automatisé&nbsp;». </em>Ce dispositif –&nbsp;autorisé par le premier ministre par tranche de quatre mois&nbsp;– permettrait de détecter, en temps réel ou quasi réel, les personnes ayant une activité en ligne typique de «&nbsp;schémas&nbsp;» utilisés par les terroristes pour transmettre des informations.</p>
+ <p>En pratique, les services de renseignement pourraient installer chez les FAI une «&nbsp;boîte noire&nbsp;» surveillant le trafic. Le contenu des communications – qui resterait «&nbsp;anonyme&nbsp;» – ne serait pas surveillé, mais uniquement les métadonnées&nbsp;: origine ou destinataire d’un message, adresse IP d’un site visité, durée de la conversation ou de la connexion… Ces données ne seraient pas conservées.</p>
+ <p>La Commission nationale informatique et libertés<strong> </strong>(CNIL), qui critique fortement cette disposition. La CNIL soulève notamment que l’anonymat de ces données est très relatif, puisqu’il peut être levé.</p>
+ <p class="lire">Lire aussi&nbsp;: <a href="/pixels/article/2015/03/18/les-critiques-de-la-cnil-contre-le-projet-de-loi-sur-le-renseignement_4595839_4408996.html">Les critiques de la CNIL contre le projet de loi sur le renseignement</a> </p>
+ <p>Le dispositif introduit une forme de «&nbsp;pêche au chalut&nbsp;» –&nbsp;un brassage très large des données des Français à la recherche de quelques individus. Le gouvernement se défend de toute similarité avec les dispositifs mis en place par la NSA américaine, arguant notamment que les données ne seront pas conservées et que cette activité sera contrôlée par une toute nouvelle commission aux moyens largement renforcés. Il s’agit cependant d’un dispositif très large, puisqu’il concernera tous les fournisseurs d’accès à Internet, et donc tous les internautes français.</p>
+ <h2 class="intertitre">L’élargissement de la surveillance électronique pour détecter les «&nbsp;futurs&nbsp;» terroristes</h2>
+ <p>La surveillance des métadonnées sera aussi utilisée pour tenter de détecter de nouveaux profils de terroristes potentiels, prévoit le projet de loi. Le gouvernement considère qu’il s’agit d’une manière efficace de détecter les profils qui passent aujourd’hui <em>«&nbsp;entre les mailles du filet&nbsp;»</em>, par exemple des personnes parties en Syrie ou en Irak sans qu’aucune activité suspecte n’ait été décelée avant leur départ.</p>
+ <p>Pour repérer ces personnes, la loi permettra d’étendre la surveillance électronique à toutes les personnes en contact avec des personnes déjà suspectées. En analysant leurs contacts, la fréquence de ces derniers et les modes de communication, les services de renseignement espèrent pouvoir détecter ces nouveaux profils en amont.</p>
+ <h2 class="intertitre">De nouveaux outils et méthodes de collecte</h2>
+ <p>Les services pourront également procéder, après un avis de la CNCTR, à la pose de micros dans une pièce ou de mouchards sur un objet (voiture par exemple), ou à l’intérieur d’un ordinateur. L’utilisation des IMSI-catchers (fausses antennes qui permettent d’intercepter des conversations téléphoniques) est également légalisée, pour les services de renseignement, dans certains cas. Le nombre maximal de ces appareils sera fixé par arrêté du premier ministre après l’avis de la CNCTR.</p>
+ <p><strong>Lire&nbsp;: <a href="/pixels/article/2015/03/31/que-sont-les-imsi-catchers-ces-valises-qui-espionnent-les-telephones-portables_4605827_4408996.html">Que sont les IMSI-catchers, ces valises qui espionnent les téléphones portables&nbsp;?</a></strong></p>
+ <p>La loi introduit également des mesures de surveillance internationale&nbsp;: concrètement, les procédures de contrôle seront allégées lorsqu’un des «&nbsp;bouts&nbsp;» de la communication sera situé à l’étranger (concrètement, un Français qui parle avec un individu situé à l’étranger). Cependant, comme l’a souligné l’Arcep (l’Autorité de régulation des communications électroniques et des postes), sollicitée pour le versant technique de cette mesure, il est parfois difficile de s’assurer qu’une communication, même passant par l’étranger, ne concerne pas deux Français.</p>
+ <h2 class="intertitre">Un nouveau fichier</h2>
+ <p>La loi crée un fichier judiciaire national automatisé des auteurs d’infractions terroristes (Fijait), dont les données pourront être conservées pendant vingt ans.</p>
+ <p>Ce fichier concerne les personnes ayant été condamnées, même si une procédure d’appel est en cours. Les mineurs pourront aussi être inscrits dans ce fichier et leurs données conservées jusqu’à dix ans. L’inscription ne sera pas automatique et se fera sur décision judiciaire. Certaines mises en examen pourront aussi apparaître sur ce fichier. En cas de non-lieu, relaxe, acquittement, amnistie ou réhabilitation, ces informations seront effacées.</p>
+ <h2 class="intertitre">Renseignement pénitentiaire</h2>
+ <p>Le renseignement pénitentiaire pourra, dans des conditions qui seront fixées par décret, profiter des techniques que légalise le projet de loi pour les services de renseignement. La ministre de la justice, Christiane Taubira, était défavorable à cette disposition, soutenue par le rapporteur du texte, la droite et une partie des députés de gauche. Pour la ministre, cette innovation va dénaturer le renseignement pénitentiaire et le transformer en véritable service de renseignement.</p>
+ <h2 class="intertitre">Conservation des données</h2>
+ <p>La CNIL <a href="http://www.cnil.fr/fileadmin/documents/La_CNIL/actualite/Les_propositions_de_la_CNIL_sur_les_evolutions_de_la_loi_Informatique_et_Libertes.pdf">a fait part à plusieurs reprises de sa volonté</a> d’exercer sa mission de contrôle sur les fichiers liés au renseignement, qui seront alimentés par ces collectes. Ces fichiers sont aujourd’hui exclus du périmètre d’action de la CNIL.</p>
+ <p>La durée de conservation des données collectées –&nbsp;et l’adaptation de cette durée à la technique employée&nbsp;– a par ailleurs été inscrite dans la loi, contrairement au projet initial du gouvernement qui entendait fixer ces limites par décret. Elle pourra aller jusqu’à cinq ans dans le cas des données de connexion.</p>
+ <h2 class="intertitre">Un dispositif pour les lanceurs d’alerte</h2>
+ <p>La loi prévoit également une forme de protection pour les agents qui seraient témoins de surveillance illégale. Ces lanceurs d’alerte pourraient solliciter la CNCTR, voire le premier ministre, et leur fournir toutes les pièces utiles. La CNCTR pourra ensuite aviser le procureur de la République et solliciter la Commission consultative du secret de la défense nationale afin que cette dernière <em>«&nbsp;donne au premier ministre son avis sur la possibilité de déclassifier tout ou partie de ces éléments&nbsp;»</em>. Aucune mesure de rétorsion ne pourra viser l’agent qui aurait dénoncé des actes potentiellement illégaux.</p>
+ </div>
+ <p itemprop="author" class="auteur txt2_120"></p>
+ <div class="bg_gris_moyen signature">
+ <ul class="liste_bordure">
+ <li class="clearfix" itemprop="author"> <span class="identite">
+
+
+ <a href="/journaliste/martin-untersinger/" target="_blank">
+<img data-placeholder="true" width="24" height="24" data-src="http://s1.lemde.fr/image/2014/04/18/24x24/1100512060_4_989c_13978271609841-0kab-c47_a068f1501374eefd42e6bb2cac94b37a.jpg" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-lazyload="true" onload="lmd.pic(this);" onerror="lmd.pic(this);" class="lazy-retina" alt=" "/>
+ </a>
+
+
+ <a href="/journaliste/martin-untersinger/" target="_blank" class="gras">Martin Untersinger</a> (avec Damien Leloup et Morgane Tual)
+
+ <br/><span class="txt_gris_clair">Journaliste au Monde</span> </span> <span class="suivre">
+ <strong class="txt1 txt_gris_moyen">Suivre</strong>
+ <a href="/journaliste/martin-untersinger/" class="avatar13x13" target="_blank">Aller sur la page de ce journaliste</a>
+
+ <a href="https://twitter.com/martin_u" class="tw13x13">Suivre ce journaliste sur twitter</a>
+
+ </span> </li>
+ </ul>
+ </div>
+ <p></p>
+ </article>
+ <div class="position_pub" data-adformat="web_partenaire" data-adsite="50270" data-adpage="444463" data-adquery="" data-adformat-id="23371">
+ <script>
+ //sas_manager.render(23371);
+ ADVERT_AD(['50270/444463', 23371, '', 'web_partenaire', '']);
+ </script>
+ <noscript>
+ <a href="http://ww690.smartadserver.com/call/pubjumpi/50270/444463/23371/S/1430854051/?" target="_blank"> <img src="http://ww690.smartadserver.com/call/pubi/50270/444463/23371/S/1430854051/?" border="0" alt=""/></a>
+ </noscript>
+ </div>
+ <div class="position_pub" data-adformat="web_partenaire_2" data-adsite="50270" data-adpage="444463" data-adquery="" data-adformat-id="23885">
+ <script>
+ //sas_manager.render(23885);
+ ADVERT_AD(['50270/444463', 23885, '', 'web_partenaire_2', '']);
+ </script>
+ <noscript>
+ <a href="http://ww690.smartadserver.com/call/pubjumpi/50270/444463/23885/S/1430854051/?" target="_blank"> <img src="http://ww690.smartadserver.com/call/pubi/50270/444463/23885/S/1430854051/?" border="0" alt=""/></a>
+ </noscript>
+ </div>
+ <div class="fb-like" data-send="true" data-show-faces="true" data-action="recommend" data-font="arial" data-width="534"> </div>
+ <div class="toolbar"></div>
+ </div>
+ </div>
+ <div class="clearfix">
+ <div class="grid_10 alpha prefix_1 suffix_1 col_gauche">
+ <aside class="bloc_base meme_sujet"> <span class="entete txt6">Loi sur le renseignement</span>
+ <div class="contenu">
+ <ul class="liste_chevron">
+ <li><a href="/pixels/video/2015/05/05/la-loi-sur-le-renseignement-expliquee-en-patates_4627580_4408996.html">La loi sur le renseignement expliquée en patates
+
+<span class="type_element mgl5"><span class="ico_video_mini"></span>Vidéo</span>
+</a></li>
+ <li><a href="/pixels/article/2015/05/05/loi-renseignement-comment-vont-voter-les-deputes_4628124_4408996.html">Loi sur le renseignement : comment vont voter les députés ?
+
+
+</a></li>
+ <li><a href="/pixels/article/2015/04/15/pourquoi-la-loi-sur-le-renseignement-cristallise-les-critiques_4615766_4408996.html">Pourquoi la loi sur le renseignement cristallise les critiques
+
+
+</a></li>
+ </ul>
+ </div> <span class="entete_exclu_abonnes"><em class="txt_img">Édition abonnés Contenu exclusif</em></span>
+ <div class="contenu">
+ <ul class="liste_chevron">
+ <li><a href="/politique/article/2015/05/05/jean-jacques-urvoas-grand-ordonnateur-d-un-texte-controverse_4627934_823448.html">Loi renseignement : Urvoas, grand ordonnateur d’un texte controversé
+
+
+</a></li>
+ <li><a href="/decryptages/article/2015/04/17/renseignement-l-aveuglement-francais_4617928_1668393.html">Renseignement : l’aveuglement français
+
+
+</a></li>
+ <li><a href="/politique/article/2015/04/16/taubira-une-ministre-dans-la-tempete_4616851_823448.html">Taubira, une ministre dans la tempête
+
+
+</a></li>
+ </ul>
+ </div>
+ <p class="bt"><span data-href="L2Fiby8/YW1wO2NsZWY9QkxPQ0FCT0FSVEJBUzE0" class="btn_abo obf" onclick="return xt_click(this, 'C', lmd.context.page.xiti.xtn2, 'Clic_Abonnement','N');" title="Abonnez-vous au Monde à partir de 1 €">Abonnez-vous à partir de 1 €</span></p>
+ </aside>
+ <div class="reco_cross_site_outbrain">
+ <div class="OUTBRAIN" data-src="http://www.lemonde.fr/pixels/article/2015/05/04/que-contient-la-loi-sur-le-renseignement_4627068_4408996.html" data-widget-id="AR_15" data-ob-template="lemonde"></div>
+ <div class="OUTBRAIN" data-src="http://www.lemonde.fr/pixels/article/2015/05/04/que-contient-la-loi-sur-le-renseignement_4627068_4408996.html" data-widget-id="AR_16" data-ob-template="lemonde"></div>
+ </div>
+ <div id="liste_reactions">
+ <div id="aj-027bb3" data-aj-uri="/ajah/5m/lemonde/www/Controller_Module_Reaction_Element/actionAfficherPreview/WzQ/2Mj/cwN/jgsNV0-/?key=6a2a749556adf5b6475ca7dbc1b1b50eccb76169"></div>
+ <script>
+ require(["jquery", "lib/jquery/plugin/jquery.ajah"], function($) {
+ $("#aj-027bb3").ajah({
+ url: "/ajah/5m/lemonde/www/Controller_Module_Reaction_Element/actionAfficherPreview/WzQ/2Mj/cwN/jgsNV0-/?key=6a2a749556adf5b6475ca7dbc1b1b50eccb76169"
+ })
+ });
+ </script>
+ </div>
+ <div class="rubriques_liees"> <a href="/piratage-de-sony-pictures/">Piratage de Sony Pictures</a> ▪ <a href="/fibre-optique/">Fibre optique</a> ▪ <a href="/gouvernance-du-net/">Gouvernance du Net</a> ▪ <a href="/the-surveillance-files/">The surveillance files</a> ▪ <a href="/neutralite-du-net/">Neutralité du Net</a> ▪ <a href="/sxsw/">SXSW</a> ▪ <a href="/hadopi/">Hadopi</a> ▪ <a href="/securite-informatique/">Sécurité informatique</a> ▪ <a href="/cyberespionnage/">Cyberespionnage</a> ▪ <a href="/drones/">Drones</a> </div>
+ </div>
+ </div>
+ </div>
+ <div class="grid_6 omega col_droite">
+ <div class="position_pub" data-adformat="pave_haut" data-adsite="50270" data-adpage="444463" data-adquery="" data-adformat-id="21483">
+ <script>
+ //sas_manager.render(21483);
+ ADVERT_AD(['50270/444463', 21483, '', 'pave_haut', '']);
+ </script>
+ <noscript>
+ <a href="http://ww690.smartadserver.com/call/pubjumpi/50270/444463/21483/S/1430854051/?" target="_blank"> <img src="http://ww690.smartadserver.com/call/pubi/50270/444463/21483/S/1430854051/?" border="0" alt=""/></a>
+ </noscript>
+ </div>
+ <div id="aj-c65b1e" data-aj-uri="/ajah/5m/lemonde/www/Controller_Module_Social_Pluspartages/actionAfficher/W3R/ydW/Vd/EMPTY/?key=e9c1df2637b3a3d3a2ba3035fdd06a727446de91"></div>
+ <script>
+ require(["jquery", "lib/jquery/plugin/jquery.ajah"], function($) {
+ $("#aj-c65b1e").ajah({
+ url: "/ajah/5m/lemonde/www/Controller_Module_Social_Pluspartages/actionAfficher/W3R/ydW/Vd/EMPTY/?key=e9c1df2637b3a3d3a2ba3035fdd06a727446de91"
+ })
+ });
+ </script>
+ <div class="position_pub" data-adformat="pave_milieu" data-adsite="50270" data-adpage="444463" data-adquery="" data-adformat-id="21484">
+ <script>
+ //sas_manager.render(21484);
+ ADVERT_AD(['50270/444463', 21484, '', 'pave_milieu', '']);
+ </script>
+ <noscript>
+ <a href="http://ww690.smartadserver.com/call/pubjumpi/50270/444463/21484/S/1430854051/?" target="_blank"> <img src="http://ww690.smartadserver.com/call/pubi/50270/444463/21484/S/1430854051/?" border="0" alt=""/></a>
+ </noscript>
+ </div>
+ <div id="aj-6e587e" data-aj-uri="/ajah/5m/lemonde/www/Controller_Module_Abonnes_AppelJelec/actionAfficher/W3R/ydW/UsI/kJMT0NBQk9BUlRDT0xEUjE0Il0-/?key=8b6254c0b89102f0d95ade6fd5204a54dd7769ba"></div>
+ <script>
+ require(["jquery", "lib/jquery/plugin/jquery.ajah"], function($) {
+ $("#aj-6e587e").ajah({
+ url: "/ajah/5m/lemonde/www/Controller_Module_Abonnes_AppelJelec/actionAfficher/W3R/ydW/UsI/kJMT0NBQk9BUlRDT0xEUjE0Il0-/?key=8b6254c0b89102f0d95ade6fd5204a54dd7769ba"
+ })
+ });
+ </script>
+ <div class="bloc_part outbrain">
+ <div class="OUTBRAIN" data-src="http://www.lemonde.fr/pixels/article/2015/05/04/que-contient-la-loi-sur-le-renseignement_4627068_4408996.html" data-widget-id="SB_2" data-ob-template="lemonde"></div>
+ <div class="OUTBRAIN" data-src="http://www.lemonde.fr/pixels/article/2015/05/04/que-contient-la-loi-sur-le-renseignement_4627068_4408996.html" data-widget-id="SB_3" data-ob-template="lemonde"></div>
+ </div>
+ <div id="aj-7b102b" data-aj-uri="/ajah/5m/lemonde/web/Controller_Module_Zone_Rotation/actionAfficherTypeZone/WzQ/0MD/g5O/TYsInpvbmVfY29sb25uZV9iaXpkZXZfZWx0MSIsMV0-/?key=8b6c485ed551454bda7fa41f7661dc53ba2f64d2"></div>
+ <script>
+ require(["jquery", "lib/jquery/plugin/jquery.ajah"], function($) {
+ $("#aj-7b102b").ajah({
+ url: "/ajah/5m/lemonde/web/Controller_Module_Zone_Rotation/actionAfficherTypeZone/WzQ/0MD/g5O/TYsInpvbmVfY29sb25uZV9iaXpkZXZfZWx0MSIsMV0-/?key=8b6c485ed551454bda7fa41f7661dc53ba2f64d2"
+ })
+ });
+ </script>
+ <div id="aj-fd73d2" data-aj-uri="/ajah/5m/lemonde/web/Controller_Module_Zone_Rotation/actionAfficherTypeZone/WzM/yMD/gsI/npvbmVfcHJvbW90aW9uX2VkaXRvIiwxXQ--/?key=087f8b8a2e844eff33cf3a844722ba4ccfa9e3c6"></div>
+ <script>
+ require(["jquery", "lib/jquery/plugin/jquery.ajah"], function($) {
+ $("#aj-fd73d2").ajah({
+ url: "/ajah/5m/lemonde/web/Controller_Module_Zone_Rotation/actionAfficherTypeZone/WzM/yMD/gsI/npvbmVfcHJvbW90aW9uX2VkaXRvIiwxXQ--/?key=087f8b8a2e844eff33cf3a844722ba4ccfa9e3c6"
+ })
+ });
+ </script>
+ <div class="position_pub" data-adformat="pave_bas" data-adsite="50270" data-adpage="444463" data-adquery="" data-adformat-id="21485">
+ <script>
+ //sas_manager.render(21485);
+ ADVERT_AD(['50270/444463', 21485, '', 'pave_bas', '']);
+ </script>
+ <noscript>
+ <a href="http://ww690.smartadserver.com/call/pubjumpi/50270/444463/21485/S/1430854051/?" target="_blank"> <img src="http://ww690.smartadserver.com/call/pubi/50270/444463/21485/S/1430854051/?" border="0" alt=""/></a>
+ </noscript>
+ </div>
+ <div id="aj-d4766b" data-aj-uri="/ajah/5m/lemonde/web/Controller_Module_Zone_Rotation/actionAfficherTypeZone/WzQ/0MD/g5O/TYsInpvbmVfY29sb25uZV9iaXpkZXZfZWx0MiIsMV0-/?key=442ca578128c98ed51d421440c92c87a913030b9"></div>
+ <script>
+ require(["jquery", "lib/jquery/plugin/jquery.ajah"], function($) {
+ $("#aj-d4766b").ajah({
+ url: "/ajah/5m/lemonde/web/Controller_Module_Zone_Rotation/actionAfficherTypeZone/WzQ/0MD/g5O/TYsInpvbmVfY29sb25uZV9iaXpkZXZfZWx0MiIsMV0-/?key=442ca578128c98ed51d421440c92c87a913030b9"
+ })
+ });
+ </script>
+ <div class="position_pub noborder" data-adformat="web_partenariat" data-adsite="50270" data-adpage="444463" data-adquery="" data-adformat-id="22396">
+ <script>
+ //sas_manager.render(22396);
+ ADVERT_AD(['50270/444463', 22396, '', 'web_partenariat', '']);
+ </script>
+ <noscript>
+ <a href="http://ww690.smartadserver.com/call/pubjumpi/50270/444463/22396/S/1430854051/?" target="_blank"> <img src="http://ww690.smartadserver.com/call/pubi/50270/444463/22396/S/1430854051/?" border="0" alt=""/></a>
+ </noscript>
+ </div>
+ <div class="position_pub noborder" data-adformat="logo_texte" data-adsite="50270" data-adpage="444463" data-adquery="" data-adformat-id="21492">
+ <script>
+ //sas_manager.render(21492);
+ ADVERT_AD(['50270/444463', 21492, '', 'logo_texte', '']);
+ </script>
+ <noscript>
+ <a href="http://ww690.smartadserver.com/call/pubjumpi/50270/444463/21492/S/1430854051/?" target="_blank"> <img src="http://ww690.smartadserver.com/call/pubi/50270/444463/21492/S/1430854051/?" border="0" alt=""/></a>
+ </noscript>
+ </div>
+ </div>
+ </div>
+ <!-- #WALL -->
+ </div>
+ <!-- #TOASTER -->
+ <script>
+ require(["lmd/module/element/bootstrap"], function(bootstrap) {
+ var params = {};
+ params.toolbar = {};
+ params.toolbar.envoyer = {
+ link: "http://www.lemonde.fr/envoyer-par-email/article/2015/05/04/4627068.html"
+ };
+ params.toolbar.imprimer = {
+ active: true
+ };
+ bootstrap.init(params);
+ });
+ </script>
+ <div class="OUTBRAIN" data-src="http://www.lemonde.fr/pixels/article/2015/05/04/que-contient-la-loi-sur-le-renseignement_4627068_4408996.html" data-widget-id="TR_1" data-ob-template="lemonde" style="display:none"></div>
+ <script>
+ require(['lmd/core/ux/outbrain'], function(ob) {
+ ob.load();
+ });
+ </script>
+ <div class="position_pub" data-adformat="bottom" data-adsite="50270" data-adpage="444463" data-adquery="" data-adformat-id="21488">
+ <script>
+ //sas_manager.render(21488);
+ ADVERT_AD(['50270/444463', 21488, '', 'bottom', '']);
+ </script>
+ <noscript>
+ <a href="http://ww690.smartadserver.com/call/pubjumpi/50270/444463/21488/S/1430854052/?" target="_blank"> <img src="http://ww690.smartadserver.com/call/pubi/50270/444463/21488/S/1430854052/?" border="0" alt=""/></a>
+ </noscript>
+ </div>
+ <div id="aj-93f310" data-aj-uri="/ajah/5m/lemonde/web/Controller_Module_Deroule_Bloc_Paves/actionAfficherBizdevOffre/WzQ/0MD/g5O/TYsdHJ1ZV0-/?key=5652f682d8b9b0b77268891a96feddeaec2be194"></div>
+ <script>
+ require(["jquery", "lib/jquery/plugin/jquery.ajah"], function($) {
+ $("#aj-93f310").ajah({
+ url: "/ajah/5m/lemonde/web/Controller_Module_Deroule_Bloc_Paves/actionAfficherBizdevOffre/WzQ/0MD/g5O/TYsdHJ1ZV0-/?key=5652f682d8b9b0b77268891a96feddeaec2be194"
+ })
+ });
+ </script>
+ <div id="aj-704004" data-aj-uri="/ajah/5m/lemonde/www/Controller_Module_General_Footer_Serviciel/actionAfficher/WyJ/SVU/JSS/VFVRV9TRVJWSUNFUyJd/?key=48ef2c0f4847cd071d1f0a44fc735c67dafe3a50"></div>
+ <script>
+ require(["jquery", "lib/jquery/plugin/jquery.ajah"], function($) {
+ $("#aj-704004").ajah({
+ url: "/ajah/5m/lemonde/www/Controller_Module_General_Footer_Serviciel/actionAfficher/WyJ/SVU/JSS/VFVRV9TRVJWSUNFUyJd/?key=48ef2c0f4847cd071d1f0a44fc735c67dafe3a50"
+ })
+ });
+ </script>
+ <div id="footer">
+ <div class="footer_gratuit txt3"> <span data-href="aHR0cDovL3d3dy5sZW1vbmRlLmZyL2Fiby8/Y2xlZj1MVF9GT09URVJIT01FMTQ=" class="zone_abo obf" onclick="return xt_click(this, 'C', lmd.context.page.xiti.xtn2, 'Clic_Abonnement','N');">
+ <div class="abonnement">
+ <p class="contenu">
+ <span>Le monde abonnements</span> Profitez du journal où et quand vous voulez. Abonnements papier, offres 100 % numériques sur Web et tablette. </p>
+ <p class="bt"> <span class="btn">S'abonner au Monde à partir de 1 €</span> </p>
+ </div> <img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" width="350" height="155" alt=" " data-src="//s1.lemde.fr/medias/web/1.2.671/img/elements_lm/footer_supports.png" data-lazyload="true" onload="lmd.pic(this);" onerror="lmd.pic(this);" class="lazy-retina"/></span>
+ <div class="deja_abonne">
+ <div> <span class="accroche">Déjà abonné au<br/>journal <em>Le Monde</em> ?</span>
+ <ul>
+ <li><span data-target="_blank" data-href="aHR0cDovL3d3dy5sZW1vbmRlLmZyL3dlYi9hYm9wYXBpZXIvMSwyNy0wLDEtMCwwLmh0bWw=" class="obf">Activez votre accès à l'Édition abonnés du Monde.fr</span></li>
+ <li><span data-target="_blank" data-href="aHR0cDovL21vbmFiby5sZW1vbmRlLmZyLyN4dG9yPUFELTMyMjgwMDYx" class="obf">Gérez votre abonnement</span></li>
+ </ul>
+ </div> <img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" width="123" height="78" alt=" " data-src="//s1.lemde.fr/medias/web/1.2.671/img/elements_lm/footer_journaux.png" data-lazyload="true" onload="lmd.pic(this);" onerror="lmd.pic(this);" class="lazy-retina"/> </div>
+ </div>
+ <div class="footer_listes">
+ <div> <span class="titre">Les rubriques du Monde.fr</span> <span data-target="" data-href="L2ludGVybmF0aW9uYWwv" class="obf">International</span> ▪ <span data-target="" data-href="L3BvbGl0aXF1ZS8=" class="obf">Politique</span> ▪ <span data-target="" data-href="L3NvY2lldGUv" class="obf">Société</span> ▪ <span data-target="" data-href="L2Vjb25vbWllLw==" class="obf">Économie</span> ▪ <span data-target="" data-href="L2N1bHR1cmUv" class="obf">Culture</span> ▪ <span data-target="" data-href="L3Nwb3J0Lw==" class="obf">Sport</span> ▪ <span data-target="" data-href="L3BpeGVscy8=" class="obf">Techno</span> ▪ <span data-target="" data-href="L3N0eWxlLw==" class="obf">Style</span> ▪ <span data-target="" data-href="L3ZvdXMv" class="obf">Vous</span> ▪ <span data-target="" data-href="L2lkZWVzLw==" class="obf">Idées</span> ▪ <span data-target="" data-href="L3BsYW5ldGUv" class="obf">Planète</span> ▪ <span data-target="" data-href="L2VkdWNhdGlvbi8=" class="obf">Éducation</span> ▪ <span data-target="" data-href="L2Rpc3Bhcml0aW9ucy8=" class="obf">Disparitions</span> ▪ <span data-target="" data-href="L3NhbnRlLw==" class="obf">Santé</span> ▪ <span data-target="" data-href="L21vbmRlLWFjYWRlbWllLw==" class="obf">Monde Académie</span> </div>
+ <div> <span class="titre">Les services du Monde</span> <span data-target="_blank" data-href="aHR0cDovL2JvdXRpcXVlLmxlbW9uZGUuZnIvI3h0b3I9QUQtOQ==" class="obf">La boutique du Monde</span> ▪ <span data-target="_blank" data-href="aHR0cDovL2xlbW9uZGUtaG90ZWxzLmZyLyN4dG9yPUFELTE3" class="obf">Le Monde dans les hôtels</span> ▪ <span data-target="" data-href="aHR0cDovL2FuZ2xhaXMubGVtb25kZS5mcg==" class="obf">Cours d'anglais</span> ▪ <span data-target="" data-href="aHR0cDovL3ZvaXR1cmUtb2NjYXNpb24ubGVtb25kZS5mcg==" class="obf">Annonces auto</span> ▪ <span data-target="" data-href="aHR0cDovL2ltbW9iaWxpZXIubGVtb25kZS5mci8=" class="obf">Annonces immo</span> ▪ <span data-target="" data-href="aHR0cDovL3Nob3BwaW5nLmxlbW9uZGUuZnI=" class="obf">Shopping</span> ▪ <span data-target="" data-href="aHR0cDovL2NyZWRpdC5sZW1vbmRlLmZyLw==" class="obf">Comparateur crédit</span> ▪ <span data-target="" data-href="aHR0cDovL2RldmlzLXRyYXZhdXgubGVtb25kZS5mci8=" class="obf">Devis travaux</span> ▪ <span data-target="" data-href="aHR0cDovL2Nvbmp1Z2Fpc29uLmxlbW9uZGUuZnI=" class="obf">Conjugaison</span> ▪ <span data-target="" data-href="L3Byb2dyYW1tZS10ZWxlLw==" class="obf">Programme télé</span> ▪ <span data-target="" data-href="L2pldXgv" class="obf">Jeux</span> ▪ <span data-target="" data-href="L21ldGVvLw==" class="obf">Météo</span> ▪ <span data-target="" data-href="L3ByYXRpcXVlL3RyYWZpYy1pZGYuaHRtbA==" class="obf">Trafic</span> ▪ <span data-target="" data-href="aHR0cDovL3ByaXgtaW1tb2JpbGllci5sZW1vbmRlLmZyL3ByaXgtaW1tb2JpbGllci8=" class="obf">Prix de l'immobilier</span> ▪ <span data-target="_blank" data-href="aHR0cHM6Ly93d3cuc291cmNlc3VyZS5ldS8=" class="obf">Source Sûre</span> ▪ <span data-target="" data-href="L2NhcnRlLWRlcGFydGVtZW50cy8=" class="obf">Carte des départements</span> </div>
+ <div id="links_partenaires"> <span class="titre">Sur le web</span>
+ <ul>
+ <li>› <a href="http://boutique.telerama.fr/index.php/dvd-et-cd.html" target="_blank">Coffret dvd</a></li>
+ <li>› <a href="http://www.telerama.fr/festival-de-cannes/" target="_blank">Festival de Cannes 2014</a></li>
+ <li>› <a href="http://sortir.telerama.fr/paris/bars.php" target="_blank">Bars à Paris</a></li>
+ <li>› <a href="http://recherche.telerama.fr/recherche/recherche_salles.php?ecrivez=ugc" target="_blank">Cinéma UGC</a></li>
+ <li>› <a href="http://television.telerama.fr/tele/chaine-tv/tf1,192.php" target="_blank">Programme TV de TF1 en replay</a></li>
+ </ul>
+ <ul class="liens_partenaires">
+ <li>› <a href="http://boutique.telerama.fr/index.php/" target="_blank">Boutique culture</a></li>
+ <li>› <a href="http://television.telerama.fr/tele/chaine-tv/france-5,47.php" target="_blank">Programme TV de France 5 en replay</a></li>
+ <li>› <a href="http://television.telerama.fr/television/" target="_blank">Télévision</a></li>
+ <li>› <a href="http://recherche.telerama.fr/recherche/recherche_salles.php?ecrivez=pathe" target="_blank">Cinéma Pathé</a></li>
+ <li>› <a href="http://www.telerama.fr/livres/livre_prefredaction.php" target="_blank">Sélection de livres</a></li>
+ </ul>
+ </div>
+ <div> <span class="titre">Les sites du Groupe</span> <span data-target="" data-href="L3NlcnZpY2UvcXVpX3NvbW1lc19ub3VzX3RlbGVyYW1hLmh0bWw=" class="obf">Télérama.fr</span> ▪ <span data-target="" data-href="L3NlcnZpY2UvcXVpX3NvbW1lc19ub3VzX3RhbGVudHMuaHRtbA==" class="obf">Talents.fr</span> ▪ <span data-target="_blank" data-href="aHR0cDovL3d3dy5odWZmaW5ndG9ucG9zdC5mci8=" class="obf">Le Huffington Post</span> ▪ <span data-target="_blank" data-href="aHR0cDovL3d3dy5jb3VycmllcmludGVybmF0aW9uYWwuY29tLw==" class="obf">CourrierInternational.com</span> ▪ <span data-target="_blank" data-href="aHR0cDovL3d3dy5tb25kZS1kaXBsb21hdGlxdWUuZnIv" class="obf">Monde-Diplomatique.fr</span> ▪ <span data-target="_blank" data-href="aHR0cDovL3d3dy5sZW1vbmRlcHJvLmNvbS8=" class="obf">Les Rencontres professionnelles Le Monde</span> ▪ <span data-target="_blank" data-href="aHR0cDovL3d3dy5zZGxsZW1vbmRlLmZyLw==" class="obf">La Société des lecteurs du Monde</span> ▪ <span data-target="_blank" data-href="L2tpb3NxdWUvcmVjaGVyY2hlLw==" class="obf">Le Prix Le Monde de la recherche</span> </div>
+ </div>
+ <div class="footer_bas">
+ <div class="sociaux_suivre">
+ <h3 class="agauche">Suivez-nous</h3>
+ <p class="pictos"> <span data-target="_blank" data-href="aHR0cDovL3d3dy5mYWNlYm9vay5jb20vbGVtb25kZS5mcg==" class="fb20x20 obf">Facebook</span> <span data-target="_blank" data-href="aHR0cDovL3R3aXR0ZXIuY29tL2xlbW9uZGVmcg==" class="tw20x20 obf">Twitter</span> <span data-href="aHR0cHM6Ly9wbHVzLmdvb2dsZS5jb20vK0xlTW9uZGVmcg==" class="google20x20 obf">Google+</span> <span data-href="aHR0cDovL3d3dy5sZW1vbmRlLmZyL21vYmlsZS8=" class="mobile20x20 obf">Mobile</span> <span data-href="aHR0cDovL3d3dy5sZW1vbmRlLmZyL3Jzcy8=" class="rss20x20 obf">RSS</span> </p>
+ </div>
+ <p class="lien_nl"> <span data-href="aHR0cHM6Ly93d3dzLmxlbW9uZGUuZnIvYWNjb3VudC8/cm91dGU9bmV3c2xldHRlcnM=" class="nl js_trigger_login_register obf" data-route="newsletters">Recevez nos newsletters<span>&nbsp;</span> </span>
+ </p>
+ <p class="index"> Index actualité : <a href="/index-rubriques/A/">A</a> <a href="/index-rubriques/B/">B</a> <a href="/index-rubriques/C/">C</a> <a href="/index-rubriques/D/">D</a> <a href="/index-rubriques/E/">E</a> <a href="/index-rubriques/F/">F</a> <a href="/index-rubriques/G/">G</a> <a href="/index-rubriques/H/">H</a> <a href="/index-rubriques/I/">I</a> <a href="/index-rubriques/J/">J</a> <a href="/index-rubriques/K/">K</a> <a href="/index-rubriques/L/">L</a> <a href="/index-rubriques/M/">M</a> <a href="/index-rubriques/N/">N</a> <a href="/index-rubriques/O/">O</a> <a href="/index-rubriques/P/">P</a> <a href="/index-rubriques/Q/">Q</a> <a href="/index-rubriques/R/">R</a> <a href="/index-rubriques/S/">S</a> <a href="/index-rubriques/T/">T</a> <a href="/index-rubriques/U/">U</a> <a href="/index-rubriques/V/">V</a> <a href="/index-rubriques/W/">W</a> <a href="/index-rubriques/X/">X</a> <a href="/index-rubriques/Y/">Y</a> <a href="/index-rubriques/Z/">Z</a> </p>
+ </div>
+ <p class="copy"> <span data-target="" data-href="L3NlcnZpY2UvbGljZW5jZV9ldF9kcm9pdHNfZGVfcmVwcm9kdWN0aW9uLmh0bWw=" class="obf">© Le Monde.fr</span> | <span data-target="_blank" data-href="aHR0cDovL3d3dy5vamQtaW50ZXJuZXQuY29tL2NoaWZmcmVz" class="obf">Fréquentation certifiée par l'OJD</span> | <span data-target="" data-href="L3NlcnZpY2UvY29uZGl0aW9uc19nZW5lcmFsZXNfZGVfdmVudGUuaHRtbA==" class="obf">CGV</span> | <span data-target="" data-href="L3NlcnZpY2UvbWVudGlvbnNfbGVnYWxlcy5odG1s" class="obf">Mentions légales</span> | <span data-target="" data-href="L3NlcnZpY2UvcXVpX3NvbW1lc19ub3VzLmh0bWw=" class="obf">Qui sommes-nous ?</span> | <span data-target="" data-href="L2FjdHVhbGl0ZS1tZWRpYXMvYXJ0aWNsZS8yMDEwLzExLzAzL2xhLWNoYXJ0ZS1kLWV0aGlxdWUtZXQtZGUtZGVvbnRvbG9naWUtZHUtZ3JvdXBlLWxlLW1vbmRlXzE0MzQ3MzdfMzIzNi5odG1s" class="obf">Charte groupe</span> | <span data-target="_blank" data-href="aHR0cDovL21wdWJsaWNpdGUuZnI=" class="obf">Publicité</span> | <a href="/sitemap/afficher_index/index.html">Index</a> | <span>Aide (FAQ)</span> : <span data-target="" data-href="L3NlcnZpY2UvZmFxLmh0bWw=" class="obf">web</span> - <span data-target="" data-href="L3NlcnZpY2UvZmFxXzYyNTczMy5odG1s" class="obf">abo</span> - <span data-target="_blank" data-href="aHR0cDovL21vbmFiby5sZW1vbmRlLmZyL2ZhcS8=" class="obf">journal</span> - <span data-target="" data-href="L3NlcnZpY2UvZmFxXzExMDkyODkuaHRtbA==" class="obf">mobile</span> </p>
+ <p class="description">Journal d'information en ligne, Le Monde.fr offre à ses visiteurs un panorama complet de l'actualité. Découvrez chaque jour toute l'info en direct (de la politique à l'économie en passant par le sport et la météo) sur Le Monde.fr, le site de news leader de la presse française en ligne.</p>
+ </div>
+ <div class="clear">&nbsp;</div>
+ <script>
+ require(["jquery", "lib/require/plugin/domReady", "lmd/ui/liens-partenaires"], function(c, a, b) {
+ a(function() {
+ b.parse()
+ })
+ });
+ </script>
+ <div id="bandeau_bas">
+ <div class="conteneur_en_continu"><a href="/actualite-en-continu" class="tetiere">En Continu</a> </div>
+ <div class="conteneur_lives"></div>
+ <div class="conteneur_alerte invisible"></div>
+ </div>
+ <script>
+ require(["jquery", "lmd/module/alerte"], function(b, a) {
+ new a({
+ $el: b("#bandeau_bas .conteneur_alerte")
+ })
+ });
+ require(["jquery", "lmd/module/encontinu"], function(b, a) {
+ new a({
+ $el: b("#bandeau_bas .conteneur_en_continu")
+ })
+ });
+ require(["jquery", "lmd/module/lives"], function(b, a) {
+ (new a).attach("#bandeau_bas .conteneur_lives")
+ });
+ </script>
+ <div class="position_pub" data-adformat="dhtml" data-adsite="50270" data-adpage="444463" data-adquery="" data-adformat-id="21487">
+ <script>
+ //sas_manager.render(21487);
+ ADVERT_AD(['50270/444463', 21487, '', 'dhtml', '']);
+ </script>
+ <noscript>
+ <a href="http://ww690.smartadserver.com/call/pubjumpi/50270/444463/21487/S/1430854052/?" target="_blank"> <img src="http://ww690.smartadserver.com/call/pubi/50270/444463/21487/S/1430854052/?" border="0" alt=""/></a>
+ </noscript>
+ </div>
+ <script src="//s1.lemde.fr/medias/web/1.2.671/js/lmd/core/ux/sync.js"></script>
+ <script>
+ lmd.context.page.advert.adblock = !0;
+ "smartadserver" === lmd.context.page.advert.adserver && lmd.advertController && lmd.advertController.buildAll(lmd.context.page.advert.smart.page);
+ </script>
+ <script>
+ require(["lmd/core/ux/widget-position"], function(a) {
+ a.init();
+ });
+ </script>
+ <script>
+ require(["lmd/module/marketing/leguide-adblock"], function(leguide) {
+ leguide.fix();
+ });
+ </script>
+ <script>
+ require(["lmd/module/marketing/offre-decouverte-zen"], function(offreDecouverteZen) {
+ offreDecouverteZen.getInstance();
+ });
+ </script>
+ <script>
+ require(['lib/fingerprint'], function(fingerprint) {
+ if (window.xtparam != null) {
+ window.xtparam += "&x3=" + fingerprint.get();
+ } else {
+ window.xtparam = "&x3=" + fingerprint.get();
+ }
+ });
+ </script>
+ <script>
+ (function(lmd) {
+ 'use strict';
+ var send = function() {
+ require(['lmd/module/xiti/hit'], function(xiti) {
+ if (!xiti.has_hit('Ad_Block::Actif')) {
+ xiti.hit(this, 'C', '0', 'Ad_Block::Actif', 'A');
+ }
+ });
+ };
+ if (lmd.context.page.advert.adblock !== undefined && lmd.context.page.advert.adblock === true && lmd.advertController === undefined) {
+ send();
+ } else if (lmd.requirejs !== undefined) {
+ lmd.requirejs.addHandler(send, (lmd.context.page.advert.smart.domain !== undefined ? lmd.context.page.advert.smart.domain : '') + '/call2/pubjallajax/', true);
+ }
+ }(lmd));
+ </script>
+ <div id="xiti-logo">
+ <script>
+ var xiti = (function(w) {
+ var loadAfter = function(e, fn) {
+ var rs = e.readyState;
+ if (rs && rs != 'complete' && rs != 'loaded') {
+ return;
+ }
+ try {
+ fn.apply(this);
+ } catch (ex) {}
+ },
+ loadJs = function(src, onload) {
+ var a = document.createElement("script");
+ a.type = "text/javascript";
+ a.async = false;
+ a.src = src;
+ if (typeof onload === "function") {
+ if (a.addEventListener) {
+ a.addEventListener("load", function() {
+ loadAfter(a, onload);
+ });
+ } else {
+ a.attachEvent && a.attachEvent("onreadystatechange", function() {
+ loadAfter(a, onload);
+ });
+ }
+ }
+ (document.getElementsByTagName("head")[0] || document.getElementsByTagName("body")[0] || document.getElementsByTagName("script")[0].parentNode).insertBefore(a, null);
+ },
+ loadCore = function() {
+ loadJs(lmd.conf.medias.location.base_url_version + "/js/lib/xiti/4.4.007/xtcore.js", function() {
+ require(["lmd/module/xiti/hit"], function(hit_xiti) {
+ hit_xiti.resolve();
+ });
+ });
+ };
+ return {
+ type: {
+ inscrits: "INSCRIT"
+ },
+ init: function() {
+ if (w.xtparam === undefined || w.xtparam === null) {
+ w.xtparam = "";
+ }
+ w.xtparam += "&ac=" + w.xt_ac + "&an=" + w.xt_an + w.xt_multc;
+ loadJs(lmd.conf.medias.location.base_url_version + "/js/lib/xiti/4.4.007/xtclicks.js", loadCore);
+ }
+ };
+ })(this);
+ xtnv = document;
+ xtsd = (document.location.protocol === "http:") ? "http://logc2" : "https://logs13";
+ xtsite = lmd.context.page.xiti.xtsite;
+ xtn2 = lmd.context.page.xiti.xtn2;
+ xtcustom = lmd.context.page.xiti.xtcustom;
+ xtpage = lmd.context.page.xiti.xtpage;
+ xtergo = lmd.context.page.xiti.xtergo ? '1' : '0';
+ xtdi = "";
+ xt_an = "";
+ xt_ac = "";
+ xt_multc = lmd.context.page.xiti.xt_multc;
+ if (xt_multc === null) {
+ xt_multc = "";
+ }
+ xt_tag = lmd.context.page.xiti.xt_tag;
+ if (xt_tag != null) {
+ if (window.xtparam != null) {
+ window.xtparam += "&tag=" + xt_tag;
+ } else {
+ window.xtparam = "&tag=" + xt_tag;
+ }
+ }
+ var element = false,
+ restreint = false,
+ tdb_user_id = "",
+ w = this;
+ if (typeof lmd === "undefined" || lmd === "") {
+ xiti.init();
+ } else {
+ if (lmd.context !== undefined && lmd.context !== null && lmd.context.element !== undefined && lmd.context.element !== null && lmd.context.element.restreint !== undefined) {
+ element = true;
+ restreint = lmd.context.element.restreint;
+ }
+ tdb_user_id = (document.cookie.match("(^|; )tdb_user_id=([^;]*)") || 0)[2];
+ if (tdb_user_id === undefined || tdb_user_id === "") {
+ if (element) {
+ w.xt_multc += "&x8=" + (restreint ? "24" : "13");
+ }
+ xiti.init();
+ } else {
+ require(['jquery', "lmd/core/auth"], function($, a) {
+ a.loadUser().done(function() {
+ var params, user = a.user;
+ if (user !== null) {
+ if (user.id > 0) {
+ w.xt_an = user.id;
+ } else {
+ w.xt_an = "";
+ }
+ if ("inscrit" === user.type) {
+ w.xt_ac = xiti.type.inscrits;
+ if (element) {
+ params = {
+ 'item_id': lmd.context.element.id
+ };
+ $.getJSON('/ws/1/restreint/verif_item/', params).done($.proxy(function(response) {
+ var achat_acte = response.url !== null && response.url.length > 0;
+ w.xt_multc += "&x8=" + (restreint ? (achat_acte ? "23" : "24") : "13");
+ xiti.init();
+ }, this));
+ } else {
+ xiti.init();
+ }
+ } else if (user.type === "abonne" && user.classe_abonnement !== null) {
+ w.xt_ac = user.classe_abonnement;
+ if (element) {
+ w.xt_multc += "&x8=" + (restreint ? "23" : "13");
+ }
+ xiti.init();
+ }
+ } else {
+ xiti.init();
+ }
+ });
+ });
+ }
+ }
+ </script>
+ <object>
+ <noscript> <img src="http://logc2.xiti.com/hit.xiti?s=43260&s2=56&p=pixels::que_contient_la_loi_sur_le_renseignement&ptype=&di=&an=&ac=&x1=&x2=article" width="1" height="1" alt=""/> </noscript>
+ </object>
+ </div>
+ <script>
+ if (lmd.conf.fsw.google_analytics) {
+ var _gaq = _gaq || [];
+ _gaq.push(["_setAccount", "UA-15394037-2"]);
+ _gaq.push(["_setDomainName", ".lemonde.fr"]);
+ _gaq.push(["_trackPageview"]);
+ _gaq.push(["_trackPageLoadTime"]);
+ var ga_src_require = ('https:' == document.location.protocol) ? 'https://ssl' : 'http://www';
+ require([ga_src_require + ".google-analytics.com/ga.js"]);
+ }
+ </script>
+ <script>
+ lmd.conf.fsw.ezakus && lmd.onload(function() {
+ require(["lmd/core/ux/ezakus"], function(a) {
+ a.init()
+ })
+ });
+ </script>
+ <script>
+ if (lmd.conf.fsw.chartbeat) {
+ _sf_async_config = {
+ uid: 12231,
+ domain: "lemonde.fr"
+ };
+ lmd.onload(function() {
+ window._sf_endpt = (new Date).getTime();
+ require([document.location.protocol + "//static.chartbeat.com/js/chartbeat.js"])
+ });
+ }
+ </script>
+ <script>
+ if (lmd.conf.fsw.cedexis && document.location.protocol !== 'https:') {
+ radarSettings = {
+ zoneId: "1",
+ customerId: "10013"
+ };
+ lmd.onload(function() {
+ require(["http://radar.cedexis.com/01-10013-radar10.min.js"])
+ });
+ }
+ </script>
+ <script>
+ lmd.conf.fsw.echange_vu && lmd.onload(function() {
+ require(["lmd/core/metrics/echange-vu"], function(a) {
+ a.init()
+ })
+ });
+ </script>
+ <script>
+ lmd.conf.fsw.ownpage && lmd.onload(function() {
+ require(['lmd/core/metrics/ownpage'], function(op) {
+ op.init();
+ });
+ });
+ </script>
+ <script>
+ lmd.conf.fsw.webvisor && lmd.onload(function() {
+ (window.yandex_metrika_callbacks = window.yandex_metrika_callbacks || []).push(function() {
+ try {
+ window.yaCounter24317818 = new Ya.Metrika({
+ id: 24317818,
+ webvisor: true,
+ clickmap: true,
+ trackLinks: true,
+ accurateTrackBounce: true
+ });
+ } catch (e) {}
+ });
+ require([(document.location.protocol === "https:" ? "https:" : "http:") + "//mc.yandex.ru/metrika/watch.js"]);
+ });
+ </script>
+ <noscript>
+ <div><img src="//mc.yandex.ru/watch/24317818" style="position:absolute; left:-9999px;" alt="" /></div>
+ </noscript>
+ <script>
+ require(['lmd/core/footer-tracking']);
+ </script>
+</body>
+
+</html>
+<!--Rosae 2015/05/05 21:27:32 4.01 27.25 web11-www5:20230:4.36 httpfront-->
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lemonde-2/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lemonde-2/expected-images.json
new file mode 100644
index 000000000..8492ce450
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lemonde-2/expected-images.json
@@ -0,0 +1,3 @@
+[
+ "http:\/\/s1.lemde.fr\/medias\/web\/1.2.705\/img\/placeholder\/default.png"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lemonde-2/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lemonde-2/expected-metadata.json
new file mode 100644
index 000000000..c402d3e27
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lemonde-2/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "Le retour à la stabilité coûtera des milliards d'euros, mais l'Union européenne en vaut la peine, estime un collectif d'industriels.",
+ "Image": "http:\/\/s1.lemde.fr\/medias\/web\/1.2.705\/img\/placeholder\/default.png",
+ "Title": "La crise européenne est une crise de la dette, pas de l'euro",
+ "SiteName": "Le Monde.fr"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lemonde-2/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lemonde-2/expected.html
new file mode 100644
index 000000000..af69efe32
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lemonde-2/expected.html
@@ -0,0 +1,13 @@
+<p itemprop="description">Le retour à la stabilité coûtera des milliards d'euros, mais l'Union européenne en vaut la peine, estime un collectif d'industriels.</p><div id="articleBody" itemprop="articleBody">
+ <h2>L'union monétaire s'enlise dans la crise, l'euro reste soumis au feu des critiques. C'est le bilan des nombreux <a href="http://www.lemonde.fr/afrique-debats/" title="Toute l’actualité débats">débats</a> qui ont eu lieu ces derniers mois.</h2>
+<p>En tant qu'industriels allemands et français, qui ont la responsabilité de 1 500 milliards d'euros de chiffre d'affaires et de cinq millions de salariés dans <a href="http://www.lemonde.fr/le-monde/" title="Toute l’actualité le monde">le monde</a> entier, nous nous soucions de l'<a href="http://conjugaison.lemonde.fr/conjugaison/troisieme-groupe/avenir/" onclick="return false;" target="_blank" title="Conjugaison du verbe avenir">avenir</a> de l'euro et de l'union économique et monétaire européenne. L'<a href="http://www.lemonde.fr/histoire/" title="Toute l’actualité histoire">histoire</a> de l'euro est une véritable réussite. Qui aurait pensé, lorsque l'euro a été introduit il y a douze ans, qu'il aurait aujourd'hui gagné en valeur par rapport au dollar et de nombreuses autres monnaies ?</p>
+<p>L'euro s'est imposé comme seconde monnaie de référence à côté du dollar et a renforcé le rôle de l'<a href="http://www.lemonde.fr/europe/" title="Toute l’actualité Europe">Europe</a> en tant que puissance économique. Avec l'euro, un marché commun doté d'une monnaie unique et sans fluctuation de cours de change a vu le jour, créant ainsi prospérité et richesse pour nous tous. Depuis son introduction, près de 9 millions de nouveaux emplois ont été créés dans la zone euro. Les <a href="http://www.lemonde.fr/entreprises/" title="Toute l’actualité entreprises">entreprises</a> européennes profitent de ce <a href="http://www.lemonde.fr/developpement/" title="Toute l’actualité développement">développement</a>. Elles ont élargi leurs capacités de financement et augmenté leur compétitivité à l'<a href="http://www.lemonde.fr/international/" title="Toute l’actualité international">international</a>.</p>
+<p>Le ralentissement de l'économie mondiale a conduit certains pays de l'union monétaire à s'<a href="http://conjugaison.lemonde.fr/conjugaison/premier-groupe/endetter/" onclick="return false;" target="_blank" title="Conjugaison du verbe endetter">endetter</a> encore davantage. A court terme, ces pays doivent <a href="http://conjugaison.lemonde.fr/conjugaison/auxiliaire/%C3%AAtre/" onclick="return false;" target="_blank" title="Conjugaison du verbe être">être</a> aidés pour <a href="http://conjugaison.lemonde.fr/conjugaison/premier-groupe/regagner/" onclick="return false;" target="_blank" title="Conjugaison du verbe regagner">regagner</a> leur indépendance financière et <a href="http://conjugaison.lemonde.fr/conjugaison/premier-groupe/recr%C3%A9er/" onclick="return false;" target="_blank" title="Conjugaison du verbe recréer">recréer</a> les conditions d'un avenir meilleur pour leur <a href="http://www.lemonde.fr/demographie/" title="Toute l’actualité population">population</a>.</p>
+<p>En contrepartie, des mesures efficaces doivent être mises en oeuvre. Le retour à une situation financière stable coûtera de nombreux milliards d'euros, mais l'<a href="http://www.lemonde.fr/union-europeenne/" title="Toute l’actualité Union européenne">Union européenne</a> et notre monnaie commune en valent la peine. Nous devons <a href="http://conjugaison.lemonde.fr/conjugaison/troisieme-groupe/convaincre/" onclick="return false;" target="_blank" title="Conjugaison du verbe convaincre">convaincre</a> nos concitoyens de cela.</p>
+<p><strong>RÈGLES PLUS STRICTES</strong></p>
+<p>Nous avons besoin d'une <a href="http://www.lemonde.fr/politique/" title="Toute l’actualité politique">politique</a> économique européenne et de règles de stabilité plus strictes. Pour <a href="http://conjugaison.lemonde.fr/conjugaison/premier-groupe/%C3%A9viter/" onclick="return false;" target="_blank" title="Conjugaison du verbe éviter">éviter</a>, à l'avenir, une crise telle que celle que nous traversons actuellement, nous devons <a href="http://conjugaison.lemonde.fr/conjugaison/premier-groupe/renforcer/" onclick="return false;" target="_blank" title="Conjugaison du verbe renforcer">renforcer</a> les règles de stabilité existantes et <a href="http://conjugaison.lemonde.fr/conjugaison/premier-groupe/assurer/" onclick="return false;" target="_blank" title="Conjugaison du verbe assurer">assurer</a> leur respect. Les solutions envisagées, comme, par exemple, l'<a href="http://www.lemonde.fr/exclusion/" title="Toute l’actualité exclusion">exclusion</a> de pays membres de la zone euro ou la scission entre une Union des pays du Nord et du Sud, ne sont pas bonnes. Cela aurait des conséquences qui sont difficilement prévisibles aujourd'hui. De telles propositions démagogiques ne sont pas adaptées à la gravité de la situation.</p>
+<p>Cependant, des mesures doivent être prises à temps et être aussi efficaces que possible. De plus, les Etats membres doivent <a href="http://conjugaison.lemonde.fr/conjugaison/premier-groupe/coordonner/" onclick="return false;" target="_blank" title="Conjugaison du verbe coordonner">coordonner</a>, plus étroitement qu'auparavant, leur <a href="http://www.lemonde.fr/afrique-politique/" title="Toute l’actualité politique">politique</a> économique intérieure et <a href="http://conjugaison.lemonde.fr/conjugaison/premier-groupe/parler/" onclick="return false;" target="_blank" title="Conjugaison du verbe parler">parler</a> d'une seule voix vis-à-vis de l'extérieur.</p>
+<p>En tant qu'industriels allemands et français, nous voulons <a href="http://conjugaison.lemonde.fr/conjugaison/premier-groupe/souligner/" onclick="return false;" target="_blank" title="Conjugaison du verbe souligner">souligner</a> les immenses avantages que l'espace monétaire commun a apportés. Nous envoyons un message de soutien aux responsables politiques, afin qu'ils mettent en place des conditions nécessaires à un euro durablement stable et compétitif. C'est la base de la future prospérité en Europe. L'union monétaire a durablement besoin de <a href="http://www.lemonde.fr/finance/" title="Toute l’actualité finances">finances</a> publiques solides, de règles de responsabilité claires, de structures transparentes et de conditions de concurrence équitables.</p>
+<p>Ce n'est qu'à ces conditions que l'euro sortira renforcé de la crise de la dette. Il n'y a pas d'alternative sérieuse à l'euro commun. L'euro symbolise l'Europe d'aujourd'hui. Un échec de l'euro serait un revers fatal pour l'Europe.</p>
+<hr></hr><p>
+Appel Frank (Deutsche Post) ; Aschenbroich Jacques (Valeo) ; Berger Roland (Roland Berger Strategy Consultants) ; Bock Kurt (BASF) ; Bories Christel (Constellium) ; Borsig Clemens (Deutsche Bank) ; Brunck Robert (CGG Veritas) ; Buffet Patrick (Eramet) ; Burda Hubert (Hubert Burda Media Holding) ; Caparros Alain (Rewe group) ; Clamadieu Jean-Pierre (Rhodia) ; Cromme Gerhard (ThyssenKrupp) ; Crouzet Philippe (Vallourec) ; de Chalendar Pierre-André (Saint-Gobain) ; de Margerie Christophe (Total) ; de Romanet Augustin (Caisse des dépôts et consignations) ; Degenhart Elmar (Continental) ; Diekmann Michael (Allianz) ; Engel Klaus (Evonik Industries) ; Fehrenbach Franz (Robert Bosch) ; Frérot Antoine (Veolia <a href="http://www.lemonde.fr/environnement/" title="Toute l’actualité Environnement">Environnement</a>) ; Hagemann Snabe Jim (SAP) ; Henrot François (Groupe Rothschild Cie Banque) ; Hermelin Paul (Cap Gemini) ; Kormann Hermut (Lazard) ; Kron Patrick (Alstom) ; Lachmann Henri (Schneider Electric) ; Lafont Bruno (Lafarge) ; Lauvergeon Anne (Areva) ; Lévy Maurice (Publicis Groupe SA) ; Lévy Jean-Bernard (Vivendi) ; Löscher Peter (Siemens) ; Mestrallet Gérard (GDF Suez) ; Obermann René (Deutsche Telekom) ;Oetker Arend (Dr Arend Oetker Holding) ; Oudéa Frédéric (Société Générale) ; Potier Benoit (Air Liquide) ; Ranque Denis (Cercle de l'<a href="http://www.lemonde.fr/industrie/" title="Toute l’actualité industrie">industrie</a>/Technicolor) ; Reithofer Norbert (BMW) ; Reitzle Wolfgang (Linde) ; Richard Stéphane (France Telecom) ; Rollier Michel (Michelin) ; Rose Frédéric (Technicolor) ; Schnepp Gilles (Legrand) ; Spinetta Jean-Cyril (Air-<a href="http://www.lemonde.fr/europeennes-france/" title="Toute l’actualité France">France</a> KLM)  ; Teyssen Johannes (E.ON)  ; Thumann Jürgen (BusinessEurope) ; Verwaayen Ben (Alcatel-Lucent) ; Viehbacher Chris (Sanofi) ; Zetsche Dieter (Daimler).<br></br></p></div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lemonde-2/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lemonde-2/source.html
new file mode 100644
index 000000000..b47799962
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lemonde-2/source.html
@@ -0,0 +1,1353 @@
+<!doctype html>
+<!--[if lt IE 9]><html class="ie"><![endif]-->
+<!--[if IE 9]><html class="ie9"><![endif]-->
+<!--[if gte IE 9]><!-->
+<html lang="fr">
+<!--<![endif]-->
+
+<head>
+<script type="text/javascript">
+var kameleoonLoadingTimeout = 1000;
+var kameleoonStartLoadTime = new Date().getTime();
+if (!document.getElementById("kameleoonLoadingStyleSheet") && !window.kameleoonDisplayPageTimeOut) {
+ var kameleoonS = document.getElementsByTagName("script")[0];
+ var kameleoonCc = "* { visibility: hidden !important; background-image: none !important; }";
+ var kameleoonStn = document.createElement("style");
+ kameleoonStn.type = "text/css";
+ kameleoonStn.id = "kameleoonLoadingStyleSheet";
+ if (kameleoonStn.styleSheet) {
+ kameleoonStn.styleSheet.cssText = kameleoonCc;
+ } else {
+ kameleoonStn.appendChild(document.createTextNode(kameleoonCc));
+ }
+ kameleoonS.parentNode.insertBefore(kameleoonStn, kameleoonS);
+ window.kameleoonDisplayPage = function() {
+ if (kameleoonStn.parentNode) {
+ kameleoonStn.parentNode.removeChild(kameleoonStn);
+ }
+ };
+ window.kameleoonDisplayPageTimeOut = window.setTimeout(window.kameleoonDisplayPage, kameleoonLoadingTimeout);
+}
+</script>
+<script src="//static.kameleoon.com/css/customers/r9u0567aww/0/kameleoon.js" async></script>
+<!-- Google Tag Manager -->
+<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+})(window,document,'script','dataLayer','GTM-MS62MT');</script>
+<!-- End Google Tag Manager -->
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+
+<script>
+if("undefined"===typeof lmd||!lmd)lmd={};(function(a,b){var d=a.onerror,c="";a.onerror=function(a,e,f){d&&d.apply(this,[a,e,f]);c=e+" line:"+f+" : "+a;"undefined"!==typeof b.jserrors&&"function"===typeof b.jserrors.push?10>=b.jserrors.length&&b.jserrors.push(c):b.jserrors=[c]}})(this,lmd);
+</script>
+
+
+<!-- context -->
+<script>if("undefined"===typeof lmd||!lmd)lmd={};lmd.context={"pageType":"Element","rubrique":{"id":3232,"url_friendly":"idees","parents":[],"rubrique_ombrelle":{"id":3232,"url_friendly":"idees"},"maquette":"technologies_home"},"rubriques":[{"id":3232,"url_friendly":"idees"}],"element":{"id":1538337,"cms_id":null,"titre":"La crise europ\u00e9enne est une crise de la dette, pas de l'euro","gabarit":"colright","partenaire":null,"nature_editoriale":{"id":2,"nom":"point_de_vue","libelle":"Point de vue"},"type":{"id":4,"nom":"article","libelle":"Article","est_en_continu":true,"est_editorial":true,"icon":"article"},"restreint":false,"url_friendly":"la-crise-europeenne-est-une-crise-de-la-dette-pas-de-l-euro","link":"\/idees\/article\/2011\/06\/20\/la-crise-europeenne-est-une-crise-de-la-dette-pas-de-l-euro_1538337_3232.html","facebook_likes":368,"ensemble":{"id":1539151,"tetiere":"D\u00e9bats de la semaine : respect !"},"nb_signes":5017,"has_atome_video":false},"campagne":null,"page":{"advert":{"active":true,"colonne_light":false,"adserver":"smartadserver","smart":{"site":"50270","page":361507,"query":null,"all_formats":"21489,21490,21935,21486,21482,21488,21483,21484,21485,25258,25259,25260,21936,21487,21492,21493,21938,21937,23371,23885,15187,15188,29752,29753,27863,25553,25553,26077,26076,26333,25551,26078,25550,25550,22379,26080,26613,22380,27863,25553,25553,26077,26076,26333,25551,26078,25550,25550,22379,26080,26613,22380,21488","domain":"ww690.smartadserver.com","render_mode":0}},"dfp":{"tag":"\/128139881\/LM_lemonde\/idees\/idees\/article\/","formats":"{\"inread\":{\"desktop\":[[\"fluid\"],[2,2],[533,300]]},\"cover\":{\"desktop\":[[1,1]]},\"pave_milieu\":{\"desktop\":[[300,600],[300,250]]},\"pave_haut\":{\"desktop\":[[300,250],[300,600],[300,800],[300,900],[300,1000],[300,1050]]},\"pave_bas\":{\"desktop\":[[300,250]]},\"partenaire_middle\":{\"desktop\":[[\"fluid\"],[1,1]]},\"partenaire_bottom\":{\"desktop\":[[\"fluid\"],[1,1]]},\"parallaxe\":{\"desktop\":[[\"out-of-page\"]]},\"oreille_droite\":{\"desktop\":[[300,60]]},\"habillage\":{\"desktop\":[[\"out-of-page\"]]},\"dhtml\":{\"desktop\":[[\"out-of-page\"]]},\"banniere_haute\":{\"desktop\":[[728,90],[970,250],[\"970 \",90],[1000,90],[1000,200],[1000,300],[1000,350],[1000,400],[1000,450],[1000,500],[468,60]]},\"banniere_basse\":{\"desktop\":[[728,90],[1000,90],[468,60]]}}","device":"desktop","section":"idees"},"xiti":{"xtpage":"idees::la_crise_europeenne_est_une_crise_de_la_dette_pas_de_l_euro","xtpagetype":null,"xtn2":53,"xtsite":"43260","xt_multc":"&x1=&x2=article","xt_abmv":null,"xt_chains":null,"xtcustom":{},"xt_tag":null,"xtergo":null,"xtsites":{"www":"43260","mobile":"489989"},"xtbreakpoints":{"www":{"min":768},"mobile":{"min":0,"max":767}},"x12":null,"x2":null,"x5":null}},"application":"www"};lmd.context.item = lmd.context.element;</script>
+
+<!-- Mobile redirect, lmd conf, registered redirect -->
+<script src="//s1.lemde.fr/bootstrap/list-early-load.js"></script>
+
+<title>La crise europ&eacute;enne est une crise de la dette, pas de l'euro</title>
+
+<meta name="description" content="Le retour &agrave; la stabilit&eacute; co&ucirc;tera des milliards d'euros, mais l'Union europ&eacute;enne en vaut la peine, estime un collectif d'industriels.">
+<meta name="robots" content="index, follow, noarchive">
+
+
+<meta http-equiv="refresh" content="900">
+
+<meta http-equiv="Expires" content="0">
+<meta http-equiv="Pragma" content="no-cache">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+
+<meta name="application-name" content="Le Monde.fr">
+<meta name="DC.language" content="fr">
+<meta name="DC.format" content="text/html">
+<meta name="DC.publisher" content="Le Monde">
+<meta name="DC.identifier" content="ISSN 1950-6244">
+
+<meta name="msapplication-tooltip" content="Le Monde.fr">
+<meta name="msapplication-navbutton-color" content="#000">
+<meta name="msapplication-starturl" content="/">
+<meta name="msapplication-task" content="name=A la Une;action-uri=/;icon-uri=/medias/web/ico/ie9-pin/une.ico">
+<meta name="msapplication-task" content="name=International;action-uri=/international/;icon-uri=/medias/web/ico/ie9-pin/international.ico">
+<meta name="msapplication-task" content="name=Politique;action-uri=/politique/;icon-uri=/medias/web/ico/ie9-pin/politique.ico">
+<meta name="msapplication-task" content="name=Economie;action-uri=/economie/;icon-uri=/medias/web/ico/ie9-pin/economie.ico">
+<meta name="msapplication-task" content="name=Sport;action-uri=/sport/;icon-uri=/medias/web/ico/ie9-pin/sport.ico">
+
+
+<link rel="apple-touch-icon-precomposed" sizes="72x72" href="//s1.lemde.fr/medias/web/1.2.705/ico/apple/icon-72.png">
+<link rel="apple-touch-icon-precomposed" sizes="144x144" href="//s1.lemde.fr/medias/web/1.2.705/ico/apple/icon-144.png">
+
+<meta property="fb:app_id" content="166878320861">
+<meta property="fb:page_id" content="14892757589">
+
+ <meta property="og:site_name" content="Le Monde.fr" />
+ <meta property="og:locale" content="fr_FR" />
+ <meta property="og:title" content="La crise européenne est une crise de la dette, pas de l'euro" />
+ <meta property="og:description" content="Le retour à la stabilité coûtera des milliards d'euros, mais l'Union européenne en vaut la peine, estime un collectif d'industriels." />
+ <meta property="og:url" content="http://www.lemonde.fr/idees/article/2011/06/20/la-crise-europeenne-est-une-crise-de-la-dette-pas-de-l-euro_1538337_3232.html" />
+ <meta property="og:type" content="article" />
+ <meta property="og:image:type" content="image/png" />
+ <meta property="og:image:width" content="1880" />
+ <meta property="og:image:height" content="984" />
+ <meta property="og:image" content="http://s1.lemde.fr/medias/web/1.2.705/img/placeholder/default.png" />
+
+<meta property="al:ios:url" content="lmfr://element/article/1538337?x4=8&amp;xto=AL-8-%5BAutres%5D">
+<meta property="al:ios:app_store_id" content="294047850">
+<meta property="al:ios:app_name" content="Le Monde, l'info en continu">
+<meta property="al:android:url" content="lmfr://element/article/1538337?x4=8&amp;xto=AL-8-%5BAutres%5D">
+<meta property="al:android:package" content="com.lemonde.androidapp">
+<meta property="al:android:app_name" content="Le Monde, l'info en continu">
+<meta property="al:web:url" content="http://www.lemonde.fr/idees/article/2011/06/20/la-crise-europeenne-est-une-crise-de-la-dette-pas-de-l-euro_1538337_3232.html">
+<meta property="al:web:should_fallback" content="true">
+<meta name="apple-itunes-app" content="app-id=294047850, affiliate-data=11lteT, app-argument=lmfr://element/article/1538337?x4=8&amp;xto=AL-8-%5BiOS_Banner%5D">
+<link rel="alternate" href="android-app://com.lemonde.androidapp/lmfr/element/article/1538337?x4=8" />
+<link rel="alternate" href="ios-app://294047850/lmfr/element/article/1538337?x4=8" />
+
+<meta name="twitter:card" content="summary">
+<meta name="twitter:site" content="@lemondefr">
+<meta name="twitter:url" content="http://www.lemonde.fr/idees/article/2011/06/20/la-crise-europeenne-est-une-crise-de-la-dette-pas-de-l-euro_1538337_3232.html">
+<meta name="twitter:title" content="La crise européenne est une crise de la dette, pas de l'euro">
+<meta name="twitter:description" content="Le retour à la stabilité coûtera des milliards d'euros, mais l'Union européenne en vaut la peine, estime un collectif d'industriels.">
+
+
+
+<link rel="shortcut icon" href="//s1.lemde.fr/medias/web/1.2.705/ico/favicon.ico">
+<link rel="stylesheet" type="text/css" href="//s1.lemde.fr/bootstrap/www/8855f2ced6b0cd074585e4d4d0f2d8c4.css?m[]=normalize%40screen&m[]=fonts%40screen&m[]=grille%40screen&m[]=base%40screen&m[]=header%40screen&m[]=footer%40screen&m[]=rubrique%40screen&m[]=article%40screen&m[]=friends%2Fpaves%40screen&m[]=col_droite%40screen&m[]=ticker%40screen&m[]=couleurs%40screen&m[]=marketing%2Fmeter%40screen&m[]=evenementiel%2Fcoupe-du-monde%40screen&m[]=elections%2Famericaines%40screen&m[]=friends%2Fnewsweb%2Fbase%40screen&m[]=friends%2Fnewsweb%2Fdatabox%40screen&m[]=friends%2Fnewsweb%2Flivescore%40screen&m[]=friends%2Fnewsweb%2Flivescore_tennis%40screen&m[]=%2F%2Fasset.lemde.fr%2Fdata%2F0.17.0%2Fcss%2Fcadre-page%40screen&m[]=print%40print&m[]=element%40screen&m[]=modules%2Fportfolio%40screen&m[]=modules%2Fzen%40screen&m[]=abonnes%2Foverlay%40screen&m[]=friends%2Fione%40screen&m[]=modules%2Fmultimedia-embed%40screen">
+
+ <link rel="canonical" href="http://www.lemonde.fr/idees/article/2011/06/20/la-crise-europeenne-est-une-crise-de-la-dette-pas-de-l-euro_1538337_3232.html">
+ <link rel="alternate" href="http://mobile.lemonde.fr/idees/article/2011/06/20/la-crise-europeenne-est-une-crise-de-la-dette-pas-de-l-euro_1538337_3232.html" media="only screen and (max-width: 640px)">
+<link rel="alternate" href="http://www.lemonde.fr/idees/rss_full.xml" title="Le Monde.fr : Id&eacute;es" type="application/rss+xml">
+
+
+<script src="//s1.lemde.fr/medias/web/1.2.705/js/lib/require/core/current/require.js"></script>
+<script src="//s1.lemde.fr/bootstrap/www/main.js"></script>
+
+<script>
+ if(-1 === requirejs.s.contexts._.config.baseUrl.indexOf('lemde'))
+ {
+ require = function(){};
+ }
+</script>
+
+
+<script>
+"undefined"!==typeof lmd&&lmd||(lmd={});
+(function(e,d){var f=function(b,a){var c;if(void 0===a||null===a||""===a)return!0;for(c=0;c<b.requireModules.length;c++)if(b.requireModules[c].match(a))return!0;return!1},g=function(b,a){var c;for(c=0;c<d.requirejs.error_history.length;c++)f(d.requirejs.error_history[c],a)&&b.call(this,d.requirejs.error_history[c])},h=function(b){var a,c=d.requirejs.handlers;for(a=0;a<c.length;a++)f(b,c[a].regex)&&c[a].fn.call(this,b)};d.requirejs={handlers:[],error_history:[],addHandler:function(b,a,c){"undefined"!==
+typeof c&&c&&g(b,a);d.requirejs.handlers.push({fn:b,regex:a})}};requirejs.onError=function(b){var a=b.originalError&&b.originalError.target||{};h(b);d.requirejs.error_history.push(b);if("function"===typeof e.onerror)e.onerror("REQUIRE ERROR ("+b.requireType+") ["+a.src+"]",a.baseURI,"N/A");else throw b;}})(this,lmd);
+</script>
+
+
+<!--[if IE]>
+ <script src="//s1.lemde.fr/medias/web/1.2.705/js/lib/ecma/core/262/base64.js"></script>
+<![endif]-->
+<!--[if lte IE 9]>
+ <script src="//s1.lemde.fr/medias/web/1.2.705/js/lib/polyfill/placeholder.js"></script>
+<![endif]-->
+<!--[if lt IE 9]>
+ <script src="//s1.lemde.fr/medias/web/1.2.705/js/lib/html5shiv/html5.js"></script>
+ <script src="//s1.lemde.fr/medias/web/1.2.705/js/lib/ecma/core/262/array.js"></script>
+<![endif]-->
+<!--[if lte IE 8]>
+<![endif]-->
+
+<!--[if lte IE 7]>
+ <script src="//s1.lemde.fr/medias/web/1.2.705/js/lib/ecma/core/262/json.js"></script>
+<![endif]-->
+<script>require(['lmd.afrique.cookie']);</script>
+
+<script>
+ (function (d) {
+ var script = d.createElement('script');
+ var trange = (new Date()).getTime().toString().slice(0, -5);
+ script.src = '//s1.lemde.fr/medias/web/1.2.705/js/lmd/module/meter/toggle-off.js?' + trange;
+ d.write(script.outerHTML);
+ })(document);
+
+ require(['lmd.meter'], function (loader) {
+ loader.launch();
+ });
+</script>
+<script>
+
+var _vrq = _vrq || [];
+_vrq.push(['id',53]);
+_vrq.push(['track',function(){}]);
+if(lmd.conf.fsw.visual_revenue && document.location.protocol=== "http:"){require(["http://a.visualrevenue.com/vrs.js"]);}
+</script>
+
+
+<script>var _sf_startpt = (new Date()).getTime()</script>
+
+<script>
+require(["lib/require/plugin/domReady","lmd/util/link"],function(a,b){a(function(){b.parse()})});
+
+</script>
+
+<script>if("undefined"===typeof lmd||!lmd)lmd={};lmd.pic=function(a){require(["lmd/module/retina"],function(b){b(a)})};lmpic=lmd.pic;</script><script>
+ if (typeof lmd === 'undefined' || !lmd) {
+ lmd = {};
+ }
+
+ lmd.onload = function(fn) {
+ if (document.readyState !== 'loading') {
+ fn();
+ } else if (document.addEventListener) {
+ document.addEventListener('DOMContentLoaded', fn);
+ } else {
+ document.attachEvent('onreadystatechange', function() {
+ if (document.readystate !== 'loading') {
+ fn();
+ }
+ });
+ }
+ };
+
+ _lmOnload = lmd.onload;
+</script>
+
+<script>
+ require(['lmd/core/login-register']);
+</script>
+<script>require(['lmd/core/crm'], function (crm) { crm.increment(); });</script>
+
+
+<!--[if IE]>
+<script>require(["lib/require/plugin/domReady!","lmd/ui/ie9-pinning"],function(b,a){a.start()});</script>
+<![endif]-->
+
+<link rel="dns-prefetch" href="//logc2.xiti.com">
+
+
+<script type="application/ld+json">{"@context":"http:\/\/schema.org","@type":"NewsArticle","mainEntityOfPage":{"@type":"WebPage","@id":"http:\/\/www.lemonde.fr\/idees\/article\/2011\/06\/20\/la-crise-europeenne-est-une-crise-de-la-dette-pas-de-l-euro_1538337_3232.html"},"headline":"La crise europ\u00e9enne est une crise de la dette, pas de l'euro","dateCreated":"2011-06-20T13:01:05+0200","datePublished":"2011-06-20T13:32:32+0200","publisher":{"@type":"Organization","name":"Le Monde","logo":{"@type":"ImageObject","url":"http:\/\/s1.lemde.fr\/medias\/web\/1.2.705\/img\/elements_lm\/logo_lm_print.png","width":"240","height":"42"}},"dateModified":"2011-06-22T10:28:28+0200","description":"Le retour \u00e0 la stabilit\u00e9 co\u00fbtera des milliards d'euros, mais l'Union europ\u00e9enne en vaut la peine, estime un collectif d'industriels.","author":{"@type":"Person","name":"Collectif"}}</script>
+</head>
+<body class="site-gratuit idees">
+ <!-- Google Tag Manager No Script -->
+<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-MS62MT"
+height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+<!-- End Google Tag Manager No Script -->
+ <div id="dfp-cover" class="dfp_slot" data-format="cover" style="display:none;"></div>
+
+
+ <header id="header-page">
+ <div id="surheader">
+ <div class="contenu">
+ <div class="groupe">
+ <a href="/" title="Le Monde" target="_self">Le Monde</a>
+ <a href="http://www.telerama.fr/" title="T&eacute;l&eacute;rama" target="_blank">T&eacute;l&eacute;rama</a>
+ <a href="http://www.monde-diplomatique.fr/" title="Le Monde diplomatique" target="_blank">Le Monde diplomatique</a>
+ <a href="http://www.huffingtonpost.fr/" title="HuffPost" target="_blank">HuffPost</a>
+ <a href="http://www.courrierinternational.com/" title="Courrier international" target="_blank">Courrier international</a>
+ <a href="http://www.lavie.fr/" title="La Vie" target="_blank">La Vie</a>
+ <a href="https://tempsreel.nouvelobs.com/" title="L'Obs" target="_blank">L'Obs</a>
+ </div>
+ <div class="partners">
+ <a class="partners__link" target="_blank" href="http://codepromo.lemonde.fr/" title="Codes promo" onclick="return xt_click(this, 'C', '', 'Cuponation_sur_header', 'N')">Codes promo</a>
+ </div>
+ <div class="services">
+ <span>Services Le Monde ▾</span>
+ <div>
+ <div>
+ <strong>Partenaires Le Monde</strong>
+ <a href="http://voiture-occasion.lemonde.fr" title="Annonces auto" target="_self">Annonces auto</a>
+ <a href="http://offres.offres-emploi.monster.fr/?ch=LEMONDE" title="Annonces emploi" target="_blank">Annonces emploi</a>
+ <a href="http://immobilier.lemonde.fr/" title="Annonces immo" target="_self">Annonces immo</a>
+ <a href="http://codepromo.lemonde.fr/" title="Codes promo" target="_blank">Codes promo</a>
+ <a href="http://dicocitations.lemonde.fr/" title="Citations" target="_self">Citations</a>
+ <a href="http://anglais.lemonde.fr/" title="Cours d&rsquo;anglais" target="_self">Cours d&rsquo;anglais</a>
+ <a href="https://formation-professionnelle.lemonde.fr/" title="Formation professionnelle" target="_self">Formation professionnelle</a>
+ <a href="https://jardinage.lemonde.fr/" title="Jardinage" target="_self">Jardinage</a>
+ <a href="http://modele-lettre.lemonde.fr/" title="Mod&egrave;les de lettres" target="_self">Mod&egrave;les de lettres</a>
+ <a href="http://progresser-orthographe.lemonde.fr/" title="Orthographe" target="_self">Orthographe</a>
+ <a href="http://paroles2chansons.lemonde.fr/" title="Paroles de chansons" target="_self">Paroles de chansons</a>
+ <a href="http://prix-immobilier.lemonde.fr/prix-immobilier/" title="Prix de l&rsquo;immobilier" target="_self">Prix de l&rsquo;immobilier</a>
+ <a href="http://encheres.lemonde.fr" title="Ventes aux ench&egrave;res" target="_self">Ventes aux ench&egrave;res</a>
+ </div>
+
+ <div>
+ <strong>Boutique Le Monde</strong>
+ <a href="http://boutique.lemonde.fr/#xtor=AD-46" title="Accueil" target="_blank">Accueil</a>
+ <a href="http://boutique.lemonde.fr/hors-series.html#xtor=AD-101" title="Hors-S&eacute;ries" target="_blank">Hors-S&eacute;ries</a>
+ <a href="http://boutique.lemonde.fr/livres.html#xtor=AD-100" title="Livres" target="_blank">Livres</a>
+ <a href="http://boutique.lemonde.fr/dvd-1.html#xtor=AD-98" title="DVD" target="_blank">DVD</a>
+ <a href="http://boutique.lemonde.fr/cd.html#xtor=AD-99" title="CD" target="_blank">CD</a>
+ <a href="http://boutique.lemonde.fr/unes-du-monde.html#xtor=AD-149" title="Unes du Monde" target="_blank">Unes du Monde</a>
+ <a href="http://boutique.lemonde.fr/loisirs-et-papeterie.html#xtor=AD-103" title="Loisirs & papeterie" target="_blank">Loisirs & papeterie</a>
+ <a href="http://boutique.lemonde.fr/promos.html#xtor=AD-345" title="Promotions" target="_blank">Promotions</a>
+ </div>
+ </div>
+ </div>
+
+ <div class="abonnement">
+<a title="Abonnez-vous au Monde à partir de 1 €" href="https://abo.lemonde.fr#xtor=CS1-263[BOUTONS_LMFR]-[HEADER]-53-[Article]" onclick="return xt_click(this, 'C', '', 'Abo::Header', 'N')" rel="nofollow">
+ <span>S’abonner au Monde à partir de 1 €</span>
+ </a> </div>
+ </div>
+</div>
+ <div id="header-utilisateur">
+ <div class="contenu">
+ <a class="logo" href="/"></a>
+ <div class="menu-edition">
+ <ul>
+ <li>
+ <a href="#" title="Édition globale">
+ Édition globale ▾
+ </a>
+ </li>
+ <li>
+ <a href="/afrique/" title="Édition afrique">
+ Édition afrique
+ </a>
+ </li>
+ </ul>
+ </div>
+ <div class="liens-utilisateur">
+ <div class="partages">
+ <ul>
+ <li>
+ <a href="http://www.facebook.com/lemonde.fr" title="Facebook" target="" class="svg-facebook svg-facebook-dims">
+ Facebook
+ </a>
+ </li>
+ <li>
+ <a href="http://twitter.com/lemondefr" title="Twitter" target="" class="svg-twitter svg-twitter-dims">
+ Twitter
+ </a>
+ </li>
+ <li>
+ <a href="https://plus.google.com/+LeMondefr" title="Google+" target="" class="svg-google svg-google-dims">
+ Google+
+ </a>
+ </li>
+ <li>
+ <a href="https://www.instagram.com/lemondefr/" title="Instagram" target="_blank" class="svg-instagram">
+ Instagram
+ </a>
+ </li>
+ </ul>
+ </div>
+ <div class="recherche">
+ <a href="/recherche/" class="recherche__link">Rechercher</a>
+ </div>
+ <div class="liens-services">
+ <a href="/emploi/" title="Emploi" target="" class="emploi">
+ Emploi
+ </a>
+ <a href="https://secure.lemonde.fr/sfuser/newsletters" title="Newsletters" target="" class="newsletters">
+ Newsletters
+ </a>
+ </div>
+ <div class="liens-connexion">
+ <ul>
+ <li>
+ <a href="https://secure.lemonde.fr/sfuser/register" title="S'inscrire" target="" class="sinscrire">
+ S'inscrire
+ </a>
+ </li>
+ <li>
+ <a href="https://secure.lemonde.fr/sfuser/connexion" title="Connexion" target="" class="connexion">
+ Connexion
+ </a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+</header>
+
+<script>
+ require(['lmd/module/header']);
+</script>
+
+<div class="fixed-header">
+ <div class="fixed-header-content">
+ <a class="fixed-header-logo" href="/"></a>
+ <div class="fixed-header-title">La crise européenne est une crise de la dette, pas de l'euro</div>
+ <div class="fixed-header-sharing-buttons">
+ <div data-sharewith="facebook" data-xiti-label="Partage::Facebook::La crise européenne est une crise de la dette, pas de l'euro::header">Partager<span class="fixed-header-facebook-likes-counter"></span></div>
+ <div data-sharewith="twitter" data-xiti-label="Partage::Twitter::La crise européenne est une crise de la dette, pas de l'euro::header">Tweeter</div>
+ <div data-sharewith="google-plus" data-xiti-label="Partage::Google+::La crise européenne est une crise de la dette, pas de l'euro::header"></div>
+ <div data-sharewith="linkedin" data-xiti-label="Partage::Linkedin::La crise européenne est une crise de la dette, pas de l'euro::header"></div>
+ <div data-sharewith="pinterest" data-xiti-label="Partage::Pinterest::La crise européenne est une crise de la dette, pas de l'euro::header"></div>
+ </div>
+ </div>
+</div>
+
+<script>
+ require(['lmd/module/fixed-header'], function (fixedHeader) {
+ 'use strict';
+ fixedHeader.init();
+ }
+ );
+</script>
+
+<div id="alerte_tracking" class="bandeau_info_importante bord_gris_moyen" style="display:none;height:0;">
+ En poursuivant votre navigation sur ce site, vous acceptez nos <a href="http://www.lemonde.fr/cgv">CGV</a> et l’utilisation de cookies pour vous proposer des contenus et services adaptés à vos centres d’intérêts et vous permettre l'utilisation de boutons de partages sociaux.
+ <a href="http://www.lemonde.fr/service/donnees_personnelles.html">En savoir plus et gérer ces paramètres</a>.
+ <span class="croix_grise mgl8" title="Fermer cet avertissement"></span>
+</div>
+<script>require(["lmd/module/user/alerte_tracking"]);</script>
+
+
+
+ <div id="habillagepub">
+ <script>
+require(["lmd/core/auth", "lmd/ui/header/header"], function(a,b){a.loadUser().done(function(){b.init();})});
+require(["lmd/module/acces-non-abonne"],function(a){a.init();});
+</script>
+ <div id="dfp-habillage" class="dfp_slot" data-format="habillage"></div>
+
+ <div id="dfp-banniere_haute" class="dfp_slot top banniere" data-format="banniere_haute"></div>
+
+
+
+
+ <div id="nav-section" class="section-page">
+<div class="conteneur-nav" id="nav">
+ <nav id="navigation-generale">
+ <span role="button" data-toggle="#navigation-generale ul" data-toggleRoot=".ecran.idees">Rubriques</span>
+ <ul>
+ <li class="accueil ">
+ <a href="/" data-bypass="false" data-rubrique-title="A la une" data-rubrique-id="3208" >
+ <i class="maison">Accueil</i>
+ </a>
+ </li>
+ <li class="international ">
+ <a href="/international/" data-bypass="false" data-rubrique-title="International" data-rubrique-id="3210" >
+ International
+ </a>
+ </li>
+ <li class="politique ">
+ <a href="/politique/" data-bypass="false" data-rubrique-title="Politique" data-rubrique-id="823448" >
+ Politique
+ </a>
+ </li>
+ <li class="societe ">
+ <a href="/societe/" data-bypass="false" data-rubrique-title="Société" data-rubrique-id="3224" >
+ Société
+ </a>
+ </li>
+ <li class="economie ">
+ <a href="/economie/" data-bypass="false" data-rubrique-title="Économie" data-rubrique-id="3234" >
+ Éco
+ </a>
+ </li>
+ <li class="culture ">
+ <a href="/culture/" data-bypass="false" data-rubrique-title="Culture" data-rubrique-id="3246" >
+ Culture
+ </a>
+ </li>
+ <li class="idees alt">
+ <a href="/idees/" data-bypass="false" data-rubrique-title="Idées" data-rubrique-id="3232" >
+ Idées
+ </a>
+ </li>
+ <li class="planete ">
+ <a href="/planete/" data-bypass="false" data-rubrique-title="Planète" data-rubrique-id="3244" >
+ Planète
+ </a>
+ </li>
+ <li class="sport ">
+ <a href="/sport/" data-bypass="false" data-rubrique-title="Sport" data-rubrique-id="3242" >
+ Sport
+ </a>
+ </li>
+ <li class="sciences ">
+ <a href="/sciences/" data-bypass="false" data-rubrique-title="Sciences" data-rubrique-id="1650684" >
+ Sciences
+ </a>
+ </li>
+ <li class="pixels ">
+ <a href="/pixels/" data-bypass="false" data-rubrique-title="Pixels" data-rubrique-id="4408996" >
+ Pixels
+ </a>
+ </li>
+ <li class="campus ">
+ <a href="/campus/" data-bypass="false" data-rubrique-title="Campus" data-rubrique-id="4401467" >
+ Campus
+ </a>
+ </li>
+ <li class="m-mag ">
+ <a href="/m-le-mag/" data-bypass="false" data-rubrique-title="M le mag" data-rubrique-id="4500055" >
+ Le Mag
+ </a>
+ </li>
+ <li class="abonnes js_carousel_exclude ">
+ <a href="/teaser/presentation.html#xtor=CS1-263[BOUTONS_LMFR]-[BARRE_DE_NAV]-53-[Article]" data-rubrique-title="Édition Abonnés" data-rubrique-id="1667658" onclick="return xt_click(this, 'C', '', 'Abo::Barre_de_nav', 'N');" rel="nofollow">
+ Édition Abonnés
+ </a>
+ </li>
+ <li class="burger js_carousel_exclude">
+ <span role="button" title="afficher plus de rubriques" data-toggle="#navigation-generale .burger div" data-toggleRoot=".ecran.idees"></span>
+ <div data-toggle-policy="autoclear">
+ <span>PLUS DE RUBRIQUES</span>
+ <a href="/grands-formats/">Grands Formats</a>
+ <a href="/les-decodeurs/">Les d&eacute;codeurs</a>
+ <a href="/videos/">Vid&eacute;os</a>
+ <a href="/data/">Données du Monde</a>
+ </div>
+ </li>
+ </ul>
+ </nav>
+</div>
+
+<script>
+ require(['jquery'], function($) {
+ $("#nav li").on('click', onNavItemClick);
+
+ function onNavItemClick(event) {
+ var classAttr,
+ className,
+ prefixXiti;
+
+ classAttr = $(event.target).closest("li").attr("class");
+ // If li tag has no class attributes or if class attribute is empty
+ if ($.trim(classAttr).length === 0) {
+ return;
+ }
+
+ className = classAttr.split(/\s+/)[0];
+ prefixXiti = (lmd.context.application === "www" ? "barre_nav_" : "barre_nav_abo_");
+ if (typeof xt_click === "function") {
+ xt_click(this, 'C', lmd.context.page.xiti.xtn2, prefixXiti + className, 'N');
+ }
+ }
+ });
+</script>
+
+</div>
+
+
+ <div class="ombrelle idees ombrelle_idees">
+ <div class="tt_rubrique_ombrelle"><span class="m_titre"></span><span class="couleur_rubrique obf" data-href="L2lkZWVzLw==">Idées</span></div>
+ <span class="widget">
+ <div id="widget_container" data-uri="/ajah/5m/lemonde/web/Controller_Module_Widget_PromoEdito/actionAfficher/WzM/yMz/Jd/EMPTY/?key=63bf535d68cc411839d1f411776b3792d6fe463b">
+ <div id="dfp-oreille_droite" class="dfp_slot" data-format="oreille_droite"></div>
+ </div>
+</span>
+</div>
+
+ <div id="ariane-context-3232">
+ <div class="clearall" id="ariane_az">
+ <nav id="nav_ariane" class="idees">
+ <ul>
+ <li class="ariane z1 actif">
+ <a href="/idees/">Id&eacute;es</a>
+ </li>
+ <li class="sous_rub">
+ <a href="/idees-tribunes/">Tribunes</a>
+ </li>
+ <li class="sous_rub">
+ <a href="/idees-enquetes/">Enqu&ecirc;tes</a>
+ </li>
+ <li class="sous_rub">
+ <a href="/idees-rencontres/">Rencontres</a>
+ </li>
+ <li class="sous_rub">
+ <a href="/controverses/">Controverses</a>
+ </li>
+ <li class="sous_rub">
+ <a href="/idees-livres/">Livres</a>
+ </li>
+ <li class="sous_rub">
+ <a href="/analyses/">Analyses</a>
+ </li>
+ <li class="sous_rub">
+ <a href="/editoriaux/">Editoriaux</a>
+ </li>
+ <li class="sous_rub">
+ <a href="/idees-chroniques/">Chroniques</a>
+ </li>
+ <li class="sous_rub">
+ <a href="/blogs/">Blogs</a>
+ </li>
+ </ul>
+ <div class="az" style="display:none;">
+ <span class="bt_ouvrir">&nbsp;</span>
+ </div>
+ </nav>
+ <div class="suite_entrees">
+ <p class="entrees">
+ </p>
+ </div>
+ </div>
+</div>
+<script>
+require(["lmd/ui/liste-az"],function(a){a.init({context:'#ariane-context-3232'})});
+</script>
+
+
+ <div class="global meter_global js_meter_global">
+
+
+ <div class="top_container_article">
+
+ </div>
+
+ <div class="container_18 clearfix">
+ <div class="grid_12 alpha">
+ <div class="applat_contenu">
+ <div class="grid_10 alpha prefix_1 suffix_1 col_gauche article_wrapper"><!-- col gauche -->
+
+ <article class="article article_normal">
+
+
+ <h1 class="tt2" itemprop="Headline">La crise europ&eacute;enne est une crise de la dette, pas de l'euro</h1>
+
+ <p class="txt3 description-article" itemprop="description">Le retour &agrave; la stabilit&eacute; co&ucirc;tera des milliards d'euros, mais l'Union europ&eacute;enne en vaut la peine, estime un collectif d'industriels.</p>
+
+
+ <p class="bloc_signature">
+ <span id="publisher" itemprop="Publisher" data-source="LE MONDE">Le Monde</span>
+ | <time datetime="2011-06-20T13:32:32+02:00"
+ itemprop="datePublished">20.06.2011 &agrave; 13h32</time>
+ • Mis à jour le
+<time datetime="2011-06-22T10:28:28+02:00"
+ itemprop="dateModified">22.06.2011 &agrave; 10h28</time>
+ |
+<span class="signature_article">
+Par <span itemprop="author" class="auteur txt2_120">Collectif</span>
+</span>
+
+</p>
+
+
+ <div class="toolbar"></div>
+
+
+
+ <div id="articleBody" class="contenu_article js_article_body" itemprop="articleBody">
+ <h2 class="taille_courante">L'union monétaire s'enlise dans la crise, l'euro reste soumis au feu des critiques. C'est le bilan des nombreux <a class="lien_interne rub" href="http://www.lemonde.fr/afrique-debats/" title="Toute l’actualité débats">débats</a> qui ont eu lieu ces derniers mois.</h2>
+<p>En tant qu'industriels allemands et français, qui ont la responsabilité de 1 500 milliards d'euros de chiffre d'affaires et de cinq millions de salariés dans <a class="lien_interne rub" href="http://www.lemonde.fr/le-monde/" title="Toute l’actualité le monde">le monde</a> entier, nous nous soucions de l'<a target='_blank' onclick='return false;' class='lien_interne conjug' href='http://conjugaison.lemonde.fr/conjugaison/troisieme-groupe/avenir/' title='Conjugaison du verbe avenir'>avenir</a> de l'euro et de l'union économique et monétaire européenne. L'<a class="lien_interne rub" href="http://www.lemonde.fr/histoire/" title="Toute l’actualité histoire">histoire</a> de l'euro est une véritable réussite. Qui aurait pensé, lorsque l'euro a été introduit il y a douze ans, qu'il aurait aujourd'hui gagné en valeur par rapport au dollar et de nombreuses autres monnaies ?</p><div id="dfp-inread" class="dfp_slot" data-format="inread" style="display:none;"></div>
+<p>L'euro s'est imposé comme seconde monnaie de référence à côté du dollar et a renforcé le rôle de l'<a class="lien_interne rub" href="http://www.lemonde.fr/europe/" title="Toute l’actualité Europe">Europe</a> en tant que puissance économique. Avec l'euro, un marché commun doté d'une monnaie unique et sans fluctuation de cours de change a vu le jour, créant ainsi prospérité et richesse pour nous tous. Depuis son introduction, près de 9 millions de nouveaux emplois ont été créés dans la zone euro. Les <a class="lien_interne rub" href="http://www.lemonde.fr/entreprises/" title="Toute l’actualité entreprises">entreprises</a> européennes profitent de ce <a class="lien_interne rub" href="http://www.lemonde.fr/developpement/" title="Toute l’actualité développement">développement</a>. Elles ont élargi leurs capacités de financement et augmenté leur compétitivité à l'<a class="lien_interne rub" href="http://www.lemonde.fr/international/" title="Toute l’actualité international">international</a>.</p>
+<p>Le ralentissement de l'économie mondiale a conduit certains pays de l'union monétaire à s'<a target='_blank' onclick='return false;' class='lien_interne conjug' href='http://conjugaison.lemonde.fr/conjugaison/premier-groupe/endetter/' title='Conjugaison du verbe endetter'>endetter</a> encore davantage. A court terme, ces pays doivent <a target='_blank' onclick='return false;' class='lien_interne conjug' href='http://conjugaison.lemonde.fr/conjugaison/auxiliaire/%C3%AAtre/' title='Conjugaison du verbe être'>être</a> aidés pour <a target='_blank' onclick='return false;' class='lien_interne conjug' href='http://conjugaison.lemonde.fr/conjugaison/premier-groupe/regagner/' title='Conjugaison du verbe regagner'>regagner</a> leur indépendance financière et <a target='_blank' onclick='return false;' class='lien_interne conjug' href='http://conjugaison.lemonde.fr/conjugaison/premier-groupe/recr%C3%A9er/' title='Conjugaison du verbe recréer'>recréer</a> les conditions d'un avenir meilleur pour leur <a class="lien_interne rub" href="http://www.lemonde.fr/demographie/" title="Toute l’actualité population">population</a>.</p>
+<p>En contrepartie, des mesures efficaces doivent être mises en oeuvre. Le retour à une situation financière stable coûtera de nombreux milliards d'euros, mais l'<a class="lien_interne rub" href="http://www.lemonde.fr/union-europeenne/" title="Toute l’actualité Union européenne">Union européenne</a> et notre monnaie commune en valent la peine. Nous devons <a target='_blank' onclick='return false;' class='lien_interne conjug' href='http://conjugaison.lemonde.fr/conjugaison/troisieme-groupe/convaincre/' title='Conjugaison du verbe convaincre'>convaincre</a> nos concitoyens de cela.</p>
+<p><strong>RÈGLES PLUS STRICTES</strong></p>
+<p>Nous avons besoin d'une <a class="lien_interne rub" href="http://www.lemonde.fr/politique/" title="Toute l’actualité politique">politique</a> économique européenne et de règles de stabilité plus strictes. Pour <a target='_blank' onclick='return false;' class='lien_interne conjug' href='http://conjugaison.lemonde.fr/conjugaison/premier-groupe/%C3%A9viter/' title='Conjugaison du verbe éviter'>éviter</a>, à l'avenir, une crise telle que celle que nous traversons actuellement, nous devons <a target='_blank' onclick='return false;' class='lien_interne conjug' href='http://conjugaison.lemonde.fr/conjugaison/premier-groupe/renforcer/' title='Conjugaison du verbe renforcer'>renforcer</a> les règles de stabilité existantes et <a target='_blank' onclick='return false;' class='lien_interne conjug' href='http://conjugaison.lemonde.fr/conjugaison/premier-groupe/assurer/' title='Conjugaison du verbe assurer'>assurer</a> leur respect. Les solutions envisagées, comme, par exemple, l'<a class="lien_interne rub" href="http://www.lemonde.fr/exclusion/" title="Toute l’actualité exclusion">exclusion</a> de pays membres de la zone euro ou la scission entre une Union des pays du Nord et du Sud, ne sont pas bonnes. Cela aurait des conséquences qui sont difficilement prévisibles aujourd'hui. De telles propositions démagogiques ne sont pas adaptées à la gravité de la situation.</p>
+<p>Cependant, des mesures doivent être prises à temps et être aussi efficaces que possible. De plus, les Etats membres doivent <a target='_blank' onclick='return false;' class='lien_interne conjug' href='http://conjugaison.lemonde.fr/conjugaison/premier-groupe/coordonner/' title='Conjugaison du verbe coordonner'>coordonner</a>, plus étroitement qu'auparavant, leur <a class="lien_interne rub" href="http://www.lemonde.fr/afrique-politique/" title="Toute l’actualité politique">politique</a> économique intérieure et <a target='_blank' onclick='return false;' class='lien_interne conjug' href='http://conjugaison.lemonde.fr/conjugaison/premier-groupe/parler/' title='Conjugaison du verbe parler'>parler</a> d'une seule voix vis-à-vis de l'extérieur.</p>
+<p>En tant qu'industriels allemands et français, nous voulons <a target='_blank' onclick='return false;' class='lien_interne conjug' href='http://conjugaison.lemonde.fr/conjugaison/premier-groupe/souligner/' title='Conjugaison du verbe souligner'>souligner</a> les immenses avantages que l'espace monétaire commun a apportés. Nous envoyons un message de soutien aux responsables politiques, afin qu'ils mettent en place des conditions nécessaires à un euro durablement stable et compétitif. C'est la base de la future prospérité en Europe. L'union monétaire a durablement besoin de <a class="lien_interne rub" href="http://www.lemonde.fr/finance/" title="Toute l’actualité finances">finances</a> publiques solides, de règles de responsabilité claires, de structures transparentes et de conditions de concurrence équitables.</p>
+<p>Ce n'est qu'à ces conditions que l'euro sortira renforcé de la crise de la dette. Il n'y a pas d'alternative sérieuse à l'euro commun. L'euro symbolise l'Europe d'aujourd'hui. Un échec de l'euro serait un revers fatal pour l'Europe.</p>
+<hr />
+Appel Frank (Deutsche Post) ; Aschenbroich Jacques (Valeo) ; Berger Roland (Roland Berger Strategy Consultants) ; Bock Kurt (BASF) ; Bories Christel (Constellium) ; Borsig Clemens (Deutsche Bank) ; Brunck Robert (CGG Veritas) ; Buffet Patrick (Eramet) ; Burda Hubert (Hubert Burda Media Holding) ; Caparros Alain (Rewe group) ; Clamadieu Jean-Pierre (Rhodia) ; Cromme Gerhard (ThyssenKrupp) ; Crouzet Philippe (Vallourec) ; de Chalendar Pierre-André (Saint-Gobain) ; de Margerie Christophe (Total) ; de Romanet Augustin (Caisse des dépôts et consignations) ; Degenhart Elmar (Continental) ; Diekmann Michael (Allianz) ; Engel Klaus (Evonik Industries) ; Fehrenbach Franz (Robert Bosch) ; Frérot Antoine (Veolia <a class="lien_interne rub" href="http://www.lemonde.fr/environnement/" title="Toute l’actualité Environnement">Environnement</a>) ; Hagemann Snabe Jim (SAP) ; Henrot François (Groupe Rothschild Cie Banque) ; Hermelin Paul (Cap Gemini) ; Kormann Hermut (Lazard) ; Kron Patrick (Alstom) ; Lachmann Henri (Schneider Electric) ; Lafont Bruno (Lafarge) ; Lauvergeon Anne (Areva) ; Lévy Maurice (Publicis Groupe SA) ; Lévy Jean-Bernard (Vivendi) ; Löscher Peter (Siemens) ; Mestrallet Gérard (GDF Suez) ; Obermann René (Deutsche Telekom) ;Oetker Arend (Dr Arend Oetker Holding) ; Oudéa Frédéric (Société Générale) ; Potier Benoit (Air Liquide) ; Ranque Denis (Cercle de l'<a class="lien_interne rub" href="http://www.lemonde.fr/industrie/" title="Toute l’actualité industrie">industrie</a>/Technicolor) ; Reithofer Norbert (BMW) ; Reitzle Wolfgang (Linde) ; Richard Stéphane (France Telecom) ; Rollier Michel (Michelin) ; Rose Frédéric (Technicolor) ; Schnepp Gilles (Legrand) ; Spinetta Jean-Cyril (Air-<a class="lien_interne rub" href="http://www.lemonde.fr/europeennes-france/" title="Toute l’actualité France">France</a> KLM)  ; Teyssen Johannes (E.ON)  ; Thumann Jürgen (BusinessEurope) ; Verwaayen Ben (Alcatel-Lucent) ; Viehbacher Chris (Sanofi) ; Zetsche Dieter (Daimler).<br />
+ </div>
+
+ <div class="mgb16">
+
+ </div>
+
+
+
+
+
+ </article>
+
+
+
+
+
+ <div id="dfp-partenaire_middle" class="dfp_slot" data-format="partenaire_middle"></div>
+ <div id="dfp-partenaire_bottom" class="dfp_slot" data-format="partenaire_bottom"></div>
+
+
+ <div class="toolbar"></div>
+
+
+
+ </div>
+
+ </div>
+ <div class="clearfix">
+ <div class="grid_10 alpha prefix_1 suffix_1 col_gauche">
+ <div class="reco_cross_site_outbrain">
+ <div class="OUTBRAIN" data-src="http://www.lemonde.fr/idees/article/2011/06/20/la-crise-europeenne-est-une-crise-de-la-dette-pas-de-l-euro_1538337_3232.html" data-widget-id="AR_17" data-ob-template="lemonde"></div>
+</div>
+
+
+
+
+ <aside class="bloc_base meme_sujet">
+
+ <span class="entete txt6">
+ Sur le même sujet </span>
+
+ <div class="contenu">
+ <ul class="liste_chevron">
+ <li>
+ <a href="/idees/article/2017/11/22/universites-le-defi-de-la-rentree-2018_5218630_3232.html" onclick="return xt_click(this,'C','','Liens_bloc_meme_sujet::Gratuit::Gratuit','N')">
+ Universit&eacute;s&nbsp;: le d&eacute;fi de la rentr&eacute;e 2018
+
+ </a>
+ </li>
+ <li>
+ <a href="/idees/article/2017/11/11/sans-accord-entre-la-france-et-l-allemagne-il-n-y-aura-pas-d-avancee-en-europe_5213580_3232.html" onclick="return xt_click(this,'C','','Liens_bloc_meme_sujet::Gratuit::Gratuit','N')">
+ &laquo;&nbsp;Sans accord entre la France et l&rsquo;Allemagne, il n&rsquo;y aura pas d&rsquo;avanc&eacute;e en Europe&nbsp;&raquo;
+
+ </a>
+ </li>
+ <li>
+ <a href="/idees/article/2017/11/11/laurence-parisot-monsieur-hulot-abolissez-la-chasse-a-courre_5213493_3232.html" onclick="return xt_click(this,'C','','Liens_bloc_meme_sujet::Gratuit::Gratuit','N')">
+ Laurence Parisot&nbsp;: &laquo;&nbsp;Monsieur Hulot, abolissez la chasse &agrave; courre&nbsp;!&nbsp;&raquo;
+
+ </a>
+ </li>
+ </ul>
+ </div>
+
+ <span class="entete_exclu_abonnes">
+ <em class="txt_img">Édition abonnés Contenu exclusif</em>
+ </span>
+ <div class="contenu">
+ <ul class="liste_chevron">
+ <li>
+ <a href="/idees/article/2017/02/21/presidentielle-la-semaine-de-verite_5082714_3232.html" onclick="return xt_click(this,'C','','Liens_bloc_meme_sujet::Abonn&eacute;s::Gratuit','N')">
+ Pr&eacute;sidentielle&nbsp;: la semaine de v&eacute;rit&eacute;&nbsp;?
+
+ </a>
+ </li>
+ <li>
+ <a href="/idees/article/2017/12/04/laurent-wauquiez-est-ideologiquement-un-conservateur_5224089_3232.html" onclick="return xt_click(this,'C','','Liens_bloc_meme_sujet::Abonn&eacute;s::Gratuit','N')">
+ &laquo;&nbsp;Laurent Wauquiez est id&eacute;ologiquement un conservateur&nbsp;&raquo;
+
+ </a>
+ </li>
+ <li>
+ <a href="/idees/article/2017/12/02/aucune-subvention-publique-ne-devrait-etre-accordee-pour-des-films-finances-par-l-industrie-du-tabac_5223495_3232.html" onclick="return xt_click(this,'C','','Liens_bloc_meme_sujet::Abonn&eacute;s::Gratuit','N')">
+ &laquo;&nbsp;Aucune subvention publique ne devrait &ecirc;tre accord&eacute;e pour des films financ&eacute;s par l&rsquo;industrie du tabac&nbsp;&raquo;
+
+ </a>
+ </li>
+ </ul>
+ </div>
+
+ <p class="bt">
+<span class="btn_abo obf" onclick="return xt_click(this, 'C', lmd.context.page.xiti.xtn2, 'Clic_Abonnement','N');" data-href="L2Fiby8/YW1wO2NsZWY9QkxPQ0FCT0FSVEJBUzE0" title="Abonnez-vous au Monde à partir de 1 €">Abonnez-vous à partir de 1 €</span> </p>
+
+</aside>
+
+<div id="ultimedia_wrapper" class="mgb32"></div>
+
+<script type="text/javascript">
+
+if (lmd.conf.fsw.digiteka) {
+ var ULTIMEDIA_mdtk = "01637594";
+
+ var ULTIMEDIA_date = "20110622";
+ var ULTIMEDIA_target = "ultimedia_wrapper";
+ (function (d) {
+ var s = document.createElement('script');
+ s.src=('https:' == document.location.protocol ? 'https://secure' :'http://www') + '.ultimedia.com/js/common/smart.js';
+ s.setAttribute('async', true);
+ d.head.appendChild(s);
+ }(document))
+}
+
+</script>
+<div id="liste_reactions"><div id="aj-783738" data-aj-uri="/ajah/5m/lemonde/www/Controller_Module_Reaction_Element/actionAfficherPreview/WzE/1Mz/gzM/zcsNV0-/?key=fe7161a26c074de6f9ccb92b94cd0fb80ee53a31"></div><script>require(["jquery", "lib/jquery/plugin/jquery.ajah"],function($){$("#aj-783738").ajah({ url: "/ajah/5m/lemonde/www/Controller_Module_Reaction_Element/actionAfficherPreview/WzE/1Mz/gzM/zcsNV0-/?key=fe7161a26c074de6f9ccb92b94cd0fb80ee53a31" })});</script></div>
+
+<div class="rubriques_liees">
+ <a href="/idees-chroniques/">Chroniques</a> &#9642; <a href="/chats/">Chats</a> &#9642; <a href="/observatoires/">Observatoires</a> &#9642; <a href="/les-amphis-du-monde/">Les Amphis du Monde</a> &#9642; <a href="/editoriaux/">Editoriaux</a> &#9642; <a href="/idees-livres/">Livres</a> &#9642; <a href="/idees-enqu&ecirc;tes/">Enqu&ecirc;tes</a> &#9642; <a href="/controverses/">Controverses</a> &#9642; <a href="/idees-rencontres/">Rencontres</a> &#9642; <a href="/idees-tribunes/">Tribunes</a> </div>
+
+
+ </div>
+ </div>
+ </div>
+ <div class="grid_6 omega col_droite">
+
+
+
+ <div id="aj-988312" data-aj-uri="/ajah/5m/lemonde/web/Controller_Module_Colonne_Multimedia/actionMultimediaBloc/WzM/yMz/IsZ/mFsc2Vd/?key=0348c2c3fa2905e020d2ce5605a6629102daeb1b"></div><script>require(["jquery", "lib/jquery/plugin/jquery.ajah"],function($){$("#aj-988312").ajah({ url: "/ajah/5m/lemonde/web/Controller_Module_Colonne_Multimedia/actionMultimediaBloc/WzM/yMz/IsZ/mFsc2Vd/?key=0348c2c3fa2905e020d2ce5605a6629102daeb1b" })});</script>
+
+<div id="dfp-pave_haut" class="dfp_slot" data-format="pave_haut"></div>
+
+
+
+
+ <div id="aj-c65b1e" data-aj-uri="/ajah/5m/lemonde/www/Controller_Module_Social_Pluspartages/actionAfficher/W3R/ydW/Vd/EMPTY/?key=e9c1df2637b3a3d3a2ba3035fdd06a727446de91"></div><script>require(["jquery", "lib/jquery/plugin/jquery.ajah"],function($){$("#aj-c65b1e").ajah({ url: "/ajah/5m/lemonde/www/Controller_Module_Social_Pluspartages/actionAfficher/W3R/ydW/Vd/EMPTY/?key=e9c1df2637b3a3d3a2ba3035fdd06a727446de91" })});</script>
+
+ <div id="aj-0f6eee" data-aj-uri="/ajah/5m/lemonde/www/Controller_Module_Pave_Edito_Item/actionAfficherPave/W25/1bG/wse/yJydWJyaXF1ZV9pZCI6MzIzMn0sNTIzNTU1NCxudWxsXQ--/?key=b6377700d4d24fddd834097708545b8cecf7676f"></div><script>require(["jquery", "lib/jquery/plugin/jquery.ajah"],function($){$("#aj-0f6eee").ajah({ url: "/ajah/5m/lemonde/www/Controller_Module_Pave_Edito_Item/actionAfficherPave/W25/1bG/wse/yJydWJyaXF1ZV9pZCI6MzIzMn0sNTIzNTU1NCxudWxsXQ--/?key=b6377700d4d24fddd834097708545b8cecf7676f" })});</script>
+
+ <div id="dfp-pave_milieu" class="dfp_slot" data-format="pave_milieu"></div>
+
+<div id="aj-0c1038" data-aj-uri="/ajah/5m/lemonde/www/Controller_Module_Abonnes_AppelJelec/actionAfficher/W3R/ydW/UsI/kJMT0NBQk9BUlRDT0xEUjE0IiwiIixudWxsLDUzXQ--/?key=f98aa4214aa7405eaf019bedb7936d35af6dd5fc"></div><script>require(["jquery", "lib/jquery/plugin/jquery.ajah"],function($){$("#aj-0c1038").ajah({ url: "/ajah/5m/lemonde/www/Controller_Module_Abonnes_AppelJelec/actionAfficher/W3R/ydW/UsI/kJMT0NBQk9BUlRDT0xEUjE0IiwiIixudWxsLDUzXQ--/?key=f98aa4214aa7405eaf019bedb7936d35af6dd5fc" })});</script>
+
+ <div class="block_elementum outbrain">
+ <div class="OUTBRAIN" data-src="http://www.lemonde.fr/idees/article/2011/06/20/la-crise-europeenne-est-une-crise-de-la-dette-pas-de-l-euro_1538337_3232.html" data-widget-id="SB_2" data-ob-template="lemonde"></div>
+ <div class="OUTBRAIN" data-src="http://www.lemonde.fr/idees/article/2011/06/20/la-crise-europeenne-est-une-crise-de-la-dette-pas-de-l-euro_1538337_3232.html" data-widget-id="SB_3" data-ob-template="lemonde"></div>
+</div>
+
+
+
+<div id="aj-a628e8" data-aj-uri="/ajah/5m/lemonde/www/Controller_Module_Widget_Bizdev/actionAfficher/WzM/yMz/IsI/npvbmVfY29sb25uZV9iaXpkZXZfZWx0MSIsMSxmYWxzZSwzMjMyXQ--/?key=a3a11feced8268c89bf5d8cd1b020a4bd4ab89fe"></div><script>require(["jquery", "lib/jquery/plugin/jquery.ajah"],function($){$("#aj-a628e8").ajah({ url: "/ajah/5m/lemonde/www/Controller_Module_Widget_Bizdev/actionAfficher/WzM/yMz/IsI/npvbmVfY29sb25uZV9iaXpkZXZfZWx0MSIsMSxmYWxzZSwzMjMyXQ--/?key=a3a11feced8268c89bf5d8cd1b020a4bd4ab89fe" })});</script>
+
+ <div id="dfp-pave_bas" class="dfp_slot" data-format="pave_bas"></div>
+
+<div id="aj-d3c445" data-aj-uri="/ajah/5m/lemonde/www/Controller_Module_Widget_Bizdev/actionAfficher/WzM/yMz/IsI/npvbmVfY29sb25uZV9iaXpkZXZfZWx0MiIsMSxmYWxzZSwzMjMyXQ--/?key=a30adc006acc9e6cf06c12ef7e195740340cbbe8"></div><script>require(["jquery", "lib/jquery/plugin/jquery.ajah"],function($){$("#aj-d3c445").ajah({ url: "/ajah/5m/lemonde/www/Controller_Module_Widget_Bizdev/actionAfficher/WzM/yMz/IsI/npvbmVfY29sb25uZV9iaXpkZXZfZWx0MiIsMSxmYWxzZSwzMjMyXQ--/?key=a30adc006acc9e6cf06c12ef7e195740340cbbe8" })});</script>
+
+ </div>
+
+ </div>
+ <!-- #WALL -->
+
+</div>
+<!-- #TOASTER -->
+<script>
+ require(["lmd/module/element/bootstrap"], function (bootstrap) {
+ var params = {};
+ params.toolbar = {};
+ params.toolbar.envoyer = {link: "http://www.lemonde.fr/envoyer-par-email/article/2011/06/20/1538337.html"};
+ params.toolbar.imprimer = {active: true};
+
+ bootstrap.init(params);
+ });
+
+ require(['lmd/ui/iframe-fit-content'], function (iframeFitContent) {
+ iframeFitContent.init('articleBody', 'js_multimedia_embed');
+ });
+</script>
+
+<script>
+ if (lmd.conf.fsw.tym) {
+ require(['jquery', 'lmd/module/video/tym-script'], function ($, tymScript) {
+ $('#articleBody .tym').each(function () {
+ tymScript($(this).data('tym-playerid'));
+ });
+ });
+ }
+</script>
+
+<div class="OUTBRAIN" data-src="http://www.lemonde.fr/idees/article/2011/06/20/la-crise-europeenne-est-une-crise-de-la-dette-pas-de-l-euro_1538337_3232.html" data-widget-id="TR_1" data-ob-template="lemonde" style="display:none"></div>
+<script>
+require(['lmd/core/ux/outbrain'], function (ob) { ob.load(); });
+</script>
+
+
+
+ <div id="dfp-banniere_basse" class="dfp_slot" data-format="banniere_basse"></div>
+
+ <div id="aj-2e9edd" data-aj-uri="/ajah/5m/lemonde/web/Controller_Module_Deroule_Bloc_Paves/actionAfficherBizdevOffre/WzM/yMz/Isd/HJ1ZV0-/?key=533899a2b4be32596555f4c1c309065cf0e988be"></div><script>require(["jquery", "lib/jquery/plugin/jquery.ajah"],function($){$("#aj-2e9edd").ajah({ url: "/ajah/5m/lemonde/web/Controller_Module_Deroule_Bloc_Paves/actionAfficherBizdevOffre/WzM/yMz/Isd/HJ1ZV0-/?key=533899a2b4be32596555f4c1c309065cf0e988be" })});</script>
+ <div id="aj-704004" data-aj-uri="/ajah/5m/lemonde/www/Controller_Module_General_Footer_Serviciel/actionAfficher/WyJ/SVU/JSS/VFVRV9TRVJWSUNFUyJd/?key=48ef2c0f4847cd071d1f0a44fc735c67dafe3a50"></div><script>require(["jquery", "lib/jquery/plugin/jquery.ajah"],function($){$("#aj-704004").ajah({ url: "/ajah/5m/lemonde/www/Controller_Module_General_Footer_Serviciel/actionAfficher/WyJ/SVU/JSS/VFVRV9TRVJWSUNFUyJd/?key=48ef2c0f4847cd071d1f0a44fc735c67dafe3a50" })});</script>
+ <div id="footer">
+ <div class="footer_gratuit txt3">
+<a class="zone_abo" rel="nofollow" href="https://abo.lemonde.fr#xtor=CS1-263[BOUTONS_LMFR]-[FOOTER]-53-[Article]" onclick="return xt_click(this, 'C', '', 'Abo::Footer', 'N')">
+ <div class="abonnement">
+ <p class="contenu">
+ <span>Le monde abonnements</span>
+ Profitez du journal où et quand vous voulez. Abonnements papier, offres 100 % numériques sur Web et tablette.
+ </p>
+ <p class="bt">
+ <span class="btn">S'abonner au Monde à partir de 1 €</span>
+ </p>
+ </div>
+<img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" width="350" height="155" alt=" " data-src="//s1.lemde.fr/medias/web/1.2.705/img/elements_lm/footer_supports.png" data-lazyload="true" onload="lmd.pic(this);" onerror="lmd.pic(this);" class="lazy-retina"></a>
+ <div class="deja_abonne">
+ <div>
+ <span class="accroche">Déjà abonné au<br>journal <em>Le Monde</em> ?</span>
+ <ul>
+ <li>
+ <a href="https://www.lemonde.fr/sfuser/account" target="_blank" rel="nofollow">
+ Activez votre accès à l'Édition abonnés du Monde.fr
+ </a>
+ </li>
+ <li>
+ <a href="https://moncompte.lemonde.fr/" target="_blank" rel="nofollow">
+ Gérez votre abonnement
+ </a>
+ </li>
+ </ul>
+ </div>
+<img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" width="123" height="78" alt=" " data-src="//s1.lemde.fr/medias/web/1.2.705/img/elements_lm/footer_journaux.png" data-lazyload="true" onload="lmd.pic(this);" onerror="lmd.pic(this);" class="lazy-retina"> </div>
+ </div>
+</div>
+
+<footer id="footer-page" class="univers-sombre">
+ <section>
+ <div>
+ <strong class="titre3" data-toggle="context">Les rubriques du Monde.fr</strong>
+ <ul>
+ <li><a href="/international/" title="International" target="_self">International</a></li>
+ <li><a href="/politique/" title="Politique" target="_self">Politique</a></li>
+ <li><a href="/societe/" title="Soci&eacute;t&eacute;" target="_self">Soci&eacute;t&eacute;</a></li>
+ <li><a href="/economie/" title="&Eacute;conomie" target="_self">&Eacute;conomie</a></li>
+ <li><a href="/culture/" title="Culture" target="_self">Culture</a></li>
+ <li><a href="/sport/" title="Sport" target="_self">Sport</a></li>
+ <li><a href="/pixels/" title="Techno" target="_self">Techno</a></li>
+ <li><a href="/m-styles/" title="Style" target="_self">Style</a></li>
+ <li><a href="/m-perso/" title="L'&eacute;poque" target="_self">L'&eacute;poque</a></li>
+ <li><a href="/idees/" title="Id&eacute;es" target="_self">Id&eacute;es</a></li>
+ <li><a href="/planete/" title="Plan&egrave;te" target="_self">Plan&egrave;te</a></li>
+ <li><a href="/education/" title="&Eacute;ducation" target="_self">&Eacute;ducation</a></li>
+ <li><a href="/disparitions/" title="Disparitions" target="_self">Disparitions</a></li>
+ <li><a href="/sante/" title="Sant&eacute;" target="_self">Sant&eacute;</a></li>
+ <li><a href="/monde-academie/" title="Monde Acad&eacute;mie" target="_self">Monde Acad&eacute;mie</a></li>
+ <li><a href="/data/france/legislatives-2017/" title="R&eacute;sultats &eacute;lection l&eacute;gislatives 2017" target="_self">R&eacute;sultats &eacute;lection l&eacute;gislatives 2017</a></li>
+ <li><a href="/data/resultats-circonscriptions/legislatives-2017/" title="R&eacute;sultats par circonscription" target="_self">R&eacute;sultats par circonscription</a></li>
+ <li><a href="http://www.lemonde.fr/data/resultats-communes/legislatives-2017/" title="R&eacute;sultats par commune" target="_self">R&eacute;sultats par commune</a></li>
+ </ul>
+ </div>
+ <div>
+ <strong class="titre3" data-toggle="context">Les services du Monde</strong>
+ <ul>
+ <li><a href="http://voiture-occasion.lemonde.fr" title="Annonces auto" target="_self">Annonces auto</a></li>
+ <li><a href="http://immobilier.lemonde.fr/" title="Annonces immo" target="_self">Annonces immo</a></li>
+ <li><a href="http://conjugaison.lemonde.fr" title="Conjugaison" target="_self">Conjugaison</a></li>
+ <li><a href="http://anglais.lemonde.fr" title="Cours d'anglais" target="_self">Cours d'anglais</a></li>
+ <li><a href="/jeux/" title="Jeux" target="_self">Jeux</a></li>
+ <li><a href="https://formation-professionnelle.lemonde.fr/" title="Formation professionnelle" target="_self">Formation professionnelle</a></li>
+ <li><a href="http://boutique.lemonde.fr/#xtor=AD-9" title="La boutique du Monde" target="_blank">La boutique du Monde</a></li>
+ <li><a href="http://prix-immobilier.lemonde.fr/prix-immobilier/" title="Prix de l'immobilier" target="_self">Prix de l'immobilier</a></li>
+ <li><a href="/programme-tele/" title="Programme t&eacute;l&eacute;" target="_self">Programme t&eacute;l&eacute;</a></li>
+ <li><a href="http://shopping.lemonde.fr" title="Shopping" target="_self">Shopping</a></li>
+ <li><a href="https://www.sourcesure.eu/" title="Source S&ucirc;re" target="_blank">Source S&ucirc;re</a></li>
+ <li><a href="/pratique/trafic-idf.html" title="Trafic" target="_self">Trafic</a></li>
+ <li><a href="http://www.lemonde.fr/verification/" title="Decodex" target="_self">Decodex</a></li>
+ <li><a href="http://progresser-orthographe.lemonde.fr/" title="Orthographe et grammaire" target="_self">Orthographe et grammaire</a></li>
+ </ul>
+ </div>
+ <div>
+ <strong class="titre3" data-toggle="context">Sur le web</strong>
+ <ul>
+ <li><a href="http://sortir.telerama.fr/paris/concerts.php" title="Concerts &agrave; Paris" target="_self">Concerts &agrave; Paris</a></li>
+ <li><a href="http://www.telerama.fr/livres/livre_prefredaction.php" title="S&eacute;lection de livres" target="_self">S&eacute;lection de livres</a></li>
+ <li><a href="http://television.telerama.fr/tele/grille.php" title="Programme TNT" target="_self">Programme TNT</a></li>
+ <li><a href="http://sortir.telerama.fr/paris/boutiques.php" title="Boutiques &agrave; Paris" target="_self">Boutiques &agrave; Paris</a></li>
+ <li><a href="http://television.telerama.fr/tele/chaine-tv/arte,111.php" title="Programme TV de Arte en replay" target="_self">Programme TV de Arte en replay</a></li>
+ <li><a href="http://sortir.telerama.fr/paris/spectacles.php" title="Spectacles &agrave; Paris" target="_self">Spectacles &agrave; Paris</a></li>
+ <li><a href="http://television.telerama.fr/tele/grille.php" title="Le programme t&eacute;l&eacute;vision" target="_self">Le programme t&eacute;l&eacute;vision</a></li>
+ <li><a href="http://www.telerama.fr/festivals-ete/" title="Festivals d'&eacute;t&eacute;" target="_self">Festivals d'&eacute;t&eacute;</a></li>
+ <li><a href="http://www.telerama.fr/cine/film_genre.php" title="Films au cin&eacute;ma" target="_self">Films au cin&eacute;ma</a></li>
+ <li><a href="http://www.telerama.fr/cine/tous-les-films_genre.php" title="Tous les films" target="_self">Tous les films</a></li>
+ </ul>
+ </div>
+ <div>
+ <strong class="titre3" data-toggle="context">Les sites du Groupe</strong>
+ <ul>
+ <li><a href="/service/qui_sommes_nous_telerama.html" title="T&eacute;l&eacute;rama.fr" target="_self">T&eacute;l&eacute;rama.fr</a></li>
+ <li><a href="/service/qui_sommes_nous_talents.html" title="Talents.fr" target="_self">Talents.fr</a></li>
+ <li><a href="http://www.huffingtonpost.fr/" title="Le Huffington Post" target="_blank">Le Huffington Post</a></li>
+ <li><a href="http://www.courrierinternational.com/" title="CourrierInternational.com" target="_blank">CourrierInternational.com</a></li>
+ <li><a href="http://www.monde-diplomatique.fr/" title="Monde-Diplomatique.fr" target="_blank">Monde-Diplomatique.fr</a></li>
+ <li><a href="http://www.sdllemonde.fr/" title="La Soci&eacute;t&eacute; des lecteurs du Monde" target="_blank">La Soci&eacute;t&eacute; des lecteurs du Monde</a></li>
+ <li><a href="/kiosque/recherche/" title="Le Prix Le Monde de la recherche" target="_blank">Le Prix Le Monde de la recherche</a></li>
+ <li><a href="https://tempsreel.nouvelobs.com/" title="L'Obs" target="_blank">L'Obs</a></li>
+ </ul>
+ </div>
+ <div class="liste-liens-data">
+ <strong class="titre3" data-toggle="context">Partenaires Le Monde</strong>
+ <ul class="liste-plate">
+ <li><a href="http://dicocitations.lemonde.fr/proverbes-france.php" title="proverbe fran&ccedil;ais" target="_self">proverbe fran&ccedil;ais</a></li>
+ <li><a href="https://jardinage.lemonde.fr/dossier-232-hortensia-hydrangea.html" title="hortensia" target="_self">hortensia</a></li>
+ <li><a href="" title="" target="_self"></a></li>
+ <li><a href="http://chefsimon.lemonde.fr/recettes/pate-feuilletee-a-6-tours" title="Pate feuillet&eacute;e" target="_self">Pate feuillet&eacute;e</a></li>
+ <li><a href="http://chefsimon.lemonde.fr/recettes/riz-pilaf--4" title="Riz pilaf" target="_self">Riz pilaf</a></li>
+ <li><a href="http://chefsimon.lemonde.fr/recettes/financiers--14" title="Recette financier" target="_self">Recette financier</a></li>
+ <li><a href="http://modele-lettre.lemonde.fr/lettre-1133/lettre-de-attestation-de-mutation.html" title="attestation de mutation" target="_self">attestation de mutation</a></li>
+ <li><a href="https://formation-professionnelle.lemonde.fr/recherche/formation-professionnelle-comptabilite" title="Formation comptabilit&eacute;" target="_self">Formation comptabilit&eacute;</a></li>
+ <li><a href="http://codepromo.lemonde.fr" title="Codes promo" target="_self">Codes promo</a></li>
+ <li><a href="http://codepromo.lemonde.fr" title="Codes promo" target="_self">Codes promo</a></li>
+ <li><a href="http://paroles2chansons.lemonde.fr/paroles-camila-cabello/paroles-havana.html" title="Paroles et traduction Havana" target="_self">Paroles et traduction Havana</a></li>
+ </ul>
+ </div>
+ </section>
+ <section>
+ <div class="liste-plate">
+ <strong>Suivez-nous</strong>
+ <a href="http://www.facebook.com/lemonde.fr" title="Suivez-nous sur Facebook" class="svg-facebook" target="_blank">Suivez-nous sur Facebook</a>
+ <a href="http://twitter.com/lemondefr" title="Suivez-nous sur Twitter" class="svg-twitter" target="_blank">Suivez-nous sur Twitter</a>
+ <a href="https://plus.google.com/+LeMondefr" title="Suivez-nous sur Google Plus" class="svg-google" target="_blank">Suivez-nous sur Google Plus</a>
+ <a href="https://www.instagram.com/lemondefr/" title="Instagram" target="_blank" class="svg-instagram">Suivez-nous sur Instagram</a>
+ <a href="/mobile/" title="Suivez-nous sur Mobile" class="svg-mobile">Suivez-nous sur Mobile</a>
+ <a href="/rss/" title="Abonnez-nous à nos flux RSS" class="svg-rss">Abonnez-nous à nos flux RSS</a>
+ </div>
+ <div class="liste-plate">
+ <a href="https://secure.lemonde.fr/sfuser/newsletters" title="Recevez nos newsletters" target="_self" class="lien-newsletter">Recevez nos newsletters</a>
+ </div>
+ <div class="liste-plate">
+ <strong>Index actualités</strong>
+ <a href="/index-rubriques/A/" title="A" target="_self">A</a>
+ <a href="/index-rubriques/B/" title="B" target="_self">B</a>
+ <a href="/index-rubriques/C/" title="C" target="_self">C</a>
+ <a href="/index-rubriques/D/" title="D" target="_self">D</a>
+ <a href="/index-rubriques/F/" title="E" target="_self">E</a>
+ <a href="/index-rubriques/F/" title="F" target="_self">F</a>
+ <a href="/index-rubriques/G/" title="G" target="_self">G</a>
+ <a href="/index-rubriques/H/" title="H" target="_self">H</a>
+ <a href="/index-rubriques/I/" title="I" target="_self">I</a>
+ <a href="/index-rubriques/J/" title="J" target="_self">J</a>
+ <a href="/index-rubriques/K/" title="K" target="_self">K</a>
+ <a href="/index-rubriques/L/" title="L" target="_self">L</a>
+ <a href="/index-rubriques/M/" title="M" target="_self">M</a>
+ <a href="/index-rubriques/N/" title="N" target="_self">N</a>
+ <a href="/index-rubriques/O/" title="O" target="_self">O</a>
+ <a href="/index-rubriques/P/" title="P" target="_self">P</a>
+ <a href="/index-rubriques/Q/" title="Q" target="_self">Q</a>
+ <a href="/index-rubriques/R/" title="R" target="_self">R</a>
+ <a href="/index-rubriques/S/" title="S" target="_self">S</a>
+ <a href="/index-rubriques/T/" title="T" target="_self">T</a>
+ <a href="/index-rubriques/U/" title="U" target="_self">U</a>
+ <a href="/index-rubriques/V/" title="V" target="_self">V</a>
+ <a href="/index-rubriques/W/" title="W" target="_self">W</a>
+ <a href="/index-rubriques/X/" title="X" target="_self">X</a>
+ <a href="/index-rubriques/Y/" title="Y" target="_self">Y</a>
+ <a href="/index-rubriques/Z/" title="Z" target="_self">Z</a>
+ </div>
+ </section>
+ <section class="liste-plate _separateur">
+ <a href="/service/licence_et_droits_de_reproduction.html" title="© Le Monde.fr" target="_self" rel="nofollow">© Le Monde.fr</a>
+ |&nbsp;<a href="https://moncompte.lemonde.fr/cgv" title="CGV" target="_self" rel="nofollow">CGV</a>
+ |&nbsp;<a href="http://www.ojd-internet.com/chiffres" title="Fréquentation certifiée par l'OJD" target="_blank" rel="nofollow">Fréquentation certifiée par l'OJD</a>
+ |&nbsp;<a href="/service/donnees_personnelles.html" title="Données personnelles" target="_self" rel="nofollow">Données personnelles</a>
+ |&nbsp;<a href="/service/mentions_legales.html" title="Mentions légales" target="_self" rel="nofollow">Mentions légales</a>
+ |&nbsp;<a href="/service/qui_sommes_nous.html" title="Qui sommes-nous ?" target="_self" rel="nofollow">Qui sommes-nous ?</a>
+ |&nbsp;<a href="/actualite-medias/article/2010/11/03/la-charte-d-ethique-et-de-deontologie-du-groupe-le-monde_1434737_3236.html" title="Charte groupe" target="_self" rel="nofollow">Charte groupe</a>
+ |&nbsp;<a href="http://mpublicite.fr" title="Publicité" target="_blank" rel="nofollow">Publicité</a>
+ |&nbsp;<a href="http://www.lemonde.fr/faq" title="Foire aux questions" target="_blank" rel="nofollow">Aide (FAQ)</a>
+ </section>
+ <p class="texte-discret">
+ Journal d'information en ligne, Le Monde.fr offre à ses visiteurs un
+ panorama complet de l'actualité. Découvrez chaque jour toute l'info en
+ direct (de la politique à l'économie en passant par le sport et la
+ météo) sur Le Monde.fr, le site de news leader de la presse française
+ en ligne.
+ </p>
+</footer>
+
+ <div id="bandeau_bas">
+ <div class="conteneur_en_continu"><a href="/actualite-en-continu" class="tetiere">En Continu</a>
+
+</div>
+ <div class="conteneur_lives"></div>
+ <div class="conteneur_alerte invisible"></div>
+</div>
+
+<script>
+require(["jquery","lmd/module/alerte"],function(b,a){new a({$el:b("#bandeau_bas .conteneur_alerte")})});
+require(["jquery","lmd/module/encontinu"],function(b,a){new a({$el:b("#bandeau_bas .conteneur_en_continu")})});
+require(["jquery","lmd/module/lives"],function(b,a){(new a).attach("#bandeau_bas .conteneur_lives")});
+</script>
+ </div><!--/habillagepub-->
+
+ <script src="//asset.lemde.fr/data/0.17.0/js/index.min.js" async></script>
+
+ <div id="dfp-dhtml" class="dfp_slot" data-format='dhtml'></div>
+<script>require(['lmd/core/dfp']);</script>
+
+<script>require(["lmd/core/ux/widget-position"], function(a) { a.init(); });</script>
+
+<script>
+ if (window.xtparam) {
+ window.xtparam += '&x3=';
+ } else {
+ window.xtparam = '&x3=';
+ }
+</script>
+
+<script>
+ var blockAdBlock = (function (lmd) {
+ 'use strict';
+
+ var blockAdBlock;
+ var fnCallback;
+ var status;
+ // AT Internet x4 values : 1 and 2 are used in script, 3 for noscript and 4 not used here.
+ var adblockStatus = {
+ 'YES': 1,
+ 'NO': 2,
+ 'NOSCRIPT': 3,
+ 'NSP': 4
+ };
+
+ var send = function () {
+ require(['lmd/module/xiti/hit'], function (xiti) {
+ if (!xiti.has_hit('Ad_Block::Actif')) {
+ xiti.hit(this, 'C', '0', 'Ad_Block::Actif', 'A');
+ }
+ });
+ };
+
+ var callXiti = function (adbStatus) {
+ status = adbStatus;
+ if (status === adblockStatus.YES) {
+ send();
+ }
+
+ if (fnCallback) {
+ fnCallback(status);
+ }
+ };
+
+ require(['xitistatus'], function () {
+ blockAdBlock = new BlockAdBlock({
+ checkOnLoad: false,
+ resetOnEnd: true
+ });
+
+ if (blockAdBlock === undefined) {
+ callXiti(adblockStatus.YES);
+ } else {
+ blockAdBlock.onDetected(function () {
+ callXiti(adblockStatus.YES);
+ });
+
+ blockAdBlock.onNotDetected(function () {
+ callXiti(adblockStatus.NO);
+ });
+
+ blockAdBlock.check();
+ }
+ }, function (err) {
+ callXiti(adblockStatus.NSP)
+ });
+
+ return {
+ getStatus: function (fn) {
+ if (status) {
+ fn(status);
+ } else {
+ fnCallback = fn;
+ }
+ }
+ };
+ }(lmd));
+</script>
+
+<div id="xiti-logo">
+ <script>
+ var xiti = (function (blockAdBlock) {
+ var loadAfter = function (e, fn) {
+ var rs = e.readyState;
+ if (rs && rs !== 'complete' && rs !== 'loaded') {
+ return;
+ }
+ try {
+ fn.apply(this);
+ } catch (ex) {
+
+ }
+ },
+
+ loadJs = function (src, onload) {
+ var a = document.createElement('script');
+ a.type = 'text/javascript';
+ a.async = false;
+ a.src = src;
+ if (typeof onload === 'function') {
+ if (a.addEventListener) {
+ a.addEventListener('load', function () {
+ loadAfter(a, onload);
+ });
+ } else {
+ a.attachEvent && a.attachEvent('onreadystatechange', function () {
+ loadAfter(a, onload);
+ });
+ }
+ }
+ (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0] || document.getElementsByTagName('script')[0].parentNode).insertBefore(a, null);
+ },
+
+ loadCore = function () {
+ loadJs(lmd.conf.medias.location.base_url_version + '/js/lib/xiti/4.6.4/xtcore.js', function () {
+ require(['lmd/module/xiti/hit'], function (hit_xiti) {
+ hit_xiti.resolve();
+ });
+ });
+ lmd.context.page.xiti_call = true;
+ };
+
+ return {
+ type: {
+ inscrits: 'INSCRIT'
+ },
+ init: function () {
+ if (window.xtparam === undefined || window.xtparam === null) {
+ window.xtparam = '';
+ }
+
+ blockAdBlock.getStatus(function (status) {
+ window.xtparam += '&ac=' + window.xt_ac + '&an=' + window.xt_an + window.xt_multc + '&x4=' + status;
+ loadJs(lmd.conf.medias.location.base_url_version + '/js/lib/xiti/4.4.007/xtclicks.js', loadCore);
+ });
+ }
+ };
+ })(blockAdBlock);
+
+ xtnv = document;
+ xtsd = (document.location.protocol === 'http:') ? 'http://logc2' : 'https://logs13';
+ xtsite = function() {
+ var viewPortWitdh = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
+ var breakpoints = lmd.context.page.xiti.xtbreakpoints || {};
+ var xtsite = lmd.context.page.xiti.xtsite;
+
+ for (var device in breakpoints) {
+ var isValidBreakpoint = true;
+
+ if (breakpoints[device]['min']) {
+ isValidBreakpoint = viewPortWitdh >= breakpoints[device]['min'];
+ }
+
+ if (isValidBreakpoint && breakpoints[device]['max']) {
+ isValidBreakpoint = viewPortWitdh <= breakpoints[device]['max'];
+ }
+
+ if (isValidBreakpoint) {
+ xtsite = lmd.context.page.xiti.xtsites[device];
+ break;
+ }
+ }
+
+ lmd.context.page.xiti.xtsite = xtsite;
+
+ return xtsite;
+ }();
+ xtn2 = lmd.context.page.xiti.xtn2;
+ xtcustom = lmd.context.page.xiti.xtcustom;
+ xtpage = lmd.context.page.xiti.xtpage;
+ xtergo = lmd.context.page.xiti.xtergo ? '1' : '0';
+ xtdi ='';
+ window.xt_an = '';
+ window.xt_ac = '';
+
+ window.xt_multc = lmd.context.page.xiti.xt_multc;
+ if (window.xt_multc === null) {
+ window.xt_multc = '';
+ }
+
+ xt_tag = lmd.context.page.xiti.xt_tag;
+ if (xt_tag != null) {
+ if (window.xtparam != null) {
+ window.xtparam += '&tag=' + xt_tag;
+ } else {
+ window.xtparam = '&tag=' + xt_tag;
+ }
+ }
+ var x12 = lmd.context.page.xiti.x12;
+ if (x12 != null) {
+ if (window.xtparam != null) {
+ window.xtparam += '&x12=' + x12;
+ } else {
+ window.xtparam = '&x12=' + x12;
+ }
+ }
+
+ var x5 = lmd.context.page.xiti.x5;
+ if (x5 != null) {
+ if (window.xtparam != null) {
+ window.xtparam += '&x5=' + x5;
+ } else {
+ window.xtparam = '&x5=' + x5;
+ }
+ }
+
+ var element = false;
+ var restreint = false;
+ var tdb_user_id = '';
+
+ if (typeof lmd === 'undefined' || lmd === '') {
+ xiti.init();
+ } else {
+ if (lmd.context !== undefined && lmd.context !== null && lmd.context.element !== undefined && lmd.context.element !== null && lmd.context.element.restreint !== undefined) {
+ element = true;
+ restreint = lmd.context.element.restreint;
+ }
+
+ tdb_user_id = (document.cookie.match('(^|; )tdb_user_id=([^;]*)') || 0)[2];
+ if (tdb_user_id === undefined || tdb_user_id === '') {
+ if (element) {
+ window.xt_multc += '&x8=' + (restreint ? '24' : '13');
+ }
+ xiti.init();
+ } else {
+ require(['jquery', 'lmd/core/auth'], function ($, a) {
+ a.loadUser().done(function () {
+ var params;
+ var user = a.user;
+ if (user !== null) {
+ if (user.id > 0) {
+ window.xt_an = user.id;
+ } else {
+ window.xt_an = '';
+ }
+
+ if ('inscrit' === user.type) {
+ window.xt_ac = xiti.type.inscrits;
+
+ if (element) {
+ params = { 'item_id': lmd.context.element.id };
+ $.getJSON('/ws/1/restreint/verif_item/', params).done($.proxy(function (response) {
+ var achat_acte = response.url !== null && response.url.length > 0;
+ window.xt_multc += '&x8=' + (restreint ? (achat_acte ? '23' : '24') : '13');
+
+ xiti.init();
+ }, this));
+ } else {
+ xiti.init();
+ }
+ }
+
+ else if (user.type === 'abonne' && user.classe_abonnement !== null) {
+ window.xt_ac = user.classe_abonnement;
+
+ if (element) {
+ window.xt_multc += '&x8=' + (restreint ? '23' : '13');
+ }
+
+ xiti.init();
+ }
+ } else {
+ xiti.init();
+ }
+ });
+ });
+ }
+ }
+ </script>
+ <object>
+ <noscript>
+ <img src="http://logc2.xiti.com/hit.xiti?s=43260&s2=53&p=idees::la_crise_europeenne_est_une_crise_de_la_dette_pas_de_l_euro&ptype=&di=&an=&ac=&x1=&x2=article&x4=3" width="1" height="1" alt="">
+ </noscript>
+ </object>
+
+ <script>
+ (function (w) {
+ var i = 0;
+ function attestScroll() {
+ i++;
+ if (w.xt_med || i > 5) {
+ w.removeEventListener('scroll', attestScroll);
+ typeof xt_med === 'function' && xt_med('C', '', 'Scroll', 'A');
+ }
+ }
+ w.addEventListener('scroll', attestScroll);
+ }(window));
+ </script>
+</div>
+<script>
+ if (lmd.conf.fsw.google_analytics) {
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-15394037-2']);
+ _gaq.push(['_setDomainName', '.lemonde.fr']);
+ _gaq.push(['_setVisitorCookieTimeout', 86400 * 30 * 13 * 1000]); // 13 months in milliseconds
+ _gaq.push(['_trackPageview']);
+ _gaq.push(['_trackPageLoadTime']);
+ var ga_src_require = ('https:' == document.location.protocol) ? 'https://ssl' : 'http://www';
+ require([ga_src_require + '.google-analytics.com/ga.js']);
+ }
+</script>
+
+
+<script>if(lmd.conf.fsw.chartbeat){_sf_async_config={uid:12231,domain:"lemonde.fr"};lmd.onload(function(){window._sf_endpt=(new Date).getTime();require([document.location.protocol+"//static.chartbeat.com/js/chartbeat.js"])});}</script>
+
+<script>lmd.conf.fsw.ownpage && lmd.onload(function(){ require(['lmd/core/metrics/ownpage'], function(op){ op.init(); }); });</script>
+
+<script> require(['lmd/core/footer-tracking']); </script>
+
+
+</body>
+</html>
+
+<!--Rosae 2018/01/03 17:41:11 3.30 25.90 web04:5681:5.96 httpfront--> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/liberation-1/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/liberation-1/expected-images.json
new file mode 100644
index 000000000..4b8e9a8b4
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/liberation-1/expected-images.json
@@ -0,0 +1,3 @@
+[
+ "http:\/\/md1.libe.com\/photo\/755923-000_hkg10175905.jpg?modified_at=1430371146&amp;width=750"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/liberation-1/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/liberation-1/expected-metadata.json
new file mode 100644
index 000000000..5f2b7b5ee
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/liberation-1/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "AFP",
+ "Direction": null,
+ "Excerpt": "Laurent Fabius a accueilli jeudi matin à Roissy un premier avion spécial ramenant des rescapés.",
+ "Image": "http:\/\/md1.libe.com\/photo\/755923-000_hkg10175905.jpg?modified_at=1430371146&amp;width=750",
+ "Title": "Un troisième Français mort dans le séisme au Népal",
+ "SiteName": "Libération.fr"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/liberation-1/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/liberation-1/expected.html
new file mode 100644
index 000000000..889c2b928
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/liberation-1/expected.html
@@ -0,0 +1,13 @@
+<section id="news-article"><article itemscope="" itemtype="http://schema.org/NewsArticle"><div id="article-body" itemprop="articleBody">
+ <div>
+ <p>Un troisième Français a été tué dans le tremblement de terre samedi au Népal, emporté par une avalanche, <a href="http://www.liberation.fr/video/2015/04/30/laurent-fabius-plus-de-200-francais-n-ont-pas-ete-retrouves_1278687" target="_blank">a déclaré jeudi le ministre des Affaires étrangères</a>. Les autorités françaises sont toujours sans nouvelles <em>«d’encore plus de 200» </em>personnes. <em>«Pour certains d’entre eux on est très interrogatif»</em>, a ajouté Laurent Fabius. Il accueillait à Roissy un premier avion spécial ramenant des rescapés. <a href="http://www.liberation.fr/video/2015/04/30/seisme-au-nepal-soulages-mais-inquiets-206-survivants-de-retour-en-france_1278758" target="_blank">L’Airbus A350 affrété par les autorités françaises s’est posé peu avant 5h45</a> avec à son bord 206 passagers, dont 12 enfants et 26 blessés, selon une source du Quai d’Orsay. Quasiment tous sont français, à l’exception d’une quinzaine de ressortissants allemands, suisses, italiens, portugais ou encore turcs. Des psychologues, une équipe médicale et des personnels du centre de crise du Quai d’Orsay les attendent.</p>
+ <p>L’appareil, mis à disposition par Airbus, était arrivé à Katmandou mercredi matin avec 55 personnels de santé et humanitaires, ainsi que 25 tonnes de matériel (abris, médicaments, aide alimentaire). Un deuxième avion dépêché par Paris, qui était immobilisé aux Emirats depuis mardi avec 20 tonnes de matériel, est arrivé jeudi à Katmandou, <a href="http://www.liberation.fr/monde/2015/04/29/embouteillages-et-retards-a-l-aeroport-de-katmandou_1276612" target="_blank">dont le petit aéroport est engorgé</a> par le trafic et l’afflux d’aide humanitaire. Il devait lui aussi ramener des Français, <em>«les plus éprouvés»</em> par la catastrophe et les <em>«plus vulnérables (blessés, familles avec enfants)»</em>, selon le ministère des Affaires étrangères.</p>
+ <p>2 209 Français ont été localisés sains et saufs tandis que 393 n’ont pas encore pu être joints, selon le Quai d’Orsay. Environ 400 Français ont demandé à être rapatriés dans les vols mis en place par la France.</p>
+ <p>Le séisme a fait près de 5 500 morts et touche huit des 28 millions d’habitants du Népal. Des dizaines de milliers de personnes sont sans abri.</p>
+ <p>
+ <iframe data-aspect-ratio="0.5625" data-responsive="1" frameborder="0" src="http://www.dailymotion.com/embed/video/x2oikl3" width="100%"></iframe>
+ <br></br><em></em></p>
+ </div>
+
+ </div>
+ </article></section> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/liberation-1/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/liberation-1/source.html
new file mode 100644
index 000000000..609df40d6
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/liberation-1/source.html
@@ -0,0 +1,1803 @@
+<!DOCTYPE html>
+<!-- HTML5 Boilerplate -->
+<!--[if lt IE 7]><html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
+<!--[if (IE 7)&!(IEMobile)]><html class="no-js lt-ie9 lt-ie8" lang="en"><![endif]-->
+<!--[if (IE 8)&!(IEMobile)]><html class="no-js lt-ie9" lang="en"><![endif]-->
+<!--[if gt IE 8]><!-->
+<html class="no-js" lang="fr">
+<!--<![endif]-->
+
+<head prefix="og: http://ogp.me ns# fb: http://ogp.me/ns/fb# article: http://ogp.me/ns/article#">
+ <meta charset="utf-8"/>
+ <title>Un troisième Français mort dans le séisme au Népal - Libération</title>
+ <!-- Meta -->
+ <meta name="description" content="
+ Laurent Fabius a accueilli jeudi matin à Roissy un premier avion spécial ramenant des rescapés.
+"/>
+ <meta name="keywords" content="
+
+actualités, news"/>
+ <meta name="google-site-verification" content="F49Mb6L-Rs_uQg4KRSIoZq4tN4d6vltGt_QqCVFfjYw"/>
+ <meta name="google-site-verification" content="ZU8yhvOSn18Hu1fXjykeuXzDBFFdwNN6ah6Km9zr85k"/>
+ <!-- Open Graph -->
+ <meta property="og:site_name" content="Libération.fr"/>
+ <meta property="og:type" content="article"/>
+ <meta property="og:title" content="Un troisième Français mort dans le séisme au Népal"/>
+ <meta property="article:section" content="Monde"/>
+ <meta property="article:published_time" content="2015-04-30T07:19:58"/>
+ <meta property="article:modified_time" content="2015-04-30T07:38:17"/>
+ <meta property="article:author" content="http://www.liberation.fr/auteur/2005-afp"/>
+ <meta property="og:url" content="http://www.liberation.fr/monde/2015/04/30/un-troisieme-francais-mort-dans-le-seisme-au-nepal_1278483"/>
+ <meta property="og:description" content="Laurent Fabius a accueilli jeudi matin à Roissy un premier avion spécial ramenant des rescapés."/>
+ <meta property="og:image" content="http://md1.libe.com/photo/755923-000_hkg10175905.jpg?modified_at=1430371146&amp;amp;width=750"/>
+ <meta name="twitter:card" content="summary_large_image"/>
+ <meta name="twitter:site" content="@libe"/>
+ <meta name="twitter:site:id" content="68440549"/>
+ <meta name="twitter:creator" content="@libe"/>
+ <meta name="twitter:title" content="Un troisième Français mort dans le séisme au Népal"/>
+ <meta name="twitter:description" content="Laurent Fabius a accueilli jeudi matin à Roissy un premier avion spécial ramenant des rescapés."/>
+ <meta name="twitter:image:src" content="http://md1.libe.com/photo/755923-000_hkg10175905.jpg?modified_at=1430371146&amp;amp;width=600"/>
+ <meta name="twitter:image:width" content="600"/>
+ <meta name="twitter:image:height" content="400"/>
+ <!-- For all browsers -->
+ <link rel="canonical" href="http://www.liberation.fr/monde/2015/04/30/un-troisieme-francais-mort-dans-le-seisme-au-nepal_1278483"/>
+ <link type="application/rss+xml" rel="alternate" title="Monde" href="http://rss.liberation.fr/rss/10/"/>
+ <link type="application/rss+xml" rel="alternate" title="A la une sur Libération" href="http://rss.liberation.fr/rss/latest/"/>
+ <link rel="stylesheet" href="http://s1.libe.com/cache/css/794f2126806d.css" type="text/css" media="all"/>
+ <link rel="stylesheet" href="http://s1.libe.com/cache/css/1b9d227b4dfa.css" type="text/css" media="screen, print"/>
+ <link rel="stylesheet" href="http://s1.libe.com/cache/css/0f76f1b47b82.css" type="text/css" media="all"/>
+ <!--
+ www.KNACSS.com V2.6e @author: Raphael Goetter, Alsacreations
+ Licence CC-BY http://creativecommons.org/licenses/by/3.0/fr/
+ -->
+ <!-- Icons -->
+ <!-- 16x16 -->
+ <link rel="shortcut icon" href="http://s1.libe.com/favicon.ico"/>
+ <!-- 32x32 -->
+ <link rel="shortcut icon" href="http://s1.libe.com/favicon.png"/>
+ <!--iOS -->
+ <!--<meta name="viewport" content="width=1000">-->
+ <meta name="apple-mobile-web-app-title" content="Libération"/>
+ <meta name="viewport" content="initial-scale=1.0"/>
+ <meta name="apple-mobile-web-app-capable" content="yes"/>
+ <meta name="apple-itunes-app" content="app-id=336173383"/>
+ <!-- Windows 8 / RT -->
+ <!--[if IEMobile]><meta http-equiv="cleartype" content="on"><![endif]-->
+ <!--[if lt IE 9]>
+ <meta http-equiv="cleartype" content="on"/>
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
+
+ <script src="http://s1.libe.com/compat/respond.min.js"></script>
+
+ <link href="http://s1.libe.com/compat/respond-proxy.html" id="respond-proxy" rel="respond-proxy" />
+
+ <link href="/respond.proxy.gif" id="respond-redirect" rel="respond-redirect" />
+
+ <script src="/respond.proxy.js"></script>
+
+ <script src="http://s1.libe.com/compat/modernizr.js"></script>
+
+ <![endif]-->
+ <script src="http://s1.libe.com/js/cookie.js"></script>
+ <script type="text/javascript">
+ /* */
+ var _sf_startpt = (new Date()).getTime();
+ var sas_tmstp = Math.round(Math.random() * 1e10),
+ sas_masterflag = 1;
+ var client_width = document.documentElement.clientWidth;
+ var mobileBrowserAgent = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
+
+ function getCookie(name, defaultvalue) {
+ name += "=";
+ if (document.cookie.length > 0) {
+ offset = document.cookie.indexOf(name);
+ if (offset != -1) {
+ offset += name.length, end = document.cookie.indexOf(";", offset);
+ return unescape(document.cookie.substring(offset, end != -1 ? end : document.cookie.length))
+ }
+ }
+ return defaultvalue
+ }
+
+ function setCookie(name, value, domain, duration, expire, path) {
+ var cookie;
+ if (!expire) {
+ var today = new Date;
+ expire = new Date, duration || (duration = 31536e6 - 1), expire.setTime(today.getTime() + duration)
+ }
+ path || (path = "/"), cookie = encodeURIComponent(name) + "=" + encodeURIComponent(value), duration !== "session" && (cookie += "; expires=" + expire.toUTCString()), cookie += "; path=" + path, domain && (cookie += "; domain=" + domain), document.cookie = cookie
+ }
+
+ function SmartAdServer(sas_pageid, sas_formatid, sas_target) {
+ if (sas_masterflag == 1) {
+ sas_masterflag = 0;
+ sas_master = 'M';
+ } else {
+ sas_master = 'S';
+ };
+ document.write('&lt;scr' + 'ipt src="http://ww14.smartadserver.com/call/pubj/' + sas_pageid + '/' + sas_formatid + '/' + sas_master + '/' + sas_tmstp + '/' + escape(sas_target) + '?">&lt;/scr' + 'ipt>');
+ }
+
+ function sasmobile(sas_pageid, sas_formatid, sas_target) {
+ if (sas_masterflag == 1) {
+ sas_masterflag = 0;
+ sas_master = 'M';
+ } else {
+ sas_master = 'S';
+ };
+ document.write('&lt;scr' + 'ipt src="http://ww14.smartadserver.com/call2/pubmj/' + sas_pageid + '/' + sas_formatid + '/' + sas_master + '/' + sas_tmstp + '/' + escape(sas_target) + '?">&lt;/scr' + 'ipt>');
+ }
+
+ function sascc(sas_imageid, sas_pageid) {
+ img = new Image();
+ img.src = 'http://ww14.smartadserver.com/h/mcp?imgid=' + sas_imageid + '&pgid=' + sas_pageid + '&uid=[uid]&tmstp=' + sas_tmstp + '&tgt=[targeting]';
+ }
+
+ function writeAd(d, content, format_str) {
+ typeof isPubActive != "undefined" && !!isPubActive && d.write(content)
+ }
+
+ function displayAd(d, sas_pageid, sas_formatid, sas_target, format_str) {
+ if (typeof isPubActive != "undefined" && typeof SmartAdServer != "undefined" && !!isPubActive) {
+ var result = SmartAdServer(sas_pageid, sas_formatid, sas_target);
+ result && writeAd(d, result, format_str)
+ }
+ }
+
+ function toggleDynamicScript(src, is_async, mobile_disabled) {
+ if (mobile_disabled) {
+ if (typeof isPubActive !== 'undefined' && isPubActive && !is_responsive_mobile) {
+ (function() {
+ var vs = document.createElement('script');
+ vs.type = 'text/javascript';
+ vs.async = is_async;
+ vs.src = src;
+ var s = document.getElementsByTagName('script')[0];
+ s.parentNode.insertBefore(vs, s);
+ })();
+ }
+ } else {
+ if (typeof isPubActive !== 'undefined' && isPubActive) {
+ (function() {
+ var vs = document.createElement('script');
+ vs.type = 'text/javascript';
+ vs.async = is_async;
+ vs.src = src;
+ var s = document.getElementsByTagName('script')[0];
+ s.parentNode.insertBefore(vs, s);
+ })();
+ }
+ }
+ }
+
+ function displayAdInter() {
+ var clientWidth = document.documentElement.clientWidth;
+ if (!isPubActive || !mobileBrowserAgent) {
+ return;
+ }
+ if (clientWidth &lt;= 767) {
+ var sas_pageid = '57488/431228';
+ var sas_formatid = 25226;
+ } else {
+ var sas_pageid = '57489/431230';
+ var sas_formatid = 25227;
+ }
+ if (typeof sas_pageid != "undefined" && typeof sas_formatid != "undefined") {
+ sasmobile(sas_pageid, sas_formatid, '');
+ }
+ }
+
+ function isVisibleAd(format_str) {
+ if (((format_str == 'square1' || format_str == 'partnersquare1') && client_width &lt;= 768) || (format_str == 'dhtml' && client_width &lt;= 640)) {
+ return false;
+ }
+ return true;
+ }
+ </script>
+</head>
+
+<body class="contentmodel page-article article article-un-troisieme-francais-mort-dans-le-seisme-au-nepal article free">
+ <!-- Add class "authenticated" to active the user bar, if else nothing appear, add class"ad-skin" to enable the skin ad -->
+ <script type="text/javascript">
+ var session_cookie = getCookie('djazsession');
+ var libeUserInfo = {
+ "authenticated": false
+ };
+ var isPubActive = true;
+ if (session_cookie) {
+ document.write('&lt;script type="text/javascript" src="/session_info/?format=json&confirm=' + escape(session_cookie) + '">&lt;/' + 'script>');
+ } else {
+ libeUserInfo = {
+ "access_level": "BAS",
+ "authenticated": false
+ };
+ }
+ var is_responsive_mobile = (document.documentElement.clientWidth &lt;= 640);
+ var releaseSuffix = "5ab453ca06a48f0e53b210afa383781f";
+ </script>
+ <script type="text/javascript">
+ libeUserInfo["cookie_domain"] = '.liberation.Fr';
+ libeUserInfo["softwarer_blocker"] = 1;
+ var dispayName = (typeof libeUserInfo['displayname'] == 'undefined') ? '' : libeUserInfo['displayname'];
+ var accessLevel = (typeof libeUserInfo['access_level'] == 'undefined') ? 'BAS' : libeUserInfo['access_level'];
+ var isPubActive = !(accessLevel == 'PRE' || accessLevel == 'ESS' || accessLevel == 'MAYDAY');
+ var bodyClass = ' ' + 'access-' + accessLevel.toLowerCase();
+ bodyClass += ' ' + (libeUserInfo['authenticated'] ? 'authenticated' : 'unlogged');
+ document.body.className = document.body.className + bodyClass;
+ //global api url
+ apiUrl = "http://www.liberation.fr/api/v3/";
+ // recovery
+ if (typeof libeUserInfo !== 'undefined' && libeUserInfo.access_level == 'MAYDAY') {
+ document.body.className = document.body.className + ' recovery-mode';
+ }
+ </script>
+ <script type="text/javascript">
+ /* handle cookie notifier close button */
+ var cookie_notified_handler = function(elem) {
+ elem.parentNode.parentNode.style.display = "none";
+ }
+ /* fetch the cookie */
+ var cookie_notified = getCookie('cookie_notified');
+ /* check the cookie and display the notification */
+ if (!cookie_notified && libeUserInfo['authenticated'] == false) {
+ var cookie_notify_html = '&lt;div class="cookie_notify_js cookie-notify">&lt;div class="wrapper">&lt;div onClick="cookie_notified_handler(this);" class="close">&lt;span>Fermer &lt;/span>&lt;i class="icon-cancel-circle">&lt;/i>&lt;/div>&lt;p>En poursuivant votre navigation sur ce site, vous acceptez l\'utilisation de cookies pour vous proposer des services et offres adaptés à vos centres d\'intérêt.&nbsp;&lt;a onclick="window.location.assign(\'/donnees-personnelles/\');" title="Conditions générales de vente de Libération">En savoir plus&lt;/a>&lt;/p>&lt;/div>&lt;/div>'
+ document.write(cookie_notify_html);
+ }
+ setCookie('cookie_notified', true, '.liberation.Fr', 1000 * 60 * 60 * 24 * 7);
+ </script>
+ <div id="user-bar" class="sticky">
+ <div class="wrapper">
+ <ul id="user-account">
+ <li id="connect"><a href="http://token.liberation.fr/accounts/login/">Se connecter</a></li>
+ <li id="sign-in"><a href="http://token.liberation.fr/accounts/register/">S'inscrire</a></li>
+ <li id="log-out"><a href="http://token.liberation.fr/accounts/logout/?next=/">Se déconnecter</a></li>
+ </ul>
+ <ul id="user-option">
+ <li class="name"><i class="icon-user"></i>
+ <a id="account_username" href="http://token.liberation.fr/accounts/personal-data/"></a>
+ </li>
+ </ul>
+ <ul id="customer-option">
+ <li id="header-paper-link" class="paper"><a href="http://journal.liberation.fr/publication/liberation/1846/">Le journal</a></li>
+ <li id="header-ebook-link"><a href="/bibliotheque/">La bibliothèque</a></li>
+ <li id="header-club-link" class="club"><a href="/club/">Le club abonnés</a></li>
+ </ul>
+ </div>
+ <script type="text/javascript">
+ if (libeUserInfo['authenticated']) {
+ document.getElementById('account_username').innerHTML = dispayName + '&lt;span>&nbsp;&nbsp;-&nbsp;&nbsp;Gérer mon compte&lt;/span>';
+ if (isPubActive) {
+ document.getElementById('header-paper-link').innerHTML = '&lt;a href="http://token.liberation.fr/accounts/offers/">Abonnez-vous à partir de 1€&lt;/a>';
+ }
+ }
+ // recovery
+ if (typeof libeUserInfo !== 'undefined' && libeUserInfo.access_level == 'MAYDAY') {
+ document.body.className = document.body.className + ' recovery-mode';
+ // something is wrong!
+ if (typeof libeUserInfo.forced_recovery != 'undefined') {
+ var recoveryMsg = "&lt;h3>Libération.fr est actuellement en maintenance... L'identification est temporairement désactivée, veuillez nous excuser pour la gêne occasionnée.&lt;/h3>";
+ } else {
+ var recoveryMsg = "&lt;h3> Libération.fr rencontre des problèmes techniques. L'identification est temporairement désactivée, veuillez nous excuser pour la gêne occasionnée.&lt;/h3>";
+ }
+ document.getElementById('user-bar').innerHTML = recoveryMsg;
+ }
+ </script>
+ </div>
+ <!-- software blocker -->
+ <script src="http://s1.libe.com/js/advertisement.js"></script>
+ <!-- smart interticiel -->
+ <script type="text/javascript">
+ displayAdInter();
+ </script>
+ <!-- END -->
+ <!-- Header mobile -->
+ <!-- START - bootstrap header -->
+ <nav class="navbar navbar-default" role="navigation">
+ <div id="header_mobile">
+ <!-- Brand and toggle get grouped for better mobile display -->
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#header_mobile_heading" data-parent="#header_mobile"> <span class="sr-only">Les rubriques</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button>
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#header_mobile_search" data-parent="#header_mobile"> <span class="sr-only">Rechercher</span> <span class="icon-zoom"></span> </button>
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#header_mobile_user" data-parent="#header_mobile"> <span class="sr-only">Mon profil</span> <span class="icon-user"></span> </button>
+ <button type="button" class="navbar-toggle liberadio_trigger_js"> <span class="sr-only">Libéradio</span> <span class="icon-volume"></span> </button>
+ <a class="navbar-brand" data-href="http://www.liberation.fr"><img src="http://s1.libe.com/img/logo-liberation-311x113.png" alt="Libération"/></a>
+ </div>
+ <!-- Collect the nav links, forms, and other content for toggling -->
+ <div class="panel">
+ <div class="collapse navbar-collapse" id="header_mobile_search">
+ <form class="navbar-form navbar-left" role="search" method="get" action="/recherche/">
+ <div class="form-group">
+ <input type="search" name="q" class="focus" placeholder="Ex : éducation, rebonds"/> </div>
+ <button type="submit" class="btn btn-default">Recherche</button>
+ </form>
+ </div>
+ <!-- /.navbar-collapse -->
+ </div>
+ <!-- /.panel -->
+ <!-- Collect the nav links, forms, and other content for toggling -->
+ <div class="panel">
+ <div class="collapse navbar-collapse" id="header_mobile_heading">
+ <ul class="nav navbar-nav" id="mobile_section_list">
+ <script type="text/javascript">
+ var mobileHeader = document.getElementById('mobile_section_list')
+ var menu_list = {}
+ var current_section = 'Monde'
+ menu_list = [{
+ name: "Politique",
+ url: '/politiques,11'
+ }, {
+ name: "Société",
+ url: '/societe,12'
+ }, {
+ name: "Monde",
+ url: '/monde,10'
+ }, {
+ name: "Économie",
+ url: '/economie,13'
+ }, {
+ name: "Culture",
+ url: '/culture,16'
+ }, {
+ name: "Next",
+ url: 'http://next.liberation.fr/'
+ }, {
+ name: "Idées",
+ url: '/debats,18'
+ }, {
+ name: "Blogs",
+ url: '/blogs,26'
+ }, {
+ name: "Vidéo",
+ url: '/video,19'
+ }, {
+ name: "Photo",
+ url: '/photographie,99965'
+ }, {
+ name: "Radio",
+ url: '/liberadio,100417'
+ }, {
+ name: "Sports",
+ url: '/sports,14'
+ }, {
+ name: "Livres",
+ url: '/livres,60'
+ }, {
+ name: "EcoFutur",
+ url: '/ecofutur,100181'
+ }, {
+ name: "Terre",
+ url: '/terre,89'
+ }, {
+ name: "Théâtre",
+ url: '/theatre,28'
+ }, {
+ name: "Voyages",
+ url: '/voyages,55'
+ }, {
+ name: "Écrans",
+ url: 'http://ecrans.liberation.fr/'
+ }, {
+ name: "Sciences",
+ url: '/sciences,90'
+ }, {
+ name: "Sexe & genre",
+ url: 'http://next.liberation.fr/sexe,100124'
+ }, {
+ name: "Vous",
+ url: '/vous,15'
+ }, {
+ name: "Désintox",
+ url: '/desintox,99721'
+ }, {
+ name: "Tchats",
+ url: '/tchats,25'
+ }, {
+ name: "Forums thématiques",
+ url: '/forums,24'
+ }, {
+ name: "Événements",
+ url: '/evenements-libe,100200'
+ }];
+ for (var i = 0; i &lt; menu_list.length; i++) {
+ item = menu_list[i];
+ var section = document.createElement('li');
+ if (item.name == current_section) {
+ section.classList.add('active');
+ }
+ var sectionLink = document.createElement('a');
+ sectionLink.href = item.url;
+ sectionLink.textContent = item.name;
+ section.appendChild(sectionLink);
+ mobileHeader.appendChild(section);
+ }
+ </script>
+ </ul>
+ <!-- <div id="peek">
+ <div class="wrapper">
+ <a class="media" href="http://journal.liberation.fr/publication/liberation/1504/"><img src="http://md0.libe.com/api/libe/v2/paperpage/204159/?format=jpg" alt="La Une du 24 mars 2014"/></a>
+ <div class="content">
+ <div class="name">
+ Journal numérique <time class="time" datetime="2014-03-24T00:00:00">24 mars 2014</time>
+ </div>
+ <p>
+ <a href="http://token.liberation.fr/accounts/offers/">Abonnez-vous</a> à partir de 1€
+ </p>
+ <span class="link"><a href="http://journal.liberation.fr/publication/liberation/1504/">Feuilleter</a><i class="icon-forward"></i></span>
+ </div>
+ </div>
+ </div> --></div>
+ <!-- /.navbar-collapse -->
+ </div>
+ <!-- /.panel -->
+ <!-- Collect the nav links, forms, and other content for toggling -->
+ <div class="panel">
+ <div class="collapse navbar-collapse" id="header_mobile_user">
+ <ul class="nav navbar-nav">
+ <li id="mobile_account">
+ <a id="mobile_account_username" data-href="/accounts/personal-data/"></a>
+ </li>
+ <li id="mobile_logout"><a data-href="http://token.liberation.fr/accounts/logout/?next=/">Se déconnecter</a></li>
+ <li id="mobile_connect"><a data-href="http://token.liberation.fr/accounts/login/">Se connecter</a></li>
+ <li id="mobile_signin"><a data-href="http://token.liberation.fr/accounts/register/">S'inscrire</a></li>
+ <li class="mea"> <a data-href="http://journal.liberation.fr/publication/liberation/1846/">Le journal</a> </li>
+ <li class="mea"> <a data-href="/bibliotheque/">La bibliothèque</a> </li>
+ <li class="divider"></li>
+ </ul>
+ </div>
+ <!-- /.navbar-collapse -->
+ </div>
+ <!-- /.panel --><span class="articleSection"><a href="/monde,10">Monde</a></span> </div>
+ <!-- /#header_mobile -->
+ </nav>
+ <!-- END -->
+ <script type="text/javascript">
+ // userinfo
+ if (libeUserInfo['authenticated']) {
+ document.getElementById('mobile_account_username').innerHTML = dispayName;
+ }
+ var header_mobile = document.getElementById('header_mobile');
+ var item_list = header_mobile.getElementsByTagName("a");
+ for (var i = 0; i &lt; item_list.length; i++) {
+ var dataHref = item_list[i].attributes['data-href'];
+ if (typeof(dataHref) != "undefined") {
+ item_list[i].href = dataHref.nodeValue;
+ }
+ }
+ </script>
+ <!-- Header mobile -->
+ <header id="header" role="banner">
+ <div class="wrapper line">
+ <div id="logo" class="mod">
+ <a href="/"><img src="http://s1.libe.com/img/logo-liberation-311x113.png" alt="Libération"/></a> <span class="articleSection"><a href="/monde,10">Monde</a></span> </div>
+ <div id="peek" class="mod">
+ <div class="wrapper">
+ <a class="media" href="http://journal.liberation.fr/publication/liberation/1846/"> <img src="http://md0.libe.com/api/libe/v2/paperpage/218375/?format=jpg" alt="La Une du 30 avril 2015"/> </a>
+ <div class="content">
+ <div class="name">Journal numérique
+ <time class="time" datetime="2015-04-30T00:00:00">30 avril 2015</time>
+ </div>
+ <p><a href="http://token.liberation.fr/accounts/offers/">Abonnez-vous</a> 1€ le premier mois</p> <span class="link"><a href="http://journal.liberation.fr/publication/liberation/1846/">Feuilleter</a><i class="icon-forward"></i></span> </div>
+ </div>
+ </div>
+ </div>
+ </header>
+ <nav id="nav-main" role="navigation">
+ <div class="wrapper line">
+ <!-- START - Search -->
+ <div id="search" class="right"><span class="button"><em>Rechercher</em><i class="icon-zoom"></i></span>
+ <form method="get" action="/recherche/">
+ <fieldset class="target">
+ <input type="search" name="q" class="focus"/>
+ <input class="btn grey" type="submit" value="Rechercher"/>
+ </fieldset>
+ </form>
+ </div>
+ <!-- END - Search -->
+ <div class="display"><i class="icon-menu"></i></div>
+ <ul class="heading">
+ <li class="menu-politiques"><a title="Rubrique Politique" href="/politiques,11">Politique</a></li>
+ <li class="menu-societe"><a title="Rubrique Société" href="/societe,12">Société</a></li>
+ <li class="active menu-monde"><a title="Rubrique Monde" href="/monde,10">Monde</a></li>
+ <li class="menu-economie"><a title="Rubrique Économie" href="/economie,13">Économie</a></li>
+ <li class="menu-culture"><a title="Rubrique Culture" href="/culture,16">Culture</a></li>
+ <li class="menu-home_next"><a title="Rubrique Next" href="http://next.liberation.fr/">Next</a></li>
+ <li class="menu-rebonds"><a title="Rubrique Idées" href="/debats,18">Idées</a></li>
+ <li class="menu-blogs"><a title="Rubrique Blogs" href="/blogs,26">Blogs</a></li>
+ <li class="menu-video"><a title="Rubrique Vidéo" href="/video,19">Vidéo</a></li>
+ <li class="menu-photographie"><a title="Rubrique Photo" href="/photographie,99965">Photo</a></li>
+ <li class="menu-liberadio"><a title="Rubrique Radio" href="/liberadio,100417">Radio</a></li>
+ <li class="more"><a href="#" class="button"><em>Plus...</em><i class="icon-down"></i></a>
+ <ol class="target">
+ <li class="menu-sports"><a title="Rubrique Sports" href="/sports,14">Sports</a></li>
+ <li class="menu-livres"><a title="Rubrique Livres" href="/livres,60">Livres</a></li>
+ <li class="menu-ecofutur"><a title="Rubrique EcoFutur" href="/ecofutur,100181">EcoFutur</a></li>
+ <li class="menu-terre"><a title="Rubrique Terre" href="/terre,89">Terre</a></li>
+ <li class="menu-theatre"><a title="Rubrique Théâtre" href="/theatre,28">Théâtre</a></li>
+ <li class="menu-voyages"><a title="Rubrique Voyages" href="/voyages,55">Voyages</a></li>
+ <li class="menu-ecrans"><a title="Rubrique Écrans" href="http://ecrans.liberation.fr/">Écrans</a></li>
+ <li class="menu-sciences"><a title="Rubrique Sciences" href="/sciences,90">Sciences</a></li>
+ <li class="menu-sexe"><a title="Rubrique Sexe &amp; genre" href="http://next.liberation.fr/sexe,100124">Sexe &amp; genre</a></li>
+ <li class="menu-vous"><a title="Rubrique Vous" href="/vous,15">Vous</a></li>
+ <li class="menu-desintox"><a title="Rubrique Désintox" href="/desintox,99721">Désintox</a></li>
+ <li class="menu-tchats"><a title="Rubrique Tchats" href="/tchats,25">Tchats</a></li>
+ <li class="menu-forums"><a title="Rubrique Forums thématiques" href="/forums,24">Forums thématiques</a></li>
+ </ol>
+ </li>
+ </ul>
+ <ul class="special right">
+ <li class="menu-evenementslibe"><a title="Rubrique Événements" href="/evenements-libe,100200">Événements</a></li>
+ </ul>
+ </div>
+ <hr/>
+ <div class="wrapper line nav-secondary">
+ <ul class="heading hsb">
+ <li><a title="Rubrique Ukraine,&nbsp;la&nbsp;drôle&nbsp;de&nbsp;guerre" href="/ukraine-la-crise,100372">Ukraine,&nbsp;la&nbsp;drôle&nbsp;de&nbsp;guerre</a></li>
+ <li><a title="Rubrique Le&nbsp;chaos&nbsp;libyen" href="/Libye-jihadisme,100491">Le&nbsp;chaos&nbsp;libyen</a></li>
+ <li><a title="Rubrique La&nbsp;Grèce&nbsp;à&nbsp;gauche&nbsp;toute" href="/grece-elections,100485">La&nbsp;Grèce&nbsp;à&nbsp;gauche&nbsp;toute</a></li>
+ <li><a title="Rubrique Vu&nbsp;du&nbsp;Japon" href="/vu-du-japon,100384">Vu&nbsp;du&nbsp;Japon</a></li>
+ <li><a title="Rubrique Vu&nbsp;de...&nbsp;la&nbsp;planète" href="/vu-du-monde,100436">Vu&nbsp;de...&nbsp;la&nbsp;planète</a></li>
+ <li><a title="Rubrique Ebola,&nbsp;la&nbsp;fièvre&nbsp;baisse" href="/ebola-virus-epidemie,100451">Ebola,&nbsp;la&nbsp;fièvre&nbsp;baisse</a></li>
+ </ul>
+ </div>
+ </nav>
+ <div id="ad-portal">
+ <div id="ad-megaban_top1" class="mod media-ext">
+ <div class="wrapper">
+ <script type="text/javascript">
+ // laisser ce commentaire !
+ //sas_manager.render(225);
+ var sas_formatid = 225;
+ var sas_format_str = "megaban_top1";
+ var sas_pageid = "252/82921";
+ var sas_target = "support=article;objectId=article1278483;largeur=1000;resolution=" + ((client_width >= 1300) ? "HD;" : "SD;");
+ if (isVisibleAd(sas_format_str)) {
+ displayAd(document, sas_pageid, sas_formatid, sas_target, sas_format_str);
+ }
+ </script>
+ </div>
+ </div>
+ <div id="body-content" role="main">
+ <div id="ads_debug_js"></div>
+ <script type="text/javascript">
+ var displayAd = (function() {
+ var original = displayAd;
+ return function(d, sas_pageid, sas_formatid, sas_target, format_str) {
+ original(d, sas_pageid, sas_formatid, sas_target, format_str);
+ }
+ })();
+ </script>
+ <div class="wrapper line">
+ <div class="grid-2-1 main-content line">
+ <div class="mod" role="article">
+ <section id="news-article">
+ <article itemscope="" itemtype="http://schema.org/NewsArticle">
+ <ul class="breadcrumbs">
+ <li itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb">
+ <a href="http://www.liberation.fr" itemprop="url"> <span itemprop="title">Accueil</span> </a>
+ </li> <span class="separator">›</span>
+ <li itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb">
+ <a href="/monde,10" itemprop="url"> <span itemprop="title">Monde</span> </a>
+ </li>
+ </ul>
+ <!-- <span itemprop="articleSection">Monde</span> -->
+ <header class="banner-headline">
+ <h1 itemprop="headline">Un troisième Français mort dans le séisme au Népal</h1>
+ <div class="info"> <span class="author" itemprop="author creator" itemscope="" itemtype="http://schema.org/Person"><a href="http://www.liberation.fr/auteur/2005-afp"><span itemprop="name"> AFP</span></a>
+ </span>
+ <time itemprop="datePublished" datetime="2015-04-30T07:19:58"> 30 avril 2015 à 07:19 </time> <span class="maj">(Mis à jour : <time itemprop="dateModified" datetime="2015-04-30T07:38:17">30 avril 2015 à 07:38</time>)</span>
+ <!--
+ <span class="comment">
+ commentaire
+ </span>
+ --></div>
+ <aside class="tool-bar">
+ <ul>
+ <li class="facebook"><a target="_blank" rel="nofollow" title="Cliquez pour partager sur Facebook" href="https://www.facebook.com/sharer/sharer.php?t=Un%20troisi%C3%A8me%20Fran%C3%A7ais%20mort%20dans%20le%20s%C3%A9isme%20au%20N%C3%A9pal&amp;u=http%3A//www.liberation.fr/monde/2015/04/30/un-troisieme-francais-mort-dans-le-seisme-au-nepal_1278483"><span class="name">Facebook :</span><i class="icon-facebook"></i><span class="hit">Facebook</span></a></li>
+ <li class="twitter"><a target="_blank" rel="nofollow" title="Cliquez pour partager sur Twitter" href="https://twitter.com/intent/tweet?text=Un%20troisi%C3%A8me%20Fran%C3%A7ais%20mort%20dans%20le%20s%C3%A9isme%20au%20N%C3%A9pal&amp;related=libe&amp;via=libe&amp;url=http%3A//www.liberation.fr/monde/2015/04/30/un-troisieme-francais-mort-dans-le-seisme-au-nepal_1278483"><span class="name">Twitter :</span><i class="icon-twitter"></i><span class="hit">Twitter</span></a></li>
+ <li class="google"><a target="_blank" rel="nofollow" title="Cliquez pour partager sur Google+" href="https://plus.google.com/share?hl=fr&amp;url=http%3A//www.liberation.fr/monde/2015/04/30/un-troisieme-francais-mort-dans-le-seisme-au-nepal_1278483"><span class="name">Google+ :</span><i class="icon-google-plus"></i><span class="hit">Google+</span></a></li>
+ <li class="send"><a target="_blank" rel="nofollow" title="Cliquer pour envoyer par mail" href="mailto:?subject=Lu%20sur%20liberation.fr%20Un%20troisi%C3%A8me%20Fran%C3%A7ais%20mort%20dans%20le%20s%C3%A9isme%20au%20N%C3%A9pal&amp;body=Un%20troisi%C3%A8me%20Fran%C3%A7ais%20mort%20dans%20le%20s%C3%A9isme%20au%20N%C3%A9pal%0D%0ALaurent%20Fabius%20a%20accueilli%20jeudi%20matin%20%C3%A0%20Roissy%20un%20premier%20avion%20sp%C3%A9cial%20ramenant%20des%20rescap%C3%A9s.%0D%0A%0D%0ARetrouvez%20cet%20article%20sur%20le%20site%20de%20Lib%C3%A9ration%20:%20http%3A//www.liberation.fr/monde/2015/04/30/un-troisieme-francais-mort-dans-le-seisme-au-nepal_1278483"><span class="name">Envoyer :</span><i class="icon-mail"></i><span class="hit">Mail</span></a></li>
+ <li class="print"><a href="#" onclick="window.print();return false;"><span class="name">Imprimer cet article</span><i class="icon-print"></i><span class="hit">Imprimer</span></a></li>
+ <li class="reader"><a href="#"><span class="name">Lire sur le reader</span><i class="icon-reader"></i><span class="hit">Mode zen</span></a></li>
+ </ul>
+ </aside>
+ <figure itemscope="" itemtype="http://schema.org/ImageObject"> <img itemprop="contentURL" src="http://md1.libe.com/photo/755923-000_hkg10175905.jpg?modified_at=1430371146&amp;width=750" alt="Un Népalais prie à Katmandou, le 30 avril 2015." data-src="http://md1.libe.com/photo/755923-000_hkg10175905.jpg?modified_at=1430371146&amp;width=750" data-src-retina="http://md1.libe.com/photo/755923-000_hkg10175905.jpg?modified_at=1430371146&amp;width=750" data-lazy-load="false" width="750"/>
+ <figcaption itemprop="description">Un Népalais prie à Katmandou, le 30 avril 2015. (Photo Prakash Mathema. AFP)</figcaption>
+ </figure>
+ <div class="description">
+ <h2 itemprop="description">Laurent Fabius a accueilli jeudi matin à Roissy un premier avion spécial ramenant des rescapés.</h2>
+ <div itemprop="copyrightHolder provider sourceOrganization" itemscope="" itemtype="http://schema.org/Organization">
+ <meta itemprop="name" content="Libération"/>
+ <meta itemprop="url" content="http://www.liberation.fr/contacts/"/> </div>
+ </div>
+ </header>
+ <div class="article-body mod" itemprop="articleBody" id="article-body">
+ <aside class="related" id="related-content"> <span class="name">Sur le même sujet</span>
+ <ul>
+ <li>
+ <div>
+ <a href="/monde/2015/04/29/a-katmandou-exode-sous-pression_1277386"> <span class="slug">Reportage</span>
+ <h2 class="diamond">
+ A Katmandou, exode sous pression
+ </h2> </a> <span class="author">
+
+Par<span class="authorname"> Sébastien Farcis</span> </span>
+ </div>
+ </li>
+ <li>
+ <div>
+ <a href="/monde/2015/04/29/aide-humanitaire-au-nepal-plus-les-heures-passent-moins-on-est-utiles_1276779"> <span class="slug">interview</span>
+ <h2>
+ Népal : «Plus les heures passent, moins on est utiles»
+ </h2> </a> <span class="author">
+
+Par<span class="authorname"> Laurence Defranoux</span> </span>
+ </div>
+ </li>
+ </ul>
+ </aside>
+ <div>
+ <p>Un troisième Français a été tué dans le tremblement de terre samedi au Népal, emporté par une avalanche, <a href="http://www.liberation.fr/video/2015/04/30/laurent-fabius-plus-de-200-francais-n-ont-pas-ete-retrouves_1278687" target="_blank">a déclaré jeudi le ministre des Affaires étrangères</a>.&nbsp;Les autorités françaises sont toujours sans nouvelles <em>«d’encore plus de 200»&nbsp;</em>personnes.&nbsp;<em>«Pour certains d’entre eux on est très interrogatif»</em>, a ajouté&nbsp;Laurent Fabius. Il accueillait à Roissy un premier avion spécial ramenant des&nbsp;rescapés. <a href="http://www.liberation.fr/video/2015/04/30/seisme-au-nepal-soulages-mais-inquiets-206-survivants-de-retour-en-france_1278758" target="_blank">L’Airbus A350 affrété par les autorités françaises s’est posé peu avant 5h45</a> avec à son bord 206&nbsp;passagers, dont 12&nbsp;enfants et 26&nbsp;blessés, selon une source du Quai d’Orsay. Quasiment tous sont français, à l’exception d’une quinzaine de ressortissants allemands, suisses, italiens, portugais ou encore turcs. Des psychologues, une équipe médicale et des personnels du centre de crise du Quai d’Orsay les attendent.</p>
+ <p>L’appareil, mis à disposition par Airbus, était arrivé à Katmandou mercredi matin avec 55&nbsp;personnels de santé et humanitaires, ainsi que 25&nbsp;tonnes de matériel (abris, médicaments, aide alimentaire). Un deuxième avion dépêché par Paris, qui était immobilisé aux Emirats depuis mardi avec 20&nbsp;tonnes de matériel, est arrivé jeudi à Katmandou, <a href="http://www.liberation.fr/monde/2015/04/29/embouteillages-et-retards-a-l-aeroport-de-katmandou_1276612" target="_blank">dont le petit aéroport est engorgé</a> par le trafic et l’afflux d’aide humanitaire. Il devait lui aussi ramener des Français, <em>«les plus éprouvés»</em> par la catastrophe et les <em>«plus vulnérables (blessés, familles avec enfants)»</em>, selon le ministère des Affaires étrangères.</p>
+ <p>2 209 Français ont été localisés sains et saufs tandis que 393 n’ont pas encore pu être joints, selon le Quai d’Orsay. Environ 400&nbsp;Français ont demandé à être rapatriés dans les vols mis en place par la France.</p>
+ <p>Le séisme a fait près de 5&nbsp;500 morts et touche huit des 28 millions d’habitants du Népal. Des dizaines de milliers de personnes sont sans abri.</p>
+ <p>
+ <iframe src="http://www.dailymotion.com/embed/video/x2oikl3" frameborder="0" width="100%" data-aspect-ratio="0.5625" data-responsive="1"></iframe>
+ <br/><em></em></p>
+ </div>
+ <div class="authors-container"> <span class="author" itemprop="author creator" itemscope="" itemtype="http://schema.org/Person"><a href="http://www.liberation.fr/auteur/2005-afp"><span itemprop="name"> AFP</span></a>
+ </span>
+ </div>
+ </div>
+ </article>
+ </section>
+ <div class="promo">
+ <section class="outside line">
+ <div class="OUTBRAIN" data-src="http://liberation.fr/monde/2015/04/30/un-troisieme-francais-mort-dans-le-seisme-au-nepal_1278483" data-widget-id="AR_4" data-ob-template="liberation"></div>
+ <div class="OUTBRAIN" data-src="http://liberation.fr/monde/2015/04/30/un-troisieme-francais-mort-dans-le-seisme-au-nepal_1278483" data-widget-id="AR_3" data-ob-template="liberation"></div>
+ </section>
+ </div>
+ <script type="text/javascript">
+ if (is_responsive_mobile) {
+ var MB_2 = document.getElementsByClassName('OUTBRAIN')[0]
+ MB_2.setAttribute('data-widget-id', 'MB_2');
+ MB_2.setAttribute('data-ob-template', 'liberation');
+ MB_2.classList.add('OUTBRAIN');
+ var MB_3 = document.getElementsByClassName('OUTBRAIN')[1]
+ MB_3.setAttribute('data-widget-id', 'MB_3');
+ }
+ if (document.body.classList.contains('premium') && !is_responsive_mobile && isPubActive) {
+ var MB_2 = document.getElementsByClassName('OUTBRAIN')[0]
+ MB_2.setAttribute('data-widget-id', 'AR_7');
+ var MB_3 = document.getElementsByClassName('OUTBRAIN')[1]
+ MB_3.setAttribute('data-widget-id', 'AR_8');
+ }
+ toggleDynamicScript('http://widgets.outbrain.com/outbrain.js', false, false);
+ </script>
+ <!--[if lt IE 10]>
+ <script type="text/javascript" src="http://a.ligatus.com/?ids=&t=js"></script>
+<![endif]-->
+ <div class="promo">
+ <iframe id="placement_ligatus_liberation" scrolling="no" frameborder="0" allowtransparency="true" width=""></iframe>
+ <section class="outside line ligatus">
+ <div id="ligatus_liberation_liberation_smartbox_monde"></div>
+ </section>
+ <script type="text/javascript">
+ function init_ligatus(e) {
+ if (window.matchMedia("(min-width:959px)").matches) {
+ document.getElementById('placement_ligatus_liberation').style.display = "none"
+ var vs = document.createElement('script');
+ vs.type = 'text/javascript';
+ vs.async = false;
+ vs.src = 'http://i.ligatus.com/fr-placements/containers/liberation/liberation_site/tc-site-monde.js';
+ var s = document.getElementsByTagName('script')[0];
+ s.parentNode.insertBefore(vs, s);
+ }
+ }
+ if (typeof isPubActive !== 'undefined' && isPubActive && !is_responsive_mobile) {
+ window.addEventListener('resize', init_ligatus, false);
+ init_ligatus();
+ }
+ </script>
+ </div>
+ <script type="text/javascript">
+ function redimensionnement_gal(e) {
+ var result = document.getElementById('placement_ligatus_liberation');
+ if ("matchMedia" in window) {
+ if (window.matchMedia("(max-width:959px)").matches) {
+ if (result.src != "http://a.ligatus.com/?ids=47149") {
+ document.getElementById('ligatus_liberation_liberation_smartbox_monde').parentNode.style.display = "none"
+ result.src = "http://a.ligatus.com/?ids=47149";
+ }
+ result.style.height = "240px";
+ }
+ }
+ }
+ if (typeof isPubActive !== 'undefined' && isPubActive && is_responsive_mobile) {
+ window.addEventListener('resize', redimensionnement_gal, false);
+ redimensionnement_gal();
+ }
+ </script>
+ <div class="promo">
+ <section class="outside line">
+ <div id="ultimedia_wrapper"></div>
+ </section>
+ </div>
+ <script type="text/javascript">
+ var ULTIMEDIA_mdtk = "01114596";
+ var ULTIMEDIA_target = "ultimedia_wrapper";
+ var ULTIMEDIA_async = false;
+ </script>
+ <script type="text/javascript">
+ toggleDynamicScript('http://www.ultimedia.com/js/common/smart.js', false, false);
+ </script>
+ <div id="comments_container"></div>
+ </div>
+ <aside id="sidebar" class="mod" role="complementary">
+ <div class="mod newsletter-form">
+ <h2>Recevoir la newsletter</h2>
+ <p>L'actu Libé tous les matins par email</p>
+ <form class="newsletter_form_js">
+ <input type="text" id="EMAIL_FIELD" name="EMAIL_FIELD" placeholder="Adresse e-mail" class="email-field"/>
+ <input type="button" value="S'inscrire" class="btn libe" onclick="return validForm(this, 'newsletter-form');"/> </form>
+ </div>
+ <div class="live"> <a class="live-title" href="/direct/">Direct<i class="icon-arrow-right"></i></a>
+ <ul class="live-flux live_flux_js" data-since="1430397895.165800" data-before="1430381429.720523" data-html-api-attr="side_html" data-polling="True">
+ <li data-id="6196" data-modified-at="1430397895.165800" data-published-at="1430397895.152374" data-pinned="false" class="live-item live_item_js">
+ <div class="live-item-title-container">
+ <a class="live-item-pub-date" href="http://www.liberation.fr/direct/element/6196/" target="_blank"> <span>14:44</span> </a>
+ <a href="http://www.liberation.fr/direct/#live-item-6196" target="_blank"> <span class="live-item-title">Accusations de viols : 14 militaires mis en cause, certains identifiés </span> </a>
+ </div>
+ </li>
+ <li data-id="6193" data-modified-at="1430397298.730245" data-published-at="1430397135.543906" data-pinned="false" class="live-item live_item_js">
+ <div class="live-item-title-container">
+ <a class="live-item-pub-date" href="http://www.liberation.fr/direct/element/6193/" target="_blank"> <span>14:32</span> </a>
+ <a href="http://www.liberation.fr/direct/#live-item-6193" target="_blank"> <span class="live-item-title">Un artiste arrêté pour avoir coloré un geyser</span> </a>
+ </div>
+ <a href="http://www.liberation.fr/direct/#live-item-6193" target="_blank"> </a>
+ <div class="live-item-tweet"> <img class="tweet-image" src="http://pbs.twimg.com/media/CDwsg63WgAAZwcT.jpg"/>
+ <div class="tweet">
+ <div class="tweet-profile">
+ <a class="tweet-profile-picture" href="#"> <img src="http://pbs.twimg.com/profile_images/525022505140899840/SqjK4CPu_normal.png"/> </a>
+ <div class="tweet-profile-identity">
+ <div class="tweet-user-name">artnet</div> <a class="tweet-screen-name" href="https://twitter.com/artnet">@artnet</a> </div>
+ </div>
+ <div class="tweet-content">Dying an Icelandic geyser pink will get you jail time - even if it’s supposed to be art. <a target="_blank" href="http://t.co/IgVZui0c0h">artnt.cm/1ECDaUq</a> </div>
+ </div>
+ </div>
+ </li>
+ <li data-id="6192" data-modified-at="1430395845.559177" data-published-at="1430395845.554755" data-pinned="false" class="live-item live_item_js">
+ <div class="live-item-title-container">
+ <a class="live-item-pub-date" href="http://www.liberation.fr/direct/element/6192/" target="_blank"> <span>14:10</span> </a>
+ <div class="live-item-content"> <span class="flavor-text">Séisme.</span>
+ <p>Un tremblement de terre de magnitude 6,8 a touché la Papouasie-Nouvelle-Guinée, <a href="http://earthquake.usgs.gov/earthquakes/map/#%7B%22feed%22%3A%221day_m25%22%2C%22search%22%3Anull%2C%22listFormat%22%3A%22default%22%2C%22sort%22%3A%22newest%22%2C%22basemap%22%3A%22grayscale%22%2C%22autoUpdate%22%3Atrue%2C%22restrictListToMap%22%3Atrue%2C%22timeZone%22%3A%22utc%22%2C%22mapposition%22%3A%5B%5B-8.4452052381799%2C147.7056884765625%5D%2C%5B-3.5846952187809125%2C155.1763916015625%5D%5D%2C%22overlays%22%3A%7B%22plates%22%3Atrue%7D%2C%22viewModes%22%3A%7B%22list%22%3Atrue%2C%22map%22%3Atrue%2C%22settings%22%3Afalse%2C%22help%22%3Afalse%7D%7D" target="_blank">selon l'Institut d'études géologiques américain</a> (USGS). L'épicentre se situe sous l'île de Nouvelle-Bretagne, la plus grande de l'archipel Bismarck, au sud de Rabaul, ville détruite en 1994 par une éruption volcanique.</p>
+ </div>
+ </div>
+ </li>
+ <li data-id="6191" data-modified-at="1430395159.575099" data-published-at="1430394859.715612" data-pinned="false" class="live-item live_item_js">
+ <div class="live-item-title-container">
+ <a class="live-item-pub-date" href="http://www.liberation.fr/direct/element/6191/" target="_blank"> <span>13:54</span> </a>
+ <a href="http://www.liberation.fr/direct/#live-item-6191" target="_blank"> <span class="live-item-title">En Islande, tuer un Basque est désormais interdit</span> </a>
+ </div>
+ <a href="http://www.liberation.fr/direct/#live-item-6191" target="_blank"> <img class="live-item-image" src="http://md0.libe.com/photo/631481-des-drapeaux-aux-couleurs-basques.jpg?modified_at=1395757809" title=""/> </a>
+ </li>
+ <li data-id="6189" data-modified-at="1430394327.620160" data-published-at="1430394224.78608" data-pinned="false" class="live-item live_item_js">
+ <div class="live-item-title-container">
+ <a class="live-item-pub-date" href="http://www.liberation.fr/direct/element/6189/" target="_blank"> <span>13:43</span> </a>
+ <a href="http://www.liberation.fr/direct/#live-item-6189" target="_blank"> <span class="live-item-title">Accusation de viols en Centrafrique : «il y aura des sanctions» si les faits sont avérés</span> </a>
+ </div>
+ <a href="http://www.liberation.fr/direct/#live-item-6189" target="_blank">
+ <div class="live-item-video-thumb replace_video_js" style="background-image: url(//www.dailymotion.com/thumbnail/video/x2oj8id)"></div>
+ </a>
+ </li>
+ <li data-id="6190" data-modified-at="1430393088.71816" data-published-at="1430393088.66748" data-pinned="false" class="live-item live_item_js">
+ <div class="live-item-title-container">
+ <a class="live-item-pub-date" href="http://www.liberation.fr/direct/element/6190/" target="_blank"> <span>13:24</span> </a>
+ <div class="live-item-content"> <span class="flavor-text">​Népal.</span>
+ <p><a href="http://www.liberation.fr/monde/2015/04/30/un-troisieme-francais-mort-dans-le-seisme-au-nepal_1278483" target="_blank">La troisième victime française</a> du séisme au Népal, dont la mort a été annoncée ce matin par Laurent Fabius, serait une trentenaire originaire de Lyon, <a href="http://www.leprogres.fr/actualite/2015/04/30/un-troisieme-francais-mort-dans-le-seisme" target="_blank">selon le quotidien local <em>le Progrès</em></a>. Elle aurait été emportée par une coulée de boue lors d'un trek.</p>
+ </div>
+ </div>
+ </li>
+ <li data-id="6188" data-modified-at="1430392702.347323" data-published-at="1430392702.342465" data-pinned="false" class="live-item live_item_js">
+ <div class="live-item-title-container">
+ <a class="live-item-pub-date" href="http://www.liberation.fr/direct/element/6188/" target="_blank"> <span>13:18</span> </a>
+ <a href="http://www.liberation.fr/direct/#live-item-6188" target="_blank"> <span class="live-item-title">Loi renseignement : le Conseil constitutionnel refuse d'examiner l'intégralité du texte</span> </a>
+ </div>
+ <a href="http://www.liberation.fr/direct/#live-item-6188" target="_blank"> </a>
+ <div class="live-item-tweet">
+ <div class="tweet">
+ <div class="tweet-profile">
+ <a class="tweet-profile-picture" href="#"> <img src="http://pbs.twimg.com/profile_images/529237339709517824/-k-bIWzH_normal.jpeg"/> </a>
+ <div class="tweet-profile-identity">
+ <div class="tweet-user-name">Laure de La Raudière</div> <a class="tweet-screen-name" href="https://twitter.com/lauredlr">@lauredlr</a> </div>
+ </div>
+ <div class="tweet-content"><a target="_blank" href="http://twitter.com/search?q=PJLRenseignement">#PJLRenseignement</a> <a target="_blank" href="http://twitter.com/search?q=SaisineParlementaire">#SaisineParlementaire</a> maintenant, nous sommes 58 ! Plus que deux députés et c'est bon.</div>
+ </div>
+ </div>
+ </li>
+ <li data-id="6185" data-modified-at="1430392122.945716" data-published-at="1430392122.943037" data-pinned="false" class="live-item live_item_js">
+ <div class="live-item-title-container">
+ <a class="live-item-pub-date" href="http://www.liberation.fr/direct/element/6185/" target="_blank"> <span>13:08</span> </a>
+ <a href="http://www.liberation.fr/direct/#live-item-6185" target="_blank"> <span class="live-item-title">Les calories bientôt affichées sur les bouteilles d'alcool</span> </a>
+ </div>
+ <a href="http://www.liberation.fr/direct/#live-item-6185" target="_blank"> <img class="live-item-image" src="http://md0.libe.com/photo/703736--.jpg?modified_at=1419846514" title=""/> </a>
+ </li>
+ <li data-id="6187" data-modified-at="1430391437.357331" data-published-at="1430391437.353734" data-pinned="false" class="live-item live_item_js">
+ <div class="live-item-title-container">
+ <a class="live-item-pub-date" href="http://www.liberation.fr/direct/element/6187/" target="_blank"> <span>12:57</span> </a>
+ <a href="http://www.liberation.fr/direct/#live-item-6187" target="_blank"> <span class="live-item-title">Un journaliste colombien s'envoie des menaces de mort pour avoir une protection policière</span> </a>
+ </div>
+ </li>
+ <li data-id="6176" data-modified-at="1430390871.606907" data-published-at="1430390871.603289" data-pinned="false" class="live-item live_item_js">
+ <div class="live-item-title-container">
+ <a class="live-item-pub-date" href="http://www.liberation.fr/direct/element/6176/" target="_blank"> <span>12:47</span> </a>
+ <a href="http://www.liberation.fr/direct/#live-item-6176" target="_blank"> <span class="live-item-title">Soldats accusés de viol en Centrafrique : Laurence Rossignol évoque un «double crime»</span> </a>
+ </div>
+ <a href="http://www.liberation.fr/direct/#live-item-6176" target="_blank">
+ <div class="live-item-video-thumb replace_video_js" style="background-image: url(//www.dailymotion.com/thumbnail/video/x2oj0r0)"></div>
+ </a>
+ </li>
+ <li data-id="6175" data-modified-at="1430390065.217747" data-published-at="1430390065.214903" data-pinned="false" class="live-item live_item_js">
+ <div class="live-item-title-container">
+ <a class="live-item-pub-date" href="http://www.liberation.fr/direct/element/6175/" target="_blank"> <span>12:34</span> </a>
+ <a href="http://www.liberation.fr/direct/#live-item-6175" target="_blank"> <span class="live-item-title">Russie : l'entreprise nationale Gazprom enregistre une baisse de 90% de ses bénéfices</span> </a>
+ </div>
+ <a href="http://www.liberation.fr/direct/#live-item-6175" target="_blank"> <img class="live-item-image" src="https://qzprod.files.wordpress.com/2015/04/rtr2325p.jpg?w=1600" title="Russia’s gas weapon, Gazprom, is rapidly losing pressure"/> </a>
+ </li>
+ <li data-id="6183" data-modified-at="1430392581.941865" data-published-at="1430389331.153851" data-pinned="false" class="live-item live_item_js">
+ <div class="live-item-title-container">
+ <a class="live-item-pub-date" href="http://www.liberation.fr/direct/element/6183/" target="_blank"> <span>12:22</span> </a>
+ <a href="http://www.liberation.fr/direct/#live-item-6183" target="_blank"> <span class="live-item-title">Rafale, jupe «trop longue», espionnage : le point sur l'actu à la mi-journée</span> </a>
+ </div>
+ </li>
+ <li data-id="6182" data-modified-at="1430389314.695678" data-published-at="1430389314.689919" data-pinned="false" class="live-item live_item_js">
+ <div class="live-item-title-container">
+ <a class="live-item-pub-date" href="http://www.liberation.fr/direct/element/6182/" target="_blank"> <span>12:21</span> </a>
+ <div class="live-item-content"> <span class="flavor-text">Au revoir.</span>
+ <p>Merci à tous d'avoir suivi ce live en ma compagnie. Il est temps pour Juliette Deborde d'en reprendre le contrôle, jusqu'à 16 heures !</p>
+ </div>
+ </div>
+ <a href="http://www.liberation.fr/direct/#live-item-6182" target="_blank">
+ <div class="live-item-video-thumb replace_video_js" style="background-image: url(//img.youtube.com/vi/B9PjBgWOkng/hqdefault.jpg)"></div>
+ </a>
+ </li>
+ <li data-id="6179" data-modified-at="1430389338.434217" data-published-at="1430389067.96618" data-pinned="false" class="live-item live_item_js">
+ <div class="live-item-title-container">
+ <a class="live-item-pub-date" href="http://www.liberation.fr/direct/element/6179/" target="_blank"> <span>12:17</span> </a>
+ <a href="http://www.liberation.fr/direct/#live-item-6179" target="_blank"> <span class="live-item-title">Pakistan : prison à vie pour les agresseurs de Malala </span> </a>
+ </div>
+ <a href="http://www.liberation.fr/direct/#live-item-6179" target="_blank"> <img class="live-item-image" src="http://md0.libe.com/photo/684944-000_ts-dv1887153.jpg?modified_at=1418736417" title=""/> </a>
+ </li>
+ <li data-id="6181" data-modified-at="1430388660.394639" data-published-at="1430388660.391365" data-pinned="false" class="live-item live_item_js">
+ <div class="live-item-title-container">
+ <a class="live-item-pub-date" href="http://www.liberation.fr/direct/element/6181/" target="_blank"> <span>12:11</span> </a>
+ <a href="http://www.liberation.fr/direct/#live-item-6181" target="_blank"> <span class="live-item-title">Une ado se défenestre après qu'une vidéo d'elle a circulé sur les réseaux sociaux</span> </a>
+ </div>
+ </li>
+ <li data-id="6180" data-modified-at="1430389277.663671" data-published-at="1430388279.475156" data-pinned="false" class="live-item live_item_js">
+ <div class="live-item-title-container">
+ <a class="live-item-pub-date" href="http://www.liberation.fr/direct/element/6180/" target="_blank"> <span>12:04</span> </a>
+ <a href="http://www.liberation.fr/direct/#live-item-6180" target="_blank"> <span class="live-item-title">La présentatrice du journal de bord de Jean-Marie Le Pen quitte le FN</span> </a>
+ </div>
+ </li>
+ <li data-id="6178" data-modified-at="1430389353.103217" data-published-at="1430387290.813592" data-pinned="false" class="live-item live_item_js">
+ <div class="live-item-title-container">
+ <a class="live-item-pub-date" href="http://www.liberation.fr/direct/element/6178/" target="_blank"> <span>11:48</span> </a>
+ <div class="live-item-content"> <span class="flavor-text">Défense.</span>
+ <p>La vente de 24 avions de combat Rafale au Qatar représente un contrat de 6,3 milliards d'euros, indique le ministère français de la Défense. </p>
+ <p>(photo AFP)</p>
+ </div>
+ </div>
+ <a href="http://www.liberation.fr/direct/#live-item-6178" target="_blank"> <img class="live-item-image" src="http://md0.libe.com/photo/715611--.jpg?modified_at=1423758922" title=""/> </a>
+ </li>
+ <li data-id="6177" data-modified-at="1430387144.455908" data-published-at="1430387144.450692" data-pinned="false" class="live-item live_item_js">
+ <div class="live-item-title-container">
+ <a class="live-item-pub-date" href="http://www.liberation.fr/direct/element/6177/" target="_blank"> <span>11:45</span> </a>
+ <a href="http://www.liberation.fr/direct/#live-item-6177" target="_blank"> <span class="live-item-title">Les banlieusards en Thaïlande : le pays de Oui-Oui ou Racailleland ?</span> </a>
+ </div>
+ </li>
+ <li data-id="6174" data-modified-at="1430389362.52356" data-published-at="1430386708.795337" data-pinned="false" class="live-item live_item_js">
+ <div class="live-item-title-container">
+ <a class="live-item-pub-date" href="http://www.liberation.fr/direct/element/6174/" target="_blank"> <span>11:38</span> </a>
+ <div class="live-item-content"> <span class="flavor-text">Point fashion.</span>
+ <p>Si vous êtes présentement épargné par la pluie, sachez qu'il y a <a href="http://www.meteofrance.com/previsions-meteo-france/metropole" target="_blank">peu de chances</a> que cet état de grâce se poursuive demain. Merci donc de noter une chose : le K-Way est de retour. Alors oui, on peut se moquer, et il faut bien admettre qu'on le fait, mais le mythique coupe-vent fête cette année son cinquantième anniversaire et il a grave la cote. Nos journalistes Virginie Ballet et Catherine Mallaval <a href="http://next.liberation.fr/mode/2015/04/30/l-ami-k-way_1233067" target="_blank">vous disent tout</a> sur ce retour de tendance. </p>
+ <p>(photo DR)</p>
+ </div>
+ </div>
+ <a href="http://www.liberation.fr/direct/#live-item-6174" target="_blank"> <img class="live-item-image" src="http://md1.libe.com/photo/728427-next70_culte_kway.jpg?modified_at=1430384803&amp;width=750" title=""/> </a>
+ </li>
+ <li data-id="6173" data-modified-at="1430389301.776911" data-published-at="1430386264.401609" data-pinned="false" class="live-item live_item_js">
+ <div class="live-item-title-container">
+ <a class="live-item-pub-date" href="http://www.liberation.fr/direct/element/6173/" target="_blank"> <span>11:31</span> </a>
+ <a href="http://www.liberation.fr/direct/#live-item-6173" target="_blank"> <span class="live-item-title">Caroline Fourest : «Le nombre d’analphabètes du dessin, de l’humour et du débat a explosé»</span> </a>
+ </div>
+ <a href="http://www.liberation.fr/direct/#live-item-6173" target="_blank">
+ <div class="live-item-video-thumb replace_video_js" style="background-image: url(//www.dailymotion.com/thumbnail/video/x2oivxc)"></div>
+ </a>
+ </li>
+ <li data-id="6168" data-modified-at="1430385918.980650" data-published-at="1430385918.948708" data-pinned="false" class="live-item live_item_js">
+ <div class="live-item-title-container">
+ <a class="live-item-pub-date" href="http://www.liberation.fr/direct/element/6168/" target="_blank"> <span>11:25</span> </a>
+ <a href="http://www.liberation.fr/direct/#live-item-6168" target="_blank"> <span class="live-item-title">Argentine : l'Etat va indemniser les victimes de l'attentat antisémite de 1994 </span> </a>
+ </div>
+ </li>
+ <li data-id="6172" data-modified-at="1430385241.602276" data-published-at="1430385241.595668" data-pinned="false" class="live-item live_item_js">
+ <div class="live-item-title-container">
+ <a class="live-item-pub-date" href="http://www.liberation.fr/direct/element/6172/" target="_blank"> <span>11:14</span> </a>
+ <div class="live-item-content"> <span class="flavor-text">Enlèvements.</span>
+ <p>L'armée nigériane a libéré 160 femmes et enfants détenus, lors d'une opération contre Boko Haram.<em> «Nous sommes toujours en train de dénombrer les personnes sauvées. Mais il y a environ 60 femmes de tous âges et environ 100 enfants»</em>, affirme le porte-parole de l'armée de terre. Une otage et un soldat ont été tués dans l'opération.</p>
+ </div>
+ </div>
+ </li>
+ <li data-id="6170" data-modified-at="1430389380.130386" data-published-at="1430384917.597535" data-pinned="false" class="live-item live_item_js">
+ <div class="live-item-title-container">
+ <a class="live-item-pub-date" href="http://www.liberation.fr/direct/element/6170/" target="_blank"> <span>11:08</span> </a>
+ <div class="live-item-content"> <span class="flavor-text">On est face à un mur.</span>
+ <p>Des voyageurs pleins de ressource ont décidé de murer intégralement la porte d'un wagon dans un train de banlieue à Hambourg. La police allemande apprécie moyen et précise qu'elle scrutera les images des caméras de vidéo-surveillance pour tenter de retrouver la trace des auteurs. Qui risquent de lourdes amendes et jusqu'à cinq ans de prison. </p>
+ <p>(photo AFP/Bundespolizei)</p>
+ </div>
+ </div>
+ <a href="http://www.liberation.fr/direct/#live-item-6170" target="_blank"> <img class="live-item-image" src="http://md0.libe.com/photo/756216-000_dv2014616.jpg?modified_at=1430384473" title=""/> </a>
+ </li>
+ <li data-id="6169" data-modified-at="1430384371.211740" data-published-at="1430384371.209262" data-pinned="false" class="live-item live_item_js">
+ <div class="live-item-title-container">
+ <a class="live-item-pub-date" href="http://www.liberation.fr/direct/element/6169/" target="_blank"> <span>10:59</span> </a>
+ <a href="http://www.liberation.fr/direct/#live-item-6169" target="_blank"> <span class="live-item-title">Jupe trop longue : 130 cas similaires, vraiment ?</span> </a>
+ </div>
+ </li>
+ <li data-id="6167" data-modified-at="1430383981.291101" data-published-at="1430383981.288257" data-pinned="false" class="live-item live_item_js">
+ <div class="live-item-title-container">
+ <a class="live-item-pub-date" href="http://www.liberation.fr/direct/element/6167/" target="_blank"> <span>10:53</span> </a>
+ <a href="http://www.liberation.fr/direct/#live-item-6167" target="_blank"> <span class="live-item-title">Un candidat de «Koh Lanta» avait caché son passé judiciaire</span> </a>
+ </div>
+ </li>
+ <li data-id="6163" data-modified-at="1430383415.955306" data-published-at="1430383415.952224" data-pinned="false" class="live-item live_item_js">
+ <div class="live-item-title-container">
+ <a class="live-item-pub-date" href="http://www.liberation.fr/direct/element/6163/" target="_blank"> <span>10:43</span> </a>
+ <div class="live-item-content"> <span class="flavor-text">Défense.</span>
+ <p>Le Qatar va acquérir 24 avions de combat Rafale, confirme l'Elysée. François Hollande se rendra à Doha le 4 mai afin d'assister à la signature des contrats.</p>
+ </div>
+ </div>
+ <a href="http://www.liberation.fr/direct/#live-item-6163" target="_blank"> </a>
+ <div class="live-item-tweet"> <img class="tweet-image" src="http://pbs.twimg.com/media/CD0459BWoAANWLC.png"/>
+ <div class="tweet">
+ <div class="tweet-profile">
+ <a class="tweet-profile-picture" href="#"> <img src="http://pbs.twimg.com/profile_images/554623459423031296/bzNTGLYo_normal.jpeg"/> </a>
+ <div class="tweet-profile-identity">
+ <div class="tweet-user-name">Élysée</div> <a class="tweet-screen-name" href="https://twitter.com/Elysee">@Elysee</a> </div>
+ </div>
+ <div class="tweet-content">L'Émir du Qatar a confirmé au président <a target="_blank" title="François Hollande" href="http://twitter.com/fhollande">@fhollande</a> l'acquisition de 24 avions de combat <a target="_blank" href="http://twitter.com/search?q=Rafale">#Rafale</a> </div>
+ </div>
+ </div>
+ </li>
+ <li data-id="6165" data-modified-at="1430382755.777564" data-published-at="1430382755.772305" data-pinned="false" class="live-item live_item_js">
+ <div class="live-item-title-container">
+ <a class="live-item-pub-date" href="http://www.liberation.fr/direct/element/6165/" target="_blank"> <span>10:32</span> </a>
+ <div class="live-item-content"> <span class="flavor-text">Népal.</span> </div>
+ </div>
+ <a href="http://www.liberation.fr/direct/#live-item-6165" target="_blank"> </a>
+ <div class="live-item-tweet"> <img class="tweet-image" src="http://pbs.twimg.com/media/CD006VXWAAECbk0.jpg"/>
+ <div class="tweet">
+ <div class="tweet-profile">
+ <a class="tweet-profile-picture" href="#"> <img src="http://pbs.twimg.com/profile_images/2579541358/0rmyxf4ccg09oh2ti4m4_normal.png"/> </a>
+ <div class="tweet-profile-identity">
+ <div class="tweet-user-name">France Info</div> <a class="tweet-screen-name" href="https://twitter.com/franceinfo">@franceinfo</a> </div>
+ </div>
+ <div class="tweet-content">Pemba, 15 ans, sorti des décombres à Katmandou, cinq jours après le séisme <a target="_blank" href="http://twitter.com/search?q=imagedujour">#imagedujour</a> <a target="_blank" href="http://t.co/V6x1dOunCv">bit.ly/FIPemba</a> </div>
+ </div>
+ </div>
+ </li>
+ <li data-id="6164" data-modified-at="1430382346.996381" data-published-at="1430382346.989637" data-pinned="false" class="live-item live_item_js">
+ <div class="live-item-title-container">
+ <a class="live-item-pub-date" href="http://www.liberation.fr/direct/element/6164/" target="_blank"> <span>10:25</span> </a>
+ <div class="live-item-content"> <span class="flavor-text">Indonésie.</span>
+ <p>Un Brésilien schizophrène exécuté en Indonésie n'était pas conscient de son destin jusqu'aux derniers instants avant d'être fusillé, indiquent son avocat et un prêtre. Condamné à mort pour trafic de drogue, Rodrigo Gularte, 42 ans, disait entendre des voix dans sa tête.<em> «</em><em>Quand nous avons dit que la peine de mort allait être appliquée, il a dit </em>"quelle peine de mort ?, je ne vais pas être condamné à mort", raconte à l'AFP son avocat.<em> </em><em>Je ne suis pas sûr qu'il a compris à 100% qu'il allait être exécuté»</em>. L'avocat a tenté de lui demander ses derniers souhaits, mais le Brésilien a répondu avec amusement.</p>
+ </div>
+ </div>
+ </li>
+ <li data-id="6162" data-modified-at="1430381939.478904" data-published-at="1430381939.476067" data-pinned="false" class="live-item live_item_js">
+ <div class="live-item-title-container">
+ <a class="live-item-pub-date" href="http://www.liberation.fr/direct/element/6162/" target="_blank"> <span>10:18</span> </a>
+ <a href="http://www.liberation.fr/direct/#live-item-6162" target="_blank"> <span class="live-item-title">Séisme au Népal : «Soulagés», mais «inquiets», 206 survivants de retour en France</span> </a>
+ </div>
+ <a href="http://www.liberation.fr/direct/#live-item-6162" target="_blank">
+ <div class="live-item-video-thumb replace_video_js" style="background-image: url(//www.dailymotion.com/thumbnail/video/x2oikl3)"></div>
+ </a>
+ </li>
+ <li data-id="6160" data-modified-at="1430389389.870650" data-published-at="1430381429.720523" data-pinned="false" class="live-item live_item_js">
+ <div class="live-item-title-container">
+ <a class="live-item-pub-date" href="http://www.liberation.fr/direct/element/6160/" target="_blank"> <span>10:10</span> </a>
+ <a href="http://www.liberation.fr/direct/#live-item-6160" target="_blank"> <span class="live-item-title">Jupe trop longue : la mère de la collégienne joue l'apaisement</span> </a>
+ </div>
+ <a href="http://www.liberation.fr/direct/#live-item-6160" target="_blank"> <img class="live-item-image" src="http://md0.libe.com/photo/754926-charleville-mezieres-exclue-du-college-pour-une-jupe-trop-longue.jpg?modified_at=1430321168" title=""/> </a>
+ </li>
+ </ul>
+ </div>
+ <!-- start - Most shared -->
+ <div class="most-shared link-flow line "> <span class="name">les plus partagés</span>
+ <ul class="list">
+ <li class="item">
+ <div> <span class="timeline">1</span>
+ <div class="content"> <a href="/societe/2015/04/28/une-jupe-pas-tres-laique-provoque-l-exclusion-d-une-collegienne_1274196">Une jupe pas très «laïque» provoque l'exclusion d'une collégienne </a> </div>
+ </div>
+ </li>
+ <li class="item">
+ <div> <span class="timeline">2</span>
+ <div class="content"> <a href="/debats/2015/04/29/jupe-pas-laique-une-erreur-monumentale-du-proviseur_1276722">Jupe pas «laïque» : une erreur monumentale du proviseur</a> </div>
+ </div>
+ </li>
+ <li class="item">
+ <div> <span class="timeline">3</span>
+ <div class="content"> <a href="/societe/2015/04/28/racisme-l-onu-denonce-la-banalisation-du-discours-haineux-en-france_1274588">Racisme: l’ONU dénonce la «banalisation» du discours haineux en France</a> </div>
+ </div>
+ </li>
+ <li class="item">
+ <div> <span class="timeline">4</span>
+ <div class="content"> <a href="/politiques/2015/04/28/compte-en-suisse-l-embarras-du-fn-le-silence-de-jean-marie-le-pen_1274128">Compte en Suisse : l'embarras du FN, le silence de Jean-Marie Le Pen</a> </div>
+ </div>
+ </li>
+ <li class="item">
+ <div> <span class="timeline">5</span>
+ <div class="content"> <a href="/societe/2015/04/28/la-fable-du-cannabis-escalade-vers-d-autres-drogues_1274325">La fable du cannabis, «escalade» vers d'autres drogues</a> </div>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <!-- end - Most shared -->
+ <div id="ad-square1" class="mod media-ext">
+ <div class="wrapper">
+ <script type="text/javascript">
+ // laisser ce commentaire !
+ //sas_manager.render(163);
+ var sas_formatid = 163;
+ var sas_format_str = "square1";
+ var sas_pageid = "252/82921";
+ var sas_target = "support=article;objectId=article1278483;largeur=1000;resolution=" + ((client_width >= 1300) ? "HD;" : "SD;");
+ if (isVisibleAd(sas_format_str)) {
+ displayAd(document, sas_pageid, sas_formatid, sas_target, sas_format_str);
+ }
+ </script>
+ </div>
+ </div>
+ <div id="ad-partnersquare1" class="mod media-ext">
+ <div class="wrapper">
+ <script type="text/javascript">
+ // laisser ce commentaire !
+ //sas_manager.render(1169);
+ var sas_formatid = 1169;
+ var sas_format_str = "partnersquare1";
+ var sas_pageid = "252/82921";
+ var sas_target = "support=article;objectId=article1278483;largeur=1000;resolution=" + ((client_width >= 1300) ? "HD;" : "SD;");
+ if (isVisibleAd(sas_format_str)) {
+ displayAd(document, sas_pageid, sas_formatid, sas_target, sas_format_str);
+ }
+ </script>
+ </div>
+ </div>
+ <!-- start - Most shared -->
+ <div class="most-shared link-flow line media"> <span class="name">Vidéos les plus vues</span>
+ <ul class="list">
+ <li class="item">
+ <div class="media-video"> <span class="media">
+
+ <a href="/video/2015/04/27/fatou-diome-si-les-gens-qui-meurent-etaient-des-blancs-la-terre-entiere-serait-en-train-de_1271272">
+
+
+<img itemprop="contentURL" src="http://s1.libe.com/photocrop/img/image-lazy.png" alt="" data-src="http://md1.libe.com/photo/751155-fatou-diome-si-les-gens-qui-meurent-etaient-des-blancs-la-terre-entiere-serait-en-train-de.jpg?modified_at=1430127005&amp;ratio_x=03&amp;ratio_y=02&amp;width=150" data-src-retina="http://md1.libe.com/photo/751155-fatou-diome-si-les-gens-qui-meurent-etaient-des-blancs-la-terre-entiere-serait-en-train-de.jpg?modified_at=1430127005&amp;ratio_x=03&amp;ratio_y=02&amp;width=150" data-lazy-load="true" width="150" height="100"/>
+
+
+ </a>
+
+ </span>
+ <div class="content"> <a href="/video/2015/04/27/fatou-diome-si-les-gens-qui-meurent-etaient-des-blancs-la-terre-entiere-serait-en-train-de_1271272">Fatou Diome : «Si les gens qui meurent étaient des Blancs, la Terre entière tremblerait»</a> </div>
+ </div>
+ </li>
+ <li class="item">
+ <div class="media-video"> <span class="media">
+
+ <a href="/video/2015/04/28/ceremonie-des-molieres-un-comedien-en-costume-d-adam-devant-la-ministre_1273541">
+
+
+<img itemprop="contentURL" src="http://s1.libe.com/photocrop/img/image-lazy.png" alt="" data-src="http://md1.libe.com/photo/752647-ceremonie-des-molieres-un-comedien-en-costume-d-adam-devant-la-ministre.jpg?modified_at=1430206275&amp;ratio_x=03&amp;ratio_y=02&amp;width=150" data-src-retina="http://md1.libe.com/photo/752647-ceremonie-des-molieres-un-comedien-en-costume-d-adam-devant-la-ministre.jpg?modified_at=1430206275&amp;ratio_x=03&amp;ratio_y=02&amp;width=150" data-lazy-load="true" width="150" height="100"/>
+
+
+ </a>
+
+ </span>
+ <div class="content"> <a href="/video/2015/04/28/ceremonie-des-molieres-un-comedien-en-costume-d-adam-devant-la-ministre_1273541">Cérémonie des Molières : Sébastien Thiéry interpelle Fleur Pellerin en costume d'Adam</a> </div>
+ </div>
+ </li>
+ <li class="item">
+ <div class="media-video"> <span class="media">
+
+ <a href="/video/2015/04/27/seisme-au-nepal-les-images-de-videosurveillance-d-un-restaurant-chinois_1271727">
+
+
+<img itemprop="contentURL" src="http://s1.libe.com/photocrop/img/image-lazy.png" alt="" data-src="http://md1.libe.com/photo/751455-seisme-au-nepal-les-images-de-videosurveillance-d-un-restaurant-chinois.jpg?modified_at=1430142657&amp;ratio_x=03&amp;ratio_y=02&amp;width=150" data-src-retina="http://md1.libe.com/photo/751455-seisme-au-nepal-les-images-de-videosurveillance-d-un-restaurant-chinois.jpg?modified_at=1430142657&amp;ratio_x=03&amp;ratio_y=02&amp;width=150" data-lazy-load="true" width="150" height="100"/>
+
+
+ </a>
+
+ </span>
+ <div class="content"> <a href="/video/2015/04/27/seisme-au-nepal-les-images-de-videosurveillance-d-un-restaurant-chinois_1271727">Séisme au Népal&nbsp;:​ les images de vidéosurveillance d’un restaurant chinois</a> </div>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <!-- end - Most shared -->
+ <div class="link-flow customer-choice"> <span class="name">Le choix des abonnés</span>
+ <ul class="list">
+ <li class="item">
+ <div> <span class="timeline">1</span>
+ <div class="content"> <a class="diamond" href="http://ecrans.liberation.fr/ecrans/2015/04/28/elise-lucet-cash-pieds_1274527">Élise Lucet, cash-pieds&nbsp;</a>
+ <p><span class="slug">portrait</span> <span class="author">
+
+Par<span class="authorname"> Juliette Deborde</span> </span>
+ </p>
+ </div>
+ </div>
+ </li>
+ <li class="item">
+ <div> <span class="timeline">2</span>
+ <div class="content"> <a class="diamond" href="/monde/2015/04/28/l-indonesie-implacable-avec-la-peine-capitale_1274799">Indonésie: huit condamnés, dont sept étrangers, exécutés&nbsp;</a>
+ <p> <span class="author">
+
+Par<span class="authorname"> Service Etranger</span> </span>
+ </p>
+ </div>
+ </div>
+ </li>
+ <li class="item">
+ <div> <span class="timeline">3</span>
+ <div class="content"> <a class="diamond" href="/economie/2015/04/28/fin-de-course-pour-agnes-saal-a-l-ina_1274809">Fin de course pour Agnès Saal à l’INA&nbsp;</a>
+ <p><span class="slug">Récit</span> <span class="author">
+
+Par<span class="authorname"> Pierre Alonso</span> </span>
+ </p>
+ </div>
+ </div>
+ </li>
+ </ul>
+ <section id="aside-heading-suscriber">
+ <div class="cover" onclick="window.location.assign('http://journal.liberation.fr/publication/liberation/1846/');"> <span class="media"><img src="http://md0.libe.com/api/libe/v2/paperpage/218375/?format=jpg" alt="La Une du 29 avril 2015"/></span> <span class="link"><a href="http://journal.liberation.fr/publication/liberation/1846/"><strong>Feuilleter le journal</strong></a></span> </div>
+ <div class="offer mod" onclick="window.location.assign('http://token.liberation.fr/accounts/offers');"> <span class="media">
+ <a>
+ <img alt="Libération.fr sur tous les écrans" src="http://s1.libe.com/img/devices-226x151.png"/>
+ </a>
+</span>
+ <div class="calltoaction">
+ <p class="deal mod">
+ <a> <span class="title">Abonnez-vous à Libération</span>
+ <!--
+ <span class="price">15€</span>
+--><em>A partir d'un 1€ le premier mois</em>
+ <!--
+ <strong>découvrez nos offres d'été</strong>
+--></a>
+ </p>
+ </div> <span class="btn subscribe" onclick="window.location.assign('http://token.liberation.fr/accounts/offers');">
+ <a>S'abonner</a>
+</span> </div>
+ </section>
+ </div>
+ <div class="internal-ad promo block-ad"> <span class="name"><strong>Publicité</strong></span>
+ <iframe height="300" src="http://cshoppingbox.partner.leguide.com/liberationv2/001_accueil.htm" style="border: none; overflow: hidden; width:100%; background-color: transparent;" scrolling="no" frameborder="0"></iframe>
+ </div>
+ <div class="internal-ad promo block-ad" onclick="window.open('http://adfarm.mediaplex.com/ad/ck/19766-190962-8779-0?mpt=[CACHEBUSTER]');"> <span class="name"><strong>Apprenez une langue</strong> avec Babbel</span>
+ <!-- Stars notation --><img src="http://s1.libe.com/photocrop/img/image-lazy.png" data-lazy-load="true" data-src="http://s1.libe.com/img/babbel.jpg?5ab453ca06a48f0e53b210afa383781f"/>
+ <!-- End -->
+ <p> <strong>Cours de langues par Internet</strong> 13 langues disponibles. Apprenez où et quand vous voulez. Devenez enfin bon en langues </p>
+ <div class="call-action">Je me lance</div>
+ </div>
+ <div id="ad-pave2" class="mod media-ext">
+ <div class="wrapper">
+ <center>
+ <script type="text/javascript">
+ if (typeof isPubActive !== 'undefined' && isPubActive) {
+ if (typeof(desactive_asq) == 'undefined' || desactive_asq != 1) {
+ document.write('&lt;script src="http://ib.adnxs.com/ttj?id=1028479&size=300x600&amp;promo_sizes=300x250&promo_alignment=center&referrer=www.liberation.fr&cb=' + Math.floor(Math.random() * 9999999999) + '&pt1=http://ib.adnxs.com/seg?add=486980&t=1" type="text/javascript">&lt;' + '/script>');
+ }
+ }
+ </script>
+ </center>
+ </div>
+ </div>
+ <div class="shopping-list"> <span class="name"><a rel="nofollow" href="http://boutique.liberation.fr/" target="_blank"><strong>La boutique de Libé</strong></a></span>
+ <div class="product-item">
+ <a class="url" rel="nofollow" href="http://boutique.liberation.fr/collections/unes/products/une-encadree-30x40-steve-jobs-7-octobre-2011" target="_blank">
+ <div class="product-photo"><img alt="La nostalgie heureuse" src="http://s1.libe.com/photocrop/img/image-lazy.png" data-src="http://s1.libe.com/img/boutique_une1.jpg?5ab453ca06a48f0e53b210afa383781f" data-lazy-load="true"/></div>
+ <div class="fname">Steve Jobs - 30x40cm</div>
+ <div class="desc">Une - tirage photographique professionnel</div>
+ <div class="pricing">39€</div>
+ <div class="clear"></div>
+ </a>
+ </div>
+ <div class="product-item">
+ <a class="url" rel="nofollow" href="http://boutique.liberation.fr/collections/all" target="_blank">
+ <div class="product-photo"><img alt="La nostalgie heureuse" src="http://s1.libe.com/photocrop/img/image-lazy.png" data-src="http://s1.libe.com/img/boutique_une2.jpg?5ab453ca06a48f0e53b210afa383781f" data-lazy-load="true"/></div>
+ <div class="fname">Le meilleur de Libé</div>
+ <div class="desc">Anciens numéros, hors-série, collectors</div>
+ <div class="pricing">A partir de 9,90€</div>
+ <div class="clear"></div>
+ </a>
+ </div>
+ <div class="call-more"><a href="http://boutique.liberation.fr/">Plus de produits</a></div>
+ </div>
+ <div id="top-search-live" class="right-col-partners block promo block-iframe block-ad iframe-replace m-bot-s2" data-iframewidth="300" data-iframeheight="140" data-iframesrc="http://flux.liberation.fr/focus_actu/" data-iframeisfromlibe="0"> <span class="name"><strong>Top recherche en live</strong> avec Orange</span>
+ <iframe style="border: none; overflow: hidden;" width="300" height="260" scrolling="no" frameborder="0" src="http://flux.liberation.fr/focus_actu_new/"></iframe>
+ </div>
+ <div id="ad-pave3" class="mod media-ext">
+ <div class="wrapper">
+ <center>
+ <script type="text/javascript">
+ if (typeof isPubActive !== 'undefined' && isPubActive) {
+ if (typeof(desactive_asq) == 'undefined' || desactive_asq != 1) {
+ document.write('&lt;script src="http://ib.adnxs.com/ttj?id=1028480&size=300x250&promo_alignment=center&referrer=www.liberation.fr&cb=' + Math.floor(Math.random() * 9999999999) + '&pt1=http://ib.adnxs.com/seg?add=486980&t=1" type="text/javascript">&lt;' + '/script>');
+ }
+ }
+ </script>
+ </center>
+ </div>
+ </div>
+ <!-- start - Most shared -->
+ <div class="most-shared link-flow line "> <span class="name">A la une de Libération</span>
+ <ul class="list">
+ <li class="item">
+ <div> <span class="timeline">1</span>
+ <div class="content"> <a href="/monde/2015/04/30/a-katmandou-le-grand-cirque-humanitaire_1278931">A Katmandou, «le grand cirque humanitaire»</a> </div>
+ </div>
+ </li>
+ <li class="item">
+ <div> <span class="timeline">2</span>
+ <div class="content"> <a href="/economie/2015/04/30/rafale-au-tour-du-qatar_1279149">Rafale: au tour du Qatar</a> </div>
+ </div>
+ </li>
+ <li class="item">
+ <div> <span class="timeline">3</span>
+ <div class="content"> <a href="/monde/2015/04/29/bangui-des-soldats-francais-accuses-de-viols_1277395">Des soldats français accusés de viols d'enfants en Centrafrique</a> </div>
+ </div>
+ </li>
+ <li class="item">
+ <div> <span class="timeline">4</span>
+ <div class="content"> <a href="/monde/2015/04/30/berlin-aurait-espionne-des-officiels-francais-et-europeens-pour-la-nsa_1278941">Berlin aurait espionné des officiels français et européens pour la NSA</a> </div>
+ </div>
+ </li>
+ <li class="item">
+ <div> <span class="timeline">5</span>
+ <div class="content"> <a href="/societe/2015/04/29/ghlam-kouachi-un-lien-a-detricoter_1277403">Ghlam-Kouachi : un&nbsp;lien&nbsp;à détricoter</a> </div>
+ </div>
+ </li>
+ <li class="item">
+ <div> <span class="timeline">6</span>
+ <div class="content"> <a href="/politiques/2015/04/29/est-ce-vraiment-de-gaulle-qui-a-donne-le-droit-de-vote-aux-femmes_1277138">Est-ce bien de Gaulle qui a donné le droit de vote aux femmes ? </a> </div>
+ </div>
+ </li>
+ <li class="item">
+ <div> <span class="timeline">7</span>
+ <div class="content"> <a href="http://next.liberation.fr/mode/2015/04/30/l-ami-k-way_1233067">Une brève histoire du K-way</a> </div>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <!-- end - Most shared -->
+ </aside>
+ </div>
+ </div>
+ </div>
+ <div id="footer-partners-box">
+ <div class="wrapper line">
+ <div class="mod">
+ <section class="partners-box promo">
+ <ul>
+ <li onclick="window.open('http://boutique.liberation.fr/', '_blank');">
+ <div class="content"> <span class="name"><strong>La boutique de Libé</strong></span> <img data-lazy-load="true" src="http://s1.libe.com/photocrop/img/image-lazy.png" data-src="http://s1.libe.com/img/boutique2.jpg?5ab453ca06a48f0e53b210afa383781f"/>
+ <p> <strong>Le meilleur de Libération</strong> Offrez ou offrez-vous des unes, beaux livres, anciens numéros, hors-séries, e-books </p>
+ <div class="call-action">La boutique</div>
+ </div>
+ </li>
+ <li onclick="window.open('http://cours-anglais.liberation.fr/onefree201303', '_blank');">
+ <div class="content"> <span class="name"><strong>Cours d'anglais</strong> avec Gymglish</span> <img data-lazy-load="true" src="http://s1.libe.com/photocrop/img/image-lazy.png" data-src="http://s1.libe.com/img/gymglish.jpg?5ab453ca06a48f0e53b210afa383781f"/>
+ <p> <strong>Cours d'anglais par Internet</strong> Testez gratuitement nos cours d'anglais pendant 1 mois. </p>
+ <div class="call-action">J'en profite</div>
+ </div>
+ </li>
+ <li onclick="window.open('http://trf.greatviews.de/cl?m315=c&amp;q=1Sdq54EaitGUuYG3fH4eLySf', '_blank');">
+ <div class="content"> <span class="name"><strong>Rencontres sérieuses</strong> avec Parship</span> <img data-lazy-load="true" src="http://s1.libe.com/photocrop/img/image-lazy.png" data-src="http://s1.libe.com/img/parship.jpg?5ab453ca06a48f0e53b210afa383781f"/>
+ <p> <strong>Trouvez l'amour</strong> Rencontrez des célibataires qui vous correspondent avec Libé.fr et Parship </p>
+ <div class="call-action">Je découvre</div>
+ </div>
+ </li>
+ </ul>
+ </section>
+ </div>
+ </div>
+ </div>
+ <!-- START - Wrapper footer -->
+ <footer id="footer" role="contentinfo">
+ <div class="wrapper line">
+ <!-- START - Section Footer abonnements -->
+ <section class="bottom-banner-suscriber offer">
+ <div onclick="window.location.assign('http://token.liberation.fr/accounts/offers');" class="mod"> <span class="media">
+ <a>
+ <img alt="Libération.fr sur tous les écrans" src="http://s1.libe.com/img/devices-226x151.png"/>
+ </a>
+</span>
+ <div class="calltoaction">
+ <p class="deal mod">
+ <a> <span class="title">Abonnez-vous à Libération</span>
+ <!--
+ <span class="price">15€</span>
+--><em>A partir d'un 1€ le premier mois</em>
+ <!--
+ <strong>découvrez nos offres d'été</strong>
+--></a>
+ </p>
+ </div>
+ <p class="baseline"> <a href="#">
+ Le quotidien chaque jour chez vous Libé sur iPhone, iPad et Android <br/>
+ Accès illimité aux archives
+ </a> </p> <span class="btn subscribe" onclick="window.location.assign('http://token.liberation.fr/accounts/offers');">
+ <a>S'abonner</a>
+</span> </div>
+ </section>
+ <!-- END - Section Footer abonnements -->
+ <!-- Section Footer intermédiaire -->
+ <section id="footer-network" class="grid3 line">
+ <div id="footer-social" class="mod">
+ <h2>Libé sur le web</h2>
+ <p>Suivez l’actualité en temps réel</p>
+ <ul>
+ <li class="tip twitter"><a href="https://twitter.com/libe" title="suivre Libération sur Twitter">Twitter</a></li>
+ <li class="tip facebook"><a href="https://www.facebook.com/Liberation" title="suivre Libération sur Facebook">Facebook</a></li>
+ <li class="tip google-plus"><a href="https://plus.google.com/+Liberation" rel="publisher">Google+</a></li>
+ <li class="tip rss"><a href="/rss/" title="suivre Libération avec les flux RSS">RSS</a></li>
+ </ul>
+ </div>
+ <div class="mod newsletter-form">
+ <h2>Recevoir la newsletter</h2>
+ <p>Recevez l'actu Libé tous les matins par email</p>
+ <form class="newsletter_form_js">
+ <input type="text" id="EMAIL_FIELD" name="EMAIL_FIELD" placeholder="Adresse e-mail" class="email-field"/>
+ <input type="button" value="S'inscrire" class="btn libe" onclick="return validForm(this, 'newsletter-form');"/> </form>
+ </div>
+ <div id="footer-teaser" class="mod">
+ <a class="media left" href="http://boutique.liberation.fr/products/une-encadree-40x50-cm-yes-barack-obama" target="_blank"><img src="http://s1.libe.com/img/cover-shopify-full.jpg" alt=""/></a>
+ <div class="description">
+ <h2>Libé boutique</h2>
+ <ul>
+ <li class="title">Barack Obama</li>
+ <li class="type">Tirage photo professionnel</li>
+ <li class="price">39€</li>
+ </ul> <span class="link"><a href="http://boutique.liberation.fr/" target="_blank">Toute la boutique</a></span> </div>
+ </div>
+ </section>
+ <div class="ads megaban">
+ <div id="ad-megabas" class="mod media-ext">
+ <div class="wrapper">
+ <center>
+ <script type="text/javascript">
+ if (typeof isPubActive !== 'undefined' && isPubActive) {
+ if (typeof(desactive_asq) == 'undefined' || desactive_asq != 1) {
+ document.write('&lt;script src="http://ib.adnxs.com/ttj?id=1028523&size=728x90&promo_alignment=center&referrer=www.liberation.fr&cb=' + Math.floor(Math.random() * 9999999999) + '&pt1=http://ib.adnxs.com/seg?add=486980&t=1" type="text/javascript">&lt;' + '/script>');
+ }
+ }
+ </script>
+ </center>
+ </div>
+ </div>
+ </div>
+ <!-- Section Liens de bas de page -->
+ <section id="site-map" class="line">
+ <h2>Liberation</h2>
+ <ul class="heading">
+ <li class="menu-politiques"> <a title="Rubrique Politique" href="/politiques,11">Politique</a> </li>
+ <li class="menu-societe"> <a title="Rubrique Société" href="/societe,12">Société</a> </li>
+ <li class="menu-monde"> <a title="Rubrique Monde" href="/monde,10">Monde</a> </li>
+ <li class="menu-economie"> <a title="Rubrique Economie / Ecofutur" href="/economie,13">Economie / Ecofutur</a> </li>
+ <li class="menu-culture"> <a title="Rubrique Culture" href="/culture,16">Culture</a> </li>
+ <li class="menu-home_next"> <a title="Rubrique Next" href="http://next.liberation.fr/">Next</a> </li>
+ <li class="menu-rebonds"> <a title="Rubrique Idées" href="/debats,18">Idées</a> </li>
+ <li class="menu-video"> <a title="Rubrique Vidéo" href="/video,19">Vidéo</a> </li>
+ <li class="menu-photographie"> <a title="Rubrique Photo" href="/photographie,99965">Photo</a> </li>
+ <li class="menu-liberadio"> <a title="Rubrique Radio" href="/liberadio,100417">Radio</a> </li>
+ </ul>
+ <h2>Next</h2>
+ <ul class="heading">
+ <li class="menu-beaute"> <a title="Rubrique Beauté" onclick="window.location.assign('http://next.liberation.fr/beaute,100215');">Beauté</a> </li>
+ <li class="menu-musique"> <a title="Rubrique Musique" onclick="window.location.assign('http://next.liberation.fr/musique,59');">Musique</a> </li>
+ <li class="menu-cinema"> <a title="Rubrique Cinéma" onclick="window.location.assign('http://next.liberation.fr/cinema,58');">Cinéma</a> </li>
+ <li class="menu-mode"> <a title="Rubrique Mode" onclick="window.location.assign('http://next.liberation.fr/mode,99924');">Mode</a> </li>
+ <li class="menu-auto"> <a title="Rubrique Auto" onclick="window.location.assign('http://next.liberation.fr/auto,99928');">Auto</a> </li>
+ <li class="menu-design"> <a title="Rubrique Design&amp;Archi" onclick="window.location.assign('http://next.liberation.fr/design,99927');">Design&amp;Archi</a> </li>
+ <li class="menu-arts"> <a title="Rubrique Arts" onclick="window.location.assign('http://next.liberation.fr/arts,99964');">Arts</a> </li>
+ <li class="menu-nuit"> <a title="Rubrique La nuit" onclick="window.location.assign('http://next.liberation.fr/nuit,100128');">La nuit</a> </li>
+ </ul>
+ <h2>Écrans</h2>
+ <ul class="heading">
+ <li class="menu-"> <a title="Rubrique Vu sur le www" onclick="window.location.assign('http://ecrans.liberation.fr/vu-sur-le-www,100279');">Vu sur le www</a> </li>
+ <li class="menu-"> <a title="Rubrique Internet" onclick="window.location.assign('http://ecrans.liberation.fr/internet,100276');">Internet</a> </li>
+ <li class="menu-"> <a title="Rubrique Jeux vidéo" onclick="window.location.assign('http://ecrans.liberation.fr/jeux-video,100277');">Jeux vidéo</a> </li>
+ <li class="menu-"> <a title="Rubrique Télévision" onclick="window.location.assign('http://ecrans.liberation.fr/television,100278');">Télévision</a> </li>
+ <li class="menu-"> <a title="Rubrique Radio" onclick="window.location.assign('http://ecrans.liberation.fr/Radio,100281');">Radio</a> </li>
+ <li class="menu-"> <a title="Rubrique Presse" onclick="window.location.assign('http://ecrans.liberation.fr/Presse,100280');">Presse</a> </li>
+ <li class="menu-"> <a title="Rubrique High-tech" onclick="window.location.assign('http://ecrans.liberation.fr/high-tech,100282');">High-tech</a> </li>
+ <li class="menu-"> <a title="Rubrique Chronophages" onclick="window.location.assign('http://ecrans.liberation.fr/jeu-chronophage,99746');">Chronophages</a> </li>
+ <li class="menu-"> <a title="Rubrique Podcasts" onclick="window.location.assign('http://ecrans.liberation.fr/podcasts-ecrans,100307');">Podcasts</a> </li>
+ </ul>
+ <h2>Services</h2>
+ <ul class="heading">
+ <li class="menu-"> <a title="Rubrique Gérez votre abonnement" onclick="window.location.assign('https://abo.liberation.fr/netful-presentation-press/site/liberation/default/fr/account2/login.html');">Gérez votre abonnement</a> </li>
+ <li class="menu-"> <a title="Rubrique Emploi" onclick="window.location.assign('http://emploi.liberation.fr/');">Emploi</a> </li>
+ <li class="menu-"> <a title="Rubrique Rencontre" onclick="window.location.assign('http://pointscommuns.liberation.fr/');">Rencontre</a> </li>
+ <li class="menu-"> <a title="Rubrique Petites Annonces" onclick="window.location.assign('http://petites-annonces.liberation.fr/');">Petites Annonces</a> </li>
+ <li class="menu-"> <a title="Rubrique Cours d'Anglais" onclick="window.location.assign('http://cours-anglais.liberation.fr/');">Cours d'Anglais</a> </li>
+ <li class="menu-"> <a title="Rubrique Shopping" onclick="window.location.assign('http://shopping.liberation.fr/');">Shopping</a> </li>
+ <li class="menu-"> <a title="Rubrique Anciens Numéros" onclick="window.location.assign('http://boutique.liberation.fr/');">Anciens Numéros</a> </li>
+ </ul>
+ </section>
+ <section class="legal line">
+ <ul id="footer-nav">
+ <li><a onclick="window.location.assign('/contacts/');" title="Contacter Libération">Contact</a></li>
+ <li><a onclick="window.location.assign('http://www.espaces-liberation.fr/');" title="Votre publicité sur Libération">Publicité</a></li>
+ <li><a onclick="window.location.assign('/licence/');" title="Licence d'utilisation de Libération">Licence</a></li>
+ <li><a onclick="window.location.assign('/donnees-personnelles/');" title="Vos données personnelles sur Libération">Données personnelles</a></li>
+ <li><a onclick="window.location.assign('/cguv/');" title="Conditions générales de vente de Libération">Conditions générales de vente et d'utilisation</a></li>
+ <li><a onclick="window.location.assign('http://www.pilotsystems.net/');" title="Site hébergé par Pilot Systems">Site hébergé par Pilot Systems</a></li>
+ <li><a onclick="window.location.assign('/rss/');" title="">RSS</a></li>
+ <li class="copyright">© Libération</li>
+ </ul>
+ </section>
+ </div>
+ <!-- END - Wrapper footer -->
+ </footer>
+ <div id="ad-dhtml" class="mod media-ext">
+ <div class="wrapper">
+ <script type="text/javascript">
+ // laisser ce commentaire !
+ //sas_manager.render(94);
+ var sas_formatid = 94;
+ var sas_format_str = "dhtml";
+ var sas_pageid = "252/82921";
+ var sas_target = "support=article;objectId=article1278483;largeur=1000;resolution=" + ((client_width >= 1300) ? "HD;" : "SD;");
+ if (isVisibleAd(sas_format_str)) {
+ displayAd(document, sas_pageid, sas_formatid, sas_target, sas_format_str);
+ }
+ </script>
+ </div>
+ </div>
+ </div>
+ <script src="https://platform.twitter.com/widgets.js"></script>
+ <!-- JavaScript -->
+ <script type="text/javascript" src="http://s1.libe.com/cache/js/ddc9209a3255.js"></script>
+ <script type="text/javascript">
+ if (!$('body').hasClass('slideshow')) {
+ var reference = ($('body').hasClass('event') ? '.event-body' : 'article');
+ $('.tool-bar').sticky({
+ 'offset': 20,
+ 'reference': reference
+ });
+ }
+ </script>
+ <script type="text/JavaScript" src="http://zor.livefyre.com/wjs/v3.0/javascripts/livefyre.js"></script>
+ <script type="text/javascript">
+ $(function() {
+ // If fyre is not defined we need to return otherwise this will mess up future
+ // inline scripts.
+ if (typeof(fyre) == 'undefined') {
+ return;
+ }
+ var livefyre_i18n = {
+ signIn: "Identifiez-vous pour commenter",
+ signInGuest: "Se connecter en tant qu'invité",
+ signOut: "Se déconnecter",
+ editProfile: "Editer le profil",
+ siteAdmin: "Administration",
+ postButton: "Poster",
+ postAsButton: "Poster",
+ postEditButton: "Editer",
+ postEditCancelButton: "Annuler l'édition",
+ commentCountLabel: "commentaire",
+ commentCountLabelPlural: "commentaires",
+ listenerCount: "suit la conversation",
+ listenerCountPlural: "suivent la conversation",
+ likeButton: "J'aime",
+ unlikeButton: "Je n'aime plus",
+ editButton: "Editer",
+ replyButton: "Répondre",
+ follow: "Suivre",
+ unfollow: "Ne plus suivre",
+ banUserButton: "Bannir",
+ deleteButton: "Supprimer",
+ flagButton: "Signaler",
+ shareButton: "Partager",
+ sortNewest: "Plus récents",
+ sortOldest: "Plus anciens",
+ sortSeparator: " | ",
+ sortHotThreads: "Hot topics",
+ sortBackButton: "Rétablir",
+ sortTopComments: "Top commentaires",
+ hotThreadsContentNotFoundMsg: "Aucun hot topic trouvé",
+ topCommentsContentNotFoundMsg: "Aucun top commentaire trouvé",
+ topContentRefreshMsg: "Rafraîchir",
+ threadBreakoutButton: "Sortir",
+ banUserTooltip: "Bannir un utilisateur",
+ deleteCommentTooltip: "Supprimer le commentaire",
+ flagCommentTooltip: "Signaler un commentaire",
+ shareCommentTooltip: "Partager un commentaire",
+ banTitle: "Bannir",
+ banConfirmation: "Etes-vous sûr de vouloir bannir l'utilisateur ?",
+ banConfirmButton: "OK",
+ banCancelButton: "Annuler",
+ flagSpam: "Spam",
+ flagOffensive: "Offensant",
+ flagDisagree: "Message biaisé/faux",
+ flagOffTopic: "Hors sujet",
+ flagTitle: "Signaler le commentaire de",
+ flagSubtitle: "Signaler comme",
+ flagEmail: "Email",
+ flagEmailPlaceholder: "[email protected]",
+ flagNotes: "Message",
+ flagNotesPlaceholder: "Commencez votre message ici...",
+ flagConfirmButton: "OK",
+ flagCancelButton: "Annuler",
+ flagSuccessMsg: "Message envoyé avec succès.",
+ flagConfirmationMessage: "Votre message a bien été pris en compte.",
+ shareDefaultText: "Regardez le message!",
+ shareTitle: "Partager le commentaire",
+ shareButtonText: "Partager",
+ shareLabel: "Partager sur :",
+ sharePermalink: "Permalien",
+ mentionTitle: "Partager le message avec un ami",
+ mentionSubtitleFacebook: "Partager le message sur compte Facebook de :",
+ mentionSubtitleTwitter: "Partager le message sur compte Twitter de :",
+ mentionDefaultText: "Je viens de te mentionner dans un commentaire sur Livefyre!",
+ mentionConfirmButton: "OK",
+ mentionCancelButton: "Annuler",
+ mentionSuccessMsg: "Message envoyé avec succès.",
+ mentionErrorNoneSelected: "Un ou plusieurs champs n'ont pas été remplis.",
+ mentionErrorGeneral: "Erreur lors de l'envoie de votre message.",
+ timeJustNow: "A l'instant",
+ timeMinutesAgo: "Il y a une minute",
+ timeMinutesAgoPlural: "Il y a quelques minutes",
+ timeHoursAgo: "Il y a une heure",
+ timeHoursAgoPlural: "Il y a quelques heures",
+ timeDaysAgo: "Il y a un jour",
+ timeDaysAgoPlural: "Il y a quelques jours",
+ errorAuthError: "Erreur d'identification",
+ errorCommentsNotAllowed: "Commentaire non autorisé",
+ errorDuplicate: "Votre message a déjà été publié.",
+ errorEditDuplicate: "Même si vous adorez votre commentaire, il est interdit de le poster une seconde fois.",
+ errorEditNotAllowed: "Vous ne pouvez plus éditer votre commentaire.",
+ errorEmpty: "Il semblerait que vous essayiez de poster un commentaire vide.",
+ errorInsufficientPermissions: "Vous n'avez pas toutes les autorisations pour poster ce message.",
+ errorInvalidChar: "Il semblerait que des caractères que vous utilisez ne soient pas autorisés dans les commentaires.",
+ errorLikeOwnComment: "Vous ne pouvez pas aimer votre propre commentaire.",
+ errorMalformed: "",
+ errorMaxChars: "Votre commentaire dépasse le nombre maximum de caractères autorisés.",
+ errorExpired: "Votre message a expiré.",
+ errorEditTimeExceed: "Le délais imparti pour modifier votre commentaire a été dépassé.",
+ errorShowMore: "Erreur lors de la mise à jour.",
+ errorDefault: "Erreur: rafraîchissez la page.",
+ moderator: "Libération",
+ moderatorEditTimeStamp: "Edité",
+ pendingComment: "Votre message est en attente de modération.",
+ showMore: "Afficher plus de commentaires",
+ hovercardViewProfile: "Afficher le profil en entier",
+ customHtmlDialogTitle: "",
+ commentNotifier: "nouveau commentaire",
+ commentNotifierPlural: "nouveaux commentaires",
+ replyButtonSingular: "",
+ replyButtonPlural: "",
+ livechatPostButtonLabel: "Poster",
+ livechatWindowsInstruction: "",
+ livechatOtherInstruction: "",
+ livechatPostEditButton: "Editer",
+ liveblogPostCountLabel: "",
+ liveblogPostCountLabelPlural: "",
+ showMoreLiveblog: "",
+ months: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre']
+ };
+ var authDelegate = new fyre.conv.RemoteAuthDelegate();
+ authDelegate.login = function() {
+ window.location.href = "http://token.liberation.fr/accounts/login/";
+ };
+ authDelegate.logout = function() {
+ window.location.href = "http://token.liberation.fr/accounts/logout/";
+ };
+ /* authDelegate.viewProfile = authDelegate.editProfile = function() {
+ window.location.href = ;
+ }; */
+ var formatDate = function(theDateInput) {
+ var date = new Date(theDateInput);
+ //var minutesUntilAbsoluteTime = 14400; // 10 days
+ //var absoluteFormat = 'd MMM y à k:m';
+ // TODO: Use the formated string for X minutes ago
+ return date.getDate() + " " + livefyre_i18n["months"][date.getMonth()] + " " + date.getUTCFullYear() + " à " + date.getHours() + ":" + date.getMinutes();
+ };
+ fyre.conv.load({
+ 'network': "liberation.fyre.co",
+ 'strings': livefyre_i18n
+ }, [{
+ "siteId": "336643",
+ "articleId": "1278483",
+ "el": 'comments_container',
+ "collectionMeta": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1cmwiOiJodHRwOi8vd3d3LmxpYmVyYXRpb24uZnIvbW9uZGUvMjAxNS8wNC8zMC91bi10cm9pc2llbWUtZnJhbmNhaXMtbW9ydC1kYW5zLWxlLXNlaXNtZS1hdS1uZXBhbF8xMjc4NDgzIiwiY2hlY2tzdW0iOiIwZDI2MWIzNGRkZjM2ZGZhNWU2MDRjZTBlMmJlYjU5ZSIsInRhZ3MiOiIiLCJhcnRpY2xlSWQiOjEyNzg0ODMsInRpdGxlIjoiVW4gdHJvaXNpXHUwMGU4bWUgRnJhblx1MDBlN2FpcyBtb3J0IGRhbnMgbGUgc1x1MDBlOWlzbWUgYXUgTlx1MDBlOXBhbCJ9.ly0sgd_LD8VChga6RaWrBVpwaD794n_lHdJ6FHxATYQ",
+ "checksum": "0d261b34ddf36dfa5e604ce0e2beb59e",
+ "authDelegate": authDelegate,
+ "datetimeFormat": formatDate
+ }], function(widget) {
+ var is_closed = false;
+ if (libeUserInfo.authenticated) {
+ fyre.conv.login(libeUserInfo.livefyre_token);
+ }
+ widget.on('initialRenderComplete', function() {
+ if (is_closed) {
+ widget.stop();
+ $('#' + 'comments_container').addClass('closed');
+ } else if (libeUserInfo.authenticated) {
+ $('&lt;div class="fyre-moderation-message">' + '&lt;p>Votre commentaire apparaîtra dès validation par le modérateur (généralement en moins de 30 minutes).&lt;/p>' + '&lt;p>Cet espace est réservé aux commentaires sur cet article. Vous souhaitez discuter d\'autres sujets ? Rendez-vous sur &lt;a href="http://www.liberation.fr/forums,24">nos forums thématiques&lt;/a>. Merci de respecter &lt;a href="http://www.liberation.fr/charte/">notre charte&lt;/a>.&lt;/p>' + '&lt;/div>').insertAfter('.fyre-editor:first');
+ };
+ });
+ });
+ });
+ </script>
+ <script type="text/javascript">
+ var jplayerSwfPath = 'http://s1.libe.com/liberadio/jquery.jplayer.2.8.4/jquery.jplayer.swf';
+ </script>
+ <script type="text/javascript" src="http://s1.libe.com/cache/js/2faf74e9132a.js"></script>
+ <!-- Google Tag Manager -->
+ <noscript>
+ <iframe src="//www.googletagmanager.com/ns.html?id=GTM-H3K4X" height="0" width="0" style="display:none;visibility:hidden"></iframe>
+ </noscript>
+ <script>
+ (function(w, d, s, l, i) {
+ w[l] = w[l] || [];
+ w[l].push({
+ 'gtm.start': new Date().getTime(),
+ event: 'gtm.js'
+ });
+ var f = d.getElementsByTagName(s)[0],
+ j = d.createElement(s),
+ dl = l != 'dataLayer' ? '&l=' + l : '';
+ j.async = true;
+ j.src = '//www.googletagmanager.com/gtm.js?id=' + i + dl;
+ f.parentNode.insertBefore(j, f);
+ })(window, document, 'script', 'dataLayer', 'GTM-H3K4X');
+ </script>
+ <!-- // Google Tag Manager -->
+ <!-- chartbeat -->
+ <script type="text/javascript">
+ var _sf_async_config = {};
+ _sf_async_config.uid = 43601;
+ _sf_async_config.domain = 'liberation.fr';
+ _sf_async_config.useCanonical = true;
+ _sf_async_config.sections = "Monde";
+ _sf_async_config.authors = "Web";
+ (function() {
+ function loadChartbeat() {
+ window._sf_endpt = (new Date()).getTime();
+ var e = document.createElement('script');
+ e.setAttribute('language', 'javascript');
+ e.setAttribute('type', 'text/javascript');
+ e.setAttribute('src', (('https:' == document.location.protocol) ? 'https://a248.e.akamai.net/chartbeat.download.akamai.com/102508/' : 'http://static.chartbeat.com/') + 'js/chartbeat.js');
+ document.body.appendChild(e);
+ }
+ var oldonload = window.onload;
+ window.onload = (typeof window.onload != 'function') ? loadChartbeat : function() {
+ oldonload();
+ loadChartbeat();
+ };
+ })();
+ </script>
+ <!-- // chartbeat -->
+ <!-- nuggad -->
+ <script type="text/javascript">
+ var n_pbt = '';
+ var nuggrid = encodeURIComponent(top.location.href);
+ document.write('&lt;scr' + 'ipt type="text/javascript" src="//asqliberation.nuggad.net/rc?nuggn=400929945&nuggsid=1646502667&nuggrid=' + nuggrid + '">&lt;\/scr' + 'ipt>');
+ </script>
+ <!-- // nuggad -->
+ <script type="text/javascript">
+ $(function() {
+ new Image().src = "http://hitcount.liberation.fr/pix.gif?url=/monde/2015/04/30/un-troisieme-francais-mort-dans-le-seisme-au-nepal_1278483";
+ });
+ </script>
+ <script type="text/javascript">
+ xtnv = document; //parent.document or top.document or document
+ xtsd = "http://logliberation";
+ xtsite = is_responsive_mobile ? "507510" : "381060";
+ xtn2 = "48"; // level 2
+ xtpage = "Monde::Article_\u002D_Un_troisieme_Francais_mort_dans_le_seisme_au_Nepal_\u002D_1278483"; //page name (with the use of :: to create chapters)
+ xtdi = "";
+ xt_pagetype = "2\u002D1\u002D0";
+ xt_multc = "\u0026x1\u003D0\u0026x2\u003D40\u0026x3\u003D10\u0026x4\u003D\u0026x5\u003D20150430\u0026x6\u003D20\u0026x7\u003D1278483";
+ // if the user is part of the staff we don't take it into account
+ if (typeof(libeUserInfo["is_staff"]) != "undefined" && libeUserInfo["is_staff"]) {
+ xt_an = "";
+ xt_ac = "";
+ } else {
+ // it is ok to test against libeUserInfo because the script that sets it is blocking
+ xt_an = typeof(libeUserInfo["xiti_user_id"]) == "undefined" ? "" : libeUserInfo["xiti_user_id"];
+ xt_ac = typeof(libeUserInfo["xiti_access_level"]) == "undefined" ? "" : libeUserInfo["xiti_access_level"];
+ }
+ // software blocker
+ if (typeof(libeUserInfo["softwarer_blocker"]) != "undefined") {
+ xt_multc += "&x8=" + libeUserInfo["softwarer_blocker"]
+ }
+ if (window.xtparam == null) {
+ window.xtparam = '';
+ }
+ window.xtparam += "&ptype=" + xt_pagetype + "&ac=" + xt_ac + "&an=" + xt_an + xt_multc;
+ </script>
+ <noscript> <img width="1" height="1" alt="xiti" src="http://logliberation.xiti.com/hit.xiti?s=381060&amp;s2=48&amp;p=Monde::Article_-_Un_troisieme_Francais_mort_dans_le_seisme_au_Nepal_-_1278483&amp;ptype=2-1-0&amp;di=&amp;ac=&amp;an=&amp;x1=0&amp;x2=40&amp;x3=10&amp;x4=&amp;x5=20150430&amp;x6=20&amp;x7=1278483"/> </noscript>
+ <script type="text/javascript" src="http://s1.libe.com/cache/js/1883037ffeac.js"></script>
+ <script type="text/javascript">
+ if (typeof isPubActive !== 'undefined' && isPubActive) {
+ if (typeof(desactive_teads) == 'undefined' || desactive_teads != 1) {
+ window._lvr = window._lvr || [];
+ _lvr.push({
+ LR_PUBLISHER_ID: 74701,
+ LR_VERTICALS: 'liberation_fr_os_inread',
+ format: 'inread',
+ LR_PARTNERS: 763629,
+ slot: '#article-body',
+ child: '1:1',
+ passbackHtml: '&lt;center>&lt;scr' + 'ipt type=\'text/javascript\'>(function(e,t){ t=t||{};var n=document.createElement(\'script\');var r=\'https:\'==window.location.protocol?\'https://\':\'http://\';n.src=r+\'cdn.adikteev.com/lib/v3/aksdk.moment?t=\'+((new Date).getTime()/1e3/3600).toFixed();n.type=\'text/javascript\';n.async=\'true\';n.onload=n.onreadystatechange=function(){if(top.AKSdk&&top.isInitAKSdk===true)return;var n=this.readyState;if(n&&n!=\'complete\'&&n!=\'loaded\')return;try{top.isInitAKSdk=true;top.AKSdk.init(e,t) }catch(r){}};try{ var i=top.document.getElementsByTagName(\'script\')[0];i.parentNode.insertBefore(n,i); }catch(e){};})({desktop:\'KYvbNsp6ATbQsAUa31pbow==\'});&lt;/sc' + 'ript>&lt;/center>'
+ });
+ (function() {
+ var js = document.createElement('script');
+ js.type = 'text/javascript';
+ js.async = true;
+ js.src = '//cdn.adslvr.com/adslvr-min.js';
+ var s = document.getElementsByTagName('script')[0];
+ s.parentNode.insertBefore(js, s);
+ })();
+ }
+ }
+ </script>
+ <!-- WAI Tag liberation -->
+ <script type="text/javascript">
+ var WRP_HOST = 'liberationanalytics.solution.weborama.fr';
+ var WRP_ID = 484545;
+ var WRP_SECTION = 'monde';
+ var WRP_ID_GRP = 484857;
+ var WRP_SECTION_GRP = 'Liberation';
+ var WRP_SUBSECTION = WRP_SECTION;
+ var WRP_SUBSECTION_GRP = WRP_SECTION_GRP;
+ (function() {
+ var wrsc, s;
+ wrsc = document.createElement('script');
+ wrsc.type = 'text/javascript';
+ wrsc.src = 'http' + ('https:' == document.location.protocol ? 's://cstatic' : '://cstatic') + '.weborama.fr/js/products.js';
+ s = document.getElementsByTagName('script')[0];
+ s.parentNode.insertBefore(wrsc, s);
+ })();
+ </script>
+ <!-- WAM first-party data - SEGMENTS -->
+ <script type="text/javascript">
+ window.wex_callback = function() {
+ wex.account('1177');
+ wex.push('liberation', 2, 'Label');
+ wex.push('sites', 1, 'Label');
+ };
+ </script>
+ <!-- WAM first-party data - DO NOT MODIFY -->
+ <script type="text/javascript">
+ (function() {
+ var wsc = document.createElement('script');
+ wsc.type = 'text/javascript';
+ wsc.onload = function() {
+ window.wex_callback();
+ wex.send();
+ };
+ wsc.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'cstatic.weborama.fr/wam/wfpd.min.js';
+ var s = document.getElementsByTagName('script')[0];
+ s.parentNode.insertBefore(wsc, s);
+ })();
+ </script>
+ <!-- end WAM first-party data -->
+ <!-- iframe -->
+ <iframe style="height: 1px; width: 1px; border: 0px none; position: absolute; display: none; left: 0px; top: 0px; z-index: 0;" src="//cstatic.weborama.fr/iframe/aud_trans/external_LB.html"></iframe>
+ <!-- end iframe -->
+</body>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lifehacker-post-comment-load/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lifehacker-post-comment-load/expected-images.json
new file mode 100644
index 000000000..b46843d47
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lifehacker-post-comment-load/expected-images.json
@@ -0,0 +1,11 @@
+{
+ "0": "http:\/\/i.kinja-img.com\/gawker-media\/image\/upload\/s--hqqO9fze--\/n1s6c2m6kc07iqdyllj6.jpg",
+ "2": "http:\/\/i.kinja-img.com\/gawker-media\/image\/upload\/s--QeUTCiuW--\/o4dpyrcbiqyfrc3bxx6p.jpg",
+ "3": "http:\/\/i.kinja-img.com\/gawker-media\/image\/upload\/s--mlR3Ku0_--\/xrhkwleyurcizy4akiae.jpg",
+ "4": "http:\/\/i.kinja-img.com\/gawker-media\/image\/upload\/s--Tacb0tyW--\/qodag11euf2npkawkn9v.jpg",
+ "5": "http:\/\/i.kinja-img.com\/gawker-media\/image\/upload\/s--x9hLbIKJ--\/imfc9ybqfw0jmztbhfrh.jpg",
+ "6": "http:\/\/i.kinja-img.com\/gawker-media\/image\/upload\/s--6NwBgQLy--\/afy7n45jfvsjdmmhonct.jpg",
+ "7": "http:\/\/i.kinja-img.com\/gawker-media\/image\/upload\/s--ciqk42G0--\/s3pq8vjrvyjgne4lfsod.jpg",
+ "8": "http:\/\/i.kinja-img.com\/gawker-media\/image\/upload\/s--mtob1sjR--\/y2ldv5eufb3jcrtfouye.jpg",
+ "9": "http:\/\/i.kinja-img.com\/gawker-media\/image\/upload\/s--4Ajak63w--\/atb9qm07fvvg7hqkumkw.jpg"
+} \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lifehacker-post-comment-load/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lifehacker-post-comment-load/expected-metadata.json
new file mode 100644
index 000000000..fa13f9e3b
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lifehacker-post-comment-load/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "Patrick Allan",
+ "Direction": null,
+ "Excerpt": "We all buy things from time to time that we don't really need. It's okay to appeal to your wants every once in a while, as long as you're in control. If you struggle with clutter, impulse buys, and buyer's remorse, here's how to put your mind in the right place before you even set foot in a store.",
+ "Image": "http:\/\/i.kinja-img.com\/gawker-media\/image\/upload\/s--hqqO9fze--\/n1s6c2m6kc07iqdyllj6.jpg",
+ "Title": "How to Program Your Mind to Stop Buying Crap You Don’t Need",
+ "SiteName": "Lifehacker"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lifehacker-post-comment-load/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lifehacker-post-comment-load/expected.html
new file mode 100644
index 000000000..2f862a91c
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lifehacker-post-comment-load/expected.html
@@ -0,0 +1,484 @@
+<div><p data-textannotation-id="58a492029dca5e6a6e481d21b6b2933a"><span><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--hqqO9fze--/n1s6c2m6kc07iqdyllj6.jpg" data-chomp-id="n1s6c2m6kc07iqdyllj6" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--hqqO9fze--/n1s6c2m6kc07iqdyllj6.jpg" width="636"></img></span></p><p data-textannotation-id="a043044f9b3e31fd85568b17e3b1b5f3"><span>We all buy things from time to time that we don't really need. It's okay to appeal to your wants every once in a while, as long as you're in control. If you struggle with clutter, impulse buys, and buyer's remorse, here's how to put your mind in the right place before you even set foot in a store.</span></p>
+
+
+
+
+
+
+
+
+
+
+
+<h3 data-textannotation-id="e51cbbc52eb8c3b33571908351076cf7"><strong>Understand How Your Own Brain Works Against You</strong></h3>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="268f7702467d33e3b0972dd09f1cf0a6"><span><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--QeUTCiuW--/o4dpyrcbiqyfrc3bxx6p.jpg" data-chomp-id="o4dpyrcbiqyfrc3bxx6p" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--QeUTCiuW--/o4dpyrcbiqyfrc3bxx6p.jpg" width="636"></img></span></p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="32604538f84919efff270e87b61191a1">It may come as no surprise to learn that stores employ all kinds of tricks to get you to part ways with your cash, and your brain plays right along. Through psychological tricks, product placement, and even color, stores are designed from the ground up to increase spending. We've talked about the biggest things stores do to manipulate your senses, but here are some of the biggest things to look out for:</p>
+
+
+
+
+
+
+
+
+
+
+<ul><li data-textannotation-id="cd748c8b681c781cdd728c5e17b5e05f"><strong>Color:</strong> Stores use color to make products attractive and eye-catching, but they also use color on price labels. Red stands out and can encourage taking action, that's why it's commonly associated with sale signage and advertising. When you see red, remember what they're trying to do to your brain with that color. You don't to buy something just because it's on sale.</li><li data-textannotation-id="29c11c0aec305293be282aa91f8fbc3d"><strong>Navigation Roadblocks:</strong> Stores force you to walk around stuff you don't need to find the stuff you are really after. Have a list of what you need before you go in, go straight to it, and imagine it's the only item in the store.</li><li data-textannotation-id="252dc7e4a924d12c2d913861ab118bf5"><strong>The Touch Factor:</strong> Stores place items they want to sell in easy to reach locations and encourage you to touch them. Don't do it! As soon as you pick something up, you're more likely to buy it because your mind suddenly takes ownership of the object. Don't pick anything up and don't play with display items.</li><li data-textannotation-id="05dde4d44056798acff5890759134a64"><strong>Scents and Sounds:</strong> You'll probably hear classic, upbeat tunes when you walk into a store. The upbeat music makes you happy and excited, while playing familiar songs makes you feel comfortable. They also use pleasant smells to put your mind at ease. A happy, comfortable mind at ease is a dangerous combination for your brain when shopping. There's not much you can do to avoid this unless you shop online, but it's good to be aware of it.</li></ul><p data-textannotation-id="1eb4a4df2a670927c5d9e9641ebf9d40">And sure, we can blame the stores all we want, but you won't change how they operate—you can only be aware of how your <a href="http://lifehacker.com/how-stores-manipulate-your-senses-so-you-spend-more-mon-475987594" x-inset="1">brain is falling for their tricks</a>. Even without the stores, <a href="http://lifehacker.com/5968125/how-your-brain-corrupts-your-shopping-choices" x-inset="1">your brain is working against you on its own</a>, thanks to some simple cognitive biases.</p>
+
+
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="89992f1ca493b248eea6ed1772326c46">For example, confirmation bias makes you only believe the information that conforms to your prior beliefs, while you discount everything else. Advertisers appeal to this bias directly by convincing you one item is better than another with imagery and other tricks, regardless of what hard facts might say. Keep your mind open, do your own research, and accept when you're wrong about a product. The Decoy effect is also a commonly used tactic. You think one product is a deal because it's next to a similar product that's priced way higher. Even if it's a product you need, it's probably not as good of a deal as it looks right then and there. Again, always research beforehand and be on the lookout for this common trick to avoid impulse buys.</p>
+
+
+
+
+
+
+
+
+
+
+<h3 data-textannotation-id="eedde8c384145f2593efc2a15a4d79de"><strong>Make a List of </strong><em><strong>Everything</strong></em><strong> You Own and Do Some Decluttering</strong></h3>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="8044cf9aab698fd28931acd90ba96f7a"><span><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--mlR3Ku0_--/xrhkwleyurcizy4akiae.jpg" data-chomp-id="xrhkwleyurcizy4akiae" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--mlR3Ku0_--/xrhkwleyurcizy4akiae.jpg" width="636"></img></span></p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="a2a886d841e5aed848cdf7088edde4ea">Now that you know what you're up against, it's time to start changing the way you think. Before you can stop buying crap you don't need, you need to identify what that crap is. The first step is to make a list of <a href="http://lifehacker.com/how-to-defeat-the-urge-to-binge-shop-1468216943" x-inset="1">every single thing you own</a>. <strong>Every. Single. Thing</strong>. This might sound extreme, but you need to gather your data so you can start reprogramming your mind.</p>
+
+
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="bbe57b7aa20b48550e5f66b7c530822c">The purpose of this exercise is twofold: you see what you already have and don't need to ever buy again, and you get to see what you shouldn't have bought in the first place. As you list everything out, separate items into categories. It's extremely important that you are as honest with yourself as possible while you do this. It's also important you actually write this all down or type it all out. Here is the first set of categories to separate everything into:</p>
+
+
+
+
+
+
+
+
+
+
+<ul><li data-textannotation-id="8d7dc912152eddd0e3d56e28ad79e6f2"><strong>Need:</strong> You absolutely need this item to get by on a day to day basis.</li><li data-textannotation-id="6f60a79627f0746d1f611999251e9f1b"><strong>Sometimes Need:</strong> You don't need this item every day, but you use it on a somewhat regular basis.</li><li data-textannotation-id="54e10b108f95548966b657bd90fdbed4"><strong>Want:</strong> You bought this item because you wanted it, not because you needed it.</li><li data-textannotation-id="26c461a85fbc78651be442e205cac58b"><strong>Crap:</strong> You don't have a good reason why you have it and you already know it needs to go (there's probably a few of these items, at least).</li></ul><p data-textannotation-id="5743cf753f68fd8ee3443cc0f8e815dd">Leave the things you listed as "needs" alone, put your stuff listed as "crap" in a pile or box to go bye-bye, and move your attention back to your "sometimes need" and "want" lists. You need to go back over both of those lists because you probably fudged some of the listings, either subconsciously or intentionally. Now ask yourself these three questions as you go through both the "sometimes need" and "want" lists:</p>
+
+
+
+
+
+
+
+
+
+
+<ul><li data-textannotation-id="2048d6c0436bd34811442d6df32989a4">When was the last time I used this?</li><li data-textannotation-id="3f4b3686d822171b35e27bf1afde530b">When will I use this again?</li><li data-textannotation-id="63728605cc4fa66f5b225f674d12bbff">Does this item <a href="http://lifehacker.com/declutter-by-asking-one-question-does-this-spark-joy-1651256422">bring you joy</a>?</li></ul><p data-textannotation-id="816cd504161fecc6f3e173779b33d5db">Remember to be honest and adjust your lists accordingly. There's nothing wrong with keeping things you wanted. Material items can <a href="http://lifehacker.com/how-to-buy-happiness-the-purchases-most-likely-to-brin-1681780686">bring happiness to many people</a>, but make sure the items on your "want" list actively provide you joy and are being used. If an item doesn't get much use or doesn't make you happy, add it to the "crap" list.</p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="675103d9c0da55e95f93c53bb019f864">Once you have everything organized, it's time to do some serious decluttering. This listing exercise should get you started, but there are <a href="http://lifehacker.com/5957609/how-to-kick-your-clutter-habit-and-live-in-a-clean-house-once-and-for-all">a lot of other great ideas</a> when it comes to ditching the junk you don't need. Regardless, everything on your "crap" list needs to go. You can donate it, sell it at a yard sale, give it away to people know, whatever you like. Before you get rid of everything, though, take a picture of all your stuff together. Print out or save the picture somewhere. Some of it was probably gifts, but in general, this is all the crap you bought that you don't need. Take a good look and remember it.</p>
+
+
+
+
+
+
+
+
+
+
+<h3 data-textannotation-id="f15ab0a628b159459f095f04fef851ba"><strong>See How Much Money and Time You Spent on the Stuff You Threw Out</strong></h3>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="bc2f55587bf4ab07a1852a8d26217233"><span><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--Tacb0tyW--/qodag11euf2npkawkn9v.jpg" data-chomp-id="qodag11euf2npkawkn9v" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--Tacb0tyW--/qodag11euf2npkawkn9v.jpg" width="636"></img></span></p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="95ab4fe30c3ade42a8011966ea54aa0b">Now take a look at your "crap" list again and start calculating how much you spent on all of it. If it was a gift, mark it as $0. Otherwise, figure out the price of the item at the time you bought it. If you got a deal or bought it on sale it's okay to factor that in, but try to be as accurate as possible. Once you have the price for each item, add it all together. Depending on your spending habits this could possibly be in the hundreds to thousands of dollars. Remember the picture you took of all this stuff? Attach the total cost to the picture so you can see both at the same time.</p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="f654efec679064b15826d8ee20bc94e4">With the money cost figured out, you should take a look at the other costs too. Time is a resource just like any other, and it's a finite one. What kind of time did you pour into these things? Consider the time you spent acquiring and using these items, then write it all down. These can be rough estimations, but go ahead and add it all up when you think you've got it. Now attach the total time to same picture as before and think of the other ways you could have spent all that time. This isn't to make you feel bad about yourself, just to deliver information to your brain in an easy-to-understand form. When you look at it all like this, it can open your eyes a little more, and help you think about purchases in the future. You'll look at an item and ask yourself, "Will this just end up in the picture?"</p>
+
+
+
+
+
+
+
+
+
+
+<h3 data-textannotation-id="6342bf7f15d9eddd21489c23e51ca434"><strong>List Every Non-Material Thing In Your Life that Makes You Happy</strong></h3>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="bafeac1c3808e0d2900190979f058b2c"><span><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--x9hLbIKJ--/imfc9ybqfw0jmztbhfrh.jpg" data-chomp-id="imfc9ybqfw0jmztbhfrh" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--x9hLbIKJ--/imfc9ybqfw0jmztbhfrh.jpg" width="636"></img></span></p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="4bd8fbaabb33ff1cb5dc93c16e1f83cc">Now it's time to make a different list. While material items may bring plenty of joy, the things in your life that make you happiest probably can't be bought. Get a separate piece of paper or create a new document and list out everything in your life that makes you happy. If you can't buy it, it's eligible for the list. It doesn't matter if it only makes you crack a smile or makes you jump for joy, list it out. </p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="104a646a62ad7a0cfb4e3ff086185fdc"><span>These are probably the things that actually make you want to get out of bed in the morning and keep on keepin' on. Once you have it all down, put it in your purse or wallet. The next time you feel the urge to buy something, whip this list out first and remind yourself why you probably don't need it.</span></p>
+
+
+
+
+
+
+
+
+
+
+<h3 data-textannotation-id="532cf992ff45d52de501c1a8f80fc152"><strong>Spend Some Time Away from Material Things to Gain Perspective</strong></h3>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="64f5c7155ad89bd2835399d33c1ae28a"><span><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--6NwBgQLy--/afy7n45jfvsjdmmhonct.jpg" data-chomp-id="afy7n45jfvsjdmmhonct" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--6NwBgQLy--/afy7n45jfvsjdmmhonct.jpg" width="636"></img></span></p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="84554492c487779e921b98fb64222177">If you're having a really hard time with your spending, it can help to get away from material objects completely. When you're constantly surrounded by stuff and have access to buying things at all times, it can be really tough to break the habit. Spend a day in the park enjoying the sights and sounds of the outdoors, go camping with some friends, or hike a trail you haven't been on before. </p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="b44add1c7b690705d672186e3a9604b6">Essentially, you want to show yourself that you don't need your "things" to have a good time. When you realize how much fun you can have without all the trinkets and trivets, you'll start to shut down your desire to buy them. If you can't get really get away right now, just go for a walk without your purse or wallet (but carry your ID). If you can't buy anything, you'll be forced to experience things a different way.</p>
+
+
+
+
+
+
+
+
+
+
+<h3 data-textannotation-id="98c11bebae0bbcdbe8411df0186d6465"><strong>Develop a Personal "Should I Buy This?" Test</strong></h3>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="ff438b878771354bb7f6d065ff50dbb2"><span><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--ciqk42G0--/s3pq8vjrvyjgne4lfsod.jpg" data-chomp-id="s3pq8vjrvyjgne4lfsod" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--ciqk42G0--/s3pq8vjrvyjgne4lfsod.jpg" width="636"></img></span></p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="4af04ae83f18d9c37da21527bcd4a290">If you don't have a personal "should I buy this?" test, now's the perfect time to make one. When you find an item you think you need or want, it has to pass all of the questions you have on your test before you can buy it. Here's where you can use all of the data you've gathered so far and put it to really good use. The test should be personalized to your own buying habits, but here are some example questions:</p>
+
+
+
+
+
+
+
+
+
+
+<ul><li data-textannotation-id="fcfd78b1619bdf0b7330f4b40efb899d">Is this a planned purchase?</li><li data-textannotation-id="c16e7d5feae7cc2c3c6a8dd312ea206f">Will it end up in the "crap" list picture one day?</li><li data-textannotation-id="54d877fdee56080c87508fc9e6402889"><a href="http://lifehacker.com/prevent-clutter-by-asking-yourself-where-items-will-go-1649480461">Where am I going to put it</a>?</li><li data-textannotation-id="59d5245217c84e6b2b2969b3492f2f2d">Have I included this in my budget?</li><li data-textannotation-id="8fe1582808b4d89f5c88c2708744d27d"><em>Why</em> do I want/need it?</li></ul><p data-textannotation-id="0162d779382cdc7de908fc1488af3940">Custom build your test to hit all of your weaknesses. If you make a lot of impulse buys, include questions that address that. If you experience a lot of buyer's remorse, include a lot of questions that make you think about the use of item after you buy it. If buying the latest and greatest technology is your weakness, Joshua Becker at Becoming Minimalist suggests you ask yourself <a href="http://www.becomingminimalist.com/marriage-hacks/" target="_blank">what problem the piece of tech solves</a>. If you can't think of anything it solves or if you already have something that solves it, you don't need it. Be thorough and build a test that you can run through your mind every time you consider buying something.</p>
+
+
+
+
+
+
+
+
+
+
+<h3 data-textannotation-id="c0ed0882675acc340dcd88e13ca514b3"><strong>Learn to Delay Gratification and Destroy the Urge to Impulse Buy</strong></h3>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="1d43712fc5ce8f156e4661cca5750575"><span><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--mtob1sjR--/y2ldv5eufb3jcrtfouye.jpg" data-chomp-id="y2ldv5eufb3jcrtfouye" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--mtob1sjR--/y2ldv5eufb3jcrtfouye.jpg" width="636"></img></span></p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="3d8086719c5da749f877629d498ccab9">When it comes to the unnecessary crap we buy, impulse purchases probably make up a good deal of them. We love to feel gratification instantly and impulse buys appeal to that with a rush of excitement with each new purchase. We like to believe that we have control over our impulses all the time, but we really don't, and that's a major problem for the ol' wallet.</p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="620ca9836425e09ec7fa50bfad204665">The key is teaching your brain that it's okay to <a href="http://lifehacker.com/overcome-the-need-for-instant-gratification-by-delaying-1636938356">wait for gratification</a>. You can do this with a simple time out every time you want something. Look at whatever you're thinking of buying, go through your personal "should I buy this?" test, and then walk away for a little while. Planning your purchases ahead is ideal, so the longer you can hold off, the better. Set yourself a reminder to check on the item <a href="http://lifehacker.com/5859632/buyers-remorse-is-inevitable-how-to-make-purchases-you-really-wont-regret">a week or month down the line</a>. When you come back to it, you may find that you don't even want it, just the gratification that would come with it. If you're shopping online, you can do the same thing. Walk away from your desk or put your phone in your pocket and do something else for a little while.</p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="a85d9eb501c898234ac5df2a56c50a13">You can also avoid online impulse purchases by <a href="http://lifehacker.com/5919833/how-to-avoid-impulse-purchases-in-the-internet-shopping-age" x-inset="1">making it harder to do</a>. Block shopping web sites during time periods you know you're at your weakest, or remove all of your saved credit card or Paypal information. You can also <a href="http://lifehacker.com/5569035/practice-the-halt-method-to-curb-impulse-purchases" x-inset="1">practice the "HALT" method</a> when you're shopping online or in a store. Try not to buy things when you're Hungry, Angry, Lonely, or Tired because you're at your weakest state mentally. Last, but not least, the "<a href="http://lifehacker.com/5320196/use-the-stranger-test-to-reduce-impulse-purchases" x-inset="1">stranger test</a>" can help you weed out bad purchases too.</p>
+
+
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="27385752c06848647540ad931892b21e">The last thing you should consider when it comes to impulse buys is "artificial replacement." As Trent Hamm at The Simple Dollar explains, artificial replacement can happen when you start to <a href="http://www.thesimpledollar.com/balancing-spending-and-time-how-time-frugality-can-save-you-lots-of-cash/" target="_blank">reduce the time</a> you get with your main interests:</p>
+
+
+
+
+
+
+
+
+
+
+<blockquote data-textannotation-id="213e2e816ac88f8d177fb0db0f7fef09">
+<p data-textannotation-id="7b98c5809df24dd04bb65285878c0335">Whenever I consistently cut quality time for my main interests out of my life, I start to long for them. As you saw in that "typical" day, I do make room for spending time with my family, but my other two main interests are absent. If that happens too many days in a row, I start to really miss reading. I start to really miss playing thoughtful board games with friends. What happens after that? <strong>I start to substitute.</strong> When I don't have the opportunity to sit down for an hour or even for half an hour and really get lost in a book, I start looking for an alternative way to fill in the tiny slices of time that I do have. I'll spend money.</p></blockquote>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="4b6cc2900ffacd3daef54b13b4caceac">You probably have things in your life that provide plenty of gratification, so don't get caught substituting it with impulse buys. Always make sure you keep yourself happy with plenty of time doing the things you like to do and you won't be subconsciously trying to fill that void with useless crap.</p>
+
+
+
+
+
+
+
+
+
+
+<h3 data-textannotation-id="aed9b435c4ed23e573c453ceeb34ed18"><strong>Turn the Money You Save Into More Money</strong></h3>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="21154394d63f1943d01f2b717aa31115"><span><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--4Ajak63w--/atb9qm07fvvg7hqkumkw.jpg" data-chomp-id="atb9qm07fvvg7hqkumkw" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--4Ajak63w--/atb9qm07fvvg7hqkumkw.jpg" width="636"></img></span></p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="6141942e977cc058fd7a0fa06a3f7389">Once you've programmed your mind to stop buying crap you don't need, you'll have some extra cash to play with. Take all that money and start putting it toward your future and things you <em>will</em> need further down the road. You might need <a href="http://twocents.lifehacker.com/how-to-start-saving-for-a-home-down-payment-1541254056" target="_blank">a home</a>, a vehicle, or a way to retire, but none of that can happen until you start planning for it. </p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="90f08afddc08e2c3b45c266f2e6965ec">Start by paying off any debts you already have. Credit cards, student loans, and even car payments can force you to <a href="http://lifehacker.com/how-to-break-the-living-paycheck-to-paycheck-cycle-1445330680">live paycheck to paycheck</a>. Use the <a href="http://lifehacker.com/5940989/pay-off-small-balances-first-for-better-odds-of-eliminating-all-your-debt">snowball method</a> and pay off some small balances to make you feel motivated, then start taking out your debt in full force with the <a href="http://lifehacker.com/how-to-pay-off-your-debt-using-the-stack-method-576070292">stacking method</a>: stop creating new debt, determine which balances have the highest interest rates, and create a payment schedule to pay them off efficiently.</p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="1106cb837deb2b6fc8e28ba98f078c27">With your debts whittled down, you should start an emergency fund. No matter how well you plan things, accidents and health emergencies can still happen. An emergency fund is designed to make those kinds of events more manageable. This type of savings account is strictly for when life throws you a curveball, but you can grow one pretty easily <a href="http://twocents.lifehacker.com/how-to-grow-an-emergency-fund-from-modest-savings-1638409351" target="_blank">with only modest savings</a>.</p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="347c2a36f114a794d559d929da1b15b7">When you've paid off your debt and prepared yourself for troubled times, you can start saving for the big stuff. All that money you're not spending on crap anymore can be saved, invested, and compounded to let you buy comfort and security. If you don't know where to start, talk to a financial planner. Or create a simple, yet effective <a href="http://twocents.lifehacker.com/how-to-build-an-easy-beginner-set-and-forget-investm-1686878594" target="_blank" x-inset="1">"set and forget" investment portfolio</a>. You've worked hard to reprogram your mind, so make sure you reap the benefits for many years to come.</p>
+
+
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="b54d87ffdace50f420c3a6ff0404cbf3"><em><small>Photos by <a href="http://www.shutterstock.com/pic-129762989/stock-vector-consumer.html?src=id&amp;ws=1" target="_blank">cmgirl</a> (Shutterstock), <a href="http://www.shutterstock.com/pic-227832739/stock-vector-hacker-icon-man-in-hoody-with-laptop-flat-isolated-on-dark-background-vector-illustration.html?src=id&amp;ws=1" target="_blank">Macrovector</a> (Shutterstock), <a href="https://www.flickr.com/photos/jetheriot/6186786217" target="_blank">J E Theriot</a>, <a href="https://www.flickr.com/photos/puuikibeach/15289861843" target="_blank">davidd</a>, <a href="https://www.flickr.com/photos/funfilledgeorgie/10922459733" target="_blank">George Redgrave</a>, <a href="https://www.flickr.com/photos/amslerpix/7252002214" target="_blank">David Amsler</a>, <a href="https://www.flickr.com/photos/amalakar/7299820870" target="_blank">Arup Malakar</a>, <a href="https://www.flickr.com/photos/lobsterstew/89644885" target="_blank">J B</a>, <a href="https://www.flickr.com/photos/jakerome/3298702453" target="_blank">jakerome</a>, <a href="http://401kcalculator.org/" target="_blank">401(K) 2012</a>.</small></em></p></div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lifehacker-post-comment-load/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lifehacker-post-comment-load/source.html
new file mode 100644
index 000000000..fb7f522f6
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lifehacker-post-comment-load/source.html
@@ -0,0 +1,1305 @@
+<!DOCTYPE html>
+<!--[if lt IE 8]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en-US"> <![endif]-->
+<!--[if IE 8]> <html class="no-js lt-ie9" lang="en-US"> <![endif]-->
+<!--[if IE 9]> <html class="no-js ie-9" lang="en-US"> <![endif]-->
+<!--[if gt IE 9]><!-->
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" class=" js no-touch csstransforms csstransforms3d csstransitions localstorage svg inlinesvg contenteditable xhr2 no-ipad no-iphone no-ipod no-appleios positionfixed no-android no-ioswebview no-facebookapp"><!--<![endif]--><!-- THIS IS OVERLORD --><head><meta content="IE=11; IE=10; IE=9; IE=8; IE=EDGE" http-equiv="X-UA-Compatible" /><script async="" src="//www.google-analytics.com/analytics.js"></script><script src="http://kinja.com/api/profile/assets/javascripts/sso.js" type="text/javascript" async=""></script>
+ <script type="text/javascript">
+ var _sf_startpt=(new Date()).getTime();
+ if (typeof(performance) !== 'undefined' &amp;&amp; typeof performance.now === 'function') {
+ var _kinjaperf_start = performance.now();
+ }
+ </script>
+
+ <script type="text/javascript">
+ (function () {
+ var w = typeof window != 'undefined' ? window : exports,
+ marks = [];
+ w.performance || (w.performance = {});
+ w.performance.now || (
+ w.performance.now = performance.now || performance.webkitNow ||
+ performance.msNow || performance.mozNow);
+ if (!w.performance.now){
+ var s = Date.now ? Date.now() : +(new Date());
+ if (performance.timing &amp;&amp; performance.timing)
+ s = performance.timing.navigationStart
+ w.performance.now = (function(){
+ var n = Date.now ? Date.now() : +(new Date());
+ return n-s;
+ });
+ }
+ w.performance.mark || (
+ w.performance.mark =
+ w.performance.webkitMark ? w.performance.webkitMark :
+ (function (l) {
+ marks.push({'name': l, 'entryType': 'mark', 'startTime': w.performance.now(), 'duration':0 });
+ }));
+ w.performance.getEntriesByType || (
+ w.performance.getEntriesByType =
+ w.performance.webkitGetEntriesByType ? w.performance.webkitGetEntriesByType :
+ (function (t) {
+ return t == 'mark' ? marks : [];
+ }));
+ w.performance.clearMarks || (
+ w.performance.clearMarks = w.performance.webkitClearMarks ? w.performance.webkitClearMarks :
+ (function () {
+ marks = [];
+ }));
+ w.markUserTime = function(l) {
+ setTimeout(function() {
+ if (typeof w.performance.mark === 'function') {
+ w.performance.mark(l);
+ }
+ if (w.console &amp;&amp; w.console.timeStamp) {
+ w.console.timeStamp(l);
+ }
+ }, 0);
+ };
+
+ }());
+ </script>
+ <script>
+ window.Krux || ((Krux = function () {
+ Krux.q.push(arguments);
+ }).q = []);
+ (function () {
+ function retrieve(n) {
+ var m, k = 'kx' + n;
+ if (window.localStorage) {
+ return window.localStorage[k] || "";
+ } else if (navigator.cookieEnabled) {
+ m = document.cookie.match(k + '=([^;]*)');
+ return (m &amp;&amp; unescape(m[1])) || "";
+ } else {
+ return '';
+ }
+ }
+ Krux.user = retrieve('user');
+ Krux.segments = retrieve('segs') &amp;&amp; retrieve('segs').split(',') || [];
+ })();
+ </script><!-- Included CSS Files --><!--[if IE 9]><link rel="stylesheet" href="http://x.kinja-static.com/assets/stylesheets/tiger-split-501c281ae23f533f6bdadd515be1ba8a.css"><![endif]--><!--[if !IE]>--><link href="http://x.kinja-static.com/assets/stylesheets/tiger-0331994048987aac81f30111327184ed.css" rel="stylesheet" /><!--<![endif]--><meta content="http://x.kinja-static.com/assets/stylesheets/editor-7fe68d97a46203c5f7e2e1703b89b8b4.css" id="editor-css-url" name="dynamic-stylesheet" /><!-- Site specific colors --> <style type="text/css">
+ a, a:hover, a:focus { color: #709602; }
+ </style><meta content="R0yw_jwnGWbokA2qgkupaWGVFJnF6qGtlgbSJEMdQkw" name="google-site-verification" /><!-- IE Fix for HTML5 Tags --><!--[if lte IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]--><meta charset="utf-8" /><!-- Set the viewport width to device width for mobile --><meta content="width=device-width, initial-scale=1.0, minimum-scale=1.0,maximum-scale=10.0" name="viewport" /><meta content="INDEX, FOLLOW" name="ROBOTS" /><title>How to Program Your Mind to Stop Buying Crap You Don’t Need</title><!-- favicon and touch icons --><link href="http://i.kinja-img.com/gawker-media/image/upload/s--rqDhe7s2--/c_fill,fl_progressive,g_center,h_80,q_80,w_80/192oza44hceztpng.png" rel="shortcut icon" /><link href="http://i.kinja-img.com/gawker-media/image/upload/s--bBeYJ-7Z--/c_fill,fl_progressive,g_center,h_200,q_80,w_200/192oza44hceztpng.png" rel="apple-touch-icon" /><meta content="http://i.kinja-img.com/gawker-media/image/upload/s--rqDhe7s2--/c_fill,fl_progressive,g_center,h_80,q_80,w_80/192oza44hceztpng.png" name="msapplication-square70x70logo" /><meta content="http://i.kinja-img.com/gawker-media/image/upload/s--bBeYJ-7Z--/c_fill,fl_progressive,g_center,h_200,q_80,w_200/192oza44hceztpng.png" name="msapplication-square150x150logo" /><!-- rss --><link href="http://feeds.gawker.com/lifehacker/full" title="Lifehacker - All stories" type="application/rss+xml" rel="alternate" /><!-- Open Graph/Facebook headers --><meta content="money, shopping, saving money, personal finances, mind hacks, habits, budget, psychology, editor&amp;#39;s picks, Lifehacker" name="keywords" /><meta content="money, shopping, saving money, personal finances, mind hacks, habits, budget, psychology, editor&amp;#39;s picks, Lifehacker" name="news_keywords" /><link href="http://lifehacker.com/how-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064" rel="canonical" /><meta content="http://lifehacker.com/how-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064" name="twitter:url" /><meta content="How to Program Your Mind to Stop Buying Crap You Don’t Need" property="og:title" /><meta content="article" property="og:type" /><meta content="http://i.kinja-img.com/gawker-media/image/upload/s--hqqO9fze--/n1s6c2m6kc07iqdyllj6.jpg" name="twitter:image" /><meta content="http://i.kinja-img.com/gawker-media/image/upload/s--hqqO9fze--/n1s6c2m6kc07iqdyllj6.jpg" property="og:image" /><meta content="Patrick Allan" name="author" /><meta content="http://lifehacker.com/how-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064" property="og:url" /> <!-- permalink --><meta content="summary_large_image" name="twitter:card" /><meta content="@lifehacker" name="twitter:site" /><meta content="How to Program Your Mind to Stop Buying Crap You Don’t Need" name="twitter:title" /><meta content="We all buy things from time to time that we don't really need. It's okay to appeal to your wants every once in a while, as long as you're in control. If you struggle with clutter, impulse buys, and buyer's remorse, here's how to put your mind in the right place before you even set foot in a store." name="twitter:description" /><meta name="twitter:creator" /><meta content="We all buy things from time to time that we don't really need. It's okay to appeal to your wants every once in a while, as long as you're in control. If you struggle with clutter, impulse buys, and buyer's remorse, here's how to put your mind in the right place before you even set foot in a store." property="og:description" /><meta content="We all buy things from time to time that we don't really need. It's okay to appeal to your wants every once in a while, as long as you're in control. If you struggle with clutter, impulse buys, and buyer's remorse, here's how to put your mind in the right place before you even set foot in a store." name="description" /><meta content="en_US" property="og:locale" /><meta content="Lifehacker" property="og:site_name" /><meta content="37418175030" property="fb:app_id" /><meta content="live" name="kinja:mode" /><meta content="permalink" name="kinja:page-type" /><script async="" type="text/javascript" src="http://d8rk54i4mohrb.cloudfront.net/js/reach.js"></script><script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="layer/Main" src="http://x.kinja-static.com/assets/javascripts-min/layer/Main-en-US-fc52d10f1350408009c8c771fe092f72.js"></script><script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="layer/PostApp" src="http://x.kinja-static.com/assets/javascripts-min/layer/PostApp-en-US-c004ba34b8896c19ebcaf45ecd2464f1.js"></script><script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="module/Raven" src="http://x.kinja-static.com/assets/javascripts-min/module/Raven-en-US-3467f3aed7fecb0be39f14c0d7095e44.js"></script><meta class="foundation-data-attribute-namespace" /><meta class="foundation-mq-xxlarge" /><meta class="foundation-mq-xlarge" /><meta class="foundation-mq-large" /><meta class="foundation-mq-medium" /><meta class="foundation-mq-small" /><style></style><script type="text/javascript" src="http://rtax.criteo.com/delivery/rta/rta.js?netId=1482&amp;cookieName=cto_gawk&amp;rnd=70842173253&amp;varName=crtg_content" async=""></script><meta class="foundation-mq-topbar" /><script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="//platform.twitter.com/widgets.js" src="//platform.twitter.com/widgets.js"></script><script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="module/KinjaAnalytics" src="http://x.kinja-static.com/assets/javascripts-min/module/KinjaAnalytics-en-US-64fff5209724c0b7443a3f00f4bdd9b2.js"></script><script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="module/GroupchatsModule" src="http://x.kinja-static.com/assets/javascripts-min/module/GroupchatsModule-en-US-7cb00a84791c2dfe2dc35cc3ab740476.js"></script></head><body data-timezone-offset="-25200000" class="lifehacker custom-skin permalink en-US f_ads_controller_on f_ads_mv_separation_on f_amazon_matchbuy_on f_amazon_selective_clientside_render_on f_analyticstracking_on f_bigpic_share_on f_biztools_blogname_on f_black_search_icon_on f_cda_on_hash_on f_comment_annotation_template_merge_on f_coredecorators_on f_coreinsets_on f_corelikes_on f_crossdomainanalytics_on f_direct_core_annotations_on f_direct_core_extendedlike_on f_direct_core_post_update_on f_direct_core_reposts_on f_editor_dst_fix_on f_editor_timezone_fix_on f_engine_agnostic_link_modal_on f_foobar_foo f_footer_new_chartbeat_on f_foreplay_copy_update_on f_gnc_on f_gns_on f_gnx_on f_grecaptcha_on f_groupchats_rendering_performance_on f_hide_pending_replies_on f_iframe_resize_on f_insetmetrics_on f_json_post_sync_on f_large_post_performance_on f_limit_draft_controls_on f_longer_permalink_cache_time_1800_on f_moatads_headertag_on f_moatads_promoted_on f_mobile_ad_prototypes_on f_mobile_ad_prototypes_permalink_on f_multioauth_on f_new_editor_css_on f_new_editor_message_on f_newblogproperties_on f_newbuttons_on f_newfollowlists_on f_no_follow_pending_on f_permalink_body_mobile_ad_on f_permalinkservice_feedcontroller_on f_permalinkservice_inviteservice_on f_pinterest_on f_pinterest_hoverbutton_on f_pinterest_mobilepanel_on f_popular_6_on f_postlistclickmetrics_on f_postlisttracking_on f_pre_share_view_on f_promoted_touch_on f_purge_permalink_on_update_on f_raven_on f_recommended_footer_on f_redactor_on f_remove_spinner_on f_s3assets_on f_scheduled_shares_on f_scribe_on f_sha_amazon_links_subtags_on f_simplereach_expanded_on f_tablet_popular_on f_throttle_on f_throttle_measuring_off f_throttle_test_foo_lorem f_twitter_embed_fix_on f_uidimages_on f_unify_amazon_insets_permalink_on f_universalanalytics_on f_userstats_on f_viewstats_via_service_on k_liveblog_appRevision_1 k_liveblog_pollIntervalMillis_10000 k_maintenance_off js_initialized no-touch" style=""><div id="js_success-box-container" class="success-messages"></div>
+ <script type="text/javascript">
+ var readOnlyRequest;
+ var cn = "read-only";
+ var cacheBusterParam = "?cb=" + Math.floor(Date.now() / 60000); // update every minute
+ var setReadOnly = function () {
+ document.body.className = (document.body.className === '') ? cn : document.body.className + ' ' + cn;
+ };
+ if (window.XMLHttpRequest) {
+ readOnlyRequest = new XMLHttpRequest();
+ } else if (window.ActiveXObject) {
+ readOnlyRequest = new ActiveXObject("Microsoft.XMLHTTP");
+ }
+ readOnlyRequest.onreadystatechange = function() {
+ if (readOnlyRequest.readyState == 4 &amp;&amp; readOnlyRequest.status &gt;= 500 &amp;&amp; readOnlyRequest.status &lt; 600) {
+ setReadOnly();
+ }
+ };
+ readOnlyRequest.open('GET', "/ajax/readOnlyMode" + cacheBusterParam);
+ readOnlyRequest.send();
+ </script>
+ <div data-offcanvas="" class="off-canvas-wrap" id="js_off-canvas-wrap"><div class="inner-wrap"><aside class="left-off-canvas-menu show-for-medium-down proxima nav-dropdown main-menu"> <div id="js_blogmenu--offcanvas"><div class="search show-for-medium-down"> <form onsubmit="window.ga('send', 'event', 'Search', 'Submit', 'permalink');" action="/search" class="search search-simple" method="GET"><div class="input-with-icon"><span class="icon icon-search"></span><input type="text" data-focus-on-display="" autocomplete="off" class="mbn" name="q" placeholder="Search" /></div></form></div><div class="divider show-for-medium-down"></div><div class="js_login-links show-for-medium-down"><div> <div class="login-links"><a data-ga="[User Menu, Login Click, js_pageType]" class="login-link js_login-link" href="#">Log in</a></div></div></div> <ul class="show-for-medium-down"><li data-blogid="17" class="add js_follow-controls js_follow-blog-controls follow-controls--blog-menu"><a class="js_followblogforuser proxima" href="#"><span class="icon icon-plus-alt"></span> <span>Follow Lifehacker</span></a><a class="js_unfollowblogforuser proxima hide" href="#"><span class="icon icon-checkmark-alt"></span> <span>Followed</span></a></li><li></li></ul><ul class="related-blog-list"><li class="title">Related blogs</li> <li><a data-ga="[Kinja Menu, Related Blog Click, Hackerspace]" href="http://hackerspace.lifehacker.com"><span class="icon icon-sprite site-icon site-icon-default icon-prepend"></span>Hackerspace</a></li><li><a data-ga="[Kinja Menu, Related Blog Click, After Hours]" href="http://afterhours.lifehacker.com"><span class="icon icon-sprite site-icon site-icon-default icon-prepend"></span>After Hours</a></li><li><a data-ga="[Kinja Menu, Related Blog Click, Two Cents]" href="http://twocents.lifehacker.com"><span class="icon icon-sprite site-icon site-icon-default icon-prepend"></span>Two Cents</a></li><li><a data-ga="[Kinja Menu, Related Blog Click, Workshop]" href="http://workshop.lifehacker.com"><span class="icon icon-sprite site-icon site-icon-default icon-prepend"></span>Workshop</a></li><li><a data-ga="[Kinja Menu, Related Blog Click, Vitals]" href="http://vitals.lifehacker.com"><span class="icon icon-sprite site-icon site-icon-default icon-prepend"></span>Vitals</a></li><li><a data-ga="[Kinja Menu, Related Blog Click, Skillet]" href="http://skillet.lifehacker.com"><span class="icon icon-sprite site-icon site-icon-default icon-prepend"></span>Skillet</a></li><li><a data-ga="[Kinja Menu, Related Blog Click, Shop Talk]" href="http://shoptalk.lifehacker.com"><span class="icon icon-sprite site-icon site-icon-default icon-prepend"></span>Shop Talk</a></li></ul><div class="divider"></div><ul class="gmg-blog-list"><li class="title">Blogs you may like</li> <li><a data-ga="[Kinja Menu, Blogs You May Like Click, Deadspin]" href="http://deadspin.com"><span class="icon icon-prepend icon-sprite site-icon site-icon-deadspin"></span>Deadspin</a></li><li><a data-ga="[Kinja Menu, Blogs You May Like Click, Gawker]" href="http://gawker.com"><span class="icon icon-prepend icon-sprite site-icon site-icon-gawker"></span>Gawker</a></li><li><a data-ga="[Kinja Menu, Blogs You May Like Click, Gizmodo]" href="http://gizmodo.com"><span class="icon icon-prepend icon-sprite site-icon site-icon-gizmodo"></span>Gizmodo</a></li><li><a data-ga="[Kinja Menu, Blogs You May Like Click, io9]" href="http://io9.com"><span class="icon icon-prepend icon-sprite site-icon site-icon-io9"></span>io9</a></li><li><a data-ga="[Kinja Menu, Blogs You May Like Click, Jalopnik]" href="http://jalopnik.com"><span class="icon icon-prepend icon-sprite site-icon site-icon-jalopnik"></span>Jalopnik</a></li><li><a data-ga="[Kinja Menu, Blogs You May Like Click, Jezebel]" href="http://jezebel.com"><span class="icon icon-prepend icon-sprite site-icon site-icon-jezebel"></span>Jezebel</a></li><li><a data-ga="[Kinja Menu, Blogs You May Like Click, Kotaku]" href="http://kotaku.com"><span class="icon icon-prepend icon-sprite site-icon site-icon-kotaku"></span>Kotaku</a></li><li><a data-ga="[Kinja Menu, Blogs You May Like Click, Lifehacker]" href="http://lifehacker.com"><span class="icon icon-prepend icon-sprite site-icon site-icon-lifehacker"></span>Lifehacker</a></li><li><a data-ga="[Kinja Menu, Blogs You May Like Click, Sploid]" href="http://sploid.gizmodo.com/"><span class="icon icon-prepend icon-sprite site-icon site-icon-sploid"></span>Sploid</a></li></ul></div><div class="divider"></div></aside><aside class="right-off-canvas-menu show-for-medium-down proxima nav-dropdown"> <dl data-tab="" class="tabs row"><dd class="js_username-tab tab-title active small-6 columns"><a class="js_username" href="#js_usermenu--offcanvas">Username</a></dd><dd class="js_notif-tab tab-title small-6 columns"><a href="#js_notifications--offcanvas">Notifications</a></dd></dl><div class="tabs-content"><div id="js_usermenu--offcanvas" class="content active"><div> <ul class="user-links"><li class="hover-icon"><a data-ga="[User Menu, Compose Post Click, js_pageType]" class="js_compose-post-button readonly-hide" href="#"><span class="icon oversized icon-pencil-alt icon-prepend"></span>Compose post</a></li><li class="hover-icon"><a data-ga="[User Menu, Account Settings Click, js_pageType]" class="js_settings-link readonly-hide" href="#"><span class="icon oversized icon-gear icon-prepend"></span>Account Settings</a></li><li class="hover-icon"><a data-ga="[User Menu, Private View Click, js_pageType]" class="js_private-button" href="#"><span class="icon oversized icon-lock icon-prepend"></span>Private view</a></li><li class="hover-icon"><a data-ga="[User Menu, Logout Click, js_pageType]" class="js_logout-link" href="#"><span class="icon oversized icon-x-small icon-prepend"></span>Logout</a></li><li class="js_manageblog hover-icon hide"><a data-ga="[User Menu, Manage Blog Click, js_pageType]" class="js_manageblog-link hover-icon readonly-hide" href="#"><span class="icon oversized icon-users icon-prepend"></span></a></li><li class="js_salestools hover-icon hide"><a data-ga="[User Menu, Business Tool Click, js_pageType]" class="js_salestools-link hover-icon readonly-hide" href="#"><i class="icon oversized icon-bubble-right icon-prepend"></i>Biz Tools for Lifehacker</a></li><li class="js_superuser-tools hover-icon hide"><a data-ga="[User Menu, Create Blog Click, js_pageType]" class="js_createblog-link hover-icon readonly-hide" href="#"><span class="icon icon-document-add oversized icon-prepend"></span>Create blog</a></li><li class="js_superuser-tools hide"><a data-ga="[User Menu, Show Mom Jeans Click, js_pageType]" class="hover-icon" href="?superuser"><span class="icon oversized icon-star icon-prepend"></span>Show Mom Jeans</a></li></ul><div class="divider"></div><ul class="title-ownblogs"><li class="title">My blogs</li></ul><ul class="js_myblogs myblogs"></ul></div></div><div id="js_notifications--offcanvas" class="content notif-menu js_notif-panel"><div class="divider"></div></div></div></aside><a class="exit-off-canvas"></a> <!-- md5! --><div class="js_top-nav-wrap top-nav fixed shadow-bottom"><nav class="js_top-nav row proxima"><div class="header flex-container horizontal-nowrap"><div class="flex-item off-canvas-toggle__wrapper show-for-medium-down"><a data-ga="[Kinja Menu, Menu Click, js_pageType]" class="left-off-canvas-toggle menu-square"><span class="icon-hamburger"><span></span><span></span><span></span></span></a></div><div class="flex-item kinja-title__wrapper hide-for-medium-down"><a class="js_menu-button" data-dropdown="global-blog"><span data-ga="[Kinja Menu, Menu Click, js_pageType]" class="menu-square menu-square--desktop"><span class="icon-hamburger"><span></span><span></span><span></span></span></span></a></div><div data-image-asset-path="http://x.kinja-static.com/assets/images/" data-logo-src="http://i.kinja-img.com/gawker-media/image/upload/s--TBjOdHcL--/c_fit,fl_progressive,q_80,w_600/bwiqhbo45ulldozwchb0.png" class="blog-title-region js_blog-title-region flex-item flex-grow"><div href="/" title="Lifehacker" class="blog-title"><a title="Lifehacker" class="blog-title__logo site-logo js_blog-title__logo gmgLogos" href="/"><img alt="" src="http://x.kinja-static.com/assets/images/logos/navbar/logo-lifehacker.png" class="blog-title__img logo-lifehacker" /></a><div class="search-button"><span class="icon icon-search js_search-button__open-icon search-button__open-icon"></span></div></div></div><div class="flex-item header-right"><div class="right user-bar js_right-user-bar"><div> <div class="login-links"><a data-ga="[User Menu, Login Click, js_pageType]" class="login-link js_login-link" href="#">Log in</a></div></div></div></div></div><div data-dropdown-content="" id="global-blog" class="proxima f-dropdown content nav-dropdown main-menu hide-for-medium-down"><div id="js_blogmenu--dropdown"><div class="search show-for-medium-down"> <form onsubmit="window.ga('send', 'event', 'Search', 'Submit', 'permalink');" action="/search" class="search search-simple" method="GET"><div class="input-with-icon"><span class="icon icon-search"></span><input type="text" data-focus-on-display="" autocomplete="off" class="mbn" name="q" placeholder="Search" /></div></form></div><div class="divider show-for-medium-down"></div><div class="js_login-links show-for-medium-down"><div> <div class="login-links"><a data-ga="[User Menu, Login Click, js_pageType]" class="login-link js_login-link" href="#">Log in</a></div></div></div> <ul class="show-for-medium-down"><li data-blogid="17" class="add js_follow-controls js_follow-blog-controls follow-controls--blog-menu"><a class="js_followblogforuser proxima" href="#"><span class="icon icon-plus-alt"></span> <span>Follow Lifehacker</span></a><a class="js_unfollowblogforuser proxima hide" href="#"><span class="icon icon-checkmark-alt"></span> <span>Followed</span></a></li><li></li></ul><ul class="related-blog-list"><li class="title">Related blogs</li> <li><a data-ga="[Kinja Menu, Related Blog Click, Hackerspace]" href="http://hackerspace.lifehacker.com"><span class="icon icon-sprite site-icon site-icon-default icon-prepend"></span>Hackerspace</a></li><li><a data-ga="[Kinja Menu, Related Blog Click, After Hours]" href="http://afterhours.lifehacker.com"><span class="icon icon-sprite site-icon site-icon-default icon-prepend"></span>After Hours</a></li><li><a data-ga="[Kinja Menu, Related Blog Click, Two Cents]" href="http://twocents.lifehacker.com"><span class="icon icon-sprite site-icon site-icon-default icon-prepend"></span>Two Cents</a></li><li><a data-ga="[Kinja Menu, Related Blog Click, Workshop]" href="http://workshop.lifehacker.com"><span class="icon icon-sprite site-icon site-icon-default icon-prepend"></span>Workshop</a></li><li><a data-ga="[Kinja Menu, Related Blog Click, Vitals]" href="http://vitals.lifehacker.com"><span class="icon icon-sprite site-icon site-icon-default icon-prepend"></span>Vitals</a></li><li><a data-ga="[Kinja Menu, Related Blog Click, Skillet]" href="http://skillet.lifehacker.com"><span class="icon icon-sprite site-icon site-icon-default icon-prepend"></span>Skillet</a></li><li><a data-ga="[Kinja Menu, Related Blog Click, Shop Talk]" href="http://shoptalk.lifehacker.com"><span class="icon icon-sprite site-icon site-icon-default icon-prepend"></span>Shop Talk</a></li></ul><div class="divider"></div><ul class="gmg-blog-list"><li class="title">Blogs you may like</li> <li><a data-ga="[Kinja Menu, Blogs You May Like Click, Deadspin]" href="http://deadspin.com"><span class="icon icon-prepend icon-sprite site-icon site-icon-deadspin"></span>Deadspin</a></li><li><a data-ga="[Kinja Menu, Blogs You May Like Click, Gawker]" href="http://gawker.com"><span class="icon icon-prepend icon-sprite site-icon site-icon-gawker"></span>Gawker</a></li><li><a data-ga="[Kinja Menu, Blogs You May Like Click, Gizmodo]" href="http://gizmodo.com"><span class="icon icon-prepend icon-sprite site-icon site-icon-gizmodo"></span>Gizmodo</a></li><li><a data-ga="[Kinja Menu, Blogs You May Like Click, io9]" href="http://io9.com"><span class="icon icon-prepend icon-sprite site-icon site-icon-io9"></span>io9</a></li><li><a data-ga="[Kinja Menu, Blogs You May Like Click, Jalopnik]" href="http://jalopnik.com"><span class="icon icon-prepend icon-sprite site-icon site-icon-jalopnik"></span>Jalopnik</a></li><li><a data-ga="[Kinja Menu, Blogs You May Like Click, Jezebel]" href="http://jezebel.com"><span class="icon icon-prepend icon-sprite site-icon site-icon-jezebel"></span>Jezebel</a></li><li><a data-ga="[Kinja Menu, Blogs You May Like Click, Kotaku]" href="http://kotaku.com"><span class="icon icon-prepend icon-sprite site-icon site-icon-kotaku"></span>Kotaku</a></li><li><a data-ga="[Kinja Menu, Blogs You May Like Click, Lifehacker]" href="http://lifehacker.com"><span class="icon icon-prepend icon-sprite site-icon site-icon-lifehacker"></span>Lifehacker</a></li><li><a data-ga="[Kinja Menu, Blogs You May Like Click, Sploid]" href="http://sploid.gizmodo.com/"><span class="icon icon-prepend icon-sprite site-icon site-icon-sploid"></span>Sploid</a></li></ul></div></div><div data-dropdown-content="" id="js_notifications--dropdown" class="proxima f-dropdown nav-dropdown content notif-menu"></div><div class="js_global-user scrollable-container noskimlinks noskimwords"><div data-dropdown-content="" id="js_usermenu--dropdown" class="proxima f-dropdown nav-dropdown content user-menu user-menu--mobile"><div> <ul class="user-links"><li class="hover-icon"><a data-ga="[User Menu, Compose Post Click, js_pageType]" class="js_compose-post-button readonly-hide" href="#"><span class="icon oversized icon-pencil-alt icon-prepend"></span>Compose post</a></li><li class="hover-icon"><a data-ga="[User Menu, Account Settings Click, js_pageType]" class="js_settings-link readonly-hide" href="#"><span class="icon oversized icon-gear icon-prepend"></span>Account Settings</a></li><li class="hover-icon"><a data-ga="[User Menu, Private View Click, js_pageType]" class="js_private-button" href="#"><span class="icon oversized icon-lock icon-prepend"></span>Private view</a></li><li class="hover-icon"><a data-ga="[User Menu, Logout Click, js_pageType]" class="js_logout-link" href="#"><span class="icon oversized icon-x-small icon-prepend"></span>Logout</a></li><li class="js_manageblog hover-icon hide"><a data-ga="[User Menu, Manage Blog Click, js_pageType]" class="js_manageblog-link hover-icon readonly-hide" href="#"><span class="icon oversized icon-users icon-prepend"></span></a></li><li class="js_salestools hover-icon hide"><a data-ga="[User Menu, Business Tool Click, js_pageType]" class="js_salestools-link hover-icon readonly-hide" href="#"><i class="icon oversized icon-bubble-right icon-prepend"></i>Biz Tools for Lifehacker</a></li><li class="js_superuser-tools hover-icon hide"><a data-ga="[User Menu, Create Blog Click, js_pageType]" class="js_createblog-link hover-icon readonly-hide" href="#"><span class="icon icon-document-add oversized icon-prepend"></span>Create blog</a></li><li class="js_superuser-tools hide"><a data-ga="[User Menu, Show Mom Jeans Click, js_pageType]" class="hover-icon" href="?superuser"><span class="icon oversized icon-star icon-prepend"></span>Show Mom Jeans</a></li></ul><div class="divider"></div><ul class="title-ownblogs"><li class="title">My blogs</li></ul><ul class="js_myblogs myblogs"></ul></div></div></div></nav></div><div class="js_ad-top row ad-wide ad-top show-for-xlarge-up" id="ad-970x90-container"><div class="column"> <div class="ad-unit js_ad-unit ad-top-banner js_ad-top-banner"><div data-zone-type="TOP_BANNER" class="ad-container js_ad-container" id="ad-container-21598451"></div></div></div></div><div class="row page js_page"><div class="large-4 columns sidebar hide-for-medium-down"><div class="sidebar-container js_sidebar-actual-container"> <div class="sidebar-content js_sidebar-container js_sidebar"><section class="leftrailmodule js_leftrailmodule leftrailmodule--trending" id="js_leftrailmodule--trending"> <div class="strapline proxima text-upper text-micro strapline--leftrail"><span class="strapline-bg">Trending on Kinja</span></div><div class="js_related-module "><ol class="leftrail-list leftrail-list--trending js_leftrail-list"> <li class="row leftrail-item leftrail-item--trending js_leftrail-item"><div class="large-1 columns"><div class="leftrail-marker">1.</div></div><div class="large-5 columns"><a data-ga="[Trending module click, position 1, js_pageType]" href="http://deadspin.com/aaron-hernandez-is-an-idiot-but-he-still-might-get-awa-1692206981"><img alt="Aaron Hernandez Is An Idiot, But He Still Might Get Away With Murder" src="http://i.kinja-img.com/gawker-media/image/upload/s--1YlShHHH--/c_fill,fl_progressive,g_north,h_180,q_80,w_320/rm2n6mfzgsokjaqqiohy.png" class="leftrail-image" /></a></div><div class="large-6 columns"><h6 class="headline"><a data-ga="[Trending module click, position 1, js_pageType]" href="http://deadspin.com/aaron-hernandez-is-an-idiot-but-he-still-might-get-awa-1692206981">Aaron Hernandez Is An Idiot, But He Still Might Get Away With Murder</a></h6><div class="byline proxima text-small"> <a class="text-light byline__source" href="//deadspin.com">on Deadspin</a></div></div></li> <li class="row leftrail-item leftrail-item--trending js_leftrail-item"><div class="large-1 columns"><div class="leftrail-marker">2.</div></div><div class="large-11 columns"><h6 class="headline"><a data-ga="[Trending module click, position 2, js_pageType]" href="http://jalopnik.com/top-gear-hosts-james-may-and-richard-hammond-react-to-c-1693566118"><i>Top Gear</i> Hosts James May And Richard Hammond React To Clarkson Firing</a></h6><div class="byline proxima text-small"> <a class="text-light byline__source" href="//jalopnik.com">on Jalopnik</a></div></div></li> <li class="row leftrail-item leftrail-item--trending js_leftrail-item"><div class="large-1 columns"><div class="leftrail-marker">3.</div></div><div class="large-11 columns"><h6 class="headline"><a data-ga="[Trending module click, position 3, js_pageType]" href="http://jalopnik.com/jeremy-clarkson-officially-fired-from-top-gear-1693551101">Jeremy Clarkson Officially Fired From <i>Top Gear</i></a></h6><div class="byline proxima text-small"> <a class="text-light byline__source" href="//jalopnik.com">on Jalopnik</a></div></div></li></ol></div></section> <section class="js_contained-ad-container contained-ad-container leftrailmodule js_leftrailmodule invisible" id="js_leftrailmodule--preloadedad"><div class="contained-ad-wrapper js_contained-ad-wrapper"> <div class="ad-unit js_ad-unit ad-left-rail js_ad-left-rail"><div data-zone-type="LEFT_RAIL" class="ad-container js_ad-container" id="ad-container-68431215"></div></div></div></section><section class="leftrailmodule js_leftrailmodule leftrailmodule--popular invisible" id="js_leftrailmodule--popular"> <div class="strapline proxima text-upper text-micro strapline--leftrail"><span class="strapline-bg">Written by <a href="//patrickallan.kinja.com/">Patrick Allan</a></span></div><div class="js_related-module "><ol class="leftrail-list leftrail-list--popular js_leftrail-list"> <li class="row leftrail-item leftrail-item--popular js_leftrail-item recommended"><div class="row"><div class="large-12 columns leftrail-image-wrap"><a data-ga="[Popular stories click, position 1, js_pageType]" href="http://lifehacker.com/why-you-should-periodically-replace-your-surge-protecto-1693447062"><img alt="Why You Should Periodically Replace Your Surge Protectors" src="http://i.kinja-img.com/gawker-media/image/upload/s--eJ7nuZsO--/c_fill,fl_progressive,g_center,h_180,q_80,w_320/wuhmkpql6xdxuu0xnmc5.jpg" class="leftrail-image" /></a></div></div><div class="row"><div class="large-12 columns"><h6 class="headline"><a data-ga="[Popular stories click, position 1, js_pageType]" href="http://lifehacker.com/why-you-should-periodically-replace-your-surge-protecto-1693447062">Why You Should Periodically Replace Your Surge Protectors</a></h6></div></div><div class="row"><div class="large-12 columns"><div class="leftrail-separator"></div></div></div></li> <li class="row leftrail-item leftrail-item--popular js_leftrail-item recommended"><div class="row"><div class="large-12 columns leftrail-image-wrap"><a data-ga="[Popular stories click, position 2, js_pageType]" href="http://lifehacker.com/remove-burned-grease-and-food-gunk-from-sponges-with-a-1693435757"><img alt="Remove Burned Grease and Food Gunk from Sponges with a Salt Water Soak" src="http://i.kinja-img.com/gawker-media/image/upload/s--D5VWh239--/c_fill,fl_progressive,g_center,h_180,q_80,w_320/cuu0eau8uoxgunp37kgb.jpg" class="leftrail-image" /></a></div></div><div class="row"><div class="large-12 columns"><h6 class="headline"><a data-ga="[Popular stories click, position 2, js_pageType]" href="http://lifehacker.com/remove-burned-grease-and-food-gunk-from-sponges-with-a-1693435757">Remove Burned Grease and Food Gunk from Sponges with a Salt Water Soak</a></h6></div></div><div class="row"><div class="large-12 columns"><div class="leftrail-separator"></div></div></div></li> <li class="row leftrail-item leftrail-item--popular js_leftrail-item recommended"><div class="row"><div class="large-12 columns leftrail-image-wrap"><a data-ga="[Popular stories click, position 3, js_pageType]" href="http://lifehacker.com/prioritize-your-habit-changes-based-on-what-problem-wil-1693431544"><img alt="Prioritize Your Habit Changes Based on What Problem Will Be Solved" src="http://i.kinja-img.com/gawker-media/image/upload/s--xcx_Hkf8--/c_fill,fl_progressive,g_center,h_180,q_80,w_320/qqwf5kig4pevcjrprzie.jpg" class="leftrail-image" /></a></div></div><div class="row"><div class="large-12 columns"><h6 class="headline"><a data-ga="[Popular stories click, position 3, js_pageType]" href="http://lifehacker.com/prioritize-your-habit-changes-based-on-what-problem-wil-1693431544">Prioritize Your Habit Changes Based on What Problem Will Be Solved</a></h6></div></div><div class="row"><div class="large-12 columns"><div class="leftrail-separator"></div></div></div></li></ol></div></section></div></div></div><script>markUserTime('Content - Before main column');</script><div class="large-8 columns main-column"> <div id="fb-root"></div><div class="row content-header hide-for-medium-down"><div class="js_site-header site-header column"><a title="Lifehacker" class="site-logo mln" href="/"><img alt="" src="http://i.kinja-img.com/gawker-media/image/upload/s--TBjOdHcL--/c_fit,fl_progressive,q_80,w_600/bwiqhbo45ulldozwchb0.png" class="logo" /></a></div><div class="header-action-wrapper"><div data-blogid="17" class="add js_follow-controls js_follow-blog-controls js_follow-buttons follow-controls right header-action"><a title="Follow Lifehacker" class="js_followblogforuser follow-controls__link proxima" href="#"><span class="icon icon-plus"></span> <span class="hide-for-medium-down">Follow</span></a><a title="Unfollow Lifehacker" class="js_unfollowblogforuser proxima follow-controls__link hide" href="#"><span class="icon icon-checkmark"></span> <span class="hide-for-medium-down">Followed</span></a></div></div></div> <section class="branch-wrapper "> <div data-reveal="" class="reveal-modal js_foreplay foreplay proxima noskimlinks noskimwords" id="foreplay"><div id="jwPlayerVideo"></div><a class="close js_foreplay-close" href="#">You can skip this ad in 5 seconds.</a></div> <div class="js_ie-message hide"></div><div class="editorplaceholder" id="editorplaceholder"></div><div class="post-wrapper js_post-wrapper "> <article data-model="%7B%22id%22%3A1690268064%2C%22permalink%22%3A%22http%3A%2F%2Flifehacker.com%2Fhow-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064%22%2C%22permalinkPath%22%3A%22%2Fhow-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064%22%2C%22isBlip%22%3Afalse%2C%22isRecommended%22%3Atrue%2C%22publishTimeMillis%22%3A1425913200851%2C%22publishTime%22%3A%7B%22timestamp%22%3A1425913200851%2C%22timezone%22%3A%22America%2FLos_Angeles%22%2C%22MdyHm%22%3A%2203%2F09%2F2015%2008%3A00%22%2C%22MdyatHm%22%3A%2203%2F09%2F2015%20at%2008%3A00%22%2C%22rfc822%22%3A%22Mon%2C%209%20Mar%202015%2015%3A00%3A00%20GMT%22%2C%22yMdHmsZ%22%3A%222015-03-09T08%3A00%3A00-07%3A00%22%2C%22hmma%22%3A%228%3A00am%22%2C%22day%22%3A%22Monday%22%2C%22Mddyyhmma%22%3A%223%2F09%2F15%208%3A00am%22%2C%22fullDate%22%3A%22March%209%2C%202015%22%2C%22relative%22%3A%7B%22amount%22%3Anull%2C%22type%22%3A%22greaterthanweek%22%7D%7D%2C%22status%22%3A%22PUBLISHED%22%2C%22author%22%3A%7B%22id%22%3A%22602884910%22%2C%22screenName%22%3A%22PatrickAllan%22%2C%22displayName%22%3A%22Patrick%20Allan%22%2C%22defaultBlogId%22%3A602884922%2C%22defaultBlog%22%3Anull%2C%22avatar%22%3A%7B%22id%22%3A%22gzonxhes6bl4p9k4gzpl%22%2C%22format%22%3A%22jpg%22%7D%7D%2C%22authorId%22%3A%22602884910%22%2C%22byline%22%3A%22%22%2C%22isStarter%22%3Atrue%2C%22blogId%22%3A%5B602884922%2C17%5D%2C%22defaultBlogId%22%3A17%2C%22authorBlogId%22%3A602884922%2C%22authorBlogName%22%3A%22patrickallan%22%2C%22allowReplies%22%3Atrue%2C%22isBillboardPost%22%3Afalse%2C%22liveBlog%22%3Afalse%2C%22headline%22%3A%22How%20to%20Program%20Your%20Mind%20to%20Stop%20Buying%20Crap%20You%20Don%E2%80%99t%20Need%22%2C%22adZone%22%3A%22partners%22%2C%22tagUrlNames%22%3A%22money%2Cshopping%2Csaving-money%2Cpersonal-finances%2Cmind-hacks%2Chabits%2Cbudget%2Cpsychology%2Ceditors-picks%22%2C%22replyCount%22%3A146%2C%22sharedPostId%22%3Anull%2C%22images%22%3A%5B%7B%22src%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fs--mlR3Ku0_--%2Fxrhkwleyurcizy4akiae.jpg%22%2C%22uri%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fxrhkwleyurcizy4akiae.jpg%22%2C%22id%22%3A%22xrhkwleyurcizy4akiae%22%2C%22width%22%3A636%2C%22height%22%3A358%2C%22format%22%3A%22jpg%22%2C%22recommended%22%3Anull%7D%2C%7B%22src%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fs--4Ajak63w--%2Fatb9qm07fvvg7hqkumkw.jpg%22%2C%22uri%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fatb9qm07fvvg7hqkumkw.jpg%22%2C%22id%22%3A%22atb9qm07fvvg7hqkumkw%22%2C%22width%22%3A636%2C%22height%22%3A358%2C%22format%22%3A%22jpg%22%2C%22recommended%22%3Anull%7D%2C%7B%22src%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fs--QeUTCiuW--%2Fo4dpyrcbiqyfrc3bxx6p.jpg%22%2C%22uri%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fo4dpyrcbiqyfrc3bxx6p.jpg%22%2C%22id%22%3A%22o4dpyrcbiqyfrc3bxx6p%22%2C%22width%22%3A636%2C%22height%22%3A358%2C%22format%22%3A%22jpg%22%2C%22recommended%22%3Anull%7D%2C%7B%22src%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fs--hqqO9fze--%2Fn1s6c2m6kc07iqdyllj6.jpg%22%2C%22uri%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fn1s6c2m6kc07iqdyllj6.jpg%22%2C%22id%22%3A%22n1s6c2m6kc07iqdyllj6%22%2C%22width%22%3A636%2C%22height%22%3A358%2C%22format%22%3A%22jpg%22%2C%22recommended%22%3Atrue%7D%2C%7B%22src%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fs--6NwBgQLy--%2Fafy7n45jfvsjdmmhonct.jpg%22%2C%22uri%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fafy7n45jfvsjdmmhonct.jpg%22%2C%22id%22%3A%22afy7n45jfvsjdmmhonct%22%2C%22width%22%3A636%2C%22height%22%3A358%2C%22format%22%3A%22jpg%22%2C%22recommended%22%3Anull%7D%2C%7B%22src%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fs--mtob1sjR--%2Fy2ldv5eufb3jcrtfouye.jpg%22%2C%22uri%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fy2ldv5eufb3jcrtfouye.jpg%22%2C%22id%22%3A%22y2ldv5eufb3jcrtfouye%22%2C%22width%22%3A636%2C%22height%22%3A358%2C%22format%22%3A%22jpg%22%2C%22recommended%22%3Anull%7D%2C%7B%22src%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fs--x9hLbIKJ--%2Fimfc9ybqfw0jmztbhfrh.jpg%22%2C%22uri%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fimfc9ybqfw0jmztbhfrh.jpg%22%2C%22id%22%3A%22imfc9ybqfw0jmztbhfrh%22%2C%22width%22%3A636%2C%22height%22%3A358%2C%22format%22%3A%22jpg%22%2C%22recommended%22%3Anull%7D%2C%7B%22src%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fs--Tacb0tyW--%2Fqodag11euf2npkawkn9v.jpg%22%2C%22uri%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fqodag11euf2npkawkn9v.jpg%22%2C%22id%22%3A%22qodag11euf2npkawkn9v%22%2C%22width%22%3A636%2C%22height%22%3A358%2C%22format%22%3A%22jpg%22%2C%22recommended%22%3Anull%7D%2C%7B%22src%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fs--ciqk42G0--%2Fs3pq8vjrvyjgne4lfsod.jpg%22%2C%22uri%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fs3pq8vjrvyjgne4lfsod.jpg%22%2C%22id%22%3A%22s3pq8vjrvyjgne4lfsod%22%2C%22width%22%3A636%2C%22height%22%3A358%2C%22format%22%3A%22jpg%22%2C%22recommended%22%3Anull%7D%5D%2C%22videos%22%3A%5B%5D%2C%22parentId%22%3Anull%2C%22parentAuthorId%22%3Anull%2C%22starterId%22%3A1690268064%7D" id="post_1690268064" data-id="1690268064" class="post hentry js_post_item status-published post-item-permalink commented js_amazon_module marquee-post"> <div class="row content-wrapper"><div class="column"><div class="row js_kinja-share-wrapper hide"><div class="column post-tools-above"><a class="js_kinja-share replywithshare inline-block" href="#"><span class="icon icon-reload"></span></a></div></div><header class=""><h1 class="headline hover-highlight entry-title"><a onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - post header', 'standard');" data-id="" href="http://lifehacker.com/how-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064">How to Program Your Mind to Stop Buying Crap You Don’t Need</a></h1></header> <div class="meta-container"> <div data-blogid="602884922" data-authorid="602884910" class="meta-avatar js_author"> <span class="meta-tools"><div class="view-count-container"> <span title="180,860 New Visitors" class="view-count">321,046<span class="icon icon-fire icon-append"></span></span></div><a title="Recommend" class="js_like button-recommend-post hover-icon" href="#" data-likecount="36"><span class="js_like_count">36</span><span class="icon icon-star icon-append js_like_icon"></span></a><div class="js_like-list-container"></div></span><div data-dropdownhover-container="" class="floated-container img-30"> <div data-dropdownhover-content="" class="f-dropdown author-hovercard content small whitelisted-links js_avatar-popover" id="1690268064-hovercard"><span class="floated-container img-60 avatar-container js_avatar-container"><span class="avatar"><span class="icon icon-checkmark icon-followed"></span><img alt="PatrickAllan" data-src="http://i.kinja-img.com/gawker-media/image/upload/s--LikxhIZs--/c_fill,fl_progressive,g_center,h_120,q_80,w_120/gzonxhes6bl4p9k4gzpl.jpg" /></span><div data-blogid="602884922" data-authorid="602884910" class="js_follow-controls js_author-follow-controls"><h4>Patrick Allan</h4><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Hover card - profile button click');" target="_blank" class="button tiny secondary mrs" href="http://patrickallan.kinja.com">Profile</a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Hover card - follow button click');" class="button tiny secondary js_followforuser mrs" href="#">Follow</a><a class="button tiny secondary js_unfollowforuser mrs hide" href="#">Unfollow</a></div></span></div> <div data-dropdownhover="1690268064-hovercard" class="avatar avatar-container js_avatar-container"><span class="icon icon-checkmark icon-followed"></span><a href="http://patrickallan.kinja.com"><span class="img-border"><img src="http://i.kinja-img.com/gawker-media/image/upload/s--e6LwIJS6--/c_fill,fl_progressive,g_center,h_80,q_80,w_80/gzonxhes6bl4p9k4gzpl.jpg" /></span></a></div><div class="txt"> <span class="display-name author vcard"><a onclick="window.ga('send', 'event', 'byline', 'click', 'permalink');" class="fn url" data-dropdownhover-anchor="1690268064-hovercard" target="_self" href="http://patrickallan.kinja.com">Patrick Allan</a></span><div class="second-line post-meta">Filed to: <a data-options="is_hover:true" data-dropdown="taglist" data-urlname="money" href="/tag/money" class="first-tag ">money</a> <div data-dropdown-content="" class="tiny f-dropdown text-upper" id="taglist"><div><ul> <li class=""><a data-urlname="shopping" href="/tag/shopping">shopping</a></li> <li class=""><a data-urlname="saving-money" href="/tag/saving-money">saving money</a></li> <li class=""><a data-urlname="personal-finances" href="/tag/personal-finances">personal finances</a></li> <li class=""><a data-urlname="mind-hacks" href="/tag/mind-hacks">mind hacks</a></li> <li class=""><a data-urlname="habits" href="/tag/habits">habits</a></li> <li class=""><a data-urlname="budget" href="/tag/budget">budget</a></li> <li class=""><a data-urlname="psychology" href="/tag/psychology">psychology</a></li> <li class=""><a data-urlname="editors-picks" href="/tag/editors-picks">editor's picks</a></li></ul></div></div> <span data-publishtime="1425913200851" class="publish-time js_publish_time"><a target="_self" href="http://lifehacker.com/how-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064" class="hover-switch"> <span class="show-on-hover published updated">3/09/15 8:00am</span><span class="hide-on-hover"> 3/09/15 8:00am</span></a></span></div></div></div></div><div class="post-dropdown-ct js_post-dropdown-ct js_post-dropdown-ct-sticky"><ul data-dropdown-content="" data-sourceblogid="17" data-blogid="602884922" data-authorid="602884910" data-starterid="1690268064" data-postid="1690268064" class="f-dropdown proxima js_post-dropdown js_follow-controls js_author-follow-controls whitelisted-links" id="dropdown-1690268064"><li class="js_edit-post hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-pencil-alt icon-prepend"></i>Edit</a></li><li class="js_delete-post hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-x-circle icon-prepend"></i>Delete</a></li> <li onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - invite click');" class="js_invite-to-post hover-icon hide"><a rel="nofollow" href="#"><i class="icon icon-twitter icon-prepend"></i>Invite</a></li><li class="js_invite-to-post-manually hover-icon hide"><a rel="nofollow" href="#"><i class="icon icon-mail icon-prepend"></i>Invite manually</a></li><li class="js_promote hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-star-circle icon-prepend"></i>Promote</a></li><li class="js_dismiss hover-icon hide readonly-hide"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Dismiss click');" rel="nofollow" class="dismiss" href="#"><i class="icon icon-prepend notranslate">X</i>Dismiss</a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Undismiss click');" rel="nofollow" class="undismiss hide" href="#"><i class="icon icon-prepend notranslate">X</i>Undismiss</a></li><li data-targetblogname="Lifehacker" data-targetblogid="602884922" data-blogid="17" class="js_block hover-icon hide disabled readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-not-circle icon-prepend"></i><span>Block for Lifehacker</span></a></li><li class="js_hide-post hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-not-circle"></i>Hide</a></li><li class="js_kinja-share-block readonly-hide"><a rel="nofollow" href="#" class="js_kinja-share hover-icon"><i class="icon icon-share icon-prepend"></i>Share to Kinja</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Share to Facebook click');" href="http://facebook.com/sharer.php?u=http%3A%2F%2Flifehacker.com%2Fhow-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064" rel="nofollow" class="js_share-post-item facebook hover-icon"><i class="icon icon-facebook icon-prepend"></i>Share to Facebook</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Share to Pinterest', 'click', 'Drop down');" href="http://www.pinterest.com/pin/create/api_other/?url=http%3A%2F%2Flifehacker.com%2Fhow-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064&amp;media=http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fs--hqqO9fze--%2Fn1s6c2m6kc07iqdyllj6.jpg&amp;description=We%20all%20buy%20things%20from%20time%20to%20time%20that%20we%20don%27t%20really%20need.%20It%27s%20okay%20to%20appeal%20to%20your%20wants%20every%20once%20in%20a%20while%2C%20as%20long%20as%20you%27re%20in%20control.%20If%20you%20struggle%20with%20clutter%2C%20impulse%20buys%2C%20and%20buyer%27s%20remorse%2C%20here%27s%20how%20to%20put%20your%20mind%20in%20the%20right%20place%20before%20you%20even%20set%20foot%20in%20a%20store." rel="nofollow" class="js_share-post-item pinterest hover-icon"><i class="icon icon-pinterest icon-prepend"></i>Share to Pinterest</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Share to Twitter click');" href="http://twitter.com/share?url=http%3A%2F%2Flifehacker.com%2Fhow-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064&amp;text=How%20to%20Program%20Your%20Mind%20to%20Stop%20Buying%20Crap%20You%20Don%E2%80%99t%20Need" rel="nofollow" class="js_share-post-item twitter hover-icon"><i class="icon icon-twitter icon-prepend"></i>Share to Twitter</a></li><li class="js_go-to-permalink"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Go to permalink click');" href="http://lifehacker.com/how-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064" class="hover-icon"><i class="icon icon-link-alt icon-prepend"></i>Go to permalink</a></li><li class="repostblock js_repostblock hide"></li></ul><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down click');" data-dropdown="dropdown-1690268064" class="button dropdown secondary transparent toggle-30 js_post-menu-toggler post-dropdown-trigger" target="_self" href="#"></a></div></div><div class="post-content entry-content new-annotation"><p data-textannotation-id="58a492029dca5e6a6e481d21b6b2933a" class="has-media media-640"><span class="img-border"><img width="636" height="358" data-format="jpg" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--hqqO9fze--/n1s6c2m6kc07iqdyllj6.jpg" data-chomp-id="n1s6c2m6kc07iqdyllj6" alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" src="http://i.kinja-img.com/gawker-media/image/upload/s--hqqO9fze--/n1s6c2m6kc07iqdyllj6.jpg" class="js_annotatable-image cursor-crosshair" /></span></p><div id="js_adsense-container"></div><script>
+
+window.google_analytics_uacct = 'UA-142218-1';
+var google_adnum = 0; /* only insert this line for your first ad unit */
+// conditional adsense core decorated
+function google_ad_request_done(google_ads) {
+ var domain = '';
+ var domainParts = document.referrer.split("/");
+ if (domainParts.length &gt; 2) {
+ domainParts = domainParts[2].split(".");
+ domain = domainParts[domainParts.length - 2];
+ }
+ var companions = document.querySelectorAll('.js_ad300-companion');
+ var blockHeight = 0;
+ if (companions.length &gt; 0) {
+ var companion = companions[0];
+ blockHeight = companion.offsetHeight;
+ }
+ var onKinja = location.host.substr(-1 * "kinja.com".length) === "kinja.com";
+ var fromSearch = (domain == "google") || (domain == "bing") || (domain == "yahoo") || (domain == "ask");
+ var cookieString = "fromSearch=1";
+ if (fromSearch) {
+ document.cookie = cookieString;
+ }
+ var inSearchSession = document.cookie.indexOf(cookieString) != -1;
+ var shouldShowAds = !onKinja &amp;&amp; (fromSearch || inSearchSession);// &amp;&amp; blockHeight &gt; 400);
+ if (shouldShowAds) {
+ var s = '';
+ var i;
+ if (google_ads.length == 0) {
+ return;
+ }
+ s += '&lt;aside class="referenced-wide google-adsense twelve columns"&gt;';
+ s += '&lt;div class="container proxima"&gt;';
+ s += '&lt;a href="' + google_info.feedback_url + '" class="by-google"&gt;Ads by Google&lt;/a&gt;&lt;div class="google-ads ptm"&gt;' +
+ '&lt;a href="' + google_ads[0].url + '" onmouseout="window.status=\'\'" onmouseover="window.status=\'go to ' + google_ads[0].visible_url + '\';return true" class="google-headline"&gt;' +
+ '&lt;span&gt; &lt;b&gt;' +google_ads[0].line1 + '&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;/a&gt; &lt;span&gt;' +
+ google_ads[0].line2 + ' ' + google_ads[0].line3 + '&lt;br /&gt;&lt;/span&gt;' +
+ '&lt;a href="' + google_ads[0].url + '" onmouseout="window.status=\'\'" onmouseover="window.status=\'go to ' + google_ads[0].visible_url + '\';return true" class="google-link"&gt;&lt;span&gt;' + google_ads[0].visible_url + '&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br/&gt;';
+ if (google_ads.length == 2) {
+ /* the XML parser chokes on a for loop, so we have to do it explicitly */
+ s += '&lt;a href="' + google_ads[1].url + '" onmouseout="window.status=\'\'" onmouseover="window.status=\'go to ' + google_ads[1].visible_url + '\';return true" class="google-headline"&gt;' +
+ '&lt;span&gt; &lt;b&gt;' + google_ads[1].line1 + '&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;/a&gt; &lt;span style=""&gt;' +
+ google_ads[1].line2 + ' ' + google_ads[1].line3 + '&lt;br /&gt;&lt;/span&gt;' +
+ '&lt;a href="' + google_ads[1].url + '" onmouseout="window.status=\'\'" onmouseover="window.status=\'go to ' + google_ads[1].visible_url + '\';return true" class="google-link"&gt;&lt;span&gt;' + google_ads[1].visible_url + '&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;';
+ }
+ s += '&lt;/div&gt;&lt;/div&gt;&lt;/aside&gt;';
+ if (google_ads[0].bidtype == 'CPC') { /* insert this snippet for each ad call */
+ google_adnum = google_adnum + google_ads.length;
+ }
+ document.write(s);
+ }
+}
+google_ad_client = 'ca-pub-0457527031304647';
+google_ad_output = 'js';
+google_max_num_ads = '1';
+google_ad_type = 'text';
+google_feedback = 'on';
+google_skip = google_adnum;
+google_ad_channel = '1102379497';
+</script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="a043044f9b3e31fd85568b17e3b1b5f3" class="first-text"><span>We all buy things from time to time that we don't really need. It's okay to appeal to your wants every once in a while, as long as you're in control. If you struggle with clutter, impulse buys, and buyer's remorse, here's how to put your mind in the right place before you even set foot in a store.</span></p><div class="ad-unit js_ad-unit hide-contents ad-mobile js_ad-mobile">
+ <div data-zone-type="MOBILE" class="ad-container js_ad-container" id="ad-container-45135036"></div>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+<h3 data-textannotation-id="e51cbbc52eb8c3b33571908351076cf7"><strong>Understand How Your Own Brain Works Against You</strong></h3>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="268f7702467d33e3b0972dd09f1cf0a6" class="has-media media-640"><span class="img-border"><img width="636" height="358" data-format="jpg" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--QeUTCiuW--/o4dpyrcbiqyfrc3bxx6p.jpg" data-chomp-id="o4dpyrcbiqyfrc3bxx6p" alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" src="http://i.kinja-img.com/gawker-media/image/upload/s--QeUTCiuW--/o4dpyrcbiqyfrc3bxx6p.jpg" class="js_annotatable-image cursor-crosshair" /></span></p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="32604538f84919efff270e87b61191a1">It may come as no surprise to learn that stores employ all kinds of tricks to get you to part ways with your cash, and your brain plays right along. Through psychological tricks, product placement, and even color, stores are designed from the ground up to increase spending. We've talked about the biggest things stores do to manipulate your senses, but here are some of the biggest things to look out for:</p>
+
+
+
+
+
+
+
+
+
+
+<ul><li data-textannotation-id="cd748c8b681c781cdd728c5e17b5e05f"><strong>Color:</strong> Stores use color to make products attractive and eye-catching, but they also use color on price labels. Red stands out and can encourage taking action, that's why it's commonly associated with sale signage and advertising. When you see red, remember what they're trying to do to your brain with that color. You don't to buy something just because it's on sale.</li><li data-textannotation-id="29c11c0aec305293be282aa91f8fbc3d"><strong>Navigation Roadblocks:</strong> Stores force you to walk around stuff you don't need to find the stuff you are really after. Have a list of what you need before you go in, go straight to it, and imagine it's the only item in the store.</li><li data-textannotation-id="252dc7e4a924d12c2d913861ab118bf5"><strong>The Touch Factor:</strong> Stores place items they want to sell in easy to reach locations and encourage you to touch them. Don't do it! As soon as you pick something up, you're more likely to buy it because your mind suddenly takes ownership of the object. Don't pick anything up and don't play with display items.</li><li data-textannotation-id="05dde4d44056798acff5890759134a64"><strong>Scents and Sounds:</strong> You'll probably hear classic, upbeat tunes when you walk into a store. The upbeat music makes you happy and excited, while playing familiar songs makes you feel comfortable. They also use pleasant smells to put your mind at ease. A happy, comfortable mind at ease is a dangerous combination for your brain when shopping. There's not much you can do to avoid this unless you shop online, but it's good to be aware of it.</li></ul>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="1eb4a4df2a670927c5d9e9641ebf9d40">And sure, we can blame the stores all we want, but you won't change how they operate—you can only be aware of how your <a href="http://lifehacker.com/how-stores-manipulate-your-senses-so-you-spend-more-mon-475987594" x-inset="1">brain is falling for their tricks</a>. Even without the stores, <a href="http://lifehacker.com/5968125/how-your-brain-corrupts-your-shopping-choices" x-inset="1">your brain is working against you on its own</a>, thanks to some simple cognitive biases.</p>
+
+
+
+
+
+
+
+
+
+
+
+
+<aside class="referenced-wide referenced-fullwidth js_inset tmpl_referencedGroupFullWidth clearfix core-decorated-inset">
+ <div class="container">
+
+ <div class="referenced-nav hide-for-small">
+ <div class="nav-arrow prev js_previous_inset hide">
+ <a onclick="return false;" class="icon inline icon-chevron-left" href="#"></a>
+ </div>
+ <div class="nav-arrow next js_next_inset">
+ <a onclick="return false ;" class="icon inline icon-chevron-right" href="#" style="height: 69px; line-height: 69px;"></a>
+ </div>
+ </div>
+
+
+
+ <div data-inset-id="1555962975" class="referenced-item ">
+
+
+ <div class="columns small-4 medium-3 referenced-item-image referenced-item-processed">
+ <a target="_blank" onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset photo');" href="http://lifehacker.com/how-stores-manipulate-your-senses-so-you-spend-more-mon-475987594">
+ <span class="img-border ">
+
+ <img src="http://i.kinja-img.com/gawker-media/image/upload/s--9a3fSAiv--/c_fill,fl_progressive,g_center,h_77,q_80,w_137/18l0k4fog1iixjpg.jpg" />
+
+ </span>
+ </a>
+ </div>
+
+
+
+ <h6 onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset headline');" class="headline">
+ <span class="full-headline">
+ <a target="_blank" href="http://lifehacker.com/how-stores-manipulate-your-senses-so-you-spend-more-mon-475987594">
+ How Stores Manipulate Your Senses So You Spend More Money
+ </a>
+ </span>
+ <span class="medium-headline">
+ <a target="_blank" href="http://lifehacker.com/how-stores-manipulate-your-senses-so-you-spend-more-mon-475987594">
+ How Stores Manipulate Your Senses So You Spend More Money
+ </a>
+ </span>
+ <span class="small-headline">
+ <a target="_blank" href="http://lifehacker.com/how-stores-manipulate-your-senses-so-you-spend-more-mon-475987594">
+ How Stores Manipulate Your Senses So You Spend Mor
+ </a>
+ </span>
+ </h6>
+
+
+
+ <p class="text small-offset-3 ">
+
+ <span class="referenced-item-excerpt hide-for-small">When you walk into almost any store, you're immediately overloaded with sights, sounds,…</span>
+
+ <a target="_blank" onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset read more link');" class="js_readmore readmore-referenced" href="http://lifehacker.com/how-stores-manipulate-your-senses-so-you-spend-more-mon-475987594">
+ Read more <span class="js_external-text hide">Read more</span>
+ </a>
+ </p>
+
+
+ </div>
+
+
+
+ <div data-inset-id="1555984303" class="referenced-item hide ">
+
+
+ <div class="columns small-4 medium-3 referenced-item-image referenced-item-processed">
+ <a target="_blank" onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset photo');" href="http://lifehacker.com/5968125/how-your-brain-corrupts-your-shopping-choices">
+ <span class="img-border ">
+
+ <img src="http://i.kinja-img.com/gawker-media/image/upload/s--ZasswoU_--/c_fill,fl_progressive,g_center,h_77,q_80,w_137/1888vgzhqw1whjpg.jpg" />
+
+ </span>
+ </a>
+ </div>
+
+
+
+ <h6 onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset headline');" class="headline">
+ <span class="full-headline">
+ <a target="_blank" href="http://lifehacker.com/5968125/how-your-brain-corrupts-your-shopping-choices">
+ How Your Brain Corrupts Your Shopping Choices
+ </a>
+ </span>
+ <span class="medium-headline">
+ <a target="_blank" href="http://lifehacker.com/5968125/how-your-brain-corrupts-your-shopping-choices">
+ How Your Brain Corrupts Your Shopping Choices
+ </a>
+ </span>
+ <span class="small-headline">
+ <a target="_blank" href="http://lifehacker.com/5968125/how-your-brain-corrupts-your-shopping-choices">
+ How Your Brain Corrupts Your Shopping Choices
+ </a>
+ </span>
+ </h6>
+
+
+
+ <p class="text small-offset-3 ">
+
+ <span class="referenced-item-excerpt hide-for-small">Ever come home from a day of shopping and wondered why on earth you purchased certain items? As it…</span>
+
+ <a target="_blank" onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset read more link');" class="js_readmore readmore-referenced" href="http://lifehacker.com/5968125/how-your-brain-corrupts-your-shopping-choices">
+ Read more <span class="js_external-text hide">Read more</span>
+ </a>
+ </p>
+
+
+ </div>
+
+
+ </div>
+</aside>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="89992f1ca493b248eea6ed1772326c46">For example, confirmation bias makes you only believe the information that conforms to your prior beliefs, while you discount everything else. Advertisers appeal to this bias directly by convincing you one item is better than another with imagery and other tricks, regardless of what hard facts might say. Keep your mind open, do your own research, and accept when you're wrong about a product. The Decoy effect is also a commonly used tactic. You think one product is a deal because it's next to a similar product that's priced way higher. Even if it's a product you need, it's probably not as good of a deal as it looks right then and there. Again, always research beforehand and be on the lookout for this common trick to avoid impulse buys.</p>
+
+
+
+
+
+
+
+
+
+
+<h3 data-textannotation-id="eedde8c384145f2593efc2a15a4d79de"><strong>Make a List of </strong><em><strong>Everything</strong></em><strong> You Own and Do Some Decluttering</strong></h3>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="8044cf9aab698fd28931acd90ba96f7a" class="has-media media-640"><span class="img-border"><img width="636" height="358" data-format="jpg" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--mlR3Ku0_--/xrhkwleyurcizy4akiae.jpg" data-chomp-id="xrhkwleyurcizy4akiae" alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" src="http://i.kinja-img.com/gawker-media/image/upload/s--mlR3Ku0_--/xrhkwleyurcizy4akiae.jpg" class="js_annotatable-image cursor-crosshair" /></span></p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="a2a886d841e5aed848cdf7088edde4ea">Now that you know what you're up against, it's time to start changing the way you think. Before you can stop buying crap you don't need, you need to identify what that crap is. The first step is to make a list of <a href="http://lifehacker.com/how-to-defeat-the-urge-to-binge-shop-1468216943" x-inset="1">every single thing you own</a>. <strong>Every. Single. Thing</strong>. This might sound extreme, but you need to gather your data so you can start reprogramming your mind.</p>
+
+
+
+
+
+
+
+
+
+
+
+
+<aside class="referenced-wide referenced-fullwidth js_inset tmpl_referencedGroupFullWidth clearfix core-decorated-inset">
+ <div class="container">
+
+
+
+ <div data-inset-id="1555988775" class="referenced-item ">
+
+
+ <div class="columns small-4 medium-3 referenced-item-image referenced-item-processed">
+ <a target="_blank" onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset photo');" href="http://lifehacker.com/how-to-defeat-the-urge-to-binge-shop-1468216943">
+ <span class="img-border ">
+
+ <img src="http://i.kinja-img.com/gawker-media/image/upload/s--fN3JVNsL--/c_fill,fl_progressive,g_center,h_77,q_80,w_137/196y8tsoeyd5njpg.jpg" />
+
+ </span>
+ </a>
+ </div>
+
+
+
+ <h6 onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset headline');" class="headline">
+ <span class="full-headline">
+ <a target="_blank" href="http://lifehacker.com/how-to-defeat-the-urge-to-binge-shop-1468216943">
+ How to Defeat the Urge to Binge Shop
+ </a>
+ </span>
+ <span class="medium-headline">
+ <a target="_blank" href="http://lifehacker.com/how-to-defeat-the-urge-to-binge-shop-1468216943">
+ How to Defeat the Urge to Binge Shop
+ </a>
+ </span>
+ <span class="small-headline">
+ <a target="_blank" href="http://lifehacker.com/how-to-defeat-the-urge-to-binge-shop-1468216943">
+ How to Defeat the Urge to Binge Shop
+ </a>
+ </span>
+ </h6>
+
+
+
+ <p class="text small-offset-3 ">
+
+ <span class="referenced-item-excerpt hide-for-small">It seems contradictory, but I love being frugal and I also love spending money. Over the last few…</span>
+
+ <a target="_blank" onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset read more link');" class="js_readmore readmore-referenced" href="http://lifehacker.com/how-to-defeat-the-urge-to-binge-shop-1468216943">
+ Read more <span class="js_external-text hide">Read more</span>
+ </a>
+ </p>
+
+
+ </div>
+
+
+ </div>
+</aside>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="bbe57b7aa20b48550e5f66b7c530822c">The purpose of this exercise is twofold: you see what you already have and don't need to ever buy again, and you get to see what you shouldn't have bought in the first place. As you list everything out, separate items into categories. It's extremely important that you are as honest with yourself as possible while you do this. It's also important you actually write this all down or type it all out. Here is the first set of categories to separate everything into:</p>
+
+
+
+
+
+
+
+
+
+
+<ul><li data-textannotation-id="8d7dc912152eddd0e3d56e28ad79e6f2"><strong>Need:</strong> You absolutely need this item to get by on a day to day basis.</li><li data-textannotation-id="6f60a79627f0746d1f611999251e9f1b"><strong>Sometimes Need:</strong> You don't need this item every day, but you use it on a somewhat regular basis.</li><li data-textannotation-id="54e10b108f95548966b657bd90fdbed4"><strong>Want:</strong> You bought this item because you wanted it, not because you needed it.</li><li data-textannotation-id="26c461a85fbc78651be442e205cac58b"><strong>Crap:</strong> You don't have a good reason why you have it and you already know it needs to go (there's probably a few of these items, at least).</li></ul>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="5743cf753f68fd8ee3443cc0f8e815dd">Leave the things you listed as "needs" alone, put your stuff listed as "crap" in a pile or box to go bye-bye, and move your attention back to your "sometimes need" and "want" lists. You need to go back over both of those lists because you probably fudged some of the listings, either subconsciously or intentionally. Now ask yourself these three questions as you go through both the "sometimes need" and "want" lists:</p>
+
+
+
+
+
+
+
+
+
+
+<ul><li data-textannotation-id="2048d6c0436bd34811442d6df32989a4">When was the last time I used this?</li><li data-textannotation-id="3f4b3686d822171b35e27bf1afde530b">When will I use this again?</li><li data-textannotation-id="63728605cc4fa66f5b225f674d12bbff">Does this item <a href="http://lifehacker.com/declutter-by-asking-one-question-does-this-spark-joy-1651256422">bring you joy</a>?</li></ul>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="816cd504161fecc6f3e173779b33d5db">Remember to be honest and adjust your lists accordingly. There's nothing wrong with keeping things you wanted. Material items can <a href="http://lifehacker.com/how-to-buy-happiness-the-purchases-most-likely-to-brin-1681780686">bring happiness to many people</a>, but make sure the items on your "want" list actively provide you joy and are being used. If an item doesn't get much use or doesn't make you happy, add it to the "crap" list.</p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="675103d9c0da55e95f93c53bb019f864">Once you have everything organized, it's time to do some serious decluttering. This listing exercise should get you started, but there are <a href="http://lifehacker.com/5957609/how-to-kick-your-clutter-habit-and-live-in-a-clean-house-once-and-for-all">a lot of other great ideas</a> when it comes to ditching the junk you don't need. Regardless, everything on your "crap" list needs to go. You can donate it, sell it at a yard sale, give it away to people know, whatever you like. Before you get rid of everything, though, take a picture of all your stuff together. Print out or save the picture somewhere. Some of it was probably gifts, but in general, this is all the crap you bought that you don't need. Take a good look and remember it.</p>
+
+
+
+
+
+
+
+
+
+
+<h3 data-textannotation-id="f15ab0a628b159459f095f04fef851ba"><strong>See How Much Money and Time You Spent on the Stuff You Threw Out</strong></h3>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="bc2f55587bf4ab07a1852a8d26217233" class="has-media media-640"><span class="img-border"><img width="636" height="358" data-format="jpg" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--Tacb0tyW--/qodag11euf2npkawkn9v.jpg" data-chomp-id="qodag11euf2npkawkn9v" alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" src="http://i.kinja-img.com/gawker-media/image/upload/s--Tacb0tyW--/qodag11euf2npkawkn9v.jpg" class="js_annotatable-image cursor-crosshair" /></span></p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="95ab4fe30c3ade42a8011966ea54aa0b">Now take a look at your "crap" list again and start calculating how much you spent on all of it. If it was a gift, mark it as $0. Otherwise, figure out the price of the item at the time you bought it. If you got a deal or bought it on sale it's okay to factor that in, but try to be as accurate as possible. Once you have the price for each item, add it all together. Depending on your spending habits this could possibly be in the hundreds to thousands of dollars. Remember the picture you took of all this stuff? Attach the total cost to the picture so you can see both at the same time.</p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="f654efec679064b15826d8ee20bc94e4">With the money cost figured out, you should take a look at the other costs too. Time is a resource just like any other, and it's a finite one. What kind of time did you pour into these things? Consider the time you spent acquiring and using these items, then write it all down. These can be rough estimations, but go ahead and add it all up when you think you've got it. Now attach the total time to same picture as before and think of the other ways you could have spent all that time. This isn't to make you feel bad about yourself, just to deliver information to your brain in an easy-to-understand form. When you look at it all like this, it can open your eyes a little more, and help you think about purchases in the future. You'll look at an item and ask yourself, "Will this just end up in the picture?"</p>
+
+
+
+
+
+
+
+
+
+
+<h3 data-textannotation-id="6342bf7f15d9eddd21489c23e51ca434"><strong>List Every Non-Material Thing In Your Life that Makes You Happy</strong></h3>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="bafeac1c3808e0d2900190979f058b2c" class="has-media media-640"><span class="img-border"><img width="636" height="358" data-format="jpg" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--x9hLbIKJ--/imfc9ybqfw0jmztbhfrh.jpg" data-chomp-id="imfc9ybqfw0jmztbhfrh" alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" src="http://i.kinja-img.com/gawker-media/image/upload/s--x9hLbIKJ--/imfc9ybqfw0jmztbhfrh.jpg" class="js_annotatable-image cursor-crosshair" /></span></p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="4bd8fbaabb33ff1cb5dc93c16e1f83cc">Now it's time to make a different list. While material items may bring plenty of joy, the things in your life that make you happiest probably can't be bought. Get a separate piece of paper or create a new document and list out everything in your life that makes you happy. If you can't buy it, it's eligible for the list. It doesn't matter if it only makes you crack a smile or makes you jump for joy, list it out. </p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="104a646a62ad7a0cfb4e3ff086185fdc"><span>These are probably the things that actually make you want to get out of bed in the morning and keep on keepin' on. Once you have it all down, put it in your purse or wallet. The next time you feel the urge to buy something, whip this list out first and remind yourself why you probably don't need it.</span></p>
+
+
+
+
+
+
+
+
+
+
+<h3 data-textannotation-id="532cf992ff45d52de501c1a8f80fc152"><strong>Spend Some Time Away from Material Things to Gain Perspective</strong></h3>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="64f5c7155ad89bd2835399d33c1ae28a" class="has-media media-640"><span class="img-border"><img width="636" height="358" data-format="jpg" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--6NwBgQLy--/afy7n45jfvsjdmmhonct.jpg" data-chomp-id="afy7n45jfvsjdmmhonct" alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" src="http://i.kinja-img.com/gawker-media/image/upload/s--6NwBgQLy--/afy7n45jfvsjdmmhonct.jpg" class="js_annotatable-image cursor-crosshair" /></span></p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="84554492c487779e921b98fb64222177">If you're having a really hard time with your spending, it can help to get away from material objects completely. When you're constantly surrounded by stuff and have access to buying things at all times, it can be really tough to break the habit. Spend a day in the park enjoying the sights and sounds of the outdoors, go camping with some friends, or hike a trail you haven't been on before. </p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="b44add1c7b690705d672186e3a9604b6">Essentially, you want to show yourself that you don't need your "things" to have a good time. When you realize how much fun you can have without all the trinkets and trivets, you'll start to shut down your desire to buy them. If you can't get really get away right now, just go for a walk without your purse or wallet (but carry your ID). If you can't buy anything, you'll be forced to experience things a different way.</p>
+
+
+
+
+
+
+
+
+
+
+<h3 data-textannotation-id="98c11bebae0bbcdbe8411df0186d6465"><strong>Develop a Personal "Should I Buy This?" Test</strong></h3>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="ff438b878771354bb7f6d065ff50dbb2" class="has-media media-640"><span class="img-border"><img width="636" height="358" data-format="jpg" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--ciqk42G0--/s3pq8vjrvyjgne4lfsod.jpg" data-chomp-id="s3pq8vjrvyjgne4lfsod" alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" src="http://i.kinja-img.com/gawker-media/image/upload/s--ciqk42G0--/s3pq8vjrvyjgne4lfsod.jpg" class="js_annotatable-image cursor-crosshair" /></span></p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="4af04ae83f18d9c37da21527bcd4a290">If you don't have a personal "should I buy this?" test, now's the perfect time to make one. When you find an item you think you need or want, it has to pass all of the questions you have on your test before you can buy it. Here's where you can use all of the data you've gathered so far and put it to really good use. The test should be personalized to your own buying habits, but here are some example questions:</p>
+
+
+
+
+
+
+
+
+
+
+<ul><li data-textannotation-id="fcfd78b1619bdf0b7330f4b40efb899d">Is this a planned purchase?</li><li data-textannotation-id="c16e7d5feae7cc2c3c6a8dd312ea206f">Will it end up in the "crap" list picture one day?</li><li data-textannotation-id="54d877fdee56080c87508fc9e6402889"><a href="http://lifehacker.com/prevent-clutter-by-asking-yourself-where-items-will-go-1649480461">Where am I going to put it</a>?</li><li data-textannotation-id="59d5245217c84e6b2b2969b3492f2f2d">Have I included this in my budget?</li><li data-textannotation-id="8fe1582808b4d89f5c88c2708744d27d"><em>Why</em> do I want/need it?</li></ul>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="0162d779382cdc7de908fc1488af3940">Custom build your test to hit all of your weaknesses. If you make a lot of impulse buys, include questions that address that. If you experience a lot of buyer's remorse, include a lot of questions that make you think about the use of item after you buy it. If buying the latest and greatest technology is your weakness, Joshua Becker at Becoming Minimalist suggests you ask yourself <a target="_blank" href="http://www.becomingminimalist.com/marriage-hacks/">what problem the piece of tech solves</a>. If you can't think of anything it solves or if you already have something that solves it, you don't need it. Be thorough and build a test that you can run through your mind every time you consider buying something.</p>
+
+
+
+
+
+
+
+
+
+
+<h3 data-textannotation-id="c0ed0882675acc340dcd88e13ca514b3"><strong>Learn to Delay Gratification and Destroy the Urge to Impulse Buy</strong></h3>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="1d43712fc5ce8f156e4661cca5750575" class="has-media media-640"><span class="img-border"><img width="636" height="358" data-format="jpg" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--mtob1sjR--/y2ldv5eufb3jcrtfouye.jpg" data-chomp-id="y2ldv5eufb3jcrtfouye" alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" src="http://i.kinja-img.com/gawker-media/image/upload/s--mtob1sjR--/y2ldv5eufb3jcrtfouye.jpg" class="js_annotatable-image cursor-crosshair" /></span></p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="3d8086719c5da749f877629d498ccab9">When it comes to the unnecessary crap we buy, impulse purchases probably make up a good deal of them. We love to feel gratification instantly and impulse buys appeal to that with a rush of excitement with each new purchase. We like to believe that we have control over our impulses all the time, but we really don't, and that's a major problem for the ol' wallet.</p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="620ca9836425e09ec7fa50bfad204665">The key is teaching your brain that it's okay to <a href="http://lifehacker.com/overcome-the-need-for-instant-gratification-by-delaying-1636938356">wait for gratification</a>. You can do this with a simple time out every time you want something. Look at whatever you're thinking of buying, go through your personal "should I buy this?" test, and then walk away for a little while. Planning your purchases ahead is ideal, so the longer you can hold off, the better. Set yourself a reminder to check on the item <a href="http://lifehacker.com/5859632/buyers-remorse-is-inevitable-how-to-make-purchases-you-really-wont-regret">a week or month down the line</a>. When you come back to it, you may find that you don't even want it, just the gratification that would come with it. If you're shopping online, you can do the same thing. Walk away from your desk or put your phone in your pocket and do something else for a little while.</p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="a85d9eb501c898234ac5df2a56c50a13">You can also avoid online impulse purchases by <a href="http://lifehacker.com/5919833/how-to-avoid-impulse-purchases-in-the-internet-shopping-age" x-inset="1">making it harder to do</a>. Block shopping web sites during time periods you know you're at your weakest, or remove all of your saved credit card or Paypal information. You can also <a href="http://lifehacker.com/5569035/practice-the-halt-method-to-curb-impulse-purchases" x-inset="1">practice the "HALT" method</a> when you're shopping online or in a store. Try not to buy things when you're Hungry, Angry, Lonely, or Tired because you're at your weakest state mentally. Last, but not least, the "<a href="http://lifehacker.com/5320196/use-the-stranger-test-to-reduce-impulse-purchases" x-inset="1">stranger test</a>" can help you weed out bad purchases too.</p>
+
+
+
+
+
+
+
+
+
+
+
+
+<aside class="referenced-wide referenced-fullwidth js_inset tmpl_referencedGroupFullWidth clearfix core-decorated-inset">
+ <div class="container">
+
+ <div class="referenced-nav hide-for-small">
+ <div class="nav-arrow prev js_previous_inset hide">
+ <a onclick="return false;" class="icon inline icon-chevron-left" href="#"></a>
+ </div>
+ <div class="nav-arrow next js_next_inset">
+ <a onclick="return false ;" class="icon inline icon-chevron-right" href="#" style="height: 69px; line-height: 69px;"></a>
+ </div>
+ </div>
+
+
+
+ <div data-inset-id="1555949557" class="referenced-item ">
+
+
+ <div class="columns small-4 medium-3 referenced-item-image referenced-item-processed">
+ <a target="_blank" onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset photo');" href="http://lifehacker.com/5919833/how-to-avoid-impulse-purchases-in-the-internet-shopping-age">
+ <span class="img-border ">
+
+ <img src="http://i.kinja-img.com/gawker-media/image/upload/s--tAWrlvyk--/c_fill,fl_progressive,g_center,h_77,q_80,w_137/17qctz7rnypm1jpg.jpg" />
+
+ </span>
+ </a>
+ </div>
+
+
+
+ <h6 onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset headline');" class="headline">
+ <span class="full-headline">
+ <a target="_blank" href="http://lifehacker.com/5919833/how-to-avoid-impulse-purchases-in-the-internet-shopping-age">
+ How to Avoid Impulse Purchases in the Internet Shopping Age
+ </a>
+ </span>
+ <span class="medium-headline">
+ <a target="_blank" href="http://lifehacker.com/5919833/how-to-avoid-impulse-purchases-in-the-internet-shopping-age">
+ How to Avoid Impulse Purchases in the Internet Shopping Age
+ </a>
+ </span>
+ <span class="small-headline">
+ <a target="_blank" href="http://lifehacker.com/5919833/how-to-avoid-impulse-purchases-in-the-internet-shopping-age">
+ How to Avoid Impulse Purchases in the Internet Sho
+ </a>
+ </span>
+ </h6>
+
+
+
+ <p class="text small-offset-3 ">
+
+ <span class="referenced-item-excerpt hide-for-small">When spending money online is as simple as clicking one single button on Amazon it's difficult …</span>
+
+ <a target="_blank" onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset read more link');" class="js_readmore readmore-referenced" href="http://lifehacker.com/5919833/how-to-avoid-impulse-purchases-in-the-internet-shopping-age">
+ Read more <span class="js_external-text hide">Read more</span>
+ </a>
+ </p>
+
+
+ </div>
+
+
+
+ <div data-inset-id="1558746776" class="referenced-item hide ">
+
+
+ <div class="columns small-4 medium-3 referenced-item-image referenced-item-processed">
+ <a target="_blank" onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset photo');" href="http://lifehacker.com/5569035/practice-the-halt-method-to-curb-impulse-purchases">
+ <span class="img-border ">
+
+ <img src="http://i.kinja-img.com/gawker-media/image/upload/s--NdSICOre--/c_fill,fl_progressive,g_center,h_77,q_80,w_137/18ixwh1tdragspng.png" />
+
+ </span>
+ </a>
+ </div>
+
+
+
+ <h6 onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset headline');" class="headline">
+ <span class="full-headline">
+ <a target="_blank" href="http://lifehacker.com/5569035/practice-the-halt-method-to-curb-impulse-purchases">
+ Practice the HALT Method to Curb Impulse Purchases
+ </a>
+ </span>
+ <span class="medium-headline">
+ <a target="_blank" href="http://lifehacker.com/5569035/practice-the-halt-method-to-curb-impulse-purchases">
+ Practice the HALT Method to Curb Impulse Purchases
+ </a>
+ </span>
+ <span class="small-headline">
+ <a target="_blank" href="http://lifehacker.com/5569035/practice-the-halt-method-to-curb-impulse-purchases">
+ Practice the HALT Method to Curb Impulse Purchases
+ </a>
+ </span>
+ </h6>
+
+
+
+ <p class="text small-offset-3 ">
+
+ <span class="referenced-item-excerpt hide-for-small">Buyer's remorse is a terrible thing, for brains and bank accounts alike. Before walking up to…</span>
+
+ <a target="_blank" onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset read more link');" class="js_readmore readmore-referenced" href="http://lifehacker.com/5569035/practice-the-halt-method-to-curb-impulse-purchases">
+ Read more <span class="js_external-text hide">Read more</span>
+ </a>
+ </p>
+
+
+ </div>
+
+
+
+ <div data-inset-id="1558262333" class="referenced-item hide ">
+
+
+ <div class="columns small-4 medium-3 referenced-item-image referenced-item-processed">
+ <a target="_blank" onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset photo');" href="http://lifehacker.com/5320196/use-the-stranger-test-to-reduce-impulse-purchases">
+ <span class="img-border ">
+
+ <img src="http://i.kinja-img.com/gawker-media/image/upload/s--mPo7bScD--/c_fill,fl_progressive,g_center,h_77,q_80,w_137/18iy6n7z0n7qnjpg.jpg" />
+
+ </span>
+ </a>
+ </div>
+
+
+
+ <h6 onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset headline');" class="headline">
+ <span class="full-headline">
+ <a target="_blank" href="http://lifehacker.com/5320196/use-the-stranger-test-to-reduce-impulse-purchases">
+ Use the Stranger Test to Reduce Impulse Purchases
+ </a>
+ </span>
+ <span class="medium-headline">
+ <a target="_blank" href="http://lifehacker.com/5320196/use-the-stranger-test-to-reduce-impulse-purchases">
+ Use the Stranger Test to Reduce Impulse Purchases
+ </a>
+ </span>
+ <span class="small-headline">
+ <a target="_blank" href="http://lifehacker.com/5320196/use-the-stranger-test-to-reduce-impulse-purchases">
+ Use the Stranger Test to Reduce Impulse Purchases
+ </a>
+ </span>
+ </h6>
+
+
+
+ <p class="text small-offset-3 ">
+
+ <span class="referenced-item-excerpt hide-for-small">When faced with a purchase, many people fall into the trap of only considering that they want it…</span>
+
+ <a target="_blank" onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset read more link');" class="js_readmore readmore-referenced" href="http://lifehacker.com/5320196/use-the-stranger-test-to-reduce-impulse-purchases">
+ Read more <span class="js_external-text hide">Read more</span>
+ </a>
+ </p>
+
+
+ </div>
+
+
+ </div>
+</aside>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="27385752c06848647540ad931892b21e">The last thing you should consider when it comes to impulse buys is "artificial replacement." As Trent Hamm at The Simple Dollar explains, artificial replacement can happen when you start to <a target="_blank" href="http://www.thesimpledollar.com/balancing-spending-and-time-how-time-frugality-can-save-you-lots-of-cash/">reduce the time</a> you get with your main interests:</p>
+
+
+
+
+
+
+
+
+
+
+<blockquote data-textannotation-id="213e2e816ac88f8d177fb0db0f7fef09">
+<p data-textannotation-id="7b98c5809df24dd04bb65285878c0335">Whenever I consistently cut quality time for my main interests out of my life, I start to long for them. As you saw in that "typical" day, I do make room for spending time with my family, but my other two main interests are absent. If that happens too many days in a row, I start to really miss reading. I start to really miss playing thoughtful board games with friends. What happens after that? <strong>I start to substitute.</strong> When I don't have the opportunity to sit down for an hour or even for half an hour and really get lost in a book, I start looking for an alternative way to fill in the tiny slices of time that I do have. I'll spend money.</p></blockquote>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="4b6cc2900ffacd3daef54b13b4caceac">You probably have things in your life that provide plenty of gratification, so don't get caught substituting it with impulse buys. Always make sure you keep yourself happy with plenty of time doing the things you like to do and you won't be subconsciously trying to fill that void with useless crap.</p>
+
+
+
+
+
+
+
+
+
+
+<h3 data-textannotation-id="aed9b435c4ed23e573c453ceeb34ed18"><strong>Turn the Money You Save Into More Money</strong></h3>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="21154394d63f1943d01f2b717aa31115" class="has-media media-640"><span class="img-border"><img width="636" height="358" data-format="jpg" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--4Ajak63w--/atb9qm07fvvg7hqkumkw.jpg" data-chomp-id="atb9qm07fvvg7hqkumkw" alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" src="http://i.kinja-img.com/gawker-media/image/upload/s--4Ajak63w--/atb9qm07fvvg7hqkumkw.jpg" class="js_annotatable-image cursor-crosshair" /></span></p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="6141942e977cc058fd7a0fa06a3f7389">Once you've programmed your mind to stop buying crap you don't need, you'll have some extra cash to play with. Take all that money and start putting it toward your future and things you <em>will</em> need further down the road. You might need <a target="_blank" href="http://twocents.lifehacker.com/how-to-start-saving-for-a-home-down-payment-1541254056">a home</a>, a vehicle, or a way to retire, but none of that can happen until you start planning for it. </p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="90f08afddc08e2c3b45c266f2e6965ec">Start by paying off any debts you already have. Credit cards, student loans, and even car payments can force you to <a href="http://lifehacker.com/how-to-break-the-living-paycheck-to-paycheck-cycle-1445330680">live paycheck to paycheck</a>. Use the <a href="http://lifehacker.com/5940989/pay-off-small-balances-first-for-better-odds-of-eliminating-all-your-debt">snowball method</a> and pay off some small balances to make you feel motivated, then start taking out your debt in full force with the <a href="http://lifehacker.com/how-to-pay-off-your-debt-using-the-stack-method-576070292">stacking method</a>: stop creating new debt, determine which balances have the highest interest rates, and create a payment schedule to pay them off efficiently.</p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="1106cb837deb2b6fc8e28ba98f078c27">With your debts whittled down, you should start an emergency fund. No matter how well you plan things, accidents and health emergencies can still happen. An emergency fund is designed to make those kinds of events more manageable. This type of savings account is strictly for when life throws you a curveball, but you can grow one pretty easily <a target="_blank" href="http://twocents.lifehacker.com/how-to-grow-an-emergency-fund-from-modest-savings-1638409351">with only modest savings</a>.</p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="347c2a36f114a794d559d929da1b15b7">When you've paid off your debt and prepared yourself for troubled times, you can start saving for the big stuff. All that money you're not spending on crap anymore can be saved, invested, and compounded to let you buy comfort and security. If you don't know where to start, talk to a financial planner. Or create a simple, yet effective <a target="_blank" href="http://twocents.lifehacker.com/how-to-build-an-easy-beginner-set-and-forget-investm-1686878594" x-inset="1">"set and forget" investment portfolio</a>. You've worked hard to reprogram your mind, so make sure you reap the benefits for many years to come.</p>
+
+
+
+
+
+
+
+
+
+
+
+
+<aside class="referenced-wide referenced-fullwidth js_inset tmpl_referencedGroupFullWidth clearfix core-decorated-inset">
+ <div class="container">
+
+
+
+ <div data-inset-id="1687090207" class="referenced-item ">
+
+
+ <div class="columns small-4 medium-3 referenced-item-image referenced-item-processed">
+ <a target="_blank" onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset photo');" href="http://twocents.lifehacker.com/how-to-build-an-easy-beginner-set-and-forget-investm-1686878594">
+ <span class="img-border ">
+
+ <img src="http://i.kinja-img.com/gawker-media/image/upload/s--8HWYGx2u--/c_fill,fl_progressive,g_center,h_77,q_80,w_137/hf8qe29n5uww7y0k8l9d.jpg" />
+
+ </span>
+ </a>
+ </div>
+
+
+
+ <h6 onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset headline');" class="headline">
+ <span class="full-headline">
+ <a target="_blank" href="http://twocents.lifehacker.com/how-to-build-an-easy-beginner-set-and-forget-investm-1686878594">
+ How to Build an Easy, Beginner “Set and Forget” Investment Portfolio
+ </a>
+ </span>
+ <span class="medium-headline">
+ <a target="_blank" href="http://twocents.lifehacker.com/how-to-build-an-easy-beginner-set-and-forget-investm-1686878594">
+ How to Build an Easy, Beginner “Set and Forget” Investment Portfolio
+ </a>
+ </span>
+ <span class="small-headline">
+ <a target="_blank" href="http://twocents.lifehacker.com/how-to-build-an-easy-beginner-set-and-forget-investm-1686878594">
+ How to Build an Easy, Beginner “Set and Forget” In
+ </a>
+ </span>
+ </h6>
+
+
+
+ <p class="text small-offset-3 ">
+
+ <span class="referenced-item-excerpt hide-for-small">Many people don't invest because it seems overly complicated. But if you want to build wealth, …</span>
+
+ <a target="_blank" onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset read more link');" class="js_readmore readmore-referenced" href="http://twocents.lifehacker.com/how-to-build-an-easy-beginner-set-and-forget-investm-1686878594">Read more <span class="hostname">twocents.​lifehacker.​com</span></a>
+ </p>
+
+
+ </div>
+
+
+ </div>
+</aside>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="b54d87ffdace50f420c3a6ff0404cbf3"><em><small>Photos by <a target="_blank" href="http://www.shutterstock.com/pic-129762989/stock-vector-consumer.html?src=id&amp;ws=1">cmgirl</a> (Shutterstock), <a target="_blank" href="http://www.shutterstock.com/pic-227832739/stock-vector-hacker-icon-man-in-hoody-with-laptop-flat-isolated-on-dark-background-vector-illustration.html?src=id&amp;ws=1">Macrovector</a> (Shutterstock), <a target="_blank" href="https://www.flickr.com/photos/jetheriot/6186786217">J E Theriot</a>, <a target="_blank" href="https://www.flickr.com/photos/puuikibeach/15289861843">davidd</a>, <a target="_blank" href="https://www.flickr.com/photos/funfilledgeorgie/10922459733">George Redgrave</a>, <a target="_blank" href="https://www.flickr.com/photos/amslerpix/7252002214">David Amsler</a>, <a target="_blank" href="https://www.flickr.com/photos/amalakar/7299820870">Arup Malakar</a>, <a target="_blank" href="https://www.flickr.com/photos/lobsterstew/89644885">J B</a>, <a target="_blank" href="https://www.flickr.com/photos/jakerome/3298702453">jakerome</a>, <a target="_blank" href="http://401kcalculator.org/">401(K) 2012</a>.</small></em></p><!-- core-decorated --></div><div class="row"><div class="post-bottom column"><a name="replies"></a><div data-forpost="1690268064" class="post-tools-wrapper right"> <a title="Recommend" class="js_like button-recommend-post text-small proxima hover-icon" href="#" data-likecount="36"><span class="js_like_count">36</span><span class="icon icon-star oversized icon-append js_like_icon"></span></a> <span style="display: inline;" class="proxima text-small mlm mrn" id="js_reply-count">146<span class="icon icon-bubble-round oversized"></span></span><script>document.getElementById('js_reply-count').style.display = 'inline';</script><a rel="nofollow" class="reply-to-post reply-count hover-icon proxima js_reply-to-post text-small readonly-hide" href="#" id="js_reply-to-post" style="display: inline-block;">Reply</a><noscript> &lt;span id="js_reply-count" class="proxima text-small mlm mrn"&gt;146&lt;span class="icon icon-bubble-round oversized"&gt;&lt;/span&gt;&lt;/span&gt;&lt;script&gt;document.getElementById('js_reply-count').style.display = 'inline';&lt;/script&gt;&lt;a href="#" class="reply-to-post reply-count hover-icon proxima text-small" rel="nofollow"&gt;Discuss&lt;span class="icon icon-bubble-round oversized"&gt;&lt;/span&gt;&lt;/a&gt;</noscript><div class="js_like-list-bottom-container"></div></div> <div data-show-faces="false" data-width="100" data-layout="button_count" data-href="http://lifehacker.com/how-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064" class="fb-like"></div></div></div></div></div></article></div></section><section data-replycount="146" data-authorblogname="patrickallan" class="js_replies "> <div class="replies-wrapper fade"><div class="js_replycol js_ad300-companion"> <dl class="reply-filters-tabbed sub-nav-tabbed js_reply-filters"><dd class="js_reload-groupchats reload-groupchats active"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Author Chat click' );" class="tab-author" href="http://lifehacker.com/how-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064"><span class="js_author-name">Patrick Allan</span>’s Discussions</a></dd><dd class="js_allview allview"><a title="View all 146 replies" onclick="window.ga('send', 'event', 'Group Chats', 'click', 'All Replies click');" data-currentview="" href="http://lifehacker.com/how-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064/all">All replies</a></dd></dl><div style="display: none;" class="js_permalink-place permalink-place row"><div class="row"><div class="twelve columns center"><a class="button secondary js_collapse-branch">Show all threads</a></div></div></div><div class="js_reply-form-container row"></div><div class="js_branch-permalink permalink-branch-list branch-list" data-view="permalink"></div><div class="js_branch-authorchat js_branch-list branch-list branch-authorchat" data-view="author"> <div class="branch js_branch"> <article data-contributors="1" data-authorname="jnovo22" data-parentid="1690268064" data-id="1690284499" id="reply_1690284499" class="js_reply reply js_goto_post clearfix" data-initialized="true"><header class="no-expand"> <div class="meta-container"> <div data-blogid="508159458" data-authorid="508159457" class="meta-avatar js_author"><div data-dropdownhover-container="" class="floated-container img-30"> <div data-dropdownhover-content="" class="f-dropdown author-hovercard content small whitelisted-links js_avatar-popover" id="1690284499-hovercard"><span class="floated-container img-60 avatar-container js_avatar-container"><span class="avatar"><span class="icon icon-checkmark icon-followed"></span><img alt="jnovo22" data-src="http://i.kinja-img.com/gawker-media/image/upload/c_fill,fl_progressive,g_center,h_120,q_80,w_120/17jcxnuqmm7depng.png" /></span><div data-blogid="508159458" data-authorid="508159457" class="js_follow-controls js_author-follow-controls"><h4>jnovo22</h4><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Hover card - profile button click');" target="_blank" class="button tiny secondary mrs" href="http://jnovo22.kinja.com">Profile</a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Hover card - follow button click');" class="button tiny secondary js_followforuser mrs" href="#">Follow</a><a class="button tiny secondary js_unfollowforuser mrs hide" href="#">Unfollow</a></div></span></div> <div data-dropdownhover="1690284499-hovercard" class="avatar avatar-container js_avatar-container"><span class="icon icon-checkmark icon-followed"></span><a href="http://jnovo22.kinja.com"><span class="img-border"><img src="http://i.kinja-img.com/gawker-media/image/upload/c_fill,fl_progressive,g_center,h_80,q_80,w_80/17jcxnuqmm7depng.png" /></span></a></div><div class="txt"> <span class="display-name author vcard"><a onclick="window.ga('send', 'event', 'byline', 'click', 'permalink');" class="fn url" data-dropdownhover-anchor="1690284499-hovercard" target="_self" href="http://jnovo22.kinja.com">jnovo22</a><span class="reply-author replyto-author"><span class="icon icon-arrow-small-right text-light"></span>Patrick Allan</span></span><div class="second-line post-meta"> <span data-publishtime="1425913955940" class="publish-time js_publish_time"><a target="_self" href="http://lifehacker.com/this-is-one-of-my-hardest-habits-to-break-ive-been-wor-1690284499" class="hover-switch"> <span class="show-on-hover published updated">3/09/15 8:12am</span><span class="hide-on-hover"> 3/09/15 8:12am</span></a></span></div></div></div></div><div class="post-dropdown-ct js_post-dropdown-ct"><ul data-dropdown-content="" data-sourceblogid="17" data-blogid="508159458" data-authorid="508159457" data-starterid="1690268064" data-postid="1690284499" class="f-dropdown proxima js_post-dropdown js_follow-controls js_author-follow-controls whitelisted-links" id="dropdown-1690284499"><li class="js_edit-reply hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-pencil-alt icon-prepend"></i>Edit</a></li><li class="js_delete-post hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-x-circle icon-prepend"></i>Delete</a></li> <li onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - invite click');" class="js_invite-to-post hover-icon hide"><a rel="nofollow" href="#"><i class="icon icon-twitter icon-prepend"></i>Invite</a></li><li class="js_invite-to-post-manually hover-icon hide"><a rel="nofollow" href="#"><i class="icon icon-mail icon-prepend"></i>Invite manually</a></li><li onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - follow user click');" class="js_followforuser hover-icon readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-plus-circle icon-prepend"></i>Follow jnovo22</a></li><li class="js_unfollowforuser hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-checkmark icon-prepend"></i>Unfollow jnovo22</a></li><li class="js_followforblog js_approveforblog hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-plus-circle icon-prepend"></i>Follow jnovo22 for Lifehacker</a></li><li class="js_unfollowforblog js_unapproveforblog hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-checkmark icon-prepend"></i>Unfollow jnovo22 for Lifehacker</a></li><li class="js_dismiss hover-icon hide readonly-hide"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Dismiss click');" rel="nofollow" class="dismiss" href="#"><i class="icon icon-prepend notranslate">X</i>Dismiss</a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Undismiss click');" rel="nofollow" class="undismiss hide" href="#"><i class="icon icon-prepend notranslate">X</i>Undismiss</a></li><li data-targetblogname="Lifehacker" data-targetblogid="508159458" data-blogid="17" class="js_block hover-icon hide disabled readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-not-circle icon-prepend"></i><span>Block for Lifehacker</span></a></li><li class="js_hide-post hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-not-circle"></i>Hide</a></li><li class="js_flag-post hover-icon readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-flag"></i>Flag</a></li><li class="js_unflag-post unflag-post hover-icon readonly-hide hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-flag"></i>Unflag</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Share to Facebook click');" href="http://facebook.com/sharer.php?u=http%3A%2F%2Flifehacker.com%2Fthis-is-one-of-my-hardest-habits-to-break-ive-been-wor-1690284499" rel="nofollow" class="js_share-post-item facebook hover-icon"><i class="icon icon-facebook icon-prepend"></i>Share to Facebook</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Share to Pinterest', 'click', 'Drop down');" href="http://www.pinterest.com/pin/create/api_other/?url=http%3A%2F%2Flifehacker.com%2Fthis-is-one-of-my-hardest-habits-to-break-ive-been-wor-1690284499&amp;media=http%3A%2F%2Fkinja.com%2Fassets%2Fimages%2Flogos%2Ftouchicons%2Fdefault-touch-icon-200x200.png&amp;description=This%20is%20one%20of%20my%20hardest%20habits%20to%20break.%20I%27ve%20been%20working%20on%20it%20for%20literally%20years.%20I%27m%20getting%20better%2C%20mainly%20because%20I%27ve%20gone%20to%20cash-only%20recently.%20Swiping%20the%20debit%2Fcredit%20cards%20don%27t%20seem%20like%20%22real%22%20money%20%28even%20though%20it%20obviously%20is%29.%20Having%20cash%20on%20hand%2C%20and%20then%20see%20it%20disappear%20makes%20the%20%22Should%20I%20buy%20This%3F%22%20decision%20that%20much%20easier.%20Usually%20it%27s%20%22No%22." rel="nofollow" class="js_share-post-item pinterest hover-icon"><i class="icon icon-pinterest icon-prepend"></i>Share to Pinterest</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Share to Twitter click');" href="http://twitter.com/share?url=http%3A%2F%2Flifehacker.com%2Fthis-is-one-of-my-hardest-habits-to-break-ive-been-wor-1690284499&amp;text=This%20is%20one%20of%20my%20hardest%20habits%20to%20break." rel="nofollow" class="js_share-post-item twitter hover-icon"><i class="icon icon-twitter icon-prepend"></i>Share to Twitter</a></li><li class="js_go-to-permalink"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Go to permalink click');" href="http://lifehacker.com/this-is-one-of-my-hardest-habits-to-break-ive-been-wor-1690284499" class="hover-icon"><i class="icon icon-link-alt icon-prepend"></i>Go to permalink</a></li><li class="repostblock js_repostblock hide"></li></ul><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down click');" data-dropdown="dropdown-1690284499" class="button dropdown secondary transparent toggle-30 js_post-menu-toggler post-dropdown-trigger" target="_self" href="#"></a></div></div></header><div class="reply-content post-content blurable whitelisted-links"><p class="first-text">This is one of my hardest habits to break. I've been working on it for literally years. I'm getting better, mainly because I've gone to cash-only recently. Swiping the debit/credit cards don't seem like "real" money (even though it obviously is). Having cash on hand, and then see it disappear makes the "Should I buy This?" decision that much easier. Usually it's "No".<span class=" read-more-placeholder"></span><span class="readmore-core-decorated"></span></p></div><div class="reply-tools js_reply-tools"><a title="Show replies" data-id="1690284499" class="js_toggle-descendants reply-count" href="#">9<span class="icon icon-bubble-round oversized js_bubble-icon"></span></a><a title="Recommend" class="js_like recommend-reply readonly-hide" href="#" data-likecount="24"><span class="js_like_count">24</span><span class="icon icon-star icon-append js_like_icon oversized"></span></a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Reply button click');" title="Reply" data-id="1690284499" class="js_reply-to-selected-post reply-link readonly-hide" href="#">Reply</a><div class="js_like-list-container"></div></div><div class="js_reply-flagged reply-flagged hide">Flagged</div><div class="reply-border"></div></article><section style="display: none;" class="js_toggled-replies js_new-reply-container toggled-replies" data-id="1690284499" id="js_toggled-replies-1690284499"></section> <article data-contributors="1" data-authorname="patrickallan" data-parentid="1690284499" data-id="1690284989" id="reply_1690284989" class="js_reply reply js_goto_post clearfix" data-initialized="true"><header class="no-expand"> <div class="meta-container"> <div data-blogid="602884922" data-authorid="602884910" class="meta-avatar js_author"><div data-dropdownhover-container="" class="floated-container img-30"> <div data-dropdownhover-content="" class="f-dropdown author-hovercard content small whitelisted-links js_avatar-popover" id="1690284989-hovercard"><span class="floated-container img-60 avatar-container js_avatar-container"><span class="avatar"><span class="icon icon-checkmark icon-followed"></span><img alt="PatrickAllan" data-src="http://i.kinja-img.com/gawker-media/image/upload/c_fill,fl_progressive,g_center,h_120,q_80,w_120/gzonxhes6bl4p9k4gzpl.jpg" /></span><div data-blogid="602884922" data-authorid="602884910" class="js_follow-controls js_author-follow-controls"><h4>Patrick Allan</h4><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Hover card - profile button click');" target="_blank" class="button tiny secondary mrs" href="http://patrickallan.kinja.com">Profile</a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Hover card - follow button click');" class="button tiny secondary js_followforuser mrs" href="#">Follow</a><a class="button tiny secondary js_unfollowforuser mrs hide" href="#">Unfollow</a></div></span></div> <div data-dropdownhover="1690284989-hovercard" class="avatar avatar-container js_avatar-container"><span class="icon icon-checkmark icon-followed"></span><a href="http://patrickallan.kinja.com"><span class="img-border"><img src="http://i.kinja-img.com/gawker-media/image/upload/c_fill,fl_progressive,g_center,h_80,q_80,w_80/gzonxhes6bl4p9k4gzpl.jpg" /></span></a></div><div class="txt"> <span class="display-name author vcard"><a onclick="window.ga('send', 'event', 'byline', 'click', 'permalink');" class="fn url" data-dropdownhover-anchor="1690284989-hovercard" target="_self" href="http://patrickallan.kinja.com">Patrick Allan</a><span class="reply-author replyto-author"><span class="icon icon-arrow-small-right text-light"></span>jnovo22</span></span><div class="second-line post-meta"> <span data-publishtime="1425914092673" class="publish-time js_publish_time"><a target="_self" href="http://lifehacker.com/i-do-the-cash-only-thing-too-i-usually-will-give-mysel-1690284989" class="hover-switch"> <span class="show-on-hover published updated">3/09/15 8:14am</span><span class="hide-on-hover"> 3/09/15 8:14am</span></a></span></div></div></div></div><div class="post-dropdown-ct js_post-dropdown-ct"><ul data-dropdown-content="" data-sourceblogid="17" data-blogid="602884922" data-authorid="602884910" data-starterid="1690268064" data-postid="1690284989" class="f-dropdown proxima js_post-dropdown js_follow-controls js_author-follow-controls whitelisted-links" id="dropdown-1690284989"><li class="js_edit-reply hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-pencil-alt icon-prepend"></i>Edit</a></li><li class="js_delete-post hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-x-circle icon-prepend"></i>Delete</a></li> <li onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - invite click');" class="js_invite-to-post hover-icon hide"><a rel="nofollow" href="#"><i class="icon icon-twitter icon-prepend"></i>Invite</a></li><li class="js_invite-to-post-manually hover-icon hide"><a rel="nofollow" href="#"><i class="icon icon-mail icon-prepend"></i>Invite manually</a></li><li onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - follow user click');" class="js_followforuser hover-icon readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-plus-circle icon-prepend"></i>Follow patrickallan</a></li><li class="js_unfollowforuser hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-checkmark icon-prepend"></i>Unfollow patrickallan</a></li><li class="js_followforblog js_approveforblog hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-plus-circle icon-prepend"></i>Follow patrickallan for Lifehacker</a></li><li class="js_unfollowforblog js_unapproveforblog hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-checkmark icon-prepend"></i>Unfollow patrickallan for Lifehacker</a></li><li class="js_dismiss hover-icon hide readonly-hide"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Dismiss click');" rel="nofollow" class="dismiss" href="#"><i class="icon icon-prepend notranslate">X</i>Dismiss</a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Undismiss click');" rel="nofollow" class="undismiss hide" href="#"><i class="icon icon-prepend notranslate">X</i>Undismiss</a></li><li data-targetblogname="Lifehacker" data-targetblogid="602884922" data-blogid="17" class="js_block hover-icon hide disabled readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-not-circle icon-prepend"></i><span>Block for Lifehacker</span></a></li><li class="js_hide-post hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-not-circle"></i>Hide</a></li><li class="js_flag-post hover-icon readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-flag"></i>Flag</a></li><li class="js_unflag-post unflag-post hover-icon readonly-hide hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-flag"></i>Unflag</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Share to Facebook click');" href="http://facebook.com/sharer.php?u=http%3A%2F%2Flifehacker.com%2Fi-do-the-cash-only-thing-too-i-usually-will-give-mysel-1690284989" rel="nofollow" class="js_share-post-item facebook hover-icon"><i class="icon icon-facebook icon-prepend"></i>Share to Facebook</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Share to Pinterest', 'click', 'Drop down');" href="http://www.pinterest.com/pin/create/api_other/?url=http%3A%2F%2Flifehacker.com%2Fi-do-the-cash-only-thing-too-i-usually-will-give-mysel-1690284989&amp;media=http%3A%2F%2Fkinja.com%2Fassets%2Fimages%2Flogos%2Ftouchicons%2Fdefault-touch-icon-200x200.png&amp;description=I%20do%20the%20cash-only%20thing%20too.%20I%20usually%20will%20give%20myself%20a%20limit%2C%20like%20I%20can%20spend%20this%20much%20this%20weekend.%20Once%20it%27s%20gone%2C%20that%27s%20it." rel="nofollow" class="js_share-post-item pinterest hover-icon"><i class="icon icon-pinterest icon-prepend"></i>Share to Pinterest</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Share to Twitter click');" href="http://twitter.com/share?url=http%3A%2F%2Flifehacker.com%2Fi-do-the-cash-only-thing-too-i-usually-will-give-mysel-1690284989&amp;text=I%20do%20the%20cash-only%20thing%20too." rel="nofollow" class="js_share-post-item twitter hover-icon"><i class="icon icon-twitter icon-prepend"></i>Share to Twitter</a></li><li class="js_go-to-permalink"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Go to permalink click');" href="http://lifehacker.com/i-do-the-cash-only-thing-too-i-usually-will-give-mysel-1690284989" class="hover-icon"><i class="icon icon-link-alt icon-prepend"></i>Go to permalink</a></li><li class="repostblock js_repostblock hide"></li></ul><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down click');" data-dropdown="dropdown-1690284989" class="button dropdown secondary transparent toggle-30 js_post-menu-toggler post-dropdown-trigger" target="_self" href="#"></a></div></div></header><div class="reply-content post-content blurable whitelisted-links"><p class="first-text">I do the cash-only thing too. I usually will give myself a limit, like I can spend this much this weekend. Once it's gone, that's it.<span class=" read-more-placeholder"></span><span class="readmore-core-decorated"></span></p></div><div class="reply-tools js_reply-tools"><a title="Show replies" data-id="1690284989" class="js_toggle-descendants reply-count" href="#">1<span class="icon icon-bubble-round oversized js_bubble-icon"></span></a><a title="Recommend" class="js_like recommend-reply readonly-hide" href="#" data-likecount="5"><span class="js_like_count">5</span><span class="icon icon-star icon-append js_like_icon oversized"></span></a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Reply button click');" title="Reply" data-id="1690284989" class="js_reply-to-selected-post reply-link readonly-hide" href="#">Reply</a><div class="js_like-list-container"></div></div><div class="js_reply-flagged reply-flagged hide">Flagged</div><div class="reply-border"></div></article><section style="display: none;" class="js_toggled-replies js_new-reply-container toggled-replies" data-id="1690284989" id="js_toggled-replies-1690284989"></section> <article data-contributors="1" data-authorname="jnovo22" data-parentid="1690284989" data-id="1690292756" id="reply_1690292756" class="js_reply reply js_goto_post clearfix" data-initialized="true"><header class="no-expand"> <div class="meta-container"> <div data-blogid="508159458" data-authorid="508159457" class="meta-avatar js_author"><div data-dropdownhover-container="" class="floated-container img-30"> <div data-dropdownhover-content="" class="f-dropdown author-hovercard content small whitelisted-links js_avatar-popover" id="1690292756-hovercard"><span class="floated-container img-60 avatar-container js_avatar-container"><span class="avatar"><span class="icon icon-checkmark icon-followed"></span><img alt="jnovo22" data-src="http://i.kinja-img.com/gawker-media/image/upload/c_fill,fl_progressive,g_center,h_120,q_80,w_120/17jcxnuqmm7depng.png" /></span><div data-blogid="508159458" data-authorid="508159457" class="js_follow-controls js_author-follow-controls"><h4>jnovo22</h4><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Hover card - profile button click');" target="_blank" class="button tiny secondary mrs" href="http://jnovo22.kinja.com">Profile</a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Hover card - follow button click');" class="button tiny secondary js_followforuser mrs" href="#">Follow</a><a class="button tiny secondary js_unfollowforuser mrs hide" href="#">Unfollow</a></div></span></div> <div data-dropdownhover="1690292756-hovercard" class="avatar avatar-container js_avatar-container"><span class="icon icon-checkmark icon-followed"></span><a href="http://jnovo22.kinja.com"><span class="img-border"><img src="http://i.kinja-img.com/gawker-media/image/upload/c_fill,fl_progressive,g_center,h_80,q_80,w_80/17jcxnuqmm7depng.png" /></span></a></div><div class="txt"> <span class="display-name author vcard"><a onclick="window.ga('send', 'event', 'byline', 'click', 'permalink');" class="fn url" data-dropdownhover-anchor="1690292756-hovercard" target="_self" href="http://jnovo22.kinja.com">jnovo22</a><span class="reply-author replyto-author"><span class="icon icon-arrow-small-right text-light"></span>Patrick Allan</span></span><div class="second-line post-meta"> <span data-publishtime="1425916025643" class="publish-time js_publish_time"><a target="_self" href="http://lifehacker.com/yup-each-week-i-give-myself-25-cash-for-spending-on-1690292756" class="hover-switch"> <span class="show-on-hover published updated">3/09/15 8:47am</span><span class="hide-on-hover"> 3/09/15 8:47am</span></a></span></div></div></div></div><div class="post-dropdown-ct js_post-dropdown-ct"><ul data-dropdown-content="" data-sourceblogid="17" data-blogid="508159458" data-authorid="508159457" data-starterid="1690268064" data-postid="1690292756" class="f-dropdown proxima js_post-dropdown js_follow-controls js_author-follow-controls whitelisted-links" id="dropdown-1690292756"><li class="js_edit-reply hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-pencil-alt icon-prepend"></i>Edit</a></li><li class="js_delete-post hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-x-circle icon-prepend"></i>Delete</a></li> <li onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - invite click');" class="js_invite-to-post hover-icon hide"><a rel="nofollow" href="#"><i class="icon icon-twitter icon-prepend"></i>Invite</a></li><li class="js_invite-to-post-manually hover-icon hide"><a rel="nofollow" href="#"><i class="icon icon-mail icon-prepend"></i>Invite manually</a></li><li onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - follow user click');" class="js_followforuser hover-icon readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-plus-circle icon-prepend"></i>Follow jnovo22</a></li><li class="js_unfollowforuser hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-checkmark icon-prepend"></i>Unfollow jnovo22</a></li><li class="js_followforblog js_approveforblog hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-plus-circle icon-prepend"></i>Follow jnovo22 for Lifehacker</a></li><li class="js_unfollowforblog js_unapproveforblog hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-checkmark icon-prepend"></i>Unfollow jnovo22 for Lifehacker</a></li><li class="js_dismiss hover-icon hide readonly-hide"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Dismiss click');" rel="nofollow" class="dismiss" href="#"><i class="icon icon-prepend notranslate">X</i>Dismiss</a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Undismiss click');" rel="nofollow" class="undismiss hide" href="#"><i class="icon icon-prepend notranslate">X</i>Undismiss</a></li><li data-targetblogname="Lifehacker" data-targetblogid="508159458" data-blogid="17" class="js_block hover-icon hide disabled readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-not-circle icon-prepend"></i><span>Block for Lifehacker</span></a></li><li class="js_hide-post hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-not-circle"></i>Hide</a></li><li class="js_flag-post hover-icon readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-flag"></i>Flag</a></li><li class="js_unflag-post unflag-post hover-icon readonly-hide hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-flag"></i>Unflag</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Share to Facebook click');" href="http://facebook.com/sharer.php?u=http%3A%2F%2Flifehacker.com%2Fyup-each-week-i-give-myself-25-cash-for-spending-on-1690292756" rel="nofollow" class="js_share-post-item facebook hover-icon"><i class="icon icon-facebook icon-prepend"></i>Share to Facebook</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Share to Pinterest', 'click', 'Drop down');" href="http://www.pinterest.com/pin/create/api_other/?url=http%3A%2F%2Flifehacker.com%2Fyup-each-week-i-give-myself-25-cash-for-spending-on-1690292756&amp;media=http%3A%2F%2Fkinja.com%2Fassets%2Fimages%2Flogos%2Ftouchicons%2Fdefault-touch-icon-200x200.png&amp;description=Yup.%20Each%20week%2C%20I%20give%20myself%20%2425%20cash%20for%20spending%20on%20me.%20If%20I%20go%20out%20to%20eat%20Friday%20night%2C%20that%27s%20it%2C%20it%27s%20gone." rel="nofollow" class="js_share-post-item pinterest hover-icon"><i class="icon icon-pinterest icon-prepend"></i>Share to Pinterest</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Share to Twitter click');" href="http://twitter.com/share?url=http%3A%2F%2Flifehacker.com%2Fyup-each-week-i-give-myself-25-cash-for-spending-on-1690292756&amp;text=Yup." rel="nofollow" class="js_share-post-item twitter hover-icon"><i class="icon icon-twitter icon-prepend"></i>Share to Twitter</a></li><li class="js_go-to-permalink"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Go to permalink click');" href="http://lifehacker.com/yup-each-week-i-give-myself-25-cash-for-spending-on-1690292756" class="hover-icon"><i class="icon icon-link-alt icon-prepend"></i>Go to permalink</a></li><li class="repostblock js_repostblock hide"></li></ul><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down click');" data-dropdown="dropdown-1690292756" class="button dropdown secondary transparent toggle-30 js_post-menu-toggler post-dropdown-trigger" target="_self" href="#"></a></div></div></header><div class="reply-content post-content blurable whitelisted-links"><p class="first-text">Yup. Each week, I give myself $25 cash for spending on me. If I go out to eat Friday night, that's it, it's gone.<span class=" read-more-placeholder"></span><span class="readmore-core-decorated"></span></p>
+
+
+
+
+
+
+
+
+
+
+<p><span>I use the envelope system for dividing saved cash for special purchases, home improvements, etc. It's crazy how fast it adds up.</span></p></div><div class="reply-tools js_reply-tools"><a title="Show replies" data-id="1690292756" class="js_toggle-descendants reply-count" href="#">1<span class="icon icon-bubble-round oversized js_bubble-icon"></span></a><a title="Recommend" class="js_like recommend-reply readonly-hide" href="#" data-likecount="2"><span class="js_like_count">2</span><span class="icon icon-star icon-append js_like_icon oversized"></span></a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Reply button click');" title="Reply" data-id="1690292756" class="js_reply-to-selected-post reply-link readonly-hide" href="#">Reply</a><div class="js_like-list-container"></div></div><div class="js_reply-flagged reply-flagged hide">Flagged</div><div class="reply-border"></div></article><section style="display: none;" class="js_toggled-replies js_new-reply-container toggled-replies" data-id="1690292756" id="js_toggled-replies-1690292756"></section></div><div class="branch js_branch"> <article data-contributors="1" data-authorname="thegrayadder" data-parentid="1690268064" data-id="1690287621" id="reply_1690287621" class="js_reply reply js_goto_post clearfix" data-initialized="true"><header class="no-expand"> <div class="meta-container"> <div data-blogid="1362670371" data-authorid="1362670366" class="meta-avatar js_author"><div data-dropdownhover-container="" class="floated-container img-30"> <div data-dropdownhover-content="" class="f-dropdown author-hovercard content small whitelisted-links js_avatar-popover" id="1690287621-hovercard"><span class="floated-container img-60 avatar-container js_avatar-container"><span class="avatar"><span class="icon icon-checkmark icon-followed"></span><img alt="thegrayadder" data-src="http://i.kinja-img.com/gawker-media/image/upload/c_fill,fl_progressive,g_center,h_120,q_80,w_120/yntem4p7h8vpkry50vxr.jpg" /></span><div data-blogid="1362670371" data-authorid="1362670366" class="js_follow-controls js_author-follow-controls"><h4>The Gray Adder</h4><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Hover card - profile button click');" target="_blank" class="button tiny secondary mrs" href="http://thegrayadder.kinja.com">Profile</a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Hover card - follow button click');" class="button tiny secondary js_followforuser mrs" href="#">Follow</a><a class="button tiny secondary js_unfollowforuser mrs hide" href="#">Unfollow</a></div></span></div> <div data-dropdownhover="1690287621-hovercard" class="avatar avatar-container js_avatar-container"><span class="icon icon-checkmark icon-followed"></span><a href="http://thegrayadder.kinja.com"><span class="img-border"><img src="http://i.kinja-img.com/gawker-media/image/upload/c_fill,fl_progressive,g_center,h_80,q_80,w_80/yntem4p7h8vpkry50vxr.jpg" /></span></a></div><div class="txt"> <span class="display-name author vcard"><a onclick="window.ga('send', 'event', 'byline', 'click', 'permalink');" class="fn url" data-dropdownhover-anchor="1690287621-hovercard" target="_self" href="http://thegrayadder.kinja.com">The Gray Adder</a><span class="reply-author replyto-author"><span class="icon icon-arrow-small-right text-light"></span>Patrick Allan</span></span><div class="second-line post-meta"> <span data-publishtime="1425914763123" class="publish-time js_publish_time"><a target="_self" href="http://lifehacker.com/why-would-i-make-a-list-when-i-could-get-right-down-to-1690287621" class="hover-switch"> <span class="show-on-hover published updated">3/09/15 8:26am</span><span class="hide-on-hover"> 3/09/15 8:26am</span></a></span></div></div></div></div><div class="post-dropdown-ct js_post-dropdown-ct"><ul data-dropdown-content="" data-sourceblogid="17" data-blogid="1362670371" data-authorid="1362670366" data-starterid="1690268064" data-postid="1690287621" class="f-dropdown proxima js_post-dropdown js_follow-controls js_author-follow-controls whitelisted-links" id="dropdown-1690287621"><li class="js_edit-reply hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-pencil-alt icon-prepend"></i>Edit</a></li><li class="js_delete-post hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-x-circle icon-prepend"></i>Delete</a></li> <li onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - invite click');" class="js_invite-to-post hover-icon hide"><a rel="nofollow" href="#"><i class="icon icon-twitter icon-prepend"></i>Invite</a></li><li class="js_invite-to-post-manually hover-icon hide"><a rel="nofollow" href="#"><i class="icon icon-mail icon-prepend"></i>Invite manually</a></li><li onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - follow user click');" class="js_followforuser hover-icon readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-plus-circle icon-prepend"></i>Follow thegrayadder</a></li><li class="js_unfollowforuser hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-checkmark icon-prepend"></i>Unfollow thegrayadder</a></li><li class="js_followforblog js_approveforblog hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-plus-circle icon-prepend"></i>Follow thegrayadder for Lifehacker</a></li><li class="js_unfollowforblog js_unapproveforblog hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-checkmark icon-prepend"></i>Unfollow thegrayadder for Lifehacker</a></li><li class="js_dismiss hover-icon hide readonly-hide"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Dismiss click');" rel="nofollow" class="dismiss" href="#"><i class="icon icon-prepend notranslate">X</i>Dismiss</a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Undismiss click');" rel="nofollow" class="undismiss hide" href="#"><i class="icon icon-prepend notranslate">X</i>Undismiss</a></li><li data-targetblogname="Lifehacker" data-targetblogid="1362670371" data-blogid="17" class="js_block hover-icon hide disabled readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-not-circle icon-prepend"></i><span>Block for Lifehacker</span></a></li><li class="js_hide-post hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-not-circle"></i>Hide</a></li><li class="js_flag-post hover-icon readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-flag"></i>Flag</a></li><li class="js_unflag-post unflag-post hover-icon readonly-hide hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-flag"></i>Unflag</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Share to Facebook click');" href="http://facebook.com/sharer.php?u=http%3A%2F%2Flifehacker.com%2Fwhy-would-i-make-a-list-when-i-could-get-right-down-to-1690287621" rel="nofollow" class="js_share-post-item facebook hover-icon"><i class="icon icon-facebook icon-prepend"></i>Share to Facebook</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Share to Pinterest', 'click', 'Drop down');" href="http://www.pinterest.com/pin/create/api_other/?url=http%3A%2F%2Flifehacker.com%2Fwhy-would-i-make-a-list-when-i-could-get-right-down-to-1690287621&amp;media=http%3A%2F%2Fkinja.com%2Fassets%2Fimages%2Flogos%2Ftouchicons%2Fdefault-touch-icon-200x200.png&amp;description=Why%20would%20I%20make%20a%20list%20when%20I%20could%20get%20right%20down%20to%20the%20business%20of%20decluttering%3F" rel="nofollow" class="js_share-post-item pinterest hover-icon"><i class="icon icon-pinterest icon-prepend"></i>Share to Pinterest</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Share to Twitter click');" href="http://twitter.com/share?url=http%3A%2F%2Flifehacker.com%2Fwhy-would-i-make-a-list-when-i-could-get-right-down-to-1690287621&amp;text=Why%20would%20I%20make%20a%20list%20when%20I%20could%20get%20right%20down%20to%20the%20business%20of%20decluttering%3F..." rel="nofollow" class="js_share-post-item twitter hover-icon"><i class="icon icon-twitter icon-prepend"></i>Share to Twitter</a></li><li class="js_go-to-permalink"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Go to permalink click');" href="http://lifehacker.com/why-would-i-make-a-list-when-i-could-get-right-down-to-1690287621" class="hover-icon"><i class="icon icon-link-alt icon-prepend"></i>Go to permalink</a></li><li class="repostblock js_repostblock hide"></li></ul><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down click');" data-dropdown="dropdown-1690287621" class="button dropdown secondary transparent toggle-30 js_post-menu-toggler post-dropdown-trigger" target="_self" href="#"></a></div></div></header><div class="reply-content post-content blurable whitelisted-links"><blockquote style="" class="reply-text-annotation"><span class="icon icon-quote mrs"></span><h3><strong>Make a List of </strong><em><strong>Everything</strong></em><strong> You Own and Do Some Decluttering</strong></h3></blockquote><p class="first-text">Why would I make a list when I could get right down to the business of decluttering?<span class=" read-more-placeholder"></span><span class="readmore-core-decorated"></span></p></div><div class="reply-tools js_reply-tools"><a title="Show replies" data-id="1690287621" class="js_toggle-descendants reply-count" href="#">3<span class="icon icon-bubble-round oversized js_bubble-icon"></span></a><a title="Recommend" class="js_like recommend-reply readonly-hide" href="#" data-likecount="1"><span class="js_like_count">1</span><span class="icon icon-star icon-append js_like_icon oversized"></span></a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Reply button click');" title="Reply" data-id="1690287621" class="js_reply-to-selected-post reply-link readonly-hide" href="#">Reply</a><div class="js_like-list-container"></div></div><div class="js_reply-flagged reply-flagged hide">Flagged</div><div class="reply-border"></div></article><section style="display: none;" class="js_toggled-replies js_new-reply-container toggled-replies" data-id="1690287621" id="js_toggled-replies-1690287621"></section> <article data-contributors="1" data-authorname="patrickallan" data-parentid="1690287621" data-id="1690289222" id="reply_1690289222" class="js_reply reply js_goto_post clearfix" data-initialized="true"><header class="no-expand"> <div class="meta-container"> <div data-blogid="602884922" data-authorid="602884910" class="meta-avatar js_author"><div data-dropdownhover-container="" class="floated-container img-30"> <div data-dropdownhover-content="" class="f-dropdown author-hovercard content small whitelisted-links js_avatar-popover" id="1690289222-hovercard"><span class="floated-container img-60 avatar-container js_avatar-container"><span class="avatar"><span class="icon icon-checkmark icon-followed"></span><img alt="PatrickAllan" data-src="http://i.kinja-img.com/gawker-media/image/upload/c_fill,fl_progressive,g_center,h_120,q_80,w_120/gzonxhes6bl4p9k4gzpl.jpg" /></span><div data-blogid="602884922" data-authorid="602884910" class="js_follow-controls js_author-follow-controls"><h4>Patrick Allan</h4><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Hover card - profile button click');" target="_blank" class="button tiny secondary mrs" href="http://patrickallan.kinja.com">Profile</a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Hover card - follow button click');" class="button tiny secondary js_followforuser mrs" href="#">Follow</a><a class="button tiny secondary js_unfollowforuser mrs hide" href="#">Unfollow</a></div></span></div> <div data-dropdownhover="1690289222-hovercard" class="avatar avatar-container js_avatar-container"><span class="icon icon-checkmark icon-followed"></span><a href="http://patrickallan.kinja.com"><span class="img-border"><img src="http://i.kinja-img.com/gawker-media/image/upload/c_fill,fl_progressive,g_center,h_80,q_80,w_80/gzonxhes6bl4p9k4gzpl.jpg" /></span></a></div><div class="txt"> <span class="display-name author vcard"><a onclick="window.ga('send', 'event', 'byline', 'click', 'permalink');" class="fn url" data-dropdownhover-anchor="1690289222-hovercard" target="_self" href="http://patrickallan.kinja.com">Patrick Allan</a><span class="reply-author replyto-author"><span class="icon icon-arrow-small-right text-light"></span>The Gray Adder</span></span><div class="second-line post-meta"> <span data-publishtime="1425915151767" class="publish-time js_publish_time"><a target="_self" href="http://lifehacker.com/so-you-know-what-you-already-have-you-can-avoid-buying-1690289222" class="hover-switch"> <span class="show-on-hover published updated">3/09/15 8:32am</span><span class="hide-on-hover"> 3/09/15 8:32am</span></a></span></div></div></div></div><div class="post-dropdown-ct js_post-dropdown-ct"><ul data-dropdown-content="" data-sourceblogid="17" data-blogid="602884922" data-authorid="602884910" data-starterid="1690268064" data-postid="1690289222" class="f-dropdown proxima js_post-dropdown js_follow-controls js_author-follow-controls whitelisted-links" id="dropdown-1690289222"><li class="js_edit-reply hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-pencil-alt icon-prepend"></i>Edit</a></li><li class="js_delete-post hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-x-circle icon-prepend"></i>Delete</a></li> <li onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - invite click');" class="js_invite-to-post hover-icon hide"><a rel="nofollow" href="#"><i class="icon icon-twitter icon-prepend"></i>Invite</a></li><li class="js_invite-to-post-manually hover-icon hide"><a rel="nofollow" href="#"><i class="icon icon-mail icon-prepend"></i>Invite manually</a></li><li onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - follow user click');" class="js_followforuser hover-icon readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-plus-circle icon-prepend"></i>Follow patrickallan</a></li><li class="js_unfollowforuser hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-checkmark icon-prepend"></i>Unfollow patrickallan</a></li><li class="js_followforblog js_approveforblog hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-plus-circle icon-prepend"></i>Follow patrickallan for Lifehacker</a></li><li class="js_unfollowforblog js_unapproveforblog hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-checkmark icon-prepend"></i>Unfollow patrickallan for Lifehacker</a></li><li class="js_dismiss hover-icon hide readonly-hide"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Dismiss click');" rel="nofollow" class="dismiss" href="#"><i class="icon icon-prepend notranslate">X</i>Dismiss</a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Undismiss click');" rel="nofollow" class="undismiss hide" href="#"><i class="icon icon-prepend notranslate">X</i>Undismiss</a></li><li data-targetblogname="Lifehacker" data-targetblogid="602884922" data-blogid="17" class="js_block hover-icon hide disabled readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-not-circle icon-prepend"></i><span>Block for Lifehacker</span></a></li><li class="js_hide-post hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-not-circle"></i>Hide</a></li><li class="js_flag-post hover-icon readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-flag"></i>Flag</a></li><li class="js_unflag-post unflag-post hover-icon readonly-hide hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-flag"></i>Unflag</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Share to Facebook click');" href="http://facebook.com/sharer.php?u=http%3A%2F%2Flifehacker.com%2Fso-you-know-what-you-already-have-you-can-avoid-buying-1690289222" rel="nofollow" class="js_share-post-item facebook hover-icon"><i class="icon icon-facebook icon-prepend"></i>Share to Facebook</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Share to Pinterest', 'click', 'Drop down');" href="http://www.pinterest.com/pin/create/api_other/?url=http%3A%2F%2Flifehacker.com%2Fso-you-know-what-you-already-have-you-can-avoid-buying-1690289222&amp;media=http%3A%2F%2Fkinja.com%2Fassets%2Fimages%2Flogos%2Ftouchicons%2Fdefault-touch-icon-200x200.png&amp;description=So%20you%20know%20what%20you%20already%20have.%20You%20can%20avoid%20buying%20something%20that%20you%20forget%20you%20had%2C%20or%20the%20next%20time%20you%27re%20in%20a%20store%2C%20you%20might%20remember%20that%20you%20have%20an%20item%20that%20can%20do%20the%20same%20job%20as%20the%20thing%20you%27re%20interested%20in.%20It%20also%20helps%20you%20gain%20a%20little%20perspective%20when%20you%20realize%20how%20many%20things%20you%20actually%20own%20already.%20It%20can%20help%20you%20rethink%20those%20desires%20to%20buy%20things." rel="nofollow" class="js_share-post-item pinterest hover-icon"><i class="icon icon-pinterest icon-prepend"></i>Share to Pinterest</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Share to Twitter click');" href="http://twitter.com/share?url=http%3A%2F%2Flifehacker.com%2Fso-you-know-what-you-already-have-you-can-avoid-buying-1690289222&amp;text=So%20you%20know%20what%20you%20already%20have." rel="nofollow" class="js_share-post-item twitter hover-icon"><i class="icon icon-twitter icon-prepend"></i>Share to Twitter</a></li><li class="js_go-to-permalink"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Go to permalink click');" href="http://lifehacker.com/so-you-know-what-you-already-have-you-can-avoid-buying-1690289222" class="hover-icon"><i class="icon icon-link-alt icon-prepend"></i>Go to permalink</a></li><li class="repostblock js_repostblock hide"></li></ul><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down click');" data-dropdown="dropdown-1690289222" class="button dropdown secondary transparent toggle-30 js_post-menu-toggler post-dropdown-trigger" target="_self" href="#"></a></div></div></header><div class="reply-content post-content blurable whitelisted-links"><p class="first-text">So you know what you already have. You can avoid buying something that you forget you had, or the next time you're in a store, you might remember that you have an item that can do the same job as the thing you're interested in. It also helps you gain a little perspective when you realize how many things you actually own already. It can help you rethink those desires to buy things.<span class=" read-more-placeholder"></span><span class="readmore-core-decorated"></span></p></div><div class="reply-tools js_reply-tools"><a title="Show replies" data-id="1690289222" class="js_toggle-descendants reply-count" href="#">1<span class="icon icon-bubble-round oversized js_bubble-icon"></span></a><a title="Recommend" class="js_like recommend-reply readonly-hide" href="#" data-likecount="11"><span class="js_like_count">11</span><span class="icon icon-star icon-append js_like_icon oversized"></span></a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Reply button click');" title="Reply" data-id="1690289222" class="js_reply-to-selected-post reply-link readonly-hide" href="#">Reply</a><div class="js_like-list-container"></div></div><div class="js_reply-flagged reply-flagged hide">Flagged</div><div class="reply-border"></div></article><section style="display: none;" class="js_toggled-replies js_new-reply-container toggled-replies" data-id="1690289222" id="js_toggled-replies-1690289222"></section></div><div class="branch js_branch"> <article data-contributors="1" data-authorname="winfredarmandelafuentelati" data-parentid="1690268064" data-id="1690289549" id="reply_1690289549" class="js_reply reply js_goto_post clearfix" data-initialized="true"><header class="no-expand"> <div class="meta-container"> <div data-blogid="234330" data-authorid="5725561713366911042" class="meta-avatar js_author"><div data-dropdownhover-container="" class="floated-container img-30"> <div data-dropdownhover-content="" class="f-dropdown author-hovercard content small whitelisted-links js_avatar-popover" id="1690289549-hovercard"><span class="floated-container img-60 avatar-container js_avatar-container"><span class="avatar"><span class="icon icon-checkmark icon-followed"></span><img alt="winfredarmandelafuentelati" data-src="http://i.kinja-img.com/gawker-media/image/upload/c_fill,fl_progressive,g_center,h_120,q_80,w_120/17jcxjgw9pi83png.png" /></span><div data-blogid="234330" data-authorid="5725561713366911042" class="js_follow-controls js_author-follow-controls"><h4>greenarcher02</h4><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Hover card - profile button click');" target="_blank" class="button tiny secondary mrs" href="http://winfredarmandelafuentelati.kinja.com">Profile</a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Hover card - follow button click');" class="button tiny secondary js_followforuser mrs" href="#">Follow</a><a class="button tiny secondary js_unfollowforuser mrs hide" href="#">Unfollow</a></div></span></div> <div data-dropdownhover="1690289549-hovercard" class="avatar avatar-container js_avatar-container"><span class="icon icon-checkmark icon-followed"></span><a href="http://winfredarmandelafuentelati.kinja.com"><span class="img-border"><img src="http://i.kinja-img.com/gawker-media/image/upload/c_fill,fl_progressive,g_center,h_80,q_80,w_80/17jcxjgw9pi83png.png" /></span></a></div><div class="txt"> <span class="display-name author vcard"><a onclick="window.ga('send', 'event', 'byline', 'click', 'permalink');" class="fn url" data-dropdownhover-anchor="1690289549-hovercard" target="_self" href="http://winfredarmandelafuentelati.kinja.com">greenarcher02</a><span class="reply-author replyto-author"><span class="icon icon-arrow-small-right text-light"></span>Patrick Allan</span></span><div class="second-line post-meta"> <span data-publishtime="1425915223760" class="publish-time js_publish_time"><a target="_self" href="http://lifehacker.com/does-it-count-that-im-waiting-for-final-fantasy-type-0-1690289549" class="hover-switch"> <span class="show-on-hover published updated">3/09/15 8:33am</span><span class="hide-on-hover"> 3/09/15 8:33am</span></a></span></div></div></div></div><div class="post-dropdown-ct js_post-dropdown-ct"><ul data-dropdown-content="" data-sourceblogid="17" data-blogid="234330" data-authorid="5725561713366911042" data-starterid="1690268064" data-postid="1690289549" class="f-dropdown proxima js_post-dropdown js_follow-controls js_author-follow-controls whitelisted-links" id="dropdown-1690289549"><li class="js_edit-reply hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-pencil-alt icon-prepend"></i>Edit</a></li><li class="js_delete-post hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-x-circle icon-prepend"></i>Delete</a></li> <li onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - invite click');" class="js_invite-to-post hover-icon hide"><a rel="nofollow" href="#"><i class="icon icon-twitter icon-prepend"></i>Invite</a></li><li class="js_invite-to-post-manually hover-icon hide"><a rel="nofollow" href="#"><i class="icon icon-mail icon-prepend"></i>Invite manually</a></li><li onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - follow user click');" class="js_followforuser hover-icon readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-plus-circle icon-prepend"></i>Follow winfredarmandelafuentelati</a></li><li class="js_unfollowforuser hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-checkmark icon-prepend"></i>Unfollow winfredarmandelafuentelati</a></li><li class="js_followforblog js_approveforblog hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-plus-circle icon-prepend"></i>Follow winfredarmandelafuentelati for Lifehacker</a></li><li class="js_unfollowforblog js_unapproveforblog hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-checkmark icon-prepend"></i>Unfollow winfredarmandelafuentelati for Lifehacker</a></li><li class="js_dismiss hover-icon hide readonly-hide"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Dismiss click');" rel="nofollow" class="dismiss" href="#"><i class="icon icon-prepend notranslate">X</i>Dismiss</a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Undismiss click');" rel="nofollow" class="undismiss hide" href="#"><i class="icon icon-prepend notranslate">X</i>Undismiss</a></li><li data-targetblogname="Lifehacker" data-targetblogid="234330" data-blogid="17" class="js_block hover-icon hide disabled readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-not-circle icon-prepend"></i><span>Block for Lifehacker</span></a></li><li class="js_hide-post hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-not-circle"></i>Hide</a></li><li class="js_flag-post hover-icon readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-flag"></i>Flag</a></li><li class="js_unflag-post unflag-post hover-icon readonly-hide hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-flag"></i>Unflag</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Share to Facebook click');" href="http://facebook.com/sharer.php?u=http%3A%2F%2Flifehacker.com%2Fdoes-it-count-that-im-waiting-for-final-fantasy-type-0-1690289549" rel="nofollow" class="js_share-post-item facebook hover-icon"><i class="icon icon-facebook icon-prepend"></i>Share to Facebook</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Share to Pinterest', 'click', 'Drop down');" href="http://www.pinterest.com/pin/create/api_other/?url=http%3A%2F%2Flifehacker.com%2Fdoes-it-count-that-im-waiting-for-final-fantasy-type-0-1690289549&amp;media=http%3A%2F%2Fkinja.com%2Fassets%2Fimages%2Flogos%2Ftouchicons%2Fdefault-touch-icon-200x200.png&amp;description=Does%20it%20count%20that%20I%27m%20waiting%20for%20Final%20Fantasy%20Type-0%20before%20buying%20a%20PS4%3F" rel="nofollow" class="js_share-post-item pinterest hover-icon"><i class="icon icon-pinterest icon-prepend"></i>Share to Pinterest</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Share to Twitter click');" href="http://twitter.com/share?url=http%3A%2F%2Flifehacker.com%2Fdoes-it-count-that-im-waiting-for-final-fantasy-type-0-1690289549&amp;text=Does%20it%20count%20that%20I%27m%20waiting%20for%20Final%20Fantasy%20Type-0%20before%20buying%20a%20PS4%3F..." rel="nofollow" class="js_share-post-item twitter hover-icon"><i class="icon icon-twitter icon-prepend"></i>Share to Twitter</a></li><li class="js_go-to-permalink"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Go to permalink click');" href="http://lifehacker.com/does-it-count-that-im-waiting-for-final-fantasy-type-0-1690289549" class="hover-icon"><i class="icon icon-link-alt icon-prepend"></i>Go to permalink</a></li><li class="repostblock js_repostblock hide"></li></ul><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down click');" data-dropdown="dropdown-1690289549" class="button dropdown secondary transparent toggle-30 js_post-menu-toggler post-dropdown-trigger" target="_self" href="#"></a></div></div></header><div class="reply-content post-content blurable whitelisted-links"><div style="background-image: url('http://i.kinja-img.com/gawker-media/image/upload/s--mtob1sjR--/y2ldv5eufb3jcrtfouye.jpg'); background-position: 47% 56%;" class="reply-image-annotation"></div><p class="first-text">Does it count that I'm waiting for Final Fantasy Type-0 before buying a PS4?<span class=" read-more-placeholder"></span><span class="readmore-core-decorated"></span></p></div><div class="reply-tools js_reply-tools"><a title="Recommend" class="js_like recommend-reply readonly-hide" href="#" data-likecount="4"><span class="js_like_count">4</span><span class="icon icon-star icon-append js_like_icon oversized"></span></a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Reply button click');" title="Reply" data-id="1690289549" class="js_reply-to-selected-post reply-link readonly-hide" href="#">Reply</a><div class="js_like-list-container"></div></div><div class="js_reply-flagged reply-flagged hide">Flagged</div><div class="reply-border"></div></article><section style="display: none;" class="js_toggled-replies js_new-reply-container toggled-replies" data-id="1690289549" id="js_toggled-replies-1690289549"></section> <article data-contributors="1" data-authorname="patrickallan" data-parentid="1690289549" data-id="1690290080" id="reply_1690290080" class="js_reply reply js_goto_post clearfix" data-initialized="true"><header class="no-expand"> <div class="meta-container"> <div data-blogid="602884922" data-authorid="602884910" class="meta-avatar js_author"><div data-dropdownhover-container="" class="floated-container img-30"> <div data-dropdownhover-content="" class="f-dropdown author-hovercard content small whitelisted-links js_avatar-popover" id="1690290080-hovercard"><span class="floated-container img-60 avatar-container js_avatar-container"><span class="avatar"><span class="icon icon-checkmark icon-followed"></span><img alt="PatrickAllan" data-src="http://i.kinja-img.com/gawker-media/image/upload/c_fill,fl_progressive,g_center,h_120,q_80,w_120/gzonxhes6bl4p9k4gzpl.jpg" /></span><div data-blogid="602884922" data-authorid="602884910" class="js_follow-controls js_author-follow-controls"><h4>Patrick Allan</h4><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Hover card - profile button click');" target="_blank" class="button tiny secondary mrs" href="http://patrickallan.kinja.com">Profile</a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Hover card - follow button click');" class="button tiny secondary js_followforuser mrs" href="#">Follow</a><a class="button tiny secondary js_unfollowforuser mrs hide" href="#">Unfollow</a></div></span></div> <div data-dropdownhover="1690290080-hovercard" class="avatar avatar-container js_avatar-container"><span class="icon icon-checkmark icon-followed"></span><a href="http://patrickallan.kinja.com"><span class="img-border"><img src="http://i.kinja-img.com/gawker-media/image/upload/c_fill,fl_progressive,g_center,h_80,q_80,w_80/gzonxhes6bl4p9k4gzpl.jpg" /></span></a></div><div class="txt"> <span class="display-name author vcard"><a onclick="window.ga('send', 'event', 'byline', 'click', 'permalink');" class="fn url" data-dropdownhover-anchor="1690290080-hovercard" target="_self" href="http://patrickallan.kinja.com">Patrick Allan</a><span class="reply-author replyto-author"><span class="icon icon-arrow-small-right text-light"></span>greenarcher02</span></span><div class="second-line post-meta"> <span data-publishtime="1425915354678" class="publish-time js_publish_time"><a target="_self" href="http://lifehacker.com/as-long-as-youre-saving-for-it-now-1690290080" class="hover-switch"> <span class="show-on-hover published updated">3/09/15 8:35am</span><span class="hide-on-hover"> 3/09/15 8:35am</span></a></span></div></div></div></div><div class="post-dropdown-ct js_post-dropdown-ct"><ul data-dropdown-content="" data-sourceblogid="17" data-blogid="602884922" data-authorid="602884910" data-starterid="1690268064" data-postid="1690290080" class="f-dropdown proxima js_post-dropdown js_follow-controls js_author-follow-controls whitelisted-links" id="dropdown-1690290080"><li class="js_edit-reply hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-pencil-alt icon-prepend"></i>Edit</a></li><li class="js_delete-post hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-x-circle icon-prepend"></i>Delete</a></li> <li onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - invite click');" class="js_invite-to-post hover-icon hide"><a rel="nofollow" href="#"><i class="icon icon-twitter icon-prepend"></i>Invite</a></li><li class="js_invite-to-post-manually hover-icon hide"><a rel="nofollow" href="#"><i class="icon icon-mail icon-prepend"></i>Invite manually</a></li><li onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - follow user click');" class="js_followforuser hover-icon readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-plus-circle icon-prepend"></i>Follow patrickallan</a></li><li class="js_unfollowforuser hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-checkmark icon-prepend"></i>Unfollow patrickallan</a></li><li class="js_followforblog js_approveforblog hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-plus-circle icon-prepend"></i>Follow patrickallan for Lifehacker</a></li><li class="js_unfollowforblog js_unapproveforblog hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-checkmark icon-prepend"></i>Unfollow patrickallan for Lifehacker</a></li><li class="js_dismiss hover-icon hide readonly-hide"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Dismiss click');" rel="nofollow" class="dismiss" href="#"><i class="icon icon-prepend notranslate">X</i>Dismiss</a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Undismiss click');" rel="nofollow" class="undismiss hide" href="#"><i class="icon icon-prepend notranslate">X</i>Undismiss</a></li><li data-targetblogname="Lifehacker" data-targetblogid="602884922" data-blogid="17" class="js_block hover-icon hide disabled readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-not-circle icon-prepend"></i><span>Block for Lifehacker</span></a></li><li class="js_hide-post hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-not-circle"></i>Hide</a></li><li class="js_flag-post hover-icon readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-flag"></i>Flag</a></li><li class="js_unflag-post unflag-post hover-icon readonly-hide hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-flag"></i>Unflag</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Share to Facebook click');" href="http://facebook.com/sharer.php?u=http%3A%2F%2Flifehacker.com%2Fas-long-as-youre-saving-for-it-now-1690290080" rel="nofollow" class="js_share-post-item facebook hover-icon"><i class="icon icon-facebook icon-prepend"></i>Share to Facebook</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Share to Pinterest', 'click', 'Drop down');" href="http://www.pinterest.com/pin/create/api_other/?url=http%3A%2F%2Flifehacker.com%2Fas-long-as-youre-saving-for-it-now-1690290080&amp;media=http%3A%2F%2Fkinja.com%2Fassets%2Fimages%2Flogos%2Ftouchicons%2Fdefault-touch-icon-200x200.png&amp;description=As%20long%20as%20you%27re%20saving%20for%20it%20now%20%3B%29" rel="nofollow" class="js_share-post-item pinterest hover-icon"><i class="icon icon-pinterest icon-prepend"></i>Share to Pinterest</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Share to Twitter click');" href="http://twitter.com/share?url=http%3A%2F%2Flifehacker.com%2Fas-long-as-youre-saving-for-it-now-1690290080&amp;text=As%20long%20as%20you%27re%20saving%20for%20it%20now%20%3B%29..." rel="nofollow" class="js_share-post-item twitter hover-icon"><i class="icon icon-twitter icon-prepend"></i>Share to Twitter</a></li><li class="js_go-to-permalink"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Go to permalink click');" href="http://lifehacker.com/as-long-as-youre-saving-for-it-now-1690290080" class="hover-icon"><i class="icon icon-link-alt icon-prepend"></i>Go to permalink</a></li><li class="repostblock js_repostblock hide"></li></ul><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down click');" data-dropdown="dropdown-1690290080" class="button dropdown secondary transparent toggle-30 js_post-menu-toggler post-dropdown-trigger" target="_self" href="#"></a></div></div></header><div class="reply-content post-content blurable whitelisted-links"><p class="first-text">As long as you're saving for it now ;)<span class=" read-more-placeholder"></span><span class="readmore-core-decorated"></span></p></div><div class="reply-tools js_reply-tools"><a title="Recommend" class="js_like recommend-reply readonly-hide" href="#" data-likecount="2"><span class="js_like_count">2</span><span class="icon icon-star icon-append js_like_icon oversized"></span></a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Reply button click');" title="Reply" data-id="1690290080" class="js_reply-to-selected-post reply-link readonly-hide" href="#">Reply</a><div class="js_like-list-container"></div></div><div class="js_reply-flagged reply-flagged hide">Flagged</div><div class="reply-border"></div></article><section style="display: none;" class="js_toggled-replies js_new-reply-container toggled-replies" data-id="1690290080" id="js_toggled-replies-1690290080"></section> <article data-contributors="1" data-authorname="winfredarmandelafuentelati" data-parentid="1690290080" data-id="1690292730" id="reply_1690292730" class="js_reply reply js_goto_post clearfix" data-initialized="true"><header class="no-expand"> <div class="meta-container"> <div data-blogid="234330" data-authorid="5725561713366911042" class="meta-avatar js_author"><div data-dropdownhover-container="" class="floated-container img-30"> <div data-dropdownhover-content="" class="f-dropdown author-hovercard content small whitelisted-links js_avatar-popover" id="1690292730-hovercard"><span class="floated-container img-60 avatar-container js_avatar-container"><span class="avatar"><span class="icon icon-checkmark icon-followed"></span><img alt="winfredarmandelafuentelati" data-src="http://i.kinja-img.com/gawker-media/image/upload/c_fill,fl_progressive,g_center,h_120,q_80,w_120/17jcxjgw9pi83png.png" /></span><div data-blogid="234330" data-authorid="5725561713366911042" class="js_follow-controls js_author-follow-controls"><h4>greenarcher02</h4><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Hover card - profile button click');" target="_blank" class="button tiny secondary mrs" href="http://winfredarmandelafuentelati.kinja.com">Profile</a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Hover card - follow button click');" class="button tiny secondary js_followforuser mrs" href="#">Follow</a><a class="button tiny secondary js_unfollowforuser mrs hide" href="#">Unfollow</a></div></span></div> <div data-dropdownhover="1690292730-hovercard" class="avatar avatar-container js_avatar-container"><span class="icon icon-checkmark icon-followed"></span><a href="http://winfredarmandelafuentelati.kinja.com"><span class="img-border"><img src="http://i.kinja-img.com/gawker-media/image/upload/c_fill,fl_progressive,g_center,h_80,q_80,w_80/17jcxjgw9pi83png.png" /></span></a></div><div class="txt"> <span class="display-name author vcard"><a onclick="window.ga('send', 'event', 'byline', 'click', 'permalink');" class="fn url" data-dropdownhover-anchor="1690292730-hovercard" target="_self" href="http://winfredarmandelafuentelati.kinja.com">greenarcher02</a><span class="reply-author replyto-author"><span class="icon icon-arrow-small-right text-light"></span>Patrick Allan</span></span><div class="second-line post-meta"> <span data-publishtime="1425916018531" class="publish-time js_publish_time"><a target="_self" href="http://lifehacker.com/i-am-well-i-was-some-of-it-was-spent-on-impulse-1690292730" class="hover-switch"> <span class="show-on-hover published updated">3/09/15 8:46am</span><span class="hide-on-hover"> 3/09/15 8:46am</span></a></span></div></div></div></div><div class="post-dropdown-ct js_post-dropdown-ct"><ul data-dropdown-content="" data-sourceblogid="17" data-blogid="234330" data-authorid="5725561713366911042" data-starterid="1690268064" data-postid="1690292730" class="f-dropdown proxima js_post-dropdown js_follow-controls js_author-follow-controls whitelisted-links" id="dropdown-1690292730"><li class="js_edit-reply hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-pencil-alt icon-prepend"></i>Edit</a></li><li class="js_delete-post hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-x-circle icon-prepend"></i>Delete</a></li> <li onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - invite click');" class="js_invite-to-post hover-icon hide"><a rel="nofollow" href="#"><i class="icon icon-twitter icon-prepend"></i>Invite</a></li><li class="js_invite-to-post-manually hover-icon hide"><a rel="nofollow" href="#"><i class="icon icon-mail icon-prepend"></i>Invite manually</a></li><li onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - follow user click');" class="js_followforuser hover-icon readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-plus-circle icon-prepend"></i>Follow winfredarmandelafuentelati</a></li><li class="js_unfollowforuser hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-checkmark icon-prepend"></i>Unfollow winfredarmandelafuentelati</a></li><li class="js_followforblog js_approveforblog hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-plus-circle icon-prepend"></i>Follow winfredarmandelafuentelati for Lifehacker</a></li><li class="js_unfollowforblog js_unapproveforblog hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-checkmark icon-prepend"></i>Unfollow winfredarmandelafuentelati for Lifehacker</a></li><li class="js_dismiss hover-icon hide readonly-hide"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Dismiss click');" rel="nofollow" class="dismiss" href="#"><i class="icon icon-prepend notranslate">X</i>Dismiss</a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Undismiss click');" rel="nofollow" class="undismiss hide" href="#"><i class="icon icon-prepend notranslate">X</i>Undismiss</a></li><li data-targetblogname="Lifehacker" data-targetblogid="234330" data-blogid="17" class="js_block hover-icon hide disabled readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-not-circle icon-prepend"></i><span>Block for Lifehacker</span></a></li><li class="js_hide-post hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-not-circle"></i>Hide</a></li><li class="js_flag-post hover-icon readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-flag"></i>Flag</a></li><li class="js_unflag-post unflag-post hover-icon readonly-hide hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-flag"></i>Unflag</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Share to Facebook click');" href="http://facebook.com/sharer.php?u=http%3A%2F%2Flifehacker.com%2Fi-am-well-i-was-some-of-it-was-spent-on-impulse-1690292730" rel="nofollow" class="js_share-post-item facebook hover-icon"><i class="icon icon-facebook icon-prepend"></i>Share to Facebook</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Share to Pinterest', 'click', 'Drop down');" href="http://www.pinterest.com/pin/create/api_other/?url=http%3A%2F%2Flifehacker.com%2Fi-am-well-i-was-some-of-it-was-spent-on-impulse-1690292730&amp;media=http%3A%2F%2Fkinja.com%2Fassets%2Fimages%2Flogos%2Ftouchicons%2Fdefault-touch-icon-200x200.png&amp;description=I%20am.%20Well%2C%20I%20was.....%20Some%20of%20it%20was%20spent%20on%20impulse%20buying%20Ziiiro%20watches%20last%20Valentine%27s%20Day%20lol.%20%3A%28%20So%20I%27m%20saving%20up%2C%20again.%20Sucks%20that%20it%27ll%20get%20delayed%20because%20of%20a%20freaking%20watch." rel="nofollow" class="js_share-post-item pinterest hover-icon"><i class="icon icon-pinterest icon-prepend"></i>Share to Pinterest</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Share to Twitter click');" href="http://twitter.com/share?url=http%3A%2F%2Flifehacker.com%2Fi-am-well-i-was-some-of-it-was-spent-on-impulse-1690292730&amp;text=I%20am." rel="nofollow" class="js_share-post-item twitter hover-icon"><i class="icon icon-twitter icon-prepend"></i>Share to Twitter</a></li><li class="js_go-to-permalink"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Go to permalink click');" href="http://lifehacker.com/i-am-well-i-was-some-of-it-was-spent-on-impulse-1690292730" class="hover-icon"><i class="icon icon-link-alt icon-prepend"></i>Go to permalink</a></li><li class="repostblock js_repostblock hide"></li></ul><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down click');" data-dropdown="dropdown-1690292730" class="button dropdown secondary transparent toggle-30 js_post-menu-toggler post-dropdown-trigger" target="_self" href="#"></a></div></div></header><div class="reply-content post-content blurable whitelisted-links"><p class="first-text">I am. Well, I was..... Some of it was spent on impulse buying Ziiiro watches last Valentine's Day lol. :( So I'm saving up, again. Sucks that it'll get delayed because of a freaking watch.<span class=" read-more-placeholder"></span><span class="readmore-core-decorated"></span></p>
+
+
+
+
+
+
+
+
+
+
+<p>Ugh I feel like I need to read this article everyday.</p></div><div class="reply-tools js_reply-tools"><a title="Recommend" class="js_like recommend-reply readonly-hide" href="#" data-likecount="6"><span class="js_like_count">6</span><span class="icon icon-star icon-append js_like_icon oversized"></span></a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Reply button click');" title="Reply" data-id="1690292730" class="js_reply-to-selected-post reply-link readonly-hide" href="#">Reply</a><div class="js_like-list-container"></div></div><div class="js_reply-flagged reply-flagged hide">Flagged</div><div class="reply-border"></div></article><section style="display: none;" class="js_toggled-replies js_new-reply-container toggled-replies" data-id="1690292730" id="js_toggled-replies-1690292730"></section></div><div class="branch js_branch"> <article data-contributors="1" data-authorname="timgray" data-parentid="1690268064" data-id="1690295877" id="reply_1690295877" class="js_reply reply js_goto_post clearfix" data-initialized="true"><header class="no-expand"> <div class="meta-container"> <div data-blogid="43484" data-authorid="5759050131709445631" class="meta-avatar js_author"><div data-dropdownhover-container="" class="floated-container img-30"> <div data-dropdownhover-content="" class="f-dropdown author-hovercard content small whitelisted-links js_avatar-popover" id="1690295877-hovercard"><span class="floated-container img-60 avatar-container js_avatar-container"><span class="avatar"><span class="icon icon-checkmark icon-followed"></span><img alt="timgray" data-src="http://i.kinja-img.com/gawker-media/image/upload/c_fill,fl_progressive,g_center,h_120,q_80,w_120/17r5ww2lnwctgjpg.jpg" /></span><div data-blogid="43484" data-authorid="5759050131709445631" class="js_follow-controls js_author-follow-controls"><h4>timgray</h4><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Hover card - profile button click');" target="_blank" class="button tiny secondary mrs" href="http://timgray.kinja.com">Profile</a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Hover card - follow button click');" class="button tiny secondary js_followforuser mrs" href="#">Follow</a><a class="button tiny secondary js_unfollowforuser mrs hide" href="#">Unfollow</a></div></span></div> <div data-dropdownhover="1690295877-hovercard" class="avatar avatar-container js_avatar-container"><span class="icon icon-checkmark icon-followed"></span><a href="http://timgray.kinja.com"><span class="img-border"><img src="http://i.kinja-img.com/gawker-media/image/upload/c_fill,fl_progressive,g_center,h_80,q_80,w_80/17r5ww2lnwctgjpg.jpg" /></span></a></div><div class="txt"> <span class="display-name author vcard"><a onclick="window.ga('send', 'event', 'byline', 'click', 'permalink');" class="fn url" data-dropdownhover-anchor="1690295877-hovercard" target="_self" href="http://timgray.kinja.com">timgray</a><span class="reply-author replyto-author"><span class="icon icon-arrow-small-right text-light"></span>Patrick Allan</span></span><div class="second-line post-meta"> <span data-publishtime="1425916808063" class="publish-time js_publish_time"><a target="_self" href="http://lifehacker.com/i-love-the-suggestion-of-going-camping-to-get-away-from-1690295877" class="hover-switch"> <span class="show-on-hover published updated">3/09/15 9:00am</span><span class="hide-on-hover"> 3/09/15 9:00am</span></a></span></div></div></div></div><div class="post-dropdown-ct js_post-dropdown-ct"><ul data-dropdown-content="" data-sourceblogid="17" data-blogid="43484" data-authorid="5759050131709445631" data-starterid="1690268064" data-postid="1690295877" class="f-dropdown proxima js_post-dropdown js_follow-controls js_author-follow-controls whitelisted-links" id="dropdown-1690295877"><li class="js_edit-reply hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-pencil-alt icon-prepend"></i>Edit</a></li><li class="js_delete-post hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-x-circle icon-prepend"></i>Delete</a></li> <li onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - invite click');" class="js_invite-to-post hover-icon hide"><a rel="nofollow" href="#"><i class="icon icon-twitter icon-prepend"></i>Invite</a></li><li class="js_invite-to-post-manually hover-icon hide"><a rel="nofollow" href="#"><i class="icon icon-mail icon-prepend"></i>Invite manually</a></li><li onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - follow user click');" class="js_followforuser hover-icon readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-plus-circle icon-prepend"></i>Follow timgray</a></li><li class="js_unfollowforuser hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-checkmark icon-prepend"></i>Unfollow timgray</a></li><li class="js_followforblog js_approveforblog hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-plus-circle icon-prepend"></i>Follow timgray for Lifehacker</a></li><li class="js_unfollowforblog js_unapproveforblog hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-checkmark icon-prepend"></i>Unfollow timgray for Lifehacker</a></li><li class="js_dismiss hover-icon hide readonly-hide"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Dismiss click');" rel="nofollow" class="dismiss" href="#"><i class="icon icon-prepend notranslate">X</i>Dismiss</a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Undismiss click');" rel="nofollow" class="undismiss hide" href="#"><i class="icon icon-prepend notranslate">X</i>Undismiss</a></li><li data-targetblogname="Lifehacker" data-targetblogid="43484" data-blogid="17" class="js_block hover-icon hide disabled readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-not-circle icon-prepend"></i><span>Block for Lifehacker</span></a></li><li class="js_hide-post hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-not-circle"></i>Hide</a></li><li class="js_flag-post hover-icon readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-flag"></i>Flag</a></li><li class="js_unflag-post unflag-post hover-icon readonly-hide hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-flag"></i>Unflag</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Share to Facebook click');" href="http://facebook.com/sharer.php?u=http%3A%2F%2Flifehacker.com%2Fi-love-the-suggestion-of-going-camping-to-get-away-from-1690295877" rel="nofollow" class="js_share-post-item facebook hover-icon"><i class="icon icon-facebook icon-prepend"></i>Share to Facebook</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Share to Pinterest', 'click', 'Drop down');" href="http://www.pinterest.com/pin/create/api_other/?url=http%3A%2F%2Flifehacker.com%2Fi-love-the-suggestion-of-going-camping-to-get-away-from-1690295877&amp;media=http%3A%2F%2Fkinja.com%2Fassets%2Fimages%2Flogos%2Ftouchicons%2Fdefault-touch-icon-200x200.png&amp;description=I%20love%20the%20suggestion%20of%20going%20camping%20to%20get%20away%20from%20stuff...%20You%20do%20realize%20that%20camping%20gear%20can%20be%20more%20expensive%20than%20electronics%20and%20gadgets....%20Now%20I%20need%20to%20buy%20a%20%244500%20tent%20and%20%241200%20hiking%20shoes%20to%20get%20away%20from%20things...." rel="nofollow" class="js_share-post-item pinterest hover-icon"><i class="icon icon-pinterest icon-prepend"></i>Share to Pinterest</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Share to Twitter click');" href="http://twitter.com/share?url=http%3A%2F%2Flifehacker.com%2Fi-love-the-suggestion-of-going-camping-to-get-away-from-1690295877&amp;text=I%20love%20the%20suggestion%20of%20going%20camping%20to%20get%20away%20from%20stuff." rel="nofollow" class="js_share-post-item twitter hover-icon"><i class="icon icon-twitter icon-prepend"></i>Share to Twitter</a></li><li class="js_go-to-permalink"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Go to permalink click');" href="http://lifehacker.com/i-love-the-suggestion-of-going-camping-to-get-away-from-1690295877" class="hover-icon"><i class="icon icon-link-alt icon-prepend"></i>Go to permalink</a></li><li class="repostblock js_repostblock hide"></li></ul><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down click');" data-dropdown="dropdown-1690295877" class="button dropdown secondary transparent toggle-30 js_post-menu-toggler post-dropdown-trigger" target="_self" href="#"></a></div></div></header><div class="reply-content post-content blurable whitelisted-links"><p class="first-text">I love the suggestion of going camping to get away from stuff... You do realize that camping gear can be more expensive than electronics and gadgets.... Now I need to buy a $4500 tent and $1200 hiking shoes to get away from things....<span class=" read-more-placeholder"></span><span class="readmore-core-decorated"></span></p>
+
+
+
+
+
+
+
+
+
+
+<p>Oh and I have to have all matching camping clothing from North Face... I need to go shopping.</p></div><div class="reply-tools js_reply-tools"><a title="Show replies" data-id="1690295877" class="js_toggle-descendants reply-count" href="#">4<span class="icon icon-bubble-round oversized js_bubble-icon"></span></a><a title="Recommend" class="js_like recommend-reply readonly-hide" href="#" data-likecount="27"><span class="js_like_count">27</span><span class="icon icon-star icon-append js_like_icon oversized"></span></a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Reply button click');" title="Reply" data-id="1690295877" class="js_reply-to-selected-post reply-link readonly-hide" href="#">Reply</a><div class="js_like-list-container"></div></div><div class="js_reply-flagged reply-flagged hide">Flagged</div><div class="reply-border"></div></article><section style="display: none;" class="js_toggled-replies js_new-reply-container toggled-replies" data-id="1690295877" id="js_toggled-replies-1690295877"></section> <article data-contributors="1" data-authorname="patrickallan" data-parentid="1690295877" data-id="1690297822" id="reply_1690297822" class="js_reply reply js_goto_post clearfix" data-initialized="true"><header class="no-expand"> <div class="meta-container"> <div data-blogid="602884922" data-authorid="602884910" class="meta-avatar js_author"><div data-dropdownhover-container="" class="floated-container img-30"> <div data-dropdownhover-content="" class="f-dropdown author-hovercard content small whitelisted-links js_avatar-popover" id="1690297822-hovercard"><span class="floated-container img-60 avatar-container js_avatar-container"><span class="avatar"><span class="icon icon-checkmark icon-followed"></span><img alt="PatrickAllan" data-src="http://i.kinja-img.com/gawker-media/image/upload/c_fill,fl_progressive,g_center,h_120,q_80,w_120/gzonxhes6bl4p9k4gzpl.jpg" /></span><div data-blogid="602884922" data-authorid="602884910" class="js_follow-controls js_author-follow-controls"><h4>Patrick Allan</h4><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Hover card - profile button click');" target="_blank" class="button tiny secondary mrs" href="http://patrickallan.kinja.com">Profile</a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Hover card - follow button click');" class="button tiny secondary js_followforuser mrs" href="#">Follow</a><a class="button tiny secondary js_unfollowforuser mrs hide" href="#">Unfollow</a></div></span></div> <div data-dropdownhover="1690297822-hovercard" class="avatar avatar-container js_avatar-container"><span class="icon icon-checkmark icon-followed"></span><a href="http://patrickallan.kinja.com"><span class="img-border"><img src="http://i.kinja-img.com/gawker-media/image/upload/c_fill,fl_progressive,g_center,h_80,q_80,w_80/gzonxhes6bl4p9k4gzpl.jpg" /></span></a></div><div class="txt"> <span class="display-name author vcard"><a onclick="window.ga('send', 'event', 'byline', 'click', 'permalink');" class="fn url" data-dropdownhover-anchor="1690297822-hovercard" target="_self" href="http://patrickallan.kinja.com">Patrick Allan</a><span class="reply-author replyto-author"><span class="icon icon-arrow-small-right text-light"></span>timgray</span></span><div class="second-line post-meta"> <span data-publishtime="1425917276269" class="publish-time js_publish_time"><a target="_self" href="http://lifehacker.com/haha-yeah-some-camping-gear-can-be-pretty-pricey-but-1690297822" class="hover-switch"> <span class="show-on-hover published updated">3/09/15 9:07am</span><span class="hide-on-hover"> 3/09/15 9:07am</span></a></span></div></div></div></div><div class="post-dropdown-ct js_post-dropdown-ct"><ul data-dropdown-content="" data-sourceblogid="17" data-blogid="602884922" data-authorid="602884910" data-starterid="1690268064" data-postid="1690297822" class="f-dropdown proxima js_post-dropdown js_follow-controls js_author-follow-controls whitelisted-links" id="dropdown-1690297822"><li class="js_edit-reply hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-pencil-alt icon-prepend"></i>Edit</a></li><li class="js_delete-post hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-x-circle icon-prepend"></i>Delete</a></li> <li onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - invite click');" class="js_invite-to-post hover-icon hide"><a rel="nofollow" href="#"><i class="icon icon-twitter icon-prepend"></i>Invite</a></li><li class="js_invite-to-post-manually hover-icon hide"><a rel="nofollow" href="#"><i class="icon icon-mail icon-prepend"></i>Invite manually</a></li><li onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - follow user click');" class="js_followforuser hover-icon readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-plus-circle icon-prepend"></i>Follow patrickallan</a></li><li class="js_unfollowforuser hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-checkmark icon-prepend"></i>Unfollow patrickallan</a></li><li class="js_followforblog js_approveforblog hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-plus-circle icon-prepend"></i>Follow patrickallan for Lifehacker</a></li><li class="js_unfollowforblog js_unapproveforblog hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-checkmark icon-prepend"></i>Unfollow patrickallan for Lifehacker</a></li><li class="js_dismiss hover-icon hide readonly-hide"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Dismiss click');" rel="nofollow" class="dismiss" href="#"><i class="icon icon-prepend notranslate">X</i>Dismiss</a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Undismiss click');" rel="nofollow" class="undismiss hide" href="#"><i class="icon icon-prepend notranslate">X</i>Undismiss</a></li><li data-targetblogname="Lifehacker" data-targetblogid="602884922" data-blogid="17" class="js_block hover-icon hide disabled readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-not-circle icon-prepend"></i><span>Block for Lifehacker</span></a></li><li class="js_hide-post hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-not-circle"></i>Hide</a></li><li class="js_flag-post hover-icon readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-flag"></i>Flag</a></li><li class="js_unflag-post unflag-post hover-icon readonly-hide hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-flag"></i>Unflag</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Share to Facebook click');" href="http://facebook.com/sharer.php?u=http%3A%2F%2Flifehacker.com%2Fhaha-yeah-some-camping-gear-can-be-pretty-pricey-but-1690297822" rel="nofollow" class="js_share-post-item facebook hover-icon"><i class="icon icon-facebook icon-prepend"></i>Share to Facebook</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Share to Pinterest', 'click', 'Drop down');" href="http://www.pinterest.com/pin/create/api_other/?url=http%3A%2F%2Flifehacker.com%2Fhaha-yeah-some-camping-gear-can-be-pretty-pricey-but-1690297822&amp;media=http%3A%2F%2Fkinja.com%2Fassets%2Fimages%2Flogos%2Ftouchicons%2Fdefault-touch-icon-200x200.png&amp;description=Haha%2C%20yeah%2C%20some%20camping%20gear%20can%20be%20pretty%20pricey%2C%20but%20I%20just%20went%20this%20past%20weekend%20with%20a%20rented%20tent%20and%20some%20friends%2C%20and%20it%20didn%27t%20cost%20much.%20Just%20got%20to%20avoid%20the%20%22I%20want%20to%20look%20like%20an%20outdoorsy%20camper%22%20style%20I%20guess%20%3AP" rel="nofollow" class="js_share-post-item pinterest hover-icon"><i class="icon icon-pinterest icon-prepend"></i>Share to Pinterest</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Share to Twitter click');" href="http://twitter.com/share?url=http%3A%2F%2Flifehacker.com%2Fhaha-yeah-some-camping-gear-can-be-pretty-pricey-but-1690297822&amp;text=Haha%2C%20yeah%2C%20some%20camping%20gear%20can%20be%20pretty%20pricey%2C%20but%20I%20just%20went%20this%20past%20weekend%20with%20a%20rented%20tent%20and%20some%20friends%2C%20and%20it%20didn%27t%20cost%20much." rel="nofollow" class="js_share-post-item twitter hover-icon"><i class="icon icon-twitter icon-prepend"></i>Share to Twitter</a></li><li class="js_go-to-permalink"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Go to permalink click');" href="http://lifehacker.com/haha-yeah-some-camping-gear-can-be-pretty-pricey-but-1690297822" class="hover-icon"><i class="icon icon-link-alt icon-prepend"></i>Go to permalink</a></li><li class="repostblock js_repostblock hide"></li></ul><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down click');" data-dropdown="dropdown-1690297822" class="button dropdown secondary transparent toggle-30 js_post-menu-toggler post-dropdown-trigger" target="_self" href="#"></a></div></div></header><div class="reply-content post-content blurable whitelisted-links"><p class="first-text">Haha, yeah, some camping gear can be pretty pricey, but I just went this past weekend with a rented tent and some friends, and it didn't cost much. Just got to avoid the "I want to look like an outdoorsy camper" style I guess :P<span class=" read-more-placeholder"></span><span class="readmore-core-decorated"></span></p></div><div class="reply-tools js_reply-tools"><a title="Show replies" data-id="1690297822" class="js_toggle-descendants reply-count" href="#">1<span class="icon icon-bubble-round oversized js_bubble-icon"></span></a><a title="Recommend" class="js_like recommend-reply readonly-hide" href="#" data-likecount="8"><span class="js_like_count">8</span><span class="icon icon-star icon-append js_like_icon oversized"></span></a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Reply button click');" title="Reply" data-id="1690297822" class="js_reply-to-selected-post reply-link readonly-hide" href="#">Reply</a><div class="js_like-list-container"></div></div><div class="js_reply-flagged reply-flagged hide">Flagged</div><div class="reply-border"></div></article><section style="display: none;" class="js_toggled-replies js_new-reply-container toggled-replies" data-id="1690297822" id="js_toggled-replies-1690297822"></section> <article data-contributors="1" data-authorname="timgray" data-parentid="1690297822" data-id="1690302406" id="reply_1690302406" class="js_reply reply js_goto_post clearfix" data-initialized="true"><header class="no-expand"> <div class="meta-container"> <div data-blogid="43484" data-authorid="5759050131709445631" class="meta-avatar js_author"><div data-dropdownhover-container="" class="floated-container img-30"> <div data-dropdownhover-content="" class="f-dropdown author-hovercard content small whitelisted-links js_avatar-popover" id="1690302406-hovercard"><span class="floated-container img-60 avatar-container js_avatar-container"><span class="avatar"><span class="icon icon-checkmark icon-followed"></span><img alt="timgray" data-src="http://i.kinja-img.com/gawker-media/image/upload/c_fill,fl_progressive,g_center,h_120,q_80,w_120/17r5ww2lnwctgjpg.jpg" /></span><div data-blogid="43484" data-authorid="5759050131709445631" class="js_follow-controls js_author-follow-controls"><h4>timgray</h4><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Hover card - profile button click');" target="_blank" class="button tiny secondary mrs" href="http://timgray.kinja.com">Profile</a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Hover card - follow button click');" class="button tiny secondary js_followforuser mrs" href="#">Follow</a><a class="button tiny secondary js_unfollowforuser mrs hide" href="#">Unfollow</a></div></span></div> <div data-dropdownhover="1690302406-hovercard" class="avatar avatar-container js_avatar-container"><span class="icon icon-checkmark icon-followed"></span><a href="http://timgray.kinja.com"><span class="img-border"><img src="http://i.kinja-img.com/gawker-media/image/upload/c_fill,fl_progressive,g_center,h_80,q_80,w_80/17r5ww2lnwctgjpg.jpg" /></span></a></div><div class="txt"> <span class="display-name author vcard"><a onclick="window.ga('send', 'event', 'byline', 'click', 'permalink');" class="fn url" data-dropdownhover-anchor="1690302406-hovercard" target="_self" href="http://timgray.kinja.com">timgray</a><span class="reply-author replyto-author"><span class="icon icon-arrow-small-right text-light"></span>Patrick Allan</span></span><div class="second-line post-meta"> <span data-publishtime="1425918339646" class="publish-time js_publish_time"><a target="_self" href="http://lifehacker.com/my-camping-gear-addiction-is-one-of-those-that-i-need-t-1690302406" class="hover-switch"> <span class="show-on-hover published updated">3/09/15 9:25am</span><span class="hide-on-hover"> 3/09/15 9:25am</span></a></span></div></div></div></div><div class="post-dropdown-ct js_post-dropdown-ct"><ul data-dropdown-content="" data-sourceblogid="17" data-blogid="43484" data-authorid="5759050131709445631" data-starterid="1690268064" data-postid="1690302406" class="f-dropdown proxima js_post-dropdown js_follow-controls js_author-follow-controls whitelisted-links" id="dropdown-1690302406"><li class="js_edit-reply hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-pencil-alt icon-prepend"></i>Edit</a></li><li class="js_delete-post hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-x-circle icon-prepend"></i>Delete</a></li> <li onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - invite click');" class="js_invite-to-post hover-icon hide"><a rel="nofollow" href="#"><i class="icon icon-twitter icon-prepend"></i>Invite</a></li><li class="js_invite-to-post-manually hover-icon hide"><a rel="nofollow" href="#"><i class="icon icon-mail icon-prepend"></i>Invite manually</a></li><li onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - follow user click');" class="js_followforuser hover-icon readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-plus-circle icon-prepend"></i>Follow timgray</a></li><li class="js_unfollowforuser hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-checkmark icon-prepend"></i>Unfollow timgray</a></li><li class="js_followforblog js_approveforblog hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-plus-circle icon-prepend"></i>Follow timgray for Lifehacker</a></li><li class="js_unfollowforblog js_unapproveforblog hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-checkmark icon-prepend"></i>Unfollow timgray for Lifehacker</a></li><li class="js_dismiss hover-icon hide readonly-hide"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Dismiss click');" rel="nofollow" class="dismiss" href="#"><i class="icon icon-prepend notranslate">X</i>Dismiss</a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Undismiss click');" rel="nofollow" class="undismiss hide" href="#"><i class="icon icon-prepend notranslate">X</i>Undismiss</a></li><li data-targetblogname="Lifehacker" data-targetblogid="43484" data-blogid="17" class="js_block hover-icon hide disabled readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-not-circle icon-prepend"></i><span>Block for Lifehacker</span></a></li><li class="js_hide-post hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-not-circle"></i>Hide</a></li><li class="js_flag-post hover-icon readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-flag"></i>Flag</a></li><li class="js_unflag-post unflag-post hover-icon readonly-hide hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-flag"></i>Unflag</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Share to Facebook click');" href="http://facebook.com/sharer.php?u=http%3A%2F%2Flifehacker.com%2Fmy-camping-gear-addiction-is-one-of-those-that-i-need-t-1690302406" rel="nofollow" class="js_share-post-item facebook hover-icon"><i class="icon icon-facebook icon-prepend"></i>Share to Facebook</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Share to Pinterest', 'click', 'Drop down');" href="http://www.pinterest.com/pin/create/api_other/?url=http%3A%2F%2Flifehacker.com%2Fmy-camping-gear-addiction-is-one-of-those-that-i-need-t-1690302406&amp;media=http%3A%2F%2Fkinja.com%2Fassets%2Fimages%2Flogos%2Ftouchicons%2Fdefault-touch-icon-200x200.png&amp;description=My%20camping%20gear%20addiction%20is%20one%20of%20those%20that%20I%20need%20to%20do%20some%20decluttering%20on.%20I%20have%20a%20really%20cool%202%20person%20Tent%20Cot%20that%20sound%20like%20awesome%20ideas%20until%20you%20actually%20see%20one%20in%20person." rel="nofollow" class="js_share-post-item pinterest hover-icon"><i class="icon icon-pinterest icon-prepend"></i>Share to Pinterest</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Share to Twitter click');" href="http://twitter.com/share?url=http%3A%2F%2Flifehacker.com%2Fmy-camping-gear-addiction-is-one-of-those-that-i-need-t-1690302406&amp;text=My%20camping%20gear%20addiction%20is%20one%20of%20those%20that%20I%20need%20to%20do%20some%20decluttering%20on." rel="nofollow" class="js_share-post-item twitter hover-icon"><i class="icon icon-twitter icon-prepend"></i>Share to Twitter</a></li><li class="js_go-to-permalink"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Go to permalink click');" href="http://lifehacker.com/my-camping-gear-addiction-is-one-of-those-that-i-need-t-1690302406" class="hover-icon"><i class="icon icon-link-alt icon-prepend"></i>Go to permalink</a></li><li class="repostblock js_repostblock hide"></li></ul><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down click');" data-dropdown="dropdown-1690302406" class="button dropdown secondary transparent toggle-30 js_post-menu-toggler post-dropdown-trigger" target="_self" href="#"></a></div></div></header><div class="reply-content post-content blurable whitelisted-links"><p class="first-text">My camping gear addiction is one of those that I need to do some decluttering on. I have a really cool 2 person Tent Cot that sound like awesome ideas until you actually see one in person.<span class=" read-more-placeholder"></span><span class="readmore-core-decorated"></span></p>
+
+
+
+
+
+
+
+
+
+
+<p><a onclick="window.ga('send', 'event', 'Commerce', 'lifehacker - 1690302406', 'B000I6420U');" data-amazonsubtag="[p|1690302406[a|B000I6420U[au|5759050131709445631" data-amazontag="lifehackeramzn-20" data-amazonasin="B000I6420U" target="_blank" href="http://www.amazon.com/Kamp-Rite-TB343-Double-Tent-Cot/dp/B000I6420U?tag=lifehackeramzn-20&amp;ascsubtag=[t%7Ccomment[p%7C1690302406[a%7CB000I6420U[au%7C5759050131709445631">http://www.amazon.com/Kamp-Rite-TB34...</a></p>
+
+
+
+
+
+
+
+
+
+
+<p>They weigh nearly 90 pounds and will not fit in the back of anything but a full size SUV with the seats folded down or a pickup truck.</p>
+
+
+
+
+
+
+
+
+
+
+<p>So it has sat in it's box in my basement for the past 3 years as a testament to my UPS guys hernia when he delivered it.</p></div><div class="reply-tools js_reply-tools"><a title="Recommend" class="js_like recommend-reply readonly-hide" href="#" data-likecount="5"><span class="js_like_count">5</span><span class="icon icon-star icon-append js_like_icon oversized"></span></a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Reply button click');" title="Reply" data-id="1690302406" class="js_reply-to-selected-post reply-link readonly-hide" href="#">Reply</a><div class="js_like-list-container"></div></div><div class="js_reply-flagged reply-flagged hide">Flagged</div><div class="reply-border"></div></article><section style="display: none;" class="js_toggled-replies js_new-reply-container toggled-replies" data-id="1690302406" id="js_toggled-replies-1690302406"></section> <article data-contributors="1" data-authorname="patrickallan" data-parentid="1690302406" data-id="1690305439" id="reply_1690305439" class="js_reply reply js_goto_post clearfix" data-initialized="true"><header class="no-expand"> <div class="meta-container"> <div data-blogid="602884922" data-authorid="602884910" class="meta-avatar js_author"><div data-dropdownhover-container="" class="floated-container img-30"> <div data-dropdownhover-content="" class="f-dropdown author-hovercard content small whitelisted-links js_avatar-popover" id="1690305439-hovercard"><span class="floated-container img-60 avatar-container js_avatar-container"><span class="avatar"><span class="icon icon-checkmark icon-followed"></span><img alt="PatrickAllan" data-src="http://i.kinja-img.com/gawker-media/image/upload/c_fill,fl_progressive,g_center,h_120,q_80,w_120/gzonxhes6bl4p9k4gzpl.jpg" /></span><div data-blogid="602884922" data-authorid="602884910" class="js_follow-controls js_author-follow-controls"><h4>Patrick Allan</h4><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Hover card - profile button click');" target="_blank" class="button tiny secondary mrs" href="http://patrickallan.kinja.com">Profile</a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Hover card - follow button click');" class="button tiny secondary js_followforuser mrs" href="#">Follow</a><a class="button tiny secondary js_unfollowforuser mrs hide" href="#">Unfollow</a></div></span></div> <div data-dropdownhover="1690305439-hovercard" class="avatar avatar-container js_avatar-container"><span class="icon icon-checkmark icon-followed"></span><a href="http://patrickallan.kinja.com"><span class="img-border"><img src="http://i.kinja-img.com/gawker-media/image/upload/c_fill,fl_progressive,g_center,h_80,q_80,w_80/gzonxhes6bl4p9k4gzpl.jpg" /></span></a></div><div class="txt"> <span class="display-name author vcard"><a onclick="window.ga('send', 'event', 'byline', 'click', 'permalink');" class="fn url" data-dropdownhover-anchor="1690305439-hovercard" target="_self" href="http://patrickallan.kinja.com">Patrick Allan</a><span class="reply-author replyto-author"><span class="icon icon-arrow-small-right text-light"></span>timgray</span></span><div class="second-line post-meta"> <span data-publishtime="1425919022284" class="publish-time js_publish_time"><a target="_self" href="http://lifehacker.com/lol-that-does-sound-like-a-cool-idea-but-youre-right-1690305439" class="hover-switch"> <span class="show-on-hover published updated">3/09/15 9:37am</span><span class="hide-on-hover"> 3/09/15 9:37am</span></a></span></div></div></div></div><div class="post-dropdown-ct js_post-dropdown-ct"><ul data-dropdown-content="" data-sourceblogid="17" data-blogid="602884922" data-authorid="602884910" data-starterid="1690268064" data-postid="1690305439" class="f-dropdown proxima js_post-dropdown js_follow-controls js_author-follow-controls whitelisted-links" id="dropdown-1690305439"><li class="js_edit-reply hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-pencil-alt icon-prepend"></i>Edit</a></li><li class="js_delete-post hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-x-circle icon-prepend"></i>Delete</a></li> <li onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - invite click');" class="js_invite-to-post hover-icon hide"><a rel="nofollow" href="#"><i class="icon icon-twitter icon-prepend"></i>Invite</a></li><li class="js_invite-to-post-manually hover-icon hide"><a rel="nofollow" href="#"><i class="icon icon-mail icon-prepend"></i>Invite manually</a></li><li onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - follow user click');" class="js_followforuser hover-icon readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-plus-circle icon-prepend"></i>Follow patrickallan</a></li><li class="js_unfollowforuser hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-checkmark icon-prepend"></i>Unfollow patrickallan</a></li><li class="js_followforblog js_approveforblog hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-plus-circle icon-prepend"></i>Follow patrickallan for Lifehacker</a></li><li class="js_unfollowforblog js_unapproveforblog hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-checkmark icon-prepend"></i>Unfollow patrickallan for Lifehacker</a></li><li class="js_dismiss hover-icon hide readonly-hide"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Dismiss click');" rel="nofollow" class="dismiss" href="#"><i class="icon icon-prepend notranslate">X</i>Dismiss</a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Undismiss click');" rel="nofollow" class="undismiss hide" href="#"><i class="icon icon-prepend notranslate">X</i>Undismiss</a></li><li data-targetblogname="Lifehacker" data-targetblogid="602884922" data-blogid="17" class="js_block hover-icon hide disabled readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-not-circle icon-prepend"></i><span>Block for Lifehacker</span></a></li><li class="js_hide-post hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-not-circle"></i>Hide</a></li><li class="js_flag-post hover-icon readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-flag"></i>Flag</a></li><li class="js_unflag-post unflag-post hover-icon readonly-hide hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-flag"></i>Unflag</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Share to Facebook click');" href="http://facebook.com/sharer.php?u=http%3A%2F%2Flifehacker.com%2Flol-that-does-sound-like-a-cool-idea-but-youre-right-1690305439" rel="nofollow" class="js_share-post-item facebook hover-icon"><i class="icon icon-facebook icon-prepend"></i>Share to Facebook</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Share to Pinterest', 'click', 'Drop down');" href="http://www.pinterest.com/pin/create/api_other/?url=http%3A%2F%2Flifehacker.com%2Flol-that-does-sound-like-a-cool-idea-but-youre-right-1690305439&amp;media=http%3A%2F%2Fkinja.com%2Fassets%2Fimages%2Flogos%2Ftouchicons%2Fdefault-touch-icon-200x200.png&amp;description=lol%21%20That%20does%20sound%20like%20a%20cool%20idea%2C%20but%20you%27re%20right%2C%20what%27s%20the%20point%20if%20you%20can%27t%20transport%20it%20easily%3F%20I%20wonder%20if%20someone%20makes%20a%20lighter%2C%20less%20cumbersome%20model..." rel="nofollow" class="js_share-post-item pinterest hover-icon"><i class="icon icon-pinterest icon-prepend"></i>Share to Pinterest</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Share to Twitter click');" href="http://twitter.com/share?url=http%3A%2F%2Flifehacker.com%2Flol-that-does-sound-like-a-cool-idea-but-youre-right-1690305439&amp;text=lol%21%20That%20does%20sound%20like%20a%20cool%20idea%2C%20but%20you%27re%20right%2C%20what%27s%20the%20point%20if%20you%20can%27t%20transport%20it%20easily%3F%20I%20wonder%20if%20someone%20makes%20a%20lighter%2C%20less%20cumbersome%20model." rel="nofollow" class="js_share-post-item twitter hover-icon"><i class="icon icon-twitter icon-prepend"></i>Share to Twitter</a></li><li class="js_go-to-permalink"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Go to permalink click');" href="http://lifehacker.com/lol-that-does-sound-like-a-cool-idea-but-youre-right-1690305439" class="hover-icon"><i class="icon icon-link-alt icon-prepend"></i>Go to permalink</a></li><li class="repostblock js_repostblock hide"></li></ul><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down click');" data-dropdown="dropdown-1690305439" class="button dropdown secondary transparent toggle-30 js_post-menu-toggler post-dropdown-trigger" target="_self" href="#"></a></div></div></header><div class="reply-content post-content blurable whitelisted-links"><p class="first-text">lol! That does sound like a cool idea, but you're right, what's the point if you can't transport it easily? I wonder if someone makes a lighter, less cumbersome model...<span class=" read-more-placeholder"></span><span class="readmore-core-decorated"></span></p></div><div class="reply-tools js_reply-tools"><a title="Recommend" class="js_like recommend-reply readonly-hide" href="#" data-likecount="1"><span class="js_like_count">1</span><span class="icon icon-star icon-append js_like_icon oversized"></span></a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Reply button click');" title="Reply" data-id="1690305439" class="js_reply-to-selected-post reply-link readonly-hide" href="#">Reply</a><div class="js_like-list-container"></div></div><div class="js_reply-flagged reply-flagged hide">Flagged</div><div class="reply-border"></div></article><section style="display: none;" class="js_toggled-replies js_new-reply-container toggled-replies" data-id="1690305439" id="js_toggled-replies-1690305439"></section></div></div><div class="js_branch-followchat branch-list" data-view="follower"></div><div class="js_branch-scorechat branch-list" data-view="popular"></div><div class="js_branch-userchat branch-list" data-view="user"></div><div class="js_branch-grid other-threads"><h6 class="section-header js_header hide">Hosts of other popular chats</h6><div class="row js_grid"></div></div><div class="js_replymessage hide createnewreply"></div><div class="js_reply-loading-progress reply-spinner hide"> <span class="spinner bounce"><span class="one"></span><span class="two"></span><span class="three"></span></span></div><div class="js_discussionlinks discussionlinks row hide"></div><div class="js_load-more"></div> <div class="text-right reply-views js_reply-views"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Popular Chat click' );" href="http://lifehacker.com/how-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064" class="js_reload-groupchats hide">View Patrick Allan's discussions</a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'All Replies click' );" href="http://lifehacker.com/how-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064/all" class="js_allview">View all 146 replies</a></div></div></div></section><script type="text/javascript">(function () {window.kinja = window.kinja || {}; window.kinja.postMeta = JSON.parse(decodeURIComponent( '%7B%22post%22%3A%7B%22id%22%3A1690268064%2C%22headline%22%3A%22How%20to%20Program%20Your%20Mind%20to%20Stop%20Buying%20Crap%20You%20Don%E2%80%99t%20Need%22%2C%22permalink%22%3A%22http%3A%2F%2Flifehacker.com%2Fhow-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064%22%2C%22first100Characters%22%3A%22We%20all%20buy%20things%20from%20time%20to%20time%20that%20we%20don%27t%20really%20need.%20It%27s%20okay%20to%20appeal%20to%20your%20wants%20eve%22%2C%22firstSentence%22%3A%22We%20all%20buy%20things%20from%20time%20to%20time%20that%20we%20don%27t%20really%20need.%20%22%2C%22facebookImage%22%3A%7B%22src%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fs--hqqO9fze--%2Fn1s6c2m6kc07iqdyllj6.jpg%22%2C%22uri%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fn1s6c2m6kc07iqdyllj6.jpg%22%2C%22id%22%3A%22n1s6c2m6kc07iqdyllj6%22%2C%22width%22%3A636%2C%22height%22%3A358%2C%22format%22%3A%22jpg%22%2C%22recommended%22%3Atrue%7D%2C%22twitterCardType%22%3A%22summary_large_image%22%2C%22plaintext%22%3A%22We%20all%20buy%20things%20from%20time%20to%20time%20that%20we%20don%27t%20really%20need.%20It%27s%20okay%20to%20appeal%20to%20your%20wants%20every%20once%20in%20a%20while%2C%20as%20long%20as%20you%27re%20in%20control.%20If%20you%20struggle%20with%20clutter%2C%20impulse%20buys%2C%20and%20buyer%27s%20remorse%2C%20here%27s%20how%20to%20put%20your%20mind%20in%20the%20right%20place%20before%20you%20even%20set%20foot%20in%20a%20store.%22%2C%22authorScreenName%22%3A%22PatrickAllan%22%2C%22tags%22%3A%5B%7B%22id%22%3A1183447227%2C%22name%22%3A%22money%22%2C%22desc%22%3A%22money%22%2C%22urlName%22%3A%22money%22%7D%2C%7B%22id%22%3A1183572883%2C%22name%22%3A%22shopping%22%2C%22desc%22%3A%22shopping%22%2C%22urlName%22%3A%22shopping%22%7D%2C%7B%22id%22%3A1183447223%2C%22name%22%3A%22saving%20money%22%2C%22desc%22%3A%22saving%20money%22%2C%22urlName%22%3A%22saving-money%22%7D%2C%7B%22id%22%3A226344621%2C%22name%22%3A%22personal%20finances%22%2C%22desc%22%3A%22personal%20finances%22%2C%22urlName%22%3A%22personal-finances%22%7D%2C%7B%22id%22%3A1203987700%2C%22name%22%3A%22mind%20hacks%22%2C%22desc%22%3A%22mind%20hacks%22%2C%22urlName%22%3A%22mind-hacks%22%7D%2C%7B%22id%22%3A1217291859%2C%22name%22%3A%22habits%22%2C%22desc%22%3A%22habits%22%2C%22urlName%22%3A%22habits%22%7D%2C%7B%22id%22%3A450629315%2C%22name%22%3A%22budget%22%2C%22desc%22%3A%22budget%22%2C%22urlName%22%3A%22budget%22%7D%2C%7B%22id%22%3A1178784105%2C%22name%22%3A%22psychology%22%2C%22desc%22%3A%22psychology%22%2C%22urlName%22%3A%22psychology%22%7D%2C%7B%22id%22%3A1679306583%2C%22name%22%3A%22editors%20picks%22%2C%22desc%22%3A%22editor%27s%20picks%22%2C%22urlName%22%3A%22editors-picks%22%7D%5D%2C%22publishTimeMillis%22%3A1425913200851%2C%22adZone%22%3A%22partners%22%2C%22sponsored%22%3Afalse%2C%22blogs%22%3A%5B%7B%22id%22%3A602884922%2C%22name%22%3A%22patrickallan%22%2C%22displayName%22%3A%22Patrick%20Allan%20Blog%22%2C%22canonicalHost%22%3A%22patrickallan.kinja.com%22%2C%22hosts%22%3A%5B%5D%2C%22status%22%3A%22ENABLED%22%2C%22createTimeMillis%22%3Anull%2C%22lastUpdateTimeMillis%22%3Anull%2C%22createdById%22%3Anull%2C%22ownerId%22%3Anull%2C%22description%22%3Anull%2C%22descriptionHtml%22%3Anull%2C%22mergedProperties%22%3Anull%2C%22showLikesInLatest%22%3Anull%2C%22showRepliesInLatest%22%3Anull%2C%22timezone%22%3A%22America%2FNew_York%22%2C%22timezoneOffset%22%3A-14400000%2C%22timezoneShortname%22%3A%22EDT%22%2C%22avatar%22%3Anull%2C%22logo%22%3Anull%2C%22groupBlog%22%3Anull%2C%22noindex%22%3Afalse%7D%2C%7B%22id%22%3A17%2C%22name%22%3A%22lifehacker%22%2C%22displayName%22%3A%22Lifehacker%22%2C%22canonicalHost%22%3A%22lifehacker.com%22%2C%22hosts%22%3A%5B%22us.lifehacker.com%22%2C%22es.lifehacker.com%22%2C%22pl.lifehacker.com%22%2C%22blog.lifehacker.com%22%2C%22au.lifehacker.com%22%2C%22fetch.lifehacker.com%22%2C%22m.lifehacker.com%22%2C%22nl.lifehacker.com%22%2C%22www.lifehacker.com%22%2C%22assets.lifehacker.com%22%2C%22ca.lifehacker.com%22%2C%22br.lifehacker.com%22%2C%22ru.lifehacker.com%22%2C%22de.lifehacker.com%22%2C%22uk.lifehacker.com%22%5D%2C%22status%22%3A%22ENABLED%22%2C%22createTimeMillis%22%3Anull%2C%22lastUpdateTimeMillis%22%3Anull%2C%22createdById%22%3Anull%2C%22ownerId%22%3Anull%2C%22description%22%3Anull%2C%22descriptionHtml%22%3Anull%2C%22mergedProperties%22%3A%7B%22aboutPostId%22%3A5732066%2C%22fbAppId%22%3A%2237418175030%22%2C%22metaTitle%22%3A%22tips%20and%20downloads%20for%20getting%20things%20done%22%2C%22googleSiteVerification%22%3A%22R0yw_jwnGWbokA2qgkupaWGVFJnF6qGtlgbSJEMdQkw%22%2C%22blogGroup%22%3A%22lifehacker%22%2C%22isGmgBlog%22%3Atrue%2C%22googleAnalyticsID%22%3A%22UA-142218-1%22%2C%22kruxId%22%3A%22JO5Ggjkf%22%2C%22template%22%3A%22lifehacker%22%2C%22GANJA_IGNORE_GEO%22%3A%5B%22us.lifehacker.com%22%5D%7D%2C%22showLikesInLatest%22%3Anull%2C%22showRepliesInLatest%22%3Anull%2C%22timezone%22%3A%22America%2FLos_Angeles%22%2C%22timezoneOffset%22%3A-25200000%2C%22timezoneShortname%22%3A%22PDT%22%2C%22avatar%22%3A%7B%22id%22%3A%22192oza44hceztpng%22%2C%22format%22%3A%22png%22%7D%2C%22logo%22%3Anull%2C%22groupBlog%22%3Anull%2C%22noindex%22%3Afalse%7D%5D%2C%22sharedPostId%22%3Anull%2C%22defaultBlogId%22%3A17%7D%2C%22starterId%22%3A1690268064%2C%22tags%22%3A%22money%2Cshopping%2Csaving%20money%2Cpersonal%20finances%2Cmind%20hacks%2Chabits%2Cbudget%2Cpsychology%2Ceditors%20picks%22%2C%22postId%22%3A1690268064%2C%22authors%22%3A%22Patrick%20Allan%22%2C%22postAuthorBlogName%22%3A%22patrickallan%22%7D' ));}());</script>
+ <!-- Begin SimpleReach for sponsored posts -->
+ <script>
+ __reach_config = {
+ pid: '5266d09097b0c95740000002', // The SimpleReach assigned Publisher ID (pid)
+ title: 'How to Program Your Mind to Stop Buying Crap You Don’t Need', //(remember that they should be escaped, not HTML or URL encoded)
+ url: 'http:\/\/lifehacker.com\/how-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064',
+ date: new Date(1425913200851),
+ authors: ['PatrickAllan'],
+ channels: [],
+ tags: ['money','shopping','saving money','personal finances','mind hacks','habits','budget','psychology','editors picks'],
+ iframe: true, // Send event through iframe
+ domain: 'lifehacker.com'
+ };
+ (function(){
+ var s = document.createElement('script');
+ s.async = true;
+ s.type = 'text/javascript';
+ s.src = document.location.protocol + '//d8rk54i4mohrb.cloudfront.net/js/reach.js';
+ (document.getElementsByTagName('head')[0] ||
+ document.getElementsByTagName('body')[0]).appendChild(s);
+ })();
+ </script>
+ <!-- End SimpleReach for sponsored posts -->
+ <div data-trackurl="http://kinja.com/api/analytics/stats/track.gif?&amp;objectType=permalinkTag&amp;objectType=permalinkTag&amp;objectType=permalinkTag&amp;objectType=permalinkTag&amp;objectType=permalinkTag&amp;objectType=permalinkTag&amp;objectType=permalinkTag&amp;objectType=permalinkTag&amp;objectType=permalinkTag&amp;objectType=post&amp;objectId=1183447227&amp;objectId=1183572883&amp;objectId=1183447223&amp;objectId=226344621&amp;objectId=1203987700&amp;objectId=1217291859&amp;objectId=450629315&amp;objectId=1178784105&amp;objectId=1679306583&amp;objectId=1690268064&amp;blogId=17&amp;authorId=602884910" style="display: none;" class="js_stats"><img style="display: none;" src="http://kinja.com/api/analytics/stats/track.gif?&amp;objectType=permalinkTag&amp;objectType=permalinkTag&amp;objectType=permalinkTag&amp;objectType=permalinkTag&amp;objectType=permalinkTag&amp;objectType=permalinkTag&amp;objectType=permalinkTag&amp;objectType=permalinkTag&amp;objectType=permalinkTag&amp;objectType=post&amp;objectId=1183447227&amp;objectId=1183572883&amp;objectId=1183447223&amp;objectId=226344621&amp;objectId=1203987700&amp;objectId=1217291859&amp;objectId=450629315&amp;objectId=1178784105&amp;objectId=1679306583&amp;objectId=1690268064&amp;blogId=17&amp;authorId=602884910" /></div><div data-tag-ids="1183447227,1183572883,1183447223,226344621,1203987700,1217291859,450629315,1178784105,1679306583" data-author-id="602884910" data-blog-id="17" data-post-id="1690268064" data-analytics-api-root-url="http://kinja.com/api/analytics/" style="display: none;" id="analytics-permalink-view"></div></div><div class="js_recommended-footer recommended-footer column show-for-touch"></div></div><div id="ad-970x250-container" class="row ad-wide ad-bottom pbs show-for-large-up"><div class="column"> <div class="ad-unit js_ad-unit ad-billboard js_ad-billboard"><div data-zone-type="BILLBOARD" class="ad-container js_ad-container" id="ad-container-72015869"></div></div></div></div><div style="display: none;" id="trackers"><img width="1" height="1" src="//secure-us.imrworldwide.com/cgi-bin/m?ci=us-803450h&amp;cg=0&amp;cc=1&amp;si=http%3A%2F%2Flifehacker.com%2Fhow-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064&amp;rp=&amp;ts=compact&amp;rnd=1427305231910" /><script language="javascript" type="text/javascript" src="//static.chartbeat.com/js/chartbeat.js" async="async"></script><script language="javascript" type="text/javascript" src="http://edge.quantserve.com/quant.js" async="async"></script><script language="javascript" type="text/javascript" src="http://cdn.krxd.net/controltag?confid=JO5Ggjkf" async="async"></script><script language="javascript" type="text/javascript" src="http://s.skimresources.com/js/33330X911647.skimlinks.js" async="async"></script><script language="javascript" type="text/javascript" src="http://b.scorecardresearch.com/beacon.js" async="async"></script><img width="1" height="1" src="http://pubads.g.doubleclick.net/activity;dc_iu=/4246/DFP_Audience_Pixel;dc_seg=22540930;blog=lifehacker;ord=463536460263.444;postId=1690268064;tags=money,shopping,saving%20money,personal%20finances,mind%20hacks,habits,budget,psychology,editors%20picks?" /><img width="1" height="1" src="http://pubads.g.doubleclick.net/activity;dc_iu=/4246/DFP_Audience_Pixel;dc_seg=23702290;blog=lifehacker;ord=5586835666437.667;postId=1690268064;tags=money,shopping,saving%20money,personal%20finances,mind%20hacks,habits,budget,psychology,editors%20picks;refer=?" /></div><noscript>&lt;img src="http://pubads.g.doubleclick.net/activity;dc_iu=/4246/DFP_Audience_Pixel;dc_seg=22540930;blog=lifehacker;ord=1?" width="1" height="1" border="0" /&gt;</noscript><script type="text/javascript">
+ Date.now = Date.now || function() { return +new Date; };
+ window.statsdTicks = [{
+ ms: Date.now(),
+ message: "JS init reached",
+ reporting: false
+ }];
+ </script><script>markUserTime("JS - Before Require load");</script><script src="http://x.kinja-static.com/assets/javascripts/lib/require.js?2" type="text/javascript"></script><script type="text/javascript">(function () {window.kinja = window.kinja || {}; window.kinja.meta = JSON.parse(decodeURIComponent( '%7B%22cloudinaryRequest%22%3A%7B%22default%22%3A%7B%22eager%22%3A%22c_fill%2Cfl_progressive%2Cg_center%2Ch_180%2Cq_80%2Cw_320%7Cc_fit%2Cfl_progressive%2Cq_80%2Cw_600%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_100%2Cq_80%2Cw_100%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_77%2Cq_80%2Cw_137%7Cc_fit%2Cfl_progressive%2Cq_80%2Cw_600%7Cc_fill%2Cfl_progressive%2Cg_north%2Ch_264%2Cq_80%2Cw_470%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_358%2Cq_80%2Cw_636%7Cc_fill%2Cfl_progressive%2Cg_north%2Ch_264%2Cq_80%2Cw_470%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_77%2Cq_80%2Cw_137%7Cc_fill%2Cfl_progressive%2Cg_north%2Ch_77%2Cq_80%2Cw_137%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_120%2Cq_80%2Cw_120%7Cc_fit%2Cfl_progressive%2Cq_80%2Cw_636%7Cc_fill%2Cfl_progressive%2Cg_north%2Ch_77%2Cq_80%2Cw_137%7Cc_fill%2Cfl_progressive%2Cg_north%2Ch_358%2Cq_80%2Cw_636%7Cc_fit%2Cfl_progressive%2Cq_80%2Cw_470%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_80%2Cq_80%2Cw_80%7Cc_fill%2Cfl_progressive%2Cg_north%2Ch_180%2Cq_80%2Cw_320%7Cc_fill%2Cfl_progressive%2Cg_north%2Ch_180%2Cq_80%2Cw_320%7Cc_fit%2Cfl_progressive%2Cq_80%2Cw_320%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_120%2Cq_80%2Cw_120%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_200%2Cq_80%2Cw_200%7Cc_fill%2Cfl_progressive%2Cg_faces%2Ch_77%2Cq_80%2Cw_137%7Cc_fill%2Cfl_progressive%2Cg_faces%2Ch_77%2Cq_80%2Cw_137%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_80%2Cq_80%2Cw_80%7C%7Cc_fill%2Cfl_progressive%2Cg_north%2Ch_358%2Cq_80%2Cw_636%7Cc_fit%2Cfl_progressive%2Cq_80%2Cw_470%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_100%2Cq_80%2Cw_100%7Cc_fit%2Cfl_progressive%2Ch_100%2Cq_80%2Cw_75%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_200%2Cq_80%2Cw_200%7Cc_fit%2Cfl_progressive%2Cq_80%2Cw_636%7Cc_fit%2Cfl_progressive%2Cq_80%2Cw_320%7Cc_fit%2Cfl_progressive%2Ch_100%2Cq_80%2Cw_75%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_358%2Cq_80%2Cw_636%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_180%2Cq_80%2Cw_320%7C%22%2C%22timestamp%22%3A%221427304251%22%2C%22signature%22%3A%228fab976068d3db50ced1752624b03eecbae73c7d%22%2C%22api_key%22%3A%22196565315244936%22%2C%22eager_async%22%3A%22true%22%7D%2C%22gif%22%3A%7B%22eager%22%3A%22c_fill%2Cfl_progressive%2Cg_center%2Ch_180%2Cq_80%2Cw_320%7Cc_fit%2Cfl_progressive%2Cq_80%2Cw_600%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_100%2Cq_80%2Cw_100%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_77%2Cq_80%2Cw_137%7Cc_fit%2Cfl_progressive%2Cq_80%2Cw_600%7Cc_fill%2Cfl_progressive%2Cg_north%2Ch_264%2Cq_80%2Cw_470%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_358%2Cq_80%2Cw_636%7Cc_fill%2Cfl_progressive%2Cg_north%2Ch_264%2Cq_80%2Cw_470%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_77%2Cq_80%2Cw_137%7Cc_fill%2Cfl_progressive%2Cg_north%2Ch_77%2Cq_80%2Cw_137%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_120%2Cq_80%2Cw_120%7Cc_fit%2Cfl_progressive%2Cq_80%2Cw_636%7Cc_fill%2Cfl_progressive%2Cg_north%2Ch_77%2Cq_80%2Cw_137%7Cc_fill%2Cfl_progressive%2Cg_north%2Ch_358%2Cq_80%2Cw_636%7Cc_fit%2Cfl_progressive%2Cq_80%2Cw_470%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_80%2Cq_80%2Cw_80%7Cc_fill%2Cfl_progressive%2Cg_north%2Ch_180%2Cq_80%2Cw_320%7Cc_fill%2Cfl_progressive%2Cg_north%2Ch_180%2Cq_80%2Cw_320%7Cc_fit%2Cfl_progressive%2Cq_80%2Cw_320%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_120%2Cq_80%2Cw_120%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_200%2Cq_80%2Cw_200%7Cc_fill%2Cfl_progressive%2Cg_faces%2Ch_77%2Cq_80%2Cw_137%7Cc_fill%2Cfl_progressive%2Cg_faces%2Ch_77%2Cq_80%2Cw_137%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_80%2Cq_80%2Cw_80%7C%7Cc_fill%2Cfl_progressive%2Cg_north%2Ch_358%2Cq_80%2Cw_636%7Cc_fit%2Cfl_progressive%2Cq_80%2Cw_470%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_100%2Cq_80%2Cw_100%7Cc_fit%2Cfl_progressive%2Ch_100%2Cq_80%2Cw_75%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_200%2Cq_80%2Cw_200%7Cc_fit%2Cfl_progressive%2Cq_80%2Cw_636%7Cc_fit%2Cfl_progressive%2Cq_80%2Cw_320%7Cc_fit%2Cfl_progressive%2Ch_100%2Cq_80%2Cw_75%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_358%2Cq_80%2Cw_636%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_180%2Cq_80%2Cw_320%7C%22%2C%22timestamp%22%3A%221427304251%22%2C%22tags%22%3A%22gif%22%2C%22signature%22%3A%22f4923ecc7f32ea65cc7e77d67bf3ec3b5807a15d%22%2C%22api_key%22%3A%22196565315244936%22%2C%22eager_async%22%3A%22true%22%7D%7D%2C%22syncFeatures%22%3Anull%2C%22featuresLastUpdate%22%3A1427294144762%2C%22killswitches%22%3A%7B%22liveblog.pollIntervalMillis%22%3A%7B%22name%22%3A%22liveblog.pollIntervalMillis%22%2C%22value%22%3A%2210000%22%2C%22defaultValue%22%3A%2210000%22%2C%22meta%22%3Anull%7D%2C%22liveblog.appRevision%22%3A%7B%22name%22%3A%22liveblog.appRevision%22%2C%22value%22%3A%221%22%2C%22defaultValue%22%3A%221%22%2C%22meta%22%3Anull%7D%2C%22maintenance%22%3A%7B%22name%22%3A%22maintenance%22%2C%22value%22%3A%22off%22%2C%22defaultValue%22%3A%22off%22%2C%22meta%22%3Anull%7D%7D%2C%22mode%22%3A%22live%22%2C%22pageType%22%3A%22permalink%22%2C%22currentUrl%22%3A%22%2Fhow-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064%22%2C%22locale%22%3A%22en-US%22%2C%22localeWithUnderscore%22%3A%22en_US%22%2C%22imageSizes%22%3A%7B%22KinjaCenteredMedium%22%3A%7B%22width%22%3A320%2C%22height%22%3A180%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22center%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22blg-logo%22%3A%7B%22width%22%3A600%2C%22crop%22%3A%22fit%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22blg-avt-%22%3A%7B%22width%22%3A100%2C%22height%22%3A100%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22center%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22kc-small%22%3A%7B%22width%22%3A137%2C%22height%22%3A77%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22center%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22BlogLogo%22%3A%7B%22width%22%3A600%2C%22crop%22%3A%22fit%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22k-large%22%3A%7B%22width%22%3A470%2C%22height%22%3A264%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22north%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22kc-xlarge%22%3A%7B%22width%22%3A636%2C%22height%22%3A358%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22center%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22KinjaLarge%22%3A%7B%22width%22%3A470%2C%22height%22%3A264%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22north%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22KinjaCenteredSmall%22%3A%7B%22width%22%3A137%2C%22height%22%3A77%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22center%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22k-small%22%3A%7B%22width%22%3A137%2C%22height%22%3A77%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22north%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22AvatarMedium%22%3A%7B%22width%22%3A120%2C%22height%22%3A120%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22center%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22ku-xlarge%22%3A%7B%22width%22%3A636%2C%22crop%22%3A%22fit%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22KinjaSmall%22%3A%7B%22width%22%3A137%2C%22height%22%3A77%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22north%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22KinjaExtraLarge%22%3A%7B%22width%22%3A636%2C%22height%22%3A358%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22north%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22ku-large%22%3A%7B%22width%22%3A470%2C%22crop%22%3A%22fit%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22avt-small%22%3A%7B%22width%22%3A80%2C%22height%22%3A80%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22center%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22k-medium%22%3A%7B%22width%22%3A320%2C%22height%22%3A180%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22north%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22KinjaMedium%22%3A%7B%22width%22%3A320%2C%22height%22%3A180%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22north%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22ku-medium%22%3A%7B%22width%22%3A320%2C%22crop%22%3A%22fit%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22avt-medium%22%3A%7B%22width%22%3A120%2C%22height%22%3A120%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22center%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22avt-large%22%3A%7B%22width%22%3A200%2C%22height%22%3A200%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22center%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22k-thumb%22%3A%7B%22width%22%3A137%2C%22height%22%3A77%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22faces%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22KinjaThumb%22%3A%7B%22width%22%3A137%2C%22height%22%3A77%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22faces%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22AvatarSmall%22%3A%7B%22width%22%3A80%2C%22height%22%3A80%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22center%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22original%22%3A%7B%7D%2C%22k-xlarge%22%3A%7B%22width%22%3A636%2C%22height%22%3A358%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22north%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22KinjaUncroppedLarge%22%3A%7B%22width%22%3A470%2C%22crop%22%3A%22fit%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22BlogAvatar%22%3A%7B%22width%22%3A100%2C%22height%22%3A100%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22center%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22ku-inset%22%3A%7B%22width%22%3A75%2C%22height%22%3A100%2C%22crop%22%3A%22fit%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22AvatarLarge%22%3A%7B%22width%22%3A200%2C%22height%22%3A200%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22center%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22KinjaUncroppedExtraLarge%22%3A%7B%22width%22%3A636%2C%22crop%22%3A%22fit%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22KinjaUncroppedMedium%22%3A%7B%22width%22%3A320%2C%22crop%22%3A%22fit%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22KinjaUncroppedInset%22%3A%7B%22width%22%3A75%2C%22height%22%3A100%2C%22crop%22%3A%22fit%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22KinjaCenteredExtraLarge%22%3A%7B%22width%22%3A636%2C%22height%22%3A358%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22center%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22kc-medium%22%3A%7B%22width%22%3A320%2C%22height%22%3A180%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22center%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22Original%22%3A%7B%7D%7D%2C%22blog%22%3A%7B%22id%22%3A17%2C%22name%22%3A%22lifehacker%22%2C%22displayName%22%3A%22Lifehacker%22%2C%22canonicalHost%22%3A%22lifehacker.com%22%2C%22status%22%3A%22ENABLED%22%2C%22description%22%3A%22Tips%20and%20downloads%20for%20getting%20things%20done%22%2C%22descriptionHtml%22%3A%22%3Cp%3ETips%2C%20tricks%2C%20and%20downloads%20for%20getting%20things%20done.%3C%2Fp%3E%3Cp%3E%3Ca%20href%3D%5C%22http%3A%2F%2Flifehacker.com%2Fthe-lifehacker-app-directory-curates-the-best-apps-for-5803257%5C%22%20rel%3D%5C%22nofollow%5C%22%3EAPP%20DIRECTORY%3C%2Fa%3E%20-%20%3Ca%20href%3D%5C%22http%3A%2F%2Flifehacker.com%2Ftag%2Fdownloads%5C%22%20rel%3D%5C%22nofollow%5C%22%3EDOWNLOADS%3C%2Fa%3E%20-%20%3Ca%20href%3D%5C%22http%3A%2F%2Flifehacker.com%2Ftag%2Fproductivity%5C%22%20rel%3D%5C%22nofollow%5C%22%3EPRODUCTIVITY%3C%2Fa%3E%20-%20%3Ca%20href%3D%5C%22http%3A%2F%2Flifehacker.com%2Ftag%2Fdiy%5C%22%20rel%3D%5C%22nofollow%5C%22%3EDIY%3C%2Fa%3E%20-%20%3Ca%20href%3D%5C%22http%3A%2F%2Flifehacker.com%2Ftag%2Fmoney%5C%22%20rel%3D%5C%22nofollow%5C%22%3EMONEY%3C%2Fa%3E%20-%20%3Ca%20href%3D%5C%22http%3A%2F%2Flifehacker.com%2Ftag%2Fsecurity%5C%22%20rel%3D%5C%22nofollow%5C%22%3ESECURITY%3C%2Fa%3E%20-%20%3Ca%20href%3D%5C%22http%3A%2F%2Flifehacker.com%2Ftag%2Fdealhacker%5C%22%20rel%3D%5C%22nofollow%5C%22%3ELIFEHACKER%20DEALS%3C%2Fa%3E%20-%20%3Ca%20href%3D%5C%22http%3A%2F%2Flifehacker.com%2Ftag%2Fnightschool%5C%22%20rel%3D%5C%22nofollow%5C%22%3ENIGHT%20SCHOOL%3C%2Fa%3E%3C%2Fp%3E%22%2C%22showLikesInLatest%22%3Afalse%2C%22showRepliesInLatest%22%3Afalse%2C%22timezone%22%3A%22America%2FLos_Angeles%22%2C%22timezoneOffset%22%3A-25200000%2C%22timezoneShortname%22%3A%22PDT%22%2C%22locale%22%3A%22en-US%22%2C%22robotsAllowed%22%3Atrue%2C%22fbAppId%22%3A%2237418175030%22%2C%22googleSiteVerification%22%3A%22R0yw_jwnGWbokA2qgkupaWGVFJnF6qGtlgbSJEMdQkw%22%2C%22googleAnalyticsID%22%3A%22UA-142218-1%22%2C%22kruxId%22%3A%22JO5Ggjkf%22%2C%22blogGroup%22%3A%22lifehacker%22%2C%22isGmgBlog%22%3Atrue%2C%22groupBlog%22%3Atrue%2C%22avatar%22%3A%7B%22src%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fs--I5Hl1NTc--%2Fc_fit%2Cfl_progressive%2Cq_80%2Cw_636%2F192oza44hceztpng.png%22%2C%22uri%22%3Anull%2C%22id%22%3A%22192oza44hceztpng%22%2C%22width%22%3A636%2C%22height%22%3Anull%2C%22format%22%3A%22png%22%2C%22recommended%22%3Anull%7D%2C%22logo%22%3A%7B%22src%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fs--FGw2Yv3Q--%2Fc_fit%2Cfl_progressive%2Cq_80%2Cw_636%2Fbwiqhbo45ulldozwchb0.png%22%2C%22uri%22%3Anull%2C%22id%22%3A%22bwiqhbo45ulldozwchb0%22%2C%22width%22%3A636%2C%22height%22%3Anull%2C%22format%22%3A%22png%22%2C%22recommended%22%3Anull%7D%2C%22noindex%22%3Afalse%7D%2C%22blogOwner%22%3A%7B%22id%22%3A%225716509846451982265%22%2C%22screenName%22%3A%22whitsongordon%22%2C%22displayName%22%3A%22Whitson%20Gordon%22%2C%22superUser%22%3Afalse%2C%22defaultBlogId%22%3A768%2C%22defaultBlog%22%3Anull%2C%22avatar%22%3A%7B%22id%22%3A%2217z00h8twlstpjpg%22%2C%22format%22%3A%22jpg%22%7D%7D%2C%22blogSales%22%3A%7B%22blogId%22%3A17%2C%22amazonInsetsEnabled%22%3Atrue%2C%22amazonAffiliateTag%22%3A%22lifehackeramzn-20%22%2C%22adsEnabled%22%3Atrue%2C%22adNetworkId%22%3A4246%2C%22adSiteName%22%3A%22gm.lifehacker%22%2C%22tagsExcludedFromPartnerRss%22%3A%5B%5D%2C%22tagsForceSynced%22%3A%5B%22dyson%22%2C%22health%22%2C%22app%20directory%22%5D%2C%22adSlotsDisabled%22%3A%5B%5D%2C%22stored%22%3Atrue%7D%2C%22imgassets%22%3A%22http%3A%2F%2Fx.kinja-static.com%2Fassets%2Fimages%2F%22%7D' ));}());</script><script type="text/javascript">(function () {/* This AMD configuration is used in these contexts:1) in-browser2) build process3) tests*/(function () {'use strict';/*globals requirejs, document */requirejs.config({bundles: {'lib/scribe/scribe': ['scribe']},paths: (function () {var paths = {'html-janitor': 'lib/html-janitor',jquery: 'lib/jquery',underscore: 'lib/underscore',backbone: 'lib/backbone','backbone.marionette': 'lib/backbone.marionette','backbone.stickit': 'lib/backbone.stickit',moment: 'lib/amd-wrapped/momentjs/moment','moment-timezone': 'lib/amd-wrapped/momentjs/moment-timezone','jquery.tap': 'lib/amd-wrapped/tap.js/jquery.tap',ace: 'lib/ace','scribe-virtualdom': 'lib/scribe-virtualdom','scribe-plugin-heading-command': 'lib/scribe/plugins/scribe-plugin-heading-command','scribe-plugin-smart-lists': 'lib/scribe/plugins/scribe-plugin-smart-lists','scribe-plugin-blockquote-command': 'lib/scribe/plugins/scribe-plugin-blockquote-command','scribe-plugin-intelligent-unlink-command': 'lib/scribe/plugins/scribe-plugin-intelligent-unlink-command','scribe-plugin-formatter-html-ensure-semantic-elements': 'lib/scribe/plugins/scribe-plugin-formatter-html-ensure-semantic-elements','scribe-plugin-inline-styles-to-elements': 'lib/scribe/plugins/scribe-plugin-inline-styles-to-elements','scribe-plugin-keyboard-shortcuts': 'lib/scribe/plugins/scribe-plugin-keyboard-shortcuts','scribe-plugin-sanitizer': 'lib/scribe/plugins/scribe-plugin-sanitizer','scribe-plugin-code-command': 'lib/scribe/plugins/scribe-plugin-code-command','scribe-plugin-curly-quotes': 'lib/scribe/plugins/scribe-plugin-curly-quotes'};if (typeof document !== 'undefined') {paths.templates = 'templates/closure/' + (document.getElementsByTagName('html')[0].getAttribute('lang') || 'en-US');}return paths;}())});}());var modules = {"BaseApp": "-a5bd72ff9408e6b98b1b571b3aea163f","TagPageApp": "-c7bfe76c88b43ac19e253823f5a49a4f","FrontPageApp": "-56257921a2067bbaa021b3af2b84b9f6","Main": "-fc52d10f1350408009c8c771fe092f72","PromotedPostPreview": "-57921fef4324bf3d8d00ccebf14aaf08","RuleSystem": "-ed2fdb973c59a0eb41ab1ff525b73457","ProfilePageApp": "-3109b57c4c014b8050c0d87355e869db","ace": "-a486a39565033c80d86a498ff172dad1","AmazonStats": "-b682f014e2ab7a30e8072326cd68376a","GroupchatsModule": "-7cb00a84791c2dfe2dc35cc3ab740476","KindrApp": "-0b8d221207823124793a1f4ef59730dd","FeaturesPageApp": "-3077acd34cc1e6abe43bb7f8a55e2487","LeaderboardStatsPageApp": "-0e4bb432fdccbfc4cf41cc7775b46370","ScribeEditor": "-5ea441f770cdee3b6613862215e922b2","PrivatePageApp": "-fa88fa1502bd74cd21e7f9fbada917f7","PostDebugPageApp": "-86ed2742af5826b9c6584da7221d4187","PostApp": "-c004ba34b8896c19ebcaf45ecd2464f1","StatsPageApp": "-b382ae3074b607c21cbb5764659cb910","FlaggedRepliesApp": "-bbb4735853a886355fc4bc07e860b2aa","MarionetteEditor": "-2a6405c9b6b7c651b97133c892e8e105","AccountModalsModule": "-d834e61733fe800ac7e1899356c3d170","BlacklistPageApp": "-1a8f8507ae355dcadf23f91ed62b3dce","JWPlayer": "-bcb2726c49022f1b0a79203da422279b","GmgFeaturesPageApp": "-a2ca3f391d5e501d80fb433eb8c5c418","DiscussionModule": "-188224b3a92721f256075bfd613628a5","ErrorPageApp": "-cfd6f40d60183f8ef397d1b46254a984","NotificationsPageApp": "-f8235b9cbbb4a697b87e76ce734885e3","TipsApp": "-894e852f117be09c9934959ae7af7970","KinjaAnalytics": "-64fff5209724c0b7443a3f00f4bdd9b2","KinjaFeedApp": "-8827d84586300ff610ff646e029d288e","AmazonInsetsModule": "-31886e010e5dce0c0d637b89b4feaa3d","SearchPageApp": "-dae758606210faab1759923e2c3f088a","Raven": "-3467f3aed7fecb0be39f14c0d7095e44","BusinessModule": "-491c2ccfb8a3c19a92ef94bc4443c00f","UIKitApp": "-4824fd8f0e4d32de8bd9b0e8a15dce85","BlogSettingsModule": "-c9588974a6d147bf9895a8e61388d2c2","StatsPerformanceApp": "-485a67d938d4bd95d15cce83695f21ce"}, paths = {}, baseUrl = "http://x.kinja-static.com/assets/javascripts-min/", modulePath = "layer/"; for (var module in modules) {if (modules.hasOwnProperty(module)) {paths["module/" + module] = "module/" + module + "-en-US" + modules[module]; paths["layer/" + module] = "layer/" + module + "-en-US" + modules[module];}}require.config({waitSeconds: 0, baseUrl: baseUrl, paths: paths, map: {"*": {"config": "config"}}});markUserTime("JS - Before preload"); require([modulePath + "Main", modulePath + "PostApp"], function () {markUserTime("JS - After preload"); require(["module/Main"], function () {markUserTime("JS - After app init");});});}());</script><!--[if gte IE 9]> --><script>require(["module/Raven"]);</script><!-- <![endif]--><div class="reveal-modal-bg"></div><div class="ad-background"></div><div id="modalplaceholder"></div></div><div class="footer-kinja"><div class="footer-kinja__top"> <footer class="row site-footer js_site-footer"><div class="large-8 large-offset-4 columns text-center"><ul class="list list-text text-light proxima"><li><a href="/about">About</a></li><li><a target="_blank" href="http://help.gawker.com/">Help</a></li><li><a href="http://legal.kinja.com/kinja-terms-of-use-90161644">Terms of Use</a></li><li><a href="http://legal.kinja.com/privacy-policy-90190742">Privacy</a></li><li><a href="http://advertising.gawker.com/">Advertising</a></li><li><a href="http://advertising.gawker.com/about/index.php#contact">Permissions</a></li><li><a href="http://legal.kinja.com/content-guidelines-90185358">Content Guidelines</a></li><li><a href="http://feeds.gawker.com/lifehacker/full">RSS</a></li><li><a href="http://grnh.se/2ctqpi">Jobs</a></li></ul></div></footer>
+ <!-- Begin comScore Tag -->
+ <noscript>
+ &lt;img src="http://b.scorecardresearch.com/p?c1=2&amp;c2=6770184&amp;cv=2.0&amp;cj=1" /&gt;
+ </noscript>
+ <!-- End comScore Tag -->
+ </div><div class="footer-kinja__bottom"><div class="row"><div class="column"><div class="logo-wrapper"><span>Powered by</span><a data-ga="[Kinja Footer, Kinja.com Click, js_pageType]" href="http://kinja.com"><h1 class="kinja-title kinja-title--white">Kinja</h1></a></div></div></div></div></div></div> <div id="read-only-warning" style="display:none;"><div class="row"><div class="column small-12">Kinja is in read-only mode. We are working to restore service.</div></div></div><div id="matchbuy-placeholder"></div><iframe width="1" height="1" name="spr" src="//d8rk54i4mohrb.cloudfront.net/iframe.html?pid=5266d09097b0c95740000002&amp;title=How%20to%20Program%20Your%20Mind%20to%20Stop%20Buying%20Crap%20You%20Don%E2%80%99t%20Need&amp;url=http%3A%2F%2Flifehacker.com%2Fhow-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064&amp;date=Mon%20Mar%2009%202015%2015%3A00%3A00%20GMT%2B0000%20%28GMT%29&amp;authors=PatrickAllan&amp;channels=&amp;tags=money%7Cshopping%7Csaving%20money%7Cpersonal%20finances%7Cmind%20hacks%7Chabits%7Cbudget%7Cpsychology%7Ceditors%20picks&amp;iframe=true&amp;domain=lifehacker.com&amp;r=true&amp;referrer=&amp;page_url=http%3A%2F%2Flifehacker.com%2Fhow-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064&amp;ref_url=&amp;cache_buster=1427305231937" visible="false" id="spr-iframe-n" style="display: none;"></iframe><iframe width="1" height="1" name="spr" src="//d8rk54i4mohrb.cloudfront.net/container.html?pid=5266d09097b0c95740000002&amp;title=How%20to%20Program%20Your%20Mind%20to%20Stop%20Buying%20Crap%20You%20Don%E2%80%99t%20Need&amp;url=http%3A%2F%2Flifehacker.com%2Fhow-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064&amp;date=Mon%20Mar%2009%202015%2015%3A00%3A00%20GMT%2B0000%20%28GMT%29&amp;authors=PatrickAllan&amp;channels=&amp;tags=money%7Cshopping%7Csaving%20money%7Cpersonal%20finances%7Cmind%20hacks%7Chabits%7Cbudget%7Cpsychology%7Ceditors%20picks&amp;iframe=true&amp;domain=lifehacker.com&amp;r=true&amp;referrer=&amp;page_url=http%3A%2F%2Flifehacker.com%2Fhow-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064&amp;ref_url=&amp;cache_buster=1427305231939" visible="false" id="spr-iframe-x" style="display: none;"></iframe><div class="js_loading-layer row hide"><div class="column"><div class="row"><div class="loading-layer"><div class="large-8 large-offset-4 columns"><div class="loading-layer-main-column"> <span class="spinner bounce"><span class="one"></span><span class="two"></span><span class="three"></span></span></div></div></div></div></div></div></body></html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lifehacker-working/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lifehacker-working/expected-images.json
new file mode 100644
index 000000000..b46843d47
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lifehacker-working/expected-images.json
@@ -0,0 +1,11 @@
+{
+ "0": "http:\/\/i.kinja-img.com\/gawker-media\/image\/upload\/s--hqqO9fze--\/n1s6c2m6kc07iqdyllj6.jpg",
+ "2": "http:\/\/i.kinja-img.com\/gawker-media\/image\/upload\/s--QeUTCiuW--\/o4dpyrcbiqyfrc3bxx6p.jpg",
+ "3": "http:\/\/i.kinja-img.com\/gawker-media\/image\/upload\/s--mlR3Ku0_--\/xrhkwleyurcizy4akiae.jpg",
+ "4": "http:\/\/i.kinja-img.com\/gawker-media\/image\/upload\/s--Tacb0tyW--\/qodag11euf2npkawkn9v.jpg",
+ "5": "http:\/\/i.kinja-img.com\/gawker-media\/image\/upload\/s--x9hLbIKJ--\/imfc9ybqfw0jmztbhfrh.jpg",
+ "6": "http:\/\/i.kinja-img.com\/gawker-media\/image\/upload\/s--6NwBgQLy--\/afy7n45jfvsjdmmhonct.jpg",
+ "7": "http:\/\/i.kinja-img.com\/gawker-media\/image\/upload\/s--ciqk42G0--\/s3pq8vjrvyjgne4lfsod.jpg",
+ "8": "http:\/\/i.kinja-img.com\/gawker-media\/image\/upload\/s--mtob1sjR--\/y2ldv5eufb3jcrtfouye.jpg",
+ "9": "http:\/\/i.kinja-img.com\/gawker-media\/image\/upload\/s--4Ajak63w--\/atb9qm07fvvg7hqkumkw.jpg"
+} \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lifehacker-working/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lifehacker-working/expected-metadata.json
new file mode 100644
index 000000000..fa13f9e3b
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lifehacker-working/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "Patrick Allan",
+ "Direction": null,
+ "Excerpt": "We all buy things from time to time that we don't really need. It's okay to appeal to your wants every once in a while, as long as you're in control. If you struggle with clutter, impulse buys, and buyer's remorse, here's how to put your mind in the right place before you even set foot in a store.",
+ "Image": "http:\/\/i.kinja-img.com\/gawker-media\/image\/upload\/s--hqqO9fze--\/n1s6c2m6kc07iqdyllj6.jpg",
+ "Title": "How to Program Your Mind to Stop Buying Crap You Don’t Need",
+ "SiteName": "Lifehacker"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lifehacker-working/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lifehacker-working/expected.html
new file mode 100644
index 000000000..2f862a91c
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lifehacker-working/expected.html
@@ -0,0 +1,484 @@
+<div><p data-textannotation-id="58a492029dca5e6a6e481d21b6b2933a"><span><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--hqqO9fze--/n1s6c2m6kc07iqdyllj6.jpg" data-chomp-id="n1s6c2m6kc07iqdyllj6" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--hqqO9fze--/n1s6c2m6kc07iqdyllj6.jpg" width="636"></img></span></p><p data-textannotation-id="a043044f9b3e31fd85568b17e3b1b5f3"><span>We all buy things from time to time that we don't really need. It's okay to appeal to your wants every once in a while, as long as you're in control. If you struggle with clutter, impulse buys, and buyer's remorse, here's how to put your mind in the right place before you even set foot in a store.</span></p>
+
+
+
+
+
+
+
+
+
+
+
+<h3 data-textannotation-id="e51cbbc52eb8c3b33571908351076cf7"><strong>Understand How Your Own Brain Works Against You</strong></h3>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="268f7702467d33e3b0972dd09f1cf0a6"><span><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--QeUTCiuW--/o4dpyrcbiqyfrc3bxx6p.jpg" data-chomp-id="o4dpyrcbiqyfrc3bxx6p" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--QeUTCiuW--/o4dpyrcbiqyfrc3bxx6p.jpg" width="636"></img></span></p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="32604538f84919efff270e87b61191a1">It may come as no surprise to learn that stores employ all kinds of tricks to get you to part ways with your cash, and your brain plays right along. Through psychological tricks, product placement, and even color, stores are designed from the ground up to increase spending. We've talked about the biggest things stores do to manipulate your senses, but here are some of the biggest things to look out for:</p>
+
+
+
+
+
+
+
+
+
+
+<ul><li data-textannotation-id="cd748c8b681c781cdd728c5e17b5e05f"><strong>Color:</strong> Stores use color to make products attractive and eye-catching, but they also use color on price labels. Red stands out and can encourage taking action, that's why it's commonly associated with sale signage and advertising. When you see red, remember what they're trying to do to your brain with that color. You don't to buy something just because it's on sale.</li><li data-textannotation-id="29c11c0aec305293be282aa91f8fbc3d"><strong>Navigation Roadblocks:</strong> Stores force you to walk around stuff you don't need to find the stuff you are really after. Have a list of what you need before you go in, go straight to it, and imagine it's the only item in the store.</li><li data-textannotation-id="252dc7e4a924d12c2d913861ab118bf5"><strong>The Touch Factor:</strong> Stores place items they want to sell in easy to reach locations and encourage you to touch them. Don't do it! As soon as you pick something up, you're more likely to buy it because your mind suddenly takes ownership of the object. Don't pick anything up and don't play with display items.</li><li data-textannotation-id="05dde4d44056798acff5890759134a64"><strong>Scents and Sounds:</strong> You'll probably hear classic, upbeat tunes when you walk into a store. The upbeat music makes you happy and excited, while playing familiar songs makes you feel comfortable. They also use pleasant smells to put your mind at ease. A happy, comfortable mind at ease is a dangerous combination for your brain when shopping. There's not much you can do to avoid this unless you shop online, but it's good to be aware of it.</li></ul><p data-textannotation-id="1eb4a4df2a670927c5d9e9641ebf9d40">And sure, we can blame the stores all we want, but you won't change how they operate—you can only be aware of how your <a href="http://lifehacker.com/how-stores-manipulate-your-senses-so-you-spend-more-mon-475987594" x-inset="1">brain is falling for their tricks</a>. Even without the stores, <a href="http://lifehacker.com/5968125/how-your-brain-corrupts-your-shopping-choices" x-inset="1">your brain is working against you on its own</a>, thanks to some simple cognitive biases.</p>
+
+
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="89992f1ca493b248eea6ed1772326c46">For example, confirmation bias makes you only believe the information that conforms to your prior beliefs, while you discount everything else. Advertisers appeal to this bias directly by convincing you one item is better than another with imagery and other tricks, regardless of what hard facts might say. Keep your mind open, do your own research, and accept when you're wrong about a product. The Decoy effect is also a commonly used tactic. You think one product is a deal because it's next to a similar product that's priced way higher. Even if it's a product you need, it's probably not as good of a deal as it looks right then and there. Again, always research beforehand and be on the lookout for this common trick to avoid impulse buys.</p>
+
+
+
+
+
+
+
+
+
+
+<h3 data-textannotation-id="eedde8c384145f2593efc2a15a4d79de"><strong>Make a List of </strong><em><strong>Everything</strong></em><strong> You Own and Do Some Decluttering</strong></h3>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="8044cf9aab698fd28931acd90ba96f7a"><span><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--mlR3Ku0_--/xrhkwleyurcizy4akiae.jpg" data-chomp-id="xrhkwleyurcizy4akiae" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--mlR3Ku0_--/xrhkwleyurcizy4akiae.jpg" width="636"></img></span></p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="a2a886d841e5aed848cdf7088edde4ea">Now that you know what you're up against, it's time to start changing the way you think. Before you can stop buying crap you don't need, you need to identify what that crap is. The first step is to make a list of <a href="http://lifehacker.com/how-to-defeat-the-urge-to-binge-shop-1468216943" x-inset="1">every single thing you own</a>. <strong>Every. Single. Thing</strong>. This might sound extreme, but you need to gather your data so you can start reprogramming your mind.</p>
+
+
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="bbe57b7aa20b48550e5f66b7c530822c">The purpose of this exercise is twofold: you see what you already have and don't need to ever buy again, and you get to see what you shouldn't have bought in the first place. As you list everything out, separate items into categories. It's extremely important that you are as honest with yourself as possible while you do this. It's also important you actually write this all down or type it all out. Here is the first set of categories to separate everything into:</p>
+
+
+
+
+
+
+
+
+
+
+<ul><li data-textannotation-id="8d7dc912152eddd0e3d56e28ad79e6f2"><strong>Need:</strong> You absolutely need this item to get by on a day to day basis.</li><li data-textannotation-id="6f60a79627f0746d1f611999251e9f1b"><strong>Sometimes Need:</strong> You don't need this item every day, but you use it on a somewhat regular basis.</li><li data-textannotation-id="54e10b108f95548966b657bd90fdbed4"><strong>Want:</strong> You bought this item because you wanted it, not because you needed it.</li><li data-textannotation-id="26c461a85fbc78651be442e205cac58b"><strong>Crap:</strong> You don't have a good reason why you have it and you already know it needs to go (there's probably a few of these items, at least).</li></ul><p data-textannotation-id="5743cf753f68fd8ee3443cc0f8e815dd">Leave the things you listed as "needs" alone, put your stuff listed as "crap" in a pile or box to go bye-bye, and move your attention back to your "sometimes need" and "want" lists. You need to go back over both of those lists because you probably fudged some of the listings, either subconsciously or intentionally. Now ask yourself these three questions as you go through both the "sometimes need" and "want" lists:</p>
+
+
+
+
+
+
+
+
+
+
+<ul><li data-textannotation-id="2048d6c0436bd34811442d6df32989a4">When was the last time I used this?</li><li data-textannotation-id="3f4b3686d822171b35e27bf1afde530b">When will I use this again?</li><li data-textannotation-id="63728605cc4fa66f5b225f674d12bbff">Does this item <a href="http://lifehacker.com/declutter-by-asking-one-question-does-this-spark-joy-1651256422">bring you joy</a>?</li></ul><p data-textannotation-id="816cd504161fecc6f3e173779b33d5db">Remember to be honest and adjust your lists accordingly. There's nothing wrong with keeping things you wanted. Material items can <a href="http://lifehacker.com/how-to-buy-happiness-the-purchases-most-likely-to-brin-1681780686">bring happiness to many people</a>, but make sure the items on your "want" list actively provide you joy and are being used. If an item doesn't get much use or doesn't make you happy, add it to the "crap" list.</p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="675103d9c0da55e95f93c53bb019f864">Once you have everything organized, it's time to do some serious decluttering. This listing exercise should get you started, but there are <a href="http://lifehacker.com/5957609/how-to-kick-your-clutter-habit-and-live-in-a-clean-house-once-and-for-all">a lot of other great ideas</a> when it comes to ditching the junk you don't need. Regardless, everything on your "crap" list needs to go. You can donate it, sell it at a yard sale, give it away to people know, whatever you like. Before you get rid of everything, though, take a picture of all your stuff together. Print out or save the picture somewhere. Some of it was probably gifts, but in general, this is all the crap you bought that you don't need. Take a good look and remember it.</p>
+
+
+
+
+
+
+
+
+
+
+<h3 data-textannotation-id="f15ab0a628b159459f095f04fef851ba"><strong>See How Much Money and Time You Spent on the Stuff You Threw Out</strong></h3>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="bc2f55587bf4ab07a1852a8d26217233"><span><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--Tacb0tyW--/qodag11euf2npkawkn9v.jpg" data-chomp-id="qodag11euf2npkawkn9v" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--Tacb0tyW--/qodag11euf2npkawkn9v.jpg" width="636"></img></span></p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="95ab4fe30c3ade42a8011966ea54aa0b">Now take a look at your "crap" list again and start calculating how much you spent on all of it. If it was a gift, mark it as $0. Otherwise, figure out the price of the item at the time you bought it. If you got a deal or bought it on sale it's okay to factor that in, but try to be as accurate as possible. Once you have the price for each item, add it all together. Depending on your spending habits this could possibly be in the hundreds to thousands of dollars. Remember the picture you took of all this stuff? Attach the total cost to the picture so you can see both at the same time.</p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="f654efec679064b15826d8ee20bc94e4">With the money cost figured out, you should take a look at the other costs too. Time is a resource just like any other, and it's a finite one. What kind of time did you pour into these things? Consider the time you spent acquiring and using these items, then write it all down. These can be rough estimations, but go ahead and add it all up when you think you've got it. Now attach the total time to same picture as before and think of the other ways you could have spent all that time. This isn't to make you feel bad about yourself, just to deliver information to your brain in an easy-to-understand form. When you look at it all like this, it can open your eyes a little more, and help you think about purchases in the future. You'll look at an item and ask yourself, "Will this just end up in the picture?"</p>
+
+
+
+
+
+
+
+
+
+
+<h3 data-textannotation-id="6342bf7f15d9eddd21489c23e51ca434"><strong>List Every Non-Material Thing In Your Life that Makes You Happy</strong></h3>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="bafeac1c3808e0d2900190979f058b2c"><span><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--x9hLbIKJ--/imfc9ybqfw0jmztbhfrh.jpg" data-chomp-id="imfc9ybqfw0jmztbhfrh" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--x9hLbIKJ--/imfc9ybqfw0jmztbhfrh.jpg" width="636"></img></span></p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="4bd8fbaabb33ff1cb5dc93c16e1f83cc">Now it's time to make a different list. While material items may bring plenty of joy, the things in your life that make you happiest probably can't be bought. Get a separate piece of paper or create a new document and list out everything in your life that makes you happy. If you can't buy it, it's eligible for the list. It doesn't matter if it only makes you crack a smile or makes you jump for joy, list it out. </p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="104a646a62ad7a0cfb4e3ff086185fdc"><span>These are probably the things that actually make you want to get out of bed in the morning and keep on keepin' on. Once you have it all down, put it in your purse or wallet. The next time you feel the urge to buy something, whip this list out first and remind yourself why you probably don't need it.</span></p>
+
+
+
+
+
+
+
+
+
+
+<h3 data-textannotation-id="532cf992ff45d52de501c1a8f80fc152"><strong>Spend Some Time Away from Material Things to Gain Perspective</strong></h3>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="64f5c7155ad89bd2835399d33c1ae28a"><span><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--6NwBgQLy--/afy7n45jfvsjdmmhonct.jpg" data-chomp-id="afy7n45jfvsjdmmhonct" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--6NwBgQLy--/afy7n45jfvsjdmmhonct.jpg" width="636"></img></span></p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="84554492c487779e921b98fb64222177">If you're having a really hard time with your spending, it can help to get away from material objects completely. When you're constantly surrounded by stuff and have access to buying things at all times, it can be really tough to break the habit. Spend a day in the park enjoying the sights and sounds of the outdoors, go camping with some friends, or hike a trail you haven't been on before. </p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="b44add1c7b690705d672186e3a9604b6">Essentially, you want to show yourself that you don't need your "things" to have a good time. When you realize how much fun you can have without all the trinkets and trivets, you'll start to shut down your desire to buy them. If you can't get really get away right now, just go for a walk without your purse or wallet (but carry your ID). If you can't buy anything, you'll be forced to experience things a different way.</p>
+
+
+
+
+
+
+
+
+
+
+<h3 data-textannotation-id="98c11bebae0bbcdbe8411df0186d6465"><strong>Develop a Personal "Should I Buy This?" Test</strong></h3>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="ff438b878771354bb7f6d065ff50dbb2"><span><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--ciqk42G0--/s3pq8vjrvyjgne4lfsod.jpg" data-chomp-id="s3pq8vjrvyjgne4lfsod" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--ciqk42G0--/s3pq8vjrvyjgne4lfsod.jpg" width="636"></img></span></p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="4af04ae83f18d9c37da21527bcd4a290">If you don't have a personal "should I buy this?" test, now's the perfect time to make one. When you find an item you think you need or want, it has to pass all of the questions you have on your test before you can buy it. Here's where you can use all of the data you've gathered so far and put it to really good use. The test should be personalized to your own buying habits, but here are some example questions:</p>
+
+
+
+
+
+
+
+
+
+
+<ul><li data-textannotation-id="fcfd78b1619bdf0b7330f4b40efb899d">Is this a planned purchase?</li><li data-textannotation-id="c16e7d5feae7cc2c3c6a8dd312ea206f">Will it end up in the "crap" list picture one day?</li><li data-textannotation-id="54d877fdee56080c87508fc9e6402889"><a href="http://lifehacker.com/prevent-clutter-by-asking-yourself-where-items-will-go-1649480461">Where am I going to put it</a>?</li><li data-textannotation-id="59d5245217c84e6b2b2969b3492f2f2d">Have I included this in my budget?</li><li data-textannotation-id="8fe1582808b4d89f5c88c2708744d27d"><em>Why</em> do I want/need it?</li></ul><p data-textannotation-id="0162d779382cdc7de908fc1488af3940">Custom build your test to hit all of your weaknesses. If you make a lot of impulse buys, include questions that address that. If you experience a lot of buyer's remorse, include a lot of questions that make you think about the use of item after you buy it. If buying the latest and greatest technology is your weakness, Joshua Becker at Becoming Minimalist suggests you ask yourself <a href="http://www.becomingminimalist.com/marriage-hacks/" target="_blank">what problem the piece of tech solves</a>. If you can't think of anything it solves or if you already have something that solves it, you don't need it. Be thorough and build a test that you can run through your mind every time you consider buying something.</p>
+
+
+
+
+
+
+
+
+
+
+<h3 data-textannotation-id="c0ed0882675acc340dcd88e13ca514b3"><strong>Learn to Delay Gratification and Destroy the Urge to Impulse Buy</strong></h3>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="1d43712fc5ce8f156e4661cca5750575"><span><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--mtob1sjR--/y2ldv5eufb3jcrtfouye.jpg" data-chomp-id="y2ldv5eufb3jcrtfouye" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--mtob1sjR--/y2ldv5eufb3jcrtfouye.jpg" width="636"></img></span></p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="3d8086719c5da749f877629d498ccab9">When it comes to the unnecessary crap we buy, impulse purchases probably make up a good deal of them. We love to feel gratification instantly and impulse buys appeal to that with a rush of excitement with each new purchase. We like to believe that we have control over our impulses all the time, but we really don't, and that's a major problem for the ol' wallet.</p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="620ca9836425e09ec7fa50bfad204665">The key is teaching your brain that it's okay to <a href="http://lifehacker.com/overcome-the-need-for-instant-gratification-by-delaying-1636938356">wait for gratification</a>. You can do this with a simple time out every time you want something. Look at whatever you're thinking of buying, go through your personal "should I buy this?" test, and then walk away for a little while. Planning your purchases ahead is ideal, so the longer you can hold off, the better. Set yourself a reminder to check on the item <a href="http://lifehacker.com/5859632/buyers-remorse-is-inevitable-how-to-make-purchases-you-really-wont-regret">a week or month down the line</a>. When you come back to it, you may find that you don't even want it, just the gratification that would come with it. If you're shopping online, you can do the same thing. Walk away from your desk or put your phone in your pocket and do something else for a little while.</p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="a85d9eb501c898234ac5df2a56c50a13">You can also avoid online impulse purchases by <a href="http://lifehacker.com/5919833/how-to-avoid-impulse-purchases-in-the-internet-shopping-age" x-inset="1">making it harder to do</a>. Block shopping web sites during time periods you know you're at your weakest, or remove all of your saved credit card or Paypal information. You can also <a href="http://lifehacker.com/5569035/practice-the-halt-method-to-curb-impulse-purchases" x-inset="1">practice the "HALT" method</a> when you're shopping online or in a store. Try not to buy things when you're Hungry, Angry, Lonely, or Tired because you're at your weakest state mentally. Last, but not least, the "<a href="http://lifehacker.com/5320196/use-the-stranger-test-to-reduce-impulse-purchases" x-inset="1">stranger test</a>" can help you weed out bad purchases too.</p>
+
+
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="27385752c06848647540ad931892b21e">The last thing you should consider when it comes to impulse buys is "artificial replacement." As Trent Hamm at The Simple Dollar explains, artificial replacement can happen when you start to <a href="http://www.thesimpledollar.com/balancing-spending-and-time-how-time-frugality-can-save-you-lots-of-cash/" target="_blank">reduce the time</a> you get with your main interests:</p>
+
+
+
+
+
+
+
+
+
+
+<blockquote data-textannotation-id="213e2e816ac88f8d177fb0db0f7fef09">
+<p data-textannotation-id="7b98c5809df24dd04bb65285878c0335">Whenever I consistently cut quality time for my main interests out of my life, I start to long for them. As you saw in that "typical" day, I do make room for spending time with my family, but my other two main interests are absent. If that happens too many days in a row, I start to really miss reading. I start to really miss playing thoughtful board games with friends. What happens after that? <strong>I start to substitute.</strong> When I don't have the opportunity to sit down for an hour or even for half an hour and really get lost in a book, I start looking for an alternative way to fill in the tiny slices of time that I do have. I'll spend money.</p></blockquote>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="4b6cc2900ffacd3daef54b13b4caceac">You probably have things in your life that provide plenty of gratification, so don't get caught substituting it with impulse buys. Always make sure you keep yourself happy with plenty of time doing the things you like to do and you won't be subconsciously trying to fill that void with useless crap.</p>
+
+
+
+
+
+
+
+
+
+
+<h3 data-textannotation-id="aed9b435c4ed23e573c453ceeb34ed18"><strong>Turn the Money You Save Into More Money</strong></h3>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="21154394d63f1943d01f2b717aa31115"><span><img alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--4Ajak63w--/atb9qm07fvvg7hqkumkw.jpg" data-chomp-id="atb9qm07fvvg7hqkumkw" data-format="jpg" height="358" src="http://i.kinja-img.com/gawker-media/image/upload/s--4Ajak63w--/atb9qm07fvvg7hqkumkw.jpg" width="636"></img></span></p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="6141942e977cc058fd7a0fa06a3f7389">Once you've programmed your mind to stop buying crap you don't need, you'll have some extra cash to play with. Take all that money and start putting it toward your future and things you <em>will</em> need further down the road. You might need <a href="http://twocents.lifehacker.com/how-to-start-saving-for-a-home-down-payment-1541254056" target="_blank">a home</a>, a vehicle, or a way to retire, but none of that can happen until you start planning for it. </p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="90f08afddc08e2c3b45c266f2e6965ec">Start by paying off any debts you already have. Credit cards, student loans, and even car payments can force you to <a href="http://lifehacker.com/how-to-break-the-living-paycheck-to-paycheck-cycle-1445330680">live paycheck to paycheck</a>. Use the <a href="http://lifehacker.com/5940989/pay-off-small-balances-first-for-better-odds-of-eliminating-all-your-debt">snowball method</a> and pay off some small balances to make you feel motivated, then start taking out your debt in full force with the <a href="http://lifehacker.com/how-to-pay-off-your-debt-using-the-stack-method-576070292">stacking method</a>: stop creating new debt, determine which balances have the highest interest rates, and create a payment schedule to pay them off efficiently.</p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="1106cb837deb2b6fc8e28ba98f078c27">With your debts whittled down, you should start an emergency fund. No matter how well you plan things, accidents and health emergencies can still happen. An emergency fund is designed to make those kinds of events more manageable. This type of savings account is strictly for when life throws you a curveball, but you can grow one pretty easily <a href="http://twocents.lifehacker.com/how-to-grow-an-emergency-fund-from-modest-savings-1638409351" target="_blank">with only modest savings</a>.</p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="347c2a36f114a794d559d929da1b15b7">When you've paid off your debt and prepared yourself for troubled times, you can start saving for the big stuff. All that money you're not spending on crap anymore can be saved, invested, and compounded to let you buy comfort and security. If you don't know where to start, talk to a financial planner. Or create a simple, yet effective <a href="http://twocents.lifehacker.com/how-to-build-an-easy-beginner-set-and-forget-investm-1686878594" target="_blank" x-inset="1">"set and forget" investment portfolio</a>. You've worked hard to reprogram your mind, so make sure you reap the benefits for many years to come.</p>
+
+
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="b54d87ffdace50f420c3a6ff0404cbf3"><em><small>Photos by <a href="http://www.shutterstock.com/pic-129762989/stock-vector-consumer.html?src=id&amp;ws=1" target="_blank">cmgirl</a> (Shutterstock), <a href="http://www.shutterstock.com/pic-227832739/stock-vector-hacker-icon-man-in-hoody-with-laptop-flat-isolated-on-dark-background-vector-illustration.html?src=id&amp;ws=1" target="_blank">Macrovector</a> (Shutterstock), <a href="https://www.flickr.com/photos/jetheriot/6186786217" target="_blank">J E Theriot</a>, <a href="https://www.flickr.com/photos/puuikibeach/15289861843" target="_blank">davidd</a>, <a href="https://www.flickr.com/photos/funfilledgeorgie/10922459733" target="_blank">George Redgrave</a>, <a href="https://www.flickr.com/photos/amslerpix/7252002214" target="_blank">David Amsler</a>, <a href="https://www.flickr.com/photos/amalakar/7299820870" target="_blank">Arup Malakar</a>, <a href="https://www.flickr.com/photos/lobsterstew/89644885" target="_blank">J B</a>, <a href="https://www.flickr.com/photos/jakerome/3298702453" target="_blank">jakerome</a>, <a href="http://401kcalculator.org/" target="_blank">401(K) 2012</a>.</small></em></p></div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lifehacker-working/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lifehacker-working/source.html
new file mode 100644
index 000000000..9256059f8
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lifehacker-working/source.html
@@ -0,0 +1,1241 @@
+<!DOCTYPE html>
+<!--[if lt IE 8]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en-US"> <![endif]-->
+<!--[if IE 8]> <html class="no-js lt-ie9" lang="en-US"> <![endif]-->
+<!--[if IE 9]> <html class="no-js ie-9" lang="en-US"> <![endif]-->
+<!--[if gt IE 9]><!-->
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" class="no-js"><!--<![endif]--><!-- THIS IS OVERLORD --><head><meta content="IE=11; IE=10; IE=9; IE=8; IE=EDGE" http-equiv="X-UA-Compatible" /><script src="http://kinja.com/api/profile/assets/javascripts/sso.js" type="text/javascript" async=""></script>
+ <script type="text/javascript">
+ var _sf_startpt=(new Date()).getTime();
+ if (typeof(performance) !== 'undefined' &amp;&amp; typeof performance.now === 'function') {
+ var _kinjaperf_start = performance.now();
+ }
+ </script>
+
+ <script type="text/javascript">
+ (function () {
+ var w = typeof window != 'undefined' ? window : exports,
+ marks = [];
+ w.performance || (w.performance = {});
+ w.performance.now || (
+ w.performance.now = performance.now || performance.webkitNow ||
+ performance.msNow || performance.mozNow);
+ if (!w.performance.now){
+ var s = Date.now ? Date.now() : +(new Date());
+ if (performance.timing &amp;&amp; performance.timing)
+ s = performance.timing.navigationStart
+ w.performance.now = (function(){
+ var n = Date.now ? Date.now() : +(new Date());
+ return n-s;
+ });
+ }
+ w.performance.mark || (
+ w.performance.mark =
+ w.performance.webkitMark ? w.performance.webkitMark :
+ (function (l) {
+ marks.push({'name': l, 'entryType': 'mark', 'startTime': w.performance.now(), 'duration':0 });
+ }));
+ w.performance.getEntriesByType || (
+ w.performance.getEntriesByType =
+ w.performance.webkitGetEntriesByType ? w.performance.webkitGetEntriesByType :
+ (function (t) {
+ return t == 'mark' ? marks : [];
+ }));
+ w.performance.clearMarks || (
+ w.performance.clearMarks = w.performance.webkitClearMarks ? w.performance.webkitClearMarks :
+ (function () {
+ marks = [];
+ }));
+ w.markUserTime = function(l) {
+ setTimeout(function() {
+ if (typeof w.performance.mark === 'function') {
+ w.performance.mark(l);
+ }
+ if (w.console &amp;&amp; w.console.timeStamp) {
+ w.console.timeStamp(l);
+ }
+ }, 0);
+ };
+
+ }());
+ </script>
+ <script>
+ window.Krux || ((Krux = function () {
+ Krux.q.push(arguments);
+ }).q = []);
+ (function () {
+ function retrieve(n) {
+ var m, k = 'kx' + n;
+ if (window.localStorage) {
+ return window.localStorage[k] || "";
+ } else if (navigator.cookieEnabled) {
+ m = document.cookie.match(k + '=([^;]*)');
+ return (m &amp;&amp; unescape(m[1])) || "";
+ } else {
+ return '';
+ }
+ }
+ Krux.user = retrieve('user');
+ Krux.segments = retrieve('segs') &amp;&amp; retrieve('segs').split(',') || [];
+ })();
+ </script><!-- Included CSS Files --><!--[if IE 9]><link rel="stylesheet" href="http://x.kinja-static.com/assets/stylesheets/tiger-split-501c281ae23f533f6bdadd515be1ba8a.css"><![endif]--><!--[if !IE]>--><link href="http://x.kinja-static.com/assets/stylesheets/tiger-0331994048987aac81f30111327184ed.css" rel="stylesheet" /><!--<![endif]--><meta content="http://x.kinja-static.com/assets/stylesheets/editor-7fe68d97a46203c5f7e2e1703b89b8b4.css" id="editor-css-url" name="dynamic-stylesheet" /><!-- Site specific colors --> <style type="text/css">
+ a, a:hover, a:focus { color: #709602; }
+ </style><meta content="R0yw_jwnGWbokA2qgkupaWGVFJnF6qGtlgbSJEMdQkw" name="google-site-verification" /><!-- IE Fix for HTML5 Tags --><!--[if lte IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]--><meta charset="utf-8" /><!-- Set the viewport width to device width for mobile --><meta content="width=device-width, initial-scale=1.0, minimum-scale=1.0,maximum-scale=10.0" name="viewport" /><meta content="INDEX, FOLLOW" name="ROBOTS" /><title>How to Program Your Mind to Stop Buying Crap You Don’t Need</title><!-- favicon and touch icons --><link href="http://i.kinja-img.com/gawker-media/image/upload/s--rqDhe7s2--/c_fill,fl_progressive,g_center,h_80,q_80,w_80/192oza44hceztpng.png" rel="shortcut icon" /><link href="http://i.kinja-img.com/gawker-media/image/upload/s--bBeYJ-7Z--/c_fill,fl_progressive,g_center,h_200,q_80,w_200/192oza44hceztpng.png" rel="apple-touch-icon" /><meta content="http://i.kinja-img.com/gawker-media/image/upload/s--rqDhe7s2--/c_fill,fl_progressive,g_center,h_80,q_80,w_80/192oza44hceztpng.png" name="msapplication-square70x70logo" /><meta content="http://i.kinja-img.com/gawker-media/image/upload/s--bBeYJ-7Z--/c_fill,fl_progressive,g_center,h_200,q_80,w_200/192oza44hceztpng.png" name="msapplication-square150x150logo" /><!-- rss --><link href="http://feeds.gawker.com/lifehacker/full" title="Lifehacker - All stories" type="application/rss+xml" rel="alternate" /><!-- Open Graph/Facebook headers --><meta content="money, shopping, saving money, personal finances, mind hacks, habits, budget, psychology, editor&amp;#39;s picks, Lifehacker" name="keywords" /><meta content="money, shopping, saving money, personal finances, mind hacks, habits, budget, psychology, editor&amp;#39;s picks, Lifehacker" name="news_keywords" /><link href="http://lifehacker.com/how-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064" rel="canonical" /><meta content="http://lifehacker.com/how-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064" name="twitter:url" /><meta content="How to Program Your Mind to Stop Buying Crap You Don’t Need" property="og:title" /><meta content="article" property="og:type" /><meta content="http://i.kinja-img.com/gawker-media/image/upload/s--hqqO9fze--/n1s6c2m6kc07iqdyllj6.jpg" name="twitter:image" /><meta content="http://i.kinja-img.com/gawker-media/image/upload/s--hqqO9fze--/n1s6c2m6kc07iqdyllj6.jpg" property="og:image" /><meta content="Patrick Allan" name="author" /><meta content="http://lifehacker.com/how-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064" property="og:url" /> <!-- permalink --><meta content="summary_large_image" name="twitter:card" /><meta content="@lifehacker" name="twitter:site" /><meta content="How to Program Your Mind to Stop Buying Crap You Don’t Need" name="twitter:title" /><meta content="We all buy things from time to time that we don't really need. It's okay to appeal to your wants every once in a while, as long as you're in control. If you struggle with clutter, impulse buys, and buyer's remorse, here's how to put your mind in the right place before you even set foot in a store." name="twitter:description" /><meta name="twitter:creator" /><meta content="We all buy things from time to time that we don't really need. It's okay to appeal to your wants every once in a while, as long as you're in control. If you struggle with clutter, impulse buys, and buyer's remorse, here's how to put your mind in the right place before you even set foot in a store." property="og:description" /><meta content="We all buy things from time to time that we don't really need. It's okay to appeal to your wants every once in a while, as long as you're in control. If you struggle with clutter, impulse buys, and buyer's remorse, here's how to put your mind in the right place before you even set foot in a store." name="description" /><meta content="en_US" property="og:locale" /><meta content="Lifehacker" property="og:site_name" /><meta content="37418175030" property="fb:app_id" /><meta content="live" name="kinja:mode" /><meta content="permalink" name="kinja:page-type" /><script async="" type="text/javascript" src="http://d8rk54i4mohrb.cloudfront.net/js/reach.js"></script><script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="layer/Main" src="http://x.kinja-static.com/assets/javascripts-min/layer/Main-en-US-fc52d10f1350408009c8c771fe092f72.js"></script><script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="layer/PostApp" src="http://x.kinja-static.com/assets/javascripts-min/layer/PostApp-en-US-c004ba34b8896c19ebcaf45ecd2464f1.js"></script><script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="module/Raven" src="http://x.kinja-static.com/assets/javascripts-min/module/Raven-en-US-3467f3aed7fecb0be39f14c0d7095e44.js"></script></head><body data-timezone-offset="-25200000" class="lifehacker custom-skin permalink en-US f_ads_controller_on f_ads_mv_separation_on f_amazon_matchbuy_on f_amazon_selective_clientside_render_on f_analyticstracking_on f_bigpic_share_on f_biztools_blogname_on f_black_search_icon_on f_cda_on_hash_on f_comment_annotation_template_merge_on f_coredecorators_on f_coreinsets_on f_corelikes_on f_crossdomainanalytics_on f_direct_core_annotations_on f_direct_core_extendedlike_on f_direct_core_post_update_on f_direct_core_reposts_on f_editor_dst_fix_on f_editor_timezone_fix_on f_engine_agnostic_link_modal_on f_foobar_foo f_footer_new_chartbeat_on f_foreplay_copy_update_on f_gnc_on f_gns_on f_gnx_on f_grecaptcha_on f_groupchats_rendering_performance_on f_hide_pending_replies_on f_iframe_resize_on f_insetmetrics_on f_json_post_sync_on f_large_post_performance_on f_limit_draft_controls_on f_longer_permalink_cache_time_1800_on f_moatads_headertag_on f_moatads_promoted_on f_mobile_ad_prototypes_on f_mobile_ad_prototypes_permalink_on f_multioauth_on f_new_editor_css_on f_new_editor_message_on f_newblogproperties_on f_newbuttons_on f_newfollowlists_on f_no_follow_pending_on f_permalink_body_mobile_ad_on f_permalinkservice_feedcontroller_on f_permalinkservice_inviteservice_on f_pinterest_on f_pinterest_hoverbutton_on f_pinterest_mobilepanel_on f_popular_6_on f_postlistclickmetrics_on f_postlisttracking_on f_pre_share_view_on f_promoted_touch_on f_purge_permalink_on_update_on f_raven_on f_recommended_footer_on f_redactor_on f_remove_spinner_on f_s3assets_on f_scheduled_shares_on f_scribe_on f_sha_amazon_links_subtags_on f_simplereach_expanded_on f_tablet_popular_on f_throttle_on f_throttle_measuring_off f_throttle_test_foo_lorem f_twitter_embed_fix_on f_uidimages_on f_unify_amazon_insets_permalink_on f_universalanalytics_on f_userstats_on f_viewstats_via_service_on k_liveblog_appRevision_1 k_liveblog_pollIntervalMillis_10000 k_maintenance_off"><div id="js_success-box-container" class="success-messages"></div>
+ <script type="text/javascript">
+ var readOnlyRequest;
+ var cn = "read-only";
+ var cacheBusterParam = "?cb=" + Math.floor(Date.now() / 60000); // update every minute
+ var setReadOnly = function () {
+ document.body.className = (document.body.className === '') ? cn : document.body.className + ' ' + cn;
+ };
+ if (window.XMLHttpRequest) {
+ readOnlyRequest = new XMLHttpRequest();
+ } else if (window.ActiveXObject) {
+ readOnlyRequest = new ActiveXObject("Microsoft.XMLHTTP");
+ }
+ readOnlyRequest.onreadystatechange = function() {
+ if (readOnlyRequest.readyState == 4 &amp;&amp; readOnlyRequest.status &gt;= 500 &amp;&amp; readOnlyRequest.status &lt; 600) {
+ setReadOnly();
+ }
+ };
+ readOnlyRequest.open('GET', "/ajax/readOnlyMode" + cacheBusterParam);
+ readOnlyRequest.send();
+ </script>
+ <div data-offcanvas="" class="off-canvas-wrap" id="js_off-canvas-wrap"><div class="inner-wrap"><aside class="left-off-canvas-menu show-for-medium-down proxima nav-dropdown main-menu"> <div id="js_blogmenu--offcanvas"><div class="search show-for-medium-down"> <form onsubmit="window.ga('send', 'event', 'Search', 'Submit', 'permalink');" action="/search" class="search search-simple" method="GET"><div class="input-with-icon"><span class="icon icon-search"></span><input type="text" data-focus-on-display="" autocomplete="off" class="mbn" name="q" placeholder="Search" /></div></form></div><div class="divider show-for-medium-down"></div><div class="js_login-links show-for-medium-down"></div> <ul class="show-for-medium-down"><li data-blogid="17" class="add js_follow-controls js_follow-blog-controls follow-controls--blog-menu"><a class="js_followblogforuser proxima" href="#"><span class="icon icon-plus-alt"></span> <span>Follow Lifehacker</span></a><a class="js_unfollowblogforuser proxima hide" href="#"><span class="icon icon-checkmark-alt"></span> <span>Followed</span></a></li><li></li></ul><ul class="related-blog-list"><li class="title">Related blogs</li> <li><a data-ga="[Kinja Menu, Related Blog Click, Hackerspace]" href="http://hackerspace.lifehacker.com"><span class="icon icon-sprite site-icon site-icon-default icon-prepend"></span>Hackerspace</a></li><li><a data-ga="[Kinja Menu, Related Blog Click, After Hours]" href="http://afterhours.lifehacker.com"><span class="icon icon-sprite site-icon site-icon-default icon-prepend"></span>After Hours</a></li><li><a data-ga="[Kinja Menu, Related Blog Click, Two Cents]" href="http://twocents.lifehacker.com"><span class="icon icon-sprite site-icon site-icon-default icon-prepend"></span>Two Cents</a></li><li><a data-ga="[Kinja Menu, Related Blog Click, Workshop]" href="http://workshop.lifehacker.com"><span class="icon icon-sprite site-icon site-icon-default icon-prepend"></span>Workshop</a></li><li><a data-ga="[Kinja Menu, Related Blog Click, Vitals]" href="http://vitals.lifehacker.com"><span class="icon icon-sprite site-icon site-icon-default icon-prepend"></span>Vitals</a></li><li><a data-ga="[Kinja Menu, Related Blog Click, Skillet]" href="http://skillet.lifehacker.com"><span class="icon icon-sprite site-icon site-icon-default icon-prepend"></span>Skillet</a></li><li><a data-ga="[Kinja Menu, Related Blog Click, Shop Talk]" href="http://shoptalk.lifehacker.com"><span class="icon icon-sprite site-icon site-icon-default icon-prepend"></span>Shop Talk</a></li></ul><div class="divider"></div><ul class="gmg-blog-list"><li class="title">Blogs you may like</li> <li><a data-ga="[Kinja Menu, Blogs You May Like Click, Deadspin]" href="http://deadspin.com"><span class="icon icon-prepend icon-sprite site-icon site-icon-deadspin"></span>Deadspin</a></li><li><a data-ga="[Kinja Menu, Blogs You May Like Click, Gawker]" href="http://gawker.com"><span class="icon icon-prepend icon-sprite site-icon site-icon-gawker"></span>Gawker</a></li><li><a data-ga="[Kinja Menu, Blogs You May Like Click, Gizmodo]" href="http://gizmodo.com"><span class="icon icon-prepend icon-sprite site-icon site-icon-gizmodo"></span>Gizmodo</a></li><li><a data-ga="[Kinja Menu, Blogs You May Like Click, io9]" href="http://io9.com"><span class="icon icon-prepend icon-sprite site-icon site-icon-io9"></span>io9</a></li><li><a data-ga="[Kinja Menu, Blogs You May Like Click, Jalopnik]" href="http://jalopnik.com"><span class="icon icon-prepend icon-sprite site-icon site-icon-jalopnik"></span>Jalopnik</a></li><li><a data-ga="[Kinja Menu, Blogs You May Like Click, Jezebel]" href="http://jezebel.com"><span class="icon icon-prepend icon-sprite site-icon site-icon-jezebel"></span>Jezebel</a></li><li><a data-ga="[Kinja Menu, Blogs You May Like Click, Kotaku]" href="http://kotaku.com"><span class="icon icon-prepend icon-sprite site-icon site-icon-kotaku"></span>Kotaku</a></li><li><a data-ga="[Kinja Menu, Blogs You May Like Click, Lifehacker]" href="http://lifehacker.com"><span class="icon icon-prepend icon-sprite site-icon site-icon-lifehacker"></span>Lifehacker</a></li><li><a data-ga="[Kinja Menu, Blogs You May Like Click, Sploid]" href="http://sploid.gizmodo.com/"><span class="icon icon-prepend icon-sprite site-icon site-icon-sploid"></span>Sploid</a></li></ul></div><div class="divider"></div></aside><aside class="right-off-canvas-menu show-for-medium-down proxima nav-dropdown"> <dl data-tab="" class="tabs row"><dd class="js_username-tab tab-title active small-6 columns"><a class="js_username" href="#js_usermenu--offcanvas">Username</a></dd><dd class="js_notif-tab tab-title small-6 columns"><a href="#js_notifications--offcanvas">Notifications</a></dd></dl><div class="tabs-content"><div id="js_usermenu--offcanvas" class="content active"><div class="divider"></div></div><div id="js_notifications--offcanvas" class="content notif-menu js_notif-panel"><div class="divider"></div></div></div></aside><a class="exit-off-canvas"></a> <!-- md5! --><div class="js_top-nav-wrap top-nav fixed shadow-bottom"><nav class="js_top-nav row proxima"><div class="header flex-container horizontal-nowrap"><div class="flex-item off-canvas-toggle__wrapper show-for-medium-down"><a data-ga="[Kinja Menu, Menu Click, js_pageType]" class="left-off-canvas-toggle menu-square"><span class="icon-hamburger"><span></span><span></span><span></span></span></a></div><div class="flex-item kinja-title__wrapper hide-for-medium-down"><a class="js_menu-button" data-dropdown="global-blog"><span data-ga="[Kinja Menu, Menu Click, js_pageType]" class="menu-square menu-square--desktop"><span class="icon-hamburger"><span></span><span></span><span></span></span></span></a></div><div data-image-asset-path="http://x.kinja-static.com/assets/images/" data-logo-src="http://i.kinja-img.com/gawker-media/image/upload/s--TBjOdHcL--/c_fit,fl_progressive,q_80,w_600/bwiqhbo45ulldozwchb0.png" class="blog-title-region js_blog-title-region flex-item flex-grow"></div><div class="flex-item header-right"><div class="right user-bar js_right-user-bar"></div></div></div><div data-dropdown-content="" id="global-blog" class="proxima f-dropdown content nav-dropdown main-menu hide-for-medium-down"><div id="js_blogmenu--dropdown"><div class="search show-for-medium-down"> <form onsubmit="window.ga('send', 'event', 'Search', 'Submit', 'permalink');" action="/search" class="search search-simple" method="GET"><div class="input-with-icon"><span class="icon icon-search"></span><input type="text" data-focus-on-display="" autocomplete="off" class="mbn" name="q" placeholder="Search" /></div></form></div><div class="divider show-for-medium-down"></div><div class="js_login-links show-for-medium-down"></div> <ul class="show-for-medium-down"><li data-blogid="17" class="add js_follow-controls js_follow-blog-controls follow-controls--blog-menu"><a class="js_followblogforuser proxima" href="#"><span class="icon icon-plus-alt"></span> <span>Follow Lifehacker</span></a><a class="js_unfollowblogforuser proxima hide" href="#"><span class="icon icon-checkmark-alt"></span> <span>Followed</span></a></li><li></li></ul><ul class="related-blog-list"><li class="title">Related blogs</li> <li><a data-ga="[Kinja Menu, Related Blog Click, Hackerspace]" href="http://hackerspace.lifehacker.com"><span class="icon icon-sprite site-icon site-icon-default icon-prepend"></span>Hackerspace</a></li><li><a data-ga="[Kinja Menu, Related Blog Click, After Hours]" href="http://afterhours.lifehacker.com"><span class="icon icon-sprite site-icon site-icon-default icon-prepend"></span>After Hours</a></li><li><a data-ga="[Kinja Menu, Related Blog Click, Two Cents]" href="http://twocents.lifehacker.com"><span class="icon icon-sprite site-icon site-icon-default icon-prepend"></span>Two Cents</a></li><li><a data-ga="[Kinja Menu, Related Blog Click, Workshop]" href="http://workshop.lifehacker.com"><span class="icon icon-sprite site-icon site-icon-default icon-prepend"></span>Workshop</a></li><li><a data-ga="[Kinja Menu, Related Blog Click, Vitals]" href="http://vitals.lifehacker.com"><span class="icon icon-sprite site-icon site-icon-default icon-prepend"></span>Vitals</a></li><li><a data-ga="[Kinja Menu, Related Blog Click, Skillet]" href="http://skillet.lifehacker.com"><span class="icon icon-sprite site-icon site-icon-default icon-prepend"></span>Skillet</a></li><li><a data-ga="[Kinja Menu, Related Blog Click, Shop Talk]" href="http://shoptalk.lifehacker.com"><span class="icon icon-sprite site-icon site-icon-default icon-prepend"></span>Shop Talk</a></li></ul><div class="divider"></div><ul class="gmg-blog-list"><li class="title">Blogs you may like</li> <li><a data-ga="[Kinja Menu, Blogs You May Like Click, Deadspin]" href="http://deadspin.com"><span class="icon icon-prepend icon-sprite site-icon site-icon-deadspin"></span>Deadspin</a></li><li><a data-ga="[Kinja Menu, Blogs You May Like Click, Gawker]" href="http://gawker.com"><span class="icon icon-prepend icon-sprite site-icon site-icon-gawker"></span>Gawker</a></li><li><a data-ga="[Kinja Menu, Blogs You May Like Click, Gizmodo]" href="http://gizmodo.com"><span class="icon icon-prepend icon-sprite site-icon site-icon-gizmodo"></span>Gizmodo</a></li><li><a data-ga="[Kinja Menu, Blogs You May Like Click, io9]" href="http://io9.com"><span class="icon icon-prepend icon-sprite site-icon site-icon-io9"></span>io9</a></li><li><a data-ga="[Kinja Menu, Blogs You May Like Click, Jalopnik]" href="http://jalopnik.com"><span class="icon icon-prepend icon-sprite site-icon site-icon-jalopnik"></span>Jalopnik</a></li><li><a data-ga="[Kinja Menu, Blogs You May Like Click, Jezebel]" href="http://jezebel.com"><span class="icon icon-prepend icon-sprite site-icon site-icon-jezebel"></span>Jezebel</a></li><li><a data-ga="[Kinja Menu, Blogs You May Like Click, Kotaku]" href="http://kotaku.com"><span class="icon icon-prepend icon-sprite site-icon site-icon-kotaku"></span>Kotaku</a></li><li><a data-ga="[Kinja Menu, Blogs You May Like Click, Lifehacker]" href="http://lifehacker.com"><span class="icon icon-prepend icon-sprite site-icon site-icon-lifehacker"></span>Lifehacker</a></li><li><a data-ga="[Kinja Menu, Blogs You May Like Click, Sploid]" href="http://sploid.gizmodo.com/"><span class="icon icon-prepend icon-sprite site-icon site-icon-sploid"></span>Sploid</a></li></ul></div></div><div data-dropdown-content="" id="js_notifications--dropdown" class="proxima f-dropdown nav-dropdown content notif-menu"></div><div class="js_global-user scrollable-container noskimlinks noskimwords"><div data-dropdown-content="" id="js_usermenu--dropdown" class="proxima f-dropdown nav-dropdown content user-menu user-menu--mobile"></div></div></nav></div><div class="js_ad-top row ad-wide ad-top show-for-xlarge-up" id="ad-970x90-container"><div class="column"> <div class="ad-unit js_ad-unit ad-top-banner js_ad-top-banner"><div data-zone-type="TOP_BANNER" class="ad-container js_ad-container" id="ad-container-21598451"></div></div></div></div><div class="row page js_page"><div class="large-4 columns sidebar hide-for-medium-down"><div class="sidebar-container js_sidebar-actual-container"> <div class="sidebar-content js_sidebar-container js_sidebar"><section class="leftrailmodule js_leftrailmodule leftrailmodule--trending" id="js_leftrailmodule--trending"> <div class="strapline proxima text-upper text-micro strapline--leftrail"><span class="strapline-bg">Trending on Kinja</span></div><div class="js_related-module "><ol class="leftrail-list leftrail-list--trending js_leftrail-list"> <li class="row leftrail-item leftrail-item--trending js_leftrail-item"><div class="large-1 columns"><div class="leftrail-marker">1.</div></div><div class="large-5 columns"><a data-ga="[Trending module click, position 1, js_pageType]" href="http://deadspin.com/aaron-hernandez-is-an-idiot-but-he-still-might-get-awa-1692206981"><img alt="Aaron Hernandez Is An Idiot, But He Still Might Get Away With Murder" src="http://i.kinja-img.com/gawker-media/image/upload/s--1YlShHHH--/c_fill,fl_progressive,g_north,h_180,q_80,w_320/rm2n6mfzgsokjaqqiohy.png" class="leftrail-image" /></a></div><div class="large-6 columns"><h6 class="headline"><a data-ga="[Trending module click, position 1, js_pageType]" href="http://deadspin.com/aaron-hernandez-is-an-idiot-but-he-still-might-get-awa-1692206981">Aaron Hernandez Is An Idiot, But He Still Might Get Away With Murder</a></h6><div class="byline proxima text-small"> <a class="text-light byline__source" href="//deadspin.com">on Deadspin</a></div></div></li> <li class="row leftrail-item leftrail-item--trending js_leftrail-item"><div class="large-1 columns"><div class="leftrail-marker">2.</div></div><div class="large-11 columns"><h6 class="headline"><a data-ga="[Trending module click, position 2, js_pageType]" href="http://jalopnik.com/top-gear-hosts-james-may-and-richard-hammond-react-to-c-1693566118"><i>Top Gear</i> Hosts James May And Richard Hammond React To Clarkson Firing</a></h6><div class="byline proxima text-small"> <a class="text-light byline__source" href="//jalopnik.com">on Jalopnik</a></div></div></li> <li class="row leftrail-item leftrail-item--trending js_leftrail-item"><div class="large-1 columns"><div class="leftrail-marker">3.</div></div><div class="large-11 columns"><h6 class="headline"><a data-ga="[Trending module click, position 3, js_pageType]" href="http://jalopnik.com/jeremy-clarkson-officially-fired-from-top-gear-1693551101">Jeremy Clarkson Officially Fired From <i>Top Gear</i></a></h6><div class="byline proxima text-small"> <a class="text-light byline__source" href="//jalopnik.com">on Jalopnik</a></div></div></li></ol></div></section> <section class="js_contained-ad-container contained-ad-container leftrailmodule js_leftrailmodule invisible" id="js_leftrailmodule--preloadedad"><div class="contained-ad-wrapper js_contained-ad-wrapper"> <div class="ad-unit js_ad-unit ad-left-rail js_ad-left-rail"><div data-zone-type="LEFT_RAIL" class="ad-container js_ad-container" id="ad-container-68431215"></div></div></div></section><section class="leftrailmodule js_leftrailmodule leftrailmodule--popular invisible" id="js_leftrailmodule--popular"> <div class="strapline proxima text-upper text-micro strapline--leftrail"><span class="strapline-bg">Written by <a href="//patrickallan.kinja.com/">Patrick Allan</a></span></div><div class="js_related-module "><ol class="leftrail-list leftrail-list--popular js_leftrail-list"> <li class="row leftrail-item leftrail-item--popular js_leftrail-item recommended"><div class="row"><div class="large-12 columns leftrail-image-wrap"><a data-ga="[Popular stories click, position 1, js_pageType]" href="http://lifehacker.com/why-you-should-periodically-replace-your-surge-protecto-1693447062"><img alt="Why You Should Periodically Replace Your Surge Protectors" src="http://i.kinja-img.com/gawker-media/image/upload/s--eJ7nuZsO--/c_fill,fl_progressive,g_center,h_180,q_80,w_320/wuhmkpql6xdxuu0xnmc5.jpg" class="leftrail-image" /></a></div></div><div class="row"><div class="large-12 columns"><h6 class="headline"><a data-ga="[Popular stories click, position 1, js_pageType]" href="http://lifehacker.com/why-you-should-periodically-replace-your-surge-protecto-1693447062">Why You Should Periodically Replace Your Surge Protectors</a></h6></div></div><div class="row"><div class="large-12 columns"><div class="leftrail-separator"></div></div></div></li> <li class="row leftrail-item leftrail-item--popular js_leftrail-item recommended"><div class="row"><div class="large-12 columns leftrail-image-wrap"><a data-ga="[Popular stories click, position 2, js_pageType]" href="http://lifehacker.com/remove-burned-grease-and-food-gunk-from-sponges-with-a-1693435757"><img alt="Remove Burned Grease and Food Gunk from Sponges with a Salt Water Soak" src="http://i.kinja-img.com/gawker-media/image/upload/s--D5VWh239--/c_fill,fl_progressive,g_center,h_180,q_80,w_320/cuu0eau8uoxgunp37kgb.jpg" class="leftrail-image" /></a></div></div><div class="row"><div class="large-12 columns"><h6 class="headline"><a data-ga="[Popular stories click, position 2, js_pageType]" href="http://lifehacker.com/remove-burned-grease-and-food-gunk-from-sponges-with-a-1693435757">Remove Burned Grease and Food Gunk from Sponges with a Salt Water Soak</a></h6></div></div><div class="row"><div class="large-12 columns"><div class="leftrail-separator"></div></div></div></li> <li class="row leftrail-item leftrail-item--popular js_leftrail-item recommended"><div class="row"><div class="large-12 columns leftrail-image-wrap"><a data-ga="[Popular stories click, position 3, js_pageType]" href="http://lifehacker.com/prioritize-your-habit-changes-based-on-what-problem-wil-1693431544"><img alt="Prioritize Your Habit Changes Based on What Problem Will Be Solved" src="http://i.kinja-img.com/gawker-media/image/upload/s--xcx_Hkf8--/c_fill,fl_progressive,g_center,h_180,q_80,w_320/qqwf5kig4pevcjrprzie.jpg" class="leftrail-image" /></a></div></div><div class="row"><div class="large-12 columns"><h6 class="headline"><a data-ga="[Popular stories click, position 3, js_pageType]" href="http://lifehacker.com/prioritize-your-habit-changes-based-on-what-problem-wil-1693431544">Prioritize Your Habit Changes Based on What Problem Will Be Solved</a></h6></div></div><div class="row"><div class="large-12 columns"><div class="leftrail-separator"></div></div></div></li></ol></div></section></div></div></div><script>markUserTime('Content - Before main column');</script><div class="large-8 columns main-column"> <div id="fb-root"></div><div class="row content-header hide-for-medium-down"><div class="js_site-header site-header column"><a title="Lifehacker" class="site-logo mln" href="/"><img alt="" src="http://i.kinja-img.com/gawker-media/image/upload/s--TBjOdHcL--/c_fit,fl_progressive,q_80,w_600/bwiqhbo45ulldozwchb0.png" class="logo" /></a></div><div class="header-action-wrapper"><div data-blogid="17" class="add js_follow-controls js_follow-blog-controls js_follow-buttons follow-controls right header-action"><a title="Follow Lifehacker" class="js_followblogforuser follow-controls__link proxima" href="#"><span class="icon icon-plus"></span> <span class="hide-for-medium-down">Follow</span></a><a title="Unfollow Lifehacker" class="js_unfollowblogforuser proxima follow-controls__link hide" href="#"><span class="icon icon-checkmark"></span> <span class="hide-for-medium-down">Followed</span></a></div></div></div> <section class="branch-wrapper "> <div data-reveal="" class="reveal-modal js_foreplay foreplay proxima noskimlinks noskimwords" id="foreplay"><div id="jwPlayerVideo"></div><a class="close js_foreplay-close" href="#">You can skip this ad in 5 seconds.</a></div> <div class="js_ie-message hide"></div><div class="editorplaceholder" id="editorplaceholder"></div><div class="post-wrapper js_post-wrapper "> <article data-model="%7B%22id%22%3A1690268064%2C%22permalink%22%3A%22http%3A%2F%2Flifehacker.com%2Fhow-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064%22%2C%22permalinkPath%22%3A%22%2Fhow-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064%22%2C%22isBlip%22%3Afalse%2C%22isRecommended%22%3Atrue%2C%22publishTimeMillis%22%3A1425913200851%2C%22publishTime%22%3A%7B%22timestamp%22%3A1425913200851%2C%22timezone%22%3A%22America%2FLos_Angeles%22%2C%22MdyHm%22%3A%2203%2F09%2F2015%2008%3A00%22%2C%22MdyatHm%22%3A%2203%2F09%2F2015%20at%2008%3A00%22%2C%22rfc822%22%3A%22Mon%2C%209%20Mar%202015%2015%3A00%3A00%20GMT%22%2C%22yMdHmsZ%22%3A%222015-03-09T08%3A00%3A00-07%3A00%22%2C%22hmma%22%3A%228%3A00am%22%2C%22day%22%3A%22Monday%22%2C%22Mddyyhmma%22%3A%223%2F09%2F15%208%3A00am%22%2C%22fullDate%22%3A%22March%209%2C%202015%22%2C%22relative%22%3A%7B%22amount%22%3Anull%2C%22type%22%3A%22greaterthanweek%22%7D%7D%2C%22status%22%3A%22PUBLISHED%22%2C%22author%22%3A%7B%22id%22%3A%22602884910%22%2C%22screenName%22%3A%22PatrickAllan%22%2C%22displayName%22%3A%22Patrick%20Allan%22%2C%22defaultBlogId%22%3A602884922%2C%22defaultBlog%22%3Anull%2C%22avatar%22%3A%7B%22id%22%3A%22gzonxhes6bl4p9k4gzpl%22%2C%22format%22%3A%22jpg%22%7D%7D%2C%22authorId%22%3A%22602884910%22%2C%22byline%22%3A%22%22%2C%22isStarter%22%3Atrue%2C%22blogId%22%3A%5B602884922%2C17%5D%2C%22defaultBlogId%22%3A17%2C%22authorBlogId%22%3A602884922%2C%22authorBlogName%22%3A%22patrickallan%22%2C%22allowReplies%22%3Atrue%2C%22isBillboardPost%22%3Afalse%2C%22liveBlog%22%3Afalse%2C%22headline%22%3A%22How%20to%20Program%20Your%20Mind%20to%20Stop%20Buying%20Crap%20You%20Don%E2%80%99t%20Need%22%2C%22adZone%22%3A%22partners%22%2C%22tagUrlNames%22%3A%22money%2Cshopping%2Csaving-money%2Cpersonal-finances%2Cmind-hacks%2Chabits%2Cbudget%2Cpsychology%2Ceditors-picks%22%2C%22replyCount%22%3A146%2C%22sharedPostId%22%3Anull%2C%22images%22%3A%5B%7B%22src%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fs--mlR3Ku0_--%2Fxrhkwleyurcizy4akiae.jpg%22%2C%22uri%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fxrhkwleyurcizy4akiae.jpg%22%2C%22id%22%3A%22xrhkwleyurcizy4akiae%22%2C%22width%22%3A636%2C%22height%22%3A358%2C%22format%22%3A%22jpg%22%2C%22recommended%22%3Anull%7D%2C%7B%22src%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fs--4Ajak63w--%2Fatb9qm07fvvg7hqkumkw.jpg%22%2C%22uri%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fatb9qm07fvvg7hqkumkw.jpg%22%2C%22id%22%3A%22atb9qm07fvvg7hqkumkw%22%2C%22width%22%3A636%2C%22height%22%3A358%2C%22format%22%3A%22jpg%22%2C%22recommended%22%3Anull%7D%2C%7B%22src%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fs--QeUTCiuW--%2Fo4dpyrcbiqyfrc3bxx6p.jpg%22%2C%22uri%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fo4dpyrcbiqyfrc3bxx6p.jpg%22%2C%22id%22%3A%22o4dpyrcbiqyfrc3bxx6p%22%2C%22width%22%3A636%2C%22height%22%3A358%2C%22format%22%3A%22jpg%22%2C%22recommended%22%3Anull%7D%2C%7B%22src%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fs--hqqO9fze--%2Fn1s6c2m6kc07iqdyllj6.jpg%22%2C%22uri%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fn1s6c2m6kc07iqdyllj6.jpg%22%2C%22id%22%3A%22n1s6c2m6kc07iqdyllj6%22%2C%22width%22%3A636%2C%22height%22%3A358%2C%22format%22%3A%22jpg%22%2C%22recommended%22%3Atrue%7D%2C%7B%22src%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fs--6NwBgQLy--%2Fafy7n45jfvsjdmmhonct.jpg%22%2C%22uri%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fafy7n45jfvsjdmmhonct.jpg%22%2C%22id%22%3A%22afy7n45jfvsjdmmhonct%22%2C%22width%22%3A636%2C%22height%22%3A358%2C%22format%22%3A%22jpg%22%2C%22recommended%22%3Anull%7D%2C%7B%22src%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fs--mtob1sjR--%2Fy2ldv5eufb3jcrtfouye.jpg%22%2C%22uri%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fy2ldv5eufb3jcrtfouye.jpg%22%2C%22id%22%3A%22y2ldv5eufb3jcrtfouye%22%2C%22width%22%3A636%2C%22height%22%3A358%2C%22format%22%3A%22jpg%22%2C%22recommended%22%3Anull%7D%2C%7B%22src%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fs--x9hLbIKJ--%2Fimfc9ybqfw0jmztbhfrh.jpg%22%2C%22uri%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fimfc9ybqfw0jmztbhfrh.jpg%22%2C%22id%22%3A%22imfc9ybqfw0jmztbhfrh%22%2C%22width%22%3A636%2C%22height%22%3A358%2C%22format%22%3A%22jpg%22%2C%22recommended%22%3Anull%7D%2C%7B%22src%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fs--Tacb0tyW--%2Fqodag11euf2npkawkn9v.jpg%22%2C%22uri%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fqodag11euf2npkawkn9v.jpg%22%2C%22id%22%3A%22qodag11euf2npkawkn9v%22%2C%22width%22%3A636%2C%22height%22%3A358%2C%22format%22%3A%22jpg%22%2C%22recommended%22%3Anull%7D%2C%7B%22src%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fs--ciqk42G0--%2Fs3pq8vjrvyjgne4lfsod.jpg%22%2C%22uri%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fs3pq8vjrvyjgne4lfsod.jpg%22%2C%22id%22%3A%22s3pq8vjrvyjgne4lfsod%22%2C%22width%22%3A636%2C%22height%22%3A358%2C%22format%22%3A%22jpg%22%2C%22recommended%22%3Anull%7D%5D%2C%22videos%22%3A%5B%5D%2C%22parentId%22%3Anull%2C%22parentAuthorId%22%3Anull%2C%22starterId%22%3A1690268064%7D" id="post_1690268064" data-id="1690268064" class="post hentry js_post_item status-published post-item-permalink commented js_amazon_module marquee-post"> <div class="row content-wrapper"><div class="column"><div class="row js_kinja-share-wrapper hide"><div class="column post-tools-above"><a class="js_kinja-share replywithshare inline-block" href="#"><span class="icon icon-reload"></span></a></div></div><header class=""><h1 class="headline hover-highlight entry-title"><a onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - post header', 'standard');" data-id="" href="http://lifehacker.com/how-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064">How to Program Your Mind to Stop Buying Crap You Don’t Need</a></h1></header> <div class="meta-container without-dropdown"> <div data-blogid="602884922" data-authorid="602884910" class="meta-avatar js_author"> <span class="meta-tools"><div class="view-count-container"></div><a title="Recommend" class="js_like button-recommend-post hover-icon" href="#" data-likecount="36"><span class="js_like_count">36</span><span class="icon icon-star icon-append js_like_icon"></span></a><div class="js_like-list-container"></div></span><div data-dropdownhover-container="" class="floated-container img-30"> <div data-dropdownhover-content="" class="f-dropdown author-hovercard content small whitelisted-links js_avatar-popover" id="1690268064-hovercard"><span class="floated-container img-60 avatar-container js_avatar-container"><span class="avatar"><span class="icon icon-checkmark icon-followed"></span><img alt="PatrickAllan" data-src="http://i.kinja-img.com/gawker-media/image/upload/s--LikxhIZs--/c_fill,fl_progressive,g_center,h_120,q_80,w_120/gzonxhes6bl4p9k4gzpl.jpg" /></span><div data-blogid="602884922" data-authorid="602884910" class="js_follow-controls js_author-follow-controls"><h4>Patrick Allan</h4><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Hover card - profile button click');" target="_blank" class="button tiny secondary mrs" href="http://patrickallan.kinja.com">Profile</a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Hover card - follow button click');" class="button tiny secondary js_followforuser mrs" href="#">Follow</a><a class="button tiny secondary js_unfollowforuser mrs hide" href="#">Unfollow</a></div></span></div> <div data-dropdownhover="1690268064-hovercard" class="avatar avatar-container js_avatar-container"><span class="icon icon-checkmark icon-followed"></span><a href="http://patrickallan.kinja.com"><span class="img-border"><img src="http://i.kinja-img.com/gawker-media/image/upload/s--e6LwIJS6--/c_fill,fl_progressive,g_center,h_80,q_80,w_80/gzonxhes6bl4p9k4gzpl.jpg" /></span></a></div><div class="txt"> <span class="display-name author vcard"><a onclick="window.ga('send', 'event', 'byline', 'click', 'permalink');" class="fn url" data-dropdownhover-anchor="1690268064-hovercard" target="_self" href="http://patrickallan.kinja.com">Patrick Allan</a></span><div class="second-line post-meta">Filed to: <a data-options="is_hover:true" data-dropdown="taglist" data-urlname="money" href="/tag/money" class="first-tag ">money</a> <div data-dropdown-content="" class="tiny f-dropdown text-upper" id="taglist"><div><ul> <li class=""><a data-urlname="shopping" href="/tag/shopping">shopping</a></li> <li class=""><a data-urlname="saving-money" href="/tag/saving-money">saving money</a></li> <li class=""><a data-urlname="personal-finances" href="/tag/personal-finances">personal finances</a></li> <li class=""><a data-urlname="mind-hacks" href="/tag/mind-hacks">mind hacks</a></li> <li class=""><a data-urlname="habits" href="/tag/habits">habits</a></li> <li class=""><a data-urlname="budget" href="/tag/budget">budget</a></li> <li class=""><a data-urlname="psychology" href="/tag/psychology">psychology</a></li> <li class=""><a data-urlname="editors-picks" href="/tag/editors-picks">editor's picks</a></li></ul></div></div> <span data-publishtime="1425913200851" class="publish-time js_publish_time"><a target="_self" href="http://lifehacker.com/how-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064" class="hover-switch"> <span class="show-on-hover published updated">3/09/15 8:00am</span><span class="hide-on-hover"> 3/09/15 8:00am</span></a></span></div></div></div></div><div class="post-dropdown-ct js_post-dropdown-ct js_post-dropdown-ct-sticky"><ul data-dropdown-content="" data-sourceblogid="17" data-blogid="602884922" data-authorid="602884910" data-starterid="1690268064" data-postid="1690268064" class="f-dropdown proxima js_post-dropdown js_follow-controls js_author-follow-controls whitelisted-links" id="dropdown-1690268064"><li class="js_edit-post hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-pencil-alt icon-prepend"></i>Edit</a></li><li class="js_delete-post hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-x-circle icon-prepend"></i>Delete</a></li> <li onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - invite click');" class="js_invite-to-post hover-icon hide"><a rel="nofollow" href="#"><i class="icon icon-twitter icon-prepend"></i>Invite</a></li><li class="js_invite-to-post-manually hover-icon hide"><a rel="nofollow" href="#"><i class="icon icon-mail icon-prepend"></i>Invite manually</a></li><li class="js_promote hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-star-circle icon-prepend"></i>Promote</a></li><li class="js_dismiss hover-icon hide readonly-hide"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Dismiss click');" rel="nofollow" class="dismiss" href="#"><i class="icon icon-prepend notranslate">X</i>Dismiss</a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Undismiss click');" rel="nofollow" class="undismiss" href="#"><i class="icon icon-prepend notranslate">X</i>Undismiss</a></li><li data-targetblogname="Lifehacker" data-targetblogid="602884922" data-blogid="17" class="js_block hover-icon hide disabled readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-not-circle icon-prepend"></i><span>Block for Lifehacker</span></a></li><li class="js_hide-post hover-icon hide readonly-hide"><a rel="nofollow" href="#"><i class="icon icon-prepend icon-not-circle"></i>Hide</a></li><li class="js_kinja-share-block readonly-hide"><a rel="nofollow" href="#" class="js_kinja-share hover-icon"><i class="icon icon-share icon-prepend"></i>Share to Kinja</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Share to Facebook click');" href="http://facebook.com/sharer.php?u=http%3A%2F%2Flifehacker.com%2Fhow-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064" rel="nofollow" class="js_share-post-item facebook hover-icon"><i class="icon icon-facebook icon-prepend"></i>Share to Facebook</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Share to Pinterest', 'click', 'Drop down');" href="http://www.pinterest.com/pin/create/api_other/?url=http%3A%2F%2Flifehacker.com%2Fhow-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064&amp;media=http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fs--hqqO9fze--%2Fn1s6c2m6kc07iqdyllj6.jpg&amp;description=We%20all%20buy%20things%20from%20time%20to%20time%20that%20we%20don%27t%20really%20need.%20It%27s%20okay%20to%20appeal%20to%20your%20wants%20every%20once%20in%20a%20while%2C%20as%20long%20as%20you%27re%20in%20control.%20If%20you%20struggle%20with%20clutter%2C%20impulse%20buys%2C%20and%20buyer%27s%20remorse%2C%20here%27s%20how%20to%20put%20your%20mind%20in%20the%20right%20place%20before%20you%20even%20set%20foot%20in%20a%20store." rel="nofollow" class="js_share-post-item pinterest hover-icon"><i class="icon icon-pinterest icon-prepend"></i>Share to Pinterest</a></li><li class="js_external-share"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Share to Twitter click');" href="http://twitter.com/share?url=http%3A%2F%2Flifehacker.com%2Fhow-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064&amp;text=POST_TITLE" rel="nofollow" class="js_share-post-item twitter hover-icon"><i class="icon icon-twitter icon-prepend"></i>Share to Twitter</a></li><li class="js_go-to-permalink"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down - Go to permalink click');" href="http://lifehacker.com/how-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064" class="hover-icon"><i class="icon icon-link-alt icon-prepend"></i>Go to permalink</a></li><li class="repostblock js_repostblock hide"></li></ul><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Drop down click');" data-dropdown="dropdown-1690268064" class="button dropdown secondary transparent toggle-30 js_post-menu-toggler post-dropdown-trigger" target="_self" href="#"></a></div></div><div class="post-content entry-content "><p data-textannotation-id="58a492029dca5e6a6e481d21b6b2933a" class="has-media media-640"><span class="img-border"><img width="636" height="358" data-format="jpg" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--hqqO9fze--/n1s6c2m6kc07iqdyllj6.jpg" data-chomp-id="n1s6c2m6kc07iqdyllj6" alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" src="http://i.kinja-img.com/gawker-media/image/upload/s--hqqO9fze--/n1s6c2m6kc07iqdyllj6.jpg" /></span></p><div id="js_adsense-container"></div><script>
+
+window.google_analytics_uacct = 'UA-142218-1';
+var google_adnum = 0; /* only insert this line for your first ad unit */
+// conditional adsense core decorated
+function google_ad_request_done(google_ads) {
+ var domain = '';
+ var domainParts = document.referrer.split("/");
+ if (domainParts.length &gt; 2) {
+ domainParts = domainParts[2].split(".");
+ domain = domainParts[domainParts.length - 2];
+ }
+ var companions = document.querySelectorAll('.js_ad300-companion');
+ var blockHeight = 0;
+ if (companions.length &gt; 0) {
+ var companion = companions[0];
+ blockHeight = companion.offsetHeight;
+ }
+ var onKinja = location.host.substr(-1 * "kinja.com".length) === "kinja.com";
+ var fromSearch = (domain == "google") || (domain == "bing") || (domain == "yahoo") || (domain == "ask");
+ var cookieString = "fromSearch=1";
+ if (fromSearch) {
+ document.cookie = cookieString;
+ }
+ var inSearchSession = document.cookie.indexOf(cookieString) != -1;
+ var shouldShowAds = !onKinja &amp;&amp; (fromSearch || inSearchSession);// &amp;&amp; blockHeight &gt; 400);
+ if (shouldShowAds) {
+ var s = '';
+ var i;
+ if (google_ads.length == 0) {
+ return;
+ }
+ s += '&lt;aside class="referenced-wide google-adsense twelve columns"&gt;';
+ s += '&lt;div class="container proxima"&gt;';
+ s += '&lt;a href="' + google_info.feedback_url + '" class="by-google"&gt;Ads by Google&lt;/a&gt;&lt;div class="google-ads ptm"&gt;' +
+ '&lt;a href="' + google_ads[0].url + '" onmouseout="window.status=\'\'" onmouseover="window.status=\'go to ' + google_ads[0].visible_url + '\';return true" class="google-headline"&gt;' +
+ '&lt;span&gt; &lt;b&gt;' +google_ads[0].line1 + '&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;/a&gt; &lt;span&gt;' +
+ google_ads[0].line2 + ' ' + google_ads[0].line3 + '&lt;br /&gt;&lt;/span&gt;' +
+ '&lt;a href="' + google_ads[0].url + '" onmouseout="window.status=\'\'" onmouseover="window.status=\'go to ' + google_ads[0].visible_url + '\';return true" class="google-link"&gt;&lt;span&gt;' + google_ads[0].visible_url + '&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br/&gt;';
+ if (google_ads.length == 2) {
+ /* the XML parser chokes on a for loop, so we have to do it explicitly */
+ s += '&lt;a href="' + google_ads[1].url + '" onmouseout="window.status=\'\'" onmouseover="window.status=\'go to ' + google_ads[1].visible_url + '\';return true" class="google-headline"&gt;' +
+ '&lt;span&gt; &lt;b&gt;' + google_ads[1].line1 + '&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;/a&gt; &lt;span style=""&gt;' +
+ google_ads[1].line2 + ' ' + google_ads[1].line3 + '&lt;br /&gt;&lt;/span&gt;' +
+ '&lt;a href="' + google_ads[1].url + '" onmouseout="window.status=\'\'" onmouseover="window.status=\'go to ' + google_ads[1].visible_url + '\';return true" class="google-link"&gt;&lt;span&gt;' + google_ads[1].visible_url + '&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;';
+ }
+ s += '&lt;/div&gt;&lt;/div&gt;&lt;/aside&gt;';
+ if (google_ads[0].bidtype == 'CPC') { /* insert this snippet for each ad call */
+ google_adnum = google_adnum + google_ads.length;
+ }
+ document.write(s);
+ }
+}
+google_ad_client = 'ca-pub-0457527031304647';
+google_ad_output = 'js';
+google_max_num_ads = '1';
+google_ad_type = 'text';
+google_feedback = 'on';
+google_skip = google_adnum;
+google_ad_channel = '1102379497';
+</script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="a043044f9b3e31fd85568b17e3b1b5f3" class="first-text"><span>We all buy things from time to time that we don't really need. It's okay to appeal to your wants every once in a while, as long as you're in control. If you struggle with clutter, impulse buys, and buyer's remorse, here's how to put your mind in the right place before you even set foot in a store.</span></p><div class="ad-unit js_ad-unit hide-contents ad-mobile js_ad-mobile">
+ <div data-zone-type="MOBILE" class="ad-container js_ad-container" id="ad-container-45135036"></div>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+<h3 data-textannotation-id="e51cbbc52eb8c3b33571908351076cf7"><strong>Understand How Your Own Brain Works Against You</strong></h3>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="268f7702467d33e3b0972dd09f1cf0a6" class="has-media media-640"><span class="img-border"><img width="636" height="358" data-format="jpg" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--QeUTCiuW--/o4dpyrcbiqyfrc3bxx6p.jpg" data-chomp-id="o4dpyrcbiqyfrc3bxx6p" alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" src="http://i.kinja-img.com/gawker-media/image/upload/s--QeUTCiuW--/o4dpyrcbiqyfrc3bxx6p.jpg" /></span></p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="32604538f84919efff270e87b61191a1">It may come as no surprise to learn that stores employ all kinds of tricks to get you to part ways with your cash, and your brain plays right along. Through psychological tricks, product placement, and even color, stores are designed from the ground up to increase spending. We've talked about the biggest things stores do to manipulate your senses, but here are some of the biggest things to look out for:</p>
+
+
+
+
+
+
+
+
+
+
+<ul><li data-textannotation-id="cd748c8b681c781cdd728c5e17b5e05f"><strong>Color:</strong> Stores use color to make products attractive and eye-catching, but they also use color on price labels. Red stands out and can encourage taking action, that's why it's commonly associated with sale signage and advertising. When you see red, remember what they're trying to do to your brain with that color. You don't to buy something just because it's on sale.</li><li data-textannotation-id="29c11c0aec305293be282aa91f8fbc3d"><strong>Navigation Roadblocks:</strong> Stores force you to walk around stuff you don't need to find the stuff you are really after. Have a list of what you need before you go in, go straight to it, and imagine it's the only item in the store.</li><li data-textannotation-id="252dc7e4a924d12c2d913861ab118bf5"><strong>The Touch Factor:</strong> Stores place items they want to sell in easy to reach locations and encourage you to touch them. Don't do it! As soon as you pick something up, you're more likely to buy it because your mind suddenly takes ownership of the object. Don't pick anything up and don't play with display items.</li><li data-textannotation-id="05dde4d44056798acff5890759134a64"><strong>Scents and Sounds:</strong> You'll probably hear classic, upbeat tunes when you walk into a store. The upbeat music makes you happy and excited, while playing familiar songs makes you feel comfortable. They also use pleasant smells to put your mind at ease. A happy, comfortable mind at ease is a dangerous combination for your brain when shopping. There's not much you can do to avoid this unless you shop online, but it's good to be aware of it.</li></ul>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="1eb4a4df2a670927c5d9e9641ebf9d40">And sure, we can blame the stores all we want, but you won't change how they operate—you can only be aware of how your <a href="http://lifehacker.com/how-stores-manipulate-your-senses-so-you-spend-more-mon-475987594" x-inset="1">brain is falling for their tricks</a>. Even without the stores, <a href="http://lifehacker.com/5968125/how-your-brain-corrupts-your-shopping-choices" x-inset="1">your brain is working against you on its own</a>, thanks to some simple cognitive biases.</p>
+
+
+
+
+
+
+
+
+
+
+
+
+<aside class="referenced-wide referenced-fullwidth js_inset tmpl_referencedGroupFullWidth clearfix core-decorated-inset">
+ <div class="container">
+
+ <div class="referenced-nav hide-for-small">
+ <div class="nav-arrow prev js_previous_inset hide">
+ <a onclick="return false;" class="icon inline icon-chevron-left" href="#"></a>
+ </div>
+ <div class="nav-arrow next js_next_inset">
+ <a onclick="return false ;" class="icon inline icon-chevron-right" href="#"></a>
+ </div>
+ </div>
+
+
+
+ <div data-inset-id="1555962975" class="referenced-item ">
+
+
+ <div class="columns small-4 medium-3 referenced-item-image referenced-item-processed">
+ <a target="_blank" onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset photo');" href="http://lifehacker.com/how-stores-manipulate-your-senses-so-you-spend-more-mon-475987594">
+ <span class="img-border ">
+
+ <img src="http://i.kinja-img.com/gawker-media/image/upload/s--9a3fSAiv--/c_fill,fl_progressive,g_center,h_77,q_80,w_137/18l0k4fog1iixjpg.jpg" />
+
+ </span>
+ </a>
+ </div>
+
+
+
+ <h6 onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset headline');" class="headline">
+ <span class="full-headline">
+ <a target="_blank" href="http://lifehacker.com/how-stores-manipulate-your-senses-so-you-spend-more-mon-475987594">
+ How Stores Manipulate Your Senses So You Spend More Money
+ </a>
+ </span>
+ <span class="medium-headline">
+ <a target="_blank" href="http://lifehacker.com/how-stores-manipulate-your-senses-so-you-spend-more-mon-475987594">
+ How Stores Manipulate Your Senses So You Spend More Money
+ </a>
+ </span>
+ <span class="small-headline">
+ <a target="_blank" href="http://lifehacker.com/how-stores-manipulate-your-senses-so-you-spend-more-mon-475987594">
+ How Stores Manipulate Your Senses So You Spend Mor
+ </a>
+ </span>
+ </h6>
+
+
+
+ <p class="text small-offset-3 ">
+
+ <span class="referenced-item-excerpt hide-for-small">When you walk into almost any store, you're immediately overloaded with sights, sounds,…</span>
+
+ <a target="_blank" onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset read more link');" class="js_readmore readmore-referenced" href="http://lifehacker.com/how-stores-manipulate-your-senses-so-you-spend-more-mon-475987594">
+ Read more <span class="js_external-text hide">Read more</span>
+ </a>
+ </p>
+
+
+ </div>
+
+
+
+ <div data-inset-id="1555984303" class="referenced-item hide ">
+
+
+ <div class="columns small-4 medium-3 referenced-item-image referenced-item-processed">
+ <a target="_blank" onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset photo');" href="http://lifehacker.com/5968125/how-your-brain-corrupts-your-shopping-choices">
+ <span class="img-border ">
+
+ <img src="http://i.kinja-img.com/gawker-media/image/upload/s--ZasswoU_--/c_fill,fl_progressive,g_center,h_77,q_80,w_137/1888vgzhqw1whjpg.jpg" />
+
+ </span>
+ </a>
+ </div>
+
+
+
+ <h6 onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset headline');" class="headline">
+ <span class="full-headline">
+ <a target="_blank" href="http://lifehacker.com/5968125/how-your-brain-corrupts-your-shopping-choices">
+ How Your Brain Corrupts Your Shopping Choices
+ </a>
+ </span>
+ <span class="medium-headline">
+ <a target="_blank" href="http://lifehacker.com/5968125/how-your-brain-corrupts-your-shopping-choices">
+ How Your Brain Corrupts Your Shopping Choices
+ </a>
+ </span>
+ <span class="small-headline">
+ <a target="_blank" href="http://lifehacker.com/5968125/how-your-brain-corrupts-your-shopping-choices">
+ How Your Brain Corrupts Your Shopping Choices
+ </a>
+ </span>
+ </h6>
+
+
+
+ <p class="text small-offset-3 ">
+
+ <span class="referenced-item-excerpt hide-for-small">Ever come home from a day of shopping and wondered why on earth you purchased certain items? As it…</span>
+
+ <a target="_blank" onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset read more link');" class="js_readmore readmore-referenced" href="http://lifehacker.com/5968125/how-your-brain-corrupts-your-shopping-choices">
+ Read more <span class="js_external-text hide">Read more</span>
+ </a>
+ </p>
+
+
+ </div>
+
+
+ </div>
+</aside>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="89992f1ca493b248eea6ed1772326c46">For example, confirmation bias makes you only believe the information that conforms to your prior beliefs, while you discount everything else. Advertisers appeal to this bias directly by convincing you one item is better than another with imagery and other tricks, regardless of what hard facts might say. Keep your mind open, do your own research, and accept when you're wrong about a product. The Decoy effect is also a commonly used tactic. You think one product is a deal because it's next to a similar product that's priced way higher. Even if it's a product you need, it's probably not as good of a deal as it looks right then and there. Again, always research beforehand and be on the lookout for this common trick to avoid impulse buys.</p>
+
+
+
+
+
+
+
+
+
+
+<h3 data-textannotation-id="eedde8c384145f2593efc2a15a4d79de"><strong>Make a List of </strong><em><strong>Everything</strong></em><strong> You Own and Do Some Decluttering</strong></h3>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="8044cf9aab698fd28931acd90ba96f7a" class="has-media media-640"><span class="img-border"><img width="636" height="358" data-format="jpg" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--mlR3Ku0_--/xrhkwleyurcizy4akiae.jpg" data-chomp-id="xrhkwleyurcizy4akiae" alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" src="http://i.kinja-img.com/gawker-media/image/upload/s--mlR3Ku0_--/xrhkwleyurcizy4akiae.jpg" /></span></p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="a2a886d841e5aed848cdf7088edde4ea">Now that you know what you're up against, it's time to start changing the way you think. Before you can stop buying crap you don't need, you need to identify what that crap is. The first step is to make a list of <a href="http://lifehacker.com/how-to-defeat-the-urge-to-binge-shop-1468216943" x-inset="1">every single thing you own</a>. <strong>Every. Single. Thing</strong>. This might sound extreme, but you need to gather your data so you can start reprogramming your mind.</p>
+
+
+
+
+
+
+
+
+
+
+
+
+<aside class="referenced-wide referenced-fullwidth js_inset tmpl_referencedGroupFullWidth clearfix core-decorated-inset">
+ <div class="container">
+
+
+
+ <div data-inset-id="1555988775" class="referenced-item ">
+
+
+ <div class="columns small-4 medium-3 referenced-item-image referenced-item-processed">
+ <a target="_blank" onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset photo');" href="http://lifehacker.com/how-to-defeat-the-urge-to-binge-shop-1468216943">
+ <span class="img-border ">
+
+ <img src="http://i.kinja-img.com/gawker-media/image/upload/s--fN3JVNsL--/c_fill,fl_progressive,g_center,h_77,q_80,w_137/196y8tsoeyd5njpg.jpg" />
+
+ </span>
+ </a>
+ </div>
+
+
+
+ <h6 onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset headline');" class="headline">
+ <span class="full-headline">
+ <a target="_blank" href="http://lifehacker.com/how-to-defeat-the-urge-to-binge-shop-1468216943">
+ How to Defeat the Urge to Binge Shop
+ </a>
+ </span>
+ <span class="medium-headline">
+ <a target="_blank" href="http://lifehacker.com/how-to-defeat-the-urge-to-binge-shop-1468216943">
+ How to Defeat the Urge to Binge Shop
+ </a>
+ </span>
+ <span class="small-headline">
+ <a target="_blank" href="http://lifehacker.com/how-to-defeat-the-urge-to-binge-shop-1468216943">
+ How to Defeat the Urge to Binge Shop
+ </a>
+ </span>
+ </h6>
+
+
+
+ <p class="text small-offset-3 ">
+
+ <span class="referenced-item-excerpt hide-for-small">It seems contradictory, but I love being frugal and I also love spending money. Over the last few…</span>
+
+ <a target="_blank" onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset read more link');" class="js_readmore readmore-referenced" href="http://lifehacker.com/how-to-defeat-the-urge-to-binge-shop-1468216943">
+ Read more <span class="js_external-text hide">Read more</span>
+ </a>
+ </p>
+
+
+ </div>
+
+
+ </div>
+</aside>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="bbe57b7aa20b48550e5f66b7c530822c">The purpose of this exercise is twofold: you see what you already have and don't need to ever buy again, and you get to see what you shouldn't have bought in the first place. As you list everything out, separate items into categories. It's extremely important that you are as honest with yourself as possible while you do this. It's also important you actually write this all down or type it all out. Here is the first set of categories to separate everything into:</p>
+
+
+
+
+
+
+
+
+
+
+<ul><li data-textannotation-id="8d7dc912152eddd0e3d56e28ad79e6f2"><strong>Need:</strong> You absolutely need this item to get by on a day to day basis.</li><li data-textannotation-id="6f60a79627f0746d1f611999251e9f1b"><strong>Sometimes Need:</strong> You don't need this item every day, but you use it on a somewhat regular basis.</li><li data-textannotation-id="54e10b108f95548966b657bd90fdbed4"><strong>Want:</strong> You bought this item because you wanted it, not because you needed it.</li><li data-textannotation-id="26c461a85fbc78651be442e205cac58b"><strong>Crap:</strong> You don't have a good reason why you have it and you already know it needs to go (there's probably a few of these items, at least).</li></ul>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="5743cf753f68fd8ee3443cc0f8e815dd">Leave the things you listed as "needs" alone, put your stuff listed as "crap" in a pile or box to go bye-bye, and move your attention back to your "sometimes need" and "want" lists. You need to go back over both of those lists because you probably fudged some of the listings, either subconsciously or intentionally. Now ask yourself these three questions as you go through both the "sometimes need" and "want" lists:</p>
+
+
+
+
+
+
+
+
+
+
+<ul><li data-textannotation-id="2048d6c0436bd34811442d6df32989a4">When was the last time I used this?</li><li data-textannotation-id="3f4b3686d822171b35e27bf1afde530b">When will I use this again?</li><li data-textannotation-id="63728605cc4fa66f5b225f674d12bbff">Does this item <a href="http://lifehacker.com/declutter-by-asking-one-question-does-this-spark-joy-1651256422">bring you joy</a>?</li></ul>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="816cd504161fecc6f3e173779b33d5db">Remember to be honest and adjust your lists accordingly. There's nothing wrong with keeping things you wanted. Material items can <a href="http://lifehacker.com/how-to-buy-happiness-the-purchases-most-likely-to-brin-1681780686">bring happiness to many people</a>, but make sure the items on your "want" list actively provide you joy and are being used. If an item doesn't get much use or doesn't make you happy, add it to the "crap" list.</p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="675103d9c0da55e95f93c53bb019f864">Once you have everything organized, it's time to do some serious decluttering. This listing exercise should get you started, but there are <a href="http://lifehacker.com/5957609/how-to-kick-your-clutter-habit-and-live-in-a-clean-house-once-and-for-all">a lot of other great ideas</a> when it comes to ditching the junk you don't need. Regardless, everything on your "crap" list needs to go. You can donate it, sell it at a yard sale, give it away to people know, whatever you like. Before you get rid of everything, though, take a picture of all your stuff together. Print out or save the picture somewhere. Some of it was probably gifts, but in general, this is all the crap you bought that you don't need. Take a good look and remember it.</p>
+
+
+
+
+
+
+
+
+
+
+<h3 data-textannotation-id="f15ab0a628b159459f095f04fef851ba"><strong>See How Much Money and Time You Spent on the Stuff You Threw Out</strong></h3>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="bc2f55587bf4ab07a1852a8d26217233" class="has-media media-640"><span class="img-border"><img width="636" height="358" data-format="jpg" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--Tacb0tyW--/qodag11euf2npkawkn9v.jpg" data-chomp-id="qodag11euf2npkawkn9v" alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" src="http://i.kinja-img.com/gawker-media/image/upload/s--Tacb0tyW--/qodag11euf2npkawkn9v.jpg" /></span></p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="95ab4fe30c3ade42a8011966ea54aa0b">Now take a look at your "crap" list again and start calculating how much you spent on all of it. If it was a gift, mark it as $0. Otherwise, figure out the price of the item at the time you bought it. If you got a deal or bought it on sale it's okay to factor that in, but try to be as accurate as possible. Once you have the price for each item, add it all together. Depending on your spending habits this could possibly be in the hundreds to thousands of dollars. Remember the picture you took of all this stuff? Attach the total cost to the picture so you can see both at the same time.</p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="f654efec679064b15826d8ee20bc94e4">With the money cost figured out, you should take a look at the other costs too. Time is a resource just like any other, and it's a finite one. What kind of time did you pour into these things? Consider the time you spent acquiring and using these items, then write it all down. These can be rough estimations, but go ahead and add it all up when you think you've got it. Now attach the total time to same picture as before and think of the other ways you could have spent all that time. This isn't to make you feel bad about yourself, just to deliver information to your brain in an easy-to-understand form. When you look at it all like this, it can open your eyes a little more, and help you think about purchases in the future. You'll look at an item and ask yourself, "Will this just end up in the picture?"</p>
+
+
+
+
+
+
+
+
+
+
+<h3 data-textannotation-id="6342bf7f15d9eddd21489c23e51ca434"><strong>List Every Non-Material Thing In Your Life that Makes You Happy</strong></h3>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="bafeac1c3808e0d2900190979f058b2c" class="has-media media-640"><span class="img-border"><img width="636" height="358" data-format="jpg" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--x9hLbIKJ--/imfc9ybqfw0jmztbhfrh.jpg" data-chomp-id="imfc9ybqfw0jmztbhfrh" alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" src="http://i.kinja-img.com/gawker-media/image/upload/s--x9hLbIKJ--/imfc9ybqfw0jmztbhfrh.jpg" /></span></p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="4bd8fbaabb33ff1cb5dc93c16e1f83cc">Now it's time to make a different list. While material items may bring plenty of joy, the things in your life that make you happiest probably can't be bought. Get a separate piece of paper or create a new document and list out everything in your life that makes you happy. If you can't buy it, it's eligible for the list. It doesn't matter if it only makes you crack a smile or makes you jump for joy, list it out. </p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="104a646a62ad7a0cfb4e3ff086185fdc"><span>These are probably the things that actually make you want to get out of bed in the morning and keep on keepin' on. Once you have it all down, put it in your purse or wallet. The next time you feel the urge to buy something, whip this list out first and remind yourself why you probably don't need it.</span></p>
+
+
+
+
+
+
+
+
+
+
+<h3 data-textannotation-id="532cf992ff45d52de501c1a8f80fc152"><strong>Spend Some Time Away from Material Things to Gain Perspective</strong></h3>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="64f5c7155ad89bd2835399d33c1ae28a" class="has-media media-640"><span class="img-border"><img width="636" height="358" data-format="jpg" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--6NwBgQLy--/afy7n45jfvsjdmmhonct.jpg" data-chomp-id="afy7n45jfvsjdmmhonct" alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" src="http://i.kinja-img.com/gawker-media/image/upload/s--6NwBgQLy--/afy7n45jfvsjdmmhonct.jpg" /></span></p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="84554492c487779e921b98fb64222177">If you're having a really hard time with your spending, it can help to get away from material objects completely. When you're constantly surrounded by stuff and have access to buying things at all times, it can be really tough to break the habit. Spend a day in the park enjoying the sights and sounds of the outdoors, go camping with some friends, or hike a trail you haven't been on before. </p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="b44add1c7b690705d672186e3a9604b6">Essentially, you want to show yourself that you don't need your "things" to have a good time. When you realize how much fun you can have without all the trinkets and trivets, you'll start to shut down your desire to buy them. If you can't get really get away right now, just go for a walk without your purse or wallet (but carry your ID). If you can't buy anything, you'll be forced to experience things a different way.</p>
+
+
+
+
+
+
+
+
+
+
+<h3 data-textannotation-id="98c11bebae0bbcdbe8411df0186d6465"><strong>Develop a Personal "Should I Buy This?" Test</strong></h3>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="ff438b878771354bb7f6d065ff50dbb2" class="has-media media-640"><span class="img-border"><img width="636" height="358" data-format="jpg" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--ciqk42G0--/s3pq8vjrvyjgne4lfsod.jpg" data-chomp-id="s3pq8vjrvyjgne4lfsod" alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" src="http://i.kinja-img.com/gawker-media/image/upload/s--ciqk42G0--/s3pq8vjrvyjgne4lfsod.jpg" /></span></p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="4af04ae83f18d9c37da21527bcd4a290">If you don't have a personal "should I buy this?" test, now's the perfect time to make one. When you find an item you think you need or want, it has to pass all of the questions you have on your test before you can buy it. Here's where you can use all of the data you've gathered so far and put it to really good use. The test should be personalized to your own buying habits, but here are some example questions:</p>
+
+
+
+
+
+
+
+
+
+
+<ul><li data-textannotation-id="fcfd78b1619bdf0b7330f4b40efb899d">Is this a planned purchase?</li><li data-textannotation-id="c16e7d5feae7cc2c3c6a8dd312ea206f">Will it end up in the "crap" list picture one day?</li><li data-textannotation-id="54d877fdee56080c87508fc9e6402889"><a href="http://lifehacker.com/prevent-clutter-by-asking-yourself-where-items-will-go-1649480461">Where am I going to put it</a>?</li><li data-textannotation-id="59d5245217c84e6b2b2969b3492f2f2d">Have I included this in my budget?</li><li data-textannotation-id="8fe1582808b4d89f5c88c2708744d27d"><em>Why</em> do I want/need it?</li></ul>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="0162d779382cdc7de908fc1488af3940">Custom build your test to hit all of your weaknesses. If you make a lot of impulse buys, include questions that address that. If you experience a lot of buyer's remorse, include a lot of questions that make you think about the use of item after you buy it. If buying the latest and greatest technology is your weakness, Joshua Becker at Becoming Minimalist suggests you ask yourself <a target="_blank" href="http://www.becomingminimalist.com/marriage-hacks/">what problem the piece of tech solves</a>. If you can't think of anything it solves or if you already have something that solves it, you don't need it. Be thorough and build a test that you can run through your mind every time you consider buying something.</p>
+
+
+
+
+
+
+
+
+
+
+<h3 data-textannotation-id="c0ed0882675acc340dcd88e13ca514b3"><strong>Learn to Delay Gratification and Destroy the Urge to Impulse Buy</strong></h3>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="1d43712fc5ce8f156e4661cca5750575" class="has-media media-640"><span class="img-border"><img width="636" height="358" data-format="jpg" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--mtob1sjR--/y2ldv5eufb3jcrtfouye.jpg" data-chomp-id="y2ldv5eufb3jcrtfouye" alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" src="http://i.kinja-img.com/gawker-media/image/upload/s--mtob1sjR--/y2ldv5eufb3jcrtfouye.jpg" /></span></p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="3d8086719c5da749f877629d498ccab9">When it comes to the unnecessary crap we buy, impulse purchases probably make up a good deal of them. We love to feel gratification instantly and impulse buys appeal to that with a rush of excitement with each new purchase. We like to believe that we have control over our impulses all the time, but we really don't, and that's a major problem for the ol' wallet.</p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="620ca9836425e09ec7fa50bfad204665">The key is teaching your brain that it's okay to <a href="http://lifehacker.com/overcome-the-need-for-instant-gratification-by-delaying-1636938356">wait for gratification</a>. You can do this with a simple time out every time you want something. Look at whatever you're thinking of buying, go through your personal "should I buy this?" test, and then walk away for a little while. Planning your purchases ahead is ideal, so the longer you can hold off, the better. Set yourself a reminder to check on the item <a href="http://lifehacker.com/5859632/buyers-remorse-is-inevitable-how-to-make-purchases-you-really-wont-regret">a week or month down the line</a>. When you come back to it, you may find that you don't even want it, just the gratification that would come with it. If you're shopping online, you can do the same thing. Walk away from your desk or put your phone in your pocket and do something else for a little while.</p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="a85d9eb501c898234ac5df2a56c50a13">You can also avoid online impulse purchases by <a href="http://lifehacker.com/5919833/how-to-avoid-impulse-purchases-in-the-internet-shopping-age" x-inset="1">making it harder to do</a>. Block shopping web sites during time periods you know you're at your weakest, or remove all of your saved credit card or Paypal information. You can also <a href="http://lifehacker.com/5569035/practice-the-halt-method-to-curb-impulse-purchases" x-inset="1">practice the "HALT" method</a> when you're shopping online or in a store. Try not to buy things when you're Hungry, Angry, Lonely, or Tired because you're at your weakest state mentally. Last, but not least, the "<a href="http://lifehacker.com/5320196/use-the-stranger-test-to-reduce-impulse-purchases" x-inset="1">stranger test</a>" can help you weed out bad purchases too.</p>
+
+
+
+
+
+
+
+
+
+
+
+
+<aside class="referenced-wide referenced-fullwidth js_inset tmpl_referencedGroupFullWidth clearfix core-decorated-inset">
+ <div class="container">
+
+ <div class="referenced-nav hide-for-small">
+ <div class="nav-arrow prev js_previous_inset hide">
+ <a onclick="return false;" class="icon inline icon-chevron-left" href="#"></a>
+ </div>
+ <div class="nav-arrow next js_next_inset">
+ <a onclick="return false ;" class="icon inline icon-chevron-right" href="#"></a>
+ </div>
+ </div>
+
+
+
+ <div data-inset-id="1555949557" class="referenced-item ">
+
+
+ <div class="columns small-4 medium-3 referenced-item-image referenced-item-processed">
+ <a target="_blank" onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset photo');" href="http://lifehacker.com/5919833/how-to-avoid-impulse-purchases-in-the-internet-shopping-age">
+ <span class="img-border ">
+
+ <img src="http://i.kinja-img.com/gawker-media/image/upload/s--tAWrlvyk--/c_fill,fl_progressive,g_center,h_77,q_80,w_137/17qctz7rnypm1jpg.jpg" />
+
+ </span>
+ </a>
+ </div>
+
+
+
+ <h6 onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset headline');" class="headline">
+ <span class="full-headline">
+ <a target="_blank" href="http://lifehacker.com/5919833/how-to-avoid-impulse-purchases-in-the-internet-shopping-age">
+ How to Avoid Impulse Purchases in the Internet Shopping Age
+ </a>
+ </span>
+ <span class="medium-headline">
+ <a target="_blank" href="http://lifehacker.com/5919833/how-to-avoid-impulse-purchases-in-the-internet-shopping-age">
+ How to Avoid Impulse Purchases in the Internet Shopping Age
+ </a>
+ </span>
+ <span class="small-headline">
+ <a target="_blank" href="http://lifehacker.com/5919833/how-to-avoid-impulse-purchases-in-the-internet-shopping-age">
+ How to Avoid Impulse Purchases in the Internet Sho
+ </a>
+ </span>
+ </h6>
+
+
+
+ <p class="text small-offset-3 ">
+
+ <span class="referenced-item-excerpt hide-for-small">When spending money online is as simple as clicking one single button on Amazon it's difficult …</span>
+
+ <a target="_blank" onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset read more link');" class="js_readmore readmore-referenced" href="http://lifehacker.com/5919833/how-to-avoid-impulse-purchases-in-the-internet-shopping-age">
+ Read more <span class="js_external-text hide">Read more</span>
+ </a>
+ </p>
+
+
+ </div>
+
+
+
+ <div data-inset-id="1558746776" class="referenced-item hide ">
+
+
+ <div class="columns small-4 medium-3 referenced-item-image referenced-item-processed">
+ <a target="_blank" onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset photo');" href="http://lifehacker.com/5569035/practice-the-halt-method-to-curb-impulse-purchases">
+ <span class="img-border ">
+
+ <img src="http://i.kinja-img.com/gawker-media/image/upload/s--NdSICOre--/c_fill,fl_progressive,g_center,h_77,q_80,w_137/18ixwh1tdragspng.png" />
+
+ </span>
+ </a>
+ </div>
+
+
+
+ <h6 onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset headline');" class="headline">
+ <span class="full-headline">
+ <a target="_blank" href="http://lifehacker.com/5569035/practice-the-halt-method-to-curb-impulse-purchases">
+ Practice the HALT Method to Curb Impulse Purchases
+ </a>
+ </span>
+ <span class="medium-headline">
+ <a target="_blank" href="http://lifehacker.com/5569035/practice-the-halt-method-to-curb-impulse-purchases">
+ Practice the HALT Method to Curb Impulse Purchases
+ </a>
+ </span>
+ <span class="small-headline">
+ <a target="_blank" href="http://lifehacker.com/5569035/practice-the-halt-method-to-curb-impulse-purchases">
+ Practice the HALT Method to Curb Impulse Purchases
+ </a>
+ </span>
+ </h6>
+
+
+
+ <p class="text small-offset-3 ">
+
+ <span class="referenced-item-excerpt hide-for-small">Buyer's remorse is a terrible thing, for brains and bank accounts alike. Before walking up to…</span>
+
+ <a target="_blank" onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset read more link');" class="js_readmore readmore-referenced" href="http://lifehacker.com/5569035/practice-the-halt-method-to-curb-impulse-purchases">
+ Read more <span class="js_external-text hide">Read more</span>
+ </a>
+ </p>
+
+
+ </div>
+
+
+
+ <div data-inset-id="1558262333" class="referenced-item hide ">
+
+
+ <div class="columns small-4 medium-3 referenced-item-image referenced-item-processed">
+ <a target="_blank" onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset photo');" href="http://lifehacker.com/5320196/use-the-stranger-test-to-reduce-impulse-purchases">
+ <span class="img-border ">
+
+ <img src="http://i.kinja-img.com/gawker-media/image/upload/s--mPo7bScD--/c_fill,fl_progressive,g_center,h_77,q_80,w_137/18iy6n7z0n7qnjpg.jpg" />
+
+ </span>
+ </a>
+ </div>
+
+
+
+ <h6 onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset headline');" class="headline">
+ <span class="full-headline">
+ <a target="_blank" href="http://lifehacker.com/5320196/use-the-stranger-test-to-reduce-impulse-purchases">
+ Use the Stranger Test to Reduce Impulse Purchases
+ </a>
+ </span>
+ <span class="medium-headline">
+ <a target="_blank" href="http://lifehacker.com/5320196/use-the-stranger-test-to-reduce-impulse-purchases">
+ Use the Stranger Test to Reduce Impulse Purchases
+ </a>
+ </span>
+ <span class="small-headline">
+ <a target="_blank" href="http://lifehacker.com/5320196/use-the-stranger-test-to-reduce-impulse-purchases">
+ Use the Stranger Test to Reduce Impulse Purchases
+ </a>
+ </span>
+ </h6>
+
+
+
+ <p class="text small-offset-3 ">
+
+ <span class="referenced-item-excerpt hide-for-small">When faced with a purchase, many people fall into the trap of only considering that they want it…</span>
+
+ <a target="_blank" onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset read more link');" class="js_readmore readmore-referenced" href="http://lifehacker.com/5320196/use-the-stranger-test-to-reduce-impulse-purchases">
+ Read more <span class="js_external-text hide">Read more</span>
+ </a>
+ </p>
+
+
+ </div>
+
+
+ </div>
+</aside>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="27385752c06848647540ad931892b21e">The last thing you should consider when it comes to impulse buys is "artificial replacement." As Trent Hamm at The Simple Dollar explains, artificial replacement can happen when you start to <a target="_blank" href="http://www.thesimpledollar.com/balancing-spending-and-time-how-time-frugality-can-save-you-lots-of-cash/">reduce the time</a> you get with your main interests:</p>
+
+
+
+
+
+
+
+
+
+
+<blockquote data-textannotation-id="213e2e816ac88f8d177fb0db0f7fef09">
+<p data-textannotation-id="7b98c5809df24dd04bb65285878c0335">Whenever I consistently cut quality time for my main interests out of my life, I start to long for them. As you saw in that "typical" day, I do make room for spending time with my family, but my other two main interests are absent. If that happens too many days in a row, I start to really miss reading. I start to really miss playing thoughtful board games with friends. What happens after that? <strong>I start to substitute.</strong> When I don't have the opportunity to sit down for an hour or even for half an hour and really get lost in a book, I start looking for an alternative way to fill in the tiny slices of time that I do have. I'll spend money.</p></blockquote>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="4b6cc2900ffacd3daef54b13b4caceac">You probably have things in your life that provide plenty of gratification, so don't get caught substituting it with impulse buys. Always make sure you keep yourself happy with plenty of time doing the things you like to do and you won't be subconsciously trying to fill that void with useless crap.</p>
+
+
+
+
+
+
+
+
+
+
+<h3 data-textannotation-id="aed9b435c4ed23e573c453ceeb34ed18"><strong>Turn the Money You Save Into More Money</strong></h3>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="21154394d63f1943d01f2b717aa31115" class="has-media media-640"><span class="img-border"><img width="636" height="358" data-format="jpg" data-asset-url="http://i.kinja-img.com/gawker-media/image/upload/s--4Ajak63w--/atb9qm07fvvg7hqkumkw.jpg" data-chomp-id="atb9qm07fvvg7hqkumkw" alt="How to Program Your Mind to Stop Buying Crap You Don’t Need" src="http://i.kinja-img.com/gawker-media/image/upload/s--4Ajak63w--/atb9qm07fvvg7hqkumkw.jpg" /></span></p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="6141942e977cc058fd7a0fa06a3f7389">Once you've programmed your mind to stop buying crap you don't need, you'll have some extra cash to play with. Take all that money and start putting it toward your future and things you <em>will</em> need further down the road. You might need <a target="_blank" href="http://twocents.lifehacker.com/how-to-start-saving-for-a-home-down-payment-1541254056">a home</a>, a vehicle, or a way to retire, but none of that can happen until you start planning for it. </p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="90f08afddc08e2c3b45c266f2e6965ec">Start by paying off any debts you already have. Credit cards, student loans, and even car payments can force you to <a href="http://lifehacker.com/how-to-break-the-living-paycheck-to-paycheck-cycle-1445330680">live paycheck to paycheck</a>. Use the <a href="http://lifehacker.com/5940989/pay-off-small-balances-first-for-better-odds-of-eliminating-all-your-debt">snowball method</a> and pay off some small balances to make you feel motivated, then start taking out your debt in full force with the <a href="http://lifehacker.com/how-to-pay-off-your-debt-using-the-stack-method-576070292">stacking method</a>: stop creating new debt, determine which balances have the highest interest rates, and create a payment schedule to pay them off efficiently.</p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="1106cb837deb2b6fc8e28ba98f078c27">With your debts whittled down, you should start an emergency fund. No matter how well you plan things, accidents and health emergencies can still happen. An emergency fund is designed to make those kinds of events more manageable. This type of savings account is strictly for when life throws you a curveball, but you can grow one pretty easily <a target="_blank" href="http://twocents.lifehacker.com/how-to-grow-an-emergency-fund-from-modest-savings-1638409351">with only modest savings</a>.</p>
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="347c2a36f114a794d559d929da1b15b7">When you've paid off your debt and prepared yourself for troubled times, you can start saving for the big stuff. All that money you're not spending on crap anymore can be saved, invested, and compounded to let you buy comfort and security. If you don't know where to start, talk to a financial planner. Or create a simple, yet effective <a target="_blank" href="http://twocents.lifehacker.com/how-to-build-an-easy-beginner-set-and-forget-investm-1686878594" x-inset="1">"set and forget" investment portfolio</a>. You've worked hard to reprogram your mind, so make sure you reap the benefits for many years to come.</p>
+
+
+
+
+
+
+
+
+
+
+
+
+<aside class="referenced-wide referenced-fullwidth js_inset tmpl_referencedGroupFullWidth clearfix core-decorated-inset">
+ <div class="container">
+
+
+
+ <div data-inset-id="1687090207" class="referenced-item ">
+
+
+ <div class="columns small-4 medium-3 referenced-item-image referenced-item-processed">
+ <a target="_blank" onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset photo');" href="http://twocents.lifehacker.com/how-to-build-an-easy-beginner-set-and-forget-investm-1686878594">
+ <span class="img-border ">
+
+ <img src="http://i.kinja-img.com/gawker-media/image/upload/s--8HWYGx2u--/c_fill,fl_progressive,g_center,h_77,q_80,w_137/hf8qe29n5uww7y0k8l9d.jpg" />
+
+ </span>
+ </a>
+ </div>
+
+
+
+ <h6 onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset headline');" class="headline">
+ <span class="full-headline">
+ <a target="_blank" href="http://twocents.lifehacker.com/how-to-build-an-easy-beginner-set-and-forget-investm-1686878594">
+ How to Build an Easy, Beginner “Set and Forget” Investment Portfolio
+ </a>
+ </span>
+ <span class="medium-headline">
+ <a target="_blank" href="http://twocents.lifehacker.com/how-to-build-an-easy-beginner-set-and-forget-investm-1686878594">
+ How to Build an Easy, Beginner “Set and Forget” Investment Portfolio
+ </a>
+ </span>
+ <span class="small-headline">
+ <a target="_blank" href="http://twocents.lifehacker.com/how-to-build-an-easy-beginner-set-and-forget-investm-1686878594">
+ How to Build an Easy, Beginner “Set and Forget” In
+ </a>
+ </span>
+ </h6>
+
+
+
+ <p class="text small-offset-3 ">
+
+ <span class="referenced-item-excerpt hide-for-small">Many people don't invest because it seems overly complicated. But if you want to build wealth, …</span>
+
+ <a target="_blank" onclick="window.ga('send', 'event', 'Permalink page click', 'Permalink page click - inset read more link');" class="js_readmore readmore-referenced" href="http://twocents.lifehacker.com/how-to-build-an-easy-beginner-set-and-forget-investm-1686878594">
+ Read more <span class="js_external-text hide">Read more</span>
+ </a>
+ </p>
+
+
+ </div>
+
+
+ </div>
+</aside>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<p data-textannotation-id="b54d87ffdace50f420c3a6ff0404cbf3"><em><small>Photos by <a target="_blank" href="http://www.shutterstock.com/pic-129762989/stock-vector-consumer.html?src=id&amp;ws=1">cmgirl</a> (Shutterstock), <a target="_blank" href="http://www.shutterstock.com/pic-227832739/stock-vector-hacker-icon-man-in-hoody-with-laptop-flat-isolated-on-dark-background-vector-illustration.html?src=id&amp;ws=1">Macrovector</a> (Shutterstock), <a target="_blank" href="https://www.flickr.com/photos/jetheriot/6186786217">J E Theriot</a>, <a target="_blank" href="https://www.flickr.com/photos/puuikibeach/15289861843">davidd</a>, <a target="_blank" href="https://www.flickr.com/photos/funfilledgeorgie/10922459733">George Redgrave</a>, <a target="_blank" href="https://www.flickr.com/photos/amslerpix/7252002214">David Amsler</a>, <a target="_blank" href="https://www.flickr.com/photos/amalakar/7299820870">Arup Malakar</a>, <a target="_blank" href="https://www.flickr.com/photos/lobsterstew/89644885">J B</a>, <a target="_blank" href="https://www.flickr.com/photos/jakerome/3298702453">jakerome</a>, <a target="_blank" href="http://401kcalculator.org/">401(K) 2012</a>.</small></em></p><!-- core-decorated --></div><div class="row"><div class="post-bottom column"><a name="replies"></a><div data-forpost="1690268064" class="post-tools-wrapper right"> <a title="Recommend" class="js_like button-recommend-post text-small proxima hover-icon" href="#" data-likecount="36"><span class="js_like_count">36</span><span class="icon icon-star oversized icon-append js_like_icon"></span></a> <span style="display: inline;" class="proxima text-small mlm mrn" id="js_reply-count">146<span class="icon icon-bubble-round oversized"></span></span><script>document.getElementById('js_reply-count').style.display = 'inline';</script><a disabled="" rel="nofollow" class="reply-to-post reply-count hover-icon proxima js_reply-to-post text-small readonly-hide" href="#" id="js_reply-to-post">Reply</a><noscript> &lt;span id="js_reply-count" class="proxima text-small mlm mrn"&gt;146&lt;span class="icon icon-bubble-round oversized"&gt;&lt;/span&gt;&lt;/span&gt;&lt;script&gt;document.getElementById('js_reply-count').style.display = 'inline';&lt;/script&gt;&lt;a href="#" class="reply-to-post reply-count hover-icon proxima text-small" rel="nofollow"&gt;Discuss&lt;span class="icon icon-bubble-round oversized"&gt;&lt;/span&gt;&lt;/a&gt;</noscript><div class="js_like-list-bottom-container"></div></div> <div data-show-faces="false" data-width="100" data-layout="button_count" data-href="http://lifehacker.com/how-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064" class="fb-like"></div></div></div></div></div></article></div></section><section data-replycount="146" data-authorblogname="patrickallan" class="js_replies "> <div class="replies-wrapper fade"><div class="js_replycol js_ad300-companion"> <dl class="reply-filters-tabbed sub-nav-tabbed js_reply-filters"><dd class="js_reload-groupchats reload-groupchats"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Author Chat click' );" class="tab-author" href="http://lifehacker.com/how-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064"><span class="js_author-name">Patrick Allan</span>’s Discussions</a></dd><dd class="js_allview allview"><a title="View all 146 replies" onclick="window.ga('send', 'event', 'Group Chats', 'click', 'All Replies click');" data-currentview="" href="http://lifehacker.com/how-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064/all">All replies</a></dd></dl><div style="display: none;" class="js_permalink-place permalink-place row"><div class="row"><div class="twelve columns center"><a class="button secondary js_collapse-branch">Show all threads</a></div></div></div><div class="js_reply-form-container row"></div><div class="js_branch-permalink permalink-branch-list branch-list" data-view="permalink"></div><div class="js_branch-authorchat js_branch-list branch-list branch-authorchat" data-view="author"></div><div class="js_branch-followchat branch-list" data-view="follower"></div><div class="js_branch-scorechat branch-list" data-view="popular"></div><div class="js_branch-userchat branch-list" data-view="user"></div><div class="js_branch-grid other-threads"><h6 class="section-header js_header hide">Hosts of other popular chats</h6><div class="row js_grid"></div></div><div class="js_replymessage hide createnewreply"></div><div class="js_reply-loading-progress reply-spinner hide"> <span class="spinner bounce"><span class="one"></span><span class="two"></span><span class="three"></span></span></div><div class="js_discussionlinks discussionlinks row hide"></div><div class="js_load-more"></div> <div class="text-right reply-views js_reply-views"><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'Popular Chat click' );" href="http://lifehacker.com/how-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064" class="js_reload-groupchats hide">View Patrick Allan's discussions</a><a onclick="window.ga('send', 'event', 'Group Chats', 'click', 'All Replies click' );" href="http://lifehacker.com/how-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064/all" class="js_allview hide">View all 146 replies</a></div></div></div><div class="js_loading-layer row hide"><div class="column"><div class="row"><div class="loading-layer"><div class="large-8 large-offset-4 columns"><div class="loading-layer-main-column"> <span class="spinner bounce"><span class="one"></span><span class="two"></span><span class="three"></span></span></div></div></div></div></div></div></section><script type="text/javascript">(function () {window.kinja = window.kinja || {}; window.kinja.postMeta = JSON.parse(decodeURIComponent( '%7B%22post%22%3A%7B%22id%22%3A1690268064%2C%22headline%22%3A%22How%20to%20Program%20Your%20Mind%20to%20Stop%20Buying%20Crap%20You%20Don%E2%80%99t%20Need%22%2C%22permalink%22%3A%22http%3A%2F%2Flifehacker.com%2Fhow-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064%22%2C%22first100Characters%22%3A%22We%20all%20buy%20things%20from%20time%20to%20time%20that%20we%20don%27t%20really%20need.%20It%27s%20okay%20to%20appeal%20to%20your%20wants%20eve%22%2C%22firstSentence%22%3A%22We%20all%20buy%20things%20from%20time%20to%20time%20that%20we%20don%27t%20really%20need.%20%22%2C%22facebookImage%22%3A%7B%22src%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fs--hqqO9fze--%2Fn1s6c2m6kc07iqdyllj6.jpg%22%2C%22uri%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fn1s6c2m6kc07iqdyllj6.jpg%22%2C%22id%22%3A%22n1s6c2m6kc07iqdyllj6%22%2C%22width%22%3A636%2C%22height%22%3A358%2C%22format%22%3A%22jpg%22%2C%22recommended%22%3Atrue%7D%2C%22twitterCardType%22%3A%22summary_large_image%22%2C%22plaintext%22%3A%22We%20all%20buy%20things%20from%20time%20to%20time%20that%20we%20don%27t%20really%20need.%20It%27s%20okay%20to%20appeal%20to%20your%20wants%20every%20once%20in%20a%20while%2C%20as%20long%20as%20you%27re%20in%20control.%20If%20you%20struggle%20with%20clutter%2C%20impulse%20buys%2C%20and%20buyer%27s%20remorse%2C%20here%27s%20how%20to%20put%20your%20mind%20in%20the%20right%20place%20before%20you%20even%20set%20foot%20in%20a%20store.%22%2C%22authorScreenName%22%3A%22PatrickAllan%22%2C%22tags%22%3A%5B%7B%22id%22%3A1183447227%2C%22name%22%3A%22money%22%2C%22desc%22%3A%22money%22%2C%22urlName%22%3A%22money%22%7D%2C%7B%22id%22%3A1183572883%2C%22name%22%3A%22shopping%22%2C%22desc%22%3A%22shopping%22%2C%22urlName%22%3A%22shopping%22%7D%2C%7B%22id%22%3A1183447223%2C%22name%22%3A%22saving%20money%22%2C%22desc%22%3A%22saving%20money%22%2C%22urlName%22%3A%22saving-money%22%7D%2C%7B%22id%22%3A226344621%2C%22name%22%3A%22personal%20finances%22%2C%22desc%22%3A%22personal%20finances%22%2C%22urlName%22%3A%22personal-finances%22%7D%2C%7B%22id%22%3A1203987700%2C%22name%22%3A%22mind%20hacks%22%2C%22desc%22%3A%22mind%20hacks%22%2C%22urlName%22%3A%22mind-hacks%22%7D%2C%7B%22id%22%3A1217291859%2C%22name%22%3A%22habits%22%2C%22desc%22%3A%22habits%22%2C%22urlName%22%3A%22habits%22%7D%2C%7B%22id%22%3A450629315%2C%22name%22%3A%22budget%22%2C%22desc%22%3A%22budget%22%2C%22urlName%22%3A%22budget%22%7D%2C%7B%22id%22%3A1178784105%2C%22name%22%3A%22psychology%22%2C%22desc%22%3A%22psychology%22%2C%22urlName%22%3A%22psychology%22%7D%2C%7B%22id%22%3A1679306583%2C%22name%22%3A%22editors%20picks%22%2C%22desc%22%3A%22editor%27s%20picks%22%2C%22urlName%22%3A%22editors-picks%22%7D%5D%2C%22publishTimeMillis%22%3A1425913200851%2C%22adZone%22%3A%22partners%22%2C%22sponsored%22%3Afalse%2C%22blogs%22%3A%5B%7B%22id%22%3A602884922%2C%22name%22%3A%22patrickallan%22%2C%22displayName%22%3A%22Patrick%20Allan%20Blog%22%2C%22canonicalHost%22%3A%22patrickallan.kinja.com%22%2C%22hosts%22%3A%5B%5D%2C%22status%22%3A%22ENABLED%22%2C%22createTimeMillis%22%3Anull%2C%22lastUpdateTimeMillis%22%3Anull%2C%22createdById%22%3Anull%2C%22ownerId%22%3Anull%2C%22description%22%3Anull%2C%22descriptionHtml%22%3Anull%2C%22mergedProperties%22%3Anull%2C%22showLikesInLatest%22%3Anull%2C%22showRepliesInLatest%22%3Anull%2C%22timezone%22%3A%22America%2FNew_York%22%2C%22timezoneOffset%22%3A-14400000%2C%22timezoneShortname%22%3A%22EDT%22%2C%22avatar%22%3Anull%2C%22logo%22%3Anull%2C%22groupBlog%22%3Anull%2C%22noindex%22%3Afalse%7D%2C%7B%22id%22%3A17%2C%22name%22%3A%22lifehacker%22%2C%22displayName%22%3A%22Lifehacker%22%2C%22canonicalHost%22%3A%22lifehacker.com%22%2C%22hosts%22%3A%5B%22us.lifehacker.com%22%2C%22es.lifehacker.com%22%2C%22pl.lifehacker.com%22%2C%22blog.lifehacker.com%22%2C%22au.lifehacker.com%22%2C%22fetch.lifehacker.com%22%2C%22m.lifehacker.com%22%2C%22nl.lifehacker.com%22%2C%22www.lifehacker.com%22%2C%22assets.lifehacker.com%22%2C%22ca.lifehacker.com%22%2C%22br.lifehacker.com%22%2C%22ru.lifehacker.com%22%2C%22de.lifehacker.com%22%2C%22uk.lifehacker.com%22%5D%2C%22status%22%3A%22ENABLED%22%2C%22createTimeMillis%22%3Anull%2C%22lastUpdateTimeMillis%22%3Anull%2C%22createdById%22%3Anull%2C%22ownerId%22%3Anull%2C%22description%22%3Anull%2C%22descriptionHtml%22%3Anull%2C%22mergedProperties%22%3A%7B%22aboutPostId%22%3A5732066%2C%22fbAppId%22%3A%2237418175030%22%2C%22metaTitle%22%3A%22tips%20and%20downloads%20for%20getting%20things%20done%22%2C%22googleSiteVerification%22%3A%22R0yw_jwnGWbokA2qgkupaWGVFJnF6qGtlgbSJEMdQkw%22%2C%22blogGroup%22%3A%22lifehacker%22%2C%22isGmgBlog%22%3Atrue%2C%22googleAnalyticsID%22%3A%22UA-142218-1%22%2C%22kruxId%22%3A%22JO5Ggjkf%22%2C%22template%22%3A%22lifehacker%22%2C%22GANJA_IGNORE_GEO%22%3A%5B%22us.lifehacker.com%22%5D%7D%2C%22showLikesInLatest%22%3Anull%2C%22showRepliesInLatest%22%3Anull%2C%22timezone%22%3A%22America%2FLos_Angeles%22%2C%22timezoneOffset%22%3A-25200000%2C%22timezoneShortname%22%3A%22PDT%22%2C%22avatar%22%3A%7B%22id%22%3A%22192oza44hceztpng%22%2C%22format%22%3A%22png%22%7D%2C%22logo%22%3Anull%2C%22groupBlog%22%3Anull%2C%22noindex%22%3Afalse%7D%5D%2C%22sharedPostId%22%3Anull%2C%22defaultBlogId%22%3A17%7D%2C%22starterId%22%3A1690268064%2C%22tags%22%3A%22money%2Cshopping%2Csaving%20money%2Cpersonal%20finances%2Cmind%20hacks%2Chabits%2Cbudget%2Cpsychology%2Ceditors%20picks%22%2C%22postId%22%3A1690268064%2C%22authors%22%3A%22Patrick%20Allan%22%2C%22postAuthorBlogName%22%3A%22patrickallan%22%7D' ));}());</script>
+ <!-- Begin SimpleReach for sponsored posts -->
+ <script>
+ __reach_config = {
+ pid: '5266d09097b0c95740000002', // The SimpleReach assigned Publisher ID (pid)
+ title: 'How to Program Your Mind to Stop Buying Crap You Don’t Need', //(remember that they should be escaped, not HTML or URL encoded)
+ url: 'http:\/\/lifehacker.com\/how-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064',
+ date: new Date(1425913200851),
+ authors: ['PatrickAllan'],
+ channels: [],
+ tags: ['money','shopping','saving money','personal finances','mind hacks','habits','budget','psychology','editors picks'],
+ iframe: true, // Send event through iframe
+ domain: 'lifehacker.com'
+ };
+ (function(){
+ var s = document.createElement('script');
+ s.async = true;
+ s.type = 'text/javascript';
+ s.src = document.location.protocol + '//d8rk54i4mohrb.cloudfront.net/js/reach.js';
+ (document.getElementsByTagName('head')[0] ||
+ document.getElementsByTagName('body')[0]).appendChild(s);
+ })();
+ </script>
+ <!-- End SimpleReach for sponsored posts -->
+ <div data-trackurl="http://kinja.com/api/analytics/stats/track.gif?&amp;objectType=permalinkTag&amp;objectType=permalinkTag&amp;objectType=permalinkTag&amp;objectType=permalinkTag&amp;objectType=permalinkTag&amp;objectType=permalinkTag&amp;objectType=permalinkTag&amp;objectType=permalinkTag&amp;objectType=permalinkTag&amp;objectType=post&amp;objectId=1183447227&amp;objectId=1183572883&amp;objectId=1183447223&amp;objectId=226344621&amp;objectId=1203987700&amp;objectId=1217291859&amp;objectId=450629315&amp;objectId=1178784105&amp;objectId=1679306583&amp;objectId=1690268064&amp;blogId=17&amp;authorId=602884910" style="display: none;" class="js_stats"></div><div data-tag-ids="1183447227,1183572883,1183447223,226344621,1203987700,1217291859,450629315,1178784105,1679306583" data-author-id="602884910" data-blog-id="17" data-post-id="1690268064" data-analytics-api-root-url="http://kinja.com/api/analytics/" style="display: none;" id="analytics-permalink-view"></div></div><div class="js_recommended-footer recommended-footer column show-for-touch"></div></div><div id="ad-970x250-container" class="row ad-wide ad-bottom pbs show-for-large-up"><div class="column"> <div class="ad-unit js_ad-unit ad-billboard js_ad-billboard"><div data-zone-type="BILLBOARD" class="ad-container js_ad-container" id="ad-container-72015869"></div></div></div></div><div style="display: none;" id="trackers"></div><noscript>&lt;img src="http://pubads.g.doubleclick.net/activity;dc_iu=/4246/DFP_Audience_Pixel;dc_seg=22540930;blog=lifehacker;ord=1?" width="1" height="1" border="0" /&gt;</noscript><script type="text/javascript">
+ Date.now = Date.now || function() { return +new Date; };
+ window.statsdTicks = [{
+ ms: Date.now(),
+ message: "JS init reached",
+ reporting: false
+ }];
+ </script><script>markUserTime("JS - Before Require load");</script><script src="http://x.kinja-static.com/assets/javascripts/lib/require.js?2" type="text/javascript"></script><script type="text/javascript">(function () {window.kinja = window.kinja || {}; window.kinja.meta = JSON.parse(decodeURIComponent( '%7B%22cloudinaryRequest%22%3A%7B%22default%22%3A%7B%22eager%22%3A%22c_fill%2Cfl_progressive%2Cg_center%2Ch_180%2Cq_80%2Cw_320%7Cc_fit%2Cfl_progressive%2Cq_80%2Cw_600%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_100%2Cq_80%2Cw_100%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_77%2Cq_80%2Cw_137%7Cc_fit%2Cfl_progressive%2Cq_80%2Cw_600%7Cc_fill%2Cfl_progressive%2Cg_north%2Ch_264%2Cq_80%2Cw_470%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_358%2Cq_80%2Cw_636%7Cc_fill%2Cfl_progressive%2Cg_north%2Ch_264%2Cq_80%2Cw_470%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_77%2Cq_80%2Cw_137%7Cc_fill%2Cfl_progressive%2Cg_north%2Ch_77%2Cq_80%2Cw_137%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_120%2Cq_80%2Cw_120%7Cc_fit%2Cfl_progressive%2Cq_80%2Cw_636%7Cc_fill%2Cfl_progressive%2Cg_north%2Ch_77%2Cq_80%2Cw_137%7Cc_fill%2Cfl_progressive%2Cg_north%2Ch_358%2Cq_80%2Cw_636%7Cc_fit%2Cfl_progressive%2Cq_80%2Cw_470%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_80%2Cq_80%2Cw_80%7Cc_fill%2Cfl_progressive%2Cg_north%2Ch_180%2Cq_80%2Cw_320%7Cc_fill%2Cfl_progressive%2Cg_north%2Ch_180%2Cq_80%2Cw_320%7Cc_fit%2Cfl_progressive%2Cq_80%2Cw_320%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_120%2Cq_80%2Cw_120%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_200%2Cq_80%2Cw_200%7Cc_fill%2Cfl_progressive%2Cg_faces%2Ch_77%2Cq_80%2Cw_137%7Cc_fill%2Cfl_progressive%2Cg_faces%2Ch_77%2Cq_80%2Cw_137%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_80%2Cq_80%2Cw_80%7C%7Cc_fill%2Cfl_progressive%2Cg_north%2Ch_358%2Cq_80%2Cw_636%7Cc_fit%2Cfl_progressive%2Cq_80%2Cw_470%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_100%2Cq_80%2Cw_100%7Cc_fit%2Cfl_progressive%2Ch_100%2Cq_80%2Cw_75%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_200%2Cq_80%2Cw_200%7Cc_fit%2Cfl_progressive%2Cq_80%2Cw_636%7Cc_fit%2Cfl_progressive%2Cq_80%2Cw_320%7Cc_fit%2Cfl_progressive%2Ch_100%2Cq_80%2Cw_75%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_358%2Cq_80%2Cw_636%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_180%2Cq_80%2Cw_320%7C%22%2C%22timestamp%22%3A%221427304251%22%2C%22signature%22%3A%228fab976068d3db50ced1752624b03eecbae73c7d%22%2C%22api_key%22%3A%22196565315244936%22%2C%22eager_async%22%3A%22true%22%7D%2C%22gif%22%3A%7B%22eager%22%3A%22c_fill%2Cfl_progressive%2Cg_center%2Ch_180%2Cq_80%2Cw_320%7Cc_fit%2Cfl_progressive%2Cq_80%2Cw_600%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_100%2Cq_80%2Cw_100%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_77%2Cq_80%2Cw_137%7Cc_fit%2Cfl_progressive%2Cq_80%2Cw_600%7Cc_fill%2Cfl_progressive%2Cg_north%2Ch_264%2Cq_80%2Cw_470%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_358%2Cq_80%2Cw_636%7Cc_fill%2Cfl_progressive%2Cg_north%2Ch_264%2Cq_80%2Cw_470%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_77%2Cq_80%2Cw_137%7Cc_fill%2Cfl_progressive%2Cg_north%2Ch_77%2Cq_80%2Cw_137%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_120%2Cq_80%2Cw_120%7Cc_fit%2Cfl_progressive%2Cq_80%2Cw_636%7Cc_fill%2Cfl_progressive%2Cg_north%2Ch_77%2Cq_80%2Cw_137%7Cc_fill%2Cfl_progressive%2Cg_north%2Ch_358%2Cq_80%2Cw_636%7Cc_fit%2Cfl_progressive%2Cq_80%2Cw_470%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_80%2Cq_80%2Cw_80%7Cc_fill%2Cfl_progressive%2Cg_north%2Ch_180%2Cq_80%2Cw_320%7Cc_fill%2Cfl_progressive%2Cg_north%2Ch_180%2Cq_80%2Cw_320%7Cc_fit%2Cfl_progressive%2Cq_80%2Cw_320%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_120%2Cq_80%2Cw_120%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_200%2Cq_80%2Cw_200%7Cc_fill%2Cfl_progressive%2Cg_faces%2Ch_77%2Cq_80%2Cw_137%7Cc_fill%2Cfl_progressive%2Cg_faces%2Ch_77%2Cq_80%2Cw_137%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_80%2Cq_80%2Cw_80%7C%7Cc_fill%2Cfl_progressive%2Cg_north%2Ch_358%2Cq_80%2Cw_636%7Cc_fit%2Cfl_progressive%2Cq_80%2Cw_470%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_100%2Cq_80%2Cw_100%7Cc_fit%2Cfl_progressive%2Ch_100%2Cq_80%2Cw_75%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_200%2Cq_80%2Cw_200%7Cc_fit%2Cfl_progressive%2Cq_80%2Cw_636%7Cc_fit%2Cfl_progressive%2Cq_80%2Cw_320%7Cc_fit%2Cfl_progressive%2Ch_100%2Cq_80%2Cw_75%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_358%2Cq_80%2Cw_636%7Cc_fill%2Cfl_progressive%2Cg_center%2Ch_180%2Cq_80%2Cw_320%7C%22%2C%22timestamp%22%3A%221427304251%22%2C%22tags%22%3A%22gif%22%2C%22signature%22%3A%22f4923ecc7f32ea65cc7e77d67bf3ec3b5807a15d%22%2C%22api_key%22%3A%22196565315244936%22%2C%22eager_async%22%3A%22true%22%7D%7D%2C%22syncFeatures%22%3Anull%2C%22featuresLastUpdate%22%3A1427294144762%2C%22killswitches%22%3A%7B%22liveblog.pollIntervalMillis%22%3A%7B%22name%22%3A%22liveblog.pollIntervalMillis%22%2C%22value%22%3A%2210000%22%2C%22defaultValue%22%3A%2210000%22%2C%22meta%22%3Anull%7D%2C%22liveblog.appRevision%22%3A%7B%22name%22%3A%22liveblog.appRevision%22%2C%22value%22%3A%221%22%2C%22defaultValue%22%3A%221%22%2C%22meta%22%3Anull%7D%2C%22maintenance%22%3A%7B%22name%22%3A%22maintenance%22%2C%22value%22%3A%22off%22%2C%22defaultValue%22%3A%22off%22%2C%22meta%22%3Anull%7D%7D%2C%22mode%22%3A%22live%22%2C%22pageType%22%3A%22permalink%22%2C%22currentUrl%22%3A%22%2Fhow-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064%22%2C%22locale%22%3A%22en-US%22%2C%22localeWithUnderscore%22%3A%22en_US%22%2C%22imageSizes%22%3A%7B%22KinjaCenteredMedium%22%3A%7B%22width%22%3A320%2C%22height%22%3A180%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22center%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22blg-logo%22%3A%7B%22width%22%3A600%2C%22crop%22%3A%22fit%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22blg-avt-%22%3A%7B%22width%22%3A100%2C%22height%22%3A100%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22center%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22kc-small%22%3A%7B%22width%22%3A137%2C%22height%22%3A77%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22center%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22BlogLogo%22%3A%7B%22width%22%3A600%2C%22crop%22%3A%22fit%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22k-large%22%3A%7B%22width%22%3A470%2C%22height%22%3A264%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22north%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22kc-xlarge%22%3A%7B%22width%22%3A636%2C%22height%22%3A358%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22center%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22KinjaLarge%22%3A%7B%22width%22%3A470%2C%22height%22%3A264%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22north%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22KinjaCenteredSmall%22%3A%7B%22width%22%3A137%2C%22height%22%3A77%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22center%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22k-small%22%3A%7B%22width%22%3A137%2C%22height%22%3A77%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22north%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22AvatarMedium%22%3A%7B%22width%22%3A120%2C%22height%22%3A120%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22center%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22ku-xlarge%22%3A%7B%22width%22%3A636%2C%22crop%22%3A%22fit%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22KinjaSmall%22%3A%7B%22width%22%3A137%2C%22height%22%3A77%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22north%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22KinjaExtraLarge%22%3A%7B%22width%22%3A636%2C%22height%22%3A358%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22north%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22ku-large%22%3A%7B%22width%22%3A470%2C%22crop%22%3A%22fit%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22avt-small%22%3A%7B%22width%22%3A80%2C%22height%22%3A80%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22center%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22k-medium%22%3A%7B%22width%22%3A320%2C%22height%22%3A180%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22north%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22KinjaMedium%22%3A%7B%22width%22%3A320%2C%22height%22%3A180%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22north%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22ku-medium%22%3A%7B%22width%22%3A320%2C%22crop%22%3A%22fit%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22avt-medium%22%3A%7B%22width%22%3A120%2C%22height%22%3A120%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22center%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22avt-large%22%3A%7B%22width%22%3A200%2C%22height%22%3A200%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22center%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22k-thumb%22%3A%7B%22width%22%3A137%2C%22height%22%3A77%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22faces%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22KinjaThumb%22%3A%7B%22width%22%3A137%2C%22height%22%3A77%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22faces%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22AvatarSmall%22%3A%7B%22width%22%3A80%2C%22height%22%3A80%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22center%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22original%22%3A%7B%7D%2C%22k-xlarge%22%3A%7B%22width%22%3A636%2C%22height%22%3A358%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22north%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22KinjaUncroppedLarge%22%3A%7B%22width%22%3A470%2C%22crop%22%3A%22fit%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22BlogAvatar%22%3A%7B%22width%22%3A100%2C%22height%22%3A100%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22center%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22ku-inset%22%3A%7B%22width%22%3A75%2C%22height%22%3A100%2C%22crop%22%3A%22fit%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22AvatarLarge%22%3A%7B%22width%22%3A200%2C%22height%22%3A200%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22center%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22KinjaUncroppedExtraLarge%22%3A%7B%22width%22%3A636%2C%22crop%22%3A%22fit%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22KinjaUncroppedMedium%22%3A%7B%22width%22%3A320%2C%22crop%22%3A%22fit%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22KinjaUncroppedInset%22%3A%7B%22width%22%3A75%2C%22height%22%3A100%2C%22crop%22%3A%22fit%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22KinjaCenteredExtraLarge%22%3A%7B%22width%22%3A636%2C%22height%22%3A358%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22center%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22kc-medium%22%3A%7B%22width%22%3A320%2C%22height%22%3A180%2C%22crop%22%3A%22fill%22%2C%22gravity%22%3A%22center%22%2C%22flags%22%3A%22progressive%22%2C%22quality%22%3A80%7D%2C%22Original%22%3A%7B%7D%7D%2C%22blog%22%3A%7B%22id%22%3A17%2C%22name%22%3A%22lifehacker%22%2C%22displayName%22%3A%22Lifehacker%22%2C%22canonicalHost%22%3A%22lifehacker.com%22%2C%22status%22%3A%22ENABLED%22%2C%22description%22%3A%22Tips%20and%20downloads%20for%20getting%20things%20done%22%2C%22descriptionHtml%22%3A%22%3Cp%3ETips%2C%20tricks%2C%20and%20downloads%20for%20getting%20things%20done.%3C%2Fp%3E%3Cp%3E%3Ca%20href%3D%5C%22http%3A%2F%2Flifehacker.com%2Fthe-lifehacker-app-directory-curates-the-best-apps-for-5803257%5C%22%20rel%3D%5C%22nofollow%5C%22%3EAPP%20DIRECTORY%3C%2Fa%3E%20-%20%3Ca%20href%3D%5C%22http%3A%2F%2Flifehacker.com%2Ftag%2Fdownloads%5C%22%20rel%3D%5C%22nofollow%5C%22%3EDOWNLOADS%3C%2Fa%3E%20-%20%3Ca%20href%3D%5C%22http%3A%2F%2Flifehacker.com%2Ftag%2Fproductivity%5C%22%20rel%3D%5C%22nofollow%5C%22%3EPRODUCTIVITY%3C%2Fa%3E%20-%20%3Ca%20href%3D%5C%22http%3A%2F%2Flifehacker.com%2Ftag%2Fdiy%5C%22%20rel%3D%5C%22nofollow%5C%22%3EDIY%3C%2Fa%3E%20-%20%3Ca%20href%3D%5C%22http%3A%2F%2Flifehacker.com%2Ftag%2Fmoney%5C%22%20rel%3D%5C%22nofollow%5C%22%3EMONEY%3C%2Fa%3E%20-%20%3Ca%20href%3D%5C%22http%3A%2F%2Flifehacker.com%2Ftag%2Fsecurity%5C%22%20rel%3D%5C%22nofollow%5C%22%3ESECURITY%3C%2Fa%3E%20-%20%3Ca%20href%3D%5C%22http%3A%2F%2Flifehacker.com%2Ftag%2Fdealhacker%5C%22%20rel%3D%5C%22nofollow%5C%22%3ELIFEHACKER%20DEALS%3C%2Fa%3E%20-%20%3Ca%20href%3D%5C%22http%3A%2F%2Flifehacker.com%2Ftag%2Fnightschool%5C%22%20rel%3D%5C%22nofollow%5C%22%3ENIGHT%20SCHOOL%3C%2Fa%3E%3C%2Fp%3E%22%2C%22showLikesInLatest%22%3Afalse%2C%22showRepliesInLatest%22%3Afalse%2C%22timezone%22%3A%22America%2FLos_Angeles%22%2C%22timezoneOffset%22%3A-25200000%2C%22timezoneShortname%22%3A%22PDT%22%2C%22locale%22%3A%22en-US%22%2C%22robotsAllowed%22%3Atrue%2C%22fbAppId%22%3A%2237418175030%22%2C%22googleSiteVerification%22%3A%22R0yw_jwnGWbokA2qgkupaWGVFJnF6qGtlgbSJEMdQkw%22%2C%22googleAnalyticsID%22%3A%22UA-142218-1%22%2C%22kruxId%22%3A%22JO5Ggjkf%22%2C%22blogGroup%22%3A%22lifehacker%22%2C%22isGmgBlog%22%3Atrue%2C%22groupBlog%22%3Atrue%2C%22avatar%22%3A%7B%22src%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fs--I5Hl1NTc--%2Fc_fit%2Cfl_progressive%2Cq_80%2Cw_636%2F192oza44hceztpng.png%22%2C%22uri%22%3Anull%2C%22id%22%3A%22192oza44hceztpng%22%2C%22width%22%3A636%2C%22height%22%3Anull%2C%22format%22%3A%22png%22%2C%22recommended%22%3Anull%7D%2C%22logo%22%3A%7B%22src%22%3A%22http%3A%2F%2Fi.kinja-img.com%2Fgawker-media%2Fimage%2Fupload%2Fs--FGw2Yv3Q--%2Fc_fit%2Cfl_progressive%2Cq_80%2Cw_636%2Fbwiqhbo45ulldozwchb0.png%22%2C%22uri%22%3Anull%2C%22id%22%3A%22bwiqhbo45ulldozwchb0%22%2C%22width%22%3A636%2C%22height%22%3Anull%2C%22format%22%3A%22png%22%2C%22recommended%22%3Anull%7D%2C%22noindex%22%3Afalse%7D%2C%22blogOwner%22%3A%7B%22id%22%3A%225716509846451982265%22%2C%22screenName%22%3A%22whitsongordon%22%2C%22displayName%22%3A%22Whitson%20Gordon%22%2C%22superUser%22%3Afalse%2C%22defaultBlogId%22%3A768%2C%22defaultBlog%22%3Anull%2C%22avatar%22%3A%7B%22id%22%3A%2217z00h8twlstpjpg%22%2C%22format%22%3A%22jpg%22%7D%7D%2C%22blogSales%22%3A%7B%22blogId%22%3A17%2C%22amazonInsetsEnabled%22%3Atrue%2C%22amazonAffiliateTag%22%3A%22lifehackeramzn-20%22%2C%22adsEnabled%22%3Atrue%2C%22adNetworkId%22%3A4246%2C%22adSiteName%22%3A%22gm.lifehacker%22%2C%22tagsExcludedFromPartnerRss%22%3A%5B%5D%2C%22tagsForceSynced%22%3A%5B%22dyson%22%2C%22health%22%2C%22app%20directory%22%5D%2C%22adSlotsDisabled%22%3A%5B%5D%2C%22stored%22%3Atrue%7D%2C%22imgassets%22%3A%22http%3A%2F%2Fx.kinja-static.com%2Fassets%2Fimages%2F%22%7D' ));}());</script><script type="text/javascript">(function () {/* This AMD configuration is used in these contexts:1) in-browser2) build process3) tests*/(function () {'use strict';/*globals requirejs, document */requirejs.config({bundles: {'lib/scribe/scribe': ['scribe']},paths: (function () {var paths = {'html-janitor': 'lib/html-janitor',jquery: 'lib/jquery',underscore: 'lib/underscore',backbone: 'lib/backbone','backbone.marionette': 'lib/backbone.marionette','backbone.stickit': 'lib/backbone.stickit',moment: 'lib/amd-wrapped/momentjs/moment','moment-timezone': 'lib/amd-wrapped/momentjs/moment-timezone','jquery.tap': 'lib/amd-wrapped/tap.js/jquery.tap',ace: 'lib/ace','scribe-virtualdom': 'lib/scribe-virtualdom','scribe-plugin-heading-command': 'lib/scribe/plugins/scribe-plugin-heading-command','scribe-plugin-smart-lists': 'lib/scribe/plugins/scribe-plugin-smart-lists','scribe-plugin-blockquote-command': 'lib/scribe/plugins/scribe-plugin-blockquote-command','scribe-plugin-intelligent-unlink-command': 'lib/scribe/plugins/scribe-plugin-intelligent-unlink-command','scribe-plugin-formatter-html-ensure-semantic-elements': 'lib/scribe/plugins/scribe-plugin-formatter-html-ensure-semantic-elements','scribe-plugin-inline-styles-to-elements': 'lib/scribe/plugins/scribe-plugin-inline-styles-to-elements','scribe-plugin-keyboard-shortcuts': 'lib/scribe/plugins/scribe-plugin-keyboard-shortcuts','scribe-plugin-sanitizer': 'lib/scribe/plugins/scribe-plugin-sanitizer','scribe-plugin-code-command': 'lib/scribe/plugins/scribe-plugin-code-command','scribe-plugin-curly-quotes': 'lib/scribe/plugins/scribe-plugin-curly-quotes'};if (typeof document !== 'undefined') {paths.templates = 'templates/closure/' + (document.getElementsByTagName('html')[0].getAttribute('lang') || 'en-US');}return paths;}())});}());var modules = {"BaseApp": "-a5bd72ff9408e6b98b1b571b3aea163f","TagPageApp": "-c7bfe76c88b43ac19e253823f5a49a4f","FrontPageApp": "-56257921a2067bbaa021b3af2b84b9f6","Main": "-fc52d10f1350408009c8c771fe092f72","PromotedPostPreview": "-57921fef4324bf3d8d00ccebf14aaf08","RuleSystem": "-ed2fdb973c59a0eb41ab1ff525b73457","ProfilePageApp": "-3109b57c4c014b8050c0d87355e869db","ace": "-a486a39565033c80d86a498ff172dad1","AmazonStats": "-b682f014e2ab7a30e8072326cd68376a","GroupchatsModule": "-7cb00a84791c2dfe2dc35cc3ab740476","KindrApp": "-0b8d221207823124793a1f4ef59730dd","FeaturesPageApp": "-3077acd34cc1e6abe43bb7f8a55e2487","LeaderboardStatsPageApp": "-0e4bb432fdccbfc4cf41cc7775b46370","ScribeEditor": "-5ea441f770cdee3b6613862215e922b2","PrivatePageApp": "-fa88fa1502bd74cd21e7f9fbada917f7","PostDebugPageApp": "-86ed2742af5826b9c6584da7221d4187","PostApp": "-c004ba34b8896c19ebcaf45ecd2464f1","StatsPageApp": "-b382ae3074b607c21cbb5764659cb910","FlaggedRepliesApp": "-bbb4735853a886355fc4bc07e860b2aa","MarionetteEditor": "-2a6405c9b6b7c651b97133c892e8e105","AccountModalsModule": "-d834e61733fe800ac7e1899356c3d170","BlacklistPageApp": "-1a8f8507ae355dcadf23f91ed62b3dce","JWPlayer": "-bcb2726c49022f1b0a79203da422279b","GmgFeaturesPageApp": "-a2ca3f391d5e501d80fb433eb8c5c418","DiscussionModule": "-188224b3a92721f256075bfd613628a5","ErrorPageApp": "-cfd6f40d60183f8ef397d1b46254a984","NotificationsPageApp": "-f8235b9cbbb4a697b87e76ce734885e3","TipsApp": "-894e852f117be09c9934959ae7af7970","KinjaAnalytics": "-64fff5209724c0b7443a3f00f4bdd9b2","KinjaFeedApp": "-8827d84586300ff610ff646e029d288e","AmazonInsetsModule": "-31886e010e5dce0c0d637b89b4feaa3d","SearchPageApp": "-dae758606210faab1759923e2c3f088a","Raven": "-3467f3aed7fecb0be39f14c0d7095e44","BusinessModule": "-491c2ccfb8a3c19a92ef94bc4443c00f","UIKitApp": "-4824fd8f0e4d32de8bd9b0e8a15dce85","BlogSettingsModule": "-c9588974a6d147bf9895a8e61388d2c2","StatsPerformanceApp": "-485a67d938d4bd95d15cce83695f21ce"}, paths = {}, baseUrl = "http://x.kinja-static.com/assets/javascripts-min/", modulePath = "layer/"; for (var module in modules) {if (modules.hasOwnProperty(module)) {paths["module/" + module] = "module/" + module + "-en-US" + modules[module]; paths["layer/" + module] = "layer/" + module + "-en-US" + modules[module];}}require.config({waitSeconds: 0, baseUrl: baseUrl, paths: paths, map: {"*": {"config": "config"}}});markUserTime("JS - Before preload"); require([modulePath + "Main", modulePath + "PostApp"], function () {markUserTime("JS - After preload"); require(["module/Main"], function () {markUserTime("JS - After app init");});});}());</script><!--[if gte IE 9]> --><script>require(["module/Raven"]);</script><!-- <![endif]--><div class="reveal-modal-bg"></div><div class="ad-background"></div><div id="modalplaceholder"></div></div><div class="footer-kinja"><div class="footer-kinja__top"> <footer class="row site-footer js_site-footer"><div class="large-8 large-offset-4 columns text-center"><ul class="list list-text text-light proxima"><li><a href="/about">About</a></li><li><a target="_blank" href="http://help.gawker.com/">Help</a></li><li><a href="http://legal.kinja.com/kinja-terms-of-use-90161644">Terms of Use</a></li><li><a href="http://legal.kinja.com/privacy-policy-90190742">Privacy</a></li><li><a href="http://advertising.gawker.com/">Advertising</a></li><li><a href="http://advertising.gawker.com/about/index.php#contact">Permissions</a></li><li><a href="http://legal.kinja.com/content-guidelines-90185358">Content Guidelines</a></li><li><a href="http://feeds.gawker.com/lifehacker/full">RSS</a></li><li><a href="http://grnh.se/2ctqpi">Jobs</a></li></ul></div></footer>
+ <!-- Begin comScore Tag -->
+ <noscript>
+ &lt;img src="http://b.scorecardresearch.com/p?c1=2&amp;c2=6770184&amp;cv=2.0&amp;cj=1" /&gt;
+ </noscript>
+ <!-- End comScore Tag -->
+ </div><div class="footer-kinja__bottom"><div class="row"><div class="column"><div class="logo-wrapper"><span>Powered by</span><a data-ga="[Kinja Footer, Kinja.com Click, js_pageType]" href="http://kinja.com"><h1 class="kinja-title kinja-title--white">Kinja</h1></a></div></div></div></div></div></div> <div id="read-only-warning" style="display:none;"><div class="row"><div class="column small-12">Kinja is in read-only mode. We are working to restore service.</div></div></div><div id="matchbuy-placeholder"></div><iframe width="1" height="1" name="spr" src="//d8rk54i4mohrb.cloudfront.net/iframe.html?pid=5266d09097b0c95740000002&amp;title=How%20to%20Program%20Your%20Mind%20to%20Stop%20Buying%20Crap%20You%20Don%E2%80%99t%20Need&amp;url=http%3A%2F%2Flifehacker.com%2Fhow-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064&amp;date=Mon%20Mar%2009%202015%2015%3A00%3A00%20GMT%2B0000%20%28GMT%29&amp;authors=PatrickAllan&amp;channels=&amp;tags=money%7Cshopping%7Csaving%20money%7Cpersonal%20finances%7Cmind%20hacks%7Chabits%7Cbudget%7Cpsychology%7Ceditors%20picks&amp;iframe=true&amp;domain=lifehacker.com&amp;r=true&amp;referrer=&amp;page_url=http%3A%2F%2Flifehacker.com%2Fhow-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064&amp;ref_url=&amp;cache_buster=1427305243429" visible="false" id="spr-iframe-n" style="display: none;"></iframe><iframe width="1" height="1" name="spr" src="//d8rk54i4mohrb.cloudfront.net/container.html?pid=5266d09097b0c95740000002&amp;title=How%20to%20Program%20Your%20Mind%20to%20Stop%20Buying%20Crap%20You%20Don%E2%80%99t%20Need&amp;url=http%3A%2F%2Flifehacker.com%2Fhow-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064&amp;date=Mon%20Mar%2009%202015%2015%3A00%3A00%20GMT%2B0000%20%28GMT%29&amp;authors=PatrickAllan&amp;channels=&amp;tags=money%7Cshopping%7Csaving%20money%7Cpersonal%20finances%7Cmind%20hacks%7Chabits%7Cbudget%7Cpsychology%7Ceditors%20picks&amp;iframe=true&amp;domain=lifehacker.com&amp;r=true&amp;referrer=&amp;page_url=http%3A%2F%2Flifehacker.com%2Fhow-to-program-your-mind-to-stop-buying-crap-you-don-t-1690268064&amp;ref_url=&amp;cache_buster=1427305243431" visible="false" id="spr-iframe-x" style="display: none;"></iframe></body></html> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/links-in-tables/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/links-in-tables/expected-images.json
new file mode 100644
index 000000000..c4caaa1ed
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/links-in-tables/expected-images.json
@@ -0,0 +1,5 @@
+[
+ "https:\/\/2.bp.blogspot.com\/-chCZZinlUTg\/WEcxvJo9gdI\/AAAAAAAADnk\/3ND_BspqN6Y2j5xxkLFW3RyS2Ig0NHZpQCLcB\/w1200-h630-p-k-nu\/ipsum-opsum.gif",
+ "https:\/\/2.bp.blogspot.com\/-chCZZinlUTg\/WEcxvJo9gdI\/AAAAAAAADnk\/3ND_BspqN6Y2j5xxkLFW3RyS2Ig0NHZpQCLcB\/s640\/ipsum-opsum.gif",
+ "https:\/\/2.bp.blogspot.com\/-5aRh1dM6Unc\/WEcNs55RGhI\/AAAAAAAADnI\/tzr_oOJjZwgWd9Vu25ydY0UwB3eXKupXwCLcB\/s200\/image01.png"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/links-in-tables/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/links-in-tables/expected-metadata.json
new file mode 100644
index 000000000..d6b1330af
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/links-in-tables/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "Posted by Andrew Hayden, Software Engineer on Google Play Android users are downloading tens of billions of apps and games on Google Pla...",
+ "Image": "https:\/\/2.bp.blogspot.com\/-chCZZinlUTg\/WEcxvJo9gdI\/AAAAAAAADnk\/3ND_BspqN6Y2j5xxkLFW3RyS2Ig0NHZpQCLcB\/w1200-h630-p-k-nu\/ipsum-opsum.gif",
+ "Title": "Saving Data: Reducing the size of App Updates by 65%",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/links-in-tables/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/links-in-tables/expected.html
new file mode 100644
index 000000000..05e072336
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/links-in-tables/expected.html
@@ -0,0 +1,174 @@
+<div id="post-body-2701400044422363572" itemprop="articlesBody">
+<p>
+<em>Posted by Andrew Hayden, Software Engineer on Google Play</em>
+</p>
+<p>
+Android users are downloading tens of billions of apps and games on Google Play.
+ We're also seeing developers update their apps frequently in order to provide
+users with great content, improve security, and enhance the overall user
+experience. It takes a lot of data to download these updates and we know users
+care about how much data their devices are using. Earlier this year, we
+announced that we started using <a href="https://android-developers.blogspot.com/2016/07/improvements-for-smaller-app-downloads.html">the
+bsdiff algorithm</a> <a href="https://android-developers.blogspot.com/2016/07/improvements-for-smaller-app-downloads.html">(by
+Colin Percival)</a>. Using bsdiff, we were able to reduce the size of app
+updates on average by 47% compared to the full APK size.
+</p>
+<p>
+Today, we're excited to share a new approach that goes further — <strong><a href="https://github.com/andrewhayden/archive-patcher/blob/master/README.md">File-by-File
+patching</a></strong>. App Updates using File-by-File patching are, <strong>on average,</strong>
+<strong>65% smaller than the full app</strong>, and in some cases more than 90%
+smaller.
+</p>
+<p>
+The savings, compared to our previous approach, add up to 6 petabytes of user
+data saved per day!
+</p>
+<p>
+In order to get the new version of the app, Google Play sends your device a
+patch that describes the <em>differences</em> between the old and new versions
+of the app.
+</p>
+<p>
+Imagine you are an author of a book about to be published, and wish to change a
+single sentence - it's much easier to tell the editor which sentence to change
+and what to change, rather than send an entirely new book. In the same way,
+patches are much smaller and much faster to download than the entire APK.
+</p>
+<p>
+<strong><span>Techniques used in File-by-File
+patching </span></strong>
+</p>
+<p>
+Android apps are packaged as APKs, which are ZIP files with special conventions.
+Most of the content within the ZIP files (and APKs) is compressed using a
+technology called <a href="https://en.wikipedia.org/w/index.php?title=DEFLATE&amp;oldid=735386036">Deflate</a>.
+Deflate is really good at compressing data but it has a drawback: it makes
+identifying changes in the original (uncompressed) content really hard. Even a
+tiny change to the original content (like changing one word in a book) can make
+the compressed output of deflate look <em>completely different</em>. Describing
+the differences between the <em>original</em> content is easy, but describing
+the differences between the <em>compressed</em> content is so hard that it leads
+to inefficient patches.
+</p>
+<p>
+Watch how much the compressed text on the right side changes from a one-letter
+change in the uncompressed text on the left:
+</p>
+<p><a href="https://2.bp.blogspot.com/-chCZZinlUTg/WEcxvJo9gdI/AAAAAAAADnk/3ND_BspqN6Y2j5xxkLFW3RyS2Ig0NHZpQCLcB/s1600/ipsum-opsum.gif" imageanchor="1"><img height="105" src="https://2.bp.blogspot.com/-chCZZinlUTg/WEcxvJo9gdI/AAAAAAAADnk/3ND_BspqN6Y2j5xxkLFW3RyS2Ig0NHZpQCLcB/s640/ipsum-opsum.gif" width="640"></img></a></p>
+<p>
+File-by-File therefore is based on detecting changes in the uncompressed data.
+To generate a patch, we first decompress both old and new files before computing
+the delta (we still use bsdiff here). Then to apply the patch, we decompress the
+old file, apply the delta to the uncompressed content and then recompress the
+new file. In doing so, we need to make sure that the APK on your device is a
+perfect match, byte for byte, to the one on the Play Store (see <a href="https://source.android.com/security/apksigning/v2.html">APK Signature
+Schema v2 </a>for why).
+</p>
+<p>
+When recompressing the new file, we hit two complications. First, Deflate has a
+number of settings that affect output; and we don't know which settings were
+used in the first place. Second, many versions of deflate exist and we need to
+know whether the version on your device is suitable.
+</p>
+<p>
+Fortunately, after analysis of the apps on the Play Store, we've discovered that
+recent and compatible versions of deflate based on zlib (the most popular
+deflate library) account for almost all deflated content in the Play Store. In
+addition, the default settings (level=6) and maximum compression settings
+(level=9) are the only settings we encountered in practice.
+</p>
+<p>
+Knowing this, we can detect and reproduce the original deflate settings. This
+makes it possible to uncompress the data, apply a patch, and then recompress the
+data back to <em>exactly the same bytes</em> as originally uploaded.
+</p>
+<p>
+However, there is one trade off; extra processing power is needed on the device.
+On modern devices (e.g. from 2015), recompression can take a little over a
+second per megabyte and on older or less powerful devices it can be longer.
+Analysis so far shows that, on average, if the patch size is halved then the
+time spent applying the patch (which for File-by-File includes recompression) is
+doubled.
+</p>
+<p>
+For now, we are limiting the use of this new patching technology to auto-updates
+only, i.e. the updates that take place in the background, usually at night when
+your phone is plugged into power and you're not likely to be using it. This
+ensures that users won't have to wait any longer than usual for an update to
+finish when manually updating an app.
+</p>
+<p>
+<strong><span>How effective is File-by-File
+Patching?</span></strong>
+</p>
+<p>
+Here are examples of app updates already using File-by-File Patching:
+</p>
+<div dir="ltr" trbidi="on">
+
+<div dir="ltr">
+<table readabilityDataTable="1"><colgroup><col width="142"></col><col width="102"></col><col width="176"></col><col width="176"></col></colgroup><tbody><tr><td><p><span>Application</span></p>
+</td><td><p><span>Original Size</span></p>
+</td><td><p><span>Previous (BSDiff) Patch Size</span></p>
+<p><span>(% vs original)</span></p>
+</td><td><p><span>File-by-File Patch Size (% vs original)</span></p>
+</td></tr><tr><td><div dir="ltr">
+<p><a href="https://play.google.com/store/apps/details?id=com.king.farmheroessupersaga&amp;hl=en"><span>Farm Heroes Super Saga</span></a></p></div>
+</td><td><p><span>71.1 MB</span></p>
+</td><td><p><span>13.4 MB (-81%)</span></p>
+</td><td><p><span>8.0 MB (-89%)</span></p>
+</td></tr><tr><td><div dir="ltr">
+<p><a href="https://play.google.com/store/apps/details?id=com.google.android.apps.maps"><span>Google Maps</span></a></p></div>
+</td><td><p><span>32.7 MB</span></p>
+</td><td><p><span>17.5 MB (-46%)</span></p>
+</td><td><p><span>9.6 MB (-71%)</span></p>
+</td></tr><tr><td><div dir="ltr">
+<p><a href="https://play.google.com/store/apps/details?id=com.google.android.gm"><span>Gmail</span></a></p></div>
+</td><td><p><span>17.8 MB</span></p>
+</td><td><p><span>7.6 MB (-57%)</span></p>
+</td><td><p><span>7.3 MB (-59%)</span></p>
+</td></tr><tr><td><div dir="ltr">
+<p><a href="https://play.google.com/store/apps/details?id=com.google.android.tts"><span>Google TTS</span></a></p></div>
+</td><td><p><span>18.9 MB</span></p>
+</td><td><p><span>17.2 MB (-9%)</span></p>
+</td><td><p><span>13.1 MB (-31%)</span></p>
+</td></tr><tr><td><div dir="ltr">
+<p><a href="https://play.google.com/store/apps/details?id=com.amazon.kindle"><span>Kindle</span></a></p></div>
+</td><td><p><span>52.4 MB</span></p>
+</td><td><p><span>19.1 MB (-64%)</span></p>
+</td><td><p><span>8.4 MB (-84%)</span></p>
+</td></tr><tr><td><div dir="ltr">
+<p><a href="https://play.google.com/store/apps/details?id=com.netflix.mediaclient"><span>Netflix</span></a></p></div>
+</td><td><p><span>16.2 MB</span></p>
+</td><td><p><span>7.7 MB (-52%)</span></p>
+</td><td><p><span>1.2 MB (-92%)</span></p>
+</td></tr></tbody></table></div>
+
+</div>
+<p><em>Disclaimer: if you see different patch sizes when you press "update"
+manually, that is because we are not currently using File-by-file for
+interactive updates, only those done in the background.</em></p><p>
+<strong><span>Saving data and making our
+users (&amp; developers!) happy</span></strong>
+</p>
+<p>
+These changes are designed to ensure our community of over a billion Android
+users use as little data as possible for regular app updates. The best thing is
+that as a developer you don't need to do anything. You get these reductions to
+your update size for free!
+</p>
+
+<p>
+If you'd like to know more about File-by-File patching, including the technical
+details, head over to the <a href="https://github.com/andrewhayden/archive-patcher">Archive Patcher GitHub
+project</a> where you can find information, including the source code. Yes,
+File-by-File patching is completely open-source!
+</p>
+<p>
+As a developer if you're interested in reducing your APK size still further,
+here are some <a href="https://developer.android.com/topic/performance/reduce-apk-size.html?utm_campaign=android_discussion_filebyfile_120616&amp;utm_source=anddev&amp;utm_medium=blog">general
+tips on reducing APK size</a>.
+</p>
+<p><a href="https://2.bp.blogspot.com/-5aRh1dM6Unc/WEcNs55RGhI/AAAAAAAADnI/tzr_oOJjZwgWd9Vu25ydY0UwB3eXKupXwCLcB/s1600/image01.png" imageanchor="1"><img height="200" src="https://2.bp.blogspot.com/-5aRh1dM6Unc/WEcNs55RGhI/AAAAAAAADnI/tzr_oOJjZwgWd9Vu25ydY0UwB3eXKupXwCLcB/s200/image01.png" width="191"></img></a></p>
+
+</div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/links-in-tables/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/links-in-tables/source.html
new file mode 100644
index 000000000..b9ca816ee
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/links-in-tables/source.html
@@ -0,0 +1,3165 @@
+<!DOCTYPE html>
+<html class="v2" dir="ltr" xmlns="http://www.w3.org/1999/xhtml" xmlns:b="http://www.google.com/2005/gml/b" xmlns:data="http://www.google.com/2005/gml/data" xmlns:expr="http://www.google.com/2005/gml/expr"><head>
+<meta content="IE=EmulateIE7" http-equiv="X-UA-Compatible" />
+<meta content="width=1100" name="viewport" />
+<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
+<meta content="blogger" name="generator" />
+<link href="https://android-developers.googleblog.com/favicon.ico" rel="icon" type="image/x-icon" />
+<link href="https://android-developers.googleblog.com/2016/12/saving-data-reducing-the-size-of-app-updates-by-65-percent.html" rel="canonical" />
+<link rel="alternate" type="application/atom+xml" title="Android Developers Blog - Atom" href="https://android-developers.googleblog.com/feeds/posts/default" />
+<link rel="alternate" type="application/rss+xml" title="Android Developers Blog - RSS" href="https://android-developers.googleblog.com/feeds/posts/default?alt=rss" />
+<link rel="service.post" type="application/atom+xml" title="Android Developers Blog - Atom" href="https://www.blogger.com/feeds/6755709643044947179/posts/default" />
+
+<link rel="alternate" type="application/atom+xml" title="Android Developers Blog - Atom" href="https://android-developers.googleblog.com/feeds/2701400044422363572/comments/default" />
+<!--[if IE]><script type="text/javascript" src="https://www.blogger.com/static/v1/jsbin/3032875878-ieretrofit.js"></script>
+<![endif]-->
+<link href="https://2.bp.blogspot.com/-chCZZinlUTg/WEcxvJo9gdI/AAAAAAAADnk/3ND_BspqN6Y2j5xxkLFW3RyS2Ig0NHZpQCLcB/s640/ipsum-opsum.gif" rel="image_src" />
+<meta content="https://android-developers.googleblog.com/2016/12/saving-data-reducing-the-size-of-app-updates-by-65-percent.html" property="og:url" />
+<meta content="Saving Data: Reducing the size of App Updates by 65%" property="og:title" />
+<meta content=" Posted by Andrew Hayden, Software Engineer on Google Play Android users are downloading tens of billions of apps and games on Google Pla..." property="og:description" />
+<meta content="https://2.bp.blogspot.com/-chCZZinlUTg/WEcxvJo9gdI/AAAAAAAADnk/3ND_BspqN6Y2j5xxkLFW3RyS2Ig0NHZpQCLcB/w1200-h630-p-k-nu/ipsum-opsum.gif" property="og:image" />
+<!--[if IE]> <script> (function() { var html5 = ("abbr,article,aside,audio,canvas,datalist,details," + "figure,footer,header,hgroup,mark,menu,meter,nav,output," + "progress,section,time,video").split(','); for (var i = 0; i < html5.length; i++) { document.createElement(html5[i]); } try { document.execCommand('BackgroundImageCache', false, true); } catch(e) {} })(); </script> <![endif]-->
+<title>Saving Data: Reducing the size of App Updates by 65% | Android Developers Blog</title>
+<link href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" rel="stylesheet" />
+<script async="" src="//cse.google.com/adsense/search/async-ads.js"></script><script src="https://apis.google.com/_/scs/apps-static/_/js/k=oz.gapi.en_GB.oDaXKax7Lmc.O/m=auth/exm=gapi_iframes,gapi_iframes_style_bubble,plus,plusone/rt=j/sv=1/d=1/ed=1/am=AQ/rs=AGLTcCP-QWj14-CfU2w6doKmOqTwfM2Hig/cb=gapi.loaded_3" async=""></script><script src="https://apis.google.com/_/scs/apps-static/_/js/k=oz.gapi.en_GB.oDaXKax7Lmc.O/m=plus/exm=gapi_iframes,gapi_iframes_style_bubble,plusone/rt=j/sv=1/d=1/ed=1/am=AQ/rs=AGLTcCP-QWj14-CfU2w6doKmOqTwfM2Hig/cb=gapi.loaded_2" async=""></script><script type="text/javascript" async="" src="https://ssl.google-analytics.com/ga.js"></script><script type="text/javascript" async="" src="https://apis.google.com/js/plusone.js" gapi_processed="true"></script><script src="https://apis.google.com/_/scs/apps-static/_/js/k=oz.gapi.en_GB.oDaXKax7Lmc.O/m=gapi_iframes,gapi_iframes_style_bubble/exm=plusone/rt=j/sv=1/d=1/ed=1/am=AQ/rs=AGLTcCP-QWj14-CfU2w6doKmOqTwfM2Hig/cb=gapi.loaded_1" async=""></script><script src="https://apis.google.com/_/scs/apps-static/_/js/k=oz.gapi.en_GB.oDaXKax7Lmc.O/m=plusone/rt=j/sv=1/d=1/ed=1/am=AQ/rs=AGLTcCP-QWj14-CfU2w6doKmOqTwfM2Hig/cb=gapi.loaded_0" async=""></script><script async="" src="//www.google-analytics.com/analytics.js"></script><script src="//developer.android.com/assets/jquery-resizable.min.js" type="text/javascript"></script>
+<script src="//developer.android.com/assets/prettify.js" type="text/javascript"></script>
+<script src="//www.google.com/js/gweb/analytics/autotrack.js"></script>
+<script>
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+ })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-961555-37', 'auto');
+ ga('send', 'pageview');
+
+</script>
+<link href="https://fonts.googleapis.com/css?kit=8n8e3dKCuuHkq9niV1adTQ" rel="stylesheet" type="text/css" /><link type="text/css" rel="stylesheet" href="https://www.blogger.com/static/v1/widgets/3887294567-css_bundle_v2.css" />
+<link type="text/css" rel="stylesheet" href="https://www.blogger.com/dyn-css/authorization.css?targetBlogID=6755709643044947179&amp;zx=bf8a639b-dcff-4fa8-b5e3-f8d8e8d734e5" />
+<link type="text/css" rel="stylesheet" href="//www.google.com/uds/css/gsearch.css" />
+<style id="page-skin-1" type="text/css">&lt;!--
+/*
+-----------------------------------------------
+Blogger Template Style
+Name: Simple
+Designer: Josh Peterson
+URL: www.noaesthetic.com
+----------------------------------------------- */
+/* Variable definitions
+====================
+&lt;Variable name="keycolor" description="Main Color" type="color" default="#66bbdd"/&gt;
+&lt;Group description="Page Text" selector="body"&gt;
+&lt;Variable name="body.font" description="Font" type="font"
+default="normal normal 12px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/&gt;
+&lt;Variable name="body.text.color" description="Text Color" type="color" default="#222222"/&gt;
+&lt;/Group&gt;
+&lt;Group description="Backgrounds" selector=".body-fauxcolumns-outer"&gt;
+&lt;Variable name="body.background.color" description="Outer Background" type="color" default="#66bbdd"/&gt;
+&lt;Variable name="content.background.color" description="Main Background" type="color" default="#ffffff"/&gt;
+&lt;Variable name="header.background.color" description="Header Background" type="color" default="transparent"/&gt;
+&lt;/Group&gt;
+&lt;Group description="Links" selector=".main-outer"&gt;
+&lt;Variable name="link.color" description="Link Color" type="color" default="#2288bb"/&gt;
+&lt;Variable name="link.visited.color" description="Visited Color" type="color" default="#888888"/&gt;
+&lt;Variable name="link.hover.color" description="Hover Color" type="color" default="#33aaff"/&gt;
+&lt;/Group&gt;
+&lt;Group description="Blog Title" selector=".header h1"&gt;
+&lt;Variable name="header.font" description="Font" type="font"
+default="normal normal 60px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/&gt;
+&lt;Variable name="header.text.color" description="Title Color" type="color" default="#3399bb" /&gt;
+&lt;/Group&gt;
+&lt;Group description="Blog Description" selector=".header .description"&gt;
+&lt;Variable name="description.text.color" description="Description Color" type="color"
+default="#777777" /&gt;
+&lt;/Group&gt;
+&lt;Group description="Tabs Text" selector=".tabs-inner .widget li a"&gt;
+&lt;Variable name="tabs.font" description="Font" type="font"
+default="normal normal 14px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/&gt;
+&lt;Variable name="tabs.text.color" description="Text Color" type="color" default="#999999"/&gt;
+&lt;Variable name="tabs.selected.text.color" description="Selected Color" type="color" default="#000000"/&gt;
+&lt;/Group&gt;
+&lt;Group description="Tabs Background" selector=".tabs-outer .PageList"&gt;
+&lt;Variable name="tabs.background.color" description="Background Color" type="color" default="#f5f5f5"/&gt;
+&lt;Variable name="tabs.selected.background.color" description="Selected Color" type="color" default="#eeeeee"/&gt;
+&lt;/Group&gt;
+&lt;Group description="Post Title" selector="h3.post-title, .comments h4"&gt;
+&lt;Variable name="post.title.font" description="Font" type="font"
+default="normal normal 22px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/&gt;
+&lt;/Group&gt;
+&lt;Group description="Date Header" selector=".date-header"&gt;
+&lt;Variable name="date.header.color" description="Text Color" type="color"
+default="#666666"/&gt;
+&lt;Variable name="date.header.background.color" description="Background Color" type="color"
+default="transparent"/&gt;
+&lt;/Group&gt;
+&lt;Group description="Post Footer" selector=".post-footer"&gt;
+&lt;Variable name="post.footer.text.color" description="Text Color" type="color" default="#666666"/&gt;
+&lt;Variable name="post.footer.background.color" description="Background Color" type="color"
+default="#f9f9f9"/&gt;
+&lt;Variable name="post.footer.border.color" description="Shadow Color" type="color" default="#eeeeee"/&gt;
+&lt;/Group&gt;
+&lt;Group description="Gadgets" selector="h2"&gt;
+&lt;Variable name="widget.title.font" description="Title Font" type="font"
+default="normal bold 11px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/&gt;
+&lt;Variable name="widget.title.text.color" description="Title Color" type="color" default="#000000"/&gt;
+&lt;Variable name="widget.alternate.text.color" description="Alternate Color" type="color" default="#999999"/&gt;
+&lt;/Group&gt;
+&lt;Group description="Images" selector=".main-inner"&gt;
+&lt;Variable name="image.background.color" description="Background Color" type="color" default="#ffffff"/&gt;
+&lt;Variable name="image.border.color" description="Border Color" type="color" default="#eeeeee"/&gt;
+&lt;Variable name="image.text.color" description="Caption Text Color" type="color" default="#666666"/&gt;
+&lt;/Group&gt;
+&lt;Group description="Accents" selector=".content-inner"&gt;
+&lt;Variable name="body.rule.color" description="Separator Line Color" type="color" default="#eeeeee"/&gt;
+&lt;Variable name="tabs.border.color" description="Tabs Border Color" type="color" default="#eeeeee"/&gt;
+&lt;/Group&gt;
+&lt;Variable name="body.background" description="Body Background" type="background"
+color="#f9f9f9" default="$(color) none repeat scroll top left"/&gt;
+&lt;Variable name="body.background.override" description="Body Background Override" type="string" default=""/&gt;
+&lt;Variable name="body.background.gradient.cap" description="Body Gradient Cap" type="url"
+default="url(http://www.blogblog.com/1kt/simple/gradients_light.png)"/&gt;
+&lt;Variable name="body.background.gradient.tile" description="Body Gradient Tile" type="url"
+default="url(http://www.blogblog.com/1kt/simple/body_gradient_tile_light.png)"/&gt;
+&lt;Variable name="content.background.color.selector" description="Content Background Color Selector" type="string" default=".content-inner"/&gt;
+&lt;Variable name="content.padding" description="Content Padding" type="length" default="10px"/&gt;
+&lt;Variable name="content.padding.horizontal" description="Content Horizontal Padding" type="length" default="10px"/&gt;
+&lt;Variable name="content.shadow.spread" description="Content Shadow Spread" type="length" default="40px"/&gt;
+&lt;Variable name="content.shadow.spread.webkit" description="Content Shadow Spread (WebKit)" type="length" default="5px"/&gt;
+&lt;Variable name="content.shadow.spread.ie" description="Content Shadow Spread (IE)" type="length" default="10px"/&gt;
+&lt;Variable name="main.border.width" description="Main Border Width" type="length" default="0"/&gt;
+&lt;Variable name="header.background.gradient" description="Header Gradient" type="url" default="none"/&gt;
+&lt;Variable name="header.shadow.offset.left" description="Header Shadow Offset Left" type="length" default="-1px"/&gt;
+&lt;Variable name="header.shadow.offset.top" description="Header Shadow Offset Top" type="length" default="-1px"/&gt;
+&lt;Variable name="header.shadow.spread" description="Header Shadow Spread" type="length" default="1px"/&gt;
+&lt;Variable name="header.padding" description="Header Padding" type="length" default="30px"/&gt;
+&lt;Variable name="header.border.size" description="Header Border Size" type="length" default="1px"/&gt;
+&lt;Variable name="header.bottom.border.size" description="Header Bottom Border Size" type="length" default="1px"/&gt;
+&lt;Variable name="header.border.horizontalsize" description="Header Horizontal Border Size" type="length" default="0"/&gt;
+&lt;Variable name="description.text.size" description="Description Text Size" type="string" default="140%"/&gt;
+&lt;Variable name="tabs.margin.top" description="Tabs Margin Top" type="length" default="0" /&gt;
+&lt;Variable name="tabs.margin.side" description="Tabs Side Margin" type="length" default="30px" /&gt;
+&lt;Variable name="tabs.background.gradient" description="Tabs Background Gradient" type="url"
+default="url(http://www.blogblog.com/1kt/simple/gradients_light.png)"/&gt;
+&lt;Variable name="tabs.border.width" description="Tabs Border Width" type="length" default="1px"/&gt;
+&lt;Variable name="tabs.bevel.border.width" description="Tabs Bevel Border Width" type="length" default="1px"/&gt;
+&lt;Variable name="date.header.padding" description="Date Header Padding" type="string" default="inherit"/&gt;
+&lt;Variable name="date.header.letterspacing" description="Date Header Letter Spacing" type="string" default="inherit"/&gt;
+&lt;Variable name="date.header.margin" description="Date Header Margin" type="string" default="inherit"/&gt;
+&lt;Variable name="post.margin.bottom" description="Post Bottom Margin" type="length" default="25px"/&gt;
+&lt;Variable name="image.border.small.size" description="Image Border Small Size" type="length" default="2px"/&gt;
+&lt;Variable name="image.border.large.size" description="Image Border Large Size" type="length" default="5px"/&gt;
+&lt;Variable name="page.width.selector" description="Page Width Selector" type="string" default=".region-inner"/&gt;
+&lt;Variable name="page.width" description="Page Width" type="string" default="auto"/&gt;
+&lt;Variable name="main.section.margin" description="Main Section Margin" type="length" default="15px"/&gt;
+&lt;Variable name="main.padding" description="Main Padding" type="length" default="15px"/&gt;
+&lt;Variable name="main.padding.top" description="Main Padding Top" type="length" default="30px"/&gt;
+&lt;Variable name="main.padding.bottom" description="Main Padding Bottom" type="length" default="30px"/&gt;
+&lt;Variable name="paging.background"
+color="transparent"
+description="Background of blog paging area" type="background"
+default="transparent none no-repeat scroll top center"/&gt;
+&lt;Variable name="footer.bevel" description="Bevel border length of footer" type="length" default="0"/&gt;
+&lt;Variable name="mobile.background.overlay" description="Mobile Background Overlay" type="string"
+default="transparent none repeat scroll top left"/&gt;
+&lt;Variable name="mobile.background.size" description="Mobile Background Size" type="string" default="auto"/&gt;
+&lt;Variable name="mobile.button.color" description="Mobile Button Color" type="color" default="#ffffff" /&gt;
+&lt;Variable name="startSide" description="Side where text starts in blog language" type="automatic" default="left"/&gt;
+&lt;Variable name="endSide" description="Side where text ends in blog language" type="automatic" default="right"/&gt;
+*/
+/* Content
+----------------------------------------------- */
+body {
+font: normal normal 12px Roboto;
+color: #333;
+background: #f9f9f9 none repeat scroll top left;
+padding: 0 40px 40px 40px;
+}
+html body .region-inner {
+min-width: 0;
+max-width: 100%;
+width: auto;
+}
+a:link {
+text-decoration:none;
+color: #258aaf;
+}
+a:visited {
+text-decoration:none;
+color: #258aaf;
+}
+a:hover {
+text-decoration:underline;
+color: #33b5e5;
+}
+.body-fauxcolumn-outer .fauxcolumn-inner {
+background: transparent url(//www.blogblog.com/1kt/simple/body_gradient_tile_light.png) repeat scroll top left;
+_background-image: none;
+}
+.body-fauxcolumn-outer .cap-top {
+position: absolute;
+z-index: 1;
+height: 400px;
+width: 100%;
+background: #f9f9f9 none repeat scroll top left;
+}
+#header-inner img {
+margin: 0 auto;
+}
+.body-fauxcolumn-outer .cap-top .cap-left {
+width: 100%;
+background: transparent url(//www.blogblog.com/1kt/simple/gradients_light.png) repeat-x scroll top left;
+_background-image: none;
+}
+.content-outer {
+-moz-box-shadow: 0 0 40px rgba(0, 0, 0, .15);
+-webkit-box-shadow: 0 0 5px rgba(0, 0, 0, .15);
+-goog-ms-box-shadow: 0 0 10px #333333;
+box-shadow: 0 0 40px rgba(0, 0, 0, .15);
+margin-bottom: 1px;
+}
+.fauxcolumn-left-outer .fauxcolumn-inner {
+border: none !important;
+}
+.content-inner {
+padding: 10px 10px;
+}
+.content-outer {
+-moz-box-shadow: none !important;
+-webkit-box-shadow: none !important;
+-goog-ms-box-shadow:none !important;
+box-shadow:none !important
+}
+footer {
+display: none;
+}
+.content-inner {
+background-color: transparent;
+}
+/* --------------------------------------------------------------------------
+Code Style
+*/
+pre {
+margin: 1em 0;
+padding: 1em;
+overflow: auto;
+border: solid 1px #ddd;
+background: #f7f7f7;
+}
+.str { color: #080; }
+.kwd { color: #008; }
+.com { color: #800; }
+.typ { color: #606; }
+.lit { color: #066; }
+.pun { color: #660; }
+.pln { color: #000; }
+.tag { color: #008; }
+.atn { color: #828; }
+.atv { color: #080; }
+.dec { color: #606; }
+/* Header
+----------------------------------------------- */
+.header-outer {
+background: transparent none repeat-x scroll 0 -400px;
+_background-image: none;
+}
+.Header h1 {
+font: normal normal 22px Roboto;
+color: #333333;
+text-shadow: -1px -1px 1px rgba(0, 0, 0, .2);
+}
+.Header h1 a {
+color: #333333;
+}
+.Header .description {
+font-size: 140%;
+color: #000000;
+}
+.header-inner .Header .titlewrapper {
+padding: 0;
+}
+.header-inner .Header .descriptionwrapper {
+padding: 0 30px;
+}
+/* Tabs
+----------------------------------------------- */
+.tabs-inner .section:first-child {
+border-top: 1px solid #eeeeee;
+}
+.tabs-inner .section:first-child ul {
+margin-top: -1px;
+border-top: 1px solid #eeeeee;
+border-left: 0 solid #eeeeee;
+border-right: 0 solid #eeeeee;
+}
+.tabs-inner .widget ul {
+background: transparent url(//www.blogblog.com/1kt/simple/gradients_light.png) repeat-x scroll 0 -800px;
+_background-image: none;
+border-bottom: 1px solid #eeeeee;
+margin-top: 0;
+margin-left: -30px;
+margin-right: -30px;
+}
+.tabs-inner .widget li a {
+display: inline-block;
+padding: .6em 1em;
+font: normal normal 14px Roboto;
+color: #000000;
+border-left: 1px solid transparent;
+border-right: 1px solid #eeeeee;
+}
+.tabs-inner .widget li:first-child a {
+border-left: none;
+}
+.tabs-inner .widget li.selected a, .tabs-inner .widget li a:hover {
+color: #000000;
+background-color: #eeeeee;
+text-decoration: none;
+}
+/* Columns
+----------------------------------------------- */
+.main-outer {
+border-top: 0 solid #eeeeee;
+}
+.fauxcolumn-left-outer .fauxcolumn-inner {
+border-right: 1px solid #eeeeee;
+}
+.fauxcolumn-right-outer .fauxcolumn-inner {
+border-left: 1px solid #eeeeee;
+}
+.main-inner .column-left-inner {
+padding: 0;
+}
+.sidebar.section {
+margin: 0;
+}
+/* Headings
+----------------------------------------------- */
+h2 {
+margin: 0 0 1em 0;
+font: normal bold 11px Arial, Tahoma, Helvetica, FreeSans, sans-serif;
+color: #000000;
+text-transform: uppercase;
+}
+/* Removes Blogger navbar */
+#navbar-iframe {
+display: none !important;
+}
+/* Widgets
+----------------------------------------------- */
+.widget .zippy {
+color: #999999;
+text-shadow: 2px 2px 1px rgba(0, 0, 0, .1);
+}
+.widget .popular-posts ul {
+list-style: none;
+}
+/* Posts
+----------------------------------------------- */
+.date-header span {
+background-color: #BBB;
+color: white;
+padding: 0.4em;
+letter-spacing: 3px;
+margin: inherit;
+}
+.main-inner {
+padding-top: 30px;
+padding-bottom: 30px;
+}
+.main-inner .column-center-inner {
+padding: 0 15px;
+}
+.main-inner .column-center-inner .section {
+margin: 0 0 0 20px;
+}
+.post {
+margin: 0 0 25px 0;
+}
+h3.post-title, .comments h4 {
+font: normal normal 22px Roboto;
+margin: .75em 0 0;
+}
+.post-body {
+font-size: 110%;
+line-height: 1.4;
+position: relative;
+}
+.post-body img, .post-body .tr-caption-container, .Profile img, .Image img,
+.BlogList .item-thumbnail img {
+}
+.post-body img, .post-body .tr-caption-container {
+padding: 5px;
+}
+.post-body .tr-caption-container {
+color: #666666;
+}
+.post-body .tr-caption-container img {
+padding: 0;
+background: transparent;
+border: none;
+-moz-box-shadow: 0 0 0 rgba(0, 0, 0, .1);
+-webkit-box-shadow: 0 0 0 rgba(0, 0, 0, .1);
+box-shadow: 0 0 0 rgba(0, 0, 0, .1);
+}
+.post-header {
+margin: 0 0 1.5em;
+line-height: 1.6;
+font-size: 90%;
+}
+.post-footer {
+margin: 20px -2px 0;
+padding: 5px 10px;
+color: #666666;
+background-color: #f9f9f9;
+border-bottom: 1px solid #eeeeee;
+line-height: 1.6;
+font-size: 90%;
+}
+#comments .comment-author {
+padding-top: 1.5em;
+border-top: 1px solid #eeeeee;
+background-position: 0 1.5em;
+}
+#comments .comment-author:first-child {
+padding-top: 0;
+border-top: none;
+}
+.avatar-image-container {
+margin: .2em 0 0;
+}
+#comments .avatar-image-container img {
+border: 1px solid #eeeeee;
+}
+/* Comments
+----------------------------------------------- */
+.comments .comments-content .icon.blog-author {
+background-repeat: no-repeat;
+background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEgAACxIB0t1+/AAAAAd0SU1FB9sLFwMeCjjhcOMAAAD+SURBVDjLtZSvTgNBEIe/WRRnm3U8RC1neQdsm1zSBIU9VVF1FkUguQQsD9ITmD7ECZIJSE4OZo9stoVjC/zc7ky+zH9hXwVwDpTAWWLrgS3QAe8AZgaAJI5zYAmc8r0G4AHYHQKVwII8PZrZFsBFkeRCABYiMh9BRUhnSkPTNCtVXYXURi1FpBDgArj8QU1eVXUzfnjv7yP7kwu1mYrkWlU33vs1QNu2qU8pwN0UpKoqokjWwCztrMuBhEhmh8bD5UDqur75asbcX0BGUB9/HAMB+r32hznJgXy2v0sGLBcyAJ1EK3LFcbo1s91JeLwAbwGYu7TP/3ZGfnXYPgAVNngtqatUNgAAAABJRU5ErkJggg==);
+}
+.comments .comments-content .loadmore a {
+border-top: 1px solid #999999;
+border-bottom: 1px solid #999999;
+}
+.comments .comment-thread.inline-thread {
+background-color: #f9f9f9;
+}
+.comments .continue {
+border-top: 2px solid #999999;
+}
+/* Accents
+---------------------------------------------- */
+.section-columns td.columns-cell {
+border-left: 1px solid #eeeeee;
+}
+.blog-pager {
+background: transparent none no-repeat scroll top center;
+}
+.blog-pager-older-link, .home-link,
+.blog-pager-newer-link {
+background-color: transparent;
+padding: 5px;
+}
+.footer-outer {
+border-top: 0 dashed #bbbbbb;
+}
+/* Mobile
+----------------------------------------------- */
+body.mobile {
+background-size: auto;
+}
+.mobile .body-fauxcolumn-outer {
+background: transparent none repeat scroll top left;
+}
+.mobile .body-fauxcolumn-outer .cap-top {
+background-size: 100% auto;
+}
+.mobile .content-outer {
+-webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15);
+box-shadow: 0 0 3px rgba(0, 0, 0, .15);
+padding: 0 40px;
+}
+body.mobile .AdSense {
+margin: 0 -40px;
+}
+.mobile .tabs-inner .widget ul {
+margin-left: 0;
+margin-right: 0;
+}
+.mobile .post {
+margin: 0;
+}
+.mobile .main-inner .column-center-inner .section {
+margin: 0;
+}
+.mobile .date-header span {
+padding: 0.1em 10px;
+margin: 0 -10px;
+}
+.mobile h3.post-title {
+margin: 0;
+}
+.mobile .blog-pager {
+background: transparent none no-repeat scroll top center;
+}
+.mobile .footer-outer {
+border-top: none;
+}
+.mobile .main-inner, .mobile .footer-inner {
+background-color: transparent;
+}
+.mobile-index-contents {
+color: #666666;
+}
+.mobile-link-button {
+background-color: #258aaf;
+}
+.mobile-link-button a:link, .mobile-link-button a:visited {
+color: #ffffff;
+}
+.mobile .tabs-inner .section:first-child {
+border-top: none;
+}
+.mobile .tabs-inner .PageList .widget-content {
+background-color: #eeeeee;
+color: #000000;
+border-top: 1px solid #eeeeee;
+border-bottom: 1px solid #eeeeee;
+}
+.mobile .tabs-inner .PageList .widget-content .pagelist-arrow {
+border-left: 1px solid #eeeeee;
+}
+.blog-pager {
+background: none !important;
+}
+.figure-center {
+margin: 32px auto 24px;
+max-width: 100%;
+}
+.figure,
+.figure-right {
+clear: right;
+float: right;
+margin: 10px 0 0 0;
+padding: 0 0 0 20px;
+max-width: 50%;
+/* width must be defined w/ an inline style matching the image width */
+}
+.figure-left {
+clear: left;
+float: left;
+margin: 10px 0 0 0;
+padding: 0 20px 0 0;
+max-width: 50%;
+/* width must be defined w/ an inline style matching the image width */
+}
+@media (max-width: 719px) {
+/* Collapse on mobile. */
+.figure,
+.figure-right,
+.figure-left {
+float: none;
+clear: none;
+padding: 0;
+margin: 32px auto 24px;
+max-width: 100%;
+}
+}
+--&gt;</style>
+<style id="template-skin-1" type="text/css">&lt;!--
+body {
+min-width: 960px;
+-webkit-font-smoothing: antialiased;
+}
+.content-outer, .content-fauxcolumn-outer, .region-inner {
+min-width: 960px;
+max-width: 960px;
+_width: 960px;
+}
+.main-inner .columns {
+padding-left: 160px;
+padding-right: 0px;
+}
+.main-inner .fauxcolumn-center-outer {
+left: 160px;
+right: 0px;
+/* IE6 does not respect left and right together */
+_width: expression(this.parentNode.offsetWidth -
+parseInt("160px") -
+parseInt("0px") + 'px');
+}
+.main-inner .fauxcolumn-left-outer {
+width: 160px;
+}
+.main-inner .fauxcolumn-right-outer {
+width: 0px;
+}
+.main-inner .column-left-outer {
+width: 160px;
+right: 100%;
+margin-left: -160px;
+}
+.main-inner .column-right-outer {
+width: 0px;
+margin-right: -0px;
+}
+#layout {
+min-width: 0;
+}
+#layout .content-outer {
+min-width: 0;
+width: 800px;
+}
+#layout .region-inner {
+min-width: 0;
+width: auto;
+}
+--&gt;</style>
+<script type="text/javascript">function a(){var b=window.location.href,c=b.split("?");switch(c.length){case 1:return b+"?m=1";case 2:return 0&lt;=c[1].search("(^|&amp;)m=")?null:b+"&amp;m=1";default:return null}}var d=navigator.userAgent;if(-1!=d.indexOf("Mobile")&amp;&amp;-1!=d.indexOf("WebKit")&amp;&amp;-1==d.indexOf("iPad")||-1!=d.indexOf("Opera Mini")||-1!=d.indexOf("IEMobile")){var e=a();e&amp;&amp;window.location.replace(e)};
+</script><script type="text/javascript" src="//pagead2.googlesyndication.com/pagead/js/google_top_exp.js"></script><style>.gc-bubbleDefault{background-color:transparent !important;text-align:left;padding:0 !important;margin:0 !important;border:0 !important;table-layout:auto !important}.gc-reset{background-color:transparent !important;border:0 !important;padding:0 !important;margin:0 !important;text-align:left}.pls-bubbleTop{border-bottom:1px solid #ccc !important}.pls-topTail,.pls-vertShimLeft,.pls-contentLeft{background-image:url(//ssl.gstatic.com/s2/oz/images/stars/po/bubblev1/border_3.gif) !important}.pls-topTail{background-repeat:repeat-x !important;background-position:bottom !important}.pls-vertShim{background-color:#fff !important;text-align:right}.tbl-grey .pls-vertShim{background-color:#f5f5f5 !important}.pls-vertShimLeft{background-repeat:repeat-y !important;background-position:right !important;height:4px}.pls-vertShimRight{height:4px}.pls-confirm-container .pls-vertShim{background-color:#fff3c2 !important}.pls-contentWrap{background-color:#fff !important;position:relative !important;vertical-align:top}.pls-contentLeft{background-repeat:repeat-y;background-position:right;vertical-align:top}.pls-dropRight{background-image:url(//ssl.gstatic.com/s2/oz/images/stars/po/bubblev1/bubbleDropR_3.png) !important;background-repeat:repeat-y !important;vertical-align:top}.pls-vert,.pls-tailleft,.pls-dropTR .pls-dropBR,.pls-dropBL,.pls-vert img{vertical-align:top}.pls-dropBottom{background-image:url(//ssl.gstatic.com/s2/oz/images/stars/po/bubblev1/bubbleDropB_3.png) !important;background-repeat:repeat-x !important;width:100%;vertical-align:top}.pls-topLeft{background:inherit !important;text-align:right;vertical-align:bottom}.pls-topRight{background:inherit !important;text-align:left;vertical-align:bottom}.pls-bottomLeft{background:inherit !important;text-align:right}.pls-bottomRight{background:inherit !important;text-align:left;vertical-align:top}.pls-tailtop,.pls-tailright,.pls-tailbottom,.pls-tailleft{display:none;position:relative}.pls-tailbottom,.pls-tailtop,.pls-tailright,.pls-tailleft,.pls-dropTR,.pls-dropBR,.pls-dropBL{background-image:url(//ssl.gstatic.com/s2/oz/images/stars/po/bubblev1/bubbleSprite_3.png) !important;background-repeat:no-repeat}.tbl-grey .pls-tailbottom,.tbl-grey .pls-tailtop,.tbl-grey .pls-tailright,.tbl-grey .pls-tailleft,.tbl-grey .pls-dropTR,.tbl-grey .pls-dropBR,.tbl-grey .pls-dropBL{background-image:url(//ssl.gstatic.com/s2/oz/images/stars/po/bubblev1/bubbleSprite-grey.png) !important}.pls-tailbottom{background-position:-23px 0}.pls-confirm-container .pls-tailbottom{background-position:-23px -10px}.pls-tailtop{background-position:-19px -20px}.pls-tailright{background-position:0 0}.pls-tailleft{background-position:-10px 0}.pls-tailtop{vertical-align:top}.gc-bubbleDefault td{line-height:0;font-size:0}.pls-topLeft img,.pls-topRight img,.pls-tailbottom{vertical-align:bottom}.pls-bottomLeft img,.bubbleDropTR,.pls-dropBottomL img,.pls-dropBottom img,.pls-dropBottomR img,.pls-bottomLeft{vertical-align:top}.pls-dropTR{background-position:0 -22px}.pls-dropBR{background-position:0 -27px}.pls-dropBL{background-position:0 -16px}.pls-spacertop,.pls-spacerright,.pls-spacerbottom,.pls-spacerleft{position:static !important}.pls-spinner{bottom:0;position:absolute;left:0;margin:auto;right:0;top:0} </style><script type="text/javascript" src="https://www.google.com/uds/?file=search&amp;v=1&amp;hl=en&amp;async=2"></script><style class="singleton-element" type="text/css">.cookie-choices-info { position:fixed;width:100%;background-color:#666;margin:0;left:0;top:0;padding:0;z-index:4000;text-align:center;color:#fff;line-height:140%;padding:10px 0;font-family:roboto,Arial; } .cookie-choices-info .cookie-choices-inner { position:relative;width:initial;margin:0;left:0;top:0; } .cookie-choices-info .cookie-choices-text { display:inline-block;vertical-align:middle;font-size:16px;margin:10px 20px;color:#ccc;max-width:800px;text-align:left; }.cookie-choices-info .cookie-choices-buttons { display:inline-block;vertical-align:middle;white-space:nowrap;margin:0 10px; } .cookie-choices-info .cookie-choices-button:hover { color: #fff; } .cookie-choices-info .cookie-choices-button { font-weight:bold;text-transform:UPPERCASE;white-space:nowrap;color:#eee;margin-left:8px;padding:0 6px; text-decoration:none; }</style><link type="text/css" href="https://www.google.com/uds/api/search/1.0/0c3990ce7a056ed50667fe0c3873c9b6/default+en.css" rel="stylesheet" /><script type="text/javascript" src="https://www.google.com/uds/api/search/1.0/0c3990ce7a056ed50667fe0c3873c9b6/default+en.I.js"></script></head>
+<body class="" itemscope="" itemtype="http://schema.org/Article">
+<div class="navbar section" id="navbar"><div class="widget Navbar" data-version="1" id="Navbar1"><script type="text/javascript">
+ function setAttributeOnload(object, attribute, val) {
+ if(window.addEventListener) {
+ window.addEventListener('load',
+ function(){ object[attribute] = val; }, false);
+ } else {
+ window.attachEvent('onload', function(){ object[attribute] = val; });
+ }
+ }
+ </script>
+<div id="navbar-iframe-container"><iframe ng-non-bindable="" hspace="0" marginheight="0" marginwidth="0" scrolling="no" style="" tabindex="0" vspace="0" id="navbar-iframe" name="navbar-iframe" src="https://www.blogger.com/navbar.g?targetBlogID=6755709643044947179&amp;blogName=Android+Developers+Blog&amp;publishMode=PUBLISH_MODE_HOSTED&amp;navbarType=LIGHT&amp;layoutType=LAYOUTS&amp;searchRoot=https://android-developers.googleblog.com/search&amp;blogLocale=en&amp;v=2&amp;homepageUrl=https://android-developers.googleblog.com/&amp;targetPostID=2701400044422363572&amp;blogPostOrPageUrl=https://android-developers.googleblog.com/2016/12/saving-data-reducing-the-size-of-app-updates-by-65-percent.html&amp;vt=-7679880580717935623&amp;usegapi=1&amp;jsh=m%3B%2F_%2Fscs%2Fapps-static%2F_%2Fjs%2Fk%3Doz.gapi.en_GB.oDaXKax7Lmc.O%2Fm%3D__features__%2Fam%3DAQ%2Frt%3Dj%2Fd%3D1%2Frs%3DAGLTcCP-QWj14-CfU2w6doKmOqTwfM2Hig#id=navbar-iframe&amp;parent=https%3A%2F%2Fandroid-developers.googleblog.com&amp;pfname=&amp;rpctoken=15056989" frameborder="0" width="100%"></iframe></div>
+<script type="text/javascript" src="https://apis.google.com/js/plusone.js" gapi_processed="true"></script>
+<script type="text/javascript">
+ gapi.load("gapi.iframes:gapi.iframes.style.bubble", function() {
+ if (gapi.iframes &amp;&amp; gapi.iframes.getContext) {
+ gapi.iframes.getContext().openChild({
+ url: 'https://www.blogger.com/navbar.g?targetBlogID\x3d6755709643044947179\x26blogName\x3dAndroid+Developers+Blog\x26publishMode\x3dPUBLISH_MODE_HOSTED\x26navbarType\x3dLIGHT\x26layoutType\x3dLAYOUTS\x26searchRoot\x3dhttps://android-developers.googleblog.com/search\x26blogLocale\x3den\x26v\x3d2\x26homepageUrl\x3dhttps://android-developers.googleblog.com/\x26targetPostID\x3d2701400044422363572\x26blogPostOrPageUrl\x3dhttps://android-developers.googleblog.com/2016/12/saving-data-reducing-the-size-of-app-updates-by-65-percent.html\x26vt\x3d-7679880580717935623',
+ where: document.getElementById("navbar-iframe-container"),
+ id: "navbar-iframe"
+ });
+ }
+ });
+ </script><script type="text/javascript">
+(function() {
+var script = document.createElement('script');
+script.type = 'text/javascript';
+script.src = '//pagead2.googlesyndication.com/pagead/js/google_top_exp.js';
+var head = document.getElementsByTagName('head')[0];
+if (head) {
+head.appendChild(script);
+}})();
+</script>
+</div></div>
+<div class="body-fauxcolumns">
+<div class="fauxcolumn-outer body-fauxcolumn-outer">
+<div class="cap-top">
+<div class="cap-left"></div>
+<div class="cap-right"></div>
+</div>
+<div class="fauxborder-left">
+<div class="fauxborder-right"></div>
+<div class="fauxcolumn-inner">
+</div>
+</div>
+<div class="cap-bottom">
+<div class="cap-left"></div>
+<div class="cap-right"></div>
+</div>
+</div>
+</div>
+<div class="content">
+<div class="content-fauxcolumns">
+<div class="fauxcolumn-outer content-fauxcolumn-outer">
+<div class="cap-top">
+<div class="cap-left"></div>
+<div class="cap-right"></div>
+</div>
+<div class="fauxborder-left">
+<div class="fauxborder-right"></div>
+<div class="fauxcolumn-inner">
+</div>
+</div>
+<div class="cap-bottom">
+<div class="cap-left"></div>
+<div class="cap-right"></div>
+</div>
+</div>
+</div>
+<div class="content-outer">
+<div class="content-cap-top cap-top">
+<div class="cap-left"></div>
+<div class="cap-right"></div>
+</div>
+<div class="fauxborder-left content-fauxborder-left">
+<div class="fauxborder-right content-fauxborder-right"></div>
+<div class="content-inner">
+<header>
+<div class="header-outer">
+<div class="header-cap-top cap-top">
+<div class="cap-left"></div>
+<div class="cap-right"></div>
+</div>
+<div class="fauxborder-left header-fauxborder-left">
+<div class="fauxborder-right header-fauxborder-right"></div>
+<div class="region-inner header-inner">
+<div class="header section" id="header"><div class="widget Header" data-version="1" id="Header1">
+<div id="header-inner">
+<a href="https://android-developers.googleblog.com/" style="display: block">
+<img alt="Android Developers Blog" id="Header1_headerimg" src="//1.bp.blogspot.com/-dTliKTChbPA/VXh2idc5lPI/AAAAAAAABxg/xoPCoV_UeuY/s1600/04_blog_3banner.png" style="display: block" width="960px; " height="194px; " />
+</a>
+</div>
+</div></div>
+</div>
+</div>
+<div class="header-cap-bottom cap-bottom">
+<div class="cap-left"></div>
+<div class="cap-right"></div>
+</div>
+</div>
+</header>
+<div class="tabs-outer">
+<div class="tabs-cap-top cap-top">
+<div class="cap-left"></div>
+<div class="cap-right"></div>
+</div>
+<div class="fauxborder-left tabs-fauxborder-left">
+<div class="fauxborder-right tabs-fauxborder-right"></div>
+<div class="region-inner tabs-inner">
+<div class="tabs no-items section" id="crosscol"></div>
+<div class="tabs no-items section" id="crosscol-overflow"></div>
+</div>
+</div>
+<div class="tabs-cap-bottom cap-bottom">
+<div class="cap-left"></div>
+<div class="cap-right"></div>
+</div>
+</div>
+<div class="main-outer">
+<div class="main-cap-top cap-top">
+<div class="cap-left"></div>
+<div class="cap-right"></div>
+</div>
+<div class="fauxborder-left main-fauxborder-left">
+<div class="fauxborder-right main-fauxborder-right"></div>
+<div class="region-inner main-inner">
+<div class="columns fauxcolumns">
+<div class="fauxcolumn-outer fauxcolumn-center-outer">
+<div class="cap-top">
+<div class="cap-left"></div>
+<div class="cap-right"></div>
+</div>
+<div class="fauxborder-left">
+<div class="fauxborder-right"></div>
+<div class="fauxcolumn-inner">
+</div>
+</div>
+<div class="cap-bottom">
+<div class="cap-left"></div>
+<div class="cap-right"></div>
+</div>
+</div>
+<div class="fauxcolumn-outer fauxcolumn-left-outer">
+<div class="cap-top">
+<div class="cap-left"></div>
+<div class="cap-right"></div>
+</div>
+<div class="fauxborder-left">
+<div class="fauxborder-right"></div>
+<div class="fauxcolumn-inner">
+</div>
+</div>
+<div class="cap-bottom">
+<div class="cap-left"></div>
+<div class="cap-right"></div>
+</div>
+</div>
+<div class="fauxcolumn-outer fauxcolumn-right-outer">
+<div class="cap-top">
+<div class="cap-left"></div>
+<div class="cap-right"></div>
+</div>
+<div class="fauxborder-left">
+<div class="fauxborder-right"></div>
+<div class="fauxcolumn-inner">
+</div>
+</div>
+<div class="cap-bottom">
+<div class="cap-left"></div>
+<div class="cap-right"></div>
+</div>
+</div>
+<!-- corrects IE6 width calculation -->
+<div class="columns-inner">
+<div class="column-center-outer">
+<div class="column-center-inner">
+<div class="main section" id="main"><div id="uds-searchControl"><a name="uds-search-results"></a><div id="uds-searchResults"><div class="gsc-control" dir="ltr"><div class="gsc-results-wrapper-nooverlay"><div class="gsc-tabsAreaInvisible"><div class="gsc-tabHeader gsc-inline-block gsc-tabhActive">This Blog</div><span class="gs-spacer"> </span></div><div class="gsc-above-wrapper-area-invisible"><table class="gsc-above-wrapper-area-container" cellspacing="0" cellpadding="0"><tbody><tr><td class="gsc-result-info-container"><div class="gsc-result-info-invisible"></div></td></tr></tbody></table></div><div class="gsc-resultsbox-invisible"><div class="gsc-resultsRoot gsc-tabData gsc-tabdActive"><table class="gsc-resultsHeader" cellspacing="0" cellpadding="0"><tbody><tr><td class="gsc-twiddleRegionCell"><div class="gsc-twiddle"><div class="gsc-title">This Blog</div></div><div class="gsc-stats"></div><div class="gsc-results-selector gsc-more-results-active"><div class="gsc-result-selector gsc-one-result" title="show one result"> </div><div class="gsc-result-selector gsc-more-results" title="show more results"> </div><div class="gsc-result-selector gsc-all-results" title="show all results"> </div></div></td><td class="gsc-configLabelCell"></td></tr></tbody></table><div><div class="gsc-expansionArea"></div></div></div></div></div></div></div><div id="uds-searchClearResults" class="gsc-clear-button" style="display: none;"> </div></div><div class="widget Blog" data-version="1" id="Blog1">
+<div class="blog-posts hfeed">
+
+ <div class="date-outer">
+
+<h2 class="date-header"><span>06 December 2016</span></h2>
+
+ <div class="date-posts">
+
+<div class="post-outer">
+<div class="post hentry" itemscope="itemscope" itemtype="http://schema.org/BlogPosting">
+<a name="2701400044422363572"></a>
+<h3 class="post-title entry-title" itemprop="name">
+Saving Data: Reducing the size of App Updates by 65%
+</h3>
+<div class="post-header">
+<div class="post-header-line-1"></div>
+</div>
+<div class="post-body entry-content" id="post-body-2701400044422363572" itemprop="articlesBody">
+<p>
+<em>Posted by Andrew Hayden, Software Engineer on Google Play</em>
+</p>
+<p>
+Android users are downloading tens of billions of apps and games on Google Play.
+ We're also seeing developers update their apps frequently in order to provide
+users with great content, improve security, and enhance the overall user
+experience. It takes a lot of data to download these updates and we know users
+care about how much data their devices are using. Earlier this year, we
+announced that we started using <a href="https://android-developers.blogspot.com/2016/07/improvements-for-smaller-app-downloads.html">the
+bsdiff algorithm</a> <a href="https://android-developers.blogspot.com/2016/07/improvements-for-smaller-app-downloads.html">(by
+Colin Percival)</a>. Using bsdiff, we were able to reduce the size of app
+updates on average by 47% compared to the full APK size.
+</p>
+<p>
+Today, we're excited to share a new approach that goes further — <strong><a href="https://github.com/andrewhayden/archive-patcher/blob/master/README.md">File-by-File
+patching</a></strong>. App Updates using File-by-File patching are, <strong>on average,</strong>
+<strong>65% smaller than the full app</strong>, and in some cases more than 90%
+smaller.
+</p>
+<p>
+The savings, compared to our previous approach, add up to 6 petabytes of user
+data saved per day!
+</p>
+<p>
+In order to get the new version of the app, Google Play sends your device a
+patch that describes the <em>differences</em> between the old and new versions
+of the app.
+</p>
+<p>
+Imagine you are an author of a book about to be published, and wish to change a
+single sentence - it's much easier to tell the editor which sentence to change
+and what to change, rather than send an entirely new book. In the same way,
+patches are much smaller and much faster to download than the entire APK.
+</p>
+<p>
+<strong><span style="text-decoration:underline;">Techniques used in File-by-File
+patching </span></strong>
+</p>
+<p>
+Android apps are packaged as APKs, which are ZIP files with special conventions.
+Most of the content within the ZIP files (and APKs) is compressed using a
+technology called <a href="https://en.wikipedia.org/w/index.php?title=DEFLATE&amp;oldid=735386036">Deflate</a>.
+Deflate is really good at compressing data but it has a drawback: it makes
+identifying changes in the original (uncompressed) content really hard. Even a
+tiny change to the original content (like changing one word in a book) can make
+the compressed output of deflate look <em>completely different</em>. Describing
+the differences between the <em>original</em> content is easy, but describing
+the differences between the <em>compressed</em> content is so hard that it leads
+to inefficient patches.
+</p>
+<p>
+Watch how much the compressed text on the right side changes from a one-letter
+change in the uncompressed text on the left:
+</p>
+<div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-chCZZinlUTg/WEcxvJo9gdI/AAAAAAAADnk/3ND_BspqN6Y2j5xxkLFW3RyS2Ig0NHZpQCLcB/s1600/ipsum-opsum.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img src="https://2.bp.blogspot.com/-chCZZinlUTg/WEcxvJo9gdI/AAAAAAAADnk/3ND_BspqN6Y2j5xxkLFW3RyS2Ig0NHZpQCLcB/s640/ipsum-opsum.gif" width="640" height="105" border="0" /></a></div>
+<p>
+File-by-File therefore is based on detecting changes in the uncompressed data.
+To generate a patch, we first decompress both old and new files before computing
+the delta (we still use bsdiff here). Then to apply the patch, we decompress the
+old file, apply the delta to the uncompressed content and then recompress the
+new file. In doing so, we need to make sure that the APK on your device is a
+perfect match, byte for byte, to the one on the Play Store (see <a href="https://source.android.com/security/apksigning/v2.html">APK Signature
+Schema v2 </a>for why).
+</p>
+<p>
+When recompressing the new file, we hit two complications. First, Deflate has a
+number of settings that affect output; and we don't know which settings were
+used in the first place. Second, many versions of deflate exist and we need to
+know whether the version on your device is suitable.
+</p>
+<p>
+Fortunately, after analysis of the apps on the Play Store, we've discovered that
+recent and compatible versions of deflate based on zlib (the most popular
+deflate library) account for almost all deflated content in the Play Store. In
+addition, the default settings (level=6) and maximum compression settings
+(level=9) are the only settings we encountered in practice.
+</p>
+<p>
+Knowing this, we can detect and reproduce the original deflate settings. This
+makes it possible to uncompress the data, apply a patch, and then recompress the
+data back to <em>exactly the same bytes</em> as originally uploaded.
+</p>
+<p>
+However, there is one trade off; extra processing power is needed on the device.
+On modern devices (e.g. from 2015), recompression can take a little over a
+second per megabyte and on older or less powerful devices it can be longer.
+Analysis so far shows that, on average, if the patch size is halved then the
+time spent applying the patch (which for File-by-File includes recompression) is
+doubled.
+</p>
+<p>
+For now, we are limiting the use of this new patching technology to auto-updates
+only, i.e. the updates that take place in the background, usually at night when
+your phone is plugged into power and you're not likely to be using it. This
+ensures that users won't have to wait any longer than usual for an update to
+finish when manually updating an app.
+</p>
+<p>
+<strong><span style="text-decoration:underline;">How effective is File-by-File
+Patching?</span></strong>
+</p>
+<p>
+Here are examples of app updates already using File-by-File Patching:
+</p>
+<div dir="ltr" style="text-align: left;" trbidi="on">
+<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
+<br /></div>
+<div dir="ltr" style="margin-left: 0pt;">
+<table style="border-collapse: collapse; border: none;"><colgroup><col width="142" /><col width="102" /><col width="176" /><col width="176" /></colgroup><tbody>
+<tr style="height: 0px;"><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
+<span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Application</span></div>
+</td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
+<span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Original Size</span></div>
+</td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
+<span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Previous (BSDiff) Patch Size</span></div>
+<div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
+<span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(% vs original)</span></div>
+</td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
+<span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">File-by-File Patch Size (% vs original)</span></div>
+</td></tr>
+<tr style="height: 0px;"><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
+<a href="https://play.google.com/store/apps/details?id=com.king.farmheroessupersaga&amp;hl=en" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Farm Heroes Super Saga</span></a></div>
+</td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 3px 3px 3px 3px; vertical-align: bottom;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
+<span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">71.1 MB</span></div>
+</td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 3px 3px 3px 3px; vertical-align: bottom;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
+<span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">13.4 MB (-81%)</span></div>
+</td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 3px 3px 3px 3px; vertical-align: bottom;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
+<span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">8.0 MB (-89%)</span></div>
+</td></tr>
+<tr style="height: 0px;"><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
+<a href="https://play.google.com/store/apps/details?id=com.google.android.apps.maps" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Google Maps</span></a></div>
+</td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 3px 3px 3px 3px; vertical-align: bottom;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
+<span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">32.7 MB</span></div>
+</td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 3px 3px 3px 3px; vertical-align: bottom;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
+<span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">17.5 MB (-46%)</span></div>
+</td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 3px 3px 3px 3px; vertical-align: bottom;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
+<span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">9.6 MB (-71%)</span></div>
+</td></tr>
+<tr style="height: 0px;"><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
+<a href="https://play.google.com/store/apps/details?id=com.google.android.gm" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Gmail</span></a></div>
+</td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 3px 3px 3px 3px; vertical-align: bottom;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
+<span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">17.8 MB</span></div>
+</td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 3px 3px 3px 3px; vertical-align: bottom;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
+<span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">7.6 MB (-57%)</span></div>
+</td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 3px 3px 3px 3px; vertical-align: bottom;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
+<span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">7.3 MB (-59%)</span></div>
+</td></tr>
+<tr style="height: 0px;"><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
+<a href="https://play.google.com/store/apps/details?id=com.google.android.tts" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Google TTS</span></a></div>
+</td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 3px 3px 3px 3px; vertical-align: bottom;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
+<span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">18.9 MB</span></div>
+</td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 3px 3px 3px 3px; vertical-align: bottom;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
+<span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">17.2 MB (-9%)</span></div>
+</td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 3px 3px 3px 3px; vertical-align: bottom;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
+<span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">13.1 MB (-31%)</span></div>
+</td></tr>
+<tr style="height: 0px;"><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
+<a href="https://play.google.com/store/apps/details?id=com.amazon.kindle" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Kindle</span></a></div>
+</td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 3px 3px 3px 3px; vertical-align: bottom;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
+<span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">52.4 MB</span></div>
+</td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 3px 3px 3px 3px; vertical-align: bottom;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
+<span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">19.1 MB (-64%)</span></div>
+</td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 3px 3px 3px 3px; vertical-align: bottom;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
+<span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">8.4 MB (-84%)</span></div>
+</td></tr>
+<tr style="height: 0px;"><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
+<a href="https://play.google.com/store/apps/details?id=com.netflix.mediaclient" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Netflix</span></a></div>
+</td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 3px 3px 3px 3px; vertical-align: bottom;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
+<span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">16.2 MB</span></div>
+</td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 3px 3px 3px 3px; vertical-align: bottom;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
+<span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">7.7 MB (-52%)</span></div>
+</td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 3px 3px 3px 3px; vertical-align: bottom;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
+<span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1.2 MB (-92%)</span></div>
+</td></tr>
+</tbody></table>
+</div>
+<span id="docs-internal-guid-de7f0210-d587-05da-d332-146959aa303f"></span><br />
+<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
+<br /></div>
+</div>
+<em>Disclaimer: if you see different patch sizes when you press "update"
+manually, that is because we are not currently using File-by-file for
+interactive updates, only those done in the background.</em>
+<p>
+<strong><span style="text-decoration:underline;">Saving data and making our
+users (&amp; developers!) happy</span></strong>
+</p>
+<p>
+These changes are designed to ensure our community of over a billion Android
+users use as little data as possible for regular app updates. The best thing is
+that as a developer you don't need to do anything. You get these reductions to
+your update size for free!
+</p>
+
+<p>
+If you'd like to know more about File-by-File patching, including the technical
+details, head over to the <a href="https://github.com/andrewhayden/archive-patcher">Archive Patcher GitHub
+project</a> where you can find information, including the source code. Yes,
+File-by-File patching is completely open-source!
+</p>
+<p>
+As a developer if you're interested in reducing your APK size still further,
+here are some <a href="https://developer.android.com/topic/performance/reduce-apk-size.html?utm_campaign=android_discussion_filebyfile_120616&amp;utm_source=anddev&amp;utm_medium=blog">general
+tips on reducing APK size</a>.
+</p>
+<div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-5aRh1dM6Unc/WEcNs55RGhI/AAAAAAAADnI/tzr_oOJjZwgWd9Vu25ydY0UwB3eXKupXwCLcB/s1600/image01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img src="https://2.bp.blogspot.com/-5aRh1dM6Unc/WEcNs55RGhI/AAAAAAAADnI/tzr_oOJjZwgWd9Vu25ydY0UwB3eXKupXwCLcB/s200/image01.png" width="191" height="200" border="0" /></a></div>
+<span itemprop="author" itemscope="itemscope" itemtype="http://schema.org/Person">
+<meta content="https://plus.google.com/116899029375914044550" itemprop="url" />
+</span>
+<div style="clear: both;"></div>
+</div>
+<div class="post-footer">
+<div class="post-footer-line post-footer-line-1"><span class="post-author vcard">
+Posted by
+<span class="fn">
+<a href="https://www.blogger.com/profile/08588467489110681140" itemprop="author" rel="author" title="author profile">
+Android Developers
+</a>
+</span>
+</span>
+<span class="post-icons">
+</span>
+<span class="post-timestamp">
+at
+<a class="timestamp-link" href="https://android-developers.googleblog.com/2016/12/saving-data-reducing-the-size-of-app-updates-by-65-percent.html" itemprop="url" rel="bookmark" title="permanent link"><abbr class="published" itemprop="datePublished" title="2016-12-06T12:06:00-08:00">12:06 PM</abbr></a>
+</span>
+<span class="post-backlinks post-comment-link">
+</span>
+</div>
+<div class="post-footer-line post-footer-line-2"><span class="post-labels">
+Labels:
+<a href="https://android-developers.googleblog.com/search/label/%E2%80%98Google%20Play" rel="tag">‘Google Play</a>,
+<a href="https://android-developers.googleblog.com/search/label/Android%20Developer" rel="tag">Android Developer</a>,
+<a href="https://android-developers.googleblog.com/search/label/Develop" rel="tag">Develop</a>,
+<a href="https://android-developers.googleblog.com/search/label/Featured" rel="tag">Featured</a>,
+<a href="https://android-developers.googleblog.com/search/label/Google%20Play" rel="tag">Google Play</a>,
+<a href="https://android-developers.googleblog.com/search/label/GooglePlay" rel="tag">GooglePlay</a>
+</span>
+</div>
+<div class="post-footer-line post-footer-line-3"></div>
+</div>
+</div>
+<div class="comments" id="comments">
+<a name="comments"></a>
+<div id="backlinks-container">
+<div id="Blog1_backlinks-container"><a name="links"></a><h4>Links to this post</h4>
+<p class="comment-footer">
+<a class="comment-link" href="https://www.blogger.com/blog-this.g" id="Blog1_backlinks-create-link" target="_blank">Create a Link</a>
+</p>
+</div>
+</div>
+</div>
+</div>
+
+ </div></div>
+
+</div>
+<div class="blog-pager" id="blog-pager">
+<span id="blog-pager-newer-link">
+<a class="blog-pager-newer-link" href="https://android-developers.googleblog.com/2016/12/watch-sessions-from-the-playtime-2016-events-to-learn-how-to-succeed-on-android-and-google-play.html" id="Blog1_blog-pager-newer-link" title="Newer Post">Newer Post</a>
+</span>
+<span id="blog-pager-older-link">
+<a class="blog-pager-older-link" href="https://android-developers.googleblog.com/2016/12/welcoming-android-711-nougat.html" id="Blog1_blog-pager-older-link" title="Older Post">Older Post</a>
+</span>
+<a class="home-link" href="https://android-developers.googleblog.com/">Home</a>
+</div>
+<div class="clear"></div>
+<div class="post-feeds">
+</div>
+<script type="text/javascript">window.___gcfg = {'lang': 'en'};</script>
+</div></div>
+</div>
+</div>
+<div class="column-left-outer">
+<div class="column-left-inner">
+<aside>
+<div class="sidebar section" id="sidebar-left-1"><div class="widget Image" data-version="1" id="Image1">
+<h2>​ </h2>
+<div class="widget-content">
+<a href="http://developer.android.com">
+<img alt="​ " id="Image1_img" src="//4.bp.blogspot.com/-WYc90ytWu_o/VXDbFwMO3DI/AAAAAAAABxA/GFg2ZfIgeMw/s1600/backtodac.png" width="160" height="36" />
+</a>
+<br />
+</div>
+<div class="clear"></div>
+<span class="widget-item-control">
+<span class="item-control blog-admin">
+<a class="quickedit" href="//www.blogger.com/rearrange?blogID=6755709643044947179&amp;widgetType=Image&amp;widgetId=Image1&amp;action=editWidget&amp;sectionId=sidebar-left-1" onclick='return _WidgetManager._PopupConfig(document.getElementById("Image1"));' target="configImage1" title="Edit">
+<img alt="" src="https://resources.blogblog.com/img/icon18_wrench_allbkg.png" width="18" height="18" />
+</a>
+</span>
+</span>
+<div class="clear"></div>
+</div><div class="widget CustomSearch" data-version="1" id="CustomSearch1">
+<h2 class="title">Search</h2>
+<div class="widget-content">
+<div id="CustomSearch1_form"><form class="gsc-search-box" accept-charset="utf-8"><table class="gsc-search-box" cellspacing="0" cellpadding="0"><tbody><tr><td class="gsc-input"><input autocomplete="off" size="10" class=" gsc-input" name="search" title="search" type="text" /><input name="bgresponse" id="bgresponse" type="hidden" /></td><td class="gsc-search-button"><input value="Search" class="gsc-search-button" title="search" type="submit" /></td></tr></tbody></table><table class="gsc-branding" cellspacing="0" cellpadding="0"><tbody><tr style="display: none;"><td class="gsc-branding-user-defined"></td><td class="gsc-branding-text"><div class="gsc-branding-text">powered by</div></td><td class="gsc-branding-img-noclear"><img src="https://www.google.com/uds/css/small-logo.png" class="gsc-branding-img-noclear" /></td></tr></tbody></table></form></div>
+</div>
+<style type="text/css">
+ #uds-searchControl .gs-result .gs-title,
+ #uds-searchControl .gs-result .gs-title *,
+ #uds-searchControl .gsc-results .gsc-trailing-more-results,
+ #uds-searchControl .gsc-results .gsc-trailing-more-results * {
+ color:#258aaf;
+ }
+
+ #uds-searchControl .gs-result .gs-title a:visited,
+ #uds-searchControl .gs-result .gs-title a:visited * {
+ color:#258aaf;
+ }
+
+ #uds-searchControl .gs-relativePublishedDate,
+ #uds-searchControl .gs-publishedDate {
+ color: #000000;
+ }
+
+ #uds-searchControl .gs-result a.gs-visibleUrl,
+ #uds-searchControl .gs-result .gs-visibleUrl {
+ color: #258aaf;
+ }
+
+ #uds-searchControl .gsc-results {
+ border-color: #eeeeee;
+ background-color: transparent;
+ }
+
+ #uds-searchControl .gsc-tabhActive {
+ border-color: #eeeeee;
+ border-top-color: #eeeeee;
+ background-color: transparent;
+ color: #666666;
+ }
+
+ #uds-searchControl .gsc-tabhInactive {
+ border-color: #eeeeee;
+ background-color: transparent;
+ color: #258aaf;
+ }
+
+ #uds-searchClearResults {
+ border-color: #eeeeee;
+ }
+
+ #uds-searchClearResults:hover {
+ border-color: #eeeeee;
+ }
+
+ #uds-searchControl .gsc-cursor-page {
+ color: #258aaf;
+ }
+
+ #uds-searchControl .gsc-cursor-current-page {
+ color: #666666;
+ }
+ </style>
+<div class="clear"></div>
+<span class="widget-item-control">
+<span class="item-control blog-admin">
+<a class="quickedit" href="//www.blogger.com/rearrange?blogID=6755709643044947179&amp;widgetType=CustomSearch&amp;widgetId=CustomSearch1&amp;action=editWidget&amp;sectionId=sidebar-left-1" onclick='return _WidgetManager._PopupConfig(document.getElementById("CustomSearch1"));' target="configCustomSearch1" title="Edit">
+<img alt="" src="https://resources.blogblog.com/img/icon18_wrench_allbkg.png" width="18" height="18" />
+</a>
+</span>
+</span>
+<div class="clear"></div>
+</div><div class="widget BlogArchive" data-version="1" id="BlogArchive1">
+<h2>Archive</h2>
+<div class="widget-content">
+<div id="ArchiveList">
+<div id="BlogArchive1_ArchiveList">
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/search?updated-min=2017-01-01T00:00:00-08:00&amp;updated-max=2018-01-01T00:00:00-08:00&amp;max-results=11">
+2017
+</a>
+<span class="post-count" dir="ltr">(11)</span>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2017_01_01_archive.html">
+January
+</a>
+<span class="post-count" dir="ltr">(11)</span>
+</li>
+</ul>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate expanded">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy toggle-open">
+
+ ▼ 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/search?updated-min=2016-01-01T00:00:00-08:00&amp;updated-max=2017-01-01T00:00:00-08:00&amp;max-results=50">
+2016
+</a>
+<span class="post-count" dir="ltr">(136)</span>
+<ul class="hierarchy">
+<li class="archivedate expanded">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy toggle-open">
+
+ ▼ 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2016_12_01_archive.html">
+December
+</a>
+<span class="post-count" dir="ltr">(17)</span>
+<ul class="posts">
+<li><a href="https://android-developers.googleblog.com/2016/12/introducing-the-exifinterface-support-library.html">Introducing the ExifInterface Support Library</a></li>
+<li><a href="https://android-developers.googleblog.com/2016/12/get-the-guide-to-finding-success-in-new-markets-on-google-play.html">Get the guide to finding success in new markets on...</a></li>
+<li><a href="https://android-developers.googleblog.com/2016/12/start-building-actions-on-google.html">Start building Actions on Google</a></li>
+<li><a href="https://android-developers.googleblog.com/2016/12/important-best-practices-to-improve-app-engagement.html">Best practices to improve app engagement</a></li>
+<li><a href="https://android-developers.googleblog.com/2016/12/games-authentication-adopting-google.html">Games authentication adopting Google Sign-In API</a></li>
+<li><a href="https://android-developers.googleblog.com/2016/12/four-tips-for-startup-success-from-a-silicon-valley-vc.html">Four tips for startup success from a Silicon Valle...</a></li>
+<li><a href="https://android-developers.googleblog.com/2016/12/get-a-glimpse-of-wear-2-0s-upcoming-standalone-apps.html">Get a glimpse of Wear 2.0’s upcoming standalone ap...</a></li>
+<li><a href="https://android-developers.googleblog.com/2016/12/tips-to-be-better-found-and-discovered-on-google-play.html">Tips to be better found and discovered on Google P...</a></li>
+<li><a href="https://android-developers.googleblog.com/2016/12/android-wear-2-0-for-china-developer-preview.html">Android Wear 2.0 for China - Developer Preview</a></li>
+<li><a href="https://android-developers.googleblog.com/2016/12/android-wear-2-0-developer-preview-4-authentication-in-app-billing-and-more.html">Android Wear 2.0 Developer Preview 4: Authenticati...</a></li>
+<li><a href="https://android-developers.googleblog.com/2016/12/announcing-googles-new-internet-of-things-platform-with-weave-and-android-things.html">Announcing updates to Google’s Internet of Things ...</a></li>
+<li><a href="https://android-developers.googleblog.com/2016/12/five-steps-to-achieve-sustainable-growth-and-boost-your-apps-long-term-success.html">Five steps to achieve sustainable growth and boost...</a></li>
+<li><a href="https://android-developers.googleblog.com/2016/12/how-augmented-reality-helps-you-buy-furniture-and-capture-pokemon.html">How augmented reality helps you buy furniture and ...</a></li>
+<li><a href="https://android-developers.googleblog.com/2016/12/watch-sessions-from-the-playtime-2016-events-to-learn-how-to-succeed-on-android-and-google-play.html">Watch sessions from the Playtime 2016 events to le...</a></li>
+<li><a href="https://android-developers.googleblog.com/2016/12/saving-data-reducing-the-size-of-app-updates-by-65-percent.html">Saving Data: Reducing the size of App Updates by 6...</a></li>
+<li><a href="https://android-developers.googleblog.com/2016/12/welcoming-android-711-nougat.html">Welcoming Android 7.1.1 Nougat</a></li>
+<li><a href="https://android-developers.googleblog.com/2016/12/indie-game-developers-in-latin-america-sustain-growth-after-launch-on-google-play.html">Indie game developers in Latin America sustain gro...</a></li>
+</ul>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2016_11_01_archive.html">
+November
+</a>
+<span class="post-count" dir="ltr">(16)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2016_10_01_archive.html">
+October
+</a>
+<span class="post-count" dir="ltr">(9)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2016_09_01_archive.html">
+September
+</a>
+<span class="post-count" dir="ltr">(6)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2016_08_01_archive.html">
+August
+</a>
+<span class="post-count" dir="ltr">(7)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2016_07_01_archive.html">
+July
+</a>
+<span class="post-count" dir="ltr">(12)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2016_06_01_archive.html">
+June
+</a>
+<span class="post-count" dir="ltr">(14)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2016_05_01_archive.html">
+May
+</a>
+<span class="post-count" dir="ltr">(16)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2016_04_01_archive.html">
+April
+</a>
+<span class="post-count" dir="ltr">(14)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2016_03_01_archive.html">
+March
+</a>
+<span class="post-count" dir="ltr">(8)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2016_02_01_archive.html">
+February
+</a>
+<span class="post-count" dir="ltr">(8)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2016_01_01_archive.html">
+January
+</a>
+<span class="post-count" dir="ltr">(9)</span>
+</li>
+</ul>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/search?updated-min=2015-01-01T00:00:00-08:00&amp;updated-max=2016-01-01T00:00:00-08:00&amp;max-results=50">
+2015
+</a>
+<span class="post-count" dir="ltr">(130)</span>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2015_12_01_archive.html">
+December
+</a>
+<span class="post-count" dir="ltr">(9)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2015_11_01_archive.html">
+November
+</a>
+<span class="post-count" dir="ltr">(13)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2015_10_01_archive.html">
+October
+</a>
+<span class="post-count" dir="ltr">(20)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2015_09_01_archive.html">
+September
+</a>
+<span class="post-count" dir="ltr">(15)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2015_08_01_archive.html">
+August
+</a>
+<span class="post-count" dir="ltr">(13)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2015_07_01_archive.html">
+July
+</a>
+<span class="post-count" dir="ltr">(9)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2015_06_01_archive.html">
+June
+</a>
+<span class="post-count" dir="ltr">(8)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2015_05_01_archive.html">
+May
+</a>
+<span class="post-count" dir="ltr">(10)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2015_04_01_archive.html">
+April
+</a>
+<span class="post-count" dir="ltr">(10)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2015_03_01_archive.html">
+March
+</a>
+<span class="post-count" dir="ltr">(12)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2015_02_01_archive.html">
+February
+</a>
+<span class="post-count" dir="ltr">(8)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2015_01_01_archive.html">
+January
+</a>
+<span class="post-count" dir="ltr">(3)</span>
+</li>
+</ul>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/search?updated-min=2014-01-01T00:00:00-08:00&amp;updated-max=2015-01-01T00:00:00-08:00&amp;max-results=50">
+2014
+</a>
+<span class="post-count" dir="ltr">(73)</span>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2014_12_01_archive.html">
+December
+</a>
+<span class="post-count" dir="ltr">(9)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2014_11_01_archive.html">
+November
+</a>
+<span class="post-count" dir="ltr">(13)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2014_10_01_archive.html">
+October
+</a>
+<span class="post-count" dir="ltr">(11)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2014_09_01_archive.html">
+September
+</a>
+<span class="post-count" dir="ltr">(6)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2014_08_01_archive.html">
+August
+</a>
+<span class="post-count" dir="ltr">(2)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2014_07_01_archive.html">
+July
+</a>
+<span class="post-count" dir="ltr">(9)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2014_06_01_archive.html">
+June
+</a>
+<span class="post-count" dir="ltr">(10)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2014_05_01_archive.html">
+May
+</a>
+<span class="post-count" dir="ltr">(4)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2014_03_01_archive.html">
+March
+</a>
+<span class="post-count" dir="ltr">(4)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2014_02_01_archive.html">
+February
+</a>
+<span class="post-count" dir="ltr">(3)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2014_01_01_archive.html">
+January
+</a>
+<span class="post-count" dir="ltr">(2)</span>
+</li>
+</ul>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/search?updated-min=2013-01-01T00:00:00-08:00&amp;updated-max=2014-01-01T00:00:00-08:00&amp;max-results=48">
+2013
+</a>
+<span class="post-count" dir="ltr">(48)</span>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2013_12_01_archive.html">
+December
+</a>
+<span class="post-count" dir="ltr">(3)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2013_11_01_archive.html">
+November
+</a>
+<span class="post-count" dir="ltr">(2)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2013_10_01_archive.html">
+October
+</a>
+<span class="post-count" dir="ltr">(7)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2013_09_01_archive.html">
+September
+</a>
+<span class="post-count" dir="ltr">(2)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2013_08_01_archive.html">
+August
+</a>
+<span class="post-count" dir="ltr">(5)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2013_07_01_archive.html">
+July
+</a>
+<span class="post-count" dir="ltr">(5)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2013_06_01_archive.html">
+June
+</a>
+<span class="post-count" dir="ltr">(4)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2013_05_01_archive.html">
+May
+</a>
+<span class="post-count" dir="ltr">(9)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2013_04_01_archive.html">
+April
+</a>
+<span class="post-count" dir="ltr">(3)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2013_03_01_archive.html">
+March
+</a>
+<span class="post-count" dir="ltr">(2)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2013_02_01_archive.html">
+February
+</a>
+<span class="post-count" dir="ltr">(3)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2013_01_01_archive.html">
+January
+</a>
+<span class="post-count" dir="ltr">(3)</span>
+</li>
+</ul>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/search?updated-min=2012-01-01T00:00:00-08:00&amp;updated-max=2013-01-01T00:00:00-08:00&amp;max-results=41">
+2012
+</a>
+<span class="post-count" dir="ltr">(41)</span>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2012_12_01_archive.html">
+December
+</a>
+<span class="post-count" dir="ltr">(5)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2012_11_01_archive.html">
+November
+</a>
+<span class="post-count" dir="ltr">(3)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2012_10_01_archive.html">
+October
+</a>
+<span class="post-count" dir="ltr">(3)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2012_09_01_archive.html">
+September
+</a>
+<span class="post-count" dir="ltr">(1)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2012_08_01_archive.html">
+August
+</a>
+<span class="post-count" dir="ltr">(1)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2012_07_01_archive.html">
+July
+</a>
+<span class="post-count" dir="ltr">(2)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2012_06_01_archive.html">
+June
+</a>
+<span class="post-count" dir="ltr">(5)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2012_05_01_archive.html">
+May
+</a>
+<span class="post-count" dir="ltr">(1)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2012_04_01_archive.html">
+April
+</a>
+<span class="post-count" dir="ltr">(5)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2012_03_01_archive.html">
+March
+</a>
+<span class="post-count" dir="ltr">(5)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2012_02_01_archive.html">
+February
+</a>
+<span class="post-count" dir="ltr">(5)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2012_01_01_archive.html">
+January
+</a>
+<span class="post-count" dir="ltr">(5)</span>
+</li>
+</ul>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/search?updated-min=2011-01-01T00:00:00-08:00&amp;updated-max=2012-01-01T00:00:00-08:00&amp;max-results=50">
+2011
+</a>
+<span class="post-count" dir="ltr">(68)</span>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2011_12_01_archive.html">
+December
+</a>
+<span class="post-count" dir="ltr">(7)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2011_11_01_archive.html">
+November
+</a>
+<span class="post-count" dir="ltr">(7)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2011_10_01_archive.html">
+October
+</a>
+<span class="post-count" dir="ltr">(5)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2011_09_01_archive.html">
+September
+</a>
+<span class="post-count" dir="ltr">(5)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2011_08_01_archive.html">
+August
+</a>
+<span class="post-count" dir="ltr">(3)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2011_07_01_archive.html">
+July
+</a>
+<span class="post-count" dir="ltr">(7)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2011_06_01_archive.html">
+June
+</a>
+<span class="post-count" dir="ltr">(3)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2011_05_01_archive.html">
+May
+</a>
+<span class="post-count" dir="ltr">(5)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2011_04_01_archive.html">
+April
+</a>
+<span class="post-count" dir="ltr">(6)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2011_03_01_archive.html">
+March
+</a>
+<span class="post-count" dir="ltr">(8)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2011_02_01_archive.html">
+February
+</a>
+<span class="post-count" dir="ltr">(8)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2011_01_01_archive.html">
+January
+</a>
+<span class="post-count" dir="ltr">(4)</span>
+</li>
+</ul>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/search?updated-min=2010-01-01T00:00:00-08:00&amp;updated-max=2011-01-01T00:00:00-08:00&amp;max-results=50">
+2010
+</a>
+<span class="post-count" dir="ltr">(72)</span>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2010_12_01_archive.html">
+December
+</a>
+<span class="post-count" dir="ltr">(8)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2010_11_01_archive.html">
+November
+</a>
+<span class="post-count" dir="ltr">(3)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2010_10_01_archive.html">
+October
+</a>
+<span class="post-count" dir="ltr">(4)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2010_09_01_archive.html">
+September
+</a>
+<span class="post-count" dir="ltr">(7)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2010_08_01_archive.html">
+August
+</a>
+<span class="post-count" dir="ltr">(6)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2010_07_01_archive.html">
+July
+</a>
+<span class="post-count" dir="ltr">(10)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2010_06_01_archive.html">
+June
+</a>
+<span class="post-count" dir="ltr">(11)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2010_05_01_archive.html">
+May
+</a>
+<span class="post-count" dir="ltr">(11)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2010_04_01_archive.html">
+April
+</a>
+<span class="post-count" dir="ltr">(2)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2010_03_01_archive.html">
+March
+</a>
+<span class="post-count" dir="ltr">(3)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2010_02_01_archive.html">
+February
+</a>
+<span class="post-count" dir="ltr">(2)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2010_01_01_archive.html">
+January
+</a>
+<span class="post-count" dir="ltr">(5)</span>
+</li>
+</ul>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/search?updated-min=2009-01-01T00:00:00-08:00&amp;updated-max=2010-01-01T00:00:00-08:00&amp;max-results=50">
+2009
+</a>
+<span class="post-count" dir="ltr">(63)</span>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2009_12_01_archive.html">
+December
+</a>
+<span class="post-count" dir="ltr">(7)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2009_11_01_archive.html">
+November
+</a>
+<span class="post-count" dir="ltr">(5)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2009_10_01_archive.html">
+October
+</a>
+<span class="post-count" dir="ltr">(5)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2009_09_01_archive.html">
+September
+</a>
+<span class="post-count" dir="ltr">(8)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2009_08_01_archive.html">
+August
+</a>
+<span class="post-count" dir="ltr">(2)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2009_07_01_archive.html">
+July
+</a>
+<span class="post-count" dir="ltr">(1)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2009_06_01_archive.html">
+June
+</a>
+<span class="post-count" dir="ltr">(2)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2009_05_01_archive.html">
+May
+</a>
+<span class="post-count" dir="ltr">(5)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2009_04_01_archive.html">
+April
+</a>
+<span class="post-count" dir="ltr">(12)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2009_03_01_archive.html">
+March
+</a>
+<span class="post-count" dir="ltr">(5)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2009_02_01_archive.html">
+February
+</a>
+<span class="post-count" dir="ltr">(8)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2009_01_01_archive.html">
+January
+</a>
+<span class="post-count" dir="ltr">(3)</span>
+</li>
+</ul>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/search?updated-min=2008-01-01T00:00:00-08:00&amp;updated-max=2009-01-01T00:00:00-08:00&amp;max-results=40">
+2008
+</a>
+<span class="post-count" dir="ltr">(40)</span>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2008_12_01_archive.html">
+December
+</a>
+<span class="post-count" dir="ltr">(3)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2008_11_01_archive.html">
+November
+</a>
+<span class="post-count" dir="ltr">(1)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2008_10_01_archive.html">
+October
+</a>
+<span class="post-count" dir="ltr">(4)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2008_09_01_archive.html">
+September
+</a>
+<span class="post-count" dir="ltr">(6)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2008_08_01_archive.html">
+August
+</a>
+<span class="post-count" dir="ltr">(4)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2008_06_01_archive.html">
+June
+</a>
+<span class="post-count" dir="ltr">(1)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2008_05_01_archive.html">
+May
+</a>
+<span class="post-count" dir="ltr">(5)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2008_04_01_archive.html">
+April
+</a>
+<span class="post-count" dir="ltr">(4)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2008_03_01_archive.html">
+March
+</a>
+<span class="post-count" dir="ltr">(5)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2008_02_01_archive.html">
+February
+</a>
+<span class="post-count" dir="ltr">(2)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2008_01_01_archive.html">
+January
+</a>
+<span class="post-count" dir="ltr">(5)</span>
+</li>
+</ul>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/search?updated-min=2007-01-01T00:00:00-08:00&amp;updated-max=2008-01-01T00:00:00-08:00&amp;max-results=8">
+2007
+</a>
+<span class="post-count" dir="ltr">(8)</span>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2007_12_01_archive.html">
+December
+</a>
+<span class="post-count" dir="ltr">(3)</span>
+</li>
+</ul>
+<ul class="hierarchy">
+<li class="archivedate collapsed">
+<a class="toggle" href="javascript:void(0)">
+<span class="zippy">
+
+ ► 
+
+</span>
+</a>
+<a class="post-count-link" href="https://android-developers.googleblog.com/2007_11_01_archive.html">
+November
+</a>
+<span class="post-count" dir="ltr">(5)</span>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<div class="clear"></div>
+<span class="widget-item-control">
+<span class="item-control blog-admin">
+<a class="quickedit" href="//www.blogger.com/rearrange?blogID=6755709643044947179&amp;widgetType=BlogArchive&amp;widgetId=BlogArchive1&amp;action=editWidget&amp;sectionId=sidebar-left-1" onclick='return _WidgetManager._PopupConfig(document.getElementById("BlogArchive1"));' target="configBlogArchive1" title="Edit">
+<img alt="" src="https://resources.blogblog.com/img/icon18_wrench_allbkg.png" width="18" height="18" />
+</a>
+</span>
+</span>
+<div class="clear"></div>
+</div>
+</div><div class="widget HTML" data-version="1" id="HTML1">
+<h2 class="title">Community</h2>
+<div class="widget-content">
+<!-- Place this tag in the <head> of your document -->
+<script type="text/javascript">
+window.___gcfg = {lang: 'en'};
+(function()
+{var po = document.createElement("script");
+po.type = "text/javascript"; po.async = true;po.src = "https://apis.google.com/js/plusone.js";
+var s = document.getElementsByTagName("script")[0];
+s.parentNode.insertBefore(po, s);
+})();</script>
+
+<!-- Place this tag where you want the badge to render -->
+<div style="text-indent: 0px; margin: 0px; padding: 0px; background: transparent none repeat scroll 0% 0%; border-style: none; float: none; line-height: normal; font-size: 1px; vertical-align: baseline; display: inline-block; width: 170px; height: 85px;" id="___plus_0"><iframe ng-non-bindable="" hspace="0" marginheight="0" marginwidth="0" scrolling="no" style="position: static; top: 0px; width: 170px; margin: 0px; border-style: none; left: 0px; visibility: visible; height: 85px;" tabindex="0" vspace="0" id="I0_1485775685158" name="I0_1485775685158" src="https://apis.google.com/u/0/_/widget/render/badge?usegapi=1&amp;width=170&amp;height=131&amp;theme=light&amp;hl=en&amp;origin=https%3A%2F%2Fandroid-developers.googleblog.com&amp;url=https%3A%2F%2Fplus.google.com%2F108967384991768947849%3Frel%3Dpublisher&amp;gsrc=3p&amp;ic=1&amp;jsh=m%3B%2F_%2Fscs%2Fapps-static%2F_%2Fjs%2Fk%3Doz.gapi.en_GB.oDaXKax7Lmc.O%2Fm%3D__features__%2Fam%3DAQ%2Frt%3Dj%2Fd%3D1%2Frs%3DAGLTcCP-QWj14-CfU2w6doKmOqTwfM2Hig#_methods=onPlusOne%2C_ready%2C_close%2C_open%2C_resizeMe%2C_renderstart%2Concircled%2Cdrefresh%2Cerefresh%2Conload&amp;id=I0_1485775685158&amp;parent=https%3A%2F%2Fandroid-developers.googleblog.com&amp;pfname=&amp;rpctoken=41542600" data-gapiattached="true" title="+Badge" frameborder="0" width="100%"></iframe></div>
+
+<p>
+<a href="http://android-developers.blogspot.com/atom.xml"><img src="//www.google.com/images/feed-icon.gif" /></a> <a href="http://android-developers.blogspot.com/atom.xml">Subscribe</a>
+
+<br />
+
+<a href="http://feeds.feedburner.com/blogspot/hsDu"><img style="border:0; margin: 7px 0 0 0; vertical-align: top;" alt="Feed subscriber count" src="https://lh3.googleusercontent.com/proxy/6eDGde9GqU8gdSDBsk61c4dikCGa8zbyPVUOl0aRchtp2Dyu30v4Y-Jwh8RQhtStCB5g0iIxltBTr4S5xV0-5kvciEQ8bwF7H6nRVTUe-Z0hqk7EStALd-7iboI=s0-d" width="88" height="26" /></a></p>
+</div>
+<div class="clear"></div>
+<span class="widget-item-control">
+<span class="item-control blog-admin">
+<a class="quickedit" href="//www.blogger.com/rearrange?blogID=6755709643044947179&amp;widgetType=HTML&amp;widgetId=HTML1&amp;action=editWidget&amp;sectionId=sidebar-left-1" onclick='return _WidgetManager._PopupConfig(document.getElementById("HTML1"));' target="configHTML1" title="Edit">
+<img alt="" src="https://resources.blogblog.com/img/icon18_wrench_allbkg.png" width="18" height="18" />
+</a>
+</span>
+</span>
+<div class="clear"></div>
+</div></div>
+</aside>
+</div>
+</div>
+<div class="column-right-outer">
+<div class="column-right-inner">
+<aside>
+</aside>
+</div>
+</div>
+</div>
+<div style="clear: both"></div>
+<!-- columns -->
+</div>
+<!-- main -->
+</div>
+</div>
+<div class="main-cap-bottom cap-bottom">
+<div class="cap-left"></div>
+<div class="cap-right"></div>
+</div>
+</div>
+<footer>
+<div class="footer-outer">
+<div class="footer-cap-top cap-top">
+<div class="cap-left"></div>
+<div class="cap-right"></div>
+</div>
+<div class="fauxborder-left footer-fauxborder-left">
+<div class="fauxborder-right footer-fauxborder-right"></div>
+<div class="region-inner footer-inner">
+<div class="foot no-items section" id="footer-1"></div>
+<!-- outside of the include in order to lock Attribution widget -->
+<div class="foot section" id="footer-3"><div class="widget Attribution" data-version="1" id="Attribution1">
+<div class="widget-content" style="text-align: center;">
+Powered by <a href="https://www.blogger.com" target="_blank">Blogger</a>.
+</div>
+<div class="clear"></div>
+<span class="widget-item-control">
+<span class="item-control blog-admin">
+<a class="quickedit" href="//www.blogger.com/rearrange?blogID=6755709643044947179&amp;widgetType=Attribution&amp;widgetId=Attribution1&amp;action=editWidget&amp;sectionId=footer-3" onclick='return _WidgetManager._PopupConfig(document.getElementById("Attribution1"));' target="configAttribution1" title="Edit">
+<img alt="" src="https://resources.blogblog.com/img/icon18_wrench_allbkg.png" width="18" height="18" />
+</a>
+</span>
+</span>
+<div class="clear"></div>
+</div></div>
+</div>
+</div>
+<div class="footer-cap-bottom cap-bottom">
+<div class="cap-left"></div>
+<div class="cap-right"></div>
+</div>
+</div>
+</footer>
+<!-- content -->
+</div>
+</div>
+<div class="content-cap-bottom cap-bottom">
+<div class="cap-left"></div>
+<div class="cap-right"></div>
+</div>
+</div>
+</div>
+<script type="text/javascript">
+ window.setTimeout(function() {
+ document.body.className = document.body.className.replace('loading', '');
+ }, 10);
+ </script>
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+ (function() {
+ var ga = document.createElement('script');
+ ga.type = 'text/javascript';
+ ga.async = true;
+ ga.src = (document.location.protocol == 'https:' ?
+ 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0];
+ s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+<script type="text/javascript">
+ $("pre:not(.no-pretty-print)").addClass("prettyprint");
+ prettyPrint();
+</script>
+
+
+<!-- 'Het is jouw verantwoordelijkheid om je bezoekers te laten weten dat je cookies gebruikt op je blog. Zie http://www.blogger.com/go/cookiechoices voor meer informatie.' -->
+<script src="/js/cookiechoices.js" defer="defer"></script>
+<script>
+ document.addEventListener('DOMContentLoaded', function(event) {
+ window.cookieChoices &amp;&amp; cookieChoices.showCookieConsentBar &amp;&amp; cookieChoices.showCookieConsentBar(
+ (window.cookieOptions &amp;&amp; cookieOptions.msg) || 'Deze site gebruikt cookies van Google om services te leveren, advertenties te personaliseren en verkeer te analyseren. Informatie over je gebruik van deze site wordt gedeeld met Google. Als je deze site gebruikt, ga je akkoord met het gebruik van cookies.',
+ (window.cookieOptions &amp;&amp; cookieOptions.close) || 'Ik snap het',
+ (window.cookieOptions &amp;&amp; cookieOptions.learn) || 'Meer informatie',
+ (window.cookieOptions &amp;&amp; cookieOptions.link) || 'https://www.blogger.com/go/blogspot-cookies');
+ });
+</script>
+
+
+<script type="text/javascript" src="https://www.blogger.com/static/v1/widgets/1402174469-widgets.js"></script>
+<script type="text/javascript" src="https://apis.google.com/js/plusone.js" gapi_processed="true"></script>
+<script type="text/javascript" src="//www.google.com/jsapi"></script>
+<script type="text/javascript">
+window['__wavt'] = 'AOuZoY5l4X35A238Tm4EK1tT_Jl9HhT9Mg:1485775684055';_WidgetManager._Init('//www.blogger.com/rearrange?blogID\x3d6755709643044947179','//android-developers.googleblog.com/2016/12/saving-data-reducing-the-size-of-app-updates-by-65-percent.html','6755709643044947179');
+_WidgetManager._SetDataContext([{'name': 'blog', 'data': {'blogId': '6755709643044947179', 'bloggerUrl': 'https://www.blogger.com', 'title': 'Android Developers Blog', 'pageType': 'item', 'postId': '2701400044422363572', 'url': 'https://android-developers.googleblog.com/2016/12/saving-data-reducing-the-size-of-app-updates-by-65-percent.html', 'canonicalUrl': 'https://android-developers.googleblog.com/2016/12/saving-data-reducing-the-size-of-app-updates-by-65-percent.html', 'homepageUrl': 'https://android-developers.googleblog.com/', 'searchUrl': 'https://android-developers.googleblog.com/search', 'canonicalHomepageUrl': 'https://android-developers.googleblog.com/', 'blogspotFaviconUrl': 'https://android-developers.googleblog.com/favicon.ico', 'hasCustomDomain': true, 'enabledCommentProfileImages': true, 'gPlusViewType': 'FILTERED_POSTMOD', 'adultContent': false, 'analyticsAccountNumber': 'UA-5831155-1', 'useUniversalAnalytics': false, 'pageName': 'Saving Data: Reducing the size of App Updates by 65%', 'pageTitle': 'Android Developers Blog: Saving Data: Reducing the size of App Updates by 65%', 'encoding': 'UTF-8', 'locale': 'en', 'localeUnderscoreDelimited': 'en', 'isPrivate': false, 'isMobile': false, 'isMobileRequest': false, 'mobileClass': '', 'isPrivateBlog': false, 'languageDirection': 'ltr', 'feedLinks': '\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Android Developers Blog - Atom\x22 href\x3d\x22https://android-developers.googleblog.com/feeds/posts/default\x22 /\x3e\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/rss+xml\x22 title\x3d\x22Android Developers Blog - RSS\x22 href\x3d\x22https://android-developers.googleblog.com/feeds/posts/default?alt\x3drss\x22 /\x3e\n\x3clink rel\x3d\x22service.post\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Android Developers Blog - Atom\x22 href\x3d\x22https://www.blogger.com/feeds/6755709643044947179/posts/default\x22 /\x3e\n\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Android Developers Blog - Atom\x22 href\x3d\x22https://android-developers.googleblog.com/feeds/2701400044422363572/comments/default\x22 /\x3e\n', 'meTag': '', 'openIdOpTag': '', 'postImageThumbnailUrl': 'https://2.bp.blogspot.com/-chCZZinlUTg/WEcxvJo9gdI/AAAAAAAADnk/3ND_BspqN6Y2j5xxkLFW3RyS2Ig0NHZpQCLcB/s72-c/ipsum-opsum.gif', 'postImageUrl': 'https://2.bp.blogspot.com/-chCZZinlUTg/WEcxvJo9gdI/AAAAAAAADnk/3ND_BspqN6Y2j5xxkLFW3RyS2Ig0NHZpQCLcB/s640/ipsum-opsum.gif', 'mobileHeadScript': '', 'adsenseHostId': 'ca-host-pub-1556223355139109', 'ieCssRetrofitLinks': '\x3c!--[if IE]\x3e\x3cscript type\x3d\x22text/javascript\x22 src\x3d\x22https://www.blogger.com/static/v1/jsbin/3032875878-ieretrofit.js\x22\x3e\x3c/script\x3e\n\x3c![endif]--\x3e', 'view': '', 'dynamicViewsCommentsSrc': '//www.blogblog.com/dynamicviews/4224c15c4e7c9321/js/comments.js', 'dynamicViewsScriptSrc': '//www.blogblog.com/dynamicviews/3e7cf79fb5633dcb', 'plusOneApiSrc': 'https://apis.google.com/js/plusone.js', 'sharing': {'platforms': [{'name': 'Get link', 'key': 'link', 'shareMessage': 'Get link', 'target': ''}, {'name': 'Facebook', 'key': 'facebook', 'shareMessage': 'Share to Facebook', 'target': 'facebook'}, {'name': 'BlogThis!', 'key': 'blogThis', 'shareMessage': 'BlogThis!', 'target': 'blog'}, {'name': 'Twitter', 'key': 'twitter', 'shareMessage': 'Share to Twitter', 'target': 'twitter'}, {'name': 'Pinterest', 'key': 'pinterest', 'shareMessage': 'Share to Pinterest', 'target': 'pinterest'}, {'name': 'Google+', 'key': 'googlePlus', 'shareMessage': 'Share to Google+', 'target': 'googleplus'}, {'name': 'Email', 'key': 'email', 'shareMessage': 'Email', 'target': 'email'}], 'googlePlusShareButtonWidth': 300, 'googlePlusBootstrap': '\x3cscript type\x3d\x22text/javascript\x22\x3ewindow.___gcfg \x3d {\x27lang\x27: \x27en\x27};\x3c/script\x3e'}}}, {'name': 'features', 'data': {'widgetVisibility': true}}, {'name': 'messages', 'data': {'linkCopiedToClipboard': 'Link copied to clipboard!', 'postLink': 'Post Link'}}, {'name': 'template', 'data': {'name': 'custom', 'localizedName': 'Custom', 'isResponsive': false, 'isAlternateRendering': false, 'isCustom': true}}, {'name': 'view', 'data': {'classic': {'name': 'classic', 'url': '?view\x3dclassic'}, 'flipcard': {'name': 'flipcard', 'url': '?view\x3dflipcard'}, 'magazine': {'name': 'magazine', 'url': '?view\x3dmagazine'}, 'mosaic': {'name': 'mosaic', 'url': '?view\x3dmosaic'}, 'sidebar': {'name': 'sidebar', 'url': '?view\x3dsidebar'}, 'snapshot': {'name': 'snapshot', 'url': '?view\x3dsnapshot'}, 'timeslide': {'name': 'timeslide', 'url': '?view\x3dtimeslide'}, 'isMobile': false, 'title': 'Saving Data: Reducing the size of App Updates by 65%', 'description': ' Posted by Andrew Hayden, Software Engineer on Google Play Android users are downloading tens of billions of apps and games on Google Pla...', 'featuredImage': 'https://2.bp.blogspot.com/-chCZZinlUTg/WEcxvJo9gdI/AAAAAAAADnk/3ND_BspqN6Y2j5xxkLFW3RyS2Ig0NHZpQCLcB/s640/ipsum-opsum.gif', 'url': 'https://android-developers.googleblog.com/2016/12/saving-data-reducing-the-size-of-app-updates-by-65-percent.html', 'type': 'item', 'isSingleItem': true, 'isMultipleItems': false, 'isError': false, 'isPage': false, 'isPost': true, 'isHomepage': false, 'isArchive': false, 'isSearch': false, 'isLabelSearch': false, 'postId': 2701400044422363572}}]);
+_WidgetManager._RegisterWidget('_NavbarView', new _WidgetInfo('Navbar1', 'navbar', null, document.getElementById('Navbar1'), {}, 'displayModeFull'));
+_WidgetManager._RegisterWidget('_HeaderView', new _WidgetInfo('Header1', 'header', null, document.getElementById('Header1'), {}, 'displayModeFull'));
+_WidgetManager._RegisterWidget('_BlogView', new _WidgetInfo('Blog1', 'main', null, document.getElementById('Blog1'), {'cmtInteractionsEnabled': false, 'showBacklinks': true, 'postId': '2701400044422363572', 'lightboxEnabled': true, 'lightboxModuleUrl': 'https://www.blogger.com/static/v1/jsbin/1375401262-lbx.js', 'lightboxCssUrl': 'https://www.blogger.com/static/v1/v-css/368954415-lightbox_bundle.css'}, 'displayModeFull'));
+_WidgetManager._RegisterWidget('_ImageView', new _WidgetInfo('Image1', 'sidebar-left-1', null, document.getElementById('Image1'), {'resize': false}, 'displayModeFull'));
+_WidgetManager._RegisterWidget('_CustomSearchView', new _WidgetInfo('CustomSearch1', 'sidebar-left-1', null, document.getElementById('CustomSearch1'), {'title': 'Search', 'includeBlog': true, 'includePostLinks': false, 'includeWeb': false, 'linkLists': [], 'blogUrl': 'https://android-developers.googleblog.com/', 'loadingMsg': 'Loading...', 'thisBlogMsg': 'This Blog', 'linkedFromHereMsg': 'Linked From Here', 'theWebMsg': 'The Web', 'backgroundColor': 'transparent', 'textColor': '#666666', 'dateColor': '#000000', 'linkColor': '#258aaf', 'urlColor': '#258aaf', 'visitedLinkColor': '#258aaf', 'borderColor': '#eeeeee', 'activeBorderColor': '#eeeeee', 'cse_ua': true}, 'displayModeFull'));
+_WidgetManager._RegisterWidget('_BlogArchiveView', new _WidgetInfo('BlogArchive1', 'sidebar-left-1', null, document.getElementById('BlogArchive1'), {'languageDirection': 'ltr', 'loadingMessage': 'Loading\x26hellip;'}, 'displayModeFull'));
+_WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML1', 'sidebar-left-1', null, document.getElementById('HTML1'), {}, 'displayModeFull'));
+_WidgetManager._RegisterWidget('_AttributionView', new _WidgetInfo('Attribution1', 'footer-3', null, document.getElementById('Attribution1'), {}, 'displayModeFull'));
+</script>
+
+<div id="cookieChoiceInfo" class="cookie-choices-info singleton-element"><div class="cookie-choices-inner"><span class="cookie-choices-text">Deze site gebruikt cookies van Google om services te leveren, advertenties te personaliseren en verkeer te analyseren. Informatie over je gebruik van deze site wordt gedeeld met Google. Als je deze site gebruikt, ga je akkoord met het gebruik van cookies.</span><span class="cookie-choices-buttons"><a href="https://www.blogger.com/go/blogspot-cookies" target="_blank" class="cookie-choices-button">Meer informatie</a><a id="cookieChoiceDismiss" href="#" class="cookie-choices-button">Ik snap het</a></span></div></div><iframe name="oauth2relay2084943440" id="oauth2relay2084943440" src="https://accounts.google.com/o/oauth2/postmessageRelay?parent=https%3A%2F%2Fandroid-developers.googleblog.com&amp;jsh=m%3B%2F_%2Fscs%2Fapps-static%2F_%2Fjs%2Fk%3Doz.gapi.en_GB.oDaXKax7Lmc.O%2Fm%3D__features__%2Fam%3DAQ%2Frt%3Dj%2Fd%3D1%2Frs%3DAGLTcCP-QWj14-CfU2w6doKmOqTwfM2Hig#rpctoken=251594429&amp;forcesecure=1" style="width: 1px; height: 1px; position: absolute; top: -100px;" tabindex="-1" aria-hidden="true"></iframe><link type="text/css" rel="stylesheet" href="https://www.blogger.com/static/v1/v-css/368954415-lightbox_bundle.css" /><script type="text/javascript" src="https://www.blogger.com/static/v1/jsbin/1375401262-lbx.js"></script></body></html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lwn-1/config.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lwn-1/config.json
new file mode 100644
index 000000000..0ac6816ed
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lwn-1/config.json
@@ -0,0 +1,3 @@
+{
+ "ArticleByLine": true
+} \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lwn-1/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lwn-1/expected-images.json
new file mode 100644
index 000000000..3f6b61062
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lwn-1/expected-images.json
@@ -0,0 +1,6 @@
+[
+ "http:\/\/fakehost\/images\/2015\/03-qgis-map-sm.png",
+ "http:\/\/fakehost\/images\/2015\/03-qgis-query-sm.png",
+ "http:\/\/fakehost\/images\/2015\/03-qgis-simplify-sm.png",
+ "http:\/\/fakehost\/images\/2015\/03-qgis-style-sm.png"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lwn-1/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lwn-1/expected-metadata.json
new file mode 100644
index 000000000..584887a46
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lwn-1/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "By Nathan Willis\n March 25, 2015",
+ "Direction": null,
+ "Excerpt": "The Arduino has been one of the biggest success stories of the open-hardware movement, but that success does not protect it from internal conflict. In recent months, two of the project's founders have come into conflict about the direction of future efforts—and that conflict has turned into a legal dispute about who owns the rights to the Arduino trademark.",
+ "Image": null,
+ "Title": "LWN.net Weekly Edition for March 26, 2015 [LWN.net]",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lwn-1/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lwn-1/expected.html
new file mode 100644
index 000000000..358f95655
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lwn-1/expected.html
@@ -0,0 +1,373 @@
+<div><td>
+
+ <div>
+ <h2><a href="http://fakehost/Articles/637755/">A trademark battle in the Arduino community</a></h2>
+
+ <p>The <a href="https://en.wikipedia.org/wiki/Arduino">Arduino</a> has been one of the biggest success stories of the open-hardware movement, but that success does not protect it from internal conflict. In recent months, two of the project's founders have come into conflict about the direction of future efforts—and that conflict has turned into a legal dispute about who owns the rights to the Arduino trademark. </p>
+ <p>The current fight is a battle between two companies that both bear the Arduino name: Arduino LLC and Arduino SRL. The disagreements that led to present state of affairs go back a bit further. </p>
+ <p>The Arduino project grew out of 2005-era course work taught at the Interaction Design Institute Ivrea (IDII) in Ivrea, Italy (using <a href="https://en.wikipedia.org/wiki/Processing_(programming_language)">Processing</a>, <a href="https://en.wikipedia.org/wiki/Wiring_%28development_platform%29">Wiring</a>, and pre-existing microcontroller hardware). After the IDII program was discontinued, the open-hardware Arduino project as we know it was launched by Massimo Banzi, David Cuartielles, and David Mellis (who had worked together at IDII), with co-founders Tom Igoe and Gianluca Martino joining shortly afterward. The project released open hardware designs (including full schematics and design files) as well as the microcontroller software to run on the boards and the desktop IDE needed to program it. </p>
+ <p>Arduino LLC was incorporated in 2008 by Banzi, Cuartielles, Mellis, Igoe, and Martino. The company is registered in the United States, and it has continued to design the Arduino product line, develop the software, and run the Arduino community site. The hardware devices themselves, however, were manufactured by a separate company, "Smart Projects SRL," that was founded by Martino. "SRL" is essentially the Italian equivalent of "LLC"—Smart Projects was incorporated in Italy. </p>
+ <p>This division of responsibilities—with the main Arduino project handling everything except for board manufacturing—may seem like an odd one, but it is consistent with Arduino's marketing story. From its earliest days, the designs for the hardware have been freely available, and outside companies were allowed to make Arduino-compatible devices. The project has long run a <a href="http://arduino.cc/en/ArduinoCertified/Products#program">certification
+program</a> for third-party manufacturers interested in using the "Arduino" branding, but allows (and arguably even encourages) informal software and firmware compatibility. </p>
+ <p>The Arduino branding was not formally registered as a trademark in the early days, however. Arduino LLC <a href="http://tsdr.uspto.gov/#caseNumber=3931675&amp;caseType=US_REGISTRATION_NO&amp;searchType=statusSearch">filed</a> to register the US trademark in April 2009, and it was granted in 2011. </p>
+ <p>At this point, the exact events begin to be harder to verify, but the original group of founders reportedly had a difference of opinion about how to license out hardware production rights to other companies. Wired Italy <a href="http://www.wired.it/gadget/computer/2015/02/12/arduino-nel-caos-situazione/">reports</a> that Martino and Smart Projects resisted the other four founders' plans to "internationalize" production—although it is not clear if that meant that Smart Projects disapproved of licensing out <em>any</em> official hardware manufacturing to other companies, or had some other concern. Heise Online <a href="http://www.heise.de/make/meldung/Arduino-gegen-Arduino-Gruender-streiten-um-die-Firma-2549653.html">adds</a> that the conflict seemed to be about moving some production to China. </p>
+ <p>What is clear is that Smart Projects filed a <a href="http://ttabvue.uspto.gov/ttabvue/v?pno=92060077&amp;pty=CAN&amp;eno=1">petition</a> with the US Patent and Trademark Office (USPTO) in October 2014 asking the USPTO to cancel Arduino LLC's trademark on "Arduino." Then, in November 2014, Smart Projects changed its company's name to Arduino SRL. Somewhere around that time, Martino sold off his ownership stake in Smart Projects SRL and new owner Federico Musto was named CEO. </p>
+ <p>Unsurprisingly, Arduino LLC did not care for the petition to the USPTO and, in January 2015, the company filed a trademark-infringement <a href="http://dockets.justia.com/docket/massachusetts/madce/1:2015cv10181/167131">lawsuit</a> against Arduino SRL. Confusing matters further, the re-branded Arduino SRL has set up its own web site using the domain name <tt>arduino.org</tt>, which duplicates most of the site features found on the original Arduino site (<tt>arduino.cc</tt>). That includes both a hardware store and software downloads. </p>
+ <p>Musto, the new CEO of the company now called Arduino SRL, has a bit of a history with Arduino as well. His other manufacturing business had <a href="http://www.eetimes.com/document.asp?doc_id=1263246">collaborated</a> with Arduino LLC on the design and production of the Arduino Yún, which has received some <a href="http://hackaday.com/2015/02/24/is-the-arduino-yun-open-hardware/">criticism</a> for including proprietary components. </p>
+ <p>Hackaday has run a two-part series (in <a href="http://hackaday.com/2015/02/25/arduino-v-arduino/">February</a> and <a href="http://hackaday.com/2015/03/12/arduino-v-arduino-part-ii/">March</a>) digging into the ins and outs of the dispute, including the suggestion that Arduino LLC's recent release of version 1.6.0 of the Arduino IDE was a move intended to block Arduino SRL from hijacking IDE development. Commenter Paul Stoffregen (who was the author of the Heise story above) <a href="http://hackaday.com/2015/02/25/arduino-v-arduino/comment-page-1/#comment-2453084">noted</a> that Arduino SRL recently created a fork of the Arduino IDE on GitHub. </p>
+ <p>Most recently, Banzi broke his silence about the dispute in a <a href="http://makezine.com/2015/03/19/massimo-banzi-fighting-for-arduino">story</a> published at MAKEzine. There, Banzi claims that Martino secretly filed a trademark application on "Arduino" in Italy in 2008 and told none of the other Arduino founders. He also details a series of unpleasant negotiations between the companies, including Smart Projects stopping the royalty payments it had long sent to Arduino LLC for manufacturing devices and re-branding its boards with the Arduino.org URL. </p>
+ <p>Users appear to be stuck in the middle. Banzi says that several retail outlets that claim to be selling "official" Arduino boards are actually paying Arduino SRL, not Arduino LLC, but it is quite difficult to determine which retailers are lined up on which side, since there are (typically) several levels of supplier involved. The two Arduino companies' web sites also disagree about the available hardware, with Arduino.org offering the new <a href="http://arduino.org/products/arduino-zero-pro">Arduino Zero</a> model for sale today and Arduino.cc <a href="http://arduino.cc/en/Main/Products">listing it</a> as "Coming soon." </p>
+ <p>Furthermore, as Hackaday's March story explains, the recently-released Arduino.cc IDE now reports that boards manufactured by Arduino SRL are "uncertified." That warning does not prevent users from programming the other company's hardware, but it will no doubt confuse quite a few users who believe they possess genuine Arduino-manufactured devices. </p>
+ <p>The USPTO page for Arduino SRL's petition notes pre-trial disclosure dates have been set for August and October of 2015 (for Arduino SRL and Arduino LLC, respectively), which suggests that this debate is far from over. Of course, it is always disappointing to observe a falling out between project founders, particularly when the project in question has had such an impact on open-source software and open hardware. </p>
+ <p>One could argue that disputes of this sort are proof that even small projects started among friends need to take legal and intellectual-property issues (such as trademarks) seriously from the very beginning—perhaps Arduino and Smart Projects thought that an informal agreement was all that was necessary in the early days, after all. </p>
+ <p>But, perhaps, once a project becomes profitable, there is simply no way to predict what might happen. Arduino LLC would seem to have a strong case for continual and rigorous use of the "Arduino" trademark, which is the salient point in US trademark law. It could still be a while before the courts rule on either side of that question, however. </p>
+ <p><a href="http://fakehost/Articles/637755/#Comments">Comments (5 posted)</a> </p>
+
+ <h2><a href="http://fakehost/Articles/637533/">Mapping and data mining with QGIS 2.8</a></h2>
+ <p> By <b>Nathan Willis</b>
+ <br></br>March 25, 2015 </p>
+ <p><a href="http://qgis.org/">QGIS</a> is a free-software geographic information system (GIS) tool; it provides a unified interface in which users can import, edit, and analyze geographic-oriented information, and it can produce output as varied as printable maps or map-based web services. The project recently made its first update to be designated a long-term release (LTR), and that release is both poised for high-end usage and friendly to newcomers alike. </p>
+ <p>The new release is version 2.8, which was unveiled on March 2. An official <a href="http://qgis.org/en/site/forusers/visualchangelog28/index.html">change
+log</a> is available on the QGIS site, while the release itself was announced primarily through blog posts (such as <a href="http://anitagraser.com/2015/03/02/qgis-2-8-ltr-has-landed/">this
+post</a> by Anita Graser of the project's steering committee). Downloads are <a href="http://qgis.org/en/site/forusers/download.html">available</a> for a variety of platforms, including packages for Ubuntu, Debian, Fedora, openSUSE, and several other distributions.</p>
+ <p><a href="http://fakehost/Articles/637747/"> <img alt="[QGIS main interface]" height="264" src="http://fakehost/images/2015/03-qgis-map-sm.png" width="350"></img></a></p><p>As the name might suggest, QGIS is a Qt application; the latest release will, in fact, build on both Qt4 and Qt5, although the binaries released by the project come only in Qt4 form at present. 2.8 has been labeled a long-term release (LTR)—which, in this case, means that the project has committed to providing backported bug fixes for one full calendar year, and that the 2.8.x series is in permanent feature freeze. The goal, according to the change log, is to provide a stable version suitable for businesses and deployments in other large organizations. The change log itself points out that the development of quite a few new features was underwritten by various GIS companies or university groups, which suggests that taking care of these organizations' needs is reaping dividends for the project. </p>
+ <p>For those new to QGIS (or GIS in general), there is a detailed new-user <a href="http://docs.qgis.org/testing/en/docs/training_manual/">tutorial</a> that provides a thorough walk-through of the data-manipulation, mapping, and analysis functions. Being a new user, I went through the tutorial; although there are a handful of minor differences between QGIS 2.8 and the version used in the text (primarily whether specific features were accessed through a toolbar or right-click menu), on the whole it is well worth the time. </p>
+ <p>QGIS is designed to make short work of importing spatially oriented data sets, mining information from them, and turning the results into a meaningful visualization. Technically speaking, the visualization output is optional: one could simply extract the needed statistics and results and use them to answer some question or, perhaps, publish the massaged data set as a database for others to use. </p>
+ <p>But well-made maps are often the easiest way to illuminate facts about populations, political regions, geography, and many other topics when human comprehension is the goal. QGIS makes importing data from databases, web-mapping services (WMS), and even unwieldy flat-file data dumps a painless experience. It handles converting between a variety of map-referencing systems more or less automatically, and allows the user to focus on finding the useful attributes of the data sets and rendering them on screen. </p>
+ <h4>Here be data</h4>
+ <p>The significant changes in QGIS 2.8 fall into several categories. There are updates to how QGIS handles the mathematical expressions and queries users can use to filter information out of a data set, improvements to the tools used to explore the on-screen map canvas, and enhancements to the "map composer" used to produce visual output. This is on top of plenty of other under-the-hood improvements, naturally.</p>
+ <p><a href="http://fakehost/Articles/637748/"> <img alt="[QGIS query builder]" height="302" src="http://fakehost/images/2015/03-qgis-query-sm.png" width="300"></img></a></p><p>In the first category are several updates to the filtering tools used to mine a data set. Generally speaking, each independent data set is added to a QGIS project as its own layer, then transformed with filters to focus in on a specific portion of the original data. For instance, the land-usage statistics for a region might be one layer, while roads and buildings for the same region from OpenStreetMap might be two additional layers. Such filters can be created in several ways: there is a "query builder" that lets the user construct and test expressions on a data layer, then save the results, an SQL console for performing similar queries on a database, and spreadsheet-like editing tools for working directly on data tables. </p>
+ <p>All three have been improved in this release. New are support for <tt>if(condition, true, false)</tt> conditional statements, a set of operations for geometry primitives (e.g., to test whether regions overlap or lines intersect), and an "integer divide" operation. Users can also add comments to their queries to annotate their code, and there is a new <a href="http://nathanw.net/2015/01/19/function-editor-for-qgis-expressions/">custom
+function editor</a> for writing Python functions that can be called in mathematical expressions within the query builder. </p>
+ <p>It is also now possible to select only some rows in a table, then perform calculations just on the selection—previously, users would have to extract the rows of interest into a new table first. Similarly, in the SQL editor, the user can highlight a subset of the SQL query and execute it separately, which is no doubt helpful for debugging. </p>
+ <p>There have also been several improvements to the Python and Processing plugins. Users can now drag-and-drop Python scripts onto QGIS and they will be run automatically. Several new analysis algorithms are now available through the Processing interface that were previously Python-only; they include algorithms for generating grids of points or vectors within a region, splitting layers and lines, generating <a href="http://en.wikipedia.org/wiki/Hypsometric_curve">hypsometric
+curves</a>, refactoring data sets, and more. </p>
+ <h4>Maps in, maps out</h4>
+ <p><a href="http://fakehost/Articles/637749/"> <img alt="[QGIS simplify tool]" height="303" src="http://fakehost/images/2015/03-qgis-simplify-sm.png" width="300"></img></a></p><p>The process of working with on-screen map data picked up some improvements in the new release as well. Perhaps the most fundamental is that each map layer added to the canvas is now handled in its own thread, so fewer hangs in the user interface are experienced when re-rendering a layer (as happens whenever the user changes the look of points or shapes in a layer). Since remote databases can also be layers, this multi-threaded approach is more resilient against connectivity problems, too. The interface also now supports temporary "scratch" layers that can be used to merge, filter, or simply experiment with a data set, but are not saved when the current project is saved. </p>
+ <p>For working on the canvas itself, polygonal regions can now use raster images (tiled, if necessary) as fill colors, the map itself can be rotated arbitrarily, and objects can be "snapped" to align with items on any layer (not just the current layer). For working with raster image layers (e.g., aerial photographs) or simply creating new geometric shapes by hand, there is a new digitizing tool that can offer assistance by locking lines to specific angles, automatically keeping borders parallel, and other niceties. </p>
+ <p>There is a completely overhauled "simplify" tool that is used to reduce the number of extraneous vertices of a vector layer (thus reducing its size). The old simplify tool provided only a relative "tolerance" setting that did not correspond directly to any units. With the new tool, users can set a simplification threshold in terms of the underlying map units, layer-specific units, pixels, and more—and, in addition, the tool reports how much the simplify operation has reduced the size of the data.</p>
+ <p><a href="http://fakehost/Articles/637751/"> <img alt="[QGIS style editing]" height="286" src="http://fakehost/images/2015/03-qgis-style-sm.png" width="300"></img></a></p><p>There has also been an effort to present a uniform interface to one of the most important features of the map canvas: the ability to change the symbology used for an item based on some data attribute. The simplest example might be to change the line color of a road based on whether its road-type attribute is "highway," "service road," "residential," or so on. But the same feature is used to automatically highlight layer information based on the filtering and querying functionality discussed above. The new release allows many more map attributes to be controlled by these "data definition" settings, and provides a hard-to-miss button next to each attribute, through which a custom data definition can be set. </p>
+ <p>QGIS's composer module is the tool used to take project data and generate a map that can be used outside of the application (in print, as a static image, or as a layer for <a href="http://mapserver.org/">MapServer</a> or some other software tool, for example). Consequently, it is not a simple select-and-click-export tool; composing the output can involve a lot of choices about which data to make visible, how (and where) to label it, and how to make it generally accessible. </p>
+ <p>The updated composer in 2.8 now has a full-screen mode and sports several new options for configuring output. For instance, the user now has full control over how map axes are labeled. In previous releases, the grid coordinates of the map could be turned on or off, but the only options were all or nothing. Now, the user can individually choose whether coordinates are displayed on all four sides, and can even choose in which direction vertical text labels will run (so that they can be correctly justified to the edge of the map, for example). </p>
+ <p>There are, as usual, many more changes than there is room to discuss. Some particularly noteworthy improvements include the ability to save and load bookmarks for frequently used data sources (perhaps most useful for databases, web services, and other non-local data) and improvements to QGIS's server module. This module allows one QGIS instance to serve up data accessible to other QGIS applications (for example, to simply team projects). The server can now be extended with Python plugins and the data layers that it serves can be styled with style rules like those used in the desktop interface. </p>
+ <p>QGIS is one of those rare free-software applications that is both powerful enough for high-end work and yet also straightforward to use for the simple tasks that might attract a newcomer to GIS in the first place. The 2.8 release, particularly with its project-wide commitment to long-term support, appears to be an update well worth checking out, whether one needs to create a simple, custom map or to mine a database for obscure geo-referenced meaning. </p>
+ <p><a href="http://fakehost/Articles/637533/#Comments">Comments (3 posted)</a> </p>
+
+ <h2><a href="http://fakehost/Articles/637735/">Development activity in LibreOffice and OpenOffice</a></h2>
+ <p> By <b>Jonathan Corbet</b>
+ <br></br>March 25, 2015 </p><p> The LibreOffice project was <a href="http://fakehost/Articles/407383/">announced</a> with great fanfare in September 2010. Nearly one year later, the OpenOffice.org project (from which LibreOffice was forked) <a href="http://fakehost/Articles/446093/">was
+cut loose from Oracle</a> and found a new home as an Apache project. It is fair to say that the rivalry between the two projects in the time since then has been strong. Predictions that one project or the other would fail have not been borne out, but that does not mean that the two projects are equally successful. A look at the two projects' development communities reveals some interesting differences.
+ </p>
+ <h4>Release histories</h4>
+ <p> Apache OpenOffice has made two releases in the past year: <a href="https://blogs.apache.org/OOo/entry/the_apache_openoffice_project_announce">4.1</a> in April 2014 and <a href="https://blogs.apache.org/OOo/entry/announcing_apache_openoffice_4_1">4.1.1</a> (described as "a micro update" in the release announcement) in August. The main feature added during that time would appear to be significantly improved accessibility support. </p>
+ <p> The release history for LibreOffice tells a slightly different story: </p>
+
+ <blockquote>
+ </blockquote>
+ <p> It seems clear that LibreOffice has maintained a rather more frenetic release cadence, generally putting out at least one release per month. The project typically keeps at least two major versions alive at any one time. Most of the releases are of the minor, bug-fix variety, but there have been two major releases in the last year as well. </p>
+
+ <h4>Development statistics</h4>
+ <p> In the one-year period since late March 2014, there have been 381 changesets committed to the OpenOffice Subversion repository. The most active committers are: </p>
+
+ <blockquote>
+ <table readabilityDataTable="1"><tbody><tr><th colspan="2">Most active OpenOffice developers</th>
+ </tr><tr><td>
+ <table readabilityDataTable="1"><tbody><tr><th colspan="3">By changesets</th>
+ </tr><tr><td>Herbert Dürr</td>
+ <td>63</td>
+ <td>16.6%</td>
+ </tr><tr><td>Jürgen Schmidt             </td>
+ <td>56</td>
+ <td>14.7%</td>
+ </tr><tr><td>Armin Le Grand</td>
+ <td>56</td>
+ <td>14.7%</td>
+ </tr><tr><td>Oliver-Rainer Wittmann</td>
+ <td>46</td>
+ <td>12.1%</td>
+ </tr><tr><td>Tsutomu Uchino</td>
+ <td>33</td>
+ <td>8.7%</td>
+ </tr><tr><td>Kay Schenk</td>
+ <td>27</td>
+ <td>7.1%</td>
+ </tr><tr><td>Pedro Giffuni</td>
+ <td>23</td>
+ <td>6.1%</td>
+ </tr><tr><td>Ariel Constenla-Haile</td>
+ <td>22</td>
+ <td>5.8%</td>
+ </tr><tr><td>Andrea Pescetti</td>
+ <td>14</td>
+ <td>3.7%</td>
+ </tr><tr><td>Steve Yin</td>
+ <td>11</td>
+ <td>2.9%</td>
+ </tr><tr><td>Andre Fischer</td>
+ <td>10</td>
+ <td>2.6%</td>
+ </tr><tr><td>Yuri Dario</td>
+ <td>7</td>
+ <td>1.8%</td>
+ </tr><tr><td>Regina Henschel</td>
+ <td>6</td>
+ <td>1.6%</td>
+ </tr><tr><td>Juan C. Sanz</td>
+ <td>2</td>
+ <td>0.5%</td>
+ </tr><tr><td>Clarence Guo</td>
+ <td>2</td>
+ <td>0.5%</td>
+ </tr><tr><td>Tal Daniel</td>
+ <td>2</td>
+ <td>0.5%</td>
+ </tr></tbody></table></td>
+ <td>
+ <table readabilityDataTable="1"><tbody><tr><th colspan="3">By changed lines</th>
+ </tr><tr><td>Jürgen Schmidt             </td>
+ <td>455499</td>
+ <td>88.1%</td>
+ </tr><tr><td>Andre Fischer</td>
+ <td>26148</td>
+ <td>3.8%</td>
+ </tr><tr><td>Pedro Giffuni</td>
+ <td>23183</td>
+ <td>3.4%</td>
+ </tr><tr><td>Armin Le Grand</td>
+ <td>11018</td>
+ <td>1.6%</td>
+ </tr><tr><td>Juan C. Sanz</td>
+ <td>4582</td>
+ <td>0.7%</td>
+ </tr><tr><td>Oliver-Rainer Wittmann</td>
+ <td>4309</td>
+ <td>0.6%</td>
+ </tr><tr><td>Andrea Pescetti</td>
+ <td>3908</td>
+ <td>0.6%</td>
+ </tr><tr><td>Herbert Dürr</td>
+ <td>2811</td>
+ <td>0.4%</td>
+ </tr><tr><td>Tsutomu Uchino</td>
+ <td>1991</td>
+ <td>0.3%</td>
+ </tr><tr><td>Ariel Constenla-Haile</td>
+ <td>1258</td>
+ <td>0.2%</td>
+ </tr><tr><td>Steve Yin</td>
+ <td>1010</td>
+ <td>0.1%</td>
+ </tr><tr><td>Kay Schenk</td>
+ <td>616</td>
+ <td>0.1%</td>
+ </tr><tr><td>Regina Henschel</td>
+ <td>417</td>
+ <td>0.1%</td>
+ </tr><tr><td>Yuri Dario</td>
+ <td>268</td>
+ <td>0.0%</td>
+ </tr><tr><td>tal</td>
+ <td>16</td>
+ <td>0.0%</td>
+ </tr><tr><td>Clarence Guo</td>
+ <td>11</td>
+ <td>0.0%</td>
+ </tr></tbody></table></td>
+ </tr></tbody></table></blockquote>
+ <p> In truth, the above list is not just the most active OpenOffice developers — it is all of them; a total of 16 developers have committed changes to OpenOffice in the last year. Those developers changed 528,000 lines of code, but, as can be seen above, Jürgen Schmidt accounted for the bulk of those changes, which were mostly updates to translation files. </p>
+ <p> The top four developers in the "by changesets" column all work for IBM, so IBM is responsible for a minimum of about 60% of the changes to OpenOffice in the last year. </p>
+ <p> The picture for LibreOffice is just a little bit different; in the same one-year period, the project has committed 22,134 changesets from 268 developers. The most active of these developers were: </p>
+
+ <blockquote>
+ <table readabilityDataTable="1"><tbody><tr><th colspan="2">Most active LibreOffice developers</th>
+ </tr><tr><td>
+ <table readabilityDataTable="1"><tbody><tr><th colspan="3">By changesets</th>
+ </tr><tr><td>Caolán McNamara</td>
+ <td>4307</td>
+ <td>19.5%</td>
+ </tr><tr><td>Stephan Bergmann</td>
+ <td>2351</td>
+ <td>10.6%</td>
+ </tr><tr><td>Miklos Vajna</td>
+ <td>1449</td>
+ <td>6.5%</td>
+ </tr><tr><td>Tor Lillqvist</td>
+ <td>1159</td>
+ <td>5.2%</td>
+ </tr><tr><td>Noel Grandin</td>
+ <td>1064</td>
+ <td>4.8%</td>
+ </tr><tr><td>Markus Mohrhard</td>
+ <td>935</td>
+ <td>4.2%</td>
+ </tr><tr><td>Michael Stahl</td>
+ <td>915</td>
+ <td>4.1%</td>
+ </tr><tr><td>Kohei Yoshida</td>
+ <td>755</td>
+ <td>3.4%</td>
+ </tr><tr><td>Tomaž Vajngerl</td>
+ <td>658</td>
+ <td>3.0%</td>
+ </tr><tr><td>Thomas Arnhold</td>
+ <td>619</td>
+ <td>2.8%</td>
+ </tr><tr><td>Jan Holesovsky</td>
+ <td>466</td>
+ <td>2.1%</td>
+ </tr><tr><td>Eike Rathke</td>
+ <td>457</td>
+ <td>2.1%</td>
+ </tr><tr><td>Matteo Casalin</td>
+ <td>442</td>
+ <td>2.0%</td>
+ </tr><tr><td>Bjoern Michaelsen</td>
+ <td>421</td>
+ <td>1.9%</td>
+ </tr><tr><td>Chris Sherlock</td>
+ <td>396</td>
+ <td>1.8%</td>
+ </tr><tr><td>David Tardon</td>
+ <td>386</td>
+ <td>1.7%</td>
+ </tr><tr><td>Julien Nabet</td>
+ <td>362</td>
+ <td>1.6%</td>
+ </tr><tr><td>Zolnai Tamás</td>
+ <td>338</td>
+ <td>1.5%</td>
+ </tr><tr><td>Matúš Kukan</td>
+ <td>256</td>
+ <td>1.2%</td>
+ </tr><tr><td>Robert Antoni Buj Gelonch</td>
+ <td>231</td>
+ <td>1.0%</td>
+ </tr></tbody></table></td>
+ <td>
+ <table readabilityDataTable="1"><tbody><tr><th colspan="3">By changed lines</th>
+ </tr><tr><td>Lionel Elie Mamane</td>
+ <td>244062</td>
+ <td>12.5%</td>
+ </tr><tr><td>Noel Grandin</td>
+ <td>238711</td>
+ <td>12.2%</td>
+ </tr><tr><td>Stephan Bergmann</td>
+ <td>161220</td>
+ <td>8.3%</td>
+ </tr><tr><td>Miklos Vajna</td>
+ <td>129325</td>
+ <td>6.6%</td>
+ </tr><tr><td>Caolán McNamara</td>
+ <td>97544</td>
+ <td>5.0%</td>
+ </tr><tr><td>Tomaž Vajngerl</td>
+ <td>69404</td>
+ <td>3.6%</td>
+ </tr><tr><td>Tor Lillqvist</td>
+ <td>59498</td>
+ <td>3.1%</td>
+ </tr><tr><td>Laurent Balland-Poirier</td>
+ <td>52802</td>
+ <td>2.7%</td>
+ </tr><tr><td>Markus Mohrhard</td>
+ <td>50509</td>
+ <td>2.6%</td>
+ </tr><tr><td>Kohei Yoshida</td>
+ <td>45514</td>
+ <td>2.3%</td>
+ </tr><tr><td>Chris Sherlock</td>
+ <td>36788</td>
+ <td>1.9%</td>
+ </tr><tr><td>Peter Foley</td>
+ <td>34305</td>
+ <td>1.8%</td>
+ </tr><tr><td>Christian Lohmaier</td>
+ <td>33787</td>
+ <td>1.7%</td>
+ </tr><tr><td>Thomas Arnhold</td>
+ <td>32722</td>
+ <td>1.7%</td>
+ </tr><tr><td>David Tardon</td>
+ <td>21681</td>
+ <td>1.1%</td>
+ </tr><tr><td>David Ostrovsky</td>
+ <td>21620</td>
+ <td>1.1%</td>
+ </tr><tr><td>Jan Holesovsky</td>
+ <td>20792</td>
+ <td>1.1%</td>
+ </tr><tr><td>Valentin Kettner</td>
+ <td>20526</td>
+ <td>1.1%</td>
+ </tr><tr><td>Robert Antoni Buj Gelonch</td>
+ <td>20447</td>
+ <td>1.0%</td>
+ </tr><tr><td>Michael Stahl</td>
+ <td>18216</td>
+ <td>0.9%</td>
+ </tr></tbody></table></td>
+ </tr></tbody></table></blockquote>
+ <p> To a first approximation, the top ten companies supporting LibreOffice in the last year are: </p>
+
+ <blockquote>
+ <table readabilityDataTable="1"><tbody><tr><th colspan="3">Companies supporting LibreOffice development</th>
+ </tr><tr><th colspan="3">(by changesets)</th>
+ </tr><tr><td>Red Hat</td>
+ <td>8417</td>
+ <td>38.0%</td>
+ </tr><tr><td>Collabora <strike>Multimedia</strike></td>
+ <td>6531</td>
+ <td>29.5%</td>
+ </tr><tr><td>(Unknown)</td>
+ <td>5126</td>
+ <td>23.2%</td>
+ </tr><tr><td>(None)</td>
+ <td>1490</td>
+ <td>6.7%</td>
+ </tr><tr><td>Canonical</td>
+ <td>422</td>
+ <td>1.9%</td>
+ </tr><tr><td>Igalia S.L.</td>
+ <td>80</td>
+ <td>0.4%</td>
+ </tr><tr><td>Ericsson</td>
+ <td>21</td>
+ <td>0.1%</td>
+ </tr><tr><td>Yandex</td>
+ <td>18</td>
+ <td>0.1%</td>
+ </tr><tr><td>FastMail.FM</td>
+ <td>17</td>
+ <td>0.1%</td>
+ </tr><tr><td>SUSE</td>
+ <td>7</td>
+ <td>0.0%</td>
+ </tr></tbody></table></blockquote>
+ <p> Development work on LibreOffice is thus concentrated in a small number of companies, though it is rather more spread out than OpenOffice development. It is worth noting that the LibreOffice developers with unknown affiliation, who contributed 23% of the changes, make up 82% of the developer base, so there would appear to be a substantial community of developers contributing from outside the above-listed companies. </p>
+
+ <h4>Some conclusions</h4>
+ <p> Last October, some <a href="http://fakehost/Articles/637742/">concerns</a> were raised on the OpenOffice list about the health of that project's community. At the time, Rob Weir <a href="http://fakehost/Articles/637743/">shrugged them off</a> as the result of a marketing effort by the LibreOffice crowd. There can be no doubt that the war of words between these two projects has gotten tiresome at times, but, looking at the above numbers, it is hard not to conclude that there is an issue that goes beyond marketing hype here. </p>
+ <p> In the 4½ years since its founding, the LibreOffice project has put together a community with over 250 active developers. There is support from multiple companies and an impressive rate of patches going into the project's repository. The project's ability to sustain nearly monthly releases on two branches is a direct result of that community's work. Swearing at LibreOffice is one of your editor's favorite pastimes, but it seems clear that the project is on a solid footing with a healthy community. </p>
+ <p> OpenOffice, instead, is driven by four developers from a single company — a company that appears to have been deemphasizing OpenOffice work for some time. As a result, the project's commit rate is a fraction of what LibreOffice is able to sustain and releases are relatively rare. As of this writing, the <a href="https://blogs.apache.org/OOo/">OpenOffice
+blog</a> shows no posts in 2015. In the October discussion, Rob <a href="http://fakehost/Articles/637750/">said</a> that "<span>the dogs may
+bark but the caravan moves on.</span>" That may be true, but, in this case, the caravan does not appear to be moving with any great speed. </p>
+ <p> Anything can happen in the free-software development world; it is entirely possible that a reinvigorated OpenOffice.org may yet give LibreOffice a run for its money. But something will clearly have to change to bring that future around. As things stand now, it is hard not to conclude that LibreOffice has won the battle for developer participation. </p>
+ <p><a href="http://fakehost/Articles/637735/#Comments">Comments (74 posted)</a> </p>
+
+ <p> <b>Page editor</b>: Jonathan Corbet
+ <br></br></p>
+ <h2>Inside this week's LWN.net Weekly Edition</h2>
+ <ul><li> <a href="http://fakehost/Articles/637395/">Security</a>: Toward secure package downloads; New vulnerabilities in drupal, mozilla, openssl, python-django ... </li>
+ <li> <a href="http://fakehost/Articles/637396/">Kernel</a>: LSFMM coverage: NFS, defragmentation, epoll(), copy offload, and more. </li>
+ <li> <a href="http://fakehost/Articles/637397/">Distributions</a>: A look at Debian's 2015 DPL candidates; Debian, Fedora, ... </li>
+ <li> <a href="http://fakehost/Articles/637398/">Development</a>: A look at GlusterFS; LibreOffice Online; Open sourcing existing code; Secure Boot in Windows 10; ... </li>
+ <li> <a href="http://fakehost/Articles/637399/">Announcements</a>: A Turing award for Michael Stonebraker, Sébastien Jodogne, ReGlue are Free Software Award winners, Kat Walsh joins FSF board of directors, Cyanogen, ... </li>
+ </ul><p><b>Next page</b>: <a href="http://fakehost/Articles/637395/">Security&gt;&gt;</a>
+ <br></br></p></div>
+
+ </td>
+
+ <td>
+
+ </td>
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lwn-1/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lwn-1/source.html
new file mode 100644
index 000000000..85eea11d8
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/lwn-1/source.html
@@ -0,0 +1,820 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+
+<head>
+ <title>LWN.net Weekly Edition for March 26, 2015 [LWN.net]</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ <link rel="icon" href="/images/favicon.png" type="image/png"/>
+ <link rel="alternate" type="application/rss+xml" title="LWN.net headlines" href="http://lwn.net/headlines/newrss"/>
+ <link rel="stylesheet" href="/CSS/lwn"/>
+ <link rel="stylesheet" href="/CSS/nosub"/>
+ <script type="text/javascript">
+ var p = "http",
+ d = "static";
+ if (document.location.protocol == "https:") {
+ p += "s";
+ d = "engine";
+ }
+ var z = document.createElement("script");
+ z.type = "text/javascript";
+ z.async = true;
+ z.src = p + "://" + d + ".adzerk.net/ados.js";
+ var s = document.getElementsByTagName("script")[0];
+ s.parentNode.insertBefore(z, s);
+ </script>
+ <script type="text/javascript">
+ var ados_keywords = ados_keywords || [];
+ if (location.protocol == 'https:') {
+ ados_keywords.push('T:SSL');
+ } else {
+ ados_keywords.push('T:HTTP');
+ }
+ var ados = ados || {};
+ ados.run = ados.run || [];
+ ados.run.push(function() {
+ ados_add_placement(4669, 20979, "azk13321_leaderboard", 4).setZone(16026);
+ ados_add_placement(4669, 20979, "azk93271_right_zone", [5, 10, 6]).setZone(16027);
+ ados_add_placement(4669, 20979, "azk31017_tracking", 20).setZone(20995);
+ ados_setKeywords(ados_keywords.join(', '));
+ ados_load();
+ });
+ </script>
+</head>
+
+<body bgcolor="#ffffff" link="Blue" vlink="Green" alink="Green">
+ <table class="Page">
+ <tbody>
+ <tr>
+ <td class="LeftColumn">
+ <center>
+ <a href="/"><img src="/images/lcorner.png" width="153" height="120" border="0" alt="LWN.net Logo"/></a>
+ </center>
+ <p>
+ <script type="text/javascript">
+ <!--
+ google_ad_client = "pub-4358676377058562";
+ google_ad_width = 120;
+ google_ad_height = 240;
+ google_ad_format = "120x240_as";
+ google_ad_type = "text_image";
+ //2007-10-07: side ads
+ google_ad_channel = "0946045135";
+ google_color_border = "ffcc99";
+ google_color_bg = "ffcc99";
+ google_color_link = "0000FF";
+ google_color_text = "000000";
+ google_color_url = "008000";
+ //-->
+ </script>
+ <script type="text/javascript" src="//pagead2.googlesyndication.com/pagead/show_ads.js">
+ </script>
+ </p>
+ <p> </p>
+ <div class="SideBox">
+ <p class="Header">Not logged in</p>
+ <p><a href="/login">Log in now</a></p>
+ <p> </p>
+ <p><a href="/newaccount">Create an account</a></p>
+ <p> </p>
+ <p><a href="/subscribe/Info">Subscribe to LWN</a></p>
+ </div>
+ <div class="SideBox">
+ <p class="Header">LWN Weekly Edition</p> <a href="/Articles/637393/" class="Current">Front page</a>
+ <br/> <a href="/Articles/637395/" class="Other">Security</a>
+ <br/> <a href="/Articles/637396/" class="Other">Kernel development</a>
+ <br/> <a href="/Articles/637397/" class="Other">Distributions</a>
+ <br/> <a href="/Articles/637398/" class="Other">Development</a>
+ <br/> <a href="/Articles/637399/" class="Other">Announcements</a>
+ <br/> <a href="/Articles/637393/bigpage">-&gt;One big page</a>
+ <p> &nbsp;
+ <br/>
+ </p>
+ <p class="Header">This page</p> <a href="/Articles/636463/">Previous week</a>
+ <br/> <a href="/Articles/638065/">Following week</a>
+ <br/> </div>
+ <div class="SideBox">
+ <p class="Header">Recent Features</p>
+ <p><a href="/Articles/640549/">LWN.net Weekly Edition for April 23, 2015</a></p>
+ <p><a href="/Articles/641275/">The kdbuswreck</a></p>
+ <p><a href="/Articles/639894/">LWN.net Weekly Edition for April 16, 2015</a></p>
+ <p><a href="/Articles/639998/">Plotting tools for networks, part I</a></p>
+ <p><a href="/Articles/639773/">Report from the Python Language Summit</a></p>
+ </div>
+ <div class="SideBox"> <a href="/Articles/637393/?format=printable" rel="nofollow">Printable page</a> </div>
+ </td>
+ <!-- LC -->
+ <td>
+ <table>
+ <tbody>
+ <tr>
+ <td class="MidColumn">
+ <table class="TopNavigation">
+ <!-- First row - content links -->
+ <tbody>
+ <tr>
+ <td class="NavLink"><a href="/current/">Weekly edition</a></td>
+ <td class="NavLink"> <a href="/Kernel/">Kernel</a></td>
+ <td class="NavLink"><a href="/Security/">Security</a></td>
+ <td class="NavLink"> <a href="http://lwn.net/Distributions/">Distributions</a></td>
+ <td class="NavLink"><a href="/op/FAQ.lwn#contact">Contact Us</a> </td>
+ <td class="NavLink"><a href="/Search/">Search</a> </td>
+ </tr>
+ <!-- Second row: navigation links -->
+ <tr>
+ <td class="NavLink"><a href="/Archives/">Archives</a></td>
+ <td class="NavLink"><a href="/Calendar/">Calendar</a></td>
+ <td class="NavLink"><a href="/subscribe/Info">Subscribe</a></td>
+ <td class="NavLink"><a href="/op/AuthorGuide.lwn">Write for LWN</a></td>
+ <td class="NavLink"><a href="/op/FAQ.lwn">LWN.net FAQ</a></td>
+ <td class="NavLink"><a href="/op/Sponsors.lwn">Sponsors</a></td>
+ </tr>
+ </tbody>
+ </table>
+ </td>
+ <td></td>
+ </tr>
+ <tr>
+ <td colspan="2" class="MCTopBanner">
+ <div id="azk13321_leaderboard"></div>
+ </td>
+ </tr>
+ <tr>
+ <td class="MidColumn">
+ <div class="PageHeadline">
+ <h1>LWN.net Weekly Edition for March 26, 2015</h1> </div>
+ <div class="ArticleText">
+ <h2 class="SummaryHL"><a href="/Articles/637755/">A trademark battle in the Arduino community</a></h2>
+ <div class="FeatureByline"> By <b>Nathan Willis</b>
+ <br/>March 25, 2015 </div>
+ <p>The <a href="https://en.wikipedia.org/wiki/Arduino">Arduino</a> has been one of the biggest success stories of the open-hardware movement, but that success does not protect it from internal conflict. In recent months, two of the project's founders have come into conflict about the direction of future efforts—and that conflict has turned into a legal dispute about who owns the rights to the Arduino trademark. </p>
+ <p>The current fight is a battle between two companies that both bear the Arduino name: Arduino LLC and Arduino SRL. The disagreements that led to present state of affairs go back a bit further. </p>
+ <p>The Arduino project grew out of 2005-era course work taught at the Interaction Design Institute Ivrea (IDII) in Ivrea, Italy (using <a href="https://en.wikipedia.org/wiki/Processing_(programming_language)">Processing</a>, <a href="https://en.wikipedia.org/wiki/Wiring_%28development_platform%29">Wiring</a>, and pre-existing microcontroller hardware). After the IDII program was discontinued, the open-hardware Arduino project as we know it was launched by Massimo Banzi, David Cuartielles, and David Mellis (who had worked together at IDII), with co-founders Tom Igoe and Gianluca Martino joining shortly afterward. The project released open hardware designs (including full schematics and design files) as well as the microcontroller software to run on the boards and the desktop IDE needed to program it. </p>
+ <p>Arduino LLC was incorporated in 2008 by Banzi, Cuartielles, Mellis, Igoe, and Martino. The company is registered in the United States, and it has continued to design the Arduino product line, develop the software, and run the Arduino community site. The hardware devices themselves, however, were manufactured by a separate company, "Smart Projects SRL," that was founded by Martino. "SRL" is essentially the Italian equivalent of "LLC"—Smart Projects was incorporated in Italy. </p>
+ <p>This division of responsibilities—with the main Arduino project handling everything except for board manufacturing—may seem like an odd one, but it is consistent with Arduino's marketing story. From its earliest days, the designs for the hardware have been freely available, and outside companies were allowed to make Arduino-compatible devices. The project has long run a <a href="http://arduino.cc/en/ArduinoCertified/Products#program">certification
+program</a> for third-party manufacturers interested in using the "Arduino" branding, but allows (and arguably even encourages) informal software and firmware compatibility. </p>
+ <p>The Arduino branding was not formally registered as a trademark in the early days, however. Arduino LLC <a href="http://tsdr.uspto.gov/#caseNumber=3931675&amp;caseType=US_REGISTRATION_NO&amp;searchType=statusSearch">filed</a> to register the US trademark in April 2009, and it was granted in 2011. </p>
+ <p>At this point, the exact events begin to be harder to verify, but the original group of founders reportedly had a difference of opinion about how to license out hardware production rights to other companies. Wired Italy <a href="http://www.wired.it/gadget/computer/2015/02/12/arduino-nel-caos-situazione/">reports</a> that Martino and Smart Projects resisted the other four founders' plans to "internationalize" production—although it is not clear if that meant that Smart Projects disapproved of licensing out <em>any</em> official hardware manufacturing to other companies, or had some other concern. Heise Online <a href="http://www.heise.de/make/meldung/Arduino-gegen-Arduino-Gruender-streiten-um-die-Firma-2549653.html">adds</a> that the conflict seemed to be about moving some production to China. </p>
+ <p>What is clear is that Smart Projects filed a <a href="http://ttabvue.uspto.gov/ttabvue/v?pno=92060077&amp;pty=CAN&amp;eno=1">petition</a> with the US Patent and Trademark Office (USPTO) in October 2014 asking the USPTO to cancel Arduino LLC's trademark on "Arduino." Then, in November 2014, Smart Projects changed its company's name to Arduino SRL. Somewhere around that time, Martino sold off his ownership stake in Smart Projects SRL and new owner Federico Musto was named CEO. </p>
+ <p>Unsurprisingly, Arduino LLC did not care for the petition to the USPTO and, in January 2015, the company filed a trademark-infringement <a href="http://dockets.justia.com/docket/massachusetts/madce/1:2015cv10181/167131">lawsuit</a> against Arduino SRL. Confusing matters further, the re-branded Arduino SRL has set up its own web site using the domain name <tt>arduino.org</tt>, which duplicates most of the site features found on the original Arduino site (<tt>arduino.cc</tt>). That includes both a hardware store and software downloads. </p>
+ <p>Musto, the new CEO of the company now called Arduino SRL, has a bit of a history with Arduino as well. His other manufacturing business had <a href="http://www.eetimes.com/document.asp?doc_id=1263246">collaborated</a> with Arduino LLC on the design and production of the Arduino Yún, which has received some <a href="http://hackaday.com/2015/02/24/is-the-arduino-yun-open-hardware/">criticism</a> for including proprietary components. </p>
+ <p>Hackaday has run a two-part series (in <a href="http://hackaday.com/2015/02/25/arduino-v-arduino/">February</a> and <a href="http://hackaday.com/2015/03/12/arduino-v-arduino-part-ii/">March</a>) digging into the ins and outs of the dispute, including the suggestion that Arduino LLC's recent release of version 1.6.0 of the Arduino IDE was a move intended to block Arduino SRL from hijacking IDE development. Commenter Paul Stoffregen (who was the author of the Heise story above) <a href="http://hackaday.com/2015/02/25/arduino-v-arduino/comment-page-1/#comment-2453084">noted</a> that Arduino SRL recently created a fork of the Arduino IDE on GitHub. </p>
+ <p>Most recently, Banzi broke his silence about the dispute in a <a href="http://makezine.com/2015/03/19/massimo-banzi-fighting-for-arduino">story</a> published at MAKEzine. There, Banzi claims that Martino secretly filed a trademark application on "Arduino" in Italy in 2008 and told none of the other Arduino founders. He also details a series of unpleasant negotiations between the companies, including Smart Projects stopping the royalty payments it had long sent to Arduino LLC for manufacturing devices and re-branding its boards with the Arduino.org URL. </p>
+ <p>Users appear to be stuck in the middle. Banzi says that several retail outlets that claim to be selling "official" Arduino boards are actually paying Arduino SRL, not Arduino LLC, but it is quite difficult to determine which retailers are lined up on which side, since there are (typically) several levels of supplier involved. The two Arduino companies' web sites also disagree about the available hardware, with Arduino.org offering the new <a href="http://arduino.org/products/arduino-zero-pro">Arduino Zero</a> model for sale today and Arduino.cc <a href="http://arduino.cc/en/Main/Products">listing it</a> as "Coming soon." </p>
+ <p>Furthermore, as Hackaday's March story explains, the recently-released Arduino.cc IDE now reports that boards manufactured by Arduino SRL are "uncertified." That warning does not prevent users from programming the other company's hardware, but it will no doubt confuse quite a few users who believe they possess genuine Arduino-manufactured devices. </p>
+ <p>The USPTO page for Arduino SRL's petition notes pre-trial disclosure dates have been set for August and October of 2015 (for Arduino SRL and Arduino LLC, respectively), which suggests that this debate is far from over. Of course, it is always disappointing to observe a falling out between project founders, particularly when the project in question has had such an impact on open-source software and open hardware. </p>
+ <p>One could argue that disputes of this sort are proof that even small projects started among friends need to take legal and intellectual-property issues (such as trademarks) seriously from the very beginning—perhaps Arduino and Smart Projects thought that an informal agreement was all that was necessary in the early days, after all. </p>
+ <p>But, perhaps, once a project becomes profitable, there is simply no way to predict what might happen. Arduino LLC would seem to have a strong case for continual and rigorous use of the "Arduino" trademark, which is the salient point in US trademark law. It could still be a while before the courts rule on either side of that question, however. </p>
+ <p><a href="/Articles/637755/#Comments">Comments (5 posted)</a> </p>
+ <p> </p>
+ <h2 class="SummaryHL"><a href="/Articles/637533/">Mapping and data mining with QGIS 2.8</a></h2>
+ <div class="FeatureByline"> By <b>Nathan Willis</b>
+ <br/>March 25, 2015 </div>
+ <p><a href="http://qgis.org/">QGIS</a> is a free-software geographic information system (GIS) tool; it provides a unified interface in which users can import, edit, and analyze geographic-oriented information, and it can produce output as varied as printable maps or map-based web services. The project recently made its first update to be designated a long-term release (LTR), and that release is both poised for high-end usage and friendly to newcomers alike. </p>
+ <p>The new release is version 2.8, which was unveiled on March&nbsp;2. An official <a href="http://qgis.org/en/site/forusers/visualchangelog28/index.html">change
+log</a> is available on the QGIS site, while the release itself was announced primarily through blog posts (such as <a href="http://anitagraser.com/2015/03/02/qgis-2-8-ltr-has-landed/">this
+post</a> by Anita Graser of the project's steering committee). Downloads are <a href="http://qgis.org/en/site/forusers/download.html">available</a> for a variety of platforms, including packages for Ubuntu, Debian, Fedora, openSUSE, and several other distributions.</p>
+ <a href="/Articles/637747/"> <img src="/images/2015/03-qgis-map-sm.png" border="0" hspace="5" align="right" width="350" height="264" alt="[QGIS main interface]"/> </a>
+ <p>As the name might suggest, QGIS is a Qt application; the latest release will, in fact, build on both Qt4 and Qt5, although the binaries released by the project come only in Qt4 form at present. 2.8 has been labeled a long-term release (LTR)—which, in this case, means that the project has committed to providing backported bug fixes for one full calendar year, and that the 2.8.x series is in permanent feature freeze. The goal, according to the change log, is to provide a stable version suitable for businesses and deployments in other large organizations. The change log itself points out that the development of quite a few new features was underwritten by various GIS companies or university groups, which suggests that taking care of these organizations' needs is reaping dividends for the project. </p>
+ <p>For those new to QGIS (or GIS in general), there is a detailed new-user <a href="http://docs.qgis.org/testing/en/docs/training_manual/">tutorial</a> that provides a thorough walk-through of the data-manipulation, mapping, and analysis functions. Being a new user, I went through the tutorial; although there are a handful of minor differences between QGIS 2.8 and the version used in the text (primarily whether specific features were accessed through a toolbar or right-click menu), on the whole it is well worth the time. </p>
+ <p>QGIS is designed to make short work of importing spatially oriented data sets, mining information from them, and turning the results into a meaningful visualization. Technically speaking, the visualization output is optional: one could simply extract the needed statistics and results and use them to answer some question or, perhaps, publish the massaged data set as a database for others to use. </p>
+ <p>But well-made maps are often the easiest way to illuminate facts about populations, political regions, geography, and many other topics when human comprehension is the goal. QGIS makes importing data from databases, web-mapping services (WMS), and even unwieldy flat-file data dumps a painless experience. It handles converting between a variety of map-referencing systems more or less automatically, and allows the user to focus on finding the useful attributes of the data sets and rendering them on screen. </p>
+ <h4>Here be data</h4>
+ <p>The significant changes in QGIS 2.8 fall into several categories. There are updates to how QGIS handles the mathematical expressions and queries users can use to filter information out of a data set, improvements to the tools used to explore the on-screen map canvas, and enhancements to the "map composer" used to produce visual output. This is on top of plenty of other under-the-hood improvements, naturally.</p>
+ <a href="/Articles/637748/"> <img src="/images/2015/03-qgis-query-sm.png" border="0" hspace="5" align="left" width="300" height="302" alt="[QGIS query builder]"/> </a>
+ <p>In the first category are several updates to the filtering tools used to mine a data set. Generally speaking, each independent data set is added to a QGIS project as its own layer, then transformed with filters to focus in on a specific portion of the original data. For instance, the land-usage statistics for a region might be one layer, while roads and buildings for the same region from OpenStreetMap might be two additional layers. Such filters can be created in several ways: there is a "query builder" that lets the user construct and test expressions on a data layer, then save the results, an SQL console for performing similar queries on a database, and spreadsheet-like editing tools for working directly on data tables. </p>
+ <p>All three have been improved in this release. New are support for <tt>if(condition, true, false)</tt> conditional statements, a set of operations for geometry primitives (e.g., to test whether regions overlap or lines intersect), and an "integer divide" operation. Users can also add comments to their queries to annotate their code, and there is a new <a href="http://nathanw.net/2015/01/19/function-editor-for-qgis-expressions/">custom
+function editor</a> for writing Python functions that can be called in mathematical expressions within the query builder. </p>
+ <p>It is also now possible to select only some rows in a table, then perform calculations just on the selection—previously, users would have to extract the rows of interest into a new table first. Similarly, in the SQL editor, the user can highlight a subset of the SQL query and execute it separately, which is no doubt helpful for debugging. </p>
+ <p>There have also been several improvements to the Python and Processing plugins. Users can now drag-and-drop Python scripts onto QGIS and they will be run automatically. Several new analysis algorithms are now available through the Processing interface that were previously Python-only; they include algorithms for generating grids of points or vectors within a region, splitting layers and lines, generating <a href="http://en.wikipedia.org/wiki/Hypsometric_curve">hypsometric
+curves</a>, refactoring data sets, and more. </p>
+ <h4>Maps in, maps out</h4>
+ <a href="/Articles/637749/"> <img src="/images/2015/03-qgis-simplify-sm.png" border="0" hspace="5" align="right" width="300" height="303" alt="[QGIS simplify tool]"/> </a>
+ <p>The process of working with on-screen map data picked up some improvements in the new release as well. Perhaps the most fundamental is that each map layer added to the canvas is now handled in its own thread, so fewer hangs in the user interface are experienced when re-rendering a layer (as happens whenever the user changes the look of points or shapes in a layer). Since remote databases can also be layers, this multi-threaded approach is more resilient against connectivity problems, too. The interface also now supports temporary "scratch" layers that can be used to merge, filter, or simply experiment with a data set, but are not saved when the current project is saved. </p>
+ <p>For working on the canvas itself, polygonal regions can now use raster images (tiled, if necessary) as fill colors, the map itself can be rotated arbitrarily, and objects can be "snapped" to align with items on any layer (not just the current layer). For working with raster image layers (e.g., aerial photographs) or simply creating new geometric shapes by hand, there is a new digitizing tool that can offer assistance by locking lines to specific angles, automatically keeping borders parallel, and other niceties. </p>
+ <p>There is a completely overhauled "simplify" tool that is used to reduce the number of extraneous vertices of a vector layer (thus reducing its size). The old simplify tool provided only a relative "tolerance" setting that did not correspond directly to any units. With the new tool, users can set a simplification threshold in terms of the underlying map units, layer-specific units, pixels, and more—and, in addition, the tool reports how much the simplify operation has reduced the size of the data.</p>
+ <a href="/Articles/637751/"> <img src="/images/2015/03-qgis-style-sm.png" border="0" hspace="5" align="left" width="300" height="286" alt="[QGIS style editing]"/> </a>
+ <p>There has also been an effort to present a uniform interface to one of the most important features of the map canvas: the ability to change the symbology used for an item based on some data attribute. The simplest example might be to change the line color of a road based on whether its road-type attribute is "highway," "service road," "residential," or so on. But the same feature is used to automatically highlight layer information based on the filtering and querying functionality discussed above. The new release allows many more map attributes to be controlled by these "data definition" settings, and provides a hard-to-miss button next to each attribute, through which a custom data definition can be set. </p>
+ <p>QGIS's composer module is the tool used to take project data and generate a map that can be used outside of the application (in print, as a static image, or as a layer for <a href="http://mapserver.org/">MapServer</a> or some other software tool, for example). Consequently, it is not a simple select-and-click-export tool; composing the output can involve a lot of choices about which data to make visible, how (and where) to label it, and how to make it generally accessible. </p>
+ <p>The updated composer in 2.8 now has a full-screen mode and sports several new options for configuring output. For instance, the user now has full control over how map axes are labeled. In previous releases, the grid coordinates of the map could be turned on or off, but the only options were all or nothing. Now, the user can individually choose whether coordinates are displayed on all four sides, and can even choose in which direction vertical text labels will run (so that they can be correctly justified to the edge of the map, for example). </p>
+ <p>There are, as usual, many more changes than there is room to discuss. Some particularly noteworthy improvements include the ability to save and load bookmarks for frequently used data sources (perhaps most useful for databases, web services, and other non-local data) and improvements to QGIS's server module. This module allows one QGIS instance to serve up data accessible to other QGIS applications (for example, to simply team projects). The server can now be extended with Python plugins and the data layers that it serves can be styled with style rules like those used in the desktop interface. </p>
+ <p>QGIS is one of those rare free-software applications that is both powerful enough for high-end work and yet also straightforward to use for the simple tasks that might attract a newcomer to GIS in the first place. The 2.8 release, particularly with its project-wide commitment to long-term support, appears to be an update well worth checking out, whether one needs to create a simple, custom map or to mine a database for obscure geo-referenced meaning. </p>
+ <p><a href="/Articles/637533/#Comments">Comments (3 posted)</a> </p>
+ <p> </p>
+ <h2 class="SummaryHL"><a href="/Articles/637735/">Development activity in LibreOffice and OpenOffice</a></h2>
+ <div class="FeatureByline"> By <b>Jonathan Corbet</b>
+ <br/>March 25, 2015 </div> The LibreOffice project was <a href="/Articles/407383/">announced</a> with great fanfare in September 2010. Nearly one year later, the OpenOffice.org project (from which LibreOffice was forked) <a href="/Articles/446093/">was
+cut loose from Oracle</a> and found a new home as an Apache project. It is fair to say that the rivalry between the two projects in the time since then has been strong. Predictions that one project or the other would fail have not been borne out, but that does not mean that the two projects are equally successful. A look at the two projects' development communities reveals some interesting differences.
+ <p> </p>
+ <h4>Release histories</h4>
+ <p> Apache OpenOffice has made two releases in the past year: <a href="https://blogs.apache.org/OOo/entry/the_apache_openoffice_project_announce">4.1</a> in April 2014 and <a href="https://blogs.apache.org/OOo/entry/announcing_apache_openoffice_4_1">4.1.1</a> (described as "a micro update" in the release announcement) in August. The main feature added during that time would appear to be significantly improved accessibility support. </p>
+ <p> The release history for LibreOffice tells a slightly different story: </p>
+ <p> </p>
+ <blockquote>
+ <table class="OddEven">
+ <tbody>
+ <tr>
+ <th align="left">Release</th>
+ <th align="left">Date</th>
+ </tr>
+ <tr>
+ <td><a href="http://blog.documentfoundation.org/2014/04/10/libreoffice-4-2-3-is-now-available-for-download/">4.2.3</a></td>
+ <td>April 2014</td>
+ </tr>
+ <tr>
+ <td><a href="http://blog.documentfoundation.org/2014/04/29/the-document-foundation-announces-libreoffice-4-1-6/">4.1.6</a></td>
+ <td>April 2014</td>
+ </tr>
+ <tr>
+ <td><a href="http://blog.documentfoundation.org/2014/05/08/libreoffice-4-2-4-at-linuxtag-and-fisl/">4.2.4</a></td>
+ <td>May 2014</td>
+ </tr>
+ <tr>
+ <td><a href="http://blog.documentfoundation.org/2014/06/20/libreoffice-4-2-5-hits-the-marketplace/">4.2.5</a></td>
+ <td>June 2014</td>
+ </tr>
+ <tr>
+ <td><a href="http://blog.documentfoundation.org/2014/07/30/libreoffice-4-3-today-you-cant-own-a-better-office-suite/">4.3</a></td>
+ <td>July 2014</td>
+ </tr>
+ <tr>
+ <td><a href="http://blog.documentfoundation.org/2014/08/05/libreoffice-4-2-6-is-ready/">4.2.6</a></td>
+ <td>August 2014</td>
+ </tr>
+ <tr>
+ <td><a href="http://blog.documentfoundation.org/2014/08/28/libreoffice-4-3-1-fresh-announced/">4.3.1</a></td>
+ <td>August 2014</td>
+ </tr>
+ <tr>
+ <td><a href="http://blog.documentfoundation.org/2014/09/25/libreoffice-4-3-2-hits-the-marketplace-just-before-the-fourth-anniversary-of-the-project/">4.3.2</a></td>
+ <td>September 2014</td>
+ </tr>
+ <tr>
+ <td><a href="http://blog.documentfoundation.org/2014/10/30/the-document-foundation-announces-libreoffice-4-3-3-and-libreoffice-4-2-7/">4.2.7/4.3.3</a></td>
+ <td>October 2014</td>
+ </tr>
+ <tr>
+ <td><a href="http://blog.documentfoundation.org/2014/11/14/the-document-foundation-announces-libreoffice-4-3-4/">4.3.4</a></td>
+ <td>November 2014</td>
+ </tr>
+ <tr>
+ <td><a href="http://blog.documentfoundation.org/2014/12/12/the-document-foundation-announces-libreoffice-4-2-8/">4.2.8</a></td>
+ <td>December 2014</td>
+ </tr>
+ <tr>
+ <td><a href="http://blog.documentfoundation.org/2014/12/18/the-document-foundation-announces-libreoffice-4-3-5/">4.3.5</a></td>
+ <td>December 2014</td>
+ </tr>
+ <tr>
+ <td><a href="http://blog.documentfoundation.org/2015/01/29/libreoffice-4-4-the-most-beautiful-libreoffice-ever/">4.4</a></td>
+ <td>January 2015</td>
+ </tr>
+ <tr>
+ <td><a href="http://blog.documentfoundation.org/2015/02/20/the-document-foundation-announces-libreoffice-4-3-6/">4.3.6</a></td>
+ <td>February 2015</td>
+ </tr>
+ <tr>
+ <td><a href="http://blog.documentfoundation.org/2015/02/26/libreoffice-4-4-1-fresh-is-available-for-download/">4.4.1</a></td>
+ <td>February 2015</td>
+ </tr>
+ </tbody>
+ </table>
+ </blockquote>
+ <p> It seems clear that LibreOffice has maintained a rather more frenetic release cadence, generally putting out at least one release per month. The project typically keeps at least two major versions alive at any one time. Most of the releases are of the minor, bug-fix variety, but there have been two major releases in the last year as well. </p>
+ <p> </p>
+ <h4>Development statistics</h4>
+ <p> In the one-year period since late March 2014, there have been 381 changesets committed to the OpenOffice Subversion repository. The most active committers are: </p>
+ <p> </p>
+ <blockquote>
+ <table>
+ <tbody>
+ <tr>
+ <th colspan="2" align="center">Most active OpenOffice developers</th>
+ </tr>
+ <tr>
+ <td width="50%" valign="top">
+ <table cellspacing="3">
+ <tbody>
+ <tr>
+ <th colspan="3">By changesets</th>
+ </tr>
+ <tr class="Even">
+ <td>Herbert Dürr</td>
+ <td align="right">63</td>
+ <td align="right">16.6%</td>
+ </tr>
+ <tr class="Odd">
+ <td>Jürgen&nbsp;Schmidt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
+ <td align="right">56</td>
+ <td align="right">14.7%</td>
+ </tr>
+ <tr class="Even">
+ <td>Armin Le Grand</td>
+ <td align="right">56</td>
+ <td align="right">14.7%</td>
+ </tr>
+ <tr class="Odd">
+ <td>Oliver-Rainer&nbsp;Wittmann</td>
+ <td align="right">46</td>
+ <td align="right">12.1%</td>
+ </tr>
+ <tr class="Even">
+ <td>Tsutomu Uchino</td>
+ <td align="right">33</td>
+ <td align="right">8.7%</td>
+ </tr>
+ <tr class="Odd">
+ <td>Kay Schenk</td>
+ <td align="right">27</td>
+ <td align="right">7.1%</td>
+ </tr>
+ <tr class="Even">
+ <td>Pedro Giffuni</td>
+ <td align="right">23</td>
+ <td align="right">6.1%</td>
+ </tr>
+ <tr class="Odd">
+ <td>Ariel Constenla-Haile</td>
+ <td align="right">22</td>
+ <td align="right">5.8%</td>
+ </tr>
+ <tr class="Even">
+ <td>Andrea Pescetti</td>
+ <td align="right">14</td>
+ <td align="right">3.7%</td>
+ </tr>
+ <tr class="Odd">
+ <td>Steve Yin</td>
+ <td align="right">11</td>
+ <td align="right">2.9%</td>
+ </tr>
+ <tr class="Even">
+ <td>Andre Fischer</td>
+ <td align="right">10</td>
+ <td align="right">2.6%</td>
+ </tr>
+ <tr class="Odd">
+ <td>Yuri Dario</td>
+ <td align="right">7</td>
+ <td align="right">1.8%</td>
+ </tr>
+ <tr class="Even">
+ <td>Regina Henschel</td>
+ <td align="right">6</td>
+ <td align="right">1.6%</td>
+ </tr>
+ <tr class="Odd">
+ <td>Juan C. Sanz</td>
+ <td align="right">2</td>
+ <td align="right">0.5%</td>
+ </tr>
+ <tr class="Even">
+ <td>Clarence Guo</td>
+ <td align="right">2</td>
+ <td align="right">0.5%</td>
+ </tr>
+ <tr class="Odd">
+ <td>Tal Daniel</td>
+ <td align="right">2</td>
+ <td align="right">0.5%</td>
+ </tr>
+ </tbody>
+ </table>
+ </td>
+ <td width="50%" valign="top">
+ <table cellspacing="3">
+ <tbody>
+ <tr>
+ <th colspan="3">By changed lines</th>
+ </tr>
+ <tr class="Even">
+ <td>Jürgen&nbsp;Schmidt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
+ <td align="right">455499</td>
+ <td align="right">88.1%</td>
+ </tr>
+ <tr class="Odd">
+ <td>Andre Fischer</td>
+ <td align="right">26148</td>
+ <td align="right">3.8%</td>
+ </tr>
+ <tr class="Even">
+ <td>Pedro Giffuni</td>
+ <td align="right">23183</td>
+ <td align="right">3.4%</td>
+ </tr>
+ <tr class="Odd">
+ <td>Armin Le Grand</td>
+ <td align="right">11018</td>
+ <td align="right">1.6%</td>
+ </tr>
+ <tr class="Even">
+ <td>Juan C. Sanz</td>
+ <td align="right">4582</td>
+ <td align="right">0.7%</td>
+ </tr>
+ <tr class="Odd">
+ <td>Oliver-Rainer Wittmann</td>
+ <td align="right">4309</td>
+ <td align="right">0.6%</td>
+ </tr>
+ <tr class="Even">
+ <td>Andrea Pescetti</td>
+ <td align="right">3908</td>
+ <td align="right">0.6%</td>
+ </tr>
+ <tr class="Odd">
+ <td>Herbert Dürr</td>
+ <td align="right">2811</td>
+ <td align="right">0.4%</td>
+ </tr>
+ <tr class="Even">
+ <td>Tsutomu Uchino</td>
+ <td align="right">1991</td>
+ <td align="right">0.3%</td>
+ </tr>
+ <tr class="Odd">
+ <td>Ariel Constenla-Haile</td>
+ <td align="right">1258</td>
+ <td align="right">0.2%</td>
+ </tr>
+ <tr class="Even">
+ <td>Steve Yin</td>
+ <td align="right">1010</td>
+ <td align="right">0.1%</td>
+ </tr>
+ <tr class="Odd">
+ <td>Kay Schenk</td>
+ <td align="right">616</td>
+ <td align="right">0.1%</td>
+ </tr>
+ <tr class="Even">
+ <td>Regina Henschel</td>
+ <td align="right">417</td>
+ <td align="right">0.1%</td>
+ </tr>
+ <tr class="Odd">
+ <td>Yuri Dario</td>
+ <td align="right">268</td>
+ <td align="right">0.0%</td>
+ </tr>
+ <tr class="Even">
+ <td>tal</td>
+ <td align="right">16</td>
+ <td align="right">0.0%</td>
+ </tr>
+ <tr class="Odd">
+ <td>Clarence Guo</td>
+ <td align="right">11</td>
+ <td align="right">0.0%</td>
+ </tr>
+ </tbody>
+ </table>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </blockquote>
+ <p> In truth, the above list is not just the most active OpenOffice developers — it is all of them; a total of 16 developers have committed changes to OpenOffice in the last year. Those developers changed 528,000 lines of code, but, as can be seen above, Jürgen Schmidt accounted for the bulk of those changes, which were mostly updates to translation files. </p>
+ <p> The top four developers in the "by changesets" column all work for IBM, so IBM is responsible for a minimum of about 60% of the changes to OpenOffice in the last year. </p>
+ <p> The picture for LibreOffice is just a little bit different; in the same one-year period, the project has committed 22,134 changesets from 268 developers. The most active of these developers were: </p>
+ <p> </p>
+ <blockquote>
+ <table>
+ <tbody>
+ <tr>
+ <th colspan="2" align="center">Most active LibreOffice developers</th>
+ </tr>
+ <tr>
+ <td width="50%" valign="top">
+ <table cellspacing="3">
+ <tbody>
+ <tr>
+ <th colspan="3">By changesets</th>
+ </tr>
+ <tr class="Even">
+ <td>Caolán McNamara</td>
+ <td align="right">4307</td>
+ <td align="right">19.5%</td>
+ </tr>
+ <tr class="Odd">
+ <td>Stephan Bergmann</td>
+ <td align="right">2351</td>
+ <td align="right">10.6%</td>
+ </tr>
+ <tr class="Even">
+ <td>Miklos Vajna</td>
+ <td align="right">1449</td>
+ <td align="right">6.5%</td>
+ </tr>
+ <tr class="Odd">
+ <td>Tor Lillqvist</td>
+ <td align="right">1159</td>
+ <td align="right">5.2%</td>
+ </tr>
+ <tr class="Even">
+ <td>Noel Grandin</td>
+ <td align="right">1064</td>
+ <td align="right">4.8%</td>
+ </tr>
+ <tr class="Odd">
+ <td>Markus Mohrhard</td>
+ <td align="right">935</td>
+ <td align="right">4.2%</td>
+ </tr>
+ <tr class="Even">
+ <td>Michael Stahl</td>
+ <td align="right">915</td>
+ <td align="right">4.1%</td>
+ </tr>
+ <tr class="Odd">
+ <td>Kohei Yoshida</td>
+ <td align="right">755</td>
+ <td align="right">3.4%</td>
+ </tr>
+ <tr class="Even">
+ <td>Tomaž Vajngerl</td>
+ <td align="right">658</td>
+ <td align="right">3.0%</td>
+ </tr>
+ <tr class="Odd">
+ <td>Thomas Arnhold</td>
+ <td align="right">619</td>
+ <td align="right">2.8%</td>
+ </tr>
+ <tr class="Even">
+ <td>Jan Holesovsky</td>
+ <td align="right">466</td>
+ <td align="right">2.1%</td>
+ </tr>
+ <tr class="Odd">
+ <td>Eike Rathke</td>
+ <td align="right">457</td>
+ <td align="right">2.1%</td>
+ </tr>
+ <tr class="Even">
+ <td>Matteo Casalin</td>
+ <td align="right">442</td>
+ <td align="right">2.0%</td>
+ </tr>
+ <tr class="Odd">
+ <td>Bjoern Michaelsen</td>
+ <td align="right">421</td>
+ <td align="right">1.9%</td>
+ </tr>
+ <tr class="Even">
+ <td>Chris Sherlock</td>
+ <td align="right">396</td>
+ <td align="right">1.8%</td>
+ </tr>
+ <tr class="Odd">
+ <td>David Tardon</td>
+ <td align="right">386</td>
+ <td align="right">1.7%</td>
+ </tr>
+ <tr class="Even">
+ <td>Julien Nabet</td>
+ <td align="right">362</td>
+ <td align="right">1.6%</td>
+ </tr>
+ <tr class="Odd">
+ <td>Zolnai Tamás</td>
+ <td align="right">338</td>
+ <td align="right">1.5%</td>
+ </tr>
+ <tr class="Even">
+ <td>Matúš Kukan</td>
+ <td align="right">256</td>
+ <td align="right">1.2%</td>
+ </tr>
+ <tr class="Odd">
+ <td>Robert&nbsp;Antoni&nbsp;Buj&nbsp;Gelonch</td>
+ <td align="right">231</td>
+ <td align="right">1.0%</td>
+ </tr>
+ </tbody>
+ </table>
+ </td>
+ <td width="50%" valign="top">
+ <table cellspacing="3">
+ <tbody>
+ <tr>
+ <th colspan="3">By changed lines</th>
+ </tr>
+ <tr class="Even">
+ <td>Lionel Elie Mamane</td>
+ <td align="right">244062</td>
+ <td align="right">12.5%</td>
+ </tr>
+ <tr class="Odd">
+ <td>Noel Grandin</td>
+ <td align="right">238711</td>
+ <td align="right">12.2%</td>
+ </tr>
+ <tr class="Even">
+ <td>Stephan Bergmann</td>
+ <td align="right">161220</td>
+ <td align="right">8.3%</td>
+ </tr>
+ <tr class="Odd">
+ <td>Miklos Vajna</td>
+ <td align="right">129325</td>
+ <td align="right">6.6%</td>
+ </tr>
+ <tr class="Even">
+ <td>Caolán McNamara</td>
+ <td align="right">97544</td>
+ <td align="right">5.0%</td>
+ </tr>
+ <tr class="Odd">
+ <td>Tomaž Vajngerl</td>
+ <td align="right">69404</td>
+ <td align="right">3.6%</td>
+ </tr>
+ <tr class="Even">
+ <td>Tor Lillqvist</td>
+ <td align="right">59498</td>
+ <td align="right">3.1%</td>
+ </tr>
+ <tr class="Odd">
+ <td>Laurent Balland-Poirier</td>
+ <td align="right">52802</td>
+ <td align="right">2.7%</td>
+ </tr>
+ <tr class="Even">
+ <td>Markus Mohrhard</td>
+ <td align="right">50509</td>
+ <td align="right">2.6%</td>
+ </tr>
+ <tr class="Odd">
+ <td>Kohei Yoshida</td>
+ <td align="right">45514</td>
+ <td align="right">2.3%</td>
+ </tr>
+ <tr class="Even">
+ <td>Chris Sherlock</td>
+ <td align="right">36788</td>
+ <td align="right">1.9%</td>
+ </tr>
+ <tr class="Odd">
+ <td>Peter Foley</td>
+ <td align="right">34305</td>
+ <td align="right">1.8%</td>
+ </tr>
+ <tr class="Even">
+ <td>Christian Lohmaier</td>
+ <td align="right">33787</td>
+ <td align="right">1.7%</td>
+ </tr>
+ <tr class="Odd">
+ <td>Thomas Arnhold</td>
+ <td align="right">32722</td>
+ <td align="right">1.7%</td>
+ </tr>
+ <tr class="Even">
+ <td>David Tardon</td>
+ <td align="right">21681</td>
+ <td align="right">1.1%</td>
+ </tr>
+ <tr class="Odd">
+ <td>David Ostrovsky</td>
+ <td align="right">21620</td>
+ <td align="right">1.1%</td>
+ </tr>
+ <tr class="Even">
+ <td>Jan Holesovsky</td>
+ <td align="right">20792</td>
+ <td align="right">1.1%</td>
+ </tr>
+ <tr class="Odd">
+ <td>Valentin Kettner</td>
+ <td align="right">20526</td>
+ <td align="right">1.1%</td>
+ </tr>
+ <tr class="Even">
+ <td>Robert&nbsp;Antoni&nbsp;Buj&nbsp;Gelonch</td>
+ <td align="right">20447</td>
+ <td align="right">1.0%</td>
+ </tr>
+ <tr class="Odd">
+ <td>Michael Stahl</td>
+ <td align="right">18216</td>
+ <td align="right">0.9%</td>
+ </tr>
+ </tbody>
+ </table>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </blockquote>
+ <p> To a first approximation, the top ten companies supporting LibreOffice in the last year are: </p>
+ <p> </p>
+ <blockquote>
+ <table>
+ <tbody>
+ <tr>
+ <th colspan="3">Companies supporting LibreOffice development</th>
+ </tr>
+ <tr>
+ <th colspan="3">(by changesets)</th>
+ </tr>
+ <tr class="Even">
+ <td>Red Hat</td>
+ <td align="right">8417</td>
+ <td align="right">38.0%</td>
+ </tr>
+ <tr class="Odd">
+ <td>Collabora <strike>Multimedia</strike></td>
+ <td align="right">6531</td>
+ <td align="right">29.5%</td>
+ </tr>
+ <tr class="Even">
+ <td>(Unknown)</td>
+ <td align="right">5126</td>
+ <td align="right">23.2%</td>
+ </tr>
+ <tr class="Odd">
+ <td>(None)</td>
+ <td align="right">1490</td>
+ <td align="right">6.7%</td>
+ </tr>
+ <tr class="Even">
+ <td>Canonical</td>
+ <td align="right">422</td>
+ <td align="right">1.9%</td>
+ </tr>
+ <tr class="Odd">
+ <td>Igalia S.L.</td>
+ <td align="right">80</td>
+ <td align="right">0.4%</td>
+ </tr>
+ <tr class="Even">
+ <td>Ericsson</td>
+ <td align="right">21</td>
+ <td align="right">0.1%</td>
+ </tr>
+ <tr class="Odd">
+ <td>Yandex</td>
+ <td align="right">18</td>
+ <td align="right">0.1%</td>
+ </tr>
+ <tr class="Even">
+ <td>FastMail.FM</td>
+ <td align="right">17</td>
+ <td align="right">0.1%</td>
+ </tr>
+ <tr class="Odd">
+ <td>SUSE</td>
+ <td align="right">7</td>
+ <td align="right">0.0%</td>
+ </tr>
+ </tbody>
+ </table>
+ </blockquote>
+ <p> Development work on LibreOffice is thus concentrated in a small number of companies, though it is rather more spread out than OpenOffice development. It is worth noting that the LibreOffice developers with unknown affiliation, who contributed 23% of the changes, make up 82% of the developer base, so there would appear to be a substantial community of developers contributing from outside the above-listed companies. </p>
+ <p> </p>
+ <h4>Some conclusions</h4>
+ <p> Last October, some <a href="/Articles/637742/">concerns</a> were raised on the OpenOffice list about the health of that project's community. At the time, Rob Weir <a href="/Articles/637743/">shrugged them off</a> as the result of a marketing effort by the LibreOffice crowd. There can be no doubt that the war of words between these two projects has gotten tiresome at times, but, looking at the above numbers, it is hard not to conclude that there is an issue that goes beyond marketing hype here. </p>
+ <p> In the 4½ years since its founding, the LibreOffice project has put together a community with over 250 active developers. There is support from multiple companies and an impressive rate of patches going into the project's repository. The project's ability to sustain nearly monthly releases on two branches is a direct result of that community's work. Swearing at LibreOffice is one of your editor's favorite pastimes, but it seems clear that the project is on a solid footing with a healthy community. </p>
+ <p> OpenOffice, instead, is driven by four developers from a single company — a company that appears to have been deemphasizing OpenOffice work for some time. As a result, the project's commit rate is a fraction of what LibreOffice is able to sustain and releases are relatively rare. As of this writing, the <a href="https://blogs.apache.org/OOo/">OpenOffice
+blog</a> shows no posts in 2015. In the October discussion, Rob <a href="/Articles/637750/">said</a> that "<span>the dogs may
+bark but the caravan moves on.</span>" That may be true, but, in this case, the caravan does not appear to be moving with any great speed. </p>
+ <p> Anything can happen in the free-software development world; it is entirely possible that a reinvigorated OpenOffice.org may yet give LibreOffice a run for its money. But something will clearly have to change to bring that future around. As things stand now, it is hard not to conclude that LibreOffice has won the battle for developer participation. </p>
+ <p><a href="/Articles/637735/#Comments">Comments (74 posted)</a> </p>
+ <p> </p>
+ <p> <b>Page editor</b>: Jonathan Corbet
+ <br/> </p>
+ <h2>Inside this week's LWN.net Weekly Edition</h2>
+ <ul>
+ <li> <a href="/Articles/637395/">Security</a>: Toward secure package downloads; New vulnerabilities in drupal, mozilla, openssl, python-django ... </li>
+ <li> <a href="/Articles/637396/">Kernel</a>: LSFMM coverage: NFS, defragmentation, epoll(), copy offload, and more. </li>
+ <li> <a href="/Articles/637397/">Distributions</a>: A look at Debian's 2015 DPL candidates; Debian, Fedora, ... </li>
+ <li> <a href="/Articles/637398/">Development</a>: A look at GlusterFS; LibreOffice Online; Open sourcing existing code; Secure Boot in Windows 10; ... </li>
+ <li> <a href="/Articles/637399/">Announcements</a>: A Turing award for Michael Stonebraker, Sébastien Jodogne, ReGlue are Free Software Award winners, Kat Walsh joins FSF board of directors, Cyanogen, ... </li>
+ </ul> <b>Next page</b>: <a href="/Articles/637395/">Security&gt;&gt;</a>
+ <br/> </div>
+ <!-- ArticleText -->
+ </td>
+ <!-- MC -->
+ <td class="RightColumn">
+ <div id="azk93271_right_zone"></div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <!-- endpage -->
+ <br clear="all"/>
+ <center>
+ <p> <font size="-2">
+ Copyright © 2015, Eklektix, Inc.<br/>
+
+ Comments and public postings are copyrighted by their creators.<br/>
+ Linux is a registered trademark of Linus Torvalds<br/>
+ </font> </p>
+ </center>
+</body>
+
+</html> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/marketwatch/config.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/marketwatch/config.json
new file mode 100644
index 000000000..958972e20
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/marketwatch/config.json
@@ -0,0 +1,4 @@
+{
+ "ArticleByLine": true,
+ "SubstituteEntities": true
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/marketwatch/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/marketwatch/expected-images.json
new file mode 100644
index 000000000..cfe75d030
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/marketwatch/expected-images.json
@@ -0,0 +1,3 @@
+[
+ "http:\/\/s.marketwatch.com\/public\/resources\/MWimages\/MW-GG178_realty_ZG_20180323163027.jpg"
+]
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/marketwatch/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/marketwatch/expected-metadata.json
new file mode 100644
index 000000000..94f36a271
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/marketwatch/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "Andrea Riquier",
+ "Direction": null,
+ "Excerpt": "House prices show no sign of slowing down, according to a closely-watched index out Tuesday.",
+ "Image": "http://s.marketwatch.com/public/resources/MWimages/MW-GG178_realty_ZG_20180323163027.jpg",
+ "Title": "Home prices are still on fire, Case-Shiller data show",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/marketwatch/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/marketwatch/expected.html
new file mode 100644
index 000000000..bd81ab3d7
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/marketwatch/expected.html
@@ -0,0 +1,47 @@
+<div id="article-body" itemprop="articleBody">
+
+
+
+
+
+
+
+
+
+ <p> <strong>The numbers:</strong> The S&amp;P/Case-Shiller national index rose a seasonally adjusted 0.5% in the three-month period ending in January, and was up 6.2% compared to a year before. The 20-city index rose a seasonally adjusted 0.8% for the month, and 6.4% for the year.</p> <p> <strong>What happened: </strong>Prices are still on fire. And the West is still the best: Seattle, Las Vegas and San Francisco all notched double-digit yearly price gains. Only one city, Washington, D.C., had a negative monthly reading. </p> <p>As David Blitzer, chairman of the index committee at S&amp;P Dow Jones Indices, noted in a release, the price gains are all about demand and lack of supply. </p> <p>“The current months-supply — how many months at the current sales rate would be needed to absorb homes currently for sale — is 3.4; the average since 2000 is 6.0 months, and the high in July 2010 was 11.9,” Blitzer wrote. “Currently, the homeowner vacancy rate is 1.6% compared to an average of 2.1% since 2000; it peaked in 2010 at 2.7%. Despite limited supplies, rising prices and higher mortgage rates, affordability is not a concern.”</p> <p>Relatively affordable housing is cold comfort to many would-be home buyers who simply can’t find anything to buy. </p> <p> <strong>Read:</strong> <a href="http://fakehost/story/two-thirds-of-house-hunters-have-been-searching-for-3-months-or-more-2018-02-22">Most house hunters have been searching for 3 months or more</a> </p> <p> <strong>Big picture:</strong> Economists had forecast a 0.7% monthly increase, and a 6.2% 12-month increase, for the 20-city index. <a href="http://fakehost/story/why-its-so-hard-to-forecast-home-prices-for-2018-and-why-that-should-worry-you-2017-12-19">As MarketWatch has reported</a>, most housing analysts have argued that the ongoing price gains in housing can’t last — and yet they have so far. </p> <table readabilityDataTable="1"><tbody><tr><td colspan="" id=""> <strong>Metro</strong> </td> <td colspan="" id=""> <strong>Monthly change</strong> </td> <td colspan="" id=""> <strong>12-month change</strong> </td> </tr><tr><td colspan="" id="">Atlanta</td> <td colspan="" id="">0.7%</td> <td colspan="" id="">6.5%</td> </tr><tr><td colspan="" id="">Boston</td> <td colspan="" id="">0.2%</td> <td colspan="" id="">5.3%</td> </tr><tr><td colspan="" id="">Charlotte</td> <td colspan="" id="">0.4%</td> <td colspan="" id="">6.0%</td> </tr><tr><td colspan="" id="">Chicago</td> <td colspan="" id="">0.0%</td> <td colspan="" id="">2.4%</td> </tr><tr><td colspan="" id="">Cleveland</td> <td colspan="" id="">0.0%</td> <td colspan="" id="">3.5%</td> </tr><tr><td colspan="" id="">Dallas</td> <td colspan="" id="">0.2%</td> <td colspan="" id="">6.9%</td> </tr><tr><td colspan="" id="">Denver</td> <td colspan="" id="">0.7%</td> <td colspan="" id="">7.6%</td> </tr><tr><td colspan="" id="">Detroit</td> <td colspan="" id="">0.1%</td> <td colspan="" id="">7.6%</td> </tr><tr><td colspan="" id="">Las Vegas</td> <td colspan="" id="">0.6%</td> <td colspan="" id="">11.1%</td> </tr><tr><td colspan="" id="">Los Angeles</td> <td colspan="" id="">0.6%</td> <td colspan="" id="">7.6%</td> </tr><tr><td colspan="" id="">Miami</td> <td colspan="" id="">0.6%</td> <td colspan="" id="">4.0%</td> </tr><tr><td colspan="" id="">Minneapolis</td> <td colspan="" id="">0.1%</td> <td colspan="" id="">5.9%</td> </tr><tr><td colspan="" id="">New York</td> <td colspan="" id="">0.0%</td> <td colspan="" id="">5.2%</td> </tr><tr><td colspan="" id="">Phoenix</td> <td colspan="" id="">0.3%</td> <td colspan="" id="">5.9%</td> </tr><tr><td colspan="" id="">Portland</td> <td colspan="" id="">0.4%</td> <td colspan="" id="">7.1%</td> </tr><tr><td colspan="" id="">San Diego</td> <td colspan="" id="">0.8%</td> <td colspan="" id="">7.4%</td> </tr><tr><td colspan="" id="">San Francisco</td> <td colspan="" id="">0.4%</td> <td colspan="" id="">10.2%</td> </tr><tr><td colspan="" id="">Seattle</td> <td colspan="" id="">0.7%</td> <td colspan="" id="">12.9%</td> </tr><tr><td colspan="" id="">Tampa</td> <td colspan="" id="">0.4%</td> <td colspan="" id="">6.7%</td> </tr><tr><td colspan="" id="">Washington</td> <td colspan="" id="">-0.4%</td> <td colspan="" id="">2.4%</td> </tr></tbody></table><p>Read: <a href="http://fakehost/story/mortgage-rates-edge-up-even-as-trade-war-worries-loom-ahead-2018-03-22">Mortgage rates edge up even as trade war worries loom ahead</a></p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/marketwatch/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/marketwatch/source.html
new file mode 100644
index 000000000..080f03dd8
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/marketwatch/source.html
@@ -0,0 +1,1453 @@
+<!DOCTYPE html>
+<html lang="en-US">
+<head>
+ <title>Home prices are still on fire, Case-Shiller data show - MarketWatch</title>
+ <link id="canonical-link" rel="canonical" href="https://www.marketwatch.com/story/home-prices-are-still-on-fire-case-shiller-data-show-2018-03-27" />
+ <link rel="amphtml" href="https://www.marketwatch.com/amp/story/guid/0BFF0DB6-2ED7-11E8-81FB-B7175F43D5CD" />
+ <link rel="alternate" href="mwatch://article?id=0BFF0DB6-2ED7-11E8-81FB-B7175F43D5CD" />
+ <meta name="apple-itunes-app" content="app-id=336693422,app-argument=mwatch://article?id=0BFF0DB6-2ED7-11E8-81FB-B7175F43D5CD" />
+<link href="https://mw4.wsj.net/mw5/content/images/favicons/apple-touch-icon.png" rel="apple-touch-icon"/>
+<link href="https://mw4.wsj.net/mw5/content/images/favicons/apple-touch-icon-152x152.png" rel="apple-touch-icon" sizes="152x152"/>
+<link href="https://mw4.wsj.net/mw5/content/images/favicons/apple-touch-icon-167x167.png" rel="apple-touch-icon" sizes="167x167"/>
+<link href="https://mw4.wsj.net/mw5/content/images/favicons/apple-touch-icon-180x180.png" rel="apple-touch-icon" sizes="180x180"/>
+<link href="https://mw4.wsj.net/mw5/content/logos/favicon.ico" rel="shortcut icon"/>
+ <link href='https://sts3.wsj.net/bucket-a/foxtrot/public/article.min-b0b1af56eb.css' media='all' rel='stylesheet' type='text/css'/>
+ <script src='https://sts3.wsj.net/bucket-a/foxtrot/public/article.min-ebaf39a94a.js' type='text/javascript'></script>
+ <meta charset="utf-8" />
+<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
+<meta name="page.site" content="marketwatch" />
+<meta name="apple-itunes-app" content="app-id=336693422" />
+<meta property="fb:app_id" content="283204329838" />
+<meta property="og:site_name" content="MarketWatch" />
+<meta name="twitter:site:id" content="624413" />
+<meta name="twitter:domain" content="marketwatch.com" />
+<meta name="article.content_group" content="marketwatch" />
+<meta name="article.id" content="0BFF0DB6-2ED7-11E8-81FB-B7175F43D5CD" />
+<meta name="article.section" content="Economy & Politics" />
+<meta property="article:publisher" content="https://www.facebook.com/marketwatch" />
+<meta name="author" content="Andrea Riquier" />
+<meta name="description" content="House prices show no sign of slowing down, according to a closely-watched index out Tuesday." />
+<meta property="og:description" content="House prices show no sign of slowing down, according to a closely-watched index out Tuesday." />
+<meta name="twitter:description" content="House prices show no sign of slowing down, according to a closely-watched index out Tuesday." />
+<meta property="og:type" content="article" />
+<meta property="og:url" content="https://www.marketwatch.com/story/home-prices-are-still-on-fire-case-shiller-data-show-2018-03-27" />
+<meta property="og:title" content="Home prices are still on fire, Case-Shiller data show" />
+<meta name="article.column" content="Economic Report" />
+<meta name="article.doctype" content="103" />
+<meta name="article.template" content="Normal" />
+<meta name="news_keywords" content="Construction and Materials,Manufacturing" />
+<meta name="robots" content="noarchive,noodp" />
+<meta property="og:image" content="http://s.marketwatch.com/public/resources/MWimages/MW-GG178_realty_ZG_20180323163027.jpg" />
+<meta name="twitter:domain" content="marketwatch.com" />
+<meta name="twitter:image" content="http://s.marketwatch.com/public/resources/MWimages/MW-GG178_realty_ZG_20180323163027.jpg" />
+<meta name="twitter:image:width" content="1320" />
+<meta name="twitter:image:height" content="742" />
+<meta name="twitter:card" content="summary_large_image" />
+<meta name="twitter:creator" content="@ARiquier" />
+<meta name="parsely-title" content="Home prices are still on fire, Case-Shiller data show" />
+<meta name="parsely-link" content="https://www.marketwatch.com/story/home-prices-are-still-on-fire-case-shiller-data-show-2018-03-27" />
+<meta name="parsely-type" content="post" />
+<meta name="parsely-section" content="Economy & Politics" />
+<meta name="parsely-author" content="Andrea Riquier" />
+<meta name="parsely-pub-date" content="2018-03-27T09:00:00-04:00" />
+<meta name="parsely-post-id" content="0BFF0DB6-2ED7-11E8-81FB-B7175F43D5CD" />
+<meta name="parsely-tags" content="PageType: Article, Column: Economic Report, Doctype: 103, Template: Normal, MW-Industry: Construction and Materials, MW-Industry: Manufacturing, GUID: 0BFF0DB6-2ED7-11E8-81FB-B7175F43D5CD, Industry: Construction/Real Estate, Subject: Economic News" />
+<meta name="keywords" content="construction, real estate, economic news, united states" />
+ <meta name="theme-color" content="#2e2e2f" />
+ <script type="text/javascript">
+ window.NREUM||(NREUM={}),__nr_require=function(t,e,n){function r(n){if(!e[n]){var o=e[n]={exports:{}};t[n][0].call(o.exports,function(e){var o=t[n][1][e];return r(o?o:e)},o,o.exports)}return e[n].exports}if("function"==typeof __nr_require)return __nr_require;for(var o=0;o<n.length;o++)r(n[o]);return r}({QJf3ax:[function(t,e){function n(t){function e(e,n,a){t&&t(e,n,a),a||(a={});for(var c=s(e),f=c.length,u=i(a,o,r),d=0;f>d;d++)c[d].apply(u,n);return u}function a(t,e){f[t]=s(t).concat(e)}function s(t){return f[t]||[]}function c(){return n(e)}var f={};return{on:a,emit:e,create:c,listeners:s,_events:f}}function r(){return{}}var o="nr@context",i=t("gos");e.exports=n()},{gos:"7eSDFh"}],ee:[function(t,e){e.exports=t("QJf3ax")},{}],3:[function(t){function e(t,e,n,i,s){try{c?c-=1:r("err",[s||new UncaughtException(t,e,n)])}catch(f){try{r("ierr",[f,(new Date).getTime(),!0])}catch(u){}}return"function"==typeof a?a.apply(this,o(arguments)):!1}function UncaughtException(t,e,n){this.message=t||"Uncaught error with no additional information",this.sourceURL=e,this.line=n}function n(t){r("err",[t,(new Date).getTime()])}var r=t("handle"),o=t(5),i=t("ee"),a=window.onerror,s=!1,c=0;t("loader").features.err=!0,window.onerror=e,NREUM.noticeError=n;try{throw new Error}catch(f){"stack"in f&&(t(1),t(4),"addEventListener"in window&&t(2),window.XMLHttpRequest&&XMLHttpRequest.prototype&&XMLHttpRequest.prototype.addEventListener&&t(3),s=!0)}i.on("fn-start",function(){s&&(c+=1)}),i.on("fn-err",function(t,e,r){s&&(this.thrown=!0,n(r))}),i.on("fn-end",function(){s&&!this.thrown&&c>0&&(c-=1)}),i.on("internal-error",function(t){r("ierr",[t,(new Date).getTime(),!0])})},{1:8,2:5,3:9,4:7,5:20,ee:"QJf3ax",handle:"D5DuLP",loader:"G9z0Bl"}],4:[function(t){function e(){}if(window.performance&&window.performance.timing&&window.performance.getEntriesByType){var n=t("ee"),r=t("handle"),o=t(2);t("loader").features.stn=!0,t(1),n.on("fn-start",function(t){var e=t[0];e instanceof Event&&(this.bstStart=Date.now())}),n.on("fn-end",function(t,e){var n=t[0];n instanceof Event&&r("bst",[n,e,this.bstStart,Date.now()])}),o.on("fn-start",function(t,e,n){this.bstStart=Date.now(),this.bstType=n}),o.on("fn-end",function(t,e){r("bstTimer",[e,this.bstStart,Date.now(),this.bstType])}),n.on("pushState-start",function(){this.time=Date.now(),this.startPath=location.pathname+location.hash}),n.on("pushState-end",function(){r("bstHist",[location.pathname+location.hash,this.startPath,this.time])}),"addEventListener"in window.performance&&(window.performance.addEventListener("webkitresourcetimingbufferfull",function(){r("bstResource",[window.performance.getEntriesByType("resource")]),window.performance.webkitClearResourceTimings()},!1),window.performance.addEventListener("resourcetimingbufferfull",function(){r("bstResource",[window.performance.getEntriesByType("resource")]),window.performance.clearResourceTimings()},!1)),document.addEventListener("scroll",e,!1),document.addEventListener("keypress",e,!1),document.addEventListener("click",e,!1)}},{1:6,2:8,ee:"QJf3ax",handle:"D5DuLP",loader:"G9z0Bl"}],5:[function(t,e){function n(t){i.inPlace(t,["addEventListener","removeEventListener"],"-",r)}function r(t){return t[1]}var o=(t(1),t("ee").create()),i=t(2)(o),a=t("gos");if(e.exports=o,n(window),"getPrototypeOf"in Object){for(var s=document;s&&!s.hasOwnProperty("addEventListener");)s=Object.getPrototypeOf(s);s&&n(s);for(var c=XMLHttpRequest.prototype;c&&!c.hasOwnProperty("addEventListener");)c=Object.getPrototypeOf(c);c&&n(c)}else XMLHttpRequest.prototype.hasOwnProperty("addEventListener")&&n(XMLHttpRequest.prototype);o.on("addEventListener-start",function(t){if(t[1]){var e=t[1];"function"==typeof e?this.wrapped=t[1]=a(e,"nr@wrapped",function(){return i(e,"fn-",null,e.name||"anonymous")}):"function"==typeof e.handleEvent&&i.inPlace(e,["handleEvent"],"fn-")}}),o.on("removeEventListener-start",function(t){var e=this.wrapped;e&&(t[1]=e)})},{1:20,2:21,ee:"QJf3ax",gos:"7eSDFh"}],6:[function(t,e){var n=(t(2),t("ee").create()),r=t(1)(n);e.exports=n,r.inPlace(window.history,["pushState"],"-")},{1:21,2:20,ee:"QJf3ax"}],7:[function(t,e){var n=(t(2),t("ee").create()),r=t(1)(n);e.exports=n,r.inPlace(window,["requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame"],"raf-"),n.on("raf-start",function(t){t[0]=r(t[0],"fn-")})},{1:21,2:20,ee:"QJf3ax"}],8:[function(t,e){function n(t,e,n){var r=t[0];"string"==typeof r&&(r=new Function(r)),t[0]=o(r,"fn-",null,n)}var r=(t(2),t("ee").create()),o=t(1)(r);e.exports=r,o.inPlace(window,["setTimeout","setInterval","setImmediate"],"setTimer-"),r.on("setTimer-start",n)},{1:21,2:20,ee:"QJf3ax"}],9:[function(t,e){function n(){c.inPlace(this,d,"fn-")}function r(t,e){c.inPlace(e,["onreadystatechange"],"fn-")}function o(t,e){return e}var i=t("ee").create(),a=t(1),s=t(2),c=s(i),f=s(a),u=window.XMLHttpRequest,d=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"];e.exports=i,window.XMLHttpRequest=function(t){var e=new u(t);try{i.emit("new-xhr",[],e),f.inPlace(e,["addEventListener","removeEventListener"],"-",function(t,e){return e}),e.addEventListener("readystatechange",n,!1)}catch(r){try{i.emit("internal-error",[r])}catch(o){}}return e},window.XMLHttpRequest.prototype=u.prototype,c.inPlace(XMLHttpRequest.prototype,["open","send"],"-xhr-",o),i.on("send-xhr-start",r),i.on("open-xhr-start",r)},{1:5,2:21,ee:"QJf3ax"}],10:[function(t){function e(t){if("string"==typeof t&&t.length)return t.length;if("object"!=typeof t)return void 0;if("undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer&&t.byteLength)return t.byteLength;if("undefined"!=typeof Blob&&t instanceof Blob&&t.size)return t.size;if("undefined"!=typeof FormData&&t instanceof FormData)return void 0;try{return JSON.stringify(t).length}catch(e){return void 0}}function n(t){var n=this.params,r=this.metrics;if(!this.ended){this.ended=!0;for(var i=0;c>i;i++)t.removeEventListener(s[i],this.listener,!1);if(!n.aborted){if(r.duration=(new Date).getTime()-this.startTime,4===t.readyState){n.status=t.status;var a=t.responseType,f="arraybuffer"===a||"blob"===a||"json"===a?t.response:t.responseText,u=e(f);if(u&&(r.rxSize=u),this.sameOrigin){var d=t.getResponseHeader("X-NewRelic-App-Data");d&&(n.cat=d.split(", ").pop())}}else n.status=0;r.cbTime=this.cbTime,o("xhr",[n,r,this.startTime])}}}function r(t,e){var n=i(e),r=t.params;r.host=n.hostname+":"+n.port,r.pathname=n.pathname,t.sameOrigin=n.sameOrigin}if(window.XMLHttpRequest&&XMLHttpRequest.prototype&&XMLHttpRequest.prototype.addEventListener&&!/CriOS/.test(navigator.userAgent)){t("loader").features.xhr=!0;var o=t("handle"),i=t(2),a=t("ee"),s=["load","error","abort","timeout"],c=s.length,f=t(1);t(4),t(3),a.on("new-xhr",function(){this.totalCbs=0,this.called=0,this.cbTime=0,this.end=n,this.ended=!1,this.xhrGuids={}}),a.on("open-xhr-start",function(t){this.params={method:t[0]},r(this,t[1]),this.metrics={}}),a.on("open-xhr-end",function(t,e){"loader_config"in NREUM&&"xpid"in NREUM.loader_config&&this.sameOrigin&&e.setRequestHeader("X-NewRelic-ID",NREUM.loader_config.xpid)}),a.on("send-xhr-start",function(t,n){var r=this.metrics,o=t[0],i=this;if(r&&o){var f=e(o);f&&(r.txSize=f)}this.startTime=(new Date).getTime(),this.listener=function(t){try{"abort"===t.type&&(i.params.aborted=!0),("load"!==t.type||i.called===i.totalCbs&&(i.onloadCalled||"function"!=typeof n.onload))&&i.end(n)}catch(e){try{a.emit("internal-error",[e])}catch(r){}}};for(var u=0;c>u;u++)n.addEventListener(s[u],this.listener,!1)}),a.on("xhr-cb-time",function(t,e,n){this.cbTime+=t,e?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof n.onload||this.end(n)}),a.on("xhr-load-added",function(t,e){var n=""+f(t)+!!e;this.xhrGuids&&!this.xhrGuids[n]&&(this.xhrGuids[n]=!0,this.totalCbs+=1)}),a.on("xhr-load-removed",function(t,e){var n=""+f(t)+!!e;this.xhrGuids&&this.xhrGuids[n]&&(delete this.xhrGuids[n],this.totalCbs-=1)}),a.on("addEventListener-end",function(t,e){e instanceof XMLHttpRequest&&"load"===t[0]&&a.emit("xhr-load-added",[t[1],t[2]],e)}),a.on("removeEventListener-end",function(t,e){e instanceof XMLHttpRequest&&"load"===t[0]&&a.emit("xhr-load-removed",[t[1],t[2]],e)}),a.on("fn-start",function(t,e,n){e instanceof XMLHttpRequest&&("onload"===n&&(this.onload=!0),("load"===(t[0]&&t[0].type)||this.onload)&&(this.xhrCbStart=(new Date).getTime()))}),a.on("fn-end",function(t,e){this.xhrCbStart&&a.emit("xhr-cb-time",[(new Date).getTime()-this.xhrCbStart,this.onload,e],e)})}},{1:"XL7HBI",2:11,3:9,4:5,ee:"QJf3ax",handle:"D5DuLP",loader:"G9z0Bl"}],11:[function(t,e){e.exports=function(t){var e=document.createElement("a"),n=window.location,r={};e.href=t,r.port=e.port;var o=e.href.split("://");return!r.port&&o[1]&&(r.port=o[1].split("/")[0].split(":")[1]),r.port&&"0"!==r.port||(r.port="https"===o[0]?"443":"80"),r.hostname=e.hostname||n.hostname,r.pathname=e.pathname,"/"!==r.pathname.charAt(0)&&(r.pathname="/"+r.pathname),r.sameOrigin=!e.hostname||e.hostname===document.domain&&e.port===n.port&&e.protocol===n.protocol,r}},{}],gos:[function(t,e){e.exports=t("7eSDFh")},{}],"7eSDFh":[function(t,e){function n(t,e,n){if(r.call(t,e))return t[e];var o=n();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(t,e,{value:o,writable:!0,enumerable:!1}),o}catch(i){}return t[e]=o,o}var r=Object.prototype.hasOwnProperty;e.exports=n},{}],D5DuLP:[function(t,e){function n(t,e,n){return r.listeners(t).length?r.emit(t,e,n):(o[t]||(o[t]=[]),void o[t].push(e))}var r=t("ee").create(),o={};e.exports=n,n.ee=r,r.q=o},{ee:"QJf3ax"}],handle:[function(t,e){e.exports=t("D5DuLP")},{}],XL7HBI:[function(t,e){function n(t){var e=typeof t;return!t||"object"!==e&&"function"!==e?-1:t===window?0:i(t,o,function(){return r++})}var r=1,o="nr@id",i=t("gos");e.exports=n},{gos:"7eSDFh"}],id:[function(t,e){e.exports=t("XL7HBI")},{}],loader:[function(t,e){e.exports=t("G9z0Bl")},{}],G9z0Bl:[function(t,e){function n(){var t=p.info=NREUM.info;if(t&&t.agent&&t.licenseKey&&t.applicationID&&c&&c.body){p.proto="https"===d.split(":")[0]||t.sslForHttp?"https://":"http://",a("mark",["onload",i()]);var e=c.createElement("script");e.src=p.proto+t.agent,c.body.appendChild(e)}}function r(){"complete"===c.readyState&&o()}function o(){a("mark",["domContent",i()])}function i(){return(new Date).getTime()}var a=t("handle"),s=window,c=s.document,f="addEventListener",u="attachEvent",d=(""+location).split("?")[0],p=e.exports={offset:i(),origin:d,features:{}};c[f]?(c[f]("DOMContentLoaded",o,!1),s[f]("load",n,!1)):(c[u]("onreadystatechange",r),s[u]("onload",n)),a("mark",["firstbyte",i()])},{handle:"D5DuLP"}],20:[function(t,e){function n(t,e,n){e||(e=0),"undefined"==typeof n&&(n=t?t.length:0);for(var r=-1,o=n-e||0,i=Array(0>o?0:o);++r<o;)i[r]=t[e+r];return i}e.exports=n},{}],21:[function(t,e){function n(t){return!(t&&"function"==typeof t&&t.apply&&!t[i])}var r=t("ee"),o=t(1),i="nr@wrapper",a=Object.prototype.hasOwnProperty;e.exports=function(t){function e(t,e,r,a){function nrWrapper(){var n,i,s,f;try{i=this,n=o(arguments),s=r&&r(n,i)||{}}catch(d){u([d,"",[n,i,a],s])}c(e+"start",[n,i,a],s);try{return f=t.apply(i,n)}catch(p){throw c(e+"err",[n,i,p],s),p}finally{c(e+"end",[n,i,f],s)}}return n(t)?t:(e||(e=""),nrWrapper[i]=!0,f(t,nrWrapper),nrWrapper)}function s(t,r,o,i){o||(o="");var a,s,c,f="-"===o.charAt(0);for(c=0;c<r.length;c++)s=r[c],a=t[s],n(a)||(t[s]=e(a,f?s+o:o,i,s,t))}function c(e,n,r){try{t.emit(e,n,r)}catch(o){u([o,e,n,r])}}function f(t,e){if(Object.defineProperty&&Object.keys)try{var n=Object.keys(t);return n.forEach(function(n){Object.defineProperty(e,n,{get:function(){return t[n]},set:function(e){return t[n]=e,e}})}),e}catch(r){u([r])}for(var o in t)a.call(t,o)&&(e[o]=t[o]);return e}function u(e){try{t.emit("internal-error",e)}catch(n){}}return t||(t=r),e.inPlace=s,e.flag=i,e}},{1:20,ee:"QJf3ax"}]},{},["G9z0Bl",3,10,4]);
+ ;NREUM.info={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",licenseKey:"6e882eab2f",applicationID:"4126423",sa:1,agent:"js-agent.newrelic.com/nr-476.min.js"}
+ </script>
+ <script>
+ var slotMachine = (function () {
+ var _slots = {};
+ return {
+ add: function(name, slot, id) {
+ if (!_slots[name]) { _slots[name] = {} };
+ _slots[name].slot = slot;
+ _slots[name].id = id;
+ },
+ get: function(key) {
+ if (typeof key === 'string') {
+ return _slots[key];
+ }
+ else if (typeof key === 'object') {
+ for (var name in _slots) {
+ if (_slots.hasOwnProperty(name) && _slots[name].slot === key) {
+ return name;
+ }
+ }
+ }
+ },
+ getAll: function(device) {
+ return _slots;
+ },
+ onRenderEnd: function (event) {
+ var name = slotMachine.get(event.slot);
+ if (_slots[name]) {
+ _slots[name].rendered = true;
+ }
+ if ($) {
+ //$(window).trigger('adRendered', { name: name, slot: event.slot });
+ $('#' + _slots[name].id).trigger('rendered', { name: name, slot: event.slot });
+ }
+ },
+ slots: _slots
+ }
+ })();
+ var googletag = googletag || {};
+ googletag.cmd = googletag.cmd || [];
+ (function() {
+ var gads = document.createElement("script");
+ gads.async = true;
+ gads.type = "text/javascript";
+ var useSSL = "https:" == document.location.protocol;
+ gads.src = (useSSL ? "https:" : "http:") + "//www.googletagservices.com/tag/js/gpt.js";
+ var node =document.getElementsByTagName("script")[0];
+ node.parentNode.insertBefore(gads, node);
+ })();
+
+ googletag.cmd.push(function() {
+ googletag.pubads().disableInitialLoad();
+ googletag.pubads().addEventListener('slotRenderEnded', slotMachine.onRenderEnd);
+ googletag.enableServices();
+ });
+
+
+ var prebidEnabled = true;
+ </script>
+
+
+ <script>
+ var _sf_startpt=(new Date()).getTime();
+ </script>
+ <script src='https://www.google.com/recaptcha/api.js'></script>
+</head>
+<body class="with-hero ">
+
+<section class="container container--masthead">
+<div class="region region--full fixed">
+
+ <input type="checkbox" class="hidden toggle--menu" id="main-menu"/>
+ <header class="column column--full masthead full-width">
+ <label class="btn btn--menu" for="main-menu" tabindex="1" data-focused="0">
+ <i class="icon"></i>
+ </label>
+
+ <h1 class="logo">
+ <a href="//www.marketwatch.com/" data-track-code="MW_Masthead_Logo">
+ <svg focusable="false" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 697.5 99.8" style="enable-background:new 0 0 697.5 99.8;" xml:space="preserve" role="img" aria-labelledby="mw-site-logo">
+ <title id="mw-site-logo">MarketWatch site logo</title>
+ <style type="text/css">
+ .svg1{fill:#ffffff;}
+ .svg2{fill:#00AC4E;}
+ </style>
+ <g>
+ <g>
+ <path class="svg1" d="M168.9,41.8l-1.2,5.9h-0.3c-1.5-3.3-5.7-7.9-15-7.9c-15,0-30.3,11.6-33.7,29.9c-2.9,16,4.8,30.1,22.6,30.1
+ c6.5,0,14-2.5,17.9-8h0.3l-1.1,6H175l10.4-56H168.9z M163.5,69.7c-1.1,5.5-6.3,14.4-16.7,14.4c-10.2,0-12.3-9-11.4-14.2
+ c1.2-6.4,6.9-14.4,16.6-14.4C161.5,55.6,164.7,63.1,163.5,69.7z"></path>
+ <path class="svg1" d="M194.8,41.8h15.6l-1.1,5.9h0.3c2-2.7,5.9-7.9,15.5-7.9l-3.1,17c-7.9,0.1-13.6,1.7-15.1,10.3l-5.7,30.7h-16.8
+ L194.8,41.8z"></path>
+ <polygon class="svg1" points="236.4,19.9 253.2,19.9 245.3,62.1 245.6,62.1 265,41.8 284.7,41.8 259.1,66.4 273.8,97.8 254.8,97.8
+ 244,70.8 243.7,70.8 238.8,97.8 221.9,97.8 "></polygon>
+ <path class="svg1" d="M311.6,39.8c-17,0-32.1,14.6-34.9,30.2c-3.1,16.6,8.1,29.7,24.2,29.7c5.7,0,11.6-1.7,16.8-5.1
+ c5.3-3.2,10.2-8,14-14.3h-17.1c-2.8,2.9-6,5.2-11.2,5.2c-6.5,0-11.4-3.9-11.1-10.6h42c0.5-1.3,0.8-2.3,1.2-4.4
+ C338.7,53.4,328.7,39.8,311.6,39.8z M294.6,63.6c1.3-3.3,5.9-9.6,14.6-9.6c8.7,0,10.8,6.3,10.8,9.6H294.6z"></path>
+ <polygon class="svg1" points="96.5,19.9 66.9,64.3 66.7,64.3 66.7,19.9 52.4,19.9 0,97.8 20.3,97.8 49.7,53.4 50,53.4 50,97.8
+ 64.4,97.8 93.8,53.4 94.1,53.4 94.1,97.8 110.9,97.8 110.9,19.9 "></polygon>
+ <path class="svg1" d="M378,41.8h-10.6l3.1-16.6h-14.7l-1.2,6.4c-1.3,7.3-5.9,9.5-12,10.2h-0.1L340,54.5h8.3l-8,43.3H357l8-43.3
+ h10.7L378,41.8z"></path>
+ </g>
+ <g>
+ <path class="svg2" d="M637.2,76.6c-5.5,12.7-18.6,23.1-33.7,23.1c-17,0-27.5-13.4-24.5-30.1c3.1-16.4,18.3-29.8,35.1-29.8
+ c14.8,0,25,9.9,25.3,23.6h-17c-1.1-3.9-3.6-7.9-10.7-7.9c-7.9-0.4-14.4,6.1-15.9,14.2c-1.5,8.2,2.7,14.3,10.7,14.3
+ c6.9,0,11.1-4,13.5-7.5H637.2z M498.4,0l-32.6,19.9h9.2l-29.5,44.4h-0.3V19.9h-14.4l-29.5,44.4H401V19.9h-16.8v77.9h14.6
+ l29.5-44.4h0.3v44.4h14.4l52.2-77.9h8.3L498.4,0z M530.2,97.8h-16.6l1.1-6h-0.3c-3.9,5.5-11.4,8-17.9,8
+ c-17.8,0-25.5-14-22.6-30.1c3.3-18.3,18.7-29.9,33.7-29.9c9.2,0,13.5,4.5,15,7.9h0.3l1.2-5.9h16.6L530.2,97.8z M502,84.2
+ c10.4,0,15.6-9,16.7-14.4c1.2-6.7-2-14.2-11.5-14.2c-9.6,0-15.4,8-16.6,14.4C489.7,75.2,491.8,84.2,502,84.2L502,84.2z
+ M582.5,41.8H572l3.1-16.6h-14.7l-1.2,6.4c-1.3,7.3-5.9,9.5-12,10.2H547l-2.4,12.7h8.3l-8,43.3h16.7l8-43.3h10.7L582.5,41.8z
+ M653,19.9h16.7l-5.1,27.8h0.3c3.6-5.2,8.4-7.9,15.8-7.9c5.3,0,11.4,2,14.2,6.3c3.6,5.5,3.2,10.4,1.3,20.4l-5.7,31.3h-16.7
+ l5.6-30.5c0.5-2.7,2.1-11.8-6.8-11.8c-9.4,0-11,8.4-11.5,11.2l-5.7,31h-16.7L653,19.9z"></path>
+ </g>
+ </g>
+ </svg>
+ </a>
+ </h1>
+
+ <ul class="list list--menu">
+ <li class="menu__item" data-section="Latest" data-click-through="top_nav"><a class="link" href="https://www.marketwatch.com/latest-news">Latest</a></li>
+ <li class="menu__item" data-section="Watchlist" data-click-through="top_nav"><a class="link" href="https://www.marketwatch.com/watchlist">Watchlist</a></li>
+ <li class="menu__item" data-section="Markets" data-click-through="top_nav"><a class="link" href="https://www.marketwatch.com/markets">Markets</a></li>
+ <li class="menu__item" data-section="Investing" data-click-through="top_nav"><a class="link" href="https://www.marketwatch.com/investing">Investing</a></li>
+ <li class="menu__item" data-section="Barron&#39;s" data-click-through="top_nav"><a class="link" href="https://www.marketwatch.com/investing/barrons">Barron&#39;s</a></li>
+ <li class="menu__item" data-section="Economy" data-click-through="top_nav"><a class="link" href="https://www.marketwatch.com/economy-politics">Economy</a></li>
+ <li class="menu__item" data-section="Personal Finance" data-click-through="top_nav"><a class="link" href="https://www.marketwatch.com/personal-finance">Personal Finance</a></li>
+ <li class="menu__item" data-section="Retirement" data-click-through="top_nav"><a class="link" href="https://www.marketwatch.com/retirement">Retirement</a></li>
+ <li class="menu__item" data-section="Video" data-click-through="top_nav"><a class="link" href="https://www.marketwatch.com/video">Video</a></li>
+ <li class="menu__item" data-section="Opinion" data-click-through="top_nav"><a class="link" href="https://www.marketwatch.com/newsroom/opinion">Opinion</a></li>
+ </ul>
+
+ <div class="profile">
+ <div class="account-links">
+ <a class="btn btn--text btn--signup" class="user" data-identity="register">
+ <span class="label">Sign Up</span>
+ </a>
+ <span class="divider">&bull;</span>
+ <a class="btn btn--text btn--login" class="user" data-identity="login">
+ <span class="label">Log In</span>
+ </a>
+ </div>
+ </div>
+
+ <button class="btn btn--transparent btn--search" id="site-search-button">
+ <i class="icon icon--search"></i>
+ <span class="screen-reader-text">Search MarketWatch</span>
+ </button>
+
+ </header>
+
+ <div class="column column--full bulletins full-width">
+ <div class="element element--bulletins">
+ </div>
+ <div class="bulletin__ad">
+ <div id="ad-bulletin" aria-hidden="true" class="ad " data-name="Bulletin" data-conditions="1" data-site="marketwatch.com" data-zone="bulletin"
+ data-size="140x31" data-phone="0" data-portrait="" data-landscape="" data-desktop="" data-targeting="alert=volatility025,red;">
+
+ </div>
+ </div>
+</div>
+ <nav class="nav">
+ <div class="nav__content">
+
+ <div class="element element--ad">
+ <div is="mw-ad"> <div id="ad-nav-sponsor" aria-hidden="true" class="ad " data-name="Nav Sponsor" data-conditions="1" data-site="marketwatch.com" data-zone="nav_front"
+ data-size="280x40" data-phone="" data-portrait="" data-landscape="" data-desktop="" data-targeting="alert=volatility025,red;">
+
+ </div>
+</div>
+ </div>
+
+ <ul class="list list--navigation">
+ <li class="list__item " data-click-through="side_nav">
+ <a class="link " href="https://www.marketwatch.com">Home</a>
+ </li>
+ <li class="list__item " data-click-through="side_nav">
+ <a class="link " href="https://www.marketwatch.com/latest-news">Latest News</a>
+ </li>
+ <li class="list__item " data-click-through="side_nav">
+ <a class="link " href="https://www.marketwatch.com/watchlist">Watchlist</a>
+ </li>
+ <li class="list__item has-children" data-click-through="side_nav">
+ <a class="link " href="https://www.marketwatch.com/markets">Markets</a>
+ <i class="icon icon--caret-right"></i>
+ <div class="subNav">
+ <ul class="list list--subsections">
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/markets/us">U.S. Markets</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/markets/canada">Canada</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/markets/europe-middle-east">Europe &amp; Middle East</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/markets/asia">Asia</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/markets/emerging-markets">Emerging Markets</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/markets/latin-america">Latin America</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/tools/marketsummary">Market Data</a>
+ </li>
+ </ul>
+ </div>
+ </li>
+ <li class="list__item has-children" data-click-through="side_nav">
+ <a class="link " href="https://www.marketwatch.com/investing">Investing</a>
+ <i class="icon icon--caret-right"></i>
+ <div class="subNav">
+ <ul class="list list--subsections">
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/investing/barrons">Barron&#39;s</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/investing/stocks">Stocks</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/investing/ipo">IPOs</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/investing/mutual-funds">Mutual Funds</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/investing/etf">ETFs</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/optionscenter">Options</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/investing/bonds">Bonds</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/investing/commodities">Commodities</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/investing/currencies">Currencies</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/investing/cryptocurrency">Cryptocurrencies</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/investing/futures">Futures</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/investing/financial-adviser-center">Financial Adviser Center</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/column/cannabis-watch">Cannabis</a>
+ </li>
+ </ul>
+ </div>
+ </li>
+ <li class="list__item " data-click-through="side_nav">
+ <a class="link " href="https://www.marketwatch.com/investing/barrons">Barron&#39;s</a>
+ </li>
+ <li class="list__item has-children" data-click-through="side_nav">
+ <a class="link " href="https://www.marketwatch.com/economy-politics">Economy &amp; Politics</a>
+ <i class="icon icon--caret-right"></i>
+ <div class="subNav">
+ <ul class="list list--subsections">
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/column/capitol-report">Capitol Report</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/column/trump-today">Trump Today</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/economy-politics/election-2020">Election 2020</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/column/the-fed">The Federal Reserve</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/column/economic-report">Economic Report</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/author/rex-nutting">Rex Nutting</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/economy-politics/brexit">Brexit</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/economy-politics/calendars/economic">U.S. Economic Calendar</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/story/should-i-itemize-or-take-the-standard-tax-deduction-a-calculator-to-help-decide-2019-02-12">Tax Withholding Calculator</a>
+ </li>
+ </ul>
+ </div>
+ </li>
+ <li class="list__item has-children" data-click-through="side_nav">
+ <a class="link " href="https://www.marketwatch.com/personal-finance">Personal Finance</a>
+ <i class="icon icon--caret-right"></i>
+ <div class="subNav">
+ <ul class="list list--subsections">
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/column/the-moneyist">The Moneyist</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/personal-finance/spending-saving">Spending &amp; Saving</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/retirement">Retirement</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/personal-finance/taxes">Taxes</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/personal-finance/credit-cards">Credit Cards</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/personal-finance/careers">Careers</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/personal-finance/travel">Travel</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/real-estate">Real Estate</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/personal-finance/family-finance">Family Finance</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/column/love-and-money">Love &amp; Money</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/personal-finance/moneyish">Moneyish</a>
+ </li>
+ </ul>
+ </div>
+ </li>
+ <li class="list__item has-children" data-click-through="side_nav">
+ <a class="link " href="https://www.marketwatch.com/retirement">Retirement</a>
+ <i class="icon icon--caret-right"></i>
+ <div class="subNav">
+ <ul class="list list--subsections">
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/retirement/best-new-ideas-in-retirement">Best New Ideas in Retirement</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/retirement/estate-planning">Estate Planning</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/retirement/fire">FIRE</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/retirement/taxes">Taxes</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/retirement/social-security">Social Security</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/retirement/real-estate">Real Estate</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/calculator/retirement/retirement-planning-calculator">Retirement Planner</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/graphics/best-place-to-retire/">Where Should I Retire?</a>
+ </li>
+ </ul>
+ </div>
+ </li>
+ <li class="list__item " data-click-through="side_nav">
+ <a class="link " href="https://www.marketwatch.com/game">Virtual Stock Exchange</a>
+ </li>
+ <li class="list__item has-children" data-click-through="side_nav">
+ <a class="link " href="https://www.marketwatch.com/video">Video</a>
+ <i class="icon icon--caret-right"></i>
+ <div class="subNav">
+ <ul class="list list--subsections">
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/video/sectorwatch">SectorWatch</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/video/the-moneyist">The Moneyist</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/video/getting-to-work-with">Getting to Work With</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/video/love-money">Love &amp; Money</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/video/explainomics">Explainomics</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/video/good-company">Good Company</a>
+ </li>
+ </ul>
+ </div>
+ </li>
+ <li class="list__item " data-click-through="side_nav">
+ <a class="link " href="https://www.marketwatch.com/newsroom/opinion">Opinion</a>
+ </li>
+ <li class="list__item " data-click-through="side_nav">
+ <a class="link " href="https://www.marketwatch.com/newsletters">Newsletter Center</a>
+ </li>
+ <li class="list__item has-children" data-click-through="side_nav">
+ <a class="link " href="https://www.marketwatch.com/premium-newsletters">Premium Newsletters</a>
+ <i class="icon icon--caret-right"></i>
+ <div class="subNav">
+ <ul class="list list--subsections">
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/premium-newsletters/archive/retirement-weekly">Retirement Weekly</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/premium-newsletters/archive/technical-indicator">The Technical Indicator</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/premium-newsletters/archive/revolution-investing">Revolution Investing</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/premium-newsletters/archive/marketwatch-options-trader">Options Trader</a>
+ </li>
+ </ul>
+ </div>
+ </li>
+ <li class="list__item has-children" data-click-through="side_nav">
+ <a class="link " href="https://www.marketwatch.com/investing/research-tools">Research &amp; Tools</a>
+ <i class="icon icon--caret-right"></i>
+ <div class="subNav">
+ <ul class="list list--subsections">
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/watchlist">Watchlist</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/tools/stockresearch/screener/">Stock Screener</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/tools/earningscalendar">Earnings Calendar</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/tools/screener">Market Screener</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/tools/ipo-calendar">IPO Calendar</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/tools/stockresearch/screener/premarket">Premarket Screener</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/optionscenter/calendar">Options Calendar</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/tools/screener/after-hours">After Hours Screener</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/investing/currencies/tools">Currency Tools</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/tools/mutual-fund/screener">Mutual Fund Screener</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/tools/stockresearch/updown/">Upgrades &amp; Downgrades</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/tools/mutual-fund/compare">Mutual Fund Comparison</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/tools/partner/certificate-deposit">CDs</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/tools/partner/savings-accounts">Savings Accounts</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/tools/partner/mortgage-rates">Mortgage Rates</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/graphics/best-place-to-retire/">Where Should I Retire?</a>
+ </li>
+ <li class="list__item">
+ <a class="link" href="https://www.marketwatch.com/calculator/retirement/retirement-planning-calculator">Retirement Planner</a>
+ </li>
+ </ul>
+ </div>
+ </li>
+ </ul>
+
+ <div class="group group--buttons cover">
+ <a class="btn btn--transparent" href="" data-identity="register"><span class="label">Sign Up</span></a>
+ <a class="btn btn--primary" href="" data-identity="login"><span class="label">Log In</span></a>
+ </div>
+
+ <ul class="list list--profile">
+ <li class="list__item" data-click-through="side_nav"><a class="link" href="//www.marketwatch.com/my">Profile Settings</a></li>
+ <li class="list__item" data-click-through="side_nav"><a class="link" href="//www.marketwatch.com/watchlist">Watchlist</a></li>
+ <li class="list__item" data-click-through="side_nav"><a class="link" href="//www.marketwatch.com/tools/alerts/myalertsummary.asp">Email &amp; Alerts</a></li>
+ <li class="list__item" data-click-through="side_nav"><a class="link" href="//www.marketwatch.com/game">Games</a></li>
+
+ </ul>
+ </div>
+ </nav>
+</div>
+
+<div id="share-tools-fixed">
+ <div id="share-tools-content"></div>
+</div>
+ <div class="container--advertisement full-width" aria-hidden="true">
+ <div id="ad-banner" aria-hidden="true" class="ad " data-name="Banner" data-conditions="0" data-site="marketwatch.com" data-zone="economy_ecorpt"
+ data-size="728x90,970x66,970x90,970x250" data-phone="" data-portrait="" data-landscape="" data-desktop="" data-targeting="alert=volatility025,red;">
+
+ </div>
+ </div>
+</section>
+<div id="non-chrome">
+ <div id="content-cutout">
+
+ <div id="newWatchlistBanner" class="element element--message">
+ <i class="btn btn--icon j-close" title="Click to hide this message">&times;</i>
+ <div class="message__text">
+ <h2 class="primary">A New Watchlist</h2>
+ <small class="secondary">
+ <span class="text">We&apos;ve updated Watchlist! The changes include a new, responsive design featuring extended-hours data and more news. <a class="link" href="https://www.marketwatch.com/graphics/watchlist/" target="_blank">Learn More</a></span>
+ </small>
+ </div>
+ </div>
+ <script type="text/javascript">
+ (function () {
+ var divBanner, btnClose;
+
+ function fnCloseClick(e) {
+ e.preventDefault();
+ var expireDate = new Date(Date.now() + (30 * 24 * 60 * 60 * 1000)).toUTCString(); // Expire in 30 days
+ document.cookie = 'hideNewWatchlistBanner=true;domain=.marketwatch.com;path=/;expires=' + expireDate;
+
+ if (btnClose) {
+ btnClose.removeEventListener('click', fnCloseClick);
+ }
+
+ if (divBanner) {
+ divBanner.parentNode.removeChild(divBanner);
+ }
+ }
+
+ divBanner = document.getElementById("newWatchlistBanner");
+ if (divBanner) {
+ btnClose = divBanner.querySelector('i.j-close');
+ if (btnClose) {
+ btnClose.addEventListener('click', fnCloseClick);
+ }
+ }
+ })();
+ </script>
+ </div>
+
+ <main id="main-hole" role="main">
+ <div class="lame-content-wrapper">
+
+ <div id="above">
+ <div class="breadcrumb-container">
+ <ol vocab="http://schema.org/" typeof="BreadcrumbList" class="nav--breadcrumb ">
+ <li property="itemListElement" typeof="ListItem" class="fa fa-angle-right breadcrumb_item">
+ <a property="item" typeof="WebPage" href="//www.marketwatch.com/">
+ <span property="name">Home</span>
+ </a>
+ <meta property="position" content="1">
+ </li>
+ <li property="itemListElement" typeof="ListItem" class="fa fa-angle-right breadcrumb_item">
+ <h2>
+ <a property="item" typeof="WebPage" href="//www.marketwatch.com/economy-politics">
+ <span property="name">Economy &amp; Politics</span>
+ </a>
+ </h2>
+ <meta property="position" content="1">
+ </li>
+ <li property="itemListElement" typeof="ListItem" class="fa fa-angle-right breadcrumb_item is_column">
+ <h2>
+ <a property="item" typeof="WebPage" href="//www.marketwatch.com/topics/columns/economic-report">
+ <span property="name">Economic Report</span>
+ </a>
+ </h2>
+ </li>
+</ol>
+ <a id="column-alerts" href="//www.marketwatch.com/tools/alerts/newsColumn.asp?selectedType=3&amp;chkProduct2=0&amp;Column=Economic%20Report">Get email alerts</a>
+ </div>
+
+ <div class="article-headline-wrapper">
+ <h1 id="article-headline" itemprop="headline">
+ Home prices are still on fire, Case-Shiller data show
+ </h1>
+ </div>
+ </div>
+
+ <div id="brass-rail">
+ <div id="ad-display-ad" aria-hidden="true" class="ad module sticky inactive " data-name="Display Ad" data-conditions="2" data-sticky-lower-bound-id="brass-rail" data-scroll-padding="500" data-refresh="20000" data-refresh-once="true" data-site="marketwatch.com" data-zone="economy_ecorpt"
+ data-size="300x250,300x600,300x1050" data-phone="" data-portrait="300x250" data-landscape="" data-desktop="" data-targeting="alert=volatility025,red;">
+
+ </div>
+ </div>
+
+ <div id="topper">
+<div id="author-bylines" class="byline">
+ By
+
+ <a rel="author" href="https://www.marketwatch.com/topics/journalists/andrea-riquier">Andrea Riquier</a>
+</div>
+
+ <p id="published-timestamp" class="timestamp">Published: <span>Mar 27, 2018 9:00 a.m. ET</span></p>
+
+<div id="share-bar" class="shareable" data-share-modprefix="mw_share_" data-share-text="Home prices are still on fire, Case-Shiller data show" data-share-url="https://www.marketwatch.com/story/home-prices-are-still-on-fire-case-shiller-data-show-2018-03-27">
+ <div class="total-shares">Share</div>
+ <div class="share-icons">
+ <div class="share-buttons-wrapper">
+ <button class="social-button facebook trackable" data-track-click="share_storytools_facebook">
+ <span class="icon"><svg focusable="false" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="0 0 330.3 330.3" enable-background="new 0 0 330.3 330.3" xml:space="preserve" role="img" aria-labelledby="icon-facebook">
+ <title id="icon-facebook">facebook icon</title>
+<path d="M0,0v330.3h330.3V0H0z M284.8,72.1h-30.2c-10.6,0-14.4,6-14.4,14.4v28.7h44.6l-5.3,50.6h-39.3V307h-59.7V165.7h-30.2v-50.6
+ h30.2V86.5c0-34,11.3-61.2,59.7-62.7h44.6V72.1z"/>
+</svg>
+</span>
+ <span class="count"></span>
+ </button>
+ <button class="social-button twitter trackable" data-track-click="share_storytools_twitter">
+ <span class="icon"><svg focusable="false" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="0 0 273.4 222.2" enable-background="new 0 0 273.4 222.2" xml:space="preserve" role="img" aria-labelledby="icon-twitter">
+ <title id="icon-twitter">Twitter icon</title>
+<path fill="#FFFFFF" d="M273.4,26.3c-10.1,4.5-20.9,7.5-32.2,8.8c11.6-6.9,20.5-17.9,24.7-31C255,10.5,243,15.2,230.2,17.7
+ C220,6.8,205.4,0,189.3,0c-31,0-56.1,25.1-56.1,56.1c0,4.4,0.5,8.7,1.5,12.8C88,66.5,46.7,44.2,19,10.3c-4.8,8.3-7.6,17.9-7.6,28.2
+ c0,19.5,9.9,36.6,25,46.7c-9.2-0.3-17.8-2.8-25.4-7c0,0.2,0,0.5,0,0.7c0,27.2,19.3,49.8,45,55c-4.7,1.3-9.7,2-14.8,2
+ c-3.6,0-7.1-0.4-10.6-1c7.1,22.3,27.9,38.5,52.4,39c-19.2,15-43.4,24-69.7,24c-4.5,0-9-0.3-13.4-0.8c24.8,15.9,54.3,25.2,86,25.2
+ c103.2,0,159.6-85.5,159.6-159.6c0-2.4-0.1-4.9-0.2-7.3C256.4,47.4,265.9,37.5,273.4,26.3z"/>
+</svg>
+</span>
+ <span class="count"></span>
+ </button>
+ <button class="social-button linkedin trackable" data-track-click="share_storytools_linkedin">
+ <span class="icon"><svg focusable="false" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="0 0 331.6 333.7" enable-background="new 0 0 331.6 333.7" xml:space="preserve" role="img" aria-labelledby="icon-linkedin">
+ <title id="icon-linkedin">Linkedin icon</title>
+<path d="M178.3,150.5V150c-0.1,0.2-0.2,0.3-0.3,0.5H178.3z M307.1,0H24.5C11,0,0,10.7,0,23.9v285.9c0,13.2,11,23.9,24.5,23.9h282.6
+ c13.5,0,24.5-10.7,24.5-23.9V23.9C331.6,10.7,320.6,0,307.1,0z M100.5,279.3H50.4V128.7h50.1V279.3z M75.5,108.1h-0.3
+ c-16.8,0-27.7-11.6-27.7-26c0-14.8,11.2-26,28.3-26c17.1,0,27.7,11.3,28,26C103.8,96.5,92.9,108.1,75.5,108.1z M281.1,279.3H231
+ v-80.6c0-20.2-7.2-34.1-25.4-34.1c-13.8,0-22.1,9.3-25.7,18.3c-1.3,3.2-1.7,7.7-1.7,12.2v84.1h-50.1c0,0,0.7-136.5,0-150.7h50.1V150
+ c6.6-10.3,18.5-24.9,45.1-24.9c33,0,57.7,21.5,57.7,67.8V279.3z"/>
+</svg>
+</span>
+ <span class="count"></span>
+ </button>
+ <button class="social-button flipboard trackable" data-track-click="share_storytools_flipboard">
+ <span class="icon"><svg focusable="false" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="-824 416 250 250" style="enable-background:new -824 416 250 250;" xml:space="preserve" role="img" aria-labelledby="icon-flipboard">
+ <title id="icon-flipboard">Flipboard icon</title>
+<style type="text/css">
+ .st0{fill:transparent;}
+ .st1{fill:#FFFFFF;}
+ .st2{fill:transparent;enable-background:new ;}
+ .st3{fill:transparent;enable-background:new ;}
+</style>
+<rect x="-824" y="416" class="st0" width="250" height="250"/>
+<g>
+ <path class="st1" d="M-824,416v250h250V416H-824z M-624,516h-50v50h-50v50h-50v-50.5v-50V466h50.5h50h49.5V516z"/>
+ <polygon class="st2" points="-673.5,466 -724,466 -724,516 -673.5,516 -624,516 -624,466 "/>
+ <rect x="-724" y="516" class="st3" width="50" height="50"/>
+</g>
+</svg>
+</span>
+ </button>
+ <div class="social-button email trackable">
+ <a class="shareicon" href="/story/home-prices-are-still-on-fire-case-shiller-data-show-2018-03-27/email" title="Email this story">
+ <span class="icon"><svg focusable="false" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="0 0 26.296 16.507" enable-background="new 0 0 26.296 16.507" xml:space="preserve" role="img" aria-labelledby="icon-email">
+ <title id="icon-email">Email icon</title>
+<path fill="#FFFFFF" d="M26.102,0H0.335L13.15,10.961L26.102,0z M13.145,12.941L0,1.697v14.81h26.296V1.81L13.145,12.941z"/>
+</svg>
+</span>
+ </a>
+ </div>
+ </div>
+ </div>
+ <div class="comment-icons">
+ <button class="social-button comment trackable">
+ <span class="icon"><svg focusable="false" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="16.87px" height="16.94px" viewBox="0 0 16.87 16.94" enable-background="new 0 0 16.87 16.94" xml:space="preserve" role="img" aria-labelledby="icon-comment">
+ <title id="icon-comment">Comment icon</title>
+<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M16.87,1.18v10.63c0,0.66-0.529,1.19-1.18,1.19H7.88L3.17,16.94
+ L3.82,13H1.18C0.53,13,0,12.47,0,11.81V1.18C0,0.53,0.53,0,1.18,0h14.51C16.34,0,16.87,0.53,16.87,1.18z"/>
+</svg>
+</span>
+ <span class="count spot-im-replies-count" data-post-id="0BFF0DB6-2ED7-11E8-81FB-B7175F43D5CD"></span>
+ </button>
+ </div>
+</div>
+
+<div id="article-tools">
+ <button class="tool text-resize">
+ <svg focusable="false" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="0 0 34.969 20.191" enable-background="new 0 0 34.969 20.191" xml:space="preserve" role="img" aria-labelledby="text-resize">
+ <title id="text-resize">Text Resize</title>
+ <g>
+ <g>
+ <path fill="#CED5D4" d="M6.338,0L0,19.919h5.767l0.983-3.719h6.311l0.956,3.719h5.74L13.34,0H6.338z M7.839,11.805
+ C8.645,8.693,9.165,6.608,9.4,5.549C9.635,4.491,9.792,3.731,9.872,3.27c0.088,0.498,0.272,1.321,0.551,2.47
+ c0.279,1.148,0.517,2.085,0.711,2.809l0.837,3.257H7.839z M33.381,5.74c-1.059-0.977-2.553-1.466-4.484-1.466
+ c-2.675,0-4.889,0.461-6.643,1.384l1.502,3.501c1.691-0.76,3.086-1.14,4.185-1.14c1.223,0,1.833,0.633,1.833,1.9v0.217
+ l-2.511,0.082c-2.117,0.1-3.733,0.549-4.849,1.351c-1.116,0.801-1.675,2.02-1.675,3.656c0,1.574,0.407,2.795,1.223,3.664
+ c0.814,0.868,1.931,1.303,3.348,1.303c1.151,0,2.091-0.163,2.817-0.488c0.726-0.326,1.438-0.932,2.139-1.818h0.106l0.996,2.035
+ h3.601V9.837C34.969,8.083,34.439,6.716,33.381,5.74z M29.801,14.248c0,0.651-0.225,1.18-0.671,1.588
+ c-0.448,0.406-0.985,0.609-1.614,0.609c-0.983,0-1.475-0.469-1.475-1.41c0-1.222,0.854-1.863,2.563-1.928l1.196-0.054V14.248z"/>
+ </g>
+ </g>
+ </svg>
+ </button>
+ <a href="/story/home-prices-are-still-on-fire-case-shiller-data-show-2018-03-27/print" class="tool print">
+ <svg focusable="false" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="0 0 26.311 25.725" enable-background="new 0 0 26.311 25.725" xml:space="preserve" role="img" aria-labelledby="icon-print">
+ <title id="icon-print">Print icon</title>
+ <path fill="#D2D2D2" d="M20.545,0H5.766v4.243h14.779V0z M25.029,5.772H1.281C0.574,5.772,0,6.346,0,7.053v9.424h3.859v-5.721
+ h18.592v5.721h3.859V7.053C26.311,6.346,25.738,5.772,25.029,5.772z M23.529,8.913c-0.566,0-1.025-0.459-1.025-1.025
+ s0.459-1.024,1.025-1.024c0.564,0,1.023,0.458,1.023,1.024S24.094,8.913,23.529,8.913z M19.453,24.217h-6.186
+ c-2.24,0-1.16-5.31-1.16-5.31s-5.18,1.258-5.246-1.116v-4.875H5.354v6.867l0.441,0.442l5.5,5.5h9.666V12.916h-1.508V24.217z"/>
+ </svg>
+ </a>
+</div>
+
+ <h2 id="article-subhead" itemprop="alternativeHeadline">
+
+
+<p>After a lull, San Francisco is back to being one of the top three hottest markets</p>
+ </h2>
+
+ </div>
+
+ <div id="content-hole">
+
+ <script type="text/javascript">
+ window.videoDomain = 'https://video-api.wsj.com';
+ </script>
+
+
+ <article id="article" class="with-hero " itemscope itemtype="http://schema.org/NewsArticle" itemref="article-headline article-subhead">
+ <meta id="article-section" itemprop="articleSection" content="">
+ <meta id="thumbnail-url" itemprop="thumbnailUrl" content="">
+ <meta id="date-created" itemprop="dateCreated" content="Mar 27, 2018 9:00 a.m. ET">
+ <meta id="date-published" itemprop="datePublished" content="Mar 27, 2018 9:00 a.m. ET">
+
+ <figure class="hero-figure has-caption">
+ <div class="hero-image-wrap">
+ <img class="article-image ZH" alt="" src="https://ei.marketwatch.com/Multimedia/2018/03/23/Photos/ZH/MW-GG178_realty_20180323163027_ZH.jpg?uuid=0597cc9a-2ed9-11e8-a272-ac162d7bc1f7" />
+ <cite>Bloomberg News/Landov</cite>
+ </div>
+ <figcaption>A home for sale in Seattle, Wash., one of the nation’s hottest housing markets. </figcaption>
+ </figure>
+
+ <div id="article-meat">
+ <div id="article-left-rail" class="left-rail">
+ <div id="author-dreds" class="first-author-has-dred">
+ <div class="author-dred">
+ <a class="dred" href="https://www.marketwatch.com/topics/journalists/andrea-riquier">
+ <img class="author-image" alt="Author photo" src="https://i.mktw.net/_newsimages/2014_dreds/andreariquiernew_100.png">
+ </a>
+ <p>By</p>
+ <a rel="author" title="Andrea Riquier" class="author-link" href="https://www.marketwatch.com/topics/journalists/andrea-riquier">
+ <h3 class="module-header">
+ Andrea<b>Riquier</b>
+ </h3>
+ </a>
+
+ <div class="social">
+ <a class="social-link twitter fa fa-twitter" href="http://twitter.com/ARiquier" target="_blank"></a>
+ <a class="social-link email fa fa-envelope" href="mailto:[email protected]"></a>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div id="article-body" itemprop="articleBody">
+
+
+
+
+
+
+
+
+
+ <p> <strong>The numbers:</strong> The S&amp;P/Case-Shiller national index rose a seasonally adjusted 0.5% in the three-month period ending in January, and was up 6.2% compared to a year before. The 20-city index rose a seasonally adjusted 0.8% for the month, and 6.4% for the year.</p> <p> <strong>What happened: </strong>Prices are still on fire. And the West is still the best: Seattle, Las Vegas and San Francisco all notched double-digit yearly price gains. Only one city, Washington, D.C., had a negative monthly reading. </p> <p>As David Blitzer, chairman of the index committee at S&amp;P Dow Jones Indices, noted in a release, the price gains are all about demand and lack of supply. </p> <p>“The current months-supply — how many months at the current sales rate would be needed to absorb homes currently for sale — is 3.4; the average since 2000 is 6.0 months, and the high in July 2010 was 11.9,” Blitzer wrote. “Currently, the homeowner vacancy rate is 1.6% compared to an average of 2.1% since 2000; it peaked in 2010 at 2.7%. Despite limited supplies, rising prices and higher mortgage rates, affordability is not a concern.”</p> <p>Relatively affordable housing is cold comfort to many would-be home buyers who simply can’t find anything to buy. </p> <p> <strong>Read:</strong> <a href="/story/two-thirds-of-house-hunters-have-been-searching-for-3-months-or-more-2018-02-22" class="icon none" >Most house hunters have been searching for 3 months or more</a> </p> <p> <strong>Big picture:</strong> Economists had forecast a 0.7% monthly increase, and a 6.2% 12-month increase, for the 20-city index. <a href="/story/why-its-so-hard-to-forecast-home-prices-for-2018-and-why-that-should-worry-you-2017-12-19" class="icon none" >As MarketWatch has reported</a>, most housing analysts have argued that the ongoing price gains in housing can’t last — and yet they have so far. </p> <table> <tbody> <tr class="data"> <td id="" align="left" valign="top" colspan=""> <strong>Metro</strong> </td> <td id="" align="left" valign="top" colspan=""> <strong>Monthly change</strong> </td> <td id="" align="left" valign="top" colspan=""> <strong>12-month change</strong> </td> </tr> <tr class="data even"> <td id="" align="left" valign="top" colspan="">Atlanta</td> <td id="" align="left" valign="top" colspan="">0.7%</td> <td id="" align="left" valign="top" colspan="">6.5%</td> </tr> <tr class="data"> <td id="" align="left" valign="top" colspan="">Boston</td> <td id="" align="left" valign="top" colspan="">0.2%</td> <td id="" align="left" valign="top" colspan="">5.3%</td> </tr> <tr class="data even"> <td id="" align="left" valign="top" colspan="">Charlotte</td> <td id="" align="left" valign="top" colspan="">0.4%</td> <td id="" align="left" valign="top" colspan="">6.0%</td> </tr> <tr class="data"> <td id="" align="left" valign="top" colspan="">Chicago</td> <td id="" align="left" valign="top" colspan="">0.0%</td> <td id="" align="left" valign="top" colspan="">2.4%</td> </tr> <tr class="data even"> <td id="" align="left" valign="top" colspan="">Cleveland</td> <td id="" align="left" valign="top" colspan="">0.0%</td> <td id="" align="left" valign="top" colspan="">3.5%</td> </tr> <tr class="data"> <td id="" align="left" valign="top" colspan="">Dallas</td> <td id="" align="left" valign="top" colspan="">0.2%</td> <td id="" align="left" valign="top" colspan="">6.9%</td> </tr> <tr class="data even"> <td id="" align="left" valign="top" colspan="">Denver</td> <td id="" align="left" valign="top" colspan="">0.7%</td> <td id="" align="left" valign="top" colspan="">7.6%</td> </tr> <tr class="data"> <td id="" align="left" valign="top" colspan="">Detroit</td> <td id="" align="left" valign="top" colspan="">0.1%</td> <td id="" align="left" valign="top" colspan="">7.6%</td> </tr> <tr class="data even"> <td id="" align="left" valign="top" colspan="">Las Vegas</td> <td id="" align="left" valign="top" colspan="">0.6%</td> <td id="" align="left" valign="top" colspan="">11.1%</td> </tr> <tr class="data"> <td id="" align="left" valign="top" colspan="">Los Angeles</td> <td id="" align="left" valign="top" colspan="">0.6%</td> <td id="" align="left" valign="top" colspan="">7.6%</td> </tr> <tr class="data even"> <td id="" align="left" valign="top" colspan="">Miami</td> <td id="" align="left" valign="top" colspan="">0.6%</td> <td id="" align="left" valign="top" colspan="">4.0%</td> </tr> <tr class="data"> <td id="" align="left" valign="top" colspan="">Minneapolis</td> <td id="" align="left" valign="top" colspan="">0.1%</td> <td id="" align="left" valign="top" colspan="">5.9%</td> </tr> <tr class="data even"> <td id="" align="left" valign="top" colspan="">New York</td> <td id="" align="left" valign="top" colspan="">0.0%</td> <td id="" align="left" valign="top" colspan="">5.2%</td> </tr> <tr class="data"> <td id="" align="left" valign="top" colspan="">Phoenix</td> <td id="" align="left" valign="top" colspan="">0.3%</td> <td id="" align="left" valign="top" colspan="">5.9%</td> </tr> <tr class="data even"> <td id="" align="left" valign="top" colspan="">Portland</td> <td id="" align="left" valign="top" colspan="">0.4%</td> <td id="" align="left" valign="top" colspan="">7.1%</td> </tr> <tr class="data"> <td id="" align="left" valign="top" colspan="">San Diego</td> <td id="" align="left" valign="top" colspan="">0.8%</td> <td id="" align="left" valign="top" colspan="">7.4%</td> </tr> <tr class="data even"> <td id="" align="left" valign="top" colspan="">San Francisco</td> <td id="" align="left" valign="top" colspan="">0.4%</td> <td id="" align="left" valign="top" colspan="">10.2%</td> </tr> <tr class="data"> <td id="" align="left" valign="top" colspan="">Seattle</td> <td id="" align="left" valign="top" colspan="">0.7%</td> <td id="" align="left" valign="top" colspan="">12.9%</td> </tr> <tr class="data even"> <td id="" align="left" valign="top" colspan="">Tampa</td> <td id="" align="left" valign="top" colspan="">0.4%</td> <td id="" align="left" valign="top" colspan="">6.7%</td> </tr> <tr class="data"> <td id="" align="left" valign="top" colspan="">Washington</td> <td id="" align="left" valign="top" colspan="">-0.4%</td> <td id="" align="left" valign="top" colspan="">2.4%</td> </tr> </tbody> </table> <p>Read: <a href="/story/mortgage-rates-edge-up-even-as-trade-war-worries-loom-ahead-2018-03-22" class="icon none" >Mortgage rates edge up even as trade war worries loom ahead</a></p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <div id="ad-nativo" aria-hidden="true" class="ad with-hero " data-name="Nativo" data-conditions="0" data-site="marketwatch.com" data-zone="economy_ecorpt"
+ data-size="1x2,fluid" data-phone="" data-portrait="" data-landscape="" data-desktop="" data-targeting="ntvPlacement=1072763;alert=volatility025,red;">
+
+ </div>
+ <div id="author-commentPromo">
+
+ <div id="author-bios" class="">
+ <div class="module author-bio with-image ">
+ <div class="stuff">
+ <img class="author-image" src="https://i.mktw.net/_newsimages/2014_dreds/andreariquiernew_480.png" alt="">
+ <div class="byline">
+ <h3 class="module-header">
+ Andrea
+ <b>Riquier</b>
+ </h3>
+ <div class="social">
+ <a class="social-link twitter fa fa-twitter" href="http://twitter.com/ARiquier" target="_blank"></a>
+ <a class="social-link email fa fa-envelope" href="mailto:[email protected]"></a>
+ </div>
+ </div>
+ </div>
+ <p class="bio">
+ Andrea Riquier reports on housing and banking from MarketWatch's New York newsroom. Follow her on Twitter @ARiquier.
+ </p>
+ </div>
+ </div>
+
+ <div class="module defaultPromo" id="comment-promo">
+ <h3 class="module-header">
+ We Want to
+ <b>Hear from You</b>
+ </h3>
+ <div>
+ <p>Join the conversation</p>
+ <button id="join-conversation" type="button">Comment</button>
+ </div>
+ </div>
+
+
+ </div>
+ <div id="myfinance-eoc">
+ </div>
+
+ <div class="related_topics">
+ <h4>Related Topics</h4>
+ <ul class="article__topics">
+ <li class="topic__item"><h3><a href="/topics/subjects/u-s-economy">U.S. Economy</a></h3></li>
+ <li class="topic__item"><h3><a href="/topics/subjects/federal-reserve">Federal Reserve</a></h3></li>
+ <li class="topic__item"><h3><a href="/economic-indicators-housing">Housing Indicators</a></h3></li>
+ <li class="topic__item"><h3><a href="/economic-indicators-jobs">Employment</a></h3></li>
+ <li class="topic__item"><h3><a href="/economic-indicators-inflation">Inflation</a></h3></li>
+ </ul>
+ </div>
+
+
+ </div>
+ </div>
+ </article>
+
+
+
+ </div>
+
+ <div id="right-rail">
+<div id="trading-center" class="module">
+ <h3 class="module-header">MarketWatch <b>Partner Center</b></h3>
+ <ul class="list list--broker" aria-hidden="true">
+ <li class="broker__item" aria-hidden="true">
+ <div id="ad-broker-button-1" aria-hidden="true" class="ad " data-name="Broker Button 1" data-conditions="1" data-refresh="420000" data-refresh-once="false" data-site="brokerbuttons.marketwatch.com" data-zone="economy_ecorpt"
+ data-size="120x60" data-phone="" data-portrait="" data-landscape="" data-desktop="" data-targeting="pos=1;tile=10;alert=volatility025,red;">
+
+ </div>
+ </li>
+ <li class="broker__item" aria-hidden="true">
+ <div id="ad-broker-button-2" aria-hidden="true" class="ad " data-name="Broker Button 2" data-conditions="0" data-refresh="420000" data-refresh-once="false" data-site="brokerbuttons.marketwatch.com" data-zone="economy_ecorpt"
+ data-size="120x60" data-phone="" data-portrait="" data-landscape="" data-desktop="" data-targeting="pos=2;tile=11;alert=volatility025,red;">
+
+ </div>
+ </li>
+ <li class="broker__item" aria-hidden="true">
+ <div id="ad-broker-button-3" aria-hidden="true" class="ad " data-name="Broker Button 3" data-conditions="1" data-refresh="420000" data-refresh-once="false" data-site="brokerbuttons.marketwatch.com" data-zone="economy_ecorpt"
+ data-size="120x60" data-phone="" data-portrait="" data-landscape="" data-desktop="" data-targeting="pos=3;tile=12;alert=volatility025,red;">
+
+ </div>
+ </li>
+ <li class="broker__item" aria-hidden="true">
+ <div id="ad-broker-button-4" aria-hidden="true" class="ad " data-name="Broker Button 4" data-conditions="1" data-refresh="420000" data-refresh-once="false" data-site="brokerbuttons.marketwatch.com" data-zone="economy_ecorpt"
+ data-size="120x60" data-phone="" data-portrait="" data-landscape="" data-desktop="" data-targeting="pos=4;tile=13;alert=volatility025,red;">
+
+ </div>
+ </li>
+ </ul>
+</div>
+<div id="moreNews" class="module">
+ <h3 class="module-header">Most Popular</h3>
+ <ul class="topStories">
+ <li>
+ <div class="thumbnail ">
+ <img src="https://s.marketwatch.com/public/resources/MWimages/MW-HN272_succes_MC_20190712162155.jpg" alt="">
+ </div>
+ <a href="/story/beware-the-irs-is-eyeing-your-inherited-money-2019-07-15?mod=MW_story_top_stories">Beware, the IRS is eyeing your inherited money</a>
+ </li>
+ <li>
+ <div class="thumbnail ">
+ <img src="https://s.marketwatch.com/public/resources/MWimages/MW-FS002_wr_mem_MC_20170809145549.jpg" alt="">
+ </div>
+ <a href="/story/a-major-new-study-suggests-its-possible-to-avoid-dementia-here-are-5-ways-to-reduce-your-risks-2019-07-15?mod=MW_story_top_stories">A major new study suggests it’s possible to avoid developing dementia — 5 ways to reduce your risk</a>
+ </li>
+ <li>
+ <div class="thumbnail ">
+ <img src="https://s.marketwatch.com/public/resources/MWimages/MW-GC652_moneyi_MC_20180129161027.jpg" alt="">
+ </div>
+ <a href="/story/im-65-my-mortgage-is-paid-off-and-i-have-370000-in-savings-so-why-i-am-still-worried-about-money-2019-03-08?mod=MW_story_top_stories">I’m 65, my mortgage is paid off and I have $370,000 in savings, so why I am still worried about money?</a>
+ </li>
+ <li>
+ <div class="thumbnail ">
+ <img src="https://s.marketwatch.com/public/resources/MWimages/MW-GZ053_amazon_MC_20181126105237.jpg" alt="">
+ </div>
+ <a href="/story/this-is-the-no-1-thing-to-buy-on-amazon-prime-day-2019-07-15?mod=MW_story_top_stories">This is the No. 1 thing to buy on Amazon Prime Day</a>
+ </li>
+ <li>
+ <div class="thumbnail ">
+ <img src="https://s.marketwatch.com/public/resources/MWimages/MW-HH819_401k_MC_20190417155010.jpg" alt="">
+ </div>
+ <a href="/story/this-401k-move-before-you-retire-guarantees-monthly-income-in-old-age-2019-07-15?mod=MW_story_top_stories">401(k) retirees won’t buy annuities unless they are better designed</a>
+ </li>
+ </ul>
+</div>
+ <div id="ad-bottom-display-ad" aria-hidden="true" class="ad module in-view sticky " data-name="Bottom Display Ad" data-conditions="4" data-sticky-lower-bound-id="main-hole" data-site="bottom.marketwatch.com" data-zone="economy_ecorpt"
+ data-size="300x250,300x600" data-phone="" data-portrait="" data-landscape="" data-desktop="" data-targeting="alert=volatility025,red;">
+
+ </div>
+ <script type="text/javascript">
+ $(function () {
+ if (typeof dianomiUnitCallback !== 'undefined') {
+ var dianomiCallback = new dianomiUnitCallback('articlerightrail', 2583, 'dianomiRightRail', '', '');
+ dianomiCallback.initialize('dianomiRightRail');
+ }
+ });
+ </script>
+ <div id="dianomiRightRail" aria-hidden="true" class="dianomi-widget-dianomiRightRail sticky" data-sticky-lower-bound-id="main-hole"></div>
+
+ <script type="text/javascript">
+ $(function() {
+ if (window.MutationObserver) { // arrive breaks if MutationObserver not supported by browser
+ $("#dianomiRightRail").arrive(".dianomiContent", function () {
+ $("#dianomiRightRail").unbindArrive();
+ $("#dianomiRightRail").trigger("rendered");
+ });
+ }
+ else { // TODO ~ remove; listening to this event causes performance problems
+ $("#dianomiRightRail").on('DOMNodeInserted', function () {
+ $("#dianomiRightRail").off('DOMNodeInserted');
+ $("#dianomiRightRail").trigger('rendered');
+ });
+ }
+ });
+ </script>
+ </div>
+
+ <div id="little-hole">
+
+ <div id="sponsored-links">
+ <script id="mNCC" language="javascript">
+ (function () {
+ var isSSL = 'https:' == document.location.protocol;
+ window.nativeAdsContext = {
+ appId: "CFEAB5E0AC88686BA597A26FB4B54555349E3478",
+ apikey: "ARAPgnyc0MRHNRr40%2b9oSrfSwlZG5%2bAfMeBkG2%2fh9AatBHngxiuMRHpQ%2bFJ%2fxfgc2iE%3d",
+ publisherId: "204461",
+ publisherName: "MarketWatch",
+ tracingtag: "mw-tracingtag",
+ msNativeAdsScriptLoc: "//h6.msn.com/nativeads/ms-nativeads.min.js",
+ pageCategory: "money",
+ pageType: "articles",
+ bingTrafficPercent: "100"
+ };
+ window.bingNACallBackToLoadOtherScript = function() {
+ window.medianet_width = "600";
+ window.medianet_height = "250";
+ window.medianet_crid = "305312222";
+ window.medianet_versionId = "111299";
+
+ var mnSrc = (isSSL ? 'https:' : 'http:') + '//contextual.media.net/nmedianet.js?cid=8CU6CD37D' + (isSSL ? '&https=1' : '');
+ document.write('<scr' + 'ipt type="text/javascript" src="' + mnSrc + '"></scr' + 'ipt>');
+ }
+ var date = new Date();
+ var concatDate = "?date=" + date.getFullYear() + "" + date.getMonth() + "" + date.getDate();
+ var bingNAJS = (isSSL ? 'https:' : 'http:') + window.nativeAdsContext.msNativeAdsScriptLoc + concatDate;
+ document.write('<scr' + 'ipt type="text/javascript" src="' + bingNAJS + '"></scr' + 'ipt>');
+ })();
+ </script>
+ </div>
+ <div id="spotim-comments" class="is-loading" aria-hidden="true">
+ <div class="comment-links">
+ <a class="link" href="/commenting-guidelines">Community Guidelines</a>
+ <span class="divider">•</span>
+ <a class="link" href="/commenting-faqs">FAQs</a>
+ </div>
+ <div class="spotim-wrapper">
+ <script async src="https://launcher.spot.im/spot/sp_ekXntyLk"
+ data-spotim-module="spotim-launcher"
+ data-post-url="https://www.marketwatch.com/story/home-prices-are-still-on-fire-case-shiller-data-show-2018-03-27"
+ data-post-id="0BFF0DB6-2ED7-11E8-81FB-B7175F43D5CD"
+ data-livefyre-url="0BFF0DB6-2ED7-11E8-81FB-B7175F43D5CD"></script>
+ </div>
+ </div>
+ </div>
+
+ </div>
+ </main>
+
+</div>
+<input type="hidden" id="VendorWidgetView" value="partials/vendor/_zergnet" />
+ <div class="content-region region--vendor full-width">
+ <div class="template template--full">
+ <div id="vendor-widget">
+ <div id="zergnet-widget-66066" aria-hidden="true"></div>
+
+ </div>
+ </div>
+ </div>
+<div id="moreHeadlines" aria-hidden="true">
+ <script type="text/javascript">
+ $(function () {
+ if (typeof dianomiUnitCallback !== 'undefined') {
+ var dianomiCallback = new dianomiUnitCallback('belowarticle', 2582, 'dianomiBelowArticle', 'dianomi__list', 'padding:10px');
+ dianomiCallback.initialize('dianomiBelowArticle');
+ }
+ });
+ </script>
+ <div id="dianomiBelowArticle"></div>
+</div>
+<footer class="container container--footer footer">
+ <button class="link link--top">BACK TO TOP</button>
+ <div class="region region--full primary full-width">
+ <div class="column column--full">
+ <ul class="list list--footer">
+ <li class="heading"><h4>MarketWatch</h4></li>
+ <li class="list__item"><a class="link" href="/site-index">Site Index</a></li>
+ <li class="list__item"><a class="link" href="/topics">Topics</a></li>
+ <li class="list__item"><a class="link" href="/help">Help</a></li>
+ <li class="list__item"><a class="link" href="/support/feedback.asp">Feedback</a></li>
+ <li class="list__item"><a class="link" href="/newsroom/roster">Newsroom Roster</a></li>
+ <li class="list__item"><a class="link" href="/video">Media Archive</a></li>
+ <li class="list__item"><a class="link" href="/premium-newsletters?link=djmc_footer_multi">Premium Products</a></li>
+ <li class="list__item"><a class="link" href="/mobile">Mobile</a></li>
+ </ul>
+ <ul class="list list--footer">
+ <li class="heading"><h4>Company</h4></li>
+ <li class="list__item"><a class="link" href="/companyinfo">Company Info</a></li>
+ <li class="list__item"><a class="link" href="https://www.dowjones.com/code-conduct/" rel="nofollow">Code of Conduct</a></li>
+ <li class="list__item"><a class="link" href="/topics/columns/corrections">Corrections</a></li>
+ <li class="list__item"><a class="link" href="http://dowjonesonline.com/" rel="nofollow">Advertising Media Kit</a></li>
+ <li class="list__item"><a class="link" href="http://www.wsjlocal.com/" rel="nofollow">Advertise Locally</a></li>
+ <li class="list__item"><a class="link" href="http://www.djreprints.com/" rel="nofollow">Reprints &amp; Licensing</a></li>
+ <li class="list__item"><a class="link" href="https://www.dowjones.com/cookies-policy/#cookies-advertising" target="_blank">Your Ad Choices</a></li>
+ <li class="list__item" aria-hidden="true">&nbsp;</li>
+ </ul>
+ <ul class="list list--footer">
+ <li class="heading"><h4>Dow Jones Network</h4></li>
+ <li class="list__item"><a class="link" href="https://www.wsj.com/">WSJ.com</a></li>
+ <li class="list__item"><a class="link" href="http://www.barrons.com">Barron's Online</a></li>
+ <li class="list__item"><a class="link" href="http://www.bigcharts.com/">BigCharts</a></li>
+ <li class="list__item"><a class="link" href="/game">Virtual Stock Exchange</a></li>
+ <li class="list__item"><a class="link" href="https://www.fnlondon.com">Financial News London</a></li>
+ <li class="list__item"><a class="link" href="http://guides.wsj.com/small-business/">WSJ.com Small Business</a></li>
+ <li class="list__item"><a class="link" href="https://www.realtor.com/" target="_blank">realtor.com</a></li>
+ <li class="list__item"><a class="link" href="https://www.mansionglobal.com/" target="_blank">Mansion Global</a></li>
+ </ul>
+ <div class="element element--image">
+ <img class="image" src="https://sts3.wsj.net/bucket-a/foxtrot/public/images/backgrounds/mobile_devices.png" height="250" alt=""/>
+ </div>
+ </div>
+ </div>
+ <div class="region region--full secondary full-width">
+ <div class="element element--text">
+ <p class="copyright">Copyright &copy; 2019 MarketWatch, Inc. All rights reserved.</p>
+ <p class="text text--terms">
+ By using this site you agree to the <a href="//www.marketwatch.com/support/disclaimer.asp">Terms of Service</a>,
+ <a href="https://www.dowjones.com/privacy-policy/" target="_blank">Privacy Policy</a>, and
+ <a href="https://www.dowjones.com/cookies-policy/" target="_blank">Cookie Policy</a>.
+ </p>
+ </div>
+ <div class="element element--list">
+ <ul class="list list--social">
+ <li class="list__item"><a class="icon icon--facebook" href="https://www.facebook.com/marketwatch" rel="nofollow" target="_blank"><span class="screen-reader-text">Facebook</span></a></li>
+ <li class="list__item"><a class="icon icon--twitter" href="https://twitter.com/marketwatch" rel="nofollow" target="_blank"><span class="screen-reader-text">Twitter</span></a></li>
+ <li class="list__item"><a class="icon icon--linkedin" href="https://www.linkedin.com/company/marketwatch" rel="nofollow" target="_blank"><span class="screen-reader-text">Linkedin</span></a></li>
+ <li class="list__item"><a class="icon icon--google" href="https://plus.google.com/+marketwatch" rel="nofollow" target="_blank"><span class="screen-reader-text">Google Plus</span></a></li>
+ <li class="list__item app-badges">
+ <a class="app__link" href="https://itunes.apple.com/app/marketwatch/id336693422?ign-mpt=uo%3D6&amp;mt=8" target="_blank" rel="nofollow">
+ <img class=" lazyloaded" data-src="https://sts3.wsj.net/bucket-a/maggie/static/images/app-store.svg" alt="Download from the App Store" src="https://sts3.wsj.net/bucket-a/maggie/static/images/app-store.svg" alt="">
+ </a>
+ <a class="app__link" href="https://play.google.com/store/apps/details?id=com.marketwatch&amp;hl=en" target="_blank" rel="nofollow">
+ <img class=" lazyloaded" data-src="https://sts3.wsj.net/bucket-a/maggie/static/images/google-play.png" alt="Download from the Google Play Store" src="https://sts3.wsj.net/bucket-a/maggie/static/images/google-play.png" alt=-"">
+ </a>
+ </li>
+ </ul>
+ </div>
+ <small class="text text--legal">Intraday Data provided by <a class="factset" href="https://www.factset.com/" rel="nofollow" target="_blank">FACTSET</a> and subject to <a class="link" href="/investing/terms-of-use">terms of use</a>. Historical and current end-of-day data provided by <a class="factset" href="https://www.factset.com/" rel="nofollow" target="_blank">FACTSET</a>. All quotes are in local exchange time. Real-time last sale data for U.S. stock quotes reflect trades reported through Nasdaq only. Intraday data delayed at least 15 minutes or per exchange requirements.</small>
+ </div>
+ <!-- This is a placeholder for cxense widgets -->
+ <div id="cx-scrim"></div>
+ <div id="cx-notification"></div>
+</footer>
+<div class="lightbox lightbox--search">
+ <div class="container search--container">
+ <div class="row search--bar">
+ <div class="col col--12">
+ <button class="close"><svg focusable="false" version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 792 612" overflow="scroll" xml:space="preserve"><polygon fill="#FFFFFF" points="396,320.927 104.927,612 90,600.805 384.805,306 90,14.927 104.927,0 396,294.805 690.805,0 702,14.927 410.927,306 702,600.805 690.805,612 "/></svg></button>
+ <input class="search__input" type="text" placeholder="Enter a symbol or keyword">
+ <i class="fa fa-search" alt="search"></i>
+ <div class="search--advanced">
+ <a href="/search?q=">Advanced Search</a>
+ <span class="info">Submit entry for keyword results</span>
+ </div>
+ </div>
+ </div>
+ <div class="element element--ad">
+ <div is="mw-ad"> <div id="ad-search-sponsor" aria-hidden="true" class="ad " data-name="Search Sponsor" data-conditions="1" data-site="marketwatch.com" data-zone="sponsor_search"
+ data-size="1x2,fluid" data-phone="" data-portrait="" data-landscape="" data-desktop="" data-targeting="adlocation=nativesearch;alert=volatility025,red;">
+
+ </div>
+</div>
+ </div>
+
+ <div class="row row--results search--results"></div>
+ </div>
+
+ <template id="sr-template">
+ <div id="search-stocks" class="col col--7 search--section">
+ <h3>Quotes</h3>
+ </div>
+ <div class="col col--5 search--editorial">
+ <div id="search-columns" class="search--section">
+ <h3>Columns</h3>
+ </div>
+ <div id="search-authors" class="search--section">
+ <h3>Authors</h3>
+ </div>
+ <div id="search-topics" class="search--section">
+ <h3>Topics</h3>
+ </div>
+ </div>
+ </template>
+
+ <template id="sr-result-count">
+ <span class="results-count"></span>
+ </template>
+
+ <template id="sr-no-results">
+ <div class="no-results">No results found</div>
+ </template>
+
+ <template id="sr-quote-result">
+ <a class="quote-box" href="">
+ <h4></h4>
+ <div class="company"></div>
+ <div class="quote">
+ <span class="price"></span>
+ <span class="net change"></span>
+ <span class="percent change"></span>
+ </div>
+ </a>
+ </template>
+
+ <template id="sr-editorial-result">
+ <div>
+ <a href=""></a>
+ </div>
+ </template>
+
+ <template id="sr-topic-result">
+ <div class="result-type"></div>
+ <div class="result-value">
+ <a href=""></a>
+ </div>
+ </template>
+</div>
+<div id="media-swatch"></div>
+<div id="general-overlay">
+
+</div>
+<script>
+ var blueGrass2SilentTest = { enabled: false, endpoint: 'https://mw-silent.bgdev.dowjones.io/bg2' };
+</script>
+<script src='https://sts3.wsj.net/bucket-a/foxtrot/public/vendor.min-66e6eb83d3.js' type='text/javascript'></script>
+<script src="https://sts3.wsj.net/bucket-a/foxtrot/public/vendorWidget.min-4bec12f10f.js" type="text/javascript"></script>
+<script src='https://sts3.wsj.net/bucket-a/foxtrot/public/articletail.min-4af6997531.js' type='text/javascript'></script>
+
+<div data-module-id="8" data-module-name="mw.svc.page.Partials" data-module-zone="partials" class="zonedModule">
+
+<script data-template-id="../view/partials/_search_results" type="text/mustache">{{#linker}}
+
+{{#results}}
+ <div id="site-search-stocks" class="site-search-section">
+ {{#symbolsResultsText}}
+ <span class="results-count">{{symbolsResultsText}}</span>
+ {{/symbolsResultsText}}
+ <h3>Stocks</h3>
+ {{#symbols}}
+ {{#quote}}
+ <a class="quote-box" href="{{quote.link}}">
+ <h4 class="display">{{ticker}}</h4>
+ <div class="company">{{company}}</div>
+ <div class="quote">
+ <span class="price">{{formattedLastPrice}}</span>
+ <span class="change {{netChange}}">{{formattedNetChange}}</span>
+ <span class="change {{changePercent}}">{{formattedChangePercent}}</span>
+ </div>
+ </a>
+ {{/quote}}
+ {{/symbols}}
+ {{^symbols}}
+ <div class="no-results">No results found</div>
+ {{/symbols}}
+ </div>
+ <div id="site-search-editorial">
+ <div id="site-search-columns" class="site-search-section">
+ {{#columnsResultsText}}
+ <span class="results-count">{{columnsResultsText}}</span>
+ {{/columnsResultsText}}
+ <h3>Columns</h3>
+ {{#columns}}
+ <div>
+ <a href="{{columnLink}}">{{title}}</a>
+ </div>
+ {{/columns}}
+ {{^columns}}
+ <div class="no-results">No results found</div>
+ {{/columns}}
+ </div>
+ <div id="site-search-authors" class="site-search-section">
+ {{#authorsResultsText}}
+ <span class="results-count">{{authorsResultsText}}</span>
+ {{/authorsResultsText}}
+ <h3>Authors</h3>
+ {{#authors}}
+ <div>
+ <a href="{{authorLink}}">{{name}}</a>
+ </div>
+ {{/authors}}
+ {{^authors}}
+ <div class="no-results">No results found</div>
+ {{/authors}}
+ </div>
+ <div id="site-search-topics" class="site-search-section">
+ {{#topicsResultsText}}
+ <span class="results-count">{{topicsResultsText}}</span>
+ {{/topicsResultsText}}
+ <h3>Topics</h3>
+ {{#organizations}}
+ <div class="result-type">Organizations</div>
+ <div class="result-value">
+ <a href="/organizations/{{link}}">{{name}}</a>
+ </div>
+ {{/organizations}}
+ {{#people}}
+ <div class="result-type">People</div>
+ <div class="result-value">
+ <a href="/people/{{link}}">{{name}}</a>
+ </div>
+ {{/people}}
+ {{#subjects}}
+ <div class="result-type">Subjects</div>
+ <div class="result-value">
+ <a href="/subjects/{{link}}">{{name}}</a>
+ </div>
+ {{/subjects}}
+ {{#companies}}
+ <div class="result-type">Companies</div>
+ <div class="result-value">
+ <a href="/companies/{{link}}">{{name}}</a>
+ </div>
+ {{/companies}}
+ {{^topics}}
+ <div class="no-results">No results found</div>
+ {{/topics}}
+ </div>
+ </div>
+{{/results}}
+
+{{/linker}}</script>
+
+<script data-template-id="../../mw.module.article/view/partials/_qt_news" type="text/mustache"><li><span class="timestamp">{{FormattedTimestamp}}</span><a href="{{Url}}?mod=MW_story_hoverstory">{{Headline}}</a></li></script>
+
+<script data-template-id="../view/bulletin" type="text/mustache">{{^Expired}}
+{{^closed}}
+<div class="bulletin" role="alert">
+ <h3 class="bulletin__headline">
+ {{^link}}
+ <span class="text">{{Subject}}</span>
+ {{/link}}
+ {{#link}}
+ <a href="{{url}}" class="link trackable" data-track-mod="bnbh">{{Subject}}</a>
+ <i class="icon icon--arrow-right"></i>
+ {{/link}}
+ </h3>
+ <i class="icon icon--close"></i>
+</div>
+{{/closed}}
+{{/Expired}}</script>
+
+<script data-template-id="../view/investor_alert" type="text/mustache">{{#alert}}
+<div id="investor-alert" class="notification">
+ {{#text}}
+ <h3 class="module-header">Investor</h3>
+ <span class="message">
+ {{text}}
+ <span class="timestamp">{{time}}</span>
+ </span>
+ <div class="investor-alert-ad">
+ {{#sponsor}}
+ {{> ad}}
+ {{/sponsor}}
+ </div>
+ {{/text}}
+</div>
+{{/alert}}</script>
+
+</div> <!-- data-module-name="mw.svc.page.Partials" -->
+
+ <script>
+ var ScrillaZilla = {
+ number: '2',
+ site: 'marketwatch.com',
+ zone: 'economy_ecorpt'
+ }
+ </script>
+<script>
+ window.__mw_inactiveSettings = {
+ isEnabled: true,
+ inactiveTime: 120000
+ };
+</script><script>
+ var utag_data = {
+ "user_type": "free",
+ "user_exp": "Default",
+ "page_content_source": "MarketWatch",
+ "page_content_region": "North_America_USA",
+ "page_content_language": "en-US",
+ "page_site_product": "MW",
+ "page_site": "MarketWatch",
+ "page_ad_zone": "economy_ecorpt",
+ "page_access": "free",
+ "page_content_type": "Article",
+ "page_content_type_detail": "article",
+ "page_section": "Economy & Politics",
+ "article_id": "0BFF0DB6-2ED7-11E8-81FB-B7175F43D5CD",
+ "article_type": "Economic Report",
+ "article_template": "full",
+ "article_headline": "Home prices are still on fire, Case-Shiller data show",
+ "article_headline_orig": "Home prices are still on fire, Case-Shiller data show",
+ "article_format": "web",
+ "article_publish_orig": "2018-03-27 9:00",
+ "article_publish": "2018-03-27 9:00",
+ "article_author": "Andrea Riquier",
+ "cms_name": "Methode",
+ "article_keywords": "construction|real estate|economic news|united states"
+};
+</script>
+<div id="settings" data-e-bg="https://mwstream.wsj.net/bg2" data-e-m="https://api.wsj.net" data-e-ap="https://sts3.wsj.net/bucket-a/foxtrot/public" data-e-u="//www.marketwatch.com/" data-e-vd="https://video-api.wsj.com" data-e-dt="https://api.wsj.net/api/deltoro-mw" data-e-id="https://accounts.marketwatch.com" data-e-reg="https://www.marketwatch.com/sign-up" data-sso-path="news/commenting/spotim/login">
+</div><!-- Begin Proximic Tag -->
+ <script src="https://segment-data.zqtk.net/dowjones-d8s23j?url=https%3A%2F%2Fwww.marketwatch.com%2Fstory%2Fhome-prices-are-still-on-fire-case-shiller-data-show-2018-03-27"></script>
+<!-- End Proximic Tag -->
+<!-- Begin Tealium Tag -->
+ <script>
+ (function(a,b,c,d){
+ a='//tags.tiqcdn.com/utag/wsjdn/marketwatch/prod/utag.js';
+ b=document;c='script';d=b.createElement(c);d.src=a;d.type='text/java'+c;d.async=true;
+ a=b.getElementsByTagName(c)[0];a.parentNode.insertBefore(d,a);
+ })();
+ </script>
+<!-- End Tealium Tag -->
+<!-- Begin Dianomi Tag -->
+ <script src="//www.dianomi.com/partner/marketwatch/js/dianomi-marketwatch.js?v=1.1"></script>
+<!-- End Dianomi Tag -->
+<script async type='text/javascript' id="myFinance-widget-script">
+ !function(){function e(){var e=document.createElement("script"),n=document.getElementById("myFinance-widget-script"),a=t+"static/widget/myFinance.js";e.type="text/javascript",e.src=a,n.parentNode.insertBefore(e,n);var c="myFinance-widget-css";if(!document.getElementById(c)){var d=document.getElementsByTagName("head")[0],i=document.createElement("link");i.id=c,i.rel="stylesheet",i.type="text/css",i.href=t+"static/widget/myFinance.css",i.media="all",d.appendChild(i)}}var t="https://www.myfinance.com/";document.attachEvent?document.attachEvent("onreadystatechange",function(){"complete"===document.readyState&&e()}):document.addEventListener("DOMContentLoaded",e,!1)}();
+</script>
+</body>
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-1/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-1/expected-images.json
new file mode 100644
index 000000000..9a2422037
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-1/expected-images.json
@@ -0,0 +1,10 @@
+[
+ "https:\/\/d262ilb51hltx0.cloudfront.net\/max\/800\/1*oBWUXtszDsiv_-Qq2bFLTQ.png",
+ "https:\/\/d262ilb51hltx0.cloudfront.net\/max\/800\/1*AzYWbe4cZkMMEUbfRjysLQ.png",
+ "https:\/\/d262ilb51hltx0.cloudfront.net\/max\/800\/1*d0Hp6KlzyIcGHcL6to1sYQ.png",
+ "https:\/\/d262ilb51hltx0.cloudfront.net\/max\/800\/1*_9KYIFrk_PqWFgptsMDeww.png",
+ "https:\/\/d262ilb51hltx0.cloudfront.net\/max\/800\/1*Vh2MpQjqjPkzYJaaWExoVg.png",
+ "https:\/\/d262ilb51hltx0.cloudfront.net\/max\/800\/1*2Ln_DmC95Xpz6LzgywkcFQ.png",
+ "https:\/\/d262ilb51hltx0.cloudfront.net\/max\/800\/1*bXaR_NBJdoHpRc8lUWSsow.png",
+ "https:\/\/d262ilb51hltx0.cloudfront.net\/max\/800\/1*lulfisQxgSQ209vPHMAifg.png"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-1/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-1/expected-metadata.json
new file mode 100644
index 000000000..a974b4361
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-1/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "Pippin Lee",
+ "Direction": null,
+ "Excerpt": "We pushed out the first version of the Open Journalism site in January. Here’s what we’ve learned about student journali…",
+ "Image": "https:\/\/d262ilb51hltx0.cloudfront.net\/max\/800\/1*oBWUXtszDsiv_-Qq2bFLTQ.png",
+ "Title": "The Open Journalism Project: Better Student Journalism",
+ "SiteName": "Medium"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-1/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-1/expected.html
new file mode 100644
index 000000000..679d8b75b
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-1/expected.html
@@ -0,0 +1,286 @@
+<div>
+ <h2 data-align="center" id="3c62" name="3c62">Open Journalism Project:</h2>
+
+ <h4 data-align="center" id="425a" name="425a"><em>Better Student Journalism</em></h4>
+
+
+
+ <p id="d178" name="d178">We pushed out the first version of the <a data-href="http://pippinlee.github.io/open-journalism-project/" href="http://pippinlee.github.io/open-journalism-project/" rel="nofollow">Open Journalism site</a> in January. Our goal is for the
+ site to be a place to teach students what they should know about journalism
+ on the web. It should be fun too.</p>
+ <p id="01ed" name="01ed">Topics like <a data-href="http://pippinlee.github.io/open-journalism-project/Mapping/" href="http://pippinlee.github.io/open-journalism-project/Mapping/" rel="nofollow">mapping</a>, <a data-href="http://pippinlee.github.io/open-journalism-project/Security/" href="http://pippinlee.github.io/open-journalism-project/Security/" rel="nofollow">security</a>, command
+ line tools, and <a data-href="http://pippinlee.github.io/open-journalism-project/Open-source/" href="http://pippinlee.github.io/open-journalism-project/Open-source/" rel="nofollow">open source</a> are
+ all concepts that should be made more accessible, and should be easily
+ understood at a basic level by all journalists. We’re focusing on students
+ because we know student journalism well, and we believe that teaching maturing
+ journalists about the web will provide them with an important lens to view
+ the world with. This is how we got to where we are now.</p>
+ <h3 id="0348" name="0348">Circa 2011</h3>
+ <p id="f923" name="f923">In late 2011 I sat in the design room of our university’s student newsroom
+ with some of the other editors: Kate Hudson, Brent Rose, and Nicholas Maronese.
+ I was working as the photo editor then—something I loved doing. I was very
+ happy travelling and photographing people while listening to their stories.</p>
+ <p id="c9d4" name="c9d4">Photography was my lucky way of experiencing the many types of people
+ my generation seemed to avoid, as well as many the public spends too much
+ time discussing. One of my habits as a photographer was scouring sites
+ like Flickr to see how others could frame the world in ways I hadn’t previously
+ considered.</p>
+ <figure id="06e8" name="06e8"><div>
+
+ <p><img data-action="zoom" data-action-value="1*AzYWbe4cZkMMEUbfRjysLQ.png" data-height="500" data-image-id="1*AzYWbe4cZkMMEUbfRjysLQ.png" data-width="1000" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*AzYWbe4cZkMMEUbfRjysLQ.png"></img></p></div>
+ <figcaption>topleftpixel.com</figcaption></figure><p id="930f" name="930f">I started discovering beautiful things the <a data-href="http://wvs.topleftpixel.com/13/02/06/timelapse-strips-homewood.htm" href="http://wvs.topleftpixel.com/13/02/06/timelapse-strips-homewood.htm" rel="nofollow">web could do with images</a>:
+ things not possible with print. Just as every generation revolts against
+ walking in the previous generations shoes, I found myself questioning the
+ expectations that I came up against as a photo editor. In our newsroom
+ the expectations were built from an outdated information world. We were
+ expected to fill old shoes.</p>
+ <p id="2674" name="2674">So we sat in our student newsroom—not very happy with what we were doing.
+ Our weekly newspaper had remained essentially unchanged for 40+ years.
+ Each editorial position had the same requirement every year. The <em>big</em> change
+ happened in the 80s when the paper started using colour. We’d also stumbled
+ into having a website, but it was updated just once a week with the release
+ of the newspaper.</p>
+ <p id="e498" name="e498">Information had changed form, but the student newsroom hadn’t, and it
+ was becoming harder to romanticize the dusty newsprint smell coming from
+ the shoes we were handed down from previous generations of editors. It
+ was, we were told, all part of “becoming a journalist.”</p>
+ <figure id="12da" name="12da"><div>
+
+ <p><img data-action="zoom" data-action-value="1*d0Hp6KlzyIcGHcL6to1sYQ.png" data-height="451" data-image-id="1*d0Hp6KlzyIcGHcL6to1sYQ.png" data-width="868" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*d0Hp6KlzyIcGHcL6to1sYQ.png"></img></p></div>
+ </figure><h3 id="e2f0" name="e2f0">We don’t know what we don’t know</h3>
+ <p id="8263" name="8263">We spent much of the rest of the school year asking “what should we be
+ doing in the newsroom?”, which mainly led us to ask “how do we use the
+ web to tell stories?” It was a straightforward question that led to many
+ more questions about the web: something we knew little about. Out in the
+ real world, traditional journalists were struggling to keep their jobs
+ in a dying print world. They wore the same design of shoes that we were
+ supposed to fill. Being pushed to repeat old, failing strategies and blocked
+ from trying something new scared us.</p>
+ <p id="231e" name="231e">We had questions, so we started doing some research. We talked with student
+ newsrooms in Canada and the United States, and filled too many Google Doc
+ files with notes. Looking at the notes now, they scream of fear. We annotated
+ our notes with naive solutions, often involving scrambled and immature
+ odysseys into the future of online journalism.</p>
+ <p id="6ec3" name="6ec3">There was a lot we didn’t know. We didn’t know <strong>how to build a mobile app</strong>.
+ We didn’t know <strong>if we should build a mobile app</strong>.
+ We didn’t know <strong>how to run a server</strong>.
+ We didn’t know <strong>where to go to find a server</strong>.
+ We didn’t know <strong>how the web worked</strong>.
+ We didn’t know <strong>how people used the web to read news</strong>.
+ We didn’t know <strong>what news should be on the web</strong>.
+ If news is just information, what does that even look like?</p>
+ <p id="f373" name="f373">We asked these questions to many students at other papers to get a consensus
+ of what had worked and what hadn’t. They reported similar questions and
+ fears about the web but followed with “print advertising is keeping us
+ afloat so we can’t abandon it”.</p>
+ <p id="034b" name="034b">In other words, we knew that we should be building a newer pair of shoes,
+ but we didn’t know what the function of the shoes should be.</p>
+ <h3 id="ea15" name="ea15">Common problems in student newsrooms (2011)</h3>
+ <p id="a90b" name="a90b">Our questioning of other student journalists in 15 student newsrooms brought
+ up a few repeating issues.</p>
+ <ul><li id="a586" name="a586">Lack of mentorship</li>
+ <li id="a953" name="a953">A news process that lacked consideration of the web</li>
+ <li id="6286" name="6286">No editor/position specific to the web</li>
+ <li id="04c1" name="04c1">Little exposure to many of the cool projects being put together by professional
+ newsrooms</li>
+ <li id="a1fb" name="a1fb">Lack of diverse skills within the newsroom. Writers made up 95% of the
+ personnel. Students with other skills were not sought because journalism
+ was seen as “a career with words.” The other 5% were designers, designing
+ words on computers, for print.</li>
+ <li id="0be9" name="0be9">Not enough discussion between the business side and web efforts</li>
+ </ul><figure id="79ed" name="79ed"><div>
+
+ <p><img data-action="zoom" data-action-value="1*_9KYIFrk_PqWFgptsMDeww.png" data-height="500" data-image-id="1*_9KYIFrk_PqWFgptsMDeww.png" data-width="1086" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*_9KYIFrk_PqWFgptsMDeww.png"></img></p></div>
+ <figcaption>From our 2011 research</figcaption></figure><h3 id="8d0c" name="8d0c">Common problems in student newsrooms (2013)</h3>
+ <p id="3ef6" name="3ef6">Two years later, we went back and looked at what had changed. We talked
+ to a dozen more newsrooms and weren’t surprised by our findings.</p>
+ <ul><li id="abb1" name="abb1">Still no mentorship or link to professional newsrooms building stories
+ for the web</li>
+ <li id="9250" name="9250">Very little control of website and technology</li>
+ <li id="d822" name="d822">The lack of exposure that student journalists have to interactive storytelling.
+ While some newsrooms are in touch with what’s happening with the web and
+ journalism, there still exists a huge gap between the student newsroom
+ and its professional counterpart</li>
+ <li id="6bf2" name="6bf2">No time in the current news development cycle for student newsrooms to
+ experiment with the web</li>
+ <li id="e62f" name="e62f">Lack of skill diversity (specifically coding, interaction design, and
+ statistics)</li>
+ <li id="f4f0" name="f4f0">Overly restricted access to student website technology. Changes are primarily
+ visual rather than functional.</li>
+ <li id="8b8d" name="8b8d">Significantly reduced print production of many papers</li>
+ <li id="dfe0" name="dfe0">Computers aren’t set up for experimenting with software and code, and
+ often locked down</li>
+ </ul><p id="52cd" name="52cd">Newsrooms have traditionally been covered in copies of The New York Times
+ or Globe and Mail. Instead newsrooms should try spend at 20 minutes each
+ week going over the coolest/weirdest online storytelling in an effort to
+ expose each other to what is possible. “<a data-href="http://nytlabs.com/" href="http://nytlabs.com/" rel="nofollow">Hey, what has the New York Times R&amp;D lab been up to this week?</a>”</p>
+ <p id="0142" name="0142">Instead of having computers that are locked down, try setting aside a
+ few office computers that allow students to play and “break”, or encourage
+ editors to buy their own Macbooks so they’re always able to practice with
+ code and new tools on their own.</p>
+ <p id="5d29" name="5d29">From all this we realized that changing a student newsroom is difficult.
+ It takes patience. It requires that the business and editorial departments
+ of the student newsroom be on the same (web)page. The shoes of the future
+ must be different from the shoes we were given.</p>
+ <p id="1ffc" name="1ffc">We need to rethink how long the new shoe design will be valid. It’s more
+ important that we focus on the process behind making footwear than on actually
+ creating a specific shoe. We shouldn’t be building a shoe to last 40 years.
+ Our footwear design process will allow us to change and adapt as technology
+ evolves. The media landscape will change, so having a newsroom that can
+ change with it will be critical.</p>
+ <p id="2888" name="2888"><strong>We are building a shoe machine, not a shoe.</strong>
+ </p>
+
+ <h3 id="9c30" name="9c30">A train or light at the end of the tunnel: are student newsrooms changing for the better?</h3>
+
+ <p id="4634" name="4634">In our 2013 research we found that almost 50% of student newsrooms had
+ created roles specifically for the web. <strong>This sounds great, but is still problematic in its current state.</strong>
+ </p>
+ <figure id="416f" name="416f"><div>
+
+ <p><img data-height="560" data-image-id="1*Vh2MpQjqjPkzYJaaWExoVg.png" data-width="624" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*Vh2MpQjqjPkzYJaaWExoVg.png"></img></p></div>
+ <figcaption><strong>We designed many of these slides to help explain to ourselves what we were doing</strong>
+ </figcaption></figure><p id="39e6" name="39e6">When a newsroom decides to create a position for the web, it’s often with
+ the intent of having content flow steadily from writers onto the web. This
+ is a big improvement from just uploading stories to the web whenever there
+ is a print issue. <em>However…</em>
+ </p>
+ <ol><li id="91b5" name="91b5"><strong>The handoff</strong>
+ <br></br>Problems arise because web editors are given roles that absolve the rest
+ of the editors from thinking about the web. All editors should be involved
+ in the process of story development for the web. While it’s a good idea
+ to have one specific editor manage the website, contributors and editors
+ should all play with and learn about the web. Instead of “can you make
+ a computer do XYZ for me?”, we should be saying “can you show me how to
+ make a computer do XYZ?”</li>
+ <li id="6448" name="6448"><strong>Not just social media<br></br></strong>A
+ web editor could do much more than simply being in charge of the social
+ media accounts for the student paper. Their responsibility could include
+ teaching all other editors to be listening to what’s happening online.
+ The web editor can take advantage of live information to change how the
+ student newsroom reports news in real time.</li>
+ <li id="ab30" name="ab30"><strong>Web (interactive) editor<br></br></strong>The
+ goal of having a web editor should be for someone to build and tell stories
+ that take full advantage of the web as their medium. Too often the web’s
+ interactivity is not considered when developing the story. The web then
+ ends up as a resting place for print words.</li>
+ </ol><p id="e983" name="e983">Editors at newsrooms are still figuring out how to convince writers of
+ the benefit to having their content online. There’s still a stronger draw
+ to writers seeing their name in print than on the web. Showing writers
+ that their stories can be told in new ways to larger audiences is a convincing
+ argument that the web is a starting point for telling a story, not its
+ graveyard.</p>
+ <p id="5c11" name="5c11">When everyone in the newsroom approaches their website with the intention
+ of using it to explore the web as a medium, they all start to ask “what
+ is possible?” and “what can be done?” You can’t expect students to think
+ in terms of the web if it’s treated as a place for print words to hang
+ out on a web page.</p>
+ <p id="4eb1" name="4eb1">We’re OK with this problem, if we see newsrooms continue to take small
+ steps towards having all their editors involved in the stories for the
+ web.</p>
+ <figure id="7aab" name="7aab"><div>
+
+ <p><img data-action="zoom" data-action-value="1*2Ln_DmC95Xpz6LzgywkcFQ.png" data-height="718" data-image-id="1*2Ln_DmC95Xpz6LzgywkcFQ.png" data-width="1315" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*2Ln_DmC95Xpz6LzgywkcFQ.png"></img></p></div>
+ <figcaption>The current Open Journalism site was a few years in the making. This was
+ an original launch page we use in 2012</figcaption></figure><h3 id="08f5" name="08f5">What we know</h3>
+ <ul><li id="f7fe" name="f7fe"><strong>New process</strong>
+ <br></br>Our rough research has told us newsrooms need to be reorganized. This
+ includes every part of the newsroom’s workflow: from where a story and
+ its information comes from, to thinking of every word, pixel, and interaction
+ the reader will have with your stories. If I was a photo editor that wanted
+ to re-think my process with digital tools in mind, I’d start by asking
+ “how are photo assignments processed and sent out?”, “how do we receive
+ images?”, “what formats do images need to be exported in?”, “what type
+ of screens will the images be viewed on?”, and “how are the designers getting
+ these images?” Making a student newsroom digital isn’t about producing
+ “digital manifestos”, it’s about being curious enough that you’ll want
+ to to continue experimenting with your process until you’ve found one that
+ fits your newsroom’s needs.</li>
+ <li id="d757" name="d757"><strong>More (remote) mentorship</strong>
+ <br></br>Lack of mentorship is still a big problem. <a data-href="http://www.google.com/get/journalismfellowship/" href="http://www.google.com/get/journalismfellowship/" rel="nofollow">Google’s fellowship program</a> is great. The fact that it
+ only caters to United States students isn’t. There are only a handful of
+ internships in Canada where students interested in journalism can get experience
+ writing code and building interactive stories. We’re OK with this for now,
+ as we expect internships and mentorship over the next 5 years between professional
+ newsrooms and student newsrooms will only increase. It’s worth noting that
+ some of that mentorship will likely be done remotely.</li>
+ <li id="a9b8" name="a9b8"><strong>Changing a newsroom culture</strong>
+ <br></br>Skill diversity needs to change. We encourage every student newsroom we
+ talk to, to start building a partnership with their school’s Computer Science
+ department. It will take some work, but you’ll find there are many CS undergrads
+ that love playing with web technologies, and using data to tell stories.
+ Changing who is in the newsroom should be one of the first steps newsrooms
+ take to changing how they tell stories. The same goes with getting designers
+ who understand the wonderful interactive elements of the web and students
+ who love statistics and exploring data. Getting students who are amazing
+ at design, data, code, words, and images into one room is one of the coolest
+ experience I’ve had. Everyone benefits from a more diverse newsroom.</li>
+ </ul><h3 id="a67e" name="a67e">What we don’t know</h3>
+ <ul><li id="7320" name="7320"><strong>Sharing curiosity for the web</strong>
+ <br></br>We don’t know how to best teach students about the web. It’s not efficient
+ for us to teach coding classes. We do go into newsrooms and get them running
+ their first code exercises, but if someone wants to learn to program, we
+ can only provide the initial push and curiosity. We will be trying out
+ “labs” with a few schools next school year to hopefully get a better idea
+ of how to teach students about the web.</li>
+ <li id="8b23" name="8b23"><strong>Business</strong>
+ <br></br>We don’t know how to convince the business side of student papers that
+ they should invest in the web. At the very least we’re able to explain
+ that having students graduate with their current skill set is painful in
+ the current job market.</li>
+ <li id="191e" name="191e"><strong>The future</strong>
+ <br></br>We don’t know what journalism or the web will be like in 10 years, but
+ we can start encouraging students to keep an open mind about the skills
+ they’ll need. We’re less interested in preparing students for the current
+ newsroom climate, than we are in teaching students to have the ability
+ to learn new tools quickly as they come and go.</li>
+ </ul></div><div>
+ <h3 id="009a" name="009a">What we’re trying to share with others</h3>
+ <ul><li id="8bfa" name="8bfa"><strong>A concise guide to building stories for the web</strong>
+ <br></br>There are too many options to get started. We hope to provide an opinionated
+ guide that follows both our experiences, research, and observations from
+ trying to teach our peers.</li>
+ </ul><p id="8196" name="8196">Student newsrooms don’t have investors to please. Student newsrooms can
+ change their website every week if they want to try a new design or interaction.
+ As long as students start treating the web as a different medium, and start
+ building stories around that idea, then we’ll know we’re moving forward.</p>
+ <h3 id="f6c6" name="f6c6">A note to professional news orgs</h3>
+ <p id="d8f5" name="d8f5">We’re also asking professional newsrooms to be more open about their process
+ of developing stories for the web. You play a big part in this. This means
+ writing about it, and sharing code. We need to start building a bridge
+ between student journalism and professional newsrooms.</p>
+ <figure id="7ed3" name="7ed3"><div>
+
+ <p><img data-height="400" data-image-id="1*bXaR_NBJdoHpRc8lUWSsow.png" data-width="686" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*bXaR_NBJdoHpRc8lUWSsow.png"></img></p></div>
+ <figcaption>2012</figcaption></figure><h3 id="ee1b" name="ee1b">This is a start</h3>
+ <p id="ebf9" name="ebf9">We going to continue slowly growing the content on <a data-href="http://pippinlee.github.io/open-journalism-project/" href="http://pippinlee.github.io/open-journalism-project/" rel="nofollow">Open Journalism</a>. We still consider this the beta version,
+ but expect to polish it, and beef up the content for a real launch at the
+ beginning of the summer.</p>
+ <p id="bd44" name="bd44">We expect to have more original tutorials as well as the beginnings of
+ what a curriculum may look like that a student newsroom can adopt to start
+ guiding their transition to become a web first newsroom. We’re also going
+ to be working with the <a data-href="http://queensjournal.ca/" href="http://queensjournal.ca/" rel="nofollow">Queen’s Journal</a> and
+ <a data-href="http://ubyssey.ca/" href="http://ubyssey.ca/" rel="nofollow">The Ubyssey</a>next school year to better understand how to make the student
+ newsroom a place for experimenting with telling stories on the web. If
+ this sound like a good idea in your newsroom, we’re still looking to add
+ 1 more school.</p>
+ <p id="abd5" name="abd5">We’re trying out some new shoes. And while they’re not self-lacing, and
+ smell a bit different, we feel lacing up a new pair of kicks can change
+ a lot.</p>
+ <figure id="4c68" name="4c68"><div>
+
+ <p><img data-action="zoom" data-action-value="1*lulfisQxgSQ209vPHMAifg.png" data-height="534" data-image-id="1*lulfisQxgSQ209vPHMAifg.png" data-width="950" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*lulfisQxgSQ209vPHMAifg.png"></img></p></div>
+ </figure>
+ <p id="2c5c" name="2c5c"><strong>Let’s talk. Let’s listen.</strong>
+ </p>
+ <p id="63ec" name="63ec"><strong>We’re still in the early stages of what this project will look like, so if you want to help or have thoughts, let’s talk.</strong>
+ </p>
+ <p id="9376" name="9376"><a data-href="mailto:[email protected]" href="mailto:[email protected]" rel="nofollow"><strong>[email protected]</strong></a>
+ </p>
+
+
+ <p id="ea00" name="ea00"><em>This isn’t supposed to be a </em>
+ <strong><em>manifesto™©</em>
+ </strong><em> we just think it’s pretty cool to share what we’ve learned so far, and hope you’ll do the same. We’re all in this together.</em>
+ </p>
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-1/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-1/source.html
new file mode 100644
index 000000000..63be92077
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-1/source.html
@@ -0,0 +1,705 @@
+<!DOCTYPE html>
+<html>
+
+ <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# medium-com: http://ogp.me/ns/fb/medium-com#">
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"
+ user-scalable="no"/>
+ <title>The Open Journalism Project: Better Student Journalism — Medium</title>
+ <link
+ rel="canonical" href="https://medium.com/@pippinlee/the-open-journalism-project-better-student-journalism-fb39f4f701bb"/>
+ <meta name="title" content="The Open Journalism Project: Better Student Journalism"/>
+ <meta name="referrer" content="always"/>
+ <meta name="description" content="We pushed out the first version of the Open Journalism site in January. Here’s what we’ve learned about student journali…"/>
+ <meta property="og:site_name" content="Medium"/>
+ <meta property="og:title" content="The Open Journalism Project: Better Student Journalism"/>
+ <meta property="og:url" content="https://medium.com/@pippinlee/the-open-journalism-project-better-student-journalism-fb39f4f701bb"/>
+ <meta property="og:image" content="https://d262ilb51hltx0.cloudfront.net/max/800/1*oBWUXtszDsiv_-Qq2bFLTQ.png"/>
+ <meta property="fb:app_id" content="542599432471018"/>
+ <meta property="og:description" content="We pushed out the first version of the Open Journalism site in January. Here’s what we’ve learned about student journali…"/>
+ <meta name="twitter:site" content="@Medium"/>
+ <meta name="twitter:image:src" content="https://d262ilb51hltx0.cloudfront.net/max/800/1*oBWUXtszDsiv_-Qq2bFLTQ.png"/>
+ <link rel="publisher" href="https://plus.google.com/103654360130207659246"/>
+ <link rel="author" href="https://medium.com/@pippinlee"/>
+ <meta name="author" content="Pippin Lee"/>
+ <meta property="og:type" content="article"/>
+ <meta name="twitter:card" content="summary_large_image"/>
+ <meta property="article:publisher" content="https://www.facebook.com/medium"/>
+ <meta property="article:author" content="https://medium.com/@pippinlee"/>
+ <meta property="article:published_time" content="2015-03-17T16:27:40.294Z"/>
+ <meta name="twitter:creator" content="@pippinlee"/>
+ <meta name="twitter:app:name:iphone" content="Medium"/>
+ <meta name="twitter:app:id:iphone" content="828256236"/>
+ <meta name="twitter:app:url:iphone" content="medium:/p/fb39f4f701bb"/>
+ <meta property="al:ios:app_name" content="Medium"/>
+ <meta property="al:ios:app_store_id" content="828256236"/>
+ <meta property="al:ios:url" content="medium:/p/fb39f4f701bb"/>
+ <meta property="al:web:url" content="https://medium.com/@pippinlee/the-open-journalism-project-better-student-journalism-fb39f4f701bb"/>
+ <meta name="theme-color" content="#000000"/>
+ <script type="text/javascript" src="http://www.google-analytics.com/ga.js"></script>
+ <script>
+ if (window.top !== window.self) window.top.location = window.self.location.href;var OB_startTime = new Date().getTime(); var OB_fontLoaded = 0; var OB_loadErrors = []; function _onerror(e) { OB_loadErrors.push(e) }; if (document.addEventListener) document.addEventListener("error", _onerror, true); else if (document.attachEvent) document.attachEvent("onerror", _onerror); function _asyncScript(u) {var d = document, f = d.getElementsByTagName("script")[0], s = d.createElement("script"); s.type = "text/javascript"; s.async = true; s.src = u; f.parentNode.insertBefore(s, f);}function _asyncStyles(u) {var d = document, f = d.getElementsByTagName("script")[0], s = d.createElement("link"); s.rel = "stylesheet"; s.href = u; f.parentNode.insertBefore(s, f); return s}var _gaq = _gaq || []; _gaq.push(["_setAccount", "UA-24232453-2"]); _gaq.push(["_setDomainName", window.location.hostname]); _gaq.push(["_setAllowLinker", true]); _gaq.push(["_trackPageview"]); _asyncScript(("https:" == document.location.protocol ? "https://ssl" : "http://www") + ".google-analytics.com/ga.js");(new Image()).src = "/_/stat?event=pixel.load&origin=" + encodeURIComponent(location.origin);
+ </script>
+ <script>
+ _asyncStyles('https:\/\/dnqgz544uhbo8.cloudfront.net\/_\/fp\/css\/main-sprites.1B2M2Y8AsgTpgAmY7PhCfg.css')
+ </script>
+ <link rel="stylesheet" href="https://dnqgz544uhbo8.cloudfront.net/_/fp/css/main-base.yJzZ9u5sH5_3PnBRjyto6A.css"/>
+ <script>
+ (function () {var height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; document.write("<style>section.section-image--fullBleed {padding-top: " + Math.round(1.1 * height) + "px;}section.section-image--fullScreen, section.section-image--coverFade {min-height: " + height + "px; padding-top: " + Math.round(0.5 * height) + "px;}.u-sizeViewHeight100 {height: " + height + "px !important;}.u-sizeViewHeightMin100 {min-height: " + height + "px !important;}section.section-image--coverFade, .section-image--fullScreen > .section-background, .section-image--coverFade > .section-background, .section-image--fullBleed .section-backgroundImage, .section-image--fullScreen .section-backgroundImage, .section-image--coverFade .section-backgroundImage {height: " + height + "px;}.section-image--content > .section-background, .section-image--content .section-backgroundImage, .section-aspectRatioViewportPlaceholder, .section-aspectRatioViewportCropPlaceholder {max-height: " + height + "px;}.section-image--fullBleed > .section-background {height: " + Math.round(1.1 * height) + "px;}.section-aspectRatioViewportBottomSpacer, .section-aspectRatioViewportBottomPlaceholder {max-height: " + Math.round(0.5 * height) + "px;}</style>");})()
+ </script>
+ <!--[if lt IE 9]>
+ <script charset="UTF-8" src="https://dnqgz544uhbo8.cloudfront.net/_/fp/js/shiv.RI2ePTZ5gFmMgLzG5bEVAA.js"></script>
+ <![endif]-->
+ <link rel="shortcut icon" href="https://dnqgz544uhbo8.cloudfront.net/_/fp/icons/favicon.n7eHNqdWyHhbTLN2-3a-6g.ico"/>
+ <link rel="apple-touch-icon-precomposed" sizes="152x152" href="/apple-touch-icon-precomposed-152.png"/>
+ <link rel="apple-touch-icon-precomposed" sizes="120x120" href="/apple-touch-icon-precomposed-120.png"/>
+ <link rel="apple-touch-icon-precomposed" sizes="76x76" href="/apple-touch-icon-precomposed-76.png"/>
+ <link rel="apple-touch-icon-precomposed" href="/apple-touch-icon-precomposed.png"/>
+ </head>
+
+ <body itemscope="" itemtype="http://schema.org/Article" class=" template-flex-article js-loading ">
+ <div class="site-main" id="container">
+ <div class="butterBar butterBar--error"></div>
+ <div class="surface">
+ <div id="prerendered" class="screenContent">
+ <canvas class="canvas-renderer"></canvas>
+ <div class="listingEditorOverlay"></div>
+ <div class="listingEditor js-listingEditor">
+ <div class="listingEditor-inner u-backgroundWhite">
+ <div class="listingEditor-content">
+ <div class="listingEditor-header u-textAlignCenter">Ready to publish?</div>
+ <div class="listingEditor-description u-textAlignCenter js-titleEditorInstructions">Change the story’s title, subtitle, and visibility as needed</div>
+ <div
+ class="listingEditor-section listingEditor-section--highlightOnHover">
+ <div class="block block--list js-block">
+ <div class="block-image js-blockImage"></div>
+ <div class="block-firefoxPositioningContainerHack">
+ <div class="block-content">
+ <div class="block-title js-titleEditor u-hideOutline"></div>
+ <div class="block-snippet block-snippet--subtitle js-subtitleEditor u-hideOutline"></div>
+ <div class="block-postMetaWrap u-clearfix">
+ <div class="block-postMeta u-inlineBlock">
+ <div class="postMetaInline postMetaInline--author">Pippin Lee</div>
+ <div class="postMetaInline js-readingTime"><span class="readingTime">11 min read</span>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="listingEditor-section listingEditor-section--controls">
+ <div class="listingEditor-controlsLeft u-floatLeft js-tagEditor"></div>
+ <div class="listingEditor-controlsRight u-floatRight">
+ <button class="button button--chromeless js-selectVisibility js-buttonRequiresPostId"
+ data-action="show-disabled-button-info" data-action-value="Changing post visibility will become available after you start writing."
+ data-delayed-action="show-visibility-popover"></button>
+ <button class="button button--chromeless js-selectFeatured" data-action="show-featured-popover">Featured</button>
+ <button class="button js-listingEditorCancelButton" data-action="close-listing-editor">Close</button>
+ <button class="button button--primary js-publishButton"
+ data-action="publish">Publish changes</button>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="metabar u-clearfix js-metabar metabar--top metabar--white metabar--postArticle is-withCollectionLogo ">
+ <div class="metabar-block metabar-left u-floatLeft"><a href="https://medium.com/" alt="Homepage" data-log-event="home" class="siteNav-logo"><span class="icon icon--logoM"></span></a>
+ </div>
+ <div class="metabar-block metabar-right u-floatRight">
+ <div class="metabar-text"></div>
+ <div class="buttonSet"></div>
+ <div class="buttonSet"><a class="button button--circle is-inSiteNavBar" href="https://medium.com/search"
+ data-action="open-search"><span class="icon icon--search"></span></a>
+ <a
+ class="button button--primary" href="https://medium.com/m/signin?redirect=https%3A%2F%2Fmedium.com%3A443%2F%40pippinlee%2Fthe-open-journalism-project-better-student-journalism-fb39f4f701bb"
+ data-action="sign-in-prompt">Sign in / Sign up</a>
+ </div>
+ </div>
+ </div>
+ <div class="metabar u-clearfix metabar--bottom metabar--opaque metabar--bordered metabar--social metabar--postSecondaryBar js-postSecondaryBar">
+ <div class="metabar-block metabar-left u-floatLeft"><span class="postMetaInline postMetaInline--avatar"><a href="https://medium.com/@pippinlee" class="avatar avatar--icon avatar--inline link link--secondary" title="Go to the profile of Pippin Lee"><img src="https://d262ilb51hltx0.cloudfront.net/fit/c/32/32/0*312pRa3Jh6ESE7Es.jpeg" class="avatar-image avatar-image--icon" title="Pippin Lee"/></a></span>
+ <span
+ class="postMetaInline postMetaInline--authorDateline"><a class="link link--secondary" title="Go to the profile of Pippin Lee"
+ href="https://medium.com/@pippinlee">Pippin Lee</a><span class="u-showOnTabletMini"><br/></span>
+ <span
+ class="postMetaInline postMetaInline--date"><span class="u-xs-hide"> on </span>
+ <time class="post-date">Mar 17</time><span class="middotDivider"></span>11 min</span>
+ </span>
+ </div>
+ <div class="metabar-block metabar-right u-floatRight">
+ <div class="voteWidget"></div>
+ <div class="metabar-shareActions">
+ <button class="button button--chromeless button--social button--recommend js-recommendButton"
+ title="Recommend to share this article with your followers and let the author know you liked it"
+ data-action="sign-in-prompt" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/fb39f4f701bb"><span class="icon icon--heart2Outline"></span><span class="icon icon--heart2"></span>
+ </button>
+ <button class="button button--chromeless button--social js-bookmarkButton"
+ title="Bookmark this story to read later" data-action="sign-in-prompt"
+ data-requires-token="true" data-redirect="https://medium.com/_/bookmark/p/fb39f4f701bb"><span class="icon icon--readingList2outline"></span><span class="icon icon--readingList2"></span>
+ </button>
+ <button class="button button--chromeless u-showOnMobile button--social"
+ title="Share this story on Twitter, Facebook, or email" data-action="toggle-share-drawer"
+ data-action-value="fb39f4f701bb"><span class="icon icon--share2Outline "></span>
+ </button>
+ <button class="button button--chromeless u-xs-hide button--social" title="Share this story on Twitter, Facebook, or email"
+ data-action="show-share-popover" data-action-value="fb39f4f701bb" data-action-source="metabar"><span class="icon icon--share2Outline "></span>
+ </button>
+ </div>
+ <div class="metabar-readNext js-metabarReadNext">
+ <button class="button button--chromeless">Next story</button>
+ </div>
+ </div>
+ </div>
+ <div class="metabar u-clearfix metabar--bottom metabar--opaque metabar--social metabar--peekaboo js-persistentShareFooter">
+ <div class="metabar-block metabar-left u-floatLeft"></div>
+ <div class="metabar-block metabar-center">
+ <div class="metabar-readNext metabar-readNext--bottom js-metabarReadNextMobile">
+ <button class="button button--chromeless">Next story</button>
+ </div>
+ <div class="metabar-shareActions">
+ <button class="button button--chromeless button--social button--recommend js-recommendButton"
+ title="Recommend to share this article with your followers and let the author know you liked it"
+ data-action="sign-in-prompt" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/fb39f4f701bb"><span class="icon icon--heart2Outline"></span><span class="icon icon--heart2"></span>
+ </button>
+ <button class="button button--chromeless button--social js-bookmarkButton"
+ title="Bookmark this story to read later" data-action="sign-in-prompt"
+ data-requires-token="true" data-redirect="https://medium.com/_/bookmark/p/fb39f4f701bb"><span class="icon icon--readingList2outline"></span><span class="icon icon--readingList2"></span>
+ </button>
+ <button class="button button--chromeless u-showOnMobile button--social"
+ title="Share this story on Twitter, Facebook, or email" data-action="toggle-share-drawer"
+ data-action-value="fb39f4f701bb"><span class="icon icon--share2Outline "></span>
+ </button>
+ <button class="button button--chromeless u-xs-hide button--social" title="Share this story on Twitter, Facebook, or email"
+ data-action="show-share-popover" data-action-value="fb39f4f701bb" data-action-source="metabar"><span class="icon icon--share2Outline "></span>
+ </button>
+ </div>
+ <div class="metabar-drawer">
+ <div class="metabar-drawerWarning">The author chose to make this story unlisted, which means only people
+ with a link can see it. Are you sure you want to share it?
+ <button class="button button--chromeless"
+ data-action="ignore-share-drawer-warning">Yes, show me sharing options</button>
+ </div>
+ <div class="metabar-drawerContent">
+ <h4 class="metabar-drawerTitle">The Open Journalism Project: Better Student Journalism</h4>
+ <ul class="list">
+ <li>
+ <button class="button button--chromeless" data-action="share-on-twitter"
+ data-action-value="fb39f4f701bb" data-action-source="metabar_mobile"><span class="icon icon--twitter"></span> Share on Twitter</button>
+ </li>
+ <li>
+ <button class="button button--chromeless" data-action="share-on-facebook"
+ data-action-value="fb39f4f701bb" data-action-source="metabar_mobile"><span class="icon icon--facebook"></span> Share on Facebook</button>
+ </li>
+ <li>
+ <button class="button button--chromeless" data-action="share-by-email"
+ data-action-value="fb39f4f701bb" data-action-source="metabar_mobile"><span class="icon icon--email"></span> Share by email</button>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="logo-container"></div>
+ <article class="u-sizeViewHeightMin100 postArticle postArticle--full is-languageTier1"
+ lang="en" data-allow-notes="true">
+ <section class="postWrapper postWrapper--contain">
+ <div class="postWrapper-inner">
+ <div class="postContent">
+ <div class="postContent-inner">
+ <div class="notesSource">
+ <div class="postField postField--body">
+ <section name="465f" class=" section--first section--last">
+ <div class="section-divider layoutSingleColumn">
+ <hr class="section-divider"/>
+ </div>
+ <div class="section-content">
+ <div class="section-inner u-sizeFullWidth">
+ <figure name="1f11" id="1f11" class="graf--figure postField--fillWidthImage graf--first">
+ <div class="aspectRatioPlaceholder is-locked">
+ <div class="aspect-ratio-fill" style="padding-bottom: 43.9%;"></div>
+ <img class="graf-image" data-image-id="1*oBWUXtszDsiv_-Qq2bFLTQ.png"
+ data-width="1368" data-height="600" src="https://d262ilb51hltx0.cloudfront.net/max/2000/1*oBWUXtszDsiv_-Qq2bFLTQ.png"/>
+ </div>
+ </figure>
+ </div>
+ <div class="section-inner layoutSingleColumn">
+ <h2 name="3c62" id="3c62" data-align="center" class="graf--h2">Open Journalism Project:</h2>
+ <p name="e970" id="e970" class="graf--p graf--empty">
+ <br/>
+ </p>
+ <h4 name="425a" id="425a" data-align="center" class="graf--h4"><em class="markup--em markup--h4-em">Better Student Journalism</em></h4>
+ <p name="a511" id="a511" class="graf--p graf--empty">
+ <br/>
+ </p>
+ <h4 name="08db" id="08db" class="graf--h4 graf--empty"><br/></h4>
+ <p name="acc4" id="acc4" class="graf--p graf--empty">
+ <br/>
+ </p>
+ <p name="d178" id="d178" class="graf--p">We pushed out the first version of the <a href="http://pippinlee.github.io/open-journalism-project/"
+ data-href="http://pippinlee.github.io/open-journalism-project/" class="markup--anchor markup--p-anchor"
+ rel="nofollow">Open Journalism site</a> in January. Our goal is for the
+ site to be a place to teach students what they should know about journalism
+ on the web. It should be fun too.</p>
+ <p name="01ed" id="01ed" class="graf--p">Topics like <a href="http://pippinlee.github.io/open-journalism-project/Mapping/"
+ data-href="http://pippinlee.github.io/open-journalism-project/Mapping/"
+ class="markup--anchor markup--p-anchor" rel="nofollow">mapping</a>, <a href="http://pippinlee.github.io/open-journalism-project/Security/"
+ data-href="http://pippinlee.github.io/open-journalism-project/Security/"
+ class="markup--anchor markup--p-anchor" rel="nofollow">security</a>, command
+ line tools, and <a href="http://pippinlee.github.io/open-journalism-project/Open-source/"
+ data-href="http://pippinlee.github.io/open-journalism-project/Open-source/"
+ class="markup--anchor markup--p-anchor" rel="nofollow">open source</a> are
+ all concepts that should be made more accessible, and should be easily
+ understood at a basic level by all journalists. We’re focusing on students
+ because we know student journalism well, and we believe that teaching maturing
+ journalists about the web will provide them with an important lens to view
+ the world with. This is how we got to where we are now.</p>
+ <h3 name="0348"
+ id="0348" class="graf--h3">Circa 2011</h3>
+ <p name="f923" id="f923" class="graf--p">In late 2011 I sat in the design room of our university’s student newsroom
+ with some of the other editors: Kate Hudson, Brent Rose, and Nicholas Maronese.
+ I was working as the photo editor then—something I loved doing. I was very
+ happy travelling and photographing people while listening to their stories.</p>
+ <p
+ name="c9d4" id="c9d4" class="graf--p">Photography was my lucky way of experiencing the many types of people
+ my generation seemed to avoid, as well as many the public spends too much
+ time discussing. One of my habits as a photographer was scouring sites
+ like Flickr to see how others could frame the world in ways I hadn’t previously
+ considered.</p>
+ <figure name="06e8" id="06e8" class="graf--figure">
+ <div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 350px;">
+ <div class="aspect-ratio-fill" style="padding-bottom: 50%;"></div>
+ <img class="graf-image" data-image-id="1*AzYWbe4cZkMMEUbfRjysLQ.png"
+ data-width="1000" data-height="500" data-action="zoom" data-action-value="1*AzYWbe4cZkMMEUbfRjysLQ.png"
+ src="https://d262ilb51hltx0.cloudfront.net/max/800/1*AzYWbe4cZkMMEUbfRjysLQ.png"/>
+ </div>
+ <figcaption class="imageCaption">topleftpixel.com</figcaption>
+ </figure>
+ <p name="930f" id="930f" class="graf--p">I started discovering beautiful things the <a href="http://wvs.topleftpixel.com/13/02/06/timelapse-strips-homewood.htm"
+ data-href="http://wvs.topleftpixel.com/13/02/06/timelapse-strips-homewood.htm"
+ class="markup--anchor markup--p-anchor" rel="nofollow">web could do with images</a>:
+ things not possible with print. Just as every generation revolts against
+ walking in the previous generations shoes, I found myself questioning the
+ expectations that I came up against as a photo editor. In our newsroom
+ the expectations were built from an outdated information world. We were
+ expected to fill old shoes.</p>
+ <p name="2674" id="2674" class="graf--p">So we sat in our student newsroom—not very happy with what we were doing.
+ Our weekly newspaper had remained essentially unchanged for 40+ years.
+ Each editorial position had the same requirement every year. The <em class="markup--em markup--p-em">big</em> change
+ happened in the 80s when the paper started using colour. We’d also stumbled
+ into having a website, but it was updated just once a week with the release
+ of the newspaper.</p>
+ <p name="e498" id="e498" class="graf--p">Information had changed form, but the student newsroom hadn’t, and it
+ was becoming harder to romanticize the dusty newsprint smell coming from
+ the shoes we were handed down from previous generations of editors. It
+ was, we were told, all part of “becoming a journalist.”</p>
+ <figure name="12da"
+ id="12da" class="graf--figure">
+ <div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 364px;">
+ <div class="aspect-ratio-fill" style="padding-bottom: 52%;"></div>
+ <img class="graf-image" data-image-id="1*d0Hp6KlzyIcGHcL6to1sYQ.png"
+ data-width="868" data-height="451" data-action="zoom" data-action-value="1*d0Hp6KlzyIcGHcL6to1sYQ.png"
+ src="https://d262ilb51hltx0.cloudfront.net/max/800/1*d0Hp6KlzyIcGHcL6to1sYQ.png"/>
+ </div>
+ </figure>
+ <h3 name="e2f0" id="e2f0" class="graf--h3">We don’t know what we don’t know</h3>
+ <p name="8263" id="8263" class="graf--p">We spent much of the rest of the school year asking “what should we be
+ doing in the newsroom?”, which mainly led us to ask “how do we use the
+ web to tell stories?” It was a straightforward question that led to many
+ more questions about the web: something we knew little about. Out in the
+ real world, traditional journalists were struggling to keep their jobs
+ in a dying print world. They wore the same design of shoes that we were
+ supposed to fill. Being pushed to repeat old, failing strategies and blocked
+ from trying something new scared us.</p>
+ <p name="231e" id="231e" class="graf--p">We had questions, so we started doing some research. We talked with student
+ newsrooms in Canada and the United States, and filled too many Google Doc
+ files with notes. Looking at the notes now, they scream of fear. We annotated
+ our notes with naive solutions, often involving scrambled and immature
+ odysseys into the future of online journalism.</p>
+ <p name="6ec3" id="6ec3"
+ class="graf--p">There was a lot we didn’t know. We didn’t know <strong class="markup--strong markup--p-strong">how to build a mobile app</strong>.
+ We didn’t know <strong class="markup--strong markup--p-strong">if we should build a mobile app</strong>.
+ We didn’t know <strong class="markup--strong markup--p-strong">how to run a server</strong>.
+ We didn’t know <strong class="markup--strong markup--p-strong">where to go to find a server</strong>.
+ We didn’t know <strong class="markup--strong markup--p-strong">how the web worked</strong>.
+ We didn’t know <strong class="markup--strong markup--p-strong">how people used the web to read news</strong>.
+ We didn’t know <strong class="markup--strong markup--p-strong">what news should be on the web</strong>.
+ If news is just information, what does that even look like?</p>
+ <p name="f373"
+ id="f373" class="graf--p">We asked these questions to many students at other papers to get a consensus
+ of what had worked and what hadn’t. They reported similar questions and
+ fears about the web but followed with “print advertising is keeping us
+ afloat so we can’t abandon it”.</p>
+ <p name="034b" id="034b" class="graf--p">In other words, we knew that we should be building a newer pair of shoes,
+ but we didn’t know what the function of the shoes should be.</p>
+ <h3 name="ea15"
+ id="ea15" class="graf--h3">Common problems in student newsrooms (2011)</h3>
+ <p name="a90b" id="a90b" class="graf--p">Our questioning of other student journalists in 15 student newsrooms brought
+ up a few repeating issues.</p>
+ <ul class="postList">
+ <li name="a586" id="a586" class="graf--li">Lack of mentorship</li>
+ <li name="a953" id="a953" class="graf--li">A news process that lacked consideration of the web</li>
+ <li name="6286"
+ id="6286" class="graf--li">No editor/position specific to the web</li>
+ <li name="04c1" id="04c1" class="graf--li">Little exposure to many of the cool projects being put together by professional
+ newsrooms</li>
+ <li name="a1fb" id="a1fb" class="graf--li">Lack of diverse skills within the newsroom. Writers made up 95% of the
+ personnel. Students with other skills were not sought because journalism
+ was seen as “a career with words.” The other 5% were designers, designing
+ words on computers, for print.</li>
+ <li name="0be9" id="0be9" class="graf--li">Not enough discussion between the business side and web efforts</li>
+ </ul>
+ <figure name="79ed" id="79ed" class="graf--figure">
+ <div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 322px;">
+ <div class="aspect-ratio-fill" style="padding-bottom: 46%;"></div>
+ <img class="graf-image" data-image-id="1*_9KYIFrk_PqWFgptsMDeww.png"
+ data-width="1086" data-height="500" data-action="zoom" data-action-value="1*_9KYIFrk_PqWFgptsMDeww.png"
+ src="https://d262ilb51hltx0.cloudfront.net/max/800/1*_9KYIFrk_PqWFgptsMDeww.png"/>
+ </div>
+ <figcaption class="imageCaption">From our 2011 research</figcaption>
+ </figure>
+ <h3 name="8d0c" id="8d0c" class="graf--h3">Common problems in student newsrooms (2013)</h3>
+ <p name="3ef6" id="3ef6" class="graf--p">Two years later, we went back and looked at what had changed. We talked
+ to a dozen more newsrooms and weren’t surprised by our findings.</p>
+ <ul
+ class="postList">
+ <li name="abb1" id="abb1" class="graf--li">Still no mentorship or link to professional newsrooms building stories
+ for the web</li>
+ <li name="9250" id="9250" class="graf--li">Very little control of website and technology</li>
+ <li name="d822" id="d822"
+ class="graf--li">The lack of exposure that student journalists have to interactive storytelling.
+ While some newsrooms are in touch with what’s happening with the web and
+ journalism, there still exists a huge gap between the student newsroom
+ and its professional counterpart</li>
+ <li name="6bf2" id="6bf2" class="graf--li">No time in the current news development cycle for student newsrooms to
+ experiment with the web</li>
+ <li name="e62f" id="e62f" class="graf--li">Lack of skill diversity (specifically coding, interaction design, and
+ statistics)</li>
+ <li name="f4f0" id="f4f0" class="graf--li">Overly restricted access to student website technology. Changes are primarily
+ visual rather than functional.</li>
+ <li name="8b8d" id="8b8d" class="graf--li">Significantly reduced print production of many papers</li>
+ <li name="dfe0"
+ id="dfe0" class="graf--li">Computers aren’t set up for experimenting with software and code, and
+ often locked down</li>
+ </ul>
+ <p name="52cd" id="52cd" class="graf--p">Newsrooms have traditionally been covered in copies of The New York Times
+ or Globe and Mail. Instead newsrooms should try spend at 20 minutes each
+ week going over the coolest/weirdest online storytelling in an effort to
+ expose each other to what is possible. “<a href="http://nytlabs.com/" data-href="http://nytlabs.com/"
+ class="markup--anchor markup--p-anchor" rel="nofollow">Hey, what has the New York Times R&amp;D lab been up to this week?</a>”</p>
+ <p
+ name="0142" id="0142" class="graf--p">Instead of having computers that are locked down, try setting aside a
+ few office computers that allow students to play and “break”, or encourage
+ editors to buy their own Macbooks so they’re always able to practice with
+ code and new tools on their own.</p>
+ <p name="5d29" id="5d29" class="graf--p">From all this we realized that changing a student newsroom is difficult.
+ It takes patience. It requires that the business and editorial departments
+ of the student newsroom be on the same (web)page. The shoes of the future
+ must be different from the shoes we were given.</p>
+ <p name="1ffc" id="1ffc"
+ class="graf--p">We need to rethink how long the new shoe design will be valid. It’s more
+ important that we focus on the process behind making footwear than on actually
+ creating a specific shoe. We shouldn’t be building a shoe to last 40 years.
+ Our footwear design process will allow us to change and adapt as technology
+ evolves. The media landscape will change, so having a newsroom that can
+ change with it will be critical.</p>
+ <p name="2888" id="2888" class="graf--p"><strong class="markup--strong markup--p-strong">We are building a shoe machine, not a shoe.</strong>
+ </p>
+ <p name="1955" id="1955" class="graf--p graf--empty">
+ <br/>
+ </p>
+ <h3 name="9c30" id="9c30" class="graf--h3">A train or light at the end of the tunnel: are student newsrooms changing for the better?</h3>
+ <p name="1f98" id="1f98" class="graf--p graf--empty">
+ <br/>
+ </p>
+ <p name="4634" id="4634" class="graf--p">In our 2013 research we found that almost 50% of student newsrooms had
+ created roles specifically for the web. <strong class="markup--strong markup--p-strong">This sounds great, but is still problematic in its current state.</strong>
+ </p>
+ <figure name="416f" id="416f" class="graf--figure">
+ <div class="aspectRatioPlaceholder is-locked" style="max-width: 624px; max-height: 560px;">
+ <div class="aspect-ratio-fill" style="padding-bottom: 89.7%;"></div>
+ <img class="graf-image" data-image-id="1*Vh2MpQjqjPkzYJaaWExoVg.png"
+ data-width="624" data-height="560" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*Vh2MpQjqjPkzYJaaWExoVg.png"/>
+ </div>
+ <figcaption class="imageCaption"><strong class="markup--strong markup--figure-strong">We designed many of these slides to help explain to ourselves what we were doing</strong>
+ </figcaption>
+ </figure>
+ <p name="39e6" id="39e6" class="graf--p">When a newsroom decides to create a position for the web, it’s often with
+ the intent of having content flow steadily from writers onto the web. This
+ is a big improvement from just uploading stories to the web whenever there
+ is a print issue. <em class="markup--em markup--p-em">However…</em>
+ </p>
+ <ol class="postList">
+ <li name="91b5" id="91b5" class="graf--li"><strong class="markup--strong markup--li-strong">The handoff</strong>
+ <br/>Problems arise because web editors are given roles that absolve the rest
+ of the editors from thinking about the web. All editors should be involved
+ in the process of story development for the web. While it’s a good idea
+ to have one specific editor manage the website, contributors and editors
+ should all play with and learn about the web. Instead of “can you make
+ a computer do XYZ for me?”, we should be saying “can you show me how to
+ make a computer do XYZ?”</li>
+ <li name="6448" id="6448" class="graf--li"><strong class="markup--strong markup--li-strong">Not just social media<br/></strong>A
+ web editor could do much more than simply being in charge of the social
+ media accounts for the student paper. Their responsibility could include
+ teaching all other editors to be listening to what’s happening online.
+ The web editor can take advantage of live information to change how the
+ student newsroom reports news in real time.</li>
+ <li name="ab30" id="ab30"
+ class="graf--li"><strong class="markup--strong markup--li-strong">Web (interactive) editor<br/></strong>The
+ goal of having a web editor should be for someone to build and tell stories
+ that take full advantage of the web as their medium. Too often the web’s
+ interactivity is not considered when developing the story. The web then
+ ends up as a resting place for print words.</li>
+ </ol>
+ <p name="e983" id="e983" class="graf--p">Editors at newsrooms are still figuring out how to convince writers of
+ the benefit to having their content online. There’s still a stronger draw
+ to writers seeing their name in print than on the web. Showing writers
+ that their stories can be told in new ways to larger audiences is a convincing
+ argument that the web is a starting point for telling a story, not its
+ graveyard.</p>
+ <p name="5c11" id="5c11" class="graf--p">When everyone in the newsroom approaches their website with the intention
+ of using it to explore the web as a medium, they all start to ask “what
+ is possible?” and “what can be done?” You can’t expect students to think
+ in terms of the web if it’s treated as a place for print words to hang
+ out on a web page.</p>
+ <p name="4eb1" id="4eb1" class="graf--p">We’re OK with this problem, if we see newsrooms continue to take small
+ steps towards having all their editors involved in the stories for the
+ web.</p>
+ <figure name="7aab" id="7aab" class="graf--figure">
+ <div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 382px;">
+ <div class="aspect-ratio-fill" style="padding-bottom: 54.6%;"></div>
+ <img class="graf-image" data-image-id="1*2Ln_DmC95Xpz6LzgywkcFQ.png"
+ data-width="1315" data-height="718" data-action="zoom" data-action-value="1*2Ln_DmC95Xpz6LzgywkcFQ.png"
+ src="https://d262ilb51hltx0.cloudfront.net/max/800/1*2Ln_DmC95Xpz6LzgywkcFQ.png"/>
+ </div>
+ <figcaption class="imageCaption">The current Open Journalism site was a few years in the making. This was
+ an original launch page we use in 2012</figcaption>
+ </figure>
+ <h3 name="08f5" id="08f5" class="graf--h3">What we know</h3>
+ <ul class="postList">
+ <li name="f7fe" id="f7fe" class="graf--li"><strong class="markup--strong markup--li-strong">New process</strong>
+ <br/>Our rough research has told us newsrooms need to be reorganized. This
+ includes every part of the newsroom’s workflow: from where a story and
+ its information comes from, to thinking of every word, pixel, and interaction
+ the reader will have with your stories. If I was a photo editor that wanted
+ to re-think my process with digital tools in mind, I’d start by asking
+ “how are photo assignments processed and sent out?”, “how do we receive
+ images?”, “what formats do images need to be exported in?”, “what type
+ of screens will the images be viewed on?”, and “how are the designers getting
+ these images?” Making a student newsroom digital isn’t about producing
+ “digital manifestos”, it’s about being curious enough that you’ll want
+ to to continue experimenting with your process until you’ve found one that
+ fits your newsroom’s needs.</li>
+ <li name="d757" id="d757" class="graf--li"><strong class="markup--strong markup--li-strong">More (remote) mentorship</strong>
+ <br/>Lack of mentorship is still a big problem. <a href="http://www.google.com/get/journalismfellowship/"
+ data-href="http://www.google.com/get/journalismfellowship/" class="markup--anchor markup--li-anchor"
+ rel="nofollow">Google’s fellowship program</a> is great. The fact that it
+ only caters to United States students isn’t. There are only a handful of
+ internships in Canada where students interested in journalism can get experience
+ writing code and building interactive stories. We’re OK with this for now,
+ as we expect internships and mentorship over the next 5 years between professional
+ newsrooms and student newsrooms will only increase. It’s worth noting that
+ some of that mentorship will likely be done remotely.</li>
+ <li name="a9b8"
+ id="a9b8" class="graf--li"><strong class="markup--strong markup--li-strong">Changing a newsroom culture</strong>
+ <br/>Skill diversity needs to change. We encourage every student newsroom we
+ talk to, to start building a partnership with their school’s Computer Science
+ department. It will take some work, but you’ll find there are many CS undergrads
+ that love playing with web technologies, and using data to tell stories.
+ Changing who is in the newsroom should be one of the first steps newsrooms
+ take to changing how they tell stories. The same goes with getting designers
+ who understand the wonderful interactive elements of the web and students
+ who love statistics and exploring data. Getting students who are amazing
+ at design, data, code, words, and images into one room is one of the coolest
+ experience I’ve had. Everyone benefits from a more diverse newsroom.</li>
+ </ul>
+ <h3 name="a67e" id="a67e" class="graf--h3">What we don’t know</h3>
+ <ul class="postList">
+ <li name="7320" id="7320" class="graf--li"><strong class="markup--strong markup--li-strong">Sharing curiosity for the web</strong>
+ <br/>We don’t know how to best teach students about the web. It’s not efficient
+ for us to teach coding classes. We do go into newsrooms and get them running
+ their first code exercises, but if someone wants to learn to program, we
+ can only provide the initial push and curiosity. We will be trying out
+ “labs” with a few schools next school year to hopefully get a better idea
+ of how to teach students about the web.</li>
+ <li name="8b23" id="8b23" class="graf--li"><strong class="markup--strong markup--li-strong">Business</strong>
+ <br/>We don’t know how to convince the business side of student papers that
+ they should invest in the web. At the very least we’re able to explain
+ that having students graduate with their current skill set is painful in
+ the current job market.</li>
+ <li name="191e" id="191e" class="graf--li"><strong class="markup--strong markup--li-strong">The future</strong>
+ <br/>We don’t know what journalism or the web will be like in 10 years, but
+ we can start encouraging students to keep an open mind about the skills
+ they’ll need. We’re less interested in preparing students for the current
+ newsroom climate, than we are in teaching students to have the ability
+ to learn new tools quickly as they come and go.</li>
+ </ul>
+ </div>
+ <div class="section-inner sectionLayout--outsetColumn">
+ <figure name="b500" id="b500" class="graf--figure postField--outsetCenterImage">
+ <div class="aspectRatioPlaceholder is-locked" style="max-width: 1020px; max-height: 371px;">
+ <div class="aspect-ratio-fill" style="padding-bottom: 36.4%;"></div>
+ <img class="graf-image" data-image-id="1*Zz5haO6iz7Hlj0z2IUHulg.png"
+ data-width="1100" data-height="400" data-action="zoom" data-action-value="1*Zz5haO6iz7Hlj0z2IUHulg.png"
+ src="https://d262ilb51hltx0.cloudfront.net/max/1200/1*Zz5haO6iz7Hlj0z2IUHulg.png"/>
+ </div>
+ <figcaption class="imageCaption">Another slide from 2012 website</figcaption>
+ </figure>
+ </div>
+ <div class="section-inner layoutSingleColumn">
+ <h3 name="009a" id="009a" class="graf--h3">What we’re trying to share with others</h3>
+ <ul class="postList">
+ <li name="8bfa" id="8bfa" class="graf--li"><strong class="markup--strong markup--li-strong">A concise guide to building stories for the web</strong>
+ <br/>There are too many options to get started. We hope to provide an opinionated
+ guide that follows both our experiences, research, and observations from
+ trying to teach our peers.</li>
+ </ul>
+ <p name="8196" id="8196" class="graf--p">Student newsrooms don’t have investors to please. Student newsrooms can
+ change their website every week if they want to try a new design or interaction.
+ As long as students start treating the web as a different medium, and start
+ building stories around that idea, then we’ll know we’re moving forward.</p>
+ <h3
+ name="f6c6" id="f6c6" class="graf--h3">A note to professional news orgs</h3>
+ <p name="d8f5" id="d8f5" class="graf--p">We’re also asking professional newsrooms to be more open about their process
+ of developing stories for the web. You play a big part in this. This means
+ writing about it, and sharing code. We need to start building a bridge
+ between student journalism and professional newsrooms.</p>
+ <figure name="7ed3"
+ id="7ed3" class="graf--figure">
+ <div class="aspectRatioPlaceholder is-locked" style="max-width: 686px; max-height: 400px;">
+ <div class="aspect-ratio-fill" style="padding-bottom: 58.3%;"></div>
+ <img class="graf-image" data-image-id="1*bXaR_NBJdoHpRc8lUWSsow.png"
+ data-width="686" data-height="400" src="https://d262ilb51hltx0.cloudfront.net/max/800/1*bXaR_NBJdoHpRc8lUWSsow.png"/>
+ </div>
+ <figcaption class="imageCaption">2012</figcaption>
+ </figure>
+ <h3 name="ee1b" id="ee1b" class="graf--h3">This is a start</h3>
+ <p name="ebf9" id="ebf9" class="graf--p">We going to continue slowly growing the content on <a href="http://pippinlee.github.io/open-journalism-project/"
+ data-href="http://pippinlee.github.io/open-journalism-project/" class="markup--anchor markup--p-anchor"
+ rel="nofollow">Open Journalism</a>. We still consider this the beta version,
+ but expect to polish it, and beef up the content for a real launch at the
+ beginning of the summer.</p>
+ <p name="bd44" id="bd44" class="graf--p">We expect to have more original tutorials as well as the beginnings of
+ what a curriculum may look like that a student newsroom can adopt to start
+ guiding their transition to become a web first newsroom. We’re also going
+ to be working with the <a href="http://queensjournal.ca/" data-href="http://queensjournal.ca/"
+ class="markup--anchor markup--p-anchor" rel="nofollow">Queen’s Journal</a> and
+ <a
+ href="http://ubyssey.ca/" data-href="http://ubyssey.ca/" class="markup--anchor markup--p-anchor"
+ rel="nofollow">The Ubyssey</a>next school year to better understand how to make the student
+ newsroom a place for experimenting with telling stories on the web. If
+ this sound like a good idea in your newsroom, we’re still looking to add
+ 1 more school.</p>
+ <p name="abd5" id="abd5" class="graf--p">We’re trying out some new shoes. And while they’re not self-lacing, and
+ smell a bit different, we feel lacing up a new pair of kicks can change
+ a lot.</p>
+ <figure name="4c68" id="4c68" class="graf--figure">
+ <div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 393px;">
+ <div class="aspect-ratio-fill" style="padding-bottom: 56.2%;"></div>
+ <img class="graf-image" data-image-id="1*lulfisQxgSQ209vPHMAifg.png"
+ data-width="950" data-height="534" data-action="zoom" data-action-value="1*lulfisQxgSQ209vPHMAifg.png"
+ src="https://d262ilb51hltx0.cloudfront.net/max/800/1*lulfisQxgSQ209vPHMAifg.png"/>
+ </div>
+ </figure>
+ <p name="c6bf" id="c6bf" class="graf--p graf--empty">
+ <br/>
+ </p>
+ <p name="2c5c" id="2c5c" class="graf--p"><strong class="markup--strong markup--p-strong">Let’s talk. Let’s listen.</strong>
+ </p>
+ <p name="63ec" id="63ec" class="graf--p"><strong class="markup--strong markup--p-strong">We’re still in the early stages of what this project will look like, so if you want to help or have thoughts, let’s talk.</strong>
+ </p>
+ <p name="9376" id="9376" class="graf--p"><a href="mailto:[email protected]" data-href="mailto:[email protected]"
+ class="markup--anchor markup--p-anchor" rel="nofollow"><strong class="markup--strong markup--p-strong">[email protected]</strong></a>
+ </p>
+ <p name="dc4d" id="dc4d" class="graf--p graf--empty">
+ <br/>
+ </p>
+ <p name="1bdf" id="1bdf" class="graf--p graf--empty">
+ <br/>
+ </p>
+ <p name="ea00" id="ea00" class="graf--p graf--last"><em class="markup--em markup--p-em">This isn’t supposed to be a </em>
+ <strong
+ class="markup--strong markup--p-strong"><em class="markup--em markup--p-em">manifesto™©</em>
+ </strong><em class="markup--em markup--p-em"> we just think it’s pretty cool to share what we’ve learned so far, and hope you’ll do the same. We’re all in this together.</em>
+ </p>
+ </div>
+ </div>
+ </section>
+ </div>
+ </div>
+ <div class="postFooter--simple2 supplementalPostContent layoutSingleColumn js-postFooter">
+ <div class="u-clearfix postFooter-actions--simple2">
+ <div class="u-floatLeft">
+ <button class="button button--primary button--toggle button--recommend js-recommendButton"
+ title="Recommend to share this article with your followers and let the author know you liked it"
+ data-action="sign-in-prompt" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/fb39f4f701bb"><span class="icon icon--heart2Outline75 icon--default"></span><span class="icon icon--active icon--heart2"></span>
+ <span
+ class="button-label label--default">Recommend</span><span class="button-label label--active">Recommended</span>
+ </button>
+ <!-- Recommended by string will be injected here from the VoteWidget -->
+ <div class="voteWidget--footer js-footerVoteWidget"></div>
+ </div>
+ <div class="u-floatRight">
+ <div class="buttonSet">
+ <button class="button button--vertical button--bookmark js-bookmarkButton"
+ title="Bookmark this story to read later" data-action="sign-in-prompt"
+ data-requires-token="true" data-redirect="/_/bookmark/p/fb39f4f701bb"><span class="icon icon--readingList2outline icon--default"></span>
+ <span
+ class="icon icon--active icon--readingList2"></span><span class="label label--default">Bookmark</span><span class="label label--active">Bookmarked</span>
+ </button>
+ <button class="button button--vertical button--share" title="Share this story on Twitter, Facebook, or email"
+ data-action="show-share-popover" data-action-value="fb39f4f701bb" data-action-source="footer"><span class="icon icon--share2Outline "></span><span class="label ">Share</span>
+ </button>
+ <button class="button button--vertical u-xs-hide button--more" title="More actions"
+ data-action="more-actions"><span class="icon icon--arrowDownThin "></span><span class="label ">More</span>
+ </button>
+ </div>
+ </div>
+ </div>
+ <div class="postFooter-mobileRecommendNote u-showOnMobile js-recommendNote"></div>
+ <div class="postFooter-tags infoCard js-postTags"></div>
+ <div class="postFooter-info js-postFooterInfo">
+ <div class="infoCard u-clearfix js-infoCardUser">
+ <div class="infoCard-avatar"><a href="https://medium.com/@pippinlee" class="avatar avatar--small" title="Go to the profile of Pippin Lee"><img src="https://d262ilb51hltx0.cloudfront.net/fit/c/60/60/0*312pRa3Jh6ESE7Es.jpeg" class="avatar-image avatar-image--small" title="Pippin Lee"/></a>
+ </div>
+ <div class="infoCard-info ">
+ <div class="infoCard-wrapper">
+ <div class="infoCard-title">Written <span class="postMetaInline postMetaInline--date"><span class="u-xs-hide"> on </span>
+ <time
+ class="post-date">Mar 17</time>
+ </span>by</div><a class="link link--primary" title="Go to the profile of Pippin Lee"
+ href="https://medium.com/@pippinlee">Pippin Lee</a>
+ <div class="infoCard-bio">I don’t know much, so I better start here.</div>
+ </div>
+ </div>
+ <div class="infoCard-actions">
+ <button class="button button--small button--toggle" title="Follow to get new stories and recommendations from this author"
+ data-action="sign-in-prompt" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/28ff78fed88e/fb39f4f701bb"><span class="button-label label--default">Follow</span><span class="button-label label--active">Following</span>
+ </button>
+ </div>
+ </div>
+ <div class="postFooter-acknowledgments--simple2">
+ <div class="postMeta-acknowledgments"><span data-tooltip="The following people helped the author by providing feedback before the story was published.">Thanks to</span> <span><a class="link" title="Go to the profile of Asad Chishti" href="https://medium.com/@asad_ch">Asad Chishti</a></span>.</div>
+ </div>
+ </div>
+ </div>
+ <div class="responsesWrapper supplementalPostContent js-responsesWrapper"></div>
+ </div>
+ </div>
+ </div>
+ </section>
+ <footer class="post-footer supplementalPostContent js-readNext"></footer>
+ </article>
+ </div>
+ </div>
+ </div>
+ <div class="loadingBar"></div>
+ <script>
+ // <![CDATA[
+ var GLOBALS = {"audioUrl":"https://d1fcbxp97j4nb2.cloudfront.net","baseUrl":"https://medium.com","bestOfFirstSlug":"may-2013","bestOfLatestSlug":"february-2015","buildLabel":"14755-791533a","currentUser":{"userId":"lo_1c9aaaf1d066","subscriberEmail":""},"currentUserHasUnverifiedEmail":false,"defaultPreviewImage":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/default-preview-image.IsBK38jFAJBlWifMLO4z9g.png","defaultUserImage":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/default-avatar.dmbNkD5D-u45r44go_cf0g.png","editorTipsAddCoverImage":"/img/help/add-cover.gif","editorTipsAddMediaImage":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/help/add-media.SZH2LBmkwVExuhozFfVvYg.gif","editorTipsAddMediaImageStatic":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/help/add-media-start.GXmqQ2Svt1WfZGIZSM93tg.gif","editorTipsEmbedImageStatic":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/help/embed-start.EBJ2PcWFJuYopsQV4wwklA.gif","editorTipsShareDraftImage":"/img/help/share-draft.gif","editorTipsTextHighlightImage":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/help/text-highlight.XVChoKYZ1-s3gJgHm9-7Yg.gif","editorTipsTextHighlightImageStatic":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/help/text-highlight-start.AvTbakaFuUCd05YoMECoMQ.gif","facebookKey":"542599432471018","facebookScope":["public_profile","email","user_friends"],"homeImageId":"1*4ncz3hLxmL8E_bUh-0z62w.jpeg","importHighlightMenuImage":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/import/highlight-menu.kzoaVM8mJJ-Hu9m9uo3Omg.png","importImageHighlightMenuImage":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/import/image-highlight-menu.q43-H2dl0JvBS_5znQCW8A.png","importPublishImage":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/import/publish-metabar.YbEX1a2Pu0rAR_LuKeg8JA.png","isAuthenticated":false,"isCurrentUserVerified":"","language":null,"loadingPlaceholderImg":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/media-loading-placeholder.b31hiO4ynbDLRrXWEFF4aQ.png","mediumTwitterScreenName":"medium","miroUrl":"https://d262ilb51hltx0.cloudfront.net","moduleUrls":{"base":"https://dnqgz544uhbo8.cloudfront.net/_/fp/js/main-base.bundle.Jj7AcT-b4AiTV-boxFl3cw.js","notes":"https://dnqgz544uhbo8.cloudfront.net/_/fp/js/main-notes.bundle.dKMMKHYIbYxX2UEPRCg-jA.js","posters":"https://dnqgz544uhbo8.cloudfront.net/_/fp/js/main-posters.bundle.-sFjbfusRCArJ7oFobHVvg.js","common-async":"https://dnqgz544uhbo8.cloudfront.net/_/fp/js/main-common-async.bundle.Z2CIHf7UbVWQRcRT0-SqhQ.js","stats":"https://dnqgz544uhbo8.cloudfront.net/_/fp/js/main-stats.bundle._xcIHGCpUEI57EYVKKjxQQ.js","misc-screens":"https://dnqgz544uhbo8.cloudfront.net/_/fp/js/main-misc-screens.bundle.9mIsX8C1a-fuxiNdQVpUIg.js"},"onboardingLandscapeFooterImage":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/logged-out-footer/landscape-bg.W4fnHJbJjHt0fgxh7ssrvQ.jpg","postColumnWidth":700,"previewConfig":{"weightThreshold":1,"weightEmptyParagraph":0,"weightIframeParagraph":0.8,"weightImageParagraph":0.51,"weightTextParagraph":0.05,"weightBq":0.003,"weightH":0.003,"weightP":0.0025,"minPTextLength":40,"truncateBoundaryChars":20,"detectTitle":true,"detectTitleLevThreshold":0.15,"previewConfigVariantA":{"weightThreshold":2},"previewConfigVariantB":{"weightThreshold":10,"detectTitle":false}},"productName":"Medium","responsesRecommendationThreshold":5,"supportsEdit":false,"termsUrl":"//medium.com/policy/9db0094a1e0f","textshotHost":"textshot.medium.com","transactionId":"1426731097181:b2d7cfb0d7fc","useragent":{"browser":"other","family":"","os":"","version":0,"supportsDesktopEdit":false,"supportsMobileEdit":false,"supportsInteract":false,"supportsView":true,"isMobile":false,"isTablet":false,"isNative":false,"supportsFileAPI":false,"isTier1":false,"clientVersion":"","unknownParagraphsBad":false,"clientChannel":"","supportsRealScrollEvents":false,"supportsVhUnits":false,"ruinsViewportSections":false,"supportsHtml5Video":false,"supportsMagicUnderlines":false},"variants":{"policy_collection_slug":"policy","can_vote":true,"can_update_settings":true,"can_send_push_notifications":true,"can_export_data":true,"enable_notes":true,"allow_test_auth":"disallow","enable_logged_out_sessions":true,"filter_other_languages":true,"use_experimental_css":true,"has_prl_provider_collection_latest":true,"can_resume_from_last_read_location":true,"can_report_bad_posts":true,"enable_social_posts":true,"enable_gosocial_queries":true,"enable_embeds":true,"enable_embed_ui":true,"enable_recommend_notes":true,"enable_recommend_notes_composition":true,"max_upload_size_mb":25,"use_full_width_images":true,"upload_multiple_files":true,"can_follow_users":true,"enable_coverless_consumption_ios":true,"allow_request_account_deletion":true,"enable_sidebar_upload_collection_logo":true,"use_session_tokens":true,"enable_bookmarks_list_ios":true,"enable_gifs_ios":true,"feature_post_in_sidebar":true,"see_featured_post_tab":true,"show_respond_button":true,"can_see_follower_counts":true,"enable_prl_reasons_on_homepage":true,"enable_follower_emails":true,"post_recommend_lists":true,"receive_rec_note_pushes":true,"receive_post_published_pushes":true,"enable_account_conversion":true,"use_new_scheduled_delivery_flow":true,"feed_homepage":true,"enable_collection_subscription_fanout":true,"post_publish_email":true,"manage_collection_in_post_metabar":true,"send_delighted_survey":true,"welcome_post_url":"https://medium.com/@Medium/welcome-to-medium-735fbbc085a1","post_share_metabar":true,"self_serve_fonts":true,"use_direct_switchboard_collection_published_flow":true,"listing_editor":true,"beautiful_homepage":true,"new_twitter_flow":true,"new_facebook_flow":true,"google_search":true,"enable_simple_reach":true,"signin_services":"twitter,facebook","signup_services":"twitter,facebook","enable_categories":true,"enable_homepage_promos":true,"promo_stream_signup":true,"promo_stream_feature_following":true,"promo_stream_why_write":true,"promo_stream_feature_responses":true,"promo_sidebar_start_writing":true,"promo_sidebar_writing_prompt":true,"promo_sidebar_feature_unlisted":true,"interactions_footer":true,"post_page_collection_logo":true,"enable_bing_search":true,"enable_algolia_search":true,"show_tagged_posts_in_search":true,"enable_textshots":true,"feature_post_on_profile":true,"streamy_profile":true,"profile_interstitial":true,"casual_content_viewer":true,"casual_content_creator":true,"ttr_on_post_list":true,"drafts_unauth":true,"enable_quotes":true,"combined_margin_quotes":true,"friends_only_quotes":true,"enable_quotes_emails":true,"consolidate_publication_info":true,"enable_viewed_posts_visual_differentiation":true,"edit_tags":true,"view_tags":true,"inline_tags":true,"edit_publication_contact_info":true,"view_publication_contact_info":true,"enable_search_ios":true,"enable_new_cover_flow_ios":true,"enable_rating_prompt":true,"enable_post_show_refactor":true,"enable_your_stories_more_actions":true,"enable_user_search_with_bing":true,"can_view_masthead":true,"enable_textshot_post":true,"show_related_tags":true,"restrict_set_visibility":true},"xsrfToken":"","useDynamicCss":false,"canonicalBaseUrl":"https://medium.com","iosAppId":"828256236","supportEmail":"[email protected]","teamName":"Team Medium","fp":{"/img/email/check1.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/check1.0DM77li7vZhq5o2V9cVYLQ.png","/img/email/check2.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/check2.GLlNusQmn1hwo9WDN-gE1w.png","/img/email/check3.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/check3.7VxOUVMXAVbHRRnzMrJ_5A.png","/img/email/fb_logo.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/fb_logo.Q0M98YwNTu77gLWTK6-RyQ.png","/img/email/heart1.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/heart1.rnGEmSwcGUhztl_zSU7l6Q.png","/img/email/heart2.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/heart2.HBiLu3koIYsKjjKroohgbA.png","/img/email/heart3.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/heart3.AIJBOHw11HuhdClVJNtmtg.png","/img/email/logo.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/logo.dPr5ZCzgKMooKYKJwnKarQ.png","/img/email/twitter_logo.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/twitter_logo.Pz4a3o9WMU5QioxLKcyFhQ.png","/img/email/unlisted.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/unlisted.ikh8R2LElOz_1YM8A2Db4g.png","/img/email/follow.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/follow.-VSXwmQhfi2entHPht8l2g.png","/img/email/recommend.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/recommend.scZJ6ysjDBJYd-K3wFK2Hg.png","/img/email/write.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/write.wWIWbAqfZUqn1JD4YSJYNw.png"},"configLabel":"8aa88e6","cssBaseUrl":"https://dnqgz544uhbo8.cloudfront.net/_/fp/css/main-base.yJzZ9u5sH5_3PnBRjyto6A.css","cssSpriteUrl":"https://dnqgz544uhbo8.cloudfront.net/_/fp/css/main-sprites.1B2M2Y8AsgTpgAmY7PhCfg.css","cssFontUrl":"https://dnqgz544uhbo8.cloudfront.net/_/fp/css/fonts-base.RB0XGp9t6rSpksYHwudieQ.css","googleAnalyticsTrackingCode":"UA-24232453-2","iconsJsUrl":"https://dnqgz544uhbo8.cloudfront.net/_/fp/js/icons.kMtvd60hqPtTdUxvP9j8rw.js","jsShivUrl":"https://dnqgz544uhbo8.cloudfront.net/_/fp/js/shiv.RI2ePTZ5gFmMgLzG5bEVAA.js","jsUrl":"https://dnqgz544uhbo8.cloudfront.net/_/fp/js/main-base.bundle.Jj7AcT-b4AiTV-boxFl3cw.js","facebookNamespace":"medium-com","highlightAnimationImg":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/highlight-educational-animation._BG4I2h0KF83wFb3fWnWbA.gif","editorTipsEmbedImage":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/help/embed.1BM0Di9vd91Kv8fLioJabw.gif","authBaseUrl":"https://medium.com","imageUploadSizeMb":25,"isAuthDomainRequest":true,"favIconUrl":"https://dnqgz544uhbo8.cloudfront.net/_/fp/icons/favicon.n7eHNqdWyHhbTLN2-3a-6g.ico","embedded":{"value":{"id":"fb39f4f701bb","versionId":"aa1cb8750a55","creatorId":"28ff78fed88e","creator":{"userId":"28ff78fed88e","name":"Pippin Lee","username":"pippinlee","createdAt":1344986320107,"lastPostCreatedAt":1425538922974,"imageId":"0*312pRa3Jh6ESE7Es.jpeg","backgroundImageId":"0*GqJ25S72ddd-AlSZ.jpeg","bio":"I don’t know much, so I better start here.","twitterScreenName":"pippinlee","social":{"userId":"lo_1c9aaaf1d066","targetUserId":"28ff78fed88e","type":"Social"},"facebookAccountId":"","type":"User"},"homeCollectionId":"","title":"The Open Journalism Project: Better Student Journalism","detectedLanguage":"en","latestVersion":"aa1cb8750a55","latestPublishedVersion":"aa1cb8750a55","hasUnpublishedEdits":false,"latestRev":3072,"createdAt":1425538922974,"updatedAt":1426611099742,"acceptedAt":0,"firstPublishedAt":1426609660294,"latestPublishedAt":1426611099742,"isRead":false,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"We pushed out the first version of the Open Journalism site in January. Here’s what we’ve learned about student journalism since 2011.","image":{"backgroundSize":"full","strategy":"crop-fixed"},"bodyModel":{"paragraphs":[{"name":"1f11","type":4,"text":"","markups":[],"layout":5,"metadata":{"id":"1*oBWUXtszDsiv_-Qq2bFLTQ.png","originalWidth":1368,"originalHeight":600}},{"name":"3c62","type":2,"text":"Open Journalism Project:","markups":[],"alignment":2},{"name":"e970","type":1,"text":"","markups":[]},{"name":"425a","type":13,"text":"Better Student Journalism","markups":[{"type":2,"start":0,"end":25}],"alignment":2},{"name":"a511","type":1,"text":"","markups":[]},{"name":"08db","type":13,"text":"","markups":[]},{"name":"acc4","type":1,"text":"","markups":[]},{"name":"d178","type":1,"text":"We pushed out the first version of the Open Journalism site in January. Our goal is for the site to be a place to teach students what they should know about journalism on the web. It should be fun too.","markups":[{"type":3,"start":39,"end":59,"href":"http://pippinlee.github.io/open-journalism-project/","title":"","rel":"","anchorType":0}]},{"name":"01ed","type":1,"text":"Topics like mapping, security, command line tools, and open source are all concepts that should be made more accessible, and should be easily understood at a basic level by all journalists. We’re focusing on students because we know student journalism well, and we believe that teaching maturing journalists about the web will provide them with an important lens to view the world with. This is how we got to where we are now.","markups":[{"type":3,"start":12,"end":19,"href":"http://pippinlee.github.io/open-journalism-project/Mapping/","title":"","rel":"","anchorType":0},{"type":3,"start":21,"end":29,"href":"http://pippinlee.github.io/open-journalism-project/Security/","title":"","rel":"","anchorType":0},{"type":3,"start":55,"end":66,"href":"http://pippinlee.github.io/open-journalism-project/Open-source/","title":"","rel":"","anchorType":0}]},{"name":"0348","type":3,"text":"Circa 2011","markups":[]},{"name":"f923","type":1,"text":"In late 2011 I sat in the design room of our university’s student newsroom with some of the other editors: Kate Hudson, Brent Rose, and Nicholas Maronese. I was working as the photo editor then—something I loved doing. I was very happy travelling and photographing people while listening to their stories.","markups":[]},{"name":"c9d4","type":1,"text":"Photography was my lucky way of experiencing the many types of people my generation seemed to avoid, as well as many the public spends too much time discussing. One of my habits as a photographer was scouring sites like Flickr to see how others could frame the world in ways I hadn’t previously considered.","markups":[]},{"name":"06e8","type":4,"text":"topleftpixel.com","markups":[],"layout":1,"metadata":{"id":"1*AzYWbe4cZkMMEUbfRjysLQ.png","originalWidth":1000,"originalHeight":500}},{"name":"930f","type":1,"text":"I started discovering beautiful things the web could do with images: things not possible with print. Just as every generation revolts against walking in the previous generations shoes, I found myself questioning the expectations that I came up against as a photo editor. In our newsroom the expectations were built from an outdated information world. We were expected to fill old shoes.","markups":[{"type":3,"start":43,"end":67,"href":"http://wvs.topleftpixel.com/13/02/06/timelapse-strips-homewood.htm","title":"","rel":"","anchorType":0}]},{"name":"2674","type":1,"text":"So we sat in our student newsroom—not very happy with what we were doing. Our weekly newspaper had remained essentially unchanged for 40+ years. Each editorial position had the same requirement every year. The big change happened in the 80s when the paper started using colour. We’d also stumbled into having a website, but it was updated just once a week with the release of the newspaper.","markups":[{"type":2,"start":210,"end":213}]},{"name":"e498","type":1,"text":"Information had changed form, but the student newsroom hadn’t, and it was becoming harder to romanticize the dusty newsprint smell coming from the shoes we were handed down from previous generations of editors. It was, we were told, all part of “becoming a journalist.”","markups":[]},{"name":"12da","type":4,"text":"","markups":[],"layout":1,"metadata":{"id":"1*d0Hp6KlzyIcGHcL6to1sYQ.png","originalWidth":868,"originalHeight":451}},{"name":"e2f0","type":3,"text":"We don’t know what we don’t know","markups":[]},{"name":"8263","type":1,"text":"We spent much of the rest of the school year asking “what should we be doing in the newsroom?”, which mainly led us to ask “how do we use the web to tell stories?” It was a straightforward question that led to many more questions about the web: something we knew little about. Out in the real world, traditional journalists were struggling to keep their jobs in a dying print world. They wore the same design of shoes that we were supposed to fill. Being pushed to repeat old, failing strategies and blocked from trying something new scared us.","markups":[]},{"name":"231e","type":1,"text":"We had questions, so we started doing some research. We talked with student newsrooms in Canada and the United States, and filled too many Google Doc files with notes. Looking at the notes now, they scream of fear. We annotated our notes with naive solutions, often involving scrambled and immature odysseys into the future of online journalism.","markups":[]},{"name":"6ec3","type":1,"text":"There was a lot we didn’t know. We didn’t know how to build a mobile app. We didn’t know if we should build a mobile app. We didn’t know how to run a server. We didn’t know where to go to find a server. We didn’t know how the web worked. We didn’t know how people used the web to read news. We didn’t know what news should be on the web. If news is just information, what does that even look like?","markups":[{"type":1,"start":47,"end":72},{"type":1,"start":89,"end":120},{"type":1,"start":137,"end":156},{"type":1,"start":173,"end":201},{"type":1,"start":218,"end":236},{"type":1,"start":253,"end":289},{"type":1,"start":306,"end":336}]},{"name":"f373","type":1,"text":"We asked these questions to many students at other papers to get a consensus of what had worked and what hadn’t. They reported similar questions and fears about the web but followed with “print advertising is keeping us afloat so we can’t abandon it”.","markups":[]},{"name":"034b","type":1,"text":"In other words, we knew that we should be building a newer pair of shoes, but we didn’t know what the function of the shoes should be.","markups":[]},{"name":"ea15","type":3,"text":"Common problems in student newsrooms (2011)","markups":[]},{"name":"a90b","type":1,"text":"Our questioning of other student journalists in 15 student newsrooms brought up a few repeating issues.","markups":[]},{"name":"a586","type":9,"text":"Lack of mentorship","markups":[]},{"name":"a953","type":9,"text":"A news process that lacked consideration of the web","markups":[]},{"name":"6286","type":9,"text":"No editor/position specific to the web","markups":[]},{"name":"04c1","type":9,"text":"Little exposure to many of the cool projects being put together by professional newsrooms","markups":[]},{"name":"a1fb","type":9,"text":"Lack of diverse skills within the newsroom. Writers made up 95% of the personnel. Students with other skills were not sought because journalism was seen as “a career with words.” The other 5% were designers, designing words on computers, for print.","markups":[]},{"name":"0be9","type":9,"text":"Not enough discussion between the business side and web efforts","markups":[]},{"name":"79ed","type":4,"text":"From our 2011 research","markups":[],"layout":1,"metadata":{"id":"1*_9KYIFrk_PqWFgptsMDeww.png","originalWidth":1086,"originalHeight":500}},{"name":"8d0c","type":3,"text":"Common problems in student newsrooms (2013)","markups":[]},{"name":"3ef6","type":1,"text":"Two years later, we went back and looked at what had changed. We talked to a dozen more newsrooms and weren’t surprised by our findings.","markups":[]},{"name":"abb1","type":9,"text":"Still no mentorship or link to professional newsrooms building stories for the web","markups":[]},{"name":"9250","type":9,"text":"Very little control of website and technology","markups":[]},{"name":"d822","type":9,"text":"The lack of exposure that student journalists have to interactive storytelling. While some newsrooms are in touch with what’s happening with the web and journalism, there still exists a huge gap between the student newsroom and its professional counterpart","markups":[]},{"name":"6bf2","type":9,"text":"No time in the current news development cycle for student newsrooms to experiment with the web","markups":[]},{"name":"e62f","type":9,"text":"Lack of skill diversity (specifically coding, interaction design, and statistics)","markups":[]},{"name":"f4f0","type":9,"text":"Overly restricted access to student website technology. Changes are primarily visual rather than functional.","markups":[]},{"name":"8b8d","type":9,"text":"Significantly reduced print production of many papers","markups":[]},{"name":"dfe0","type":9,"text":"Computers aren’t set up for experimenting with software and code, and often locked down","markups":[]},{"name":"52cd","type":1,"text":"Newsrooms have traditionally been covered in copies of The New York Times or Globe and Mail. Instead newsrooms should try spend at 20 minutes each week going over the coolest/weirdest online storytelling in an effort to expose each other to what is possible. “Hey, what has the New York Times R&D lab been up to this week?”","markups":[{"type":3,"start":260,"end":322,"href":"http://nytlabs.com/","title":"","rel":"","anchorType":0}]},{"name":"0142","type":1,"text":"Instead of having computers that are locked down, try setting aside a few office computers that allow students to play and “break”, or encourage editors to buy their own Macbooks so they’re always able to practice with code and new tools on their own.","markups":[]},{"name":"5d29","type":1,"text":"From all this we realized that changing a student newsroom is difficult. It takes patience. It requires that the business and editorial departments of the student newsroom be on the same (web)page. The shoes of the future must be different from the shoes we were given.","markups":[]},{"name":"1ffc","type":1,"text":"We need to rethink how long the new shoe design will be valid. It’s more important that we focus on the process behind making footwear than on actually creating a specific shoe. We shouldn’t be building a shoe to last 40 years. Our footwear design process will allow us to change and adapt as technology evolves. The media landscape will change, so having a newsroom that can change with it will be critical.","markups":[]},{"name":"2888","type":1,"text":"We are building a shoe machine, not a shoe.","markups":[{"type":1,"start":0,"end":43}]},{"name":"1955","type":1,"text":"","markups":[]},{"name":"9c30","type":3,"text":"A train or light at the end of the tunnel: are student newsrooms changing for the better?","markups":[]},{"name":"1f98","type":1,"text":"","markups":[]},{"name":"4634","type":1,"text":"In our 2013 research we found that almost 50% of student newsrooms had created roles specifically for the web. This sounds great, but is still problematic in its current state.","markups":[{"type":1,"start":111,"end":176}]},{"name":"416f","type":4,"text":"We designed many of these slides to help explain to ourselves what we were doing","markups":[{"type":1,"start":0,"end":80}],"layout":1,"metadata":{"id":"1*Vh2MpQjqjPkzYJaaWExoVg.png","originalWidth":624,"originalHeight":560}},{"name":"39e6","type":1,"text":"When a newsroom decides to create a position for the web, it’s often with the intent of having content flow steadily from writers onto the web. This is a big improvement from just uploading stories to the web whenever there is a print issue. However…","markups":[{"type":2,"start":242,"end":250}]},{"name":"91b5","type":10,"text":"The handoff\nProblems arise because web editors are given roles that absolve the rest of the editors from thinking about the web. All editors should be involved in the process of story development for the web. While it’s a good idea to have one specific editor manage the website, contributors and editors should all play with and learn about the web. Instead of “can you make a computer do XYZ for me?”, we should be saying “can you show me how to make a computer do XYZ?”","markups":[{"type":1,"start":0,"end":11}]},{"name":"6448","type":10,"text":"Not just social media\nA web editor could do much more than simply being in charge of the social media accounts for the student paper. Their responsibility could include teaching all other editors to be listening to what’s happening online. The web editor can take advantage of live information to change how the student newsroom reports news in real time.","markups":[{"type":1,"start":0,"end":22}]},{"name":"ab30","type":10,"text":"Web (interactive) editor\nThe goal of having a web editor should be for someone to build and tell stories that take full advantage of the web as their medium. Too often the web’s interactivity is not considered when developing the story. The web then ends up as a resting place for print words.","markups":[{"type":1,"start":0,"end":25}]},{"name":"e983","type":1,"text":"Editors at newsrooms are still figuring out how to convince writers of the benefit to having their content online. There’s still a stronger draw to writers seeing their name in print than on the web. Showing writers that their stories can be told in new ways to larger audiences is a convincing argument that the web is a starting point for telling a story, not its graveyard.","markups":[]},{"name":"5c11","type":1,"text":"When everyone in the newsroom approaches their website with the intention of using it to explore the web as a medium, they all start to ask “what is possible?” and “what can be done?” You can’t expect students to think in terms of the web if it’s treated as a place for print words to hang out on a web page.","markups":[]},{"name":"4eb1","type":1,"text":"We’re OK with this problem, if we see newsrooms continue to take small steps towards having all their editors involved in the stories for the web.","markups":[]},{"name":"7aab","type":4,"text":"The current Open Journalism site was a few years in the making. This was an original launch page we use in 2012","markups":[],"layout":1,"metadata":{"id":"1*2Ln_DmC95Xpz6LzgywkcFQ.png","originalWidth":1315,"originalHeight":718}},{"name":"08f5","type":3,"text":"What we know","markups":[]},{"name":"f7fe","type":9,"text":"New process\nOur rough research has told us newsrooms need to be reorganized. This includes every part of the newsroom’s workflow: from where a story and its information comes from, to thinking of every word, pixel, and interaction the reader will have with your stories. If I was a photo editor that wanted to re-think my process with digital tools in mind, I’d start by asking “how are photo assignments processed and sent out?”, “how do we receive images?”, “what formats do images need to be exported in?”, “what type of screens will the images be viewed on?”, and “how are the designers getting these images?” Making a student newsroom digital isn’t about producing “digital manifestos”, it’s about being curious enough that you’ll want to to continue experimenting with your process until you’ve found one that fits your newsroom’s needs.","markups":[{"type":1,"start":0,"end":11}]},{"name":"d757","type":9,"text":"More (remote) mentorship\nLack of mentorship is still a big problem. Google’s fellowship program is great. The fact that it only caters to United States students isn’t. There are only a handful of internships in Canada where students interested in journalism can get experience writing code and building interactive stories. We’re OK with this for now, as we expect internships and mentorship over the next 5 years between professional newsrooms and student newsrooms will only increase. It’s worth noting that some of that mentorship will likely be done remotely.","markups":[{"type":3,"start":68,"end":95,"href":"http://www.google.com/get/journalismfellowship/","title":"","rel":"","anchorType":0},{"type":1,"start":0,"end":24}]},{"name":"a9b8","type":9,"text":"Changing a newsroom culture\nSkill diversity needs to change. We encourage every student newsroom we talk to, to start building a partnership with their school’s Computer Science department. It will take some work, but you’ll find there are many CS undergrads that love playing with web technologies, and using data to tell stories. Changing who is in the newsroom should be one of the first steps newsrooms take to changing how they tell stories. The same goes with getting designers who understand the wonderful interactive elements of the web and students who love statistics and exploring data. Getting students who are amazing at design, data, code, words, and images into one room is one of the coolest experience I’ve had. Everyone benefits from a more diverse newsroom.","markups":[{"type":1,"start":0,"end":27}]},{"name":"a67e","type":3,"text":"What we don’t know","markups":[]},{"name":"7320","type":9,"text":"Sharing curiosity for the web\nWe don’t know how to best teach students about the web. It’s not efficient for us to teach coding classes. We do go into newsrooms and get them running their first code exercises, but if someone wants to learn to program, we can only provide the initial push and curiosity. We will be trying out “labs” with a few schools next school year to hopefully get a better idea of how to teach students about the web.","markups":[{"type":1,"start":0,"end":29}]},{"name":"8b23","type":9,"text":"Business\nWe don’t know how to convince the business side of student papers that they should invest in the web. At the very least we’re able to explain that having students graduate with their current skill set is painful in the current job market.","markups":[{"type":1,"start":0,"end":8}]},{"name":"191e","type":9,"text":"The future\nWe don’t know what journalism or the web will be like in 10 years, but we can start encouraging students to keep an open mind about the skills they’ll need. We’re less interested in preparing students for the current newsroom climate, than we are in teaching students to have the ability to learn new tools quickly as they come and go.","markups":[{"type":1,"start":0,"end":10}]},{"name":"b500","type":4,"text":"Another slide from 2012 website","markups":[],"layout":3,"metadata":{"id":"1*Zz5haO6iz7Hlj0z2IUHulg.png","originalWidth":1100,"originalHeight":400}},{"name":"009a","type":3,"text":"What we’re trying to share with others","markups":[]},{"name":"8bfa","type":9,"text":"A concise guide to building stories for the web\nThere are too many options to get started. We hope to provide an opinionated guide that follows both our experiences, research, and observations from trying to teach our peers.","markups":[{"type":1,"start":0,"end":47}]},{"name":"8196","type":1,"text":"Student newsrooms don’t have investors to please. Student newsrooms can change their website every week if they want to try a new design or interaction. As long as students start treating the web as a different medium, and start building stories around that idea, then we’ll know we’re moving forward.","markups":[]},{"name":"f6c6","type":3,"text":"A note to professional news orgs","markups":[]},{"name":"d8f5","type":1,"text":"We’re also asking professional newsrooms to be more open about their process of developing stories for the web. You play a big part in this. This means writing about it, and sharing code. We need to start building a bridge between student journalism and professional newsrooms.","markups":[]},{"name":"7ed3","type":4,"text":"2012","markups":[],"layout":1,"metadata":{"id":"1*bXaR_NBJdoHpRc8lUWSsow.png","originalWidth":686,"originalHeight":400}},{"name":"ee1b","type":3,"text":"This is a start","markups":[]},{"name":"ebf9","type":1,"text":"We going to continue slowly growing the content on Open Journalism. We still consider this the beta version, but expect to polish it, and beef up the content for a real launch at the beginning of the summer.","markups":[{"type":3,"start":51,"end":66,"href":"http://pippinlee.github.io/open-journalism-project/","title":"","rel":"","anchorType":0}]},{"name":"bd44","type":1,"text":"We expect to have more original tutorials as well as the beginnings of what a curriculum may look like that a student newsroom can adopt to start guiding their transition to become a web first newsroom. We’re also going to be working with the Queen’s Journal and The Ubyssey next school year to better understand how to make the student newsroom a place for experimenting with telling stories on the web. If this sound like a good idea in your newsroom, we’re still looking to add 1 more school.","markups":[{"type":3,"start":243,"end":258,"href":"http://queensjournal.ca/","title":"","rel":"","anchorType":0},{"type":3,"start":263,"end":274,"href":"http://ubyssey.ca/","title":"","rel":"","anchorType":0}]},{"name":"abd5","type":1,"text":"We’re trying out some new shoes. And while they’re not self-lacing, and smell a bit different, we feel lacing up a new pair of kicks can change a lot.","markups":[]},{"name":"4c68","type":4,"text":"","markups":[],"layout":1,"metadata":{"id":"1*lulfisQxgSQ209vPHMAifg.png","originalWidth":950,"originalHeight":534}},{"name":"c6bf","type":1,"text":"","markups":[]},{"name":"2c5c","type":1,"text":"Let’s talk. Let’s listen.","markups":[{"type":1,"start":0,"end":25}]},{"name":"63ec","type":1,"text":"We’re still in the early stages of what this project will look like, so if you want to help or have thoughts, let’s talk.","markups":[{"type":1,"start":0,"end":121}]},{"name":"9376","type":1,"text":"[email protected]","markups":[{"type":3,"start":0,"end":20,"href":"mailto:[email protected]","title":"","rel":"nofollow","anchorType":0},{"type":1,"start":0,"end":20}]},{"name":"dc4d","type":1,"text":"","markups":[]},{"name":"1bdf","type":1,"text":"","markups":[]},{"name":"ea00","type":1,"text":"This isn’t supposed to be a manifesto™© we just think it’s pretty cool to share what we’ve learned so far, and hope you’ll do the same. We’re all in this together.","markups":[{"type":1,"start":28,"end":39},{"type":2,"start":0,"end":163}]}],"sections":[{"name":"465f","startIndex":0}]},"postDisplay":{"coverless":true}},"media":null,"virtuals":{"currentCollectionId":"","statusForCollection":"","createdAtRelative":"14 days ago","updatedAtRelative":"a day ago","acceptedAtRelative":"","createdAtEnglish":"March 4, 2015","updatedAtEnglish":"March 17, 2015","acceptedAtEnglish":"","firstPublishedAtEnglish":"March 17, 2015","latestPublishedAtEnglish":"March 17, 2015","allowNotes":true,"languageTier":1,"snippet":"We pushed out the first version of the Open Journalism site in January. Here’s what we’ve learned about student journalism since 2011.","previewImage":{"imageId":"1*oBWUXtszDsiv_-Qq2bFLTQ.png","filter":"","backgroundSize":"contain","originalWidth":1368,"originalHeight":600,"strategy":"resample","height":0,"width":0},"wordCount":2568,"imageCount":9,"readingTime":10.890566037735848,"subtitle":"We pushed out the first version of the Open Journalism site in January. Here’s what we’ve learned about student journalism since 2011.","postedIn":[],"publishedInCount":0,"usersBySocialRecommends":[],"notesBySocialRecommends":[],"proposedAtRelative":"","latestPublishedAtAbbreviated":"Mar 17","firstPublishedAtAbbreviated":"Mar 17","emailSnippet":"Open Journalism Project: ¶\n\nBetter Student Journalism ¶\n\nWe pushed out the first version of the Open Journalism site in January. Our goal is for the site to be a place to teach students what they should know about journalism on the web. It should be fun too. ¶\n\nTopics like mapping, security, command line tools, and open source are all concepts that should be made more accessible, and should be easily understood at a basic level by all journalists.","recommends":0,"featuredRecommendNoteId":"","socialRecommends":[],"addedToFeedAt":0,"isBookmarked":false},"coverless":true,"slug":"the-open-journalism-project-better-student-journalism","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"contentType":0,"isViewed":false,"uniqueSlug":"the-open-journalism-project-better-student-journalism-fb39f4f701bb","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*oBWUXtszDsiv_-Qq2bFLTQ.png","originalWidth":1368,"originalHeight":600}},{"name":"previewTitle","type":2,"text":"The Open Journalism Project: Better Student Journalism","alignment":1},{"name":"previewSubtitle","type":13,"text":"We pushed out the first version of the Open Journalism site in January. Here’s what we’ve learned about student…","alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false},"type":"Post","_isPopulated":true},"collaborators":[{"user":{"userId":"4d1613f13b8","name":"Asad Chishti","username":"asad_ch","createdAt":1345061204916,"lastPostCreatedAt":1422864200574,"imageId":"0*lGq8Mn5S2bTrnLFe.jpeg","backgroundImageId":"","bio":"Testing out my spacesuit.","twitterScreenName":"asad_ch","facebookAccountId":"","type":"User"},"state":"visible","_isPopulated":true}],"collectionUserRelations":[],"mode":null,"references":{"User":{"28ff78fed88e":{"userId":"28ff78fed88e","name":"Pippin Lee","username":"pippinlee","createdAt":1344986320107,"lastPostCreatedAt":1425538922974,"imageId":"0*312pRa3Jh6ESE7Es.jpeg","backgroundImageId":"0*GqJ25S72ddd-AlSZ.jpeg","bio":"I don’t know much, so I better start here.","twitterScreenName":"pippinlee","social":{"userId":"lo_1c9aaaf1d066","targetUserId":"28ff78fed88e","type":"Social"},"facebookAccountId":"","type":"User"}},"Social":{"28ff78fed88e":{"userId":"lo_1c9aaaf1d066","targetUserId":"28ff78fed88e","type":"Social"}}}}}
+ // ]]>
+ </script>
+ <script charset="UTF-8" src="https://dnqgz544uhbo8.cloudfront.net/_/fp/js/icons.kMtvd60hqPtTdUxvP9j8rw.js"></script>
+ </body>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-2/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-2/expected-images.json
new file mode 100644
index 000000000..e52ea6ff1
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-2/expected-images.json
@@ -0,0 +1,3 @@
+[
+ "https:\/\/d262ilb51hltx0.cloudfront.net\/max\/1600\/1*eR_J8DurqygbhrwDg-WPnQ.png"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-2/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-2/expected-metadata.json
new file mode 100644
index 000000000..71804a0dc
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-2/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "Courtney Kirchoff",
+ "Direction": null,
+ "Excerpt": "In defense of the word “literally” and why you or someone you know should stop misusing the word, lest they drive us fig…",
+ "Image": "https:\/\/d262ilb51hltx0.cloudfront.net\/max\/1600\/1*eR_J8DurqygbhrwDg-WPnQ.png",
+ "Title": "On Behalf of “Literally”",
+ "SiteName": "Medium"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-2/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-2/expected.html
new file mode 100644
index 000000000..222b09dbc
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-2/expected.html
@@ -0,0 +1 @@
+<section name="d9f8"><div><div><figure id="4924" name="4924"><div><p><img data-action="zoom" data-action-value="1*eR_J8DurqygbhrwDg-WPnQ.png" data-height="1280" data-image-id="1*eR_J8DurqygbhrwDg-WPnQ.png" data-width="1891" src="https://d262ilb51hltx0.cloudfront.net/max/1600/1*eR_J8DurqygbhrwDg-WPnQ.png"></img></p></div><figcaption>Words need defenders.</figcaption></figure><h3 id="b098" name="b098">On Behalf of “Literally”</h3><p id="1a73" name="1a73">You either are a “literally” abuser or know of one. If you’re anything like me, hearing the word “literally” used incorrectly causes a little piece of your soul to whither and die. Of course I do not mean that literally, I mean that figuratively. An abuser would have said: “Every time a person uses that word, a piece of my soul literally withers and dies.” Which is terribly, horribly wrong.</p><p id="104a" name="104a">For whatever bizarre reason, people feel the need to use literally as a sort of verbal crutch. They use it to emphasize a point, which is silly because they’re already using an analogy or a metaphor to illustrate said point. For example: “Ugh, I literally tore the house apart looking for my remote control!” No, you literally did not tear apart your house, because it’s still standing. If you’d just told me you “tore your house apart” searching for your remote, I would’ve understood what you meant. No need to add “literally” to the sentence.</p><p id="c2c0" name="c2c0">Maybe I should define literally.</p><blockquote id="b239" name="b239">Literally means actually. When you say something literally happened, you’re describing the scene or situation as it actually happened.</blockquote><p id="a8fd" name="a8fd">So you should only use literally when you mean it. It should not be used in hyperbole. Example: “That was so funny I literally cried.” Which is possible. Some things are funny enough to elicit tears. Note the example stops with “literally cried.” You cannot <em>literally cry your eyes out</em>. The joke wasn’t so funny your eyes popped out of their sockets.</p><h4 id="165a" name="165a">When in Doubt, Leave it Out</h4><p id="e434" name="e434">“I’m so hungry I could eat a horse,” means you’re hungry. You don’t need to say “I’m so hungry I could literally eat a horse.” Because you can’t do that in one sitting, I don’t care how big your stomach is.</p><p id="d88f" name="d88f">“That play was so funny I laughed my head off,” illustrates the play was amusing. You don’t need to say you literally laughed your head off, because then your head would be on the ground and you wouldn’t be able to speak, much less laugh.</p><p id="4bab" name="4bab">“I drove so fast my car was flying,” we get your point: you were speeding. But your car is never going fast enough to fly, so don’t say your car was literally flying.</p><h4 id="f2f0" name="f2f0">Insecurities?</h4><p id="1bd7" name="1bd7">Maybe no one believed a story you told as a child, and you felt the need to prove that it actually happened. <em>No really, mom, I literally climbed the tree. </em>In efforts to prove truth, you used literally to describe something real, however outlandish it seemed. Whatever the reason, now your overuse of literally has become a habit.</p><h4 id="d7c1" name="d7c1">Hard Habit to Break?</h4><p id="714b" name="714b">Abusing literally isn’t as bad a smoking, but it’s still an unhealthy habit (I mean that figuratively). Help is required in order to break it.</p><p id="f929" name="f929">This is my version of an intervention for literally abusers. I’m not sure how else to do it other than in writing. I know this makes me sound like a know-it-all, and I accept that. But there’s no excuse other than blatant ignorance to misuse the word “literally.” So just stop it.</p><p id="fd19" name="fd19">Don’t say “Courtney, this post is so snobbish it literally burned up my computer.” Because nothing is that snobbish that it causes computers to combust. Or: “Courtney, your head is so big it literally cannot get through the door.” Because it can, unless it’s one of those tiny doors from <em>Alice in Wonderland</em> and I need to eat a mushroom to make my whole body smaller.</p><h4 id="fe12" name="fe12">No One’s Perfect</h4><p id="7ff8" name="7ff8">And I’m not saying I am. I’m trying to restore meaning to a word that’s lost meaning. I’m standing up for literally. It’s a good word when used correctly. People are butchering it and destroying it every day (figuratively speaking) and the massacre needs to stop. Just as there’s a coalition of people against the use of certain fonts (like <a data-href="http://bancomicsans.com/main/?page_id=2" href="http://bancomicsans.com/main/?page_id=2" rel="nofollow">Comic Sans</a> and <a data-href="https://www.facebook.com/group.php?gid=14448723154" href="https://www.facebook.com/group.php?gid=14448723154" rel="nofollow">Papyrus</a>), so should there be a coalition of people against the abuse of literally.</p><h4 id="049e" name="049e">Saying it to Irritate?</h4><p id="9381" name="9381">Do you misuse the word “literally” just to annoy your know-it-all or grammar police friends/acquaintances/total strangers? If so, why? Doing so would be like me going outside when it’s freezing, wearing nothing but a pair of shorts and t-shirt in hopes of making you cold by just looking at me. Who suffers more?</p><h4 id="3e52" name="3e52">Graphical Representation</h4><p id="b57e" name="b57e">Matthew Inman of “The Oatmeal” wrote a comic about literally. Abusers and defenders alike <a data-href="http://theoatmeal.com/comics/literally" href="http://theoatmeal.com/comics/literally" rel="nofollow">should check it out</a>. It’s clear this whole craze about literally is driving a lot of us nuts. You literally abusers are killing off pieces of our souls. You must be stopped, or the world will be lost to meaninglessness forever. Figuratively speaking.</p></div></div></section> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-2/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-2/source.html
new file mode 100644
index 000000000..da62885b7
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-2/source.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html><html><head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# medium-com: http://ogp.me/ns/fb/medium-com#"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" user-scalable="no"/><title>On Behalf of “Literally” — Medium</title><link rel="canonical" href="https://medium.com/@ckirchoff/on-behalf-of-literally-429fab868ca8"/><meta name="title" content="On Behalf of “Literally”"/><meta name="referrer" content="always"/><meta name="description" content="In defense of the word “literally” and why you or someone you know should stop misusing the word, lest they drive us fig…"/><meta property="og:site_name" content="Medium"/><meta property="og:title" content="On Behalf of “Literally”"/><meta property="og:url" content="https://medium.com/@ckirchoff/on-behalf-of-literally-429fab868ca8"/><meta property="og:image" content="https://d262ilb51hltx0.cloudfront.net/max/1600/1*eR_J8DurqygbhrwDg-WPnQ.png"/><meta property="fb:app_id" content="542599432471018"/><meta property="og:description" content="In defense of the word “literally” and why you or someone you know should stop misusing the word, lest they drive us fig…"/><meta name="twitter:site" content="@Medium"/><meta name="twitter:image:src" content="https://d262ilb51hltx0.cloudfront.net/max/1600/1*eR_J8DurqygbhrwDg-WPnQ.png"/><link rel="publisher" href="https://plus.google.com/103654360130207659246"/><link rel="author" href="https://medium.com/@ckirchoff"/><meta name="author" content="Courtney Kirchoff"/><meta property="og:type" content="article"/><meta name="twitter:card" content="summary_large_image"/><meta property="article:publisher" content="https://www.facebook.com/medium"/><meta property="article:author" content="https://medium.com/@ckirchoff"/><meta property="article:published_time" content="2015-02-24T19:56:33.374Z"/><meta name="twitter:creator" content="@ckirchoff"/><meta name="twitter:app:name:iphone" content="Medium"/><meta name="twitter:app:id:iphone" content="828256236"/><meta name="twitter:app:url:iphone" content="medium:/p/429fab868ca8"/><meta property="al:ios:app_name" content="Medium"/><meta property="al:ios:app_store_id" content="828256236"/><meta property="al:ios:url" content="medium:/p/429fab868ca8"/><meta property="al:web:url" content="https://medium.com/@ckirchoff/on-behalf-of-literally-429fab868ca8"/><meta name="theme-color" content="#000000"/><script>if (window.top !== window.self) window.top.location = window.self.location.href;var OB_startTime = new Date().getTime(); var OB_fontLoaded = 0; var OB_loadErrors = []; function _onerror(e) { OB_loadErrors.push(e) }; if (document.addEventListener) document.addEventListener("error", _onerror, true); else if (document.attachEvent) document.attachEvent("onerror", _onerror); function _asyncScript(u) {var d = document, f = d.getElementsByTagName("script")[0], s = d.createElement("script"); s.type = "text/javascript"; s.async = true; s.src = u; f.parentNode.insertBefore(s, f);}function _asyncStyles(u) {var d = document, f = d.getElementsByTagName("script")[0], s = d.createElement("link"); s.rel = "stylesheet"; s.href = u; f.parentNode.insertBefore(s, f); return s}(function() {var h = document.getElementsByTagName("html")[0]; h.className += " wf-loading"; function clearWfLoading() {h.className = h.className.replace(/( |^)wf-loading( |$)/g,"");}var t = setTimeout(function(){clearWfLoading(); h.className += " wf-inactive"; window._onWebfontError && window._onWebfontError()}, 3000); var d = document, f = d.getElementsByTagName("script")[0], s = d.createElement("link"); s.rel = "stylesheet"; s.href = "https:\/\/dnqgz544uhbo8.cloudfront.net\/_\/fp\/css\/fonts-base.RB0XGp9t6rSpksYHwudieQ.css"; s.onload = s.onreadystatechange = function(){var a = this.readyState; if (a && a != "complete" && a != "loaded" ) return; clearTimeout(t); clearWfLoading(); window.requestAnimationFrame && window.requestAnimationFrame(function(){OB_fontLoaded = new Date().getTime(); window._onWebfontLoad&&window._onWebfontLoad();});}; f.parentNode.insertBefore(s,f);})();var _gaq = _gaq || []; _gaq.push(["_setAccount", "UA-24232453-2"]); _gaq.push(["_setDomainName", window.location.hostname]); _gaq.push(["_setAllowLinker", true]); _gaq.push(["_trackPageview"]); _asyncScript(("https:" == document.location.protocol ? "https://ssl" : "http://www") + ".google-analytics.com/ga.js");(new Image()).src = "/_/stat?event=pixel.load&origin=" + encodeURIComponent(location.origin);</script><script>_asyncStyles('https:\/\/dnqgz544uhbo8.cloudfront.net\/_\/fp\/css\/main-sprites.1B2M2Y8AsgTpgAmY7PhCfg.css')</script><link rel="stylesheet" href="https://dnqgz544uhbo8.cloudfront.net/_/fp/css/main-base.iZKg2fNC_6NEYttly5ihyA.css"/><!--[if lt IE 9]><script charset="UTF-8" src="https://dnqgz544uhbo8.cloudfront.net/_/fp/js/shiv.RI2ePTZ5gFmMgLzG5bEVAA.js"></script><![endif]--><link rel="shortcut icon" href="https://dnqgz544uhbo8.cloudfront.net/_/fp/icons/favicon.n7eHNqdWyHhbTLN2-3a-6g.ico"/><link rel="apple-touch-icon-precomposed" sizes="152x152" href="/apple-touch-icon-precomposed-152.png"/><link rel="apple-touch-icon-precomposed" sizes="120x120" href="/apple-touch-icon-precomposed-120.png"/><link rel="apple-touch-icon-precomposed" sizes="76x76" href="/apple-touch-icon-precomposed-76.png"/><link rel="apple-touch-icon-precomposed" href="/apple-touch-icon-precomposed.png"/></head>
+ <body itemscope itemtype="http://schema.org/Article" class=" template-flex-article is-withMagicUnderlines browser-firefox os-mac js-loading ">
+<div style="display: none;"><svg xmlns="http://www.w3.org/2000/svg">
+ <symbol viewBox="0 0 28 28" id="svg-sidebarOpen28px">
+ <title>sidebar-open-28px</title>
+ <g>
+ <path d="M21.5,14H6.5C6.2,14,6,14.2,6,14.5s0.2,0.5,0.5,0.5h14.9c0.3,0,0.5-0.2,0.5-0.5S21.8,14,21.5,14z"></path>
+ <path d="M6.5,9h14.9C21.8,9,22,8.8,22,8.5s-0.2-0.5-0.5-0.5H6.5C6.2,8.1,6,8.3,6,8.5S6.2,9,6.5,9z"></path>
+ <path d="M21.5,20H6.5C6.2,20,6,20.2,6,20.5s0.2,0.5,0.5,0.5h14.9c0.3,0,0.5-0.2,0.5-0.5S21.8,20,21.5,20z"></path> </g>
+ </symbol>
+</svg></div>
+ <div class="site-main" id="container"><div class="butterBar butterBar--error"></div><div class="surface"><div id="prerendered" class="screenContent"><canvas class="canvas-renderer"></canvas><div class="listingEditorOverlay"></div><div class="listingEditor js-listingEditor"><div class="listingEditor-inner u-backgroundWhite"><div class="listingEditor-content"><div class="listingEditor-header u-textAlignCenter">Ready to publish?</div><div class="listingEditor-description u-textAlignCenter js-titleEditorInstructions">Change the story’s title, subtitle, and visibility as needed</div><div class="listingEditor-section listingEditor-section--highlightOnHover"><div class="block block--list js-block"><div class="block-image js-blockImage"></div><div class="block-firefoxPositioningContainerHack"><div class="block-content"><div class="block-title js-titleEditor u-hideOutline"></div><div class="block-snippet block-snippet--subtitle js-subtitleEditor u-hideOutline"></div><div class="block-postMetaWrap u-clearfix"><div class="block-postMeta u-inlineBlock"><div class="postMetaInline postMetaInline--author">Courtney Kirchoff</div><div class="postMetaInline js-readingTime"><span class="readingTime">4 min read</span></div></div></div></div></div></div></div><div class="listingEditor-section listingEditor-section--controls"><div class="listingEditor-controlsLeft u-floatLeft js-tagEditor"></div><div class="listingEditor-controlsRight u-floatRight"><button class="button button--chromeless js-selectVisibility js-buttonRequiresPostId" data-action="show-disabled-button-info" data-action-value="Changing post visibility will become available after you start writing." data-delayed-action="show-visibility-popover"></button><button class="button button--chromeless js-selectFeatured" data-action="show-featured-popover">Featured</button><button class="button js-listingEditorCancelButton" data-action="close-listing-editor">Close</button><button class="button button--primary js-publishButton" data-action="publish">Publish changes</button></div></div></div></div></div><div class="metabar u-clearfix js-metabar metabar--top metabar--white metabar--postArticle is-withCollectionLogo "><div class="metabar-block metabar-left u-floatLeft"><a href="https://medium.com/" alt="Homepage" data-log-event="home" class="siteNav-logo"><span class="icon icon--logoM"></span></a></div><div class="metabar-block metabar-right u-floatRight"><div class="metabar-text"></div><div class="buttonSet"></div><div class="buttonSet"><a class="button button--circle is-inSiteNavBar" href="https://medium.com/search" data-action="open-search"><span class="icon icon--search"></span></a><a class="button button--primary" href="https://medium.com/m/signin?redirect=https%3A%2F%2Fmedium.com%3A443%2F%40ckirchoff%2Fon-behalf-of-literally-429fab868ca8" data-action="sign-in-prompt">Sign in / Sign up</a></div></div></div><div class="metabar u-clearfix metabar--bottom metabar--opaque metabar--bordered metabar--social metabar--postSecondaryBar js-postSecondaryBar"><div class="metabar-block metabar-left u-floatLeft"><span class="postMetaInline postMetaInline--avatar"><a href="https://medium.com/@ckirchoff" class="avatar avatar--icon avatar--inline link link--secondary" title="Go to the profile of Courtney Kirchoff"><img src="https://d262ilb51hltx0.cloudfront.net/fit/c/64/64/0*XIIviYv1En80T68W.jpeg" class="avatar-image avatar-image--icon" title="Courtney Kirchoff"/></a></span><span class="postMetaInline postMetaInline--authorDateline"><a class="link link--secondary" title="Go to the profile of Courtney Kirchoff" href="https://medium.com/@ckirchoff">Courtney Kirchoff</a><span class="u-showOnTabletMini"><br/></span><span class="postMetaInline postMetaInline--date"><span class="u-xs-hide"> on </span><time class="post-date">Feb 24</time><span class='middotDivider'></span>4 min</span></span></div><div class="metabar-block metabar-right u-floatRight"><div class="voteWidget"></div><div class="metabar-shareActions"><button class="button button--chromeless button--social button--recommend js-recommendButton" title="Recommend to share this article with your followers and let the author know you liked it"data-action="sign-in-prompt"data-requires-token="true"data-redirect="https://medium.com/_/vote/p/429fab868ca8"><span class="icon icon--heart2Outline"></span><span class="icon icon--heart2"></span></button><button class="button button--chromeless button--social js-bookmarkButton" title="Bookmark this story to read later"data-action="sign-in-prompt"data-requires-token="true"data-redirect="https://medium.com/_/bookmark/p/429fab868ca8"><span class="icon icon--readingList2outline"></span><span class="icon icon--readingList2"></span></button><button class="button button--chromeless u-showOnMobile button--social" title="Share this story on Twitter, Facebook, or email" data-action="toggle-share-drawer" data-action-value="429fab868ca8"><span class="icon icon--share2Outline "></span></button><button class="button button--chromeless u-xs-hide button--social" title="Share this story on Twitter, Facebook, or email" data-action="show-share-popover" data-action-value="429fab868ca8" data-action-source="metabar"><span class="icon icon--share2Outline "></span></button></div><div class="metabar-readNext js-metabarReadNext"><button class="button button--chromeless" >Next story</button></div></div></div><div class="metabar u-clearfix metabar--bottom metabar--opaque metabar--social metabar--peekaboo js-persistentShareFooter"><div class="metabar-block metabar-left u-floatLeft"></div><div class="metabar-block metabar-center"><div class="metabar-readNext metabar-readNext--bottom js-metabarReadNextMobile"><button class="button button--chromeless" >Next story</button></div><div class="metabar-shareActions"><button class="button button--chromeless button--social button--recommend js-recommendButton" title="Recommend to share this article with your followers and let the author know you liked it"data-action="sign-in-prompt"data-requires-token="true"data-redirect="https://medium.com/_/vote/p/429fab868ca8"><span class="icon icon--heart2Outline"></span><span class="icon icon--heart2"></span></button><button class="button button--chromeless button--social js-bookmarkButton" title="Bookmark this story to read later"data-action="sign-in-prompt"data-requires-token="true"data-redirect="https://medium.com/_/bookmark/p/429fab868ca8"><span class="icon icon--readingList2outline"></span><span class="icon icon--readingList2"></span></button><button class="button button--chromeless u-showOnMobile button--social" title="Share this story on Twitter, Facebook, or email" data-action="toggle-share-drawer" data-action-value="429fab868ca8"><span class="icon icon--share2Outline "></span></button><button class="button button--chromeless u-xs-hide button--social" title="Share this story on Twitter, Facebook, or email" data-action="show-share-popover" data-action-value="429fab868ca8" data-action-source="metabar"><span class="icon icon--share2Outline "></span></button></div><div class="metabar-drawer"><div class="metabar-drawerWarning">The author chose to make this story unlisted, which means only people with a link can see it. Are you sure you want to share it?<button class="button button--chromeless" data-action="ignore-share-drawer-warning">Yes, show me sharing options</button></div><div class="metabar-drawerContent"><h4 class="metabar-drawerTitle">On Behalf of “Literally”</h4><ul class="list"><li><button class="button button--chromeless" data-action="share-on-twitter" data-action-value="429fab868ca8" data-action-source="metabar_mobile"><span class="icon icon--twitter"></span> Share on Twitter</button></li><li><button class="button button--chromeless" data-action="share-on-facebook" data-action-value="429fab868ca8" data-action-source="metabar_mobile"><span class="icon icon--facebook"></span> Share on Facebook</button></li><li><button class="button button--chromeless" data-action="share-by-email" data-action-value="429fab868ca8" data-action-source="metabar_mobile"><span class="icon icon--email"></span> Share by email</button></li></ul></div></div></div></div><div class="logo-container"></div><article class="u-sizeViewHeightMin100 postArticle postArticle--full is-languageTier1" lang="en" data-allow-notes="true"><section class="postWrapper postWrapper--contain"><div class="postWrapper-inner"><div class="postContent"><div class="postContent-inner"><div class="notesSource"><div class="postField postField--body"><section name="d9f8" class=" section--first"><div class="section-divider layoutSingleColumn"><hr class="section-divider"/></div><div class="section-content"><div class="section-inner layoutSingleColumn"><figure name="4924" id="4924" class="graf--figure graf--first"><div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 474px;"><div class="aspect-ratio-fill" style="padding-bottom: 67.7%;"></div><img class="graf-image" data-image-id="1*eR_J8DurqygbhrwDg-WPnQ.png" data-width="1891" data-height="1280" data-action="zoom" data-action-value="1*eR_J8DurqygbhrwDg-WPnQ.png" src="https://d262ilb51hltx0.cloudfront.net/max/1600/1*eR_J8DurqygbhrwDg-WPnQ.png"/></div><figcaption class="imageCaption">Words need defenders.</figcaption></figure><h3 name="b098" id="b098" class="graf--h3">On Behalf of “Literally”</h3><p name="1a73" id="1a73" class="graf--p">You either are a “literally” abuser or know of one. If you’re anything like me, hearing the word “literally” used incorrectly causes a little piece of your soul to whither and die. Of course I do not mean that literally, I mean that figuratively. An abuser would have said: “Every time a person uses that word, a piece of my soul literally withers and dies.” Which is terribly, horribly wrong.</p><p name="104a" id="104a" class="graf--p">For whatever bizarre reason, people feel the need to use literally as a sort of verbal crutch. They use it to emphasize a point, which is silly because they’re already using an analogy or a metaphor to illustrate said point. For example: “Ugh, I literally tore the house apart looking for my remote control!” No, you literally did not tear apart your house, because it’s still standing. If you’d just told me you “tore your house apart” searching for your remote, I would’ve understood what you meant. No need to add “literally” to the sentence.</p><p name="c2c0" id="c2c0" class="graf--p">Maybe I should define literally.</p><blockquote name="b239" id="b239" class="graf--pullquote pullquote">Literally means actually. When you say something literally happened, you’re describing the scene or situation as it actually happened.</blockquote><p name="a8fd" id="a8fd" class="graf--p">So you should only use literally when you mean it. It should not be used in hyperbole. Example: “That was so funny I literally cried.” Which is possible. Some things are funny enough to elicit tears. Note the example stops with “literally cried.” You cannot <em class="markup--em markup--p-em">literally cry your eyes out</em>. The joke wasn’t so funny your eyes popped out of their sockets.</p><h4 name="165a" id="165a" class="graf--h4">When in Doubt, Leave it Out</h4><p name="e434" id="e434" class="graf--p graf--startsWithDoubleQuote">“I’m so hungry I could eat a horse,” means you’re hungry. You don’t need to say “I’m so hungry I could literally eat a horse.” Because you can’t do that in one sitting, I don’t care how big your stomach is.</p><p name="d88f" id="d88f" class="graf--p graf--startsWithDoubleQuote">“That play was so funny I laughed my head off,” illustrates the play was amusing. You don’t need to say you literally laughed your head off, because then your head would be on the ground and you wouldn’t be able to speak, much less laugh.</p><p name="4bab" id="4bab" class="graf--p graf--startsWithDoubleQuote">“I drove so fast my car was flying,” we get your point: you were speeding. But your car is never going fast enough to fly, so don’t say your car was literally flying.</p><h4 name="f2f0" id="f2f0" class="graf--h4">Insecurities?</h4><p name="1bd7" id="1bd7" class="graf--p">Maybe no one believed a story you told as a child, and you felt the need to prove that it actually happened. <em class="markup--em markup--p-em">No really, mom, I literally climbed the tree. </em>In efforts to prove truth, you used literally to describe something real, however outlandish it seemed. Whatever the reason, now your overuse of literally has become a habit.</p><h4 name="d7c1" id="d7c1" class="graf--h4">Hard Habit to Break?</h4><p name="714b" id="714b" class="graf--p">Abusing literally isn’t as bad a smoking, but it’s still an unhealthy habit (I mean that figuratively). Help is required in order to break it.</p><p name="f929" id="f929" class="graf--p">This is my version of an intervention for literally abusers. I’m not sure how else to do it other than in writing. I know this makes me sound like a know-it-all, and I accept that. But there’s no excuse other than blatant ignorance to misuse the word “literally.” So just stop it.</p><p name="fd19" id="fd19" class="graf--p">Don’t say “Courtney, this post is so snobbish it literally burned up my computer.” Because nothing is that snobbish that it causes computers to combust. Or: “Courtney, your head is so big it literally cannot get through the door.” Because it can, unless it’s one of those tiny doors from <em class="markup--em markup--p-em">Alice in Wonderland</em> and I need to eat a mushroom to make my whole body smaller.</p><h4 name="fe12" id="fe12" class="graf--h4">No One’s Perfect</h4><p name="7ff8" id="7ff8" class="graf--p">And I’m not saying I am. I’m trying to restore meaning to a word that’s lost meaning. I’m standing up for literally. It’s a good word when used correctly. People are butchering it and destroying it every day (figuratively speaking) and the massacre needs to stop. Just as there’s a coalition of people against the use of certain fonts (like <a href="http://bancomicsans.com/main/?page_id=2" data-href="http://bancomicsans.com/main/?page_id=2" class="markup--anchor markup--p-anchor" rel="nofollow">Comic Sans</a> and <a href="https://www.facebook.com/group.php?gid=14448723154" data-href="https://www.facebook.com/group.php?gid=14448723154" class="markup--anchor markup--p-anchor" rel="nofollow">Papyrus</a>), so should there be a coalition of people against the abuse of literally.</p><h4 name="049e" id="049e" class="graf--h4">Saying it to Irritate?</h4><p name="9381" id="9381" class="graf--p">Do you misuse the word “literally” just to annoy your know-it-all or grammar police friends/acquaintances/total strangers? If so, why? Doing so would be like me going outside when it’s freezing, wearing nothing but a pair of shorts and t-shirt in hopes of making you cold by just looking at me. Who suffers more?</p><h4 name="3e52" id="3e52" class="graf--h4">Graphical Representation</h4><p name="b57e" id="b57e" class="graf--p graf--last">Matthew Inman of “The Oatmeal” wrote a comic about literally. Abusers and defenders alike <a href="http://theoatmeal.com/comics/literally" data-href="http://theoatmeal.com/comics/literally" class="markup--anchor markup--p-anchor" rel="nofollow">should check it out</a>. It’s clear this whole craze about literally is driving a lot of us nuts. You literally abusers are killing off pieces of our souls. You must be stopped, or the world will be lost to meaninglessness forever. Figuratively speaking.</p></div></div></section><section name="5c31" class=" section--last"><div class="section-divider layoutSingleColumn"><hr class="section-divider"/></div><div class="section-content"><div class="section-inner layoutSingleColumn"><p name="15d8" id="15d8" class="graf--p graf--first graf--last"><em class="markup--em markup--p-em">Originally published at </em><a href="http://www.courtneykirchoff.com/2011/11/on-behalf-of-literally/" data-href="http://www.courtneykirchoff.com/2011/11/on-behalf-of-literally/" class="markup--anchor markup--p-anchor" rel="nofollow"><em class="markup--em markup--p-em">www.courtneykirchoff.com</em></a><em class="markup--em markup--p-em"> on November 18, 2011. Sadly this solo post did not stop the abuse of literally. Help the word out. Recommend this article to your literally abusers in your life.</em></p></div></div></section></div></div><div class="postFooter--simple2 supplementalPostContent layoutSingleColumn js-postFooter"><div class="u-clearfix postFooter-actions--simple2"><div class="u-floatLeft"><button class="button button--primary button--toggle button--recommend js-recommendButton" title="Recommend to share this article with your followers and let the author know you liked it"data-action="sign-in-prompt"data-requires-token="true"data-redirect="https://medium.com/_/vote/p/429fab868ca8"><span class="icon icon--heart2Outline75 icon--default"></span><span class="icon icon--active icon--heart2"></span><span class="button-label label--default">Recommend</span><span class="button-label label--active">Recommended</span></button><!-- Recommended by string will be injected here from the VoteWidget --><div class="voteWidget--footer js-footerVoteWidget"></div></div><div class="u-floatRight"><div class="buttonSet"><button class="button button--vertical button--bookmark js-bookmarkButton" title="Bookmark this story to read later"data-action="sign-in-prompt"data-requires-token="true"data-redirect="/_/bookmark/p/429fab868ca8"><span class="icon icon--readingList2outline icon--default"></span><span class="icon icon--active icon--readingList2"></span><span class="label label--default">Bookmark</span><span class="label label--active">Bookmarked</span></button><button class="button button--vertical button--share" title="Share this story on Twitter, Facebook, or email" data-action="show-share-popover" data-action-value="429fab868ca8" data-action-source="footer"><span class="icon icon--share2Outline "></span><span class="label ">Share</span></button><button class="button button--vertical u-xs-hide button--more" title="More actions" data-action="more-actions"><span class="icon icon--arrowDownThin "></span><span class="label ">More</span></button></div></div></div><div class="postFooter-mobileRecommendNote u-showOnMobile js-recommendNote"></div><div class="postFooter-tags infoCard js-postTags"></div><div class="postFooter-info js-postFooterInfo"><div class="infoCard u-clearfix js-infoCardUser"><div class="infoCard-avatar"><a href="https://medium.com/@ckirchoff" class="avatar avatar--small" title="Go to the profile of Courtney Kirchoff"><img src="https://d262ilb51hltx0.cloudfront.net/fit/c/120/120/0*XIIviYv1En80T68W.jpeg" class="avatar-image avatar-image--small" title="Courtney Kirchoff"/></a></div><div class="infoCard-info "><div class="infoCard-wrapper"><div class="infoCard-title">Written <span class="postMetaInline postMetaInline--date"><span class="u-xs-hide"> on </span><time class="post-date">Feb 24</time></span> by</div><a class="link link--primary" title="Go to the profile of Courtney Kirchoff" href="https://medium.com/@ckirchoff">Courtney Kirchoff</a><div class="infoCard-bio">Freelance writer and graphic designer. Will work for bacon. Wrote a novel: Jaden Baker. See my work: <a rel="nofollow" href="http://www.courtneykirchoff.com">www.courtneykirchoff.com</a> &amp; <a rel="nofollow" href="http://www.truenorthe.com">www.truenorthe.com</a></div></div></div><div class="infoCard-actions"><button class="button button--small button--toggle" title="Follow to get new stories and recommendations from this author"data-action="sign-in-prompt"data-requires-token="true"data-redirect="https://medium.com/_/subscribe/user/1a8aa2047ea5/429fab868ca8"><span class="button-label label--default">Follow</span><span class="button-label label--active">Following</span></button></div></div></div></div><div class="responsesWrapper supplementalPostContent js-responsesWrapper"></div></div></div></div></section><footer class="post-footer supplementalPostContent js-readNext"></footer></article></div></div></div><div class="loadingBar"></div><script>// <![CDATA[
+var GLOBALS = {"audioUrl":"https://d1fcbxp97j4nb2.cloudfront.net","baseUrl":"https://medium.com","bestOfFirstSlug":"may-2013","bestOfLatestSlug":"february-2015","buildLabel":"14774-b5b0db7","currentUser":{"userId":"lo_165a169d4a3f","subscriberEmail":""},"currentUserHasUnverifiedEmail":false,"defaultPreviewImage":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/default-preview-image.IsBK38jFAJBlWifMLO4z9g.png","defaultUserImage":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/default-avatar.dmbNkD5D-u45r44go_cf0g.png","editorTipsAddCoverImage":"/img/help/add-cover.gif","editorTipsAddMediaImage":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/help/add-media.SZH2LBmkwVExuhozFfVvYg.gif","editorTipsAddMediaImageStatic":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/help/add-media-start.GXmqQ2Svt1WfZGIZSM93tg.gif","editorTipsEmbedImageStatic":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/help/embed-start.EBJ2PcWFJuYopsQV4wwklA.gif","editorTipsShareDraftImage":"/img/help/share-draft.gif","editorTipsTextHighlightImage":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/help/text-highlight.XVChoKYZ1-s3gJgHm9-7Yg.gif","editorTipsTextHighlightImageStatic":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/help/text-highlight-start.AvTbakaFuUCd05YoMECoMQ.gif","facebookKey":"542599432471018","facebookScope":["public_profile","email","user_friends"],"homeImageId":"1*4ncz3hLxmL8E_bUh-0z62w.jpeg","importHighlightMenuImage":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/import/highlight-menu.kzoaVM8mJJ-Hu9m9uo3Omg.png","importImageHighlightMenuImage":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/import/image-highlight-menu.q43-H2dl0JvBS_5znQCW8A.png","importPublishImage":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/import/publish-metabar.YbEX1a2Pu0rAR_LuKeg8JA.png","isAuthenticated":false,"isCurrentUserVerified":"","language":"en","loadingPlaceholderImg":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/media-loading-placeholder.b31hiO4ynbDLRrXWEFF4aQ.png","mediumTwitterScreenName":"medium","miroUrl":"https://d262ilb51hltx0.cloudfront.net","moduleUrls":{"base":"https://dnqgz544uhbo8.cloudfront.net/_/fp/js/main-base.bundle.RwClr-8tbYQNOCcoaW2fyQ.js","notes":"https://dnqgz544uhbo8.cloudfront.net/_/fp/js/main-notes.bundle.ICW_5aKEFKmVIizPavGvtg.js","posters":"https://dnqgz544uhbo8.cloudfront.net/_/fp/js/main-posters.bundle.J5anIzIx8mzGHfMgN_v0wg.js","common-async":"https://dnqgz544uhbo8.cloudfront.net/_/fp/js/main-common-async.bundle.gGIrE1dbcJH5A-RZ8eFBrg.js","stats":"https://dnqgz544uhbo8.cloudfront.net/_/fp/js/main-stats.bundle.Q-0hpqGuHTvM6c_DLIKKpw.js","misc-screens":"https://dnqgz544uhbo8.cloudfront.net/_/fp/js/main-misc-screens.bundle.Bw2jaAgjQTtFq2l9hB7eWA.js"},"onboardingLandscapeFooterImage":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/logged-out-footer/landscape-bg.W4fnHJbJjHt0fgxh7ssrvQ.jpg","postColumnWidth":700,"previewConfig":{"weightThreshold":1,"weightEmptyParagraph":0,"weightIframeParagraph":0.8,"weightImageParagraph":0.51,"weightTextParagraph":0.05,"weightBq":0.003,"weightH":0.003,"weightP":0.0025,"minPTextLength":40,"truncateBoundaryChars":20,"detectTitle":true,"detectTitleLevThreshold":0.15,"previewConfigVariantA":{"weightThreshold":2},"previewConfigVariantB":{"weightThreshold":10,"detectTitle":false}},"productName":"Medium","responsesRecommendationThreshold":5,"supportsEdit":true,"termsUrl":"//medium.com/policy/9db0094a1e0f","textshotHost":"textshot.medium.com","transactionId":"1426906230532:97a3313de9bb","useragent":{"browser":"firefox","family":"firefox","os":"mac","version":39,"supportsDesktopEdit":true,"supportsMobileEdit":false,"supportsInteract":true,"supportsView":true,"isMobile":false,"isTablet":false,"isNative":false,"supportsFileAPI":true,"isTier1":true,"clientVersion":"","unknownParagraphsBad":false,"clientChannel":"","supportsRealScrollEvents":true,"supportsVhUnits":true,"ruinsViewportSections":false,"supportsHtml5Video":true,"supportsMagicUnderlines":true},"variants":{"policy_collection_slug":"policy","can_vote":true,"can_update_settings":true,"can_send_push_notifications":true,"can_export_data":true,"enable_notes":true,"allow_test_auth":"disallow","enable_logged_out_sessions":true,"filter_other_languages":true,"use_experimental_css":true,"has_prl_provider_collection_latest":true,"can_resume_from_last_read_location":true,"can_report_bad_posts":true,"enable_social_posts":true,"enable_gosocial_queries":true,"enable_embeds":true,"enable_embed_ui":true,"enable_recommend_notes":true,"enable_recommend_notes_composition":true,"max_upload_size_mb":25,"use_full_width_images":true,"upload_multiple_files":true,"can_follow_users":true,"enable_coverless_consumption_ios":true,"allow_request_account_deletion":true,"enable_sidebar_upload_collection_logo":true,"use_session_tokens":true,"enable_bookmarks_list_ios":true,"enable_gifs_ios":true,"feature_post_in_sidebar":true,"see_featured_post_tab":true,"show_respond_button":true,"can_see_follower_counts":true,"enable_prl_reasons_on_homepage":true,"enable_follower_emails":true,"post_recommend_lists":true,"receive_post_published_pushes":true,"enable_account_conversion":true,"use_new_scheduled_delivery_flow":true,"feed_homepage":true,"enable_collection_subscription_fanout":true,"post_publish_email":true,"manage_collection_in_post_metabar":true,"welcome_post_url":"https://medium.com/@Medium/medium-connects-the-people-stories-and-ideas-that-matter-to-you-495655fb8459","post_share_metabar":true,"self_serve_fonts":true,"use_direct_switchboard_collection_published_flow":true,"listing_editor":true,"beautiful_homepage":true,"new_twitter_flow":true,"new_facebook_flow":true,"google_search":true,"enable_simple_reach":true,"signin_services":"twitter,facebook","signup_services":"twitter,facebook","enable_categories":true,"enable_homepage_promos":true,"promo_stream_signup":true,"promo_stream_feature_following":true,"promo_stream_why_write":true,"promo_stream_feature_responses":true,"promo_sidebar_start_writing":true,"promo_sidebar_writing_prompt":true,"promo_sidebar_feature_unlisted":true,"interactions_footer":true,"post_page_collection_logo":true,"enable_bing_search":true,"enable_algolia_search":true,"show_tagged_posts_in_search":true,"enable_textshots":true,"feature_post_on_profile":true,"streamy_profile":true,"profile_interstitial":true,"casual_content_viewer":true,"casual_content_creator":true,"ttr_on_post_list":true,"drafts_unauth":true,"enable_quotes":true,"combined_margin_quotes":true,"friends_only_quotes":true,"enable_quotes_emails":true,"consolidate_publication_info":true,"enable_viewed_posts_visual_differentiation":true,"edit_tags":true,"view_tags":true,"inline_tags":true,"edit_publication_contact_info":true,"view_publication_contact_info":true,"enable_search_ios":true,"enable_new_cover_flow_ios":true,"enable_rating_prompt":true,"enable_post_show_refactor":true,"enable_your_stories_more_actions":true,"enable_user_search_with_bing":true,"can_view_masthead":true,"enable_textshot_post":true,"show_related_tags":true,"new_search_interface":true,"restrict_set_visibility":true},"xsrfToken":"","useDynamicCss":false,"canonicalBaseUrl":"https://medium.com","iosAppId":"828256236","supportEmail":"[email protected]","teamName":"Team Medium","fp":{"/img/email/check1.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/check1.0DM77li7vZhq5o2V9cVYLQ.png","/img/email/check2.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/check2.GLlNusQmn1hwo9WDN-gE1w.png","/img/email/check3.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/check3.7VxOUVMXAVbHRRnzMrJ_5A.png","/img/email/fb_logo.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/fb_logo.Q0M98YwNTu77gLWTK6-RyQ.png","/img/email/heart1.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/heart1.rnGEmSwcGUhztl_zSU7l6Q.png","/img/email/heart2.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/heart2.HBiLu3koIYsKjjKroohgbA.png","/img/email/heart3.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/heart3.AIJBOHw11HuhdClVJNtmtg.png","/img/email/logo.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/logo.dPr5ZCzgKMooKYKJwnKarQ.png","/img/email/twitter_logo.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/twitter_logo.Pz4a3o9WMU5QioxLKcyFhQ.png","/img/email/unlisted.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/unlisted.ikh8R2LElOz_1YM8A2Db4g.png","/img/email/follow.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/follow.-VSXwmQhfi2entHPht8l2g.png","/img/email/recommend.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/recommend.scZJ6ysjDBJYd-K3wFK2Hg.png","/img/email/write.png":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/email/write.wWIWbAqfZUqn1JD4YSJYNw.png"},"configLabel":"c5ef2f7","cssBaseUrl":"https://dnqgz544uhbo8.cloudfront.net/_/fp/css/main-base.iZKg2fNC_6NEYttly5ihyA.css","cssSpriteUrl":"https://dnqgz544uhbo8.cloudfront.net/_/fp/css/main-sprites.1B2M2Y8AsgTpgAmY7PhCfg.css","cssFontUrl":"https://dnqgz544uhbo8.cloudfront.net/_/fp/css/fonts-base.RB0XGp9t6rSpksYHwudieQ.css","googleAnalyticsTrackingCode":"UA-24232453-2","iconsJsUrl":"https://dnqgz544uhbo8.cloudfront.net/_/fp/js/icons.kMtvd60hqPtTdUxvP9j8rw.js","jsShivUrl":"https://dnqgz544uhbo8.cloudfront.net/_/fp/js/shiv.RI2ePTZ5gFmMgLzG5bEVAA.js","jsUrl":"https://dnqgz544uhbo8.cloudfront.net/_/fp/js/main-base.bundle.RwClr-8tbYQNOCcoaW2fyQ.js","facebookNamespace":"medium-com","highlightAnimationImg":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/highlight-educational-animation._BG4I2h0KF83wFb3fWnWbA.gif","editorTipsEmbedImage":"https://dnqgz544uhbo8.cloudfront.net/_/fp/img/help/embed.1BM0Di9vd91Kv8fLioJabw.gif","authBaseUrl":"https://medium.com","imageUploadSizeMb":25,"isAuthDomainRequest":true,"favIconUrl":"https://dnqgz544uhbo8.cloudfront.net/_/fp/icons/favicon.n7eHNqdWyHhbTLN2-3a-6g.ico","embedded":{"value":{"id":"429fab868ca8","versionId":"776adba9d13","creatorId":"1a8aa2047ea5","creator":{"userId":"1a8aa2047ea5","name":"Courtney Kirchoff","username":"ckirchoff","createdAt":1424302523039,"lastPostCreatedAt":1424904877821,"imageId":"0*XIIviYv1En80T68W.jpeg","backgroundImageId":"1*AyBb2_6VfLNF29qfSXT2Ow.jpeg","bio":"Freelance writer and graphic designer. Will work for bacon. Wrote a novel: Jaden Baker. See my work: www.courtneykirchoff.com & www.truenorthe.com","twitterScreenName":"ckirchoff","social":{"userId":"lo_165a169d4a3f","targetUserId":"1a8aa2047ea5","type":"Social"},"facebookAccountId":"","type":"User"},"homeCollectionId":"","title":"On Behalf of “Literally”","detectedLanguage":"en","latestVersion":"776adba9d13","latestPublishedVersion":"776adba9d13","hasUnpublishedEdits":false,"latestRev":133,"createdAt":1424806181308,"updatedAt":1424807793583,"acceptedAt":0,"firstPublishedAt":1424807793374,"latestPublishedAt":1424807793374,"isRead":false,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"In defense of the word “literally” and why you or someone you know should stop misusing the word, lest they drive us figuratively nuts.","image":{"backgroundSize":"full","strategy":"crop-fixed"},"bodyModel":{"paragraphs":[{"name":"4924","type":4,"text":"Words need defenders.","markups":[],"layout":1,"metadata":{"id":"1*eR_J8DurqygbhrwDg-WPnQ.png","originalWidth":1891,"originalHeight":1280}},{"name":"b098","type":3,"text":"On Behalf of “Literally”","markups":[]},{"name":"1a73","type":1,"text":"You either are a “literally” abuser or know of one. If you’re anything like me, hearing the word “literally” used incorrectly causes a little piece of your soul to whither and die. Of course I do not mean that literally, I mean that figuratively. An abuser would have said: “Every time a person uses that word, a piece of my soul literally withers and dies.” Which is terribly, horribly wrong.","markups":[]},{"name":"104a","type":1,"text":"For whatever bizarre reason, people feel the need to use literally as a sort of verbal crutch. They use it to emphasize a point, which is silly because they’re already using an analogy or a metaphor to illustrate said point. For example: “Ugh, I literally tore the house apart looking for my remote control!” No, you literally did not tear apart your house, because it’s still standing. If you’d just told me you “tore your house apart” searching for your remote, I would’ve understood what you meant. No need to add “literally” to the sentence.","markups":[]},{"name":"c2c0","type":1,"text":"Maybe I should define literally.","markups":[]},{"name":"b239","type":7,"text":"Literally means actually. When you say something literally happened, you’re describing the scene or situation as it actually happened.","markups":[]},{"name":"a8fd","type":1,"text":"So you should only use literally when you mean it. It should not be used in hyperbole. Example: “That was so funny I literally cried.” Which is possible. Some things are funny enough to elicit tears. Note the example stops with “literally cried.” You cannot literally cry your eyes out. The joke wasn’t so funny your eyes popped out of their sockets.","markups":[{"type":2,"start":258,"end":285}]},{"name":"165a","type":13,"text":"When in Doubt, Leave it Out","markups":[]},{"name":"e434","type":1,"text":"“I’m so hungry I could eat a horse,” means you’re hungry. You don’t need to say “I’m so hungry I could literally eat a horse.” Because you can’t do that in one sitting, I don’t care how big your stomach is.","markups":[]},{"name":"d88f","type":1,"text":"“That play was so funny I laughed my head off,” illustrates the play was amusing. You don’t need to say you literally laughed your head off, because then your head would be on the ground and you wouldn’t be able to speak, much less laugh.","markups":[]},{"name":"4bab","type":1,"text":"“I drove so fast my car was flying,” we get your point: you were speeding. But your car is never going fast enough to fly, so don’t say your car was literally flying.","markups":[]},{"name":"f2f0","type":13,"text":"Insecurities?","markups":[]},{"name":"1bd7","type":1,"text":"Maybe no one believed a story you told as a child, and you felt the need to prove that it actually happened. No really, mom, I literally climbed the tree. In efforts to prove truth, you used literally to describe something real, however outlandish it seemed. Whatever the reason, now your overuse of literally has become a habit.","markups":[{"type":2,"start":109,"end":155}]},{"name":"d7c1","type":13,"text":"Hard Habit to Break?","markups":[]},{"name":"714b","type":1,"text":"Abusing literally isn’t as bad a smoking, but it’s still an unhealthy habit (I mean that figuratively). Help is required in order to break it.","markups":[]},{"name":"f929","type":1,"text":"This is my version of an intervention for literally abusers. I’m not sure how else to do it other than in writing. I know this makes me sound like a know-it-all, and I accept that. But there’s no excuse other than blatant ignorance to misuse the word “literally.” So just stop it.","markups":[]},{"name":"fd19","type":1,"text":"Don’t say “Courtney, this post is so snobbish it literally burned up my computer.” Because nothing is that snobbish that it causes computers to combust. Or: “Courtney, your head is so big it literally cannot get through the door.” Because it can, unless it’s one of those tiny doors from Alice in Wonderland and I need to eat a mushroom to make my whole body smaller.","markups":[{"type":2,"start":288,"end":307}]},{"name":"fe12","type":13,"text":"No One’s Perfect","markups":[]},{"name":"7ff8","type":1,"text":"And I’m not saying I am. I’m trying to restore meaning to a word that’s lost meaning. I’m standing up for literally. It’s a good word when used correctly. People are butchering it and destroying it every day (figuratively speaking) and the massacre needs to stop. Just as there’s a coalition of people against the use of certain fonts (like Comic Sans and Papyrus), so should there be a coalition of people against the abuse of literally.","markups":[{"type":3,"start":341,"end":351,"href":"http://bancomicsans.com/main/?page_id=2","title":"","rel":"","anchorType":0},{"type":3,"start":356,"end":363,"href":"https://www.facebook.com/group.php?gid=14448723154","title":"","rel":"","anchorType":0}]},{"name":"049e","type":13,"text":"Saying it to Irritate?","markups":[]},{"name":"9381","type":1,"text":"Do you misuse the word “literally” just to annoy your know-it-all or grammar police friends/acquaintances/total strangers? If so, why? Doing so would be like me going outside when it’s freezing, wearing nothing but a pair of shorts and t-shirt in hopes of making you cold by just looking at me. Who suffers more?","markups":[]},{"name":"3e52","type":13,"text":"Graphical Representation","markups":[]},{"name":"b57e","type":1,"text":"Matthew Inman of “The Oatmeal” wrote a comic about literally. Abusers and defenders alike should check it out. It’s clear this whole craze about literally is driving a lot of us nuts. You literally abusers are killing off pieces of our souls. You must be stopped, or the world will be lost to meaninglessness forever. Figuratively speaking.","markups":[{"type":3,"start":90,"end":109,"href":"http://theoatmeal.com/comics/literally","title":"","rel":"","anchorType":0}]},{"name":"15d8","type":1,"text":"Originally published at www.courtneykirchoff.com on November 18, 2011. Sadly this solo post did not stop the abuse of literally. Help the word out. Recommend this article to your literally abusers in your life.","markups":[{"type":3,"start":24,"end":48,"href":"http://www.courtneykirchoff.com/2011/11/on-behalf-of-literally/","title":"","rel":"","anchorType":0},{"type":2,"start":0,"end":210}]}],"sections":[{"name":"d9f8","startIndex":0},{"name":"5c31","startIndex":23}]},"postDisplay":{"coverless":true}},"media":null,"virtuals":{"currentCollectionId":"","statusForCollection":"","createdAtRelative":"24 days ago","updatedAtRelative":"24 days ago","acceptedAtRelative":"","createdAtEnglish":"February 24, 2015","updatedAtEnglish":"February 24, 2015","acceptedAtEnglish":"","firstPublishedAtEnglish":"February 24, 2015","latestPublishedAtEnglish":"February 24, 2015","allowNotes":true,"languageTier":1,"snippet":"In defense of the word “literally” and why you or someone you know should stop misusing the word, lest they drive us figuratively nuts.","previewImage":{"imageId":"1*eR_J8DurqygbhrwDg-WPnQ.png","filter":"","backgroundSize":"contain","originalWidth":1891,"originalHeight":1280,"strategy":"resample","height":0,"width":0},"wordCount":820,"imageCount":1,"readingTime":3.29433962264151,"subtitle":"In defense of the word “literally” and why you or someone you know should stop misusing the word, lest they drive us figuratively nuts.","postedIn":[],"publishedInCount":0,"usersBySocialRecommends":[],"notesBySocialRecommends":[],"proposedAtRelative":"","latestPublishedAtAbbreviated":"Feb 24","firstPublishedAtAbbreviated":"Feb 24","emailSnippet":"You either are a “literally” abuser or know of one. If you’re anything like me, hearing the word “literally” used incorrectly causes a little piece of your soul to whither and die. Of course I do not mean that literally, I mean that figuratively. An abuser would have said: “Every time a person uses that word, a piece of my soul literally withers and dies.” Which is terribly, horribly wrong. ¶\n\nFor whatever bizarre reason, people feel the need to use literally as a sort of verbal crutch.","recommends":0,"featuredRecommendNoteId":"","socialRecommends":[],"addedToFeedAt":0,"isBookmarked":false},"coverless":true,"slug":"on-behalf-of-literally","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"http://www.courtneykirchoff.com/2011/11/on-behalf-of-literally/","importedPublishedAt":1321635113000,"visibility":0,"contentType":0,"isViewed":false,"uniqueSlug":"on-behalf-of-literally-429fab868ca8","previewContent":{"bodyModel":{"paragraphs":[{"name":"4924","type":4,"text":"","markups":[],"layout":9,"metadata":{"id":"1*eR_J8DurqygbhrwDg-WPnQ.png","originalWidth":1891,"originalHeight":1280}},{"name":"b098","type":3,"text":"On Behalf of “Literally”","markups":[],"alignment":1},{"name":"1a73","type":1,"text":"You either are a “literally” abuser or know of one. If you’re anything like me, hearing the word “literally” used incorrectly causes a little piece of your soul to…","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false},"type":"Post","_isPopulated":true},"collaborators":[],"collectionUserRelations":[],"mode":null,"references":{"User":{"1a8aa2047ea5":{"userId":"1a8aa2047ea5","name":"Courtney Kirchoff","username":"ckirchoff","createdAt":1424302523039,"lastPostCreatedAt":1424904877821,"imageId":"0*XIIviYv1En80T68W.jpeg","backgroundImageId":"1*AyBb2_6VfLNF29qfSXT2Ow.jpeg","bio":"Freelance writer and graphic designer. Will work for bacon. Wrote a novel: Jaden Baker. See my work: www.courtneykirchoff.com & www.truenorthe.com","twitterScreenName":"ckirchoff","social":{"userId":"lo_165a169d4a3f","targetUserId":"1a8aa2047ea5","type":"Social"},"facebookAccountId":"","type":"User"}},"Social":{"1a8aa2047ea5":{"userId":"lo_165a169d4a3f","targetUserId":"1a8aa2047ea5","type":"Social"}}}}}
+// ]]></script><script charset="UTF-8" src="https://dnqgz544uhbo8.cloudfront.net/_/fp/js/main-base.bundle.RwClr-8tbYQNOCcoaW2fyQ.js"></script><script charset="UTF-8" src="https://dnqgz544uhbo8.cloudfront.net/_/fp/js/icons.kMtvd60hqPtTdUxvP9j8rw.js"></script></body></html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-3/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-3/expected-images.json
new file mode 100644
index 000000000..54ac86669
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-3/expected-images.json
@@ -0,0 +1,3 @@
+[
+ "https:\/\/cdn-images-1.medium.com\/max\/1200\/1*kbPh7V97eyRodSOw2-ALDw.png"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-3/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-3/expected-metadata.json
new file mode 100644
index 000000000..59ef2043d
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-3/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "John C. Welch",
+ "Direction": null,
+ "Excerpt": "How to get shanked doing what people say they want",
+ "Image": "https:\/\/cdn-images-1.medium.com\/max\/1200\/1*kbPh7V97eyRodSOw2-ALDw.png",
+ "Title": "Samantha and The Great Big Lie",
+ "SiteName": "Medium"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-3/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-3/expected.html
new file mode 100644
index 000000000..f1c311e75
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-3/expected.html
@@ -0,0 +1,226 @@
+<section name="55ff">
+ <div>
+ <div>
+
+ <p id="97e7" name="97e7">How to get shanked doing what people say they want</p>
+ <blockquote id="df70" name="df70">don’t preach to me<br></br>Mr. integrity</blockquote>
+ <p id="c979" name="c979">(EDIT: removed the link to Samantha’s post, because the arments and the grubers and the rest of The Deck Clique got what they wanted: a non-proper person driven off the internet lightly capped with a dusting of transphobia along the way, all totally okay because the ends justify the means, and it’s okay when “good” people do it.)</p>
+ <p id="342d" name="342d">First, I need to say something about this article: the reason I’m writing it infuriates me. Worse than installing CS 3 or Acrobat 7 ever did, and the former inspired comparisons to fecophile porn. I’m actually too mad to cuss. Well, not completely, but in this case, I don’t think the people I’m mad at are worth the creativity I try to put into profanity. This is about a brownfield of hypocrisy and viciously deliberate mischaracterization that “shame” cannot even come close to the shame those behind it should feel.</p>
+ <p id="2e61" name="2e61">Now, read this post by Samantha Bielefeld: The Elephant in the Room. First, it is a well-written critical piece that raises a few points in a calm, rational, nonconfrontational fashion, exactly the kind of things the pushers of The Great Big Lie say we need more of, as opposed to the screaming that is the norm in such cases.</p>
+ <p id="cd31" name="cd31">…sorry, I should explain “The Great Big Lie”. There are several, but in this case, our <em>specific</em> instance of “The Great Big Lie” is about criticism. Over and over, you hear from the very people I am not going to be nice to in this that we need “better” criticsm. Instead of rage and anger, volume and vitriol, we need in-depth rational criticism, that isn’t personal or ad hominem. That it should focus on points, not people.</p>
+ <p id="ae07" name="ae07">That, readers, is “The Big Lie”. It is a lie so big that if one ponders the reality of it, as I am going to, one wonders why anyone would believe it. It is a lie and it is one we should stop telling.</p>
+ </div>
+ </div>
+ </section><section name="c360">
+ <div>
+ <div>
+ <p id="a02f" name="a02f">Samantha’s points (I assume you read it, for you are smart people who know the importance of such things) are fairly clear:</p>
+ <ol><li id="9213" name="9213">With the release of Overcast 2.0, a product Samantha actually likes, Marco Arment moved to a <a data-href="http://www.marco.org/2015/10/09/overcast2" href="http://www.marco.org/2015/10/09/overcast2" rel="nofollow noopener" target="_blank">patronage model</a> that will probably be successful for him.</li>
+ <li id="dfa5" name="dfa5">Arment’s insistence that “<a data-href="https://medium.com/@marcoarment/pragmatic-app-pricing-a79fc07218f3" href="https://medium.com/@marcoarment/pragmatic-app-pricing-a79fc07218f3" target="_blank">anyone can do this</a>” while technically true, (anyone can in fact, implement this pricing model), also implies that “anyone” can have the kind of success that a developer with Marco’s history, financial status, and deep ties to the Apple News Web is expected to have. This is silly.</li>
+ <li id="e55d" name="e55d">Marco Arment occupies a fairly unique position in the Apple universe, (gained by hard work and no small talent), and because of that, benefits from a set of privileges that a new developer or even one that has been around for a long time, but isn’t, well, <em>Marco</em>, not only don’t have, but have little chance of attaining anytime soon.</li>
+ <li id="35fb" name="35fb">Marco has earned his success and is entitled to the benefits and privileges it brings, but he seems rather blind to all of that, and seems to still imagine himself as “two guys in a garage”. This is just not correct.</li>
+ <li id="38e2" name="38e2">In addition, the benefits and privileges of the above ensure that by releasing Overcast 2 as a free app, with patronage pricing, he has, if not gutted, severely hurt the ability of folks actually selling their apps for an up-front price of not free to continue doing so. This has the effect of accelerating the “race to the bottom” in the podcast listening app segment, which hurts devs who cannot afford to work on a “I don’t really need this money, so whatever you feel like sending is okay” model.</li>
+ </ol><p id="0481" name="0481">None of this is incorrect. None of this is an ad hominem attack in any way. It is just pointing out that a developer of Arment’s stature and status lives in a very different world than someone in East Frog Balls, Arkansas trying to make a living off of App sales. Our dev in EFB doesn’t have the main sites on the Apple web falling all over themselves to review their app the way that Arment does. They’re not friends with the people being The Loop, Daring Fireball, SixColors, iMore, The Mac Observer, etc., yadda.</p>
+ <p id="5a45" name="5a45">So, our hero, in a fit of well-meaning ignorance writes this piece (posted this morning, 14 Oct. 15) and of course, the response and any criticisms are just as reasonable and thoughtful.</p>
+ <p id="3bc7" name="3bc7">If you really believe that, you are the most preciously ignorant person in the world, and can I have your seriously charmed life.</p>
+ </div>
+ </div>
+ </section><section name="2ba2">
+ <div>
+ <div>
+ <p id="0fb2" name="0fb2">The response, from all quarters, including Marco, someone who is so sensitive to criticism that the word “useless” is <a data-href="http://www.marco.org/2011/03/30/here-is-a-tip-for-all-the-non-developers-out" href="http://www.marco.org/2011/03/30/here-is-a-tip-for-all-the-non-developers-out" rel="nofollow noopener" target="_blank">enough to shut him down</a>, who <a data-href="https://twitter.com/marcoarment/status/641330113934700544" href="https://twitter.com/marcoarment/status/641330113934700544" rel="nofollow noopener" target="_blank">blocked a friend of mine for the high crime of pointing out that his review of podcasting mics centered around higher priced gear and ignored folks without the scratch, who might not be ready for such things</a>, is, in a single word, disgusting. Vomitous even.</p>
+ <p id="9a6e" name="9a6e">It’s an hours-long dogpile that beggars even my imagination, and I can imagine almost anything. Seriously, it’s all there in <a data-href="https://twitter.com/s_bielefeld/with_replies" href="https://twitter.com/s_bielefeld/with_replies" rel="nofollow noopener" target="_blank">Samantha’s Twitter Feed</a>. From what I can tell, she’s understandably shocked over it. I however was not. This one comment in her feed made me smile (warning, this wanders a bit…er…LOT. Twitter timelines are not easy to put together):</p>
+ <blockquote id="3271" name="3271">I can see why you have some reservations about publishing it, but my gut feeling is that he would take it better than Nilay.</blockquote>
+ <p id="ec72" name="ec72">Oh honey, bless your sweet, ignorant heart. Marco is one of the biggest pushers of The Big Lie, and one of the reasons it is <em>such</em> a lie.</p>
+ <p id="5cc4" name="5cc4">But it gets better. First, you have the “hey, Marco <em>earned</em> his status!” lot. A valid point, and one Bielefeld explicitly acknowledges, here:</p>
+ <blockquote id="4e5f" name="4e5f">From his ground floor involvement in Tumblr (for which he is now a millionaire), to the creation and sale of a wildly successful app called Instapaper, he has become a household name in technology minded circles. It is this extensive time spent in the spotlight, the huge following on Twitter, and dedicated listeners of his weekly aired Accidental Tech Podcast, that has granted him the freedom to break from seeking revenue in more traditional manners.</blockquote>
+ <p id="cee9" name="cee9">and here:</p>
+ <blockquote id="3f1b" name="3f1b">I’m not knocking his success, he has put effort into his line of work, and has built his own life.</blockquote>
+ <p id="e527" name="e527">and here:</p>
+ <blockquote id="3e4f" name="3e4f">He has earned his time in the spotlight, and it’s only natural for him to take advantage of it.</blockquote>
+ <p id="8a01" name="8a01">But still, you get the people telling her something she already acknowledge:</p>
+ <blockquote id="7685" name="7685">I don’t think he’s blind. he’s worked to where he has gotten and has had failures like everyone else.</blockquote>
+ <p id="b151" name="b151">Thank you for restating something in the article. To the person who wrote it.</p>
+ <p id="87bc" name="87bc">In the original article, Samantha talked about the money Marco makes from his podcast. She based that on the numbers <a data-href="http://atp.fm/sponsor/" href="http://atp.fm/sponsor/" rel="nofollow noopener" target="_blank">provided by ATP in terms of sponsorship rates</a> and the number of current sponsors the podcast has. Is this going to yield perfect numbers? No. But the numbers you get from it will at least be reasonable, or should be unless the published sponsorship rates are just fantasy, and you’re stupid for taking them seriously.</p>
+ <p id="dbda" name="dbda">At first, she went with a simple formula:</p>
+ <blockquote id="1b4e" name="1b4e">$4K x 3 per episode = $12K x 52 weeks / 3 hosts splitting it.</blockquote>
+ <p id="0b33" name="0b33">That’s not someone making shit up, right? Rather quickly, someone pointed out that she’d made an error in how she calculated it:</p>
+ <blockquote id="76d7" name="76d7">That’s $4k per ad, no? So more like $12–16k per episode.</blockquote>
+ <p id="a089" name="a089">She’d already realized her mistake and fixed it.</p>
+ <blockquote id="b369" name="b369">which is actually wrong, and I’m correcting now. $4,000 per sponsor, per episode! So, $210,000 per year.</blockquote>
+ <p id="8b3b" name="8b3b">Again, this is based on <em>publicly available data</em> the only kind someone not part of ATP or a close friend of Arment has access to. So while her numbers may be wrong, if they are, there’s no way for her to know that. She’s basing her opinion on actual available data. Which is sadly rare.</p>
+ <p id="135a" name="135a">This becomes a huge flashpoint. You name a reason to attack her over this, people do. No really. For example, she’s not calculating his <em>income taxes correctly</em>:</p>
+ <blockquote id="5e7e" name="5e7e">especially since it isn’t his only source of income thus, not an indicator of his marginal inc. tax bracket.</blockquote>
+ <blockquote id="6036" name="6036">thus, guessing net income is more haphazard than stating approx. gross income.</blockquote>
+ <p id="aac1" name="aac1">Ye Gods. She’s not doing his taxes for him, her point is invalid?</p>
+ <p id="600f" name="600f">Then there’s the people who seem to have not read anything past what other people are telling them:</p>
+ <blockquote id="9b62" name="9b62">Not sure what to make of your Marco piece, to be honest. You mention his fame, whatever, but what’s the main idea here?</blockquote>
+ <p id="c18a" name="c18a">Just how spoon-fed do you have to be? Have you no teeth?</p>
+ <p id="c445" name="c445">Of course, Marco jumps in, and predictably, he’s snippy:</p>
+ <blockquote id="0c21" name="0c21">If you’re going to speak in precise absolutes, it’s best to first ensure that you’re correct.</blockquote>
+ <p id="8f8d" name="8f8d">If you’re going to be like that, it’s best to provide better data. Don’t get snippy when someone is going off the only data available, and is clearly open to revising based on better data.</p>
+ <p id="cc97" name="cc97">Then Marco’s friends/fans get into it:</p>
+ <blockquote id="f9da" name="f9da">I really don’t understand why it’s anyone’s business</blockquote>
+ <p id="0094" name="0094">Samantha is trying to qualify for sainthood at this point:</p>
+ <blockquote id="0105" name="0105">It isn’t really, it was a way of putting his income in context in regards to his ability to gamble with Overcast.</blockquote>
+ <p id="cdd1" name="cdd1">Again, she’s trying to drag people back to her actual point, but no one is going to play. The storm has begun. Then we get people who are just spouting nonsense:</p>
+ <blockquote id="f56c" name="f56c">Why is that only relevant for him? It’s a pretty weird metric,especially since his apps aren’t free.</blockquote>
+ <p id="4fef" name="4fef">Wha?? Overcast 2 is absolutely free. Samantha points this out:</p>
+ <blockquote id="0f36" name="0f36">His app is free, that’s what sparked the article to begin with.</blockquote>
+ <p id="40d2" name="40d2">The response is literally a parallel to “How can there be global warming if it snowed today in my town?”</p>
+ <blockquote id="6760" name="6760">If it’s free, how have I paid for it? Twice?</blockquote>
+ <p id="7b13" name="7b13">She is still trying:</p>
+ <blockquote id="44ba" name="44ba">You paid $4.99 to unlock functionality in Overcast 1.0 and you chose to support him with no additional functionality in 2.0</blockquote>
+ <p id="2152" name="2152">He is having none of it. IT SNOWED! SNOWWWWWWW!</p>
+ <blockquote id="99a6" name="99a6">Yes. That’s not free. Free is when you choose not to make money. And that can be weaponized. But that’s not what Overcast does.</blockquote>
+ <p id="5e6f" name="5e6f">She however, is relentless:</p>
+ <blockquote id="1b0f" name="1b0f">No, it’s still free. You can choose to support it, you are required to pay $4.99 for Pocket Casts. Totally different model.</blockquote>
+ <p id="d24f" name="d24f">Dude seems to give up. (Note: allllll the people bagging on her are men. All of them. Mansplaining like hell. And I’d bet every one of them considers themselves a feminist.)</p>
+ <p id="10e1" name="10e1">We get another guy trying to push the narrative she’s punishing him for his success, which is just…it’s stupid, okay? Stupid.</p>
+ <blockquote id="9b01" name="9b01">It also wasn’t my point in writing my piece today, but it seems to be everyone’s focus.</blockquote>
+ <p id="340c" name="340c">(UNDERSTATEMENT OF THE YEAR)</p>
+ <blockquote id="7244" name="7244">I think the focus should be more on that fact that while it’s difficult, Marco spent years building his audience.</blockquote>
+ <blockquote id="ffb1" name="ffb1">It doesn’t matter what he makes it how he charges. If the audience be earned is willing to pay for it, awesome.</blockquote>
+ <p id="e44e" name="e44e">She tries, oh lord, she tries:</p>
+ <blockquote id="a502" name="a502">To assert that he isn’t doing anything any other dev couldn’t, is wrong. It’s successful because it’s Marco.</blockquote>
+ <p id="7dcd" name="7dcd">But no, HE KNOWS HER POINT BETTER THAN SHE DOES:</p>
+ <blockquote id="a62a" name="a62a">No, it’s successful because he busted his ass to make it so. It’s like any other business. He grew it.</blockquote>
+ <p id="df8c" name="df8c">Christ. This is like a field of strawmen. Stupid ones. Very stupid ones.</p>
+ <p id="521a" name="521a">One guy tries to blame it all on Apple, another in a string of Wha??? moments:</p>
+ <blockquote id="d80d" name="d80d">the appropriate context is Apple’s App Store policies. Other devs aren’t Marco’s responsibility</blockquote>
+ <p id="db0b" name="db0b">Seriously? Dude, are you even trying to talk about what Samantha actually wrote? At this point, Samantha is clearly mystified at the entire thing:</p>
+ <blockquote id="7a78" name="7a78">Why has the conversation suddenly turned to focus on nothing more than ATP sponsorship income?</blockquote>
+ <p id="6e09" name="6e09">Because it’s a nit they can pick and allows them to ignore everything you wrote. That’s the only reason.</p>
+ <p id="b7db" name="b7db">One guy is “confused”:</p>
+ <blockquote id="3626" name="3626">I see. He does have clout, so are you saying he’s too modest in how he sees himself as a dev?</blockquote>
+ <blockquote id="9daa" name="9daa">Yes. He can’t be equated to the vast majority of other developers. Like calling Gruber, “just another blogger”.</blockquote>
+ <blockquote id="f6da" name="f6da">Alright, that’s fair. I was just confused by the $ and fame angle at first.</blockquote>
+ <p id="d5b1" name="d5b1">Samantha’s point centers on the benefits Marco gains via his fame and background. <em>HOW DO YOU NOT MENTION THAT? HOW IS THAT CONFUSING?</em></p>
+ <p id="58d0" name="58d0">People of course are telling her it’s her fault for mentioning a salient fact at all:</p>
+ <blockquote id="30d2" name="30d2">Why has the conversation suddenly turned to focus on nothing more than ATP sponsorship income?</blockquote>
+ <blockquote id="765b" name="765b">Maybe because you went there with your article?</blockquote>
+ <blockquote id="61fe" name="61fe">As a way of rationalizing his ability to gamble with the potential for Overcast to generate income…not the norm at all.</blockquote>
+ <p id="f17c" name="f17c">Of course, had she not brought up those important points, she’d have been bagged on for “not providing proof”. Lose some, lose more. By now, she’s had enough and she just deletes all mention of it. Understandable, but sad she was bullied into doing that.</p>
+ <p id="0b60" name="0b60">Yes, bullied. That’s all this is. Bullying. She didn’t lie, cheat, or exaagerate. If her numbers were wrong, they weren’t wrong in a way she had any ability to do anything about. But there’s blood in the water, and the comments and attacks get worse:</p>
+ <blockquote id="65ab" name="65ab">Because you decided to start a conversation about someone else’s personal shit. You started this war.</blockquote>
+ <p id="1adb" name="1adb">War. THIS. IS. WAR.</p>
+ <p id="de94" name="de94">This is a bunch of nerds attacking someone for reasoned, calm, <em>polite</em> criticism of their friend/idol. Samantha is politely pushing back a bit:</p>
+ <blockquote id="4458" name="4458">That doesn’t explain why every other part of my article is being pushed aside.</blockquote>
+ <p id="aeac" name="aeac">She’s right. This is all nonsense. This is people ignoring her article completely, just looking for things to attack so it can be dismissed. It’s tribalism at its purest.</p>
+ <p id="0078" name="0078">Then some of the other annointed get into it, including Jason Snell in one of the most spectactular displays of “I have special knowledge you can’t be expected to have, therefore you are totally off base and wrong, even though there’s no way for you to know this” I’ve seen in a while. Jason:</p>
+ <blockquote id="c4c9" name="c4c9">You should never use an ad rate card to estimate ad revenue from any media product ever.</blockquote>
+ <blockquote id="b66b" name="b66b">I learned this when I started working for a magazine — rate cards are mostly fiction, like prices on new cars</blockquote>
+ <p id="6907" name="6907">How…exactly…in the name of whatever deity Jason may believe in…is Samantha or anyone not “in the biz” supposed to know this. Also, what exactly does a magazine on paper like Macworld have to do with sponsorships for a podcast? I have done podcasts that were sponsored, and I can retaliate with “we charged what the rate card said we did. <em>Checkmate Elitests!</em>”</p>
+ <p id="41ec" name="41ec">Samantha basically abases herself at his feet:</p>
+ <blockquote id="0b14" name="0b14">I understand my mistake, and it’s unfortunate that it has completely diluted the point of my article.</blockquote>
+ <p id="590f" name="590f">I think she should have told him where and how to stuff that nonsense, but she’s a nicer person than I am. Also, it’s appropriate that Jason’s twitter avatar has its nose in the air. This is some rank snobbery. It’s disgusting and if anyone pulled that on him, Jason would be very upset. But hey, one cannot criticize The Marco without getting pushback. By “pushback”, I mean “an unrelenting fecal flood”.</p>
+ <p id="69dc" name="69dc">Her only mistake was criticizing one of the Kool Kids. Folks, if you criticize anyone in The Deck Clique, or their friends, expect the same thing, regardless of tone or point.</p>
+ <p id="5ab4" name="5ab4">Another App Dev, seemingly unable to parse Samantha’s words, needs <em>more</em> explanation:</p>
+ <blockquote id="957b" name="957b">so just looking over your mentions, I’m curious what exactly was your main point? Ignoring the podcast income bits.</blockquote>
+ <p id="0a7e" name="0a7e">Oh wait, he didn’t even read the article. Good on you, Dev Guy, good. on. you. Still, she plays nice <em>with someone who didn’t even read her article</em>:</p>
+ <blockquote id="f7db" name="f7db">That a typical unknown developer can’t depend on patronage to generate revenue, and charging for apps will become a negative.</blockquote>
+ <p id="937f" name="937f">Marco comes back of course, and now basically accuses her of lying about other devs talking to her and supporting her point:</p>
+ <blockquote id="c9dd" name="c9dd">How many actual developers did you hear from, really? Funny how almost nobody wants to give a (real) name on these accusations.</blockquote>
+ <p id="c522" name="c522">Really? You’re going to do that? “There’s no name, so I don’t think it’s a real person.” Just…what’s the Joe Welch quote from the McCarthy hearings?</p>
+ <blockquote id="907e" name="907e">Let us not assassinate this lad further, Senator. You’ve done enough. Have you no sense of decency, sir? At long last, have you left no sense of decency?</blockquote>
+ <p id="2158" name="2158">That is what this is at this point: character assasination because she said something critical of A Popular Person. It’s disgusting. Depressing and disgusting. No one, none of these people have seriously discussed her point, heck, it looks like they barely bothered to read it, if they did at all.</p>
+ <p id="13f8" name="13f8">Marco starts getting really petty with her (no big shock) and Samantha finally starts pushing back:</p>
+ <blockquote id="96c6" name="96c6">Glad to see you be the bigger person and ignore the mindset of so many developers not relating to you, good for you!</blockquote>
+ <p id="5d3f" name="5d3f">That of course, is what caused Marco to question the validity, if not the existence of her sources. (Funny how anonymous sources are totes okay when they convenience Marco et al, and work for oh, <em>Apple</em>, but when they are inconvenient? Ha! PROVIDE ME PROOF YOU INTEMPERATE WOMAN!)</p>
+ <p id="c07c" name="c07c">Make no mistake, there’s some sexist shit going on here. Every tweet I’ve quoted was authored by a guy.</p>
+ <p id="8b32" name="8b32">Of course, Marco has to play the “I’ve been around longer than you” card with this bon mot:</p>
+ <blockquote id="de26" name="de26">Yup, before you existed!</blockquote>
+ <p id="a3bd" name="a3bd">Really dude? I mean, I’m sorry about the penis, but really?</p>
+ <p id="1c51" name="1c51">Mind you, when the criticism isn’t just bizarrely stupid, Samantha reacts the way Marco and his ilk claim they would to (if they ever got any <em>valid</em> criticism. Which clearly is impossible):</p>
+ <blockquote id="9848" name="9848">Not to get into the middle of this, but “income” is not the term you’re looking for. “Revenue” is.</blockquote>
+ <blockquote id="f2a6" name="f2a6">lol. Noted.</blockquote>
+ <blockquote id="aed9" name="aed9">And I wasn’t intending to be a dick, just a lot of people hear/say “income” when they intend “revenue”, and then discussion …</blockquote>
+ <blockquote id="f9d8" name="f9d8">… gets derailed by a jedi handwave of “Expenses”. But outside of charitable donation, it is all directly related.</blockquote>
+ <blockquote id="f61c" name="f61c">haha. Thank you for the clarification.</blockquote>
+ <p id="5dd9" name="5dd9">Note to Marco and the other…whatever they are…that is how one reacts to that kind of criticism. With a bit of humor and self-deprecation. You should try it sometime. For real, not just in your heads or conversations in Irish Pubs in S.F.</p>
+ <p id="dc44" name="dc44">But now, the door has been cracked, and the cheap shots come out:</p>
+ <blockquote id="0c94" name="0c94">@testflight_app: Don’t worry guys, we process <a data-href="https://twitter.com/marcoarment" href="https://twitter.com/marcoarment" rel="nofollow noopener" target="_blank">@marcoarment</a>’s apps in direct proportion to his megabucks earnings. <a data-href="https://twitter.com/hashtag/fairelephant?src=hash" href="https://twitter.com/hashtag/fairelephant?src=hash" rel="nofollow noopener" target="_blank">#fairelephant</a></blockquote>
+ <p id="343b" name="343b">(Note: testflight_app is a parody account. Please do not mess with the actual testflight folks. They are still cool.)</p>
+ <p id="09bf" name="09bf">Or this…conversation:</p>
+ <figure id="4d63" name="4d63"><div>
+
+
+ </div>
+ </figure><p id="f2a3" name="f2a3">Good job guys. Good job. Defend the tribe. Attack the other. Frederico attempts to recover from his stunning display of demeaning douchery: <a data-href="https://twitter.com/viticci" href="https://twitter.com/viticci" rel="nofollow noopener" target="_blank">‏@viticci</a>: <a data-href="https://twitter.com/s_bielefeld" href="https://twitter.com/s_bielefeld" rel="nofollow noopener" target="_blank">@s_bielefeld</a> I don’t know if it’s an Italian thing, but counting other people’s money is especially weird for me. IMO, bad move in the post.</p>
+ <p id="ae0c" name="ae0c">Samantha is clearly sick of his crap: <a data-href="https://twitter.com/s_bielefeld" href="https://twitter.com/s_bielefeld" rel="nofollow noopener" target="_blank">‏@s_bielefeld</a>: <a data-href="https://twitter.com/viticci" href="https://twitter.com/viticci" rel="nofollow noopener" target="_blank">@viticci</a> That’s what I’m referring to, the mistake of ever having mentioned it. So, now, Marco can ignore the bigger issue and go on living.</p>
+ <p id="2047" name="2047">Good for her. There’s being patient and being roadkill.</p>
+ <p id="4139" name="4139">Samantha does put the call out for her sources to maybe let her use their names:</p>
+ <blockquote id="6626" name="6626">From all of you I heard from earlier, anyone care to go on record?</blockquote>
+ <p id="8a7d" name="8a7d">My good friend, The Angry Drunk points out the obvious problem:</p>
+ <blockquote id="68c9" name="68c9">Nobody’s going to go on record when they count on Marco’s friends for their PR.</blockquote>
+ <p id="317d" name="317d">This is true. Again, the sites that are Friends of Marco:</p>
+ <p id="9523" name="9523">Daring Fireball</p>
+ <p id="dbc7" name="dbc7">The Loop</p>
+ <p id="c706" name="c706">SixColors</p>
+ <p id="0acb" name="0acb">iMore</p>
+ <p id="8c8c" name="8c8c">MacStories</p>
+ <p id="643e" name="643e">A few others, but I want this post to end one day.</p>
+ <p id="6b76" name="6b76">You piss that crew off, and given how petty rather a few of them have demonstrated they are, good luck on getting any kind of notice from them.</p>
+ <p id="f7d1" name="f7d1">Of course, the idea this could happen is just craycray:</p>
+ <blockquote id="de59" name="de59"><a data-href="https://twitter.com/KevinColeman" href="https://twitter.com/KevinColeman" rel="nofollow noopener" target="_blank">@KevinColeman </a><a data-href="https://twitter.com/Angry_Drunk" href="https://twitter.com/Angry_Drunk" rel="nofollow noopener" target="_blank">.@Angry_Drunk</a> <a data-href="https://twitter.com/s_bielefeld" href="https://twitter.com/s_bielefeld" rel="nofollow noopener" target="_blank">@s_bielefeld</a> <a data-href="https://twitter.com/marcoarment" href="https://twitter.com/marcoarment" rel="nofollow noopener" target="_blank">@marcoarment</a> Wow, you guys are veering right into crazy conspiracy theory territory. <a data-href="https://twitter.com/hashtag/JetFuelCantMeltSteelBeams?src=hash" href="https://twitter.com/hashtag/JetFuelCantMeltSteelBeams?src=hash" rel="nofollow noopener" target="_blank">#JetFuelCantMeltSteelBeams</a></blockquote>
+ <p id="f01b" name="f01b">Yeah. Because a mature person like Marco would never do anything like that.</p>
+ <p id="7e30" name="7e30">Of course, the real point on this is starting to happen:</p>
+ <blockquote id="5d93" name="5d93">you’re getting a lot of heat now but happy you are writing things that stir up the community. Hope you continue to be a voice!</blockquote>
+ <blockquote id="436b" name="436b">I doubt I will.</blockquote>
+ <p id="ac25" name="ac25">See, they’ve done their job. Mess with the bull, you get the horns. Maybe you should find another thing to write about, this isn’t a good place for you. <em>Great</em> job y’all.</p>
+ <p id="07ba" name="07ba">Some people aren’t even pretending. They’re just in full strawman mode:</p>
+ <blockquote id="3d60" name="3d60"><a data-href="https://twitter.com/timkeller" href="https://twitter.com/timkeller" rel="nofollow noopener" target="_blank">@timkeller: </a>Unfair to begrudge a person for leveraging past success, especially when that success is earned. No ‘luck’ involved.</blockquote>
+ <blockquote id="87f5" name="87f5"><a data-href="https://twitter.com/s_bielefeld" href="https://twitter.com/s_bielefeld" rel="nofollow noopener" target="_blank">@s_bielefeld: </a><a data-href="https://twitter.com/timkeller" href="https://twitter.com/timkeller" rel="nofollow noopener" target="_blank">@timkeller</a> I plainly stated that I don’t hold his doing this against him. Way to twist words.</blockquote>
+ <p id="3720" name="3720">I think she’s earned her anger at this point.</p>
+ <p id="7341" name="7341">Don’t worry, Marco knows what the real problem is: most devs just suck —</p>
+ <figure id="babe" name="babe"><div>
+
+
+ </div>
+ </figure><p id="503d" name="503d">I have a saying that applies in this case: don’t place your head so far up your nethers that you go full Klein Bottle. Marco has gone full Klein Bottle. (To be correct, he went FKB some years ago.)</p>
+ <p id="b8c0" name="b8c0">There are some bright spots. My favorite is when Building Twenty points out the <em>real</em> elephant in the room:</p>
+ <blockquote id="36f4" name="36f4"><a data-href="https://twitter.com/BuildingTwenty" href="https://twitter.com/BuildingTwenty" rel="nofollow noopener" target="_blank">@BuildingTwenty</a>: Both <a data-href="https://twitter.com/s_bielefeld" href="https://twitter.com/s_bielefeld" rel="nofollow noopener" target="_blank">@s_bielefeld</a> &amp; I wrote similar critiques of <a data-href="https://twitter.com/marcoarment" href="https://twitter.com/marcoarment" rel="nofollow noopener" target="_blank">@marcoarment</a>’s pricing model yet the Internet pilloried only the woman. Who’d have guessed?</blockquote>
+ <p id="06b9" name="06b9">Yup.</p>
+ <p id="eff9" name="eff9">Another bright spot are these comments from Ian Betteridge, who has been doing this <em>even longer than Marco</em>:</p>
+ <blockquote id="18f1" name="18f1">You know, any writer who has never made a single factual error in a piece hasn’t ever written anything worth reading.</blockquote>
+ <blockquote id="9776" name="9776">I learned my job with the support of people who helped me. Had I suffered an Internet pile on for every error I wouldn’t have bothered.</blockquote>
+ <p id="8d44" name="8d44">To which Samantha understandably replies:</p>
+ <blockquote id="7147" name="7147">and it’s honestly something I’m contemplating right now, whether to continue…</blockquote>
+ <p id="e0cd" name="e0cd">Gee, I can’t imagine why. Why with comments like this from Chris Breen that completely misrepresent Samantha’s point, (who until today, I would have absolutely defended as being better than this, something I am genuinely saddened to be wrong about), why wouldn’t she want to continue doing this?</p>
+ <blockquote id="a379" name="a379">If I have this right, some people are outraged that a creator has decided to give away his work.</blockquote>
+ <p id="f026" name="f026">No Chris, you don’t have this right. But hey, who has time to find out the real issue and read an article. I’m sure your friends told you everything you need to know.</p>
+ <p id="e1c2" name="e1c2">Noted Feminist Glenn Fleishman gets a piece of the action too:</p>
+ <figure id="067c" name="067c"><div>
+
+
+ </div>
+ </figure><p id="4df8" name="4df8">I’m not actually surprised here. I watched Fleishman berate a friend of mine who has been an engineer for…heck, waaaaay too long on major software products in the most condescending way because she tried to point out that as a <em>very</em> technical woman, “The Magazine” literally had nothing to say to her and maybe he should fix that. “Impertinent” was I believe what he called her, but I may have the specific word wrong. Not the attitude mind you. Great Feminists like Glenn do not like uppity women criticizing Great Feminists who are their Great Allies.</p>
+ <p id="bf45" name="bf45">Great Feminists are often tools.</p>
+ </div>
+ </div>
+ </section><section name="c883">
+ <div>
+ <div>
+ <p id="45bb" name="45bb">Luckily, I hope, the people who get Samantha’s point also started chiming in (and you get 100% of the women commenting here that I’ve seen):</p>
+ <blockquote id="c053" name="c053">I don’t think he’s wrong for doing it, he just discusses it as if the market’s a level playing field — it isn’t</blockquote>
+ <blockquote id="7b5e" name="7b5e">This is a great article with lots of great points about the sustainability of iOS development. Thank you for publishing it.</blockquote>
+ <blockquote id="a321" name="a321">Regardless of the numbers and your view of MA, fair points here about confirmation bias in app marketing feasibility <a data-href="http://t.co/u79ZLsnhdM" href="http://t.co/u79ZLsnhdM" rel="nofollow noopener" target="_blank" title="http://samanthabielefeld.com/the-elephant-in-the-room">http://samanthabielefeld.com/the-elephant-in-the-room …</a></blockquote>
+ <blockquote id="76fe" name="76fe">thank you for posting this, it covers a lot of things people don’t like to talk about.</blockquote>
+ <blockquote id="bf90" name="bf90">I’m sure you have caught untold amounts of flak over posting this because Marco is blind to his privilege as a developer.</blockquote>
+ <blockquote id="0f66" name="0f66">Catching up on the debate, and agreeing with Harry’s remark. (Enjoyed your article, Samantha, and ‘got’ your point.)</blockquote>
+ </div>
+ </div>
+ </section><section name="8ab2">
+ <div>
+ <div>
+ <p id="6134" name="6134">I would like to say I’m surprised at the reaction to Samantha’s article, but I’m not. In spite of his loud declarations of support for The Big Lie, Marco Arment is as bad at any form of criticism that he hasn’t already approved as a very insecure tween. An example from 2011: <a data-href="http://www.businessinsider.com/marco-arment-2011-9" href="http://www.businessinsider.com/marco-arment-2011-9" rel="nofollow noopener" target="_blank">http://www.businessinsider.com/marco-arment-2011-9</a></p>
+ <p id="ba3c" name="ba3c">Marco is great with criticism as long as it never actually criticizes him. If it does, be prepared a flood of petty, petulant whining that a room full of bored preschoolers on a hot day would be hard-pressed to match.</p>
+ <p id="a5a0" name="a5a0">Today has been…well, it sucks. It sucks because someone doing what all the Arments of the world claim to want was naive enough to believe what they were told, and found out the hard way just how big a lie The Big Lie is, and how vicious people are when you’re silly enough to believe anything they say about criticism.</p>
+ <p id="2a25" name="2a25">And note again, every single condescending crack, misrepresentation, and strawman had an exclusively male source. Most of them have, at one point or another, loudly trumpted themselves as Feminist Allies, as a friend to women struggling with the sexism and misogyny in tech. Congratulations y’all on being just as bad as the people you claim to oppose.</p>
+ <p id="a47a" name="a47a">Samantha has handled this better than anyone else could have. My respect for her as a person and a writer is off the charts. If she choses to walk away from blogging in the Apple space, <em>believe me</em> I understand. As bad as today was for her, I’ve seen worse. Much worse.</p>
+ <p id="aa8e" name="aa8e">But I hope she doesn’t. I hope she stays, because she is Doing This Right, and in a corner of the internet that has become naught but an endless circle jerk, a cliquish collection, a churlish, childish cohort interested not in writing or the truth, but in making sure The Right People are elevated, and The Others put down, she is someone worth reading and listening to. The number people who owe her apologies goes around the block, and I don’t think she’ll ever see a one. I’m sure as heck not apologizing for them, I’ll not make their lives easier in the least.</p>
+ <p id="34c5" name="34c5">All of you, all. of. you…Marco, Breen, Snell, Vittici, had a chance to live by your words. You were faced with reasoned, polite, respectful criticism and instead of what you should have done, you all dropped trou and sprayed an epic diarrheal discharge all over someone who had done nothing to deserve it. Me, I earned most of my aggro, Samantha did not earn any of the idiocy I’ve seen today. I hope you’re all proud of yourselves. Someone should be, it won’t be me. Ever.</p>
+ <p id="9710" name="9710">So I hope she stays, but if she goes, I understand. For what it’s worth, I don’t think she’s wrong either way.</p>
+ </div>
+ </div>
+ </section> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-3/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-3/source.html
new file mode 100644
index 000000000..37c246419
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/medium-3/source.html
@@ -0,0 +1,4815 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:cc="http://creativecommons.org/ns#">
+
+<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# medium-com: http://ogp.me/ns/fb/medium-com#">
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <title>Samantha and The Great Big Lie – John C. Welch – Medium</title>
+ <link rel="canonical" href="https://medium.com/@johncwelch/samantha-and-the-great-big-lie-d146a92473a1" />
+ <meta name="title" content="Samantha and The Great Big Lie" />
+ <meta name="referrer" content="always" />
+ <meta name="description" content="(EDIT: removed the link to Samantha’s post, because the arments and the grubers and the rest of The Deck Clique got what they wanted: a non-proper person driven off the internet lightly capped with a…" />
+ <meta property="og:title" content="Samantha and The Great Big Lie" />
+ <meta property="og:url" content="https://medium.com/@johncwelch/samantha-and-the-great-big-lie-d146a92473a1" />
+ <meta property="og:image" content="https://cdn-images-1.medium.com/max/1200/1*kbPh7V97eyRodSOw2-ALDw.png" />
+ <meta property="fb:app_id" content="542599432471018" />
+ <meta property="og:description" content="How to get shanked doing what people say they want" />
+ <meta name="twitter:description" content="How to get shanked doing what people say they want" />
+ <meta name="twitter:image:src" content="https://cdn-images-1.medium.com/max/1200/1*kbPh7V97eyRodSOw2-ALDw.png" />
+ <link rel="publisher" href="https://plus.google.com/103654360130207659246" />
+ <link rel="author" href="https://medium.com/@johncwelch" />
+ <meta name="author" content="John C. Welch" />
+ <meta property="og:type" content="article" />
+ <meta name="twitter:card" content="summary_large_image" />
+ <meta property="article:publisher" content="https://www.facebook.com/medium" />
+ <meta property="article:author" content="https://medium.com/@johncwelch" />
+ <meta property="fb:smart_publish:robots" content="noauto" />
+ <meta name="robots" content="index, follow" />
+ <meta property="article:published_time" content="2015-10-15T02:19:15.607Z" />
+ <meta name="twitter:site" content="@Medium" />
+ <meta property="og:site_name" content="Medium" />
+ <meta name="twitter:label1" value="Reading time" />
+ <meta name="twitter:data1" value="18 min read" />
+ <script type="application/ld+json">
+ {
+ "@context": "http://schema.org",
+ "@type": "NewsArticle",
+ "image": {
+ "@type": "ImageObject",
+ "width": 398,
+ "height": 542,
+ "url": "https://cdn-images-1.medium.com/max/796/1*kbPh7V97eyRodSOw2-ALDw.png"
+ },
+ "datePublished": "2015-10-15T02:19:15.607Z",
+ "dateModified": "2015-12-11T14:28:34.438Z",
+ "headline": "Samantha and The Great Big Lie",
+ "name": "Samantha and The Great Big Lie",
+ "keywords": [],
+ "author": {
+ "@type": "Person",
+ "name": "John C. Welch",
+ "url": "https://medium.com/@johncwelch"
+ },
+ "creator": ["John C. Welch"],
+ "mainEntityOfPage": "https://medium.com/@johncwelch/samantha-and-the-great-big-lie-d146a92473a1"
+ }
+ </script>
+ <meta name="twitter:app:name:iphone" content="Medium" />
+ <meta name="twitter:app:id:iphone" content="828256236" />
+ <meta name="twitter:app:url:iphone" content="medium://p/d146a92473a1" />
+ <meta property="al:ios:app_name" content="Medium" />
+ <meta property="al:ios:app_store_id" content="828256236" />
+ <meta property="al:android:package" content="com.medium.reader" />
+ <meta property="al:android:app_name" content="Medium" />
+ <meta property="al:ios:url" content="medium://p/d146a92473a1" />
+ <meta property="al:android:url" content="medium://p/d146a92473a1" />
+ <meta property="al:web:url" content="https://medium.com/@johncwelch/samantha-and-the-great-big-lie-d146a92473a1" />
+ <link rel="search" type="application/opensearchdescription+xml" title="Medium" href="/osd.xml" />
+ <link rel="alternate" href="android-app://com.medium.reader/https/medium.com/p/d146a92473a1" />
+ <meta name="theme-color" content="#000000" />
+ <link rel="stylesheet" type="text/css" href="https://cdn-static-1.medium.com/_/fp/css/fonts-latin-base.141WxxXgxGxNcfeza73H7Q.css" />
+ <link rel="stylesheet" href="https://cdn-static-1.medium.com/_/fp/css/main-base.FCIkh6GVUOig4-7oFthH1Q.css" />
+ <script>
+ if (window.top !== window.self) window.top.location = window.self.location.href;
+ var OB_startTime = new Date().getTime();
+ var OB_loadErrors = [];
+
+ function _onerror(e) {
+ OB_loadErrors.push(e)
+ };
+ if (document.addEventListener) document.addEventListener("error", _onerror, true);
+ else if (document.attachEvent) document.attachEvent("onerror", _onerror);
+
+ function _asyncScript(u) {
+ var d = document,
+ f = d.getElementsByTagName("script")[0],
+ s = d.createElement("script");
+ s.type = "text/javascript";
+ s.async = true;
+ s.src = u;
+ f.parentNode.insertBefore(s, f);
+ }
+
+ function _asyncStyles(u) {
+ var d = document,
+ f = d.getElementsByTagName("script")[0],
+ s = d.createElement("link");
+ s.rel = "stylesheet";
+ s.href = u;
+ f.parentNode.insertBefore(s, f);
+ return s
+ }
+ var _gaq = _gaq || [];
+ _gaq.push(["_setAccount", "UA-24232453-2"]);
+ _gaq.push(["_setDomainName", window.location.hostname]);
+ _gaq.push(["_setAllowLinker", true]);
+ _gaq.push(["_trackPageview"]);
+ _asyncScript(("https:" == document.location.protocol ? "https://ssl" : "http://www") + ".google-analytics.com/ga.js");
+ (new Image()).src = "/_/stat?event=pixel.load&amp;origin=" + encodeURIComponent(location.origin);
+ </script>
+ <!--[if lt IE 9]><script charset="UTF-8" src="https://cdn-static-1.medium.com/_/fp/js/shiv.RI2ePTZ5gFmMgLzG5bEVAA.js"></script><![endif]-->
+ <link rel="icon" href="https://cdn-static-1.medium.com/_/fp/icons/favicon-medium.TAS6uQ-Y7kcKgi0xjcYHXw.ico" class="js-favicon" />
+ <link rel="apple-touch-icon" sizes="152x152" href="https://cdn-images-1.medium.com/fit/c/304/304/1*W0nmth_X8nFKjn6BZ388UQ.png" />
+ <link rel="apple-touch-icon" sizes="120x120" href="https://cdn-images-1.medium.com/fit/c/240/240/1*W0nmth_X8nFKjn6BZ388UQ.png" />
+ <link rel="apple-touch-icon" sizes="76x76" href="https://cdn-images-1.medium.com/fit/c/152/152/1*W0nmth_X8nFKjn6BZ388UQ.png" />
+ <link rel="apple-touch-icon" sizes="60x60" href="https://cdn-images-1.medium.com/fit/c/120/120/1*W0nmth_X8nFKjn6BZ388UQ.png" />
+ <link rel="mask-icon" href="https://cdn-static-1.medium.com/_/fp/icons/favicon.KjTfUJo7yJH_fCoUzzH3cg.svg" color="#171717" />
+</head>
+
+<body itemscope="" class=" postShowScreen browser-firefox os-mac is-withMagicUnderlines is-noJs">
+ <script>
+ document.body.className = document.body.className.replace(/(^|\s)is-noJs(\s|$)/, "$1is-js$2")
+ </script>
+ <div class="site-main" id="container">
+ <div class="butterBar butterBar--error"></div>
+ <div class="surface">
+ <div id="prerendered" class="screenContent"><canvas class="canvas-renderer"></canvas>
+ <div class="container u-maxWidth740 u-xs-margin0 notesPositionContainer js-notesPositionContainer"></div>
+ <div class="metabar u-clearfix js-metabar">
+ <div class="metabar-inner u-marginAuto u-maxWidth1000 u-paddingLeft20 u-paddingRight20 js-metabarMiddle">
+ <div class="metabar-block metabar-block--left u-floatLeft u-height65 u-xs-height56"><a href="https://medium.com/" class="siteNav-logo" data-log-event="home"><span class="svgIcon svgIcon--logoNew svgIcon--45px is-flushLeft"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="45" height="45" viewBox="-17 18 45 45" data-multipart="true"><path d="M11.525 28.078c-.472-.225-.858.002-.858.506v20.044l8.616 4.113c.948.46 1.717.14 1.717-.7v-19.3a.22.22 0 0 0-.124-.19l-9.35-4.46v-.01z"/><path d="M.333 43.696l9.83-15.247c.278-.43.89-.6 1.36-.38l9.364 4.47c.06.03.082.1.047.15L10.666 48.63.333 43.698v-.002z"/><path d="M-8.57 28.35c-.786-.375-1.053-.096-.592.62L.333 43.696l10.333 4.932L.356 32.635a.156.156 0 0 0-.06-.054l-8.866-4.23z"/><path d="M.333 52.033c0 .84-.643 1.22-1.43.844l-8.045-3.84c-.472-.224-.858-.82-.858-1.325V28.89c0-.672.515-.976 1.145-.675l9.133 4.36a.092.092 0 0 1 .055.084v19.37z"/></svg></span><span class="u-textScreenReader">Homepage</span></a></div>
+ <div class="metabar-block u-floatRight u-xs-absolute u-xs-textAlignRight u-xs-right0 u-xs-marginRight20 u-height65 u-xs-height56">
+ <div class="buttonSet"><a class="button button--primary button--chromeless u-accentColor--buttonNormal is-inSiteNavBar u-lineHeight30 u-height32" href="https://medium.com/m/signin?redirect=https%3A%2F%2Fmedium.com%2F%40johncwelch%2Fsamantha-and-the-great-big-lie-d146a92473a1" data-action="sign-in-prompt" data-redirect="https://medium.com/@johncwelch/samantha-and-the-great-big-lie-d146a92473a1" data-action-source="nav_signup">Sign in / Sign up</a></div>
+ </div>
+ </div>
+ </div>
+ <div class="metabar metabar--spacer js-metabarSpacer u-height65 u-xs-height56"></div>
+ <main role="main">
+ <article class=" u-sizeViewHeightMin100 u-overflowHidden postArticle postArticle--full u-marginBottom40" lang="en">
+ <header class="container u-maxWidth740">
+ <div class="postMetaHeader u-paddingBottom10 row">
+ <div class="col u-size12of12 js-postMetaLockup">
+ <div class="postMetaLockup postMetaLockup--authorWithBio u-flex js-postMetaLockup">
+ <div class="u-flex0">
+ <a class="link avatar u-baseColor--link" href="https://medium.com/@johncwelch?source=post_header_lockup" data-action="show-user-card" data-action-source="post_header_lockup" data-action-value="77a507c5ad19" data-action-type="hover" data-user-id="77a507c5ad19" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/0*qPHQu8WqsC6cV_ud.jpg" class="avatar-image avatar-image--smaller" alt="Go to the profile of John C. Welch" /></a>
+ </div>
+ <div class="u-flex1 u-paddingLeft15 u-overflowHidden"><a class="link link link--darken link--darker u-baseColor--link" href="https://medium.com/@johncwelch?source=post_header_lockup" data-action="show-user-card" data-action-source="post_header_lockup" data-action-value="77a507c5ad19" data-action-type="hover" data-user-id="77a507c5ad19" dir="auto">John C. Welch</a><span class="followState js-followState buttonSet-inner" data-user-id="77a507c5ad19"><button class="button u-paddingLeft10 u-paddingRight10 u-height19 u-lineHeight13 u-verticalAlignMiddle u-fontSizeSmallest u-uiTextMedium u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton u-marginLeft10 u-marginTopNegative2 u-xs-hide" data-action="sign-in-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-action-source="post_header_lockup"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary u-paddingLeft10 u-paddingRight10 u-height19 u-lineHeight13 u-verticalAlignMiddle u-fontSizeSmallest u-uiTextMedium u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton u-marginLeft10 u-marginTopNegative2 u-xs-hide" data-action="sign-in-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/77a507c5ad19" data-action-source="post_header_lockup_follow"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span>
+ <div class="postMetaInline js-testPostMetaInlineSupplemental"><time datetime="2015-10-15T02:19:15.607Z">Oct 15, 2015</time><span class="middotDivider u-fontSizeSmallest"></span><span class="readingTime" title="18 min read"></span></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </header>
+ <div class="postArticle-content js-postField js-notesSource js-trackedPost" data-post-id="d146a92473a1" data-source="post_page" data-tracking-context="postPage">
+ <section name="55ff" class="section section--body section--first">
+ <div class="section-divider">
+ <hr class="section-divider" />
+ </div>
+ <div class="section-content">
+ <div class="section-inner sectionLayout--insetColumn">
+ <h1 name="b34c" id="b34c" class="graf graf--h3 graf--leading graf--title">Samantha and The Great Big Lie</h1>
+ <p name="97e7" id="97e7" class="graf graf--p graf-after--h3">How to get shanked doing what people say they want</p>
+ <blockquote name="df70" id="df70" class="graf graf--blockquote graf-after--p">don’t preach to me<br />Mr. integrity</blockquote>
+ <p name="c979" id="c979" class="graf graf--p graf-after--blockquote">(EDIT: removed the link to Samantha’s post, because the arments and the grubers and the rest of The Deck Clique got what they wanted: a non-proper person driven off the internet lightly capped with a dusting of transphobia along the way, all totally okay because the ends justify the means, and it’s okay when “good” people do it.)</p>
+ <p name="342d" id="342d" class="graf graf--p graf-after--p">First, I need to say something about this article: the reason I’m writing it infuriates me. Worse than installing CS 3 or Acrobat 7 ever did, and the former inspired comparisons to fecophile porn. I’m actually too mad to cuss. Well, not completely, but in this case, I don’t think the people I’m mad at are worth the creativity I try to put into profanity. This is about a brownfield of hypocrisy and viciously deliberate mischaracterization that “shame” cannot even come close to the shame those behind it should feel.</p>
+ <p name="2e61" id="2e61" class="graf graf--p graf-after--p">Now, read this post by Samantha Bielefeld: The Elephant in the Room. First, it is a well-written critical piece that raises a few points in a calm, rational, nonconfrontational fashion, exactly the kind of things the pushers of The Great Big Lie say we need more of, as opposed to the screaming that is the norm in such cases.</p>
+ <p name="cd31" id="cd31" class="graf graf--p graf-after--p">…sorry, I should explain “The Great Big Lie”. There are several, but in this case, our <em class="markup--em markup--p-em">specific</em> instance of “The Great Big Lie” is about criticism. Over and over, you hear from the very people I am not going to be nice to in this that we need “better” criticsm. Instead of rage and anger, volume and vitriol, we need in-depth rational criticism, that isn’t personal or ad hominem. That it should focus on points, not people.</p>
+ <p name="ae07" id="ae07" class="graf graf--p graf-after--p graf--trailing">That, readers, is “The Big Lie”. It is a lie so big that if one ponders the reality of it, as I am going to, one wonders why anyone would believe it. It is a lie and it is one we should stop telling.</p>
+ </div>
+ </div>
+ </section>
+ <section name="c360" class="section section--body">
+ <div class="section-divider">
+ <hr class="section-divider" />
+ </div>
+ <div class="section-content">
+ <div class="section-inner sectionLayout--insetColumn">
+ <p name="a02f" id="a02f" class="graf graf--p graf--leading">Samantha’s points (I assume you read it, for you are smart people who know the importance of such things) are fairly clear:</p>
+ <ol class="postList">
+ <li name="9213" id="9213" class="graf graf--li graf-after--p">With the release of Overcast 2.0, a product Samantha actually likes, Marco Arment moved to a <a href="http://www.marco.org/2015/10/09/overcast2" data-href="http://www.marco.org/2015/10/09/overcast2" class="markup--anchor markup--li-anchor" rel="nofollow noopener" target="_blank">patronage model</a> that will probably be successful for him.</li>
+ <li name="dfa5" id="dfa5" class="graf graf--li graf-after--li">Arment’s insistence that “<a href="https://medium.com/@marcoarment/pragmatic-app-pricing-a79fc07218f3" data-href="https://medium.com/@marcoarment/pragmatic-app-pricing-a79fc07218f3" class="markup--anchor markup--li-anchor" target="_blank">anyone can do this</a>” while technically true, (anyone can in fact, implement this pricing model), also implies that “anyone” can have the kind of success that a developer with Marco’s history, financial status, and deep ties to the Apple News Web is expected to have. This is silly.</li>
+ <li name="e55d" id="e55d" class="graf graf--li graf-after--li">Marco Arment occupies a fairly unique position in the Apple universe, (gained by hard work and no small talent), and because of that, benefits from a set of privileges that a new developer or even one that has been around for a long time, but isn’t, well, <em class="markup--em markup--li-em">Marco</em>, not only don’t have, but have little chance of attaining anytime soon.</li>
+ <li name="35fb" id="35fb" class="graf graf--li graf-after--li">Marco has earned his success and is entitled to the benefits and privileges it brings, but he seems rather blind to all of that, and seems to still imagine himself as “two guys in a garage”. This is just not correct.</li>
+ <li name="38e2" id="38e2" class="graf graf--li graf-after--li">In addition, the benefits and privileges of the above ensure that by releasing Overcast 2 as a free app, with patronage pricing, he has, if not gutted, severely hurt the ability of folks actually selling their apps for an up-front price of not free to continue doing so. This has the effect of accelerating the “race to the bottom” in the podcast listening app segment, which hurts devs who cannot afford to work on a “I don’t really need this money, so whatever you feel like sending is okay” model.</li>
+ </ol>
+ <p name="0481" id="0481" class="graf graf--p graf-after--li">None of this is incorrect. None of this is an ad hominem attack in any way. It is just pointing out that a developer of Arment’s stature and status lives in a very different world than someone in East Frog Balls, Arkansas trying to make a living off of App sales. Our dev in EFB doesn’t have the main sites on the Apple web falling all over themselves to review their app the way that Arment does. They’re not friends with the people being The Loop, Daring Fireball, SixColors, iMore, The Mac Observer, etc., yadda.</p>
+ <p name="5a45" id="5a45" class="graf graf--p graf-after--p">So, our hero, in a fit of well-meaning ignorance writes this piece (posted this morning, 14 Oct. 15) and of course, the response and any criticisms are just as reasonable and thoughtful.</p>
+ <p name="3bc7" id="3bc7" class="graf graf--p graf-after--p graf--trailing">If you really believe that, you are the most preciously ignorant person in the world, and can I have your seriously charmed life.</p>
+ </div>
+ </div>
+ </section>
+ <section name="2ba2" class="section section--body">
+ <div class="section-divider">
+ <hr class="section-divider" />
+ </div>
+ <div class="section-content">
+ <div class="section-inner sectionLayout--insetColumn">
+ <p name="0fb2" id="0fb2" class="graf graf--p graf--leading">The response, from all quarters, including Marco, someone who is so sensitive to criticism that the word “useless” is <a href="http://www.marco.org/2011/03/30/here-is-a-tip-for-all-the-non-developers-out" data-href="http://www.marco.org/2011/03/30/here-is-a-tip-for-all-the-non-developers-out" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">enough to shut him down</a>, who <a href="https://twitter.com/marcoarment/status/641330113934700544" data-href="https://twitter.com/marcoarment/status/641330113934700544" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">blocked a friend of mine for the high crime of pointing out that his review of podcasting mics centered around higher priced gear and ignored folks without the scratch, who might not be ready for such things</a>, is, in a single word, disgusting. Vomitous even.</p>
+ <p name="9a6e" id="9a6e" class="graf graf--p graf-after--p">It’s an hours-long dogpile that beggars even my imagination, and I can imagine almost anything. Seriously, it’s all there in <a href="https://twitter.com/s_bielefeld/with_replies" data-href="https://twitter.com/s_bielefeld/with_replies" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">Samantha’s Twitter Feed</a>. From what I can tell, she’s understandably shocked over it. I however was not. This one comment in her feed made me smile (warning, this wanders a bit…er…LOT. Twitter timelines are not easy to put together):</p>
+ <blockquote name="3271" id="3271" class="graf graf--blockquote graf-after--p">I can see why you have some reservations about publishing it, but my gut feeling is that he would take it better than Nilay.</blockquote>
+ <p name="ec72" id="ec72" class="graf graf--p graf-after--blockquote">Oh honey, bless your sweet, ignorant heart. Marco is one of the biggest pushers of The Big Lie, and one of the reasons it is <em class="markup--em markup--p-em">such</em> a lie.</p>
+ <p name="5cc4" id="5cc4" class="graf graf--p graf-after--p">But it gets better. First, you have the “hey, Marco <em class="markup--em markup--p-em">earned</em> his status!” lot. A valid point, and one Bielefeld explicitly acknowledges, here:</p>
+ <blockquote name="4e5f" id="4e5f" class="graf graf--blockquote graf-after--p">From his ground floor involvement in Tumblr (for which he is now a millionaire), to the creation and sale of a wildly successful app called Instapaper, he has become a household name in technology minded circles. It is this extensive time spent in the spotlight, the huge following on Twitter, and dedicated listeners of his weekly aired Accidental Tech Podcast, that has granted him the freedom to break from seeking revenue in more traditional manners.</blockquote>
+ <p name="cee9" id="cee9" class="graf graf--p graf-after--blockquote">and here:</p>
+ <blockquote name="3f1b" id="3f1b" class="graf graf--blockquote graf-after--p">I’m not knocking his success, he has put effort into his line of work, and has built his own life.</blockquote>
+ <p name="e527" id="e527" class="graf graf--p graf-after--blockquote">and here:</p>
+ <blockquote name="3e4f" id="3e4f" class="graf graf--blockquote graf-after--p">He has earned his time in the spotlight, and it’s only natural for him to take advantage of it.</blockquote>
+ <p name="8a01" id="8a01" class="graf graf--p graf-after--blockquote">But still, you get the people telling her something she already acknowledge:</p>
+ <blockquote name="7685" id="7685" class="graf graf--blockquote graf-after--p">I don’t think he’s blind. he’s worked to where he has gotten and has had failures like everyone else.</blockquote>
+ <p name="b151" id="b151" class="graf graf--p graf-after--blockquote">Thank you for restating something in the article. To the person who wrote it.</p>
+ <p name="87bc" id="87bc" class="graf graf--p graf-after--p">In the original article, Samantha talked about the money Marco makes from his podcast. She based that on the numbers <a href="http://atp.fm/sponsor/" data-href="http://atp.fm/sponsor/" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">provided by ATP in terms of sponsorship rates</a> and the number of current sponsors the podcast has. Is this going to yield perfect numbers? No. But the numbers you get from it will at least be reasonable, or should be unless the published sponsorship rates are just fantasy, and you’re stupid for taking them seriously.</p>
+ <p name="dbda" id="dbda" class="graf graf--p graf-after--p">At first, she went with a simple formula:</p>
+ <blockquote name="1b4e" id="1b4e" class="graf graf--blockquote graf-after--p">$4K x 3 per episode = $12K x 52 weeks / 3 hosts splitting it.</blockquote>
+ <p name="0b33" id="0b33" class="graf graf--p graf-after--blockquote">That’s not someone making shit up, right? Rather quickly, someone pointed out that she’d made an error in how she calculated it:</p>
+ <blockquote name="76d7" id="76d7" class="graf graf--blockquote graf-after--p">That’s $4k per ad, no? So more like $12–16k per episode.</blockquote>
+ <p name="a089" id="a089" class="graf graf--p graf-after--blockquote">She’d already realized her mistake and fixed it.</p>
+ <blockquote name="b369" id="b369" class="graf graf--blockquote graf-after--p">which is actually wrong, and I’m correcting now. $4,000 per sponsor, per episode! So, $210,000 per year.</blockquote>
+ <p name="8b3b" id="8b3b" class="graf graf--p graf-after--blockquote">Again, this is based on <em class="markup--em markup--p-em">publicly available data</em> the only kind someone not part of ATP or a close friend of Arment has access to. So while her numbers may be wrong, if they are, there’s no way for her to know that. She’s basing her opinion on actual available data. Which is sadly rare.</p>
+ <p name="135a" id="135a" class="graf graf--p graf-after--p">This becomes a huge flashpoint. You name a reason to attack her over this, people do. No really. For example, she’s not calculating his <em class="markup--em markup--p-em">income taxes correctly</em>:</p>
+ <blockquote name="5e7e" id="5e7e" class="graf graf--blockquote graf-after--p">especially since it isn’t his only source of income thus, not an indicator of his marginal inc. tax bracket.</blockquote>
+ <blockquote name="6036" id="6036" class="graf graf--blockquote graf-after--blockquote">thus, guessing net income is more haphazard than stating approx. gross income.</blockquote>
+ <p name="aac1" id="aac1" class="graf graf--p graf-after--blockquote">Ye Gods. She’s not doing his taxes for him, her point is invalid?</p>
+ <p name="600f" id="600f" class="graf graf--p graf-after--p">Then there’s the people who seem to have not read anything past what other people are telling them:</p>
+ <blockquote name="9b62" id="9b62" class="graf graf--blockquote graf-after--p">Not sure what to make of your Marco piece, to be honest. You mention his fame, whatever, but what’s the main idea here?</blockquote>
+ <p name="c18a" id="c18a" class="graf graf--p graf-after--blockquote">Just how spoon-fed do you have to be? Have you no teeth?</p>
+ <p name="c445" id="c445" class="graf graf--p graf-after--p">Of course, Marco jumps in, and predictably, he’s snippy:</p>
+ <blockquote name="0c21" id="0c21" class="graf graf--blockquote graf-after--p">If you’re going to speak in precise absolutes, it’s best to first ensure that you’re correct.</blockquote>
+ <p name="8f8d" id="8f8d" class="graf graf--p graf-after--blockquote">If you’re going to be like that, it’s best to provide better data. Don’t get snippy when someone is going off the only data available, and is clearly open to revising based on better data.</p>
+ <p name="cc97" id="cc97" class="graf graf--p graf-after--p">Then Marco’s friends/fans get into it:</p>
+ <blockquote name="f9da" id="f9da" class="graf graf--blockquote graf-after--p">I really don’t understand why it’s anyone’s business</blockquote>
+ <p name="0094" id="0094" class="graf graf--p graf-after--blockquote">Samantha is trying to qualify for sainthood at this point:</p>
+ <blockquote name="0105" id="0105" class="graf graf--blockquote graf-after--p">It isn’t really, it was a way of putting his income in context in regards to his ability to gamble with Overcast.</blockquote>
+ <p name="cdd1" id="cdd1" class="graf graf--p graf-after--blockquote">Again, she’s trying to drag people back to her actual point, but no one is going to play. The storm has begun. Then we get people who are just spouting nonsense:</p>
+ <blockquote name="f56c" id="f56c" class="graf graf--blockquote graf-after--p">Why is that only relevant for him? It’s a pretty weird metric,especially since his apps aren’t free.</blockquote>
+ <p name="4fef" id="4fef" class="graf graf--p graf-after--blockquote">Wha?? Overcast 2 is absolutely free. Samantha points this out:</p>
+ <blockquote name="0f36" id="0f36" class="graf graf--blockquote graf-after--p">His app is free, that’s what sparked the article to begin with.</blockquote>
+ <p name="40d2" id="40d2" class="graf graf--p graf-after--blockquote">The response is literally a parallel to “How can there be global warming if it snowed today in my town?”</p>
+ <blockquote name="6760" id="6760" class="graf graf--blockquote graf-after--p">If it’s free, how have I paid for it? Twice?</blockquote>
+ <p name="7b13" id="7b13" class="graf graf--p graf-after--blockquote">She is still trying:</p>
+ <blockquote name="44ba" id="44ba" class="graf graf--blockquote graf-after--p">You paid $4.99 to unlock functionality in Overcast 1.0 and you chose to support him with no additional functionality in 2.0</blockquote>
+ <p name="2152" id="2152" class="graf graf--p graf-after--blockquote">He is having none of it. IT SNOWED! SNOWWWWWWW!</p>
+ <blockquote name="99a6" id="99a6" class="graf graf--blockquote graf-after--p">Yes. That’s not free. Free is when you choose not to make money. And that can be weaponized. But that’s not what Overcast does.</blockquote>
+ <p name="5e6f" id="5e6f" class="graf graf--p graf-after--blockquote">She however, is relentless:</p>
+ <blockquote name="1b0f" id="1b0f" class="graf graf--blockquote graf-after--p">No, it’s still free. You can choose to support it, you are required to pay $4.99 for Pocket Casts. Totally different model.</blockquote>
+ <p name="d24f" id="d24f" class="graf graf--p graf-after--blockquote">Dude seems to give up. (Note: allllll the people bagging on her are men. All of them. Mansplaining like hell. And I’d bet every one of them considers themselves a feminist.)</p>
+ <p name="10e1" id="10e1" class="graf graf--p graf-after--p">We get another guy trying to push the narrative she’s punishing him for his success, which is just…it’s stupid, okay? Stupid.</p>
+ <blockquote name="9b01" id="9b01" class="graf graf--blockquote graf-after--p">It also wasn’t my point in writing my piece today, but it seems to be everyone’s focus.</blockquote>
+ <p name="340c" id="340c" class="graf graf--p graf-after--blockquote">(UNDERSTATEMENT OF THE YEAR)</p>
+ <blockquote name="7244" id="7244" class="graf graf--blockquote graf-after--p">I think the focus should be more on that fact that while it’s difficult, Marco spent years building his audience.</blockquote>
+ <blockquote name="ffb1" id="ffb1" class="graf graf--blockquote graf-after--blockquote">It doesn’t matter what he makes it how he charges. If the audience be earned is willing to pay for it, awesome.</blockquote>
+ <p name="e44e" id="e44e" class="graf graf--p graf-after--blockquote">She tries, oh lord, she tries:</p>
+ <blockquote name="a502" id="a502" class="graf graf--blockquote graf-after--p">To assert that he isn’t doing anything any other dev couldn’t, is wrong. It’s successful because it’s Marco.</blockquote>
+ <p name="7dcd" id="7dcd" class="graf graf--p graf-after--blockquote">But no, HE KNOWS HER POINT BETTER THAN SHE DOES:</p>
+ <blockquote name="a62a" id="a62a" class="graf graf--blockquote graf-after--p">No, it’s successful because he busted his ass to make it so. It’s like any other business. He grew it.</blockquote>
+ <p name="df8c" id="df8c" class="graf graf--p graf-after--blockquote">Christ. This is like a field of strawmen. Stupid ones. Very stupid ones.</p>
+ <p name="521a" id="521a" class="graf graf--p graf-after--p">One guy tries to blame it all on Apple, another in a string of Wha??? moments:</p>
+ <blockquote name="d80d" id="d80d" class="graf graf--blockquote graf-after--p">the appropriate context is Apple’s App Store policies. Other devs aren’t Marco’s responsibility</blockquote>
+ <p name="db0b" id="db0b" class="graf graf--p graf-after--blockquote">Seriously? Dude, are you even trying to talk about what Samantha actually wrote? At this point, Samantha is clearly mystified at the entire thing:</p>
+ <blockquote name="7a78" id="7a78" class="graf graf--blockquote graf-after--p">Why has the conversation suddenly turned to focus on nothing more than ATP sponsorship income?</blockquote>
+ <p name="6e09" id="6e09" class="graf graf--p graf-after--blockquote">Because it’s a nit they can pick and allows them to ignore everything you wrote. That’s the only reason.</p>
+ <p name="b7db" id="b7db" class="graf graf--p graf-after--p">One guy is “confused”:</p>
+ <blockquote name="3626" id="3626" class="graf graf--blockquote graf-after--p">I see. He does have clout, so are you saying he’s too modest in how he sees himself as a dev?</blockquote>
+ <blockquote name="9daa" id="9daa" class="graf graf--blockquote graf-after--blockquote">Yes. He can’t be equated to the vast majority of other developers. Like calling Gruber, “just another blogger”.</blockquote>
+ <blockquote name="f6da" id="f6da" class="graf graf--blockquote graf-after--blockquote">Alright, that’s fair. I was just confused by the $ and fame angle at first.</blockquote>
+ <p name="d5b1" id="d5b1" class="graf graf--p graf-after--blockquote">Samantha’s point centers on the benefits Marco gains via his fame and background. <em class="markup--em markup--p-em">HOW DO YOU NOT MENTION THAT? HOW IS THAT CONFUSING?</em></p>
+ <p name="58d0" id="58d0" class="graf graf--p graf-after--p">People of course are telling her it’s her fault for mentioning a salient fact at all:</p>
+ <blockquote name="30d2" id="30d2" class="graf graf--blockquote graf-after--p">Why has the conversation suddenly turned to focus on nothing more than ATP sponsorship income?</blockquote>
+ <blockquote name="765b" id="765b" class="graf graf--blockquote graf-after--blockquote">Maybe because you went there with your article?</blockquote>
+ <blockquote name="61fe" id="61fe" class="graf graf--blockquote graf-after--blockquote">As a way of rationalizing his ability to gamble with the potential for Overcast to generate income…not the norm at all.</blockquote>
+ <p name="f17c" id="f17c" class="graf graf--p graf-after--blockquote">Of course, had she not brought up those important points, she’d have been bagged on for “not providing proof”. Lose some, lose more. By now, she’s had enough and she just deletes all mention of it. Understandable, but sad she was bullied into doing that.</p>
+ <p name="0b60" id="0b60" class="graf graf--p graf-after--p">Yes, bullied. That’s all this is. Bullying. She didn’t lie, cheat, or exaagerate. If her numbers were wrong, they weren’t wrong in a way she had any ability to do anything about. But there’s blood in the water, and the comments and attacks get worse:</p>
+ <blockquote name="65ab" id="65ab" class="graf graf--blockquote graf-after--p">Because you decided to start a conversation about someone else’s personal shit. You started this war.</blockquote>
+ <p name="1adb" id="1adb" class="graf graf--p graf-after--blockquote">War. THIS. IS. WAR.</p>
+ <p name="de94" id="de94" class="graf graf--p graf-after--p">This is a bunch of nerds attacking someone for reasoned, calm, <em class="markup--em markup--p-em">polite</em> criticism of their friend/idol. Samantha is politely pushing back a bit:</p>
+ <blockquote name="4458" id="4458" class="graf graf--blockquote graf-after--p">That doesn’t explain why every other part of my article is being pushed aside.</blockquote>
+ <p name="aeac" id="aeac" class="graf graf--p graf-after--blockquote">She’s right. This is all nonsense. This is people ignoring her article completely, just looking for things to attack so it can be dismissed. It’s tribalism at its purest.</p>
+ <p name="0078" id="0078" class="graf graf--p graf-after--p">Then some of the other annointed get into it, including Jason Snell in one of the most spectactular displays of “I have special knowledge you can’t be expected to have, therefore you are totally off base and wrong, even though there’s no way for you to know this” I’ve seen in a while. Jason:</p>
+ <blockquote name="c4c9" id="c4c9" class="graf graf--blockquote graf-after--p">You should never use an ad rate card to estimate ad revenue from any media product ever.</blockquote>
+ <blockquote name="b66b" id="b66b" class="graf graf--blockquote graf-after--blockquote">I learned this when I started working for a magazine — rate cards are mostly fiction, like prices on new cars</blockquote>
+ <p name="6907" id="6907" class="graf graf--p graf-after--blockquote">How…exactly…in the name of whatever deity Jason may believe in…is Samantha or anyone not “in the biz” supposed to know this. Also, what exactly does a magazine on paper like Macworld have to do with sponsorships for a podcast? I have done podcasts that were sponsored, and I can retaliate with “we charged what the rate card said we did. <em class="markup--em markup--p-em">Checkmate Elitests!</em>”</p>
+ <p name="41ec" id="41ec" class="graf graf--p graf-after--p">Samantha basically abases herself at his feet:</p>
+ <blockquote name="0b14" id="0b14" class="graf graf--blockquote graf-after--p">I understand my mistake, and it’s unfortunate that it has completely diluted the point of my article.</blockquote>
+ <p name="590f" id="590f" class="graf graf--p graf-after--blockquote">I think she should have told him where and how to stuff that nonsense, but she’s a nicer person than I am. Also, it’s appropriate that Jason’s twitter avatar has its nose in the air. This is some rank snobbery. It’s disgusting and if anyone pulled that on him, Jason would be very upset. But hey, one cannot criticize The Marco without getting pushback. By “pushback”, I mean “an unrelenting fecal flood”.</p>
+ <p name="69dc" id="69dc" class="graf graf--p graf-after--p">Her only mistake was criticizing one of the Kool Kids. Folks, if you criticize anyone in The Deck Clique, or their friends, expect the same thing, regardless of tone or point.</p>
+ <p name="5ab4" id="5ab4" class="graf graf--p graf-after--p">Another App Dev, seemingly unable to parse Samantha’s words, needs <em class="markup--em markup--p-em">more</em> explanation:</p>
+ <blockquote name="957b" id="957b" class="graf graf--blockquote graf-after--p">so just looking over your mentions, I’m curious what exactly was your main point? Ignoring the podcast income bits.</blockquote>
+ <p name="0a7e" id="0a7e" class="graf graf--p graf-after--blockquote">Oh wait, he didn’t even read the article. Good on you, Dev Guy, good. on. you. Still, she plays nice <em class="markup--em markup--p-em">with someone who didn’t even read her article</em>:</p>
+ <blockquote name="f7db" id="f7db" class="graf graf--blockquote graf-after--p">That a typical unknown developer can’t depend on patronage to generate revenue, and charging for apps will become a negative.</blockquote>
+ <p name="937f" id="937f" class="graf graf--p graf-after--blockquote">Marco comes back of course, and now basically accuses her of lying about other devs talking to her and supporting her point:</p>
+ <blockquote name="c9dd" id="c9dd" class="graf graf--blockquote graf-after--p">How many actual developers did you hear from, really? Funny how almost nobody wants to give a (real) name on these accusations.</blockquote>
+ <p name="c522" id="c522" class="graf graf--p graf-after--blockquote">Really? You’re going to do that? “There’s no name, so I don’t think it’s a real person.” Just…what’s the Joe Welch quote from the McCarthy hearings?</p>
+ <blockquote name="907e" id="907e" class="graf graf--blockquote graf-after--p">Let us not assassinate this lad further, Senator. You’ve done enough. Have you no sense of decency, sir? At long last, have you left no sense of decency?</blockquote>
+ <p name="2158" id="2158" class="graf graf--p graf-after--blockquote">That is what this is at this point: character assasination because she said something critical of A Popular Person. It’s disgusting. Depressing and disgusting. No one, none of these people have seriously discussed her point, heck, it looks like they barely bothered to read it, if they did at all.</p>
+ <p name="13f8" id="13f8" class="graf graf--p graf-after--p">Marco starts getting really petty with her (no big shock) and Samantha finally starts pushing back:</p>
+ <blockquote name="96c6" id="96c6" class="graf graf--blockquote graf-after--p">Glad to see you be the bigger person and ignore the mindset of so many developers not relating to you, good for you!</blockquote>
+ <p name="5d3f" id="5d3f" class="graf graf--p graf-after--blockquote">That of course, is what caused Marco to question the validity, if not the existence of her sources. (Funny how anonymous sources are totes okay when they convenience Marco et al, and work for oh, <em class="markup--em markup--p-em">Apple</em>, but when they are inconvenient? Ha! PROVIDE ME PROOF YOU INTEMPERATE WOMAN!)</p>
+ <p name="c07c" id="c07c" class="graf graf--p graf-after--p">Make no mistake, there’s some sexist shit going on here. Every tweet I’ve quoted was authored by a guy.</p>
+ <p name="8b32" id="8b32" class="graf graf--p graf-after--p">Of course, Marco has to play the “I’ve been around longer than you” card with this bon mot:</p>
+ <blockquote name="de26" id="de26" class="graf graf--blockquote graf-after--p">Yup, before you existed!</blockquote>
+ <p name="a3bd" id="a3bd" class="graf graf--p graf-after--blockquote">Really dude? I mean, I’m sorry about the penis, but really?</p>
+ <p name="1c51" id="1c51" class="graf graf--p graf-after--p">Mind you, when the criticism isn’t just bizarrely stupid, Samantha reacts the way Marco and his ilk claim they would to (if they ever got any <em class="markup--em markup--p-em">valid</em> criticism. Which clearly is impossible):</p>
+ <blockquote name="9848" id="9848" class="graf graf--blockquote graf-after--p">Not to get into the middle of this, but “income” is not the term you’re looking for. “Revenue” is.</blockquote>
+ <blockquote name="f2a6" id="f2a6" class="graf graf--blockquote graf-after--blockquote">lol. Noted.</blockquote>
+ <blockquote name="aed9" id="aed9" class="graf graf--blockquote graf-after--blockquote">And I wasn’t intending to be a dick, just a lot of people hear/say “income” when they intend “revenue”, and then discussion …</blockquote>
+ <blockquote name="f9d8" id="f9d8" class="graf graf--blockquote graf-after--blockquote">… gets derailed by a jedi handwave of “Expenses”. But outside of charitable donation, it is all directly related.</blockquote>
+ <blockquote name="f61c" id="f61c" class="graf graf--blockquote graf-after--blockquote">haha. Thank you for the clarification.</blockquote>
+ <p name="5dd9" id="5dd9" class="graf graf--p graf-after--blockquote">Note to Marco and the other…whatever they are…that is how one reacts to that kind of criticism. With a bit of humor and self-deprecation. You should try it sometime. For real, not just in your heads or conversations in Irish Pubs in S.F.</p>
+ <p name="dc44" id="dc44" class="graf graf--p graf-after--p">But now, the door has been cracked, and the cheap shots come out:</p>
+ <blockquote name="0c94" id="0c94" class="graf graf--blockquote graf-after--p">@testflight_app: Don’t worry guys, we process <a href="https://twitter.com/marcoarment" data-href="https://twitter.com/marcoarment" class="markup--anchor markup--blockquote-anchor" rel="nofollow noopener" target="_blank">@marcoarment</a>’s apps in direct proportion to his megabucks earnings. <a href="https://twitter.com/hashtag/fairelephant?src=hash" data-href="https://twitter.com/hashtag/fairelephant?src=hash" class="markup--anchor markup--blockquote-anchor" rel="nofollow noopener" target="_blank">#fairelephant</a></blockquote>
+ <p name="343b" id="343b" class="graf graf--p graf-after--blockquote">(Note: testflight_app is a parody account. Please do not mess with the actual testflight folks. They are still cool.)</p>
+ <p name="09bf" id="09bf" class="graf graf--p graf-after--p">Or this…conversation:</p>
+ <figure name="4d63" id="4d63" class="graf graf--figure graf-after--p">
+ <div class="aspectRatioPlaceholder is-locked" style="max-width: 398px; max-height: 542px;">
+ <div class="aspectRatioPlaceholder-fill" style="padding-bottom: 136.20000000000002%;"></div>
+ <div class="progressiveMedia js-progressiveMedia graf-image" data-image-id="1*kbPh7V97eyRodSOw2-ALDw.png" data-width="398" data-height="542"><img src="https://cdn-images-1.medium.com/freeze/max/60/1*kbPh7V97eyRodSOw2-ALDw.png?q=20" crossorigin="anonymous" class="progressiveMedia-thumbnail js-progressiveMedia-thumbnail" /><canvas class="progressiveMedia-canvas js-progressiveMedia-canvas"></canvas><img class="progressiveMedia-image js-progressiveMedia-image" data-src="https://cdn-images-1.medium.com/max/1600/1*kbPh7V97eyRodSOw2-ALDw.png" /><noscript class="js-progressiveMedia-inner"><img class="progressiveMedia-noscript js-progressiveMedia-inner" src="https://cdn-images-1.medium.com/max/1600/1*kbPh7V97eyRodSOw2-ALDw.png" /></noscript></div>
+ </div>
+ </figure>
+ <p name="f2a3" id="f2a3" class="graf graf--p graf-after--figure">Good job guys. Good job. Defend the tribe. Attack the other. Frederico attempts to recover from his stunning display of demeaning douchery: <a href="https://twitter.com/viticci" data-href="https://twitter.com/viticci" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">‏@viticci</a>: <a href="https://twitter.com/s_bielefeld" data-href="https://twitter.com/s_bielefeld" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">@s_bielefeld</a> I don’t know if it’s an Italian thing, but counting other people’s money is especially weird for me. IMO, bad move in the post.</p>
+ <p name="ae0c" id="ae0c" class="graf graf--p graf-after--p">Samantha is clearly sick of his crap: <a href="https://twitter.com/s_bielefeld" data-href="https://twitter.com/s_bielefeld" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">‏@s_bielefeld</a>: <a href="https://twitter.com/viticci" data-href="https://twitter.com/viticci" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">@viticci</a> That’s what I’m referring to, the mistake of ever having mentioned it. So, now, Marco can ignore the bigger issue and go on living.</p>
+ <p name="2047" id="2047" class="graf graf--p graf-after--p">Good for her. There’s being patient and being roadkill.</p>
+ <p name="4139" id="4139" class="graf graf--p graf-after--p">Samantha does put the call out for her sources to maybe let her use their names:</p>
+ <blockquote name="6626" id="6626" class="graf graf--blockquote graf-after--p">From all of you I heard from earlier, anyone care to go on record?</blockquote>
+ <p name="8a7d" id="8a7d" class="graf graf--p graf-after--blockquote">My good friend, The Angry Drunk points out the obvious problem:</p>
+ <blockquote name="68c9" id="68c9" class="graf graf--blockquote graf-after--p">Nobody’s going to go on record when they count on Marco’s friends for their PR.</blockquote>
+ <p name="317d" id="317d" class="graf graf--p graf-after--blockquote">This is true. Again, the sites that are Friends of Marco:</p>
+ <p name="9523" id="9523" class="graf graf--p graf-after--p">Daring Fireball</p>
+ <p name="dbc7" id="dbc7" class="graf graf--p graf-after--p">The Loop</p>
+ <p name="c706" id="c706" class="graf graf--p graf-after--p">SixColors</p>
+ <p name="0acb" id="0acb" class="graf graf--p graf-after--p">iMore</p>
+ <p name="8c8c" id="8c8c" class="graf graf--p graf-after--p">MacStories</p>
+ <p name="643e" id="643e" class="graf graf--p graf-after--p">A few others, but I want this post to end one day.</p>
+ <p name="6b76" id="6b76" class="graf graf--p graf-after--p">You piss that crew off, and given how petty rather a few of them have demonstrated they are, good luck on getting any kind of notice from them.</p>
+ <p name="f7d1" id="f7d1" class="graf graf--p graf-after--p">Of course, the idea this could happen is just craycray:</p>
+ <blockquote name="de59" id="de59" class="graf graf--blockquote graf-after--p"><a href="https://twitter.com/KevinColeman" data-href="https://twitter.com/KevinColeman" class="markup--anchor markup--blockquote-anchor" rel="nofollow noopener" target="_blank">@KevinColeman </a><a href="https://twitter.com/Angry_Drunk" data-href="https://twitter.com/Angry_Drunk" class="markup--anchor markup--blockquote-anchor" rel="nofollow noopener" target="_blank">.@Angry_Drunk</a> <a href="https://twitter.com/s_bielefeld" data-href="https://twitter.com/s_bielefeld" class="markup--anchor markup--blockquote-anchor" rel="nofollow noopener" target="_blank">@s_bielefeld</a> <a href="https://twitter.com/marcoarment" data-href="https://twitter.com/marcoarment" class="markup--anchor markup--blockquote-anchor" rel="nofollow noopener" target="_blank">@marcoarment</a> Wow, you guys are veering right into crazy conspiracy theory territory. <a href="https://twitter.com/hashtag/JetFuelCantMeltSteelBeams?src=hash" data-href="https://twitter.com/hashtag/JetFuelCantMeltSteelBeams?src=hash" class="markup--anchor markup--blockquote-anchor" rel="nofollow noopener" target="_blank">#JetFuelCantMeltSteelBeams</a></blockquote>
+ <p name="f01b" id="f01b" class="graf graf--p graf-after--blockquote">Yeah. Because a mature person like Marco would never do anything like that.</p>
+ <p name="7e30" id="7e30" class="graf graf--p graf-after--p">Of course, the real point on this is starting to happen:</p>
+ <blockquote name="5d93" id="5d93" class="graf graf--blockquote graf-after--p">you’re getting a lot of heat now but happy you are writing things that stir up the community. Hope you continue to be a voice!</blockquote>
+ <blockquote name="436b" id="436b" class="graf graf--blockquote graf-after--blockquote">I doubt I will.</blockquote>
+ <p name="ac25" id="ac25" class="graf graf--p graf-after--blockquote">See, they’ve done their job. Mess with the bull, you get the horns. Maybe you should find another thing to write about, this isn’t a good place for you. <em class="markup--em markup--p-em">Great</em> job y’all.</p>
+ <p name="07ba" id="07ba" class="graf graf--p graf-after--p">Some people aren’t even pretending. They’re just in full strawman mode:</p>
+ <blockquote name="3d60" id="3d60" class="graf graf--blockquote graf-after--p"><a href="https://twitter.com/timkeller" data-href="https://twitter.com/timkeller" class="markup--anchor markup--blockquote-anchor" rel="nofollow noopener" target="_blank">@timkeller: </a>Unfair to begrudge a person for leveraging past success, especially when that success is earned. No ‘luck’ involved.</blockquote>
+ <blockquote name="87f5" id="87f5" class="graf graf--blockquote graf-after--blockquote"><a href="https://twitter.com/s_bielefeld" data-href="https://twitter.com/s_bielefeld" class="markup--anchor markup--blockquote-anchor" rel="nofollow noopener" target="_blank">@s_bielefeld: </a><a href="https://twitter.com/timkeller" data-href="https://twitter.com/timkeller" class="markup--anchor markup--blockquote-anchor" rel="nofollow noopener" target="_blank">@timkeller</a> I plainly stated that I don’t hold his doing this against him. Way to twist words.</blockquote>
+ <p name="3720" id="3720" class="graf graf--p graf-after--blockquote">I think she’s earned her anger at this point.</p>
+ <p name="7341" id="7341" class="graf graf--p graf-after--p">Don’t worry, Marco knows what the real problem is: most devs just suck —</p>
+ <figure name="babe" id="babe" class="graf graf--figure graf-after--p">
+ <div class="aspectRatioPlaceholder is-locked" style="max-width: 694px; max-height: 771px;">
+ <div class="aspectRatioPlaceholder-fill" style="padding-bottom: 111.1%;"></div>
+ <div class="progressiveMedia js-progressiveMedia graf-image" data-image-id="1*Fpb2Bvdx7Q-688vdm-NdkQ.png" data-width="694" data-height="771"><img src="https://cdn-images-1.medium.com/freeze/max/60/1*Fpb2Bvdx7Q-688vdm-NdkQ.png?q=20" crossorigin="anonymous" class="progressiveMedia-thumbnail js-progressiveMedia-thumbnail" /><canvas class="progressiveMedia-canvas js-progressiveMedia-canvas"></canvas><img class="progressiveMedia-image js-progressiveMedia-image" data-src="https://cdn-images-1.medium.com/max/1600/1*Fpb2Bvdx7Q-688vdm-NdkQ.png" /><noscript class="js-progressiveMedia-inner"><img class="progressiveMedia-noscript js-progressiveMedia-inner" src="https://cdn-images-1.medium.com/max/1600/1*Fpb2Bvdx7Q-688vdm-NdkQ.png" /></noscript></div>
+ </div>
+ </figure>
+ <p name="503d" id="503d" class="graf graf--p graf-after--figure">I have a saying that applies in this case: don’t place your head so far up your nethers that you go full Klein Bottle. Marco has gone full Klein Bottle. (To be correct, he went FKB some years ago.)</p>
+ <p name="b8c0" id="b8c0" class="graf graf--p graf-after--p">There are some bright spots. My favorite is when Building Twenty points out the <em class="markup--em markup--p-em">real</em> elephant in the room:</p>
+ <blockquote name="36f4" id="36f4" class="graf graf--blockquote graf-after--p"><a href="https://twitter.com/BuildingTwenty" data-href="https://twitter.com/BuildingTwenty" class="markup--anchor markup--blockquote-anchor" rel="nofollow noopener" target="_blank">@BuildingTwenty</a>: Both <a href="https://twitter.com/s_bielefeld" data-href="https://twitter.com/s_bielefeld" class="markup--anchor markup--blockquote-anchor" rel="nofollow noopener" target="_blank">@s_bielefeld</a> &amp; I wrote similar critiques of <a href="https://twitter.com/marcoarment" data-href="https://twitter.com/marcoarment" class="markup--anchor markup--blockquote-anchor" rel="nofollow noopener" target="_blank">@marcoarment</a>’s pricing model yet the Internet pilloried only the woman. Who’d have guessed?</blockquote>
+ <p name="06b9" id="06b9" class="graf graf--p graf-after--blockquote">Yup.</p>
+ <p name="eff9" id="eff9" class="graf graf--p graf-after--p">Another bright spot are these comments from Ian Betteridge, who has been doing this <em class="markup--em markup--p-em">even longer than Marco</em>:</p>
+ <blockquote name="18f1" id="18f1" class="graf graf--blockquote graf-after--p">You know, any writer who has never made a single factual error in a piece hasn’t ever written anything worth reading.</blockquote>
+ <blockquote name="9776" id="9776" class="graf graf--blockquote graf-after--blockquote">I learned my job with the support of people who helped me. Had I suffered an Internet pile on for every error I wouldn’t have bothered.</blockquote>
+ <p name="8d44" id="8d44" class="graf graf--p graf-after--blockquote">To which Samantha understandably replies:</p>
+ <blockquote name="7147" id="7147" class="graf graf--blockquote graf-after--p">and it’s honestly something I’m contemplating right now, whether to continue…</blockquote>
+ <p name="e0cd" id="e0cd" class="graf graf--p graf-after--blockquote">Gee, I can’t imagine why. Why with comments like this from Chris Breen that completely misrepresent Samantha’s point, (who until today, I would have absolutely defended as being better than this, something I am genuinely saddened to be wrong about), why wouldn’t she want to continue doing this?</p>
+ <blockquote name="a379" id="a379" class="graf graf--blockquote graf-after--p">If I have this right, some people are outraged that a creator has decided to give away his work.</blockquote>
+ <p name="f026" id="f026" class="graf graf--p graf-after--blockquote">No Chris, you don’t have this right. But hey, who has time to find out the real issue and read an article. I’m sure your friends told you everything you need to know.</p>
+ <p name="e1c2" id="e1c2" class="graf graf--p graf-after--p">Noted Feminist Glenn Fleishman gets a piece of the action too:</p>
+ <figure name="067c" id="067c" class="graf graf--figure graf-after--p">
+ <div class="aspectRatioPlaceholder is-locked" style="max-width: 308px; max-height: 269px;">
+ <div class="aspectRatioPlaceholder-fill" style="padding-bottom: 87.3%;"></div>
+ <div class="progressiveMedia js-progressiveMedia graf-image" data-image-id="1*lvOySry5gHHJfGU_bQXrzA.png" data-width="308" data-height="269"><img src="https://cdn-images-1.medium.com/freeze/max/60/1*lvOySry5gHHJfGU_bQXrzA.png?q=20" crossorigin="anonymous" class="progressiveMedia-thumbnail js-progressiveMedia-thumbnail" /><canvas class="progressiveMedia-canvas js-progressiveMedia-canvas"></canvas><img class="progressiveMedia-image js-progressiveMedia-image" data-src="https://cdn-images-1.medium.com/max/1600/1*lvOySry5gHHJfGU_bQXrzA.png" /><noscript class="js-progressiveMedia-inner"><img class="progressiveMedia-noscript js-progressiveMedia-inner" src="https://cdn-images-1.medium.com/max/1600/1*lvOySry5gHHJfGU_bQXrzA.png" /></noscript></div>
+ </div>
+ </figure>
+ <p name="4df8" id="4df8" class="graf graf--p graf-after--figure">I’m not actually surprised here. I watched Fleishman berate a friend of mine who has been an engineer for…heck, waaaaay too long on major software products in the most condescending way because she tried to point out that as a <em class="markup--em markup--p-em">very</em> technical woman, “The Magazine” literally had nothing to say to her and maybe he should fix that. “Impertinent” was I believe what he called her, but I may have the specific word wrong. Not the attitude mind you. Great Feminists like Glenn do not like uppity women criticizing Great Feminists who are their Great Allies.</p>
+ <p name="bf45" id="bf45" class="graf graf--p graf-after--p graf--trailing">Great Feminists are often tools.</p>
+ </div>
+ </div>
+ </section>
+ <section name="c883" class="section section--body">
+ <div class="section-divider">
+ <hr class="section-divider" />
+ </div>
+ <div class="section-content">
+ <div class="section-inner sectionLayout--insetColumn">
+ <p name="45bb" id="45bb" class="graf graf--p graf--leading">Luckily, I hope, the people who get Samantha’s point also started chiming in (and you get 100% of the women commenting here that I’ve seen):</p>
+ <blockquote name="c053" id="c053" class="graf graf--blockquote graf-after--p">I don’t think he’s wrong for doing it, he just discusses it as if the market’s a level playing field — it isn’t</blockquote>
+ <blockquote name="7b5e" id="7b5e" class="graf graf--blockquote graf-after--blockquote">This is a great article with lots of great points about the sustainability of iOS development. Thank you for publishing it.</blockquote>
+ <blockquote name="a321" id="a321" class="graf graf--blockquote graf-after--blockquote">Regardless of the numbers and your view of MA, fair points here about confirmation bias in app marketing feasibility <a href="http://t.co/u79ZLsnhdM" data-href="http://t.co/u79ZLsnhdM" class="markup--anchor markup--blockquote-anchor" title="http://samanthabielefeld.com/the-elephant-in-the-room" rel="nofollow noopener" target="_blank">http://samanthabielefeld.com/the-elephant-in-the-room …</a></blockquote>
+ <blockquote name="76fe" id="76fe" class="graf graf--blockquote graf-after--blockquote">thank you for posting this, it covers a lot of things people don’t like to talk about.</blockquote>
+ <blockquote name="bf90" id="bf90" class="graf graf--blockquote graf-after--blockquote">I’m sure you have caught untold amounts of flak over posting this because Marco is blind to his privilege as a developer.</blockquote>
+ <blockquote name="0f66" id="0f66" class="graf graf--blockquote graf-after--blockquote graf--trailing">Catching up on the debate, and agreeing with Harry’s remark. (Enjoyed your article, Samantha, and ‘got’ your point.)</blockquote>
+ </div>
+ </div>
+ </section>
+ <section name="8ab2" class="section section--body section--last">
+ <div class="section-divider">
+ <hr class="section-divider" />
+ </div>
+ <div class="section-content">
+ <div class="section-inner sectionLayout--insetColumn">
+ <p name="6134" id="6134" class="graf graf--p graf--leading">I would like to say I’m surprised at the reaction to Samantha’s article, but I’m not. In spite of his loud declarations of support for The Big Lie, Marco Arment is as bad at any form of criticism that he hasn’t already approved as a very insecure tween. An example from 2011: <a href="http://www.businessinsider.com/marco-arment-2011-9" data-href="http://www.businessinsider.com/marco-arment-2011-9" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">http://www.businessinsider.com/marco-arment-2011-9</a></p>
+ <p name="ba3c" id="ba3c" class="graf graf--p graf-after--p">Marco is great with criticism as long as it never actually criticizes him. If it does, be prepared a flood of petty, petulant whining that a room full of bored preschoolers on a hot day would be hard-pressed to match.</p>
+ <p name="a5a0" id="a5a0" class="graf graf--p graf-after--p">Today has been…well, it sucks. It sucks because someone doing what all the Arments of the world claim to want was naive enough to believe what they were told, and found out the hard way just how big a lie The Big Lie is, and how vicious people are when you’re silly enough to believe anything they say about criticism.</p>
+ <p name="2a25" id="2a25" class="graf graf--p graf-after--p">And note again, every single condescending crack, misrepresentation, and strawman had an exclusively male source. Most of them have, at one point or another, loudly trumpted themselves as Feminist Allies, as a friend to women struggling with the sexism and misogyny in tech. Congratulations y’all on being just as bad as the people you claim to oppose.</p>
+ <p name="a47a" id="a47a" class="graf graf--p graf-after--p">Samantha has handled this better than anyone else could have. My respect for her as a person and a writer is off the charts. If she choses to walk away from blogging in the Apple space, <em class="markup--em markup--p-em">believe me</em> I understand. As bad as today was for her, I’ve seen worse. Much worse.</p>
+ <p name="aa8e" id="aa8e" class="graf graf--p graf-after--p">But I hope she doesn’t. I hope she stays, because she is Doing This Right, and in a corner of the internet that has become naught but an endless circle jerk, a cliquish collection, a churlish, childish cohort interested not in writing or the truth, but in making sure The Right People are elevated, and The Others put down, she is someone worth reading and listening to. The number people who owe her apologies goes around the block, and I don’t think she’ll ever see a one. I’m sure as heck not apologizing for them, I’ll not make their lives easier in the least.</p>
+ <p name="34c5" id="34c5" class="graf graf--p graf-after--p">All of you, all. of. you…Marco, Breen, Snell, Vittici, had a chance to live by your words. You were faced with reasoned, polite, respectful criticism and instead of what you should have done, you all dropped trou and sprayed an epic diarrheal discharge all over someone who had done nothing to deserve it. Me, I earned most of my aggro, Samantha did not earn any of the idiocy I’ve seen today. I hope you’re all proud of yourselves. Someone should be, it won’t be me. Ever.</p>
+ <p name="9710" id="9710" class="graf graf--p graf-after--p graf--trailing">So I hope she stays, but if she goes, I understand. For what it’s worth, I don’t think she’s wrong either way.</p>
+ </div>
+ </div>
+ </section>
+ </div>
+ <footer class="u-paddingTop10">
+ <div class="container u-maxWidth740">
+ <div class="row">
+ <div class="col u-size12of12"></div>
+ </div>
+ <div class="row">
+ <div class="col u-size12of12 js-postTags">
+ <div class="u-paddingBottom10">
+ <div class="tags tags--postTags tags--borderless"></div>
+ </div>
+ </div>
+ </div>
+ <div class="row js-postActionsFooter">
+ <div class="postActions col u-size12of12">
+ <div class="u-floatLeft buttonSet buttonSet--withLabels">
+ <div class="buttonSet-inner">
+ <div class="js-actionRecommend" data-post-id="d146a92473a1" data-is-icon-29px="true" data-has-recommend-list="true" data-source="post_actions_footer"><button class="button button--primary button--large button--chromeless is-touchIconFadeInPulse u-accentColor--buttonNormal button--withIcon button--withSvgIcon u-accentColor--iconLight js-actionRecommendButton" title="Recommend to share this article with your followers and let the author know you liked it" aria-label="Recommend to share this article with your followers and let the author know you liked it" data-action="sign-in-prompt" data-sign-in-action="upvote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/d146a92473a1" data-action-source="post_actions_footer"><span class="button-defaultState"><span class="svgIcon svgIcon--heart svgIcon--29px"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="29" height="29" viewBox="0 0 29 29"><path d="M16.215 23.716c-.348.288-.984.826-1.376 1.158a.526.526 0 0 1-.68 0c-.36-.307-.92-.78-1.22-1.03C9.22 20.734 3 15.527 3 10.734 3 7.02 5.916 4 9.5 4c1.948 0 3.77.898 5 2.434C15.73 4.898 17.552 4 19.5 4c3.584 0 6.5 3.02 6.5 6.734 0 4.9-6.125 9.96-9.785 12.982zM19.5 5.2c-1.774 0-3.423.923-4.41 2.468a.699.699 0 0 1-.59.323.706.706 0 0 1-.59-.32c-.988-1.54-2.637-2.47-4.41-2.47-2.922 0-5.3 2.49-5.3 5.54 0 4.23 6.19 9.41 9.517 12.19.217.18.566.48.783.66l.952-.79c3.496-2.88 9.348-7.72 9.348-12.05 0-3.05-2.378-5.53-5.3-5.53z"/></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--heartFilled svgIcon--29px"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="29" height="29" viewBox="0 0 29 29"><path d="M19.5 4c-1.948 0-3.77.898-5 2.434C13.27 4.898 11.448 4 9.5 4 5.916 4 3 7.02 3 10.734c0 4.793 6.227 10 9.95 13.11.296.25.853.723 1.212 1.03.196.166.48.166.677 0 .39-.332 1.02-.87 1.37-1.158 3.66-3.022 9.79-8.08 9.79-12.982C26 7.02 23.08 4 19.5 4z" fill-rule="evenodd"/></svg></span></span></button><button class="button button--chromeless u-baseColor--buttonNormal" data-action="show-recommends" data-action-value="d146a92473a1">168</button></div>
+ </div>
+ <div class="buttonSet-inner"><button class="button button--large button--dark button--chromeless is-touchIconBlackPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon" data-action="scroll-to-responses" data-action-source="post_actions_footer"><span class="svgIcon svgIcon--response svgIcon--29px"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="29" height="29" viewBox="0 0 29 29"><path d="M21.27 20.058c1.89-1.826 2.754-4.17 2.754-6.674C24.024 8.21 19.67 4 14.1 4 8.53 4 4 8.21 4 13.384c0 5.175 4.53 9.385 10.1 9.385 1.007 0 2-.14 2.95-.41.285.25.592.49.918.7 1.306.87 2.716 1.31 4.19 1.31.276-.01.494-.14.6-.36a.625.625 0 0 0-.052-.65c-.61-.84-1.042-1.71-1.282-2.58a5.417 5.417 0 0 1-.154-.75zm-3.85 1.324l-.083-.28-.388.12a9.72 9.72 0 0 1-2.85.424c-4.96 0-8.99-3.706-8.99-8.262 0-4.556 4.03-8.263 8.99-8.263 4.95 0 8.77 3.71 8.77 8.27 0 2.25-.75 4.35-2.5 5.92l-.24.21v.32c0 .07 0 .19.02.37.03.29.1.6.19.92.19.7.49 1.4.89 2.08-.93-.14-1.83-.49-2.67-1.06-.34-.22-.88-.48-1.16-.74z"/></svg></span></button><button class="button button--chromeless u-baseColor--buttonNormal" data-action="scroll-to-responses">15</button></div>
+ </div>
+ <div class="u-floatRight buttonSet buttonSet--narrow"><button class="button button--large button--dark button--chromeless is-touchIconBlackPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon" title="Share on Twitter" aria-label="Share on Twitter" data-action="share-on-twitter" data-action-source="post_actions_footer"><span class="svgIcon svgIcon--twitter svgIcon--29px"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="29" height="29" viewBox="0 0 29 29"><path d="M21.967 11.8c.018 5.93-4.607 11.18-11.177 11.18-2.172 0-4.25-.62-6.047-1.76l-.268.422-.038.5.186.013.168.012c.3.02.44.032.6.046 2.06-.026 3.95-.686 5.49-1.86l1.12-.85-1.4-.048c-1.57-.055-2.92-1.08-3.36-2.51l-.48.146-.05.5c.22.03.48.05.75.08.48-.02.87-.07 1.25-.15l2.33-.49-2.32-.49c-1.68-.35-2.91-1.83-2.91-3.55 0-.05 0-.01-.01.03l-.49-.1-.25.44c.63.36 1.35.57 2.07.58l1.7.04L7.4 13c-.978-.662-1.59-1.79-1.618-3.047a4.08 4.08 0 0 1 .524-1.8l-.825.07a12.188 12.188 0 0 0 8.81 4.515l.59.033-.06-.59v-.02c-.05-.43-.06-.63-.06-.87a3.617 3.617 0 0 1 6.27-2.45l.2.21.28-.06c1.01-.22 1.94-.59 2.73-1.09l-.75-.56c-.1.36-.04.89.12 1.36.23.68.58 1.13 1.17.85l-.21-.45-.42-.27c-.52.8-1.17 1.48-1.92 2L22 11l.016.28c.013.2.014.35 0 .52v.04zm.998.038c.018-.22.017-.417 0-.66l-.498.034.284.41a8.183 8.183 0 0 0 2.2-2.267l.97-1.48-1.6.755c.17-.08.3-.02.34.03a.914.914 0 0 1-.13-.292c-.1-.297-.13-.64-.1-.766l.36-1.254-1.1.695c-.69.438-1.51.764-2.41.963l.48.15a4.574 4.574 0 0 0-3.38-1.484 4.616 4.616 0 0 0-4.61 4.613c0 .29.02.51.08.984l.01.02.5-.06.03-.5c-3.17-.18-6.1-1.7-8.08-4.15l-.48-.56-.36.64c-.39.69-.62 1.48-.65 2.28.04 1.61.81 3.04 2.06 3.88l.3-.92c-.55-.02-1.11-.17-1.6-.45l-.59-.34-.14.67c-.02.08-.02.16 0 .24-.01 2.12 1.55 4.01 3.69 4.46l.1-.49-.1-.49c-.33.07-.67.12-1.03.14-.18-.02-.43-.05-.64-.07l-.76-.09.23.73c.57 1.84 2.29 3.14 4.28 3.21l-.28-.89a8.252 8.252 0 0 1-4.85 1.66c-.12-.01-.26-.02-.56-.05l-.17-.01-.18-.01L2.53 21l1.694 1.07a12.233 12.233 0 0 0 6.58 1.917c7.156 0 12.2-5.73 12.18-12.18l-.002.04z"/></svg></span></button><button class="button button--large button--dark button--chromeless is-touchIconBlackPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon" title="Share on Facebook" aria-label="Share on Facebook" data-action="share-on-facebook" data-action-source="post_actions_footer"><span class="svgIcon svgIcon--facebook svgIcon--29px"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="29" height="29" viewBox="0 0 29 29"><path d="M16.39 23.61v-5.808h1.846a.55.55 0 0 0 .546-.48l.36-2.797a.551.551 0 0 0-.547-.62H16.39V12.67c0-.67.12-.813.828-.813h1.474a.55.55 0 0 0 .55-.55V8.803a.55.55 0 0 0-.477-.545c-.436-.06-1.36-.116-2.22-.116-2.5 0-4.13 1.62-4.13 4.248v1.513H10.56a.551.551 0 0 0-.55.55v2.797c0 .304.248.55.55.55h1.855v5.76c-4.172-.96-7.215-4.7-7.215-9.1 0-5.17 4.17-9.36 9.31-9.36 5.14 0 9.31 4.19 9.31 9.36 0 4.48-3.155 8.27-7.43 9.15M14.51 4C8.76 4 4.1 8.684 4.1 14.46c0 5.162 3.75 9.523 8.778 10.32a.55.55 0 0 0 .637-.543v-6.985a.551.551 0 0 0-.55-.55H11.11v-1.697h1.855a.55.55 0 0 0 .55-.55v-2.063c0-2.02 1.136-3.148 3.03-3.148.567 0 1.156.027 1.597.06v1.453h-.924c-1.363 0-1.93.675-1.93 1.912v1.78c0 .3.247.55.55.55h2.132l-.218 1.69H15.84c-.305 0-.55.24-.55.55v7.02c0 .33.293.59.623.54 5.135-.7 9.007-5.11 9.007-10.36C24.92 8.68 20.26 4 14.51 4"/></svg></span></button></div>
+ </div>
+ </div>
+ </div>
+ <div class="js-postPromotionWrapper postPromotionWrapper" data-location-id="footer_above_post_attribution"></div>
+ <div class="container u-maxWidth740 js-postAttributionFooterContainer u-paddingTop20 u-paddingBottom20 u-marginTop10 u-borderTopLightest u-xs-paddingTop10 u-xs-paddingBottom10">
+ <div class="row js-postFooterInfo">
+ <div class="col u-size12of12">
+ <li class="u-block u-paddingBottom18 js-cardUser">
+ <div class="u-marginLeft20 u-floatRight"><span class="followState js-followState buttonSet-inner" data-user-id="77a507c5ad19"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-in-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-action-source="footer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" data-action="sign-in-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/77a507c5ad19" data-action-source="footer_card_follow"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span>
+ </div>
+ <div class="u-tableCell ">
+ <a class="link avatar u-baseColor--link" href="https://medium.com/@johncwelch?source=footer_card" title="Go to the profile of John C. Welch" aria-label="Go to the profile of John C. Welch" data-action-source="footer_card" data-user-id="77a507c5ad19" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/0*qPHQu8WqsC6cV_ud.jpg" class="avatar-image avatar-image--small" alt="Go to the profile of John C. Welch" /></a>
+ </div>
+ <div class="u-tableCell u-verticalAlignMiddle u-breakWord u-paddingLeft15">
+ <h3 class="u-fontSizeBase u-lineHeightTighter u-marginBottom4"><a class="link link--primary u-accentColor--hoverTextNormal" href="https://medium.com/@johncwelch" property="cc:attributionName" title="Go to the profile of John C. Welch" aria-label="Go to the profile of John C. Welch" rel="author cc:attributionUrl" data-user-id="77a507c5ad19" dir="auto">John C. Welch</a></h3>
+ </div>
+ </li>
+ </div>
+ </div>
+ </div>
+ <div class="js-postFooterPlacements"></div>
+ <div class="u-padding0 u-clearfix u-backgroundGrayLightest u-print-hide supplementalPostContent js-responsesWrapper"></div>
+ <div class="supplementalPostContent js-readNext"></div>
+ <div class="supplementalPostContent js-heroPromo"></div>
+ </footer>
+ </article>
+ </main>
+ <div class="u-marginAuto u-maxWidth1000">
+ <div class="js-postShareWidget u-foreground u-sm-hide u-transition--fadeOut300 u-fixed">
+ <ul>
+ <li class="u-uiTextSemibold u-textAlignCenter u-textColorNormal u-fontSizeSmallest u-textUppercase">Share</li>
+ <li class="u-textAlignCenter">
+ <div class="js-actionRecommend" data-post-id="d146a92473a1" data-is-icon-29px="true" data-is-vertical="true" data-has-recommend-list="true" data-source="post_share_widget"><button class="button button--primary button--large button--chromeless is-touchIconFadeInPulse u-accentColor--buttonNormal button--withIcon button--withSvgIcon u-accentColor--iconLight js-actionRecommendButton" title="Recommend to share this article with your followers and let the author know you liked it" aria-label="Recommend to share this article with your followers and let the author know you liked it" data-action="sign-in-prompt" data-sign-in-action="upvote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/d146a92473a1" data-action-source="post_share_widget"><span class="button-defaultState"><span class="svgIcon svgIcon--heart svgIcon--29px"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="29" height="29" viewBox="0 0 29 29"><path d="M16.215 23.716c-.348.288-.984.826-1.376 1.158a.526.526 0 0 1-.68 0c-.36-.307-.92-.78-1.22-1.03C9.22 20.734 3 15.527 3 10.734 3 7.02 5.916 4 9.5 4c1.948 0 3.77.898 5 2.434C15.73 4.898 17.552 4 19.5 4c3.584 0 6.5 3.02 6.5 6.734 0 4.9-6.125 9.96-9.785 12.982zM19.5 5.2c-1.774 0-3.423.923-4.41 2.468a.699.699 0 0 1-.59.323.706.706 0 0 1-.59-.32c-.988-1.54-2.637-2.47-4.41-2.47-2.922 0-5.3 2.49-5.3 5.54 0 4.23 6.19 9.41 9.517 12.19.217.18.566.48.783.66l.952-.79c3.496-2.88 9.348-7.72 9.348-12.05 0-3.05-2.378-5.53-5.3-5.53z"/></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--heartFilled svgIcon--29px"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="29" height="29" viewBox="0 0 29 29"><path d="M19.5 4c-1.948 0-3.77.898-5 2.434C13.27 4.898 11.448 4 9.5 4 5.916 4 3 7.02 3 10.734c0 4.793 6.227 10 9.95 13.11.296.25.853.723 1.212 1.03.196.166.48.166.677 0 .39-.332 1.02-.87 1.37-1.158 3.66-3.022 9.79-8.08 9.79-12.982C26 7.02 23.08 4 19.5 4z" fill-rule="evenodd"/></svg></span></span></button><button class="button button--chromeless u-baseColor--buttonNormal u-block u-marginAuto u-marginTopNegative5" data-action="show-recommends" data-action-value="d146a92473a1">168</button></div>
+ </li>
+ <li class="u-textAlignCenter"><button class="button button--large button--dark button--chromeless is-touchIconBlackPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon" title="Share on Twitter" aria-label="Share on Twitter" data-action="share-on-twitter" data-action-source="post_share_widget"><span class="svgIcon svgIcon--twitter svgIcon--29px"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="29" height="29" viewBox="0 0 29 29"><path d="M21.967 11.8c.018 5.93-4.607 11.18-11.177 11.18-2.172 0-4.25-.62-6.047-1.76l-.268.422-.038.5.186.013.168.012c.3.02.44.032.6.046 2.06-.026 3.95-.686 5.49-1.86l1.12-.85-1.4-.048c-1.57-.055-2.92-1.08-3.36-2.51l-.48.146-.05.5c.22.03.48.05.75.08.48-.02.87-.07 1.25-.15l2.33-.49-2.32-.49c-1.68-.35-2.91-1.83-2.91-3.55 0-.05 0-.01-.01.03l-.49-.1-.25.44c.63.36 1.35.57 2.07.58l1.7.04L7.4 13c-.978-.662-1.59-1.79-1.618-3.047a4.08 4.08 0 0 1 .524-1.8l-.825.07a12.188 12.188 0 0 0 8.81 4.515l.59.033-.06-.59v-.02c-.05-.43-.06-.63-.06-.87a3.617 3.617 0 0 1 6.27-2.45l.2.21.28-.06c1.01-.22 1.94-.59 2.73-1.09l-.75-.56c-.1.36-.04.89.12 1.36.23.68.58 1.13 1.17.85l-.21-.45-.42-.27c-.52.8-1.17 1.48-1.92 2L22 11l.016.28c.013.2.014.35 0 .52v.04zm.998.038c.018-.22.017-.417 0-.66l-.498.034.284.41a8.183 8.183 0 0 0 2.2-2.267l.97-1.48-1.6.755c.17-.08.3-.02.34.03a.914.914 0 0 1-.13-.292c-.1-.297-.13-.64-.1-.766l.36-1.254-1.1.695c-.69.438-1.51.764-2.41.963l.48.15a4.574 4.574 0 0 0-3.38-1.484 4.616 4.616 0 0 0-4.61 4.613c0 .29.02.51.08.984l.01.02.5-.06.03-.5c-3.17-.18-6.1-1.7-8.08-4.15l-.48-.56-.36.64c-.39.69-.62 1.48-.65 2.28.04 1.61.81 3.04 2.06 3.88l.3-.92c-.55-.02-1.11-.17-1.6-.45l-.59-.34-.14.67c-.02.08-.02.16 0 .24-.01 2.12 1.55 4.01 3.69 4.46l.1-.49-.1-.49c-.33.07-.67.12-1.03.14-.18-.02-.43-.05-.64-.07l-.76-.09.23.73c.57 1.84 2.29 3.14 4.28 3.21l-.28-.89a8.252 8.252 0 0 1-4.85 1.66c-.12-.01-.26-.02-.56-.05l-.17-.01-.18-.01L2.53 21l1.694 1.07a12.233 12.233 0 0 0 6.58 1.917c7.156 0 12.2-5.73 12.18-12.18l-.002.04z"/></svg></span></button></li>
+ <li class="u-textAlignCenter"><button class="button button--large button--dark button--chromeless is-touchIconBlackPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon" title="Share on Facebook" aria-label="Share on Facebook" data-action="share-on-facebook" data-action-source="post_share_widget"><span class="svgIcon svgIcon--facebook svgIcon--29px"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="29" height="29" viewBox="0 0 29 29"><path d="M16.39 23.61v-5.808h1.846a.55.55 0 0 0 .546-.48l.36-2.797a.551.551 0 0 0-.547-.62H16.39V12.67c0-.67.12-.813.828-.813h1.474a.55.55 0 0 0 .55-.55V8.803a.55.55 0 0 0-.477-.545c-.436-.06-1.36-.116-2.22-.116-2.5 0-4.13 1.62-4.13 4.248v1.513H10.56a.551.551 0 0 0-.55.55v2.797c0 .304.248.55.55.55h1.855v5.76c-4.172-.96-7.215-4.7-7.215-9.1 0-5.17 4.17-9.36 9.31-9.36 5.14 0 9.31 4.19 9.31 9.36 0 4.48-3.155 8.27-7.43 9.15M14.51 4C8.76 4 4.1 8.684 4.1 14.46c0 5.162 3.75 9.523 8.778 10.32a.55.55 0 0 0 .637-.543v-6.985a.551.551 0 0 0-.55-.55H11.11v-1.697h1.855a.55.55 0 0 0 .55-.55v-2.063c0-2.02 1.136-3.148 3.03-3.148.567 0 1.156.027 1.597.06v1.453h-.924c-1.363 0-1.93.675-1.93 1.912v1.78c0 .3.247.55.55.55h2.132l-.218 1.69H15.84c-.305 0-.55.24-.55.55v7.02c0 .33.293.59.623.54 5.135-.7 9.007-5.11 9.007-10.36C24.92 8.68 20.26 4 14.51 4"/></svg></span></button></li>
+ </ul>
+ </div>
+ </div>
+ <div class="u-fixed u-bottom0 u-sizeFullWidth u-backgroundWhite u-boxShadowTop u-borderBox u-paddingTop10 u-paddingBottom10 u-zIndexMetabar u-xs-paddingLeft10 u-xs-paddingRight10">
+ <div class="u-maxWidth700 u-marginAuto u-flexCenter">
+ <div class="u-fontSizeSmall u-flex1 u-flexCenter">
+ <div class="u-flex0 u-inlineBlock u-paddingRight20 u-xs-paddingRight10">
+ <a class="link avatar u-inline u-baseColor--link" href="https://medium.com/@johncwelch" data-action="show-user-card" data-action-value="77a507c5ad19" data-action-type="hover" data-user-id="77a507c5ad19" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/0*qPHQu8WqsC6cV_ud.jpg" class="avatar-image avatar-image--smaller" alt="Go to the profile of John C. Welch" /></a>
+ </div>
+ <div class="u-flex1 u-inlineBlock">
+ <div class="u-xs-hide">Never miss a story from<strong> John C. Welch</strong>, when you sign up for Medium. <a class="link link--accent u-accentColor--textNormal u-accentColor--textDarken u-baseColor--link" href="https://medium.com/@Medium/personalize-your-medium-experience-with-users-publications-tags-26a41ab1ee0c#.hx4zuv3mg" data-action-source="sticky_footer">Learn more</a></div>
+ <div class="u-xs-show">Never miss a story from<strong> John C. Welch</strong></div>
+ </div>
+ </div>
+ <div class="u-marginLeft50 u-xs-marginAuto"><span class="followState js-followState buttonSet-inner" data-user-id="77a507c5ad19"><button class="button u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton u-uiTextSemibold u-textUppercase u-fontSizeSmallest" data-action="sign-in-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-action-source="sticky_footer"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary is-active u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton u-uiTextSemibold u-textUppercase u-fontSizeSmallest" data-action="sign-in-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/77a507c5ad19" data-action-source="sticky_footer_follow"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Get updates</span></button></span>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="loadingBar"></div>
+ <script>
+ // &lt;![CDATA[
+ window["obvInit"] = function(opt_embedded) {
+ window["obvInit"]["embedded"] = opt_embedded;
+ window["obvInit"]["ready"] = true;
+ }
+ // ]]&gt;
+ </script>
+ <script>
+ // &lt;![CDATA[
+ var GLOBALS = {
+ "audioUrl": "https://d1fcbxp97j4nb2.cloudfront.net",
+ "baseUrl": "https://medium.com",
+ "buildLabel": "27588-3cb8971",
+ "currentUser": {
+ "userId": "lo_4c2ff54882b4",
+ "isVerified": false,
+ "subscriberEmail": ""
+ },
+ "currentUserHasUnverifiedEmail": false,
+ "isAuthenticated": false,
+ "isCurrentUserVerified": false,
+ "language": "en-us",
+ "mediumTwitterScreenName": "medium",
+ "miroUrl": "https://cdn-images-1.medium.com",
+ "moduleUrls": {
+ "base": "https://cdn-static-1.medium.com/_/fp/gen-js/main-base.bundle.iwEjGQsTOduS_qDGmWZZng.js",
+ "notes": "https://cdn-static-1.medium.com/_/fp/gen-js/main-notes.bundle.4fp6HSt83KvFshqkijtyyQ.js",
+ "posters": "https://cdn-static-1.medium.com/_/fp/gen-js/main-posters.bundle.sBoPOCjeITRjo9OsPC1VHA.js",
+ "common-async": "https://cdn-static-1.medium.com/_/fp/gen-js/main-common-async.bundle.bQAtenPub_VKVyJSle9kcw.js",
+ "stats": "https://cdn-static-1.medium.com/_/fp/gen-js/main-stats.bundle.MbJUn4Gmy9lhzoIH0Xeu-Q.js",
+ "misc-screens": "https://cdn-static-1.medium.com/_/fp/gen-js/main-misc-screens.bundle.xXy0Vq1iCvTjwpERpFYbLQ.js"
+ },
+ "previewConfig": {
+ "weightThreshold": 1,
+ "weightImageParagraph": 0.51,
+ "weightIframeParagraph": 0.8,
+ "weightTextParagraph": 0.08,
+ "weightEmptyParagraph": 0,
+ "weightP": 0.003,
+ "weightH": 0.005,
+ "weightBq": 0.003,
+ "minPTextLength": 60,
+ "truncateBoundaryChars": 20,
+ "detectTitle": true,
+ "detectTitleLevThreshold": 0.15
+ },
+ "productName": "Medium",
+ "supportsEdit": true,
+ "termsUrl": "//medium.com/policy/9db0094a1e0f",
+ "textshotHost": "textshot.medium.com",
+ "transactionId": "1487321852914:76ec3588d066",
+ "useragent": {
+ "browser": "firefox",
+ "family": "firefox",
+ "os": "mac",
+ "version": 54,
+ "supportsDesktopEdit": true,
+ "supportsInteract": true,
+ "supportsView": true,
+ "isMobile": false,
+ "isTablet": false,
+ "isNative": false,
+ "supportsFileAPI": true,
+ "isTier1": true,
+ "clientVersion": "",
+ "unknownParagraphsBad": false,
+ "clientChannel": "",
+ "supportsRealScrollEvents": true,
+ "supportsVhUnits": true,
+ "ruinsViewportSections": false,
+ "supportsHtml5Video": true,
+ "supportsMagicUnderlines": true,
+ "isWebView": false,
+ "isFacebookWebView": false,
+ "supportsProgressiveMedia": true,
+ "supportsPromotedPosts": true,
+ "isBot": false,
+ "supportsScrollableMetabar": true
+ },
+ "variants": {
+ "enable_fuzzy_number_experiment": true,
+ "allow_access": true,
+ "allow_signup": true,
+ "allow_test_auth": "disallow",
+ "signin_services": "twitter,facebook,google,email,google-fastidv",
+ "signup_services": "twitter,facebook,google,email,google-fastidv",
+ "android_rating_prompt_recommend_threshold": 5,
+ "google_sign_in_android": true,
+ "enable_onboarding": true,
+ "ios_custom_miro_url": "https://cdn-images-1.medium.com",
+ "reengagement_notification_duration": 3,
+ "enable_adsnative_integration": true,
+ "browsable_stream_config_bucket": "curated",
+ "ios_small_post_preview_truncation_length": 5.5,
+ "ios_large_post_preview_truncation_length": 5.5,
+ "disable_ios_catalog_badging": true,
+ "enable_ranked_feed_survey_promo": true,
+ "enable_prepublish_share_settings": true,
+ "enable_direct_auth_connect": true,
+ "enable_post_import": true,
+ "enable_sponsored_post_labelling": true,
+ "promoted_story_placement_locations": "POST_PAGE_FOOTER",
+ "prmt_to_people_experiment": "macro",
+ "enable_related_reads_curse_words_filtering": true,
+ "enable_search_collection_by_tag_recency_filter": true,
+ "search_collection_by_tag_filter_min_votes": 10,
+ "enable_drag_and_drop_ui": true,
+ "enable_catalog_takeover_route": true,
+ "show_more_placements": "control",
+ "enable_crex_directory": true,
+ "enable_client_digest": true,
+ "honeypot_footer_copy_strategy": 1,
+ "enable_sms_app_promo": true,
+ "enable_home_stream_follow_suggestions": true,
+ "enable_export_members": true,
+ "enable_onboarding_users_by_tag": true,
+ "enable_publication_popovers": true,
+ "enable_hide_broken_links": true
+ },
+ "xsrfToken": "",
+ "iosAppId": "828256236",
+ "supportEmail": "[email protected]",
+ "teamName": "Team Medium",
+ "fp": {
+ "/icons/favicon.svg": "https://cdn-static-1.medium.com/_/fp/icons/favicon.KjTfUJo7yJH_fCoUzzH3cg.svg",
+ "/icons/favicon-dev-editor.ico": "https://cdn-static-1.medium.com/_/fp/icons/favicon-dev-editor.YKKRxBO8EMvIqhyCwIiJeQ.ico",
+ "/icons/favicon-hatch-editor.ico": "https://cdn-static-1.medium.com/_/fp/icons/favicon-hatch-editor.BuEyHIqlyh2s_XEk4Rl32Q.ico",
+ "/icons/favicon-medium-editor.ico": "https://cdn-static-1.medium.com/_/fp/icons/favicon-medium-editor.PiakrZWB7Yb80quUVQWM6g.ico"
+ },
+ "authBaseUrl": "https://medium.com",
+ "imageUploadSizeMb": 25,
+ "isAuthDomainRequest": true,
+ "algoliaApiEndpoint": "https://MQ57UUUQZ2-dsn.algolia.net",
+ "algoliaAppId": "MQ57UUUQZ2",
+ "algoliaSearchOnlyApiKey": "f2b83a373dfeab4286ac5e9da958a5a9",
+ "iosAppStoreUrl": "https://itunes.apple.com/app/medium-everyones-stories/id828256236?pt=698524&amp;mt=8",
+ "iosAppLinkBaseUrl": "medium:",
+ "algoliaIndexPrefix": "medium_",
+ "androidPlayStoreUrl": "https://play.google.com/store/apps/details?id=com.medium.reader",
+ "googleClientId": "216296035834-k1k6qe060s2tp2a2jam4ljdcms00sttg.apps.googleusercontent.com",
+ "androidPackage": "com.medium.reader",
+ "androidPlayStoreMarketScheme": "market://details?id=com.medium.reader",
+ "googleAuthUri": "https://accounts.google.com/o/oauth2/auth",
+ "androidScheme": "medium",
+ "layoutData": {
+ "useDynamicScripts": false,
+ "googleAnalyticsTrackingCode": "UA-24232453-2",
+ "jsShivUrl": "https://cdn-static-1.medium.com/_/fp/js/shiv.RI2ePTZ5gFmMgLzG5bEVAA.js",
+ "useDynamicCss": false,
+ "faviconUrl": "https://cdn-static-1.medium.com/_/fp/icons/favicon-medium.TAS6uQ-Y7kcKgi0xjcYHXw.ico",
+ "faviconImageId": "1*W0nmth_X8nFKjn6BZ388UQ.png",
+ "fontSets": [{
+ "id": 1,
+ "url": "https://cdn-static-1.medium.com/_/fp/css/fonts-base.by5Oi_VbnwEIvhnWIsuUjA.css"
+ }, {
+ "id": 4,
+ "url": "https://cdn-static-1.medium.com/_/fp/css/fonts-lazy-base.g08Jj5TZPAiuPWj5YNUsSg.css"
+ }, {
+ "id": 6,
+ "url": "https://cdn-static-1.medium.com/_/fp/css/fonts-latin-base.141WxxXgxGxNcfeza73H7Q.css"
+ }, {
+ "id": 7,
+ "url": "https://cdn-static-1.medium.com/_/fp/css/fonts-lazy-latin-base.jMU532QDmysQMOINr-cr2A.css"
+ }]
+ },
+ "authBaseUrlRev": "moc.muidem//:sptth",
+ "isDnt": false,
+ "stripePublishableKey": "pk_live_7FReX44VnNIInZwrIIx6ghjl",
+ "archiveUploadSizeMb": 100,
+ "paymentData": {
+ "currencies": {
+ "1": {
+ "label": "US Dollar",
+ "external": "usd"
+ }
+ },
+ "countries": {
+ "1": {
+ "label": "United States of America",
+ "external": "US"
+ }
+ },
+ "accountTypes": {
+ "1": {
+ "label": "Individual",
+ "external": "individual"
+ },
+ "2": {
+ "label": "Company",
+ "external": "company"
+ }
+ }
+ },
+ "previewConfig2": {
+ "weightThreshold": 1,
+ "weightImageParagraph": 0.05,
+ "raiseImage": true,
+ "enforceHeaderHierarchy": true,
+ "isImageInsetRight": true
+ },
+ "isAmp": false,
+ "iosScheme": "medium",
+ "isSwBoot": false,
+ "lightstep": {
+ "accessToken": "ce5be895bef60919541332990ac9fef2",
+ "carrier": "{\"ot-tracer-spanid\":\"193d6d6553cb4e95\",\"ot-tracer-traceid\":\"46e2064a75e734e0\",\"ot-tracer-sampled\":\"true\"}",
+ "host": "collector-medium.lightstep.com"
+ },
+ "facebook": {
+ "key": "542599432471018",
+ "secret": "c14df7146e9052a1131f3c900c1f0644",
+ "token": "542599432471018|1JqjIwxSfY9jOt_KwjWEl1R7T6I",
+ "namespace": "medium-com",
+ "scope": {
+ "default": ["public_profile", "email", "user_friends"],
+ "connect": ["public_profile", "email", "user_friends"],
+ "login": ["public_profile", "email", "user_friends"],
+ "share": ["public_profile", "email", "user_friends", "publish_actions"]
+ },
+ "smartPublishWhitelistedPublications": ["bcc38c8f6edf", "f3726e2a5878", "828a270689e", "81c7d351c056", "f30e42fd7ff8", "8bf1d7d3081b", "d16afa0ae7c", "d8f3f6ad9c31", "e74de0cedea9", "15f753907972", "c8c6a6b01ebd", "3412b9729488", "2ce4bbcf83bb", "544c7006046e", "7bfcdbc6b30a", "a268fd916824", "458a773bccd2"],
+ "instantArticles": {
+ "published": true,
+ "developmentMode": false
+ }
+ },
+ "mailingListArchiveUploadSizeMb": 2,
+ "availableMembershipPlans": [],
+ "isDoNotAuth": false,
+ "goldfinchUrl": "https://goldfinch.medium.com"
+ }
+ // ]]&gt;
+ </script>
+ <script charset="UTF-8" src="https://cdn-static-1.medium.com/_/fp/gen-js/main-base.bundle.iwEjGQsTOduS_qDGmWZZng.js" async=""></script>
+ <script>
+ // &lt;![CDATA[
+ window["obvInit"]({
+ "value": {
+ "id": "d146a92473a1",
+ "versionId": "3fed73795ca4",
+ "creatorId": "77a507c5ad19",
+ "creator": {
+ "userId": "77a507c5ad19",
+ "name": "John C. Welch",
+ "username": "johncwelch",
+ "createdAt": 1408545892232,
+ "lastPostCreatedAt": 1486930695056,
+ "imageId": "0*qPHQu8WqsC6cV_ud.jpg",
+ "backgroundImageId": "1*nYm-VLVTCtzpby_1jFUjRw.jpeg",
+ "bio": "",
+ "twitterScreenName": "",
+ "socialStats": {
+ "userId": "77a507c5ad19",
+ "usersFollowedCount": 63,
+ "usersFollowedByCount": 230,
+ "type": "SocialStats"
+ },
+ "social": {
+ "userId": "lo_4c2ff54882b4",
+ "targetUserId": "77a507c5ad19",
+ "type": "Social"
+ },
+ "facebookAccountId": "10152302268220732",
+ "allowNotes": 1,
+ "type": "User"
+ },
+ "homeCollectionId": "",
+ "title": "Samantha and The Great Big Lie",
+ "detectedLanguage": "en",
+ "latestVersion": "3fed73795ca4",
+ "latestPublishedVersion": "3fed73795ca4",
+ "hasUnpublishedEdits": false,
+ "latestRev": 1797,
+ "createdAt": 1444864250473,
+ "updatedAt": 1449844114438,
+ "acceptedAt": 0,
+ "firstPublishedAt": 1444875555607,
+ "latestPublishedAt": 1449844114438,
+ "vote": false,
+ "experimentalCss": "",
+ "displayAuthor": "",
+ "content": {
+ "subtitle": "How to get shanked doing what people say they want",
+ "bodyModel": {
+ "paragraphs": [{
+ "name": "b34c",
+ "type": 3,
+ "text": "Samantha and The Great Big Lie",
+ "markups": []
+ }, {
+ "name": "97e7",
+ "type": 1,
+ "text": "How to get shanked doing what people say they want",
+ "markups": []
+ }, {
+ "name": "df70",
+ "type": 6,
+ "text": "don’t preach to me\nMr. integrity",
+ "markups": []
+ }, {
+ "name": "c979",
+ "type": 1,
+ "text": "(EDIT: removed the link to Samantha’s post, because the arments and the grubers and the rest of The Deck Clique got what they wanted: a non-proper person driven off the internet lightly capped with a dusting of transphobia along the way, all totally okay because the ends justify the means, and it’s okay when “good” people do it.)",
+ "markups": []
+ }, {
+ "name": "342d",
+ "type": 1,
+ "text": "First, I need to say something about this article: the reason I’m writing it infuriates me. Worse than installing CS 3 or Acrobat 7 ever did, and the former inspired comparisons to fecophile porn. I’m actually too mad to cuss. Well, not completely, but in this case, I don’t think the people I’m mad at are worth the creativity I try to put into profanity. This is about a brownfield of hypocrisy and viciously deliberate mischaracterization that “shame” cannot even come close to the shame those behind it should feel.",
+ "markups": []
+ }, {
+ "name": "2e61",
+ "type": 1,
+ "text": "Now, read this post by Samantha Bielefeld: The Elephant in the Room. First, it is a well-written critical piece that raises a few points in a calm, rational, nonconfrontational fashion, exactly the kind of things the pushers of The Great Big Lie say we need more of, as opposed to the screaming that is the norm in such cases.",
+ "markups": []
+ }, {
+ "name": "cd31",
+ "type": 1,
+ "text": "…sorry, I should explain “The Great Big Lie”. There are several, but in this case, our specific instance of “The Great Big Lie” is about criticism. Over and over, you hear from the very people I am not going to be nice to in this that we need “better” criticsm. Instead of rage and anger, volume and vitriol, we need in-depth rational criticism, that isn’t personal or ad hominem. That it should focus on points, not people.",
+ "markups": [{
+ "type": 2,
+ "start": 87,
+ "end": 95
+ }]
+ }, {
+ "name": "ae07",
+ "type": 1,
+ "text": "That, readers, is “The Big Lie”. It is a lie so big that if one ponders the reality of it, as I am going to, one wonders why anyone would believe it. It is a lie and it is one we should stop telling.",
+ "markups": []
+ }, {
+ "name": "a02f",
+ "type": 1,
+ "text": "Samantha’s points (I assume you read it, for you are smart people who know the importance of such things) are fairly clear:",
+ "markups": []
+ }, {
+ "name": "9213",
+ "type": 10,
+ "text": "With the release of Overcast 2.0, a product Samantha actually likes, Marco Arment moved to a patronage model that will probably be successful for him.",
+ "markups": [{
+ "type": 3,
+ "start": 93,
+ "end": 108,
+ "href": "http://www.marco.org/2015/10/09/overcast2",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }]
+ }, {
+ "name": "dfa5",
+ "type": 10,
+ "text": "Arment’s insistence that “anyone can do this” while technically true, (anyone can in fact, implement this pricing model), also implies that “anyone” can have the kind of success that a developer with Marco’s history, financial status, and deep ties to the Apple News Web is expected to have. This is silly.",
+ "markups": [{
+ "type": 3,
+ "start": 26,
+ "end": 44,
+ "href": "https://medium.com/@marcoarment/pragmatic-app-pricing-a79fc07218f3",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }]
+ }, {
+ "name": "e55d",
+ "type": 10,
+ "text": "Marco Arment occupies a fairly unique position in the Apple universe, (gained by hard work and no small talent), and because of that, benefits from a set of privileges that a new developer or even one that has been around for a long time, but isn’t, well, Marco, not only don’t have, but have little chance of attaining anytime soon.",
+ "markups": [{
+ "type": 2,
+ "start": 256,
+ "end": 261
+ }]
+ }, {
+ "name": "35fb",
+ "type": 10,
+ "text": "Marco has earned his success and is entitled to the benefits and privileges it brings, but he seems rather blind to all of that, and seems to still imagine himself as “two guys in a garage”. This is just not correct.",
+ "markups": []
+ }, {
+ "name": "38e2",
+ "type": 10,
+ "text": "In addition, the benefits and privileges of the above ensure that by releasing Overcast 2 as a free app, with patronage pricing, he has, if not gutted, severely hurt the ability of folks actually selling their apps for an up-front price of not free to continue doing so. This has the effect of accelerating the “race to the bottom” in the podcast listening app segment, which hurts devs who cannot afford to work on a “I don’t really need this money, so whatever you feel like sending is okay” model.",
+ "markups": []
+ }, {
+ "name": "0481",
+ "type": 1,
+ "text": "None of this is incorrect. None of this is an ad hominem attack in any way. It is just pointing out that a developer of Arment’s stature and status lives in a very different world than someone in East Frog Balls, Arkansas trying to make a living off of App sales. Our dev in EFB doesn’t have the main sites on the Apple web falling all over themselves to review their app the way that Arment does. They’re not friends with the people being The Loop, Daring Fireball, SixColors, iMore, The Mac Observer, etc., yadda.",
+ "markups": []
+ }, {
+ "name": "5a45",
+ "type": 1,
+ "text": "So, our hero, in a fit of well-meaning ignorance writes this piece (posted this morning, 14 Oct. 15) and of course, the response and any criticisms are just as reasonable and thoughtful.",
+ "markups": []
+ }, {
+ "name": "3bc7",
+ "type": 1,
+ "text": "If you really believe that, you are the most preciously ignorant person in the world, and can I have your seriously charmed life.",
+ "markups": []
+ }, {
+ "name": "0fb2",
+ "type": 1,
+ "text": "The response, from all quarters, including Marco, someone who is so sensitive to criticism that the word “useless” is enough to shut him down, who blocked a friend of mine for the high crime of pointing out that his review of podcasting mics centered around higher priced gear and ignored folks without the scratch, who might not be ready for such things, is, in a single word, disgusting. Vomitous even.",
+ "markups": [{
+ "type": 3,
+ "start": 118,
+ "end": 141,
+ "href": "http://www.marco.org/2011/03/30/here-is-a-tip-for-all-the-non-developers-out",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }, {
+ "type": 3,
+ "start": 147,
+ "end": 354,
+ "href": "https://twitter.com/marcoarment/status/641330113934700544",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }]
+ }, {
+ "name": "9a6e",
+ "type": 1,
+ "text": "It’s an hours-long dogpile that beggars even my imagination, and I can imagine almost anything. Seriously, it’s all there in Samantha’s Twitter Feed. From what I can tell, she’s understandably shocked over it. I however was not. This one comment in her feed made me smile (warning, this wanders a bit…er…LOT. Twitter timelines are not easy to put together):",
+ "markups": [{
+ "type": 3,
+ "start": 125,
+ "end": 148,
+ "href": "https://twitter.com/s_bielefeld/with_replies",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }]
+ }, {
+ "name": "3271",
+ "type": 6,
+ "text": "I can see why you have some reservations about publishing it, but my gut feeling is that he would take it better than Nilay.",
+ "markups": []
+ }, {
+ "name": "ec72",
+ "type": 1,
+ "text": "Oh honey, bless your sweet, ignorant heart. Marco is one of the biggest pushers of The Big Lie, and one of the reasons it is such a lie.",
+ "markups": [{
+ "type": 2,
+ "start": 125,
+ "end": 129
+ }]
+ }, {
+ "name": "5cc4",
+ "type": 1,
+ "text": "But it gets better. First, you have the “hey, Marco earned his status!” lot. A valid point, and one Bielefeld explicitly acknowledges, here:",
+ "markups": [{
+ "type": 2,
+ "start": 52,
+ "end": 58
+ }]
+ }, {
+ "name": "4e5f",
+ "type": 6,
+ "text": "From his ground floor involvement in Tumblr (for which he is now a millionaire), to the creation and sale of a wildly successful app called Instapaper, he has become a household name in technology minded circles. It is this extensive time spent in the spotlight, the huge following on Twitter, and dedicated listeners of his weekly aired Accidental Tech Podcast, that has granted him the freedom to break from seeking revenue in more traditional manners.",
+ "markups": []
+ }, {
+ "name": "cee9",
+ "type": 1,
+ "text": "and here:",
+ "markups": []
+ }, {
+ "name": "3f1b",
+ "type": 6,
+ "text": "I’m not knocking his success, he has put effort into his line of work, and has built his own life.",
+ "markups": []
+ }, {
+ "name": "e527",
+ "type": 1,
+ "text": "and here:",
+ "markups": []
+ }, {
+ "name": "3e4f",
+ "type": 6,
+ "text": "He has earned his time in the spotlight, and it’s only natural for him to take advantage of it.",
+ "markups": []
+ }, {
+ "name": "8a01",
+ "type": 1,
+ "text": "But still, you get the people telling her something she already acknowledge:",
+ "markups": []
+ }, {
+ "name": "7685",
+ "type": 6,
+ "text": "I don’t think he’s blind. he’s worked to where he has gotten and has had failures like everyone else.",
+ "markups": []
+ }, {
+ "name": "b151",
+ "type": 1,
+ "text": "Thank you for restating something in the article. To the person who wrote it.",
+ "markups": []
+ }, {
+ "name": "87bc",
+ "type": 1,
+ "text": "In the original article, Samantha talked about the money Marco makes from his podcast. She based that on the numbers provided by ATP in terms of sponsorship rates and the number of current sponsors the podcast has. Is this going to yield perfect numbers? No. But the numbers you get from it will at least be reasonable, or should be unless the published sponsorship rates are just fantasy, and you’re stupid for taking them seriously.",
+ "markups": [{
+ "type": 3,
+ "start": 117,
+ "end": 162,
+ "href": "http://atp.fm/sponsor/",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }]
+ }, {
+ "name": "dbda",
+ "type": 1,
+ "text": "At first, she went with a simple formula:",
+ "markups": []
+ }, {
+ "name": "1b4e",
+ "type": 6,
+ "text": "$4K x 3 per episode = $12K x 52 weeks / 3 hosts splitting it.",
+ "markups": []
+ }, {
+ "name": "0b33",
+ "type": 1,
+ "text": "That’s not someone making shit up, right? Rather quickly, someone pointed out that she’d made an error in how she calculated it:",
+ "markups": []
+ }, {
+ "name": "76d7",
+ "type": 6,
+ "text": "That’s $4k per ad, no? So more like $12–16k per episode.",
+ "markups": []
+ }, {
+ "name": "a089",
+ "type": 1,
+ "text": "She’d already realized her mistake and fixed it.",
+ "markups": []
+ }, {
+ "name": "b369",
+ "type": 6,
+ "text": "which is actually wrong, and I’m correcting now. $4,000 per sponsor, per episode! So, $210,000 per year.",
+ "markups": []
+ }, {
+ "name": "8b3b",
+ "type": 1,
+ "text": "Again, this is based on publicly available data the only kind someone not part of ATP or a close friend of Arment has access to. So while her numbers may be wrong, if they are, there’s no way for her to know that. She’s basing her opinion on actual available data. Which is sadly rare.",
+ "markups": [{
+ "type": 2,
+ "start": 24,
+ "end": 47
+ }]
+ }, {
+ "name": "135a",
+ "type": 1,
+ "text": "This becomes a huge flashpoint. You name a reason to attack her over this, people do. No really. For example, she’s not calculating his income taxes correctly:",
+ "markups": [{
+ "type": 2,
+ "start": 136,
+ "end": 158
+ }]
+ }, {
+ "name": "5e7e",
+ "type": 6,
+ "text": "especially since it isn’t his only source of income thus, not an indicator of his marginal inc. tax bracket.",
+ "markups": []
+ }, {
+ "name": "6036",
+ "type": 6,
+ "text": "thus, guessing net income is more haphazard than stating approx. gross income.",
+ "markups": []
+ }, {
+ "name": "aac1",
+ "type": 1,
+ "text": "Ye Gods. She’s not doing his taxes for him, her point is invalid?",
+ "markups": []
+ }, {
+ "name": "600f",
+ "type": 1,
+ "text": "Then there’s the people who seem to have not read anything past what other people are telling them:",
+ "markups": []
+ }, {
+ "name": "9b62",
+ "type": 6,
+ "text": "Not sure what to make of your Marco piece, to be honest. You mention his fame, whatever, but what’s the main idea here?",
+ "markups": []
+ }, {
+ "name": "c18a",
+ "type": 1,
+ "text": "Just how spoon-fed do you have to be? Have you no teeth?",
+ "markups": []
+ }, {
+ "name": "c445",
+ "type": 1,
+ "text": "Of course, Marco jumps in, and predictably, he’s snippy:",
+ "markups": []
+ }, {
+ "name": "0c21",
+ "type": 6,
+ "text": "If you’re going to speak in precise absolutes, it’s best to first ensure that you’re correct.",
+ "markups": []
+ }, {
+ "name": "8f8d",
+ "type": 1,
+ "text": "If you’re going to be like that, it’s best to provide better data. Don’t get snippy when someone is going off the only data available, and is clearly open to revising based on better data.",
+ "markups": []
+ }, {
+ "name": "cc97",
+ "type": 1,
+ "text": "Then Marco’s friends/fans get into it:",
+ "markups": []
+ }, {
+ "name": "f9da",
+ "type": 6,
+ "text": "I really don’t understand why it’s anyone’s business",
+ "markups": []
+ }, {
+ "name": "0094",
+ "type": 1,
+ "text": "Samantha is trying to qualify for sainthood at this point:",
+ "markups": []
+ }, {
+ "name": "0105",
+ "type": 6,
+ "text": "It isn’t really, it was a way of putting his income in context in regards to his ability to gamble with Overcast.",
+ "markups": []
+ }, {
+ "name": "cdd1",
+ "type": 1,
+ "text": "Again, she’s trying to drag people back to her actual point, but no one is going to play. The storm has begun. Then we get people who are just spouting nonsense:",
+ "markups": []
+ }, {
+ "name": "f56c",
+ "type": 6,
+ "text": "Why is that only relevant for him? It’s a pretty weird metric,especially since his apps aren’t free.",
+ "markups": []
+ }, {
+ "name": "4fef",
+ "type": 1,
+ "text": "Wha?? Overcast 2 is absolutely free. Samantha points this out:",
+ "markups": []
+ }, {
+ "name": "0f36",
+ "type": 6,
+ "text": "His app is free, that’s what sparked the article to begin with.",
+ "markups": []
+ }, {
+ "name": "40d2",
+ "type": 1,
+ "text": "The response is literally a parallel to “How can there be global warming if it snowed today in my town?”",
+ "markups": []
+ }, {
+ "name": "6760",
+ "type": 6,
+ "text": "If it’s free, how have I paid for it? Twice?",
+ "markups": []
+ }, {
+ "name": "7b13",
+ "type": 1,
+ "text": "She is still trying:",
+ "markups": []
+ }, {
+ "name": "44ba",
+ "type": 6,
+ "text": "You paid $4.99 to unlock functionality in Overcast 1.0 and you chose to support him with no additional functionality in 2.0",
+ "markups": []
+ }, {
+ "name": "2152",
+ "type": 1,
+ "text": "He is having none of it. IT SNOWED! SNOWWWWWWW!",
+ "markups": []
+ }, {
+ "name": "99a6",
+ "type": 6,
+ "text": "Yes. That’s not free. Free is when you choose not to make money. And that can be weaponized. But that’s not what Overcast does.",
+ "markups": []
+ }, {
+ "name": "5e6f",
+ "type": 1,
+ "text": "She however, is relentless:",
+ "markups": []
+ }, {
+ "name": "1b0f",
+ "type": 6,
+ "text": "No, it’s still free. You can choose to support it, you are required to pay $4.99 for Pocket Casts. Totally different model.",
+ "markups": []
+ }, {
+ "name": "d24f",
+ "type": 1,
+ "text": "Dude seems to give up. (Note: allllll the people bagging on her are men. All of them. Mansplaining like hell. And I’d bet every one of them considers themselves a feminist.)",
+ "markups": []
+ }, {
+ "name": "10e1",
+ "type": 1,
+ "text": "We get another guy trying to push the narrative she’s punishing him for his success, which is just…it’s stupid, okay? Stupid.",
+ "markups": []
+ }, {
+ "name": "9b01",
+ "type": 6,
+ "text": "It also wasn’t my point in writing my piece today, but it seems to be everyone’s focus.",
+ "markups": []
+ }, {
+ "name": "340c",
+ "type": 1,
+ "text": "(UNDERSTATEMENT OF THE YEAR)",
+ "markups": []
+ }, {
+ "name": "7244",
+ "type": 6,
+ "text": "I think the focus should be more on that fact that while it’s difficult, Marco spent years building his audience.",
+ "markups": []
+ }, {
+ "name": "ffb1",
+ "type": 6,
+ "text": "It doesn’t matter what he makes it how he charges. If the audience be earned is willing to pay for it, awesome.",
+ "markups": []
+ }, {
+ "name": "e44e",
+ "type": 1,
+ "text": "She tries, oh lord, she tries:",
+ "markups": []
+ }, {
+ "name": "a502",
+ "type": 6,
+ "text": "To assert that he isn’t doing anything any other dev couldn’t, is wrong. It’s successful because it’s Marco.",
+ "markups": []
+ }, {
+ "name": "7dcd",
+ "type": 1,
+ "text": "But no, HE KNOWS HER POINT BETTER THAN SHE DOES:",
+ "markups": []
+ }, {
+ "name": "a62a",
+ "type": 6,
+ "text": "No, it’s successful because he busted his ass to make it so. It’s like any other business. He grew it.",
+ "markups": []
+ }, {
+ "name": "df8c",
+ "type": 1,
+ "text": "Christ. This is like a field of strawmen. Stupid ones. Very stupid ones.",
+ "markups": []
+ }, {
+ "name": "521a",
+ "type": 1,
+ "text": "One guy tries to blame it all on Apple, another in a string of Wha??? moments:",
+ "markups": []
+ }, {
+ "name": "d80d",
+ "type": 6,
+ "text": "the appropriate context is Apple’s App Store policies. Other devs aren’t Marco’s responsibility",
+ "markups": []
+ }, {
+ "name": "db0b",
+ "type": 1,
+ "text": "Seriously? Dude, are you even trying to talk about what Samantha actually wrote? At this point, Samantha is clearly mystified at the entire thing:",
+ "markups": []
+ }, {
+ "name": "7a78",
+ "type": 6,
+ "text": "Why has the conversation suddenly turned to focus on nothing more than ATP sponsorship income?",
+ "markups": []
+ }, {
+ "name": "6e09",
+ "type": 1,
+ "text": "Because it’s a nit they can pick and allows them to ignore everything you wrote. That’s the only reason.",
+ "markups": []
+ }, {
+ "name": "b7db",
+ "type": 1,
+ "text": "One guy is “confused”:",
+ "markups": []
+ }, {
+ "name": "3626",
+ "type": 6,
+ "text": "I see. He does have clout, so are you saying he’s too modest in how he sees himself as a dev?",
+ "markups": []
+ }, {
+ "name": "9daa",
+ "type": 6,
+ "text": "Yes. He can’t be equated to the vast majority of other developers. Like calling Gruber, “just another blogger”.",
+ "markups": []
+ }, {
+ "name": "f6da",
+ "type": 6,
+ "text": "Alright, that’s fair. I was just confused by the $ and fame angle at first.",
+ "markups": []
+ }, {
+ "name": "d5b1",
+ "type": 1,
+ "text": "Samantha’s point centers on the benefits Marco gains via his fame and background. HOW DO YOU NOT MENTION THAT? HOW IS THAT CONFUSING?",
+ "markups": [{
+ "type": 2,
+ "start": 82,
+ "end": 133
+ }]
+ }, {
+ "name": "58d0",
+ "type": 1,
+ "text": "People of course are telling her it’s her fault for mentioning a salient fact at all:",
+ "markups": []
+ }, {
+ "name": "30d2",
+ "type": 6,
+ "text": "Why has the conversation suddenly turned to focus on nothing more than ATP sponsorship income?",
+ "markups": []
+ }, {
+ "name": "765b",
+ "type": 6,
+ "text": "Maybe because you went there with your article?",
+ "markups": []
+ }, {
+ "name": "61fe",
+ "type": 6,
+ "text": "As a way of rationalizing his ability to gamble with the potential for Overcast to generate income…not the norm at all.",
+ "markups": []
+ }, {
+ "name": "f17c",
+ "type": 1,
+ "text": "Of course, had she not brought up those important points, she’d have been bagged on for “not providing proof”. Lose some, lose more. By now, she’s had enough and she just deletes all mention of it. Understandable, but sad she was bullied into doing that.",
+ "markups": []
+ }, {
+ "name": "0b60",
+ "type": 1,
+ "text": "Yes, bullied. That’s all this is. Bullying. She didn’t lie, cheat, or exaagerate. If her numbers were wrong, they weren’t wrong in a way she had any ability to do anything about. But there’s blood in the water, and the comments and attacks get worse:",
+ "markups": []
+ }, {
+ "name": "65ab",
+ "type": 6,
+ "text": "Because you decided to start a conversation about someone else’s personal shit. You started this war.",
+ "markups": []
+ }, {
+ "name": "1adb",
+ "type": 1,
+ "text": "War. THIS. IS. WAR.",
+ "markups": []
+ }, {
+ "name": "de94",
+ "type": 1,
+ "text": "This is a bunch of nerds attacking someone for reasoned, calm, polite criticism of their friend/idol. Samantha is politely pushing back a bit:",
+ "markups": [{
+ "type": 2,
+ "start": 63,
+ "end": 69
+ }]
+ }, {
+ "name": "4458",
+ "type": 6,
+ "text": "That doesn’t explain why every other part of my article is being pushed aside.",
+ "markups": []
+ }, {
+ "name": "aeac",
+ "type": 1,
+ "text": "She’s right. This is all nonsense. This is people ignoring her article completely, just looking for things to attack so it can be dismissed. It’s tribalism at its purest.",
+ "markups": []
+ }, {
+ "name": "0078",
+ "type": 1,
+ "text": "Then some of the other annointed get into it, including Jason Snell in one of the most spectactular displays of “I have special knowledge you can’t be expected to have, therefore you are totally off base and wrong, even though there’s no way for you to know this” I’ve seen in a while. Jason:",
+ "markups": []
+ }, {
+ "name": "c4c9",
+ "type": 6,
+ "text": "You should never use an ad rate card to estimate ad revenue from any media product ever.",
+ "markups": []
+ }, {
+ "name": "b66b",
+ "type": 6,
+ "text": "I learned this when I started working for a magazine — rate cards are mostly fiction, like prices on new cars",
+ "markups": []
+ }, {
+ "name": "6907",
+ "type": 1,
+ "text": "How…exactly…in the name of whatever deity Jason may believe in…is Samantha or anyone not “in the biz” supposed to know this. Also, what exactly does a magazine on paper like Macworld have to do with sponsorships for a podcast? I have done podcasts that were sponsored, and I can retaliate with “we charged what the rate card said we did. Checkmate Elitests!”",
+ "markups": [{
+ "type": 2,
+ "start": 338,
+ "end": 357
+ }]
+ }, {
+ "name": "41ec",
+ "type": 1,
+ "text": "Samantha basically abases herself at his feet:",
+ "markups": []
+ }, {
+ "name": "0b14",
+ "type": 6,
+ "text": "I understand my mistake, and it’s unfortunate that it has completely diluted the point of my article.",
+ "markups": []
+ }, {
+ "name": "590f",
+ "type": 1,
+ "text": "I think she should have told him where and how to stuff that nonsense, but she’s a nicer person than I am. Also, it’s appropriate that Jason’s twitter avatar has its nose in the air. This is some rank snobbery. It’s disgusting and if anyone pulled that on him, Jason would be very upset. But hey, one cannot criticize The Marco without getting pushback. By “pushback”, I mean “an unrelenting fecal flood”.",
+ "markups": []
+ }, {
+ "name": "69dc",
+ "type": 1,
+ "text": "Her only mistake was criticizing one of the Kool Kids. Folks, if you criticize anyone in The Deck Clique, or their friends, expect the same thing, regardless of tone or point.",
+ "markups": []
+ }, {
+ "name": "5ab4",
+ "type": 1,
+ "text": "Another App Dev, seemingly unable to parse Samantha’s words, needs more explanation:",
+ "markups": [{
+ "type": 2,
+ "start": 67,
+ "end": 71
+ }]
+ }, {
+ "name": "957b",
+ "type": 6,
+ "text": "so just looking over your mentions, I’m curious what exactly was your main point? Ignoring the podcast income bits.",
+ "markups": []
+ }, {
+ "name": "0a7e",
+ "type": 1,
+ "text": "Oh wait, he didn’t even read the article. Good on you, Dev Guy, good. on. you. Still, she plays nice with someone who didn’t even read her article:",
+ "markups": [{
+ "type": 2,
+ "start": 101,
+ "end": 146
+ }]
+ }, {
+ "name": "f7db",
+ "type": 6,
+ "text": "That a typical unknown developer can’t depend on patronage to generate revenue, and charging for apps will become a negative.",
+ "markups": []
+ }, {
+ "name": "937f",
+ "type": 1,
+ "text": "Marco comes back of course, and now basically accuses her of lying about other devs talking to her and supporting her point:",
+ "markups": []
+ }, {
+ "name": "c9dd",
+ "type": 6,
+ "text": "How many actual developers did you hear from, really? Funny how almost nobody wants to give a (real) name on these accusations.",
+ "markups": []
+ }, {
+ "name": "c522",
+ "type": 1,
+ "text": "Really? You’re going to do that? “There’s no name, so I don’t think it’s a real person.” Just…what’s the Joe Welch quote from the McCarthy hearings?",
+ "markups": []
+ }, {
+ "name": "907e",
+ "type": 6,
+ "text": "Let us not assassinate this lad further, Senator. You’ve done enough. Have you no sense of decency, sir? At long last, have you left no sense of decency?",
+ "markups": []
+ }, {
+ "name": "2158",
+ "type": 1,
+ "text": "That is what this is at this point: character assasination because she said something critical of A Popular Person. It’s disgusting. Depressing and disgusting. No one, none of these people have seriously discussed her point, heck, it looks like they barely bothered to read it, if they did at all.",
+ "markups": []
+ }, {
+ "name": "13f8",
+ "type": 1,
+ "text": "Marco starts getting really petty with her (no big shock) and Samantha finally starts pushing back:",
+ "markups": []
+ }, {
+ "name": "96c6",
+ "type": 6,
+ "text": "Glad to see you be the bigger person and ignore the mindset of so many developers not relating to you, good for you!",
+ "markups": []
+ }, {
+ "name": "5d3f",
+ "type": 1,
+ "text": "That of course, is what caused Marco to question the validity, if not the existence of her sources. (Funny how anonymous sources are totes okay when they convenience Marco et al, and work for oh, Apple, but when they are inconvenient? Ha! PROVIDE ME PROOF YOU INTEMPERATE WOMAN!)",
+ "markups": [{
+ "type": 2,
+ "start": 196,
+ "end": 201
+ }]
+ }, {
+ "name": "c07c",
+ "type": 1,
+ "text": "Make no mistake, there’s some sexist shit going on here. Every tweet I’ve quoted was authored by a guy.",
+ "markups": []
+ }, {
+ "name": "8b32",
+ "type": 1,
+ "text": "Of course, Marco has to play the “I’ve been around longer than you” card with this bon mot:",
+ "markups": []
+ }, {
+ "name": "de26",
+ "type": 6,
+ "text": "Yup, before you existed!",
+ "markups": []
+ }, {
+ "name": "a3bd",
+ "type": 1,
+ "text": "Really dude? I mean, I’m sorry about the penis, but really?",
+ "markups": []
+ }, {
+ "name": "1c51",
+ "type": 1,
+ "text": "Mind you, when the criticism isn’t just bizarrely stupid, Samantha reacts the way Marco and his ilk claim they would to (if they ever got any valid criticism. Which clearly is impossible):",
+ "markups": [{
+ "type": 2,
+ "start": 142,
+ "end": 147
+ }]
+ }, {
+ "name": "9848",
+ "type": 6,
+ "text": "Not to get into the middle of this, but “income” is not the term you’re looking for. “Revenue” is.",
+ "markups": []
+ }, {
+ "name": "f2a6",
+ "type": 6,
+ "text": "lol. Noted.",
+ "markups": []
+ }, {
+ "name": "aed9",
+ "type": 6,
+ "text": "And I wasn’t intending to be a dick, just a lot of people hear/say “income” when they intend “revenue”, and then discussion …",
+ "markups": []
+ }, {
+ "name": "f9d8",
+ "type": 6,
+ "text": "… gets derailed by a jedi handwave of “Expenses”. But outside of charitable donation, it is all directly related.",
+ "markups": []
+ }, {
+ "name": "f61c",
+ "type": 6,
+ "text": "haha. Thank you for the clarification.",
+ "markups": []
+ }, {
+ "name": "5dd9",
+ "type": 1,
+ "text": "Note to Marco and the other…whatever they are…that is how one reacts to that kind of criticism. With a bit of humor and self-deprecation. You should try it sometime. For real, not just in your heads or conversations in Irish Pubs in S.F.",
+ "markups": []
+ }, {
+ "name": "dc44",
+ "type": 1,
+ "text": "But now, the door has been cracked, and the cheap shots come out:",
+ "markups": []
+ }, {
+ "name": "0c94",
+ "type": 6,
+ "text": "@testflight_app: Don’t worry guys, we process @marcoarment’s apps in direct proportion to his megabucks earnings. #fairelephant",
+ "markups": [{
+ "type": 3,
+ "start": 46,
+ "end": 58,
+ "href": "https://twitter.com/marcoarment",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }, {
+ "type": 3,
+ "start": 114,
+ "end": 127,
+ "href": "https://twitter.com/hashtag/fairelephant?src=hash",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }]
+ }, {
+ "name": "343b",
+ "type": 1,
+ "text": "(Note: testflight_app is a parody account. Please do not mess with the actual testflight folks. They are still cool.)",
+ "markups": []
+ }, {
+ "name": "09bf",
+ "type": 1,
+ "text": "Or this…conversation:",
+ "markups": []
+ }, {
+ "name": "4d63",
+ "type": 4,
+ "text": "",
+ "markups": [],
+ "layout": 1,
+ "metadata": {
+ "id": "1*kbPh7V97eyRodSOw2-ALDw.png",
+ "originalWidth": 398,
+ "originalHeight": 542
+ }
+ }, {
+ "name": "f2a3",
+ "type": 1,
+ "text": "Good job guys. Good job. Defend the tribe. Attack the other. Frederico attempts to recover from his stunning display of demeaning douchery: ‏@viticci: @s_bielefeld I don’t know if it’s an Italian thing, but counting other people’s money is especially weird for me. IMO, bad move in the post.",
+ "markups": [{
+ "type": 3,
+ "start": 140,
+ "end": 149,
+ "href": "https://twitter.com/viticci",
+ "title": "",
+ "rel": "",
+ "name": "",
+ "anchorType": 0,
+ "creatorIds": [],
+ "userId": ""
+ }, {
+ "type": 3,
+ "start": 151,
+ "end": 163,
+ "href": "https://twitter.com/s_bielefeld",
+ "title": "",
+ "rel": "",
+ "name": "",
+ "anchorType": 0,
+ "creatorIds": [],
+ "userId": ""
+ }]
+ }, {
+ "name": "ae0c",
+ "type": 1,
+ "text": "Samantha is clearly sick of his crap: ‏@s_bielefeld: @viticci That’s what I’m referring to, the mistake of ever having mentioned it. So, now, Marco can ignore the bigger issue and go on living.",
+ "markups": [{
+ "type": 3,
+ "start": 38,
+ "end": 51,
+ "href": "https://twitter.com/s_bielefeld",
+ "title": "",
+ "rel": "",
+ "name": "",
+ "anchorType": 0,
+ "creatorIds": [],
+ "userId": ""
+ }, {
+ "type": 3,
+ "start": 53,
+ "end": 61,
+ "href": "https://twitter.com/viticci",
+ "title": "",
+ "rel": "",
+ "name": "",
+ "anchorType": 0,
+ "creatorIds": [],
+ "userId": ""
+ }]
+ }, {
+ "name": "2047",
+ "type": 1,
+ "text": "Good for her. There’s being patient and being roadkill.",
+ "markups": []
+ }, {
+ "name": "4139",
+ "type": 1,
+ "text": "Samantha does put the call out for her sources to maybe let her use their names:",
+ "markups": []
+ }, {
+ "name": "6626",
+ "type": 6,
+ "text": "From all of you I heard from earlier, anyone care to go on record?",
+ "markups": []
+ }, {
+ "name": "8a7d",
+ "type": 1,
+ "text": "My good friend, The Angry Drunk points out the obvious problem:",
+ "markups": []
+ }, {
+ "name": "68c9",
+ "type": 6,
+ "text": "Nobody’s going to go on record when they count on Marco’s friends for their PR.",
+ "markups": []
+ }, {
+ "name": "317d",
+ "type": 1,
+ "text": "This is true. Again, the sites that are Friends of Marco:",
+ "markups": []
+ }, {
+ "name": "9523",
+ "type": 1,
+ "text": "Daring Fireball",
+ "markups": []
+ }, {
+ "name": "dbc7",
+ "type": 1,
+ "text": "The Loop",
+ "markups": []
+ }, {
+ "name": "c706",
+ "type": 1,
+ "text": "SixColors",
+ "markups": []
+ }, {
+ "name": "0acb",
+ "type": 1,
+ "text": "iMore",
+ "markups": []
+ }, {
+ "name": "8c8c",
+ "type": 1,
+ "text": "MacStories",
+ "markups": []
+ }, {
+ "name": "643e",
+ "type": 1,
+ "text": "A few others, but I want this post to end one day.",
+ "markups": []
+ }, {
+ "name": "6b76",
+ "type": 1,
+ "text": "You piss that crew off, and given how petty rather a few of them have demonstrated they are, good luck on getting any kind of notice from them.",
+ "markups": []
+ }, {
+ "name": "f7d1",
+ "type": 1,
+ "text": "Of course, the idea this could happen is just craycray:",
+ "markups": []
+ }, {
+ "name": "de59",
+ "type": 6,
+ "text": "@KevinColeman .@Angry_Drunk @s_bielefeld @marcoarment Wow, you guys are veering right into crazy conspiracy theory territory. #JetFuelCantMeltSteelBeams",
+ "markups": [{
+ "type": 3,
+ "start": 0,
+ "end": 14,
+ "href": "https://twitter.com/KevinColeman",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }, {
+ "type": 3,
+ "start": 14,
+ "end": 27,
+ "href": "https://twitter.com/Angry_Drunk",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }, {
+ "type": 3,
+ "start": 28,
+ "end": 40,
+ "href": "https://twitter.com/s_bielefeld",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }, {
+ "type": 3,
+ "start": 41,
+ "end": 53,
+ "href": "https://twitter.com/marcoarment",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }, {
+ "type": 3,
+ "start": 126,
+ "end": 152,
+ "href": "https://twitter.com/hashtag/JetFuelCantMeltSteelBeams?src=hash",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }]
+ }, {
+ "name": "f01b",
+ "type": 1,
+ "text": "Yeah. Because a mature person like Marco would never do anything like that.",
+ "markups": []
+ }, {
+ "name": "7e30",
+ "type": 1,
+ "text": "Of course, the real point on this is starting to happen:",
+ "markups": []
+ }, {
+ "name": "5d93",
+ "type": 6,
+ "text": "you’re getting a lot of heat now but happy you are writing things that stir up the community. Hope you continue to be a voice!",
+ "markups": []
+ }, {
+ "name": "436b",
+ "type": 6,
+ "text": "I doubt I will.",
+ "markups": []
+ }, {
+ "name": "ac25",
+ "type": 1,
+ "text": "See, they’ve done their job. Mess with the bull, you get the horns. Maybe you should find another thing to write about, this isn’t a good place for you. Great job y’all.",
+ "markups": [{
+ "type": 2,
+ "start": 153,
+ "end": 158
+ }]
+ }, {
+ "name": "07ba",
+ "type": 1,
+ "text": "Some people aren’t even pretending. They’re just in full strawman mode:",
+ "markups": []
+ }, {
+ "name": "3d60",
+ "type": 6,
+ "text": "@timkeller: Unfair to begrudge a person for leveraging past success, especially when that success is earned. No ‘luck’ involved.",
+ "markups": [{
+ "type": 3,
+ "start": 0,
+ "end": 12,
+ "href": "https://twitter.com/timkeller",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }]
+ }, {
+ "name": "87f5",
+ "type": 6,
+ "text": "@s_bielefeld: @timkeller I plainly stated that I don’t hold his doing this against him. Way to twist words.",
+ "markups": [{
+ "type": 3,
+ "start": 0,
+ "end": 14,
+ "href": "https://twitter.com/s_bielefeld",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }, {
+ "type": 3,
+ "start": 14,
+ "end": 24,
+ "href": "https://twitter.com/timkeller",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }]
+ }, {
+ "name": "3720",
+ "type": 1,
+ "text": "I think she’s earned her anger at this point.",
+ "markups": []
+ }, {
+ "name": "7341",
+ "type": 1,
+ "text": "Don’t worry, Marco knows what the real problem is: most devs just suck —",
+ "markups": []
+ }, {
+ "name": "babe",
+ "type": 4,
+ "text": "",
+ "markups": [],
+ "layout": 1,
+ "metadata": {
+ "id": "1*Fpb2Bvdx7Q-688vdm-NdkQ.png",
+ "originalWidth": 694,
+ "originalHeight": 771
+ }
+ }, {
+ "name": "503d",
+ "type": 1,
+ "text": "I have a saying that applies in this case: don’t place your head so far up your nethers that you go full Klein Bottle. Marco has gone full Klein Bottle. (To be correct, he went FKB some years ago.)",
+ "markups": []
+ }, {
+ "name": "b8c0",
+ "type": 1,
+ "text": "There are some bright spots. My favorite is when Building Twenty points out the real elephant in the room:",
+ "markups": [{
+ "type": 2,
+ "start": 80,
+ "end": 84
+ }]
+ }, {
+ "name": "36f4",
+ "type": 6,
+ "text": "@BuildingTwenty: Both @s_bielefeld &amp; I wrote similar critiques of @marcoarment’s pricing model yet the Internet pilloried only the woman. Who’d have guessed?",
+ "markups": [{
+ "type": 3,
+ "start": 0,
+ "end": 15,
+ "href": "https://twitter.com/BuildingTwenty",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }, {
+ "type": 3,
+ "start": 22,
+ "end": 34,
+ "href": "https://twitter.com/s_bielefeld",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }, {
+ "type": 3,
+ "start": 66,
+ "end": 78,
+ "href": "https://twitter.com/marcoarment",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }]
+ }, {
+ "name": "06b9",
+ "type": 1,
+ "text": "Yup.",
+ "markups": []
+ }, {
+ "name": "eff9",
+ "type": 1,
+ "text": "Another bright spot are these comments from Ian Betteridge, who has been doing this even longer than Marco:",
+ "markups": [{
+ "type": 2,
+ "start": 84,
+ "end": 106
+ }]
+ }, {
+ "name": "18f1",
+ "type": 6,
+ "text": "You know, any writer who has never made a single factual error in a piece hasn’t ever written anything worth reading.",
+ "markups": []
+ }, {
+ "name": "9776",
+ "type": 6,
+ "text": "I learned my job with the support of people who helped me. Had I suffered an Internet pile on for every error I wouldn’t have bothered.",
+ "markups": []
+ }, {
+ "name": "8d44",
+ "type": 1,
+ "text": "To which Samantha understandably replies:",
+ "markups": []
+ }, {
+ "name": "7147",
+ "type": 6,
+ "text": "and it’s honestly something I’m contemplating right now, whether to continue…",
+ "markups": []
+ }, {
+ "name": "e0cd",
+ "type": 1,
+ "text": "Gee, I can’t imagine why. Why with comments like this from Chris Breen that completely misrepresent Samantha’s point, (who until today, I would have absolutely defended as being better than this, something I am genuinely saddened to be wrong about), why wouldn’t she want to continue doing this?",
+ "markups": []
+ }, {
+ "name": "a379",
+ "type": 6,
+ "text": "If I have this right, some people are outraged that a creator has decided to give away his work.",
+ "markups": []
+ }, {
+ "name": "f026",
+ "type": 1,
+ "text": "No Chris, you don’t have this right. But hey, who has time to find out the real issue and read an article. I’m sure your friends told you everything you need to know.",
+ "markups": []
+ }, {
+ "name": "e1c2",
+ "type": 1,
+ "text": "Noted Feminist Glenn Fleishman gets a piece of the action too:",
+ "markups": []
+ }, {
+ "name": "067c",
+ "type": 4,
+ "text": "",
+ "markups": [],
+ "layout": 1,
+ "metadata": {
+ "id": "1*lvOySry5gHHJfGU_bQXrzA.png",
+ "originalWidth": 308,
+ "originalHeight": 269
+ }
+ }, {
+ "name": "4df8",
+ "type": 1,
+ "text": "I’m not actually surprised here. I watched Fleishman berate a friend of mine who has been an engineer for…heck, waaaaay too long on major software products in the most condescending way because she tried to point out that as a very technical woman, “The Magazine” literally had nothing to say to her and maybe he should fix that. “Impertinent” was I believe what he called her, but I may have the specific word wrong. Not the attitude mind you. Great Feminists like Glenn do not like uppity women criticizing Great Feminists who are their Great Allies.",
+ "markups": [{
+ "type": 2,
+ "start": 227,
+ "end": 231
+ }]
+ }, {
+ "name": "bf45",
+ "type": 1,
+ "text": "Great Feminists are often tools.",
+ "markups": []
+ }, {
+ "name": "45bb",
+ "type": 1,
+ "text": "Luckily, I hope, the people who get Samantha’s point also started chiming in (and you get 100% of the women commenting here that I’ve seen):",
+ "markups": []
+ }, {
+ "name": "c053",
+ "type": 6,
+ "text": "I don’t think he’s wrong for doing it, he just discusses it as if the market’s a level playing field — it isn’t",
+ "markups": []
+ }, {
+ "name": "7b5e",
+ "type": 6,
+ "text": "This is a great article with lots of great points about the sustainability of iOS development. Thank you for publishing it.",
+ "markups": []
+ }, {
+ "name": "a321",
+ "type": 6,
+ "text": "Regardless of the numbers and your view of MA, fair points here about confirmation bias in app marketing feasibility http://samanthabielefeld.com/the-elephant-in-the-room …",
+ "markups": [{
+ "type": 3,
+ "start": 117,
+ "end": 172,
+ "href": "http://t.co/u79ZLsnhdM",
+ "title": "http://samanthabielefeld.com/the-elephant-in-the-room",
+ "rel": "nofollow",
+ "anchorType": 0
+ }]
+ }, {
+ "name": "76fe",
+ "type": 6,
+ "text": "thank you for posting this, it covers a lot of things people don’t like to talk about.",
+ "markups": []
+ }, {
+ "name": "bf90",
+ "type": 6,
+ "text": "I’m sure you have caught untold amounts of flak over posting this because Marco is blind to his privilege as a developer.",
+ "markups": []
+ }, {
+ "name": "0f66",
+ "type": 6,
+ "text": "Catching up on the debate, and agreeing with Harry’s remark. (Enjoyed your article, Samantha, and ‘got’ your point.)",
+ "markups": []
+ }, {
+ "name": "6134",
+ "type": 1,
+ "text": "I would like to say I’m surprised at the reaction to Samantha’s article, but I’m not. In spite of his loud declarations of support for The Big Lie, Marco Arment is as bad at any form of criticism that he hasn’t already approved as a very insecure tween. An example from 2011: http://www.businessinsider.com/marco-arment-2011-9",
+ "markups": [{
+ "type": 3,
+ "start": 276,
+ "end": 326,
+ "href": "http://www.businessinsider.com/marco-arment-2011-9",
+ "title": "",
+ "rel": "nofollow",
+ "anchorType": 0
+ }]
+ }, {
+ "name": "ba3c",
+ "type": 1,
+ "text": "Marco is great with criticism as long as it never actually criticizes him. If it does, be prepared a flood of petty, petulant whining that a room full of bored preschoolers on a hot day would be hard-pressed to match.",
+ "markups": []
+ }, {
+ "name": "a5a0",
+ "type": 1,
+ "text": "Today has been…well, it sucks. It sucks because someone doing what all the Arments of the world claim to want was naive enough to believe what they were told, and found out the hard way just how big a lie The Big Lie is, and how vicious people are when you’re silly enough to believe anything they say about criticism.",
+ "markups": []
+ }, {
+ "name": "2a25",
+ "type": 1,
+ "text": "And note again, every single condescending crack, misrepresentation, and strawman had an exclusively male source. Most of them have, at one point or another, loudly trumpted themselves as Feminist Allies, as a friend to women struggling with the sexism and misogyny in tech. Congratulations y’all on being just as bad as the people you claim to oppose.",
+ "markups": []
+ }, {
+ "name": "a47a",
+ "type": 1,
+ "text": "Samantha has handled this better than anyone else could have. My respect for her as a person and a writer is off the charts. If she choses to walk away from blogging in the Apple space, believe me I understand. As bad as today was for her, I’ve seen worse. Much worse.",
+ "markups": [{
+ "type": 2,
+ "start": 186,
+ "end": 196
+ }]
+ }, {
+ "name": "aa8e",
+ "type": 1,
+ "text": "But I hope she doesn’t. I hope she stays, because she is Doing This Right, and in a corner of the internet that has become naught but an endless circle jerk, a cliquish collection, a churlish, childish cohort interested not in writing or the truth, but in making sure The Right People are elevated, and The Others put down, she is someone worth reading and listening to. The number people who owe her apologies goes around the block, and I don’t think she’ll ever see a one. I’m sure as heck not apologizing for them, I’ll not make their lives easier in the least.",
+ "markups": []
+ }, {
+ "name": "34c5",
+ "type": 1,
+ "text": "All of you, all. of. you…Marco, Breen, Snell, Vittici, had a chance to live by your words. You were faced with reasoned, polite, respectful criticism and instead of what you should have done, you all dropped trou and sprayed an epic diarrheal discharge all over someone who had done nothing to deserve it. Me, I earned most of my aggro, Samantha did not earn any of the idiocy I’ve seen today. I hope you’re all proud of yourselves. Someone should be, it won’t be me. Ever.",
+ "markups": []
+ }, {
+ "name": "9710",
+ "type": 1,
+ "text": "So I hope she stays, but if she goes, I understand. For what it’s worth, I don’t think she’s wrong either way.",
+ "markups": []
+ }],
+ "sections": [{
+ "name": "55ff",
+ "startIndex": 0
+ }, {
+ "name": "c360",
+ "startIndex": 8
+ }, {
+ "name": "2ba2",
+ "startIndex": 17
+ }, {
+ "name": "c883",
+ "startIndex": 176
+ }, {
+ "name": "8ab2",
+ "startIndex": 183
+ }]
+ },
+ "postDisplay": {
+ "coverless": true
+ }
+ },
+ "virtuals": {
+ "allowNotes": true,
+ "previewImage": {
+ "imageId": "1*kbPh7V97eyRodSOw2-ALDw.png",
+ "filter": "",
+ "backgroundSize": "",
+ "originalWidth": 398,
+ "originalHeight": 542,
+ "strategy": "resample",
+ "height": 0,
+ "width": 0
+ },
+ "wordCount": 4605,
+ "imageCount": 3,
+ "readingTime": 17.92735849056604,
+ "subtitle": "How to get shanked doing what people say they want",
+ "usersBySocialRecommends": [],
+ "recommends": 168,
+ "socialRecommends": [],
+ "isBookmarked": false,
+ "tags": [],
+ "socialRecommendsCount": 0,
+ "responsesCreatedCount": 15,
+ "links": {
+ "entries": [{
+ "url": "https://medium.com/@marcoarment/pragmatic-app-pricing-a79fc07218f3",
+ "alts": [{
+ "type": 2,
+ "url": "medium://p/a79fc07218f3"
+ }, {
+ "type": 3,
+ "url": "medium://p/a79fc07218f3"
+ }]
+ }],
+ "version": "0.3",
+ "generatedAt": 1472016079116
+ },
+ "isLockedPreviewOnly": false,
+ "takeoverId": "",
+ "metaDescription": "",
+ "totalClapCount": 0
+ },
+ "coverless": true,
+ "slug": "samantha-and-the-great-big-lie",
+ "translationSourcePostId": "",
+ "translationSourceCreatorId": "",
+ "isApprovedTranslation": false,
+ "inResponseToPostId": "",
+ "inResponseToRemovedAt": 0,
+ "isTitleSynthesized": true,
+ "allowResponses": true,
+ "importedUrl": "",
+ "importedPublishedAt": 0,
+ "visibility": 0,
+ "uniqueSlug": "samantha-and-the-great-big-lie-d146a92473a1",
+ "previewContent": {
+ "bodyModel": {
+ "paragraphs": [{
+ "name": "b34c",
+ "type": 3,
+ "text": "Samantha and The Great Big Lie",
+ "markups": [],
+ "alignment": 1
+ }, {
+ "name": "97e7",
+ "type": 1,
+ "text": "How to get shanked doing what people say they want",
+ "markups": [],
+ "alignment": 1
+ }, {
+ "name": "df70",
+ "type": 6,
+ "text": "don’t preach to me\nMr. integrity",
+ "markups": [],
+ "alignment": 1
+ }, {
+ "name": "c979",
+ "type": 1,
+ "text": "(EDIT: removed the link to Samantha’s post, because the arments and the grubers and the rest of The Deck Clique got what they wanted: a non…",
+ "markups": [],
+ "alignment": 1
+ }],
+ "sections": [{
+ "startIndex": 0
+ }]
+ },
+ "isFullContent": false
+ },
+ "license": 0,
+ "inResponseToMediaResourceId": "",
+ "canonicalUrl": "https://medium.com/@johncwelch/samantha-and-the-great-big-lie-d146a92473a1",
+ "approvedHomeCollectionId": "",
+ "newsletterId": "",
+ "webCanonicalUrl": "https://medium.com/@johncwelch/samantha-and-the-great-big-lie-d146a92473a1",
+ "mediumUrl": "https://medium.com/@johncwelch/samantha-and-the-great-big-lie-d146a92473a1",
+ "migrationId": "",
+ "notifyFollowers": true,
+ "notifyTwitter": false,
+ "isSponsored": false,
+ "isRequestToPubDisabled": false,
+ "notifyFacebook": false,
+ "responseHiddenOnParentPostAt": 0,
+ "isSeries": false,
+ "isSubscriptionLocked": false,
+ "type": "Post"
+ },
+ "mentionedUsers": [],
+ "collaborators": [],
+ "membershipPlans": [],
+ "collectionUserRelations": [],
+ "mode": null,
+ "references": {
+ "User": {
+ "77a507c5ad19": {
+ "userId": "77a507c5ad19",
+ "name": "John C. Welch",
+ "username": "johncwelch",
+ "createdAt": 1408545892232,
+ "lastPostCreatedAt": 1486930695056,
+ "imageId": "0*qPHQu8WqsC6cV_ud.jpg",
+ "backgroundImageId": "1*nYm-VLVTCtzpby_1jFUjRw.jpeg",
+ "bio": "",
+ "twitterScreenName": "",
+ "socialStats": {
+ "userId": "77a507c5ad19",
+ "usersFollowedCount": 63,
+ "usersFollowedByCount": 230,
+ "type": "SocialStats"
+ },
+ "social": {
+ "userId": "lo_4c2ff54882b4",
+ "targetUserId": "77a507c5ad19",
+ "type": "Social"
+ },
+ "facebookAccountId": "10152302268220732",
+ "allowNotes": 1,
+ "type": "User"
+ }
+ },
+ "Social": {
+ "77a507c5ad19": {
+ "userId": "lo_4c2ff54882b4",
+ "targetUserId": "77a507c5ad19",
+ "type": "Social"
+ }
+ },
+ "SocialStats": {
+ "77a507c5ad19": {
+ "userId": "77a507c5ad19",
+ "usersFollowedCount": 63,
+ "usersFollowedByCount": 230,
+ "type": "SocialStats"
+ }
+ }
+ }
+ })
+ // ]]&gt;
+ </script>
+</body>
+
+</html>===========^CCrash Annotation GraphicsCriticalError: |[C0][GFX1-]: Receive IPC close with reason=AbnormalShutdown (t=7.53758) [GFX1-]: Receive IPC close with reason=AbnormalShutdown localhost:mozilla-central itoyxd$ localhost:mozilla-central itoyxd$ localhost:mozilla-central itoyxd$ ./mach run 0:00.20 /Users/itoyxd/evan/dev/mozilla/mozilla-central/obj-firefox/dist/Nightly.app/Contents/MacOS/firefox -no-remote -foreground -profile /Users/itoyxd/evan/dev/mozilla/mozilla-central/obj-firefox/tmp/scratch_user 2017-02-17 16:57:43.743 plugin-container[11969:394160] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x943f, name = 'com.apple.tsm.portname' See /usr/include/servers/bootstrap_defs.h for the error codes. 2017-02-17 16:57:43.743 plugin-container[11969:394160] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x4907, name = 'com.apple.CFPasteboardClient' See /usr/include/servers/bootstrap_defs.h for the error codes. 2017-02-17 16:57:43.743 plugin-container[11969:394160] void __CFPasteboardSetup() : Failed to allocate communication port for com.apple.CFPasteboardClient; this is likely due to sandbox restrictions 2017-02-17 16:57:50.234 plugin-container[11972:394329] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x953f, name = 'com.apple.tsm.portname' See /usr/include/servers/bootstrap_defs.h for the error codes. 2017-02-17 16:57:50.235 plugin-container[11972:394329] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x4b0b, name = 'com.apple.CFPasteboardClient' See /usr/include/servers/bootstrap_defs.h for the error codes. 2017-02-17 16:57:50.235 plugin-container[11972:394329] void __CFPasteboardSetup() : Failed to allocate communication port for com.apple.CFPasteboardClient; this is likely due to sandbox restrictions ===========
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:cc="http://creativecommons.org/ns#">
+
+<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# medium-com: http://ogp.me/ns/fb/medium-com#">
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <title>Samantha and The Great Big Lie – Medium</title>
+ <link rel="canonical" href="https://medium.com/@johncwelch/samantha-and-the-great-big-lie-d146a92473a1" />
+ <meta name="title" content="Samantha and The Great Big Lie" />
+ <meta name="referrer" content="always" />
+ <meta name="description" content="(EDIT: removed the link to Samantha’s post, because the arments and the grubers and the rest of The Deck Clique got what they wanted: a non-proper person driven off the internet lightly capped with a…" />
+ <meta property="og:title" content="Samantha and The Great Big Lie" />
+ <meta property="og:url" content="https://medium.com/@johncwelch/samantha-and-the-great-big-lie-d146a92473a1#.h9kzgon9m" />
+ <meta property="og:image" content="https://cdn-images-1.medium.com/max/1200/1*kbPh7V97eyRodSOw2-ALDw.png" />
+ <meta property="fb:app_id" content="542599432471018" />
+ <meta property="og:description" content="How to get shanked doing what people say they want" />
+ <meta name="twitter:description" content="How to get shanked doing what people say they want" />
+ <meta name="twitter:image:src" content="https://cdn-images-1.medium.com/max/1200/1*kbPh7V97eyRodSOw2-ALDw.png" />
+ <link rel="publisher" href="https://plus.google.com/103654360130207659246" />
+ <link rel="author" href="https://medium.com/@johncwelch" />
+ <meta name="author" content="John C. Welch" />
+ <meta property="og:type" content="article" />
+ <meta name="twitter:card" content="summary_large_image" />
+ <meta property="article:publisher" content="https://www.facebook.com/medium" />
+ <meta property="article:author" content="John C. Welch" />
+ <meta property="fb:smart_publish:robots" content="noauto" />
+ <meta name="robots" content="index, follow" />
+ <meta property="article:published_time" content="2015-10-15T02:19:15.607Z" />
+ <meta name="twitter:site" content="@Medium" />
+ <meta property="og:site_name" content="Medium" />
+ <meta name="twitter:label1" value="Reading time" />
+ <meta name="twitter:data1" value="18 min read" />
+ <script type="text/javascript" async="" src="https://ssl.google-analytics.com/ga.js"></script>
+ <script type="application/ld+json">
+ {
+ "@context": "http://schema.org",
+ "@type": "NewsArticle",
+ "image": {
+ "@type": "ImageObject",
+ "width": 398,
+ "height": 542,
+ "url": "https://cdn-images-1.medium.com/max/796/1*kbPh7V97eyRodSOw2-ALDw.png"
+ },
+ "datePublished": "2015-10-15T02:19:15.607Z",
+ "dateModified": "2015-12-11T14:28:34.438Z",
+ "headline": "Samantha and The Great Big Lie",
+ "name": "Samantha and The Great Big Lie",
+ "keywords": [],
+ "author": {
+ "@type": "Person",
+ "name": "John C. Welch",
+ "url": "https://medium.com/@johncwelch"
+ },
+ "creator": ["John C. Welch"],
+ "mainEntityOfPage": "https://medium.com/@johncwelch/samantha-and-the-great-big-lie-d146a92473a1"
+ }
+ </script>
+ <meta name="twitter:app:name:iphone" content="Medium" />
+ <meta name="twitter:app:id:iphone" content="828256236" />
+ <meta name="twitter:app:url:iphone" content="medium://p/d146a92473a1" />
+ <meta property="al:ios:app_name" content="Medium" />
+ <meta property="al:ios:app_store_id" content="828256236" />
+ <meta property="al:android:package" content="com.medium.reader" />
+ <meta property="al:android:app_name" content="Medium" />
+ <meta property="al:ios:url" content="medium://p/d146a92473a1" />
+ <meta property="al:android:url" content="medium://p/d146a92473a1" />
+ <meta property="al:web:url" content="https://medium.com/@johncwelch/samantha-and-the-great-big-lie-d146a92473a1#.h9kzgon9m" />
+ <link rel="search" type="application/opensearchdescription+xml" title="Medium" href="/osd.xml" />
+ <link rel="alternate" href="android-app://com.medium.reader/https/medium.com/p/d146a92473a1" />
+ <meta name="theme-color" content="#000000" />
+ <link rel="stylesheet" type="text/css" href="https://cdn-static-1.medium.com/_/fp/css/fonts-latin-base.141WxxXgxGxNcfeza73H7Q.css" />
+ <link rel="stylesheet" href="https://cdn-static-1.medium.com/_/fp/css/main-base.FCIkh6GVUOig4-7oFthH1Q.css" />
+ <script>
+ if (window.top !== window.self) window.top.location = window.self.location.href;
+ var OB_startTime = new Date().getTime();
+ var OB_loadErrors = [];
+
+ function _onerror(e) {
+ OB_loadErrors.push(e)
+ };
+ if (document.addEventListener) document.addEventListener("error", _onerror, true);
+ else if (document.attachEvent) document.attachEvent("onerror", _onerror);
+
+ function _asyncScript(u) {
+ var d = document,
+ f = d.getElementsByTagName("script")[0],
+ s = d.createElement("script");
+ s.type = "text/javascript";
+ s.async = true;
+ s.src = u;
+ f.parentNode.insertBefore(s, f);
+ }
+
+ function _asyncStyles(u) {
+ var d = document,
+ f = d.getElementsByTagName("script")[0],
+ s = d.createElement("link");
+ s.rel = "stylesheet";
+ s.href = u;
+ f.parentNode.insertBefore(s, f);
+ return s
+ }
+ var _gaq = _gaq || [];
+ _gaq.push(["_setAccount", "UA-24232453-2"]);
+ _gaq.push(["_setDomainName", window.location.hostname]);
+ _gaq.push(["_setAllowLinker", true]);
+ _gaq.push(["_trackPageview"]);
+ _asyncScript(("https:" == document.location.protocol ? "https://ssl" : "http://www") + ".google-analytics.com/ga.js");
+ (new Image()).src = "/_/stat?event=pixel.load&amp;origin=" + encodeURIComponent(location.origin);
+ </script>
+ <!--[if lt IE 9]><script charset="UTF-8" src="https://cdn-static-1.medium.com/_/fp/js/shiv.RI2ePTZ5gFmMgLzG5bEVAA.js"></script><![endif]-->
+ <link rel="icon" href="https://cdn-static-1.medium.com/_/fp/icons/favicon-medium.TAS6uQ-Y7kcKgi0xjcYHXw.ico" class="js-favicon" />
+ <link rel="apple-touch-icon" sizes="152x152" href="https://cdn-images-1.medium.com/fit/c/304/304/1*W0nmth_X8nFKjn6BZ388UQ.png" />
+ <link rel="apple-touch-icon" sizes="120x120" href="https://cdn-images-1.medium.com/fit/c/240/240/1*W0nmth_X8nFKjn6BZ388UQ.png" />
+ <link rel="apple-touch-icon" sizes="76x76" href="https://cdn-images-1.medium.com/fit/c/152/152/1*W0nmth_X8nFKjn6BZ388UQ.png" />
+ <link rel="apple-touch-icon" sizes="60x60" href="https://cdn-images-1.medium.com/fit/c/120/120/1*W0nmth_X8nFKjn6BZ388UQ.png" />
+ <link rel="mask-icon" href="https://cdn-static-1.medium.com/_/fp/icons/favicon.KjTfUJo7yJH_fCoUzzH3cg.svg" color="#171717" />
+</head>
+
+<body itemscope="" class="postShowScreen browser-firefox os-mac is-withMagicUnderlines is-js" data-action-scope="_actionscope_0">
+ <script>
+ document.body.className = document.body.className.replace(/(^|\s)is-noJs(\s|$)/, "$1is-js$2")
+ </script>
+ <div class="site-main surface-container" id="container">
+ <div class="butterBar butterBar--error" data-action-scope="_actionscope_1"></div>
+ <div class="surface" id="_obv.shell._surface_1487321871814" style="display: block; visibility: visible;">
+ <div class="screenContent surface-content is-supplementalPostContentLoaded" data-used="true" data-action-scope="_actionscope_2"><canvas class="canvas-renderer" width="1280" height="710"></canvas>
+ <div class="container u-maxWidth740 u-xs-margin0 notesPositionContainer js-notesPositionContainer">
+ <div class="notesMarkers" data-action-scope="_actionscope_4">
+ <div class="paragraphControls js-paragraphControl js-paragraphControl-69dc u-noUserSelect is-visible" style="top: 11448px;"><span class="paragraphControls-itemText"><button class="button button--chromeless" data-action="select-anchor" data-action-value="69dc">Top highlight</button></span></div>
+ <div class="paragraphControls js-paragraphControl js-paragraphControl-aa8e u-noUserSelect is-visible" style="top: 21504px;">
+ <div class="notesMarker u-noUserSelect" data-action="select-anchor" data-action-value="aa8e"><span class="svgIcon svgIcon--asteriskFilled svgIcon--19px"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="19" height="19" viewBox="0 0 19 19"><path d="M14.78 8.07a8.681 8.681 0 0 0-.427-1.383.478.478 0 0 0-.584-.27l-3.12.77V4.034c0-.247-.19-.48-.43-.5a7.23 7.23 0 0 0-1.38 0c-.24.02-.43.253-.43.5V7.19L5.3 6.415a.48.48 0 0 0-.583.27c-.18.448-.324.91-.426 1.383-.05.24.1.5.32.58l3.06.754-1.98 2.956c-.14.196-.13.502.04.67.34.332.7.632 1.09.896.2.136.49.077.63-.117l2.09-3.114 2.09 3.112c.15.193.43.252.63.116.39-.26.75-.56 1.09-.89.17-.17.19-.47.04-.67L11.4 9.41l3.06-.76a.517.517 0 0 0 .32-.58" fill-rule="evenodd"/></svg></span></div><span class="paragraphControls-itemText"><button class="button button--chromeless" data-action="select-anchor" data-action-value="aa8e"></button></span></div>
+ </div>
+ </div>
+ <div class="metabar u-clearfix js-metabar is-hiddenWhenMinimized">
+ <div class="metabar-inner u-marginAuto u-maxWidth1000 u-paddingLeft20 u-paddingRight20 js-metabarMiddle">
+ <div class="metabar-block metabar-block--left u-floatLeft u-height65 u-xs-height56"><a href="https://medium.com/" class="siteNav-logo" data-log-event="home"><span class="svgIcon svgIcon--logoNew svgIcon--45px is-flushLeft"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="45" height="45" viewBox="-17 18 45 45" data-multipart="true"><path d="M11.525 28.078c-.472-.225-.858.002-.858.506v20.044l8.616 4.113c.948.46 1.717.14 1.717-.7v-19.3a.22.22 0 0 0-.124-.19l-9.35-4.46v-.01z"/><path d="M.333 43.696l9.83-15.247c.278-.43.89-.6 1.36-.38l9.364 4.47c.06.03.082.1.047.15L10.666 48.63.333 43.698v-.002z"/><path d="M-8.57 28.35c-.786-.375-1.053-.096-.592.62L.333 43.696l10.333 4.932L.356 32.635a.156.156 0 0 0-.06-.054l-8.866-4.23z"/><path d="M.333 52.033c0 .84-.643 1.22-1.43.844l-8.045-3.84c-.472-.224-.858-.82-.858-1.325V28.89c0-.672.515-.976 1.145-.675l9.133 4.36a.092.092 0 0 1 .055.084v19.37z"/></svg></span><span class="u-textScreenReader">Homepage</span></a></div>
+ <div class="metabar-block u-floatRight u-xs-absolute u-xs-textAlignRight u-xs-right0 u-xs-marginRight20 u-height65 u-xs-height56">
+ <div class="buttonSet"><a class="button button--primary button--chromeless u-accentColor--buttonNormal is-inSiteNavBar u-lineHeight30 u-height32" href="https://medium.com/m/signin?redirect=https%3A%2F%2Fmedium.com%2F%40johncwelch%2Fsamantha-and-the-great-big-lie-d146a92473a1" data-action="sign-in-prompt" data-redirect="https://medium.com/@johncwelch/samantha-and-the-great-big-lie-d146a92473a1" data-action-source="nav_signup">Sign in / Sign up</a></div>
+ </div>
+ </div>
+ </div>
+ <div class="metabar metabar--spacer js-metabarSpacer u-height65 u-xs-height56"></div>
+ <main role="main">
+ <article class=" u-sizeViewHeightMin100 u-overflowHidden postArticle postArticle--full u-marginBottom40" data-scroll="native" lang="en">
+ <header class="container u-maxWidth740">
+ <div class="postMetaHeader u-paddingBottom10 row">
+ <div class="col u-size12of12 js-postMetaLockup">
+ <div class="postMetaLockup postMetaLockup--authorWithBio u-flex js-postMetaLockup">
+ <div class="u-flex0">
+ <a class="link avatar u-baseColor--link" href="https://medium.com/@johncwelch?source=post_header_lockup" data-action="show-user-card" data-action-source="post_header_lockup" data-action-value="77a507c5ad19" data-action-type="hover" data-user-id="77a507c5ad19" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/0*qPHQu8WqsC6cV_ud.jpg" class="avatar-image avatar-image--smaller" alt="Go to the profile of John C. Welch" /></a>
+ </div>
+ <div class="u-flex1 u-paddingLeft15 u-overflowHidden"><a class="link link link--darken link--darker u-baseColor--link" href="https://medium.com/@johncwelch?source=post_header_lockup" data-action="show-user-card" data-action-source="post_header_lockup" data-action-value="77a507c5ad19" data-action-type="hover" data-user-id="77a507c5ad19" dir="auto">John C. Welch</a><span class="followState js-followState buttonSet-inner" data-user-id="77a507c5ad19"><button class="button u-paddingLeft10 u-paddingRight10 u-height19 u-lineHeight13 u-verticalAlignMiddle u-fontSizeSmallest u-uiTextMedium u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton u-marginLeft10 u-marginTopNegative2 u-xs-hide" data-action="sign-in-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-action-source="post_header_lockup"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary u-paddingLeft10 u-paddingRight10 u-height19 u-lineHeight13 u-verticalAlignMiddle u-fontSizeSmallest u-uiTextMedium u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton u-marginLeft10 u-marginTopNegative2 u-xs-hide" data-action="sign-in-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/77a507c5ad19" data-action-source="post_header_lockup_follow"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span>
+ <div class="postMetaInline js-testPostMetaInlineSupplemental"><time datetime="2015-10-15T02:19:15.607Z">Oct 15, 2015</time><span class="middotDivider u-fontSizeSmallest"></span><span class="readingTime" title="18 min read"></span></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </header>
+ <div class="postArticle-content js-postField js-notesSource js-trackedPost" data-post-id="d146a92473a1" data-source="post_page" data-tracking-context="postPage" data-scroll="native">
+ <section name="55ff" class="section section--body section--first">
+ <div class="section-divider">
+ <hr class="section-divider" />
+ </div>
+ <div class="section-content">
+ <div class="section-inner sectionLayout--insetColumn">
+ <h1 name="b34c" id="b34c" class="graf graf--h3 graf--leading graf--title">Samantha and The Great Big Lie</h1>
+ <p name="97e7" id="97e7" class="graf graf--p graf-after--h3">How to get shanked doing what people say they want</p>
+ <blockquote name="df70" id="df70" class="graf graf--blockquote graf-after--p">don’t preach to me<br />Mr. integrity</blockquote>
+ <p name="c979" id="c979" class="graf graf--p graf-after--blockquote">(EDIT: removed the link to Samantha’s post, because the arments and the grubers and the rest of The Deck Clique got what they wanted: a non-proper person driven off the internet lightly capped with a dusting of transphobia along the way, all totally okay because the ends justify the means, and it’s okay when “good” people do it.)</p>
+ <p name="342d" id="342d" class="graf graf--p graf-after--p">First, I need to say something about this article: the reason I’m writing it infuriates me. Worse than installing CS 3 or Acrobat 7 ever did, and the former inspired comparisons to fecophile porn. I’m actually too mad to cuss. Well, not completely, but in this case, I don’t think the people I’m mad at are worth the creativity I try to put into profanity. This is about a brownfield of hypocrisy and viciously deliberate mischaracterization that “shame” cannot even come close to the shame those behind it should feel.</p>
+ <p name="2e61" id="2e61" class="graf graf--p graf-after--p">Now, read this post by Samantha Bielefeld: The Elephant in the Room. First, it is a well-written critical piece that raises a few points in a calm, rational, nonconfrontational fashion, exactly the kind of things the pushers of The Great Big Lie say we need more of, as opposed to the screaming that is the norm in such cases.</p>
+ <p name="cd31" id="cd31" class="graf graf--p graf-after--p">…sorry, I should explain “The Great Big Lie”. There are several, but in this case, our <em class="markup--em markup--p-em">specific</em> instance of “The Great Big Lie” is about criticism. Over and over, you hear from the very people I am not going to be nice to in this that we need “better” criticsm. Instead of rage and anger, volume and vitriol, we need in-depth rational criticism, that isn’t personal or ad hominem. That it should focus on points, not people.</p>
+ <p name="ae07" id="ae07" class="graf graf--p graf-after--p graf--trailing">That, readers, is “The Big Lie”. It is a lie so big that if one ponders the reality of it, as I am going to, one wonders why anyone would believe it. It is a lie and it is one we should stop telling.</p>
+ </div>
+ </div>
+ </section>
+ <section name="c360" class="section section--body">
+ <div class="section-divider">
+ <hr class="section-divider" />
+ </div>
+ <div class="section-content">
+ <div class="section-inner sectionLayout--insetColumn">
+ <p name="a02f" id="a02f" class="graf graf--p graf--leading">Samantha’s points (I assume you read it, for you are smart people who know the importance of such things) are fairly clear:</p>
+ <ol class="postList">
+ <li name="9213" id="9213" class="graf graf--li graf-after--p">With the release of Overcast 2.0, a product Samantha actually likes, Marco Arment moved to a <a href="http://www.marco.org/2015/10/09/overcast2" data-href="http://www.marco.org/2015/10/09/overcast2" class="markup--anchor markup--li-anchor" rel="nofollow noopener" target="_blank">patronage model</a> that will probably be successful for him.</li>
+ <li name="dfa5" id="dfa5" class="graf graf--li graf-after--li">Arment’s insistence that “<a href="https://medium.com/@marcoarment/pragmatic-app-pricing-a79fc07218f3" data-href="https://medium.com/@marcoarment/pragmatic-app-pricing-a79fc07218f3" class="markup--anchor markup--li-anchor" target="_blank">anyone can do this</a>” while technically true, (anyone can in fact, implement this pricing model), also implies that “anyone” can have the kind of success that a developer with Marco’s history, financial status, and deep ties to the Apple News Web is expected to have. This is silly.</li>
+ <li name="e55d" id="e55d" class="graf graf--li graf-after--li">Marco Arment occupies a fairly unique position in the Apple universe, (gained by hard work and no small talent), and because of that, benefits from a set of privileges that a new developer or even one that has been around for a long time, but isn’t, well, <em class="markup--em markup--li-em">Marco</em>, not only don’t have, but have little chance of attaining anytime soon.</li>
+ <li name="35fb" id="35fb" class="graf graf--li graf-after--li">Marco has earned his success and is entitled to the benefits and privileges it brings, but he seems rather blind to all of that, and seems to still imagine himself as “two guys in a garage”. This is just not correct.</li>
+ <li name="38e2" id="38e2" class="graf graf--li graf-after--li">In addition, the benefits and privileges of the above ensure that by releasing Overcast 2 as a free app, with patronage pricing, he has, if not gutted, severely hurt the ability of folks actually selling their apps for an up-front price of not free to continue doing so. This has the effect of accelerating the “race to the bottom” in the podcast listening app segment, which hurts devs who cannot afford to work on a “I don’t really need this money, so whatever you feel like sending is okay” model.</li>
+ </ol>
+ <p name="0481" id="0481" class="graf graf--p graf-after--li">None of this is incorrect. None of this is an ad hominem attack in any way. It is just pointing out that a developer of Arment’s stature and status lives in a very different world than someone in East Frog Balls, Arkansas trying to make a living off of App sales. Our dev in EFB doesn’t have the main sites on the Apple web falling all over themselves to review their app the way that Arment does. They’re not friends with the people being The Loop, Daring Fireball, SixColors, iMore, The Mac Observer, etc., yadda.</p>
+ <p name="5a45" id="5a45" class="graf graf--p graf-after--p">So, our hero, in a fit of well-meaning ignorance writes this piece (posted this morning, 14 Oct. 15) and of course, the response and any criticisms are just as reasonable and thoughtful.</p>
+ <p name="3bc7" id="3bc7" class="graf graf--p graf-after--p graf--trailing">If you really believe that, you are the most preciously ignorant person in the world, and can I have your seriously charmed life.</p>
+ </div>
+ </div>
+ </section>
+ <section name="2ba2" class="section section--body">
+ <div class="section-divider">
+ <hr class="section-divider" />
+ </div>
+ <div class="section-content">
+ <div class="section-inner sectionLayout--insetColumn">
+ <p name="0fb2" id="0fb2" class="graf graf--p graf--leading">The response, from all quarters, including Marco, someone who is so sensitive to criticism that the word “useless” is <a href="http://www.marco.org/2011/03/30/here-is-a-tip-for-all-the-non-developers-out" data-href="http://www.marco.org/2011/03/30/here-is-a-tip-for-all-the-non-developers-out" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">enough to shut him down</a>, who <a href="https://twitter.com/marcoarment/status/641330113934700544" data-href="https://twitter.com/marcoarment/status/641330113934700544" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">blocked a friend of mine for the high crime of pointing out that his review of podcasting mics centered around higher priced gear and ignored folks without the scratch, who might not be ready for such things</a>, is, in a single word, disgusting. Vomitous even.</p>
+ <p name="9a6e" id="9a6e" class="graf graf--p graf-after--p">It’s an hours-long dogpile that beggars even my imagination, and I can imagine almost anything. Seriously, it’s all there in <a href="https://twitter.com/s_bielefeld/with_replies" data-href="https://twitter.com/s_bielefeld/with_replies" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">Samantha’s Twitter Feed</a>. From what I can tell, she’s understandably shocked over it. I however was not. This one comment in her feed made me smile (warning, this wanders a bit…er…LOT. Twitter timelines are not easy to put together):</p>
+ <blockquote name="3271" id="3271" class="graf graf--blockquote graf-after--p">I can see why you have some reservations about publishing it, but my gut feeling is that he would take it better than Nilay.</blockquote>
+ <p name="ec72" id="ec72" class="graf graf--p graf-after--blockquote">Oh honey, bless your sweet, ignorant heart. Marco is one of the biggest pushers of The Big Lie, and one of the reasons it is <em class="markup--em markup--p-em">such</em> a lie.</p>
+ <p name="5cc4" id="5cc4" class="graf graf--p graf-after--p">But it gets better. First, you have the “hey, Marco <em class="markup--em markup--p-em">earned</em> his status!” lot. A valid point, and one Bielefeld explicitly acknowledges, here:</p>
+ <blockquote name="4e5f" id="4e5f" class="graf graf--blockquote graf-after--p">From his ground floor involvement in Tumblr (for which he is now a millionaire), to the creation and sale of a wildly successful app called Instapaper, he has become a household name in technology minded circles. It is this extensive time spent in the spotlight, the huge following on Twitter, and dedicated listeners of his weekly aired Accidental Tech Podcast, that has granted him the freedom to break from seeking revenue in more traditional manners.</blockquote>
+ <p name="cee9" id="cee9" class="graf graf--p graf-after--blockquote">and here:</p>
+ <blockquote name="3f1b" id="3f1b" class="graf graf--blockquote graf-after--p">I’m not knocking his success, he has put effort into his line of work, and has built his own life.</blockquote>
+ <p name="e527" id="e527" class="graf graf--p graf-after--blockquote">and here:</p>
+ <blockquote name="3e4f" id="3e4f" class="graf graf--blockquote graf-after--p">He has earned his time in the spotlight, and it’s only natural for him to take advantage of it.</blockquote>
+ <p name="8a01" id="8a01" class="graf graf--p graf-after--blockquote">But still, you get the people telling her something she already acknowledge:</p>
+ <blockquote name="7685" id="7685" class="graf graf--blockquote graf-after--p">I don’t think he’s blind. he’s worked to where he has gotten and has had failures like everyone else.</blockquote>
+ <p name="b151" id="b151" class="graf graf--p graf-after--blockquote">Thank you for restating something in the article. To the person who wrote it.</p>
+ <p name="87bc" id="87bc" class="graf graf--p graf-after--p">In the original article, Samantha talked about the money Marco makes from his podcast. She based that on the numbers <a href="http://atp.fm/sponsor/" data-href="http://atp.fm/sponsor/" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">provided by ATP in terms of sponsorship rates</a> and the number of current sponsors the podcast has. Is this going to yield perfect numbers? No. But the numbers you get from it will at least be reasonable, or should be unless the published sponsorship rates are just fantasy, and you’re stupid for taking them seriously.</p>
+ <p name="dbda" id="dbda" class="graf graf--p graf-after--p">At first, she went with a simple formula:</p>
+ <blockquote name="1b4e" id="1b4e" class="graf graf--blockquote graf-after--p">$4K x 3 per episode = $12K x 52 weeks / 3 hosts splitting it.</blockquote>
+ <p name="0b33" id="0b33" class="graf graf--p graf-after--blockquote">That’s not someone making shit up, right? Rather quickly, someone pointed out that she’d made an error in how she calculated it:</p>
+ <blockquote name="76d7" id="76d7" class="graf graf--blockquote graf-after--p">That’s $4k per ad, no? So more like $12–16k per episode.</blockquote>
+ <p name="a089" id="a089" class="graf graf--p graf-after--blockquote">She’d already realized her mistake and fixed it.</p>
+ <blockquote name="b369" id="b369" class="graf graf--blockquote graf-after--p">which is actually wrong, and I’m correcting now. $4,000 per sponsor, per episode! So, $210,000 per year.</blockquote>
+ <p name="8b3b" id="8b3b" class="graf graf--p graf-after--blockquote">Again, this is based on <em class="markup--em markup--p-em">publicly available data</em> the only kind someone not part of ATP or a close friend of Arment has access to. So while her numbers may be wrong, if they are, there’s no way for her to know that. She’s basing her opinion on actual available data. Which is sadly rare.</p>
+ <p name="135a" id="135a" class="graf graf--p graf-after--p">This becomes a huge flashpoint. You name a reason to attack her over this, people do. No really. For example, she’s not calculating his <em class="markup--em markup--p-em">income taxes correctly</em>:</p>
+ <blockquote name="5e7e" id="5e7e" class="graf graf--blockquote graf-after--p">especially since it isn’t his only source of income thus, not an indicator of his marginal inc. tax bracket.</blockquote>
+ <blockquote name="6036" id="6036" class="graf graf--blockquote graf-after--blockquote">thus, guessing net income is more haphazard than stating approx. gross income.</blockquote>
+ <p name="aac1" id="aac1" class="graf graf--p graf-after--blockquote">Ye Gods. She’s not doing his taxes for him, her point is invalid?</p>
+ <p name="600f" id="600f" class="graf graf--p graf-after--p">Then there’s the people who seem to have not read anything past what other people are telling them:</p>
+ <blockquote name="9b62" id="9b62" class="graf graf--blockquote graf-after--p">Not sure what to make of your Marco piece, to be honest. You mention his fame, whatever, but what’s the main idea here?</blockquote>
+ <p name="c18a" id="c18a" class="graf graf--p graf-after--blockquote">Just how spoon-fed do you have to be? Have you no teeth?</p>
+ <p name="c445" id="c445" class="graf graf--p graf-after--p">Of course, Marco jumps in, and predictably, he’s snippy:</p>
+ <blockquote name="0c21" id="0c21" class="graf graf--blockquote graf-after--p">If you’re going to speak in precise absolutes, it’s best to first ensure that you’re correct.</blockquote>
+ <p name="8f8d" id="8f8d" class="graf graf--p graf-after--blockquote">If you’re going to be like that, it’s best to provide better data. Don’t get snippy when someone is going off the only data available, and is clearly open to revising based on better data.</p>
+ <p name="cc97" id="cc97" class="graf graf--p graf-after--p">Then Marco’s friends/fans get into it:</p>
+ <blockquote name="f9da" id="f9da" class="graf graf--blockquote graf-after--p">I really don’t understand why it’s anyone’s business</blockquote>
+ <p name="0094" id="0094" class="graf graf--p graf-after--blockquote">Samantha is trying to qualify for sainthood at this point:</p>
+ <blockquote name="0105" id="0105" class="graf graf--blockquote graf-after--p">It isn’t really, it was a way of putting his income in context in regards to his ability to gamble with Overcast.</blockquote>
+ <p name="cdd1" id="cdd1" class="graf graf--p graf-after--blockquote">Again, she’s trying to drag people back to her actual point, but no one is going to play. The storm has begun. Then we get people who are just spouting nonsense:</p>
+ <blockquote name="f56c" id="f56c" class="graf graf--blockquote graf-after--p">Why is that only relevant for him? It’s a pretty weird metric,especially since his apps aren’t free.</blockquote>
+ <p name="4fef" id="4fef" class="graf graf--p graf-after--blockquote">Wha?? Overcast 2 is absolutely free. Samantha points this out:</p>
+ <blockquote name="0f36" id="0f36" class="graf graf--blockquote graf-after--p">His app is free, that’s what sparked the article to begin with.</blockquote>
+ <p name="40d2" id="40d2" class="graf graf--p graf-after--blockquote">The response is literally a parallel to “How can there be global warming if it snowed today in my town?”</p>
+ <blockquote name="6760" id="6760" class="graf graf--blockquote graf-after--p">If it’s free, how have I paid for it? Twice?</blockquote>
+ <p name="7b13" id="7b13" class="graf graf--p graf-after--blockquote">She is still trying:</p>
+ <blockquote name="44ba" id="44ba" class="graf graf--blockquote graf-after--p">You paid $4.99 to unlock functionality in Overcast 1.0 and you chose to support him with no additional functionality in 2.0</blockquote>
+ <p name="2152" id="2152" class="graf graf--p graf-after--blockquote">He is having none of it. IT SNOWED! SNOWWWWWWW!</p>
+ <blockquote name="99a6" id="99a6" class="graf graf--blockquote graf-after--p">Yes. That’s not free. Free is when you choose not to make money. And that can be weaponized. But that’s not what Overcast does.</blockquote>
+ <p name="5e6f" id="5e6f" class="graf graf--p graf-after--blockquote">She however, is relentless:</p>
+ <blockquote name="1b0f" id="1b0f" class="graf graf--blockquote graf-after--p">No, it’s still free. You can choose to support it, you are required to pay $4.99 for Pocket Casts. Totally different model.</blockquote>
+ <p name="d24f" id="d24f" class="graf graf--p graf-after--blockquote">Dude seems to give up. (Note: allllll the people bagging on her are men. All of them. Mansplaining like hell. And I’d bet every one of them considers themselves a feminist.)</p>
+ <p name="10e1" id="10e1" class="graf graf--p graf-after--p">We get another guy trying to push the narrative she’s punishing him for his success, which is just…it’s stupid, okay? Stupid.</p>
+ <blockquote name="9b01" id="9b01" class="graf graf--blockquote graf-after--p">It also wasn’t my point in writing my piece today, but it seems to be everyone’s focus.</blockquote>
+ <p name="340c" id="340c" class="graf graf--p graf-after--blockquote">(UNDERSTATEMENT OF THE YEAR)</p>
+ <blockquote name="7244" id="7244" class="graf graf--blockquote graf-after--p">I think the focus should be more on that fact that while it’s difficult, Marco spent years building his audience.</blockquote>
+ <blockquote name="ffb1" id="ffb1" class="graf graf--blockquote graf-after--blockquote">It doesn’t matter what he makes it how he charges. If the audience be earned is willing to pay for it, awesome.</blockquote>
+ <p name="e44e" id="e44e" class="graf graf--p graf-after--blockquote">She tries, oh lord, she tries:</p>
+ <blockquote name="a502" id="a502" class="graf graf--blockquote graf-after--p">To assert that he isn’t doing anything any other dev couldn’t, is wrong. It’s successful because it’s Marco.</blockquote>
+ <p name="7dcd" id="7dcd" class="graf graf--p graf-after--blockquote">But no, HE KNOWS HER POINT BETTER THAN SHE DOES:</p>
+ <blockquote name="a62a" id="a62a" class="graf graf--blockquote graf-after--p">No, it’s successful because he busted his ass to make it so. It’s like any other business. He grew it.</blockquote>
+ <p name="df8c" id="df8c" class="graf graf--p graf-after--blockquote">Christ. This is like a field of strawmen. Stupid ones. Very stupid ones.</p>
+ <p name="521a" id="521a" class="graf graf--p graf-after--p">One guy tries to blame it all on Apple, another in a string of Wha??? moments:</p>
+ <blockquote name="d80d" id="d80d" class="graf graf--blockquote graf-after--p">the appropriate context is Apple’s App Store policies. Other devs aren’t Marco’s responsibility</blockquote>
+ <p name="db0b" id="db0b" class="graf graf--p graf-after--blockquote">Seriously? Dude, are you even trying to talk about what Samantha actually wrote? At this point, Samantha is clearly mystified at the entire thing:</p>
+ <blockquote name="7a78" id="7a78" class="graf graf--blockquote graf-after--p">Why has the conversation suddenly turned to focus on nothing more than ATP sponsorship income?</blockquote>
+ <p name="6e09" id="6e09" class="graf graf--p graf-after--blockquote">Because it’s a nit they can pick and allows them to ignore everything you wrote. That’s the only reason.</p>
+ <p name="b7db" id="b7db" class="graf graf--p graf-after--p">One guy is “confused”:</p>
+ <blockquote name="3626" id="3626" class="graf graf--blockquote graf-after--p">I see. He does have clout, so are you saying he’s too modest in how he sees himself as a dev?</blockquote>
+ <blockquote name="9daa" id="9daa" class="graf graf--blockquote graf-after--blockquote">Yes. He can’t be equated to the vast majority of other developers. Like calling Gruber, “just another blogger”.</blockquote>
+ <blockquote name="f6da" id="f6da" class="graf graf--blockquote graf-after--blockquote">Alright, that’s fair. I was just confused by the $ and fame angle at first.</blockquote>
+ <p name="d5b1" id="d5b1" class="graf graf--p graf-after--blockquote">Samantha’s point centers on the benefits Marco gains via his fame and background. <em class="markup--em markup--p-em">HOW DO YOU NOT MENTION THAT? HOW IS THAT CONFUSING?</em></p>
+ <p name="58d0" id="58d0" class="graf graf--p graf-after--p">People of course are telling her it’s her fault for mentioning a salient fact at all:</p>
+ <blockquote name="30d2" id="30d2" class="graf graf--blockquote graf-after--p">Why has the conversation suddenly turned to focus on nothing more than ATP sponsorship income?</blockquote>
+ <blockquote name="765b" id="765b" class="graf graf--blockquote graf-after--blockquote">Maybe because you went there with your article?</blockquote>
+ <blockquote name="61fe" id="61fe" class="graf graf--blockquote graf-after--blockquote">As a way of rationalizing his ability to gamble with the potential for Overcast to generate income…not the norm at all.</blockquote>
+ <p name="f17c" id="f17c" class="graf graf--p graf-after--blockquote">Of course, had she not brought up those important points, she’d have been bagged on for “not providing proof”. Lose some, lose more. By now, she’s had enough and she just deletes all mention of it. Understandable, but sad she was bullied into doing that.</p>
+ <p name="0b60" id="0b60" class="graf graf--p graf-after--p">Yes, bullied. That’s all this is. Bullying. She didn’t lie, cheat, or exaagerate. If her numbers were wrong, they weren’t wrong in a way she had any ability to do anything about. But there’s blood in the water, and the comments and attacks get worse:</p>
+ <blockquote name="65ab" id="65ab" class="graf graf--blockquote graf-after--p">Because you decided to start a conversation about someone else’s personal shit. You started this war.</blockquote>
+ <p name="1adb" id="1adb" class="graf graf--p graf-after--blockquote">War. THIS. IS. WAR.</p>
+ <p name="de94" id="de94" class="graf graf--p graf-after--p">This is a bunch of nerds attacking someone for reasoned, calm, <em class="markup--em markup--p-em">polite</em> criticism of their friend/idol. Samantha is politely pushing back a bit:</p>
+ <blockquote name="4458" id="4458" class="graf graf--blockquote graf-after--p">That doesn’t explain why every other part of my article is being pushed aside.</blockquote>
+ <p name="aeac" id="aeac" class="graf graf--p graf-after--blockquote">She’s right. This is all nonsense. This is people ignoring her article completely, just looking for things to attack so it can be dismissed. It’s tribalism at its purest.</p>
+ <p name="0078" id="0078" class="graf graf--p graf-after--p">Then some of the other annointed get into it, including Jason Snell in one of the most spectactular displays of “I have special knowledge you can’t be expected to have, therefore you are totally off base and wrong, even though there’s no way for you to know this” I’ve seen in a while. Jason:</p>
+ <blockquote name="c4c9" id="c4c9" class="graf graf--blockquote graf-after--p">You should never use an ad rate card to estimate ad revenue from any media product ever.</blockquote>
+ <blockquote name="b66b" id="b66b" class="graf graf--blockquote graf-after--blockquote">I learned this when I started working for a magazine — rate cards are mostly fiction, like prices on new cars</blockquote>
+ <p name="6907" id="6907" class="graf graf--p graf-after--blockquote">How…exactly…in the name of whatever deity Jason may believe in…is Samantha or anyone not “in the biz” supposed to know this. Also, what exactly does a magazine on paper like Macworld have to do with sponsorships for a podcast? I have done podcasts that were sponsored, and I can retaliate with “we charged what the rate card said we did. <em class="markup--em markup--p-em">Checkmate Elitests!</em>”</p>
+ <p name="41ec" id="41ec" class="graf graf--p graf-after--p">Samantha basically abases herself at his feet:</p>
+ <blockquote name="0b14" id="0b14" class="graf graf--blockquote graf-after--p">I understand my mistake, and it’s unfortunate that it has completely diluted the point of my article.</blockquote>
+ <p name="590f" id="590f" class="graf graf--p graf-after--blockquote">I think she should have told him where and how to stuff that nonsense, but she’s a nicer person than I am. Also, it’s appropriate that Jason’s twitter avatar has its nose in the air. This is some rank snobbery. It’s disgusting and if anyone pulled that on him, Jason would be very upset. But hey, one cannot criticize The Marco without getting pushback. By “pushback”, I mean “an unrelenting fecal flood”.</p>
+ <p name="69dc" id="69dc" class="graf graf--p graf-after--p">Her only mistake was criticizing one of the Kool Kids. Folks, if you criticize anyone in The Deck Clique, or their friends, expect the same thing, regardless of tone or point.</p>
+ <p name="5ab4" id="5ab4" class="graf graf--p graf-after--p">Another App Dev, seemingly unable to parse Samantha’s words, needs <em class="markup--em markup--p-em">more</em> explanation:</p>
+ <blockquote name="957b" id="957b" class="graf graf--blockquote graf-after--p">so just looking over your mentions, I’m curious what exactly was your main point? Ignoring the podcast income bits.</blockquote>
+ <p name="0a7e" id="0a7e" class="graf graf--p graf-after--blockquote">Oh wait, he didn’t even read the article. Good on you, Dev Guy, good. on. you. Still, she plays nice <em class="markup--em markup--p-em">with someone who didn’t even read her article</em>:</p>
+ <blockquote name="f7db" id="f7db" class="graf graf--blockquote graf-after--p">That a typical unknown developer can’t depend on patronage to generate revenue, and charging for apps will become a negative.</blockquote>
+ <p name="937f" id="937f" class="graf graf--p graf-after--blockquote">Marco comes back of course, and now basically accuses her of lying about other devs talking to her and supporting her point:</p>
+ <blockquote name="c9dd" id="c9dd" class="graf graf--blockquote graf-after--p">How many actual developers did you hear from, really? Funny how almost nobody wants to give a (real) name on these accusations.</blockquote>
+ <p name="c522" id="c522" class="graf graf--p graf-after--blockquote">Really? You’re going to do that? “There’s no name, so I don’t think it’s a real person.” Just…what’s the Joe Welch quote from the McCarthy hearings?</p>
+ <blockquote name="907e" id="907e" class="graf graf--blockquote graf-after--p">Let us not assassinate this lad further, Senator. You’ve done enough. Have you no sense of decency, sir? At long last, have you left no sense of decency?</blockquote>
+ <p name="2158" id="2158" class="graf graf--p graf-after--blockquote">That is what this is at this point: character assasination because she said something critical of A Popular Person. It’s disgusting. Depressing and disgusting. No one, none of these people have seriously discussed her point, heck, it looks like they barely bothered to read it, if they did at all.</p>
+ <p name="13f8" id="13f8" class="graf graf--p graf-after--p">Marco starts getting really petty with her (no big shock) and Samantha finally starts pushing back:</p>
+ <blockquote name="96c6" id="96c6" class="graf graf--blockquote graf-after--p">Glad to see you be the bigger person and ignore the mindset of so many developers not relating to you, good for you!</blockquote>
+ <p name="5d3f" id="5d3f" class="graf graf--p graf-after--blockquote">That of course, is what caused Marco to question the validity, if not the existence of her sources. (Funny how anonymous sources are totes okay when they convenience Marco et al, and work for oh, <em class="markup--em markup--p-em">Apple</em>, but when they are inconvenient? Ha! PROVIDE ME PROOF YOU INTEMPERATE WOMAN!)</p>
+ <p name="c07c" id="c07c" class="graf graf--p graf-after--p">Make no mistake, there’s some sexist shit going on here. Every tweet I’ve quoted was authored by a guy.</p>
+ <p name="8b32" id="8b32" class="graf graf--p graf-after--p">Of course, Marco has to play the “I’ve been around longer than you” card with this bon mot:</p>
+ <blockquote name="de26" id="de26" class="graf graf--blockquote graf-after--p">Yup, before you existed!</blockquote>
+ <p name="a3bd" id="a3bd" class="graf graf--p graf-after--blockquote">Really dude? I mean, I’m sorry about the penis, but really?</p>
+ <p name="1c51" id="1c51" class="graf graf--p graf-after--p">Mind you, when the criticism isn’t just bizarrely stupid, Samantha reacts the way Marco and his ilk claim they would to (if they ever got any <em class="markup--em markup--p-em">valid</em> criticism. Which clearly is impossible):</p>
+ <blockquote name="9848" id="9848" class="graf graf--blockquote graf-after--p">Not to get into the middle of this, but “income” is not the term you’re looking for. “Revenue” is.</blockquote>
+ <blockquote name="f2a6" id="f2a6" class="graf graf--blockquote graf-after--blockquote">lol. Noted.</blockquote>
+ <blockquote name="aed9" id="aed9" class="graf graf--blockquote graf-after--blockquote">And I wasn’t intending to be a dick, just a lot of people hear/say “income” when they intend “revenue”, and then discussion …</blockquote>
+ <blockquote name="f9d8" id="f9d8" class="graf graf--blockquote graf-after--blockquote">… gets derailed by a jedi handwave of “Expenses”. But outside of charitable donation, it is all directly related.</blockquote>
+ <blockquote name="f61c" id="f61c" class="graf graf--blockquote graf-after--blockquote">haha. Thank you for the clarification.</blockquote>
+ <p name="5dd9" id="5dd9" class="graf graf--p graf-after--blockquote">Note to Marco and the other…whatever they are…that is how one reacts to that kind of criticism. With a bit of humor and self-deprecation. You should try it sometime. For real, not just in your heads or conversations in Irish Pubs in S.F.</p>
+ <p name="dc44" id="dc44" class="graf graf--p graf-after--p">But now, the door has been cracked, and the cheap shots come out:</p>
+ <blockquote name="0c94" id="0c94" class="graf graf--blockquote graf-after--p">@testflight_app: Don’t worry guys, we process <a href="https://twitter.com/marcoarment" data-href="https://twitter.com/marcoarment" class="markup--anchor markup--blockquote-anchor" rel="nofollow noopener" target="_blank">@marcoarment</a>’s apps in direct proportion to his megabucks earnings. <a href="https://twitter.com/hashtag/fairelephant?src=hash" data-href="https://twitter.com/hashtag/fairelephant?src=hash" class="markup--anchor markup--blockquote-anchor" rel="nofollow noopener" target="_blank">#fairelephant</a></blockquote>
+ <p name="343b" id="343b" class="graf graf--p graf-after--blockquote">(Note: testflight_app is a parody account. Please do not mess with the actual testflight folks. They are still cool.)</p>
+ <p name="09bf" id="09bf" class="graf graf--p graf-after--p">Or this…conversation:</p>
+ <figure name="4d63" id="4d63" class="graf graf--figure graf-after--p">
+ <div class="aspectRatioPlaceholder is-locked" style="max-width: 398px; max-height: 542px;">
+ <div class="aspectRatioPlaceholder-fill" style="padding-bottom: 136.20000000000002%;"></div>
+ <div class="progressiveMedia js-progressiveMedia graf-image is-canvasLoaded" data-image-id="1*kbPh7V97eyRodSOw2-ALDw.png" data-width="398" data-height="542" data-scroll="native"><img src="https://cdn-images-1.medium.com/freeze/max/60/1*kbPh7V97eyRodSOw2-ALDw.png?q=20" crossorigin="anonymous" class="progressiveMedia-thumbnail js-progressiveMedia-thumbnail" /><canvas class="progressiveMedia-canvas js-progressiveMedia-canvas" width="55" height="75"></canvas><img class="progressiveMedia-image js-progressiveMedia-image" data-src="https://cdn-images-1.medium.com/max/1600/1*kbPh7V97eyRodSOw2-ALDw.png" /><noscript class="js-progressiveMedia-inner">&lt;img class="progressiveMedia-noscript js-progressiveMedia-inner" src="https://cdn-images-1.medium.com/max/1600/1*kbPh7V97eyRodSOw2-ALDw.png"&gt;</noscript></div>
+ </div>
+ </figure>
+ <p name="f2a3" id="f2a3" class="graf graf--p graf-after--figure">Good job guys. Good job. Defend the tribe. Attack the other. Frederico attempts to recover from his stunning display of demeaning douchery: <a href="https://twitter.com/viticci" data-href="https://twitter.com/viticci" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">‏@viticci</a>: <a href="https://twitter.com/s_bielefeld" data-href="https://twitter.com/s_bielefeld" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">@s_bielefeld</a> I don’t know if it’s an Italian thing, but counting other people’s money is especially weird for me. IMO, bad move in the post.</p>
+ <p name="ae0c" id="ae0c" class="graf graf--p graf-after--p">Samantha is clearly sick of his crap: <a href="https://twitter.com/s_bielefeld" data-href="https://twitter.com/s_bielefeld" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">‏@s_bielefeld</a>: <a href="https://twitter.com/viticci" data-href="https://twitter.com/viticci" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">@viticci</a> That’s what I’m referring to, the mistake of ever having mentioned it. So, now, Marco can ignore the bigger issue and go on living.</p>
+ <p name="2047" id="2047" class="graf graf--p graf-after--p">Good for her. There’s being patient and being roadkill.</p>
+ <p name="4139" id="4139" class="graf graf--p graf-after--p">Samantha does put the call out for her sources to maybe let her use their names:</p>
+ <blockquote name="6626" id="6626" class="graf graf--blockquote graf-after--p">From all of you I heard from earlier, anyone care to go on record?</blockquote>
+ <p name="8a7d" id="8a7d" class="graf graf--p graf-after--blockquote">My good friend, The Angry Drunk points out the obvious problem:</p>
+ <blockquote name="68c9" id="68c9" class="graf graf--blockquote graf-after--p">Nobody’s going to go on record when they count on Marco’s friends for their PR.</blockquote>
+ <p name="317d" id="317d" class="graf graf--p graf-after--blockquote">This is true. Again, the sites that are Friends of Marco:</p>
+ <p name="9523" id="9523" class="graf graf--p graf-after--p">Daring Fireball</p>
+ <p name="dbc7" id="dbc7" class="graf graf--p graf-after--p">The Loop</p>
+ <p name="c706" id="c706" class="graf graf--p graf-after--p">SixColors</p>
+ <p name="0acb" id="0acb" class="graf graf--p graf-after--p">iMore</p>
+ <p name="8c8c" id="8c8c" class="graf graf--p graf-after--p">MacStories</p>
+ <p name="643e" id="643e" class="graf graf--p graf-after--p">A few others, but I want this post to end one day.</p>
+ <p name="6b76" id="6b76" class="graf graf--p graf-after--p">You piss that crew off, and given how petty rather a few of them have demonstrated they are, good luck on getting any kind of notice from them.</p>
+ <p name="f7d1" id="f7d1" class="graf graf--p graf-after--p">Of course, the idea this could happen is just craycray:</p>
+ <blockquote name="de59" id="de59" class="graf graf--blockquote graf-after--p"><a href="https://twitter.com/KevinColeman" data-href="https://twitter.com/KevinColeman" class="markup--anchor markup--blockquote-anchor" rel="nofollow noopener" target="_blank">@KevinColeman </a><a href="https://twitter.com/Angry_Drunk" data-href="https://twitter.com/Angry_Drunk" class="markup--anchor markup--blockquote-anchor" rel="nofollow noopener" target="_blank">.@Angry_Drunk</a> <a href="https://twitter.com/s_bielefeld" data-href="https://twitter.com/s_bielefeld" class="markup--anchor markup--blockquote-anchor" rel="nofollow noopener" target="_blank">@s_bielefeld</a> <a href="https://twitter.com/marcoarment" data-href="https://twitter.com/marcoarment" class="markup--anchor markup--blockquote-anchor" rel="nofollow noopener" target="_blank">@marcoarment</a> Wow, you guys are veering right into crazy conspiracy theory territory. <a href="https://twitter.com/hashtag/JetFuelCantMeltSteelBeams?src=hash" data-href="https://twitter.com/hashtag/JetFuelCantMeltSteelBeams?src=hash" class="markup--anchor markup--blockquote-anchor" rel="nofollow noopener" target="_blank">#JetFuelCantMeltSteelBeams</a></blockquote>
+ <p name="f01b" id="f01b" class="graf graf--p graf-after--blockquote">Yeah. Because a mature person like Marco would never do anything like that.</p>
+ <p name="7e30" id="7e30" class="graf graf--p graf-after--p">Of course, the real point on this is starting to happen:</p>
+ <blockquote name="5d93" id="5d93" class="graf graf--blockquote graf-after--p">you’re getting a lot of heat now but happy you are writing things that stir up the community. Hope you continue to be a voice!</blockquote>
+ <blockquote name="436b" id="436b" class="graf graf--blockquote graf-after--blockquote">I doubt I will.</blockquote>
+ <p name="ac25" id="ac25" class="graf graf--p graf-after--blockquote">See, they’ve done their job. Mess with the bull, you get the horns. Maybe you should find another thing to write about, this isn’t a good place for you. <em class="markup--em markup--p-em">Great</em> job y’all.</p>
+ <p name="07ba" id="07ba" class="graf graf--p graf-after--p">Some people aren’t even pretending. They’re just in full strawman mode:</p>
+ <blockquote name="3d60" id="3d60" class="graf graf--blockquote graf-after--p"><a href="https://twitter.com/timkeller" data-href="https://twitter.com/timkeller" class="markup--anchor markup--blockquote-anchor" rel="nofollow noopener" target="_blank">@timkeller: </a>Unfair to begrudge a person for leveraging past success, especially when that success is earned. No ‘luck’ involved.</blockquote>
+ <blockquote name="87f5" id="87f5" class="graf graf--blockquote graf-after--blockquote"><a href="https://twitter.com/s_bielefeld" data-href="https://twitter.com/s_bielefeld" class="markup--anchor markup--blockquote-anchor" rel="nofollow noopener" target="_blank">@s_bielefeld: </a><a href="https://twitter.com/timkeller" data-href="https://twitter.com/timkeller" class="markup--anchor markup--blockquote-anchor" rel="nofollow noopener" target="_blank">@timkeller</a> I plainly stated that I don’t hold his doing this against him. Way to twist words.</blockquote>
+ <p name="3720" id="3720" class="graf graf--p graf-after--blockquote">I think she’s earned her anger at this point.</p>
+ <p name="7341" id="7341" class="graf graf--p graf-after--p">Don’t worry, Marco knows what the real problem is: most devs just suck —</p>
+ <figure name="babe" id="babe" class="graf graf--figure graf-after--p">
+ <div class="aspectRatioPlaceholder is-locked" style="max-width: 694px; max-height: 771px;">
+ <div class="aspectRatioPlaceholder-fill" style="padding-bottom: 111.1%;"></div>
+ <div class="progressiveMedia js-progressiveMedia graf-image is-canvasLoaded" data-image-id="1*Fpb2Bvdx7Q-688vdm-NdkQ.png" data-width="694" data-height="771" data-scroll="native"><img src="https://cdn-images-1.medium.com/freeze/max/60/1*Fpb2Bvdx7Q-688vdm-NdkQ.png?q=20" crossorigin="anonymous" class="progressiveMedia-thumbnail js-progressiveMedia-thumbnail" /><canvas class="progressiveMedia-canvas js-progressiveMedia-canvas" width="68" height="75"></canvas><img class="progressiveMedia-image js-progressiveMedia-image" data-src="https://cdn-images-1.medium.com/max/1600/1*Fpb2Bvdx7Q-688vdm-NdkQ.png" /><noscript class="js-progressiveMedia-inner">&lt;img class="progressiveMedia-noscript js-progressiveMedia-inner" src="https://cdn-images-1.medium.com/max/1600/1*Fpb2Bvdx7Q-688vdm-NdkQ.png"&gt;</noscript></div>
+ </div>
+ </figure>
+ <p name="503d" id="503d" class="graf graf--p graf-after--figure">I have a saying that applies in this case: don’t place your head so far up your nethers that you go full Klein Bottle. Marco has gone full Klein Bottle. (To be correct, he went FKB some years ago.)</p>
+ <p name="b8c0" id="b8c0" class="graf graf--p graf-after--p">There are some bright spots. My favorite is when Building Twenty points out the <em class="markup--em markup--p-em">real</em> elephant in the room:</p>
+ <blockquote name="36f4" id="36f4" class="graf graf--blockquote graf-after--p"><a href="https://twitter.com/BuildingTwenty" data-href="https://twitter.com/BuildingTwenty" class="markup--anchor markup--blockquote-anchor" rel="nofollow noopener" target="_blank">@BuildingTwenty</a>: Both <a href="https://twitter.com/s_bielefeld" data-href="https://twitter.com/s_bielefeld" class="markup--anchor markup--blockquote-anchor" rel="nofollow noopener" target="_blank">@s_bielefeld</a> &amp; I wrote similar critiques of <a href="https://twitter.com/marcoarment" data-href="https://twitter.com/marcoarment" class="markup--anchor markup--blockquote-anchor" rel="nofollow noopener" target="_blank">@marcoarment</a>’s pricing model yet the Internet pilloried only the woman. Who’d have guessed?</blockquote>
+ <p name="06b9" id="06b9" class="graf graf--p graf-after--blockquote">Yup.</p>
+ <p name="eff9" id="eff9" class="graf graf--p graf-after--p">Another bright spot are these comments from Ian Betteridge, who has been doing this <em class="markup--em markup--p-em">even longer than Marco</em>:</p>
+ <blockquote name="18f1" id="18f1" class="graf graf--blockquote graf-after--p">You know, any writer who has never made a single factual error in a piece hasn’t ever written anything worth reading.</blockquote>
+ <blockquote name="9776" id="9776" class="graf graf--blockquote graf-after--blockquote">I learned my job with the support of people who helped me. Had I suffered an Internet pile on for every error I wouldn’t have bothered.</blockquote>
+ <p name="8d44" id="8d44" class="graf graf--p graf-after--blockquote">To which Samantha understandably replies:</p>
+ <blockquote name="7147" id="7147" class="graf graf--blockquote graf-after--p">and it’s honestly something I’m contemplating right now, whether to continue…</blockquote>
+ <p name="e0cd" id="e0cd" class="graf graf--p graf-after--blockquote">Gee, I can’t imagine why. Why with comments like this from Chris Breen that completely misrepresent Samantha’s point, (who until today, I would have absolutely defended as being better than this, something I am genuinely saddened to be wrong about), why wouldn’t she want to continue doing this?</p>
+ <blockquote name="a379" id="a379" class="graf graf--blockquote graf-after--p">If I have this right, some people are outraged that a creator has decided to give away his work.</blockquote>
+ <p name="f026" id="f026" class="graf graf--p graf-after--blockquote">No Chris, you don’t have this right. But hey, who has time to find out the real issue and read an article. I’m sure your friends told you everything you need to know.</p>
+ <p name="e1c2" id="e1c2" class="graf graf--p graf-after--p">Noted Feminist Glenn Fleishman gets a piece of the action too:</p>
+ <figure name="067c" id="067c" class="graf graf--figure graf-after--p">
+ <div class="aspectRatioPlaceholder is-locked" style="max-width: 308px; max-height: 269px;">
+ <div class="aspectRatioPlaceholder-fill" style="padding-bottom: 87.3%;"></div>
+ <div class="progressiveMedia js-progressiveMedia graf-image is-canvasLoaded" data-image-id="1*lvOySry5gHHJfGU_bQXrzA.png" data-width="308" data-height="269" data-scroll="native"><img src="https://cdn-images-1.medium.com/freeze/max/60/1*lvOySry5gHHJfGU_bQXrzA.png?q=20" crossorigin="anonymous" class="progressiveMedia-thumbnail js-progressiveMedia-thumbnail" /><canvas class="progressiveMedia-canvas js-progressiveMedia-canvas" width="75" height="65"></canvas><img class="progressiveMedia-image js-progressiveMedia-image" data-src="https://cdn-images-1.medium.com/max/1600/1*lvOySry5gHHJfGU_bQXrzA.png" /><noscript class="js-progressiveMedia-inner">&lt;img class="progressiveMedia-noscript js-progressiveMedia-inner" src="https://cdn-images-1.medium.com/max/1600/1*lvOySry5gHHJfGU_bQXrzA.png"&gt;</noscript></div>
+ </div>
+ </figure>
+ <p name="4df8" id="4df8" class="graf graf--p graf-after--figure">I’m not actually surprised here. I watched Fleishman berate a friend of mine who has been an engineer for…heck, waaaaay too long on major software products in the most condescending way because she tried to point out that as a <em class="markup--em markup--p-em">very</em> technical woman, “The Magazine” literally had nothing to say to her and maybe he should fix that. “Impertinent” was I believe what he called her, but I may have the specific word wrong. Not the attitude mind you. Great Feminists like Glenn do not like uppity women criticizing Great Feminists who are their Great Allies.</p>
+ <p name="bf45" id="bf45" class="graf graf--p graf-after--p graf--trailing">Great Feminists are often tools.</p>
+ </div>
+ </div>
+ </section>
+ <section name="c883" class="section section--body">
+ <div class="section-divider">
+ <hr class="section-divider" />
+ </div>
+ <div class="section-content">
+ <div class="section-inner sectionLayout--insetColumn">
+ <p name="45bb" id="45bb" class="graf graf--p graf--leading">Luckily, I hope, the people who get Samantha’s point also started chiming in (and you get 100% of the women commenting here that I’ve seen):</p>
+ <blockquote name="c053" id="c053" class="graf graf--blockquote graf-after--p">I don’t think he’s wrong for doing it, he just discusses it as if the market’s a level playing field — it isn’t</blockquote>
+ <blockquote name="7b5e" id="7b5e" class="graf graf--blockquote graf-after--blockquote">This is a great article with lots of great points about the sustainability of iOS development. Thank you for publishing it.</blockquote>
+ <blockquote name="a321" id="a321" class="graf graf--blockquote graf-after--blockquote">Regardless of the numbers and your view of MA, fair points here about confirmation bias in app marketing feasibility <a href="http://t.co/u79ZLsnhdM" data-href="http://t.co/u79ZLsnhdM" class="markup--anchor markup--blockquote-anchor" title="http://samanthabielefeld.com/the-elephant-in-the-room" rel="nofollow noopener" target="_blank">http://samanthabielefeld.com/the-elephant-in-the-room …</a></blockquote>
+ <blockquote name="76fe" id="76fe" class="graf graf--blockquote graf-after--blockquote">thank you for posting this, it covers a lot of things people don’t like to talk about.</blockquote>
+ <blockquote name="bf90" id="bf90" class="graf graf--blockquote graf-after--blockquote">I’m sure you have caught untold amounts of flak over posting this because Marco is blind to his privilege as a developer.</blockquote>
+ <blockquote name="0f66" id="0f66" class="graf graf--blockquote graf-after--blockquote graf--trailing">Catching up on the debate, and agreeing with Harry’s remark. (Enjoyed your article, Samantha, and ‘got’ your point.)</blockquote>
+ </div>
+ </div>
+ </section>
+ <section name="8ab2" class="section section--body section--last">
+ <div class="section-divider">
+ <hr class="section-divider" />
+ </div>
+ <div class="section-content">
+ <div class="section-inner sectionLayout--insetColumn">
+ <p name="6134" id="6134" class="graf graf--p graf--leading">I would like to say I’m surprised at the reaction to Samantha’s article, but I’m not. In spite of his loud declarations of support for The Big Lie, Marco Arment is as bad at any form of criticism that he hasn’t already approved as a very insecure tween. An example from 2011: <a href="http://www.businessinsider.com/marco-arment-2011-9" data-href="http://www.businessinsider.com/marco-arment-2011-9" class="markup--anchor markup--p-anchor" rel="nofollow noopener" target="_blank">http://www.businessinsider.com/marco-arment-2011-9</a></p>
+ <p name="ba3c" id="ba3c" class="graf graf--p graf-after--p">Marco is great with criticism as long as it never actually criticizes him. If it does, be prepared a flood of petty, petulant whining that a room full of bored preschoolers on a hot day would be hard-pressed to match.</p>
+ <p name="a5a0" id="a5a0" class="graf graf--p graf-after--p">Today has been…well, it sucks. It sucks because someone doing what all the Arments of the world claim to want was naive enough to believe what they were told, and found out the hard way just how big a lie The Big Lie is, and how vicious people are when you’re silly enough to believe anything they say about criticism.</p>
+ <p name="2a25" id="2a25" class="graf graf--p graf-after--p">And note again, every single condescending crack, misrepresentation, and strawman had an exclusively male source. Most of them have, at one point or another, loudly trumpted themselves as Feminist Allies, as a friend to women struggling with the sexism and misogyny in tech. Congratulations y’all on being just as bad as the people you claim to oppose.</p>
+ <p name="a47a" id="a47a" class="graf graf--p graf-after--p">Samantha has handled this better than anyone else could have. My respect for her as a person and a writer is off the charts. If she choses to walk away from blogging in the Apple space, <em class="markup--em markup--p-em">believe me</em> I understand. As bad as today was for her, I’ve seen worse. Much worse.</p>
+ <p name="aa8e" id="aa8e" class="graf graf--p graf-after--p">But I hope she doesn’t. I hope she stays, because she is Doing This Right, and in a corner of the internet that has become naught but an endless circle jerk, a cliquish collection, a churlish, childish cohort interested not in writing or the truth, but in making sure The Right People are elevated, and The Others put down, she is someone worth reading and listening to. The number people who owe her apologies goes around the block, and I don’t think she’ll ever see a one. I’m sure as heck not apologizing for them, I’ll not make their lives easier in the least.</p>
+ <p name="34c5" id="34c5" class="graf graf--p graf-after--p">All of you, all. of. you…Marco, Breen, Snell, Vittici, had a chance to live by your words. You were faced with reasoned, polite, respectful criticism and instead of what you should have done, you all dropped trou and sprayed an epic diarrheal discharge all over someone who had done nothing to deserve it. Me, I earned most of my aggro, Samantha did not earn any of the idiocy I’ve seen today. I hope you’re all proud of yourselves. Someone should be, it won’t be me. Ever.</p>
+ <p name="9710" id="9710" class="graf graf--p graf-after--p graf--trailing">So I hope she stays, but if she goes, I understand. For what it’s worth, I don’t think she’s wrong either way.</p>
+ </div>
+ </div>
+ </section>
+ </div>
+ <footer class="u-paddingTop10">
+ <div class="container u-maxWidth740">
+ <div class="row">
+ <div class="col u-size12of12"></div>
+ </div>
+ <div class="row">
+ <div class="col u-size12of12 js-postTags">
+ <div class="u-paddingBottom10">
+ <div class="tags tags--postTags tags--borderless"></div>
+ </div>
+ </div>
+ </div>
+ <div class="row js-postActionsFooter">
+ <div class="postActions col u-size12of12">
+ <div class="u-floatLeft buttonSet buttonSet--withLabels">
+ <div class="buttonSet-inner">
+ <div class="js-actionRecommend" data-post-id="d146a92473a1" data-is-icon-29px="true" data-has-recommend-list="true" data-source="post_actions_footer"><button class="button button--primary button--large button--chromeless is-touchIconFadeInPulse u-accentColor--buttonNormal button--withIcon button--withSvgIcon u-accentColor--iconLight js-actionRecommendButton" title="Recommend to share this article with your followers and let the author know you liked it" aria-label="Recommend to share this article with your followers and let the author know you liked it" data-action="sign-in-prompt" data-sign-in-action="upvote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/d146a92473a1" data-action-source="post_actions_footer"><span class="button-defaultState"><span class="svgIcon svgIcon--heart svgIcon--29px"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="29" height="29" viewBox="0 0 29 29"><path d="M16.215 23.716c-.348.288-.984.826-1.376 1.158a.526.526 0 0 1-.68 0c-.36-.307-.92-.78-1.22-1.03C9.22 20.734 3 15.527 3 10.734 3 7.02 5.916 4 9.5 4c1.948 0 3.77.898 5 2.434C15.73 4.898 17.552 4 19.5 4c3.584 0 6.5 3.02 6.5 6.734 0 4.9-6.125 9.96-9.785 12.982zM19.5 5.2c-1.774 0-3.423.923-4.41 2.468a.699.699 0 0 1-.59.323.706.706 0 0 1-.59-.32c-.988-1.54-2.637-2.47-4.41-2.47-2.922 0-5.3 2.49-5.3 5.54 0 4.23 6.19 9.41 9.517 12.19.217.18.566.48.783.66l.952-.79c3.496-2.88 9.348-7.72 9.348-12.05 0-3.05-2.378-5.53-5.3-5.53z"/></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--heartFilled svgIcon--29px"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="29" height="29" viewBox="0 0 29 29"><path d="M19.5 4c-1.948 0-3.77.898-5 2.434C13.27 4.898 11.448 4 9.5 4 5.916 4 3 7.02 3 10.734c0 4.793 6.227 10 9.95 13.11.296.25.853.723 1.212 1.03.196.166.48.166.677 0 .39-.332 1.02-.87 1.37-1.158 3.66-3.022 9.79-8.08 9.79-12.982C26 7.02 23.08 4 19.5 4z" fill-rule="evenodd"/></svg></span></span></button><button class="button button--chromeless u-baseColor--buttonNormal" data-action="show-recommends" data-action-value="d146a92473a1">168</button></div>
+ </div>
+ <div class="buttonSet-inner"><button class="button button--large button--dark button--chromeless is-touchIconBlackPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon" data-action="scroll-to-responses" data-action-source="post_actions_footer"><span class="svgIcon svgIcon--response svgIcon--29px"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="29" height="29" viewBox="0 0 29 29"><path d="M21.27 20.058c1.89-1.826 2.754-4.17 2.754-6.674C24.024 8.21 19.67 4 14.1 4 8.53 4 4 8.21 4 13.384c0 5.175 4.53 9.385 10.1 9.385 1.007 0 2-.14 2.95-.41.285.25.592.49.918.7 1.306.87 2.716 1.31 4.19 1.31.276-.01.494-.14.6-.36a.625.625 0 0 0-.052-.65c-.61-.84-1.042-1.71-1.282-2.58a5.417 5.417 0 0 1-.154-.75zm-3.85 1.324l-.083-.28-.388.12a9.72 9.72 0 0 1-2.85.424c-4.96 0-8.99-3.706-8.99-8.262 0-4.556 4.03-8.263 8.99-8.263 4.95 0 8.77 3.71 8.77 8.27 0 2.25-.75 4.35-2.5 5.92l-.24.21v.32c0 .07 0 .19.02.37.03.29.1.6.19.92.19.7.49 1.4.89 2.08-.93-.14-1.83-.49-2.67-1.06-.34-.22-.88-.48-1.16-.74z"/></svg></span></button><button class="button button--chromeless u-baseColor--buttonNormal" data-action="scroll-to-responses">15</button></div>
+ </div>
+ <div class="u-floatRight buttonSet buttonSet--narrow"><button class="button button--large button--dark button--chromeless is-touchIconBlackPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon" title="Share on Twitter" aria-label="Share on Twitter" data-action="share-on-twitter" data-action-source="post_actions_footer"><span class="svgIcon svgIcon--twitter svgIcon--29px"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="29" height="29" viewBox="0 0 29 29"><path d="M21.967 11.8c.018 5.93-4.607 11.18-11.177 11.18-2.172 0-4.25-.62-6.047-1.76l-.268.422-.038.5.186.013.168.012c.3.02.44.032.6.046 2.06-.026 3.95-.686 5.49-1.86l1.12-.85-1.4-.048c-1.57-.055-2.92-1.08-3.36-2.51l-.48.146-.05.5c.22.03.48.05.75.08.48-.02.87-.07 1.25-.15l2.33-.49-2.32-.49c-1.68-.35-2.91-1.83-2.91-3.55 0-.05 0-.01-.01.03l-.49-.1-.25.44c.63.36 1.35.57 2.07.58l1.7.04L7.4 13c-.978-.662-1.59-1.79-1.618-3.047a4.08 4.08 0 0 1 .524-1.8l-.825.07a12.188 12.188 0 0 0 8.81 4.515l.59.033-.06-.59v-.02c-.05-.43-.06-.63-.06-.87a3.617 3.617 0 0 1 6.27-2.45l.2.21.28-.06c1.01-.22 1.94-.59 2.73-1.09l-.75-.56c-.1.36-.04.89.12 1.36.23.68.58 1.13 1.17.85l-.21-.45-.42-.27c-.52.8-1.17 1.48-1.92 2L22 11l.016.28c.013.2.014.35 0 .52v.04zm.998.038c.018-.22.017-.417 0-.66l-.498.034.284.41a8.183 8.183 0 0 0 2.2-2.267l.97-1.48-1.6.755c.17-.08.3-.02.34.03a.914.914 0 0 1-.13-.292c-.1-.297-.13-.64-.1-.766l.36-1.254-1.1.695c-.69.438-1.51.764-2.41.963l.48.15a4.574 4.574 0 0 0-3.38-1.484 4.616 4.616 0 0 0-4.61 4.613c0 .29.02.51.08.984l.01.02.5-.06.03-.5c-3.17-.18-6.1-1.7-8.08-4.15l-.48-.56-.36.64c-.39.69-.62 1.48-.65 2.28.04 1.61.81 3.04 2.06 3.88l.3-.92c-.55-.02-1.11-.17-1.6-.45l-.59-.34-.14.67c-.02.08-.02.16 0 .24-.01 2.12 1.55 4.01 3.69 4.46l.1-.49-.1-.49c-.33.07-.67.12-1.03.14-.18-.02-.43-.05-.64-.07l-.76-.09.23.73c.57 1.84 2.29 3.14 4.28 3.21l-.28-.89a8.252 8.252 0 0 1-4.85 1.66c-.12-.01-.26-.02-.56-.05l-.17-.01-.18-.01L2.53 21l1.694 1.07a12.233 12.233 0 0 0 6.58 1.917c7.156 0 12.2-5.73 12.18-12.18l-.002.04z"/></svg></span></button><button class="button button--large button--dark button--chromeless is-touchIconBlackPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon" title="Share on Facebook" aria-label="Share on Facebook" data-action="share-on-facebook" data-action-source="post_actions_footer"><span class="svgIcon svgIcon--facebook svgIcon--29px"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="29" height="29" viewBox="0 0 29 29"><path d="M16.39 23.61v-5.808h1.846a.55.55 0 0 0 .546-.48l.36-2.797a.551.551 0 0 0-.547-.62H16.39V12.67c0-.67.12-.813.828-.813h1.474a.55.55 0 0 0 .55-.55V8.803a.55.55 0 0 0-.477-.545c-.436-.06-1.36-.116-2.22-.116-2.5 0-4.13 1.62-4.13 4.248v1.513H10.56a.551.551 0 0 0-.55.55v2.797c0 .304.248.55.55.55h1.855v5.76c-4.172-.96-7.215-4.7-7.215-9.1 0-5.17 4.17-9.36 9.31-9.36 5.14 0 9.31 4.19 9.31 9.36 0 4.48-3.155 8.27-7.43 9.15M14.51 4C8.76 4 4.1 8.684 4.1 14.46c0 5.162 3.75 9.523 8.778 10.32a.55.55 0 0 0 .637-.543v-6.985a.551.551 0 0 0-.55-.55H11.11v-1.697h1.855a.55.55 0 0 0 .55-.55v-2.063c0-2.02 1.136-3.148 3.03-3.148.567 0 1.156.027 1.597.06v1.453h-.924c-1.363 0-1.93.675-1.93 1.912v1.78c0 .3.247.55.55.55h2.132l-.218 1.69H15.84c-.305 0-.55.24-.55.55v7.02c0 .33.293.59.623.54 5.135-.7 9.007-5.11 9.007-10.36C24.92 8.68 20.26 4 14.51 4"/></svg></span></button></div>
+ </div>
+ </div>
+ </div>
+ <div class="js-postPromotionWrapper postPromotionWrapper" data-location-id="footer_above_post_attribution"></div>
+ <div class="container u-maxWidth740 js-postAttributionFooterContainer u-paddingTop20 u-paddingBottom20 u-marginTop10 u-borderTopLightest u-xs-paddingTop10 u-xs-paddingBottom10">
+ <div class="row js-postFooterInfo">
+ <div class="col u-size12of12">
+ <li class="u-block u-paddingBottom18 js-cardUser">
+ <div class="u-marginLeft20 u-floatRight"><span class="followState js-followState buttonSet-inner" data-user-id="77a507c5ad19"><button class="button button--small u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton" data-action="sign-in-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-action-source="footer_card"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary button--small u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton" data-action="sign-in-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/77a507c5ad19" data-action-source="footer_card_follow"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></span>
+ </div>
+ <div class="u-tableCell ">
+ <a class="link avatar u-baseColor--link" href="https://medium.com/@johncwelch?source=footer_card" title="Go to the profile of John C. Welch" aria-label="Go to the profile of John C. Welch" data-action-source="footer_card" data-user-id="77a507c5ad19" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/120/120/0*qPHQu8WqsC6cV_ud.jpg" class="avatar-image avatar-image--small" alt="Go to the profile of John C. Welch" /></a>
+ </div>
+ <div class="u-tableCell u-verticalAlignMiddle u-breakWord u-paddingLeft15">
+ <h3 class="u-fontSizeBase u-lineHeightTighter u-marginBottom4"><a class="link link--primary u-accentColor--hoverTextNormal" href="https://medium.com/@johncwelch" property="cc:attributionName" title="Go to the profile of John C. Welch" aria-label="Go to the profile of John C. Welch" rel="author cc:attributionUrl" data-user-id="77a507c5ad19" dir="auto">John C. Welch</a></h3>
+ </div>
+ </li>
+ </div>
+ </div>
+ </div>
+ <div class="js-postFooterPlacements" data-action-scope="_actionscope_14">
+ <div class="streamItem streamItem--placementCardGrid js-streamItem">
+ <div class="u-clearfix u-backgroundGrayLightest">
+ <div class="row u-marginAuto u-maxWidth1000 u-paddingTop30 u-paddingBottom40">
+ <div class="col u-padding8 u-xs-size12of12 u-size4of12">
+ <div class="u-height280 u-sizeFullWidth u-backgroundWhite u-borderCardBorder u-boxShadow u-borderBox u-borderRadius4 js-trackedPost" data-post-id="fca2a8fc8f92" data-source="placement_card_footer_grid---------0-40" data-tracking-context="placement" data-scroll="native">
+ <a class="link link--noUnderline u-baseColor--link" href="https://medium.com/@sodevious/the-internet-is-for-everyone-fca2a8fc8f92?source=placement_card_footer_grid---------0-40" data-action-source="placement_card_footer_grid---------0-40">
+ <div class="u-backgroundCover u-backgroundColorGrayLight u-height100 u-sizeFullWidth u-borderBottomLight u-borderRadiusTop4" style="background-image: url(&quot;https://cdn-images-1.medium.com/fit/c/800/240/1*kgL_DSZsN1hXEm3F8Zy7wg.png&quot;); background-position: 50% 50% !important;"></div>
+ </a>
+ <div class="u-padding15 u-borderBox u-flexColumn u-height180">
+ <a class="link link--noUnderline u-flex1 u-baseColor--link" href="https://medium.com/@sodevious/the-internet-is-for-everyone-fca2a8fc8f92?source=placement_card_footer_grid---------0-40" data-action-source="placement_card_footer_grid---------0-40">
+ <div class="postMetaInline u-marginBottom7">Related reads</div>
+ <div class="u-textColorDarkest u-contentSansBold u-fontSizeLarge u-maxHeight2LineHeightTighter u-lineClamp2 u-textOverflowEllipsis u-letterSpacingTight u-paddingBottom2">The Internet Is For Everyone</div>
+ </a>
+ <div class="u-paddingTop10 u-flex0 u-flexCenter">
+ <div class="u-flex1 u-noWrapWithEllipsis">
+ <div class="postMetaInline-avatar">
+ <a class="link avatar u-baseColor--link" href="https://medium.com/@sodevious" data-action="show-user-card" data-action-value="2090d94f8192" data-action-type="hover" data-user-id="2090d94f8192" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*OxMpHwkDqG1_JdQzgdB8fA.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Nicole Dominguez" /></a>
+ </div>
+ <div class="postMetaInline-authorLockup"><a class="link link link--darken link--darker u-baseColor--link" href="https://medium.com/@sodevious?source=placement_card_footer_grid---------0-40" data-action="show-user-card" data-action-source="placement_card_footer_grid---------0-40" data-action-value="2090d94f8192" data-action-type="hover" data-user-id="2090d94f8192" dir="auto">Nicole Dominguez</a>
+ <div class="u-fontSizeSmallest u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><span class="readingTime u-textColorNormal" title="4 min read"></span></div>
+ </div>
+ </div>
+ <div class="u-flex0 u-flexCenter">
+ <div class="buttonSet">
+ <div class="js-actionRecommend" data-post-id="fca2a8fc8f92" data-is-label-padded="true" data-source="placement_card_footer_grid---------0-40"><button class="button button--primary button--chromeless is-touchIconFadeInPulse u-accentColor--buttonNormal button--withIcon button--withSvgIcon u-accentColor--iconLight js-actionRecommendButton" title="Recommend to share this article with your followers and let the author know you liked it" aria-label="Recommend to share this article with your followers and let the author know you liked it" data-action="sign-in-prompt" data-sign-in-action="upvote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/fca2a8fc8f92" data-action-source="placement_card_footer_grid---------0-40"><span class="button-defaultState"><span class="svgIcon svgIcon--heart svgIcon--25px"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="25" height="25" viewBox="0 0 25 25"><path d="M12.5 21a.492.492 0 0 1-.327-.122c-.278-.24-.61-.517-.978-.826-2.99-2.5-7.995-6.684-7.995-10.565C3.2 6.462 5.578 4 8.5 4c1.55 0 3 .695 4 1.89a5.21 5.21 0 0 1 4-1.89c2.923 0 5.3 2.462 5.3 5.487 0 3.97-4.923 8.035-7.865 10.464-.42.35-.798.66-1.108.93a.503.503 0 0 1-.327.12zM8.428 4.866c-2.414 0-4.378 2.05-4.378 4.568 0 3.475 5.057 7.704 7.774 9.975.243.2.47.39.676.56.245-.21.52-.43.813-.68 2.856-2.36 7.637-6.31 7.637-9.87 0-2.52-1.964-4.57-4.377-4.57-1.466 0-2.828.76-3.644 2.04-.1.14-.26.23-.43.23-.18 0-.34-.09-.43-.24-.82-1.27-2.18-2.03-3.65-2.03z" fill-rule="evenodd"/></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--heartFilled svgIcon--25px"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="25" height="25" viewBox="0 0 25 25"><path d="M12.5 21a.492.492 0 0 1-.327-.122c-.278-.24-.61-.517-.978-.826-2.99-2.5-7.995-6.684-7.995-10.565C3.2 6.462 5.578 4 8.5 4c1.55 0 3 .695 4 1.89a5.21 5.21 0 0 1 4-1.89c2.923 0 5.3 2.462 5.3 5.487 0 3.97-4.923 8.035-7.865 10.464-.42.35-.798.66-1.108.93a.503.503 0 0 1-.327.12z" fill-rule="evenodd"/></svg></span></span></button><button class="button button--chromeless u-baseColor--buttonNormal u-disablePointerEvents u-marginLeft4" data-action="show-recommends" data-action-value="fca2a8fc8f92">78</button></div>
+ </div>
+ <div class="u-height20 u-borderRightLighter u-inlineBlock u-relative u-marginRight10 u-marginLeft12"></div>
+ <div class="buttonSet"><button class="button button--chromeless is-touchIconFadeInPulse u-baseColor--buttonNormal button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" title="Bookmark this story to read later" aria-label="Bookmark this story to read later" data-action="sign-in-prompt" data-sign-in-action="add-to-bookmarks" data-requires-token="true" data-redirect="https://medium.com/_/bookmark/p/fca2a8fc8f92"><span class="button-defaultState"><span class="svgIcon svgIcon--bookmark svgIcon--25px"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="25" height="25" viewBox="0 0 25 25"><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 0 0 .706.03L12.5 16.85l5.662 4.126a.508.508 0 0 0 .708-.03.5.5 0 0 0 .118-.285H19V6zm-6.838 9.97L7 19.636V6c0-.55.45-1 1-1h9c.55 0 1 .45 1 1v13.637l-5.162-3.668a.49.49 0 0 0-.676 0z" fill-rule="evenodd"/></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="25" height="26" viewBox="0 0 25 26"><path d="M19 7c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 0 0 .706.03L12.5 17.85l5.662 4.126a.508.508 0 0 0 .708-.03.5.5 0 0 0 .118-.285H19V7z" fill-rule="evenodd"/></svg></span></span></button></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="col u-padding8 u-xs-size12of12 u-size4of12">
+ <div class="u-height280 u-sizeFullWidth u-backgroundWhite u-borderCardBorder u-boxShadow u-borderBox u-borderRadius4 js-trackedPost" data-post-id="489947cc126c" data-source="placement_card_footer_grid---------1-40" data-tracking-context="placement" data-scroll="native">
+ <div class="u-padding15 u-borderBox u-flexColumn u-sizeFull">
+ <a class="link link--noUnderline u-flex1 u-flexColumn u-baseColor--link" href="https://anxiousrobot.net/the-iphone-7-plus-is-my-only-computer-489947cc126c?source=placement_card_footer_grid---------1-40" data-action-source="placement_card_footer_grid---------1-40">
+ <div class="postMetaInline u-marginBottom7">Related reads</div>
+ <div class="u-textColorDarkest u-contentSansBold u-fontSizeLarge u-maxHeight2LineHeightTighter u-lineClamp2 u-textOverflowEllipsis u-letterSpacingTight u-paddingBottom2">The iPhone 7 Plus is my only computer</div>
+ <div class="u-textColorNormal u-fontSize22 u-contentSansThin u-maxHeight2LineHeightTighter u-lineClamp2 u-textOverflowEllipsis u-letterSpacingTight u-marginTop7 u-paddingBottom2">OK, that’s not entirely true — my non-work MacBook Pro is an amazing machine for backing up my pocket computer.</div>
+ </a>
+ <div class="u-paddingTop10 u-flex0 u-flexCenter">
+ <div class="u-flex1 u-noWrapWithEllipsis">
+ <div class="postMetaInline-avatar">
+ <a class="link avatar u-baseColor--link" href="https://anxiousrobot.net/@jblanton" data-action="show-user-card" data-action-value="93d1b65b7032" data-action-type="hover" data-user-id="93d1b65b7032" data-collection-slug="anxious-robot" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*N4gA9mFFiTio0ZKT_0EROw.png" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Justin Blanton" /></a>
+ </div>
+ <div class="postMetaInline-authorLockup"><a class="link link link--darken link--darker u-baseColor--link" href="https://anxiousrobot.net/@jblanton?source=placement_card_footer_grid---------1-40" data-action="show-user-card" data-action-source="placement_card_footer_grid---------1-40" data-action-value="93d1b65b7032" data-action-type="hover" data-user-id="93d1b65b7032" data-collection-slug="anxious-robot" dir="auto">Justin Blanton</a>
+ <div class="u-fontSizeSmallest u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><span class="readingTime u-textColorNormal" title="3 min read"></span></div>
+ </div>
+ </div>
+ <div class="u-flex0 u-flexCenter">
+ <div class="buttonSet">
+ <div class="js-actionRecommend" data-post-id="489947cc126c" data-is-label-padded="true" data-source="placement_card_footer_grid---------1-40"><button class="button button--primary button--chromeless is-touchIconFadeInPulse u-accentColor--buttonNormal button--withIcon button--withSvgIcon u-accentColor--iconLight js-actionRecommendButton" title="Recommend to share this article with your followers and let the author know you liked it" aria-label="Recommend to share this article with your followers and let the author know you liked it" data-action="sign-in-prompt" data-sign-in-action="upvote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/489947cc126c" data-action-source="placement_card_footer_grid---------1-40"><span class="button-defaultState"><span class="svgIcon svgIcon--heart svgIcon--25px"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="25" height="25" viewBox="0 0 25 25"><path d="M12.5 21a.492.492 0 0 1-.327-.122c-.278-.24-.61-.517-.978-.826-2.99-2.5-7.995-6.684-7.995-10.565C3.2 6.462 5.578 4 8.5 4c1.55 0 3 .695 4 1.89a5.21 5.21 0 0 1 4-1.89c2.923 0 5.3 2.462 5.3 5.487 0 3.97-4.923 8.035-7.865 10.464-.42.35-.798.66-1.108.93a.503.503 0 0 1-.327.12zM8.428 4.866c-2.414 0-4.378 2.05-4.378 4.568 0 3.475 5.057 7.704 7.774 9.975.243.2.47.39.676.56.245-.21.52-.43.813-.68 2.856-2.36 7.637-6.31 7.637-9.87 0-2.52-1.964-4.57-4.377-4.57-1.466 0-2.828.76-3.644 2.04-.1.14-.26.23-.43.23-.18 0-.34-.09-.43-.24-.82-1.27-2.18-2.03-3.65-2.03z" fill-rule="evenodd"/></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--heartFilled svgIcon--25px"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="25" height="25" viewBox="0 0 25 25"><path d="M12.5 21a.492.492 0 0 1-.327-.122c-.278-.24-.61-.517-.978-.826-2.99-2.5-7.995-6.684-7.995-10.565C3.2 6.462 5.578 4 8.5 4c1.55 0 3 .695 4 1.89a5.21 5.21 0 0 1 4-1.89c2.923 0 5.3 2.462 5.3 5.487 0 3.97-4.923 8.035-7.865 10.464-.42.35-.798.66-1.108.93a.503.503 0 0 1-.327.12z" fill-rule="evenodd"/></svg></span></span></button><button class="button button--chromeless u-baseColor--buttonNormal u-disablePointerEvents u-marginLeft4" data-action="show-recommends" data-action-value="489947cc126c">67</button></div>
+ </div>
+ <div class="u-height20 u-borderRightLighter u-inlineBlock u-relative u-marginRight10 u-marginLeft12"></div>
+ <div class="buttonSet"><button class="button button--chromeless is-touchIconFadeInPulse u-baseColor--buttonNormal button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" title="Bookmark this story to read later" aria-label="Bookmark this story to read later" data-action="sign-in-prompt" data-sign-in-action="add-to-bookmarks" data-requires-token="true" data-redirect="https://medium.com/_/bookmark/p/489947cc126c"><span class="button-defaultState"><span class="svgIcon svgIcon--bookmark svgIcon--25px"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="25" height="25" viewBox="0 0 25 25"><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 0 0 .706.03L12.5 16.85l5.662 4.126a.508.508 0 0 0 .708-.03.5.5 0 0 0 .118-.285H19V6zm-6.838 9.97L7 19.636V6c0-.55.45-1 1-1h9c.55 0 1 .45 1 1v13.637l-5.162-3.668a.49.49 0 0 0-.676 0z" fill-rule="evenodd"/></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="25" height="26" viewBox="0 0 25 26"><path d="M19 7c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 0 0 .706.03L12.5 17.85l5.662 4.126a.508.508 0 0 0 .708-.03.5.5 0 0 0 .118-.285H19V7z" fill-rule="evenodd"/></svg></span></span></button></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="col u-padding8 u-xs-size12of12 u-size4of12">
+ <div class="u-height280 u-sizeFullWidth u-backgroundWhite u-borderCardBorder u-boxShadow u-borderBox u-borderRadius4 js-trackedPost" data-post-id="6cbadf1b3606" data-source="placement_card_footer_grid---------2-40" data-tracking-context="placement" data-scroll="native">
+ <a class="link link--noUnderline u-baseColor--link" href="https://medium.com/@adamlisagor/misinfo-in-the-age-of-opinion-6cbadf1b3606?source=placement_card_footer_grid---------2-40" data-action-source="placement_card_footer_grid---------2-40">
+ <div class="u-backgroundCover u-backgroundColorGrayLight u-height100 u-sizeFullWidth u-borderBottomLight u-borderRadiusTop4" style="background-image: url(&quot;https://cdn-images-1.medium.com/fit/c/800/240/1*NnElfnGKuaos9py0KzlvVg.gif&quot;); background-position: 50% 50% !important;"></div>
+ </a>
+ <div class="u-padding15 u-borderBox u-flexColumn u-height180">
+ <a class="link link--noUnderline u-flex1 u-baseColor--link" href="https://medium.com/@adamlisagor/misinfo-in-the-age-of-opinion-6cbadf1b3606?source=placement_card_footer_grid---------2-40" data-action-source="placement_card_footer_grid---------2-40">
+ <div class="postMetaInline u-marginBottom7">Related reads</div>
+ <div class="u-textColorDarkest u-contentSansBold u-fontSizeLarge u-maxHeight2LineHeightTighter u-lineClamp2 u-textOverflowEllipsis u-letterSpacingTight u-paddingBottom2">Misinfo in the Age of Opinion</div>
+ </a>
+ <div class="u-paddingTop10 u-flex0 u-flexCenter">
+ <div class="u-flex1 u-noWrapWithEllipsis">
+ <div class="postMetaInline-avatar">
+ <a class="link avatar u-baseColor--link" href="https://medium.com/@adamlisagor" data-action="show-user-card" data-action-value="130561bf7d7a" data-action-type="hover" data-user-id="130561bf7d7a" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*NhVHr1zDwStI2R8u-cMplQ.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Adam Lisagor" /></a>
+ </div>
+ <div class="postMetaInline-authorLockup"><a class="link link link--darken link--darker u-baseColor--link" href="https://medium.com/@adamlisagor?source=placement_card_footer_grid---------2-40" data-action="show-user-card" data-action-source="placement_card_footer_grid---------2-40" data-action-value="130561bf7d7a" data-action-type="hover" data-user-id="130561bf7d7a" dir="auto">Adam Lisagor</a>
+ <div class="u-fontSizeSmallest u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><span class="readingTime u-textColorNormal" title="3 min read"></span></div>
+ </div>
+ </div>
+ <div class="u-flex0 u-flexCenter">
+ <div class="buttonSet">
+ <div class="js-actionRecommend" data-post-id="6cbadf1b3606" data-is-label-padded="true" data-source="placement_card_footer_grid---------2-40"><button class="button button--primary button--chromeless is-touchIconFadeInPulse u-accentColor--buttonNormal button--withIcon button--withSvgIcon u-accentColor--iconLight js-actionRecommendButton" title="Recommend to share this article with your followers and let the author know you liked it" aria-label="Recommend to share this article with your followers and let the author know you liked it" data-action="sign-in-prompt" data-sign-in-action="upvote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/6cbadf1b3606" data-action-source="placement_card_footer_grid---------2-40"><span class="button-defaultState"><span class="svgIcon svgIcon--heart svgIcon--25px"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="25" height="25" viewBox="0 0 25 25"><path d="M12.5 21a.492.492 0 0 1-.327-.122c-.278-.24-.61-.517-.978-.826-2.99-2.5-7.995-6.684-7.995-10.565C3.2 6.462 5.578 4 8.5 4c1.55 0 3 .695 4 1.89a5.21 5.21 0 0 1 4-1.89c2.923 0 5.3 2.462 5.3 5.487 0 3.97-4.923 8.035-7.865 10.464-.42.35-.798.66-1.108.93a.503.503 0 0 1-.327.12zM8.428 4.866c-2.414 0-4.378 2.05-4.378 4.568 0 3.475 5.057 7.704 7.774 9.975.243.2.47.39.676.56.245-.21.52-.43.813-.68 2.856-2.36 7.637-6.31 7.637-9.87 0-2.52-1.964-4.57-4.377-4.57-1.466 0-2.828.76-3.644 2.04-.1.14-.26.23-.43.23-.18 0-.34-.09-.43-.24-.82-1.27-2.18-2.03-3.65-2.03z" fill-rule="evenodd"/></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--heartFilled svgIcon--25px"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="25" height="25" viewBox="0 0 25 25"><path d="M12.5 21a.492.492 0 0 1-.327-.122c-.278-.24-.61-.517-.978-.826-2.99-2.5-7.995-6.684-7.995-10.565C3.2 6.462 5.578 4 8.5 4c1.55 0 3 .695 4 1.89a5.21 5.21 0 0 1 4-1.89c2.923 0 5.3 2.462 5.3 5.487 0 3.97-4.923 8.035-7.865 10.464-.42.35-.798.66-1.108.93a.503.503 0 0 1-.327.12z" fill-rule="evenodd"/></svg></span></span></button><button class="button button--chromeless u-baseColor--buttonNormal u-disablePointerEvents u-marginLeft4" data-action="show-recommends" data-action-value="6cbadf1b3606">85</button></div>
+ </div>
+ <div class="u-height20 u-borderRightLighter u-inlineBlock u-relative u-marginRight10 u-marginLeft12"></div>
+ <div class="buttonSet"><button class="button button--chromeless is-touchIconFadeInPulse u-baseColor--buttonNormal button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" title="Bookmark this story to read later" aria-label="Bookmark this story to read later" data-action="sign-in-prompt" data-sign-in-action="add-to-bookmarks" data-requires-token="true" data-redirect="https://medium.com/_/bookmark/p/6cbadf1b3606"><span class="button-defaultState"><span class="svgIcon svgIcon--bookmark svgIcon--25px"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="25" height="25" viewBox="0 0 25 25"><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 0 0 .706.03L12.5 16.85l5.662 4.126a.508.508 0 0 0 .708-.03.5.5 0 0 0 .118-.285H19V6zm-6.838 9.97L7 19.636V6c0-.55.45-1 1-1h9c.55 0 1 .45 1 1v13.637l-5.162-3.668a.49.49 0 0 0-.676 0z" fill-rule="evenodd"/></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="25" height="26" viewBox="0 0 25 26"><path d="M19 7c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 0 0 .706.03L12.5 17.85l5.662 4.126a.508.508 0 0 0 .708-.03.5.5 0 0 0 .118-.285H19V7z" fill-rule="evenodd"/></svg></span></span></button></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="u-padding0 u-clearfix u-backgroundGrayLightest u-print-hide supplementalPostContent js-responsesWrapper" data-action-scope="_actionscope_5">
+ <div class="container u-maxWidth740">
+ <div class="responsesStreamWrapper u-maxWidth640 js-responsesStreamWrapper">
+ <div class="container u-maxWidth640 responsesStream-title u-paddingTop15">
+ <div class="row">
+ <div class="heading u-clearfix">
+ <div class="u-clearfix">
+ <div class="heading-content u-floatLeft"><span class="heading-title heading-title--semibold">Responses</span></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="container u-maxWidth640 u-marginBottom30 responsesStream-editor cardChromeless js-responsesStreamEditor">
+ <div class="row">
+ <div class="col u-size12of12">
+ <div class="u-paddingTop30 u-paddingBottom30 u-paddingLeft0 u-paddingRight0 u-borderBottomLightest js-responsesLoggedOutPrompt"><button class="button button--chromeless is-touchIconBlackPulse u-baseColor--buttonNormal button--withIcon button--withSvgIcon button--withIconAndLabel button--loggedOutPrompt" data-action="sign-in-prompt" data-redirect="https://medium.com/@johncwelch/samantha-and-the-great-big-lie-d146a92473a1#--respond" data-action-source="logged_out_response_prompt"><span class="svgIcon svgIcon--response svgIcon--29px"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="29" height="29" viewBox="0 0 29 29"><path d="M21.27 20.058c1.89-1.826 2.754-4.17 2.754-6.674C24.024 8.21 19.67 4 14.1 4 8.53 4 4 8.21 4 13.384c0 5.175 4.53 9.385 10.1 9.385 1.007 0 2-.14 2.95-.41.285.25.592.49.918.7 1.306.87 2.716 1.31 4.19 1.31.276-.01.494-.14.6-.36a.625.625 0 0 0-.052-.65c-.61-.84-1.042-1.71-1.282-2.58a5.417 5.417 0 0 1-.154-.75zm-3.85 1.324l-.083-.28-.388.12a9.72 9.72 0 0 1-2.85.424c-4.96 0-8.99-3.706-8.99-8.262 0-4.556 4.03-8.263 8.99-8.263 4.95 0 8.77 3.71 8.77 8.27 0 2.25-.75 4.35-2.5 5.92l-.24.21v.32c0 .07 0 .19.02.37.03.29.1.6.19.92.19.7.49 1.4.89 2.08-.93-.14-1.83-.49-2.67-1.06-.34-.22-.88-.48-1.16-.74z"/></svg></span><span class="button-label js-buttonLabel">Write a response…</span></button></div>
+ </div>
+ </div>
+ </div>
+ <div class="container u-maxWidth640 u-marginBottom30 u-borderTopLighter u-hide js-noOtherResponses">
+ <div class="row">
+ <div class="col u-size12of12">
+ <div class="u-paddingTop20 u-paddingBottom25">
+ <div class="u-inlineBlock u-verticalAlignTop u-paddingRight10">
+ <div class="avatar u-inline"><img src="https://cdn-images-1.medium.com/proxy/1*dmbNkD5D-u45r44go_cf0g.png" class="avatar-image u-size36x36 u-xs-size32x32" alt="Unknown user" /></div>
+ </div>
+ <div class="u-inlineBlock">
+ <div class="u-lineHeight36 u-textColorNormal u-contentSerifRegular">No responses yet</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="responsesStream js-responsesStream">
+ <div class="streamItem streamItem--postPreview js-streamItem" data-action-scope="_actionscope_6">
+ <div class="streamItem-card streamItem-card--postPreview streamItem-card--hPadding20 streamItem-card--borderRadius3 cardChromeless">
+ <div class="streamItem-cardInner streamItem-cardInner--postPreview">
+ <div class="postArticle postArticle--short js-postArticle js-trackedPost" data-post-id="b8414f23f7b2" data-source="responses---------0-31---------" data-action-scope="_actionscope_7" data-scroll="native">
+ <div class="u-marginBottom10">
+ <div class="postMetaInline">Recommended by <a class="link link--darken u-accentColor--textDarken u-baseColor--link" href="https://medium.com/@johncwelch" data-action="show-user-card" data-action-value="77a507c5ad19" data-action-type="hover" data-user-id="77a507c5ad19" dir="auto">John C. Welch</a> (author)</div>
+ </div>
+ <div class="u-clearfix u-marginBottom10">
+ <div class="postMetaInline u-floatLeft">
+ <div class="postMetaInline-avatar">
+ <a class="link avatar u-baseColor--link" href="https://medium.com/@Nishinari" data-action="show-user-card" data-action-value="46e2e2af3eb1" data-action-type="hover" data-user-id="46e2e2af3eb1" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*dmbNkD5D-u45r44go_cf0g.png" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Nishinari" /></a>
+ </div>
+ <div class="postMetaInline-authorLockup"><a class="link link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken u-baseColor--link" href="https://medium.com/@Nishinari?source=responses---------0-31---------" data-action="show-user-card" data-action-source="responses---------0-31---------" data-action-value="46e2e2af3eb1" data-action-type="hover" data-user-id="46e2e2af3eb1" dir="auto">Nishinari</a>
+ <div class="u-fontSizeSmallest u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/@Nishinari/whether-it-s-the-incestuous-web-of-podcasts-or-all-the-time-they-spend-on-twitter-the-regular-b8414f23f7b2?source=responses---------0-31---------" data-action="open-post" data-action-value="https://medium.com/@Nishinari/whether-it-s-the-incestuous-web-of-podcasts-or-all-the-time-they-spend-on-twitter-the-regular-b8414f23f7b2?source=responses---------0-31---------" data-action-source="preview-listing"><time datetime="2015-10-16T13:39:57.667Z">Oct 16, 2015</time></a><span class="middotDivider u-fontSizeSmallest"></span><span class="readingTime" title="1 min read"></span></div>
+ </div>
+ </div>
+ </div>
+ <a href="https://medium.com/@johncwelch/samantha-and-the-great-big-lie-d146a92473a1?source=responses---------0-31---------#aa8e">
+ <div class="u-fontSizeSmaller u-marginTop10 u-marginBottom20 u-padding14 u-xs-padding12 u-borderRadius3 u-borderCardBackground u-borderLighterHover u-boxShadow1px4pxCardBorder">
+ <div class="label label--quote u-accentColor--highlightFaint">But I hope she doesn’t. I hope she stays, because she is Doing This Right, and in a corner of the internet that has become naught but an endless circle jerk, a cliquish collection, a...</div>
+ </div>
+ </a>
+ <div class="js-inlineExpandBody">
+ <a class="" href="https://medium.com/@Nishinari/whether-it-s-the-incestuous-web-of-podcasts-or-all-the-time-they-spend-on-twitter-the-regular-b8414f23f7b2?source=responses---------0-31---------" data-action="expand-inline">
+ <div class="postArticle-content js-postField">
+ <section class="section section--body section--first section--last">
+ <div class="section-divider">
+ <hr class="section-divider" />
+ </div>
+ <div class="section-content">
+ <div class="section-inner sectionLayout--insetColumn">
+ <p name="611e" id="611e" class="graf graf--p graf--leading graf--trailing">Whether it's the incestuous web of podcasts or all the time they spend on Twitter, the regular Apple pundits seem to be growing more insular and inward looking. They've got sponsors to not offend, and connections to maintain. They've become bland.</p>
+ </div>
+ </div>
+ </section>
+ </div>
+ </a>
+ </div>
+ <div class="postArticle-readMore"><button class="button button--smaller button--link u-baseColor--buttonNormal" data-action="expand-inline">Read more…</button></div>
+ <div class="u-clearfix u-paddingTop10">
+ <div class="buttonSet buttonSet--withLabels u-floatLeft">
+ <div class="buttonSet-inner">
+ <div class="js-actionRecommend" data-post-id="b8414f23f7b2" data-is-flush-left="true" data-source="listing"><button class="button button--primary button--chromeless is-touchIconFadeInPulse u-accentColor--buttonNormal button--withIcon button--withSvgIcon u-accentColor--iconLight js-actionRecommendButton" title="Recommend to share this article with your followers and let the author know you liked it" aria-label="Recommend to share this article with your followers and let the author know you liked it" data-action="sign-in-prompt" data-sign-in-action="upvote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/b8414f23f7b2" data-action-source="listing"><span class="button-defaultState"><span class="svgIcon svgIcon--heart svgIcon--25px is-flushLeft"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="25" height="25" viewBox="0 0 25 25"><path d="M12.5 21a.492.492 0 0 1-.327-.122c-.278-.24-.61-.517-.978-.826-2.99-2.5-7.995-6.684-7.995-10.565C3.2 6.462 5.578 4 8.5 4c1.55 0 3 .695 4 1.89a5.21 5.21 0 0 1 4-1.89c2.923 0 5.3 2.462 5.3 5.487 0 3.97-4.923 8.035-7.865 10.464-.42.35-.798.66-1.108.93a.503.503 0 0 1-.327.12zM8.428 4.866c-2.414 0-4.378 2.05-4.378 4.568 0 3.475 5.057 7.704 7.774 9.975.243.2.47.39.676.56.245-.21.52-.43.813-.68 2.856-2.36 7.637-6.31 7.637-9.87 0-2.52-1.964-4.57-4.377-4.57-1.466 0-2.828.76-3.644 2.04-.1.14-.26.23-.43.23-.18 0-.34-.09-.43-.24-.82-1.27-2.18-2.03-3.65-2.03z" fill-rule="evenodd"/></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--heartFilled svgIcon--25px is-flushLeft"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="25" height="25" viewBox="0 0 25 25"><path d="M12.5 21a.492.492 0 0 1-.327-.122c-.278-.24-.61-.517-.978-.826-2.99-2.5-7.995-6.684-7.995-10.565C3.2 6.462 5.578 4 8.5 4c1.55 0 3 .695 4 1.89a5.21 5.21 0 0 1 4-1.89c2.923 0 5.3 2.462 5.3 5.487 0 3.97-4.923 8.035-7.865 10.464-.42.35-.798.66-1.108.93a.503.503 0 0 1-.327.12z" fill-rule="evenodd"/></svg></span></span></button><button class="button button--chromeless u-baseColor--buttonNormal u-disablePointerEvents" data-action="show-recommends" data-action-value="b8414f23f7b2">12</button></div>
+ </div>
+ </div>
+ <div class="buttonSet u-floatRight">
+ <div class="buttonSet-inner"><button class="button button--chromeless is-touchIconFadeInPulse u-baseColor--buttonNormal button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" title="Bookmark this story to read later" aria-label="Bookmark this story to read later" data-action="sign-in-prompt" data-sign-in-action="add-to-bookmarks" data-requires-token="true" data-redirect="https://medium.com/_/bookmark/p/b8414f23f7b2"><span class="button-defaultState"><span class="svgIcon svgIcon--bookmark svgIcon--25px is-flushRight"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="25" height="25" viewBox="0 0 25 25"><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 0 0 .706.03L12.5 16.85l5.662 4.126a.508.508 0 0 0 .708-.03.5.5 0 0 0 .118-.285H19V6zm-6.838 9.97L7 19.636V6c0-.55.45-1 1-1h9c.55 0 1 .45 1 1v13.637l-5.162-3.668a.49.49 0 0 0-.676 0z" fill-rule="evenodd"/></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="25" height="26" viewBox="0 0 25 26"><path d="M19 7c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 0 0 .706.03L12.5 17.85l5.662 4.126a.508.508 0 0 0 .708-.03.5.5 0 0 0 .118-.285H19V7z" fill-rule="evenodd"/></svg></span></span></button></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="streamItem streamItem--conversation js-streamItem" data-action-scope="_actionscope_8">
+ <div class="streamItemConversation container u-maxWidth660">
+ <div class="streamItemConversation-divider"></div>
+ <div class="heading u-clearfix heading--light heading--simple">
+ <div class="u-clearfix">
+ <div class="heading-content u-floatLeft"><span class="heading-title">Conversation with <a class="link link--accent u-accentColor--textNormal u-baseColor--link" href="https://medium.com/@johncwelch" data-action="show-user-card" data-action-value="77a507c5ad19" data-action-type="hover" data-user-id="77a507c5ad19" dir="auto">John C. Welch</a>.</span></div>
+ </div>
+ </div>
+ <div class="row streamItemConversation-inner cardChromeless">
+ <div class="streamItemConversationItem streamItemConversationItem--preview">
+ <div class="postArticle js-postArticle js-trackedPost postArticle--short" data-post-id="1648db10b297" data-source="responses---------1----------" data-action-scope="_actionscope_9" data-scroll="native">
+ <div class="u-clearfix u-marginBottom10">
+ <div class="postMetaInline u-floatLeft">
+ <div class="postMetaInline-avatar">
+ <a class="link avatar u-baseColor--link" href="https://medium.com/@kevinbehringer" data-action="show-user-card" data-action-value="4f589ec4a333" data-action-type="hover" data-user-id="4f589ec4a333" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/0*ls5KK6qGIAEs3bVt.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Kevin Behringer" /></a>
+ </div>
+ <div class="postMetaInline-authorLockup"><a class="link link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken u-baseColor--link" href="https://medium.com/@kevinbehringer?source=responses---------1----------" data-action="show-user-card" data-action-source="responses---------1----------" data-action-value="4f589ec4a333" data-action-type="hover" data-user-id="4f589ec4a333" dir="auto">Kevin Behringer</a>
+ <div class="u-fontSizeSmallest u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/@kevinbehringer/i-think-you-have-an-interesting-take-here-and-it-s-sad-to-see-someone-not-afforded-the-same-1648db10b297?source=responses---------1----------" data-action="open-post" data-action-value="https://medium.com/@kevinbehringer/i-think-you-have-an-interesting-take-here-and-it-s-sad-to-see-someone-not-afforded-the-same-1648db10b297?source=responses---------1----------" data-action-source="preview-listing"><time datetime="2015-10-15T21:08:21.885Z">Oct 16, 2015</time></a><span class="middotDivider u-fontSizeSmallest"></span><span class="readingTime" title="1 min read"></span></div>
+ </div>
+ </div>
+ </div>
+ <div class="js-inlineExpandBody">
+ <a class="" href="https://medium.com/@kevinbehringer/i-think-you-have-an-interesting-take-here-and-it-s-sad-to-see-someone-not-afforded-the-same-1648db10b297?source=responses---------1----------" data-action="expand-inline">
+ <div class="postArticle-content js-postField">
+ <section class="section section--body section--first section--last">
+ <div class="section-divider">
+ <hr class="section-divider" />
+ </div>
+ <div class="section-content">
+ <div class="section-inner sectionLayout--insetColumn">
+ <p name="f695" id="f695" class="graf graf--p graf--leading">I think you have an interesting take here and it’s sad to see someone not afforded the same opportunity to make a name for themselves that the others you reference were given.</p>
+ <p name="9480" id="9480" class="graf graf--p graf-after--p graf--trailing">One of the interesting elements that I see in this controversy is the very people who are coming to Marco’s defense (including Marco himself) are the…</p>
+ </div>
+ </div>
+ </section>
+ </div>
+ </a>
+ </div>
+ <div class="postArticle-readMore"><button class="button button--smaller button--link u-baseColor--buttonNormal" data-action="expand-inline">Read more…</button></div>
+ <div class="u-clearfix u-paddingTop10">
+ <div class="buttonSet buttonSet--withLabels u-floatLeft">
+ <div class="buttonSet-inner">
+ <div class="js-actionRecommend" data-post-id="1648db10b297" data-is-flush-left="true" data-source="listing"><button class="button button--primary button--chromeless is-touchIconFadeInPulse u-accentColor--buttonNormal button--withIcon button--withSvgIcon u-accentColor--iconLight js-actionRecommendButton" title="Recommend to share this article with your followers and let the author know you liked it" aria-label="Recommend to share this article with your followers and let the author know you liked it" data-action="sign-in-prompt" data-sign-in-action="upvote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/1648db10b297" data-action-source="listing"><span class="button-defaultState"><span class="svgIcon svgIcon--heart svgIcon--25px is-flushLeft"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="25" height="25" viewBox="0 0 25 25"><path d="M12.5 21a.492.492 0 0 1-.327-.122c-.278-.24-.61-.517-.978-.826-2.99-2.5-7.995-6.684-7.995-10.565C3.2 6.462 5.578 4 8.5 4c1.55 0 3 .695 4 1.89a5.21 5.21 0 0 1 4-1.89c2.923 0 5.3 2.462 5.3 5.487 0 3.97-4.923 8.035-7.865 10.464-.42.35-.798.66-1.108.93a.503.503 0 0 1-.327.12zM8.428 4.866c-2.414 0-4.378 2.05-4.378 4.568 0 3.475 5.057 7.704 7.774 9.975.243.2.47.39.676.56.245-.21.52-.43.813-.68 2.856-2.36 7.637-6.31 7.637-9.87 0-2.52-1.964-4.57-4.377-4.57-1.466 0-2.828.76-3.644 2.04-.1.14-.26.23-.43.23-.18 0-.34-.09-.43-.24-.82-1.27-2.18-2.03-3.65-2.03z" fill-rule="evenodd"/></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--heartFilled svgIcon--25px is-flushLeft"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="25" height="25" viewBox="0 0 25 25"><path d="M12.5 21a.492.492 0 0 1-.327-.122c-.278-.24-.61-.517-.978-.826-2.99-2.5-7.995-6.684-7.995-10.565C3.2 6.462 5.578 4 8.5 4c1.55 0 3 .695 4 1.89a5.21 5.21 0 0 1 4-1.89c2.923 0 5.3 2.462 5.3 5.487 0 3.97-4.923 8.035-7.865 10.464-.42.35-.798.66-1.108.93a.503.503 0 0 1-.327.12z" fill-rule="evenodd"/></svg></span></span></button><button class="button button--chromeless u-baseColor--buttonNormal u-disablePointerEvents" data-action="show-recommends" data-action-value="1648db10b297">3</button></div>
+ </div>
+ </div>
+ <div class="buttonSet u-floatRight">
+ <div class="buttonSet-inner"><a class="button button--chromeless u-baseColor--buttonNormal" href="https://medium.com/@kevinbehringer/i-think-you-have-an-interesting-take-here-and-it-s-sad-to-see-someone-not-afforded-the-same-1648db10b297?source=responses---------1----------#--responses" data-action-source="responses---------1----------">1 response</a><button class="button button--chromeless is-touchIconFadeInPulse u-baseColor--buttonNormal button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" title="Bookmark this story to read later" aria-label="Bookmark this story to read later" data-action="sign-in-prompt" data-sign-in-action="add-to-bookmarks" data-requires-token="true" data-redirect="https://medium.com/_/bookmark/p/1648db10b297"><span class="button-defaultState"><span class="svgIcon svgIcon--bookmark svgIcon--25px is-flushRight"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="25" height="25" viewBox="0 0 25 25"><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 0 0 .706.03L12.5 16.85l5.662 4.126a.508.508 0 0 0 .708-.03.5.5 0 0 0 .118-.285H19V6zm-6.838 9.97L7 19.636V6c0-.55.45-1 1-1h9c.55 0 1 .45 1 1v13.637l-5.162-3.668a.49.49 0 0 0-.676 0z" fill-rule="evenodd"/></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="25" height="26" viewBox="0 0 25 26"><path d="M19 7c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 0 0 .706.03L12.5 17.85l5.662 4.126a.508.508 0 0 0 .708-.03.5.5 0 0 0 .118-.285H19V7z" fill-rule="evenodd"/></svg></span></span></button></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="streamItemConversationItem streamItemConversationItem--preview">
+ <div class="postArticle js-postArticle js-trackedPost postArticle--short" data-post-id="c1bb4c38cd0c" data-source="responses---------1----------" data-action-scope="_actionscope_10" data-scroll="native">
+ <div class="u-clearfix u-marginBottom10">
+ <div class="postMetaInline u-floatLeft">
+ <div class="postMetaInline-avatar">
+ <a class="link avatar u-baseColor--link" href="https://medium.com/@johncwelch" data-action="show-user-card" data-action-value="77a507c5ad19" data-action-type="hover" data-user-id="77a507c5ad19" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/0*qPHQu8WqsC6cV_ud.jpg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of John C. Welch" /></a>
+ </div>
+ <div class="postMetaInline-authorLockup"><a class="link link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken u-baseColor--link" href="https://medium.com/@johncwelch?source=responses---------1----------" data-action="show-user-card" data-action-source="responses---------1----------" data-action-value="77a507c5ad19" data-action-type="hover" data-user-id="77a507c5ad19" dir="auto">John C. Welch</a>
+ <div class="u-fontSizeSmallest u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/@johncwelch/first-thanks-for-this-response-you-raise-an-interesting-point-about-the-pricing-c1bb4c38cd0c?source=responses---------1----------" data-action="open-post" data-action-value="https://medium.com/@johncwelch/first-thanks-for-this-response-you-raise-an-interesting-point-about-the-pricing-c1bb4c38cd0c?source=responses---------1----------" data-action-source="preview-listing"><time datetime="2015-10-15T22:53:38.589Z">Oct 16, 2015</time></a><span class="middotDivider u-fontSizeSmallest"></span><span class="readingTime" title="3 min read"></span></div>
+ </div>
+ </div>
+ </div>
+ <div class="js-inlineExpandBody">
+ <a class="" href="https://medium.com/@johncwelch/first-thanks-for-this-response-you-raise-an-interesting-point-about-the-pricing-c1bb4c38cd0c?source=responses---------1----------" data-action="expand-inline">
+ <div class="postArticle-content js-postField">
+ <section class="section section--body section--first section--last">
+ <div class="section-divider">
+ <hr class="section-divider" />
+ </div>
+ <div class="section-content">
+ <div class="section-inner sectionLayout--insetColumn">
+ <p name="6dd7" id="6dd7" class="graf graf--p graf--leading">First, thanks for this response, you raise an interesting point about the pricing. Why is Marco seemingly acting against his own recommendations?</p>
+ <p name="267c" id="267c" class="graf graf--p graf-after--p graf--trailing">I could be overly cynical about his motivations, (somewhat easy for me, my personal opinion of him is not good), but I won’t because what I see is that he’s not blazing any form of…</p>
+ </div>
+ </div>
+ </section>
+ </div>
+ </a>
+ </div>
+ <div class="postArticle-readMore"><button class="button button--smaller button--link u-baseColor--buttonNormal" data-action="expand-inline">Read more…</button></div>
+ <div class="u-clearfix u-paddingTop10">
+ <div class="buttonSet buttonSet--withLabels u-floatLeft">
+ <div class="buttonSet-inner">
+ <div class="js-actionRecommend" data-post-id="c1bb4c38cd0c" data-is-flush-left="true" data-source="listing"><button class="button button--primary button--chromeless is-touchIconFadeInPulse u-accentColor--buttonNormal button--withIcon button--withSvgIcon u-accentColor--iconLight js-actionRecommendButton" title="Recommend to share this article with your followers and let the author know you liked it" aria-label="Recommend to share this article with your followers and let the author know you liked it" data-action="sign-in-prompt" data-sign-in-action="upvote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/c1bb4c38cd0c" data-action-source="listing"><span class="button-defaultState"><span class="svgIcon svgIcon--heart svgIcon--25px is-flushLeft"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="25" height="25" viewBox="0 0 25 25"><path d="M12.5 21a.492.492 0 0 1-.327-.122c-.278-.24-.61-.517-.978-.826-2.99-2.5-7.995-6.684-7.995-10.565C3.2 6.462 5.578 4 8.5 4c1.55 0 3 .695 4 1.89a5.21 5.21 0 0 1 4-1.89c2.923 0 5.3 2.462 5.3 5.487 0 3.97-4.923 8.035-7.865 10.464-.42.35-.798.66-1.108.93a.503.503 0 0 1-.327.12zM8.428 4.866c-2.414 0-4.378 2.05-4.378 4.568 0 3.475 5.057 7.704 7.774 9.975.243.2.47.39.676.56.245-.21.52-.43.813-.68 2.856-2.36 7.637-6.31 7.637-9.87 0-2.52-1.964-4.57-4.377-4.57-1.466 0-2.828.76-3.644 2.04-.1.14-.26.23-.43.23-.18 0-.34-.09-.43-.24-.82-1.27-2.18-2.03-3.65-2.03z" fill-rule="evenodd"/></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--heartFilled svgIcon--25px is-flushLeft"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="25" height="25" viewBox="0 0 25 25"><path d="M12.5 21a.492.492 0 0 1-.327-.122c-.278-.24-.61-.517-.978-.826-2.99-2.5-7.995-6.684-7.995-10.565C3.2 6.462 5.578 4 8.5 4c1.55 0 3 .695 4 1.89a5.21 5.21 0 0 1 4-1.89c2.923 0 5.3 2.462 5.3 5.487 0 3.97-4.923 8.035-7.865 10.464-.42.35-.798.66-1.108.93a.503.503 0 0 1-.327.12z" fill-rule="evenodd"/></svg></span></span></button><button class="button button--chromeless u-baseColor--buttonNormal u-disablePointerEvents" data-action="show-recommends" data-action-value="c1bb4c38cd0c">2</button></div>
+ </div>
+ </div>
+ <div class="buttonSet u-floatRight">
+ <div class="buttonSet-inner"><button class="button button--chromeless is-touchIconFadeInPulse u-baseColor--buttonNormal button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" title="Bookmark this story to read later" aria-label="Bookmark this story to read later" data-action="sign-in-prompt" data-sign-in-action="add-to-bookmarks" data-requires-token="true" data-redirect="https://medium.com/_/bookmark/p/c1bb4c38cd0c"><span class="button-defaultState"><span class="svgIcon svgIcon--bookmark svgIcon--25px is-flushRight"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="25" height="25" viewBox="0 0 25 25"><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 0 0 .706.03L12.5 16.85l5.662 4.126a.508.508 0 0 0 .708-.03.5.5 0 0 0 .118-.285H19V6zm-6.838 9.97L7 19.636V6c0-.55.45-1 1-1h9c.55 0 1 .45 1 1v13.637l-5.162-3.668a.49.49 0 0 0-.676 0z" fill-rule="evenodd"/></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="25" height="26" viewBox="0 0 25 26"><path d="M19 7c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 0 0 .706.03L12.5 17.85l5.662 4.126a.508.508 0 0 0 .708-.03.5.5 0 0 0 .118-.285H19V7z" fill-rule="evenodd"/></svg></span></span></button></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="streamItem streamItem--conversation js-streamItem" data-action-scope="_actionscope_11">
+ <div class="streamItemConversation container u-maxWidth660">
+ <div class="streamItemConversation-divider"></div>
+ <div class="heading u-clearfix heading--light heading--simple">
+ <div class="u-clearfix">
+ <div class="heading-content u-floatLeft"><span class="heading-title">Conversation with <a class="link link--accent u-accentColor--textNormal u-baseColor--link" href="https://medium.com/@johncwelch" data-action="show-user-card" data-action-value="77a507c5ad19" data-action-type="hover" data-user-id="77a507c5ad19" dir="auto">John C. Welch</a>.</span></div>
+ </div>
+ </div>
+ <div class="row streamItemConversation-inner cardChromeless">
+ <div class="streamItemConversationItem streamItemConversationItem--preview">
+ <div class="postArticle js-postArticle js-trackedPost postArticle--short" data-post-id="f7bed6759086" data-source="responses---------2----------" data-action-scope="_actionscope_12" data-scroll="native">
+ <div class="u-clearfix u-marginBottom10">
+ <div class="postMetaInline u-floatLeft">
+ <div class="postMetaInline-avatar">
+ <a class="link avatar u-baseColor--link" href="https://medium.com/@Tuplet" data-action="show-user-card" data-action-value="3c10dce1c66c" data-action-type="hover" data-user-id="3c10dce1c66c" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*L93pJARs7aktgijd_9AT0w.png" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of J.Wilkins" /></a>
+ </div>
+ <div class="postMetaInline-authorLockup"><a class="link link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken u-baseColor--link" href="https://medium.com/@Tuplet?source=responses---------2----------" data-action="show-user-card" data-action-source="responses---------2----------" data-action-value="3c10dce1c66c" data-action-type="hover" data-user-id="3c10dce1c66c" dir="auto">J.Wilkins</a>
+ <div class="u-fontSizeSmallest u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/@Tuplet/you-did-not-have-to-make-up-an-east-frog-balls-arkansas-when-there-is-literally-a-possum-grape-f7bed6759086?source=responses---------2----------" data-action="open-post" data-action-value="https://medium.com/@Tuplet/you-did-not-have-to-make-up-an-east-frog-balls-arkansas-when-there-is-literally-a-possum-grape-f7bed6759086?source=responses---------2----------" data-action-source="preview-listing"><time datetime="2015-10-16T16:19:36.962Z">Oct 17, 2015</time></a></div>
+ </div>
+ </div>
+ </div>
+ <div>
+ <a class="" href="https://medium.com/@Tuplet/you-did-not-have-to-make-up-an-east-frog-balls-arkansas-when-there-is-literally-a-possum-grape-f7bed6759086?source=responses---------2----------">
+ <div class="postArticle-content js-postField">
+ <section class="section section--body section--first section--last">
+ <div class="section-divider">
+ <hr class="section-divider" />
+ </div>
+ <div class="section-content">
+ <div class="section-inner sectionLayout--insetColumn">
+ <p name="ca89" id="ca89" class="graf graf--p graf--leading graf--trailing">You did not have to make up an “East Frog Balls” Arkansas when there is literally a “Possum Grape”</p>
+ </div>
+ </div>
+ </section>
+ </div>
+ </a>
+ </div>
+ <div class="u-clearfix u-paddingTop10">
+ <div class="buttonSet buttonSet--withLabels u-floatLeft">
+ <div class="buttonSet-inner">
+ <div class="js-actionRecommend" data-post-id="f7bed6759086" data-is-flush-left="true" data-source="listing"><button class="button button--primary button--chromeless is-touchIconFadeInPulse u-accentColor--buttonNormal button--withIcon button--withSvgIcon u-accentColor--iconLight js-actionRecommendButton" title="Recommend to share this article with your followers and let the author know you liked it" aria-label="Recommend to share this article with your followers and let the author know you liked it" data-action="sign-in-prompt" data-sign-in-action="upvote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/f7bed6759086" data-action-source="listing"><span class="button-defaultState"><span class="svgIcon svgIcon--heart svgIcon--25px is-flushLeft"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="25" height="25" viewBox="0 0 25 25"><path d="M12.5 21a.492.492 0 0 1-.327-.122c-.278-.24-.61-.517-.978-.826-2.99-2.5-7.995-6.684-7.995-10.565C3.2 6.462 5.578 4 8.5 4c1.55 0 3 .695 4 1.89a5.21 5.21 0 0 1 4-1.89c2.923 0 5.3 2.462 5.3 5.487 0 3.97-4.923 8.035-7.865 10.464-.42.35-.798.66-1.108.93a.503.503 0 0 1-.327.12zM8.428 4.866c-2.414 0-4.378 2.05-4.378 4.568 0 3.475 5.057 7.704 7.774 9.975.243.2.47.39.676.56.245-.21.52-.43.813-.68 2.856-2.36 7.637-6.31 7.637-9.87 0-2.52-1.964-4.57-4.377-4.57-1.466 0-2.828.76-3.644 2.04-.1.14-.26.23-.43.23-.18 0-.34-.09-.43-.24-.82-1.27-2.18-2.03-3.65-2.03z" fill-rule="evenodd"/></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--heartFilled svgIcon--25px is-flushLeft"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="25" height="25" viewBox="0 0 25 25"><path d="M12.5 21a.492.492 0 0 1-.327-.122c-.278-.24-.61-.517-.978-.826-2.99-2.5-7.995-6.684-7.995-10.565C3.2 6.462 5.578 4 8.5 4c1.55 0 3 .695 4 1.89a5.21 5.21 0 0 1 4-1.89c2.923 0 5.3 2.462 5.3 5.487 0 3.97-4.923 8.035-7.865 10.464-.42.35-.798.66-1.108.93a.503.503 0 0 1-.327.12z" fill-rule="evenodd"/></svg></span></span></button><button class="button button--chromeless u-baseColor--buttonNormal u-disablePointerEvents" data-action="show-recommends" data-action-value="f7bed6759086">1</button></div>
+ </div>
+ </div>
+ <div class="buttonSet u-floatRight">
+ <div class="buttonSet-inner"><a class="button button--chromeless u-baseColor--buttonNormal" href="https://medium.com/@Tuplet/you-did-not-have-to-make-up-an-east-frog-balls-arkansas-when-there-is-literally-a-possum-grape-f7bed6759086?source=responses---------2----------#--responses" data-action-source="responses---------2----------">1 response</a><button class="button button--chromeless is-touchIconFadeInPulse u-baseColor--buttonNormal button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" title="Bookmark this story to read later" aria-label="Bookmark this story to read later" data-action="sign-in-prompt" data-sign-in-action="add-to-bookmarks" data-requires-token="true" data-redirect="https://medium.com/_/bookmark/p/f7bed6759086"><span class="button-defaultState"><span class="svgIcon svgIcon--bookmark svgIcon--25px is-flushRight"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="25" height="25" viewBox="0 0 25 25"><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 0 0 .706.03L12.5 16.85l5.662 4.126a.508.508 0 0 0 .708-.03.5.5 0 0 0 .118-.285H19V6zm-6.838 9.97L7 19.636V6c0-.55.45-1 1-1h9c.55 0 1 .45 1 1v13.637l-5.162-3.668a.49.49 0 0 0-.676 0z" fill-rule="evenodd"/></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="25" height="26" viewBox="0 0 25 26"><path d="M19 7c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 0 0 .706.03L12.5 17.85l5.662 4.126a.508.508 0 0 0 .708-.03.5.5 0 0 0 .118-.285H19V7z" fill-rule="evenodd"/></svg></span></span></button></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="streamItemConversationItem streamItemConversationItem--preview">
+ <div class="postArticle js-postArticle js-trackedPost postArticle--short" data-post-id="a7a213849339" data-source="responses---------2----------" data-action-scope="_actionscope_13" data-scroll="native">
+ <div class="u-clearfix u-marginBottom10">
+ <div class="postMetaInline u-floatLeft">
+ <div class="postMetaInline-avatar">
+ <a class="link avatar u-baseColor--link" href="https://medium.com/@johncwelch" data-action="show-user-card" data-action-value="77a507c5ad19" data-action-type="hover" data-user-id="77a507c5ad19" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/0*qPHQu8WqsC6cV_ud.jpg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of John C. Welch" /></a>
+ </div>
+ <div class="postMetaInline-authorLockup"><a class="link link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken u-baseColor--link" href="https://medium.com/@johncwelch?source=responses---------2----------" data-action="show-user-card" data-action-source="responses---------2----------" data-action-value="77a507c5ad19" data-action-type="hover" data-user-id="77a507c5ad19" dir="auto">John C. Welch</a>
+ <div class="u-fontSizeSmallest u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><a class="link link--darken" href="https://medium.com/@johncwelch/lmao-unsurprising-a7a213849339?source=responses---------2----------" data-action="open-post" data-action-value="https://medium.com/@johncwelch/lmao-unsurprising-a7a213849339?source=responses---------2----------" data-action-source="preview-listing"><time datetime="2015-10-16T20:47:45.884Z">Oct 17, 2015</time></a></div>
+ </div>
+ </div>
+ </div>
+ <div>
+ <a class="" href="https://medium.com/@johncwelch/lmao-unsurprising-a7a213849339?source=responses---------2----------">
+ <div class="postArticle-content js-postField">
+ <section class="section section--body section--first section--last">
+ <div class="section-divider">
+ <hr class="section-divider" />
+ </div>
+ <div class="section-content">
+ <div class="section-inner sectionLayout--insetColumn">
+ <p name="b80c" id="b80c" class="graf graf--p graf--leading">LMAO. Unsurprising. However, the source of that is a Carlin routine on people who cannot get off the phone and bore with their crap. I think it went: “…it was the year we visited my sister in Frog Balls, Arkansas”. Ever since, I use that, or the EFB variant when I want to bring to mind a wee tiny town.</p>
+ <p name="61a4" id="61a4" class="graf graf--p graf-after--p graf--trailing">because it makes me giggle. EVERY TIME.</p>
+ </div>
+ </div>
+ </section>
+ </div>
+ </a>
+ </div>
+ <div class="u-clearfix u-paddingTop10">
+ <div class="buttonSet buttonSet--withLabels u-floatLeft">
+ <div class="buttonSet-inner">
+ <div class="js-actionRecommend" data-post-id="a7a213849339" data-is-flush-left="true" data-source="listing"><button class="button button--primary button--chromeless is-touchIconFadeInPulse u-accentColor--buttonNormal button--withIcon button--withSvgIcon u-accentColor--iconLight js-actionRecommendButton" title="Recommend to share this article with your followers and let the author know you liked it" aria-label="Recommend to share this article with your followers and let the author know you liked it" data-action="sign-in-prompt" data-sign-in-action="upvote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/a7a213849339" data-action-source="listing"><span class="button-defaultState"><span class="svgIcon svgIcon--heart svgIcon--25px is-flushLeft"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="25" height="25" viewBox="0 0 25 25"><path d="M12.5 21a.492.492 0 0 1-.327-.122c-.278-.24-.61-.517-.978-.826-2.99-2.5-7.995-6.684-7.995-10.565C3.2 6.462 5.578 4 8.5 4c1.55 0 3 .695 4 1.89a5.21 5.21 0 0 1 4-1.89c2.923 0 5.3 2.462 5.3 5.487 0 3.97-4.923 8.035-7.865 10.464-.42.35-.798.66-1.108.93a.503.503 0 0 1-.327.12zM8.428 4.866c-2.414 0-4.378 2.05-4.378 4.568 0 3.475 5.057 7.704 7.774 9.975.243.2.47.39.676.56.245-.21.52-.43.813-.68 2.856-2.36 7.637-6.31 7.637-9.87 0-2.52-1.964-4.57-4.377-4.57-1.466 0-2.828.76-3.644 2.04-.1.14-.26.23-.43.23-.18 0-.34-.09-.43-.24-.82-1.27-2.18-2.03-3.65-2.03z" fill-rule="evenodd"/></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--heartFilled svgIcon--25px is-flushLeft"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="25" height="25" viewBox="0 0 25 25"><path d="M12.5 21a.492.492 0 0 1-.327-.122c-.278-.24-.61-.517-.978-.826-2.99-2.5-7.995-6.684-7.995-10.565C3.2 6.462 5.578 4 8.5 4c1.55 0 3 .695 4 1.89a5.21 5.21 0 0 1 4-1.89c2.923 0 5.3 2.462 5.3 5.487 0 3.97-4.923 8.035-7.865 10.464-.42.35-.798.66-1.108.93a.503.503 0 0 1-.327.12z" fill-rule="evenodd"/></svg></span></span></button></div>
+ </div>
+ </div>
+ <div class="buttonSet u-floatRight">
+ <div class="buttonSet-inner"><button class="button button--chromeless is-touchIconFadeInPulse u-baseColor--buttonNormal button--withIcon button--withSvgIcon button--bookmark js-bookmarkButton" title="Bookmark this story to read later" aria-label="Bookmark this story to read later" data-action="sign-in-prompt" data-sign-in-action="add-to-bookmarks" data-requires-token="true" data-redirect="https://medium.com/_/bookmark/p/a7a213849339"><span class="button-defaultState"><span class="svgIcon svgIcon--bookmark svgIcon--25px is-flushRight"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="25" height="25" viewBox="0 0 25 25"><path d="M19 6c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 0 0 .706.03L12.5 16.85l5.662 4.126a.508.508 0 0 0 .708-.03.5.5 0 0 0 .118-.285H19V6zm-6.838 9.97L7 19.636V6c0-.55.45-1 1-1h9c.55 0 1 .45 1 1v13.637l-5.162-3.668a.49.49 0 0 0-.676 0z" fill-rule="evenodd"/></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--bookmarkFilled svgIcon--25px is-flushRight"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="25" height="26" viewBox="0 0 25 26"><path d="M19 7c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v14.66h.012c.01.103.045.204.12.285a.5.5 0 0 0 .706.03L12.5 17.85l5.662 4.126a.508.508 0 0 0 .708-.03.5.5 0 0 0 .118-.285H19V7z" fill-rule="evenodd"/></svg></span></span></button></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="container u-maxWidth640 js-showOtherResponses">
+ <div class="row"><button class="button button--primary button--withChrome u-accentColor--buttonNormal responsesStream-showOtherResponses cardChromeless u-sizeFullWidth" data-action="show-other-responses">Show all responses</button></div>
+ </div>
+ <div class="responsesStream js-responsesStreamOther"></div>
+ </div>
+ </div>
+ </div>
+ <div class="supplementalPostContent js-readNext"></div>
+ <div class="supplementalPostContent js-heroPromo"></div>
+ </footer>
+ </article>
+ </main>
+ <div class="u-marginAuto u-maxWidth1000">
+ <div class="js-postShareWidget u-foreground u-sm-hide u-transition--fadeOut300 u-fixed" data-scroll="fixed" style="top: 150px;">
+ <ul>
+ <li class="u-uiTextSemibold u-textAlignCenter u-textColorNormal u-fontSizeSmallest u-textUppercase">Share</li>
+ <li class="u-textAlignCenter">
+ <div class="js-actionRecommend" data-post-id="d146a92473a1" data-is-icon-29px="true" data-is-vertical="true" data-has-recommend-list="true" data-source="post_share_widget"><button class="button button--primary button--large button--chromeless is-touchIconFadeInPulse u-accentColor--buttonNormal button--withIcon button--withSvgIcon u-accentColor--iconLight js-actionRecommendButton" title="Recommend to share this article with your followers and let the author know you liked it" aria-label="Recommend to share this article with your followers and let the author know you liked it" data-action="sign-in-prompt" data-sign-in-action="upvote" data-requires-token="true" data-redirect="https://medium.com/_/vote/p/d146a92473a1" data-action-source="post_share_widget"><span class="button-defaultState"><span class="svgIcon svgIcon--heart svgIcon--29px"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="29" height="29" viewBox="0 0 29 29"><path d="M16.215 23.716c-.348.288-.984.826-1.376 1.158a.526.526 0 0 1-.68 0c-.36-.307-.92-.78-1.22-1.03C9.22 20.734 3 15.527 3 10.734 3 7.02 5.916 4 9.5 4c1.948 0 3.77.898 5 2.434C15.73 4.898 17.552 4 19.5 4c3.584 0 6.5 3.02 6.5 6.734 0 4.9-6.125 9.96-9.785 12.982zM19.5 5.2c-1.774 0-3.423.923-4.41 2.468a.699.699 0 0 1-.59.323.706.706 0 0 1-.59-.32c-.988-1.54-2.637-2.47-4.41-2.47-2.922 0-5.3 2.49-5.3 5.54 0 4.23 6.19 9.41 9.517 12.19.217.18.566.48.783.66l.952-.79c3.496-2.88 9.348-7.72 9.348-12.05 0-3.05-2.378-5.53-5.3-5.53z"/></svg></span></span><span class="button-activeState"><span class="svgIcon svgIcon--heartFilled svgIcon--29px"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="29" height="29" viewBox="0 0 29 29"><path d="M19.5 4c-1.948 0-3.77.898-5 2.434C13.27 4.898 11.448 4 9.5 4 5.916 4 3 7.02 3 10.734c0 4.793 6.227 10 9.95 13.11.296.25.853.723 1.212 1.03.196.166.48.166.677 0 .39-.332 1.02-.87 1.37-1.158 3.66-3.022 9.79-8.08 9.79-12.982C26 7.02 23.08 4 19.5 4z" fill-rule="evenodd"/></svg></span></span></button><button class="button button--chromeless u-baseColor--buttonNormal u-block u-marginAuto u-marginTopNegative5" data-action="show-recommends" data-action-value="d146a92473a1">168</button></div>
+ </li>
+ <li class="u-textAlignCenter"><button class="button button--large button--dark button--chromeless is-touchIconBlackPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon" title="Share on Twitter" aria-label="Share on Twitter" data-action="share-on-twitter" data-action-source="post_share_widget"><span class="svgIcon svgIcon--twitter svgIcon--29px"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="29" height="29" viewBox="0 0 29 29"><path d="M21.967 11.8c.018 5.93-4.607 11.18-11.177 11.18-2.172 0-4.25-.62-6.047-1.76l-.268.422-.038.5.186.013.168.012c.3.02.44.032.6.046 2.06-.026 3.95-.686 5.49-1.86l1.12-.85-1.4-.048c-1.57-.055-2.92-1.08-3.36-2.51l-.48.146-.05.5c.22.03.48.05.75.08.48-.02.87-.07 1.25-.15l2.33-.49-2.32-.49c-1.68-.35-2.91-1.83-2.91-3.55 0-.05 0-.01-.01.03l-.49-.1-.25.44c.63.36 1.35.57 2.07.58l1.7.04L7.4 13c-.978-.662-1.59-1.79-1.618-3.047a4.08 4.08 0 0 1 .524-1.8l-.825.07a12.188 12.188 0 0 0 8.81 4.515l.59.033-.06-.59v-.02c-.05-.43-.06-.63-.06-.87a3.617 3.617 0 0 1 6.27-2.45l.2.21.28-.06c1.01-.22 1.94-.59 2.73-1.09l-.75-.56c-.1.36-.04.89.12 1.36.23.68.58 1.13 1.17.85l-.21-.45-.42-.27c-.52.8-1.17 1.48-1.92 2L22 11l.016.28c.013.2.014.35 0 .52v.04zm.998.038c.018-.22.017-.417 0-.66l-.498.034.284.41a8.183 8.183 0 0 0 2.2-2.267l.97-1.48-1.6.755c.17-.08.3-.02.34.03a.914.914 0 0 1-.13-.292c-.1-.297-.13-.64-.1-.766l.36-1.254-1.1.695c-.69.438-1.51.764-2.41.963l.48.15a4.574 4.574 0 0 0-3.38-1.484 4.616 4.616 0 0 0-4.61 4.613c0 .29.02.51.08.984l.01.02.5-.06.03-.5c-3.17-.18-6.1-1.7-8.08-4.15l-.48-.56-.36.64c-.39.69-.62 1.48-.65 2.28.04 1.61.81 3.04 2.06 3.88l.3-.92c-.55-.02-1.11-.17-1.6-.45l-.59-.34-.14.67c-.02.08-.02.16 0 .24-.01 2.12 1.55 4.01 3.69 4.46l.1-.49-.1-.49c-.33.07-.67.12-1.03.14-.18-.02-.43-.05-.64-.07l-.76-.09.23.73c.57 1.84 2.29 3.14 4.28 3.21l-.28-.89a8.252 8.252 0 0 1-4.85 1.66c-.12-.01-.26-.02-.56-.05l-.17-.01-.18-.01L2.53 21l1.694 1.07a12.233 12.233 0 0 0 6.58 1.917c7.156 0 12.2-5.73 12.18-12.18l-.002.04z"/></svg></span></button></li>
+ <li class="u-textAlignCenter"><button class="button button--large button--dark button--chromeless is-touchIconBlackPulse u-baseColor--buttonDark button--withIcon button--withSvgIcon" title="Share on Facebook" aria-label="Share on Facebook" data-action="share-on-facebook" data-action-source="post_share_widget"><span class="svgIcon svgIcon--facebook svgIcon--29px"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="29" height="29" viewBox="0 0 29 29"><path d="M16.39 23.61v-5.808h1.846a.55.55 0 0 0 .546-.48l.36-2.797a.551.551 0 0 0-.547-.62H16.39V12.67c0-.67.12-.813.828-.813h1.474a.55.55 0 0 0 .55-.55V8.803a.55.55 0 0 0-.477-.545c-.436-.06-1.36-.116-2.22-.116-2.5 0-4.13 1.62-4.13 4.248v1.513H10.56a.551.551 0 0 0-.55.55v2.797c0 .304.248.55.55.55h1.855v5.76c-4.172-.96-7.215-4.7-7.215-9.1 0-5.17 4.17-9.36 9.31-9.36 5.14 0 9.31 4.19 9.31 9.36 0 4.48-3.155 8.27-7.43 9.15M14.51 4C8.76 4 4.1 8.684 4.1 14.46c0 5.162 3.75 9.523 8.778 10.32a.55.55 0 0 0 .637-.543v-6.985a.551.551 0 0 0-.55-.55H11.11v-1.697h1.855a.55.55 0 0 0 .55-.55v-2.063c0-2.02 1.136-3.148 3.03-3.148.567 0 1.156.027 1.597.06v1.453h-.924c-1.363 0-1.93.675-1.93 1.912v1.78c0 .3.247.55.55.55h2.132l-.218 1.69H15.84c-.305 0-.55.24-.55.55v7.02c0 .33.293.59.623.54 5.135-.7 9.007-5.11 9.007-10.36C24.92 8.68 20.26 4 14.51 4"/></svg></span></button></li>
+ </ul>
+ </div>
+ </div>
+ <div class="u-fixed u-bottom0 u-sizeFullWidth u-backgroundWhite u-boxShadowTop u-borderBox u-paddingTop10 u-paddingBottom10 u-zIndexMetabar u-xs-paddingLeft10 u-xs-paddingRight10">
+ <div class="u-maxWidth700 u-marginAuto u-flexCenter">
+ <div class="u-fontSizeSmall u-flex1 u-flexCenter">
+ <div class="u-flex0 u-inlineBlock u-paddingRight20 u-xs-paddingRight10">
+ <a class="link avatar u-inline u-baseColor--link" href="https://medium.com/@johncwelch" data-action="show-user-card" data-action-value="77a507c5ad19" data-action-type="hover" data-user-id="77a507c5ad19" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/80/80/0*qPHQu8WqsC6cV_ud.jpg" class="avatar-image avatar-image--smaller" alt="Go to the profile of John C. Welch" /></a>
+ </div>
+ <div class="u-flex1 u-inlineBlock">
+ <div class="u-xs-hide">Never miss a story from<strong> John C. Welch</strong>, when you sign up for Medium. <a class="link link--accent u-accentColor--textNormal u-accentColor--textDarken u-baseColor--link" href="https://medium.com/@Medium/personalize-your-medium-experience-with-users-publications-tags-26a41ab1ee0c#.hx4zuv3mg" data-action-source="sticky_footer">Learn more</a></div>
+ <div class="u-xs-show">Never miss a story from<strong> John C. Welch</strong></div>
+ </div>
+ </div>
+ <div class="u-marginLeft50 u-xs-marginAuto"><span class="followState js-followState buttonSet-inner" data-user-id="77a507c5ad19"><button class="button u-noUserSelect button--withChrome u-baseColor--buttonNormal button--withHover button--unblock js-unblockButton u-uiTextSemibold u-textUppercase u-fontSizeSmallest" data-action="sign-in-prompt" data-sign-in-action="toggle-block-user" data-requires-token="true" data-action-source="sticky_footer"><span class="button-label button-defaultState">Blocked</span><span class="button-label button-hoverState">Unblock</span></button><button class="button button--primary is-active u-noUserSelect button--withChrome u-accentColor--buttonNormal button--follow js-followButton u-uiTextSemibold u-textUppercase u-fontSizeSmallest" data-action="sign-in-prompt" data-sign-in-action="toggle-subscribe-user" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/user/77a507c5ad19" data-action-source="sticky_footer_follow"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Get updates</span></button></span>
+ </div>
+ </div>
+ </div>
+ <div class="highlightMenu" data-action-scope="_actionscope_3">
+ <div class="highlightMenu-inner">
+ <div class="buttonSet"><button class="button button--chromeless u-baseColor--buttonNormal button--withIcon button--withSvgIcon button--highlightMenu u-accentColor--highlightStrong js-highlightMenuQuoteButton" data-action="sign-in-prompt" data-sign-in-action="quote" data-requires-token="true" data-redirect-type="quote" data-action-source="quote_menu"><span class="svgIcon svgIcon--highlighter svgIcon--25px"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="25" height="25" viewBox="0 0 25 25"><path d="M13.7 15.964l5.204-9.387-4.726-2.62-5.204 9.387 4.726 2.62zm-.493.885l-1.313 2.37-1.252.54-.702 1.263-3.796-.865 1.228-2.213-.202-1.35 1.314-2.37 4.722 2.616z" fill-rule="evenodd"/></svg></span></button><button class="button button--chromeless u-baseColor--buttonNormal button--withIcon button--withSvgIcon button--highlightMenu " data-action="sign-in-prompt" data-sign-in-action="quote-respond" data-action-source="quote_menu"><span class="svgIcon svgIcon--responseFilled svgIcon--25px"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="25" height="25" viewBox="0 0 25 25"><path d="M19.074 21.117c-1.244 0-2.432-.37-3.532-1.096a7.792 7.792 0 0 1-.703-.52c-.77.21-1.57.32-2.38.32-4.67 0-8.46-3.5-8.46-7.8C4 7.7 7.79 4.2 12.46 4.2c4.662 0 8.457 3.5 8.457 7.803 0 2.058-.85 3.984-2.403 5.448.023.17.06.35.118.55.192.69.537 1.38 1.026 2.04.15.21.172.48.058.7a.686.686 0 0 1-.613.38h-.03z" fill-rule="evenodd"/></svg></span></button><button class="button button--chromeless u-baseColor--buttonNormal button--withIcon button--withSvgIcon button--highlightMenu " data-action="twitter" data-action-source="quote_menu"><span class="svgIcon svgIcon--twitterFilled svgIcon--25px"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="25" height="25" viewBox="0 0 25 25"><path d="M21.725 5.338c-.744.47-1.605.804-2.513 1.006a3.978 3.978 0 0 0-2.942-1.293c-2.22 0-4.02 1.81-4.02 4.02 0 .32.034.63.07.94-3.31-.18-6.27-1.78-8.255-4.23a4.544 4.544 0 0 0-.574 2.01c.04 1.43.74 2.66 1.8 3.38-.63-.01-1.25-.19-1.79-.5v.08c0 1.93 1.38 3.56 3.23 3.95-.34.07-.7.12-1.07.14-.25-.02-.5-.04-.72-.07.49 1.58 1.97 2.74 3.74 2.8a8.49 8.49 0 0 1-5.02 1.72c-.3-.03-.62-.04-.93-.07A11.447 11.447 0 0 0 8.88 21c7.386 0 11.43-6.13 11.414-11.414.015-.21.01-.38 0-.578a7.604 7.604 0 0 0 2.01-2.08 7.27 7.27 0 0 1-2.297.645 3.856 3.856 0 0 0 1.72-2.23"/></svg></span></button>
+ <div class="buttonSet-separator"></div><button class="button button--chromeless u-baseColor--buttonNormal button--withIcon button--withSvgIcon button--highlightMenu " data-action="sign-in-prompt" data-sign-in-action="highlight" data-action-source="quote_menu"><span class="svgIcon svgIcon--privatenoteFilled svgIcon--25px"><svg xmlns="http://www.w3.org/2000/svg" class="svgIcon-use" width="25" height="25" viewBox="0 0 25 25"><g fill-rule="evenodd"><path d="M17.662 4.552H7.346A4.36 4.36 0 0 0 3 8.898v5.685c0 2.168 1.614 3.962 3.697 4.28v2.77c0 .303.35.476.59.29l3.904-2.994h6.48c2.39 0 4.35-1.96 4.35-4.35V8.9c0-2.39-1.95-4.346-4.34-4.346zM16 14.31a.99.99 0 0 1-1.003.99h-4.994C9.45 15.3 9 14.85 9 14.31v-3.02a.99.99 0 0 1 1-.99v-.782a2.5 2.5 0 0 1 2.5-2.51c1.38 0 2.5 1.13 2.5 2.51v.782c.552.002 1 .452 1 .99v3.02z"/><path d="M14 9.81c0-.832-.674-1.68-1.5-1.68-.833 0-1.5.84-1.5 1.68v.49h3v-.49z"/></g></svg></span></button></div>
+ </div>
+ <div class="highlightMenu-arrowClip"><span class="highlightMenu-arrow"></span></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="loadingBar"></div>
+ <script>
+ // &lt;![CDATA[
+ window["obvInit"] = function(opt_embedded) {
+ window["obvInit"]["embedded"] = opt_embedded;
+ window["obvInit"]["ready"] = true;
+ }
+ // ]]&gt;
+ </script>
+ <script>
+ // &lt;![CDATA[
+ var GLOBALS = {
+ "audioUrl": "https://d1fcbxp97j4nb2.cloudfront.net",
+ "baseUrl": "https://medium.com",
+ "buildLabel": "27588-3cb8971",
+ "currentUser": {
+ "userId": "lo_4c2ff54882b4",
+ "isVerified": false,
+ "subscriberEmail": ""
+ },
+ "currentUserHasUnverifiedEmail": false,
+ "isAuthenticated": false,
+ "isCurrentUserVerified": false,
+ "language": "en-us",
+ "mediumTwitterScreenName": "medium",
+ "miroUrl": "https://cdn-images-1.medium.com",
+ "moduleUrls": {
+ "base": "https://cdn-static-1.medium.com/_/fp/gen-js/main-base.bundle.iwEjGQsTOduS_qDGmWZZng.js",
+ "notes": "https://cdn-static-1.medium.com/_/fp/gen-js/main-notes.bundle.4fp6HSt83KvFshqkijtyyQ.js",
+ "posters": "https://cdn-static-1.medium.com/_/fp/gen-js/main-posters.bundle.sBoPOCjeITRjo9OsPC1VHA.js",
+ "common-async": "https://cdn-static-1.medium.com/_/fp/gen-js/main-common-async.bundle.bQAtenPub_VKVyJSle9kcw.js",
+ "stats": "https://cdn-static-1.medium.com/_/fp/gen-js/main-stats.bundle.MbJUn4Gmy9lhzoIH0Xeu-Q.js",
+ "misc-screens": "https://cdn-static-1.medium.com/_/fp/gen-js/main-misc-screens.bundle.xXy0Vq1iCvTjwpERpFYbLQ.js"
+ },
+ "previewConfig": {
+ "weightThreshold": 1,
+ "weightImageParagraph": 0.51,
+ "weightIframeParagraph": 0.8,
+ "weightTextParagraph": 0.08,
+ "weightEmptyParagraph": 0,
+ "weightP": 0.003,
+ "weightH": 0.005,
+ "weightBq": 0.003,
+ "minPTextLength": 60,
+ "truncateBoundaryChars": 20,
+ "detectTitle": true,
+ "detectTitleLevThreshold": 0.15
+ },
+ "productName": "Medium",
+ "supportsEdit": true,
+ "termsUrl": "//medium.com/policy/9db0094a1e0f",
+ "textshotHost": "textshot.medium.com",
+ "transactionId": "1487321871169:47a64aeb5b9",
+ "useragent": {
+ "browser": "firefox",
+ "family": "firefox",
+ "os": "mac",
+ "version": 54,
+ "supportsDesktopEdit": true,
+ "supportsInteract": true,
+ "supportsView": true,
+ "isMobile": false,
+ "isTablet": false,
+ "isNative": false,
+ "supportsFileAPI": true,
+ "isTier1": true,
+ "clientVersion": "",
+ "unknownParagraphsBad": false,
+ "clientChannel": "",
+ "supportsRealScrollEvents": true,
+ "supportsVhUnits": true,
+ "ruinsViewportSections": false,
+ "supportsHtml5Video": true,
+ "supportsMagicUnderlines": true,
+ "isWebView": false,
+ "isFacebookWebView": false,
+ "supportsProgressiveMedia": true,
+ "supportsPromotedPosts": true,
+ "isBot": false,
+ "supportsScrollableMetabar": true
+ },
+ "variants": {
+ "enable_fuzzy_number_experiment": true,
+ "allow_access": true,
+ "allow_signup": true,
+ "allow_test_auth": "disallow",
+ "signin_services": "twitter,facebook,google,email,google-fastidv",
+ "signup_services": "twitter,facebook,google,email,google-fastidv",
+ "android_rating_prompt_recommend_threshold": 5,
+ "google_sign_in_android": true,
+ "enable_onboarding": true,
+ "ios_custom_miro_url": "https://cdn-images-1.medium.com",
+ "reengagement_notification_duration": 3,
+ "enable_adsnative_integration": true,
+ "browsable_stream_config_bucket": "curated",
+ "ios_small_post_preview_truncation_length": 5.5,
+ "ios_large_post_preview_truncation_length": 5.5,
+ "disable_ios_catalog_badging": true,
+ "enable_ranked_feed_survey_promo": true,
+ "enable_prepublish_share_settings": true,
+ "enable_direct_auth_connect": true,
+ "enable_post_import": true,
+ "enable_sponsored_post_labelling": true,
+ "promoted_story_placement_locations": "POST_PAGE_FOOTER",
+ "prmt_to_people_experiment": "macro",
+ "enable_related_reads_curse_words_filtering": true,
+ "enable_search_collection_by_tag_recency_filter": true,
+ "search_collection_by_tag_filter_min_votes": 10,
+ "enable_drag_and_drop_ui": true,
+ "enable_catalog_takeover_route": true,
+ "show_more_placements": "control",
+ "enable_crex_directory": true,
+ "enable_client_digest": true,
+ "honeypot_footer_copy_strategy": 1,
+ "enable_sms_app_promo": true,
+ "enable_home_stream_follow_suggestions": true,
+ "enable_export_members": true,
+ "enable_onboarding_users_by_tag": true,
+ "enable_publication_popovers": true,
+ "enable_hide_broken_links": true
+ },
+ "xsrfToken": "",
+ "iosAppId": "828256236",
+ "supportEmail": "[email protected]",
+ "teamName": "Team Medium",
+ "fp": {
+ "/icons/favicon.svg": "https://cdn-static-1.medium.com/_/fp/icons/favicon.KjTfUJo7yJH_fCoUzzH3cg.svg",
+ "/icons/favicon-dev-editor.ico": "https://cdn-static-1.medium.com/_/fp/icons/favicon-dev-editor.YKKRxBO8EMvIqhyCwIiJeQ.ico",
+ "/icons/favicon-hatch-editor.ico": "https://cdn-static-1.medium.com/_/fp/icons/favicon-hatch-editor.BuEyHIqlyh2s_XEk4Rl32Q.ico",
+ "/icons/favicon-medium-editor.ico": "https://cdn-static-1.medium.com/_/fp/icons/favicon-medium-editor.PiakrZWB7Yb80quUVQWM6g.ico"
+ },
+ "authBaseUrl": "https://medium.com",
+ "imageUploadSizeMb": 25,
+ "isAuthDomainRequest": true,
+ "algoliaApiEndpoint": "https://MQ57UUUQZ2-dsn.algolia.net",
+ "algoliaAppId": "MQ57UUUQZ2",
+ "algoliaSearchOnlyApiKey": "f2b83a373dfeab4286ac5e9da958a5a9",
+ "iosAppStoreUrl": "https://itunes.apple.com/app/medium-everyones-stories/id828256236?pt=698524&amp;mt=8",
+ "iosAppLinkBaseUrl": "medium:",
+ "algoliaIndexPrefix": "medium_",
+ "androidPlayStoreUrl": "https://play.google.com/store/apps/details?id=com.medium.reader",
+ "googleClientId": "216296035834-k1k6qe060s2tp2a2jam4ljdcms00sttg.apps.googleusercontent.com",
+ "androidPackage": "com.medium.reader",
+ "androidPlayStoreMarketScheme": "market://details?id=com.medium.reader",
+ "googleAuthUri": "https://accounts.google.com/o/oauth2/auth",
+ "androidScheme": "medium",
+ "layoutData": {
+ "useDynamicScripts": false,
+ "googleAnalyticsTrackingCode": "UA-24232453-2",
+ "jsShivUrl": "https://cdn-static-1.medium.com/_/fp/js/shiv.RI2ePTZ5gFmMgLzG5bEVAA.js",
+ "useDynamicCss": false,
+ "faviconUrl": "https://cdn-static-1.medium.com/_/fp/icons/favicon-medium.TAS6uQ-Y7kcKgi0xjcYHXw.ico",
+ "faviconImageId": "1*W0nmth_X8nFKjn6BZ388UQ.png",
+ "fontSets": [{
+ "id": 1,
+ "url": "https://cdn-static-1.medium.com/_/fp/css/fonts-base.by5Oi_VbnwEIvhnWIsuUjA.css"
+ }, {
+ "id": 4,
+ "url": "https://cdn-static-1.medium.com/_/fp/css/fonts-lazy-base.g08Jj5TZPAiuPWj5YNUsSg.css"
+ }, {
+ "id": 6,
+ "url": "https://cdn-static-1.medium.com/_/fp/css/fonts-latin-base.141WxxXgxGxNcfeza73H7Q.css"
+ }, {
+ "id": 7,
+ "url": "https://cdn-static-1.medium.com/_/fp/css/fonts-lazy-latin-base.jMU532QDmysQMOINr-cr2A.css"
+ }]
+ },
+ "authBaseUrlRev": "moc.muidem//:sptth",
+ "isDnt": false,
+ "stripePublishableKey": "pk_live_7FReX44VnNIInZwrIIx6ghjl",
+ "archiveUploadSizeMb": 100,
+ "paymentData": {
+ "currencies": {
+ "1": {
+ "label": "US Dollar",
+ "external": "usd"
+ }
+ },
+ "countries": {
+ "1": {
+ "label": "United States of America",
+ "external": "US"
+ }
+ },
+ "accountTypes": {
+ "1": {
+ "label": "Individual",
+ "external": "individual"
+ },
+ "2": {
+ "label": "Company",
+ "external": "company"
+ }
+ }
+ },
+ "previewConfig2": {
+ "weightThreshold": 1,
+ "weightImageParagraph": 0.05,
+ "raiseImage": true,
+ "enforceHeaderHierarchy": true,
+ "isImageInsetRight": true
+ },
+ "isAmp": false,
+ "iosScheme": "medium",
+ "isSwBoot": false,
+ "lightstep": {
+ "accessToken": "ce5be895bef60919541332990ac9fef2",
+ "carrier": "{\"ot-tracer-spanid\":\"15bc037a2abad4d1\",\"ot-tracer-traceid\":\"079d7a5251befb42\",\"ot-tracer-sampled\":\"true\"}",
+ "host": "collector-medium.lightstep.com"
+ },
+ "facebook": {
+ "key": "542599432471018",
+ "secret": "c14df7146e9052a1131f3c900c1f0644",
+ "token": "542599432471018|1JqjIwxSfY9jOt_KwjWEl1R7T6I",
+ "namespace": "medium-com",
+ "scope": {
+ "default": ["public_profile", "email", "user_friends"],
+ "connect": ["public_profile", "email", "user_friends"],
+ "login": ["public_profile", "email", "user_friends"],
+ "share": ["public_profile", "email", "user_friends", "publish_actions"]
+ },
+ "smartPublishWhitelistedPublications": ["bcc38c8f6edf", "f3726e2a5878", "828a270689e", "81c7d351c056", "f30e42fd7ff8", "8bf1d7d3081b", "d16afa0ae7c", "d8f3f6ad9c31", "e74de0cedea9", "15f753907972", "c8c6a6b01ebd", "3412b9729488", "2ce4bbcf83bb", "544c7006046e", "7bfcdbc6b30a", "a268fd916824", "458a773bccd2"],
+ "instantArticles": {
+ "published": true,
+ "developmentMode": false
+ }
+ },
+ "mailingListArchiveUploadSizeMb": 2,
+ "availableMembershipPlans": [],
+ "isDoNotAuth": false,
+ "goldfinchUrl": "https://goldfinch.medium.com"
+ }
+ // ]]&gt;
+ </script>
+ <script charset="UTF-8" src="https://cdn-static-1.medium.com/_/fp/gen-js/main-base.bundle.iwEjGQsTOduS_qDGmWZZng.js" async=""></script>
+ <script>
+ // &lt;![CDATA[
+ window["obvInit"]({
+ "value": {
+ "id": "d146a92473a1",
+ "versionId": "3fed73795ca4",
+ "creatorId": "77a507c5ad19",
+ "creator": {
+ "userId": "77a507c5ad19",
+ "name": "John C. Welch",
+ "username": "johncwelch",
+ "createdAt": 1408545892232,
+ "lastPostCreatedAt": 1486930695056,
+ "imageId": "0*qPHQu8WqsC6cV_ud.jpg",
+ "backgroundImageId": "1*nYm-VLVTCtzpby_1jFUjRw.jpeg",
+ "bio": "",
+ "twitterScreenName": "",
+ "socialStats": {
+ "userId": "77a507c5ad19",
+ "usersFollowedCount": 63,
+ "usersFollowedByCount": 230,
+ "type": "SocialStats"
+ },
+ "social": {
+ "userId": "lo_4c2ff54882b4",
+ "targetUserId": "77a507c5ad19",
+ "type": "Social"
+ },
+ "facebookAccountId": "10152302268220732",
+ "allowNotes": 1,
+ "type": "User"
+ },
+ "homeCollectionId": "",
+ "title": "Samantha and The Great Big Lie",
+ "detectedLanguage": "en",
+ "latestVersion": "3fed73795ca4",
+ "latestPublishedVersion": "3fed73795ca4",
+ "hasUnpublishedEdits": false,
+ "latestRev": 1797,
+ "createdAt": 1444864250473,
+ "updatedAt": 1449844114438,
+ "acceptedAt": 0,
+ "firstPublishedAt": 1444875555607,
+ "latestPublishedAt": 1449844114438,
+ "vote": false,
+ "experimentalCss": "",
+ "displayAuthor": "",
+ "content": {
+ "subtitle": "How to get shanked doing what people say they want",
+ "bodyModel": {
+ "paragraphs": [{
+ "name": "b34c",
+ "type": 3,
+ "text": "Samantha and The Great Big Lie",
+ "markups": []
+ }, {
+ "name": "97e7",
+ "type": 1,
+ "text": "How to get shanked doing what people say they want",
+ "markups": []
+ }, {
+ "name": "df70",
+ "type": 6,
+ "text": "don’t preach to me\nMr. integrity",
+ "markups": []
+ }, {
+ "name": "c979",
+ "type": 1,
+ "text": "(EDIT: removed the link to Samantha’s post, because the arments and the grubers and the rest of The Deck Clique got what they wanted: a non-proper person driven off the internet lightly capped with a dusting of transphobia along the way, all totally okay because the ends justify the means, and it’s okay when “good” people do it.)",
+ "markups": []
+ }, {
+ "name": "342d",
+ "type": 1,
+ "text": "First, I need to say something about this article: the reason I’m writing it infuriates me. Worse than installing CS 3 or Acrobat 7 ever did, and the former inspired comparisons to fecophile porn. I’m actually too mad to cuss. Well, not completely, but in this case, I don’t think the people I’m mad at are worth the creativity I try to put into profanity. This is about a brownfield of hypocrisy and viciously deliberate mischaracterization that “shame” cannot even come close to the shame those behind it should feel.",
+ "markups": []
+ }, {
+ "name": "2e61",
+ "type": 1,
+ "text": "Now, read this post by Samantha Bielefeld: The Elephant in the Room. First, it is a well-written critical piece that raises a few points in a calm, rational, nonconfrontational fashion, exactly the kind of things the pushers of The Great Big Lie say we need more of, as opposed to the screaming that is the norm in such cases.",
+ "markups": []
+ }, {
+ "name": "cd31",
+ "type": 1,
+ "text": "…sorry, I should explain “The Great Big Lie”. There are several, but in this case, our specific instance of “The Great Big Lie” is about criticism. Over and over, you hear from the very people I am not going to be nice to in this that we need “better” criticsm. Instead of rage and anger, volume and vitriol, we need in-depth rational criticism, that isn’t personal or ad hominem. That it should focus on points, not people.",
+ "markups": [{
+ "type": 2,
+ "start": 87,
+ "end": 95
+ }]
+ }, {
+ "name": "ae07",
+ "type": 1,
+ "text": "That, readers, is “The Big Lie”. It is a lie so big that if one ponders the reality of it, as I am going to, one wonders why anyone would believe it. It is a lie and it is one we should stop telling.",
+ "markups": []
+ }, {
+ "name": "a02f",
+ "type": 1,
+ "text": "Samantha’s points (I assume you read it, for you are smart people who know the importance of such things) are fairly clear:",
+ "markups": []
+ }, {
+ "name": "9213",
+ "type": 10,
+ "text": "With the release of Overcast 2.0, a product Samantha actually likes, Marco Arment moved to a patronage model that will probably be successful for him.",
+ "markups": [{
+ "type": 3,
+ "start": 93,
+ "end": 108,
+ "href": "http://www.marco.org/2015/10/09/overcast2",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }]
+ }, {
+ "name": "dfa5",
+ "type": 10,
+ "text": "Arment’s insistence that “anyone can do this” while technically true, (anyone can in fact, implement this pricing model), also implies that “anyone” can have the kind of success that a developer with Marco’s history, financial status, and deep ties to the Apple News Web is expected to have. This is silly.",
+ "markups": [{
+ "type": 3,
+ "start": 26,
+ "end": 44,
+ "href": "https://medium.com/@marcoarment/pragmatic-app-pricing-a79fc07218f3",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }]
+ }, {
+ "name": "e55d",
+ "type": 10,
+ "text": "Marco Arment occupies a fairly unique position in the Apple universe, (gained by hard work and no small talent), and because of that, benefits from a set of privileges that a new developer or even one that has been around for a long time, but isn’t, well, Marco, not only don’t have, but have little chance of attaining anytime soon.",
+ "markups": [{
+ "type": 2,
+ "start": 256,
+ "end": 261
+ }]
+ }, {
+ "name": "35fb",
+ "type": 10,
+ "text": "Marco has earned his success and is entitled to the benefits and privileges it brings, but he seems rather blind to all of that, and seems to still imagine himself as “two guys in a garage”. This is just not correct.",
+ "markups": []
+ }, {
+ "name": "38e2",
+ "type": 10,
+ "text": "In addition, the benefits and privileges of the above ensure that by releasing Overcast 2 as a free app, with patronage pricing, he has, if not gutted, severely hurt the ability of folks actually selling their apps for an up-front price of not free to continue doing so. This has the effect of accelerating the “race to the bottom” in the podcast listening app segment, which hurts devs who cannot afford to work on a “I don’t really need this money, so whatever you feel like sending is okay” model.",
+ "markups": []
+ }, {
+ "name": "0481",
+ "type": 1,
+ "text": "None of this is incorrect. None of this is an ad hominem attack in any way. It is just pointing out that a developer of Arment’s stature and status lives in a very different world than someone in East Frog Balls, Arkansas trying to make a living off of App sales. Our dev in EFB doesn’t have the main sites on the Apple web falling all over themselves to review their app the way that Arment does. They’re not friends with the people being The Loop, Daring Fireball, SixColors, iMore, The Mac Observer, etc., yadda.",
+ "markups": []
+ }, {
+ "name": "5a45",
+ "type": 1,
+ "text": "So, our hero, in a fit of well-meaning ignorance writes this piece (posted this morning, 14 Oct. 15) and of course, the response and any criticisms are just as reasonable and thoughtful.",
+ "markups": []
+ }, {
+ "name": "3bc7",
+ "type": 1,
+ "text": "If you really believe that, you are the most preciously ignorant person in the world, and can I have your seriously charmed life.",
+ "markups": []
+ }, {
+ "name": "0fb2",
+ "type": 1,
+ "text": "The response, from all quarters, including Marco, someone who is so sensitive to criticism that the word “useless” is enough to shut him down, who blocked a friend of mine for the high crime of pointing out that his review of podcasting mics centered around higher priced gear and ignored folks without the scratch, who might not be ready for such things, is, in a single word, disgusting. Vomitous even.",
+ "markups": [{
+ "type": 3,
+ "start": 118,
+ "end": 141,
+ "href": "http://www.marco.org/2011/03/30/here-is-a-tip-for-all-the-non-developers-out",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }, {
+ "type": 3,
+ "start": 147,
+ "end": 354,
+ "href": "https://twitter.com/marcoarment/status/641330113934700544",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }]
+ }, {
+ "name": "9a6e",
+ "type": 1,
+ "text": "It’s an hours-long dogpile that beggars even my imagination, and I can imagine almost anything. Seriously, it’s all there in Samantha’s Twitter Feed. From what I can tell, she’s understandably shocked over it. I however was not. This one comment in her feed made me smile (warning, this wanders a bit…er…LOT. Twitter timelines are not easy to put together):",
+ "markups": [{
+ "type": 3,
+ "start": 125,
+ "end": 148,
+ "href": "https://twitter.com/s_bielefeld/with_replies",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }]
+ }, {
+ "name": "3271",
+ "type": 6,
+ "text": "I can see why you have some reservations about publishing it, but my gut feeling is that he would take it better than Nilay.",
+ "markups": []
+ }, {
+ "name": "ec72",
+ "type": 1,
+ "text": "Oh honey, bless your sweet, ignorant heart. Marco is one of the biggest pushers of The Big Lie, and one of the reasons it is such a lie.",
+ "markups": [{
+ "type": 2,
+ "start": 125,
+ "end": 129
+ }]
+ }, {
+ "name": "5cc4",
+ "type": 1,
+ "text": "But it gets better. First, you have the “hey, Marco earned his status!” lot. A valid point, and one Bielefeld explicitly acknowledges, here:",
+ "markups": [{
+ "type": 2,
+ "start": 52,
+ "end": 58
+ }]
+ }, {
+ "name": "4e5f",
+ "type": 6,
+ "text": "From his ground floor involvement in Tumblr (for which he is now a millionaire), to the creation and sale of a wildly successful app called Instapaper, he has become a household name in technology minded circles. It is this extensive time spent in the spotlight, the huge following on Twitter, and dedicated listeners of his weekly aired Accidental Tech Podcast, that has granted him the freedom to break from seeking revenue in more traditional manners.",
+ "markups": []
+ }, {
+ "name": "cee9",
+ "type": 1,
+ "text": "and here:",
+ "markups": []
+ }, {
+ "name": "3f1b",
+ "type": 6,
+ "text": "I’m not knocking his success, he has put effort into his line of work, and has built his own life.",
+ "markups": []
+ }, {
+ "name": "e527",
+ "type": 1,
+ "text": "and here:",
+ "markups": []
+ }, {
+ "name": "3e4f",
+ "type": 6,
+ "text": "He has earned his time in the spotlight, and it’s only natural for him to take advantage of it.",
+ "markups": []
+ }, {
+ "name": "8a01",
+ "type": 1,
+ "text": "But still, you get the people telling her something she already acknowledge:",
+ "markups": []
+ }, {
+ "name": "7685",
+ "type": 6,
+ "text": "I don’t think he’s blind. he’s worked to where he has gotten and has had failures like everyone else.",
+ "markups": []
+ }, {
+ "name": "b151",
+ "type": 1,
+ "text": "Thank you for restating something in the article. To the person who wrote it.",
+ "markups": []
+ }, {
+ "name": "87bc",
+ "type": 1,
+ "text": "In the original article, Samantha talked about the money Marco makes from his podcast. She based that on the numbers provided by ATP in terms of sponsorship rates and the number of current sponsors the podcast has. Is this going to yield perfect numbers? No. But the numbers you get from it will at least be reasonable, or should be unless the published sponsorship rates are just fantasy, and you’re stupid for taking them seriously.",
+ "markups": [{
+ "type": 3,
+ "start": 117,
+ "end": 162,
+ "href": "http://atp.fm/sponsor/",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }]
+ }, {
+ "name": "dbda",
+ "type": 1,
+ "text": "At first, she went with a simple formula:",
+ "markups": []
+ }, {
+ "name": "1b4e",
+ "type": 6,
+ "text": "$4K x 3 per episode = $12K x 52 weeks / 3 hosts splitting it.",
+ "markups": []
+ }, {
+ "name": "0b33",
+ "type": 1,
+ "text": "That’s not someone making shit up, right? Rather quickly, someone pointed out that she’d made an error in how she calculated it:",
+ "markups": []
+ }, {
+ "name": "76d7",
+ "type": 6,
+ "text": "That’s $4k per ad, no? So more like $12–16k per episode.",
+ "markups": []
+ }, {
+ "name": "a089",
+ "type": 1,
+ "text": "She’d already realized her mistake and fixed it.",
+ "markups": []
+ }, {
+ "name": "b369",
+ "type": 6,
+ "text": "which is actually wrong, and I’m correcting now. $4,000 per sponsor, per episode! So, $210,000 per year.",
+ "markups": []
+ }, {
+ "name": "8b3b",
+ "type": 1,
+ "text": "Again, this is based on publicly available data the only kind someone not part of ATP or a close friend of Arment has access to. So while her numbers may be wrong, if they are, there’s no way for her to know that. She’s basing her opinion on actual available data. Which is sadly rare.",
+ "markups": [{
+ "type": 2,
+ "start": 24,
+ "end": 47
+ }]
+ }, {
+ "name": "135a",
+ "type": 1,
+ "text": "This becomes a huge flashpoint. You name a reason to attack her over this, people do. No really. For example, she’s not calculating his income taxes correctly:",
+ "markups": [{
+ "type": 2,
+ "start": 136,
+ "end": 158
+ }]
+ }, {
+ "name": "5e7e",
+ "type": 6,
+ "text": "especially since it isn’t his only source of income thus, not an indicator of his marginal inc. tax bracket.",
+ "markups": []
+ }, {
+ "name": "6036",
+ "type": 6,
+ "text": "thus, guessing net income is more haphazard than stating approx. gross income.",
+ "markups": []
+ }, {
+ "name": "aac1",
+ "type": 1,
+ "text": "Ye Gods. She’s not doing his taxes for him, her point is invalid?",
+ "markups": []
+ }, {
+ "name": "600f",
+ "type": 1,
+ "text": "Then there’s the people who seem to have not read anything past what other people are telling them:",
+ "markups": []
+ }, {
+ "name": "9b62",
+ "type": 6,
+ "text": "Not sure what to make of your Marco piece, to be honest. You mention his fame, whatever, but what’s the main idea here?",
+ "markups": []
+ }, {
+ "name": "c18a",
+ "type": 1,
+ "text": "Just how spoon-fed do you have to be? Have you no teeth?",
+ "markups": []
+ }, {
+ "name": "c445",
+ "type": 1,
+ "text": "Of course, Marco jumps in, and predictably, he’s snippy:",
+ "markups": []
+ }, {
+ "name": "0c21",
+ "type": 6,
+ "text": "If you’re going to speak in precise absolutes, it’s best to first ensure that you’re correct.",
+ "markups": []
+ }, {
+ "name": "8f8d",
+ "type": 1,
+ "text": "If you’re going to be like that, it’s best to provide better data. Don’t get snippy when someone is going off the only data available, and is clearly open to revising based on better data.",
+ "markups": []
+ }, {
+ "name": "cc97",
+ "type": 1,
+ "text": "Then Marco’s friends/fans get into it:",
+ "markups": []
+ }, {
+ "name": "f9da",
+ "type": 6,
+ "text": "I really don’t understand why it’s anyone’s business",
+ "markups": []
+ }, {
+ "name": "0094",
+ "type": 1,
+ "text": "Samantha is trying to qualify for sainthood at this point:",
+ "markups": []
+ }, {
+ "name": "0105",
+ "type": 6,
+ "text": "It isn’t really, it was a way of putting his income in context in regards to his ability to gamble with Overcast.",
+ "markups": []
+ }, {
+ "name": "cdd1",
+ "type": 1,
+ "text": "Again, she’s trying to drag people back to her actual point, but no one is going to play. The storm has begun. Then we get people who are just spouting nonsense:",
+ "markups": []
+ }, {
+ "name": "f56c",
+ "type": 6,
+ "text": "Why is that only relevant for him? It’s a pretty weird metric,especially since his apps aren’t free.",
+ "markups": []
+ }, {
+ "name": "4fef",
+ "type": 1,
+ "text": "Wha?? Overcast 2 is absolutely free. Samantha points this out:",
+ "markups": []
+ }, {
+ "name": "0f36",
+ "type": 6,
+ "text": "His app is free, that’s what sparked the article to begin with.",
+ "markups": []
+ }, {
+ "name": "40d2",
+ "type": 1,
+ "text": "The response is literally a parallel to “How can there be global warming if it snowed today in my town?”",
+ "markups": []
+ }, {
+ "name": "6760",
+ "type": 6,
+ "text": "If it’s free, how have I paid for it? Twice?",
+ "markups": []
+ }, {
+ "name": "7b13",
+ "type": 1,
+ "text": "She is still trying:",
+ "markups": []
+ }, {
+ "name": "44ba",
+ "type": 6,
+ "text": "You paid $4.99 to unlock functionality in Overcast 1.0 and you chose to support him with no additional functionality in 2.0",
+ "markups": []
+ }, {
+ "name": "2152",
+ "type": 1,
+ "text": "He is having none of it. IT SNOWED! SNOWWWWWWW!",
+ "markups": []
+ }, {
+ "name": "99a6",
+ "type": 6,
+ "text": "Yes. That’s not free. Free is when you choose not to make money. And that can be weaponized. But that’s not what Overcast does.",
+ "markups": []
+ }, {
+ "name": "5e6f",
+ "type": 1,
+ "text": "She however, is relentless:",
+ "markups": []
+ }, {
+ "name": "1b0f",
+ "type": 6,
+ "text": "No, it’s still free. You can choose to support it, you are required to pay $4.99 for Pocket Casts. Totally different model.",
+ "markups": []
+ }, {
+ "name": "d24f",
+ "type": 1,
+ "text": "Dude seems to give up. (Note: allllll the people bagging on her are men. All of them. Mansplaining like hell. And I’d bet every one of them considers themselves a feminist.)",
+ "markups": []
+ }, {
+ "name": "10e1",
+ "type": 1,
+ "text": "We get another guy trying to push the narrative she’s punishing him for his success, which is just…it’s stupid, okay? Stupid.",
+ "markups": []
+ }, {
+ "name": "9b01",
+ "type": 6,
+ "text": "It also wasn’t my point in writing my piece today, but it seems to be everyone’s focus.",
+ "markups": []
+ }, {
+ "name": "340c",
+ "type": 1,
+ "text": "(UNDERSTATEMENT OF THE YEAR)",
+ "markups": []
+ }, {
+ "name": "7244",
+ "type": 6,
+ "text": "I think the focus should be more on that fact that while it’s difficult, Marco spent years building his audience.",
+ "markups": []
+ }, {
+ "name": "ffb1",
+ "type": 6,
+ "text": "It doesn’t matter what he makes it how he charges. If the audience be earned is willing to pay for it, awesome.",
+ "markups": []
+ }, {
+ "name": "e44e",
+ "type": 1,
+ "text": "She tries, oh lord, she tries:",
+ "markups": []
+ }, {
+ "name": "a502",
+ "type": 6,
+ "text": "To assert that he isn’t doing anything any other dev couldn’t, is wrong. It’s successful because it’s Marco.",
+ "markups": []
+ }, {
+ "name": "7dcd",
+ "type": 1,
+ "text": "But no, HE KNOWS HER POINT BETTER THAN SHE DOES:",
+ "markups": []
+ }, {
+ "name": "a62a",
+ "type": 6,
+ "text": "No, it’s successful because he busted his ass to make it so. It’s like any other business. He grew it.",
+ "markups": []
+ }, {
+ "name": "df8c",
+ "type": 1,
+ "text": "Christ. This is like a field of strawmen. Stupid ones. Very stupid ones.",
+ "markups": []
+ }, {
+ "name": "521a",
+ "type": 1,
+ "text": "One guy tries to blame it all on Apple, another in a string of Wha??? moments:",
+ "markups": []
+ }, {
+ "name": "d80d",
+ "type": 6,
+ "text": "the appropriate context is Apple’s App Store policies. Other devs aren’t Marco’s responsibility",
+ "markups": []
+ }, {
+ "name": "db0b",
+ "type": 1,
+ "text": "Seriously? Dude, are you even trying to talk about what Samantha actually wrote? At this point, Samantha is clearly mystified at the entire thing:",
+ "markups": []
+ }, {
+ "name": "7a78",
+ "type": 6,
+ "text": "Why has the conversation suddenly turned to focus on nothing more than ATP sponsorship income?",
+ "markups": []
+ }, {
+ "name": "6e09",
+ "type": 1,
+ "text": "Because it’s a nit they can pick and allows them to ignore everything you wrote. That’s the only reason.",
+ "markups": []
+ }, {
+ "name": "b7db",
+ "type": 1,
+ "text": "One guy is “confused”:",
+ "markups": []
+ }, {
+ "name": "3626",
+ "type": 6,
+ "text": "I see. He does have clout, so are you saying he’s too modest in how he sees himself as a dev?",
+ "markups": []
+ }, {
+ "name": "9daa",
+ "type": 6,
+ "text": "Yes. He can’t be equated to the vast majority of other developers. Like calling Gruber, “just another blogger”.",
+ "markups": []
+ }, {
+ "name": "f6da",
+ "type": 6,
+ "text": "Alright, that’s fair. I was just confused by the $ and fame angle at first.",
+ "markups": []
+ }, {
+ "name": "d5b1",
+ "type": 1,
+ "text": "Samantha’s point centers on the benefits Marco gains via his fame and background. HOW DO YOU NOT MENTION THAT? HOW IS THAT CONFUSING?",
+ "markups": [{
+ "type": 2,
+ "start": 82,
+ "end": 133
+ }]
+ }, {
+ "name": "58d0",
+ "type": 1,
+ "text": "People of course are telling her it’s her fault for mentioning a salient fact at all:",
+ "markups": []
+ }, {
+ "name": "30d2",
+ "type": 6,
+ "text": "Why has the conversation suddenly turned to focus on nothing more than ATP sponsorship income?",
+ "markups": []
+ }, {
+ "name": "765b",
+ "type": 6,
+ "text": "Maybe because you went there with your article?",
+ "markups": []
+ }, {
+ "name": "61fe",
+ "type": 6,
+ "text": "As a way of rationalizing his ability to gamble with the potential for Overcast to generate income…not the norm at all.",
+ "markups": []
+ }, {
+ "name": "f17c",
+ "type": 1,
+ "text": "Of course, had she not brought up those important points, she’d have been bagged on for “not providing proof”. Lose some, lose more. By now, she’s had enough and she just deletes all mention of it. Understandable, but sad she was bullied into doing that.",
+ "markups": []
+ }, {
+ "name": "0b60",
+ "type": 1,
+ "text": "Yes, bullied. That’s all this is. Bullying. She didn’t lie, cheat, or exaagerate. If her numbers were wrong, they weren’t wrong in a way she had any ability to do anything about. But there’s blood in the water, and the comments and attacks get worse:",
+ "markups": []
+ }, {
+ "name": "65ab",
+ "type": 6,
+ "text": "Because you decided to start a conversation about someone else’s personal shit. You started this war.",
+ "markups": []
+ }, {
+ "name": "1adb",
+ "type": 1,
+ "text": "War. THIS. IS. WAR.",
+ "markups": []
+ }, {
+ "name": "de94",
+ "type": 1,
+ "text": "This is a bunch of nerds attacking someone for reasoned, calm, polite criticism of their friend/idol. Samantha is politely pushing back a bit:",
+ "markups": [{
+ "type": 2,
+ "start": 63,
+ "end": 69
+ }]
+ }, {
+ "name": "4458",
+ "type": 6,
+ "text": "That doesn’t explain why every other part of my article is being pushed aside.",
+ "markups": []
+ }, {
+ "name": "aeac",
+ "type": 1,
+ "text": "She’s right. This is all nonsense. This is people ignoring her article completely, just looking for things to attack so it can be dismissed. It’s tribalism at its purest.",
+ "markups": []
+ }, {
+ "name": "0078",
+ "type": 1,
+ "text": "Then some of the other annointed get into it, including Jason Snell in one of the most spectactular displays of “I have special knowledge you can’t be expected to have, therefore you are totally off base and wrong, even though there’s no way for you to know this” I’ve seen in a while. Jason:",
+ "markups": []
+ }, {
+ "name": "c4c9",
+ "type": 6,
+ "text": "You should never use an ad rate card to estimate ad revenue from any media product ever.",
+ "markups": []
+ }, {
+ "name": "b66b",
+ "type": 6,
+ "text": "I learned this when I started working for a magazine — rate cards are mostly fiction, like prices on new cars",
+ "markups": []
+ }, {
+ "name": "6907",
+ "type": 1,
+ "text": "How…exactly…in the name of whatever deity Jason may believe in…is Samantha or anyone not “in the biz” supposed to know this. Also, what exactly does a magazine on paper like Macworld have to do with sponsorships for a podcast? I have done podcasts that were sponsored, and I can retaliate with “we charged what the rate card said we did. Checkmate Elitests!”",
+ "markups": [{
+ "type": 2,
+ "start": 338,
+ "end": 357
+ }]
+ }, {
+ "name": "41ec",
+ "type": 1,
+ "text": "Samantha basically abases herself at his feet:",
+ "markups": []
+ }, {
+ "name": "0b14",
+ "type": 6,
+ "text": "I understand my mistake, and it’s unfortunate that it has completely diluted the point of my article.",
+ "markups": []
+ }, {
+ "name": "590f",
+ "type": 1,
+ "text": "I think she should have told him where and how to stuff that nonsense, but she’s a nicer person than I am. Also, it’s appropriate that Jason’s twitter avatar has its nose in the air. This is some rank snobbery. It’s disgusting and if anyone pulled that on him, Jason would be very upset. But hey, one cannot criticize The Marco without getting pushback. By “pushback”, I mean “an unrelenting fecal flood”.",
+ "markups": []
+ }, {
+ "name": "69dc",
+ "type": 1,
+ "text": "Her only mistake was criticizing one of the Kool Kids. Folks, if you criticize anyone in The Deck Clique, or their friends, expect the same thing, regardless of tone or point.",
+ "markups": []
+ }, {
+ "name": "5ab4",
+ "type": 1,
+ "text": "Another App Dev, seemingly unable to parse Samantha’s words, needs more explanation:",
+ "markups": [{
+ "type": 2,
+ "start": 67,
+ "end": 71
+ }]
+ }, {
+ "name": "957b",
+ "type": 6,
+ "text": "so just looking over your mentions, I’m curious what exactly was your main point? Ignoring the podcast income bits.",
+ "markups": []
+ }, {
+ "name": "0a7e",
+ "type": 1,
+ "text": "Oh wait, he didn’t even read the article. Good on you, Dev Guy, good. on. you. Still, she plays nice with someone who didn’t even read her article:",
+ "markups": [{
+ "type": 2,
+ "start": 101,
+ "end": 146
+ }]
+ }, {
+ "name": "f7db",
+ "type": 6,
+ "text": "That a typical unknown developer can’t depend on patronage to generate revenue, and charging for apps will become a negative.",
+ "markups": []
+ }, {
+ "name": "937f",
+ "type": 1,
+ "text": "Marco comes back of course, and now basically accuses her of lying about other devs talking to her and supporting her point:",
+ "markups": []
+ }, {
+ "name": "c9dd",
+ "type": 6,
+ "text": "How many actual developers did you hear from, really? Funny how almost nobody wants to give a (real) name on these accusations.",
+ "markups": []
+ }, {
+ "name": "c522",
+ "type": 1,
+ "text": "Really? You’re going to do that? “There’s no name, so I don’t think it’s a real person.” Just…what’s the Joe Welch quote from the McCarthy hearings?",
+ "markups": []
+ }, {
+ "name": "907e",
+ "type": 6,
+ "text": "Let us not assassinate this lad further, Senator. You’ve done enough. Have you no sense of decency, sir? At long last, have you left no sense of decency?",
+ "markups": []
+ }, {
+ "name": "2158",
+ "type": 1,
+ "text": "That is what this is at this point: character assasination because she said something critical of A Popular Person. It’s disgusting. Depressing and disgusting. No one, none of these people have seriously discussed her point, heck, it looks like they barely bothered to read it, if they did at all.",
+ "markups": []
+ }, {
+ "name": "13f8",
+ "type": 1,
+ "text": "Marco starts getting really petty with her (no big shock) and Samantha finally starts pushing back:",
+ "markups": []
+ }, {
+ "name": "96c6",
+ "type": 6,
+ "text": "Glad to see you be the bigger person and ignore the mindset of so many developers not relating to you, good for you!",
+ "markups": []
+ }, {
+ "name": "5d3f",
+ "type": 1,
+ "text": "That of course, is what caused Marco to question the validity, if not the existence of her sources. (Funny how anonymous sources are totes okay when they convenience Marco et al, and work for oh, Apple, but when they are inconvenient? Ha! PROVIDE ME PROOF YOU INTEMPERATE WOMAN!)",
+ "markups": [{
+ "type": 2,
+ "start": 196,
+ "end": 201
+ }]
+ }, {
+ "name": "c07c",
+ "type": 1,
+ "text": "Make no mistake, there’s some sexist shit going on here. Every tweet I’ve quoted was authored by a guy.",
+ "markups": []
+ }, {
+ "name": "8b32",
+ "type": 1,
+ "text": "Of course, Marco has to play the “I’ve been around longer than you” card with this bon mot:",
+ "markups": []
+ }, {
+ "name": "de26",
+ "type": 6,
+ "text": "Yup, before you existed!",
+ "markups": []
+ }, {
+ "name": "a3bd",
+ "type": 1,
+ "text": "Really dude? I mean, I’m sorry about the penis, but really?",
+ "markups": []
+ }, {
+ "name": "1c51",
+ "type": 1,
+ "text": "Mind you, when the criticism isn’t just bizarrely stupid, Samantha reacts the way Marco and his ilk claim they would to (if they ever got any valid criticism. Which clearly is impossible):",
+ "markups": [{
+ "type": 2,
+ "start": 142,
+ "end": 147
+ }]
+ }, {
+ "name": "9848",
+ "type": 6,
+ "text": "Not to get into the middle of this, but “income” is not the term you’re looking for. “Revenue” is.",
+ "markups": []
+ }, {
+ "name": "f2a6",
+ "type": 6,
+ "text": "lol. Noted.",
+ "markups": []
+ }, {
+ "name": "aed9",
+ "type": 6,
+ "text": "And I wasn’t intending to be a dick, just a lot of people hear/say “income” when they intend “revenue”, and then discussion …",
+ "markups": []
+ }, {
+ "name": "f9d8",
+ "type": 6,
+ "text": "… gets derailed by a jedi handwave of “Expenses”. But outside of charitable donation, it is all directly related.",
+ "markups": []
+ }, {
+ "name": "f61c",
+ "type": 6,
+ "text": "haha. Thank you for the clarification.",
+ "markups": []
+ }, {
+ "name": "5dd9",
+ "type": 1,
+ "text": "Note to Marco and the other…whatever they are…that is how one reacts to that kind of criticism. With a bit of humor and self-deprecation. You should try it sometime. For real, not just in your heads or conversations in Irish Pubs in S.F.",
+ "markups": []
+ }, {
+ "name": "dc44",
+ "type": 1,
+ "text": "But now, the door has been cracked, and the cheap shots come out:",
+ "markups": []
+ }, {
+ "name": "0c94",
+ "type": 6,
+ "text": "@testflight_app: Don’t worry guys, we process @marcoarment’s apps in direct proportion to his megabucks earnings. #fairelephant",
+ "markups": [{
+ "type": 3,
+ "start": 46,
+ "end": 58,
+ "href": "https://twitter.com/marcoarment",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }, {
+ "type": 3,
+ "start": 114,
+ "end": 127,
+ "href": "https://twitter.com/hashtag/fairelephant?src=hash",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }]
+ }, {
+ "name": "343b",
+ "type": 1,
+ "text": "(Note: testflight_app is a parody account. Please do not mess with the actual testflight folks. They are still cool.)",
+ "markups": []
+ }, {
+ "name": "09bf",
+ "type": 1,
+ "text": "Or this…conversation:",
+ "markups": []
+ }, {
+ "name": "4d63",
+ "type": 4,
+ "text": "",
+ "markups": [],
+ "layout": 1,
+ "metadata": {
+ "id": "1*kbPh7V97eyRodSOw2-ALDw.png",
+ "originalWidth": 398,
+ "originalHeight": 542
+ }
+ }, {
+ "name": "f2a3",
+ "type": 1,
+ "text": "Good job guys. Good job. Defend the tribe. Attack the other. Frederico attempts to recover from his stunning display of demeaning douchery: ‏@viticci: @s_bielefeld I don’t know if it’s an Italian thing, but counting other people’s money is especially weird for me. IMO, bad move in the post.",
+ "markups": [{
+ "type": 3,
+ "start": 140,
+ "end": 149,
+ "href": "https://twitter.com/viticci",
+ "title": "",
+ "rel": "",
+ "name": "",
+ "anchorType": 0,
+ "creatorIds": [],
+ "userId": ""
+ }, {
+ "type": 3,
+ "start": 151,
+ "end": 163,
+ "href": "https://twitter.com/s_bielefeld",
+ "title": "",
+ "rel": "",
+ "name": "",
+ "anchorType": 0,
+ "creatorIds": [],
+ "userId": ""
+ }]
+ }, {
+ "name": "ae0c",
+ "type": 1,
+ "text": "Samantha is clearly sick of his crap: ‏@s_bielefeld: @viticci That’s what I’m referring to, the mistake of ever having mentioned it. So, now, Marco can ignore the bigger issue and go on living.",
+ "markups": [{
+ "type": 3,
+ "start": 38,
+ "end": 51,
+ "href": "https://twitter.com/s_bielefeld",
+ "title": "",
+ "rel": "",
+ "name": "",
+ "anchorType": 0,
+ "creatorIds": [],
+ "userId": ""
+ }, {
+ "type": 3,
+ "start": 53,
+ "end": 61,
+ "href": "https://twitter.com/viticci",
+ "title": "",
+ "rel": "",
+ "name": "",
+ "anchorType": 0,
+ "creatorIds": [],
+ "userId": ""
+ }]
+ }, {
+ "name": "2047",
+ "type": 1,
+ "text": "Good for her. There’s being patient and being roadkill.",
+ "markups": []
+ }, {
+ "name": "4139",
+ "type": 1,
+ "text": "Samantha does put the call out for her sources to maybe let her use their names:",
+ "markups": []
+ }, {
+ "name": "6626",
+ "type": 6,
+ "text": "From all of you I heard from earlier, anyone care to go on record?",
+ "markups": []
+ }, {
+ "name": "8a7d",
+ "type": 1,
+ "text": "My good friend, The Angry Drunk points out the obvious problem:",
+ "markups": []
+ }, {
+ "name": "68c9",
+ "type": 6,
+ "text": "Nobody’s going to go on record when they count on Marco’s friends for their PR.",
+ "markups": []
+ }, {
+ "name": "317d",
+ "type": 1,
+ "text": "This is true. Again, the sites that are Friends of Marco:",
+ "markups": []
+ }, {
+ "name": "9523",
+ "type": 1,
+ "text": "Daring Fireball",
+ "markups": []
+ }, {
+ "name": "dbc7",
+ "type": 1,
+ "text": "The Loop",
+ "markups": []
+ }, {
+ "name": "c706",
+ "type": 1,
+ "text": "SixColors",
+ "markups": []
+ }, {
+ "name": "0acb",
+ "type": 1,
+ "text": "iMore",
+ "markups": []
+ }, {
+ "name": "8c8c",
+ "type": 1,
+ "text": "MacStories",
+ "markups": []
+ }, {
+ "name": "643e",
+ "type": 1,
+ "text": "A few others, but I want this post to end one day.",
+ "markups": []
+ }, {
+ "name": "6b76",
+ "type": 1,
+ "text": "You piss that crew off, and given how petty rather a few of them have demonstrated they are, good luck on getting any kind of notice from them.",
+ "markups": []
+ }, {
+ "name": "f7d1",
+ "type": 1,
+ "text": "Of course, the idea this could happen is just craycray:",
+ "markups": []
+ }, {
+ "name": "de59",
+ "type": 6,
+ "text": "@KevinColeman .@Angry_Drunk @s_bielefeld @marcoarment Wow, you guys are veering right into crazy conspiracy theory territory. #JetFuelCantMeltSteelBeams",
+ "markups": [{
+ "type": 3,
+ "start": 0,
+ "end": 14,
+ "href": "https://twitter.com/KevinColeman",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }, {
+ "type": 3,
+ "start": 14,
+ "end": 27,
+ "href": "https://twitter.com/Angry_Drunk",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }, {
+ "type": 3,
+ "start": 28,
+ "end": 40,
+ "href": "https://twitter.com/s_bielefeld",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }, {
+ "type": 3,
+ "start": 41,
+ "end": 53,
+ "href": "https://twitter.com/marcoarment",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }, {
+ "type": 3,
+ "start": 126,
+ "end": 152,
+ "href": "https://twitter.com/hashtag/JetFuelCantMeltSteelBeams?src=hash",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }]
+ }, {
+ "name": "f01b",
+ "type": 1,
+ "text": "Yeah. Because a mature person like Marco would never do anything like that.",
+ "markups": []
+ }, {
+ "name": "7e30",
+ "type": 1,
+ "text": "Of course, the real point on this is starting to happen:",
+ "markups": []
+ }, {
+ "name": "5d93",
+ "type": 6,
+ "text": "you’re getting a lot of heat now but happy you are writing things that stir up the community. Hope you continue to be a voice!",
+ "markups": []
+ }, {
+ "name": "436b",
+ "type": 6,
+ "text": "I doubt I will.",
+ "markups": []
+ }, {
+ "name": "ac25",
+ "type": 1,
+ "text": "See, they’ve done their job. Mess with the bull, you get the horns. Maybe you should find another thing to write about, this isn’t a good place for you. Great job y’all.",
+ "markups": [{
+ "type": 2,
+ "start": 153,
+ "end": 158
+ }]
+ }, {
+ "name": "07ba",
+ "type": 1,
+ "text": "Some people aren’t even pretending. They’re just in full strawman mode:",
+ "markups": []
+ }, {
+ "name": "3d60",
+ "type": 6,
+ "text": "@timkeller: Unfair to begrudge a person for leveraging past success, especially when that success is earned. No ‘luck’ involved.",
+ "markups": [{
+ "type": 3,
+ "start": 0,
+ "end": 12,
+ "href": "https://twitter.com/timkeller",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }]
+ }, {
+ "name": "87f5",
+ "type": 6,
+ "text": "@s_bielefeld: @timkeller I plainly stated that I don’t hold his doing this against him. Way to twist words.",
+ "markups": [{
+ "type": 3,
+ "start": 0,
+ "end": 14,
+ "href": "https://twitter.com/s_bielefeld",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }, {
+ "type": 3,
+ "start": 14,
+ "end": 24,
+ "href": "https://twitter.com/timkeller",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }]
+ }, {
+ "name": "3720",
+ "type": 1,
+ "text": "I think she’s earned her anger at this point.",
+ "markups": []
+ }, {
+ "name": "7341",
+ "type": 1,
+ "text": "Don’t worry, Marco knows what the real problem is: most devs just suck —",
+ "markups": []
+ }, {
+ "name": "babe",
+ "type": 4,
+ "text": "",
+ "markups": [],
+ "layout": 1,
+ "metadata": {
+ "id": "1*Fpb2Bvdx7Q-688vdm-NdkQ.png",
+ "originalWidth": 694,
+ "originalHeight": 771
+ }
+ }, {
+ "name": "503d",
+ "type": 1,
+ "text": "I have a saying that applies in this case: don’t place your head so far up your nethers that you go full Klein Bottle. Marco has gone full Klein Bottle. (To be correct, he went FKB some years ago.)",
+ "markups": []
+ }, {
+ "name": "b8c0",
+ "type": 1,
+ "text": "There are some bright spots. My favorite is when Building Twenty points out the real elephant in the room:",
+ "markups": [{
+ "type": 2,
+ "start": 80,
+ "end": 84
+ }]
+ }, {
+ "name": "36f4",
+ "type": 6,
+ "text": "@BuildingTwenty: Both @s_bielefeld &amp; I wrote similar critiques of @marcoarment’s pricing model yet the Internet pilloried only the woman. Who’d have guessed?",
+ "markups": [{
+ "type": 3,
+ "start": 0,
+ "end": 15,
+ "href": "https://twitter.com/BuildingTwenty",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }, {
+ "type": 3,
+ "start": 22,
+ "end": 34,
+ "href": "https://twitter.com/s_bielefeld",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }, {
+ "type": 3,
+ "start": 66,
+ "end": 78,
+ "href": "https://twitter.com/marcoarment",
+ "title": "",
+ "rel": "",
+ "anchorType": 0
+ }]
+ }, {
+ "name": "06b9",
+ "type": 1,
+ "text": "Yup.",
+ "markups": []
+ }, {
+ "name": "eff9",
+ "type": 1,
+ "text": "Another bright spot are these comments from Ian Betteridge, who has been doing this even longer than Marco:",
+ "markups": [{
+ "type": 2,
+ "start": 84,
+ "end": 106
+ }]
+ }, {
+ "name": "18f1",
+ "type": 6,
+ "text": "You know, any writer who has never made a single factual error in a piece hasn’t ever written anything worth reading.",
+ "markups": []
+ }, {
+ "name": "9776",
+ "type": 6,
+ "text": "I learned my job with the support of people who helped me. Had I suffered an Internet pile on for every error I wouldn’t have bothered.",
+ "markups": []
+ }, {
+ "name": "8d44",
+ "type": 1,
+ "text": "To which Samantha understandably replies:",
+ "markups": []
+ }, {
+ "name": "7147",
+ "type": 6,
+ "text": "and it’s honestly something I’m contemplating right now, whether to continue…",
+ "markups": []
+ }, {
+ "name": "e0cd",
+ "type": 1,
+ "text": "Gee, I can’t imagine why. Why with comments like this from Chris Breen that completely misrepresent Samantha’s point, (who until today, I would have absolutely defended as being better than this, something I am genuinely saddened to be wrong about), why wouldn’t she want to continue doing this?",
+ "markups": []
+ }, {
+ "name": "a379",
+ "type": 6,
+ "text": "If I have this right, some people are outraged that a creator has decided to give away his work.",
+ "markups": []
+ }, {
+ "name": "f026",
+ "type": 1,
+ "text": "No Chris, you don’t have this right. But hey, who has time to find out the real issue and read an article. I’m sure your friends told you everything you need to know.",
+ "markups": []
+ }, {
+ "name": "e1c2",
+ "type": 1,
+ "text": "Noted Feminist Glenn Fleishman gets a piece of the action too:",
+ "markups": []
+ }, {
+ "name": "067c",
+ "type": 4,
+ "text": "",
+ "markups": [],
+ "layout": 1,
+ "metadata": {
+ "id": "1*lvOySry5gHHJfGU_bQXrzA.png",
+ "originalWidth": 308,
+ "originalHeight": 269
+ }
+ }, {
+ "name": "4df8",
+ "type": 1,
+ "text": "I’m not actually surprised here. I watched Fleishman berate a friend of mine who has been an engineer for…heck, waaaaay too long on major software products in the most condescending way because she tried to point out that as a very technical woman, “The Magazine” literally had nothing to say to her and maybe he should fix that. “Impertinent” was I believe what he called her, but I may have the specific word wrong. Not the attitude mind you. Great Feminists like Glenn do not like uppity women criticizing Great Feminists who are their Great Allies.",
+ "markups": [{
+ "type": 2,
+ "start": 227,
+ "end": 231
+ }]
+ }, {
+ "name": "bf45",
+ "type": 1,
+ "text": "Great Feminists are often tools.",
+ "markups": []
+ }, {
+ "name": "45bb",
+ "type": 1,
+ "text": "Luckily, I hope, the people who get Samantha’s point also started chiming in (and you get 100% of the women commenting here that I’ve seen):",
+ "markups": []
+ }, {
+ "name": "c053",
+ "type": 6,
+ "text": "I don’t think he’s wrong for doing it, he just discusses it as if the market’s a level playing field — it isn’t",
+ "markups": []
+ }, {
+ "name": "7b5e",
+ "type": 6,
+ "text": "This is a great article with lots of great points about the sustainability of iOS development. Thank you for publishing it.",
+ "markups": []
+ }, {
+ "name": "a321",
+ "type": 6,
+ "text": "Regardless of the numbers and your view of MA, fair points here about confirmation bias in app marketing feasibility http://samanthabielefeld.com/the-elephant-in-the-room …",
+ "markups": [{
+ "type": 3,
+ "start": 117,
+ "end": 172,
+ "href": "http://t.co/u79ZLsnhdM",
+ "title": "http://samanthabielefeld.com/the-elephant-in-the-room",
+ "rel": "nofollow",
+ "anchorType": 0
+ }]
+ }, {
+ "name": "76fe",
+ "type": 6,
+ "text": "thank you for posting this, it covers a lot of things people don’t like to talk about.",
+ "markups": []
+ }, {
+ "name": "bf90",
+ "type": 6,
+ "text": "I’m sure you have caught untold amounts of flak over posting this because Marco is blind to his privilege as a developer.",
+ "markups": []
+ }, {
+ "name": "0f66",
+ "type": 6,
+ "text": "Catching up on the debate, and agreeing with Harry’s remark. (Enjoyed your article, Samantha, and ‘got’ your point.)",
+ "markups": []
+ }, {
+ "name": "6134",
+ "type": 1,
+ "text": "I would like to say I’m surprised at the reaction to Samantha’s article, but I’m not. In spite of his loud declarations of support for The Big Lie, Marco Arment is as bad at any form of criticism that he hasn’t already approved as a very insecure tween. An example from 2011: http://www.businessinsider.com/marco-arment-2011-9",
+ "markups": [{
+ "type": 3,
+ "start": 276,
+ "end": 326,
+ "href": "http://www.businessinsider.com/marco-arment-2011-9",
+ "title": "",
+ "rel": "nofollow",
+ "anchorType": 0
+ }]
+ }, {
+ "name": "ba3c",
+ "type": 1,
+ "text": "Marco is great with criticism as long as it never actually criticizes him. If it does, be prepared a flood of petty, petulant whining that a room full of bored preschoolers on a hot day would be hard-pressed to match.",
+ "markups": []
+ }, {
+ "name": "a5a0",
+ "type": 1,
+ "text": "Today has been…well, it sucks. It sucks because someone doing what all the Arments of the world claim to want was naive enough to believe what they were told, and found out the hard way just how big a lie The Big Lie is, and how vicious people are when you’re silly enough to believe anything they say about criticism.",
+ "markups": []
+ }, {
+ "name": "2a25",
+ "type": 1,
+ "text": "And note again, every single condescending crack, misrepresentation, and strawman had an exclusively male source. Most of them have, at one point or another, loudly trumpted themselves as Feminist Allies, as a friend to women struggling with the sexism and misogyny in tech. Congratulations y’all on being just as bad as the people you claim to oppose.",
+ "markups": []
+ }, {
+ "name": "a47a",
+ "type": 1,
+ "text": "Samantha has handled this better than anyone else could have. My respect for her as a person and a writer is off the charts. If she choses to walk away from blogging in the Apple space, believe me I understand. As bad as today was for her, I’ve seen worse. Much worse.",
+ "markups": [{
+ "type": 2,
+ "start": 186,
+ "end": 196
+ }]
+ }, {
+ "name": "aa8e",
+ "type": 1,
+ "text": "But I hope she doesn’t. I hope she stays, because she is Doing This Right, and in a corner of the internet that has become naught but an endless circle jerk, a cliquish collection, a churlish, childish cohort interested not in writing or the truth, but in making sure The Right People are elevated, and The Others put down, she is someone worth reading and listening to. The number people who owe her apologies goes around the block, and I don’t think she’ll ever see a one. I’m sure as heck not apologizing for them, I’ll not make their lives easier in the least.",
+ "markups": []
+ }, {
+ "name": "34c5",
+ "type": 1,
+ "text": "All of you, all. of. you…Marco, Breen, Snell, Vittici, had a chance to live by your words. You were faced with reasoned, polite, respectful criticism and instead of what you should have done, you all dropped trou and sprayed an epic diarrheal discharge all over someone who had done nothing to deserve it. Me, I earned most of my aggro, Samantha did not earn any of the idiocy I’ve seen today. I hope you’re all proud of yourselves. Someone should be, it won’t be me. Ever.",
+ "markups": []
+ }, {
+ "name": "9710",
+ "type": 1,
+ "text": "So I hope she stays, but if she goes, I understand. For what it’s worth, I don’t think she’s wrong either way.",
+ "markups": []
+ }],
+ "sections": [{
+ "name": "55ff",
+ "startIndex": 0
+ }, {
+ "name": "c360",
+ "startIndex": 8
+ }, {
+ "name": "2ba2",
+ "startIndex": 17
+ }, {
+ "name": "c883",
+ "startIndex": 176
+ }, {
+ "name": "8ab2",
+ "startIndex": 183
+ }]
+ },
+ "postDisplay": {
+ "coverless": true
+ }
+ },
+ "virtuals": {
+ "allowNotes": true,
+ "previewImage": {
+ "imageId": "1*kbPh7V97eyRodSOw2-ALDw.png",
+ "filter": "",
+ "backgroundSize": "",
+ "originalWidth": 398,
+ "originalHeight": 542,
+ "strategy": "resample",
+ "height": 0,
+ "width": 0
+ },
+ "wordCount": 4605,
+ "imageCount": 3,
+ "readingTime": 17.92735849056604,
+ "subtitle": "How to get shanked doing what people say they want",
+ "usersBySocialRecommends": [],
+ "recommends": 168,
+ "socialRecommends": [],
+ "isBookmarked": false,
+ "tags": [],
+ "socialRecommendsCount": 0,
+ "responsesCreatedCount": 15,
+ "links": {
+ "entries": [{
+ "url": "https://medium.com/@marcoarment/pragmatic-app-pricing-a79fc07218f3",
+ "alts": [{
+ "type": 2,
+ "url": "medium://p/a79fc07218f3"
+ }, {
+ "type": 3,
+ "url": "medium://p/a79fc07218f3"
+ }]
+ }],
+ "version": "0.3",
+ "generatedAt": 1472016079116
+ },
+ "isLockedPreviewOnly": false,
+ "takeoverId": "",
+ "metaDescription": "",
+ "totalClapCount": 0
+ },
+ "coverless": true,
+ "slug": "samantha-and-the-great-big-lie",
+ "translationSourcePostId": "",
+ "translationSourceCreatorId": "",
+ "isApprovedTranslation": false,
+ "inResponseToPostId": "",
+ "inResponseToRemovedAt": 0,
+ "isTitleSynthesized": true,
+ "allowResponses": true,
+ "importedUrl": "",
+ "importedPublishedAt": 0,
+ "visibility": 0,
+ "uniqueSlug": "samantha-and-the-great-big-lie-d146a92473a1",
+ "previewContent": {
+ "bodyModel": {
+ "paragraphs": [{
+ "name": "b34c",
+ "type": 3,
+ "text": "Samantha and The Great Big Lie",
+ "markups": [],
+ "alignment": 1
+ }, {
+ "name": "97e7",
+ "type": 1,
+ "text": "How to get shanked doing what people say they want",
+ "markups": [],
+ "alignment": 1
+ }, {
+ "name": "df70",
+ "type": 6,
+ "text": "don’t preach to me\nMr. integrity",
+ "markups": [],
+ "alignment": 1
+ }, {
+ "name": "c979",
+ "type": 1,
+ "text": "(EDIT: removed the link to Samantha’s post, because the arments and the grubers and the rest of The Deck Clique got what they wanted: a non…",
+ "markups": [],
+ "alignment": 1
+ }],
+ "sections": [{
+ "startIndex": 0
+ }]
+ },
+ "isFullContent": false
+ },
+ "license": 0,
+ "inResponseToMediaResourceId": "",
+ "canonicalUrl": "https://medium.com/@johncwelch/samantha-and-the-great-big-lie-d146a92473a1",
+ "approvedHomeCollectionId": "",
+ "newsletterId": "",
+ "webCanonicalUrl": "https://medium.com/@johncwelch/samantha-and-the-great-big-lie-d146a92473a1",
+ "mediumUrl": "https://medium.com/@johncwelch/samantha-and-the-great-big-lie-d146a92473a1",
+ "migrationId": "",
+ "notifyFollowers": true,
+ "notifyTwitter": false,
+ "isSponsored": false,
+ "isRequestToPubDisabled": false,
+ "notifyFacebook": false,
+ "responseHiddenOnParentPostAt": 0,
+ "isSeries": false,
+ "isSubscriptionLocked": false,
+ "type": "Post"
+ },
+ "mentionedUsers": [],
+ "collaborators": [],
+ "membershipPlans": [],
+ "collectionUserRelations": [],
+ "mode": null,
+ "references": {
+ "User": {
+ "77a507c5ad19": {
+ "userId": "77a507c5ad19",
+ "name": "John C. Welch",
+ "username": "johncwelch",
+ "createdAt": 1408545892232,
+ "lastPostCreatedAt": 1486930695056,
+ "imageId": "0*qPHQu8WqsC6cV_ud.jpg",
+ "backgroundImageId": "1*nYm-VLVTCtzpby_1jFUjRw.jpeg",
+ "bio": "",
+ "twitterScreenName": "",
+ "socialStats": {
+ "userId": "77a507c5ad19",
+ "usersFollowedCount": 63,
+ "usersFollowedByCount": 230,
+ "type": "SocialStats"
+ },
+ "social": {
+ "userId": "lo_4c2ff54882b4",
+ "targetUserId": "77a507c5ad19",
+ "type": "Social"
+ },
+ "facebookAccountId": "10152302268220732",
+ "allowNotes": 1,
+ "type": "User"
+ }
+ },
+ "Social": {
+ "77a507c5ad19": {
+ "userId": "lo_4c2ff54882b4",
+ "targetUserId": "77a507c5ad19",
+ "type": "Social"
+ }
+ },
+ "SocialStats": {
+ "77a507c5ad19": {
+ "userId": "77a507c5ad19",
+ "usersFollowedCount": 63,
+ "usersFollowedByCount": 230,
+ "type": "SocialStats"
+ }
+ }
+ }
+ })
+ // ]]&gt;
+ </script>
+ <div class="surface-scrollOverlay"></div>
+ <script charset="UTF-8" src="https://cdn-static-1.medium.com/_/fp/gen-js/main-common-async.bundle.bQAtenPub_VKVyJSle9kcw.js"></script>
+ <script charset="UTF-8" src="https://cdn-static-1.medium.com/_/fp/gen-js/main-notes.bundle.4fp6HSt83KvFshqkijtyyQ.js"></script>
+</body>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/missing-paragraphs/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/missing-paragraphs/expected-images.json
new file mode 100644
index 000000000..0637a088a
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/missing-paragraphs/expected-images.json
@@ -0,0 +1 @@
+[] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/missing-paragraphs/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/missing-paragraphs/expected-metadata.json
new file mode 100644
index 000000000..b0ef9465b
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/missing-paragraphs/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "Henri Sivonen",
+ "Direction": null,
+ "Excerpt": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy\n eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam\n voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet\n clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit\n amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam\n nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,\n sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.\n Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor\n sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed\n diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,\n sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.\n Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor\n sit amet.",
+ "Image": null,
+ "Title": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy\n eirmod tempor invidunt",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/missing-paragraphs/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/missing-paragraphs/expected.html
new file mode 100644
index 000000000..39e027e47
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/missing-paragraphs/expected.html
@@ -0,0 +1,50 @@
+<div>
+
+
+
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
+ eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
+ voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
+ clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit
+ amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
+ nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
+ sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
+ Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor
+ sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed
+ diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
+ sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
+ Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor
+ sit amet.</p>
+
+<h2>Secondary header</h2>
+
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
+ eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
+ voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
+ clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit
+ amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
+ nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
+ sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
+ Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor
+ sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed
+ diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
+ sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
+ Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor
+ sit amet.</p>
+
+<h2>Secondary header</h2>
+
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
+ eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
+ voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
+ clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit
+ amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
+ nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
+ sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
+ Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor
+ sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed
+ diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
+ sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
+ Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor
+ sit amet.</p>
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/missing-paragraphs/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/missing-paragraphs/source.html
new file mode 100644
index 000000000..f5f8ca6c2
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/missing-paragraphs/source.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<html lang="en">
+
+ <head>
+ <meta charset="utf-8"/>
+ <title>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
+ eirmod tempor invidunt</title>
+ <meta content="width=device-width, initial-scale=1"
+ name="viewport"/>
+ <meta content="Henri Sivonen" name="author"/>
+ </head>
+
+ <body>
+
+<h1>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt</h1>
+
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
+ eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
+ voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
+ clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit
+ amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
+ nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
+ sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
+ Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor
+ sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed
+ diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
+ sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
+ Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor
+ sit amet.</p>
+
+<h2>Secondary header</h2>
+
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
+ eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
+ voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
+ clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit
+ amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
+ nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
+ sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
+ Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor
+ sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed
+ diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
+ sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
+ Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor
+ sit amet.</p>
+
+<h2>Secondary header</h2>
+
+ <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
+ eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
+ voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
+ clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit
+ amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
+ nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
+ sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
+ Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor
+ sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed
+ diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
+ sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
+ Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor
+ sit amet.</p>
+ </body>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/mozilla-1/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/mozilla-1/expected-images.json
new file mode 100644
index 000000000..8ee13b8e5
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/mozilla-1/expected-images.json
@@ -0,0 +1,9 @@
+[
+ "https:\/\/mozorg.cdn.mozilla.net\/media\/img\/firefox\/template\/page-image.af8027a425de.png",
+ "http:\/\/mozorg.cdn.mozilla.net\/media\/img\/firefox\/desktop\/customize\/animations\/flexible-top-fallback.c960365ba781.png",
+ "http:\/\/mozorg.cdn.mozilla.net\/media\/img\/firefox\/desktop\/customize\/designed-redesigned.fbd3ee9402e6.png",
+ "http:\/\/mozorg.cdn.mozilla.net\/media\/img\/firefox\/desktop\/customize\/animations\/flexible-bottom-fallback.cafd48a3d0a4.png",
+ "http:\/\/mozorg.cdn.mozilla.net\/media\/img\/firefox\/desktop\/customize\/theme-red.61611c5734ab.png",
+ "http:\/\/mozorg.cdn.mozilla.net\/media\/img\/firefox\/desktop\/customize\/add-ons.63a4b761f822.png",
+ "http:\/\/mozorg.cdn.mozilla.net\/media\/img\/firefox\/desktop\/customize\/awesome-bar.437df162126c.png"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/mozilla-1/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/mozilla-1/expected-metadata.json
new file mode 100644
index 000000000..1b17f9b16
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/mozilla-1/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": "ltr",
+ "Excerpt": "It’s easier than ever to personalize Firefox and make it work the way\n you do.\n No other browser gives you so much choice and flexibility.",
+ "Image": "https:\/\/mozorg.cdn.mozilla.net\/media\/img\/firefox\/template\/page-image.af8027a425de.png",
+ "Title": "Firefox — Customize and make it your own — The most flexible browser on the Web",
+ "SiteName": "Mozilla"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/mozilla-1/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/mozilla-1/expected.html
new file mode 100644
index 000000000..ba1896ea7
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/mozilla-1/expected.html
@@ -0,0 +1,67 @@
+<div id="main-content" role="main"><section id="intro"><div>
+
+
+ <p>It’s easier than ever to personalize Firefox and make it work the way
+ you do.
+ <br></br>No other browser gives you so much choice and flexibility.</p>
+ <div id="flexible-top-animation">
+ <p><img alt="" src="http://mozorg.cdn.mozilla.net/media/img/firefox/desktop/customize/animations/flexible-top-fallback.c960365ba781.png"></img></p>
+ </div>
+ </div>
+ </section><section data-ga-label="Designed to be redesigned" id="designed"><div>
+ <div id="designed-copy">
+ <h2>Designed to <br></br>be redesigned</h2>
+
+ <p>Get fast and easy access to the features you use most in the new menu.
+ Open the “Customize” panel to add, move or remove any button you want.
+ Keep your favorite features — add-ons, private browsing, Sync and more
+ — one quick click away.</p>
+ <p><img alt="" data-high-res="true" data-high-res-src="//mozorg.cdn.mozilla.net/media/img/firefox/desktop/customize/designed-redesigned-high-res.6efd60766484.png" data-processed="false" data-src="//mozorg.cdn.mozilla.net/media/img/firefox/desktop/customize/designed-redesigned.fbd3ee9402e6.png" id="designed-mobile" src="http://mozorg.cdn.mozilla.net/media/img/firefox/desktop/customize/designed-redesigned.fbd3ee9402e6.png"></img></p></div>
+ <div id="flexible-bottom-animation">
+ <p><img alt="" src="http://mozorg.cdn.mozilla.net/media/img/firefox/desktop/customize/animations/flexible-bottom-fallback.cafd48a3d0a4.png"></img></p>
+ </div>
+ </div>
+ </section><section data-ga-label="More ways to customize" id="customize">
+ </section><div id="customizers-wrapper">
+ <section aria-labelledby="customize-themes" id="themes" role="tabpanel"><div>
+ <div>
+ <h3>Themes</h3>
+
+ <p>Make Firefox match your style. Choose from thousands of themes and dress
+ up your browser with a single click.</p>
+ <p><a href="https://addons.mozilla.org/firefox/themes/" rel="external">Try it now</a>
+
+ <br></br><a href="https://support.mozilla.org/kb/use-themes-change-look-of-firefox" rel="external">Learn more</a>
+
+ </p></div> <p><a href="#add-ons" role="button">Next</a></p><p><img alt="Preview of the currently selected theme" id="theme-demo" src="http://mozorg.cdn.mozilla.net/media/img/firefox/desktop/customize/theme-red.61611c5734ab.png"></img></p>
+ </div>
+ </section><section aria-labelledby="customize-addons" id="add-ons" role="tabpanel"><div>
+ <div>
+ <h3>Add-ons</h3>
+ <p><a href="#awesome-bar" role="button">Next</a></p><p>Add-ons are like apps that you install to add features to Firefox. They
+ let you compare prices, check the weather, listen to music, send a tweet
+ and more.</p>
+ <ul><li>Read the latest news &amp; blogs</li>
+ <li>Manage your downloads</li>
+ <li>Watch videos &amp; view photos</li>
+ </ul><p><a href="https://addons.mozilla.org/firefox/extensions/?sort=featured" rel="external">Here are a few of our favorites</a>
+
+ <br></br><a href="https://support.mozilla.org/kb/find-and-install-add-ons-add-features-to-firefox" rel="external">Learn more</a>
+
+ </p></div>
+
+ <p><img alt="" src="http://mozorg.cdn.mozilla.net/media/img/firefox/desktop/customize/add-ons.63a4b761f822.png"></img></p>
+ </div>
+ </section><section aria-labelledby="customize-awesomebar" id="awesome-bar" role="tabpanel"><div>
+ <div>
+ <h3>Awesome Bar</h3>
+ <p><a href="#themes" role="button">Next</a></p><p>The Awesome Bar learns as you browse to make your version of Firefox unique.
+ Find and return to your favorite sites without having to remember a URL.</p>
+ <p><a href="https://support.mozilla.org/kb/awesome-bar-find-your-bookmarks-history-and-tabs" rel="external">See what it can do for you</a>
+ </p></div>
+ <p><img alt="Firefox Awesome Bar" src="http://mozorg.cdn.mozilla.net/media/img/firefox/desktop/customize/awesome-bar.437df162126c.png"></img></p>
+ </div>
+ </section></div>
+
+ <section data-ga-label="Keep your Firefox in Sync" id="sync">
+ </section></div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/mozilla-1/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/mozilla-1/source.html
new file mode 100644
index 000000000..b8ff3df17
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/mozilla-1/source.html
@@ -0,0 +1,1348 @@
+<!DOCTYPE html>
+<html class="windows x86 no-js" lang="en" dir="ltr" data-latest-firefox="37.0.1"
+data-esr-versions="[31]">
+
+ <head>
+ <meta charset="utf-8"/>
+ <!-- _.-~-. 7'' Q..\ _7 (_ _7 _/ _q. / _7 . ___ /VVvv-'_ . 7/ / /~- \_\\
+ '-._ .-' / // ./ ( /-~-/||'=.__ '::. '-~'' { ___ / // ./{ V V-~-~| || __''_
+ ':::. ''~-~.___.-'' _/ // / {_ / { / VV/-~-~-|/ \ .'__'. '. ':: _ _ _ ''.
+ / /~~~~||VVV/ / \ ) \ _ __ ___ ___ ___(_) | | __ _ .::' / (~-~-~\\.-' /
+ \' \::::. | '_ ` _ \ / _ \_ / | | |/ _` | :::' /..\ /..\__/ ' '::: | |
+ | | | | (_) / /| | | | (_| | ::' vVVv vVVv ': |_| |_| |_|\___/___|_|_|_|\__,_|
+ '' Hi there, nice to meet you! Interested in having a direct impact on
+ hundreds of millions of users? Join Mozilla, and become part of a global
+ community that’s helping to build a brighter future for the Web. Visit
+ https://careers.mozilla.org to learn about our current job openings. Visit
+ https://www.mozilla.org/contribute for more ways to get involved and help
+ support Mozilla.-->
+ <meta name="viewport" content="width=device-width, initial-scale=1"/>
+ <title>Firefox — Customize and make it your own — The most flexible browser on
+ the Web — Mozilla</title>
+ <meta name="description" content=""/>
+ <meta property="og:type" content="website"/>
+ <meta property="og:site_name" content="Mozilla"/>
+ <meta property="og:locale" content="en_US"/>
+ <meta property="og:url" content="https://www.mozilla.org/en-US/firefox/desktop/customize/"/>
+ <meta property="og:image" content="https://mozorg.cdn.mozilla.net/media/img/firefox/template/page-image.af8027a425de.png"/>
+ <meta property="og:title" content="Firefox — Customize and make it your own — The most flexible browser on the Web"/>
+ <meta property="og:description" content=""/>
+ <meta property="fb:page_id" content="14696440021"/>
+ <meta name="twitter:card" content="summary"/>
+ <meta name="twitter:site" content="@firefox"/>
+ <meta name="twitter:domain" content="mozilla.org"/>
+ <meta name="twitter:app:name:googleplay" content="Firefox"/>
+ <meta name="twitter:app:id:googleplay" content="org.mozilla.firefox"/>
+ <link rel="author" type="text/plain" href="/humans.txt"/>
+ <link rel="apple-touch-icon" type="image/png" sizes="180x180" href="//mozorg.cdn.mozilla.net/media/img/firefox/ios-icon-180.7a8401f21915.png"/>
+ <link rel="icon" type="image/png" sizes="196x196" href="//mozorg.cdn.mozilla.net/media/img/firefox/favicon-196.223e1bcaf067.png"/>
+ <link rel="shortcut icon" href="//mozorg.cdn.mozilla.net/media/img/firefox/favicon.dc6635050bf5.ico"/>
+ <link rel="canonical" hreflang="en" href="https://www.mozilla.org/en-US/firefox/desktop/customize/"/>
+ <link rel="alternate" hreflang="x-default" href="https://www.mozilla.org/firefox/desktop/customize/"/>
+ <link rel="alternate" hreflang="af" href="https://www.mozilla.org/af/firefox/desktop/customize/"
+ title="Afrikaans"/>
+ <link rel="alternate" hreflang="an" href="https://www.mozilla.org/an/firefox/desktop/customize/"
+ title="aragonés"/>
+ <link rel="alternate" hreflang="ar" href="https://www.mozilla.org/ar/firefox/desktop/customize/"
+ title="عربي"/>
+ <link rel="alternate" hreflang="as" href="https://www.mozilla.org/as/firefox/desktop/customize/"
+ title="অসমীয়া"/>
+ <link rel="alternate" hreflang="ast" href="https://www.mozilla.org/ast/firefox/desktop/customize/"
+ title="Asturianu"/>
+ <link rel="alternate" hreflang="az" href="https://www.mozilla.org/az/firefox/desktop/customize/"
+ title="Azərbaycanca"/>
+ <link rel="alternate" hreflang="be" href="https://www.mozilla.org/be/firefox/desktop/customize/"
+ title="Беларуская"/>
+ <link rel="alternate" hreflang="bg" href="https://www.mozilla.org/bg/firefox/desktop/customize/"
+ title="Български"/>
+ <link rel="alternate" hreflang="bn-IN" href="https://www.mozilla.org/bn-IN/firefox/desktop/customize/"
+ title="বাংলা (ভারত)"/>
+ <link rel="alternate" hreflang="br" href="https://www.mozilla.org/br/firefox/desktop/customize/"
+ title="Brezhoneg"/>
+ <link rel="alternate" hreflang="ca" href="https://www.mozilla.org/ca/firefox/desktop/customize/"
+ title="Català"/>
+ <link rel="alternate" hreflang="cs" href="https://www.mozilla.org/cs/firefox/desktop/customize/"
+ title="Čeština"/>
+ <link rel="alternate" hreflang="cy" href="https://www.mozilla.org/cy/firefox/desktop/customize/"
+ title="Cymraeg"/>
+ <link rel="alternate" hreflang="da" href="https://www.mozilla.org/da/firefox/desktop/customize/"
+ title="Dansk"/>
+ <link rel="alternate" hreflang="de" href="https://www.mozilla.org/de/firefox/desktop/customize/"
+ title="Deutsch"/>
+ <link rel="alternate" hreflang="dsb" href="https://www.mozilla.org/dsb/firefox/desktop/customize/"
+ title="Dolnoserbšćina"/>
+ <link rel="alternate" hreflang="el" href="https://www.mozilla.org/el/firefox/desktop/customize/"
+ title="Ελληνικά"/>
+ <link rel="alternate" hreflang="en-GB" href="https://www.mozilla.org/en-GB/firefox/desktop/customize/"
+ title="English (British)"/>
+ <link rel="alternate" hreflang="en" href="https://www.mozilla.org/en-US/firefox/desktop/customize/"
+ title="English"/>
+ <link rel="alternate" hreflang="en-CA" href="https://www.mozilla.org/en-US/firefox/desktop/customize/"
+ title="English (Canada)"/>
+ <link rel="alternate" hreflang="en-ZA" href="https://www.mozilla.org/en-ZA/firefox/desktop/customize/"
+ title="English (South African)"/>
+ <link rel="alternate" hreflang="eo" href="https://www.mozilla.org/eo/firefox/desktop/customize/"
+ title="Esperanto"/>
+ <link rel="alternate" hreflang="es-AR" href="https://www.mozilla.org/es-AR/firefox/desktop/customize/"
+ title="Español (de Argentina)"/>
+ <link rel="alternate" hreflang="es-CL" href="https://www.mozilla.org/es-CL/firefox/desktop/customize/"
+ title="Español (de Chile)"/>
+ <link rel="alternate" hreflang="es-ES" href="https://www.mozilla.org/es-ES/firefox/desktop/customize/"
+ title="Español (de España)"/>
+ <link rel="alternate" hreflang="es-MX" href="https://www.mozilla.org/es-MX/firefox/desktop/customize/"
+ title="Español (de México)"/>
+ <link rel="alternate" hreflang="et" href="https://www.mozilla.org/et/firefox/desktop/customize/"
+ title="Eesti keel"/>
+ <link rel="alternate" hreflang="eu" href="https://www.mozilla.org/eu/firefox/desktop/customize/"
+ title="Euskara"/>
+ <link rel="alternate" hreflang="fa" href="https://www.mozilla.org/fa/firefox/desktop/customize/"
+ title="فارسی"/>
+ <link rel="alternate" hreflang="ff" href="https://www.mozilla.org/ff/firefox/desktop/customize/"
+ title="Pulaar-Fulfulde"/>
+ <link rel="alternate" hreflang="fi" href="https://www.mozilla.org/fi/firefox/desktop/customize/"
+ title="suomi"/>
+ <link rel="alternate" hreflang="fr" href="https://www.mozilla.org/fr/firefox/desktop/customize/"
+ title="Français"/>
+ <link rel="alternate" hreflang="fy-NL" href="https://www.mozilla.org/fy-NL/firefox/desktop/customize/"
+ title="Frysk"/>
+ <link rel="alternate" hreflang="ga-IE" href="https://www.mozilla.org/ga-IE/firefox/desktop/customize/"
+ title="Gaeilge"/>
+ <link rel="alternate" hreflang="gd" href="https://www.mozilla.org/gd/firefox/desktop/customize/"
+ title="Gàidhlig"/>
+ <link rel="alternate" hreflang="gl" href="https://www.mozilla.org/gl/firefox/desktop/customize/"
+ title="Galego"/>
+ <link rel="alternate" hreflang="he" href="https://www.mozilla.org/he/firefox/desktop/customize/"
+ title="עברית"/>
+ <link rel="alternate" hreflang="hi-IN" href="https://www.mozilla.org/hi-IN/firefox/desktop/customize/"
+ title="हिन्दी (भारत)"/>
+ <link rel="alternate" hreflang="hr" href="https://www.mozilla.org/hr/firefox/desktop/customize/"
+ title="Hrvatski"/>
+ <link rel="alternate" hreflang="hsb" href="https://www.mozilla.org/hsb/firefox/desktop/customize/"
+ title="Hornjoserbsce"/>
+ <link rel="alternate" hreflang="hu" href="https://www.mozilla.org/hu/firefox/desktop/customize/"
+ title="magyar"/>
+ <link rel="alternate" hreflang="hy-AM" href="https://www.mozilla.org/hy-AM/firefox/desktop/customize/"
+ title="Հայերեն"/>
+ <link rel="alternate" hreflang="id" href="https://www.mozilla.org/id/firefox/desktop/customize/"
+ title="Bahasa Indonesia"/>
+ <link rel="alternate" hreflang="is" href="https://www.mozilla.org/is/firefox/desktop/customize/"
+ title="íslenska"/>
+ <link rel="alternate" hreflang="it" href="https://www.mozilla.org/it/firefox/desktop/customize/"
+ title="Italiano"/>
+ <link rel="alternate" hreflang="ja" href="https://www.mozilla.org/ja/firefox/desktop/customize/"
+ title="日本語"/>
+ <link rel="alternate" hreflang="kk" href="https://www.mozilla.org/kk/firefox/desktop/customize/"
+ title="Қазақ"/>
+ <link rel="alternate" hreflang="km" href="https://www.mozilla.org/km/firefox/desktop/customize/"
+ title="ខ្មែរ"/>
+ <link rel="alternate" hreflang="kn" href="https://www.mozilla.org/kn/firefox/desktop/customize/"
+ title="ಕನ್ನಡ"/>
+ <link rel="alternate" hreflang="ko" href="https://www.mozilla.org/ko/firefox/desktop/customize/"
+ title="한국어"/>
+ <link rel="alternate" hreflang="lt" href="https://www.mozilla.org/lt/firefox/desktop/customize/"
+ title="lietuvių kalba"/>
+ <link rel="alternate" hreflang="lv" href="https://www.mozilla.org/lv/firefox/desktop/customize/"
+ title="Latviešu"/>
+ <link rel="alternate" hreflang="mk" href="https://www.mozilla.org/mk/firefox/desktop/customize/"
+ title="Македонски"/>
+ <link rel="alternate" hreflang="ml" href="https://www.mozilla.org/ml/firefox/desktop/customize/"
+ title="മലയാളം"/>
+ <link rel="alternate" hreflang="mr" href="https://www.mozilla.org/mr/firefox/desktop/customize/"
+ title="मराठी"/>
+ <link rel="alternate" hreflang="ms" href="https://www.mozilla.org/ms/firefox/desktop/customize/"
+ title="Melayu"/>
+ <link rel="alternate" hreflang="nb-NO" href="https://www.mozilla.org/nb-NO/firefox/desktop/customize/"
+ title="Norsk bokmål"/>
+ <link rel="alternate" hreflang="nl" href="https://www.mozilla.org/nl/firefox/desktop/customize/"
+ title="Nederlands"/>
+ <link rel="alternate" hreflang="or" href="https://www.mozilla.org/or/firefox/desktop/customize/"
+ title="ଓଡ଼ିଆ"/>
+ <link rel="alternate" hreflang="pa-IN" href="https://www.mozilla.org/pa-IN/firefox/desktop/customize/"
+ title="ਪੰਜਾਬੀ (ਭਾਰਤ)"/>
+ <link rel="alternate" hreflang="pl" href="https://www.mozilla.org/pl/firefox/desktop/customize/"
+ title="Polski"/>
+ <link rel="alternate" hreflang="pt-BR" href="https://www.mozilla.org/pt-BR/firefox/desktop/customize/"
+ title="Português (do&nbsp;Brasil)"/>
+ <link rel="alternate" hreflang="pt-PT" href="https://www.mozilla.org/pt-PT/firefox/desktop/customize/"
+ title="Português (Europeu)"/>
+ <link rel="alternate" hreflang="rm" href="https://www.mozilla.org/rm/firefox/desktop/customize/"
+ title="rumantsch"/>
+ <link rel="alternate" hreflang="ro" href="https://www.mozilla.org/ro/firefox/desktop/customize/"
+ title="română"/>
+ <link rel="alternate" hreflang="ru" href="https://www.mozilla.org/ru/firefox/desktop/customize/"
+ title="Русский"/>
+ <link rel="alternate" hreflang="sat" href="https://www.mozilla.org/sat/firefox/desktop/customize/"
+ title="संताली"/>
+ <link rel="alternate" hreflang="si" href="https://www.mozilla.org/si/firefox/desktop/customize/"
+ title="සිංහල"/>
+ <link rel="alternate" hreflang="sk" href="https://www.mozilla.org/sk/firefox/desktop/customize/"
+ title="slovenčina"/>
+ <link rel="alternate" hreflang="sl" href="https://www.mozilla.org/sl/firefox/desktop/customize/"
+ title="Slovenščina"/>
+ <link rel="alternate" hreflang="son" href="https://www.mozilla.org/son/firefox/desktop/customize/"
+ title="Soŋay"/>
+ <link rel="alternate" hreflang="sq" href="https://www.mozilla.org/sq/firefox/desktop/customize/"
+ title="Shqip"/>
+ <link rel="alternate" hreflang="sr" href="https://www.mozilla.org/sr/firefox/desktop/customize/"
+ title="Српски"/>
+ <link rel="alternate" hreflang="sv-SE" href="https://www.mozilla.org/sv-SE/firefox/desktop/customize/"
+ title="Svenska"/>
+ <link rel="alternate" hreflang="ta" href="https://www.mozilla.org/ta/firefox/desktop/customize/"
+ title="தமிழ்"/>
+ <link rel="alternate" hreflang="te" href="https://www.mozilla.org/te/firefox/desktop/customize/"
+ title="తెలుగు"/>
+ <link rel="alternate" hreflang="tr" href="https://www.mozilla.org/tr/firefox/desktop/customize/"
+ title="Türkçe"/>
+ <link rel="alternate" hreflang="uk" href="https://www.mozilla.org/uk/firefox/desktop/customize/"
+ title="Українська"/>
+ <link rel="alternate" hreflang="uz" href="https://www.mozilla.org/uz/firefox/desktop/customize/"
+ title="Oʻzbek tili"/>
+ <link rel="alternate" hreflang="vi" href="https://www.mozilla.org/vi/firefox/desktop/customize/"
+ title="Tiếng Việt"/>
+ <link rel="alternate" hreflang="xh" href="https://www.mozilla.org/xh/firefox/desktop/customize/"
+ title="isiXhosa"/>
+ <link rel="alternate" hreflang="zh-CN" href="https://www.mozilla.org/zh-CN/firefox/desktop/customize/"
+ title="中文 (简体)"/>
+ <link rel="alternate" hreflang="zh-TW" href="https://www.mozilla.org/zh-TW/firefox/desktop/customize/"
+ title="正體中文 (繁體)"/>
+ <!--[if lte IE 8]>
+ <script src="//mozorg.cdn.mozilla.net/media/js/libs/html5shiv.d580a4cd1cb4.js"></script>
+ <![endif]-->
+ <!--[if lte IE 7]>
+ <link href="//mozorg.cdn.mozilla.net/media/css/oldIE-bundle.fc1d1a0990cc.css"
+ rel="stylesheet" type="text/css" />
+ <![endif]-->
+ <!--[if !lte IE 7]>
+ <!-->
+ <link href="//mozorg.cdn.mozilla.net/media/css/firefox_desktop_customize-bundle.c0bde984d09d.css"
+ rel="stylesheet" type="text/css"/>
+ <!--<![endif]-->
+ <script src="//mozorg.cdn.mozilla.net/media/js/libs/modernizr.custom.cssanimations.856d2f5d99fa.js"></script>
+ <script type="text/javascript" src="//mozorg.cdn.mozilla.net/media/js/site-bundle.4d72c30b1a11.js"
+ charset="utf-8"></script>
+ <script>
+ var _gaq = _gaq || [];
+ var pluginUrl = '//www.google-analytics.com/plugins/ga/inpage_linkid.js';
+ _gaq.push(['_require', 'inpage_linkid', pluginUrl]);
+ _gaq.push(['_setAccount', 'UA-36116321-1']);
+ _gaq.push(['_setAllowLinker', true]);
+ _gaq.push(['_setAllowAnchor', true]);
+ _gaq.push(['_gat._anonymizeIp']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script');
+ ga.type = 'text/javascript';
+ ga.async = true;
+
+ var prefix = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www');
+ ga.src = prefix + '.google-analytics.com/ga.js';
+
+ var s = document.getElementsByTagName('script')[0];
+ s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ </head>
+
+ <body id="firefox-desktop-customize" class="html-ltr firefox-desktop">
+ <div id="strings" data-global-close="Close" data-global-next="Next" data-global-previous="Previous"
+ data-global-update-firefox="Update your Firefox"></div>
+ <div id="outer-wrapper">
+ <div id="fxfamilynav-wrapper">
+ <div id="fxfamilynav-cta-stager"></div>
+ <header id="fxfamilynav-header" class="fxfamilynav-header dark">
+ <div class="container"> <a href="/en-US/firefox/products/"><i class="fxfamilynav-logo">Firefox</i></a>
+
+ <nav
+ id="fxfamilynav" class="fxfamilynav" role="navigation">
+ <ul id="fxfamilynav-primary" class="primarynav">
+ <li> <a href="/en-US/firefox/desktop/" class="primary-link" data-id="desktop"><div><span>for</span> Desktop</div></a>
+
+ <ul
+ class="subnav" id="desktop-subnav">
+ <li class="hassubsubnav"> <a href="/en-US/firefox/desktop/" data-id="desktop-index"><div>Overview</div></a>
+
+ <ul
+ class="subsubnav" id="desktop-subsubnav">
+ <li><a href="/en-US/firefox/desktop/trust/" data-id="desktop-trust">Trusted</a>
+ </li>
+ <li><a href="/en-US/firefox/desktop/customize/" data-id="desktop-customize">Flexible</a>
+ </li>
+ <li><a href="/en-US/firefox/desktop/fast/" data-id="desktop-fast">Fast</a>
+ </li>
+ </ul>
+ </li>
+ <li><a href="/en-US/firefox/sync/" data-id="desktop-sync"><div>Sync</div></a>
+ </li>
+ <li><a href="/en-US/firefox/hello/" data-id="desktop-hello"><div>Hello</div></a>
+ </li>
+ </ul>
+ </li>
+ <li> <a href="/en-US/firefox/android/" class="primary-link" data-id="android"><div><span>for</span> Android</div></a>
+
+ <ul
+ class="subnav" id="android-subnav">
+ <li><a href="/en-US/firefox/android/" data-id="android-index"><div>Overview</div></a>
+ </li>
+ <li><a href="/en-US/firefox/sync/" data-id="android-sync"><div>Sync</div></a>
+ </li>
+ </ul>
+ </li>
+ <li> <a href="/en-US/firefox/os/" class="primary-link" data-id="os"><div>OS</div></a>
+
+ <ul
+ class="subnav" id="os-subnav">
+ <li><a href="/en-US/firefox/os/" data-id="os-index"><div>Overview</div></a>
+ </li>
+ <li><a href="/en-US/firefox/os/devices/" data-id="os-devices"><div>Devices</div></a>
+ </li>
+ <li><a href="/en-US/firefox/partners/" data-id="os-partners"><div>For partners</div></a>
+ </li>
+ <li><a rel="external" href="https://marketplace.firefox.com/" data-id="os-marketplace"><div>Marketplace<i class="icon-external"></i></div></a>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </nav>
+ <div id="fxfamilynav-tertiarynav" class="fxfamilynav-tertiarynav">
+ <div class="triangle"></div>
+ <div class="triangle-border"></div>
+ <div class="survey"> <a rel="external" target="_blank" href="http://www.surveygizmo.com/s3/2094311/Firefox-Family-Tertiary-Navigation">
+ What are you looking for in this menu?
+ </a>
+
+ </div>
+ <ul class="tertiarynav" data-parent="desktop">
+ <li><a href="/en-US/firefox/dnt/" data-ga="desktop - dnt">Do Not Track</a>
+ </li>
+ <li><a href="/en-US/firefox/tiles/" data-ga="desktop - tiles">Tiles</a>
+ </li>
+ <li><a href="/en-US/firefox/interest-dashboard/" data-ga="desktop - interest dashboard">Interest Dashboard</a>
+ </li>
+ <li><a href="/en-US/firefox/developer/" data-ga="desktop - developer edition">Developer Edition</a>
+ </li>
+ <li><a rel="external" href="https://support.mozilla.org/kb/private-browsing-browse-web-without-saving-info"
+ data-ga="desktop - private browsing">Private Browsing</a>
+ </li>
+ <li><a rel="external" href="https://addons.mozilla.org" data-ga="desktop - addons">Add-ons</a>
+ </li>
+ <li><a rel="external" href="https://support.mozilla.org/products/firefox"
+ data-ga="desktop - support">Need help?</a>
+ </li>
+ </ul>
+ <ul class="tertiarynav" data-parent="android">
+ <li><a href="/en-US/firefox/dnt/" data-ga="android - dnt">Do Not Track</a>
+ </li>
+ <li><a rel="external" href="https://www.youtube.com/watch?v=Ewk0YtFTBec&amp;list=PLA8ABF6B7A66A0C5E&amp;index=15"
+ data-ga="android - private browsing">Private Browsing</a>
+ </li>
+ <li><a rel="external" href="https://addons.mozilla.org/android/" data-ga="android - addons">Add-ons</a>
+ </li>
+ <li><a rel="external" href="https://support.mozilla.org/products/mobile" data-ga="android - support">Need help?</a>
+ </li>
+ </ul>
+ <ul class="tertiarynav" data-parent="os">
+ <li><a rel="external" href="https://blog.mozilla.org/blog/category/firefox-os/"
+ data-ga="os - news">News</a>
+ </li>
+ <li><a rel="external" href="https://developer.mozilla.org/Firefox_OS" data-ga="os - developers">For developers</a>
+ </li>
+ <li><a rel="external" href="https://find.firefox.com" data-ga="os - find my device">Find My Device</a>
+ </li>
+ <li><a rel="external" href="https://support.mozilla.org/products/firefox-os"
+ data-ga="os - support">Need help?</a>
+ </li>
+ </ul>
+ </div>
+ <div id="fxfamilynav-cta-wrapper" class="fxfamilynav-cta-wrapper"></div>
+ <button type="button" id="fxfamilynav-tertiarynav-trigger" class="fxfamilynav-tertiarynav-trigger"
+ aria-controls="fxfamilynav-tertiarynav"> <span>Menu</span>
+
+ <div class="trigger-dots">
+ <div class="trigger-dot"></div>
+ <div class="trigger-dot"></div>
+ <div class="trigger-dot"></div>
+ </div>
+ </button>
+ <div id="fxfamilynav-tabzilla" class="fxfamilynav-tabzilla"><a href="/en-US/">Mozilla</a>
+ </div>
+ </div>
+ </header>
+ <header id="fxfamilynavV2-header" class="fxfamilynav-header dark">
+ <div class="container"> <a href="/en-US/firefox/products/"><i class="fxfamilynav-logo">Firefox</i></a>
+
+ <nav
+ id="fxfamilynavV2" class="fxfamilynav" role="navigation">
+ <ul id="fxfamilynavV2-primary" class="primarynav">
+ <li id="desktops"> <span class="primary-link" data-id="desktops"><div>For desktops &amp; laptops</div></span>
+
+ <ul
+ class="subnav" data-parent="desktops" id="desktops-subnav">
+ <li class="hassubsubnav"> <a href="/en-US/firefox/desktop/" data-id="desktops-index"><div>Overview</div></a>
+
+ <ul
+ class="subsubnav" id="desktops-index-subnav">
+ <li><a href="/en-US/firefox/desktop/trust/" data-id="desktops-trust">Trusted</a>
+ </li>
+ <li><a href="/en-US/firefox/desktop/customize/" data-id="desktops-customize">Flexible</a>
+ </li>
+ <li><a href="/en-US/firefox/desktop/fast/" data-id="desktops-fast">Fast</a>
+ </li>
+ </ul>
+ </li>
+ <li><a href="/en-US/firefox/sync/" data-id="desktops-sync"><div>Sync</div></a>
+ </li>
+ <li><a href="/en-US/firefox/hello/" data-id="desktops-hello"><div>Hello</div></a>
+ </li>
+ </ul>
+ </li>
+ <li id="mobiles"> <span class="primary-link" data-id="mobiles"><div>For phones &amp; tablets</div></span>
+
+ <ul
+ class="subnav" data-parent="mobiles" id="mobiles-subnav">
+ <li class="hassubsubnav"> <a href="/en-US/firefox/android/" data-id="mobiles-android-index"><div>Android</div></a>
+
+ <ul
+ class="subsubnav subsubnav-single" id="mobiles-android-subnav">
+ <li><a href="/en-US/firefox/sync/" data-id="mobiles-android-sync">Sync</a>
+ </li>
+ </ul>
+ </li>
+ <li> <a href="/en-US/firefox/os/" data-id="mobiles-os-index"><div>Firefox OS</div></a>
+
+ <ul
+ class="subsubnav" id="mobiles-os-subnav">
+ <li><a href="/en-US/firefox/os/devices/" data-id="mobiles-os-devices">Devices</a>
+ </li>
+ <li><a href="/en-US/firefox/partners/" data-id="mobiles-os-partners">For partners</a>
+ </li>
+ <li><a rel="external" href="https://marketplace.firefox.com/" data-id="mobiles-os-marketplace">Marketplace<i class="icon-external"></i></a>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </nav>
+ <div id="fxfamilynavV2-tertiarynav" class="fxfamilynav-tertiarynav">
+ <div class="triangle"></div>
+ <div class="triangle-border"></div>
+ <div class="survey"> <a rel="external" target="_blank" href="http://www.surveygizmo.com/s3/2094311/Firefox-Family-Tertiary-Navigation">
+ What are you looking for in this menu?
+ </a>
+
+ </div>
+ <ul class="tertiarynav" data-parent="desktops">
+ <li><a href="/en-US/firefox/dnt/" data-ga="V2 desktops - dnt">Do Not Track</a>
+ </li>
+ <li><a href="/en-US/firefox/tiles/" data-ga="V2 desktops - tiles">Tiles</a>
+ </li>
+ <li><a href="/en-US/firefox/interest-dashboard/" data-ga="V2 desktops - interest dashboard">Interest Dashboard</a>
+ </li>
+ <li><a href="/en-US/firefox/developer/" data-ga="V2 desktops - developer edition">Developer Edition</a>
+ </li>
+ <li><a rel="external" href="https://support.mozilla.org/kb/private-browsing-browse-web-without-saving-info"
+ data-ga="V2 desktops - private browsing">Private Browsing</a>
+ </li>
+ <li><a rel="external" href="https://addons.mozilla.org" data-ga="V2 desktops - addons">Add-ons</a>
+ </li>
+ <li><a rel="external" href="https://support.mozilla.org/products/firefox"
+ data-ga="V2 desktops - support">Need help?</a>
+ </li>
+ </ul>
+ <ul class="tertiarynav" data-parent="mobiles">
+ <li>
+ <div class="tertiarynav-heading">Android</div>
+ <ul>
+ <li><a href="/en-US/firefox/dnt/" data-ga="V2 mobiles - android - dnt">Do Not Track</a>
+ </li>
+ <li><a rel="external" href="https://www.youtube.com/watch?v=Ewk0YtFTBec&amp;list=PLA8ABF6B7A66A0C5E&amp;index=15"
+ data-ga="V2 mobiles - android - private browsing">Private Browsing</a>
+ </li>
+ <li><a rel="external" href="https://addons.mozilla.org/android/" data-ga="V2 mobiles - android - addons">Add-ons</a>
+ </li>
+ <li><a rel="external" href="https://support.mozilla.org/products/mobile" data-ga="V2 mobiles - android - support">Need help?</a>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <div class="tertiarynav-heading">Firefox OS</div>
+ <ul>
+ <li><a rel="external" href="https://blog.mozilla.org/blog/category/firefox-os/"
+ data-ga="V2 mobiles - os - news">News</a>
+ </li>
+ <li><a rel="external" href="https://developer.mozilla.org/Firefox_OS" data-ga="V2 mobiles - os - developers">For developers</a>
+ </li>
+ <li><a rel="external" href="https://find.firefox.com" data-ga="V2 mobiles - os - find my device">Find My Device</a>
+ </li>
+ <li><a rel="external" href="https://support.mozilla.org/products/firefox-os"
+ data-ga="V2 mobiles - os - support">Need help?</a>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <div id="fxfamilynavV2-cta-wrapper" class="fxfamilynav-cta-wrapper"></div>
+ <button type="button" id="fxfamilynavV2-tertiarynav-trigger" class="fxfamilynav-tertiarynav-trigger"
+ aria-controls="fxfamilynav-tertiarynav"> <span>Menu</span>
+
+ <div class="trigger-dots">
+ <div class="trigger-dot"></div>
+ <div class="trigger-dot"></div>
+ <div class="trigger-dot"></div>
+ </div>
+ </button>
+ <div id="fxfamilynavV2-tabzilla" class="fxfamilynav-tabzilla"><a href="/en-US/">Mozilla</a>
+ </div>
+ </div>
+ </header>
+ </div>
+ <div id="wrapper">
+ <main role="main" id="main-content">
+ <section id="intro">
+ <div class="container">
+ <h1>Make your Firefox your own</h1>
+
+ <p class="lead">It’s easier than ever to personalize Firefox and make it work the way
+ you do.
+ <br class="wide-br"/>No other browser gives you so much choice and flexibility.</p>
+ <div class="animation-wrapper"
+ id="flexible-top-animation">
+ <img src="//mozorg.cdn.mozilla.net/media/img/firefox/desktop/customize/animations/flexible-top-fallback.c960365ba781.png"
+ class="fallback" alt=""/>
+ <div class="stage">
+ <div id="browser-customize-orange"></div>
+ <div id="browser-toolbar-outline"></div>
+ <div id="browser-toolbar-print"></div>
+ <div id="browser-toolbar-after" class="browser-toolbar"></div>
+ <div id="browser-toolbar-before" class="browser-toolbar"></div>
+ </div>
+ </div>
+ </div>
+ </section>
+ <section id="designed" class="ga-section" data-ga-label="Designed to be redesigned">
+ <div class="container">
+ <div id="designed-copy">
+ <h2>Designed to <br class="wide-br"/>be redesigned</h2>
+
+ <p>Get fast and easy access to the features you use most in the new menu.
+ Open the “Customize” panel to add, move or remove any button you want.
+ Keep your favorite features — add-ons, private browsing, Sync and more
+ — one quick click away.</p>
+ <img class="js " src="" data-processed="false"
+ data-src="//mozorg.cdn.mozilla.net/media/img/firefox/desktop/customize/designed-redesigned.fbd3ee9402e6.png"
+ data-high-res="true" data-high-res-src="//mozorg.cdn.mozilla.net/media/img/firefox/desktop/customize/designed-redesigned-high-res.6efd60766484.png"
+ alt="" id="designed-mobile"/>
+ <noscript>
+ <img class="" src="//mozorg.cdn.mozilla.net/media/img/firefox/desktop/customize/designed-redesigned.fbd3ee9402e6.png"
+ alt="" id="designed-mobile"/>
+ </noscript></div>
+ <div class="animation-wrapper" id="flexible-bottom-animation">
+ <img src="//mozorg.cdn.mozilla.net/media/img/firefox/desktop/customize/animations/flexible-bottom-fallback.cafd48a3d0a4.png"
+ class="fallback" alt=""/>
+ <div class="stage">
+ <div id="panel-start">
+ <div class="icon panel-icon-print"></div>
+ <div class="icon panel-icon-settings"></div>
+ <div class="icon panel-icon-fullscreen"></div>
+ <div class="icon panel-icon-search"></div>
+ <div class="icon panel-icon-addons"></div>
+ <div id="panel-start-footer-on"></div>
+ <div id="panel-start-footer"></div>
+ </div>
+ <div id="panel-edit-stage">
+ <div id="panel-edit-wrapper">
+ <div id="panel-edit">
+ <div id="panel-edit-print" class="icon panel-icon-print"></div>
+ <div id="panel-edit-settings" class="icon panel-icon-settings"></div>
+ <div id="panel-edit-fullscreen" class="icon panel-icon-fullscreen"></div>
+ <div id="panel-edit-search" class="icon panel-icon-search"></div>
+ <div id="panel-edit-addons" class="icon panel-icon-addons"></div>
+ <div id="panel-edit-empty1" class="panel-icon-empty icon"></div>
+ <div id="panel-edit-empty2" class="panel-icon-empty icon"></div>
+ <div id="panel-edit-empty3" class="panel-icon-empty icon"></div>
+ <div id="panel-edit-empty4" class="panel-icon-empty icon"></div>
+ <div id="panel-edit-footer"></div>
+ </div>
+ </div>
+ <div id="panel-edit-extras">
+ <div id="panel-edit-openfile" class="icon panel-icon-openfile"></div>
+ <div id="panel-edit-history" class="icon panel-icon-history"></div>
+ <div id="panel-edit-email" class="icon panel-icon-email"></div>
+ <div id="panel-edit-subscribe" class="icon panel-icon-subscribe"></div>
+ <div id="panel-edit-encoding" class="icon panel-icon-encoding"></div>
+ <div id="panel-edit-tabgroups" class="icon panel-icon-tabgroups"></div>
+ </div>
+ </div>
+ <div id="panel-end">
+ <div id="panel-end-settings" class="icon panel-icon-settings"></div>
+ <div id="panel-end-fullscreen" class="icon panel-icon-fullscreen"></div>
+ <div id="panel-end-search" class="icon panel-icon-search"></div>
+ <div id="panel-end-addons" class="icon panel-icon-addons"></div>
+ <div id="panel-end-history" class="icon panel-icon-history"></div>
+ <div id="panel-end-footer"> <a role="button" href="#" id="flexible-replay">
+ <span>Replay</span>
+ <div id="panel-end-replay"></div>
+ </a>
+
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </section>
+ <section id="customize" class="ga-section" data-ga-label="More ways to customize">
+ <div class="container">
+ <h2>More ways to customize</h2>
+
+ <ul class="feature-list" id="customizer-list" role="tablist">
+ <li> <a class="show-customizer selected" id="customize-themes" href="#themes">
+ <div class="stage">
+ <div class="circle-mask"></div>
+ <div id="brush"></div>
+ <div class="paint" id="paint-blue"></div>
+ <div class="paint" id="paint-red"></div>
+ <div class="paint" id="paint-orange"></div>
+ </div>
+ Themes
+ </a>
+
+ </li>
+ <li> <a class="show-customizer" id="customize-addons" href="#add-ons">
+ <div class="stage">
+ <div class="circle-mask"></div>
+ <div id="puzzle-pieces">
+ <div id="puzzle-off"></div>
+ <div id="puzzle-on"></div>
+ </div>
+ </div>
+ Add-ons
+ </a>
+
+ </li>
+ <li class="last"> <a class="show-customizer" id="customize-awesomebar" href="#awesome-bar">
+ <div class="stage">
+ <div class="circle-mask"></div>
+ <div id="awesomebar-on" class="awesomebar-icon"></div>
+ <div id="slat1" class="slat"></div>
+ <div id="slat2" class="slat"></div>
+ <div id="slat3" class="slat"></div>
+ <div id="awesomebar-off" class="awesomebar-icon"></div>
+ </div>
+ Awesome Bar
+ </a>
+
+ </li>
+ </ul>
+ </div>
+ </section>
+ <div id="customizers-wrapper">
+ <section class="customizer active" id="themes" role="tabpanel" aria-labelledby="customize-themes">
+ <div class="container">
+ <div class="customizer-copy">
+ <h3>Themes</h3>
+
+ <p class="lead">Make Firefox match your style. Choose from thousands of themes and dress
+ up your browser with a single click.</p>
+ <div id="themes-thumbs">
+ <button type="button" aria-controls="theme-demo" id="theme-yellow">Preview yellow theme</button>
+ <button type="button" aria-controls="theme-demo"
+ id="theme-green">Preview green theme</button>
+ <button type="button" aria-controls="theme-demo"
+ id="theme-blue">Preview blue theme</button>
+ <button type="button" aria-controls="theme-demo"
+ id="theme-red" class="selected">Preview red theme</button>
+ </div> <a class="more" rel="external" href="https://addons.mozilla.org/firefox/themes/">Try it now</a>
+
+ <br/> <a class="more" rel="external" href="https://support.mozilla.org/kb/use-themes-change-look-of-firefox">Learn more</a>
+
+ </div> <a class="next show-customizer" href="#add-ons" role="button">Next</a>
+
+ <div
+ class="customizer-visual">
+ <img id="theme-demo" src="//mozorg.cdn.mozilla.net/media/img/firefox/desktop/customize/theme-red.61611c5734ab.png"
+ alt="Preview of the currently selected theme"/>
+ </div>
+ </div>
+ </section>
+ <section class="customizer" id="add-ons" role="tabpanel" aria-labelledby="customize-addons">
+ <div class="container">
+ <div class="customizer-copy">
+ <h3>Add-ons</h3>
+ <a class="next show-customizer" href="#awesome-bar" role="button">Next</a>
+
+ <p
+ class="lead">Add-ons are like apps that you install to add features to Firefox. They
+ let you compare prices, check the weather, listen to music, send a tweet
+ and more.</p>
+ <ul>
+ <li>Read the latest news &amp; blogs</li>
+ <li>Manage your downloads</li>
+ <li>Watch videos &amp; view photos</li>
+ </ul> <a class="more" rel="external" href="https://addons.mozilla.org/firefox/extensions/?sort=featured">Here are a few of our favorites</a>
+
+ <br/> <a class="more" rel="external" href="https://support.mozilla.org/kb/find-and-install-add-ons-add-features-to-firefox">Learn more</a>
+
+ </div>
+ <!--/.customizer-copy-->
+ <div class="customizer-visual">
+ <img src="//mozorg.cdn.mozilla.net/media/img/firefox/desktop/customize/add-ons.63a4b761f822.png"
+ alt=""/>
+ </div>
+ </div>
+ </section>
+ <section class="customizer" id="awesome-bar" role="tabpanel" aria-labelledby="customize-awesomebar">
+ <div class="container">
+ <div class="customizer-copy">
+ <h3>Awesome Bar</h3>
+ <a class="next show-customizer" href="#themes" role="button">Next</a>
+
+ <p
+ class="lead">The Awesome Bar learns as you browse to make your version of Firefox unique.
+ Find and return to your favorite sites without having to remember a URL.</p>
+ <a
+ class="more" rel="external" href="https://support.mozilla.org/kb/awesome-bar-find-your-bookmarks-history-and-tabs">See what it can do for you</a>
+ </div>
+ <div class="customizer-visual">
+ <img src="//mozorg.cdn.mozilla.net/media/img/firefox/desktop/customize/awesome-bar.437df162126c.png"
+ alt="Firefox Awesome Bar"/>
+ </div>
+ </div>
+ </section>
+ </div>
+ <!--/#customizers-wrapper-->
+ <section id="sync" class="ga-section" data-ga-label="Keep your Firefox in Sync">
+ <div class="container">
+ <h2>Keep your Firefox in Sync</h2>
+
+ <p class="lead">Access your bookmarks, history, passwords and more from any device to
+ <br
+ class="wide-br"/>make Firefox your own wherever you use it.</p>
+ <div class="sync-anim">
+ <div class="device laptop">
+ <div class="inner">
+ <div class="logo"></div>
+ <div class="icon history"></div>
+ <div class="icon bookmarks"></div>
+ <div class="icon passwords"></div>
+ </div>
+ <div class="arrows"></div>
+ </div>
+ <div class="device tablet">
+ <div class="inner">
+ <div class="logo"></div>
+ <div class="icon history"></div>
+ <div class="icon bookmarks"></div>
+ <div class="icon passwords"></div>
+ </div>
+ </div>
+ <div class="device phone">
+ <div class="inner">
+ <div class="logo"></div>
+ <div class="icon history"></div>
+ <div class="icon bookmarks"></div>
+ <div class="icon passwords"></div>
+ </div>
+ </div>
+ </div> <a class="button" id="sync-button" href="http://www.mozilla.org/mobile/sync/"><span></span>Learn more about Sync</a>
+
+ <br/> <a class="more" rel="external" href="https://support.mozilla.org/kb/how-do-i-set-up-firefox-sync">Get help with Sync</a>
+
+ </div>
+ </section>
+ </main>
+ <div id="subscribe-download-wrapper" class="ga-section" data-ga-label="Get Firefox news">
+ <div class="container">
+ <div id="subscribe-wrapper">
+ <div id="footer-email-errors" class="hidden">
+ <ul class="errorlist"></ul>
+ </div>
+ <form class="billboard newsletter-form footer-newsletter-form" id="newsletter-form"
+ action="/en-US/newsletter/" method="post">
+ <input id="id_newsletters" name="newsletters" type="hidden" value="mozilla-and-you"/>
+ <input type="hidden" name="source_url" value="https://www.mozilla.org/en-US/firefox/desktop/customize/"/>
+ <h3>Get Firefox news</h3>
+
+ <div class="form-contents">
+ <div class="field field-email ">
+ <input id="id_email" name="email" placeholder="YOUR EMAIL HERE" required="required"
+ type="email"/>
+ </div>
+ <div id="form-details">
+ <div class="field field-country">
+ <select aria-required="true" id="id_country" name="country" required="required">
+ <option value="af">Afghanistan</option>
+ <option value="al">Albania</option>
+ <option value="dz">Algeria</option>
+ <option value="as">American Samoa</option>
+ <option value="ad">Andorra</option>
+ <option value="ao">Angola</option>
+ <option value="ai">Anguilla</option>
+ <option value="aq">Antarctica</option>
+ <option value="ag">Antigua and Barbuda</option>
+ <option value="ar">Argentina</option>
+ <option value="am">Armenia</option>
+ <option value="aw">Aruba</option>
+ <option value="au">Australia</option>
+ <option value="at">Austria</option>
+ <option value="az">Azerbaijan</option>
+ <option value="bs">Bahamas</option>
+ <option value="bh">Bahrain</option>
+ <option value="bd">Bangladesh</option>
+ <option value="bb">Barbados</option>
+ <option value="by">Belarus</option>
+ <option value="be">Belgium</option>
+ <option value="bz">Belize</option>
+ <option value="bj">Benin</option>
+ <option value="bm">Bermuda</option>
+ <option value="bt">Bhutan</option>
+ <option value="bo">Bolivia</option>
+ <option value="ba">Bosnia and Herzegovina</option>
+ <option value="bw">Botswana</option>
+ <option value="bv">Bouvet Island</option>
+ <option value="br">Brazil</option>
+ <option value="io">British Indian Ocean Territory</option>
+ <option value="vg">British Virgin Islands</option>
+ <option value="bn">Brunei Darussalam</option>
+ <option value="bg">Bulgaria</option>
+ <option value="bf">Burkina Faso</option>
+ <option value="bi">Burundi</option>
+ <option value="kh">Cambodia</option>
+ <option value="cm">Cameroon</option>
+ <option value="ca">Canada</option>
+ <option value="cv">Cape Verde</option>
+ <option value="ky">Cayman Islands</option>
+ <option value="cf">Central African Republic</option>
+ <option value="td">Chad</option>
+ <option value="cl">Chile</option>
+ <option value="cn">China</option>
+ <option value="cx">Christmas Island</option>
+ <option value="cc">Cocos (Keeling) Islands</option>
+ <option value="co">Colombia</option>
+ <option value="km">Comoros</option>
+ <option value="cg">Congo-Brazzaville</option>
+ <option value="cd">Congo-Kinshasa</option>
+ <option value="ck">Cook Islands</option>
+ <option value="cr">Costa Rica</option>
+ <option value="hr">Croatia</option>
+ <option value="cu">Cuba</option>
+ <option value="cy">Cyprus</option>
+ <option value="cz">Czech Republic</option>
+ <option value="dk">Denmark</option>
+ <option value="dj">Djibouti</option>
+ <option value="dm">Dominica</option>
+ <option value="do">Dominican Republic</option>
+ <option value="ec">Ecuador</option>
+ <option value="eg">Egypt</option>
+ <option value="sv">El Salvador</option>
+ <option value="gq">Equatorial Guinea</option>
+ <option value="er">Eritrea</option>
+ <option value="ee">Estonia</option>
+ <option value="et">Ethiopia</option>
+ <option value="fk">Falkland Islands (Malvinas)</option>
+ <option value="fo">Faroe Islands</option>
+ <option value="fj">Fiji</option>
+ <option value="fi">Finland</option>
+ <option value="fr">France</option>
+ <option value="gf">French Guiana</option>
+ <option value="pf">French Polynesia</option>
+ <option value="tf">French Southern Territories</option>
+ <option value="ga">Gabon</option>
+ <option value="gm">Gambia</option>
+ <option value="ge">Georgia</option>
+ <option value="de">Germany</option>
+ <option value="gh">Ghana</option>
+ <option value="gi">Gibraltar</option>
+ <option value="gr">Greece</option>
+ <option value="gl">Greenland</option>
+ <option value="gd">Grenada</option>
+ <option value="gp">Guadeloupe</option>
+ <option value="gu">Guam</option>
+ <option value="gt">Guatemala</option>
+ <option value="gg">Guernsey</option>
+ <option value="gn">Guinea</option>
+ <option value="gw">Guinea-Bissau</option>
+ <option value="gy">Guyana</option>
+ <option value="ht">Haiti</option>
+ <option value="hm">Heard Island and McDonald Islands</option>
+ <option value="hn">Honduras</option>
+ <option value="hk">Hong Kong</option>
+ <option value="hu">Hungary</option>
+ <option value="is">Iceland</option>
+ <option value="in">India</option>
+ <option value="id">Indonesia</option>
+ <option value="ir">Iran</option>
+ <option value="iq">Iraq</option>
+ <option value="ie">Ireland</option>
+ <option value="im">Isle of Man</option>
+ <option value="il">Israel</option>
+ <option value="it">Italy</option>
+ <option value="ci">Ivory Coast</option>
+ <option value="jm">Jamaica</option>
+ <option value="jp">Japan</option>
+ <option value="je">Jersey</option>
+ <option value="jo">Jordan</option>
+ <option value="kz">Kazakhstan</option>
+ <option value="ke">Kenya</option>
+ <option value="ki">Kiribati</option>
+ <option value="kw">Kuwait</option>
+ <option value="kg">Kyrgyzstan</option>
+ <option value="la">Laos</option>
+ <option value="lv">Latvia</option>
+ <option value="lb">Lebanon</option>
+ <option value="ls">Lesotho</option>
+ <option value="lr">Liberia</option>
+ <option value="ly">Libya</option>
+ <option value="li">Liechtenstein</option>
+ <option value="lt">Lithuania</option>
+ <option value="lu">Luxembourg</option>
+ <option value="mo">Macao</option>
+ <option value="mk">Macedonia, F.Y.R. of</option>
+ <option value="mg">Madagascar</option>
+ <option value="mw">Malawi</option>
+ <option value="my">Malaysia</option>
+ <option value="mv">Maldives</option>
+ <option value="ml">Mali</option>
+ <option value="mt">Malta</option>
+ <option value="mh">Marshall Islands</option>
+ <option value="mq">Martinique</option>
+ <option value="mr">Mauritania</option>
+ <option value="mu">Mauritius</option>
+ <option value="yt">Mayotte</option>
+ <option value="mx">Mexico</option>
+ <option value="fm">Micronesia</option>
+ <option value="md">Moldova</option>
+ <option value="mc">Monaco</option>
+ <option value="mn">Mongolia</option>
+ <option value="me">Montenegro</option>
+ <option value="ms">Montserrat</option>
+ <option value="ma">Morocco</option>
+ <option value="mz">Mozambique</option>
+ <option value="mm">Myanmar</option>
+ <option value="na">Namibia</option>
+ <option value="nr">Nauru</option>
+ <option value="np">Nepal</option>
+ <option value="nl">Netherlands</option>
+ <option value="an">Netherlands Antilles</option>
+ <option value="nc">New Caledonia</option>
+ <option value="nz">New Zealand</option>
+ <option value="ni">Nicaragua</option>
+ <option value="ne">Niger</option>
+ <option value="ng">Nigeria</option>
+ <option value="nu">Niue</option>
+ <option value="nf">Norfolk Island</option>
+ <option value="kp">North Korea</option>
+ <option value="mp">Northern Mariana Islands</option>
+ <option value="no">Norway</option>
+ <option value="ps">Occupied Palestinian Territory</option>
+ <option value="om">Oman</option>
+ <option value="pk">Pakistan</option>
+ <option value="pw">Palau</option>
+ <option value="pa">Panama</option>
+ <option value="pg">Papua New Guinea</option>
+ <option value="py">Paraguay</option>
+ <option value="pe">Peru</option>
+ <option value="ph">Philippines</option>
+ <option value="pn">Pitcairn</option>
+ <option value="pl">Poland</option>
+ <option value="pt">Portugal</option>
+ <option value="pr">Puerto Rico</option>
+ <option value="qa">Qatar</option>
+ <option value="re">Reunion</option>
+ <option value="ro">Romania</option>
+ <option value="ru">Russian Federation</option>
+ <option value="rw">Rwanda</option>
+ <option value="bl">Saint Barthélemy</option>
+ <option value="sh">Saint Helena</option>
+ <option value="kn">Saint Kitts and Nevis</option>
+ <option value="lc">Saint Lucia</option>
+ <option value="mf">Saint Martin</option>
+ <option value="pm">Saint Pierre and Miquelon</option>
+ <option value="vc">Saint Vincent and the Grenadines</option>
+ <option value="ws">Samoa</option>
+ <option value="sm">San Marino</option>
+ <option value="st">Sao Tome and Principe</option>
+ <option value="sa">Saudi Arabia</option>
+ <option value="sn">Senegal</option>
+ <option value="rs">Serbia</option>
+ <option value="sc">Seychelles</option>
+ <option value="sl">Sierra Leone</option>
+ <option value="sg">Singapore</option>
+ <option value="sk">Slovakia</option>
+ <option value="si">Slovenia</option>
+ <option value="sb">Solomon Islands</option>
+ <option value="so">Somalia</option>
+ <option value="za">South Africa</option>
+ <option value="gs">South Georgia and the South Sandwich Islands</option>
+ <option value="kr">South Korea</option>
+ <option value="es">Spain</option>
+ <option value="lk">Sri Lanka</option>
+ <option value="sd">Sudan</option>
+ <option value="sr">Suriname</option>
+ <option value="sj">Svalbard and Jan Mayen</option>
+ <option value="sz">Swaziland</option>
+ <option value="se">Sweden</option>
+ <option value="ch">Switzerland</option>
+ <option value="sy">Syria</option>
+ <option value="tw">Taiwan</option>
+ <option value="tj">Tajikistan</option>
+ <option value="tz">Tanzania</option>
+ <option value="th">Thailand</option>
+ <option value="tl">Timor-Leste</option>
+ <option value="tg">Togo</option>
+ <option value="tk">Tokelau</option>
+ <option value="to">Tonga</option>
+ <option value="tt">Trinidad and Tobago</option>
+ <option value="tn">Tunisia</option>
+ <option value="tr">Turkey</option>
+ <option value="tm">Turkmenistan</option>
+ <option value="tc">Turks and Caicos Islands</option>
+ <option value="tv">Tuvalu</option>
+ <option value="ae">U.A.E.</option>
+ <option value="vi">U.S. Virgin Islands</option>
+ <option value="ug">Uganda</option>
+ <option value="ua">Ukraine</option>
+ <option value="gb">United Kingdom</option>
+ <option value="us" selected="selected">United States</option>
+ <option value="um">United States Minor Outlying Islands</option>
+ <option value="uy">Uruguay</option>
+ <option value="uz">Uzbekistan</option>
+ <option value="vu">Vanuatu</option>
+ <option value="va">Vatican City</option>
+ <option value="ve">Venezuela</option>
+ <option value="vn">Vietnam</option>
+ <option value="wf">Wallis and Futuna</option>
+ <option value="eh">Western Sahara</option>
+ <option value="ye">Yemen</option>
+ <option value="zm">Zambia</option>
+ <option value="zw">Zimbabwe</option>
+ <option value="ax">Åland Islands</option>
+ </select>
+ </div>
+ <div class="field field-language ">
+ <select aria-required="true" id="id_lang" name="lang" required="required">
+ <option value="id">Bahasa Indonesia</option>
+ <option value="de">Deutsch</option>
+ <option value="en" selected="selected">English</option>
+ <option value="es">Español</option>
+ <option value="fr">Français</option>
+ <option value="pl">Polski</option>
+ <option value="pt">Português</option>
+ <option value="hu">magyar</option>
+ <option value="ru">Русский</option>
+ </select>
+ </div>
+ <div class="field field-format">
+ <label for="id_fmt_0">
+ <input checked="checked" id="id_fmt_0" name="fmt" type="radio" value="H"/>HTML</label>
+ <label for="id_fmt_1">
+ <input id="id_fmt_1" name="fmt" type="radio" value="T"/>Text</label>
+ </div>
+ <div class="field field-privacy ">
+ <label for="id_privacy" class="privacy-check-label">
+ <input id="id_privacy" name="privacy" required="required" type="checkbox"/> <span class="title">I’m okay with Mozilla handling my info as explained in <a href="/privacy/">this Privacy Policy</a></span>
+ </label>
+ </div>
+ </div>
+ </div>
+ <div class="form-submit">
+ <input type="submit" id="footer_email_submit" value="Sign me up&nbsp;»"
+ class="button"/>
+ <p class="form-details"> <small>We will only send you Mozilla-related information.</small>
+
+ </p>
+ </div>
+ <div id="newsletter-spinner" class="hidden"></div>
+ </form>
+ <div id="newsletter-form-thankyou" class="thank billboard newsletter-form hidden">
+ <h3>Thanks! Please check your inbox to confirm your subscription.</h3>
+
+ <p>You'll receive an email from [email protected] to confirm your subscription.
+ If you don't see it, check your spam filter. You must confirm your subscription
+ to receive our newsletter.</p>
+ </div>
+ </div>
+ <div id="download-wrapper">
+ <div id="download-button-desktop-release" class="download-button">
+ <noscript>
+ <div class="download download-dumb">
+ <h4>Download Firefox — English (US)</h4>
+
+ <ul>
+ <li><a href="https://download.mozilla.org/?product=firefox-stub&amp;os=win&amp;lang=en-US"
+ class="button-green">Windows</a>
+ </li>
+ <li><a href="https://download.mozilla.org/?product=firefox-37.0.1-SSL&amp;os=osx&amp;lang=en-US"
+ class="button-green">OS X</a>
+ </li>
+ <li><a href="https://download.mozilla.org/?product=firefox-37.0.1-SSL&amp;os=linux&amp;lang=en-US"
+ class="button-green">Linux</a>
+ </li>
+ <li><a href="https://download.mozilla.org/?product=firefox-37.0.1-SSL&amp;os=linux64&amp;lang=en-US"
+ class="button-green">Linux 64-bit</a>
+ </li>
+ <li><a href="https://play.google.com/store/apps/details?id=org.mozilla.firefox&amp;referrer=utm_source%3Dmozilla%26utm_medium%3DReferral%26utm_campaign%3Dmozilla-org"
+ class="button-green">Android</a>
+ </li>
+ </ul>
+ </div>
+ </noscript>
+ <div class="unrecognized-download">
+ <div class="download download-dumb">
+ <h4>Download Firefox — English (US)</h4>
+
+ <ul>
+ <li><a href="https://download.mozilla.org/?product=firefox-stub&amp;os=win&amp;lang=en-US"
+ class="button-green">Windows</a>
+ </li>
+ <li><a href="https://download.mozilla.org/?product=firefox-37.0.1-SSL&amp;os=osx&amp;lang=en-US"
+ class="button-green">OS X</a>
+ </li>
+ <li><a href="https://download.mozilla.org/?product=firefox-37.0.1-SSL&amp;os=linux&amp;lang=en-US"
+ class="button-green">Linux</a>
+ </li>
+ <li><a href="https://download.mozilla.org/?product=firefox-37.0.1-SSL&amp;os=linux64&amp;lang=en-US"
+ class="button-green">Linux 64-bit</a>
+ </li>
+ <li><a href="https://play.google.com/store/apps/details?id=org.mozilla.firefox&amp;referrer=utm_source%3Dmozilla%26utm_medium%3DReferral%26utm_campaign%3Dmozilla-org"
+ class="button-green">Android</a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ <p class="unsupported-download">Your system doesn't meet the <a href="/en-US/firefox/system-requirements/">requirements</a> to
+ run Firefox.</p>
+ <p class="linux-arm-download">Please follow <a href="https://support.mozilla.org/kb/install-firefox-linux">these instructions</a> to
+ install Firefox.</p>
+ <p class="ios-download">Firefox is coming soon to iOS! <a href="/en-US/newsletter/ios/">Sign up to learn more</a>.</p>
+ <ul
+ class="download-list">
+ <li class="os_win"> <a class="download-link" href="/firefox/new/?scene=2#download-fx" data-direct-link="https://download.mozilla.org/?product=firefox-stub&amp;os=win&amp;lang=en-US">
+ <span class="download-content">
+ <strong class="download-title">Firefox</strong>
+ <span class="download-subtitle">Free Download</span>
+ <span class="download-lang">English (US)</span>
+ <span class="download-platform">Windows</span>
+ </span>
+ </a>
+
+ </li>
+ <li class="os_osx"> <a class="download-link" href="/firefox/new/?scene=2#download-fx" data-direct-link="https://download.mozilla.org/?product=firefox-37.0.1-SSL&amp;os=osx&amp;lang=en-US">
+ <span class="download-content">
+ <strong class="download-title">Firefox</strong>
+ <span class="download-subtitle">Free Download</span>
+ <span class="download-lang">English (US)</span>
+ <span class="download-platform">OS X</span>
+ </span>
+ </a>
+
+ </li>
+ <li class="os_linux"> <a class="download-link" href="/firefox/new/?scene=2#download-fx" data-direct-link="https://download.mozilla.org/?product=firefox-37.0.1-SSL&amp;os=linux&amp;lang=en-US">
+ <span class="download-content">
+ <strong class="download-title">Firefox</strong>
+ <span class="download-subtitle">Free Download</span>
+ <span class="download-lang">English (US)</span>
+ <span class="download-platform">Linux</span>
+ </span>
+ </a>
+
+ </li>
+ <li class="os_linux64"> <a class="download-link" href="/firefox/new/?scene=2#download-fx" data-direct-link="https://download.mozilla.org/?product=firefox-37.0.1-SSL&amp;os=linux64&amp;lang=en-US">
+ <span class="download-content">
+ <strong class="download-title">Firefox</strong>
+ <span class="download-subtitle">Free Download</span>
+ <span class="download-lang">English (US)</span>
+ <span class="download-platform">Linux 64-bit</span>
+ </span>
+ </a>
+
+ </li>
+ <li class="os_android"> <a class="download-link" href="https://play.google.com/store/apps/details?id=org.mozilla.firefox&amp;referrer=utm_source%3Dmozilla%26utm_medium%3DReferral%26utm_campaign%3Dmozilla-org">
+ <span class="download-content">
+ <strong class="download-title"><span>Firefox</span> for Android</strong>
+ <span class="download-subtitle">Get it free on Google Play</span>
+ </span>
+ </a>
+
+ </li>
+ </ul> <small class="download-other os_android">
+ <a href="https://support.mozilla.org/kb/will-firefox-work-my-mobile-device">Supported Devices</a> | <a href="/en-US/mobile/notes/">What’s New</a> |
+ <a href="/en-US/privacy/firefox/">Privacy</a>
+ </small>
+ <small class="download-other download-other-desktop os_linux os_linux64 os_osx os_win os_win64">
+ <a href="/en-US/firefox/all/">Systems &amp; Languages</a> |
+ <a href="/en-US/firefox/notes/">What’s New</a> |
+ <a href="/en-US/privacy/firefox/">Privacy</a>
+ </small>
+
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <!-- close #wrapper -->
+ <footer id="colophon" class="">
+ <nav class="row">
+ <div class="col col-1">
+ <h1 class="logo"><a href="/en-US/">Mozilla</a></h1>
+
+ <p class="license">Portions of this content are ©1998–2015 by individual mozilla.org contributors.
+ Content available under a <a href="/en-US/foundation/licensing/website-content/">Creative Commons license</a>.</p>
+ </div>
+ <div class="col col-2">
+ <ul class="links-join">
+ <li><a href="/en-US/contact/spaces/">Contact Us</a>
+ </li>
+ <li class="wrap"><a href="/en-US/about/partnerships/">Partner with Us</a>
+ </li>
+ <li class="clear"><a href="https://sendto.mozilla.org/page/contribute/givenow-seq?preset=2&amp;source=mozillaorg_footer&amp;ref=EOYFR2014&amp;utm_campaign=EOYFR2014&amp;utm_source=mozilla.org&amp;utm_medium=referral&amp;utm_content=mozillaorg_footer"
+ class="donate">Donate</a>
+ </li>
+ <li class="wrap"><a href="https://affiliates.mozilla.org/">Firefox Affiliates</a>
+ </li>
+ <li class="clear"><a href="https://wiki.mozilla.org/Webdev/GetInvolved/mozilla.org">Contribute to this site</a>
+ </li>
+ </ul>
+ <ul class="links-legal">
+ <li><a href="/en-US/privacy/">Privacy</a>
+ </li>
+ <li class="wrap"><a href="/en-US/privacy/websites/#cookies">Cookies</a>
+ </li>
+ <li class="wrap"><a href="/en-US/about/legal/">Legal</a>
+ </li>
+ <li class="clear"><a href="/en-US/about/legal/fraud-report/">Report Trademark Abuse</a>
+ </li>
+ </ul>
+ </div>
+ <div class="col col-3">
+ <ul class="links-social">
+ <li>Mozilla:
+ <ul>
+ <li><a href="https://twitter.com/mozilla">Twitter<span> (@mozilla)</span></a>
+ </li>
+ <li><a href="https://www.facebook.com/mozilla">Facebook<span> (Mozilla)</span></a>
+ </li>
+ </ul>
+ </li>
+ <li>Firefox:
+ <ul>
+ <li><a href="https://twitter.com/firefox">Twitter<span> (@firefox)</span></a>
+ </li>
+ <li><a href="https://www.facebook.com/Firefox">Facebook<span> (Firefox)</span></a>
+ </li>
+ <li><a href="https://www.youtube.com/firefoxchannel">YouTube<span> (firefoxchannel)</span></a>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ <div class="lang-switcher">
+ <form id="lang_form" method="get" action="#">
+ <label for="language">Other languages:</label>
+ <select id="language" name="lang" dir="ltr">
+ <option lang="af" value="af">Afrikaans</option>
+ <option lang="an" value="an">aragonés</option>
+ <option lang="ar" value="ar">عربي</option>
+ <option lang="as" value="as">অসমীয়া</option>
+ <option lang="ast" value="ast">Asturianu</option>
+ <option lang="az" value="az">Azərbaycanca</option>
+ <option lang="be" value="be">Беларуская</option>
+ <option lang="bg" value="bg">Български</option>
+ <option lang="bn-IN" value="bn-IN">বাংলা (ভারত)</option>
+ <option lang="br" value="br">Brezhoneg</option>
+ <option lang="ca" value="ca">Català</option>
+ <option lang="cs" value="cs">Čeština</option>
+ <option lang="cy" value="cy">Cymraeg</option>
+ <option lang="da" value="da">Dansk</option>
+ <option lang="de" value="de">Deutsch</option>
+ <option lang="dsb" value="dsb">Dolnoserbšćina</option>
+ <option lang="el" value="el">Ελληνικά</option>
+ <option lang="en-GB" value="en-GB">English (British)</option>
+ <option lang="en-US" value="en-US" selected="">English</option>
+ <option lang="en-ZA" value="en-ZA">English (South African)</option>
+ <option lang="eo" value="eo">Esperanto</option>
+ <option lang="es-AR" value="es-AR">Español (de Argentina)</option>
+ <option lang="es-CL" value="es-CL">Español (de Chile)</option>
+ <option lang="es-ES" value="es-ES">Español (de España)</option>
+ <option lang="es-MX" value="es-MX">Español (de México)</option>
+ <option lang="et" value="et">Eesti keel</option>
+ <option lang="eu" value="eu">Euskara</option>
+ <option lang="fa" value="fa">فارسی</option>
+ <option lang="ff" value="ff">Pulaar-Fulfulde</option>
+ <option lang="fi" value="fi">suomi</option>
+ <option lang="fr" value="fr">Français</option>
+ <option lang="fy-NL" value="fy-NL">Frysk</option>
+ <option lang="ga-IE" value="ga-IE">Gaeilge</option>
+ <option lang="gd" value="gd">Gàidhlig</option>
+ <option lang="gl" value="gl">Galego</option>
+ <option lang="he" value="he">עברית</option>
+ <option lang="hi-IN" value="hi-IN">हिन्दी (भारत)</option>
+ <option lang="hr" value="hr">Hrvatski</option>
+ <option lang="hsb" value="hsb">Hornjoserbsce</option>
+ <option lang="hu" value="hu">magyar</option>
+ <option lang="hy-AM" value="hy-AM">Հայերեն</option>
+ <option lang="id" value="id">Bahasa Indonesia</option>
+ <option lang="is" value="is">íslenska</option>
+ <option lang="it" value="it">Italiano</option>
+ <option lang="ja" value="ja">日本語</option>
+ <option lang="kk" value="kk">Қазақ</option>
+ <option lang="km" value="km">ខ្មែរ</option>
+ <option lang="kn" value="kn">ಕನ್ನಡ</option>
+ <option lang="ko" value="ko">한국어</option>
+ <option lang="lt" value="lt">lietuvių kalba</option>
+ <option lang="lv" value="lv">Latviešu</option>
+ <option lang="mk" value="mk">Македонски</option>
+ <option lang="ml" value="ml">മലയാളം</option>
+ <option lang="mr" value="mr">मराठी</option>
+ <option lang="ms" value="ms">Melayu</option>
+ <option lang="nb-NO" value="nb-NO">Norsk bokmål</option>
+ <option lang="nl" value="nl">Nederlands</option>
+ <option lang="or" value="or">ଓଡ଼ିଆ</option>
+ <option lang="pa-IN" value="pa-IN">ਪੰਜਾਬੀ (ਭਾਰਤ)</option>
+ <option lang="pl" value="pl">Polski</option>
+ <option lang="pt-BR" value="pt-BR">Português (do&nbsp;Brasil)</option>
+ <option lang="pt-PT" value="pt-PT">Português (Europeu)</option>
+ <option lang="rm" value="rm">rumantsch</option>
+ <option lang="ro" value="ro">română</option>
+ <option lang="ru" value="ru">Русский</option>
+ <option lang="sat" value="sat">संताली</option>
+ <option lang="si" value="si">සිංහල</option>
+ <option lang="sk" value="sk">slovenčina</option>
+ <option lang="sl" value="sl">Slovenščina</option>
+ <option lang="son" value="son">Soŋay</option>
+ <option lang="sq" value="sq">Shqip</option>
+ <option lang="sr" value="sr">Српски</option>
+ <option lang="sv-SE" value="sv-SE">Svenska</option>
+ <option lang="ta" value="ta">தமிழ்</option>
+ <option lang="te" value="te">తెలుగు</option>
+ <option lang="tr" value="tr">Türkçe</option>
+ <option lang="uk" value="uk">Українська</option>
+ <option lang="uz" value="uz">Oʻzbek tili</option>
+ <option lang="vi" value="vi">Tiếng Việt</option>
+ <option lang="xh" value="xh">isiXhosa</option>
+ <option lang="zh-CN" value="zh-CN">中文 (简体)</option>
+ <option lang="zh-TW" value="zh-TW">正體中文 (繁體)</option>
+ </select>
+ <noscript>
+ <button type="submit">Go</button>
+ </noscript>
+ </form>
+ </div>
+ </div>
+ </nav>
+ </footer>
+ </div>
+ <!-- close #outer-wrapper -->
+ <!--[if IE 9]>
+ <script src="//mozorg.cdn.mozilla.net/media/js/libs/matchMedia.3fd01d1af18b.js"></script>
+ <![endif]-->
+ <script type="text/javascript" src="//mozorg.cdn.mozilla.net/media/js/firefox-resp-bundle.ec015d66a726.js"
+ charset="utf-8"></script>
+ <!--[if IE 9]>
+ <script type="text/javascript" src="//mozorg.cdn.mozilla.net/media/js/matchmedia_addlistener-bundle.e43d3c1c8b96.js"
+ charset="utf-8"></script>
+ <![endif]-->
+ <script type="text/javascript" src="//mozorg.cdn.mozilla.net/media/js/firefox_desktop_customize-bundle.bf7b63880438.js"
+ charset="utf-8"></script>
+ </body>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/mozilla-2/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/mozilla-2/expected-images.json
new file mode 100644
index 000000000..365d4c229
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/mozilla-2/expected-images.json
@@ -0,0 +1,11 @@
+[
+ "https:\/\/mozorg.cdn.mozilla.net\/media\/img\/firefox\/developer\/page-image.03bbe7da3199.png",
+ "http:\/\/mozorg.cdn.mozilla.net\/media\/img\/firefox\/firstrun\/dev\/feature-webide.16763db341cb.jpg",
+ "http:\/\/mozorg.cdn.mozilla.net\/media\/img\/firefox\/firstrun\/dev\/feature-valence.251f9def4d8d.jpg",
+ "http:\/\/mozorg.cdn.mozilla.net\/media\/img\/firefox\/firstrun\/dev\/feature-inspector.c791bf1f1a59.jpg",
+ "http:\/\/mozorg.cdn.mozilla.net\/media\/img\/firefox\/firstrun\/dev\/feature-console.42666aaf6d03.jpg",
+ "http:\/\/mozorg.cdn.mozilla.net\/media\/img\/firefox\/firstrun\/dev\/feature-debugger.02ed86fb0c9f.jpg",
+ "http:\/\/mozorg.cdn.mozilla.net\/media\/img\/firefox\/firstrun\/dev\/feature-network.740d6082b3f6.jpg",
+ "http:\/\/mozorg.cdn.mozilla.net\/media\/img\/firefox\/firstrun\/dev\/feature-webaudio.a10ebc48d017.jpg",
+ "http:\/\/mozorg.cdn.mozilla.net\/media\/img\/firefox\/firstrun\/dev\/feature-style-editor.87c5d2017506.jpg"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/mozilla-2/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/mozilla-2/expected-metadata.json
new file mode 100644
index 000000000..7336ada27
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/mozilla-2/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": "ltr",
+ "Excerpt": "Built for those who build the Web. Introducing the only browser made for developers.",
+ "Image": "https:\/\/mozorg.cdn.mozilla.net\/media\/img\/firefox\/developer\/page-image.03bbe7da3199.png",
+ "Title": "Welcome to Firefox Developer Edition",
+ "SiteName": "Mozilla"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/mozilla-2/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/mozilla-2/expected.html
new file mode 100644
index 000000000..8ce4c0703
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/mozilla-2/expected.html
@@ -0,0 +1,77 @@
+<div role="main"><section><header>
+ <p>Get to know the features that make it the most complete browser for building the Web.</p>
+ </header><ul><li>
+ <a href="https://www.youtube.com/watch?v=1R9_WdXwUsE" rel="external">
+ <img alt="Screenshot" src="http://mozorg.cdn.mozilla.net/media/img/firefox/firstrun/dev/feature-webide.16763db341cb.jpg"></img></a>
+ <h2>WebIDE</h2>
+ <p>Develop, deploy and debug Firefox OS apps directly in your browser, or on a Firefox OS device, with this tool that replaces App Manager.</p>
+ <a href="https://developer.mozilla.org/docs/Tools/WebIDE" rel="external">Learn more about WebIDE</a>
+
+ </li>
+ <li>
+ <a href="https://www.youtube.com/watch?v=eH0R10Ga4Hs" rel="external">
+ <img alt="Screenshot" src="http://mozorg.cdn.mozilla.net/media/img/firefox/firstrun/dev/feature-valence.251f9def4d8d.jpg"></img></a>
+ <h2>Valence</h2>
+ <p>Develop and debug your apps across multiple browsers and devices with this powerful extension that comes pre-installed with Firefox Developer Edition.</p>
+ <a href="https://developer.mozilla.org/docs/Tools/Firefox_Tools_Adapter" rel="external">Learn more about Valence</a>
+
+ </li>
+ </ul><div>
+ <h4>Important: Sync your new profile</h4>
+ <p>
+ Developer Edition comes with a new profile so you can run it alongside other versions of Firefox. To access your bookmarks, browsing history and more, you need to sync the profile with your existing Firefox Account, or create a new one.
+ <a href="https://support.mozilla.org/kb/recover-lost-bookmarks-firefox-developer-edition" rel="external">Learn more</a>
+ </p>
+ </div>
+ </section><section><div>
+ <header><h2>Features and tools</h2>
+ </header><ul><li>
+ <a href="https://www.youtube.com/watch?v=eQqNfkqIJdw" rel="external">
+ <img alt="Screenshot" src="http://mozorg.cdn.mozilla.net/media/img/firefox/firstrun/dev/feature-inspector.c791bf1f1a59.jpg"></img></a>
+ <h2>Page Inspector</h2>
+ <p>Examine the HTML and CSS of any Web page and easily modify the structure and layout of a page.</p>
+ <a href="https://developer.mozilla.org/docs/Tools/Page_Inspector" rel="external">Learn more about Page Inspector</a>
+
+ </li>
+ <li>
+ <a href="https://www.youtube.com/watch?v=iEDk8o9ehlw" rel="external">
+ <img alt="Screenshot" src="http://mozorg.cdn.mozilla.net/media/img/firefox/firstrun/dev/feature-console.42666aaf6d03.jpg"></img></a>
+ <h2>Web Console</h2>
+ <p>See logged information associated with a Web page and use Web Console to interact with Web pages using JavaScript.</p>
+ <a href="https://developer.mozilla.org/docs/Tools/Web_Console" rel="external">Learn more about Web Console</a>
+
+ </li>
+ <li>
+ <a href="https://www.youtube.com/watch?v=OS4AxYFLCIE" rel="external">
+ <img alt="Screenshot" src="http://mozorg.cdn.mozilla.net/media/img/firefox/firstrun/dev/feature-debugger.02ed86fb0c9f.jpg"></img></a>
+ <h2>JavaScript Debugger</h2>
+ <p>Step through JavaScript code and examine or modify its state to help track down bugs.</p>
+ <a href="https://developer.mozilla.org/docs/Tools/Debugger" rel="external">Learn more about JavaScript Debugger</a>
+
+ </li>
+ <li>
+ <a href="https://www.youtube.com/watch?v=w4zSG53Qlbk" rel="external">
+ <img alt="Screenshot" src="http://mozorg.cdn.mozilla.net/media/img/firefox/firstrun/dev/feature-network.740d6082b3f6.jpg"></img></a>
+ <h2>Network Monitor</h2>
+ <p>See all the network requests your browser makes, how long each request takes and details of each request.</p>
+ <a href="https://developer.mozilla.org/docs/Tools/Network_Monitor" rel="external">Learn more about Network Monitor</a>
+
+ </li>
+ <li>
+ <a href="https://www.youtube.com/watch?v=R_qDaLQ8ghg" rel="external">
+ <img alt="Screenshot" src="http://mozorg.cdn.mozilla.net/media/img/firefox/firstrun/dev/feature-webaudio.a10ebc48d017.jpg"></img></a>
+ <h2>Web Audio Editor</h2>
+ <p>Inspect and interact with Web Audio API in real time to ensure that all audio nodes are connected in the way you expect.</p>
+ <a href="https://developer.mozilla.org/docs/Tools/Web_Audio_Editor" rel="external">Learn more about Web Audio Editor</a>
+
+ </li>
+ <li>
+ <a href="https://www.youtube.com/watch?v=3kdBvvIZIqU" rel="external">
+ <img alt="Screenshot" src="http://mozorg.cdn.mozilla.net/media/img/firefox/firstrun/dev/feature-style-editor.87c5d2017506.jpg"></img></a>
+ <h2>Style Editor</h2>
+ <p>View and edit CSS styles associated with a Web page, create new ones and apply existing CSS stylesheets to any page.</p>
+ <a href="https://developer.mozilla.org/docs/Tools/Style_Editor" rel="external">Learn more about Style Editor</a>
+
+ </li>
+ </ul></div>
+ </section></div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/mozilla-2/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/mozilla-2/source.html
new file mode 100644
index 000000000..31f30a6b6
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/mozilla-2/source.html
@@ -0,0 +1,408 @@
+
+
+<!doctype html>
+<html class="windows x86 no-js" lang="en" dir="ltr" data-latest-firefox="37.0.2" data-esr-versions="[31]">
+ <head>
+ <meta charset="utf-8"/>
+<!--
+ _.-~-.
+ 7'' Q..\
+ _7 (_
+ _7 _/ _q. /
+ _7 . ___ /VVvv-'_ .
+ 7/ / /~- \_\\ '-._ .-' / //
+ ./ ( /-~-/||'=.__ '::. '-~'' { ___ / // ./{
+ V V-~-~| || __''_ ':::. ''~-~.___.-'' _/ // / {_ / { /
+ VV/-~-~-|/ \ .'__'. '. ':: _ _ _ ''.
+ / /~~~~||VVV/ / \ ) \ _ __ ___ ___ ___(_) | | __ _ .::'
+ / (~-~-~\\.-' / \' \::::. | '_ ` _ \ / _ \_ / | | |/ _` | :::'
+/..\ /..\__/ ' '::: | | | | | | (_) / /| | | | (_| | ::'
+vVVv vVVv ': |_| |_| |_|\___/___|_|_|_|\__,_| ''
+
+Hi there, nice to meet you!
+
+Interested in having a direct impact on hundreds of millions of users? Join
+Mozilla, and become part of a global community that’s helping to build a
+brighter future for the Web.
+
+Visit https://careers.mozilla.org to learn about our current job openings.
+Visit https://www.mozilla.org/contribute for more ways to get involved and
+help support Mozilla.-->
+
+ <meta name="viewport" content="width=device-width, initial-scale=1"/>
+ <meta name="robots" content="noindex"/>
+ <title>Welcome to Firefox Developer Edition</title>
+ <meta name="description" content=""/>
+ <meta property="og:type" content="website"/>
+ <meta property="og:site_name" content="Mozilla"/>
+ <meta property="og:locale" content="en_US"/>
+ <meta property="og:url" content="https://www.mozilla.org/en-US/firefox/developer/"/>
+ <meta property="og:image" content="https://mozorg.cdn.mozilla.net/media/img/firefox/developer/page-image.03bbe7da3199.png"/>
+ <meta property="og:title" content="Welcome to Firefox Developer Edition"/>
+ <meta property="og:description" content="Built for those who build the Web. Introducing the only browser made for developers."/>
+ <meta property="fb:page_id" content="14696440021"/>
+ <meta name="twitter:card" content="summary"/>
+ <meta name="twitter:site" content="@firefox"/>
+ <meta name="twitter:domain" content="mozilla.org"/>
+ <meta name="twitter:app:name:googleplay" content="Firefox"/>
+ <meta name="twitter:app:id:googleplay" content="org.mozilla.firefox"/>
+ <link rel="author" type="text/plain" href="/humans.txt"/>
+ <link rel="apple-touch-icon" type="image/png" sizes="180x180" href="//mozorg.cdn.mozilla.net/media/img/firefox/ios-icon-180.7a8401f21915.png"/>
+ <link rel="icon" type="image/png" sizes="196x196" href="//mozorg.cdn.mozilla.net/media/img/firefox/favicon-196.223e1bcaf067.png"/>
+ <link rel="shortcut icon" href="//mozorg.cdn.mozilla.net/media/img/firefox/favicon.dc6635050bf5.ico"/>
+ <link rel="canonical" hreflang="en" href="https://www.mozilla.org/en-US/firefox/39.0a2/firstrun/"/>
+ <link rel="alternate" hreflang="x-default" href="https://www.mozilla.org/firefox/39.0a2/firstrun/"/>
+ <link rel="alternate" hreflang="an" href="https://www.mozilla.org/an/firefox/39.0a2/firstrun/" title="aragonés"/>
+ <link rel="alternate" hreflang="ast" href="https://www.mozilla.org/ast/firefox/39.0a2/firstrun/" title="Asturianu"/>
+ <link rel="alternate" hreflang="bg" href="https://www.mozilla.org/bg/firefox/39.0a2/firstrun/" title="Български"/>
+ <link rel="alternate" hreflang="bn-IN" href="https://www.mozilla.org/bn-IN/firefox/39.0a2/firstrun/" title="বাংলা (ভারত)"/>
+ <link rel="alternate" hreflang="ca" href="https://www.mozilla.org/ca/firefox/39.0a2/firstrun/" title="Català"/>
+ <link rel="alternate" hreflang="cs" href="https://www.mozilla.org/cs/firefox/39.0a2/firstrun/" title="Čeština"/>
+ <link rel="alternate" hreflang="cy" href="https://www.mozilla.org/cy/firefox/39.0a2/firstrun/" title="Cymraeg"/>
+ <link rel="alternate" hreflang="de" href="https://www.mozilla.org/de/firefox/39.0a2/firstrun/" title="Deutsch"/>
+ <link rel="alternate" hreflang="dsb" href="https://www.mozilla.org/dsb/firefox/39.0a2/firstrun/" title="Dolnoserbšćina"/>
+ <link rel="alternate" hreflang="en-GB" href="https://www.mozilla.org/en-GB/firefox/39.0a2/firstrun/" title="English (British)"/>
+ <link rel="alternate" hreflang="en" href="https://www.mozilla.org/en-US/firefox/39.0a2/firstrun/" title="English"/>
+ <link rel="alternate" hreflang="en-CA" href="https://www.mozilla.org/en-US/firefox/39.0a2/firstrun/" title="English (Canada)"/>
+ <link rel="alternate" hreflang="eo" href="https://www.mozilla.org/eo/firefox/39.0a2/firstrun/" title="Esperanto"/>
+ <link rel="alternate" hreflang="es-AR" href="https://www.mozilla.org/es-AR/firefox/39.0a2/firstrun/" title="Español (de Argentina)"/>
+ <link rel="alternate" hreflang="es-CL" href="https://www.mozilla.org/es-CL/firefox/39.0a2/firstrun/" title="Español (de Chile)"/>
+ <link rel="alternate" hreflang="es-ES" href="https://www.mozilla.org/es-ES/firefox/39.0a2/firstrun/" title="Español (de España)"/>
+ <link rel="alternate" hreflang="es-MX" href="https://www.mozilla.org/es-MX/firefox/39.0a2/firstrun/" title="Español (de México)"/>
+ <link rel="alternate" hreflang="fr" href="https://www.mozilla.org/fr/firefox/39.0a2/firstrun/" title="Français"/>
+ <link rel="alternate" hreflang="fy-NL" href="https://www.mozilla.org/fy-NL/firefox/39.0a2/firstrun/" title="Frysk"/>
+ <link rel="alternate" hreflang="gd" href="https://www.mozilla.org/gd/firefox/39.0a2/firstrun/" title="Gàidhlig"/>
+ <link rel="alternate" hreflang="hsb" href="https://www.mozilla.org/hsb/firefox/39.0a2/firstrun/" title="Hornjoserbsce"/>
+ <link rel="alternate" hreflang="hu" href="https://www.mozilla.org/hu/firefox/39.0a2/firstrun/" title="magyar"/>
+ <link rel="alternate" hreflang="hy-AM" href="https://www.mozilla.org/hy-AM/firefox/39.0a2/firstrun/" title="Հայերեն"/>
+ <link rel="alternate" hreflang="id" href="https://www.mozilla.org/id/firefox/39.0a2/firstrun/" title="Bahasa Indonesia"/>
+ <link rel="alternate" hreflang="is" href="https://www.mozilla.org/is/firefox/39.0a2/firstrun/" title="íslenska"/>
+ <link rel="alternate" hreflang="it" href="https://www.mozilla.org/it/firefox/39.0a2/firstrun/" title="Italiano"/>
+ <link rel="alternate" hreflang="ja" href="https://www.mozilla.org/ja/firefox/39.0a2/firstrun/" title="日本語"/>
+ <link rel="alternate" hreflang="lt" href="https://www.mozilla.org/lt/firefox/39.0a2/firstrun/" title="lietuvių kalba"/>
+ <link rel="alternate" hreflang="nl" href="https://www.mozilla.org/nl/firefox/39.0a2/firstrun/" title="Nederlands"/>
+ <link rel="alternate" hreflang="pt-BR" href="https://www.mozilla.org/pt-BR/firefox/39.0a2/firstrun/" title="Português (do Brasil)"/>
+ <link rel="alternate" hreflang="pt-PT" href="https://www.mozilla.org/pt-PT/firefox/39.0a2/firstrun/" title="Português (Europeu)"/>
+ <link rel="alternate" hreflang="ru" href="https://www.mozilla.org/ru/firefox/39.0a2/firstrun/" title="Русский"/>
+ <link rel="alternate" hreflang="sk" href="https://www.mozilla.org/sk/firefox/39.0a2/firstrun/" title="slovenčina"/>
+ <link rel="alternate" hreflang="sl" href="https://www.mozilla.org/sl/firefox/39.0a2/firstrun/" title="Slovenščina"/>
+ <link rel="alternate" hreflang="son" href="https://www.mozilla.org/son/firefox/39.0a2/firstrun/" title="Soŋay"/>
+ <link rel="alternate" hreflang="sq" href="https://www.mozilla.org/sq/firefox/39.0a2/firstrun/" title="Shqip"/>
+ <link rel="alternate" hreflang="sv-SE" href="https://www.mozilla.org/sv-SE/firefox/39.0a2/firstrun/" title="Svenska"/>
+ <link rel="alternate" hreflang="tr" href="https://www.mozilla.org/tr/firefox/39.0a2/firstrun/" title="Türkçe"/>
+ <link rel="alternate" hreflang="uk" href="https://www.mozilla.org/uk/firefox/39.0a2/firstrun/" title="Українська"/>
+ <link rel="alternate" hreflang="uz" href="https://www.mozilla.org/uz/firefox/39.0a2/firstrun/" title="Oʻzbek tili"/>
+ <link rel="alternate" hreflang="zh-CN" href="https://www.mozilla.org/zh-CN/firefox/39.0a2/firstrun/" title="中文 (简体)"/>
+ <link rel="alternate" hreflang="zh-TW" href="https://www.mozilla.org/zh-TW/firefox/39.0a2/firstrun/" title="正體中文 (繁體)"/>
+
+
+
+ <link href="//mozorg.cdn.mozilla.net/media/css/tabzilla-min.c4ec201287fa.css" rel="stylesheet" type="text/css" />
+ <!--[if lte IE 8]>
+ <script src="//mozorg.cdn.mozilla.net/media/js/libs/html5shiv.d580a4cd1cb4.js"></script>
+ <![endif]-->
+
+ <!--[if lte IE 7]>
+ <link href="//mozorg.cdn.mozilla.net/media/css/oldIE-bundle.fc1d1a0990cc.css" rel="stylesheet" type="text/css" /> <![endif]-->
+
+ <!--[if !lte IE 7]><!-->
+ <link href="//mozorg.cdn.mozilla.net/media/css/firefox_developer_firstrun-bundle.c1bf35b84c00.css" rel="stylesheet" type="text/css" />
+ <!--<![endif]-->
+
+
+ <script type="text/javascript" src="//mozorg.cdn.mozilla.net/media/js/site-bundle.4d72c30b1a11.js" charset="utf-8"></script>
+
+ <script>
+var _gaq = _gaq || [];
+var pluginUrl = '//www.google-analytics.com/plugins/ga/inpage_linkid.js';
+_gaq.push(['_require', 'inpage_linkid', pluginUrl]);
+_gaq.push(['_setAccount', 'UA-36116321-1']);
+_gaq.push(['_setAllowLinker', true]);
+_gaq.push(['_setAllowAnchor', true]);
+_gaq.push(['_gat._anonymizeIp']);
+_gaq.push(['_trackPageview']);
+
+(function() {
+ var ga = document.createElement('script');
+ ga.type = 'text/javascript';
+ ga.async = true;
+
+ var prefix = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www');
+ ga.src = prefix + '.google-analytics.com/ga.js';
+
+ var s = document.getElementsByTagName('script')[0];
+ s.parentNode.insertBefore(ga, s);
+})();
+</script> </head>
+
+ <body id="firefox-developer-firstrun" class="html-ltr blueprint">
+ <div id="strings"
+ data-global-close="Close"
+ data-global-next="Next"
+ data-global-previous="Previous"
+ data-global-update-firefox="Update your Firefox"
+ data-devtools-title="Developer Tools"
+data-devtools-text="The most complete browser made just for developers, Firefox Developer Edition has every dev tool you’ll need built right in."
+data-next-webide="Next: WebIDE"
+data-webide-title="Try WebIDE"
+data-webide-text="Develop, deploy and debug Firefox OS apps directly in your browser or on a Firefox OS device."
+data-next-sync="Next: Sync"
+
+ data-sync-title="Important"
+ data-sync-text="Sync your new Developer Edition profile to your Firefox Account to access bookmarks, browsing history, passwords and more from your existing Firefox profile."
+ data-doorhanger-sync="Sync now"
+
+data-doorhanger-close="Close"
+data-doorhanger-nothanks="No thanks"
+data-webide-icon="//mozorg.cdn.mozilla.net/media/img/firefox/dev-firstrun/webide-blue.b8e098d7c9d9.png"
+data-webide-icon-high-res="//mozorg.cdn.mozilla.net/media/img/firefox/dev-firstrun/webide-blue-high-res.707008e1b9c2.png"
+data-devtools-icon="//mozorg.cdn.mozilla.net/media/img/firefox/dev-firstrun/devtools-blue.f5802a402e31.png"
+data-devtools-icon-high-res="//mozorg.cdn.mozilla.net/media/img/firefox/dev-firstrun/devtools-blue-high-res.977645f39d48.png"
+data-sync-icon="//mozorg.cdn.mozilla.net/media/img/firefox/dev-firstrun/sync-blue.c4ab116c7489.png"
+data-sync-icon-high-res="//mozorg.cdn.mozilla.net/media/img/firefox/dev-firstrun/sync-blue-high-res.25933e6416f9.png"
+
+ data-sync-reminder-title="Before you go&hellip;"
+ data-sync-reminder-text="If you continue without syncing your new Developer Edition profile, you could lose access to important browsing data from your existing Firefox profile. To sync now, choose the Sync option from this menu."
+
+></div>
+ <div id="outer-wrapper">
+
+
+ <div id="wrapper">
+
+ <header id="masthead">
+ <a href="/en-US/" id="tabzilla" data-infobar="update translation">Mozilla</a>
+
+
+ <h2><img class="js " src="" data-processed="false" data-src="//mozorg.cdn.mozilla.net/media/img/firefox/firstrun/dev/title.949ac051aba3.png" data-high-res="true" data-high-res-src="//mozorg.cdn.mozilla.net/media/img/firefox/firstrun/dev/title-high-res.3bd820c2e8da.png" width="220" alt="Firefox Developer Edition" height="84"/><noscript><img class="" src="//mozorg.cdn.mozilla.net/media/img/firefox/firstrun/dev/title.949ac051aba3.png" width="220" alt="Firefox Developer Edition" height="84"/></noscript></h2>
+
+
+
+
+ </header>
+
+
+
+
+<main role="main" class="sync-reminder" >
+ <section class="intro container">
+ <header>
+ <h1>Welcome to <span>Firefox Developer Edition</span></h1>
+ <p>Get to know the features that make it the most complete browser for building the Web.</p>
+ </header>
+ <ul class="features">
+ <li class="feature">
+ <a href="https://www.youtube.com/watch?v=1R9_WdXwUsE" rel="external" class="video-play">
+ <img src="//mozorg.cdn.mozilla.net/media/img/firefox/firstrun/dev/feature-webide.16763db341cb.jpg" alt="Screenshot" class="screenshot"/>
+ </a>
+ <h2>WebIDE</h2>
+ <p>Develop, deploy and debug Firefox OS apps directly in your browser, or on a Firefox OS device, with this tool that replaces App Manager.</p>
+ <a href="https://developer.mozilla.org/docs/Tools/WebIDE" rel="external" class="more">Learn more about WebIDE</a>
+ <div class="responsive-video-container">
+ <div class="video" data-video-id="1R9_WdXwUsE"></div>
+ </div>
+ </li>
+ <li class="feature">
+ <a href="https://www.youtube.com/watch?v=eH0R10Ga4Hs" rel="external" class="video-play">
+ <img src="//mozorg.cdn.mozilla.net/media/img/firefox/firstrun/dev/feature-valence.251f9def4d8d.jpg" alt="Screenshot" class="screenshot"/>
+ </a>
+ <h2>Valence</h2>
+ <p>Develop and debug your apps across multiple browsers and devices with this powerful extension that comes pre-installed with Firefox Developer Edition.</p>
+ <a href="https://developer.mozilla.org/docs/Tools/Firefox_Tools_Adapter" rel="external" class="more">Learn more about Valence</a>
+ <div class="responsive-video-container">
+ <div class="video" data-video-id="eH0R10Ga4Hs"></div>
+ </div>
+ </li>
+ </ul>
+ <div class="notice">
+ <h4>Important: Sync your new profile</h4>
+ <p>
+ Developer Edition comes with a new profile so you can run it alongside other versions of Firefox. To access your bookmarks, browsing history and more, you need to sync the profile with your existing Firefox Account, or create a new one.
+ <a href="https://support.mozilla.org/kb/recover-lost-bookmarks-firefox-developer-edition" rel="external" class="more">Learn more</a>
+ </p>
+ </div>
+ </section>
+
+ <section class="more-features">
+ <div class="container">
+ <header>
+ <h2>Features and tools</h2>
+ </header>
+ <ul class="features">
+ <li class="feature">
+ <a href="https://www.youtube.com/watch?v=eQqNfkqIJdw" rel="external" class="video-play">
+ <img src="//mozorg.cdn.mozilla.net/media/img/firefox/firstrun/dev/feature-inspector.c791bf1f1a59.jpg" alt="Screenshot" class="screenshot"/>
+ </a>
+ <h2>Page Inspector</h2>
+ <p>Examine the HTML and CSS of any Web page and easily modify the structure and layout of a page.</p>
+ <a href="https://developer.mozilla.org/docs/Tools/Page_Inspector" rel="external" class="more">Learn more about Page Inspector</a>
+ <div class="responsive-video-container">
+ <div class="video" data-video-id="eQqNfkqIJdw"></div>
+ </div>
+ </li>
+ <li class="feature">
+ <a href="https://www.youtube.com/watch?v=iEDk8o9ehlw" rel="external" class="video-play">
+ <img src="//mozorg.cdn.mozilla.net/media/img/firefox/firstrun/dev/feature-console.42666aaf6d03.jpg" alt="Screenshot" class="screenshot"/>
+ </a>
+ <h2>Web Console</h2>
+ <p>See logged information associated with a Web page and use Web Console to interact with Web pages using JavaScript.</p>
+ <a href="https://developer.mozilla.org/docs/Tools/Web_Console" rel="external" class="more">Learn more about Web Console</a>
+ <div class="responsive-video-container">
+ <div class="video" data-video-id="iEDk8o9ehlw"></div>
+ </div>
+ </li>
+ <li class="feature">
+ <a href="https://www.youtube.com/watch?v=OS4AxYFLCIE" rel="external" class="video-play">
+ <img src="//mozorg.cdn.mozilla.net/media/img/firefox/firstrun/dev/feature-debugger.02ed86fb0c9f.jpg" alt="Screenshot" class="screenshot"/>
+ </a>
+ <h2>JavaScript Debugger</h2>
+ <p>Step through JavaScript code and examine or modify its state to help track down bugs.</p>
+ <a href="https://developer.mozilla.org/docs/Tools/Debugger" rel="external" class="more">Learn more about JavaScript Debugger</a>
+ <div class="responsive-video-container">
+ <div class="video" data-video-id="OS4AxYFLCIE"></div>
+ </div>
+ </li>
+ <li class="feature">
+ <a href="https://www.youtube.com/watch?v=w4zSG53Qlbk" rel="external" class="video-play">
+ <img src="//mozorg.cdn.mozilla.net/media/img/firefox/firstrun/dev/feature-network.740d6082b3f6.jpg" alt="Screenshot" class="screenshot"/>
+ </a>
+ <h2>Network Monitor</h2>
+ <p>See all the network requests your browser makes, how long each request takes and details of each request.</p>
+ <a href="https://developer.mozilla.org/docs/Tools/Network_Monitor" rel="external" class="more">Learn more about Network Monitor</a>
+ <div class="responsive-video-container">
+ <div class="video" data-video-id="w4zSG53Qlbk"></div>
+ </div>
+ </li>
+ <li class="feature">
+ <a href="https://www.youtube.com/watch?v=R_qDaLQ8ghg" rel="external" class="video-play">
+ <img src="//mozorg.cdn.mozilla.net/media/img/firefox/firstrun/dev/feature-webaudio.a10ebc48d017.jpg" alt="Screenshot" class="screenshot"/>
+ </a>
+ <h2>Web Audio Editor</h2>
+ <p>Inspect and interact with Web Audio API in real time to ensure that all audio nodes are connected in the way you expect.</p>
+ <a href="https://developer.mozilla.org/docs/Tools/Web_Audio_Editor" rel="external" class="more">Learn more about Web Audio Editor</a>
+ <div class="responsive-video-container">
+ <div class="video" data-video-id="R_qDaLQ8ghg"></div>
+ </div>
+ </li>
+ <li class="feature">
+ <a href="https://www.youtube.com/watch?v=3kdBvvIZIqU" rel="external" class="video-play">
+ <img src="//mozorg.cdn.mozilla.net/media/img/firefox/firstrun/dev/feature-style-editor.87c5d2017506.jpg" alt="Screenshot" class="screenshot"/>
+ </a>
+ <h2>Style Editor</h2>
+ <p>View and edit CSS styles associated with a Web page, create new ones and apply existing CSS stylesheets to any page.</p>
+ <a href="https://developer.mozilla.org/docs/Tools/Style_Editor" rel="external" class="more">Learn more about Style Editor</a>
+ <div class="responsive-video-container">
+ <div class="video" data-video-id="3kdBvvIZIqU"></div>
+ </div>
+ </li>
+ </ul>
+ </div>
+ </section>
+</main>
+
+
+
+ </div><!-- close #wrapper -->
+
+ <footer id="colophon" class="">
+ <nav class="row">
+ <div class="col col-1">
+ <h1 class="logo"><a href="/en-US/">Mozilla</a></h1>
+ <p class="license">Portions of this content are ©1998–2015 by individual mozilla.org contributors. Content available under a <a href="/en-US/foundation/licensing/website-content/">Creative Commons license</a>.</p>
+ </div>
+ <div class="col col-2">
+ <ul class="links-join">
+ <li><a href="/en-US/contact/spaces/">Contact Us</a></li>
+ <li class="wrap"><a href="/en-US/about/partnerships/">Partner with Us</a></li>
+ <li class="clear"><a href="https://sendto.mozilla.org/page/contribute/givenow-seq?preset=2&amp;source=mozillaorg_footer&amp;ref=EOYFR2014&amp;utm_campaign=EOYFR2014&amp;utm_source=mozilla.org&amp;utm_medium=referral&amp;utm_content=mozillaorg_footer" class="donate">Donate</a></li>
+ <li class="wrap"><a href="https://affiliates.mozilla.org/">Firefox Affiliates</a></li>
+ <li class="clear"><a href="https://wiki.mozilla.org/Webdev/GetInvolved/mozilla.org">Contribute to this site</a></li>
+ </ul>
+ <ul class="links-legal">
+ <li><a href="/en-US/privacy/">Privacy</a></li>
+ <li class="wrap"><a href="/en-US/privacy/websites/#cookies">Cookies</a></li>
+ <li class="wrap"><a href="/en-US/about/legal/">Legal</a></li>
+ <li class="clear"><a href="/en-US/about/legal/fraud-report/">Report Trademark Abuse</a></li>
+ </ul>
+ </div>
+ <div class="col col-3">
+ <ul class="links-social">
+ <li>
+ Mozilla:
+ <ul>
+ <li><a href="https://twitter.com/mozilla">Twitter<span> (@mozilla)</span></a></li>
+ <li><a href="https://www.facebook.com/mozilla">Facebook<span> (Mozilla)</span></a></li>
+ </ul>
+ </li>
+ <li>
+ Firefox:
+ <ul>
+ <li><a href="https://twitter.com/firefox">Twitter<span> (@firefox)</span></a></li>
+ <li><a href="https://www.facebook.com/Firefox">Facebook<span> (Firefox)</span></a></li>
+ <li><a href="https://www.youtube.com/firefoxchannel">YouTube<span> (firefoxchannel)</span></a></li>
+ </ul>
+ </li>
+ </ul>
+ <div class="lang-switcher">
+ <form id="lang_form" method="get" action="#">
+ <label for="language">Other languages:</label>
+ <select id="language" name="lang" dir="ltr">
+ <option lang="an" value="an">aragonés</option>
+ <option lang="ast" value="ast">Asturianu</option>
+ <option lang="bg" value="bg">Български</option>
+ <option lang="bn-IN" value="bn-IN">বাংলা (ভারত)</option>
+ <option lang="ca" value="ca">Català</option>
+ <option lang="cs" value="cs">Čeština</option>
+ <option lang="cy" value="cy">Cymraeg</option>
+ <option lang="de" value="de">Deutsch</option>
+ <option lang="dsb" value="dsb">Dolnoserbšćina</option>
+ <option lang="en-GB" value="en-GB">English (British)</option>
+ <option lang="en-US" value="en-US" selected>English</option>
+ <option lang="eo" value="eo">Esperanto</option>
+ <option lang="es-AR" value="es-AR">Español (de Argentina)</option>
+ <option lang="es-CL" value="es-CL">Español (de Chile)</option>
+ <option lang="es-ES" value="es-ES">Español (de España)</option>
+ <option lang="es-MX" value="es-MX">Español (de México)</option>
+ <option lang="fr" value="fr">Français</option>
+ <option lang="fy-NL" value="fy-NL">Frysk</option>
+ <option lang="gd" value="gd">Gàidhlig</option>
+ <option lang="hsb" value="hsb">Hornjoserbsce</option>
+ <option lang="hu" value="hu">magyar</option>
+ <option lang="hy-AM" value="hy-AM">Հայերեն</option>
+ <option lang="id" value="id">Bahasa Indonesia</option>
+ <option lang="is" value="is">íslenska</option>
+ <option lang="it" value="it">Italiano</option>
+ <option lang="ja" value="ja">日本語</option>
+ <option lang="lt" value="lt">lietuvių kalba</option>
+ <option lang="nl" value="nl">Nederlands</option>
+ <option lang="pt-BR" value="pt-BR">Português (do Brasil)</option>
+ <option lang="pt-PT" value="pt-PT">Português (Europeu)</option>
+ <option lang="ru" value="ru">Русский</option>
+ <option lang="sk" value="sk">slovenčina</option>
+ <option lang="sl" value="sl">Slovenščina</option>
+ <option lang="son" value="son">Soŋay</option>
+ <option lang="sq" value="sq">Shqip</option>
+ <option lang="sv-SE" value="sv-SE">Svenska</option>
+ <option lang="tr" value="tr">Türkçe</option>
+ <option lang="uk" value="uk">Українська</option>
+ <option lang="uz" value="uz">Oʻzbek tili</option>
+ <option lang="zh-CN" value="zh-CN">中文 (简体)</option>
+ <option lang="zh-TW" value="zh-TW">正體中文 (繁體)</option>
+ </select>
+ <noscript>
+ <button type="submit">Go</button>
+ </noscript>
+</form>
+ </div>
+ </div>
+ </nav>
+ </footer>
+ </div><!-- close #outer-wrapper -->
+
+ <!--[if IE 9]>
+ <script src="//mozorg.cdn.mozilla.net/media/js/libs/matchMedia.3fd01d1af18b.js"></script>
+ <![endif]-->
+
+ <script type="text/javascript" src="//mozorg.cdn.mozilla.net/media/js/firefox-resp-bundle.ec015d66a726.js" charset="utf-8"></script> <script src="//mozorg.cdn.mozilla.net/en-US/tabzilla/tabzilla.js"></script>
+ <script type="text/javascript" src="//mozorg.cdn.mozilla.net/media/js/firefox_developer_firstrun-bundle.28d5bb93eb60.js" charset="utf-8"></script> </body>
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/msn/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/msn/expected-images.json
new file mode 100644
index 000000000..176afee89
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/msn/expected-images.json
@@ -0,0 +1,4 @@
+[
+ "http:\/\/img-s-msn-com.akamaized.net\/tenant\/amp\/entityid\/AAkk5fh.img",
+ "http:\/\/img-s-msn-com.akamaized.net\/tenant\/amp\/entityid\/AAkk5fh.img?h=820&w=1456&m=6&q=60&o=f&l=f&x=1162&y=540"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/msn/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/msn/expected-metadata.json
new file mode 100644
index 000000000..673d99512
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/msn/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "Alex Perry\n \n 1 day ago",
+ "Direction": null,
+ "Excerpt": "Nintendo and Apple shocked the world earlier this year by announcing \"Super Mario Run,\" the legendary gaming company's first foray into mobile gaming.&nbsp;",
+ "Image": "http:\/\/img-s-msn-com.akamaized.net\/tenant\/amp\/entityid\/AAkk5fh.img",
+ "Title": "Nintendo's first iPhone game will launch in December for $10",
+ "SiteName": "MSN"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/msn/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/msn/expected.html
new file mode 100644
index 000000000..3ed4d696c
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/msn/expected.html
@@ -0,0 +1,18 @@
+<article data-aop="article" itemscope="" itemtype="http://schema.org/NewsArticle"><section data-aop="articlebody" itemprop="articleBody"><p>
+ <span data-aop="image">
+<span data-attrib="Provided by Business Insider Inc" data-caption="&lt;span style=&quot;font-size:13px;&quot;>Nintendo/Apple&lt;/span>" data-id="55" data-m="{&quot;i&quot;:55,&quot;p&quot;:52,&quot;n&quot;:&quot;openModal&quot;,&quot;t&quot;:&quot;articleImages&quot;,&quot;o&quot;:3}">
+ <img alt="&lt;span style=&quot;font-size:13px;&quot;>Nintendo/Apple&lt;/span>" data-initial-set="true" data-src="{&quot;default&quot;:{&quot;load&quot;:&quot;default&quot;,&quot;w&quot;:&quot;73&quot;,&quot;h&quot;:&quot;41&quot;,&quot;src&quot;:&quot;//img-s-msn-com.akamaized.net/tenant/amp/entityid/AAkk5fh.img?h=410&amp;w=728&amp;m=6&amp;q=60&amp;o=f&amp;l=f&amp;x=1162&amp;y=540&quot;},&quot;size3column&quot;:{&quot;load&quot;:&quot;default&quot;,&quot;w&quot;:&quot;62&quot;,&quot;h&quot;:&quot;35&quot;,&quot;src&quot;:&quot;//img-s-msn-com.akamaized.net/tenant/amp/entityid/AAkk5fh.img?h=351&amp;w=624&amp;m=6&amp;q=60&amp;o=f&amp;l=f&amp;x=1162&amp;y=540&quot;},&quot;size2column&quot;:{&quot;load&quot;:&quot;default&quot;,&quot;w&quot;:&quot;62&quot;,&quot;h&quot;:&quot;35&quot;,&quot;src&quot;:&quot;//img-s-msn-com.akamaized.net/tenant/amp/entityid/AAkk5fh.img?h=351&amp;w=624&amp;m=6&amp;q=60&amp;o=f&amp;l=f&amp;x=1162&amp;y=540&quot;}}" src="http://img-s-msn-com.akamaized.net/tenant/amp/entityid/AAkk5fh.img?h=820&amp;w=1456&amp;m=6&amp;q=60&amp;o=f&amp;l=f&amp;x=1162&amp;y=540"></img></span>
+ <span>
+ <span>© Provided by Business Insider Inc</span>
+ <span>Nintendo/Apple</span>
+ </span>
+ </span>
+ Nintendo and Apple shocked the world earlier this year by announcing "Super Mario Run," the legendary gaming company's first foray into mobile gaming. It's a Mario game you can play on your phone with just one hand, so what's not to love?</p>
+ <p>Thankfully, now we know when you can get it and for how much: "Super Mario Run" will launch on iPhone and iPad on December 15, for a flat fee of $9.99. You can play a sample of the game modes for free, but unlike most other mobile games that let you download for free but require money to keep playing, or access parts of the game, you can pay $10 to get everything right away. </p>
+ <p>In case you haven't heard, "Super Mario Run" is essentially a regular, side-scrolling "Super Mario" game with one key difference: You don't control Mario's movement. He runs automatically and all you do is tap the screen to jump.</p>
+ <p>The name and basic idea might sound like one of those endless score attack games like "Temple Run," but that's not the case. "Super Mario Run" is divided into hand-crafted levels with a clear end-point like any other Mario game, meaning you're essentially getting the Mario experience for $10 without needing to control his movement.</p>
+ <p>$10 might seem like a bit much compared to the $0 people pay for most mobile games, but it's possible the game has $10 worth of levels to play in it. It's also not iPhone exclusive, but the Android version will launch at a later, currently unknown date. </p>
+ <p>To see "Super Mario Run" in action, check out the footage below:</p>
+ <p><iframe allowfullscreen="" frameborder="0" height="450" src="https://www.youtube.com/embed/E39ychZKnDI" width="100%"></iframe></p>
+
+ </section></article> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/msn/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/msn/source.html
new file mode 100644
index 000000000..be55bf3fa
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/msn/source.html
@@ -0,0 +1,13010 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb#" style="font-size:62.5%" class="hiperf loaded" dir="ltr" lang="en-US">
+
+<head data-info="v:2.0.6163.81;a:09bc8b7b-7648-4883-a023-f9b400b40653;cn:16;az:{did:5f46f41407bf434ca0465c7153fafe3d, rid: 16, sn: easia-prod-entertainment, dt: 2016-11-09T14:47:17.9448460Z, bt: 2016-11-15T00:05:57.0356882Z};ddpi:1;dpio:;dpi:1;dg:tmx.pc.moz;th:gray;PageName:articlePage;m:en-us;cb:;l:en-us;mu:en-us;ud:{cid:AAkm7Xj,vk:news,n:ar,l:en-us,ck:newsscienceandtechnology};xd:;ovc:f;al:;f:muidflt9cf,muidflt14cf,muidflt50cf,muidflt301cf" data-js="{&quot;dpi&quot;:1.0,&quot;ddpi&quot;:1.0,&quot;dpio&quot;:null,&quot;forcedpi&quot;:null,&quot;dms&quot;:6000,&quot;ps&quot;:1000,&quot;bds&quot;:7,&quot;dg&quot;:&quot;tmx.pc.moz&quot;,&quot;ssl&quot;:false,&quot;moduleapi&quot;:&quot;http://www.msn.com/en-us/news/api/modules/fetch&quot;,&quot;cdnmoduleapi&quot;:&quot;http://static-entertainment-eas-s-msn-com.akamaized.net/en-us/news/api/modules/cdnfetch&quot;,&quot;pdpdeltaupdateapi&quot;:&quot;http://www.msn.com/en-us/homepage/api/pdp/updatepdpdata&quot;,&quot;xd&quot;:null,&quot;signedin&quot;:0,&quot;sso&quot;:&quot;https://login.live.com/login.srf?wa=wsignin1.0&amp;rpsnv=13&amp;checkda=1&amp;ct=1479286777&amp;rver=6.7.6643.0&amp;wp=lbi&amp;wreply=https%3a%2f%2fwww.msn.com%2fen-us%2fnews%2fsecure%2fsilentpassport%3fsecure%3dfalse&amp;lc=1033&amp;id=1184&amp;mkt=en-us&quot;,&quot;exchangeenabled&quot;:false,&quot;twitterimpenabled&quot;:false,&quot;greenidcallenabled&quot;:false}" data-client-settings="{&quot;geo_country&quot;:&quot;tw&quot;,&quot;os_region&quot;:&quot;&quot;,&quot;apps_locale&quot;:&quot;&quot;,&quot;base_url&quot;:&quot;/en-us/news/&quot;,&quot;aid&quot;:&quot;09bc8b7b76484883a023f9b400b40653&quot;,&quot;sid&quot;:null,&quot;v&quot;:&quot;2.0.6163.81&quot;,&quot;static_page&quot;:false,&quot;functionalonly_cookie_experience&quot;:false,&quot;fbid&quot;:&quot;132970837947&quot;,&quot;lvk&quot;:&quot;news&quot;,&quot;vk&quot;:&quot;news&quot;,&quot;cat&quot;:&quot;z&quot;,&quot;autorefresh&quot;:true,&quot;bingssl&quot;:false,&quot;autorefreshsettings&quot;:{&quot;is_market_enabled&quot;:false,&quot;timeout&quot;:0,&quot;idle_enabled&quot;:false,&quot;idle_timeout&quot;:&quot;2&quot;},&quot;uipr&quot;:false,&quot;uiprsettings&quot;:{&quot;enabled&quot;:false,&quot;frequency_minutes&quot;:0,&quot;banner_delay_minutes&quot;:null,&quot;maxfresh_display&quot;:null,&quot;minfresh_count&quot;:&quot;5&quot;,&quot;ajaxtimeoutinseconds&quot;:&quot;60&quot;},&quot;imgsrc&quot;:{&quot;quality_high&quot;:&quot;60&quot;,&quot;quality_low&quot;:&quot;5&quot;,&quot;order_timeout&quot;:&quot;1000&quot;},&quot;adsettings&quot;:{&quot;wait_for_ad_in_sec&quot;:&quot;3&quot;,&quot;retry_for_ad&quot;:&quot;2&quot;},&quot;mecontroluri&quot;:&quot;https://mem.gfx.ms/meversion/?partner=msn&amp;market=en-us&quot;,&quot;lazyload&quot;:{&quot;enabled&quot;:false}}">
+ <script src="http://rma-api.gravity.com/v1/beacons/log?cbust=750-43&amp;site_guid=14f1a20a34a9356b91dd8b860925478c&amp;action=beacon&amp;user_guid=ecb8dbfba6d71457af1c7f4b7dbc2b6d&amp;referrer=&amp;browser_useragent=Mozilla%2F5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010.11%3B%20rv%3A53.0%29%20Gecko%2F20100101%20Firefox%2F53.0&amp;OS=MacOS&amp;href=http%3A%2F%2Fwww.msn.com%2Fen-us%2Fnews%2Ftechnology%2Fnintendos-first-iphone-game-will-launch-in-december-for-dollar10%2Far-AAkm7Xj&amp;url=http%3A%2F%2Fwww.businessinsider.com%2Fsuper-mario-run-december-15-2016-11&amp;article_title=Nintendo%27s%20first%20iPhone%20game%20will%20launch%20in%20December%20for%20%2410&amp;type=content" type="text/javascript"></script>
+ <script async="" src="http://b.scorecardresearch.com/beacon.js"></script>
+ <script charset="UTF-8" type="text/javascript" src="http://cdn.taboola.com/libtrc/impl.thin.233-25-RELEASE.js"></script>
+ <script src="http://rma-api.gravity.com/v1/beacons/initialize" type="text/javascript" async=""></script>
+ <meta charset="utf-8" />
+
+
+
+ <script>
+ var _timing = {
+ start: +new Date
+ }
+ </script>
+
+ <script>
+ window.adsEnabled = false;
+ </script>
+ <script src="/advertisement.ad.js"></script>
+
+ <meta name="application-name" content="Nintendo's first iPhone game will launch in December for $10" />
+ <link rel="dns-prefetch" href="//img-s-msn-com.akamaized.net" />
+ <link rel="dns-prefetch" href="//rad.msn.com" />
+ <link rel="dns-prefetch" href="//otf.msn.com" />
+ <link rel="dns-prefetch" href="//c.msn.com" />
+ <link rel="dns-prefetch" href="https://www.bing.com" />
+ <link rel="canonical" href="http://www.businessinsider.com/super-mario-run-december-15-2016-11" />
+ <link rel="alternate" hreflang="en-us" href="http://www.msn.com/en-us/news/technology/nintendos-first-iphone-game-will-launch-in-december-for-dollar10/ar-AAkm7Xj" />
+ <meta name="msapplication-TileColor" content="#1e1e1e" />
+ <meta name="msapplication-TileImage" content="//static-entertainment-eas-s-msn-com.akamaized.net/sc/1f/08ced4.png" />
+ <meta name="msapplication-config" content="none" />
+ <meta name="robots" content="noydir,noodp" />
+ <title>Nintendo's first iPhone game will launch in December for $10</title>
+ <meta name="description" content="Nintendo and Apple shocked the world earlier this year by announcing &quot;Super Mario Run,&quot; the legendary gaming company's first foray into mobile gaming.&amp;nbsp;" />
+ <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no" />
+
+ <link rel="stylesheet" href="//static-entertainment-eas-s-msn-com.akamaized.net/en-us/news/_sc/css/f5956224-33f50537/direction=ltr.locales=en-us.themes=gray.dpi=resolution1x/1d-2d54a3-c320eb31/67-24a32a-9b3d84c/9d-7d9df9-67946b1a/89-94bd60-2493cd4a/fb-a72050-68ddb2ab/31-aba714-4da0aefe/c2-0d1cb5-36306341/8e-ccb304-1ab72305/7b-001780-1acba18b/81-9e716d-a05cbb8/bc-940a47-fa021f28/69-addf22-ce195c52/45-cfbb14-a27d90c0/fa-04c8cf-1c1809bb/2a-889e8f-c97922b3/de-8e7afb-389087ec/ca-6a6499-63b4a5a4?ver=2.0.6163.81&amp;fdhead=muidflt9cf,muidflt14cf,muidflt50cf,muidflt301cf&amp;csopd=20161109200027&amp;csopdb=20161115221903" type="text/css" media="all" />
+ <script>
+ (function(n, t) {
+ function o(n, i, r) {
+ typeof n != "string" & amp; & amp;
+ (r = i, i = n, n = t);
+ i & amp; & amp;
+ i.splice || (r = i, i = []);
+ n == "c.dom" & amp; & amp;
+ (a = !0);
+ s(n, i, r)
+ }
+
+ function s(n, t, i, r) {
+ var e, o, s;
+ if (!n || !u[n]) {
+ if (e = g(n, t), !e) {
+ f.push(r || {
+ i: n,
+ d: t,
+ f: i
+ });
+ return
+ }
+ o = typeof i == "function";
+ s = a & amp; & amp;
+ o & amp; & amp;
+ n != "dap" & amp; & amp;
+ n != "adLoad" & amp; & amp;
+ t & amp; & amp;
+ (t.length != 1 || t[0] != "dap" & amp; & amp; t[0] != "c.dom");
+ s ? d(n, i, e, !0) : k(o, n, i, e)
+ }
+ }
+
+ function k(n, t, i, r) {
+ var u;
+ u = n ? i.apply(null, r) : i;
+ h(t, u)
+ }
+
+ function d(n, t, i, r) {
+ if (r) setTimeout(function() {
+ var r = t.apply(null, i);
+ h(n, r)
+ }, 1);
+ else {
+ var u = t.apply(null, i);
+ h(n, u)
+ }
+ }
+
+ function h(t, i) {
+ t & amp; & amp;
+ (i ? (u[t] = i, v()) : n.console & amp; & amp; console.error("Dependencies resolved, but object still not defined (or is otherwise falsey). id:" + t + "; typeof obj: " + typeof i))
+ }
+
+ function v() {
+ var r, u, n, t;
+ if (f.length & amp; & amp; !i) {
+ do
+ for (r = f, u = r.length, f = [], i = 1, t = 0; t & lt; u; t++) n = r[t], s(n.i, n.d, n.f, n); while (i & gt; 1);
+ i = 0
+ } else i & amp; & amp;
+ (i = 2)
+ }
+
+ function g(i, r) {
+ for (var s, v, h, f = [], c = r ? r.length : 0, o = 0; o & lt; c; o++) {
+ var l = r[o],
+ a = u[l],
+ y = typeof a != "undefined";
+ if (!y) {
+ if (s = b.exec(l), s)
+ if (v = s[1], h = n[v], h !== t) {
+ f.push(h);
+ continue
+ } else e || (e = setTimeout(nt, w));
+ break
+ }
+ f.push(a)
+ }
+ return c == f.length ? f : 0
+ }
+
+ function nt() {
+ e = 0;
+ v()
+ }
+
+ function tt(n, i, r) {
+ (typeof n != "object" || n & amp; & amp; n.splice) & amp; & amp;
+ (r = i, i = n, n = {});
+ i & amp; & amp;
+ i.splice || (r = i, i = []);
+ it(n.js);
+ r & amp; & amp;
+ s(t, i, r)
+ }
+
+ function it(n) {
+ if (typeof n == "string") y(n);
+ else if (n)
+ for (var t = 0; t & lt; n.length; t++) y(n[t])
+ }
+
+ function y(n) {
+ if (!l[n]) {
+ l[n] = 1;
+ var i = document.getElementsByTagName("script")[0],
+ t = document.createElement("script");
+ t.src = n;
+ t.onload = t.onreadystatechange = function() {
+ this.readyState & amp; & amp;
+ this.readyState != "loaded" & amp; & amp;
+ this.readyState != "complete" || (t.onload = t.onreadystatechange = null, t.parentNode & amp; & amp; t.parentNode.removeChild(t))
+ };
+ i.parentNode.insertBefore(t, i)
+ }
+ }
+
+ function rt(n) {
+ return p ? n ? r.now() : Math.round(r.now()) : new Date - c
+ }
+ var r = n.performance,
+ c = ((r || {}).timing || {}).navigationStart || (n._timing || {}).start || +new Date,
+ p = r & amp; & amp;
+ typeof r.now == "function", u = {
+ date: Date,
+ document: document,
+ image: Image,
+ localStorage: n.localStorage,
+ location: document.location,
+ navigator: navigator,
+ pageStart: c,
+ pageTime: rt,
+ screen: screen,
+ window: n
+ }, f = [], i, w = 50, e, l = {}, a = !1, b = /^window\.(.+)$/;
+ o.amd = {
+ jQuery: 1
+ };
+ o.is = function(n) {
+ return typeof u[n] != "undefined"
+ };
+ n.define = o;
+ n.require = tt
+ })(window);
+ define("perfPing", function() {
+ function n(n) {
+ require(["w3cTimer"], n)
+ }
+
+ function t(t) {
+ n(function(n) {
+ n.mark(t)
+ })
+ }
+
+ function i(t) {
+ n(function(n) {
+ n.fire();
+ typeof t == "function" & amp; & amp;
+ t(n.payload)
+ })
+ }
+ return {
+ setMarker: t,
+ getPayLoad: i
+ }
+ });
+ define("perfMarker", ["window"], function(n) {
+ function h() {
+ return e ? t.now() | 0 : i & amp; & amp;
+ s() - i
+ }
+ var t = n.performance,
+ r, f;
+ if (!t) return function() {};
+ var e = typeof t.now == "function",
+ o = typeof t.mark == "function",
+ i = (t.timing || {}).navigationStart,
+ s = typeof Date.now == "function" ? Date.now : function() {
+ return +new Date
+ },
+ u;
+ return u = n.console & amp; & amp;
+ typeof console.timeStamp == "function", r = n._pageTimings || (n._pageTimings = {}), f = !1,
+ function(n, e, s) {
+ var c, l;
+ typeof n != "string" || e & amp; & amp;
+ r[n] & amp; & amp;
+ !s || (c = typeof e == "number", c || (o & amp; & amp; t.mark(n), u & amp; & amp; console.timeStamp(n)), (e || f) & amp; & amp;
+ (l = c ? Math.round(e - i) : h(), r[n] = l))
+ }
+ });
+ require(["perfMarker"], function(n) {
+ function r(r) {
+ i || (t & amp; & amp; clearTimeout(t), n("TTAFImgs" + (r ? "_timeout" : ""), !0), define("c.ttafImgsReady", 1), i = !0)
+ }
+ var u = 0,
+ f = 1e4,
+ t, i;
+ window.imgTTAF = function(n, e) {
+ i || (t || (t = setTimeout(function() {
+ r(!0)
+ }, e || f)), ++u & gt; = n & amp; & amp; r())
+ }
+ })
+ </script>
+ <script async="async" src="//o.aolcdn.com/ads/adswrappermsni.js"></script>
+ <script async="async" src="//static-hp-eas.s-msn.com/_h/975a7d20/webcore/externalscripts/jquery/jquery-2.1.1.min.js" crossorigin="anonymous"></script>
+ <script async="async" src="//static-entertainment-eas-s-msn-com.akamaized.net/en-us/news/_sc/js/f5956224-4776a36/direction=ltr.locales=en-us.themes=gray.dpi=resolution1x/49-2a8cda-b7d27d44/a1-354c5c-f53fe61c/62-a7f569-3a1ed4ae/e4-70c980-5599dabd/53-3e778d-e76dbcc3/2f-d760ed-68ddb2ab/9d-498419-68ddb2ab/55-c2cf66-71a2afc2/c2-7cabbf-d1f8fb43/56-30e2d0-95526c6b/26-52c100-18b352d4?ver=2.0.6163.81&amp;fdhead=muidflt9cf,muidflt14cf,muidflt50cf,muidflt301cf&amp;csopd=20161109200027&amp;csopdb=20161115221903" crossorigin="anonymous"></script>
+ <script>
+ define("headData", ["evaluate", "document"], function(n, t) {
+ var r = t.getElementsByTagName("head")[0],
+ i, u, f;
+ return r ? (i = {}, u = r.getAttribute("data-js"), u & amp; & amp;
+ (i = n(u)), f = r.getAttribute("data-client-settings"), f & amp; & amp;
+ (i.clientSettings = n(f)), i.xdid = r.getAttribute("data-xd-id"), i.locale = t.getElementsByTagName("html")[0].getAttribute("lang").toLowerCase(), i) : {}
+ });
+ define("deviceGroup", function() {
+ return {
+ isTmx: 1,
+ isPc: 1
+ }
+ });
+ define("measure", function() {
+ return function(n, t) {
+ var i = window.getComputedStyle(n);
+ return t ? i[t] || i.getPropertyValue(t) : function(n) {
+ return i[n] || i.getPropertyValue(n)
+ }
+ }
+ });
+ define("deviceInit", function() {
+ function u(i) {
+ return n[t(i)]
+ }
+
+ function f(i) {
+ return n[t(i)] == "true"
+ }
+ var n = {},
+ t = function(n) {
+ return n.toUpperCase()
+ },
+ i, r = {
+ capability: u,
+ isCapable: f
+ };
+ return function(u) {
+ var f, e;
+ if (i) throw "device was already initialized.";
+ for (f in u) e = u[f], n[t(f)] = e;
+ i = 1;
+ define("device", r)
+ }
+ });
+ define("requestAnimationFrame", ["window"], function(n) {
+ return function() {
+ return n.requestAnimationFrame || n.webkitRequestAnimationFrame || n.mozRequestAnimationFrame || n.oRequestAnimationFrame || n.msRequestAnimationFrame || function(t) {
+ typeof t == "function" & amp; & amp;
+ n.setTimeout(t, 16.7)
+ }
+ }()
+ });
+ define("mediator", function() {
+ function i(n) {
+ return t[n] || (t[n] = new r), t[n]
+ }
+
+ function r() {
+ var n = {};
+ return {
+ pub: function(t, i) {
+ var u = n[t],
+ r;
+ if (u)
+ for (r = 0; r & lt; u.length; r++) u[r](i)
+ },
+ sub: function(t, i) {
+ if (typeof i == "function") {
+ var r = n[t];
+ r || (r = [], n[t] = r);
+ r.push(i)
+ }
+ },
+ unsub: function(t, i) {
+ var u = n[t],
+ r;
+ if (u)
+ for (r = 0; r & lt; u.length; r++) u[r] === i & amp; & amp;
+ u.splice(r--, 1)
+ }
+ }
+ }
+ var n = new r,
+ t = {};
+ return {
+ pub: n.pub,
+ sub: n.sub,
+ unsub: n.unsub,
+ pubChannel: function(n, t, r) {
+ i(t).pub(n, r)
+ },
+ subChannel: function(n, t, r) {
+ i(t).sub(n, r)
+ },
+ unsubChannel: function(n, t, r) {
+ i(t).unsub(n, r)
+ }
+ }
+ });
+ define("mediaQueryMatch", ["device", "deviceGroup", "mediator", "requestAnimationFrame", "window"], function(n, t, i, r, u) {
+ function s() {
+ function e(n, t) {
+ var i = n.exec(t);
+ return i ? i[1] * 16 : null
+ }
+
+ function n() {
+ r(function() {
+ t = u.innerWidth;
+ f = u.innerHeight;
+ for (var n = 0; n & lt; o.length; n++) h(o[n])
+ })
+ }
+
+ function h(n) {
+ var r = p(n),
+ t, i;
+ if (n.matches != r)
+ for (n.matches = r, i = 0; t = n.queryFunctions[i]; i++) typeof t == "function" & amp; & amp;
+ t()
+ }
+
+ function p(n) {
+ var i = !n.maxWidth || t & lt; = n.maxWidth, r = !n.minWidth || t & gt; = n.minWidth, u = !n.maxHeight || f & lt; = n.maxHeight, e = !n.minHeight || f & gt; = n.minHeight;
+ return i & amp; & amp;
+ r & amp; & amp;
+ u & amp; & amp;
+ e
+ }
+
+ function c(n) {
+ return {
+ isMatching: function() {
+ return !1
+ },
+ addListener: function() {},
+ matches: !1,
+ media: n,
+ queryFunctions: []
+ }
+ }
+ var l = /min\-width\:\s*(\d+(\.\d+)?)/,
+ a = /max\-width\:\s*(\d+(\.\d+)?)/,
+ v = /min\-height\:\s*(\d+(\.\d+)?)/,
+ y = /max\-height\:\s*(\d+(\.\d+)?)/,
+ t, f, o = [],
+ s;
+ return require(["jquery"], function(t) {
+ t(u).resize(function() {
+ clearTimeout(s);
+ s = setTimeout(n, 50)
+ });
+ require(["c.deferred"], n);
+ setTimeout(n, 500);
+ i.subChannel("update", "mediaQuery", n)
+ }),
+ function(i) {
+ if (!i) return c(i);
+ var r = {
+ addListener: function(n) {
+ typeof n == "function" & amp; & amp;
+ r.queryFunctions.push(n)
+ },
+ isMatching: function() {
+ return n(), r.matches
+ },
+ matches: !1,
+ media: i,
+ queryFunctions: []
+ };
+ return (r.minWidth = e(l, i), r.maxWidth = e(a, i), r.minHeight = e(v, i), r.maxHeight = e(y, i), !r.minWidth & amp; & amp; !r.maxWidth & amp; & amp; !r.minHeight & amp; & amp; !r.maxHeight) ? c(i) : (t = u.innerWidth, f = u.innerHeight, h(r), o.push(r), r)
+ }
+ }
+
+ function h(n) {
+ var t = f(n);
+ return t.isMatching = function() {
+ return t.matches
+ }, t
+ }
+ var f = u.msMatchMedia || u.matchMedia,
+ e = f ? h : null,
+ o = n.isCapable("UseCustomMatchMedia");
+ return !o & amp; & amp;
+ e || s()
+ });
+ define("scaledView", [], function() {
+ return {
+ addListener: function() {},
+ removeListener: function() {},
+ isScaled: function() {
+ return !1
+ }
+ }
+ });
+ require(["measure", "scaledView", "document"], function(n, t, i) {
+ function u() {
+ r = f.rem = parseFloat(n(i.getElementsByTagName("head")[0], "font-size"))
+ }
+
+ function f(n) {
+ return n * r
+ }
+
+ function e(n) {
+ return n / r
+ }
+ var r;
+ t.addListener(u);
+ u();
+ define("remToPixel", function() {
+ return f
+ });
+ define("pixelToRem", function() {
+ return e
+ })
+ });
+ define("viewAwareInit", ["deviceGroup", "pageTime", "mediaQueryMatch", "document", "remToPixel"], function(n, t, i, r) {
+ return function(t) {
+ function f(n, t) {
+ var r, u, f;
+ n & amp; & amp;
+ (r = n.match(/calc\((.*?)\)/), r & amp; & amp; r.length == 2 & amp; & amp;
+ (n = n.replace(r[0], eval(r[1]))), u = i(n), f = u.isMatching(), f & amp; & amp;
+ (e = t), u.addListener(function() {
+ u.matches & amp; & amp;
+ s(t)
+ }), h.push({
+ mq: u,
+ viewValue: t
+ }))
+ }
+
+ function s(n) {
+ e = n;
+ for (var t = 0; t & lt; o.length; t++) o[t](e)
+ }
+ var u = {
+ NONE: 0,
+ SIZE1COLUMN: 1,
+ SIZE2COLUMN: 2,
+ SIZE3COLUMN: 4,
+ SIZE4COLUMN: 8,
+ SIZE12COLUMN: 3,
+ SIZE23COLUMN: 6,
+ SIZE34COLUMN: 12,
+ SIZE234COLUMN: 14,
+ SIZE1ROW: 256,
+ SIZE1ROWSIZE1COLUMN: 257,
+ SIZE1ROWSIZE2COLUMN: 258,
+ SIZE1ROWSIZE3COLUMN: 260,
+ SIZE1ROWSIZE4COLUMN: 264,
+ SIZE2ROW: 512,
+ SIZE2ROWSIZE1COLUMN: 513,
+ SIZE2ROWSIZE2COLUMN: 514,
+ SIZE2ROWSIZE3COLUMN: 516,
+ SIZE2ROWSIZE4COLUMN: 520,
+ ALL: 783
+ },
+ o = [],
+ h = [],
+ e = n.isMobile ? u.SIZE1ROWSIZE1COLUMN : u.SIZE2ROWSIZE4COLUMN;
+ f(t.size1rowsize1column, u.SIZE1ROWSIZE1COLUMN);
+ f(t.size2rowsize1column, u.SIZE2ROWSIZE1COLUMN);
+ f(t.size1rowsize2column, u.SIZE1ROWSIZE2COLUMN);
+ f(t.size2rowsize2column, u.SIZE2ROWSIZE2COLUMN);
+ f(t.size1rowsize3column, u.SIZE1ROWSIZE3COLUMN);
+ f(t.size2rowsize3column, u.SIZE2ROWSIZE3COLUMN);
+ f(t.size1rowsize4column, u.SIZE1ROWSIZE4COLUMN);
+ f(t.size2rowsize4column, u.SIZE2ROWSIZE4COLUMN);
+ s(e);
+ define("viewAware", {
+ listen: function(n) {
+ typeof n == "function" & amp; & amp;
+ (o.push(n), n(e))
+ },
+ views: u,
+ currentView: function() {
+ return e
+ }
+ })
+ }
+ });
+ define("evaluate", function() {
+ return window.JSON & amp; & amp;
+ window.JSON.parse || function(n) {
+ return eval("(" + n + ")")
+ }
+ });
+ define("screenDpiImpl", ["window"], function(n) {
+ return function() {
+ return n.devicePixelRatio || 1
+ }
+ });
+ define("dpi", ["screenDpiImpl", "headData", "measure", "deviceGroup", "document", "window", "location"], function(n, t, i, r, u, f, e) {
+ var a = t.dpi || 1,
+ o = {
+ screen: 1,
+ detected: t.ddpi,
+ override: t.dpio,
+ forceServerDpi: t.forcedpi || !(typeof navigator.msManipulationViewsEnabled == "undefined" ? !0 : navigator.msManipulationViewsEnabled),
+ server: a,
+ client: a,
+ dpiMultiplier: 1,
+ sizeMultiplier: 1,
+ refresh: !1
+ },
+ h, v, s, c, l;
+ if (e.href.indexOf("nodpi=1") == -1 & amp; & amp;
+ (o.screen = n(o)), h = r.isMobile ? [1.5, 2.25, 2.4, 2.7] : [1, 1.4, 1.8, 2], v = /&lt;link[^&gt;]*rel="stylesheet"[^&gt;]*href="([^"]*)"[^&gt;]*\/&gt;/ig, o.forceServerDpi === !0) t.dpi = t.ddpi;
+ else if (o.server != o.screen) {
+ for (s = 0; s & lt; h.length; s++)
+ if (c = h[s], o.screen & lt; = c || s == h.length - 1) {
+ o.dpiMultiplier = (o.client = c) / o.server;
+ break
+ }
+ o.client != o.server & amp; & amp;
+ (u.cookie = "dpio=" + o.client + ";path=/", o.refresh & amp; & amp; e.href.indexOf("dpir=1") == -1 & amp; & amp; e.href.indexOf("dpio=") == -1 & amp; & amp; require(["navigation"], function(n) {
+ var t = e.href.replace(/dpio=[\d.]*/, "");
+ t += (t.indexOf("?") == -1 ? "?" : "&amp;") + "dpir=1";
+ n.navigate(t, !0)
+ }))
+ }
+ return l = parseFloat(i(u.documentElement, "font-size")), l & amp; & amp;
+ (o.sizeMultiplier = l / 10 / o.client), o
+ });
+ define("escape", ["window"], function(n) {
+ function r(t) {
+ return t != null & amp; & amp;
+ n.encodeURI(t) || ""
+ }
+
+ function u(t) {
+ return t != null & amp; & amp;
+ n.encodeURIComponent(t) || ""
+ }
+
+ function f(n) {
+ return n != null & amp; & amp;
+ ("" + n).replace(t, function(n) {
+ return i[n] || ""
+ }) || ""
+ }
+ var t = /["&amp;'\/&lt;&gt;]/g,
+ i = {
+ '"': "&amp;quot;",
+ "&amp;": "&amp;amp;",
+ "'": "&amp;#39;",
+ "/": "&amp;#47;",
+ "&lt;": "&amp;lt;",
+ "&gt;": "&amp;gt;"
+ };
+ return {
+ url: r,
+ urlPart: u,
+ html: f
+ }
+ });
+ define("classList", function() {
+ function i(n) {
+ return t[n] || (t[n] = new RegExp("(\\s|^)" + n + "(\\s|$)"))
+ }
+
+ function n(n, t) {
+ return n ? n.classList ? n.classList.contains(t) : n.className ? n.className.match(i(t)) : !1 : !1
+ }
+
+ function r(t, i) {
+ t & amp; & amp;
+ (t.classList ? t.classList.add(i) : n(t, i) || (t.className += " " + i))
+ }
+
+ function f(t, i) {
+ t & amp; & amp;
+ (t.classList ? t.classList.toggle(i) : n(t, i) ? u(t, i) : r(t, i))
+ }
+
+ function u(t, r) {
+ t & amp; & amp;
+ (t.classList ? t.classList.remove(r) : n(t, r) & amp; & amp;
+ (t.className = t.className ? t.className.replace(i(r), " ") : !1))
+ }
+ var t = [];
+ return {
+ add: r,
+ remove: u,
+ toggle: f,
+ contains: n
+ }
+ });
+ define("viewport", ["mediator", "requestAnimationFrame", "window", "document"], function(n, t, i, r) {
+ function kt() {
+ l = at();
+ a = lt();
+ (l != s || a != f) & amp; & amp;
+ (u = !0, e = !0)
+ }
+
+ function g() {
+ return {
+ left: s,
+ right: et,
+ top: f,
+ bottom: ot,
+ width: h,
+ height: c
+ }
+ }
+
+ function ht() {
+ u & amp; & amp;
+ (s = l || at(), f = a || lt(), l = a = null, !nt & amp; & amp; f & gt; yt & amp; & amp;
+ (nt = !0, setTimeout(function() {
+ define("c.scrolled", 1)
+ }, ft)));
+ o & amp; & amp;
+ (h = i.innerWidth || r.documentElement.clientWidth, c = i.innerHeight || r.documentElement.clientHeight);
+ (u || o) & amp; & amp;
+ (et = s + h, ot = f + c);
+ u = o = !1
+ }
+
+ function w() {
+ if (e) {
+ pt = new Date;
+ e = !1;
+ var i = o,
+ r = u,
+ l = h,
+ a = c,
+ v = s,
+ y = f;
+ ht();
+ i = i & amp; & amp;
+ (a != c || l != h);
+ r = r & amp; & amp;
+ (v != s || y != f);
+ i || r ? (b || (b = setTimeout(function() {
+ b = 0;
+ var t = g();
+ n.pub(tt, t);
+ r & amp; & amp;
+ n.pub(it, t);
+ i & amp; & amp;
+ n.pub(rt, t)
+ }, ft)), dt(), setTimeout(w, ut)) : t(w)
+ } else t(w)
+ }
+
+ function dt() {
+ v & amp; & amp;
+ (st = +new Date, y || (y = setTimeout(function t() {
+ y = v = !1;
+ var i = new Date - st;
+ i & gt;
+ d ? n.pub(bt, k) : y = setTimeout(t, d - i)
+ }, d)))
+ }
+
+ function ct() {
+ u = !0;
+ o = !0;
+ e = !0
+ }
+
+ function lt() {
+ if (typeof pageYOffset != "undefined") return pageYOffset;
+ var t = r.body,
+ n = r.documentElement;
+ return n = n.clientHeight ? n : t, n.scrollTop
+ }
+
+ function at() {
+ if (typeof i.pageXOffset != "undefined") return i.pageXOffset;
+ var t = r.body,
+ n = r.documentElement;
+ return n = n.clientWidth ? n : t, n.scrollLeft
+ }
+
+ function gt(n) {
+ for (var i = null, t; n & amp; & amp; n.nodeName != "BODY" & amp; & amp; n.nodeName != "HTML";) {
+ if (t = n.getAttribute(wt), t) {
+ t = t.split(";");
+ i = {
+ x: parseInt(t[0]) || 0,
+ y: parseInt(t[1]) || 0
+ };
+ break
+ }
+ n = n.parentNode
+ }
+ return i
+ }
+
+ function ni(n, t, i, r) {
+ var u = n.getBoundingClientRect();
+ if (!u.top & amp; & amp; !u.right & amp; & amp; !u.bottom & amp; & amp; !u.left) return 0;
+ r || (r = g());
+ var o = r.width * (t || 0),
+ s = r.height * (i || 0),
+ h = {
+ left: -o,
+ right: r.width + o,
+ top: 0 - s,
+ bottom: r.bottom + s
+ },
+ f = {
+ left: u.left,
+ right: u.right,
+ top: u.top,
+ bottom: u.bottom
+ },
+ e = gt(n.parentNode);
+ return e & amp; & amp;
+ (f.left += e.x, f.right += e.x, f.top += e.y, f.bottom += e.y), ti(h, f)
+ }
+
+ function ti(n, t) {
+ return !(t.left & gt; n.right || t.right & lt; n.left || t.top & gt; n.bottom || t.bottom & lt; n.top)
+ }
+
+ function vt(n, t) {
+ i.addEventListener(n, t, !1)
+ }
+ var e = !0,
+ u = !0,
+ o = !0,
+ l = null,
+ a = null,
+ yt = 10,
+ nt, tt = "viewport_change",
+ it = "viewport_scroll_change",
+ rt = "viewport_size_change",
+ ut = parseInt("") || 200,
+ ft = 50,
+ b, s = 0,
+ et = 0,
+ f = 0,
+ ot = 0,
+ h = 0,
+ c = 0,
+ pt, wt = "data-offset",
+ k = "",
+ v = !1,
+ y = 0,
+ d = 1e3,
+ st, bt = "ViewabilityUpdatedEvent",
+ p;
+ return ht(), require(["c.dom"], ct), p = "c.deferred", require([p], function() {
+ i.setInterval(kt, ut);
+ t(w)
+ }), require([p], ct), vt("resize", function() {
+ v = !0;
+ k = "resize";
+ o = !0;
+ e = !0
+ }), vt("scroll", function() {
+ v = !0;
+ k = "scroll";
+ u = !0;
+ e = !0
+ }), {
+ getDimensions: function() {
+ return g()
+ },
+ changeEventName: tt,
+ sizeChangeEventName: rt,
+ scrollChangeEventName: it,
+ isInViewport: ni,
+ deferredCanaryName: p
+ }
+ });
+ require(["window"], function(n) {
+ n._llic = function(n) {
+ require(["imgSrc"], function(t) {
+ t.checkLoad(n)
+ })
+ }
+ });
+ define("imgSrc", ["viewAware", "measure", "dpi", "evaluate", "mediator", "viewport", "classList", "window", "document", "image", "headData", "logging", "perfMarker"], function(n, t, i, r, u, f, e, o, s, h, c, l) {
+ function ai() {
+ u.sub(f.changeEventName, function(n) {
+ var t = Math.abs(n.left - w.left + n.width - w.width),
+ i = Math.abs(n.top - w.top + n.height - w.height);
+ (t & gt; vt() || i & gt; yt()) & amp; & amp;
+ (vt = function() {
+ return n.width / 4
+ }, yt = function() {
+ return n.height / 4
+ }, w = n, b())
+ })
+ }
+
+ function vi() {
+ y = []
+ }
+
+ function yi(n, t) {
+ var i = n.getAttribute(t);
+ if (i) try {
+ return r(i)
+ } catch (u) {
+ l.error("[imgSrc] error evaluating the '" + t + "' attribute: '" + i + "'", u)
+ }
+ }
+
+ function pi(n, t) {
+ var u = !1,
+ i = st(n),
+ r;
+ return i & amp; & amp;
+ i.src & amp; & amp;
+ t & amp; & amp;
+ typeof t.find == "function" & amp; & amp;
+ typeof t.filter == "function" & amp; & amp;
+ (r = t.find("img[data-src]").filter(function() {
+ return this.imgSrcObj & amp; & amp;
+ this.imgSrcObj.loadedSrc == i.src
+ }), r.length & amp; & amp;
+ (i.loadingSrc = i.src, n.imgSrcObj = i, ii(n, i, r[0]), u = !0)), u
+ }
+
+ function st(n, t) {
+ var i = yi(n, ci),
+ f, r, u;
+ if (i) {
+ if (f = i.dpi || 1, i = i[a] !== t ? i[a] : i[v] !== t ? i[v] : i["default"], r = typeof i, r == "string") i = {
+ src: i
+ };
+ else if (r != "object" || !i) return null;
+ return i.dpi = f, i.src ? (u = i.src.indexOf("//"), u & gt; 0 & amp; & amp;
+ (i.src = i.src.substring(u)), i.src = ki(i.src, ei)) : i.src = bt, i
+ }
+ return null
+ }
+
+ function dt(n, t) {
+ var i, r;
+ return n.onload = null, kt & amp; & amp;
+ (i = st(n), i & amp; & amp;
+ (r = kt == 2 || i.load != "wait" & amp; & amp; i.load != "defer" & amp; & amp; !e.contains(n, "wait") & amp; & amp; !e.contains(n, "defer") & amp; & amp; !n.getAttribute(it) & amp; & amp; gt(n) & amp; & amp; ht(n, i) & amp; & amp;
+ (t || f.isInViewport(n, 0, 0)), r & amp; & amp; k(n, i, !0))), r
+ }
+
+ function wi(t) {
+ var i = g & amp; & amp;
+ g != t;
+ g = t;
+ switch (t) {
+ case n.views.SIZE1ROWSIZE1COLUMN:
+ a = "size1rowsize1column";
+ v = "size1column";
+ break;
+ case n.views.SIZE2ROWSIZE1COLUMN:
+ a = "size2rowsize1column";
+ v = "size1column";
+ break;
+ case n.views.SIZE1ROWSIZE2COLUMN:
+ a = "size1rowsize2column";
+ v = "size2column";
+ break;
+ case n.views.SIZE2ROWSIZE2COLUMN:
+ a = "size2rowsize2column";
+ v = "size2column";
+ break;
+ case n.views.SIZE1ROWSIZE3COLUMN:
+ a = "size1rowsize3column";
+ v = "size3column";
+ break;
+ case n.views.SIZE2ROWSIZE3COLUMN:
+ a = "size2rowsize3column";
+ v = "size3column";
+ break;
+ case n.views.SIZE1ROWSIZE4COLUMN:
+ a = "size1rowsize4column";
+ v = "size4column";
+ break;
+ default:
+ a = "size2rowsize4column";
+ v = "size4column"
+ }
+ i & amp; & amp;
+ b()
+ }
+
+ function bi(n) {
+ return (n || s).getElementsByTagName("img")
+ }
+
+ function b(n) {
+ var o, u, i;
+ if (ot)
+ for (o = 0, u = bi(n), i = 0; i & lt; u.length; i++) {
+ var t = u[i],
+ r = ri(t),
+ s = r & amp; & amp;
+ r.load != "wait" & amp; & amp;
+ !e.contains(t, "wait") & amp; & amp;
+ !t.getAttribute(it) & amp; & amp;
+ ht(t, r) & amp; & amp;
+ (e.contains(t, "defer") || gt(t) & amp; & amp; f.isInViewport(t, si, hi));
+ s & amp; & amp;
+ (o++, k(t, r))
+ }
+ }
+
+ function gt(n) {
+ do {
+ if (t(n, "display") == "none") return !1;
+ n = n.parentNode
+ } while (n & amp; & amp; n.nodeName != "BODY");
+ return !0
+ }
+
+ function ki(n, t) {
+ var i = n.match(li);
+ return i & amp; & amp;
+ i[p] != t ? n.replace(i[0], i[0].replace(i[p], t)) : n
+ }
+
+ function di(n, t) {
+ var r = n.match(pt),
+ u, i, f;
+ return r & amp; & amp;
+ (u = r[p] * t + .5 | 0, n = n.replace(r[0], r[0].replace(r[p], u))), i = n.match(wt), i & amp; & amp;
+ (f = i[p] * t + .5 | 0, n = n.replace(i[0], i[0].replace(i[p], f))), n
+ }
+
+ function gi() {
+ tt = clearTimeout(tt)
+ }
+
+ function ni() {
+ tt = setTimeout(function() {
+ var t, n;
+ for (ct = !0, t = 0; t & lt; y.length; t++) n = y[t], n.showFn & amp; & amp;
+ (n.showFn(), n.showFn = null, n.shown = !0)
+ }, oi)
+ }
+
+ function ti(n, t, i) {
+ var u = n.imgSrcObj,
+ f, e, o, r;
+ if (i.src == u.loadingSrc) {
+ if (ct || u.shown) {
+ t();
+ return
+ }
+ for (u.showFn = t, f = 0; f & lt; u.id; f++)
+ if (e = y[f], e.isInViewport & amp; & amp; !e.shown) {
+ if (e.loadingSrc.load != u.loadingSrc.load) continue;
+ ni();
+ return
+ }
+ for (o = u.id; o & lt; y.length; o++)
+ if (r = y[o], !r.shown & amp; & amp; r.isInViewport)
+ if (r.showFn) gi(), r.showFn(), r.showFn = null, r.shown = !0;
+ else {
+ ni();
+ return
+ }
+ }
+ }
+
+ function nr(n, t, i) {
+ var r = d(n);
+ t.src == r.loadingSrc & amp; & amp;
+ (t.lowq & amp; & amp; i.loadingSrc == t.lowq ? (t.lowqLoaded = !0, e.remove(n, at), k(n, t)) : (n.src = t.src, e.remove(n, ft), e.remove(n, et), e.add(n, ut)))
+ }
+
+ function ii(n, t, r) {
+ var u = d(n);
+ t.src == u.loadingSrc & amp; & amp;
+ (u.loadedSrc = t.src, i.sizeMultiplier & gt; 1 & amp; & amp;
+ (n.width = r.width * i.sizeMultiplier + .5 | 0), n.removeAttribute("height"), n.src = r.src, t.lowq & amp; & amp; r.loadingSrc == t.lowq ? (t.lowqLoaded = !0, e.remove(n, at), k(n, t)) : (e.add(n, et), e.remove(n, ut), e.remove(n, ft)))
+ }
+
+ function ht(n, t) {
+ if (!t || !t.src) return !1;
+ var i = d(n);
+ return i.loadedSrc != t.src & amp; & amp;
+ t.src != i.loadingSrc
+ }
+
+ function ri(n, t) {
+ if (!n) return null;
+ if (t) t.src || (t = {
+ src: t
+ });
+ else {
+ if (t = st(n), !t) return null;
+ var r = t.dpi || 1;
+ r != i.client & amp; & amp;
+ (t.src = di(t.src, i.client / r))
+ }
+ return t
+ }
+
+ function ui(n, t) {
+ n & amp; & amp;
+ (t = ri(n, t), ht(n, t) & amp; & amp; k(n, t))
+ }
+
+ function d(n) {
+ var t = n.imgSrcObj;
+ return t || n.nodeName != "IMG" || (t = {
+ img: n,
+ id: y.length
+ }, n.imgSrcObj = t, y[n.imgSrcObj.id] = t), t
+ }
+
+ function k(n, t) {
+ var r = d(n, t),
+ u, i;
+ r.isInViewport === undefined & amp; & amp;
+ (r.isInViewport = !0);
+ r.loadingSrc = t.src;
+ t.w & amp; & amp;
+ t.h ? n.setAttribute(rt, "width:" + t.w + "rem;height:" + t.h + "rem;") : n.hasAttribute(rt) & amp; & amp;
+ n.removeAttribute(rt);
+ e.add(n, ft);
+ e.remove(n, et);
+ e.remove(n, ut);
+ u = (t.lowqLoaded ? null : t.lowq) || t.src;
+ i = new h;
+ i.onload = function() {
+ i.onload = null;
+ i.onerror = null;
+ ti(n, function() {
+ ii(n, t, i)
+ }, t)
+ };
+ i.onerror = function() {
+ i.onload = null;
+ i.onerror = null;
+ ti(n, function() {
+ nr(n, t, i)
+ }, t)
+ };
+ i.src = i.loadingSrc = u
+ }
+ var g, a, v, nt = (c.clientSettings || {}).imgsrc || {},
+ ei = nt.quality_high || 60,
+ tr = nt.quality_low || 5,
+ oi = nt.order_timeout || 1e3,
+ si = 1,
+ hi = 1,
+ ct = !1,
+ tt, lt = 100 * i.client,
+ it = "data-noupdate",
+ ci = "data-src",
+ rt = "style",
+ ut = "err",
+ ft = "loading",
+ et = "loaded",
+ at = "lowq",
+ vt = function() {
+ return 10
+ },
+ yt = function() {
+ return 10
+ },
+ y = [],
+ p = 2,
+ pt = /([?&amp;]w=|_w)(\d+)/,
+ wt = /([?&amp;]h=|_h)(\d+)/,
+ li = /([?&amp;]q=|_q)(\d+)/,
+ bt = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAEALAAAAAABAAEAAAIBTAA7",
+ kt = {
+ all: 0,
+ auto: 1,
+ none: 2
+ }[(location.search.match(/[?&amp;]llibf=([^&amp;#]+)/i) || [])[1]] || 1,
+ w, ot;
+ return o._llic = dt, w = f.getDimensions(), n.listen(wi), ot = !1, require(["c.deferred"], function() {
+ ot = !0;
+ ai();
+ b()
+ }), o.loadDeferredImages = b, {
+ go: ui,
+ reset: ui,
+ noUpdate: it,
+ data: bt,
+ checkLoad: dt,
+ isInViewport: f.isInViewport,
+ loadInViewport: b,
+ dataOffsetAttr: "data-offset",
+ force: pi,
+ clearImages: vi
+ }
+ });
+ define("imageLoad", ["imgSrc", "classList", "document", "pageTime", "window"], function(n, t, i, r, u) {
+ function a() {
+ c();
+ n.isInViewport ? y() : f(i.querySelectorAll("main img[data-src]"), s)
+ }
+
+ function v(n, t) {
+ typeof n == "string" & amp; & amp;
+ (n = i.querySelector(n));
+ c(n);
+ o(n, t)
+ }
+
+ function s(n) {
+ var i;
+ !n || n.src & amp; & amp;
+ (t.contains(n, "loaded") || t.contains(n, "loading")) || l(n, i) & amp; & amp;
+ n.setAttribute("data-initial-set", "true")
+ }
+
+ function y() {
+ function u(i) {
+ var u = !1,
+ f;
+ return !t.contains(i, "mestripeouter") & amp; & amp;
+ i.querySelector("img[data-src]") & amp; & amp;
+ (f = n.isInViewport(i, 0, 0), f ? (r = !0, o(i)) : r & amp; & amp;
+ (u = !0)), u
+ }
+ var r;
+ h(i.getElementById("precontent"));
+ f((i.getElementById("main") || {}).childNodes, u);
+ h(i.getElementById("aside"))
+ }
+
+ function h(t) {
+ var i = !1;
+ return t & amp; & amp;
+ t.querySelector("img[data-src]") & amp; & amp;
+ n.isInViewport(t, 0, 0) & amp; & amp;
+ (i = !0, o(t)), i
+ }
+
+ function c(n) {
+ e(".ip .swipenav&gt;li:first-child+li img,.carousel .slides li+li img", "defer", n);
+ e(".sip .swipenav&gt;li:first-child+li img,.carousel .slides li+li img", "defer", n);
+ e(".ip .swipenav&gt;li+li+li img", "wait", n);
+ e(".sip .swipenav&gt;li+li+li img", "wait", n)
+ }
+
+ function f(n, t) {
+ var i, r;
+ if (n & amp; & amp; n.length)
+ for (i = 0; r = n[i]; ++i)
+ if (r.nodeType == 1 & amp; & amp; t(r)) break
+ }
+
+ function e(n, r, u) {
+ f((u || i).querySelectorAll(n), function(n) {
+ t.add(n, r)
+ })
+ }
+
+ function o(n, t) {
+ f(n.querySelectorAll("img[data-src]"), function(n) {
+ s(n, t)
+ })
+ }
+ var l = n.checkLoad || u._llic;
+ return {
+ cleanup: a,
+ module: v
+ }
+ });
+ define("adCommon", ["document", "pageTime", "classList", "headData", "viewAware"], function(n, t, i, r, u) {
+ function s(n, t, i) {
+ n & amp; & amp;
+ typeof t == "function" & amp; & amp;
+ i & amp; & amp;
+ (i[n] ? i[n].push(t) : i[n] = [t])
+ }
+
+ function h(n, t, i, r) {
+ var f, u;
+ t & amp; & amp;
+ i & amp; & amp;
+ (f = 5, t.divid = t.divid || t.divName, t.msnSdkName = r, u = setInterval(function() {
+ if (i[n] & amp; & amp; i[n].length) {
+ for (var r = 0; r & lt; i[n].length; r++) i[n][r](t);
+ clearInterval(u)
+ } else f-- || clearInterval(u)
+ }, 500))
+ }
+
+ function c(n, t, i) {
+ n & amp; & amp;
+ t & amp; & amp;
+ i !== null & amp; & amp;
+ typeof i != undefined & amp; & amp;
+ (n[t] = i)
+ }
+
+ function l() {
+ var t = n.body,
+ r;
+ return t & amp; & amp;
+ (r = i.contains(t, "startpage") ? "homepage" : i.contains(t, "ap") ? "article" : i.contains(t, "gp") ? "gallery" : i.contains(t, "homepage") ? "vlp" : i.contains(t, "structured") ? "structured" : "NA"), r
+ }
+
+ function a() {
+ return o("MUID")
+ }
+
+ function v() {
+ var n = r.locale.split("-");
+ return n.length & gt;
+ 1 ? n[1].toUpperCase() : null
+ }
+
+ function y() {
+ return o("TOptOut")
+ }
+
+ function f(t, i) {
+ return i & amp; & amp;
+ i.forcefulVisibilityInEffect ? i.forceVisibilityOn : i & amp; & amp;
+ i.options & amp; & amp;
+ i.options.scrollInit ? t & amp; & amp;
+ (t.top || t.bottom || t.left || t.right) & amp; & amp;
+ t.top & lt; = (window.innerHeight || n.documentElement.clientHeight) & amp; & amp;
+ t.bottom & gt; = 0 & amp; & amp;
+ t.left & lt; = (window.innerWidth || n.documentElement.clientWidth) & amp; & amp;
+ t.right & gt; = 0: !0
+ }
+
+ function p(t, r, u, f, e) {
+ var o = e || ((n.getElementById(t) || {}).parentNode || {}).parentNode,
+ s, h;
+ o & amp; & amp;
+ (((o.querySelector(".adchoices,.adchoicesjs") || {}).style || {}).display = f ? "block" : "none", r) & amp; & amp;
+ (s = i.contains(o, "widead"), u || s) & amp; & amp;
+ (o.style.display = "", o.style.visibility = "visible", s & amp; & amp;
+ (h = o.querySelector(".outeradcontainer"), h & amp; & amp;
+ (h.style.display = "inline-block")))
+ }
+
+ function w(n, i, r, u) {
+ if (n & amp; & amp; i) {
+ var f = t();
+ n[i] || (n[i] = {});
+ r ? n[i].st = f : (n[i].en = f, u & amp; & amp;
+ (n[i].r = u))
+ }
+ }
+
+ function b(n, t) {
+ n & amp; & amp;
+ (n.forcefulVisibilityInEffect || (n.clientRect = n.elem.getBoundingClientRect()), n.isVisible = f(n.clientRect, n), n.canBeDisplayed = e(n, t) & amp; & amp; !n.shouldHideAds, n.canBeDisplayed |= n.forceDisplayOn || n.canBeDisplayed)
+ }
+
+ function e(n, t) {
+ return t = t || u.currentView(), !!(t & amp; n.allowedViews)
+ }
+
+ function o(t) {
+ var r = new RegExp("\\b" + t + "\\s*=\\s*([^;]*)", "i"),
+ i = r.exec(n.cookie);
+ return i & amp; & amp;
+ i.length & gt;
+ 1 ? i[1] : ""
+ }
+
+ function k() {
+ return window.performance & amp; & amp;
+ typeof window.performance.now == "function" ? window.performance.now() : (new Date).getTime()
+ }
+ return {
+ addEventListener: s,
+ callEventHandlers: h,
+ eventTypes: {
+ AdRequested: "AdRequested",
+ BeforeAdRender: "BeforeAdRender",
+ AdRefreshed: "AdRefreshed",
+ ErrorOccurred: "ErrorOccurred",
+ AdNoBid: "AdNoBid"
+ },
+ isPlacementVisible: f,
+ setAdContainerDisplayState: p,
+ updateElementData: c,
+ isAllowedInView: e,
+ recordTiming: w,
+ checkAndSetAdVisibility: b,
+ getPageType: l,
+ getOptOut: y,
+ getMuid: a,
+ getCountryCode: v,
+ getCurrentTime: k
+ }
+ });
+ define("dap", ["viewAware", "document", "adCommon", "dapmgr", "evaluate", "classList", "viewport", "pageTime"], function(n, t, i, r, u, f, e) {
+ function s(s, y, d, et, ot, st) {
+ function ri() {
+ var r = st & amp; & amp;
+ st.forcefulVisibility, u = st & amp; & amp;
+ st.forcefulDisplay, e = r === !0, o = u === !0, t, i, n;
+ (c == undefined & amp; & amp;
+ (c = st & amp; & amp; st.adaptiveRefresh === !0, c & amp; & amp; typeof st.adaptiveRefreshInterval == "number" & amp; & amp;
+ (p = st.adaptiveRefreshInterval || p), c = !0), t = lt & amp; & amp; lt.parentNode & amp; & amp; lt.parentNode.parentNode, i = ut, t) & amp; & amp;
+ (f.contains(t, "widead") ? i = rt : f.contains(t, "groupad") & amp; & amp;
+ (i = ft), n = b[et], typeof n != "number" & amp; & amp;
+ (n = tt++, b[et] = n), ht = {
+ params: s,
+ width: y,
+ height: d,
+ htmlid: et,
+ options: st || {},
+ allowedViews: oi(),
+ sizeCharacteristics: {},
+ clientRect: lt.getBoundingClientRect(),
+ isRendered: !1,
+ isLoaded: !1,
+ isVisible: !1,
+ canBeDisplayed: !1,
+ forcefulDisplayInEffect: o || u === !1,
+ forceDisplayOn: o,
+ forcefulVisibilityInEffect: e || r === !1,
+ forceVisibilityOn: e,
+ canDisplayAdChoices: !1,
+ isMonitored: !1,
+ elem: lt,
+ adType: i,
+ idx: v.length,
+ telemetry: {},
+ currentRefreshCount: n,
+ friendlyId: "",
+ pg: "",
+ shouldHideAds: bt,
+ completionCb: ai,
+ refreshAd: gt,
+ rd: p
+ }, ht.friendlyId = ht.htmlid.substr(0, it) + "_" + ht.idx, ht.pg = hi(s), v.push(ht), ui(), si())
+ }
+
+ function ui() {
+ o ? (o.sub(e.scrollChangeEventName, at), o.sub("adrefresh", gt)) : require(["mediator"], function(n) {
+ o = n;
+ o.sub(e.scrollChangeEventName, at);
+ st.enableAdRefresh & amp; & amp;
+ o.sub("adrefresh", gt)
+ })
+ }
+
+ function fi() {
+ o ? o.sub(e.scrollChangeEventName, at) : require(["mediator"], function(n) {
+ o = n;
+ o.sub(e.scrollChangeEventName, at)
+ })
+ }
+
+ function ni() {
+ o ? o.unsub(e.scrollChangeEventName, at) : require(["mediator"], function(n) {
+ o = n;
+ o.unsub(e.scrollChangeEventName, at)
+ })
+ }
+
+ function at() {
+ vt()
+ }
+
+ function ei() {
+ require(["adDetection"], function(n) {
+ ht.detectionObject = n(ht);
+ ht.detectionObject.startDetection()
+ })
+ }
+
+ function vt() {
+ !ht || pt || ht.isRendered || (i.checkAndSetAdVisibility(ht, ct), i.setAdContainerDisplayState(ht.htmlid, ht.isVisible, ht.canBeDisplayed || ht.isRendered, ht.canDisplayAdChoices), ht.isVisible & amp; & amp; ht.canBeDisplayed) & amp; & amp;
+ (r.sandboxOptions = ht.options.sandbox, r.useXDomainIframe = ht.options.useXDomainFrame, i.recordTiming(ht.telemetry, "dap", !0, null), r.renderAd(ht.htmlid, ht.params, ht.width, ht.height, !1, ht), i.recordTiming(ht.telemetry, "dap", !1, ""), ht.st = i.getCurrentTime(), ++k, ht.isRendered = !0, r.useXDomainIframe || ei(), ni(), h || (dt(), l = ti()), wt())
+ }
+
+ function ti() {
+ var t = n.views;
+ return ct & amp;
+ t.SIZE1COLUMN & amp; & amp;
+ 1 || ct & amp;
+ t.SIZE2COLUMN & amp; & amp;
+ 2 || ct & amp;
+ t.SIZE3COLUMN & amp; & amp;
+ 3 || ct & amp;
+ t.SIZE4COLUMN & amp; & amp;
+ 4 || 0
+ }
+
+ function oi() {
+ var t, i;
+ return lt & amp; & amp;
+ (t = lt.getAttribute("data-adjs"), i = u(t).allowedViews, t) ? n.views[i] || n.views.NONE: null
+ }
+
+ function si() {
+ ht & amp; & amp;
+ vt()
+ }
+
+ function hi(n) {
+ return (ii.exec(n) || {})[1] || ""
+ }
+
+ function wt() {
+ var n = '{"w":' + a + ',"h":' + w + ',"c":' + l + ',"v":' + (ht.isVisible ? 1 : 0) + ',"d":' + (ht.canBeDisplayed ? 1 : 0) + ',"r":' + (ht.isRendered ? 1 : 0) + ',"s":' + yt + "}";
+ ht.elem.setAttribute("data-ad", n)
+ }
+
+ function dt() {
+ var n = e.getDimensions(),
+ i;
+ h & amp; & amp;
+ h.width == n.width || (h = n, i = t.getElementById(g), a = i ? i.offsetWidth : n.width, w = n.height)
+ }
+
+ function gt() {
+ li();
+ typeof ht.order == "number" ? setTimeout(function() {
+ vt()
+ }, ht.order) : vt()
+ }
+
+ function ci() {
+ var n = ht.elem.querySelector("iframe");
+ n & amp; & amp;
+ (n.src = "about:blank");
+ ht.elem.innerHTML = ""
+ }
+
+ function li() {
+ ci();
+ ht.isRendered = !1;
+ ht.isLoaded = !1;
+ ht.isVisible = !1;
+ ht.canBeDisplayed = !1;
+ ht.canDisplayAdChoices = !1;
+ ht.sizeCharacteristics.adSizeType = nt;
+ ht.alreadyCalled = !1;
+ ni();
+ fi()
+ }
+
+ function ai() {
+ ht.isLoaded || (ht.isLoaded = !0, --k)
+ }
+ var ht, ct, yt, bt = !1,
+ pt = !1,
+ ii = /\bPG=([^&amp;]*)/i,
+ lt = t.getElementById(et),
+ kt;
+ (pt = st & amp; & amp; st.disableAds === !0, kt = st & amp; & amp; st.disableAdPlacement, bt |= pt, (bt || kt) & amp; & amp;
+ (i.setAdContainerDisplayState(et, !0, !1, !1), pt || kt)) || (n.listen(function(n) {
+ (ct = ct || n, ct != n) & amp; & amp;
+ (ct = n, l = ti(), dt(), wt(), vt())
+ }), ri(), require(["scaledView"], function(n) {
+ yt = n.isScaled();
+ wt();
+ n.addListener(function(n) {
+ yt != n & amp; & amp;
+ (dt(), yt = n, wt())
+ })
+ }))
+ }
+
+ function d() {
+ y.refreshAllAds()
+ }
+ var l, h, a, w, g = "header-common",
+ nt = 0,
+ o;
+ r.enableUnblockingOnload & amp; & amp;
+ r.enableUnblockingOnload(!0);
+ var v = [],
+ b = {},
+ tt = 0,
+ it = 15,
+ k = 0,
+ rt = 0,
+ ut = 2,
+ ft = 3,
+ c, y, p = 3e3;
+ return s.adPlacements = v, s.adLoadedEvent = "adloaded", s.adRerenderedEvent = "adrerendered", s.refresh = function() {
+ y ? d() : require(["adRefresh"], function(n) {
+ y = n;
+ d()
+ })
+ }, s
+ });
+ var c = "c.dom";
+ require(["jquery", "imgSrc", "mediator", c], function(n, t, i) {
+ function r() {
+ n("#main").children().addClass("loaded");
+ t.loadInViewport(n("#main")[0]);
+ i.pub("revealLoaded")
+ }
+ r()
+ });
+ define("autoSizeFlex", ["jquery", "jqBehavior", "mediator", "pixelToRem", "dir.tokens"], function(n, t, i, r, u) {
+ function f(n) {
+ function e() {
+ var i;
+ (t = n.children(":visible").last(), f.length & amp; & amp; t.length) & amp; & amp;
+ (i = u.ltr ? t.offset().left - n.offset().left + t.outerWidth() : f.offset().left - t.offset().left + f.outerWidth(!0), n.width(r(i) + "rem"))
+ }
+ var t, f = n.children().first();
+ return i.sub("tabChanged", e), {
+ setup: e,
+ update: e
+ }
+ }
+ return t(f)
+ });
+ require(["binding", "c.dom"], function(n) {
+ n("autoSizeFlex", ".autosizeflex").all()
+ });
+ define("allPageBindings", function() {
+ return function(n) {
+ var t = function(t) {
+ t(n)
+ };
+ require(["pageBindings"], t);
+ require(["pageBindings.pc"], t);
+ require(["pageBindings.pc-!ms.ie10plus"], t)
+ }
+ });
+ require(["allPageBindings"], function(n) {
+ n("html")
+ });
+ define("navigation", ["escape", "location"], function(n, t) {
+ function r(n, t, i) {
+ var s = function(n) {
+ return n = n.replace(/\+/g, " "), decodeURIComponent(n)
+ },
+ u = {},
+ o, e;
+ if (n)
+ for (n = n.split("#")[0], o = n.split("&amp;"), e = 0; e & lt; o.length; e++) {
+ var h = o[e].split("="),
+ r = h[0],
+ f = h[1];
+ i & amp; & amp;
+ (r = s(r), f & amp; & amp;
+ (f = s(f)));
+ t ? (u[r] || (u[r] = []), u[r].push(f)) : u[r] = f
+ }
+ return u
+ }
+
+ function u(n) {
+ var t = f.exec(n);
+ return t ? t[2] : !1
+ }
+ var f = /[a-z][a-z0-9+\-.]*:\/\/([a-z0-9\-._~%!$&amp;'()*+,;=]+@)?([a-z0-9\-._~%]+|\[[a-z0-9\-._~%!$&amp;'()*+,;=:]+\])/i,
+ i = {
+ getUrl: function(n) {
+ return i.filter ? i.filter(n) : n
+ },
+ navigate: function(n, r) {
+ i.filter & amp; & amp;
+ (n = i.filter(n));
+ r ? t.replace(n) : t.href = n
+ },
+ getHostName: u,
+ isLocal: function(n) {
+ var i = u(n);
+ return !i || t.hostname == i
+ },
+ getParams: r,
+ getParamsFromUrl: function(n, t, i) {
+ var u = n.split("?")[1];
+ return r(u, t, i)
+ },
+ mergeQueryStringParams: function(t, i) {
+ var e, f, o, u;
+ if (i) {
+ if (e = t.split("?"), e[1]) {
+ f = r(e[1], !1, !0);
+ for (u in i) f[u] = i[u]
+ } else f = i;
+ t = e[0];
+ o = "?";
+ for (u in f) t += f[u] ? o + n.urlPart(u) + "=" + n.urlPart(f[u]) : o + n.urlPart(u), o = "&amp;"
+ }
+ return t
+ },
+ filter: null
+ };
+ return i
+ });
+ require(["logging", "measure", "document", "c.onload"], function(n, t, i) {
+ var r = t(i.getElementsByTagName("head")[0]),
+ u = r("boxSizing");
+ u != "border-box" & amp; & amp;
+ n.fatalError("C5001 Css was not loaded correctly.")
+ });
+ define("logging", ["navigation", "headData", "requestAnimationFrame", "window", "document", "pageTime", "escape"], function(n, t, i, r, u, f, e) {
+ function rt(n, t) {
+ if (n.addEventListener) n.addEventListener("error", t, !1);
+ else if (n.onerror) {
+ var i = n.onerror;
+ n.onerror = function(n, r, u, f, e) {
+ return i(n, r, u, f, e), t(n, r, u, f, e)
+ }
+ } else n.onerror = t
+ }
+
+ function ut() {
+ if (!o & amp; & amp;
+ (o = n.getUrl(t.clientSettings.base_url + "_log"), !/[?&amp;]fdhead=[^&amp;#]*/i.test(o))) {
+ var i = (/\bf\:([^;]*)/.exec(u.getElementsByTagName("head")[0].getAttribute("data-info")) || {})[1] || "";
+ i & amp; & amp;
+ (o += (o.indexOf("?") & gt; 0 ? "&amp;" : "?") + "fdhead=" + i)
+ }
+ return o
+ }
+
+ function g() {
+ c & amp; & amp;
+ k & amp; & amp;
+ !p & amp; & amp;
+ (p = setTimeout(function() {
+ (p = 0, s.length) & amp; & amp;
+ (d.ajax({
+ type: "POST",
+ url: ut(),
+ data: {
+ aid: t.clientSettings.aid,
+ v: t.clientSettings.v,
+ messages: s
+ },
+ error: function(n, t, i) {
+ a("error", "[506] Could not log: " + n + " - " + t + " " + i);
+ c = !1
+ }
+ }), s = [])
+ }, 2e3))
+ }
+
+ function l(n, t) {
+ return (t == b & amp; & amp; n.indexOf("Script error") & gt; = 0 & amp; & amp;
+ (t = h), t == h) ? "warn" : t == y ? "info" : (c & amp; & amp;
+ (s.push({
+ m: e.urlPart(n),
+ t: t,
+ d: f()
+ }), g()), t == y ? "info" : t == h ? "warn" : "error")
+ }
+
+ function a(n, t, i) {
+ if (r.console) {
+ if (!i & amp; & amp; n == "info") return;
+ if (!i & amp; & amp; n == "warn") return;
+ var u = console[n];
+ u & amp; & amp;
+ typeof u == "function" ? console[n](t) : console.log & amp; & amp;
+ console.log(t)
+ }
+ }
+
+ function v(n) {
+ var r = [],
+ t, i;
+ if (n)
+ for (t = 0; t & lt; n.length; ++t) i = nt(n[t]), i & amp; & amp;
+ r.push(i);
+ return r.join(", ")
+ }
+
+ function nt(n, t, i, u, f) {
+ var o = (n == null || typeof n == "string" ? n : n.message || n.description) || "",
+ e, s;
+ return !o & amp; & amp;
+ (n != null & amp; & amp;
+ (typeof n == "object" & amp; & amp; n.toString() == "[object Event]" ? (e = r.event, e & amp; & amp; e.type == "error" & amp; & amp;
+ (o = e.errorMessage, t = e.errorUrl, i = e.errorLine, u = e.errorCharacter)) : o = n.toString()), !o) ? "" : (t = n.url || n.filename || t, i = n.lineno || i, u = n.colno || u, s = n.stack || n.error & amp; & amp; n.error.stack, o.trim() + (f || "") + (i ? "\nLine=" + i : "") + (u ? "\nColumn=" + u : "") + (t ? "\nScriptUrl=" + t : "") + (s ? "\nStack=" + s : ""))
+ }
+
+ function ft() {
+ var n = v(arguments);
+ l(n, it);
+ i(function() {
+ var i = e.html("http://" + u.location.host),
+ n = e.url(u.location.href);
+ n.indexOf("https://") == 0 & amp; & amp;
+ (n = n.replace("https://", "http://"));
+ u.getElementsByTagName("body")[0].innerHTML = "&lt;style&gt;body{font-family:Arial;margin-left:40px}img{border:0 none}#content{margin-left:auto;margin-right:auto}#message h2{font-size:20px;font-weight:normal;color:#000;margin:34px 0 0 0}#message p{font-size:13px;color:#000;margin:7px 0 0 0}#errorref{font-size:11px;color:#737373;margin-top:41px}&lt;\/style&gt;&lt;div id='content'&gt;&lt;div id='message'&gt;&lt;h2&gt;This page is not available right now&lt;\/h2&gt;&lt;p&gt;We're working to restore it as soon as possible. Please check back soon.&lt;br/&gt;&lt;br/&gt;&lt;a href=\"" + e.html(n) + '"&gt;Click here&lt;\/a&gt; to try this page again, or visit: &lt;a href="' + i + '"&gt;' + i + "&lt;\/a&gt;&lt;\/p&gt;&lt;\/div&gt;&lt;div id='errorref'&gt;&lt;span&gt;Ref 1: " + e.html(t.clientSettings.aid) + "&amp;nbsp;&amp;nbsp;&amp;nbsp;Ref 2: " + e.html(t.clientSettings.sid || "000000") + "&amp;nbsp;&amp;nbsp;&amp;nbsp;Ref 3: " + e.html(new Date) + "&lt;\/span&gt;&lt;\/div&gt;&lt;\/div&gt;"
+ })
+ }
+
+ function tt() {
+ var n = v(arguments);
+ a(l(n, b), n, !0)
+ }
+
+ function et() {
+ var n = v(arguments);
+ a(l(n, h), n)
+ }
+
+ function ot() {
+ var n = v(arguments);
+ a(l(n, y), n)
+ }
+
+ function st(n) {
+ (r.console || {}).timeStamp ? console.timeStamp(n) : (r.performance || {}).mark & amp; & amp;
+ r.performance.mark(n)
+ }
+ var w = 0,
+ it = -1,
+ b = 0,
+ h = 1,
+ y = 2,
+ s = [],
+ p, k, d, o, c = Math.random() * 100 & lt; = 10;
+ return rt(r, function(n, t, i, r) {
+ return w++, n = nt(n, t, i, r, " [ENDMESSAGE]"), n & amp; & amp;
+ tt("[SCRIPTERROR] " + n), !0
+ }), c & amp; & amp;
+ require(["jquery", "c.deferred"], function(n) {
+ k = !0;
+ d = n;
+ s.length & amp; & amp;
+ g()
+ }), {
+ error: tt,
+ fatalError: ft,
+ unhandledErrorCount: function() {
+ return w
+ },
+ perfMark: st,
+ warning: et,
+ information: ot
+ }
+ });
+ require(["viewAwareInit"], function(n) {
+ n({
+ size2row: "(min-height: 48.75em)",
+ size1row: "(max-height: 48.74em)",
+ size4column: "(min-width: 79em)",
+ size3column: "(min-width: 58.875em) and (max-width: 78.99em)",
+ size2column: "(min-width: 43.75em) and (max-width: 58.865em)",
+ size2rowsize4column: "(min-width: 79em) and (min-height: 48.75em)",
+ size2rowsize3column: "(min-width: 58.875em) and (max-width: 78.99em) and (min-height: 48.75em)",
+ size2rowsize2column: "(max-width: 58.865em) and (min-height: 48.75em)",
+ size1rowsize4column: "(min-width: 79em) and (max-height: 48.74em)",
+ size1rowsize3column: "(min-width: 58.875em) and (max-width: 78.99em) and (max-height: 48.74em)",
+ size1rowsize2column: "(max-width: 58.865em) and (max-height: 48.74em)"
+ })
+ });
+ require(["deviceInit"], function(n) {
+ n({
+ AllowTransform3d: "false",
+ AllowTransform2d: "true",
+ RtlScrollLeftAdjustment: "negativeValue",
+ ShowMoveTouchGestures: "true",
+ SupportFixedPosition: "true",
+ UseCustomMatchMedia: null,
+ Viewport_Behavior: "Default",
+ Viewport_Landscape: null,
+ Viewport: "width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no",
+ IsMobileDevice: "false"
+ })
+ })
+ </script>
+ <meta property="sharing_url" content="http://a.msn.com/01/en-us/AAkm7Xj" />
+ <meta property="og:url" content="http://www.msn.com/en-us/news/technology/nintendos-first-iphone-game-will-launch-in-december-for-dollar10/ar-AAkm7Xj" />
+ <meta property="og:title" content="Nintendo's first iPhone game will launch in December for $10" />
+ <meta property="og:description" content="Nintendo and Apple shocked the world earlier this year by announcing &quot;Super Mario Run,&quot; the legendary gaming company's first foray into mobile gaming.&amp;nbsp;" />
+ <meta property="og:type" content="article" />
+ <meta property="og:site_name" content="MSN" />
+ <meta property="og:image" content="http://img-s-msn-com.akamaized.net/tenant/amp/entityid/AAkk5fh.img" />
+ <meta property="fb:app_id" content="1056389514424151" />
+ <link rel="shortcut icon" href="//static-entertainment-eas-s-msn-com.akamaized.net/sc/d7/97297b.ico" />
+ <script>
+ _timing.head = +new Date
+ </script>
+ <script>
+ window.performance & amp; & amp;
+ typeof window.performance.now != "function" & amp; & amp;
+ (window.performance.now = function() {
+ return (new Date).getTime()
+ });
+ window.performance & amp; & amp;
+ typeof window.performance.now != "function" & amp; & amp;
+ (window.performance.now = function() {
+ return (new Date).getTime()
+ })
+ </script>
+ <style>
+ .storyimage.smallfullwidth .image,
+ .storyimage.smallfullwidth img {
+ background: #000;
+ margin: 0 auto
+ }
+
+ #toast-container {
+ display: none
+ }
+
+ .mobile .galleryinfo .img-divider {
+ display: none
+ }
+
+ .homepage.tmx.pc.chrome #main .one-col,
+ .homepage.tmx.pc.chrome #main .two-col,
+ .homepage.tmx.pc.chrome #main .three-col {
+ margin-right: -.016rem;
+ margin-left: -.016rem
+ }
+
+ .homepage.midlevel .pagingsection&gt;
+ button.show,
+ .channelplayerpage.midlevel .pagingsection&gt;
+ button.show {
+ display: none
+ }
+ </style>
+ <script>
+ window._flushTimings & amp; & amp;
+ (window._flushTimings.HtmlHeadEnd = new Date - window.performance.timing.navigationStart);
+ </script>
+
+ <script>
+ (function() {
+ function u() {
+ window.performance.mark("frame");
+ i || s();
+ performance.now() & lt;
+ o & amp; & amp;
+ requestAnimationFrame(u)
+ }
+
+ function s() {
+ r = n;
+ n = performance.now();
+ n - r & lt; = e ? n - t & gt; = f & amp; & amp;
+ (window._pageTimings || (window._pageTimings = {}), window._pageTimings.TimeToPageInteractive = Math.round(t), i = !0): t = n
+ }
+ var i = !1,
+ n = 0,
+ r = 0,
+ t = 0,
+ f = 1e3,
+ e = 50,
+ o = 3e4;
+ window.performance & amp; & amp;
+ window.performance.mark & amp; & amp;
+ window.performance.now & amp; & amp;
+ window.requestAnimationFrame & amp; & amp;
+ requestAnimationFrame(u)
+ })()
+ </script>
+
+ <script src="http://contextual.media.net/dmedianet.js?geo=en-us&amp;property=news" async=""></script>
+ <style>
+ .sa_as {
+ display: none;
+ position: absolute;
+ top: -1px;
+ left: 0
+ }
+
+ .sa_as ul {
+ list-style: none
+ }
+
+ .sw_b3 {
+ border: 1px solid #ccc;
+ background: #fff;
+ overflow: visible
+ }
+
+ .sa_drw {
+ padding: 0;
+ background: #fff;
+ margin: 0
+ }
+
+ .sa_drw li {
+ display: block;
+ white-space: nowrap
+ }
+
+ .sa_sg,
+ .sa_hd,
+ .sa_hd_first {
+ font-size: 120%;
+ padding: .2em .55em .21em .55em;
+ color: #777;
+ cursor: pointer;
+ clear: left
+ }
+
+ .sa_sg_first {
+ padding-top: .5em
+ }
+
+ .sa_hd,
+ .sa_hd_first {
+ padding: .6em 0 .1em .52em;
+ margin: .25em .2em 0 .2em;
+ border-top: 1px solid #ededed;
+ text-transform: uppercase;
+ font-size: 95%;
+ color: #555;
+ cursor: default
+ }
+
+ .sa_hd_first {
+ margin-top: 0;
+ padding-top: .6em;
+ border: 0
+ }
+
+ .sa_2RowImg {
+ background: #f8f8f8
+ }
+
+ .sa_2RowImg {
+ border-bottom: 1px solid #ccc;
+ padding: .4em .55em
+ }
+
+ .sa_ds {
+ color: #737373;
+ margin-top: .2em;
+ font-size: 90%
+ }
+
+ .sa_img {
+ vertical-align: middle;
+ margin: -.2em .4em .1em 0
+ }
+
+ .sa_2RowImg .sa_img {
+ text-align: center;
+ float: left
+ }
+
+ .sa_img img {
+ max-width: 55px;
+ max-height: 45px
+ }
+
+ .sa_sgDN .sa_tm {
+ font-weight: bold
+ }
+
+ .sa_2RowImg,
+ .sa_sgDN {
+ color: #04c
+ }
+
+ .sa_sg strong,
+ .sa_sgWH,
+ .sa_sgWM,
+ .sa_sgWU {
+ color: #000
+ }
+
+ .sa_tmHS,
+ .sa_tmHS strong {
+ color: #639
+ }
+
+ .sa_sgPN {
+ color: #737373
+ }
+
+ .sa_sgDN .sa_url {
+ color: #568e1a;
+ font-size: 85%;
+ border-bottom: 1px solid #ededed;
+ padding: .2em 0 .4em 0
+ }
+
+ .sa_om {
+ background: #f5f5f5;
+ border-top: 1px solid #ccc;
+ font-size: 90%;
+ height: 1.6em;
+ line-height: 1.6em;
+ padding: .16em 0 .2em 0
+ }
+
+ .sa_om a {
+ color: #36b
+ }
+
+ .sa_om li {
+ float: right;
+ margin-left: 1.3em
+ }
+
+ .sa_om ul {
+ margin: 0 .5em;
+ padding: 0
+ }
+
+ .sa_hv .sa_tm,
+ .sa_om a:hover {
+ text-decoration: underline
+ }
+
+ .sa_ghostbox {
+ position: absolute;
+ left: 1px;
+ z-index: -1
+ }
+
+ .sa_ghostbg {
+ position: absolute;
+ left: 0;
+ top: 0;
+ background: #fff;
+ z-index: -2
+ }
+
+ .sa_sgDI,
+ .sa_sgWM,
+ .sa_sgWH,
+ .sa_sgWU {
+ padding-left: .55em
+ }
+
+ .sa_sgWM .sa_tm,
+ .sa_sgWU .sa_tm {
+ font-size: 110%
+ }
+
+ .sa_ng {
+ position: absolute;
+ left: 0;
+ z-index: -1
+ }
+
+ .sa_sgNG {
+ border-bottom: 1px solid #ccc;
+ margin-bottom: -.1em
+ }
+
+ .sa_sgFB {
+ margin-top: 0;
+ position: relative
+ }
+
+ .sa_sgFB .sa_ds {
+ margin-left: .35em
+ }
+
+ .sa_sgFB_img .sa_tm {
+ margin-right: .2em
+ }
+
+ .sa_sgFB_img .sa_ds {
+ margin-left: 2em
+ }
+
+ .sa_sgFB .sa_img {
+ margin: 0
+ }
+
+ .sa_sgFB img {
+ position: absolute;
+ top: 0
+ }
+
+ .sa_sgFB.sa_sg_first img {
+ top: .3em
+ }
+
+ .sa_hv {
+ background: #e5e5e5
+ }
+
+ .sa_sgID .sa_tm {
+ font-family: Lucida Sans Unicode
+ }
+
+ .sa_sgID {
+ *zoom: 1;
+ *margin-bottom: -8px
+ }
+ </style>
+ <style type="text/css">
+ .fb_hidden {
+ position: absolute;
+ top: -10000px;
+ z-index: 10001
+ }
+
+ .fb_reposition {
+ overflow: hidden;
+ position: relative
+ }
+
+ .fb_invisible {
+ display: none
+ }
+
+ .fb_reset {
+ background: none;
+ border: 0;
+ border-spacing: 0;
+ color: #000;
+ cursor: auto;
+ direction: ltr;
+ font-family: "lucida grande", tahoma, verdana, arial, sans-serif;
+ font-size: 11px;
+ font-style: normal;
+ font-variant: normal;
+ font-weight: normal;
+ letter-spacing: normal;
+ line-height: 1;
+ margin: 0;
+ overflow: visible;
+ padding: 0;
+ text-align: left;
+ text-decoration: none;
+ text-indent: 0;
+ text-shadow: none;
+ text-transform: none;
+ visibility: visible;
+ white-space: normal;
+ word-spacing: normal
+ }
+
+ .fb_reset&gt;
+ div {
+ overflow: hidden
+ }
+
+ .fb_link img {
+ border: none
+ }
+
+ @keyframes fb_transform {
+ from {
+ opacity: 0;
+ transform: scale(.95)
+ }
+ to {
+ opacity: 1;
+ transform: scale(1)
+ }
+ }
+
+ .fb_animate {
+ animation: fb_transform .3s forwards
+ }
+
+ .fb_dialog {
+ background: rgba(82, 82, 82, .7);
+ position: absolute;
+ top: -10000px;
+ z-index: 10001
+ }
+
+ .fb_reset .fb_dialog_legacy {
+ overflow: visible
+ }
+
+ .fb_dialog_advanced {
+ padding: 10px;
+ -moz-border-radius: 8px;
+ -webkit-border-radius: 8px;
+ border-radius: 8px
+ }
+
+ .fb_dialog_content {
+ background: #fff;
+ color: #333
+ }
+
+ .fb_dialog_close_icon {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/yq/r/IE9JII6Z1Ys.png) no-repeat scroll 0 0 transparent;
+ _background-image: url(https://static.xx.fbcdn.net/rsrc.php/v3/yL/r/s816eWC-2sl.gif);
+ cursor: pointer;
+ display: block;
+ height: 15px;
+ position: absolute;
+ right: 18px;
+ top: 17px;
+ width: 15px
+ }
+
+ .fb_dialog_mobile .fb_dialog_close_icon {
+ top: 5px;
+ left: 5px;
+ right: auto
+ }
+
+ .fb_dialog_padding {
+ background-color: transparent;
+ position: absolute;
+ width: 1px;
+ z-index: -1
+ }
+
+ .fb_dialog_close_icon:hover {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/yq/r/IE9JII6Z1Ys.png) no-repeat scroll 0 -15px transparent;
+ _background-image: url(https://static.xx.fbcdn.net/rsrc.php/v3/yL/r/s816eWC-2sl.gif)
+ }
+
+ .fb_dialog_close_icon:active {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/yq/r/IE9JII6Z1Ys.png) no-repeat scroll 0 -30px transparent;
+ _background-image: url(https://static.xx.fbcdn.net/rsrc.php/v3/yL/r/s816eWC-2sl.gif)
+ }
+
+ .fb_dialog_loader {
+ background-color: #f6f7f9;
+ border: 1px solid #606060;
+ font-size: 24px;
+ padding: 20px
+ }
+
+ .fb_dialog_top_left,
+ .fb_dialog_top_right,
+ .fb_dialog_bottom_left,
+ .fb_dialog_bottom_right {
+ height: 10px;
+ width: 10px;
+ overflow: hidden;
+ position: absolute
+ }
+
+ .fb_dialog_top_left {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/ye/r/8YeTNIlTZjm.png) no-repeat 0 0;
+ left: -10px;
+ top: -10px
+ }
+
+ .fb_dialog_top_right {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/ye/r/8YeTNIlTZjm.png) no-repeat 0 -10px;
+ right: -10px;
+ top: -10px
+ }
+
+ .fb_dialog_bottom_left {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/ye/r/8YeTNIlTZjm.png) no-repeat 0 -20px;
+ bottom: -10px;
+ left: -10px
+ }
+
+ .fb_dialog_bottom_right {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/ye/r/8YeTNIlTZjm.png) no-repeat 0 -30px;
+ right: -10px;
+ bottom: -10px
+ }
+
+ .fb_dialog_vert_left,
+ .fb_dialog_vert_right,
+ .fb_dialog_horiz_top,
+ .fb_dialog_horiz_bottom {
+ position: absolute;
+ background: #525252;
+ filter: alpha(opacity=70);
+ opacity: .7
+ }
+
+ .fb_dialog_vert_left,
+ .fb_dialog_vert_right {
+ width: 10px;
+ height: 100%
+ }
+
+ .fb_dialog_vert_left {
+ margin-left: -10px
+ }
+
+ .fb_dialog_vert_right {
+ right: 0;
+ margin-right: -10px
+ }
+
+ .fb_dialog_horiz_top,
+ .fb_dialog_horiz_bottom {
+ width: 100%;
+ height: 10px
+ }
+
+ .fb_dialog_horiz_top {
+ margin-top: -10px
+ }
+
+ .fb_dialog_horiz_bottom {
+ bottom: 0;
+ margin-bottom: -10px
+ }
+
+ .fb_dialog_iframe {
+ line-height: 0
+ }
+
+ .fb_dialog_content .dialog_title {
+ background: #6d84b4;
+ border: 1px solid #365899;
+ color: #fff;
+ font-size: 14px;
+ font-weight: bold;
+ margin: 0
+ }
+
+ .fb_dialog_content .dialog_title&gt;
+ span {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/yd/r/Cou7n-nqK52.gif) no-repeat 5px 50%;
+ float: left;
+ padding: 5px 0 7px 26px
+ }
+
+ body.fb_hidden {
+ -webkit-transform: none;
+ height: 100%;
+ margin: 0;
+ overflow: visible;
+ position: absolute;
+ top: -10000px;
+ left: 0;
+ width: 100%
+ }
+
+ .fb_dialog.fb_dialog_mobile.loading {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/ya/r/3rhSv5V8j3o.gif) white no-repeat 50% 50%;
+ min-height: 100%;
+ min-width: 100%;
+ overflow: hidden;
+ position: absolute;
+ top: 0;
+ z-index: 10001
+ }
+
+ .fb_dialog.fb_dialog_mobile.loading.centered {
+ width: auto;
+ height: auto;
+ min-height: initial;
+ min-width: initial;
+ background: none
+ }
+
+ .fb_dialog.fb_dialog_mobile.loading.centered #fb_dialog_loader_spinner {
+ width: 100%
+ }
+
+ .fb_dialog.fb_dialog_mobile.loading.centered .fb_dialog_content {
+ background: none
+ }
+
+ .loading.centered #fb_dialog_loader_close {
+ color: #fff;
+ display: block;
+ padding-top: 20px;
+ clear: both;
+ font-size: 18px
+ }
+
+ #fb-root #fb_dialog_ipad_overlay {
+ background: rgba(0, 0, 0, .45);
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ top: 0;
+ width: 100%;
+ min-height: 100%;
+ z-index: 10000
+ }
+
+ #fb-root #fb_dialog_ipad_overlay.hidden {
+ display: none
+ }
+
+ .fb_dialog.fb_dialog_mobile.loading iframe {
+ visibility: hidden
+ }
+
+ .fb_dialog_content .dialog_header {
+ -webkit-box-shadow: white 0 1px 1px -1px inset;
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#738ABA), to(#2C4987));
+ border-bottom: 1px solid;
+ border-color: #1d4088;
+ color: #fff;
+ font: 14px Helvetica, sans-serif;
+ font-weight: bold;
+ text-overflow: ellipsis;
+ text-shadow: rgba(0, 30, 84, .296875) 0 -1px 0;
+ vertical-align: middle;
+ white-space: nowrap
+ }
+
+ .fb_dialog_content .dialog_header table {
+ -webkit-font-smoothing: subpixel-antialiased;
+ height: 43px;
+ width: 100%
+ }
+
+ .fb_dialog_content .dialog_header td.header_left {
+ font-size: 12px;
+ padding-left: 5px;
+ vertical-align: middle;
+ width: 60px
+ }
+
+ .fb_dialog_content .dialog_header td.header_right {
+ font-size: 12px;
+ padding-right: 5px;
+ vertical-align: middle;
+ width: 60px
+ }
+
+ .fb_dialog_content .touchable_button {
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#4966A6), color-stop(.5, #355492), to(#2A4887));
+ border: 1px solid #29487d;
+ -webkit-background-clip: padding-box;
+ -webkit-border-radius: 3px;
+ -webkit-box-shadow: rgba(0, 0, 0, .117188) 0 1px 1px inset, rgba(255, 255, 255, .167969) 0 1px 0;
+ display: inline-block;
+ margin-top: 3px;
+ max-width: 85px;
+ line-height: 18px;
+ padding: 4px 12px;
+ position: relative
+ }
+
+ .fb_dialog_content .dialog_header .touchable_button input {
+ border: none;
+ background: none;
+ color: #fff;
+ font: 12px Helvetica, sans-serif;
+ font-weight: bold;
+ margin: 2px -12px;
+ padding: 2px 6px 3px 6px;
+ text-shadow: rgba(0, 30, 84, .296875) 0 -1px 0
+ }
+
+ .fb_dialog_content .dialog_header .header_center {
+ color: #fff;
+ font-size: 16px;
+ font-weight: bold;
+ line-height: 18px;
+ text-align: center;
+ vertical-align: middle
+ }
+
+ .fb_dialog_content .dialog_content {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/y9/r/jKEcVPZFk-2.gif) no-repeat 50% 50%;
+ border: 1px solid #555;
+ border-bottom: 0;
+ border-top: 0;
+ height: 150px
+ }
+
+ .fb_dialog_content .dialog_footer {
+ background: #f6f7f9;
+ border: 1px solid #555;
+ border-top-color: #ccc;
+ height: 40px
+ }
+
+ #fb_dialog_loader_close {
+ float: left
+ }
+
+ .fb_dialog.fb_dialog_mobile .fb_dialog_close_button {
+ text-shadow: rgba(0, 30, 84, .296875) 0 -1px 0
+ }
+
+ .fb_dialog.fb_dialog_mobile .fb_dialog_close_icon {
+ visibility: hidden
+ }
+
+ #fb_dialog_loader_spinner {
+ animation: rotateSpinner 1.2s linear infinite;
+ background-color: transparent;
+ background-image: url(https://static.xx.fbcdn.net/rsrc.php/v3/yD/r/t-wz8gw1xG1.png);
+ background-repeat: no-repeat;
+ background-position: 50% 50%;
+ height: 24px;
+ width: 24px
+ }
+
+ @keyframes rotateSpinner {
+ 0% {
+ transform: rotate(0deg)
+ }
+ 100% {
+ transform: rotate(360deg)
+ }
+ }
+
+ .fb_iframe_widget {
+ display: inline-block;
+ position: relative
+ }
+
+ .fb_iframe_widget span {
+ display: inline-block;
+ position: relative;
+ text-align: justify
+ }
+
+ .fb_iframe_widget iframe {
+ position: absolute
+ }
+
+ .fb_iframe_widget_fluid_desktop,
+ .fb_iframe_widget_fluid_desktop span,
+ .fb_iframe_widget_fluid_desktop iframe {
+ max-width: 100%
+ }
+
+ .fb_iframe_widget_fluid_desktop iframe {
+ min-width: 220px;
+ position: relative
+ }
+
+ .fb_iframe_widget_lift {
+ z-index: 1
+ }
+
+ .fb_hide_iframes iframe {
+ position: relative;
+ left: -10000px
+ }
+
+ .fb_iframe_widget_loader {
+ position: relative;
+ display: inline-block
+ }
+
+ .fb_iframe_widget_fluid {
+ display: inline
+ }
+
+ .fb_iframe_widget_fluid span {
+ width: 100%
+ }
+
+ .fb_iframe_widget_loader iframe {
+ min-height: 32px;
+ z-index: 2;
+ zoom: 1
+ }
+
+ .fb_iframe_widget_loader .FB_Loader {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/y9/r/jKEcVPZFk-2.gif) no-repeat;
+ height: 32px;
+ width: 32px;
+ margin-left: -16px;
+ position: absolute;
+ left: 50%;
+ z-index: 4
+ }
+ </style>
+ <style type="text/css">
+ .trc_rbox_container {
+ direction: ltr;
+ text-align: left
+ }
+
+ .trc_rbox_header {
+ border-style: solid;
+ border-width: 0
+ }
+
+ .in_trc_header {
+ position: relative!important;
+ float: right;
+ margin: 0
+ }
+
+ #trc_rbox_css_loaded {
+ overflow: hidden;
+ width: 0;
+ height: 0
+ }
+
+ .trc_rbox {
+ margin-top: 0
+ }
+
+ .trc_rbox_div {
+ margin: 0 0 3px;
+ direction: ltr;
+ padding: 0;
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ overflow: auto;
+ position: relative;
+ width: auto;
+ *width: auto;
+ border: solid #CCC 1px
+ }
+
+ .loading-animation span {
+ display: block
+ }
+
+ .videoCube {
+ zoom: 1;
+ cursor: pointer;
+ float: none;
+ overflow: hidden;
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ -webkit-box-sizing: border-box
+ }
+
+ div.videoCube:hover,
+ .videoCube_hover {
+ cursor: pointer
+ }
+
+ .videoCube span.video-title:hover,
+ .videoCube_hover span.video-title {
+ text-decoration: underline
+ }
+
+ .videoCube a {
+ text-decoration: none;
+ border: 0;
+ color: #000;
+ cursor: pointer
+ }
+
+ .videoCube a:hover,
+ .videoCube_hover a,
+ .videoCube a:link,
+ .videoCube a {
+ text-decoration: none!important;
+ outline: 0
+ }
+
+ .videoCube a .thumbBlock {
+ float: left;
+ display: block;
+ overflow: hidden!important
+ }
+
+ .videoCube a img,
+ .videoCube img {
+ border: 0;
+ _border: 0;
+ display: block;
+ margin: 0;
+ height: auto;
+ width: auto
+ }
+
+ .videoCube .video-label {
+ display: block;
+ overflow: hidden
+ }
+
+ .videoCube .video-title {
+ width: auto!important;
+ white-space: pre-wrap;
+ white-space: -moz-pre-wrap;
+ white-space: -o-pre-wrap;
+ word-wrap: break-word
+ }
+
+ .videoCube .video-duration a {}
+
+ .videoCube .video-duration {
+ height: 0;
+ float: left;
+ position: relative;
+ color: #fff;
+ font-size: 11px
+ }
+
+ .videoCube .video-duration dt {
+ border-radius: 4px;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ background-color: #000;
+ opacity: .6;
+ filter: alpha(opacity=60)
+ }
+
+ .videoCube span.video-label.trc_ellipsis {
+ position: relative;
+ overflow: hidden;
+ display: -webkit-box;
+ -webkit-box-orient: vertical
+ }
+
+ .videoCube span.video-label.trc-smart-ellipsis {
+ position: relative;
+ overflow: hidden
+ }
+
+ .videoCube span.video-label.trc-smart-ellipsis ins {
+ display: inline-block;
+ text-decoration: inherit
+ }
+
+ .videoCube span.video-label.trc-smart-ellipsis ins.lastLineEllipsis {
+ display: block;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ word-wrap: normal
+ }
+
+ .sponsored-default .video-description {
+ font-weight: 400;
+ color: #000;
+ font-size: 9px;
+ max-height: 22px;
+ *height: 22px;
+ overflow: hidden;
+ line-height: 9px
+ }
+
+ .video-duration.video-duration-detail div {
+ color: #fff
+ }
+
+ .sponsored-default {
+ background-color: #f7f6c6;
+ padding-bottom: 0!important
+ }
+
+ .trc_rbox .sponsored {
+ position: relative;
+ display: block;
+ overflow: visible;
+ height: auto;
+ width: auto;
+ padding-right: 0;
+ text-align: right;
+ font-size: 9px
+ }
+
+ .sponsored-url {
+ white-space: nowrap;
+ float: left;
+ overflow: hidden;
+ width: 98%;
+ height: auto;
+ margin-top: 0;
+ margin-left: 1px;
+ padding-bottom: 2px;
+ color: green;
+ font-size: 9px;
+ text-decoration: underline
+ }
+
+ .sponsored-default .video-title {
+ height: 26px;
+ font-size: 11px;
+ line-height: 13px;
+ max-height: 26px;
+ *height: 26px
+ }
+
+ .sponsored-default .thumbBlock img {}
+
+ .sponsored-default .thumbBlock {
+ text-align: center;
+ background-color: transparent
+ }
+
+ .trc_rbox_div {
+ height: 410px
+ }
+
+ .videoCube {
+ direction: ltr;
+ font-size: 11px;
+ margin: 0;
+ color: #000;
+ border-width: 0
+ }
+
+ .videoCube.vertical:first-child {
+ border-top: 0;
+ margin-top: 0
+ }
+
+ .videoCube.horizontal:first-child {
+ border-left: 0;
+ margin-left: 0
+ }
+
+ .trc_rbox .trc_rbox_div .videoCube.vertical {
+ _margin-top: expression(this.previousSibling==null?'0': 'default')
+ }
+
+ .trc_rbox .trc_rbox_div .videoCube.horizontal {
+ _margin-left: expression(this.previousSibling==null?'0': 'default')
+ }
+
+ div.videoCube:hover,
+ .videoCube_hover {
+ background-color: #EBF0FF;
+ color: #000
+ }
+
+ .videoCube .thumbBlock {
+ margin-right: 5px;
+ margin-left: 1px;
+ border-style: solid
+ }
+
+ .videoCube a img,
+ .videoCube img {
+ border-color: #ececec
+ }
+
+ .videoCube .overlayImg {}
+
+ .videoCube .video-label-box {
+ margin-left: 81px
+ }
+
+ .videoCube .video-label dt {
+ font-weight: 700
+ }
+
+ .videoCube .video-title {
+ height: auto;
+ margin-bottom: 3px;
+ white-space: normal
+ }
+
+ .videoCube .trc_inline_detail_spacer {
+ display: inline-block;
+ white-space: pre
+ }
+
+ .sponsored-default {
+ padding-bottom: 0
+ }
+
+ .loading-animation {
+ font-family: sans;
+ font-size: 1.5em;
+ text-align: center;
+ color: gray;
+ height: 100%
+ }
+
+ .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-weight: 700;
+ text-decoration: none;
+ color: #000
+ }
+
+ .trc_header_right_part {
+ position: absolute;
+ left: 50%;
+ top: 0
+ }
+
+ .branding_div {
+ overflow: visible;
+ float: right
+ }
+
+ .branding_div img {
+ height: 20px
+ }
+
+ .trc_pager div {
+ float: left;
+ font-family: sans;
+ cursor: pointer;
+ margin-left: 2px;
+ margin-right: 2px
+ }
+
+ .trc_pager_prev,
+ .trc_pager_next {}
+
+ .trc_pager {
+ font-weight: 400
+ }
+
+ .trc_pager_pages {
+ display: block!important
+ }
+
+ .trc_related_container div.horizontal {
+ float: left;
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ -webkit-box-sizing: border-box
+ }
+
+ .trc_related_container div.vertical {}
+
+ .trc_related_container DIV.videoCube.thumbnail_top .thumbBlock,
+ .trc_related_container DIV.videoCube.thumbnail_bottom .thumbBlock {
+ float: none
+ }
+
+ @media screen and (-webkit-min-device-pixel-ratio:0) {
+ .sponsored-url {
+ margin-top: 2px
+ }
+ }
+
+ .vidiscovery-note {
+ display: none
+ }
+
+ .pager_disabled {
+ cursor: auto
+ }
+
+ .videoCube .thumbBlock .trc_sponsored_overlay_base {
+ display: block;
+ width: auto;
+ margin-left: 0;
+ position: absolute;
+ color: #fff!important
+ }
+
+ .videoCube .thumbBlock .trc_sponsored_overlay {
+ filter: alpha(opacity=60);
+ opacity: .6;
+ display: block;
+ position: absolute;
+ *left: 0
+ }
+
+ .videoCube .thumbBlock .trc_sponsored_overlay_base .sponsored {
+ position: relative;
+ display: block;
+ overflow: visible;
+ width: auto;
+ text-align: center;
+ padding: 0 5px;
+ margin-top: 0
+ }
+
+ .videoCube .thumbBlock .trc_sponsored_overlay_base.round .trc_sponsored_overlay {
+ border-radius: 4px;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px
+ }
+
+ .videoCube .thumbBlock .trc_sponsored_overlay_base.round {
+ margin-left: 4px
+ }
+
+ .thumbnail-emblem {
+ background-color: transparent;
+ background-repeat: no-repeat;
+ position: absolute;
+ z-index: 50
+ }
+
+ .playerCube .thumbnail-overlay,
+ .videoCube .thumbnail-overlay {
+ position: absolute;
+ background-color: transparent;
+ background-repeat: no-repeat;
+ z-index: 50
+ }
+
+ .videoCube:hover .thumbnail-overlay,
+ .videoCube_hover .thumbnail-overlay {
+ position: absolute;
+ background-color: transparent;
+ background-repeat: no-repeat;
+ z-index: 50
+ }
+
+ .thumbnail_bottom {
+ padding-bottom: 8px
+ }
+
+ .trc_pager_next img,
+ trc_pager_next pager_disabled img,
+ trc_pager_next:hover img {
+ -moz-transform: scaleX(-1);
+ -o-transform: scaleX(-1);
+ -webkit-transform: scaleX(-1);
+ transform: scaleX(-1);
+ filter: FlipH;
+ -ms-filter: "FlipH"
+ }
+
+ .trc_cover_iframe {
+ position: absolute;
+ z-index: 100000;
+ top: 0;
+ left: 0;
+ background: #000;
+ opacity: .4;
+ filter: alpha(opacity=40);
+ border: 0
+ }
+
+ .trc_lightbox_base {
+ z-index: 100001;
+ position: fixed
+ }
+
+ .trc_lightbox_overlay {
+ background-color: transparent;
+ position: absolute;
+ z-index: 100002
+ }
+
+ .trc_lightbox_transparent {
+ position: absolute;
+ z-index: 100003
+ }
+
+ #trc_lightbox_header {
+ font-family: "Trebuchet MS", Helvetica, sans-serif
+ }
+
+ .trc_whitebox {
+ background-color: #fff;
+ position: relative;
+ z-index: 100004;
+ padding: 0 20px 20px;
+ margin: 0 auto;
+ border: 2px solid #000;
+ -moz-box-shadow: 3px 3px 20px #000;
+ -webkit-box-shadow: 3px 3px 20px #000;
+ box-shadow: 3px 3px 20px #000;
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+ box-sizing: content-box;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px
+ }
+
+ .trc_whiteboxCloseButton {
+ width: 32px;
+ height: 32px;
+ border: 0;
+ position: absolute;
+ right: -16px;
+ top: -14px;
+ cursor: pointer;
+ background: url(//cdn.taboola.com/taboola-generic/close.png) no-repeat top left transparent;
+ color: #fff;
+ color: transparent;
+ font-size: 0
+ }
+
+ .trc_related_container .logoDiv {
+ font-family: Arial, Helvetica, sans-serif;
+ white-space: nowrap;
+ font-size: 9px
+ }
+
+ .trc_related_container .logoDiv a {
+ font-size: 9px;
+ text-decoration: none!important;
+ color: #000;
+ margin-right: 1px;
+ vertical-align: text-bottom
+ }
+
+ .logoDiv a span:hover {
+ text-decoration: underline
+ }
+
+ .trc_rbox_header .logoDiv {
+ font-size: 1em
+ }
+
+ .trc_related_container .vertical-start-shade {
+ background-image: url(//cdn.taboola.com/taboola-generic/shade-down.png);
+ height: 10px;
+ width: auto;
+ position: absolute;
+ z-index: 5
+ }
+
+ .trc_related_container .vertical-end-shade {
+ background-image: url(//cdn.taboola.com/taboola-generic/shade-up.png);
+ height: 10px;
+ width: auto;
+ position: absolute;
+ z-index: 5
+ }
+
+ .trc_related_container .horizontal-start-shade {
+ background-image: url(//cdn.taboola.com/taboola-generic/shade-right.png);
+ height: auto;
+ width: 10px;
+ position: absolute;
+ z-index: 5
+ }
+
+ .trc_related_container .horizontal-end-shade {
+ background-image: url(//cdn.taboola.com/taboola-generic/shade-left.png);
+ height: auto;
+ width: 10px;
+ position: absolute;
+ z-index: 5
+ }
+
+ .trc_rbox_container.trc_expandable {
+ overflow: hidden;
+ max-height: 0;
+ transition-property: max-height;
+ -webkit-transition-property: max-height;
+ -moz-transition-property: max-height;
+ -o-transition-property: max-height;
+ -webkit-transform: translateZ(0);
+ -moz-transform: translateZ(0);
+ -ms-transform: translateZ(0);
+ -o-transform: translateZ(0);
+ transform: translateZ(0)
+ }
+
+ DIV.trc_autoplaylist-box {
+ margin: 6px auto 0;
+ border: 0;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ padding: 4px;
+ font-family: "Trebuchet MS", Helvetica, sans-serif;
+ width: 320px;
+ background: #191919;
+ filter: progid: DXImageTransform.Microsoft.gradient(startColorstr='#191919', endColorstr='#393939');
+ -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#191919, endColorstr=#393939)";
+ background: -webkit-gradient(linear, left top, left bottom, from(#191919), to(#393939));
+ background: -moz-linear-gradient(top, #191919, #393939);
+ background: linear-gradient(top, #191919, #393939)
+ }
+
+ DIV.trc_autoplaylist-box .trc-next-up-header {
+ font-size: 14px;
+ color: #CCC;
+ float: left;
+ line-height: 31px;
+ margin: 0 4px 0 6px;
+ overflow: hidden;
+ white-space: nowrap
+ }
+
+ DIV.trc_autoplaylist-box .trc-next-up-countdown {
+ color: #fff;
+ font-weight: 700;
+ font-size: 15px;
+ padding-left: 4px
+ }
+
+ DIV.trc_autoplaylist-box .nextup {
+ cursor: pointer
+ }
+
+ DIV.trc_autoplaylist-box .nextup .thumbblock {
+ border: solid #FEFEFE 1px;
+ margin-right: 10px
+ }
+
+ DIV.trc_autoplaylist-box:hover .nextup .thumbblock SPAN.thumbnail-overlay {
+ background-image: url(//cdn.taboola.com/taboola-generic/lightbox-overlay.png)
+ }
+
+ DIV.trc_autoplaylist-box .nextup .video-label-box {
+ color: #fff;
+ font-weight: 700;
+ font-size: 12px;
+ line-height: 14px
+ }
+
+ .trc-syndication-link {
+ text-decoration: none;
+ color: inherit
+ }
+
+ .playerCube {
+ width: 100%;
+ height: 100%;
+ position: relative;
+ cursor: pointer
+ }
+
+ .playerCube .thumbnail-overlay {
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: 0;
+ position: absolute
+ }
+
+ .trc_related_container .whatsThisSyndicated {
+ position: absolute;
+ cursor: pointer
+ }
+
+ .trc_related_container .whatsThisSyndicated.a-bottom-right,
+ .trc_related_container .static-text.bottom-right {
+ bottom: 0;
+ right: 0
+ }
+
+ .trc_related_container .whatsThisSyndicated.a-top-right,
+ .trc_related_container .static-text.top-right {
+ top: 0;
+ right: 0
+ }
+
+ .trc_related_container .whatsThisSyndicated.a-bottom-left,
+ .trc_related_container .static-text.bottom-left {
+ bottom: 0;
+ left: 0
+ }
+
+ .trc_related_container .whatsThisSyndicated.a-top-left,
+ .trc_related_container .static-text.top-left {
+ top: 0;
+ left: 0
+ }
+
+ .trc_related_container .videoCube .thumbBlock .branding {
+ position: absolute;
+ bottom: 0;
+ z-index: 1;
+ width: 100%;
+ margin: 0;
+ padding: 5px 0;
+ text-align: center
+ }
+
+ .syndicatedItem .branding {
+ margin: 0
+ }
+
+ .trc_related_container .videoCube .thumbBlock .static-text {
+ position: absolute;
+ z-index: 1;
+ margin: 0;
+ padding: 5px;
+ background-color: #000;
+ color: #fff;
+ display: block;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: 400;
+ text-align: left;
+ text-decoration: none;
+ opacity: .7
+ }
+
+ .trc_related_container .static-text.top {
+ width: 100%;
+ top: 0;
+ padding: 5px 0
+ }
+
+ .trc_related_container .static-text.bottom {
+ width: 100%;
+ bottom: 0;
+ padding: 2px 0
+ }
+
+ .trc-inplayer-rbox {
+ background: #333;
+ background: rgba(30, 30, 30, .9);
+ *background: #333;
+ bottom: 0;
+ position: absolute;
+ height: 300px;
+ text-align: center
+ }
+
+ .trc-inplayer-rbox .trc_rbox_container {
+ margin: 50px auto 0;
+ width: 640px
+ }
+
+ .trc_rbox.trc-auto-size {
+ width: 100%;
+ height: 100%
+ }
+
+ .videoCube.thumbnail_under .thumbBlock {
+ margin-left: 0;
+ margin-right: 0
+ }
+
+ .videoCube.thumbnail_under .label-box-overlay {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ background: #000;
+ opacity: .75;
+ filter: alpha(opacity=75);
+ top: 0;
+ _display: none
+ }
+
+ .videoCube.thumbnail_under .video-labels-anchor {
+ width: 100%;
+ height: auto;
+ position: absolute;
+ z-index: 1;
+ left: 0;
+ bottom: 0;
+ min-height: 2.58em;
+ max-height: 2.58em;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ _background-color: #CECECE;
+ -webkit-transition: all .2s linear;
+ -moz-transition: all .2s linear;
+ -ms-transition: all .2s linear;
+ -o-transition: all .2s linear;
+ transition: all .2s linear;
+ line-height: 1.25em
+ }
+
+ .videoCube.thumbnail_under .video-labels-anchor span.video-title,
+ .videoCube.thumbnail_under .video-labels-anchor span.branding {
+ position: relative;
+ z-index: 1;
+ padding: 0 3px;
+ margin: 0
+ }
+
+ .videoCube.thumbnail_under .video-title {
+ min-height: 2.58em
+ }
+
+ .videoCube.thumbnail_under:hover .video-labels-anchor {
+ opacity: 1;
+ max-height: 6.45em
+ }
+
+ .trc-auto-size .trc_rbox_outer .trc_rbox_div {
+ height: auto;
+ width: auto
+ }
+
+ .trc-auto-size .trc_rbox_div .videoCube {
+ height: auto
+ }
+
+ .trc-auto-size .trc_rbox_div .videoCube.trc-first-recommendation {
+ margin-top: 0
+ }
+
+ .trc_rbox .trc_rbox_outer .trc_rbox_div .videoCube.trc-first-in-row {
+ margin-left: 0
+ }
+
+ .trc_elastic .trc_rbox {
+ width: auto
+ }
+
+ .trc_elastic .videoCube {
+ overflow: hidden
+ }
+
+ .trc_elastic .videoCube .thumbBlock {
+ display: block;
+ background-color: transparent;
+ background-position: center center;
+ background-repeat: no-repeat;
+ background-size: cover;
+ position: absolute;
+ display: inline-block;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ margin-left: 0;
+ margin-right: 0
+ }
+
+ .trc_elastic .thumbBlock_holder {
+ position: relative;
+ width: 100%
+ }
+
+ .trc_elastic .thumbnail_start .thumbBlock_holder {
+ float: left;
+ margin-right: 10px
+ }
+
+ .trc_elastic .videoCube_aspect {
+ width: 1px
+ }
+
+ .trc_elastic .trc_rbox .trc_rbox_div {
+ height: auto
+ }
+
+ .trc_elastic .video-label-box {
+ display: block
+ }
+
+ .trc_user_adChoice_btn {
+ background: url(//cdn.taboola.com/libtrc/static/thumbnails/3aadbb71016ecd7a194bbe2791777e9a.png) no-repeat scroll 0 0 rgba(255, 255, 255, .7);
+ border-radius: 0 0 0 5px;
+ width: 16px;
+ height: 16px;
+ position: absolute;
+ right: 0;
+ top: 0;
+ z-index: 9000;
+ cursor: pointer;
+ visibility: hidden
+ }
+
+ .trc_user_adChoice_anchor {
+ width: 100%;
+ height: 100%;
+ position: absolute
+ }
+
+ .videoCube:hover .trc_user_adChoice_btn,
+ .videoCube_hover .trc_user_adChoice_btn {
+ visibility: visible
+ }
+
+ .trc_user_exclude_btn {
+ background: url(//cdn.taboola.com/libtrc/static/thumbnails/f539211219b796ffbb49949997c764f0.png) no-repeat scroll 0 0 transparent;
+ width: 12px;
+ height: 12px;
+ position: absolute;
+ right: 2px;
+ top: 2px;
+ z-index: 9000;
+ cursor: pointer;
+ visibility: hidden
+ }
+
+ .trc_undo_btn {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 11px;
+ line-height: 14px;
+ font-weight: 400;
+ color: #36C;
+ text-decoration: underline;
+ cursor: pointer;
+ position: absolute;
+ right: 2px;
+ top: 2px;
+ padding: 0 1px;
+ z-index: 11000;
+ visibility: hidden
+ }
+
+ .videoCube:hover .trc_user_exclude_btn,
+ .videoCube_hover .trc_user_exclude_btn,
+ .trc_user_excluded.videoCube:hover .trc_undo_btn,
+ .trc_user_excluded.videoCube_hover .trc_undo_btn,
+ .trc_undo_btn.trc_anchor {
+ visibility: visible
+ }
+
+ .videoCube.trc_user_excluded .trc_user_exclude_btn {
+ visibility: hidden
+ }
+
+ .trc_fade {
+ opacity: 0;
+ filter: alpha(opacity=0);
+ visibility: hidden;
+ transition: opacity 500ms 0s, visibility 0s 500ms;
+ -webkit-transition: opacity 500ms 0s, visibility 0s 500ms;
+ -moz-transition: opacity 500ms 0s, visibility 0s 500ms;
+ -o-transition: opacity 500ms 0s, visibility 0s 500ms;
+ -ms-transition: opacity 500ms 0s, visibility 0s 500ms
+ }
+
+ .trc_fade.trc_in,
+ .trc_user_excluded .trc_exclude_overlay {
+ visibility: visible;
+ opacity: 1;
+ filter: alpha(opacity=100);
+ transition-delay: 0s, 0s;
+ -moz-transition-delay: 0s, 0s;
+ -webkit-transition-delay: 0s, 0s;
+ -o-transition-delay: 0s, 0s;
+ -ms-transition-delay: 0s, 0s
+ }
+
+ .trc_excludable .trc_exclude_overlay {
+ position: absolute;
+ z-index: 10000;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ cursor: default;
+ background-color: #fff
+ }
+
+ .videoCube.trc_excludable .trc_exclude_overlay.trc_fade {
+ filter: alpha(opacity=80)\9
+ }
+
+ .videoCube.trc_user_excluded .trc_exclude_overlay {
+ visibility: visible;
+ opacity: .8;
+ filter: alpha(opacity=80)
+ }
+
+ .videoCube.trc_user_excluded .thumbBlock {
+ filter: url("data:image/svg+xml;utf8,&lt;svg xmlns='http://www.w3.org/2000/svg'&gt;&lt;filter id='grayscale'&gt;&lt;feColorMatrix type='matrix' values='0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0' /&gt;&lt;/filter&gt;&lt;/svg&gt;#grayscale");
+ filter: gray;
+ -webkit-filter: grayscale(100%)
+ }
+
+ .videoCube.trc_user_excluded:hover a .video-label-box .video-title,
+ .videoCube_hover.trc_user_excluded a .video-label-box .video-title {
+ text-decoration: none
+ }
+
+ .videoCube.trc_user_excluded a .video-label-box *,
+ .videoCube.trc_user_excluded:hover a .video-label-box *,
+ .videoCube_hover.trc_user_excluded a .video-label-box * {
+ color: #000;
+ overflow: hidden;
+ -webkit-transition: color 500ms 0s;
+ -moz-transition: color 500ms 0s;
+ -ms-transition: color 500ms 0s;
+ -o-transition: color 500ms 0s;
+ transition: color 500ms 0s
+ }
+
+ .videoCube.trc_user_excluded a .video-label-box .label-box-overlay {
+ background-color: #BBB;
+ -webkit-transition: background-color 500ms 0s;
+ -moz-transition: background-color 500ms 0s;
+ -ms-transition: background-color 500ms 0s;
+ -o-transition: background-color 500ms 0s;
+ transition: background-color 500ms 0s
+ }
+
+ .videoCube.thumbnail_under.trc_user_excluded .video-labels-anchor,
+ .videoCube.thumbnail_under.trc_user_excluded:hover .video-labels-anchor {
+ max-height: none;
+ -webkit-transition: none;
+ -moz-transition: none;
+ -ms-transition: none;
+ -o-transition: none;
+ transition: none
+ }
+
+ .trc_related_container .trc_clearer {
+ clear: both;
+ height: 0;
+ overflow: hidden;
+ font-size: 0;
+ line-height: 0;
+ visibility: hidden
+ }
+
+ .link-adc {
+ float: right!important
+ }
+
+ .trc-widget-footer .link-adc a .trc_adc_wrapper,
+ .trc_header_ext .link-adc a .trc_adc_wrapper {
+ vertical-align: baseline;
+ height: 15px;
+ width: 19px;
+ display: inline-block;
+ position: relative
+ }
+
+ .trc-widget-footer .link-adc a .trc_adc_s_logo,
+ .trc_header_ext .link-adc a .trc_adc_s_logo,
+ .trc-widget-footer .link-adc a .trc_adc_b_logo,
+ .trc_header_ext .link-adc a .trc_adc_b_logo {
+ vertical-align: middle;
+ height: 15px;
+ display: inline-block;
+ margin-top: -1px
+ }
+
+ .trc-widget-footer .link-adc a .trc_adc_s_logo,
+ .trc_header_ext .link-adc a .trc_adc_s_logo {
+ width: 19px;
+ background: url(//cdn.taboola.com/libtrc/static/thumbnails/3aadbb71016ecd7a194bbe2791777e9a.png) no-repeat!important
+ }
+
+ .trc-widget-footer .link-adc a .trc_adc_b_logo,
+ .trc_header_ext .link-adc a .trc_adc_b_logo {
+ width: 77px;
+ background: #fff url(//cdn.taboola.com/libtrc/static/thumbnails/0781f9c5a8637d1e162874f157460048.png) no-repeat!important;
+ right: -1px;
+ display: none;
+ position: absolute
+ }
+
+ .trc_mobile_disclosure_link,
+ .trc_mobile_attribution_link,
+ .trc_mobile_adc_link {
+ display: none
+ }
+
+ .trc_desktop_disclosure_link,
+ .trc_desktop_attribution_link,
+ .trc_desktop_adc_link {
+ display: inline
+ }
+
+ @media screen and (max-width:767px) {
+ .trc_mobile_disclosure_link {
+ display: inline
+ }
+ .trc_mobile_attribution_link {
+ display: inline
+ }
+ .trc_mobile_adc_link {
+ display: inline
+ }
+ .trc_desktop_disclosure_link {
+ display: none
+ }
+ .trc_desktop_attribution_link {
+ display: none
+ }
+ .trc_desktop_adc_link {
+ display: none
+ }
+ }
+
+ .trc_in_iframe .trc_mobile_attribution_link,
+ .trc_in_iframe .trc_mobile_disclosure_link {
+ display: inline
+ }
+
+ .trc_in_iframe .trc_desktop_attribution_link,
+ .trc_in_iframe .trc_desktop_disclosure_link {
+ display: none
+ }
+
+ .trc_related_container .logoDiv,
+ .trc_related_container .trc_header_ext .logoDiv {
+ float: right
+ }
+
+ .trc_related_container .logoDiv+.logoDiv {
+ margin-right: 2px
+ }
+
+ .trc_related_container .attribution-disclosure-link-sponsored,
+ .trc_related_container .attribution-disclosure-link-hybrid {
+ display: none
+ }
+
+ .trc_related_container .trc-content-sponsored .attribution-disclosure-link-sponsored {
+ display: block
+ }
+
+ .trc_related_container .trc-content-hybrid .attribution-disclosure-link-hybrid {
+ display: block
+ }
+
+ .trc_related_container .trc-widget-footer:hover a span,
+ .trc_related_container .trc_header_ext:hover a span {
+ text-decoration: underline!important
+ }
+
+ .logoDiv a span.trc_logos_v_align {
+ display: inline-block!important;
+ font-size: 15px!important;
+ line-height: 1em!important;
+ width: 0!important
+ }
+
+ .trc_related_container .trc_header_ext:hover a span.trc_logos_v_align,
+ .trc_related_container .trc_header_ext:hover a span.trc_adc_wrapper,
+ .trc_related_container .trc-widget-footer:hover a span.trc_logos_v_align,
+ .trc_related_container .trc-widget-footer:hover a span.trc_adc_wrapper {
+ text-decoration: none!important
+ }
+
+ .trc_related_container {
+ clear: both
+ }
+
+ .ab_thumbnails-a2_abp-mode .video-title {
+ font-family: 'Segoe UI Semilight', 'microsoft jhenghei';
+ font-size: 20.0px;
+ line-height: 26.0px;
+ font-weight: normal;
+ max-height: 78.0px;
+ *height: 78.0px;
+ color: #333333;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a2_abp-mode .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a2_abp-mode .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_thumbnails-a2_abp-mode .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_thumbnails-a2_abp-mode .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-a2_abp-mode .video-label,
+ .ab_thumbnails-a2_abp-mode .sponsored,
+ .ab_thumbnails-a2_abp-mode .sponsored-url {
+ font-family: 'Segoe UI Semilight', 'microsoft jhenghei';
+ }
+
+ .ab_thumbnails-a2_abp-mode .trc_rbox_header {
+ font-family: 'Segoe UI Bold', 'microsoft jhenghei', 'Segoe WP Bold', 'Segoe UI', 'Segoe WP', 'Arial', 'sans-serif';
+ font-size: 15.0px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0 0 6px 0;
+ }
+
+ .ab_thumbnails-a2_abp-mode .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_thumbnails-a2_abp-mode .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_thumbnails-a2_abp-mode .video-category {
+ font-size: 13px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #666666;
+ }
+
+ .ab_thumbnails-a2_abp-mode .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a2_abp-mode .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a2_abp-mode .video-uploader {
+ font-size: 13px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #666666;
+ }
+
+ .ab_thumbnails-a2_abp-mode .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a2_abp-mode .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a2_abp-mode .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_thumbnails-a2_abp-mode .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_thumbnails-a2_abp-mode .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .ab_thumbnails-a2_abp-mode div.videoCube:hover,
+ .ab_thumbnails-a2_abp-mode div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-a2_abp-mode .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_thumbnails-a2_abp-mode div.sponsored-default:hover,
+ .ab_thumbnails-a2_abp-mode div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_thumbnails-a2_abp-mode .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-a2_abp-mode .videoCube:hover .thumbnail-overlay,
+ .ab_thumbnails-a2_abp-mode .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-a2_abp-mode .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-a2_abp-mode .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-a2_abp-mode div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-a2_abp-mode .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-a2_abp-mode .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_thumbnails-a2_abp-mode .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-a2_abp-mode .trc_pager_prev:hover,
+ .ab_thumbnails-a2_abp-mode .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-a2_abp-mode .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-a2_abp-mode .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-a2_abp-mode div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-a2_abp-mode .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_thumbnails-a2_abp-mode .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-a2_abp-mode .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_thumbnails-a2_abp-mode .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-a2_abp-mode .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_thumbnails-a2_abp-mode {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_thumbnails-a2_abp-mode .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-a2_abp-mode .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-a2_abp-mode .trc_pager_prev,
+ .ab_thumbnails-a2_abp-mode .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a2_abp-mode .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a2_abp-mode .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a2_abp-mode .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_thumbnails-a2_abp-mode .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-a2_abp-mode .playerCube:hover .thumbnail-overlay,
+ .ab_thumbnails-a2_abp-mode .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-a2_abp-mode .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_thumbnails-a2_abp-mode .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_thumbnails-a2_abp-mode .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-a2_abp-mode .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a2_abp-mode .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a2_abp-mode .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-a2_abp-mode .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a2_abp-mode .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a2_abp-mode .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_thumbnails-a2_abp-mode .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_thumbnails-a2_abp-mode .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-a2_abp-mode .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a2_abp-mode .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a2_abp-mode .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a2_abp-mode .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_thumbnails-a2_abp-mode .playerCube div.videoCube:hover,
+ .ab_thumbnails-a2_abp-mode div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-a2_abp-mode .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_thumbnails-a2_abp-mode div.syndicatedItem:hover,
+ .ab_thumbnails-a2_abp-mode div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-a2_abp-mode div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-a2_abp-mode .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .ab_thumbnails-a2_abp-mode .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-a2_abp-mode .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_thumbnails-a2_abp-mode .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-a2_abp-mode .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-a2_abp-mode .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_thumbnails-a2_abp-mode .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_thumbnails-a2_abp-mode .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-a2_abp-mode .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a2_abp-mode .syndicatedItem .video-title {
+ max-height: 78.0px;
+ *height: 78.0px;
+ color: #333333;
+ font-family: 'Segoe UI Semilight', 'microsoft jhenghei';
+ font-size: 20.0px;
+ line-height: 26.0px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a2_abp-mode .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a2_abp-mode .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-a2_abp-mode .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a2_abp-mode .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a2_abp-mode .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a2_abp-mode .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a2_abp-mode .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a2_abp-mode .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a2_abp-mode .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a2_abp-mode .syndicatedItem .branding {
+ color: #666666;
+ font-size: 13.0px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: 'Segoe UI', 'microsoft jhenghei';
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_thumbnails-a2_abp-mode .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_thumbnails-a2_abp-mode .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_thumbnails-a2_abp-mode .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .video-title {
+ font-family: 'Segoe UI Semilight', 'microsoft jhenghei';
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: normal;
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #333333;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .video-label,
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .sponsored,
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .sponsored-url {
+ font-family: 'Segoe UI Semilight', 'microsoft jhenghei';
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .trc_rbox_header {
+ font-family: 'Segoe UI Bold', 'microsoft jhenghei', 'Segoe WP Bold', 'Segoe UI', 'Segoe WP', 'Arial', 'sans-serif';
+ font-size: 15.0px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0 0 6px 0;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .video-category {
+ font-size: 13px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #666666;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .video-uploader {
+ font-size: 13px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #666666;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 div.videoCube:hover,
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 div.sponsored-default:hover,
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .videoCube:hover .thumbnail-overlay,
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .trc_pager_prev:hover,
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .trc_pager_prev,
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .playerCube:hover .thumbnail-overlay,
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .playerCube div.videoCube:hover,
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 div.syndicatedItem:hover,
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .syndicatedItem .video-title {
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #333333;
+ font-family: 'Segoe UI Semilight', 'microsoft jhenghei';
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .syndicatedItem .branding {
+ color: #666666;
+ font-size: 13.0px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: 'Segoe UI', 'microsoft jhenghei';
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .ab_thumbnails-o2_abp-mode .video-title {
+ font-family: 'Segoe UI Semilight', 'microsoft jhenghei';
+ font-size: 20.0px;
+ line-height: 26.0px;
+ font-weight: normal;
+ max-height: 78.0px;
+ *height: 78.0px;
+ color: #333333;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-o2_abp-mode .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-o2_abp-mode .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_thumbnails-o2_abp-mode .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_thumbnails-o2_abp-mode .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-o2_abp-mode .video-label,
+ .ab_thumbnails-o2_abp-mode .sponsored,
+ .ab_thumbnails-o2_abp-mode .sponsored-url {
+ font-family: 'Segoe UI Semilight', 'microsoft jhenghei';
+ }
+
+ .ab_thumbnails-o2_abp-mode .trc_rbox_header {
+ font-family: 'Segoe UI Bold', 'microsoft jhenghei', 'Segoe WP Bold', 'Segoe UI', 'Segoe WP', 'Arial', 'sans-serif';
+ font-size: 15.0px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0 0 6px 0;
+ }
+
+ .ab_thumbnails-o2_abp-mode .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_thumbnails-o2_abp-mode .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_thumbnails-o2_abp-mode .video-category {
+ font-size: 13px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #666666;
+ }
+
+ .ab_thumbnails-o2_abp-mode .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-o2_abp-mode .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-o2_abp-mode .video-uploader {
+ font-size: 13px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #666666;
+ }
+
+ .ab_thumbnails-o2_abp-mode .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-o2_abp-mode .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-o2_abp-mode .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_thumbnails-o2_abp-mode .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_thumbnails-o2_abp-mode .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .ab_thumbnails-o2_abp-mode div.videoCube:hover,
+ .ab_thumbnails-o2_abp-mode div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-o2_abp-mode .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_thumbnails-o2_abp-mode div.sponsored-default:hover,
+ .ab_thumbnails-o2_abp-mode div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_thumbnails-o2_abp-mode .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-o2_abp-mode .videoCube:hover .thumbnail-overlay,
+ .ab_thumbnails-o2_abp-mode .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-o2_abp-mode .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-o2_abp-mode .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-o2_abp-mode div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-o2_abp-mode .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-o2_abp-mode .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_thumbnails-o2_abp-mode .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-o2_abp-mode .trc_pager_prev:hover,
+ .ab_thumbnails-o2_abp-mode .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-o2_abp-mode .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-o2_abp-mode .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-o2_abp-mode div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-o2_abp-mode .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_thumbnails-o2_abp-mode .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-o2_abp-mode .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_thumbnails-o2_abp-mode .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-o2_abp-mode .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_thumbnails-o2_abp-mode {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_thumbnails-o2_abp-mode .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-o2_abp-mode .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-o2_abp-mode .trc_pager_prev,
+ .ab_thumbnails-o2_abp-mode .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-o2_abp-mode .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-o2_abp-mode .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-o2_abp-mode .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_thumbnails-o2_abp-mode .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-o2_abp-mode .playerCube:hover .thumbnail-overlay,
+ .ab_thumbnails-o2_abp-mode .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-o2_abp-mode .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_thumbnails-o2_abp-mode .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_thumbnails-o2_abp-mode .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-o2_abp-mode .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-o2_abp-mode .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-o2_abp-mode .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-o2_abp-mode .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-o2_abp-mode .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-o2_abp-mode .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_thumbnails-o2_abp-mode .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_thumbnails-o2_abp-mode .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-o2_abp-mode .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-o2_abp-mode .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-o2_abp-mode .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-o2_abp-mode .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_thumbnails-o2_abp-mode .playerCube div.videoCube:hover,
+ .ab_thumbnails-o2_abp-mode div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-o2_abp-mode .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_thumbnails-o2_abp-mode div.syndicatedItem:hover,
+ .ab_thumbnails-o2_abp-mode div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-o2_abp-mode div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-o2_abp-mode .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .ab_thumbnails-o2_abp-mode .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-o2_abp-mode .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_thumbnails-o2_abp-mode .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-o2_abp-mode .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-o2_abp-mode .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_thumbnails-o2_abp-mode .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_thumbnails-o2_abp-mode .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-o2_abp-mode .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-o2_abp-mode .syndicatedItem .video-title {
+ max-height: 78.0px;
+ *height: 78.0px;
+ color: #333333;
+ font-family: 'Segoe UI Semilight', 'microsoft jhenghei';
+ font-size: 20.0px;
+ line-height: 26.0px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-o2_abp-mode .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-o2_abp-mode .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-o2_abp-mode .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-o2_abp-mode .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-o2_abp-mode .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-o2_abp-mode .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-o2_abp-mode .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-o2_abp-mode .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-o2_abp-mode .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-o2_abp-mode .syndicatedItem .branding {
+ color: #666666;
+ font-size: 13.0px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: 'Segoe UI', 'microsoft jhenghei';
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_thumbnails-o2_abp-mode .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_thumbnails-o2_abp-mode .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_thumbnails-o2_abp-mode .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .video-title {
+ font-family: 'Segoe UI Semilight', 'microsoft jhenghei';
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: normal;
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #333333;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .video-label,
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .sponsored,
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .sponsored-url {
+ font-family: 'Segoe UI Semilight', 'microsoft jhenghei';
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .trc_rbox_header {
+ font-family: 'Segoe UI Bold', 'microsoft jhenghei', 'Segoe WP Bold', 'Segoe UI', 'Segoe WP', 'Arial', 'sans-serif';
+ font-size: 15.0px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0 0 6px 0;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .video-category {
+ font-size: 13px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #666666;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .video-uploader {
+ font-size: 13px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #666666;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 div.videoCube:hover,
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 div.sponsored-default:hover,
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .videoCube:hover .thumbnail-overlay,
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .pager_enabled {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .trc_pager_counter {
+ color: #000000;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .pager_disabled {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .trc_pager_prev:hover,
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .trc_pager_prev,
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .trc_pager div {
+ font-family: serif;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .playerCube:hover .thumbnail-overlay,
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .playerCube div.videoCube:hover,
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 div.syndicatedItem:hover,
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .syndicatedItem .video-title {
+ max-height: 66.0px;
+ *height: 66.0px;
+ color: #333333;
+ font-family: 'Segoe UI Semilight', 'microsoft jhenghei';
+ font-size: 16.0px;
+ line-height: 22.0px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .syndicatedItem .branding {
+ color: #666666;
+ font-size: 13.0px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: 'Segoe UI', 'microsoft jhenghei';
+ background-image: null;
+ text-align: left;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .organic-thumbnails-h .video-title {
+ font-family: 'Segoe UI', 'microsoft jhenghei';
+ font-size: 15.0px;
+ line-height: 20.0px;
+ font-weight: normal;
+ max-height: 54.0px;
+ *height: 54.0px;
+ color: #666666;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-h .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-h .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0px 0px 0px 0px;
+ }
+
+ .organic-thumbnails-h .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .organic-thumbnails-h .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .organic-thumbnails-h .video-label,
+ .organic-thumbnails-h .sponsored,
+ .organic-thumbnails-h .sponsored-url {
+ font-family: 'Segoe UI', 'microsoft jhenghei';
+ }
+
+ .organic-thumbnails-h .trc_rbox_header {
+ font-family: 'Segoe UI Bold', 'microsoft jhenghei', 'Segoe WP Bold', 'Segoe UI', 'Segoe WP', 'Arial', 'sans-serif';
+ font-size: 13.0px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #333333;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0px 0px 11px 0px;
+ }
+
+ .organic-thumbnails-h .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .organic-thumbnails-h .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .organic-thumbnails-h .video-category {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #666666;
+ }
+
+ .organic-thumbnails-h .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-h .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-h .video-uploader {
+ font-size: 12.0px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #666666;
+ }
+
+ .organic-thumbnails-h .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-h .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-h .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .organic-thumbnails-h .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .organic-thumbnails-h .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: #EFEFEF;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0px 20px 0px 20px;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .organic-thumbnails-h div.videoCube:hover,
+ .organic-thumbnails-h div.videoCube_hover {
+ background-color: #EFEFEF;
+ }
+
+ .organic-thumbnails-h .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .organic-thumbnails-h div.sponsored-default:hover,
+ .organic-thumbnails-h div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .organic-thumbnails-h .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .organic-thumbnails-h .videoCube:hover .thumbnail-overlay,
+ .organic-thumbnails-h .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .organic-thumbnails-h .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .organic-thumbnails-h .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .organic-thumbnails-h div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .organic-thumbnails-h .pager_enabled {
+ color: #0056b3;
+ }
+
+ .organic-thumbnails-h .trc_pager_counter {
+ color: #000000;
+ }
+
+ .organic-thumbnails-h .pager_disabled {
+ color: #7d898f;
+ }
+
+ .organic-thumbnails-h .trc_pager_prev:hover,
+ .organic-thumbnails-h .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .organic-thumbnails-h .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .organic-thumbnails-h .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .organic-thumbnails-h div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .organic-thumbnails-h .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .organic-thumbnails-h .video-label-box {
+ text-align: left;
+ }
+
+ .organic-thumbnails-h .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .organic-thumbnails-h .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .organic-thumbnails-h .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .organic-thumbnails-h {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .organic-thumbnails-h .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .organic-thumbnails-h .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .organic-thumbnails-h .trc_pager_prev,
+ .organic-thumbnails-h .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-h .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-h .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-h .trc_pager div {
+ font-family: serif;
+ }
+
+ .organic-thumbnails-h .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .organic-thumbnails-h .playerCube:hover .thumbnail-overlay,
+ .organic-thumbnails-h .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .organic-thumbnails-h .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .organic-thumbnails-h .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .organic-thumbnails-h .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .organic-thumbnails-h .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-h .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-h .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .organic-thumbnails-h .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-h .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-h .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .organic-thumbnails-h .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .organic-thumbnails-h .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .organic-thumbnails-h .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-h .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-h .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .organic-thumbnails-h .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .organic-thumbnails-h .playerCube div.videoCube:hover,
+ .organic-thumbnails-h div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .organic-thumbnails-h .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .organic-thumbnails-h div.syndicatedItem:hover,
+ .organic-thumbnails-h div.syndicatedItem.videoCube_hover {
+ background-color: #EFEFEF;
+ }
+
+ .organic-thumbnails-h div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .organic-thumbnails-h .videoCube.syndicatedItem {
+ background-color: #EFEFEF;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .organic-thumbnails-h .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .organic-thumbnails-h .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .organic-thumbnails-h .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .organic-thumbnails-h .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .organic-thumbnails-h .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .organic-thumbnails-h .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .organic-thumbnails-h .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .organic-thumbnails-h .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-h .syndicatedItem .video-title {
+ max-height: 40.0px;
+ *height: 40.0px;
+ color: #666666;
+ font-family: 'Segoe UI', 'microsoft jhenghei';
+ font-size: 15.0px;
+ line-height: 20.0px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-h .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-h .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .organic-thumbnails-h .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-h .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-h .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-h .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-h .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-h .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-h .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .organic-thumbnails-h .syndicatedItem .branding {
+ color: #666666;
+ font-size: 12.0px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: 'Segoe UI', 'microsoft jhenghei';
+ background-image: null;
+ text-align: left;
+ }
+
+ .organic-thumbnails-h .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .organic-thumbnails-h .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .organic-thumbnails-h .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .rbox-blended .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .rbox-blended .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .rbox-blended .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 1px;
+ padding: 0;
+ }
+
+ .rbox-blended .videoCube .video-duration {
+ left: 36px;
+ display: block;
+ }
+
+ .rbox-blended .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .rbox-blended .video-label,
+ .rbox-blended .sponsored,
+ .rbox-blended .sponsored-url {
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .rbox-blended .trc_rbox_header {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 16px;
+ font-weight: bold;
+ text-decoration: none;
+ color: black;
+ border-width: 0;
+ background: transparent;
+ border-style: none none solid none;
+ border-color: #D6D5D3;
+ padding: 0;
+ }
+
+ .rbox-blended .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .rbox-blended .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .rbox-blended .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .rbox-blended .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .rbox-blended .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 3px;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .rbox-blended div.videoCube:hover,
+ .rbox-blended div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .rbox-blended .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .rbox-blended div.sponsored-default:hover,
+ .rbox-blended div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .rbox-blended .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .rbox-blended .videoCube:hover .thumbnail-overlay,
+ .rbox-blended .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .rbox-blended .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .rbox-blended .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .rbox-blended div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .rbox-blended .pager_enabled {
+ color: #0056b3;
+ }
+
+ .rbox-blended .trc_pager_counter {
+ color: #000000;
+ }
+
+ .rbox-blended .pager_disabled {
+ color: #7d898f;
+ }
+
+ .rbox-blended .trc_pager_prev:hover,
+ .rbox-blended .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .rbox-blended .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .rbox-blended .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .rbox-blended div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .rbox-blended .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .rbox-blended .video-label-box {
+ text-align: left;
+ }
+
+ .rbox-blended .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .rbox-blended .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .rbox-blended .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .rbox-blended {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px;
+ border-style: solid solid solid solid;
+ border-color: #000000;
+ padding: 0;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .rbox-blended .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .rbox-blended .videoCube.horizontal {
+ border-style: none none none solid;
+ }
+
+ .rbox-blended .trc_pager_prev,
+ .rbox-blended .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .trc_pager div {
+ font-family: serif;
+ }
+
+ .rbox-blended .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .rbox-blended .playerCube:hover .thumbnail-overlay,
+ .rbox-blended .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .rbox-blended .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .rbox-blended .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .rbox-blended .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .rbox-blended .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .rbox-blended .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .rbox-blended .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .rbox-blended .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .rbox-blended .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .rbox-blended .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .rbox-blended .playerCube div.videoCube:hover,
+ .rbox-blended div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .rbox-blended .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .rbox-blended div.syndicatedItem:hover,
+ .rbox-blended div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .rbox-blended div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .rbox-blended .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .rbox-blended .videoCube.syndicatedItem.horizontal {
+ border-style: none none none solid;
+ }
+
+ .rbox-blended .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .rbox-blended .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .rbox-blended .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .rbox-blended .videoCube.syndicatedItem .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .rbox-blended .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .rbox-blended .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .rbox-blended .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .rbox-blended .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .rbox-blended .syndicatedItem .branding {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ text-align: left;
+ }
+
+ .rbox-blended .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: block;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .rbox-blended .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: block;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .rbox-blended .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .thumbnails-a2 .video-title {
+ font-family: 'Segoe UI Semilight', 'microsoft jhenghei';
+ font-size: 20.0px;
+ line-height: 26.0px;
+ font-weight: normal;
+ max-height: 78.0px;
+ *height: 78.0px;
+ color: #333333;
+ text-decoration: none;
+ }
+
+ .thumbnails-a2 .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .thumbnails-a2 .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .thumbnails-a2 .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .thumbnails-a2 .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .thumbnails-a2 .video-label,
+ .thumbnails-a2 .sponsored,
+ .thumbnails-a2 .sponsored-url {
+ font-family: 'Segoe UI Semilight', 'microsoft jhenghei';
+ }
+
+ .thumbnails-a2 .trc_rbox_header {
+ font-family: 'Segoe UI Bold', 'microsoft jhenghei', 'Segoe WP Bold', 'Segoe UI', 'Segoe WP', 'Arial', 'sans-serif';
+ font-size: 15.0px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0 0 6px 0;
+ }
+
+ .thumbnails-a2 .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .thumbnails-a2 .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .thumbnails-a2 .video-category {
+ font-size: 13px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #666666;
+ }
+
+ .thumbnails-a2 .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a2 .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a2 .video-uploader {
+ font-size: 13px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #666666;
+ }
+
+ .thumbnails-a2 .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a2 .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a2 .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .thumbnails-a2 .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .thumbnails-a2 .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .thumbnails-a2 div.videoCube:hover,
+ .thumbnails-a2 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-a2 .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .thumbnails-a2 div.sponsored-default:hover,
+ .thumbnails-a2 div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .thumbnails-a2 .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-a2 .videoCube:hover .thumbnail-overlay,
+ .thumbnails-a2 .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-a2 .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .thumbnails-a2 .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-a2 div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-a2 .pager_enabled {
+ color: #0056b3;
+ }
+
+ .thumbnails-a2 .trc_pager_counter {
+ color: #000000;
+ }
+
+ .thumbnails-a2 .pager_disabled {
+ color: #7d898f;
+ }
+
+ .thumbnails-a2 .trc_pager_prev:hover,
+ .thumbnails-a2 .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-a2 .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .thumbnails-a2 .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .thumbnails-a2 div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-a2 .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .thumbnails-a2 .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-a2 .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .thumbnails-a2 .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-a2 .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .thumbnails-a2 {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .thumbnails-a2 .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-a2 .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-a2 .trc_pager_prev,
+ .thumbnails-a2 .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-a2 .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-a2 .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a2 .trc_pager div {
+ font-family: serif;
+ }
+
+ .thumbnails-a2 .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-a2 .playerCube:hover .thumbnail-overlay,
+ .thumbnails-a2 .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-a2 .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .thumbnails-a2 .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .thumbnails-a2 .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .thumbnails-a2 .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a2 .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a2 .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-a2 .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a2 .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a2 .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .thumbnails-a2 .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .thumbnails-a2 .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-a2 .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a2 .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a2 .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-a2 .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .thumbnails-a2 .playerCube div.videoCube:hover,
+ .thumbnails-a2 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-a2 .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .thumbnails-a2 div.syndicatedItem:hover,
+ .thumbnails-a2 div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-a2 div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-a2 .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .thumbnails-a2 .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-a2 .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .thumbnails-a2 .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-a2 .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-a2 .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .thumbnails-a2 .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .thumbnails-a2 .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .thumbnails-a2 .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .thumbnails-a2 .syndicatedItem .video-title {
+ max-height: 78.0px;
+ *height: 78.0px;
+ color: #333333;
+ font-family: 'Segoe UI Semilight', 'microsoft jhenghei';
+ font-size: 20.0px;
+ line-height: 26.0px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-a2 .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-a2 .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .thumbnails-a2 .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-a2 .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-a2 .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-a2 .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-a2 .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-a2 .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-a2 .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-a2 .syndicatedItem .branding {
+ color: #666666;
+ font-size: 13.0px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: 'Segoe UI', 'microsoft jhenghei';
+ background-image: null;
+ text-align: left;
+ }
+
+ .thumbnails-a2 .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .thumbnails-a2 .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .thumbnails-a2 .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .thumbnails-h .video-title {
+ font-family: 'Segoe UI', 'microsoft jhenghei';
+ font-size: 15.0px;
+ line-height: 20.0px;
+ font-weight: normal;
+ max-height: 54.0px;
+ *height: 54.0px;
+ color: #666666;
+ text-decoration: none;
+ }
+
+ .thumbnails-h .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .thumbnails-h .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0px 0px 0px 0px;
+ }
+
+ .thumbnails-h .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .thumbnails-h .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .thumbnails-h .video-label,
+ .thumbnails-h .sponsored,
+ .thumbnails-h .sponsored-url {
+ font-family: 'Segoe UI', 'microsoft jhenghei';
+ }
+
+ .thumbnails-h .trc_rbox_header {
+ font-family: 'Segoe UI Bold', 'microsoft jhenghei', 'Segoe WP Bold', 'Segoe UI', 'Segoe WP', 'Arial', 'sans-serif';
+ font-size: 13.0px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #333333;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0px 0px 11px 0px;
+ }
+
+ .thumbnails-h .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .thumbnails-h .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .thumbnails-h .video-category {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #666666;
+ }
+
+ .thumbnails-h .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-h .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-h .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-h .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-h .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-h .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .thumbnails-h .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .thumbnails-h .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: #EFEFEF;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0px 20px 0px 20px;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .thumbnails-h div.videoCube:hover,
+ .thumbnails-h div.videoCube_hover {
+ background-color: #EFEFEF;
+ }
+
+ .thumbnails-h .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .thumbnails-h div.sponsored-default:hover,
+ .thumbnails-h div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .thumbnails-h .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-h .videoCube:hover .thumbnail-overlay,
+ .thumbnails-h .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-h .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .thumbnails-h .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-h div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-h .pager_enabled {
+ color: #0056b3;
+ }
+
+ .thumbnails-h .trc_pager_counter {
+ color: #000000;
+ }
+
+ .thumbnails-h .pager_disabled {
+ color: #7d898f;
+ }
+
+ .thumbnails-h .trc_pager_prev:hover,
+ .thumbnails-h .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-h .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .thumbnails-h .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .thumbnails-h div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-h .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .thumbnails-h .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-h .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .thumbnails-h .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-h .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .thumbnails-h {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .thumbnails-h .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-h .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-h .trc_pager_prev,
+ .thumbnails-h .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-h .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-h .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-h .trc_pager div {
+ font-family: serif;
+ }
+
+ .thumbnails-h .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-h .playerCube:hover .thumbnail-overlay,
+ .thumbnails-h .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-h .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .thumbnails-h .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .thumbnails-h .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .thumbnails-h .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-h .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-h .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-h .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-h .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-h .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .thumbnails-h .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .thumbnails-h .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-h .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-h .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-h .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-h .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .thumbnails-h .playerCube div.videoCube:hover,
+ .thumbnails-h div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-h .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .thumbnails-h div.syndicatedItem:hover,
+ .thumbnails-h div.syndicatedItem.videoCube_hover {
+ background-color: #EFEFEF;
+ }
+
+ .thumbnails-h div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-h .videoCube.syndicatedItem {
+ background-color: #EFEFEF;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .thumbnails-h .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-h .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .thumbnails-h .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-h .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-h .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .thumbnails-h .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .thumbnails-h .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .thumbnails-h .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .thumbnails-h .syndicatedItem .video-title {
+ max-height: 40.0px;
+ *height: 40.0px;
+ color: #666666;
+ font-family: 'Segoe UI', 'microsoft jhenghei';
+ font-size: 15.0px;
+ line-height: 20.0px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-h .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-h .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .thumbnails-h .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-h .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-h .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-h .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-h .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-h .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-h .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-h .syndicatedItem .branding {
+ color: #666666;
+ font-size: 12.0px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: 'Segoe UI', 'microsoft jhenghei';
+ background-image: null;
+ text-align: left;
+ }
+
+ .thumbnails-h .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .thumbnails-h .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .thumbnails-h .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .thumbnails-k .video-title {
+ font-family: 'Segoe UI Semilight', 'microsoft jhenghei';
+ font-size: 20.0px;
+ line-height: 26.0px;
+ font-weight: normal;
+ max-height: 78.0px;
+ *height: 78.0px;
+ color: #333333;
+ text-decoration: none;
+ }
+
+ .thumbnails-k .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .thumbnails-k .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .thumbnails-k .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .thumbnails-k .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .thumbnails-k .video-label,
+ .thumbnails-k .sponsored,
+ .thumbnails-k .sponsored-url {
+ font-family: 'Segoe UI Semilight', 'microsoft jhenghei';
+ }
+
+ .thumbnails-k .trc_rbox_header {
+ font-family: 'Segoe UI Bold', 'microsoft jhenghei', 'Segoe WP Bold', 'Segoe UI', 'Segoe WP', 'Arial', 'sans-serif';
+ font-size: 15.0px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0 0 6px 0;
+ }
+
+ .thumbnails-k .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .thumbnails-k .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .thumbnails-k .video-category {
+ font-size: 13px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #666666;
+ }
+
+ .thumbnails-k .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-k .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-k .video-uploader {
+ font-size: 13px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #666666;
+ }
+
+ .thumbnails-k .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-k .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-k .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .thumbnails-k .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .thumbnails-k .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .thumbnails-k div.videoCube:hover,
+ .thumbnails-k div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-k .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .thumbnails-k div.sponsored-default:hover,
+ .thumbnails-k div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .thumbnails-k .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-k .videoCube:hover .thumbnail-overlay,
+ .thumbnails-k .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-k .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .thumbnails-k .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-k div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-k .pager_enabled {
+ color: #0056b3;
+ }
+
+ .thumbnails-k .trc_pager_counter {
+ color: #000000;
+ }
+
+ .thumbnails-k .pager_disabled {
+ color: #7d898f;
+ }
+
+ .thumbnails-k .trc_pager_prev:hover,
+ .thumbnails-k .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-k .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .thumbnails-k .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .thumbnails-k div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-k .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .thumbnails-k .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-k .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .thumbnails-k .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-k .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .thumbnails-k {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .thumbnails-k .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-k .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-k .trc_pager_prev,
+ .thumbnails-k .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-k .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-k .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-k .trc_pager div {
+ font-family: serif;
+ }
+
+ .thumbnails-k .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-k .playerCube:hover .thumbnail-overlay,
+ .thumbnails-k .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-k .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .thumbnails-k .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .thumbnails-k .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .thumbnails-k .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-k .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-k .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-k .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-k .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-k .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .thumbnails-k .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .thumbnails-k .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-k .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-k .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-k .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-k .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .thumbnails-k .playerCube div.videoCube:hover,
+ .thumbnails-k div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-k .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .thumbnails-k div.syndicatedItem:hover,
+ .thumbnails-k div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-k div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-k .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .thumbnails-k .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-k .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .thumbnails-k .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-k .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-k .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .thumbnails-k .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .thumbnails-k .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .thumbnails-k .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .thumbnails-k .syndicatedItem .video-title {
+ max-height: 52.0px;
+ *height: 52.0px;
+ color: #333333;
+ font-family: 'Segoe UI Semilight', 'microsoft jhenghei';
+ font-size: 20.0px;
+ line-height: 26.0px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-k .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-k .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .thumbnails-k .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-k .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-k .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-k .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-k .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-k .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-k .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-k .syndicatedItem .branding {
+ color: #666666;
+ font-size: 13.0px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: 'Segoe UI', 'microsoft jhenghei';
+ background-image: null;
+ text-align: left;
+ }
+
+ .thumbnails-k .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .thumbnails-k .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .thumbnails-k .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .thumbnails-o2 .video-title {
+ font-family: 'Segoe UI Semilight', 'microsoft jhenghei';
+ font-size: 20.0px;
+ line-height: 26.0px;
+ font-weight: normal;
+ max-height: 78.0px;
+ *height: 78.0px;
+ color: #333333;
+ text-decoration: none;
+ }
+
+ .thumbnails-o2 .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ text-decoration: none;
+ }
+
+ .thumbnails-o2 .trc_rbox_div {
+ width: auto;
+ _width: 99%;
+ height: 410px;
+ border-width: 0;
+ padding: 0;
+ }
+
+ .thumbnails-o2 .videoCube .video-duration {
+ left: 36px;
+ display: none;
+ }
+
+ .thumbnails-o2 .videoCube .video-label-box {
+ margin-left: 0;
+ margin-right: 0px;
+ }
+
+ .thumbnails-o2 .video-label,
+ .thumbnails-o2 .sponsored,
+ .thumbnails-o2 .sponsored-url {
+ font-family: 'Segoe UI Semilight', 'microsoft jhenghei';
+ }
+
+ .thumbnails-o2 .trc_rbox_header {
+ font-family: 'Segoe UI Bold', 'microsoft jhenghei', 'Segoe WP Bold', 'Segoe UI', 'Segoe WP', 'Arial', 'sans-serif';
+ font-size: 15.0px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #000000;
+ border-width: 0;
+ background: transparent;
+ border-style: none;
+ border-color: #D6D5D3;
+ padding: 0 0 6px 0;
+ }
+
+ .thumbnails-o2 .sponsored-url {
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ color: green;
+ }
+
+ .thumbnails-o2 .sponsored {
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #9C9A9C;
+ }
+
+ .thumbnails-o2 .video-category {
+ font-size: 13px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #666666;
+ }
+
+ .thumbnails-o2 .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-o2 .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-o2 .video-uploader {
+ font-size: 13px;
+ font-weight: normal;
+ text-decoration: none;
+ color: #666666;
+ }
+
+ .thumbnails-o2 .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-o2 .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-o2 .sponsored-default .video-title {
+ max-height: 2.58em;
+ *height: 2.58em;
+ }
+
+ .thumbnails-o2 .sponsored-default .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ }
+
+ .thumbnails-o2 .videoCube {
+ width: auto;
+ _width: auto;
+ background-color: transparent;
+ border-width: 1px;
+ border-color: #D6D5D3;
+ padding: 0;
+ height: auto;
+ margin-left: 0px;
+ margin-top: 0px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ }
+
+ .thumbnails-o2 div.videoCube:hover,
+ .thumbnails-o2 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-o2 .sponsored-default {
+ background-color: #F7F6C6;
+ }
+
+ .thumbnails-o2 div.sponsored-default:hover,
+ .thumbnails-o2 div.sponsored-default.videoCube_hover {
+ background-color: inherit;
+ }
+
+ .thumbnails-o2 .videoCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-o2 .videoCube:hover .thumbnail-overlay,
+ .thumbnails-o2 .videoCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-o2 .trc_rbox_border_elm {
+ border-color: darkgray;
+ }
+
+ .thumbnails-o2 .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-o2 div.videoCube:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-o2 .pager_enabled {
+ color: #0056b3;
+ }
+
+ .thumbnails-o2 .trc_pager_counter {
+ color: #000000;
+ }
+
+ .thumbnails-o2 .pager_disabled {
+ color: #7d898f;
+ }
+
+ .thumbnails-o2 .trc_pager_prev:hover,
+ .thumbnails-o2 .trc_pager_next:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-o2 .trc_pager_selected {
+ color: #0056b3;
+ }
+
+ .thumbnails-o2 .trc_pager_unselected {
+ color: #7d898f;
+ }
+
+ .thumbnails-o2 div.trc_pager_pages div:hover {
+ color: #6497ED;
+ }
+
+ .thumbnails-o2 .trc_lightbox_overlay {
+ background-color: #000000;
+ opacity: 0.70;
+ filter: alpha(opacity=70);
+ }
+
+ .thumbnails-o2 .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-o2 .trc_sponsored_overlay {
+ background-color: black;
+ }
+
+ .thumbnails-o2 .thumbnail-emblem {
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-o2 .videoCube .sponsored {
+ margin-top: -7px;
+ }
+
+ .thumbnails-o2 {
+ width: 300px;
+ _width: 300px;
+ border-width: 0px 0px 0px 0px;
+ border-style: solid solid solid solid;
+ border-color: #DFDFDF;
+ padding: 0px 0px 0px 0px;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ box-shadow: none;
+ }
+
+ .thumbnails-o2 .videoCube.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-o2 .videoCube.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-o2 .trc_pager_prev,
+ .thumbnails-o2 .trc_pager_next {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-o2 .trc_pager_pages div {
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-o2 .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-o2 .trc_pager div {
+ font-family: serif;
+ }
+
+ .thumbnails-o2 .playerCube .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-o2 .playerCube:hover .thumbnail-overlay,
+ .thumbnails-o2 .playerCube_hover .thumbnail-overlay {
+ background-image: null;
+ }
+
+ .thumbnails-o2 .playerCube .videoCube {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-width: 1px;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ margin-left: 0px;
+ margin-top: 0px;
+ padding: 3px;
+ }
+
+ .thumbnails-o2 .playerCube .videoCube.horizontal {
+ border-style: none none none none;
+ }
+
+ .thumbnails-o2 .playerCube .videoCube .video-label-box {
+ margin-left: 81px;
+ margin-right: 0px;
+ }
+
+ .thumbnails-o2 .playerCube .video-duration-detail {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-o2 .playerCube .video-external-data {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-o2 .playerCube .video-label-box {
+ text-align: left;
+ }
+
+ .thumbnails-o2 .playerCube .video-published-date {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-o2 .playerCube .video-category {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-o2 .playerCube .video-description {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ line-height: 11px;
+ font-weight: normal;
+ text-decoration: none;
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ }
+
+ .thumbnails-o2 .playerCube .videoCube .video-duration {
+ display: block;
+ left: 36px;
+ }
+
+ .thumbnails-o2 .playerCube .videoCube .thumbBlock {
+ border-width: 0px;
+ border-color: darkgray;
+ }
+
+ .thumbnails-o2 .playerCube .video-rating {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-o2 .playerCube .video-uploader {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-o2 .playerCube .video-views {
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ color: black;
+ }
+
+ .thumbnails-o2 .playerCube .video-title {
+ font-family: Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ font-size: 14px;
+ line-height: 17.5px;
+ font-weight: bold;
+ max-height: 2.58em;
+ *height: 2.58em;
+ color: black;
+ }
+
+ .thumbnails-o2 .playerCube div.videoCube:hover,
+ .thumbnails-o2 div.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-o2 .whatsThisSyndicated {
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+ color: black;
+ text-decoration: none;
+ padding: 0;
+ }
+
+ .thumbnails-o2 div.syndicatedItem:hover,
+ .thumbnails-o2 div.syndicatedItem.videoCube_hover {
+ background-color: transparent;
+ }
+
+ .thumbnails-o2 div.syndicatedItem:hover .thumbBlock {
+ border-color: inherit;
+ }
+
+ .thumbnails-o2 .videoCube.syndicatedItem {
+ background-color: transparent;
+ border-color: #D6D5D3;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-width: 1px;
+ }
+
+ .thumbnails-o2 .videoCube.syndicatedItem.horizontal {
+ border-style: none;
+ }
+
+ .thumbnails-o2 .videoCube.syndicatedItem .thumbBlock {
+ border-color: darkgray;
+ border-width: 0px;
+ }
+
+ .thumbnails-o2 .videoCube.syndicatedItem .thumbnail-overlay {
+ background-image: null;
+ background-position: 5% 5%;
+ }
+
+ .thumbnails-o2 .videoCube.syndicatedItem.vertical {
+ border-style: solid none none none;
+ }
+
+ .thumbnails-o2 .videoCube.syndicatedItem .video-duration {
+ display: none;
+ left: 36px;
+ }
+
+ .thumbnails-o2 .videoCube.syndicatedItem .video-label-box {
+ margin-left: 0px;
+ }
+
+ .thumbnails-o2 .syndicatedItem {
+ background-color: transparent;
+ }
+
+ .thumbnails-o2 .syndicatedItem .video-description {
+ max-height: 2.2em;
+ *height: 2.2em;
+ color: black;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: normal;
+ line-height: 11px;
+ text-decoration: none;
+ }
+
+ .thumbnails-o2 .syndicatedItem .video-title {
+ max-height: 78.0px;
+ *height: 78.0px;
+ color: #333333;
+ font-family: 'Segoe UI Semilight', 'microsoft jhenghei';
+ font-size: 20.0px;
+ line-height: 26.0px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-o2 .syndicatedItem .sponsored {
+ color: #9C9A9C;
+ font-size: 9px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-o2 .syndicatedItem .sponsored-url {
+ color: green;
+ font-size: 9px;
+ font-weight: bold;
+ text-decoration: underline;
+ }
+
+ .thumbnails-o2 .syndicatedItem .video-category {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-o2 .syndicatedItem .video-duration-detail {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-o2 .syndicatedItem .video-external-data {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-o2 .syndicatedItem .video-published-date {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-o2 .syndicatedItem .video-rating {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-o2 .syndicatedItem .video-uploader {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-o2 .syndicatedItem .video-views {
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ }
+
+ .thumbnails-o2 .syndicatedItem .branding {
+ color: #666666;
+ font-size: 13.0px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: 'Segoe UI', 'microsoft jhenghei';
+ background-image: null;
+ text-align: left;
+ }
+
+ .thumbnails-o2 .videoCube.syndicatedItem .thumbBlock .branding {
+ text-align: left;
+ background-color: transparent;
+ display: none;
+ left: 0px;
+ color: black;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ background-image: null;
+ }
+
+ .thumbnails-o2 .videoCube.syndicatedItem .thumbBlock .static-text {
+ text-align: left;
+ background-color: black;
+ display: none;
+ color: white;
+ font-size: 10px;
+ font-weight: normal;
+ text-decoration: none;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ .thumbnails-o2 .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 40%;
+ _width: 40%;
+ }
+
+ .trc-rtl .trc_rbox_container {
+ direction: rtl;
+ text-align: right;
+ }
+
+ .trc-rtl span {
+ direction: rtl !important;
+ text-align: right !important;
+ }
+
+ .trc-rtl .trc_header_left_part {
+ position: relative;
+ right: 52%;
+ }
+
+ .trc-rtl .trc-widget-footer {
+ text-align: left;
+ float: left !important;
+ }
+
+ .trc-rtl .logoDiv {
+ line-height: 15px !important;
+ }
+
+ .trc-rtl .trc_header_ext {
+ text-align: left;
+ float: left;
+ position: relative !important;
+ top: auto !important;
+ right: auto !important;
+ }
+
+ .trc-rtl.trc_related_container .logoDiv,
+ .trc-rtl.trc_related_container .trc_header_ext .logoDiv {
+ float: left;
+ }
+
+ .trc-rtl .videoCube.thumbnail_none {
+ float: left !important;
+ }
+
+ .trc-rtl .videoCube.thumbnail_none.rightCol {
+ float: none !important;
+ }
+
+ .trc-rtl .videoCube {
+ float: right !important;
+ }
+
+ .trc-rtl .videoCube {
+ float: right !important;
+ }
+
+ .trc-rtl .trc_related_container .logoDiv.link-attribution {
+ display: inline-block;
+ }
+
+ .trc-rtl .trc_related_container .trc-content-hybrid .logoDiv.attribution-disclosure-link-hybrid {
+ display: inline-block;
+ }
+
+ .trc-rtl .trc_related_container .trc-content-sponsored .logoDiv.attribution-disclosure-link-sponsored {
+ display: inline-block;
+ }
+
+ .trc-rtl .trc_related_container .video-label-box {
+ text-align: right;
+ }
+
+ .trc-rtl .trc_related_container .trc_rbox .trc_rbox_div .videoCube .video-label-box .branding {
+ text-align: right;
+ }
+
+ .trc-rtl .logoDiv.link-adc {
+ float: left !important;
+ }
+ /*TS-53549*/
+
+ .trc-rtl div[data-item-syndicated='true'].videoCube.syndicatedItem span {
+ direction: ltr !important;
+ text-align: left !important;
+ }
+
+ .trc-rtl div[data-item-syndicated='true'].videoCube.syndicatedItem.tabNativeItem span {
+ direction: rtl !important;
+ text-align: right !important;
+ }
+
+ .trc-rtl div[data-item-syndicated='true'].videoCube.syndicatedItem.inNetworkItem span {
+ direction: rtl !important;
+ text-align: right !important;
+ }
+
+ .ab_thumbnails-a2_abp-mode img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_thumbnails-a2_abp-mode [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .ab_thumbnails-a2_abp-mode .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: auto;
+ border-bottom: 1px solid black;
+ margin-bottom: 10px;
+ }
+
+ .ab_thumbnails-a2_abp-mode .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 39px;
+ }
+
+ .ab_thumbnails-a2_abp-mode .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ }
+
+ .ab_thumbnails-a2_abp-mode .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-a2_abp-mode .logoDiv a span {
+ display: inline;
+ color: #666666;
+ font-weight: normal;
+ font-size: 13.0px;
+ line-height: 18px;
+ font-family: 'Segoe UI', 'microsoft jhenghei';
+ }
+
+ .ab_thumbnails-a2_abp-mode .videoCube a {
+ padding: 0;
+ }
+
+ .ab_thumbnails-a2_abp-mode .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_thumbnails-a2_abp-mode .video-label-box {
+ height: 106px;
+ }
+
+ .ab_thumbnails-a2_abp-mode .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_thumbnails-a2_abp-mode .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ word-wrap: normal;
+ }
+
+ .ab_thumbnails-a2_abp-mode .videoCube:hover .video-label-box .video-title,
+ .ab_thumbnails-a2_abp-mode .videoCube:hover .video-label-box .video-title span {
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-a2_abp-mode .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_thumbnails-a2_abp-mode .syndicatedItem .branding {
+ line-height: 18.0px;
+ margin-top: 10px;
+ vertical-align: middle;
+ }
+
+ .ab_thumbnails-a2_abp-mode .trc_header_left_column {
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: 39px;
+ }
+
+ .ab_thumbnails-a2_abp-mode .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-a2_abp-mode .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ right: 0;
+ }
+
+ .ab_thumbnails-a2_abp-mode .videoCube .video-label-box .video-uploader {
+ display: block;
+ line-height: 18px;
+ margin-top: 10px;
+ font-family: 'Segoe UI', 'microsoft jhenghei';
+ }
+
+ .ab_thumbnails-a2_abp-mode .videoCube .video-label-box .video-uploader dt {
+ font-weight: normal;
+ }
+
+ .ab_thumbnails-a2_abp-mode .video-label-box .video-label.video-category {
+ text-transform: capitalize;
+ display: block;
+ line-height: 18px;
+ margin-top: 10px;
+ font-family: 'Segoe UI', 'microsoft jhenghei';
+ }
+
+ .ab_thumbnails-a2_abp-mode .video-label-box .video-label.video-category dt {
+ font-weight: normal;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: auto;
+ border-bottom: 1px solid black;
+ margin-bottom: 10px;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 39px;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .logoDiv a span {
+ display: inline;
+ color: #666666;
+ font-weight: normal;
+ font-size: 13.0px;
+ line-height: 18px;
+ font-family: 'Segoe UI', 'microsoft jhenghei';
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .videoCube a {
+ padding: 0;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_thumbnails-a2_smaller-titles-ratio-6x5 .video-label-box {
+ height: 89px;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ word-wrap: normal;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .videoCube:hover .video-label-box .video-title,
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .videoCube:hover .video-label-box .video-title span {
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .syndicatedItem .branding {
+ line-height: 18.0px;
+ margin-top: 5px;
+ vertical-align: middle;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .trc_header_left_column {
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: 39px;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ right: 0;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .videoCube .video-label-box .video-uploader {
+ display: block;
+ line-height: 18px;
+ margin-top: 5px;
+ font-family: 'Segoe UI', 'microsoft jhenghei';
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .videoCube .video-label-box .video-uploader dt {
+ font-weight: normal;
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .video-label-box .video-label.video-category {
+ text-transform: capitalize;
+ display: block;
+ line-height: 18px;
+ margin-top: 5px;
+ font-family: 'Segoe UI', 'microsoft jhenghei';
+ }
+
+ .ab_thumbnails-a2_smaller-titles-ratio-6x5 .video-label-box .video-label.video-category dt {
+ font-weight: normal;
+ }
+
+ .ab_thumbnails-o2_abp-mode img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_thumbnails-o2_abp-mode [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .ab_thumbnails-o2_abp-mode .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: auto;
+ border-bottom: 1px solid black;
+ margin-bottom: 10px;
+ }
+
+ .ab_thumbnails-o2_abp-mode .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 39px;
+ }
+
+ .ab_thumbnails-o2_abp-mode .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ }
+
+ .ab_thumbnails-o2_abp-mode .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-o2_abp-mode .logoDiv a span {
+ display: inline;
+ color: #666666;
+ font-weight: normal;
+ font-size: 13.0px;
+ line-height: 18px;
+ font-family: 'Segoe UI', 'microsoft jhenghei';
+ }
+
+ .ab_thumbnails-o2_abp-mode .videoCube a {
+ padding: 0;
+ }
+
+ .ab_thumbnails-o2_abp-mode .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_thumbnails-o2_abp-mode .video-label-box {
+ height: 106px;
+ }
+
+ .ab_thumbnails-o2_abp-mode .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_thumbnails-o2_abp-mode .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ word-wrap: normal;
+ }
+
+ .ab_thumbnails-o2_abp-mode .videoCube:hover .video-label-box .video-title,
+ .ab_thumbnails-o2_abp-mode .videoCube:hover .video-label-box .video-title span {
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-o2_abp-mode .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_thumbnails-o2_abp-mode .syndicatedItem .branding {
+ line-height: 18.0px;
+ margin-top: 10px;
+ vertical-align: middle;
+ }
+
+ .ab_thumbnails-o2_abp-mode .trc_header_left_column {
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: 39px;
+ }
+
+ .ab_thumbnails-o2_abp-mode .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-o2_abp-mode .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ right: 0;
+ }
+
+ .ab_thumbnails-o2_abp-mode .videoCube .video-label-box .video-uploader {
+ display: block;
+ line-height: 18px;
+ margin-top: 10px;
+ font-family: 'Segoe UI', 'microsoft jhenghei';
+ }
+
+ .ab_thumbnails-o2_abp-mode .videoCube .video-label-box .video-uploader dt {
+ font-weight: normal;
+ }
+
+ .ab_thumbnails-o2_abp-mode .video-label-box .video-label.video-category {
+ text-transform: capitalize;
+ display: block;
+ line-height: 18px;
+ margin-top: 10px;
+ font-family: 'Segoe UI', 'microsoft jhenghei';
+ }
+
+ .ab_thumbnails-o2_abp-mode .video-label-box .video-label.video-category dt {
+ font-weight: normal;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: none;
+ width: 100%;
+ background: transparent;
+ height: auto;
+ border-bottom: 1px solid black;
+ margin-bottom: 10px;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 39px;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .logoDiv a span {
+ display: inline;
+ color: #666666;
+ font-weight: normal;
+ font-size: 13.0px;
+ line-height: 18px;
+ font-family: Segoe UI, 'microsoft jhenghei';
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .videoCube a {
+ padding: 0;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .ab_thumbnails-o2_smaller-titles-ratio-6x5 .video-label-box {
+ height: 89px;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ word-wrap: normal;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .videoCube:hover .video-label-box .video-title,
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .videoCube:hover .video-label-box .video-title span {
+ text-decoration: underline;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .video-label-box .branding {
+ display: block;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .syndicatedItem .branding {
+ line-height: 18.0px;
+ margin-top: 5px;
+ vertical-align: middle;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .trc_header_left_column {
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: 39px;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ right: 0;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .videoCube .video-label-box .video-uploader {
+ display: block;
+ line-height: 20px;
+ margin-right: 5px;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .videoCube .video-label-box .video-uploader dt {
+ font-weight: normal;
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .video-label-box .video-label.video-category {
+ text-transform: capitalize;
+ display: block;
+ line-height: 18px;
+ margin-top: 5px;
+ font-family: Segoe UI, 'microsoft jhenghei';
+ }
+
+ .ab_thumbnails-o2_smaller-titles-ratio-6x5 .video-label-box .video-label.video-category dt {
+ font-weight: normal;
+ }
+
+ .organic-thumbnails-h img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .organic-thumbnails-h [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .organic-thumbnails-h .trc_rbox_div {
+ margin-bottom: 0;
+ background-color: #EFEFEF;
+ }
+
+ .organic-thumbnails-h .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: auto;
+ }
+
+ .organic-thumbnails-h .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: auto;
+ }
+
+ .organic-thumbnails-h .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: normal;
+ }
+
+ .organic-thumbnails-h .logoDiv a {
+ font-size: 100%;
+ }
+
+ .organic-thumbnails-h.trc-content-sponsored .trc_rbox_header,
+ .organic-thumbnails-h.trc-content-hybrid .trc_rbox_header {
+ padding: 0px 0px 23px 0px;
+ }
+
+ .organic-thumbnails-h.trc-content-sponsored .trc_rbox_header .trc_header_ext,
+ .organic-thumbnails-h.trc-content-hybrid .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ bottom: 5px;
+ right: 0px;
+ }
+
+ .trc-rtl .organic-thumbnails-h.trc-content-sponsored .trc_rbox_header .trc_header_ext,
+ .trc-rtl .organic-thumbnails-h.trc-content-hybrid .trc_rbox_header .trc_header_ext {
+ position: absolute !important;
+ bottom: 5px;
+ left: 0px;
+ }
+
+ .organic-thumbnails-h .logoDiv a span {
+ display: inline;
+ color: #666666;
+ font-weight: normal;
+ font-size: 13.0px;
+ line-height: 18px;
+ font-family: 'Segoe UI', 'microsoft jhenghei';
+ }
+
+ .organic-thumbnails-h .videoCube a {
+ padding: 0;
+ }
+
+ .organic-thumbnails-h .trc_rbox_outer .trc_rbox_div .videoCube {
+ margin-bottom: 20px;
+ }
+
+ .organic-thumbnails-h .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .organic-thumbnails-h .video-label-box {
+ height: 76.0px;
+ }
+
+ .organic-thumbnails-h .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin-bottom: 0;
+ height: 40.0px;
+ margin-bottom: 4px;
+ top: -.3rem;
+ word-wrap: normal;
+ }
+
+ .organic-thumbnails-h .videoCube:hover .video-label-box .video-title,
+ .organic-thumbnails-h .videoCube:hover .video-label-box .video-title span {
+ text-decoration: underline;
+ }
+
+ .organic-thumbnails-h .video-label-box .branding {
+ display: block;
+ }
+
+ .organic-thumbnails-h .syndicatedItem .branding {
+ line-height: 15.0px;
+ -webkit-line-clamp: 1 !important;
+ max-height: 15px;
+ position: relative;
+ overflow: hidden;
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ }
+
+ .organic-thumbnails-h .trc_header_left_column {
+ background: transparent;
+ height: auto;
+ }
+
+ .organic-thumbnails-h .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .organic-thumbnails-h .videoCube .video-label-box {
+ margin-top: 0px;
+ }
+
+ .organic-thumbnails-h .trc_rbox_header .trc_header_ext {
+ position: relative;
+ top: auto;
+ right: auto;
+ }
+
+ .organic-thumbnails-h .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 30.79%;
+ _width: 30.79%;
+ }
+
+ .trc_elastic .organic-thumbnails-h .trc_rbox_outer .videoCube:hover .thumbnail-overlay {
+ background-color: #000;
+ width: 100%;
+ height: 100%;
+ -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=20)';
+ filter: alpha(opacity=20);
+ -moz-opacity: 0.2;
+ -khtml-opacity: 0.2;
+ opacity: 0.2;
+ }
+
+ .trc_elastic .organic-thumbnails-h .thumbnail_start .thumbBlock_holder {
+ float: left;
+ margin-right: 12px;
+ }
+
+ .organic-thumbnails-h .videoCube .video-label-box .video-uploader {
+ display: block;
+ line-height: 16px;
+ font-family: 'Segoe UI', 'microsoft jhenghei';
+ vertical-align: middle;
+ }
+
+ .organic-thumbnails-h .videoCube .video-label-box .video-uploader dt {
+ display: block !important;
+ line-height: 16px;
+ max-height: 16px;
+ font-weight: normal;
+ }
+
+ .organic-thumbnails-h .videoCube .video-label-box .video-uploader .uploader-icon {
+ float: left;
+ height: 16px;
+ width: 16px;
+ margin-right: 5px;
+ }
+
+ .trc_related_container .organic-thumbnails-h .trc_rbox_outer .trc_rbox_div {
+ margin: 0px;
+ }
+
+ .organic-thumbnails-h .trc-widget-footer {
+ margin-top: 12px;
+ margin-bottom: 24px;
+ padding-bottom: 20px;
+ }
+
+ .organic-thumbnails-h .trc_rbox_outer .trc_rbox_div .videoCube_1_child .thumbBlock_holder {
+ width: 300px;
+ height: 174px;
+ float: none;
+ }
+
+ .organic-thumbnails-h .trc_rbox_outer .trc_rbox_div .videoCube_1_child {
+ float: left;
+ padding: 0px;
+ }
+
+ .organic-thumbnails-h .trc_rbox_div .videoCube_1_child .video-label-box {
+ margin-top: 16px;
+ margin-right: 20px;
+ margin-left: 20px;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.15);
+ box-sizing: border-box;
+ }
+
+ .organic-thumbnails-h .videoCube_1_child .video-label-box .video-title {
+ height: 86px;
+ font-size: 24.0px;
+ line-height: 28.0px;
+ font-weight: normal;
+ max-height: 96.0px;
+ font-family: 'Segoe UI Semilight', 'microsoft jhenghei';
+ color: #333333;
+ margin-bottom: 0px;
+ top: 0;
+ }
+
+ .organic-thumbnails-h .videoCube_1_child .video-label-box .branding {
+ line-height: 15.0px;
+ margin-bottom: 20px;
+ margin-top: 16px;
+ vertical-align: middle;
+ }
+
+ .organic-thumbnails-h .videoCube_1_child .video-label-box .video-uploader {
+ margin-top: 16px;
+ margin-bottom: 20px;
+ }
+
+ .organic-thumbnails-h .videoCube_1_child .video-label-box .video-label.video-category {
+ margin-top: 16px;
+ margin-bottom: 20px;
+ }
+
+ .organic-thumbnails-h .videoCube .video-label-box .video-label.video-category {
+ display: block;
+ line-height: 16px;
+ font-family: 'Segoe UI', 'microsoft jhenghei';
+ vertical-align: middle;
+ text-transform: capitalize;
+ }
+
+ .organic-thumbnails-h .videoCube .video-label-box .video-label.video-category dt {
+ display: block !important;
+ line-height: 16px;
+ max-height: 16px;
+ font-weight: normal;
+ }
+
+ .organic-thumbnails-h .videoCube .video-label-box .video-label.video-category .uploader-icon {
+ float: left;
+ height: 16px;
+ width: 16px;
+ margin-right: 5px;
+ }
+
+ .organic-thumbnails-h.trc-content-organic .trc-widget-footer,
+ .organic-thumbnails-h.trc-content-organic .trc_header_ext,
+ .organic-thumbnails-h.trc-content-organic .logoDiv {
+ display: none;
+ }
+
+ .trc-rtl.trc_elastic .organic-thumbnails-h .thumbnail_start .thumbBlock_holder {
+ float: right;
+ margin-left: 12px;
+ margin-right: 0px;
+ }
+
+ .trc-rtl .organic-thumbnails-h .trc_rbox_div .videoCube_1_child .thumbBlock_holder {
+ float: none;
+ margin-left: 0;
+ }
+
+ .thumbnails-a2 img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .thumbnails-a2 [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .thumbnails-a2 .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: auto;
+ border-bottom: 1px solid black;
+ margin-bottom: 10px;
+ }
+
+ .thumbnails-a2 .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 39px;
+ }
+
+ .thumbnails-a2 .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ }
+
+ .thumbnails-a2 .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-a2 .logoDiv a span {
+ display: inline;
+ color: #666666;
+ font-weight: normal;
+ font-size: 13.0px;
+ line-height: 18px;
+ font-family: 'Segoe UI', 'microsoft jhenghei';
+ }
+
+ .thumbnails-a2 .videoCube a {
+ padding: 0;
+ }
+
+ .thumbnails-a2 .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .thumbnails-a2 .video-label-box {
+ height: 106px;
+ }
+
+ .thumbnails-a2 .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .thumbnails-a2 .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ word-wrap: normal;
+ }
+
+ .thumbnails-a2 .videoCube:hover .video-label-box .video-title,
+ .thumbnails-a2 .videoCube:hover .video-label-box .video-title span {
+ text-decoration: underline;
+ }
+
+ .thumbnails-a2 .video-label-box .branding {
+ display: block;
+ }
+
+ .thumbnails-a2 .syndicatedItem .branding {
+ line-height: 18.0px;
+ margin-top: 10px;
+ vertical-align: middle;
+ }
+
+ .thumbnails-a2 .trc_header_left_column {
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: 39px;
+ }
+
+ .thumbnails-a2 .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-a2 .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ right: 0;
+ }
+
+ .thumbnails-a2 .videoCube .video-label-box .video-uploader {
+ display: block;
+ line-height: 18px;
+ margin-top: 10px;
+ font-family: 'Segoe UI', 'microsoft jhenghei';
+ }
+
+ .thumbnails-a2 .videoCube .video-label-box .video-uploader dt {
+ font-weight: normal;
+ }
+
+ .thumbnails-a2 .video-label-box .video-label.video-category {
+ text-transform: capitalize;
+ display: block;
+ line-height: 18px;
+ margin-top: 10px;
+ font-family: 'Segoe UI', 'microsoft jhenghei';
+ }
+
+ .thumbnails-a2 .video-label-box .video-label.video-category dt {
+ font-weight: normal;
+ }
+
+ .thumbnails-h img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .thumbnails-h [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .thumbnails-h .trc_rbox_div {
+ margin-bottom: 0;
+ background-color: #EFEFEF;
+ }
+
+ .thumbnails-h .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: auto;
+ }
+
+ .thumbnails-h .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: auto;
+ }
+
+ .thumbnails-h .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ line-height: normal;
+ }
+
+ .thumbnails-h .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-h .logoDiv a span {
+ display: inline;
+ color: #666666;
+ font-weight: normal;
+ font-size: 13.0px;
+ line-height: 18px;
+ font-family: 'Segoe UI', 'microsoft jhenghei';
+ }
+
+ .thumbnails-h .videoCube a {
+ padding: 0;
+ }
+
+ .thumbnails-h .trc_rbox_outer .trc_rbox_div .videoCube {
+ margin-bottom: 20px;
+ }
+
+ .thumbnails-h .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .thumbnails-h .video-label-box {
+ height: 76.0px;
+ }
+
+ .thumbnails-h .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin-bottom: 0;
+ height: 40.0px;
+ margin-bottom: 4px;
+ top: -.3rem;
+ word-wrap: normal;
+ }
+
+ .thumbnails-h .videoCube:hover .video-label-box .video-title,
+ .thumbnails-h .videoCube:hover .video-label-box .video-title span {
+ text-decoration: underline;
+ }
+
+ .thumbnails-h .video-label-box .branding {
+ display: block;
+ }
+
+ .thumbnails-h .syndicatedItem .branding {
+ line-height: 16.0px;
+ -webkit-line-clamp: 1 !important;
+ max-height: 16px;
+ position: relative;
+ overflow: hidden;
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ }
+
+ .thumbnails-h .trc_header_left_column {
+ background: transparent;
+ height: auto;
+ }
+
+ .thumbnails-h .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-h.trc-content-sponsored .trc_rbox_header,
+ .thumbnails-h.trc-content-hybrid .trc_rbox_header {
+ padding: 0px 0px 23px 0px;
+ }
+
+ .thumbnails-h.trc-content-sponsored .trc_rbox_header .trc_header_ext,
+ .thumbnails-h.trc-content-hybrid .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ bottom: 5px;
+ right: 0px;
+ }
+
+ .trc-rtl .thumbnails-h.trc-content-sponsored .trc_rbox_header .trc_header_ext,
+ .trc-rtl .thumbnails-h.trc-content-hybrid .trc_rbox_header .trc_header_ext {
+ position: absolute !important;
+ bottom: 5px;
+ left: 0px;
+ }
+
+ .thumbnails-h .videoCube .video-label-box {
+ margin-top: 0px;
+ }
+
+ .thumbnails-h .videoCube.thumbnail_start .thumbBlock_holder {
+ width: 30.79%;
+ _width: 30.79%;
+ }
+
+ .trc_elastic .thumbnails-h .trc_rbox_outer .videoCube:hover .thumbnail-overlay {
+ background-color: #000;
+ width: 100%;
+ height: 100%;
+ -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=20)';
+ filter: alpha(opacity=20);
+ -moz-opacity: 0.2;
+ -khtml-opacity: 0.2;
+ opacity: 0.2;
+ }
+
+ .trc_elastic .thumbnails-h .thumbnail_start .thumbBlock_holder {
+ float: left;
+ margin-right: 12px;
+ }
+
+ .trc_related_container .thumbnails-h .trc_rbox_outer .trc_rbox_div {
+ margin: 0px;
+ }
+
+ .thumbnails-h .trc-widget-footer {
+ margin-top: 12px;
+ margin-bottom: 24px;
+ padding-bottom: 20px;
+ }
+
+ .thumbnails-h .trc_rbox_outer .trc_rbox_div .videoCube_1_child .thumbBlock_holder {
+ width: 300px;
+ height: 174px;
+ float: none;
+ }
+
+ .thumbnails-h .trc_rbox_outer .trc_rbox_div .videoCube_1_child {
+ float: left;
+ padding: 0px;
+ }
+
+ .thumbnails-h .trc_rbox_div .videoCube_1_child .video-label-box {
+ margin-top: 16px;
+ margin-right: 20px;
+ margin-left: 20px;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.15);
+ box-sizing: border-box;
+ }
+
+ .thumbnails-h .videoCube_1_child .video-label-box .video-title {
+ height: 86px;
+ font-size: 24.0px;
+ line-height: 28.0px;
+ font-weight: normal;
+ max-height: 96.0px;
+ font-family: 'Segoe UI Semilight', 'microsoft jhenghei';
+ color: #333333;
+ margin-bottom: 0px;
+ top: 0;
+ }
+
+ .thumbnails-h .videoCube_1_child .video-label-box .branding {
+ line-height: 16.0px;
+ margin-bottom: 20px;
+ margin-top: 16px;
+ vertical-align: middle;
+ }
+
+ .thumbnails-h.trc-content-organic .trc-widget-footer,
+ .thumbnails-h.trc-content-organic .trc_header_ext,
+ .thumbnails-h.trc-content-organic .logoDiv {
+ display: none;
+ }
+
+ .trc-rtl.trc_elastic .thumbnails-h .thumbnail_start .thumbBlock_holder {
+ float: right;
+ margin-left: 12px;
+ margin-right: 0px;
+ }
+
+ .trc-rtl .thumbnails-h .trc_rbox_div .videoCube_1_child .thumbBlock_holder {
+ float: none !important;
+ margin-left: 0;
+ }
+
+ .thumbnails-h .videoCube_1_child .video-label-box .video-label.video-category {
+ margin-top: 16px;
+ margin-bottom: 20px;
+ }
+
+ .thumbnails-h .videoCube .video-label-box .video-label.video-category {
+ display: block;
+ line-height: 16px;
+ font-family: 'Segoe UI', 'microsoft jhenghei';
+ vertical-align: middle;
+ text-transform: capitalize;
+ }
+
+ .thumbnails-h .videoCube .video-label-box .video-label.video-category dt {
+ display: block !important;
+ line-height: 16px;
+ max-height: 16px;
+ font-weight: normal;
+ }
+
+ .thumbnails-h .videoCube .video-label-box .video-label.video-category .uploader-icon {
+ float: left;
+ height: 16px;
+ width: 16px;
+ margin-right: 5px;
+ }
+ /*TS-53549*/
+
+ .trc-rtl.trc_elastic .thumbnails-h div[data-item-syndicated='true'].videoCube.thumbnail_start.syndicatedItem .thumbBlock_holder {
+ float: left;
+ margin: 0 12px 0 0;
+ }
+
+ .trc-rtl.trc_elastic .thumbnails-h div[data-item-syndicated='true'].videoCube.thumbnail_start.tabNativeItem.thumbBlock_holder {
+ float: left;
+ margin: 0 0 0 12px;
+ }
+
+ .trc-rtl.trc_elastic .thumbnails-h div[data-item-syndicated='true'].videoCube.thumbnail_start.inNetworkItem .thumbBlock_holder {
+ float: left;
+ margin: 0 0 0 12px;
+ }
+
+ .thumbnails-k img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .thumbnails-k [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .thumbnails-k .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: auto;
+ border-bottom: 1px solid black;
+ margin-bottom: 10px;
+ }
+
+ .thumbnails-k .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 39px;
+ }
+
+ .thumbnails-k .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ }
+
+ .thumbnails-k .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-k .logoDiv a span {
+ display: inline;
+ color: #666666;
+ font-weight: normal;
+ font-size: 13.0px;
+ line-height: 18px;
+ font-family: 'Segoe UI', 'microsoft jhenghei';
+ }
+
+ .thumbnails-k .videoCube a {
+ padding: 0;
+ }
+
+ .thumbnails-k .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .thumbnails-k .video-label-box {
+ height: 78px;
+ }
+
+ .trc_elastic .thumbnails-k .videoCube {
+ margin-bottom: 0px;
+ }
+
+ .thumbnails-k .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .thumbnails-k .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ word-wrap: normal;
+ }
+
+ .thumbnails-k .videoCube:hover .video-label-box .video-title,
+ .thumbnails-k .videoCube:hover .video-label-box .video-title span {
+ text-decoration: underline;
+ }
+
+ .thumbnails-k .video-label-box .branding {
+ display: block;
+ }
+
+ .thumbnails-k .syndicatedItem .branding {
+ line-height: 18.0px;
+ max-height: 18.0px;
+ vertical-align: middle;
+ -ebkit-line-clamp: 1 !important;
+ position: relative;
+ overflow: hidden;
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ }
+
+ .thumbnails-k .trc_header_left_column {
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: 39px;
+ }
+
+ .thumbnails-k .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-k .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ right: 0;
+ }
+
+ .thumbnails-k .videoCube .video-label-box .video-uploader {
+ display: block;
+ line-height: 18px;
+ margin-top: 10px;
+ font-family: 'Segoe UI', 'microsoft jhenghei';
+ }
+
+ .thumbnails-k .videoCube .video-label-box .video-uploader dt {
+ font-weight: normal;
+ }
+
+ .thumbnails-k .video-label-box .video-label.video-category {
+ text-transform: capitalize;
+ display: block;
+ line-height: 18px;
+ margin-top: 10px;
+ font-family: 'Segoe UI', 'microsoft jhenghei';
+ }
+
+ .thumbnails-k .video-label-box .video-label.video-category dt {
+ font-weight: normal;
+ }
+
+ #taboola-above-article-thumbnails {
+ width: 700px;
+ margin: 0 auto;
+ }
+
+ #taboola-above-article-thumbnails .trc_rbox_container {
+ width: 70rem;
+ }
+
+ .thumbnails-o2 img {
+ max-width: none;
+ }
+ /* override bootstrap default span definitions */
+
+ .thumbnails-o2 [class*=span] {
+ float: none;
+ margin-left: 0;
+ }
+
+ .thumbnails-o2 .trc_rbox_header {
+ line-height: 1.2em;
+ position: relative;
+ display: none;
+ width: 100%;
+ background: transparent;
+ height: auto;
+ border-bottom: 1px solid black;
+ margin-bottom: 10px;
+ }
+
+ .thumbnails-o2 .trc_rbox_header_span .trc_header_right_column {
+ display: none;
+ background: transparent;
+ height: 39px;
+ }
+
+ .thumbnails-o2 .trc_rbox_header .logoDiv {
+ font-size: inherit;
+ }
+
+ .thumbnails-o2 .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-o2 .logoDiv a span {
+ display: inline;
+ color: #666666;
+ font-weight: normal;
+ font-size: 13.0px;
+ line-height: 18px;
+ font-family: Segoe UI, 'microsoft jhenghei';
+ }
+
+ .thumbnails-o2 .videoCube a {
+ padding: 0;
+ }
+
+ .thumbnails-o2 .thumbBlock {
+ margin: 0;
+ }
+
+ .trc_elastic .thumbnails-o2 .video-label-box {
+ height: 106px;
+ }
+
+ .thumbnails-o2 .videoCube .video-label-box {
+ margin-top: 5px;
+ }
+
+ .thumbnails-o2 .videoCube .video-label-box .video-title {
+ text-decoration: none;
+ margin: 0;
+ word-wrap: normal;
+ }
+
+ .thumbnails-o2 .videoCube:hover .video-label-box .video-title,
+ .thumbnails-o2 .videoCube:hover .video-label-box .video-title span {
+ text-decoration: underline;
+ }
+
+ .thumbnails-o2 .video-label-box .branding {
+ display: block;
+ }
+
+ .thumbnails-o2 .syndicatedItem .branding {
+ line-height: 18.0px;
+ margin-top: 10px;
+ vertical-align: middle;
+ }
+
+ .thumbnails-o2 .trc_header_left_column {
+ display: inline-block;
+ width: 100%;
+ background: transparent;
+ height: 39px;
+ }
+
+ .thumbnails-o2 .trc_rbox_header .logoDiv a {
+ font-size: 100%;
+ }
+
+ .thumbnails-o2 .trc_rbox_header .trc_header_ext {
+ position: absolute;
+ right: 0;
+ }
+
+ .thumbnails-o2 .videoCube .video-label-box .video-uploader {
+ display: block;
+ line-height: 20px;
+ margin-right: 5px;
+ }
+
+ .thumbnails-o2 .videoCube .video-label-box .video-uploader dt {
+ font-weight: normal;
+ }
+
+ .thumbnails-o2 .video-label-box .video-label.video-category {
+ text-transform: capitalize;
+ display: block;
+ line-height: 18px;
+ margin-top: 10px;
+ font-family: Segoe UI, 'microsoft jhenghei';
+ }
+
+ .thumbnails-o2 .video-label-box .video-label.video-category dt {
+ font-weight: normal;
+ }
+ </style>
+ <style type="text/css">
+ @media screen and (min-width: 0px) {
+ .trc_elastic_trc_83676 .trc_rbox_outer {
+ margin-left: -2.5%;
+ }
+ .trc_elastic_trc_83676 .videoCube_aspect {
+ padding-bottom: 83.33333333333334%;
+ width: 100%;
+ }
+ .trc_elastic_trc_83676 .videoCube {
+ width: 30.83%;
+ position: relative;
+ float: left;
+ margin: 0 0 2.5% 0;
+ margin-left: 2.5%;
+ }
+ .trc_elastic_trc_83676 div.videoCube:nth-of-type(-n+21) {
+ display: block;
+ visibility: visible;
+ }
+ .trc_elastic_trc_83676 div.videoCube:nth-of-type(n+22) {
+ display: none;
+ visibility: hidden;
+ }
+ }
+ </style>
+ <style type="text/css">
+ .trc_popover_aug_container {
+ position: static;
+ }
+
+ #tbl-aug-dyq7yc #tbl-aug-96en7x #tbl-aug-l40s1t .trc_popover {
+ position: absolute;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ line-height: 16px;
+ color: #000000;
+ cursor: default;
+ position: absolute;
+ top: 0;
+ right: 0;
+ z-index: 12000;
+ width: 180px;
+ padding: 1px;
+ text-align: left;
+ white-space: normal;
+ background-color: #ffffff;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ -webkit-border-radius: 6px;
+ -moz-border-radius: 6px;
+ border-radius: 6px;
+ -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+ -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+ box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+ -webkit-background-clip: padding-box;
+ -moz-background-clip: padding;
+ background-clip: padding-box;
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+ box-sizing: content-box;
+ }
+
+ #tbl-aug-dyq7yc #tbl-aug-96en7x #tbl-aug-l40s1t .trc_popover iframe {
+ width: 100%;
+ }
+
+ #tbl-aug-dyq7yc #tbl-aug-96en7x #tbl-aug-l40s1t .trc_popover .trc_popover_arrow,
+ .trc_popover .trc_popover_arrow:after {
+ position: absolute;
+ display: block;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+ }
+
+ #tbl-aug-dyq7yc #tbl-aug-96en7x #tbl-aug-l40s1t .trc_popover .trc_popover_arrow {
+ border-width: 11px;
+ }
+
+ #tbl-aug-dyq7yc #tbl-aug-96en7x #tbl-aug-l40s1t .trc_popover .trc_popover_arrow:after {
+ border-width: 10px;
+ content: "";
+ }
+
+ #tbl-aug-dyq7yc #tbl-aug-96en7x #tbl-aug-l40s1t .trc_popover.trc_bottom {
+ margin-top: 10px;
+ }
+
+ #tbl-aug-dyq7yc #tbl-aug-96en7x #tbl-aug-l40s1t .trc_popover.trc_bottom .trc_popover_arrow {
+ top: -11px;
+ right: 11px;
+ margin-left: -11px;
+ border-bottom-color: #999;
+ border-bottom-color: rgba(0, 0, 0, 0.25);
+ border-top-width: 0;
+ }
+
+ #tbl-aug-dyq7yc #tbl-aug-96en7x #tbl-aug-l40s1t .trc_popover.trc_bottom .trc_popover_arrow:after {
+ top: 1px;
+ margin-left: -10px;
+ border-bottom-color: #ffffff;
+ border-top-width: 0;
+ }
+
+ #tbl-aug-dyq7yc #tbl-aug-96en7x #tbl-aug-l40s1t .trc_popover_fade.trc_in {
+ visibility: visible;
+ opacity: 1;
+ filter: alpha(opacity=100);
+ transition-delay: 0s, 0s;
+ -moz-transition-delay: 0s, 0s;
+ -webkit-transition-delay: 0s, 0s;
+ -o-transition-delay: 0s, 0s;
+ -ms-transition-delay: 0s, 0s;
+ }
+
+ #tbl-aug-dyq7yc #tbl-aug-96en7x #tbl-aug-l40s1t .trc_popover_fade {
+ visibility: hidden;
+ opacity: 0;
+ filter: alpha(opacity=0);
+ transition: opacity 500ms 0s, visibility 0s 500ms;
+ -webkit-transition: opacity 500ms 0s, visibility 0s 500ms;
+ -moz-transition: opacity 500ms 0s, visibility 0s 500ms;
+ -o-transition: opacity 500ms 0s, visibility 0s 500ms;
+ -ms-transition: opacity 500ms 0s, visibility 0s 500ms;
+ }
+ </style>
+ <style type="text/css">
+ @media screen and (min-width: 0px) {
+ .trc_elastic_trc_97419 .trc_rbox_outer .videoCube .video-label-box {
+ height: auto;
+ }
+ .trc_elastic_trc_97419 .trc_rbox_outer .videoCube {
+ margin-bottom: 10px;
+ }
+ .trc_elastic_trc_97419 .trc_rbox_outer {
+ margin-left: -2%;
+ }
+ .trc_elastic_trc_97419 .videoCube_aspect {
+ padding-bottom: 75%;
+ width: 100%;
+ }
+ .trc_elastic_trc_97419 .videoCube {
+ width: 97.99%;
+ position: relative;
+ float: left;
+ margin: 0 0 2% 0;
+ margin-left: 2%;
+ }
+ .trc_elastic_trc_97419 div.videoCube:nth-of-type(-n+4) {
+ display: block;
+ visibility: visible;
+ }
+ .trc_elastic_trc_97419 div.videoCube:nth-of-type(n+5) {
+ display: none;
+ visibility: hidden;
+ }
+ }
+ </style>
+ <style type="text/css">
+ @media screen and (min-width: 0px) {
+ .trc_elastic_trc_77119 .trc_rbox_outer .videoCube .video-label-box {
+ height: auto;
+ }
+ .trc_elastic_trc_77119 .trc_rbox_outer .videoCube {
+ margin-bottom: 10px;
+ }
+ .trc_elastic_trc_77119 .trc_rbox_outer {
+ margin-left: -2%;
+ }
+ .trc_elastic_trc_77119 .videoCube_aspect {
+ padding-bottom: 75%;
+ width: 100%;
+ }
+ .trc_elastic_trc_77119 .videoCube {
+ width: 97.99%;
+ position: relative;
+ float: left;
+ margin: 0 0 2% 0;
+ margin-left: 2%;
+ }
+ .trc_elastic_trc_77119 div.videoCube:nth-of-type(-n+4) {
+ display: block;
+ visibility: visible;
+ }
+ .trc_elastic_trc_77119 div.videoCube:nth-of-type(n+5) {
+ display: none;
+ visibility: hidden;
+ }
+ }
+ </style>
+ <style type="text/css">
+ @media screen and (min-width: 0px) {
+ .trc_elastic_trc_97545 .trc_rbox_outer .videoCube .video-label-box {
+ height: auto;
+ }
+ .trc_elastic_trc_97545 .trc_rbox_outer .videoCube {
+ margin-bottom: 10px;
+ }
+ .trc_elastic_trc_97545 .trc_rbox_outer {
+ margin-left: -2%;
+ }
+ .trc_elastic_trc_97545 .videoCube_aspect {
+ padding-bottom: 75%;
+ width: 100%;
+ }
+ .trc_elastic_trc_97545 .videoCube {
+ width: 97.99%;
+ position: relative;
+ float: left;
+ margin: 0 0 2% 0;
+ margin-left: 2%;
+ }
+ .trc_elastic_trc_97545 div.videoCube:nth-of-type(-n+4) {
+ display: block;
+ visibility: visible;
+ }
+ .trc_elastic_trc_97545 div.videoCube:nth-of-type(n+5) {
+ display: none;
+ visibility: hidden;
+ }
+ }
+ </style>
+</head>
+
+<body class="ap content center-content gray tmx pc moz fltmuidflt9cf fltmuidflt14cf fltmuidflt50cf fltmuidflt301cf"><iframe marginwidth="0" marginheight="0" scrolling="no" id="_mN_beacons" style="display: none ! important;" frameborder="0" width="0" height="0"></iframe>
+
+ <script>
+ _timing.top = +new Date
+ </script>
+ <script>
+ require(["headData", "pageInstance", "mediator"], function(headData, pageInstance, mediator) {
+ var url = '//c.msn.com/c.gif?udc=true&amp;rid=09bc8b7b76484883a023f9b400b40653&amp;rnd=636148835780628490&amp;rf=&amp;tp=http%253A%252F%252Fwww.msn.com%252Fen-us%252Fnews%252Ftechnology%252Fnintendos-first-iphone-game-will-launch-in-december-for-dollar10%252Far-AAkm7Xj&amp;di=17930&amp;lng=en-us&amp;cv.product=prime&amp;pn=article&amp;activityId=09bc8b7b76484883a023f9b400b40653&amp;d.dgk=tmx.pc.moz&amp;d.imd=0';
+ if (headData & amp; & amp; headData.clientSettings & amp; & amp; headData.clientSettings.static_page) {
+ mediator.pub(pageInstance.eventName);
+ var rid = pageInstance.getActivityId();
+ url = url.replace(/([?&amp;]rid=)[^&amp;#]*/i, "$1" + rid);
+ }
+
+ var img = new Image();
+ img.onload = img.onerror = function() {
+ img.onload = img.onerror = null;
+ };
+ img.src = url;
+
+ });
+ </script>
+ <script>
+ /*&lt;![CDATA[*/
+ require(["track", "track.generic", "c.track.mobi"], function(t, g, o) {
+ t.extend({
+ "sitePage": {
+ "department": "newsscienceandtechnology",
+ "subDepartment": "",
+ "channel": "news",
+ "pageName": "article",
+ "autoRefresh": "0",
+ "requestId": "09bc8b7b76484883a023f9b400b40653",
+ "canvas": "Browser",
+ "vertical": "news",
+ "entityId": "AAkm7Xj",
+ "entityCollectionId": "",
+ "entitySrc": "ar",
+ "cvAuthor": "",
+ "d_dgk": "tmx.pc.moz",
+ "d_imd": "0",
+ "cvPartner": "Tech+Insider",
+ "cvPublcat": "Business+Insider+Inc",
+ "provid": "AAdD78Q",
+ "templ": "video:0;videocount:0;videopos:top;inlinerelated:0;UQualified:0;paginated:0;TaboolaMSN:0",
+ "pageIndex": "",
+ "pageTotalCount": "",
+ "isStaticPage": "False",
+ "pageVersion": "15",
+ "contentType": "unknown_use_metadata_to_set_the_content_type",
+ "isCorePV": "",
+ "chartBeatUID": "42635",
+ "chartBeatDomain": "msn.com",
+ "chartBeatBase": "http://static.chartbeat.com",
+ "otfURL": "//otf.msn.com/c.gif?",
+ "flightid": "muidflt9cf,muidflt14cf,muidflt50cf,muidflt301cf",
+ "exa": "muidflt9cf,muidflt14cf,muidflt50cf,muidflt301cf",
+ "cvProduct": "prime",
+ "pageId": "articlevnext",
+ "storeocid": "msn",
+ "pageUrl": "http%3A%2F%2Fwww.msn.com%2Fen-us%2Fnews%2Ftechnology%2Fnintendos-first-iphone-game-will-launch-in-december-for-dollar10%2Far-AAkm7Xj",
+ "device": "Unknown Unknown",
+ "domainId": "17930",
+ "propertyId": "",
+ "propertySpecifier": "",
+ "localeCode": "en-us"
+ },
+ "userStatic": {
+ "isSignedIn": "False",
+ "beginRequestTicks": "636148835780628490"
+ },
+ "spinTimeOut": 151,
+ "enableOOB": 1,
+ "oobWaitTime": 151
+ });
+ t.register(new g({
+ "base": "//c.msn.com/c.gif?",
+ "id": "ctag",
+ "disableOnAutoRefresh": "scorecard",
+ "isGeneratedEarly": 1,
+ "impr": {
+ "param": {
+ 'udc': 'true'
+ },
+ "paramMap": {
+ "event": {
+ 'evt': 'type'
+ },
+ "userDynamic": {
+ 'rid': 'requestId',
+ 'rnd': 'timeStamp'
+ },
+ "client": {
+ 'rf': 'referrer',
+ 'tp': 'pageUrl',
+ 'scr': 'screenResolution'
+ },
+ "sitePage": {
+ 'di': 'domainId',
+ 'lng': 'localeCode',
+ 'cv.product': 'cvProduct',
+ 'pn': 'pageName',
+ 'activityId': 'requestId',
+ 'd.dgk': 'd_dgk',
+ 'd.imd': 'd_imd'
+ }
+ }
+ }
+ }), new g({
+ "base": "http://b.scorecardresearch.com/b?",
+ "id": "scorecard",
+ "disableOnAutoRefresh": "scorecard",
+ "isGeneratedEarly": 0,
+ "impr": {
+ "param": {
+ 'c1': '2',
+ 'c2': '3000001'
+ },
+ "paramMap": {
+ "userDynamic": {
+ 'rn': 'timeStamp'
+ },
+ "client": {
+ 'c7': 'pageUrl',
+ 'c8': 'pageTitle',
+ 'c9': 'referrer'
+ }
+ }
+ },
+ "page_candidate": {
+ "paramMap": {
+ "event": {
+ 'evt': 'type'
+ },
+ "userDynamic": {
+ 'rn': 'timeStamp'
+ },
+ "client": {
+ 'c7': 'pageUrl',
+ 'c8': 'pageTitle',
+ 'c9': 'referrer'
+ }
+ }
+ }
+ }), new g({
+ "base": "//otf.msn.com/c.gif?",
+ "id": "udc",
+ "disableOnAutoRefresh": "scorecard",
+ "commonMap": {
+ "userDynamic": {
+ 'rid': 'requestId',
+ 'cts': 'timeStamp'
+ },
+ "client": {
+ 'clid': 'clientId'
+ },
+ "sitePage": {
+ 'di': 'domainId',
+ 'mkt': 'localeCode',
+ 'pn': 'pageName',
+ 'su': 'pageUrl',
+ 'pid': 'pageId',
+ 'mv': 'pageVersion',
+ 'cv.product': 'cvProduct',
+ 'flightid': 'flightid',
+ 'exa': 'exa',
+ 'activityId': 'requestId',
+ 'cvs': 'canvas',
+ 'subcvs': 'vertical'
+ }
+ },
+ "isGeneratedEarly": 0,
+ "impr": {
+ "param": {
+ 'evt': 'impr',
+ 'js': '1'
+ },
+ "paramMap": {
+ "userStatic": {
+ 'pp': 'isSignedIn'
+ },
+ "userDynamic": {
+ 'dv.snlogin': 'settings',
+ 'dv.grpfrmod': 'defaultSlotTrees'
+ },
+ "client": {
+ 'rf': 'referrer',
+ 'cu': 'pageUrl',
+ 'scr': 'screenResolution',
+ 'bh': 'height',
+ 'bw': 'width',
+ 'dv.Title1': 'pageTitle',
+ 'viewType': 'viewType',
+ 'e1': 'OTFTelemetry',
+ 'prs': 'personalization',
+ 'scp': 'sdcards'
+ },
+ "sitePage": {
+ 'st.dpt': 'department',
+ 'st.sdpt': 'subDepartment',
+ 'cv.partner': 'cvPartner',
+ 'cv.publcat': 'cvPublcat',
+ 'cv.author': 'cvAuthor',
+ 'CndEl': 'conditionalItem',
+ 'cv.entityId': 'entityId',
+ 'cv.entitySrc': 'entitySrc',
+ 'cv.parentId': 'entityCollectionId',
+ 'provid': 'provid',
+ 'ar': 'autoRefresh',
+ 'd.dgk': 'd_dgk',
+ 'd.imd': 'd_imd',
+ 'tmpl': 'templ',
+ 'isStaticPage': 'isStaticPage',
+ 'pgIdx': 'pageIndex',
+ 'pgTot': 'pageTotalCount'
+ },
+ "custom": {
+ 'pb': 'addCustomTags'
+ }
+ }
+ },
+ "click": {
+ "paramMap": {
+ "event": {
+ 'evt': 'type'
+ },
+ "userDynamic": {
+ 'aop': 'AOP',
+ 'region': 'Region',
+ 'slidetype': 'slideType',
+ 'eventIndex': 'eventNumber'
+ },
+ "client": {
+ 'gesture': 'gesture',
+ 'viewType': 'viewType'
+ },
+ "sitePage": {
+ 'cv.product': 'cvProduct'
+ },
+ "report": {
+ 'ce': 'contentElement',
+ 'cm': 'contentModule',
+ 'hl': 'headline',
+ 'du': 'destinationUrl',
+ 'e1': 'module',
+ 'l': 'nLineage',
+ 'lo': 'oLineage',
+ 'TTI': 'timeToInteract'
+ }
+ }
+ },
+ "page_candidate": {
+ "paramMap": {
+ "event": {
+ 'evt': 'type'
+ }
+ }
+ },
+ "unload": {
+ "paramMap": {
+ "event": {
+ 'evt': 'type'
+ },
+ "client": {
+ 'frd': 'frameData',
+ 'wbh': 'wasBrowserHiddenAtLeastOnce'
+ }
+ }
+ },
+ "app_error": {
+ "paramMap": {
+ "event": {
+ 'evt': 'type'
+ },
+ "report": {
+ 'errId': 'errId',
+ 'errMsg': 'errMsg',
+ 'errSource': 'errSource'
+ }
+ }
+ }
+ }));
+ t.trackPage();
+ })
+ //]]&gt;
+ </script>
+ <noscript>
+ &lt;img src="//c.msn.com/c.gif?udc=true&amp;amp;rid=09bc8b7b76484883a023f9b400b40653&amp;amp;rnd=636148835780628490&amp;amp;rf=&amp;amp;tp=http%253A%252F%252Fwww.msn.com%252Fen-us%252Fnews%252Ftechnology%252Fnintendos-first-iphone-game-will-launch-in-december-for-dollar10%252Far-AAkm7Xj&amp;amp;di=17930&amp;amp;lng=en-us&amp;amp;cv.product=prime&amp;amp;pn=article&amp;amp;activityId=09bc8b7b76484883a023f9b400b40653&amp;amp;d.dgk=tmx.pc.moz&amp;amp;d.imd=0" alt="image beacon" width="1" height="1" /&gt;&lt;img src="http://b.scorecardresearch.com/p?c1=2&amp;amp;c2=3000001&amp;amp;rn=636148835780628490&amp;amp;c7=http%253A%252F%252Fwww.msn.com%252Fen-us%252Fnews%252Ftechnology%252Fnintendos-first-iphone-game-will-launch-in-december-for-dollar10%252Far-AAkm7Xj&amp;amp;c8=&amp;amp;c9=" alt="image beacon" width="1" height="1" /&gt;&lt;img src="//otf.msn.com/c.gif?js=0&amp;amp;evt=impr&amp;amp;di=17930&amp;amp;pi=&amp;amp;ps=&amp;amp;su=http%253A%252F%252Fwww.msn.com%252Fen-us%252Fnews%252Ftechnology%252Fnintendos-first-iphone-game-will-launch-in-december-for-dollar10%252Far-AAkm7Xj&amp;amp;pageid=articlevnext&amp;amp;mkt=en-us&amp;amp;pn=article&amp;amp;mv=15&amp;amp;pp=False&amp;amp;cv.product=prime&amp;amp;cv.partner=Tech%2BInsider&amp;amp;cv.publcat=Business%2BInsider%2BInc&amp;amp;st.dpt=newsscienceandtechnology&amp;amp;st.sdpt=&amp;amp;dv.Title1=&amp;amp;cts=636148835780628490&amp;amp;rf=&amp;amp;rid=09bc8b7b76484883a023f9b400b40653&amp;amp;cvs=Browser&amp;amp;subcvs=news&amp;amp;cv.entityId=AAkm7Xj&amp;amp;cv.entitySrc=ar&amp;amp;provid=AAdD78Q&amp;amp;ar=0&amp;amp;d.dgk=tmx.pc.moz&amp;amp;d.imd=0&amp;amp;cv.parentId=&amp;amp;isCorePV=&amp;amp;pgIdx=&amp;amp;pgTot=&amp;amp;activityId=09bc8b7b76484883a023f9b400b40653" alt="image beacon" width="1" height="1" /&gt;
+</noscript>
+
+ <div class="head">
+
+
+
+ <header id="header-common" role="banner" data-region="header" data-id="1" data-m="{&quot;i&quot;:1,&quot;n&quot;:&quot;header&quot;,&quot;y&quot;:6}">
+
+
+
+
+ <h1>
+ <a class="logo" aria-label="msn" href="/en-us" data-id="2" data-m="{&quot;i&quot;:2,&quot;p&quot;:1,&quot;n&quot;:&quot;msnlogo&quot;,&quot;y&quot;:14,&quot;l&quot;:&quot;homepage&quot;,&quot;o&quot;:1}" tabindex="2">msn <span class="logohover">back to msn home</span>
+</a>
+ <a class="vertical" href="/en-us/news/#tevt=click_nonnav" data-id="3" data-m="{&quot;i&quot;:3,&quot;p&quot;:1,&quot;n&quot;:&quot;HeaderVerticalLink&quot;,&quot;y&quot;:14,&quot;l&quot;:&quot;news&quot;,&quot;o&quot;:2}" tabindex="2">news</a>
+
+ </h1>
+ <ul>
+ <li>
+
+ <section id="header-search" role="search" data-aop="search" data-id="4" data-m="{&quot;i&quot;:4,&quot;p&quot;:1,&quot;n&quot;:&quot;headersearch&quot;,&quot;y&quot;:9,&quot;o&quot;:3}">
+ <form action="https://www.bing.com/search?scope=web" method="get" id="srchfrm" target="_blank" data-customformtrack="true" data-form-code="PRNWSB" data-shfc="PRNWSH" data-bing-action-uri="https://www.bing.com/search?scope=web">
+
+
+ <button id="sb_form_go" class="text" title="web search">web search</button>
+
+ <button type="button" name="bingSearch" class="image" title="web search"></button>
+
+ <div class="qc">
+ <input id="q" name="q" accesskey="S" autocomplete="off" value="" maxlength="250" aria-label="Search:" data-id="5" data-m="{&quot;i&quot;:5,&quot;p&quot;:4,&quot;n&quot;:&quot;searchinput&quot;,&quot;y&quot;:9,&quot;o&quot;:1}" type="search" />
+
+ </div>
+ <input name="form" value="PRNWSB" data-id="6" data-m="{&quot;i&quot;:6,&quot;p&quot;:4,&quot;n&quot;:&quot;search_formcode&quot;,&quot;y&quot;:9,&quot;l&quot;:&quot;PRNWSB&quot;,&quot;o&quot;:2}" type="hidden" />
+ <input name="mkt" value="en-us" data-id="7" data-m="{&quot;i&quot;:7,&quot;p&quot;:4,&quot;n&quot;:&quot;search_locale&quot;,&quot;y&quot;:9,&quot;l&quot;:&quot;en-us&quot;,&quot;o&quot;:3}" type="hidden" />
+ <input name="httpsmsn" value="1" type="hidden" />
+
+ <input name="refig" value="09bc8b7b76484883a023f9b400b40653" type="hidden" />
+
+ <div id="sw_as" style="display: block;">
+ <div class="sa_as">
+ <div class="sw_b3">
+ <ul class="sa_drw"></ul>
+ <div class="sa_om" style="display: none;">
+ <ul>
+ <li><a href="http://onlinehelp.microsoft.com/en-us/bing/ff808490.aspx">What's this?</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ </form>
+ <ul id="opensh"></ul>
+ <button type="button" title="web search" id="sb"></button>
+
+ </section>
+ </li>
+ <li>
+ <ul id="user-profile" data-sso-dependent="true" data-module-id="articlevnext||header|header-signin|signin" data-dhp_cookie_days="0" data-id="8" data-m="{&quot;i&quot;:8,&quot;p&quot;:1,&quot;n&quot;:&quot;header-signin&quot;,&quot;t&quot;:&quot;signin&quot;,&quot;o&quot;:4}">
+
+ <li id="sign-in">
+ <div id="meCtrl" data-sign-in-url="https://login.live.com/login.srf?wa=wsignin1.0&amp;rpsnv=13&amp;ct=1479286777&amp;rver=6.7.6643.0&amp;wp=LBI&amp;wreply=https:%2f%2fwww.msn.com%2fen-us%2fnews%2fSecure%2fPassport%3fru%3dhttp%253a%252f%252fwww.msn.com%252fen-us%252fnews%252ftechnology%252fnintendos-first-iphone-game-will-launch-in-december-for-dollar10%252far-AAkm7Xj%253fpfr%253d1&amp;lc=1033&amp;id=1184&amp;mkt=en-us&amp;pcexp=True" data-sign-out-url="https://login.live.com/logout.srf?ct=1479286778&amp;rver=6.7.6643.0&amp;lc=1033&amp;id=1184&amp;lru=https:%2f%2fwww.msn.com%2fen-us%2fnews%2fSecure%2fPassport%3fru%3dhttp%253a%252f%252fwww.msn.com%252fen-us%252fnews%252ftechnology%252fnintendos-first-iphone-game-will-launch-in-december-for-dollar10%252far-AAkm7Xj&amp;mkt=en-us&amp;pcexp=True" data-me-url="https://login.live.com/me.srf?wa=wsignin1.0&amp;rpsnv=13&amp;ct=1479286777&amp;rver=6.7.6643.0&amp;wp=LBI&amp;wreply=https:%2F%2Fwww.msn.com%2Fen-us%2Fnews%2FSecure%2FPassport%3Fru%3Dhttp%253a%252f%252fwww.msn.com%252fen-us%252fnews%252ftechnology%252fnintendos-first-iphone-game-will-launch-in-december-for-dollar10%252far-AAkm7Xj%253fpfr%253d1&amp;lc=1033&amp;id=1184&amp;mkt=en-us">
+ <a href="https://login.live.com/login.srf?wa=wsignin1.0&amp;rpsnv=13&amp;ct=1479286777&amp;rver=6.7.6643.0&amp;wp=LBI&amp;wreply=https:%2f%2fwww.msn.com%2fen-us%2fnews%2fSecure%2fPassport%3fru%3dhttp%253a%252f%252fwww.msn.com%252fen-us%252fnews%252ftechnology%252fnintendos-first-iphone-game-will-launch-in-december-for-dollar10%252far-AAkm7Xj%253fpfr%253d1&amp;lc=1033&amp;id=1184&amp;mkt=en-us&amp;pcexp=True" title="Sign in" data-id="9" data-m="{&quot;i&quot;:9,&quot;p&quot;:8,&quot;n&quot;:&quot;SignInNavigation&quot;,&quot;y&quot;:14,&quot;o&quot;:1}">
+ <span class="mectrlname mectrlsignin">Sign in</span>
+ </a>
+ </div>
+ <script>
+ require(["refreshSigninModule", "c.sso"], function(r) {
+ r()
+ })
+ </script>
+ </li>
+ <li id="settings">
+ <a href="#temp" data-id="10" data-m="{&quot;i&quot;:10,&quot;p&quot;:8,&quot;n&quot;:&quot;settings&quot;,&quot;y&quot;:14,&quot;o&quot;:2}" alt="settings"></a>
+ <ul role="menu" aria-hidden="true">
+
+ <li>
+ <label>Change language &amp; content:</label>
+ <select id="site-market" data-id="11" data-m="{&quot;i&quot;:11,&quot;p&quot;:8,&quot;n&quot;:&quot;changemarket&quot;,&quot;y&quot;:14,&quot;o&quot;:3}">
+ <option data-mkt="es-xl" data-mkt-url="//www.msn.com/es-xl/noticias">América Latina (español)</option>
+ <option data-mkt="es-ar" data-mkt-url="//www.msn.com/es-ar/noticias">Argentina (español)</option>
+ <option data-mkt="en-au" data-mkt-url="//www.msn.com/en-au/news">Australia (English)</option>
+ <option data-mkt="nl-be" data-mkt-url="//www.msn.com/nl-be/nieuws">België (Nederlands)</option>
+ <option data-mkt="fr-be" data-mkt-url="//www.msn.com/fr-be/actualite">Belgique (français)</option>
+ <option data-mkt="pt-br" data-mkt-url="//www.msn.com/pt-br/noticias">Brasil (português)</option>
+ <option data-mkt="en-ca" data-mkt-url="//www.msn.com/en-ca/news">Canada (English)</option>
+ <option data-mkt="fr-ca" data-mkt-url="//www.msn.com/fr-ca/actualites">Canada (français)</option>
+ <option data-mkt="es-cl" data-mkt-url="//www.msn.com/es-cl/noticias">Chile (español)</option>
+ <option data-mkt="es-co" data-mkt-url="//www.msn.com/es-co/noticias">Colombia (español)</option>
+ <option data-mkt="da-dk" data-mkt-url="//www.msn.com/da-dk/nyheder">Danmark (Dansk)</option>
+ <option data-mkt="de-de" data-mkt-url="//www.msn.com/de-de/nachrichten">Deutschland (Deutsch)</option>
+ <option data-mkt="es-es" data-mkt-url="//www.msn.com/es-es/noticias">España (español)</option>
+ <option data-mkt="fr-fr" data-mkt-url="//www.msn.com/fr-fr/actualite">France (français)</option>
+ <option data-mkt="en-in" data-mkt-url="//www.msn.com/en-in/news">India (English)</option>
+ <option data-mkt="id-id" data-mkt-url="//u.msn.com/id-id/berita">Indonesia (Bahasa Indonesia)</option>
+ <option data-mkt="en-ie" data-mkt-url="//www.msn.com/en-ie/news">Ireland (English)</option>
+ <option data-mkt="it-it" data-mkt-url="//www.msn.com/it-it/notizie">Italia (italiano)</option>
+ <option data-mkt="en-my" data-mkt-url="//www.msn.com/en-my/news">Malaysia (English)</option>
+ <option data-mkt="es-mx" data-mkt-url="//prodigy.msn.com/es-mx/noticias">México (español)</option>
+ <option data-mkt="nl-nl" data-mkt-url="//www.msn.com/nl-nl/nieuws">Nederland (Nederlands)</option>
+ <option data-mkt="en-nz" data-mkt-url="//www.msn.com/en-nz/news">New Zealand (English)</option>
+ <option data-mkt="nb-no" data-mkt-url="//www.msn.com/nb-no/nyheter">Norge (norsk, bokmål)</option>
+ <option data-mkt="de-at" data-mkt-url="//www.msn.com/de-at/nachrichten">Österreich (Deutsch)</option>
+ <option data-mkt="es-pe" data-mkt-url="//www.msn.com/es-pe/noticias">Perú (español)</option>
+ <option data-mkt="en-ph" data-mkt-url="//www.msn.com/en-ph/news">Philippines (English)</option>
+ <option data-mkt="pl-pl" data-mkt-url="//www.msn.com/pl-pl/wiadomosci">Polska (polski)</option>
+ <option data-mkt="pt-pt" data-mkt-url="//www.msn.com/pt-pt/noticias">Portugal (Português)</option>
+ <option data-mkt="de-ch" data-mkt-url="//www.msn.com/de-ch/nachrichten">Schweiz (Deutsch)</option>
+ <option data-mkt="en-sg" data-mkt-url="//www.msn.com/en-sg/news">Singapore (English)</option>
+ <option data-mkt="en-za" data-mkt-url="//www.msn.com/en-za/news">South Africa (English)</option>
+ <option data-mkt="fr-ch" data-mkt-url="//www.msn.com/fr-ch/actualite">Suisse (français)</option>
+ <option data-mkt="fi-fi" data-mkt-url="//www.msn.com/fi-fi/uutiset">Suomi (suomi)</option>
+ <option data-mkt="sv-se" data-mkt-url="//www.msn.com/sv-se/nyheter">Sverige (svenska)</option>
+ <option data-mkt="tr-tr" data-mkt-url="//www.msn.com/tr-tr/haber">Türkiye (Türkçe)</option>
+ <option data-mkt="en-ae" data-mkt-url="//www.msn.com/en-ae/news">United Arab Emirates (English)</option>
+ <option data-mkt="en-gb" data-mkt-url="//www.msn.com/en-gb/news">United Kingdom (English)</option>
+ <option data-mkt="en-us" data-mkt-url="//www.msn.com/en-us/news" selected="selected">United States (English)</option>
+ <option data-mkt="es-us" data-mkt-url="//www.msn.com/es-us/noticias">United States (español)</option>
+ <option data-mkt="es-ve" data-mkt-url="//www.msn.com/es-ve/noticias">Venezuela (español)</option>
+ <option data-mkt="vi-vn" data-mkt-url="//www.msn.com/vi-vn/news">Việt Nam (Tiếng Việt)</option>
+ <option data-mkt="el-gr" data-mkt-url="//www.msn.com/el-gr/news">Ελλάδα (ελληνικά)</option>
+ <option data-mkt="ru-ru" data-mkt-url="//www.msn.com/ru-ru/news">Россия (Pусский)</option>
+ <option data-mkt="he-il" data-mkt-url="//www.msn.com/he-il/news">ישראל (עברית)‏</option>
+ <option data-mkt="ar-ae" data-mkt-url="//www.msn.com/ar-ae/news">الإمارات العربية المتحدة (العربية‏)</option>
+ <option data-mkt="ar-sa" data-mkt-url="//www.msn.com/ar-sa/news">المملكة العربية السعودية (العربية‏)</option>
+ <option data-mkt="ar-eg" data-mkt-url="//www.msn.com/ar-eg/news">مصر (العربية‏)</option>
+ <option data-mkt="th-th" data-mkt-url="//www.msn.com/th-th/news">ไทย (ไทย)</option>
+ <option data-mkt="ko-kr" data-mkt-url="//www.msn.com/ko-kr/news">한국 (한국어)</option>
+ <option data-mkt="zh-cn" data-mkt-url="//cn.msn.com/news">中华人民共和国 (简体中文)</option>
+ <option data-mkt="zh-tw" data-mkt-url="//www.msn.com/zh-tw/news">台灣 (繁體中文)</option>
+ <option data-mkt="ja-jp" data-mkt-url="//www.msn.com/ja-jp/news">日本 (日本語)</option>
+ <option data-mkt="zh-hk" data-mkt-url="//www.msn.com/zh-hk/news">香港特别行政區 (繁體中文)</option>
+ </select>
+ </li>
+
+ <li class="marketswitch" data-mkt="es-us" data-mkt-url="//www.msn.com/es-us/noticias" data-id="12" data-m="{&quot;i&quot;:12,&quot;p&quot;:8,&quot;n&quot;:&quot;marketswitch&quot;,&quot;y&quot;:14,&quot;o&quot;:4}">
+ <button>Switch to Latino</button>
+ </li>
+
+
+
+
+
+ <li class="feedback">
+
+ <a href="#" id="usermenu-feedback" data-id="13" data-m="{&quot;i&quot;:13,&quot;p&quot;:8,&quot;n&quot;:&quot;feedback&quot;,&quot;y&quot;:14,&quot;o&quot;:5}">
+ Feedback
+</a>
+ </li>
+ <li>
+ <a target="_blank" href="https://support.microsoft.com/product/msn/msn" data-id="14" data-m="{&quot;i&quot;:14,&quot;p&quot;:8,&quot;n&quot;:&quot;helpLink&quot;,&quot;y&quot;:14,&quot;l&quot;:&quot;homepage&quot;,&quot;o&quot;:6}">Help</a>
+ </li>
+ </ul>
+
+ </li>
+
+ </ul>
+
+
+
+
+
+ </li>
+ </ul>
+
+ </header>
+ <div class="search-overlay" data-aop="search-overlay"></div>
+ <nav id="nav" role="navigation" data-region="megamenu_nav" data-id="15" data-m="{&quot;i&quot;:15,&quot;n&quot;:&quot;megamenu_nav&quot;,&quot;y&quot;:14}">
+ <div class="navinner">
+
+ <button type="button" data-aop="left-flipper"></button>
+ <ul class="supernav" role="menubar" aria-label="Site Navigation" data-aop="lastcolumn">
+ <li role="presentation" data-category-key="" data-id="16" data-m="{&quot;i&quot;:16,&quot;p&quot;:15,&quot;n&quot;:&quot;news&quot;,&quot;y&quot;:14,&quot;l&quot;:&quot;news&quot;,&quot;o&quot;:1}" data-width="61">
+ <a data-link-type="category" href="/en-us/news">
+ Headlines
+ </a>
+ </li>
+ <li role="presentation" data-category-key="" data-id="17" data-m="{&quot;i&quot;:17,&quot;p&quot;:15,&quot;n&quot;:&quot;newsus&quot;,&quot;y&quot;:14,&quot;l&quot;:&quot;newsus&quot;,&quot;o&quot;:2}" data-width="39.5167">
+ <a data-link-type="category" href="/en-us/news/us">
+ US
+ </a>
+ </li>
+ <li role="presentation" data-category-key="" data-id="18" data-m="{&quot;i&quot;:18,&quot;p&quot;:15,&quot;n&quot;:&quot;newsworld&quot;,&quot;y&quot;:14,&quot;l&quot;:&quot;newsworld&quot;,&quot;o&quot;:3}" data-width="60.5167">
+ <a data-link-type="category" href="/en-us/news/world">
+ World
+ </a>
+ </li>
+ <li role="presentation" data-category-key="" data-id="19" data-m="{&quot;i&quot;:19,&quot;p&quot;:15,&quot;n&quot;:&quot;newscrime&quot;,&quot;y&quot;:14,&quot;l&quot;:&quot;newscrime&quot;,&quot;o&quot;:4}" data-width="59.5167">
+ <a data-link-type="category" href="/en-us/news/crime">
+ Crime
+ </a>
+ </li>
+ <li role="presentation" data-category-key="" data-id="20" data-m="{&quot;i&quot;:20,&quot;p&quot;:15,&quot;n&quot;:&quot;Election 2016&quot;,&quot;y&quot;:14,&quot;l&quot;:&quot;Election 2016&quot;,&quot;o&quot;:5}" data-width="105.5167">
+ <a data-link-type="category" href="/en-us/news/politics">
+ Election 2016
+ </a>
+ </li>
+ <li role="presentation" data-category-key="" data-id="21" data-m="{&quot;i&quot;:21,&quot;p&quot;:15,&quot;n&quot;:&quot;newsopinion&quot;,&quot;y&quot;:14,&quot;l&quot;:&quot;newsopinion&quot;,&quot;o&quot;:6}" data-width="72.5167">
+ <a data-link-type="category" href="/en-us/news/opinion">
+ Opinion
+ </a>
+ </li>
+ <li role="presentation" data-category-key="" data-id="22" data-m="{&quot;i&quot;:22,&quot;p&quot;:15,&quot;n&quot;:&quot;newslocal&quot;,&quot;y&quot;:14,&quot;l&quot;:&quot;newslocal&quot;,&quot;o&quot;:7}" data-width="54.5167">
+ <a data-link-type="category" href="/en-us/news/local">
+ Local
+ </a>
+ </li>
+ <li class="current" role="presentation" data-category-key="" data-id="23" data-m="{&quot;i&quot;:23,&quot;p&quot;:15,&quot;n&quot;:&quot;newsscienceandtechnology&quot;,&quot;y&quot;:14,&quot;l&quot;:&quot;newsscienceandtechnology&quot;,&quot;o&quot;:8}" data-width="93.5167">
+ <a data-link-type="category" href="/en-us/news/technology">
+ Technology
+ </a>
+ </li>
+ <li role="presentation" data-category-key="" data-id="24" data-m="{&quot;i&quot;:24,&quot;p&quot;:15,&quot;n&quot;:&quot;newsoffbeat&quot;,&quot;y&quot;:14,&quot;l&quot;:&quot;newsoffbeat&quot;,&quot;o&quot;:9}" data-width="69.5167">
+ <a data-link-type="category" href="/en-us/news/offbeat">
+ Offbeat
+ </a>
+ </li>
+ <li role="presentation" data-category-key="" data-id="25" data-m="{&quot;i&quot;:25,&quot;p&quot;:15,&quot;n&quot;:&quot;Live Coverage&quot;,&quot;y&quot;:14,&quot;l&quot;:&quot;Live Coverage&quot;,&quot;o&quot;:10}" data-width="109.5167">
+ <a data-link-type="category" href="/en-us/news/livecoverage/breaking-news-now/lc-BBqgBkP">
+ Live Coverage
+ </a>
+ </li>
+ <li role="presentation" data-category-key="" data-id="26" data-m="{&quot;i&quot;:26,&quot;p&quot;:15,&quot;n&quot;:&quot;newsvideos&quot;,&quot;y&quot;:14,&quot;l&quot;:&quot;newsvideos&quot;,&quot;o&quot;:11}" data-width="58.5167">
+ <a data-link-type="category" href="/en-us/news/video">
+ Video
+ </a>
+ </li>
+ </ul>
+ <ul class="mylink" role="menubar" aria-label="Site Navigation" data-aop="lastcolumn">
+ <li role="menuitem" data-id="27" data-m="{&quot;i&quot;:27,&quot;p&quot;:15,&quot;n&quot;:&quot;newstopics&quot;,&quot;y&quot;:14,&quot;l&quot;:&quot;newstopics&quot;,&quot;o&quot;:12}" data-width="63">
+ <a data-link-type="category" href="/en-us/news/topics">My Topics</a>
+ </li>
+ </ul>
+ <button type="button" data-aop="right-flipper"></button>
+
+ </div>
+ </nav>
+
+
+
+
+ </div>
+
+ <nav class="megamenu" data-region="megamenu_nav" data-id="28" data-m="{&quot;i&quot;:28,&quot;n&quot;:&quot;megamenu_nav&quot;,&quot;y&quot;:14}">
+ <div class="start">
+ <ul role="menubar" aria-label="Site Navigation">
+ <li class="homepage" role="menuitem" data-id="29" data-m="{&quot;i&quot;:29,&quot;n&quot;:&quot;homepage&quot;,&quot;y&quot;:14,&quot;l&quot;:&quot;homepage&quot;}">
+ <a href="/en-us" tabindex="2">Home</a>
+ </li>
+ <li class="news" role="menuitem" data-id="30" data-m="{&quot;i&quot;:30,&quot;n&quot;:&quot;news&quot;,&quot;y&quot;:14,&quot;l&quot;:&quot;news&quot;}">
+ <a href="/en-us/news" tabindex="2">News</a>
+ </li>
+ <li class="weather" role="menuitem" data-id="31" data-m="{&quot;i&quot;:31,&quot;n&quot;:&quot;weather&quot;,&quot;y&quot;:14,&quot;l&quot;:&quot;weather&quot;}">
+ <a href="/en-us/weather" tabindex="2">Weather</a>
+ </li>
+ <li class="entertainment" role="menuitem" data-id="32" data-m="{&quot;i&quot;:32,&quot;n&quot;:&quot;entertainment&quot;,&quot;y&quot;:14,&quot;l&quot;:&quot;entertainment&quot;}">
+ <a href="/en-us/entertainment" tabindex="2">Entertainment</a>
+ </li>
+ <li class="sports" role="menuitem" data-id="33" data-m="{&quot;i&quot;:33,&quot;n&quot;:&quot;sports&quot;,&quot;y&quot;:14,&quot;l&quot;:&quot;sports&quot;}">
+ <a href="/en-us/sports" tabindex="2">Sports</a>
+ </li>
+ <li class="finance" role="menuitem" data-id="34" data-m="{&quot;i&quot;:34,&quot;n&quot;:&quot;finance&quot;,&quot;y&quot;:14,&quot;l&quot;:&quot;finance&quot;}">
+ <a href="/en-us/money" tabindex="2">Money</a>
+ </li>
+ </ul>
+
+ <ul role="menubar" aria-label="Site Navigation">
+ <li class="lifestyle" role="menuitem" data-id="35" data-m="{&quot;i&quot;:35,&quot;n&quot;:&quot;lifestyle&quot;,&quot;y&quot;:14,&quot;l&quot;:&quot;lifestyle&quot;}">
+ <a href="/en-us/lifestyle" tabindex="2">Lifestyle</a>
+ </li>
+ <li class="health" role="menuitem" data-id="36" data-m="{&quot;i&quot;:36,&quot;n&quot;:&quot;health&quot;,&quot;y&quot;:14,&quot;l&quot;:&quot;health&quot;}">
+ <a href="/en-us/health" tabindex="2">Health &amp; Fitness</a>
+ </li>
+ <li class="foodanddrink" role="menuitem" data-id="37" data-m="{&quot;i&quot;:37,&quot;n&quot;:&quot;foodanddrink&quot;,&quot;y&quot;:14,&quot;l&quot;:&quot;foodanddrink&quot;}">
+ <a href="/en-us/foodanddrink" tabindex="2">Food &amp; Drink</a>
+ </li>
+ <li class="travel" role="menuitem" data-id="38" data-m="{&quot;i&quot;:38,&quot;n&quot;:&quot;travel&quot;,&quot;y&quot;:14,&quot;l&quot;:&quot;travel&quot;}">
+ <a href="/en-us/travel" tabindex="2">Travel</a>
+ </li>
+ <li class="autos" role="menuitem" data-id="39" data-m="{&quot;i&quot;:39,&quot;n&quot;:&quot;autos&quot;,&quot;y&quot;:14,&quot;l&quot;:&quot;autos&quot;}">
+ <a href="/en-us/autos" tabindex="2">Autos</a>
+ </li>
+ <li class="video" role="menuitem" data-id="40" data-m="{&quot;i&quot;:40,&quot;n&quot;:&quot;video&quot;,&quot;y&quot;:14,&quot;l&quot;:&quot;video&quot;}">
+ <a href="/en-us/video" tabindex="2">Video</a>
+ </li>
+ </ul>
+
+ </div>
+ <div>
+
+
+ <div class="list7lines">
+ <h2>News Sections</h2>
+ <ul role="menubar">
+ <li role="menuitem">
+ <a href="/en-us/news/us" tabindex="2">US</a>
+ </li>
+ <li role="menuitem">
+ <a href="/en-us/news/world" tabindex="2">World</a>
+ </li>
+ <li role="menuitem">
+ <a href="/en-us/news/crime" tabindex="2">Crime</a>
+ </li>
+ <li role="menuitem">
+ <a href="/en-us/news/technology" tabindex="2">Technology</a>
+ </li>
+ <li role="menuitem">
+ <a href="/en-us/news/politics" tabindex="2">Politics</a>
+ </li>
+ <li role="menuitem">
+ <a href="/en-us/news/livecoverage/breaking-news-now/lc-BBqgBkP" tabindex="2">Live Coverage</a>
+ </li>
+ </ul>
+ </div>
+
+
+ <div class="list7lines">
+ <ul role="menubar">
+ <li role="menuitem">
+ <a href="/en-us/news/topics" tabindex="2">My Topics</a>
+ </li>
+ <li role="menuitem">
+ <a href="/en-us/news/video" tabindex="2">Video</a>
+ </li>
+ </ul>
+ </div>
+ </div>
+
+
+ </nav>
+
+
+
+ <div id="precontent" data-region="precontent" data-id="41" data-m="{&quot;i&quot;:41,&quot;n&quot;:&quot;precontent&quot;,&quot;y&quot;:6}">
+
+ <div tabindex="-1" id="banner1_article_newsscienceandtechnology_bc75cdd5-518c-4eaf-b499-34398421dd5c" class="widead non-empty-ad" data-aop="articletakeoverad_ad" data-id="42" data-m="{&quot;i&quot;:42,&quot;p&quot;:41,&quot;n&quot;:&quot;articletakeoverad&quot;,&quot;t&quot;:&quot;ad&quot;,&quot;o&quot;:1}" aria-label="advertisement" style="visibility: visible;">
+
+
+ <div class="outeradcontainer" style="display: inline-block;">
+
+ <div id="banner1_article_newsscienceandtechnology_container_bc75cdd5-518c-4eaf-b499-34398421dd5c" class="adcontainer" data-adjs="{&quot;allowedViews&quot;:&quot;SIZE234COLUMN&quot;}" tabindex="-1" aria-label="advertisement" data-ad="{&quot;w&quot;:1194,&quot;h&quot;:710,&quot;c&quot;:4,&quot;v&quot;:1,&quot;d&quot;:1,&quot;r&quot;:1,&quot;s&quot;:false}" style="visibility: visible;"><iframe title="Ad" marginwidth="0" marginheight="0" allowtransparency="true" scrolling="no" id="atwAdFrame0" banid="7637809|24808435" class="uac_728x90" frameborder="0" width="728" height="90"></iframe></div>
+ <a href="http://go.microsoft.com/fwlink/?LinkID=286759" class="adchoices" target="_blank" data-piitxt="adchoices" style="display: block;">
+ <span class="adchoiceicon"></span>
+ <span>AdChoices</span>
+ </a>
+
+ </div>
+
+ </div>
+ <div class="tbla trc_related_container trc_spotlight_widget" id="taboola-above-article-thumbnails" data-id="43" data-m="{&quot;i&quot;:43,&quot;p&quot;:41,&quot;n&quot;:&quot;taboolabanner&quot;,&quot;t&quot;:&quot;taboolawidget&quot;,&quot;o&quot;:2}" data-aop="taboolabanner_taboolawidget" data-page-type="article" data-placement-id="Above Article Thumbnails" data-placement="" data-partner="TB" data-mode="thumbnails-k" data-gallery-url="">
+ <div class="trc_rbox_container" style="display: none;">
+ <div>
+ <div id="trc_wrapper_29309" class="trc_rbox thumbnails-k" style="overflow: hidden; display: none;"></div>
+ </div>
+ </div>
+ </div>
+ <header class="collection-headline">
+ <h1 itemprop="headline" class="">
+ Nintendo's first iPhone game will launch in December for $10
+ </h1>
+ </header>
+
+ <section class="Modelinfo">
+ <div class="authorinfo-bsb" data-stickyviews="4" style="">
+ <div class="authorinfotb">
+ <span class="partnerlogo-img" itemprop="publisher" itemscope="" itemtype="http://schema.org/organization" data-aop="providerlogo" data-id="44" data-m="{&quot;i&quot;:44,&quot;p&quot;:41,&quot;n&quot;:&quot;providerLogo&quot;,&quot;t&quot;:&quot;icon&quot;,&quot;o&quot;:3}">
+ <a href="http://www.techinsider.io" target="_blank" itemprop="url">
+ <span class="partnermainlogo"><img alt="Tech Insider" data-src="{&quot;default&quot;:&quot;//img-s-msn-com.akamaized.net/tenant/amp/entityid/BBlfvkM.img?h=50&amp;w=50&amp;m=6&amp;q=60&amp;u=t&amp;o=t&amp;l=f&amp;f=png&quot;}" src="http://img-s-msn-com.akamaized.net/tenant/amp/entityid/BBlfvkM.img?h=100&amp;w=100&amp;m=6&amp;q=60&amp;u=t&amp;o=t&amp;l=f&amp;f=png" class="loaded" data-initial-set="true" />
+ </span>
+ <span class="partnermediumlogo"><img alt="Tech Insider" data-src="{&quot;default&quot;:&quot;//img-s-msn-com.akamaized.net/tenant/amp/entityid/BBlfNkL.img?h=24&amp;w=24&amp;m=6&amp;q=60&amp;u=t&amp;o=t&amp;l=f&amp;f=png&quot;}" src="//static-entertainment-eas-s-msn-com.akamaized.net/sc/9b/e151e5.gif" /></span>
+ </a>
+ </span>
+ <div class="sourcename-txt truncate">
+ <a href="http://www.techinsider.io" target="_blank" title="tech insider" itemprop="url">Tech Insider</a>
+ </div>
+ <div class="authorinfo-txt">
+ <span class="authorname-txt" itemprop="author" itemscope="itemscope" itemtype="http://schema.org/person" data-id="45" data-m="{&quot;i&quot;:45,&quot;p&quot;:41,&quot;n&quot;:&quot;authorName&quot;,&quot;t&quot;:&quot;name&quot;,&quot;o&quot;:4}">
+ <span class="truncate" itemprop="name">Alex Perry</span>
+ </span>
+ <time data-always-show="true" datetime="2016-11-15T07:00:00.000Z">1 day ago</time>
+ </div>
+ </div>
+ <div class="sharingtb">
+ <div class="stb-bsb" data-aop="sharingtoolbar_social" data-id="46" data-m="{&quot;i&quot;:46,&quot;p&quot;:41,&quot;n&quot;:&quot;socialtoolbar&quot;,&quot;y&quot;:8,&quot;o&quot;:5}">
+
+ <a data-id="47" data-m="{&quot;i&quot;:47,&quot;p&quot;:46,&quot;n&quot;:&quot;LINKEDIN&quot;,&quot;t&quot;:&quot;sharingToolbar&quot;,&quot;o&quot;:1}" class="stb-btn stb-linkedin stb-btn-first" href="https://www.linkedin.com/shareArticle?mini=true&amp;url=http%3a%2f%2fa.msn.com%2f01%2fen-us%2fAAkm7Xj%3focid%3dsl&amp;title=Nintendo%27s+first+iPhone+game+will+launch+in+December+for+%2410&amp;source=http%3a%2f%2fa.msn.com%2f01%2fen-us%2fAAkm7Xj%3focid%3dsl" data-piitxt="tmx-stb-linkedin" aria-label="share on linkedin">
+ <div class="stb-box">
+ <span class="stb-text" aria-hidden="true" role="presentation">SHARE</span>
+ </div>
+ </a>
+ <a data-id="48" data-m="{&quot;i&quot;:48,&quot;p&quot;:46,&quot;n&quot;:&quot;FACEBOOK&quot;,&quot;t&quot;:&quot;sharingToolbar&quot;,&quot;o&quot;:2}" class="stb-btn stb-facebook" href="http://a.msn.com/01/en-us/AAkm7Xj?ocid=sf" data-piitxt="tmx-stb-facebook" aria-label="share on facebook">
+ <div class="stb-box">
+ <span class="stb-text" aria-hidden="true" role="presentation">SHARE</span>
+ </div>
+ </a>
+ <a data-id="49" data-m="{&quot;i&quot;:49,&quot;p&quot;:46,&quot;n&quot;:&quot;TWITTER&quot;,&quot;t&quot;:&quot;sharingToolbar&quot;,&quot;o&quot;:3}" class="stb-btn stb-twitter" href="https://twitter.com/share?url=http%3a%2f%2fa.msn.com%2f01%2fen-us%2fAAkm7Xj%3focid%3dst&amp;text=Nintendo%27s+first+iPhone+game+will+launch+in+December+for+%2410&amp;original_referer=http%3a%2f%2fa.msn.com%2f01%2fen-us%2fAAkm7Xj%3focid%3dst" data-piitxt="tmx-stb-twitter" aria-label="tweet">
+ <div class="stb-box">
+ <span class="stb-text" aria-hidden="true" role="presentation">TWEET</span>
+ </div>
+ </a>
+ <a data-id="50" data-m="{&quot;i&quot;:50,&quot;p&quot;:46,&quot;n&quot;:&quot;SKYPE&quot;,&quot;t&quot;:&quot;sharingToolbar&quot;,&quot;o&quot;:4}" class="stb-btn stb-skype" href="https://web.skype.com/share?url=http%3a%2f%2fa.msn.com%2f01%2fen-us%2fAAkm7Xj&amp;lang=en-us&amp;flow_id=d1793c77-3575-495b-a2c4-24bfdef36ebc" data-piitxt="tmx-stb-skype" aria-label="share on skype">
+ <div class="stb-box">
+ <span class="stb-text" aria-hidden="true" role="presentation">SHARE</span>
+ </div>
+ </a>
+ <a data-id="51" data-m="{&quot;i&quot;:51,&quot;p&quot;:46,&quot;n&quot;:&quot;EMAIL&quot;,&quot;t&quot;:&quot;sharingToolbar&quot;,&quot;o&quot;:5}" class="stb-btn stb-email" href="mailto:?subject=Nintendo%27s%20first%20iPhone%20game%20will%20launch%20in%20December%20for%20%2410&amp;body=I%20thought%20you%20would%20be%20interested%20in%20this%20story%20I%20found%20on%20MSN%3a%20Nintendo%27s%20first%20iPhone%20game%20will%20launch%20in%20December%20for%20%2410%20http%3a%2f%2fa.msn.com%2f01%2fen-us%2fAAkm7Xj%3focid%3dse" data-piitxt="tmx-stb-email" aria-label="share via email">
+ <div class="stb-box">
+ <span class="stb-text" aria-hidden="true" role="presentation">EMAIL</span>
+ </div>
+ </a>
+
+ </div>
+
+
+ </div>
+
+ </div>
+ </section>
+
+
+
+
+
+ </div>
+ <script>
+ window._flushTimings & amp; & amp;
+ (window._flushTimings.PreContentEnd = new Date - window.performance.timing.navigationStart);
+ </script>
+
+ <div id="maincontent">
+ <div class="content" id="content">
+ <main id="main" role="main" data-region="main" data-id="52" data-m="{&quot;i&quot;:52,&quot;n&quot;:&quot;main&quot;,&quot;y&quot;:6}">
+
+ <div class="paddle previous loaded" data-aop="paddles_prev" data-id="53" data-m="{&quot;i&quot;:53,&quot;p&quot;:52,&quot;n&quot;:&quot;previous&quot;,&quot;y&quot;:14,&quot;o&quot;:1}">
+ <a href="/en-us/news/technology/twitter-suspends-alt-right-accounts/ar-AAklH4d">
+ <div class="headline ">
+ <img alt="Man checking phone in front of Twitter logo." data-src="{&quot;default&quot;:&quot;//img.s-msn.com/tenant/amp/entityid/BBdAmDL.img?h=75&amp;w=100&amp;m=6&amp;q=60&amp;u=t&amp;o=t&amp;l=f&amp;x=939&amp;y=445&quot;}" src="http://img.s-msn.com/tenant/amp/entityid/BBdAmDL.img?h=150&amp;w=200&amp;m=6&amp;q=60&amp;u=t&amp;o=t&amp;l=f&amp;x=939&amp;y=445" title="Man checking phone in front of Twitter logo. - Chris Ratcliffe/Bloomberg" class="loaded" data-initial-set="true" />
+ <div>
+ <h4 class="truncate">Twitter suspends alt-right accounts</h4>
+ </div>
+ </div>
+ </a>
+
+ </div>
+ <div class="paddle next loaded" data-aop="paddles_next" data-id="54" data-m="{&quot;i&quot;:54,&quot;p&quot;:52,&quot;n&quot;:&quot;next&quot;,&quot;y&quot;:14,&quot;o&quot;:2}">
+ <a href="/en-us/news/technology/oneplus-3t-vs-oneplus-3-whats-the-difference/ar-AAkmfI2">
+ <div class="headline ">
+ <img alt="The OnePlus 3T is visually identical to the OnePlus 3 but has a new darker grey 'gunmetal' colour option. Image credit: OnePlus" data-src="{&quot;default&quot;:&quot;//img-s-msn-com.akamaized.net/tenant/amp/entityid/AAklvVK.img?h=75&amp;w=100&amp;m=6&amp;q=60&amp;u=t&amp;o=t&amp;l=f&amp;x=517&amp;y=530&quot;}" src="http://img-s-msn-com.akamaized.net/tenant/amp/entityid/AAklvVK.img?h=150&amp;w=200&amp;m=6&amp;q=60&amp;u=t&amp;o=t&amp;l=f&amp;x=517&amp;y=530" title="The OnePlus 3T is visually identical to the OnePlus 3 but has a new darker grey 'gunmetal' colour op... - Provided by Forbes Media LLC" class="loaded" data-initial-set="true" />
+ <div>
+ <h4 class="truncate">OnePlus 3T vs OnePlus 3: what's the difference?</h4>
+ </div>
+ </div>
+ </a>
+
+ </div>
+
+
+
+ <article itemscope="" itemtype="http://schema.org/NewsArticle" class="articlecontent loaded" data-aop="article">
+ <section class="articlebody" itemprop="articleBody" data-aop="articlebody">
+ <p>
+ <span class="storyimage fullwidth inlineimage" data-aop="image">
+<span class="image" data-attrib="Provided by Business Insider Inc" data-caption="&lt;span style=&quot;font-size:13px;&quot;&gt;Nintendo/Apple&lt;/span&gt;" data-id="55" data-m="{&quot;i&quot;:55,&quot;p&quot;:52,&quot;n&quot;:&quot;openModal&quot;,&quot;t&quot;:&quot;articleImages&quot;,&quot;o&quot;:3}">
+ <img alt="&lt;span style=&quot;font-size:13px;&quot;&gt;Nintendo/Apple&lt;/span&gt;" data-src="{&quot;default&quot;:{&quot;load&quot;:&quot;default&quot;,&quot;w&quot;:&quot;73&quot;,&quot;h&quot;:&quot;41&quot;,&quot;src&quot;:&quot;//img-s-msn-com.akamaized.net/tenant/amp/entityid/AAkk5fh.img?h=410&amp;w=728&amp;m=6&amp;q=60&amp;o=f&amp;l=f&amp;x=1162&amp;y=540&quot;},&quot;size3column&quot;:{&quot;load&quot;:&quot;default&quot;,&quot;w&quot;:&quot;62&quot;,&quot;h&quot;:&quot;35&quot;,&quot;src&quot;:&quot;//img-s-msn-com.akamaized.net/tenant/amp/entityid/AAkk5fh.img?h=351&amp;w=624&amp;m=6&amp;q=60&amp;o=f&amp;l=f&amp;x=1162&amp;y=540&quot;},&quot;size2column&quot;:{&quot;load&quot;:&quot;default&quot;,&quot;w&quot;:&quot;62&quot;,&quot;h&quot;:&quot;35&quot;,&quot;src&quot;:&quot;//img-s-msn-com.akamaized.net/tenant/amp/entityid/AAkk5fh.img?h=351&amp;w=624&amp;m=6&amp;q=60&amp;o=f&amp;l=f&amp;x=1162&amp;y=540&quot;}}" src="http://img-s-msn-com.akamaized.net/tenant/amp/entityid/AAkk5fh.img?h=820&amp;w=1456&amp;m=6&amp;q=60&amp;o=f&amp;l=f&amp;x=1162&amp;y=540" style="width:73rem;height:41rem;" class="loaded" data-initial-set="true" />
+</span>
+ <span class="caption truncate">
+ <span class="attribution">© Provided by Business Insider Inc</span>
+ <span style="font-size:13px;">Nintendo/Apple</span>
+ </span>
+ </span>
+ Nintendo and Apple shocked the world earlier this year by announcing "Super Mario Run," the legendary gaming company's first foray into mobile gaming. It's a Mario game you can play on your phone with just one hand, so what's not to love?</p>
+ <p>Thankfully, now we know when you can get it and for how much: "Super Mario Run" will launch on iPhone and iPad on December 15, for a flat fee of $9.99. You can play a sample of the game modes for free, but unlike most other mobile games that let you download for free but require money to keep playing, or access parts of the game, you can pay $10 to get everything right away. </p>
+ <p>In case you haven't heard, "Super Mario Run" is essentially a regular, side-scrolling "Super Mario" game with one key difference: You don't control Mario's movement. He runs automatically and all you do is tap the screen to jump.</p>
+ <p>The name and basic idea might sound like one of those endless score attack games like "Temple Run," but that's not the case. "Super Mario Run" is divided into hand-crafted levels with a clear end-point like any other Mario game, meaning you're essentially getting the Mario experience for $10 without needing to control his movement.</p>
+ <p>$10 might seem like a bit much compared to the $0 people pay for most mobile games, but it's possible the game has $10 worth of levels to play in it. It's also not iPhone exclusive, but the Android version will launch at a later, currently unknown date. </p>
+ <p>To see "Super Mario Run" in action, check out the footage below:</p>
+ <div class="video-container"><iframe allowfullscreen="" src="https://www.youtube.com/embed/E39ychZKnDI" frameborder="0" width="100%" height="450"></iframe></div>
+ <p><br /></p>
+ </section>
+ </article>
+
+ <div id="353566216"><iframe marginwidth="0" marginheight="0" scrolling="no" id="_mN_dy_353566216" style="height: 290px;" frameborder="0" width="100%" height="290"></iframe></div>
+ <div class="tbla loaded trc_related_container trc_spotlight_widget trc_elastic trc_elastic_trc_83676 " id="taboola-below-article-thumbnails-card-layout-short" data-id="56" data-m="{&quot;i&quot;:56,&quot;p&quot;:52,&quot;n&quot;:&quot;taboolaunderarticlevnext&quot;,&quot;t&quot;:&quot;taboolawidgetvnext&quot;,&quot;o&quot;:4}" data-aop="taboolaunderarticlevnext_taboolawidgetvnext" data-page-type="article" data-placement-id="Below Article Thumbnails Card Layout - Short" data-placement="" data-partner="TB" data-mode="thumbnails-a2" data-gallery-url="" data-placement-name="Below Article Thumbnails Card Layout - Short">
+ <div class="trc_rbox_container" style="display: block;">
+ <div>
+ <div id="trc_wrapper_83676" class="trc_rbox ab_thumbnails-a2_smaller-titles-ratio-6x5 trc-content-hybrid " style="overflow: hidden; display: block;">
+ <div id="trc_header_83676" class="trc_rbox_header trc_rbox_border_elm">
+ <div class="trc_header_ext">
+ <div class="logoDiv link-adc "><a class="trc_desktop_adc_link trc_attribution_position_top" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=msn-msn&amp;utm_medium=referral&amp;utm_content=ab_thumbnails-a2_smaller-titles-ratio-6x5:Below%20Article%20Thumbnails%20Card%20Layout%20-%20Short:" target="_blank"><span class="trc_adc_wrapper"><span class="trc_adc_s_logo"></span> </span><span class="trc_logos_v_align"> </span></a><a class="trc_mobile_adc_link trc_attribution_position_top" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=msn-msn&amp;utm_medium=referral&amp;utm_content=ab_thumbnails-a2_smaller-titles-ratio-6x5:Below%20Article%20Thumbnails%20Card%20Layout%20-%20Short:" target="_blank"><span class="trc_adc_wrapper"><span class="trc_adc_s_logo"></span> </span><span class="trc_logos_v_align"> </span></a></div>
+ <div class="logoDiv link-attribution "><a class="trc_desktop_attribution_link trc_attribution_position_top" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=msn-msn&amp;utm_medium=referral&amp;utm_content=ab_thumbnails-a2_smaller-titles-ratio-6x5:Below%20Article%20Thumbnails%20Card%20Layout%20-%20Short:" target="_blank"><span>by Taboola</span><span class="trc_logos_v_align"> </span></a><a class="trc_mobile_attribution_link trc_attribution_position_top" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=msn-msn&amp;utm_medium=referral&amp;utm_content=ab_thumbnails-a2_smaller-titles-ratio-6x5:Below%20Article%20Thumbnails%20Card%20Layout%20-%20Short:" target="_blank"><span>by Taboola</span><span class="trc_logos_v_align"> </span></a></div>
+ <div class="logoDiv link-disclosure attribution-disclosure-link-sponsored"><a class="trc_desktop_disclosure_link trc_attribution_position_top" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=msn-msn&amp;utm_medium=referral&amp;utm_content=ab_thumbnails-a2_smaller-titles-ratio-6x5:Below%20Article%20Thumbnails%20Card%20Layout%20-%20Short:" target="_blank"><span>Sponsored Links</span><span class="trc_logos_v_align"> </span></a><a class="trc_mobile_disclosure_link trc_attribution_position_top" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=msn-msn&amp;utm_medium=referral&amp;utm_content=ab_thumbnails-a2_smaller-titles-ratio-6x5:Below%20Article%20Thumbnails%20Card%20Layout%20-%20Short:" target="_blank"><span>Sponsored Links</span><span class="trc_logos_v_align"> </span></a></div>
+ <div class="logoDiv link-disclosure attribution-disclosure-link-hybrid"><a class="trc_desktop_disclosure_link trc_attribution_position_top" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=msn-msn&amp;utm_medium=referral&amp;utm_content=ab_thumbnails-a2_smaller-titles-ratio-6x5:Below%20Article%20Thumbnails%20Card%20Layout%20-%20Short:" target="_blank"><span>Promoted Links</span><span class="trc_logos_v_align"> </span></a><a class="trc_mobile_disclosure_link trc_attribution_position_top" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=msn-msn&amp;utm_medium=referral&amp;utm_content=ab_thumbnails-a2_smaller-titles-ratio-6x5:Below%20Article%20Thumbnails%20Card%20Layout%20-%20Short:" target="_blank"><span>Promoted Links</span><span class="trc_logos_v_align"> </span></a></div>
+ </div><span class="trc_rbox_header_span">MORE FOR YOU</span></div>
+ <div id="outer_83676" class="trc_rbox_outer">
+ <div id="rbox-t2m" class="trc_rbox_div trc_rbox_border_elm">
+ <div id="internal_trc_83676">
+ <div data-item-id="~~V1~~-8232974970675653448~~Lshg2aqhaULivnBs4YPHpmZcGIWK5fw_wmgxiEl_M6uvjueBefd3a21OuJKG89vOha4MolkBsiojvEh0-nyYIQ" data-item-title="What Were the Big Topics at Intel® Developer Forum 2016?" data-item-thumb="http://cdn.taboolasyndication.com/libtrc/static/thumbnails/5a85b3594e7f1aaaf300f09a377fb3ed.png" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem videoCube_1_child trc-first-recommendation trc-spotlight-first-recommendation trc_excludable ">
+ <a title="What Were the Big Topics at Intel® Developer Forum 2016?" href="http://software.intel.com/en-us/blogs/2016/08/07/software-innovation-shapes-the-future-at-idf16?utm_source=Taboola&amp;utm_medium=Syndication&amp;utm_campaign=Game+Dev_ASMO_Q4_16&amp;&amp;utm_term=msn-msn&amp;utm_content=What+Were+the+Big+Topics+at+Intel%C2%AE+Developer+Forum+2016%3F" rel="nofollow" target="_blank" class=" item-thumbnail-href " data-m="{&quot;n&quot;:&quot;TaboolaAttributionLink&quot;,&quot;y&quot;:12,&quot;i&quot;:101,&quot;o&quot;:1,&quot;p&quot;:&quot;56&quot;}" data-id="101">
+ <div class="thumbBlock_holder"><span class="thumbBlock"><span class="thumbnail-overlay"></span><span class="branding">Intel</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="What Were the Big Topics at Intel® Developer Forum 2016?" href="http://software.intel.com/en-us/blogs/2016/08/07/software-innovation-shapes-the-future-at-idf16?utm_source=Taboola&amp;utm_medium=Syndication&amp;utm_campaign=Game+Dev_ASMO_Q4_16&amp;&amp;utm_term=msn-msn&amp;utm_content=What+Were+the+Big+Topics+at+Intel%C2%AE+Developer+Forum+2016%3F" rel="nofollow" target="_blank" class=" item-label-href " data-m="{&quot;n&quot;:&quot;TaboolaAttributionLink&quot;,&quot;y&quot;:12,&quot;i&quot;:102,&quot;o&quot;:2,&quot;p&quot;:&quot;56&quot;}" data-id="102"><span class="video-label-box"><span class="video-label video-title trc-smart-ellipsis"><ins style="">What</ins> <ins>Were</ins> <ins>the</ins> <ins>Big</ins> <ins>Topics</ins> <ins>at</ins> <ins>Intel®</ins> <ins>Developer</ins> <ins>Forum</ins> <ins>2016?</ins></span><span class="branding">Intel</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~3954678420082026777~~7Imu776yPEteNsaJjYLMsoPXCauBJyhHSWGj3DEjXi470Q-Js_HAIr8zCLsriMK8ha4MolkBsiojvEh0-nyYIQ" data-item-title="Say Goodbye To Snoring, Say Hello to Sleep" data-item-thumb="http://cdn.taboolasyndication.com/libtrc/static/thumbnails/b4ea56abdb75f62da20a9c018b1ebe15.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem videoCube_2_child trc_excludable ">
+ <a title="Say Goodbye To Snoring, Say Hello to Sleep" href="http://track.mysnoring-solution.com/f7a91370-8015-0133-1605-3c764e052d94/ROWNetworkContextual?utm_source=Taboola&amp;utm_medium=msn-msn&amp;utm_content=http%3A%2F%2Fcdn.taboolasyndication.com%2Flibtrc%2Fstatic%2Fthumbnails%2Fb4ea56abdb75f62da20a9c018b1ebe15.jpg&amp;utm_term=Say+Goodbye+To+Snoring%2C+Say+Hello+to+Sleep" rel="nofollow" target="_blank" class=" item-thumbnail-href " data-m="{&quot;n&quot;:&quot;TaboolaAttributionLink&quot;,&quot;y&quot;:12,&quot;i&quot;:103,&quot;o&quot;:1,&quot;p&quot;:&quot;56&quot;}" data-id="103">
+ <div class="thumbBlock_holder"><span class="thumbBlock"><span class="thumbnail-overlay"></span><span class="branding">My Snoring Solution</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Say Goodbye To Snoring, Say Hello to Sleep" href="http://track.mysnoring-solution.com/f7a91370-8015-0133-1605-3c764e052d94/ROWNetworkContextual?utm_source=Taboola&amp;utm_medium=msn-msn&amp;utm_content=http%3A%2F%2Fcdn.taboolasyndication.com%2Flibtrc%2Fstatic%2Fthumbnails%2Fb4ea56abdb75f62da20a9c018b1ebe15.jpg&amp;utm_term=Say+Goodbye+To+Snoring%2C+Say+Hello+to+Sleep" rel="nofollow" target="_blank" class=" item-label-href " data-m="{&quot;n&quot;:&quot;TaboolaAttributionLink&quot;,&quot;y&quot;:12,&quot;i&quot;:104,&quot;o&quot;:2,&quot;p&quot;:&quot;56&quot;}" data-id="104"><span class="video-label-box"><span class="video-label video-title trc-smart-ellipsis"><ins style="">Say</ins> <ins>Goodbye</ins> <ins>To</ins> <ins>Snoring,</ins> <ins>Say</ins> <ins>Hello</ins> <ins>to</ins> <ins>Sleep</ins></span><span class="branding">My Snoring Solution</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~-5344985250462056125~~q0Sui7LRb_DfQtmsvBIxPQ0YPLCrVt54JIK-WgGqlCXMvUjyPQKouLgB4wQ7D3iOha4MolkBsiojvEh0-nyYIQ" data-item-title="Slow Computer? You Don&amp;#39;t Need to Buy a New One Thanks to This Discovery" data-item-thumb="http://cdn.taboolasyndication.com/libtrc/static/thumbnails/d5a123511ef152db2e5d3e907f6f6718.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem videoCube_3_child trc_excludable ">
+ <a title="Slow Computer? You Don't Need to Buy a New One Thanks to This Discovery" href="http://trknx.com/path/lp.php?trvid=10076&amp;trvx=89afd736&amp;cid=13&amp;utm_term=msn-msn" rel="nofollow" target="_blank" class=" item-thumbnail-href " data-m="{&quot;n&quot;:&quot;TaboolaAttributionLink&quot;,&quot;y&quot;:12,&quot;i&quot;:105,&quot;o&quot;:1,&quot;p&quot;:&quot;56&quot;}" data-id="105">
+ <div class="thumbBlock_holder"><span class="thumbBlock"><span class="thumbnail-overlay"></span><span class="branding">Xtra-PC</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Slow Computer? You Don't Need to Buy a New One Thanks to This Discovery" href="http://trknx.com/path/lp.php?trvid=10076&amp;trvx=89afd736&amp;cid=13&amp;utm_term=msn-msn" rel="nofollow" target="_blank" class=" item-label-href " data-m="{&quot;n&quot;:&quot;TaboolaAttributionLink&quot;,&quot;y&quot;:12,&quot;i&quot;:106,&quot;o&quot;:2,&quot;p&quot;:&quot;56&quot;}" data-id="106"><span class="video-label-box"><span class="video-label video-title trc-smart-ellipsis"><ins style="">Slow</ins> <ins>Computer?</ins> <ins>You</ins> <ins>Don't</ins> <ins>Need</ins> <ins>to</ins> <ins>Buy</ins> <ins>a</ins> <ins>New</ins> <ins>One</ins> <ins>Thanks</ins> <ins>to</ins> <ins>This</ins> <ins>Discovery</ins></span><span class="branding">Xtra-PC</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="8589277795736957936" data-item-title="Apple Inc. Has an iPhone 7 Plus Problem" data-item-thumb="http://img-s-msn-com.akamaized.net/tenant/amp/entityid/AAjKPw4.img" data-item-syndicated="false" class="videoCube trc_spotlight_item origin-default thumbnail_top textItem videoCube_4_child trc_excludable ">
+ <a title="Apple Inc. Has an iPhone 7 Plus Problem" href="http://www.msn.com/en-us/money/topstocks/apple-inc-has-an-iphone-7-plus-problem/ar-AAjKJxv" target="_parent" class=" item-thumbnail-href " data-m="{&quot;n&quot;:&quot;TaboolaorganicItem&quot;,&quot;y&quot;:13,&quot;i&quot;:107,&quot;o&quot;:1,&quot;p&quot;:&quot;56&quot;,&quot;l&quot;:&quot;AAjKJxv&quot;}" data-id="107">
+ <div class="thumbBlock_holder"><span class="thumbBlock"><span class="thumbnail-overlay"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Apple Inc. Has an iPhone 7 Plus Problem" href="http://www.msn.com/en-us/money/topstocks/apple-inc-has-an-iphone-7-plus-problem/ar-AAjKJxv" target="_parent" class=" item-label-href " data-m="{&quot;n&quot;:&quot;TaboolaorganicItem&quot;,&quot;y&quot;:13,&quot;i&quot;:108,&quot;o&quot;:2,&quot;p&quot;:&quot;56&quot;,&quot;l&quot;:&quot;AAjKJxv&quot;}" data-id="108"><span class="video-label-box"><span class="video-label video-title trc-smart-ellipsis"><ins style="">Apple</ins> <ins>Inc.</ins> <ins>Has</ins> <ins>an</ins> <ins>iPhone</ins> <ins>7</ins> <ins>Plus</ins> <ins>Problem</ins></span><span class="video-label video-category"><dt style="display:inline">The Motley Fool on MSN</dt></span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="-49396826789344683" data-item-title="How to buy Nintendo&amp;#39;s NES Classic" data-item-thumb="http://img-s-msn-com.akamaized.net/tenant/amp/entityid/AAk8VcX.img" data-item-syndicated="false" class="videoCube trc_spotlight_item origin-default thumbnail_top textItem videoCube_5_child trc_excludable ">
+ <a title="How to buy Nintendo's NES Classic" href="http://www.msn.com/en-us/money/technology/how-to-buy-nintendos-nes-classic/ar-AAk8VcY" target="_parent" class=" item-thumbnail-href " data-m="{&quot;n&quot;:&quot;TaboolaorganicItem&quot;,&quot;y&quot;:13,&quot;i&quot;:109,&quot;o&quot;:1,&quot;p&quot;:&quot;56&quot;,&quot;l&quot;:&quot;AAk8VcY&quot;}" data-id="109">
+ <div class="thumbBlock_holder"><span class="thumbBlock"><span class="thumbnail-overlay"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="How to buy Nintendo's NES Classic" href="http://www.msn.com/en-us/money/technology/how-to-buy-nintendos-nes-classic/ar-AAk8VcY" target="_parent" class=" item-label-href " data-m="{&quot;n&quot;:&quot;TaboolaorganicItem&quot;,&quot;y&quot;:13,&quot;i&quot;:110,&quot;o&quot;:2,&quot;p&quot;:&quot;56&quot;,&quot;l&quot;:&quot;AAk8VcY&quot;}" data-id="110"><span class="video-label-box"><span class="video-label video-title trc-smart-ellipsis"><ins style="">How</ins> <ins>to</ins> <ins>buy</ins> <ins>Nintendo's</ins> <ins>NES</ins> <ins>Classic</ins></span><span class="video-label video-category"><dt style="display:inline">The Verge on MSN</dt></span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="6450371010026845262" data-item-title="Apple&amp;#39;s iPhone sales likely to continue falling, top analyst says" data-item-thumb="http://img-s-msn-com.akamaized.net/tenant/amp/entityid/AAk0W7L.img" data-item-syndicated="false" class="videoCube trc_spotlight_item origin-default thumbnail_top textItem videoCube_6_child trc_excludable ">
+ <a title="Apple's iPhone sales likely to continue falling, top analyst says" href="http://www.msn.com/en-us/money/technology/apples-iphone-sales-likely-to-continue-falling-top-analyst-says/ar-AAk0TC6" target="_parent" class=" item-thumbnail-href " data-m="{&quot;n&quot;:&quot;TaboolaorganicItem&quot;,&quot;y&quot;:13,&quot;i&quot;:111,&quot;o&quot;:1,&quot;p&quot;:&quot;56&quot;,&quot;l&quot;:&quot;AAk0TC6&quot;}" data-id="111">
+ <div class="thumbBlock_holder"><span class="thumbBlock"><span class="thumbnail-overlay"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Apple's iPhone sales likely to continue falling, top analyst says" href="http://www.msn.com/en-us/money/technology/apples-iphone-sales-likely-to-continue-falling-top-analyst-says/ar-AAk0TC6" target="_parent" class=" item-label-href " data-m="{&quot;n&quot;:&quot;TaboolaorganicItem&quot;,&quot;y&quot;:13,&quot;i&quot;:112,&quot;o&quot;:2,&quot;p&quot;:&quot;56&quot;,&quot;l&quot;:&quot;AAk0TC6&quot;}" data-id="112"><span class="video-label-box"><span class="video-label video-title trc-smart-ellipsis"><ins style="">Apple's</ins> <ins>iPhone</ins> <ins>sales</ins> <ins>likely</ins> <ins>to</ins> <ins>continue</ins> <ins>falling,</ins> <ins>top</ins> <ins>analyst</ins> <ins>says</ins></span><span class="video-label video-category"><dt style="display:inline">CNBC on MSN</dt></span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~-6170526728700882499~~JBazHedfx1T20ImWdvSZ_2hIoS99L-xBVvPXnmcRWll_Ijpp_7ZTwT4ljMtRKCKFha4MolkBsiojvEh0-nyYIQ" data-item-title="1,000,000 Have Adopted This New Way To Learn A Foreign Language" data-item-thumb="http://cdn.taboolasyndication.com/libtrc/static/thumbnails/1b968276637b45ecaeb751869d357332.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem videoCube_7_child trc_excludable ">
+ <a title="1,000,000 Have Adopted This New Way To Learn A Foreign Language" href="https://go.babbel.com/engmag-a153-vid-bv-millionusers-cd-xo-tb/1_eng_tab_cd?utm_source=taboola&amp;utm_medium=CON&amp;utm_campaign=cd_engall_gen_cxo_millionusers&amp;utm_term=msn-msn&amp;utm_content=1%2C000%2C000+Have+Adopted+This+New+Way+To+Learn+A+Foreign+Language" rel="nofollow" target="_blank" class=" item-thumbnail-href " data-m="{&quot;n&quot;:&quot;TaboolaAttributionLink&quot;,&quot;y&quot;:12,&quot;i&quot;:113,&quot;o&quot;:1,&quot;p&quot;:&quot;56&quot;}" data-id="113">
+ <div class="thumbBlock_holder"><span class="thumbBlock"><span class="thumbnail-overlay"></span><span class="branding">Babbel</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="1,000,000 Have Adopted This New Way To Learn A Foreign Language" href="https://go.babbel.com/engmag-a153-vid-bv-millionusers-cd-xo-tb/1_eng_tab_cd?utm_source=taboola&amp;utm_medium=CON&amp;utm_campaign=cd_engall_gen_cxo_millionusers&amp;utm_term=msn-msn&amp;utm_content=1%2C000%2C000+Have+Adopted+This+New+Way+To+Learn+A+Foreign+Language" rel="nofollow" target="_blank" class=" item-label-href " data-m="{&quot;n&quot;:&quot;TaboolaAttributionLink&quot;,&quot;y&quot;:12,&quot;i&quot;:114,&quot;o&quot;:2,&quot;p&quot;:&quot;56&quot;}" data-id="114"><span class="video-label-box"><span class="video-label video-title trc-smart-ellipsis"><ins style="">1,000,000</ins> <ins>Have</ins> <ins>Adopted</ins> <ins>This</ins> <ins>New</ins> <ins>Way</ins> <ins>To</ins> <ins>Learn</ins> <ins>A</ins> <ins>Foreign</ins> <ins>Language</ins></span><span class="branding">Babbel</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~2474733467212701845~~yr9Bd5uKsRW-uEoKmWRSbZRo1UsfHf0-1O2i3xKxtb7nVJvYTZKmCLhrO6hJjYcyha4MolkBsiojvEh0-nyYIQ" data-item-title="This Is The Most Addicting Game Of The Year!" data-item-thumb="https://console.brax-cdn.com/creatives/041ca465-399e-4bcf-9b7d-edb6b5c8d972/SF_EN_600_500_yrec_0311_2016_model_1_1__549300e662254e5b380d9c7cebcc36d6.600x500.png" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem videoCube_8_child trc_excludable ">
+ <a title="This Is The Most Addicting Game Of The Year!" href="https://plarium.com/play/en/stormfall/032_mountain_city_fullhybrid_anim_g?plid=85188&amp;pxl=taboola_fr&amp;&amp;publisherID=msn-msn" rel="nofollow" target="_blank" class=" item-thumbnail-href " data-m="{&quot;n&quot;:&quot;TaboolaAttributionLink&quot;,&quot;y&quot;:12,&quot;i&quot;:115,&quot;o&quot;:1,&quot;p&quot;:&quot;56&quot;}" data-id="115">
+ <div class="thumbBlock_holder"><span class="thumbBlock"><span class="thumbnail-overlay"></span><span class="branding">Stormfall: Free Online Game</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="This Is The Most Addicting Game Of The Year!" href="https://plarium.com/play/en/stormfall/032_mountain_city_fullhybrid_anim_g?plid=85188&amp;pxl=taboola_fr&amp;&amp;publisherID=msn-msn" rel="nofollow" target="_blank" class=" item-label-href " data-m="{&quot;n&quot;:&quot;TaboolaAttributionLink&quot;,&quot;y&quot;:12,&quot;i&quot;:116,&quot;o&quot;:2,&quot;p&quot;:&quot;56&quot;}" data-id="116"><span class="video-label-box"><span class="video-label video-title trc-smart-ellipsis"><ins style="">This</ins> <ins>Is</ins> <ins>The</ins> <ins>Most</ins> <ins>Addicting</ins> <ins>Game</ins> <ins>Of</ins> <ins>The</ins> <ins>Year!</ins></span><span class="branding">Stormfall: Free Online Game</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~4986375253575060270~~TRNWu7seSWLzvt3uVfC05aAot_5dP_rp_JzxPvYI7VCngfbzB0WpjDP8EIjhA_vwha4MolkBsiojvEh0-nyYIQ" data-item-title="Find out why more than 20 million people can&amp;#39;t stop playing this game" data-item-thumb="https://console.brax-cdn.com/creatives/041ca465-399e-4bcf-9b7d-edb6b5c8d972/2016-06-02_10_26_59-4a118a741d5996e0ba4d591a94492b55_jpg_1200_627__69cd0434ddb2cae7d28249c3222e4dd6.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem videoCube_9_child trc_excludable ">
+ <a title="Find out why more than 20 million people can't stop playing this game" href="http://plarium.com/play/en/pirates/017_ships_hybrid_anim_g?plid=91798&amp;pxl=taboola_fr&amp;publisherID=msn-msn" rel="nofollow" target="_blank" class=" item-thumbnail-href " data-m="{&quot;n&quot;:&quot;TaboolaAttributionLink&quot;,&quot;y&quot;:12,&quot;i&quot;:117,&quot;o&quot;:1,&quot;p&quot;:&quot;56&quot;}" data-id="117">
+ <div class="thumbBlock_holder"><span class="thumbBlock"><span class="thumbnail-overlay"></span><span class="branding">Pirates: Free Online Game</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Find out why more than 20 million people can't stop playing this game" href="http://plarium.com/play/en/pirates/017_ships_hybrid_anim_g?plid=91798&amp;pxl=taboola_fr&amp;publisherID=msn-msn" rel="nofollow" target="_blank" class=" item-label-href " data-m="{&quot;n&quot;:&quot;TaboolaAttributionLink&quot;,&quot;y&quot;:12,&quot;i&quot;:118,&quot;o&quot;:2,&quot;p&quot;:&quot;56&quot;}" data-id="118"><span class="video-label-box"><span class="video-label video-title trc-smart-ellipsis"><ins style="">Find</ins> <ins>out</ins> <ins>why</ins> <ins>more</ins> <ins>than</ins> <ins>20</ins> <ins>million</ins> <ins>people</ins> <ins>can't</ins> <ins>stop</ins> <ins>playing</ins> <ins>this</ins> <ins>game</ins></span><span class="branding">Pirates: Free Online Game</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="5145172870022956396" data-item-title="Designers test out &amp;#39;invincible&amp;#39; iPhone case by throwing phone around store" data-item-thumb="http://img-s-msn-com.akamaized.net/tenant/amp/entityid/AAk0EdR.img" data-item-syndicated="false" class="videoCube trc_spotlight_item origin-default thumbnail_top videoCube_10_child trc_excludable ">
+ <a title="Designers test out 'invincible' iPhone case by throwing phone around store" href="http://www.msn.com/en-us/video/other/designers-test-out-invincible-iphone-case-by-throwing-phone-around-store/vi-AAk0BAA" target="_parent" class=" item-thumbnail-href " data-m="{&quot;n&quot;:&quot;TaboolaorganicItem&quot;,&quot;y&quot;:13,&quot;i&quot;:119,&quot;o&quot;:1,&quot;p&quot;:&quot;56&quot;,&quot;l&quot;:&quot;AAk0BAA&quot;}" data-id="119">
+ <div class="thumbBlock_holder"><span class="thumbBlock"><span class="thumbnail-overlay"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Designers test out 'invincible' iPhone case by throwing phone around store" href="http://www.msn.com/en-us/video/other/designers-test-out-invincible-iphone-case-by-throwing-phone-around-store/vi-AAk0BAA" target="_parent" class=" item-label-href " data-m="{&quot;n&quot;:&quot;TaboolaorganicItem&quot;,&quot;y&quot;:13,&quot;i&quot;:120,&quot;o&quot;:2,&quot;p&quot;:&quot;56&quot;,&quot;l&quot;:&quot;AAk0BAA&quot;}" data-id="120"><span class="video-label-box"><span class="video-label video-title trc-smart-ellipsis"><ins style="">Designers</ins> <ins>test</ins> <ins>out</ins> <ins>'invincible'</ins> <ins>iPhone</ins> <ins>case</ins> <ins>by</ins> <ins>throwing</ins> <ins>phone</ins> <ins>around</ins> <ins>store</ins></span><span class="video-label video-category"><dt style="display:inline">Newsflare on MSN</dt></span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="3064200633927118673" data-item-title="Nintendo’s $59.99 NES Classic is in short supply, but you can buy one online for $1,000" data-item-thumb="http://img-s-msn-com.akamaized.net/tenant/amp/entityid/AAkaWHU.img" data-item-syndicated="false" class="videoCube trc_spotlight_item origin-default thumbnail_top textItem videoCube_11_child trc_excludable ">
+ <a title="Nintendo’s $59.99 NES Classic is in short supply, but you can buy one online for $1,000" href="http://www.msn.com/en-us/money/companies/nintendo%E2%80%99s-dollar5999-nes-classic-is-in-short-supply-but-you-can-buy-one-online-for-dollar1000/ar-AAkaWHW" target="_parent" class=" item-thumbnail-href " data-m="{&quot;n&quot;:&quot;TaboolaorganicItem&quot;,&quot;y&quot;:13,&quot;i&quot;:121,&quot;o&quot;:1,&quot;p&quot;:&quot;56&quot;,&quot;l&quot;:&quot;AAkaWHW&quot;}" data-id="121">
+ <div class="thumbBlock_holder"><span class="thumbBlock"><span class="thumbnail-overlay"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Nintendo’s $59.99 NES Classic is in short supply, but you can buy one online for $1,000" href="http://www.msn.com/en-us/money/companies/nintendo%E2%80%99s-dollar5999-nes-classic-is-in-short-supply-but-you-can-buy-one-online-for-dollar1000/ar-AAkaWHW" target="_parent" class=" item-label-href " data-m="{&quot;n&quot;:&quot;TaboolaorganicItem&quot;,&quot;y&quot;:13,&quot;i&quot;:122,&quot;o&quot;:2,&quot;p&quot;:&quot;56&quot;,&quot;l&quot;:&quot;AAkaWHW&quot;}" data-id="122"><span class="video-label-box"><span class="video-label video-title trc-smart-ellipsis"><ins style="">Nintendo’s</ins> <ins>$59.99</ins> <ins>NES</ins> <ins>Classic</ins> <ins>is</ins> <ins>in</ins> <ins>short</ins> <ins>supply,</ins> <ins>but</ins> <ins>you</ins> <ins>can</ins> <ins>buy</ins> <ins>one</ins> <ins>online</ins> <ins>for</ins> <ins>$1,000</ins></span><span class="video-label video-category"><dt style="display:inline">CNBC on MSN</dt></span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="-4062905706127082038" data-item-title="Chinese consumers&amp;#39; body takes up complaints of iPhone shutdowns with Apple" data-item-thumb="http://img-s-msn-com.akamaized.net/tenant/amp/entityid/AAkjbAv.img" data-item-syndicated="false" class="videoCube trc_spotlight_item origin-default thumbnail_top textItem videoCube_12_child trc_excludable ">
+ <a title="Chinese consumers' body takes up complaints of iPhone shutdowns with Apple" href="http://www.msn.com/en-us/money/other/chinese-consumers-body-takes-up-complaints-of-iphone-shutdowns-with-apple/ar-AAkj8XR" target="_parent" class=" item-thumbnail-href " data-m="{&quot;n&quot;:&quot;TaboolaorganicItem&quot;,&quot;y&quot;:13,&quot;i&quot;:123,&quot;o&quot;:1,&quot;p&quot;:&quot;56&quot;,&quot;l&quot;:&quot;AAkj8XR&quot;}" data-id="123">
+ <div class="thumbBlock_holder"><span class="thumbBlock"><span class="thumbnail-overlay"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Chinese consumers' body takes up complaints of iPhone shutdowns with Apple" href="http://www.msn.com/en-us/money/other/chinese-consumers-body-takes-up-complaints-of-iphone-shutdowns-with-apple/ar-AAkj8XR" target="_parent" class=" item-label-href " data-m="{&quot;n&quot;:&quot;TaboolaorganicItem&quot;,&quot;y&quot;:13,&quot;i&quot;:124,&quot;o&quot;:2,&quot;p&quot;:&quot;56&quot;,&quot;l&quot;:&quot;AAkj8XR&quot;}" data-id="124"><span class="video-label-box"><span class="video-label video-title trc-smart-ellipsis"><ins style="">Chinese</ins> <ins>consumers'</ins> <ins>body</ins> <ins>takes</ins> <ins>up</ins> <ins>complaints</ins> <ins>of</ins> <ins>iPhone</ins> <ins>shutdowns</ins> <ins>with</ins> <ins>Apple</ins></span><span class="video-label video-category"><dt style="display:inline">Reuters on MSN</dt></span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~227317072533568201~~qJRIXMvokTHdp6m1kaQT_maGE8SjuYTSNgGySWOn6y6hdSSnQtRDifCGElQBZMtFha4MolkBsiojvEh0-nyYIQ" data-item-title="U.S. gymnast tormented by bullies" data-item-thumb="https://d33zyg8wiiq6m8.cloudfront.net/api/v2/img/57b0c78de4b0b24306eee534-1471203211032?location=LANDSCAPE" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem videoCube_13_child trc_excludable ">
+ <a title="U.S. gymnast tormented by bullies" href="http://www.reuters.tv/DGM/2016/08/14/u-s-gymnast-tormented-by-bullies?utm_source=taboola_int&amp;utm_medium=referral&amp;utm_term=msn-msn" rel="nofollow" target="_blank" class=" item-thumbnail-href " data-m="{&quot;n&quot;:&quot;TaboolaAttributionLink&quot;,&quot;y&quot;:12,&quot;i&quot;:125,&quot;o&quot;:1,&quot;p&quot;:&quot;56&quot;}" data-id="125">
+ <div class="thumbBlock_holder"><span class="thumbBlock"><span class="thumbnail-overlay"></span><span class="branding">Reuters TV</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="U.S. gymnast tormented by bullies" href="http://www.reuters.tv/DGM/2016/08/14/u-s-gymnast-tormented-by-bullies?utm_source=taboola_int&amp;utm_medium=referral&amp;utm_term=msn-msn" rel="nofollow" target="_blank" class=" item-label-href " data-m="{&quot;n&quot;:&quot;TaboolaAttributionLink&quot;,&quot;y&quot;:12,&quot;i&quot;:126,&quot;o&quot;:2,&quot;p&quot;:&quot;56&quot;}" data-id="126"><span class="video-label-box"><span class="video-label video-title trc-smart-ellipsis"><ins style="">U.S.</ins> <ins>gymnast</ins> <ins>tormented</ins> <ins>by</ins> <ins>bullies</ins></span><span class="branding">Reuters TV</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~3201603694027528142~~GbrndV3RYcGoSL33IThPBB7LIF4d1ByTLT0fOQrMbGnCKEyxoUE0txAKR2YvYH_Gha4MolkBsiojvEh0-nyYIQ" data-item-title="The Ultimate Way to Get Cheap Hotel Rooms" data-item-thumb="http://cdn.taboolasyndication.com/libtrc/static/thumbnails/0e7815ee2413aaa0c8ed3a207d3d6837.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem videoCube_14_child trc_excludable ">
+ <a title="The Ultimate Way to Get Cheap Hotel Rooms" href="http://www.save70.com/hotels/?utm_source=taboola_whitelist_hotels_2&amp;utm_medium=msn-msn" rel="nofollow" target="_blank" class=" item-thumbnail-href " data-m="{&quot;n&quot;:&quot;TaboolaAttributionLink&quot;,&quot;y&quot;:12,&quot;i&quot;:127,&quot;o&quot;:1,&quot;p&quot;:&quot;56&quot;}" data-id="127">
+ <div class="thumbBlock_holder"><span class="thumbBlock"><span class="thumbnail-overlay"></span><span class="branding">Save70.com</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="The Ultimate Way to Get Cheap Hotel Rooms" href="http://www.save70.com/hotels/?utm_source=taboola_whitelist_hotels_2&amp;utm_medium=msn-msn" rel="nofollow" target="_blank" class=" item-label-href " data-m="{&quot;n&quot;:&quot;TaboolaAttributionLink&quot;,&quot;y&quot;:12,&quot;i&quot;:128,&quot;o&quot;:2,&quot;p&quot;:&quot;56&quot;}" data-id="128"><span class="video-label-box"><span class="video-label video-title trc-smart-ellipsis"><ins style="">The</ins> <ins>Ultimate</ins> <ins>Way</ins> <ins>to</ins> <ins>Get</ins> <ins>Cheap</ins> <ins>Hotel</ins> <ins>Rooms</ins></span><span class="branding">Save70.com</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~-1783400042781980055~~d0YOaTxvDiAyo2rkM3fS0u2spfM9rEOLbr7Z8olBl7TEfiX-b9zS_6KHnb2qe6i7ha4MolkBsiojvEh0-nyYIQ" data-item-title="Here&amp;#39;s Why These Are the Most Dangerous Countries for Travel" data-item-thumb="https://s3.graphiq.com/sites/default/files/5246/media/images/_12278955.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem textItem videoCube_15_child trc_excludable ">
+ <a title="Here's Why These Are the Most Dangerous Countries for Travel" href="http://global-diseases.healthgrove.com/stories/17395/most-dangerous-countries-travel-africa-europe?utm_source=taboola&amp;utm_medium=content.rec&amp;utm_campaign=i3.cr.tb.dt.11093" rel="nofollow" target="_blank" class=" item-thumbnail-href " data-m="{&quot;n&quot;:&quot;TaboolaAttributionLink&quot;,&quot;y&quot;:12,&quot;i&quot;:129,&quot;o&quot;:1,&quot;p&quot;:&quot;56&quot;}" data-id="129">
+ <div class="thumbBlock_holder"><span class="thumbBlock"><span class="thumbnail-overlay"></span><span class="branding">HealthGrove — By Graphiq</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Here's Why These Are the Most Dangerous Countries for Travel" href="http://global-diseases.healthgrove.com/stories/17395/most-dangerous-countries-travel-africa-europe?utm_source=taboola&amp;utm_medium=content.rec&amp;utm_campaign=i3.cr.tb.dt.11093" rel="nofollow" target="_blank" class=" item-label-href " data-m="{&quot;n&quot;:&quot;TaboolaAttributionLink&quot;,&quot;y&quot;:12,&quot;i&quot;:130,&quot;o&quot;:2,&quot;p&quot;:&quot;56&quot;}" data-id="130"><span class="video-label-box"><span class="video-label video-title trc-smart-ellipsis"><ins style="">Here's</ins> <ins>Why</ins> <ins>These</ins> <ins>Are</ins> <ins>the</ins> <ins>Most</ins> <ins>Dangerous</ins> <ins>Countries</ins> <ins>for</ins> <ins>Travel</ins></span><span class="branding">HealthGrove — By Graphiq</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="3018287769477806010" data-item-title="Will Trump Be Impeached?" data-item-thumb="http://img-s-msn-com.akamaized.net/tenant/amp/entityid/AAkkbuw.img" data-item-syndicated="false" class="videoCube trc_spotlight_item origin-default thumbnail_top textItem videoCube_16_child trc_excludable ">
+ <a title="Will Trump Be Impeached?" href="http://www.msn.com/en-us/news/msn/will-trump-be-impeached/ar-AAkk1nA" target="_parent" class=" item-thumbnail-href " data-m="{&quot;n&quot;:&quot;TaboolaorganicItem&quot;,&quot;y&quot;:13,&quot;i&quot;:131,&quot;o&quot;:1,&quot;p&quot;:&quot;56&quot;,&quot;l&quot;:&quot;AAkk1nA&quot;}" data-id="131">
+ <div class="thumbBlock_holder"><span class="thumbBlock"><span class="thumbnail-overlay"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Will Trump Be Impeached?" href="http://www.msn.com/en-us/news/msn/will-trump-be-impeached/ar-AAkk1nA" target="_parent" class=" item-label-href " data-m="{&quot;n&quot;:&quot;TaboolaorganicItem&quot;,&quot;y&quot;:13,&quot;i&quot;:132,&quot;o&quot;:2,&quot;p&quot;:&quot;56&quot;,&quot;l&quot;:&quot;AAkk1nA&quot;}" data-id="132"><span class="video-label-box"><span class="video-label video-title trc-smart-ellipsis"><ins style="">Will</ins> <ins>Trump</ins> <ins>Be</ins> <ins>Impeached?</ins></span><span class="video-label video-category"><dt style="display:inline">Vanity Fair on MSN</dt></span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="-2695672755620462265" data-item-title="Cause of death released for missing teen found slain" data-item-thumb="http://img-s-msn-com.akamaized.net/tenant/amp/entityid/AAkhrUQ.img" data-item-syndicated="false" class="videoCube trc_spotlight_item origin-default thumbnail_top textItem videoCube_17_child trc_excludable ">
+ <a title="Cause of death released for missing teen found slain" href="http://www.msn.com/en-us/news/crime/cause-of-death-released-for-missing-teen-found-slain/ar-AAkhwDv" target="_parent" class=" item-thumbnail-href " data-m="{&quot;n&quot;:&quot;TaboolaorganicItem&quot;,&quot;y&quot;:13,&quot;i&quot;:133,&quot;o&quot;:1,&quot;p&quot;:&quot;56&quot;,&quot;l&quot;:&quot;AAkhwDv&quot;}" data-id="133">
+ <div class="thumbBlock_holder"><span class="thumbBlock"><span class="thumbnail-overlay"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Cause of death released for missing teen found slain" href="http://www.msn.com/en-us/news/crime/cause-of-death-released-for-missing-teen-found-slain/ar-AAkhwDv" target="_parent" class=" item-label-href " data-m="{&quot;n&quot;:&quot;TaboolaorganicItem&quot;,&quot;y&quot;:13,&quot;i&quot;:134,&quot;o&quot;:2,&quot;p&quot;:&quot;56&quot;,&quot;l&quot;:&quot;AAkhwDv&quot;}" data-id="134"><span class="video-label-box"><span class="video-label video-title trc-smart-ellipsis"><ins style="">Cause</ins> <ins>of</ins> <ins>death</ins> <ins>released</ins> <ins>for</ins> <ins>missing</ins> <ins>teen</ins> <ins>found</ins> <ins>slain</ins></span><span class="video-label video-category"><dt style="display:inline">CBS News on MSN</dt></span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="-8242009595917657392" data-item-title="Nintendo&amp;#39;s mini NES is out today" data-item-thumb="http://img-s-msn-com.akamaized.net/tenant/amp/entityid/AAkao76.img" data-item-syndicated="false" class="videoCube trc_spotlight_item origin-default thumbnail_top textItem videoCube_18_child trc_excludable ">
+ <a title="Nintendo's mini NES is out today" href="http://www.msn.com/en-us/entertainment/gaming/nintendos-mini-nes-is-out-today/ar-AAkatgj" target="_parent" class=" item-thumbnail-href " data-m="{&quot;n&quot;:&quot;TaboolaorganicItem&quot;,&quot;y&quot;:13,&quot;i&quot;:135,&quot;o&quot;:1,&quot;p&quot;:&quot;56&quot;,&quot;l&quot;:&quot;AAkatgj&quot;}" data-id="135">
+ <div class="thumbBlock_holder"><span class="thumbBlock"><span class="thumbnail-overlay"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Nintendo's mini NES is out today" href="http://www.msn.com/en-us/entertainment/gaming/nintendos-mini-nes-is-out-today/ar-AAkatgj" target="_parent" class=" item-label-href " data-m="{&quot;n&quot;:&quot;TaboolaorganicItem&quot;,&quot;y&quot;:13,&quot;i&quot;:136,&quot;o&quot;:2,&quot;p&quot;:&quot;56&quot;,&quot;l&quot;:&quot;AAkatgj&quot;}" data-id="136"><span class="video-label-box"><span class="video-label video-title trc-smart-ellipsis"><ins style="">Nintendo's</ins> <ins>mini</ins> <ins>NES</ins> <ins>is</ins> <ins>out</ins> <ins>today</ins></span><span class="video-label video-category"><dt style="display:inline">Engadget on MSN</dt></span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~145195509595568327~~iKU-hurYljwinbaEwfXyECgxmLoyHRjdbU0VHUqc_kvwKrWLPaXZFzjYFn3w6oxwfH8lR2FY6ujGXU8s6iLUvA" data-item-title="Want to play Xbox games on almost any device? Learn how" data-item-thumb="http://img-s-msn-com.akamaized.net/tenant/amp/entityid/AAgVRap.img" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem tabNativeItem videoCube_19_child trc_excludable ">
+ <a title="Want to play Xbox games on almost any device? Learn how" href="http://clk.tradedoubler.com/click?p=261853&amp;a=2811279&amp;g=0&amp;epi=PRIME_ENUS_HP_TABEOAB_XBOXANYWHERE&amp;url=https://www.microsoftstore.com/store/msusa/en_US/cat/Windows-10-Gaming/categoryID.1660276400" rel="nofollow" target="_blank" class=" item-thumbnail-href " data-m="{&quot;n&quot;:&quot;TaboolaAttributionLink&quot;,&quot;y&quot;:12,&quot;i&quot;:137,&quot;o&quot;:1,&quot;p&quot;:&quot;56&quot;}" data-id="137">
+ <div class="thumbBlock_holder"><span class="thumbBlock"><span class="thumbnail-overlay"></span><span class="branding">Microsoft Store</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Want to play Xbox games on almost any device? Learn how" href="http://clk.tradedoubler.com/click?p=261853&amp;a=2811279&amp;g=0&amp;epi=PRIME_ENUS_HP_TABEOAB_XBOXANYWHERE&amp;url=https://www.microsoftstore.com/store/msusa/en_US/cat/Windows-10-Gaming/categoryID.1660276400" rel="nofollow" target="_blank" class=" item-label-href " data-m="{&quot;n&quot;:&quot;TaboolaAttributionLink&quot;,&quot;y&quot;:12,&quot;i&quot;:138,&quot;o&quot;:2,&quot;p&quot;:&quot;56&quot;}" data-id="138"><span class="video-label-box"><span class="video-label video-title trc-smart-ellipsis"><ins style="">Want</ins> <ins>to</ins> <ins>play</ins> <ins>Xbox</ins> <ins>games</ins> <ins>on</ins> <ins>almost</ins> <ins>any</ins> <ins>device?</ins> <ins>Learn</ins> <ins>how</ins></span><span class="branding">Microsoft Store</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~4298699967991657966~~iKU-hurYljwinbaEwfXyECgxmLoyHRjdbU0VHUqc_ktJ4K1psFRHinOLlXjYvyU3fH8lR2FY6ujGXU8s6iLUvA" data-item-title="Now Shipping! Buy Madden Xbox One S now and get loads of extras" data-item-thumb="http://img-s-msn-com.akamaized.net/tenant/amp/entityid/BBuXWjG.img" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem tabNativeItem videoCube_20_child trc_excludable ">
+ <a title="Now Shipping! Buy Madden Xbox One S now and get loads of extras" href="http://clk.tradedoubler.com/click?p=261853&amp;a=2811279&amp;g=0&amp;epi=PRIME_ENUS_HP_TABEOAB_MADDENXBOX&amp;url=https://www.microsoftstore.com/store/msusa/en_US/pdp/productID.5060192700?icid=en_US_FY17_homepage_hero_3_XBOSmad_160726" rel="nofollow" target="_blank" class=" item-thumbnail-href " data-m="{&quot;n&quot;:&quot;TaboolaAttributionLink&quot;,&quot;y&quot;:12,&quot;i&quot;:139,&quot;o&quot;:1,&quot;p&quot;:&quot;56&quot;}" data-id="139">
+ <div class="thumbBlock_holder"><span class="thumbBlock"><span class="thumbnail-overlay"></span><span class="branding">Microsoft Store</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Now Shipping! Buy Madden Xbox One S now and get loads of extras" href="http://clk.tradedoubler.com/click?p=261853&amp;a=2811279&amp;g=0&amp;epi=PRIME_ENUS_HP_TABEOAB_MADDENXBOX&amp;url=https://www.microsoftstore.com/store/msusa/en_US/pdp/productID.5060192700?icid=en_US_FY17_homepage_hero_3_XBOSmad_160726" rel="nofollow" target="_blank" class=" item-label-href " data-m="{&quot;n&quot;:&quot;TaboolaAttributionLink&quot;,&quot;y&quot;:12,&quot;i&quot;:140,&quot;o&quot;:2,&quot;p&quot;:&quot;56&quot;}" data-id="140"><span class="video-label-box"><span class="video-label video-title trc-smart-ellipsis"><ins style="">Now</ins> <ins>Shipping!</ins> <ins>Buy</ins> <ins>Madden</ins> <ins>Xbox</ins> <ins>One</ins> <ins>S</ins> <ins>now</ins> <ins>and</ins> <ins>get</ins> <ins>loads</ins> <ins>of</ins> <ins>extras</ins></span><span class="branding">Microsoft Store</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~-2693514899062798062~~iKU-hurYljwinbaEwfXyECgxmLoyHRjdbU0VHUqc_ktnsDfdwNF6QNV8ABxYbagufH8lR2FY6ujGXU8s6iLUvA" data-item-title="Stream your night away with the best devices to watch your favorite shows" data-item-thumb="http://img-s-msn-com.akamaized.net/tenant/amp/entityid/AAinyDx.img" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_top syndicatedItem tabNativeItem videoCube_21_child trc_excludable ">
+ <a title="Stream your night away with the best devices to watch your favorite shows" href="http://clk.tradedoubler.com/click?p=261853&amp;a=2811279&amp;g=0&amp;epi=PRIME_ENUS_HP_TABEOAB_STREAM&amp;url=https://www.microsoftstore.com/store/msusa/en_US/list/Streaming-devices/categoryID.69997700" rel="nofollow" target="_blank" class=" item-thumbnail-href " data-m="{&quot;n&quot;:&quot;TaboolaAttributionLink&quot;,&quot;y&quot;:12,&quot;i&quot;:141,&quot;o&quot;:1,&quot;p&quot;:&quot;56&quot;}" data-id="141">
+ <div class="thumbBlock_holder"><span class="thumbBlock"><span class="thumbnail-overlay"></span><span class="branding">Microsoft Store</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Stream your night away with the best devices to watch your favorite shows" href="http://clk.tradedoubler.com/click?p=261853&amp;a=2811279&amp;g=0&amp;epi=PRIME_ENUS_HP_TABEOAB_STREAM&amp;url=https://www.microsoftstore.com/store/msusa/en_US/list/Streaming-devices/categoryID.69997700" rel="nofollow" target="_blank" class=" item-label-href " data-m="{&quot;n&quot;:&quot;TaboolaAttributionLink&quot;,&quot;y&quot;:12,&quot;i&quot;:142,&quot;o&quot;:2,&quot;p&quot;:&quot;56&quot;}" data-id="142"><span class="video-label-box"><span class="video-label video-title trc-smart-ellipsis"><ins style="">Stream</ins> <ins>your</ins> <ins>night</ins> <ins>away</ins> <ins>with</ins> <ins>the</ins> <ins>best</ins> <ins>devices</ins> <ins>to</ins> <ins>watch</ins> <ins>your</ins> <ins>favorite</ins> <ins>shows</ins></span><span class="branding">Microsoft Store</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="trc_clearer"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="tbla loaded trc_related_container trc_spotlight_widget" id="taboola-below-article-thumbnails-promotions-card-layout" data-id="57" data-m="{&quot;i&quot;:57,&quot;p&quot;:52,&quot;n&quot;:&quot;taboolaunderarticlethumbnailsvnext&quot;,&quot;t&quot;:&quot;taboolawidgetvnext&quot;,&quot;o&quot;:5}" data-aop="taboolaunderarticlethumbnailsvnext_taboolawidgetvnext" data-page-type="article" data-placement-id="Below Article Thumbnails Promotions Card Layout" data-placement="" data-partner="TB" data-mode="thumbnails-o2" data-gallery-url="">
+ <div class="trc_rbox_container" style="display: none;">
+ <div>
+ <div id="trc_wrapper_49491" class="trc_rbox thumbnails-o2" style="overflow: hidden; display: none;"></div>
+ </div>
+ </div>
+ </div>
+
+
+
+ <div class="two-back-home-buttons loaded">
+
+
+ <div class="back-msn-home" data-aop="back-to-home">
+ <a href="/en-us" data-id="58" data-m="{&quot;i&quot;:58,&quot;p&quot;:52,&quot;n&quot;:&quot;backToMSNHome&quot;,&quot;t&quot;:&quot;link&quot;,&quot;o&quot;:6}"><span>Go to MSN Home</span></a>
+ </div>
+ <div class="back-vertical-home" data-aop="back-to-vertical-home">
+ <a href="/en-us/news" data-id="59" data-m="{&quot;i&quot;:59,&quot;p&quot;:52,&quot;n&quot;:&quot;backToVerticalHome&quot;,&quot;t&quot;:&quot;link&quot;,&quot;o&quot;:7}"><span>Go to MSN News</span></a>
+ </div>
+ </div>
+
+
+ <script class="loaded">
+ window._flushTimings & amp; & amp;
+ (window._flushTimings.ContentEnd = new Date - window.performance.timing.navigationStart);
+ </script>
+ <a class="floatingfeedback loaded" href="#" data-id="60" data-m="{&quot;i&quot;:60,&quot;p&quot;:52,&quot;n&quot;:&quot;feedbackLink&quot;,&quot;y&quot;:12,&quot;o&quot;:8}" data-aop="floatingfeedbacklink">
+ Feedback
+ </a>
+
+
+
+
+ <button id="fb-conversation-details" data-aop="expand_comments" class="loaded" style="display: inline-block;">
+<span id="comment-count"></span>
+ Join the conversation
+</button>
+ <div id="fbcommentsmodule" data-aop="fbcommentsmodule" class="loaded">
+ <div id="fb-root" class=" fb_reset">
+ <div style="position: absolute; top: -10000px; height: 0px; width: 0px;">
+ <div></div>
+ </div>
+ <div style="position: absolute; top: -10000px; height: 0px; width: 0px;">
+ <div><iframe name="fb_xdm_frame_http" allowtransparency="true" allowfullscreen="true" scrolling="no" id="fb_xdm_frame_http" aria-hidden="true" title="Facebook Cross Domain Communication Frame" tabindex="-1" style="border: medium none;" src="http://staticxx.facebook.com/connect/xd_arbiter/r/fTmIQU3LxvB.js?version=42#channel=f2f2e91836f0462&amp;origin=http%3A%2F%2Fwww.msn.com" frameborder="0"></iframe><iframe name="fb_xdm_frame_https" allowtransparency="true" allowfullscreen="true" scrolling="no" id="fb_xdm_frame_https" aria-hidden="true" title="Facebook Cross Domain Communication Frame" tabindex="-1" style="border: medium none;" src="https://staticxx.facebook.com/connect/xd_arbiter/r/fTmIQU3LxvB.js?version=42#channel=f2f2e91836f0462&amp;origin=http%3A%2F%2Fwww.msn.com" frameborder="0"></iframe></div>
+ </div>
+ </div>
+ <button id="mod-icon" title="Report comment anonymously">Report Abuse</button>
+ <div id="mod-flyout">
+ <button class="close"></button>
+ <div class="modheader">
+ <h2>Report inappropriate content</h2>
+ </div>
+ <div class="messagetitle"></div>
+ <div class="messagebody"></div>
+ <div class="failtitle">Sorry!</div>
+ <div class="failbody">There was a problem. Please try again.</div>
+ <div id="mod-content">
+ <div class="content">
+ <p>
+ Help us maintain a healthy and vibrant community by reporting any illegal or inappropriate behavior that violates MSN’s <a href="http://www.msn.com/en-us/news/legal/facebook/ar-BBmUtxl" target="_blank">Code of Conduct</a>.
+ </p>
+ <form id="mod-form">
+ <input id="sourceurl" name="sourceurl" value="http://www.msn.com/en-us/news/technology/nintendos-first-iphone-game-will-launch-in-december-for-dollar10/ar-AAkm7Xj" type="hidden" />
+ <input id="vertical" name="vertical" value="news" type="hidden" />
+ <input id="locale" name="locale" value="" type="hidden" />
+ <label>Select a category</label>
+ <select id="category" name="category">
+<option value="1">Spam</option>
+<option value="2">Child pornography or exploitation</option>
+<option value="3">Profanity, vulgarity or obscenity</option>
+<option value="4">Copyright infringement</option>
+<option value="5">Harassment or threat</option>
+<option value="6">Threats of suicide</option>
+<option value="7">Other</option>
+ </select>
+
+ <label>Who posted the inappropriate comment (Required)</label>
+ <input id="author" name="author" placeholder="Commenter’s Facebook name" maxlength="100" autocomplete="off" type="text" />
+ <label>Paste the unacceptable comment here</label>
+ <textarea id="comment" name="comment" maxlength="200" placeholder="To help protect your privacy, don’t include personal information like your name and address"></textarea>
+ </form>
+ </div>
+ </div>
+
+ <button class="submitbutton">submit</button>
+ </div>
+ <header id="fbcommentheader">
+ <span>
+ Leave your comment
+</span>
+ </header>
+ <div class="fb-comments fb_iframe_widget fb_iframe_widget_fluid" data-href="http://www.msn.com/en-us/news/technology/nintendos-first-iphone-game-will-launch-in-december-for-dollar10/ar-AAkm7Xj" data-numposts="10" data-colorscheme="light" data-width="100%" data-order-by="social" data-id="61" data-m="{&quot;i&quot;:61,&quot;p&quot;:52,&quot;n&quot;:&quot;main&quot;,&quot;y&quot;:12,&quot;o&quot;:9}" fb-xfbml-state="rendered"><span style="height: 0px;"><iframe id="ff7300554d0b44" name="f3dc3a99f4d94ee" scrolling="no" style="border: medium none; overflow: hidden; height: 0px; width: 100%;" title="Facebook Social Plugin" class="fb_ltr fb_iframe_widget_lift" src="https://www.facebook.com/plugins/comments.php?api_key=1056389514424151&amp;channel_url=http%3A%2F%2Fstaticxx.facebook.com%2Fconnect%2Fxd_arbiter%2Fr%2FfTmIQU3LxvB.js%3Fversion%3D42%23cb%3Df1c96f03218f01c%26domain%3Dwww.msn.com%26origin%3Dhttp%253A%252F%252Fwww.msn.com%252Ff2f2e91836f0462%26relation%3Dparent.parent&amp;colorscheme=light&amp;href=http%3A%2F%2Fwww.msn.com%2Fen-us%2Fnews%2Ftechnology%2Fnintendos-first-iphone-game-will-launch-in-december-for-dollar10%2Far-AAkm7Xj&amp;locale=en_US&amp;numposts=10&amp;order_by=social&amp;sdk=joey&amp;skin=light&amp;width=100%25"></iframe></span></div>
+ </div>
+
+
+ <script type="text/javascript" class="loaded">
+ var vglnk = {
+ key: '33701cec9fcd3b06ac687703f44f1f14'
+ };
+ </script>
+ <script id="viglink" class="loaded">
+ require(["c.deferred"], function() {
+ require({
+ js: '//cdn.viglink.com/api/vglnk.js'
+ });
+ });
+ </script>
+
+ <script class="loaded">
+ window._flushTimings & amp; & amp;
+ (window._flushTimings.PostContentEnd = new Date - window.performance.timing.navigationStart);
+ </script>
+ </main>
+ <aside id="aside" role="complementary" data-region="aside" data-id="62" data-m="{&quot;i&quot;:62,&quot;n&quot;:&quot;aside&quot;,&quot;y&quot;:6}">
+
+
+ <div tabindex="-1" id="rectangle1_article_newsscienceandtechnology_074aae8b-e62f-441c-892b-67174299c454" class="ad non-empty-ad" data-aop="articleasidetopad_ad" data-id="63" data-m="{&quot;i&quot;:63,&quot;p&quot;:62,&quot;n&quot;:&quot;articleasidetopad&quot;,&quot;t&quot;:&quot;ad&quot;,&quot;o&quot;:1}" aria-label="advertisement" style="visibility: visible;">
+
+
+ <div class="outeradcontainer">
+
+ <div id="rectangle1_article_newsscienceandtechnology_container_074aae8b-e62f-441c-892b-67174299c454" class="adcontainer" data-adjs="{&quot;allowedViews&quot;:&quot;SIZE234COLUMN&quot;}" tabindex="-1" aria-label="advertisement" data-ad="{&quot;w&quot;:1194,&quot;h&quot;:710,&quot;c&quot;:4,&quot;v&quot;:1,&quot;d&quot;:1,&quot;r&quot;:1,&quot;s&quot;:false}" style="visibility: visible;"><iframe title="Ad" marginwidth="0" marginheight="0" allowtransparency="true" scrolling="no" id="atwAdFrame1" banid="8314351|25175678" class="uac_300x250" frameborder="0" width="300" height="250"></iframe></div>
+ <a href="http://go.microsoft.com/fwlink/?LinkID=286759" class="adchoicesjs" target="_blank" data-piitxt="adchoices" style="display: block;">
+ <span class="adchoiceicon"></span>
+ <span>AdChoices</span>
+ </a>
+
+ </div>
+
+ </div>
+ <div class="tbla trc_related_container trc_spotlight_widget trc_elastic trc_elastic_trc_97419 " id="taboola-organic-right-rail-thumbnails-multi-story-layout" data-id="64" data-m="{&quot;i&quot;:64,&quot;p&quot;:62,&quot;n&quot;:&quot;taboolahasideorganicvnext&quot;,&quot;t&quot;:&quot;taboolawidgetvnext&quot;,&quot;o&quot;:2}" data-aop="taboolahasideorganicvnext_taboolawidgetvnext" data-page-type="article" data-placement-id="Organic Right Rail Thumbnails Multi Story Layout" data-placement="" data-partner="TB" data-mode="organic-thumbnails-h" data-gallery-url="" data-placement-name="Organic Right Rail Thumbnails Multi Story Layout">
+ <div class="trc_rbox_container" style="display: block;">
+ <div>
+ <div id="trc_wrapper_97419" class="trc_rbox organic-thumbnails-h trc-content-organic " style="overflow: hidden; display: block;">
+ <div id="trc_header_97419" class="trc_rbox_header trc_rbox_border_elm">
+ <div class="trc_header_ext"></div><span class="trc_rbox_header_span">MORE FROM MSN</span></div>
+ <div id="outer_97419" class="trc_rbox_outer">
+ <div id="rbox-t2m" class="trc_rbox_div trc_rbox_border_elm">
+ <div id="internal_trc_97419">
+ <div data-item-id="3742522802657052775" data-item-title="Can an iPhone 7 survive a &amp;#39;space drop&amp;#39;?" data-item-thumb="http://img-s-msn-com.akamaized.net/tenant/amp/entityid/AAjDfD8.img" data-item-syndicated="false" class="videoCube trc_spotlight_item origin-default thumbnail_start videoCube_1_child trc-first-recommendation trc-spotlight-first-recommendation trc_excludable ">
+ <a title="Can an iPhone 7 survive a 'space drop'?" href="http://www.msn.com/en-us/video/other/can-an-iphone-7-survive-a-space-drop/vi-AAjDxsy" target="_parent" class=" item-thumbnail-href " data-m="{&quot;n&quot;:&quot;TaboolaorganicItem&quot;,&quot;y&quot;:13,&quot;i&quot;:143,&quot;o&quot;:1,&quot;p&quot;:&quot;64&quot;,&quot;l&quot;:&quot;AAjDxsy&quot;}" data-id="143">
+ <div class="thumbBlock_holder"><span class="thumbBlock"><span class="thumbnail-overlay"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Can an iPhone 7 survive a 'space drop'?" href="http://www.msn.com/en-us/video/other/can-an-iphone-7-survive-a-space-drop/vi-AAjDxsy" target="_parent" class=" item-label-href " data-m="{&quot;n&quot;:&quot;TaboolaorganicItem&quot;,&quot;y&quot;:13,&quot;i&quot;:144,&quot;o&quot;:2,&quot;p&quot;:&quot;64&quot;,&quot;l&quot;:&quot;AAjDxsy&quot;}" data-id="144"><span class="video-label-box"><span class="video-label video-title trc-smart-ellipsis"><ins style="">Can</ins> <ins>an</ins> <ins>iPhone</ins> <ins>7</ins> <ins>survive</ins> <ins>a</ins> <ins>'space</ins> <ins>drop'?</ins></span><span class="video-label video-category"><span class="uploader-icon" style="background: transparent url(&quot;http://img-s-msn-com.akamaized.net/tenant/amp/entityid/BBha3Gd.img?h=16&amp;w=16&amp;m=6&amp;q=60&amp;u=t&amp;o=t&amp;l=f&amp;f=png&quot;) repeat scroll 0% 0%;"></span><dt style="display:inline">Newsflare on MSN</dt></span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="2013848939721356977" data-item-title="Huawei launches ‘most powerful smartphone in the world’ to take on Apple and Samsung" data-item-thumb="http://img-s-msn-com.akamaized.net/tenant/amp/entityid/AAjR0NK.img" data-item-syndicated="false" class="videoCube trc_spotlight_item origin-default thumbnail_start textItem videoCube_2_child trc_excludable ">
+ <a title="Huawei launches ‘most powerful smartphone in the world’ to take on Apple and Samsung" href="http://www.msn.com/en-us/money/technologyinvesting/huawei-launches-%E2%80%98most-powerful-smartphone-in-the-world%E2%80%99-to-take-on-apple-and-samsung/ar-AAjRfll" target="_parent" class=" item-thumbnail-href " data-m="{&quot;n&quot;:&quot;TaboolaorganicItem&quot;,&quot;y&quot;:13,&quot;i&quot;:145,&quot;o&quot;:1,&quot;p&quot;:&quot;64&quot;,&quot;l&quot;:&quot;AAjRfll&quot;}" data-id="145">
+ <div class="thumbBlock_holder"><span class="thumbBlock"><span class="thumbnail-overlay"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Huawei launches ‘most powerful smartphone in the world’ to take on Apple and Samsung" href="http://www.msn.com/en-us/money/technologyinvesting/huawei-launches-%E2%80%98most-powerful-smartphone-in-the-world%E2%80%99-to-take-on-apple-and-samsung/ar-AAjRfll" target="_parent" class=" item-label-href " data-m="{&quot;n&quot;:&quot;TaboolaorganicItem&quot;,&quot;y&quot;:13,&quot;i&quot;:146,&quot;o&quot;:2,&quot;p&quot;:&quot;64&quot;,&quot;l&quot;:&quot;AAjRfll&quot;}" data-id="146"><span class="video-label-box"><span class="video-label video-title trc-smart-ellipsis"><ins style="">Huawei</ins> <ins>launches</ins> <ins>‘most</ins> <ins class=" lastLineEllipsis ">powerful smartphone in the world’ to take on Apple and Samsung</ins><ins>powerful</ins> <ins>smartphone</ins> <ins>in</ins> <ins>the</ins> <ins>world’</ins> <ins>to</ins> <ins>take</ins> <ins>on</ins> <ins>Apple</ins> <ins>and</ins> <ins>Samsung</ins></span><span class="video-label video-category"><span class="uploader-icon" style="background: transparent url(&quot;http://img-s-msn-com.akamaized.net/tenant/amp/entityid/AA1QzTx.img?h=16&amp;w=16&amp;m=6&amp;q=60&amp;u=t&amp;o=t&amp;l=f&amp;f=png&quot;) repeat scroll 0% 0%;"></span><dt style="display:inline">CNBC on MSN</dt></span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="6427187048178529726" data-item-title="Apple Inc.’s Best Product in 2016" data-item-thumb="http://img-s-msn-com.akamaized.net/tenant/amp/entityid/AAjTpDz.img" data-item-syndicated="false" class="videoCube trc_spotlight_item origin-default thumbnail_start textItem videoCube_3_child trc_excludable ">
+ <a title="Apple Inc.’s Best Product in 2016" href="http://www.msn.com/en-us/money/technology/apple-inc%E2%80%99s-best-product-in-2016/ar-AAjTEZ2" target="_parent" class=" item-thumbnail-href " data-m="{&quot;n&quot;:&quot;TaboolaorganicItem&quot;,&quot;y&quot;:13,&quot;i&quot;:147,&quot;o&quot;:1,&quot;p&quot;:&quot;64&quot;,&quot;l&quot;:&quot;AAjTEZ2&quot;}" data-id="147">
+ <div class="thumbBlock_holder"><span class="thumbBlock"><span class="thumbnail-overlay"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Apple Inc.’s Best Product in 2016" href="http://www.msn.com/en-us/money/technology/apple-inc%E2%80%99s-best-product-in-2016/ar-AAjTEZ2" target="_parent" class=" item-label-href " data-m="{&quot;n&quot;:&quot;TaboolaorganicItem&quot;,&quot;y&quot;:13,&quot;i&quot;:148,&quot;o&quot;:2,&quot;p&quot;:&quot;64&quot;,&quot;l&quot;:&quot;AAjTEZ2&quot;}" data-id="148"><span class="video-label-box"><span class="video-label video-title trc-smart-ellipsis"><ins style="">Apple</ins> <ins>Inc.’s</ins> <ins>Best</ins> <ins>Product</ins> <ins>in</ins> <ins>2016</ins></span><span class="video-label video-category"><span class="uploader-icon" style="background: transparent url(&quot;http://img-s-msn-com.akamaized.net/tenant/amp/entityid/AA4YTIQ.img?h=16&amp;w=16&amp;m=6&amp;q=60&amp;u=t&amp;o=t&amp;l=f&amp;f=png&quot;) repeat scroll 0% 0%;"></span><dt style="display:inline">The Motley Fool on MSN</dt></span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="5011356419798735676" data-item-title="The fall of the house of Obama is coming, and it’s his own fault" data-item-thumb="http://img-s-msn-com.akamaized.net/tenant/amp/entityid/AAkhDmy.img" data-item-syndicated="false" class="videoCube trc_spotlight_item origin-default thumbnail_start textItem videoCube_4_child trc_excludable ">
+ <a title="The fall of the house of Obama is coming, and it’s his own fault" href="http://www.msn.com/en-us/news/opinion/the-fall-of-the-house-of-obama-is-coming-and-it%E2%80%99s-his-own-fault/ar-AAkhJ1P" target="_parent" class=" item-thumbnail-href " data-m="{&quot;n&quot;:&quot;TaboolaorganicItem&quot;,&quot;y&quot;:13,&quot;i&quot;:149,&quot;o&quot;:1,&quot;p&quot;:&quot;64&quot;,&quot;l&quot;:&quot;AAkhJ1P&quot;}" data-id="149">
+ <div class="thumbBlock_holder"><span class="thumbBlock"><span class="thumbnail-overlay"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="The fall of the house of Obama is coming, and it’s his own fault" href="http://www.msn.com/en-us/news/opinion/the-fall-of-the-house-of-obama-is-coming-and-it%E2%80%99s-his-own-fault/ar-AAkhJ1P" target="_parent" class=" item-label-href " data-m="{&quot;n&quot;:&quot;TaboolaorganicItem&quot;,&quot;y&quot;:13,&quot;i&quot;:150,&quot;o&quot;:2,&quot;p&quot;:&quot;64&quot;,&quot;l&quot;:&quot;AAkhJ1P&quot;}" data-id="150"><span class="video-label-box"><span class="video-label video-title trc-smart-ellipsis"><ins style="">The</ins> <ins>fall</ins> <ins>of</ins> <ins>the</ins> <ins>house</ins> <ins>of</ins> <ins class=" lastLineEllipsis ">Obama is coming, and it’s his own fault</ins><ins>Obama</ins> <ins>is</ins> <ins>coming,</ins> <ins>and</ins> <ins>it’s</ins> <ins>his</ins> <ins>own</ins> <ins>fault</ins></span><span class="video-label video-category"><span class="uploader-icon" style="background: transparent url(&quot;http://img-s-msn-com.akamaized.net/tenant/amp/entityid/AA2thnK.img?h=16&amp;w=16&amp;m=6&amp;q=60&amp;u=t&amp;o=t&amp;l=f&amp;f=png&quot;) repeat scroll 0% 0%;"></span><dt style="display:inline">The Washington Post on MSN</dt></span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="trc-widget-footer">
+ <div class="logoDiv link-attribution "><a class="trc_desktop_attribution_link trc_attribution_position_bottom" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=msn-msn&amp;utm_medium=referral&amp;utm_content=organic-thumbnails-h:Organic%20Right%20Rail%20Thumbnails%20Multi%20Story%20Layout:" target="_blank"><span>by Taboola</span></a><a class="trc_mobile_attribution_link trc_attribution_position_bottom" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=msn-msn&amp;utm_medium=referral&amp;utm_content=organic-thumbnails-h:Organic%20Right%20Rail%20Thumbnails%20Multi%20Story%20Layout:" target="_blank"><span>by Taboola</span></a></div>
+ <div class="logoDiv link-disclosure attribution-disclosure-link-sponsored"><a class="trc_desktop_disclosure_link trc_attribution_position_bottom" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=msn-msn&amp;utm_medium=referral&amp;utm_content=organic-thumbnails-h:Organic%20Right%20Rail%20Thumbnails%20Multi%20Story%20Layout:" target="_blank"><span>Sponsored Links</span></a><a class="trc_mobile_disclosure_link trc_attribution_position_bottom" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=msn-msn&amp;utm_medium=referral&amp;utm_content=organic-thumbnails-h:Organic%20Right%20Rail%20Thumbnails%20Multi%20Story%20Layout:" target="_blank"><span>Sponsored Links</span></a></div>
+ <div class="logoDiv link-disclosure attribution-disclosure-link-hybrid"><a class="trc_desktop_disclosure_link trc_attribution_position_bottom" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=msn-msn&amp;utm_medium=referral&amp;utm_content=organic-thumbnails-h:Organic%20Right%20Rail%20Thumbnails%20Multi%20Story%20Layout:" target="_blank"><span>Sponsored Links</span></a><a class="trc_mobile_disclosure_link trc_attribution_position_bottom" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=msn-msn&amp;utm_medium=referral&amp;utm_content=organic-thumbnails-h:Organic%20Right%20Rail%20Thumbnails%20Multi%20Story%20Layout:" target="_blank"><span>Sponsored Links</span></a></div>
+ </div>
+ <div class="trc_clearer"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="tbla trc_related_container trc_spotlight_widget trc_elastic trc_elastic_trc_77119 " id="taboola-right-rail-thumbnails-multi-story-layout" data-id="65" data-m="{&quot;i&quot;:65,&quot;p&quot;:62,&quot;n&quot;:&quot;taboolahasidevnext&quot;,&quot;t&quot;:&quot;taboolawidgetvnext&quot;,&quot;o&quot;:3}" data-aop="taboolahasidevnext_taboolawidgetvnext" data-page-type="article" data-placement-id="Right Rail Thumbnails Multi Story Layout" data-placement="" data-partner="TB" data-mode="thumbnails-h" data-gallery-url="" data-placement-name="Right Rail Thumbnails Multi Story Layout">
+ <div class="trc_rbox_container" style="display: block;">
+ <div>
+ <div id="trc_wrapper_77119" class="trc_rbox thumbnails-h trc-content-sponsored " style="overflow: hidden; display: block;">
+ <div id="trc_header_77119" class="trc_rbox_header trc_rbox_border_elm">
+ <div class="trc_header_ext">
+ <div class="logoDiv link-adc "><a class="trc_desktop_adc_link trc_attribution_position_top" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=msn-msn&amp;utm_medium=referral&amp;utm_content=thumbnails-h:Right%20Rail%20Thumbnails%20Multi%20Story%20Layout:" target="_blank"><span class="trc_adc_wrapper"><span class="trc_adc_s_logo"></span> </span><span class="trc_logos_v_align"> </span></a><a class="trc_mobile_adc_link trc_attribution_position_top" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=msn-msn&amp;utm_medium=referral&amp;utm_content=thumbnails-h:Right%20Rail%20Thumbnails%20Multi%20Story%20Layout:" target="_blank"><span class="trc_adc_wrapper"><span class="trc_adc_s_logo"></span> </span><span class="trc_logos_v_align"> </span></a></div>
+ </div><span class="trc_rbox_header_span">YOU MAY LIKE</span></div>
+ <div id="outer_77119" class="trc_rbox_outer">
+ <div id="rbox-t2m" class="trc_rbox_div trc_rbox_border_elm">
+ <div id="internal_trc_77119">
+ <div data-item-id="~~V1~~-4269470325483731622~~YBJSkKuJm0hY5UTK9k8t32ZcGIWK5fw_wmgxiEl_M6u1YarKi4IwUHBdLe4qT9w1ZfZjQj0NIiph9tASQ-A5dw" data-item-title="Why Intel® Black Belt Dr. Clay Breshears Is Excited About Vectorization [Video]" data-item-thumb="http://cdn.taboolasyndication.com/libtrc/static/thumbnails/44e76e77993c4bbf9784c859a61e433a.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_start syndicatedItem textItem videoCube_1_child trc-first-recommendation trc-spotlight-first-recommendation trc_excludable ">
+ <a title="Why Intel® Black Belt Dr. Clay Breshears Is Excited About Vectorization [Video]" href="https://www.youtube.com/watch?v=q56a_6GbiaE&amp;utm_campaign=IHI-HPC-Q4_16&amp;utm_medium=Taboola&amp;utm_source=Syndication&amp;utm_content=&amp;utm_term=&amp;utm_source=taboola&amp;utm_medium=referral" rel="nofollow" target="_blank" class=" item-thumbnail-href " data-m="{&quot;n&quot;:&quot;TaboolaAttributionLink&quot;,&quot;y&quot;:12,&quot;i&quot;:151,&quot;o&quot;:1,&quot;p&quot;:&quot;65&quot;}" data-id="151">
+ <div class="thumbBlock_holder"><span class="thumbBlock"><span class="thumbnail-overlay"></span><span class="branding">Intel</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Why Intel® Black Belt Dr. Clay Breshears Is Excited About Vectorization [Video]" href="https://www.youtube.com/watch?v=q56a_6GbiaE&amp;utm_campaign=IHI-HPC-Q4_16&amp;utm_medium=Taboola&amp;utm_source=Syndication&amp;utm_content=&amp;utm_term=&amp;utm_source=taboola&amp;utm_medium=referral" rel="nofollow" target="_blank" class=" item-label-href " data-m="{&quot;n&quot;:&quot;TaboolaAttributionLink&quot;,&quot;y&quot;:12,&quot;i&quot;:152,&quot;o&quot;:2,&quot;p&quot;:&quot;65&quot;}" data-id="152"><span class="video-label-box"><span class="video-label video-title trc-smart-ellipsis"><ins style="">Why</ins> <ins>Intel®</ins> <ins>Black</ins> <ins>Belt</ins> <ins>Dr.</ins> <ins>Clay</ins> <ins>Breshears</ins> <ins>Is</ins> <ins class=" lastLineEllipsis ">Excited About Vectorization [Video]</ins><ins>Excited</ins> <ins>About</ins> <ins>Vectorization</ins> <ins>[Video]</ins></span><span class="branding">Intel</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~7122287552353766309~~E3z2CCGN91kAD2WiCWT1_IPXCauBJyhHSWGj3DEjXi5HKh3-AP_Ioae-aW-m-k9HZfZjQj0NIiph9tASQ-A5dw" data-item-title="A Solution That Puts Snoring to Bed" data-item-thumb="http://cdn.taboolasyndication.com/libtrc/static/thumbnails/c5b5a92425e28eda32a2002a0f7b26fe.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_start syndicatedItem textItem videoCube_2_child trc_excludable ">
+ <a title="A Solution That Puts Snoring to Bed" href="http://track.mysnoring-solution.com/f7a91370-8015-0133-1605-3c764e052d94/ROWNetwork?utm_source=Taboola&amp;utm_medium=msn-msn&amp;utm_content=http%3A%2F%2Fcdn.taboolasyndication.com%2Flibtrc%2Fstatic%2Fthumbnails%2Fc5b5a92425e28eda32a2002a0f7b26fe.jpg&amp;utm_term=A+Solution+That+Puts+Snoring+to+Bed" rel="nofollow" target="_blank" class=" item-thumbnail-href " data-m="{&quot;n&quot;:&quot;TaboolaAttributionLink&quot;,&quot;y&quot;:12,&quot;i&quot;:153,&quot;o&quot;:1,&quot;p&quot;:&quot;65&quot;}" data-id="153">
+ <div class="thumbBlock_holder"><span class="thumbBlock"><span class="thumbnail-overlay"></span><span class="branding">My Snoring Solution</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="A Solution That Puts Snoring to Bed" href="http://track.mysnoring-solution.com/f7a91370-8015-0133-1605-3c764e052d94/ROWNetwork?utm_source=Taboola&amp;utm_medium=msn-msn&amp;utm_content=http%3A%2F%2Fcdn.taboolasyndication.com%2Flibtrc%2Fstatic%2Fthumbnails%2Fc5b5a92425e28eda32a2002a0f7b26fe.jpg&amp;utm_term=A+Solution+That+Puts+Snoring+to+Bed" rel="nofollow" target="_blank" class=" item-label-href " data-m="{&quot;n&quot;:&quot;TaboolaAttributionLink&quot;,&quot;y&quot;:12,&quot;i&quot;:154,&quot;o&quot;:2,&quot;p&quot;:&quot;65&quot;}" data-id="154"><span class="video-label-box"><span class="video-label video-title trc-smart-ellipsis"><ins style="">A</ins> <ins>Solution</ins> <ins>That</ins> <ins>Puts</ins> <ins>Snoring</ins> <ins>to</ins> <ins>Bed</ins></span><span class="branding">My Snoring Solution</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~5957475875672978734~~jNlUUawpZbiEQQKoZ9QeR5cP646jYXmr5TNqtyO4Cy6Mh-0DoTyUcoLWfR_4JUnlZfZjQj0NIiph9tASQ-A5dw" data-item-title="Sparta: The Strategy Game Phenomenon of 2016" data-item-thumb="https://console.brax-cdn.com/creatives/041ca465-399e-4bcf-9b7d-edb6b5c8d972/2016-04-07_15_47_29-SP_EN_1200x627_Bolo_2016-0317_01_lvlup_jpg_-_Windows_Photo_Viewer_ae143e32c7a0e9ecd58c0aa08a2aa9e4_ae143e32c7a0e9ecd58c0aa08a2aa9e4.png" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_start syndicatedItem textItem videoCube_3_child trc_excludable ">
+ <a title="Sparta: The Strategy Game Phenomenon of 2016" href="http://plarium.com/play/en/sparta/017_armies_hybrid_anim_g?plid=83495&amp;pxl=taboola_fr&amp;publisherID=msn-msn" rel="nofollow" target="_blank" class=" item-thumbnail-href " data-m="{&quot;n&quot;:&quot;TaboolaAttributionLink&quot;,&quot;y&quot;:12,&quot;i&quot;:155,&quot;o&quot;:1,&quot;p&quot;:&quot;65&quot;}" data-id="155">
+ <div class="thumbBlock_holder"><span class="thumbBlock"><span class="thumbnail-overlay"></span><span class="branding">Sparta Free Online Game</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Sparta: The Strategy Game Phenomenon of 2016" href="http://plarium.com/play/en/sparta/017_armies_hybrid_anim_g?plid=83495&amp;pxl=taboola_fr&amp;publisherID=msn-msn" rel="nofollow" target="_blank" class=" item-label-href " data-m="{&quot;n&quot;:&quot;TaboolaAttributionLink&quot;,&quot;y&quot;:12,&quot;i&quot;:156,&quot;o&quot;:2,&quot;p&quot;:&quot;65&quot;}" data-id="156"><span class="video-label-box"><span class="video-label video-title trc-smart-ellipsis"><ins style="">Sparta:</ins> <ins>The</ins> <ins>Strategy</ins> <ins class=" lastLineEllipsis ">Game Phenomenon of 2016</ins><ins>Game</ins> <ins>Phenomenon</ins> <ins>of</ins> <ins>2016</ins></span><span class="branding">Sparta Free Online Game</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="~~V1~~-2570025351174035641~~vGQae0z0R9NC8B-pFnONvZHknowz0Kq-Xk_QlCSd2jN4m5kHIFLE0bkhLsEwPY3AZfZjQj0NIiph9tASQ-A5dw" data-item-title="Now You Can Track Your Car Using Your Smartphone" data-item-thumb="http://cdn.taboolasyndication.com/libtrc/static/thumbnails/27c596b8d6b9746c53677b3405d0ed82.jpg" data-item-syndicated="true" class="videoCube trc_spotlight_item origin-default thumbnail_start syndicatedItem textItem videoCube_4_child trc_excludable ">
+ <a title="Now You Can Track Your Car Using Your Smartphone" href="http://trknx.com/path/lp.php?trvid=10046&amp;trvx=82ed3095&amp;cid=12&amp;utm_term=msn-msn" rel="nofollow" target="_blank" class=" item-thumbnail-href " data-m="{&quot;n&quot;:&quot;TaboolaAttributionLink&quot;,&quot;y&quot;:12,&quot;i&quot;:157,&quot;o&quot;:1,&quot;p&quot;:&quot;65&quot;}" data-id="157">
+ <div class="thumbBlock_holder"><span class="thumbBlock"><span class="thumbnail-overlay"></span><span class="branding">Trackr Bravo</span><span class="static-text top-right"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Now You Can Track Your Car Using Your Smartphone" href="http://trknx.com/path/lp.php?trvid=10046&amp;trvx=82ed3095&amp;cid=12&amp;utm_term=msn-msn" rel="nofollow" target="_blank" class=" item-label-href " data-m="{&quot;n&quot;:&quot;TaboolaAttributionLink&quot;,&quot;y&quot;:12,&quot;i&quot;:158,&quot;o&quot;:2,&quot;p&quot;:&quot;65&quot;}" data-id="158"><span class="video-label-box"><span class="video-label video-title trc-smart-ellipsis"><ins style="">Now</ins> <ins>You</ins> <ins>Can</ins> <ins>Track</ins> <ins class=" lastLineEllipsis ">Your Car Using Your Smartphone</ins><ins>Your</ins> <ins>Car</ins> <ins>Using</ins> <ins>Your</ins> <ins>Smartphone</ins></span><span class="branding">Trackr Bravo</span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="trc-widget-footer">
+ <div class="logoDiv link-attribution "><a class="trc_desktop_attribution_link trc_attribution_position_bottom" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=msn-msn&amp;utm_medium=referral&amp;utm_content=thumbnails-h:Right%20Rail%20Thumbnails%20Multi%20Story%20Layout:" target="_blank"><span>by Taboola</span><span class="trc_logos_v_align"> </span></a><a class="trc_mobile_attribution_link trc_attribution_position_bottom" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=msn-msn&amp;utm_medium=referral&amp;utm_content=thumbnails-h:Right%20Rail%20Thumbnails%20Multi%20Story%20Layout:" target="_blank"><span>by Taboola</span><span class="trc_logos_v_align"> </span></a></div>
+ <div class="logoDiv link-disclosure attribution-disclosure-link-sponsored"><a class="trc_desktop_disclosure_link trc_attribution_position_bottom" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=msn-msn&amp;utm_medium=referral&amp;utm_content=thumbnails-h:Right%20Rail%20Thumbnails%20Multi%20Story%20Layout:" target="_blank"><span>Sponsored Links</span><span class="trc_logos_v_align"> </span></a><a class="trc_mobile_disclosure_link trc_attribution_position_bottom" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=msn-msn&amp;utm_medium=referral&amp;utm_content=thumbnails-h:Right%20Rail%20Thumbnails%20Multi%20Story%20Layout:" target="_blank"><span>Sponsored Links</span><span class="trc_logos_v_align"> </span></a></div>
+ <div class="logoDiv link-disclosure attribution-disclosure-link-hybrid"><a class="trc_desktop_disclosure_link trc_attribution_position_bottom" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=msn-msn&amp;utm_medium=referral&amp;utm_content=thumbnails-h:Right%20Rail%20Thumbnails%20Multi%20Story%20Layout:" target="_blank"><span>Sponsored Links</span><span class="trc_logos_v_align"> </span></a><a class="trc_mobile_disclosure_link trc_attribution_position_bottom" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=msn-msn&amp;utm_medium=referral&amp;utm_content=thumbnails-h:Right%20Rail%20Thumbnails%20Multi%20Story%20Layout:" target="_blank"><span>Sponsored Links</span><span class="trc_logos_v_align"> </span></a></div>
+ </div>
+ <div class="trc_clearer"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div tabindex="-1" id="rectangle2_article_newsscienceandtechnology_701a8c3e-98ea-443d-bc11-70eb4631c28d" class="ad" data-aop="articleasidebottomad_ad" data-id="66" data-m="{&quot;i&quot;:66,&quot;p&quot;:62,&quot;n&quot;:&quot;articleasidebottomad&quot;,&quot;t&quot;:&quot;ad&quot;,&quot;o&quot;:4}" aria-label="advertisement">
+
+
+ <div class="outeradcontainer">
+
+ <div id="rectangle2_article_newsscienceandtechnology_container_701a8c3e-98ea-443d-bc11-70eb4631c28d" class="adcontainer" data-adjs="{&quot;allowedViews&quot;:&quot;SIZE234COLUMN&quot;}" tabindex="-1" aria-label="advertisement" data-ad="{&quot;w&quot;:1194,&quot;h&quot;:710,&quot;c&quot;:4,&quot;v&quot;:0,&quot;d&quot;:1,&quot;r&quot;:0,&quot;s&quot;:false}">
+ <script class="sdkdapscript">
+ require(["dap"], function(dap) {
+ dap("&amp;amp;AP=1089&amp;amp;PG=NEWUSEN16&amp;amp;PVGUID=09bc8b7b76484883a023f9b400b40653&amp;amp;PROVIDERID=B4PI6K3CY", 300, 250, "rectangle2_article_newsscienceandtechnology_container_701a8c3e-98ea-443d-bc11-70eb4631c28d", {
+ "isEnabled": 0,
+ "isDarkTheme": 0
+ }, {
+ "scrollInit": true,
+ "enableAdRefresh": true,
+ "adaptiveRefresh": true,
+ "adaptiveRefreshInterval": 3000,
+ "prid": "B4PI6K3CY",
+ "adsVNextHeight": "250",
+ "adsVNextWidth": "300",
+ "adContainerType": "fileless",
+ "rid": "09bc8b7b76484883a023f9b400b40653"
+ });
+ });
+ </script>
+ </div>
+ <a href="http://go.microsoft.com/fwlink/?LinkID=286759" class="adchoicesjs" target="_blank" data-piitxt="adchoices" style="display: none;">
+ <span class="adchoiceicon"></span>
+ <span>AdChoices</span>
+ </a>
+
+ </div>
+
+ </div>
+ <section class="morefromproviderrr" data-aop="morefromprovidervnext_morefromprovidervnext" data-id="67" data-m="{&quot;i&quot;:67,&quot;p&quot;:62,&quot;n&quot;:&quot;morefromprovidervnext&quot;,&quot;y&quot;:8,&quot;o&quot;:5}">
+
+ <h3>
+ <header class="heading text"> <span>
+ More from Tech Insider
+</span>
+ </header>
+ </h3>
+
+ <ul>
+ <li data-id="68" data-m="{&quot;i&quot;:68,&quot;p&quot;:67,&quot;n&quot;:&quot;HeadlineItemViewModel&quot;,&quot;y&quot;:13,&quot;l&quot;:&quot;AAkhUUy&quot;,&quot;h&quot;:0,&quot;v&quot;:&quot;news&quot;,&quot;c&quot;:&quot;other&quot;,&quot;o&quot;:1}">
+ <a href="http://www.businessinsider.com/what-daily-serving-of-sugar-looks-like-2016-12" target="_blank">
+ <img alt="Top image" data-src="{&quot;default&quot;:&quot;//img-s-msn-com.akamaized.net/tenant/amp/entityid/AAkhPV2.img?h=66&amp;w=88&amp;m=6&amp;q=60&amp;u=t&amp;o=t&amp;l=f&quot;}" src="http://img-s-msn-com.akamaized.net/tenant/amp/entityid/AAkhPV2.img?h=132&amp;w=176&amp;m=6&amp;q=60&amp;u=t&amp;o=t&amp;l=f" title="Top image - Provided by Business Insider Inc" class="loaded" />
+ <div class="headline-container">
+ <span class="truncate" title="Here's what the maximum amount of sugar you should be eating in a day looks like">Here's what the maximum amount of…</span>
+ <div class="regular-attribution-text attribution">
+ <img alt="Tech Insider Logo" data-src="{&quot;default&quot;:&quot;//img-s-msn-com.akamaized.net/tenant/amp/entityid/BBlfFAC.img?h=16&amp;w=16&amp;m=6&amp;q=60&amp;u=t&amp;o=t&amp;l=f&quot;}" src="http://img-s-msn-com.akamaized.net/tenant/amp/entityid/BBlfFAC.img?h=32&amp;w=32&amp;m=6&amp;q=60&amp;u=t&amp;o=t&amp;l=f" class="loaded" /> Tech Insider
+ </div>
+
+ </div>
+ </a>
+ </li>
+ <li data-id="69" data-m="{&quot;i&quot;:69,&quot;p&quot;:67,&quot;n&quot;:&quot;HeadlineItemViewModel&quot;,&quot;y&quot;:13,&quot;l&quot;:&quot;AAkalbn&quot;,&quot;h&quot;:0,&quot;v&quot;:&quot;news&quot;,&quot;c&quot;:&quot;newsworld&quot;,&quot;o&quot;:2}">
+ <a href="http://www.businessinsider.com/pound-dollar-euro-friday-november-11-2016-11" target="_blank">
+ <img alt="Screen Shot 2016 11 11 at 15.10.08" data-src="{&quot;default&quot;:&quot;//img-s-msn-com.akamaized.net/tenant/amp/entityid/AAkbiyJ.img?h=66&amp;w=88&amp;m=6&amp;q=60&amp;u=t&amp;o=t&amp;l=f&quot;}" src="http://img-s-msn-com.akamaized.net/tenant/amp/entityid/AAkbiyJ.img?h=132&amp;w=176&amp;m=6&amp;q=60&amp;u=t&amp;o=t&amp;l=f" title="Screen Shot 2016 11 11 at 15.10.08 - Provided by Business Insider Inc" class="loaded" />
+ <div class="headline-container">
+ <span class="truncate" title="The pound has charged to the highest level since its 'flash crash'">The pound has charged to the highest level…</span>
+ <div class="regular-attribution-text attribution">
+ <img alt="Tech Insider Logo" data-src="{&quot;default&quot;:&quot;//img-s-msn-com.akamaized.net/tenant/amp/entityid/BBlfFAC.img?h=16&amp;w=16&amp;m=6&amp;q=60&amp;u=t&amp;o=t&amp;l=f&quot;}" src="http://img-s-msn-com.akamaized.net/tenant/amp/entityid/BBlfFAC.img?h=32&amp;w=32&amp;m=6&amp;q=60&amp;u=t&amp;o=t&amp;l=f" class="loaded" /> Tech Insider
+ </div>
+
+ </div>
+ </a>
+ </li>
+ <li data-id="70" data-m="{&quot;i&quot;:70,&quot;p&quot;:67,&quot;n&quot;:&quot;HeadlineItemViewModel&quot;,&quot;y&quot;:13,&quot;l&quot;:&quot;AAk3vBY&quot;,&quot;h&quot;:0,&quot;v&quot;:&quot;news&quot;,&quot;c&quot;:&quot;newsworld&quot;,&quot;o&quot;:3}">
+ <a href="http://www.businessinsider.com/dating-app-maple-match-connects-you-with-single-canadians-2016-11" target="_blank">
+ <img alt="Maple Match" data-src="{&quot;default&quot;:&quot;//img-s-msn-com.akamaized.net/tenant/amp/entityid/AAk3FBL.img?h=66&amp;w=88&amp;m=6&amp;q=60&amp;u=t&amp;o=t&amp;l=f&quot;}" src="http://img-s-msn-com.akamaized.net/tenant/amp/entityid/AAk3FBL.img?h=132&amp;w=176&amp;m=6&amp;q=60&amp;u=t&amp;o=t&amp;l=f" title="Maple Match - Provided by Business Insider Inc" class="loaded" />
+ <div class="headline-container">
+ <span class="truncate" title="This dating app will help you avoid the Trump presidency by connecting you with single Canadians">This dating app will help you avoid th…</span>
+ <div class="regular-attribution-text attribution">
+ <img alt="Tech Insider Logo" data-src="{&quot;default&quot;:&quot;//img-s-msn-com.akamaized.net/tenant/amp/entityid/BBlfFAC.img?h=16&amp;w=16&amp;m=6&amp;q=60&amp;u=t&amp;o=t&amp;l=f&quot;}" src="http://img-s-msn-com.akamaized.net/tenant/amp/entityid/BBlfFAC.img?h=32&amp;w=32&amp;m=6&amp;q=60&amp;u=t&amp;o=t&amp;l=f" class="loaded" /> Tech Insider
+ </div>
+
+ </div>
+ </a>
+ </li>
+ <li data-id="71" data-m="{&quot;i&quot;:71,&quot;p&quot;:67,&quot;n&quot;:&quot;HeadlineItemViewModel&quot;,&quot;y&quot;:13,&quot;l&quot;:&quot;AAk3jiF&quot;,&quot;h&quot;:0,&quot;v&quot;:&quot;news&quot;,&quot;c&quot;:&quot;other&quot;,&quot;o&quot;:4}">
+ <a href="http://www.businessinsider.com/tesla-car-secrets-you-may-not-have-known-2016-11" target="_blank">
+ <img alt="Elon Musk with Tesla" data-src="{&quot;default&quot;:&quot;//img-s-msn-com.akamaized.net/tenant/amp/entityid/AAk3dSu.img?h=66&amp;w=88&amp;m=6&amp;q=60&amp;u=t&amp;o=t&amp;l=f&amp;x=1330&amp;y=274&quot;}" src="http://img-s-msn-com.akamaized.net/tenant/amp/entityid/AAk3dSu.img?h=132&amp;w=176&amp;m=6&amp;q=60&amp;u=t&amp;o=t&amp;l=f&amp;x=1330&amp;y=274" title="Elon Musk with Tesla - Provided by Business Insider Inc" class="loaded" />
+ <div class="headline-container">
+ <span class="truncate" title="11 secrets about Tesla cars you probably didn't know">11 secrets about Tesla cars you probably…</span>
+ <div class="regular-attribution-text attribution">
+ <img alt="Tech Insider Logo" data-src="{&quot;default&quot;:&quot;//img-s-msn-com.akamaized.net/tenant/amp/entityid/BBlfFAC.img?h=16&amp;w=16&amp;m=6&amp;q=60&amp;u=t&amp;o=t&amp;l=f&quot;}" src="http://img-s-msn-com.akamaized.net/tenant/amp/entityid/BBlfFAC.img?h=32&amp;w=32&amp;m=6&amp;q=60&amp;u=t&amp;o=t&amp;l=f" class="loaded" /> Tech Insider
+ </div>
+
+ </div>
+ </a>
+ </li>
+ </ul>
+ <div class="promotionalcontent">
+ <span class="promoimage">
+ <a target="_blank" href="http://www.techinsider.io" data-aop="provider_logo_secondary" data-id="72" data-m="{&quot;i&quot;:72,&quot;p&quot;:67,&quot;n&quot;:&quot;provider_logo_secondary&quot;,&quot;t&quot;:&quot;icon&quot;,&quot;o&quot;:5}">
+ <img alt="Tech Insider" data-src="{&quot;default&quot;:&quot;//img-s-msn-com.akamaized.net/tenant/amp/entityid/BBlfKKG.img?h=100&amp;w=100&amp;m=6&amp;q=60&amp;u=t&amp;o=f&amp;l=f&quot;}" src="http://img-s-msn-com.akamaized.net/tenant/amp/entityid/BBlfKKG.img?h=200&amp;w=200&amp;m=6&amp;q=60&amp;u=t&amp;o=f&amp;l=f" class="loaded" />
+ </a>
+ </span>
+ <span class="promotext">
+ <div class="providername">
+ Tech Insider
+ </div>
+ <div class="readmore">
+ <a target="_blank" href="http://www.techinsider.io" data-aop="provider_promotext" data-id="73" data-m="{&quot;i&quot;:73,&quot;p&quot;:67,&quot;n&quot;:&quot;provider_promotext&quot;,&quot;t&quot;:&quot;link&quot;,&quot;o&quot;:6}">
+ View the full site
+ </a>
+ </div>
+ </span>
+ </div>
+
+
+ </section>
+
+ <div class="tbla trc_related_container trc_spotlight_widget trc_elastic trc_elastic_trc_97545 " id="taboola-right-rail-thumbnails-vertical-multi-story-layout" data-id="74" data-m="{&quot;i&quot;:74,&quot;p&quot;:62,&quot;n&quot;:&quot;taboolahasidemorefromverticalvnext&quot;,&quot;t&quot;:&quot;taboolawidgetvnext&quot;,&quot;o&quot;:6}" data-aop="taboolahasidemorefromverticalvnext_taboolawidgetvnext" data-page-type="article" data-placement-id="From Vertical RR- Multi-story Layout" data-placement="" data-partner="TB" data-mode="organic-thumbnails-h" data-gallery-url="" data-placement-name="From Vertical RR- Multi-story Layout">
+ <div class="trc_rbox_container" style="display: block;">
+ <div>
+ <div id="trc_wrapper_97545" class="trc_rbox organic-thumbnails-h trc-content-organic " style="overflow: hidden; display: block;">
+ <div id="trc_header_97545" class="trc_rbox_header trc_rbox_border_elm">
+ <div class="trc_header_ext"></div><span class="trc_rbox_header_span">MORE FROM NEWS</span></div>
+ <div id="outer_97545" class="trc_rbox_outer">
+ <div id="rbox-t2m" class="trc_rbox_div trc_rbox_border_elm">
+ <div id="internal_trc_97545">
+ <div data-item-id="5795630176636472370" data-item-title="2 hurt as Porter flight evades mid-air object" data-item-thumb="http://img-s-msn-com.akamaized.net/tenant/amp/entityid/AAkhUIK.img" data-item-syndicated="false" class="videoCube trc_spotlight_item origin-default thumbnail_start textItem videoCube_1_child trc-first-recommendation trc-spotlight-first-recommendation trc_excludable ">
+ <a title="2 hurt as Porter flight evades mid-air object" href="http://www.msn.com/en-us/news/canada/2-hurt-as-porter-flight-evades-mid-air-object/ar-AAkhS0r" target="_parent" class=" item-thumbnail-href " data-m="{&quot;n&quot;:&quot;TaboolaorganicItem&quot;,&quot;y&quot;:13,&quot;i&quot;:159,&quot;o&quot;:1,&quot;p&quot;:&quot;74&quot;,&quot;l&quot;:&quot;AAkhS0r&quot;}" data-id="159">
+ <div class="thumbBlock_holder"><span class="thumbBlock"><span class="thumbnail-overlay"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="2 hurt as Porter flight evades mid-air object" href="http://www.msn.com/en-us/news/canada/2-hurt-as-porter-flight-evades-mid-air-object/ar-AAkhS0r" target="_parent" class=" item-label-href " data-m="{&quot;n&quot;:&quot;TaboolaorganicItem&quot;,&quot;y&quot;:13,&quot;i&quot;:160,&quot;o&quot;:2,&quot;p&quot;:&quot;74&quot;,&quot;l&quot;:&quot;AAkhS0r&quot;}" data-id="160"><span class="video-label-box"><span class="video-label video-title trc-smart-ellipsis"><ins style="">2</ins> <ins>hurt</ins> <ins>as</ins> <ins>Porter</ins> <ins>flight</ins> <ins>evades</ins> <ins>mid-air</ins> <ins>object</ins></span><span class="video-label video-category"><span class="uploader-icon" style="background: transparent url(&quot;http://img-s-msn-com.akamaized.net/tenant/amp/entityid/AA3JPH9.img?h=16&amp;w=16&amp;m=6&amp;q=60&amp;u=t&amp;o=t&amp;l=f&amp;f=png&quot;) repeat scroll 0% 0%;"></span><dt style="display:inline">Canadian Press on MSN</dt></span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="4046506143094514317" data-item-title="Temper your enthusiasm for the new Sega Genesis" data-item-thumb="http://img-s-msn-com.akamaized.net/tenant/amp/entityid/AAk6hJM.img" data-item-syndicated="false" class="videoCube trc_spotlight_item origin-default thumbnail_start textItem videoCube_2_child trc_excludable ">
+ <a title="Temper your enthusiasm for the new Sega Genesis" href="http://www.msn.com/en-us/news/technology/temper-your-enthusiasm-for-the-new-sega-genesis/ar-AAk6arq" target="_parent" class=" item-thumbnail-href " data-m="{&quot;n&quot;:&quot;TaboolaorganicItem&quot;,&quot;y&quot;:13,&quot;i&quot;:161,&quot;o&quot;:1,&quot;p&quot;:&quot;74&quot;,&quot;l&quot;:&quot;AAk6arq&quot;}" data-id="161">
+ <div class="thumbBlock_holder"><span class="thumbBlock"><span class="thumbnail-overlay"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Temper your enthusiasm for the new Sega Genesis" href="http://www.msn.com/en-us/news/technology/temper-your-enthusiasm-for-the-new-sega-genesis/ar-AAk6arq" target="_parent" class=" item-label-href " data-m="{&quot;n&quot;:&quot;TaboolaorganicItem&quot;,&quot;y&quot;:13,&quot;i&quot;:162,&quot;o&quot;:2,&quot;p&quot;:&quot;74&quot;,&quot;l&quot;:&quot;AAk6arq&quot;}" data-id="162"><span class="video-label-box"><span class="video-label video-title trc-smart-ellipsis"><ins style="">Temper</ins> <ins>your</ins> <ins class=" lastLineEllipsis ">enthusiasm for the new Sega Genesis</ins><ins>enthusiasm</ins> <ins>for</ins> <ins>the</ins> <ins>new</ins> <ins>Sega</ins> <ins>Genesis</ins></span><span class="video-label video-category"><span class="uploader-icon" style="background: transparent url(&quot;http://img-s-msn-com.akamaized.net/tenant/amp/entityid/AA2t53a.img?h=16&amp;w=16&amp;m=6&amp;q=60&amp;u=t&amp;o=t&amp;l=f&amp;f=png&quot;) repeat scroll 0% 0%;"></span><dt style="display:inline">Polygon on MSN</dt></span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="-1919009066401524532" data-item-title="Heartbreak for Hillary" data-item-thumb="http://img-s-msn-com.akamaized.net/tenant/amp/entityid/AAk50zB.img" data-item-syndicated="false" class="videoCube trc_spotlight_item origin-default thumbnail_start photoItem videoCube_3_child trc_excludable ">
+ <a title="Heartbreak for Hillary" href="http://www.msn.com/en-us/news/photos/heartbreak-for-hillary/ss-AAk55G8" target="_parent" class=" item-thumbnail-href " data-m="{&quot;n&quot;:&quot;TaboolaorganicItem&quot;,&quot;y&quot;:13,&quot;i&quot;:163,&quot;o&quot;:1,&quot;p&quot;:&quot;74&quot;,&quot;l&quot;:&quot;AAk55G8&quot;}" data-id="163">
+ <div class="thumbBlock_holder"><span class="thumbBlock"><span class="thumbnail-overlay"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Heartbreak for Hillary" href="http://www.msn.com/en-us/news/photos/heartbreak-for-hillary/ss-AAk55G8" target="_parent" class=" item-label-href " data-m="{&quot;n&quot;:&quot;TaboolaorganicItem&quot;,&quot;y&quot;:13,&quot;i&quot;:164,&quot;o&quot;:2,&quot;p&quot;:&quot;74&quot;,&quot;l&quot;:&quot;AAk55G8&quot;}" data-id="164"><span class="video-label-box"><span class="video-label video-title trc-smart-ellipsis"><ins style="">Heartbreak</ins> <ins>for</ins> <ins>Hillary</ins></span><span class="video-label video-category"><span class="uploader-icon" style="background: transparent url(&quot;http://img-s-msn-com.akamaized.net/tenant/amp/entityid/AA1Q4vJ.img?h=16&amp;w=16&amp;m=6&amp;q=60&amp;u=t&amp;o=t&amp;l=f&amp;f=png&quot;) repeat scroll 0% 0%;"></span><dt style="display:inline">Reuters on MSN</dt></span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ <div data-item-id="6196365771290066281" data-item-title="Trump breaks protocol — again — on press access" data-item-thumb="http://img-s-msn-com.akamaized.net/tenant/amp/entityid/AAkludm.img" data-item-syndicated="false" class="videoCube trc_spotlight_item origin-default thumbnail_start textItem videoCube_4_child trc_excludable ">
+ <a title="Trump breaks protocol — again — on press access" href="http://www.msn.com/en-us/news/politics/trump-breaks-protocol-%E2%80%94-again-%E2%80%94-on-press-access/ar-AAklBWV" target="_parent" class=" item-thumbnail-href " data-m="{&quot;n&quot;:&quot;TaboolaorganicItem&quot;,&quot;y&quot;:13,&quot;i&quot;:165,&quot;o&quot;:1,&quot;p&quot;:&quot;74&quot;,&quot;l&quot;:&quot;AAklBWV&quot;}" data-id="165">
+ <div class="thumbBlock_holder"><span class="thumbBlock"><span class="thumbnail-overlay"></span></span>
+ <div class="videoCube_aspect"></div>
+ </div>
+ </a><a title="Trump breaks protocol — again — on press access" href="http://www.msn.com/en-us/news/politics/trump-breaks-protocol-%E2%80%94-again-%E2%80%94-on-press-access/ar-AAklBWV" target="_parent" class=" item-label-href " data-m="{&quot;n&quot;:&quot;TaboolaorganicItem&quot;,&quot;y&quot;:13,&quot;i&quot;:166,&quot;o&quot;:2,&quot;p&quot;:&quot;74&quot;,&quot;l&quot;:&quot;AAklBWV&quot;}" data-id="166"><span class="video-label-box"><span class="video-label video-title trc-smart-ellipsis"><ins style="">Trump</ins> <ins>breaks</ins> <ins>protocol</ins> <ins class=" lastLineEllipsis ">— again — on press access</ins><ins>—</ins> <ins>again</ins> <ins>—</ins> <ins>on</ins> <ins>press</ins> <ins>access</ins></span><span class="video-label video-category"><span class="uploader-icon" style="background: transparent url(&quot;http://img-s-msn-com.akamaized.net/tenant/amp/entityid/AA42CeQ.img?h=16&amp;w=16&amp;m=6&amp;q=60&amp;u=t&amp;o=t&amp;l=f&amp;f=png&quot;) repeat scroll 0% 0%;"></span><dt style="display:inline">Associated Press on MSN</dt></span></span></a>
+ <div class=" trc_user_exclude_btn " title="Remove this item"></div>
+ <div class=" trc_exclude_overlay trc_fade "></div>
+ <div class=" trc_undo_btn ">Undo</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="trc-widget-footer">
+ <div class="logoDiv link-attribution "><a class="trc_desktop_attribution_link trc_attribution_position_bottom" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=msn-msn&amp;utm_medium=referral&amp;utm_content=organic-thumbnails-h:From%20Vertical%20RR-%20Multi-story%20Layout:" target="_blank"><span>by Taboola</span></a><a class="trc_mobile_attribution_link trc_attribution_position_bottom" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=msn-msn&amp;utm_medium=referral&amp;utm_content=organic-thumbnails-h:From%20Vertical%20RR-%20Multi-story%20Layout:" target="_blank"><span>by Taboola</span></a></div>
+ <div class="logoDiv link-disclosure attribution-disclosure-link-sponsored"><a class="trc_desktop_disclosure_link trc_attribution_position_bottom" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=msn-msn&amp;utm_medium=referral&amp;utm_content=organic-thumbnails-h:From%20Vertical%20RR-%20Multi-story%20Layout:" target="_blank"><span>Sponsored Links</span></a><a class="trc_mobile_disclosure_link trc_attribution_position_bottom" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=msn-msn&amp;utm_medium=referral&amp;utm_content=organic-thumbnails-h:From%20Vertical%20RR-%20Multi-story%20Layout:" target="_blank"><span>Sponsored Links</span></a></div>
+ <div class="logoDiv link-disclosure attribution-disclosure-link-hybrid"><a class="trc_desktop_disclosure_link trc_attribution_position_bottom" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=msn-msn&amp;utm_medium=referral&amp;utm_content=organic-thumbnails-h:From%20Vertical%20RR-%20Multi-story%20Layout:" target="_blank"><span>Sponsored Links</span></a><a class="trc_mobile_disclosure_link trc_attribution_position_bottom" rel="nofollow" href="http://popup.taboola.com/en/?template=colorbox&amp;utm_source=msn-msn&amp;utm_medium=referral&amp;utm_content=organic-thumbnails-h:From%20Vertical%20RR-%20Multi-story%20Layout:" target="_blank"><span>Sponsored Links</span></a></div>
+ </div>
+ <div class="trc_clearer"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+
+
+ </aside>
+ <script>
+ window._flushTimings & amp; & amp;
+ (window._flushTimings.AsideEnd = new Date - window.performance.timing.navigationStart);
+ </script>
+ </div>
+ </div>
+
+ <div id="prefooter" data-region="prefooter" data-id="75" data-m="{&quot;i&quot;:75,&quot;n&quot;:&quot;prefooter&quot;,&quot;y&quot;:6}">
+
+ </div>
+
+ <div id="foot">
+ <footer role="contentinfo" data-region="footer" data-id="76" data-m="{&quot;i&quot;:76,&quot;n&quot;:&quot;Footer&quot;,&quot;y&quot;:2}">
+
+
+ <a class="copyright microsoft" href="https://www.microsoft.com/en-us/default.aspx" data-id="77" data-m="{&quot;i&quot;:77,&quot;p&quot;:76,&quot;n&quot;:&quot;MicrosoftCopyright&quot;,&quot;y&quot;:14,&quot;o&quot;:1}"><span></span><span></span>© 2016 Microsoft</a>
+ <ul id="social-plugins" data-facebook-like-url="https://www.facebook.com/msn" data-facebook-button-width="14.2rem" data-twitter-follow-screen-name="msn" data-twitter-button-width="9.5rem" data-twitter-show-screen-name="false">
+ <li id="fbcount" data-id="78" data-m="{&quot;i&quot;:78,&quot;p&quot;:76,&quot;n&quot;:&quot;facebook&quot;,&quot;y&quot;:11,&quot;o&quot;:2}"></li>
+ <li id="twcount" data-id="79" data-m="{&quot;i&quot;:79,&quot;p&quot;:76,&quot;n&quot;:&quot;twitter&quot;,&quot;y&quot;:11,&quot;o&quot;:3}"></li>
+ </ul>
+ <ul id="links">
+ <li><a href="https://go.microsoft.com/fwlink/?LinkId=521839" data-id="80" data-m="{&quot;i&quot;:80,&quot;p&quot;:76,&quot;n&quot;:&quot;footer_privacy&quot;,&quot;y&quot;:14,&quot;o&quot;:4}">
+Privacy
+</a>
+ </li>
+ <li><a href="https://go.microsoft.com/fwlink/?LinkID=246338" data-id="81" data-m="{&quot;i&quot;:81,&quot;p&quot;:76,&quot;n&quot;:&quot;footer_legal&quot;,&quot;y&quot;:14,&quot;o&quot;:5}">
+Legal
+</a>
+ </li>
+ <li><a href="https://go.microsoft.com/fwlink/?LinkID=286759" data-id="82" data-m="{&quot;i&quot;:82,&quot;p&quot;:76,&quot;n&quot;:&quot;footer_adprivacyinfo&quot;,&quot;y&quot;:14,&quot;o&quot;:6}">
+About our Ads
+</a>
+ </li>
+ <li><a href="#" id="footer_feedback" data-id="83" data-m="{&quot;i&quot;:83,&quot;p&quot;:76,&quot;n&quot;:&quot;footer_feedback&quot;,&quot;y&quot;:14,&quot;o&quot;:7}">Feedback</a></li>
+ <li><a href="https://go.microsoft.com/fwlink/?LinkId=512703" data-id="84" data-m="{&quot;i&quot;:84,&quot;p&quot;:76,&quot;n&quot;:&quot;footer_help&quot;,&quot;y&quot;:14,&quot;o&quot;:8}">
+Help
+</a>
+ </li>
+ <li><a href="/en-us/msn-worldwide" data-id="85" data-m="{&quot;i&quot;:85,&quot;p&quot;:76,&quot;n&quot;:&quot;footer_worldwide&quot;,&quot;y&quot;:14,&quot;o&quot;:9}">
+MSN Worldwide
+</a>
+ </li>
+ <li><a href="http://newsletters.msn.com/" data-id="86" data-m="{&quot;i&quot;:86,&quot;p&quot;:76,&quot;n&quot;:&quot;footer_newsletter&quot;,&quot;y&quot;:14,&quot;o&quot;:10}">
+Newsletter
+</a>
+ </li>
+ </ul>
+
+
+ </footer>
+ </div>
+ <script>
+ window._flushTimings & amp; & amp;
+ (window._flushTimings.FooterEnd = new Date - window.performance.timing.navigationStart);
+ </script>
+
+ <div class="fbpopup-container" data-aop="fbmsnlikeprompt">
+ <div class="fbpopup">
+ <button class="fbpopup-close" title="close" data-id="87" data-m="{&quot;i&quot;:87,&quot;n&quot;:&quot;main&quot;,&quot;y&quot;:12}"></button>
+ <h2>Found the story interesting?</h2>
+ <p>Like us on Facebook to see similar stories</p>
+ <div class="fb-page fb_iframe_widget" data-id="88" data-m="{&quot;i&quot;:88,&quot;n&quot;:&quot;main&quot;,&quot;y&quot;:12}" data-href="https://www.facebook.com/msn" data-width="450" data-hide-cta="true" data-small-header="true" data-hide-cover="true" data-adapt-container-width="false" data-show-facepile="true" data-show-posts="false" fb-xfbml-state="rendered" fb-iframe-plugin-query="adapt_container_width=false&amp;app_id=1056389514424151&amp;container_width=0&amp;hide_cover=true&amp;hide_cta=true&amp;href=https%3A%2F%2Fwww.facebook.com%2Fmsn&amp;locale=en_US&amp;sdk=joey&amp;show_facepile=true&amp;show_posts=false&amp;small_header=true&amp;width=450"><span style="vertical-align: bottom; width: 450px; height: 0px;"><iframe name="f202a714deb84c" allowtransparency="true" allowfullscreen="true" scrolling="no" title="fb:page Facebook Social Plugin" style="border: medium none; visibility: visible; width: 450px; height: 0px;" src="https://www.facebook.com/plugins/page.php?adapt_container_width=false&amp;app_id=1056389514424151&amp;channel=http%3A%2F%2Fstaticxx.facebook.com%2Fconnect%2Fxd_arbiter%2Fr%2FfTmIQU3LxvB.js%3Fversion%3D42%23cb%3Df37cd586fb1d414%26domain%3Dwww.msn.com%26origin%3Dhttp%253A%252F%252Fwww.msn.com%252Ff2f2e91836f0462%26relation%3Dparent.parent&amp;container_width=0&amp;hide_cover=true&amp;hide_cta=true&amp;href=https%3A%2F%2Fwww.facebook.com%2Fmsn&amp;locale=en_US&amp;sdk=joey&amp;show_facepile=true&amp;show_posts=false&amp;small_header=true&amp;width=450" class="" frameborder="0" width="450px" height="1000px"></iframe></span></div>
+ <div class="fbposttext">
+ <button id="fbdisablelikeprompt" title="i'm already a fan, don't show this again" data-id="89" data-m="{&quot;i&quot;:89,&quot;n&quot;:&quot;main&quot;,&quot;y&quot;:12}">I'm already a fan, don't show this again</button><br />
+ </div>
+ </div>
+ </div>
+
+ <div id="feedback-flyout" data-aop="feedback_flyout">
+ <button id="feedback-close" title="close" data-id="90" data-m="{&quot;i&quot;:90,&quot;n&quot;:&quot;feedback&quot;,&quot;y&quot;:11,&quot;l&quot;:&quot;close&quot;}"></button>
+ <div class="feedbackheader mainheader">
+ <h2>Send Feedback</h2>
+ <button class="selected" title="provide feedback" data-id="91" data-m="{&quot;i&quot;:91,&quot;n&quot;:&quot;feedback&quot;,&quot;y&quot;:11,&quot;l&quot;:&quot;providefeedback&quot;}">Provide Feedback</button>
+ <button id="feedback-reportproblem" title="report a problem" data-id="92" data-m="{&quot;i&quot;:92,&quot;n&quot;:&quot;feedback&quot;,&quot;y&quot;:11,&quot;l&quot;:&quot;reportproblem&quot;}">Report a Problem</button>
+ </div>
+ <div class="feedbackheader thankyou">
+ <h2>We appreciate your input!</h2>
+ </div>
+ <div id="feedback-feedbackarea">
+ <div class="feedbackarea">
+ <label>Select a category:</label>
+ <ul>
+ <li>
+ <p>I'm having problems with Top Destinations</p>
+ </li>
+ <li>
+ <p>I'm having issues searching</p>
+ </li>
+ <li>
+ <p>I'm having problems with Featured Apps</p>
+ </li>
+ <li>
+ <p>My Topics feedback</p>
+ </li>
+ <li>
+ <p>Other</p>
+ </li>
+ </ul>
+ </div>
+ <div class="feedbackarea">
+ <label for="feedback-inputbox">How we can improve?</label>
+ <textarea id="feedback-inputbox" maxlength="400" placeholder="Enter your feedback here. To help protect your privacy, don't include personal information, like your name or address."></textarea>
+ </div>
+ </div>
+ <div id="feedback-starrating">
+ <div class="stars">
+ <p>Please give an overall site rating:</p>
+ <ul data-selected="0">
+ <li></li>
+ <li></li>
+ <li></li>
+ <li></li>
+ <li></li>
+ </ul>
+ </div>
+ </div>
+ <button id="feedback-submit" class="footerbutton" title="submit" data-id="93" data-m="{&quot;i&quot;:93,&quot;n&quot;:&quot;feedback&quot;,&quot;y&quot;:11,&quot;l&quot;:&quot;submit&quot;}">Submit</button>
+ <button id="feedback-ok" class="footerbutton" title="close" data-id="94" data-m="{&quot;i&quot;:94,&quot;n&quot;:&quot;feedback&quot;,&quot;y&quot;:11,&quot;l&quot;:&quot;ok&quot;}">Close</button>
+ <div class="feedbackfooter">
+ <div id="feedback-privacy-link">
+ <a href="https://go.microsoft.com/fwlink/?LinkId=521839" class="footerlink" target="_blank" data-id="95" data-m="{&quot;i&quot;:95,&quot;n&quot;:&quot;feedback&quot;,&quot;y&quot;:14,&quot;l&quot;:&quot;feedbackPrivacyLink&quot;}">Privacy Statement</a>
+ </div>
+ <div id="feedback-help-link">
+ <a href="http://support.microsoft.com/kb/2999557/" class="footerlink" target="_blank" data-id="96" data-m="{&quot;i&quot;:96,&quot;n&quot;:&quot;feedback&quot;,&quot;y&quot;:14,&quot;l&quot;:&quot;feedbackHelpLink&quot;}">Help</a>
+ </div>
+ <div id="feedback-help-support-link">
+ <a href="http://support.microsoft.com/product/msn/msn" class="footerlink" target="_blank" data-id="97" data-m="{&quot;i&quot;:97,&quot;n&quot;:&quot;feedback&quot;,&quot;y&quot;:14,&quot;l&quot;:&quot;feedbackHelpSupportLink&quot;}">Help &amp; Support</a>
+ </div>
+ </div>
+
+ </div>
+
+ <div id="makehomepagecontainer" class="threestep" data-aop="makehomepagedialog" data-id="98" data-m="{&quot;i&quot;:98,&quot;n&quot;:&quot;makehomepage_Manual&quot;,&quot;y&quot;:8}">
+
+ <div id="makehomepageback" data-id="99" data-m="{&quot;i&quot;:99,&quot;p&quot;:98,&quot;n&quot;:&quot;makehomepage.background&quot;,&quot;y&quot;:12,&quot;o&quot;:1}">
+ </div>
+ <div id="makehomepagedialog">
+ <button class="closebutton" data-id="100" data-m="{&quot;i&quot;:100,&quot;p&quot;:98,&quot;n&quot;:&quot;makehomepage.closebutton&quot;,&quot;y&quot;:11,&quot;o&quot;:2}" title="Close">Close</button>
+ <h2>Make MSN my homepage</h2>
+ <ul class="makehomepagesteps">
+ <li>
+ <img alt="On the toolbar, click Firefox Then, click Preferences." data-src="{&quot;default&quot;:&quot;//static-entertainment-eas-s-msn-com.akamaized.net/sc/4d/d03690.png&quot;}" src="//static-entertainment-eas-s-msn-com.akamaized.net/sc/9b/e151e5.gif" />
+ <div>
+ On the toolbar, click Firefox Then, click Preferences.
+ </div>
+ </li>
+ <li>
+ <img alt="In the Preferences window, select General." data-src="{&quot;default&quot;:&quot;//static-entertainment-eas-s-msn-com.akamaized.net/sc/a6/a52ceb.png&quot;}" src="//static-entertainment-eas-s-msn-com.akamaized.net/sc/9b/e151e5.gif" />
+ <div>
+ In the Preferences window, select General.
+ </div>
+ </li>
+ <li>
+ <img alt="In the text box next to Home page, simply type www.msn.com." data-src="{&quot;default&quot;:&quot;//static-entertainment-eas-s-msn-com.akamaized.net/sc/40/9ef8e4.png&quot;}" src="//static-entertainment-eas-s-msn-com.akamaized.net/sc/9b/e151e5.gif" />
+ <div>
+ In the text box next to Home page, simply type www.msn.com.
+ </div>
+ </li>
+ </ul>
+ </div>
+
+ </div>
+
+ <script>
+ _timing.content = +new Date
+ </script>
+ <script>
+ require(["window", "document", "location", "trackInfo", "c.onload"], function(n, t, i, r) {
+ (function u() {
+ var e = r.sitePage,
+ h = e.chartBeatUID,
+ v = e.localeCode,
+ o = e.channel,
+ c = e.department,
+ l = e.chartBeatBase,
+ y = e.chartBeatDomain || i.hostname,
+ p = c ? o + "," + o + ":" + c : o,
+ s, f, a;
+ h & amp; & amp;
+ l ? (s = n._timing || {}, n._st_startpt = s.start || 0, n._st_endpt = s.load || 0, f = n.location.pathname, f === "/" || f === "/en-us/" ? f = "/en-us" : f.charAt(f.length - 1) == "/" & amp; & amp;
+ (f = f.substr(0, f.length - 1)), n._sf_async_config = {
+ uid: h,
+ sessionLength: 15,
+ domain: v + "." + y,
+ sections: p,
+ authors: e.cvPartner ? decodeURIComponent(e.cvPartner.replace("+", "%20")) : "",
+ path: f
+ }, a = (/\bsn:\s*(\w*)/.exec(t.getElementsByTagName("HEAD")[0].getAttribute("data-info")) || {})[1] || "", n._cbq = n._cbq || [], n._cbq.push(["_cdname", a]), require({
+ js: l + "/js/chartbeat.js"
+ })) : setTimeout(u, 50)
+ })()
+ })
+ </script>
+ <script>
+ require(["headData", "pageInstance", "mediator", "c.deferred"], function(headData, pageInstance, mediator) {
+ var url = '//c.bing.com/c.gif?Red3=MSNLI_pd&amp;rid=09bc8b7b-7648-4883-a023-f9b400b40653&amp;lng=en-us&amp;dgk=tmx.pc.moz&amp;imd=0&amp;pn=articlepage&amp;rf=&amp;tp=http%3A%2F%2Fwww.msn.com%2Fen-us%2Fnews%2Ftechnology%2Fnintendos-first-iphone-game-will-launch-in-december-for-dollar10%2Far-AAkm7Xj';
+ if (headData & amp; & amp; headData.clientSettings & amp; & amp; headData.clientSettings.static_page) {
+ mediator.pub(pageInstance.eventName);
+ var rid = pageInstance.getActivityId();
+ url = url.replace(/([?&amp;]rid=)[^&amp;#]*/i, "$1" + rid);
+ }
+ new Image().src = url.replace(/&amp;amp;/g, '&amp;');
+ });
+ </script>
+ <noscript>
+ &lt;div&gt;
+ &lt;img src="//c.bing.com/c.gif?Red3=MSNLI_pd&amp;amp;rid=09bc8b7b-7648-4883-a023-f9b400b40653&amp;amp;lng=en-us&amp;amp;dgk=tmx.pc.moz&amp;amp;imd=0&amp;amp;pn=articlepage&amp;amp;rf=&amp;amp;tp=http%3A%2F%2Fwww.msn.com%2Fen-us%2Fnews%2Ftechnology%2Fnintendos-first-iphone-game-will-launch-in-december-for-dollar10%2Far-AAkm7Xj&amp;amp;ts=noscript" width="1" height="1" alt="" /&gt;
+ &lt;/div&gt;
+ </noscript>
+ <script>
+ require(["headData", "pageInstance", "mediator", "c.deferred"], function(headData, pageInstance, mediator) {
+ var url = '//www.bizographics.com/collect/?fmt=gif&amp;pid=7850';
+ if (headData & amp; & amp; headData.clientSettings & amp; & amp; headData.clientSettings.static_page) {
+ mediator.pub(pageInstance.eventName);
+ var rid = pageInstance.getActivityId();
+ url = url.replace(/([?&amp;]rid=)[^&amp;#]*/i, "$1" + rid);
+ }
+ new Image().src = url.replace(/&amp;amp;/g, '&amp;');
+ });
+ </script>
+ <noscript>
+ &lt;div&gt;
+ &lt;img src="//www.bizographics.com/collect/?fmt=gif&amp;amp;pid=7850&amp;amp;ts=noscript" width="1" height="1" alt="" /&gt;
+ &lt;/div&gt;
+ </noscript>
+ <script>
+ require(["imageLoad"], function(n) {
+ n.cleanup()
+ });
+ define("adLoad", ["viewAware", "classList", "evaluate", "mediator", "pageTime", "document", "imgSrc"], function(n, t, i, r, u, f, e) {
+ function o(n, t) {
+ var i, r;
+ if (n & amp; & amp; n.length)
+ for (i = 0; r = n[i]; ++i) r.nodeType == 1 & amp; & amp;
+ t(r)
+ }
+
+ function s(u, f) {
+ function y(n) {
+ var i, c, h, f;
+ if (n.htmlid == a || n.id == a) {
+ if (i = s.offsetHeight, c = s.getAttribute("ad-loaded-height"), c) try {
+ h = parseInt(c);
+ !isNaN(h) & amp; & amp;
+ i & lt;
+ h & amp; & amp;
+ (i = h)
+ } catch (l) {
+ return
+ }
+ t.contains(u, "layout-large") != null ? t.remove(u, "layout-large") : t.contains(u, "layout-medium") != null ? t.remove(u, "layout-medium") : t.contains(u, "layout-small") != null ? t.remove(u, "layout-small") : t.contains(u, "layout-none") != null ? t.remove(u, "layout-none") : t.contains(u, "no-ad") != null & amp; & amp;
+ t.remove(u, "no-ad");
+ i & lt; = 2 ? f = "layout-none" : v ? i & gt; = 550 ? f = "layout-large" : i & gt; = 200 ? f = "layout-medium" : i & gt; = 50 & amp; & amp;
+ (f = "layout-small"): i & gt;
+ 299 ? f = "layout-large" : i & gt;
+ 99 & amp; & amp;
+ (f = "layout-small");
+ f & amp; & amp;
+ (t.add(u, f), o(u.querySelectorAll("img"), function(n) {
+ e.checkLoad(n)
+ }), r.pub("invalidate-layout", u), r.pub("truncate"))
+ }
+ }
+ var h, v, l, c, s, a, p;
+ if (u & amp; & amp; u.querySelectorAll & amp; & amp;
+ (f = f || ".showcasead,.ad300x250,.ad", h = u.querySelectorAll(f), v = u.className.indexOf("today") & gt; = 0, h.length)) {
+ if (h.length == 1) l = h[0];
+ else switch (n.currentView()) {
+ case n.views.SIZE1ROWSIZE4COLUMN:
+ case n.views.SIZE2ROWSIZE4COLUMN:
+ l = h[h.length - 1];
+ break;
+ default:
+ l = h[0]
+ }(l.style.display = "block", s = l.querySelector(".adcontainer"), s & amp; & amp;
+ (c = i(s.getAttribute("data-adjs")))) & amp; & amp;
+ (a = s.id, v & amp; & amp;
+ (p = s.getAttribute("ad-loaded-height"), p & amp; & amp; y(s)), require(["dap"], function(n) {
+ r.sub(n.adLoadedEvent, y);
+ r.sub(n.adRerenderedEvent, y);
+ c.dap & amp; & amp;
+ n(c.dap, c.width, c.height, a, c.iaf, c.option)
+ }))
+ }
+ }
+ var h = f.querySelectorAll(".today1,.todaymodule,.todaystripe,.skyline,.pagingsection .newlist,.tabsection .newlist,.pagingsection .list,.tabsection .list");
+ return o(h, s), {
+ loadSectionAd: s
+ }
+ });
+ require(["trackInfo", "window", "c.onload"], function(n, t) {
+ function o() {
+ if (n.sitePage.requestId) {
+ var i = u.setupParameters("load_time");
+ i & amp; & amp;
+ (i.timeToOnload = r, i.timeToDomComplete = f, i.timeToFirstByte = e, t.performance & amp; & amp; t.performance.navigation & amp; & amp; t.performance.navigation.type & amp; & amp;
+ (i.navType = t.performance.navigation.type), u.sendUpdate(i))
+ } else t.setTimeout(o, 500)
+ }
+ var u = n.telemetryTracking,
+ r, f, e, i = (t.performance || {}).timing;
+ i & amp; & amp;
+ (r = i.loadEventStart - i.navigationStart, f = i.domComplete - i.navigationStart, e = i.responseStart - i.navigationStart, r & amp; & amp; o())
+ });
+ define("c.dom", 1);
+ window.onload = function(n) {
+ function r() {
+ clearTimeout(t);
+ t = 0;
+ define("c.deferred", 1);
+ require(["c.deferred"], function() {
+ i = setTimeout(f, u)
+ })
+ }
+
+ function f() {
+ clearTimeout(i);
+ i = 0;
+ define("c.postdeferred", 1)
+ }
+ var t, i, u = 2e3;
+ return function(n) {
+ var i;
+ n & amp; & amp;
+ (i = (window.JSON & amp; & amp; window.JSON.parse(n) || {}).dms, u = (window.JSON & amp; & amp; window.JSON.parse(n) || {}).ps);
+ t = setTimeout(r, i || 3e3)
+ }(document.getElementsByTagName("head")[0].getAttribute("data-js")),
+ function(i) {
+ (window._timing || {}).load = +new Date;
+ typeof n == "function" & amp; & amp;
+ n(i);
+ define("c.onload", 1);
+ t & amp; & amp;
+ (window.setImmediate ? setImmediate(r) : setTimeout(r, 0))
+ }
+ }(window.onload);
+ require(["jquery", "afire", "c.dom"], function(n, t) {
+ n("body").hasClass("fltssl-keepwarm") & amp; & amp;
+ setInterval(function() {
+ t("https://www.bing.com/partner/primedns.gif?t=" + +new Date)
+ }, 2e4)
+ })
+ </script>
+ <script>
+ define("trackingConstants", {
+ trackingData: {
+ lastIndex: 100
+ }
+ });
+ </script>
+ <script>
+ _timing.body = +new Date
+ </script>
+
+
+
+ <script src="//pixel.advertising.com/ups/254/occ"></script>
+ <script src="//g.bing.com/uac/request?allowedSizes=728x90,948x250,950x252,940x230,101x1,970x66,970x90,970x250;noperf=1;adclntid=1002;alias=NEWUSEN19;kvmsft_providerid=b4pi6k3cy;kvmsft_rid=09bc8b7b76484883a023f9b400b40653;kvmsft_ext_inv_cd=us;kvmsft_muid=3816c90bb6bf63071807c0c4b74d62f9;kvmsft_pagetype=article;kvpg=msn%2Fen-us%2Fnews%2Ftechnology%2Fnintendos-first-iphone;kvugc=0;kvmn=NEWUSEN19;kvgrp=286780034;kvismob=2;extmirroring=0;kvtile=1;target=_blank;aduho=480;grp=286780034"></script>
+ <script src="//g.bing.com/uac/request?noperf=1;adclntid=1002;alias=NEWUSEN18;noaddonpl=y;kvmsft_providerid=b4pi6k3cy;kvmsft_rid=09bc8b7b76484883a023f9b400b40653;kvmsft_ext_inv_cd=us;kvmsft_muid=3816c90bb6bf63071807c0c4b74d62f9;kvmsft_pagetype=article;kvpg=msn%2Fen-us%2Fnews%2Ftechnology%2Fnintendos-first-iphone;kvugc=0;kvmn=NEWUSEN18;kvgrp=286780034;kvismob=2;extmirroring=0;kvtile=2;target=_blank;aduho=480;grp=286780034"></script>
+ <script src="//g.bing.com/uac/response?allowedSizes=728x90,948x250,950x252,940x230,101x1,970x66,970x90,970x250;noperf=1;adclntid=1002;alias=NEWUSEN19;kvmsft_providerid=b4pi6k3cy;kvmsft_rid=09bc8b7b76484883a023f9b400b40653;kvmsft_ext_inv_cd=us;kvmsft_muid=3816c90bb6bf63071807c0c4b74d62f9;kvmsft_pagetype=article;kvpg=msn%2Fen-us%2Fnews%2Ftechnology%2Fnintendos-first-iphone;kvugc=0;kvmn=NEWUSEN19;kvgrp=286780034;kvismob=2;extmirroring=0;kvtile=1;target=_blank;aduho=480;grp=286780034&amp;ResponseRedirect=appnexus"></script>
+ <script src="//g.bing.com/uac/response?noperf=1;adclntid=1002;alias=NEWUSEN18;noaddonpl=y;kvmsft_providerid=b4pi6k3cy;kvmsft_rid=09bc8b7b76484883a023f9b400b40653;kvmsft_ext_inv_cd=us;kvmsft_muid=3816c90bb6bf63071807c0c4b74d62f9;kvmsft_pagetype=article;kvpg=msn%2Fen-us%2Fnews%2Ftechnology%2Fnintendos-first-iphone;kvugc=0;kvmn=NEWUSEN18;kvgrp=286780034;kvismob=2;extmirroring=0;kvtile=2;target=_blank;aduho=480;grp=286780034&amp;ResponseRedirect=appnexus"></script>
+ <script src="//g.bing.com/uac/response?allowedSizes=728x90,948x250,950x252,940x230,101x1,970x66,970x90,970x250;noperf=1;adclntid=1002;alias=NEWUSEN19;kvmsft_providerid=b4pi6k3cy;kvmsft_rid=09bc8b7b76484883a023f9b400b40653;kvmsft_ext_inv_cd=us;kvmsft_muid=3816c90bb6bf63071807c0c4b74d62f9;kvmsft_pagetype=article;kvpg=msn%2Fen-us%2Fnews%2Ftechnology%2Fnintendos-first-iphone;kvugc=0;kvmn=NEWUSEN19;kvgrp=286780034;kvismob=2;extmirroring=0;kvtile=1;target=_blank;aduho=480;grp=286780034&amp;ResponseRedirect=appnexus"></script>
+ <script src="//g.bing.com/uac/response?noperf=1;adclntid=1002;alias=NEWUSEN18;noaddonpl=y;kvmsft_providerid=b4pi6k3cy;kvmsft_rid=09bc8b7b76484883a023f9b400b40653;kvmsft_ext_inv_cd=us;kvmsft_muid=3816c90bb6bf63071807c0c4b74d62f9;kvmsft_pagetype=article;kvpg=msn%2Fen-us%2Fnews%2Ftechnology%2Fnintendos-first-iphone;kvugc=0;kvmn=NEWUSEN18;kvgrp=286780034;kvismob=2;extmirroring=0;kvtile=2;target=_blank;aduho=480;grp=286780034&amp;ResponseRedirect=appnexus"></script><iframe style="display: none; width: 0px; height: 0px;" id="msn" src="//cdn.at.atwola.com/_media/uac/msn.html#dom=m&amp;muid=3816c90bb6bf63071807c0c4b74d62f9&amp;cd=us&amp;pg=msn%2Fen-us%2Fnews%2Ftechnology%2Fnintendos-first-iphone"></iframe><span><iframe class="trc-hidden" id="trc-pixel-iframe-3515" name="trc-pixel-iframe-3515" style="display:none" width="0" height="0"></iframe></span>
+ <div id="tbl-aug-dyq7yc" class="trc_popover_aug_container">
+ <div id="tbl-aug-96en7x" class="trc_popover_aug_container">
+ <div id="tbl-aug-l40s1t" class="trc_popover_aug_container">
+ <div class=" trc_popover trc_popover_fade trc_bottom ">
+ <div class=" trc_popover_arrow "></div><iframe scrolling="no" src="javascript:void(0)" style="width: 100%;" frameborder="0"></iframe></div>
+ </div>
+ </div>
+ </div>
+</body>
+<!--MSNAvailToken-->
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/nytimes-1/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/nytimes-1/expected-images.json
new file mode 100644
index 000000000..c89c43ca2
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/nytimes-1/expected-images.json
@@ -0,0 +1,4 @@
+[
+ "https:\/\/static01.nyt.com\/images\/2017\/01\/14\/world\/13SUDAN-1\/13SUDAN-1-videoSixteenByNineJumbo1600.jpg",
+ "https:\/\/static01.nyt.com\/images\/2017\/01\/14\/world\/13SUDAN-1\/13SUDAN-1-master768.jpg"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/nytimes-1/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/nytimes-1/expected-metadata.json
new file mode 100644
index 000000000..36da83868
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/nytimes-1/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "Jeffrey Gettleman",
+ "Direction": null,
+ "Excerpt": "For the first time since the 1990s, the country will be able to trade extensively with the United States.",
+ "Image": "https:\/\/static01.nyt.com\/images\/2017\/01\/14\/world\/13SUDAN-1\/13SUDAN-1-videoSixteenByNineJumbo1600.jpg",
+ "Title": "United States to Lift Sudan Sanctions",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/nytimes-1/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/nytimes-1/expected.html
new file mode 100644
index 000000000..60f7148bc
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/nytimes-1/expected.html
@@ -0,0 +1,37 @@
+<div>
+ <div>
+ <figure aria-label="media" data-media-action="modal" id="media-100000004869232" itemid="https://static01.nyt.com/images/2017/01/14/world/13SUDAN-1/13SUDAN-1-master768.jpg" itemprop="associatedMedia" itemscope="" itemtype="http://schema.org/ImageObject" role="group"><span>Photo</span>
+ <div>
+ <p><img alt="" data-mediaviewer-caption="United Nations peacekeepers at a refugee camp in Sudan on Monday. In exchange for the lifting of United States trade sanctions, Sudan has said it will improve access for aid groups, stop supporting rebels in neighboring South Sudan and cooperate with American intelligence agents." data-mediaviewer-credit="Ashraf Shazly/Agence France-Presse — Getty Images" data-mediaviewer-src="https://static01.nyt.com/images/2017/01/14/world/13SUDAN-1/13SUDAN-1-superJumbo.jpg" itemid="https://static01.nyt.com/images/2017/01/14/world/13SUDAN-1/13SUDAN-1-master768.jpg" itemprop="url" src="https://static01.nyt.com/images/2017/01/14/world/13SUDAN-1/13SUDAN-1-master768.jpg"></img></p>
+ <meta content="512" itemprop="height"></meta><meta content="768" itemprop="width"></meta></div>
+ <figcaption itemprop="caption description"><span>United Nations peacekeepers at a refugee camp in Sudan on Monday. In exchange for the lifting of United States trade sanctions, Sudan has said it will improve access for aid groups, stop supporting rebels in neighboring South Sudan and cooperate with American intelligence agents.</span>
+ <span itemprop="copyrightHolder">
+ <span>Credit</span> Ashraf Shazly/Agence France-Presse — Getty Images </span>
+ </figcaption></figure><p data-para-count="194" data-total-count="194">LONDON — After nearly 20 years of hostile relations, the American government plans to reverse its position on <a href="http://topics.nytimes.com/top/news/international/countriesandterritories/sudan/index.html?inline=nyt-geo" title="More news and information about Sudan.">Sudan</a> and lift trade sanctions, Obama administration officials said late Thursday.</p>
+ <p data-para-count="250" data-total-count="444">Sudan is one of the poorest, most isolated and most violent countries in Africa, and for years the United States has imposed punitive measures against it in a largely unsuccessful attempt to get the Sudanese government to stop killing its own people.</p>
+ <p data-para-count="293" data-total-count="737">On Friday, the Obama administration will announce a new Sudan strategy. For the first time since the 1990s, the nation will be able to trade extensively with the United States, allowing it to buy goods like tractors and spare parts and attract much-needed investment in its collapsing economy.</p>
+ <p data-para-count="193" data-total-count="930">In return, Sudan will improve access for aid groups, stop supporting rebels in neighboring <a href="http://topics.nytimes.com/top/news/international/countriesandterritories/south-sudan/index.html?inline=nyt-geo" title="More articles about South Sudan.">South Sudan</a>, cease the bombing of insurgent territory and cooperate with American intelligence agents.</p>
+ <p data-para-count="344" data-total-count="1274">American officials said Sudan had already shown important progress on a number of these fronts. But to make sure the progress continues, the executive order that President Obama plans to sign on Friday, days before leaving office, will have a six-month review period. If Sudan fails to live up to its commitments, the embargo can be reinstated.</p>
+
+ <p data-para-count="204" data-total-count="1478" id="story-continues-1">Analysts said good relations with Sudan could strengthen moderate voices within the country and give the Sudanese government incentives to refrain from the brutal tactics that have defined it for decades.</p>
+ <p data-para-count="295" data-total-count="1773">In 1997, President Bill Clinton imposed a <a href="https://www.treasury.gov/resource-center/sanctions/Programs/Documents/sudan.pdf">comprehensive trade embargo against Sudan and blocked the assets of the Sudanese government</a>, which was suspected of sponsoring international terrorism. In the mid-1990s, Osama bin Laden lived in Khartoum, the capital, as a guest of Sudan’s government.</p>
+ <p data-para-count="224" data-total-count="1997">In 1998, Bin Laden’s agents blew up the United States Embassies in Kenya and Tanzania, killing more than 200 people. In retaliation, Mr. Clinton ordered a cruise missile strike against a pharmaceutical factory in Khartoum.</p>
+ <p data-para-count="474" data-total-count="2471">Since then, American-Sudanese relations have steadily soured. The conflict in Darfur, a vast desert region of western Sudan, was a low point. After rebels in Darfur staged an uprising in 2003, Sudanese security services and their militia allies slaughtered tens of thousands of civilians, leading to condemnation around the world, genocide charges at the International Criminal Court against Sudan’s president, Omar Hassan al-Bashir, and a new round of American sanctions.</p>
+ <p data-para-count="275" data-total-count="2746">American officials said Thursday that the American demand that Mr. Bashir be held accountable had not changed. Neither has Sudan’s status as one of the few countries, along with Iran and Syria, that remain on the <a href="https://www.state.gov/j/ct/list/c14151.htm">American government’s list of state sponsors of terrorism</a>.</p>
+ <p data-para-count="124" data-total-count="2870">Sales of military equipment will still be prohibited, and some Sudanese militia and rebel leaders will still face sanctions.</p>
+ <p data-para-count="264" data-total-count="3134">But the Obama administration is clearly trying to open a door to Sudan. There is intense discontent across the country, and its economy is imploding. American officials have argued for years that it was time to help Sudan dig itself out of the hole it had created.</p>
+ <p data-para-count="231" data-total-count="3365">Officials divulged Thursday that the Sudanese government had allowed two visits by American operatives to a restricted border area near Libya, which they cited as evidence of a new spirit of cooperation on counterterrorism efforts.</p>
+
+ <p data-para-count="248" data-total-count="3613" id="story-continues-2">In addition to continuing violence in Darfur, several other serious conflicts are raging in southern and central Sudan, along with a civil war in newly independent South Sudan, which Sudan has been suspected of inflaming with covert arms shipments.</p>
+ <p data-para-count="145" data-total-count="3758"><a href="http://sudanreeves.org/2016/07/04/eric-reeves-is-now-a-senior-fellow-at-harvard-universitys-francois-xavier-bagnoud-center-for-health-and-human-rights/">Eric Reeves</a>, one of the leading American academic voices on Sudan, said he was “appalled” that the American government was lifting sanctions.</p>
+ <p data-para-count="215" data-total-count="3973">He said that Sudan’s military-dominated government continued to commit grave human rights abuses and atrocities, and he noted that just last week Sudanese security services <a href="http://sudanreeves.org/2017/01/02/7710/">killed</a><a href="http://sudanreeves.org/2017/01/02/7710/"> more than 10 civilians in Darfur</a>.</p>
+ <p data-para-count="250" data-total-count="4223">“There is no reason to believe the guys in charge have changed their stripes,” said Mr. Reeves, a senior fellow at the François-Xavier Bagnoud Center for Health and Human Rights at Harvard University. “These guys are the worst of the worst.”</p>
+ <p data-para-count="208" data-total-count="4431">Obama administration officials said that they had briefed President-elect Donald J. Trump’s transition team, but that they did not know if Mr. Trump would stick with a policy of warmer relations with Sudan.</p>
+ <p data-para-count="143" data-total-count="4574">They said that Sudan had a long way to go in terms of respecting human rights, but that better relations could help increase American leverage.</p>
+ <p data-node-uid="1" data-para-count="149" data-total-count="4723">Mr. Reeves said he thought that the American government was being manipulated and that the Obama administration had made a “deal with the devil.”</p>
+ <p><a href="#whats-next">Continue reading the main story</a>
+ </p></div>
+
+
+
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/nytimes-1/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/nytimes-1/source.html
new file mode 100644
index 000000000..d8d12436b
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/nytimes-1/source.html
@@ -0,0 +1,5530 @@
+<!DOCTYPE html>
+<!--[if (gt IE 9)|!(IE)]> <!-->
+<html xmlns="http://www.w3.org/1999/xhtml" class="flag-limitFabrikSave-on flag-moreFollowSuggestions-on flag-unfollowComments-on flag-scoopTool-on flag-videoVHSCover-on flag-videoVHSShareTools-on flag-videoVHSLive-on flag-videoVHSNewControls-on flag-videoVHSEmbeddedOnly-on flag-allTheEmphases-on flag-freeTrial-on flag-dedupeWhatsNext-on flag-trendingPageLinks-on flag-sprinklePaidPost-on flag-headerBidder-on flag-standardizeWhatsNextCollection-on flag-onlyLayoutA-on flag-simple-on flag-simpleExtendedByline-on flag-collectionsWhatsNext-on flag-mobileMediaViewer-on flag-podcastInLede-on flag-MovieTickets-on flag-MoreInSubsectionFix-on flag-seriesIssueMarginalia-on flag-serverSideCollectionUrls-on flag-multipleBylines-on flag-fabrikWebsocketsOnly-on flag-translationLinks-on flag-papihttps-on flag-verticalFullBleed-on flag-updateRestaurantReservations-on flag-mapDining-on flag-newsletterInlineModule-on flag-PersonalizationApiUpdate-on flag-a9HeaderEnabled-on flag-removeInternationalEdition-on flag-headlineBalancer-on flag-clientSideABRA-on flag-newsletterTitleTracking-on flag-surveyInterstitial-on flag-removeFBMessengerPromo-on flag-removeMarginaliaAbTest-on flag-paidpostSprinklingFix-on flag-abraOverrideVersion-on flag-headlineBalancerEverywhere-on flag-signupFavor-on flag-lazyloadOakImages-on flag-mapleFreeTrial-on flag-adQuerySupportForMultipleUserAddedKeywords-on flag-oakUpdateAdStride-on flag-piiBlockDFP-on flag-adExclusiveIERibbonCheck-on moz desktop section-africa format-medium tone-news app-article page-theme-standard has-large-lede viewport-small viewport-small-10 viewport-small-20 viewport-medium viewport-medium-10 viewport-medium-20 viewport-medium-30 viewport-medium-31 viewport-medium-40 viewport-medium-50 viewport-medium-60 viewport-large viewport-large-10 viewport-large-11 viewport-large-20 viewport-large-21 viewport-large-30 viewport-large-40 has-js has-flexbox has-flexboxlegacy has-canvas has-canvastext has-webgl has-no-touch has-geolocation has-postmessage has-no-websqldatabase has-indexeddb has-hashchange has-history has-draganddrop has-websockets has-rgba has-no-hsla has-multiplebgs has-backgroundsize has-borderimage has-borderradius has-boxshadow has-textshadow has-opacity has-cssanimations has-csscolumns has-cssgradients has-no-cssreflections has-csstransforms has-csstransforms3d has-csstransitions has-fontface has-generatedcontent has-video has-audio has-localstorage has-sessionstorage has-webworkers has-applicationcache has-svg has-inlinesvg has-smil has-svgclippaths has-cors tr-coretext tr-aa-unknown-subpixel has-big-ad edition-domestic type-size-small varvar1 has-ribbon" itemid="http://www.nytimes.com/2017/01/13/world/africa/sudan-sanctions.html" itemtype="http://schema.org/NewsArticle" itemscope="" xmlns:og="http://opengraphprotocol.org/schema/" data-nyt-ab="www-signup-favor-test=0 www-fixed-nav-subscribe-test=1 EC_SampleTest=variantB EC_DigiAbandonmentTest=sendAbandonmentEmail EC_HdAbandonmentTest=control EC_CrosswordsUpsellTest=control mapleFreeTrial=2" style="" data-page-layout="a" data-lede-media-size="large" data-keywords="article-medium" lang="en">
+<!--<![endif]-->
+<!--[if IE 9]> <html lang="en" class="no-js ie9 lt-ie10 section-africa format-medium tone-news app-article page-theme-standard has-top-ad type-size-small has-large-lede" xmlns:og="http://opengraphprotocol.org/schema/"> <![endif]-->
+<!--[if IE 8]> <html lang="en" class="no-js ie8 lt-ie10 lt-ie9 section-africa format-medium tone-news app-article page-theme-standard has-top-ad type-size-small has-large-lede" xmlns:og="http://opengraphprotocol.org/schema/"> <![endif]-->
+<!--[if (lt IE 8)]> <html lang="en" class="no-js lt-ie10 lt-ie9 lt-ie8 section-africa format-medium tone-news app-article page-theme-standard has-top-ad type-size-small has-large-lede" xmlns:og="http://opengraphprotocol.org/schema/"> <![endif]-->
+
+<head>
+ <script type="text/javascript" async="" src="https://cdn.optimizely.com/public/3013110282/data/actions/29733b69bdd90dc3e31e9e196956804af34873c2a71357daf7857860c543bc70.js"></script>
+ <script type="text/javascript" async="" src="//cdn3.optimizely.com/js/geo2.js"></script>
+ <title>United States to Lift Sudan Sanctions - The New York Times</title>
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
+ <link rel="shortcut icon" href="https://static01.nyt.com/favicon.ico" />
+ <link rel="apple-touch-icon-precomposed" sizes="144×144" href="https://static01.nyt.com/images/icons/ios-ipad-144x144.png" />
+ <link rel="apple-touch-icon-precomposed" sizes="114×114" href="https://static01.nyt.com/images/icons/ios-iphone-114x144.png" />
+ <link rel="apple-touch-icon-precomposed" href="https://static01.nyt.com/images/icons/ios-default-homescreen-57x57.png" />
+ <meta name="sourceApp" content="nyt-v5" />
+ <meta id="applicationName" name="applicationName" content="article" />
+ <meta id="foundation-build-id" name="foundation-build-id" content="" />
+ <link rel="canonical" href="https://www.nytimes.com/2017/01/13/world/africa/sudan-sanctions.html" />
+ <link rel="alternate" media="only screen and (max-width: 640px)" href="http://mobile.nytimes.com/2017/01/13/world/africa/sudan-sanctions.html" />
+ <link rel="alternate" media="handheld" href="http://mobile.nytimes.com/2017/01/13/world/africa/sudan-sanctions.html" />
+ <link rel="amphtml" href="http://mobile.nytimes.com/2017/01/13/world/africa/sudan-sanctions.amp.html" />
+ <meta property="al:android:url" content="nytimes://reader/id/100000004868974" />
+ <meta property="al:android:package" content="com.nytimes.android" />
+ <meta property="al:android:app_name" content="NYTimes" />
+ <meta name="twitter:app:name:googleplay" content="NYTimes" />
+ <meta name="twitter:app:id:googleplay" content="com.nytimes.android" />
+ <meta name="twitter:app:url:googleplay" content="nytimes://reader/id/100000004868974" />
+ <link rel="alternate" href="android-app://com.nytimes.android/nytimes/reader/id/100000004868974" />
+ <meta property="al:iphone:url" content="nytimes://www.nytimes.com/2017/01/13/world/africa/sudan-sanctions.html" />
+ <meta property="al:iphone:app_store_id" content="284862083" />
+ <meta property="al:iphone:app_name" content="NYTimes" />
+ <meta property="al:ipad:url" content="nytimes://www.nytimes.com/2017/01/13/world/africa/sudan-sanctions.html" />
+ <meta property="al:ipad:app_store_id" content="357066198" />
+ <meta property="al:ipad:app_name" content="NYTimes" />
+ <meta name="robots" content="noarchive" />
+ <meta itemprop="alternativeHeadline" name="hdl_p" content="Sanctions on Sudan Will Be Lifted" />
+ <meta name="channels" content="" />
+ <meta itemprop="description" name="description" content="For the first time since the 1990s, the country will be able to trade extensively with the United States." />
+ <meta name="genre" itemprop="genre" content="News" />
+ <meta itemprop="identifier" name="articleid" content="100000004868974" />
+ <meta itemprop="usageTerms" name="usageTerms" content="http://www.nytimes.com/content/help/rights/sale/terms-of-sale.html" />
+ <meta itemprop="inLanguage" content="en-US" />
+ <meta name="hdl" content="United States to Lift Sudan Sanctions" />
+ <meta name="col" content="" id="column-name" />
+ <meta name="pdate" content="20170113" />
+ <meta name="utime" content="20170113033838" />
+ <meta name="ptime" content="20170113000004" />
+ <meta name="DISPLAYDATE" content="Jan. 13, 2017" />
+ <meta name="dat" content="Jan. 13, 2017" />
+ <meta name="lp" content="For the first time since the 1990s, the country will be able to trade extensively with the United States." />
+ <meta name="msapplication-starturl" content="http://www.nytimes.com" />
+ <meta name="cre" content="The New York Times" />
+ <meta name="slug" content="13sudan" />
+ <meta property="article:collection" content="https://static01.nyt.com/services/json/sectionfronts/world/africa/index.jsonp" />
+ <meta name="sectionfront_jsonp" content="https://static01.nyt.com/services/json/sectionfronts/world/africa/index.jsonp" />
+ <meta property="og:url" content="http://www.nytimes.com/2017/01/13/world/africa/sudan-sanctions.html" />
+ <meta property="og:type" content="article" />
+ <meta property="og:title" content="United States to Lift Sudan Sanctions" />
+ <meta property="og:description" content="For the first time since the 1990s, the country will be able to trade extensively with the United States." />
+ <meta property="article:published" itemprop="datePublished" content="2017-01-13T00:00:04-05:00" />
+ <meta property="article:modified" itemprop="dateModified" content="2017-01-13T03:38:38-05:00" />
+ <meta property="article:section" itemprop="articleSection" content="Africa" />
+ <meta property="article:section-taxonomy-id" itemprop="articleSection" content="9A43D8FC-F4CF-44D9-9B34-138D30468F8F" />
+ <meta property="article:section_url" content="http://www.nytimes.com/pages/world/index.html" />
+ <meta property="article:top-level-section" content="world" />
+ <meta property="fb:app_id" content="9869919170" />
+ <meta name="twitter:site" value="@nytimes" />
+ <meta property="twitter:url" content="http://www.nytimes.com/2017/01/13/world/africa/sudan-sanctions.html" />
+ <meta property="twitter:title" content="United States to Lift Sudan Sanctions" />
+ <meta property="twitter:description" content="For the first time since the 1990s, the country will be able to trade extensively with the United States." />
+ <meta name="author" content="Jeffrey Gettleman" />
+ <meta name="tone" content="news" id="article-tone" />
+ <meta name="byl" content="By JEFFREY GETTLEMAN" />
+ <meta name="PT" content="article" />
+ <meta name="CG" content="world" />
+ <meta name="SCG" content="africa" />
+ <meta name="PST" content="News" />
+ <meta name="tom" content="News" />
+ <meta name="edt" content="NewYork" />
+ <meta property="og:image" content="https://static01.nyt.com/images/2017/01/14/world/13SUDAN-1/13SUDAN-1-facebookJumbo.jpg" />
+ <meta property="twitter:image:alt" content="United Nations peacekeepers at a refugee camp in Sudan on Monday. In exchange for the lifting of United States trade sanctions, Sudan has said it will improve access for aid groups, stop supporting rebels in neighboring South Sudan and cooperate with American intelligence agents." />
+ <meta property="twitter:image" content="https://static01.nyt.com/images/2017/01/14/world/13SUDAN-1/13SUDAN-1-videoSixteenByNineJumbo1600.jpg" />
+ <meta name="twitter:card" value="summary_large_image" />
+ <meta property="article:author" content="http://www.nytimes.com/by/jeffrey-gettleman" />
+ <meta name="twitter:creator" value="gettleman" />
+ <meta property="article:tag" content="Embargoes and Sanctions" />
+ <meta name="des" content="Embargoes and Sanctions" />
+ <meta property="article:tag" content="Sudan" />
+ <meta name="geo" content="Sudan" />
+ <meta property="article:tag" content="South Sudan" />
+ <meta name="geo" content="South Sudan" />
+ <meta property="article:tag" content="United States" />
+ <meta name="geo" content="United States" />
+ <meta name="keywords" content="Embargoes and Sanctions,Sudan,South Sudan,United States" />
+ <meta name="news_keywords" content="null,Sudan,South Sudan,US" />
+ <meta name="thumbnail_150" content="https://static01.nyt.com/images/2017/01/14/world/13SUDAN-1/13SUDAN-1-thumbLarge.jpg" />
+ <meta name="thumbnail_150_height" content="150" />
+ <meta name="thumbnail_150_width" content="150" />
+ <meta itemprop="thumbnailUrl" name="thumbnail" content="https://static01.nyt.com/images/2017/01/14/world/13SUDAN-1/13SUDAN-1-thumbStandard.jpg" />
+ <meta name="thumbnail_height" content="75" />
+ <meta name="thumbnail_width" content="75" />
+ <meta name="dfp-ad-unit-path" content="world/africa" />
+ <meta name="dfp-amazon-enabled" content="false" />
+ <link rel="alternate" type="application/json+oembed" href="https://www.nytimes.com/svc/oembed/json/?url=http%3A%2F%2Fwww.nytimes.com%2F2017%2F01%2F13%2Fworld%2Fafrica%2Fsudan-sanctions.html" title="United States to Lift Sudan Sanctions" />
+
+ <link id="legacy-zam5nzz" rel="stylesheet" type="text/css" href="https://typeface.nyt.com/css/zam5nzz.css" media="all" />
+ <!--[if (gt IE 9)|!(IE)]> <!-->
+ <link rel="stylesheet" type="text/css" media="screen" href="https://a1.nyt.com/assets/article/20170112-121631/css/article/story/styles.css" />
+ <!--<![endif]-->
+ <!--[if lte IE 9]>
+ <link rel="stylesheet" type="text/css" media="screen" href="https://a1.nyt.com/assets/article/20170112-121631/css/article/story/styles-ie.css" />
+ <![endif]-->
+ <link rel="stylesheet" type="text/css" media="print" href="https://a1.nyt.com/assets/article/20170112-121631/css/article/story/styles-print.css" />
+ <!-- begin abra -->
+ <script type="text/javascript" src="https://cdn.krxd.net/userdata/get?pub=79816aa8-435a-471a-be83-4b3e0946daf2&amp;callback=Krux.ns._default.kxjsonp_userdata"></script>
+ <script type="text/javascript" src="https://beacon.krxd.net/optout_check?callback=Krux.ns._default.kxjsonp_optOutCheck"></script>
+ <script type="text/javascript" src="https://beacon.krxd.net/cookie2json?callback=Krux.ns._default.kxjsonp_3pevents"></script>
+ <script async="" src="//cdn.krxd.net/ctjs/controltag.js.e0ce6829d34e23edb3c90f3615dd81e0"></script>
+ <script async="" src="//connect.facebook.net/en_US/fbevents.js"></script>
+ <script async="" src="//dc8xl0ndzn2cb.cloudfront.net/sp.js"></script>
+ <script type="text/javascript" async="" src="https://z.moatads.com/googleessencenyt485873431/moatcontent.js?firstimp_bsg=22&amp;loyalty_bsg=2&amp;avgsestime_bsg=3310172&amp;referral_bsg="></script>
+ <script async="" src="//www.google-analytics.com/analytics.js"></script>
+ <script type="text/javascript" async="" src="https://cdn.krxd.net/controltag/HrUwtkcl.js"></script>
+ <script async="" src="//www.google-analytics.com/analytics.js"></script>
+ <script type="text/javascript" async="" src="//www.googletagservices.com/tag/js/gpt.js"></script>
+ <script type="text/javascript" async="" src="https://aax.amazon-adsystem.com/e/dtb/bid?src=3030&amp;u=https%3A%2F%2Fwww.nytimes.com%2F2017%2F01%2F13%2Fworld%2Fafrica%2Fsudan-sanctions.html%3Fhp%26action%3Dclick%26pgtype%3DHomepage%26clickSource%3Dstory-heading%26module%3Dsecond-column-region%26region%3Dtop-news%26WT.nav%3Dtop-news%26_r%3D0&amp;cb=796157&amp;t=1000"></script>
+ <script type="text/javascript" async="" src="https://c.amazon-adsystem.com/aax2/amzn_ads.js"></script>
+ <script type="text/javascript" async="" src="https://contextual.media.net/rtbsapub.php?&amp;rt=3&amp;callback=window.advBidxc.ybncaresponse&amp;&amp;cid=8CU2553YN&amp;apid=2&amp;requestString=782647924*4%7C728x90%7C8CU2RX232%7C254501352%40377617315*4%7C300x250%7C8CU2RX232%7C256680872%40244728629*4%7C300x250%7C8CU2RX232%7C175452886&amp;crid=782647924,377617315,244728629&amp;sd=-1&amp;hlt=1&amp;https=1&amp;requrl=https%3A%2F%2Fwww.nytimes.com%2F2017%2F01%2F13%2Fworld%2Fafrica%2Fsudan-sanctions.html%3Fhp%26action%3Dclick%26pgtype%3DHomepage%26clickSource%3Dstory-heading%26module%3Dsecond-column-region%26region%3Dtop-news%26WT.nav%3Dtop-news%26_r%3D0&amp;tr=0.16604063573667838"></script>
+ <script type="text/javascript" async="" src="https://contextual.media.net/rtbsapub.php?&amp;cid=8CU2553YN&amp;requestString=782647924*35%7C728x90%7C8CU2553YN%7C37acf79822fd5ef0ce3e%40568721512*35%7C300x250%7C8CU2553YN%7Cb6a4ed6f6ba3cd941ebb%40377617315*35%7C300x250%7C8CU2553YN%7Cb6a4ed6f6ba3cd941ebb%40244728629*35%7C300x250%7C8CU2553YN%7Cb6a4ed6f6ba3cd941ebb%40723554252*35%7C300x250%7C8CU2553YN%7Cb6a4ed6f6ba3cd941ebb&amp;crid=782647924%2C568721512%2C377617315%2C244728629%2C723554252&amp;requrl=https%3A%2F%2Fwww.nytimes.com%2F2017%2F01%2F13%2Fworld%2Fafrica%2Fsudan-sanctions.html%3Fhp%26action%3Dclick%26pgtype%3DHomepage%26clickSource%3Dstory-heading%26module%3Dsecond-column-region%26region%3Dtop-news%26WT.nav%3Dtop-news%26_r%3D0&amp;bl=1&amp;https=1&amp;hlt=1&amp;rt=3&amp;callback=window.advBidxc.sonobiresp&amp;tr=0.3176720955301836"></script>
+ <script type="text/javascript" async="" src="https://contextual.media.net/rtbsapub.php?&amp;cid=8CU2553YN&amp;requestString=782647924*29%7C728x90%7C12330%7C100278_472392_2%40568721512*29%7C300x250%7C12330%7C100278_472392_15%40377617315*29%7C300x250%7C12330%7C100278_472392_15%40244728629*29%7C300x250%7C12330%7C100278_472392_15%40723554252*29%7C300x250%7C12330%7C100278_472392_15&amp;crid=782647924%2C568721512%2C377617315%2C244728629%2C723554252&amp;requrl=https%3A%2F%2Fwww.nytimes.com%2F2017%2F01%2F13%2Fworld%2Fafrica%2Fsudan-sanctions.html%3Fhp%26action%3Dclick%26pgtype%3DHomepage%26clickSource%3Dstory-heading%26module%3Dsecond-column-region%26region%3Dtop-news%26WT.nav%3Dtop-news%26_r%3D0&amp;bl=1&amp;https=1&amp;hlt=1&amp;rt=3&amp;callback=window.advBidxc.rubiconresp&amp;tr=0.728656740141873"></script>
+ <script type="text/javascript" async="" src="https://contextual.media.net/rtbsapub.php?&amp;cid=8CU2553YN&amp;requestString=782647924*23%7C728x90%7E970x250%7C8CU2553YN%7Carts-desk%40568721512*23%7C300x250%7C8CU2553YN%7Carts-desk%40377617315*23%7C300x250%7C8CU2553YN%7Carts-desk%40244728629*23%7C300x250%7C8CU2553YN%7Carts-desk%40723554252*23%7C300x250%7C8CU2553YN%7Carts-desk&amp;crid=782647924%2C568721512%2C377617315%2C244728629%2C723554252&amp;requrl=https%3A%2F%2Fwww.nytimes.com%2F2017%2F01%2F13%2Fworld%2Fafrica%2Fsudan-sanctions.html%3Fhp%26action%3Dclick%26pgtype%3DHomepage%26clickSource%3Dstory-heading%26module%3Dsecond-column-region%26region%3Dtop-news%26WT.nav%3Dtop-news%26_r%3D0&amp;bl=1&amp;https=1&amp;hlt=1&amp;tr=0.5552491140194954"></script>
+ <script src="https://as-sec.casalemedia.com/headertag/?v=9&amp;fn=cygnus_index_parse_res&amp;s=167943&amp;r=%7B%22id%22%3A363549212%2C%22site%22%3A%7B%22page%22%3A%22https%3A%2F%2Fwww.nytimes.com%2F2017%2F01%2F13%2Fworld%2Fafrica%2Fsudan-sanctions.html%3Fhp%26action%3Dclick%26pgtype%3DHomepage%26clickSource%3Dstory-heading%26module%3Dsecond-column-region%26region%3Dtop-news%26WT.nav%3Dtop-news%26_r%3D0%22%2C%22ref%22%3A%22%22%7D%2C%22imp%22%3A%5B%7B%22id%22%3A%221%22%2C%20%22banner%22%3A%7B%22w%22%3A728%2C%22h%22%3A90%2C%22topframe%22%3A1%7D%2C%22ext%22%3A%20%7B%22sid%22%3A%22CT%22%2C%22siteID%22%3A168042%7D%7D%2C%7B%22id%22%3A%222%22%2C%20%22banner%22%3A%7B%22w%22%3A970%2C%22h%22%3A250%2C%22topframe%22%3A1%7D%2C%22ext%22%3A%20%7B%22sid%22%3A%22New2%22%2C%22siteID%22%3A168042%7D%7D%5D%7D&amp;t=300" async="true" type="text/javascript"></script>
+ <script>
+ var NYTD = NYTD || {};
+ NYTD.Abra = function(t) {
+ "use strict";
+
+ function n(t) {
+ var n = u[t];
+ return n & amp; & amp;
+ n[1] || null
+ }
+
+ function e(t, n) {
+ if (t) {
+ var e, o, r = n[0],
+ u = n[1],
+ a = 0,
+ c = 0;
+ if (1 !== u.length || 4294967296 !== u[0])
+ for (e = i(t + " " + r) & gt; & gt; & gt; 0, a = 0, c = 0; o = u[a++];)
+ if (e & lt;
+ (c += o[0])) return o
+ }
+ }
+
+ function o(n, e, o, i) {
+ f += "subject=" + n + "&amp;test=" + encodeURIComponent(e) + "&amp;variant=" + encodeURIComponent(o || 0) + "&amp;url=" + encodeURIComponent(t.location.href) + "&amp;instant=1&amp;skipAugment=true\n", i & amp; & amp;
+ s.push(i), c || (c = t.setTimeout(r, 0))
+ }
+
+ function r() {
+ var n = new t.XMLHttpRequest,
+ e = s;
+ n.withCredentials = !0, n.open("POST", a), n.onreadystatechange = function() {
+ var t, o;
+ if (4 == n.readyState)
+ for (t = 200 == n.status ? null : new Error(n.statusText); o = e.shift();) o(t)
+ }, n.send(f), f = "", s = [], c = null
+ }
+
+ function i(t) {
+ for (var n, e, o, r, i, u, a, c = 0, f = 0, s = [], l = [n = 1732584193, e = 4023233417, ~n, ~e, 3285377520], h = [], p = t.length; f & lt; = p;) h[f & gt; & gt; 2] |= (f & lt; p ? t.charCodeAt(f) : 128) & lt; & lt;
+ 8 * (3 - f++ % 4);
+ for (h[a = p + 8 & gt; & gt; 2 | 15] = p & lt; & lt; 3; c & lt; = a; c += 16) {
+ for (n = l, f = 0; f & lt; 80; n = [0 | [(u = ((t = n[0]) & lt; & lt; 5 | t & gt; & gt; & gt; 27) + n[4] + (s[f] = f & lt; 16 ? ~~h[c + f] : u & lt; & lt; 1 | u & gt; & gt; & gt; 31) + 1518500249) + ((e = n[1]) & amp;
+ (o = n[2]) | ~e & amp;
+ (r = n[3])), i = u + (e ^ o ^ r) + 341275144, u + (e & amp; o | e & amp; r | o & amp; r) + 882459459, i + 1535694389][0 | f++/20],t,e&lt;&lt;30|e&gt;&gt;&gt;2,o,r])u=s[f-3]^s[f-8]^s[f-14]^s[f-16];for(f=5;f;)l[--f]=l[f]+n[f]|0}return l[0]}var u,a,c,f="",s=[];return n.init=function(n,r){var i,c,f,s,l,h=[],p=(t.document.cookie.match(/ ( ^ | ;) * nyt - a = ([ ^ ;] * ) / ) || [])[2], d = (t.document.cookie.match(/(^|;) *ab7=([^;]*)/) || [])[2];
+ if (u) throw new Error("can't init twice");
+ if (a = r, u = {}, d)
+ for (d = decodeURIComponent(d).split("&amp;"), i = 0; i & lt; d.length; i++) l = d[i].split("="), u[l[0]] = [, l[1]], l[1] & amp; & amp; h.push(l[0] + "=" + l[1]);
+ for (i = 0; i & lt; n.length; i++) f = n[i], c = f[0], c in u || (s = e(p, f) || [], u[c] = s, s[1] & amp; & amp; h.push(c.replace(/[^\w-]/g) + "=" + ("" + s[1]).replace(/[^\w-]/g)), s[2] & amp; & amp; o("ab-alloc", c, s[1])); h.length & amp; & amp; t.document.documentElement.setAttribute("data-nyt-ab", h.join(" "))
+ }, n.reportExposure = function(n, e) {
+ var r = u[n];
+ r & amp; & amp;
+ r[2] ? o("ab-expose", n, r[1], e) : e & amp; & amp;
+ t.setTimeout(function() {
+ e(null)
+ }, 0)
+ }, n
+ }(this);
+ </script>
+ <script>
+ NYTD.Abra.init([
+ ["www-story-reader-satisfaction", [
+ [21474837, "Control", 1],
+ [21474836, "VariantA", 1],
+ [4252017623, null, 0]
+ ]],
+ ["www-signup-favor-test", [
+ [2147483648, "0", 1],
+ [2147483648, "1", 1]
+ ]],
+ ["www-fixed-nav-subscribe-test", [
+ [4294967296, "1", 1]
+ ]],
+ ["EC_SampleTest", [
+ [2147483648, "variantA", 0],
+ [2147483648, "variantB", 0]
+ ]],
+ ["EC_DigiAbandonmentTest", [
+ [4294967296, "sendAbandonmentEmail", 1]
+ ]],
+ ["EC_HdAbandonmentTest", [
+ [2147483648, "control", 1],
+ [2147483648, "sendAbandonmentEmail", 1]
+ ]],
+ ["EC_CrosswordsUpsellTest", [
+ [2147483648, "control", 1],
+ [2147483648, "upsell", 1]
+ ]],
+ ["mapleFreeTrial", [
+ [1073741824, "0", 1],
+ [1073741824, "1", 1],
+ [1073741824, "2", 1],
+ [1073741824, "3", 1]
+ ]]
+ ], '//et.nytimes.com/')
+ </script>
+ <!-- end abra -->
+ <script id="page-config-data" type="text/json">
+ {
+ "pageconfig": {
+ "ledeMediaSize": "large",
+ "keywords": ["article-medium"],
+ "collections": {
+ "sections": ["world", "africa", "us"]
+ }
+ }
+ }
+ </script>
+ <script id="display_overrides">
+ []
+ </script>
+
+ <!-- Media.net Initialization Script -->
+ <!--NY times Desktop-->
+ <script type="text/javascript">
+ var PREBID_TIMEOUT = 300;
+ var googletag = googletag || {};
+ googletag.cmd = googletag.cmd || [];
+ (function() {
+ window.advBidxc = window.advBidxc || {};
+ window.advBidxc.renderAd = function() {};
+ window.advBidxc.startTime = new Date().getTime();
+ window.advBidxc.customerId = "8CU2553YN"; //Media.net Customer ID
+ function loadScript(tagSrc) {
+ if (tagSrc.substr(0, 4) !== 'http') {
+ var isSSL = 'https:' == document.location.protocol;
+ tagSrc = (isSSL ? 'https:' : '') + tagSrc;
+ }
+ var scriptTag = document.createElement('script'),
+ placeTag = document.getElementsByTagName("script")[0];
+ scriptTag.type = 'text/javascript';
+ scriptTag.async = true;
+ scriptTag.src = tagSrc;
+ placeTag.parentNode.insertBefore(scriptTag, placeTag);
+ }
+
+ function loadGPT() {
+ if (!window.advBidxc.isAdServerLoaded) {
+ loadScript('//www.googletagservices.com/tag/js/gpt.js');
+ window.advBidxc.isAdServerLoaded = true;
+ }
+ }
+
+ window.advBidxc.loadGPT = setTimeout(loadGPT, PREBID_TIMEOUT);
+
+ var isSSL = 'https:' == document.location.protocol;
+ var mnSrc = (isSSL ? 'https:' : 'http:') + '//contextual.media.net/bidexchange.js?cid=' + window.advBidxc.customerId + (isSSL ? '&amp;https=1' : '');
+ document.write('&lt;scr' + 'ipt type="text/javascript" src="' + mnSrc + '"&gt;&lt;/scr' + 'ipt&gt;');
+ })();
+ </script>
+ <script type="text/javascript" src="https://contextual.media.net/bidexchange.js?cid=8CU2553YN&amp;https=1"></script>
+
+ <!-- A9 Initialization Script -->
+ <script type="text/javascript">
+ var amznads = amznads || {};
+ amznads.asyncParams = {
+ 'id': '3030',
+ 'callbackFn': function() {
+ try {
+ amznads.setTargetingForGPTAsync('amznslots');
+ } catch (e) {}
+ },
+ 'timeout': 1000
+ };
+
+ (function() {
+ var a, s = document.getElementsByTagName("script")[0];
+ a = document.createElement("script");
+ a.type = "text/javascript";
+ a.async = true;
+ a.src = "https://c.amazon-adsystem.com/aax2/amzn_ads.js";
+ s.parentNode.insertBefore(a, s);
+ })();
+ </script>
+ <script type="text/json" id="trending-link-json">
+ </script>
+
+ <!--esi
+<script id="user-info-data" type="application/json">
+<esi:include src="/svc/web-products/userinfo-v3.json" />
+</script>
+-->
+ <script id="magnum-feature-flags" type="application/json">
+ ["limitFabrikSave", "moreFollowSuggestions", "unfollowComments", "scoopTool", "videoVHSCover", "videoVHSShareTools", "videoVHSLive", "videoVHSNewControls", "videoVHSEmbeddedOnly", "allTheEmphases", "freeTrial", "dedupeWhatsNext", "trendingPageLinks", "sprinklePaidPost", "headerBidder", "standardizeWhatsNextCollection", "onlyLayoutA", "simple", "simpleExtendedByline", "collectionsWhatsNext", "mobileMediaViewer", "podcastInLede", "MovieTickets", "MoreInSubsectionFix", "seriesIssueMarginalia", "serverSideCollectionUrls", "multipleBylines", "fabrikWebsocketsOnly", "translationLinks", "papihttps", "verticalFullBleed", "updateRestaurantReservations", "mapDining", "newsletterInlineModule", "PersonalizationApiUpdate", "a9HeaderEnabled", "removeInternationalEdition", "headlineBalancer", "clientSideABRA", "newsletterTitleTracking", "surveyInterstitial", "removeFBMessengerPromo", "removeMarginaliaAbTest", "paidpostSprinklingFix", "abraOverrideVersion", "headlineBalancerEverywhere", "signupFavor", "lazyloadOakImages", "mapleFreeTrial", "adQuerySupportForMultipleUserAddedKeywords", "oakUpdateAdStride", "piiBlockDFP", "adExclusiveIERibbonCheck"]
+ </script>
+ <script>
+ var require = {
+ baseUrl: 'https://a1.nyt.com/assets/',
+ waitSeconds: 20,
+ paths: {
+ 'foundation': 'article/20170112-121631/js/foundation',
+ 'shared': 'article/20170112-121631/js/shared',
+ 'article': 'article/20170112-121631/js/article',
+ 'application': 'article/20170112-121631/js/article/story',
+ 'videoFactory': 'https://static01.nyt.com/js2/build/video/2.0/videofactoryrequire',
+ 'videoPlaylist': 'https://static01.nyt.com/js2/build/video/players/extended/2.0/appRequire',
+ 'auth/mtr': 'https://static01.nyt.com/js/mtr',
+ 'auth/growl': 'https://static01.nyt.com/js/auth/growl/default',
+ 'vhs': 'https://static01.nyt.com/video/vhs/build/vhs-2.x.min'
+ },
+ map: {
+ '*': {
+ 'story/main': 'article/story/main'
+ }
+ }
+ };
+ </script>
+ <!--[if (gte IE 9)|!(IE)]> <!-->
+ <script data-main="foundation/main" src="https://a1.nyt.com/assets/article/20170112-121631/js/foundation/lib/framework.js"></script>
+ <!--<![endif]-->
+ <!--[if lt IE 9]>
+<script>
+ require.map['*']['foundation/main'] = 'foundation/legacy_main';
+</script>
+<script data-main="foundation/legacy_main" src="https://a1.nyt.com/assets/article/20170112-121631/js/foundation/lib/framework.js"></script>
+<![endif]-->
+ <script>
+ require(['foundation/main'], function() {
+ require(['auth/mtr', 'auth/growl']);
+ });
+ </script>
+ <script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="foundation/main" src="https://a1.nyt.com/assets/article/20170112-121631/js/foundation/main.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="foundation/hosts" src="https://a1.nyt.com/assets/article/20170112-121631/js/foundation/hosts.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="auth/mtr" src="https://static01.nyt.com/js/mtr.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="auth/growl" src="https://static01.nyt.com/js/auth/growl/default.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="article/story/main" src="https://a1.nyt.com/assets/article/20170112-121631/js/article/story/main.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="foundation/views/ad-view-manager" src="https://a1.nyt.com/assets/article/20170112-121631/js/foundation/views/ad-view-manager.js"></script>
+ <script src="https://securepubads.g.doubleclick.net/gpt/pubads_impl_107.js" async=""></script>
+ <link rel="prefetch" href="https://tpc.googlesyndication.com/safeframe/1-0-5/html/container.html" />
+ <script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="ab//shared-991cd5a3401318f801cc1ffb884e0e85" src="//static01.nyt.com/ab//shared-991cd5a3401318f801cc1ffb884e0e85.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="ab/tests/bar1/pricing_inyt_1116/main-0ebb29e45df391fbc905fca2621641c3" src="//static01.nyt.com/ab/tests/bar1/pricing_inyt_1116/main-0ebb29e45df391fbc905fca2621641c3.js"></script>
+ <style>
+ @import url(https://a1.nyt.com/fonts/css/fonts.css);
+ .font-smoothing {
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale
+ }
+
+ .sub_small_hide {
+ display: none
+ }
+
+ .NYT5Style .masthead-tools {
+ padding-right: 0
+ }
+
+ .NYT5Style .masthead-tools #bar1-3panel {
+ display: inline;
+ vertical-align: top;
+ background-image: none
+ }
+
+ #bar1-3panel {
+ border: 0;
+ position: relative
+ }
+
+ #bar1-nyt5wrapper {
+ opacity: 0
+ }
+
+ #nyt-button-sub {
+ -moz-box-sizing: border-box;
+ background-color: #6288A5;
+ border: 1px solid #4D7B9F;
+ border-radius: 3px;
+ color: #fff !important;
+ display: inline-block;
+ font-size: 1em;
+ line-height: 13px;
+ font-family: franklin-normal-700, sans-serif;
+ font-style: normal;
+ font-weight: 700;
+ padding: 7px 10px 6px;
+ text-transform: uppercase !important;
+ text-decoration: none
+ }
+
+ #nyt-button-sub:hover {
+ background-color: #326891;
+ border: 1px solid #265E8B;
+ text-decoration: none
+ }
+
+ .bar1-hidden {
+ margin-right: 8px
+ }
+
+ .NYT4 .bar1-hidden,
+ .NYT4 #bar1-3panel {
+ display: none
+ }
+
+ #hovercard {
+ width: 450px;
+ height: 330px;
+ display: none;
+ margin-left: -360px;
+ z-index: 1000000152;
+ border: 0;
+ position: absolute;
+ left: 50%;
+ top: 30px;
+ text-align: left;
+ box-shadow: 0 0 5px #888;
+ white-space: normal;
+ background: #b0f4c0 url("https://static01.nyt.com/adx/images/ADS/41/53/ad.415335/nyt_logo_428x60.png") 40px 40px no-repeat;
+ background-size: 179px 25px;
+ text-transform: none
+ }
+
+ #bar1-headline {
+ position: absolute;
+ top: 81px;
+ left: 40px;
+ font-family: karnak-normal-400, sans-serif;
+ font-style: normal;
+ font-weight: 400;
+ font-size: 30px;
+ line-height: 34px;
+ color: #000;
+ font-weight: 100;
+ width: 300px;
+ text-align: left
+ }
+
+ #bar1-divider {
+ width: 90px;
+ height: 2px;
+ border-bottom: 2px solid #000;
+ position: absolute;
+ left: 40px;
+ top: 161px
+ }
+
+ #bar1-headline span {
+ color: #0ea587
+ }
+
+ #bar1-subhead {
+ position: absolute;
+ top: 180px;
+ left: 40px;
+ color: #000;
+ font-family: franklin-normal-300, sans-serif;
+ font-style: normal;
+ font-weight: 300;
+ font-size: 20px;
+ line-height: 25px;
+ width: 300px;
+ text-align: left
+ }
+
+ #bar1-subhead span {
+ font-family: franklin-normal-600, sans-serif;
+ font-weight: 600
+ }
+
+ #bar1-cta {
+ font-family: franklin-normal-700, sans-serif;
+ font-style: normal;
+ font-weight: 700;
+ position: absolute;
+ top: 250px;
+ left: 40px;
+ width: 133px;
+ height: 37px;
+ background: #000;
+ font-size: 13px;
+ line-height: 36px;
+ padding: 0;
+ text-align: center;
+ text-decoration: none;
+ border-radius: 3px;
+ cursor: pointer;
+ color: #fff;
+ text-transform: uppercase;
+ border: 0
+ }
+
+ #hovercard:after {
+ bottom: 100%;
+ left: 350px;
+ border: solid transparent;
+ content: " ";
+ width: 0;
+ height: 0;
+ position: absolute;
+ pointer-events: none;
+ border-bottom-color: #b0f4c0;
+ border-width: 8px;
+ margin: 0
+ }
+
+ #bar1-offer-msg {
+ font-family: franklin-normal-400, sans-serif;
+ font-style: normal;
+ font-weight: 400;
+ position: absolute;
+ top: 270px;
+ left: 40px !important;
+ width: 150px;
+ height: 30px;
+ font-size: 11px;
+ line-height: 15px;
+ padding: 0;
+ text-decoration: none;
+ color: #363636
+ }
+
+ #hovercard hr {
+ margin: 4px;
+ width: 320px;
+ opacity: 0.5;
+ color: #000
+ }
+
+ .hover-subhead {
+ font-family: franklin-normal-500, sans-serif;
+ font-style: normal;
+ font-weight: 500;
+ font-size: 11px;
+ line-height: 13px;
+ color: #333;
+ margin: 1px 0 0;
+ width: 170px;
+ position: absolute;
+ top: 10px
+ }
+
+ #hovercard h3 a,
+ #hovercard p a {
+ color: #000 !important;
+ text-decoration: none;
+ display: block
+ }
+
+ a.nyt-button-actions {
+ background: #f7f7f5;
+ color: #58595b !important;
+ width: 126px;
+ border-radius: 3px;
+ border: 1px solid #ccc !important;
+ text-transform: uppercase;
+ font-family: franklin-normal-500, sans-serif;
+ font-style: normal;
+ font-weight: 500;
+ font-size: 11px;
+ line-height: 15px;
+ text-align: center;
+ padding: 6px 0;
+ cursor: pointer;
+ display: block;
+ position: absolute;
+ top: 10px;
+ left: 194px;
+ text-decoration: none !important
+ }
+
+ #hovercard a.nyt-button-actions:hover {
+ background: #3c6791;
+ color: #fff !important;
+ text-decoration: none !important
+ }
+
+ #hovercard a.nyt-button-actions.highlightButton:link,
+ #hovercard a.nyt-button-actions.highlightButton:visited {
+ color: #fff !important;
+ background: #3c6791;
+ text-decoration: none !important
+ }
+
+ a.split-all-button {
+ background: #f3f3f4;
+ width: 345px;
+ height: 30px;
+ position: absolute;
+ bottom: 0;
+ font-family: franklin-normal-500, sans-serif;
+ font-style: normal;
+ font-weight: 500;
+ font-size: 11px;
+ line-height: 30px;
+ margin: 0;
+ border: 1px solid #CCC;
+ text-align: center;
+ vertical-align: middle
+ }
+
+ #hovercard a.split-all-button:hover {
+ background: #fff;
+ color: #004276 !important;
+ text-decoration: underline !important
+ }
+
+ .NYT5Style #hovercard {
+ top: 26px
+ }
+
+ .ad.bar1-ad a.bar1-introtext,
+ #memberTools .bar1-introtext,
+ .masthead-tools a.bar1-introtext {
+ text-decoration: none;
+ color: #666
+ }
+
+ .masthead-tools a.bar1-introtext {
+ position: relative;
+ margin-top: 2px
+ }
+
+ .bar1-introtext {
+ padding-right: 5px
+ }
+
+ .ad.bar1-ad .user-subscriptions-menu li a {
+ padding-left: 0;
+ border-left: 0
+ }
+
+ @media screen and (-webkit-min-device-pixel-ratio: 0) {
+ .NYT5Style #hovercard {
+ left: 50%;
+ top: 29px
+ }
+ .NYT5Style #hovercard:before {
+ top: -14px
+ }
+ }
+
+ #interactiveABC #bar1-3panel {
+ display: none
+ }
+ </style>
+ <meta name="WT.z_cad" content="1" />
+ <script type="text/javascript" src="https://tagx.nytimes.com/?url=https%3A%2F%2Fwww.nytimes.com%2F2017%2F01%2F13%2Fworld%2Fafrica%2Fsudan-sanctions.html%3Fhp%26action%3Dclick%26pgtype%3DHomepage%26clickSource%3Dstory-heading%26module%3Dsecond-column-region%26region%3Dtop-news%26WT.nav%3Dtop-news%26_r%3D0&amp;assetUrl=https%3A%2F%2Fwww.nytimes.com%2F2017%2F01%2F13%2Fworld%2Fafrica%2Fsudan-sanctions.html&amp;referrer=&amp;CG=world&amp;SCG=africa&amp;sourceApp=nyt-v5&amp;_cache_buster_=1484305041057"></script>
+ <script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="https://a1.nyt.com/analytics/tagx-simple.min.js" src="https://a1.nyt.com/analytics/tagx-simple.min.js"></script>
+ <script type="text/javascript" src="https://static01.nyt.com/bi/js/analytics/EventTracker.js"></script>
+ <script type="text/javascript" src="https://a248.e.akamai.net/chartbeat.download.akamai.com/102508/js/chartbeat.js"></script>
+ <script type="text/javascript" src="https://sb.scorecardresearch.com/c2/3005403/cs.js"></script>
+ <script type="text/javascript" src="https://static01.nyt.com/bi/js/analytics/comscore.js"></script>
+ <script class="kxct" data-id="HrUwtkcl" data-timing="async" data-version="3.0" type="text/javascript">
+ window.Krux || ((Krux = function() {
+ Krux.q.push(arguments)
+ }).q = []);
+ (function() {
+ var k = document.createElement('script');
+ k.type = 'text/javascript';
+ k.async = true;
+ k.src = 'https://cdn.krxd.net/controltag/HrUwtkcl.js';
+ var s = document.getElementsByTagName('script')[0];
+ s.parentNode.insertBefore(k, s);
+ })();
+ </script>
+ <script type="text/javascript" src="//static01.nyt.com/bi/js/analytics/show_ads.js"></script>
+ <script type="text/javascript" src="//dc8xl0ndzn2cb.cloudfront.net/js/nytimes/v1/keywee.js"></script><iframe src="https://a3013110282.cdn.optimizely.com/client_storage/a3013110282.html"></iframe></head>
+
+<body class="abtest-test abtest-variation">
+ <div id="critical-alerts" class="critical-alerts messenger">
+ <div id="account-alerts" style="display: none; height: 0px;" class="account-alerts alerts">
+ <div class="message-bed"></div>
+ </div>
+ <div id="breaking-news-alerts" style="display: none; height: 0px;" class="breaking-news-alerts alerts">
+ <div class="message-bed"></div>
+ </div>
+ </div>
+ <div id="suggestions" style="display: none; height: 0px;" class="suggestions messenger">
+ <div class="message-bed"></div>
+ </div><iframe marginwidth="0" marginheight="0" scrolling="no" id="_advBidxc_beacons" style="display: none !important;" width="0" height="0" frameborder="0"></iframe><iframe marginwidth="0" marginheight="0" scrolling="no" id="_mN_cksync_0" style="display: none !important;" src="https://contextual.media.net/checksync.php?&amp;cv=23&amp;cid=8CU2553YN&amp;vsSync=1&amp;force=0&amp;https=1&amp;vid=00001484305036106019903966067699&amp;vsid=1272962499660628&amp;sd=-1&amp;cc=TW&amp;ugd=4&amp;dn=www.nytimes.com&amp;lper=0&amp;prv=APPNEXUS%2CRUBICON_PRIVATE%2CSONOBI&amp;rtime=181" width="0" height="0" frameborder="0"></iframe>
+
+ <style>
+ .lt-ie10 .messenger.suggestions {
+ display: block !important;
+ height: 50px;
+ }
+
+ .lt-ie10 .messenger.suggestions .message-bed {
+ background-color: #f8e9d2;
+ border-bottom: 1px solid #ccc;
+ }
+
+ .lt-ie10 .messenger.suggestions .message-container {
+ padding: 11px 18px 11px 30px;
+ }
+
+ .lt-ie10 .messenger.suggestions .action-link {
+ font-family: "nyt-franklin", arial, helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: bold;
+ color: #a81817;
+ text-transform: uppercase;
+ }
+
+ .lt-ie10 .messenger.suggestions .alert-icon {
+ background: url('https://static01.nyt.com/images/icons/icon-alert-12x12-a81817.png') no-repeat;
+ width: 12px;
+ height: 12px;
+ display: inline-block;
+ margin-top: -2px;
+ float: none;
+ }
+
+ .lt-ie10 .masthead,
+ .lt-ie10 .navigation,
+ .lt-ie10 .comments-panel {
+ margin-top: 50px !important;
+ }
+
+ .lt-ie10 .ribbon {
+ margin-top: 97px !important;
+ }
+ </style>
+ <div id="suggestions" class="suggestions messenger nocontent robots-nocontent" style="display:none;">
+ <div class="message-bed">
+ <div class="message-container last-message-container">
+ <div class="message">
+ <span class="message-content">
+ <i class="icon alert-icon"></i><span class="message-title">NYTimes.com no longer supports Internet Explorer 9 or earlier. Please upgrade your browser.</span>
+ <a href="http://www.nytimes.com/content/help/site/ie9-support.html" class="action-link">LEARN MORE »</a>
+ </span>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div id="shell" class="shell">
+ <header id="masthead" class="masthead masthead-theme-standard" role="banner">
+ <div class="container">
+ <div id="announcements" style="display: none; width: 1160px; left: 45px;" class="announcements messenger">
+ <div class="message-bed"></div>
+ </div>
+ <div class="quick-navigation button-group">
+ <button class="button sections-button"><i class="icon sprite-icon"></i><span class="button-text">Sections</span></button>
+ <button class="button home-button" data-href="http://www.nytimes.com/" title="Go to the home page to see the latest top stories."><i class="icon sprite-icon"></i>
+ <span class="button-text">Home</span>
+ </button>
+ <button class="button search-button"><i class="icon sprite-icon"></i><span class="button-text">Search</span></button>
+ <a class="button skip-button skip-to-content visually-hidden focusable" href="#story-header">Skip to content</a>
+ <a class="button skip-button skip-to-navigation visually-hidden focusable" href="#site-index-navigation">Skip to navigation</a>
+ <a class="button skip-button skip-to-mobile visually-hidden focusable" href="http://mobile.nytimes.com/2017/01/13/world/africa/sudan-sanctions.html">View mobile version</a>
+ </div>
+ <!-- close button-group -->
+ <div class="branding">
+ <h2 class="branding-heading">
+ <a id="branding-heading-link" href="http://www.nytimes.com/">
+ <span class="visually-hidden">The New York Times</span>
+ <svg xmlns="http://www.w3.org/2000/svg" class="nyt-logo" width="185" height="26" role="img" aria-label="The New York Times"><image width="185" height="26" xlink:href="https://a1.nyt.com/assets/article/20170112-121631/images/foundation/logos/nyt-logo-185x26.svg" xmlns:xlink="http://www.w3.org/1999/xlink" src="https://a1.nyt.com/assets/article/20170112-121631/images/foundation/logos/nyt-logo-185x26.png" alt="The New York Times" border="0"/></svg><img src="https://a1.nyt.com/assets/article/20170112-121631/images/foundation/logos/nyt-logo-185x26.png" class="nyt-logo-print" alt="The New York Times" /></a>
+ </h2>
+ <script>
+ window.magnum.writeLogo('small', 'https://a1.nyt.com/assets/article/20170112-121631/images/foundation/logos/', 'world', 'masthead-theme-standard', 'standard', 'branding-heading-link', 'article');
+ </script>
+ </div>
+ <!-- close branding -->
+ <div class="story-meta">
+ <h6 class="kicker"><span class="kicker-label"><a href="http://www.nytimes.com/pages/world/africa/index.html">Africa</a></span><span class="pipe">|</span>United States to Lift Sudan Sanctions</h6>
+ </div>
+ <!-- close story-meta -->
+ <div class="user-tools">
+ <div id="Bar1" class="ad bar1-ad nocontent robots-nocontent">
+ <div id="bar1-nyt5wrapper" class="user-subscriptions-group" data-campaign-name="abtest_bar1_pricing_inyt_1116" style="opacity: 1;">
+ <ul class="user-subscriptions-menu">
+ <li class="bar1-hidden hidden"><span class="bar1--meter--count">1</span> of 10 articles read</li>
+ <li id="bar1-3panel" class="user-subscriptions-menu user-subscriptions-group bar1_hover" style="opacity: 1;"><a id="nyt-button-sub" href="http://www.nytimes.com/adx/bin/adx_click.html?type=goto&amp;opzn&amp;page=www.nytimes.com/yr/mo/day/world/africa&amp;pos=Bar1&amp;sn2=d6f8750e/a2bac435&amp;sn1=7d209493/f1a5fc9b&amp;camp=abtest_bar1_pricing_inyt_1116&amp;ad=abtest_pricing_inyt_1116_bar1_ad&amp;goto=http%3A%2F%2Fwww%2Enytimes%2Ecom%2Fsubscriptions%2Finyt%2Flp88U9Y%2Ehtml%3Fadxc%3D284918%26adxa%3D415335%26page%3Dwww.nytimes.com/yr/mo/day/world/africa/sudan-sanctions.html%26pos%3DBar1%26campaignId%3D6HY7R" target="_blank" data-content-collection="" data-content-placement="1" style="height: 30px;" class="button">SUBSCRIBE NOW</a>
+ <a id="hovercard" class="font-smoothing" data-campaign-name="abtest_bar1_pricing_inyt_1116" href="http://www.nytimes.com/adx/bin/adx_click.html?type=goto&amp;opzn&amp;page=www.nytimes.com/yr/mo/day/world/africa&amp;pos=Bar1&amp;sn2=d6f8750e/a2bac435&amp;sn1=7d209493/f1a5fc9b&amp;camp=abtest_bar1_pricing_inyt_1116&amp;ad=abtest_pricing_inyt_1116_bar1_ad&amp;goto=http%3A%2F%2Fwww%2Enytimes%2Ecom%2Fsubscriptions%2Finyt%2Flp88U9Y%2Ehtml%3Fadxc%3D284918%26adxa%3D415335%26page%3Dwww.nytimes.com/yr/mo/day/world/africa/sudan-sanctions.html%26pos%3DBar1%26campaignId%3D6HY7R" target="_blank">
+ <div id="bar1-body">
+ <div id="bar1-headline">The world’s most<br />trusted perspective.</div>
+ <div id="bar1-divider"></div>
+ <div id="bar1-subhead">Get The Times.<br /><span id="bar1-savings">As low as $1.88 a week</span></div>
+ <div id="bar1-cta">SUBSCRIBE NOW</div>
+ </div>
+ </a>
+ </li>
+ </ul>
+ </div><a id="subscribe_small" href="http://www.nytimes.com/adx/bin/adx_click.html?type=goto&amp;opzn&amp;page=www.nytimes.com/yr/mo/day/world/africa&amp;pos=Bar1&amp;sn2=d6f8750e/a2bac435&amp;sn1=7d209493/f1a5fc9b&amp;camp=abtest_bar1_pricing_inyt_1116&amp;ad=abtest_pricing_inyt_1116_bar1_ad&amp;goto=http%3A%2F%2Fwww%2Enytimes%2Ecom%2Fsubscriptions%2Finyt%2Flp88U9Y%2Ehtml%3Fadxc%3D284918%26adxa%3D415335%26page%3Dwww.nytimes.com/yr/mo/day/world/africa/sudan-sanctions.html%26pos%3DBar1%26campaignId%3D" class="subscribe-link" style="visibility: visible;" target="_blank">Subscribe</a>
+ <div id="mkt-floodlight" style="display:inline"></div>
+ <!-- ADXINFO classification="Text_Link" campaign="abtest_bar1_pricing_inyt_1116" priority="9100" isInlineSafe="Y" width="0" height="0" -->
+ <!-- A/B test delivery snippet-->
+ <span class="adxInfo" style="display:none;">campaign: abtest_bar1_pricing_inyt_1116 -- 284918, creative: abtest_pricing_inyt_1116_bar1_ad -- 415335, page: www.nytimes.com/yr/mo/day/world/africa/sudan-sanctions.html, targetedPage: www.nytimes.com/yr/mo/day/world/africa, position: Bar1</span>
+ <span class="abtest-config" style="display:none;" data-path="//static01.nyt.com/ab" data-test="bar1/pricing_inyt_1116" data-image-path="https://static01.nyt.com/adx/images/ADS/41/53/ad.415335" data-experiment-id="5wlqgk1UT-O6xXfUdHOTgQ" data-trackers="{}" data-options="{&quot;bundleData&quot;:[&quot;basic&quot;,&quot;allAccess&quot;,&quot;allAccessPlus&quot;],&quot;currencyClassMap&quot;:{&quot;euro&quot;:&quot;EUR&quot;,&quot;pound&quot;:&quot;UKP&quot;,&quot;aud&quot;:&quot;AUD&quot;,&quot;can&quot;:&quot;CAN&quot;},&quot;loadDelay&quot;:{&quot;tryInterval&quot;:500,&quot;tryCount&quot;:4},&quot;variants&quot;:{&quot;Variation1&quot;:{&quot;currencyData&quot;:{&quot;UKP&quot;:{&quot;currencyCode&quot;:&quot;UKP&quot;,&quot;subHeadSavings&quot;:&quot;As low as &amp;pound;1.50 a week&quot;},&quot;EUR&quot;:{&quot;currencyCode&quot;:&quot;EUR&quot;,&quot;subHeadSavings&quot;:&quot;As low as &amp;euro;1.75 a week&quot;},&quot;AUD&quot;:{&quot;currencyCode&quot;:&quot;AUD&quot;,&quot;subHeadSavings&quot;:&quot;As low as AUD &amp;#36;2.50 a week&quot;},&quot;CAN&quot;:{&quot;currencyCode&quot;:&quot;CAN&quot;,&quot;subHeadSavings&quot;:&quot;As low as CAD &amp;#36;2.50 a week&quot;},&quot;USD&quot;:{&quot;currencyCode&quot;:&quot;USD&quot;,&quot;subHeadSavings&quot;:&quot;As low as $1.88 a week&quot;}}},&quot;Variation2&quot;:{&quot;currencyData&quot;:{&quot;UKP&quot;:{&quot;currencyCode&quot;:&quot;UKP&quot;,&quot;subHeadSavings&quot;:&quot;As low as &amp;pound;3.00 a week&quot;},&quot;EUR&quot;:{&quot;currencyCode&quot;:&quot;EUR&quot;,&quot;subHeadSavings&quot;:&quot;As low as &amp;euro;3.50 a week&quot;},&quot;AUD&quot;:{&quot;currencyCode&quot;:&quot;AUD&quot;,&quot;subHeadSavings&quot;:&quot;As low as AUD &amp;#36;5.00 a week&quot;},&quot;CAN&quot;:{&quot;currencyCode&quot;:&quot;CAN&quot;,&quot;subHeadSavings&quot;:&quot;As low as CAD &amp;#36;5.00 a week&quot;},&quot;USD&quot;:{&quot;currencyCode&quot;:&quot;USD&quot;,&quot;subHeadSavings&quot;:&quot;As low as $3.75 a week&quot;}}},&quot;Variation3&quot;:{&quot;currencyData&quot;:{&quot;UKP&quot;:{&quot;currencyCode&quot;:&quot;UKP&quot;,&quot;subHeadSavings&quot;:&quot;As low as &amp;pound;2.00 a week&quot;},&quot;EUR&quot;:{&quot;currencyCode&quot;:&quot;EUR&quot;,&quot;subHeadSavings&quot;:&quot;As low as &amp;euro;2.25 a week&quot;},&quot;AUD&quot;:{&quot;currencyCode&quot;:&quot;AUD&quot;,&quot;subHeadSavings&quot;:&quot;As low as AUD &amp;#36;3.25 a week&quot;},&quot;CAN&quot;:{&quot;currencyCode&quot;:&quot;CAN&quot;,&quot;subHeadSavings&quot;:&quot;As low as CAD &amp;#36;3.25 a week&quot;},&quot;USD&quot;:{&quot;currencyCode&quot;:&quot;USD&quot;,&quot;subHeadSavings&quot;:&quot;As low as $2.50 a week&quot;}}}},&quot;krux&quot;:{&quot;ctrl&quot;:{&quot;event&quot;:&quot;K8KX7AdT&quot;,&quot;attrs&quot;:{&quot;Control&quot;:&quot;Control&quot;}},&quot;var1&quot;:{&quot;event&quot;:&quot;K8KX7AdT&quot;,&quot;attrs&quot;:{&quot;Var1&quot;:&quot;Var1&quot;}},&quot;var2&quot;:{&quot;event&quot;:&quot;K8KX7AdT&quot;,&quot;attrs&quot;:{&quot;Var2&quot;:&quot;Var2&quot;}},&quot;var3&quot;:{&quot;event&quot;:&quot;K8KX7AdT&quot;,&quot;attrs&quot;:{&quot;Var3&quot;:&quot;Var3&quot;}}},&quot;campaignId&quot;:{&quot;ctrl&quot;:[{&quot;selector&quot;:&quot;#hovercard&quot;,&quot;code&quot;:&quot;6HY9W&quot;},{&quot;selector&quot;:&quot;#nyt-button-sub&quot;,&quot;code&quot;:&quot;6HY9W&quot;}],&quot;var1&quot;:[{&quot;selector&quot;:&quot;#hovercard&quot;,&quot;code&quot;:&quot;6HY7R&quot;},{&quot;selector&quot;:&quot;#nyt-button-sub&quot;,&quot;code&quot;:&quot;6HY7R&quot;}],&quot;var2&quot;:[{&quot;selector&quot;:&quot;#hovercard&quot;,&quot;code&quot;:&quot;6HY4W&quot;},{&quot;selector&quot;:&quot;#nyt-button-sub&quot;,&quot;code&quot;:&quot;6HY4W&quot;}],&quot;var3&quot;:[{&quot;selector&quot;:&quot;#hovercard&quot;,&quot;code&quot;:&quot;6HYHR&quot;},{&quot;selector&quot;:&quot;#nyt-button-sub&quot;,&quot;code&quot;:&quot;6HYHR&quot;}]}}" data-ga-status="live" data-use-build="true" data-loaded="true">
+</span>
+ <script src="//static01.nyt.com/ab/bootstraps/bootstrap.js"></script>
+
+ <script type="text/html" id="pricing_inyt_1116_bar1_style_ctrl">
+ &lt;style&gt;@import url(https://a1.nyt.com/fonts/css/fonts.css);.font-smoothing{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sub_small_hide{display:none}.NYT5Style .masthead-tools{padding-right:0}.NYT5Style .masthead-tools #bar1-3panel{display:inline;vertical-align:top;background-image:none}#bar1-3panel{border:0;position:relative}#bar1-nyt5wrapper{opacity:0}#nyt-button-sub{-moz-box-sizing:border-box;background-color:#6288A5;border:1px solid #4D7B9F;border-radius:3px;color:#fff !important;display:inline-block;font-size:1em;line-height:13px;font-family:franklin-normal-700, sans-serif;font-style:normal;font-weight:700;padding:7px 10px 6px;text-transform:uppercase !important;text-decoration:none}#nyt-button-sub:hover{background-color:#326891;border:1px solid #265E8B;text-decoration:none}.bar1-hidden{margin-right:8px}.NYT4 .bar1-hidden,.NYT4 #bar1-3panel{display:none}#hovercard{width:450px;height:330px;display:none;margin-left:-360px;z-index:1000000152;border:0;position:absolute;left:50%;top:30px;text-align:left;box-shadow:0 0 5px #888;white-space:normal;background:#b0f4c0 url("https://static01.nyt.com/adx/images/ADS/41/53/ad.415335/nyt_logo_428x60.png") 40px 40px no-repeat;background-size:179px 25px;text-transform:none}#bar1-headline{position:absolute;top:81px;left:40px;font-family:karnak-normal-400, sans-serif;font-style:normal;font-weight:400;font-size:30px;line-height:34px;color:#000;font-weight:100;width:300px;text-align:left}#bar1-divider{width:90px;height:2px;border-bottom:2px solid #000;position:absolute;left:40px;top:161px}#bar1-headline span{color:#0ea587}#bar1-subhead{position:absolute;top:180px;left:40px;color:#000;font-family:franklin-normal-300, sans-serif;font-style:normal;font-weight:300;font-size:20px;line-height:25px;width:300px;text-align:left}#bar1-subhead span{font-family:franklin-normal-600, sans-serif;font-weight:600}#bar1-cta{font-family:franklin-normal-700, sans-serif;font-style:normal;font-weight:700;position:absolute;top:250px;left:40px;width:133px;height:37px;background:#000;font-size:13px;line-height:36px;padding:0;text-align:center;text-decoration:none;border-radius:3px;cursor:pointer;color:#fff;text-transform:uppercase;border:0}#hovercard:after{bottom:100%;left:350px;border:solid transparent;content:" ";width:0;height:0;position:absolute;pointer-events:none;border-bottom-color:#b0f4c0;border-width:8px;margin:0}#bar1-offer-msg{font-family:franklin-normal-400, sans-serif;font-style:normal;font-weight:400;position:absolute;top:270px;left:40px !important;width:150px;height:30px;font-size:11px;line-height:15px;padding:0;text-decoration:none;color:#363636}#hovercard hr{margin:4px;width:320px;opacity:0.5;color:#000}.hover-subhead{font-family:franklin-normal-500, sans-serif;font-style:normal;font-weight:500;font-size:11px;line-height:13px;color:#333;margin:1px 0 0;width:170px;position:absolute;top:10px}#hovercard h3 a,#hovercard p a{color:#000 !important;text-decoration:none;display:block}a.nyt-button-actions{background:#f7f7f5;color:#58595b !important;width:126px;border-radius:3px;border:1px solid #ccc !important;text-transform:uppercase;font-family:franklin-normal-500, sans-serif;font-style:normal;font-weight:500;font-size:11px;line-height:15px;text-align:center;padding:6px 0;cursor:pointer;display:block;position:absolute;top:10px;left:194px;text-decoration:none !important}#hovercard a.nyt-button-actions:hover{background:#3c6791;color:#fff !important;text-decoration:none !important}#hovercard a.nyt-button-actions.highlightButton:link,#hovercard a.nyt-button-actions.highlightButton:visited{color:#fff !important;background:#3c6791;text-decoration:none !important}a.split-all-button{background:#f3f3f4;width:345px;height:30px;position:absolute;bottom:0;font-family:franklin-normal-500, sans-serif;font-style:normal;font-weight:500;font-size:11px;line-height:30px;margin:0;border:1px solid #CCC;text-align:center;vertical-align:middle}#hovercard a.split-all-button:hover{background:#fff;color:#004276 !important;text-decoration:underline !important}.NYT5Style #hovercard{top:26px}.ad.bar1-ad a.bar1-introtext,#memberTools .bar1-introtext,.masthead-tools a.bar1-introtext{text-decoration:none;color:#666}.masthead-tools a.bar1-introtext{position:relative;margin-top:2px}.bar1-introtext{padding-right:5px}.ad.bar1-ad .user-subscriptions-menu li a{padding-left:0;border-left:0}@media screen and (-webkit-min-device-pixel-ratio: 0){.NYT5Style #hovercard{left:50%;top:29px}.NYT5Style #hovercard:before{top:-14px}}#interactiveABC #bar1-3panel{display:none} &lt;/style&gt;
+ </script>
+
+ <script type="text/html" id="pricing_inyt_1116_bar1_ctrl">
+ &lt;div id="bar1-nyt5wrapper" class="user-subscriptions-group" data-campaign-name="abtest_bar1_pricing_inyt_1116"&gt;&lt;ul class="user-subscriptions-menu"&gt;&lt;li class="bar1-hidden"&gt;&lt;span class="bar1--meter--count"&gt;1&lt;/span&gt; of 10 articles read&lt;/li&gt;&lt;li id="bar1-3panel" class="user-subscriptions-menu user-subscriptions-group bar1_hover"&gt;&lt;a id="nyt-button-sub" href="http://www.nytimes.com/adx/bin/adx_click.html?type=goto&amp;opzn&amp;page=www.nytimes.com/yr/mo/day/world/africa&amp;pos=Bar1&amp;sn2=d6f8750e/a2bac435&amp;sn1=7d209493/f1a5fc9b&amp;camp=abtest_bar1_pricing_inyt_1116&amp;ad=abtest_pricing_inyt_1116_bar1_ad&amp;goto=http%3A%2F%2Fwww%2Enytimes%2Ecom%2Fsubscriptions%2Finyt%2Flp88U9Y%2Ehtml%3Fadxc%3D284918%26adxa%3D415335%26page%3Dwww.nytimes.com/yr/mo/day/world/africa/sudan-sanctions.html%26pos%3DBar1%26campaignId%3D" target="_blank" data-content-collection="" data-content-placement="1" style="display:none"&gt;SUBSCRIBE NOW&lt;/a&gt; &lt;a id="hovercard" class="font-smoothing" data-campaign-name="abtest_bar1_pricing_inyt_1116" href="http://www.nytimes.com/adx/bin/adx_click.html?type=goto&amp;opzn&amp;page=www.nytimes.com/yr/mo/day/world/africa&amp;pos=Bar1&amp;sn2=d6f8750e/a2bac435&amp;sn1=7d209493/f1a5fc9b&amp;camp=abtest_bar1_pricing_inyt_1116&amp;ad=abtest_pricing_inyt_1116_bar1_ad&amp;goto=http%3A%2F%2Fwww%2Enytimes%2Ecom%2Fsubscriptions%2Finyt%2Flp88U9Y%2Ehtml%3Fadxc%3D284918%26adxa%3D415335%26page%3Dwww.nytimes.com/yr/mo/day/world/africa/sudan-sanctions.html%26pos%3DBar1%26campaignId%3D" target="_blank"&gt;&lt;div id="bar1-body"&gt;&lt;div id="bar1-headline"&gt;The world&amp;rsquo;s most&lt;br&gt;trusted perspective.&lt;/div&gt;&lt;div id="bar1-divider"&gt;&lt;/div&gt;&lt;div id="bar1-subhead"&gt;Get The Times.&lt;br&gt;&lt;span id="bar1-savings"&gt;50% off for 1 year.&lt;/span&gt;&lt;/div&gt;&lt;div id="bar1-cta"&gt;SUBSCRIBE NOW&lt;/div&gt;&lt;/div&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;a id="subscribe_small" href="http://www.nytimes.com/adx/bin/adx_click.html?type=goto&amp;opzn&amp;page=www.nytimes.com/yr/mo/day/world/africa&amp;pos=Bar1&amp;sn2=d6f8750e/a2bac435&amp;sn1=7d209493/f1a5fc9b&amp;camp=abtest_bar1_pricing_inyt_1116&amp;ad=abtest_pricing_inyt_1116_bar1_ad&amp;goto=http%3A%2F%2Fwww%2Enytimes%2Ecom%2Fsubscriptions%2Finyt%2Flp88U9Y%2Ehtml%3Fadxc%3D284918%26adxa%3D415335%26page%3Dwww.nytimes.com/yr/mo/day/world/africa/sudan-sanctions.html%26pos%3DBar1%26campaignId%3D" class="subscribe-link sub_small_hide" style="visibility:hidden" target="_blank"&gt;Subscribe&lt;/a&gt;&lt;div id="mkt-floodlight" style="display:inline"&gt;&lt;/div&gt;
+ </script>
+
+ <!--end A/B test delivery snippet-->
+ </div>
+ <div id="sharetools-masthead" aria-label="tools" role="group" class="sharetools theme-classic sharetools-masthead " data-shares="facebook,twitter,email,show-all,save" data-url="http://www.nytimes.com/2017/01/13/world/africa/sudan-sanctions.html" data-title="United States to Lift Sudan Sanctions" data-author="By JEFFREY GETTLEMAN" data-media="https://static01.nyt.com/images/2017/01/14/world/13SUDAN-1/13SUDAN-1-jumbo.jpg" data-description="For the first time since the 1990s, the country will be able to trade extensively with the United States." data-publish-date="January 13, 2017" data-share-tools-initialized="1">
+ <div class="ad sharetools-inline-article-ad hidden nocontent robots-nocontent">
+ </div>
+ <ul class="sharetools-menu">
+ <li class="sharetool facebook-sharetool"><a href="javascript:;" data-share="facebook" data-modal-title=""><i class="icon sprite-icon"></i><span class="sharetool-text ">Share</span></a></li>
+ <li class="sharetool twitter-sharetool"><a href="javascript:;" data-share="twitter" data-modal-title=""><i class="icon sprite-icon"></i><span class="sharetool-text ">Tweet</span></a></li>
+ <li class="sharetool email-sharetool"><a href="javascript:;" data-share="email" data-modal-title="Log in to email"><i class="icon sprite-icon"></i><span class="sharetool-text ">Email</span></a></li>
+ <li class="sharetool show-all-sharetool"><a href="javascript:;" data-share="show-all" data-modal-title=""><i class="icon sprite-icon"></i><span class="sharetool-text ">More</span></a></li>
+ <li class="sharetool save-sharetool"><a href="javascript:;" data-share="save" data-modal-title="Log in to save"><i class="icon sprite-icon"></i><span class="sharetool-text ">Save</span></a></li>
+ </ul>
+ </div>
+ <!-- close shareTools -->
+ <button class="button search-button"><i class="icon sprite-icon"></i><span class="button-text">Search</span></button>
+ <div class="user-tools-button-group button-group">
+ <button class="button subscribe-button hidden" data-href="http://www.nytimes.com/subscriptions/Multiproduct/lp3004.html?campaignId=4XUYF">Subscribe Now</button>
+ <button class="button login-button login-modal-trigger">Log In</button>
+ <button class="button notifications-button hidden"><i class="icon sprite-icon"></i><span class="button-text">0</span></button>
+ <button class="button user-settings-button"><i class="icon sprite-icon"></i><span class="button-text">Settings</span></button>
+ </div>
+ <!-- close user-tools-button-group -->
+ </div>
+ <!-- close user-tools -->
+ </div>
+ <!-- close container -->
+ <div class="search-flyout-panel flyout-panel">
+ <button class="button close-button" type="button"><i class="icon"></i><span class="visually-hidden">Close search</span></button>
+ <nav class="search-form-control form-control layout-horizontal">
+ <h2 class="visually-hidden">Site Search Navigation</h2>
+ <form class="search-form" role="search">
+ <div class="control">
+ <div class="label-container visually-hidden">
+ <label for="search-input">Search NYTimes.com</label>
+ </div>
+ <div class="field-container">
+ <input id="search-input" name="search-input" class="search-input text" autocomplete="off" type="text" />
+
+ <button type="button" class="button clear-button" tabindex="-1" aria-describedby="clear-search-input"><i class="icon"></i><span id="clear-search-input" class="visually-hidden">Clear this text input</span></button>
+ <div class="auto-suggest" style="display: none;">
+ <ol></ol>
+ </div>
+ <button class="button submit-button disabled" type="submit">Go</button>
+ </div>
+ </div>
+ <!-- close control -->
+ </form>
+ </nav>
+
+
+ </div>
+ <!-- close flyout-panel -->
+ <div id="notification-modals" class="notification-modals"></div>
+ <span class="story-short-url"><a href="https://nyti.ms/2iqtp74">https://nyti.ms/2iqtp74</a></span></header>
+ <nav id="ribbon" class="ribbon ribbon-start nocontent robots-nocontent" aria-hidden="true">
+ <div class="nocontent robots-nocontent">
+ <ol class="ribbon-menu" style="width: 7077px; left: 0px;">
+ <li class="collection news-collection">
+
+ <div class="collection-marker past-left-border" style="display: none;">
+ <h2 class="collection-label"><a href="//www.nytimes.com">Home Page</a></h2>
+ </div>
+
+ <ol class="collection-menu">
+ <li class="collection-item " style="opacity: 1; margin-left: 0px;">
+ <a class="story-link" href="//www.nytimes.com/2017/01/12/us/politics/james-comey-fbi-inspector-general-hillary-clinton.html?ribbon-ad-idx=2&amp;rref=homepage">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/13/us/13comey/13comey-thumbStandard.jpg" alt="" />
+ <div class="media-action-overlay">
+
+ <i class="icon sprite-icon image-icon"></i>
+ <span class="overlay-text visually-hidden"></span>
+
+ </div>
+ </div>
+ <h2 class="story-heading" title="Comey Letter on Clinton Email Is Subject of Justice Dept. Inquiry">Comey Letter on Clinton Email Is Subject of Justice Dept. Inquiry</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item " style="opacity: 1; margin-left: 0px;">
+ <a class="story-link" href="//www.nytimes.com/2017/01/13/us/politics/rep-jason-chaffetz-ethics-monitor-investigation-threat.html?ribbon-ad-idx=2&amp;rref=homepage">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/13/us/13chaffetz_web1/13chaffetz_web1-thumbStandard.jpg" alt="" />
+ <div class="media-action-overlay">
+
+ <i class="icon sprite-icon image-icon"></i>
+ <span class="overlay-text visually-hidden"></span>
+
+ </div>
+ </div>
+ <h2 class="story-heading" title="G.O.P. Lawmaker Hints at Investigating Ethics Chief Critical of Trump">G.O.P. Lawmaker Hints at Investigating Ethics Chief Critical of Trump</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item ribbon-ad-container hidden" style="opacity: 1; margin-left: 0px;">
+ <div id="Ribbon" class="ad ribbon-ad hidden" data-google-query-id="CIXE8JX7vtECFUcxlgodPQkMbA" style="display: none;">
+ <div id="google_ads_iframe_/29390238/NYT/world/africa_10__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/29390238/NYT/world/africa_10" title="3rd party ad content" name="google_ads_iframe_/29390238/NYT/world/africa_10" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" width="244" height="75" frameborder="0"></iframe></div><iframe id="google_ads_iframe_/29390238/NYT/world/africa_10__hidden__" title="" name="google_ads_iframe_/29390238/NYT/world/africa_10__hidden__" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom; visibility: hidden; display: none;" width="0" height="0" frameborder="0"></iframe></div>
+ </li>
+ <li class="collection-item " style="opacity: 1; margin-left: 0px;">
+ <a class="story-link" href="//www.nytimes.com/2017/01/12/world/europe/as-trump-reaches-toward-putin-us-troops-arrive-in-poland.html?ribbon-ad-idx=2&amp;rref=homepage">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/13/world/13poland1/13poland1-thumbStandard.jpg" alt="" />
+ <div class="media-action-overlay">
+
+ <i class="icon sprite-icon image-icon"></i>
+ <span class="overlay-text visually-hidden"></span>
+
+ </div>
+ </div>
+ <h2 class="story-heading" title="As Trump Reaches Toward Putin, U.S. Troops Arrive in Poland">As Trump Reaches Toward Putin, U.S. Troops Arrive in Poland</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item " style="opacity: 1; margin-left: 0px;">
+ <a class="story-link" href="//www.nytimes.com/2017/01/12/business/media/cspan-russia-today.html?ribbon-ad-idx=2&amp;rref=homepage">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/13/business/13xp-cspan_web1/13xp-cspan_web1-thumbStandard.jpg" alt="" />
+ <div class="media-action-overlay">
+
+ <i class="icon sprite-icon image-icon"></i>
+ <span class="overlay-text visually-hidden"></span>
+
+ </div>
+ </div>
+ <h2 class="story-heading" title="C-Span Online Broadcast Interrupted by Russian Network">C-Span Online Broadcast Interrupted by Russian Network</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item " style="opacity: 0.999938; margin-left: 0.00616838px;">
+ <a class="story-link" href="//www.nytimes.com/2017/01/12/world/europe/christopher-steele-trump-russia-dossier.html?ribbon-ad-idx=2&amp;rref=homepage">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/13/world/13Steele/13Steele-thumbStandard.jpg" alt="" />
+ <div class="media-action-overlay">
+
+ <i class="icon sprite-icon image-icon"></i>
+ <span class="overlay-text visually-hidden"></span>
+
+ </div>
+ </div>
+ <h2 class="story-heading" title="Christopher Steele, Ex-Spy Who Compiled Trump Dossier, Goes to Ground">Christopher Steele, Ex-Spy Who Compiled Trump Dossier, Goes to Ground</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item " style="opacity: 0.959266; margin-left: 4.07337px;">
+ <a class="story-link" href="//www.nytimes.com/2017/01/12/us/politics/trump-cabinet-hearing.html?ribbon-ad-idx=2&amp;rref=homepage">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/13/us/13hearingbriefing1/13hearingbriefing1-thumbStandard.jpg" alt="" />
+ <div class="media-action-overlay">
+
+ <i class="icon sprite-icon image-icon"></i>
+ <span class="overlay-text visually-hidden"></span>
+
+ </div>
+ </div>
+ <h2 class="story-heading" title="10 Key Moments From Thursday’s Trump Nominee Hearings">10 Key Moments From Thursday’s Trump Nominee Hearings</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item " style="opacity: 0.879067; margin-left: 12.0933px;">
+ <a class="story-link" href="//www.nytimes.com/2017/01/12/us/politics/james-mattis-defense-secretary-nominee.html?ribbon-ad-idx=2&amp;rref=homepage">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/13/us/13mattis/13mattis-thumbStandard-v3.jpg" alt="" />
+ <div class="media-action-overlay">
+
+ <i class="icon sprite-icon image-icon"></i>
+ <span class="overlay-text visually-hidden"></span>
+
+ </div>
+ </div>
+ <h2 class="story-heading" title="James Mattis Strikes Far Harsher Tone Than Trump on Russia">James Mattis Strikes Far Harsher Tone Than Trump on Russia</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item " style="opacity: 0.789427; margin-left: 21.0573px;">
+ <a class="story-link" href="//www.nytimes.com/2017/01/12/us/politics/ben-carsons-hud-housing-nominee-hearing.html?ribbon-ad-idx=2&amp;rref=homepage">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+ <h2 class="story-heading" title="Ben Carson Urges Ending Reliance on Welfare in Bid to Be Housing Chief">Ben Carson Urges Ending Reliance on Welfare in Bid to Be Housing Chief</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item " style="opacity: 0.703151; margin-left: 29.6849px;">
+ <a class="story-link" href="//www.nytimes.com/2017/01/12/us/politics/donald-trump-cia-nominee-mike-pompeo-russia.html?ribbon-ad-idx=2&amp;rref=homepage">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/13/us/13Pompeo/13Pompeo-thumbStandard.jpg" alt="" />
+ <div class="media-action-overlay">
+
+ <i class="icon sprite-icon image-icon"></i>
+ <span class="overlay-text visually-hidden"></span>
+
+ </div>
+ </div>
+ <h2 class="story-heading" title="C.I.A. Nominee Says He Won’t Balk at Seeking Russian Intelligence">C.I.A. Nominee Says He Won’t Balk at Seeking Russian Intelligence</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item " style="opacity: 0.624979; margin-left: 37.5021px;">
+ <a class="story-link" href="//www.nytimes.com/2017/01/13/business/china-donald-trump-robert-lighthizer.html?ribbon-ad-idx=2&amp;rref=homepage">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/13/us/13CHINATRADE-1/05CHINATRADE-1-thumbStandard.jpg" alt="" />
+ <div class="media-action-overlay">
+
+ <i class="icon sprite-icon image-icon"></i>
+ <span class="overlay-text visually-hidden"></span>
+
+ </div>
+ </div>
+ <h2 class="story-heading" title="Trump’s Pick on Trade Could Put China in a Difficult Spot">Trump’s Pick on Trade Could Put China in a Difficult Spot</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item " style="opacity: 0.556068; margin-left: 44.3932px;">
+ <a class="story-link" href="//www.nytimes.com/2017/01/12/business/media/trump-media-news-conference.html?ribbon-ad-idx=2&amp;rref=homepage">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+
+ <h3 class="kicker">Mediator</h3>
+ <h2 class="story-heading" title="As Trump Berates News Media, a New Strategy Is Needed to Cover Him">As Trump Berates News Media, a New Strategy Is Needed to Cover Him</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item " style="opacity: 0.496073; margin-left: 50.3927px;">
+ <a class="story-link" href="//www.nytimes.com/2017/01/12/us/politics/linda-bean-ll-bean-boycott.html?ribbon-ad-idx=2&amp;rref=homepage">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/13/us/13LLBean2_xp/13LLBean2_xp-thumbStandard.jpg" alt="" />
+ <div class="media-action-overlay">
+
+ <i class="icon sprite-icon image-icon"></i>
+ <span class="overlay-text visually-hidden"></span>
+
+ </div>
+ </div>
+ <h2 class="story-heading" title="Trump Tweet About L. L. Bean Underscores Potential Danger for Brands">Trump Tweet About L. L. Bean Underscores Potential Danger for Brands</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item " style="opacity: 0.444092; margin-left: 55.5908px;">
+ <a class="story-link" href="//www.nytimes.com/2017/01/12/world/americas/cuba-obama-wet-foot-dry-foot-policy.html?ribbon-ad-idx=2&amp;rref=homepage">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/13/us/13cuba/13cuba-thumbStandard.jpg" alt="" />
+ <div class="media-action-overlay">
+
+ <i class="icon sprite-icon image-icon"></i>
+ <span class="overlay-text visually-hidden"></span>
+
+ </div>
+ </div>
+ <h2 class="story-heading" title="Obama Ends Exemption for Cubans Who Arrive Without Visas">Obama Ends Exemption for Cubans Who Arrive Without Visas</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item " style="opacity: 0.399087; margin-left: 60.0913px;">
+ <a class="story-link" href="//www.nytimes.com/2017/01/11/upshot/trumps-obamacare-plan-still-optimistic-still-vague.html?ribbon-ad-idx=2&amp;rref=homepage">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/12/us/12up-healthplan1/12up-healthplan1-thumbStandard.jpg" alt="" />
+ <div class="media-action-overlay">
+
+ <i class="icon sprite-icon image-icon"></i>
+ <span class="overlay-text visually-hidden"></span>
+
+ </div>
+ </div>
+
+ <h3 class="kicker">Public Health</h3>
+ <h2 class="story-heading" title="Why Trump’s Obamacare Promise Will Be So Hard to Keep">Why Trump’s Obamacare Promise Will Be So Hard to Keep</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item " style="opacity: 0.360061; margin-left: 63.9939px;">
+ <a class="story-link" href="//www.nytimes.com/2017/01/12/us/politics/congress-affordable-care-act.html?ribbon-ad-idx=2&amp;rref=homepage">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/13/us/13cong1/13cong1-thumbStandard.jpg" alt="" />
+ <div class="media-action-overlay">
+
+ <i class="icon sprite-icon image-icon"></i>
+ <span class="overlay-text visually-hidden"></span>
+
+ </div>
+ </div>
+ <h2 class="story-heading" title="House Expected to Follow Senate’s Lead on Rush to Repeal Health Law">House Expected to Follow Senate’s Lead on Rush to Repeal Health Law</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item " style="opacity: 0.326123; margin-left: 67.3877px;">
+ <a class="story-link" href="//www.nytimes.com/2017/01/12/business/epa-emissions-cheating-diesel-fiat-chrysler-jeep-dodge.html?ribbon-ad-idx=2&amp;rref=homepage">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/16/business/13CHRYSER-01/13CHRYSER-01-thumbStandard.jpg" alt="" />
+ <div class="media-action-overlay">
+
+ <i class="icon sprite-icon image-icon"></i>
+ <span class="overlay-text visually-hidden"></span>
+
+ </div>
+ </div>
+ <h2 class="story-heading" title="E.P.A. Accuses Fiat Chrysler of Secretly Violating Emissions Standards">E.P.A. Accuses Fiat Chrysler of Secretly Violating Emissions Standards</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item " style="opacity: 0.296506; margin-left: 70.3494px;">
+ <a class="story-link" href="//www.nytimes.com/video/us/100000004835152/seeing-family-through-the-border-fence.html?ribbon-ad-idx=2&amp;rref=homepage">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+ <h2 class="story-heading" title="Seeing Family Through the Border Fence">Seeing Family Through the Border Fence</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item " style="opacity: 0.270559; margin-left: 72.9441px;">
+ <a class="story-link" href="//www.nytimes.com/2017/01/12/business/economy/amazon-jobs-retail.html?ribbon-ad-idx=2&amp;rref=homepage">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/13/business/13AMAZON/13AMAZON-thumbStandard.jpg" alt="" />
+ <div class="media-action-overlay">
+
+ <i class="icon sprite-icon image-icon"></i>
+ <span class="overlay-text visually-hidden"></span>
+
+ </div>
+ </div>
+ <h2 class="story-heading" title="Amazon to Add 100,000 Jobs as Bricks-and-Mortar Retail Crumbles">Amazon to Add 100,000 Jobs as Bricks-and-Mortar Retail Crumbles</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item " style="opacity: 0.247736; margin-left: 75.2264px;">
+ <a class="story-link" href="//www.nytimes.com/2017/01/12/world/australia/alan-langdon-australia-new-zealand-missing-at-sea.html?ribbon-ad-idx=2&amp;rref=homepage">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+ <h2 class="story-heading" title="After 26 Days at Sea, Missing Father and Daughter Arrive in Australia">After 26 Days at Sea, Missing Father and Daughter Arrive in Australia</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item last-collection-item " style="opacity: 0.227581; margin-left: 77.2419px;">
+ <a class="story-link" href="//www.nytimes.com/2017/01/12/world/asia/south-korea-president-park-blacklist-artists.html?ribbon-ad-idx=2&amp;rref=homepage">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/13/world/13BLACKLIST-1/13BLACKLIST-1-thumbStandard.jpg" alt="" />
+ <div class="media-action-overlay">
+
+ <i class="icon sprite-icon image-icon"></i>
+ <span class="overlay-text visually-hidden"></span>
+
+ </div>
+ </div>
+ <h2 class="story-heading" title="South Korea’s Blacklist of Artists Adds to Outrage Over Presidential Scandal">South Korea’s Blacklist of Artists Adds to Outrage Over Presidential Scandal</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ </ol>
+ </li>
+ <li class="collection ribbon-loader">
+ <div class="loader loader-t-logo-32x32-ecedeb-ffffff"><span class="visually-hidden">Loading...</span></div>
+ </li>
+ </ol>
+ <div class="ribbon-navigation-container">
+ <nav class="ribbon-navigation next">
+ <span class="visually-hidden">See next articles</span>
+ <div class="arrow arrow-right">
+ <div class="arrow-conceal"></div>
+ </div>
+ </nav>
+ <nav class="ribbon-navigation previous inactive">
+ <span class="visually-hidden">See previous articles</span>
+ <div class="arrow arrow-left">
+ <div class="arrow-conceal"></div>
+ </div>
+ </nav>
+ </div>
+ </div>
+ <!-- close nocontent -->
+ <div class="collection-marker first-collection-marker" style="display: none;">
+ <h2 class="collection-label"><a href="//www.nytimes.com">Home Page</a></h2>
+ </div>
+ </nav>
+
+ <script type="text/javascript">
+ if (window.magnum & amp; & amp; window.magnum.serverRibbon & amp; & amp; window.magnum.getFlags().indexOf('serverRibbonTest') !== -1 & amp; & amp; window.NYTD.Abra('www-server-ribbon-test') === 'variant1') {
+ window.magnum.serverRibbon();
+ }
+ </script>
+ <nav id="navigation" class="navigation">
+ <h2 class="visually-hidden">Site Navigation</h2>
+ <div class="sections">
+
+
+ <div class="section ">
+ <ul class="menu" role="menubar">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-A963B567-7D3D-4D0C-9E47-BF91609EFCE7" class="domestic " role="menuitem" href="http://www.nytimes.com">
+Home Page
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-F4E6EDF7-81C6-4DB2-8EB9-5A5E8A95CEC1" class="international " role="menuitem" href="http://international.nytimes.com/?iht">
+Home Page
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-9A43D8FC-F4CF-44D9-9B34-138D30468F8F" class=" expandable" role="menuitem" href="http://www.nytimes.com/pages/world/index.html" aria-haspopup="true" aria-expanded="false">
+World
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-23FD6C8B-62D5-4CEA-A331-6C2A9A1223BE" class=" expandable" role="menuitem" href="http://www.nytimes.com/pages/national/index.html" aria-haspopup="true" aria-expanded="false">
+U.S.
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-80E6DEE6-87E4-4AD0-9152-14FA6B07E5AB" class=" expandable" role="menuitem" href="http://www.nytimes.com/pages/politics/index.html" aria-haspopup="true" aria-expanded="false">
+Politics
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-C4DC8C0C-E148-4201-BF10-82F1C903DBFB" class=" expandable" role="menuitem" href="http://www.nytimes.com/pages/nyregion/index.html" aria-haspopup="true" aria-expanded="false">
+N.Y.
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-104D1E63-9701-497B-8CF4-A4D120C9014E" class="domestic expandable" role="menuitem" href="http://www.nytimes.com/pages/business/index.html" aria-haspopup="true" aria-expanded="false">
+Business
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-A257D89A-0D3C-40AF-9C34-1A25A7947D94" class="international expandable" role="menuitem" href="http://www.nytimes.com/pages/business/international/index.html" aria-haspopup="true" aria-expanded="false">
+Business
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-AD8090D7-4137-4D71-84C8-70DA3BD89778" class="domestic expandable" role="menuitem" href="http://www.nytimes.com/pages/opinion/index.html" aria-haspopup="true" aria-expanded="false">
+Opinion
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-09736473-CB3F-4B2F-9772-3AF128ABE12D" class="international expandable" role="menuitem" href="http://www.nytimes.com/pages/opinion/international/index.html" aria-haspopup="true" aria-expanded="false">
+Opinion
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-78FBAD45-31A9-4EC7-B172-7D62A2B9955E" class=" expandable" role="menuitem" href="http://www.nytimes.com/pages/technology/index.html" aria-haspopup="true" aria-expanded="false">
+Tech
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-A4B35924-DB6C-4EA3-997D-450810F4FEE6" class=" expandable" role="menuitem" href="http://www.nytimes.com/section/science" aria-haspopup="true" aria-expanded="false">
+Science
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-7D6BE1AF-8CD8-430B-8B2A-17CD0EAA99AC" class=" expandable" role="menuitem" href="http://www.nytimes.com/pages/health/index.html" aria-haspopup="true" aria-expanded="false">
+Health
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-DE2B278B-2783-4506-AAD5-C15A5BB6DA1A" class="domestic expandable" role="menuitem" href="http://www.nytimes.com/pages/sports/index.html" aria-haspopup="true" aria-expanded="false">
+Sports
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-BE66F420-C51B-461D-B487-CACF62E94AAE" class="international expandable" role="menuitem" href="http://www.nytimes.com/pages/sports/international/index.html" aria-haspopup="true" aria-expanded="false">
+Sports
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+
+ </ul>
+ </div>
+
+ <div class="section ">
+ <ul class="menu" role="menubar">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-C5BFA7D5-359C-427B-90E6-6B7245A6CDD8" class="domestic expandable" role="menuitem" href="http://www.nytimes.com/pages/arts/index.html" aria-haspopup="true" aria-expanded="false">
+Arts
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-0202D0E4-C59B-479A-BD42-6F1766459781" class="international expandable" role="menuitem" href="http://www.nytimes.com/pages/arts/international/index.html" aria-haspopup="true" aria-expanded="false">
+Arts
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-B3DFBD82-F298-43B3-9458-219B4F6AA2A5" class="domestic expandable" role="menuitem" href="http://www.nytimes.com/pages/fashion/index.html" aria-haspopup="true" aria-expanded="false">
+Fashion &amp; Style
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-CC9E2674-F6C4-4A39-813B-F5AB0C515CEA" class="international expandable" role="menuitem" href="http://www.nytimes.com/pages/style/international/index.html" aria-haspopup="true" aria-expanded="false">
+Fashion &amp; Style
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-D9C94A2B-0364-4D25-8383-592CC66F82D4" class="domestic expandable" role="menuitem" href="http://www.nytimes.com/pages/dining/index.html" aria-haspopup="true" aria-expanded="false">
+Food
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-FDEFB811-B483-4C3D-A25A-FD07BE5EAD96" class="international expandable" role="menuitem" href="http://www.nytimes.com/pages/dining/international/index.html" aria-haspopup="true" aria-expanded="false">
+Food
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-FDA10AC4-4738-4099-91E8-15584765C8D7" class=" " role="menuitem" href="http://www.nytimes.com/section/travel">
+Travel
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-E57A148E-0CB9-4C02-966D-28B119710151" class=" " role="menuitem" href="http://www.nytimes.com/pages/magazine/index.html">
+Magazine
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-052C33AD-1404-4DB6-AA70-0901DB1AD95B" class=" " role="menuitem" href="http://www.nytimes.com/section/t-magazine">
+T Magazine
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-92720057-BCB6-4BDB-9351-12F29393259F" class=" expandable" role="menuitem" href="http://www.nytimes.com/section/realestate" aria-haspopup="true" aria-expanded="false">
+Real Estate
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-CEDDB6A8-F7E1-47A2-AC53-E28C616DFCD5" class=" " role="menuitem" href="http://www.nytimes.com/pages/obituaries/index.html">
+Obituaries
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-432A1823-3F24-43C0-8004-79088F94E754" class=" expandable" role="menuitem" href="http://www.nytimes.com/video" aria-haspopup="true" aria-expanded="false">
+Video
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-D64FAE4C-4425-4E5A-B898-6C8CB59F9957" class=" " role="menuitem" href="http://www.nytimes.com/upshot/">
+The Upshot
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-0442C365-4B63-4B63-B9DE-3C28319CB622" class=" expandable" role="menuitem" tabindex="0" aria-haspopup="true" aria-expanded="false">
+Conferences
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+
+ </ul>
+ </div>
+
+ <div class="section ">
+ <ul class="menu" role="menubar">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-5C13EEDD-D905-4D8C-A284-6859EA434563" class=" " role="menuitem" href="http://www.nytimes.com/crosswords/">
+Crossword
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-99C17804-A343-4A76-BF04-F5793ADA48D1" class=" " role="menuitem" href="http://www.nytimes.com/times-insider">
+Times Insider
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-614CE30F-3D4A-4194-9C6F-AE5901C5762D" class=" " role="menuitem" href="http://www.nytimes.com/section/learning">
+The Learning Network
+
+</a>
+ </li>
+
+
+
+ </ul>
+ </div>
+
+ <div class="section hidden">
+ <ul class="menu" role="menubar">
+
+ <li role="presentation" class="hidden">
+ <a id="navId-8FB1308A-FFE4-4BED-ADF6-659A680D0884" class=" " role="menuitem" href="http://www.nytimes.com/pages/multimedia/index.html">
+Multimedia
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-108F7745-BAD9-4630-87BB-4FB4ED7CAA11" class=" " role="menuitem" href="http://lens.blogs.nytimes.com/">
+Photography
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-EDCE4B29-2B91-4241-82E6-C972E9449F49" class=" " role="menuitem" href="http://www.nytimes.com/podcasts/">
+Podcasts
+
+</a>
+ </li>
+
+
+
+ </ul>
+ </div>
+
+ <div class="section hidden">
+ <ul class="menu" role="menubar">
+
+ <li role="presentation" class="hidden">
+ <a id="navId-6101A43A-8BDE-45FF-AAD5-EF7396F83AC9" class=" " role="menuitem" href="https://www.nytimes.com/store/?&amp;t=qry542&amp;utm_source=nytimes&amp;utm_medium=HPB&amp;utm_content=hp_browsetree&amp;utm_campaign=NYT-HP&amp;module=SectionsNav&amp;action=click&amp;region=TopBar&amp;version=BrowseTree&amp;contentCollection=NYT%20Store&amp;contentPlacement=2&amp;pgtype=Homepage">
+NYT Store
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-52A8A3F2-F138-425B-A63F-722E2BBC9372" class=" " role="menuitem" href="http://www.nytwineclub.com">
+NYT Wine Club
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-081347DE-FF02-4B6C-889B-9AE59F391833" class=" " role="menuitem" href="http://nytedu.com">
+nytEducation
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-797F8D17-1632-435D-B3DB-708FC4B4BAEF" class=" " role="menuitem" href="http://www.nytimes.com/times-journeys/?utm_source=nytimes&amp;utm_medium=HPLink&amp;utm_content=hp_browsetree&amp;utm_campaign=NYT-HP&amp;module=SectionsNav&amp;action=click&amp;region=TopBar&amp;version=BrowseTree&amp;contentCollection=Times%20Journeys&amp;contentPlacement=2&amp;pgtype=Homepage">
+Times Journeys
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-53CB229C-5F34-4C32-8B8C-6F7B7626BBDD" class=" " role="menuitem" href="https://www.chefd.com/pages/new-york-times-cooking-meal-plan?utm_campaign=web1_20160617&amp;utm_medium=partner&amp;utm_source=nyt">
+Meal Kits
+
+</a>
+ </li>
+
+
+
+ </ul>
+ </div>
+
+ <div class="section hidden">
+ <ul class="menu" role="menubar">
+
+ <li role="presentation" class="hidden">
+ <a id="navId-FED853D9-D192-46F6-8D18-447803EB4A7B" class=" " role="menuitem" href="http://www.nytimes.com/IntDigiFooterHP">
+Subscribe
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-61E9BFEA-F509-4BCA-ADC6-32C5A30B83FD" class=" " role="menuitem" href="http://www.nytimes.com/membercenter">
+Manage Account
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-0DAA7CFE-196B-4878-B899-5363070098EC" class=" " role="menuitem" href="http://www.nytimes.com/pages/todayspaper/index.html">
+Today's Paper
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-1FBDDF2B-64F5-4DB3-8093-F0CCB7808799" class=" " role="menuitem" href="http://www.nytimes.com/interactive/blogs/directory.html">
+Blogs
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-D3E5F163-D939-4FD5-8FB6-C6AD31748E30" class=" " role="menuitem" href="http://www.nytimes.com/pages/topics/">
+Times Topics
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-6BBF5308-5EA3-4B25-885F-393F7372F27F" class=" " role="menuitem" href="http://www.nytimes.com/marketing/tools-and-services/">
+Tools &amp; Services
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-288E1691-DA3B-457A-8B06-D10A1351E7B9" class=" " role="menuitem" href="http://www.nytimes.com/section/jobs">
+Jobs
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-D4C7C57A-E74D-44C3-9D0E-0AE6B715610F" class=" " role="menuitem" href="http://www.nytimes.com/ref/classifieds/">
+Classifieds
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-6DD9D623-A907-4623-9C5A-9409972B76DA" class=" " role="menuitem" href="http://www.nytimes.com/pages/corrections/index.html">
+Corrections
+
+</a>
+ </li>
+
+
+
+ </ul>
+ </div>
+
+ <div class="section ">
+ <ul class="menu" role="menubar">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-more-section" class=" expandable" role="menuitem" tabindex="0" aria-haspopup="true" aria-expanded="false">
+More
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+
+ </ul>
+ </div>
+
+ </div>
+ </nav>
+ <!-- close navigation -->
+
+ <nav id="mobile-navigation" class="mobile-navigation hidden">
+ <h2 class="visually-hidden">Site Mobile Navigation</h2>
+ </nav>
+ <!-- close mobile-navigation -->
+
+ <div id="navigation-edge" class="navigation-edge"></div>
+ <div id="page" class="page">
+ <div id="TopAd" class="ad top-ad nocontent robots-nocontent hidden" data-google-query-id="CNWQhJX7vtECFQkklgodP-gCYg" style="display: none;">
+ <div class="accessibility-ad-header visually-hidden">
+ <p>Advertisement</p>
+ </div>
+ <div id="google_ads_iframe_/29390238/NYT/world/africa_0__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/29390238/NYT/world/africa_0" title="3rd party ad content" name="google_ads_iframe_/29390238/NYT/world/africa_0" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" width="100%" height="0" frameborder="0"></iframe></div>
+ </div>
+
+ <main id="main" class="main" role="main">
+ <article id="story" class="story theme-main ">
+
+ <div id="TragedyAd" class="ad tragedy-ad nocontent robots-nocontent"></div>
+
+
+ <header id="story-header" class="story-header">
+ <div id="story-meta" class="story-meta ">
+ <div class="supported-by hidden nocontent robots-nocontent">
+ <span class="ad-label">Supported by</span>
+ <div id="supported-by-ad" class="supported-by-ad ad hidden" data-google-query-id="CNaQhJX7vtECFQkklgodP-gCYg" style="display: none;">
+ <div id="google_ads_iframe_/29390238/NYT/world/africa_1__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/29390238/NYT/world/africa_1" title="3rd party ad content" name="google_ads_iframe_/29390238/NYT/world/africa_1" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" width="150" height="50" frameborder="0"></iframe></div>
+ </div>
+ </div>
+ <h3 class="kicker">
+ <span class="kicker-label"><a href="http://www.nytimes.com/pages/world/africa/index.html">Africa</a></span> </h3>
+ <h1 itemprop="headline" id="headline" class="headline" style="visibility: visible;">United States to Lift Sudan Sanctions</h1>
+ <div id="story-meta-footer" class="story-meta-footer">
+
+
+ <p class="byline-dateline"><span class="byline" itemprop="author creator" itemscope="" itemtype="http://schema.org/Person" itemid="http://www.nytimes.com/by/jeffrey-gettleman">By <a href="http://www.nytimes.com/by/jeffrey-gettleman" title="More Articles by JEFFREY GETTLEMAN"><span class="byline-author" data-byline-name="JEFFREY GETTLEMAN" itemprop="name" data-twitter-handle="gettleman">JEFFREY GETTLEMAN</span></a>
+ </span><time class="dateline" datetime="2017-01-13T03:38:38-05:00" itemprop="dateModified" content="2017-01-13T03:38:38-05:00">JAN. 13, 2017</time>
+ </p>
+
+ <div class="story-meta-footer-sharetools">
+ <div id="sharetools-story-meta-footer" aria-label="tools" role="group" class="sharetools theme-classic sharetools-story-meta-footer " data-shares="facebook,twitter,email,show-all,save" data-url="http://www.nytimes.com/2017/01/13/world/africa/sudan-sanctions.html" data-title="United States to Lift Sudan Sanctions" data-author="By JEFFREY GETTLEMAN" data-media="https://static01.nyt.com/images/2017/01/14/world/13SUDAN-1/13SUDAN-1-jumbo.jpg" data-description="For the first time since the 1990s, the country will be able to trade extensively with the United States." data-publish-date="January 13, 2017" data-share-tools-initialized="1">
+ <a class="visually-hidden skip-to-text-link" href="#story-continues-1">Continue reading the main story</a>
+ <span class="sharetools-label visually-hidden">Share This Page</span>
+ <div class="ad sharetools-inline-article-ad hidden nocontent robots-nocontent">
+ <a class="visually-hidden skip-to-text-link" href="#story-continues-1">Continue reading the main story</a>
+ </div>
+ <ul class="sharetools-menu">
+ <li class="sharetool facebook-sharetool"><a href="javascript:;" data-share="facebook" data-modal-title=""><i class="icon sprite-icon"></i><span class="sharetool-text ">Share</span></a></li>
+ <li class="sharetool twitter-sharetool"><a href="javascript:;" data-share="twitter" data-modal-title=""><i class="icon sprite-icon"></i><span class="sharetool-text ">Tweet</span></a></li>
+ <li class="sharetool email-sharetool"><a href="javascript:;" data-share="email" data-modal-title="Log in to email"><i class="icon sprite-icon"></i><span class="sharetool-text ">Email</span></a></li>
+ <li class="sharetool show-all-sharetool"><a href="javascript:;" data-share="show-all" data-modal-title=""><i class="icon sprite-icon"></i><span class="sharetool-text ">More</span></a></li>
+ <li class="sharetool save-sharetool"><a href="javascript:;" data-share="save" data-modal-title="Log in to save"><i class="icon sprite-icon"></i><span class="sharetool-text ">Save</span></a></li>
+ </ul>
+ </div>
+ <!-- close shareTools -->
+ </div>
+ </div>
+ <!-- close story-meta-footer -->
+ </div>
+ <!-- close story-meta -->
+ </header>
+
+ <script type="text/javascript">
+ if (
+ window.magnum &
+ amp; & amp; window.magnum.getFlags().indexOf('headlineBalancer') & gt; 0 &
+ amp; & amp; window.magnum.headlineBalancer &
+ amp; & amp; window.magnum.headlineBalancer.initialize &
+ amp; & amp; window.magnum.headlineBalancer.shouldRun()
+ ) {
+ window.magnum.headlineBalancer.initialize();
+ }
+ </script>
+
+
+ <div class="story-body-supplemental">
+ <div class="story-body story-body-1">
+ <figure id="media-100000004869232" class="media photo lede layout-large-horizontal" data-media-action="modal" itemprop="associatedMedia" itemscope="" itemid="https://static01.nyt.com/images/2017/01/14/world/13SUDAN-1/13SUDAN-1-master768.jpg" itemtype="http://schema.org/ImageObject" aria-label="media" role="group">
+ <span class="visually-hidden">Photo</span>
+ <div class="image">
+ <img src="https://static01.nyt.com/images/2017/01/14/world/13SUDAN-1/13SUDAN-1-master768.jpg" alt="" class="media-viewer-candidate" data-mediaviewer-src="https://static01.nyt.com/images/2017/01/14/world/13SUDAN-1/13SUDAN-1-superJumbo.jpg" data-mediaviewer-caption="United Nations peacekeepers at a refugee camp in Sudan on Monday. In exchange for the lifting of United States trade sanctions, Sudan has said it will improve access for aid groups, stop supporting rebels in neighboring South Sudan and cooperate with American intelligence agents." data-mediaviewer-credit="Ashraf Shazly/Agence France-Presse — Getty Images" itemprop="url" itemid="https://static01.nyt.com/images/2017/01/14/world/13SUDAN-1/13SUDAN-1-master768.jpg" />
+ <div class="media-action-overlay">
+ <i class="icon sprite-icon"></i>
+ </div>
+ <meta itemprop="height" content="512" />
+ <meta itemprop="width" content="768" />
+ </div>
+ <figcaption class="caption" itemprop="caption description">
+ <span class="caption-text">United Nations peacekeepers at a refugee camp in Sudan on Monday. In exchange for the lifting of United States trade sanctions, Sudan has said it will improve access for aid groups, stop supporting rebels in neighboring South Sudan and cooperate with American intelligence agents.</span>
+ <span class="credit" itemprop="copyrightHolder">
+ <span class="visually-hidden">Credit</span> Ashraf Shazly/Agence France-Presse — Getty Images </span>
+ </figcaption>
+ </figure>
+ <p class="story-body-text story-content" data-para-count="194" data-total-count="194">LONDON — After nearly 20 years of hostile relations, the American government plans to reverse its position on <a href="http://topics.nytimes.com/top/news/international/countriesandterritories/sudan/index.html?inline=nyt-geo" title="More news and information about Sudan." class="meta-loc">Sudan</a> and lift trade sanctions, Obama administration officials said late Thursday.</p>
+ <p class="story-body-text story-content" data-para-count="250" data-total-count="444">Sudan is one of the poorest, most isolated and most violent countries in Africa, and for years the United States has imposed punitive measures against it in a largely unsuccessful attempt to get the Sudanese government to stop killing its own people.</p>
+ <p class="story-body-text story-content" data-para-count="293" data-total-count="737">On Friday, the Obama administration will announce a new Sudan strategy. For the first time since the 1990s, the nation will be able to trade extensively with the United States, allowing it to buy goods like tractors and spare parts and attract much-needed investment in its collapsing economy.</p>
+ <p class="story-body-text story-content" data-para-count="193" data-total-count="930">In return, Sudan will improve access for aid groups, stop supporting rebels in neighboring <a href="http://topics.nytimes.com/top/news/international/countriesandterritories/south-sudan/index.html?inline=nyt-geo" title="More articles about South Sudan." class="meta-loc">South Sudan</a>, cease the bombing of insurgent territory and cooperate with American intelligence agents.</p>
+ <p class="story-body-text story-content" data-para-count="344" data-total-count="1274">American officials said Sudan had already shown important progress on a number of these fronts. But to make sure the progress continues, the executive order that President Obama plans to sign on Friday, days before leaving office, will have a six-month review period. If Sudan fails to live up to its commitments, the embargo can be reinstated.</p>
+ <div id="story-ad-1" class="story-ad ad ad-placeholder nocontent robots-nocontent hidden">
+ <div class="accessibility-ad-header visually-hidden">
+ <p>Advertisement</p>
+ </div>
+ <a class="visually-hidden skip-to-text-link" href="#story-continues-1">Continue reading the main story</a>
+ </div>
+ <p class="story-body-text story-content" data-para-count="204" data-total-count="1478" id="story-continues-1">Analysts said good relations with Sudan could strengthen moderate voices within the country and give the Sudanese government incentives to refrain from the brutal tactics that have defined it for decades.</p>
+ <p class="story-body-text story-content" data-para-count="295" data-total-count="1773">In 1997, President Bill Clinton imposed a <a href="https://www.treasury.gov/resource-center/sanctions/Programs/Documents/sudan.pdf">comprehensive trade embargo against Sudan and blocked the assets of the Sudanese government</a>, which was suspected of sponsoring international terrorism. In the mid-1990s, Osama bin Laden lived in Khartoum, the capital, as a guest of Sudan’s government.</p>
+ <p class="story-body-text story-content" data-para-count="224" data-total-count="1997">In 1998, Bin Laden’s agents blew up the United States Embassies in Kenya and Tanzania, killing more than 200 people. In retaliation, Mr. Clinton ordered a cruise missile strike against a pharmaceutical factory in Khartoum.</p>
+ <p class="story-body-text story-content" data-para-count="474" data-total-count="2471">Since then, American-Sudanese relations have steadily soured. The conflict in Darfur, a vast desert region of western Sudan, was a low point. After rebels in Darfur staged an uprising in 2003, Sudanese security services and their militia allies slaughtered tens of thousands of civilians, leading to condemnation around the world, genocide charges at the International Criminal Court against Sudan’s president, Omar Hassan al-Bashir, and a new round of American sanctions.</p>
+ <p class="story-body-text story-content" data-para-count="275" data-total-count="2746">American officials said Thursday that the American demand that Mr. Bashir be held accountable had not changed. Neither has Sudan’s status as one of the few countries, along with Iran and Syria, that remain on the <a href="https://www.state.gov/j/ct/list/c14151.htm">American government’s list of state sponsors of terrorism</a>.</p>
+ <p class="story-body-text story-content" data-para-count="124" data-total-count="2870">Sales of military equipment will still be prohibited, and some Sudanese militia and rebel leaders will still face sanctions.</p>
+ <p class="story-body-text story-content" data-para-count="264" data-total-count="3134">But the Obama administration is clearly trying to open a door to Sudan. There is intense discontent across the country, and its economy is imploding. American officials have argued for years that it was time to help Sudan dig itself out of the hole it had created.</p>
+ <p class="story-body-text story-content" data-para-count="231" data-total-count="3365">Officials divulged Thursday that the Sudanese government had allowed two visits by American operatives to a restricted border area near Libya, which they cited as evidence of a new spirit of cooperation on counterterrorism efforts.</p>
+ <div id="story-ad-2" class="story-ad ad ad-placeholder nocontent robots-nocontent hidden">
+ <div class="accessibility-ad-header visually-hidden">
+ <p>Advertisement</p>
+ </div>
+ <a class="visually-hidden skip-to-text-link" href="#story-continues-2">Continue reading the main story</a>
+ </div>
+ <p class="story-body-text story-content" data-para-count="248" data-total-count="3613" id="story-continues-2">In addition to continuing violence in Darfur, several other serious conflicts are raging in southern and central Sudan, along with a civil war in newly independent South Sudan, which Sudan has been suspected of inflaming with covert arms shipments.</p>
+ <p class="story-body-text story-content" data-para-count="145" data-total-count="3758"><a href="http://sudanreeves.org/2016/07/04/eric-reeves-is-now-a-senior-fellow-at-harvard-universitys-francois-xavier-bagnoud-center-for-health-and-human-rights/">Eric Reeves</a>, one of the leading American academic voices on Sudan, said he was “appalled” that the American government was lifting sanctions.</p>
+ <p class="story-body-text story-content" data-para-count="215" data-total-count="3973">He said that Sudan’s military-dominated government continued to commit grave human rights abuses and atrocities, and he noted that just last week Sudanese security services <a href="http://sudanreeves.org/2017/01/02/7710/">killed</a><a href="http://sudanreeves.org/2017/01/02/7710/"> more than 10 civilians in Darfur</a>.</p>
+ <p class="story-body-text story-content" data-para-count="250" data-total-count="4223">“There is no reason to believe the guys in charge have changed their stripes,” said Mr. Reeves, a senior fellow at the François-Xavier Bagnoud Center for Health and Human Rights at Harvard University. “These guys are the worst of the worst.”</p>
+ <p class="story-body-text story-content" data-para-count="208" data-total-count="4431">Obama administration officials said that they had briefed President-elect Donald J. Trump’s transition team, but that they did not know if Mr. Trump would stick with a policy of warmer relations with Sudan.</p>
+ <p class="story-body-text story-content" data-para-count="143" data-total-count="4574">They said that Sudan had a long way to go in terms of respecting human rights, but that better relations could help increase American leverage.</p>
+ <p class="story-body-text story-content" data-para-count="149" data-total-count="4723" data-node-uid="1">Mr. Reeves said he thought that the American government was being manipulated and that the Obama administration had made a “deal with the devil.”</p>
+ <footer class="story-footer story-content">
+ <div class="story-meta">
+
+
+ <p class="story-print-citation">A version of this article appears in print on January 13, 2017, on Page A7 of the <span itemprop="printEdition">New York edition</span> with the headline: Sanctions on Sudan Will Be Lifted. <span class="story-footer-links"> <span><a href="http://www.nytreprints.com/" target="_blank">Order Reprints</a><span class="pipe">|</span></span> <span><a href="http://www.nytimes.com/pages/todayspaper/index.html" target="_blank">Today's Paper</a><span class="pipe">|</span></span><span><a href="http://www.nytimes.com/subscriptions/Multiproduct/lp839RF.html?campaignId=48JQY" target="_blank">Subscribe</a></span>
+ </span>
+ </p>
+
+ </div>
+ <!-- close story-meta -->
+ </footer>
+ <a class="visually-hidden skip-to-text-link" href="#whats-next">Continue reading the main story</a>
+ </div>
+ <!-- close story-body -->
+ <div class="supplemental first" id="supplemental-1" data-pre-height="2166" data-max-items="3" data-remaining="276" data-minimum="400" data-last-item-height="476" data-flex-ad-adjacency="false" data-post-height="2636">
+ <div class="supplemental-items" data-supplemental-order="0">
+ <aside class="marginalia related-combined-coverage-marginalia marginalia-item nocontent robots-nocontent" data-marginalia-type="sprinkled" role="complementary" module="Related-CombinedMarginalia">
+ <div class="nocontent robots-nocontent">
+ <header>
+ <h2 class="module-heading">Related Coverage</h2>
+ </header>
+ <ul>
+ <li>
+ <article class="story theme-summary ">
+ <a class="story-link" href="http://www.nytimes.com/2010/11/08/world/africa/08sudan.html">
+
+
+ <div class="story-body">
+ <h2 class="headline">
+ <span class="title">U.S. Sweetens Offer to Take Sudan Off Terrorist List</span>
+ <time class="dateline">NOV. 7, 2010</time>
+ </h2>
+ </div>
+ </a>
+ </article>
+ </li>
+ <li>
+ <article class="story theme-summary ">
+ <a class="story-link" href="http://www.nytimes.com/2009/03/31/washington/31sudan.html">
+
+
+ <div class="story-body">
+ <h2 class="headline">
+ <span class="title">Obama Urges Sudan to Allow Aid Groups Back Into the Country</span>
+ <time class="dateline">MARCH 30, 2009</time>
+ </h2>
+ </div>
+ </a>
+ </article>
+ </li>
+ <li>
+ <article class="story theme-summary ">
+ <a class="story-link" href="http://www.nytimes.com/2008/08/10/world/africa/10sudan.html">
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2008/08/10/world/sudan.01.75.jpg" role="presentation" alt="" />
+ <div class="media-action-overlay"></div>
+ </div>
+
+ <div class="story-body">
+ <h3 class="kicker">THE FOOD CHAIN </h3>
+ <h2 class="headline">
+ <span class="title">Darfur Withers as Sudan Sells Food</span>
+ <time class="dateline">AUG. 9, 2008</time>
+ </h2>
+ </div>
+ </a>
+ </article>
+ </li>
+ </ul>
+ </div>
+ </aside>
+ <div id="medium-rectangle-ad-2" class="ad ad-placeholder medium-rectangle-ad marginalia-item nocontent robots-nocontent"></div>
+ </div>
+ <div class="supplemental-items" data-supplemental-order="1">
+ <aside id="middle-right-paid-post-container" class="ad middle-right-ad paid-post-ad marginalia-item hidden nocontent robots-nocontent">
+ <h2 class="marginalia-heading"></h2>
+ <ul class="story-menu">
+ <li id="MiddleRightPaidPost1" class="story-menu-item ad hidden" data-google-query-id="CIHE8JX7vtECFUcxlgodPQkMbA" style="display: none;">
+ <div id="google_ads_iframe_/29390238/NYT/world/africa_6__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/29390238/NYT/world/africa_6" title="3rd party ad content" name="google_ads_iframe_/29390238/NYT/world/africa_6" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" width="300" height="77" frameborder="0"></iframe></div>
+ </li>
+ <li id="MiddleRightPaidPost2" class="story-menu-item ad hidden" data-google-query-id="CILE8JX7vtECFUcxlgodPQkMbA" style="display: none;">
+ <div id="google_ads_iframe_/29390238/NYT/world/africa_7__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/29390238/NYT/world/africa_7" title="3rd party ad content" name="google_ads_iframe_/29390238/NYT/world/africa_7" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" width="300" height="77" frameborder="0"></iframe></div>
+ </li>
+ <li id="MiddleRightPaidPost3" class="story-menu-item ad hidden" data-google-query-id="CIPE8JX7vtECFUcxlgodPQkMbA" style="display: none;">
+ <div id="google_ads_iframe_/29390238/NYT/world/africa_8__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/29390238/NYT/world/africa_8" title="3rd party ad content" name="google_ads_iframe_/29390238/NYT/world/africa_8" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" width="300" height="77" frameborder="0"></iframe></div>
+ </li>
+ <li id="MiddleRightPaidPost4" class="story-menu-item ad hidden" data-google-query-id="CITE8JX7vtECFUcxlgodPQkMbA" style="display: none;">
+ <div id="google_ads_iframe_/29390238/NYT/world/africa_9__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/29390238/NYT/world/africa_9" title="3rd party ad content" name="google_ads_iframe_/29390238/NYT/world/africa_9" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" width="300" height="77" frameborder="0"></iframe></div>
+ </li>
+ </ul>
+ </aside>
+ <div id="medium-rectangle-ad-1" class="ad ad-placeholder medium-rectangle-ad marginalia-item nocontent robots-nocontent"></div>
+ </div>
+ <div class="supplemental-items" data-supplemental-order="2">
+ <div id="marketing-ad" class="ad marketing-ad marginalia-anchor-ad marginalia-item nocontent robots-nocontent"></div>
+ </div>
+ </div>
+ <!-- close supplemental -->
+ </div>
+ <!-- close story-body-supplemental -->
+
+
+ <div class="reader-satisfaction-survey prompt feedback-prompt story-content hidden">
+ <a class="feedback-link" href="https://docs.google.com/forms/d/e/1FAIpQLSfLW30xgZodF1qRAg80oWEGuDpW-1HHaL0g42G3SmvB2f4lCw/viewform?entry.8537735=http://www.nytimes.com/2017/01/13/world/africa/sudan-sanctions.html" target="_blank">
+ <p class="feedback-message">We’re interested in your feedback on this page. <strong>Tell us what you think.</strong></p>
+ </a>
+ </div>
+
+ <div id="storage-drawer" class="hidden">
+ <div class="supplemental-sub-item" data-attribute-position="0" data-attribute-name="CombinedMarginalia" data-attribute-type="Related" data-attribute-subtype="">
+
+ </div>
+ <div class="supplemental-sub-item" data-attribute-position="1" data-attribute-name="PaidPost" data-attribute-type="PaidPost" data-attribute-subtype="">
+
+ </div>
+ </div>
+
+ </article>
+ <section id="related-combined-coverage" class="related-combined-coverage nocontent robots-nocontent">
+ <header class="section-header">
+ <h2 class="section-heading">Related Coverage</h2>
+ </header>
+ <div class="section-body">
+ <ol class="story-menu menu">
+ <li>
+ <article class="story theme-summary ">
+ <a class="story-link" href="http://www.nytimes.com/2010/11/08/world/africa/08sudan.html">
+ <div class="story-body">
+ <h2 class="headline">
+ <span class="title">U.S. Sweetens Offer to Take Sudan Off Terrorist List</span>
+ <time class="dateline">NOV. 7, 2010</time>
+ </h2>
+ </div>
+
+ </a>
+ </article>
+ </li>
+ <li>
+ <article class="story theme-summary ">
+ <a class="story-link" href="http://www.nytimes.com/2009/03/31/washington/31sudan.html">
+ <div class="story-body">
+ <h2 class="headline">
+ <span class="title">Obama Urges Sudan to Allow Aid Groups Back Into the Country</span>
+ <time class="dateline">MARCH 30, 2009</time>
+ </h2>
+ </div>
+
+ </a>
+ </article>
+ </li>
+ <li>
+ <article class="story theme-summary ">
+ <a class="story-link" href="http://www.nytimes.com/2008/08/10/world/africa/10sudan.html">
+ <div class="story-body">
+ <h3 class="kicker">THE FOOD CHAIN </h3>
+ <h2 class="headline">
+ <span class="title">Darfur Withers as Sudan Sells Food</span>
+ <time class="dateline">AUG. 9, 2008</time>
+ </h2>
+ </div>
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2008/08/10/world/sudan.01.75.jpg" role="presentation" alt="" />
+ <div class="media-action-overlay"></div>
+ </div>
+ </a>
+ </article>
+ </li>
+ </ol>
+ </div>
+ </section>
+ <aside class="module trending-module nocontent robots-nocontent" data-truncate-enabled="true" style="">
+ <div class="nocontent robots-nocontent">
+ <header>
+ <h2 class="module-heading">Trending</h2>
+ </header>
+ <ol>
+
+ <li>
+ <a class="story-link" href="http://www.nytimes.com/2017/01/12/us/politics/trump-cabinet-mattis-tillerson.html">
+ <article class="story theme-summary">
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/13/us/13cabinet/13cabinet-thumbStandard.jpg" />
+ </div>
+ <h2 class="headline">
+ <span class="headline-text truncate-text">
+
+Latest to Disagree With Donald Trump: His Cabinet Nominees
+</span>
+ </h2>
+ </article>
+ </a>
+ </li>
+
+ <li>
+ <a class="story-link" href="http://www.nytimes.com/2017/01/12/us/politics/linda-bean-ll-bean-boycott.html">
+ <article class="story theme-summary">
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/13/us/13LLBean2_xp/13LLBean2_xp-thumbStandard.jpg" />
+ </div>
+ <h2 class="headline">
+ <span class="headline-text truncate-text">
+
+Trump Tweet About L. L. Bean Underscores Potential Danger for Brands
+</span>
+ </h2>
+ </article>
+ </a>
+ </li>
+
+ <li>
+ <a class="story-link" href="http://www.nytimes.com/2017/01/12/business/media/trump-media-news-conference.html">
+ <article class="story theme-summary">
+ <h2 class="headline">
+ <span class="headline-text truncate-text">
+
+Mediator:
+
+As Trump Berates News Media, a New Strategy Is Needed to Cover Him
+</span>
+ </h2>
+ </article>
+ </a>
+ </li>
+
+ <li>
+ <a class="story-link" href="http://www.nytimes.com/2017/01/12/us/politics/james-comey-fbi-inspector-general-hillary-clinton.html">
+ <article class="story theme-summary">
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/13/us/13comey/13comey-thumbStandard.jpg" />
+ </div>
+ <h2 class="headline">
+ <span class="headline-text truncate-text">
+
+Comey Letter on Clinton Email Is Subject of Justice Dept. Inquiry
+</span>
+ </h2>
+ </article>
+ </a>
+ </li>
+
+ <li>
+ <a class="story-link" href="http://www.nytimes.com/2017/01/11/magazine/neanderthals-were-people-too.html">
+ <article class="story theme-summary">
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/15/magazine/15neanderthals1/15neanderthals1-thumbStandard-v3.jpg" />
+ </div>
+ <h2 class="headline">
+ <span class="headline-text truncate-text">
+
+Feature:
+
+Neanderthals Were People, Too
+</span>
+ </h2>
+ </article>
+ </a>
+ </li>
+
+ <li>
+ <a class="story-link" href="http://www.nytimes.com/2017/01/12/world/americas/cuba-obama-wet-foot-dry-foot-policy.html">
+ <article class="story theme-summary">
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/13/us/13cuba/13cuba-thumbStandard.jpg" />
+ </div>
+ <h2 class="headline">
+ <span class="headline-text truncate-text">
+
+Obama Ends Exemption for Cubans Who Arrive Without Visas
+</span>
+ </h2>
+ </article>
+ </a>
+ </li>
+
+ <li>
+ <a class="story-link" href="http://www.nytimes.com/2017/01/10/us/politics/obama-farewell-address-speech.html">
+ <article class="story theme-summary">
+ <h2 class="headline">
+ <span class="headline-text truncate-text">
+
+President Obama’s Farewell Address: Full Video and Text
+</span>
+ </h2>
+ </article>
+ </a>
+ </li>
+
+ <li>
+ <a class="story-link" href="http://www.nytimes.com/2017/01/13/opinion/donald-trumps-medical-delusions.html">
+ <article class="story theme-summary">
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/13/opinion/13krugmanWeb/13krugmanWeb-thumbStandard.jpg" />
+ </div>
+ <h2 class="headline">
+ <span class="headline-text truncate-text">
+
+Op-Ed Columnist:
+
+Donald Trump’s Medical Delusions
+</span>
+ </h2>
+ </article>
+ </a>
+ </li>
+
+ <li>
+ <a class="story-link" href="http://www.nytimes.com/2017/01/13/us/politics/rep-jason-chaffetz-ethics-monitor-investigation-threat.html">
+ <article class="story theme-summary">
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/13/us/13chaffetz_web1/13chaffetz_web1-thumbStandard.jpg" />
+ </div>
+ <h2 class="headline">
+ <span class="headline-text truncate-text">
+
+G.O.P. Lawmaker Hints at Investigating Ethics Chief Critical of Trump
+</span>
+ </h2>
+ </article>
+ </a>
+ </li>
+
+ <li>
+ <a class="story-link" href="http://www.nytimes.com/2017/01/12/us/politics/joe-biden-presidential-medal-freedom.html">
+ <article class="story theme-summary">
+ <h2 class="headline">
+ <span class="headline-text truncate-text">
+
+Obama Surprises Joe Biden With Presidential Medal of Freedom
+</span>
+ </h2>
+ </article>
+ </a>
+ </li>
+
+ </ol>
+ <footer>
+ <p class="user-action"><a href="/trending">View More Trending Stories »</a></p>
+ <div id="MostEm" class="ad most-em-ad hidden" data-google-query-id="CK7chZX7vtECFckwlgodnIEDyg" style="display: none;">
+ <div id="google_ads_iframe_/29390238/NYT/world/africa_5__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/29390238/NYT/world/africa_5" title="3rd party ad content" name="google_ads_iframe_/29390238/NYT/world/africa_5" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" width="88" height="31" frameborder="0"></iframe></div><iframe id="google_ads_iframe_/29390238/NYT/world/africa_5__hidden__" title="" name="google_ads_iframe_/29390238/NYT/world/africa_5__hidden__" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom; visibility: hidden; display: none;" width="0" height="0" frameborder="0"></iframe></div>
+ </footer>
+ </div>
+ </aside>
+ <section id="whats-next" class="whats-next nocontent robots-nocontent">
+ <h2 class="visually-hidden">What's Next</h2>
+ <div class="nocontent robots-nocontent">
+ <div class="loader-container">
+ <div class="loader loader-t-logo-32x32-ecedeb-ffffff"><span class="visually-hidden">Loading...</span></div>
+ </div>
+ </div>
+ <!-- close nocontent -->
+ </section>
+ <div id="TopAd1" class="text-ad bottom-left-ad nocontent robots-nocontent"></div>
+ <div id="Top5" class="ad top5-ad hidden nocontent robots-nocontent"></div>
+ <div class="search-overlay"></div>
+ <aside id="media-viewer" class="media-viewer" style="display:none;">
+ <button class="button close-button"><i class="icon"></i><span class="visually-hidden">Close this overlay</span></button>
+ <h2 class="media-viewer-headline"></h2>
+ <div class="media-viewer-wrapper"></div>
+ <nav class="media-viewer-nav">
+ <div class="media-viewer-counter"></div>
+ <div class="media-viewer-previous">
+ <span class="visually-hidden">Go to previous</span>
+ <div class="arrow arrow-left">
+ <div class="arrow-conceal"></div>
+ </div>
+ </div>
+ <div class="media-viewer-next">
+ <span class="visually-hidden">Go to next</span>
+ <div class="arrow arrow-right">
+ <div class="arrow-conceal"></div>
+ </div>
+ </div>
+ </nav>
+ <div class="loader-container" style="display:none;">
+ <div class="loader loader-t-logo-32x32-ecedeb-ffffff"><span class="visually-hidden">Loading...</span></div>
+ </div>
+ </aside>
+ </main>
+ <!-- close main -->
+ <section id="site-index" class="site-index">
+ <header class="section-header">
+ <p class="user-action"><a href="http://www.nytimes.com/">Go to Home Page »</a></p>
+ <h2 class="section-heading">
+ <span class="visually-hidden">Site Index</span>
+ <a id="site-index-branding-link" href="http://www.nytimes.com/">
+ <span class="visually-hidden">The New York Times</span>
+ <svg xmlns="http://www.w3.org/2000/svg" class="nyt-logo" width="185" height="26" role="img" aria-label="The New York Times"><image width="185" height="26" xlink:href="https://a1.nyt.com/assets/article/20170112-121631/images/foundation/logos/nyt-logo-185x26.svg" xmlns:xlink="http://www.w3.org/1999/xlink" src="https://a1.nyt.com/assets/article/20170112-121631/images/foundation/logos/nyt-logo-185x26.png" alt="The New York Times" border="0"/></svg><img src="https://a1.nyt.com/assets/article/20170112-121631/images/foundation/logos/nyt-logo-185x26.png" class="nyt-logo-print" alt="The New York Times" /></a>
+ </h2>
+ <script>
+ window.magnum.writeLogo('small', 'https://a1.nyt.com/assets/article/20170112-121631/images/foundation/logos/', '', '', 'standard', 'site-index-branding-link', '');
+ </script>
+ </header>
+
+ <nav id="site-index-navigation" class="site-index-navigation" role="navigation">
+ <h2 class="visually-hidden">Site Index Navigation</h2>
+ <div class="split-6-layout layout">
+
+
+ <div class="column">
+ <h3 class="menu-heading">News</h3>
+ <ul class="menu">
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/world/index.html">World</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/national/index.html">U.S.</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/politics/index.html">Politics</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/nyregion/index.html">N.Y.</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/business/index.html">Business</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/technology/index.html">Tech</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/section/science">Science</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/health/index.html">Health</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/sports/index.html">Sports</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/education/index.html">Education</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/obituaries/index.html">Obituaries</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/todayspaper/index.html">Today's Paper</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/corrections/index.html">Corrections</a>
+ </li>
+
+
+ </ul>
+ </div>
+ <!-- close column -->
+
+
+ <div class="column">
+ <h3 class="menu-heading">Opinion</h3>
+ <ul class="menu">
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/opinion/index.html">Today's Opinion</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/opinion/index.html#columnists">Op-Ed Columnists</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/opinion/index.html#editorials">Editorials</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/opinion/index.html#contributing">Contributing Writers</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/opinion/index.html#op-ed">Op-Ed Contributors</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/opinion/index.html#opinionator">Opinionator</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/opinion/index.html#letters">Letters</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/opinion/index.html#sundayreview">Sunday Review</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/opinion/index.html#takingNote">Taking Note</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/roomfordebate">Room for Debate</a>
+ </li>
+
+
+ <li>
+ <a href="http://topics.nytimes.com/top/opinion/thepubliceditor/index.html">Public Editor</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/video/opinion">Video: Opinion</a>
+ </li>
+
+
+ </ul>
+ </div>
+ <!-- close column -->
+
+
+ <div class="column">
+ <h3 class="menu-heading">Arts</h3>
+ <ul class="menu">
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/arts/index.html">Today's Arts</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/arts/design/index.html">Art &amp; Design</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/books/index.html">Books</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/arts/dance/index.html">Dance</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/movies/index.html">Movies</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/arts/music/index.html">Music</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/events/">N.Y.C. Events Guide</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/arts/television/index.html">Television</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/theater/index.html">Theater</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/video/arts">Video: Arts</a>
+ </li>
+
+
+ </ul>
+ </div>
+ <!-- close column -->
+
+
+ <div class="column">
+ <h3 class="menu-heading">Living</h3>
+ <ul class="menu">
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/automobiles/index.html">Automobiles</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/crosswords/">Crossword</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/dining/index.html">Food</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/education/index.html">Education</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/fashion/index.html">Fashion &amp; Style</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/health/index.html">Health</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/section/jobs">Jobs</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/magazine/index.html">Magazine</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/events/">N.Y.C. Events Guide</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/section/realestate">Real Estate</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/section/t-magazine">T Magazine</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/section/travel">Travel</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/fashion/weddings/index.html">Weddings &amp; Celebrations</a>
+ </li>
+
+
+ </ul>
+ </div>
+ <!-- close column -->
+
+
+ <div class="column">
+ <h3 class="menu-heading">Listings &amp; More</h3>
+ <ul class="menu">
+
+
+ <li>
+ <a href="http://www.nytimes.com/ref/classifieds/">Classifieds</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/marketing/tools-and-services/">Tools &amp; Services</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/topics/">Times Topics</a>
+ </li>
+
+
+ <li>
+ <a href="http://topics.nytimes.com/top/opinion/thepubliceditor/index.html">Public Editor</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/events/">N.Y.C. Events Guide</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/interactive/blogs/directory.html">Blogs</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/multimedia/index.html">Multimedia</a>
+ </li>
+
+
+ <li>
+ <a href="http://lens.blogs.nytimes.com/">Photography</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/video">Video</a>
+ </li>
+
+
+ <li>
+ <a href="https://www.nytimes.com/store/?&amp;t=qry542&amp;utm_source=nytimes&amp;utm_medium=HPB&amp;utm_content=hp_browsetree&amp;utm_campaign=NYT-HP&amp;module=SectionsNav&amp;action=click&amp;region=TopBar&amp;version=BrowseTree&amp;contentCollection=NYT%20Store&amp;contentPlacement=2&amp;pgtype=Homepage">NYT Store</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/times-journeys/?utm_source=nytimes&amp;utm_medium=HPLink&amp;utm_content=hp_browsetree&amp;utm_campaign=NYT-HP">Times Journeys</a>
+ </li>
+
+
+ <li>
+ <a href="https://nytimes.com/IntDigiFooterHP" style="" data-optly-55f0e639-dd0d-4404-a582-edd754f5cc29="">Subscribe</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/membercenter">Manage My Account</a>
+ </li>
+
+
+ </ul>
+ </div>
+ <!-- close column -->
+
+
+ <div class="column last-column">
+
+ <h3 class="menu-heading">Subscribe</h3>
+
+ <ul class="menu primary-menu">
+ <li class="menu-label">Subscribe</li>
+ <li class="home-delivery">
+ <i class="icon sprite-icon"></i>
+ <a href="https://subscribe.inyt.com" style="" data-optly-75c0aebd-80fd-4192-b8c7-f2ff82ee0fe0="">Home Delivery</a>
+ </li>
+ <li class="digital-subscriptions">
+ <i class="icon sprite-icon"></i>
+ <a href="https://nytimes.com/IntDigiFooterHP" style="" data-optly-c857e573-ed23-45ef-93c7-4286c9040140="">Digital Subscriptions</a>
+ </li>
+ <li class="times-premier">
+ <i class="icon sprite-icon"></i>
+ <a href="http://www.nytimes.com/tpnav">Times Insider</a>
+ </li>
+ <li class="nyt-crossword last-item">
+ <i class="icon sprite-icon"></i>
+ <a id="nyt-crossword" href="//www.nytimes.com/subscriptions/games/lp897H9.html?campaignId=49W8Y">Crossword</a>
+ </li>
+ </ul>
+
+ <ul class="menu secondary-menu">
+
+ <li>
+ <a href="http://www.nytimes.com/marketing/newsletters">Email Newsletters</a>
+ </li>
+ <li>
+ <a href="https://myaccount.nytimes.com/mem/tnt.html">Alerts</a>
+ </li>
+ <li>
+ <a href="http://www.nytimes.com/giftleftnav">Gift Subscriptions</a>
+ </li>
+ <li>
+ <a href="http://www.nytimes.com/corporateleftnav">Corporate Subscriptions</a>
+ </li>
+ <li>
+ <a href="http://www.nytimes.com/educationleftnav">Education Rate</a>
+ </li>
+
+ </ul>
+ <ul class="menu secondary-menu">
+ <li>
+ <a href="http://www.nytimes.com/services/mobile/index.html">Mobile Applications</a>
+ </li>
+ <li>
+ <a href="http://eedition.nytimes.com/cgi-bin/signup.cgi?cc=37FYY">Replica Edition</a>
+ </li>
+
+ </ul>
+
+ </div>
+ <!-- close column -->
+
+ </div>
+ <!-- close split-6-layout -->
+
+ </nav>
+ <!-- close nav -->
+
+ </section>
+ <!-- close site-index -->
+
+ <footer id="page-footer" class="page-footer" role="contentinfo">
+ <nav>
+ <h2 class="visually-hidden">Site Information Navigation</h2>
+ <ul>
+ <li>
+ <a href="http://www.nytimes.com/content/help/rights/copyright/copyright-notice.html" itemprop="copyrightNotice">
+ © <span itemprop="copyrightYear">2017</span><span itemprop="copyrightHolder provider sourceOrganization" itemscope="" itemtype="http://schema.org/Organization" itemid="http://www.nytimes.com"><span itemprop="name"> The New York Times Company</span><meta itemprop="tickerSymbol" content="NYSE NYT" /></span>
+ </a>
+ </li>
+ <li class="visually-hidden"><a href="http://www.nytimes.com">Home</a></li>
+ <li class="visually-hidden"><a href="http://query.nytimes.com/search/sitesearch/#/">Search</a></li>
+ <li class="visually-hidden">Accessibility concerns? Email us at <a href="mailto:[email protected]">[email protected]</a>. We would love to hear from you.</li>
+ <li class="wide-viewport-item"><a href="http://www.nytimes.com/ref/membercenter/help/infoservdirectory.html">Contact Us</a></li>
+ <li class="wide-viewport-item"><a href="http://www.nytco.com/careers">Work With Us</a></li>
+ <li class="wide-viewport-item"><a href="http://nytmediakit.com/">Advertise</a></li>
+ <li class="wide-viewport-item"><a href="http://www.nytimes.com/content/help/rights/privacy/policy/privacy-policy.html#pp">Your Ad Choices</a></li>
+ <li><a href="http://www.nytimes.com/privacy">Privacy</a></li>
+ <li><a href="http://www.nytimes.com/ref/membercenter/help/agree.html" itemprop="usageTerms">Terms of Service</a></li>
+ <li class="wide-viewport-item last-item"><a href="http://www.nytimes.com/content/help/rights/sale/terms-of-sale.html">Terms of Sale</a></li>
+ </ul>
+ </nav>
+ <nav class="last-nav">
+ <h2 class="visually-hidden">Site Information Navigation</h2>
+ <ul>
+ <li><a href="http://spiderbites.nytimes.com">Site Map</a></li>
+ <li><a href="http://www.nytimes.com/membercenter/sitehelp.html">Help</a></li>
+ <li><a href="https://myaccount.nytimes.com/membercenter/feedback.html">Site Feedback</a></li>
+ <li class="wide-viewport-item last-item"><a href="https://nytimes.com/IntDigiFooterHP" style="" data-optly-4a8c9687-0e6c-4031-84de-f6a43bf3af56="">Subscriptions</a></li>
+ </ul>
+ </nav>
+ </footer>
+ </div>
+ <!-- close page -->
+ <nav data-href="" data-queue-ad="false" class="ribbon-page-navigation previous" style="overflow: hidden;">
+
+ <a href="">
+ <article class="story theme-summary no-thumb " style="display: none; opacity: 1;">
+
+ <div class="summary" style="margin-top: 32.5px;">
+
+ <h2 title="" class="story-heading"></h2>
+ </div>
+ </article>
+ <div class="arrow arrow-left">
+ <span class="visually-hidden">Go to the previous story</span>
+ <div class="arrow-conceal"></div>
+ </div>
+ </a>
+ </nav>
+ <nav data-href="//www.nytimes.com/2017/01/12/us/politics/james-comey-fbi-inspector-general-hillary-clinton.html?ribbon-ad-idx=2&amp;rref=homepage" data-queue-ad="false" class="ribbon-page-navigation ribbon-page-navigation-has-data next" style="overflow: hidden;">
+
+ <a href="//www.nytimes.com/2017/01/12/us/politics/james-comey-fbi-inspector-general-hillary-clinton.html?ribbon-ad-idx=2&amp;rref=homepage">
+ <article class="story theme-summary " style="display:none;">
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/13/us/13comey/13comey-thumbStandard.jpg" />
+ </div>
+
+ <div class="summary">
+
+ <h2 title="Comey Letter on Clinton Email Is Subject of Justice Dept. Inquiry" class="story-heading">Comey Letter on Clinton Email Is Subject of Justice Dept. Inquiry</h2>
+ </div>
+ </article>
+ <div class="arrow arrow-right">
+ <span class="visually-hidden">Go to the next story</span>
+ <div class="arrow-conceal"></div>
+ </div>
+ </a>
+ </nav>
+ </div>
+ <!-- close shell -->
+ <script>
+ require(['foundation/main'], function() {
+ require(['story/main']);
+ require(['jquery/nyt', 'foundation/views/page-manager'], function($, pageManager) {
+ if (window.location.search.indexOf('disable_tagx') & gt; 0) {
+ return;
+ }
+ $(document).ready(function() {
+ require(['https://a1.nyt.com/analytics/tagx-simple.min.js'], function() {
+ pageManager.trackingFireEventQueue();
+ });
+ });
+ });
+ });
+ </script>
+ <!--esi
+<esi:include src="/appconfig/https/show-modal.js" />
+-->
+
+ <div id="Inv1" class="ad inv1-ad hidden"></div>
+ <div id="Inv2" class="ad inv2-ad hidden">
+ <!-- ADXINFO classification="Text_Link" campaign="nyt2016_krux_cookiesetter" priority="9200" isInlineSafe="Y" width="0" height="0" -->
+ <script>
+ //123016 searches user's local storage for various Krux segments and places those into a Kruxadx cookie~909490
+
+ var kruxArray = [];
+ for (var i = 0; i & lt; localStorage.length; i++) {
+ var lclVals = localStorage.getItem(localStorage.key(i));
+
+ //Krux segs
+ var loggedOut = "qxk0hzyjh";
+ var hdFormers = "qudtfoenz";
+ var digiFormers = "qudtarl0q";
+ var b2bSiteLic = "q3vfitxb0";
+ var eduPropen = "pox3vefah";
+
+ //searches for the Krux seg in localStorage and pushes it to the array
+ if (lclVals.includes(loggedOut)) {
+ kruxArray.push(loggedOut);
+ }
+ if (lclVals.includes(hdFormers)) {
+ kruxArray.push(hdFormers);
+ }
+ if (lclVals.includes(digiFormers)) {
+ kruxArray.push(digiFormers);
+ }
+ if (lclVals.includes(b2bSiteLic)) {
+ kruxArray.push(b2bSiteLic);
+ }
+ if (lclVals.includes(eduPropen)) {
+ kruxArray.push(eduPropen);
+ }
+ }
+ //dedupes array
+ var kruxArrayFilt = kruxArray.filter(function(elem, index, self) {
+ return index == self.indexOf(elem);
+ });
+ //joins array in comma delimited string and sets Kruxadx cookie with new segs
+ if (kruxArrayFilt != '') {
+ for (var j = 0; j & lt; kruxArrayFilt.length; j++) {
+ var kruxArrayJoined = kruxArrayFilt.toString();
+ document.cookie = 'Kruxadx=' + kruxArrayJoined + '; domain=.nytimes.com; path=/; max-age=' + 60 * 60 * 6 + ';'
+ }
+ }
+ </script>
+ </div>
+ <div id="Inv3" class="ad inv3-ad hidden"></div>
+ <div id="ab1" class="ad ab1-ad hidden">
+ <!-- ADXINFO classification="Text_Link" campaign="nyt2017_EDU_B2B_pers_cookiesetter" priority="9100" isInlineSafe="Y" width="0" height="0" -->
+ <script src="https://static01.nyt.com/marketing/ADX/JS/personalize_b2b_edu_corp_v201701.js"></script>
+ <span class="adx-info hidden" style="display:none !important;" campaign="nyt2017_EDU_B2B_pers_cookiesetter">Campaign ID: 285217 | Creative: nyt2017_pers_B2B_cookieset_v5_HTTPS -- 415673 | Page: www.nytimes.com/yr/mo/day/world/africa/sudan-sanctions.html / Targeted Page: www.nytimes.com/yr/mo/day/world/africa | Position: ab1</span></div>
+ <div id="ab2" class="ad ab2-ad hidden"></div>
+ <div id="ab3" class="ad ab3-ad hidden"></div>
+ <div id="prop1" class="ad prop1-ad hidden"></div>
+ <div id="prop2" class="ad prop2-ad hidden"></div>
+ <div id="Anchor" class="ad anchor-ad hidden"></div>
+ <div id="ADX_CLIENTSIDE" class="ad adx-clientside-ad hidden"><iframe class="ad-frame frame-for-article" style="width: 0px; height: 0px;" frameborder="0"></iframe></div>
+
+
+ <div id="interstitial-ad-modal" class="modal-container interstitial-ad-modal-container" style="display: none;">
+ <div class="overlay" style="display: block;"></div>
+ <div class="modal interstitial-ad-modal " style="width: 640;" role="dialog" aria-labelledby="interstitial-ad-modal-modal-heading" tabindex="-1">
+ <div class="modal-header">
+ <h3 class="modal-heading" id="interstitial-ad-modal-modal-heading">advertisement</h3>
+
+ </div>
+ <div class="modal-content">
+ <div id="Interstitial" class="ad interstitial-ad hidden" data-google-query-id="CNeQhJX7vtECFQkklgodP-gCYg" style="display: none;">
+ <div id="google_ads_iframe_/29390238/NYT/world/africa_2__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/29390238/NYT/world/africa_2" title="3rd party ad content" name="google_ads_iframe_/29390238/NYT/world/africa_2" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" width="1" height="1" frameborder="0"></iframe></div><iframe id="google_ads_iframe_/29390238/NYT/world/africa_2__hidden__" title="" name="google_ads_iframe_/29390238/NYT/world/africa_2__hidden__" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom; visibility: hidden; display: none;" width="0" height="0" frameborder="0"></iframe></div>
+ <p class="user-action dismiss-button">Continue »</p>
+ </div>
+ <div class="modal-footer">
+
+ </div>
+ <button type="button" class="modal-close " aria-disabled="false"><i class="icon"></i><span class="visually-hidden">Close this modal window</span></button>
+ <div class="modal-pointer modal-pointer-fixed">
+ <div class="modal-pointer-conceal"></div>
+ </div>
+ </div>
+ </div>
+ <div id="user-name-modal" class="modal-container user-name-modal-container" style="display: none;">
+ <div class="overlay" style="display: none;"></div>
+ <div class="modal user-name-modal " style="width: 260px;" role="dialog" aria-labelledby="user-name-modal-modal-heading" tabindex="-1">
+ <div class="modal-header">
+ <h3 class="modal-heading" id="user-name-modal-modal-heading">
+ <span class="user-name-subscription">
+<span class="user-name"></span>
+
+ </span>
+ </h3>
+
+ </div>
+ <div class="modal-content">
+ <ul>
+ <li><a href="javascript:;" class="user-profile-button">Edit Profile</a></li>
+ <li><a href="https://myaccount.nytimes.com/membercenter/myaccount.html">My Account</a></li>
+ <li><a href="https://myaccount.nytimes.com/mem/manage_billing.html">My Billing Information</a></li>
+ <li><a href="http://www.nytimes.com/saved">My Saved Items</a></li>
+ <li><button class="button log-out-button">Log Out</button></li>
+ </ul>
+ </div>
+ <div class="modal-footer">
+
+ </div>
+ <button type="button" class="modal-close hidden" aria-disabled="false"><i class="icon"></i><span class="visually-hidden">Close this modal window</span></button>
+ <div class="modal-pointer modal-pointer-up-right">
+ <div class="modal-pointer-conceal"></div>
+ </div>
+ </div>
+ </div>
+ <div id="user-profile-modal" class="modal-container user-profile-modal-container" style="display: none;">
+ <div class="overlay" style="display: block;"></div>
+ <div class="modal user-profile-modal " style="width: undefined;" role="dialog" aria-labelledby="user-profile-modal-modal-heading" tabindex="-1">
+ <div class="modal-header">
+ <h3 class="modal-heading" id="user-profile-modal-modal-heading">Edit Profile</h3>
+ <h4 class="modal-subheading">Your profile is public. It will appear with any comments you leave on NYTimes.com</h4>
+ </div>
+ <div class="modal-content">
+ <div class="user-profile-form-control form-control user-profile-form-control-loading">
+
+ </div>
+ <!-- close user-profile-form-control -->
+ </div>
+ <div class="modal-footer">
+
+ </div>
+ <button type="button" class="modal-close " aria-disabled="false"><i class="icon"></i><span class="visually-hidden">Close this modal window</span></button>
+ <div class="modal-pointer modal-pointer-fixed">
+ <div class="modal-pointer-conceal"></div>
+ </div>
+ </div>
+ </div>
+ <div id="navigation-modal" class="modal-container navigation-modal-container" style="display: none;">
+ <div class="overlay" style="display: none;"></div>
+ <div class="modal navigation-modal " style="width: undefined;" role="dialog" aria-labelledby="navigation-modal-modal-heading" tabindex="-1">
+ <div class="modal-header">
+ <h3 class="modal-heading" id="navigation-modal-modal-heading"></h3>
+
+ </div>
+ <div class="modal-content">
+ <div class="secondary-container">
+ <div class="secondary-container">
+ <div class="header">
+ <h5 class="section-heading">
+ <a href="" role="menuitem"></a>
+ </h5>
+ </div>
+
+ <div class="section " data-parent="navId-9A43D8FC-F4CF-44D9-9B34-138D30468F8F">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-350E94CC-926C-4D2A-9DB4-FD9ED99A66DC" class=" " role="menuitem" href="http://www.nytimes.com/pages/world/africa/index.html">
+Africa
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-5A94A97E-037B-4C6B-A88D-741B06663078" class=" " role="menuitem" href="http://www.nytimes.com/pages/world/americas/index.html">
+Americas
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-881A1D77-D6D7-4AC3-AAC2-4C279C20DD66" class=" " role="menuitem" href="http://www.nytimes.com/pages/world/asia/index.html">
+Asia Pacific
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-A0EAB3C7-588D-4930-AC9B-57E2A8F8AD32" class=" " role="menuitem" href="http://www.nytimes.com/section/world/australia">
+Australia
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-D38BAA6D-F26D-4B3E-BF25-CC798E6C5F55" class=" " role="menuitem" href="http://www.nytimes.com/pages/world/europe/index.html">
+Europe
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-108390AA-728E-41EB-B9B5-14EDFBAE7D20" class=" " role="menuitem" href="http://www.nytimes.com/pages/world/middleeast/index.html">
+Middle East
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-AE2B2F51-EBDD-4153-A71A-922F9635C5A4" class=" " role="menuitem" href="http://atwar.blogs.nytimes.com/">
+At War
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-947EEB56-B266-44F4-A538-36200844547B" class=" " role="menuitem" href="http://sinosphere.blogs.nytimes.com/">
+Sinosphere
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary 9A43D8FC-F4CF-44D9-9B34-138D30468F8F sections -->
+
+ <div class="section " data-parent="navId-23FD6C8B-62D5-4CEA-A331-6C2A9A1223BE">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-C7303E0D-6EB2-4FD3-B968-530EF9F38EB1" class=" " role="menuitem" href="http://www.nytimes.com/pages/education/index.html">
+Education
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-D64FAE4C-4425-4E5A-B898-6C8CB59F9957" class=" " role="menuitem" href="http://www.nytimes.com/upshot/">
+The Upshot
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary 23FD6C8B-62D5-4CEA-A331-6C2A9A1223BE sections -->
+
+ <div class="section " data-parent="navId-80E6DEE6-87E4-4AD0-9152-14FA6B07E5AB">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-BB53FEFA-F91E-45B4-83D7-477579A87DF3" class=" " role="menuitem" href="http://www.nytimes.com/politics/first-draft/">
+First Draft
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-78CE290F-672B-4BC7-BD4E-67DA85BCAC4E" class=" " role="menuitem" href="http://elections.nytimes.com/">
+Elections
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-D64FAE4C-4425-4E5A-B898-6C8CB59F9957" class=" " role="menuitem" href="http://www.nytimes.com/upshot/">
+The Upshot
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary 80E6DEE6-87E4-4AD0-9152-14FA6B07E5AB sections -->
+
+ <div class="section " data-parent="navId-C4DC8C0C-E148-4201-BF10-82F1C903DBFB">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-2D1C1EB8-E0D9-40A9-8D59-3908DCF5C9BD" class=" " role="menuitem" href="http://www.nytimes.com/events/">
+Events
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary C4DC8C0C-E148-4201-BF10-82F1C903DBFB sections -->
+
+ <div class="section " data-parent="navId-104D1E63-9701-497B-8CF4-A4D120C9014E">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-71301FE1-FE94-4AF4-978B-39B2D2C59D31" class=" " role="menuitem" href="http://www.nytimes.com/pages/business/dealbook/index.html">
+DealBook
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-2848A7AC-A33D-4352-B1FC-A465B81CD4F1" class=" " role="menuitem" href="http://www.nytimes.com/pages/business/economy/index.html">
+Economy
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-E1B05D9E-B6F8-46DB-89E5-06F2205C8085" class=" " role="menuitem" href="http://www.nytimes.com/pages/business/energy-environment/index.html">
+Energy
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-4A7070FF-9307-4094-AE79-910158959A60" class=" " role="menuitem" href="http://markets.on.nytimes.com/">
+Markets
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-C691FB48-A7E8-44FB-9AAA-13D91863D336" class=" " role="menuitem" href="http://www.nytimes.com/pages/business/media/index.html">
+Media
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-AD2AE740-D1A5-4EDB-970D-F56370072B09" class=" " role="menuitem" href="http://www.nytimes.com/pages/business/smallbusiness/index.html">
+Entrepreneurship
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-ED7B8594-44CE-4D37-A58B-1CDAA19774E4" class=" " role="menuitem" href="http://www.nytimes.com/pages/your-money/index.html">
+Your Money
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-0A13AF9D-C7B5-4E8A-B9BC-15AB4B572C94" class=" " role="menuitem" href="http://www.nytimes.com/pages/automobiles/index.html">
+Automobiles
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary 104D1E63-9701-497B-8CF4-A4D120C9014E sections -->
+
+ <div class="section " data-parent="navId-A257D89A-0D3C-40AF-9C34-1A25A7947D94">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-71301FE1-FE94-4AF4-978B-39B2D2C59D31" class=" " role="menuitem" href="http://www.nytimes.com/pages/business/dealbook/index.html">
+DealBook
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-2848A7AC-A33D-4352-B1FC-A465B81CD4F1" class=" " role="menuitem" href="http://www.nytimes.com/pages/business/economy/index.html">
+Economy
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-E1B05D9E-B6F8-46DB-89E5-06F2205C8085" class=" " role="menuitem" href="http://www.nytimes.com/pages/business/energy-environment/index.html">
+Energy
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-4A7070FF-9307-4094-AE79-910158959A60" class=" " role="menuitem" href="http://markets.on.nytimes.com/">
+Markets
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-C691FB48-A7E8-44FB-9AAA-13D91863D336" class=" " role="menuitem" href="http://www.nytimes.com/pages/business/media/index.html">
+Media
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-AD2AE740-D1A5-4EDB-970D-F56370072B09" class=" " role="menuitem" href="http://www.nytimes.com/pages/business/smallbusiness/index.html">
+Entrepreneurship
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-ED7B8594-44CE-4D37-A58B-1CDAA19774E4" class=" " role="menuitem" href="http://www.nytimes.com/pages/your-money/index.html">
+Your Money
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-0A13AF9D-C7B5-4E8A-B9BC-15AB4B572C94" class=" " role="menuitem" href="http://www.nytimes.com/pages/automobiles/index.html">
+Automobiles
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary A257D89A-0D3C-40AF-9C34-1A25A7947D94 sections -->
+
+ <div class="section " data-parent="navId-AD8090D7-4137-4D71-84C8-70DA3BD89778">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-9568A8E4-DD00-4A19-9357-55F8E84ADDB5" class="domestic expandable" role="menuitem" href="http://www.nytimes.com/pages/opinion/index.html#columnists" aria-haspopup="true" aria-expanded="false">
+Op-Ed Columnists
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+<div class="arrow arrow-left">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-6E604B7F-ACE7-4564-9203-0BD4CB02F419" class="domestic " role="menuitem" href="http://www.nytimes.com/pages/opinion/index.html#editorials">
+Editorials
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-A98552D7-2525-41F0-92E5-DFFA2F9619A9" class="domestic " role="menuitem" href="http://www.nytimes.com/pages/opinion/index.html#contributing">
+Contributing Writers
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-B3CE1F6E-B530-4C07-9B1C-98A1F9406C06" class="domestic " role="menuitem" href="http://www.nytimes.com/pages/opinion/index.html#op-ed">
+Op-Ed Contributors
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-D6E51A50-AA05-4E81-987C-3E0AF5DABBB4" class=" " role="menuitem" href="http://www.nytimes.com/pages/opinion/index.html#opinionator">
+Opinionator
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-7A239778-088E-4DD8-BEBF-649172041293" class="domestic " role="menuitem" href="http://www.nytimes.com/pages/opinion/index.html#letters">
+Letters
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-67D7F2A2-B495-4FFC-9478-1CE1965601D5" class=" " role="menuitem" href="http://www.nytimes.com/pages/opinion/index.html#sundayreview">
+Sunday Review
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-136660BD-D661-4731-A1D7-03204BED7923" class="domestic " role="menuitem" href="http://www.nytimes.com/pages/opinion/index.html#takingNote">
+Taking Note
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-4FB3EADA-B7BB-4587-AAB0-9F3909DF4ED0" class="domestic " role="menuitem" href="http://www.nytimes.com/roomfordebate">
+Room for Debate
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-8F7EBC39-9ED0-4603-8BCA-E9618B8A08A1" class=" " role="menuitem" href="http://topics.nytimes.com/top/opinion/thepubliceditor/index.html">
+Public Editor
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary AD8090D7-4137-4D71-84C8-70DA3BD89778 sections -->
+
+ <div class="section " data-parent="navId-09736473-CB3F-4B2F-9772-3AF128ABE12D">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-2312753B-E860-46C4-B544-1C0F70ABF41F" class="international expandable" role="menuitem" href="http://www.nytimes.com/pages/opinion/international/index.html#columnistsGlobal" aria-haspopup="true" aria-expanded="false">
+Op-Ed Columnists
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+<div class="arrow arrow-left">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-1F55AAA1-8287-4C9E-91B8-4402B7E3C855" class="international " role="menuitem" href="http://www.nytimes.com/pages/opinion/international/index.html#editorialsGlobal">
+Editorials
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-6CD3A7AF-B060-4251-B2A6-E3A1B8B09982" class="international " role="menuitem" href="http://www.nytimes.com/pages/opinion/international/index.html#contributing">
+Contributing Writers
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-FD915915-123F-4EEE-A0D1-58B15C0C545F" class="international " role="menuitem" href="http://www.nytimes.com/pages/opinion/international/index.html#op-edGlobal">
+Op-Ed Contributors
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-D6E51A50-AA05-4E81-987C-3E0AF5DABBB4" class=" " role="menuitem" href="http://www.nytimes.com/pages/opinion/index.html#opinionator">
+Opinionator
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-D4344F1A-7552-4908-84E8-E3120AE3F7B2" class="international " role="menuitem" href="http://www.nytimes.com/pages/opinion/international/index.html#letters">
+Letters
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-67D7F2A2-B495-4FFC-9478-1CE1965601D5" class=" " role="menuitem" href="http://www.nytimes.com/pages/opinion/index.html#sundayreview">
+Sunday Review
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-C94AF19E-C233-4966-BF29-7F1103B46A62" class="international " role="menuitem" href="http://www.nytimes.com/pages/opinion/international/index.html#takingNote">
+Taking Note
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-C46DD884-B4C6-43FE-AAF0-658ED47F6FA5" class="international " role="menuitem" href="http://www.nytimes.com/roomfordebate">
+Room for Debate
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-8F7EBC39-9ED0-4603-8BCA-E9618B8A08A1" class=" " role="menuitem" href="http://topics.nytimes.com/top/opinion/thepubliceditor/index.html">
+Public Editor
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary 09736473-CB3F-4B2F-9772-3AF128ABE12D sections -->
+
+ <div class="section " data-parent="navId-78FBAD45-31A9-4EC7-B172-7D62A2B9955E">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-157C94B4-918B-48FA-9E56-AA6347F2F44E" class=" " role="menuitem" href="http://bits.blogs.nytimes.com/">
+Bits
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-65229E4E-DAD7-459F-AFD3-2AB6D0374FFD" class=" " role="menuitem" href="http://www.nytimes.com/pages/technology/personaltech/index.html">
+Personal Tech
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary 78FBAD45-31A9-4EC7-B172-7D62A2B9955E sections -->
+
+ <div class="section " data-parent="navId-A4B35924-DB6C-4EA3-997D-450810F4FEE6">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-B831ACFB-B751-4F23-9B91-F1236878836C" class=" " role="menuitem" href="http://www.nytimes.com/section/science/earth">
+Environment
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-E048A75C-4A9C-4241-B38C-74752BBC5AB8" class=" " role="menuitem" href="http://www.nytimes.com/section/science/space">
+Space &amp; Cosmos
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary A4B35924-DB6C-4EA3-997D-450810F4FEE6 sections -->
+
+ <div class="section " data-parent="navId-7D6BE1AF-8CD8-430B-8B2A-17CD0EAA99AC">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-5A98BF31-516F-48DE-8736-17BEEF1F64C6" class=" " role="menuitem" href="http://www.nytimes.com/section/well">
+Well
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-67641EB3-B6FF-44F2-B10F-2F6A5C2EC7D7" class=" " role="menuitem" href="http://www.nytimes.com/pages/health/policy/index.html">
+Money &amp; Policy
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-DA27E208-2682-4B17-8996-CD35A339521B" class=" " role="menuitem" href="http://www.nytimes.com/health/guides/index.html">
+Health Guide
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary 7D6BE1AF-8CD8-430B-8B2A-17CD0EAA99AC sections -->
+
+ <div class="section " data-parent="navId-DE2B278B-2783-4506-AAD5-C15A5BB6DA1A">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-67CAE5A6-408D-44F3-827B-DD394E0467EF" class=" " role="menuitem" href="http://www.nytimes.com/pages/sports/baseball/index.html">
+Baseball
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-BA1B9016-F2F7-454B-BDF7-D4C58F6D05E9" class=" " role="menuitem" href="http://www.nytimes.com/pages/sports/ncaabasketball/index.html">
+Basketball: College
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-415FB1AB-3BED-4048-B61A-0E4096CE1DF6" class=" " role="menuitem" href="http://www.nytimes.com/pages/sports/basketball/index.html">
+Basketball: N.B.A.
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-ABBA0609-90E2-46A3-9AC5-B208ACC6C97B" class=" " role="menuitem" href="http://www.nytimes.com/pages/sports/ncaafootball/index.html">
+Football: College
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-F6B9D6C9-97AE-45DB-9686-72E44D8D3DAF" class=" " role="menuitem" href="http://www.nytimes.com/pages/sports/football/index.html">
+Football: N.F.L.
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-9F98FEDB-E7B3-4907-A56E-35320CC4C878" class=" " role="menuitem" href="http://www.nytimes.com/pages/sports/golf/index.html">
+Golf
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-BD14DADE-D513-4BD9-8AED-0CC63E58606C" class=" " role="menuitem" href="http://www.nytimes.com/pages/sports/hockey/index.html">
+Hockey
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-14F230C0-EBDB-4A78-AF7B-2C90C4739625" class=" " role="menuitem" href="http://www.nytimes.com/pages/sports/soccer/index.html">
+Soccer
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-D4DE47DA-76DD-4528-B539-98A6DFEFEFB3" class=" " role="menuitem" href="http://www.nytimes.com/pages/sports/tennis/index.html">
+Tennis
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary DE2B278B-2783-4506-AAD5-C15A5BB6DA1A sections -->
+
+ <div class="section " data-parent="navId-BE66F420-C51B-461D-B487-CACF62E94AAE">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-67CAE5A6-408D-44F3-827B-DD394E0467EF" class=" " role="menuitem" href="http://www.nytimes.com/pages/sports/baseball/index.html">
+Baseball
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-BA1B9016-F2F7-454B-BDF7-D4C58F6D05E9" class=" " role="menuitem" href="http://www.nytimes.com/pages/sports/ncaabasketball/index.html">
+Basketball: College
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-415FB1AB-3BED-4048-B61A-0E4096CE1DF6" class=" " role="menuitem" href="http://www.nytimes.com/pages/sports/basketball/index.html">
+Basketball: N.B.A.
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-ABBA0609-90E2-46A3-9AC5-B208ACC6C97B" class=" " role="menuitem" href="http://www.nytimes.com/pages/sports/ncaafootball/index.html">
+Football: College
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-F6B9D6C9-97AE-45DB-9686-72E44D8D3DAF" class=" " role="menuitem" href="http://www.nytimes.com/pages/sports/football/index.html">
+Football: N.F.L.
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-9F98FEDB-E7B3-4907-A56E-35320CC4C878" class=" " role="menuitem" href="http://www.nytimes.com/pages/sports/golf/index.html">
+Golf
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-BD14DADE-D513-4BD9-8AED-0CC63E58606C" class=" " role="menuitem" href="http://www.nytimes.com/pages/sports/hockey/index.html">
+Hockey
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-14F230C0-EBDB-4A78-AF7B-2C90C4739625" class=" " role="menuitem" href="http://www.nytimes.com/pages/sports/soccer/index.html">
+Soccer
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-D4DE47DA-76DD-4528-B539-98A6DFEFEFB3" class=" " role="menuitem" href="http://www.nytimes.com/pages/sports/tennis/index.html">
+Tennis
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary BE66F420-C51B-461D-B487-CACF62E94AAE sections -->
+
+ <div class="section " data-parent="navId-C5BFA7D5-359C-427B-90E6-6B7245A6CDD8">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-AB35105B-5032-41D9-86B1-06A221411B22" class=" " role="menuitem" href="http://www.nytimes.com/pages/arts/design/index.html">
+Art &amp; Design
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-7B052F64-13C5-4631-ACE4-F1BAA9706061" class=" " role="menuitem" href="http://www.nytimes.com/pages/books/index.html">
+Books
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-21A8F511-CA05-4797-AF76-17B61D3964CD" class=" " role="menuitem" href="http://www.nytimes.com/pages/arts/dance/index.html">
+Dance
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-62BF6D00-C2D2-420E-9986-791EECA152C9" class=" " role="menuitem" href="http://www.nytimes.com/pages/movies/index.html">
+Movies
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-E0A8CBEB-DDB5-4ADF-B5A4-60CB484ED991" class=" " role="menuitem" href="http://www.nytimes.com/pages/arts/music/index.html">
+Music
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-1B3D562C-A3F9-4083-9B6E-60C8A1F3FFB0" class=" " role="menuitem" href="http://www.nytimes.com/events/">
+N.Y.C. Events Guide
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-EF6D2985-BB93-4771-8155-CC3E2B5A7C73" class=" " role="menuitem" href="http://www.nytimes.com/pages/arts/television/index.html">
+Television
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-21D5B838-29CC-46D3-9006-879CAABC8F08" class=" " role="menuitem" href="http://www.nytimes.com/pages/theater/index.html">
+Theater
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-2558194D-A450-4F5B-8E90-8609A69E1D0E" class=" " role="menuitem" href="http://www.nytimes.com/watching">
+Watching
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary C5BFA7D5-359C-427B-90E6-6B7245A6CDD8 sections -->
+
+ <div class="section " data-parent="navId-0202D0E4-C59B-479A-BD42-6F1766459781">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-AB35105B-5032-41D9-86B1-06A221411B22" class=" " role="menuitem" href="http://www.nytimes.com/pages/arts/design/index.html">
+Art &amp; Design
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-7B052F64-13C5-4631-ACE4-F1BAA9706061" class=" " role="menuitem" href="http://www.nytimes.com/pages/books/index.html">
+Books
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-21A8F511-CA05-4797-AF76-17B61D3964CD" class=" " role="menuitem" href="http://www.nytimes.com/pages/arts/dance/index.html">
+Dance
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-62BF6D00-C2D2-420E-9986-791EECA152C9" class=" " role="menuitem" href="http://www.nytimes.com/pages/movies/index.html">
+Movies
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-E0A8CBEB-DDB5-4ADF-B5A4-60CB484ED991" class=" " role="menuitem" href="http://www.nytimes.com/pages/arts/music/index.html">
+Music
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-1B3D562C-A3F9-4083-9B6E-60C8A1F3FFB0" class=" " role="menuitem" href="http://www.nytimes.com/events/">
+N.Y.C. Events Guide
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-EF6D2985-BB93-4771-8155-CC3E2B5A7C73" class=" " role="menuitem" href="http://www.nytimes.com/pages/arts/television/index.html">
+Television
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-21D5B838-29CC-46D3-9006-879CAABC8F08" class=" " role="menuitem" href="http://www.nytimes.com/pages/theater/index.html">
+Theater
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-2558194D-A450-4F5B-8E90-8609A69E1D0E" class=" " role="menuitem" href="http://www.nytimes.com/watching">
+Watching
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary 0202D0E4-C59B-479A-BD42-6F1766459781 sections -->
+
+ <div class="section " data-parent="navId-B3DFBD82-F298-43B3-9458-219B4F6AA2A5">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-7A870CC7-2938-4C8E-B8F2-BD54465ECB58" class=" " role="menuitem" href="http://www.nytimes.com/pages/fashion/mens-style/index.html">
+Men's Style
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-38E82E5A-D1EE-4A54-BC61-9155577ABAED" class=" " role="menuitem" href="http://www.nytimes.com/column/on-the-runway">
+On the Runway
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-D0F14EC9-05BC-4188-AE41-A4CD18FD19AD" class=" " role="menuitem" href="http://www.nytimes.com/pages/fashion/weddings/index.html">
+Weddings
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary B3DFBD82-F298-43B3-9458-219B4F6AA2A5 sections -->
+
+ <div class="section " data-parent="navId-CC9E2674-F6C4-4A39-813B-F5AB0C515CEA">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-7A870CC7-2938-4C8E-B8F2-BD54465ECB58" class=" " role="menuitem" href="http://www.nytimes.com/pages/fashion/mens-style/index.html">
+Men's Style
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-38E82E5A-D1EE-4A54-BC61-9155577ABAED" class=" " role="menuitem" href="http://www.nytimes.com/column/on-the-runway">
+On the Runway
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-D0F14EC9-05BC-4188-AE41-A4CD18FD19AD" class=" " role="menuitem" href="http://www.nytimes.com/pages/fashion/weddings/index.html">
+Weddings
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary CC9E2674-F6C4-4A39-813B-F5AB0C515CEA sections -->
+
+ <div class="section " data-parent="navId-D9C94A2B-0364-4D25-8383-592CC66F82D4">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-EC43C53C-07AC-42DF-8EA3-34F4EFCD6524" class=" " role="menuitem" href="http://cooking.nytimes.com">
+Cooking
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-63AB32FE-1AA9-4C10-85CF-86088BC725B7" class=" " role="menuitem" href="http://www.nytimes.com/restaurants/search/">
+Restaurant Search
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary D9C94A2B-0364-4D25-8383-592CC66F82D4 sections -->
+
+ <div class="section " data-parent="navId-FDEFB811-B483-4C3D-A25A-FD07BE5EAD96">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-EC43C53C-07AC-42DF-8EA3-34F4EFCD6524" class=" " role="menuitem" href="http://cooking.nytimes.com">
+Cooking
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-63AB32FE-1AA9-4C10-85CF-86088BC725B7" class=" " role="menuitem" href="http://www.nytimes.com/restaurants/search/">
+Restaurant Search
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary FDEFB811-B483-4C3D-A25A-FD07BE5EAD96 sections -->
+
+ <div class="section " data-parent="navId-92720057-BCB6-4BDB-9351-12F29393259F">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-D896FA09-BB54-4280-BAC5-268E5CAC9D84" class=" " role="menuitem" href="http://www.nytimes.com/real-estate/the-high-end">
+The High End
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-00B951BD-2AE1-4E28-BAF7-18D1FAA6AA97" class=" " role="menuitem" href="http://www.nytimes.com/pages/realestate/commercial/index.html">
+Commercial
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-BC640596-8EEE-4DF9-A009-55F8BA5ACD04" class=" " role="menuitem" href="https://itunes.apple.com/us/app/nytimesrealestate/id337316535">
+iPhone App
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-9AE506A2-9337-4A5E-8499-E3781316FF13" class=" " role="menuitem" href="http://www.nytimes.com/real-estate/find-a-home">
+Find A Home
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-E4FBD546-F591-4961-9A7B-1348506F24ED" class=" " role="menuitem" href="http://www.nytimes.com/real-estate/my-real-estate">
+My Real Estate
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-58BA565B-0B7B-4DCF-9051-A8F77BF82FC5" class=" " role="menuitem" href="https://realestateads.nytimes.com/">
+List Your Home
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary 92720057-BCB6-4BDB-9351-12F29393259F sections -->
+
+ <div class="section video" data-parent="navId-432A1823-3F24-43C0-8004-79088F94E754">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-FAF08756-1545-4233-B9D6-FEFA1115CFA6" class=" " role="menuitem" href="http://www.nytimes.com/video/us-politics">
+U.S. &amp; Politics
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-63D27866-95B7-47BC-9B53-E250CA21E182" class=" " role="menuitem" href="http://www.nytimes.com/video/world">
+International
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-281517E5-9CC5-472C-B46A-B9CF9AAE72F2" class=" " role="menuitem" href="http://www.nytimes.com/video/n-y-region">
+N.Y.
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-C5D5043A-85D5-4E97-BE08-8D0278F97101" class=" " role="menuitem" href="http://www.nytimes.com/video/op-docs">
+Op-Docs
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-6AB2572C-5341-4979-8D74-E38528FE0159" class=" " role="menuitem" href="http://www.nytimes.com/video/opinion">
+Opinion
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-50BEEE33-737A-4EBE-98D7-65593C23AE6C" class=" " role="menuitem" href="http://www.nytimes.com/video/times-documentaries">
+Times Documentaries
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-18CC8E0D-C9B6-4A81-8EB6-9AC98B296DDB" class=" " role="menuitem" href="http://www.nytimes.com/video/business">
+Business
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-457A829A-6C9D-47A9-B91E-2212766B6648" class=" " role="menuitem" href="http://www.nytimes.com/video/technology">
+Tech
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-4CF1B9A6-4476-45CF-AF12-53B7EB39847F" class=" " role="menuitem" href="http://www.nytimes.com/video/arts">
+Culture
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-3BAEEBB7-10C5-43F9-A728-26DCE4D44B48" class=" " role="menuitem" href="http://www.nytimes.com/video/style">
+Style
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-1CB4FCE4-8D2A-4313-9EBC-32F88BD90A35" class=" " role="menuitem" href="http://www.nytimes.com/video/t-magazine">
+T Magazine
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-6872F49C-F4A1-458D-8410-B253D44B8E9C" class=" " role="menuitem" href="http://www.nytimes.com/video/health">
+Health
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-A3E833FD-09AE-4B1B-B4A7-AED0CF1CC74C" class=" " role="menuitem" href="http://www.nytimes.com/video/dining-and-wine">
+Food
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-380D52A1-A468-4069-BCA9-52D6E2625D63" class=" " role="menuitem" href="http://www.nytimes.com/video/travel">
+Travel
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-DAB634A7-D513-49CA-BBEF-9FB321BF6798" class=" " role="menuitem" href="http://www.nytimes.com/video/sports">
+Sports
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-64C01CC7-C6F7-4E1B-A4FD-69B6D5B647FE" class=" " role="menuitem" href="http://www.nytimes.com/video/real-estate">
+Real Estate
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-6F4D6D03-8D74-4A7C-939D-2ADEE18731CB" class=" " role="menuitem" href="http://www.nytimes.com/video/science">
+Science
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary 432A1823-3F24-43C0-8004-79088F94E754 sections -->
+
+ <div class="section " data-parent="navId-0442C365-4B63-4B63-B9DE-3C28319CB622">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-EC1380B0-3124-4A9B-82CF-9EA22D988C8F" class=" " role="menuitem" href="http://nytlive.nytimes.com/womenintheworld">
+Women in the World
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-61F54F21-A0A9-46B9-BDC5-22BDDAD4007A" class=" " role="menuitem" href="http://www.nytimes.com/newwork">
+New Work Summit
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-2D56941E-C5DA-4474-BB5F-DEF1CABBFAD4" class=" " role="menuitem" href="http://www.inytartfortomorrow.com/">
+Art for Tomorrow
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-CB602764-3E17-4A16-BBD4-08138CFDBD81" class=" " role="menuitem" href="http://nythigheredleaders.com/">
+Higher Ed Leaders Forum
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-AC54D2A5-3C94-4ECF-8FBF-AC4E67AA3A36" class=" " role="menuitem" href="http://nytcitiesfortomorrow.com/">
+Cities for Tomorrow
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-DF70A828-4A23-4295-9560-8D8B5FC097B0" class=" " role="menuitem" href="http://athensdemocracyforum.com/">
+Athens Democracy Forum
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-81785E85-A8E4-43E5-B6EA-C623C887B9BB" class=" " role="menuitem" href="http://www.nytluxurytravel.com">
+Luxury Travel Conference
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-E3E7342B-6340-41F7-BFAC-9FA6FAEC2546" class=" " role="menuitem" href="http://www.nytenergy.com">
+Energy for Tomorrow
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-0273790F-9086-41CE-82F1-B83A0FAEED21" class=" " role="menuitem" href="http://nytdealbookconference.com/">
+DealBook Conference
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary 0442C365-4B63-4B63-B9DE-3C28319CB622 sections -->
+
+ <div class="section section-more hidden" data-parent="navId-more-section">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="hidden">
+ <a id="navId-A963B567-7D3D-4D0C-9E47-BF91609EFCE7" class="domestic " role="menuitem" href="http://www.nytimes.com">
+Home Page
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-F4E6EDF7-81C6-4DB2-8EB9-5A5E8A95CEC1" class="international " role="menuitem" href="http://international.nytimes.com/?iht">
+Home Page
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-9A43D8FC-F4CF-44D9-9B34-138D30468F8F" class=" expandable" role="menuitem" href="http://www.nytimes.com/pages/world/index.html" aria-haspopup="true" aria-expanded="false">
+World
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-23FD6C8B-62D5-4CEA-A331-6C2A9A1223BE" class=" expandable" role="menuitem" href="http://www.nytimes.com/pages/national/index.html" aria-haspopup="true" aria-expanded="false">
+U.S.
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-80E6DEE6-87E4-4AD0-9152-14FA6B07E5AB" class=" expandable" role="menuitem" href="http://www.nytimes.com/pages/politics/index.html" aria-haspopup="true" aria-expanded="false">
+Politics
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-C4DC8C0C-E148-4201-BF10-82F1C903DBFB" class=" expandable" role="menuitem" href="http://www.nytimes.com/pages/nyregion/index.html" aria-haspopup="true" aria-expanded="false">
+N.Y.
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-104D1E63-9701-497B-8CF4-A4D120C9014E" class="domestic expandable" role="menuitem" href="http://www.nytimes.com/pages/business/index.html" aria-haspopup="true" aria-expanded="false">
+Business
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-A257D89A-0D3C-40AF-9C34-1A25A7947D94" class="international expandable" role="menuitem" href="http://www.nytimes.com/pages/business/international/index.html" aria-haspopup="true" aria-expanded="false">
+Business
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-AD8090D7-4137-4D71-84C8-70DA3BD89778" class="domestic expandable" role="menuitem" href="http://www.nytimes.com/pages/opinion/index.html" aria-haspopup="true" aria-expanded="false">
+Opinion
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-09736473-CB3F-4B2F-9772-3AF128ABE12D" class="international expandable" role="menuitem" href="http://www.nytimes.com/pages/opinion/international/index.html" aria-haspopup="true" aria-expanded="false">
+Opinion
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-78FBAD45-31A9-4EC7-B172-7D62A2B9955E" class=" expandable" role="menuitem" href="http://www.nytimes.com/pages/technology/index.html" aria-haspopup="true" aria-expanded="false">
+Tech
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-A4B35924-DB6C-4EA3-997D-450810F4FEE6" class=" expandable" role="menuitem" href="http://www.nytimes.com/section/science" aria-haspopup="true" aria-expanded="false">
+Science
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-7D6BE1AF-8CD8-430B-8B2A-17CD0EAA99AC" class=" expandable" role="menuitem" href="http://www.nytimes.com/pages/health/index.html" aria-haspopup="true" aria-expanded="false">
+Health
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-DE2B278B-2783-4506-AAD5-C15A5BB6DA1A" class="domestic expandable" role="menuitem" href="http://www.nytimes.com/pages/sports/index.html" aria-haspopup="true" aria-expanded="false">
+Sports
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-BE66F420-C51B-461D-B487-CACF62E94AAE" class="international expandable" role="menuitem" href="http://www.nytimes.com/pages/sports/international/index.html" aria-haspopup="true" aria-expanded="false">
+Sports
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+
+ </ul>
+ </div>
+
+ <div class="section section-more hidden" data-parent="navId-more-section">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="hidden">
+ <a id="navId-C5BFA7D5-359C-427B-90E6-6B7245A6CDD8" class="domestic expandable" role="menuitem" href="http://www.nytimes.com/pages/arts/index.html" aria-haspopup="true" aria-expanded="false">
+Arts
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-0202D0E4-C59B-479A-BD42-6F1766459781" class="international expandable" role="menuitem" href="http://www.nytimes.com/pages/arts/international/index.html" aria-haspopup="true" aria-expanded="false">
+Arts
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-B3DFBD82-F298-43B3-9458-219B4F6AA2A5" class="domestic expandable" role="menuitem" href="http://www.nytimes.com/pages/fashion/index.html" aria-haspopup="true" aria-expanded="false">
+Fashion &amp; Style
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-CC9E2674-F6C4-4A39-813B-F5AB0C515CEA" class="international expandable" role="menuitem" href="http://www.nytimes.com/pages/style/international/index.html" aria-haspopup="true" aria-expanded="false">
+Fashion &amp; Style
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-D9C94A2B-0364-4D25-8383-592CC66F82D4" class="domestic expandable" role="menuitem" href="http://www.nytimes.com/pages/dining/index.html" aria-haspopup="true" aria-expanded="false">
+Food
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-FDEFB811-B483-4C3D-A25A-FD07BE5EAD96" class="international expandable" role="menuitem" href="http://www.nytimes.com/pages/dining/international/index.html" aria-haspopup="true" aria-expanded="false">
+Food
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-FDA10AC4-4738-4099-91E8-15584765C8D7" class=" " role="menuitem" href="http://www.nytimes.com/section/travel">
+Travel
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-E57A148E-0CB9-4C02-966D-28B119710151" class=" " role="menuitem" href="http://www.nytimes.com/pages/magazine/index.html">
+Magazine
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-052C33AD-1404-4DB6-AA70-0901DB1AD95B" class=" " role="menuitem" href="http://www.nytimes.com/section/t-magazine">
+T Magazine
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-92720057-BCB6-4BDB-9351-12F29393259F" class=" expandable" role="menuitem" href="http://www.nytimes.com/section/realestate" aria-haspopup="true" aria-expanded="false">
+Real Estate
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-CEDDB6A8-F7E1-47A2-AC53-E28C616DFCD5" class=" " role="menuitem" href="http://www.nytimes.com/pages/obituaries/index.html">
+Obituaries
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-432A1823-3F24-43C0-8004-79088F94E754" class=" expandable" role="menuitem" href="http://www.nytimes.com/video" aria-haspopup="true" aria-expanded="false">
+Video
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-D64FAE4C-4425-4E5A-B898-6C8CB59F9957" class=" " role="menuitem" href="http://www.nytimes.com/upshot/">
+The Upshot
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-0442C365-4B63-4B63-B9DE-3C28319CB622" class=" expandable" role="menuitem" tabindex="0" aria-haspopup="true" aria-expanded="false">
+Conferences
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+
+ </ul>
+ </div>
+
+ <div class="section section-more" data-parent="navId-more-section">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="hidden">
+ <a id="navId-5C13EEDD-D905-4D8C-A284-6859EA434563" class=" " role="menuitem" href="http://www.nytimes.com/crosswords/">
+Crossword
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-99C17804-A343-4A76-BF04-F5793ADA48D1" class=" " role="menuitem" href="http://www.nytimes.com/times-insider">
+Times Insider
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-614CE30F-3D4A-4194-9C6F-AE5901C5762D" class=" " role="menuitem" href="http://www.nytimes.com/section/learning">
+The Learning Network
+
+</a>
+ </li>
+
+
+
+ </ul>
+ </div>
+
+ <div class="section section-more " data-parent="navId-more-section">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-8FB1308A-FFE4-4BED-ADF6-659A680D0884" class=" " role="menuitem" href="http://www.nytimes.com/pages/multimedia/index.html">
+Multimedia
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-108F7745-BAD9-4630-87BB-4FB4ED7CAA11" class=" " role="menuitem" href="http://lens.blogs.nytimes.com/">
+Photography
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-EDCE4B29-2B91-4241-82E6-C972E9449F49" class=" " role="menuitem" href="http://www.nytimes.com/podcasts/">
+Podcasts
+
+</a>
+ </li>
+
+
+
+ </ul>
+ </div>
+
+ <div class="section section-more " data-parent="navId-more-section">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-6101A43A-8BDE-45FF-AAD5-EF7396F83AC9" class=" " role="menuitem" href="https://www.nytimes.com/store/?&amp;t=qry542&amp;utm_source=nytimes&amp;utm_medium=HPB&amp;utm_content=hp_browsetree&amp;utm_campaign=NYT-HP&amp;module=SectionsNav&amp;action=click&amp;region=TopBar&amp;version=BrowseTree&amp;contentCollection=NYT%20Store&amp;contentPlacement=2&amp;pgtype=Homepage">
+NYT Store
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-52A8A3F2-F138-425B-A63F-722E2BBC9372" class=" " role="menuitem" href="http://www.nytwineclub.com">
+NYT Wine Club
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-081347DE-FF02-4B6C-889B-9AE59F391833" class=" " role="menuitem" href="http://nytedu.com">
+nytEducation
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-797F8D17-1632-435D-B3DB-708FC4B4BAEF" class=" " role="menuitem" href="http://www.nytimes.com/times-journeys/?utm_source=nytimes&amp;utm_medium=HPLink&amp;utm_content=hp_browsetree&amp;utm_campaign=NYT-HP&amp;module=SectionsNav&amp;action=click&amp;region=TopBar&amp;version=BrowseTree&amp;contentCollection=Times%20Journeys&amp;contentPlacement=2&amp;pgtype=Homepage">
+Times Journeys
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-53CB229C-5F34-4C32-8B8C-6F7B7626BBDD" class=" " role="menuitem" href="https://www.chefd.com/pages/new-york-times-cooking-meal-plan?utm_campaign=web1_20160617&amp;utm_medium=partner&amp;utm_source=nyt">
+Meal Kits
+
+</a>
+ </li>
+
+
+
+ </ul>
+ </div>
+
+ <div class="section section-more " data-parent="navId-more-section">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-FED853D9-D192-46F6-8D18-447803EB4A7B" class=" " role="menuitem" href="http://www.nytimes.com/IntDigiFooterHP">
+Subscribe
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-61E9BFEA-F509-4BCA-ADC6-32C5A30B83FD" class=" " role="menuitem" href="http://www.nytimes.com/membercenter">
+Manage Account
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-0DAA7CFE-196B-4878-B899-5363070098EC" class=" " role="menuitem" href="http://www.nytimes.com/pages/todayspaper/index.html">
+Today's Paper
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-1FBDDF2B-64F5-4DB3-8093-F0CCB7808799" class=" " role="menuitem" href="http://www.nytimes.com/interactive/blogs/directory.html">
+Blogs
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-D3E5F163-D939-4FD5-8FB6-C6AD31748E30" class=" " role="menuitem" href="http://www.nytimes.com/pages/topics/">
+Times Topics
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-6BBF5308-5EA3-4B25-885F-393F7372F27F" class=" " role="menuitem" href="http://www.nytimes.com/marketing/tools-and-services/">
+Tools &amp; Services
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-288E1691-DA3B-457A-8B06-D10A1351E7B9" class=" " role="menuitem" href="http://www.nytimes.com/section/jobs">
+Jobs
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-D4C7C57A-E74D-44C3-9D0E-0AE6B715610F" class=" " role="menuitem" href="http://www.nytimes.com/ref/classifieds/">
+Classifieds
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-6DD9D623-A907-4623-9C5A-9409972B76DA" class=" " role="menuitem" href="http://www.nytimes.com/pages/corrections/index.html">
+Corrections
+
+</a>
+ </li>
+
+
+
+ </ul>
+ </div>
+ </div>
+ <!-- close secondary modal -->
+ </div>
+ <div class="tertiary-container">
+ <div class="header">
+ <h5 class="section-heading">
+ <a href="" role="menuitem"></a>
+ </h5>
+ </div>
+
+ <ul class="tertiary" data-parent="navId-9568A8E4-DD00-4A19-9357-55F8E84ADDB5" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-B70131F0-6B2A-4A93-8705-0B9F7E9B800F" class=" " role="menuitem" href="http://www.nytimes.com/column/charles-m-blow">
+Charles M. Blow
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-A2B32B86-C320-49D8-85D3-4AC6BCA2F2C2" class=" " role="menuitem" href="http://www.nytimes.com/column/david-brooks">
+David Brooks
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-1A8CCD43-E5E3-4801-8CBA-0378A0E17530" class=" " role="menuitem" href="http://www.nytimes.com/column/frank-bruni">
+Frank Bruni
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-A60B44E8-59B1-4687-B20F-D5C71A021C38" class=" " role="menuitem" href="http://www.nytimes.com/column/roger-cohen">
+Roger Cohen
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-AED55B1F-22EC-45F2-88B6-3B7F340C1949" class=" " role="menuitem" href="http://www.nytimes.com/column/gail-collins">
+Gail Collins
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-6EC4E971-BBD1-4ED5-B61D-E27A3314AE61" class=" " role="menuitem" href="http://www.nytimes.com/column/ross-douthat">
+Ross Douthat
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-706C9233-C545-4A9E-AB0B-2B6A21C6AF9F" class=" " role="menuitem" href="http://www.nytimes.com/column/maureen-dowd">
+Maureen Dowd
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-3D56EF48-CA97-4209-A878-6430FB9A2C5E" class=" " role="menuitem" href="http://www.nytimes.com/column/thomas-l-friedman">
+Thomas L. Friedman
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-D6A41F41-19BB-48C6-B121-B89359F1048F" class=" " role="menuitem" href="http://www.nytimes.com/column/nicholas-kristof">
+Nicholas Kristof
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-85905471-3FA0-423F-9D26-1BBE69237899" class=" " role="menuitem" href="http://www.nytimes.com/column/paul-krugman">
+Paul Krugman
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-B1CD03FF-773D-46AB-B3C1-4FAE8565F551" class=" " role="menuitem" href="http://www.nytimes.com/column/joe-nocera">
+Joe Nocera
+
+</a>
+ </li>
+
+ </ul>
+
+ <ul class="tertiary" data-parent="navId-2312753B-E860-46C4-B544-1C0F70ABF41F" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-B70131F0-6B2A-4A93-8705-0B9F7E9B800F" class=" " role="menuitem" href="http://www.nytimes.com/column/charles-m-blow">
+Charles M. Blow
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-A2B32B86-C320-49D8-85D3-4AC6BCA2F2C2" class=" " role="menuitem" href="http://www.nytimes.com/column/david-brooks">
+David Brooks
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-1A8CCD43-E5E3-4801-8CBA-0378A0E17530" class=" " role="menuitem" href="http://www.nytimes.com/column/frank-bruni">
+Frank Bruni
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-A60B44E8-59B1-4687-B20F-D5C71A021C38" class=" " role="menuitem" href="http://www.nytimes.com/column/roger-cohen">
+Roger Cohen
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-AED55B1F-22EC-45F2-88B6-3B7F340C1949" class=" " role="menuitem" href="http://www.nytimes.com/column/gail-collins">
+Gail Collins
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-6EC4E971-BBD1-4ED5-B61D-E27A3314AE61" class=" " role="menuitem" href="http://www.nytimes.com/column/ross-douthat">
+Ross Douthat
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-706C9233-C545-4A9E-AB0B-2B6A21C6AF9F" class=" " role="menuitem" href="http://www.nytimes.com/column/maureen-dowd">
+Maureen Dowd
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-3D56EF48-CA97-4209-A878-6430FB9A2C5E" class=" " role="menuitem" href="http://www.nytimes.com/column/thomas-l-friedman">
+Thomas L. Friedman
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-D6A41F41-19BB-48C6-B121-B89359F1048F" class=" " role="menuitem" href="http://www.nytimes.com/column/nicholas-kristof">
+Nicholas Kristof
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-85905471-3FA0-423F-9D26-1BBE69237899" class=" " role="menuitem" href="http://www.nytimes.com/column/paul-krugman">
+Paul Krugman
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-B1CD03FF-773D-46AB-B3C1-4FAE8565F551" class=" " role="menuitem" href="http://www.nytimes.com/column/joe-nocera">
+Joe Nocera
+
+</a>
+ </li>
+
+ </ul>
+
+ </div>
+ </div>
+ <div class="modal-footer">
+
+ </div>
+ <button type="button" class="modal-close hidden" aria-disabled="false"><i class="icon"></i><span class="visually-hidden">Close this modal window</span></button>
+ <div class="modal-pointer modal-pointer-left-top">
+ <div class="modal-pointer-conceal"></div>
+ </div>
+ </div>
+ </div>
+ <div id="user-settings-modal" class="modal-container user-settings-modal-container" style="display: none;">
+ <div class="overlay" style="display: none;"></div>
+ <div class="modal user-settings-modal " style="width: 260px;" role="dialog" aria-labelledby="user-settings-modal-modal-heading" tabindex="-1">
+ <div class="modal-header">
+ <h3 class="modal-heading" id="user-settings-modal-modal-heading"></h3>
+
+ </div>
+ <div class="modal-content">
+ <div class="menu edition-menu">
+ <h5 class="modal-heading">Edition</h5>
+ <ul>
+
+ <li><a href="http://www.nytimes.com" data-edition="us" class="selected">English</a></li>
+
+ <li><a href="http://cn.nytimes.com" data-edition="chinese">中文 (Chinese)</a></li>
+ <li><a href="http://www.nytimes.com/es/" data-edition="spanish">Español</a></li>
+ </ul>
+ </div>
+ <div class="menu help-menu">
+ <h5 class="modal-heading">Help</h5>
+ <ul>
+ <li><a href="http://www.nytimes.com/content/help/front.html">FAQ</a></li>
+ <li><a href="http://www.nytimes.com/content/help/contact/directory.html">Contact Us</a></li>
+ </ul>
+ </div>
+
+ <div class="menu type-sizer-menu">
+ <h5 class="modal-heading">Type Size</h5>
+ <ul>
+ <li data-size="small" class="type-sizer-small type-size-selected"><a href="javascript:;">A <span class="visually-hidden">Type size small</span></a></li>
+ <li data-size="medium" class="type-sizer-medium"><a href="javascript:;">A <span class="visually-hidden">Type size medium</span></a></li>
+ <li data-size="large" class="type-sizer-large"><a href="javascript:;">A <span class="visually-hidden">Type size large</span></a></li>
+ </ul>
+ </div>
+
+ </div>
+ <div class="modal-footer">
+
+ </div>
+ <button type="button" class="modal-close hidden" aria-disabled="false"><i class="icon"></i><span class="visually-hidden">Close this modal window</span></button>
+ <div class="modal-pointer modal-pointer-up-right">
+ <div class="modal-pointer-conceal"></div>
+ </div>
+ </div>
+ </div>
+ <div id="login-modal" class="modal-container login-modal-container" style="display: none;">
+ <div class="overlay" style="display: block;"></div>
+ <div class="modal login-modal account-modal" style="width: undefined;" role="dialog" aria-labelledby="login-modal-modal-heading" tabindex="-1">
+ <div class="modal-header">
+ <h3 class="modal-heading" id="login-modal-modal-heading">Log in</h3>
+ <h4 class="modal-subheading">To save articles or get newsletters, alerts or recommendations – all free.</h4>
+ </div>
+ <div class="modal-content">
+ <div class="buttons">
+ <button id="facebook-oauth-button-login-modal" data-provider-name="facebook" class="button oauth-button facebook-oauth-button">
+<i class="icon sprite-icon"></i>
+<span class="button-text">Log in with Facebook</span>
+</button>
+ <button id="google-oauth-button-login-modal" data-provider-name="google" class="button oauth-button google-oauth-button">
+<i class="icon sprite-icon"></i>
+<span class="button-text">Log in with Google</span>
+</button>
+ </div>
+ <!-- close buttons -->
+ <div class="separator">
+ <span class="separator-text">OR</span>
+ </div>
+ <div class="login-form-control form-control">
+ <form id="login-form" class="login-form" role="form" method="post" action="https://myaccount.nytimes.com/auth/login?URI=https%3A%2F%2Fwww.nytimes.com%2F2017%2F01%2F13%2Fworld%2Fafrica%2Fsudan-sanctions.html&amp;OQ=hp%26action%3Dclick%26pgtype%3DHomepage%26clickSource%3Dstory-heading%26module%3Dsecond-column-region%26region%3Dtop-news%26WT.nav%3Dtop-news%26_r%3D0">
+ <div class="control">
+ <div class="label-container visually-hidden">
+ <label for="login-email" id="login-email-label">Email address</label>
+ </div>
+ <div class="field-container">
+ <input id="login-email" name="userid" class="text login-email" placeholder="Email address" aria-labelledby="login-email-label" aria-required="true" type="text" />
+ <button type="button" class="button clear-button" tabindex="-1" aria-describedby="clear-email-description"><i class="icon"></i><span class="visually-hidden" id="clear-email-description">Clear this text input</span></button>
+ </div>
+ </div>
+ <div class="control">
+ <div class="label-container visually-hidden">
+ <label for="login-password" id="login-password-label">Password</label>
+ </div>
+ <div class="field-container">
+ <input id="login-password" name="password" class="text login-password" placeholder="Password" data-type="password" aria-labelledby="login-password-label" aria-required="true" type="password" />
+ <button type="button" class="button clear-button" tabindex="-1" aria-describedby="clear-password-description"><i class="icon"></i><span class="visually-hidden" id="clear-password-description">Clear this text input</span></button>
+ </div>
+ </div>
+ <div class="control user-action-control layout-horizontal">
+ <div class="control checkbox-control">
+ <div class="field-container">
+ <input id="login-remember-checkbox" name="login-remember" class="checkbox login-remember" checked="checked" aria-labelledby="login-remember-label" aria-checked="true" value="" type="checkbox" />
+ </div>
+ <div class="label-container">
+ <label for="login-remember" class="checkbox-label" id="login-remember-label">Remember me</label>
+ </div>
+ </div>
+ <p class="form-hint password-hint"><a href="https://myaccount.nytimes.com/seg/forgot-password?EXIT_URI=https%3A%2F%2Fwww.nytimes.com%2F2017%2F01%2F13%2Fworld%2Fafrica%2Fsudan-sanctions.html%3Fhp%26action%3Dclick%26pgtype%3DHomepage%26clickSource%3Dstory-heading%26module%3Dsecond-column-region%26region%3Dtop-news%26WT.nav%3Dtop-news%26_r%3D0">Forgot password?</a></p>
+ </div>
+ <div class="control">
+ <p class="disclaimer"><a href="http://www.nytimes.com/content/help/rights/terms/terms-of-service.html">Terms of Service</a> <a href="http://www.nytimes.com/content/help/rights/privacy/policy/privacy-policy.html">Privacy Policy</a></p>
+ </div>
+ <div class="control button-control">
+ <button id="login-send-button" class="button login-button">Log in</button>
+ </div>
+ <input name="is_continue" value="1" type="hidden" />
+ <input id="account-form-token" name="token" value="" type="hidden" />
+ <input id="account-form-expiration" name="expires" value="" type="hidden" />
+ <input id="login-remember" name="remember" value="1" type="hidden" />
+ </form>
+ </div>
+ <!-- close login-form-control -->
+ </div>
+ <div class="modal-footer">
+ <p class="user-action registration-modal-trigger">Don’t have an account? <a href="javascript:;">Sign Up</a></p>
+ </div>
+ <button type="button" class="modal-close " aria-disabled="false"><i class="icon"></i><span class="visually-hidden">Close this modal window</span></button>
+ <div class="modal-pointer modal-pointer-fixed">
+ <div class="modal-pointer-conceal"></div>
+ </div>
+ </div>
+ </div>
+ <div id="registration-modal" class="modal-container registration-modal-container" style="display: none;">
+ <div class="overlay" style="display: block;"></div>
+ <div class="modal registration-modal account-modal" style="width: undefined;" role="dialog" aria-labelledby="registration-modal-modal-heading" tabindex="-1">
+ <div class="modal-header">
+ <h3 class="modal-heading" id="registration-modal-modal-heading">Sign up</h3>
+ <h4 class="modal-subheading">To save articles or get newsletters, alerts or recommendations – all free.</h4>
+ </div>
+ <div class="modal-content">
+ <div class="buttons">
+ <button id="facebook-oauth-button-registration-modal" data-provider-name="facebook" class="button oauth-button facebook-oauth-button">
+<i class="icon sprite-icon"></i>
+<span class="button-text">Sign up with Facebook</span>
+</button>
+ <button id="google-oauth-button-registration-modal" data-provider-name="google" class="button oauth-button google-oauth-button">
+<i class="icon sprite-icon"></i>
+<span class="button-text">Sign up with Google</span>
+</button>
+ </div>
+ <!-- close buttons -->
+ <div class="separator">
+ <span class="separator-text">OR</span>
+ </div>
+ <div class="registration-form-control form-control">
+ <form id="registration-form" class="registration-form" role="form" method="post" action="https://myaccount.nytimes.com/register?URI=https%3A%2F%2Fwww.nytimes.com%2F2017%2F01%2F13%2Fworld%2Fafrica%2Fsudan-sanctions.html&amp;OQ=hp%26action%3Dclick%26pgtype%3DHomepage%26clickSource%3Dstory-heading%26module%3Dsecond-column-region%26region%3Dtop-news%26WT.nav%3Dtop-news%26_r%3D0">
+ <div class="control">
+ <div class="label-container visually-hidden">
+ <label for="register-email" id="register-email-label">Email address</label>
+ </div>
+ <div class="field-container">
+ <input id="register-email" name="email_address" class="text register-email" placeholder="Email address" aria-labelledby="register-email-label" aria-required="true" type="email" />
+ <button type="button" class="button clear-button" tabindex="-1" aria-describedby="clear-email-description"><i class="icon"></i><span class="visually-hidden" id="clear-email-description">Clear this text input</span></button>
+ </div>
+ </div>
+ <!-- close control -->
+ <div class="control">
+ <div class="label-container visually-hidden">
+ <label for="register-password" id="register-password-label">Password</label>
+ </div>
+ <div class="field-container">
+ <input id="register-password" name="password1" class="text register-password" placeholder="Password" data-type="password" aria-labelledby="register-password-label" aria-required="true" type="password" />
+ <button type="button" class="button clear-button" tabindex="-1" aria-describedby="clear-password-description"><i class="icon"></i><span class="visually-hidden" id="clear-password-description">Clear this text input</span></button>
+ </div>
+ </div>
+ <!-- close control -->
+ <div class="control">
+ <div class="label-container visually-hidden">
+ <label for="retype-password" id="retype-password-label">Retype password</label>
+ </div>
+ <div class="field-container">
+ <input id="retype-password" name="password2" class="text retype-password" placeholder="Retype password" data-type="password" aria-labelledby="retype-password-label" aria-required="true" type="password" />
+ <button type="button" class="button clear-button" tabindex="-1" aria-describedby="clear-retyped-password-description"><i class="icon"></i><span class="visually-hidden" id="clear-retyped-password-description">Clear this text input</span></button>
+ </div>
+ </div>
+ <!-- close control -->
+ <div class="control layout-horizontal">
+ <p class="form-hint">
+ By signing up, you agree to receive updates and special offers for The New York Times’s products and services. You may unsubscribe at any time.
+ </p>
+ </div>
+ <div class="control">
+ <p class="disclaimer"><a href="http://www.nytimes.com/content/help/rights/terms/terms-of-service.html">Terms of Service</a> <a href="http://www.nytimes.com/content/help/rights/privacy/policy/privacy-policy.html">Privacy Policy</a></p>
+ </div>
+ <div class="control button-control">
+ <button id="register-send-button" class="button register-button">Create Account</button>
+ </div>
+ <input name="is_continue" value="1" type="hidden" />
+ <input id="account-form-token" name="token" value="" type="hidden" />
+ <input id="account-form-expiration" name="expires" value="" type="hidden" />
+ <input id="account-form-subscribe" name="subscribe[]" value="MM" type="hidden" />
+ </form>
+ </div>
+ <!-- close registration-form-control -->
+ </div>
+ <div class="modal-footer">
+ <p class="user-action login-modal-trigger">Already have an account? <a href="javascript:;">Log In</a></p>
+ </div>
+ <button type="button" class="modal-close " aria-disabled="false"><i class="icon"></i><span class="visually-hidden">Close this modal window</span></button>
+ <div class="modal-pointer modal-pointer-fixed">
+ <div class="modal-pointer-conceal"></div>
+ </div>
+ </div>
+ </div>
+ <script type="text/javascript" async="true" src="https://s.tagsrvcs.com/2/818492/analytics.js?pp=www.nytimes.com&amp;sn=World&amp;c1=https%3A%2F%2Fwww.nytimes.com%2F2017%2F01%2F13%2Fworld%2Fafrica%2Fsudan-sanctions.html%3Fhp%26action%3Dclick%26pgtype%3DHomepage%26clickSource%3Dstory-heading%26module%3Dsecond-column-region%26region%3Dtop-news%26WT.nav%3Dtop-news%26_r%3D0&amp;ui=26439aec5b45a56131a0c68f78441dd18fd5deb1d7c448ff4449abfcba9b9ad4&amp;dt=8184921433871988867000"></script>
+ <div id="DYSCR"><iframe name="DY-iframe" id="DY-iframe" style="display: none;" width="1px" height="1px"></iframe></div>
+ <script type="text/javascript" src="//cdn.optimizely.com/js/3338050995.js"></script>
+ <script src="https://et.nytimes.com/?subject=page&amp;url=https%3A%2F%2Fwww.nytimes.com%2F2017%2F01%2F13%2Fworld%2Fafrica%2Fsudan-sanctions.html%3Fhp%26action%3Dclick%26pgtype%3DHomepage%26clickSource%3Dstory-heading%26module%3Dsecond-column-region%26region%3Dtop-news%26WT.nav%3Dtop-news%26_r%3D0&amp;assetUrl=https%3A%2F%2Fwww.nytimes.com%2F2017%2F01%2F13%2Fworld%2Fafrica%2Fsudan-sanctions.html&amp;referrer=&amp;clientTimeStamp=1484305042232&amp;totalTime=0&amp;sourceApp=nyt-v5&amp;callback=NYTD.EventTracker.cb0&amp;pageMetaData=%7B%22PT%22%3A%22article%22%2C%22CG%22%3A%22world%22%2C%22SCG%22%3A%22africa%22%2C%22byl%22%3A%22By%20JEFFREY%20GETTLEMAN%22%2C%22tom%22%3A%22News%22%2C%22hdl%22%3A%22United%20States%20to%20Lift%20Sudan%20Sanctions%22%2C%22ptime%22%3A%2220170113000004%22%2C%22cre%22%3A%22The%20New%20York%20Times%22%2C%22articleid%22%3A%22100000004868974%22%2C%22channels%22%3A%22%22%2C%22CN%22%3A%22%22%2C%22CT%22%3A%22%22%7D&amp;additionalClientData=%7B%22ul%22%3A%22en-US%22%2C%22js%22%3A%22Yes%22%2C%22jv%22%3A%221.7%22%2C%22fi%22%3A%22Yes%22%2C%22tz%22%3A8%2C%22bh%22%3A18%2C%22cd%22%3A24%2C%22sr%22%3A%221440x900%22%2C%22bs%22%3A%221280x710%22%2C%22jo%22%3A%22No%22%2C%22fv%22%3A%2221.0%22%2C%22or%22%3A%22land%22%7D&amp;tagxId=fe17c9ca205fc35807ac0b330c04696f&amp;webActiveDays=1&amp;webActiveDaysList=%5B0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C1%5D"></script>
+ <script src="https://et.nytimes.com/?subject=page&amp;url=https%3A%2F%2Fwww.nytimes.com%2F2017%2F01%2F13%2Fworld%2Fafrica%2Fsudan-sanctions.html%3Fhp%26action%3Dclick%26pgtype%3DHomepage%26clickSource%3Dstory-heading%26module%3Dsecond-column-region%26region%3Dtop-news%26WT.nav%3Dtop-news%26_r%3D0&amp;assetUrl=https%3A%2F%2Fwww.nytimes.com%2F2017%2F01%2F13%2Fworld%2Fafrica%2Fsudan-sanctions.html&amp;referrer=&amp;clientTimeStamp=1484305042232&amp;totalTime=75&amp;adBlockEnabled=false&amp;ad_slot_defined_page_view_id=340c00f5-1cc9-45e3-b19f-7e32e2a2acc7&amp;proxyEventName=ad_slot_defined_page_view_id&amp;proxyEventType=interaction&amp;eventtimestamp=1484305042305&amp;sourceApp=nyt-v5&amp;callback=NYTD.EventTracker.cb1&amp;datumId=7d8a0a4a9530fdc8&amp;webActiveDaysList=%5B0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C1%5D"></script>
+ <script src="https://et.nytimes.com/?subject=page&amp;url=https%3A%2F%2Fwww.nytimes.com%2F2017%2F01%2F13%2Fworld%2Fafrica%2Fsudan-sanctions.html%3Fhp%26action%3Dclick%26pgtype%3DHomepage%26clickSource%3Dstory-heading%26module%3Dsecond-column-region%26region%3Dtop-news%26WT.nav%3Dtop-news%26_r%3D0&amp;assetUrl=https%3A%2F%2Fwww.nytimes.com%2F2017%2F01%2F13%2Fworld%2Fafrica%2Fsudan-sanctions.html&amp;referrer=&amp;clientTimeStamp=1484305042232&amp;totalTime=76&amp;viewportWidth=1280&amp;ledeMediaSize=large&amp;pageLayout=a&amp;proxyEventName=page_view_id&amp;proxyEventType=interaction&amp;eventtimestamp=1484305042307&amp;page_view_id=340c00f5-1cc9-45e3-b19f-7e32e2a2acc7&amp;sourceApp=nyt-v5&amp;callback=NYTD.EventTracker.cb2&amp;datumId=7d8a0a4a9530fdc8&amp;webActiveDaysList=%5B0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C1%5D"></script>
+ <script src="https://et.nytimes.com/?subject=page&amp;url=https%3A%2F%2Fwww.nytimes.com%2F2017%2F01%2F13%2Fworld%2Fafrica%2Fsudan-sanctions.html%3Fhp%26action%3Dclick%26pgtype%3DHomepage%26clickSource%3Dstory-heading%26module%3Dsecond-column-region%26region%3Dtop-news%26WT.nav%3Dtop-news%26_r%3D0&amp;assetUrl=https%3A%2F%2Fwww.nytimes.com%2F2017%2F01%2F13%2Fworld%2Fafrica%2Fsudan-sanctions.html&amp;referrer=&amp;clientTimeStamp=1484305042232&amp;totalTime=78&amp;nyt4totpg=1&amp;proxyEventName=vid_modules&amp;proxyEventType=interaction&amp;eventtimestamp=1484305042308&amp;vid_modules=&amp;sourceApp=nyt-v5&amp;callback=NYTD.EventTracker.cb3&amp;datumId=7d8a0a4a9530fdc8&amp;webActiveDaysList=%5B0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C1%5D"></script>
+ <script src="https://et.nytimes.com/?subject=page&amp;url=https%3A%2F%2Fwww.nytimes.com%2F2017%2F01%2F13%2Fworld%2Fafrica%2Fsudan-sanctions.html%3Fhp%26action%3Dclick%26pgtype%3DHomepage%26clickSource%3Dstory-heading%26module%3Dsecond-column-region%26region%3Dtop-news%26WT.nav%3Dtop-news%26_r%3D0&amp;assetUrl=https%3A%2F%2Fwww.nytimes.com%2F2017%2F01%2F13%2Fworld%2Fafrica%2Fsudan-sanctions.html&amp;referrer=&amp;clientTimeStamp=1484305042232&amp;totalTime=80&amp;impressions=%5B%7B%22version%22%3A%22meter%20at%201%22%2C%22module%22%3A%22meter%22%2C%22contentId%22%3A%22%22%2C%22mediaId%22%3A%22%22%2C%22referrer%22%3A%22%22%2C%22action%22%3A%22Impression%22%2C%22eventName%22%3A%22Impression%22%2C%22proxyEventName%22%3A%22meter-load%22%2C%22proxyEventType%22%3A%22impression%22%2C%22eventtimestamp%22%3A1484305042310%7D%2C%7B%22module%22%3A%22Ribbon%22%2C%22version%22%3A%22origin%22%2C%22region%22%3A%22Header%22%2C%22eventName%22%3A%22impression%22%2C%22action%22%3A%22impression%22%2C%22contentCollection%22%3A%22Home%20Page%22%2C%22pgtype%22%3A%22article%22%2C%22proxyEventName%22%3A%22ribbon-first-load%22%2C%22proxyEventType%22%3A%22impression%22%2C%22eventtimestamp%22%3A1484305042310%7D%5D&amp;sourceApp=nyt-v5&amp;callback=NYTD.EventTracker.cb4&amp;datumId=7d8a0a4a9530fdc8&amp;webActiveDaysList=%5B0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C1%5D"></script>
+ <div class="kxhead" data-id="HrUwtkcl" style="display:none !important;"><span class="kxtag kxinvisible" data-id="28473" data-alias="Load Segments NYT specific"><script type="text/javascript">
+(function(require) {
+ var config = require('config')();
+ var store = require('store');
+ var _ = require('util');
+ var segments;
+
+ function handleUserDataResponse(r) {
+ // Handle the response as usual.
+ segments.handleUserDataResponse(r);
+
+ // Override localStorage.kxuser with a case-insensitive value for DFP premium.
+ // This will get read by the interchange direct snippet for Krux.user
+ // and Krux.dfpKeyValues
+ if(r.kuid_long) {
+ store.set('user', r.kuid_long, store.DAYS*30);
+ }
+ }
+
+ function useFirstPartyCookie() {
+ // Older versions of CT don't have feature.
+ try {
+ var feature = Krux('require:feature');
+ // If they don't have 3rd party cookies, then we rely on 1st party.
+ return !feature.hasThirdPartyCookies();
+ } catch (e){
+ return false;
+ }
+ }
+
+ // Our own fetch uses our own handleResponse
+ function fetch() {
+ var data = {pub: _.get('pubid')};
+
+ // Skip
+ if (useFirstPartyCookie() &amp;&amp; Krux('get', 'user')) {
+ data._kuid = Krux('get', 'user');
+ }
+ var options = {
+ url: _.get('url_userdata'),
+ data: data,
+ callback: 'kxjsonp_userdata',
+ done: handleUserDataResponse
+ };
+
+ // SEE: SCRUM-1129
+ var orgUserId = _.get('org_user_id');
+ if(orgUserId) {
+ options.data._kuid = orgUserId;
+ }
+
+ var fpId, fp;
+ var useFingerprint = config.get('params.fingerprint', false);
+ if (useFingerprint) {
+ fpId = _.get('fp_id');
+ options.data.kxfp = fp = _.get('fp');
+ // Ensure we don't send the fingerprint as the id (it mascarades in fallback mode)
+ if (fpId &amp;&amp; fpId.length !== fp.length) {
+ options.data.kfuid = fpId;
+ }
+ }
+
+ if(!segments.readTechFromStore()) {
+ options.data.technographics = 1;
+ }
+ require('http').jsonp(options);
+ }
+
+ if (!useFirstPartyCookie()) {
+ Krux('set', 'user', Krux('require:store').get('kuid'));
+ }
+
+ if(!store.get('segWait')) {
+ // disable segments.fetch and use our own
+ _.set('segWait', 1, store.MINUTES*5);
+ _.onOnce('dom:load', fetch);
+ _.fire('user_data_fetch_scheduled');
+ }
+
+ // Finally, require segments as usual.
+ segments = require('segments');
+}(Krux.require));
+</script></span><span class="kxtag kxinvisible" data-id="28796" data-alias="Segments to Partner Tag"><script>
+(function(){
+var _prefix = Krux('require:store').prefix;
+localStorage.setItem(_prefix + 'segs_partner', localStorage.getItem(_prefix + 'segs'));
+})();
+</script></span><span class="kxtag kxinvisible" data-id="28434" data-alias="Krux Scrape Page Attributes"><script>
+(function() {
+ function getMetaValue(name) {
+ if (! document.querySelector) {
+ return;
+ }
+ var metaTag = document.querySelector("meta[name='" + name + "']");
+ return metaTag &amp;&amp; metaTag.content || "";
+ }
+
+ Krux('set', 'section', getMetaValue('CG'));
+ Krux('set', 'subsection', getMetaValue('SCG'));
+ Krux('set', 'page_attr_page_type', getMetaValue('PT'));
+ Krux('scrape', {
+ page_attr_cg: {
+ meta_name: "CG"
+ },
+ page_attr_scg: {
+ meta_name: "SCG"
+ },
+ page_attr_prot: {
+ meta_name: "WT.z_prot"
+ },
+ page_attr_ref: {
+ url_param: "ref"
+ },
+ page_attr_pst: {
+ meta_name: "PST"
+ },
+ page_attr_des: {
+ meta_name: "des"
+ },
+ page_attr_per: {
+ meta_name: "per"
+ },
+ page_attr_org: {
+ meta_name: "org"
+ },
+ page_attr_geo: {
+ meta_name: "geo"
+ },
+ page_attr_author: {
+ meta_name: "author"
+ },
+ page_attr_reco: {
+ meta_name: "RECO"
+ },
+ page_attr_rer: {
+ meta_name: "RER"
+ },
+ page_attr_res: {
+ meta_name: "RES"
+ },
+ page_attr_resz: {
+ meta_name: "RESZ"
+ },
+ page_attr_rentals: {
+ meta_name: "PSSST"
+ },
+ page_attr_ticker: {
+ meta_name: "ticker"
+ },
+ page_attr_registered: {
+ javascript: 'regstatus'
+ },
+ page_attr_referrer: {
+ javascript: 'document.referrer'
+ },
+ page_attr_url_path_1: {
+ url_path: "1"
+ }
+ });
+})();
+</script></span><span class="kxtag kxinvisible" data-id="28440" data-alias="Krux Pull RMID"><script>
+// Using Cookie RMID to produce page attribute cookie_rmid
+Krux('scrape', { "user_attr_cookie_rmid": {cookie: "RMID"}});
+</script></span><span class="kxtag kxinvisible" data-id="28445" data-alias="Krux Data Transfer Code "><script>
+(function() {
+ Krux('scrape', { 'user_attr_new-ref': {meta_name: 'WT.z_ref'}});
+})();
+// Using Globals PriceMin to produce page attribute pricemin
+Krux('scrape', { "page_attr_pricemin": {js_global: "PriceMin"}});
+// Using Globals PriceMax to produce page attribute pricemax
+Krux('scrape', { "page_attr_pricemax": {js_global: "PriceMax"}});
+// Using Meta keywords to produce page attribute keywords
+Krux('scrape', { "page_attr_keywords2": {meta_name: "keywords"}});
+// Using UrlPath 2 to produce page attribute url_path_2
+Krux('scrape', { "page_attr_url_path_2": {url_path: "2"}});
+</script></span><span class="kxtag kxinvisible" data-id="28452" data-alias="Krux Track Social"><script type="text/javascript">Krux('social.init');</script></span><span class="kxtag kxinvisible" data-id="28478" data-alias="Krux- Xaxis Tag"><script>
+(function(){
+var kuid = window.Krux('get', 'user');
+if (kuid) {
+ var min = 1000000000;
+ var max = 9999999999;
+ var rand = Math.floor(Math.random() * (max - min)) + min;
+ var prefix = location.protocol == 'https:' ? "https:" :"http:";
+ var url = prefix
+ + '//t.mookie1.com/t/v1/event?migClientId=6726&amp;migAction=krux&amp;migSource=mig&amp;migRandom='
+ + rand
+ +'&amp;migParam1='
+ + kuid;
+ (new Image()).src = url;
+
+}
+})();
+</script></span><span class="kxtag kxinvisible" data-id="28482" data-alias="DTC to capture NYT user data "><script>
+(function() {
+ Krux('scrape', {
+ "user_attr_nyt_cookie": {
+ javascript: "TAGX.data.get('cookies.nyt-a')"
+ },
+ "user_attr_nyt_user_id": {
+ javascript: "TAGX.data.get('TAGX.L.uid')"
+ },
+ "user_attr_nyt_user_type": {
+ javascript: "TAGX.data.get('user.type')"
+ },
+ "user_attr_nyt_insiderAB": {
+ cookie: "insiderAB"
+ },
+ "user_attr_nyt_ft_upsell_Krux_flag": {
+ cookie: "nyt_ft_upsell_Krux_flag"
+ },
+ "user_attr_nyt_activedays": {
+ javascript: "TAGX.data.get('TAGX.L.adv')"
+ },
+ "user_attr_nyt_pscore": {
+ javascript: "TAGX.data.get('propensity.p') || 'none'"
+ },
+ "user_attr_nyt_propensity_edu": {
+ javascript: "TAGX.Utils.getCookie('propensityEDU')"
+ },
+ "user_attr_nyt_b2b": {
+ javascript: "TAGX.Utils.getCookie('B2B')"
+ },
+ "user_attr_nyt_b2b_corp_adblock": {
+ javascript: "TAGX.Utils.getCookie('B2B_CORP_ADBLOCK')"
+ },
+ "user_attr_cookie_isEDU": {
+ javascript: "TAGX.Utils.getCookie('isEDU')"
+ }
+ });
+
+ Krux('set','user_attr_pardot_id',
+ Krux('scrape.cookie', 'visitor_id139361')||Krux('scrape.cookie', 'visitor_id146041')
+ );
+
+ var smid = Krux('scrape.url_param', 'smid');
+ var smtyp = Krux('scrape.url_param', 'smtyp');
+ var mc = Krux('scrape.url_param', 'mc');
+ var mcid = Krux('scrape.url_param', 'mcid');
+ var mccr = Krux('scrape.url_param', 'mccr');
+ var mcdt = Krux('scrape.url_param', 'mcdt');
+ var adKeywords = Krux('scrape.url_param', 'ad-keywords');
+ Krux('set', 'page_attr_ad_keywords', adKeywords);
+ if (smid) {
+ Krux('set', 'page_attr_smid_smtyp',
+ 'smid:' + smid + '|smtyp:' + smtyp
+ );
+ }
+ if(mcid) {
+ Krux('set', 'page_attr_mc_params',
+ 'mc:' + mc + '|mcid:' + mcid + '|mccr:' + mccr
+ + '|mcdt:' + mcdt + '|ad-keywords:' + adKeywords
+ );
+ }
+})();
+</script></span><span class="kxtag kxinvisible" data-id="28491" data-alias="DataLogix (8da8b14d-5569-4bec-bcea-722864ee8d06)"><script>
+ (function() {
+ var kuid = Krux('get', 'user');
+ if (kuid) {
+ var prefix = location.protocol == 'https:' ? "https:" : "http:";
+ var kurl_params = encodeURIComponent("_kuid=" + kuid + "&amp;_kdpid=8da8b14d-5569-4bec-bcea-722864ee8d06&amp;dlxid=&lt;na_id&gt;&amp;dlxdata=&lt;na_da&gt;");
+ var kurl = prefix + "//beacon.krxd.net/data.gif?" + kurl_params;
+ var dlx_url = '//r.nexac.com/e/getdata.xgi?dt=br&amp;pkey=iefs40iefsj26&amp;ru=' + kurl;
+ var i = new Image();
+ i.src = dlx_url;
+ }
+ })();
+</script></span><span class="kxtag kxinvisible" data-id="28492" data-alias="DataLogix (bef9f122-393d-4c45-8d8d-32d8be7ac433)"><script>
+ (function() {
+ var kuid = Krux('get', 'user');
+ if (kuid) {
+ var prefix = location.protocol == 'https:' ? "https:" : "http:";
+ var kurl_params = encodeURIComponent("_kuid=" + kuid + "&amp;_kdpid=bef9f122-393d-4c45-8d8d-32d8be7ac433&amp;dlxid=&lt;na_id&gt;&amp;dlxdata=&lt;na_da&gt;");
+ var kurl = prefix + "//beacon.krxd.net/data.gif?" + kurl_params;
+ var dlx_url = '//r.nexac.com/e/getdata.xgi?dt=br&amp;pkey=iyzu39iyzud95&amp;ru=' + kurl;
+ var i = new Image();
+ i.src = dlx_url;
+ }
+ })();
+</script></span><span class="kxtag kxinvisible" data-id="28493" data-alias="DataLogix (8bf57916-aac8-4f01-a386-4baf103b3e1f)"><script>
+ (function() {
+ var allowUserMatch = function() {
+ var GDN_SITE_ID = '1282650';
+
+ if (Krux('get', 'config').params.client_type === 'marketer') {
+ try {
+ var params = Krux('require:marketer').getParams(
+ Krux('require:sizzle').find('script[src*="' + Krux('get', 'confid') + '"]')
+ );
+ return GDN_SITE_ID !== (params.siteid || params.kxsiteid);
+ }
+ catch (e) {
+ // In case we don't find the script tag or the URL parser fails, just allow matching.
+ }
+ }
+ return true;
+ };
+
+ var kuid = Krux('get', 'user');
+ if (allowUserMatch() &amp;&amp; kuid) {
+ var prefix = location.protocol == 'https:' ? "https:" : "http:";
+ var kurl_params = encodeURIComponent("_kuid=" + kuid + "&amp;_kdpid=8bf57916-aac8-4f01-a386-4baf103b3e1f&amp;dlxid=&lt;na_id&gt;&amp;dlxdata=&lt;na_da&gt;");
+ var kurl = prefix + "//beacon.krxd.net/data.gif?" + kurl_params;
+ var dlx_url = '//r.nexac.com/e/getdata.xgi?dt=br&amp;pkey=bckw15bckwu20&amp;ru=' + kurl;
+ var i = new Image();
+ i.src = dlx_url;
+ }
+ })();
+</script></span><span class="kxtag kxinvisible" data-id="28494" data-alias="DataLogix (d7158cb7-a851-4e3c-b7ab-cc9e815b2399)"><script>
+ (function() {
+ var allowUserMatch = function() {
+ var GDN_SITE_ID = '1282650';
+
+ if (Krux('get', 'config').params.client_type === 'marketer') {
+ try {
+ var params = Krux('require:marketer').getParams(
+ Krux('require:sizzle').find('script[src*="' + Krux('get', 'confid') + '"]')
+ );
+ return GDN_SITE_ID !== (params.siteid || params.kxsiteid);
+ }
+ catch (e) {
+ // In case we don't find the script tag or the URL parser fails, just allow matching.
+ }
+ }
+ return true;
+ };
+
+ var kuid = Krux('get', 'user');
+ if (allowUserMatch() &amp;&amp; kuid) {
+ var prefix = location.protocol == 'https:' ? "https:" : "http:";
+ var kurl_params = encodeURIComponent("_kuid=" + kuid + "&amp;_kdpid=d7158cb7-a851-4e3c-b7ab-cc9e815b2399&amp;dlxid=&lt;na_id&gt;&amp;dlxdata=&lt;na_da&gt;");
+ var kurl = prefix + "//beacon.krxd.net/data.gif?" + kurl_params;
+ var dlx_url = '//r.nexac.com/e/getdata.xgi?dt=br&amp;pkey=gwjn34gwjnh86&amp;ru=' + kurl;
+ var i = new Image();
+ i.src = dlx_url;
+ }
+ })();
+</script></span><span class="kxtag kxinvisible" data-id="28495" data-alias="DataLogix (536f0daa-aaaa-4d9e-9a25-dde40646786a)"><script>
+ (function() {
+ var kuid = Krux('get', 'user');
+ if (kuid) {
+ var prefix = location.protocol == 'https:' ? "https:" : "http:";
+ var kurl_params = encodeURIComponent("_kuid=" + kuid + "&amp;_kdpid=536f0daa-aaaa-4d9e-9a25-dde40646786a&amp;dlxid=&lt;na_id&gt;&amp;dlxdata=&lt;na_da&gt;");
+ var kurl = prefix + "//beacon.krxd.net/data.gif?" + kurl_params;
+ var dlx_url = '//r.nexac.com/e/getdata.xgi?dt=br&amp;pkey=iefs40iefsj26&amp;ru=' + kurl;
+ var i = new Image();
+ i.src = dlx_url;
+ }
+ })();
+</script></span><span class="kxtag kxinvisible" data-id="28496" data-alias="DataLogix (7c6392c9-e878-492c-8b14-bf06e3828ebd)"><script>
+ (function() {
+ var kuid = Krux('get', 'user');
+ if (kuid) {
+ var prefix = location.protocol == 'https:' ? "https:" : "http:";
+ var kurl_params = encodeURIComponent("_kuid=" + kuid + "&amp;_kdpid=7c6392c9-e878-492c-8b14-bf06e3828ebd&amp;dlxid=&lt;na_id&gt;&amp;dlxdata=&lt;na_da&gt;");
+ var kurl = prefix + "//beacon.krxd.net/data.gif?" + kurl_params;
+ var dlx_url = '//r.nexac.com/e/getdata.xgi?dt=br&amp;pkey=rowp70rowpu60&amp;ru=' + kurl;
+ var i = new Image();
+ i.src = dlx_url;
+ }
+ })();
+</script></span><span class="kxtag kxinvisible" data-id="28497" data-alias="DataLogix (bb8ae0e2-9cd7-45b2-ad37-7737269627d8)"><script>
+ (function() {
+ var allowUserMatch = function() {
+ var GDN_SITE_ID = '1282650';
+
+ if (Krux('get', 'config').params.client_type === 'marketer') {
+ try {
+ var params = Krux('require:marketer').getParams(
+ Krux('require:sizzle').find('script[src*="' + Krux('get', 'confid') + '"]')
+ );
+ return GDN_SITE_ID !== (params.siteid || params.kxsiteid);
+ }
+ catch (e) {
+ // In case we don't find the script tag or the URL parser fails, just allow matching.
+ }
+ }
+ return true;
+ };
+
+ var kuid = Krux('get', 'user');
+ if (allowUserMatch() &amp;&amp; kuid) {
+ var prefix = location.protocol == 'https:' ? "https:" : "http:";
+ var kurl_params = encodeURIComponent("_kuid=" + kuid + "&amp;_kdpid=bb8ae0e2-9cd7-45b2-ad37-7737269627d8&amp;dlxid=&lt;na_id&gt;&amp;dlxdata=&lt;na_da&gt;");
+ var kurl = prefix + "//beacon.krxd.net/data.gif?" + kurl_params;
+ var dlx_url = '//r.nexac.com/e/getdata.xgi?dt=br&amp;pkey=rsxs71rsxsk73&amp;ru=' + kurl;
+ var i = new Image();
+ i.src = dlx_url;
+ }
+ })();
+</script></span><span class="kxtag kxinvisible" data-id="28498" data-alias="DataLogix (afae52b8-1e27-4650-bd6a-ed7d982f5a6a)"><script>
+ (function() {
+ var allowUserMatch = function() {
+ var GDN_SITE_ID = '1282650';
+
+ if (Krux('get', 'config').params.client_type === 'marketer') {
+ try {
+ var params = Krux('require:marketer').getParams(
+ Krux('require:sizzle').find('script[src*="' + Krux('get', 'confid') + '"]')
+ );
+ return GDN_SITE_ID !== (params.siteid || params.kxsiteid);
+ }
+ catch (e) {
+ // In case we don't find the script tag or the URL parser fails, just allow matching.
+ }
+ }
+ return true;
+ };
+
+ var kuid = Krux('get', 'user');
+ if (allowUserMatch() &amp;&amp; kuid) {
+ var prefix = location.protocol == 'https:' ? "https:" : "http:";
+ var kurl_params = encodeURIComponent("_kuid=" + kuid + "&amp;_kdpid=afae52b8-1e27-4650-bd6a-ed7d982f5a6a&amp;dlxid=&lt;na_id&gt;&amp;dlxdata=&lt;na_da&gt;");
+ var kurl = prefix + "//beacon.krxd.net/data.gif?" + kurl_params;
+ var dlx_url = '//r.nexac.com/e/getdata.xgi?dt=br&amp;pkey=iqbg41iqbgj68&amp;ru=' + kurl;
+ new Image().src = dlx_url;
+
+ }
+ })();
+</script></span><span class="kxtag kxinvisible" data-id="28500" data-alias="Innovid UM Pixel"><script>
+(function(){
+ var prefix = window.location.protocol == 'https:' ? "https:" : "http:";
+ var i_url = prefix + '//ag.innovid.com/dv/sync?tid=2';
+ var i = new Image();
+ i.src = i_url;
+})();
+</script></span><span class="kxtag kxinvisible" data-id="28510" data-alias="Scorecard Research (Comscore)"><script src="https://ar.voicefive.com/bmx3/node.pli?pub=nytimes"></script></span></div>
+</body>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/nytimes-2/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/nytimes-2/expected-images.json
new file mode 100644
index 000000000..e4b49d00e
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/nytimes-2/expected-images.json
@@ -0,0 +1,4 @@
+[
+ "https:\/\/static01.nyt.com\/images\/2016\/07\/30\/business\/db-dealprof\/db-dealprof-videoSixteenByNineJumbo1600.jpg",
+ "https:\/\/static01.nyt.com\/images\/2016\/07\/30\/business\/db-dealprof\/db-dealprof-master315.jpg"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/nytimes-2/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/nytimes-2/expected-metadata.json
new file mode 100644
index 000000000..7fbcf29ee
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/nytimes-2/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "Steven Davidoff Solomon",
+ "Direction": null,
+ "Excerpt": "The internet giant’s decision to sell its business is plagued with challenges that reveal how unusual deal structures can affect shareholders.",
+ "Image": "https:\/\/static01.nyt.com\/images\/2016\/07\/30\/business\/db-dealprof\/db-dealprof-videoSixteenByNineJumbo1600.jpg",
+ "Title": "Yahoo’s Sale to Verizon Leaves Shareholders With Little Say",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/nytimes-2/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/nytimes-2/expected.html
new file mode 100644
index 000000000..1584ca437
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/nytimes-2/expected.html
@@ -0,0 +1,41 @@
+<div>
+ <div>
+ <figure aria-label="media" data-media-action="modal" id="media-100000004560166" itemid="https://static01.nyt.com/images/2016/07/30/business/db-dealprof/db-dealprof-master315.jpg" itemprop="associatedMedia" itemscope="" itemtype="http://schema.org/ImageObject" role="group"><span>Photo</span>
+ <div>
+ <p><img alt="" data-mediaviewer-caption="" data-mediaviewer-credit="Harry Campbell" data-mediaviewer-src="https://static01.nyt.com/images/2016/07/30/business/db-dealprof/db-dealprof-superJumbo.jpg" itemid="https://static01.nyt.com/images/2016/07/30/business/db-dealprof/db-dealprof-master315.jpg" itemprop="url" src="https://static01.nyt.com/images/2016/07/30/business/db-dealprof/db-dealprof-master315.jpg"></img></p>
+ <meta content="315" itemprop="height"></meta><meta content="315" itemprop="width"></meta></div>
+ <figcaption itemprop="caption description"><span itemprop="copyrightHolder">
+ <span>Credit</span> Harry Campbell </span>
+ </figcaption></figure><p data-para-count="148" data-total-count="148"><a href="http://www.nytimes.com/topic/company/yahoo-inc?inline=nyt-org" title="More information about Yahoo! Inc.">Yahoo</a>’s $4.8 billion sale to <a href="http://www.nytimes.com/topic/company/verizon-communications-inc?inline=nyt-org" title="More information about Verizon Communications Inc.">Verizon</a> is a complicated beast, showing how different acquisition structures can affect how shareholders are treated.</p>
+ <p data-para-count="177" data-total-count="325">First, let’s say what the Yahoo sale is not. It is not a sale of the publicly traded company. Instead, it is a sale of the Yahoo subsidiary and some related assets to Verizon.</p>
+ <p data-para-count="529" data-total-count="854">The sale is being done in two steps. The <a href="https://www.sec.gov/Archives/edgar/data/1011006/000119312516656036/d178500dex22.htm">first step</a> will be the transfer of any assets related to Yahoo business to a singular subsidiary. This includes the stock in the business subsidiaries that make up Yahoo that are not already in the single subsidiary, as well as the odd assets like benefit plan rights. This is what is being sold to Verizon. A license of Yahoo’s oldest patents is being held back in the so-called Excalibur portfolio. This will stay with Yahoo, as will Yahoo’s stakes in Alibaba Group and Yahoo Japan.</p>
+ <p data-para-count="479" data-total-count="1333">It is hard to overestimate how complex an asset sale like this is. Some of the assets are self-contained, but they must be gathered up and transferred. Employees need to be shuffled around and compensation arrangements redone. Many contracts, like the now-infamous one struck with the search engine Mozilla, which <a href="http://www.recode.net/2016/7/7/12116296/marissa-mayer-deal-mozilla-yahoo-payment">may result in a payment of up to a $1 billion</a>, will contain change-of-control provisions that will be set off and have to be addressed. Tax issues always loom large.</p> <p><a href="#story-continues-1">Continue reading the main story</a>
+ </p></div>
+
+
+
+ </div><div>
+ <div>
+ <p data-para-count="602" data-total-count="1935" id="story-continues-2">In the second step, at the closing, <a href="https://www.sec.gov/Archives/edgar/data/1011006/000119312516656036/d178500dex22.htm">Yahoo will sell the stock</a> in the single subsidiary to Verizon. At that point, Yahoo will change its name to something without “Yahoo” in it. My favorite is simply Remain Co., the name Yahoo executives are using. Remain Co. will become a holding company for the Alibaba and Yahoo Japan stock. Included will also be $10 billion in cash, plus the Excalibur patent portfolio and a number of minority investments including Snapchat. Ahh, if only Yahoo had bought Snapchat instead of Tumblr (indeed, if only Yahoo had bought Google or Facebook when it had the chance).</p>
+
+ <p data-para-count="262" data-total-count="2197" id="story-continues-3">Because it is a sale of a subsidiary, the $4.8 billion will be paid to Yahoo. Its shareholders will not receive any money unless Yahoo pays it out in a dividend (after paying taxes). Instead, Yahoo shareholders will be left holding shares in the renamed company.</p>
+ <p data-para-count="250" data-total-count="2447">Verizon’s Yahoo will then be run <a href="http://www.nytimes.com/2016/07/25/business/yahoo-sale.html?_r=0">under the same umbrella as AOL</a>. It is unclear whether there will be a further merger of the two businesses after the acquisition. Plans for Yahoo are still a bit in flux in part because of the abnormal sale process.</p>
+ <p data-para-count="497" data-total-count="2944">As for Remain Co., it will become a so-called investment company. This is a special designation for a company that holds securities for investment but does not operate a working business. Investment companies are subject to special regulation under the Investment Company Act of 1940. Remain Co. will probably just sit there, returning cash to shareholders and waiting for Alibaba to buy it in a tax-free transaction. (Alibaba says it has no plans to do this, but most people do not believe this).</p>
+ <p data-para-count="129" data-total-count="3073">The rights of Yahoo shareholders in this sale will be different from those in an ordinary sale, when an entire company is bought.</p>
+ <p data-para-count="560" data-total-count="3633">Ordinary sales are done in one of two ways: in a merger where the target is merged into a subsidiary of the buyer and the target shareholders receive the cash (or other consideration), or in a tender offer that gives the target shareholders a choice to tender into the offer or not. Then there will be a merger where the target is merged into the buyer’s subsidiary and the target shareholders are forcibly squeezed out, receiving the merger consideration. (if you want to know why you would choose one structure over another, I wrote <a href="http://dealbook.nytimes.com/2009/10/14/the-peculiarities-of-tender-offers/?_r=0">a good primer</a> in 2009.)</p>
+ <p data-para-count="114" data-total-count="3747">In either case, shareholders get a say. They either vote on the merger or decide whether to tender into the offer.</p>
+ <p data-para-count="278" data-total-count="4025">In both cases, there would be appraisal rights if the buyer pays cash. This means that shareholders can object to the deal by not voting for it or not tendering into the offer and instead asking a court to value their shares – this is what happened <a href="http://www.nytimes.com/2016/06/08/business/dealbook/ruling-on-dell-buyout-may-not-be-precedent-some-fear.html">in Dell’s buyout in 2013</a>.</p>
+ <p data-para-count="448" data-total-count="4473">The Yahoo deal, however, is not a sale of the public company. It is an asset sale, in which there is only a shareholder vote if there is a sale of “all” or “substantially all” of the assets of the company. Yahoo is not all of the assets or even “substantially all” – the Alibaba shares being left behind in Remain Co. are worth about $28 billion, or six times the value of the cash Verizon is paying for the Yahoo assets it is buying.</p>
+
+ <p data-para-count="343" data-total-count="4816" id="story-continues-4">The courts have held that the definition of “substantially all” includes a change of business in a company because of an asset sale where the assets are <a href="http://caselaw.findlaw.com/de-court-of-chancery/1306648.html">“qualitatively vital.”</a> And that certainly applies here. So there will be a vote – indeed, Yahoo has no problem with a vote – and shareholders are desperate to sell at this point.</p>
+ <p data-para-count="183" data-total-count="4999">There will be no appraisal rights, however. Again, in an asset sale, there are no appraisal rights. So anyone who votes against the deal and thinks this is a bum price is out of luck.</p>
+ <p data-para-count="260" data-total-count="5259">The different standards for voting and appraisal rights apply because the structure of the deal is a quirk of the law in Delaware, where Yahoo is incorporated, that allows lawyers to sometimes work around these issues simply by changing the way a deal is done.</p>
+ <p data-para-count="112" data-total-count="5371">In Yahoo’s case, this is not deliberate, though. It is simply the most expedient way to get rid of the assets.</p>
+ <p data-para-count="583" data-total-count="5954">Whether this is the most tax-efficient way is unclear to me as a nontax lawyer (email me if you know). Yahoo is likely to have a tax bill on the sale, possibly a substantial one. And I presume there were legal reasons for not using a <a href="http://dealbook.nytimes.com/2014/04/29/alliant-techsystems-break-up-and-the-return-of-the-morris-trust/">Morris Trust structure</a>, in which Yahoo would have been spun off and immediately sold to Verizon so that only Yahoo’s shareholders paid tax on the deal. In truth, the Yahoo assets being sold are only about 10 percent of the value of the company, so the time and logistics for such a sale when Yahoo is a melting ice cube may not have been worth it.</p>
+ <p data-para-count="450" data-total-count="6404">Finally, if another bidder still wants to acquire Yahoo, it has time. The agreement with Verizon allows Yahoo to terminate the deal and accept a superior offer by paying a $144 million breakup fee to Verizon. And if Yahoo shareholders change their minds and want to stick with Yahoo’s chief executive, <a href="http://topics.nytimes.com/top/reference/timestopics/people/m/marissa_mayer/index.html?inline=nyt-per" title="More articles about Marissa Mayer.">Marissa Mayer</a>, and vote down the deal, there is a so-called naked no-vote termination fee of $15 million payable to Verizon to reimburse expenses.</p>
+ <p data-para-count="426" data-total-count="6830">All in all, this was as hairy a deal as they come. There was the procedural and logistical complications of selling a company when the chief executive wanted to stay. Then there was the fact that this was an asset sale, including all of the challenges that go with it. Throw in all of the tax issues and the fact that this is a public company, and it is likely that the lawyers involved will have nightmares for years to come.</p> <p><a href="#whats-next">Continue reading the main story</a>
+ </p></div>
+
+
+
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/nytimes-2/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/nytimes-2/source.html
new file mode 100644
index 000000000..07dd7484d
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/nytimes-2/source.html
@@ -0,0 +1,5236 @@
+<!DOCTYPE html>
+<!--[if (gt IE 9)|!(IE)]> <!-->
+<html xmlns="http://www.w3.org/1999/xhtml" class="flag-limitFabrikSave-on flag-moreFollowSuggestions-on flag-unfollowComments-on flag-scoopTool-on flag-videoVHSCover-on flag-videoVHSShareTools-on flag-videoVHSLive-on flag-videoVHSNewControls-on flag-videoVHSEmbeddedOnly-on flag-allTheEmphases-on flag-freeTrial-on flag-dedupeWhatsNext-on flag-trendingPageLinks-on flag-sprinklePaidPost-on flag-headerBidder-on flag-standardizeWhatsNextCollection-on flag-onlyLayoutA-on flag-simple-on flag-simpleExtendedByline-on flag-collectionsWhatsNext-on flag-mobileMediaViewer-on flag-podcastInLede-on flag-MovieTickets-on flag-MoreInSubsectionFix-on flag-seriesIssueMarginalia-on flag-serverSideCollectionUrls-on flag-multipleBylines-on flag-fabrikWebsocketsOnly-on flag-translationLinks-on flag-papihttps-on flag-verticalFullBleed-on flag-updateRestaurantReservations-on flag-mapDining-on flag-newsletterInlineModule-on flag-PersonalizationApiUpdate-on flag-a9HeaderEnabled-on flag-removeInternationalEdition-on flag-headlineBalancer-on flag-clientSideABRA-on flag-newsletterTitleTracking-on flag-surveyInterstitial-on flag-removeFBMessengerPromo-on flag-removeMarginaliaAbTest-on flag-paidpostSprinklingFix-on flag-abraOverrideVersion-on flag-headlineBalancerEverywhere-on flag-signupFavor-on flag-lazyloadOakImages-on flag-mapleFreeTrial-on flag-adQuerySupportForMultipleUserAddedKeywords-on flag-oakUpdateAdStride-on flag-piiBlockDFP-on flag-adExclusiveIERibbonCheck-on moz desktop section-dealbook format-medium tone-news app-article page-theme-standard has-small-horizontal-lede viewport-small viewport-small-10 viewport-small-20 viewport-medium viewport-medium-10 viewport-medium-20 viewport-medium-30 viewport-medium-31 viewport-medium-40 viewport-medium-50 viewport-medium-60 viewport-large viewport-large-10 viewport-large-11 viewport-large-20 viewport-large-21 viewport-large-30 viewport-large-40 has-js has-flexbox has-flexboxlegacy has-canvas has-canvastext has-webgl has-no-touch has-geolocation has-postmessage has-no-websqldatabase has-indexeddb has-hashchange has-history has-draganddrop has-websockets has-rgba has-no-hsla has-multiplebgs has-backgroundsize has-borderimage has-borderradius has-boxshadow has-textshadow has-opacity has-cssanimations has-csscolumns has-cssgradients has-no-cssreflections has-csstransforms has-csstransforms3d has-csstransitions has-fontface has-generatedcontent has-video has-audio has-localstorage has-sessionstorage has-webworkers has-applicationcache has-svg has-inlinesvg has-smil has-svgclippaths has-cors tr-coretext tr-aa-unknown-subpixel has-big-ad edition-domestic type-size-small varvar1 has-ribbon" itemid="http://www.nytimes.com/2016/07/30/business/dealbook/yahoos-sale-to-verizon-leaves-shareholders-with-little-say.html" itemtype="http://schema.org/NewsArticle" itemscope="" xmlns:og="http://opengraphprotocol.org/schema/" data-nyt-ab="www-signup-favor-test=0 www-fixed-nav-subscribe-test=1 EC_SampleTest=variantB EC_DigiAbandonmentTest=sendAbandonmentEmail EC_HdAbandonmentTest=control EC_CrosswordsUpsellTest=control mapleFreeTrial=2" style="" data-page-layout="a" data-lede-media-size="small" data-keywords="Deal Professor,deal-professor,article-medium" lang="en">
+<!--<![endif]-->
+<!--[if IE 9]> <html lang="en" class="no-js ie9 lt-ie10 section-dealbook format-medium tone-news app-article page-theme-standard has-top-ad type-size-small has-small-horizontal-lede" xmlns:og="http://opengraphprotocol.org/schema/"> <![endif]-->
+<!--[if IE 8]> <html lang="en" class="no-js ie8 lt-ie10 lt-ie9 section-dealbook format-medium tone-news app-article page-theme-standard has-top-ad type-size-small has-small-horizontal-lede" xmlns:og="http://opengraphprotocol.org/schema/"> <![endif]-->
+<!--[if (lt IE 8)]> <html lang="en" class="no-js lt-ie10 lt-ie9 lt-ie8 section-dealbook format-medium tone-news app-article page-theme-standard has-top-ad type-size-small has-small-horizontal-lede" xmlns:og="http://opengraphprotocol.org/schema/"> <![endif]-->
+
+<head>
+ <title>Yahoo’s Sale to Verizon Leaves Shareholders With Little Say - The New York Times</title>
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
+ <link rel="shortcut icon" href="https://static01.nyt.com/favicon.ico" />
+ <link rel="apple-touch-icon-precomposed" sizes="144×144" href="https://static01.nyt.com/images/icons/ios-ipad-144x144.png" />
+ <link rel="apple-touch-icon-precomposed" sizes="114×114" href="https://static01.nyt.com/images/icons/ios-iphone-114x144.png" />
+ <link rel="apple-touch-icon-precomposed" href="https://static01.nyt.com/images/icons/ios-default-homescreen-57x57.png" />
+ <meta name="sourceApp" content="nyt-v5" />
+ <meta id="applicationName" name="applicationName" content="article" />
+ <meta id="foundation-build-id" name="foundation-build-id" content="" />
+ <link rel="canonical" href="https://www.nytimes.com/2016/07/30/business/dealbook/yahoos-sale-to-verizon-leaves-shareholders-with-little-say.html" />
+ <link rel="alternate" media="only screen and (max-width: 640px)" href="http://mobile.nytimes.com/2016/07/30/business/dealbook/yahoos-sale-to-verizon-leaves-shareholders-with-little-say.html" />
+ <link rel="alternate" media="handheld" href="http://mobile.nytimes.com/2016/07/30/business/dealbook/yahoos-sale-to-verizon-leaves-shareholders-with-little-say.html" />
+ <link rel="amphtml" href="http://mobile.nytimes.com/2016/07/30/business/dealbook/yahoos-sale-to-verizon-leaves-shareholders-with-little-say.amp.html" />
+ <meta property="al:android:url" content="nytimes://reader/id/100000004558832" />
+ <meta property="al:android:package" content="com.nytimes.android" />
+ <meta property="al:android:app_name" content="NYTimes" />
+ <meta name="twitter:app:name:googleplay" content="NYTimes" />
+ <meta name="twitter:app:id:googleplay" content="com.nytimes.android" />
+ <meta name="twitter:app:url:googleplay" content="nytimes://reader/id/100000004558832" />
+ <link rel="alternate" href="android-app://com.nytimes.android/nytimes/reader/id/100000004558832" />
+ <meta property="al:iphone:url" content="nytimes://www.nytimes.com/2016/07/30/business/dealbook/yahoos-sale-to-verizon-leaves-shareholders-with-little-say.html" />
+ <meta property="al:iphone:app_store_id" content="284862083" />
+ <meta property="al:iphone:app_name" content="NYTimes" />
+ <meta property="al:ipad:url" content="nytimes://www.nytimes.com/2016/07/30/business/dealbook/yahoos-sale-to-verizon-leaves-shareholders-with-little-say.html" />
+ <meta property="al:ipad:app_store_id" content="357066198" />
+ <meta property="al:ipad:app_name" content="NYTimes" />
+ <meta name="robots" content="noarchive" />
+ <meta itemprop="alternativeHeadline" name="hdl_p" content="" />
+ <meta name="channels" content="" />
+ <meta itemprop="description" name="description" content="The internet giant’s decision to sell its business is plagued with challenges that reveal how unusual deal structures can affect shareholders." />
+ <meta name="genre" itemprop="genre" content="News" />
+ <meta itemprop="identifier" name="articleid" content="100000004558832" />
+ <meta itemprop="usageTerms" name="usageTerms" content="http://www.nytimes.com/content/help/rights/sale/terms-of-sale.html" />
+ <meta itemprop="inLanguage" content="en-US" />
+ <meta name="hdl" content="Yahoo’s Sale to Verizon Leaves Shareholders With Little Say" />
+ <meta name="col" content="Deal Professor" id="column-name" />
+ <meta name="pdate" content="20160729" />
+ <meta name="utime" content="20160801013024" />
+ <meta name="ptime" content="20160729164234" />
+ <meta name="DISPLAYDATE" content="July 29, 2016" />
+ <meta name="dat" content="July 29, 2016" />
+ <meta name="lp" content="The internet giant’s decision to sell its business is plagued with challenges that reveal how unusual deal structures can affect shareholders." />
+ <meta name="msapplication-starturl" content="http://www.nytimes.com" />
+ <meta name="cre" content="The New York Times" />
+ <meta name="slug" content="30db-dealprof" />
+ <meta property="article:collection" content="https://static01.nyt.com/services/json/sectionfronts/business/dealbook/index.jsonp" />
+ <meta name="sectionfront_jsonp" content="https://static01.nyt.com/services/json/sectionfronts/business/dealbook/index.jsonp" />
+ <meta property="og:url" content="http://www.nytimes.com/2016/07/30/business/dealbook/yahoos-sale-to-verizon-leaves-shareholders-with-little-say.html" />
+ <meta property="og:type" content="article" />
+ <meta property="og:title" content="Yahoo’s Sale to Verizon Leaves Shareholders With Little Say" />
+ <meta property="og:description" content="The internet giant’s decision to sell its business is plagued with challenges that reveal how unusual deal structures can affect shareholders." />
+ <meta property="article:published" itemprop="datePublished" content="2016-07-29T16:42:34-04:00" />
+ <meta property="article:modified" itemprop="dateModified" content="2016-08-01T01:30:24-04:00" />
+ <meta property="article:section" itemprop="articleSection" content="DealBook" />
+ <meta property="article:section-taxonomy-id" itemprop="articleSection" content="104D1E63-9701-497B-8CF4-A4D120C9014E" />
+ <meta property="article:section_url" content="http://www.nytimes.com/pages/business/index.html" />
+ <meta property="article:top-level-section" content="business" />
+ <meta property="fb:app_id" content="9869919170" />
+ <meta name="twitter:site" value="@nytimes" />
+ <meta property="twitter:url" content="http://www.nytimes.com/2016/07/30/business/dealbook/yahoos-sale-to-verizon-leaves-shareholders-with-little-say.html" />
+ <meta property="twitter:title" content="Yahoo’s Sale to Verizon Leaves Shareholders With Little Say" />
+ <meta property="twitter:description" content="The internet giant’s decision to sell its business is plagued with challenges that reveal how unusual deal structures can affect shareholders." />
+ <meta name="author" content="Steven Davidoff Solomon" />
+ <meta name="tone" content="news" id="article-tone" />
+ <meta name="byl" content="By STEVEN DAVIDOFF SOLOMON" />
+ <meta name="PT" content="article" />
+ <meta name="CG" content="business" />
+ <meta name="SCG" content="dealbook" />
+ <meta name="PST" content="News" />
+ <meta name="tom" content="News" />
+ <meta name="edt" content="The New York Times on the Web" />
+ <meta property="og:image" content="https://static01.nyt.com/images/2016/07/30/business/db-dealprof/db-dealprof-facebookJumbo.jpg" />
+ <meta property="twitter:image" content="https://static01.nyt.com/images/2016/07/30/business/db-dealprof/db-dealprof-videoSixteenByNineJumbo1600.jpg" />
+ <meta name="twitter:card" value="summary_large_image" />
+ <meta property="article:author" content="" />
+ <meta property="article:tag" content="Mergers, Acquisitions and Divestitures" />
+ <meta name="des" content="Mergers, Acquisitions and Divestitures" />
+ <meta property="article:tag" content="Yahoo! Inc" />
+ <meta name="org" content="Yahoo! Inc" />
+ <meta property="article:tag" content="Verizon Communications Inc" />
+ <meta name="org" content="Verizon Communications Inc" />
+ <meta property="article:tag" content="Mayer, Marissa" />
+ <meta name="per" content="Mayer, Marissa" />
+ <meta name="keywords" content="Mergers Acquisitions and Divestitures,Yahoo! Inc,Verizon Communications Inc,Mayer Marissa" />
+ <meta name="news_keywords" content="Mergers and Acquisitions,Yahoo!,Verizon Communications,Marissa Mayer" />
+ <meta name="thumbnail_150" content="https://static01.nyt.com/images/2016/07/30/business/db-dealprof/db-dealprof-thumbLarge.jpg" />
+ <meta name="thumbnail_150_height" content="150" />
+ <meta name="thumbnail_150_width" content="150" />
+ <meta itemprop="thumbnailUrl" name="thumbnail" content="https://static01.nyt.com/images/2016/07/30/business/db-dealprof/db-dealprof-thumbStandard.jpg" />
+ <meta name="thumbnail_height" content="75" />
+ <meta name="thumbnail_width" content="75" />
+ <meta name="video:playerId" content="2640832222001" />
+ <meta name="video:noShareToolsPlayerId" content="3692909326001" />
+ <meta name="video:publisherId" content="1749339200" />
+ <meta name="video:publisherReadToken" content="cE97ArV7TzqBzkmeRVVhJ8O6GWME2iG_bRvjBTlNb4o." />
+ <meta name="nyt-collection:display-name" content="Deal Professor" />
+ <meta name="nyt-collection:identifier" content="deal-professor" />
+ <meta name="nyt-collection:url" content="http://www.nytimes.com/column/deal-professor" />
+ <meta name="nyt-collection:uri" content="/column/deal-professor" />
+ <meta name="nyt-collection:tone" content="news" />
+ <meta name="nyt-collection:tagline" content="" />
+ <meta name="nyt-collection:type" content="column" />
+ <meta name="CN" content="deal-professor" />
+ <meta name="CT" content="column" />
+ <meta name="dfp-ad-unit-path" content="business/dealbook" />
+ <meta name="dfp-amazon-enabled" content="false" />
+ <link rel="alternate" type="application/json+oembed" href="https://www.nytimes.com/svc/oembed/json/?url=http%3A%2F%2Fwww.nytimes.com%2F2016%2F07%2F30%2Fbusiness%2Fdealbook%2Fyahoos-sale-to-verizon-leaves-shareholders-with-little-say.html" title="Yahoo’s Sale to Verizon Leaves Shareholders With Little Say" />
+
+ <link id="legacy-zam5nzz" rel="stylesheet" type="text/css" href="https://typeface.nyt.com/css/zam5nzz.css" media="all" />
+ <!--[if (gt IE 9)|!(IE)]> <!-->
+ <link rel="stylesheet" type="text/css" media="screen" href="https://a1.nyt.com/assets/article/20170112-121631/css/article/story/styles.css" />
+ <!--<![endif]-->
+ <!--[if lte IE 9]>
+ <link rel="stylesheet" type="text/css" media="screen" href="https://a1.nyt.com/assets/article/20170112-121631/css/article/story/styles-ie.css" />
+ <![endif]-->
+ <link rel="stylesheet" type="text/css" media="print" href="https://a1.nyt.com/assets/article/20170112-121631/css/article/story/styles-print.css" />
+ <!-- begin abra -->
+ <script async="" src="//www.google-analytics.com/analytics.js"></script>
+ <script type="text/javascript" async="" src="//www.googletagservices.com/tag/js/gpt.js"></script>
+ <script type="text/javascript" async="" src="https://aax.amazon-adsystem.com/e/dtb/bid?src=3030&amp;u=https%3A%2F%2Fwww.nytimes.com%2F2016%2F07%2F30%2Fbusiness%2Fdealbook%2Fyahoos-sale-to-verizon-leaves-shareholders-with-little-say.html%3F_r%3D0&amp;cb=8049442&amp;t=1000"></script>
+ <script type="text/javascript" async="" src="https://c.amazon-adsystem.com/aax2/amzn_ads.js"></script>
+ <script type="text/javascript" async="" src="https://contextual.media.net/rtbsapub.php?&amp;rt=3&amp;callback=window.advBidxc.ybncaresponse&amp;&amp;cid=8CU2553YN&amp;apid=2&amp;requestString=782647924*4%7C728x90%7C8CU2RX232%7C254501352%40377617315*4%7C300x250%7C8CU2RX232%7C256680872%40244728629*4%7C300x250%7C8CU2RX232%7C175452886&amp;crid=782647924,377617315,244728629&amp;sd=-1&amp;hlt=1&amp;https=1&amp;requrl=https%3A%2F%2Fwww.nytimes.com%2F2016%2F07%2F30%2Fbusiness%2Fdealbook%2Fyahoos-sale-to-verizon-leaves-shareholders-with-little-say.html%3F_r%3D0&amp;tr=0.913774143092421"></script>
+ <script type="text/javascript" async="" src="https://contextual.media.net/rtbsapub.php?&amp;cid=8CU2553YN&amp;requestString=782647924*35%7C728x90%7C8CU2553YN%7C37acf79822fd5ef0ce3e%40568721512*35%7C300x250%7C8CU2553YN%7Cb6a4ed6f6ba3cd941ebb%40377617315*35%7C300x250%7C8CU2553YN%7Cb6a4ed6f6ba3cd941ebb%40244728629*35%7C300x250%7C8CU2553YN%7Cb6a4ed6f6ba3cd941ebb%40723554252*35%7C300x250%7C8CU2553YN%7Cb6a4ed6f6ba3cd941ebb&amp;crid=782647924%2C568721512%2C377617315%2C244728629%2C723554252&amp;requrl=https%3A%2F%2Fwww.nytimes.com%2F2016%2F07%2F30%2Fbusiness%2Fdealbook%2Fyahoos-sale-to-verizon-leaves-shareholders-with-little-say.html%3F_r%3D0&amp;bl=1&amp;https=1&amp;hlt=1&amp;rt=3&amp;callback=window.advBidxc.sonobiresp&amp;tr=0.9332791039416538"></script>
+ <script type="text/javascript" async="" src="https://contextual.media.net/rtbsapub.php?&amp;cid=8CU2553YN&amp;requestString=782647924*29%7C728x90%7C12330%7C100278_472392_2%40568721512*29%7C300x250%7C12330%7C100278_472392_15%40377617315*29%7C300x250%7C12330%7C100278_472392_15%40244728629*29%7C300x250%7C12330%7C100278_472392_15%40723554252*29%7C300x250%7C12330%7C100278_472392_15&amp;crid=782647924%2C568721512%2C377617315%2C244728629%2C723554252&amp;requrl=https%3A%2F%2Fwww.nytimes.com%2F2016%2F07%2F30%2Fbusiness%2Fdealbook%2Fyahoos-sale-to-verizon-leaves-shareholders-with-little-say.html%3F_r%3D0&amp;bl=1&amp;https=1&amp;hlt=1&amp;rt=3&amp;callback=window.advBidxc.rubiconresp&amp;tr=0.5885352331745388"></script>
+ <script type="text/javascript" async="" src="https://contextual.media.net/rtbsapub.php?&amp;cid=8CU2553YN&amp;requestString=782647924*23%7C728x90%7E970x250%7C8CU2553YN%7Cbiz-desk%40568721512*23%7C300x250%7C8CU2553YN%7Cbiz-desk%40377617315*23%7C300x250%7C8CU2553YN%7Cbiz-desk%40244728629*23%7C300x250%7C8CU2553YN%7Cbiz-desk%40723554252*23%7C300x250%7C8CU2553YN%7Cbiz-desk&amp;crid=782647924%2C568721512%2C377617315%2C244728629%2C723554252&amp;requrl=https%3A%2F%2Fwww.nytimes.com%2F2016%2F07%2F30%2Fbusiness%2Fdealbook%2Fyahoos-sale-to-verizon-leaves-shareholders-with-little-say.html%3F_r%3D0&amp;bl=1&amp;https=1&amp;hlt=1&amp;tr=0.23940410001427848"></script>
+ <script src="https://as-sec.casalemedia.com/headertag/?v=9&amp;fn=cygnus_index_parse_res&amp;s=167943&amp;r=%7B%22id%22%3A136348611%2C%22site%22%3A%7B%22page%22%3A%22https%3A%2F%2Fwww.nytimes.com%2F2016%2F07%2F30%2Fbusiness%2Fdealbook%2Fyahoos-sale-to-verizon-leaves-shareholders-with-little-say.html%3F_r%3D0%22%2C%22ref%22%3A%22%22%7D%2C%22imp%22%3A%5B%7B%22id%22%3A%221%22%2C%20%22banner%22%3A%7B%22w%22%3A728%2C%22h%22%3A90%2C%22topframe%22%3A1%7D%2C%22ext%22%3A%20%7B%22sid%22%3A%22CT%22%2C%22siteID%22%3A168042%7D%7D%2C%7B%22id%22%3A%222%22%2C%20%22banner%22%3A%7B%22w%22%3A970%2C%22h%22%3A250%2C%22topframe%22%3A1%7D%2C%22ext%22%3A%20%7B%22sid%22%3A%22New2%22%2C%22siteID%22%3A168042%7D%7D%5D%7D&amp;t=300" async="true" type="text/javascript"></script>
+ <script>
+ var NYTD = NYTD || {};
+ NYTD.Abra = function(t) {
+ "use strict";
+
+ function n(t) {
+ var n = u[t];
+ return n & amp; & amp;
+ n[1] || null
+ }
+
+ function e(t, n) {
+ if (t) {
+ var e, o, r = n[0],
+ u = n[1],
+ a = 0,
+ c = 0;
+ if (1 !== u.length || 4294967296 !== u[0])
+ for (e = i(t + " " + r) & gt; & gt; & gt; 0, a = 0, c = 0; o = u[a++];)
+ if (e & lt;
+ (c += o[0])) return o
+ }
+ }
+
+ function o(n, e, o, i) {
+ f += "subject=" + n + "&amp;test=" + encodeURIComponent(e) + "&amp;variant=" + encodeURIComponent(o || 0) + "&amp;url=" + encodeURIComponent(t.location.href) + "&amp;instant=1&amp;skipAugment=true\n", i & amp; & amp;
+ s.push(i), c || (c = t.setTimeout(r, 0))
+ }
+
+ function r() {
+ var n = new t.XMLHttpRequest,
+ e = s;
+ n.withCredentials = !0, n.open("POST", a), n.onreadystatechange = function() {
+ var t, o;
+ if (4 == n.readyState)
+ for (t = 200 == n.status ? null : new Error(n.statusText); o = e.shift();) o(t)
+ }, n.send(f), f = "", s = [], c = null
+ }
+
+ function i(t) {
+ for (var n, e, o, r, i, u, a, c = 0, f = 0, s = [], l = [n = 1732584193, e = 4023233417, ~n, ~e, 3285377520], h = [], p = t.length; f & lt; = p;) h[f & gt; & gt; 2] |= (f & lt; p ? t.charCodeAt(f) : 128) & lt; & lt;
+ 8 * (3 - f++ % 4);
+ for (h[a = p + 8 & gt; & gt; 2 | 15] = p & lt; & lt; 3; c & lt; = a; c += 16) {
+ for (n = l, f = 0; f & lt; 80; n = [0 | [(u = ((t = n[0]) & lt; & lt; 5 | t & gt; & gt; & gt; 27) + n[4] + (s[f] = f & lt; 16 ? ~~h[c + f] : u & lt; & lt; 1 | u & gt; & gt; & gt; 31) + 1518500249) + ((e = n[1]) & amp;
+ (o = n[2]) | ~e & amp;
+ (r = n[3])), i = u + (e ^ o ^ r) + 341275144, u + (e & amp; o | e & amp; r | o & amp; r) + 882459459, i + 1535694389][0 | f++/20],t,e&lt;&lt;30|e&gt;&gt;&gt;2,o,r])u=s[f-3]^s[f-8]^s[f-14]^s[f-16];for(f=5;f;)l[--f]=l[f]+n[f]|0}return l[0]}var u,a,c,f="",s=[];return n.init=function(n,r){var i,c,f,s,l,h=[],p=(t.document.cookie.match(/ ( ^ | ;) * nyt - a = ([ ^ ;] * ) / ) || [])[2], d = (t.document.cookie.match(/(^|;) *ab7=([^;]*)/) || [])[2];
+ if (u) throw new Error("can't init twice");
+ if (a = r, u = {}, d)
+ for (d = decodeURIComponent(d).split("&amp;"), i = 0; i & lt; d.length; i++) l = d[i].split("="), u[l[0]] = [, l[1]], l[1] & amp; & amp; h.push(l[0] + "=" + l[1]);
+ for (i = 0; i & lt; n.length; i++) f = n[i], c = f[0], c in u || (s = e(p, f) || [], u[c] = s, s[1] & amp; & amp; h.push(c.replace(/[^\w-]/g) + "=" + ("" + s[1]).replace(/[^\w-]/g)), s[2] & amp; & amp; o("ab-alloc", c, s[1])); h.length & amp; & amp; t.document.documentElement.setAttribute("data-nyt-ab", h.join(" "))
+ }, n.reportExposure = function(n, e) {
+ var r = u[n];
+ r & amp; & amp;
+ r[2] ? o("ab-expose", n, r[1], e) : e & amp; & amp;
+ t.setTimeout(function() {
+ e(null)
+ }, 0)
+ }, n
+ }(this);
+ </script>
+ <script>
+ NYTD.Abra.init([
+ ["www-story-reader-satisfaction", [
+ [21474837, "Control", 1],
+ [21474836, "VariantA", 1],
+ [4252017623, null, 0]
+ ]],
+ ["www-signup-favor-test", [
+ [2147483648, "0", 1],
+ [2147483648, "1", 1]
+ ]],
+ ["www-fixed-nav-subscribe-test", [
+ [4294967296, "1", 1]
+ ]],
+ ["EC_SampleTest", [
+ [2147483648, "variantA", 0],
+ [2147483648, "variantB", 0]
+ ]],
+ ["EC_DigiAbandonmentTest", [
+ [4294967296, "sendAbandonmentEmail", 1]
+ ]],
+ ["EC_HdAbandonmentTest", [
+ [2147483648, "control", 1],
+ [2147483648, "sendAbandonmentEmail", 1]
+ ]],
+ ["EC_CrosswordsUpsellTest", [
+ [2147483648, "control", 1],
+ [2147483648, "upsell", 1]
+ ]],
+ ["mapleFreeTrial", [
+ [1073741824, "0", 1],
+ [1073741824, "1", 1],
+ [1073741824, "2", 1],
+ [1073741824, "3", 1]
+ ]]
+ ], '//et.nytimes.com/')
+ </script>
+ <!-- end abra -->
+ <script id="page-config-data" type="text/json">
+ {
+ "pageconfig": {
+ "ledeMediaSize": "small",
+ "keywords": ["Deal Professor", "deal-professor", "article-medium"],
+ "collections": {
+ "columns": ["dealprofessor"]
+ }
+ }
+ }
+ </script>
+ <script id="display_overrides">
+ []
+ </script>
+
+ <!-- Media.net Initialization Script -->
+ <!--NY times Desktop-->
+ <script type="text/javascript">
+ var PREBID_TIMEOUT = 300;
+ var googletag = googletag || {};
+ googletag.cmd = googletag.cmd || [];
+ (function() {
+ window.advBidxc = window.advBidxc || {};
+ window.advBidxc.renderAd = function() {};
+ window.advBidxc.startTime = new Date().getTime();
+ window.advBidxc.customerId = "8CU2553YN"; //Media.net Customer ID
+ function loadScript(tagSrc) {
+ if (tagSrc.substr(0, 4) !== 'http') {
+ var isSSL = 'https:' == document.location.protocol;
+ tagSrc = (isSSL ? 'https:' : '') + tagSrc;
+ }
+ var scriptTag = document.createElement('script'),
+ placeTag = document.getElementsByTagName("script")[0];
+ scriptTag.type = 'text/javascript';
+ scriptTag.async = true;
+ scriptTag.src = tagSrc;
+ placeTag.parentNode.insertBefore(scriptTag, placeTag);
+ }
+
+ function loadGPT() {
+ if (!window.advBidxc.isAdServerLoaded) {
+ loadScript('//www.googletagservices.com/tag/js/gpt.js');
+ window.advBidxc.isAdServerLoaded = true;
+ }
+ }
+
+ window.advBidxc.loadGPT = setTimeout(loadGPT, PREBID_TIMEOUT);
+
+ var isSSL = 'https:' == document.location.protocol;
+ var mnSrc = (isSSL ? 'https:' : 'http:') + '//contextual.media.net/bidexchange.js?cid=' + window.advBidxc.customerId + (isSSL ? '&amp;https=1' : '');
+ document.write('&lt;scr' + 'ipt type="text/javascript" src="' + mnSrc + '"&gt;&lt;/scr' + 'ipt&gt;');
+ })();
+ </script>
+ <script type="text/javascript" src="https://contextual.media.net/bidexchange.js?cid=8CU2553YN&amp;https=1"></script>
+
+ <!-- A9 Initialization Script -->
+ <script type="text/javascript">
+ var amznads = amznads || {};
+ amznads.asyncParams = {
+ 'id': '3030',
+ 'callbackFn': function() {
+ try {
+ amznads.setTargetingForGPTAsync('amznslots');
+ } catch (e) {}
+ },
+ 'timeout': 1000
+ };
+
+ (function() {
+ var a, s = document.getElementsByTagName("script")[0];
+ a = document.createElement("script");
+ a.type = "text/javascript";
+ a.async = true;
+ a.src = "https://c.amazon-adsystem.com/aax2/amzn_ads.js";
+ s.parentNode.insertBefore(a, s);
+ })();
+ </script>
+ <script type="text/json" id="trending-link-json">
+ </script>
+
+ <!--esi
+<script id="user-info-data" type="application/json">
+<esi:include src="/svc/web-products/userinfo-v3.json" />
+</script>
+-->
+ <script id="magnum-feature-flags" type="application/json">
+ ["limitFabrikSave", "moreFollowSuggestions", "unfollowComments", "scoopTool", "videoVHSCover", "videoVHSShareTools", "videoVHSLive", "videoVHSNewControls", "videoVHSEmbeddedOnly", "allTheEmphases", "freeTrial", "dedupeWhatsNext", "trendingPageLinks", "sprinklePaidPost", "headerBidder", "standardizeWhatsNextCollection", "onlyLayoutA", "simple", "simpleExtendedByline", "collectionsWhatsNext", "mobileMediaViewer", "podcastInLede", "MovieTickets", "MoreInSubsectionFix", "seriesIssueMarginalia", "serverSideCollectionUrls", "multipleBylines", "fabrikWebsocketsOnly", "translationLinks", "papihttps", "verticalFullBleed", "updateRestaurantReservations", "mapDining", "newsletterInlineModule", "PersonalizationApiUpdate", "a9HeaderEnabled", "removeInternationalEdition", "headlineBalancer", "clientSideABRA", "newsletterTitleTracking", "surveyInterstitial", "removeFBMessengerPromo", "removeMarginaliaAbTest", "paidpostSprinklingFix", "abraOverrideVersion", "headlineBalancerEverywhere", "signupFavor", "lazyloadOakImages", "mapleFreeTrial", "adQuerySupportForMultipleUserAddedKeywords", "oakUpdateAdStride", "piiBlockDFP", "adExclusiveIERibbonCheck"]
+ </script>
+ <script>
+ var require = {
+ baseUrl: 'https://a1.nyt.com/assets/',
+ waitSeconds: 20,
+ paths: {
+ 'foundation': 'article/20170112-121631/js/foundation',
+ 'shared': 'article/20170112-121631/js/shared',
+ 'article': 'article/20170112-121631/js/article',
+ 'application': 'article/20170112-121631/js/article/story',
+ 'videoFactory': 'https://static01.nyt.com/js2/build/video/2.0/videofactoryrequire',
+ 'videoPlaylist': 'https://static01.nyt.com/js2/build/video/players/extended/2.0/appRequire',
+ 'auth/mtr': 'https://static01.nyt.com/js/mtr',
+ 'auth/growl': 'https://static01.nyt.com/js/auth/growl/default',
+ 'vhs': 'https://static01.nyt.com/video/vhs/build/vhs-2.x.min'
+ },
+ map: {
+ '*': {
+ 'story/main': 'article/story/main'
+ }
+ }
+ };
+ </script>
+ <!--[if (gte IE 9)|!(IE)]> <!-->
+ <script data-main="foundation/main" src="https://a1.nyt.com/assets/article/20170112-121631/js/foundation/lib/framework.js"></script>
+ <!--<![endif]-->
+ <!--[if lt IE 9]>
+<script>
+ require.map['*']['foundation/main'] = 'foundation/legacy_main';
+</script>
+<script data-main="foundation/legacy_main" src="https://a1.nyt.com/assets/article/20170112-121631/js/foundation/lib/framework.js"></script>
+<![endif]-->
+ <script>
+ require(['foundation/main'], function() {
+ require(['auth/mtr', 'auth/growl']);
+ });
+ </script>
+ <script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="foundation/main" src="https://a1.nyt.com/assets/article/20170112-121631/js/foundation/main.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="foundation/hosts" src="https://a1.nyt.com/assets/article/20170112-121631/js/foundation/hosts.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="auth/mtr" src="https://static01.nyt.com/js/mtr.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="auth/growl" src="https://static01.nyt.com/js/auth/growl/default.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="article/story/main" src="https://a1.nyt.com/assets/article/20170112-121631/js/article/story/main.js"></script>
+ <script src="https://securepubads.g.doubleclick.net/gpt/pubads_impl_107.js" async=""></script>
+ <link rel="prefetch" href="https://tpc.googlesyndication.com/safeframe/1-0-5/html/container.html" />
+ <script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="foundation/views/ad-view-manager" src="https://a1.nyt.com/assets/article/20170112-121631/js/foundation/views/ad-view-manager.js"></script>
+ <meta name="WT.z_cad" content="0" />
+ <script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="ab//shared-991cd5a3401318f801cc1ffb884e0e85" src="//static01.nyt.com/ab//shared-991cd5a3401318f801cc1ffb884e0e85.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="ab/tests/bar1/pricing_inyt_1116/main-0ebb29e45df391fbc905fca2621641c3" src="//static01.nyt.com/ab/tests/bar1/pricing_inyt_1116/main-0ebb29e45df391fbc905fca2621641c3.js"></script>
+ <style>
+ @import url(https://a1.nyt.com/fonts/css/fonts.css);
+ .font-smoothing {
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale
+ }
+
+ .sub_small_hide {
+ display: none
+ }
+
+ .NYT5Style .masthead-tools {
+ padding-right: 0
+ }
+
+ .NYT5Style .masthead-tools #bar1-3panel {
+ display: inline;
+ vertical-align: top;
+ background-image: none
+ }
+
+ #bar1-3panel {
+ border: 0;
+ position: relative
+ }
+
+ #bar1-nyt5wrapper {
+ opacity: 0
+ }
+
+ #nyt-button-sub {
+ -moz-box-sizing: border-box;
+ background-color: #6288A5;
+ border: 1px solid #4D7B9F;
+ border-radius: 3px;
+ color: #fff !important;
+ display: inline-block;
+ font-size: 1em;
+ line-height: 13px;
+ font-family: franklin-normal-700, sans-serif;
+ font-style: normal;
+ font-weight: 700;
+ padding: 7px 10px 6px;
+ text-transform: uppercase !important;
+ text-decoration: none
+ }
+
+ #nyt-button-sub:hover {
+ background-color: #326891;
+ border: 1px solid #265E8B;
+ text-decoration: none
+ }
+
+ .bar1-hidden {
+ margin-right: 8px
+ }
+
+ .NYT4 .bar1-hidden,
+ .NYT4 #bar1-3panel {
+ display: none
+ }
+
+ #hovercard {
+ width: 450px;
+ height: 330px;
+ display: none;
+ margin-left: -360px;
+ z-index: 1000000152;
+ border: 0;
+ position: absolute;
+ left: 50%;
+ top: 30px;
+ text-align: left;
+ box-shadow: 0 0 5px #888;
+ white-space: normal;
+ background: #b0f4c0 url("https://static01.nyt.com/adx/images/ADS/41/53/ad.415335/nyt_logo_428x60.png") 40px 40px no-repeat;
+ background-size: 179px 25px;
+ text-transform: none
+ }
+
+ #bar1-headline {
+ position: absolute;
+ top: 81px;
+ left: 40px;
+ font-family: karnak-normal-400, sans-serif;
+ font-style: normal;
+ font-weight: 400;
+ font-size: 30px;
+ line-height: 34px;
+ color: #000;
+ font-weight: 100;
+ width: 300px;
+ text-align: left
+ }
+
+ #bar1-divider {
+ width: 90px;
+ height: 2px;
+ border-bottom: 2px solid #000;
+ position: absolute;
+ left: 40px;
+ top: 161px
+ }
+
+ #bar1-headline span {
+ color: #0ea587
+ }
+
+ #bar1-subhead {
+ position: absolute;
+ top: 180px;
+ left: 40px;
+ color: #000;
+ font-family: franklin-normal-300, sans-serif;
+ font-style: normal;
+ font-weight: 300;
+ font-size: 20px;
+ line-height: 25px;
+ width: 300px;
+ text-align: left
+ }
+
+ #bar1-subhead span {
+ font-family: franklin-normal-600, sans-serif;
+ font-weight: 600
+ }
+
+ #bar1-cta {
+ font-family: franklin-normal-700, sans-serif;
+ font-style: normal;
+ font-weight: 700;
+ position: absolute;
+ top: 250px;
+ left: 40px;
+ width: 133px;
+ height: 37px;
+ background: #000;
+ font-size: 13px;
+ line-height: 36px;
+ padding: 0;
+ text-align: center;
+ text-decoration: none;
+ border-radius: 3px;
+ cursor: pointer;
+ color: #fff;
+ text-transform: uppercase;
+ border: 0
+ }
+
+ #hovercard:after {
+ bottom: 100%;
+ left: 350px;
+ border: solid transparent;
+ content: " ";
+ width: 0;
+ height: 0;
+ position: absolute;
+ pointer-events: none;
+ border-bottom-color: #b0f4c0;
+ border-width: 8px;
+ margin: 0
+ }
+
+ #bar1-offer-msg {
+ font-family: franklin-normal-400, sans-serif;
+ font-style: normal;
+ font-weight: 400;
+ position: absolute;
+ top: 270px;
+ left: 40px !important;
+ width: 150px;
+ height: 30px;
+ font-size: 11px;
+ line-height: 15px;
+ padding: 0;
+ text-decoration: none;
+ color: #363636
+ }
+
+ #hovercard hr {
+ margin: 4px;
+ width: 320px;
+ opacity: 0.5;
+ color: #000
+ }
+
+ .hover-subhead {
+ font-family: franklin-normal-500, sans-serif;
+ font-style: normal;
+ font-weight: 500;
+ font-size: 11px;
+ line-height: 13px;
+ color: #333;
+ margin: 1px 0 0;
+ width: 170px;
+ position: absolute;
+ top: 10px
+ }
+
+ #hovercard h3 a,
+ #hovercard p a {
+ color: #000 !important;
+ text-decoration: none;
+ display: block
+ }
+
+ a.nyt-button-actions {
+ background: #f7f7f5;
+ color: #58595b !important;
+ width: 126px;
+ border-radius: 3px;
+ border: 1px solid #ccc !important;
+ text-transform: uppercase;
+ font-family: franklin-normal-500, sans-serif;
+ font-style: normal;
+ font-weight: 500;
+ font-size: 11px;
+ line-height: 15px;
+ text-align: center;
+ padding: 6px 0;
+ cursor: pointer;
+ display: block;
+ position: absolute;
+ top: 10px;
+ left: 194px;
+ text-decoration: none !important
+ }
+
+ #hovercard a.nyt-button-actions:hover {
+ background: #3c6791;
+ color: #fff !important;
+ text-decoration: none !important
+ }
+
+ #hovercard a.nyt-button-actions.highlightButton:link,
+ #hovercard a.nyt-button-actions.highlightButton:visited {
+ color: #fff !important;
+ background: #3c6791;
+ text-decoration: none !important
+ }
+
+ a.split-all-button {
+ background: #f3f3f4;
+ width: 345px;
+ height: 30px;
+ position: absolute;
+ bottom: 0;
+ font-family: franklin-normal-500, sans-serif;
+ font-style: normal;
+ font-weight: 500;
+ font-size: 11px;
+ line-height: 30px;
+ margin: 0;
+ border: 1px solid #CCC;
+ text-align: center;
+ vertical-align: middle
+ }
+
+ #hovercard a.split-all-button:hover {
+ background: #fff;
+ color: #004276 !important;
+ text-decoration: underline !important
+ }
+
+ .NYT5Style #hovercard {
+ top: 26px
+ }
+
+ .ad.bar1-ad a.bar1-introtext,
+ #memberTools .bar1-introtext,
+ .masthead-tools a.bar1-introtext {
+ text-decoration: none;
+ color: #666
+ }
+
+ .masthead-tools a.bar1-introtext {
+ position: relative;
+ margin-top: 2px
+ }
+
+ .bar1-introtext {
+ padding-right: 5px
+ }
+
+ .ad.bar1-ad .user-subscriptions-menu li a {
+ padding-left: 0;
+ border-left: 0
+ }
+
+ @media screen and (-webkit-min-device-pixel-ratio: 0) {
+ .NYT5Style #hovercard {
+ left: 50%;
+ top: 29px
+ }
+ .NYT5Style #hovercard:before {
+ top: -14px
+ }
+ }
+
+ #interactiveABC #bar1-3panel {
+ display: none
+ }
+ </style>
+ <script type="text/javascript" src="https://tagx.nytimes.com/?url=https%3A%2F%2Fwww.nytimes.com%2F2016%2F07%2F30%2Fbusiness%2Fdealbook%2Fyahoos-sale-to-verizon-leaves-shareholders-with-little-say.html%3F_r%3D0&amp;assetUrl=https%3A%2F%2Fwww.nytimes.com%2F2016%2F07%2F30%2Fbusiness%2Fdealbook%2Fyahoos-sale-to-verizon-leaves-shareholders-with-little-say.html&amp;referrer=&amp;CG=business&amp;SCG=dealbook&amp;sourceApp=nyt-v5&amp;_cache_buster_=1484298968193"></script>
+ <script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="https://a1.nyt.com/analytics/tagx-simple.min.js" src="https://a1.nyt.com/analytics/tagx-simple.min.js"></script>
+</head>
+
+<body class="abtest-test abtest-variation">
+ <div id="critical-alerts" class="critical-alerts messenger">
+ <div id="account-alerts" style="display: none; height: 0px;" class="account-alerts alerts">
+ <div class="message-bed"></div>
+ </div>
+ <div id="breaking-news-alerts" style="display: none; height: 0px;" class="breaking-news-alerts alerts">
+ <div class="message-bed"></div>
+ </div>
+ </div>
+ <div id="suggestions" style="display: none; height: 0px;" class="suggestions messenger">
+ <div class="message-bed"></div>
+ </div><iframe marginwidth="0" marginheight="0" scrolling="no" id="_advBidxc_beacons" style="display: none !important;" width="0" height="0" frameborder="0"></iframe><iframe marginwidth="0" marginheight="0" scrolling="no" id="_mN_cksync_0" style="display: none !important;" src="https://contextual.media.net/checksync.php?&amp;cv=23&amp;cid=8CU2553YN&amp;vsSync=1&amp;force=0&amp;https=1&amp;vid=00001484298964603019903966067482&amp;vsid=1272962499660628&amp;sd=-1&amp;cc=TW&amp;ugd=4&amp;dn=www.nytimes.com&amp;lper=0&amp;prv=APPNEXUS%2CRUBICON_PRIVATE%2CSONOBI&amp;rtime=188" width="0" height="0" frameborder="0"></iframe>
+
+ <style>
+ .lt-ie10 .messenger.suggestions {
+ display: block !important;
+ height: 50px;
+ }
+
+ .lt-ie10 .messenger.suggestions .message-bed {
+ background-color: #f8e9d2;
+ border-bottom: 1px solid #ccc;
+ }
+
+ .lt-ie10 .messenger.suggestions .message-container {
+ padding: 11px 18px 11px 30px;
+ }
+
+ .lt-ie10 .messenger.suggestions .action-link {
+ font-family: "nyt-franklin", arial, helvetica, sans-serif;
+ font-size: 10px;
+ font-weight: bold;
+ color: #a81817;
+ text-transform: uppercase;
+ }
+
+ .lt-ie10 .messenger.suggestions .alert-icon {
+ background: url('https://static01.nyt.com/images/icons/icon-alert-12x12-a81817.png') no-repeat;
+ width: 12px;
+ height: 12px;
+ display: inline-block;
+ margin-top: -2px;
+ float: none;
+ }
+
+ .lt-ie10 .masthead,
+ .lt-ie10 .navigation,
+ .lt-ie10 .comments-panel {
+ margin-top: 50px !important;
+ }
+
+ .lt-ie10 .ribbon {
+ margin-top: 97px !important;
+ }
+ </style>
+ <div id="suggestions" class="suggestions messenger nocontent robots-nocontent" style="display:none;">
+ <div class="message-bed">
+ <div class="message-container last-message-container">
+ <div class="message">
+ <span class="message-content">
+ <i class="icon alert-icon"></i><span class="message-title">NYTimes.com no longer supports Internet Explorer 9 or earlier. Please upgrade your browser.</span>
+ <a href="http://www.nytimes.com/content/help/site/ie9-support.html" class="action-link">LEARN MORE »</a>
+ </span>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div id="shell" class="shell">
+ <header id="masthead" class="masthead masthead-theme-standard" role="banner">
+ <div class="container">
+ <div id="announcements" style="display: none; width: 1160px; left: 45px;" class="announcements messenger">
+ <div class="message-bed"></div>
+ </div>
+ <div class="quick-navigation button-group">
+ <button class="button sections-button"><i class="icon sprite-icon"></i><span class="button-text">Sections</span></button>
+ <button class="button home-button" data-href="http://www.nytimes.com/" title="Go to the home page to see the latest top stories."><i class="icon sprite-icon"></i>
+ <span class="button-text">Home</span>
+ </button>
+ <button class="button search-button"><i class="icon sprite-icon"></i><span class="button-text">Search</span></button>
+ <a class="button skip-button skip-to-content visually-hidden focusable" href="#story-header">Skip to content</a>
+ <a class="button skip-button skip-to-navigation visually-hidden focusable" href="#site-index-navigation">Skip to navigation</a>
+ <a class="button skip-button skip-to-mobile visually-hidden focusable" href="http://mobile.nytimes.com/2016/07/30/business/dealbook/yahoos-sale-to-verizon-leaves-shareholders-with-little-say.html">View mobile version</a>
+ </div>
+ <!-- close button-group -->
+ <div class="branding">
+ <h2 class="branding-heading">
+ <a id="branding-heading-link" href="http://www.nytimes.com/">
+ <span class="visually-hidden">The New York Times</span>
+ <svg xmlns="http://www.w3.org/2000/svg" class="nyt-logo" width="185" height="26" role="img" aria-label="The New York Times"><image width="185" height="26" xlink:href="https://a1.nyt.com/assets/article/20170112-121631/images/foundation/logos/nyt-logo-185x26.svg" xmlns:xlink="http://www.w3.org/1999/xlink" src="https://a1.nyt.com/assets/article/20170112-121631/images/foundation/logos/nyt-logo-185x26.png" alt="The New York Times" border="0"/></svg><img src="https://a1.nyt.com/assets/article/20170112-121631/images/foundation/logos/nyt-logo-185x26.png" class="nyt-logo-print" alt="The New York Times" /></a>
+ </h2>
+ <script>
+ window.magnum.writeLogo('small', 'https://a1.nyt.com/assets/article/20170112-121631/images/foundation/logos/', 'business', 'masthead-theme-standard', 'standard', 'branding-heading-link', 'article');
+ </script>
+ </div>
+ <!-- close branding -->
+ <div class="story-meta">
+ <h6 class="kicker"><span class="kicker-label"><a href="http://www.nytimes.com/pages/business/dealbook/index.html">DealBook</a></span><span class="pipe">|</span>Yahoo’s Sale to Verizon Leaves Shareholders With Little Say</h6>
+ </div>
+ <!-- close story-meta -->
+ <div class="user-tools">
+ <div id="Bar1" class="ad bar1-ad nocontent robots-nocontent">
+ <div id="bar1-nyt5wrapper" class="user-subscriptions-group" data-campaign-name="abtest_bar1_pricing_inyt_1116" style="opacity: 1;">
+ <ul class="user-subscriptions-menu">
+ <li class="bar1-hidden"><span class="bar1--meter--count">1</span> of 10 articles read</li>
+ <li id="bar1-3panel" class="user-subscriptions-menu user-subscriptions-group bar1_hover" style="opacity: 1;"><a id="nyt-button-sub" href="http://www.nytimes.com/adx/bin/adx_click.html?type=goto&amp;opzn&amp;page=www.nytimes.com/yr/mo/day/business/dealbook&amp;pos=Bar1&amp;sn2=945033cf/f2814abe&amp;sn1=7d209493/f1a5fc9b&amp;camp=abtest_bar1_pricing_inyt_1116&amp;ad=abtest_pricing_inyt_1116_bar1_ad&amp;goto=http%3A%2F%2Fwww%2Enytimes%2Ecom%2Fsubscriptions%2Finyt%2Flp88U9Y%2Ehtml%3Fadxc%3D284918%26adxa%3D415335%26page%3Dwww.nytimes.com/yr/mo/day/business/dealbook/yahoos-sale-to-verizon-leaves-shareholders-with-little-say.html%26pos%3DBar1%26campaignId%3D6HY7R" target="_blank" data-content-collection="" data-content-placement="1" style="height: 30px;" class="button">SUBSCRIBE NOW</a>
+ <a id="hovercard" class="font-smoothing" data-campaign-name="abtest_bar1_pricing_inyt_1116" href="http://www.nytimes.com/adx/bin/adx_click.html?type=goto&amp;opzn&amp;page=www.nytimes.com/yr/mo/day/business/dealbook&amp;pos=Bar1&amp;sn2=945033cf/f2814abe&amp;sn1=7d209493/f1a5fc9b&amp;camp=abtest_bar1_pricing_inyt_1116&amp;ad=abtest_pricing_inyt_1116_bar1_ad&amp;goto=http%3A%2F%2Fwww%2Enytimes%2Ecom%2Fsubscriptions%2Finyt%2Flp88U9Y%2Ehtml%3Fadxc%3D284918%26adxa%3D415335%26page%3Dwww.nytimes.com/yr/mo/day/business/dealbook/yahoos-sale-to-verizon-leaves-shareholders-with-little-say.html%26pos%3DBar1%26campaignId%3D6HY7R" target="_blank">
+ <div id="bar1-body">
+ <div id="bar1-headline">The world’s most<br />trusted perspective.</div>
+ <div id="bar1-divider"></div>
+ <div id="bar1-subhead">Get The Times.<br /><span id="bar1-savings">50% off for 1 year.</span></div>
+ <div id="bar1-cta">SUBSCRIBE NOW</div>
+ </div>
+ </a>
+ </li>
+ </ul>
+ </div><a id="subscribe_small" href="http://www.nytimes.com/adx/bin/adx_click.html?type=goto&amp;opzn&amp;page=www.nytimes.com/yr/mo/day/business/dealbook&amp;pos=Bar1&amp;sn2=945033cf/f2814abe&amp;sn1=7d209493/f1a5fc9b&amp;camp=abtest_bar1_pricing_inyt_1116&amp;ad=abtest_pricing_inyt_1116_bar1_ad&amp;goto=http%3A%2F%2Fwww%2Enytimes%2Ecom%2Fsubscriptions%2Finyt%2Flp88U9Y%2Ehtml%3Fadxc%3D284918%26adxa%3D415335%26page%3Dwww.nytimes.com/yr/mo/day/business/dealbook/yahoos-sale-to-verizon-leaves-shareholders-with-little-say.html%26pos%3DBar1%26campaignId%3D" class="subscribe-link" style="visibility: visible;" target="_blank">Subscribe</a>
+ <div id="mkt-floodlight" style="display:inline"></div>
+ <!-- ADXINFO classification="Text_Link" campaign="abtest_bar1_pricing_inyt_1116" priority="9100" isInlineSafe="Y" width="0" height="0" -->
+ <!-- A/B test delivery snippet-->
+ <span class="adxInfo" style="display:none;">campaign: abtest_bar1_pricing_inyt_1116 -- 284918, creative: abtest_pricing_inyt_1116_bar1_ad -- 415335, page: www.nytimes.com/yr/mo/day/business/dealbook/yahoos-sale-to-verizon-leaves-shareholders-with-little-say.html, targetedPage: www.nytimes.com/yr/mo/day/business/dealbook, position: Bar1</span>
+ <span class="abtest-config" style="display:none;" data-path="//static01.nyt.com/ab" data-test="bar1/pricing_inyt_1116" data-image-path="https://static01.nyt.com/adx/images/ADS/41/53/ad.415335" data-experiment-id="5wlqgk1UT-O6xXfUdHOTgQ" data-trackers="{}" data-options="{&quot;bundleData&quot;:[&quot;basic&quot;,&quot;allAccess&quot;,&quot;allAccessPlus&quot;],&quot;currencyClassMap&quot;:{&quot;euro&quot;:&quot;EUR&quot;,&quot;pound&quot;:&quot;UKP&quot;,&quot;aud&quot;:&quot;AUD&quot;,&quot;can&quot;:&quot;CAN&quot;},&quot;loadDelay&quot;:{&quot;tryInterval&quot;:500,&quot;tryCount&quot;:4},&quot;variants&quot;:{&quot;Variation1&quot;:{&quot;currencyData&quot;:{&quot;UKP&quot;:{&quot;currencyCode&quot;:&quot;UKP&quot;,&quot;subHeadSavings&quot;:&quot;As low as &amp;pound;1.50 a week&quot;},&quot;EUR&quot;:{&quot;currencyCode&quot;:&quot;EUR&quot;,&quot;subHeadSavings&quot;:&quot;As low as &amp;euro;1.75 a week&quot;},&quot;AUD&quot;:{&quot;currencyCode&quot;:&quot;AUD&quot;,&quot;subHeadSavings&quot;:&quot;As low as AUD &amp;#36;2.50 a week&quot;},&quot;CAN&quot;:{&quot;currencyCode&quot;:&quot;CAN&quot;,&quot;subHeadSavings&quot;:&quot;As low as CAD &amp;#36;2.50 a week&quot;},&quot;USD&quot;:{&quot;currencyCode&quot;:&quot;USD&quot;,&quot;subHeadSavings&quot;:&quot;As low as $1.88 a week&quot;}}},&quot;Variation2&quot;:{&quot;currencyData&quot;:{&quot;UKP&quot;:{&quot;currencyCode&quot;:&quot;UKP&quot;,&quot;subHeadSavings&quot;:&quot;As low as &amp;pound;3.00 a week&quot;},&quot;EUR&quot;:{&quot;currencyCode&quot;:&quot;EUR&quot;,&quot;subHeadSavings&quot;:&quot;As low as &amp;euro;3.50 a week&quot;},&quot;AUD&quot;:{&quot;currencyCode&quot;:&quot;AUD&quot;,&quot;subHeadSavings&quot;:&quot;As low as AUD &amp;#36;5.00 a week&quot;},&quot;CAN&quot;:{&quot;currencyCode&quot;:&quot;CAN&quot;,&quot;subHeadSavings&quot;:&quot;As low as CAD &amp;#36;5.00 a week&quot;},&quot;USD&quot;:{&quot;currencyCode&quot;:&quot;USD&quot;,&quot;subHeadSavings&quot;:&quot;As low as $3.75 a week&quot;}}},&quot;Variation3&quot;:{&quot;currencyData&quot;:{&quot;UKP&quot;:{&quot;currencyCode&quot;:&quot;UKP&quot;,&quot;subHeadSavings&quot;:&quot;As low as &amp;pound;2.00 a week&quot;},&quot;EUR&quot;:{&quot;currencyCode&quot;:&quot;EUR&quot;,&quot;subHeadSavings&quot;:&quot;As low as &amp;euro;2.25 a week&quot;},&quot;AUD&quot;:{&quot;currencyCode&quot;:&quot;AUD&quot;,&quot;subHeadSavings&quot;:&quot;As low as AUD &amp;#36;3.25 a week&quot;},&quot;CAN&quot;:{&quot;currencyCode&quot;:&quot;CAN&quot;,&quot;subHeadSavings&quot;:&quot;As low as CAD &amp;#36;3.25 a week&quot;},&quot;USD&quot;:{&quot;currencyCode&quot;:&quot;USD&quot;,&quot;subHeadSavings&quot;:&quot;As low as $2.50 a week&quot;}}}},&quot;krux&quot;:{&quot;ctrl&quot;:{&quot;event&quot;:&quot;K8KX7AdT&quot;,&quot;attrs&quot;:{&quot;Control&quot;:&quot;Control&quot;}},&quot;var1&quot;:{&quot;event&quot;:&quot;K8KX7AdT&quot;,&quot;attrs&quot;:{&quot;Var1&quot;:&quot;Var1&quot;}},&quot;var2&quot;:{&quot;event&quot;:&quot;K8KX7AdT&quot;,&quot;attrs&quot;:{&quot;Var2&quot;:&quot;Var2&quot;}},&quot;var3&quot;:{&quot;event&quot;:&quot;K8KX7AdT&quot;,&quot;attrs&quot;:{&quot;Var3&quot;:&quot;Var3&quot;}}},&quot;campaignId&quot;:{&quot;ctrl&quot;:[{&quot;selector&quot;:&quot;#hovercard&quot;,&quot;code&quot;:&quot;6HY9W&quot;},{&quot;selector&quot;:&quot;#nyt-button-sub&quot;,&quot;code&quot;:&quot;6HY9W&quot;}],&quot;var1&quot;:[{&quot;selector&quot;:&quot;#hovercard&quot;,&quot;code&quot;:&quot;6HY7R&quot;},{&quot;selector&quot;:&quot;#nyt-button-sub&quot;,&quot;code&quot;:&quot;6HY7R&quot;}],&quot;var2&quot;:[{&quot;selector&quot;:&quot;#hovercard&quot;,&quot;code&quot;:&quot;6HY4W&quot;},{&quot;selector&quot;:&quot;#nyt-button-sub&quot;,&quot;code&quot;:&quot;6HY4W&quot;}],&quot;var3&quot;:[{&quot;selector&quot;:&quot;#hovercard&quot;,&quot;code&quot;:&quot;6HYHR&quot;},{&quot;selector&quot;:&quot;#nyt-button-sub&quot;,&quot;code&quot;:&quot;6HYHR&quot;}]}}" data-ga-status="live" data-use-build="true" data-loaded="true">
+</span>
+ <script src="//static01.nyt.com/ab/bootstraps/bootstrap.js"></script>
+
+ <script type="text/html" id="pricing_inyt_1116_bar1_style_ctrl">
+ &lt;style&gt;@import url(https://a1.nyt.com/fonts/css/fonts.css);.font-smoothing{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sub_small_hide{display:none}.NYT5Style .masthead-tools{padding-right:0}.NYT5Style .masthead-tools #bar1-3panel{display:inline;vertical-align:top;background-image:none}#bar1-3panel{border:0;position:relative}#bar1-nyt5wrapper{opacity:0}#nyt-button-sub{-moz-box-sizing:border-box;background-color:#6288A5;border:1px solid #4D7B9F;border-radius:3px;color:#fff !important;display:inline-block;font-size:1em;line-height:13px;font-family:franklin-normal-700, sans-serif;font-style:normal;font-weight:700;padding:7px 10px 6px;text-transform:uppercase !important;text-decoration:none}#nyt-button-sub:hover{background-color:#326891;border:1px solid #265E8B;text-decoration:none}.bar1-hidden{margin-right:8px}.NYT4 .bar1-hidden,.NYT4 #bar1-3panel{display:none}#hovercard{width:450px;height:330px;display:none;margin-left:-360px;z-index:1000000152;border:0;position:absolute;left:50%;top:30px;text-align:left;box-shadow:0 0 5px #888;white-space:normal;background:#b0f4c0 url("https://static01.nyt.com/adx/images/ADS/41/53/ad.415335/nyt_logo_428x60.png") 40px 40px no-repeat;background-size:179px 25px;text-transform:none}#bar1-headline{position:absolute;top:81px;left:40px;font-family:karnak-normal-400, sans-serif;font-style:normal;font-weight:400;font-size:30px;line-height:34px;color:#000;font-weight:100;width:300px;text-align:left}#bar1-divider{width:90px;height:2px;border-bottom:2px solid #000;position:absolute;left:40px;top:161px}#bar1-headline span{color:#0ea587}#bar1-subhead{position:absolute;top:180px;left:40px;color:#000;font-family:franklin-normal-300, sans-serif;font-style:normal;font-weight:300;font-size:20px;line-height:25px;width:300px;text-align:left}#bar1-subhead span{font-family:franklin-normal-600, sans-serif;font-weight:600}#bar1-cta{font-family:franklin-normal-700, sans-serif;font-style:normal;font-weight:700;position:absolute;top:250px;left:40px;width:133px;height:37px;background:#000;font-size:13px;line-height:36px;padding:0;text-align:center;text-decoration:none;border-radius:3px;cursor:pointer;color:#fff;text-transform:uppercase;border:0}#hovercard:after{bottom:100%;left:350px;border:solid transparent;content:" ";width:0;height:0;position:absolute;pointer-events:none;border-bottom-color:#b0f4c0;border-width:8px;margin:0}#bar1-offer-msg{font-family:franklin-normal-400, sans-serif;font-style:normal;font-weight:400;position:absolute;top:270px;left:40px !important;width:150px;height:30px;font-size:11px;line-height:15px;padding:0;text-decoration:none;color:#363636}#hovercard hr{margin:4px;width:320px;opacity:0.5;color:#000}.hover-subhead{font-family:franklin-normal-500, sans-serif;font-style:normal;font-weight:500;font-size:11px;line-height:13px;color:#333;margin:1px 0 0;width:170px;position:absolute;top:10px}#hovercard h3 a,#hovercard p a{color:#000 !important;text-decoration:none;display:block}a.nyt-button-actions{background:#f7f7f5;color:#58595b !important;width:126px;border-radius:3px;border:1px solid #ccc !important;text-transform:uppercase;font-family:franklin-normal-500, sans-serif;font-style:normal;font-weight:500;font-size:11px;line-height:15px;text-align:center;padding:6px 0;cursor:pointer;display:block;position:absolute;top:10px;left:194px;text-decoration:none !important}#hovercard a.nyt-button-actions:hover{background:#3c6791;color:#fff !important;text-decoration:none !important}#hovercard a.nyt-button-actions.highlightButton:link,#hovercard a.nyt-button-actions.highlightButton:visited{color:#fff !important;background:#3c6791;text-decoration:none !important}a.split-all-button{background:#f3f3f4;width:345px;height:30px;position:absolute;bottom:0;font-family:franklin-normal-500, sans-serif;font-style:normal;font-weight:500;font-size:11px;line-height:30px;margin:0;border:1px solid #CCC;text-align:center;vertical-align:middle}#hovercard a.split-all-button:hover{background:#fff;color:#004276 !important;text-decoration:underline !important}.NYT5Style #hovercard{top:26px}.ad.bar1-ad a.bar1-introtext,#memberTools .bar1-introtext,.masthead-tools a.bar1-introtext{text-decoration:none;color:#666}.masthead-tools a.bar1-introtext{position:relative;margin-top:2px}.bar1-introtext{padding-right:5px}.ad.bar1-ad .user-subscriptions-menu li a{padding-left:0;border-left:0}@media screen and (-webkit-min-device-pixel-ratio: 0){.NYT5Style #hovercard{left:50%;top:29px}.NYT5Style #hovercard:before{top:-14px}}#interactiveABC #bar1-3panel{display:none} &lt;/style&gt;
+ </script>
+
+ <script type="text/html" id="pricing_inyt_1116_bar1_ctrl">
+ &lt;div id="bar1-nyt5wrapper" class="user-subscriptions-group" data-campaign-name="abtest_bar1_pricing_inyt_1116"&gt;&lt;ul class="user-subscriptions-menu"&gt;&lt;li class="bar1-hidden"&gt;&lt;span class="bar1--meter--count"&gt;1&lt;/span&gt; of 10 articles read&lt;/li&gt;&lt;li id="bar1-3panel" class="user-subscriptions-menu user-subscriptions-group bar1_hover"&gt;&lt;a id="nyt-button-sub" href="http://www.nytimes.com/adx/bin/adx_click.html?type=goto&amp;opzn&amp;page=www.nytimes.com/yr/mo/day/business/dealbook&amp;pos=Bar1&amp;sn2=945033cf/f2814abe&amp;sn1=7d209493/f1a5fc9b&amp;camp=abtest_bar1_pricing_inyt_1116&amp;ad=abtest_pricing_inyt_1116_bar1_ad&amp;goto=http%3A%2F%2Fwww%2Enytimes%2Ecom%2Fsubscriptions%2Finyt%2Flp88U9Y%2Ehtml%3Fadxc%3D284918%26adxa%3D415335%26page%3Dwww.nytimes.com/yr/mo/day/business/dealbook/yahoos-sale-to-verizon-leaves-shareholders-with-little-say.html%26pos%3DBar1%26campaignId%3D" target="_blank" data-content-collection="" data-content-placement="1" style="display:none"&gt;SUBSCRIBE NOW&lt;/a&gt; &lt;a id="hovercard" class="font-smoothing" data-campaign-name="abtest_bar1_pricing_inyt_1116" href="http://www.nytimes.com/adx/bin/adx_click.html?type=goto&amp;opzn&amp;page=www.nytimes.com/yr/mo/day/business/dealbook&amp;pos=Bar1&amp;sn2=945033cf/f2814abe&amp;sn1=7d209493/f1a5fc9b&amp;camp=abtest_bar1_pricing_inyt_1116&amp;ad=abtest_pricing_inyt_1116_bar1_ad&amp;goto=http%3A%2F%2Fwww%2Enytimes%2Ecom%2Fsubscriptions%2Finyt%2Flp88U9Y%2Ehtml%3Fadxc%3D284918%26adxa%3D415335%26page%3Dwww.nytimes.com/yr/mo/day/business/dealbook/yahoos-sale-to-verizon-leaves-shareholders-with-little-say.html%26pos%3DBar1%26campaignId%3D" target="_blank"&gt;&lt;div id="bar1-body"&gt;&lt;div id="bar1-headline"&gt;The world&amp;rsquo;s most&lt;br&gt;trusted perspective.&lt;/div&gt;&lt;div id="bar1-divider"&gt;&lt;/div&gt;&lt;div id="bar1-subhead"&gt;Get The Times.&lt;br&gt;&lt;span id="bar1-savings"&gt;50% off for 1 year.&lt;/span&gt;&lt;/div&gt;&lt;div id="bar1-cta"&gt;SUBSCRIBE NOW&lt;/div&gt;&lt;/div&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;a id="subscribe_small" href="http://www.nytimes.com/adx/bin/adx_click.html?type=goto&amp;opzn&amp;page=www.nytimes.com/yr/mo/day/business/dealbook&amp;pos=Bar1&amp;sn2=945033cf/f2814abe&amp;sn1=7d209493/f1a5fc9b&amp;camp=abtest_bar1_pricing_inyt_1116&amp;ad=abtest_pricing_inyt_1116_bar1_ad&amp;goto=http%3A%2F%2Fwww%2Enytimes%2Ecom%2Fsubscriptions%2Finyt%2Flp88U9Y%2Ehtml%3Fadxc%3D284918%26adxa%3D415335%26page%3Dwww.nytimes.com/yr/mo/day/business/dealbook/yahoos-sale-to-verizon-leaves-shareholders-with-little-say.html%26pos%3DBar1%26campaignId%3D" class="subscribe-link sub_small_hide" style="visibility:hidden" target="_blank"&gt;Subscribe&lt;/a&gt;&lt;div id="mkt-floodlight" style="display:inline"&gt;&lt;/div&gt;
+ </script>
+
+ <!--end A/B test delivery snippet-->
+ </div>
+ <div id="sharetools-masthead" aria-label="tools" role="group" class="sharetools theme-classic sharetools-masthead " data-shares="facebook,twitter,email,show-all,save" data-url="http://www.nytimes.com/2016/07/30/business/dealbook/yahoos-sale-to-verizon-leaves-shareholders-with-little-say.html" data-title="Yahoo’s Sale to Verizon Leaves Shareholders With Little Say" data-author="By STEVEN DAVIDOFF SOLOMON" data-media="https://static01.nyt.com/images/2016/07/30/business/db-dealprof/db-dealprof-jumbo.jpg" data-description="The internet giant’s decision to sell its business is plagued with challenges that reveal how unusual deal structures can affect shareholders." data-publish-date="July 29, 2016" data-share-tools-initialized="1">
+ <div class="ad sharetools-inline-article-ad hidden nocontent robots-nocontent">
+ </div>
+ <ul class="sharetools-menu">
+ <li class="sharetool facebook-sharetool"><a href="javascript:;" data-share="facebook" data-modal-title=""><i class="icon sprite-icon"></i><span class="sharetool-text ">Share</span></a></li>
+ <li class="sharetool twitter-sharetool"><a href="javascript:;" data-share="twitter" data-modal-title=""><i class="icon sprite-icon"></i><span class="sharetool-text ">Tweet</span></a></li>
+ <li class="sharetool email-sharetool"><a href="javascript:;" data-share="email" data-modal-title="Log in to email"><i class="icon sprite-icon"></i><span class="sharetool-text ">Email</span></a></li>
+ <li class="sharetool show-all-sharetool"><a href="javascript:;" data-share="show-all" data-modal-title=""><i class="icon sprite-icon"></i><span class="sharetool-text ">More</span></a></li>
+ <li class="sharetool save-sharetool"><a href="javascript:;" data-share="save" data-modal-title="Log in to save"><i class="icon sprite-icon"></i><span class="sharetool-text ">Save</span></a></li>
+ </ul>
+ </div>
+ <!-- close shareTools -->
+ <button class="button search-button"><i class="icon sprite-icon"></i><span class="button-text">Search</span></button>
+ <div class="user-tools-button-group button-group">
+ <button class="button subscribe-button hidden" data-href="http://www.nytimes.com/subscriptions/Multiproduct/lp3004.html?campaignId=4XUYF">Subscribe Now</button>
+ <button class="button login-button login-modal-trigger">Log In</button>
+ <button class="button notifications-button hidden"><i class="icon sprite-icon"></i><span class="button-text">0</span></button>
+ <button class="button user-settings-button"><i class="icon sprite-icon"></i><span class="button-text">Settings</span></button>
+ </div>
+ <!-- close user-tools-button-group -->
+ </div>
+ <!-- close user-tools -->
+ </div>
+ <!-- close container -->
+ <div class="search-flyout-panel flyout-panel">
+ <button class="button close-button" type="button"><i class="icon"></i><span class="visually-hidden">Close search</span></button>
+ <nav class="search-form-control form-control layout-horizontal">
+ <h2 class="visually-hidden">Site Search Navigation</h2>
+ <form class="search-form" role="search">
+ <div class="control">
+ <div class="label-container visually-hidden">
+ <label for="search-input">Search NYTimes.com</label>
+ </div>
+ <div class="field-container">
+ <input id="search-input" name="search-input" class="search-input text" autocomplete="off" type="text" />
+
+ <button type="button" class="button clear-button" tabindex="-1" aria-describedby="clear-search-input"><i class="icon"></i><span id="clear-search-input" class="visually-hidden">Clear this text input</span></button>
+ <div class="auto-suggest" style="display: none;">
+ <ol></ol>
+ </div>
+ <button class="button submit-button disabled" type="submit">Go</button>
+ </div>
+ </div>
+ <!-- close control -->
+ </form>
+ </nav>
+
+
+ </div>
+ <!-- close flyout-panel -->
+ <div id="notification-modals" class="notification-modals"></div>
+ <span class="story-short-url"><a href="http://nyti.ms/2aAVVjl">http://nyti.ms/2aAVVjl</a></span></header>
+ <nav id="ribbon" class="ribbon ribbon-start nocontent robots-nocontent" aria-hidden="true">
+ <div class="nocontent robots-nocontent">
+ <ol class="ribbon-menu" style="width: 7077px; left: 0px;">
+ <li class="collection news-collection">
+
+ <div class="collection-marker past-left-border">
+ <h2 class="collection-label"><a href="http://www.nytimes.com/pages/business/dealbook/index.html">DealBook</a></h2>
+ </div>
+
+ <ol class="collection-menu">
+ <li class="collection-item " style="opacity: 1; margin-left: 0px;">
+ <a class="story-link" href="//www.nytimes.com/2017/01/12/business/dealbook/justice-department-corporate-crime.html?ribbon-ad-idx=2&amp;rref=business/dealbook">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/13/business/13DB-WHITECOLLAR3/13DB-WHITECOLLAR3-thumbStandard.jpg" alt="" />
+ <div class="media-action-overlay">
+
+ <i class="icon sprite-icon image-icon"></i>
+ <span class="overlay-text visually-hidden"></span>
+
+ </div>
+ </div>
+ <h2 class="story-heading long-story-heading" title="Justice Department Toughened Approach on Corporate Crime, but Will That Last?">Justice Department Toughened Approach on Corporate Crime, but Will That Last?</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item " style="opacity: 1; margin-left: 0px;">
+ <a class="story-link" href="//www.nytimes.com/2017/01/12/business/economy/amazon-jobs-retail.html?ribbon-ad-idx=2&amp;rref=business/dealbook">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/13/business/13AMAZON/13AMAZON-thumbStandard.jpg" alt="" />
+ <div class="media-action-overlay">
+
+ <i class="icon sprite-icon image-icon"></i>
+ <span class="overlay-text visually-hidden"></span>
+
+ </div>
+ </div>
+ <h2 class="story-heading" title="Amazon to Add 100,000 Jobs as Bricks-and-Mortar Retail Crumbles">Amazon to Add 100,000 Jobs as Bricks-and-Mortar Retail Crumbles</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item ribbon-ad-container hidden" style="opacity: 1; margin-left: 0px;">
+ <div id="Ribbon" class="ad ribbon-ad hidden" data-google-query-id="CJC7_MXkvtECFVAdvAodMLMHGQ" style="display: none;">
+ <div id="google_ads_iframe_/29390238/NYT/business/dealbook_8__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/29390238/NYT/business/dealbook_8" title="3rd party ad content" name="google_ads_iframe_/29390238/NYT/business/dealbook_8" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" srcdoc="" width="244" height="75" frameborder="0"></iframe></div><iframe id="google_ads_iframe_/29390238/NYT/business/dealbook_8__hidden__" title="" name="google_ads_iframe_/29390238/NYT/business/dealbook_8__hidden__" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom; visibility: hidden; display: none;" srcdoc="" width="0" height="0" frameborder="0"></iframe></div>
+ </li>
+ <li class="collection-item " style="opacity: 0.990239; margin-left: 0.976119px;">
+ <a class="story-link" href="//www.nytimes.com/2017/01/12/business/andrew-puzder-labor-senate.html?ribbon-ad-idx=2&amp;rref=business/dealbook">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+ <h2 class="story-heading" title="Democrats and Allies Wage Fight to Derail Labor Secretary Pick">Democrats and Allies Wage Fight to Derail Labor Secretary Pick</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item " style="opacity: 0.88609; margin-left: 11.391px;">
+ <a class="story-link" href="//www.nytimes.com/2017/01/12/upshot/make-america-great-again-isnt-just-about-money-and-power.html?ribbon-ad-idx=2&amp;rref=business/dealbook">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/15/business/15view/15view-thumbStandard.jpg" alt="" />
+ <div class="media-action-overlay">
+
+ <i class="icon sprite-icon image-icon"></i>
+ <span class="overlay-text visually-hidden"></span>
+
+ </div>
+ </div>
+
+ <h3 class="kicker">Economic View</h3>
+ <h2 class="story-heading" title="Making America Great Again Isn’t Just About Money and Power">Making America Great Again Isn’t Just About Money and Power</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item " style="opacity: 0.753554; margin-left: 24.6446px;">
+ <a class="story-link" href="//www.nytimes.com/2017/01/12/business/dealbook/big-pharma-on-the-hot-seat.html?ribbon-ad-idx=2&amp;rref=business/dealbook">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+
+ <h3 class="kicker">Breakingviews</h3>
+ <h2 class="story-heading" title="Big Pharma on the Hot Seat">Big Pharma on the Hot Seat</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item " style="opacity: 0.632883; margin-left: 36.7117px;">
+ <a class="story-link" href="//www.nytimes.com/2017/01/12/business/epa-emissions-cheating-diesel-fiat-chrysler-jeep-dodge.html?ribbon-ad-idx=2&amp;rref=business/dealbook">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/16/business/13CHRYSER-01/13CHRYSER-01-thumbStandard.jpg" alt="" />
+ <div class="media-action-overlay">
+
+ <i class="icon sprite-icon image-icon"></i>
+ <span class="overlay-text visually-hidden"></span>
+
+ </div>
+ </div>
+ <h2 class="story-heading" title="E.P.A. Accuses Fiat Chrysler of Secretly Violating Emissions Standards">E.P.A. Accuses Fiat Chrysler of Secretly Violating Emissions Standards</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item " style="opacity: 0.532266; margin-left: 46.7734px;">
+ <a class="story-link" href="//www.nytimes.com/2017/01/12/business/dealbook/eyeing-emergency-exits-from-mergers-in-anxious-times.html?ribbon-ad-idx=2&amp;rref=business/dealbook">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+
+ <h3 class="kicker">Breakingviews</h3>
+ <h2 class="story-heading" title="Eyeing Emergency Exits From Mergers in Anxious Times">Eyeing Emergency Exits From Mergers in Anxious Times</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item " style="opacity: 0.450601; margin-left: 54.9399px;">
+ <a class="story-link" href="//www.nytimes.com/2017/01/12/business/goldman-sachs-completes-return-from-wilderness-to-the-white-house.html?ribbon-ad-idx=2&amp;rref=business/dealbook">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/12/business/13STEWART/13STEWART-thumbStandard.jpg" alt="" />
+ <div class="media-action-overlay">
+
+ <i class="icon sprite-icon image-icon"></i>
+ <span class="overlay-text visually-hidden"></span>
+
+ </div>
+ </div>
+
+ <h3 class="kicker">Common Sense</h3>
+ <h2 class="story-heading" title="Goldman Sachs Completes Return From Wilderness to the White House">Goldman Sachs Completes Return From Wilderness to the White House</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item " style="opacity: 0.384666; margin-left: 61.5334px;">
+ <a class="story-link" href="//www.nytimes.com/2017/01/12/arts/design/guy-wildenstein-is-cleared-of-money-laundering-charges.html?ribbon-ad-idx=2&amp;rref=business/dealbook">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/13/arts/13FRAUD/13FRAUD-thumbStandard-v2.jpg" alt="" />
+ <div class="media-action-overlay">
+
+ <i class="icon sprite-icon image-icon"></i>
+ <span class="overlay-text visually-hidden"></span>
+
+ </div>
+ </div>
+ <h2 class="story-heading" title="The Billionaire Art Dealer Guy Wildenstein Is Cleared of Tax Fraud">The Billionaire Art Dealer Guy Wildenstein Is Cleared of Tax Fraud</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item " style="opacity: 0.331247; margin-left: 66.8753px;">
+ <a class="story-link" href="//www.nytimes.com/2017/01/12/business/dealbook/trump-mnuchin-tillerson-thiel-volkswagen.html?ribbon-ad-idx=2&amp;rref=business/dealbook">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/13/world/13DB-NEWSLETTER-1/13DB-NEWSLETTER-1-thumbStandard.jpg" alt="" />
+ <div class="media-action-overlay">
+
+ <i class="icon sprite-icon image-icon"></i>
+ <span class="overlay-text visually-hidden"></span>
+
+ </div>
+ </div>
+ <h2 class="story-heading long-story-heading" title="Morning Agenda: The Transition, Cabinet Nominees and ‘Star Wars’ vs. ‘Star Trek’">Morning Agenda: The Transition, Cabinet Nominees and ‘Star Wars’ vs. ‘Star Trek’</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item " style="opacity: 0.287657; margin-left: 71.2343px;">
+ <a class="story-link" href="//www.nytimes.com/2017/01/11/business/dealbook/steven-mnuchin-treasury-secretary-nominee-donald-trump.html?ribbon-ad-idx=2&amp;rref=business/dealbook">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/12/us/12DB-Mnuchin/12DB-Mnuchin-thumbStandard.jpg" alt="" />
+ <div class="media-action-overlay">
+
+ <i class="icon sprite-icon image-icon"></i>
+ <span class="overlay-text visually-hidden"></span>
+
+ </div>
+ </div>
+ <h2 class="story-heading" title="A Financial Mystery Emerges. Its Name? Steven T. Mnuchin Inc.">A Financial Mystery Emerges. Its Name? Steven T. Mnuchin Inc.</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item " style="opacity: 0.251784; margin-left: 74.8216px;">
+ <a class="story-link" href="//www.nytimes.com/2017/01/11/business/dealbook/chris-rokos-capital-management-hedge-funds.html?ribbon-ad-idx=2&amp;rref=business/dealbook">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/12/business/12DB-ROKOS3/12DB-ROKOS3-thumbStandard.jpg" alt="" />
+ <div class="media-action-overlay">
+
+ <i class="icon sprite-icon image-icon"></i>
+ <span class="overlay-text visually-hidden"></span>
+
+ </div>
+ </div>
+ <h2 class="story-heading" title="Chris Rokos Is Said to Be Seeking to Raise More Than $2 Billion">Chris Rokos Is Said to Be Seeking to Raise More Than $2 Billion</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item " style="opacity: 0.221997; margin-left: 77.8003px;">
+ <a class="story-link" href="//www.nytimes.com/2017/01/11/business/dealbook/jpmorgan-chase-johnny-burris-whistleblower.html?ribbon-ad-idx=2&amp;rref=business/dealbook">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/12/business/12DB-BROKER1/12DB-BROKER1-thumbStandard.jpg" alt="" />
+ <div class="media-action-overlay">
+
+ <i class="icon sprite-icon image-icon"></i>
+ <span class="overlay-text visually-hidden"></span>
+
+ </div>
+ </div>
+ <h2 class="story-heading" title="JPMorgan Ordered to Pay Damages for Firing Whistle-Blower">JPMorgan Ordered to Pay Damages for Firing Whistle-Blower</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item " style="opacity: 0.197049; margin-left: 80.2951px;">
+ <a class="story-link" href="//www.nytimes.com/2017/01/09/business/dealbook/critics-say-trump-appointees-can-dodge-a-huge-tax-bill-thats-not-the-case.html?ribbon-ad-idx=2&amp;rref=business/dealbook">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/10/business/10DB-SORKIN/10DB-SORKIN-thumbStandard.jpg" alt="" />
+ <div class="media-action-overlay">
+
+ <i class="icon sprite-icon image-icon"></i>
+ <span class="overlay-text visually-hidden"></span>
+
+ </div>
+ </div>
+
+ <h3 class="kicker">DealBook</h3>
+ <h2 class="story-heading" title="Critics Say Trump Appointees Can Dodge a Huge Tax Bill. That’s Not the Case.">Critics Say Trump Appointees Can Dodge a Huge Tax Bill. That’s Not...</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item " style="opacity: 0.175979; margin-left: 82.4021px;">
+ <a class="story-link" href="//www.nytimes.com/2017/01/09/business/dealbook/under-new-chairman-sec-enforcer-role-might-shrink.html?ribbon-ad-idx=2&amp;rref=business/dealbook">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/05/business/05db-sec2/05db-sec2-thumbStandard.jpg" alt="" />
+ <div class="media-action-overlay">
+
+ <i class="icon sprite-icon image-icon"></i>
+ <span class="overlay-text visually-hidden"></span>
+
+ </div>
+ </div>
+
+ <h3 class="kicker">White Collar Watch</h3>
+ <h2 class="story-heading" title="Under New Chairman, S.E.C. Enforcer Role Might Shrink">Under New Chairman, S.E.C. Enforcer Role Might Shrink</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item " style="opacity: 0.158045; margin-left: 84.1955px;">
+ <a class="story-link" href="//www.nytimes.com/2017/01/02/business/dealbook/mergers.html?ribbon-ad-idx=2&amp;rref=business/dealbook">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/02/business/A-Big-Year-for-Deals-but-a-Decline-From-a-Record-2015-1483388712669/A-Big-Year-for-Deals-but-a-Decline-From-a-Record-2015-1483388712669-thumbStandard.png" alt="" />
+ <div class="media-action-overlay">
+
+ <i class="icon sprite-icon image-icon"></i>
+ <span class="overlay-text visually-hidden"></span>
+
+ </div>
+ </div>
+ <h2 class="story-heading" title="For Non-Tech Companies, if You Can’t Build It, Buy a Start-Up">For Non-Tech Companies, if You Can’t Build It, Buy a Start-Up</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item " style="opacity: 0.142667; margin-left: 85.7333px;">
+ <a class="story-link" href="//www.nytimes.com/2016/12/30/business/dealbook/deutsche-bank-flew-and-fell-some-paid-a-high-price.html?ribbon-ad-idx=2&amp;rref=business/dealbook">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/01/business/01DB-DEUTSCHE/01DB-DEUTSCHE-thumbStandard.jpg" alt="" />
+ <div class="media-action-overlay">
+
+ <i class="icon sprite-icon image-icon"></i>
+ <span class="overlay-text visually-hidden"></span>
+
+ </div>
+ </div>
+ <h2 class="story-heading" title="Deutsche Bank Flew and Fell. Some Paid a High Price.">Deutsche Bank Flew and Fell. Some Paid a High Price.</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item " style="opacity: 0.129393; margin-left: 87.0607px;">
+ <a class="story-link" href="//www.nytimes.com/2016/12/26/business/dealbook/seller-financed-home-sales-poor-people-lead-paint.html?ribbon-ad-idx=2&amp;rref=business/dealbook">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2016/12/23/business/00db-lead2/00db-lead2-thumbStandard-v2.jpg" alt="" />
+ <div class="media-action-overlay">
+
+ <i class="icon sprite-icon image-icon"></i>
+ <span class="overlay-text visually-hidden"></span>
+
+ </div>
+ </div>
+ <h2 class="story-heading" title="Seller-Financed Deals Are Putting Poor People in Lead-Tainted Homes">Seller-Financed Deals Are Putting Poor People in Lead-Tainted Homes</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item " style="opacity: 0.117861; margin-left: 88.2139px;">
+ <a class="story-link" href="//www.nytimes.com/2016/12/24/business/dealbook/private-equity-water.html?ribbon-ad-idx=2&amp;rref=business/dealbook">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2016/12/28/business/db-pewater-illo/db-pewater-illo-thumbStandard.gif" alt="" />
+ <div class="media-action-overlay">
+
+ <i class="icon sprite-icon image-icon"></i>
+ <span class="overlay-text visually-hidden"></span>
+
+ </div>
+ </div>
+
+ <h3 class="kicker">Bottom Line Nation | Part 5</h3>
+ <h2 class="story-heading" title="In American Towns, Private Profits From Public Works">In American Towns, Private Profits From Public Works</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ <li class="collection-item last-collection-item " style="opacity: 0.107784; margin-left: 89.2216px;">
+ <a class="story-link" href="//www.nytimes.com/reuters/2017/01/13/business/13reuters-boeing-spicejet.html?ribbon-ad-idx=2&amp;rref=business/dealbook">
+ <div class="story-container">
+ <article class="story theme-summary">
+
+ <h2 class="story-heading" title="SpiceJet to Buy 100 New Boeing Planes, Eyes India Expansion">SpiceJet to Buy 100 New Boeing Planes, Eyes India Expansion</h2>
+ </article>
+ </div>
+ </a>
+ </li>
+ </ol>
+ </li>
+ <li class="collection ribbon-loader">
+ <div class="loader loader-t-logo-32x32-ecedeb-ffffff"><span class="visually-hidden">Loading...</span></div>
+ </li>
+ </ol>
+ <div class="ribbon-navigation-container">
+ <nav class="ribbon-navigation next">
+ <span class="visually-hidden">See next articles</span>
+ <div class="arrow arrow-right">
+ <div class="arrow-conceal"></div>
+ </div>
+ </nav>
+ <nav class="ribbon-navigation previous inactive">
+ <span class="visually-hidden">See previous articles</span>
+ <div class="arrow arrow-left">
+ <div class="arrow-conceal"></div>
+ </div>
+ </nav>
+ </div>
+ </div>
+ <!-- close nocontent -->
+ <div class="collection-marker first-collection-marker">
+ <h2 class="collection-label"><a href="http://www.nytimes.com/pages/business/dealbook/index.html">DealBook</a></h2>
+ </div>
+ </nav>
+
+ <script type="text/javascript">
+ if (window.magnum & amp; & amp; window.magnum.serverRibbon & amp; & amp; window.magnum.getFlags().indexOf('serverRibbonTest') !== -1 & amp; & amp; window.NYTD.Abra('www-server-ribbon-test') === 'variant1') {
+ window.magnum.serverRibbon();
+ }
+ </script>
+ <nav id="navigation" class="navigation">
+ <h2 class="visually-hidden">Site Navigation</h2>
+ <div class="sections">
+
+
+ <div class="section ">
+ <ul class="menu" role="menubar">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-A963B567-7D3D-4D0C-9E47-BF91609EFCE7" class="domestic " role="menuitem" href="http://www.nytimes.com">
+Home Page
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-F4E6EDF7-81C6-4DB2-8EB9-5A5E8A95CEC1" class="international " role="menuitem" href="http://international.nytimes.com/?iht">
+Home Page
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-9A43D8FC-F4CF-44D9-9B34-138D30468F8F" class=" expandable" role="menuitem" href="http://www.nytimes.com/pages/world/index.html" aria-haspopup="true" aria-expanded="false">
+World
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-23FD6C8B-62D5-4CEA-A331-6C2A9A1223BE" class=" expandable" role="menuitem" href="http://www.nytimes.com/pages/national/index.html" aria-haspopup="true" aria-expanded="false">
+U.S.
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-80E6DEE6-87E4-4AD0-9152-14FA6B07E5AB" class=" expandable" role="menuitem" href="http://www.nytimes.com/pages/politics/index.html" aria-haspopup="true" aria-expanded="false">
+Politics
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-C4DC8C0C-E148-4201-BF10-82F1C903DBFB" class=" expandable" role="menuitem" href="http://www.nytimes.com/pages/nyregion/index.html" aria-haspopup="true" aria-expanded="false">
+N.Y.
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-104D1E63-9701-497B-8CF4-A4D120C9014E" class="domestic expandable" role="menuitem" href="http://www.nytimes.com/pages/business/index.html" aria-haspopup="true" aria-expanded="false">
+Business
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-A257D89A-0D3C-40AF-9C34-1A25A7947D94" class="international expandable" role="menuitem" href="http://www.nytimes.com/pages/business/international/index.html" aria-haspopup="true" aria-expanded="false">
+Business
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-AD8090D7-4137-4D71-84C8-70DA3BD89778" class="domestic expandable" role="menuitem" href="http://www.nytimes.com/pages/opinion/index.html" aria-haspopup="true" aria-expanded="false">
+Opinion
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-09736473-CB3F-4B2F-9772-3AF128ABE12D" class="international expandable" role="menuitem" href="http://www.nytimes.com/pages/opinion/international/index.html" aria-haspopup="true" aria-expanded="false">
+Opinion
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-78FBAD45-31A9-4EC7-B172-7D62A2B9955E" class=" expandable" role="menuitem" href="http://www.nytimes.com/pages/technology/index.html" aria-haspopup="true" aria-expanded="false">
+Tech
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-A4B35924-DB6C-4EA3-997D-450810F4FEE6" class=" expandable" role="menuitem" href="http://www.nytimes.com/section/science" aria-haspopup="true" aria-expanded="false">
+Science
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-7D6BE1AF-8CD8-430B-8B2A-17CD0EAA99AC" class=" expandable" role="menuitem" href="http://www.nytimes.com/pages/health/index.html" aria-haspopup="true" aria-expanded="false">
+Health
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-DE2B278B-2783-4506-AAD5-C15A5BB6DA1A" class="domestic expandable" role="menuitem" href="http://www.nytimes.com/pages/sports/index.html" aria-haspopup="true" aria-expanded="false">
+Sports
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-BE66F420-C51B-461D-B487-CACF62E94AAE" class="international expandable" role="menuitem" href="http://www.nytimes.com/pages/sports/international/index.html" aria-haspopup="true" aria-expanded="false">
+Sports
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+
+ </ul>
+ </div>
+
+ <div class="section ">
+ <ul class="menu" role="menubar">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-C5BFA7D5-359C-427B-90E6-6B7245A6CDD8" class="domestic expandable" role="menuitem" href="http://www.nytimes.com/pages/arts/index.html" aria-haspopup="true" aria-expanded="false">
+Arts
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-0202D0E4-C59B-479A-BD42-6F1766459781" class="international expandable" role="menuitem" href="http://www.nytimes.com/pages/arts/international/index.html" aria-haspopup="true" aria-expanded="false">
+Arts
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-B3DFBD82-F298-43B3-9458-219B4F6AA2A5" class="domestic expandable" role="menuitem" href="http://www.nytimes.com/pages/fashion/index.html" aria-haspopup="true" aria-expanded="false">
+Fashion &amp; Style
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-CC9E2674-F6C4-4A39-813B-F5AB0C515CEA" class="international expandable" role="menuitem" href="http://www.nytimes.com/pages/style/international/index.html" aria-haspopup="true" aria-expanded="false">
+Fashion &amp; Style
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-D9C94A2B-0364-4D25-8383-592CC66F82D4" class="domestic expandable" role="menuitem" href="http://www.nytimes.com/pages/dining/index.html" aria-haspopup="true" aria-expanded="false">
+Food
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-FDEFB811-B483-4C3D-A25A-FD07BE5EAD96" class="international expandable" role="menuitem" href="http://www.nytimes.com/pages/dining/international/index.html" aria-haspopup="true" aria-expanded="false">
+Food
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-FDA10AC4-4738-4099-91E8-15584765C8D7" class=" " role="menuitem" href="http://www.nytimes.com/section/travel">
+Travel
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-E57A148E-0CB9-4C02-966D-28B119710151" class=" " role="menuitem" href="http://www.nytimes.com/pages/magazine/index.html">
+Magazine
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-052C33AD-1404-4DB6-AA70-0901DB1AD95B" class=" " role="menuitem" href="http://www.nytimes.com/section/t-magazine">
+T Magazine
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-92720057-BCB6-4BDB-9351-12F29393259F" class=" expandable" role="menuitem" href="http://www.nytimes.com/section/realestate" aria-haspopup="true" aria-expanded="false">
+Real Estate
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-CEDDB6A8-F7E1-47A2-AC53-E28C616DFCD5" class=" " role="menuitem" href="http://www.nytimes.com/pages/obituaries/index.html">
+Obituaries
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-432A1823-3F24-43C0-8004-79088F94E754" class=" expandable" role="menuitem" href="http://www.nytimes.com/video" aria-haspopup="true" aria-expanded="false">
+Video
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-D64FAE4C-4425-4E5A-B898-6C8CB59F9957" class=" " role="menuitem" href="http://www.nytimes.com/upshot/">
+The Upshot
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-0442C365-4B63-4B63-B9DE-3C28319CB622" class=" expandable" role="menuitem" tabindex="0" aria-haspopup="true" aria-expanded="false">
+Conferences
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+
+ </ul>
+ </div>
+
+ <div class="section ">
+ <ul class="menu" role="menubar">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-5C13EEDD-D905-4D8C-A284-6859EA434563" class=" " role="menuitem" href="http://www.nytimes.com/crosswords/">
+Crossword
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-99C17804-A343-4A76-BF04-F5793ADA48D1" class=" " role="menuitem" href="http://www.nytimes.com/times-insider">
+Times Insider
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-614CE30F-3D4A-4194-9C6F-AE5901C5762D" class=" " role="menuitem" href="http://www.nytimes.com/section/learning">
+The Learning Network
+
+</a>
+ </li>
+
+
+
+ </ul>
+ </div>
+
+ <div class="section hidden">
+ <ul class="menu" role="menubar">
+
+ <li role="presentation" class="hidden">
+ <a id="navId-8FB1308A-FFE4-4BED-ADF6-659A680D0884" class=" " role="menuitem" href="http://www.nytimes.com/pages/multimedia/index.html">
+Multimedia
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-108F7745-BAD9-4630-87BB-4FB4ED7CAA11" class=" " role="menuitem" href="http://lens.blogs.nytimes.com/">
+Photography
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-EDCE4B29-2B91-4241-82E6-C972E9449F49" class=" " role="menuitem" href="http://www.nytimes.com/podcasts/">
+Podcasts
+
+</a>
+ </li>
+
+
+
+ </ul>
+ </div>
+
+ <div class="section hidden">
+ <ul class="menu" role="menubar">
+
+ <li role="presentation" class="hidden">
+ <a id="navId-6101A43A-8BDE-45FF-AAD5-EF7396F83AC9" class=" " role="menuitem" href="https://www.nytimes.com/store/?&amp;t=qry542&amp;utm_source=nytimes&amp;utm_medium=HPB&amp;utm_content=hp_browsetree&amp;utm_campaign=NYT-HP&amp;module=SectionsNav&amp;action=click&amp;region=TopBar&amp;version=BrowseTree&amp;contentCollection=NYT%20Store&amp;contentPlacement=2&amp;pgtype=Homepage">
+NYT Store
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-52A8A3F2-F138-425B-A63F-722E2BBC9372" class=" " role="menuitem" href="http://www.nytwineclub.com">
+NYT Wine Club
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-081347DE-FF02-4B6C-889B-9AE59F391833" class=" " role="menuitem" href="http://nytedu.com">
+nytEducation
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-797F8D17-1632-435D-B3DB-708FC4B4BAEF" class=" " role="menuitem" href="http://www.nytimes.com/times-journeys/?utm_source=nytimes&amp;utm_medium=HPLink&amp;utm_content=hp_browsetree&amp;utm_campaign=NYT-HP&amp;module=SectionsNav&amp;action=click&amp;region=TopBar&amp;version=BrowseTree&amp;contentCollection=Times%20Journeys&amp;contentPlacement=2&amp;pgtype=Homepage">
+Times Journeys
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-53CB229C-5F34-4C32-8B8C-6F7B7626BBDD" class=" " role="menuitem" href="https://www.chefd.com/pages/new-york-times-cooking-meal-plan?utm_campaign=web1_20160617&amp;utm_medium=partner&amp;utm_source=nyt">
+Meal Kits
+
+</a>
+ </li>
+
+
+
+ </ul>
+ </div>
+
+ <div class="section hidden">
+ <ul class="menu" role="menubar">
+
+ <li role="presentation" class="hidden">
+ <a id="navId-FED853D9-D192-46F6-8D18-447803EB4A7B" class=" " role="menuitem" href="http://www.nytimes.com/seeallnav">
+Subscribe
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-61E9BFEA-F509-4BCA-ADC6-32C5A30B83FD" class=" " role="menuitem" href="http://www.nytimes.com/membercenter">
+Manage Account
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-0DAA7CFE-196B-4878-B899-5363070098EC" class=" " role="menuitem" href="http://www.nytimes.com/pages/todayspaper/index.html">
+Today's Paper
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-1FBDDF2B-64F5-4DB3-8093-F0CCB7808799" class=" " role="menuitem" href="http://www.nytimes.com/interactive/blogs/directory.html">
+Blogs
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-D3E5F163-D939-4FD5-8FB6-C6AD31748E30" class=" " role="menuitem" href="http://www.nytimes.com/pages/topics/">
+Times Topics
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-6BBF5308-5EA3-4B25-885F-393F7372F27F" class=" " role="menuitem" href="http://www.nytimes.com/marketing/tools-and-services/">
+Tools &amp; Services
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-288E1691-DA3B-457A-8B06-D10A1351E7B9" class=" " role="menuitem" href="http://www.nytimes.com/section/jobs">
+Jobs
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-D4C7C57A-E74D-44C3-9D0E-0AE6B715610F" class=" " role="menuitem" href="http://www.nytimes.com/ref/classifieds/">
+Classifieds
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-6DD9D623-A907-4623-9C5A-9409972B76DA" class=" " role="menuitem" href="http://www.nytimes.com/pages/corrections/index.html">
+Corrections
+
+</a>
+ </li>
+
+
+
+ </ul>
+ </div>
+
+ <div class="section ">
+ <ul class="menu" role="menubar">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-more-section" class=" expandable" role="menuitem" tabindex="0" aria-haspopup="true" aria-expanded="false">
+More
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+
+ </ul>
+ </div>
+
+ </div>
+ </nav>
+ <!-- close navigation -->
+
+ <nav id="mobile-navigation" class="mobile-navigation hidden">
+ <h2 class="visually-hidden">Site Mobile Navigation</h2>
+ </nav>
+ <!-- close mobile-navigation -->
+
+ <div id="navigation-edge" class="navigation-edge"></div>
+ <div id="page" class="page">
+ <div id="TopAd" class="ad top-ad nocontent robots-nocontent hidden" data-google-query-id="COul-sTkvtECFRdgvAodtOIE-g" style="display: none;">
+ <div class="accessibility-ad-header visually-hidden">
+ <p>Advertisement</p>
+ </div>
+ <div id="google_ads_iframe_/29390238/NYT/business/dealbook_0__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/29390238/NYT/business/dealbook_0" title="3rd party ad content" name="google_ads_iframe_/29390238/NYT/business/dealbook_0" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" srcdoc="" width="100%" height="0" frameborder="0"></iframe></div>
+ </div>
+
+ <main id="main" class="main" role="main">
+ <article id="story" class="story theme-main ">
+
+ <div id="TragedyAd" class="ad tragedy-ad nocontent robots-nocontent"></div>
+
+ <div class="dealbook-branding">
+ <h2 class="dealbook-branding-heading">
+ <a href="http://www.nytimes.com/pages/business/dealbook/index.html">
+ <svg xmlns="http://www.w3.org/2000/svg" class="dealbook-logo" width="320" height="42" role="img" aria-label="Dealbook">
+ <image width="320" height="42" xlink:href="https://a1.nyt.com/assets/article/20170112-121631/images/article/dealbook-logo-320x42.svg" xmlns:xlink="http://www.w3.org/1999/xlink" src="https://a1.nyt.com/assets/article/20170112-121631/images/article/dealbook-logo-320x42.png" alt="Dealbook"/>
+ </svg>
+ </a>
+ </h2>
+ </div>
+ <!-- close dealbook-branding -->
+
+ <header id="story-header" class="story-header">
+ <div id="story-meta" class="story-meta ">
+ <div class="supported-by hidden nocontent robots-nocontent">
+ <span class="ad-label">Supported by</span>
+ <div id="supported-by-ad" class="supported-by-ad ad hidden" data-google-query-id="COyl-sTkvtECFRdgvAodtOIE-g" style="display: none;">
+ <div id="google_ads_iframe_/29390238/NYT/business/dealbook_1__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/29390238/NYT/business/dealbook_1" title="3rd party ad content" name="google_ads_iframe_/29390238/NYT/business/dealbook_1" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" srcdoc="" width="150" height="50" frameborder="0"></iframe></div>
+ </div>
+ </div>
+ <h3 class="kicker">
+ </h3>
+ <h1 itemprop="headline" id="headline" class="headline" style="visibility: visible;">Yahoo’s Sale to Verizon Leaves Shareholders With Little Say</h1>
+ <div id="story-meta-footer" class="story-meta-footer">
+ <div class="extended-byline no-thumb">
+ <p class="byline-column">
+ <a class="byline-column-link" href="http://www.nytimes.com/column/deal-professor">Deal Professor</a> </p>
+ <p class="byline">By <span itemprop="author creator" itemscope="" itemtype="http://schema.org/Person" itemid="">
+ <span class="byline-author " data-byline-name="Steven Davidoff Solomon" itemprop="name">STEVEN DAVIDOFF SOLOMON</span>
+ </span>
+ <time class="dateline" datetime="2016-08-01T01:30:24-04:00" itemprop="dateModified" content="2016-08-01T01:30:24-04:00">JULY 29, 2016</time>
+ </p>
+ </div>
+ <!-- close extended-byline -->
+
+ <div class="story-meta-footer-sharetools">
+ <div id="sharetools-story-meta-footer" aria-label="tools" role="group" class="sharetools theme-classic sharetools-story-meta-footer " data-shares="facebook,twitter,email,show-all,save" data-url="http://www.nytimes.com/2016/07/30/business/dealbook/yahoos-sale-to-verizon-leaves-shareholders-with-little-say.html" data-title="Yahoo’s Sale to Verizon Leaves Shareholders With Little Say" data-author="By STEVEN DAVIDOFF SOLOMON" data-media="https://static01.nyt.com/images/2016/07/30/business/db-dealprof/db-dealprof-jumbo.jpg" data-description="The internet giant’s decision to sell its business is plagued with challenges that reveal how unusual deal structures can affect shareholders." data-publish-date="July 29, 2016" data-share-tools-initialized="1">
+ <a class="visually-hidden skip-to-text-link" href="#story-continues-1">Continue reading the main story</a>
+ <span class="sharetools-label visually-hidden">Share This Page</span>
+ <div class="ad sharetools-inline-article-ad hidden nocontent robots-nocontent">
+ <a class="visually-hidden skip-to-text-link" href="#story-continues-1">Continue reading the main story</a>
+ </div>
+ <ul class="sharetools-menu">
+ <li class="sharetool facebook-sharetool"><a href="javascript:;" data-share="facebook" data-modal-title=""><i class="icon sprite-icon"></i><span class="sharetool-text ">Share</span></a></li>
+ <li class="sharetool twitter-sharetool"><a href="javascript:;" data-share="twitter" data-modal-title=""><i class="icon sprite-icon"></i><span class="sharetool-text ">Tweet</span></a></li>
+ <li class="sharetool email-sharetool"><a href="javascript:;" data-share="email" data-modal-title="Log in to email"><i class="icon sprite-icon"></i><span class="sharetool-text ">Email</span></a></li>
+ <li class="sharetool show-all-sharetool"><a href="javascript:;" data-share="show-all" data-modal-title=""><i class="icon sprite-icon"></i><span class="sharetool-text ">More</span></a></li>
+ <li class="sharetool save-sharetool"><a href="javascript:;" data-share="save" data-modal-title="Log in to save"><i class="icon sprite-icon"></i><span class="sharetool-text ">Save</span></a></li>
+ </ul>
+ </div>
+ <!-- close shareTools -->
+ </div>
+ </div>
+ <!-- close story-meta-footer -->
+ </div>
+ <!-- close story-meta -->
+ </header>
+
+ <script type="text/javascript">
+ if (
+ window.magnum &
+ amp; & amp; window.magnum.getFlags().indexOf('headlineBalancer') & gt; 0 &
+ amp; & amp; window.magnum.headlineBalancer &
+ amp; & amp; window.magnum.headlineBalancer.initialize &
+ amp; & amp; window.magnum.headlineBalancer.shouldRun()
+ ) {
+ window.magnum.headlineBalancer.initialize();
+ }
+ </script>
+
+
+ <div class="story-body-supplemental">
+ <div class="story-body story-body-1">
+ <figure id="media-100000004560166" class="media photo lede layout-small-horizontal" data-media-action="modal" itemprop="associatedMedia" itemscope="" itemid="https://static01.nyt.com/images/2016/07/30/business/db-dealprof/db-dealprof-master315.jpg" itemtype="http://schema.org/ImageObject" aria-label="media" role="group">
+ <span class="visually-hidden">Photo</span>
+ <div class="image">
+ <img src="https://static01.nyt.com/images/2016/07/30/business/db-dealprof/db-dealprof-master315.jpg" alt="" class="media-viewer-candidate" data-mediaviewer-src="https://static01.nyt.com/images/2016/07/30/business/db-dealprof/db-dealprof-superJumbo.jpg" data-mediaviewer-caption="" data-mediaviewer-credit="Harry Campbell" itemprop="url" itemid="https://static01.nyt.com/images/2016/07/30/business/db-dealprof/db-dealprof-master315.jpg" />
+ <div class="media-action-overlay">
+ <i class="icon sprite-icon"></i>
+ </div>
+ <meta itemprop="height" content="315" />
+ <meta itemprop="width" content="315" />
+ </div>
+ <figcaption class="caption" itemprop="caption description">
+ <span class="credit" itemprop="copyrightHolder">
+ <span class="visually-hidden">Credit</span> Harry Campbell </span>
+ </figcaption>
+ </figure>
+ <p class="story-body-text story-content" data-para-count="148" data-total-count="148"><a href="http://www.nytimes.com/topic/company/yahoo-inc?inline=nyt-org" title="More information about Yahoo! Inc." class="meta-org">Yahoo</a>’s $4.8 billion sale to <a href="http://www.nytimes.com/topic/company/verizon-communications-inc?inline=nyt-org" title="More information about Verizon Communications Inc." class="meta-org">Verizon</a> is a complicated beast, showing how different acquisition structures can affect how shareholders are treated.</p>
+ <p class="story-body-text story-content" data-para-count="177" data-total-count="325">First, let’s say what the Yahoo sale is not. It is not a sale of the publicly traded company. Instead, it is a sale of the Yahoo subsidiary and some related assets to Verizon.</p>
+ <p class="story-body-text story-content" data-para-count="529" data-total-count="854">The sale is being done in two steps. The <a href="https://www.sec.gov/Archives/edgar/data/1011006/000119312516656036/d178500dex22.htm">first step</a> will be the transfer of any assets related to Yahoo business to a singular subsidiary. This includes the stock in the business subsidiaries that make up Yahoo that are not already in the single subsidiary, as well as the odd assets like benefit plan rights. This is what is being sold to Verizon. A license of Yahoo’s oldest patents is being held back in the so-called Excalibur portfolio. This will stay with Yahoo, as will Yahoo’s stakes in Alibaba Group and Yahoo Japan.</p>
+ <p class="story-body-text story-content" data-para-count="479" data-total-count="1333">It is hard to overestimate how complex an asset sale like this is. Some of the assets are self-contained, but they must be gathered up and transferred. Employees need to be shuffled around and compensation arrangements redone. Many contracts, like the now-infamous one struck with the search engine Mozilla, which <a href="http://www.recode.net/2016/7/7/12116296/marissa-mayer-deal-mozilla-yahoo-payment">may result in a payment of up to a $1 billion</a>, will contain change-of-control provisions that will be set off and have to be addressed. Tax issues always loom large.</p> <a class="visually-hidden skip-to-text-link" href="#story-continues-1">Continue reading the main story</a>
+ </div>
+ <!-- close story-body -->
+ <div class="supplemental first short" id="supplemental-1" data-between-flex-ads="true" data-pre-height="673" data-max-items="1" data-remaining="673" data-minimum="400" data-last-item-height="873" data-flex-ad-adjacency="true" data-post-height="673">
+ <div class="supplemental-items" data-supplemental-order="0" data-no-med-rec="true" data-no-ads="true">
+ <aside class="marginalia related-combined-coverage-marginalia marginalia-item nocontent robots-nocontent" data-marginalia-type="sprinkled" role="complementary" module="Related-CombinedMarginalia">
+ <div class="nocontent robots-nocontent">
+ <header>
+ <h2 class="module-heading">Related Coverage</h2>
+ </header>
+ <ul>
+ <li>
+ <article class="story theme-summary ">
+ <a class="story-link" href="http://www.nytimes.com/2016/07/27/business/media/marissa-mayers-media-problem-at-yahoo-is-now-verizons-to-solve.html">
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2016/07/27/business/27MARISSA/27MARISSA-thumbStandard.jpg" role="presentation" alt="" />
+ <div class="media-action-overlay"></div>
+ </div>
+
+ <div class="story-body">
+ <h2 class="headline">
+ <span class="title">Marissa Mayer’s Media Problem at Yahoo Is Now Verizon’s to Solve</span>
+ <time class="dateline">JULY 26, 2016</time>
+ </h2>
+ </div>
+ </a>
+ </article>
+ </li>
+ <li>
+ <article class="story theme-summary ">
+ <a class="story-link" href="http://www.nytimes.com/2016/07/26/business/verizon-yahoo-sale.html">
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2016/07/25/business/cnbc-yahoo/cnbc-yahoo-thumbStandard.png" role="presentation" alt="" />
+ <div class="media-action-overlay"></div>
+ </div>
+
+ <div class="story-body">
+ <h2 class="headline">
+ <span class="title">Verizon Announces $4.8 Billion Deal for Yahoo’s Internet Business</span>
+ <time class="dateline">JULY 25, 2016</time>
+ </h2>
+ </div>
+ </a>
+ </article>
+ </li>
+ <li>
+ <article class="story theme-summary ">
+ <a class="story-link" href="http://www.nytimes.com/2016/07/25/business/yahoo-sale.html">
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2016/07/24/business/25YAHOO-sale/25YAHOO-sale-thumbStandard.jpg" role="presentation" alt="" />
+ <div class="media-action-overlay"></div>
+ </div>
+
+ <div class="story-body">
+ <h2 class="headline">
+ <span class="title">Yahoo’s Sale to Verizon Ends an Era for a Web Pioneer</span>
+ <time class="dateline">JULY 24, 2016</time>
+ </h2>
+ </div>
+ </a>
+ </article>
+ </li>
+ <li>
+ <article class="story theme-summary ">
+ <a class="story-link" href="http://www.nytimes.com/2016/07/23/business/dealbook/yahoo-sale-verizon.html">
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2016/07/23/business/23yahoo/23yahoo-thumbStandard.jpg" role="presentation" alt="" />
+ <div class="media-action-overlay"></div>
+ </div>
+
+ <div class="story-body">
+ <h2 class="headline">
+ <span class="title">Verizon Is Said to Be Near a Deal to Acquire Yahoo</span>
+ <time class="dateline">JULY 22, 2016</time>
+ </h2>
+ </div>
+ </a>
+ </article>
+ </li>
+ </ul>
+ </div>
+ </aside>
+ </div>
+ </div>
+ <!-- close supplemental -->
+ </div>
+ <!-- close story-body-supplemental -->
+ <div class="story-interrupter" id="story-continues-1">
+ <div id="FlexAd" class="ad flex-ad nocontent robots-nocontent">
+ <div class="accessibility-ad-header visually-hidden">
+ <p>Advertisement</p>
+ </div>
+ <a class="visually-hidden skip-to-text-link" href="#story-continues-2">Continue reading the main story</a>
+ <div class="flex-ad-creative"></div>
+ </div>
+ </div>
+ <div class="story-body-supplemental">
+ <div class="story-body story-body-2">
+ <p class="story-body-text story-content" data-para-count="602" data-total-count="1935" id="story-continues-2">In the second step, at the closing, <a href="https://www.sec.gov/Archives/edgar/data/1011006/000119312516656036/d178500dex22.htm">Yahoo will sell the stock</a> in the single subsidiary to Verizon. At that point, Yahoo will change its name to something without “Yahoo” in it. My favorite is simply Remain Co., the name Yahoo executives are using. Remain Co. will become a holding company for the Alibaba and Yahoo Japan stock. Included will also be $10 billion in cash, plus the Excalibur patent portfolio and a number of minority investments including Snapchat. Ahh, if only Yahoo had bought Snapchat instead of Tumblr (indeed, if only Yahoo had bought Google or Facebook when it had the chance).</p>
+ <div id="story-ad-1" class="story-ad ad ad-placeholder nocontent robots-nocontent hidden">
+ <div class="accessibility-ad-header visually-hidden">
+ <p>Advertisement</p>
+ </div>
+ <a class="visually-hidden skip-to-text-link" href="#story-continues-3">Continue reading the main story</a>
+ </div>
+ <p class="story-body-text story-content" data-para-count="262" data-total-count="2197" id="story-continues-3">Because it is a sale of a subsidiary, the $4.8 billion will be paid to Yahoo. Its shareholders will not receive any money unless Yahoo pays it out in a dividend (after paying taxes). Instead, Yahoo shareholders will be left holding shares in the renamed company.</p>
+ <p class="story-body-text story-content" data-para-count="250" data-total-count="2447">Verizon’s Yahoo will then be run <a href="http://www.nytimes.com/2016/07/25/business/yahoo-sale.html?_r=0">under the same umbrella as AOL</a>. It is unclear whether there will be a further merger of the two businesses after the acquisition. Plans for Yahoo are still a bit in flux in part because of the abnormal sale process.</p>
+ <p class="story-body-text story-content" data-para-count="497" data-total-count="2944">As for Remain Co., it will become a so-called investment company. This is a special designation for a company that holds securities for investment but does not operate a working business. Investment companies are subject to special regulation under the Investment Company Act of 1940. Remain Co. will probably just sit there, returning cash to shareholders and waiting for Alibaba to buy it in a tax-free transaction. (Alibaba says it has no plans to do this, but most people do not believe this).</p>
+ <p class="story-body-text story-content" data-para-count="129" data-total-count="3073">The rights of Yahoo shareholders in this sale will be different from those in an ordinary sale, when an entire company is bought.</p>
+ <p class="story-body-text story-content" data-para-count="560" data-total-count="3633">Ordinary sales are done in one of two ways: in a merger where the target is merged into a subsidiary of the buyer and the target shareholders receive the cash (or other consideration), or in a tender offer that gives the target shareholders a choice to tender into the offer or not. Then there will be a merger where the target is merged into the buyer’s subsidiary and the target shareholders are forcibly squeezed out, receiving the merger consideration. (if you want to know why you would choose one structure over another, I wrote <a href="http://dealbook.nytimes.com/2009/10/14/the-peculiarities-of-tender-offers/?_r=0">a good primer</a> in 2009.)</p>
+ <p class="story-body-text story-content" data-para-count="114" data-total-count="3747">In either case, shareholders get a say. They either vote on the merger or decide whether to tender into the offer.</p>
+ <p class="story-body-text story-content" data-para-count="278" data-total-count="4025">In both cases, there would be appraisal rights if the buyer pays cash. This means that shareholders can object to the deal by not voting for it or not tendering into the offer and instead asking a court to value their shares – this is what happened <a href="http://www.nytimes.com/2016/06/08/business/dealbook/ruling-on-dell-buyout-may-not-be-precedent-some-fear.html">in Dell’s buyout in 2013</a>.</p>
+ <p class="story-body-text story-content" data-para-count="448" data-total-count="4473">The Yahoo deal, however, is not a sale of the public company. It is an asset sale, in which there is only a shareholder vote if there is a sale of “all” or “substantially all” of the assets of the company. Yahoo is not all of the assets or even “substantially all” – the Alibaba shares being left behind in Remain Co. are worth about $28 billion, or six times the value of the cash Verizon is paying for the Yahoo assets it is buying.</p>
+ <div id="story-ad-2" class="story-ad ad ad-placeholder nocontent robots-nocontent hidden">
+ <div class="accessibility-ad-header visually-hidden">
+ <p>Advertisement</p>
+ </div>
+ <a class="visually-hidden skip-to-text-link" href="#story-continues-4">Continue reading the main story</a>
+ </div>
+ <p class="story-body-text story-content" data-para-count="343" data-total-count="4816" id="story-continues-4">The courts have held that the definition of “substantially all” includes a change of business in a company because of an asset sale where the assets are <a href="http://caselaw.findlaw.com/de-court-of-chancery/1306648.html">“qualitatively vital.”</a> And that certainly applies here. So there will be a vote – indeed, Yahoo has no problem with a vote – and shareholders are desperate to sell at this point.</p>
+ <p class="story-body-text story-content" data-para-count="183" data-total-count="4999">There will be no appraisal rights, however. Again, in an asset sale, there are no appraisal rights. So anyone who votes against the deal and thinks this is a bum price is out of luck.</p>
+ <p class="story-body-text story-content" data-para-count="260" data-total-count="5259">The different standards for voting and appraisal rights apply because the structure of the deal is a quirk of the law in Delaware, where Yahoo is incorporated, that allows lawyers to sometimes work around these issues simply by changing the way a deal is done.</p>
+ <p class="story-body-text story-content" data-para-count="112" data-total-count="5371">In Yahoo’s case, this is not deliberate, though. It is simply the most expedient way to get rid of the assets.</p>
+ <p class="story-body-text story-content" data-para-count="583" data-total-count="5954">Whether this is the most tax-efficient way is unclear to me as a nontax lawyer (email me if you know). Yahoo is likely to have a tax bill on the sale, possibly a substantial one. And I presume there were legal reasons for not using a <a href="http://dealbook.nytimes.com/2014/04/29/alliant-techsystems-break-up-and-the-return-of-the-morris-trust/">Morris Trust structure</a>, in which Yahoo would have been spun off and immediately sold to Verizon so that only Yahoo’s shareholders paid tax on the deal. In truth, the Yahoo assets being sold are only about 10 percent of the value of the company, so the time and logistics for such a sale when Yahoo is a melting ice cube may not have been worth it.</p>
+ <p class="story-body-text story-content" data-para-count="450" data-total-count="6404">Finally, if another bidder still wants to acquire Yahoo, it has time. The agreement with Verizon allows Yahoo to terminate the deal and accept a superior offer by paying a $144 million breakup fee to Verizon. And if Yahoo shareholders change their minds and want to stick with Yahoo’s chief executive, <a href="http://topics.nytimes.com/top/reference/timestopics/people/m/marissa_mayer/index.html?inline=nyt-per" title="More articles about Marissa Mayer." class="meta-per">Marissa Mayer</a>, and vote down the deal, there is a so-called naked no-vote termination fee of $15 million payable to Verizon to reimburse expenses.</p>
+ <p class="story-body-text story-content" data-para-count="426" data-total-count="6830">All in all, this was as hairy a deal as they come. There was the procedural and logistical complications of selling a company when the chief executive wanted to stay. Then there was the fact that this was an asset sale, including all of the challenges that go with it. Throw in all of the tax issues and the fact that this is a public company, and it is likely that the lawyers involved will have nightmares for years to come.</p> <a class="visually-hidden skip-to-text-link" href="#whats-next">Continue reading the main story</a>
+ </div>
+ <!-- close story-body -->
+ <div class="supplemental " id="supplemental-2" data-pre-height="2132" data-max-items="2" data-remaining="242" data-minimum="400" data-last-item-height="945" data-flex-ad-adjacency="false" data-post-height="2132">
+ <div class="supplemental-items" data-supplemental-order="1">
+ <aside id="middle-right-paid-post-container" class="ad middle-right-ad paid-post-ad marginalia-item hidden nocontent robots-nocontent">
+ <h2 class="marginalia-heading"></h2>
+ <ul class="story-menu">
+ <li id="MiddleRightPaidPost1" class="story-menu-item ad hidden" data-google-query-id="CIy7_MXkvtECFVAdvAodMLMHGQ" style="display: none;">
+ <div id="google_ads_iframe_/29390238/NYT/business/dealbook_4__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/29390238/NYT/business/dealbook_4" title="3rd party ad content" name="google_ads_iframe_/29390238/NYT/business/dealbook_4" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" srcdoc="" width="300" height="77" frameborder="0"></iframe></div>
+ </li>
+ <li id="MiddleRightPaidPost2" class="story-menu-item ad hidden" data-google-query-id="CI27_MXkvtECFVAdvAodMLMHGQ" style="display: none;">
+ <div id="google_ads_iframe_/29390238/NYT/business/dealbook_5__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/29390238/NYT/business/dealbook_5" title="3rd party ad content" name="google_ads_iframe_/29390238/NYT/business/dealbook_5" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" srcdoc="" width="300" height="77" frameborder="0"></iframe></div>
+ </li>
+ <li id="MiddleRightPaidPost3" class="story-menu-item ad hidden" data-google-query-id="CI67_MXkvtECFVAdvAodMLMHGQ" style="display: none;">
+ <div id="google_ads_iframe_/29390238/NYT/business/dealbook_6__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/29390238/NYT/business/dealbook_6" title="3rd party ad content" name="google_ads_iframe_/29390238/NYT/business/dealbook_6" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" srcdoc="" width="300" height="77" frameborder="0"></iframe></div>
+ </li>
+ <li id="MiddleRightPaidPost4" class="story-menu-item ad hidden" data-google-query-id="CI-7_MXkvtECFVAdvAodMLMHGQ" style="display: none;">
+ <div id="google_ads_iframe_/29390238/NYT/business/dealbook_7__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/29390238/NYT/business/dealbook_7" title="3rd party ad content" name="google_ads_iframe_/29390238/NYT/business/dealbook_7" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" srcdoc="" width="300" height="77" frameborder="0"></iframe></div>
+ </li>
+ </ul>
+ </aside>
+ <aside class="marginalia collection-marginalia collection collection-type-column collection-tone-news collection-section-business collection-theme-latest-headlines nocontent robots-nocontent" role="complementary">
+ <div class="nocontent robots-nocontent">
+ <header>
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2015/02/17/business/dealbook/db_bug_solomon/db_bug_solomon-blogSmallThumb-v2.jpg" alt="" />
+ </div>
+ <div class="collection-meta">
+ <div class="collection-headings">
+ <h2 class="collection-marginalia-heading"><a href="http://www.nytimes.com/column/deal-professor">Deal Professor</a></h2>
+ <h3 class="collection-marginalia-subheading"></h3>
+ </div>
+ </div>
+ <div class="follow-button-placeholder" data-collection-id="column.deal-professor"></div>
+ </header>
+ <ul>
+ <li>
+ <article class="story theme-summary">
+ <a class="story-link" href="http://www.nytimes.com/2016/12/27/business/dealbook/grading-the-big-deals-of-2016-low-and-incomplete-marks-abound.html?rref=collection%2Fcolumn%2FDeal%20Professor">
+ <h2 class="headline">
+ <span class="headline-text">
+ Grading the Big Deals of 2016: Low and Incomplete Marks Abound </span>
+ <time class="dateline">DEC 27</time>
+ </h2>
+ </a>
+ </article>
+ </li>
+ <li>
+ <article class="story theme-summary">
+ <a class="story-link" href="http://www.nytimes.com/2016/12/20/business/dealbook/why-verizon-cant-quit-yahoo.html?rref=collection%2Fcolumn%2FDeal%20Professor">
+ <h2 class="headline">
+ <span class="headline-text">
+ Why Verizon Can’t Quit Yahoo </span>
+ <time class="dateline">DEC 20</time>
+ </h2>
+ </a>
+ </article>
+ </li>
+ <li>
+ <article class="story theme-summary">
+ <a class="story-link" href="http://www.nytimes.com/2016/12/13/business/dealbook/a-potential-hitch-in-zuckerbergs-stock-plan-for-facebook.html?rref=collection%2Fcolumn%2FDeal%20Professor">
+ <h2 class="headline">
+ <span class="headline-text">
+ A Potential Hitch in Zuckerberg’s Stock Plan for Facebook </span>
+ <time class="dateline">DEC 13</time>
+ </h2>
+ </a>
+ </article>
+ </li>
+ <li>
+ <article class="story theme-summary">
+ <a class="story-link" href="http://www.nytimes.com/2016/12/07/business/dealbook/abbott-laboratories-alere-mac-clause.html?rref=collection%2Fcolumn%2FDeal%20Professor">
+ <h2 class="headline">
+ <span class="headline-text">
+ In Abbott’s Bid to Halt Purchase of Alere, the MAC Makes a Comeback </span>
+ <time class="dateline">DEC 7</time>
+ </h2>
+ </a>
+ </article>
+ </li>
+ <li>
+ <article class="story theme-summary">
+ <a class="story-link" href="http://www.nytimes.com/2016/12/06/business/dealbook/donald-trump-holdings-conflicts-of-interest.html?rref=collection%2Fcolumn%2FDeal%20Professor">
+ <h2 class="headline">
+ <span class="headline-text">
+ How an Everything-Must-Go Trump Sale Might Look </span>
+ <time class="dateline">DEC 6</time>
+ </h2>
+ </a>
+ </article>
+ </li>
+ </ul>
+ <footer>
+ <p class="user-action"><a href="http://www.nytimes.com/column/deal-professor">See More »</a></p>
+ </footer>
+ </div>
+ <!-- close nocontent -->
+ </aside>
+ </div>
+ <div class="supplemental-items" data-supplemental-order="2">
+ <div id="marketing-ad" class="ad marketing-ad marginalia-anchor-ad marginalia-item nocontent robots-nocontent"></div>
+ <div id="medium-rectangle-ad-1" class="ad ad-placeholder medium-rectangle-ad marginalia-item nocontent robots-nocontent"></div>
+ </div>
+ </div>
+ <!-- close supplemental -->
+ </div>
+ <!-- close story-body-supplemental -->
+
+
+ <div class="reader-satisfaction-survey prompt feedback-prompt story-content hidden">
+ <a class="feedback-link" href="https://docs.google.com/forms/d/e/1FAIpQLSfLW30xgZodF1qRAg80oWEGuDpW-1HHaL0g42G3SmvB2f4lCw/viewform?entry.8537735=http://www.nytimes.com/2016/07/30/business/dealbook/yahoos-sale-to-verizon-leaves-shareholders-with-little-say.html" target="_blank">
+ <p class="feedback-message">We’re interested in your feedback on this page. <strong>Tell us what you think.</strong></p>
+ </a>
+ </div>
+
+ <div id="storage-drawer" class="hidden">
+ <div class="supplemental-sub-item" data-attribute-position="0" data-attribute-name="CombinedMarginalia" data-attribute-type="Related" data-attribute-subtype="">
+
+ </div>
+ <div class="supplemental-sub-item" data-attribute-position="1" data-attribute-name="PaidPost" data-attribute-type="PaidPost" data-attribute-subtype="">
+
+ </div>
+ <div class="supplemental-sub-item" data-attribute-position="2" data-attribute-name="CollectionMarginalia" data-attribute-type="Related" data-attribute-subtype="Column">
+
+ </div>
+ </div>
+
+ </article>
+ <section id="related-combined-coverage" class="related-combined-coverage nocontent robots-nocontent">
+ <header class="section-header">
+ <h2 class="section-heading">Related Coverage</h2>
+ </header>
+ <div class="section-body">
+ <ol class="story-menu menu">
+ <li>
+ <article class="story theme-summary ">
+ <a class="story-link" href="http://www.nytimes.com/2016/07/27/business/media/marissa-mayers-media-problem-at-yahoo-is-now-verizons-to-solve.html">
+ <div class="story-body">
+ <h2 class="headline">
+ <span class="title">Marissa Mayer’s Media Problem at Yahoo Is Now Verizon’s to Solve</span>
+ <time class="dateline">JULY 26, 2016</time>
+ </h2>
+ </div>
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2016/07/27/business/27MARISSA/27MARISSA-thumbStandard.jpg" role="presentation" alt="" />
+ <div class="media-action-overlay"></div>
+ </div>
+ </a>
+ </article>
+ </li>
+ <li>
+ <article class="story theme-summary ">
+ <a class="story-link" href="http://www.nytimes.com/2016/07/26/business/verizon-yahoo-sale.html">
+ <div class="story-body">
+ <h2 class="headline">
+ <span class="title">Verizon Announces $4.8 Billion Deal for Yahoo’s Internet Business</span>
+ <time class="dateline">JULY 25, 2016</time>
+ </h2>
+ </div>
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2016/07/25/business/cnbc-yahoo/cnbc-yahoo-thumbStandard.png" role="presentation" alt="" />
+ <div class="media-action-overlay"></div>
+ </div>
+ </a>
+ </article>
+ </li>
+ <li>
+ <article class="story theme-summary ">
+ <a class="story-link" href="http://www.nytimes.com/2016/07/25/business/yahoo-sale.html">
+ <div class="story-body">
+ <h2 class="headline">
+ <span class="title">Yahoo’s Sale to Verizon Ends an Era for a Web Pioneer</span>
+ <time class="dateline">JULY 24, 2016</time>
+ </h2>
+ </div>
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2016/07/24/business/25YAHOO-sale/25YAHOO-sale-thumbStandard.jpg" role="presentation" alt="" />
+ <div class="media-action-overlay"></div>
+ </div>
+ </a>
+ </article>
+ </li>
+ <li>
+ <article class="story theme-summary ">
+ <a class="story-link" href="http://www.nytimes.com/2016/07/23/business/dealbook/yahoo-sale-verizon.html">
+ <div class="story-body">
+ <h2 class="headline">
+ <span class="title">Verizon Is Said to Be Near a Deal to Acquire Yahoo</span>
+ <time class="dateline">JULY 22, 2016</time>
+ </h2>
+ </div>
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2016/07/23/business/23yahoo/23yahoo-thumbStandard.jpg" role="presentation" alt="" />
+ <div class="media-action-overlay"></div>
+ </div>
+ </a>
+ </article>
+ </li>
+ </ol>
+ </div>
+ </section>
+ <aside class="module trending-module nocontent robots-nocontent" data-truncate-enabled="true" style="">
+ <div class="nocontent robots-nocontent">
+ <header>
+ <h2 class="module-heading">Trending</h2>
+ </header>
+ <ol>
+
+ <li>
+ <a class="story-link" href="http://www.nytimes.com/2017/01/12/us/politics/trump-cabinet-mattis-tillerson.html">
+ <article class="story theme-summary">
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/13/us/13cabinet/13cabinet-thumbStandard.jpg" />
+ </div>
+ <h2 class="headline">
+ <span class="headline-text truncate-text">
+
+Latest to Disagree With Donald Trump: His Cabinet Nominees
+</span>
+ </h2>
+ </article>
+ </a>
+ </li>
+
+ <li>
+ <a class="story-link" href="http://www.nytimes.com/2017/01/11/magazine/neanderthals-were-people-too.html">
+ <article class="story theme-summary">
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/15/magazine/15neanderthals1/15neanderthals1-thumbStandard-v3.jpg" />
+ </div>
+ <h2 class="headline">
+ <span class="headline-text truncate-text">
+
+Feature:
+
+Neanderthals Were People, Too
+</span>
+ </h2>
+ </article>
+ </a>
+ </li>
+
+ <li>
+ <a class="story-link" href="http://www.nytimes.com/2017/01/12/us/politics/linda-bean-ll-bean-boycott.html">
+ <article class="story theme-summary">
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/13/us/13LLBean2_xp/13LLBean2_xp-thumbStandard.jpg" />
+ </div>
+ <h2 class="headline">
+ <span class="headline-text truncate-text">
+
+Trump Tweet About L. L. Bean Underscores Potential Danger for Brands
+</span>
+ </h2>
+ </article>
+ </a>
+ </li>
+
+ <li>
+ <a class="story-link" href="http://www.nytimes.com/2017/01/10/us/politics/obama-farewell-address-speech.html">
+ <article class="story theme-summary">
+ <h2 class="headline">
+ <span class="headline-text truncate-text">
+
+President Obama’s Farewell Address: Full Video and Text
+</span>
+ </h2>
+ </article>
+ </a>
+ </li>
+
+ <li>
+ <a class="story-link" href="http://www.nytimes.com/2017/01/12/business/media/trump-media-news-conference.html">
+ <article class="story theme-summary">
+ <h2 class="headline">
+ <span class="headline-text truncate-text">
+
+Mediator:
+
+As Trump Berates News Media, a New Strategy Is Needed to Cover Him
+</span>
+ </h2>
+ </article>
+ </a>
+ </li>
+
+ <li>
+ <a class="story-link" href="http://www.nytimes.com/2017/01/11/fashion/peter-thiel-donald-trump-silicon-valley-technology-gawker.html">
+ <article class="story theme-summary">
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/12/fashion/12THIELSUB/12THIELSUB-thumbStandard-v2.jpg" />
+ </div>
+ <h2 class="headline">
+ <span class="headline-text truncate-text">
+
+With ... Peter Thiel:
+
+Peter Thiel, Trump’s Tech Pal, Explains Himself
+</span>
+ </h2>
+ </article>
+ </a>
+ </li>
+
+ <li>
+ <a class="story-link" href="http://www.nytimes.com/2017/01/12/us/politics/joe-biden-presidential-medal-freedom.html">
+ <article class="story theme-summary">
+ <h2 class="headline">
+ <span class="headline-text truncate-text">
+
+Obama Surprises Joe Biden With Presidential Medal of Freedom
+</span>
+ </h2>
+ </article>
+ </a>
+ </li>
+
+ <li>
+ <a class="story-link" href="http://www.nytimes.com/2017/01/12/us/politics/james-comey-fbi-inspector-general-hillary-clinton.html">
+ <article class="story theme-summary">
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/13/us/13comey/13comey-thumbStandard.jpg" />
+ </div>
+ <h2 class="headline">
+ <span class="headline-text truncate-text">
+
+Comey Letter on Clinton Email Is Subject of Justice Dept. Inquiry
+</span>
+ </h2>
+ </article>
+ </a>
+ </li>
+
+ <li>
+ <a class="story-link" href="http://www.nytimes.com/2017/01/12/business/media/cspan-russia-today.html">
+ <article class="story theme-summary">
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/13/business/13xp-cspan_web1/13xp-cspan_web1-thumbStandard.jpg" />
+ </div>
+ <h2 class="headline">
+ <span class="headline-text truncate-text">
+
+C-Span Online Broadcast Interrupted by Russian Network
+</span>
+ </h2>
+ </article>
+ </a>
+ </li>
+
+ <li>
+ <a class="story-link" href="http://www.nytimes.com/2017/01/11/us/politics/donald-trump-russia-intelligence.html">
+ <article class="story theme-summary">
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/12/us/12intel/12intel-thumbStandard.jpg" />
+ </div>
+ <h2 class="headline">
+ <span class="headline-text truncate-text">
+
+How a Sensational, Unverified Dossier Became a Crisis for Donald Trump
+</span>
+ </h2>
+ </article>
+ </a>
+ </li>
+
+ </ol>
+ <footer>
+ <p class="user-action"><a href="/trending">View More Trending Stories »</a></p>
+ <div id="MostEm" class="ad most-em-ad hidden" data-google-query-id="CJ6wj8XkvtECFYQavAod9nwOMQ" style="display: none;">
+ <div id="google_ads_iframe_/29390238/NYT/business/dealbook_3__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/29390238/NYT/business/dealbook_3" title="3rd party ad content" name="google_ads_iframe_/29390238/NYT/business/dealbook_3" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" srcdoc="" width="88" height="31" frameborder="0"></iframe></div><iframe id="google_ads_iframe_/29390238/NYT/business/dealbook_3__hidden__" title="" name="google_ads_iframe_/29390238/NYT/business/dealbook_3__hidden__" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom; visibility: hidden; display: none;" srcdoc="" width="0" height="0" frameborder="0"></iframe></div>
+ </footer>
+ </div>
+ </aside>
+ <section id="whats-next" class="whats-next nocontent robots-nocontent">
+ <h2 class="visually-hidden">What's Next</h2>
+ <div class="nocontent robots-nocontent">
+ <div class="loader-container">
+ <div class="loader loader-t-logo-32x32-ecedeb-ffffff"><span class="visually-hidden">Loading...</span></div>
+ </div>
+ </div>
+ <!-- close nocontent -->
+ </section>
+ <div id="TopAd1" class="text-ad bottom-left-ad nocontent robots-nocontent"></div>
+ <div id="Top5" class="ad top5-ad hidden nocontent robots-nocontent"></div>
+ <div class="search-overlay"></div>
+ <aside id="media-viewer" class="media-viewer" style="display:none;">
+ <button class="button close-button"><i class="icon"></i><span class="visually-hidden">Close this overlay</span></button>
+ <h2 class="media-viewer-headline"></h2>
+ <div class="media-viewer-wrapper"></div>
+ <nav class="media-viewer-nav">
+ <div class="media-viewer-counter"></div>
+ <div class="media-viewer-previous">
+ <span class="visually-hidden">Go to previous</span>
+ <div class="arrow arrow-left">
+ <div class="arrow-conceal"></div>
+ </div>
+ </div>
+ <div class="media-viewer-next">
+ <span class="visually-hidden">Go to next</span>
+ <div class="arrow arrow-right">
+ <div class="arrow-conceal"></div>
+ </div>
+ </div>
+ </nav>
+ <div class="loader-container" style="display:none;">
+ <div class="loader loader-t-logo-32x32-ecedeb-ffffff"><span class="visually-hidden">Loading...</span></div>
+ </div>
+ </aside>
+ </main>
+ <!-- close main -->
+ <section id="site-index" class="site-index">
+ <header class="section-header">
+ <p class="user-action"><a href="http://www.nytimes.com/">Go to Home Page »</a></p>
+ <h2 class="section-heading">
+ <span class="visually-hidden">Site Index</span>
+ <a id="site-index-branding-link" href="http://www.nytimes.com/">
+ <span class="visually-hidden">The New York Times</span>
+ <svg xmlns="http://www.w3.org/2000/svg" class="nyt-logo" width="185" height="26" role="img" aria-label="The New York Times"><image width="185" height="26" xlink:href="https://a1.nyt.com/assets/article/20170112-121631/images/foundation/logos/nyt-logo-185x26.svg" xmlns:xlink="http://www.w3.org/1999/xlink" src="https://a1.nyt.com/assets/article/20170112-121631/images/foundation/logos/nyt-logo-185x26.png" alt="The New York Times" border="0"/></svg><img src="https://a1.nyt.com/assets/article/20170112-121631/images/foundation/logos/nyt-logo-185x26.png" class="nyt-logo-print" alt="The New York Times" /></a>
+ </h2>
+ <script>
+ window.magnum.writeLogo('small', 'https://a1.nyt.com/assets/article/20170112-121631/images/foundation/logos/', '', '', 'standard', 'site-index-branding-link', '');
+ </script>
+ </header>
+
+ <nav id="site-index-navigation" class="site-index-navigation" role="navigation">
+ <h2 class="visually-hidden">Site Index Navigation</h2>
+ <div class="split-6-layout layout">
+
+
+ <div class="column">
+ <h3 class="menu-heading">News</h3>
+ <ul class="menu">
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/world/index.html">World</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/national/index.html">U.S.</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/politics/index.html">Politics</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/nyregion/index.html">N.Y.</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/business/index.html">Business</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/technology/index.html">Tech</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/section/science">Science</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/health/index.html">Health</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/sports/index.html">Sports</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/education/index.html">Education</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/obituaries/index.html">Obituaries</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/todayspaper/index.html">Today's Paper</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/corrections/index.html">Corrections</a>
+ </li>
+
+
+ </ul>
+ </div>
+ <!-- close column -->
+
+
+ <div class="column">
+ <h3 class="menu-heading">Opinion</h3>
+ <ul class="menu">
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/opinion/index.html">Today's Opinion</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/opinion/index.html#columnists">Op-Ed Columnists</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/opinion/index.html#editorials">Editorials</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/opinion/index.html#contributing">Contributing Writers</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/opinion/index.html#op-ed">Op-Ed Contributors</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/opinion/index.html#opinionator">Opinionator</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/opinion/index.html#letters">Letters</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/opinion/index.html#sundayreview">Sunday Review</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/opinion/index.html#takingNote">Taking Note</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/roomfordebate">Room for Debate</a>
+ </li>
+
+
+ <li>
+ <a href="http://topics.nytimes.com/top/opinion/thepubliceditor/index.html">Public Editor</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/video/opinion">Video: Opinion</a>
+ </li>
+
+
+ </ul>
+ </div>
+ <!-- close column -->
+
+
+ <div class="column">
+ <h3 class="menu-heading">Arts</h3>
+ <ul class="menu">
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/arts/index.html">Today's Arts</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/arts/design/index.html">Art &amp; Design</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/books/index.html">Books</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/arts/dance/index.html">Dance</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/movies/index.html">Movies</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/arts/music/index.html">Music</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/events/">N.Y.C. Events Guide</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/arts/television/index.html">Television</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/theater/index.html">Theater</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/video/arts">Video: Arts</a>
+ </li>
+
+
+ </ul>
+ </div>
+ <!-- close column -->
+
+
+ <div class="column">
+ <h3 class="menu-heading">Living</h3>
+ <ul class="menu">
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/automobiles/index.html">Automobiles</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/crosswords/">Crossword</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/dining/index.html">Food</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/education/index.html">Education</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/fashion/index.html">Fashion &amp; Style</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/health/index.html">Health</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/section/jobs">Jobs</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/magazine/index.html">Magazine</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/events/">N.Y.C. Events Guide</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/section/realestate">Real Estate</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/section/t-magazine">T Magazine</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/section/travel">Travel</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/fashion/weddings/index.html">Weddings &amp; Celebrations</a>
+ </li>
+
+
+ </ul>
+ </div>
+ <!-- close column -->
+
+
+ <div class="column">
+ <h3 class="menu-heading">Listings &amp; More</h3>
+ <ul class="menu">
+
+
+ <li>
+ <a href="http://www.nytimes.com/ref/classifieds/">Classifieds</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/marketing/tools-and-services/">Tools &amp; Services</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/topics/">Times Topics</a>
+ </li>
+
+
+ <li>
+ <a href="http://topics.nytimes.com/top/opinion/thepubliceditor/index.html">Public Editor</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/events/">N.Y.C. Events Guide</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/interactive/blogs/directory.html">Blogs</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/pages/multimedia/index.html">Multimedia</a>
+ </li>
+
+
+ <li>
+ <a href="http://lens.blogs.nytimes.com/">Photography</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/video">Video</a>
+ </li>
+
+
+ <li>
+ <a href="https://www.nytimes.com/store/?&amp;t=qry542&amp;utm_source=nytimes&amp;utm_medium=HPB&amp;utm_content=hp_browsetree&amp;utm_campaign=NYT-HP&amp;module=SectionsNav&amp;action=click&amp;region=TopBar&amp;version=BrowseTree&amp;contentCollection=NYT%20Store&amp;contentPlacement=2&amp;pgtype=Homepage">NYT Store</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/times-journeys/?utm_source=nytimes&amp;utm_medium=HPLink&amp;utm_content=hp_browsetree&amp;utm_campaign=NYT-HP">Times Journeys</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/seeallnav">Subscribe</a>
+ </li>
+
+
+ <li>
+ <a href="http://www.nytimes.com/membercenter">Manage My Account</a>
+ </li>
+
+
+ </ul>
+ </div>
+ <!-- close column -->
+
+
+ <div class="column last-column">
+
+ <h3 class="menu-heading">Subscribe</h3>
+
+ <ul class="menu primary-menu">
+ <li class="menu-label">Subscribe</li>
+ <li class="home-delivery">
+ <i class="icon sprite-icon"></i>
+ <a href="http://www.nytimes.com/hdleftnav">Home Delivery</a>
+ </li>
+ <li class="digital-subscriptions">
+ <i class="icon sprite-icon"></i>
+ <a href="http://www.nytimes.com/digitalleftnav">Digital Subscriptions</a>
+ </li>
+ <li class="times-premier">
+ <i class="icon sprite-icon"></i>
+ <a href="http://www.nytimes.com/tpnav">Times Insider</a>
+ </li>
+ <li class="nyt-crossword last-item">
+ <i class="icon sprite-icon"></i>
+ <a id="nyt-crossword" href="//www.nytimes.com/subscriptions/games/lp897H9.html?campaignId=49W8Y">Crossword</a>
+ </li>
+ </ul>
+
+ <ul class="menu secondary-menu">
+
+ <li>
+ <a href="http://www.nytimes.com/marketing/newsletters">Email Newsletters</a>
+ </li>
+ <li>
+ <a href="https://myaccount.nytimes.com/mem/tnt.html">Alerts</a>
+ </li>
+ <li>
+ <a href="http://www.nytimes.com/giftleftnav">Gift Subscriptions</a>
+ </li>
+ <li>
+ <a href="http://www.nytimes.com/corporateleftnav">Corporate Subscriptions</a>
+ </li>
+ <li>
+ <a href="http://www.nytimes.com/educationleftnav">Education Rate</a>
+ </li>
+
+ </ul>
+ <ul class="menu secondary-menu">
+ <li>
+ <a href="http://www.nytimes.com/services/mobile/index.html">Mobile Applications</a>
+ </li>
+ <li>
+ <a href="http://eedition.nytimes.com/cgi-bin/signup.cgi?cc=37FYY">Replica Edition</a>
+ </li>
+
+ </ul>
+
+ </div>
+ <!-- close column -->
+
+ </div>
+ <!-- close split-6-layout -->
+
+ </nav>
+ <!-- close nav -->
+
+ </section>
+ <!-- close site-index -->
+
+ <footer id="page-footer" class="page-footer" role="contentinfo">
+ <nav>
+ <h2 class="visually-hidden">Site Information Navigation</h2>
+ <ul>
+ <li>
+ <a href="http://www.nytimes.com/content/help/rights/copyright/copyright-notice.html" itemprop="copyrightNotice">
+ © <span itemprop="copyrightYear">2017</span><span itemprop="copyrightHolder provider sourceOrganization" itemscope="" itemtype="http://schema.org/Organization" itemid="http://www.nytimes.com"><span itemprop="name"> The New York Times Company</span><meta itemprop="tickerSymbol" content="NYSE NYT" /></span>
+ </a>
+ </li>
+ <li class="visually-hidden"><a href="http://www.nytimes.com">Home</a></li>
+ <li class="visually-hidden"><a href="http://query.nytimes.com/search/sitesearch/#/">Search</a></li>
+ <li class="visually-hidden">Accessibility concerns? Email us at <a href="mailto:[email protected]">[email protected]</a>. We would love to hear from you.</li>
+ <li class="wide-viewport-item"><a href="http://www.nytimes.com/ref/membercenter/help/infoservdirectory.html">Contact Us</a></li>
+ <li class="wide-viewport-item"><a href="http://www.nytco.com/careers">Work With Us</a></li>
+ <li class="wide-viewport-item"><a href="http://nytmediakit.com/">Advertise</a></li>
+ <li class="wide-viewport-item"><a href="http://www.nytimes.com/content/help/rights/privacy/policy/privacy-policy.html#pp">Your Ad Choices</a></li>
+ <li><a href="http://www.nytimes.com/privacy">Privacy</a></li>
+ <li><a href="http://www.nytimes.com/ref/membercenter/help/agree.html" itemprop="usageTerms">Terms of Service</a></li>
+ <li class="wide-viewport-item last-item"><a href="http://www.nytimes.com/content/help/rights/sale/terms-of-sale.html">Terms of Sale</a></li>
+ </ul>
+ </nav>
+ <nav class="last-nav">
+ <h2 class="visually-hidden">Site Information Navigation</h2>
+ <ul>
+ <li><a href="http://spiderbites.nytimes.com">Site Map</a></li>
+ <li><a href="http://www.nytimes.com/membercenter/sitehelp.html">Help</a></li>
+ <li><a href="https://myaccount.nytimes.com/membercenter/feedback.html">Site Feedback</a></li>
+ <li class="wide-viewport-item last-item"><a href="http://www.nytimes.com/subscriptions/Multiproduct/lp5558.html?campaignId=37WXW">Subscriptions</a></li>
+ </ul>
+ </nav>
+ </footer>
+ </div>
+ <!-- close page -->
+ <nav data-href="" data-queue-ad="false" class="ribbon-page-navigation previous" style="overflow: hidden;">
+
+ <a href="">
+ <article class="story theme-summary no-thumb " style="display: none; opacity: 1;">
+
+ <div class="summary" style="margin-top: 32.5px;">
+
+ <h2 title="" class="story-heading"></h2>
+ </div>
+ </article>
+ <div class="arrow arrow-left">
+ <span class="visually-hidden">Go to the previous story</span>
+ <div class="arrow-conceal"></div>
+ </div>
+ </a>
+ </nav>
+ <nav data-href="//www.nytimes.com/2017/01/12/business/dealbook/justice-department-corporate-crime.html?ribbon-ad-idx=2&amp;rref=business/dealbook" data-queue-ad="false" class="ribbon-page-navigation ribbon-page-navigation-has-data next" style="overflow: hidden;">
+
+ <a href="//www.nytimes.com/2017/01/12/business/dealbook/justice-department-corporate-crime.html?ribbon-ad-idx=2&amp;rref=business/dealbook">
+ <article class="story theme-summary " style="display:none;">
+
+ <div class="thumb">
+ <img src="https://static01.nyt.com/images/2017/01/13/business/13DB-WHITECOLLAR3/13DB-WHITECOLLAR3-thumbStandard.jpg" />
+ </div>
+
+ <div class="summary">
+
+ <h2 title="Justice Department Toughened Approach on Corporate Crime, but Will That Last?" class="story-heading">Justice Department Toughened Approach on Corporate Crime, but Will That Last?</h2>
+ </div>
+ </article>
+ <div class="arrow arrow-right">
+ <span class="visually-hidden">Go to the next story</span>
+ <div class="arrow-conceal"></div>
+ </div>
+ </a>
+ </nav>
+ </div>
+ <!-- close shell -->
+ <script>
+ require(['foundation/main'], function() {
+ require(['story/main']);
+ require(['jquery/nyt', 'foundation/views/page-manager'], function($, pageManager) {
+ if (window.location.search.indexOf('disable_tagx') & gt; 0) {
+ return;
+ }
+ $(document).ready(function() {
+ require(['https://a1.nyt.com/analytics/tagx-simple.min.js'], function() {
+ pageManager.trackingFireEventQueue();
+ });
+ });
+ });
+ });
+ </script>
+ <!--esi
+<esi:include src="/appconfig/https/show-modal.js" />
+-->
+
+ <div id="Inv1" class="ad inv1-ad hidden">
+ <!-- ADXINFO classification="Text_Link" campaign="nyt2016_krux_cookiesetter" priority="9200" isInlineSafe="Y" width="0" height="0" -->
+ <script>
+ //123016 searches user's local storage for various Krux segments and places those into a Kruxadx cookie~909490
+
+ var kruxArray = [];
+ for (var i = 0; i & lt; localStorage.length; i++) {
+ var lclVals = localStorage.getItem(localStorage.key(i));
+
+ //Krux segs
+ var loggedOut = "qxk0hzyjh";
+ var hdFormers = "qudtfoenz";
+ var digiFormers = "qudtarl0q";
+ var b2bSiteLic = "q3vfitxb0";
+ var eduPropen = "pox3vefah";
+
+ //searches for the Krux seg in localStorage and pushes it to the array
+ if (lclVals.includes(loggedOut)) {
+ kruxArray.push(loggedOut);
+ }
+ if (lclVals.includes(hdFormers)) {
+ kruxArray.push(hdFormers);
+ }
+ if (lclVals.includes(digiFormers)) {
+ kruxArray.push(digiFormers);
+ }
+ if (lclVals.includes(b2bSiteLic)) {
+ kruxArray.push(b2bSiteLic);
+ }
+ if (lclVals.includes(eduPropen)) {
+ kruxArray.push(eduPropen);
+ }
+ }
+ //dedupes array
+ var kruxArrayFilt = kruxArray.filter(function(elem, index, self) {
+ return index == self.indexOf(elem);
+ });
+ //joins array in comma delimited string and sets Kruxadx cookie with new segs
+ if (kruxArrayFilt != '') {
+ for (var j = 0; j & lt; kruxArrayFilt.length; j++) {
+ var kruxArrayJoined = kruxArrayFilt.toString();
+ document.cookie = 'Kruxadx=' + kruxArrayJoined + '; domain=.nytimes.com; path=/; max-age=' + 60 * 60 * 6 + ';'
+ }
+ }
+ </script>
+ </div>
+ <div id="Inv2" class="ad inv2-ad hidden"></div>
+ <div id="Inv3" class="ad inv3-ad hidden"></div>
+ <div id="ab1" class="ad ab1-ad hidden"></div>
+ <div id="ab2" class="ad ab2-ad hidden"></div>
+ <div id="ab3" class="ad ab3-ad hidden"></div>
+ <div id="prop1" class="ad prop1-ad hidden"></div>
+ <div id="prop2" class="ad prop2-ad hidden">
+ <!-- ADXINFO classification="Text_Link" campaign="nyt2017_EDU_B2B_pers_cookiesetter" priority="9100" isInlineSafe="Y" width="0" height="0" -->
+ <script src="https://static01.nyt.com/marketing/ADX/JS/personalize_b2b_edu_corp_v201701.js"></script>
+ <span class="adx-info hidden" style="display:none !important;" campaign="nyt2017_EDU_B2B_pers_cookiesetter">Campaign ID: 285217 | Creative: nyt2017_pers_B2B_cookieset_v5_HTTPS -- 415673 | Page: www.nytimes.com/yr/mo/day/business/dealbook/yahoos-sale-to-verizon-leaves-shareholders-with-little-say.html / Targeted Page: www.nytimes.com/yr/mo/day/business/dealbook | Position: prop2</span></div>
+ <div id="Anchor" class="ad anchor-ad hidden"></div>
+ <div id="ADX_CLIENTSIDE" class="ad adx-clientside-ad hidden"><iframe class="ad-frame frame-for-article" style="width: 0px; height: 0px;" frameborder="0"></iframe></div>
+
+
+ <div id="interstitial-ad-modal" class="modal-container interstitial-ad-modal-container" style="display: none;">
+ <div class="overlay" style="display: block;"></div>
+ <div class="modal interstitial-ad-modal " style="width: 640;" role="dialog" aria-labelledby="interstitial-ad-modal-modal-heading" tabindex="-1">
+ <div class="modal-header">
+ <h3 class="modal-heading" id="interstitial-ad-modal-modal-heading">advertisement</h3>
+
+ </div>
+ <div class="modal-content">
+ <div id="Interstitial" class="ad interstitial-ad hidden" data-google-query-id="CO2l-sTkvtECFRdgvAodtOIE-g" style="display: none;">
+ <div id="google_ads_iframe_/29390238/NYT/business/dealbook_2__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/29390238/NYT/business/dealbook_2" title="3rd party ad content" name="google_ads_iframe_/29390238/NYT/business/dealbook_2" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" srcdoc="" width="1" height="1" frameborder="0"></iframe></div><iframe id="google_ads_iframe_/29390238/NYT/business/dealbook_2__hidden__" title="" name="google_ads_iframe_/29390238/NYT/business/dealbook_2__hidden__" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom; visibility: hidden; display: none;" srcdoc="" width="0" height="0" frameborder="0"></iframe></div>
+ <p class="user-action dismiss-button">Continue »</p>
+ </div>
+ <div class="modal-footer">
+
+ </div>
+ <button type="button" class="modal-close " aria-disabled="false"><i class="icon"></i><span class="visually-hidden">Close this modal window</span></button>
+ <div class="modal-pointer modal-pointer-fixed">
+ <div class="modal-pointer-conceal"></div>
+ </div>
+ </div>
+ </div>
+ <div id="user-name-modal" class="modal-container user-name-modal-container" style="display: none;">
+ <div class="overlay" style="display: none;"></div>
+ <div class="modal user-name-modal " style="width: 260px;" role="dialog" aria-labelledby="user-name-modal-modal-heading" tabindex="-1">
+ <div class="modal-header">
+ <h3 class="modal-heading" id="user-name-modal-modal-heading">
+ <span class="user-name-subscription">
+<span class="user-name"></span>
+
+ </span>
+ </h3>
+
+ </div>
+ <div class="modal-content">
+ <ul>
+ <li><a href="javascript:;" class="user-profile-button">Edit Profile</a></li>
+ <li><a href="https://myaccount.nytimes.com/membercenter/myaccount.html">My Account</a></li>
+ <li><a href="https://myaccount.nytimes.com/mem/manage_billing.html">My Billing Information</a></li>
+ <li><a href="http://www.nytimes.com/saved">My Saved Items</a></li>
+ <li><button class="button log-out-button">Log Out</button></li>
+ </ul>
+ </div>
+ <div class="modal-footer">
+
+ </div>
+ <button type="button" class="modal-close hidden" aria-disabled="false"><i class="icon"></i><span class="visually-hidden">Close this modal window</span></button>
+ <div class="modal-pointer modal-pointer-up-right">
+ <div class="modal-pointer-conceal"></div>
+ </div>
+ </div>
+ </div>
+ <div id="navigation-modal" class="modal-container navigation-modal-container" style="display: none;">
+ <div class="overlay" style="display: none;"></div>
+ <div class="modal navigation-modal " style="width: undefined;" role="dialog" aria-labelledby="navigation-modal-modal-heading" tabindex="-1">
+ <div class="modal-header">
+ <h3 class="modal-heading" id="navigation-modal-modal-heading"></h3>
+
+ </div>
+ <div class="modal-content">
+ <div class="secondary-container">
+ <div class="secondary-container">
+ <div class="header">
+ <h5 class="section-heading">
+ <a href="" role="menuitem"></a>
+ </h5>
+ </div>
+
+ <div class="section " data-parent="navId-9A43D8FC-F4CF-44D9-9B34-138D30468F8F">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-350E94CC-926C-4D2A-9DB4-FD9ED99A66DC" class=" " role="menuitem" href="http://www.nytimes.com/pages/world/africa/index.html">
+Africa
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-5A94A97E-037B-4C6B-A88D-741B06663078" class=" " role="menuitem" href="http://www.nytimes.com/pages/world/americas/index.html">
+Americas
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-881A1D77-D6D7-4AC3-AAC2-4C279C20DD66" class=" " role="menuitem" href="http://www.nytimes.com/pages/world/asia/index.html">
+Asia Pacific
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-A0EAB3C7-588D-4930-AC9B-57E2A8F8AD32" class=" " role="menuitem" href="http://www.nytimes.com/section/world/australia">
+Australia
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-D38BAA6D-F26D-4B3E-BF25-CC798E6C5F55" class=" " role="menuitem" href="http://www.nytimes.com/pages/world/europe/index.html">
+Europe
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-108390AA-728E-41EB-B9B5-14EDFBAE7D20" class=" " role="menuitem" href="http://www.nytimes.com/pages/world/middleeast/index.html">
+Middle East
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-AE2B2F51-EBDD-4153-A71A-922F9635C5A4" class=" " role="menuitem" href="http://atwar.blogs.nytimes.com/">
+At War
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-947EEB56-B266-44F4-A538-36200844547B" class=" " role="menuitem" href="http://sinosphere.blogs.nytimes.com/">
+Sinosphere
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary 9A43D8FC-F4CF-44D9-9B34-138D30468F8F sections -->
+
+ <div class="section " data-parent="navId-23FD6C8B-62D5-4CEA-A331-6C2A9A1223BE">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-C7303E0D-6EB2-4FD3-B968-530EF9F38EB1" class=" " role="menuitem" href="http://www.nytimes.com/pages/education/index.html">
+Education
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-D64FAE4C-4425-4E5A-B898-6C8CB59F9957" class=" " role="menuitem" href="http://www.nytimes.com/upshot/">
+The Upshot
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary 23FD6C8B-62D5-4CEA-A331-6C2A9A1223BE sections -->
+
+ <div class="section " data-parent="navId-80E6DEE6-87E4-4AD0-9152-14FA6B07E5AB">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-BB53FEFA-F91E-45B4-83D7-477579A87DF3" class=" " role="menuitem" href="http://www.nytimes.com/politics/first-draft/">
+First Draft
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-78CE290F-672B-4BC7-BD4E-67DA85BCAC4E" class=" " role="menuitem" href="http://elections.nytimes.com/">
+Elections
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-D64FAE4C-4425-4E5A-B898-6C8CB59F9957" class=" " role="menuitem" href="http://www.nytimes.com/upshot/">
+The Upshot
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary 80E6DEE6-87E4-4AD0-9152-14FA6B07E5AB sections -->
+
+ <div class="section " data-parent="navId-C4DC8C0C-E148-4201-BF10-82F1C903DBFB">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-2D1C1EB8-E0D9-40A9-8D59-3908DCF5C9BD" class=" " role="menuitem" href="http://www.nytimes.com/events/">
+Events
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary C4DC8C0C-E148-4201-BF10-82F1C903DBFB sections -->
+
+ <div class="section " data-parent="navId-104D1E63-9701-497B-8CF4-A4D120C9014E">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-71301FE1-FE94-4AF4-978B-39B2D2C59D31" class=" " role="menuitem" href="http://www.nytimes.com/pages/business/dealbook/index.html">
+DealBook
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-2848A7AC-A33D-4352-B1FC-A465B81CD4F1" class=" " role="menuitem" href="http://www.nytimes.com/pages/business/economy/index.html">
+Economy
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-E1B05D9E-B6F8-46DB-89E5-06F2205C8085" class=" " role="menuitem" href="http://www.nytimes.com/pages/business/energy-environment/index.html">
+Energy
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-4A7070FF-9307-4094-AE79-910158959A60" class=" " role="menuitem" href="http://markets.on.nytimes.com/">
+Markets
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-C691FB48-A7E8-44FB-9AAA-13D91863D336" class=" " role="menuitem" href="http://www.nytimes.com/pages/business/media/index.html">
+Media
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-AD2AE740-D1A5-4EDB-970D-F56370072B09" class=" " role="menuitem" href="http://www.nytimes.com/pages/business/smallbusiness/index.html">
+Entrepreneurship
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-ED7B8594-44CE-4D37-A58B-1CDAA19774E4" class=" " role="menuitem" href="http://www.nytimes.com/pages/your-money/index.html">
+Your Money
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-0A13AF9D-C7B5-4E8A-B9BC-15AB4B572C94" class=" " role="menuitem" href="http://www.nytimes.com/pages/automobiles/index.html">
+Automobiles
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary 104D1E63-9701-497B-8CF4-A4D120C9014E sections -->
+
+ <div class="section " data-parent="navId-A257D89A-0D3C-40AF-9C34-1A25A7947D94">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-71301FE1-FE94-4AF4-978B-39B2D2C59D31" class=" " role="menuitem" href="http://www.nytimes.com/pages/business/dealbook/index.html">
+DealBook
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-2848A7AC-A33D-4352-B1FC-A465B81CD4F1" class=" " role="menuitem" href="http://www.nytimes.com/pages/business/economy/index.html">
+Economy
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-E1B05D9E-B6F8-46DB-89E5-06F2205C8085" class=" " role="menuitem" href="http://www.nytimes.com/pages/business/energy-environment/index.html">
+Energy
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-4A7070FF-9307-4094-AE79-910158959A60" class=" " role="menuitem" href="http://markets.on.nytimes.com/">
+Markets
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-C691FB48-A7E8-44FB-9AAA-13D91863D336" class=" " role="menuitem" href="http://www.nytimes.com/pages/business/media/index.html">
+Media
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-AD2AE740-D1A5-4EDB-970D-F56370072B09" class=" " role="menuitem" href="http://www.nytimes.com/pages/business/smallbusiness/index.html">
+Entrepreneurship
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-ED7B8594-44CE-4D37-A58B-1CDAA19774E4" class=" " role="menuitem" href="http://www.nytimes.com/pages/your-money/index.html">
+Your Money
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-0A13AF9D-C7B5-4E8A-B9BC-15AB4B572C94" class=" " role="menuitem" href="http://www.nytimes.com/pages/automobiles/index.html">
+Automobiles
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary A257D89A-0D3C-40AF-9C34-1A25A7947D94 sections -->
+
+ <div class="section " data-parent="navId-AD8090D7-4137-4D71-84C8-70DA3BD89778">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-9568A8E4-DD00-4A19-9357-55F8E84ADDB5" class="domestic expandable" role="menuitem" href="http://www.nytimes.com/pages/opinion/index.html#columnists" aria-haspopup="true" aria-expanded="false">
+Op-Ed Columnists
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+<div class="arrow arrow-left">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-6E604B7F-ACE7-4564-9203-0BD4CB02F419" class="domestic " role="menuitem" href="http://www.nytimes.com/pages/opinion/index.html#editorials">
+Editorials
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-A98552D7-2525-41F0-92E5-DFFA2F9619A9" class="domestic " role="menuitem" href="http://www.nytimes.com/pages/opinion/index.html#contributing">
+Contributing Writers
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-B3CE1F6E-B530-4C07-9B1C-98A1F9406C06" class="domestic " role="menuitem" href="http://www.nytimes.com/pages/opinion/index.html#op-ed">
+Op-Ed Contributors
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-D6E51A50-AA05-4E81-987C-3E0AF5DABBB4" class=" " role="menuitem" href="http://www.nytimes.com/pages/opinion/index.html#opinionator">
+Opinionator
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-7A239778-088E-4DD8-BEBF-649172041293" class="domestic " role="menuitem" href="http://www.nytimes.com/pages/opinion/index.html#letters">
+Letters
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-67D7F2A2-B495-4FFC-9478-1CE1965601D5" class=" " role="menuitem" href="http://www.nytimes.com/pages/opinion/index.html#sundayreview">
+Sunday Review
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-136660BD-D661-4731-A1D7-03204BED7923" class="domestic " role="menuitem" href="http://www.nytimes.com/pages/opinion/index.html#takingNote">
+Taking Note
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-4FB3EADA-B7BB-4587-AAB0-9F3909DF4ED0" class="domestic " role="menuitem" href="http://www.nytimes.com/roomfordebate">
+Room for Debate
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-8F7EBC39-9ED0-4603-8BCA-E9618B8A08A1" class=" " role="menuitem" href="http://topics.nytimes.com/top/opinion/thepubliceditor/index.html">
+Public Editor
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary AD8090D7-4137-4D71-84C8-70DA3BD89778 sections -->
+
+ <div class="section " data-parent="navId-09736473-CB3F-4B2F-9772-3AF128ABE12D">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-2312753B-E860-46C4-B544-1C0F70ABF41F" class="international expandable" role="menuitem" href="http://www.nytimes.com/pages/opinion/international/index.html#columnistsGlobal" aria-haspopup="true" aria-expanded="false">
+Op-Ed Columnists
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+<div class="arrow arrow-left">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-1F55AAA1-8287-4C9E-91B8-4402B7E3C855" class="international " role="menuitem" href="http://www.nytimes.com/pages/opinion/international/index.html#editorialsGlobal">
+Editorials
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-6CD3A7AF-B060-4251-B2A6-E3A1B8B09982" class="international " role="menuitem" href="http://www.nytimes.com/pages/opinion/international/index.html#contributing">
+Contributing Writers
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-FD915915-123F-4EEE-A0D1-58B15C0C545F" class="international " role="menuitem" href="http://www.nytimes.com/pages/opinion/international/index.html#op-edGlobal">
+Op-Ed Contributors
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-D6E51A50-AA05-4E81-987C-3E0AF5DABBB4" class=" " role="menuitem" href="http://www.nytimes.com/pages/opinion/index.html#opinionator">
+Opinionator
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-D4344F1A-7552-4908-84E8-E3120AE3F7B2" class="international " role="menuitem" href="http://www.nytimes.com/pages/opinion/international/index.html#letters">
+Letters
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-67D7F2A2-B495-4FFC-9478-1CE1965601D5" class=" " role="menuitem" href="http://www.nytimes.com/pages/opinion/index.html#sundayreview">
+Sunday Review
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-C94AF19E-C233-4966-BF29-7F1103B46A62" class="international " role="menuitem" href="http://www.nytimes.com/pages/opinion/international/index.html#takingNote">
+Taking Note
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-C46DD884-B4C6-43FE-AAF0-658ED47F6FA5" class="international " role="menuitem" href="http://www.nytimes.com/roomfordebate">
+Room for Debate
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-8F7EBC39-9ED0-4603-8BCA-E9618B8A08A1" class=" " role="menuitem" href="http://topics.nytimes.com/top/opinion/thepubliceditor/index.html">
+Public Editor
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary 09736473-CB3F-4B2F-9772-3AF128ABE12D sections -->
+
+ <div class="section " data-parent="navId-78FBAD45-31A9-4EC7-B172-7D62A2B9955E">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-157C94B4-918B-48FA-9E56-AA6347F2F44E" class=" " role="menuitem" href="http://bits.blogs.nytimes.com/">
+Bits
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-65229E4E-DAD7-459F-AFD3-2AB6D0374FFD" class=" " role="menuitem" href="http://www.nytimes.com/pages/technology/personaltech/index.html">
+Personal Tech
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary 78FBAD45-31A9-4EC7-B172-7D62A2B9955E sections -->
+
+ <div class="section " data-parent="navId-A4B35924-DB6C-4EA3-997D-450810F4FEE6">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-B831ACFB-B751-4F23-9B91-F1236878836C" class=" " role="menuitem" href="http://www.nytimes.com/section/science/earth">
+Environment
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-E048A75C-4A9C-4241-B38C-74752BBC5AB8" class=" " role="menuitem" href="http://www.nytimes.com/section/science/space">
+Space &amp; Cosmos
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary A4B35924-DB6C-4EA3-997D-450810F4FEE6 sections -->
+
+ <div class="section " data-parent="navId-7D6BE1AF-8CD8-430B-8B2A-17CD0EAA99AC">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-5A98BF31-516F-48DE-8736-17BEEF1F64C6" class=" " role="menuitem" href="http://www.nytimes.com/section/well">
+Well
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-67641EB3-B6FF-44F2-B10F-2F6A5C2EC7D7" class=" " role="menuitem" href="http://www.nytimes.com/pages/health/policy/index.html">
+Money &amp; Policy
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-DA27E208-2682-4B17-8996-CD35A339521B" class=" " role="menuitem" href="http://www.nytimes.com/health/guides/index.html">
+Health Guide
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary 7D6BE1AF-8CD8-430B-8B2A-17CD0EAA99AC sections -->
+
+ <div class="section " data-parent="navId-DE2B278B-2783-4506-AAD5-C15A5BB6DA1A">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-67CAE5A6-408D-44F3-827B-DD394E0467EF" class=" " role="menuitem" href="http://www.nytimes.com/pages/sports/baseball/index.html">
+Baseball
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-BA1B9016-F2F7-454B-BDF7-D4C58F6D05E9" class=" " role="menuitem" href="http://www.nytimes.com/pages/sports/ncaabasketball/index.html">
+Basketball: College
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-415FB1AB-3BED-4048-B61A-0E4096CE1DF6" class=" " role="menuitem" href="http://www.nytimes.com/pages/sports/basketball/index.html">
+Basketball: N.B.A.
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-ABBA0609-90E2-46A3-9AC5-B208ACC6C97B" class=" " role="menuitem" href="http://www.nytimes.com/pages/sports/ncaafootball/index.html">
+Football: College
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-F6B9D6C9-97AE-45DB-9686-72E44D8D3DAF" class=" " role="menuitem" href="http://www.nytimes.com/pages/sports/football/index.html">
+Football: N.F.L.
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-9F98FEDB-E7B3-4907-A56E-35320CC4C878" class=" " role="menuitem" href="http://www.nytimes.com/pages/sports/golf/index.html">
+Golf
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-BD14DADE-D513-4BD9-8AED-0CC63E58606C" class=" " role="menuitem" href="http://www.nytimes.com/pages/sports/hockey/index.html">
+Hockey
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-14F230C0-EBDB-4A78-AF7B-2C90C4739625" class=" " role="menuitem" href="http://www.nytimes.com/pages/sports/soccer/index.html">
+Soccer
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-D4DE47DA-76DD-4528-B539-98A6DFEFEFB3" class=" " role="menuitem" href="http://www.nytimes.com/pages/sports/tennis/index.html">
+Tennis
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary DE2B278B-2783-4506-AAD5-C15A5BB6DA1A sections -->
+
+ <div class="section " data-parent="navId-BE66F420-C51B-461D-B487-CACF62E94AAE">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-67CAE5A6-408D-44F3-827B-DD394E0467EF" class=" " role="menuitem" href="http://www.nytimes.com/pages/sports/baseball/index.html">
+Baseball
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-BA1B9016-F2F7-454B-BDF7-D4C58F6D05E9" class=" " role="menuitem" href="http://www.nytimes.com/pages/sports/ncaabasketball/index.html">
+Basketball: College
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-415FB1AB-3BED-4048-B61A-0E4096CE1DF6" class=" " role="menuitem" href="http://www.nytimes.com/pages/sports/basketball/index.html">
+Basketball: N.B.A.
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-ABBA0609-90E2-46A3-9AC5-B208ACC6C97B" class=" " role="menuitem" href="http://www.nytimes.com/pages/sports/ncaafootball/index.html">
+Football: College
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-F6B9D6C9-97AE-45DB-9686-72E44D8D3DAF" class=" " role="menuitem" href="http://www.nytimes.com/pages/sports/football/index.html">
+Football: N.F.L.
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-9F98FEDB-E7B3-4907-A56E-35320CC4C878" class=" " role="menuitem" href="http://www.nytimes.com/pages/sports/golf/index.html">
+Golf
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-BD14DADE-D513-4BD9-8AED-0CC63E58606C" class=" " role="menuitem" href="http://www.nytimes.com/pages/sports/hockey/index.html">
+Hockey
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-14F230C0-EBDB-4A78-AF7B-2C90C4739625" class=" " role="menuitem" href="http://www.nytimes.com/pages/sports/soccer/index.html">
+Soccer
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-D4DE47DA-76DD-4528-B539-98A6DFEFEFB3" class=" " role="menuitem" href="http://www.nytimes.com/pages/sports/tennis/index.html">
+Tennis
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary BE66F420-C51B-461D-B487-CACF62E94AAE sections -->
+
+ <div class="section " data-parent="navId-C5BFA7D5-359C-427B-90E6-6B7245A6CDD8">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-AB35105B-5032-41D9-86B1-06A221411B22" class=" " role="menuitem" href="http://www.nytimes.com/pages/arts/design/index.html">
+Art &amp; Design
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-7B052F64-13C5-4631-ACE4-F1BAA9706061" class=" " role="menuitem" href="http://www.nytimes.com/pages/books/index.html">
+Books
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-21A8F511-CA05-4797-AF76-17B61D3964CD" class=" " role="menuitem" href="http://www.nytimes.com/pages/arts/dance/index.html">
+Dance
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-62BF6D00-C2D2-420E-9986-791EECA152C9" class=" " role="menuitem" href="http://www.nytimes.com/pages/movies/index.html">
+Movies
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-E0A8CBEB-DDB5-4ADF-B5A4-60CB484ED991" class=" " role="menuitem" href="http://www.nytimes.com/pages/arts/music/index.html">
+Music
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-1B3D562C-A3F9-4083-9B6E-60C8A1F3FFB0" class=" " role="menuitem" href="http://www.nytimes.com/events/">
+N.Y.C. Events Guide
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-EF6D2985-BB93-4771-8155-CC3E2B5A7C73" class=" " role="menuitem" href="http://www.nytimes.com/pages/arts/television/index.html">
+Television
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-21D5B838-29CC-46D3-9006-879CAABC8F08" class=" " role="menuitem" href="http://www.nytimes.com/pages/theater/index.html">
+Theater
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-2558194D-A450-4F5B-8E90-8609A69E1D0E" class=" " role="menuitem" href="http://www.nytimes.com/watching">
+Watching
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary C5BFA7D5-359C-427B-90E6-6B7245A6CDD8 sections -->
+
+ <div class="section " data-parent="navId-0202D0E4-C59B-479A-BD42-6F1766459781">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-AB35105B-5032-41D9-86B1-06A221411B22" class=" " role="menuitem" href="http://www.nytimes.com/pages/arts/design/index.html">
+Art &amp; Design
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-7B052F64-13C5-4631-ACE4-F1BAA9706061" class=" " role="menuitem" href="http://www.nytimes.com/pages/books/index.html">
+Books
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-21A8F511-CA05-4797-AF76-17B61D3964CD" class=" " role="menuitem" href="http://www.nytimes.com/pages/arts/dance/index.html">
+Dance
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-62BF6D00-C2D2-420E-9986-791EECA152C9" class=" " role="menuitem" href="http://www.nytimes.com/pages/movies/index.html">
+Movies
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-E0A8CBEB-DDB5-4ADF-B5A4-60CB484ED991" class=" " role="menuitem" href="http://www.nytimes.com/pages/arts/music/index.html">
+Music
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-1B3D562C-A3F9-4083-9B6E-60C8A1F3FFB0" class=" " role="menuitem" href="http://www.nytimes.com/events/">
+N.Y.C. Events Guide
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-EF6D2985-BB93-4771-8155-CC3E2B5A7C73" class=" " role="menuitem" href="http://www.nytimes.com/pages/arts/television/index.html">
+Television
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-21D5B838-29CC-46D3-9006-879CAABC8F08" class=" " role="menuitem" href="http://www.nytimes.com/pages/theater/index.html">
+Theater
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-2558194D-A450-4F5B-8E90-8609A69E1D0E" class=" " role="menuitem" href="http://www.nytimes.com/watching">
+Watching
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary 0202D0E4-C59B-479A-BD42-6F1766459781 sections -->
+
+ <div class="section " data-parent="navId-B3DFBD82-F298-43B3-9458-219B4F6AA2A5">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-7A870CC7-2938-4C8E-B8F2-BD54465ECB58" class=" " role="menuitem" href="http://www.nytimes.com/pages/fashion/mens-style/index.html">
+Men's Style
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-38E82E5A-D1EE-4A54-BC61-9155577ABAED" class=" " role="menuitem" href="http://www.nytimes.com/column/on-the-runway">
+On the Runway
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-D0F14EC9-05BC-4188-AE41-A4CD18FD19AD" class=" " role="menuitem" href="http://www.nytimes.com/pages/fashion/weddings/index.html">
+Weddings
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary B3DFBD82-F298-43B3-9458-219B4F6AA2A5 sections -->
+
+ <div class="section " data-parent="navId-CC9E2674-F6C4-4A39-813B-F5AB0C515CEA">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-7A870CC7-2938-4C8E-B8F2-BD54465ECB58" class=" " role="menuitem" href="http://www.nytimes.com/pages/fashion/mens-style/index.html">
+Men's Style
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-38E82E5A-D1EE-4A54-BC61-9155577ABAED" class=" " role="menuitem" href="http://www.nytimes.com/column/on-the-runway">
+On the Runway
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-D0F14EC9-05BC-4188-AE41-A4CD18FD19AD" class=" " role="menuitem" href="http://www.nytimes.com/pages/fashion/weddings/index.html">
+Weddings
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary CC9E2674-F6C4-4A39-813B-F5AB0C515CEA sections -->
+
+ <div class="section " data-parent="navId-D9C94A2B-0364-4D25-8383-592CC66F82D4">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-EC43C53C-07AC-42DF-8EA3-34F4EFCD6524" class=" " role="menuitem" href="http://cooking.nytimes.com">
+Cooking
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-63AB32FE-1AA9-4C10-85CF-86088BC725B7" class=" " role="menuitem" href="http://www.nytimes.com/restaurants/search/">
+Restaurant Search
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary D9C94A2B-0364-4D25-8383-592CC66F82D4 sections -->
+
+ <div class="section " data-parent="navId-FDEFB811-B483-4C3D-A25A-FD07BE5EAD96">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-EC43C53C-07AC-42DF-8EA3-34F4EFCD6524" class=" " role="menuitem" href="http://cooking.nytimes.com">
+Cooking
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-63AB32FE-1AA9-4C10-85CF-86088BC725B7" class=" " role="menuitem" href="http://www.nytimes.com/restaurants/search/">
+Restaurant Search
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary FDEFB811-B483-4C3D-A25A-FD07BE5EAD96 sections -->
+
+ <div class="section " data-parent="navId-92720057-BCB6-4BDB-9351-12F29393259F">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-D896FA09-BB54-4280-BAC5-268E5CAC9D84" class=" " role="menuitem" href="http://www.nytimes.com/real-estate/the-high-end">
+The High End
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-00B951BD-2AE1-4E28-BAF7-18D1FAA6AA97" class=" " role="menuitem" href="http://www.nytimes.com/pages/realestate/commercial/index.html">
+Commercial
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-BC640596-8EEE-4DF9-A009-55F8BA5ACD04" class=" " role="menuitem" href="https://itunes.apple.com/us/app/nytimesrealestate/id337316535">
+iPhone App
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-9AE506A2-9337-4A5E-8499-E3781316FF13" class=" " role="menuitem" href="http://www.nytimes.com/real-estate/find-a-home">
+Find A Home
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-E4FBD546-F591-4961-9A7B-1348506F24ED" class=" " role="menuitem" href="http://www.nytimes.com/real-estate/my-real-estate">
+My Real Estate
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-58BA565B-0B7B-4DCF-9051-A8F77BF82FC5" class=" " role="menuitem" href="https://realestateads.nytimes.com/">
+List Your Home
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary 92720057-BCB6-4BDB-9351-12F29393259F sections -->
+
+ <div class="section video" data-parent="navId-432A1823-3F24-43C0-8004-79088F94E754">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-FAF08756-1545-4233-B9D6-FEFA1115CFA6" class=" " role="menuitem" href="http://www.nytimes.com/video/us-politics">
+U.S. &amp; Politics
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-63D27866-95B7-47BC-9B53-E250CA21E182" class=" " role="menuitem" href="http://www.nytimes.com/video/world">
+International
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-281517E5-9CC5-472C-B46A-B9CF9AAE72F2" class=" " role="menuitem" href="http://www.nytimes.com/video/n-y-region">
+N.Y.
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-C5D5043A-85D5-4E97-BE08-8D0278F97101" class=" " role="menuitem" href="http://www.nytimes.com/video/op-docs">
+Op-Docs
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-6AB2572C-5341-4979-8D74-E38528FE0159" class=" " role="menuitem" href="http://www.nytimes.com/video/opinion">
+Opinion
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-50BEEE33-737A-4EBE-98D7-65593C23AE6C" class=" " role="menuitem" href="http://www.nytimes.com/video/times-documentaries">
+Times Documentaries
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-18CC8E0D-C9B6-4A81-8EB6-9AC98B296DDB" class=" " role="menuitem" href="http://www.nytimes.com/video/business">
+Business
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-457A829A-6C9D-47A9-B91E-2212766B6648" class=" " role="menuitem" href="http://www.nytimes.com/video/technology">
+Tech
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-4CF1B9A6-4476-45CF-AF12-53B7EB39847F" class=" " role="menuitem" href="http://www.nytimes.com/video/arts">
+Culture
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-3BAEEBB7-10C5-43F9-A728-26DCE4D44B48" class=" " role="menuitem" href="http://www.nytimes.com/video/style">
+Style
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-1CB4FCE4-8D2A-4313-9EBC-32F88BD90A35" class=" " role="menuitem" href="http://www.nytimes.com/video/t-magazine">
+T Magazine
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-6872F49C-F4A1-458D-8410-B253D44B8E9C" class=" " role="menuitem" href="http://www.nytimes.com/video/health">
+Health
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-A3E833FD-09AE-4B1B-B4A7-AED0CF1CC74C" class=" " role="menuitem" href="http://www.nytimes.com/video/dining-and-wine">
+Food
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-380D52A1-A468-4069-BCA9-52D6E2625D63" class=" " role="menuitem" href="http://www.nytimes.com/video/travel">
+Travel
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-DAB634A7-D513-49CA-BBEF-9FB321BF6798" class=" " role="menuitem" href="http://www.nytimes.com/video/sports">
+Sports
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-64C01CC7-C6F7-4E1B-A4FD-69B6D5B647FE" class=" " role="menuitem" href="http://www.nytimes.com/video/real-estate">
+Real Estate
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-6F4D6D03-8D74-4A7C-939D-2ADEE18731CB" class=" " role="menuitem" href="http://www.nytimes.com/video/science">
+Science
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary 432A1823-3F24-43C0-8004-79088F94E754 sections -->
+
+ <div class="section " data-parent="navId-0442C365-4B63-4B63-B9DE-3C28319CB622">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-EC1380B0-3124-4A9B-82CF-9EA22D988C8F" class=" " role="menuitem" href="http://nytlive.nytimes.com/womenintheworld">
+Women in the World
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-61F54F21-A0A9-46B9-BDC5-22BDDAD4007A" class=" " role="menuitem" href="http://www.nytimes.com/newwork">
+New Work Summit
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-2D56941E-C5DA-4474-BB5F-DEF1CABBFAD4" class=" " role="menuitem" href="http://www.inytartfortomorrow.com/">
+Art for Tomorrow
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-CB602764-3E17-4A16-BBD4-08138CFDBD81" class=" " role="menuitem" href="http://nythigheredleaders.com/">
+Higher Ed Leaders Forum
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-AC54D2A5-3C94-4ECF-8FBF-AC4E67AA3A36" class=" " role="menuitem" href="http://nytcitiesfortomorrow.com/">
+Cities for Tomorrow
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-DF70A828-4A23-4295-9560-8D8B5FC097B0" class=" " role="menuitem" href="http://athensdemocracyforum.com/">
+Athens Democracy Forum
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-81785E85-A8E4-43E5-B6EA-C623C887B9BB" class=" " role="menuitem" href="http://www.nytluxurytravel.com">
+Luxury Travel Conference
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-E3E7342B-6340-41F7-BFAC-9FA6FAEC2546" class=" " role="menuitem" href="http://www.nytenergy.com">
+Energy for Tomorrow
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-0273790F-9086-41CE-82F1-B83A0FAEED21" class=" " role="menuitem" href="http://nytdealbookconference.com/">
+DealBook Conference
+
+</a>
+ </li>
+
+ </ul>
+ </div>
+ <!-- close secondary 0442C365-4B63-4B63-B9DE-3C28319CB622 sections -->
+
+ <div class="section section-more hidden" data-parent="navId-more-section">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="hidden">
+ <a id="navId-A963B567-7D3D-4D0C-9E47-BF91609EFCE7" class="domestic " role="menuitem" href="http://www.nytimes.com">
+Home Page
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-F4E6EDF7-81C6-4DB2-8EB9-5A5E8A95CEC1" class="international " role="menuitem" href="http://international.nytimes.com/?iht">
+Home Page
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-9A43D8FC-F4CF-44D9-9B34-138D30468F8F" class=" expandable" role="menuitem" href="http://www.nytimes.com/pages/world/index.html" aria-haspopup="true" aria-expanded="false">
+World
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-23FD6C8B-62D5-4CEA-A331-6C2A9A1223BE" class=" expandable" role="menuitem" href="http://www.nytimes.com/pages/national/index.html" aria-haspopup="true" aria-expanded="false">
+U.S.
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-80E6DEE6-87E4-4AD0-9152-14FA6B07E5AB" class=" expandable" role="menuitem" href="http://www.nytimes.com/pages/politics/index.html" aria-haspopup="true" aria-expanded="false">
+Politics
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-C4DC8C0C-E148-4201-BF10-82F1C903DBFB" class=" expandable" role="menuitem" href="http://www.nytimes.com/pages/nyregion/index.html" aria-haspopup="true" aria-expanded="false">
+N.Y.
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-104D1E63-9701-497B-8CF4-A4D120C9014E" class="domestic expandable" role="menuitem" href="http://www.nytimes.com/pages/business/index.html" aria-haspopup="true" aria-expanded="false">
+Business
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-A257D89A-0D3C-40AF-9C34-1A25A7947D94" class="international expandable" role="menuitem" href="http://www.nytimes.com/pages/business/international/index.html" aria-haspopup="true" aria-expanded="false">
+Business
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-AD8090D7-4137-4D71-84C8-70DA3BD89778" class="domestic expandable" role="menuitem" href="http://www.nytimes.com/pages/opinion/index.html" aria-haspopup="true" aria-expanded="false">
+Opinion
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-09736473-CB3F-4B2F-9772-3AF128ABE12D" class="international expandable" role="menuitem" href="http://www.nytimes.com/pages/opinion/international/index.html" aria-haspopup="true" aria-expanded="false">
+Opinion
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-78FBAD45-31A9-4EC7-B172-7D62A2B9955E" class=" expandable" role="menuitem" href="http://www.nytimes.com/pages/technology/index.html" aria-haspopup="true" aria-expanded="false">
+Tech
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-A4B35924-DB6C-4EA3-997D-450810F4FEE6" class=" expandable" role="menuitem" href="http://www.nytimes.com/section/science" aria-haspopup="true" aria-expanded="false">
+Science
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-7D6BE1AF-8CD8-430B-8B2A-17CD0EAA99AC" class=" expandable" role="menuitem" href="http://www.nytimes.com/pages/health/index.html" aria-haspopup="true" aria-expanded="false">
+Health
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-DE2B278B-2783-4506-AAD5-C15A5BB6DA1A" class="domestic expandable" role="menuitem" href="http://www.nytimes.com/pages/sports/index.html" aria-haspopup="true" aria-expanded="false">
+Sports
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-BE66F420-C51B-461D-B487-CACF62E94AAE" class="international expandable" role="menuitem" href="http://www.nytimes.com/pages/sports/international/index.html" aria-haspopup="true" aria-expanded="false">
+Sports
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+
+ </ul>
+ </div>
+
+ <div class="section section-more hidden" data-parent="navId-more-section">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="hidden">
+ <a id="navId-C5BFA7D5-359C-427B-90E6-6B7245A6CDD8" class="domestic expandable" role="menuitem" href="http://www.nytimes.com/pages/arts/index.html" aria-haspopup="true" aria-expanded="false">
+Arts
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-0202D0E4-C59B-479A-BD42-6F1766459781" class="international expandable" role="menuitem" href="http://www.nytimes.com/pages/arts/international/index.html" aria-haspopup="true" aria-expanded="false">
+Arts
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-B3DFBD82-F298-43B3-9458-219B4F6AA2A5" class="domestic expandable" role="menuitem" href="http://www.nytimes.com/pages/fashion/index.html" aria-haspopup="true" aria-expanded="false">
+Fashion &amp; Style
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-CC9E2674-F6C4-4A39-813B-F5AB0C515CEA" class="international expandable" role="menuitem" href="http://www.nytimes.com/pages/style/international/index.html" aria-haspopup="true" aria-expanded="false">
+Fashion &amp; Style
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-D9C94A2B-0364-4D25-8383-592CC66F82D4" class="domestic expandable" role="menuitem" href="http://www.nytimes.com/pages/dining/index.html" aria-haspopup="true" aria-expanded="false">
+Food
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-FDEFB811-B483-4C3D-A25A-FD07BE5EAD96" class="international expandable" role="menuitem" href="http://www.nytimes.com/pages/dining/international/index.html" aria-haspopup="true" aria-expanded="false">
+Food
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-FDA10AC4-4738-4099-91E8-15584765C8D7" class=" " role="menuitem" href="http://www.nytimes.com/section/travel">
+Travel
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-E57A148E-0CB9-4C02-966D-28B119710151" class=" " role="menuitem" href="http://www.nytimes.com/pages/magazine/index.html">
+Magazine
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-052C33AD-1404-4DB6-AA70-0901DB1AD95B" class=" " role="menuitem" href="http://www.nytimes.com/section/t-magazine">
+T Magazine
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-92720057-BCB6-4BDB-9351-12F29393259F" class=" expandable" role="menuitem" href="http://www.nytimes.com/section/realestate" aria-haspopup="true" aria-expanded="false">
+Real Estate
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-CEDDB6A8-F7E1-47A2-AC53-E28C616DFCD5" class=" " role="menuitem" href="http://www.nytimes.com/pages/obituaries/index.html">
+Obituaries
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-432A1823-3F24-43C0-8004-79088F94E754" class=" expandable" role="menuitem" href="http://www.nytimes.com/video" aria-haspopup="true" aria-expanded="false">
+Video
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-D64FAE4C-4425-4E5A-B898-6C8CB59F9957" class=" " role="menuitem" href="http://www.nytimes.com/upshot/">
+The Upshot
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="hidden">
+ <a id="navId-0442C365-4B63-4B63-B9DE-3C28319CB622" class=" expandable" role="menuitem" tabindex="0" aria-haspopup="true" aria-expanded="false">
+Conferences
+
+<div class="arrow arrow-right">
+<div class="arrow-conceal"></div>
+</div>
+
+
+</a>
+ </li>
+
+
+
+ </ul>
+ </div>
+
+ <div class="section section-more" data-parent="navId-more-section">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="hidden">
+ <a id="navId-5C13EEDD-D905-4D8C-A284-6859EA434563" class=" " role="menuitem" href="http://www.nytimes.com/crosswords/">
+Crossword
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-99C17804-A343-4A76-BF04-F5793ADA48D1" class=" " role="menuitem" href="http://www.nytimes.com/times-insider">
+Times Insider
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-614CE30F-3D4A-4194-9C6F-AE5901C5762D" class=" " role="menuitem" href="http://www.nytimes.com/section/learning">
+The Learning Network
+
+</a>
+ </li>
+
+
+
+ </ul>
+ </div>
+
+ <div class="section section-more " data-parent="navId-more-section">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-8FB1308A-FFE4-4BED-ADF6-659A680D0884" class=" " role="menuitem" href="http://www.nytimes.com/pages/multimedia/index.html">
+Multimedia
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-108F7745-BAD9-4630-87BB-4FB4ED7CAA11" class=" " role="menuitem" href="http://lens.blogs.nytimes.com/">
+Photography
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-EDCE4B29-2B91-4241-82E6-C972E9449F49" class=" " role="menuitem" href="http://www.nytimes.com/podcasts/">
+Podcasts
+
+</a>
+ </li>
+
+
+
+ </ul>
+ </div>
+
+ <div class="section section-more " data-parent="navId-more-section">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-6101A43A-8BDE-45FF-AAD5-EF7396F83AC9" class=" " role="menuitem" href="https://www.nytimes.com/store/?&amp;t=qry542&amp;utm_source=nytimes&amp;utm_medium=HPB&amp;utm_content=hp_browsetree&amp;utm_campaign=NYT-HP&amp;module=SectionsNav&amp;action=click&amp;region=TopBar&amp;version=BrowseTree&amp;contentCollection=NYT%20Store&amp;contentPlacement=2&amp;pgtype=Homepage">
+NYT Store
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-52A8A3F2-F138-425B-A63F-722E2BBC9372" class=" " role="menuitem" href="http://www.nytwineclub.com">
+NYT Wine Club
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-081347DE-FF02-4B6C-889B-9AE59F391833" class=" " role="menuitem" href="http://nytedu.com">
+nytEducation
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-797F8D17-1632-435D-B3DB-708FC4B4BAEF" class=" " role="menuitem" href="http://www.nytimes.com/times-journeys/?utm_source=nytimes&amp;utm_medium=HPLink&amp;utm_content=hp_browsetree&amp;utm_campaign=NYT-HP&amp;module=SectionsNav&amp;action=click&amp;region=TopBar&amp;version=BrowseTree&amp;contentCollection=Times%20Journeys&amp;contentPlacement=2&amp;pgtype=Homepage">
+Times Journeys
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-53CB229C-5F34-4C32-8B8C-6F7B7626BBDD" class=" " role="menuitem" href="https://www.chefd.com/pages/new-york-times-cooking-meal-plan?utm_campaign=web1_20160617&amp;utm_medium=partner&amp;utm_source=nyt">
+Meal Kits
+
+</a>
+ </li>
+
+
+
+ </ul>
+ </div>
+
+ <div class="section section-more " data-parent="navId-more-section">
+ <ul class="secondary" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-FED853D9-D192-46F6-8D18-447803EB4A7B" class=" " role="menuitem" href="http://www.nytimes.com/seeallnav">
+Subscribe
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-61E9BFEA-F509-4BCA-ADC6-32C5A30B83FD" class=" " role="menuitem" href="http://www.nytimes.com/membercenter">
+Manage Account
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-0DAA7CFE-196B-4878-B899-5363070098EC" class=" " role="menuitem" href="http://www.nytimes.com/pages/todayspaper/index.html">
+Today's Paper
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-1FBDDF2B-64F5-4DB3-8093-F0CCB7808799" class=" " role="menuitem" href="http://www.nytimes.com/interactive/blogs/directory.html">
+Blogs
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-D3E5F163-D939-4FD5-8FB6-C6AD31748E30" class=" " role="menuitem" href="http://www.nytimes.com/pages/topics/">
+Times Topics
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-6BBF5308-5EA3-4B25-885F-393F7372F27F" class=" " role="menuitem" href="http://www.nytimes.com/marketing/tools-and-services/">
+Tools &amp; Services
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-288E1691-DA3B-457A-8B06-D10A1351E7B9" class=" " role="menuitem" href="http://www.nytimes.com/section/jobs">
+Jobs
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-D4C7C57A-E74D-44C3-9D0E-0AE6B715610F" class=" " role="menuitem" href="http://www.nytimes.com/ref/classifieds/">
+Classifieds
+
+</a>
+ </li>
+
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-6DD9D623-A907-4623-9C5A-9409972B76DA" class=" " role="menuitem" href="http://www.nytimes.com/pages/corrections/index.html">
+Corrections
+
+</a>
+ </li>
+
+
+
+ </ul>
+ </div>
+ </div>
+ <!-- close secondary modal -->
+ </div>
+ <div class="tertiary-container">
+ <div class="header">
+ <h5 class="section-heading">
+ <a href="" role="menuitem"></a>
+ </h5>
+ </div>
+
+ <ul class="tertiary" data-parent="navId-9568A8E4-DD00-4A19-9357-55F8E84ADDB5" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-B70131F0-6B2A-4A93-8705-0B9F7E9B800F" class=" " role="menuitem" href="http://www.nytimes.com/column/charles-m-blow">
+Charles M. Blow
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-A2B32B86-C320-49D8-85D3-4AC6BCA2F2C2" class=" " role="menuitem" href="http://www.nytimes.com/column/david-brooks">
+David Brooks
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-1A8CCD43-E5E3-4801-8CBA-0378A0E17530" class=" " role="menuitem" href="http://www.nytimes.com/column/frank-bruni">
+Frank Bruni
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-A60B44E8-59B1-4687-B20F-D5C71A021C38" class=" " role="menuitem" href="http://www.nytimes.com/column/roger-cohen">
+Roger Cohen
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-AED55B1F-22EC-45F2-88B6-3B7F340C1949" class=" " role="menuitem" href="http://www.nytimes.com/column/gail-collins">
+Gail Collins
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-6EC4E971-BBD1-4ED5-B61D-E27A3314AE61" class=" " role="menuitem" href="http://www.nytimes.com/column/ross-douthat">
+Ross Douthat
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-706C9233-C545-4A9E-AB0B-2B6A21C6AF9F" class=" " role="menuitem" href="http://www.nytimes.com/column/maureen-dowd">
+Maureen Dowd
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-3D56EF48-CA97-4209-A878-6430FB9A2C5E" class=" " role="menuitem" href="http://www.nytimes.com/column/thomas-l-friedman">
+Thomas L. Friedman
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-D6A41F41-19BB-48C6-B121-B89359F1048F" class=" " role="menuitem" href="http://www.nytimes.com/column/nicholas-kristof">
+Nicholas Kristof
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-85905471-3FA0-423F-9D26-1BBE69237899" class=" " role="menuitem" href="http://www.nytimes.com/column/paul-krugman">
+Paul Krugman
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-B1CD03FF-773D-46AB-B3C1-4FAE8565F551" class=" " role="menuitem" href="http://www.nytimes.com/column/joe-nocera">
+Joe Nocera
+
+</a>
+ </li>
+
+ </ul>
+
+ <ul class="tertiary" data-parent="navId-2312753B-E860-46C4-B544-1C0F70ABF41F" role="menu">
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-B70131F0-6B2A-4A93-8705-0B9F7E9B800F" class=" " role="menuitem" href="http://www.nytimes.com/column/charles-m-blow">
+Charles M. Blow
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-A2B32B86-C320-49D8-85D3-4AC6BCA2F2C2" class=" " role="menuitem" href="http://www.nytimes.com/column/david-brooks">
+David Brooks
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-1A8CCD43-E5E3-4801-8CBA-0378A0E17530" class=" " role="menuitem" href="http://www.nytimes.com/column/frank-bruni">
+Frank Bruni
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-A60B44E8-59B1-4687-B20F-D5C71A021C38" class=" " role="menuitem" href="http://www.nytimes.com/column/roger-cohen">
+Roger Cohen
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-AED55B1F-22EC-45F2-88B6-3B7F340C1949" class=" " role="menuitem" href="http://www.nytimes.com/column/gail-collins">
+Gail Collins
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-6EC4E971-BBD1-4ED5-B61D-E27A3314AE61" class=" " role="menuitem" href="http://www.nytimes.com/column/ross-douthat">
+Ross Douthat
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-706C9233-C545-4A9E-AB0B-2B6A21C6AF9F" class=" " role="menuitem" href="http://www.nytimes.com/column/maureen-dowd">
+Maureen Dowd
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-3D56EF48-CA97-4209-A878-6430FB9A2C5E" class=" " role="menuitem" href="http://www.nytimes.com/column/thomas-l-friedman">
+Thomas L. Friedman
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-D6A41F41-19BB-48C6-B121-B89359F1048F" class=" " role="menuitem" href="http://www.nytimes.com/column/nicholas-kristof">
+Nicholas Kristof
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-85905471-3FA0-423F-9D26-1BBE69237899" class=" " role="menuitem" href="http://www.nytimes.com/column/paul-krugman">
+Paul Krugman
+
+</a>
+ </li>
+
+ <li role="presentation" class="menuitem-visible">
+ <a id="navId-B1CD03FF-773D-46AB-B3C1-4FAE8565F551" class=" " role="menuitem" href="http://www.nytimes.com/column/joe-nocera">
+Joe Nocera
+
+</a>
+ </li>
+
+ </ul>
+
+ </div>
+ </div>
+ <div class="modal-footer">
+
+ </div>
+ <button type="button" class="modal-close hidden" aria-disabled="false"><i class="icon"></i><span class="visually-hidden">Close this modal window</span></button>
+ <div class="modal-pointer modal-pointer-left-top">
+ <div class="modal-pointer-conceal"></div>
+ </div>
+ </div>
+ </div>
+ <div id="user-profile-modal" class="modal-container user-profile-modal-container" style="display: none;">
+ <div class="overlay" style="display: block;"></div>
+ <div class="modal user-profile-modal " style="width: undefined;" role="dialog" aria-labelledby="user-profile-modal-modal-heading" tabindex="-1">
+ <div class="modal-header">
+ <h3 class="modal-heading" id="user-profile-modal-modal-heading">Edit Profile</h3>
+ <h4 class="modal-subheading">Your profile is public. It will appear with any comments you leave on NYTimes.com</h4>
+ </div>
+ <div class="modal-content">
+ <div class="user-profile-form-control form-control user-profile-form-control-loading">
+
+ </div>
+ <!-- close user-profile-form-control -->
+ </div>
+ <div class="modal-footer">
+
+ </div>
+ <button type="button" class="modal-close " aria-disabled="false"><i class="icon"></i><span class="visually-hidden">Close this modal window</span></button>
+ <div class="modal-pointer modal-pointer-fixed">
+ <div class="modal-pointer-conceal"></div>
+ </div>
+ </div>
+ </div>
+ <div id="user-settings-modal" class="modal-container user-settings-modal-container" style="display: none;">
+ <div class="overlay" style="display: none;"></div>
+ <div class="modal user-settings-modal " style="width: 260px;" role="dialog" aria-labelledby="user-settings-modal-modal-heading" tabindex="-1">
+ <div class="modal-header">
+ <h3 class="modal-heading" id="user-settings-modal-modal-heading"></h3>
+
+ </div>
+ <div class="modal-content">
+ <div class="menu edition-menu">
+ <h5 class="modal-heading">Edition</h5>
+ <ul>
+
+ <li><a href="http://www.nytimes.com" data-edition="us" class="selected">English</a></li>
+
+ <li><a href="http://cn.nytimes.com" data-edition="chinese">中文 (Chinese)</a></li>
+ <li><a href="http://www.nytimes.com/es/" data-edition="spanish">Español</a></li>
+ </ul>
+ </div>
+ <div class="menu help-menu">
+ <h5 class="modal-heading">Help</h5>
+ <ul>
+ <li><a href="http://www.nytimes.com/content/help/front.html">FAQ</a></li>
+ <li><a href="http://www.nytimes.com/content/help/contact/directory.html">Contact Us</a></li>
+ </ul>
+ </div>
+
+ <div class="menu type-sizer-menu">
+ <h5 class="modal-heading">Type Size</h5>
+ <ul>
+ <li data-size="small" class="type-sizer-small type-size-selected"><a href="javascript:;">A <span class="visually-hidden">Type size small</span></a></li>
+ <li data-size="medium" class="type-sizer-medium"><a href="javascript:;">A <span class="visually-hidden">Type size medium</span></a></li>
+ <li data-size="large" class="type-sizer-large"><a href="javascript:;">A <span class="visually-hidden">Type size large</span></a></li>
+ </ul>
+ </div>
+
+ </div>
+ <div class="modal-footer">
+
+ </div>
+ <button type="button" class="modal-close hidden" aria-disabled="false"><i class="icon"></i><span class="visually-hidden">Close this modal window</span></button>
+ <div class="modal-pointer modal-pointer-up-right">
+ <div class="modal-pointer-conceal"></div>
+ </div>
+ </div>
+ </div>
+ <div id="login-modal" class="modal-container login-modal-container" style="display: none;">
+ <div class="overlay" style="display: block;"></div>
+ <div class="modal login-modal account-modal" style="width: undefined;" role="dialog" aria-labelledby="login-modal-modal-heading" tabindex="-1">
+ <div class="modal-header">
+ <h3 class="modal-heading" id="login-modal-modal-heading">Log in</h3>
+ <h4 class="modal-subheading">To save articles or get newsletters, alerts or recommendations – all free.</h4>
+ </div>
+ <div class="modal-content">
+ <div class="buttons">
+ <button id="facebook-oauth-button-login-modal" data-provider-name="facebook" class="button oauth-button facebook-oauth-button">
+<i class="icon sprite-icon"></i>
+<span class="button-text">Log in with Facebook</span>
+</button>
+ <button id="google-oauth-button-login-modal" data-provider-name="google" class="button oauth-button google-oauth-button">
+<i class="icon sprite-icon"></i>
+<span class="button-text">Log in with Google</span>
+</button>
+ </div>
+ <!-- close buttons -->
+ <div class="separator">
+ <span class="separator-text">OR</span>
+ </div>
+ <div class="login-form-control form-control">
+ <form id="login-form" class="login-form" role="form" method="post" action="https://myaccount.nytimes.com/auth/login?URI=https%3A%2F%2Fwww.nytimes.com%2F2016%2F07%2F30%2Fbusiness%2Fdealbook%2Fyahoos-sale-to-verizon-leaves-shareholders-with-little-say.html&amp;OQ=_r%3D0">
+ <div class="control">
+ <div class="label-container visually-hidden">
+ <label for="login-email" id="login-email-label">Email address</label>
+ </div>
+ <div class="field-container">
+ <input id="login-email" name="userid" class="text login-email" placeholder="Email address" aria-labelledby="login-email-label" aria-required="true" type="text" />
+ <button type="button" class="button clear-button" tabindex="-1" aria-describedby="clear-email-description"><i class="icon"></i><span class="visually-hidden" id="clear-email-description">Clear this text input</span></button>
+ </div>
+ </div>
+ <div class="control">
+ <div class="label-container visually-hidden">
+ <label for="login-password" id="login-password-label">Password</label>
+ </div>
+ <div class="field-container">
+ <input id="login-password" name="password" class="text login-password" placeholder="Password" data-type="password" aria-labelledby="login-password-label" aria-required="true" type="password" />
+ <button type="button" class="button clear-button" tabindex="-1" aria-describedby="clear-password-description"><i class="icon"></i><span class="visually-hidden" id="clear-password-description">Clear this text input</span></button>
+ </div>
+ </div>
+ <div class="control user-action-control layout-horizontal">
+ <div class="control checkbox-control">
+ <div class="field-container">
+ <input id="login-remember-checkbox" name="login-remember" class="checkbox login-remember" checked="checked" aria-labelledby="login-remember-label" aria-checked="true" value="" type="checkbox" />
+ </div>
+ <div class="label-container">
+ <label for="login-remember" class="checkbox-label" id="login-remember-label">Remember me</label>
+ </div>
+ </div>
+ <p class="form-hint password-hint"><a href="https://myaccount.nytimes.com/seg/forgot-password?EXIT_URI=https%3A%2F%2Fwww.nytimes.com%2F2016%2F07%2F30%2Fbusiness%2Fdealbook%2Fyahoos-sale-to-verizon-leaves-shareholders-with-little-say.html%3F_r%3D0">Forgot password?</a></p>
+ </div>
+ <div class="control">
+ <p class="disclaimer"><a href="http://www.nytimes.com/content/help/rights/terms/terms-of-service.html">Terms of Service</a> <a href="http://www.nytimes.com/content/help/rights/privacy/policy/privacy-policy.html">Privacy Policy</a></p>
+ </div>
+ <div class="control button-control">
+ <button id="login-send-button" class="button login-button">Log in</button>
+ </div>
+ <input name="is_continue" value="1" type="hidden" />
+ <input id="account-form-token" name="token" value="" type="hidden" />
+ <input id="account-form-expiration" name="expires" value="" type="hidden" />
+ <input id="login-remember" name="remember" value="1" type="hidden" />
+ </form>
+ </div>
+ <!-- close login-form-control -->
+ </div>
+ <div class="modal-footer">
+ <p class="user-action registration-modal-trigger">Don’t have an account? <a href="javascript:;">Sign Up</a></p>
+ </div>
+ <button type="button" class="modal-close " aria-disabled="false"><i class="icon"></i><span class="visually-hidden">Close this modal window</span></button>
+ <div class="modal-pointer modal-pointer-fixed">
+ <div class="modal-pointer-conceal"></div>
+ </div>
+ </div>
+ </div>
+ <div id="registration-modal" class="modal-container registration-modal-container" style="display: none;">
+ <div class="overlay" style="display: block;"></div>
+ <div class="modal registration-modal account-modal" style="width: undefined;" role="dialog" aria-labelledby="registration-modal-modal-heading" tabindex="-1">
+ <div class="modal-header">
+ <h3 class="modal-heading" id="registration-modal-modal-heading">Sign up</h3>
+ <h4 class="modal-subheading">To save articles or get newsletters, alerts or recommendations – all free.</h4>
+ </div>
+ <div class="modal-content">
+ <div class="buttons">
+ <button id="facebook-oauth-button-registration-modal" data-provider-name="facebook" class="button oauth-button facebook-oauth-button">
+<i class="icon sprite-icon"></i>
+<span class="button-text">Sign up with Facebook</span>
+</button>
+ <button id="google-oauth-button-registration-modal" data-provider-name="google" class="button oauth-button google-oauth-button">
+<i class="icon sprite-icon"></i>
+<span class="button-text">Sign up with Google</span>
+</button>
+ </div>
+ <!-- close buttons -->
+ <div class="separator">
+ <span class="separator-text">OR</span>
+ </div>
+ <div class="registration-form-control form-control">
+ <form id="registration-form" class="registration-form" role="form" method="post" action="https://myaccount.nytimes.com/register?URI=https%3A%2F%2Fwww.nytimes.com%2F2016%2F07%2F30%2Fbusiness%2Fdealbook%2Fyahoos-sale-to-verizon-leaves-shareholders-with-little-say.html&amp;OQ=_r%3D0">
+ <div class="control">
+ <div class="label-container visually-hidden">
+ <label for="register-email" id="register-email-label">Email address</label>
+ </div>
+ <div class="field-container">
+ <input id="register-email" name="email_address" class="text register-email" placeholder="Email address" aria-labelledby="register-email-label" aria-required="true" type="email" />
+ <button type="button" class="button clear-button" tabindex="-1" aria-describedby="clear-email-description"><i class="icon"></i><span class="visually-hidden" id="clear-email-description">Clear this text input</span></button>
+ </div>
+ </div>
+ <!-- close control -->
+ <div class="control">
+ <div class="label-container visually-hidden">
+ <label for="register-password" id="register-password-label">Password</label>
+ </div>
+ <div class="field-container">
+ <input id="register-password" name="password1" class="text register-password" placeholder="Password" data-type="password" aria-labelledby="register-password-label" aria-required="true" type="password" />
+ <button type="button" class="button clear-button" tabindex="-1" aria-describedby="clear-password-description"><i class="icon"></i><span class="visually-hidden" id="clear-password-description">Clear this text input</span></button>
+ </div>
+ </div>
+ <!-- close control -->
+ <div class="control">
+ <div class="label-container visually-hidden">
+ <label for="retype-password" id="retype-password-label">Retype password</label>
+ </div>
+ <div class="field-container">
+ <input id="retype-password" name="password2" class="text retype-password" placeholder="Retype password" data-type="password" aria-labelledby="retype-password-label" aria-required="true" type="password" />
+ <button type="button" class="button clear-button" tabindex="-1" aria-describedby="clear-retyped-password-description"><i class="icon"></i><span class="visually-hidden" id="clear-retyped-password-description">Clear this text input</span></button>
+ </div>
+ </div>
+ <!-- close control -->
+ <div class="control layout-horizontal">
+ <p class="form-hint">
+ By signing up, you agree to receive updates and special offers for The New York Times’s products and services. You may unsubscribe at any time.
+ </p>
+ </div>
+ <div class="control">
+ <p class="disclaimer"><a href="http://www.nytimes.com/content/help/rights/terms/terms-of-service.html">Terms of Service</a> <a href="http://www.nytimes.com/content/help/rights/privacy/policy/privacy-policy.html">Privacy Policy</a></p>
+ </div>
+ <div class="control button-control">
+ <button id="register-send-button" class="button register-button">Create Account</button>
+ </div>
+ <input name="is_continue" value="1" type="hidden" />
+ <input id="account-form-token" name="token" value="" type="hidden" />
+ <input id="account-form-expiration" name="expires" value="" type="hidden" />
+ <input id="account-form-subscribe" name="subscribe[]" value="MM" type="hidden" />
+ </form>
+ </div>
+ <!-- close registration-form-control -->
+ </div>
+ <div class="modal-footer">
+ <p class="user-action login-modal-trigger">Already have an account? <a href="javascript:;">Log In</a></p>
+ </div>
+ <button type="button" class="modal-close " aria-disabled="false"><i class="icon"></i><span class="visually-hidden">Close this modal window</span></button>
+ <div class="modal-pointer modal-pointer-fixed">
+ <div class="modal-pointer-conceal"></div>
+ </div>
+ </div>
+ </div>
+</body>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/pixnet/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/pixnet/expected-images.json
new file mode 100644
index 000000000..d36dedeb1
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/pixnet/expected-images.json
@@ -0,0 +1,48 @@
+[
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387895093-631461272.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387894842-1217674167.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387894971-1486345289.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387894979-1252095111.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387971416-4261675924.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387971406-2480195851.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387894752-3567294980.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387894771-2897027724.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387894778-2035483089.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387897405-3236217457.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387894848-3695967443.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387894863-3269042540.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387894868-3997219746.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387894873-1524806724.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387894788-105924953.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387894798-1063855065.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387894807-309560703.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387894882-1881930036.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387894887-407829597.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387894857-470378275.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387895099-4119123008.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387971426-4277312474.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387971436-2828193592.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387894823-4061326865.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387894911-3706194096.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387894894-1173705525.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387894901-1058040075.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387894925-1582979930.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387894989-1689510758.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387894933-2886337976.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387895113-4041265313.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387894940-3359449338.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387895106-1387217970.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387894947-2636431527.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387894956-618198074.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387894961-2201609427.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387971396-2999285851.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387894999-1588465034.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387895007-4184988815.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387895016-2193615729.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387895047-92554161.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387971446-966387512.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387895036-848978834.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387895067-717977929.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387895083-1227791497.jpg",
+ "http:\/\/pic.pimg.tw\/stevenhgm\/1387895075-2647157523.jpg"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/pixnet/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/pixnet/expected-metadata.json
new file mode 100644
index 000000000..dafb56b44
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/pixnet/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "史蒂文的家_藍天 (stevenhgm)",
+ "Direction": null,
+ "Excerpt": "一波波接續性低溫寒流報到 已將新竹尖石鄉後山一帶層層山巒披上嫣紅的彩衣 玉峰道路一路上雲氣山嵐滯留山頭 順路下切蜿蜒道路後不久即抵達來到&quot;玉峰國小&quot; &quot;美樹&quot;美",
+ "Image": "http:\/\/pic.pimg.tw\/stevenhgm\/1387895093-631461272.jpg",
+ "Title": "新竹尖石_美樹營地賞楓 (2) @ 史蒂文的家_藍天 :: 痞客邦 PIXNET ::",
+ "SiteName": "史蒂文的家_藍天"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/pixnet/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/pixnet/expected.html
new file mode 100644
index 000000000..ffa81c794
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/pixnet/expected.html
@@ -0,0 +1,280 @@
+<div id="article-content-inner">
+ <p>
+ <a href="http://stevenhgm.pixnet.net/album/photo/470389413"><img alt="12-IMG_3886.jpg" height="359" original="http://pic.pimg.tw/stevenhgm/1387894842-1217674167.jpg" src="http://pic.pimg.tw/stevenhgm/1387894842-1217674167.jpg" title="12-IMG_3886.jpg" width="521"></img></a>
+ </p>
+ <p><span>一波波<span>接續性</span>低溫寒流報到 已將新竹尖石鄉後山一帶層層山巒披上嫣紅的彩衣</span>
+ </p>
+ <p><span>玉峰道路一路上雲氣山嵐滯留山頭 順路下切<span>蜿蜒道路<span>後不久即抵達</span>來到</span>"玉峰國小"</span>
+ </p>
+ <p><span>"美樹"美如其名偌大楓香樹早已呈現金黃 泛紅色彩也是愛攝人仕所喜愛造訪之地</span></p>
+ <p><span>第二次造訪美樹發現到營區變了 印象中以前生冷招牌換成了<span>原木招牌可謂</span>匠心獨運</span>
+ </p>
+ <p><span>燻黑<span>原木</span>加上金黃色醒目字體 加上了貓頭鷹原木創作也充分發揮了裝飾藝術功力</span>
+ </p>
+ <p><span><span><span>營區內</span></span>除了露營、民宿、餐飲</span><span><span>、</span>賞楓項目<span>多了許多原木飾品更有畫龍點睛加乘效果</span></span>
+ </p>
+
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470396919"><img alt="30-IMG_4228.jpg" original="http://pic.pimg.tw/stevenhgm/1387894971-1486345289.jpg" src="http://pic.pimg.tw/stevenhgm/1387894971-1486345289.jpg" title="30-IMG_4228.jpg"></img></a></span></p>
+ <p><span>廣受歡迎的美樹營地有個很大特色就是<span>楓紅時期楓香樹由綠轉黃、轉紅到楓紅層層</span> </span>
+ </p>
+ <p><span><span>一來到"美樹"馬上眼睛為之一亮 也會深深地為那</span></span><span><span>多種顏色多層次渲染之下楓紅而迷惑</span></span>
+ </p>
+ <p><span><span><span><span>不同格調</span></span>就是從入口處這塊招牌<span><span><span><span>第一眼<span><span><span><span>開始</span></span>
+ </span>
+ </span> 木頭招牌</span>
+ </span>
+ </span>
+ </span>、貓頭鷹裝飾品勾勒出美樹的風格</span>
+ </span>
+ </p>
+
+
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470396943"><img alt="31-IMG_4231.jpg" original="http://pic.pimg.tw/stevenhgm/1387894979-1252095111.jpg" src="http://pic.pimg.tw/stevenhgm/1387894979-1252095111.jpg" title="31-IMG_4231.jpg"></img></a></span></p>
+ <p><span> 每年12月向來是攝影班外拍的絕佳場所之一 楓紅期間入園費$50元</span></p>
+ <p><span>園區給愛攝一族淨空場景而不是散搭帳蓬之下反</span><span>而影響拍照畫面與構圖取景</span></p>
+ <p><span>露營的話則須待中午過後再進場搭帳的彈性做法個人也相當支持這樣的權宜之計</span></p>
+
+
+ <p><span> </span>
+ <a href="http://stevenhgm.pixnet.net/album/photo/470389413"><img alt="P1610088.jpg" original="http://pic.pimg.tw/stevenhgm/1387971416-4261675924.jpg" src="http://pic.pimg.tw/stevenhgm/1387971416-4261675924.jpg" title="P1610088.jpg"></img></a>
+ </p>
+ <p> <span>來到現場已是落葉飄飄堆疊滿地 不時隨著風吹雨襲而葉落垂地</span></p>
+
+
+ <p><span> </span>
+ <a href="http://stevenhgm.pixnet.net/album/photo/470389413"><img alt="P1610069.jpg" original="http://pic.pimg.tw/stevenhgm/1387971406-2480195851.jpg" src="http://pic.pimg.tw/stevenhgm/1387971406-2480195851.jpg" title="P1610069.jpg"></img></a>
+ </p>
+ <p><span>不忍踩過剛剛掉落的樹葉 沿著前人足跡踏痕輕踩而行</span></p>
+ <p><span>雖然只是一廂情願的想法 終究還是不可避免地將會化為塵土</span></p>
+
+
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470383005"><img alt="02-P1610080.jpg" original="http://pic.pimg.tw/stevenhgm/1387894752-3567294980.jpg" src="http://pic.pimg.tw/stevenhgm/1387894752-3567294980.jpg" title="02-P1610080.jpg"></img></a> </span></p>
+ <p><span> 葉落繽紛顯得幾分蕭瑟氣息 空氣中可以嗅得出來<span>依然</span>瀰漫著濕寒水氣</span>
+ </p>
+ <p><span>偶而還會飄下來一些霧氣水滴 不時張望尋找最佳楓葉主題</span></p>
+
+
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470384469"><img alt="04-P1610087.jpg" original="http://pic.pimg.tw/stevenhgm/1387894771-2897027724.jpg" src="http://pic.pimg.tw/stevenhgm/1387894771-2897027724.jpg" title="04-P1610087.jpg"></img></a></span></p>
+ <p><span> 外拍的攝影班學員一堆早已不時穿梭其間</span></p>
+ <p><span>各自努力地找尋自認為最好的拍攝角度</span></p>
+
+
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470384925"><img alt="05-P1610099.jpg" original="http://pic.pimg.tw/stevenhgm/1387894778-2035483089.jpg" src="http://pic.pimg.tw/stevenhgm/1387894778-2035483089.jpg" title="05-P1610099.jpg"></img></a></span></p>
+
+
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470389413"><img alt="P1610095.jpg" original="http://pic.pimg.tw/stevenhgm/1387897405-3236217457.jpg" src="http://pic.pimg.tw/stevenhgm/1387897405-3236217457.jpg" title="P1610095.jpg"></img></a></span></p>
+
+
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470389803"><img alt="13-IMG_3891.jpg" original="http://pic.pimg.tw/stevenhgm/1387894848-3695967443.jpg" src="http://pic.pimg.tw/stevenhgm/1387894848-3695967443.jpg" title="13-IMG_3891.jpg"></img></a></span></p>
+
+
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470390760"><img alt="15-IMG_3906.jpg" original="http://pic.pimg.tw/stevenhgm/1387894863-3269042540.jpg" src="http://pic.pimg.tw/stevenhgm/1387894863-3269042540.jpg" title="15-IMG_3906.jpg"></img></a></span></p>
+ <p><span>"水槽"上面的這幾隻彩繪版貓頭鷹也太可愛了</span></p>
+ <p><span>同樣的造型加上不同色彩宛如賦予不同的生命力一般 cool!</span></p>
+
+
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470391000"><img alt="16-IMG_3916.jpg" original="http://pic.pimg.tw/stevenhgm/1387894868-3997219746.jpg" src="http://pic.pimg.tw/stevenhgm/1387894868-3997219746.jpg" title="16-IMG_3916.jpg"></img></a></span></p>
+ <p><span> 雨水洗塵後的枝頭固然掉落些葉片是否也洗去塵勞憂傷</span></p>
+
+
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470391519"><img alt="17-IMG_3919.jpg" original="http://pic.pimg.tw/stevenhgm/1387894873-1524806724.jpg" src="http://pic.pimg.tw/stevenhgm/1387894873-1524806724.jpg" title="17-IMG_3919.jpg"></img></a></span></p>
+
+
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470385711"><img alt="06-IMG_3853.jpg" original="http://pic.pimg.tw/stevenhgm/1387894788-105924953.jpg" src="http://pic.pimg.tw/stevenhgm/1387894788-105924953.jpg" title="06-IMG_3853.jpg"></img></a></span></p>
+ <p><span> 喜歡拍照的不論是平面掃描、天空搜尋、</span><span>地上地毯式搜索</span></p>
+ <p><span>有如小說偵探一般 不放過蛛絲馬跡地用力尋尋覓覓找尋最美角度</span></p>
+
+
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470386749"><img alt="07-P1610104.jpg" original="http://pic.pimg.tw/stevenhgm/1387894798-1063855065.jpg" src="http://pic.pimg.tw/stevenhgm/1387894798-1063855065.jpg" title="07-P1610104.jpg"></img></a></span></p>
+
+
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470387232"><img alt="08-IMG_3862.jpg" original="http://pic.pimg.tw/stevenhgm/1387894807-309560703.jpg" src="http://pic.pimg.tw/stevenhgm/1387894807-309560703.jpg" title="08-IMG_3862.jpg"></img></a></span></p>
+ <p><span> 原本這周是由小朱團長早在一年前就跟"簍信"預定下來的場子</span></p>
+ <p><span>早上從台北出門之際還是小雨不斷細雨紛飛來到此地雖雨已停</span></p>
+ <p><span>但多日來的雨勢不斷已有部分區域水漬成攤並不適合落置帳篷</span></p>
+ <p><span><span>這個季節正是"控溪吊橋"一帶的楓紅變葉時刻 先行走一趟<span><span>秀巒賞景</span></span>
+ </span>
+ </span>
+ </p>
+
+
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470391732"><img alt="18-P1610141.jpg" original="http://pic.pimg.tw/stevenhgm/1387894882-1881930036.jpg" src="http://pic.pimg.tw/stevenhgm/1387894882-1881930036.jpg" title="18-P1610141.jpg"></img></a></span></p>
+ <p><span>午後從"秀巒"回到美樹之際已經全數撤退只剩下我們三車留下來</span></p>
+ <p><span>唯有"離開地球表面"睡車上的才可以不受到地上泥濘而影響</span></p>
+
+
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470392077"><img alt="19-IMG_3933.jpg" original="http://pic.pimg.tw/stevenhgm/1387894887-407829597.jpg" src="http://pic.pimg.tw/stevenhgm/1387894887-407829597.jpg" title="19-IMG_3933.jpg"></img></a></span></p>
+
+
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470390364"><img alt="14-P1610134.jpg" original="http://pic.pimg.tw/stevenhgm/1387894857-470378275.jpg" src="http://pic.pimg.tw/stevenhgm/1387894857-470378275.jpg" title="14-P1610134.jpg"></img></a></span></p>
+ <p><span> 午後山嵐興起雲氣遊蕩<span>盤旋在對岸山頭 人潮來來去去似乎也沒有減少</span></span>
+ </p>
+
+
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470403381"><img alt="44-P1610283.jpg" original="http://pic.pimg.tw/stevenhgm/1387895099-4119123008.jpg" src="http://pic.pimg.tw/stevenhgm/1387895099-4119123008.jpg" title="44-P1610283.jpg"></img></a></span></p>
+ <p><span> 美樹民宿有開設餐廳 室內簡單佈置提供伙食餐飲 <br></br></span></p>
+
+
+ <p>
+ <a href="http://stevenhgm.pixnet.net/album/photo/470389413"><img alt="P1610212.jpg" original="http://pic.pimg.tw/stevenhgm/1387971426-4277312474.jpg" src="http://pic.pimg.tw/stevenhgm/1387971426-4277312474.jpg" title="P1610212.jpg"></img></a>
+ </p>
+ <p> <span>這兩間是民宿房間 跟著民宿主人"簍信"聊起來還提到日後將改變成兩層木屋</span></p>
+ <p><span>一樓則是咖啡飲料/賣店提供訪客來賓有個落腳席座之地 二樓才會是民宿房間</span></p>
+ <p><span>心中有了計畫想法才會有日後的夢想藍圖 相信將會改變得更好的民宿露營環境<br></br></span></p>
+
+ <p>
+ <a href="http://stevenhgm.pixnet.net/album/photo/470389413"><img alt="P1610219.jpg" original="http://pic.pimg.tw/stevenhgm/1387971436-2828193592.jpg" src="http://pic.pimg.tw/stevenhgm/1387971436-2828193592.jpg" title="P1610219.jpg"></img></a>
+ </p>
+ <p><span> 民宿前這一大區楓香林為土質營位 大致區分前、後兩個營區</span></p>
+ <p><span>前面這一區約可搭上十二帳/車/廳 後面那區也大約4~5帳/車/廳</span></p>
+ <p><span>正前方小木屋即是衛浴區 男女分別以左右<span>兩側</span>分開(燒材鍋爐)</span>
+ </p>
+
+
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470388054"><img alt="10-P1610114.jpg" original="http://pic.pimg.tw/stevenhgm/1387894823-4061326865.jpg" src="http://pic.pimg.tw/stevenhgm/1387894823-4061326865.jpg" title="10-P1610114.jpg"></img></a></span></p>
+ <p><span> 營區水電方便 水槽也很有特色</span></p>
+
+
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470393178"><img alt="22-P1610245.jpg" original="http://pic.pimg.tw/stevenhgm/1387894911-3706194096.jpg" src="http://pic.pimg.tw/stevenhgm/1387894911-3706194096.jpg" title="22-P1610245.jpg"></img></a></span></p>
+ <p><span> 這次選擇左側地勢高些以防午夜下雨泥濘</span></p>
+
+
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470392404"><img alt="20-P1610238.jpg" original="http://pic.pimg.tw/stevenhgm/1387894894-1173705525.jpg" src="http://pic.pimg.tw/stevenhgm/1387894894-1173705525.jpg" title="20-P1610238.jpg"></img></a></span></p>
+ <p><span> "野馬"特地帶來了冬至應景食材ㄜ<span>---湯圓</span></span>
+ </p>
+ <p><span>這家還是最近被評比第一名氣的湯圓專賣店 </span></p>
+
+
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470393130"><img alt="21-P1610241.jpg" original="http://pic.pimg.tw/stevenhgm/1387894901-1058040075.jpg" src="http://pic.pimg.tw/stevenhgm/1387894901-1058040075.jpg" title="21-P1610241.jpg"></img></a></span></p>
+ <p><span> 向來對於湯圓是敬謝不敏 沒想到是出乎意料之外的好吃 <span>沒話說!</span><br></br></span>
+ </p>
+
+
+ <p><span> <a href="http://stevenhgm.pixnet.net/album/photo/470394156"><img alt="24-IMG_4113.jpg" original="http://pic.pimg.tw/stevenhgm/1387894925-1582979930.jpg" src="http://pic.pimg.tw/stevenhgm/1387894925-1582979930.jpg" title="24-IMG_4113.jpg"></img></a></span></p>
+ <p><span> 喜歡原住民朋友的坦率、真誠 要將民宿營地經營的有聲有色並非容易之事</span></p>
+ <p><span><span>午茶時間與"簍信"閒聊分享著他的觀點理念之時很支持對於環境應有生態保護</span> </span>
+ </p>
+ <p><span><span>環保維護是人人有責</span></span><span><span><span><span> 勿以善小而不為不計涓滴之水才可匯集成河</span></span> </span>
+ </span>
+ </p>
+
+
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470397399"><img alt="32-IMG_4248.jpg" original="http://pic.pimg.tw/stevenhgm/1387894989-1689510758.jpg" src="http://pic.pimg.tw/stevenhgm/1387894989-1689510758.jpg" title="32-IMG_4248.jpg"></img></a></span></p>
+
+
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470394732"><img alt="25-IMG_4152.jpg" original="http://pic.pimg.tw/stevenhgm/1387894933-2886337976.jpg" src="http://pic.pimg.tw/stevenhgm/1387894933-2886337976.jpg" title="25-IMG_4152.jpg"></img></a> </span></p>
+ <p><span> 入夜前雨絲終於漸漸緩和下來 雖然氣溫很低卻沒感受到寒冷的跡象</span></p>
+ <p><span>是山谷中少了寒氣還是美樹營區裡的人熱情洋溢暖化了不少寒意</span></p>
+
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470404359"><img alt="IMG_4158.jpg" original="http://pic.pimg.tw/stevenhgm/1387895113-4041265313.jpg" src="http://pic.pimg.tw/stevenhgm/1387895113-4041265313.jpg" title="IMG_4158.jpg"></img></a></span></p>
+ <p><span> 聖誕前夕裝點些聖誕飾品 感受一下節慶的氛圍<br></br></span></p>
+
+
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470394948"><img alt="26-P1610261.jpg" original="http://pic.pimg.tw/stevenhgm/1387894940-3359449338.jpg" src="http://pic.pimg.tw/stevenhgm/1387894940-3359449338.jpg" title="26-P1610261.jpg"></img></a></span></p>
+ <p><span>晚餐準備了砂鍋魚頭</span></p>
+
+
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470403921"><img alt="46-1021221美樹露營.jpg" original="http://pic.pimg.tw/stevenhgm/1387895106-1387217970.jpg" src="http://pic.pimg.tw/stevenhgm/1387895106-1387217970.jpg" title="46-1021221美樹露營.jpg"></img></a></span></p>
+ <p><span>"蒯嫂"還特地準備著羊肩排、鹹豬肉、柳葉魚...哇!這哩澎湃哩...</span></p>
+ <p><span> "永老爺"早已備妥了好酒為遠自台南來的蒯兄嫂敬一杯囉</span></p>
+ <p><span>感謝蒯嫂精心準備的好料理 食指大動好菜色感恩ㄟ!</span></p>
+
+
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470395164"><img alt="27-IMG_4173.jpg" original="http://pic.pimg.tw/stevenhgm/1387894947-2636431527.jpg" src="http://pic.pimg.tw/stevenhgm/1387894947-2636431527.jpg" title="27-IMG_4173.jpg"></img></a></span></p>
+ <p><span> 吃得快精光之際...才想到忘了拍合照...(哇哩咧 ^&amp;*()<br></br></span></p>
+
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470395614"><img alt="28-IMG_4178.jpg" original="http://pic.pimg.tw/stevenhgm/1387894956-618198074.jpg" src="http://pic.pimg.tw/stevenhgm/1387894956-618198074.jpg" title="28-IMG_4178.jpg"></img></a></span></p>
+
+
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470396325"><img alt="29-IMG_4188.jpg" original="http://pic.pimg.tw/stevenhgm/1387894961-2201609427.jpg" src="http://pic.pimg.tw/stevenhgm/1387894961-2201609427.jpg" title="29-IMG_4188.jpg"></img></a></span></p>
+ <p><span> 隔日睡到很晚才起床 不用拍日出晨光的營地對我來說都是個幸福的睡眠</span></p>
+ <p><span>哪怕是葉落飄零落滿地還是睡夢周公召見而去 起床的事~差點都忘記了</span></p>
+
+
+ <p>
+ <a href="http://stevenhgm.pixnet.net/album/photo/470389413"><img alt="IMG_4205.jpg" original="http://pic.pimg.tw/stevenhgm/1387971396-2999285851.jpg" src="http://pic.pimg.tw/stevenhgm/1387971396-2999285851.jpg" title="IMG_4205.jpg"></img></a>
+ </p>
+ <p> <span> 昨天細雨紛飛依然打落了不少落葉中間這株整個都快變成枯枝了</span></p>
+ <p><span>昨天依稀凋零稀疏的楓葉殘留今兒個完全不復存在(上周是最美的代名詞)</span></p>
+
+
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470397765"><img alt="33-IMG_4255.jpg" original="http://pic.pimg.tw/stevenhgm/1387894999-1588465034.jpg" src="http://pic.pimg.tw/stevenhgm/1387894999-1588465034.jpg" title="33-IMG_4255.jpg"></img></a></span></p>
+ <p><span><span>上回來得太早沒能見到楓葉泛紅 這次晚了一周已陸續落葉也</span>無從比對楓葉差異性 </span>
+ </p>
+ <p><span><span> 另一種角度看不論青楓、金黃葉紅的楓香、葉落飄零秋滿霜、落葉枯枝的蕭瑟</span></span>
+ </p>
+ <p><span><span>只要心中自認為是最美最浪漫的一刻 都是美的表徵也是最美的時分</span></span>
+ </p>
+
+
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470398749"><img alt="34-P1610269.jpg" original="http://pic.pimg.tw/stevenhgm/1387895007-4184988815.jpg" src="http://pic.pimg.tw/stevenhgm/1387895007-4184988815.jpg" title="34-P1610269.jpg"></img></a></span></p>
+ <p><span> 早起的"蒯嫂"已經備好熱騰騰中式稀飯、包子、蔬果 頓時~有幸福的感覺<br></br></span></p>
+
+
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470399232"><img alt="35-IMG_4303.jpg" original="http://pic.pimg.tw/stevenhgm/1387895016-2193615729.jpg" src="http://pic.pimg.tw/stevenhgm/1387895016-2193615729.jpg" title="35-IMG_4303.jpg"></img></a> </span></p>
+ <p><span> 星期天早上趁著攝影團還沒入場先來人物場景特寫</span></p>
+ <p><span>野馬家兩張新"座椅"就當作是試坐囉!拍謝哩</span></p>
+
+
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470400471"><img alt="38-IMG_4330.jpg" original="http://pic.pimg.tw/stevenhgm/1387895047-92554161.jpg" src="http://pic.pimg.tw/stevenhgm/1387895047-92554161.jpg" title="38-IMG_4330.jpg"></img></a></span></p>
+
+
+ <p>
+ <a href="http://stevenhgm.pixnet.net/album/photo/470389413"><img alt="P1610279.jpg" original="http://pic.pimg.tw/stevenhgm/1387971446-966387512.jpg" src="http://pic.pimg.tw/stevenhgm/1387971446-966387512.jpg" title="P1610279.jpg"></img></a>
+ </p>
+ <p><span> 難得有此無人美景在楓樹下的聖誕氛圍也一定要來一張才行</span></p>
+
+
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470399946"><img alt="37-IMG_4323.jpg" original="http://pic.pimg.tw/stevenhgm/1387895036-848978834.jpg" src="http://pic.pimg.tw/stevenhgm/1387895036-848978834.jpg" title="37-IMG_4323.jpg"></img></a></span></p>
+ <p><span> 三家合照(Hero也一定要入鏡的)</span></p>
+
+
+ <p><span> <a href="http://stevenhgm.pixnet.net/album/photo/470401161"><img alt="40-IMG_4342.jpg" original="http://pic.pimg.tw/stevenhgm/1387895067-717977929.jpg" src="http://pic.pimg.tw/stevenhgm/1387895067-717977929.jpg" title="40-IMG_4342.jpg"></img></a></span></p>
+ <p><span> 接著攝影團入場帶隊老師請求借個時間也來讓學員練習楓樹下的聖誕飾品</span></p>
+ <p><span>此時剛好也遇到早在FB社團相互回應卻頭一次謀面的Mr."大雄"真是幸會了</span></p>
+
+
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470402037"><img alt="42-IMG_4382.jpg" original="http://pic.pimg.tw/stevenhgm/1387895083-1227791497.jpg" src="http://pic.pimg.tw/stevenhgm/1387895083-1227791497.jpg" title="42-IMG_4382.jpg"></img></a> </span></p>
+ <p><span> 接近中午時分陽光漸露 藍天帷幕再次嶄露頭角 ~ 久違了!</span></p>
+ <p><span>期盼下的天空終於放晴 沒有缺席的藍天還是準時赴約如期出席</span></p>
+
+
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470402682"><img alt="41-IMG_4366.jpg" original="http://pic.pimg.tw/stevenhgm/1387895075-2647157523.jpg" src="http://pic.pimg.tw/stevenhgm/1387895075-2647157523.jpg" title="41-IMG_4366.jpg"></img></a></span></p>
+ <p><span> 這兩天肉肉(Hero)天雨濕滑無法自由奔跑都快悶壞了</span></p>
+ <p><span>天晴後"蒯嫂"帶著散步遊園也好解解悶</span></p>
+
+
+ <p><span><a href="http://stevenhgm.pixnet.net/album/photo/470402898"><img alt="43-IMG_4383.jpg" original="http://pic.pimg.tw/stevenhgm/1387895093-631461272.jpg" src="http://pic.pimg.tw/stevenhgm/1387895093-631461272.jpg" title="43-IMG_4383.jpg"></img></a> </span></p>
+ <p><span>收拾好裝備準備離開營地 亮麗的</span><span>天空鮮明對比下的楓樹林又讓人覺得有點捨不得離開</span></p>
+ <p><span><span>道別了"美樹營地"準備前往而行</span>"石磊國小"一個很生疏的小學座落在這深山部落裡</span>
+ </p>
+ <p><span>北橫"石磊部落" 一個從未踏入的陌生之地因為露營之故否則畢生大概也不會路過</span></p>
+ <p><span>三位大叔同行準備走著這段遙遠的路段 下次找機會再來重溫舊夢了.......</span></p>
+
+ <p><span lang="EN-US"><a href="http://tw.myblog.yahoo.com/wu141993/article?mid=104&amp;sc=1"><span lang="EN-US"><span lang="EN-US"><span>美樹營地</span></span>
+ </span>
+ </a> </span><span lang="EN-US"><span>資訊</span></span>
+ </p>
+ <p><span lang="EN-US"><span><span>聯絡電話:</span><span lang="EN-US">03-584-7231</span><span>  </span><span lang="EN"> </span><span>行動</span><span lang="EN">:</span><span lang="EN-US"> 0937-141993</span><span lang="EN-US"><br></br></span><span>林錦武<span lang="EN-US"> (泰雅族名: 摟信)</span></span><span lang="EN"><br></br></span><span>營地地址:<span>新竹縣尖石鄉玉峰村<span lang="EN-US">6鄰20號</span></span>
+ </span>
+ </span>
+ </span>
+ </p>
+ <p><span lang="EN-US"><span>每帳$600 兩間衛浴使用燒材鍋爐/ 兩間全天瓦斯 </span></span><span lang="EN-US"><span>廁所蹲式X 3 </span></span>
+ </p>
+ <p><span lang="EN-US"><span>楓紅期間須過中午才可搭帳 </span></span><span lang="EN-US">水電便利</span></p>
+ <p><strong><span lang="EN-US">GPS: N24 39 16.4 <span> </span>E121 18 19.5</span></strong></p>
+
+
+ <p><span><span>如果您喜歡</span>"<span>史蒂文的家"圖文分享 邀請您到 </span></span><span><a href="https://www.facebook.com/stevenhgm1188"><span>FB </span><span lang="EN-US"><span lang="EN-US">粉絲團</span></span>
+ </a><span>按個"讚"!</span></span>
+ </p>
+ <p><span><span><span>內文有不定期的更新旅遊、露營圖文訊息 </span></span><span><span>謝謝!</span></span>
+ </span>
+ </p>
+
+
+
+
+
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/pixnet/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/pixnet/source.html
new file mode 100644
index 000000000..e1849a93d
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/pixnet/source.html
@@ -0,0 +1,4372 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" itemscope="" itemtype="http://schema.org/Blog" lang="zh-TW">
+
+<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# article: http://ogp.me/ns/article#">
+ <script async="" type="text/javascript" src="http://de.tynt.com/deb/v2?id=w%21jw52pblyzhbn&amp;dn=TC&amp;cc=1&amp;r="></script>
+ <script src="https://pagead2.googlesyndication.com/pub-config/r20160913/ca-pub-6865528665029394.js"></script>
+ <script async="" type="text/javascript" src="//cdn.tynt.com/tc.js"></script>
+ <script src="https://apis.google.com/_/scs/apps-static/_/js/k=oz.gapi.zh_TW.pIAcUKlmDbA.O/m=plusone/rt=j/sv=1/d=1/ed=1/am=AQ/rs=AGLTcCPPGX-9dsxZ2uw3U6pjwhhHDm_oxA/cb=gapi.loaded_0" async=""></script>
+ <script async="" src="http://b.scorecardresearch.com/beacon.js"></script>
+ <script type="text/javascript" async="" src="http://www.google-analytics.com/analytics.js"></script>
+ <script src="//t.dtscout.com/i/?l=http%3A%2F%2Fstevenhgm.pixnet.net%2Fblog%2Fpost%2F39926056-%25e6%2596%25b0%25e7%25ab%25b9%25e5%25b0%2596%25e7%259f%25b3_%25e7%25be%258e%25e6%25a8%25b9%25e7%2587%259f%25e5%259c%25b0%25e8%25b3%259e%25e6%25a5%2593-%25282%2529&amp;j=" async="" type="text/javascript"></script>
+ <script async="" type="text/javascript" src="//whos.amung.us/pingjs/?k=jw52pblyzhbn&amp;t=%E6%96%B0%E7%AB%B9%E5%B0%96%E7%9F%B3_%E7%BE%8E%E6%A8%B9%E7%87%9F%E5%9C%B0%E8%B3%9E%E6%A5%93%20%282%29%20%40%20%E5%8F%B2%E8%92%82%E6%96%87%E7%9A%84%E5%AE%B6_%E8%97%8D%E5%A4%A9%20%3A%3A%20%E7%97%9E%E5%AE%A2%E9%82%A6%20PIXNET%20%3A%3A&amp;c=c&amp;y=&amp;a=0&amp;d=2.878&amp;v=22&amp;r=782"></script>
+ <script async="" src="//www.google-analytics.com/analytics.js"></script>
+ <script type="text/javascript" async="" src="//apis.google.com/js/plusone.js" gapi_processed="true"></script>
+ <script async="" src="https://s.pixanalytics.com/js/pi.min.js"></script>
+ <script async="" src="https://connect.facebook.net/en_US/fbevents.js"></script>
+ <script async="" src="//www.googletagmanager.com/gtm.js?id=GTM-NDN8FB"></script>
+ <script async="" src="//www.googletagmanager.com/gtm.js?id=GTM-M9S8TF"></script>
+ <script async="" src="//www.googletagmanager.com/gtm.js?id=GTM-MZ3SPM"></script>
+ <script async="" src="//www.googletagmanager.com/gtm.js?id=GTM-KGMWFG"></script>
+ <script type="text/javascript" async="" src="http://www.google-analytics.com/ga.js"></script>
+ <script type="text/javascript" async="" src="http://cdn.mxpnl.com/libs/mixpanel-2.2.min.js"></script>
+ <style class="vjs-styles-defaults">
+ .video-js {
+ width: 300px;
+ height: 150px;
+ }
+
+ .vjs-fluid {
+ padding-top: 56.25%
+ }
+ </style>
+ <script async="" src="//www.google-analytics.com/analytics.js"></script>
+ <script type="text/javascript" async="" src="https://d31qbv1cthcecs.cloudfront.net/atrk.js"></script>
+ <style type="text/css">
+ @charset "UTF-8";
+ [ng\:cloak],
+ [ng-cloak],
+ [data-ng-cloak],
+ [x-ng-cloak],
+ .ng-cloak,
+ .x-ng-cloak,
+ .ng-hide {
+ display: none !important;
+ }
+
+ ng\:form {
+ display: block;
+ }
+
+ .ng-animate-start {
+ clip: rect(0, auto, auto, 0);
+ -ms-zoom: 1.0001;
+ }
+
+ .ng-animate-active {
+ clip: rect(-1px, auto, auto, 0);
+ -ms-zoom: 1;
+ }
+ </style>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <meta property="og:site_name" content="史蒂文的家_藍天" />
+ <meta property="og:locale" content="zh_TW" />
+ <meta property="og:url" content="http://stevenhgm.pixnet.net/blog/post/39926056" />
+ <meta property="og:type" content="article" />
+ <meta property="og:title" content="新竹尖石_美樹營地賞楓 (2) @ 史蒂文的家_藍天 :: 痞客邦 PIXNET ::" />
+ <meta property="og:description" content="一波波接續性低溫寒流報到 已將新竹尖石鄉後山一帶層層山巒披上嫣紅的彩衣 玉峰道路一路上雲氣山嵐滯留山頭 順路下切蜿蜒道路後不久即抵達來到&amp;quot;玉峰國小&amp;quot; &amp;quot;美樹&amp;quot;美" />
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <meta name="twitter:card" content="summary" />
+ <meta name="description" content="一波波接續性低溫寒流報到 已將新竹尖石鄉後山一帶層層山巒披上嫣紅的彩衣 玉峰道路一路上雲氣山嵐滯留山頭 順路下切蜿蜒道路後不久即抵達來到&amp;quot;玉峰國小&amp;quot; &amp;quot;美樹&amp;quot;美" />
+ <meta name="twitter:description" content="一波波接續性低溫寒流報到 已將新竹尖石鄉後山一帶層層山巒披上嫣紅的彩衣 玉峰道路一路上雲氣山嵐滯留山頭 順路下切蜿蜒道路後不久即抵達來到&amp;quot;玉峰國小&amp;quot; &amp;quot;美樹&amp;quot;美" />
+ <meta name="twitter:site" content="@pixnet" />
+ <meta name="author" content="史蒂文的家_藍天 (stevenhgm)" />
+ <meta name="author-avatar-20" content="http://s9.pimg.tw/avatar/stevenhgm/0/0/zoomcrop/20x20.png?v=1377876799" />
+ <meta name="static-version" content="b27bf7fe9e1f0fca830e1381a52f804b" />
+ <meta name="generator" content="PChoc" />
+ <meta name="keywords" content="藍天部落客,部落客藍天,史蒂文藍天,史蒂文的家,藍天家族,露營旅遊,藍天痞客幫,國內旅遊,尖石_美樹營地,新竹尖石_美樹營地賞楓 (2)" />
+ <link rel="canonical" href="http://stevenhgm.pixnet.net/blog/post/39926056-%e6%96%b0%e7%ab%b9%e5%b0%96%e7%9f%b3_%e7%be%8e%e6%a8%b9%e7%87%9f%e5%9c%b0%e8%b3%9e%e6%a5%93-%282%29" />
+ <meta name="twitter:url" content="http://stevenhgm.pixnet.net/blog/post/39926056" />
+ <meta name="cover_image" content="http://s3.pimg.tw/album/stevenhgm/element/470389413_1387894842-1217674167/zoomcrop/200x200.jpg" />
+ <meta name="twitter:image" content="http://pic.pimg.tw/stevenhgm/1387894842-1217674167.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387894842-1217674167.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387894842-1217674167.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387894971-1486345289.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387894971-1486345289.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387894979-1252095111.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387894979-1252095111.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387971416-4261675924.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387971416-4261675924.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387971406-2480195851.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387971406-2480195851.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387894752-3567294980.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387894752-3567294980.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387894771-2897027724.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387894771-2897027724.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387894778-2035483089.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387894778-2035483089.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387897405-3236217457.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387897405-3236217457.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387894848-3695967443.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387894848-3695967443.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387894863-3269042540.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387894863-3269042540.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387894868-3997219746.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387894868-3997219746.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387894873-1524806724.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387894873-1524806724.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387894788-105924953.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387894788-105924953.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387894798-1063855065.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387894798-1063855065.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387894807-309560703.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387894807-309560703.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387894882-1881930036.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387894882-1881930036.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387894887-407829597.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387894887-407829597.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387894857-470378275.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387894857-470378275.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387895099-4119123008.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387895099-4119123008.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387971426-4277312474.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387971426-4277312474.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387971436-2828193592.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387971436-2828193592.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387894823-4061326865.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387894823-4061326865.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387894911-3706194096.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387894911-3706194096.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387894894-1173705525.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387894894-1173705525.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387894901-1058040075.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387894901-1058040075.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387894925-1582979930.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387894925-1582979930.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387894989-1689510758.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387894989-1689510758.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387894933-2886337976.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387894933-2886337976.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387895113-4041265313.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387895113-4041265313.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387894940-3359449338.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387894940-3359449338.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387895106-1387217970.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387895106-1387217970.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387894947-2636431527.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387894947-2636431527.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387894956-618198074.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387894956-618198074.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387894961-2201609427.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387894961-2201609427.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387971396-2999285851.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387971396-2999285851.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387894999-1588465034.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387894999-1588465034.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387895007-4184988815.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387895007-4184988815.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387895016-2193615729.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387895016-2193615729.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387895047-92554161.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387895047-92554161.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387971446-966387512.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387971446-966387512.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387895036-848978834.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387895036-848978834.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387895067-717977929.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387895067-717977929.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387895083-1227791497.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387895083-1227791497.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387895075-2647157523.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387895075-2647157523.jpg" />
+ <link rel="image_src" href="http://pic.pimg.tw/stevenhgm/1387895093-631461272.jpg" />
+ <meta property="og:image" content="http://pic.pimg.tw/stevenhgm/1387895093-631461272.jpg" />
+ <link rel="prev" href="http://stevenhgm.pixnet.net/blog/post/39815080-%e6%84%9b%e4%b8%8a%e5%96%9c%e7%bf%81%e9%9c%b2%e7%87%9f_%e6%ad%a1%e6%85%b6%e8%81%96%e8%aa%95%e5%a4%9c%e5%b8%82%e8%b6%b4" />
+ <link rel="next" href="http://stevenhgm.pixnet.net/blog/post/40120789-%e8%b5%b0%e9%80%b2%e8%8e%ab%e5%85%a7%e9%81%87%e8%a6%8b%e8%90%bd%e7%be%bd%e6%9d%be_%e8%8f%81%e8%8a%b3%e5%9c%92" />
+ <link rel="alternate" type="application/json+oembed" href="http://api.pixnet.cc/oembed?url=http%3A%2F%2Fstevenhgm.pixnet.net%2Fblog%2Fpost%2F39926056-%25e6%2596%25b0%25e7%25ab%25b9%25e5%25b0%2596%25e7%259f%25b3_%25e7%25be%258e%25e6%25a8%25b9%25e7%2587%259f%25e5%259c%25b0%25e8%25b3%259e%25e6%25a5%2593-%25282%2529&amp;format=json" title="PIXNET oEmbed Profile" />
+ <link rel="alternate" type="text/xml+oembed" href="http://api.pixnet.cc/oembed?url=http%3A%2F%2Fstevenhgm.pixnet.net%2Fblog%2Fpost%2F39926056-%25e6%2596%25b0%25e7%25ab%25b9%25e5%25b0%2596%25e7%259f%25b3_%25e7%25be%258e%25e6%25a8%25b9%25e7%2587%259f%25e5%259c%25b0%25e8%25b3%259e%25e6%25a5%2593-%25282%2529&amp;format=xml" title="PIXNET oEmbed Profile" />
+ <link rel="search" type="application/opensearchdescription+xml" href="http://stevenhgm.pixnet.net/blog/opensearch" title="史蒂文的家_藍天" />
+ <title>新竹尖石_美樹營地賞楓 (2) @ 史蒂文的家_藍天 :: 痞客邦 PIXNET ::</title>
+ <meta name="twitter:title" content="新竹尖石_美樹營地賞楓 (2) @ 史蒂文的家_藍天 :: 痞客邦 PIXNET ::" />
+ <base href="http://stevenhgm.pixnet.net/blog/post/39926056" />
+ <style type="text/css">
+ #links-row-1 .h54d834-miB-ad-sidebar-v2-h54d834 {
+ display: block !important;
+ min-width: 160px !important;
+ min-height: 270px !important;
+ margin-top: 0;
+ z-index: 100;
+ }
+
+ .h54d834-miB-ad-sidebar-v2-h54d834 * {
+ padding: 0;
+ margin: 0;
+ border: 0;
+ vertical-align: baseline;
+ display: block;
+ line-height: 1;
+ }
+
+ .h54d834-miB-ad-sidebar-v2-h54d834 .box-text {
+ overflow: hidden;
+ padding: 0;
+ margin: 0;
+ }
+
+ .h54d834-miB-ad-sidebar-v2-h54d834 .box-text a {
+ height: auto;
+ }
+
+ .h54d834-miB-border-h54d834 {
+ padding: 0;
+ min-width: 180px;
+ min-height: 280px;
+ margin: 12px auto;
+ overflow: hidden;
+ text-align: center;
+ }
+
+ .h54d834-miB-border-h54d834 img,
+ .h54d834-miB-border-h54d834 div {
+ margin: 0 auto;
+ display: inline-block;
+ min-width: 160px;
+ }
+
+ .h54d834-miB-border-h54d834_1080 {
+ padding: 0;
+ width: 180px;
+ height: 280px;
+ margin: 12px auto;
+ overflow: hidden;
+ }
+
+ .h54d834-miB-border-h54d834 div {
+ position: relative;
+ }
+ </style>
+ <link rel="stylesheet" href="//front.pixfs.net/css/mib/video.css?v=fe752a6c?v=b27bf7fe9e1f0fca830e1381a52f804b" type="text/css" />
+ <link rel="stylesheet" href="//front.pixfs.net/css/lang-css.css?v=53452873?v=b27bf7fe9e1f0fca830e1381a52f804b" type="text/css" />
+ <link rel="stylesheet" href="//front.pixfs.net/css/iframe-popup.css?v=79127c7c?v=b27bf7fe9e1f0fca830e1381a52f804b" type="text/css" />
+ <link rel="stylesheet" href="//s.pixfs.net/blog/plugins/plugins.min.css?v=b27bf7fe9e1f0fca830e1381a52f804b" type="text/css" />
+ <link rel="stylesheet" href="//front.pixfs.net/comment/openid-comment.css?v=b27bf7fe9e1f0fca830e1381a52f804b" type="text/css" />
+ <link rel="stylesheet" href="//front.pixfs.net/css/guestbook/style.min.css?v=1aa05f6e?v=b27bf7fe9e1f0fca830e1381a52f804b" />
+ <link rel="stylesheet" href="//front.pixfs.net/module/topbar/css/blogtopbar.min.css?v=34a36360?v=b27bf7fe9e1f0fca830e1381a52f804b" />
+ <link rel="stylesheet" href="//front.pixfs.net/css/desktop/styles/main.min.css?v=05e0cc68?v=b27bf7fe9e1f0fca830e1381a52f804b" />
+ <link rel="stylesheet" href="//css.pixnet.in/blog/stevenhgm/normal.css?v=1468290179" type="text/css" />
+ <link rel="stylesheet" href="//front.pixfs.net/css/falcon-ad.css?v=4bfa9e0c?v=b27bf7fe9e1f0fca830e1381a52f804b" />
+ <link rel="stylesheet" href="//front.pixfs.net/css/iframe-popup.css?v=79127c7c?v=b27bf7fe9e1f0fca830e1381a52f804b" type="text/css" />
+ <link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="http://feed.pixnet.net/blog/posts/rss/stevenhgm" />
+ <link rel="alternate" type="application/atom+xml" title="Atom 1.0" href="http://feed.pixnet.net/blog/posts/atom/stevenhgm" />
+ <link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://api.pixnet.cc/blog/xmlrpc?rsd=stevenhgm" />
+ <link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://api.pixnet.cc/static/blog/wlwmanifest.xml" />
+ <script src="//s.pixfs.net/visitor.pixplug.in/checklogin.min.js?v=b27bf7fe9e1f0fca830e1381a52f804b"></script>
+ <script async="" src="//www.google-analytics.com/analytics.js"></script>
+ <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js" crossorigin="anonymous"></script>
+ <script type="text/javascript" src="//libs.pixfs.net/jquery.onappear/jquery.onAppear.min.js"></script>
+ <script src="//libs.pixfs.net/json2/json2.min.js" type="text/javascript"></script>
+ <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js" crossorigin="anonymous"></script>
+ <script src="//libs.pixfs.net/spin.js/spin.min.js" type="text/javascript"></script>
+ <style type="text/css"></style>
+ <script src="//libs.pixfs.net/angular-spinner/angular-spinner.min.js" type="text/javascript"></script>
+ <script type="text/javascript">
+ & lt;
+ !--
+ var pix = pix || {};
+ pix.panelsite = 'panel.pixnet.cc';
+ pix.apisite = 'api.pixnet.cc';
+ pix.login_name = '5c2024a3f691ec32042b168b40a5abfb';
+ pix.visitor = "NjFkZjA1OWE0YjJkM2ZkYjJiYmMyMmZkMDVhY2ZiNzE=";
+ pix.openid = "NjFkZjA1OWE0YjJkM2ZkYjJiYmMyMmZkMDVhY2ZiNzE=";
+ pix.owner = 'stevenhgm';
+ pix.is_owner = false;
+ pix.server_name = 'stevenhgm.pixnet.net';
+ pix.sToken = "39743a9f949bc0eb6d0e581c1f3fc39d";
+ pix.pixfssite = 's.pixfs.net';
+ pix.falconsite = 'falcon.pixanalytics.com';
+ pix.checklogin_version = 2;
+ // timezone: null;
+ //--&gt;
+ </script>
+ <script src="//api.pixnet.cc/api/checklogin.php?js=1&amp;unique=1239470496&amp;timestamp=1486718791&amp;type=799" type="text/javascript"></script>
+ <script src="//s.pixfs.net/js/pixnet/checklogin.min.js?v=b27bf7fe9e1f0fca830e1381a52f804b" type="text/javascript"></script>
+ <script type="text/javascript">
+ & lt;
+ !--
+ jQuery.noConflict();
+ var pix = pix || {};
+ pix.ab_testing_seed = 1232136999;
+ dataLayer = window.dataLayer || [];
+ //--&gt;
+ </script>
+ <script src="//s.pixfs.net/js/lang/zh_TW.js?v=b27bf7fe9e1f0fca830e1381a52f804b" type="text/javascript"></script>
+ <script src="//s.pixfs.net/js/pix.min.js?v=b27bf7fe9e1f0fca830e1381a52f804b" type="text/javascript" crossorigin="anonymous"></script>
+ <script type="text/javascript" src="//s.pixfs.net/js/tools/tools.min.js"></script>
+ <script src="//s.pixfs.net/js/pix-addon.min.js?v=b27bf7fe9e1f0fca830e1381a52f804b" crossorigin="anonymous"></script>
+ <script src="//front.pixfs.net/js/all.min.js?v=1e04f35e?v=b27bf7fe9e1f0fca830e1381a52f804b" type="text/javascript" crossorigin="anonymous"></script>
+ <script src="//front.pixfs.net/js/blog.min.js?v=3ee67300?v=b27bf7fe9e1f0fca830e1381a52f804b" type="text/javascript" crossorigin="anonymous"></script>
+ <script src="//front.pixfs.net/js/search_selection.min.js?v=86807582?v=b27bf7fe9e1f0fca830e1381a52f804b" type="text/javascript"></script>
+ <script src="//front.pixfs.net/module/fullPage/dist/ad-full-page.min.js?v=b27bf7fe9e1f0fca830e1381a52f804b" type="text/javascript" crossorigin="anonymous"></script>
+ <meta itemprop="name" content="新竹尖石_美樹營地賞楓 (2) @ 史蒂文的家_藍天 :: 痞客邦 PIXNET ::" />
+ <meta itemprop="description" content="一波波接續性低溫寒流報到 已將新竹尖石鄉後山一帶層層山巒披上嫣紅的彩衣 玉峰道路一路上雲氣山嵐滯留山頭 順路下切蜿蜒道路後不久即抵達來到&amp;quot;玉峰國小&amp;quot; &amp;quot;美樹&amp;quot;美" />
+
+ <script type="text/javascript">
+ & lt;
+ !--
+ var pix = pix || {};
+ pix.js_error_type = pix.js_error_type || 'frontblog';
+ //--&gt;
+ </script>
+ <script async="" type="text/javascript" src="//s.pixfs.net/js/pixlogger.min.js?v=b27bf7fe9e1f0fca830e1381a52f804b"></script>
+ <script type="text/javascript">
+ & lt;
+ !--
+ (function() {
+ if (window.size().height & gt; 10 & amp; & amp; window.size().width & gt; 10) {
+ var i = new Image(1, 1);
+ i.src = '//counter.pixplug.in/count.php?timestamp=1486718791&amp;random=935016315&amp;check=1679624274&amp;data[blog]=%7B%22blogid%22%3A%224410429%22%7D&amp;data[blogarticle]=%7B%22blogid%22%3A%224410429%22%2C%22articleid%22%3A%2239926056%22%7D&amp;height=' + window.size().height + '&amp;width=' + window.size().width + '&amp;referer=' + encodeURI(document.referrer);
+ i.onload = function() {
+ return;
+ }
+ }
+ })();
+ //--&gt;
+ </script>
+ <!-- Head Modified: 1486718791 -->
+ <!-- async script -->
+ <script type="text/javascript">
+ & lt;
+ !--
+ jQuery(document).ready(function() {
+ jQuery.ajaxSetup({
+ cache: true
+ });
+ jQuery.getScript("//js.pixplug.in/addon/11/production.js?v=1486603867", function(data, textStatus) {
+ jQuery.ajaxSetup({
+ cache: true
+ });
+ jQuery.pixAddonRelatedArticle({
+ "blog_relatedarticleshow": "post",
+ "blog_relatedarticle": "site",
+ "blog_relatedtemplate": "system",
+ "addon_username": "stevenhgm",
+ "addon_expired_at": 0,
+ "addon_ismobile": false,
+ "addon_isvip": false,
+ "addon_is_allow_setting": false,
+ "ab_testing_seed": 1232136999
+ });
+ jQuery.ajaxSetup({
+ cache: false
+ });
+ });
+ jQuery.ajaxSetup({
+ cache: false
+ });
+ });
+ //--&gt;
+ </script>
+
+ <!-- load sync script -->
+
+ <!-- execute sync addon -->
+ <script type="text/javascript">
+ & lt;
+ !--
+ var pix = pix || {};
+ pix.visitor_url = "http://stevenhgm.pixnet.net/blog";
+ pix.visitor_timestamp = "1486718791";
+ pix.visitor_nonce = "1143128310";
+ pix.visitor_public = "LumrRMVHhADdttHSeUhMM8S3";
+ pix.visitor_sig = "942064df55482981e78137ee089aff3e";
+ pix.user_name = null;
+ pix.avatar_version = 0;
+ (function() {
+ var js = document.createElement('script');
+ js.src = "\/\/s.pixfs.net\/visitor.pixplug.in\/checklogin.min.js?v=b27bf7fe9e1f0fca830e1381a52f804b";
+ var s = document.getElementsByTagName('script')[0];
+ s.parentNode.insertBefore(js, s);
+ })();
+ //--&gt;
+ </script>
+
+ <script charset="UTF-8" async="">
+ jQuery.ajaxSetup({
+ cache: true
+ });
+ jQuery.getScript("//cdn.sendpulse.com/28edd3380a1c17cf65b137fe96516659/js/push/23fc4af694e1db7721bdd764750599fc_0.js")
+ .then(function() {
+ if (!window.oSpP) {
+ return;
+ }
+
+ oSpP.detectSite = function() {
+ return true;
+ };
+ oSpP.start();
+ oSpP.start = function() {}; // 避免重複產生到
+ })
+ jQuery.ajaxSetup({
+ cache: false
+ });
+ </script>
+ <script type="text/javascript" src="//front.pixfs.net/js/checkloop.min.js?v=e18dc181?v=b27bf7fe9e1f0fca830e1381a52f804b"></script>
+ <meta http-equiv="imagetoolbar" content="no" />
+ <script type="text/javascript" src="//libs.pixfs.net/swfobject/1.5/swfobject.js"></script>
+ <link href="//libs.pixfs.net/videojs/5.13.2/video-js.min.css" rel="stylesheet" />
+ <script src="//libs.pixfs.net/videojs/5.13.2/video.min.js" crossorigin="anonymous"></script>
+ <script src="//visitor.pixplug.in/jsonp/getdata.php?callback=cb2352513"></script>
+ <meta property="falcon:blogcategory" content="16" />
+ <meta property="falcon:articlecategory" content="28" />
+ <script async="" src="//falcon-asset.pixfs.net/js/adsbyfalcon.min.js?v=b27bf7fe9e1f0fca830e1381a52f804b"></script>
+ <script src="//front.pixfs.net/js/mib_falcon--bundle.min.js?v=b27bf7fe9e1f0fca830e1381a52f804b" crossorigin="anonymous"></script>
+ <script src="//api.pixnet.cc/api/checklogin?js=jsonp&amp;unique=1956338270&amp;timestamp=1486718792&amp;type=2&amp;callback=cb242317"></script>
+ <link rel="stylesheet" type="text/css" href="https://cdn.sendpulse.com/css/push/sendpulse-prompt.min.css" media="all" />
+ <script async="" src="http://widgets.amung.us/classic.js"></script>
+ <style>
+ #links-row-1 #friendbox {
+ display: none !important;
+ }
+ </style>
+ <script src="http://falcon.pixanalytics.com/mib/ada?size=1x2&amp;hosthash=3fe6433d830b6321900cadda5cc06d37&amp;cate=16&amp;acate=28&amp;callback=pix.MIB.build.getAd&amp;articleurl=http%3A%2F%2Fstevenhgm.pixnet.net%2Fblog%2Fpost%2F39926056-%25e6%2596%25b0%25e7%25ab%25b9%25e5%25b0%2596%25e7%259f%25b3_%25e7%25be%258e%25e6%25a8%25b9%25e7%2587%259f%25e5%259c%25b0%25e8%25b3%259e%25e6%25a5%2593-%25282%2529" type="text/javascript"></script>
+ <link rel="stylesheet" href="http://article-switcher.appmarket.pixplug.in/article_switcher.css" type="text/css" media="screen" />
+ <script type="text/javascript" src="http://rtax.criteo.com/delivery/rta/rta.js?netId=4606&amp;cookieName=crtg_rta&amp;rnd=91479869226&amp;varName=crtg_content" async=""></script>
+ <script src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
+ <script type="text/javascript" src="http://rtax.criteo.com/delivery/rta/rta.js?netId=4606&amp;cookieName=crtg_rta&amp;rnd=93334823104&amp;varName=crtg_content" async=""></script>
+ <script src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
+ <script type="text/javascript" src="http://rtax.criteo.com/delivery/rta/rta.js?netId=4606&amp;cookieName=crtg_rta&amp;rnd=43513532119&amp;varName=crtg_content" async=""></script>
+ <script type="text/javascript" src="http://rtax.criteo.com/delivery/rta/rta.js?netId=4606&amp;cookieName=crtg_rta&amp;rnd=86208386820&amp;varName=crtg_content" async=""></script>
+</head>
+
+<body id="article-main" data-showing-advertisement="yep" data-adsense-state="" data-blog-site-category-id="16" data-mobile-mode="none" data-ab-testing-seed="1232136999" data-article-id="39926056" class="category_1771157 article_39926056 folder_1368765" ondragstart="return false" oncontextmenu="return false" onselectstart="return false" style="-moz-user-select: none;">
+ <div class="sendpulse-prompt sendpulse-bar show-prompt sendpulse-bar--fixed" style="display:none;background-color: #ffffff;"><span class="sp-link-wrapper"><a class="sp-link" href="https://sendpulse.com/webpush" target="_blank"><span>Powered by SendPulse</span></a>
+ </span>
+ <div class="sendpulse-prompt-message"><svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><symbol id="sp_bell_icon"><path d="M139.165 51.42L103.39 15.558C43.412 61.202 3.74 132.185 0 212.402h50.174c3.742-66.41 37.877-124.636 88.99-160.98zM474.98 212.403h50.173c-3.742-80.217-43.413-151.2-103.586-196.845L385.704 51.42c51.398 36.346 85.533 94.572 89.275 160.982zm-49.388 12.582c0-77-53.39-141.463-125.424-158.487v-17.09c0-20.786-16.76-37.613-37.592-37.613s-37.592 16.827-37.592 37.614v17.09C152.95 83.52 99.56 148.004 99.56 224.983v137.918L49.408 413.01v25.076h426.336V413.01l-50.152-50.108V224.984zM262.576 513.358c3.523 0 6.76-.22 10.065-1.007 16.237-3.237 29.825-14.528 36.06-29.626 2.517-5.952 4.05-12.494 4.05-19.54H212.4c0 27.593 22.582 50.174 50.174 50.174z"/></symbol></svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 525.153 525.153" width="40" height="40" xmlns:xlink="http://www.w3.org/1999/xlink" class="sendpulse-bell-icon"><use class="sendpulse-bell-path" style="fill: #222222 !important;" xlink:href="#sp_bell_icon" x="0" y="0"/> </svg>
+ <div class="sendpulse-prompt-info sendpulse-prompt-message-text" style="color: #222222 !important;">邀請您追蹤「痞客邦 PIXNET」,收到精選熱門話題與好康試用活動 :)</div><span></span>
+ <div class="sendpulse-prompt-buttons"><button class="sendpulse-prompt-btn sendpulse-disallow-btn" type="button" onclick="oSpP.denyMessage(); return false;" style="color:#f2594b !important;">Don't allow</button><button class="sendpulse-prompt-btn sendpulse-accept-btn" type="button" onclick="oSpP.showPopUp(); return false;" style="background-color:#f2594b !important;border-color:#f2594b !important;">Allow</button></div>
+ </div><button class="sendpulse-prompt-close" onclick="oSpP.closePrompt(); return false;" style="color:#222222 !important;">×</button></div>
+
+
+ <script type="text/javascript">
+ _atrk_opts = {
+ atrk_acct: "H00Mh1aIE700wg",
+ domain: "pixnet.net",
+ dynamic: true
+ };
+ (function() {
+ var as = document.createElement('script');
+ as.type = 'text/javascript';
+ as.async = true;
+ as.src = "https://d31qbv1cthcecs.cloudfront.net/atrk.js";
+ var s = document.getElementsByTagName('script')[0];
+ s.parentNode.insertBefore(as, s);
+ })();
+ </script>
+ <noscript>&lt;img src="https://d5nxst8fruw4z.cloudfront.net/atrk.gif?account=H00Mh1aIE700wg" style="display:none" height="1" width="1" alt="" /&gt;</noscript>
+
+
+ <style>
+ .sidebar {
+ position: absolute;
+ top: 0;
+ left: -220px;
+ bottom: 0;
+ float: left;
+ width: 220px;
+ /* reset */
+ font: normal 100 100% / 1 Arial;
+ font-variant: normal;
+ text-align: left;
+ text-decoration: none;
+ text-transform: capitalize;
+ text-indent: 0;
+ word-spacing: 0;
+ letter-spacing: 0;
+ background: #e6e6e6;
+ overflow: hidden;
+ }
+
+ @media (min-width: 1280px) {
+ .sidebar {
+ position: relative;
+ }
+ }
+ /* 顯示 sidebar */
+
+ .show-sidebar .sidebar {
+ left: 0;
+ }
+
+ .show-sidebar .main-container {
+ margin-left: 220px;
+ }
+
+ .show-sidebar .topbar--fixed {
+ left: 220px;
+ }
+ /* fixed 的狀態 */
+
+ .sidebar--fixed {
+ position: fixed;
+ }
+
+ .sidebar--fixed &gt;
+ .keyword-articles-container,
+ .sidebar--fixed .keyword-articles {
+ position: absolute;
+ }
+
+ .keyword-header {
+ height: 40px;
+ color: #fff;
+ font-size: 14px;
+ line-height: 40px;
+ text-align: center;
+ background: #3161dd;
+ }
+
+ .keyword-tags {
+ box-sizing: border-box;
+ padding: 5px 10px 10px;
+ background: #f3f3f3;
+ }
+
+ .keyword-tag {
+ display: inline-block;
+ box-sizing: border-box;
+ margin-top: 7px;
+ border: 1px solid #3161dd;
+ padding: 5px 15px 3px 7px;
+ color: #3161dd;
+ font-size: 12px;
+ line-height: 15px;
+ background: #fff url('//front.pixfs.net/images/icon-arrow--blue.png') no-repeat right 6px top 8px;
+ border-radius: 15px;
+ cursor: pointer;
+ }
+
+ .keyword-tag:hover,
+ .keyword-tag.active {
+ color: #fff;
+ background-color: #3161dd;
+ background-image: url('//front.pixfs.net/images/icon-arrow--white.png');
+ }
+
+ .keyword-articles-container {
+ top: 120px;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ font-size: 0;
+ white-space: nowrap;
+ }
+
+ .keyword-articles {
+ display: inline-block;
+ top: 0;
+ bottom: 0;
+ width: 220px;
+ white-space: normal;
+ overflow-x: hidden;
+ overflow-y: scroll;
+ }
+
+ .keyword-articles:nth-of-type(2) {
+ left: 220px;
+ }
+
+ .keyword-articles:nth-of-type(3) {
+ left: 440px;
+ }
+
+ .keyword-article {
+ display: block;
+ margin: 5px 10px;
+ border-left: 3px solid transparent;
+ padding: 8px 10px 8px 7px;
+ background: #fff;
+ }
+
+ .keyword-article-min70 {
+ min-height: 70px;
+ }
+
+ .keyword-article:hover {
+ text-decoration: none;
+ }
+
+ .keyword-article:visited {
+ background: #eee;
+ }
+
+ .keyword-article.active,
+ .keyword-article:hover {
+ border-color: #3161dd;
+ background: #fff;
+ }
+
+ .keyword-article__title {
+ color: #333;
+ font-size: 15px;
+ line-height: 20px;
+ }
+
+ .keyword-article:hover &gt;
+ .keyword-article__title {
+ color: #3161dd;
+ text-decoration: underline;
+ }
+
+ .keyword-article__desc {
+ margin-top: 10px;
+ color: #999;
+ font-size: 12px;
+ line-height: 16px;
+ }
+
+ .keyword-article span {
+ color: #f00;
+ }
+
+ .keyword-article:not(.active):visited span {
+ color: currentColor;
+ }
+
+ .keyword-article:visited:hover span {
+ color: #f00;
+ }
+
+ .keyword-article+iframe {
+ margin-bottom: -14px;
+ min-height: 15px;
+ }
+ </style>
+
+ <div class="sidebar sidebar--fixed" data-obstruct="ip" data-search="">
+ <div class="keyword-header">依據 Google 關鍵字搜尋結果</div>
+ <div class="keyword-tags"></div>
+ <div class="keyword-articles-container"></div>
+ </div>
+
+ <script src="//front.pixfs.net/js/ypa-resize-pixnet.min.js?v=7c1e56f6?v=b27bf7fe9e1f0fca830e1381a52f804b"></script>
+
+ <div class="main-container">
+
+
+ <div class="topbar-placeholder">
+
+ <div class="topbar topbar--fixed cssanimations borderradius boxshadow cssgradients" id="topbar">
+ <div class="topbar__logo topbar__logo--travel">
+ <h1 class="topbar__logo__title">痞客邦 PIXNET</h1>
+ <ul class="topbar__logo__chanenl-lists topbar__dropdown-lists">
+ <li class="topbar__logo__channel">
+ <a class="topbar__logo__channel-link" id="topbar__logo__channel-link--home" href="//www.pixnet.net">首頁</a>
+ </li>
+ <li class="topbar__logo__channel">
+ <a class="topbar__logo__channel-link" id="topbar__logo__channel-link--blog" href="//www.pixnet.net/blog">部落格</a>
+ </li>
+ <li class="topbar__logo__channel">
+ <a class="topbar__logo__channel-link" id="topbar__logo__channel-link--sport" href="//channel.pixnet.net/sport?utm_source=PIXNET-index&amp;utm_medium=mobile&amp;utm_campaign=TOPBAR_to_sport">運動</a>
+ </li>
+ <li class="topbar__logo__channel">
+ <a class="topbar__logo__channel-link" id="topbar__logo__channel-link--styleme" href="//styleme.pixnet.net/home?utm_source=PIXNET-index&amp;utm_medium=desktop&amp;utm_campaign=TOPBAR_to_styleMe">美妝</a>
+ </li>
+ <li class="topbar__logo__channel">
+ <a class="topbar__logo__channel-link" id="topbar__logo__channel-link--ccc" href="//tech3c.pixnet.net/?utm_source=PIXNET-index&amp;utm_medium=desktop&amp;utm_campaign=TOPBAR_to_tech3c">3C</a>
+ </li>
+ <li class="topbar__logo__channel">
+ <a class="topbar__logo__channel-link" id="topbar__logo__channel-link--movie" href="//movie.pixnet.net/category/19?utm_source=PIXNET-index&amp;utm_medium=desktop&amp;utm_campaign=TOPBAR_to_movie">電影</a>
+ </li>
+ <li class="topbar__logo__channel">
+ <a class="topbar__logo__channel-link" id="topbar__logo__channel-link--travel" href="//travel.pixnet.net/?utm_source=PIXNET-index&amp;utm_medium=desktop&amp;utm_campaign=TOPBAR_to_travel">旅遊</a>
+ </li>
+ <li class="topbar__logo__channel">
+ <a class="topbar__logo__channel-link" id="topbar__logo__channel-link--family" href="//family.pixnet.net/?utm_source=PIXNET-index&amp;utm_medium=desktop&amp;utm_campaign=TOPBAR_to_family">親子</a>
+ </li>
+ <li class="topbar__logo__channel">
+ <a class="topbar__logo__channel-link" id="topbar__logo__channel-link--food" href="//food.pixnet.net/?utm_source=PIXNET-index&amp;utm_medium=desktop&amp;utm_campaign=TOPBAR_to_food">美食</a>
+ </li>
+ <li class="topbar__logo__channel">
+ <a class="topbar__logo__channel-link"></a>
+ </li>
+ </ul>
+ </div>
+
+
+
+ <div class="topbar__related-article__block topbar__related-article__block--large" data-articles-type="旅遊" data-travel-city="新竹" data-test-variation="">
+
+ <ul class="topbar__related-article__cat-list">
+ <li class="topbar__related-article__cat topbar__related-article__cat--dropdown" data-tab-name="行程">
+ <div class="topbar__related-article__txt">行程攻略</div>
+
+ <div class="topbar__related-article__showcase">
+ <ul class="topbar__related-article-list">
+ <li class="topbar__related-article">
+ <a class="topbar__related-article-link" href="http://blue28082.pixnet.net/blog/post/148849384" target="_blank">
+ <div class="topbar__related-article__img"></div>
+ <div class="topbar__related-article__title">[新竹新埔一日遊]新竹觀光&amp;旅遊景點~~~柿餅加工廠 金漢觀光果園&amp;...</div>
+ </a>
+ </li>
+ <li class="topbar__related-article">
+ <a class="topbar__related-article-link" href="http://irischew.pixnet.net/blog/post/140096316" target="_blank">
+ <div class="topbar__related-article__img"><img src="http://s6.pimg.tw/album/irischew/element/63726186_1362903876-2078272255/zoomcrop/200x200.jpg" onerror="this.remove()" /></div>
+ <div class="topbar__related-article__title">『台灣』新竹-六福村主題樂園一日遊</div>
+ </a>
+ </li>
+ <li class="topbar__related-article">
+ <a class="topbar__related-article-link" href="http://chinyu0801.pixnet.net/blog/post/396176753" target="_blank">
+ <div class="topbar__related-article__img"><img src="http://s5.pimg.tw/album/chinyu0801/element/554560495_1414416897-3484204755/zoomcrop/200x200.jpg" onerror="this.remove()" /></div>
+ <div class="topbar__related-article__title"><新竹新埔>悠閒半日遊-鴛鴦池農場</div>
+ </a>
+ </li>
+ <li class="topbar__related-article">
+ <a class="topbar__related-article-link" href="http://carol781219.pixnet.net/blog/post/435583394" target="_blank">
+ <div class="topbar__related-article__img"><img src="http://s2.pimg.tw/album/carol781219/element/611043112_1441034316-3234816764/zoomcrop/200x200.png" onerror="this.remove()" /></div>
+ <div class="topbar__related-article__title">[竹苗。玩。吃]竹苗遊Day2行程滿滿❧阿土豆漿大王&gt;銅鑼炮仗花步道&gt;...</div>
+ </a>
+ </li>
+ <li class="topbar__related-article">
+ <a class="topbar__related-article-link" href="http://phy227.pixnet.net/blog/post/128067241" target="_blank">
+ <div class="topbar__related-article__img"><img src="http://s2.pimg.tw/album/phy227/element/84036252_1372424992-4238267340/zoomcrop/200x200.jpg" onerror="this.remove()" /></div>
+ <div class="topbar__related-article__title">新竹一日遊(世博館)</div>
+ </a>
+ </li>
+ </ul>
+ </div>
+ </li>
+ <li class="topbar__related-article__cat topbar__related-article__cat--dropdown" data-tab-name="交通">
+ <div class="topbar__related-article__txt">交通教學</div>
+
+ <div class="topbar__related-article__showcase">
+ <ul class="topbar__related-article-list">
+ <li class="topbar__related-article">
+ <a class="topbar__related-article-link" href="http://iko40623.pixnet.net/blog/post/439256686" target="_blank">
+ <div class="topbar__related-article__img"><img src="http://s1.pimg.tw/album/iko40623/element/620822731_1446559530-1279435851/zoomcrop/200x200.jpg" onerror="this.remove()" /></div>
+ <div class="topbar__related-article__title">[新竹]世博台灣館|720度全天域劇場|尋找綠蠵龜|點燈平台 (附交通...</div>
+ </a>
+ </li>
+ <li class="topbar__related-article">
+ <a class="topbar__related-article-link" href="http://joycebe.pixnet.net/blog/post/41954518" target="_blank">
+ <div class="topbar__related-article__img"><img src="http://s2.pimg.tw/album/joycebe/element/151863102_1420990775-1163836851/zoomcrop/200x200.jpg" onerror="this.remove()" /></div>
+ <div class="topbar__related-article__title">▉新竹▉鐵道懷舊之旅。合興車站‧愛情火車站❤</div>
+ </a>
+ </li>
+ <li class="topbar__related-article">
+ <a class="topbar__related-article-link" href="http://abby0318.pixnet.net/blog/post/418615672" target="_blank">
+ <div class="topbar__related-article__img"><img src="http://s8.pimg.tw/album/abby0318/element/191825088_1428857257-694873255/zoomcrop/200x200.jpg" onerror="this.remove()" /></div>
+ <div class="topbar__related-article__title">【新竹景點.橫山】內灣線~合興車站/愛情火車站.有薰衣草森林的...</div>
+ </a>
+ </li>
+ <li class="topbar__related-article">
+ <a class="topbar__related-article-link" href="http://emily710223.pixnet.net/blog/post/417707041" target="_blank">
+ <div class="topbar__related-article__img"><img src="http://s7.pimg.tw/album/emily710223/element/191462337_1428423090-729151016/zoomcrop/200x200.jpg" onerror="this.remove()" /></div>
+ <div class="topbar__related-article__title">╠新竹。橫山╣合興車站(愛情火車站) 嘟!嘟!起強起強………辣呼~辣呼 ...</div>
+ </a>
+ </li>
+ <li class="topbar__related-article">
+ <a class="topbar__related-article-link" href="http://yourtyng0104.pixnet.net/blog/post/98792706" target="_blank">
+ <div class="topbar__related-article__img"><img src="http://s7.pimg.tw/album/yourtyng0104/element/58931947_1358830455-2197812000/zoomcrop/200x200.jpg" onerror="this.remove()" /></div>
+ <div class="topbar__related-article__title">新竹。【內灣火車站】梅去櫻來❀稍來春之訊息</div>
+ </a>
+ </li>
+ </ul>
+ </div>
+ </li>
+ <li class="topbar__related-article__cat topbar__related-article__cat--dropdown" data-tab-name="住宿">
+ <div class="topbar__related-article__txt">住宿心得</div>
+
+ <div class="topbar__related-article__showcase">
+ <ul class="topbar__related-article-list">
+ <li class="topbar__related-article">
+ <a class="topbar__related-article-link" href="http://vivian00002000.pixnet.net/blog/post/205224523" target="_blank">
+ <div class="topbar__related-article__img"><img src="http://s8.pimg.tw/album/vivian00002000/element/202980528_1445242718-1039065392/zoomcrop/200x200.jpg" onerror="this.remove()" /></div>
+ <div class="topbar__related-article__title">1041017煙波大飯店新竹湖濱館。一泊二食,好吃又好玩!</div>
+ </a>
+ </li>
+ <li class="topbar__related-article">
+ <a class="topbar__related-article-link" href="http://louis5149.pixnet.net/blog/post/31062203" target="_blank">
+ <div class="topbar__related-article__img"><img src="http://imageproxy.pimg.tw/zoomcrop?url=https%3A%2F%2Ffarm6.staticflickr.com%2F5635%2F20392516933_8a6101444d_c.jpg&amp;width=200&amp;height=200" onerror="this.remove()" /></div>
+ <div class="topbar__related-article__title">【2015環島沙發旅行。新竹】司馬庫斯生活,雅竹景觀餐廳用餐與我...</div>
+ </a>
+ </li>
+ <li class="topbar__related-article">
+ <a class="topbar__related-article-link" href="http://mimg47.pixnet.net/blog/post/5395423" target="_blank">
+ <div class="topbar__related-article__img"><img src="http://s5.pimg.tw/album/mimg47/element/290248885_1430225926-3573469794/zoomcrop/200x200.jpg" onerror="this.remove()" /></div>
+ <div class="topbar__related-article__title">【新竹親子飯店】煙波大飯店-新竹湖濱館:從入住一直玩到退房的優...</div>
+ </a>
+ </li>
+ <li class="topbar__related-article">
+ <a class="topbar__related-article-link" href="http://always1027.pixnet.net/blog/post/40229227" target="_blank">
+ <div class="topbar__related-article__img"><img src="http://s5.pimg.tw/album/always1027/element/147969525_1391227799-698593706/zoomcrop/200x200.jpg" onerror="this.remove()" /></div>
+ <div class="topbar__related-article__title">【2014新竹住宿】美麗信酒店 Miramar Hotel Hsinchu</div>
+ </a>
+ </li>
+ <li class="topbar__related-article">
+ <a class="topbar__related-article-link" href="http://rmlove30.pixnet.net/blog/post/49139614" target="_blank">
+ <div class="topbar__related-article__img"><img src="http://s6.pimg.tw/album/rmlove30/element/213338796_1366033207-323149691/zoomcrop/200x200.jpg" onerror="this.remove()" /></div>
+ <div class="topbar__related-article__title">新竹‧玩時尚芙洛麗大飯店迷戀客房</div>
+ </a>
+ </li>
+ </ul>
+ </div>
+ </li>
+ <li class="topbar__related-article__cat topbar__related-article__cat--dropdown" data-tab-name="美食">
+ <div class="topbar__related-article__txt">必吃美食</div>
+
+ <div class="topbar__related-article__showcase">
+ <ul class="topbar__related-article-list">
+ <li class="topbar__related-article">
+ <a class="topbar__related-article-link" href="http://m08142001.pixnet.net/blog/post/200262327" target="_blank">
+ <div class="topbar__related-article__img"><img src="http://s.pimg.tw/album/m08142001/element/196762710_1435532679-2621009829/zoomcrop/200x200.jpg" onerror="this.remove()" /></div>
+ <div class="topbar__related-article__title">[試玩邀約] 臺灣吃透透-跟著美食小旅行。新竹篇(一)。半畝塘-若...</div>
+ </a>
+ </li>
+ <li class="topbar__related-article">
+ <a class="topbar__related-article-link" href="http://futuresfiona.pixnet.net/blog/post/56694768" target="_blank">
+ <div class="topbar__related-article__img"><img src="http://s4.pimg.tw/album/futuresfiona/element/279287214_1396926665-1131375440/zoomcrop/200x200.jpg" onerror="this.remove()" /></div>
+ <div class="topbar__related-article__title">新竹旅遊小確幸-內灣老街櫻木花道咖啡餐廳</div>
+ </a>
+ </li>
+ <li class="topbar__related-article">
+ <a class="topbar__related-article-link" href="http://estherhsiao.pixnet.net/blog/post/42270511" target="_blank">
+ <div class="topbar__related-article__img"><img src="http://s6.pimg.tw/album/estherhsiao/element/299115906_1433352810-3818657366/zoomcrop/200x200.jpg" onerror="this.remove()" /></div>
+ <div class="topbar__related-article__title">畫盒子藝術餐廳 Le CaSa 餐點兼具創意與美味 適合聚餐同樂的優質...</div>
+ </a>
+ </li>
+ <li class="topbar__related-article">
+ <a class="topbar__related-article-link" href="http://gntooly123.pixnet.net/blog/post/107769167" target="_blank">
+ <div class="topbar__related-article__img"><img src="http://s.pimg.tw/album/gntooly123/element/508218600_1396652860-621839862/zoomcrop/200x200.jpg" onerror="this.remove()" /></div>
+ <div class="topbar__related-article__title">新竹 - 心鮮森林莊園餐廳</div>
+ </a>
+ </li>
+ <li class="topbar__related-article">
+ <a class="topbar__related-article-link" href="http://wisebaby.pixnet.net/blog/post/29538295" target="_blank">
+ <div class="topbar__related-article__img"><img src="http://imageproxy.pimg.tw/zoomcrop?url=http%3A%2F%2Ffarm4.static.flickr.com%2F3771%2F11206755646_eeb52f5b20_b.jpg&amp;width=200&amp;height=200" onerror="this.remove()" /></div>
+ <div class="topbar__related-article__title">[食記] 新竹-泰雅媳婦的創意好味道::以娜的店</div>
+ </a>
+ </li>
+ </ul>
+ </div>
+ </li>
+ <li class="topbar__related-article__cat topbar__related-article__cat--dropdown" data-tab-name="必買">
+ <div class="topbar__related-article__txt">必買好物</div>
+
+ <div class="topbar__related-article__showcase">
+ <ul class="topbar__related-article-list">
+ <li class="topbar__related-article">
+ <a class="topbar__related-article-link" href="http://meena1985.pixnet.net/blog/post/183237610" target="_blank">
+ <div class="topbar__related-article__img"><img src="http://s4.pimg.tw/album/meena1985/element/541479094_1409054065-197791004/zoomcrop/200x200.jpg" onerror="this.remove()" /></div>
+ <div class="topbar__related-article__title">『食記』新竹名產--新竹三寶 米粉、貢丸、竹塹餅 (興復珍糕餅店)</div>
+ </a>
+ </li>
+ <li class="topbar__related-article">
+ <a class="topbar__related-article-link" href="http://peihsuan0729.pixnet.net/blog/post/435809714" target="_blank">
+ <div class="topbar__related-article__img"><img src="http://s.pimg.tw/album/peihsuan0729/element/611199250_1441118094-2467301170/zoomcrop/200x200.jpg" onerror="this.remove()" /></div>
+ <div class="topbar__related-article__title">【新竹】玻璃藝術博物館週邊好好逛。藝術街手作幸福町新鮮登場</div>
+ </a>
+ </li>
+ <li class="topbar__related-article">
+ <a class="topbar__related-article-link" href="http://adgsfh1745.pixnet.net/blog/post/167028400" target="_blank">
+ <div class="topbar__related-article__img"><img src="http://s8.pimg.tw/album/adgsfh1745/element/13081288_1446709410-4125554129/zoomcrop/200x200.jpg?v=1446709466" onerror="this.remove()" /></div>
+ <div class="topbar__related-article__title">新竹‧橫山 | 超好吃超好逛,大啖客家內灣老街美食!</div>
+ </a>
+ </li>
+ <li class="topbar__related-article">
+ <a class="topbar__related-article-link" href="http://deyue15.pixnet.net/blog/post/187491717" target="_blank">
+ <div class="topbar__related-article__img"><img src="http://imageproxy.pimg.tw/zoomcrop?url=http%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2F1%2F10%2FTRA_Hsinchu_Station.jpg&amp;width=200&amp;height=200" onerror="this.remove()" /></div>
+ <div class="topbar__related-article__title">新竹名產美食,來竹塹必吃的新竹名產!</div>
+ </a>
+ </li>
+ <li class="topbar__related-article">
+ <a class="topbar__related-article-link" href="http://minin0128.pixnet.net/blog/post/99431275" target="_blank">
+ <div class="topbar__related-article__img"><img src="http://s4.pimg.tw/album/minin0128/element/89462344_1374926655-1364602499/zoomcrop/200x200.jpg" onerror="this.remove()" /></div>
+ <div class="topbar__related-article__title">[懷孕25周]新竹台北之旅~伴手禮篇(新竹米粉、慶餘堂.......)</div>
+ </a>
+ </li>
+ </ul>
+ </div>
+ </li>
+ <div class="topbar__related-article__showcase-block"></div>
+ </ul>
+
+ </div>
+
+ <div class="topbar__nav">
+
+
+ <div class="topbar__search-container">
+ <div class="topbar__search__toggle-btn"></div>
+ <form class="topbar__search" id="topbar__search" action="//www.pixnet.net/searcharticle" target="_search">
+ <input name="q" class="topbar__search__input topbar__search__input--large topbar__search__input--no-icon" id="topbar__search__input" placeholder="哈囉~你今天想搜尋什麼關鍵字呢?" value="" maxlength="32" tabindex="1" autocomplete="off" type="text" />
+ <button type="reset" class="topbar__search__reset">×</button>
+
+ <div class="topbar__search__btns topbar__search__btns--large">
+ <button class="topbar__search__submit" name="search" type="submit" title="找文章" value="searcharticle" tabindex="2" data-counterlink="//counter.pixplug.in/count.php?timestamp=1486718791&amp;random=3863931231&amp;check=1009501581&amp;no_timeout=1&amp;data[counter]=%7B%22tag_id%22%3A30%2C%22id%22%3A%22search-articles-click%22%2C%22no_timeout%22%3Atrue%7D">找文章</button>
+ <button class="topbar__search__submit" name="search" type="submit" title="找部落客" value="searchblog" tabindex="3" data-counterlink="//counter.pixplug.in/count.php?timestamp=1486718791&amp;random=4123569235&amp;check=3953901527&amp;no_timeout=1&amp;data[counter]=%7B%22tag_id%22%3A30%2C%22id%22%3A%22search-bloggers-click%22%2C%22no_timeout%22%3Atrue%7D">找部落客</button>
+ </div>
+
+ <ul class="topbar__search__suggestion"></ul>
+ </form>
+ </div>
+
+ <div class="topbar__user">
+ <a class="topbar__user__login" id="topbar__user__login" href="https://www.pixnet.net/?done=http%3A%2F%2Fstevenhgm.pixnet.net%2Fblog%2Fpost%2F39926056-%25e6%2596%25b0%25e7%25ab%25b9%25e5%25b0%2596%25e7%259f%25b3_%25e7%25be%258e%25e6%25a8%25b9%25e7%2587%259f%25e5%259c%25b0%25e8%25b3%259e%25e6%25a5%2593-%25282%2529">登入</a>
+ </div>
+
+ </div>
+
+ </div>
+
+ </div>
+
+ <div id="body-div">
+ <a name="top"></a>
+ <div id="container">
+ <div id="container2">
+ <div id="container3">
+ <div id="header">
+ <div id="banner">
+ <h1><a href="http://stevenhgm.pixnet.net/blog">史蒂文的家_藍天</a></h1>
+ <p class="skiplink"><a href="#article-area" title="skip the page header to the main content">跳到主文</a></p>
+ <h2>這是Steven &amp; Fiona 的共同天地 喜歡碧海藍天,喜歡悠閒生活。 愛好大自然的真、善、美,走過美麗的旅遊足跡、品味台灣留下些生活日記。 .. . FB 史蒂文的家: https://www.facebook.com/stevenhgm1188
+ <script async="" src="//pic.sopili.net/move/allviews/user/stevenhgm.js" id="allviews"></script>
+ ( 創作圖文版權所有 未經授權同意均屬違反著作權法 盜用必究)
+
+ </h2>
+ <p id="blog-category">部落格全站分類:<a href="//www.pixnet.net/blog/bloggers/category/16" target="_blank">休閒旅遊</a></p>
+ </div>
+ <ul id="navigation">
+ <li id="link-album"><a href="http://stevenhgm.pixnet.net/album" title="go to gallery page of this user">相簿</a></li>
+ <li id="link-blog"><a href="http://stevenhgm.pixnet.net/blog" title="go to index page of this blog">部落格</a></li>
+ <li id="link-guestbook">
+ <a id="guestbook" data-msg="尚未安裝留言板,無法進行留言" data-action="none" href="#" title="go to guestbook page of this user">留言</a>
+ </li>
+ <li id="link-profile"><a href="http://www.pixnet.net/blog/profile/stevenhgm" title="go to profile page of this user">名片</a></li>
+ </ul>
+ </div>
+ <!-- #header//-->
+ <div id="main">
+ <div id="content">
+ <div id="spotlight">
+ <h5>相關文章</h5>
+ <div id="spotlight-text">
+ <div id="DebugZone"></div>
+
+ <script type="text/javascript">
+ // &lt;![CDATA[
+
+ var sCategoryID;
+
+ jQuery(function($) {
+ if ($("#blog-main").length) {
+ return;
+ }
+
+ //取得文章ID
+ var ArticleID = $("#article-main").attr("data-article-id");
+
+ //取出文章,截取分類ID
+ $.getJSON("https://emma.pixnet.cc/blog/articles/" + ArticleID + "?user=" + pix.owner + "&amp;format=json", function(json) {
+ if (json.error != "0") {
+ $("#DebugZone").append("https://emma.pixnet.cc/blog/articles/" + ArticleID + "?user=" + pix.owner + "&amp;format=json &lt;br&gt;");
+ $("#DebugZone").append("Message:" + data.message + "&lt;br&gt;");
+ return;
+ }
+ sCategoryID = json.article.category_id; //文章個人分類ID
+ //取出該分類6篇文章(只顯示五篇)
+ $.getJSON("https://emma.pixnet.cc/blog/articles?user=" + pix.owner + "&amp;per_page=6&amp;status=2&amp;format=json&amp;category_id=" + sCategoryID, function(data) {
+ if (data.error != "0") {
+ $("#DebugZone").append("Message:" + data.message + "&lt;br&gt;");
+ return;
+ }
+
+ $("#article-box").append('&lt;div id="related-box" class="my-Related-box"&gt;&lt;/div&gt;');
+ $("#related-box").append('&lt;div id="related-item" class="my-Related-Post"&gt;&lt;h5&gt;這個類別其他的文章&lt;/h5&gt;&lt;/div&gt;');
+ $("#related-item").append('&lt;ul id="my_relate" class="myrelate"&gt;&lt;/ul&gt;');
+ var li_item = '';
+ //取出同分類文章
+ $.each(data.articles, function(i, blog) {
+ if (blog.id != ArticleID & amp; & amp; $("#my_relate li").length & lt; 5) {
+ var li_item = ('&lt;li&gt;&lt;a href="' + blog.link + '" class="relate-link" title="' + blog.title + '"&gt;');
+ li_item += ('&lt;div class="relate-thumb"&gt;');
+ li_item += ('&lt;img src="' + blog.thumb + '" class="article-image"&gt;');
+ if (blog.title.length & gt; 12) {
+ li_item += ('&lt;span class="relate-title"&gt;' + blog.title.substring(0, 11) + '...&lt;/span&gt;');
+ } else {
+ li_item += ('&lt;span class="relate-title"&gt;' + blog.title + '&lt;/span&gt;');
+ }
+ li_item += ('&lt;/div&gt;&lt;/a&gt;&lt;/li&gt;');
+ $("#my_relate").append(li_item);
+ }
+ });
+ });
+ });
+
+ });
+ // ]]&gt;
+ </script>
+ </div>
+ <!-- #spotlight-text -->
+ </div>
+ <!-- #spotlight -->
+ <div id="article-area">
+ <div id="article-box">
+ <div class="article">
+ <ul class="article-head">
+ <li class="publish"><span class="month">Dec </span><span class="date">28 </span><span class="day">Sat </span><span class="year">2013 </span><span class="time">00:28</span></li>
+ <li class="title" id="article-39926056" data-hot-link="//www.pixnet.net/blog/articles/category/0" data-site-category="國內旅遊" data-site-category-id="28" data-article-link="http://stevenhgm.pixnet.net/blog/post/39926056">
+ <h2><a href="http://stevenhgm.pixnet.net/blog/post/39926056-%e6%96%b0%e7%ab%b9%e5%b0%96%e7%9f%b3_%e7%be%8e%e6%a8%b9%e7%87%9f%e5%9c%b0%e8%b3%9e%e6%a5%93-%282%29">新竹尖石_美樹營地賞楓 (2)</a></h2>
+ </li>
+ </ul>
+ <div class="article-body">
+ <div class="article-content"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fstevenhgm.pixnet.net%2Fblog%2Fpost%2F39926056&amp;layout=standard&amp;show_faces=true&amp;width=600&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=80" scrolling="no" style="border:none; overflow:hidden; width:600px; height:80px;" allowtransparency="true" frameborder="0"></iframe><br />
+
+ <div class="article-content-inner" id="article-content-inner">
+ <p>
+ <a href="http://stevenhgm.pixnet.net/album/photo/470389413"><img style="display: block; margin-left: auto; margin-right: auto;" title="12-IMG_3886.jpg" src="http://pic.pimg.tw/stevenhgm/1387894842-1217674167.jpg" alt="12-IMG_3886.jpg" original="http://pic.pimg.tw/stevenhgm/1387894842-1217674167.jpg" width="521" border="0" height="359" /></a>
+ </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;">一波波<span style="font-family: 標楷體; font-size: 12pt;">接續性</span>低溫寒流報到 已將新竹尖石鄉後山一帶層層山巒披上嫣紅的彩衣</span>
+ </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;">玉峰道路一路上雲氣山嵐滯留山頭 順路下切<span style="font-family: 標楷體; font-size: 12pt;">蜿蜒道路<span style="font-family: 標楷體; font-size: 12pt;">後不久即抵達</span>來到</span>"玉峰國小"</span>
+ </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;">"美樹"美如其名偌大楓香樹早已呈現金黃 泛紅色彩也是愛攝人仕所喜愛造訪之地</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;">第二次造訪美樹發現到營區變了 印象中以前生冷招牌換成了<span style="font-family: 標楷體; font-size: 12pt;">原木招牌可謂</span>匠心獨運</span>
+ </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;">燻黑<span style="font-family: 標楷體; font-size: 12pt;">原木</span>加上金黃色醒目字體 加上了貓頭鷹原木創作也充分發揮了裝飾藝術功力</span>
+ </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><span style="font-family: 標楷體; font-size: 12pt;"><span style="font-family: 標楷體; font-size: 12pt;">營區內</span></span>除了露營、民宿、餐飲</span><span style="font-family: 標楷體; font-size: 12pt;"><span style="font-family: 標楷體; font-size: 12pt;">、</span>賞楓項目<span style="font-family: 標楷體; font-size: 12pt;">多了許多原木飾品更有畫龍點睛加乘效果</span></span>
+ </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> <br /></span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><a href="http://stevenhgm.pixnet.net/album/photo/470396919"><img style="display: block; margin-left: auto; margin-right: auto;" title="30-IMG_4228.jpg" src="http://pic.pimg.tw/stevenhgm/1387894971-1486345289.jpg" alt="30-IMG_4228.jpg" original="http://pic.pimg.tw/stevenhgm/1387894971-1486345289.jpg" border="0" /></a></span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;">廣受歡迎的美樹營地有個很大特色就是<span style="font-family: 標楷體; font-size: 12pt;">楓紅時期楓香樹由綠轉黃、轉紅到楓紅層層</span> </span>
+ </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><span style="font-family: 標楷體; font-size: 12pt;">一來到"美樹"馬上眼睛為之一亮 也會深深地為那</span></span><span style="font-family: 標楷體; font-size: 12pt;"><span style="font-family: 標楷體; font-size: 12pt;">多種顏色多層次渲染之下楓紅而迷惑</span></span>
+ </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><span style="font-family: 標楷體; font-size: 12pt;"><span style="font-family: 標楷體; font-size: 12pt;"><span style="font-family: 標楷體; font-size: 12pt;">不同格調</span></span>就是從入口處這塊招牌<span style="font-family: 標楷體; font-size: 12pt;"><span style="font-family: 標楷體; font-size: 12pt;"><span style="font-family: 標楷體; font-size: 12pt;"><span style="font-family: 標楷體; font-size: 12pt;">第一眼<span style="font-family: 標楷體; font-size: 12pt;"><span style="font-family: 標楷體; font-size: 12pt;"><span style="font-family: 標楷體; font-size: 12pt;"><span style="font-family: 標楷體; font-size: 12pt;">開始</span></span>
+ </span>
+ </span> 木頭招牌</span>
+ </span>
+ </span>
+ </span>、貓頭鷹裝飾品勾勒出美樹的風格</span>
+ </span>
+ </p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><a href="http://stevenhgm.pixnet.net/album/photo/470396943"><img title="31-IMG_4231.jpg" src="http://pic.pimg.tw/stevenhgm/1387894979-1252095111.jpg" alt="31-IMG_4231.jpg" original="http://pic.pimg.tw/stevenhgm/1387894979-1252095111.jpg" style="display: inline;" border="0" /></a></span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> 每年12月向來是攝影班外拍的絕佳場所之一 楓紅期間入園費$50元</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;">園區給愛攝一族淨空場景而不是散搭帳蓬之下反</span><span style="font-family: 標楷體; font-size: 12pt;">而影響拍照畫面與構圖取景</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;">露營的話則須待中午過後再進場搭帳的彈性做法個人也相當支持這樣的權宜之計</span></p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span>
+ <a href="http://stevenhgm.pixnet.net/album/photo/470389413"><img title="P1610088.jpg" src="http://pic.pimg.tw/stevenhgm/1387971416-4261675924.jpg" alt="P1610088.jpg" original="http://pic.pimg.tw/stevenhgm/1387971416-4261675924.jpg" style="display: inline;" border="0" /></a>
+ </p>
+ <p style="text-align: center;"> <span style="font-family: 標楷體; font-size: 12pt;">來到現場已是落葉飄飄堆疊滿地 不時隨著風吹雨襲而葉落垂地</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span></p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span>
+ <a href="http://stevenhgm.pixnet.net/album/photo/470389413"><img title="P1610069.jpg" src="http://pic.pimg.tw/stevenhgm/1387971406-2480195851.jpg" alt="P1610069.jpg" original="http://pic.pimg.tw/stevenhgm/1387971406-2480195851.jpg" style="display: inline;" border="0" /></a>
+ </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;">不忍踩過剛剛掉落的樹葉 沿著前人足跡踏痕輕踩而行</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;">雖然只是一廂情願的想法 終究還是不可避免地將會化為塵土</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span></p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><a href="http://stevenhgm.pixnet.net/album/photo/470383005"><img title="02-P1610080.jpg" src="http://pic.pimg.tw/stevenhgm/1387894752-3567294980.jpg" alt="02-P1610080.jpg" original="http://pic.pimg.tw/stevenhgm/1387894752-3567294980.jpg" style="display: inline;" border="0" /></a> </span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> 葉落繽紛顯得幾分蕭瑟氣息 空氣中可以嗅得出來<span style="font-family: 標楷體; font-size: 12pt;">依然</span>瀰漫著濕寒水氣</span>
+ </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;">偶而還會飄下來一些霧氣水滴 不時張望尋找最佳楓葉主題</span></p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><a href="http://stevenhgm.pixnet.net/album/photo/470384469"><img title="04-P1610087.jpg" src="http://pic.pimg.tw/stevenhgm/1387894771-2897027724.jpg" alt="04-P1610087.jpg" original="http://pic.pimg.tw/stevenhgm/1387894771-2897027724.jpg" style="display: inline;" border="0" /></a></span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> 外拍的攝影班學員一堆早已不時穿梭其間</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;">各自努力地找尋自認為最好的拍攝角度</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span></p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><a href="http://stevenhgm.pixnet.net/album/photo/470384925"><img title="05-P1610099.jpg" src="http://pic.pimg.tw/stevenhgm/1387894778-2035483089.jpg" alt="05-P1610099.jpg" original="http://pic.pimg.tw/stevenhgm/1387894778-2035483089.jpg" style="display: inline;" border="0" /></a></span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span></p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><a href="http://stevenhgm.pixnet.net/album/photo/470389413"><img title="P1610095.jpg" src="http://pic.pimg.tw/stevenhgm/1387897405-3236217457.jpg" alt="P1610095.jpg" original="http://pic.pimg.tw/stevenhgm/1387897405-3236217457.jpg" style="display: inline;" border="0" /></a></span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span></p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><a href="http://stevenhgm.pixnet.net/album/photo/470389803"><img title="13-IMG_3891.jpg" src="http://pic.pimg.tw/stevenhgm/1387894848-3695967443.jpg" alt="13-IMG_3891.jpg" original="http://pic.pimg.tw/stevenhgm/1387894848-3695967443.jpg" style="display: inline;" border="0" /></a></span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span></p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><a href="http://stevenhgm.pixnet.net/album/photo/470390760"><img title="15-IMG_3906.jpg" src="http://pic.pimg.tw/stevenhgm/1387894863-3269042540.jpg" alt="15-IMG_3906.jpg" original="http://pic.pimg.tw/stevenhgm/1387894863-3269042540.jpg" style="display: inline;" border="0" /></a></span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;">"水槽"上面的這幾隻彩繪版貓頭鷹也太可愛了</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;">同樣的造型加上不同色彩宛如賦予不同的生命力一般 cool!</span></p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><a href="http://stevenhgm.pixnet.net/album/photo/470391000"><img title="16-IMG_3916.jpg" src="http://pic.pimg.tw/stevenhgm/1387894868-3997219746.jpg" alt="16-IMG_3916.jpg" original="http://pic.pimg.tw/stevenhgm/1387894868-3997219746.jpg" style="display: inline;" border="0" /></a></span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> 雨水洗塵後的枝頭固然掉落些葉片是否也洗去塵勞憂傷</span></p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><a href="http://stevenhgm.pixnet.net/album/photo/470391519"><img title="17-IMG_3919.jpg" src="http://pic.pimg.tw/stevenhgm/1387894873-1524806724.jpg" alt="17-IMG_3919.jpg" original="http://pic.pimg.tw/stevenhgm/1387894873-1524806724.jpg" style="display: inline;" border="0" /></a></span></p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><a href="http://stevenhgm.pixnet.net/album/photo/470385711"><img title="06-IMG_3853.jpg" src="http://pic.pimg.tw/stevenhgm/1387894788-105924953.jpg" alt="06-IMG_3853.jpg" original="http://pic.pimg.tw/stevenhgm/1387894788-105924953.jpg" style="display: inline;" border="0" /></a></span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> 喜歡拍照的不論是平面掃描、天空搜尋、</span><span style="font-family: 標楷體; font-size: 12pt;">地上地毯式搜索</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;">有如小說偵探一般 不放過蛛絲馬跡地用力尋尋覓覓找尋最美角度</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span></p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><a href="http://stevenhgm.pixnet.net/album/photo/470386749"><img title="07-P1610104.jpg" src="http://pic.pimg.tw/stevenhgm/1387894798-1063855065.jpg" alt="07-P1610104.jpg" original="http://pic.pimg.tw/stevenhgm/1387894798-1063855065.jpg" style="display: inline;" border="0" /></a></span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><a href="http://stevenhgm.pixnet.net/album/photo/470387232"><img title="08-IMG_3862.jpg" src="http://pic.pimg.tw/stevenhgm/1387894807-309560703.jpg" alt="08-IMG_3862.jpg" original="http://pic.pimg.tw/stevenhgm/1387894807-309560703.jpg" style="display: inline;" border="0" /></a></span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> 原本這周是由小朱團長早在一年前就跟"簍信"預定下來的場子</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;">早上從台北出門之際還是小雨不斷細雨紛飛來到此地雖雨已停</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;">但多日來的雨勢不斷已有部分區域水漬成攤並不適合落置帳篷</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><span style="font-family: 標楷體; font-size: 12pt;">這個季節正是"控溪吊橋"一帶的楓紅變葉時刻 先行走一趟<span style="font-family: 標楷體; font-size: 12pt;"><span style="font-family: 標楷體; font-size: 12pt;">秀巒賞景</span></span>
+ </span>
+ </span>
+ </p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><a href="http://stevenhgm.pixnet.net/album/photo/470391732"><img title="18-P1610141.jpg" src="http://pic.pimg.tw/stevenhgm/1387894882-1881930036.jpg" alt="18-P1610141.jpg" original="http://pic.pimg.tw/stevenhgm/1387894882-1881930036.jpg" style="display: inline;" border="0" /></a></span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;">午後從"秀巒"回到美樹之際已經全數撤退只剩下我們三車留下來</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;">唯有"離開地球表面"睡車上的才可以不受到地上泥濘而影響</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span></p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><a href="http://stevenhgm.pixnet.net/album/photo/470392077"><img title="19-IMG_3933.jpg" src="http://pic.pimg.tw/stevenhgm/1387894887-407829597.jpg" alt="19-IMG_3933.jpg" original="http://pic.pimg.tw/stevenhgm/1387894887-407829597.jpg" style="display: inline;" border="0" /></a></span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span></p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><a href="http://stevenhgm.pixnet.net/album/photo/470390364"><img title="14-P1610134.jpg" src="http://pic.pimg.tw/stevenhgm/1387894857-470378275.jpg" alt="14-P1610134.jpg" original="http://pic.pimg.tw/stevenhgm/1387894857-470378275.jpg" style="display: inline;" border="0" /></a></span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> 午後山嵐興起雲氣遊蕩<span style="font-family: 標楷體; font-size: 12pt;">盤旋在對岸山頭 人潮來來去去似乎也沒有減少</span></span>
+ </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><span style="font-family: 標楷體; font-size: 12pt;"> </span></span>
+ </p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><a href="http://stevenhgm.pixnet.net/album/photo/470403381"><img title="44-P1610283.jpg" src="http://pic.pimg.tw/stevenhgm/1387895099-4119123008.jpg" alt="44-P1610283.jpg" original="http://pic.pimg.tw/stevenhgm/1387895099-4119123008.jpg" style="display: inline;" border="0" /></a></span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> 美樹民宿有開設餐廳 室內簡單佈置提供伙食餐飲 <br /></span></p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;">
+ <a href="http://stevenhgm.pixnet.net/album/photo/470389413"><img title="P1610212.jpg" src="http://pic.pimg.tw/stevenhgm/1387971426-4277312474.jpg" alt="P1610212.jpg" original="http://pic.pimg.tw/stevenhgm/1387971426-4277312474.jpg" style="display: inline;" border="0" /></a>
+ </p>
+ <p style="text-align: center;"> <span style="font-family: 標楷體; font-size: 12pt;">這兩間是民宿房間 跟著民宿主人"簍信"聊起來還提到日後將改變成兩層木屋</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;">一樓則是咖啡飲料/賣店提供訪客來賓有個落腳席座之地 二樓才會是民宿房間</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;">心中有了計畫想法才會有日後的夢想藍圖 相信將會改變得更好的民宿露營環境<br /></span></p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;">
+ <a href="http://stevenhgm.pixnet.net/album/photo/470389413"><img title="P1610219.jpg" src="http://pic.pimg.tw/stevenhgm/1387971436-2828193592.jpg" alt="P1610219.jpg" original="http://pic.pimg.tw/stevenhgm/1387971436-2828193592.jpg" style="display: inline;" border="0" /></a>
+ </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> 民宿前這一大區楓香林為土質營位 大致區分前、後兩個營區</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;">前面這一區約可搭上十二帳/車/廳 後面那區也大約4~5帳/車/廳</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;">正前方小木屋即是衛浴區 男女分別以左右<span style="font-family: 標楷體; font-size: 12pt;">兩側</span>分開(燒材鍋爐)</span>
+ </p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><a href="http://stevenhgm.pixnet.net/album/photo/470388054"><img title="10-P1610114.jpg" src="http://pic.pimg.tw/stevenhgm/1387894823-4061326865.jpg" alt="10-P1610114.jpg" original="http://pic.pimg.tw/stevenhgm/1387894823-4061326865.jpg" style="display: inline;" border="0" /></a></span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> 營區水電方便 水槽也很有特色</span></p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><a href="http://stevenhgm.pixnet.net/album/photo/470393178"><img title="22-P1610245.jpg" src="http://pic.pimg.tw/stevenhgm/1387894911-3706194096.jpg" alt="22-P1610245.jpg" original="http://pic.pimg.tw/stevenhgm/1387894911-3706194096.jpg" style="display: inline;" border="0" /></a></span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> 這次選擇左側地勢高些以防午夜下雨泥濘</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span></p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><a href="http://stevenhgm.pixnet.net/album/photo/470392404"><img title="20-P1610238.jpg" src="http://pic.pimg.tw/stevenhgm/1387894894-1173705525.jpg" alt="20-P1610238.jpg" original="http://pic.pimg.tw/stevenhgm/1387894894-1173705525.jpg" style="display: inline;" border="0" /></a></span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> "野馬"特地帶來了冬至應景食材ㄜ<span style="font-family: 標楷體; font-size: 12pt;">---湯圓</span></span>
+ </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;">這家還是最近被評比第一名氣的湯圓專賣店 </span></p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><a href="http://stevenhgm.pixnet.net/album/photo/470393130"><img title="21-P1610241.jpg" src="http://pic.pimg.tw/stevenhgm/1387894901-1058040075.jpg" alt="21-P1610241.jpg" original="http://pic.pimg.tw/stevenhgm/1387894901-1058040075.jpg" style="display: inline;" border="0" /></a></span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> 向來對於湯圓是敬謝不敏 沒想到是出乎意料之外的好吃 <span style="font-family: 標楷體; font-size: 12pt;">沒話說!</span><br /></span>
+ </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span></p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> <a href="http://stevenhgm.pixnet.net/album/photo/470394156"><img title="24-IMG_4113.jpg" src="http://pic.pimg.tw/stevenhgm/1387894925-1582979930.jpg" alt="24-IMG_4113.jpg" original="http://pic.pimg.tw/stevenhgm/1387894925-1582979930.jpg" style="display: inline;" border="0" /></a></span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> 喜歡原住民朋友的坦率、真誠 要將民宿營地經營的有聲有色並非容易之事</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><span style="font-family: 標楷體; font-size: 12pt;">午茶時間與"簍信"閒聊分享著他的觀點理念之時很支持對於環境應有生態保護</span> </span>
+ </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><span style="font-family: 標楷體; font-size: 12pt;">環保維護是人人有責</span></span><span style="font-family: 標楷體; font-size: 12pt;"><span style="font-family: 標楷體; font-size: 12pt;"><span style="font-family: 標楷體; font-size: 12pt;"><span style="font-family: 標楷體; font-size: 12pt;"> 勿以善小而不為不計涓滴之水才可匯集成河</span></span> </span>
+ </span>
+ </p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><a href="http://stevenhgm.pixnet.net/album/photo/470397399"><img title="32-IMG_4248.jpg" src="http://pic.pimg.tw/stevenhgm/1387894989-1689510758.jpg" alt="32-IMG_4248.jpg" original="http://pic.pimg.tw/stevenhgm/1387894989-1689510758.jpg" style="display: inline;" border="0" /></a></span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><a href="http://stevenhgm.pixnet.net/album/photo/470394732"><img title="25-IMG_4152.jpg" src="http://pic.pimg.tw/stevenhgm/1387894933-2886337976.jpg" alt="25-IMG_4152.jpg" original="http://pic.pimg.tw/stevenhgm/1387894933-2886337976.jpg" style="display: inline;" border="0" /></a> </span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> 入夜前雨絲終於漸漸緩和下來 雖然氣溫很低卻沒感受到寒冷的跡象</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;">是山谷中少了寒氣還是美樹營區裡的人熱情洋溢暖化了不少寒意</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span><br /> </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><a href="http://stevenhgm.pixnet.net/album/photo/470404359"><img title="IMG_4158.jpg" src="http://pic.pimg.tw/stevenhgm/1387895113-4041265313.jpg" alt="IMG_4158.jpg" original="http://pic.pimg.tw/stevenhgm/1387895113-4041265313.jpg" style="display: inline;" border="0" /></a></span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> 聖誕前夕裝點些聖誕飾品 感受一下節慶的氛圍<br /></span></p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><a href="http://stevenhgm.pixnet.net/album/photo/470394948"><img title="26-P1610261.jpg" src="http://pic.pimg.tw/stevenhgm/1387894940-3359449338.jpg" alt="26-P1610261.jpg" original="http://pic.pimg.tw/stevenhgm/1387894940-3359449338.jpg" style="display: inline;" border="0" /></a></span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;">晚餐準備了砂鍋魚頭</span></p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><a href="http://stevenhgm.pixnet.net/album/photo/470403921"><img title="46-1021221美樹露營.jpg" src="http://pic.pimg.tw/stevenhgm/1387895106-1387217970.jpg" alt="46-1021221美樹露營.jpg" original="http://pic.pimg.tw/stevenhgm/1387895106-1387217970.jpg" style="display: inline;" border="0" /></a></span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;">"蒯嫂"還特地準備著羊肩排、鹹豬肉、柳葉魚...哇!這哩澎湃哩...</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> "永老爺"早已備妥了好酒為遠自台南來的蒯兄嫂敬一杯囉</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;">感謝蒯嫂精心準備的好料理 食指大動好菜色感恩ㄟ!</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><a href="http://stevenhgm.pixnet.net/album/photo/470395164"><img title="27-IMG_4173.jpg" src="http://pic.pimg.tw/stevenhgm/1387894947-2636431527.jpg" alt="27-IMG_4173.jpg" original="http://pic.pimg.tw/stevenhgm/1387894947-2636431527.jpg" style="display: inline;" border="0" /></a></span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> 吃得快精光之際...才想到忘了拍合照...(哇哩咧 ^&amp;*()<br /></span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><a href="http://stevenhgm.pixnet.net/album/photo/470395614"><img title="28-IMG_4178.jpg" src="http://pic.pimg.tw/stevenhgm/1387894956-618198074.jpg" alt="28-IMG_4178.jpg" original="http://pic.pimg.tw/stevenhgm/1387894956-618198074.jpg" style="display: inline;" border="0" /></a></span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><a href="http://stevenhgm.pixnet.net/album/photo/470396325"><img title="29-IMG_4188.jpg" src="http://pic.pimg.tw/stevenhgm/1387894961-2201609427.jpg" alt="29-IMG_4188.jpg" original="http://pic.pimg.tw/stevenhgm/1387894961-2201609427.jpg" style="display: inline;" border="0" /></a></span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> 隔日睡到很晚才起床 不用拍日出晨光的營地對我來說都是個幸福的睡眠</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;">哪怕是葉落飄零落滿地還是睡夢周公召見而去 起床的事~差點都忘記了</span></p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;">
+ <a href="http://stevenhgm.pixnet.net/album/photo/470389413"><img title="IMG_4205.jpg" src="http://pic.pimg.tw/stevenhgm/1387971396-2999285851.jpg" alt="IMG_4205.jpg" original="http://pic.pimg.tw/stevenhgm/1387971396-2999285851.jpg" style="display: inline;" border="0" /></a>
+ </p>
+ <p style="text-align: center;"> <span style="font-family: 標楷體; font-size: 12pt;"> 昨天細雨紛飛依然打落了不少落葉中間這株整個都快變成枯枝了</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;">昨天依稀凋零稀疏的楓葉殘留今兒個完全不復存在(上周是最美的代名詞)</span></p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><a href="http://stevenhgm.pixnet.net/album/photo/470397765"><img title="33-IMG_4255.jpg" src="http://pic.pimg.tw/stevenhgm/1387894999-1588465034.jpg" alt="33-IMG_4255.jpg" original="http://pic.pimg.tw/stevenhgm/1387894999-1588465034.jpg" style="display: inline;" border="0" /></a></span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><span style="font-family: 標楷體; font-size: 12pt;">上回來得太早沒能見到楓葉泛紅 這次晚了一周已陸續落葉也</span>無從比對楓葉差異性 </span>
+ </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><span style="font-family: 標楷體; font-size: 12pt;"> 另一種角度看不論青楓、金黃葉紅的楓香、葉落飄零秋滿霜、落葉枯枝的蕭瑟</span></span>
+ </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><span style="font-family: 標楷體; font-size: 12pt;">只要心中自認為是最美最浪漫的一刻 都是美的表徵也是最美的時分</span></span>
+ </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><a href="http://stevenhgm.pixnet.net/album/photo/470398749"><img title="34-P1610269.jpg" src="http://pic.pimg.tw/stevenhgm/1387895007-4184988815.jpg" alt="34-P1610269.jpg" original="http://pic.pimg.tw/stevenhgm/1387895007-4184988815.jpg" style="display: inline;" border="0" /></a></span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> 早起的"蒯嫂"已經備好熱騰騰中式稀飯、包子、蔬果 頓時~有幸福的感覺<br /></span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span></p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><a href="http://stevenhgm.pixnet.net/album/photo/470399232"><img title="35-IMG_4303.jpg" src="http://pic.pimg.tw/stevenhgm/1387895016-2193615729.jpg" alt="35-IMG_4303.jpg" original="http://pic.pimg.tw/stevenhgm/1387895016-2193615729.jpg" style="display: inline;" border="0" /></a> </span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> 星期天早上趁著攝影團還沒入場先來人物場景特寫</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;">野馬家兩張新"座椅"就當作是試坐囉!拍謝哩</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span></p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><a href="http://stevenhgm.pixnet.net/album/photo/470400471"><img title="38-IMG_4330.jpg" src="http://pic.pimg.tw/stevenhgm/1387895047-92554161.jpg" alt="38-IMG_4330.jpg" original="http://pic.pimg.tw/stevenhgm/1387895047-92554161.jpg" style="display: inline;" border="0" /></a></span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span></p>
+ <p style="text-align: center;">
+ <a href="http://stevenhgm.pixnet.net/album/photo/470389413"><img title="P1610279.jpg" src="http://pic.pimg.tw/stevenhgm/1387971446-966387512.jpg" alt="P1610279.jpg" original="http://pic.pimg.tw/stevenhgm/1387971446-966387512.jpg" style="display: inline;" border="0" /></a>
+ </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> 難得有此無人美景在楓樹下的聖誕氛圍也一定要來一張才行</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span></p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><a href="http://stevenhgm.pixnet.net/album/photo/470399946"><img title="37-IMG_4323.jpg" src="http://pic.pimg.tw/stevenhgm/1387895036-848978834.jpg" alt="37-IMG_4323.jpg" original="http://pic.pimg.tw/stevenhgm/1387895036-848978834.jpg" style="display: inline;" border="0" /></a></span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> 三家合照(Hero也一定要入鏡的)</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span></p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> <a href="http://stevenhgm.pixnet.net/album/photo/470401161"><img title="40-IMG_4342.jpg" src="http://pic.pimg.tw/stevenhgm/1387895067-717977929.jpg" alt="40-IMG_4342.jpg" original="http://pic.pimg.tw/stevenhgm/1387895067-717977929.jpg" style="display: inline;" border="0" /></a></span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> 接著攝影團入場帶隊老師請求借個時間也來讓學員練習楓樹下的聖誕飾品</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;">此時剛好也遇到早在FB社團相互回應卻頭一次謀面的Mr."大雄"真是幸會了</span></p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><a href="http://stevenhgm.pixnet.net/album/photo/470402037"><img title="42-IMG_4382.jpg" src="http://pic.pimg.tw/stevenhgm/1387895083-1227791497.jpg" alt="42-IMG_4382.jpg" original="http://pic.pimg.tw/stevenhgm/1387895083-1227791497.jpg" style="display: inline;" border="0" /></a> </span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> 接近中午時分陽光漸露 藍天帷幕再次嶄露頭角 ~ 久違了!</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;">期盼下的天空終於放晴 沒有缺席的藍天還是準時赴約如期出席</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span></p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><a href="http://stevenhgm.pixnet.net/album/photo/470402682"><img title="41-IMG_4366.jpg" src="http://pic.pimg.tw/stevenhgm/1387895075-2647157523.jpg" alt="41-IMG_4366.jpg" original="http://pic.pimg.tw/stevenhgm/1387895075-2647157523.jpg" style="display: inline;" border="0" /></a></span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> 這兩天肉肉(Hero)天雨濕滑無法自由奔跑都快悶壞了</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;">天晴後"蒯嫂"帶著散步遊園也好解解悶</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"> </span></p>
+ <p style="text-align: center;"> </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><a href="http://stevenhgm.pixnet.net/album/photo/470402898"><img title="43-IMG_4383.jpg" src="http://pic.pimg.tw/stevenhgm/1387895093-631461272.jpg" alt="43-IMG_4383.jpg" original="http://pic.pimg.tw/stevenhgm/1387895093-631461272.jpg" style="display: inline;" border="0" /></a> </span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;">收拾好裝備準備離開營地 亮麗的</span><span style="font-family: 標楷體; font-size: 12pt;">天空鮮明對比下的楓樹林又讓人覺得有點捨不得離開</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;"><span style="font-family: 標楷體; font-size: 12pt;">道別了"美樹營地"準備前往而行</span>"石磊國小"一個很生疏的小學座落在這深山部落裡</span>
+ </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;">北橫"石磊部落" 一個從未踏入的陌生之地因為露營之故否則畢生大概也不會路過</span></p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 12pt;">三位大叔同行準備走著這段遙遠的路段 下次找機會再來重溫舊夢了.......</span></p>
+ <p> </p>
+ <p class="MsoNormal" style="text-align: center; margin: 0cm 0cm 0pt;" align="center"><span style="font-family: 標楷體;" lang="EN-US"><a href="http://tw.myblog.yahoo.com/wu141993/article?mid=104&amp;sc=1"><span lang="EN-US"><span lang="EN-US"><span style="color: #0000ff; font-size: medium;">美樹營地</span></span>
+ </span>
+ </a> </span><span style="font-family: 標楷體;" lang="EN-US"><span style="font-family: 標楷體; color: black; font-size: 13pt;">資訊</span></span>
+ </p>
+ <p class="MsoNormal" style="text-align: center; margin: 0cm 0cm 0pt;" align="center"><span style="font-family: 標楷體;" lang="EN-US"><span style="font-family: 標楷體; color: black; font-size: 13pt;"><span style="font-family: 標楷體; color: #2e2e2e; font-size: 13pt;">聯絡電話:</span><span style="font-family: 標楷體; letter-spacing: 0.9pt; color: black; font-size: 13pt;" lang="EN-US">03-584-7231</span><span style="font-family: 標楷體; letter-spacing: 0.9pt; color: #4fa2c1; font-size: 13pt;">  </span><span style="font-family: 標楷體; color: black; font-size: 13pt;" lang="EN"> </span><span style="font-family: 標楷體; color: black; font-size: 13pt;">行動</span><span style="font-family: 標楷體; color: black; font-size: 13pt;" lang="EN">:</span><span style="font-family: 標楷體; color: black; font-size: 13pt;" lang="EN-US"> 0937-141993</span><span style="font-family: 標楷體; color: #2e2e2e; font-size: 13pt;" lang="EN-US"><br /></span><span style="font-family: 標楷體; color: black; font-size: 13pt;">林錦武<span lang="EN-US"> (泰雅族名: 摟信)</span></span><span style="font-family: 標楷體; color: black; font-size: 13pt;" lang="EN"><br /></span><span style="font-family: 標楷體; color: black; font-size: 13pt;">營地地址:<span style="letter-spacing: 0.9pt;">新竹縣尖石鄉玉峰村<span lang="EN-US">6鄰20號</span></span>
+ </span>
+ </span>
+ </span>
+ </p>
+ <p class="MsoNormal" style="text-align: center; margin: 0cm 0cm 0pt;" align="center"><span style="font-family: 標楷體;" lang="EN-US"><span style="font-family: 標楷體; color: black; font-size: 13pt;">每帳$600 兩間衛浴使用燒材鍋爐/ 兩間全天瓦斯 </span></span><span style="font-family: 標楷體;" lang="EN-US"><span style="font-family: 標楷體; color: black; font-size: 13pt;">廁所蹲式X 3 </span></span>
+ </p>
+ <p class="MsoNormal" style="text-align: center; margin: 0cm 0cm 0pt;" align="center"><span style="font-family: 標楷體;" lang="EN-US"><span style="font-family: 標楷體; color: black; font-size: 13pt;">楓紅期間須過中午才可搭帳 </span></span><span style="font-size: 12pt; font-family: 標楷體;" lang="EN-US">水電便利</span></p>
+ <p class="MsoNormal" style="margin: 0cm 0cm 0pt;" align="center"><strong><span style="font-family: 標楷體; font-size: 13pt;" lang="EN-US">GPS: N24 39 16.4 <span> </span>E121 18 19.5</span></strong></p>
+ <p class="MsoNormal" style="margin: 0cm 0cm 0pt;" align="center"> </p>
+ <p class="MsoNormal" style="margin: 0cm 0cm 0pt;" align="center"> </p>
+ <p style="text-align: center;"><span style="font-family: 標楷體; font-size: 14pt;"><span style="font-size: 12pt;">如果您喜歡</span>"<span style="font-size: 12pt;">史蒂文的家"圖文分享 邀請您到 </span></span><span style="font-family: 標楷體; font-size: 14pt;"><a href="https://www.facebook.com/stevenhgm1188"><span style="color: #0000cc;">FB </span><span style="color: #0000cc;" lang="EN-US"><span lang="EN-US">粉絲團</span></span>
+ </a><span style="font-size: 12pt;">按個"讚"!</span></span>
+ </p>
+ <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-family: 標楷體;"><span style="font-size: 14pt;"><span style="font-size: 12pt;">內文有不定期的更新旅遊、露營圖文訊息 </span></span><span style="font-size: 14pt;"><span style="font-size: 12pt;">謝謝!</span></span>
+ </span>
+ </p>
+ <p> </p>
+ <p style="text-align: center;"> </p>
+
+ <div class="article-keyword" style="word-wrap: break-word; word-break: break-all; margin-top: 20px; clear: both;">
+ <img src="http://panel.pixfs.net/images/icons/tag_blue.gif" style="vertical-align: middle; display: inline;" original="http://panel.pixfs.net/images/icons/tag_blue.gif" />
+
+ <a href="http://tags.pixnet.net/blog/user/stevenhgm/%E7%8E%89%E5%B3%B0%E9%81%93%E8%B7%AF" rel="tag" target="_blank">玉峰道路</a>, <a href="http://tags.pixnet.net/blog/user/stevenhgm/%E4%B8%8A%E5%AE%87%E8%80%81%E8%A7%80%E6%99%AF%E5%8F%B0" rel="tag" target="_blank">上宇老觀景台</a>, <a href="http://tags.pixnet.net/blog/user/stevenhgm/%E7%BE%8E%E6%A8%B9%E7%87%9F%E5%9C%B0" rel="tag" target="_blank">美樹營地</a>, <a href="http://tags.pixnet.net/blog/user/stevenhgm/%E6%8E%A7%E6%BA%AA%E5%90%8A%E6%A9%8B" rel="tag" target="_blank">控溪吊橋</a>, <a href="http://tags.pixnet.net/blog/user/stevenhgm/%E7%9F%B3%E7%A3%8A%E9%83%A8%E8%90%BD" rel="tag" target="_blank">石磊部落</a> </div>
+
+ </div>
+ <div id="pix_article_switch_content">
+ <h5>上一篇文章與下一篇文章</h5>
+ <ul>
+ <li>
+ <a href="http://stevenhgm.pixnet.net/blog/post/39815080-%e6%84%9b%e4%b8%8a%e5%96%9c%e7%bf%81%e9%9c%b2%e7%87%9f_%e6%ad%a1%e6%85%b6%e8%81%96%e8%aa%95%e5%a4%9c%e5%b8%82%e8%b6%b4">
+ <div class="article-image-box"><img src="http://s8.pimg.tw/album/stevenhgm/element/457637358_1387458392-1693665696/zoomcrop/90x90.jpg" class="article-image" width="90" height="90" /></div><span class="article-text">愛上喜翁露營_歡慶聖誕夜市趴</span></a>
+ </li>
+ <li>
+ <a href="http://stevenhgm.pixnet.net/blog/post/40120789-%e8%b5%b0%e9%80%b2%e8%8e%ab%e5%85%a7%e9%81%87%e8%a6%8b%e8%90%bd%e7%be%bd%e6%9d%be_%e8%8f%81%e8%8a%b3%e5%9c%92">
+ <div class="article-image-box"><img src="http://s9.pimg.tw/album/stevenhgm/element/485324079_1388755991-1712764152/zoomcrop/90x90.jpg" class="article-image" width="90" height="90" /></div><span class="article-text">走進莫內遇見落羽松_菁芳園</span></a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ <div class="pix-related-post pix-related-post-showed">
+ <div class="demo recommended-posts recommended-posts3" style="">
+ <h5><span>您可能會有興趣的文章</span></h5>
+ <ul class="demo">
+ <li>
+ <a href="http://csam911.pixnet.net/blog/post/165122302-%e7%a7%80%e5%b7%92----%e7%8e%89%e5%b3%b0%e9%81%93%e8%b7%af?pixfrom=related" class="source-emma" target="_blank">
+ <div class="article-image-box"><img src="http://s2.pimg.tw/album/csam911/element/12889762_1446555301-541251431/zoomcrop/100x100.jpg" class="article-image" /></div><span class="article-text">秀巒 玉峰道路</span></a>
+ </li>
+ <li>
+ <a href="http://oblu99.pixnet.net/blog/post/76200255?pixfrom=related" class="source-emma" target="_blank">
+ <div class="article-image-box"><img src="http://s8.pimg.tw/album/oblu99/element/4907698_1438316104-3828205264/zoomcrop/100x100.jpg" class="article-image" /></div><span class="article-text">[第13露] 新竹尖石 -梅花山莊</span></a>
+ </li>
+ <li>
+ <a href="http://maggieshih111.pixnet.net/blog/post/176953684-%e6%88%91%e5%80%91%e5%9c%a8%e7%a6%8f%e5%a3%bd%e5%b1%b1%e8%be%b2%e5%a0%b4%e9%81%87%e8%a6%8b%e5%a4%a2%e5%b9%bb%e7%9a%84%e6%a5%93%e8%91%89104.11.16%40%e6%a2%85?pixfrom=related" class="source-emma" target="_blank">
+ <div class="article-image-box"><img src="http://s5.pimg.tw/album/maggieshih111/element/14394145_1447820636-4168992041/zoomcrop/100x100.jpg" class="article-image" /></div><span class="article-text">我們在福壽山農場遇見夢幻的楓葉104.11.16@梅姬小姐愛旅行</span></a>
+ </li>
+ <li>
+ <div id="pixad1013"><iframe marginwidth="0" marginheight="0" framespacing="0" scrolling="NO" src="https://falcon.pixanalytics.com/ad/embed/2008" width="113" height="176" frameborder="0"></iframe></div>
+ </li>
+ <li>
+ <div id="pixad673"><iframe marginwidth="0" marginheight="0" framespacing="0" scrolling="NO" src="https://falcon.pixanalytics.com/ad/embed/2005" width="113" height="176" frameborder="0"></iframe></div>
+ </li>
+ </ul>
+ </div>
+ </div>
+ <!-- .article-content //-->
+
+ <p class="author">
+ 史蒂文的家_藍天 發表在 <a href="http://www.pixnet.net/">痞客邦 PIXNET</a> <a href="http://stevenhgm.pixnet.net/blog/post/39926056-%e6%96%b0%e7%ab%b9%e5%b0%96%e7%9f%b3_%e7%be%8e%e6%a8%b9%e7%87%9f%e5%9c%b0%e8%b3%9e%e6%a5%93-%282%29#comments">留言</a>(42) <span class="author-views">人氣(<span id="BlogArticleCount-39926056">23925</span>)</span>
+ </p>
+ <!-- .author //-->
+ <div class="forward">
+ <form method="POST" id="0rz-form" action="http://0rz.tw/create" target="_blank"><input name="url" value="http://stevenhgm.pixnet.net/blog/post/39926056-%e6%96%b0%e7%ab%b9%e5%b0%96%e7%9f%b3_%e7%be%8e%e6%a8%b9%e7%87%9f%e5%9c%b0%e8%b3%9e%e6%a5%93-%282%29" type="hidden" /> </form>
+ <a href="#" data-0rz-url="true"><img src="//s.pixfs.net/blog/images/common/push_0rz_icon.gif" />產生短網址</a>
+ <a href="javascript:;" onclick="pix.sendForwardTo('%E6%82%A8%E7%9A%84%E5%A5%BD%E6%9C%8B%E5%8F%8B%E9%82%80%E8%AB%8B%E6%82%A8%E8%A7%80%E7%9C%8B%20stevenhgm%20%E7%9A%84%E7%97%9E%E5%AE%A2%E9%82%A6%20PIXNET%20%E9%83%A8%E8%90%BD%E6%A0%BC%E6%96%87%E7%AB%A0-%E6%96%B0%E7%AB%B9%E5%B0%96%E7%9F%B3_%E7%BE%8E%E6%A8%B9%E7%87%9F%E5%9C%B0%E8%B3%9E%E6%A5%93%20%282%29','%E6%82%A8%E5%A5%BD%EF%BC%8C%0A%0A%E6%82%A8%E7%9A%84%E5%A5%BD%E6%9C%8B%E5%8F%8B%E9%82%80%E8%AB%8B%E6%82%A8%E8%A7%80%E7%9C%8B%20stevenhgm%20%E7%9A%84%E7%97%9E%E5%AE%A2%E9%82%A6%20PIXNET%20%E9%83%A8%E8%90%BD%E6%A0%BC%E6%96%87%E7%AB%A0-%E6%96%B0%E7%AB%B9%E5%B0%96%E7%9F%B3_%E7%BE%8E%E6%A8%B9%E7%87%9F%E5%9C%B0%E8%B3%9E%E6%A5%93%20%282%29%0A%E8%B6%8A%E5%A4%9A%E4%BA%BA%E7%9C%8B%E5%88%B0%EF%BC%8C%E5%8F%AF%E5%B9%AB%E4%BB%96%E5%A2%9E%E5%8A%A0%E8%B6%8A%E5%A4%9A%E4%BA%BA%E6%B0%A3%E5%96%94%7EGO%EF%BC%81%0A----------%0ADecember28%2C2013%0A%E6%96%B0%E7%AB%B9%E5%B0%96%E7%9F%B3_%E7%BE%8E%E6%A8%B9%E7%87%9F%E5%9C%B0%E8%B3%9E%E6%A5%93%20%282%29%0A%0A%0D%0A%E4%B8%80%E6%B3%A2%E6%B3%A2%E6%8E%A5%E7%BA%8C%E6%80%A7%E4%BD%8E%E6%BA%AB%E5%AF%92%E6%B5%81%E5%A0%B1%E5%88%B0%20%E5%B7%B2%E5%B0%87%E6%96%B0%E7%AB%B9%E5%B0%96%E7%9F%B3%E9%84%89%E5%BE%8C%E5%B1%B1%E4%B8%80%E5%B8%B6%E5%B1%A4%E5%B1%A4%E5%B1%B1%E5%B7%92%E6%8A%AB%E4%B8%8A%E5%AB%A3%E7%B4%85%E7%9A%84%0A----------%0A%E9%A6%AC%E4%B8%8A%E7%9C%8B%20http%3A%2F%2Fstevenhgm.pixnet.net%2Fblog%2Fpost%2F39926056-%25e6%2596%25b0%25e7%25ab%25b9%25e5%25b0%2596%25e7%259f%25b3_%25e7%25be%258e%25e6%25a8%25b9%25e7%2587%259f%25e5%259c%25b0%25e8%25b3%259e%25e6%25a5%2593-%25282%2529%0A----------%0A%E7%97%9E%E5%AE%A2%E9%82%A6%20PIXNET%0Ahttp%3A%2F%2Fwww.pixnet.net%2F')">E-mail轉寄</a>
+ </div>
+ <!-- .forward //-->
+ <br />
+ <div style="position: static !important; display:block !important;visibility: visible !important; float: none !important; text-align: center">
+ <div style="width: 620px; height: 250px; padding-bottom: 10px;">
+ <div id="w4d3d07afe2104426960b1077" style="width: 300px; height: 250px; float: left; padding-right: 1px;">
+ <ins class="adsbyfalcon" data-ad-client="1" data-ad-slot="1077" data-embed="false" style="display:inline-block;" data-adsbyfalcon-status="done"> <div id="pixad1077d" class="pixnet-ad"> <ins class="adsbygoogle" style="display: inline-block; width: 300px; height: 250px;" data-ad-client="ca-pub-6865528665029394" data-ad-slot="6553583120" google-ad-region="falcon" data-adsbygoogle-status="done"><ins id="aswift_0_expand" style="display:inline-table;border:none;height:250px;margin:0;padding:0;position:relative;visibility:visible;width:300px;background-color:transparent"><ins id="aswift_0_anchor" style="display:block;border:none;height:250px;margin:0;padding:0;position:relative;visibility:visible;width:300px;background-color:transparent"><iframe marginwidth="0" marginheight="0" vspace="0" hspace="0" allowtransparency="true" scrolling="no" allowfullscreen="true" onload="var i=this.id,s=window.google_iframe_oncopy,H=s&amp;&amp;s.handlers,h=H&amp;&amp;H[i],w=this.contentWindow,d;try{d=w.document}catch(e){}if(h&amp;&amp;d&amp;&amp;(!d.body||!d.body.firstChild)){if(h.call){setTimeout(h,0)}else if(h.match){try{h=s.upd(h,i)}catch(e){}w.location.replace(h)}}" id="aswift_0" name="aswift_0" style="left:0;position:absolute;top:0;" width="300" height="250" frameborder="0"></iframe></ins></ins>
+ </ins>
+ </div>
+ <script>
+ var falcon_dom = 'pixad1077d',
+ falcon_width = 300,
+ falcon_height = 250,
+ falcon_gclient = '6865528665029394',
+ falcon_gslot = '6553583120',
+ falcon_clickTAG = 'https://falcon.pixanalytics.com/ad/rc?i=b680f769b9c5b41c2bbdc1a66e3ec014&amp;s=criteo&amp;';
+
+ var crtg_nid = '4606',
+ crtg_cookiename = 'crtg_rta',
+ crtg_varname = 'crtg_content',
+ crtg_key = 'pix300250',
+ crtg_zoneid = '272008';
+
+ function crtg_getCookie(c_name) {
+ var i, x, y, ARRCookies = document.cookie.split(";");
+ for (i = 0; i & lt; ARRCookies.length; i++) {
+ x = ARRCookies[i].substr(0, ARRCookies[i].indexOf("="));
+ y = ARRCookies[i].substr(ARRCookies[i].indexOf("=") + 1);
+ x = x.replace(/^\s+|\s+$/g, "");
+ if (x == c_name) {
+ return unescape(y);
+ }
+ }
+ return '';
+ }
+ var crtg_content = crtg_getCookie(crtg_cookiename);
+ var crtg_rnd = Math.floor(Math.random() * 99999999999);
+ (function() {
+ var crtg_url = location.protocol + '//rtax.criteo.com/delivery/rta/rta.js?netId=' + escape(crtg_nid);
+ crtg_url += '&amp;cookieName=' + escape(crtg_cookiename);
+ crtg_url += '&amp;rnd=' + crtg_rnd;
+ crtg_url += '&amp;varName=' + escape(crtg_varname);
+ var crtg_script = document.createElement('script');
+ crtg_script.type = 'text/javascript';
+ crtg_script.src = crtg_url;
+ crtg_script.async = true;
+ if (document.getElementsByTagName("head").length & gt; 0) document.getElementsByTagName("head")[0].appendChild(crtg_script);
+ else if (document.getElementsByTagName("body").length & gt; 0) document.getElementsByTagName("body")[0].appendChild(crtg_script);
+ })();
+
+ var str = '';
+ is_google = false;
+ if (crtg_content & amp; & amp; crtg_content.indexOf(crtg_key) & gt; - 1) {
+ str = '&lt;iframe frameborder="0" marginwidth="0" marginheight="0" framespacing="0" width="' + falcon_width + '" height="' + falcon_height + '" scrolling="NO" src="//falcon.pixfs.net/criteo/ad.html';
+ str += '?zoneid=' + crtg_zoneid;
+ str += '&amp;location=' + escape(window.location);
+ str += '&amp;referer=' + escape(document.referer);
+ str += '&amp;context=' + escape(document.context);
+ str += '&amp;clickTAG=' + escape(falcon_clickTAG);
+ str += '"&gt;&lt;/iframe&gt;';
+ var img = new Image();
+ img.src = 'https://falcon.pixanalytics.com/callback/rt?type=criteo';
+ is_google = false;
+ } else {
+ str = " &lt;ins class=\"adsbygoogle\" style=\"display:inline-block;width:" + falcon_width + "px;height:" + falcon_height + "px\" data-ad-client=\"ca-pub-" + falcon_gclient + "\" data-ad-slot=\"" + falcon_gslot + "\" google-ad-region=\"falcon\"&gt; &lt;\/ins&gt;";
+ is_google = true;
+ }
+ document.getElementById(falcon_dom).innerHTML = str;
+ if (is_google) {
+ (adsbygoogle = window.adsbygoogle || []).push({});
+ var s = document.createElement('script');
+ s.src = 'https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js';
+ if (document.getElementsByTagName('head').length & gt; 0) {
+ document.getElementsByTagName('head')[0].appendChild(s);
+ } else if (document.getElementsByTagName('body').length & gt; 0) {
+ document.getElementsByTagName('body')[0].appendChild(s);
+ }
+ }
+ </script>
+ </ins>
+ <script src="https://static.criteo.net/js/ld/publishertag.js"></script>
+ <div id="crt-701fb163" style="width: 300px; height: 250px; margin: 0px auto; display: none;"></div>
+ <script>
+ Criteo.DisplayAcceptableAdIfAdblocked({
+ "zoneid": 439225,
+ "containerid": "crt-701fb163"
+ });
+ </script>
+ </div>
+ <div id="w4d3d07afe2104426960b1032" style="width: 300px; height: 250px; float: left;">
+ <ins class="adsbyfalcon" data-ad-client="1" data-ad-slot="1032" data-embed="false" style="display:inline-block;width:300px;height:250px;" data-adsbyfalcon-status="done"> <div id="pixad1032d" class="pixnet-ad"> <ins class="adsbygoogle" style="display: inline-block; width: 300px; height: 250px;" data-ad-client="ca-pub-6865528665029394" data-ad-slot="3544341440" google-ad-region="falcon" data-adsbygoogle-status="done"><ins id="aswift_1_expand" style="display:inline-table;border:none;height:250px;margin:0;padding:0;position:relative;visibility:visible;width:300px;background-color:transparent"><ins id="aswift_1_anchor" style="display:block;border:none;height:250px;margin:0;padding:0;position:relative;visibility:visible;width:300px;background-color:transparent"><iframe marginwidth="0" marginheight="0" vspace="0" hspace="0" allowtransparency="true" scrolling="no" allowfullscreen="true" onload="var i=this.id,s=window.google_iframe_oncopy,H=s&amp;&amp;s.handlers,h=H&amp;&amp;H[i],w=this.contentWindow,d;try{d=w.document}catch(e){}if(h&amp;&amp;d&amp;&amp;(!d.body||!d.body.firstChild)){if(h.call){setTimeout(h,0)}else if(h.match){try{h=s.upd(h,i)}catch(e){}w.location.replace(h)}}" id="aswift_1" name="aswift_1" style="left:0;position:absolute;top:0;" width="300" height="250" frameborder="0"></iframe></ins></ins>
+ </ins>
+ </div>
+ <script>
+ var falcon_dom = 'pixad1032d',
+ falcon_width = 300,
+ falcon_height = 250,
+ falcon_gclient = '6865528665029394',
+ falcon_gslot = '3544341440',
+ falcon_clickTAG = 'https://falcon.pixanalytics.com/ad/rc?i=03af3e216571b0f8a47e4758fdf8da46&amp;s=criteo&amp;';
+
+ var crtg_nid = '4606',
+ crtg_cookiename = 'crtg_rta',
+ crtg_varname = 'crtg_content',
+ crtg_key = 'pix300250',
+ crtg_zoneid = '272008';
+
+ function crtg_getCookie(c_name) {
+ var i, x, y, ARRCookies = document.cookie.split(";");
+ for (i = 0; i & lt; ARRCookies.length; i++) {
+ x = ARRCookies[i].substr(0, ARRCookies[i].indexOf("="));
+ y = ARRCookies[i].substr(ARRCookies[i].indexOf("=") + 1);
+ x = x.replace(/^\s+|\s+$/g, "");
+ if (x == c_name) {
+ return unescape(y);
+ }
+ }
+ return '';
+ }
+ var crtg_content = crtg_getCookie(crtg_cookiename);
+ var crtg_rnd = Math.floor(Math.random() * 99999999999);
+ (function() {
+ var crtg_url = location.protocol + '//rtax.criteo.com/delivery/rta/rta.js?netId=' + escape(crtg_nid);
+ crtg_url += '&amp;cookieName=' + escape(crtg_cookiename);
+ crtg_url += '&amp;rnd=' + crtg_rnd;
+ crtg_url += '&amp;varName=' + escape(crtg_varname);
+ var crtg_script = document.createElement('script');
+ crtg_script.type = 'text/javascript';
+ crtg_script.src = crtg_url;
+ crtg_script.async = true;
+ if (document.getElementsByTagName("head").length & gt; 0) document.getElementsByTagName("head")[0].appendChild(crtg_script);
+ else if (document.getElementsByTagName("body").length & gt; 0) document.getElementsByTagName("body")[0].appendChild(crtg_script);
+ })();
+
+ var str = '',
+ is_google = false;
+ if (crtg_content & amp; & amp; crtg_content.indexOf(crtg_key) & gt; - 1) {
+ str = '&lt;iframe frameborder="0" marginwidth="0" marginheight="0" framespacing="0" width="' + falcon_width + '" height="' + falcon_height + '" scrolling="NO" src="//falcon.pixfs.net/criteo/ad.html';
+ str += '?zoneid=' + crtg_zoneid;
+ str += '&amp;location=' + escape(window.location);
+ str += '&amp;referer=' + escape(document.referer);
+ str += '&amp;context=' + escape(document.context);
+ str += '&amp;clickTAG=' + escape(falcon_clickTAG);
+ str += '"&gt;&lt;/iframe&gt;';
+ is_google = false;
+ } else {
+ str = " &lt;ins class=\"adsbygoogle\" style=\"display:inline-block;width:" + falcon_width + "px;height:" + falcon_height + "px\" data-ad-client=\"ca-pub-" + falcon_gclient + "\" data-ad-slot=\"" + falcon_gslot + "\" google-ad-region=\"falcon\"&gt; &lt;\/ins&gt; ";
+ is_google = true;
+ }
+ document.getElementById(falcon_dom).innerHTML = str;
+ if (is_google) {
+ (adsbygoogle = window.adsbygoogle || []).push({});
+ var s = document.createElement('script');
+ s.src = 'https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js';
+ if (document.getElementsByTagName('head').length & gt; 0) {
+ document.getElementsByTagName('head')[0].appendChild(s);
+ } else if (document.getElementsByTagName('body').length & gt; 0) {
+ document.getElementsByTagName('body')[0].appendChild(s);
+ }
+ }
+ </script>
+ </ins>
+ </div>
+ </div>
+ <script>
+ (function($) {
+ var w = $('.article-content:first').width(),
+ ad1032 = $('#w4d3d07afe2104426960b1032');
+ if (w & gt; = 600) {
+ ad1032.append("&lt;ins class=\"adsbyfalcon\" data-ad-client=\"1\" data-ad-slot=\"1032\" data-embed=\"false\" style=\"display:inline-block;width:300px;height:250px;\"&gt;&lt;\/ins&gt;");
+ } else if (w & gt; = 550 & amp; & amp; w & lt; = 599) {
+ ad1032.append("&lt;ins class=\"adsbyfalcon\" data-ad-client=\"1\" data-ad-slot=\"1603\" data-embed=\"false\" style=\"display:inline-block;width:250px;height:250px;\"&gt;&lt;\/ins&gt;");
+ } else {}
+ })(jQuery);
+ </script>
+ </div>
+ </div>
+ <!-- .article-body //-->
+ <div class="article-footer">
+ <ul class="refer">
+ <li>全站分類:<a href="//www.pixnet.net/blog/articles/category/28">國內旅遊</a></li>
+ <li>個人分類:<a href="http://stevenhgm.pixnet.net/blog/category/1771157">尖石_美樹營地</a></li>
+ <li>此分類上一篇: <a class="quick-nav--cat-pre" href="http://stevenhgm.pixnet.net/blog/post/37795459-%e7%be%8e%e6%a8%b9%e7%87%9f%e5%9c%b0---%e6%8e%a2%e8%a8%aa%e8%80%81%e9%b7%b9%e6%ba%aa--%28%e4%b8%8b%29---2011-12-18">美樹營地 - 探訪老鷹溪 (下) 2011/12/18</a></li>
+ <li>上一篇: <a class="quick-nav--pre" rel="prev" href="http://stevenhgm.pixnet.net/blog/post/39815080-%e6%84%9b%e4%b8%8a%e5%96%9c%e7%bf%81%e9%9c%b2%e7%87%9f_%e6%ad%a1%e6%85%b6%e8%81%96%e8%aa%95%e5%a4%9c%e5%b8%82%e8%b6%b4" data-public-at="1387521559" data-thumb="http://s8.pimg.tw/album/stevenhgm/element/457637358_1387458392-1693665696/zoomcrop/90x90.jpg">愛上喜翁露營_歡慶聖誕夜市趴</a></li>
+ <li>下一篇: <a class="quick-nav--next" rel="next" href="http://stevenhgm.pixnet.net/blog/post/40120789-%e8%b5%b0%e9%80%b2%e8%8e%ab%e5%85%a7%e9%81%87%e8%a6%8b%e8%90%bd%e7%be%bd%e6%9d%be_%e8%8f%81%e8%8a%b3%e5%9c%92" data-public-at="1388288280" data-thumb="http://s9.pimg.tw/album/stevenhgm/element/485324079_1388755991-1712764152/zoomcrop/90x90.jpg">走進莫內遇見落羽松_菁芳園</a></li>
+ </ul>
+ <div class="back-to-top"><a href="#top" title="back to the top of the page">▲top</a></div>
+ </div>
+ <!-- .article-footer //-->
+ </div>
+
+ <script>
+ // track 上下篇點擊
+ (function($) {
+ 'use strict';
+
+ (function(i, s, o, g, r, a, m) {
+ i['GoogleAnalyticsObject'] = r;
+ i[r] = i[r] || function() {
+ (i[r].q = i[r].q || []).push(arguments)
+ }, i[r].l = 1 * new Date();
+ a = s.createElement(o),
+ m = s.getElementsByTagName(o)[0];
+ a.async = 1;
+ a.src = g;
+ m.parentNode.insertBefore(a, m)
+ })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
+
+ ga('create', 'UA-408650-10', 'auto', {
+ 'name': 'quickNavTracker'
+ });
+
+ var referBlock = $('.refer'),
+ quickNav = {
+ catPre: {
+ selector: '.quick-nav--cat-pre',
+ name: '此分類上一篇',
+ },
+ catNext: {
+ selector: '.quick-nav--cat-next',
+ name: '此分類下一篇',
+ },
+ pre: {
+ selector: '.quick-nav--pre',
+ name: '上一篇',
+ },
+ next: {
+ selector: '.quick-nav--next',
+ name: '下一篇',
+ }
+ },
+
+ trackEvent = function(action, label) {
+ ga('quickNavTracker.send', 'event', 'blog-related-article', action, label, {
+ nonInteraction: ('imps' === action)
+ });
+ },
+
+ bindClick = function(selector, label) {
+ referBlock.on('click', selector, function() {
+ trackEvent('click', label);
+ });
+ };
+
+ for (var key in quickNav) {
+ var obj = quickNav[key];
+ if (referBlock.find(obj.selector).length) {
+ // 記錄曝光
+ trackEvent('imps', obj.name);
+
+ // 點擊時紀錄
+ bindClick(obj.selector, obj.name);
+ }
+ }
+
+ })(jQuery);
+ </script>
+ <div id="related-box" class="my-Related-box">
+ <div id="related-item" class="my-Related-Post">
+ <h5>這個類別其他的文章</h5>
+ <ul id="my_relate" class="myrelate">
+ <li>
+ <a href="http://stevenhgm.pixnet.net/blog/post/37795459-%e7%be%8e%e6%a8%b9%e7%87%9f%e5%9c%b0---%e6%8e%a2%e8%a8%aa%e8%80%81%e9%b7%b9%e6%ba%aa--%28%e4%b8%8b%29---2011-12-18" class="relate-link" title="美樹營地 - 探訪老鷹溪 (下) 2011/12/18">
+ <div class="relate-thumb"><img src="https://s.pimg.tw/album/stevenhgm/element/259528929_1380360186-58625803/zoomcrop/90x90.jpg" class="article-image" /><span class="relate-title">美樹營地 - 探訪老鷹...</span></div>
+ </a>
+ </li>
+ <li>
+ <a href="http://stevenhgm.pixnet.net/blog/post/37795461-%e7%be%8e%e6%a8%b9%e7%87%9f%e5%9c%b0---%e7%a7%80%e5%b7%92%e8%b3%9e%e6%a5%93--%28%e4%b8%8a%29---2011-12-17" class="relate-link" title="美樹營地 - 秀巒賞楓 (上) 2011/12/17">
+ <div class="relate-thumb"><img src="https://s.pimg.tw/album/stevenhgm/element/259530222_1380360204-2746872631/zoomcrop/90x90.jpg" class="article-image" /><span class="relate-title">美樹營地 - 秀巒賞楓...</span></div>
+ </a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <!-- #article-box //-->
+ <div id="user-post">
+ <div id="comment-box" class="user-post-box">
+ <a name="comments"></a>
+ <h3 id="comment-title" class="user-post-title" onclick="pix.commentSwitch('comment-text','comment-text-switch');" style="cursor:hand;cursor:pointer;"><img id="comment-text-switch" src="//s.pixfs.net/blog/images/choc/minus.gif" original="//s.pixfs.net/blog/images/choc/minus.gif" style="display: inline;" /> <span>留言列表 (42)</span></h3>
+ <div class="post-comment"><a href="/blog/post/39926056-%e6%96%b0%e7%ab%b9%e5%b0%96%e7%9f%b3_%e7%be%8e%e6%a8%b9%e7%87%9f%e5%9c%b0%e8%b3%9e%e6%a5%93-%282%29#comment-form">發表留言</a></div>
+
+ <div id="comment-text" class="user-post-text">
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-58824406"> </a>
+ <span class="floor">#1</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> <a href="http://a263810.pixnet.net/blog" target="_blank" rel="nofollow">小鳳</a></span>
+ <a class="homepage" rel="nofollow" href="http://a263810.pixnet.net/blog" target="_blank"><img class="comment-icon" src="//front.pixfs.net/comment/images/info-website.gif" alt="小鳳" title="小鳳" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-website.gif" /></a>
+ <span class="post-time">於 2013/12/28 10:28</span>
+ </li>
+ <li class="post-photo">
+ <a href="http://a263810.pixnet.net/blog" target="_blank" rel="nofollow"><img src="http://s5.pimg.tw/avatar/a263810/0/0/zoomcrop/90x90.png?v=1383799789" alt="小鳳" original="http://s5.pimg.tw/avatar/a263810/0/0/zoomcrop/90x90.png?v=1383799789" style="display: inline;" width="90" height="90" /></a>
+ </li>
+ <li class="post-text">
+ <p id="comment-58824406"></p>
+ 露營兼賞楓,好棒的生活 </li>
+ <li class="reply-text">
+ 謝謝小鳳的來訪!
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2014/01/01 20:31 回覆 </p>
+ </li>
+ </ul>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-58824424"> </a>
+ <span class="floor">#2</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> <a href="http://n0911813218.pixnet.net/blog" target="_blank" rel="nofollow">茜媽咪</a></span>
+ <a class="homepage" rel="nofollow" href="http://n0911813218.pixnet.net/blog" target="_blank"><img class="comment-icon" src="//front.pixfs.net/comment/images/info-website.gif" alt="茜媽咪" title="茜媽咪" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-website.gif" /></a>
+ <span class="post-time">於 2013/12/28 10:42</span>
+ </li>
+ <li class="post-photo">
+ <a href="http://n0911813218.pixnet.net/blog" target="_blank" rel="nofollow"><img src="http://s8.pimg.tw/avatar/n0911813218/0/0/zoomcrop/90x90.png?v=1378478912" alt="茜媽咪" original="http://s8.pimg.tw/avatar/n0911813218/0/0/zoomcrop/90x90.png?v=1378478912" style="display: inline;" width="90" height="90" /></a>
+ </li>
+ <li class="post-text">
+ <p id="comment-58824424"></p>
+ 嚮往大自然....再濕冷的天依舊衝衝衝<br /> 每每分享藍天大哥捕捉的鏡頭
+ <br /> 總是特別的吸引目光....真得好美
+ <br /> 對了....我家女兒說....伯伯的露營餐點
+ <br /> 看起來好豐盛喔
+ <br />
+ </li>
+ <li class="reply-text">
+ 茜媽咪晚安:<br /> 您過獎了,我們不是專業攝影師只是喜歡拍照而已,
+ <br /> 雨天過後的楓葉蕭瑟感變厚重了,也顯得很鮮明色澤而已!
+ <br /> 這次還是南部上來的朋友帶來豐盛的晚餐,真是不好意思ㄋ!
+ <br /> (拍謝!外出帶著平板電腦不容易回應..才剛剛回家回覆)
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2014/01/01 20:37 回覆 </p>
+ </li>
+ </ul>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-58827106"> </a>
+ <span class="floor">#3</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> 訪客</span> <span class="post-time">於 2013/12/28 20:34</span>
+ </li>
+ <li class="post-photo">
+ <img src="//s.pixfs.net/blog/images/choc/avatar-neutral.png" alt="訪客" original="//s.pixfs.net/blog/images/choc/avatar-neutral.png" style="display: inline;" width="90" height="90" /> </li>
+ <li class="post-text">
+ <p id="comment-58827106"></p>
+ 藍天哥<br />
+ <br /> 您的文筆真是讚
+ <br />
+ <br /> 大雄 </li>
+ <li class="reply-text">
+ 大雄 晚安:<br /> 毋影啦~只是有感而發的抒發一點所見所聞而已!
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2014/01/01 20:39 回覆 </p>
+ </li>
+ </ul>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-58827439"> </a>
+ <span class="floor">#4</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> <a href="http://linghua581101.pixnet.net/blog" target="_blank" rel="nofollow">linghua</a></span>
+ <a class="homepage" rel="nofollow" href="http://linghua581101.pixnet.net/blog" target="_blank"><img class="comment-icon" src="//front.pixfs.net/comment/images/info-website.gif" alt="linghua" title="linghua" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-website.gif" /></a>
+ <span class="post-time">於 2013/12/28 21:29</span>
+ </li>
+ <li class="post-photo">
+ <a href="http://linghua581101.pixnet.net/blog" target="_blank" rel="nofollow"><img src="http://s9.pimg.tw/avatar/linghua581101/0/0/zoomcrop/90x90.png?v=1380555188" alt="linghua" original="http://s9.pimg.tw/avatar/linghua581101/0/0/zoomcrop/90x90.png?v=1380555188" style="display: inline;" width="90" height="90" /></a>
+ </li>
+ <li class="post-text">
+ <p id="comment-58827439"></p>
+ 哇!好厚的紅毯 趴在地上取景辛苦了!<br /> 近年天氣消笑 忽冷忽熱<br /> 外拍能遇到最美的藍天和紅葉 可遇不可求....<br /> 桌上的砂鍋魚頭看起來超讚
+ <br /> 冷冷的寒冬享用 一定過癮極了! </li>
+ <li class="reply-text">
+ 哈~我的相機可以翻轉螢幕ㄜ,當初也有考慮到這場景的辛苦...<br /> 所以螢幕可以折疊就輕鬆多囉!
+ <br /> 楓紅總是不等人的,我們這一周跟上周相比較的話就差很大,
+ <br /> 選對時間才是做重要! 天寒之際吃火鍋最方便,也是偷懶...
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2014/01/01 20:59 回覆 </p>
+ </li>
+ </ul>
+ <div id="v4cd82eeb822f4f91b98b1738" style="text-align: center;">
+ <ins class="adsbyfalcon" data-ad-client="1" data-ad-slot="1738" data-embed="false" style="display:inline-block;" data-adsbyfalcon-status="done"> <div style="text-align:center;margin-bottom:20px;">
+<ins class="adsbygoogle pixnet-ad" style="display:inline-block;width:468px;height:60px;" data-ad-region="falcon" data-ad-client="ca-pub-6865528665029394" data-ad-slot="4359503000" data-adsbygoogle-status="done"><ins id="aswift_2_expand" style="display:inline-table;border:none;height:60px;margin:0;padding:0;position:relative;visibility:visible;width:468px;background-color:transparent"><ins id="aswift_2_anchor" style="display:block;border:none;height:60px;margin:0;padding:0;position:relative;visibility:visible;width:468px;background-color:transparent"><iframe marginwidth="0" marginheight="0" vspace="0" hspace="0" allowtransparency="true" scrolling="no" allowfullscreen="true" onload="var i=this.id,s=window.google_iframe_oncopy,H=s&amp;&amp;s.handlers,h=H&amp;&amp;H[i],w=this.contentWindow,d;try{d=w.document}catch(e){}if(h&amp;&amp;d&amp;&amp;(!d.body||!d.body.firstChild)){if(h.call){setTimeout(h,0)}else if(h.match){try{h=s.upd(h,i)}catch(e){}w.location.replace(h)}}" id="aswift_2" name="aswift_2" style="left:0;position:absolute;top:0;" width="468" height="60" frameborder="0"></iframe></ins></ins>
+ </ins>
+ </div>
+
+ <script>
+ (adsbygoogle = window.adsbygoogle || []).push({});
+ jQuery.ajaxSetup({
+ 'cache': true
+ });
+ jQuery.getScript("//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js");
+ jQuery.ajaxSetup({
+ 'cache': false
+ });
+ </script>
+ </ins>
+ <script src="https://static.criteo.net/js/ld/publishertag.js"></script>
+ <div id="crt-480037" style="width: 300px; height: 250px; margin: 0px auto; display: none;"></div>
+ <script>
+ Criteo.DisplayAcceptableAdIfAdblocked({
+ "zoneid": 480037,
+ "containerid": "crt-480037"
+ });
+ </script>
+ </div>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-58827835"> </a>
+ <span class="floor">#5</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> <a href="http://sam831110.pixnet.net/blog" target="_blank" rel="nofollow">青草</a></span>
+ <a class="homepage" rel="nofollow" href="http://sam831110.pixnet.net/blog" target="_blank"><img class="comment-icon" src="//front.pixfs.net/comment/images/info-website.gif" alt="青草" title="青草" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-website.gif" /></a>
+ <span class="post-time">於 2013/12/28 22:50</span>
+ </li>
+ <li class="post-photo">
+ <a href="http://sam831110.pixnet.net/blog" target="_blank" rel="nofollow"><img src="http://s4.pimg.tw/avatar/sam831110/0/0/zoomcrop/90x90.png?v=1378207418" alt="青草" original="http://s4.pimg.tw/avatar/sam831110/0/0/zoomcrop/90x90.png?v=1378207418" style="display: inline;" width="90" height="90" /></a>
+ </li>
+ <li class="post-text">
+ <p id="comment-58827835"></p>
+ 大哥晚安~<br /> 今天路過美樹營地,真的很美!
+ <br /> 可惜現在楓已落的差不多了!!
+ <br /> 好深山那內的地方,我們由秀巒下玉峰
+ <br /> 再由北橫三光回家,一路的山景秀麗!! </li>
+ <li class="reply-text">
+ 青草晚安:<br /> 上週幾天下來又是風又是雨,
+ <br /> "花落知多少..."就算差一周也
+ <br /> 差很大呢!明年算準時間再訪
+ <br /> 就一定很棒的!
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2014/01/01 20:56 回覆 </p>
+ </li>
+ </ul>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-58830403"> </a>
+ <span class="floor">#6</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> <a href="http://kwi3.pixnet.net/blog" target="_blank" rel="nofollow">阿蒯</a></span>
+ <a class="homepage" rel="nofollow" href="http://kwi3.pixnet.net/blog" target="_blank"><img class="comment-icon" src="//front.pixfs.net/comment/images/info-website.gif" alt="阿蒯" title="阿蒯" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-website.gif" /></a>
+ <span class="post-time">於 2013/12/29 09:50</span>
+ </li>
+ <li class="post-photo">
+ <a href="http://kwi3.pixnet.net/blog" target="_blank" rel="nofollow"><img src="http://s2.pimg.tw/avatar/kwi3/0/0/zoomcrop/90x90.png?v=1378780336" alt="阿蒯" original="http://s2.pimg.tw/avatar/kwi3/0/0/zoomcrop/90x90.png?v=1378780336" style="display: inline;" width="90" height="90" /></a>
+ </li>
+ <li class="post-text">
+ <p id="comment-58830403"></p>
+ 大推<br /> 不是因為文中的很多”蒯嫂”
+ <br /> 回家之後發現我的”恐山症”竟然好了八成
+ <br /> 那段石磊產業道路 心理暗唸”阿彌陀佛”不只百遍除了感謝<br /> 我詞窮了
+ <br /> 你們與野馬伉儷的友誼讓我們在陰雨寒冷中覺得溫暖
+ <br /> 這是一次另人感動的旅程
+ <br /> 有你們真好! </li>
+ <li class="reply-text">
+ 蒯兄嫂晚安:<br /> 這趟路讓您辛苦了,雖然天氣不佳依然如期赴約,
+ <br /> 讓蒯嫂處處打點得得這麼好,真有點過意不去...
+ <br /> 感恩!相信"之前"的車況給受驚擾了,如今應該
+ <br /> 是恢復信心,有藍天在的話,出門都是安全無虞的!
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2014/01/01 20:54 回覆 </p>
+ </li>
+ </ul>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-58832299"> </a>
+ <span class="floor">#7</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> <a href="http://chi6239.pixnet.net/blog" target="_blank" rel="nofollow">甄妮佛</a></span>
+ <a class="homepage" rel="nofollow" href="http://chi6239.pixnet.net/blog" target="_blank"><img class="comment-icon" src="//front.pixfs.net/comment/images/info-website.gif" alt="甄妮佛" title="甄妮佛" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-website.gif" /></a>
+ <span class="post-time">於 2013/12/29 16:01</span>
+ </li>
+ <li class="post-photo">
+ <a href="http://chi6239.pixnet.net/blog" target="_blank" rel="nofollow"><img src="http://s4.pimg.tw/avatar/chi6239/0/0/zoomcrop/90x90.png?v=1378050364" alt="甄妮佛" original="http://s4.pimg.tw/avatar/chi6239/0/0/zoomcrop/90x90.png?v=1378050364" style="display: inline;" width="90" height="90" /></a>
+ </li>
+ <li class="post-text">
+ <p id="comment-58832299"></p>
+ 山嵐 楓樹 落葉 ... 這地方太美了!! 太美了!! </li>
+ <li class="reply-text">
+ 甄妮佛 晚安:<br /> 如果有露營的朋友一定也聽過有這個地方,
+ <br /> 時令季節一到就是楓紅滿地...尖石秀巒一帶
+ <br /> 很有秋天的氣息哦....
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2014/01/01 20:48 回覆 </p>
+ </li>
+ </ul>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-58833619"> </a>
+ <span class="floor">#8</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> <a href="http://cora808.pixnet.net/blog" target="_blank" rel="nofollow">Cora</a></span>
+ <a class="homepage" rel="nofollow" href="%E5%80%8B%E4%BA%BA%E7%B6%B2%E9%A0%81+..." target="_blank"><img class="comment-icon" src="//front.pixfs.net/comment/images/info-website.gif" alt="Cora" title="Cora" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-website.gif" /></a>
+ <a href="mailto:%E9%9B%BB%E5%AD%90%E9%83%B5%E4%BB%B6+..."><img class="comment-icon" src="//front.pixfs.net/comment/images/info-mail.gif" alt="寄信給 Cora" title="寄信給 Cora" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-mail.gif" /></a>
+ <span class="post-time">於 2013/12/29 20:27</span>
+ </li>
+ <li class="post-photo">
+ <a href="http://cora808.pixnet.net/blog" target="_blank" rel="nofollow"><img src="http://s9.pimg.tw/avatar/cora808/0/0/zoomcrop/90x90.png?v=1252648592" alt="Cora" original="http://s9.pimg.tw/avatar/cora808/0/0/zoomcrop/90x90.png?v=1252648592" style="display: inline;" width="90" height="90" /></a>
+ </li>
+ <li class="post-text">
+ <p id="comment-58833619"></p>
+ 雨霧飄渺中的楓黃楓紅另有一番風韻 </li>
+ <li class="reply-text">
+ Cora晚安:<br /> 幾天下來楓葉經過雨後洗滌變得很鮮明,
+ <br /> 當然也帶走許多落葉..蕭瑟唯美另一種風情!
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2014/01/01 20:46 回覆 </p>
+ </li>
+ </ul>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-58844251"> </a>
+ <span class="floor">#9</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> <a href="http://tinned.pixnet.net/blog" target="_blank" rel="nofollow">tinned</a></span>
+ <a class="homepage" rel="nofollow" href="http://tinned.pixnet.net/blog" target="_blank"><img class="comment-icon" src="//front.pixfs.net/comment/images/info-website.gif" alt="tinned" title="tinned" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-website.gif" /></a>
+ <span class="post-time">於 2013/12/30 16:49</span>
+ </li>
+ <li class="post-photo">
+ <a href="http://tinned.pixnet.net/blog" target="_blank" rel="nofollow"><img src="http://s5.pimg.tw/avatar/tinned/0/0/zoomcrop/90x90.png?v=1252648994" alt="tinned" original="http://s5.pimg.tw/avatar/tinned/0/0/zoomcrop/90x90.png?v=1252648994" style="display: inline;" width="90" height="90" /></a>
+ </li>
+ <li class="post-text">
+ <p id="comment-58844251"></p>
+ 真是拍的漂亮 我是北七強 </li>
+ <li class="reply-text">
+ 北七強 晚安:<br /> 謝謝不吝讚美,其實我們只是喜歡拍而已,畢竟跟專業攝影還是有段距離,
+ <br /> 簍信能有有您這些朋友真是太幸福了...,美樹愈來愈進步您是功不可沒...
+ <br /> (哈~這個名稱取得...似乎很有玄機呢?)
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2014/01/01 20:44 回覆 </p>
+ </li>
+ </ul>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-58845868"> </a>
+ <span class="floor">#10</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> <a href="http://amay3952.pixnet.net/blog" target="_blank" rel="nofollow">莉莉夫子</a></span>
+ <a class="homepage" rel="nofollow" href="http://amay3952.pixnet.net/blog" target="_blank"><img class="comment-icon" src="//front.pixfs.net/comment/images/info-website.gif" alt="莉莉夫子" title="莉莉夫子" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-website.gif" /></a>
+ <span class="post-time">於 2013/12/30 20:37</span>
+ </li>
+ <li class="post-photo">
+ <a href="http://amay3952.pixnet.net/blog" target="_blank" rel="nofollow"><img src="http://s7.pimg.tw/avatar/amay3952/0/0/zoomcrop/90x90.png?v=1377853418" alt="莉莉夫子" original="http://s7.pimg.tw/avatar/amay3952/0/0/zoomcrop/90x90.png?v=1377853418" style="display: inline;" width="90" height="90" /></a>
+ </li>
+ <li class="post-text">
+ <p id="comment-58845868"></p>
+ 藍天大哥:晚安~<br /> 哇~睡車上.機動性很強咧~
+ <br /> 今年的美樹 好美啊~ </li>
+ <li class="reply-text">
+ LiLi夫子晚安:<br /> 是呀!改裝成車中床離開"地球表面",力克
+ <br /> 潮溼地表(懶得收帳篷才是事實)..
+ <br /> 今年的"美樹"楓紅狀況很優,我們去的上一周
+ <br /> 更是最大值,看到FB有朋友分享..美的驚豔!
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2014/01/01 20:25 回覆 </p>
+ </li>
+ </ul>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-58855873"> </a>
+ <span class="floor">#11</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> <a href="http://blackjack246.pixnet.net/blog" target="_blank" rel="nofollow">黑傑克</a></span>
+ <a class="homepage" rel="nofollow" href="http://blackjack246.pixnet.net/blog" target="_blank"><img class="comment-icon" src="//front.pixfs.net/comment/images/info-website.gif" alt="黑傑克" title="黑傑克" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-website.gif" /></a>
+ <span class="post-time">於 2013/12/31 22:50</span>
+ </li>
+ <li class="post-photo">
+ <a href="http://blackjack246.pixnet.net/blog" target="_blank" rel="nofollow"><img src="http://s1.pimg.tw/avatar/blackjack246/0/0/zoomcrop/90x90.png?v=1378126837" alt="黑傑克" original="http://s1.pimg.tw/avatar/blackjack246/0/0/zoomcrop/90x90.png?v=1378126837" style="display: inline;" width="90" height="90" /></a>
+ </li>
+ <li class="post-text">
+ <p id="comment-58855873"></p>
+ 在藍天大的掌鏡下,美樹果然是仙境呀~ </li>
+ <li class="reply-text">
+ 黑傑克晚安:<br /> 拍謝!出門五天才剛剛入門,外出使用平板電腦
+ <br /> 實在很不方便中文輸入跟回應....
+ <br /> 您客氣了,我們只是很一般的而已,看了您的
+ <br /> 瑞士之行...才是仙境,會流口水哦!
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2014/01/01 20:17 回覆 </p>
+ </li>
+ </ul>
+ <ul class="single-post secret">
+ <li class="post-text">
+ 悄悄話 </li>
+ </ul>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-58869610"> </a>
+ <span class="floor">#13</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> <a href="http://moonheart930906.pixnet.net/blog" target="_blank" rel="nofollow">飛兒</a></span>
+ <a class="homepage" rel="nofollow" href="http://moonheart930906.pixnet.net/blog" target="_blank"><img class="comment-icon" src="//front.pixfs.net/comment/images/info-website.gif" alt="飛兒" title="飛兒" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-website.gif" /></a>
+ <span class="post-time">於 2014/01/02 14:31</span>
+ </li>
+ <li class="post-photo">
+ <a href="http://moonheart930906.pixnet.net/blog" target="_blank" rel="nofollow"><img src="http://s4.pimg.tw/avatar/moonheart930906/0/0/zoomcrop/90x90.png?v=1378036386" alt="飛兒" original="http://s4.pimg.tw/avatar/moonheart930906/0/0/zoomcrop/90x90.png?v=1378036386" style="display: inline;" width="90" height="90" /></a>
+ </li>
+ <li class="post-text">
+ <p id="comment-58869610"></p>
+ 那年 我不是才不約而同到美樹賞楓<br /> 好快 又過了一年<br /> 山嵐在遠方飄移 讓秋楓更有意境<br /> 美樹的楓香 不管怎麼拍都很美<br /> 石磊部落 我在原民台看過介紹<br /> 是一個以種植有機蔬果為主的部落
+ <br /> 也是一個很美的地方 我還沒去過<br /> 期待藍天大哥的分享 </li>
+ <li class="reply-text">
+ 飛兒晚安:<br /> 說的也是,那年真的是不約而同,
+ <br /> 只差沒真的碰面而已..如今又已
+ <br /> 倏逾兩年了...
+ <br /> 回程走"石磊道路"再轉回北橫巴崚,
+ <br /> 切回三峽回台北,路況好遠喲...
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2014/01/02 23:36 回覆 </p>
+ </li>
+ </ul>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-58870249"> </a>
+ <span class="floor">#14</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> <a href="http://wanglin420704.pixnet.net/blog" target="_blank" rel="nofollow">王昆</a></span>
+ <a class="homepage" rel="nofollow" href="http://wanglin420704.pixnet.net/blog" target="_blank"><img class="comment-icon" src="//front.pixfs.net/comment/images/info-website.gif" alt="王昆" title="王昆" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-website.gif" /></a>
+ <span class="post-time">於 2014/01/02 15:53</span>
+ </li>
+ <li class="post-photo">
+ <a href="http://wanglin420704.pixnet.net/blog" target="_blank" rel="nofollow"><img src="http://s9.pimg.tw/avatar/wanglin420704/0/0/zoomcrop/90x90.png?v=1384300563" alt="王昆" original="http://s9.pimg.tw/avatar/wanglin420704/0/0/zoomcrop/90x90.png?v=1384300563" style="display: inline;" width="90" height="90" /></a>
+ </li>
+ <li class="post-text">
+ <p id="comment-58870249"></p>
+ 欣賞好圖文唷~<br /> 安安~工作愉快~~順心~ </li>
+ <li class="reply-text">
+ 謝謝賞圖!<br /> 祝福~順遂
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2014/01/13 23:05 回覆 </p>
+ </li>
+ </ul>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-58871149"> </a>
+ <span class="floor">#15</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> <a href="http://a17456.pixnet.net/blog" target="_blank" rel="nofollow">大小姐</a></span>
+ <a class="homepage" rel="nofollow" href="http://a17456.pixnet.net/blog" target="_blank"><img class="comment-icon" src="//front.pixfs.net/comment/images/info-website.gif" alt="大小姐" title="大小姐" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-website.gif" /></a>
+ <span class="post-time">於 2014/01/02 17:44</span>
+ </li>
+ <li class="post-photo">
+ <a href="http://a17456.pixnet.net/blog" target="_blank" rel="nofollow"><img src="http://s2.pimg.tw/avatar/a17456/0/0/zoomcrop/90x90.png?v=1419350869" alt="大小姐" original="http://s2.pimg.tw/avatar/a17456/0/0/zoomcrop/90x90.png?v=1419350869" style="display: inline;" width="90" height="90" /></a>
+ </li>
+ <li class="post-text">
+ <p id="comment-58871149"></p>
+ 真是讓人羨慕的生活喔 </li>
+ <li class="reply-text">
+ 大小姐 晚安:<br /> 露營是另外一種戶外生活,您的餐飲美食生活
+ <br /> 也是不遑多讓ㄜ...
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2014/01/02 23:30 回覆 </p>
+ </li>
+ </ul>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-58872136"> </a>
+ <span class="floor">#16</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> <a href="http://wanglin420704.pixnet.net/blog" target="_blank" rel="nofollow">王昆</a></span>
+ <a class="homepage" rel="nofollow" href="http://wanglin420704.pixnet.net/blog" target="_blank"><img class="comment-icon" src="//front.pixfs.net/comment/images/info-website.gif" alt="王昆" title="王昆" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-website.gif" /></a>
+ <span class="post-time">於 2014/01/02 20:32</span>
+ </li>
+ <li class="post-photo">
+ <a href="http://wanglin420704.pixnet.net/blog" target="_blank" rel="nofollow"><img src="http://s9.pimg.tw/avatar/wanglin420704/0/0/zoomcrop/90x90.png?v=1384300563" alt="王昆" original="http://s9.pimg.tw/avatar/wanglin420704/0/0/zoomcrop/90x90.png?v=1384300563" style="display: inline;" width="90" height="90" /></a>
+ </li>
+ <li class="post-text">
+ <p id="comment-58872136"></p>
+ 賞圖文唷~美唷!! 善知識晚安安<br />
+ <br /> 祝您馬年行大運馬上賺大錢唷~
+ <br />
+ </li>
+ <li class="reply-text">
+ 也祝您 新春愉快,新的一年心想事成,萬事如意
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2014/01/02 23:59 回覆 </p>
+ </li>
+ </ul>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-58872682"> </a>
+ <span class="floor">#17</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> <a href="http://c1118c1118.pixnet.net/blog" target="_blank" rel="nofollow">光頭</a></span>
+ <a class="homepage" rel="nofollow" href="http://c1118c1118.pixnet.net/blog" target="_blank"><img class="comment-icon" src="//front.pixfs.net/comment/images/info-website.gif" alt="光頭" title="光頭" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-website.gif" /></a>
+ <span class="post-time">於 2014/01/02 21:52</span>
+ </li>
+ <li class="post-photo">
+ <a href="http://c1118c1118.pixnet.net/blog" target="_blank" rel="nofollow"><img src="http://s.pimg.tw/avatar/c1118c1118/0/0/zoomcrop/90x90.png?v=1399133604" alt="光頭" original="http://s.pimg.tw/avatar/c1118c1118/0/0/zoomcrop/90x90.png?v=1399133604" style="display: inline;" width="90" height="90" /></a>
+ </li>
+ <li class="post-text">
+ <p id="comment-58872682"></p>
+ 楓樹 落葉~這地方太美~拍照真美 </li>
+ <li class="reply-text">
+ 光頭 晚安:<br /> 這格地點的楓香泛紅之際是最美的時刻,
+ <br /> 人在現場看更是會感動的地方...
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2014/01/02 23:32 回覆 </p>
+ </li>
+ </ul>
+ <ul class="single-post secret">
+ <li class="post-text">
+ 悄悄話 </li>
+ </ul>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-58881475"> </a>
+ <span class="floor">#19</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> <a href="http://sheilateng.pixnet.net/blog" target="_blank" rel="nofollow">Sheila Teng</a></span>
+ <a class="homepage" rel="nofollow" href="http://sheilateng.pixnet.net/blog" target="_blank"><img class="comment-icon" src="//front.pixfs.net/comment/images/info-website.gif" alt="Sheila Teng" title="Sheila Teng" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-website.gif" /></a>
+ <span class="post-time">於 2014/01/03 19:41</span>
+ </li>
+ <li class="post-photo">
+ <a href="http://sheilateng.pixnet.net/blog" target="_blank" rel="nofollow"><img src="http://s4.pimg.tw/avatar/sheilateng/0/0/zoomcrop/90x90.png?v=1392195296" alt="Sheila Teng" original="http://s4.pimg.tw/avatar/sheilateng/0/0/zoomcrop/90x90.png?v=1392195296" style="display: inline;" width="90" height="90" /></a>
+ </li>
+ <li class="post-text">
+ <p id="comment-58881475"></p>
+ 台灣能找到這麼厚實的楓葉地毯...不容易呀!!<br /> 此時若想低拍就會羨慕起那些螢幕可翻轉的相機了~
+ <br />
+ <br /> 控溪吊橋那邊我拍過, 風景真的很棒!<br /> 美樹名字取得簡單乾脆...
+ <br /> 這個地方記下來了, 不必去石門水庫人擠人<br /> 這裡的楓葉更有看頭哩!!!
+ <br />
+ </li>
+ <li class="reply-text">
+ Sheila晚安:<br /> 來到秀巒軍艦岩、控溪吊橋拍秋楓的話,
+ <br /> 那就得順道去"美樹"拍楓香林才不需此行,
+ <br /> 一個簡單的營地卻是愛攝人士每年必訪之地,
+ <br /> 攝影老師總是帶著學員來此地外拍練習,
+ <br /> 要是妳來拍攝的話,必然精彩可期,"另眼看待"ㄜ!
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2014/01/03 22:07 回覆 </p>
+ </li>
+ </ul>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-58882654"> </a>
+ <span class="floor">#20</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> <a href="http://su06wuwu.pixnet.net/blog" target="_blank" rel="nofollow">阿麗瑪</a></span>
+ <a class="homepage" rel="nofollow" href="http://su06wuwu.pixnet.net/blog" target="_blank"><img class="comment-icon" src="//front.pixfs.net/comment/images/info-website.gif" alt="阿麗瑪" title="阿麗瑪" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-website.gif" /></a>
+ <span class="post-time">於 2014/01/03 22:44</span>
+ </li>
+ <li class="post-photo">
+ <a href="http://su06wuwu.pixnet.net/blog" target="_blank" rel="nofollow"><img src="http://s6.pimg.tw/avatar/su06wuwu/0/0/zoomcrop/90x90.png?v=1381192313" alt="阿麗瑪" original="http://s6.pimg.tw/avatar/su06wuwu/0/0/zoomcrop/90x90.png?v=1381192313" style="display: inline;" width="90" height="90" /></a>
+ </li>
+ <li class="post-text">
+ <p id="comment-58882654"></p>
+ 先來說個老梗~落花並非無情物,化作春泥更護花!♥<br /> 落葉鋪成的地毯真的感覺粉溫馨吼?
+ <br /> 哦~你們南來北往大會師噢?
+ <br /> 美樹營地好美呢!偶們一心一意直奔司馬庫斯所以沒有近來賞景...
+ <br /> 伙食好讚噢!偶們四餐有兩餐試吃泡麵,早餐是吃隔夜飯泡水的硬硬不濃稠稀飯...☹
+ <br /> 恭喜你們收穫滿行曩♣★
+ <br /> 噢對!還有怎麼睡車上呢?露營車嗎?偶們去年元旦去國境之南找不到旅館也是當了車床族~睡車上...好累!︿_* </li>
+ <li class="reply-text">
+ 阿麗瑪晚安:<br /> 這個季節的楓香林剛好泛紅,剛好連日來雨勢不斷變成
+ <br /> 落葉成塚,否則滿滿色彩的楓樹是最美的! 阿蒯之家特地<br /> 從南部北上一起同露,蒯嫂手藝很棒我們才有口福哩!
+ <br /> 我們是休旅車,經由專門店家改裝成"活動式車床",拆卸快速
+ <br /> 只需要五分鐘就可以搞定,長度180公分(含海棉墊)這樣睡眠
+ <br /> 才有品質,一覺到天亮甚至會睡過頭...
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2014/01/03 23:11 回覆 </p>
+ </li>
+ </ul>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-58882906"> </a>
+ <span class="floor">#21</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> <a href="http://daitou.pixnet.net/blog" target="_blank" rel="nofollow">DaiTou</a></span>
+ <a class="homepage" rel="nofollow" href="http://daitou.pixnet.net/blog" target="_blank"><img class="comment-icon" src="//front.pixfs.net/comment/images/info-website.gif" alt="DaiTou" title="DaiTou" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-website.gif" /></a>
+ <span class="post-time">於 2014/01/03 23:17</span>
+ </li>
+ <li class="post-photo">
+ <a href="http://daitou.pixnet.net/blog" target="_blank" rel="nofollow"><img src="http://s4.pimg.tw/avatar/daitou/0/0/zoomcrop/90x90.png?v=1387714327" alt="DaiTou" original="http://s4.pimg.tw/avatar/daitou/0/0/zoomcrop/90x90.png?v=1387714327" style="display: inline;" width="90" height="90" /></a>
+ </li>
+ <li class="post-text">
+ <p id="comment-58882906"></p>
+ 楓葉很美 </li>
+ <li class="reply-text">
+ 謝謝!
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2014/01/03 23:34 回覆 </p>
+ </li>
+ </ul>
+ <ul class="single-post secret">
+ <li class="post-text">
+ 悄悄話 </li>
+ </ul>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-58948831"> </a>
+ <span class="floor">#23</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> <a href="http://imel168.pixnet.net/blog" target="_blank" rel="nofollow">lily</a></span>
+ <a class="homepage" rel="nofollow" href="http://imel168.pixnet.net/blog" target="_blank"><img class="comment-icon" src="//front.pixfs.net/comment/images/info-website.gif" alt="lily" title="lily" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-website.gif" /></a>
+ <span class="post-time">於 2014/01/09 15:20</span>
+ </li>
+ <li class="post-photo">
+ <a href="http://imel168.pixnet.net/blog" target="_blank" rel="nofollow"><img src="http://s.pimg.tw/avatar/imel168/0/0/zoomcrop/90x90.png?v=1449731612" alt="lily" original="http://s.pimg.tw/avatar/imel168/0/0/zoomcrop/90x90.png?v=1449731612" style="display: inline;" width="90" height="90" /></a>
+ </li>
+ <li class="post-text">
+ <p id="comment-58948831"></p>
+ 第一張相片的貓頭鷹實在是太吸睛了~~<br /> 這裡賞楓露營真是好地方
+ <br /> 出去露營能吃到如此豐盛
+ <br /> 真是超級羨慕ㄋ </li>
+ <li class="reply-text">
+ Lily 晚安:<br /> 美樹營地招牌上分別佈置了幾隻貓頭鷹,
+ <br /> 顏色鮮豔也很可愛,也成為愛攝人士的鏡頭
+ <br /> 追逐焦點,有機會可以去看一看!
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2014/01/09 21:10 回覆 </p>
+ </li>
+ </ul>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-59096524"> </a>
+ <span class="floor">#24</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> <a href="http://tinned.pixnet.net/blog" target="_blank" rel="nofollow">tinned</a></span>
+ <a class="homepage" rel="nofollow" href="http://tinned.pixnet.net/blog" target="_blank"><img class="comment-icon" src="//front.pixfs.net/comment/images/info-website.gif" alt="tinned" title="tinned" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-website.gif" /></a>
+ <span class="post-time">於 2014/01/27 15:28</span>
+ </li>
+ <li class="post-photo">
+ <a href="http://tinned.pixnet.net/blog" target="_blank" rel="nofollow"><img src="http://s5.pimg.tw/avatar/tinned/0/0/zoomcrop/90x90.png?v=1252648994" alt="tinned" original="http://s5.pimg.tw/avatar/tinned/0/0/zoomcrop/90x90.png?v=1252648994" style="display: inline;" width="90" height="90" /></a>
+ </li>
+ <li class="post-text">
+ <p id="comment-59096524"></p>
+ 北七強的由來ㄚ<br /> 就很簡單ㄚ 畫圖的時候很單純 很少去想最後的結果<br />
+ <br /> 北七 還挺不錯的ㄚ 可能是指ㄧ個心境問題喔 </li>
+ <li class="reply-text">
+ 簍信,有緣認識你們這些朋友真是幸運了!<br /> "北七" 的取名太有意思了~~<br /> (拍謝, 今早上才見到有漏回覆的,金害ㄟ)
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2014/02/10 10:22 回覆 </p>
+ </li>
+ </ul>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-60415990"> </a>
+ <span class="floor">#25</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> <a href="http://jo2353584.pixnet.net/blog" target="_blank" rel="nofollow">養身館的部落格</a></span>
+ <a class="homepage" rel="nofollow" href="http://jo2353584.pixnet.net/blog" target="_blank"><img class="comment-icon" src="//front.pixfs.net/comment/images/info-website.gif" alt="養身館的部落格" title="養身館的部落格" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-website.gif" /></a>
+ <span class="post-time">於 2014/11/21 09:36</span>
+ </li>
+ <li class="post-photo">
+ <a href="http://jo2353584.pixnet.net/blog" target="_blank" rel="nofollow"><img src="http://s2.pimg.tw/avatar/jo2353584/0/0/zoomcrop/90x90.png?v=1410872107" alt="養身館的部落格" original="http://s2.pimg.tw/avatar/jo2353584/0/0/zoomcrop/90x90.png?v=1410872107" style="display: inline;" width="90" height="90" /></a>
+ </li>
+ <li class="post-text">
+ <p id="comment-60415990"></p>
+ 哇~~在楓葉樹下~~露營~~吃火鍋~~別有一番情境喔~~推~~ </li>
+ <li class="reply-text">
+ 謝謝囉!!
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2014/11/24 20:48 回覆 </p>
+ </li>
+ </ul>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-61413637"> </a>
+ <span class="floor">#26</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> 訪客</span> <span class="post-time">於 2015/11/30 12:45</span>
+ </li>
+ <li class="post-photo">
+ <img src="//s.pixfs.net/blog/images/choc/avatar-neutral.png" alt="訪客" original="//s.pixfs.net/blog/images/choc/avatar-neutral.png" style="display: inline;" width="90" height="90" /> </li>
+ <li class="post-text">
+ <p id="comment-61413637"></p>
+ 真的拍得好棒好溫馨~~ </li>
+ <li class="reply-text">
+ 謝謝賞圖/文!
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2015/11/30 17:40 回覆 </p>
+ </li>
+ </ul>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-61704922"> </a>
+ <span class="floor">#27</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> <a href="http://qiqichoi.pixnet.net/blog" target="_blank" rel="nofollow">qiqichoi</a></span>
+ <a class="homepage" rel="nofollow" href="http://qiqichoi.pixnet.net/blog" target="_blank"><img class="comment-icon" src="//front.pixfs.net/comment/images/info-website.gif" alt="qiqichoi" title="qiqichoi" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-website.gif" /></a>
+ <span class="post-time">於 2016/07/05 18:11</span>
+ </li>
+ <li class="post-photo">
+ <a href="http://qiqichoi.pixnet.net/blog" target="_blank" rel="nofollow"><img src="http://s1.pimg.tw/avatar/qiqichoi/0/0/zoomcrop/90x90.png?v=" alt="qiqichoi" original="http://s1.pimg.tw/avatar/qiqichoi/0/0/zoomcrop/90x90.png?v=" style="display: inline;" width="90" height="90" /></a>
+ </li>
+ <li class="post-text">
+ <p id="comment-61704922"></p>
+ 真是太美了 </li>
+ <li class="reply-text">
+ 謝謝你的喜歡~<br />
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2016/07/05 19:26 回覆 </p>
+ </li>
+ </ul>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-61718662"> </a>
+ <span class="floor">#28</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> <a href="http://h48812345.pixnet.net/blog" target="_blank" rel="nofollow">GE台北車庫-小壕</a></span>
+ <a class="homepage" rel="nofollow" href="http://h48812345.pixnet.net/blog" target="_blank"><img class="comment-icon" src="//front.pixfs.net/comment/images/info-website.gif" alt="GE台北車庫-小壕" title="GE台北車庫-小壕" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-website.gif" /></a>
+ <span class="post-time">於 2016/07/16 14:19</span>
+ </li>
+ <li class="post-photo">
+ <a href="http://h48812345.pixnet.net/blog" target="_blank" rel="nofollow"><img src="http://s5.pimg.tw/avatar/h48812345/0/0/zoomcrop/90x90.png?v=1464609989" alt="GE台北車庫-小壕" original="http://s5.pimg.tw/avatar/h48812345/0/0/zoomcrop/90x90.png?v=1464609989" style="display: inline;" width="90" height="90" /></a>
+ </li>
+ <li class="post-text">
+ <p id="comment-61718662"></p>
+ 好美哦!!!<br />
+ </li>
+ <li class="reply-text">
+ 謝謝您的喜歡!
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2016/07/18 17:25 回覆 </p>
+ </li>
+ </ul>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-61729471"> </a>
+ <span class="floor">#29</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> <a href="http://mikodraw.pixnet.net/blog" target="_blank" rel="nofollow">米可</a></span>
+ <a class="homepage" rel="nofollow" href="http://mikodraw.pixnet.net/blog" target="_blank"><img class="comment-icon" src="//front.pixfs.net/comment/images/info-website.gif" alt="米可" title="米可" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-website.gif" /></a>
+ <span class="post-time">於 2016/07/28 15:07</span>
+ </li>
+ <li class="post-photo">
+ <a href="http://mikodraw.pixnet.net/blog" target="_blank" rel="nofollow"><img src="http://s.pimg.tw/avatar/mikodraw/0/0/zoomcrop/90x90.png?v=1471176256" alt="米可" original="http://s.pimg.tw/avatar/mikodraw/0/0/zoomcrop/90x90.png?v=1471176256" style="display: inline;" width="90" height="90" /></a>
+ </li>
+ <li class="post-text">
+ <p id="comment-61729471"></p>
+ 這太美了!好喜歡,我從沒看過,希望有一天可以去看看走一趟! </li>
+ <li class="reply-text">
+ 這裡是新竹縣秀巒鄉很著名的攝影景點,<br /> 如果不是露營的話也可以趁著早上開放時間拍照,
+ <br /> 付入園會即可入內盡情拍照...
+ <br /> PS:每年楓紅時間"大約"是12月中...左右,
+ <br /> 實際還得視當地氣溫而定
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2016/08/02 10:37 回覆 </p>
+ </li>
+ </ul>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-61740319"> </a>
+ <span class="floor">#30</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> <a href="http://h48812345.pixnet.net/blog" target="_blank" rel="nofollow">GE台北車庫-小壕</a></span>
+ <a class="homepage" rel="nofollow" href="http://h48812345.pixnet.net/blog" target="_blank"><img class="comment-icon" src="//front.pixfs.net/comment/images/info-website.gif" alt="GE台北車庫-小壕" title="GE台北車庫-小壕" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-website.gif" /></a>
+ <span class="post-time">於 2016/08/10 16:36</span>
+ </li>
+ <li class="post-photo">
+ <a href="http://h48812345.pixnet.net/blog" target="_blank" rel="nofollow"><img src="http://s5.pimg.tw/avatar/h48812345/0/0/zoomcrop/90x90.png?v=1464609989" alt="GE台北車庫-小壕" original="http://s5.pimg.tw/avatar/h48812345/0/0/zoomcrop/90x90.png?v=1464609989" style="display: inline;" width="90" height="90" /></a>
+ </li>
+ <li class="post-text">
+ <p id="comment-61740319"></p>
+ 感覺好享受哦~~~ </li>
+ <li class="reply-text">
+ 呵,謝謝賞圖! 晚安<br />
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2016/08/11 23:03 回覆 </p>
+ </li>
+ </ul>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-61755082"> </a>
+ <span class="floor">#31</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> <a href="http://tckitkit.pixnet.net/blog" target="_blank" rel="nofollow">tckitkit</a></span>
+ <a class="homepage" rel="nofollow" href="http://tckitkit.pixnet.net/blog" target="_blank"><img class="comment-icon" src="//front.pixfs.net/comment/images/info-website.gif" alt="tckitkit" title="tckitkit" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-website.gif" /></a>
+ <span class="post-time">於 2016/08/22 17:32</span>
+ </li>
+ <li class="post-photo">
+ <a href="http://tckitkit.pixnet.net/blog" target="_blank" rel="nofollow"><img src="http://s7.pimg.tw/avatar/tckitkit/0/0/zoomcrop/90x90.png?v=" alt="tckitkit" original="http://s7.pimg.tw/avatar/tckitkit/0/0/zoomcrop/90x90.png?v=" style="display: inline;" width="90" height="90" /></a>
+ </li>
+ <li class="post-text">
+ <p id="comment-61755082"></p>
+ 拍得好美 </li>
+ <li class="reply-text">
+ 謝謝! 晚安~<br />
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2016/08/22 22:27 回覆 </p>
+ </li>
+ </ul>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-61767484"> </a>
+ <span class="floor">#32</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> <a href="http://pige8436.pixnet.net/blog" target="_blank" rel="nofollow">Quby</a></span>
+ <a class="homepage" rel="nofollow" href="http://pige8436.pixnet.net/blog" target="_blank"><img class="comment-icon" src="//front.pixfs.net/comment/images/info-website.gif" alt="Quby" title="Quby" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-website.gif" /></a>
+ <span class="post-time">於 2016/08/31 21:15</span>
+ </li>
+ <li class="post-photo">
+ <a href="http://pige8436.pixnet.net/blog" target="_blank" rel="nofollow"><img src="http://s7.pimg.tw/avatar/pige8436/0/0/zoomcrop/90x90.png?v=1435915418" alt="Quby" original="http://s7.pimg.tw/avatar/pige8436/0/0/zoomcrop/90x90.png?v=1435915418" style="display: inline;" width="90" height="90" /></a>
+ </li>
+ <li class="post-text">
+ <p id="comment-61767484"></p>
+ 再過不久又進入秋天了<br /> 楓葉照令人很期待呢
+ <br /> 而且到時候的天氣適合露營
+ <br /> 不會很濕熱也不會太冷 </li>
+ <li class="reply-text">
+ 入秋之後寒流來襲就容易讓秋楓變色,<br /> 秋高氣爽野正是露營的好時節
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2016/09/08 18:37 回覆 </p>
+ </li>
+ </ul>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-61777000"> </a>
+ <span class="floor">#33</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> <a href="http://a0988025959.pixnet.net/blog" target="_blank" rel="nofollow">面面</a></span>
+ <a class="homepage" rel="nofollow" href="http://commutetrip.com/%E9%97%9C%E6%96%BC%E9%80%A2%E7%94%B2fully" target="_blank"><img class="comment-icon" src="//front.pixfs.net/comment/images/info-website.gif" alt="面面" title="面面" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-website.gif" /></a>
+ <span class="post-time">於 2016/09/12 19:30</span>
+ </li>
+ <li class="post-photo">
+ <a href="http://a0988025959.pixnet.net/blog" target="_blank" rel="nofollow"><img src="http://s.pimg.tw/avatar/a0988025959/0/0/zoomcrop/90x90.png?v=1471263551" alt="面面" original="http://s.pimg.tw/avatar/a0988025959/0/0/zoomcrop/90x90.png?v=1471263551" style="display: inline;" width="90" height="90" /></a>
+ </li>
+ <li class="post-text">
+ <p id="comment-61777000"></p>
+ 拍的照片真的好美 謝謝 </li>
+ <li class="reply-text">
+ 謝謝妳的喜歡~
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2016/09/13 18:13 回覆 </p>
+ </li>
+ </ul>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-61781434"> </a>
+ <span class="floor">#34</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> <a href="http://drw1041.pixnet.net/blog" target="_blank" rel="nofollow">木博士</a></span>
+ <a class="homepage" rel="nofollow" href="http://drw1041.pixnet.net/blog" target="_blank"><img class="comment-icon" src="//front.pixfs.net/comment/images/info-website.gif" alt="木博士" title="木博士" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-website.gif" /></a>
+ <span class="post-time">於 2016/09/19 19:05</span>
+ </li>
+ <li class="post-photo">
+ <a href="http://drw1041.pixnet.net/blog" target="_blank" rel="nofollow"><img src="http://s3.pimg.tw/avatar/drw1041/0/0/zoomcrop/90x90.png?v=1386410244" alt="木博士" original="http://s3.pimg.tw/avatar/drw1041/0/0/zoomcrop/90x90.png?v=1386410244" style="display: inline;" width="90" height="90" /></a>
+ </li>
+ <li class="post-text">
+ <p id="comment-61781434"></p>
+ 很美~美術營是帶小朋友去玩的好地方!! </li>
+ <li class="reply-text">
+ 美樹營地有奇迷人之處,春夏秋冬各有其特色,<br /> 小朋友玩耍也很安全的!
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2016/09/23 09:38 回覆 </p>
+ </li>
+ </ul>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-61788430"> </a>
+ <span class="floor">#35</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> <a href="http://tw27003265.pixnet.net/blog" target="_blank" rel="nofollow">tw27003265</a></span>
+ <a class="homepage" rel="nofollow" href="http://commutetrip.com/" target="_blank"><img class="comment-icon" src="//front.pixfs.net/comment/images/info-website.gif" alt="tw27003265" title="tw27003265" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-website.gif" /></a>
+ <span class="post-time">於 2016/09/28 17:18</span>
+ </li>
+ <li class="post-photo">
+ <a href="http://tw27003265.pixnet.net/blog" target="_blank" rel="nofollow"><img src="http://s2.pimg.tw/avatar/tw27003265/0/0/zoomcrop/90x90.png?v=1473860284" alt="tw27003265" original="http://s2.pimg.tw/avatar/tw27003265/0/0/zoomcrop/90x90.png?v=1473860284" style="display: inline;" width="90" height="90" /></a>
+ </li>
+ <li class="post-text">
+ <p id="comment-61788430"></p>
+ 秋之景好美呢 </li>
+ <li class="reply-text">
+ 新竹秀巒一帶的熱門楓紅景點之一
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2016/10/04 09:47 回覆 </p>
+ </li>
+ </ul>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-61788916"> </a>
+ <span class="floor">#36</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> <a href="http://thousand0410.pixnet.net/blog" target="_blank" rel="nofollow">中壢中古鋼琴中心</a></span>
+ <a class="homepage" rel="nofollow" href="http://thousand0410.pixnet.net/blog" target="_blank"><img class="comment-icon" src="//front.pixfs.net/comment/images/info-website.gif" alt="中壢中古鋼琴中心" title="中壢中古鋼琴中心" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-website.gif" /></a>
+ <span class="post-time">於 2016/09/29 05:37</span>
+ </li>
+ <li class="post-photo">
+ <a href="http://thousand0410.pixnet.net/blog" target="_blank" rel="nofollow"><img src="http://s8.pimg.tw/avatar/thousand0410/0/0/zoomcrop/90x90.png?v=1420095364" alt="中壢中古鋼琴中心" original="http://s8.pimg.tw/avatar/thousand0410/0/0/zoomcrop/90x90.png?v=1420095364" style="display: inline;" width="90" height="90" /></a>
+ </li>
+ <li class="post-text">
+ <p id="comment-61788916"></p>
+ 看起來真美 棒 </li>
+ <li class="reply-text">
+ 新竹秀巒一帶的熱門楓紅景點之一
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2016/10/04 09:47 回覆 </p>
+ </li>
+ </ul>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-61789510"> </a>
+ <span class="floor">#37</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> <a href="http://jenny10113.pixnet.net/blog" target="_blank" rel="nofollow">Jenny10113</a></span>
+ <a class="homepage" rel="nofollow" href="http://jenny10113.pixnet.net/blog" target="_blank"><img class="comment-icon" src="//front.pixfs.net/comment/images/info-website.gif" alt="Jenny10113" title="Jenny10113" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-website.gif" /></a>
+ <span class="post-time">於 2016/09/29 19:46</span>
+ </li>
+ <li class="post-photo">
+ <a href="http://jenny10113.pixnet.net/blog" target="_blank" rel="nofollow"><img src="http://s3.pimg.tw/avatar/jenny10113/0/0/zoomcrop/90x90.png?v=1473045602" alt="Jenny10113" original="http://s3.pimg.tw/avatar/jenny10113/0/0/zoomcrop/90x90.png?v=1473045602" style="display: inline;" width="90" height="90" /></a>
+ </li>
+ <li class="post-text">
+ <p id="comment-61789510"></p>
+ 好夢幻喔!!!!! </li>
+ <li class="reply-text">
+ 很美的楓香營地,楓紅時節也是熱門的拍照景點
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2016/10/04 09:46 回覆 </p>
+ </li>
+ </ul>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-61792762"> </a>
+ <span class="floor">#38</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> <a href="http://h48812345.pixnet.net/blog" target="_blank" rel="nofollow">GE台北車庫-小壕</a></span>
+ <a class="homepage" rel="nofollow" href="http://h48812345.pixnet.net/blog" target="_blank"><img class="comment-icon" src="//front.pixfs.net/comment/images/info-website.gif" alt="GE台北車庫-小壕" title="GE台北車庫-小壕" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-website.gif" /></a>
+ <span class="post-time">於 2016/09/30 18:49</span>
+ </li>
+ <li class="post-photo">
+ <a href="http://h48812345.pixnet.net/blog" target="_blank" rel="nofollow"><img src="http://s5.pimg.tw/avatar/h48812345/0/0/zoomcrop/90x90.png?v=1464609989" alt="GE台北車庫-小壕" original="http://s5.pimg.tw/avatar/h48812345/0/0/zoomcrop/90x90.png?v=1464609989" style="display: inline;" width="90" height="90" /></a>
+ </li>
+ <li class="post-text">
+ <p id="comment-61792762"></p>
+ 好適合約會的地方~ </li>
+ <li class="reply-text">
+ 小而美的營地,一年四季的楓箱各有特色,<br /> 適合各式各樣的聚會ㄜ
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2016/10/04 09:45 回覆 </p>
+ </li>
+ </ul>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-61801837"> </a>
+ <span class="floor">#39</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> 廣州十大旅遊景點</span>
+ <a class="homepage" rel="nofollow" href="http://www.fun01.net/post233268/2525" target="_blank"><img class="comment-icon" src="//front.pixfs.net/comment/images/info-website.gif" alt="廣州十大旅遊景點" title="廣州十大旅遊景點" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-website.gif" /></a>
+ <span class="post-time">於 2016/10/11 11:02</span>
+ </li>
+ <li class="post-photo">
+ <img src="//s.pixfs.net/blog/images/choc/avatar-neutral.png" alt="廣州十大旅遊景點" original="//s.pixfs.net/blog/images/choc/avatar-neutral.png" style="display: inline;" width="90" height="90" /> </li>
+ <li class="post-text">
+ <p id="comment-61801837"></p>
+ 這篇寫的很好<br /> 歡迎回訪喔 </li>
+ <li class="reply-text">
+ 謝謝你!<br />
+ <br />
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2016/10/12 14:25 回覆 </p>
+ </li>
+ </ul>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-61807225"> </a>
+ <span class="floor">#40</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> <a href="http://tw27003265.pixnet.net/blog" target="_blank" rel="nofollow">tw27003265</a></span>
+ <a class="homepage" rel="nofollow" href="http://commutetrip.com/" target="_blank"><img class="comment-icon" src="//front.pixfs.net/comment/images/info-website.gif" alt="tw27003265" title="tw27003265" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-website.gif" /></a>
+ <span class="post-time">於 2016/10/17 19:47</span>
+ </li>
+ <li class="post-photo">
+ <a href="http://tw27003265.pixnet.net/blog" target="_blank" rel="nofollow"><img src="http://s2.pimg.tw/avatar/tw27003265/0/0/zoomcrop/90x90.png?v=1473860284" alt="tw27003265" original="http://s2.pimg.tw/avatar/tw27003265/0/0/zoomcrop/90x90.png?v=1473860284" style="display: inline;" width="90" height="90" /></a>
+ </li>
+ <li class="post-text">
+ <p id="comment-61807225"></p>
+ 又是看秋景的季節 </li>
+ </ul>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-61885933"> </a>
+ <span class="floor">#41</span>
+ <span class="user-name"><img class="identity-provider comment-icon lazy" data-original="//front.pixfs.net/comment/images/openid-pixnet-icon.gif" style="vertical-align:middle;" src="http://s.pixfs.net/js/jquery.lazyload/grey.gif" width="16" height="16" /> <a href="http://kiotellock.pixnet.net/blog" target="_blank" rel="nofollow">妹子小姐</a></span>
+ <a class="homepage" rel="nofollow" href="http://kiotellock.pixnet.net/blog" target="_blank"><img class="comment-icon" src="//front.pixfs.net/comment/images/info-website.gif" alt="妹子小姐" title="妹子小姐" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-website.gif" /></a>
+ <span class="post-time">於 2016/12/31 20:33</span>
+ </li>
+ <li class="post-photo">
+ <a href="http://kiotellock.pixnet.net/blog" target="_blank" rel="nofollow"><img src="http://s6.pimg.tw/avatar/kiotellock/0/0/zoomcrop/90x90.png?v=1481908424" alt="妹子小姐" original="http://s6.pimg.tw/avatar/kiotellock/0/0/zoomcrop/90x90.png?v=1481908424" style="display: inline;" width="90" height="90" /></a>
+ </li>
+ <li class="post-text">
+ <p id="comment-61885933"></p>
+ 謝謝分享文章喲! </li>
+ <li class="reply-text">
+ 不客氣!! 晚安
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2017/01/03 18:25 回覆 </p>
+ </li>
+ </ul>
+ <ul class="single-post">
+ <li class="post-info">
+ <a name="comment-61901059"> </a>
+ <span class="floor">#42</span>
+ <span class="user-name"> <a href="https://www.facebook.com/app_scoped_user_id/233582907099276/" target="_blank" rel="nofollow">蔡敏嫻</a></span>
+ <a class="homepage" rel="nofollow" href="http://www.emerly.com.tw/" target="_blank"><img class="comment-icon" src="//front.pixfs.net/comment/images/info-website.gif" alt="蔡敏嫻" title="蔡敏嫻" style="vertical-align: middle; display: inline;" original="//front.pixfs.net/comment/images/info-website.gif" /></a>
+ <span class="post-time">於 2017/01/18 14:41</span>
+ </li>
+ <li class="post-photo">
+ <a href="https://www.facebook.com/app_scoped_user_id/233582907099276/" target="_blank" rel="nofollow"><img src="https://graph.facebook.com/233582907099276/picture" alt="蔡敏嫻" original="https://graph.facebook.com/233582907099276/picture" style="display: inline;" width="90" height="90" /></a>
+ </li>
+ <li class="post-text">
+ <p id="comment-61901059"></p>
+ 真是個美麗的好地方,感謝分享~ </li>
+ <li class="reply-text">
+ 謝謝賞圖文!
+ <p><a href="http://stevenhgm.pixnet.net/blog" target="_blank">史蒂文的家_藍天</a> 於 2017/01/19 21:05 回覆 </p>
+ </li>
+ </ul>
+ </div>
+ <!-- #comment-text //-->
+ <div id="comment_form">
+ <a name="comment-form"></a>
+ <form class="json-form" target="_blank" method="POST" action="http://stevenhgm.pixnet.net/blog/postcomment/39926056">
+ <input name="sToken" value="39743a9f949bc0eb6d0e581c1f3fc39d" type="hidden" />
+ <div id="comment-area">
+ <div id="comment-area-2">
+ <iframe src="//panel.pixnet.cc/pixfront/commentpush/blogarticle?user=stevenhgm&amp;articleid=39926056&amp;from=" marginheight="0" marginwidth="0" scrolling="no" border="0" frameborder="0"></iframe>
+ <div class="comment-identity identity-logout">
+ <div class="choose-identity">
+ <a href="https://www.pixnet.net/?done=http%3A%2F%2Fstevenhgm.pixnet.net%2Fblog%2Fpost%2F39926056-%25e6%2596%25b0%25e7%25ab%25b9%25e5%25b0%2596%25e7%259f%25b3_%25e7%25be%258e%25e6%25a8%25b9%25e7%2587%259f%25e5%259c%25b0%25e8%25b3%259e%25e6%25a5%2593-%25282%2529%23comment-form" class="openid-pixnet"><span class="invisible">PIXNET</span></a>
+ <a href="https://panel.pixnet.cc/login/facebooklogin?done=http%3A%2F%2Fstevenhgm.pixnet.net%2Fapi%2Fpopuplogin%3Fdone%3Dhttp%253A%252F%252Fstevenhgm.pixnet.net%252Fblog%252Fpost%252F39926056-%2525e6%252596%2525b0%2525e7%2525ab%2525b9%2525e5%2525b0%252596%2525e7%25259f%2525b3_%2525e7%2525be%25258e%2525e6%2525a8%2525b9%2525e7%252587%25259f%2525e5%25259c%2525b0%2525e8%2525b3%25259e%2525e6%2525a5%252593-%2525282%252529%2523comment-form&amp;without_signup=1&amp;without_full_perm=1" class="openid-facebook" onclick="window.open(this.href, 'login', config='height=650,width=650,scrollbars=1,resizable=0'); return false; "><span class="invisible">Facebook</span></a>
+ <a href="https://panel.pixnet.cc/login/openid?done=http%3A%2F%2Fstevenhgm.pixnet.net%2Fapi%2Fpopuplogin%3Fdone%3Dhttp%253A%252F%252Fstevenhgm.pixnet.net%252Fblog%252Fpost%252F39926056-%2525e6%252596%2525b0%2525e7%2525ab%2525b9%2525e5%2525b0%252596%2525e7%25259f%2525b3_%2525e7%2525be%25258e%2525e6%2525a8%2525b9%2525e7%252587%25259f%2525e5%25259c%2525b0%2525e8%2525b3%25259e%2525e6%2525a5%252593-%2525282%252529%2523comment-form&amp;openid=https%3A%2F%2Fme.yahoo.com%2F&amp;without_signup=1" class="openid-yahoo" onclick="window.open(this.href, 'login', config='height=500,width=450,scrollbars=1,resizable=0'); return false; "><span class="invisible">Yahoo!</span></a>
+ <a href="https://panel.pixnet.cc/login/googlepluslogin?done=http%3A%2F%2Fstevenhgm.pixnet.net%2Fapi%2Fpopuplogin%3Fdone%3Dhttp%253A%252F%252Fstevenhgm.pixnet.net%252Fblog%252Fpost%252F39926056-%2525e6%252596%2525b0%2525e7%2525ab%2525b9%2525e5%2525b0%252596%2525e7%25259f%2525b3_%2525e7%2525be%25258e%2525e6%2525a8%2525b9%2525e7%252587%25259f%2525e5%25259c%2525b0%2525e8%2525b3%25259e%2525e6%2525a5%252593-%2525282%252529%2523comment-form&amp;without_signup=1" class="openid-google" onclick="window.open(this.href, 'login', config='height=500,width=450,scrollbars=1,resizable=0'); return false; "><span class="invisible">Google</span></a>
+ <a href="https://panel.pixnet.cc/login/livelogin?done=http%3A%2F%2Fstevenhgm.pixnet.net%2Fapi%2Fpopuplogin%3Fdone%3Dhttp%253A%252F%252Fstevenhgm.pixnet.net%252Fblog%252Fpost%252F39926056-%2525e6%252596%2525b0%2525e7%2525ab%2525b9%2525e5%2525b0%252596%2525e7%25259f%2525b3_%2525e7%2525be%25258e%2525e6%2525a8%2525b9%2525e7%252587%25259f%2525e5%25259c%2525b0%2525e8%2525b3%25259e%2525e6%2525a5%252593-%2525282%252529%2523comment-form&amp;without_signup=1" class="openid-msn" onclick="window.open(this.href, 'login', config='height=500,width=470,scrollbars=1,resizable=0'); return false; "><span class="invisible">MSN</span></a>
+ </div>
+ </div>
+ <div class="comment-body">
+ <p>您尚未登入,將以<b>訪客</b>身份留言。亦可<a href="https://www.pixnet.net/?done=http%3A%2F%2Fstevenhgm.pixnet.net%2Fblog%2Fpost%2F39926056-%25e6%2596%25b0%25e7%25ab%25b9%25e5%25b0%2596%25e7%259f%25b3_%25e7%25be%258e%25e6%25a8%25b9%25e7%2587%259f%25e5%259c%25b0%25e8%25b3%259e%25e6%25a5%2593-%25282%2529%23comment-form">登入</a>留言</p>
+ <input name="blogcommenttext_name" id="comment_showname" class="comment-name" placeholder="您的暱稱 ..." type="text" />
+ <div class="comment-textarea comment-textarea--text-right">
+ <textarea name="blogcommenttext_body" id="comment_text" placeholder="留個言吧 ..."></textarea>
+ <div class="private-message-container">
+ <div class="private-message"><label><input name="blogcomment_open" id="comment_open" value="0" disabled="disabled" type="checkbox" /><img src="//front.pixfs.net/images/blog/post/mobile/articlecomment/icon-lock--gray.png?v=b27bf7fe9e1f0fca830e1381a52f804b" width="12" height="12" />悄悄話</label></div>
+ <div id="nologin_hidden_msg" class="private-notice"><a href="https://www.pixnet.net/?done=http%3A%2F%2Fstevenhgm.pixnet.net%2Fblog%2Fpost%2F39926056-%25e6%2596%25b0%25e7%25ab%25b9%25e5%25b0%2596%25e7%259f%25b3_%25e7%25be%258e%25e6%25a8%25b9%25e7%2587%259f%25e5%259c%25b0%25e8%25b3%259e%25e6%25a5%2593-%25282%2529%23comment-form">登入</a>可留悄悄話</div>
+ </div>
+ </div>
+ <!-- .comment-textarea -->
+
+
+ <div class="comment-extra">
+ <div id="unfold-comment-extra"><img src="//s.pixfs.net/f.pixnet.net/comment/images/comment-unfold.jpg" /> 其他選項</div>
+ <button type="submit"><span>送出留言</span></button>
+ </div>
+
+ <div id="comment-extra" class="extra" style="display:none"><input name="blogcommenttext_mail" class="text-input" id="comment_mail" placeholder="電子郵件 ..." type="text" /><input name="blogcommenttext_url" class="text-input" id="comment_url" placeholder="個人網頁 ..." type="text" /></div>
+ </div>
+ <!--.comment-middle-->
+ </div>
+ <!-- #comment-area-2-->
+ </div>
+ <!-- #comment-area -->
+ </form>
+
+
+ </div>
+ </div>
+ <!-- #comment-box //-->
+ </div>
+ <!-- #user-post //-->
+ <script type="text/javascript">
+ & lt;
+ !--
+ jQuery(function() {
+ //#40294 用ajax接postcommentAction產生的comment form
+ var action = location.href;
+ action = action.replace('/post/', '/postcomment/');
+ jQuery.ajaxSetup({
+ cache: true
+ });
+ jQuery.ajax({
+ type: 'GET',
+ url: action,
+ data: {
+ "getForm": 1,
+ "isMobile": 0
+ },
+ dataType: 'json',
+ success: function(data) {
+ jQuery('#comment_form').html(data.form);
+
+ setTimeout(function() {
+ if (jQuery.pixQuestionary & amp; & amp;
+ 'function' === typeof jQuery.pixQuestionary) {
+ jQuery.pixQuestionary(pix.user_name);
+ }
+ }, 1000);
+
+ // 用來判斷是否有安裝'留言插入表情符號' App
+ if (jQuery.pixAddonCommentEmotion & amp; & amp;
+ 'function' === typeof jQuery.pixAddonCommentEmotion) {
+ // 裝了App 但沒表情符號可選, 須重新call function
+ if (!document.getElementById('comment-emotion')) {
+ jQuery.pixAddonCommentEmotion();
+ }
+ }
+ },
+ error: function(error) {
+ console.log(error);
+ }
+ });
+ jQuery.ajaxSetup({
+ cache: false
+ });
+
+ jQuery('.comment-icon').attr('style', 'vertical-align:middle;');
+ });
+ // --&gt;
+ </script>
+
+
+ </div>
+ <!-- #article-area //-->
+ </div>
+ <!-- #content //-->
+ <div id="links">
+ <div id="links-row-1">
+ <div class="hslice box" id="friendbox">
+ <h4 class="box-title entry-title">
+ 我的好友 </h4>
+ <div class="box-text entry-content">
+
+ 設定不公開 </div>
+ </div>
+ <!-- #friendbox //-->
+ <script type="text/javascript">
+ & lt;
+ !--
+ jQuery(function($) {
+ $list = $('#friendbox ul.friendlist');
+ $list.height(Math.min(190, $list.height()));
+ pix.iframePopup.init('#popup-frame', "http:\/\/stevenhgm.pixnet.net\/friend\/list", '#friendbox-open-friends-iframe', '#popup-frame .frame-close', "\u53f2\u8482\u6587\u7684\u5bb6_\u85cd\u5929 \u7684\u597d\u53cb\u5217\u8868");
+ });
+ //--&gt;
+ </script>
+ <div class="hslice box h54d834-miB-ad-sidebar-v2-h54d834" data-plugin_type="mibsidebar1">
+ <div class="box-text entry-content">
+ <div class="h54d834-miB-border-h54d834 dark">
+ <div class="h54d834-siTemajidr-h54d834" model="180x280">
+ <a target="_blank" href="//falcon.pixanalytics.com/ad/r?i=cf990e0ed190360343a263d6a90f6035&amp;p=835&amp;u=fdf74dae4be94846aedb237469300749&amp;c=CgEBQ1idhpEA7LZIYOO2Ag%3D%3D" style="display: inline ! important; visibility: visible ! important;">
+ <img src="//falcon-creative-cloudcdn.pixfs.net/2016/03/cf990e0ed190360343a263d6a90f6035-94f995e22831564c.jpg?v=1463739866" style="display: inline ! important; visibility: visible ! important;" border="0" />
+ </a>
+ <span class="mib--ad-box__icon"><a href="#">痞客邦廣告聯播網</a></span></div>
+ </div>
+ <!-- /.mib-border -->
+ </div>
+ </div>
+
+ </div>
+ <!-- #links-row-1 //-->
+ <div id="links-row-2">
+ <div id="user-info" class="hslice box">
+ <h4 class="box-title entry-title">
+ 個人資訊 </h4>
+ <div class="box-text entry-content">
+ <a class="user-img" href="http://www.pixnet.net/blog/profile/stevenhgm"><img src="http://s9.pimg.tw/avatar/stevenhgm/0/0/zoomcrop/90x90.png?v=1377876799" /></a>
+ <div class="user-action">
+ <input value="加入好友" class="add_friend" type="button" />
+ <input value="加入訂閱" class="add_subs" type="button" />
+ </div>
+ <dl>
+ <dt>暱稱:</dt>
+ <dd>史蒂文的家_藍天</dd>
+ <dt>分類:</dt>
+ <dd><a href="//www.pixnet.net/blog/bloggers/category/16">休閒旅遊</a></dd>
+ <dt>性別:</dt>
+ <dd>男</dd>
+ <dt>地區:</dt>
+ <dd>新北市</dd>
+ </dl>
+ </div>
+ </div>
+ <script type="text/javascript">
+ & lt;
+ !--
+ jQuery(function($) {
+ pix.iframePopup.init('#popup-frame', "http:\/\/stevenhgm.pixnet.net\/friend\/list", '#user-info-open-friends-iframe', '#popup-frame .frame-close', "\u53f2\u8482\u6587\u7684\u5bb6_\u85cd\u5929 \u7684\u597d\u53cb\u5217\u8868");
+ var $add_friend = $('#user-info').find('input.add_friend');
+ var $add_subs = $('#user-info').find('input.add_subs');
+ $add_friend.add($add_subs).click(function(e) {
+ window.location = 'http://' + "www.pixnet.net" + '?done=' + encodeURIComponent(window.location);
+ });
+ });
+ //--&gt;
+ </script>
+ <div class="hslice box" id="albumshow">
+ <h4 class="box-title entry-title">
+ 相簿幻燈片 </h4>
+ <div class="box-text entry-content">
+
+ <div align="center">
+ <iframe src="/blog/plugin/albumshow" allowtransparency="true" scrolling="no" width="170" height="180" frameborder="0"></iframe>
+ </div>
+ </div>
+ </div>
+ <!-- #albumshow //-->
+ <div class="hslice box folder" id="box1048927">
+ <h4 class="box-title entry-title">
+ 即時瀏覽數 </h4>
+ <div class="box-text entry-content">
+
+ <script id="_waupm8">
+ var _wau = _wau || [];
+ _wau.push(["classic", "jw52pblyzhbn", "pm8"]);
+ (function() {
+ var s = document.createElement("script");
+ s.async = true;
+ s.src = "http://widgets.amung.us/classic.js";
+ document.getElementsByTagName("head")[0].appendChild(s);
+ })();
+ </script>
+ <div style="position: relative; display: inline-block; background-image: url(&quot;data:image/gif;base64,R0lGODlhUgA8APf5AEZGRj09PQwMDDU1NcEnLQgICDAwMAUFBUVFRTg4OAICAi0tLVFRUV1dXVtbW0JCQnh4eOjo6NLS0o2NjcnJyePj45CQkOfn5+Tk5K2trWBgYLm5uUBAQGpqamtra3BwcHp6epOTk+np6a6urpKSkru7u2dnZ1lZWc/Pz46OjsjIyKysrKampstLUMxNUqqqqqioqOrq6nR0dGFhYctJTpWVlcpFStBcYOLi4tbW1s1RVs5VWcc8Qry8vH19fbe3t3d3d8fHx6KiotPT08hARlhYWGRkZMHBwYSEhICAgNTU1NDQ0L6+vqWlpcbGxnZ2dmhoaL+/vz8/P5mZmXJycmZmZjk5OTo6OkxMTNHR0aI3PKCgoFdXVzExMYiIiEdHR0NDQ3JcXaIlKrcnLZomK1NTU5UhJmVlZY9cXmxBQ2JiYisrK0lJSVRUVBsbG4uLi21tbaSkpE9PT19fX4pWVygfHz4+PkUoKUojJRgYGC4uLmNjY1VVVVBQUJ9RVWxWVpsnLC8vL79ARhYWFhISEiwsLFMZG4tJTIAgJFM4OUY9PbBFSYJKS7NLTzIyMmtLTH4nK6dRVU4nKQoKCnlcXSYmJqU8QUo4OWseITklJjIfIGZOT75RVX83OzMzMxsREpcjKGVWVlgeIatJTeHh4SAgIF4aHZdFSIg3O1shJKJJTAkJCYkgJLcmLCQkJBUVFTkcHW5ubjonKL9VWatLT2gkJ30nKhEREbYmK3slKDIoKF5eXlJKSqQnKx8fH9BcYU5GRqNLTowjJywiI7tJTY1NULYmLCQaGk4oKaRcX69ARXMdIF9GRoVARIhSVB8VFpJVWE1NTTsoKVpaWnJKS6QnLJM8QHxLTQYGBmAmKK0mLB0dHcXFxVZOTsFFSoNLTTw8PK4nLEpBQSYTFFc9PponKz0gIbdVWX5OUEFBQSIiIktLS05OTiUlJScnJ0pKShAQEFZWVlJSUh4eHlxcXBkZGRQUFCgoKP///////wAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAPkALAAAAABSADwAAAj/APMJ7ADBhIYG9BIqXMiwocOHECNG3KUBjoMOAjPm62CH3Yl4DEKKHEmypMmTKFOqLBNvGpt0GDN2SGeETwI9C3Lq3Mmzp8+fQIMKXRDIzow5UmJ2eGDii4GnUKNKnUq1qtWrWKnSm/MAY6w2JwaIHUu2rNmzaNOqXZsWzjsH+fYYSZegrt1LnbTo1YIqkd2/gAMLHky4MOEyGqrkg7IngGPHiqzxmEx5siVyjzNr3sy5s+fPnN8ZgQtFTbrT6cQpI8KaiKA0zVq/Rk27tu3buHPrto3lDNwOZwAIB7bIhnHjp4Qft+GNmfDn0KNLn069uvXnfarA9WBi3bt3qmiI/xc/ihG1Q+PFE+P1vb379/Djy59P/3sbKL+hyGG3yYV//+iwI2A3//1XjIAIJqjgggw26OCDAhahXT4zqMGHPH7ooKEOkcjjjDwgZrihDpyAaOKJKKao4oostghiAw3AFY8c8XAxyw447kDHH3TEEw80oZyTI45/+GjkkUgmqeSSTDZ5AhfRwCUPGFZw8csNWN4QBhph0BPGDWjQk0yWN1Ai0ZlopqlQA/JY8QVcfUhxTwIt1FnnN8Gss841ddLSiJ0tPKLnoIQWauihiCaKKBZsdBEIGHCxA8499xBg6aWAUHrHGJd2igyloIYq6qiklmrqqffowQFcWFhBaTidEv+QKSS6bBorAdKgquuuvIq6QABwvTOAO+7Ycqs75YwhiySxVkPss9BGK+201FZrLbFrXAHXF120004msfbSDhkEkDFup9l4q+667Lbr7rvwxuvtPQPABUAh6uSbS6e1DHMpHnhcqk2+BBds8MEIJ6zwwgS3YwBcYLQzz8R1iHGpJqlcKkbFBLRizsQghyzyyCSXbPLJIJeyBlzp+FLPy/UcA4qloghzqzGwwKzzzjz37PPPQPPshitwSZGHPUgnjQkutxKAyDNJRy311FRXbfXVVL8yD1wPEALP12DD84khy5hhBiumjBP22my37fbbcMcNzy1uKAZFHgLkrffefPf/7fffgAcuuOCVkOZIAYgnrvjijDfu+OOQRw65AEkN5A42B2Su+eacd+7556CHLrrnk3gS00BWDLKKAqy37vrrsMcu++y01966ANtUrtFGDpyAwO/ABy/88MQXb/zxyAM/w0UaobYFCh+c5gUKKPwQfTpeXKD99lvUtkURtaGw/QU/2FYE+OmIP/4F0KdTxA/iW4/a+9Sj4IVtADSwBD74CAHABvhYwgYu0D8AyGADCBxgAKEjBHw0ADoyCGAC/cdAfLxBOEJIIAIJ+IYGEBCB/JOBAfknwA9GRwMRiMAE8BGHFU6gPSXAhwbekwV8AME9EcjCe4BgQ/nE8IXyWeE7/+KADyCiMALvyEIEZvidGDLxOyyIgBHYgQ8WgEACCQIBPkCQIBbgwwJd3CI7LDBFdmiRiwvqgRgdJIEesKMHEUiQGtkRATci6IwJOhE+YJAiEuDDBCby4xBQJIJBygMfJACRD/DBBBiQwAeBRGSLFglJJojgRJY8JB9NZAJJmuhI+HgBkjwQyiNFgX9RMFIN8JGEeJCyBj4iJf/4pwRX4qOWTYqCCHy0SlHGIwn4SGUpjfTKIy0EHxlgSAxy0JAPTGGZCYEmPT6Ajyk0MwPVxGYMjnCEDHygmchUSAz4N058IIEe4VQINa2pEELhowmEKkEEZoCoJuADAim4p55mgP+PFKwDC4aKQAkkwL8U8s+fhLInBPQEAf5JQJ79XMc7CcVPhOopVPgIAaga2gBTcZQCFADVA+5ZKpBiwIGUegAF8CEqDGAAVCt9AEzxMVKNipSkpMoopRqA01KN4KX4oACMGtDQEXRUVDXFxwhCxdOj3oOnNr2HUpnqQJ3eFAKhglZG3fEADIzAWg2FgDtOOsuyPiBaMd3qs5r6rJg+S63Eaipc3cHWBzTAHetCZDtUUIF4+fEJ6lqVAwaLSA6sywEVwIcD9tpXdWHTsO3gAD5UsC6+Qnav+OAAX9f12CfwjwQF+2IEK2CB0pbWMSewQAUqcIKEBQAfMshXAGSwAnz/BCEA+ToBPkhrgSDgYwUEs8AXC/baCqxAtbBVh25561vgCte2IcMBFfJZVv7F4wX4cAIVUIaDeEwMB9ndbsji4QT+4SAFIUsBDq4gsitgN7venRh5wXtekGH3BUHLr373y1/+4mAAWAuwgAdM4AGzgAX2kJuCF8zgBrttHaT42nc0cMN3AGECTNTABDY8gQpP2D0cBiJ8QrzhCW/4iRrGcHsorOL3uA9+1bteRtjhRSlKIAIEZQGNJcBjfMRRQCD48RjxwWMJlJHGduxBkQkKAi32GIxaxHEVzehjgtoRQRGUIAH9lxEYiMDLMDBkJwEJok5CEkRD2KQ8SGBITA6B/8wn6qQ8mMAEEHlZHl9W5B/TXOY/nkiJT3RiRmrggSSIwAMeMNKhYykCX/5ylzWAZQ2UgGgjvQCXSXpBKpUAS1vGAx+J9pEIgBnqeIwalDq+4xYzkhAkxGAhGWBmQrCZg2/SIwfJ7CY9pjDLWiMBH7ZuSAzOeQRZF5seMUgmPX5NzWAP+5hqlgclM8LQCAwKAvOkaBOsjW09laAEFH1oDAcKT0KlwNrraOgs/ZnPHuNDovTUUwQWOiglLNpHSmBlRnb60nt01akYbcAIbDqCpTKVAi4NAQRAGioKEBwDMGK4vyGw8JDSFFQQD9Wv8cHNcn5g30/tNwWwOqqRShUCMPoquExBFYKVOvXi/oZ5ximF0pRiAKswv8fMKZXugd7Yx+vISFwx4I4QfFVaXRUrwl3KPwqstapnJRbEiTUCpxPLgW+9K1cpcHSsX/2sFHcHUnWaEW8h1gGK5YDa1fWECgCWXRnIgLc4kIEKLFYFKnAAB0jQ2Hbo1VsZyDvdKduOtssd8CpQe90jyz8HiCqm98iIbI1b3QCswLi4PVhp1ZHYFWTe8vwLQmvVEYAKZD5fyPW8OmQgeuJe3rajr+0JoDWCexIrIyjLve53z/uJXcEJ85i7CvDx9nZkpL/IT35/uSGPeqhDuKwtWEYKTP3qF7gLSIuHdEeWkYAAADs=&quot;); width: 81px; height: 29px; padding: 0px; overflow: hidden; cursor: pointer; direction: ltr;" title="Click to see what's popular on this site!">
+ <div style="position: absolute; top: 7px; padding: 0px; margin: 0px; overflow: visible; left: 41px;">
+ <div style="background-image: url(&quot;data:image/gif;base64,R0lGODlhUgA8APf5AEZGRj09PQwMDDU1NcEnLQgICDAwMAUFBUVFRTg4OAICAi0tLVFRUV1dXVtbW0JCQnh4eOjo6NLS0o2NjcnJyePj45CQkOfn5+Tk5K2trWBgYLm5uUBAQGpqamtra3BwcHp6epOTk+np6a6urpKSkru7u2dnZ1lZWc/Pz46OjsjIyKysrKampstLUMxNUqqqqqioqOrq6nR0dGFhYctJTpWVlcpFStBcYOLi4tbW1s1RVs5VWcc8Qry8vH19fbe3t3d3d8fHx6KiotPT08hARlhYWGRkZMHBwYSEhICAgNTU1NDQ0L6+vqWlpcbGxnZ2dmhoaL+/vz8/P5mZmXJycmZmZjk5OTo6OkxMTNHR0aI3PKCgoFdXVzExMYiIiEdHR0NDQ3JcXaIlKrcnLZomK1NTU5UhJmVlZY9cXmxBQ2JiYisrK0lJSVRUVBsbG4uLi21tbaSkpE9PT19fX4pWVygfHz4+PkUoKUojJRgYGC4uLmNjY1VVVVBQUJ9RVWxWVpsnLC8vL79ARhYWFhISEiwsLFMZG4tJTIAgJFM4OUY9PbBFSYJKS7NLTzIyMmtLTH4nK6dRVU4nKQoKCnlcXSYmJqU8QUo4OWseITklJjIfIGZOT75RVX83OzMzMxsREpcjKGVWVlgeIatJTeHh4SAgIF4aHZdFSIg3O1shJKJJTAkJCYkgJLcmLCQkJBUVFTkcHW5ubjonKL9VWatLT2gkJ30nKhEREbYmK3slKDIoKF5eXlJKSqQnKx8fH9BcYU5GRqNLTowjJywiI7tJTY1NULYmLCQaGk4oKaRcX69ARXMdIF9GRoVARIhSVB8VFpJVWE1NTTsoKVpaWnJKS6QnLJM8QHxLTQYGBmAmKK0mLB0dHcXFxVZOTsFFSoNLTTw8PK4nLEpBQSYTFFc9PponKz0gIbdVWX5OUEFBQSIiIktLS05OTiUlJScnJ0pKShAQEFZWVlJSUh4eHlxcXBkZGRQUFCgoKP///////wAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAPkALAAAAABSADwAAAj/APMJ7ADBhIYG9BIqXMiwocOHECNG3KUBjoMOAjPm62CH3Yl4DEKKHEmypMmTKFOqLBNvGpt0GDN2SGeETwI9C3Lq3Mmzp8+fQIMKXRDIzow5UmJ2eGDii4GnUKNKnUq1qtWrWKnSm/MAY6w2JwaIHUu2rNmzaNOqXZsWzjsH+fYYSZegrt1LnbTo1YIqkd2/gAMLHky4MOEyGqrkg7IngGPHiqzxmEx5siVyjzNr3sy5s+fPnN8ZgQtFTbrT6cQpI8KaiKA0zVq/Rk27tu3buHPrto3lDNwOZwAIB7bIhnHjp4Qft+GNmfDn0KNLn069uvXnfarA9WBi3bt3qmiI/xc/ihG1Q+PFE+P1vb379/Djy59P/3sbKL+hyGG3yYV//+iwI2A3//1XjIAIJqjgggw26OCDAhahXT4zqMGHPH7ooKEOkcjjjDwgZrihDpyAaOKJKKao4oostghiAw3AFY8c8XAxyw447kDHH3TEEw80oZyTI45/+GjkkUgmqeSSTDZ5AhfRwCUPGFZw8csNWN4QBhph0BPGDWjQk0yWN1Ai0ZlopqlQA/JY8QVcfUhxTwIt1FnnN8Gss841ddLSiJ0tPKLnoIQWauihiCaKKBZsdBEIGHCxA8499xBg6aWAUHrHGJd2igyloIYq6qiklmrqqffowQFcWFhBaTidEv+QKSS6bBorAdKgquuuvIq6QABwvTOAO+7Ycqs75YwhiySxVkPss9BGK+201FZrLbFrXAHXF120004msfbSDhkEkDFup9l4q+667Lbr7rvwxuvtPQPABUAh6uSbS6e1DHMpHnhcqk2+BBds8MEIJ6zwwgS3YwBcYLQzz8R1iHGpJqlcKkbFBLRizsQghyzyyCSXbPLJIJeyBlzp+FLPy/UcA4qloghzqzGwwKzzzjz37PPPQPPshitwSZGHPUgnjQkutxKAyDNJRy311FRXbfXVVL8yD1wPEALP12DD84khy5hhBiumjBP22my37fbbcMcNzy1uKAZFHgLkrffefPf/7fffgAcuuOCVkOZIAYgnrvjijDfu+OOQRw65AEkN5A42B2Su+eacd+7556CHLrrnk3gS00BWDLKKAqy37vrrsMcu++y01966ANtUrtFGDpyAwO/ABy/88MQXb/zxyAM/w0UaobYFCh+c5gUKKPwQfTpeXKD99lvUtkURtaGw/QU/2FYE+OmIP/4F0KdTxA/iW4/a+9Sj4IVtADSwBD74CAHABvhYwgYu0D8AyGADCBxgAKEjBHw0ADoyCGAC/cdAfLxBOEJIIAIJ+IYGEBCB/JOBAfknwA9GRwMRiMAE8BGHFU6gPSXAhwbekwV8AME9EcjCe4BgQ/nE8IXyWeE7/+KADyCiMALvyEIEZvidGDLxOyyIgBHYgQ8WgEACCQIBPkCQIBbgwwJd3CI7LDBFdmiRiwvqgRgdJIEesKMHEUiQGtkRATci6IwJOhE+YJAiEuDDBCby4xBQJIJBygMfJACRD/DBBBiQwAeBRGSLFglJJojgRJY8JB9NZAJJmuhI+HgBkjwQyiNFgX9RMFIN8JGEeJCyBj4iJf/4pwRX4qOWTYqCCHy0SlHGIwn4SGUpjfTKIy0EHxlgSAxy0JAPTGGZCYEmPT6Ajyk0MwPVxGYMjnCEDHygmchUSAz4N058IIEe4VQINa2pEELhowmEKkEEZoCoJuADAim4p55mgP+PFKwDC4aKQAkkwL8U8s+fhLInBPQEAf5JQJ79XMc7CcVPhOopVPgIAaga2gBTcZQCFADVA+5ZKpBiwIGUegAF8CEqDGAAVCt9AEzxMVKNipSkpMoopRqA01KN4KX4oACMGtDQEXRUVDXFxwhCxdOj3oOnNr2HUpnqQJ3eFAKhglZG3fEADIzAWg2FgDtOOsuyPiBaMd3qs5r6rJg+S63Eaipc3cHWBzTAHetCZDtUUIF4+fEJ6lqVAwaLSA6sywEVwIcD9tpXdWHTsO3gAD5UsC6+Qnav+OAAX9f12CfwjwQF+2IEK2CB0pbWMSewQAUqcIKEBQAfMshXAGSwAnz/BCEA+ToBPkhrgSDgYwUEs8AXC/baCqxAtbBVh25561vgCte2IcMBFfJZVv7F4wX4cAIVUIaDeEwMB9ndbsji4QT+4SAFIUsBDq4gsitgN7venRh5wXtekGH3BUHLr373y1/+4mAAWAuwgAdM4AGzgAX2kJuCF8zgBrttHaT42nc0cMN3AGECTNTABDY8gQpP2D0cBiJ8QrzhCW/4iRrGcHsorOL3uA9+1bteRtjhRSlKIAIEZQGNJcBjfMRRQCD48RjxwWMJlJHGduxBkQkKAi32GIxaxHEVzehjgtoRQRGUIAH9lxEYiMDLMDBkJwEJok5CEkRD2KQ8SGBITA6B/8wn6qQ8mMAEEHlZHl9W5B/TXOY/nkiJT3RiRmrggSSIwAMeMNKhYykCX/5ylzWAZQ2UgGgjvQCXSXpBKpUAS1vGAx+J9pEIgBnqeIwalDq+4xYzkhAkxGAhGWBmQrCZg2/SIwfJ7CY9pjDLWiMBH7ZuSAzOeQRZF5seMUgmPX5NzWAP+5hqlgclM8LQCAwKAvOkaBOsjW09laAEFH1oDAcKT0KlwNrraOgs/ZnPHuNDovTUUwQWOiglLNpHSmBlRnb60nt01akYbcAIbDqCpTKVAi4NAQRAGioKEBwDMGK4vyGw8JDSFFQQD9Wv8cHNcn5g30/tNwWwOqqRShUCMPoquExBFYKVOvXi/oZ5ximF0pRiAKswv8fMKZXugd7Yx+vISFwx4I4QfFVaXRUrwl3KPwqstapnJRbEiTUCpxPLgW+9K1cpcHSsX/2sFHcHUnWaEW8h1gGK5YDa1fWECgCWXRnIgLc4kIEKLFYFKnAAB0jQ2Hbo1VsZyDvdKduOtssd8CpQe90jyz8HiCqm98iIbI1b3QCswLi4PVhp1ZHYFWTe8vwLQmvVEYAKZD5fyPW8OmQgeuJe3rajr+0JoDWCexIrIyjLve53z/uJXcEJ85i7CvDx9nZkpL/IT35/uSGPeqhDuKwtWEYKTP3qF7gLSIuHdEeWkYAAADs=&quot;); background-repeat: no-repeat; background-attachment: scroll; background-position: -15px -29px; position: absolute; width: 9px; height: 17px; left: 0px; line-height: 17px; overflow: hidden; padding: 0px; margin: 0px;"></div>
+ </div>
+ </div>
+
+ <script>
+ (function() {
+ var MidID;
+ var tags = document.getElementById('links').getElementsByTagName('div');
+ var tcl = " hslice box ";
+ for (i = 0, j = 0; i & lt; tags.length; i++) {
+ var test = " " + tags[i].className + " ";
+ if (test.indexOf(tcl) != -1) {
+ MibID = tags[i].getAttribute('id');
+ break;
+ }
+ }
+
+ var strCss = '#links-row-1 #' + MibID + '{display:none !important;}';
+
+ oStyle = document.createElement('style');
+ document.getElementsByTagName('head')[0].appendChild(oStyle);
+ if (document.all) { // IE
+ oStyle.styleSheet.cssText = strCss;
+ return;
+ }
+
+ // Firefox, Google Chrome
+ oStyle.textContent = strCss;
+ })();
+ </script>
+ </div>
+ </div>
+ <!-- #box1048927 //-->
+ <div class="hslice box" id="counter">
+ <h4 class="box-title entry-title">
+ 瀏覽人次 </h4>
+ <div class="box-text entry-content">
+
+ <ul>
+ <li>本日人氣:<span id="blog_hit_daily">613</span></li>
+ <li>累積人氣:<span id="blog_hit_total" class="moved">2592077</span></li>
+ </ul>
+ <script type="text/javascript">
+ & lt;
+ !--
+ jQuery.getScript('//counter.pixplug.in/getcounter.php?now=1486718791&amp;random=2901946113&amp;data[%23BlogArticleCount-39926056]=%7B%22counter%22%3A%5B%22blogarticle%22%2C%224410429%22%2C%2239926056%22%2C%22total%22%5D%2C%22options%22%3A%5B%5D%7D&amp;data[%23blog_hit_daily]=%7B%22counter%22%3A%5B%22blog%22%2C%224410429%22%2C1%2C%22daily%22%5D%2C%22options%22%3A%5B%5D%7D&amp;data[%23blog_hit_total]=%7B%22counter%22%3A%5B%22blog%22%2C%224410429%22%2C1%2C%22total%22%5D%2C%22options%22%3A%5B%5D%7D&amp;check=1012779914');
+ //--&gt;
+ </script>
+ </div>
+ </div>
+ <!-- #counter //-->
+ <div class="hslice box" id="recent-article">
+ <h4 class="box-title entry-title">
+ 最新文章 </h4>
+ <div class="box-text entry-content">
+
+ <ul>
+ <li>
+ <a href="/blog/post/44340778"><img src="//s.pixfs.net/blog/images/choc/set-to-top.gif" alt="置頂" border="0" /> 得恩亞納部落</a>
+ </li>
+ <li>
+ <a href="/blog/post/44075977"><img src="//s.pixfs.net/blog/images/choc/set-to-top.gif" alt="置頂" border="0" /> 太平山翠峰湖_避暑觀星 (2016/07/30)</a>
+ </li>
+ <li>
+ <a href="/blog/post/44000701"><img src="//s.pixfs.net/blog/images/choc/set-to-top.gif" alt="置頂" border="0" /> 麻新 SC-1000 智慧型充電器</a>
+ </li>
+ <li>
+ <a href="/blog/post/43947736"><img src="//s.pixfs.net/blog/images/choc/set-to-top.gif" alt="置頂" border="0" /> 英桃の天闊營地(2)_與夏夜銀河有約(2016/06/24)</a>
+ </li>
+ <li>
+ <a href="/blog/post/43778770"><img src="//s.pixfs.net/blog/images/choc/set-to-top.gif" alt="置頂" border="0" /> 宜蘭輕旅行_冬山河生態綠舟/蘇澳煙波大飯店</a>
+ </li>
+ <li>
+ <a href="/blog/post/43493831"><img src="//s.pixfs.net/blog/images/choc/set-to-top.gif" alt="置頂" border="0" /> 苗栗三灣_棕櫚灣 LIU's Palm Cove (2016/02/27~29)</a>
+ </li>
+ <li>
+ <a href="/blog/post/43325050"><img src="//s.pixfs.net/blog/images/choc/set-to-top.gif" alt="置頂" border="0" /> 2016武陵梅花音樂節(2016/01/09)</a>
+ </li>
+ <li>
+ <a href="/blog/post/43220767"><img src="//s.pixfs.net/blog/images/choc/set-to-top.gif" alt="置頂" border="0" /> 秀巒美樹/控溪吊橋楓情</a>
+ </li>
+ <li>
+ <a href="/blog/post/43161622"><img src="//s.pixfs.net/blog/images/choc/set-to-top.gif" alt="置頂" border="0" /> 后里_親泉農莊悠閒品蟹趣 (2015/11/14)</a>
+ </li>
+ <li>
+ <a href="/blog/post/43025980"><img src="//s.pixfs.net/blog/images/choc/set-to-top.gif" alt="置頂" border="0" /> 嘉義_頂石卓/塔塔加/夫妻樹銀河之旅</a>
+ </li>
+ <li><a href="/blog/post/43032613">2015 露營全記錄72露 (215~286露)</a></li>
+ <li>
+ <a href="/blog/post/42851516"><img src="//s.pixfs.net/blog/images/choc/set-to-top.gif" alt="置頂" border="0" /> 苗栗明德窯露營_明德水庫步道賞景</a>
+ </li>
+ <li><a href="/blog/post/42835754">水尾漁港</a></li>
+ <li>
+ <a href="/blog/post/42819941"><img src="//s.pixfs.net/blog/images/choc/set-to-top.gif" alt="置頂" border="0" /> 北海岸逗逗遊_水尾漁港日出/江豐農場金針花/和昇之星/富貴角燈塔</a>
+ </li>
+ <li>
+ <a href="/blog/post/42760718"><img src="//s.pixfs.net/blog/images/choc/set-to-top.gif" alt="置頂" border="0" /> 新社趣露營_大雪山避暑/大坑五號步道健行</a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ <!-- #recent-article //-->
+ <div class="hslice box" id="hot-article">
+ <h4 class="box-title entry-title">
+ 熱門文章 </h4>
+ <div class="box-text entry-content">
+
+ <ul id="hotArtUl">
+ <li><a href="http://stevenhgm.pixnet.net/blog/post/36883749-%e6%96%b0%e7%ab%b9%e5%b0%96%e7%9f%b3_%e5%87%bd%e9%a4%a8%e9%9c%b2%e7%87%9f%e5%8d%80%e8%b3%9e%e7%99%be%e8%90%ac%e5%a4%9c%e6%99%af"><span>(134551)</span>新竹尖石_函館露營區賞百萬夜景</a></li>
+ <li><a href="http://stevenhgm.pixnet.net/blog/post/41964268-%e6%96%b0%e7%a4%be%e6%ab%bb%e8%8a%b1%e9%b3%a5%e6%a3%ae%e6%9e%97_%e8%b3%9e%e6%ab%bb%e9%9c%b2%e7%87%9f%e8%b6%a3-%282015-01-31%29"><span>(51817)</span>新社櫻花鳥森林_賞櫻露營趣 (2015/01/31)</a></li>
+ <li><a href="http://stevenhgm.pixnet.net/blog/post/37795215-%e6%98%a5%e9%99%bd%e5%a4%aa%e9%ad%af%e7%81%a3%e7%87%9f%e5%9c%b0_%e6%b3%a1%e6%b9%af%e6%a8%82"><span>(50490)</span>春陽太魯灣營地_泡湯樂</a></li>
+ <li><a href="http://stevenhgm.pixnet.net/blog/post/42574397-%e6%96%b0%e7%ab%b9%e4%ba%94%e5%b3%b0_%e5%a4%a9%e9%97%8a%e7%87%9f%e5%9c%b0%e5%88%9d%e9%ab%94%e9%a9%97"><span>(47331)</span>新竹五峰_天闊營地初體驗</a></li>
+ <li><a href="http://stevenhgm.pixnet.net/blog/post/37165635-%e8%8b%97%e6%a0%97%e6%b3%b0%e5%ae%89_%e9%80%b8%e8%a6%96%e7%95%8c%e7%87%9f%e5%9c%b0"><span>(44604)</span>苗栗泰安_逸視界營地</a></li>
+ <li><a href="http://stevenhgm.pixnet.net/blog/post/37795517-%e5%8d%97%e6%be%b3%e8%be%b2%e5%a0%b4---%e6%9c%9d%e9%99%bd%e6%bc%81%e6%b8%af-d1"><span>(44469)</span>南澳農場 / 朝陽漁港 D1</a></li>
+ <li><a href="http://stevenhgm.pixnet.net/blog/post/42001813-%e6%98%a5%e9%99%bd%e5%a4%aa%e9%ad%af%e7%81%a3%e7%87%9f%e5%9c%b0_%e6%b3%a1%e6%b9%af%e8%b3%9e%e6%ab%bb--%e6%ab%bb%e8%8a%b1%e6%9d%91c%e5%8d%80%e7%87%9f%e5%9c%b0%e6%8e%a2"><span>(44174)</span>春陽太魯灣營地_泡湯賞櫻 /櫻花村C區營地探勘 (2015/02/08)</a></li>
+ <li><a href="http://stevenhgm.pixnet.net/blog/post/37846251-%e5%8f%b0%e4%b8%ad%e5%92%8c%e5%b9%b3_%e8%a3%a1%e5%86%b7%e7%86%8a%e7%88%b8%e7%87%9f%e5%9c%b0%e4%b8%ad%e7%a7%8b%e5%81%87%e6%9c%9f%e4%ba%ab%e6%82%a0%e9%96%92"><span>(41421)</span>台中和平_裡冷熊爸營地中秋假期享悠閒</a></li>
+ <li><a href="http://stevenhgm.pixnet.net/blog/post/39815080-%e6%84%9b%e4%b8%8a%e5%96%9c%e7%bf%81%e9%9c%b2%e7%87%9f_%e6%ad%a1%e6%85%b6%e8%81%96%e8%aa%95%e5%a4%9c%e5%b8%82%e8%b6%b4"><span>(37823)</span>愛上喜翁露營_歡慶聖誕夜市趴</a></li>
+ <li><a href="http://stevenhgm.pixnet.net/blog/post/41932198-2015%e5%b1%8f%e6%9d%b1%e7%a9%8e%e9%81%94%e8%be%b2%e5%a0%b4%e5%85%83%e6%97%a6%e5%81%87%e6%9c%9f_%e8%90%ac%e9%87%91%e6%95%99%e5%a0%82-%e5%b1%8f%e7%a7%91%e5%a4%a7-"><span>(37161)</span>2015屏東穎達農場元旦假期_萬金教堂/屏科大/大鵬灣/三地門/霧台神山部落</a></li>
+ <li><a href="http://stevenhgm.pixnet.net/blog/post/42235645-%e5%a2%be%e4%b8%81_%e7%b4%85%e6%9f%b4%e6%b0%b4%e9%84%89%e6%a4%b0%e6%9e%97%e6%b5%b7%e5%b2%b8%e5%ba%a6%e5%81%87%e9%9c%b2%e7%87%9f%e8%b6%a3-%282015-03-22%29"><span>(33879)</span>墾丁_紅柴水鄉椰林海岸度假露營趣 (2015/03/22)</a></li>
+ <li><a href="http://stevenhgm.pixnet.net/blog/post/43493831-%e8%8b%97%e6%a0%97%e4%b8%89%e7%81%a3_%e5%b9%83%e7%88%be%e7%89%b9%e7%87%9f%e5%9c%b0%282016-02-27%7e29%29"><span>(30026)</span>苗栗三灣_棕櫚灣 LIU's Palm Cove (2016/02/27~29)</a></li>
+ <li><a href="http://stevenhgm.pixnet.net/blog/post/40505173-%e6%ad%a6%e7%95%8c%e5%8e%9f%e9%84%89%e4%b9%8b%e7%be%8e_%e6%ad%a6%e7%95%8c%e5%b6%ba%e8%8c%b6%e5%9c%92-%e6%b3%95%e6%b2%bb%e5%9c%8b%e5%b0%8f-%e6%ad%a6%e7%95%8c%e5%bc%95%e6%b0%b4"><span>(28315)</span>武界原鄉之美_武界嶺茶園/法治國小/武界引水道/曲冰遺址</a></li>
+ <li><a href="http://stevenhgm.pixnet.net/blog/post/37795193-%e8%b2%b4%e5%ad%90%e5%9d%91%e9%9c%b2%e7%87%9f%e8%bb%8a%e7%87%9f%e4%bd%8d%e5%88%9d%e9%ab%94%e9%a9%97"><span>(27623)</span>貴子坑露營車營位初體驗</a></li>
+ <li><a href="http://stevenhgm.pixnet.net/blog/post/38854113-%e6%96%b0%e7%ab%b9%e4%ba%94%e5%b3%b0_%e8%8a%b1%e6%b9%96%e7%be%8e%e5%9c%b0%e5%81%87%e6%97%a5%e7%a7%bb%e6%b0%91"><span>(26791)</span>新竹五峰_花湖美地假日移民</a></li>
+ <li><a href="http://stevenhgm.pixnet.net/blog/post/37323619-%e6%96%b0%e7%ab%b9%e5%b0%96%e7%9f%b3_%e5%a4%a9%e6%b9%96%e8%be%b2%e5%9c%92%e9%9c%b2%e7%87%9f%ef%bc%882%ef%bc%89"><span>(26549)</span>新竹尖石_天湖農園露營(2)</a></li>
+ <li><a href="http://stevenhgm.pixnet.net/blog/post/42601325-%e6%96%b0%e7%ab%b9%e5%8c%97%e5%9f%94_%e9%87%91%e5%90%8d%e6%9f%8f%e5%b1%8b%e4%bc%91%e9%96%92%e8%be%b2%e8%8e%8a%e5%9c%9f%e5%8c%aa%e7%aa%a9%e9%9c%b2%e7%87%9f"><span>(24551)</span>新竹北埔_金名柏屋休閒農莊土匪窩露營</a></li>
+ <li><a href="http://stevenhgm.pixnet.net/blog/post/37795563-%e5%8c%97%e5%be%97%e6%8b%89%e6%9b%bc%e7%87%9f%e5%9c%b0"><span>(23966)</span>北得拉曼營地</a></li>
+ <li><a href="http://stevenhgm.pixnet.net/blog/post/39926056-%e6%96%b0%e7%ab%b9%e5%b0%96%e7%9f%b3_%e7%be%8e%e6%a8%b9%e7%87%9f%e5%9c%b0%e8%b3%9e%e6%a5%93-%282%29"><span>(23921)</span>新竹尖石_美樹營地賞楓 (2)</a></li>
+ <li><a href="http://stevenhgm.pixnet.net/blog/post/38408365-%e6%a1%83%e5%9c%92%e5%be%a9%e8%88%88_%e9%9b%85%e6%b8%a1%e8%be%b2%e8%8e%8a%e9%81%bf%e6%9a%91"><span>(22776)</span>桃園復興_雅渡農莊避暑</a></li>
+ </ul>
+ <script type="text/javascript">
+ & lt;
+ !--
+ jQuery('#hot-article #hotArtUl').load('/blog/hotarticledata?limit=20');
+ // --&gt;
+ </script>
+ </div>
+ </div>
+ <!-- #hot-article //-->
+ <div class="hslice box" id="category">
+ <h4 class="box-title entry-title">
+ 文章分類 </h4>
+ <div class="box-text entry-content">
+
+ <div class="box-more">
+ <img src="//s.pixfs.net/blog/images/choc/expand.gif" alt="unfold all categories" style="cursor:hand;cursor:pointer;" onclick="pix.openAllCategory('open');" />
+ <img src="//s.pixfs.net/blog/images/choc/collapse.gif" alt="fold all categories" style="cursor:hand;cursor:pointer;" onclick="pix.openAllCategory('close');" />
+ </div>
+
+ <div class="inner-box">
+ <h6 style="cursor:hand;cursor:pointer;" onclick="pix.commentSwitch('category-1368809','category-1368809-switch');"><img id="category-1368809-switch" src="//s.pixfs.net/blog/images/choc/plus.gif" alt="展開分類" border="0" /> @ 露營全記錄 (3)</h6>
+ <ul id="category-1368809" style="display: none;">
+ <!-- ie6bug
+-->
+ <li><a href="/blog/category/1771009">露營全紀錄 (4)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771011">行程分享 (3)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1780173">露營裝備 (3)</a></li>
+ <!-- ie6bug -->
+ </ul>
+ </div>
+ <div class="inner-box">
+ <h6 style="cursor:hand;cursor:pointer;" onclick="pix.commentSwitch('category-1368767','category-1368767-switch');"><img id="category-1368767-switch" src="//s.pixfs.net/blog/images/choc/plus.gif" alt="展開分類" border="0" /> ...北北基營地 (4)</h6>
+ <ul id="category-1368767" style="display: none;">
+ <!-- ie6bug
+-->
+ <li><a href="/blog/category/1771457">台北_貴子坑露營場 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1859671">平溪_森林小學會館 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1779145">烏來_967營地 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1873888">瑞芳_濂洞國小 (1)</a></li>
+ <!-- ie6bug -->
+ </ul>
+ </div>
+ <div class="inner-box">
+ <h6 style="cursor:hand;cursor:pointer;" onclick="pix.commentSwitch('category-1368807','category-1368807-switch');"><img id="category-1368807-switch" src="//s.pixfs.net/blog/images/choc/plus.gif" alt="展開分類" border="0" /> ...桃園縣營地 (12)</h6>
+ <ul id="category-1368807" style="display: none;">
+ <!-- ie6bug
+-->
+ <li><a href="/blog/category/1771521">復興_雅渡休閒農莊 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1851817">復興_恩愛農場 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1894999">復興_拉嘎營地 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1802875">復興_犘亞農場 (2)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1873018">復興_三哥休閒園區景觀神木露營地 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771511">復興_俠雲山莊 (3)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771515">復興_松野農園 (2)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771523">復興_雲頂休閒露營區 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1779181">復興_拉拉山營地 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771519">復興_瑞士農園民宿 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771589">復興_飛督努農場 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771527">復興_楓田農莊 (1)</a></li>
+ <!-- ie6bug -->
+ </ul>
+ </div>
+ <div class="inner-box">
+ <h6 style="cursor:hand;cursor:pointer;" onclick="pix.commentSwitch('category-1368765','category-1368765-switch');"><img id="category-1368765-switch" src="//s.pixfs.net/blog/images/choc/plus.gif" alt="展開分類" border="0" /> ...新竹縣營地 (45)</h6>
+ <ul id="category-1368765" style="display: none;">
+ <!-- ie6bug
+-->
+ <li><a href="/blog/category/1874869">北埔_大湖山林 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1901717">北埔_金名柏屋休閒農莊 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1901384">五峰_天濶營地 (2)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1898743">尖石_水田谷營地 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1876777">尖石_春文草堂 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1879075">尖石_八五山甜柿森林 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1876516">五峰_野馬農園 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1832968">五峰_愛上喜翁 (2)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1846693">五峰_伊梵的家 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1875058">尖石_起初營地 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1868086">尖石_怪獸森林 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1770997">尖石_拉號野營地 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1872145">尖石_香杉營地 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1770999">尖石_函館營地 (2)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771111">尖石_天湖農園 (2)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771085">尖石_溫家茶園 (3)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771115">尖石_慢森活露營區 (3)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771159">尖石_金鶯露營園地 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1853344">尖石_油羅溪營地 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771155">尖石_紅薔薇營地 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771099">尖石_六號花園 (2)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771105">尖石_尤命的帳幕 (4)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771075">尖石_水田營地 (4)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771103">尖石_北德拉曼休閒營地 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771119">尖石_田中露營區 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771113">尖石_山頂農莊 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1853332">尖石_高台山營地 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771157">尖石_美樹營地 (3)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771101">尖石_優美地民宿 (2)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771109">尖石_司馬庫斯舊部落營地 (4)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771107">尖石_友柏花園休閒農莊 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771117">尖石_櫻花谷露營區 (2)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771083">五峰_樂哈山營地 (2)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1808205">五峰_花湖美地 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771089">五峰_翡述景園 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771091">五峰_賽夏農場 (2)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771093">五峰_阿貴營地 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771079">五峰_尤瑪山莊 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771095">五峰_烏嘴山露營區 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771087">五峰_瓦度的家 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771001">五峰_浮雲杉林 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771077">五峰_哈勇露營區 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771081">五峰_涼山營地 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771161">峨眉_桐花谷露營區 (3)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771097">北埔_永茂森林山莊 (1)</a></li>
+ <!-- ie6bug -->
+ </ul>
+ </div>
+ <div class="inner-box">
+ <h6 style="cursor:hand;cursor:pointer;" onclick="pix.commentSwitch('category-1368805','category-1368805-switch');"><img id="category-1368805-switch" src="//s.pixfs.net/blog/images/choc/plus.gif" alt="展開分類" border="0" /> ...苗栗縣營地 (19)</h6>
+ <ul id="category-1368805" style="display: none;">
+ <!-- ie6bug
+-->
+ <li><a href="/blog/category/1918535">三灣_幃爾特營地 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1906448">苗栗_明德窯 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1855993">泰安_生健農技 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1856680">泰安_ㄠ嶩營地 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771433">卓蘭_流蘇森林露營區 (2)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1856776">泰安_美富安松林溪 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771441">大湖_老官道休閒農場 (2)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771005">泰安_逸視界營地 (2)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771445">泰安_烏嘎彥景觀休閒露營區 (3)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771447">泰安_石水坊露營區 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771443">泰安_楓李小站露營區 (2)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771451">泰安_鑽石林 (2)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771421">三義_山板樵休閒農場 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771423">三義_峯州小木屋民宿 (2)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771429">三義_薪山線露營休閒農場 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771439">南庄_知泉渡假山莊 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771437">南庄_吻吻露營區 (4)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1779183">南庄_鹿場850庭園 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771455">南庄_一葉蘭農場 (1)</a></li>
+ <!-- ie6bug -->
+ </ul>
+ </div>
+ <div class="inner-box">
+ <h6 style="cursor:hand;cursor:pointer;" onclick="pix.commentSwitch('category-1368803','category-1368803-switch');"><img id="category-1368803-switch" src="//s.pixfs.net/blog/images/choc/plus.gif" alt="展開分類" border="0" /> ...台中市營地 (10)</h6>
+ <ul id="category-1368803" style="display: none;">
+ <!-- ie6bug
+-->
+ <li><a href="/blog/category/1912510">后里_親泉農場 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771529">和平_福壽山農場 (8)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1885885">新社_梅林親水岸 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1904567">新社_趣露營 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771531">和平_裡冷熊爸營地 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1888366">新社_櫻花鳥森林 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771585">和平_武陵農場 (13)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771533">和平_馬告的傳奇 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771535">新社_小路露營區 (0)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771545">新社_沐心泉休閒農場 (1)</a></li>
+ <!-- ie6bug -->
+ </ul>
+ </div>
+ <div class="inner-box">
+ <h6 style="cursor:hand;cursor:pointer;" onclick="pix.commentSwitch('category-1368801','category-1368801-switch');"><img id="category-1368801-switch" src="//s.pixfs.net/blog/images/choc/plus.gif" alt="展開分類" border="0" /> ...彰化縣營地 (1)</h6>
+ <ul id="category-1368801" style="display: none;">
+ <!-- ie6bug
+-->
+ <li><a href="/blog/category/1771547">彰化_顏氏二村 (1)</a></li>
+ <!-- ie6bug -->
+ </ul>
+ </div>
+ <div class="inner-box">
+ <h6 style="cursor:hand;cursor:pointer;" onclick="pix.commentSwitch('category-1368797','category-1368797-switch');"><img id="category-1368797-switch" src="//s.pixfs.net/blog/images/choc/plus.gif" alt="展開分類" border="0" /> ...南投縣營地 (14)</h6>
+ <ul id="category-1368797" style="display: none;">
+ <!-- ie6bug
+-->
+ <li><a href="/blog/category/1842868">信義_烏松崙森林渡假營 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1843501">信義_阿肥的天空 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771563">國姓_黃金森林露營區 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1852606">武界_法冶國小 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771565">埔里_虎嘯山莊 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771567">埔里_雲風箏自然手感露營農場 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771569">埔里_顏氏牧場 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771559">仁愛_太魯灣溫泉露營區 (2)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771561">仁愛_青青草原露營客棧 (4)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771575">魚池_日月潭特色遊學中心 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771573">魚池_左岸松湖營地 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771571">竹山_深山林內 (6)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771577">鹿谷_文景農場 (2)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771579">鹿谷_波斯園露營區 (3)</a></li>
+ <!-- ie6bug -->
+ </ul>
+ </div>
+ <div class="inner-box">
+ <h6 style="cursor:hand;cursor:pointer;" onclick="pix.commentSwitch('category-1368799','category-1368799-switch');"><img id="category-1368799-switch" src="//s.pixfs.net/blog/images/choc/plus.gif" alt="展開分類" border="0" /> ...雲林縣營地 (1)</h6>
+ <ul id="category-1368799" style="display: none;">
+ <!-- ie6bug
+-->
+ <li><a href="/blog/category/1771549">古坑_湖光山舍 (3)</a></li>
+ <!-- ie6bug -->
+ </ul>
+ </div>
+ <div class="inner-box">
+ <h6 style="cursor:hand;cursor:pointer;" onclick="pix.commentSwitch('category-1368795','category-1368795-switch');"><img id="category-1368795-switch" src="//s.pixfs.net/blog/images/choc/plus.gif" alt="展開分類" border="0" /> ...嘉義縣營地 (1)</h6>
+ <ul id="category-1368795" style="display: none;">
+ <!-- ie6bug
+-->
+ <li><a href="/blog/category/1771551">竹崎_頂笨仔露營區 (4)</a></li>
+ <!-- ie6bug -->
+ </ul>
+ </div>
+ <div class="inner-box">
+ <h6 style="cursor:hand;cursor:pointer;" onclick="pix.commentSwitch('category-1368793','category-1368793-switch');"><img id="category-1368793-switch" src="//s.pixfs.net/blog/images/choc/plus.gif" alt="展開分類" border="0" /> ...台南市營地 (1)</h6>
+ <ul id="category-1368793" style="display: none;">
+ <!-- ie6bug
+-->
+ <li><a href="/blog/category/1771553">柳營_德元埤荷蘭村 (2)</a></li>
+ <!-- ie6bug -->
+ </ul>
+ </div>
+ <div class="inner-box">
+ <h6 style="cursor:hand;cursor:pointer;" onclick="pix.commentSwitch('category-1368791','category-1368791-switch');"><img id="category-1368791-switch" src="//s.pixfs.net/blog/images/choc/plus.gif" alt="展開分類" border="0" /> ...高雄市營地 (1)</h6>
+ <ul id="category-1368791" style="display: none;">
+ <!-- ie6bug
+-->
+ <li><a href="/blog/category/1771555">美濃_美綠生態園 (2)</a></li>
+ <!-- ie6bug -->
+ </ul>
+ </div>
+ <div class="inner-box">
+ <h6 style="cursor:hand;cursor:pointer;" onclick="pix.commentSwitch('category-1368789','category-1368789-switch');"><img id="category-1368789-switch" src="//s.pixfs.net/blog/images/choc/plus.gif" alt="展開分類" border="0" /> ...屏東縣營地 (3)</h6>
+ <ul id="category-1368789" style="display: none;">
+ <!-- ie6bug
+-->
+ <li><a href="/blog/category/1771557">恆春_青山露營區 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1886599">萬巒_穎達休閒農場 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1895449">墾丁_紅柴水鄉 (1)</a></li>
+ <!-- ie6bug -->
+ </ul>
+ </div>
+ <div class="inner-box">
+ <h6 style="cursor:hand;cursor:pointer;" onclick="pix.commentSwitch('category-1368785','category-1368785-switch');"><img id="category-1368785-switch" src="//s.pixfs.net/blog/images/choc/plus.gif" alt="展開分類" border="0" /> ...宜蘭縣營地 (5)</h6>
+ <ul id="category-1368785" style="display: none;">
+ <!-- ie6bug
+-->
+ <li><a href="/blog/category/1771583">頭城_龜山朝日露營園區 (2)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1825360">大同_牛鬥一角 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1847062">三星_長埤湖營地 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771029">冬山_東風營地 (2)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771581">蘇澳_南澳農場 (5)</a></li>
+ <!-- ie6bug -->
+ </ul>
+ </div>
+ <div class="inner-box">
+ <h6 style="cursor:hand;cursor:pointer;" onclick="pix.commentSwitch('category-1368783','category-1368783-switch');"><img id="category-1368783-switch" src="//s.pixfs.net/blog/images/choc/plus.gif" alt="展開分類" border="0" /> ...花蓮縣營地 (9)</h6>
+ <ul id="category-1368783" style="display: none;">
+ <!-- ie6bug
+-->
+ <li><a href="/blog/category/1771621">瑞穗_黑崧大山 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1875394">玉里_林家園 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1876990">富里_富茂農莊 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771623">秀林_合流露營區 (0)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1882642">壽豐_牛山呼庭 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771625">豐濱_石梯坪露營區 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771635">富里_烏魚山莊 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771637">富里_頭目的家 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771619">玉里_東豐露營區 (1)</a></li>
+ <!-- ie6bug -->
+ </ul>
+ </div>
+ <div class="inner-box">
+ <h6 style="cursor:hand;cursor:pointer;" onclick="pix.commentSwitch('category-1368781','category-1368781-switch');"><img id="category-1368781-switch" src="//s.pixfs.net/blog/images/choc/plus.gif" alt="展開分類" border="0" /> ...台東縣營地 (4)</h6>
+ <ul id="category-1368781" style="display: none;">
+ <!-- ie6bug
+-->
+ <li><a href="/blog/category/1771629">長濱_巴歌浪船屋民宿 (2)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771631">鹿野_福鹿山休閒農莊 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1771627">台東_小野柳露營區 (2)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1873333">長濱_浪花蟹營地 (1)</a></li>
+ <!-- ie6bug -->
+ </ul>
+ </div>
+ <div class="inner-box">
+ <h6 style="cursor:hand;cursor:pointer;" onclick="pix.commentSwitch('category-1368787','category-1368787-switch');"><img id="category-1368787-switch" src="//s.pixfs.net/blog/images/choc/plus.gif" alt="展開分類" border="0" /> ...澎湖縣營地 (1)</h6>
+ <ul id="category-1368787" style="display: none;">
+ <!-- ie6bug
+-->
+ <li><a href="/blog/category/1771657">山麉山莊 (1)</a></li>
+ <!-- ie6bug -->
+ </ul>
+ </div>
+ <div class="inner-box">
+ <h6 style="cursor:hand;cursor:pointer;" onclick="pix.commentSwitch('category-1368779','category-1368779-switch');"><img id="category-1368779-switch" src="//s.pixfs.net/blog/images/choc/plus.gif" alt="展開分類" border="0" /> @ 野營玩樂 (1)</h6>
+ <ul id="category-1368779" style="display: none;">
+ <!-- ie6bug
+-->
+ <li><a href="/blog/category/1779831">野營露程 (1)</a></li>
+ <!-- ie6bug -->
+ </ul>
+ </div>
+ <div class="inner-box">
+ <h6 style="cursor:hand;cursor:pointer;" onclick="pix.commentSwitch('category-1368777','category-1368777-switch');"><img id="category-1368777-switch" src="//s.pixfs.net/blog/images/choc/plus.gif" alt="展開分類" border="0" /> ...北部野營地 (7)</h6>
+ <ul id="category-1368777" style="display: none;">
+ <!-- ie6bug
+-->
+ <li><a href="/blog/category/1779781">台北_龍門安檢所 (3)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1781917">台北_天元宮 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1895506">台北_猴硐 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1873414">台北_金瓜石 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1774727">新竹_觀霧 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1870318">台北_陽明山 (3)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1851274">桃園_石門水庫 (2)</a></li>
+ <!-- ie6bug -->
+ </ul>
+ </div>
+ <div class="inner-box">
+ <h6 style="cursor:hand;cursor:pointer;" onclick="pix.commentSwitch('category-1368775','category-1368775-switch');"><img id="category-1368775-switch" src="//s.pixfs.net/blog/images/choc/plus.gif" alt="展開分類" border="0" /> ...中部野營地 (11)</h6>
+ <ul id="category-1368775" style="display: none;">
+ <!-- ie6bug
+-->
+ <li><a href="/blog/category/1781853">台中_清水休息站 (2)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1819903">台中_大雪山 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1852057">南投_奧萬大 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1903154">南投_惠蓀林場 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1779785">南投_日月潭朝霧碼頭 (2)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1844035">南投_車埕車站 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1774723">南投_合歡山武嶺 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1817623">南投_清靜1743 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1774721">南投_合歡山小風口 (3)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1861474">南投_合歡山遊客中心 (2)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1779833">南投_東埔吊橋 (1)</a></li>
+ <!-- ie6bug -->
+ </ul>
+ </div>
+ <div class="inner-box">
+ <h6 style="cursor:hand;cursor:pointer;" onclick="pix.commentSwitch('category-1368773','category-1368773-switch');"><img id="category-1368773-switch" src="//s.pixfs.net/blog/images/choc/plus.gif" alt="展開分類" border="0" /> ...南部野營地 (2)</h6>
+ <ul id="category-1368773" style="display: none;">
+ <!-- ie6bug
+-->
+ <li><a href="/blog/category/1779837">嘉義_龍隱寺 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1910173">嘉義_頂石卓/塔塔加/夫妻樹 (1)</a></li>
+ <!-- ie6bug -->
+ </ul>
+ </div>
+ <div class="inner-box">
+ <h6 style="cursor:hand;cursor:pointer;" onclick="pix.commentSwitch('category-1368771','category-1368771-switch');"><img id="category-1368771-switch" src="//s.pixfs.net/blog/images/choc/plus.gif" alt="展開分類" border="0" /> ...東部野營地 (10)</h6>
+ <ul id="category-1368771" style="display: none;">
+ <!-- ie6bug
+-->
+ <li><a href="/blog/category/1779783">宜蘭_礁溪公園 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1864969">宜蘭_濱海遊憩區 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1893541">宜蘭_情人海灘 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1846153">宜蘭_野溪溫泉 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1774725">宜蘭_太平山 (4)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1865869">宜蘭_翠峰湖 (4)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1779779">花蓮_七星潭 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1884193">花蓮_鯉魚潭 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1779841">台東_三仙台 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1784021">台東_加路蘭 (1)</a></li>
+ <!-- ie6bug -->
+ </ul>
+ </div>
+ <div class="inner-box">
+ <h6 style="cursor:hand;cursor:pointer;" onclick="pix.commentSwitch('category-1368769','category-1368769-switch');"><img id="category-1368769-switch" src="//s.pixfs.net/blog/images/choc/plus.gif" alt="展開分類" border="0" /> ...離島野營地 (0)</h6>
+ <ul id="category-1368769" style="display: none;">
+ <!-- ie6bug
+-->
+ </ul>
+ </div>
+ <ul>
+ <!-- ie6bug
+-->
+ <li><a href="/blog/category/1766233">@ 玩樂全台灣 (3)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1766217">...北台灣(北北基) (43)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1767865">...北台灣(桃竹苗) (32)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1766215">...中台灣(中彰投) (44)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1766225">...南台灣(雲嘉南) (12)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1767867">...南台灣(高屏澎) (8)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1856686">...東台灣(宜蘭縣) (17)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1766207">...東台灣(花 東) (31)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1766231">...澎湖離島玩樂 (8)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1781079">...蘭嶼離島玩樂 (4)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1865284">...馬祖離島玩樂 (8)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1779203">@ 吃喝全台灣 (0)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1779205">...北台灣美食(北北基) (6)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1779207">...北台灣美食(桃竹苗) (8)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1779209">...中台灣美食(中彰投) (3)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1779211">...南台灣美食(雲嘉南) (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1779213">...南台灣美食(高屏澎) (0)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1779215">...東台灣美食(宜花東) (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1779217">...離島美食 (0)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1778667">@ 隨興攝影 (2)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1709705">...晨昏景色 (7)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1778675">@ 人文分享 (19)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1780093">@ 心情分享 (1)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1778683">@ 居家休閒 (9)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1778687">@ 單車休閒 (6)</a></li>
+ <!-- ie6bug -->
+ <li><a href="/blog/category/1780121">@ 登山行記 (6)</a></li>
+ <!-- ie6bug -->
+ </ul>
+ </div>
+ </div>
+ <!-- #category //-->
+ <div class="hslice box" id="search">
+ <h4 class="box-title entry-title">
+ 文章搜尋 </h4>
+ <div class="box-text entry-content">
+
+ <form method="post" action="http://stevenhgm.pixnet.net/blog/search/" id="search-form" data-wording-needkeyword="請輸入關鍵字">
+ <ul>
+ <li><input name="search-target" id="search-target" type="text" /></li>
+ <li><input id="search-submit" value="搜尋" type="submit" /></li>
+ </ul>
+ </form>
+ <script type="text/javascript">
+ //&lt;!--
+ jQuery('#search-form').submit(function(event) {
+ if ('' === jQuery('#search-target').val()) {
+ alert(jQuery(this).attr('data-wording-needkeyword'));
+ event.preventDefault();
+ }
+ });
+ //--&gt;
+ </script>
+ </div>
+ </div>
+ <!-- #search //-->
+ <div class="hslice box" id="mylink">
+ <h4 class="box-title entry-title">
+ 友好連結 </h4>
+ <div class="box-text entry-content">
+
+ <div class="inner-box">
+ <ul>
+ <!-- ie6bug
+ -->
+ <li><a title="" href="http://rvcamp.org/" target="_blank">露營窩</a></li>
+ <!-- ie6bug
+ -->
+ <li><a title="" href="http://rvcamp.biz/" target="_blank">朱雀的鳥窩</a></li>
+ <!-- ie6bug
+ -->
+ <li><a title="" href="http://www.joelincampers.com.tw/?page_id=18" target="_blank">綠茶喝大杯</a></li>
+ <!-- ie6bug
+ -->
+ <li><a title="" href="http://kwi3.pixnet.net/blog" target="_blank">阿蒯的家</a></li>
+ <!-- ie6bug
+ -->
+ <li><a title="" href="http://linghua581101.pixnet.net/blog" target="_blank">翠影紅霞</a></li>
+ <!-- ie6bug
+ -->
+ <li><a title="" href="http://amay3952.pixnet.net/blog" target="_blank">Camping story by 愛辛焆羅</a></li>
+ <!-- ie6bug
+ -->
+ <li><a title="" href="http://sheilateng.pixnet.net/blog" target="_blank">攝影不設限</a></li>
+ <!-- ie6bug
+ -->
+ <li><a title="" href="http://photo.xuite.net/gs.wu" target="_blank">長尾鳥的相簿</a></li>
+ <!-- ie6bug
+ -->
+ <li><a title="" href="http://blogbackup.pixnet.net/blog" target="_blank">部落格備份網</a></li>
+ <!-- ie6bug
+ -->
+ <li><a title="" href="http://bbpeng2.pixnet.net/blog" target="_blank">笑傲山林</a></li>
+ <!-- ie6bug
+ -->
+ </ul>
+ </div>
+ </div>
+ </div>
+ <!-- #mylink //-->
+ <script type="text/javascript">
+ & lt;
+ !--
+ jQuery(function($) {
+ $('#mylink h6.expandable').click(function() {
+ var plus_img = "\/\/s.pixfs.net\/blog\/images\/choc\/plus.gif";
+ var minus_img = "\/\/s.pixfs.net\/blog\/images\/choc\/minus.gif";
+ $(this).siblings('ul').toggle();
+ $img = $('&gt; img', this);
+ if ($img.attr('src') == plus_img) {
+ $img.attr('src', minus_img);
+ } else {
+ $img.attr('src', plus_img);
+ }
+ });
+ });
+ //--&gt;
+ </script>
+ <div class="hslice box" id="latest-comment">
+ <h4 class="box-title entry-title">
+ 最新留言 </h4>
+ <div class="box-text entry-content">
+ <ul>
+ <!-- ie6bug
+-->
+ <li>
+ <span>01/19</span> 版主回覆:
+ <a href="http://stevenhgm.pixnet.net/blog/post/43325050-2016%e6%ad%a6%e9%99%b5%e6%a2%85%e8%8a%b1%e9%9f%b3%e6%a8%82%e5%ad%a3#comment-61899598">Terry 晚安:
+今年的賞梅因月...</a>
+ </li>
+ <!-- ie6bug
+-->
+ <li>
+ <span>01/19</span> 版主回覆:
+ <a href="http://stevenhgm.pixnet.net/blog/post/39926056-%e6%96%b0%e7%ab%b9%e5%b0%96%e7%9f%b3_%e7%be%8e%e6%a8%b9%e7%87%9f%e5%9c%b0%e8%b3%9e%e6%a5%93-%282%29#comment-61901059">謝謝賞圖文!</a>
+ </li>
+ <!-- ie6bug
+-->
+ <li>
+ <span>01/18</span> 蔡敏嫻:
+ <a href="http://stevenhgm.pixnet.net/blog/post/39926056-%e6%96%b0%e7%ab%b9%e5%b0%96%e7%9f%b3_%e7%be%8e%e6%a8%b9%e7%87%9f%e5%9c%b0%e8%b3%9e%e6%a5%93-%282%29#comment-61901059">真是個美麗的好地方,感謝分享~</a>
+ </li>
+ <!-- ie6bug
+-->
+ <li>
+ <span>01/17</span> Terry:
+ <a href="http://stevenhgm.pixnet.net/blog/post/43325050-2016%e6%ad%a6%e9%99%b5%e6%a2%85%e8%8a%b1%e9%9f%b3%e6%a8%82%e5%ad%a3#comment-61899598">今年有計畫再來賞花嗎 ?</a>
+ </li>
+ <!-- ie6bug
+-->
+ <li>
+ <span>01/10</span> 版主回覆:
+ <a href="http://stevenhgm.pixnet.net/blog/post/37795135-%e8%8b%97%e6%a0%97_%e9%9b%b2%e6%b4%9e%e5%b1%b1%e8%8e%8a%e6%97%a5%e5%87%ba%e9%9b%b2%e6%b5%b7#comment-61891549">雲洞山莊後山上面的觀景樓並...</a>
+ </li>
+ <!-- ie6bug
+-->
+ <li>
+ <span>01/09</span> Xiao BaiBai:<a href="http://stevenhgm.pixnet.net/blog/post/37795135-%e8%8b%97%e6%a0%97_%e9%9b%b2%e6%b4%9e%e5%b1%b1%e8%8e%8a%e6%97%a5%e5%87%ba%e9%9b%b2%e6%b5%b7#comment-61891549">想請問我想去看日出,但不想...</a>
+ </li>
+ <!-- ie6bug
+-->
+ <li>
+ <span>01/03</span> 版主回覆:
+ <a href="http://stevenhgm.pixnet.net/blog/post/39926056-%e6%96%b0%e7%ab%b9%e5%b0%96%e7%9f%b3_%e7%be%8e%e6%a8%b9%e7%87%9f%e5%9c%b0%e8%b3%9e%e6%a5%93-%282%29#comment-61885933">不客氣!! 晚安</a>
+ </li>
+ <!-- ie6bug
+-->
+ <li>
+ <span>12/31</span> 妹子小姐:
+ <a href="http://stevenhgm.pixnet.net/blog/post/39926056-%e6%96%b0%e7%ab%b9%e5%b0%96%e7%9f%b3_%e7%be%8e%e6%a8%b9%e7%87%9f%e5%9c%b0%e8%b3%9e%e6%a5%93-%282%29#comment-61885933">謝謝分享文章喲!</a>
+ </li>
+ <!-- ie6bug
+-->
+ <li>
+ <span>12/26</span> 版主回覆:
+ <a href="http://stevenhgm.pixnet.net/blog/post/44340778-%e5%be%97%e6%81%a9%e4%ba%9e%e7%b4%8d%e9%83%a8%e8%90%bd#comment-61874362">謝謝猴子哥 賞圖!
+難得台灣...</a>
+ </li>
+ <!-- ie6bug
+-->
+ <li>
+ <span>12/26</span> 版主回覆:
+ <a href="http://stevenhgm.pixnet.net/blog/post/40505173-%e6%ad%a6%e7%95%8c%e5%8e%9f%e9%84%89%e4%b9%8b%e7%be%8e_%e6%ad%a6%e7%95%8c%e5%b6%ba%e8%8c%b6%e5%9c%92-%e6%b3%95%e6%b2%bb%e5%9c%8b%e5%b0%8f-%e6%ad%a6%e7%95%8c%e5%bc%95%e6%b0%b4#comment-61874689">您好! 武界距離南投市區也不...</a>
+ </li>
+ <!-- ie6bug
+-->
+ </ul>
+ </div>
+ </div>
+ <!-- #latest-comment //-->
+ <div class="hslice box" id="archive">
+ <h4 class="box-title entry-title">
+ 文章精選 </h4>
+ <div class="box-text entry-content">
+
+ <select onchange="pix.gotoArchive(this);">
+<option value="-pixnet-">文章精選</option>
+<option value="/blog/archives/201610">2016 十月 (1)</option>
+<option value="/blog/archives/201608">2016 八月 (1)</option>
+<option value="/blog/archives/201607">2016 七月 (2)</option>
+<option value="/blog/archives/201605">2016 五月 (1)</option>
+<option value="/blog/archives/201603">2016 三月 (1)</option>
+<option value="/blog/archives/201601">2016 一月 (1)</option>
+<option value="/blog/archives/201512">2015 十二月 (2)</option>
+<option value="/blog/archives/201511">2015 十一月 (2)</option>
+<option value="/blog/archives/201509">2015 九月 (3)</option>
+<option value="/blog/archives/201508">2015 八月 (3)</option>
+<option value="/blog/archives/201507">2015 七月 (3)</option>
+<option value="/blog/archives/201506">2015 六月 (1)</option>
+<option value="/blog/archives/201505">2015 五月 (1)</option>
+<option value="/blog/archives/201504">2015 四月 (4)</option>
+<option value="/blog/archives/201503">2015 三月 (4)</option>
+<option value="/blog/archives/201502">2015 二月 (3)</option>
+<option value="/blog/archives/201501">2015 一月 (3)</option>
+<option value="/blog/archives/201412">2014 十二月 (5)</option>
+<option value="/blog/archives/201411">2014 十一月 (8)</option>
+<option value="/blog/archives/201410">2014 十月 (4)</option>
+<option value="/blog/archives/201409">2014 九月 (11)</option>
+<option value="/blog/archives/201408">2014 八月 (5)</option>
+<option value="/blog/archives/201407">2014 七月 (4)</option>
+<option value="/blog/archives/201406">2014 六月 (10)</option>
+<option value="/blog/archives/201405">2014 五月 (3)</option>
+<option value="/blog/archives/201404">2014 四月 (5)</option>
+<option value="/blog/archives/201403">2014 三月 (6)</option>
+<option value="/blog/archives/201402">2014 二月 (8)</option>
+<option value="/blog/archives/201401">2014 一月 (7)</option>
+<option value="/blog/archives/201312">2013 十二月 (10)</option>
+<option value="/blog/archives/201311">2013 十一月 (11)</option>
+<option value="/blog/archives/201310">2013 十月 (13)</option>
+<option value="/blog/archives/201309">2013 九月 (11)</option>
+<option value="/blog/archives/201308">2013 八月 (11)</option>
+<option value="/blog/archives/201307">2013 七月 (7)</option>
+<option value="/blog/archives/201306">2013 六月 (8)</option>
+<option value="/blog/archives/201305">2013 五月 (6)</option>
+<option value="/blog/archives/201304">2013 四月 (8)</option>
+<option value="/blog/archives/201303">2013 三月 (10)</option>
+<option value="/blog/archives/201302">2013 二月 (5)</option>
+<option value="/blog/archives/201301">2013 一月 (11)</option>
+<option value="/blog/archives/201212">2012 十二月 (5)</option>
+<option value="/blog/archives/201211">2012 十一月 (11)</option>
+<option value="/blog/archives/201210">2012 十月 (15)</option>
+<option value="/blog/archives/201209">2012 九月 (3)</option>
+<option value="/blog/archives/201208">2012 八月 (20)</option>
+<option value="/blog/archives/201207">2012 七月 (11)</option>
+<option value="/blog/archives/201206">2012 六月 (7)</option>
+<option value="/blog/archives/201205">2012 五月 (11)</option>
+<option value="/blog/archives/201204">2012 四月 (9)</option>
+<option value="/blog/archives/201203">2012 三月 (11)</option>
+<option value="/blog/archives/201202">2012 二月 (11)</option>
+<option value="/blog/archives/201201">2012 一月 (7)</option>
+<option value="/blog/archives/201112">2011 十二月 (9)</option>
+<option value="/blog/archives/201111">2011 十一月 (13)</option>
+<option value="/blog/archives/201110">2011 十月 (11)</option>
+<option value="/blog/archives/201109">2011 九月 (8)</option>
+<option value="/blog/archives/201108">2011 八月 (10)</option>
+<option value="/blog/archives/201107">2011 七月 (8)</option>
+<option value="/blog/archives/201106">2011 六月 (8)</option>
+<option value="/blog/archives/201105">2011 五月 (9)</option>
+<option value="/blog/archives/201104">2011 四月 (7)</option>
+<option value="/blog/archives/201103">2011 三月 (11)</option>
+<option value="/blog/archives/201102">2011 二月 (6)</option>
+<option value="/blog/archives/201101">2011 一月 (6)</option>
+<option value="/blog/archives/201012">2010 十二月 (10)</option>
+<option value="/blog/archives/201011">2010 十一月 (10)</option>
+<option value="/blog/archives/201010">2010 十月 (4)</option>
+<option value="/blog/archives/201009">2010 九月 (2)</option>
+<option value="/blog/archives/201008">2010 八月 (9)</option>
+<option value="/blog/archives/201007">2010 七月 (5)</option>
+<option value="/blog/archives/201005">2010 五月 (1)</option>
+<option value="/blog/archives/200910">2009 十月 (2)</option>
+<option value="/blog/archives/200909">2009 九月 (2)</option>
+<option value="/blog/archives/200908">2009 八月 (3)</option>
+<option value="/blog/archives/200907">2009 七月 (6)</option>
+<option value="/blog/archives/200903">2009 三月 (5)</option>
+<option value="/blog/archives/200902">2009 二月 (9)</option>
+<option value="/blog/archives/200901">2009 一月 (7)</option>
+<option value="/blog/archives/200812">2008 十二月 (6)</option>
+<option value="/blog/archives/200811">2008 十一月 (8)</option>
+<option value="/blog/archives/200810">2008 十月 (1)</option>
+<option value="/blog/archives/200809">2008 九月 (8)</option>
+<option value="/blog/archives/200808">2008 八月 (4)</option>
+</select>
+ <div class="box-more">
+ <a href="/blog/listall/1">所有文章列表</a>
+ </div>
+ </div>
+ </div>
+ <!-- #archive //-->
+ <div class="hslice box" id="visitor">
+ <h4 class="box-title entry-title">
+ 誰來我家 </h4>
+ <div class="box-text entry-content">
+ <ul id="ul-visitors">
+ <!-- ie6bug //-->
+ <li>
+ <a href="http://PixnetAd2017.pixnet.net/" target="_blank"><img src="http://s1.pimg.tw/avatar/pixnetad2017/0/0/zoomcrop/50x50.jpg?v=1486377143" alt="headshot from friends" title="PixnetAd2017" width="50" height="50" /></a>
+ </li>
+ <li>
+ <a href="http://blogbackup.pixnet.net/" target="_blank"><img src="http://s8.pimg.tw/avatar/blogbackup/0/0/zoomcrop/50x50.jpg?v=1381715322" alt="headshot from friends" title="blogbackup" width="50" height="50" /></a>
+ </li>
+ <li>
+ <a href="http://LetYoung.pixnet.net/" target="_blank"><img src="http://s6.pimg.tw/avatar/letyoung/0/0/zoomcrop/50x50.jpg?v=1429796178" alt="headshot from friends" title="LetYoung" width="50" height="50" /></a>
+ </li>
+ <li>
+ <a href="http://coffee1686.pixnet.net/" target="_blank"><img src="http://s9.pimg.tw/avatar/coffee1686/0/0/zoomcrop/50x50.jpg?v=1477368652" alt="headshot from friends" title="coffee1686" width="50" height="50" /></a>
+ </li>
+ <li>
+ <a href="http://a87192611.pixnet.net/" target="_blank"><img src="http://s7.pimg.tw/avatar/a87192611/0/0/zoomcrop/50x50.jpg?v=1252651730" alt="headshot from friends" title="a87192611" width="50" height="50" /></a>
+ </li>
+ </ul>
+
+ </div>
+ </div>
+ <!-- #visitor //-->
+ <div class="hslice box" id="qrcode">
+ <h4 class="box-title entry-title">
+ QR Code </h4>
+ <div class="box-text entry-content">
+
+ <div class="qrcode">
+ <img src="http://s.pimg.tw/qrcode/stevenhgm/blog/post/39926056-%e6%96%b0%e7%ab%b9%e5%b0%96%e7%9f%b3_%e7%be%8e%e6%a8%b9%e7%87%9f%e5%9c%b0%e8%b3%9e%e6%a5%93-%282%29.png" />
+ </div>
+ </div>
+ </div>
+ <!-- #qrcode //-->
+ <div class="hslice box" id="announce">
+ <h4 class="box-title entry-title">
+ 站方公告 </h4>
+ <div class="box-text entry-content">
+
+ <ul>
+ <li><a href="http://admin.pixnet.net/blog/post/44606311-%5b%e5%85%ac%e5%91%8a%5d-2017%e5%b9%b4%e5%ba%a6%e8%be%b2%e6%9b%86%e6%98%a5%e7%af%80%e6%9c%9f%e9%96%93%e6%9c%8d%e5%8b%99%e5%85%ac%e5%91%8a" target="_blank">[公告] 2017年度農曆春節期間服務公告</a></li>
+ <li><a href="http://admin.pixnet.net/blog/post/44587246-%5b%e5%85%ac%e5%91%8a%5d-%e6%9c%8d%e5%8b%99%e6%a2%9d%e6%ac%be%e7%95%b0%e5%8b%95%e5%85%ac%e5%91%8a" target="_blank">[公告] 服務條款異動公告</a></li>
+ <li><a href="http://admin.pixnet.net/blog/post/43800091-%5b%e5%85%ac%e5%91%8a%5d-%e7%97%9e%e5%ae%a2%e9%82%a6%e7%9b%b8%e7%b0%bf%e6%9c%8d%e5%8b%99%e4%b9%8b%e3%80%8c%e9%9d%9e%e7%b6%b2%e9%a0%81%e4%b8%8a%e5%82%b3%e8%bb%9f%e9%ab%94%e3%80%8d" target="_blank">[公告] 痞客邦相簿服務之「非網頁上傳軟體」將於 2016 年 6 月 29 日正式終止</a></li>
+ </ul>
+ </div>
+ </div>
+ <!-- #announce //-->
+ </div>
+ <!-- #links-row-2 //-->
+ <div id="ad-mib">
+ <script type="text/javascript">
+ pix.MIB.config = {
+ hosthash: '3fe6433d830b6321900cadda5cc06d37',
+ dr: {
+ source: 'stevenhgm'
+ },
+ goldAds: document.querySelectorAll('.h54d834-siTemajidr-h54d834'),
+ uniq: '3af5b47651d9d4461e8047f02d239e74228a7dce18791',
+ percentSite: 'http://falcon.pixanalytics.com/mib/vap',
+ falconSite: 'http://falcon.pixanalytics.com',
+ cate: '16',
+ hasMIB: 1,
+ canPutVideo: false,
+ article_cate_id: '28',
+ demo: {
+ hash: '',
+ demoOption: 0
+ },
+ availablePositions: [{
+ id: 1,
+ name: 'sidebar-1',
+ enable: 1
+ }, {
+ id: 1,
+ name: 'sidebar-2',
+ enable: false
+ }, {
+ id: 3,
+ name: 'video',
+ enable: false
+ }, {
+ id: 8,
+ name: 'unfold',
+ enable: false
+ }],
+ ref: ''
+ };
+
+ (function() {
+ var goldAds = pix.MIB.config.goldAds;
+ if (goldAds[0]) {
+ pix.MIB.build.generate();
+ pix.MIB.build.detectPageScrollPlayback();
+ }
+ })();
+ </script>
+ </div>
+ <!-- #ad-mib //-->
+ </div>
+ <!-- #links //-->
+ </div>
+ <!-- #main //-->
+ <div id="footer">
+ <p></p>
+ <div id="bottom">
+ <a class="bottom-skiplink" href="http://stevenhgm.pixnet.net/blog/post/39926056-%e6%96%b0%e7%ab%b9%e5%b0%96%e7%9f%b3_%e7%be%8e%e6%a8%b9%e7%87%9f%e5%9c%b0%e8%b3%9e%e6%a5%93-%282%29/#top" title="back to the top of the page">回到頁首</a>
+ <a class="bottom-skiplink" href="http://stevenhgm.pixnet.net/blog/post/39926056-%e6%96%b0%e7%ab%b9%e5%b0%96%e7%9f%b3_%e7%be%8e%e6%a8%b9%e7%87%9f%e5%9c%b0%e8%b3%9e%e6%a5%93-%282%29#article-area" title="back to the main cotent of the page">回到主文</a>
+ <a class="bottom-pixnet" href="http://panel.pixnet.cc/signup/step2">免費註冊</a>
+ <a target="_blank" class="bottom-pixnet" href="http://help.pixnet.tw/">客服中心</a>
+ <a target="_blank" class="bottom-pixnet" href="http://www.pixnet.net/">痞客邦首頁</a> © 2003 - 2017 PIXNET Travel </div>
+ </div>
+ <!-- #footer //-->
+ </div>
+ <!-- #container3 //-->
+ <div id="extradiv11"></div>
+ <div id="extradiv10"></div>
+ <div id="extradiv9"></div>
+ <div id="extradiv8"></div>
+ </div>
+ <!-- #container2 //-->
+ <div id="extradiv7"></div>
+ <div id="extradiv6"></div>
+ <div id="extradiv5"></div>
+ <div id="extradiv4"></div>
+ </div>
+ <!-- #container //-->
+ <div id="extradiv3"></div>
+ <div id="extradiv2"></div>
+ <div id="extradiv1"></div>
+ <div id="extradiv0"></div>
+ </div>
+ <!-- #body-div //-->
+
+ </div>
+
+ <script type="text/javascript">
+ & lt;
+ !--
+ jQuery(window).load(function() {
+ //autoImgResize
+ '2';
+ jQuery.settings = jQuery.settings || {};
+ jQuery.settings.autoImgResize = {
+ mode: +'2',
+ resizWidth: +'400',
+ selector: 'content'
+ };
+
+ if (2 === jQuery.settings.autoImgResize.mode) {
+ jQuery.settings.autoImgResize.resizWidth = jQuery('.article-content').width();
+ }
+ pix.autoImgResize(jQuery.settings.autoImgResize.resizWidth, jQuery.settings.autoImgResize.selector);
+
+
+ });
+ //--&gt;
+ </script>
+ <script type="text/javascript">
+ & lt;
+ !--
+ jQuery(function() {
+ pix.fixPixnetPlayerID();
+ jQuery('.article-head').find('.column-star').each(function() {
+ var column_link = jQuery(this).attr('data-column-link');
+ jQuery(this).find('h2').append(' &lt;a title="專欄之星" href="' + column_link + '" target="_blank"&gt;&lt;img title="專欄之星" alt="column star article" src="http://s.pixfs.net/blog/images/choc/column_star.gif"&gt;&lt;/a&gt;');
+ });
+ jQuery('.article-hot').each(function() {
+ jQuery(this).find('h2').append(' &lt;a class="__dailyhotclass" title="本日熱門" href="' + jQuery(this).attr('data-hot-link') + '" target="_blank"&gt;&lt;img title="熱門文章" alt="hot article today" src="http://s.pixfs.net/blog/images/choc/today_hot.gif"&gt;&lt;/a&gt;');
+ });
+ });
+ //--&gt;
+ </script>
+ <script src="//front.pixfs.net/js/mixpanel.js?v=4b36ae69?v=b27bf7fe9e1f0fca830e1381a52f804b"></script>
+ <script src="//front.pixfs.net/js/blog-mixpanel.min.js?v=09e150d3?v=b27bf7fe9e1f0fca830e1381a52f804b"></script>
+ <script type="text/javascript">
+ & lt;
+ !--
+ if (typeof dataLayer === 'undefined') dataLayer = [];
+
+ dataLayer.push({
+ "blog_page_type": "post",
+ "keyword": "",
+ "page_meta": "stevenhgm\/blog\/post\/39926056-新竹尖石_美樹營地賞楓 (2)",
+ "user_cat_id": "1771157",
+ "user_cat_name": "尖石_美樹營地",
+ "is_testing_43400": false,
+ "is_partner_program": false,
+ "is_mobile_mode": false,
+ "user_name": "stevenhgm",
+ "page_type": "blog",
+ "service_type": "blog",
+ "page_view": "\/blog\/",
+ "blog_name": "史蒂文的家_藍天",
+ "blog_cat": "16 - 休閒旅遊",
+ "is_loggedin": false,
+ "is_VIP": false,
+ "is_obstruct": "ip",
+ "viewer_type": "Regular Member",
+ "article_title": "新竹尖石_美樹營地賞楓 (2)",
+ "article_id": "39926056",
+ "article_cat": "28 - 國內旅遊"
+ });
+
+ -- & gt;
+ </script>
+
+ <noscript>&lt;iframe src="//www.googletagmanager.com/ns.html?id=GTM-KGMWFG" height="0" width="0" style="display:none;visibility:hidden"&gt;&lt;/iframe&gt;</noscript>
+ <noscript>&lt;iframe src="//www.googletagmanager.com/ns.html?id=GTM-MZ3SPM" height="0" width="0" style="display:none;visibility:hidden"&gt;&lt;/iframe&gt;</noscript>
+
+
+ <script type="text/javascript">
+ & lt;
+ !--
+ var _gaq = _gaq || [];
+ _gaq.push(
+ ['_setAccount', 'UA-408650-10'], ['_setDetectTitle', false], ['_setDomainName', 'none'], ['_setAllowLinker', true], ['_setCustomVar', 1, 'member', 'GUEST'], ['_setCustomVar', 2, 'vip', 'nonVIP'], ['_trackPageview', '/blog/']
+
+ );
+
+ (function() {
+ var ga = document.createElement('script');
+ ga.type = 'text/javascript';
+ ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0];
+ s.parentNode.insertBefore(ga, s);
+ })();
+
+ (function(w, d, s, l, i) {
+ w[l] = w[l] || [];
+ w[l].push({
+ 'gtm.start': new Date().getTime(),
+ event: 'gtm.js'
+ });
+ var f = d.getElementsByTagName(s)[0],
+ j = d.createElement(s),
+ dl = l != 'dataLayer' ? '&amp;l=' + l : '';
+ j.async = true;
+ j.src =
+ '//www.googletagmanager.com/gtm.js?id=' + i + dl;
+ f.parentNode.insertBefore(j, f);
+ })(window, document, 'script', 'dataLayer', 'GTM-KGMWFG');
+
+ (function(w, d, s, l, i) {
+ w[l] = w[l] || [];
+ w[l].push({
+ 'gtm.start': new Date().getTime(),
+ event: 'gtm.js'
+ });
+ var f = d.getElementsByTagName(s)[0],
+ j = d.createElement(s),
+ dl = l != 'dataLayer' ? '&amp;l=' + l : '';
+ j.async = true;
+ j.src = '//www.googletagmanager.com/gtm.js?id=' + i + dl;
+ f.parentNode.insertBefore(j, f);
+ })(window, document, 'script', 'dataLayer', 'GTM-MZ3SPM');
+
+ (function(w, d, s, l, i) {
+ w[l] = w[l] || [];
+ w[l].push({
+ 'gtm.start': new Date().getTime(),
+ event: 'gtm.js'
+ });
+ var f = d.getElementsByTagName(s)[0],
+ j = d.createElement(s),
+ dl = l != 'dataLayer' ? '&amp;l=' + l : '';
+ j.async = true;
+ j.src =
+ '//www.googletagmanager.com/gtm.js?id=' + i + dl;
+ f.parentNode.insertBefore(j, f);
+ })(window, document, 'script', 'dataLayer', 'GTM-M9S8TF');
+
+ (function(w, d, s, l, i) {
+ w[l] = w[l] || [];
+ w[l].push({
+ 'gtm.start': new Date().getTime(),
+ event: 'gtm.js'
+ });
+ var f = d.getElementsByTagName(s)[0],
+ j = d.createElement(s),
+ dl = l != 'dataLayer' ? '&amp;l=' + l : '';
+ j.async = true;
+ j.src =
+ '//www.googletagmanager.com/gtm.js?id=' + i + dl;
+ f.parentNode.insertBefore(j, f);
+ })(window, document, 'script', 'dataLayer', 'GTM-NDN8FB');
+
+
+
+ (function($, undefined) {
+ $(function() {
+ var _topbar = $('#topbar');
+ _topbar.find('.topbar__logo').on('click', 'a', function() {
+ _gaq.push(['_trackEvent', 'blog-bar', 'click-logo', 'GUEST']);
+ });
+ _topbar.find('#topbar__search').on('submit', function() {
+ _gaq.push(['_trackEvent', 'blog-bar', 'click-search-button', 'GUEST']);
+ });
+ _topbar.find('.topbar__announce').on('click', '.topbar__announce__item', function() {
+ _gaq.push(['_trackEvent', 'blog-bar', 'click-announce', 'GUEST']);
+ });
+
+ _topbar.find('.topbar__notification__counter').on('click', function() {
+ _gaq.push(['_trackEvent', 'blog-bar', 'click-notification-counter', 'GUEST']);
+ });
+ _topbar.find('.topbar__notification__list--header__link').on('click', function() {
+ _gaq.push(['_trackEvent', 'blog-bar', 'click-notification-setting', 'GUEST']);
+ });
+ _topbar.find('.topbar__notification__list--footer__link').on('click', function() {
+ _gaq.push(['_trackEvent', 'blog-bar', 'click-notification-showall', 'GUEST']);
+ });
+
+ _topbar.find('#topbar__user__login').on('click', function() {
+ _gaq.push(['_trackEvent', 'blog-bar', 'click-login', 'GUEST']);
+ });
+
+ _topbar.find('#topbar__user__list__link--blog').on('click', function() {
+ _gaq.push(['_trackEvent', 'blog-bar', 'click-myblog', '']);
+ });
+ _topbar.find('#topbar__user__list__link--articlenew').on('click', function() {
+ _gaq.push(['_trackEvent', 'blog-bar', 'click-articlenew', '']);
+ });
+ _topbar.find('#topbar__user__list__link--panelsite').on('click', function() {
+ _gaq.push(['_trackEvent', 'blog-bar', 'click-panelsite', '']);
+ });
+ _topbar.find('#topbar__user__list__link--panelapp').on('click', function() {
+ _gaq.push(['_trackEvent', 'blog-bar', 'click-panelapp', '']);
+ });
+
+ _topbar.find('#topbar__user__list__link--logout').on('click', function() {
+ _gaq.push(['_trackEvent', 'blog-bar', 'click-logout', '']);
+ });
+ });
+ })(jQuery);
+
+ //--&gt;
+ </script>
+ <div style="display: none" id="comscorekw" data-value="comscorekw=Travel"></div>
+ <!-- Facebook Pixel Code -->
+ <script>
+ ! function(f, b, e, v, n, t, s) {
+ if (f.fbq) return;
+ n = f.fbq = function() {
+ n.callMethod ?
+ n.callMethod.apply(n, arguments) : n.queue.push(arguments)
+ };
+ if (!f._fbq) f._fbq = n;
+ n.push = n;
+ n.loaded = !0;
+ n.version = '2.0';
+ n.queue = [];
+ t = b.createElement(e);
+ t.async = !0;
+ t.src = v;
+ s = b.getElementsByTagName(e)[0];
+ s.parentNode.insertBefore(t, s)
+ }(window,
+ document, 'script', 'https://connect.facebook.net/en_US/fbevents.js');
+
+ fbq('init', '510235355828933');
+ fbq('track', "PageView");
+ </script>
+ <noscript>&lt;img height="1" width="1" style="display:none"
+src="https://www.facebook.com/tr?id=510235355828933&amp;ev=PageView&amp;noscript=1"
+/&gt;</noscript>
+ <!-- End Facebook Pixel Code -->
+ <div id="popup-frame" style="display:none">
+ <div id="frame-dimmer"></div>
+ <div id="frame-box">
+ <div id="frame-border"></div>
+ <div id="frame-header">
+ <h3></h3>
+ <a href="#" class="frame-close" title="關閉視窗"><span>關閉視窗</span></a>
+ </div>
+ <div id="frame-content"></div>
+ </div>
+ </div>
+
+ <script type="text/javascript" src="//s.pixanalytics.com/js/c.js?v=9"></script>
+ <script type="text/javascript">
+ if ('undefined' === typeof window._uCount) {
+ window._uCount = function() {};
+ }
+ </script>
+ <script type="text/javascript">
+ & lt;
+ !--
+ var _type = 'front_blog';
+ _uCount();
+ var _type = 'front_blog_byarticlecategory:28';
+ _uCount();
+ var _type = 'front_blog_bysitecategory:16';
+ _uCount();
+ if (document.location.toString().indexOf('/post/') != -1) {
+ var _type = 'front_blog_post';
+ _uCount();
+ var _type = 'front_blog_post_nonvip';
+ _uCount();
+ }
+
+ if (document.location.toString().indexOf('/search/') != -1) {
+ var _type = 'front_blog_search';
+ _uCount();
+ }
+ //--&gt;
+ </script>
+ <script src="http://referer.pixplug.in/static/r.js?v=b27bf7fe9e1f0fca830e1381a52f804b" type="text/javascript"></script>
+ <script type="text/javascript">
+ & lt;
+ !--
+ _currentPageUsername = 'stevenhgm';
+ _refererCount();
+ //--&gt;
+ </script>
+ <script>
+ var _piq = _piq || [];
+
+ _piq.push(
+ ['setCustomVar', 'venue', 'pixnet'], ['setCustomVar', 'author_id', pix.owner], ['setCustomVar', 'article_category_id', "28"], ['setCustomVar', 'nonce', pix.login_name], ['setCustomVar', 'visitor_id', pix.visitor], ['setCustomVar', 'visitor_openid', pix.openid], ['trackPageView']
+ );
+ (function(d, t, u, f, j) {
+ f = d.getElementsByTagName(t)[0];
+ j = d.createElement(t);
+ j.async = 1;
+ j.src = u;
+ f.parentNode.insertBefore(j, f);
+ })(document, 'script', 'https://s.pixanalytics.com/js/pi.min.js');
+
+ (function($) {
+ $(function() {
+ var _startTime = Math.floor((new Date()).getTime() / 1000),
+ _driveMode = ('none' === $(document.body).data('mobileMode')) ? 'desktop' : 'mobile',
+ _send = false,
+ unload;
+
+ unload = function() {
+ if (_send) {
+ return;
+ }
+
+ var _endTime = Math.floor((new Date()).getTime() / 1000),
+ _isIdleAdClosed = '';
+
+ switch ($.adIdlePopClosed) {
+ case 'hasClosed':
+ _isIdleAdClosed = 'close idle ad';
+ break;
+ case 'neverClosed':
+ _isIdleAdClosed = 'not close idle ad';
+ break;
+ default:
+
+ }
+ _piq.push(['trackEvent', 'article stay time', _isIdleAdClosed, _driveMode, (_endTime - _startTime)]);
+ _send = true;
+ };
+
+ $(window).on({
+ 'beforeunload.idlePI': unload,
+ 'unload.idlePI': unload,
+ 'pagehide.idlePI': unload
+ });
+
+ // #41767
+ $('#pixad1032').on('click', 'a', function() {
+ if ('styleme' === $(this).data('source')) {
+ _piq.push(['trackEvent', 'yahoo 大聯盟導購', '金鑽版位點擊']);
+ }
+ });
+
+ var pixad1032ImpTracking = function() {
+ var container = $('#pixad1032');
+
+ if (0 === container.find('a').length) {
+ setTimeout(pixad1032ImpTracking, 500);
+ return;
+ }
+
+ if ('styleme' == container.find('a').data('source')) {
+ _piq.push(['trackEvent', 'yahoo 大聯盟導購', '金鑽版位曝光']);
+ }
+ };
+ pixad1032ImpTracking();
+ });
+ })(jQuery);
+ </script>
+ <script src="//front.pixfs.net/js/pixinsight.min.js?v=99980588?v=b27bf7fe9e1f0fca830e1381a52f804b"></script>
+
+
+ <!-- Modified: 1486718791 -->
+ <!-- async script -->
+ <script type="text/javascript">
+ & lt;
+ !--
+ jQuery.ajaxSetup({
+ cache: true
+ });
+ jQuery.getScript("//js.pixplug.in/addon/1/production.js?v=1399949830", function(data, textStatus) {
+ jQuery.pixAddonFacebookPushButton({
+ "show_faces": "true",
+ "width": "600",
+ "position": "top",
+ "colorscheme": "light",
+ "addon_username": "stevenhgm",
+ "addon_expired_at": 0,
+ "addon_ismobile": false,
+ "addon_isvip": false,
+ "addon_is_allow_setting": true,
+ "ab_testing_seed": 1232136999
+ });
+ });
+ jQuery.getScript("//js.pixplug.in/addon/76/production.js?v=1383114692", function(data, textStatus) {
+ jQuery.pixArticleSwitcher({
+ "mode": "below-content",
+ "default_css": "on",
+ "color": "black",
+ "addon_username": "stevenhgm",
+ "addon_expired_at": 0,
+ "addon_ismobile": false,
+ "addon_isvip": false,
+ "addon_is_allow_setting": true,
+ "ab_testing_seed": 1232136999
+ });
+ });
+ jQuery.getScript("//js.pixplug.in/addon/96/production.js?v=1380100897", function(data, textStatus) {
+ jQuery.pix0rz({
+ "panel": null,
+ "addon_username": "stevenhgm",
+ "addon_expired_at": 0,
+ "addon_ismobile": false,
+ "addon_isvip": false,
+ "addon_is_allow_setting": true,
+ "ab_testing_seed": 1232136999
+ });
+ });
+ jQuery.ajaxSetup({
+ cache: false
+ });
+ //--&gt;
+ </script>
+
+ <!-- load sync script -->
+ <script src="//js.pixplug.in/addon/84/production.js?v=1386731952" type="text/javascript"></script>
+
+ <!-- execute sync addon -->
+ <script type="text/javascript">
+ jQuery(function($) {
+ $("#content img").lazyload({
+ effect: "fadeIn",
+ placeholder: "http://s.pixfs.net/js/jquery.lazyload/grey.gif"
+ });
+ });
+ </script>
+
+
+
+ <script>
+ pix.stylemeTags = [];
+ </script>
+ <script src="//front.pixfs.net/js/styleme.min.js?v=f0e1deed?v=b27bf7fe9e1f0fca830e1381a52f804b" crossorigin="anonymous"></script>
+
+ <script>
+ (function() {
+ pix.octopusTags = null;
+ if (null === pix.octopusTags || undefined === pix.octopusTags) {
+ return;
+ }
+ for (var i = 0; i & lt; pix.octopusTags.length; i++) {
+ if ('' === pix.octopusTags[i]) {
+ continue;
+ }
+ _piq.push(['trackEvent', 'otopusTag', '', pix.octopusTags[i]]);
+ }
+ })();
+ </script>
+
+
+ <script src="//front.pixfs.net/module/topbar/js/blogtopbar.min.js?v=b27bf7fe9e1f0fca830e1381a52f804b" crossorigin="anonymous"></script>
+
+ <script>
+ var nineyi_group = "X1";
+ var nineyi_keyindex = "0";
+ var nineyi_match = "";
+ var nineyi_id = "pix91_a7fb7b77a05dabae9054b8973856eaea";
+ var nineyi_products = [{
+ "asset": "0104",
+ "image": "http:\/\/pic.pimg.tw\/pixnetvisual\/1446126120-4162329176_s.jpg?v=1446126272",
+ "title": "MissHana\u82b1\u5a1c\u5c0f\u59d0\u5b8c\u7f8e\u7121\u75d5\u4e09\u8272\u906e\u7455\u818f",
+ "oprice": "380",
+ "nprice": "299",
+ "link": "http:\/\/www.86shops.com.tw\/SalePage\/Index\/1256490"
+ }, {
+ "asset": "0138",
+ "image": "http:\/\/pic.pimg.tw\/pixnetvisual\/1446126147-4136062762_s.jpg?v=1446126272",
+ "title": "E\u2027Heart \u4f0a\u5fc3 \u6301\u4e45\u96b1\u5f62\u96d9\u9762\u96d9\u773c\u76ae\u8cbc",
+ "oprice": "348",
+ "nprice": "180",
+ "link": "http:\/\/www.86shops.com.tw\/SalePage\/Index\/344734"
+ }, {
+ "asset": "0143",
+ "image": "http:\/\/pic.pimg.tw\/pixnetvisual\/1446126150-2749437497_s.jpg?v=1446126272",
+ "title": "3CE (3CONCEPT EYES) \u8d85\u986f\u8272\u5507\u818f",
+ "oprice": "499",
+ "nprice": "399",
+ "link": "http:\/\/www.86shops.com.tw\/SalePage\/Index\/1610019"
+ }, {
+ "asset": "0223",
+ "image": "http:\/\/pic.pimg.tw\/pixnetvisual\/1446126232-3103690318_s.jpg?v=1446126273",
+ "title": "ND \u812b\u6bdb\u871c\u881f\/\u9664\u6bdb\u871c\u881f 220g",
+ "oprice": "299",
+ "nprice": "299",
+ "link": "http:\/\/www.86shops.com.tw\/SalePage\/Index\/1035850"
+ }, {
+ "asset": "0160",
+ "image": "http:\/\/pic.pimg.tw\/pixnetvisual\/1446126167-2508883353_s.jpg?v=1446126272",
+ "title": "\u97d3\u570b RiRe \u9ed1\u982d\u7c89\u523a\u6e05\u6f54\u5237 \u4e59\u652f\u5165(\u5167\u9644\u6e05\u6f54\u4e7320mL)",
+ "oprice": "290",
+ "nprice": "290",
+ "link": "http:\/\/www.86shops.com.tw\/SalePage\/Index\/640966"
+ }, {
+ "asset": "0109",
+ "image": "http:\/\/pic.pimg.tw\/pixnetvisual\/1446126124-168867797_s.jpg?v=1446126272",
+ "title": "Miss Hana \u82b1\u5a1c\u5c0f\u59d0 \u6c34\u611f\u63a7\u8272CC\u971c",
+ "oprice": "349",
+ "nprice": "299",
+ "link": "http:\/\/www.86shops.com.tw\/SalePage\/Index\/668815"
+ }];
+ </script>
+ <script id="idleTemplate" type="text/x-jsrender" data-main="//front.pixfs.net/module/idlePop/js/idlePop.min.js?v=b27bf7fe9e1f0fca830e1381a52f804b">
+ &lt;link rel="stylesheet" href="//front.pixfs.net/module/idlePop/css/idlePop.min.css?v=6057ab06?v=b27bf7fe9e1f0fca830e1381a52f804b"&gt; &lt;div class="modal idle-pop" tabindex="-1" role="dialog" aria-describedby="dialog"&gt; &lt;div class="modal-bg"&gt;&lt;/div&gt; &lt;div class="modal-dialog"&gt; &lt;a class="modal-close" data-close="【 關閉 X 】"&gt;&lt;/a&gt; &lt;div class="modal-content"&gt; &lt;div class="modal-header"&gt;本網頁已閒置超過 3 分鐘。請點 &lt;kbd&gt;關閉&lt;/kbd&gt; 或 &lt;kbd&gt;點擊&lt;/kbd&gt;任一空白處,即可回到網頁&lt;/div&gt; &lt;div class="modal-body"&gt; &lt;div class="blogger-info"&gt; &lt;a class="blogger-info__avatar" href="//www.pixnet.net/blog/profile/{{:user.name}}"&gt;&lt;img src="{{:user.avatar}}" alt="{{:user.name}} 的大頭貼"&gt;&lt;/a&gt; &lt;div class="blogger-info__profile"&gt; &lt;div class="blogger-info__row"&gt; &lt;dl&gt; &lt;dt&gt;部落格名稱&lt;/dt&gt; &lt;dd&gt;&lt;a href="{{:blog.link}}"&gt;{{:blog.name}}&lt;/a&gt;&lt;/dd&gt; &lt;/dl&gt; &lt;/div&gt; &lt;div class="blogger-info__row"&gt; &lt;dl&gt; &lt;dt&gt;人氣&lt;/dt&gt; &lt;dd data-unit="人"&gt;{{:blog.hits.total}}&lt;/dd&gt; &lt;dt&gt;好友數&lt;/dt&gt; &lt;dd data-unit="人"&gt;{{:user.friends_count}}&lt;/dd&gt; &lt;dt&gt;文章總數&lt;/dt&gt; &lt;dd data-unit="篇"&gt;{{:blog.articles_count}}&lt;/dd&gt; &lt;/dl&gt; &lt;/div&gt; &lt;div class="blogger-info__row"&gt; &lt;a class="blogger-info__follow" href="http://panel.pixnet.cc/pixfront/addsubspopup?fromuser={{:user.name}}&amp;user={{:user.name}}&amp;popup=1" target="pix_add_sub" data-followers="{{:user.subscribers_count}}"&gt;加入訂閱&lt;/a&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="idle-adsense"&gt; &lt;/div&gt; &lt;div class="idle-related-posts"&gt; {{for posts}} &lt;a class="idle-related-post" href="{{:link}}"&gt; &lt;img src="{{:thumb}}" alt="文章縮圖"&gt; &lt;div class="idle-related-post__detail"&gt; &lt;h4&gt;{{:title}}&lt;/h4&gt; &lt;div class="idle-related-post__desc" data-readmore="繼續閱讀"&gt;{{:body}}&lt;/div&gt; &lt;/div&gt; &lt;/a&gt; {{/for}} &lt;/div&gt; &lt;/div&gt; &lt;div class="modal-footer"&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;
+ </script>
+
+
+ <script src="//front.pixfs.net/js/hide-ad-checker.min.js?v=8e1fb39e?v=b27bf7fe9e1f0fca830e1381a52f804b" crossorigin="anonymous"></script>
+
+
+ <script type="text/javascript" id="">
+ jQuery("div").find(".article a").find(':contains("1314.ws")').length & amp; & amp;
+ dataLayer.push({
+ event: "spam-detected"
+ });
+ </script>
+ <script type="text/javascript" id="">
+ function updateQueryStringParameter(a, b, c) {
+ var d = new RegExp("([?\x26])" + b + "\x3d.*?(\x26|$)", "i"),
+ e = -1 !== a.indexOf("?") ? "\x26" : "?";
+ return a.match(d) ? a.replace(d, "$1" + b + "\x3d" + c + "$2") : a + e + b + "\x3d" + c
+ }
+ jQuery(".article-body").on("click", "a", function() {
+ var a = this.href;
+ 0 & lt; = a.toLowerCase().indexOf("klook.com") & amp; & amp; - 1 == a.toLowerCase().indexOf("aid") ? (a = updateQueryStringParameter(a, "aid", "11"), jQuery(this).attr("href", a), dataLayer.push({
+ event: "genericEvent",
+ eventUA: "UA-65168598-20",
+ eventCategory: "Klook \u7121AID\u9023\u7d50\u8f49\u63db\uff08\u6b63\u78ba\uff09",
+ eventAction: "Click",
+ eventLabel: "http:\/\/stevenhgm.pixnet.net\/blog\/post\/39926056-%e6%96%b0%e7%ab%b9%e5%b0%96%e7%9f%b3_%e7%be%8e%e6%a8%b9%e7%87%9f%e5%9c%b0%e8%b3%9e%e6%a5%93-%282%29",
+ eventNonInteraction: "true"
+ })) : 0 & lt; = a.toLowerCase().indexOf("hotelscombined.com") & amp; & amp; - 1 == a.toLowerCase().indexOf("a_aid") ?
+ (a = updateQueryStringParameter(a, "a_aid", "132653"), a = updateQueryStringParameter(a, "label", "link_replace"), jQuery(this).attr("href", a), dataLayer.push({
+ event: "genericEvent",
+ eventUA: "UA-65168598-1",
+ eventCategory: "HotelsCombined \u7121AID\u9023\u7d50\u8f49\u63db",
+ eventAction: "Click",
+ eventLabel: "http:\/\/stevenhgm.pixnet.net\/blog\/post\/39926056-%e6%96%b0%e7%ab%b9%e5%b0%96%e7%9f%b3_%e7%be%8e%e6%a8%b9%e7%87%9f%e5%9c%b0%e8%b3%9e%e6%a5%93-%282%29",
+ eventNonInteraction: "true"
+ })) : 0 & lt; = a.toLowerCase().indexOf("booking.com") & amp; & amp; - 1 == a.toLowerCase().indexOf("aid") ? (a = updateQueryStringParameter(a, "aid", "835804"), a = updateQueryStringParameter(a,
+ "label", "link_replace"), jQuery(this).attr("href", a), dataLayer.push({
+ event: "genericEvent",
+ eventUA: "UA-65168598-1",
+ eventCategory: "Booking.com \u7121AID\u9023\u7d50\u8f49\u63db",
+ eventAction: "Click",
+ eventLabel: "http:\/\/stevenhgm.pixnet.net\/blog\/post\/39926056-%e6%96%b0%e7%ab%b9%e5%b0%96%e7%9f%b3_%e7%be%8e%e6%a8%b9%e7%87%9f%e5%9c%b0%e8%b3%9e%e6%a5%93-%282%29",
+ eventNonInteraction: "true"
+ })) : 0 & lt; = a.toLowerCase().indexOf("agoda.com") & amp; & amp; - 1 == a.toLowerCase().indexOf("cid") & amp; & amp;
+ (a = updateQueryStringParameter(a, "cid", "1658048"), jQuery(this).attr("href", a), dataLayer.push({
+ event: "genericEvent",
+ eventUA: "UA-65168598-1",
+ eventCategory: "Agoda.com \u7121AID\u9023\u7d50\u8f49\u63db",
+ eventAction: "Click",
+ eventLabel: "http:\/\/stevenhgm.pixnet.net\/blog\/post\/39926056-%e6%96%b0%e7%ab%b9%e5%b0%96%e7%9f%b3_%e7%be%8e%e6%a8%b9%e7%87%9f%e5%9c%b0%e8%b3%9e%e6%a5%93-%282%29",
+ eventNonInteraction: "true"
+ }))
+ });
+ </script>
+ <script type="text/javascript" id="">
+ (function(c) {
+ var a = c(document.body),
+ g = 1 === ~~a.data("in-more-read-button-test1-period"),
+ d = a.data("ab-testing-seed"),
+ h = "yep" === a.data("mobile-mode"),
+ k = 1 === ~~a.data("is-from-fb");
+ a.find("#read-all \x3e a");
+ var b, e, f;
+ g & amp; & amp;
+ 0 === ~~(10 * Math.random()) & amp; & amp;
+ h & amp; & amp;
+ (b = 0 === d % 2 ? "1B" : "1A", b += k ? " \u4f86\u6e90FB" : " \u4f86\u6e90\u975eFB", e = Math.floor((new Date).getTime()), c(window).on("beforeunload", function(a) {
+ f = Math.floor((new Date).getTime());
+ _piq.push(["trackEvent", "more_read_button_article", "article stay time", b, f - e])
+ }),
+ c(function() {
+ _piq.push(["trackEvent", "more_read_button_article", "imps", b]);
+ _piq.push(["trackEvent", "more_read_button_article", "imps-debug-seed", b, d])
+ }))
+ })(jQuery);
+ </script>
+ <script type="text/javascript" id="">
+ var _comscore = _comscore || [];
+ _comscore.push({
+ c1: "2",
+ c2: "14383407",
+ options: {
+ url_append: "comscorekw\x3dTravel"
+ }
+ });
+ (function() {
+ var a = document.createElement("script"),
+ b = document.getElementsByTagName("script")[0];
+ a.async = !0;
+ a.src = ("https:" == document.location.protocol ? "https://sb" : "http://b") + ".scorecardresearch.com/beacon.js";
+ b.parentNode.insertBefore(a, b)
+ })();
+ </script>
+ <div style="display: none" id="comscorekw" data-value="comscorekw=Travel"></div>
+ <noscript>
+ &lt;img src="http://b.scorecardresearch.com/p?c1=2&amp;amp;c2=14383407&amp;amp;cv=2.0&amp;amp;cj=1"&gt;
+</noscript>
+ <img style="visibility: hidden;" src="//tags.bluekai.com/site/27675?id=2DE7B66BC2869D58E462F17202212B81&amp;ret=html&amp;phint=__bk_t%3D%E6%96%B0%E7%AB%B9%E5%B0%96%E7%9F%B3_%E7%BE%8E%E6%A8%B9%E7%87%9F%E5%9C%B0%E8%B3%9E%E6%A5%93%20%282%29%20%40%20%E5%8F%B2%E8%92%82%E6%96%87%E7%9A%84%E5%AE%B6_%E8%97%8D%E5%A4%A9%20%3A%3A%20%E7%97%9E%E5%AE%A2%E9%82%A6%20PIXNET%20%3A%3A&amp;phint=__bk_k%3D%E8%97%8D%E5%A4%A9%E9%83%A8%E8%90%BD%E5%AE%A2%2C%E9%83%A8%E8%90%BD%E5%AE%A2%E8%97%8D%E5%A4%A9%2C%E5%8F%B2%E8%92%82%E6%96%87%E8%97%8D%E5%A4%A9%2C%E5%8F%B2%E8%92%82%E6%96%87%E7%9A%84%E5%AE%B6%2C%E8%97%8D%E5%A4%A9%E5%AE%B6%E6%97%8F%2C%E9%9C%B2%E7%87%9F%E6%97%85%E9%81%8A%2C%E8%97%8D%E5%A4%A9%E7%97%9E%E5%AE%A2%E5%B9%AB%2C%E5%9C%8B%E5%85%A7%E6%97%85%E9%81%8A%2C%E5%B0%96%E7%9F%B3_%E7%BE%8E%E6%A8%B9%E7%87%9F%E5%9C%B0%2C%E6%96%B0%E7%AB%B9%E5%B0%96%E7%9F%B3_%E7%BE%8E%E6%A8%B9%E7%87%9F%E5%9C%B0%E8%B3%9E%E6%A5%93%20%282%29&amp;phint=__bk_l%3Dhttp%3A%2F%2Fstevenhgm.pixnet.net%2Fblog%2Fpost%2F39926056-%25e6%2596%25b0%25e7%25ab%25b9%25e5%25b0%2596%25e7%259f%25b3_%25e7%25be%258e%25e6%25a8%25b9%25e7%2587%259f%25e5%259c%25b0%25e8%25b3%259e%25e6%25a5%2593-%25282%2529&amp;r=96649251" width="0" height="0" />
+ <script src="https://n-cdn.areyouahuman.com/play/ZQp6LCe0OO3LeZB6ES1CZrJvMefQTtT9oZjddBS5?AYAH_P2=2DE7B66BC2869D58E462F17202212B81&amp;AYAH_F1=Lotame" async=""></script><iframe style="position: absolute; overflow: hidden; visibility: hidden; height: 1px; width: 1px; bottom: 1px; left: 1px;" src="http://bcp.crwdcntrl.net/5/c=508/rand=1486718795361/pv=y/rt=ifr"></iframe></body>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-extra-brs/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-extra-brs/expected-images.json
new file mode 100644
index 000000000..0637a088a
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-extra-brs/expected-images.json
@@ -0,0 +1 @@
+[] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-extra-brs/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-extra-brs/expected-metadata.json
new file mode 100644
index 000000000..9a7e3d102
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-extra-brs/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua.",
+ "Image": null,
+ "Title": "Remove trailing brs test",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-extra-brs/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-extra-brs/expected.html
new file mode 100644
index 000000000..e064a49ee
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-extra-brs/expected.html
@@ -0,0 +1,16 @@
+<div>
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua.</p>
+ <p>Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat.</p><p>Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+ </div><div>
+ <p>Tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat.</p>
+ <p>Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-extra-brs/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-extra-brs/source.html
new file mode 100644
index 000000000..ac6ffc793
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-extra-brs/source.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8"/>
+ <title>Remove trailing brs test</title>
+</head>
+<body>
+ <article>
+ <h1>Lorem</h1>
+ <div>
+ <br/>
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua.</p>
+ <br/><br/><p>Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat.</p><br/>
+ <p>Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+ </div>
+ <h2>Foo</h2>
+ <div>
+ <p>Tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat.</p>
+ <p>Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+ </div>
+ </article>
+</body>
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-extra-paragraphs/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-extra-paragraphs/expected-images.json
new file mode 100644
index 000000000..0637a088a
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-extra-paragraphs/expected-images.json
@@ -0,0 +1 @@
+[] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-extra-paragraphs/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-extra-paragraphs/expected-metadata.json
new file mode 100644
index 000000000..2e6f722f5
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-extra-paragraphs/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua.",
+ "Image": null,
+ "Title": "Replace font tags test",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-extra-paragraphs/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-extra-paragraphs/expected.html
new file mode 100644
index 000000000..a7c631809
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-extra-paragraphs/expected.html
@@ -0,0 +1,23 @@
+<div>
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua.</p>
+
+ <p>Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat.</p>
+
+
+ <p>Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+
+ </div><div>
+ <p>Tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat.</p>
+
+ <p>Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-extra-paragraphs/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-extra-paragraphs/source.html
new file mode 100644
index 000000000..339d84b3f
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-extra-paragraphs/source.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8"/>
+ <title>Replace font tags test</title>
+</head>
+<body>
+ <article>
+ <h1>Lorem</h1>
+ <div>
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua.</p>
+ <p></p>
+ <p>Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat.</p>
+ <p></p>
+ <p></p>
+ <p>Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+ <p></p>
+ </div>
+ <h2>Foo</h2>
+ <div>
+ <p>Tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat.</p>
+ <p>
+ </p>
+ <p>Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+ <p>
+
+
+ </p>
+ </div>
+ </article>
+</body>
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-script-tags/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-script-tags/expected-images.json
new file mode 100644
index 000000000..0637a088a
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-script-tags/expected-images.json
@@ -0,0 +1 @@
+[] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-script-tags/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-script-tags/expected-metadata.json
new file mode 100644
index 000000000..13cd351c7
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-script-tags/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua.",
+ "Image": null,
+ "Title": "Remove script tags test",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-script-tags/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-script-tags/expected.html
new file mode 100644
index 000000000..769cc0629
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-script-tags/expected.html
@@ -0,0 +1,19 @@
+<div>
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua.</p>
+ <p>Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat.</p>
+ <p>Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+ </div><div>
+ <p>Tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat.</p>
+ <p>Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur.
+
+ Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-script-tags/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-script-tags/source.html
new file mode 100644
index 000000000..cacb3df7a
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/remove-script-tags/source.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8"/>
+ <title>Remove script tags test</title>
+</head>
+<body>
+ <script type="text/javascript1.8">alert('wrong')</script>
+ <article>
+ <h1>Lorem</h1>
+ <div>
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua.</p>
+ <p>Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat.</p>
+ <script>
+ alert('wrong')
+ </script>
+ <p>Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+ </div>
+ <script type="text/javascript">
+ alert('wrong')
+ </script>
+ <h2>Foo</h2>
+ <div>
+ <p>Tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat.</p>
+ <script type="text/javascript1.8">alert('wrong')</script>
+ <p>Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur.
+ <script type="text/vbscript" language="vbscript">
+ document.write("super wrong.")
+ </script>
+ Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+ </div>
+ </article>
+</body>
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/reordering-paragraphs/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/reordering-paragraphs/expected-images.json
new file mode 100644
index 000000000..0637a088a
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/reordering-paragraphs/expected-images.json
@@ -0,0 +1 @@
+[] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/reordering-paragraphs/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/reordering-paragraphs/expected-metadata.json
new file mode 100644
index 000000000..4878f5da1
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/reordering-paragraphs/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "Regarding item# 11111, under sufficiently extreme conditions, quarks may\n become deconfined and exist as free particles. In the course of asymptotic\n freedom, the strong interaction becomes weaker at higher temperatures.\n Eventually, color confinement would be lost and an extremely hot plasma\n of freely moving quarks and gluons would be formed. This theoretical phase\n of matter is called quark-gluon plasma.[81] The exact conditions needed\n to give rise to this state are unknown and have been the subject of a great\n deal of speculation and experimentation.",
+ "Image": null,
+ "Title": null,
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/reordering-paragraphs/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/reordering-paragraphs/expected.html
new file mode 100644
index 000000000..4a46dd585
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/reordering-paragraphs/expected.html
@@ -0,0 +1,26 @@
+<div>
+ <p id="first">Regarding item# 11111, under sufficiently extreme conditions, quarks may
+ become deconfined and exist as free particles. In the course of asymptotic
+ freedom, the strong interaction becomes weaker at higher temperatures.
+ Eventually, color confinement would be lost and an extremely hot plasma
+ of freely moving quarks and gluons would be formed. This theoretical phase
+ of matter is called quark-gluon plasma.[81] The exact conditions needed
+ to give rise to this state are unknown and have been the subject of a great
+ deal of speculation and experimentation.</p>
+ <p id="second">Regarding item# 22222, under sufficiently extreme conditions, quarks may
+ become deconfined and exist as free particles. In the course of asymptotic
+ freedom, the strong interaction becomes weaker at higher temperatures.
+ Eventually, color confinement would be lost and an extremely hot plasma
+ of freely moving quarks and gluons would be formed. This theoretical phase
+ of matter is called quark-gluon plasma.[81] The exact conditions needed
+ to give rise to this state are unknown and have been the subject of a great
+ deal of speculation and experimentation.</p>
+ <p id="third">Regarding item# 33333, under sufficiently extreme conditions, quarks may
+ become deconfined and exist as free particles. In the course of asymptotic
+ freedom, the strong interaction becomes weaker at higher temperatures.
+ Eventually, color confinement would be lost and an extremely hot plasma
+ of freely moving quarks and gluons would be formed. This theoretical phase
+ of matter is called quark-gluon plasma.[81] The exact conditions needed
+ to give rise to this state are unknown and have been the subject of a great
+ deal of speculation and experimentation.</p>
+ <br id="br2"></br></div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/reordering-paragraphs/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/reordering-paragraphs/source.html
new file mode 100644
index 000000000..d081a9436
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/reordering-paragraphs/source.html
@@ -0,0 +1,34 @@
+<html>
+
+ <head></head>
+
+ <body>
+ <br id="br1"/>
+ <p id="first">Regarding item# 11111, under sufficiently extreme conditions, quarks may
+ become deconfined and exist as free particles. In the course of asymptotic
+ freedom, the strong interaction becomes weaker at higher temperatures.
+ Eventually, color confinement would be lost and an extremely hot plasma
+ of freely moving quarks and gluons would be formed. This theoretical phase
+ of matter is called quark-gluon plasma.[81] The exact conditions needed
+ to give rise to this state are unknown and have been the subject of a great
+ deal of speculation and experimentation.</p>
+ <p id="second">Regarding item# 22222, under sufficiently extreme conditions, quarks may
+ become deconfined and exist as free particles. In the course of asymptotic
+ freedom, the strong interaction becomes weaker at higher temperatures.
+ Eventually, color confinement would be lost and an extremely hot plasma
+ of freely moving quarks and gluons would be formed. This theoretical phase
+ of matter is called quark-gluon plasma.[81] The exact conditions needed
+ to give rise to this state are unknown and have been the subject of a great
+ deal of speculation and experimentation.</p>
+ <p id="third">Regarding item# 33333, under sufficiently extreme conditions, quarks may
+ become deconfined and exist as free particles. In the course of asymptotic
+ freedom, the strong interaction becomes weaker at higher temperatures.
+ Eventually, color confinement would be lost and an extremely hot plasma
+ of freely moving quarks and gluons would be formed. This theoretical phase
+ of matter is called quark-gluon plasma.[81] The exact conditions needed
+ to give rise to this state are unknown and have been the subject of a great
+ deal of speculation and experimentation.</p>
+ <br id="br2"/>
+ </body>
+
+</html> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/replace-brs/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/replace-brs/expected-images.json
new file mode 100644
index 000000000..0637a088a
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/replace-brs/expected-images.json
@@ -0,0 +1 @@
+[] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/replace-brs/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/replace-brs/expected-metadata.json
new file mode 100644
index 000000000..2f31b060c
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/replace-brs/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "Lorem ipsumdolor sit",
+ "Image": null,
+ "Title": "Replace brs test",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/replace-brs/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/replace-brs/expected.html
new file mode 100644
index 000000000..56e36a4bc
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/replace-brs/expected.html
@@ -0,0 +1,14 @@
+<div><p>
+ Lorem ipsum<br></br>dolor sit</p><p>amet, consectetur adipisicing elit, sed do eiusmod<br></br>
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,<br></br>
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo</p><p>
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse<br></br>
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non<br></br>
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p></div><div><p>
+ Tempor</p><p>incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,<br></br>
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo<br></br>
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse</p><p>
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non<br></br>
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p></div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/replace-brs/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/replace-brs/source.html
new file mode 100644
index 000000000..2283d6542
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/replace-brs/source.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8"/>
+ <title>Replace brs test</title>
+</head>
+<body>
+ <article>
+ <h1>Lorem</h1>
+ <div>
+ Lorem ipsum<br/>dolor sit<br/> <br/><br/>amet, consectetur adipisicing elit, sed do eiusmod<br/>
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,<br/>
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo<br/> <br/>
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse<br/>
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non<br/>
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </div>
+ <h2>Foo</h2>
+ <div>
+ Tempor<br/><br/>incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,<br/>
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo<br/>
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse<br/><br/>
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non<br/>
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </div>
+ </article>
+</body>
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/replace-font-tags/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/replace-font-tags/expected-images.json
new file mode 100644
index 000000000..0637a088a
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/replace-font-tags/expected-images.json
@@ -0,0 +1 @@
+[] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/replace-font-tags/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/replace-font-tags/expected-metadata.json
new file mode 100644
index 000000000..18f46ddb8
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/replace-font-tags/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,\n quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo\n consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse\n cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non\n proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
+ "Image": null,
+ "Title": "Replace font tags test",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/replace-font-tags/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/replace-font-tags/expected.html
new file mode 100644
index 000000000..a36b1a252
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/replace-font-tags/expected.html
@@ -0,0 +1,17 @@
+<article>
+ <p><span face="Arial" size="2">Lorem ipsum dolor</span> sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. <span face="Arial" size="2">Duis</span> aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ <h2>Foo</h2>
+ <p>
+ Tempor incididunt ut labore et <span face="Arial" size="2">dolore</span> magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. <span face="Arial" size="2">Excepteur sint occaecat</span> cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ </article> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/replace-font-tags/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/replace-font-tags/source.html
new file mode 100644
index 000000000..5789e5676
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/replace-font-tags/source.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8"/>
+ <title>Replace font tags test</title>
+</head>
+<body>
+ <article>
+ <h1>Lorem</h1>
+ <div>
+ <font face="Arial" size="2">Lorem ipsum dolor</font> sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. <font face="Arial" size="2">Duis</font> aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </div>
+ <h2>Foo</h2>
+ <div>
+ Tempor incididunt ut labore et <font face="Arial" size="2">dolore</font> magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. <font face="Arial" size="2">Excepteur sint occaecat</font> cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </div>
+ </article>
+</body>
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-1/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-1/expected-images.json
new file mode 100644
index 000000000..0637a088a
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-1/expected-images.json
@@ -0,0 +1 @@
+[] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-1/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-1/expected-metadata.json
new file mode 100644
index 000000000..f9613b2bf
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-1/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": "rtl",
+ "Excerpt": "Lorem ipsum dolor sit amet.",
+ "Image": null,
+ "Title": "RTL Test",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-1/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-1/expected.html
new file mode 100644
index 000000000..eba1686e9
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-1/expected.html
@@ -0,0 +1,11 @@
+<div><article>
+ <p>
+ Lorem ipsum dolor sit amet.
+ </p>
+ <p>
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ <p>
+ Tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ </article></div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-1/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-1/source.html
new file mode 100644
index 000000000..597c427ac
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-1/source.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html dir="rtl">
+
+<head>
+ <meta charset="utf-8" />
+ <title>RTL Test</title>
+</head>
+
+<body>
+ <main>
+ <article>
+ <h1>Lorem</h1>
+ <p>
+ Lorem ipsum dolor sit amet.
+ </p>
+ <p>
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ <p>
+ Tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ </article>
+ </main>
+</body>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-2/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-2/expected-images.json
new file mode 100644
index 000000000..0637a088a
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-2/expected-images.json
@@ -0,0 +1 @@
+[] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-2/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-2/expected-metadata.json
new file mode 100644
index 000000000..f9613b2bf
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-2/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": "rtl",
+ "Excerpt": "Lorem ipsum dolor sit amet.",
+ "Image": null,
+ "Title": "RTL Test",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-2/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-2/expected.html
new file mode 100644
index 000000000..eba1686e9
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-2/expected.html
@@ -0,0 +1,11 @@
+<div><article>
+ <p>
+ Lorem ipsum dolor sit amet.
+ </p>
+ <p>
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ <p>
+ Tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ </article></div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-2/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-2/source.html
new file mode 100644
index 000000000..c888309eb
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-2/source.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html dir="ltr">
+
+<head>
+ <meta charset="utf-8" />
+ <title>RTL Test</title>
+</head>
+
+<body dir="rtl">
+ <main>
+ <article>
+ <h1>Lorem</h1>
+ <p>
+ Lorem ipsum dolor sit amet.
+ </p>
+ <p>
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ <p>
+ Tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ </article>
+ </main>
+</body>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-3/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-3/expected-images.json
new file mode 100644
index 000000000..0637a088a
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-3/expected-images.json
@@ -0,0 +1 @@
+[] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-3/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-3/expected-metadata.json
new file mode 100644
index 000000000..f9613b2bf
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-3/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": "rtl",
+ "Excerpt": "Lorem ipsum dolor sit amet.",
+ "Image": null,
+ "Title": "RTL Test",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-3/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-3/expected.html
new file mode 100644
index 000000000..75448882b
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-3/expected.html
@@ -0,0 +1,11 @@
+<div dir="rtl"><article>
+ <p>
+ Lorem ipsum dolor sit amet.
+ </p>
+ <p>
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ <p>
+ Tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ </article></div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-3/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-3/source.html
new file mode 100644
index 000000000..ac68451c7
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-3/source.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+ <meta charset="utf-8" />
+ <title>RTL Test</title>
+</head>
+
+<body>
+ <main dir="rtl">
+ <article>
+ <h1>Lorem</h1>
+ <p>
+ Lorem ipsum dolor sit amet.
+ </p>
+ <p>
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ <p>
+ Tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ </article>
+ </main>
+</body>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-4/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-4/expected-images.json
new file mode 100644
index 000000000..0637a088a
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-4/expected-images.json
@@ -0,0 +1 @@
+[] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-4/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-4/expected-metadata.json
new file mode 100644
index 000000000..c8358d561
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-4/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "Lorem ipsum dolor sit amet.",
+ "Image": null,
+ "Title": "RTL Test",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-4/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-4/expected.html
new file mode 100644
index 000000000..14724e72d
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-4/expected.html
@@ -0,0 +1,11 @@
+<div><article dir="rtl">
+ <p>
+ Lorem ipsum dolor sit amet.
+ </p>
+ <p>
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ <p>
+ Tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ </article></div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-4/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-4/source.html
new file mode 100644
index 000000000..677bca906
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/rtl-4/source.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+ <meta charset="utf-8" />
+ <title>RTL Test</title>
+</head>
+
+<body>
+ <main>
+ <article dir="rtl">
+ <h1>Lorem</h1>
+ <p>
+ Lorem ipsum dolor sit amet.
+ </p>
+ <p>
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ <p>
+ Tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ </article>
+ </main>
+</body>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/salon-1/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/salon-1/expected-images.json
new file mode 100644
index 000000000..f2c796a72
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/salon-1/expected-images.json
@@ -0,0 +1,3 @@
+[
+ "http:\/\/media.salon.com\/2014\/12\/uber_rand_paul.jpg"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/salon-1/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/salon-1/expected-metadata.json
new file mode 100644
index 000000000..63cf935cf
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/salon-1/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "Joanna Rothkopf",
+ "Direction": null,
+ "Excerpt": "Disruptive companies talk a good game about sharing. Uber's really just an under-regulated company making riches",
+ "Image": "http:\/\/media.salon.com\/2014\/12\/uber_rand_paul.jpg",
+ "Title": "The sharing economy is a lie: Uber, Ayn Rand and the truth about tech and libertarians",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/salon-1/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/salon-1/expected.html
new file mode 100644
index 000000000..d1cb60ef1
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/salon-1/expected.html
@@ -0,0 +1,206 @@
+<p>Horror stories about the increasingly unpopular taxi service Uber have
+ been commonplace in recent months, but there is still much to be learned
+ from its handling of the recent hostage drama in downtown Sydney, Australia.
+ We’re told that we reveal our true character in moments of crisis, and
+ apparently that’s as true for companies as it is for individuals.</p><p>A number of experts have challenged the idea that the horrific explosion
+ of violence in a Sydney café was “terrorism,” since the attacker was mentally
+ unbalanced and acted alone. But, terror or not, the ordeal was certainly
+ terrifying. Amid the chaos and uncertainty, the city believed itself to
+ be under a coordinated and deadly attack.</p><p>Uber had an interesting, if predictable, response to the panic and mayhem:
+ It raised prices. A lot.</p><p>In case you missed the story, the facts are these: Someone named Man Haron
+ Monis, who was considered mentally unstable and had been investigated for
+ murdering his ex-wife, seized hostages in a café that was located in Sydney’s
+ Central Business District or “CBD.” In the process he put up an Islamic
+ flag – “igniting,” as <a href="http://www.reuters.com/article/2014/12/15/us-australia-security-idUSKBN0JS0WX20141215">Reuters</a> reported,
+ “fears of a jihadist attack in the heart of the country’s biggest city.”</p><p>In the midst of the fear, Uber stepped in and tweeted this announcement: 
+ <span>“We are all concerned with events in CBD. Fares have increased to encourage
+ more drivers to come online &amp; pick up passengers in the area.”</span>
+ </p><p>As <a href="http://mashable.com/2014/12/14/uber-sydney-surge-pricing/">Mashable </a>reports,
+ the company announced that it would charge a minimum of $100 Australian
+ to take passengers from the area immediately surrounding the ongoing crisis,
+ and prices increased by as much as four times the standard amount. A firestorm
+ of criticism quickly erupted – “<a href="https://twitter.com/Uber_Sydney">@Uber_Sydney</a> stop
+ being assholes,” one Twitter response began – and Uber soon found itself
+ offering free rides out of the troubled area instead.</p><p>That opener suggests that Uber, as part of a community under siege, is
+ preparing to respond in a civic manner.<em></em>
+ </p><p><em>“… Fares have increased to encourage more drivers to come online &amp; pick up passengers in the area.”</em>
+ </p><div data-toggle-group="story-13850779">
+ <p>But, despite the expression of shared concern, there is no sense of <em>civitas</em> to
+ be found in the statement that follows. There is only a transaction, executed
+ at what the corporation believes to be market value. Lesson #1 about Uber
+ is, therefore, that in its view there is no heroism, only self-interest.
+ This is Ayn Rand’s brutal, irrational and primitive philosophy in its purest
+ form: altruism is evil, and self-interest is the only true heroism.<em></em>
+ </p>
+ <p>There was once a time when we might have read of “hero cabdrivers” or
+ “hero bus drivers” placing themselves in harm’s way to rescue their fellow
+ citizens. For its part, Uber might have suggested that it would use its
+ network of drivers and its scheduling software to recruit volunteer drivers
+ for a rescue mission.<em></em>
+ </p>
+ <p>Instead, we are told that Uber’s pricing surge <em>was</em> its expression
+ of concern. Uber’s way to address a human crisis is apparently by letting
+ the market govern human behavior, as if there were (in libertarian economist
+ Tyler Cowen’s phrase) “markets in everything” – including the lives of
+ a city’s beleaguered citizens (and its Uber drivers). <em></em>
+ </p>
+ <p>Where would this kind of market-driven practice leave poor or middle-income
+ citizens in a time of crisis? If they can’t afford the “surged” price,
+ apparently it would leave them squarely in the line of fire. And come to
+ think of it, why would Uber drivers value their lives so cheaply, unless
+ they’re underpaid? <em></em>
+ </p>
+ <p>One of the lessons of Sydney is this: Uber’s philosophy, whether consciously
+ expressed or not, is that life belongs to the highest bidder – and therefore,
+ by implication, the highest bidder’s life has the greatest value. Society,
+ on the other hand, may choose to believe that every life has equal value
+ – or that lifesaving services should be available at affordable prices. <em></em>
+ </p>
+ <p>If nothing else, the Sydney experience should prove once and for all that
+ there is no such thing as “the sharing economy.” Uber is a taxi company,
+ albeit an under-regulated one, and nothing more. It’s certainly not a “ride
+ sharing” service, where someone who happens to be going in the same direction
+ is willing to take along an extra passenger and split gas costs. A ride-sharing
+ service wouldn’t find itself “increasing fares to encourage more drivers”
+ to come into Sydney’s terrorized Central Business District. <em></em>
+ </p>
+ <p>A “sharing economy,” by definition, is lateral in structure. It is a peer-to-peer
+ economy. But Uber, as its name suggests, is hierarchical in structure.
+ It monitors and controls its drivers, demanding that they purchase services
+ from it while guiding their movements and determining their level of earnings.
+ And its pricing mechanisms impose unpredictable costs on its customers,
+ extracting greater amounts whenever the data suggests customers can be
+ compelled to pay them.<em></em>
+ </p>
+ <p>This is a top-down economy, not a “shared” one.<em></em>
+ </p>
+ <p>A number of Uber’s fans and supporters defended the company on the grounds
+ that its “surge prices,” including those seen during the Sydney crisis,
+ are determined by an algorithm. But an algorithm can be an ideological
+ statement, and is always a cultural artifact. As human creations, algorithms
+ reflect their creators. <em></em>
+ </p>
+ <p>Uber’s tweet during the Sydney crisis made it sound as if human intervention,
+ rather than algorithmic processes, caused prices to soar that day. But
+ it doesn’t really matter if that surge was manually or algorithmically
+ driven. Either way the prices were Uber’s doing – and its moral choice.<em></em>
+ </p>
+ <p>Uber has been strenuously defending its surge pricing in the wake of accusations
+ (apparently <a href="http://gothamist.com/2012/11/04/uber.php">justified</a>)
+ that the company enjoyed windfall profits during Hurricane Sandy. It has
+ now promised the state of New York that it will cap its surge prices (at
+ three times the highest rate on two non-emergency days). But if Uber has
+ its way, it will soon enjoy a monopolistic stranglehold on car service
+ rates in most major markets. And it has demonstrated its willingness to
+ ignore rules and regulations. That means<em> </em>predictable and affordable
+ taxi fares could become a thing of the past. <em></em>
+ </p>
+ <p>In practice, surge pricing could become a new, privatized form of taxation
+ on middle-class taxi customers.<em></em>
+ </p>
+ <p>Even without surge pricing, Uber and its supporters are hiding its full
+ costs. When middle-class workers are underpaid or deprived of benefits
+ and full working rights, as Uber’s <a href="http://www.businessinsider.com/uber-drivers-say-theyre-making-less-than-minimum-wage-2014-10">reportedly are</a>,
+ the entire middle-class economy suffers. Overall wages and benefits are
+ suppressed for the majority, while the wealthy few are made even richer.
+ The invisible costs of ventures like Uber are extracted over time, far
+ surpassing whatever short-term savings they may occasionally offer.<em></em>
+ </p>
+ <p>Like Walmart, Uber underpays its employees – many of its drivers <em>are</em> employees,
+ in everything but name – and then drains the social safety net to make
+ up the difference. While Uber preaches libertarianism, it practices a form
+ of corporate welfare. It’s reportedly <a href="http://www.washingtonpost.com/blogs/wonkblog/wp/2014/11/17/why-uber-loves-obamacare/">celebrating Obamacare</a>,
+ for example, since the Affordable Care Act allows it to avoid providing
+ health insurance to its workforce. But the ACA’s subsidies, together with
+ Uber’s often woefully insufficient wages, mean that the rest of us are
+ paying its tab instead. And the lack of income security among Uber’s drivers
+ creates another social cost for Americans – in lost tax revenue, and possibly
+ in increased use of social services. <em></em>
+ </p>
+ <p>The company’s war on regulation will also carry a social price. Uber and
+ its supporters don’t seem to understand that<em> </em>regulations exist
+ for a reason. It’s true that nobody likes excessive bureaucracy, but not
+ all regulations are excessive or onerous. And when they are, it’s a flaw
+ in execution rather than principle. <em></em>
+ </p>
+ <p>Regulations were created because they serve a social purpose, ensuring
+ the free and fair exchange of services and resources among all segments
+ of society. Some services, such as transportation, are of such importance
+ that the public has a vested interest in ensuring they will be readily
+ available at reasonably affordable prices. That’s not unreasonable for
+ taxi services, especially given the fact that they profit from publicly
+ maintained roads and bridges.<em></em>
+ </p>
+ <p>Uber has presented itself as a modernized, efficient alternative to government
+ oversight. But it’s an evasion of regulation, not its replacement. As
+ <a href="http://fusion.net/story/33680/the-inside-story-of-how-the-uber-portland-negotiations-broke-down/">Alexis Madrigal</a>reports, Uber has deliberately ignored city regulators
+ and used customer demand to force its model of inadequate self-governance
+ (my conclusion, not his) onto one city after another.<em></em>
+ </p>
+ <p>Uber presented itself as a refreshing alternative to the over-bureaucratized
+ world of urban transportation. But that’s a false choice. We can streamline
+ sclerotic city regulators, upgrade taxi fleets and even provide users with
+ fancy apps that make it easier to call a cab. The company’s binary presentation
+ – us, or City Hall – frames the debate in artificial terms.<em></em>
+ </p>
+ <p>Uber claims that its driver rating system is a more efficient way to monitor
+ drivers, but that’s an entirely unproven assumption. While taxi drivers
+ have been known to misbehave, the worldwide litany of complaints against
+ Uber drivers – for everything from dirty cars and <a href="http://consumerist.com/2014/07/30/uber-passenger-complains-of-spider-bite-in-filthy-car/">spider bites</a> to
+ <a href="http://www.forbes.com/sites/ellenhuet/2014/09/30/uber-driver-hammer-attack-liability/">assault with a hammer</a>, <a href="http://www.businessinsider.com/uber-nikki-williams-2014-12">fondling</a> and
+ <a href="http://www.businessinsider.com/an-uber-driver-allegedly-raped-a-female-passenger-in-boston-2014-12">rape</a>– suggest that Uber’s system may not work as well as old-fashioned
+ regulation. It’s certainly not noticeably superior.<em></em>
+ </p>
+ <p>In fact, <a href="http://www.huffingtonpost.com/2014/12/09/uber-california-lawsuit_n_6298206.html">prosecutors in San Francisco and Los Angeles</a> say
+ Uber has been lying to its customers about the level and quality of its
+ background checks. The company now promises it will do a better job at
+ screening drivers. But it <a href="http://consumerist.com/2014/12/18/uber-reportedly-revamping-security-wont-say-exactly-what-its-doing/">won’t tell us</a> what
+ measures its taking to improve its safety record, and it’s <a href="http://consumerist.com/2014/12/18/uber-reportedly-revamping-security-wont-say-exactly-what-its-doing/">fighting the kind of driver scrutiny</a> that
+ taxicab companies have been required to enforce for many decades. <em></em>
+ </p>
+ <p>Many reports suggest that beleaguered drivers don’t feel much better about
+ the company than victimized passengers do. They tell <a href="http://qz.com/299655/why-your-uber-driver-hates-uber/">horror stories</a> about
+ the company’s hiring and management practices. Uber <a href="http://www.salon.com/2014/09/03/uber_unrest_drivers_in_los_angeles_protest_the_slashing_of_rates/">unilaterally slashes drivers’ rates</a>,
+ while claiming they don’t need to unionize. (The <a href="http://www.fastcompany.com/3037371/the-teamsters-of-the-21st-century-how-uber-lyft-and-facebook-drivers-are-organizing">Teamsters</a> disagree.) <em></em>
+ </p>
+ <p>The company also pushes<a href="http://thinkprogress.org/economy/2014/11/06/3589715/uber-lending-investigation/"> sketchy, substandard loans</a> onto
+ its drivers – but hey, what could go wrong?<em></em>
+ </p>
+ <p>Uber has many libertarian defenders. And yet, it <a href="http://pando.com/2014/10/29/uber-prs-latest-trick-impersonating-its-drivers-and-trying-to-scam-journalists/">deceives the press</a> and
+ <a href="http://www.slate.com/blogs/the_slatest/2014/11/17/uber_exec_suggests_using_personal_info_against_journalists.html">threatens to spy on journalists</a>, <a href="http://money.cnn.com/2014/08/04/technology/uber-lyft/">lies to its own employees</a>,
+ keeps its practices a secret and routinely invades the privacy of civilians
+ – sometimes merely for entertainment. (It has a tool, with the Orwellian
+ name the “<a href="http://www.forbes.com/sites/kashmirhill/2014/10/03/god-view-uber-allegedly-stalked-users-for-party-goers-viewing-pleasure/">God View</a>,”
+ that it can use for monitoring customers’ personal movements.) <em></em>
+ </p>
+ <p>Aren’t those the kinds of things libertarians say they hate about <em>government</em>?<em></em>
+ </p>
+ <p>This isn’t a “gotcha” exercise. It matters. Uber is the poster child for
+ the pro-privatization, anti-regulatory ideology that ascribes magical powers
+ to technology and the private sector. It is deeply a political entity,
+ from its Nietzschean name to its recent hiring of White House veteran David
+ Plouffe. Uber is built around a relatively simple app (which relies on
+ government-created technology), but it’s not really a tech company. Above
+ all else Uber is an ideological campaign, a neoliberal project whose real
+ products are deregulation and the dismantling of the social contract.<em></em>
+ </p>
+ <p>Or maybe, as that tweeter in Sydney suggested, they’re just assholes.<em></em>
+ </p>
+ <p>Either way, it’s important that Uber’s worldview and business practices
+ not be allowed to “disrupt” our economy or our social fabric. People who
+ work hard deserve to make a decent living. Society at large deserves access
+ to safe and affordable transportation. And government, as the collective
+ expression of a democratic society, has a role to play in protecting its
+ citizens. <em></em>
+ </p>
+ <p>And then there’s the matter of our collective psyche. In her book “A Paradise
+ Built in Hell: The Extraordinary Communities that Arise in Disaster,” Rebecca
+ Solnit wrote of the purpose, meaning and deep satisfaction people find
+ when they pull together to help one another in the face of adversity. 
+ But in the world Uber seeks to create, those surges of the spirit would
+ be replaced by surge pricing.<em></em>
+ </p>
+ <p>You don’t need a “God view” to see what happens next. When heroism is
+ reduced to a transaction, the soul of a society is sold cheap. <em></em>
+ </p>
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/salon-1/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/salon-1/source.html
new file mode 100644
index 000000000..3bfa3fe31
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/salon-1/source.html
@@ -0,0 +1,2513 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#"
+xmlns:fb="http://www.facebook.com/2008/fbml">
+
+ <head profile="http://gmpg.org/xfn/11">
+ <title>The sharing economy is a lie: Uber, Ayn Rand and the truth about tech
+ and libertarians - Salon.com</title>
+ <meta http-equiv="X-UA-Compatible"
+ content="IE=edge"/>
+ <meta http-equiv="X-UA-Compatible" content="chrome=1"/>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ <script type="text/javascript">
+ (window.NREUM||(NREUM={})).loader_config={xpid:"VQIAWVFSGwIDVFZWAAk="};window.NREUM||(NREUM={}),__nr_require=function(t,e,n){function r(n){if(!e[n]){var o=e[n]={exports:{}};t[n][0].call(o.exports,function(e){var o=t[n][1][e];return r(o?o:e)},o,o.exports)}return e[n].exports}if("function"==typeof __nr_require)return __nr_require;for(var o=0;o&lt;n.length;o++)r(n[o]);return r}({QJf3ax:[function(t,e){function n(t){function e(e,n,a){t&&t(e,n,a),a||(a={});for(var c=s(e),f=c.length,u=i(a,o,r),d=0;f>d;d++)c[d].apply(u,n);return u}function a(t,e){f[t]=s(t).concat(e)}function s(t){return f[t]||[]}function c(){return n(e)}var f={};return{on:a,emit:e,create:c,listeners:s,_events:f}}function r(){return{}}var o="nr@context",i=t("gos");e.exports=n()},{gos:"7eSDFh"}],ee:[function(t,e){e.exports=t("QJf3ax")},{}],3:[function(t){function e(t){try{i.console&&console.log(t)}catch(e){}}var n,r=t("ee"),o=t(1),i={};try{n=localStorage.getItem("__nr_flags").split(","),console&&"function"==typeof console.log&&(i.console=!0,-1!==n.indexOf("dev")&&(i.dev=!0),-1!==n.indexOf("nr_dev")&&(i.nrDev=!0))}catch(a){}i.nrDev&&r.on("internal-error",function(t){e(t.stack)}),i.dev&&r.on("fn-err",function(t,n,r){e(r.stack)}),i.dev&&(e("NR AGENT IN DEVELOPMENT MODE"),e("flags: "+o(i,function(t){return t}).join(", ")))},{1:23,ee:"QJf3ax"}],4:[function(t){function e(t,e,n,i,s){try{c?c-=1:r("err",[s||new UncaughtException(t,e,n)])}catch(f){try{r("ierr",[f,(new Date).getTime(),!0])}catch(u){}}return"function"==typeof a?a.apply(this,o(arguments)):!1}function UncaughtException(t,e,n){this.message=t||"Uncaught error with no additional information",this.sourceURL=e,this.line=n}function n(t){r("err",[t,(new Date).getTime()])}var r=t("handle"),o=t(6),i=t("ee"),a=window.onerror,s=!1,c=0;t("loader").features.err=!0,t(4),window.onerror=e;try{throw new Error}catch(f){"stack"in f&&(t(1),t(5),"addEventListener"in window&&t(2),window.XMLHttpRequest&&XMLHttpRequest.prototype&&XMLHttpRequest.prototype.addEventListener&&t(3),s=!0)}i.on("fn-start",function(){s&&(c+=1)}),i.on("fn-err",function(t,e,r){s&&(this.thrown=!0,n(r))}),i.on("fn-end",function(){s&&!this.thrown&&c>0&&(c-=1)}),i.on("internal-error",function(t){r("ierr",[t,(new Date).getTime(),!0])})},{1:10,2:7,3:11,4:3,5:9,6:24,ee:"QJf3ax",handle:"D5DuLP",loader:"G9z0Bl"}],5:[function(t){t("loader").features.ins=!0},{loader:"G9z0Bl"}],6:[function(t){function e(){}if(window.performance&&window.performance.timing&&window.performance.getEntriesByType){var n=t("ee"),r=t("handle"),o=t(1);t("loader").features.stn=!0,t(2),n.on("fn-start",function(t){var e=t[0];e instanceof Event&&(this.bstStart=Date.now())}),n.on("fn-end",function(t,e){var n=t[0];n instanceof Event&&r("bst",[n,e,this.bstStart,Date.now()])}),o.on("fn-start",function(t,e,n){this.bstStart=Date.now(),this.bstType=n}),o.on("fn-end",function(t,e){r("bstTimer",[e,this.bstStart,Date.now(),this.bstType])}),n.on("pushState-start",function(){this.time=Date.now(),this.startPath=location.pathname+location.hash}),n.on("pushState-end",function(){r("bstHist",[location.pathname+location.hash,this.startPath,this.time])}),"addEventListener"in window.performance&&(window.performance.addEventListener("webkitresourcetimingbufferfull",function(){r("bstResource",[window.performance.getEntriesByType("resource")]),window.performance.webkitClearResourceTimings()},!1),window.performance.addEventListener("resourcetimingbufferfull",function(){r("bstResource",[window.performance.getEntriesByType("resource")]),window.performance.clearResourceTimings()},!1)),document.addEventListener("scroll",e,!1),document.addEventListener("keypress",e,!1),document.addEventListener("click",e,!1)}},{1:10,2:8,ee:"QJf3ax",handle:"D5DuLP",loader:"G9z0Bl"}],7:[function(t,e){function n(t){i.inPlace(t,["addEventListener","removeEventListener"],"-",r)}function r(t){return t[1]}var o=(t(1),t("ee").create()),i=t(2)(o),a=t("gos");if(e.exports=o,n(window),"getPrototypeOf"in Object){for(var s=document;s&&!s.hasOwnProperty("addEventListener");)s=Object.getPrototypeOf(s);s&&n(s);for(var c=XMLHttpRequest.prototype;c&&!c.hasOwnProperty("addEventListener");)c=Object.getPrototypeOf(c);c&&n(c)}else XMLHttpRequest.prototype.hasOwnProperty("addEventListener")&&n(XMLHttpRequest.prototype);o.on("addEventListener-start",function(t){if(t[1]){var e=t[1];"function"==typeof e?this.wrapped=t[1]=a(e,"nr@wrapped",function(){return i(e,"fn-",null,e.name||"anonymous")}):"function"==typeof e.handleEvent&&i.inPlace(e,["handleEvent"],"fn-")}}),o.on("removeEventListener-start",function(t){var e=this.wrapped;e&&(t[1]=e)})},{1:24,2:25,ee:"QJf3ax",gos:"7eSDFh"}],8:[function(t,e){var n=(t(2),t("ee").create()),r=t(1)(n);e.exports=n,r.inPlace(window.history,["pushState"],"-")},{1:25,2:24,ee:"QJf3ax"}],9:[function(t,e){var n=(t(2),t("ee").create()),r=t(1)(n);e.exports=n,r.inPlace(window,["requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame"],"raf-"),n.on("raf-start",function(t){t[0]=r(t[0],"fn-")})},{1:25,2:24,ee:"QJf3ax"}],10:[function(t,e){function n(t,e,n){var r=t[0];"string"==typeof r&&(r=new Function(r)),t[0]=o(r,"fn-",null,n)}var r=(t(2),t("ee").create()),o=t(1)(r);e.exports=r,o.inPlace(window,["setTimeout","setInterval","setImmediate"],"setTimer-"),r.on("setTimer-start",n)},{1:25,2:24,ee:"QJf3ax"}],11:[function(t,e){function n(){f.inPlace(this,p,"fn-")}function r(t,e){f.inPlace(e,["onreadystatechange"],"fn-")}function o(t,e){return e}function i(t,e){for(var n in t)e[n]=t[n];return e}var a=t("ee").create(),s=t(1),c=t(2),f=c(a),u=c(s),d=window.XMLHttpRequest,p=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"];e.exports=a,window.XMLHttpRequest=function(t){var e=new d(t);try{a.emit("new-xhr",[],e),u.inPlace(e,["addEventListener","removeEventListener"],"-",function(t,e){return e}),e.addEventListener("readystatechange",n,!1)}catch(r){try{a.emit("internal-error",[r])}catch(o){}}return e},i(d,XMLHttpRequest),XMLHttpRequest.prototype=d.prototype,f.inPlace(XMLHttpRequest.prototype,["open","send"],"-xhr-",o),a.on("send-xhr-start",r),a.on("open-xhr-start",r)},{1:7,2:25,ee:"QJf3ax"}],12:[function(t){function e(t){if("string"==typeof t&&t.length)return t.length;if("object"!=typeof t)return void 0;if("undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer&&t.byteLength)return t.byteLength;if("undefined"!=typeof Blob&&t instanceof Blob&&t.size)return t.size;if("undefined"!=typeof FormData&&t instanceof FormData)return void 0;try{return JSON.stringify(t).length}catch(e){return void 0}}function n(t){var n=this.params,r=this.metrics;if(!this.ended){this.ended=!0;for(var i=0;c>i;i++)t.removeEventListener(s[i],this.listener,!1);if(!n.aborted){if(r.duration=(new Date).getTime()-this.startTime,4===t.readyState){n.status=t.status;var a=t.responseType,f="arraybuffer"===a||"blob"===a||"json"===a?t.response:t.responseText,u=e(f);if(u&&(r.rxSize=u),this.sameOrigin){var d=t.getResponseHeader("X-NewRelic-App-Data");d&&(n.cat=d.split(", ").pop())}}else n.status=0;r.cbTime=this.cbTime,o("xhr",[n,r,this.startTime])}}}function r(t,e){var n=i(e),r=t.params;r.host=n.hostname+":"+n.port,r.pathname=n.pathname,t.sameOrigin=n.sameOrigin}if(window.XMLHttpRequest&&XMLHttpRequest.prototype&&XMLHttpRequest.prototype.addEventListener&&!/CriOS/.test(navigator.userAgent)){t("loader").features.xhr=!0;var o=t("handle"),i=t(2),a=t("ee"),s=["load","error","abort","timeout"],c=s.length,f=t(1);t(4),t(3),a.on("new-xhr",function(){this.totalCbs=0,this.called=0,this.cbTime=0,this.end=n,this.ended=!1,this.xhrGuids={}}),a.on("open-xhr-start",function(t){this.params={method:t[0]},r(this,t[1]),this.metrics={}}),a.on("open-xhr-end",function(t,e){"loader_config"in NREUM&&"xpid"in NREUM.loader_config&&this.sameOrigin&&e.setRequestHeader("X-NewRelic-ID",NREUM.loader_config.xpid)}),a.on("send-xhr-start",function(t,n){var r=this.metrics,o=t[0],i=this;if(r&&o){var f=e(o);f&&(r.txSize=f)}this.startTime=(new Date).getTime(),this.listener=function(t){try{"abort"===t.type&&(i.params.aborted=!0),("load"!==t.type||i.called===i.totalCbs&&(i.onloadCalled||"function"!=typeof n.onload))&&i.end(n)}catch(e){try{a.emit("internal-error",[e])}catch(r){}}};for(var u=0;c>u;u++)n.addEventListener(s[u],this.listener,!1)}),a.on("xhr-cb-time",function(t,e,n){this.cbTime+=t,e?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof n.onload||this.end(n)}),a.on("xhr-load-added",function(t,e){var n=""+f(t)+!!e;this.xhrGuids&&!this.xhrGuids[n]&&(this.xhrGuids[n]=!0,this.totalCbs+=1)}),a.on("xhr-load-removed",function(t,e){var n=""+f(t)+!!e;this.xhrGuids&&this.xhrGuids[n]&&(delete this.xhrGuids[n],this.totalCbs-=1)}),a.on("addEventListener-end",function(t,e){e instanceof XMLHttpRequest&&"load"===t[0]&&a.emit("xhr-load-added",[t[1],t[2]],e)}),a.on("removeEventListener-end",function(t,e){e instanceof XMLHttpRequest&&"load"===t[0]&&a.emit("xhr-load-removed",[t[1],t[2]],e)}),a.on("fn-start",function(t,e,n){e instanceof XMLHttpRequest&&("onload"===n&&(this.onload=!0),("load"===(t[0]&&t[0].type)||this.onload)&&(this.xhrCbStart=(new Date).getTime()))}),a.on("fn-end",function(t,e){this.xhrCbStart&&a.emit("xhr-cb-time",[(new Date).getTime()-this.xhrCbStart,this.onload,e],e)})}},{1:"XL7HBI",2:13,3:11,4:7,ee:"QJf3ax",handle:"D5DuLP",loader:"G9z0Bl"}],13:[function(t,e){e.exports=function(t){var e=document.createElement("a"),n=window.location,r={};e.href=t,r.port=e.port;var o=e.href.split("://");return!r.port&&o[1]&&(r.port=o[1].split("/")[0].split("@").pop().split(":")[1]),r.port&&"0"!==r.port||(r.port="https"===o[0]?"443":"80"),r.hostname=e.hostname||n.hostname,r.pathname=e.pathname,r.protocol=o[0],"/"!==r.pathname.charAt(0)&&(r.pathname="/"+r.pathname),r.sameOrigin=!e.hostname||e.hostname===document.domain&&e.port===n.port&&e.protocol===n.protocol,r}},{}],14:[function(t,e){function n(t){return function(){r(t,[(new Date).getTime()].concat(i(arguments)))}}var r=t("handle"),o=t(1),i=t(2);"undefined"==typeof window.newrelic&&(newrelic=window.NREUM);var a=["setPageViewName","addPageAction","setCustomAttribute","finished","addToTrace","inlineHit","noticeError"];o(a,function(t,e){window.NREUM[e]=n("api-"+e)}),e.exports=window.NREUM},{1:23,2:24,handle:"D5DuLP"}],gos:[function(t,e){e.exports=t("7eSDFh")},{}],"7eSDFh":[function(t,e){function n(t,e,n){if(r.call(t,e))return t[e];var o=n();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(t,e,{value:o,writable:!0,enumerable:!1}),o}catch(i){}return t[e]=o,o}var r=Object.prototype.hasOwnProperty;e.exports=n},{}],D5DuLP:[function(t,e){function n(t,e,n){return r.listeners(t).length?r.emit(t,e,n):(o[t]||(o[t]=[]),void o[t].push(e))}var r=t("ee").create(),o={};e.exports=n,n.ee=r,r.q=o},{ee:"QJf3ax"}],handle:[function(t,e){e.exports=t("D5DuLP")},{}],XL7HBI:[function(t,e){function n(t){var e=typeof t;return!t||"object"!==e&&"function"!==e?-1:t===window?0:i(t,o,function(){return r++})}var r=1,o="nr@id",i=t("gos");e.exports=n},{gos:"7eSDFh"}],id:[function(t,e){e.exports=t("XL7HBI")},{}],loader:[function(t,e){e.exports=t("G9z0Bl")},{}],G9z0Bl:[function(t,e){function n(){var t=l.info=NREUM.info;if(t&&t.licenseKey&&t.applicationID&&f&&f.body){s(h,function(e,n){e in t||(t[e]=n)}),l.proto="https"===p.split(":")[0]||t.sslForHttp?"https://":"http://",a("mark",["onload",i()]);var e=f.createElement("script");e.src=l.proto+t.agent,f.body.appendChild(e)}}function r(){"complete"===f.readyState&&o()}function o(){a("mark",["domContent",i()])}function i(){return(new Date).getTime()}var a=t("handle"),s=t(1),c=(t(2),window),f=c.document,u="addEventListener",d="attachEvent",p=(""+location).split("?")[0],h={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",agent:"js-agent.newrelic.com/nr-593.min.js"},l=e.exports={offset:i(),origin:p,features:{}};f[u]?(f[u]("DOMContentLoaded",o,!1),c[u]("load",n,!1)):(f[d]("onreadystatechange",r),c[d]("onload",n)),a("mark",["firstbyte",i()])},{1:23,2:14,handle:"D5DuLP"}],23:[function(t,e){function n(t,e){var n=[],o="",i=0;for(o in t)r.call(t,o)&&(n[i]=e(o,t[o]),i+=1);return n}var r=Object.prototype.hasOwnProperty;e.exports=n},{}],24:[function(t,e){function n(t,e,n){e||(e=0),"undefined"==typeof n&&(n=t?t.length:0);for(var r=-1,o=n-e||0,i=Array(0>o?0:o);++r&lt;o;)i[r]=t[e+r];return i}e.exports=n},{}],25:[function(t,e){function n(t){return!(t&&"function"==typeof t&&t.apply&&!t[i])}var r=t("ee"),o=t(1),i="nr@wrapper",a=Object.prototype.hasOwnProperty;e.exports=function(t){function e(t,e,r,a){function nrWrapper(){var n,i,s,f;try{i=this,n=o(arguments),s=r&&r(n,i)||{}}catch(d){u([d,"",[n,i,a],s])}c(e+"start",[n,i,a],s);try{return f=t.apply(i,n)}catch(p){throw c(e+"err",[n,i,p],s),p}finally{c(e+"end",[n,i,f],s)}}return n(t)?t:(e||(e=""),nrWrapper[i]=!0,f(t,nrWrapper),nrWrapper)}function s(t,r,o,i){o||(o="");var a,s,c,f="-"===o.charAt(0);for(c=0;c&lt;r.length;c++)s=r[c],a=t[s],n(a)||(t[s]=e(a,f?s+o:o,i,s,t))}function c(e,n,r){try{t.emit(e,n,r)}catch(o){u([o,e,n,r])}}function f(t,e){if(Object.defineProperty&&Object.keys)try{var n=Object.keys(t);return n.forEach(function(n){Object.defineProperty(e,n,{get:function(){return t[n]},set:function(e){return t[n]=e,e}})}),e}catch(r){u([r])}for(var o in t)a.call(t,o)&&(e[o]=t[o]);return e}function u(e){try{t.emit("internal-error",e)}catch(n){}}return t||(t=r),e.inPlace=s,e.flag=i,e}},{1:24,ee:"QJf3ax"}]},{},["G9z0Bl",4,12,6,5]);
+ </script>
+ <meta name="viewport" content="width=660px" initial-scale="1.0"/>
+ <meta name="apple-itunes-app" content="app-id=549374205, app-argument=http://www.salon.com/"/>
+ <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico"/>
+ <link rel="icon" type="image/x-icon" href="/favicon.ico"/>
+ <!-- Optimizely and Adobe DTM JS snippet, hosted by us -->
+ <script src="//media.salon.com/optimizely/698985673.js"></script>
+ <script src="//media.salon.com/Adobe-DTM/adobe-dtm-header.js"></script>
+ <!-- Meta Info from Old Site -->
+ <meta name="title" content="The sharing economy is a lie: Uber, Ayn Rand and the truth about tech and libertarians"/>
+ <meta name="description" content="Disruptive companies talk a good game about sharing. Uber's really just an under-regulated company making riches"/>
+ <meta name="keywords" content="Salon.com, uber, libertarians, Sydney, Editor's Picks, sharing economy"/>
+ <link rel="canonical" href="http://www.salon.com/2015/02/01/the_sharing_economy_is_a_lie_uber_ayn_rand_and_the_truth_about_tech_and_libertarians/"/>
+ <meta property="og:title" content="The sharing economy is a lie: Uber, Ayn Rand and the truth about tech and libertarians"/>
+ <meta property="og:url" content="http://www.salon.com/2015/02/01/the_sharing_economy_is_a_lie_uber_ayn_rand_and_the_truth_about_tech_and_libertarians/"/>
+ <meta property="og:image" content="http://media.salon.com/2014/12/uber_rand_paul.jpg"/>
+ <meta property="og:description" content="Disruptive companies talk a good game about sharing. Uber's really just an under-regulated company making riches"/>
+ <meta property="og:type" content="article"/>
+ <meta property="fb:admins" content="21500228"/>
+ <meta property="fb:app_id" content="114477658586677"/>
+ <link rel="index" title="Salon.com" href="http://www.salon.com/"/>
+ <link rel="alternate" type="application/rss+xml" title="Salon.com RSS Feed"
+ href="http://www.salon.com/feed/"/>
+ <!-- End Meta Info from Old Site -->
+ <link rel="stylesheet" href="/combo/css?fonts/Didot/didot.css&amp;typography.css&amp;resets.css&amp;mainNav.css&amp;top-bar.css&amp;left-sidebars.css&amp;right-sidebars.css&amp;style.css&amp;grid.css&amp;responsive-patch.css&amp;ads.css&amp;livefyre.css&amp;ver=327"/>
+ <script type="text/javascript" src="/combo/js?yui/yui-min.js&amp;oop/oop-min.js&amp;event-custom-base/event-custom-base-min.js&amp;dom-core/dom-core-min.js&amp;dom-base/dom-base-min.js&amp;selector-native/selector-native-min.js&amp;selector/selector-min.js&amp;node-core/node-core-min.js&amp;node-base/node-base-min.js&amp;event-base/event-base-min.js&amp;event-base-ie/event-base-ie-min.js&amp;dom-style-ie/dom-style-ie-min.js&amp;event-delegate/event-delegate-min.js&amp;node-event-delegate/node-event-delegate-min.js&amp;pluginhost-base/pluginhost-base-min.js&amp;pluginhost-config/pluginhost-config-min.js&amp;node-pluginhost/node-pluginhost-min.js&amp;color-base/color-base-min.js&amp;dom-style/dom-style-min.js&amp;dom-screen/dom-screen-min.js&amp;node-screen/node-screen-min.js&amp;node-style/node-style-min.js&amp;slnm/utils/set-browser-css.js&amp;plugins/salon-login/js/salon-user.js&amp;slnm/apps/salon-ads.js&amp;slnm/slnm.js&amp;slnm/modules/salon-modules.js&amp;ver=327"></script>
+ <!--[if lt IE 9]>
+ <script src="//html5shim.googlecode.com/svn/trunk/html5.js"></script>
+ <![endif]-->
+ </head>
+
+ <body>
+ <div data-position-name="oop" class="adPosition hide ad-oop outOfPage"></div>
+ <div data-position-name="extra" class="adPosition hide ad-extra outOfPage"></div>
+ <div data-position-name="spotlight-1" class="adPosition hide ad-spotlight-1 outOfPage"></div>
+ <div data-position-name="spotlight-2" class="adPosition hide ad-spotlight-2 outOfPage"></div>
+ <div data-position-name="promo-1" class="adPosition hide ad-promo-1 outOfPage"></div>
+ <div data-position-name="promo-2" class="adPosition hide ad-promo-2 outOfPage"></div>
+ <div data-position-name="skin" class="adPosition hide ad-skin outOfPage"></div>
+ <div data-position-name="overlay" class="adPosition hide ad-overlay outOfPage"></div>
+ <!-- postition interstitial not known -->
+ <div class="header-wrap">
+ <header class="dark">
+ <div class="row menu-wrap">
+ <div class="menuButton sprite menu-icon hideOnDesktop left" data-yab-app="slide-out"
+ data-slide-out-id="mainMenu"></div>
+ <h1>
+ <a href="/" class="sprite salon-logo-slim">
+ Salon
+ </a>
+ </h1>
+
+ <ul class="mobileSocial hideOnDesktop">
+ <li class="shareButton twitter count" data-service="twitterFollowers"
+ data-screen-name="salon"> <a class="sprite twitter-white-22" href="http://www.twitter.com/salon"></a>
+
+ </li>
+ <li class="shareButton fb count" data-service="facebookFollowers" data-screen-name="salon"> <a class="sprite facebook-white-22" href="http://www.facebook.com/salon"></a>
+
+ </li>
+ </ul>
+ <div class="ie8-header">
+ <img src="/content/themes/salon/css/images/header-ie8.png" width="980"
+ border="0" usemap="#ie8-header-map"/>
+ <map id="ie8-header-map" name="ie8-header-map">
+ <area shape="rect" coords="142,136,250,224" alt="" title="" href="/"/>
+ <area shape="rect" coords="0,0,200,57" alt="" title="" href="/"/>
+ <area shape="rect" coords="199,0,256,58" alt="" title="" href="/category/news/"/>
+ <area shape="rect" coords="255,0,329,58" alt="" title="" href="/category/politics/"/>
+ <area shape="rect" coords="328,0,453,58" alt="" title="" href="/category/entertainment/"/>
+ <area shape="rect" coords="453,0,496,58" alt="" title="" href="/category/life/"/>
+ <area shape="rect" coords="495,0,544,58" alt="" title="" href="/category/technology/"/>
+ <area shape="rect" coords="543,0,625,58" alt="" title="" href="/category/business/"/>
+ <area shape="rect" coords="624,0,751,58" alt="" title="" href="/category/sustainability/"/>
+ <area shape="rect" coords="750,0,803,58" alt="" title="" href="/search/"/>
+ <area shape="rect" coords="802,0,843,58" alt="" title="" href="https://www.facebook.com/salon"/>
+ <area shape="rect" coords="843,0,878,58" alt="" title="" href="https://twitter.com/salon"/>
+ </map>
+ </div>
+ </div>
+ </header>
+ </div>
+ <div class="nav-wrap">
+ <nav class="slide-out mainMenu">
+ <div class="row"> <a class="logo-click left desktopOnly gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;logo&quot;]"
+ href="/">
+ </a>
+
+ <div class="search hideOnDesktop">
+ <form action="/search/">
+ <input type="text" name="q" placeholder="Enter search term"/>
+ <input class="override" type="submit" value="search"/>
+ </form>
+ </div>
+ <ul class="sections inline-list left p-left-1">
+ <li class="hideOnDesktop"> <a href="/">Home</a>
+
+ </li>
+ <li class="news flyout-wrap"> <a class="not-b text-small text-caps gaTrackLinkEvent" href="http://www.salon.com/category/news/"
+ data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;News&quot;]">
+ News </a>
+
+ <ul class="nav first flyout">
+ <li class="arrow-box top light p-4 p-top-2 text-left">
+ <h2 class="text-huge m-bottom-1 text-fancy">
+ news </h2>
+
+ <ul class="inline-list stroke-bottom p-bottom-1 text-caps text-small b">
+ <li> <a href="http://www.salon.com/topic/education/" class="gaTrackLinkEvent text-highlight"
+ data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;education&quot;]">
+ Education </a>
+
+ </li>
+ <li> <a href="http://www.salon.com/topic/labor/" class="gaTrackLinkEvent text-highlight"
+ data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;labor&quot;]">
+ Labor </a>
+
+ </li>
+ <li> <a href="http://www.salon.com/topic/health_care_2/" class="gaTrackLinkEvent text-highlight"
+ data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;health care&quot;]">
+ Health Care </a>
+
+ </li>
+ <li> <a href="http://www.salon.com/topic/reproductive_rights/" class="gaTrackLinkEvent text-highlight"
+ data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;reproductive rights&quot;]">
+ Reproductive Rights </a>
+
+ </li>
+ </ul>
+ <div class="smr-widget p-top-2">
+ <ul>
+ <li class="smr-post"> <a href="http://www.salon.com/2015/03/17/the_best_twitter_responses_to_starbucks_ill_considered_racetogether_campaign/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="Starbucks' cringe-inducing #RaceTogether campaign has caused a Twitter firestorm">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/race_together-90x60.jpg"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/race_together-300x200.jpg"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2015/03/17/the_best_twitter_responses_to_starbucks_ill_considered_racetogether_campaign/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="Starbucks' cringe-inducing #RaceTogether campaign has caused a Twitter firestorm">
+ Starbucks' cringe-inducing #RaceTogether campaign has caused a Twitter firestorm
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/joanna_rothkopf/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Joanna Rothkopf&quot;]">Joanna Rothkopf</a>
+ </span>
+
+ </div>
+ </li>
+ <li class="smr-post"> <a href="http://www.salon.com/2015/03/17/ashley_judd_pressing_charges_against_misogynist_trolls_who_threatened_her_over_sports/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="Ashley Judd pressing charges against misogynist trolls who threatened her over sports">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2012/12/ashley_judd_rect-90x60.jpg"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2012/12/ashley_judd_rect-300x200.jpg"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2015/03/17/ashley_judd_pressing_charges_against_misogynist_trolls_who_threatened_her_over_sports/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="Ashley Judd pressing charges against misogynist trolls who threatened her over sports">
+ Ashley Judd pressing charges against misogynist trolls who threatened her over sports
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/jenny_kutner/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Jenny Kutner&quot;]">Jenny Kutner</a>
+ </span>
+
+ </div>
+ </li>
+ <li class="smr-post"> <a href="http://www.salon.com/2015/03/17/republicans_are_getting_worse_barney_frank_unloads_on_gop_bigotry_and_obamas_mistakes/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="&quot;Republicans are getting worse&quot;: Barney Frank unloads on GOP bigotry -- and Obama's mistakes">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2013/08/barney_frank-90x60.jpg"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2013/08/barney_frank-300x200.jpg"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2015/03/17/republicans_are_getting_worse_barney_frank_unloads_on_gop_bigotry_and_obamas_mistakes/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="&quot;Republicans are getting worse&quot;: Barney Frank unloads on GOP bigotry -- and Obama's mistakes">
+ "Republicans are getting worse": Barney Frank unloads on GOP bigotry -- and Obama's mistakes
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/elias_isquith/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Elias Isquith&quot;]">Elias Isquith</a>
+ </span>
+
+ </div>
+ </li>
+ </ul>
+ </div>
+ </li>
+ </ul>
+ </li>
+ <li class="politics flyout-wrap"> <a class="not-b text-small text-caps gaTrackLinkEvent" href="http://www.salon.com/category/politics/"
+ data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;Politics&quot;]">
+ Politics </a>
+
+ <ul class="nav first flyout">
+ <li class="arrow-box top light p-4 p-top-2 text-left">
+ <h2 class="text-huge m-bottom-1 text-fancy">
+ politics </h2>
+
+ <ul class="inline-list stroke-bottom p-bottom-1 text-caps text-small b">
+ <li> <a href="http://www.salon.com/topic/2014_elections/" class="gaTrackLinkEvent text-highlight"
+ data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;2014 elections&quot;]">
+ 2014 elections </a>
+
+ </li>
+ <li> <a href="http://www.salon.com/topic/obamacare/" class="gaTrackLinkEvent text-highlight"
+ data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;obamacare&quot;]">
+ Obamacare </a>
+
+ </li>
+ <li> <a href="http://www.salon.com/topic/the_right/" class="gaTrackLinkEvent text-highlight"
+ data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;the right&quot;]">
+ The Right </a>
+
+ </li>
+ <li> <a href="http://www.salon.com/topic/2016_elections/" class="gaTrackLinkEvent text-highlight"
+ data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;2016 elections&quot;]">
+ 2016 Elections </a>
+
+ </li>
+ </ul>
+ <div class="smr-widget p-top-2">
+ <ul>
+ <li class="smr-post"> <a href="http://www.salon.com/2015/03/17/republicans_are_getting_worse_barney_frank_unloads_on_gop_bigotry_and_obamas_mistakes/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="&quot;Republicans are getting worse&quot;: Barney Frank unloads on GOP bigotry -- and Obama's mistakes">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2013/08/barney_frank-90x60.jpg"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2013/08/barney_frank-300x200.jpg"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2015/03/17/republicans_are_getting_worse_barney_frank_unloads_on_gop_bigotry_and_obamas_mistakes/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="&quot;Republicans are getting worse&quot;: Barney Frank unloads on GOP bigotry -- and Obama's mistakes">
+ "Republicans are getting worse": Barney Frank unloads on GOP bigotry -- and Obama's mistakes
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/elias_isquith/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Elias Isquith&quot;]">Elias Isquith</a>
+ </span>
+
+ </div>
+ </li>
+ <li class="smr-post"> <a href="http://www.salon.com/2015/03/15/the_democratic_party_is_facing_a_catholic_apocalypse/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="The Democratic Party is facing a Catholic apocalypse">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/pope_francis_jfk-90x60.jpg"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/pope_francis_jfk-300x200.jpg"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2015/03/15/the_democratic_party_is_facing_a_catholic_apocalypse/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="The Democratic Party is facing a Catholic apocalypse">
+ The Democratic Party is facing a Catholic apocalypse
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/patricia_miller/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Patricia Miller&quot;]">Patricia Miller</a>
+ </span>
+
+ </div>
+ </li>
+ <li class="smr-post"> <a href="http://www.salon.com/2015/03/16/rahm_emanuels_achilles_heel_6_reasons_he_may_lose_his_reelection/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="Rahm Emanuel's Achilles' heel: 6 reasons he may lose his reelection ">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/rahm_emanuel3-90x60.jpg"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/rahm_emanuel3-300x200.jpg"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2015/03/16/rahm_emanuels_achilles_heel_6_reasons_he_may_lose_his_reelection/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="Rahm Emanuel's Achilles' heel: 6 reasons he may lose his reelection ">
+ Rahm Emanuel's Achilles' heel: 6 reasons he may lose his reelection
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/carl_gibson/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Carl Gibson&quot;]">Carl Gibson</a>
+ </span>
+
+ </div>
+ </li>
+ </ul>
+ </div>
+ </li>
+ </ul>
+ </li>
+ <li class="entertainment flyout-wrap"> <a class="not-b text-small text-caps gaTrackLinkEvent" href="http://www.salon.com/category/entertainment/"
+ data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;Entertainment&quot;]">
+ Entertainment </a>
+
+ <ul class="nav first flyout">
+ <li class="arrow-box top light p-4 p-top-2 text-left">
+ <h2 class="text-huge m-bottom-1 text-fancy">
+ entertainment </h2>
+
+ <ul class="inline-list stroke-bottom p-bottom-1 text-caps text-small b">
+ <li> <a href="http://www.salon.com/topic/books/" class="gaTrackLinkEvent text-highlight"
+ data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;books&quot;]">
+ Books </a>
+
+ </li>
+ <li> <a href="http://www.salon.com/topic/movies/" class="gaTrackLinkEvent text-highlight"
+ data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;movies&quot;]">
+ Movies </a>
+
+ </li>
+ <li> <a href="http://www.salon.com/topic/music/" class="gaTrackLinkEvent text-highlight"
+ data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;music&quot;]">
+ Music </a>
+
+ </li>
+ <li> <a href="http://www.salon.com/topic/tv/" class="gaTrackLinkEvent text-highlight"
+ data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;tv&quot;]">
+ TV </a>
+
+ </li>
+ </ul>
+ <div class="smr-widget p-top-2">
+ <ul>
+ <li class="smr-post"> <a href="http://www.salon.com/2015/03/16/the_worst_song_of_2015_is_here_meghan_trainors_dear_future_husband/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="The worst song of 2015 is here: Meghan Trainor's &quot;Dear Future Husband&quot;">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/trainor3-90x60.jpg"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/trainor3-300x200.jpg"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2015/03/16/the_worst_song_of_2015_is_here_meghan_trainors_dear_future_husband/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="The worst song of 2015 is here: Meghan Trainor's &quot;Dear Future Husband&quot;">
+ The worst song of 2015 is here: Meghan Trainor's "Dear Future Husband"
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/anna_silman/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Anna Silman&quot;]">Anna Silman</a>
+ </span>
+
+ </div>
+ </li>
+ <li class="smr-post"> <a href="http://www.salon.com/2015/03/17/ashley_judd_pressing_charges_against_misogynist_trolls_who_threatened_her_over_sports/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="Ashley Judd pressing charges against misogynist trolls who threatened her over sports">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2012/12/ashley_judd_rect-90x60.jpg"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2012/12/ashley_judd_rect-300x200.jpg"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2015/03/17/ashley_judd_pressing_charges_against_misogynist_trolls_who_threatened_her_over_sports/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="Ashley Judd pressing charges against misogynist trolls who threatened her over sports">
+ Ashley Judd pressing charges against misogynist trolls who threatened her over sports
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/jenny_kutner/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Jenny Kutner&quot;]">Jenny Kutner</a>
+ </span>
+
+ </div>
+ </li>
+ <li class="smr-post"> <a href="http://www.salon.com/2015/03/15/when_buddhism_goes_bad_how_a_yoga_and_meditation_retreat_turned_cult_like_and_deadly/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="When Buddhism goes bad: How a yoga and meditation retreat turned cult-like and deadly">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/roach_mcnally-90x60.jpg"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/roach_mcnally-300x200.jpg"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2015/03/15/when_buddhism_goes_bad_how_a_yoga_and_meditation_retreat_turned_cult_like_and_deadly/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="When Buddhism goes bad: How a yoga and meditation retreat turned cult-like and deadly">
+ When Buddhism goes bad: How a yoga and meditation retreat turned cult-like and deadly
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/laura_miller/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Laura Miller&quot;]">Laura Miller</a>
+ </span>
+
+ </div>
+ </li>
+ </ul>
+ </div>
+ </li>
+ </ul>
+ </li>
+ <li class="life flyout-wrap"> <a class="not-b text-small text-caps gaTrackLinkEvent" href="http://www.salon.com/category/life/"
+ data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;Life&quot;]">
+ Life </a>
+
+ <ul class="nav first flyout">
+ <li class="arrow-box top light p-4 p-top-2 text-left">
+ <h2 class="text-huge m-bottom-1 text-fancy">
+ life </h2>
+
+ <ul class="inline-list stroke-bottom p-bottom-1 text-caps text-small b">
+ <li> <a href="http://www.salon.com/topic/life_stories/" class="gaTrackLinkEvent text-highlight"
+ data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;life stories&quot;]">
+ Life Stories </a>
+
+ </li>
+ <li> <a href="http://www.salon.com/topic/love_and_sex/" class="gaTrackLinkEvent text-highlight"
+ data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;love &amp; sex&quot;]">
+ Love &amp; Sex </a>
+
+ </li>
+ <li> <a href="http://www.salon.com/topic/parenting/" class="gaTrackLinkEvent text-highlight"
+ data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;parenting&quot;]">
+ Parenting </a>
+
+ </li>
+ </ul>
+ <div class="smr-widget p-top-2">
+ <ul>
+ <li class="smr-post"> <a href="http://www.salon.com/2015/03/16/my_shucking_and_jiving_years_i_was_the_black_guy_in_a_white_frat/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="I was the black guy in a white frat">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/kasai_rex4-90x60.jpg"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/kasai_rex4-300x200.jpg"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2015/03/16/my_shucking_and_jiving_years_i_was_the_black_guy_in_a_white_frat/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="I was the black guy in a white frat">
+ I was the black guy in a white frat
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/kasai_rex/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Kasai Rex&quot;]">Kasai Rex</a>
+ </span>
+
+ </div>
+ </li>
+ <li class="smr-post"> <a href="http://www.salon.com/2015/03/16/the_year_long_open_marriage_experiment_what_this_woman_learned_could_save_your_sex_life/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="The year-long open marriage experiment: What this woman learned could save your sex life">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/robin_rinaldi-90x60.jpg"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/robin_rinaldi-300x200.jpg"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2015/03/16/the_year_long_open_marriage_experiment_what_this_woman_learned_could_save_your_sex_life/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="The year-long open marriage experiment: What this woman learned could save your sex life">
+ The year-long open marriage experiment: What this woman learned could save your sex life
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/tracy_clark_flory/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Tracy Clark-Flory&quot;]">Tracy Clark-Flory</a>
+ </span>
+
+ </div>
+ </li>
+ <li class="smr-post"> <a href="http://www.salon.com/2015/03/17/the_best_twitter_responses_to_starbucks_ill_considered_racetogether_campaign/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="Starbucks' cringe-inducing #RaceTogether campaign has caused a Twitter firestorm">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/race_together-90x60.jpg"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/race_together-300x200.jpg"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2015/03/17/the_best_twitter_responses_to_starbucks_ill_considered_racetogether_campaign/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="Starbucks' cringe-inducing #RaceTogether campaign has caused a Twitter firestorm">
+ Starbucks' cringe-inducing #RaceTogether campaign has caused a Twitter firestorm
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/joanna_rothkopf/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Joanna Rothkopf&quot;]">Joanna Rothkopf</a>
+ </span>
+
+ </div>
+ </li>
+ </ul>
+ </div>
+ </li>
+ </ul>
+ </li>
+ <li class="tech flyout-wrap"> <a class="not-b text-small text-caps gaTrackLinkEvent" href="http://www.salon.com/category/technology/"
+ data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;Tech&quot;]">
+ Tech </a>
+
+ <ul class="nav first flyout">
+ <li class="arrow-box top light p-4 p-top-2 text-left">
+ <h2 class="text-huge m-bottom-1 text-fancy">
+ tech </h2>
+
+ <ul class="inline-list stroke-bottom p-bottom-1 text-caps text-small b">
+ <li> <a href="http://www.salon.com/topic/privacy/" class="gaTrackLinkEvent text-highlight"
+ data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;privacy&quot;]">
+ Privacy </a>
+
+ </li>
+ <li> <a href="http://www.salon.com/topic/social_media/" class="gaTrackLinkEvent text-highlight"
+ data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;social media&quot;]">
+ Social Media </a>
+
+ </li>
+ <li> <a href="http://www.salon.com/topic/gadgets/" class="gaTrackLinkEvent text-highlight"
+ data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;gadgets&quot;]">
+ Gadgets </a>
+
+ </li>
+ <li> <a href="http://www.salon.com/topic/drones/" class="gaTrackLinkEvent text-highlight"
+ data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;drones&quot;]">
+ Drones </a>
+
+ </li>
+ </ul>
+ <div class="smr-widget p-top-2">
+ <ul>
+ <li class="smr-post"> <a href="http://www.salon.com/2015/03/17/ashley_judd_pressing_charges_against_misogynist_trolls_who_threatened_her_over_sports/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="Ashley Judd pressing charges against misogynist trolls who threatened her over sports">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2012/12/ashley_judd_rect-90x60.jpg"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2012/12/ashley_judd_rect-300x200.jpg"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2015/03/17/ashley_judd_pressing_charges_against_misogynist_trolls_who_threatened_her_over_sports/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="Ashley Judd pressing charges against misogynist trolls who threatened her over sports">
+ Ashley Judd pressing charges against misogynist trolls who threatened her over sports
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/jenny_kutner/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Jenny Kutner&quot;]">Jenny Kutner</a>
+ </span>
+
+ </div>
+ </li>
+ <li class="smr-post"> <a href="http://www.salon.com/2015/03/16/facebook_still_wont_free_the_nipple_but_its_cracking_down_on_revenge_porn/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="Facebook still won't free the nipple -- but it's cracking down on revenge porn">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2014/11/facebook-privacy-policy.jpeg-90x60.jpg"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2014/11/facebook-privacy-policy.jpeg-300x200.jpg"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2015/03/16/facebook_still_wont_free_the_nipple_but_its_cracking_down_on_revenge_porn/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="Facebook still won't free the nipple -- but it's cracking down on revenge porn">
+ Facebook still won't free the nipple -- but it's cracking down on revenge porn
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/jenny_kutner/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Jenny Kutner&quot;]">Jenny Kutner</a>
+ </span>
+
+ </div>
+ </li>
+ <li class="smr-post"> <a href="http://www.salon.com/2015/03/16/welcome_to_libertarian_island_how_silicon_valley_billionaires_are_creating_a_capitalist_nightmare/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="Welcome to &quot;Libertarian Island&quot;: How these One Percenters are creating a dystopian nightmare">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/rand_thiel_paul-90x60.jpg"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/rand_thiel_paul-300x200.jpg"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2015/03/16/welcome_to_libertarian_island_how_silicon_valley_billionaires_are_creating_a_capitalist_nightmare/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="Welcome to &quot;Libertarian Island&quot;: How these One Percenters are creating a dystopian nightmare">
+ Welcome to "Libertarian Island": How these One Percenters are creating a dystopian nightmare
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/conor_lynch/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Conor Lynch&quot;]">Conor Lynch</a>
+ </span>
+
+ </div>
+ </li>
+ </ul>
+ </div>
+ </li>
+ </ul>
+ </li>
+ <li class="business flyout-wrap"> <a class="not-b text-small text-caps gaTrackLinkEvent" href="http://www.salon.com/category/business/"
+ data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;Business&quot;]">
+ Business </a>
+
+ <ul class="nav first flyout">
+ <li class="arrow-box top light p-4 p-top-2 text-left">
+ <h2 class="text-huge m-bottom-1 text-fancy">
+ business </h2>
+
+ <ul class="inline-list stroke-bottom p-bottom-1 text-caps text-small b">
+ <li> <a href="http://www.salon.com/topic/wall_street/" class="gaTrackLinkEvent text-highlight"
+ data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;wall street&quot;]">
+ Wall Street </a>
+
+ </li>
+ <li> <a href="http://www.salon.com/topic/finance/" class="gaTrackLinkEvent text-highlight"
+ data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;finance&quot;]">
+ Finance </a>
+
+ </li>
+ <li> <a href="http://www.salon.com/topic/labor/" class="gaTrackLinkEvent text-highlight"
+ data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;labor&quot;]">
+ Labor </a>
+
+ </li>
+ </ul>
+ <div class="smr-widget p-top-2">
+ <ul>
+ <li class="smr-post"> <a href="http://www.salon.com/2015/03/16/welcome_to_libertarian_island_how_silicon_valley_billionaires_are_creating_a_capitalist_nightmare/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="Welcome to &quot;Libertarian Island&quot;: How these One Percenters are creating a dystopian nightmare">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/rand_thiel_paul-90x60.jpg"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/rand_thiel_paul-300x200.jpg"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2015/03/16/welcome_to_libertarian_island_how_silicon_valley_billionaires_are_creating_a_capitalist_nightmare/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="Welcome to &quot;Libertarian Island&quot;: How these One Percenters are creating a dystopian nightmare">
+ Welcome to "Libertarian Island": How these One Percenters are creating a dystopian nightmare
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/conor_lynch/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Conor Lynch&quot;]">Conor Lynch</a>
+ </span>
+
+ </div>
+ </li>
+ <li class="smr-post"> <a href="http://www.salon.com/2015/03/15/my_kids_were_embarrassed_that_their_dad_worked_at_target_my_american_economy_nightmare/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="&quot;My kids were embarrassed that their dad worked at Target&quot;: My American economy nightmare">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2014/12/torn_us_flag-90x60.jpg"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2014/12/torn_us_flag-300x200.jpg"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2015/03/15/my_kids_were_embarrassed_that_their_dad_worked_at_target_my_american_economy_nightmare/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="&quot;My kids were embarrassed that their dad worked at Target&quot;: My American economy nightmare">
+ "My kids were embarrassed that their dad worked at Target": My American economy nightmare
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/joseph_coleman/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Joseph Coleman&quot;]">Joseph Coleman</a>
+ </span>
+
+ </div>
+ </li>
+ <li class="smr-post"> <a href="http://www.salon.com/2015/03/17/robert_reich_economic_redistribution_is_our_only_hope_partner/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="Robert Reich: Economic redistribution is our only hope">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2014/01/robert_reich-90x60.jpg"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2014/01/robert_reich-300x200.jpg"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2015/03/17/robert_reich_economic_redistribution_is_our_only_hope_partner/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="Robert Reich: Economic redistribution is our only hope">
+ Robert Reich: Economic redistribution is our only hope
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/robert_reich/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Robert Reich&quot;]">Robert Reich</a>, ROBERTREICH.org
+ </span>
+
+ </div>
+ </li>
+ </ul>
+ </div>
+ </li>
+ </ul>
+ </li>
+ <li class="sustainability flyout-wrap"> <a class="not-b text-small text-caps gaTrackLinkEvent" href="http://www.salon.com/category/sustainability/"
+ data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;Sustainability&quot;]">
+ Sustainability </a>
+
+ <ul class="nav first flyout">
+ <li class="arrow-box top light p-4 p-top-2 text-left">
+ <h2 class="text-huge m-bottom-1 text-fancy">
+ sustainability </h2>
+
+ <ul class="inline-list stroke-bottom p-bottom-1 text-caps text-small b">
+ <li> <a href="http://www.salon.com/topic/climate_change/" class="gaTrackLinkEvent text-highlight"
+ data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;climate change&quot;]">
+ Climate Change </a>
+
+ </li>
+ <li> <a href="http://www.salon.com/topic/dream_city/" class="gaTrackLinkEvent text-highlight"
+ data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;dream city&quot;]">
+ Dream City </a>
+
+ </li>
+ <li> <a href="http://www.salon.com/topic/organic_food/" class="gaTrackLinkEvent text-highlight"
+ data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;organic food&quot;]">
+ organic food </a>
+
+ </li>
+ </ul>
+ <div class="smr-widget p-top-2">
+ <ul>
+ <li class="smr-post"> <a href="http://www.salon.com/2015/03/17/the_best_twitter_responses_to_starbucks_ill_considered_racetogether_campaign/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="Starbucks' cringe-inducing #RaceTogether campaign has caused a Twitter firestorm">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/race_together-90x60.jpg"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/race_together-300x200.jpg"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2015/03/17/the_best_twitter_responses_to_starbucks_ill_considered_racetogether_campaign/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="Starbucks' cringe-inducing #RaceTogether campaign has caused a Twitter firestorm">
+ Starbucks' cringe-inducing #RaceTogether campaign has caused a Twitter firestorm
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/joanna_rothkopf/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Joanna Rothkopf&quot;]">Joanna Rothkopf</a>
+ </span>
+
+ </div>
+ </li>
+ <li class="smr-post"> <a href="http://www.salon.com/2015/03/16/its_using_the_crisis_to_the_liberal_benefit_fox_news_panel_argues_snow_days_are_plot_against_religion/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="Fox News now thinks that <em>snow days</em> are a plot against religion">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/Screen-Shot-2015-03-16-at-2.50.57-PM-90x60.png"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/Screen-Shot-2015-03-16-at-2.50.57-PM-300x200.png"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2015/03/16/its_using_the_crisis_to_the_liberal_benefit_fox_news_panel_argues_snow_days_are_plot_against_religion/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="Fox News now thinks that <em>snow days</em> are a plot against religion">
+ Fox News now thinks that <em>snow days</em> are a plot against religion
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/joanna_rothkopf/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Joanna Rothkopf&quot;]">Joanna Rothkopf</a>
+ </span>
+
+ </div>
+ </li>
+ <li class="smr-post"> <a href="http://www.salon.com/2015/03/16/we_cant_believe_we_have_to_explain_this_diabetes_cant_be_cured_with_cinnamon_rolls/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="We can't believe we have to explain this: Diabetes can't be cured with cinnamon rolls">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/huckabee_roll-90x60.jpg"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/huckabee_roll-300x200.jpg"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2015/03/16/we_cant_believe_we_have_to_explain_this_diabetes_cant_be_cured_with_cinnamon_rolls/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="We can't believe we have to explain this: Diabetes can't be cured with cinnamon rolls">
+ We can't believe we have to explain this: Diabetes can't be cured with cinnamon rolls
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/lindsay_abrams/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Lindsay Abrams&quot;]">Lindsay Abrams</a>
+ </span>
+
+ </div>
+ </li>
+ </ul>
+ </div>
+ </li>
+ </ul>
+ </li>
+ <li class="innovation flyout-wrap"> <a class="not-b text-small text-caps gaTrackLinkEvent" href="http://www.salon.com/category/innovation/"
+ data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;Innovation&quot;]">
+ Innovation </a>
+
+ <ul class="nav first flyout">
+ <li class="arrow-box top light p-4 p-top-2 text-left">
+ <h2 class="text-huge m-bottom-1 text-fancy">
+ innovation </h2>
+
+ <ul class="inline-list stroke-bottom p-bottom-1 text-caps text-small b">
+ <li> <a href="http://www.salon.com/topic/science/" class="gaTrackLinkEvent text-highlight"
+ data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;science&quot;]">
+ Science </a>
+
+ </li>
+ <li> <a href="http://www.salon.com/topic/ideas/" class="gaTrackLinkEvent text-highlight"
+ data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;ideas&quot;]">
+ ideas </a>
+
+ </li>
+ <li> <a href="http://www.salon.com/topic/silicon_valley/" class="gaTrackLinkEvent text-highlight"
+ data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;silicon valley&quot;]">
+ Silicon Valley </a>
+
+ </li>
+ <li> <a href="http://www.salon.com/topic/cool_culture/" class="gaTrackLinkEvent text-highlight"
+ data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;cool culture&quot;]">
+ cool culture </a>
+
+ </li>
+ </ul>
+ <div class="smr-widget p-top-2">
+ <ul>
+ <li class="smr-post"> <a href="http://www.salon.com/2015/03/15/the_big_fk_buddy_lie_campus_hookups_and_the_dark_story_of_male_sexual_desire/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="The big &quot;f**k buddy&quot; lie: Campus hookups and the dark story of male sexual desire">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/neighbors6-90x60.jpg"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/neighbors6-300x200.jpg"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2015/03/15/the_big_fk_buddy_lie_campus_hookups_and_the_dark_story_of_male_sexual_desire/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="The big &quot;f**k buddy&quot; lie: Campus hookups and the dark story of male sexual desire">
+ The big "f**k buddy" lie: Campus hookups and the dark story of male sexual desire
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/dr_melvin_konner/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Dr. Melvin Konner&quot;]">Dr. Melvin Konner</a>
+ </span>
+
+ </div>
+ </li>
+ <li class="smr-post"> <a href="http://www.salon.com/2015/03/16/hidden_secrets_of_the_right_wing_brain_do_you_like_scott_walker_or_elizabeth_warren_new_research_explains_why/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="Hidden secrets of the right-wing brain: Do you like Scott Walker or Elizabeth Warren? New research explains why">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/walker_warren-90x60.jpg"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/walker_warren-300x200.jpg"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2015/03/16/hidden_secrets_of_the_right_wing_brain_do_you_like_scott_walker_or_elizabeth_warren_new_research_explains_why/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="Hidden secrets of the right-wing brain: Do you like Scott Walker or Elizabeth Warren? New research explains why">
+ Hidden secrets of the right-wing brain: Do you like Scott Walker or Elizabeth Warren? New research explains why
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/paul_rosenberg/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Paul Rosenberg&quot;]">Paul Rosenberg</a>
+ </span>
+
+ </div>
+ </li>
+ <li class="smr-post"> <a href="http://www.salon.com/2015/03/15/the_quest_to_save_vanishing_new_york/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="The quest to save vanishing New York">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/old_new_york_city-copy-90x60.jpg"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/old_new_york_city-copy-300x200.jpg"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2015/03/15/the_quest_to_save_vanishing_new_york/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;mostread&quot;]"
+ title="The quest to save vanishing New York">
+ The quest to save vanishing New York
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/henry_grabar/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Henry Grabar&quot;]">Henry Grabar</a>
+ </span>
+
+ </div>
+ </li>
+ </ul>
+ </div>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ <ul class="inline-list left buttons">
+ <li class="desktopOnly flyout-wrap"> <span class="sprite magnifying-glass-white-22">
+ </span>
+
+ <div class="search flyout">
+ <div class="arrow-box top light p-2">
+ <form action="/search/">
+ <input type="text" name="q" placeholder="Enter search term"/>
+ <input class="override" type="submit" value="search"/>
+ </form>
+ </div>
+ </div>
+ </li>
+ <li class="text-center desktopOnly flyout-wrap">
+ <div class="shareButton left m-right-1p5" data-service="facebookFollowers"
+ data-screen-name="salon"> <span class="sprite facebook-white-22">
+ </span>
+
+ </div>
+ <div class="shareButton left" data-service="twitterFollowers" data-screen-name="salon"> <span class="sprite twitter-white-22">
+ </span>
+
+ </div>
+ <div class="share flyout">
+ <div class="arrow-box top light p-1">
+ <ul class=" inline-list m-bottom-1-hard m-top-1">
+ <li class="m-bottom-0-hard m-right-1-hard"> <a class="fb-like" id="" data-href="http://www.facebook.com/salon" data-colorscheme="light"
+ data-layout="button" data-show-faces="true">
+ </a>
+ </li>
+ <li class="m-0-hard"> <a data-service="twitterFollowers" data-screen-name="salon" href="http://www.twitter.com/salon"
+ data-share-url="http://www.twitter.com/salon" data-headline="North Carolina lawmakers could pull an all-nighter over controversial “motorcycle abortion” bill"
+ data-thumbnail="http://media.salon.com/2013/07/6977131810_c6869282c7_c-300x200.jpg"
+ class="shareButton twitterFollowers">
+ <span class="shareButtonBox">
+ <span class="shareIcon"></span>
+ </span>
+ </a>
+
+ </li>
+ </ul>
+ </div>
+ </div>
+ </li>
+ </ul>
+ <ul class="inline-list right dark login">
+ <li class="user text-tiny p-top-3d5 text-right normal-color">
+ <p class="m-0 m-bottom-1 text-caps"> <span class="salonUserName desktopOnly"></span>
+
+ </p>
+ <p class="m-0 right"> <a href="#" class="salonLogout hide gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;signout&quot;]">
+ Log out
+ </a>
+ <a href="#" class="salonLogin gaTrackLinkEvent" data-ga-track-json="[&quot;navigation&quot;, &quot;click&quot;, &quot;signin&quot;]">
+ Sign in
+ </a>
+
+ </p>
+ </li>
+ </ul>
+ </div>
+ </nav>
+ </div>
+ <div class="p-top-2 p-bottom-2"></div>
+ <div class="container_12 pageContents">
+ <section class="omega mainContent">
+ <div class="mainInner">
+ <div class="topAdWrapper">
+ <div data-position-name="728-atf" class="adPosition leaderBoard ad-728-atf flex monitor height"></div>
+ </div>
+ <div class="grid_8 alpha omega">
+ <div class="articleInner"> <span class="dateline">
+ <span class="toLocalTime" data-tlt-epoch-time="1422791820">Sunday, Feb 1, 2015 11:57 AM UTC</span> </span>
+ <h1>
+ The sharing economy is a lie: Uber, Ayn Rand and the truth about tech and libertarians </h1>
+
+ <h2>
+ Disruptive companies talk a good game about sharing. Uber's really just an under-regulated company making riches </h2>
+ <span class="byline"><a href="http://www.salon.com/writer/richard_r_j_eskow/" rel="author" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Richard (R.J.) Eskow&quot;]">Richard (R.J.) Eskow</a></span>
+
+ <div
+ class="shareContainer">
+ <ul class="shareTools" data-share-link="http://www.salon.com/2015/02/01/the_sharing_economy_is_a_lie_uber_ayn_rand_and_the_truth_about_tech_and_libertarians/"
+ data-headline="The sharing economy is a lie: Uber, Ayn Rand and the truth about tech and libertarians"
+ data-thumbnail="http://media.salon.com/2014/12/uber_rand_paul-300x200.jpg">
+ <li class="fbShare"> <a data-service="facebookShare" href="http://www.salon.com/2015/02/01/the_sharing_economy_is_a_lie_uber_ayn_rand_and_the_truth_about_tech_and_libertarians/"
+ data-share-url="http://www.salon.com/2015/02/01/the_sharing_economy_is_a_lie_uber_ayn_rand_and_the_truth_about_tech_and_libertarians/"
+ data-headline="The sharing economy is a lie: Uber, Ayn Rand and the truth about tech and libertarians"
+ data-thumbnail="http://media.salon.com/2014/12/uber_rand_paul-300x200.jpg"
+ class="shareButton facebookShare count ">
+ <span class="shareButtonBox">
+ <span class="shareIcon"></span>
+ <span class="shareLabel">Share</span>
+ </span>
+
+ <span class="shareCountWrap">
+ <span class="shareCount"></span>
+ </span>
+ </a>
+ </li>
+ <li class="twitter"> <a data-service="twitterTweets" href="http://www.salon.com/2015/02/01/the_sharing_economy_is_a_lie_uber_ayn_rand_and_the_truth_about_tech_and_libertarians/"
+ data-share-url="http://www.salon.com/2015/02/01/the_sharing_economy_is_a_lie_uber_ayn_rand_and_the_truth_about_tech_and_libertarians/"
+ data-headline="The sharing economy is a lie: Uber, Ayn Rand and the truth about tech and libertarians"
+ data-thumbnail="http://media.salon.com/2014/12/uber_rand_paul-300x200.jpg"
+ class="shareButton twitterTweets count ">
+ <span class="shareButtonBox">
+ <span class="shareIcon"></span>
+
+ </span>
+
+ <span class="shareCountWrap">
+ <span class="shareCount"></span>
+ </span>
+ </a>
+ </li>
+ <li class="whatsapp"> <a href="whatsapp://send" data-text="Take a look at this awesome article:"
+ data-href="http://www.salon.com/2015/02/01/the_sharing_economy_is_a_lie_uber_ayn_rand_and_the_truth_about_tech_and_libertarians/"
+ class="wa_btn wa_btn_m" style="display:none;height: 40px;width: 15px;background-size: 40px;background-position: 6px 4px;border-radius: 3px;"
+ onclick="window.parent.slnm.gaTracking.trackLink([ 'whatsapp','click', 'http://www.salon.com/2015/02/01/the_sharing_economy_is_a_lie_uber_ayn_rand_and_the_truth_about_tech_and_libertarians/']);">
+ </a>
+
+ </li>
+ <li class="gPlus"> <a data-service="googlePlus" href="http://www.salon.com/2015/02/01/the_sharing_economy_is_a_lie_uber_ayn_rand_and_the_truth_about_tech_and_libertarians/"
+ data-share-url="http://www.salon.com/2015/02/01/the_sharing_economy_is_a_lie_uber_ayn_rand_and_the_truth_about_tech_and_libertarians/"
+ data-headline="The sharing economy is a lie: Uber, Ayn Rand and the truth about tech and libertarians"
+ data-thumbnail="http://media.salon.com/2014/12/uber_rand_paul-300x200.jpg"
+ class="shareButton googlePlus count ">
+ <span class="shareButtonBox">
+ <span class="shareIcon"></span>
+
+ </span>
+
+ <span class="shareCountWrap">
+ <span class="shareCount"></span>
+ </span>
+ </a>
+ </li>
+ <li class="comments"> <span class="commentBubble forceComments" data-comment-id="13850779">
+ <a title="" href="http://www.salon.com/2015/02/01/the_sharing_economy_is_a_lie_uber_ayn_rand_and_the_truth_about_tech_and_libertarians/#comments" class="gaTrackLinkEvent" data-ga-track-json="[&quot;storylinks&quot;, &quot;click&quot;, &quot;comments&quot;]">
+ <span class="livefyre-commentcount" data-lf-site-id="321741">0</span>
+
+ </a>
+ </span>
+ </li>
+ <li class="flyOut shareAll shareButtonBox"> <span class="shareAllWrapper"></span>
+
+ <ul class="flyOutMenu">
+ <li class="shareAllContent">
+ <h3>All Share Services</h3>
+
+ <div>
+ <input placeholder="Start typing to search for share service" class="quickRefine"/>
+ </div>
+ <div class="shareButtonsHolder"></div>
+ </li>
+ </ul>
+ </li>
+ <li class="hide"> <a href="#" class="flyOutShareToolsButton template">
+ <span class="shareIcon"></span>
+ <span class="shareText"></span>
+ </a>
+
+ </li>
+ </ul>
+ </div>
+ <p class="topics">Topics: <a href="/topic/uber" class="gaTrackLinkEvent" data-ga-track-json="[&quot;topic&quot;, &quot;click&quot;, &quot;uber&quot;]">uber</a>,
+ <a
+ href="/topic/libertarians" class="gaTrackLinkEvent" data-ga-track-json="[&quot;topic&quot;, &quot;click&quot;, &quot;libertarians&quot;]">libertarians</a>, <a href="/topic/sydney" class="gaTrackLinkEvent" data-ga-track-json="[&quot;topic&quot;, &quot;click&quot;, &quot;sydney&quot;]">Sydney</a>,
+ <a
+ href="/topic/editors_picks" class="gaTrackLinkEvent" data-ga-track-json="[&quot;topic&quot;, &quot;click&quot;, &quot;editors_picks&quot;]">Editor's Picks</a>, <a href="/topic/sharing_economy" class="gaTrackLinkEvent"
+ data-ga-track-json="[&quot;topic&quot;, &quot;click&quot;, &quot;sharing_economy&quot;]">sharing economy</a>,
+ <a
+ href="http://www.salon.com/category/technology/" rel="tag">Technology News</a>
+ </p>
+ <div class="featuredMedia"><a class="lightBox" title="The sharing economy is a lie: Uber, Ayn Rand and the truth about tech and libertarians"
+ href="http://media.salon.com/2014/12/uber_rand_paul.jpg"><img alt="The sharing economy is a lie: Uber, Ayn Rand and the truth about tech and libertarians" title="The sharing economy is a lie: Uber, Ayn Rand and the truth about tech and libertarians" src="http://media.salon.com/2014/12/uber_rand_paul.jpg"/></a>
+ <span
+ class="caption">Ayn Rand, Rand Paul <span class="photoCredit">(Credit: AP/Manuel Balce Ceneta/Photo montage by Salon)</span></span>
+ </div>
+ <div class="articleContent">
+ <p>Horror stories about the increasingly unpopular taxi service Uber have
+ been commonplace in recent months, but there is still much to be learned
+ from its handling of the recent hostage drama in downtown Sydney, Australia.
+ We’re told that we reveal our true character in moments of crisis, and
+ apparently that’s as true for companies as it is for individuals.</p>
+ <div
+ id="ym_1007925900364593340" class="ym"></div>
+ <div class="recirc1"></div>
+ <p>A number of experts have challenged the idea that the horrific explosion
+ of violence in a Sydney café was “terrorism,” since the attacker was mentally
+ unbalanced and acted alone. But, terror or not, the ordeal was certainly
+ terrifying. Amid the chaos and uncertainty, the city believed itself to
+ be under a coordinated and deadly attack.</p>
+ <p>Uber had an interesting, if predictable, response to the panic and mayhem:
+ It raised prices. A lot.</p>
+ <p>In case you missed the story, the facts are these: Someone named Man Haron
+ Monis, who was considered mentally unstable and had been investigated for
+ murdering his ex-wife, seized hostages in a café that was located in Sydney’s
+ Central Business District or “CBD.” In the process he put up an Islamic
+ flag – “igniting,” as <a href="http://www.reuters.com/article/2014/12/15/us-australia-security-idUSKBN0JS0WX20141215">Reuters</a> reported,
+ “fears of a jihadist attack in the heart of the country’s biggest city.”</p>
+ <p>In the midst of the fear, Uber stepped in and tweeted this announcement:&nbsp;
+ <span
+ style="font-size: 13px;">“We are all concerned with events in CBD. Fares have increased to encourage
+ more drivers to come online &amp; pick up passengers in the area.”</span>
+ </p>
+ <p>As <a href="http://mashable.com/2014/12/14/uber-sydney-surge-pricing/">Mashable </a>reports,
+ the company announced that it would charge a minimum of $100 Australian
+ to take passengers from the area immediately surrounding the ongoing crisis,
+ and prices increased by as much as four times the standard amount. A firestorm
+ of criticism quickly erupted – “<a href="https://twitter.com/Uber_Sydney">@Uber_Sydney</a> stop
+ being assholes,” one Twitter response began – and Uber soon found itself
+ offering free rides out of the troubled area instead.</p>
+ <p>What can we learn from this incident? Let’s start by parsing that tweet:</p>
+ <p><em>“We are all concerned with events in CBD …”</em>
+ </p>
+ <p>That opener suggests that Uber, as part of a community under siege, is
+ preparing to respond in a civic manner.<em></em>
+ </p>
+ <p><em>“… Fares have increased to encourage more drivers to come online &amp; pick up passengers in the area.”</em>
+ </p>
+ <div class="recirc2"></div>
+ <hr/>
+ <div data-position-name="300-mi1" class="adPosition bigBox ad-300-mi1 flex"></div>
+ <hr/>
+ <div class="toggle-group target hideOnInit" data-toggle-group="story-13850779">
+ <p>But, despite the expression of shared concern, there is no sense of <em>civitas</em> to
+ be found in the statement that follows. There is only a transaction, executed
+ at what the corporation believes to be market value. Lesson #1 about Uber
+ is, therefore, that in its view there is no heroism, only self-interest.
+ This is Ayn Rand’s brutal, irrational and primitive philosophy in its purest
+ form: altruism is evil, and self-interest is the only true heroism.<em></em>
+ </p>
+ <p>There was once a time when we might have read of “hero cabdrivers” or
+ “hero bus drivers” placing themselves in harm’s way to rescue their fellow
+ citizens. For its part, Uber might have suggested that it would use its
+ network of drivers and its scheduling software to recruit volunteer drivers
+ for a rescue mission.<em></em>
+ </p>
+ <p>Instead, we are told that Uber’s pricing surge <em>was</em> its expression
+ of concern. Uber’s way to address a human crisis is apparently by letting
+ the market govern human behavior, as if there were (in libertarian economist
+ Tyler Cowen’s phrase) “markets in everything” – including the lives of
+ a city’s beleaguered citizens (and its Uber drivers). <em></em>
+ </p>
+ <p>Where would this kind of market-driven practice leave poor or middle-income
+ citizens in a time of crisis? If they can’t afford the “surged” price,
+ apparently it would leave them squarely in the line of fire. And come to
+ think of it, why would Uber drivers value their lives so cheaply, unless
+ they’re underpaid? <em></em>
+ </p>
+ <p>One of the lessons of Sydney is this: Uber’s philosophy, whether consciously
+ expressed or not, is that life belongs to the highest bidder – and therefore,
+ by implication, the highest bidder’s life has the greatest value. Society,
+ on the other hand, may choose to believe that every life has equal value
+ – or that lifesaving services should be available at affordable prices. <em></em>
+ </p>
+ <p>If nothing else, the Sydney experience should prove once and for all that
+ there is no such thing as “the sharing economy.” Uber is a taxi company,
+ albeit an under-regulated one, and nothing more. It’s certainly not a “ride
+ sharing” service, where someone who happens to be going in the same direction
+ is willing to take along an extra passenger and split gas costs. A ride-sharing
+ service wouldn’t find itself “increasing fares to encourage more drivers”
+ to come into Sydney’s terrorized Central Business District. <em></em>
+ </p>
+ <p>A “sharing economy,” by definition, is lateral in structure. It is a peer-to-peer
+ economy. But Uber, as its name suggests, is hierarchical in structure.
+ It monitors and controls its drivers, demanding that they purchase services
+ from it while guiding their movements and determining their level of earnings.
+ And its pricing mechanisms impose unpredictable costs on its customers,
+ extracting greater amounts whenever the data suggests customers can be
+ compelled to pay them.<em></em>
+ </p>
+ <p>This is a top-down economy, not a “shared” one.<em></em>
+ </p>
+ <p>A number of Uber’s fans and supporters defended the company on the grounds
+ that its “surge prices,” including those seen during the Sydney crisis,
+ are determined by an algorithm. But an algorithm can be an ideological
+ statement, and is always a cultural artifact. As human creations, algorithms
+ reflect their creators. <em></em>
+ </p>
+ <p>Uber’s tweet during the Sydney crisis made it sound as if human intervention,
+ rather than algorithmic processes, caused prices to soar that day. But
+ it doesn’t really matter if that surge was manually or algorithmically
+ driven. Either way the prices were Uber’s doing – and its moral choice.<em></em>
+ </p>
+ <p>Uber has been strenuously defending its surge pricing in the wake of accusations
+ (apparently <a href="http://gothamist.com/2012/11/04/uber.php">justified</a>)
+ that the company enjoyed windfall profits during Hurricane Sandy. It has
+ now promised the state of New York that it will cap its surge prices (at
+ three times the highest rate on two non-emergency days). But if Uber has
+ its way, it will soon enjoy a monopolistic stranglehold on car service
+ rates in most major markets. And it has demonstrated its willingness to
+ ignore rules and regulations. That means<em> </em>predictable and affordable
+ taxi fares could become a thing of the past. <em></em>
+ </p>
+ <p>In practice, surge pricing could become a new, privatized form of taxation
+ on middle-class taxi customers.<em></em>
+ </p>
+ <p>Even without surge pricing, Uber and its supporters are hiding its full
+ costs. When middle-class workers are underpaid or deprived of benefits
+ and full working rights, as Uber’s <a href="http://www.businessinsider.com/uber-drivers-say-theyre-making-less-than-minimum-wage-2014-10">reportedly are</a>,
+ the entire middle-class economy suffers. Overall wages and benefits are
+ suppressed for the majority, while the wealthy few are made even richer.
+ The invisible costs of ventures like Uber are extracted over time, far
+ surpassing whatever short-term savings they may occasionally offer.<em></em>
+ </p>
+ <p>Like Walmart, Uber underpays its employees – many of its drivers <em>are</em> employees,
+ in everything but name – and then drains the social safety net to make
+ up the difference. While Uber preaches libertarianism, it practices a form
+ of corporate welfare. It’s reportedly <a href="http://www.washingtonpost.com/blogs/wonkblog/wp/2014/11/17/why-uber-loves-obamacare/">celebrating Obamacare</a>,
+ for example, since the Affordable Care Act allows it to avoid providing
+ health insurance to its workforce. But the ACA’s subsidies, together with
+ Uber’s often woefully insufficient wages, mean that the rest of us are
+ paying its tab instead. And the lack of income security among Uber’s drivers
+ creates another social cost for Americans – in lost tax revenue, and possibly
+ in increased use of social services. <em></em>
+ </p>
+ <p>The company’s war on regulation will also carry a social price. Uber and
+ its supporters don’t seem to understand that<em> </em>regulations exist
+ for a reason. It’s true that nobody likes excessive bureaucracy, but not
+ all regulations are excessive or onerous. And when they are, it’s a flaw
+ in execution rather than principle. <em></em>
+ </p>
+ <p>Regulations were created because they serve a social purpose, ensuring
+ the free and fair exchange of services and resources among all segments
+ of society. Some services, such as transportation, are of such importance
+ that the public has a vested interest in ensuring they will be readily
+ available at reasonably affordable prices. That’s not unreasonable for
+ taxi services, especially given the fact that they profit from publicly
+ maintained roads and bridges.<em></em>
+ </p>
+ <p>Uber has presented itself as a modernized, efficient alternative to government
+ oversight. But it’s an evasion of regulation, not its replacement. As
+ <a
+ href="http://fusion.net/story/33680/the-inside-story-of-how-the-uber-portland-negotiations-broke-down/">Alexis Madrigal</a>reports, Uber has deliberately ignored city regulators
+ and used customer demand to force its model of inadequate self-governance
+ (my conclusion, not his) onto one city after another.<em></em>
+ </p>
+ <p>Uber presented itself as a refreshing alternative to the over-bureaucratized
+ world of urban transportation. But that’s a false choice. We can streamline
+ sclerotic city regulators, upgrade taxi fleets and even provide users with
+ fancy apps that make it easier to call a cab. The company’s binary presentation
+ – us, or City Hall – frames the debate in artificial terms.<em></em>
+ </p>
+ <p>Uber claims that its driver rating system is a more efficient way to monitor
+ drivers, but that’s an entirely unproven assumption. While taxi drivers
+ have been known to misbehave, the worldwide litany of complaints against
+ Uber drivers – for everything from dirty cars and <a href="http://consumerist.com/2014/07/30/uber-passenger-complains-of-spider-bite-in-filthy-car/">spider bites</a> to
+ <a
+ href="http://www.forbes.com/sites/ellenhuet/2014/09/30/uber-driver-hammer-attack-liability/">assault with a hammer</a>, <a href="http://www.businessinsider.com/uber-nikki-williams-2014-12">fondling</a> and
+ <a
+ href="http://www.businessinsider.com/an-uber-driver-allegedly-raped-a-female-passenger-in-boston-2014-12">rape</a>– suggest that Uber’s system may not work as well as old-fashioned
+ regulation. It’s certainly not noticeably superior.<em></em>
+ </p>
+ <p>In fact, <a href="http://www.huffingtonpost.com/2014/12/09/uber-california-lawsuit_n_6298206.html">prosecutors in San Francisco and Los Angeles</a> say
+ Uber has been lying to its customers about the level and quality of its
+ background checks. The company now promises it will do a better job at
+ screening drivers. But it <a href="http://consumerist.com/2014/12/18/uber-reportedly-revamping-security-wont-say-exactly-what-its-doing/">won’t tell us</a> what
+ measures its taking to improve its safety record, and it’s <a href="http://consumerist.com/2014/12/18/uber-reportedly-revamping-security-wont-say-exactly-what-its-doing/">fighting the kind of driver scrutiny</a> that
+ taxicab companies have been required to enforce for many decades. <em></em>
+ </p>
+ <p>Many reports suggest that beleaguered drivers don’t feel much better about
+ the company than victimized passengers do. They tell <a href="http://qz.com/299655/why-your-uber-driver-hates-uber/">horror stories</a> about
+ the company’s hiring and management practices. Uber <a href="http://www.salon.com/2014/09/03/uber_unrest_drivers_in_los_angeles_protest_the_slashing_of_rates/">unilaterally slashes drivers’ rates</a>,
+ while claiming they don’t need to unionize. (The <a href="http://www.fastcompany.com/3037371/the-teamsters-of-the-21st-century-how-uber-lyft-and-facebook-drivers-are-organizing">Teamsters</a> disagree.) <em></em>
+ </p>
+ <p>The company also pushes<a href="http://thinkprogress.org/economy/2014/11/06/3589715/uber-lending-investigation/"> sketchy, substandard loans</a> onto
+ its drivers – but hey, what could go wrong?<em></em>
+ </p>
+ <p>Uber has many libertarian defenders. And yet, it <a href="http://pando.com/2014/10/29/uber-prs-latest-trick-impersonating-its-drivers-and-trying-to-scam-journalists/">deceives the press</a> and
+ <a
+ href="http://www.slate.com/blogs/the_slatest/2014/11/17/uber_exec_suggests_using_personal_info_against_journalists.html">threatens to spy on journalists</a>, <a href="http://money.cnn.com/2014/08/04/technology/uber-lyft/">lies to its own employees</a>,
+ keeps its practices a secret and routinely invades the privacy of civilians
+ – sometimes merely for entertainment. (It has a tool, with the Orwellian
+ name the “<a href="http://www.forbes.com/sites/kashmirhill/2014/10/03/god-view-uber-allegedly-stalked-users-for-party-goers-viewing-pleasure/">God View</a>,”
+ that it can use for monitoring customers’ personal movements.) <em></em>
+ </p>
+ <p>Aren’t those the kinds of things libertarians say they hate about <em>government</em>?<em></em>
+ </p>
+ <p>This isn’t a “gotcha” exercise. It matters. Uber is the poster child for
+ the pro-privatization, anti-regulatory ideology that ascribes magical powers
+ to technology and the private sector. It is deeply a political entity,
+ from its Nietzschean name to its recent hiring of White House veteran David
+ Plouffe. Uber is built around a relatively simple app (which relies on
+ government-created technology), but it’s not really a tech company. Above
+ all else Uber is an ideological campaign, a neoliberal project whose real
+ products are deregulation and the dismantling of the social contract.<em></em>
+ </p>
+ <p>Or maybe, as that tweeter in Sydney suggested, they’re just assholes.<em></em>
+ </p>
+ <p>Either way, it’s important that Uber’s worldview and business practices
+ not be allowed to “disrupt” our economy or our social fabric. People who
+ work hard deserve to make a decent living. Society at large deserves access
+ to safe and affordable transportation. And government, as the collective
+ expression of a democratic society, has a role to play in protecting its
+ citizens. <em></em>
+ </p>
+ <p>And then there’s the matter of our collective psyche. In her book “A Paradise
+ Built in Hell: The Extraordinary Communities that Arise in Disaster,” Rebecca
+ Solnit wrote of the purpose, meaning and deep satisfaction people find
+ when they pull together to help one another in the face of adversity.&nbsp;
+ But in the world Uber seeks to create, those surges of the spirit would
+ be replaced by surge pricing.<em></em>
+ </p>
+ <p>You don’t need a “God view” to see what happens next. When heroism is
+ reduced to a transaction, the soul of a society is sold cheap. <em></em>
+ </p>
+ </div> <a class="toggle-group toggleOnScroll trigger remember refreshAds gaTrackPageEvent"
+ data-toggle-group="story-13850779" data-delay="15" href="http://www.salon.com/2015/02/01/the_sharing_economy_is_a_lie_uber_ayn_rand_and_the_truth_about_tech_and_libertarians/">
+ <script type="json/config" class="jsonConfig">
+ {"slots":{"1":["pageTitle","The sharing economy is a lie: Uber, Ayn Rand and the truth about tech and libertarians",3],"2":["pageType","article cr-link",3],"3":["author","Richard (R.J.) Eskow",3],"5":["section","Technology",3]}}
+ </script>
+ </a>
+ </div>
+ <div class="writerMeta">
+ <p></p>
+ <div class="social"></div> <a class="byline" title="More Richard (R.J.) Eskow." href="http://www.salon.com/writer/richard_r_j_eskow/">
+ More Richard (R.J.) Eskow.
+ </a>
+
+ <p></p>
+ </div>
+ <div class="fb-recommendations-bar hideOnMobile" data-max-age="1" data-read-time="45"
+ data-site="salon.com"></div>
+ <div class="shareContainer">
+ <ul class="shareTools" data-share-link="http://www.salon.com/2015/02/01/the_sharing_economy_is_a_lie_uber_ayn_rand_and_the_truth_about_tech_and_libertarians/"
+ data-headline="The sharing economy is a lie: Uber, Ayn Rand and the truth about tech and libertarians"
+ data-thumbnail="http://media.salon.com/2014/12/uber_rand_paul-300x200.jpg">
+ <li class="fbShare"> <a data-service="facebookShare" href="http://www.salon.com/2015/02/01/the_sharing_economy_is_a_lie_uber_ayn_rand_and_the_truth_about_tech_and_libertarians/"
+ data-share-url="http://www.salon.com/2015/02/01/the_sharing_economy_is_a_lie_uber_ayn_rand_and_the_truth_about_tech_and_libertarians/"
+ data-headline="The sharing economy is a lie: Uber, Ayn Rand and the truth about tech and libertarians"
+ data-thumbnail="http://media.salon.com/2014/12/uber_rand_paul-300x200.jpg"
+ class="shareButton facebookShare count ">
+ <span class="shareButtonBox">
+ <span class="shareIcon"></span>
+ <span class="shareLabel">Share</span>
+ </span>
+
+ <span class="shareCountWrap">
+ <span class="shareCount"></span>
+ </span>
+ </a>
+ </li>
+ <li class="twitter"> <a data-service="twitterTweets" href="http://www.salon.com/2015/02/01/the_sharing_economy_is_a_lie_uber_ayn_rand_and_the_truth_about_tech_and_libertarians/"
+ data-share-url="http://www.salon.com/2015/02/01/the_sharing_economy_is_a_lie_uber_ayn_rand_and_the_truth_about_tech_and_libertarians/"
+ data-headline="The sharing economy is a lie: Uber, Ayn Rand and the truth about tech and libertarians"
+ data-thumbnail="http://media.salon.com/2014/12/uber_rand_paul-300x200.jpg"
+ class="shareButton twitterTweets count ">
+ <span class="shareButtonBox">
+ <span class="shareIcon"></span>
+
+ </span>
+
+ <span class="shareCountWrap">
+ <span class="shareCount"></span>
+ </span>
+ </a>
+ </li>
+ <li class="whatsapp"> <a href="whatsapp://send" data-text="Take a look at this awesome article:"
+ data-href="http://www.salon.com/2015/02/01/the_sharing_economy_is_a_lie_uber_ayn_rand_and_the_truth_about_tech_and_libertarians/"
+ class="wa_btn wa_btn_m" style="display:none;height: 40px;width: 15px;background-size: 40px;background-position: 6px 4px;border-radius: 3px;"
+ onclick="window.parent.slnm.gaTracking.trackLink([ 'whatsapp','click', 'http://www.salon.com/2015/02/01/the_sharing_economy_is_a_lie_uber_ayn_rand_and_the_truth_about_tech_and_libertarians/']);">
+ </a>
+
+ </li>
+ <li class="gPlus"> <a data-service="googlePlus" href="http://www.salon.com/2015/02/01/the_sharing_economy_is_a_lie_uber_ayn_rand_and_the_truth_about_tech_and_libertarians/"
+ data-share-url="http://www.salon.com/2015/02/01/the_sharing_economy_is_a_lie_uber_ayn_rand_and_the_truth_about_tech_and_libertarians/"
+ data-headline="The sharing economy is a lie: Uber, Ayn Rand and the truth about tech and libertarians"
+ data-thumbnail="http://media.salon.com/2014/12/uber_rand_paul-300x200.jpg"
+ class="shareButton googlePlus count ">
+ <span class="shareButtonBox">
+ <span class="shareIcon"></span>
+
+ </span>
+
+ <span class="shareCountWrap">
+ <span class="shareCount"></span>
+ </span>
+ </a>
+ </li>
+ <li class="comments"> <span class="commentBubble forceComments" data-comment-id="13850779">
+ <a title="" href="http://www.salon.com/2015/02/01/the_sharing_economy_is_a_lie_uber_ayn_rand_and_the_truth_about_tech_and_libertarians/#comments" class="gaTrackLinkEvent" data-ga-track-json="[&quot;storylinks&quot;, &quot;click&quot;, &quot;comments&quot;]">
+ <span class="livefyre-commentcount" data-lf-site-id="321741">0</span>
+
+ </a>
+ </span>
+ </li>
+ <li class="flyOut shareAll shareButtonBox"> <span class="shareAllWrapper"></span>
+
+ <ul class="flyOutMenu">
+ <li class="shareAllContent">
+ <h3>All Share Services</h3>
+
+ <div>
+ <input placeholder="Start typing to search for share service" class="quickRefine"/>
+ </div>
+ <div class="shareButtonsHolder"></div>
+ </li>
+ </ul>
+ </li>
+ <li class="hide"> <a href="#" class="flyOutShareToolsButton template">
+ <span class="shareIcon"></span>
+ <span class="shareText"></span>
+ </a>
+
+ </li>
+ </ul>
+ </div>
+ <div class="nextArticle"> <a href="http://www.salon.com/2015/01/31/satoshi_nakamoto%e2%80%99s_greatest_creation/"
+ class="nextThumbWrap gaTrackLinkEvent" data-ga-track-json="[&quot;nextArticle&quot;,&quot;click&quot;,&quot;Satoshi Nakamoto’s greatest creation&quot;]">
+ <img width="620" height="412" src="http://media.salon.com/2015/02/bitcoin_figure.jpg" class="attachment-lg_horizontal wp-post-image" alt="bitcoin_figure" title="bitcoin_figure"/>
+ <h3>Satoshi Nakamoto’s greatest creation</h3>
+ <p class="button right arrow">Next Article</p>
+ </a>
+
+ </div>
+ <div class="related_stories widget">
+ <h3>You Might Also Like</h3>
+
+ <div id="taboola-bottom-main-column"></div>
+ <div id="taboola-text-2-columns-mix"></div>
+ </div>
+ <div class="horizontalPostList widget hideOnMobile">
+ <h3>More Related Stories</h3>
+
+ <div></div>
+ <div class="postSlider">
+ <div class="prev control"></div>
+ <ul class="">
+ <li> <a title="Ashley Judd pressing charges against misogynist trolls who threatened her over sports"
+ href="http://www.salon.com/2015/03/17/ashley_judd_pressing_charges_against_misogynist_trolls_who_threatened_her_over_sports/"
+ class="plain gaTrackLinkEvent" data-ga-track-json="[&quot;morerelatedstories&quot;, &quot;click&quot;, &quot;Ashley Judd pressing charges against misogynist trolls who threatened her over sports&quot;]">
+ <img class="lazyLoad" alt="Ashley Judd pressing charges against misogynist trolls who threatened her over sports" data-source-standard="http://media.salon.com/2012/12/ashley_judd_rect-150x150.jpg"/>
+ <span class="title">
+ Ashley Judd pressing charges against misogynist trolls who threatened her over sports
+ </span>
+ </a>
+
+ </li>
+ <li> <a title="Welcome to " libertarian="" island ":=" " how=" " these="
+ " one=" " percenters=" " are=" " creating=" " a=" " dystopian=" " nightmare"=""
+ href="http://www.salon.com/2015/03/16/welcome_to_libertarian_island_how_silicon_valley_billionaires_are_creating_a_capitalist_nightmare/"
+ class="plain gaTrackLinkEvent" data-ga-track-json="[&quot;morerelatedstories&quot;, &quot;click&quot;, &quot;Welcome to &quot;Libertarian Island&quot;: How these One Percenters are creating a dystopian nightmare&quot;]">
+ <img class="lazyLoad" alt="Welcome to " libertarian="" island":="" how="" these="" one="" percenters="" are="" creating="" a="" dystopian="" nightmare"="" data-source-standard="http://media.salon.com/2015/03/rand_thiel_paul-150x150.jpg"/>
+ <span class="title">
+ Welcome to "Libertarian Island": How these One Percenters are creating a dystopian nightmare
+ </span>
+ </a>
+
+ </li>
+ <li> <a title="Facebook still won't free the nipple -- but it's cracking down on revenge porn"
+ href="http://www.salon.com/2015/03/16/facebook_still_wont_free_the_nipple_but_its_cracking_down_on_revenge_porn/"
+ class="plain gaTrackLinkEvent" data-ga-track-json="[&quot;morerelatedstories&quot;, &quot;click&quot;, &quot;Facebook still won't free the nipple -- but it's cracking down on revenge porn&quot;]">
+ <img class="lazyLoad" alt="Facebook still won't free the nipple -- but it's cracking down on revenge porn" data-source-standard="http://media.salon.com/2014/11/facebook-privacy-policy.jpeg-150x150.jpg"/>
+ <span class="title">
+ Facebook still won't free the nipple -- but it's cracking down on revenge porn
+ </span>
+ </a>
+
+ </li>
+ <li> <a title="" the="" new="" gold="" standard="" in="" douchebag="" detection
+ ":=" " apple's=" " $10,000=" " smartwatch=" " roundly=" " mocked=" " by="
+ " internet"="" href="http://www.salon.com/2015/03/09/the_new_gold_standard_in_douchebag_detection_apples_10000_smartwatch_roundly_mocked_by_the_internet/"
+ class="plain gaTrackLinkEvent" data-ga-track-json="[&quot;morerelatedstories&quot;, &quot;click&quot;, &quot;&quot;The new gold standard in douchebag detection&quot;: Apple's $10,000 smartwatch roundly mocked by the Internet&quot;]">
+ <img class="lazyLoad" alt="" the="" new="" gold="" standard="" in="" douchebag="" detection":="" apple's="" $10,000="" smartwatch="" roundly="" mocked="" by="" internet"="" data-source-standard="http://media.salon.com/2015/03/apple_watch-150x150.jpg"/>
+ <span class="title">
+ "The new gold standard in douchebag detection": Apple's $10,000 smartwatch roundly mocked by the Internet
+ </span>
+ </a>
+
+ </li>
+ <li> <a title="Apple and HBO announce HBO Now with thrilling new trailer for "
+ game="" of="" thrones "=" " season=" " five"="" href="http://www.salon.com/2015/03/09/watch_the_thrilling_new_trailer_for_game_of_thrones_season_five/"
+ class="plain gaTrackLinkEvent" data-ga-track-json="[&quot;morerelatedstories&quot;, &quot;click&quot;, &quot;Apple and HBO announce HBO Now with thrilling new trailer for &quot;Game of Thrones&quot; season five&quot;]">
+ <img class="lazyLoad" alt="Apple and HBO announce HBO Now with thrilling new trailer for " game="" of="" thrones"="" season="" five"="" data-source-standard="http://media.salon.com/2015/03/Screen-Shot-2015-03-09-at-2.03.46-PM-150x150.png"/>
+ <span class="title">
+ Apple and HBO announce HBO Now with thrilling new trailer for "Game of Thrones" season five
+ </span>
+ </a>
+
+ </li>
+ <li> <a title="Malaysia Airlines Flight 370, one year later: " nothing="" is=""
+ certain,="" as="" everything="" possible ""="" href="http://www.salon.com/2015/03/08/malaysian_airlines_flight_370_one_year_later_nothing_is_certain_as_everything_is_possible/"
+ class="plain gaTrackLinkEvent" data-ga-track-json="[&quot;morerelatedstories&quot;, &quot;click&quot;, &quot;Malaysia Airlines Flight 370, one year later: &quot;Nothing is certain, as everything is possible&quot;&quot;]">
+ <img class="lazyLoad" alt="Malaysia Airlines Flight 370, one year later: " nothing="" is="" certain,="" as="" everything="" possible""="" data-source-standard="http://media.salon.com/2014/03/mh370_coverage-150x150.jpg"/>
+ <span class="title">
+ Malaysia Airlines Flight 370, one year later: "Nothing is certain, as everything is possible"
+ </span>
+ </a>
+
+ </li>
+ <li> <a title="The Internet killed privacy: Our liberation, and our capture, are within the same tool"
+ href="http://www.salon.com/2015/03/07/the_internet_killed_privacy_our_liberation_and_our_capture_are_within_the_same_tool/"
+ class="plain gaTrackLinkEvent" data-ga-track-json="[&quot;morerelatedstories&quot;, &quot;click&quot;, &quot;The Internet killed privacy: Our liberation, and our capture, are within the same tool&quot;]">
+ <img class="lazyLoad" alt="The Internet killed privacy: Our liberation, and our capture, are within the same tool" data-source-standard="http://media.salon.com/2015/02/snowden_cheney-150x150.jpg"/>
+ <span class="title">
+ The Internet killed privacy: Our liberation, and our capture, are within the same tool
+ </span>
+ </a>
+
+ </li>
+ <li> <a title="" do="" what="" we="" want="" in="" afghanistan,="" or="" we
+ 'll="" have="" the="" americans="" drone="" you":="" our="" immoral="" war="" —="" and="" how="" cia="" gets="" used"="" href="http://www.salon.com/2015/03/07/do_what_we_want_in_afghanistan_or_well_have_the_americans_drone_you_our_immoral_drone_war_%e2%80%94_and_how_the_cia_gets_used/" class="plain gaTrackLinkEvent" data-ga-track-json="[&quot;morerelatedstories&quot;, &quot;click&quot;, &quot;&quot;Do what we want in Afghanistan, or we'll have the Americans drone you&quot;: Our immoral drone war — and how
+ the CIA gets used&quot;] ">
+ <img class="lazyLoad " alt=" " do=" " what="
+ " we=" " want=" " in=" " afghanistan,=" " or=" " we'll=" " have=" " the="
+ " americans=" " drone=" " you":="" our="" immoral="" war="" —="" and="" how="" cia=""
+ gets="" used "=" " data-source-standard="http://media.salon.com/2015/03/drone_graffiti-150x150.jpg "/>
+ <span class="title ">
+ "Do what we want in Afghanistan, or we
+ 'll have the Americans drone you": Our immoral drone war — and how the CIA gets used
+ </span>
+ </a>
+ </li>
+ <li>
+ <a title="Protest sexism with " squirt="" alert,"="" the="" app="" where="" female="" ejaculation="" is="" only="" goal"="" href="http://www.salon.com/2015/03/06/protest_sexism_with_squirt_alert_the_app_where_female_ejaculation_is_the_only_goal/" class="plain gaTrackLinkEvent" data-ga-track-json="[&quot;morerelatedstories&quot;, &quot;click&quot;, &quot;Protest sexism with &quot;Squirt Alert,&quot; the app where female ejaculation is the only goal&quot;]">
+ <img class="lazyLoad" alt="Protest sexism with " squirt="" alert,"="" the="" app="" where="" female="" ejaculation="" is="" only="" goal"="" data-source-standard="http://media.salon.com/2015/03/50292_SA_game_01-150x150.jpg"/>
+ <span class="title">
+ Protest sexism with "Squirt Alert," the app where female ejaculation is the only goal
+ </span>
+ </a>
+ </li>
+ <li>
+ <a title="What went viral 5 years ago today: OK Go's hypnotizing Rube Goldberg machine " href="http://www.salon.com/2015/03/05/what_went_viral_5_years_ago_today_ok_gos_hypnotizing_rube_goldberg_machine/
+ " class="plain gaTrackLinkEvent " data-ga-track-json="[&quot;morerelatedstories&quot;,
+ &quot;click&quot;, &quot;What went viral 5 years ago today: OK Go
+ 's hypnotizing Rube Goldberg machine &quot;]">
+ <img class="lazyLoad" alt="What went viral 5 years ago today: OK Go's hypnotizing Rube Goldberg machine " data-source-standard="http://media.salon.com/2015/03/Screen-Shot-2015-03-05-at-2.53.21-PM-150x150.png "/>
+ <span class="title ">
+ What went viral 5 years ago today: OK Go's hypnotizing Rube Goldberg machine
+ </span>
+ </a>
+ </li>
+ <li>
+ <a title="Dudebros of Reddit freak out as site tries
+ to reduce " involuntary=" " pornography" "=" " href="http://www.salon.com/2015/03/02/dudebros_of_reddit_freak_out_as_site_tries_to_reduce_involuntary_pornography/
+ " class="plain gaTrackLinkEvent " data-ga-track-json="[&quot;morerelatedstories&quot;,
+ &quot;click&quot;, &quot;Dudebros of Reddit freak out as site tries to
+ reduce &quot;involuntary pornography&quot;&quot;] ">
+ <img class="lazyLoad " alt="Dudebros of Reddit
+ freak out as site tries to reduce " involuntary=" " pornography" "="
+ " data-source-standard="http://media.salon.com/2014/08/laptop_flames-150x150.jpg "/>
+ <span class="title
+ ">
+ Dudebros of Reddit freak out as site tries to reduce "involuntary pornography "
+ </span>
+ </a>
+ </li>
+ <li>
+ <a title="This Neil deGrasse Tyson podcast on the
+ origins of life is absolutely mindblowing " href="http://www.salon.com/2015/03/02/neil_degrasse_tyson_bill_nye_and_richard_dawkins_discuss_evolution_on_startalk_live/
+ " class="plain gaTrackLinkEvent " data-ga-track-json="[&quot;morerelatedstories&quot;,
+ &quot;click&quot;, &quot;This Neil deGrasse Tyson podcast on the origins
+ of life is absolutely mindblowing&quot;] ">
+ <img class="lazyLoad " alt="This Neil deGrasse
+ Tyson podcast on the origins of life is absolutely mindblowing
+ " data-source-standard="http://media.salon.com/2014/05/neil_degrasse_tyson-150x150.jpg "/>
+ <span class="title ">
+ This Neil deGrasse Tyson podcast on the origins of life is absolutely mindblowing
+ </span>
+ </a>
+ </li>
+ <li>
+ <a title="Scientists are hunting for black holes
+ on the South Pole " href="http://www.salon.com/2015/03/01/scientists_are_hunting_for_black_holes_on_the_south_pole_partner/
+ " class="plain gaTrackLinkEvent " data-ga-track-json="[&quot;morerelatedstories&quot;,
+ &quot;click&quot;, &quot;Scientists are hunting for black holes on the
+ South Pole&quot;] ">
+ <img class="lazyLoad " alt="Scientists are hunting
+ for black holes on the South Pole " data-source-standard="http://media.salon.com/2015/02/shutterstock_90296737-150x150.jpg "/>
+ <span class="title ">
+ Scientists are hunting for black holes on the South Pole
+ </span>
+ </a>
+ </li>
+ <li>
+ <a title=" " can=" " you=" " get=" " pregnant="
+ " in=" " space?"="" neil="" degrasse="" tyson="" answers="" cosmos-related=""
+ questions "=" " href="http://www.salon.com/2015/02/27/can_you_get_pregnant_in_space_neil_degrasse_tyson_answers_space_questions/
+ " class="plain gaTrackLinkEvent " data-ga-track-json="[&quot;morerelatedstories&quot;,
+ &quot;click&quot;, &quot;&quot;Can you get pregnant in space?&quot; Neil
+ deGrasse Tyson answers cosmos-related questions&quot;] ">
+ <img class="lazyLoad " alt=" " can=" " you="
+ " get=" " pregnant=" " in=" " space?"="" neil="" degrasse="" tyson="" answers=""
+ cosmos-related="" questions "=" " data-source-standard="http://media.salon.com/2014/07/neil_degrasse_tyson4-150x150.jpg "/>
+ <span class="title ">
+ "Can you get pregnant in space? " Neil deGrasse Tyson answers cosmos-related questions
+ </span>
+ </a>
+ </li>
+ <li>
+ <a title="Misery in the age of Facebook: How the
+ blinding glare of technology perverts our darkest pain " href="http://www.salon.com/2015/02/27/misery_in_the_age_of_facebook_how_the_blinding_glare_of_technology_perverts_our_darkest_pain/
+ " class="plain gaTrackLinkEvent " data-ga-track-json="[&quot;morerelatedstories&quot;,
+ &quot;click&quot;, &quot;Misery in the age of Facebook: How the blinding
+ glare of technology perverts our darkest pain&quot;] ">
+ <img class="lazyLoad " alt="Misery in the age
+ of Facebook: How the blinding glare of technology perverts our darkest
+ pain " data-source-standard="http://media.salon.com/2015/03/sad_facebook_man-150x150.jpg "/>
+ <span class="title ">
+ Misery in the age of Facebook: How the blinding glare of technology perverts our darkest pain
+ </span>
+ </a>
+ </li>
+ <li>
+ <a title="Google has captured your mind " href="http://www.salon.com/2015/02/26/google_has_captured_your_mind/
+ " class="plain gaTrackLinkEvent " data-ga-track-json="[&quot;morerelatedstories&quot;,
+ &quot;click&quot;, &quot;Google has captured your mind&quot;] ">
+ <img class="lazyLoad " alt="Google has captured
+ your mind " data-source-standard="http://media.salon.com/2015/02/google_head-150x150.jpg "/>
+ <span class="title ">
+ Google has captured your mind
+ </span>
+ </a>
+ </li>
+ <li>
+ <a title="FCC adopts Open Internet Order for net
+ neutrality in historic 3-2 vote " href="http://www.salon.com/2015/02/26/fcc_adopts_open_internet_order_for_net_neutrality_in_historic_3_2_vote/
+ " class="plain gaTrackLinkEvent " data-ga-track-json="[&quot;morerelatedstories&quot;,
+ &quot;click&quot;, &quot;FCC adopts Open Internet Order for net neutrality
+ in historic 3-2 vote &quot;] ">
+ <img class="lazyLoad " alt="FCC adopts Open Internet
+ Order for net neutrality in historic 3-2 vote " data-source-standard="http://media.salon.com/2014/09/internet-fast-lanes.jpeg-150x150.jpg "/>
+ <span class="title ">
+ FCC adopts Open Internet Order for net neutrality in historic 3-2 vote
+ </span>
+ </a>
+ </li>
+ <li>
+ <a title="Jon Stewart mocks Rep. Aaron Schock with
+ Instagram montage set to Taylor Swift " href="http://www.salon.com/2015/02/26/jon_stewart_mocks_rep_aaron_schock_with_instagram_montage_set_to_taylor_swift/
+ " class="plain gaTrackLinkEvent " data-ga-track-json="[&quot;morerelatedstories&quot;,
+ &quot;click&quot;, &quot;Jon Stewart mocks Rep. Aaron Schock with Instagram
+ montage set to Taylor Swift&quot;] ">
+ <img class="lazyLoad " alt="Jon Stewart mocks
+ Rep. Aaron Schock with Instagram montage set to Taylor Swift
+ " data-source-standard="http://media.salon.com/2015/02/Screen-Shot-2015-02-26-at-9.31.43-AM-150x150.png "/>
+ <span class="title ">
+ Jon Stewart mocks Rep. Aaron Schock with Instagram montage set to Taylor Swift
+ </span>
+ </a>
+ </li>
+ <li>
+ <a title=" " we=" " missed=" " a=" " chance="
+ " to=" " be=" " leader":="" can="" reddit
+ 's="" new="" policies="" really="" prevent="" "involuntary="" pornography"?"="" href="http://www.salon.com/2015/02/25/we_missed_a_chance_to_be_a_leader_can_reddits_new_policies_really_prevent_involuntary_pornography/" class="plain gaTrackLinkEvent" data-ga-track-json="[&quot;morerelatedstories&quot;, &quot;click&quot;, &quot;&quot;We missed a chance to be a leader&quot;: Can Reddit's new policies really prevent &quot;involuntary pornography&quot;?&quot;] ">
+ <img class="lazyLoad " alt=" " we="
+ " missed=" " a=" " chance=" " to=" " be=" " leader":="" can="" reddit
+ 's="" new="" policies="" really="" prevent="" "involuntary="" pornography"?"="" data-source-standard="http://media.salon.com/2013/04/revenge_porn_legislation-150x150.jpg"/>
+ <span class="title">
+ "We missed a chance to be a leader": Can Reddit's new policies really prevent "involuntary pornography"? </span>
+</a>
+ </li>
+ <li> <a title="We're finally getting non-white emoji" href="http://www.salon.com/2015/02/23/were_finally_getting_non_white_emoji/"
+ class="plain gaTrackLinkEvent" data-ga-track-json="[&quot;morerelatedstories&quot;, &quot;click&quot;, &quot;We're finally getting non-white emoji&quot;]">
+ <img class="lazyLoad" alt="We're finally getting non-white emoji" data-source-standard="http://media.salon.com/2015/02/emoji1-150x150.jpg"/>
+ <span class="title">
+ We're finally getting non-white emoji
+ </span>
+ </a>
+
+ </li>
+ <li> <a title="Nate Silver: " mostly="" i="" was="" getting="" credit="" for=""
+ having="" pointed="" out="" the="" obvious="" --="" and="" most="" of=""
+ rest="" luck ""="" href="http://www.salon.com/2015/02/22/nate_silver_mostly_i_was_getting_credit_for_having_pointed_out_the_obvious_and_most_of_the_rest_was_luck/"
+ class="plain gaTrackLinkEvent" data-ga-track-json="[&quot;morerelatedstories&quot;, &quot;click&quot;, &quot;Nate Silver: &quot;Mostly I was getting credit for having pointed out the obvious -- and most of the rest was luck&quot;&quot;]">
+ <img class="lazyLoad" alt="Nate Silver: " mostly="" i="" was="" getting="" credit="" for="" having="" pointed="" out="" the="" obvious="" --="" and="" most="" of="" rest="" luck""="" data-source-standard="http://media.salon.com/2015/02/nate_silver4-150x150.jpg"/>
+ <span class="title">
+ Nate Silver: "Mostly I was getting credit for having pointed out the obvious -- and most of the rest was luck"
+ </span>
+ </a>
+
+ </li>
+ </ul>
+ <div class="next control"></div>
+ </div>
+ </div>
+ <div class="horizontalPostList widget hideOnMobile">
+ <h3>Featured Slide Shows</h3>
+
+ <div>
+ <div class="slideShow" id="slideShow13902755" data-permalink="http://www.salon.com/2015/03/08/slideshow/"
+ data-article-id="13902755">
+ <ul class="toolbar">
+ <li class="shareTwitter">Share on Twitter</li>
+ <li class="shareFacebook">Share on Facebook</li>
+ <li class="count"> <span class="countCurrent">1</span>
+of <span class="countTotal">5</span>
+
+ </li>
+ <li class="closeModal onModal">Close</li>
+ <li class="fullscreen">Fullscreen</li>
+ <li class="thumbnails">Thumbnails</li>
+ </ul>
+ <ul class="slides">
+ <li class="slide">
+ <script type="json/config" class="jsonConfig scrollTrack">
+ {"slots":{"1":["pageTitle","\u201cOne girl can be silenced, but a nation of girls telling their stories becomes free\u201d slideshow",3],"2":["pageType","article",3],"3":["author","Richard (R.J.) Eskow",3],"5":["section","Technology",3]},"events":[["section","view","uber"],["section","view","libertarians"],["section","view","sydney"],["section","view","editors_picks"],["section","view","sharing_economy"],["section","view","Technology"]]}
+ </script>
+ <div class="mainImage">
+ <img class="lazyLoad" data-source-standard="http://media.salon.com/2015/03/Photo11.jpg"
+ data-source-fullscreen_small="http://media.salon.com/2015/03/Photo11.jpg"
+ data-source-fullscreen_large="http://media.salon.com/2015/03/Photo11.jpg"
+ alt=""/>
+ <ul class="nav hideOnMobile">
+ <li class="arrowBox prev"></li>
+ <li class="arrowBox next"></li>
+ </ul>
+ <ul class="mobileNav hideOnDesktop">
+ <li class="prev">Previous</li>
+ <li class="next">Next</li>
+ </ul>
+ </div>
+ <div class="content">
+ <h4>“One girl can be silenced, but a nation of girls telling their stories becomes free” slideshow</h4>
+
+ <p class="slideTitle">A photo contest winner</p>
+ </div>
+ </li>
+ <li class="slide">
+ <script type="json/config" class="jsonConfig scrollTrack">
+ {"slots":{"1":["pageTitle","\u201cOne girl can be silenced, but a nation of girls telling their stories becomes free\u201d slideshow",3],"2":["pageType","article",3],"3":["author","Richard (R.J.) Eskow",3],"5":["section","Technology",3]},"events":[["section","view","uber"],["section","view","libertarians"],["section","view","sydney"],["section","view","editors_picks"],["section","view","sharing_economy"],["section","view","Technology"]]}
+ </script>
+ <div class="mainImage">
+ <img class="lazyLoad" data-source-standard="http://media.salon.com/2015/03/Photo31-1280x960.jpg"
+ data-source-fullscreen_small="http://media.salon.com/2015/03/Photo31-1280x960.jpg"
+ data-source-fullscreen_large="http://media.salon.com/2015/03/Photo31-1900x1200.jpg"
+ alt=""/>
+ <ul class="nav hideOnMobile">
+ <li class="arrowBox prev"></li>
+ <li class="arrowBox next"></li>
+ </ul>
+ <ul class="mobileNav hideOnDesktop">
+ <li class="prev">Previous</li>
+ <li class="next">Next</li>
+ </ul>
+ </div>
+ <div class="content">
+ <h4>“One girl can be silenced, but a nation of girls telling their stories becomes free” slideshow</h4>
+
+ <p class="slideTitle">A photo contest winner</p>
+ </div>
+ </li>
+ <li class="slide">
+ <script type="json/config" class="jsonConfig scrollTrack">
+ {"slots":{"1":["pageTitle","\u201cOne girl can be silenced, but a nation of girls telling their stories becomes free\u201d slideshow",3],"2":["pageType","article",3],"3":["author","Richard (R.J.) Eskow",3],"5":["section","Technology",3]},"events":[["section","view","uber"],["section","view","libertarians"],["section","view","sydney"],["section","view","editors_picks"],["section","view","sharing_economy"],["section","view","Technology"]]}
+ </script>
+ <div class="mainImage">
+ <img class="lazyLoad" data-source-standard="http://media.salon.com/2015/03/superhero1-1280x960.jpg"
+ data-source-fullscreen_small="http://media.salon.com/2015/03/superhero1-1280x960.jpg"
+ data-source-fullscreen_large="http://media.salon.com/2015/03/superhero1-1900x1200.jpg"
+ alt=""/>
+ <ul class="nav hideOnMobile">
+ <li class="arrowBox prev"></li>
+ <li class="arrowBox next"></li>
+ </ul>
+ <ul class="mobileNav hideOnDesktop">
+ <li class="prev">Previous</li>
+ <li class="next">Next</li>
+ </ul>
+ </div>
+ <div class="content">
+ <h4>“One girl can be silenced, but a nation of girls telling their stories becomes free” slideshow</h4>
+
+ <p class="slideTitle">Superhero Project</p>
+ <p>“In life many people have two faces. You think you know someone, but they
+ are not always what they seem. You can’t always trust people. My hero would
+ be someone who is trustworthy, honest and always has their heart in the
+ right place.” Ateya Grade 9 @ Mirman Hayati School (Herat, Afghanistan)</p>
+ </div>
+ </li>
+ <li class="slide">
+ <script type="json/config" class="jsonConfig scrollTrack">
+ {"slots":{"1":["pageTitle","\u201cOne girl can be silenced, but a nation of girls telling their stories becomes free\u201d slideshow",3],"2":["pageType","article",3],"3":["author","Richard (R.J.) Eskow",3],"5":["section","Technology",3]},"events":[["section","view","uber"],["section","view","libertarians"],["section","view","sydney"],["section","view","editors_picks"],["section","view","sharing_economy"],["section","view","Technology"]]}
+ </script>
+ <div class="mainImage">
+ <img class="lazyLoad" data-source-standard="http://media.salon.com/2015/03/SuperHero5-1112x960.jpg"
+ data-source-fullscreen_small="http://media.salon.com/2015/03/SuperHero5-1112x960.jpg"
+ data-source-fullscreen_large="http://media.salon.com/2015/03/SuperHero5-1112x1200.jpg"
+ alt=""/>
+ <ul class="nav hideOnMobile">
+ <li class="arrowBox prev"></li>
+ <li class="arrowBox next"></li>
+ </ul>
+ <ul class="mobileNav hideOnDesktop">
+ <li class="prev">Previous</li>
+ <li class="next">Next</li>
+ </ul>
+ </div>
+ <div class="content">
+ <h4>“One girl can be silenced, but a nation of girls telling their stories becomes free” slideshow</h4>
+
+ <p class="slideTitle">Superhero Project</p>
+ <p>“I pray every night before I go to bed for a hero or an angel capable
+ of helping defenseless children and bringing them happiness. I reach up
+ into the sky hoping to touch a spirit who can make my wish come true.”
+ Fatimah Grade 9 @ Majoba Hervey (Herat, Afghanistan)</p>
+ </div>
+ </li>
+ <li class="slide">
+ <h3>Recent Slide Shows</h3>
+
+ <ul class="otherSlideShows lastSlide">
+ <div class="arrowBox prev hideOnMobile"></div>
+ <li> <a href="http://www.salon.com/2015/03/08/slideshow/" title="“One girl can be silenced, but a nation of girls telling their stories becomes free” slideshow">
+ <img src="http://media.salon.com/2015/03/Photo11-150x150.jpg"/>
+ <h4>“One girl can be silenced, but a nation of girls telling their stories becomes free” slideshow</h4>
+ </a>
+
+ </li>
+ <li> <a href="http://www.salon.com/2015/03/02/overdevelopment_overpopulation_overshoot/"
+ title="Overdevelopment, Overpopulation, Overshoot">
+ <img src="http://media.salon.com/2015/02/Material-World-Containers-and-City-Lights-e1425042763140-150x150.jpg"/>
+ <h4>Overdevelopment, Overpopulation, Overshoot</h4>
+ </a>
+
+ </li>
+ <li> <a href="http://www.salon.com/2015/02/26/most_popular_dog_breeds_in_america/"
+ title="Most popular dog breeds in America">
+ <img src="http://media.salon.com/2015/02/shutterstock_126021596-150x150.jpg"/>
+ <h4>Most popular dog breeds in America</h4>
+ </a>
+
+ </li>
+ <li> <a href="http://www.salon.com/2015/02/20/when_marriage_is_an_act_of_political_protest_partner/"
+ title="When marriage is an act of political protest">
+ <img src="http://media.salon.com/2015/02/EKjxq8WT6kSWxQlwHYja1eGDW72-Bukqll1h5XWkCyMg0PbYIScTDjFV2h2nIez044-ShPyW2WEE02X4KBg6Ro1-150x150.jpg"/>
+ <h4>When marriage is an act of political protest</h4>
+ </a>
+
+ </li>
+ <ul class="mobileNav hideOnDesktop">
+ <li class="prev">Previous</li>
+ </ul>
+ </ul>
+ </li>
+ </ul>
+ <div class="adPanel">
+ <div class="slideAd halfPage"></div>
+ </div>
+ <ul class="thumbnailsHolder">
+ <li>
+ <img class="lazyLoad" data-source-standard="http://media.salon.com/2015/03/Photo11-150x150.jpg"/>
+ </li>
+ <li>
+ <img class="lazyLoad" data-source-standard="http://media.salon.com/2015/03/Photo31-150x150.jpg"/>
+ </li>
+ <li>
+ <img class="lazyLoad" data-source-standard="http://media.salon.com/2015/03/superhero1-150x150.jpg"/>
+ </li>
+ <li>
+ <img class="lazyLoad" data-source-standard="http://media.salon.com/2015/03/SuperHero5-150x150.jpg"/>
+ </li>
+ </ul>
+ </div>
+ </div>
+ <div class="postSlider">
+ <div class="prev control"></div>
+ <ul class="">
+ <li> <a title="When marriage is an act of political protest" href="http://www.salon.com/2015/02/20/when_marriage_is_an_act_of_political_protest_partner/"
+ class="plain gaTrackLinkEvent" data-ga-track-json="[&quot;featuredslideshows&quot;, &quot;click&quot;, &quot;When marriage is an act of political protest&quot;]">
+ <img class="lazyLoad" alt="When marriage is an act of political protest" data-source-standard="http://media.salon.com/2015/02/EKjxq8WT6kSWxQlwHYja1eGDW72-Bukqll1h5XWkCyMg0PbYIScTDjFV2h2nIez044-ShPyW2WEE02X4KBg6Ro1-150x150.jpg"/>
+ <span class="title">
+ When marriage is an act of political protest
+ </span>
+ </a>
+
+ </li>
+ <li> <a title="Photos from the Happy Ending Salon" href="http://www.salon.com/2014/09/22/photos_from_the_happy_ending_salon/"
+ class="plain gaTrackLinkEvent" data-ga-track-json="[&quot;featuredslideshows&quot;, &quot;click&quot;, &quot;Photos from the Happy Ending Salon&quot;]">
+ <img class="lazyLoad" alt="Photos from the Happy Ending Salon" data-source-standard="http://media.salon.com/2014/09/picks1-7G5A7893-S1-150x150.jpg"/>
+ <span class="title">
+ Photos from the Happy Ending Salon
+ </span>
+ </a>
+
+ </li>
+ <li> <a title="Make Summer More Poetic with These 10 International Works" href="http://www.salon.com/2014/06/17/make_your_summer_more_poetic_with_these_10_international_works/"
+ class="plain gaTrackLinkEvent" data-ga-track-json="[&quot;featuredslideshows&quot;, &quot;click&quot;, &quot;Make Summer More Poetic with These 10 International Works&quot;]">
+ <img class="lazyLoad" alt="Make Summer More Poetic with These 10 International Works" data-source-standard="http://media.salon.com/2014/06/Photo-of-Books4-150x150.jpg"/>
+ <span class="title">
+ Make Summer More Poetic with These 10 International Works
+ </span>
+ </a>
+
+ </li>
+ <li> <a title="8 Illustrated Books for Every Age and Every Summer Reading List "
+ href="http://www.salon.com/2014/06/12/8_illustrated_books_for_every_age_and_every_summer_reading_list/"
+ class="plain gaTrackLinkEvent" data-ga-track-json="[&quot;featuredslideshows&quot;, &quot;click&quot;, &quot;8 Illustrated Books for Every Age and Every Summer Reading List &quot;]">
+ <img class="lazyLoad" alt="8 Illustrated Books for Every Age and Every Summer Reading List " data-source-standard="http://media.salon.com/2014/06/Photo-of-Books3-150x150.jpg"/>
+ <span class="title">
+ 8 Illustrated Books for Every Age and Every Summer Reading List
+ </span>
+ </a>
+
+ </li>
+ <li> <a title="10 Great Science Reads That You Can Take to the Beach" href="http://www.salon.com/2014/06/11/10_great_science_reads_that_you_can_take_to_the_beach/"
+ class="plain gaTrackLinkEvent" data-ga-track-json="[&quot;featuredslideshows&quot;, &quot;click&quot;, &quot;10 Great Science Reads That You Can Take to the Beach&quot;]">
+ <img class="lazyLoad" alt="10 Great Science Reads That You Can Take to the Beach" data-source-standard="http://media.salon.com/2014/06/Photo-of-Books2-150x150.jpg"/>
+ <span class="title">
+ 10 Great Science Reads That You Can Take to the Beach
+ </span>
+ </a>
+
+ </li>
+ <li> <a title="Turn Summer into a Literary Field Day with these 9 Collections of Non-Fiction Sports Writing"
+ href="http://www.salon.com/2014/06/10/turn_summer_into_a_literary_field_day_with_these_9_sports_novels/"
+ class="plain gaTrackLinkEvent" data-ga-track-json="[&quot;featuredslideshows&quot;, &quot;click&quot;, &quot;Turn Summer into a Literary Field Day with these 9 Collections of Non-Fiction Sports Writing&quot;]">
+ <img class="lazyLoad" alt="Turn Summer into a Literary Field Day with these 9 Collections of Non-Fiction Sports Writing" data-source-standard="http://media.salon.com/2014/06/Photo-of-Books1-150x150.jpg"/>
+ <span class="title">
+ Turn Summer into a Literary Field Day with these 9 Collections of Non-Fiction Sports Writing
+ </span>
+ </a>
+
+ </li>
+ <li> <a title="Travel to Foreign Lands in 10 Newly Translated Novels" href="http://www.salon.com/2014/06/09/travel_to_foreign_lands_in_10_newly_translated_novels/"
+ class="plain gaTrackLinkEvent" data-ga-track-json="[&quot;featuredslideshows&quot;, &quot;click&quot;, &quot;Travel to Foreign Lands in 10 Newly Translated Novels&quot;]">
+ <img class="lazyLoad" alt="Travel to Foreign Lands in 10 Newly Translated Novels" data-source-standard="http://media.salon.com/2014/06/TranslationCollage11-150x150.png"/>
+ <span class="title">
+ Travel to Foreign Lands in 10 Newly Translated Novels
+ </span>
+ </a>
+
+ </li>
+ <li> <a title="Get Lost in 8 Great Biographies – from Lawrence of Arabia to Margaret Fuller"
+ href="http://www.salon.com/2014/06/06/get_lost_in_8_great_biographies_%e2%80%93_from_lawrence_of_arabia_to_margaret_fuller/"
+ class="plain gaTrackLinkEvent" data-ga-track-json="[&quot;featuredslideshows&quot;, &quot;click&quot;, &quot;Get Lost in 8 Great Biographies – from Lawrence of Arabia to Margaret Fuller&quot;]">
+ <img class="lazyLoad" alt="Get Lost in 8 Great Biographies – from Lawrence of Arabia to Margaret Fuller" data-source-standard="http://media.salon.com/2014/06/Photo-of-Books-1-150x150.jpg"/>
+ <span class="title">
+ Get Lost in 8 Great Biographies – from Lawrence of Arabia to Margaret Fuller
+ </span>
+ </a>
+
+ </li>
+ <li> <a title="Explore Diverse Cultures Through Varied Genres with These 8 New Works"
+ href="http://www.salon.com/2014/06/04/explore_diverse_cultures_through_varied_genres_with_these_8_new_works/"
+ class="plain gaTrackLinkEvent" data-ga-track-json="[&quot;featuredslideshows&quot;, &quot;click&quot;, &quot;Explore Diverse Cultures Through Varied Genres with These 8 New Works&quot;]">
+ <img class="lazyLoad" alt="Explore Diverse Cultures Through Varied Genres with These 8 New Works" data-source-standard="http://media.salon.com/2014/06/IMG_5565-150x142.jpg"/>
+ <span class="title">
+ Explore Diverse Cultures Through Varied Genres with These 8 New Works
+ </span>
+ </a>
+
+ </li>
+ <li> <a title="8 Great Essay Collections for Your Reading Pleasure" href="http://www.salon.com/2014/06/02/eight_great_essay_collections_for_your_reading_pleasure/"
+ class="plain gaTrackLinkEvent" data-ga-track-json="[&quot;featuredslideshows&quot;, &quot;click&quot;, &quot;8 Great Essay Collections for Your Reading Pleasure&quot;]">
+ <img class="lazyLoad" alt="8 Great Essay Collections for Your Reading Pleasure" data-source-standard="http://media.salon.com/2014/06/Diamonstein-longlist-covers-150x80.jpg"/>
+ <span class="title">
+ 8 Great Essay Collections for Your Reading Pleasure
+ </span>
+ </a>
+
+ </li>
+ <li> <a title="Looking for Fresh Fiction for your Summer Reading? " href="http://www.salon.com/2014/05/30/looking_for_fresh_fiction_for_your_summer_reading/"
+ class="plain gaTrackLinkEvent" data-ga-track-json="[&quot;featuredslideshows&quot;, &quot;click&quot;, &quot;Looking for Fresh Fiction for your Summer Reading? &quot;]">
+ <img class="lazyLoad" alt="Looking for Fresh Fiction for your Summer Reading? " data-source-standard="http://media.salon.com/2014/05/Photo-of-Books-150x150.jpg"/>
+ <span class="title">
+ Looking for Fresh Fiction for your Summer Reading?
+ </span>
+ </a>
+
+ </li>
+ <li> <a title="Tough love: An intimate look at Mexico City's retired (and semi-retired) sex workers"
+ href="http://www.salon.com/2014/04/21/tough_love_an_intimate_look_at_mexico_citys_retired_and_semi_retired_sex_workers_partner/"
+ class="plain gaTrackLinkEvent" data-ga-track-json="[&quot;featuredslideshows&quot;, &quot;click&quot;, &quot;Tough love: An intimate look at Mexico City's retired (and semi-retired) sex workers&quot;]">
+ <img class="lazyLoad" alt="Tough love: An intimate look at Mexico City's retired (and semi-retired) sex workers" data-source-standard="http://media.salon.com/2014/04/iXNQ_VNO3fPy6G4D63c3yEtExOcRDlVYPyhG_iiPI98-150x150.jpg"/>
+ <span class="title">
+ Tough love: An intimate look at Mexico City's retired (and semi-retired) sex workers
+ </span>
+ </a>
+
+ </li>
+ <li> <a title="Famous literary meals" href="http://www.salon.com/2014/04/17/famous_literary_meals/"
+ class="plain gaTrackLinkEvent" data-ga-track-json="[&quot;featuredslideshows&quot;, &quot;click&quot;, &quot;Famous literary meals&quot;]">
+ <img class="lazyLoad" alt="Famous literary meals" data-source-standard="http://media.salon.com/2014/04/Fictitious_Dishes_aliceinwonderland-150x150.jpg"/>
+ <span class="title">
+ Famous literary meals
+ </span>
+ </a>
+
+ </li>
+ </ul>
+ <div class="next control"></div>
+ </div>
+ </div>
+ <div class="related-video widget hideOnMobile">
+ <h3>Related Videos</h3>
+
+ <div class="related-video-content"></div>
+ </div>
+ <div class="widget">
+ <h3 id="comments">Comments</h3>
+ <div class="live-fyre" data-network="salon.fyre.co" data-article-id="13850779"
+ data-site-id="321741" data-checksum="5531e97811a624bd13a68fe55fea88b2"
+ data-collection-meta="eyJ0eXAiOiJqd3QiLCJhbGciOiJIUzI1NiJ9.eyJ0aXRsZSI6IlRoZSBzaGFyaW5nIGVjb25vbXkgaXMgYSBsaWU6IFViZXIsIEF5biBSYW5kIGFuZCB0aGUgdHJ1dGggYWJvdXQgdGVjaCBhbmQgbGliZXJ0YXJpYW5zIiwidXJsIjoiaHR0cDpcL1wvd3d3LnNhbG9uLmNvbVwvMjAxNVwvMDJcLzAxXC90aGVfc2hhcmluZ19lY29ub215X2lzX2FfbGllX3ViZXJfYXluX3JhbmRfYW5kX3RoZV90cnV0aF9hYm91dF90ZWNoX2FuZF9saWJlcnRhcmlhbnNcLyIsInRhZ3MiOiJ1YmVyLGxpYmVydGFyaWFucyxTeWRuZXksRWRpdG9yJ3MgUGlja3Msc2hhcmluZyBlY29ub215IiwiY2hlY2tzdW0iOiI1NTMxZTk3ODExYTYyNGJkMTNhNjhmZTU1ZmVhODhiMiIsImFydGljbGVJZCI6MTM4NTA3Nzl9.BIevOPSXsK5yWaXiiDg-Zt4OMigkiNqT063mETawTdI">
+ <script type="json/config" class="jsonConfig commentsTrack">
+ {"slots":{"1":["pageTitle","The sharing economy is a lie: Uber, Ayn Rand and the truth about tech and libertarians",3],"2":["pageType","article",3],"3":["author","Richard (R.J.) Eskow",3],"5":["section","Technology",3]},"events":[["section","view","uber"],["section","view","libertarians"],["section","view","sydney"],["section","view","editors_picks"],["section","view","sharing_economy"],["section","view","Technology"]]}
+ </script>
+ <p class="hideOnMobile">Loading Comments...</p>
+ </div>
+ </div>
+ <div id="powered_by_livefyre_new"><a href="http://livefyre.com" target="_blank">Powered by Livefyre</a>
+ </div>
+ </div>
+ </div>
+ <div class="grid_4 rightSidebar">
+ <div class="300-atf-ad-widget widget">
+ <div class="bannerWrapper alpha omega">
+ <div data-position-name="300-atf" class="adPosition halfPage ad-300-atf flex"></div>
+ </div>
+ </div>
+ <div class="followSalon widget">
+ <h3>follow salon</h3>
+
+ <ul>
+ <li class="facebook"> <a href="https://www.facebook.com/salon" target="_blank" class="gaTrackLinkEvent"
+ data-ga-track-json="[&quot;followSalon&quot;, &quot;click&quot;, &quot;facebook&quot;]">
+ </a>
+ </li>
+ <li class="twitter"> <a href="http://twitter.com/salon" target="_blank" class="gaTrackLinkEvent"
+ data-ga-track-json="[&quot;followSalon&quot;, &quot;click&quot;, &quot;twitter&quot;]">
+ </a>
+
+ </li>
+ <li class="google"> <a href="https://plus.google.com/+salon/" target="_blank" class="gaTrackLinkEvent"
+ data-ga-track-json="[&quot;followSalon&quot;, &quot;click&quot;, &quot;googlePlus&quot;]">
+ </a>
+
+ </li>
+ <li class="apple"> <a href="http://itunes.apple.com/us/app/salon.com/id549374205?mt=8" target="_blank"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;followSalon&quot;, &quot;click&quot;, &quot;apple&quot;]">
+ </a>
+
+ </li>
+ <li class="android"> <a href="https://play.google.com/store/apps/developer?id=Salon" target="_blank"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;followSalon&quot;, &quot;click&quot;, &quot;android&quot;]">
+ </a>
+
+ </li>
+ <li class="tumblr"> <a href="http://salon.tumblr.com/" target="_blank" class="gaTrackLinkEvent"
+ data-ga-track-json="[&quot;followSalon&quot;, &quot;click&quot;, &quot;tumblr&quot;]">
+ </a>
+
+ </li>
+ <li class="pinterest"> <a href="http://pinterest.com/salonmedia/" target="_blank" class="gaTrackLinkEvent"
+ data-ga-track-json="[&quot;followSalon&quot;, &quot;click&quot;, &quot;pinterest&quot;]">
+ </a>
+
+ </li>
+ <li class="rss hideOnMobile"> <a href="/rss" target="_blank" class="gaTrackLinkEvent" data-ga-track-json="[&quot;followSalon&quot;, &quot;click&quot;, &quot;rss&quot;]">
+ </a>
+
+ </li>
+ </ul>
+ <form class="newsletterSignup" action="/newsletter/subscribe/" method="post">
+ <div class="msg"></div>
+ <input placeholder="Email Address" class="email hideOnSuccess" name="contact[email]"/>
+ <input name="subscribe" value="1" type="hidden"/>
+ <input type="submit" class="submit button hideOnSuccess" value="Subscribe"/>
+ </form>
+ </div>
+ <div class="125-custom-ad-widget one-twenty-five-custom widget">
+ <div class="bannerWrapper alpha omega">
+ <div class="adLabel">brought to you by</div>
+ <div data-position-name="125-custom" class="adPosition ad-125-custom flex"></div>
+ </div>
+ </div>
+ <div class="widget smr-widget">
+ <h2>Most Read</h2>
+
+ <ul>
+ <li class="smr-post"> <a href="http://www.salon.com/2015/03/16/the_worst_song_of_2015_is_here_meghan_trainors_dear_future_husband/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;mostread&quot;,&quot;click&quot;,&quot;The worst song of 2015 is here: Meghan Trainor's \&quot;Dear Future Husband\&quot;&quot;]"
+ title="The worst song of 2015 is here: Meghan Trainor's &quot;Dear Future Husband&quot;">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/trainor3-90x60.jpg"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/trainor3-300x200.jpg"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2015/03/16/the_worst_song_of_2015_is_here_meghan_trainors_dear_future_husband/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;mostread&quot;,&quot;click&quot;,&quot;The worst song of 2015 is here: Meghan Trainor's \&quot;Dear Future Husband\&quot;&quot;]"
+ title="The worst song of 2015 is here: Meghan Trainor's &quot;Dear Future Husband&quot;">
+ The worst song of 2015 is here: Meghan Trainor's "Dear Future Husband"
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/anna_silman/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Anna Silman&quot;]">Anna Silman</a>
+ </span>
+
+ </div>
+ </li>
+ <li class="smr-post"> <a href="http://www.salon.com/2015/03/16/my_shucking_and_jiving_years_i_was_the_black_guy_in_a_white_frat/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;mostread&quot;,&quot;click&quot;,&quot;I was the black guy in a white frat&quot;]"
+ title="I was the black guy in a white frat">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/kasai_rex4-90x60.jpg"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/kasai_rex4-300x200.jpg"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2015/03/16/my_shucking_and_jiving_years_i_was_the_black_guy_in_a_white_frat/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;mostread&quot;,&quot;click&quot;,&quot;I was the black guy in a white frat&quot;]"
+ title="I was the black guy in a white frat">
+ I was the black guy in a white frat
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/kasai_rex/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Kasai Rex&quot;]">Kasai Rex</a>
+ </span>
+
+ </div>
+ </li>
+ <li class="smr-post"> <a href="http://www.salon.com/2015/03/16/the_year_long_open_marriage_experiment_what_this_woman_learned_could_save_your_sex_life/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;mostread&quot;,&quot;click&quot;,&quot;The year-long open marriage experiment: What this woman learned could save your sex life&quot;]"
+ title="The year-long open marriage experiment: What this woman learned could save your sex life">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/robin_rinaldi-90x60.jpg"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/robin_rinaldi-300x200.jpg"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2015/03/16/the_year_long_open_marriage_experiment_what_this_woman_learned_could_save_your_sex_life/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;mostread&quot;,&quot;click&quot;,&quot;The year-long open marriage experiment: What this woman learned could save your sex life&quot;]"
+ title="The year-long open marriage experiment: What this woman learned could save your sex life">
+ The year-long open marriage experiment: What this woman learned could save your sex life
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/tracy_clark_flory/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Tracy Clark-Flory&quot;]">Tracy Clark-Flory</a>
+ </span>
+
+ </div>
+ </li>
+ <li class="smr-post"> <a href="http://www.salon.com/2015/03/17/the_best_twitter_responses_to_starbucks_ill_considered_racetogether_campaign/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;mostread&quot;,&quot;click&quot;,&quot;Starbucks' cringe-inducing #RaceTogether campaign has caused a Twitter firestorm&quot;]"
+ title="Starbucks' cringe-inducing #RaceTogether campaign has caused a Twitter firestorm">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/race_together-90x60.jpg"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/race_together-300x200.jpg"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2015/03/17/the_best_twitter_responses_to_starbucks_ill_considered_racetogether_campaign/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;mostread&quot;,&quot;click&quot;,&quot;Starbucks' cringe-inducing #RaceTogether campaign has caused a Twitter firestorm&quot;]"
+ title="Starbucks' cringe-inducing #RaceTogether campaign has caused a Twitter firestorm">
+ Starbucks' cringe-inducing #RaceTogether campaign has caused a Twitter firestorm
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/joanna_rothkopf/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Joanna Rothkopf&quot;]">Joanna Rothkopf</a>
+ </span>
+
+ </div>
+ </li>
+ <li class="smr-post"> <a href="http://www.salon.com/2015/03/17/ashley_judd_pressing_charges_against_misogynist_trolls_who_threatened_her_over_sports/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;mostread&quot;,&quot;click&quot;,&quot;Ashley Judd pressing charges against misogynist trolls who threatened her over sports&quot;]"
+ title="Ashley Judd pressing charges against misogynist trolls who threatened her over sports">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2012/12/ashley_judd_rect-90x60.jpg"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2012/12/ashley_judd_rect-300x200.jpg"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2015/03/17/ashley_judd_pressing_charges_against_misogynist_trolls_who_threatened_her_over_sports/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;mostread&quot;,&quot;click&quot;,&quot;Ashley Judd pressing charges against misogynist trolls who threatened her over sports&quot;]"
+ title="Ashley Judd pressing charges against misogynist trolls who threatened her over sports">
+ Ashley Judd pressing charges against misogynist trolls who threatened her over sports
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/jenny_kutner/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Jenny Kutner&quot;]">Jenny Kutner</a>
+ </span>
+
+ </div>
+ </li>
+ <li class="smr-post"> <a href="http://www.salon.com/2015/03/17/republicans_are_getting_worse_barney_frank_unloads_on_gop_bigotry_and_obamas_mistakes/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;mostread&quot;,&quot;click&quot;,&quot;\&quot;Republicans are getting worse\&quot;: Barney Frank unloads on GOP bigotry -- and Obama's mistakes&quot;]"
+ title="&quot;Republicans are getting worse&quot;: Barney Frank unloads on GOP bigotry -- and Obama's mistakes">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2013/08/barney_frank-90x60.jpg"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2013/08/barney_frank-300x200.jpg"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2015/03/17/republicans_are_getting_worse_barney_frank_unloads_on_gop_bigotry_and_obamas_mistakes/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;mostread&quot;,&quot;click&quot;,&quot;\&quot;Republicans are getting worse\&quot;: Barney Frank unloads on GOP bigotry -- and Obama's mistakes&quot;]"
+ title="&quot;Republicans are getting worse&quot;: Barney Frank unloads on GOP bigotry -- and Obama's mistakes">
+ "Republicans are getting worse": Barney Frank unloads on GOP bigotry -- and Obama's mistakes
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/elias_isquith/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Elias Isquith&quot;]">Elias Isquith</a>
+ </span>
+
+ </div>
+ </li>
+ <li class="smr-post"> <a href="http://www.salon.com/2015/03/15/the_big_fk_buddy_lie_campus_hookups_and_the_dark_story_of_male_sexual_desire/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;mostread&quot;,&quot;click&quot;,&quot;The big \&quot;f**k buddy\&quot; lie: Campus hookups and the dark story of male sexual desire&quot;]"
+ title="The big &quot;f**k buddy&quot; lie: Campus hookups and the dark story of male sexual desire">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/neighbors6-90x60.jpg"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/neighbors6-300x200.jpg"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2015/03/15/the_big_fk_buddy_lie_campus_hookups_and_the_dark_story_of_male_sexual_desire/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;mostread&quot;,&quot;click&quot;,&quot;The big \&quot;f**k buddy\&quot; lie: Campus hookups and the dark story of male sexual desire&quot;]"
+ title="The big &quot;f**k buddy&quot; lie: Campus hookups and the dark story of male sexual desire">
+ The big "f**k buddy" lie: Campus hookups and the dark story of male sexual desire
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/dr_melvin_konner/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Dr. Melvin Konner&quot;]">Dr. Melvin Konner</a>
+ </span>
+
+ </div>
+ </li>
+ <li class="smr-post"> <a href="http://www.salon.com/2015/03/15/the_democratic_party_is_facing_a_catholic_apocalypse/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;mostread&quot;,&quot;click&quot;,&quot;The Democratic Party is facing a Catholic apocalypse&quot;]"
+ title="The Democratic Party is facing a Catholic apocalypse">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/pope_francis_jfk-90x60.jpg"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/pope_francis_jfk-300x200.jpg"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2015/03/15/the_democratic_party_is_facing_a_catholic_apocalypse/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;mostread&quot;,&quot;click&quot;,&quot;The Democratic Party is facing a Catholic apocalypse&quot;]"
+ title="The Democratic Party is facing a Catholic apocalypse">
+ The Democratic Party is facing a Catholic apocalypse
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/patricia_miller/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Patricia Miller&quot;]">Patricia Miller</a>
+ </span>
+
+ </div>
+ </li>
+ <li class="smr-post"> <a href="http://www.salon.com/2015/03/15/when_buddhism_goes_bad_how_a_yoga_and_meditation_retreat_turned_cult_like_and_deadly/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;mostread&quot;,&quot;click&quot;,&quot;When Buddhism goes bad: How a yoga and meditation retreat turned cult-like and deadly&quot;]"
+ title="When Buddhism goes bad: How a yoga and meditation retreat turned cult-like and deadly">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/roach_mcnally-90x60.jpg"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/roach_mcnally-300x200.jpg"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2015/03/15/when_buddhism_goes_bad_how_a_yoga_and_meditation_retreat_turned_cult_like_and_deadly/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;mostread&quot;,&quot;click&quot;,&quot;When Buddhism goes bad: How a yoga and meditation retreat turned cult-like and deadly&quot;]"
+ title="When Buddhism goes bad: How a yoga and meditation retreat turned cult-like and deadly">
+ When Buddhism goes bad: How a yoga and meditation retreat turned cult-like and deadly
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/laura_miller/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Laura Miller&quot;]">Laura Miller</a>
+ </span>
+
+ </div>
+ </li>
+ <li class="smr-post"> <a href="http://www.salon.com/2015/03/16/holy_sht_john_oliver_blasts_ncaa_over_1_billion_march_madness_scam/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;mostread&quot;,&quot;click&quot;,&quot;\&quot;Holy sh*t!\&quot; John Oliver blasts NCAA over $1 billion March Madness scam&quot;]"
+ title="&quot;Holy sh*t!&quot; John Oliver blasts NCAA over $1 billion March Madness scam">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/Screen-Shot-2015-03-16-at-8.59.22-AM-90x60.png"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/Screen-Shot-2015-03-16-at-8.59.22-AM-300x200.png"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2015/03/16/holy_sht_john_oliver_blasts_ncaa_over_1_billion_march_madness_scam/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;mostread&quot;,&quot;click&quot;,&quot;\&quot;Holy sh*t!\&quot; John Oliver blasts NCAA over $1 billion March Madness scam&quot;]"
+ title="&quot;Holy sh*t!&quot; John Oliver blasts NCAA over $1 billion March Madness scam">
+ "Holy sh*t!" John Oliver blasts NCAA over $1 billion March Madness scam
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/colin_gorenstein/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Colin Gorenstein&quot;]">Colin Gorenstein</a>
+ </span>
+
+ </div>
+ </li>
+ <li class="smr-post"> <a href="http://www.salon.com/2015/03/16/rahm_emanuels_achilles_heel_6_reasons_he_may_lose_his_reelection/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;mostread&quot;,&quot;click&quot;,&quot;Rahm Emanuel's Achilles' heel: 6 reasons he may lose his reelection &quot;]"
+ title="Rahm Emanuel's Achilles' heel: 6 reasons he may lose his reelection ">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/rahm_emanuel3-90x60.jpg"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/rahm_emanuel3-300x200.jpg"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2015/03/16/rahm_emanuels_achilles_heel_6_reasons_he_may_lose_his_reelection/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;mostread&quot;,&quot;click&quot;,&quot;Rahm Emanuel's Achilles' heel: 6 reasons he may lose his reelection &quot;]"
+ title="Rahm Emanuel's Achilles' heel: 6 reasons he may lose his reelection ">
+ Rahm Emanuel's Achilles' heel: 6 reasons he may lose his reelection
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/carl_gibson/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Carl Gibson&quot;]">Carl Gibson</a>
+ </span>
+
+ </div>
+ </li>
+ <li class="smr-post"> <a href="http://www.salon.com/2015/03/16/a_guy_most_famous_for_saying_f_you_michael_moore_is_now_marrying_bristol_palin/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;mostread&quot;,&quot;click&quot;,&quot;A guy most famous for saying \&quot;F*** you Michael Moore\&quot; is now marrying Bristol Palin&quot;]"
+ title="A guy most famous for saying &quot;F*** you Michael Moore&quot; is now marrying Bristol Palin">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/sarah_bristol_palin-90x60.jpg"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2015/03/sarah_bristol_palin-300x200.jpg"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2015/03/16/a_guy_most_famous_for_saying_f_you_michael_moore_is_now_marrying_bristol_palin/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;mostread&quot;,&quot;click&quot;,&quot;A guy most famous for saying \&quot;F*** you Michael Moore\&quot; is now marrying Bristol Palin&quot;]"
+ title="A guy most famous for saying &quot;F*** you Michael Moore&quot; is now marrying Bristol Palin">
+ A guy most famous for saying "F*** you Michael Moore" is now marrying Bristol Palin
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/colin_gorenstein/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Colin Gorenstein&quot;]">Colin Gorenstein</a>
+ </span>
+
+ </div>
+ </li>
+ <li class="smr-post"> <a href="http://www.salon.com/2012/10/27/whats_the_secret_to_learning_a_second_lanuage/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;mostread&quot;,&quot;click&quot;,&quot;What's the secret to learning a second language?&quot;]"
+ title="What's the secret to learning a second language?">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2012/08/ravenous_brain_rect-90x60.jpg"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2012/08/ravenous_brain_rect-300x200.jpg"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2012/10/27/whats_the_secret_to_learning_a_second_lanuage/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;mostread&quot;,&quot;click&quot;,&quot;What's the secret to learning a second language?&quot;]"
+ title="What's the secret to learning a second language?">
+ What's the secret to learning a second language?
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/bonnie_tsui/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Bonnie Tsui&quot;]">Bonnie Tsui</a>, Pacific Standard
+ </span>
+
+ </div>
+ </li>
+ <li class="smr-post"> <a href="http://www.salon.com/2011/03/27/pegging/" class="gaTrackLinkEvent"
+ data-ga-track-json="[&quot;mostread&quot;,&quot;click&quot;,&quot;Bringing up the rear&quot;]"
+ title="Bringing up the rear">
+ <span class="thumbWrap">
+
+ <img class="lazyLoad hideOnMobile" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2011/03/bringing_up_the_rear-90x60.jpg"/>
+ <img class="lazyLoad mobileOnly" data-yab-app="lazy-loader" data-source-standard="http://media.salon.com/2011/03/bringing_up_the_rear-300x200.jpg"/>
+ </span>
+ </a>
+
+ <div class="story-info"> <a href="http://www.salon.com/2011/03/27/pegging/" class="gaTrackLinkEvent"
+ data-ga-track-json="[&quot;mostread&quot;,&quot;click&quot;,&quot;Bringing up the rear&quot;]"
+ title="Bringing up the rear">
+ Bringing up the rear
+ </a>
+ <span class="byline">
+ <a href="http://www.salon.com/writer/tracy_clark_flory/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;author&quot;,&quot;click&quot;, &quot;Tracy Clark-Flory&quot;]">Tracy Clark-Flory</a>
+ </span>
+
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div data-yab-app="zergnet-widget" class="zergnet-widget widget hideOnMobile">
+ <h2>From Around the Web</h2>
+
+ <div id="zergnet-widget-24647"></div>
+ <h5>Presented by Zergnet</h5>
+
+ </div>
+ <div class="YieldMo-widget widget">
+ <div id="ym_1007926185661151421" class="ym"></div>
+ </div>
+ <div class="300-mi2-ad-widget widget">
+ <div class="bannerWrapper alpha omega">
+ <div data-position-name="300-mi2" class="adPosition halfPage ad-300-mi2 flex height"></div>
+ </div>
+ </div>
+ <div class="300-mi3-ad-widget widget">
+ <div class="bannerWrapper alpha omega">
+ <div data-position-name="300-mi3" class="adPosition halfPage ad-300-mi3 flex height"></div>
+ </div>
+ </div>
+ <div class="widget linkList hideOnMobile salon-partner-widget ">
+ <div class="sectionHeader"><a class="source" title="Buzzfeed Tech" href="http://www.buzzfeed.com/tech"
+ target="_blank"><img src="http://media.salon.com/2012/10/buzzfeed_tech.png" class="icon"/></a>
+ </div>
+ <div class="widgetContent">
+ <ul class="listContent">
+ <li> <a class="gaTrackLinkEvent" data-ga-track-json="[&quot;Buzzfeed Tech&quot;, &quot;click&quot;, &quot;Google Filed A Patent For A Wearable To Zap Cancer&quot;]"
+ title="March 18, 2015" href="http://www.buzzfeed.com/stephaniemlee/google-filed-a-patent-for-a-wearable-to-zap-cancer?utm_term=4ldqpia"
+ target="_blank"><p>Google Filed A Patent For A Wearable To Zap Cancer</p></a>
+ </li>
+ <li> <a class="gaTrackLinkEvent" data-ga-track-json="[&quot;Buzzfeed Tech&quot;, &quot;click&quot;, &quot;This Startup Is Designing Yeast To Make Brand-New Scents, Flavors&quot;]"
+ title="March 18, 2015" href="http://www.buzzfeed.com/stephaniemlee/this-startup-is-designing-yeast-to-make-brand-new-scents-fla?utm_term=4ldqpia"
+ target="_blank"><p>This Startup Is Designing Yeast To Make Brand-New Scents, Flavors</p></a>
+ </li>
+ <li> <a class="gaTrackLinkEvent" data-ga-track-json="[&quot;Buzzfeed Tech&quot;, &quot;click&quot;, &quot;With Windows 10, Microsoft Looks To China For Growth&quot;]"
+ title="March 18, 2015" href="http://www.buzzfeed.com/brendanklinkenberg/with-windows-10-microsoft-looks-to-china-for-growth?utm_term=4ldqpia"
+ target="_blank"><p>With Windows 10, Microsoft Looks To China For Growth</p></a>
+ </li>
+ <li> <a class="gaTrackLinkEvent" data-ga-track-json="[&quot;Buzzfeed Tech&quot;, &quot;click&quot;, &quot;17 Things People Who Are Addicted To Meerkat Are Sick Of Hearing&quot;]"
+ title="March 17, 2015" href="http://www.buzzfeed.com/katienotopoulos/17-things-people-who-are-addicted-to-meerkat-are-sick-of-hea?utm_term=4ldqpia"
+ target="_blank"><p>17 Things People Who Are Addicted To Meerkat Are Sick Of Hearing</p></a>
+ </li>
+ <li> <a class="gaTrackLinkEvent" data-ga-track-json="[&quot;Buzzfeed Tech&quot;, &quot;click&quot;, &quot;Twitter Is Limiting Porn In Top Search Results&quot;]"
+ title="March 17, 2015" href="http://www.buzzfeed.com/charliewarzel/twitter-limiting-porn-in-top-search-results?utm_term=4ldqpia"
+ target="_blank"><p>Twitter Is Limiting Porn In Top Search Results</p></a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ <div class="300-btf-ad-widget widget">
+ <div class="bannerWrapper alpha omega">
+ <div data-position-name="300-btf" class="adPosition halfPage ad-300-btf flex height"></div>
+ </div>
+ </div>
+ </div>
+ <div class="clear"></div>
+ <div class="contentFootContainer">
+ <div class="bannerWrapper flatBottom">
+ <div data-position-name="728-btf" class="adPosition leaderBoard ad-728-btf "></div>
+ </div>
+ <nav> <a href="http://www.salon.com/about/" class="gaTrackLinkEvent" data-ga-track-json="[&quot;footer&quot;, &quot;click&quot;, &quot;about&quot;]">
+ About
+ </a>|<a href="http://www.salon.com/about/advertise/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;footer&quot;, &quot;click&quot;, &quot;advertising&quot;]">
+ Advertising
+ </a>|<a href="http://www.salon.com/about/contact/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;footer&quot;, &quot;click&quot;, &quot;contact&quot;]">
+ Contact
+ </a>|<a href="http://www.salon.com/about/corrections/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;footer&quot;, &quot;click&quot;, &quot;corrections&quot;]">
+ Corrections
+ </a>|<a href="http://www.salon.com/about/contact/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;footer&quot;, &quot;click&quot;, &quot;help&quot;]">
+ Help
+ </a>|<a href="http://www.salon.com/about/ir/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;footer&quot;, &quot;click&quot;, &quot;investor relations&quot;]">
+ Investor Relations
+ </a>|<a href="http://www.salon.com/about/policy/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;footer&quot;, &quot;click&quot;, &quot;privacy&quot;]">
+ Privacy
+ </a>|<a href="http://www.salon.com/about/tos/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;footer&quot;, &quot;click&quot;, &quot;terms of service&quot;]">
+ Terms of Service
+ </a>|<a href="http://www.salon.com/deals/"
+ class="gaTrackLinkEvent" data-ga-track-json="[&quot;footer&quot;, &quot;click&quot;, &quot;deals&quot;]">
+ Deals
+ </a>
+ </nav>
+ </div>
+ </div>
+ </section>
+ <div class="clear"></div>
+ </div>
+ <div id="footer" class="container_12">Copyright © 2015 Salon Media Group, Inc. Reproduction of material from
+ any Salon pages without written permission is strictly prohibited.
+ <br/>
+ <br/>SALON ® is registered in the U.S. Patent and Trademark Office as a trademark
+ of Salon Media Group Inc.
+ <br/>
+ <br/>Associated Press articles: Copyright © 2015 The Associated Press. All
+ rights reserved. This material may not be published, broadcast, rewritten
+ or redistributed.
+ <br/>
+ <br/>
+ </div>
+ <div class="trackingCode hide">
+ <script type="json/config" class="gaTrackingConfig">
+ {"slots":{"1":["pageTitle","The sharing economy is a lie: Uber, Ayn Rand and the truth about tech and libertarians",3],"2":["pageType","article",3],"3":["author","Richard (R.J.) Eskow",3],"5":["section","Technology",3]},"events":[["section","view","uber"],["section","view","libertarians"],["section","view","sydney"],["section","view","editors_picks"],["section","view","sharing_economy"],["section","view","Technology"]]}
+ </script>
+ <!-- comScore Tag -->
+ <noscript>
+ <img src="http://b.scorecardresearch.com/p?c1=2&c2=6662697&c3=&c4=&c5=&c6=&c15=&cj=1"
+ style="display: none;" border="0" height="1" width="1" />
+ </noscript>
+ <!-- End comScore Tag -->
+ <!-- Quantcast Tag -->
+ <noscript>
+ <div style="display: none;">
+ <img src="//pixel.quantserve.com/pixel/p-88O9JRUYuy_46.gif" height="1"
+ width="1" alt="Quantcast" />
+ </div>
+ </noscript>
+ <!-- End Quantcast tag -->
+ </div>
+ <div class="adContainer" data-tags="[&quot;Technology&quot;,&quot;uber&quot;,&quot;libertarians&quot;,&quot;sydney&quot;,&quot;editors_picks&quot;,&quot;sharing_economy&quot;]"
+ data-keywords="[&quot;type=article&quot;,&quot;topic=uber&quot;,&quot;articleid=13850779&quot;]"
+ data-page-path="/10721600/Salon/Technology">
+ <script>
+ if(window.slnm && slnm.groups){
+ slnm.groups.initAll();
+ }
+ </script>
+ </div>
+ <script src="//media.salon.com/Adobe-DTM/adobe-dtm-footer.js"></script>
+ <script type="text/javascript">
+ window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"83bbceb499","applicationID":"1307478","transactionName":"ZABWYRBYCBBZVkNeXl1KdVYWUAkNF0ZeWVZfAA==","queueTime":0,"applicationTime":1438,"atts":"SEdVF1hCGx4=","errorBeacon":"bam.nr-data.net","agent":"js-agent.newrelic.com\/nr-593.min.js"}
+ </script>
+ </body>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/simplyfound-1/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/simplyfound-1/expected-images.json
new file mode 100644
index 000000000..469dde59f
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/simplyfound-1/expected-images.json
@@ -0,0 +1,3 @@
+[
+ "https:\/\/d34hb2g9mvfppu.cloudfront.net\/m\/images\/cache\/images\/2016\/02\/29\/apcnews2012raspberry_pi_logo_mainimage8_jpg8_322_27630a8388eb_lg.jpg"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/simplyfound-1/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/simplyfound-1/expected-metadata.json
new file mode 100644
index 000000000..b024aa854
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/simplyfound-1/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "The Raspberry Pi Foundation started by a handful of volunteers in 2012 when they released the original Raspberry Pi 256MB Model B without knowing what to expect. In a short four-year period they have grown to over sixty full-time employees and ha...",
+ "Image": "https:\/\/d34hb2g9mvfppu.cloudfront.net\/m\/images\/cache\/images\/2016\/02\/29\/apcnews2012raspberry_pi_logo_mainimage8_jpg8_322_27630a8388eb_lg.jpg",
+ "Title": "Raspberry Pi 3 - The credit card sized PC that cost only $35 - All-time bestselling computer in UK",
+ "SiteName": "SIMPLYFOUND.COM | BY: JOE WEE"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/simplyfound-1/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/simplyfound-1/expected.html
new file mode 100644
index 000000000..55b74a98c
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/simplyfound-1/expected.html
@@ -0,0 +1,18 @@
+<div>
+ <p>The Raspberry Pi Foundation started by a handful of volunteers in 2012 when they released the original Raspberry Pi 256MB Model B without knowing what to expect.  In a short four-year period they have grown to over sixty full-time employees and have shipped over <b>eight million</b> units to-date.  Raspberry Pi has achieved new heights by being shipped to the International Space Station for research and by being an affordable computing platforms used by teachers throughout the world.  "It has become the all-time best-selling computer in the UK".</p>
+
+
+ <p>Raspberry Pi 3 - A credit card sized PC that only costs $35 - Image: Raspberry Pi Foundation</p>
+
+ <p>Raspberry Pi Foundation is charity organization that pushes for a digital revolution with a mission to inspire kids to learn by creating computer-powered objects.  The foundation also helps teachers learn computing  skills through free training and readily available tutorials &amp; example code for creating cool things such as music.</p>
+
+
+ <p>Raspberry Pi in educations - Image: Raspberry Pi Foundation</p>
+
+ <p>In celebration of their 4th year anniversary, the foundation has released <b>Raspberry Pi 3</b> with the same price tag of<b> </b>$35 USD.  The 3rd revision features a <b>1.2GHz 64-bit quad-core</b> ARM CPU with integrated Bluetooth 4.1 and 802.11n wireless LAN chipsets.  The ARM Cortex-A53 CPU along with other architectural enhancements making it the fastest Raspberry Pi to-date.  The 3rd revision is reportedly about 50-60% times faster than its predecessor Raspberry Pi 2 and about 10 times faster then the original Raspberry PI.</p>
+
+
+ <p>Raspberry Pi - Various Usage</p>
+
+ <p>Raspberry Pi 3 is now available via many online resellers.  At this time, you should use a recent <b>32-bit </b>NOOBS or Raspbian image from their <a href="https://www.raspberrypi.org/downloads/" rel="nofollow" target="_blank">downloads</a> page with a promise of a switch to a 64-bit version only if further investigation proves that there is indeed some value in moving to 64-bit mode.</p>
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/simplyfound-1/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/simplyfound-1/source.html
new file mode 100644
index 000000000..f2e26ac95
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/simplyfound-1/source.html
@@ -0,0 +1,426 @@
+<!DOCTYPE html>
+<html lang="en">
+<!-- start of head -->
+
+<head>
+ <link rel="dns-prefetch" href="//d34hb2g9mvfppu.cloudfront.net"/>
+ <script>
+ var media_url = '/';
+ </script>
+ <link rel="dns-prefetch" href="//d2ri69w25kq2xp.cloudfront.net"/>
+ <script>
+ var static_url = '/';
+ </script>
+ <link rel="dns-prefetch" href="//www.google-analytics.com"/>
+ <meta charset="utf-8"/>
+ <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+ <meta property="og:url" content="https://simplyfound.com/article/eb9a5e137034/raspberry-pi-3-the-credit-card-sized-pc-that-cost-only-35-all-time-bestselling-computer-in-uk"/>
+ <meta property="og:title" content="Raspberry Pi 3 - The credit card sized PC that cost only $35 - All-time bestselling computer in UK"/>
+ <meta property="og:site_name" content="SIMPLYFOUND.COM | BY: JOE WEE"/>
+ <meta property="og:description" content="The Raspberry Pi Foundation started by a handful of volunteers in 2012 when they released the original Raspberry Pi 256MB Model B without knowing what to expect. In a short four-year period they have grown to over sixty full-time employees and ha..."/>
+ <meta property="fb:app_id" content="430934063772847"/>
+ <meta name="twitter:site" content="SIMPLYFOUND.COM | BY JOE WEE"/>
+ <meta name="twitter:title" content="Raspberry Pi 3 - The credit card sized PC that cost only $35 - All-time bestselling computer in UK"/>
+ <meta name="twitter:description" content="The Raspberry Pi Foundation started by a handful of volunteers in 2012 when they released the original Raspberry Pi 256MB Model B without knowing what to expect. In a short four-year period they have grown to over sixty full-time employees and ha..."/>
+ <meta property="og:image" content="https://d34hb2g9mvfppu.cloudfront.net/m/images/cache/images/2016/02/29/apcnews2012raspberry_pi_logo_mainimage8_jpg8_322_27630a8388eb_lg.jpg"/>
+ <meta name="twitter:image" content="https://d34hb2g9mvfppu.cloudfront.net/m/images/cache/images/2016/02/29/apcnews2012raspberry_pi_logo_mainimage8_jpg8_322_27630a8388eb_lg.jpg"/>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"/>
+ <meta name="apple-mobile-web-app-capable" content="yes"/>
+ <title>Raspberry Pi 3 - The credit card sized PC that cost only $35 - All-time bestselling computer in UK - SimplyFound</title>
+ <meta name="description" content="The Raspberry Pi Foundation started by a handful of volunteers in 2012 when they released the original Raspberry Pi 256MB Model B without knowing what to expect. In a short four-year period they have grown to over sixty full-time employees and ha..."/>
+ <meta name="author" content=""/>
+ <link rel="shortcut icon" href="https://d2ri69w25kq2xp.cloudfront.net/s/img/favicons/favicon.351a323a1b51.ico" type="image/x-icon"/>
+ <link rel="apple-touch-icon" sizes="57x57" href="https://d2ri69w25kq2xp.cloudfront.net/s/img/favicons/apple-icon-57x57.5cb9f8349ece.png"/>
+ <link rel="apple-touch-icon" sizes="60x60" href="https://d2ri69w25kq2xp.cloudfront.net/s/img/favicons/apple-icon-60x60.4f08bf97ade1.png"/>
+ <link rel="apple-touch-icon" sizes="72x72" href="https://d2ri69w25kq2xp.cloudfront.net/s/img/favicons/apple-icon-72x72.4d2746f1e06b.png"/>
+ <link rel="apple-touch-icon" sizes="76x76" href="https://d2ri69w25kq2xp.cloudfront.net/s/img/favicons/apple-icon-76x76.9b7be849c186.png"/>
+ <link rel="apple-touch-icon" sizes="114x114" href="https://d2ri69w25kq2xp.cloudfront.net/s/img/favicons/apple-icon-114x114.a1012e6d710d.png"/>
+ <link rel="apple-touch-icon" sizes="120x120" href="https://d2ri69w25kq2xp.cloudfront.net/s/img/favicons/apple-icon-120x120.e57fe7c36b78.png"/>
+ <link rel="apple-touch-icon" sizes="144x144" href="https://d2ri69w25kq2xp.cloudfront.net/s/img/favicons/apple-icon-144x144.b8ecc451ebd4.png"/>
+ <link rel="apple-touch-icon" sizes="152x152" href="https://d2ri69w25kq2xp.cloudfront.net/s/img/favicons/apple-icon-152x152.dc67c8151e84.png"/>
+ <link rel="apple-touch-icon" sizes="180x180" href="https://d2ri69w25kq2xp.cloudfront.net/s/img/favicons/apple-icon-180x180.7cf140b4bc83.png"/>
+ <link rel="icon" type="image/png" sizes="192x192" href="https://d2ri69w25kq2xp.cloudfront.net/s/img/favicons/android-icon-192x192.8de435c48446.png"/>
+ <link rel="icon" type="image/png" sizes="32x32" href="https://d2ri69w25kq2xp.cloudfront.net/s/img/favicons/favicon-32x32.6fc201c7c810.png"/>
+ <link rel="icon" type="image/png" sizes="96x96" href="https://d2ri69w25kq2xp.cloudfront.net/s/img/favicons/favicon-96x96.973e422a0ea5.png"/>
+ <link rel="icon" type="image/png" sizes="16x16" href="https://d2ri69w25kq2xp.cloudfront.net/s/img/favicons/favicon-16x16.3e1ed5bfe029.png"/>
+ <link rel="manifest" href="https://d2ri69w25kq2xp.cloudfront.net/s/img/favicons/manifest.b58fcfa7628c.json"/>
+ <meta name="msapplication-TileColor" content="#ffffff"/>
+ <meta name="msapplication-TileImage" content="https://d2ri69w25kq2xp.cloudfront.net/s/img/favicons/ms-icon-144x144.b8ecc451ebd4.png"/>
+ <meta name="theme-color" content="#ffffff"/>
+ <link href="https://d2ri69w25kq2xp.cloudfront.net/s/css/vendor/bootstrap/css/bootstrap.min.12d017d85b55.css" rel="stylesheet"/>
+ <link href="https://d2ri69w25kq2xp.cloudfront.net/s/css/vendor/font-awesome/css/font-awesome.min.4fbd15cb6047.css" rel="stylesheet"/>
+ <link href="https://d2ri69w25kq2xp.cloudfront.net/s/css/vendor/toastr.min.fba9df3af906.css" rel="stylesheet"/>
+ <link href="https://d2ri69w25kq2xp.cloudfront.net/s/css/bs-style.c1681681331f.css" rel="stylesheet"/>
+ <style type="text/css">
+ .input-ajax-wheel {
+ background: url("https://d2ri69w25kq2xp.cloudfront.net/s/img/misc/ajax_loader_red.514ee5681a2a.gif") 8px no-repeat;
+ background-position-x: 99%;
+ display: none;
+ }
+
+ .new-divider {
+ background: transparent url("https://d2ri69w25kq2xp.cloudfront.net/s/img/misc/bg-1px-grey.fd1962149515.gif") repeat-x left 9px;
+ }
+ </style>
+</head>
+<!-- end of head -->
+<!-- start of body -->
+
+<body>
+ <div id="main-navbar" class="top-nav">
+ <nav class="navbar navbar-inverse navbar-fixed-top">
+ <div class="container-fluid">
+ <div class="navbar-header">
+ <div class="pull-right">
+ <div class="search-menu-item pull-left">
+ <ul class="nav navbar-nav">
+ <li class=""><a href="javascript:void(0)" rel="nofollow,noindex" class="text-search"><i class="fa fa-search"></i></a></li>
+ </ul>
+ </div>
+ <button class="navbar-toggle collapsed" data-toggle="collapse" data-target="#collapsable-top-nav"> <span class="menu-caret"><i class="fa fa-navicon"></i><i class="fa fa-caret-down"></i></span> </button>
+ </div> <a class="navbar-brand" href="/" title="Home">SimplyFound</a> </div>
+ <div class="collapse navbar-collapse" id="collapsable-top-nav">
+ <ul class="nav navbar-nav navbar-left">
+ <li class="">
+ <a href="/featured" class=""> <span> Featured</span> <i class="fa fa-check"></i> </a>
+ </li>
+ <li class="">
+ <a href="/popular" class=""> <span> Popular</span> <i class="fa fa-star"></i> </a>
+ </li>
+ <li class="">
+ <a href="/latest" class=""> <span> Latest</span> <i class="fa fa-clock-o"></i> </a>
+ </li>
+ </ul>
+ <ul class="nav navbar-nav navbar-right">
+ <li class="">
+ <a href="/account/user/login" class=""> <span> Login</span> </a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </nav>
+ </div>
+ <div id="nav-spacer"></div>
+ <div id="text-search-modal" class="col-lg-12 modal fade">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <div class="modal-body">
+ <form id="text-search-form" class="navbar-form" method="get" action="">
+ <div class="input-group"> <span id="text-search-clear" class="input-group-btn">
+ <button class="btn btn-default" type="button"><i class="fa fa-times"></i></button>
+ </span>
+ <input type="text" id="text-search-input" placeholder="Search..." class="form-control" data-referrer="latest"/> <span class="input-group-btn">
+ <button class="btn btn-primary text-search-submit-button" type="button">Go</button>
+ </span> </div>
+ </form>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="article-view-box">
+ <div class="col-md-12 article-content">
+ <div class="col-md-12 unfloat article center-block">
+ <div class="article-fullview center-block">
+ <div class="hidden">137</div>
+ <style>
+ .top_add {
+ width: 320px;
+ height: 50px;
+ margin-bottom: 10px;
+ }
+
+ @media(min-width: 500px) {
+ .top_add {
+ width: 100%;
+ height: 67px;
+ }
+ }
+
+ @media(min-width: 500px) {
+ .top_add {
+ width: 100%;
+ height: 67px;
+ }
+ }
+ </style>
+ <center> <ins class="adsbygoogle top_add" style="display:inline-block;" data-ad-client="ca-pub-9052696005983480" data-ad-slot="3867410294" data-ad-format="auto">
+ </ins> </center>
+ <script>
+ (adsbygoogle = window.adsbygoogle || []).push({});
+ </script>
+ <div class="card-box-content box-shadow-4dp">
+ <div class="card-box-header">
+ <h1 class="card-box-title">
+ Raspberry Pi 3 - The credit card sized PC that cost only $35 - All-time bestselling computer in UK
+ </h1>
+ <div class="article-author"> <i class="fa fa-user"></i> <span class="rotate-wrapper">
+
+ <a href="/latest?author=joewee" rel="index,follow"><span>Joe Wee</span></a>&nbsp; <i class="fa fa-thumb-tack text-success fa-rotate-45"></i> </span> &nbsp;&nbsp;<i class="fa fa-clock-o"></i> <span>
+
+
+ Monday, February 29, 2016 @ 11:10 PM UTC
+
+
+ </span> </div>
+ <div class="article-category-tags">
+ <a href="/latest?category=consumer-electronics" rel="noindex,follow" type="button" class="btn btn-default rotate-wrapper "> <span class="category-toggle-button">Consumer Electronics</span> <i class="fa fa-thumb-tack text-success fa-rotate-45"></i> </a>
+ <a href="/latest?category=technology" rel="noindex,follow" type="button" class="btn btn-default rotate-wrapper "> <span class="category-toggle-button">Technology</span> <i class="fa fa-thumb-tack text-success fa-rotate-45"></i> </a>
+ <a href="/latest?tag=pc" rel="noindex,follow" type="button" class="btn btn-default rotate-wrapper "> <span class="tag-toggle-button">PC</span> <i class="fa fa-thumb-tack text-success fa-rotate-45"></i> </a>
+ <a href="/latest?tag=raspberry-pi" rel="noindex,follow" type="button" class="btn btn-default rotate-wrapper "> <span class="tag-toggle-button">Raspberry Pi</span> <i class="fa fa-thumb-tack text-success fa-rotate-45"></i> </a>
+ <a href="/latest?tag=computer" rel="noindex,follow" type="button" class="btn btn-default rotate-wrapper "> <span class="tag-toggle-button">Computer</span> <i class="fa fa-thumb-tack text-success fa-rotate-45"></i> </a>
+ <a href="/latest?tag=raspberry-pi-3" rel="noindex,follow" type="button" class="btn btn-default rotate-wrapper "> <span class="tag-toggle-button">Raspberry Pi 3</span> <i class="fa fa-thumb-tack text-success fa-rotate-45"></i> </a>
+ </div>
+ </div>
+ <div class="card-box-body">
+ <div class="text-content-box">
+ <p>The Raspberry Pi Foundation started by a handful of volunteers in 2012 when they released the original Raspberry Pi 256MB Model B without knowing what to expect. &nbsp;In a short four-year period they have grown to over sixty full-time&nbsp;employees&nbsp;and have shipped over <b>eight million</b> units to-date. &nbsp;Raspberry Pi has achieved new heights by being shipped to the&nbsp;International&nbsp;Space Station for research and by being an affordable computing platforms used by teachers throughout the world. &nbsp;"It has become the all-time best-selling computer in the UK".</p>
+ </div>
+ <div class="spacer"></div>
+ <div class="media-container ">
+ <div class="image-wrapper">
+ <div class="image"> <img src="https://d34hb2g9mvfppu.cloudfront.net/m/images/cache/images/2016/02/29/apcnews2012raspberry_pi_logo_mainimage8_jpg8_322_27630a8388eb_lg.jpg" class="bottom-aligned"/> </div>
+ </div>
+ </div>
+ <div class="media-caption">Raspberry Pi 3 - A credit card sized PC that only costs $35 - Image: Raspberry Pi Foundation</div>
+ <div class="spacer"></div>
+ <div class="text-content-box">
+ <p>Raspberry Pi Foundation is charity organization that pushes for a digital revolution with a mission to inspire kids to learn by&nbsp;creating computer-powered objects. &nbsp;The foundation also helps teachers learn computing &nbsp;skills through free training and readily available tutorials &amp; example code for creating cool things such as music.</p>
+ </div>
+ <div class="spacer"></div>
+ <div class="media-container ">
+ <div class="image-wrapper">
+ <div class="image"> <img src="https://d34hb2g9mvfppu.cloudfront.net/m/images/cache/images/2016/02/29/teachers_classroom_guide_324_a221bf31d64c_lg.png" class="bottom-aligned"/> </div>
+ </div>
+ </div>
+ <div class="media-caption">Raspberry Pi in educations - Image: Raspberry Pi Foundation</div>
+ <div class="spacer"></div>
+ <div class="text-content-box">
+ <p>In celebration of their 4th year&nbsp;anniversary, the foundation has released&nbsp;<b>Raspberry Pi 3</b> with the same price tag of<b>&nbsp;</b>$35 USD. &nbsp;The 3rd revision features a <b>1.2GHz 64-bit quad-core</b>&nbsp;ARM CPU with integrated Bluetooth 4.1 and 802.11n wireless LAN chipsets. &nbsp;The ARM Cortex-A53 CPU along with other architectural enhancements making it the fastest Raspberry Pi to-date. &nbsp;The 3rd revision is reportedly about 50-60% times faster than its predecessor Raspberry Pi 2 and about 10 times faster then the original Raspberry PI.</p>
+ </div>
+ <div class="spacer"></div>
+ <div class="media-container ">
+ <div id="snippet-326-image-carousel" class="carousel slide image-carousel" data-ride="carousel" data-interval="false">
+ <ol class="carousel-indicators">
+ <li data-target="#snippet-326-image-carousel" data-slide-to="0" class=" active "></li>
+ <li data-target="#snippet-326-image-carousel" data-slide-to="1" class=""></li>
+ <li data-target="#snippet-326-image-carousel" data-slide-to="2" class=""></li>
+ </ol>
+ <div class="carousel-inner">
+ <div class="item active ">
+ <div class="image-wrapper">
+ <div class="image"> <img src="https://d34hb2g9mvfppu.cloudfront.net/m/images/cache/images/2016/02/29/handj_326_eb8b50597a3f_lg.jpg" alt="Image 1" class="bottom-aligned"/> </div>
+ </div>
+ </div>
+ <div class="item ">
+ <div class="image-wrapper">
+ <div class="image"> <img src="https://d34hb2g9mvfppu.cloudfront.net/m/images/cache/images/2016/02/29/images_326_b1f81e087284_lg.jpeg" alt="Image 2" class="bottom-aligned"/> </div>
+ </div>
+ </div>
+ <div class="item ">
+ <div class="image-wrapper">
+ <div class="image"> <img src="https://d34hb2g9mvfppu.cloudfront.net/m/images/cache/images/2016/02/29/images_2_326_c32fa7688f70_lg.jpeg" alt="Image 3" class="bottom-aligned"/> </div>
+ </div>
+ </div>
+ </div>
+ <a href="#snippet-326-image-carousel" data-slide="prev" class="carousel-control left">
+ <div class="overlay-left-button" style="background: url('https://d2ri69w25kq2xp.cloudfront.net/s/img/misc/carousel-arrow-stripes.35420672cdd8.png') no-repeat;"></div>
+ </a>
+ <a href="#snippet-326-image-carousel" data-slide="next" class="carousel-control right">
+ <div class="overlay-right-button" style="background: url('https://d2ri69w25kq2xp.cloudfront.net/s/img/misc/carousel-arrow-stripes.35420672cdd8.png') no-repeat;"></div>
+ </a>
+ </div>
+ </div>
+ <div class="media-caption">Raspberry Pi - Various Usage</div>
+ <div class="spacer"></div>
+ <div class="text-content-box">
+ <p>Raspberry Pi 3 is now available via many online resellers. &nbsp;At this time, you should use a recent <b>32-bit </b>NOOBS or Raspbian image from their&nbsp;<a href="https://www.raspberrypi.org/downloads/" rel="nofollow" target="_blank">downloads</a> page with a promise of a switch to a 64-bit version only if further investigation proves that there is indeed some value in moving to 64-bit mode.</p>
+ </div>
+ </div>
+ <div class="article-view-action text-center">
+ <div class="btn btn-default viewcount bold"> <i class="fa fa-eye"></i><span class="action-button-text">137 </span> </div>
+ <a href="/account/user/login?next=/article/eb9a5e137034/raspberry-pi-3-the-credit-card-sized-pc-that-cost-only-35-all-time-bestselling-computer-in-uk" rel="noindex" class="btn btn-default actionable bold confirm" title="Login to like?" placement="top"> <i class="fa fa-heart-o"></i> <span class="action-button-text trac-togglable-value">1</span> </a>
+ <a href="#" rel="noindex" class="btn btn-default actionable bold" data-toggle="modal" data-target="#social-sharing-modal-article-66"> <i class="fa fa-share-alt"></i><span class="action-button-text">Share</span> </a>
+ <a href="#" rel="noindex" class="btn btn-default actionable article-history bold hidden"> <i class="fa fa-arrow-left"></i><span class="action-button-text">Back</span> </a>
+ </div>
+ </div>
+ </div>
+ <div id="social-sharing-modal-article-66" class="col-lg-12 modal fade social-share-box">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal"><i class="fa fa-times"></i></button>
+ <h4 class="modal-title bold">Like It, Share It!</h4> </div>
+ <div class="modal-body">
+ <a href="https://www.facebook.com/sharer/sharer.php?u=https%3A//simplyfound.com/article/eb9a5e137034" rel="nofollow" class="social-share-link"> <span class="fa-stack fa-3x" rel="tooltip" data-placement="top" data-original-title="Facebook">
+ <i class="fa fa-circle fa-stack-2x facebook-bg"></i>
+ <i class="fa fa-facebook-f fa-stack-1x social-fg"></i>
+ </span> </a>
+ <a href="https://twitter.com/intent/tweet?url=https%3A//simplyfound.com/article/eb9a5e137034&amp;text=Raspberry%20Pi%203%20-%20The%20credit%20card%20sized%20PC%20that%20cost%20only%20%2435%20-%20All-time%20bestselling%20computer%20in%20UK" rel="nofollow" class="social-share-link"> <span class="fa-stack fa-3x" rel="tooltip" data-placement="top" data-original-title="Twitter">
+ <i class="fa fa-circle fa-stack-2x twitter-bg"></i>
+ <i class="fa fa-twitter fa-stack-1x social-fg"></i>
+ </span> </a>
+ <a href="https://plus.google.com/share?url=https%3A//simplyfound.com/article/eb9a5e137034" rel="nofollow" class="social-share-link"> <span class="fa-stack fa-3x" rel="tooltip" data-placement="top" data-original-title="Google">
+ <i class="fa fa-circle fa-stack-2x google-bg"></i>
+ <i class="fa fa-google-plus fa-stack-1x social-fg"></i>
+ </span> </a>
+ <a href="https://www.linkedin.com/shareArticle?mini=true&amp;url=https%3A//simplyfound.com/article/eb9a5e137034&amp;title=Raspberry%20Pi%203%20-%20The%20credit%20card%20sized%20PC%20that%20cost%20only%20%2435%20-%20All-time%20bestselling%20computer%20in%20UK&amp;source=SimplyFound" rel="nofollow" class="social-share-link"> <span class="fa-stack fa-3x" rel="tooltip" data-placement="top" data-original-title="Linkedin">
+ <i class="fa fa-circle fa-stack-2x linkedin-bg"></i>
+ <i class="fa fa-linkedin fa-stack-1x social-fg"></i>
+ </span> </a>
+ <a href="https://www.reddit.com/submit?url=https%3A//simplyfound.com/article/eb9a5e137034&amp;title=Raspberry%20Pi%203%20-%20The%20credit%20card%20sized%20PC%20that%20cost%20only%20%2435%20-%20All-time%20bestselling%20computer%20in%20UK" rel="nofollow" class="social-share-link"> <span class="fa-stack fa-3x" rel="tooltip" data-placement="top" data-original-title="Reddit">
+ <i class="fa fa-circle fa-stack-2x reddit-bg"></i>
+ <i class="fa fa-reddit-alien fa-stack-1x social-fg"></i>
+ </span> </a>
+ <a href="https://pinterest.com/pin/create/button/?url=https%3A//simplyfound.com/article/eb9a5e137034&amp;description=Raspberry%20Pi%203%20-%20The%20credit%20card%20sized%20PC%20that%20cost%20only%20%2435%20-%20All-time%20bestselling%20computer%20in%20UK&amp;media=https://d34hb2g9mvfppu.cloudfront.net/m/images/cache/images/2016/02/29/apcnews2012raspberry_pi_logo_mainimage8_jpg8_322_7490af98d726_sm.jpg" rel="nofollow" class="social-share-link"> <span class="fa-stack fa-3x" rel="tooltip" data-placement="top" data-original-title="Pinterest">
+ <i class="fa fa-circle fa-stack-2x pinterest-bg"></i>
+ <i class="fa fa-pinterest fa-stack-1x social-fg"></i>
+ </span> </a>
+ <a href="mailto:?subject=Raspberry Pi 3 - The credit card sized PC that cost only $35 - All-time bestselling computer in UK&amp;body=I am sharing this article with you. Check it out! %0D%0A%0D%0A https%3A//simplyfound.com/article/eb9a5e137034 %0D%0A%0D%0A ------------- %0D%0A Thursday, March 17, 2016 @ 6:38 AM" rel="nofollow" class="social-share-link"> <span class="fa-stack fa-3x" rel="tooltip" data-placement="top" data-original-title="Email">
+ <i class="fa fa-circle fa-stack-2x email-bg"></i>
+ <i class="fa fa-envelope-o fa-stack-1x social-fg"></i>
+ </span> </a>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="become-an-apporved-author" class="col-lg-12 modal fade">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal"><i class="fa fa-times"></i></button>
+ <h4 class="modal-title bold">Become an approved author!</h4> </div>
+ <div class="modal-body"> <i class="fa fa-hand-o-right red"></i>&nbsp;&nbsp;You account is not approved yet.
+ <br/>
+ <br/> To become an approved author, you must have minimum of two articles in your account.
+ <br/>
+ <br/> The articles must be complete and ready to be published.
+ <br/>
+ <br/> The articles must be unique and contain no duplicate contents from other websites, books and/or magazines.
+ <br/>
+ <br/> You think you are ready? If so, request to become an approved author.
+ <br/>
+ <br/> <i class="fa fa-hand-o-right red"></i>&nbsp;&nbsp;[
+ <a class="info" href="/approval/request"> <span>Send Your Request</span> </a> ] </div>
+ </div>
+ </div>
+ </div>
+ <style>
+ .bottom_ad {
+ width: 320px;
+ height: 50px;
+ margin-top: 10px;
+ }
+
+ @media(min-width: 500px) {
+ .bottom_ad {
+ width: 100%;
+ height: 67px;
+ }
+ }
+
+ @media(min-width: 500px) {
+ .bottom_ad {
+ width: 100%;
+ height: 67px;
+ }
+ }
+ </style>
+ <center> <ins class="adsbygoogle bottom_ad" style="display:inline-block;" data-ad-client="ca-pub-9052696005983480" data-ad-slot="3867410294" data-ad-format="auto">
+ </ins> </center>
+ <script>
+ (adsbygoogle = window.adsbygoogle || []).push({});
+ </script>
+ </div>
+ </div>
+ </div>
+ <div class="clearfix"></div>
+ <div class="main-footer">
+ <nav class="bg-silver">
+ <div class="col-md-3 footer-logo">
+ <a href="/">
+ <div class="logo-inverse-large"></div>
+ </a>
+ </div>
+ <div class="col-md-3 footer-column">
+ <h3 class="text-headline text-white">SEARCH</h3>
+ <ul class="text-body">
+ <li>
+ <a href="/featured" class="" rel="nofollow,noindex"> <i class="fa fa-check"></i>&nbsp;&nbsp;<span> Featured</span> </a>
+ </li>
+ <li>
+ <a href="/popular" class="" rel="nofollow,noindex"> <i class="fa fa-star"></i>&nbsp;&nbsp;<span> Popular</span> </a>
+ </li>
+ <li>
+ <a href="/latest" class="" rel="nofollow,noindex"> <i class="fa fa-clock-o"></i>&nbsp;&nbsp;<span> Latest</span> </a>
+ </li>
+ </ul>
+ </div>
+ <div class="col-md-3 footer-column">
+ <h3 class="text-headline text-white">SOCIAL</h3>
+ <ul class="text-body">
+ <li>
+ <a href="https://www.facebook.com/SimplyFound-1500754540232504" class="" rel="nofollow,noindex"> <i class="fa fa-facebook-square"></i>&nbsp;&nbsp;<span> Facebook</span> </a>
+ </li>
+ <li>
+ <a href="https://twitter.com/simplyfound" class="" rel="nofollow,noindex"> <i class="fa fa-twitter-square"></i>&nbsp;&nbsp;<span> Twitter</span> </a>
+ </li>
+ <li>
+ <a href="/blog" class="" rel="nofollow,noindex"> <i class="fa fa-rss-square"></i>&nbsp;&nbsp;<span> Blog</span> </a>
+ </li>
+ </ul>
+ </div>
+ <div class="col-md-3 footer-column">
+ <h3 class="text-headline text-white">COMPANY</h3>
+ <ul class="text-body">
+ <li>
+ <a href="/site/terms-conditions" class="" rel="nofollow,noindex"> <i class="fa fa-file-text-o"></i>&nbsp;&nbsp;<span> Terms &amp; Conditions</span> </a>
+ </li>
+ <li>
+ <a href="/site/privacy-policy" class="" rel="nofollow,noindex"> <i class="fa fa-file-text-o"></i>&nbsp;&nbsp;<span> Privacy Policy</span> </a>
+ </li>
+ <li>
+ <a href="/contact/" class="" rel="nofollow,noindex"> <i class="fa fa-envelope-o"></i>&nbsp;&nbsp;<span> Contact Us</span> </a>
+ </li>
+ </ul>
+ </div>
+ </nav>
+ <div class="credit bg-steel"> <small class="text-caption">
+ <a href="/" class="unfloat">
+ © 2016<strong> &nbsp; Simplyfound.com</strong>
+ </a>
+ </small> </div>
+ </div>
+ <script src="https://d2ri69w25kq2xp.cloudfront.net/s/js/vendor/jquery.min.f9c7afd05729.js"></script>
+ <script src="https://d2ri69w25kq2xp.cloudfront.net/s/js/vendor/bootstrap.min.c5b5b2fa19bd.js"></script>
+ <script src="https://d2ri69w25kq2xp.cloudfront.net/s/js/vendor/confirmation.min.e22246a9e3ea.js"></script>
+ <script src="https://d2ri69w25kq2xp.cloudfront.net/s/js/vendor/autohidingnavbar.min.8df1fc2b1810.js"></script>
+ <script src="https://d2ri69w25kq2xp.cloudfront.net/s/js/vendor/toastr.min.fc293118b38b.js"></script>
+ <script src="https://d2ri69w25kq2xp.cloudfront.net/s/js/utils.415bd0240799.js"></script>
+ <script src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
+ <script type="text/javascript">
+ $(document).ready(function() {
+ $('[rel=tooltip]').tooltip();
+ $("[rel='popover']").popover();
+ $(".top-nav .navbar-fixed-top").autoHidingNavbar();
+ });
+ </script>
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-40482276-1']);
+ _gaq.push(['_trackPageview']);
+ (function() {
+ var ga = document.createElement('script');
+ ga.type = 'text/javascript';
+ ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0];
+ s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ <form id="csrf_post_form" action="" enctype="multipart/form-data" method="post" accept-charset="utf-8">
+ <input type="hidden" name="csrfmiddlewaretoken" value="CT1Z3UzIHniUTpMJGzlkYYIJg68vGUaf"/> </form>
+ <div id="message_box"> </div>
+</body>
+<!-- end of body -->
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/social-buttons/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/social-buttons/expected-images.json
new file mode 100644
index 000000000..0637a088a
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/social-buttons/expected-images.json
@@ -0,0 +1 @@
+[] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/social-buttons/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/social-buttons/expected-metadata.json
new file mode 100644
index 000000000..7a80654bf
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/social-buttons/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,\n quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo\n consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse\n cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non\n proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
+ "Image": null,
+ "Title": "Share buttons removal test",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/social-buttons/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/social-buttons/expected.html
new file mode 100644
index 000000000..6d135be2c
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/social-buttons/expected.html
@@ -0,0 +1,33 @@
+<article>
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+ </article> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/social-buttons/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/social-buttons/source.html
new file mode 100644
index 000000000..ee9d660c5
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/social-buttons/source.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>Share buttons removal test</title>
+</head>
+<body>
+ <article class="main-content">
+ <h1>Lorem ipsum dolor</h1>
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+ <div class="sharedaddy sd-block sd-like" id="like-post-wrapper-70135762-15074-552441e572442"
+ data-src="//widgets.wp.com/likes/#blog_id=70135762&amp;post_id=15074&amp;origin=longreadsblog.wordpress.com&amp;obj_id=70135762-15074-552441e572442"
+ data-name="like-post-frame-70135762-15074-552441e572442">
+ <h3 class="sd-title">Like this:</h3>
+ <div class="likes-widget-placeholder post-likes-widget-placeholder" style="height:55px">
+ <span class="button">
+ <span>Like</span>
+ </span>
+ <span class="loading">Loading...</span>
+ </div>
+ <span class="sd-text-color"></span>
+ <a class="sd-link-color"></a>
+ </div>
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+ </article>
+</body>
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/style-tags-removal/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/style-tags-removal/expected-images.json
new file mode 100644
index 000000000..0637a088a
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/style-tags-removal/expected-images.json
@@ -0,0 +1 @@
+[] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/style-tags-removal/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/style-tags-removal/expected-metadata.json
new file mode 100644
index 000000000..47039a9a9
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/style-tags-removal/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,\n quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo\n consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse\n cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non\n proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
+ "Image": null,
+ "Title": "Style tags removal",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/style-tags-removal/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/style-tags-removal/expected.html
new file mode 100644
index 000000000..d3a8806b4
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/style-tags-removal/expected.html
@@ -0,0 +1,18 @@
+<article>
+ <p>
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ <h2>Foo</h2>
+ <p>
+ Tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ </article> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/style-tags-removal/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/style-tags-removal/source.html
new file mode 100644
index 000000000..687ca39be
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/style-tags-removal/source.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8"/>
+ <title>Style tags removal</title>
+ <style>h1{font-weight:normal}</style>
+</head>
+<body>
+ <article>
+ <h1>Lorem</h1>
+ <style>
+ div{font-weight:bold}
+ </style>
+ <div>
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </div>
+ <style>
+ h2 {
+ color: red;
+ }
+ </style>
+ <h2>Foo</h2>
+ <div>
+ Tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </div>
+ </article>
+ <style>
+ * {
+ color: yellow;
+ }
+ </style>
+</body>
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/svg-parsing/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/svg-parsing/expected-images.json
new file mode 100644
index 000000000..0637a088a
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/svg-parsing/expected-images.json
@@ -0,0 +1 @@
+[] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/svg-parsing/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/svg-parsing/expected-metadata.json
new file mode 100644
index 000000000..321414f8b
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/svg-parsing/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\ntempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,\nquis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo\nconsequat. Duis aute irure dolor in reprehenderit in voluptate velit esse\ncillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non\nproident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
+ "Image": null,
+ "Title": "SVG parsing",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/svg-parsing/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/svg-parsing/expected.html
new file mode 100644
index 000000000..1cc45591b
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/svg-parsing/expected.html
@@ -0,0 +1,32 @@
+<div>
+<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+<svg height="50" style="position: absolute;" version="1.1" viewbox="0 0 50 50" width="50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g><clippath id="hex-mask-large"><polygon points="15,35 10,35 10,0 10,0 45,0 45,35 45,35 25,35 15,43"></polygon></clippath><clippath id="hex-mask-small"><polygon points="5,1 5,16 3,23 10,20 24,20 24,1"></polygon></clippath></g></svg><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+</div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/svg-parsing/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/svg-parsing/source.html
new file mode 100644
index 000000000..e4fb905f1
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/svg-parsing/source.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>SVG parsing</title>
+</head>
+<body>
+<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" height="50" width="50" style="position: absolute;">
+ <g>
+ <clipPath id="hex-mask-large"><polygon points="15,35 10,35 10,0 10,0 45,0 45,35 45,35 25,35 15,43"/></clipPath>
+ <clipPath id="hex-mask-small"><polygon points="5,1 5,16 3,23 10,20 24,20 24,1"/></clipPath>
+ </g>
+</svg>
+<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+</body>
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/table-style-attributes/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/table-style-attributes/expected-images.json
new file mode 100644
index 000000000..c2a1ea915
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/table-style-attributes/expected-images.json
@@ -0,0 +1,3 @@
+[
+ "http:\/\/fakehost\/test\/..\/compass1.gif"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/table-style-attributes/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/table-style-attributes/expected-metadata.json
new file mode 100644
index 000000000..cdb8fc396
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/table-style-attributes/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "linux usability\n ...or, why do I bother. © 2002, 2003\n Jamie Zawinski",
+ "Image": null,
+ "Title": "linux video",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/table-style-attributes/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/table-style-attributes/expected.html
new file mode 100644
index 000000000..77c083b21
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/table-style-attributes/expected.html
@@ -0,0 +1,102 @@
+<div>
+ <p>
+ <span size="+3"><b>linux usability
+ <span size="4"><br></br>...or, why do I bother.</span></b></span><br></br> © 2002, 2003
+ <a href="mailto:/dev/[email protected]?subject=Please%20delete%20this%20message%20without%20reading%20it.">Jamie Zawinski</a> </p>
+
+
+ <div>
+ <table readabilityDataTable="0"><tbody><tr><td>
+ <p> In December 2002, I tried to install some software on my computer. The experience was, shall we say, less than pleasant. On many levels. I wrote about my experience, as I so often do. </p>
+ <p> Then in January, the jackasses over at Slashdot <a href="http://slashdot.org/article.pl?sid=03/01/24/1440207">posted</a> a link to it, calling it a "review" of Linux video software. I guess you could consider it a review, if you were to squint at it just right. But really what it is is a <i>rant</i> about how I had an evening stolen from me by crap software design. It is a flame about the pathetic state of Linux usability in general, and the handful of video players I tried out in particular. It makes no attempt to be balanced or objective or exhaustive. It is a description of my experience. Perhaps your experience was different. Good for you. </p>
+ <p> So of course that day I got hundreds of emails about it. Every Linux apologist in the world wanted to make sure I was fully informed of their opinion. The replies were roughly in the following groups: </p>
+
+ <ul><li> "Right on! I had exactly the same experience! Thank you for putting it into words." <i>(This was about 1/3 of the replies.)</i>
+
+ </li>
+ <li> "You're clearly an idiot, Linux is too sophisticated for you, you clearly are incapable of understanding anything, you should go back to kindergarten and/or use a Mac." <i>(Oddly, all of these messages used the word</i> `clearly' <i>repeatedly.)</i>
+
+ </li>
+ <li> "If you don't like it, fix it yourself."
+
+ </li>
+ <li> "Netscape sucks! XEmacs sucks! You suck! I never liked you anyway! And you swear too much!"
+
+ </li>
+ <li> "How dare you criticize someone else's work! You got it for free! You should be on your knees thanking them for wasting your time!"
+
+ </li>
+ <li> "While you have some valid complaints, I'm going to focus on this one inconsequential error you made in your characterization of one of the many roadblocks you encountered. You suck!"
+
+ </li>
+ <li> "It's your fault for using Red Hat! You should be using Debian/<wbr></wbr>Mandrake/<wbr></wbr>Gentoo instead!"
+
+ </li>
+ <li> "Red Hat 7.2 is totally obsolete! It's almost 14 months old! What were you expecting!" </li>
+ </ul></td>
+ <td>
+ <p> While I am flattered that so many logorrheic Linux fanboys are sufficiently interested in my opinions and experiences to share their deeply heartfelt views with me, you can all rest assured that: </p>
+
+ <ul><ul type="A"><li> I've heard it before; and </li>
+ <li> I didn't care the first time. </li>
+ </ul></ul><p> So please. Don't bother sending me any more mail about this. It's a near certainty that I will just delete it unread, so you might as well not waste your time. Feel free to call me names on your own web page if you feel the need to get it out of your system. But kindly stay out of my inbox.
+
+
+ </p>
+ </td>
+ </tr></tbody></table></div>
+
+ <p>
+ <span size="+3"><b>that said...</b></span>
+ </p>
+ <p> I understand that one can play videos on one's computer. I understand these videos come in many different formats. Every now and then I try to figure out what the Done Thing is, as far as playing movies on one's Linux machine. </p>
+
+ <ul> (Really my eventual goal is to be able to <i>create</i> video on Linux, but I figured I'd start small, and see if I could just get <i>playback</i> working before trying something that is undoubtedly ten thousand times harder.) </ul><p> I finally found <a href="http://mirrors.sctpc.com/dominik/linux/pkgs/mplayer/">RPMs</a> of <a href="http://www.mplayerhq.hu/">mplayer</a> that would consent to install themselves on a Red Hat 7.2 machine, and actually got it to play some videos. Amazing. But it's a total pain in the ass to use due to rampant "themeing." <i>Why do people do this?</i> They map this stupid shaped window with no titlebar (oh, sorry, your choice of a dozen stupidly-shaped windows without titlebars) all of which use fonts that are way too small to read. But, here's the best part, there's no way to raise the window to the top. So if another window ever gets on top of it, well, sorry, you're out of luck. And half of the themes always map the window at the very bottom of the
+ <nobr>screen --</nobr> conveniently <i>under</i> my panel where I can't reach it. </p>
+ <p> Resizing the window changes the aspect ratio of the video! Yeah, I'm sure someone has <i>ever</i> wanted that. </p>
+ <p> It moves the mouse to the upper left corner of every dialog box it creates! Which is great, because that means that when it gets into this cute little state of popping up a blank dialog that says "Error" five times a second, you can't even move the mouse over to another window to kill the program, you have to log in from another machine. </p>
+ <p> Fucking morons. </p>
+ <p> So I gave up on that, and tried to install <a href="http://gstreamer.net/">gstreamer</a>. Get this. Their propose ``solution'' for distributing binaries on Red Hat systems? They point you at an RPM that installs <b>apt</b>, the Debian package system! Yeah, that's a <i>good</i> idea, I want to struggle with two competing packaging systems on my machine just to install a single app. Well, I found some <a href="http://gstreamer.net/releases/redhat/redhat-72-i386/RPMS.ximian/">
+RPMs</a> for Red Hat 7.2, but apparently they expect you to have already rectally inserted <a href="http://www.gnome.org/">Gnome2</a> on that 7.2 system first. Uh, no. I've seen the horror of Red Hat 8.0, and there's no fucking way I'm putting Gnome2 on any more of my machines for at least another six months, maybe a year. </p>
+ <p> Ok, no gstreamer. Let's try <a href="http://xinehq.de/">Xine</a>. I found <a href="http://rpmfind.net/linux/redhat/7.3/en/os/i386/RedHat/RPMS/">
+RPMs</a>, and it sucks about the same as mplayer, and in about the same ways, though slightly less bad: it doesn't screw the aspect ratio when you resize the window; and at least its stupidly-shaped window is always forced to be on top. I don't like that either, but it's better than <i>never</i> being on top. It took me ten minutes to figure out where the "Open File" dialog was. It's on the button labeled <b><tt>"://"</tt></b> whose tooltip says "MRL Browser". Then you get to select file names from an oh-so-cute window that I guess is supposed to look like a tty, or maybe an LCD screen. It conveniently <i>centers</i> the file names in the list, and truncates them at about 30 characters. The scrollbar is also composed of "characters": it's an underscore. </p>
+ <p> <i> What are these fucktards <b><u>thinking???</u></b></i> </p>
+ <p> Then I checked out <a href="http://www.dtek.chalmers.se/groups/dvd/">Ogle</a> again, and it hasn't been updated since the last time I tried, six months ago. It's a pretty decent DVD player, if you have the physical DVD. It does on-screen menus, and you can click on them with the mouse. But I don't need a DVD player (I have a hardware DVD player that works just fine.) It can't, as far as I can tell, play anything but actual discs. </p>
+ <p> Oh, and even though I have libdvdcss installed (as evidenced by the fact that Ogle actually works) Xine won't play the same disc that Ogle will play. It seems to be claiming that the CSS stuff isn't installed, which it clearly is. </p>
+ <p> An idiocy that all of these programs have in common is that, in addition to opening a window for the movie, and a window for the control panel, they <i>also</i> spray a constant spatter of curses crud on the terminal they were started from. I imagine at some point, there was some user who said, ``this program is pretty nice, but you know what it's missing? It's missing a lot of pointless chatter about what plugins and fonts have been loaded!'' </p>
+
+ <hr></hr><b>And here's the Random Commentary section:</b>
+
+ <blockquote> <b><a href="http://www.lazycat.org/">Makali</a> wrote:</b>
+ <ul><i>
+ Whenever a programmer thinks, "Hey, skins, what a cool idea", their
+ computer's speakers should create some sort of cock-shaped soundwave
+ and plunge it repeatedly through their skulls.
+ </i></ul><p> I am fully in support of this proposed audio-cock technology. </p>
+ <p><b>Various people wrote:</b> </p>
+ <ul><i>
+ You shouldn't even bother compiling the GUI into mplayer!
+ </i></ul><p> So I should solve the problem of ``crappy GUI'' by replacing it with ``no GUI at all?'' I should use the program only from the command line, or by memorizing magic keystrokes? Awesome idea. </p>
+ <p><b>Various other people wrote:</b> </p>
+ <ul><i>
+ You didn't try <a href="http://www.videolan.org/vlc/">vlc</a>!
+ </i></ul><p> True, I hadn't. Now I have. It has an overly-complicated UI, (the Preferences panel is a festival of overkill) but at least it uses standard menus and buttons, so it doesn't make you want to claw your eyes out immediately. But, it can only play a miniscule number of video formats, so it's mostly useless. <i>*plonk*</i> </p>
+ <p><b>Someone else wrote:</b> </p>
+ <ul><i>
+ Have you considered changing distributions?
+ </i></ul><p> Yes, every single time I try something like this, I very seriously consider <a href="http://fakehost/test/../gruntle/bittybox.html">getting a Mac</a>. </p>
+ <p> Really the only thing that's stopping me is that I fear the <a href="http://www.xemacs.org/">Emacs situation</a>. </p>
+ <p> (By which I mean, ``Lack of a usable version thereof.'' No, running RMSmacs inside a terminal window doesn't qualify. Nor does running an X server on the Mac: if I were going to switch, why in the world would I continue inflicting the X Windows Disaster on myself? Wouldn't getting away from that be the <i>whole
+ point?</i>) </p>
+
+ <ul><span size="-1"> (I understand there is an almost-functional Aqua version of <a href="http://fakehost/test/../hacks/why-cooperation-with-rms-is-impossible.mp3">
+ RMSmacs</a> now. I'll probably check it out at some point, but the problem with <i><a href="http://fakehost/test/lemacs.html">me</a></i> switching from XEmacs to RMSmacs is that it would probably result in another <a href="http://slashdot.org/article.pl?sid=03/01/24/1440207">
+ Slashdork</a> post, meaning I'd wake up to another 150+ poorly spelled flames in my inbox... I'm hoping for a Aquafied XEmacs, but I know that's not likely to happen any time soon.)</span>
+ </ul><p> By the way, the suggestion to switch Linux distrubutions in order to get a single app to work might sound absurd at first. And that's because <a href="http://fakehost/test/linux.html">it is</a>. But I've been saturated with Unix-peanut-gallery effluvia for so long that it no longer even surprises me when every
+ <nobr>question --</nobr> no matter how
+ <nobr>simple --</nobr> results in someone suggesting that you either A) patch your kernel or B) change distros. It's inevitable and inescapable, like Hitler. </p>
+ </blockquote>
+
+ <hr></hr>
+ <p> <a href="http://fakehost/test/../"><img alt="[ up ]" onmouseout="this.src=&quot;../compass1.gif&quot;" onmouseover="this.src=&quot;../compass2.gif&quot;" src="http://fakehost/test/../compass1.gif"></img></a> </p>
+</div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/table-style-attributes/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/table-style-attributes/source.html
new file mode 100644
index 000000000..0e20275b6
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/table-style-attributes/source.html
@@ -0,0 +1,167 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+
+<head>
+ <title>linux video</title>
+ <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon"/>
+ <link rel="stylesheet" type="text/css" href="/jwz.css"/>
+ <script type="text/javascript" src="/jwz.js"></script>
+</head>
+
+<body class="jwzw">
+ <p align="CENTER">
+ <font size="+3"><b>linux usability
+ <font size="4"><br/>...or, why do I bother.</font></b></font><br/> © 2002, 2003
+ <!--
+ <A HREF="../">Jamie Zawinski</A>
+ <A HREF="../about.html">&lt;[email protected]&gt;</A>
+--><a href="mailto:/dev/[email protected]?subject=Please%20delete%20this%20message%20without%20reading%20it.">Jamie Zawinski</a> </p>
+ <!--
+<P><BR>
+<DIV ALIGN=CENTER>
+<TABLE WIDTH="50%" CELLPADDING=20 CELLSPACING=0 BORDER BGCOLOR="#FEFFE6">
+ <TR>
+ <TD BGCOLOR="#FEFFE6">
+
+ <P> <B>Welcome,
+ <A HREF="http://slashdot.org/article.pl?sid=03/01/24/1440207">
+ Slashdot</A> readers!</B>
+
+ <P> If you have any comments on this article, please feel free to
+ mail them to me <A HREF="mailto:[email protected]"><B>here!</B></A>
+
+</TD></TR></TABLE></DIV>
+-->
+ <p><br/> </p>
+ <div align="CENTER">
+ <table width="90%" cellpadding="20" cellspacing="0" border="" bgcolor="#FEFFE6">
+ <tbody>
+ <tr>
+ <td bgcolor="#FEFFE6">
+ <p> In December 2002, I tried to install some software on my computer. The experience was, shall we say, less than pleasant. On many levels. I wrote about my experience, as I so often do. </p>
+ <p> Then in January, the jackasses over at Slashdot <a href="http://slashdot.org/article.pl?sid=03/01/24/1440207">posted</a> a link to it, calling it a "review" of Linux video software. I guess you could consider it a review, if you were to squint at it just right. But really what it is is a <i>rant</i> about how I had an evening stolen from me by crap software design. It is a flame about the pathetic state of Linux usability in general, and the handful of video players I tried out in particular. It makes no attempt to be balanced or objective or exhaustive. It is a description of my experience. Perhaps your experience was different. Good for you. </p>
+ <p> So of course that day I got hundreds of emails about it. Every Linux apologist in the world wanted to make sure I was fully informed of their opinion. The replies were roughly in the following groups: </p>
+ <p> </p>
+ <ul>
+ <li> "Right on! I had exactly the same experience! Thank you for putting it into words." <i>(This was about 1/3 of the replies.)</i>
+ <p></p>
+ </li>
+ <li> "You're clearly an idiot, Linux is too sophisticated for you, you clearly are incapable of understanding anything, you should go back to kindergarten and/or use a Mac." <i>(Oddly, all of these messages used the word</i> `clearly' <i>repeatedly.)</i>
+ <p></p>
+ </li>
+ <li> "If you don't like it, fix it yourself."
+ <p></p>
+ </li>
+ <li> "Netscape sucks! XEmacs sucks! You suck! I never liked you anyway! And you swear too much!"
+ <p></p>
+ </li>
+ <li> "How dare you criticize someone else's work! You got it for free! You should be on your knees thanking them for wasting your time!"
+ <p></p>
+ </li>
+ <li> "While you have some valid complaints, I'm going to focus on this one inconsequential error you made in your characterization of one of the many roadblocks you encountered. You suck!"
+ <p></p>
+ </li>
+ <li> "It's your fault for using Red Hat! You should be using Debian/<wbr/>Mandrake/<wbr/>Gentoo instead!"
+ <p></p>
+ </li>
+ <li> "Red Hat 7.2 is totally obsolete! It's almost 14 months old! What were you expecting!" </li>
+ </ul>
+ </td>
+ <td bgcolor="#FEFFE6">
+ <p> While I am flattered that so many logorrheic Linux fanboys are sufficiently interested in my opinions and experiences to share their deeply heartfelt views with me, you can all rest assured that: </p>
+ <p></p>
+ <ul>
+ <ul type="A">
+ <li> I've heard it before; and </li>
+ <li> I didn't care the first time. </li>
+ </ul>
+ </ul>
+ <p> So please. Don't bother sending me any more mail about this. It's a near certainty that I will just delete it unread, so you might as well not waste your time. Feel free to call me names on your own web page if you feel the need to get it out of your system. But kindly stay out of my inbox.
+ <!--
+ <P> If you <I>must</I> send me mail you can send it to me
+ <A HREF="mailto:[email protected]"><B>here.</B></A>
+ -->
+ <!--
+<PRE><FONT SIZE="1">
+ Rob Malda wrote:
+ >
+ > com'on man. take my email address off your page. I'm deleting
+ > tons of these messages.
+
+ Jamie Zawinski wrote:
+ >
+ > Sure, how about you take the story off slashdot so that I don't
+ > have to delete them either?
+</FONT></PRE>
+-->
+ </p>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p><br/> </p>
+ <p align="CENTER">
+ <font size="+3"><b>that said...</b></font>
+ </p>
+ <p> I understand that one can play videos on one's computer. I understand these videos come in many different formats. Every now and then I try to figure out what the Done Thing is, as far as playing movies on one's Linux machine. </p>
+ <p></p>
+ <ul> (Really my eventual goal is to be able to <i>create</i> video on Linux, but I figured I'd start small, and see if I could just get <i>playback</i> working before trying something that is undoubtedly ten thousand times harder.) </ul>
+ <p> I finally found <a href="http://mirrors.sctpc.com/dominik/linux/pkgs/mplayer/">RPMs</a> of <a href="http://www.mplayerhq.hu/">mplayer</a> that would consent to install themselves on a Red Hat 7.2 machine, and actually got it to play some videos. Amazing. But it's a total pain in the ass to use due to rampant "themeing." <i>Why do people do this?</i> They map this stupid shaped window with no titlebar (oh, sorry, your choice of a dozen stupidly-shaped windows without titlebars) all of which use fonts that are way too small to read. But, here's the best part, there's no way to raise the window to the top. So if another window ever gets on top of it, well, sorry, you're out of luck. And half of the themes always map the window at the very bottom of the
+ <nobr>screen --</nobr> conveniently <i>under</i> my panel where I can't reach it. </p>
+ <p> Resizing the window changes the aspect ratio of the video! Yeah, I'm sure someone has <i>ever</i> wanted that. </p>
+ <p> It moves the mouse to the upper left corner of every dialog box it creates! Which is great, because that means that when it gets into this cute little state of popping up a blank dialog that says "Error" five times a second, you can't even move the mouse over to another window to kill the program, you have to log in from another machine. </p>
+ <p> Fucking morons. </p>
+ <p> So I gave up on that, and tried to install <a href="http://gstreamer.net/">gstreamer</a>. Get this. Their propose ``solution'' for distributing binaries on Red Hat systems? They point you at an RPM that installs <b>apt</b>, the Debian package system! Yeah, that's a <i>good</i> idea, I want to struggle with two competing packaging systems on my machine just to install a single app. Well, I found some <a href="http://gstreamer.net/releases/redhat/redhat-72-i386/RPMS.ximian/">
+RPMs</a> for Red Hat 7.2, but apparently they expect you to have already rectally inserted <a href="http://www.gnome.org/">Gnome2</a> on that 7.2 system first. Uh, no. I've seen the horror of Red Hat 8.0, and there's no fucking way I'm putting Gnome2 on any more of my machines for at least another six months, maybe a year. </p>
+ <p> Ok, no gstreamer. Let's try <a href="http://xinehq.de/">Xine</a>. I found <a href="http://rpmfind.net/linux/redhat/7.3/en/os/i386/RedHat/RPMS/">
+RPMs</a>, and it sucks about the same as mplayer, and in about the same ways, though slightly less bad: it doesn't screw the aspect ratio when you resize the window; and at least its stupidly-shaped window is always forced to be on top. I don't like that either, but it's better than <i>never</i> being on top. It took me ten minutes to figure out where the "Open File" dialog was. It's on the button labeled <b><tt>"://"</tt></b> whose tooltip says "MRL Browser". Then you get to select file names from an oh-so-cute window that I guess is supposed to look like a tty, or maybe an LCD screen. It conveniently <i>centers</i> the file names in the list, and truncates them at about 30 characters. The scrollbar is also composed of "characters": it's an underscore. </p>
+ <p> <i> What are these fucktards <b><u>thinking???</u></b></i> </p>
+ <p> Then I checked out <a href="http://www.dtek.chalmers.se/groups/dvd/">Ogle</a> again, and it hasn't been updated since the last time I tried, six months ago. It's a pretty decent DVD player, if you have the physical DVD. It does on-screen menus, and you can click on them with the mouse. But I don't need a DVD player (I have a hardware DVD player that works just fine.) It can't, as far as I can tell, play anything but actual discs. </p>
+ <p> Oh, and even though I have libdvdcss installed (as evidenced by the fact that Ogle actually works) Xine won't play the same disc that Ogle will play. It seems to be claiming that the CSS stuff isn't installed, which it clearly is. </p>
+ <p> An idiocy that all of these programs have in common is that, in addition to opening a window for the movie, and a window for the control panel, they <i>also</i> spray a constant spatter of curses crud on the terminal they were started from. I imagine at some point, there was some user who said, ``this program is pretty nice, but you know what it's missing? It's missing a lot of pointless chatter about what plugins and fonts have been loaded!'' </p>
+ <p> </p>
+ <hr width="50%"/> <b>And here's the Random Commentary section:</b>
+ <p></p>
+ <blockquote> <b><a href="http://www.lazycat.org/">Makali</a> wrote:</b>
+ <ul><i>
+ Whenever a programmer thinks, "Hey, skins, what a cool idea", their
+ computer's speakers should create some sort of cock-shaped soundwave
+ and plunge it repeatedly through their skulls.
+ </i></ul>
+ <p> I am fully in support of this proposed audio-cock technology. </p>
+ <p><b>Various people wrote:</b> </p>
+ <ul><i>
+ You shouldn't even bother compiling the GUI into mplayer!
+ </i></ul>
+ <p> So I should solve the problem of ``crappy GUI'' by replacing it with ``no GUI at all?'' I should use the program only from the command line, or by memorizing magic keystrokes? Awesome idea. </p>
+ <p><b>Various other people wrote:</b> </p>
+ <ul><i>
+ You didn't try <a href="http://www.videolan.org/vlc/">vlc</a>!
+ </i></ul>
+ <p> True, I hadn't. Now I have. It has an overly-complicated UI, (the Preferences panel is a festival of overkill) but at least it uses standard menus and buttons, so it doesn't make you want to claw your eyes out immediately. But, it can only play a miniscule number of video formats, so it's mostly useless. <i>*plonk*</i> </p>
+ <p><b>Someone else wrote:</b> </p>
+ <ul><i>
+ Have you considered changing distributions?
+ </i></ul>
+ <p> Yes, every single time I try something like this, I very seriously consider <a href="../gruntle/bittybox.html">getting a Mac</a>. </p>
+ <p> Really the only thing that's stopping me is that I fear the <a href="http://www.xemacs.org/">Emacs situation</a>. </p>
+ <p> (By which I mean, ``Lack of a usable version thereof.'' No, running RMSmacs inside a terminal window doesn't qualify. Nor does running an X server on the Mac: if I were going to switch, why in the world would I continue inflicting the X Windows Disaster on myself? Wouldn't getting away from that be the <i>whole
+ point?</i>) </p>
+ <p></p>
+ <ul>
+ <font size="-1"> (I understand there is an almost-functional Aqua version of <a href="../hacks/why-cooperation-with-rms-is-impossible.mp3">
+ RMSmacs</a> now. I'll probably check it out at some point, but the problem with <i><a href="lemacs.html">me</a></i> switching from XEmacs to RMSmacs is that it would probably result in another <a href="http://slashdot.org/article.pl?sid=03/01/24/1440207">
+ Slashdork</a> post, meaning I'd wake up to another 150+ poorly spelled flames in my inbox... I'm hoping for a Aquafied XEmacs, but I know that's not likely to happen any time soon.)</font>
+ </ul>
+ <p> By the way, the suggestion to switch Linux distrubutions in order to get a single app to work might sound absurd at first. And that's because <a href="linux.html">it is</a>. But I've been saturated with Unix-peanut-gallery effluvia for so long that it no longer even surprises me when every
+ <nobr>question --</nobr> no matter how
+ <nobr>simple --</nobr> results in someone suggesting that you either A) patch your kernel or B) change distros. It's inevitable and inescapable, like Hitler. </p>
+ </blockquote>
+ <p></p>
+ <hr/>
+ <p> </p>
+ <p align="CENTER"> <a href="../"><img alt="[ up ]" class="compass" src="../compass1.gif" onmouseover="this.src=&quot;../compass2.gif&quot;" onmouseout="this.src=&quot;../compass1.gif&quot;"/></a> </p>
+</body>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/telegraph/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/telegraph/expected-images.json
new file mode 100644
index 000000000..c52fd8c66
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/telegraph/expected-images.json
@@ -0,0 +1,3 @@
+[
+ "http:\/\/www.telegraph.co.uk\/content\/dam\/news\/2017\/11\/16\/TELEMMGLPICT000146889449-xlarge_trans_NvBQzQNjv4BqySoB6nTCgtc7U4LQ_FPO4hKi2sT3vi7ux2-RDZwC4QA.jpeg"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/telegraph/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/telegraph/expected-metadata.json
new file mode 100644
index 000000000..be19af16d
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/telegraph/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "Our Foreign Staff \n \n\n16 November 2017 • 2:15pm",
+ "Direction": null,
+ "Excerpt": "Zimbabwe President Robert Mugabe, his wife Grace and two key figures from her G40 political faction are under house arrest at Mugabe's &quot;Blue House&quot; compound in Harare and are insisting the 93 year-old finishes his presidential term, a source said.",
+ "Image": "http:\/\/www.telegraph.co.uk\/content\/dam\/news\/2017\/11\/16\/TELEMMGLPICT000146889449-xlarge_trans_NvBQzQNjv4BqySoB6nTCgtc7U4LQ_FPO4hKi2sT3vi7ux2-RDZwC4QA.jpeg",
+ "Title": "Zimbabwe coup: Robert Mugabe and wife Grace 'insisting he finishes his term', as priest steps in to mediate",
+ "SiteName": "The Telegraph"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/telegraph/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/telegraph/expected.html
new file mode 100644
index 000000000..23a2a74ed
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/telegraph/expected.html
@@ -0,0 +1,38 @@
+<div>
+ <div>
+ <div>
+ <p><span>Z</span>imbabwe President <a href="http://www.telegraph.co.uk/news/2017/11/17/zimbabwes-ruling-party-drafting-motion-fire-robert-mugabe-sunday/">Robert Mugabe</a>, his wife Grace and two key figures from her G40 political faction are under house arrest at Mugabe's "Blue House" compound in Harare and are insisting the 93 year-old finishes his presidential term, a source said.</p>
+ <p>The G40 figures are cabinet ministers Jonathan Moyo and Saviour Kasukuwere, who fled to the compound after their homes were attacked by troops in Tuesday night's coup, the source, who said he had spoken to people inside the compound, told Reuters.</p>
+ <p>Mr Mugabe is resisting mediation by a Catholic priest to allow the former guerrilla a graceful exit after the military takeover.</p>
+ <p>The priest, Fidelis Mukonori, is acting as a middle-man between Mr Mugabe and the generals, <a href="http://www.telegraph.co.uk/news/2017/11/15/zimbabwe-crisis-have-spent-long-careful-really-change/">who seized power in a targeted operation against "criminals" in his entourage</a>, a senior political source told Reuters.</p>
+ <p>The source could not provide details of the talks, which appear to be aimed at a smooth and bloodless transition after the departure of Mr Mugabe, who has led Zimbabwe since independence in 1980.</p>
+ <p>Mr Mugabe, still seen by many Africans as a liberation hero, is reviled in the West as a despot whose disastrous handling of the economy and willingness to resort to violence to maintain power destroyed one of Africa's most promising states.</p>
+ </div>
+ </div>
+ </div><div>
+ <div>
+ <p><span>Z</span>imbabwean intelligence reports seen by Reuters suggest that former security chief Emmerson Mnangagwa, who was ousted as vice-president this month, has been mapping out a post-Mugabe vision with the military and opposition for more than a year.</p>
+ </div>
+ </div><div>
+ <div>
+ <div>
+ <p><span>F</span>uelling speculation that Mnangagwa's plan might be rolling into action, opposition leader Morgan Tsvangirai, who has been receiving cancer treatment in Britain and South Africa, returned to Harare late on Wednesday, his spokesman said.</p>
+ <p>South Africa said Mr Mugabe had told President Jacob Zuma by telephone on Wednesday that he was confined to his home but was otherwise fine and the military said it was keeping him and his family, including wife Grace, safe.</p>
+ </div>
+ </div>
+ </div><div>
+ <div>
+ <div>
+ <p><span>D</span>espite the lingering admiration for Mr Mugabe, there is little public affection for 52-year-old Grace, a former government typist who started having an affair with Mr Mugabe in the early 1990s as his first wife, Sally, was dying of kidney disease.</p>
+ <p>Dubbed "DisGrace" or "Gucci Grace" on account of her reputed love of shopping, she enjoyed a meteoric rise through the ranks of Mugabe's ruling Zanu-PF in the last two years, culminating in Mnangagwa's removal a week ago - a move seen as clearing the way for her to succeed her husband.</p>
+ </div>
+ </div>
+ </div><div>
+ <div>
+ <p><span>I</span>n contrast to the high political drama unfolding behind closed doors, the streets of the capital remained calm, with people going about their daily business, albeit under the watch of soldiers on armoured vehicles at strategic locations.</p>
+ </div>
+ </div><div>
+ <div>
+ <p><span>W</span>hatever the final outcome, the events could signal a once-in-a-generation change for the former British colony, a regional breadbasket reduced to destitution by economic policies Mr Mugabe's critics have long blamed on him.</p>
+ </div>
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/telegraph/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/telegraph/source.html
new file mode 100644
index 000000000..3aad2a179
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/telegraph/source.html
@@ -0,0 +1,1821 @@
+<!DOCTYPE html>
+<html lang="en-GB" xmlns:fb="http://www.facebook.com/2008/fbml" xmlns:og="http://opengraphprotocol.org/schema/" class="articleRenderer2HTML no-js">
+
+<head>
+ <style class="tmgfont" data-font-name="Austin News Deck Semibold" data-font-file-woff2="/etc/designs/telegraph/core/clientlibs/tmgchannels/_base/fonts/Austin-News-Deck-Web-Semibold.woff2" data-font-file-woff="/etc/designs/telegraph/core/clientlibs/tmgchannels/_base/fonts/Austin-News-Deck-Web-Semibold.woff"></style>
+ <style class="tmgfont" data-font-name="Austin News Deck Medium" data-font-file-woff2="/etc/designs/telegraph/core/clientlibs/tmgchannels/_base/fonts/Austin-News-Deck-Web-Medium.woff2" data-font-file-woff="/etc/designs/telegraph/core/clientlibs/tmgchannels/_base/fonts/Austin-News-Deck-Web-Medium.woff"></style>
+ <style class="tmgfont" data-font-name="Austin News Text Roman" data-font-file-woff2="/etc/designs/telegraph/core/clientlibs/tmgchannels/_base/fonts/Austin-News-Text-Web-Roman.woff2" data-font-file-woff="/etc/designs/telegraph/core/clientlibs/tmgchannels/_base/fonts/Austin-News-Text-Web-Roman.woff"></style>
+ <style class="tmgfont" data-font-name="Austin News Text Semibold" data-font-file-woff2="/etc/designs/telegraph/core/clientlibs/tmgchannels/_base/fonts/Austin-News-Text-Web-Semibold.woff2" data-font-file-woff="/etc/designs/telegraph/core/clientlibs/tmgchannels/_base/fonts/Austin-News-Text-Web-Semibold.woff"></style>
+ <style class="tmgfont" data-font-name="Telesans Text Regular" data-font-file-woff2="/etc/designs/telegraph/core/clientlibs/tmgchannels/_base/fonts/Telesans-Text-Web-Regular.woff2" data-font-file-woff="/etc/designs/telegraph/core/clientlibs/tmgchannels/_base/fonts/Telesans-Text-Web-Regular.woff"></style>
+ <style class="tmgfont" data-font-name="Marian Poster Roman" data-font-file-woff2="/etc/designs/telegraph/core/clientlibs/tmgchannels/_base/fonts/Marian-Poster-Web-Roman.woff2" data-font-file-woff="/etc/designs/telegraph/core/clientlibs/tmgchannels/_base/fonts/Marian-Poster-Web-Roman.woff"></style>
+ <script data-pagespeed-no-defer="">
+ //<![CDATA[
+ (function() {
+ function d(b) {
+ var a = window;
+ if (a.addEventListener) a.addEventListener("load", b, !1);
+ else if (a.attachEvent) a.attachEvent("onload", b);
+ else {
+ var c = a.onload;
+ a.onload = function() {
+ b.call(this);
+ c && c.call(this)
+ }
+ }
+ }
+ var p = Date.now || function() {
+ return +new Date
+ };
+ window.pagespeed = window.pagespeed || {};
+ var q = window.pagespeed;
+
+ function r() {
+ this.a = !0
+ }
+ r.prototype.c = function(b) {
+ b = parseInt(b.substring(0, b.indexOf(" ")), 10);
+ return !isNaN(b) && b <= p()
+ };
+ r.prototype.hasExpired = r.prototype.c;
+ r.prototype.b = function(b) {
+ return b.substring(b.indexOf(" ", b.indexOf(" ") + 1) + 1)
+ };
+ r.prototype.getData = r.prototype.b;
+ r.prototype.f = function(b) {
+ var a = document.getElementsByTagName("script"),
+ a = a[a.length - 1];
+ a.parentNode.replaceChild(b, a)
+ };
+ r.prototype.replaceLastScript = r.prototype.f;
+ r.prototype.g = function(b) {
+ var a = window.localStorage.getItem("pagespeed_lsc_url:" + b),
+ c = document.createElement(a ? "style" : "link");
+ a && !this.c(a) ? (c.type = "text/css", c.appendChild(document.createTextNode(this.b(a)))) : (c.rel = "stylesheet", c.href = b, this.a = !0);
+ this.f(c)
+ };
+ r.prototype.inlineCss = r.prototype.g;
+ r.prototype.h = function(b, a) {
+ var c = window.localStorage.getItem("pagespeed_lsc_url:" + b + " pagespeed_lsc_hash:" + a),
+ f = document.createElement("img");
+ c && !this.c(c) ? f.src = this.b(c) : (f.src = b, this.a = !0);
+ for (var c = 2, k = arguments.length; c < k; ++c) {
+ var g = arguments[c].indexOf("=");
+ f.setAttribute(arguments[c].substring(0, g), arguments[c].substring(g + 1))
+ }
+ this.f(f)
+ };
+ r.prototype.inlineImg = r.prototype.h;
+
+ function t(b, a, c, f) {
+ a = document.getElementsByTagName(a);
+ for (var k = 0, g = a.length; k < g; ++k) {
+ var e = a[k],
+ m = e.getAttribute("data-pagespeed-lsc-hash"),
+ h = e.getAttribute("data-pagespeed-lsc-url");
+ if (m && h) {
+ h = "pagespeed_lsc_url:" + h;
+ c && (h += " pagespeed_lsc_hash:" + m);
+ var l = e.getAttribute("data-pagespeed-lsc-expiry"),
+ l = l ? (new Date(l)).getTime() : "",
+ e = f(e);
+ if (!e) {
+ var n = window.localStorage.getItem(h);
+ n && (e = b.b(n))
+ }
+ e && (window.localStorage.setItem(h, l + " " + m + " " + e), b.a = !0)
+ }
+ }
+ }
+
+ function u(b) {
+ t(b, "img", !0, function(a) {
+ return a.src
+ });
+ t(b, "style", !1, function(a) {
+ return a.firstChild ? a.firstChild.nodeValue : null
+ })
+ }
+ q.i = function() {
+ if (window.localStorage) {
+ var b = new r;
+ q.localStorageCache = b;
+ d(function() {
+ u(b)
+ });
+ d(function() {
+ if (b.a) {
+ for (var a = [], c = [], f = 0, k = p(), g = 0, e = window.localStorage.length; g < e; ++g) {
+ var m = window.localStorage.key(g);
+ if (!m.indexOf("pagespeed_lsc_url:")) {
+ var h = window.localStorage.getItem(m),
+ l = h.indexOf(" "),
+ n = parseInt(h.substring(0, l), 10);
+ if (!isNaN(n))
+ if (n <= k) {
+ a.push(m);
+ continue
+ } else if (n < f || !f) f = n;
+ c.push(h.substring(l + 1, h.indexOf(" ", l + 1)))
+ }
+ }
+ k = "";
+ f && (k = "; expires=" + (new Date(f)).toUTCString());
+ document.cookie = "_GPSLSC=" + c.join("!") + k;
+ g = 0;
+ for (e = a.length; g < e; ++g) window.localStorage.removeItem(a[g]);
+ b.a = !1
+ }
+ })
+ }
+ };
+ q.localStorageCacheInit = q.i;
+ })();
+ pagespeed.localStorageCacheInit();
+ //]]>
+ </script>
+ <link rel="stylesheet" href="/etc/designs/telegraph/core/clientlibs/tmgchannels.min.4-11--1.css" type="text/css" />
+ <link rel="stylesheet" href="/etc/designs/telegraph/core/clientlibs/tmgchannels/news.min.4-11--1.css" type="text/css" />
+ <script>
+ window.tmgFacebookAppId = "1785449471702494";
+ </script>
+ <script>
+ // Meter did not return any assign values
+ </script>
+ <script>
+ var tmg = tmg || {};
+ tmg.COMMENTING_STATUS = true;
+ </script>
+ <script>
+ var tmg = tmg || {};
+ tmg.OPTIMIZELY_SYNC = false;
+ </script>
+ <title>Zimbabwe coup: Robert Mugabe and wife Grace 'insisting he finishes his term', as priest steps in to mediate</title>
+ <link rel="dns-prefetch" href="//static.telegraph.co.uk" />
+ <link rel="dns-prefetch" href="//cdn.optimizely.com" />
+ <link rel="dns-prefetch" href="//cdn3.optimizely.com" />
+ <link rel="dns-prefetch" href="//d3c3cq33003psk.cloudfront.net" />
+ <link rel="dns-prefetch" href="//assets.adobedtm.com" />
+ <link rel="dns-prefetch" href="//cf.eip.telegraph.co.uk" />
+ <link rel="dns-prefetch" href="//www.google-analytics.com" />
+ <link rel="dns-prefetch" href="//www.googletagservices.com" />
+ <link rel="dns-prefetch" href="//static.parsely.com" />
+ <link rel="amphtml" href="http://www.telegraph.co.uk/news/2017/11/16/zimbabwes-robert-mugabe-wife-grace-insisting-finishes-term-priest/amp/" />
+ <link rel="shortcut icon" href="/etc/designs/telegraph/core/clientlibs/core/icons/favicon.ico" />
+ <link rel="icon" type="image/png" sizes="152x152" href="/etc/designs/telegraph/core/clientlibs/core/icons/favicon-152x152.png" />
+ <link rel="apple-touch-icon" sizes="152x152" href="/etc/designs/telegraph/core/clientlibs/core/icons/favicon-152x152.png" />
+ <meta name="msapplication-TileColor" content="#2c769d" />
+ <meta name="msapplication-TileImage" content="/etc/designs/telegraph/core/clientlibs/core/icons/mstile-144x144.png" />
+ <!--/* IE 11 Tile for Windows 8.1 Start Screen */ -->
+ <meta name="msapplication-tooltip" content="The Telegraph" />
+ <meta name="msapplication-config" content="/etc/designs/telegraph/core/clientlibs/core/icons/browserconfig.xml" />
+ <meta name="msapplication-square310x310logo" content="/etc/designs/telegraph/core/clientlibs/core/icons/mstile-310x310.png" />
+ <meta name="msapplication-wide310x150logo" content="/etc/designs/telegraph/core/clientlibs/core/icons/mstile-310x150.png" />
+ <meta name="msapplication-square150x150logo" content="/etc/designs/telegraph/core/clientlibs/core/icons/mstile-150x150.png" />
+ <meta name="msapplication-square70x70logo" content="/etc/designs/telegraph/core/clientlibs/core/icons/mstile-70x70.png" />
+ <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=yes" />
+ <script>
+ RUM.mark('css_load_tmgchannels');
+ </script>
+ <script>
+ window.clientlibs = {
+ "css": {},
+ "js": {
+ "respond_js": {
+ "load": ["/etc/designs/telegraph/core/clientlibs/respond.min.4-11--1.js"],
+ "test": "Modernizr.mq(\"only all\")"
+ },
+ "json_js": {
+ "load": ["/etc/designs/telegraph/core/clientlibs/json.min.4-11--1.js"],
+ "test": "window.JSON"
+ },
+ "core_js": {
+ "load": ["/etc/designs/telegraph/core/clientlibs/core.min.4-11--1.js"]
+ }
+ }
+ };
+ </script>
+ <script type="text/javascript" src="/etc/designs/telegraph/core/clientlibs/core/head.min.4-11--1.js"></script>
+ <script>
+ RUM.mark('js_load_head');
+ </script>
+ <script>
+ window.clientlibs.js.twitter_js = {
+ test: "document.querySelectorAll && document.querySelectorAll('.twitter-follow-button, .twitter-tweet, .twitter-timeline').length === 0",
+ load: ["//platform.twitter.com/widgets.js"]
+ };
+ <!-- /* We cannot compile this JS into our clientLibs due to syntax errors in the Ooyala vendor files and our version of YUI compressor */ -->
+ window.clientlibs.js.ooyala_core = {
+ test: true,
+ load: ["/etc/designs/telegraph/core/clientlibs/core/vendor/ooyala/ooyala-player.min.js", "http://b.scorecardresearch.com/c2/plugins/streamingtag_plugin_ooyalav4.js"]
+ };
+ window.clientlibs.js.google_maps = {
+ test: "document.querySelectorAll && !document.querySelectorAll('.js-product-map').length",
+ load: ["//maps.googleapis.com/maps/api/js?v=3&sensor=false&callback=tmgJQ.fn.telegraph_product_map"]
+ };
+ window.clientlibs.js.facebook_sdk = {
+ test: "document.querySelectorAll && document.querySelectorAll('.fb-page').length === 0",
+ load: ["//connect.facebook.net/en_GB/sdk.js"]
+ };
+ </script>
+ <link rel="canonical" href="http://www.telegraph.co.uk/news/2017/11/16/zimbabwes-robert-mugabe-wife-grace-insisting-finishes-term-priest/" />
+ <meta name="description" content="Zimbabwe President Robert Mugabe, his wife Grace and two key figures from her G40 political faction are under house arrest at Mugabe's &amp;quot;Blue House&amp;quot; compound in Harare and are insisting the 93 year-old finishes his presidential term, a source said." />
+ <meta name="keywords" content="Zimbabwe,Standard,World News,Robert Mugabe,Africa,News,Grace Mugabe" />
+ <meta name="tmgads.channel" content="news" />
+ <meta name="tmgads.section" content="news-2017" />
+ <meta name="tmgads.zone" content="news.2017.11.16" />
+ <meta name="tmgads.articleid" content="ApwTwW7WWPB8" />
+ <meta name="tmgads.pagetype" content="story" />
+ <meta name="tmgads.level" content="5" />
+ <meta name="tmgads.otherdata" />
+ <meta name="tmgads.geo" content="IE" />
+ <meta name="tmgads.keywords" content="Zimbabwe,Standard,World News,Robert Mugabe,Africa,News,Grace Mugabe" />
+ <meta name="DCSext.Channel" content="news" />
+ <meta name="DCSext.Category" content="2017" />
+ <meta name="DCSext.Genre" content="11" />
+ <meta name="DCSext.MLC" content="/news/2017/11/16" />
+ <meta name="DCSext.articleId" content="ApwTwW7WWPB8" />
+ <meta name="DCSext.Content_Type" content="story" />
+ <meta name="DCSext.Level" content="5" />
+ <meta name="DCSext.author" content="Our Foreign Staff" />
+ <meta name="DCSext.articleFirstPublished" content="2017-11-16 11:13" />
+ <meta name="DCSext.cf" content="1" />
+ <meta name="DCSext.cd" content="0" />
+ <meta name="DCSext.cn" content="0" />
+ <meta name="DCSext.pd" content="1" />
+ <meta property="og:title" content="Zimbabwe coup: Robert Mugabe and wife Grace 'insisting he finishes his term', as priest steps in to mediate" />
+ <meta property="og:description" content="Zimbabwe President Robert Mugabe, his wife Grace and two key figures from her G40 political faction are under house arrest at Mugabe's &amp;quot;Blue House&amp;quot; compound in Harare and are insisting the 93 year-old finishes his presidential term, a source said." />
+ <meta property="og:type" content="article" />
+ <meta property="og:site_name" content="The Telegraph" />
+ <meta property="og:url" content="http://www.telegraph.co.uk/news/2017/11/16/zimbabwes-robert-mugabe-wife-grace-insisting-finishes-term-priest/" />
+ <meta property="og:image" content="http://www.telegraph.co.uk/content/dam/news/2017/11/16/TELEMMGLPICT000146889449-xlarge_trans_NvBQzQNjv4BqySoB6nTCgtc7U4LQ_FPO4hKi2sT3vi7ux2-RDZwC4QA.jpeg" />
+ <meta name="twitter:title" content="Zimbabwe coup: Robert Mugabe and wife Grace 'insisting he finishes his term', as priest steps in to mediate" />
+ <meta name="twitter:url" content="http://www.telegraph.co.uk/news/2017/11/16/zimbabwes-robert-mugabe-wife-grace-insisting-finishes-term-priest/" />
+ <meta name="twitter:image" content="http://www.telegraph.co.uk/content/dam/news/2017/11/16/TELEMMGLPICT000146889449-xlarge_trans_NvBQzQNjv4BqySoB6nTCgtc7U4LQ_FPO4hKi2sT3vi7ux2-RDZwC4QA.jpeg" />
+ <meta name="twitter:site" content="@TelegraphNews" />
+ <meta name="twitter:description" content="Zimbabwe President Robert Mugabe, his wife Grace and two key figures from her G40 political faction are under house arrest at Mugabe's &amp;quot;Blue House&amp;quot; compound in Harare and are insisting the 93 year-old finishes his presidential term, a source said." />
+ <meta name="twitter:card" content="summary_large_image" />
+ <meta name="tmgads.businessSegment" content="news" />
+ <meta name="tmg.sponsor" />
+ <meta name="DCSext.campaignId" />
+ <meta name="DCSext.campaignStart" />
+ <meta name="DCSext.campaignEnd" />
+ <meta name="DCSext.sponsored" />
+ <meta name="tmg.premium.override" content="false" />
+ <meta name="tmg.premium.state" content="false" />
+ <meta name="premiumContentOnFirstPublish" content="false" />
+ <meta property="article:content_tier" content="free" />
+ <script type="application/ld+json">
+ {
+ "@context": "https://schema.org",
+ "@type": "NewsArticle",
+ "headline": "Zimbabwe coup: Robert Mugabe and wife Grace \u0027insisting he finishes his term\u0027, as priest steps in to mediate",
+ "url": "http://www.telegraph.co.uk/news/2017/11/16/zimbabwes-robert-mugabe-wife-grace-insisting-finishes-term-priest/",
+ "thumbnailUrl": "http://www.telegraph.co.uk/content/dam/news/2017/11/16/TELEMMGLPICT000146889449-thumbnail_trans_NvBQzQNjv4BqySoB6nTCgtc7U4LQ_FPO4hKi2sT3vi7ux2-RDZwC4QA.jpeg",
+ "dateCreated": "2017-11-17T10:41:09Z",
+ "articleSection": "News",
+ "creator": ["Our Foreign Staff"],
+ "keywords": ["News", "Story", "Zimbabwe", "Standard", "World News", "Robert Mugabe", "Africa", "News", "Grace Mugabe"]
+ }
+ </script>
+ <script src="//assets.adobedtm.com/71dcbb11123ce6b2e1ce4d47fd79a130aad3fc95/satelliteLib-177113f60f763788009998023cd15615fe2168a2.js"></script>
+ <script>
+ RUM.mark('js_load_dtm');
+ </script>
+ <script>
+ var pageData = {
+ "topics": {
+ "places": {
+ "zimbabwe": {},
+ "africa": {}
+ },
+ "people": {
+ "robert-mugabe": {},
+ "grace-mugabe": {}
+ }
+ },
+ "storytype": {
+ "standard": {}
+ },
+ "structure": {
+ "news": {
+ "world-news": {}
+ }
+ }
+ };
+ </script>
+ <script>
+ var dataLayer = {
+ pageName: 'News\\\/2017\\\/11\\\/16\\\/Zimbabwe coup: Robert Mugabe and wife Grace \\\x27insisting he finishes his term\\\x27, as priest steps in to mediate',
+ pageType: 'articleRenderer2',
+ premiumContent: false,
+ premiumOverride: false,
+ pageId: 'ApwTwW7WWPB8',
+ rollupContentPath: '/news/2017/11/16/zimbabwes-robert-mugabe-wife-grace-insisting-finishes-term-priest',
+ videoEmbedded: 'false',
+ videoEmbedCount: '0'
+ };
+ </script>
+ <script>
+ window.tmg.dataLayerUtils.update();
+ </script>
+ <script>
+ var tmgAds = tmgAds || {};
+ tmgAds.sticky = true;
+ </script>
+ <script src="https://static.telegraph.co.uk/telegraph-advertising/tmg-gpt.min.js" async=""></script>
+ <script>
+ RUM.mark('js_load_gpt');
+ </script>
+ <meta name="robots" content="" />
+ <script>
+ window.tmgOoyala = {
+ api: {
+ pcode: 'RvbGU6Z74XE_a3bj4QwRGByhq9h2',
+ playerBrandingId: 'ZTIxYmJjZDM2NWYzZDViZGRiOWJjYzc5'
+ }
+ };
+ </script>
+ <!-- comScore Identifier: comscorekw=news -->
+ <link rel="dns-prefetch" href="//widgets.outbrain.com" />
+ <link rel="dns-prefetch" href="//widgets.mozo.com.au" />
+ <link rel="dns-prefetch" href="//s.telegraph.co.uk" />
+ <link rel="dns-prefetch" href="//www.dunhilltraveldeals.com" />
+ <link rel="dns-prefetch" href="//widgethost.barnebys.com" />
+</head>
+
+<body class="articleRenderer2 ">
+ <div class="advert-banner container js-advert-banner">
+ <div id="advert_tmg_ban" class="js-advert advert " data-adtype="ban"></div>
+ </div>
+ <div id="fb-root"></div>
+ <section class="snippet-overlay-nav">
+ <div class="container">
+ <!-- OVERLAY LOGO BAR -->
+ <div class="overlay-nav-logobar component">
+ <div class="component-content"> <a href="http://www.telegraph.co.uk/" class="overlay-nav-logobar__link">
+<img class="responsive-image overlay-nav-logobar__img" width="320" height="51" alt="The Telegraph" data-frz-ratio="6.27" src="/content/dam/TheTelegraph_portal_white-320-small.png" data-frz-src-array="[{'src':'/content/dam/TheTelegraph_portal_white-320-xsmall.png','width':160,'height':25,'percentageImageRatio':'15.62'},{'src':'/content/dam/TheTelegraph_portal_white-320-small.png','width':320,'height':51,'percentageImageRatio':'15.94'},{'src':'/content/dam/TheTelegraph_portal_white-320-medium.png','width':480,'height':76,'percentageImageRatio':'15.83'},{'src':'/content/dam/TheTelegraph_portal_white-320-large.png','width':720,'height':114,'percentageImageRatio':'15.83'},{'src':'/content/dam/TheTelegraph_portal_white-320-xlarge.png','width':1280,'height':204,'percentageImageRatio':'15.94'},{'src':'/content/dam/TheTelegraph_portal_white-320-xxlarge.png','width':1500,'height':239,'percentageImageRatio':'15.93'}]" />
+</a> </div>
+ </div>
+ <!-- CLOSE BUTTON -->
+ <div class="overlay-nav-button component">
+ <div class="component-content"> <button class="overlay-nav-button__button">
+<span class="overlay-nav-button__label"></span>
+</button> </div>
+ </div>
+ <div class="overlay-menu-wrapper">
+ <!-- NAV PRIMARY -->
+ <div class="overlay-nav-primary component" data-tmg-dtm-nav-area="overlaynav">
+ <div class="component-content">
+ <nav>
+ <ul class="overlay-nav-primary__list">
+ <li class="overlay-nav-primary__item "> <a class="overlay-nav-primary__link " title="Premium" href="/premium/" data-tmg-dtm-nav="1-nav:/premium.html">
+Premium
+</a> </li>
+ <li class="overlay-nav-primary__item "> <a class="overlay-nav-primary__link " href="/news/" data-tmg-dtm-nav="2-nav:/news.html">
+News
+</a> </li>
+ <li class="overlay-nav-primary__item "> <a class="overlay-nav-primary__link " title="Politics" href="/news/politics/" data-tmg-dtm-nav="3-nav:/news/politics.html">
+Politics
+</a> </li>
+ <li class="overlay-nav-primary__item "> <a class="overlay-nav-primary__link " href="/sport/" data-tmg-dtm-nav="4-nav:/sport.html">
+Sport
+</a> </li>
+ <li class="overlay-nav-primary__item "> <a class="overlay-nav-primary__link " href="/business/" data-tmg-dtm-nav="5-nav:/business.html">
+Business
+</a> </li>
+ <li class="overlay-nav-primary__item "> <a class="overlay-nav-primary__link " href="/money/" data-tmg-dtm-nav="6-nav:/money.html">
+Money
+</a> </li>
+ <li class="overlay-nav-primary__item "> <a class="overlay-nav-primary__link " href="/opinion/" data-tmg-dtm-nav="7-nav:/opinion.html">
+Opinion
+</a> </li>
+ <li class="overlay-nav-primary__item "> <a class="overlay-nav-primary__link " href="/obituaries/" data-tmg-dtm-nav="8-nav:/obituaries.html">
+Obituaries
+</a> </li>
+ <li class="overlay-nav-primary__item "> <a class="overlay-nav-primary__link " href="/travel/" data-tmg-dtm-nav="9-nav:/travel.html">
+Travel
+</a> </li>
+ <li class="overlay-nav-primary__item "> <a class="overlay-nav-primary__link " href="/science-technology/" data-tmg-dtm-nav="10-nav:/science-technology.html">
+Tech &amp; Science
+</a> </li>
+ <li class="overlay-nav-primary__item "> <a class="overlay-nav-primary__link " href="/culture/" data-tmg-dtm-nav="11-nav:/culture.html">
+Culture
+</a> </li>
+ <li class="overlay-nav-primary__item "> <a class="overlay-nav-primary__link " href="/films/" data-tmg-dtm-nav="12-nav:/films.html">
+Film
+</a> </li>
+ <li class="overlay-nav-primary__item "> <a class="overlay-nav-primary__link " href="/tv/" data-tmg-dtm-nav="13-nav:/tv.html">
+TV
+</a> </li>
+ <li class="overlay-nav-primary__item "> <a class="overlay-nav-primary__link " href="/lifestyle/" data-tmg-dtm-nav="14-nav:/lifestyle.html">
+Lifestyle
+</a> </li>
+ <li class="overlay-nav-primary__item "> <a class="overlay-nav-primary__link " href="/fashion/" data-tmg-dtm-nav="15-nav:/fashion.html">
+Fashion
+</a> </li>
+ <li class="overlay-nav-primary__item "> <a class="overlay-nav-primary__link " title="Luxury" href="/luxury/" data-tmg-dtm-nav="16-nav:/luxury.html">
+Luxury
+</a> </li>
+ <li class="overlay-nav-primary__item "> <a class="overlay-nav-primary__link " href="/cars/" data-tmg-dtm-nav="17-nav:/cars.html">
+Cars
+</a> </li>
+ <li class="overlay-nav-primary__item "> <a class="overlay-nav-primary__link " href="/video/" data-tmg-dtm-nav="18-nav:/video.html">
+Video
+</a> </li>
+ </ul>
+ </nav>
+ </div>
+ </div>
+ <!-- NAV SECONDARY -->
+ <div class="overlay-nav-secondary component" data-tmg-dtm-nav-area="overlaynav">
+ <div class="component-content">
+ <nav>
+ <ul class="overlay-nav-secondary__list">
+ <li class="overlay-nav-secondary__item "> <a class="overlay-nav-secondary__link " title="Free Mobile app" href="http://m.onelink.me/710a462e" data-tmg-dtm-nav="1-nav:http://m.onelink.me/710a462e">
+Free Mobile App
+</a> </li>
+ <li class="overlay-nav-secondary__item "> <a class="overlay-nav-secondary__link " href="http://jobs.telegraph.co.uk/" data-tmg-dtm-nav="2-nav:http://jobs.telegraph.co.uk/">
+Jobs
+</a> </li>
+ <li class="overlay-nav-secondary__item "> <a class="overlay-nav-secondary__link " href="/financial-services/" data-tmg-dtm-nav="3-nav:/financial-services.html">
+Financial Services
+</a> </li>
+ <li class="overlay-nav-secondary__item "> <a class="overlay-nav-secondary__link " title="Tutors" href="https://tutors.telegraph.co.uk/?WT.mc_id=tmg_nav_menu&amp;utm_source=tmg&amp;utm_medium=nav&amp;utm_campaign=tmg_nav_menu" data-tmg-dtm-nav="4-nav:https://tutors.telegraph.co.uk/?WT.mc_id=tmg_nav_menu&amp;utm_source=tmg&amp;utm_medium=nav&amp;utm_campaign=tmg_nav_menu">
+Tutors
+</a> </li>
+ <li class="overlay-nav-secondary__item "> <a class="overlay-nav-secondary__link " href="/rewards/" data-tmg-dtm-nav="5-nav:/rewards.html">
+Rewards
+</a> </li>
+ <li class="overlay-nav-secondary__item "> <a class="overlay-nav-secondary__link " href="/events/" data-tmg-dtm-nav="6-nav:/events.html">
+Events
+</a> </li>
+ <li class="overlay-nav-secondary__item "> <a class="overlay-nav-secondary__link " href="http://dating.telegraph.co.uk/s/?utm_source=tmg&amp;utm_medium=nav_A-Z&amp;utm_campaign=none" data-tmg-dtm-nav="7-nav:http://dating.telegraph.co.uk/s/?utm_source=tmg&amp;utm_medium=nav_A-Z&amp;utm_campaign=none">
+Dating
+</a> </li>
+ <li class="overlay-nav-secondary__item "> <a class="overlay-nav-secondary__link " href="http://www.telegraph.co.uk/promotions/" data-tmg-dtm-nav="8-nav:http://www.telegraph.co.uk/promotions/">
+Offers
+</a> </li>
+ <li class="overlay-nav-secondary__item "> <a class="overlay-nav-secondary__link " href="http://shop.telegraph.co.uk/?utm_source=tmg&amp;utm_medium=nav_A-Z&amp;utm_campaign=none" data-tmg-dtm-nav="9-nav:http://shop.telegraph.co.uk/?utm_source=tmg&amp;utm_medium=nav_A-Z&amp;utm_campaign=none">
+Shop
+</a> </li>
+ <li class="overlay-nav-secondary__item "> <a class="overlay-nav-secondary__link " href="https://gardenshop.telegraph.co.uk/" data-tmg-dtm-nav="10-nav:https://gardenshop.telegraph.co.uk/">
+Garden Shop
+</a> </li>
+ <li class="overlay-nav-secondary__item "> <a class="overlay-nav-secondary__link " href="http://books.telegraph.co.uk/" data-tmg-dtm-nav="11-nav:http://books.telegraph.co.uk/">
+Bookshop
+</a> </li>
+ <li class="overlay-nav-secondary__item "> <a class="overlay-nav-secondary__link " href="http://tickets.telegraph.co.uk/" data-tmg-dtm-nav="12-nav:http://tickets.telegraph.co.uk/">
+Box Office
+</a> </li>
+ <li class="overlay-nav-secondary__item "> <a class="overlay-nav-secondary__link " href="http://puzzles.telegraph.co.uk/site/index.php" data-tmg-dtm-nav="13-nav:http://puzzles.telegraph.co.uk/site/index.php">
+Puzzles
+</a> </li>
+ <li class="overlay-nav-secondary__item "> <a class="overlay-nav-secondary__link " href="https://fantasyfootball.telegraph.co.uk/" data-tmg-dtm-nav="14-nav:https://fantasyfootball.telegraph.co.uk/">
+Fantasy Football
+</a> </li>
+ <li class="overlay-nav-secondary__item "> <a class="overlay-nav-secondary__link " href="http://wine.telegraph.co.uk/" data-tmg-dtm-nav="15-nav:http://wine.telegraph.co.uk/">
+Wine Shop
+</a> </li>
+ <li class="overlay-nav-secondary__item "> <a class="overlay-nav-secondary__link " href="/about-us/work-at-the-telegraph/" data-tmg-dtm-nav="16-nav:/about-us/work-at-the-telegraph.html">
+Work at The Telegraph
+</a> </li>
+ <li class="overlay-nav-secondary__item "> <a class="overlay-nav-secondary__link " href="https://corporate.telegraph.co.uk/" data-tmg-dtm-nav="17-nav:https://corporate.telegraph.co.uk/">
+Telegraph Corporate
+</a> </li>
+ </ul>
+ </nav>
+ </div>
+ </div>
+ </div>
+ </div>
+ </section>
+ <div class="main-content">
+ <div class="container-fluid">
+ <section class="snippet-header container">
+ <div class="header-top-wrapper">
+ <div class="header-nav-global premium-mode component" data-tmg-dtm-nav-area="globalnav">
+ <div class="component-content header-nav-global__logged-not-subscriber">
+ <nav class="header-nav-global__holder">
+ <ul class="header-nav-global__list header-nav-global__sections">
+ <li class="header-nav-global__item global-nav-search-btn"> <a class="header-nav-global__link" title="Search" href="http://www.telegraph.co.uk/search.html" data-tmg-dtadm-nav="1-nav:http://www.telegraph.co.uk/search.html">
+<svg class="global-nav-icon global-search-icon" xmlns="http://www.w3.org/2000/svg" width="32px" height="32px" viewBox="0 0 1792 1792">
+<path d="M1516.6,1741.9l-301-602c175.2-108.6,291.9-302.6,291.9-523.9c0-340.2-275.8-616-616-616c-340.2,0-616,275.8-616,616
+ s275.8,616,616,616c79,0,154.5-14.9,224-42l301,602L1516.6,1741.9z M387.4,616c0-277.9,226.1-504,504-504s504,226.1,504,504
+ s-226.1,504-504,504S387.4,893.9,387.4,616z"></path>
+</svg>
+<div class="header-nav-global__link__text">Search</div>
+</a> </li>
+ <li class="header-nav-global__item global-nav-video-btn">
+ <a class="header-nav-global__link" title="Video" href="/video/" data-tmg-dtadm-nav="2-nav:/video.html">
+ <div class="header-nav-global__link__text">Video</div>
+ </a>
+ </li>
+ <li class="header-nav-global__item global-nav-rewards-btn">
+ <a class="header-nav-global__link" title="Rewards" href="/rewards/" data-tmg-dtadm-nav="3-nav:/rewards.html">
+ <div class="header-nav-global__link__text">Rewards</div>
+ </a>
+ </li>
+ </ul>
+ <ul class="header-nav-global__list header-nav-global__engagement">
+ <li class="header-nav-global__item premium-btn "> <a class="header-nav-global__link " title="Upgrade to Premium" href="http://www.telegraph.co.uk/subscriptions/sub-bar/?WT.mc_id=tmg_headernav&amp;redirectTo=" data-tmg-dtm-nav="4-nav:http://www.telegraph.co.uk/subscriptions/sub-bar/?WT.mc_id=tmg_headernav&amp;redirectTo=">
+<svg class="global-nav-icon solid-diamond-icon" xmlns="http://www.w3.org/2000/svg" width="32px" height="32px" viewBox="0 0 1792 1792">
+<rect x="262.4" y="262.4" transform="matrix(0.7071 0.7071 -0.7071 0.7071 896 -371.1353)" width="1267.1" height="1267.1"></rect>
+</svg>
+<div class="header-nav-global__link__text">Upgrade to Premium</div>
+<!--My account btn-->
+<!--Premium btn-->
+<svg class="global-nav-icon nav-close-icon" xmlns="http://www.w3.org/2000/svg" width="1792px" height="1792px" viewBox="0 0 1792 1792">
+<g>
+<polygon points="1792,1712.8 975.2,896 1792,79.2 1712.8,0 896,816.8 79.2,0 0,79.2 816.8,896 0,1712.8 79.2,1792 896,975.2
+ 1712.8,1792"></polygon>
+</g>
+</svg>
+</a> </li>
+ <li class="header-nav-global__item my-account-btn js-has-dropdown "> <a class="header-nav-global__link " title="My Account" href="https://secure.telegraph.co.uk/secure/account/" data-tmg-dtm-nav="5-nav:https://secure.telegraph.co.uk/secure/account/">
+<svg class="global-nav-icon user-account-icon" xmlns="http://www.w3.org/2000/svg" width="32px" height="32px" viewBox="0 0 1792 1792">
+<g>
+<path d="M895.9,1792c-120.5,0-721.9-9.6-721.9-200.1V1498c0-105.4,59.9-202.4,156.2-252.8l270-141.1c17.1-8.9,27.7-25.8,27.7-44.2
+ v-87C605.1,943.2,552.6,867.5,525,769c-30.9-26.8-48.4-64.6-48.4-105V547.9c0-30.8,10.6-60.8,30.2-85.5V317.6
+ c-2-17.2-8.7-120.8,70.1-206.8C644.3,37.3,751.6,0,895.9,0c144.5,0,251.9,37.3,319.3,110.9c78.1,85.4,72,189.4,69.9,209.4
+ l0.1,142.1c19.6,24.7,30.3,54.7,30.3,85.5V664c0,51.6-29.4,99-75.7,123.6c-22.4,59.6-52.4,115-89.3,165
+ c-5.7,7.7-11.3,14.9-16.7,21.5v88.5c0,19,11.3,36.4,29.5,45.2l289,138.4c102.2,49,165.7,147.6,165.7,257.5v88.2
+ C1618,1782.4,1016.5,1792,895.9,1792z M895.9,110.3c-110.9,0-190,24.9-235.1,74.1c-44.9,49-43.2,110.6-41.6,128.3l0.2,195.7
+ l-18.7,16.5c-7.6,6.5-11.4,14.4-11.4,23.1v116.1c0,10.5,5.9,20.4,15.6,26.4l19.3,11.9l5.4,21.7c24.6,103,85.5,179.8,97.4,194.1
+ l13.5,15.4V1060c0,59-33.5,113.2-87.3,141.4l-269.9,141.2c-59.6,31.2-96.7,90.7-96.7,155.5v93.9c18.3,22,222.1,89.9,609.2,89.9
+ c379,0,582.3-65,609.4-94.3v-83.8c0-67.6-39.3-128.4-102.5-158.6l-289.1-138.5c-57.1-27.4-92.5-82.6-92.5-144V932.9l14.4-15.7
+ c7.1-7.7,15.3-17.8,23.6-29.1c34.9-47.3,62.5-100.6,82-158.4l9.2-27.3l28-8.2c14.5-4.2,24.3-16.3,24.3-30V547.9
+ c0-8.5-4-16.7-11.1-22.8l-19.1-16.8l0.3-196.1c0.3-4.2,8-74.2-42.1-128.5C1085.6,135,1006.7,110.3,895.9,110.3z"></path>
+</g>
+</svg>
+<div class="header-nav-global__link__text">My Account</div>
+<!--My account btn-->
+<svg class="global-nav-icon nav-direction-down-icon" xmlns="http://www.w3.org/2000/svg" width="32px" height="32px" viewBox="0 0 1792 1792">
+<g>
+<polygon points="896,896 56,448 0,504 896,1400 1792,504 1736,448"></polygon>
+</g>
+</svg>
+<svg class="global-nav-icon nav-close-icon" xmlns="http://www.w3.org/2000/svg" width="1792px" height="1792px" viewBox="0 0 1792 1792">
+<g>
+<polygon points="1792,1712.8 975.2,896 1792,79.2 1712.8,0 896,816.8 79.2,0 0,79.2 816.8,896 0,1712.8 79.2,1792 896,975.2
+ 1712.8,1792"></polygon>
+</g>
+</svg>
+<!--Premium btn-->
+</a>
+ <div class="header-nav-global__drop-down-menu">
+ <div class="header-nav-global__drop-down-menu__item "> <a class="header-nav-global__drop-down-menu__link" title="My details" href="https://secure.telegraph.co.uk/secure/personal/" data-tmg-dtm-nav="1-nav:https://secure.telegraph.co.uk/secure/personal/">
+<svg class="global-nav-icon" xmlns="http://www.w3.org/2000/svg" width="32px" height="32px" viewBox="0 0 1792 1792">
+<g>
+<g>
+<path d="M840,1344V784h112v560H840z M784,560l112-112l112,112L896,672L784,560z"></path>
+</g>
+<path d="M896,112c209.4,0,406.3,81.6,554.4,229.6C1598.4,489.7,1680,686.6,1680,896s-81.6,406.3-229.6,554.4
+ c-148.1,148.1-345,229.6-554.4,229.6s-406.3-81.5-554.4-229.6C193.6,1302.3,112,1105.4,112,896s81.6-406.3,229.6-554.4
+ C489.7,193.6,686.6,112,896,112 M896,0C401.2,0,0,401.2,0,896s401.2,896,896,896s896-401.2,896-896S1390.8,0,896,0L896,0z"></path>
+</g>
+</svg>
+<div class="header-nav-global__drop-down-menu__link__text">My details</div>
+</a> </div>
+ <div class="header-nav-global__drop-down-menu__item "> <a class="header-nav-global__drop-down-menu__link" title="My newsletters" href="https://secure.telegraph.co.uk/secure/newsletters/" data-tmg-dtm-nav="2-nav:https://secure.telegraph.co.uk/secure/newsletters/">
+<svg class="global-nav-icon" xmlns="http://www.w3.org/2000/svg" width="32px" height="32px" viewBox="0 0 1792 1792">
+<g>
+<g>
+<path d="M1456,1792H336l-112-112V168L392,0h1176v1680L1456,1792z M336,1680h1120V112H448L336,224V1680z"></path>
+</g>
+<g>
+<g>
+<rect x="448" y="336" width="896" height="112"></rect>
+</g>
+<g>
+<rect x="448" y="560" width="896" height="112"></rect>
+</g>
+<g>
+<rect x="448" y="784" width="448" height="112"></rect>
+</g>
+</g>
+</g>
+</svg>
+<div class="header-nav-global__drop-down-menu__link__text">My newsletters</div>
+</a> </div>
+ <div class="header-nav-global__drop-down-menu__item "> <a class="header-nav-global__drop-down-menu__link" title="Logout" href="https://secure.telegraph.co.uk/secure/logout?redirectTo=http%3A%2F%2Fwww.telegraph.co.uk%2F" data-tmg-dtm-nav="3-nav:https://secure.telegraph.co.uk/secure/logout?redirectTo=http%3A%2F%2Fwww.telegraph.co.uk%2F">
+<svg class="global-nav-icon" xmlns="http://www.w3.org/2000/svg" width="32px" height="32px" viewBox="0 0 1792 1792">
+<g>
+<path d="M1792,1680l-96,112H448c0-56,0-57.3,0-113l1236,1V145.5V112H451V0h1228l113,110V1680z M505,390l55,56L336,838h897l0,111
+ H336l224,393l-55,57L0,894L505,390z"></path>
+</g>
+</svg>
+<div class="header-nav-global__drop-down-menu__link__text">Logout</div>
+</a> </div>
+ <div class="header-nav-global__drop-down-menu__item premium-dropdown-btn"> <a class="header-nav-global__drop-down-menu__link" title="Upgrade to Premium" href="http://www.telegraph.co.uk/subscriptions/sub-bar/?WT.mc_id=tmg_headernav&amp;redirectTo=http%3A%2F%2Fwww.telegraph.co.uk%2F" data-tmg-dtm-nav="4-nav:http://www.telegraph.co.uk/subscriptions/sub-bar/?WT.mc_id=tmg_headernav&amp;redirectTo=http%3A%2F%2Fwww.telegraph.co.uk%2F">
+<svg class="global-nav-icon solid-diamond-icon" xmlns="http://www.w3.org/2000/svg" width="32px" height="32px" viewBox="0 0 1792 1792">
+<rect x="262.4" y="262.4" transform="matrix(0.7071 0.7071 -0.7071 0.7071 896 -371.1353)" width="1267.1" height="1267.1"></rect>
+</svg>
+<div class="header-nav-global__drop-down-menu__link__text">Upgrade to Premium</div>
+</a> </div>
+ </div>
+ </li>
+ </ul>
+ </nav>
+ </div>
+ <div class="component-content header-nav-global__not-logged">
+ <nav class="header-nav-global__holder">
+ <ul class="header-nav-global__list header-nav-global__sections">
+ <li class="header-nav-global__item global-nav-search-btn"> <a class="header-nav-global__link" title="Search" href="http://www.telegraph.co.uk/search.html" data-tmg-dtadm-nav="1-nav:http://www.telegraph.co.uk/search.html">
+<svg class="global-nav-icon global-search-icon" xmlns="http://www.w3.org/2000/svg" width="32px" height="32px" viewBox="0 0 1792 1792">
+<path d="M1516.6,1741.9l-301-602c175.2-108.6,291.9-302.6,291.9-523.9c0-340.2-275.8-616-616-616c-340.2,0-616,275.8-616,616
+ s275.8,616,616,616c79,0,154.5-14.9,224-42l301,602L1516.6,1741.9z M387.4,616c0-277.9,226.1-504,504-504s504,226.1,504,504
+ s-226.1,504-504,504S387.4,893.9,387.4,616z"></path>
+</svg>
+<div class="header-nav-global__link__text">Search</div>
+</a> </li>
+ <li class="header-nav-global__item global-nav-video-btn">
+ <a class="header-nav-global__link" title="Video" href="/video/" data-tmg-dtadm-nav="2-nav:/video.html">
+ <div class="header-nav-global__link__text">Video</div>
+ </a>
+ </li>
+ <li class="header-nav-global__item global-nav-rewards-btn">
+ <a class="header-nav-global__link" title="Rewards" href="/rewards/" data-tmg-dtadm-nav="3-nav:/rewards.html">
+ <div class="header-nav-global__link__text">Rewards</div>
+ </a>
+ </li>
+ </ul>
+ <ul class="header-nav-global__list header-nav-global__engagement">
+ <li class="header-nav-global__item premium-btn "> <a class="header-nav-global__link " title="Subscribe - 30 days free" href="http://www.telegraph.co.uk/subscriptions/sub-bar/?WT.mc_id=tmg_headernav&amp;redirectTo=" data-tmg-dtm-nav="4-nav:http://www.telegraph.co.uk/subscriptions/sub-bar/?WT.mc_id=tmg_headernav&amp;redirectTo=">
+<svg class="global-nav-icon solid-diamond-icon" xmlns="http://www.w3.org/2000/svg" width="32px" height="32px" viewBox="0 0 1792 1792">
+<rect x="262.4" y="262.4" transform="matrix(0.7071 0.7071 -0.7071 0.7071 896 -371.1353)" width="1267.1" height="1267.1"></rect>
+</svg>
+<div class="header-nav-global__link__text">Subscribe - 30 days free</div>
+<!--My account btn-->
+<!--Premium btn-->
+<svg class="global-nav-icon nav-close-icon" xmlns="http://www.w3.org/2000/svg" width="1792px" height="1792px" viewBox="0 0 1792 1792">
+<g>
+<polygon points="1792,1712.8 975.2,896 1792,79.2 1712.8,0 896,816.8 79.2,0 0,79.2 816.8,896 0,1712.8 79.2,1792 896,975.2
+ 1712.8,1792"></polygon>
+</g>
+</svg>
+</a> </li>
+ <li class="header-nav-global__item "> <a class="header-nav-global__link header-nav-global__link--border-right" title="Login" href="https://secure.telegraph.co.uk/secure/login?redirectTo=" data-tmg-dtm-nav="5-nav:https://secure.telegraph.co.uk/secure/login?redirectTo=">
+<svg class="global-nav-icon user-signin-icon" xmlns="http://www.w3.org/2000/svg" width="32px" height="32px" viewBox="0 0 1792 1792">
+<g>
+<path d="M1797,1680l-96,112H453c0-56,0-57.3,0-113l1236,1V145.5V112H456V0h1228l113,110V1680z M1238,894l-505,505l-55-57l224-393H5
+ l0-111h897L678,446l55-56L1238,894z"></path>
+</g>
+</svg>
+<div class="header-nav-global__link__text">Login</div>
+<!--My account btn-->
+<!--Premium btn-->
+</a> </li>
+ <li class="header-nav-global__item "> <a class="header-nav-global__link " title="Register" href="https://secure.telegraph.co.uk/secure/registration/?WT.mc_id=tmg_headernav&amp;redirectTo=" data-tmg-dtm-nav="6-nav:https://secure.telegraph.co.uk/secure/registration/?WT.mc_id=tmg_headernav&amp;redirectTo=">
+<svg class="global-nav-icon user-account-icon" xmlns="http://www.w3.org/2000/svg" width="32px" height="32px" viewBox="0 0 1792 1792">
+<g>
+<path d="M895.9,1792c-120.5,0-721.9-9.6-721.9-200.1V1498c0-105.4,59.9-202.4,156.2-252.8l270-141.1c17.1-8.9,27.7-25.8,27.7-44.2
+ v-87C605.1,943.2,552.6,867.5,525,769c-30.9-26.8-48.4-64.6-48.4-105V547.9c0-30.8,10.6-60.8,30.2-85.5V317.6
+ c-2-17.2-8.7-120.8,70.1-206.8C644.3,37.3,751.6,0,895.9,0c144.5,0,251.9,37.3,319.3,110.9c78.1,85.4,72,189.4,69.9,209.4
+ l0.1,142.1c19.6,24.7,30.3,54.7,30.3,85.5V664c0,51.6-29.4,99-75.7,123.6c-22.4,59.6-52.4,115-89.3,165
+ c-5.7,7.7-11.3,14.9-16.7,21.5v88.5c0,19,11.3,36.4,29.5,45.2l289,138.4c102.2,49,165.7,147.6,165.7,257.5v88.2
+ C1618,1782.4,1016.5,1792,895.9,1792z M895.9,110.3c-110.9,0-190,24.9-235.1,74.1c-44.9,49-43.2,110.6-41.6,128.3l0.2,195.7
+ l-18.7,16.5c-7.6,6.5-11.4,14.4-11.4,23.1v116.1c0,10.5,5.9,20.4,15.6,26.4l19.3,11.9l5.4,21.7c24.6,103,85.5,179.8,97.4,194.1
+ l13.5,15.4V1060c0,59-33.5,113.2-87.3,141.4l-269.9,141.2c-59.6,31.2-96.7,90.7-96.7,155.5v93.9c18.3,22,222.1,89.9,609.2,89.9
+ c379,0,582.3-65,609.4-94.3v-83.8c0-67.6-39.3-128.4-102.5-158.6l-289.1-138.5c-57.1-27.4-92.5-82.6-92.5-144V932.9l14.4-15.7
+ c7.1-7.7,15.3-17.8,23.6-29.1c34.9-47.3,62.5-100.6,82-158.4l9.2-27.3l28-8.2c14.5-4.2,24.3-16.3,24.3-30V547.9
+ c0-8.5-4-16.7-11.1-22.8l-19.1-16.8l0.3-196.1c0.3-4.2,8-74.2-42.1-128.5C1085.6,135,1006.7,110.3,895.9,110.3z"></path>
+</g>
+</svg>
+<div class="header-nav-global__link__text">Register</div>
+<!--My account btn-->
+<!--Premium btn-->
+</a> </li>
+ </ul>
+ </nav>
+ </div>
+ <div class="component-content header-nav-global__logged-and-subscriber">
+ <nav class="header-nav-global__holder">
+ <ul class="header-nav-global__list header-nav-global__sections">
+ <li class="header-nav-global__item global-nav-search-btn"> <a class="header-nav-global__link" title="Search" href="http://www.telegraph.co.uk/search.html" data-tmg-dtadm-nav="1-nav:http://www.telegraph.co.uk/search.html">
+<svg class="global-nav-icon global-search-icon" xmlns="http://www.w3.org/2000/svg" width="32px" height="32px" viewBox="0 0 1792 1792">
+<path d="M1516.6,1741.9l-301-602c175.2-108.6,291.9-302.6,291.9-523.9c0-340.2-275.8-616-616-616c-340.2,0-616,275.8-616,616
+ s275.8,616,616,616c79,0,154.5-14.9,224-42l301,602L1516.6,1741.9z M387.4,616c0-277.9,226.1-504,504-504s504,226.1,504,504
+ s-226.1,504-504,504S387.4,893.9,387.4,616z"></path>
+</svg>
+<div class="header-nav-global__link__text">Search</div>
+</a> </li>
+ <li class="header-nav-global__item global-nav-video-btn">
+ <a class="header-nav-global__link" title="Video" href="/video/" data-tmg-dtadm-nav="2-nav:/video.html">
+ <div class="header-nav-global__link__text">Video</div>
+ </a>
+ </li>
+ <li class="header-nav-global__item global-nav-rewards-btn">
+ <a class="header-nav-global__link" title="Rewards" href="/rewards/" data-tmg-dtadm-nav="3-nav:/rewards.html">
+ <div class="header-nav-global__link__text">Rewards</div>
+ </a>
+ </li>
+ </ul>
+ <ul class="header-nav-global__list header-nav-global__engagement">
+ <li class="header-nav-global__item my-account-btn js-has-dropdown "> <a class="header-nav-global__link " title="My Account" href="https://secure.telegraph.co.uk/secure/account/" data-tmg-dtm-nav="4-nav:https://secure.telegraph.co.uk/secure/account/">
+<svg class="global-nav-icon user-account-icon" xmlns="http://www.w3.org/2000/svg" width="32px" height="32px" viewBox="0 0 1792 1792">
+<g>
+<path d="M895.9,1792c-120.5,0-721.9-9.6-721.9-200.1V1498c0-105.4,59.9-202.4,156.2-252.8l270-141.1c17.1-8.9,27.7-25.8,27.7-44.2
+ v-87C605.1,943.2,552.6,867.5,525,769c-30.9-26.8-48.4-64.6-48.4-105V547.9c0-30.8,10.6-60.8,30.2-85.5V317.6
+ c-2-17.2-8.7-120.8,70.1-206.8C644.3,37.3,751.6,0,895.9,0c144.5,0,251.9,37.3,319.3,110.9c78.1,85.4,72,189.4,69.9,209.4
+ l0.1,142.1c19.6,24.7,30.3,54.7,30.3,85.5V664c0,51.6-29.4,99-75.7,123.6c-22.4,59.6-52.4,115-89.3,165
+ c-5.7,7.7-11.3,14.9-16.7,21.5v88.5c0,19,11.3,36.4,29.5,45.2l289,138.4c102.2,49,165.7,147.6,165.7,257.5v88.2
+ C1618,1782.4,1016.5,1792,895.9,1792z M895.9,110.3c-110.9,0-190,24.9-235.1,74.1c-44.9,49-43.2,110.6-41.6,128.3l0.2,195.7
+ l-18.7,16.5c-7.6,6.5-11.4,14.4-11.4,23.1v116.1c0,10.5,5.9,20.4,15.6,26.4l19.3,11.9l5.4,21.7c24.6,103,85.5,179.8,97.4,194.1
+ l13.5,15.4V1060c0,59-33.5,113.2-87.3,141.4l-269.9,141.2c-59.6,31.2-96.7,90.7-96.7,155.5v93.9c18.3,22,222.1,89.9,609.2,89.9
+ c379,0,582.3-65,609.4-94.3v-83.8c0-67.6-39.3-128.4-102.5-158.6l-289.1-138.5c-57.1-27.4-92.5-82.6-92.5-144V932.9l14.4-15.7
+ c7.1-7.7,15.3-17.8,23.6-29.1c34.9-47.3,62.5-100.6,82-158.4l9.2-27.3l28-8.2c14.5-4.2,24.3-16.3,24.3-30V547.9
+ c0-8.5-4-16.7-11.1-22.8l-19.1-16.8l0.3-196.1c0.3-4.2,8-74.2-42.1-128.5C1085.6,135,1006.7,110.3,895.9,110.3z"></path>
+</g>
+</svg>
+<div class="header-nav-global__link__text">My Account</div>
+<!--My account btn-->
+<svg class="global-nav-icon nav-direction-down-icon" xmlns="http://www.w3.org/2000/svg" width="32px" height="32px" viewBox="0 0 1792 1792">
+<g>
+<polygon points="896,896 56,448 0,504 896,1400 1792,504 1736,448"></polygon>
+</g>
+</svg>
+<svg class="global-nav-icon nav-close-icon" xmlns="http://www.w3.org/2000/svg" width="1792px" height="1792px" viewBox="0 0 1792 1792">
+<g>
+<polygon points="1792,1712.8 975.2,896 1792,79.2 1712.8,0 896,816.8 79.2,0 0,79.2 816.8,896 0,1712.8 79.2,1792 896,975.2
+ 1712.8,1792"></polygon>
+</g>
+</svg>
+<!--Premium btn-->
+</a>
+ <div class="header-nav-global__drop-down-menu">
+ <div class="header-nav-global__drop-down-menu__item "> <a class="header-nav-global__drop-down-menu__link" title="My details" href="https://secure.telegraph.co.uk/secure/personal/" data-tmg-dtm-nav="1-nav:https://secure.telegraph.co.uk/secure/personal/">
+<svg class="global-nav-icon" xmlns="http://www.w3.org/2000/svg" width="32px" height="32px" viewBox="0 0 1792 1792">
+<g>
+<g>
+<path d="M840,1344V784h112v560H840z M784,560l112-112l112,112L896,672L784,560z"></path>
+</g>
+<path d="M896,112c209.4,0,406.3,81.6,554.4,229.6C1598.4,489.7,1680,686.6,1680,896s-81.6,406.3-229.6,554.4
+ c-148.1,148.1-345,229.6-554.4,229.6s-406.3-81.5-554.4-229.6C193.6,1302.3,112,1105.4,112,896s81.6-406.3,229.6-554.4
+ C489.7,193.6,686.6,112,896,112 M896,0C401.2,0,0,401.2,0,896s401.2,896,896,896s896-401.2,896-896S1390.8,0,896,0L896,0z"></path>
+</g>
+</svg>
+<div class="header-nav-global__drop-down-menu__link__text">My details</div>
+</a> </div>
+ <div class="header-nav-global__drop-down-menu__item "> <a class="header-nav-global__drop-down-menu__link" title="My newsletters" href="https://secure.telegraph.co.uk/secure/newsletters/" data-tmg-dtm-nav="2-nav:https://secure.telegraph.co.uk/secure/newsletters/">
+<svg class="global-nav-icon" xmlns="http://www.w3.org/2000/svg" width="32px" height="32px" viewBox="0 0 1792 1792">
+<g>
+<g>
+<path d="M1456,1792H336l-112-112V168L392,0h1176v1680L1456,1792z M336,1680h1120V112H448L336,224V1680z"></path>
+</g>
+<g>
+<g>
+<rect x="448" y="336" width="896" height="112"></rect>
+</g>
+<g>
+<rect x="448" y="560" width="896" height="112"></rect>
+</g>
+<g>
+<rect x="448" y="784" width="448" height="112"></rect>
+</g>
+</g>
+</g>
+</svg>
+<div class="header-nav-global__drop-down-menu__link__text">My newsletters</div>
+</a> </div>
+ <div class="header-nav-global__drop-down-menu__item "> <a class="header-nav-global__drop-down-menu__link" title="Logout" href="https://secure.telegraph.co.uk/secure/logout?redirectTo=http%3A%2F%2Fwww.telegraph.co.uk%2F" data-tmg-dtm-nav="3-nav:https://secure.telegraph.co.uk/secure/logout?redirectTo=http%3A%2F%2Fwww.telegraph.co.uk%2F">
+<svg class="global-nav-icon" xmlns="http://www.w3.org/2000/svg" width="32px" height="32px" viewBox="0 0 1792 1792">
+<g>
+<path d="M1792,1680l-96,112H448c0-56,0-57.3,0-113l1236,1V145.5V112H451V0h1228l113,110V1680z M505,390l55,56L336,838h897l0,111
+ H336l224,393l-55,57L0,894L505,390z"></path>
+</g>
+</svg>
+<div class="header-nav-global__drop-down-menu__link__text">Logout</div>
+</a> </div>
+ </div>
+ </li>
+ </ul>
+ </nav>
+ </div>
+ </div>
+ <div class="header-logobar header-logobar--small component">
+ <div class="component-content"> <a class="header-logobar__link" href="http://www.telegraph.co.uk/">
+<img class="responsive-image header-logobar__img" width="320" height="55" alt="The Telegraph" data-frz-ratio="5.77" src="/content/dam/best/telegraph_OUTLINE-small.png" data-frz-src-array="[{'src':'/content/dam/best/telegraph_OUTLINE-thumbnail.png','width':140,'height':24,'percentageImageRatio':'17.14'},{'src':'/content/dam/best/telegraph_OUTLINE-xlarge.png','width':1280,'height':221,'percentageImageRatio':'17.27'},{'src':'/content/dam/best/telegraph_OUTLINE-xxlarge.png','width':1500,'height':260,'percentageImageRatio':'17.33'},{'src':'/content/dam/best/telegraph_OUTLINE-xsmall.png','width':160,'height':27,'percentageImageRatio':'16.88'},{'src':'/content/dam/best/telegraph_OUTLINE-small.png','width':320,'height':55,'percentageImageRatio':'17.19'},{'src':'/content/dam/best/telegraph_OUTLINE-large.png','width':720,'height':124,'percentageImageRatio':'17.22'},{'src':'/content/dam/best/telegraph_OUTLINE-medium.png','width':480,'height':83,'percentageImageRatio':'17.29'}]" />
+</a> </div>
+ </div>
+ <div class="header-nav-primary header-nav-primary--short component" data-tmg-dtm-nav-area="primarynav">
+ <div class="component-content">
+ <nav>
+ <ul class="header-nav-primary__list">
+ <li class="header-nav-primary__item "> <a class="header-nav-primary__link " href="http://www.telegraph.co.uk/" data-tmg-dtm-nav="1-nav:http://www.telegraph.co.uk/">
+Home
+</a> </li>
+ <li class="header-nav-primary__item "> <a class="header-nav-primary__link " href="/news/" data-tmg-dtm-nav="2-nav:/news.html">
+News
+</a> </li>
+ <li class="header-nav-primary__item "> <a class="header-nav-primary__link " href="/sport/" data-tmg-dtm-nav="3-nav:/sport.html">
+Sport
+</a> </li>
+ <li class="header-nav-primary__item "> <a class="header-nav-primary__link " href="/business/" data-tmg-dtm-nav="4-nav:/business.html">
+Business
+</a> </li>
+ </ul>
+ </nav>
+ </div>
+ </div>
+ <!-- NAV OVERLAY BUTTON-->
+ <div class="header-nav-overlay-button component">
+ <div class="component-content"> <button class="header-nav-overlay-button__button">
+<span class="header-nav-overlay-button__label">ALL SECTIONS</span>
+</button> </div>
+ </div>
+ <script>
+ RUM.mark('content_load_navigation');
+ </script>
+ </div>
+ <div class="header-headline-wrapper">
+ <div class="header-breadcrumbs component">
+ <div class="component-content">
+ <ul class="header-breadcrumbs__list">
+ <li class="header-breadcrumbs__item"><a href="/news/" class="header-breadcrumbs__link">News</a></li>
+ </ul>
+ </div>
+ </div>
+ <div class="sponsor-slot sponsor-slot__header">
+ <div class="sponsor-slot__logo-space"> <span class="sponsor-slot__text"></span> <span class="sponsor-slot__logo"></span> </div>
+ <div class="sponsor-slot__message"></div>
+ </div>
+ </div>
+ <div class="header-nav-local component" data-tmg-dtm-nav-area="localnav">
+ <div class="component-content">
+ <nav>
+ <ul class="header-nav-local__list">
+ <li class="header-nav-local__item "> <a class="header-nav-local__link " title="UK" href="/news/uk/" data-tmg-dtm-nav="1-nav:/news/uk.html">
+UK
+</a> </li>
+ <li class="header-nav-local__item "> <a class="header-nav-local__link " title="World" href="/news/world/" data-tmg-dtm-nav="2-nav:/news/world.html">
+World
+</a> </li>
+ <li class="header-nav-local__item "> <a class="header-nav-local__link " title="Politics" href="/news/politics/" data-tmg-dtm-nav="3-nav:/news/politics.html">
+Politics
+</a> </li>
+ <li class="header-nav-local__item "> <a class="header-nav-local__link " title="Budget 2017" href="/budget/" data-tmg-dtm-nav="4-nav:/budget.html">
+Budget 2017
+</a> </li>
+ <li class="header-nav-local__item "> <a class="header-nav-local__link " title="Science" href="/science/" data-tmg-dtm-nav="5-nav:/science.html">
+Science
+</a> </li>
+ <li class="header-nav-local__item "> <a class="header-nav-local__link " href="/education/" data-tmg-dtm-nav="6-nav:/education.html">
+Education
+</a> </li>
+ <li class="header-nav-local__item "> <a class="header-nav-local__link " href="/health/" data-tmg-dtm-nav="7-nav:/health.html">
+Health
+</a> </li>
+ <li class="header-nav-local__item "> <a class="header-nav-local__link " href="/brexit/" data-tmg-dtm-nav="8-nav:/brexit.html">
+Brexit
+</a> </li>
+ <li class="header-nav-local__item "> <a class="header-nav-local__link " href="/the-royal-family/" data-tmg-dtm-nav="9-nav:/the-royal-family.html">
+Royals
+</a> </li>
+ <li class="header-nav-local__item "> <a class="header-nav-local__link " href="/news/investigations/" data-tmg-dtm-nav="10-nav:/news/investigations.html">
+Investigations
+</a> </li>
+ </ul> <button class="header-nav-local__button">
+<span class="header-nav-local__button-text" data-no-expanded-label="More" data-expanded-label="Less">
+More
+</span>
+</button> </nav>
+ </div>
+ </div>
+ </section>
+ <div class="container">
+ <div class="spark-slot1"> </div>
+ </div>
+ </div>
+ <div class="page-article container ">
+ <div class="row article__breadcrumb">
+ <div class="breadcrumb ">
+ <nav class="breadcrumbs component ">
+ <ul class="component-content breadcrumbs__container">
+ <li class="breadcrumbs__item" data-breadcrumbs--active="true"> <a class="breadcrumbs__item-content" href="http://www.telegraph.co.uk/">Telegraph</a> </li>
+ <li class="breadcrumbs__item" data-breadcrumbs--active="true"> <a class="breadcrumbs__item-content" href="/news/">News</a> </li>
+ </ul>
+ <script type="application/ld+json" id="breadcrumb-json-ld-markup">
+ { & #34;@context&# 34;: & #34;https://schema.org&# 34;, & #34;@type&# 34;: & #34;BreadcrumbList&# 34;, & #34;itemListElement&# 34;: [{ & #34;@type&# 34;: & #34;ListItem&# 34;,
+ & #34;position&# 34;: 1,
+ & #34;item&# 34;: { & #34;@id&# 34;: & #34;http://www.telegraph.co.uk/&# 34;,
+ & #34;name&# 34;: & #34;Telegraph&# 34;
+ }
+ }, { & #34;@type&# 34;: & #34;ListItem&# 34;,
+ & #34;position&# 34;: 2,
+ & #34;item&# 34;: { & #34;@id&# 34;: & #34;http://www.telegraph.co.uk/news/&# 34;,
+ & #34;name&# 34;: & #34;News&# 34;
+ }
+ }]
+ }
+ </script>
+ </nav>
+ </div>
+ </div>
+ <main class="row article__body" itemscope="https://schema.org/Article" itemtype="https://schema.org/Article">
+ <div class="article__content js-article">
+ <div class="js-article-inner">
+ <header>
+ <div class="sponsor-slot sponsor-slot__above-headline">
+ <div class="sponsor-slot__logo-space"> <span class="sponsor-slot__text"></span> <span class="sponsor-slot__logo"></span> </div>
+ <div class="sponsor-slot__message"></div>
+ </div>
+ <div class="headline component ">
+ <div class="component-content">
+ <h1 itemprop="headline name" class="headline__heading"> Zimbabwe coup: Robert Mugabe and wife Grace 'insisting he finishes his term', as priest steps in to mediate </h1>
+ <script>
+ RUM.mark('content_load_fmp');
+ </script>
+ </div>
+ </div>
+ <div class="standfirst component ">
+ <div class="component-content"> </div>
+ </div>
+ <div class="sponsor-slot sponsor-slot__below-headline">
+ <div class="sponsor-slot__logo-space"> <span class="sponsor-slot__text"></span> <span class="sponsor-slot__logo"></span> </div>
+ <div class="sponsor-slot__message"></div>
+ </div>
+ <div class="article__socials">
+ <aside class="social-block">
+ <div class="social-block__share">
+ <div class="social-share" data-social-share="{'shareButtons':{'facebook':{'networkEnable':true,'account':''},'twitter':{'networkEnable':true,'account':'telegraphnews'},'pinterest':{'networkEnable':false,'account':''},'whatsapp':{'networkEnable':true,'account':''},'linkedin':{'networkEnable':false,'account':''},'email':{'networkEnable':true,'account':''}},'showCounters':false,'disableAutoClone':false,'disableStickiness':true}">
+ <ul class="social-share__list">
+ <li class="social-share__item social-share__facebook"> <a href="#" target="_blank" class="social-share__button" data-social-share-button="facebook" aria-label="Share on facebook">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 68 32">
+<path d="M15.72,23.67V16.16h2.52l.38-2.93h-2.9V11.36c0-.85.24-1.43,1.45-1.43h1.55V7.32a20.74,20.74,0,0,0-2.26-.12,3.53,3.53,0,0,0-3.77,3.87v2.16H10.17v2.93H12.7v7.51Z"></path><polygon points="62.55 0 62.06 0.48 65.98 1.4 61.83 5.55 62.53 6.25 66.6 2.18 67.51 5.93 68 5.45 67.94 0.05 62.55 0"></polygon><path d="M30.43,14.89h-.16a2,2,0,0,0-1.42-.52c-.66,0-1.08.26-1.08.8s.37.8,1.32,1.1c1.29.41,2,.79,2,1.91s-.76,1.91-2.31,1.91a3.7,3.7,0,0,1-2.27-.74l.38-.73H27a2.73,2.73,0,0,0,1.78.68c.79,0,1.2-.28,1.2-.9s-.35-.82-1.58-1.2-1.72-.91-1.72-1.88c0-1.14,1-1.77,2.17-1.77a2.91,2.91,0,0,1,2,.61Z"></path><path d="M33.48,14.58h.08a3,3,0,0,1,2.21-1c1.25,0,1.8.61,1.8,1.83V20H36.38V15.68c0-.85-.28-1.19-1.1-1.19a2.72,2.72,0,0,0-1.76.78V20H32.33V11l1-.13h.19Z"></path><path d="M39,14.1a5.17,5.17,0,0,1,2.33-.55c1.52,0,2.22.6,2.22,1.82V18.8c0,.38.18.53.42.53a.88.88,0,0,0,.33-.07h.07l.16.61a1.78,1.78,0,0,1-.9.23c-.66,0-1.07-.26-1.14-.91h-.1a2,2,0,0,1-1.78.91c-1.06,0-1.79-.52-1.79-1.63s.56-1.44,1.67-1.78l1.86-.58V15.6c0-.83-.25-1.2-1.25-1.2a3.87,3.87,0,0,0-1.68.43h-.14Zm3.36,4.56V16.84l-1.4.44c-.7.22-1,.53-1,1.09,0,.74.41.92.92.92A2.08,2.08,0,0,0,42.32,18.65Z"></path><path d="M46.67,14.59a1.79,1.79,0,0,1,1.55-1,1.33,1.33,0,0,1,.61.11l-.19,1.09h-.12a1.28,1.28,0,0,0-.55-.11,1.55,1.55,0,0,0-1.29.74V20H45.48V13.74l.85-.12h.2l0,1Z"></path><path d="M52.37,20.09c-1.92,0-3.06-1.26-3.06-3.32s1.27-3.23,2.79-3.23c1.85,0,2.62,1.15,2.62,3.48H50.53c.06,1.33.61,2.22,2,2.22a2.26,2.26,0,0,0,1.66-.6h.14l.36.65A3.39,3.39,0,0,1,52.37,20.09Zm1.22-3.87c0-1.21-.43-1.89-1.45-1.89s-1.52.78-1.61,2l3.06,0Z"></path><path d="M65.74,7.83,65,8.56A15,15,0,0,1,52,31H16A15,15,0,0,1,16,1H52a14.89,14.89,0,0,1,7.63,2.11l.73-.73A15.9,15.9,0,0,0,52,0H16a16,16,0,1,0,0,32H52A16,16,0,0,0,65.74,7.83Z"></path>
+</svg>
+</a> </li>
+ <li class="social-share__item social-share__twitter"> <a href="#" target="_blank" class="social-share__button" data-social-share-button="twitter" aria-label="Share on twitter">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
+<path d="M12.66,23.31A10.44,10.44,0,0,0,23.17,12.81c0-.16,0-.32,0-.48A7.51,7.51,0,0,0,25,10.42a7.37,7.37,0,0,1-2.12.58A3.71,3.71,0,0,0,24.5,9a7.4,7.4,0,0,1-2.34.9,3.7,3.7,0,0,0-6.29,3.37A10.48,10.48,0,0,1,8.25,9.36,3.7,3.7,0,0,0,9.4,14.29a3.67,3.67,0,0,1-1.67-.46s0,0,0,0a3.69,3.69,0,0,0,3,3.62A3.69,3.69,0,0,1,9,17.56a3.7,3.7,0,0,0,3.45,2.56,7.41,7.41,0,0,1-4.59,1.58A7.52,7.52,0,0,1,7,21.66a10.46,10.46,0,0,0,5.66,1.66"></path><path d="M29.73,7.82,29,8.55a15.07,15.07,0,1,1-5.37-5.45l.73-.73a16,16,0,1,0,5.37,5.45Z"></path><polygon class="cls-1" points="26.55 0 26.06 0.48 29.98 1.4 25.83 5.55 26.53 6.25 30.6 2.18 31.51 5.93 32 5.45 31.94 0.05 26.55 0"></polygon>
+</svg>
+</a> </li>
+ <li class="social-share__item social-share__whatsapp"> <a href="#" target="_blank" class="social-share__button" data-social-share-button="whatsapp" aria-label="Share on whatsapp">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
+<path d="M29.73,7.82,29,8.55a15.07,15.07,0,1,1-5.37-5.45l.73-.73a16,16,0,1,0,5.37,5.45Z"></path><polygon points="26.55 0 26.06 0.48 29.98 1.4 25.83 5.55 26.53 6.25 30.6 2.18 31.51 5.93 32 5.45 31.94 0.05 26.55 0"></polygon><path d="M22.62,9.34A9.31,9.31,0,0,0,8,20.57L6.66,25.39l4.93-1.29A9.3,9.3,0,0,0,16,25.23h0A9.31,9.31,0,0,0,22.62,9.34ZM16,23.66h0a7.72,7.72,0,0,1-3.94-1.08l-.28-.17-2.93.77.78-2.85L9.49,20A7.73,7.73,0,1,1,16,23.66Zm4.24-5.79c-.23-.12-1.38-.68-1.59-.76s-.37-.12-.52.12-.6.76-.74.91-.27.17-.5.06A6.35,6.35,0,0,1,15.06,17a7,7,0,0,1-1.29-1.61c-.14-.23,0-.36.1-.47s.23-.27.35-.41a1.59,1.59,0,0,0,.23-.39.43.43,0,0,0,0-.41c-.06-.12-.52-1.26-.72-1.73s-.38-.39-.52-.4h-.45a.85.85,0,0,0-.62.29,2.61,2.61,0,0,0-.81,1.94,4.52,4.52,0,0,0,.95,2.4,10.36,10.36,0,0,0,4,3.51,13.35,13.35,0,0,0,1.33.49,3.19,3.19,0,0,0,1.46.09,2.39,2.39,0,0,0,1.57-1.11,1.94,1.94,0,0,0,.14-1.11C20.67,18,20.51,18,20.28,17.86Z"></path>
+</svg>
+</a> </li>
+ <li class="social-share__item social-share__email"> <a href="#" target="_blank" class="social-share__button" data-social-share-button="email" aria-label="Share on email">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
+<path d="M29.73,7.82,29,8.56a15.07,15.07,0,1,1-5.37-5.45l.73-.73a16,16,0,1,0,5.37,5.45Z"></path><polygon class="cls-1" points="26.55 0 26.06 0.49 29.98 1.4 25.83 5.55 26.53 6.25 30.6 2.18 31.51 5.93 32 5.45 31.99 0 26.55 0"></polygon><path d="M26,12.25V11L24.75,9.75H7.25L6,11V21l1.25,1.25h17.5L26,21V12.25Zm-1.25,7.5-2.9-5.92,2.9-1.44ZM7.25,12.33l2.9,1.45-2.9,6V12.33ZM16,16.7l4.73-2.31L24.12,21H7.87l3.4-6.66ZM24.75,11h0L16,15.31,7.25,11Z"></path>
+</svg>
+</a> </li>
+ </ul>
+ </div>
+ </div>
+ <div class="social-block__comment">
+ <div class="comment-cta ">
+ <a href="#comments">
+ <div class="comment-count-icon"> <svg width="14px" height="14px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<title>Fill 1</title>
+<defs></defs>
+<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+<g class="comment-count-icon-image" id="Updated-Ipad" transform="translate(-1138.000000, -314.000000)" fill="#93030E">
+<g id="Group-13" transform="translate(1117.000000, 314.000000)">
+<g id="Group-14">
+<path d="M34.6856011,0 L21.3143989,0 C21.1410172,0 21,0.141017173 21,0.314398943 L21,10.3416446 C21,10.5161823 21.1410172,10.6571995 21.3143989,10.6571995 L24.3428005,10.6571995 L24.3428005,13.6867569 C24.3428005,13.8127477 24.4190885,13.9283355 24.5369881,13.9768824 C24.5751321,13.9919089 24.6167437,14 24.6571995,14 C24.738111,14 24.8190225,13.9687913 24.8791281,13.9086856 L28.1317701,10.6571995 L34.6856011,10.6571995 C34.8589828,10.6571995 35,10.5161823 35,10.3416446 L35,0.314398943 C35,0.141017173 34.8589828,0 34.6856011,0" id="Fill-1"></path>
+</g>
+</g>
+</g>
+</g>
+</svg> </div>
+ <div class="comment-count" data-tmg-event="click" data-tmg-name="commentBtnTop" data-js="comment-count" data-tmg-hide-prefix="true"> </div>
+ </a>
+ </div>
+ </div>
+ </aside>
+ </div>
+ <div class="hero-area-wrapper">
+ <div class="leadAsset section">
+ <div class="lead-asset component" itemscope="" itemtype="https://schema.org/ImageObject" itemprop="image">
+ <meta content="1280" itemprop="width" />
+ <meta content="799" itemprop="height" />
+ <meta itemprop="url" content="http://www.telegraph.co.uk/content/dam/news/2017/11/16/TELEMMGLPICT000146889449-xlarge_trans_NvBQzQNjv4BqySoB6nTCgtc7U4LQ_FPO4hKi2sT3vi7ux2-RDZwC4QA.jpeg" />
+ <div class="component-content">
+ <figure class="lead-asset__figure"> <span class="lead-asset-image-container">
+<img class="responsive lead-asset__image" src="/content/dam/news/2017/11/16/TELEMMGLPICT000146889449_trans_NvBQzQNjv4BqySoB6nTCgtc7U4LQ_FPO4hKi2sT3vi7ux2-RDZwC4QA.jpeg?imwidth=450" srcset="/content/dam/news/2017/11/16/TELEMMGLPICT000146889449_trans_NvBQzQNjv4BqySoB6nTCgtc7U4LQ_FPO4hKi2sT3vi7ux2-RDZwC4QA.jpeg?imwidth=450 450w,/content/dam/news/2017/11/16/TELEMMGLPICT000146889449_trans_NvBQzQNjv4BqySoB6nTCgtc7U4LQ_FPO4hKi2sT3vi7ux2-RDZwC4QA.jpeg?imwidth=900 900w,/content/dam/news/2017/11/16/TELEMMGLPICT000146889449_trans_NvBQzQNjv4BqySoB6nTCgtc7U4LQ_FPO4hKi2sT3vi7ux2-RDZwC4QA.jpeg?imwidth=620 620w,/content/dam/news/2017/11/16/TELEMMGLPICT000146889449_trans_NvBQzQNjv4BqySoB6nTCgtc7U4LQ_FPO4hKi2sT3vi7ux2-RDZwC4QA.jpeg?imwidth=1240 1240w,/content/dam/news/2017/11/16/TELEMMGLPICT000146889449_trans_NvBQzQNjv4BqySoB6nTCgtc7U4LQ_FPO4hKi2sT3vi7ux2-RDZwC4QA.jpeg?imwidth=700 700w,/content/dam/news/2017/11/16/TELEMMGLPICT000146889449_trans_NvBQzQNjv4BqySoB6nTCgtc7U4LQ_FPO4hKi2sT3vi7ux2-RDZwC4QA.jpeg?imwidth=1400 1400w" sizes="100vw,(min-width: 480px) 450px,(min-width: 730px) 700px,(min-width: 1008px) 620px" />
+</span>
+ <figcaption> <span itemprop="caption" class="lead-asset-caption">Zimbabwe president Robert Mugabe with ZDF commander general Constantino Chiwenga at State House in an image the Harare Herald claims was taken on November 16 - the day after the military takeover</span> <span itemprop="copyrightHolder" class="lead-asset-copyright">
+<span class="lead-asset-copyright-label">Credit:</span> HARARE HERALD </span>
+ </figcaption>
+ </figure>
+ </div>
+ </div>
+ </div>
+ </div>
+ </header> <span id="polar-ad-article-top"></span>
+ <meta itemprop="datePublished" content="2017-11-16T14:15+0000" />
+ <footer class="footer-author">
+ <div class="byline component ">
+ <ul class="component-content">
+ <li class="byline__author" itemscope="" itemtype="http://schema.org/Person" itemprop="author">
+ <span class="byline__author-name" itemprop="name" content="Our Foreign Staff"><a href="/authors/our-foreign-staff/">Our Foreign Staff</a></span> </li>
+ </ul>
+ </div> <span class="article-date component ">
+<span class="component-content">
+<time itemprop="datePublished" datetime="2017-11-16T14:15+0000" class="article-date-published">16 November 2017 • 2:15pm</time>
+</span> </span>
+ </footer>
+ <article itemprop="articleBody" data-insert-mobile-adslot="">
+ <div class="articleBodyText version-2 section">
+ <div class="article-body-text component version-2">
+ <div class="component-content">
+ <p><span class="m_first-letter m_first-letter--flagged">Z</span>imbabwe President <a href="http://www.telegraph.co.uk/news/2017/11/17/zimbabwes-ruling-party-drafting-motion-fire-robert-mugabe-sunday/">Robert Mugabe</a>, his wife Grace and two key figures from her G40 political faction are under house arrest at Mugabe's "Blue House" compound in Harare and are insisting the 93 year-old finishes his presidential term, a source said.</p>
+ <p>The G40 figures are cabinet ministers Jonathan Moyo and Saviour Kasukuwere, who fled to the compound after their homes were attacked by troops in Tuesday night's coup, the source, who said he had spoken to people inside the compound, told Reuters.</p>
+ <p>Mr Mugabe is resisting mediation by a Catholic priest to allow the former guerrilla a graceful exit after the military takeover.</p>
+ <p>The priest, Fidelis Mukonori, is acting as a middle-man between Mr Mugabe and the generals, <a href="http://www.telegraph.co.uk/news/2017/11/15/zimbabwe-crisis-have-spent-long-careful-really-change/">who seized power in a targeted operation against "criminals" in his entourage</a>, a senior political source told Reuters.</p>
+ <p>The source could not provide details of the talks, which appear to be aimed at a smooth and bloodless transition after the departure of Mr Mugabe, who has led Zimbabwe since independence in 1980.</p>
+ <p>Mr Mugabe, still seen by many Africans as a liberation hero, is reviled in the West as a despot whose disastrous handling of the economy and willingness to resort to violence to maintain power destroyed one of Africa's most promising states.</p>
+ </div>
+ </div>
+ </div>
+ <div class="articleBodyImage section">
+ <div class="article-body-image component " itemscope="" itemtype="https://schema.org/ImageObject" data-frz-ancestor="">
+ <div class="component-content">
+ <figure> <span class="article-body-image-image-container">
+<div class="lazy-image article-body-image-image" style="padding-top:48.46%;" data-js="LazyImage" data-src="/content/dam/news/2017/11/16/TELEMMGLPICT000146853794_trans_NvBQzQNjv4Bq7YX-MY81rmrzC5YM1BPdGkMvplUPygWXbQo2QWVjyd4.jpeg?imwidth=480" data-srcset="/content/dam/news/2017/11/16/TELEMMGLPICT000146853794_trans_NvBQzQNjv4Bq7YX-MY81rmrzC5YM1BPdGkMvplUPygWXbQo2QWVjyd4.jpeg?imwidth=480 480w,/content/dam/news/2017/11/16/TELEMMGLPICT000146853794_trans_NvBQzQNjv4Bq7YX-MY81rmrzC5YM1BPdGkMvplUPygWXbQo2QWVjyd4.jpeg?imwidth=960 960w,/content/dam/news/2017/11/16/TELEMMGLPICT000146853794_trans_NvBQzQNjv4Bq7YX-MY81rmrzC5YM1BPdGkMvplUPygWXbQo2QWVjyd4.jpeg?imwidth=580 580w,/content/dam/news/2017/11/16/TELEMMGLPICT000146853794_trans_NvBQzQNjv4Bq7YX-MY81rmrzC5YM1BPdGkMvplUPygWXbQo2QWVjyd4.jpeg?imwidth=1160 1160w,/content/dam/news/2017/11/16/TELEMMGLPICT000146853794_trans_NvBQzQNjv4Bq7YX-MY81rmrzC5YM1BPdGkMvplUPygWXbQo2QWVjyd4.jpeg?imwidth=620 620w,/content/dam/news/2017/11/16/TELEMMGLPICT000146853794_trans_NvBQzQNjv4Bq7YX-MY81rmrzC5YM1BPdGkMvplUPygWXbQo2QWVjyd4.jpeg?imwidth=1240 1240w" data-alt="Zimbabwean opposition leader Morgan Tsvangirai, right, meets church leaders Bishop Trevor Manhanga of the Evangelical Fellowship of Zimbabwe and Father Fidelis Mukonori of the Zimbabwe Catholic Bishops Conference in 2006. Father Mukonori is said to be mediating in the current crisis" sizes="100vw,(min-width: 480px) 480px,(min-width: 730px) 580px,(min-width: 1008px) 620px">
+<noscript>
+<img class="responsive article-body-image-image" src="/content/dam/news/2017/11/16/TELEMMGLPICT000146853794_trans_NvBQzQNjv4Bq7YX-MY81rmrzC5YM1BPdGkMvplUPygWXbQo2QWVjyd4.jpeg?imwidth=480" alt="Zimbabwean opposition leader Morgan Tsvangirai, right, meets church leaders Bishop Trevor Manhanga of the Evangelical Fellowship of Zimbabwe and Father Fidelis Mukonori of the Zimbabwe Catholic Bishops Conference in 2006. Father Mukonori is said to be mediating in the current crisis" />
+</noscript>
+</div>
+</span>
+ <figcaption> <span itemprop="caption" class="article-body-image-caption">Zimbabwean opposition leader Morgan Tsvangirai, right, meets church leaders Bishop Trevor Manhanga, centre, and Father Fidelis Mukonori in 2006. Father&nbsp;Mukonori is said to be mediating in the current crisis</span> <span itemprop="copyrightHolder" class="article-body-image-copyright">
+<span class="article-body-image-copyright-label">Credit:</span> &nbsp;DESMOND KWANDE/&nbsp;AFP </span>
+ </figcaption>
+ </figure>
+ </div>
+ </div>
+ </div>
+ <div class="articleBodyText section">
+ <div class="article-body-text component ">
+ <div class="component-content">
+ <p><span class="m_first-letter m_first-letter--flagged">Z</span>imbabwean intelligence reports seen by Reuters suggest that former security chief Emmerson Mnangagwa, who was ousted as vice-president this month, has been mapping out a post-Mugabe vision with the military and opposition for more than a year.</p>
+ </div>
+ </div>
+ </div>
+ <div class="dynamicMpu section">
+ <div id="advert_tmg_dyn_0" class="js-advert advert " data-adtype="dyn_0"></div>
+ </div>
+ <div class="articleBodyText section">
+ <div class="article-body-text component ">
+ <div class="component-content">
+ <p><span class="m_first-letter m_first-letter--flagged">F</span>uelling speculation that Mnangagwa's plan might be rolling into action, opposition leader Morgan Tsvangirai, who has been receiving cancer treatment in Britain and South Africa, returned to Harare late on Wednesday, his spokesman said.</p>
+ <p>South Africa said Mr Mugabe had told President Jacob Zuma by telephone on Wednesday that he was confined to his home but was otherwise fine and the military said it was keeping him and his family, including wife Grace, safe.</p>
+ </div>
+ </div>
+ </div>
+ <div class="htmlEmbed section">
+ <div class="html-embed component ">
+ <div class="component-content">
+ <aside id="98c3c955-2a1a-4c09-a629-3dd9d735459e" data-data-uri="https://particle-api.eip.telegraph.co.uk/particles/98c3c955-2a1a-4c09-a629-3dd9d735459e" data-html-uri="https://cf-particle-html.eip.telegraph.co.uk/98c3c955-2a1a-4c09-a629-3dd9d735459e.html" class="tmg-particle breakout-box" data-widget-type="breakout-box" data-widget-title="Profile | Grace Mugabe" data-widget-size="responsive" data-widget-static="false" data-expandable="true" data-embeddable="true"><a title="Profile | Grace Mugabe" data-cke-saved-href="https://cf-particle-html.eip.telegraph.co.uk/98c3c955-2a1a-4c09-a629-3dd9d735459e.html" href="https://cf-particle-html.eip.telegraph.co.uk/98c3c955-2a1a-4c09-a629-3dd9d735459e.html">Profile | Grace Mugabe</a></aside>
+ <script src="https://cf.eip.telegraph.co.uk/particle-embed/js/particle.js"></script>
+ </div>
+ </div>
+ </div>
+ <div class="articleBodyText section">
+ <div class="article-body-text component ">
+ <div class="component-content">
+ <p><span class="m_first-letter m_first-letter--flagged">D</span>espite the lingering admiration for Mr Mugabe, there is little public affection for 52-year-old Grace, a former government typist who started having an affair with Mr Mugabe in the early 1990s as his first wife, Sally, was dying of kidney disease.</p>
+ <p>Dubbed "DisGrace" or "Gucci Grace" on account of her reputed love of shopping, she enjoyed a meteoric rise through the ranks of Mugabe's ruling Zanu-PF in the last two years, culminating in Mnangagwa's removal a week ago - a move seen as clearing the way for her to succeed her husband.</p>
+ </div>
+ </div>
+ </div>
+ <div class="articleBodyImage section">
+ <div class="article-body-image component " itemscope="" itemtype="https://schema.org/ImageObject" data-frz-ancestor="">
+ <div class="component-content">
+ <figure> <span class="article-body-image-image-container">
+<div class="lazy-image article-body-image-image" style="padding-top:66.68%;" data-js="LazyImage" data-src="/content/dam/news/2017/11/16/TELEMMGLPICT000146862156_trans_NvBQzQNjv4BqpVlberWd9EgFPZtcLiMQfyf2A9a6I9YchsjMeADBa08.jpeg?imwidth=480" data-srcset="/content/dam/news/2017/11/16/TELEMMGLPICT000146862156_trans_NvBQzQNjv4BqpVlberWd9EgFPZtcLiMQfyf2A9a6I9YchsjMeADBa08.jpeg?imwidth=480 480w,/content/dam/news/2017/11/16/TELEMMGLPICT000146862156_trans_NvBQzQNjv4BqpVlberWd9EgFPZtcLiMQfyf2A9a6I9YchsjMeADBa08.jpeg?imwidth=960 960w,/content/dam/news/2017/11/16/TELEMMGLPICT000146862156_trans_NvBQzQNjv4BqpVlberWd9EgFPZtcLiMQfyf2A9a6I9YchsjMeADBa08.jpeg?imwidth=580 580w,/content/dam/news/2017/11/16/TELEMMGLPICT000146862156_trans_NvBQzQNjv4BqpVlberWd9EgFPZtcLiMQfyf2A9a6I9YchsjMeADBa08.jpeg?imwidth=1160 1160w,/content/dam/news/2017/11/16/TELEMMGLPICT000146862156_trans_NvBQzQNjv4BqpVlberWd9EgFPZtcLiMQfyf2A9a6I9YchsjMeADBa08.jpeg?imwidth=620 620w,/content/dam/news/2017/11/16/TELEMMGLPICT000146862156_trans_NvBQzQNjv4BqpVlberWd9EgFPZtcLiMQfyf2A9a6I9YchsjMeADBa08.jpeg?imwidth=1240 1240w" data-alt="A man walks past a military tank parked on the side of a street in the Zimbabwean capital Harare on November 16, 2017" sizes="100vw,(min-width: 480px) 480px,(min-width: 730px) 580px,(min-width: 1008px) 620px">
+<noscript>
+<img class="responsive article-body-image-image" src="/content/dam/news/2017/11/16/TELEMMGLPICT000146862156_trans_NvBQzQNjv4BqpVlberWd9EgFPZtcLiMQfyf2A9a6I9YchsjMeADBa08.jpeg?imwidth=480" alt="A man walks past a military tank parked on the side of a street in the Zimbabwean capital Harare on November 16, 2017" />
+</noscript>
+</div>
+</span>
+ <figcaption> <span itemprop="caption" class="article-body-image-caption">A man walks past an armoured personnel carrier parked on a Harare street on Thursday</span> <span itemprop="copyrightHolder" class="article-body-image-copyright">
+<span class="article-body-image-copyright-label">Credit:</span> STR/AFP&nbsp; </span>
+ </figcaption>
+ </figure>
+ </div>
+ </div>
+ </div>
+ <div class="articleBodyText section">
+ <div class="article-body-text component ">
+ <div class="component-content">
+ <p><span class="m_first-letter m_first-letter--flagged">I</span>n contrast to the high political drama unfolding behind closed doors, the streets of the capital remained calm, with people going about their daily business, albeit under the watch of soldiers on armoured vehicles at strategic locations.</p>
+ </div>
+ </div>
+ </div>
+ <div class="dynamicMpu section">
+ <div id="advert_tmg_dyn_1" class="js-advert advert " data-adtype="dyn_1"></div>
+ </div>
+ <div class="articleBodyText section">
+ <div class="article-body-text component ">
+ <div class="component-content">
+ <p><span class="m_first-letter m_first-letter--flagged">W</span>hatever the final outcome, the events could signal a once-in-a-generation change for the former British colony, a regional breadbasket reduced to destitution by economic policies Mr Mugabe's critics have long blamed on him.</p>
+ </div>
+ </div>
+ </div>
+ </article>
+ <div class="listOfTags section">
+ <aside class="list-of-tags component ">
+ <div class="js-settings" data-limit="20"></div>
+ <div class="component-content">
+ <h3 class="list-of-tags__title">Related Topics</h3>
+ <ul class="list-of-tags__list">
+ <li class="list-of-tags__item" aria-hidden="false"> <a class="list-of-tags__link" href="/zimbabwe/">Zimbabwe</a> </li>
+ <li class="list-of-tags__item" aria-hidden="false"> <a class="list-of-tags__link" href="/africa/">Africa</a> </li>
+ <li class="list-of-tags__item" aria-hidden="false"> <a class="list-of-tags__link" href="/grace-mugabe/">Grace Mugabe</a> </li>
+ <li class="list-of-tags__item" aria-hidden="false"> <a class="list-of-tags__link" href="/robert-mugabe/">Robert Mugabe</a> </li>
+ <li class="list-of-tags__item" aria-hidden="true"> <a href="#" class="list-of-tags__show-more">Show more</a> </li>
+ </ul>
+ </div>
+ </aside>
+ </div>
+ <aside class="social-block block-heading" aria-label="Share this article">
+ <div class="social-block__share">
+ <div class="social-share" data-social-share="{'shareButtons':{'facebook':{'networkEnable':true,'account':''},'twitter':{'networkEnable':true,'account':'telegraphnews'},'pinterest':{'networkEnable':false,'account':''},'whatsapp':{'networkEnable':true,'account':''},'linkedin':{'networkEnable':false,'account':''},'email':{'networkEnable':true,'account':''}},'showCounters':false,'disableAutoClone':false,'disableStickiness':true}">
+ <ul class="social-share__list">
+ <li class="social-share__item social-share__facebook"> <a href="#" target="_blank" class="social-share__button" data-social-share-button="facebook" aria-label="Share on facebook">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 68 32">
+<path d="M15.72,23.67V16.16h2.52l.38-2.93h-2.9V11.36c0-.85.24-1.43,1.45-1.43h1.55V7.32a20.74,20.74,0,0,0-2.26-.12,3.53,3.53,0,0,0-3.77,3.87v2.16H10.17v2.93H12.7v7.51Z"></path><polygon points="62.55 0 62.06 0.48 65.98 1.4 61.83 5.55 62.53 6.25 66.6 2.18 67.51 5.93 68 5.45 67.94 0.05 62.55 0"></polygon><path d="M30.43,14.89h-.16a2,2,0,0,0-1.42-.52c-.66,0-1.08.26-1.08.8s.37.8,1.32,1.1c1.29.41,2,.79,2,1.91s-.76,1.91-2.31,1.91a3.7,3.7,0,0,1-2.27-.74l.38-.73H27a2.73,2.73,0,0,0,1.78.68c.79,0,1.2-.28,1.2-.9s-.35-.82-1.58-1.2-1.72-.91-1.72-1.88c0-1.14,1-1.77,2.17-1.77a2.91,2.91,0,0,1,2,.61Z"></path><path d="M33.48,14.58h.08a3,3,0,0,1,2.21-1c1.25,0,1.8.61,1.8,1.83V20H36.38V15.68c0-.85-.28-1.19-1.1-1.19a2.72,2.72,0,0,0-1.76.78V20H32.33V11l1-.13h.19Z"></path><path d="M39,14.1a5.17,5.17,0,0,1,2.33-.55c1.52,0,2.22.6,2.22,1.82V18.8c0,.38.18.53.42.53a.88.88,0,0,0,.33-.07h.07l.16.61a1.78,1.78,0,0,1-.9.23c-.66,0-1.07-.26-1.14-.91h-.1a2,2,0,0,1-1.78.91c-1.06,0-1.79-.52-1.79-1.63s.56-1.44,1.67-1.78l1.86-.58V15.6c0-.83-.25-1.2-1.25-1.2a3.87,3.87,0,0,0-1.68.43h-.14Zm3.36,4.56V16.84l-1.4.44c-.7.22-1,.53-1,1.09,0,.74.41.92.92.92A2.08,2.08,0,0,0,42.32,18.65Z"></path><path d="M46.67,14.59a1.79,1.79,0,0,1,1.55-1,1.33,1.33,0,0,1,.61.11l-.19,1.09h-.12a1.28,1.28,0,0,0-.55-.11,1.55,1.55,0,0,0-1.29.74V20H45.48V13.74l.85-.12h.2l0,1Z"></path><path d="M52.37,20.09c-1.92,0-3.06-1.26-3.06-3.32s1.27-3.23,2.79-3.23c1.85,0,2.62,1.15,2.62,3.48H50.53c.06,1.33.61,2.22,2,2.22a2.26,2.26,0,0,0,1.66-.6h.14l.36.65A3.39,3.39,0,0,1,52.37,20.09Zm1.22-3.87c0-1.21-.43-1.89-1.45-1.89s-1.52.78-1.61,2l3.06,0Z"></path><path d="M65.74,7.83,65,8.56A15,15,0,0,1,52,31H16A15,15,0,0,1,16,1H52a14.89,14.89,0,0,1,7.63,2.11l.73-.73A15.9,15.9,0,0,0,52,0H16a16,16,0,1,0,0,32H52A16,16,0,0,0,65.74,7.83Z"></path>
+</svg>
+</a> </li>
+ <li class="social-share__item social-share__twitter"> <a href="#" target="_blank" class="social-share__button" data-social-share-button="twitter" aria-label="Share on twitter">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
+<path d="M12.66,23.31A10.44,10.44,0,0,0,23.17,12.81c0-.16,0-.32,0-.48A7.51,7.51,0,0,0,25,10.42a7.37,7.37,0,0,1-2.12.58A3.71,3.71,0,0,0,24.5,9a7.4,7.4,0,0,1-2.34.9,3.7,3.7,0,0,0-6.29,3.37A10.48,10.48,0,0,1,8.25,9.36,3.7,3.7,0,0,0,9.4,14.29a3.67,3.67,0,0,1-1.67-.46s0,0,0,0a3.69,3.69,0,0,0,3,3.62A3.69,3.69,0,0,1,9,17.56a3.7,3.7,0,0,0,3.45,2.56,7.41,7.41,0,0,1-4.59,1.58A7.52,7.52,0,0,1,7,21.66a10.46,10.46,0,0,0,5.66,1.66"></path><path d="M29.73,7.82,29,8.55a15.07,15.07,0,1,1-5.37-5.45l.73-.73a16,16,0,1,0,5.37,5.45Z"></path><polygon class="cls-1" points="26.55 0 26.06 0.48 29.98 1.4 25.83 5.55 26.53 6.25 30.6 2.18 31.51 5.93 32 5.45 31.94 0.05 26.55 0"></polygon>
+</svg>
+</a> </li>
+ <li class="social-share__item social-share__whatsapp"> <a href="#" target="_blank" class="social-share__button" data-social-share-button="whatsapp" aria-label="Share on whatsapp">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
+<path d="M29.73,7.82,29,8.55a15.07,15.07,0,1,1-5.37-5.45l.73-.73a16,16,0,1,0,5.37,5.45Z"></path><polygon points="26.55 0 26.06 0.48 29.98 1.4 25.83 5.55 26.53 6.25 30.6 2.18 31.51 5.93 32 5.45 31.94 0.05 26.55 0"></polygon><path d="M22.62,9.34A9.31,9.31,0,0,0,8,20.57L6.66,25.39l4.93-1.29A9.3,9.3,0,0,0,16,25.23h0A9.31,9.31,0,0,0,22.62,9.34ZM16,23.66h0a7.72,7.72,0,0,1-3.94-1.08l-.28-.17-2.93.77.78-2.85L9.49,20A7.73,7.73,0,1,1,16,23.66Zm4.24-5.79c-.23-.12-1.38-.68-1.59-.76s-.37-.12-.52.12-.6.76-.74.91-.27.17-.5.06A6.35,6.35,0,0,1,15.06,17a7,7,0,0,1-1.29-1.61c-.14-.23,0-.36.1-.47s.23-.27.35-.41a1.59,1.59,0,0,0,.23-.39.43.43,0,0,0,0-.41c-.06-.12-.52-1.26-.72-1.73s-.38-.39-.52-.4h-.45a.85.85,0,0,0-.62.29,2.61,2.61,0,0,0-.81,1.94,4.52,4.52,0,0,0,.95,2.4,10.36,10.36,0,0,0,4,3.51,13.35,13.35,0,0,0,1.33.49,3.19,3.19,0,0,0,1.46.09,2.39,2.39,0,0,0,1.57-1.11,1.94,1.94,0,0,0,.14-1.11C20.67,18,20.51,18,20.28,17.86Z"></path>
+</svg>
+</a> </li>
+ <li class="social-share__item social-share__email"> <a href="#" target="_blank" class="social-share__button" data-social-share-button="email" aria-label="Share on email">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
+<path d="M29.73,7.82,29,8.56a15.07,15.07,0,1,1-5.37-5.45l.73-.73a16,16,0,1,0,5.37,5.45Z"></path><polygon class="cls-1" points="26.55 0 26.06 0.49 29.98 1.4 25.83 5.55 26.53 6.25 30.6 2.18 31.51 5.93 32 5.45 31.99 0 26.55 0"></polygon><path d="M26,12.25V11L24.75,9.75H7.25L6,11V21l1.25,1.25h17.5L26,21V12.25Zm-1.25,7.5-2.9-5.92,2.9-1.44ZM7.25,12.33l2.9,1.45-2.9,6V12.33ZM16,16.7l4.73-2.31L24.12,21H7.87l3.4-6.66ZM24.75,11h0L16,15.31,7.25,11Z"></path>
+</svg>
+</a> </li>
+ </ul>
+ </div>
+ </div>
+ <div class="social-block__comment">
+ <div class="comment-cta ">
+ <a href="#comments">
+ <div class="comment-count-icon"> <svg width="14px" height="14px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<title>Fill 1</title>
+<defs></defs>
+<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+<g class="comment-count-icon-image" id="Updated-Ipad" transform="translate(-1138.000000, -314.000000)" fill="#93030E">
+<g id="Group-13" transform="translate(1117.000000, 314.000000)">
+<g id="Group-14">
+<path d="M34.6856011,0 L21.3143989,0 C21.1410172,0 21,0.141017173 21,0.314398943 L21,10.3416446 C21,10.5161823 21.1410172,10.6571995 21.3143989,10.6571995 L24.3428005,10.6571995 L24.3428005,13.6867569 C24.3428005,13.8127477 24.4190885,13.9283355 24.5369881,13.9768824 C24.5751321,13.9919089 24.6167437,14 24.6571995,14 C24.738111,14 24.8190225,13.9687913 24.8791281,13.9086856 L28.1317701,10.6571995 L34.6856011,10.6571995 C34.8589828,10.6571995 35,10.5161823 35,10.3416446 L35,0.314398943 C35,0.141017173 34.8589828,0 34.6856011,0" id="Fill-1"></path>
+</g>
+</g>
+</g>
+</g>
+</svg> </div>
+ <div class="comment-count" data-tmg-event="click" data-tmg-name="commentBtnTop" data-js="comment-count" data-tmg-hide-prefix="true"> </div>
+ </a>
+ </div>
+ </div>
+ </aside>
+ <div class="facebookLike section">
+ <aside class="social-follow">
+ <header class="social-follow__header">
+ <h3 class="block-heading"><span class="block-heading__label">Follow Telegraph News</span></h3>
+ </header>
+ <ul class="social-follow__list">
+ <li class="social-follow__item social-follow__facebook"> <a class="social-follow__link" href="https://www.facebook.com/telegraph.co.uk" target="_blank" rel="noopener noreferrer" data-social-follow-link="facebook">
+<span class="social-follow__icon">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
+<path d="M11,32V17.4H6.1v-5.7H11V7.5C11,2.6,14,0,18.3,0c2.1,0,3.8,0.2,4.4,0.2v5.1h-3c-2.4,0-2.8,1.1-2.8,2.8v3.6h5.6l-0.6,5.6 h-4.9V32H11z"></path>
+</svg>
+</span>
+<span class="social-follow__label">
+Follow on Facebook
+</span>
+</a> </li>
+ <li class="social-follow__item social-follow__twitter"> <a class="social-follow__link" href="https://twitter.com/Telegraph" target="_blank" rel="noopener noreferrer" data-social-follow-link="twitter">
+<span class="social-follow__icon">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
+<path d="M10.2,29.6c12,0,18.5-9.9,18.5-18.5v-0.8C30,9.4,31.1,8.2,32,6.9c-1.2,0.5-2.4,0.9-3.7,1.1c1.4-0.8,2.4-2.1,2.9-3.6 C29.9,5.2,28.5,5.7,27,6c-1.2-1.3-3-2-4.8-2c-3.6,0-6.5,2.9-6.5,6.5c0,0.5,0.1,1,0.2,1.5C10.7,11.6,5.8,9.2,2.4,5.1 c-0.6,1-0.9,2.1-0.9,3.3c0,2.2,1.1,4.2,2.9,5.5c-1.1,0-2.1-0.3-3-0.8v0.1c0,3.1,2.2,5.7,5.2,6.4c-0.5,0.2-1.1,0.2-1.7,0.2 c-0.4,0-0.8-0.1-1.2-0.2C4.5,22.2,7,24,9.8,24c-2.4,1.7-5.2,2.7-8.1,2.7H0C3.1,28.6,6.6,29.6,10.2,29.6"></path>
+</svg>
+</span>
+<span class="social-follow__label">
+Follow on Twitter
+</span>
+</a> </li>
+ <li class="social-follow__item social-follow__instagram"> <a class="social-follow__link" href="https://www.instagram.com/telegraph" target="_blank" rel="noopener noreferrer" data-social-follow-link="instagram">
+<span class="social-follow__icon">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
+<path d="M10.7,16A5.27,5.27,0,0,1,16,10.7,5.34,5.34,0,0,1,21.3,16,5.27,5.27,0,0,1,16,21.3,5.21,5.21,0,0,1,10.7,16M7.8,16A8.2,8.2,0,1,0,16,7.8,8.17,8.17,0,0,0,7.8,16M22.6,7.5a1.9,1.9,0,1,0,3.8,0,1.84,1.84,0,0,0-1.9-1.9,1.9,1.9,0,0,0-1.9,1.9M9.5,29a12,12,0,0,1-3-.5,3.82,3.82,0,0,1-1.8-1.2,5.67,5.67,0,0,1-1.2-1.8,8.6,8.6,0,0,1-.5-3c-.1-1.7-.1-2.2-.1-6.5s0-4.8.1-6.5a7.48,7.48,0,0,1,.5-2.9A3.82,3.82,0,0,1,4.7,4.8,5.67,5.67,0,0,1,6.5,3.6a6.45,6.45,0,0,1,3-.6c1.7-.1,2.2-.1,6.5-.1s4.8,0,6.5.1a12,12,0,0,1,3,.5,3.82,3.82,0,0,1,1.8,1.2,5.67,5.67,0,0,1,1.2,1.8,8.6,8.6,0,0,1,.5,3c.1,1.7.1,2.2.1,6.5s0,4.8-.1,6.5a12,12,0,0,1-.5,3,3.82,3.82,0,0,1-1.2,1.8,5.67,5.67,0,0,1-1.8,1.2,7.69,7.69,0,0,1-3,.5c-1.7.1-2.2.1-6.5.1s-4.8,0-6.5-.1M9.4.1A16.14,16.14,0,0,0,5.5.8,7.5,7.5,0,0,0,2.7,2.6,8.54,8.54,0,0,0,.8,5.5,12.07,12.07,0,0,0,0,9.4V16c0,4.3,0,4.9.1,6.6a12.07,12.07,0,0,0,.8,3.9,7.5,7.5,0,0,0,1.8,2.8,7.86,7.86,0,0,0,2.8,1.8,12.07,12.07,0,0,0,3.9.8c1.7.1,2.3.1,6.6.1s4.9,0,6.6-.1a12.07,12.07,0,0,0,3.9-.8,7.5,7.5,0,0,0,2.8-1.8,7.86,7.86,0,0,0,1.8-2.8,12.07,12.07,0,0,0,.8-3.9c.1-1.6.1-2.3.1-6.6s0-4.9-.1-6.6a12.07,12.07,0,0,0-.8-3.9,7.5,7.5,0,0,0-1.8-2.8A7.86,7.86,0,0,0,26.5.9,12.07,12.07,0,0,0,22.6.1C20.9,0,20.3,0,16,0S11.1,0,9.4.1"></path>
+</svg>
+</span>
+<span class="social-follow__label">
+Follow on Instagram
+</span>
+</a> </li>
+ </ul>
+ </aside>
+ </div>
+ <aside id="comments" class="comments-block" data-options="{&quot;authorMode&quot;:false,&quot;articleSiteId&quot;:&quot;Mzg0MTA0OkFwd1R3VzdXV1BCOA==&quot;,&quot;articleCommentingConfig&quot;:true,&quot;networkConfig&quot;:{&quot;network&quot;:&quot;telegraphmedia.fyre.co&quot;},&quot;convConfig&quot;:{&quot;siteId&quot;:&quot;384104&quot;,&quot;articleId&quot;:&quot;ApwTwW7WWPB8&quot;,&quot;collectionMeta&quot;:&quot;eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcnRpY2xlSWQiOiJBcHdUd1c3V1dQQjgiLCJpc3MiOiJ1cm46bGl2ZWZ5cmU6dGVsZWdyYXBobWVkaWEuZnlyZS5jbzpzaXRlXHUwMDNkMzg0MTA0IiwidGl0bGUiOiJaaW1iYWJ3ZSBjb3VwOiBSb2JlcnQgTXVnYWJlIGFuZCB3aWZlIEdyYWNlIFx1MDAyN2luc2lzdGluZyBoZSBmaW5pc2hlcyBoaXMgdGVybVx1MDAyNywgYXMgcHJpZXN0IHN0ZXBzIGluIHRvIG1lZGlhdGUiLCJ0eXBlIjoibGl2ZWNvbW1lbnRzIiwidXJsIjoiaHR0cDovL3d3dy50ZWxlZ3JhcGguY28udWsvbmV3cy8yMDE3LzExLzE2L3ppbWJhYndlcy1yb2JlcnQtbXVnYWJlLXdpZmUtZ3JhY2UtaW5zaXN0aW5nLWZpbmlzaGVzLXRlcm0tcHJpZXN0In0.AoC8ESb47d8eRJ6eIiyg10hL-D8HTuxGB5YbU98vBBs&quot;,&quot;checksum&quot;:&quot;75d50eda4624762df9d05ccbc478df04&quot;,&quot;title&quot;:&quot;Zimbabwe coup: Robert Mugabe and wife Grace 'insisting he finishes his term', as priest steps in to mediate&quot;}}">
+ <div class="comments-block__init"> <button class="comments-block__load" data-label-loading="Loading...">Show comments</button> </div>
+ <div class="comments-block__main">
+ <div class="comments-block__login-cta-container">
+ <div class="comments-block__login-prompt"> If you would like to add a comment, please register or log in </div>
+ <div class="comments-block__cta-buttons"> <a href="https://secure.telegraph.co.uk/secure/registration?redirectTo=" class="comments-block__cta-button comments-block__cta-button--register">Register</a> <a href="https://secure.telegraph.co.uk/secure/login/?redirectTo=" class="comments-block__cta-button comments-block__cta-button--login">Log in</a> </div>
+ </div>
+ <div class="comments-block__house-rules">Please review our <a class="comments-block__house-rules-link" href="/commenting-policy/">commenting policy</a></div>
+ <div class="livefyre-content"></div>
+ </div>
+ </aside>
+ </div>
+ </div>
+ <aside class="article__spark"> <span id="polar-ad-article-bottom"></span> </aside>
+ <aside class="article__sidebar" itemscope="" itemtype="https://schema.org/WPSideBar">
+ <div class="article__sidebar-inner js-sidebar">
+ <div class="sidebar-sponsored"> </div>
+ <div class="spark-slot2"> </div>
+ <div class="js-snippet-sidebar snippet-sidebar">
+ <div class="component-content">
+ <div id="advert_tmg_mpu" class="js-advert advert " data-adtype="mpu"></div>
+ <div class="snippetReference section">
+ <div class="snippet component ">
+ <div class="component-content">
+ <div class="htmlEmbed section">
+ <div class="html-embed component ">
+ <div class="component-content">
+ <div class="OUTBRAIN" data-src="DROP_PERMALINK_HERE" data-widget-id="SB_1" data-ob-template="telegraph"></div>
+ <script type="text/javascript" src="http://widgets.outbrain.com/outbrain.js"></script>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <aside class="social-follow">
+ <header class="social-follow__header">
+ <h3 class="block-heading"><span class="block-heading__label">Follow Telegraph News</span></h3>
+ </header>
+ <ul class="social-follow__list">
+ <li class="social-follow__item social-follow__facebook"> <a class="social-follow__link" href="https://www.facebook.com/telegraph.co.uk" target="_blank" rel="noopener noreferrer" data-social-follow-link="facebook">
+<span class="social-follow__icon">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
+<path d="M11,32V17.4H6.1v-5.7H11V7.5C11,2.6,14,0,18.3,0c2.1,0,3.8,0.2,4.4,0.2v5.1h-3c-2.4,0-2.8,1.1-2.8,2.8v3.6h5.6l-0.6,5.6 h-4.9V32H11z"></path>
+</svg>
+</span>
+<span class="social-follow__label">
+Follow on Facebook
+</span>
+</a> </li>
+ <li class="social-follow__item social-follow__twitter"> <a class="social-follow__link" href="https://twitter.com/Telegraph" target="_blank" rel="noopener noreferrer" data-social-follow-link="twitter">
+<span class="social-follow__icon">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
+<path d="M10.2,29.6c12,0,18.5-9.9,18.5-18.5v-0.8C30,9.4,31.1,8.2,32,6.9c-1.2,0.5-2.4,0.9-3.7,1.1c1.4-0.8,2.4-2.1,2.9-3.6 C29.9,5.2,28.5,5.7,27,6c-1.2-1.3-3-2-4.8-2c-3.6,0-6.5,2.9-6.5,6.5c0,0.5,0.1,1,0.2,1.5C10.7,11.6,5.8,9.2,2.4,5.1 c-0.6,1-0.9,2.1-0.9,3.3c0,2.2,1.1,4.2,2.9,5.5c-1.1,0-2.1-0.3-3-0.8v0.1c0,3.1,2.2,5.7,5.2,6.4c-0.5,0.2-1.1,0.2-1.7,0.2 c-0.4,0-0.8-0.1-1.2-0.2C4.5,22.2,7,24,9.8,24c-2.4,1.7-5.2,2.7-8.1,2.7H0C3.1,28.6,6.6,29.6,10.2,29.6"></path>
+</svg>
+</span>
+<span class="social-follow__label">
+Follow on Twitter
+</span>
+</a> </li>
+ <li class="social-follow__item social-follow__instagram"> <a class="social-follow__link" href="https://www.instagram.com/telegraph" target="_blank" rel="noopener noreferrer" data-social-follow-link="instagram">
+<span class="social-follow__icon">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
+<path d="M10.7,16A5.27,5.27,0,0,1,16,10.7,5.34,5.34,0,0,1,21.3,16,5.27,5.27,0,0,1,16,21.3,5.21,5.21,0,0,1,10.7,16M7.8,16A8.2,8.2,0,1,0,16,7.8,8.17,8.17,0,0,0,7.8,16M22.6,7.5a1.9,1.9,0,1,0,3.8,0,1.84,1.84,0,0,0-1.9-1.9,1.9,1.9,0,0,0-1.9,1.9M9.5,29a12,12,0,0,1-3-.5,3.82,3.82,0,0,1-1.8-1.2,5.67,5.67,0,0,1-1.2-1.8,8.6,8.6,0,0,1-.5-3c-.1-1.7-.1-2.2-.1-6.5s0-4.8.1-6.5a7.48,7.48,0,0,1,.5-2.9A3.82,3.82,0,0,1,4.7,4.8,5.67,5.67,0,0,1,6.5,3.6a6.45,6.45,0,0,1,3-.6c1.7-.1,2.2-.1,6.5-.1s4.8,0,6.5.1a12,12,0,0,1,3,.5,3.82,3.82,0,0,1,1.8,1.2,5.67,5.67,0,0,1,1.2,1.8,8.6,8.6,0,0,1,.5,3c.1,1.7.1,2.2.1,6.5s0,4.8-.1,6.5a12,12,0,0,1-.5,3,3.82,3.82,0,0,1-1.2,1.8,5.67,5.67,0,0,1-1.8,1.2,7.69,7.69,0,0,1-3,.5c-1.7.1-2.2.1-6.5.1s-4.8,0-6.5-.1M9.4.1A16.14,16.14,0,0,0,5.5.8,7.5,7.5,0,0,0,2.7,2.6,8.54,8.54,0,0,0,.8,5.5,12.07,12.07,0,0,0,0,9.4V16c0,4.3,0,4.9.1,6.6a12.07,12.07,0,0,0,.8,3.9,7.5,7.5,0,0,0,1.8,2.8,7.86,7.86,0,0,0,2.8,1.8,12.07,12.07,0,0,0,3.9.8c1.7.1,2.3.1,6.6.1s4.9,0,6.6-.1a12.07,12.07,0,0,0,3.9-.8,7.5,7.5,0,0,0,2.8-1.8,7.86,7.86,0,0,0,1.8-2.8,12.07,12.07,0,0,0,.8-3.9c.1-1.6.1-2.3.1-6.6s0-4.9-.1-6.6a12.07,12.07,0,0,0-.8-3.9,7.5,7.5,0,0,0-1.8-2.8A7.86,7.86,0,0,0,26.5.9,12.07,12.07,0,0,0,22.6.1C20.9,0,20.3,0,16,0S11.1,0,9.4.1"></path>
+</svg>
+</span>
+<span class="social-follow__label">
+Follow on Instagram
+</span>
+</a> </li>
+ </ul>
+ </aside>
+ <div class="snippet component ">
+ <div class="component-content"> </div>
+ </div>
+ <div class="html-embed component ">
+ <div class="component-content"> <iframe src="http://widgethost.barnebys.com/widget/telegraph/9/int/" frameborder="0" scrolling="no" style="overflow: hidden; height: 600px; width: 100%;" height="600px" width="100%"></iframe> </div>
+ </div>
+ <div id="advert_tmg_hpg" class="js-advert advert " data-adtype="hpg"></div>
+ </div>
+ </div>
+ </div>
+ </aside>
+ </main>
+ <aside class="row article__related">
+ <div class="snippet-onward-journey">
+ <div class="component-content">
+ <div class="col">
+ <div class="snippetReference section">
+ <div class="snippet component "> </div>
+ </div>
+ <div class="list version-5 section">
+ <div class="list-of-entities component version-5 " data-timelabels="false" data-timebreaks="false" data-tmg-dtm-nav-area="list">
+ <div class="component-header">
+ <h2 class="component-heading"><a href="/news/pictures/">Galleries</a> </h2>
+ </div>
+ <div class="js-list-of-entities component-content" data-options="{'url': '', 'noArrows': false, 'sliderMobileOnly': 'false'}">
+ <ol class="js-list-of-entities__container list-of-entities__container">
+ <li class="list-of-entities__item list-of-entities__item--gallery premium" data-timestamp="1511288258153">
+ <div class="list-of-entities__item-link">
+ <a href="/news/2017/11/02/telegraph-cartoons-november-2017/" class="list-of-entities__item-image-container" tabindex="-1">
+ <div class="responsive-image list-of-entities__item-image " data-width="320" data-height="200" data-alt="Gallery: Telegraph cartoons, November 2017" data-frz-ratio="1.60" data-src="/content/dam/news/2017/11/21/17-11-22blower_1-small_trans_NvBQzQNjv4BqOTom2IDArMR5JububTrAx4BaZKwVQaCcGMe8NJ-Iq1g.jpg" data-frz-src-array="[{'src':'/content/dam/news/2017/11/21/17-11-22blower_1-xsmall_trans_NvBQzQNjv4BqOTom2IDArMR5JububTrAx4BaZKwVQaCcGMe8NJ-Iq1g.jpg','width':160,'height':100,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqOTom2IDArMR5JububTrAx4BaZKwVQaCcGMe8NJ-Iq1g','percentageImageRatio':'62.5'},{'src':'/content/dam/news/2017/11/21/17-11-22blower_1-xlarge_trans_NvBQzQNjv4BqOTom2IDArMR5JububTrAx4BaZKwVQaCcGMe8NJ-Iq1g.jpg','width':1280,'height':800,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqOTom2IDArMR5JububTrAx4BaZKwVQaCcGMe8NJ-Iq1g','percentageImageRatio':'62.5'},{'src':'/content/dam/news/2017/11/21/17-11-22blower_1-medium_trans_NvBQzQNjv4BqOTom2IDArMR5JububTrAx4BaZKwVQaCcGMe8NJ-Iq1g.jpg','width':480,'height':300,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqOTom2IDArMR5JububTrAx4BaZKwVQaCcGMe8NJ-Iq1g','percentageImageRatio':'62.5'},{'src':'/content/dam/news/2017/11/21/17-11-22blower_1-thumbnail_trans_NvBQzQNjv4BqOTom2IDArMR5JububTrAx4BaZKwVQaCcGMe8NJ-Iq1g.jpg','width':140,'height':87,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqOTom2IDArMR5JububTrAx4BaZKwVQaCcGMe8NJ-Iq1g','percentageImageRatio':'62.14'},{'src':'/content/dam/news/2017/11/21/17-11-22blower_1-small_trans_NvBQzQNjv4BqOTom2IDArMR5JububTrAx4BaZKwVQaCcGMe8NJ-Iq1g.jpg','width':320,'height':200,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqOTom2IDArMR5JububTrAx4BaZKwVQaCcGMe8NJ-Iq1g','percentageImageRatio':'62.5'},{'src':'/content/dam/news/2017/11/21/17-11-22blower_1-large_trans_NvBQzQNjv4BqOTom2IDArMR5JububTrAx4BaZKwVQaCcGMe8NJ-Iq1g.jpg','width':720,'height':450,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqOTom2IDArMR5JububTrAx4BaZKwVQaCcGMe8NJ-Iq1g','percentageImageRatio':'62.5'}]" style="padding-bottom:62.5%;" data-asset-type="gallery"> <noscript>
+<img src="/content/dam/news/2017/11/21/17-11-22blower_1-small_trans_NvBQzQNjv4BqOTom2IDArMR5JububTrAx4BaZKwVQaCcGMe8NJ-Iq1g.jpg" alt="Telegraph cartoons, November 2017" width="320" height="200" class="responsive-image--fallback" />
+</noscript> </div>
+ <div class="list-of-entities__icon" title="Gallery"><span class="sr-only">Gallery</span></div>
+ </a>
+ <div class="list-of-entities__item-body"> <span class="m_meta-property">
+<time class="m_meta-property__date" title="21 Nov 2017, 6:17pm" datetime="2017-11-21T06:17:38" itemprop="datePublished" pubdate="">
+<span class="m_meta-property__date-date">21 Nov 2017</span><span class="m_meta-property__date-separator">,</span> <span class="m_meta-property__date-time">6:17pm</span> </time>
+ </span>
+ <h3 class="list-of-entities__item-body-headline"><a href="/news/2017/11/02/telegraph-cartoons-november-2017/"><span class="sr-only">Gallery: </span>Telegraph cartoons, November 2017</a></h3> <span class="premium-label">Premium</span> </div>
+ </div>
+ </li>
+ <li class="list-of-entities__item list-of-entities__item--gallery premium" data-timestamp="1511286902856">
+ <div class="list-of-entities__item-link">
+ <a href="/news/2017/11/01/matt-cartoons-november-2017/" class="list-of-entities__item-image-container" tabindex="-1">
+ <div class="responsive-image list-of-entities__item-image " data-width="320" data-height="320" data-alt="Gallery: Matt cartoons, November 2017" data-frz-ratio="1.00" data-src="/content/dam/news/2017/11/21/2211-MATT-GALLERY-WEB-P1-small_trans_NvBQzQNjv4BqqVzuuqpFlyLIwiB6NTmJwfSVWeZ_vEN7c6bHu2jJnT8.png" data-frz-src-array="[{'src':'/content/dam/news/2017/11/21/2211-MATT-GALLERY-WEB-P1-thumbnail_trans_NvBQzQNjv4BqqVzuuqpFlyLIwiB6NTmJwfSVWeZ_vEN7c6bHu2jJnT8.png','width':140,'height':140,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqqVzuuqpFlyLIwiB6NTmJwfSVWeZ_vEN7c6bHu2jJnT8','percentageImageRatio':'100'},{'src':'/content/dam/news/2017/11/21/2211-MATT-GALLERY-WEB-P1-xlarge_trans_NvBQzQNjv4BqqVzuuqpFlyLIwiB6NTmJwfSVWeZ_vEN7c6bHu2jJnT8.png','width':1280,'height':1280,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqqVzuuqpFlyLIwiB6NTmJwfSVWeZ_vEN7c6bHu2jJnT8','percentageImageRatio':'100'},{'src':'/content/dam/news/2017/11/21/2211-MATT-GALLERY-WEB-P1-xsmall_trans_NvBQzQNjv4BqqVzuuqpFlyLIwiB6NTmJwfSVWeZ_vEN7c6bHu2jJnT8.png','width':160,'height':160,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqqVzuuqpFlyLIwiB6NTmJwfSVWeZ_vEN7c6bHu2jJnT8','percentageImageRatio':'100'},{'src':'/content/dam/news/2017/11/21/2211-MATT-GALLERY-WEB-P1-small_trans_NvBQzQNjv4BqqVzuuqpFlyLIwiB6NTmJwfSVWeZ_vEN7c6bHu2jJnT8.png','width':320,'height':320,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqqVzuuqpFlyLIwiB6NTmJwfSVWeZ_vEN7c6bHu2jJnT8','percentageImageRatio':'100'},{'src':'/content/dam/news/2017/11/21/2211-MATT-GALLERY-WEB-P1-large_trans_NvBQzQNjv4BqqVzuuqpFlyLIwiB6NTmJwfSVWeZ_vEN7c6bHu2jJnT8.png','width':720,'height':720,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqqVzuuqpFlyLIwiB6NTmJwfSVWeZ_vEN7c6bHu2jJnT8','percentageImageRatio':'100'},{'src':'/content/dam/news/2017/11/21/2211-MATT-GALLERY-WEB-P1-medium_trans_NvBQzQNjv4BqqVzuuqpFlyLIwiB6NTmJwfSVWeZ_vEN7c6bHu2jJnT8.png','width':480,'height':480,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqqVzuuqpFlyLIwiB6NTmJwfSVWeZ_vEN7c6bHu2jJnT8','percentageImageRatio':'100'}]" style="padding-bottom:100%;" data-asset-type="gallery"> <noscript>
+<img src="/content/dam/news/2017/11/21/2211-MATT-GALLERY-WEB-P1-small_trans_NvBQzQNjv4BqqVzuuqpFlyLIwiB6NTmJwfSVWeZ_vEN7c6bHu2jJnT8.png" alt="Matt cartoons, November 2017" width="320" height="320" class="responsive-image--fallback" />
+</noscript> </div>
+ <div class="list-of-entities__icon" title="Gallery"><span class="sr-only">Gallery</span></div>
+ </a>
+ <div class="list-of-entities__item-body"> <span class="m_meta-property">
+<time class="m_meta-property__date" title="21 Nov 2017, 5:55pm" datetime="2017-11-21T05:55:02" itemprop="datePublished" pubdate="">
+<span class="m_meta-property__date-date">21 Nov 2017</span><span class="m_meta-property__date-separator">,</span> <span class="m_meta-property__date-time">5:55pm</span> </time>
+ </span>
+ <h3 class="list-of-entities__item-body-headline"><a href="/news/2017/11/01/matt-cartoons-november-2017/"><span class="sr-only">Gallery: </span>Matt cartoons, November 2017</a></h3> <span class="premium-label">Premium</span> </div>
+ </div>
+ </li>
+ <li class="list-of-entities__item list-of-entities__item--gallery " data-timestamp="1511247780000">
+ <div class="list-of-entities__item-link">
+ <a href="/news/2017/11/21/pictures-day-21-november-2017/" class="list-of-entities__item-image-container" tabindex="-1">
+ <div class="responsive-image list-of-entities__item-image " data-width="320" data-height="200" data-alt="Gallery: AFP_UF8X5" data-frz-ratio="1.60" data-src="/content/dam/news/2017/11/20/TELEMMGLPICT000147248333-small_trans_NvBQzQNjv4BqqVzuuqpFlyLIwiB6NTmJweNtxj9PZ-PQqqpH_qJ95Uw.jpeg" data-frz-src-array="[{'src':'/content/dam/news/2017/11/20/TELEMMGLPICT000147248333-xsmall_trans_NvBQzQNjv4BqqVzuuqpFlyLIwiB6NTmJweNtxj9PZ-PQqqpH_qJ95Uw.jpeg','width':160,'height':100,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqqVzuuqpFlyLIwiB6NTmJweNtxj9PZ-PQqqpH_qJ95Uw','percentageImageRatio':'62.5'},{'src':'/content/dam/news/2017/11/20/TELEMMGLPICT000147248333-xlarge_trans_NvBQzQNjv4BqqVzuuqpFlyLIwiB6NTmJweNtxj9PZ-PQqqpH_qJ95Uw.jpeg','width':1280,'height':800,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqqVzuuqpFlyLIwiB6NTmJweNtxj9PZ-PQqqpH_qJ95Uw','percentageImageRatio':'62.5'},{'src':'/content/dam/news/2017/11/20/TELEMMGLPICT000147248333-medium_trans_NvBQzQNjv4BqqVzuuqpFlyLIwiB6NTmJweNtxj9PZ-PQqqpH_qJ95Uw.jpeg','width':480,'height':300,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqqVzuuqpFlyLIwiB6NTmJweNtxj9PZ-PQqqpH_qJ95Uw','percentageImageRatio':'62.5'},{'src':'/content/dam/news/2017/11/20/TELEMMGLPICT000147248333-thumbnail_trans_NvBQzQNjv4BqqVzuuqpFlyLIwiB6NTmJweNtxj9PZ-PQqqpH_qJ95Uw.jpeg','width':140,'height':87,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqqVzuuqpFlyLIwiB6NTmJweNtxj9PZ-PQqqpH_qJ95Uw','percentageImageRatio':'62.14'},{'src':'/content/dam/news/2017/11/20/TELEMMGLPICT000147248333-small_trans_NvBQzQNjv4BqqVzuuqpFlyLIwiB6NTmJweNtxj9PZ-PQqqpH_qJ95Uw.jpeg','width':320,'height':200,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqqVzuuqpFlyLIwiB6NTmJweNtxj9PZ-PQqqpH_qJ95Uw','percentageImageRatio':'62.5'},{'src':'/content/dam/news/2017/11/20/TELEMMGLPICT000147248333-large_trans_NvBQzQNjv4BqqVzuuqpFlyLIwiB6NTmJweNtxj9PZ-PQqqpH_qJ95Uw.jpeg','width':720,'height':450,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqqVzuuqpFlyLIwiB6NTmJweNtxj9PZ-PQqqpH_qJ95Uw','percentageImageRatio':'62.5'}]" style="padding-bottom:62.5%;" data-asset-type="gallery"> <noscript>
+<img src="/content/dam/news/2017/11/20/TELEMMGLPICT000147248333-small_trans_NvBQzQNjv4BqqVzuuqpFlyLIwiB6NTmJweNtxj9PZ-PQqqpH_qJ95Uw.jpeg" alt="AFP_UF8X5" width="320" height="200" class="responsive-image--fallback" />
+</noscript> </div>
+ <div class="list-of-entities__icon" title="Gallery"><span class="sr-only">Gallery</span></div>
+ </a>
+ <div class="list-of-entities__item-body"> <span class="m_meta-property">
+<time class="m_meta-property__date" title="21 Nov 2017, 7:03am" datetime="2017-11-21T07:03:00" itemprop="datePublished" pubdate="">
+<span class="m_meta-property__date-date">21 Nov 2017</span><span class="m_meta-property__date-separator">,</span> <span class="m_meta-property__date-time">7:03am</span> </time>
+ </span>
+ <h3 class="list-of-entities__item-body-headline"><a href="/news/2017/11/21/pictures-day-21-november-2017/"><span class="sr-only">Gallery: </span>Pictures of the Day: 21 November 2017</a></h3>
+ </div>
+ </div>
+ </li>
+ </ol>
+ </div>
+ </div>
+ </div>
+ <div class="list version-5 section">
+ <div class="list-of-entities component version-5 " data-timelabels="false" data-timebreaks="false" data-tmg-dtm-nav-area="list">
+ <div class="component-header">
+ <h2 class="component-heading">News latest </h2>
+ </div>
+ <div class="js-list-of-entities component-content" data-options="{'url': '', 'noArrows': false, 'sliderMobileOnly': 'false'}">
+ <ol class="js-list-of-entities__container list-of-entities__container">
+ <li class="list-of-entities__item " data-timestamp="1511308506837">
+ <div class="list-of-entities__item-link">
+ <a href="/news/2017/11/21/environment-department-using-1400-disposable-cups-day-amid-call/" class="list-of-entities__item-image-container" tabindex="-1">
+ <div class="responsive-image list-of-entities__item-image " data-width="320" data-height="199" data-alt="There is growing pressure to tackle waste from the &quot;throwaway society&quot;" data-frz-ratio="1.60" data-src="/content/dam/news/2017/11/21/TELEMMGLPICT000128738578-small_trans_NvBQzQNjv4Bqv3hxuICTza90rxjOncu1SK8fQrJGiSc0wsot5slw59Q.jpeg" data-frz-src-array="[{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000128738578-xsmall_trans_NvBQzQNjv4Bqv3hxuICTza90rxjOncu1SK8fQrJGiSc0wsot5slw59Q.jpeg','width':160,'height':99,'imageCropTransformSuffix':'trans_NvBQzQNjv4Bqv3hxuICTza90rxjOncu1SK8fQrJGiSc0wsot5slw59Q','percentageImageRatio':'61.88'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000128738578-xlarge_trans_NvBQzQNjv4Bqv3hxuICTza90rxjOncu1SK8fQrJGiSc0wsot5slw59Q.jpeg','width':1280,'height':799,'imageCropTransformSuffix':'trans_NvBQzQNjv4Bqv3hxuICTza90rxjOncu1SK8fQrJGiSc0wsot5slw59Q','percentageImageRatio':'62.42'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000128738578-medium_trans_NvBQzQNjv4Bqv3hxuICTza90rxjOncu1SK8fQrJGiSc0wsot5slw59Q.jpeg','width':480,'height':299,'imageCropTransformSuffix':'trans_NvBQzQNjv4Bqv3hxuICTza90rxjOncu1SK8fQrJGiSc0wsot5slw59Q','percentageImageRatio':'62.29'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000128738578-thumbnail_trans_NvBQzQNjv4Bqv3hxuICTza90rxjOncu1SK8fQrJGiSc0wsot5slw59Q.jpeg','width':140,'height':87,'imageCropTransformSuffix':'trans_NvBQzQNjv4Bqv3hxuICTza90rxjOncu1SK8fQrJGiSc0wsot5slw59Q','percentageImageRatio':'62.14'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000128738578-small_trans_NvBQzQNjv4Bqv3hxuICTza90rxjOncu1SK8fQrJGiSc0wsot5slw59Q.jpeg','width':320,'height':199,'imageCropTransformSuffix':'trans_NvBQzQNjv4Bqv3hxuICTza90rxjOncu1SK8fQrJGiSc0wsot5slw59Q','percentageImageRatio':'62.19'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000128738578-large_trans_NvBQzQNjv4Bqv3hxuICTza90rxjOncu1SK8fQrJGiSc0wsot5slw59Q.jpeg','width':720,'height':449,'imageCropTransformSuffix':'trans_NvBQzQNjv4Bqv3hxuICTza90rxjOncu1SK8fQrJGiSc0wsot5slw59Q','percentageImageRatio':'62.36'}]" style="padding-bottom:62.19%;" data-asset-type="article"> <noscript>
+<img src="/content/dam/news/2017/11/21/TELEMMGLPICT000128738578-small_trans_NvBQzQNjv4Bqv3hxuICTza90rxjOncu1SK8fQrJGiSc0wsot5slw59Q.jpeg" alt="There is growing pressure to tackle waste from the &#34;throwaway society&#34;" width="320" height="199" class="responsive-image--fallback" />
+</noscript> </div>
+ </a>
+ <div class="list-of-entities__item-body"> <span class="m_meta-property">
+<time class="m_meta-property__date" title="21 Nov 2017, 11:55pm" datetime="2017-11-21T11:55:06" itemprop="datePublished" pubdate="">
+<span class="m_meta-property__date-date">21 Nov 2017</span><span class="m_meta-property__date-separator">,</span> <span class="m_meta-property__date-time">11:55pm</span> </time>
+ </span>
+ <h3 class="list-of-entities__item-body-headline"> <a href="/news/2017/11/21/environment-department-using-1400-disposable-cups-day-amid-call/">Environment department using 1,400 disposable cups a day amid call for tax</a> </h3>
+ </div>
+ </div>
+ </li>
+ <li class="list-of-entities__item " data-timestamp="1511307000000">
+ <div class="list-of-entities__item-link">
+ <a href="/science/2017/11/21/air-pollution-may-cause-infertility-significant-number-couples/" class="list-of-entities__item-image-container" tabindex="-1">
+ <div class="responsive-image list-of-entities__item-image " data-width="320" data-height="200" data-alt="Particulates may cause infertility, a new study suggests&nbsp;" data-frz-ratio="1.60" data-src="/content/dam/news/2017/01/20/PD17060670-exhaustgetty-NEWS-small_trans_NvBQzQNjv4BqgsaO8O78rhmZrDxTlQBjdGtT0gK_6EfZT336f62EI5U.jpg" data-frz-src-array="[{'src':'/content/dam/news/2017/01/20/PD17060670-exhaustgetty-NEWS-xsmall_trans_NvBQzQNjv4BqgsaO8O78rhmZrDxTlQBjdGtT0gK_6EfZT336f62EI5U.jpg','width':160,'height':100,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqgsaO8O78rhmZrDxTlQBjdGtT0gK_6EfZT336f62EI5U','percentageImageRatio':'62.5'},{'src':'/content/dam/news/2017/01/20/PD17060670-exhaustgetty-NEWS-xlarge_trans_NvBQzQNjv4BqgsaO8O78rhmZrDxTlQBjdGtT0gK_6EfZT336f62EI5U.jpg','width':1280,'height':800,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqgsaO8O78rhmZrDxTlQBjdGtT0gK_6EfZT336f62EI5U','percentageImageRatio':'62.5'},{'src':'/content/dam/news/2017/01/20/PD17060670-exhaustgetty-NEWS-medium_trans_NvBQzQNjv4BqgsaO8O78rhmZrDxTlQBjdGtT0gK_6EfZT336f62EI5U.jpg','width':480,'height':300,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqgsaO8O78rhmZrDxTlQBjdGtT0gK_6EfZT336f62EI5U','percentageImageRatio':'62.5'},{'src':'/content/dam/news/2017/01/20/PD17060670-exhaustgetty-NEWS-thumbnail_trans_NvBQzQNjv4BqgsaO8O78rhmZrDxTlQBjdGtT0gK_6EfZT336f62EI5U.jpg','width':140,'height':87,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqgsaO8O78rhmZrDxTlQBjdGtT0gK_6EfZT336f62EI5U','percentageImageRatio':'62.14'},{'src':'/content/dam/news/2017/01/20/PD17060670-exhaustgetty-NEWS-xxlarge_trans_NvBQzQNjv4BqgsaO8O78rhmZrDxTlQBjdGtT0gK_6EfZT336f62EI5U.jpg','width':1500,'height':937,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqgsaO8O78rhmZrDxTlQBjdGtT0gK_6EfZT336f62EI5U','percentageImageRatio':'62.47'},{'src':'/content/dam/news/2017/01/20/PD17060670-exhaustgetty-NEWS-small_trans_NvBQzQNjv4BqgsaO8O78rhmZrDxTlQBjdGtT0gK_6EfZT336f62EI5U.jpg','width':320,'height':200,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqgsaO8O78rhmZrDxTlQBjdGtT0gK_6EfZT336f62EI5U','percentageImageRatio':'62.5'},{'src':'/content/dam/news/2017/01/20/PD17060670-exhaustgetty-NEWS-large_trans_NvBQzQNjv4BqgsaO8O78rhmZrDxTlQBjdGtT0gK_6EfZT336f62EI5U.jpg','width':720,'height':450,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqgsaO8O78rhmZrDxTlQBjdGtT0gK_6EfZT336f62EI5U','percentageImageRatio':'62.5'}]" style="padding-bottom:62.5%;" data-asset-type="article"> <noscript>
+<img src="/content/dam/news/2017/01/20/PD17060670-exhaustgetty-NEWS-small_trans_NvBQzQNjv4BqgsaO8O78rhmZrDxTlQBjdGtT0gK_6EfZT336f62EI5U.jpg" alt="Particulates may cause infertility, a new study suggests " width="320" height="200" class="responsive-image--fallback" />
+</noscript> </div>
+ </a>
+ <div class="list-of-entities__item-body"> <span class="m_meta-property">
+<time class="m_meta-property__date" title="21 Nov 2017, 11:30pm" datetime="2017-11-21T11:30:00" itemprop="datePublished" pubdate="">
+<span class="m_meta-property__date-date">21 Nov 2017</span><span class="m_meta-property__date-separator">,</span> <span class="m_meta-property__date-time">11:30pm</span> </time>
+ </span>
+ <h3 class="list-of-entities__item-body-headline"> <a href="/science/2017/11/21/air-pollution-may-cause-infertility-significant-number-couples/">Air pollution may cause infertility for ‘significant number of couples’, warn scientists&nbsp;</a> </h3>
+ </div>
+ </div>
+ </li>
+ <li class="list-of-entities__item " data-timestamp="1511307000000">
+ <div class="list-of-entities__item-link">
+ <a href="/science/2017/11/21/gin-really-does-make-tearful-beer-wine-scientists-show/" class="list-of-entities__item-image-container" tabindex="-1">
+ <div class="responsive-image list-of-entities__item-image " data-width="320" data-height="200" data-alt="Spirits like gin make you more tearful and sad than other tipples" data-frz-ratio="1.60" data-src="/content/dam/christmas/2017/10/25/2-x-giant-gin-glasses-7563-lr-4-small_trans_NvBQzQNjv4BqBe6O56qrl4zbRlMQqI7UBFVse9JsN00kzbUr3IXHaGo.jpg" data-frz-src-array="[{'src':'/content/dam/christmas/2017/10/25/2-x-giant-gin-glasses-7563-lr-4-xsmall_trans_NvBQzQNjv4BqBe6O56qrl4zbRlMQqI7UBFVse9JsN00kzbUr3IXHaGo.jpg','width':160,'height':100,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqBe6O56qrl4zbRlMQqI7UBFVse9JsN00kzbUr3IXHaGo','percentageImageRatio':'62.5'},{'src':'/content/dam/christmas/2017/10/25/2-x-giant-gin-glasses-7563-lr-4-xlarge_trans_NvBQzQNjv4BqBe6O56qrl4zbRlMQqI7UBFVse9JsN00kzbUr3IXHaGo.jpg','width':1280,'height':800,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqBe6O56qrl4zbRlMQqI7UBFVse9JsN00kzbUr3IXHaGo','percentageImageRatio':'62.5'},{'src':'/content/dam/christmas/2017/10/25/2-x-giant-gin-glasses-7563-lr-4-medium_trans_NvBQzQNjv4BqBe6O56qrl4zbRlMQqI7UBFVse9JsN00kzbUr3IXHaGo.jpg','width':480,'height':300,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqBe6O56qrl4zbRlMQqI7UBFVse9JsN00kzbUr3IXHaGo','percentageImageRatio':'62.5'},{'src':'/content/dam/christmas/2017/10/25/2-x-giant-gin-glasses-7563-lr-4-thumbnail_trans_NvBQzQNjv4BqBe6O56qrl4zbRlMQqI7UBFVse9JsN00kzbUr3IXHaGo.jpg','width':140,'height':87,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqBe6O56qrl4zbRlMQqI7UBFVse9JsN00kzbUr3IXHaGo','percentageImageRatio':'62.14'},{'src':'/content/dam/christmas/2017/10/25/2-x-giant-gin-glasses-7563-lr-4-small_trans_NvBQzQNjv4BqBe6O56qrl4zbRlMQqI7UBFVse9JsN00kzbUr3IXHaGo.jpg','width':320,'height':200,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqBe6O56qrl4zbRlMQqI7UBFVse9JsN00kzbUr3IXHaGo','percentageImageRatio':'62.5'},{'src':'/content/dam/christmas/2017/10/25/2-x-giant-gin-glasses-7563-lr-4-large_trans_NvBQzQNjv4BqBe6O56qrl4zbRlMQqI7UBFVse9JsN00kzbUr3IXHaGo.jpg','width':720,'height':450,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqBe6O56qrl4zbRlMQqI7UBFVse9JsN00kzbUr3IXHaGo','percentageImageRatio':'62.5'}]" style="padding-bottom:62.5%;" data-asset-type="article"> <noscript>
+<img src="/content/dam/christmas/2017/10/25/2-x-giant-gin-glasses-7563-lr-4-small_trans_NvBQzQNjv4BqBe6O56qrl4zbRlMQqI7UBFVse9JsN00kzbUr3IXHaGo.jpg" alt="Spirits like gin make you more tearful and sad than other tipples" width="320" height="200" class="responsive-image--fallback" />
+</noscript> </div>
+ </a>
+ <div class="list-of-entities__item-body"> <span class="m_meta-property">
+<time class="m_meta-property__date" title="21 Nov 2017, 11:30pm" datetime="2017-11-21T11:30:00" itemprop="datePublished" pubdate="">
+<span class="m_meta-property__date-date">21 Nov 2017</span><span class="m_meta-property__date-separator">,</span> <span class="m_meta-property__date-time">11:30pm</span> </time>
+ </span>
+ <h3 class="list-of-entities__item-body-headline"> <a href="/science/2017/11/21/gin-really-does-make-tearful-beer-wine-scientists-show/">Gin really does make you more tearful than beer or wine, scientists show</a> </h3>
+ </div>
+ </div>
+ </li>
+ <li class="list-of-entities__item " data-timestamp="1511306790284">
+ <div class="list-of-entities__item-link">
+ <a href="/news/2017/11/21/us-justice-departmentthreatens-sue-harvard-asian-american-admissions/" class="list-of-entities__item-image-container" tabindex="-1">
+ <div class="responsive-image list-of-entities__item-image " data-width="320" data-height="199" data-alt="Harvard University" data-frz-ratio="1.60" data-src="/content/dam/investing/2016/12/05/Harvard-Widener-Library-small_trans_NvBQzQNjv4BqjmpNrzJ7bQ_M5ql9FqM8zvhkmh0QbmrPi3mArP3k2Co.jpg" data-frz-src-array="[{'src':'/content/dam/investing/2016/12/05/Harvard-Widener-Library-xsmall_trans_NvBQzQNjv4BqjmpNrzJ7bQ_M5ql9FqM8zvhkmh0QbmrPi3mArP3k2Co.jpg','width':160,'height':99,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqjmpNrzJ7bQ_M5ql9FqM8zvhkmh0QbmrPi3mArP3k2Co','percentageImageRatio':'61.88'},{'src':'/content/dam/investing/2016/12/05/Harvard-Widener-Library-xlarge_trans_NvBQzQNjv4BqjmpNrzJ7bQ_M5ql9FqM8zvhkmh0QbmrPi3mArP3k2Co.jpg','width':1280,'height':799,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqjmpNrzJ7bQ_M5ql9FqM8zvhkmh0QbmrPi3mArP3k2Co','percentageImageRatio':'62.42'},{'src':'/content/dam/investing/2016/12/05/Harvard-Widener-Library-medium_trans_NvBQzQNjv4BqjmpNrzJ7bQ_M5ql9FqM8zvhkmh0QbmrPi3mArP3k2Co.jpg','width':480,'height':299,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqjmpNrzJ7bQ_M5ql9FqM8zvhkmh0QbmrPi3mArP3k2Co','percentageImageRatio':'62.29'},{'src':'/content/dam/investing/2016/12/05/Harvard-Widener-Library-thumbnail_trans_NvBQzQNjv4BqjmpNrzJ7bQ_M5ql9FqM8zvhkmh0QbmrPi3mArP3k2Co.jpg','width':140,'height':87,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqjmpNrzJ7bQ_M5ql9FqM8zvhkmh0QbmrPi3mArP3k2Co','percentageImageRatio':'62.14'},{'src':'/content/dam/investing/2016/12/05/Harvard-Widener-Library-xxlarge_trans_NvBQzQNjv4BqjmpNrzJ7bQ_M5ql9FqM8zvhkmh0QbmrPi3mArP3k2Co.jpg','width':1500,'height':937,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqjmpNrzJ7bQ_M5ql9FqM8zvhkmh0QbmrPi3mArP3k2Co','percentageImageRatio':'62.47'},{'src':'/content/dam/investing/2016/12/05/Harvard-Widener-Library-small_trans_NvBQzQNjv4BqjmpNrzJ7bQ_M5ql9FqM8zvhkmh0QbmrPi3mArP3k2Co.jpg','width':320,'height':199,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqjmpNrzJ7bQ_M5ql9FqM8zvhkmh0QbmrPi3mArP3k2Co','percentageImageRatio':'62.19'},{'src':'/content/dam/investing/2016/12/05/Harvard-Widener-Library-large_trans_NvBQzQNjv4BqjmpNrzJ7bQ_M5ql9FqM8zvhkmh0QbmrPi3mArP3k2Co.jpg','width':720,'height':449,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqjmpNrzJ7bQ_M5ql9FqM8zvhkmh0QbmrPi3mArP3k2Co','percentageImageRatio':'62.36'}]" style="padding-bottom:62.19%;" data-asset-type="article"> <noscript>
+<img src="/content/dam/investing/2016/12/05/Harvard-Widener-Library-small_trans_NvBQzQNjv4BqjmpNrzJ7bQ_M5ql9FqM8zvhkmh0QbmrPi3mArP3k2Co.jpg" alt="Harvard University" width="320" height="199" class="responsive-image--fallback" />
+</noscript> </div>
+ </a>
+ <div class="list-of-entities__item-body"> <span class="m_meta-property">
+<time class="m_meta-property__date" title="21 Nov 2017, 11:26pm" datetime="2017-11-21T11:26:30" itemprop="datePublished" pubdate="">
+<span class="m_meta-property__date-date">21 Nov 2017</span><span class="m_meta-property__date-separator">,</span> <span class="m_meta-property__date-time">11:26pm</span> </time>
+ </span>
+ <h3 class="list-of-entities__item-body-headline"> <a href="/news/2017/11/21/us-justice-departmentthreatens-sue-harvard-asian-american-admissions/">US Justice Department&nbsp;threatens to sue Harvard over Asian-American admissions</a> </h3>
+ </div>
+ </div>
+ </li>
+ <li class="list-of-entities__item " data-timestamp="1511306056975">
+ <div class="list-of-entities__item-link">
+ <a href="/news/2017/11/21/bob-weinstein-paid-250000-settlement-harvey-weinsteins-accusers/" class="list-of-entities__item-image-container" tabindex="-1">
+ <div class="responsive-image list-of-entities__item-image " data-width="320" data-height="199" data-alt="Weinstein" data-frz-ratio="1.60" data-src="/content/dam/news/2017/10/14/TELEMMGLPICT000143450663-small_trans_NvBQzQNjv4BqNPhrcbGWe8WGow_9GPLWLFjph-Vmfs4RP2jFys2DpBI.jpeg" data-frz-src-array="[{'src':'/content/dam/news/2017/10/14/TELEMMGLPICT000143450663-xsmall_trans_NvBQzQNjv4BqNPhrcbGWe8WGow_9GPLWLFjph-Vmfs4RP2jFys2DpBI.jpeg','width':160,'height':99,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqNPhrcbGWe8WGow_9GPLWLFjph-Vmfs4RP2jFys2DpBI','percentageImageRatio':'61.88'},{'src':'/content/dam/news/2017/10/14/TELEMMGLPICT000143450663-xlarge_trans_NvBQzQNjv4BqNPhrcbGWe8WGow_9GPLWLFjph-Vmfs4RP2jFys2DpBI.jpeg','width':1280,'height':799,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqNPhrcbGWe8WGow_9GPLWLFjph-Vmfs4RP2jFys2DpBI','percentageImageRatio':'62.42'},{'src':'/content/dam/news/2017/10/14/TELEMMGLPICT000143450663-medium_trans_NvBQzQNjv4BqNPhrcbGWe8WGow_9GPLWLFjph-Vmfs4RP2jFys2DpBI.jpeg','width':480,'height':299,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqNPhrcbGWe8WGow_9GPLWLFjph-Vmfs4RP2jFys2DpBI','percentageImageRatio':'62.29'},{'src':'/content/dam/news/2017/10/14/TELEMMGLPICT000143450663-thumbnail_trans_NvBQzQNjv4BqNPhrcbGWe8WGow_9GPLWLFjph-Vmfs4RP2jFys2DpBI.jpeg','width':140,'height':87,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqNPhrcbGWe8WGow_9GPLWLFjph-Vmfs4RP2jFys2DpBI','percentageImageRatio':'62.14'},{'src':'/content/dam/news/2017/10/14/TELEMMGLPICT000143450663-small_trans_NvBQzQNjv4BqNPhrcbGWe8WGow_9GPLWLFjph-Vmfs4RP2jFys2DpBI.jpeg','width':320,'height':199,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqNPhrcbGWe8WGow_9GPLWLFjph-Vmfs4RP2jFys2DpBI','percentageImageRatio':'62.19'},{'src':'/content/dam/news/2017/10/14/TELEMMGLPICT000143450663-large_trans_NvBQzQNjv4BqNPhrcbGWe8WGow_9GPLWLFjph-Vmfs4RP2jFys2DpBI.jpeg','width':720,'height':449,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqNPhrcbGWe8WGow_9GPLWLFjph-Vmfs4RP2jFys2DpBI','percentageImageRatio':'62.36'}]" style="padding-bottom:62.19%;" data-asset-type="article"> <noscript>
+<img src="/content/dam/news/2017/10/14/TELEMMGLPICT000143450663-small_trans_NvBQzQNjv4BqNPhrcbGWe8WGow_9GPLWLFjph-Vmfs4RP2jFys2DpBI.jpeg" alt="Weinstein" width="320" height="199" class="responsive-image--fallback" />
+</noscript> </div>
+ </a>
+ <div class="list-of-entities__item-body"> <span class="m_meta-property">
+<time class="m_meta-property__date" title="21 Nov 2017, 11:14pm" datetime="2017-11-21T11:14:16" itemprop="datePublished" pubdate="">
+<span class="m_meta-property__date-date">21 Nov 2017</span><span class="m_meta-property__date-separator">,</span> <span class="m_meta-property__date-time">11:14pm</span> </time>
+ </span>
+ <h3 class="list-of-entities__item-body-headline"> <a href="/news/2017/11/21/bob-weinstein-paid-250000-settlement-harvey-weinsteins-accusers/">Bob Weinstein paid £250,000 settlement to Harvey Weinstein's accusers from his own bank account&nbsp;</a> </h3>
+ </div>
+ </div>
+ </li>
+ <li class="list-of-entities__item " data-timestamp="1511303400000">
+ <div class="list-of-entities__item-link">
+ <a href="/tv/2017/11/21/motherland-episode-3-review-acute-could-feel-verrucas-bedding/" class="list-of-entities__item-image-container" tabindex="-1">
+ <div class="responsive-image list-of-entities__item-image " data-width="314" data-height="196" data-alt="Diane Morgan and Paul Ready in 'Motherland'" data-frz-ratio="1.60" data-src="/content/dam/tv/2017/11/21/TELEMMGLPICT000146294380-small_trans_NvBQzQNjv4BqAl7Mg2aob6MzBzJtVKfWAxHEXWPYERD0mnAbJoT4ym4.jpeg" data-frz-src-array="[{'src':'/content/dam/tv/2017/11/21/TELEMMGLPICT000146294380-xsmall_trans_NvBQzQNjv4BqAl7Mg2aob6MzBzJtVKfWAxHEXWPYERD0mnAbJoT4ym4.jpeg','width':157,'height':98,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqAl7Mg2aob6MzBzJtVKfWAxHEXWPYERD0mnAbJoT4ym4','percentageImageRatio':'62.42'},{'src':'/content/dam/tv/2017/11/21/TELEMMGLPICT000146294380-xlarge_trans_NvBQzQNjv4BqAl7Mg2aob6MzBzJtVKfWAxHEXWPYERD0mnAbJoT4ym4.jpeg','width':1258,'height':786,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqAl7Mg2aob6MzBzJtVKfWAxHEXWPYERD0mnAbJoT4ym4','percentageImageRatio':'62.48'},{'src':'/content/dam/tv/2017/11/21/TELEMMGLPICT000146294380-medium_trans_NvBQzQNjv4BqAl7Mg2aob6MzBzJtVKfWAxHEXWPYERD0mnAbJoT4ym4.jpeg','width':471,'height':294,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqAl7Mg2aob6MzBzJtVKfWAxHEXWPYERD0mnAbJoT4ym4','percentageImageRatio':'62.42'},{'src':'/content/dam/tv/2017/11/21/TELEMMGLPICT000146294380-thumbnail_trans_NvBQzQNjv4BqAl7Mg2aob6MzBzJtVKfWAxHEXWPYERD0mnAbJoT4ym4.jpeg','width':137,'height':85,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqAl7Mg2aob6MzBzJtVKfWAxHEXWPYERD0mnAbJoT4ym4','percentageImageRatio':'62.04'},{'src':'/content/dam/tv/2017/11/21/TELEMMGLPICT000146294380-small_trans_NvBQzQNjv4BqAl7Mg2aob6MzBzJtVKfWAxHEXWPYERD0mnAbJoT4ym4.jpeg','width':314,'height':196,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqAl7Mg2aob6MzBzJtVKfWAxHEXWPYERD0mnAbJoT4ym4','percentageImageRatio':'62.42'},{'src':'/content/dam/tv/2017/11/21/TELEMMGLPICT000146294380-large_trans_NvBQzQNjv4BqAl7Mg2aob6MzBzJtVKfWAxHEXWPYERD0mnAbJoT4ym4.jpeg','width':707,'height':442,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqAl7Mg2aob6MzBzJtVKfWAxHEXWPYERD0mnAbJoT4ym4','percentageImageRatio':'62.52'}]" style="padding-bottom:62.42%;" data-asset-type="article"> <noscript>
+<img src="/content/dam/tv/2017/11/21/TELEMMGLPICT000146294380-small_trans_NvBQzQNjv4BqAl7Mg2aob6MzBzJtVKfWAxHEXWPYERD0mnAbJoT4ym4.jpeg" alt="Diane Morgan and Paul Ready in &#39;Motherland&#39;" width="314" height="196" class="responsive-image--fallback" />
+</noscript> </div>
+ </a>
+ <div class="list-of-entities__item-body"> <span class="m_meta-property">
+<time class="m_meta-property__date" title="21 Nov 2017, 10:30pm" datetime="2017-11-21T10:30:00" itemprop="datePublished" pubdate="">
+<span class="m_meta-property__date-date">21 Nov 2017</span><span class="m_meta-property__date-separator">,</span> <span class="m_meta-property__date-time">10:30pm</span> </time>
+ </span>
+ <h3 class="list-of-entities__item-body-headline"> <a href="/tv/2017/11/21/motherland-episode-3-review-acute-could-feel-verrucas-bedding/">Motherland, episode 3 review: 'So acute that you could feel the verrucas bedding in'</a> </h3>
+ <div class="entity-property component entity-property-stars">
+ <div class="component-content"> <span class="entity-property-container" itemprop="reviewRating" itemscope="https://schema.org/Rating" itemtype="https://schema.org/Rating">
+<meta itemprop="ratingValue" content="4" />
+<span class="entity-property-numeric-score">4</span> <span class="entity-property-numeric-bar">
+<span class="entity-property-numeric-bar-item is-active"></span> <span class="entity-property-numeric-bar-item is-active"></span> <span class="entity-property-numeric-bar-item is-active"></span> <span class="entity-property-numeric-bar-item is-active"></span> <span class="entity-property-numeric-bar-item"></span> </span>
+ </span>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="list-of-entities__item " data-timestamp="1511301525024">
+ <div class="list-of-entities__item-link">
+ <a href="/news/2017/11/21/jack-maynard-leaves-celebrity-get-defend-against-allegations/" class="list-of-entities__item-image-container" tabindex="-1">
+ <div class="responsive-image list-of-entities__item-image " data-width="203" data-height="126" data-alt="Jack Maynard&nbsp;" data-frz-ratio="1.60" data-src="/content/dam/news/2017/11/21/TELEMMGLPICT000147027203-small_trans_NvBQzQNjv4BqNMeFAoswBIpPUdBUI4DbFnM_F2JqCW-btHKO_wbJPDA.jpeg" data-frz-src-array="[{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147027203-xsmall_trans_NvBQzQNjv4BqNMeFAoswBIpPUdBUI4DbFnM_F2JqCW-btHKO_wbJPDA.jpeg','width':101,'height':63,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqNMeFAoswBIpPUdBUI4DbFnM_F2JqCW-btHKO_wbJPDA','percentageImageRatio':'62.38'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147027203-xlarge_trans_NvBQzQNjv4BqNMeFAoswBIpPUdBUI4DbFnM_F2JqCW-btHKO_wbJPDA.jpeg','width':814,'height':508,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqNMeFAoswBIpPUdBUI4DbFnM_F2JqCW-btHKO_wbJPDA','percentageImageRatio':'62.41'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147027203-medium_trans_NvBQzQNjv4BqNMeFAoswBIpPUdBUI4DbFnM_F2JqCW-btHKO_wbJPDA.jpeg','width':305,'height':190,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqNMeFAoswBIpPUdBUI4DbFnM_F2JqCW-btHKO_wbJPDA','percentageImageRatio':'62.3'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147027203-thumbnail_trans_NvBQzQNjv4BqNMeFAoswBIpPUdBUI4DbFnM_F2JqCW-btHKO_wbJPDA.jpeg','width':89,'height':55,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqNMeFAoswBIpPUdBUI4DbFnM_F2JqCW-btHKO_wbJPDA','percentageImageRatio':'61.8'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147027203-small_trans_NvBQzQNjv4BqNMeFAoswBIpPUdBUI4DbFnM_F2JqCW-btHKO_wbJPDA.jpeg','width':203,'height':126,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqNMeFAoswBIpPUdBUI4DbFnM_F2JqCW-btHKO_wbJPDA','percentageImageRatio':'62.07'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147027203-large_trans_NvBQzQNjv4BqNMeFAoswBIpPUdBUI4DbFnM_F2JqCW-btHKO_wbJPDA.jpeg','width':458,'height':286,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqNMeFAoswBIpPUdBUI4DbFnM_F2JqCW-btHKO_wbJPDA','percentageImageRatio':'62.45'}]" style="padding-bottom:62.07%;" data-asset-type="article"> <noscript>
+<img src="/content/dam/news/2017/11/21/TELEMMGLPICT000147027203-small_trans_NvBQzQNjv4BqNMeFAoswBIpPUdBUI4DbFnM_F2JqCW-btHKO_wbJPDA.jpeg" alt="Jack Maynard " width="203" height="126" class="responsive-image--fallback" />
+</noscript> </div>
+ </a>
+ <div class="list-of-entities__item-body"> <span class="m_meta-property">
+<time class="m_meta-property__date" title="21 Nov 2017, 9:58pm" datetime="2017-11-21T09:58:45" itemprop="datePublished" pubdate="">
+<span class="m_meta-property__date-date">21 Nov 2017</span><span class="m_meta-property__date-separator">,</span> <span class="m_meta-property__date-time">9:58pm</span> </time>
+ </span>
+ <h3 class="list-of-entities__item-body-headline"> <a href="/news/2017/11/21/jack-maynard-leaves-celebrity-get-defend-against-allegations/">Jack Maynard leaves I'm A Celebrity ... Get Me Out Of Here to defend himself against 'allegations'</a> </h3>
+ </div>
+ </div>
+ </li>
+ <li class="list-of-entities__item video" data-timestamp="1511300903479">
+ <div class="list-of-entities__item-link">
+ <a href="/news/2017/11/21/family-woolly-mammoth-skeletons-fail-sell-auction/" class="list-of-entities__item-image-container" tabindex="-1">
+ <div class="video-icon-wrapper">
+ <div class="video-icon video-icon--text-image component">
+ <div class="video-icon__play">
+ <div class="video-icon__arrow"></div>
+ </div> <time class="video-icon__duration" datetime="PT0H0M53S">00:53
+</time> </div> <img class="responsive-image list-of-entities__item-image" width="320" height="180" alt="Family of woolly mammoth skeletons fail to sell at auction" data-frz-ratio="1.78" src="/content/dam/video_previews/f/o/foyzhnzde6x9hfbbkxn9dumgnkyzdey9-small.jpg" data-frz-src-array="[{'src':'/content/dam/video_previews/f/o/foyzhnzde6x9hfbbkxn9dumgnkyzdey9-xsmall.jpg','width':160,'height':90,'percentageImageRatio':'56.25'},{'src':'/content/dam/video_previews/f/o/foyzhnzde6x9hfbbkxn9dumgnkyzdey9-xlarge.jpg','width':1280,'height':720,'percentageImageRatio':'56.25'},{'src':'/content/dam/video_previews/f/o/foyzhnzde6x9hfbbkxn9dumgnkyzdey9-medium.jpg','width':480,'height':270,'percentageImageRatio':'56.25'},{'src':'/content/dam/video_previews/f/o/foyzhnzde6x9hfbbkxn9dumgnkyzdey9-thumbnail.jpg','width':140,'height':78,'percentageImageRatio':'55.71'},{'src':'/content/dam/video_previews/f/o/foyzhnzde6x9hfbbkxn9dumgnkyzdey9-small.jpg','width':320,'height':180,'percentageImageRatio':'56.25'},{'src':'/content/dam/video_previews/f/o/foyzhnzde6x9hfbbkxn9dumgnkyzdey9-large.jpg','width':720,'height':405,'percentageImageRatio':'56.25'}]" data-asset-type="article" /> </div>
+ </a>
+ <div class="list-of-entities__item-body">
+ <div class="video-icon video-icon--text-only component">
+ <div class="video-icon__play">
+ <div class="video-icon__arrow"></div>
+ </div>
+ </div> <span class="m_meta-property">
+<time class="m_meta-property__date" title="21 Nov 2017, 9:48pm" datetime="2017-11-21T09:48:23" itemprop="datePublished" pubdate="">
+<span class="m_meta-property__date-date">21 Nov 2017</span><span class="m_meta-property__date-separator">,</span> <span class="m_meta-property__date-time">9:48pm</span> </time>
+ </span>
+ <h3 class="list-of-entities__item-body-headline"> <a href="/news/2017/11/21/family-woolly-mammoth-skeletons-fail-sell-auction/">Family of woolly mammoth skeletons fail to sell at auction</a> </h3>
+ </div>
+ </div>
+ </li>
+ <li class="list-of-entities__item comment premium" data-timestamp="1511300700000">
+ <div class="list-of-entities__item-link">
+ <a href="/news/2017/11/21/budget-chance-tories-take-labour-upbeat-vision/" class="list-of-entities__item-image-container" tabindex="-1">
+ <div class="responsive-image list-of-entities__item-image " data-width="277" data-height="173" data-alt="Comment: The Chancellor sits writing at his desk in a red-painted, book-lined room. The red despatch box is on the desk in the forefront of the picture." data-frz-ratio="1.60" data-src="/content/dam/news/2017/11/21/TELEMMGLPICT000147334675-small_trans_NvBQzQNjv4BqNqFk4v0JrboYlgBJkDdYH9fWX8xD5k0qm7Qod1I-j54.jpeg" data-frz-src-array="[{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147334675-xsmall_trans_NvBQzQNjv4BqNqFk4v0JrboYlgBJkDdYH9fWX8xD5k0qm7Qod1I-j54.jpeg','width':138,'height':86,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqNqFk4v0JrboYlgBJkDdYH9fWX8xD5k0qm7Qod1I-j54','percentageImageRatio':'62.32'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147334675-xlarge_trans_NvBQzQNjv4BqNqFk4v0JrboYlgBJkDdYH9fWX8xD5k0qm7Qod1I-j54.jpeg','width':1111,'height':695,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqNqFk4v0JrboYlgBJkDdYH9fWX8xD5k0qm7Qod1I-j54','percentageImageRatio':'62.56'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147334675-medium_trans_NvBQzQNjv4BqNqFk4v0JrboYlgBJkDdYH9fWX8xD5k0qm7Qod1I-j54.jpeg','width':416,'height':260,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqNqFk4v0JrboYlgBJkDdYH9fWX8xD5k0qm7Qod1I-j54','percentageImageRatio':'62.5'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147334675-thumbnail_trans_NvBQzQNjv4BqNqFk4v0JrboYlgBJkDdYH9fWX8xD5k0qm7Qod1I-j54.jpeg','width':121,'height':75,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqNqFk4v0JrboYlgBJkDdYH9fWX8xD5k0qm7Qod1I-j54','percentageImageRatio':'61.98'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147334675-small_trans_NvBQzQNjv4BqNqFk4v0JrboYlgBJkDdYH9fWX8xD5k0qm7Qod1I-j54.jpeg','width':277,'height':173,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqNqFk4v0JrboYlgBJkDdYH9fWX8xD5k0qm7Qod1I-j54','percentageImageRatio':'62.45'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147334675-large_trans_NvBQzQNjv4BqNqFk4v0JrboYlgBJkDdYH9fWX8xD5k0qm7Qod1I-j54.jpeg','width':625,'height':391,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqNqFk4v0JrboYlgBJkDdYH9fWX8xD5k0qm7Qod1I-j54','percentageImageRatio':'62.56'}]" style="padding-bottom:62.45%;" data-asset-type="article"> <noscript>
+<img src="/content/dam/news/2017/11/21/TELEMMGLPICT000147334675-small_trans_NvBQzQNjv4BqNqFk4v0JrboYlgBJkDdYH9fWX8xD5k0qm7Qod1I-j54.jpeg" alt="The Chancellor sits writing at his desk in a red-painted, book-lined room. The red despatch box is on the desk in the forefront of the picture." width="277" height="173" class="responsive-image--fallback" />
+</noscript> </div>
+ </a>
+ <div class="list-of-entities__item-body"> <span class="m_meta-property">
+<time class="m_meta-property__date" title="21 Nov 2017, 9:45pm" datetime="2017-11-21T09:45:00" itemprop="datePublished" pubdate="">
+<span class="m_meta-property__date-date">21 Nov 2017</span><span class="m_meta-property__date-separator">,</span> <span class="m_meta-property__date-time">9:45pm</span> </time>
+ </span>
+ <h3 class="list-of-entities__item-body-headline"> <a href="/news/2017/11/21/budget-chance-tories-take-labour-upbeat-vision/"><span class="sr-only">Comment: </span>The Budget is a chance for the Tories to take on Labour with an upbeat vision</a> </h3>
+ <div class="list-of-entities__item-author-name"> Telegraph View </div> <span class="premium-label">Premium</span> </div>
+ <div class="list-of-entities__item-author-image">
+ <div class="list-of-entities__item-author-image-container"> </div>
+ </div>
+ </div>
+ </li>
+ <li class="list-of-entities__item premium" data-timestamp="1511300077571">
+ <div class="list-of-entities__item-link">
+ <a href="/news/2017/11/21/euphoric-peaceful-chaotic-end-robert-mugabes-37-year-rule-zimbabwe/" class="list-of-entities__item-image-container" tabindex="-1">
+ <div class="responsive-image list-of-entities__item-image " data-width="320" data-height="199" data-alt="Zimbabweans celebrate outside the parliament building immediately after hearing the news that President Robert Mugabe had resigned, in downtown Harare, Zimbabwe Tuesday, Nov. 21, 2017" data-frz-ratio="1.60" data-src="/content/dam/news/2017/11/21/TELEMMGLPICT000147335645-small_trans_NvBQzQNjv4BqniLs_ck1w-iIu15kYzVq2artcu5mb6i7I-m0HMDIL-E.jpeg" data-frz-src-array="[{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147335645-xsmall_trans_NvBQzQNjv4BqniLs_ck1w-iIu15kYzVq2artcu5mb6i7I-m0HMDIL-E.jpeg','width':160,'height':99,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqniLs_ck1w-iIu15kYzVq2artcu5mb6i7I-m0HMDIL-E','percentageImageRatio':'61.88'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147335645-xlarge_trans_NvBQzQNjv4BqniLs_ck1w-iIu15kYzVq2artcu5mb6i7I-m0HMDIL-E.jpeg','width':1280,'height':799,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqniLs_ck1w-iIu15kYzVq2artcu5mb6i7I-m0HMDIL-E','percentageImageRatio':'62.42'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147335645-medium_trans_NvBQzQNjv4BqniLs_ck1w-iIu15kYzVq2artcu5mb6i7I-m0HMDIL-E.jpeg','width':480,'height':299,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqniLs_ck1w-iIu15kYzVq2artcu5mb6i7I-m0HMDIL-E','percentageImageRatio':'62.29'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147335645-thumbnail_trans_NvBQzQNjv4BqniLs_ck1w-iIu15kYzVq2artcu5mb6i7I-m0HMDIL-E.jpeg','width':140,'height':87,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqniLs_ck1w-iIu15kYzVq2artcu5mb6i7I-m0HMDIL-E','percentageImageRatio':'62.14'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147335645-small_trans_NvBQzQNjv4BqniLs_ck1w-iIu15kYzVq2artcu5mb6i7I-m0HMDIL-E.jpeg','width':320,'height':199,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqniLs_ck1w-iIu15kYzVq2artcu5mb6i7I-m0HMDIL-E','percentageImageRatio':'62.19'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147335645-large_trans_NvBQzQNjv4BqniLs_ck1w-iIu15kYzVq2artcu5mb6i7I-m0HMDIL-E.jpeg','width':720,'height':449,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqniLs_ck1w-iIu15kYzVq2artcu5mb6i7I-m0HMDIL-E','percentageImageRatio':'62.36'}]" style="padding-bottom:62.19%;" data-asset-type="article"> <noscript>
+<img src="/content/dam/news/2017/11/21/TELEMMGLPICT000147335645-small_trans_NvBQzQNjv4BqniLs_ck1w-iIu15kYzVq2artcu5mb6i7I-m0HMDIL-E.jpeg" alt="Zimbabweans celebrate outside the parliament building immediately after hearing the news that President Robert Mugabe had resigned, in downtown Harare, Zimbabwe Tuesday, Nov. 21, 2017" width="320" height="199" class="responsive-image--fallback" />
+</noscript> </div>
+ </a>
+ <div class="list-of-entities__item-body"> <span class="m_meta-property">
+<time class="m_meta-property__date" title="21 Nov 2017, 9:34pm" datetime="2017-11-21T09:34:37" itemprop="datePublished" pubdate="">
+<span class="m_meta-property__date-date">21 Nov 2017</span><span class="m_meta-property__date-separator">,</span> <span class="m_meta-property__date-time">9:34pm</span> </time>
+ </span>
+ <h3 class="list-of-entities__item-body-headline"> <a href="/news/2017/11/21/euphoric-peaceful-chaotic-end-robert-mugabes-37-year-rule-zimbabwe/">A euphoric and peaceful, if chaotic, end to Robert Mugabe's 37-year rule of Zimbabwe</a> </h3> <span class="premium-label">Premium</span> </div>
+ </div>
+ </li>
+ <li class="list-of-entities__item premium" data-timestamp="1511299800000">
+ <div class="list-of-entities__item-link">
+ <a href="/news/2017/11/21/theresa-mays-relationship-philip-hammond-hits-new-low-botched/" class="list-of-entities__item-image-container" tabindex="-1">
+ <div class="responsive-image list-of-entities__item-image " data-width="317" data-height="198" data-alt="may and hammond" data-frz-ratio="1.60" data-src="/content/dam/news/2017/11/21/TELEMMGLPICT000147232638-small_trans_NvBQzQNjv4BqwvkV6XTHOLaZwP-2f_zGabuGDFIrKF9eywxSWQ9UBzU.jpeg" data-frz-src-array="[{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147232638-xsmall_trans_NvBQzQNjv4BqwvkV6XTHOLaZwP-2f_zGabuGDFIrKF9eywxSWQ9UBzU.jpeg','width':158,'height':98,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqwvkV6XTHOLaZwP-2f_zGabuGDFIrKF9eywxSWQ9UBzU','percentageImageRatio':'62.03'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147232638-xlarge_trans_NvBQzQNjv4BqwvkV6XTHOLaZwP-2f_zGabuGDFIrKF9eywxSWQ9UBzU.jpeg','width':1271,'height':794,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqwvkV6XTHOLaZwP-2f_zGabuGDFIrKF9eywxSWQ9UBzU','percentageImageRatio':'62.47'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147232638-medium_trans_NvBQzQNjv4BqwvkV6XTHOLaZwP-2f_zGabuGDFIrKF9eywxSWQ9UBzU.jpeg','width':476,'height':297,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqwvkV6XTHOLaZwP-2f_zGabuGDFIrKF9eywxSWQ9UBzU','percentageImageRatio':'62.39'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147232638-thumbnail_trans_NvBQzQNjv4BqwvkV6XTHOLaZwP-2f_zGabuGDFIrKF9eywxSWQ9UBzU.jpeg','width':139,'height':86,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqwvkV6XTHOLaZwP-2f_zGabuGDFIrKF9eywxSWQ9UBzU','percentageImageRatio':'61.87'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147232638-small_trans_NvBQzQNjv4BqwvkV6XTHOLaZwP-2f_zGabuGDFIrKF9eywxSWQ9UBzU.jpeg','width':317,'height':198,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqwvkV6XTHOLaZwP-2f_zGabuGDFIrKF9eywxSWQ9UBzU','percentageImageRatio':'62.46'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147232638-large_trans_NvBQzQNjv4BqwvkV6XTHOLaZwP-2f_zGabuGDFIrKF9eywxSWQ9UBzU.jpeg','width':715,'height':446,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqwvkV6XTHOLaZwP-2f_zGabuGDFIrKF9eywxSWQ9UBzU','percentageImageRatio':'62.38'}]" style="padding-bottom:62.46%;" data-asset-type="article"> <noscript>
+<img src="/content/dam/news/2017/11/21/TELEMMGLPICT000147232638-small_trans_NvBQzQNjv4BqwvkV6XTHOLaZwP-2f_zGabuGDFIrKF9eywxSWQ9UBzU.jpeg" alt="may and hammond" width="317" height="198" class="responsive-image--fallback" />
+</noscript> </div>
+ </a>
+ <div class="list-of-entities__item-body"> <span class="m_meta-property">
+<time class="m_meta-property__date" title="21 Nov 2017, 9:30pm" datetime="2017-11-21T09:30:00" itemprop="datePublished" pubdate="">
+<span class="m_meta-property__date-date">21 Nov 2017</span><span class="m_meta-property__date-separator">,</span> <span class="m_meta-property__date-time">9:30pm</span> </time>
+ </span>
+ <h3 class="list-of-entities__item-body-headline"> <a href="/news/2017/11/21/theresa-mays-relationship-philip-hammond-hits-new-low-botched/">May's Budget war with Hammond amid fears Chancellor's financial statement will fall flat</a> </h3> <span class="premium-label">Premium</span> </div>
+ </div>
+ </li>
+ <li class="list-of-entities__item " data-timestamp="1511299793792">
+ <div class="list-of-entities__item-link">
+ <a href="/news/2017/11/21/cancer-patients-18-times-likely-survive-early-diagnosis/" class="list-of-entities__item-image-container" tabindex="-1">
+ <div class="responsive-image list-of-entities__item-image " data-width="320" data-height="199" data-alt="Simon Stevens" data-frz-ratio="1.60" data-src="/content/dam/news/2017/11/21/TELEMMGLPICT000146030761-small_trans_NvBQzQNjv4Bq2otPdXgCf1SUjNLHarbxGinW8BLq_9yFhLlXda78vfw.jpeg" data-frz-src-array="[{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000146030761-xsmall_trans_NvBQzQNjv4Bq2otPdXgCf1SUjNLHarbxGinW8BLq_9yFhLlXda78vfw.jpeg','width':160,'height':99,'imageCropTransformSuffix':'trans_NvBQzQNjv4Bq2otPdXgCf1SUjNLHarbxGinW8BLq_9yFhLlXda78vfw','percentageImageRatio':'61.88'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000146030761-xlarge_trans_NvBQzQNjv4Bq2otPdXgCf1SUjNLHarbxGinW8BLq_9yFhLlXda78vfw.jpeg','width':1280,'height':799,'imageCropTransformSuffix':'trans_NvBQzQNjv4Bq2otPdXgCf1SUjNLHarbxGinW8BLq_9yFhLlXda78vfw','percentageImageRatio':'62.42'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000146030761-medium_trans_NvBQzQNjv4Bq2otPdXgCf1SUjNLHarbxGinW8BLq_9yFhLlXda78vfw.jpeg','width':480,'height':299,'imageCropTransformSuffix':'trans_NvBQzQNjv4Bq2otPdXgCf1SUjNLHarbxGinW8BLq_9yFhLlXda78vfw','percentageImageRatio':'62.29'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000146030761-thumbnail_trans_NvBQzQNjv4Bq2otPdXgCf1SUjNLHarbxGinW8BLq_9yFhLlXda78vfw.jpeg','width':140,'height':87,'imageCropTransformSuffix':'trans_NvBQzQNjv4Bq2otPdXgCf1SUjNLHarbxGinW8BLq_9yFhLlXda78vfw','percentageImageRatio':'62.14'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000146030761-small_trans_NvBQzQNjv4Bq2otPdXgCf1SUjNLHarbxGinW8BLq_9yFhLlXda78vfw.jpeg','width':320,'height':199,'imageCropTransformSuffix':'trans_NvBQzQNjv4Bq2otPdXgCf1SUjNLHarbxGinW8BLq_9yFhLlXda78vfw','percentageImageRatio':'62.19'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000146030761-large_trans_NvBQzQNjv4Bq2otPdXgCf1SUjNLHarbxGinW8BLq_9yFhLlXda78vfw.jpeg','width':720,'height':449,'imageCropTransformSuffix':'trans_NvBQzQNjv4Bq2otPdXgCf1SUjNLHarbxGinW8BLq_9yFhLlXda78vfw','percentageImageRatio':'62.36'}]" style="padding-bottom:62.19%;" data-asset-type="article"> <noscript>
+<img src="/content/dam/news/2017/11/21/TELEMMGLPICT000146030761-small_trans_NvBQzQNjv4Bq2otPdXgCf1SUjNLHarbxGinW8BLq_9yFhLlXda78vfw.jpeg" alt="Simon Stevens" width="320" height="199" class="responsive-image--fallback" />
+</noscript> </div>
+ </a>
+ <div class="list-of-entities__item-body"> <span class="m_meta-property">
+<time class="m_meta-property__date" title="21 Nov 2017, 9:29pm" datetime="2017-11-21T09:29:53" itemprop="datePublished" pubdate="">
+<span class="m_meta-property__date-date">21 Nov 2017</span><span class="m_meta-property__date-separator">,</span> <span class="m_meta-property__date-time">9:29pm</span> </time>
+ </span>
+ <h3 class="list-of-entities__item-body-headline"> <a href="/news/2017/11/21/cancer-patients-18-times-likely-survive-early-diagnosis/">Cancer patients 18 times more likely to survive with early diagnosis</a> </h3>
+ </div>
+ </div>
+ </li>
+ <li class="list-of-entities__item " data-timestamp="1511298594833">
+ <div class="list-of-entities__item-link">
+ <a href="/news/2017/11/21/prosecutors-consider-charges-alleged-football-bribery/" class="list-of-entities__item-image-container" tabindex="-1">
+ <div class="responsive-image list-of-entities__item-image " data-width="320" data-height="199" data-alt="Tommy Wright" data-frz-ratio="1.60" data-src="/content/dam/news/2017/11/21/TELEMMGLPICT000109796759-small_trans_NvBQzQNjv4BqaRL1kC4G7DT9ZsZm6Pe3PehAFAI_f6ud569StXyOKH0.jpeg" data-frz-src-array="[{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000109796759-xsmall_trans_NvBQzQNjv4BqaRL1kC4G7DT9ZsZm6Pe3PehAFAI_f6ud569StXyOKH0.jpeg','width':160,'height':99,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqaRL1kC4G7DT9ZsZm6Pe3PehAFAI_f6ud569StXyOKH0','percentageImageRatio':'61.88'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000109796759-xlarge_trans_NvBQzQNjv4BqaRL1kC4G7DT9ZsZm6Pe3PehAFAI_f6ud569StXyOKH0.jpeg','width':1280,'height':799,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqaRL1kC4G7DT9ZsZm6Pe3PehAFAI_f6ud569StXyOKH0','percentageImageRatio':'62.42'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000109796759-medium_trans_NvBQzQNjv4BqaRL1kC4G7DT9ZsZm6Pe3PehAFAI_f6ud569StXyOKH0.jpeg','width':480,'height':299,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqaRL1kC4G7DT9ZsZm6Pe3PehAFAI_f6ud569StXyOKH0','percentageImageRatio':'62.29'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000109796759-thumbnail_trans_NvBQzQNjv4BqaRL1kC4G7DT9ZsZm6Pe3PehAFAI_f6ud569StXyOKH0.jpeg','width':140,'height':87,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqaRL1kC4G7DT9ZsZm6Pe3PehAFAI_f6ud569StXyOKH0','percentageImageRatio':'62.14'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000109796759-small_trans_NvBQzQNjv4BqaRL1kC4G7DT9ZsZm6Pe3PehAFAI_f6ud569StXyOKH0.jpeg','width':320,'height':199,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqaRL1kC4G7DT9ZsZm6Pe3PehAFAI_f6ud569StXyOKH0','percentageImageRatio':'62.19'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000109796759-large_trans_NvBQzQNjv4BqaRL1kC4G7DT9ZsZm6Pe3PehAFAI_f6ud569StXyOKH0.jpeg','width':720,'height':449,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqaRL1kC4G7DT9ZsZm6Pe3PehAFAI_f6ud569StXyOKH0','percentageImageRatio':'62.36'}]" style="padding-bottom:62.19%;" data-asset-type="article"> <noscript>
+<img src="/content/dam/news/2017/11/21/TELEMMGLPICT000109796759-small_trans_NvBQzQNjv4BqaRL1kC4G7DT9ZsZm6Pe3PehAFAI_f6ud569StXyOKH0.jpeg" alt="Tommy Wright" width="320" height="199" class="responsive-image--fallback" />
+</noscript> </div>
+ </a>
+ <div class="list-of-entities__item-body"> <span class="m_meta-property">
+<time class="m_meta-property__date" title="21 Nov 2017, 9:09pm" datetime="2017-11-21T09:09:54" itemprop="datePublished" pubdate="">
+<span class="m_meta-property__date-date">21 Nov 2017</span><span class="m_meta-property__date-separator">,</span> <span class="m_meta-property__date-time">9:09pm</span> </time>
+ </span>
+ <h3 class="list-of-entities__item-body-headline"> <a href="/news/2017/11/21/prosecutors-consider-charges-alleged-football-bribery/">Prosecutors consider charges over alleged football bribery&nbsp;</a> </h3>
+ </div>
+ </div>
+ </li>
+ <li class="list-of-entities__item comment premium" data-timestamp="1511298000000">
+ <div class="list-of-entities__item-link">
+ <a href="/news/2017/11/21/britains-entitlement-culture-has-won-paying-price/" class="list-of-entities__item-image-container" tabindex="-1">
+ <div class="responsive-image list-of-entities__item-image " data-width="319" data-height="199" data-alt="Comment: Philip Hammond in a science laboratory" data-frz-ratio="1.60" data-src="/content/dam/news/2017/11/21/TELEMMGLPICT000144636953-small_trans_NvBQzQNjv4BqLfD0EOB5CEFXzCF_NHe0S5xWLfs5mAvkbXYQqrLnBas.jpeg" data-frz-src-array="[{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000144636953-xsmall_trans_NvBQzQNjv4BqLfD0EOB5CEFXzCF_NHe0S5xWLfs5mAvkbXYQqrLnBas.jpeg','width':159,'height':99,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqLfD0EOB5CEFXzCF_NHe0S5xWLfs5mAvkbXYQqrLnBas','percentageImageRatio':'62.26'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000144636953-xlarge_trans_NvBQzQNjv4BqLfD0EOB5CEFXzCF_NHe0S5xWLfs5mAvkbXYQqrLnBas.jpeg','width':1279,'height':799,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqLfD0EOB5CEFXzCF_NHe0S5xWLfs5mAvkbXYQqrLnBas','percentageImageRatio':'62.47'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000144636953-medium_trans_NvBQzQNjv4BqLfD0EOB5CEFXzCF_NHe0S5xWLfs5mAvkbXYQqrLnBas.jpeg','width':479,'height':299,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqLfD0EOB5CEFXzCF_NHe0S5xWLfs5mAvkbXYQqrLnBas','percentageImageRatio':'62.42'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000144636953-thumbnail_trans_NvBQzQNjv4BqLfD0EOB5CEFXzCF_NHe0S5xWLfs5mAvkbXYQqrLnBas.jpeg','width':139,'height':86,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqLfD0EOB5CEFXzCF_NHe0S5xWLfs5mAvkbXYQqrLnBas','percentageImageRatio':'61.87'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000144636953-small_trans_NvBQzQNjv4BqLfD0EOB5CEFXzCF_NHe0S5xWLfs5mAvkbXYQqrLnBas.jpeg','width':319,'height':199,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqLfD0EOB5CEFXzCF_NHe0S5xWLfs5mAvkbXYQqrLnBas','percentageImageRatio':'62.38'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000144636953-large_trans_NvBQzQNjv4BqLfD0EOB5CEFXzCF_NHe0S5xWLfs5mAvkbXYQqrLnBas.jpeg','width':719,'height':449,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqLfD0EOB5CEFXzCF_NHe0S5xWLfs5mAvkbXYQqrLnBas','percentageImageRatio':'62.45'}]" style="padding-bottom:62.38%;" data-asset-type="article"> <noscript>
+<img src="/content/dam/news/2017/11/21/TELEMMGLPICT000144636953-small_trans_NvBQzQNjv4BqLfD0EOB5CEFXzCF_NHe0S5xWLfs5mAvkbXYQqrLnBas.jpeg" alt="Philip Hammond in a science laboratory" width="319" height="199" class="responsive-image--fallback" />
+</noscript> </div>
+ </a>
+ <div class="list-of-entities__item-body"> <span class="m_meta-property">
+<time class="m_meta-property__date" title="21 Nov 2017, 9:00pm" datetime="2017-11-21T09:00:00" itemprop="datePublished" pubdate="">
+<span class="m_meta-property__date-date">21 Nov 2017</span><span class="m_meta-property__date-separator">,</span> <span class="m_meta-property__date-time">9:00pm</span> </time>
+ </span>
+ <h3 class="list-of-entities__item-body-headline"> <a href="/news/2017/11/21/britains-entitlement-culture-has-won-paying-price/"><span class="sr-only">Comment: </span>Britain's entitlement culture has won, and we're all paying the price</a> </h3>
+ <div class="list-of-entities__item-author-name"> Philip Johnston </div> <span class="premium-label">Premium</span> </div>
+ <div class="list-of-entities__item-author-image">
+ <div class="list-of-entities__item-author-image-container"> <img class="responsive-image " width="320" height="320" alt="Philip Johnston" data-frz-ratio="1.00" src="/content/dam/Author%20photos/Philip_Johnston-small.png" data-frz-src-array="[{'src':'/content/dam/Author%20photos/Philip_Johnston-thumbnail.png','width':140,'height':140,'percentageImageRatio':'100'},{'src':'/content/dam/Author%20photos/Philip_Johnston-xlarge.png','width':1280,'height':1280,'percentageImageRatio':'100'},{'src':'/content/dam/Author%20photos/Philip_Johnston-xxlarge.png','width':1500,'height':1500,'percentageImageRatio':'100'},{'src':'/content/dam/Author%20photos/Philip_Johnston-xsmall.png','width':160,'height':160,'percentageImageRatio':'100'},{'src':'/content/dam/Author%20photos/Philip_Johnston-small.png','width':320,'height':320,'percentageImageRatio':'100'},{'src':'/content/dam/Author%20photos/Philip_Johnston-large.png','width':720,'height':720,'percentageImageRatio':'100'},{'src':'/content/dam/Author%20photos/Philip_Johnston-medium.png','width':480,'height':480,'percentageImageRatio':'100'}]" /> </div>
+ </div>
+ </div>
+ </li>
+ <li class="list-of-entities__item " data-timestamp="1511297049669">
+ <div class="list-of-entities__item-link">
+ <a href="/news/2017/11/21/oxford-graduate-sues-university-1million-did-not-get-first-class/" class="list-of-entities__item-image-container" tabindex="-1">
+ <div class="responsive-image list-of-entities__item-image " data-width="269" data-height="168" data-alt="Faiz Siddiqui" data-frz-ratio="1.60" data-src="/content/dam/news/2017/11/21/TELEMMGLPICT000147336543-small_trans_NvBQzQNjv4BqV44xdBGYPqnem1ZvJTjPec7FyOPfI4q1UOi2QRQI6kU.jpeg" data-frz-src-array="[{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147336543-xsmall_trans_NvBQzQNjv4BqV44xdBGYPqnem1ZvJTjPec7FyOPfI4q1UOi2QRQI6kU.jpeg','width':134,'height':83,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqV44xdBGYPqnem1ZvJTjPec7FyOPfI4q1UOi2QRQI6kU','percentageImageRatio':'61.94'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147336543-xlarge_trans_NvBQzQNjv4BqV44xdBGYPqnem1ZvJTjPec7FyOPfI4q1UOi2QRQI6kU.jpeg','width':1078,'height':674,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqV44xdBGYPqnem1ZvJTjPec7FyOPfI4q1UOi2QRQI6kU','percentageImageRatio':'62.52'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147336543-medium_trans_NvBQzQNjv4BqV44xdBGYPqnem1ZvJTjPec7FyOPfI4q1UOi2QRQI6kU.jpeg','width':404,'height':252,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqV44xdBGYPqnem1ZvJTjPec7FyOPfI4q1UOi2QRQI6kU','percentageImageRatio':'62.38'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147336543-thumbnail_trans_NvBQzQNjv4BqV44xdBGYPqnem1ZvJTjPec7FyOPfI4q1UOi2QRQI6kU.jpeg','width':117,'height':73,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqV44xdBGYPqnem1ZvJTjPec7FyOPfI4q1UOi2QRQI6kU','percentageImageRatio':'62.39'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147336543-small_trans_NvBQzQNjv4BqV44xdBGYPqnem1ZvJTjPec7FyOPfI4q1UOi2QRQI6kU.jpeg','width':269,'height':168,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqV44xdBGYPqnem1ZvJTjPec7FyOPfI4q1UOi2QRQI6kU','percentageImageRatio':'62.45'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147336543-large_trans_NvBQzQNjv4BqV44xdBGYPqnem1ZvJTjPec7FyOPfI4q1UOi2QRQI6kU.jpeg','width':606,'height':378,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqV44xdBGYPqnem1ZvJTjPec7FyOPfI4q1UOi2QRQI6kU','percentageImageRatio':'62.38'}]" style="padding-bottom:62.45%;" data-asset-type="article"> <noscript>
+<img src="/content/dam/news/2017/11/21/TELEMMGLPICT000147336543-small_trans_NvBQzQNjv4BqV44xdBGYPqnem1ZvJTjPec7FyOPfI4q1UOi2QRQI6kU.jpeg" alt="Faiz Siddiqui" width="269" height="168" class="responsive-image--fallback" />
+</noscript> </div>
+ </a>
+ <div class="list-of-entities__item-body"> <span class="m_meta-property">
+<time class="m_meta-property__date" title="21 Nov 2017, 8:44pm" datetime="2017-11-21T08:44:09" itemprop="datePublished" pubdate="">
+<span class="m_meta-property__date-date">21 Nov 2017</span><span class="m_meta-property__date-separator">,</span> <span class="m_meta-property__date-time">8:44pm</span> </time>
+ </span>
+ <h3 class="list-of-entities__item-body-headline"> <a href="/news/2017/11/21/oxford-graduate-sues-university-1million-did-not-get-first-class/">Oxford graduate sues university for £1million because he did not get a first class degree&nbsp;</a> </h3>
+ </div>
+ </div>
+ </li>
+ <li class="list-of-entities__item video" data-timestamp="1511295352317">
+ <div class="list-of-entities__item-link">
+ <a href="/news/2017/11/21/big-bird-watch-trump-pardon-thanksgiving-turkey/" class="list-of-entities__item-image-container" tabindex="-1">
+ <div class="video-icon-wrapper">
+ <div class="video-icon video-icon--text-image component">
+ <div class="video-icon__play">
+ <div class="video-icon__arrow"></div>
+ </div> <time class="video-icon__duration" datetime="PT0H2M4S">02:04
+</time> </div> <img class="responsive-image list-of-entities__item-image" width="320" height="180" alt="'That's a big bird', watch Trump pardon Thanksgiving turkey" data-frz-ratio="1.78" src="/content/dam/video_previews/p/p/ppzzdnzde6biv1rtixuprdeby5aeyik-small.jpg" data-frz-src-array="[{'src':'/content/dam/video_previews/p/p/ppzzdnzde6biv1rtixuprdeby5aeyik-xsmall.jpg','width':160,'height':90,'percentageImageRatio':'56.25'},{'src':'/content/dam/video_previews/p/p/ppzzdnzde6biv1rtixuprdeby5aeyik-xlarge.jpg','width':1280,'height':720,'percentageImageRatio':'56.25'},{'src':'/content/dam/video_previews/p/p/ppzzdnzde6biv1rtixuprdeby5aeyik-medium.jpg','width':480,'height':270,'percentageImageRatio':'56.25'},{'src':'/content/dam/video_previews/p/p/ppzzdnzde6biv1rtixuprdeby5aeyik-thumbnail.jpg','width':140,'height':78,'percentageImageRatio':'55.71'},{'src':'/content/dam/video_previews/p/p/ppzzdnzde6biv1rtixuprdeby5aeyik-small.jpg','width':320,'height':180,'percentageImageRatio':'56.25'},{'src':'/content/dam/video_previews/p/p/ppzzdnzde6biv1rtixuprdeby5aeyik-large.jpg','width':720,'height':405,'percentageImageRatio':'56.25'}]" data-asset-type="article" /> </div>
+ </a>
+ <div class="list-of-entities__item-body">
+ <div class="video-icon video-icon--text-only component">
+ <div class="video-icon__play">
+ <div class="video-icon__arrow"></div>
+ </div>
+ </div> <span class="m_meta-property">
+<time class="m_meta-property__date" title="21 Nov 2017, 8:15pm" datetime="2017-11-21T08:15:52" itemprop="datePublished" pubdate="">
+<span class="m_meta-property__date-date">21 Nov 2017</span><span class="m_meta-property__date-separator">,</span> <span class="m_meta-property__date-time">8:15pm</span> </time>
+ </span>
+ <h3 class="list-of-entities__item-body-headline"> <a href="/news/2017/11/21/big-bird-watch-trump-pardon-thanksgiving-turkey/">'That's a big bird': Watch Donald Trump pardon Thanksgiving turkey</a> </h3>
+ </div>
+ </div>
+ </li>
+ <li class="list-of-entities__item " data-timestamp="1511294400000">
+ <div class="list-of-entities__item-link">
+ <a href="/news/2017/11/21/man-spent-retirement-repairing-norfolk-milestones-hidden-nazis/" class="list-of-entities__item-image-container" tabindex="-1">
+ <div class="responsive-image list-of-entities__item-image " data-width="320" data-height="199" data-alt="Nigel Ford with his handiwork" data-frz-ratio="1.60" data-src="/content/dam/news/2017/11/21/TELEMMGLPICT000147314788-small_trans_NvBQzQNjv4BqpVlberWd9EgFPZtcLiMQfyf2A9a6I9YchsjMeADBa08.jpeg" data-frz-src-array="[{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147314788-xsmall_trans_NvBQzQNjv4BqpVlberWd9EgFPZtcLiMQfyf2A9a6I9YchsjMeADBa08.jpeg','width':160,'height':99,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqpVlberWd9EgFPZtcLiMQfyf2A9a6I9YchsjMeADBa08','percentageImageRatio':'61.88'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147314788-xlarge_trans_NvBQzQNjv4BqpVlberWd9EgFPZtcLiMQfyf2A9a6I9YchsjMeADBa08.jpeg','width':1280,'height':799,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqpVlberWd9EgFPZtcLiMQfyf2A9a6I9YchsjMeADBa08','percentageImageRatio':'62.42'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147314788-medium_trans_NvBQzQNjv4BqpVlberWd9EgFPZtcLiMQfyf2A9a6I9YchsjMeADBa08.jpeg','width':480,'height':299,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqpVlberWd9EgFPZtcLiMQfyf2A9a6I9YchsjMeADBa08','percentageImageRatio':'62.29'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147314788-thumbnail_trans_NvBQzQNjv4BqpVlberWd9EgFPZtcLiMQfyf2A9a6I9YchsjMeADBa08.jpeg','width':140,'height':87,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqpVlberWd9EgFPZtcLiMQfyf2A9a6I9YchsjMeADBa08','percentageImageRatio':'62.14'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147314788-small_trans_NvBQzQNjv4BqpVlberWd9EgFPZtcLiMQfyf2A9a6I9YchsjMeADBa08.jpeg','width':320,'height':199,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqpVlberWd9EgFPZtcLiMQfyf2A9a6I9YchsjMeADBa08','percentageImageRatio':'62.19'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147314788-large_trans_NvBQzQNjv4BqpVlberWd9EgFPZtcLiMQfyf2A9a6I9YchsjMeADBa08.jpeg','width':720,'height':449,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqpVlberWd9EgFPZtcLiMQfyf2A9a6I9YchsjMeADBa08','percentageImageRatio':'62.36'}]" style="padding-bottom:62.19%;" data-asset-type="article"> <noscript>
+<img src="/content/dam/news/2017/11/21/TELEMMGLPICT000147314788-small_trans_NvBQzQNjv4BqpVlberWd9EgFPZtcLiMQfyf2A9a6I9YchsjMeADBa08.jpeg" alt="Nigel Ford with his handiwork" width="320" height="199" class="responsive-image--fallback" />
+</noscript> </div>
+ </a>
+ <div class="list-of-entities__item-body"> <span class="m_meta-property">
+<time class="m_meta-property__date" title="21 Nov 2017, 8:00pm" datetime="2017-11-21T08:00:00" itemprop="datePublished" pubdate="">
+<span class="m_meta-property__date-date">21 Nov 2017</span><span class="m_meta-property__date-separator">,</span> <span class="m_meta-property__date-time">8:00pm</span> </time>
+ </span>
+ <h3 class="list-of-entities__item-body-headline"> <a href="/news/2017/11/21/man-spent-retirement-repairing-norfolk-milestones-hidden-nazis/">Man who spent retirement repairing Norfolk milestones hidden from Nazis wins prize&nbsp;</a> </h3>
+ </div>
+ </div>
+ </li>
+ <li class="list-of-entities__item " data-timestamp="1511294400000">
+ <div class="list-of-entities__item-link">
+ <a href="/news/2017/11/21/nhs-doctors-fell-dirty-working-private-industry-health-chief/" class="list-of-entities__item-image-container" tabindex="-1">
+ <div class="responsive-image list-of-entities__item-image " data-width="320" data-height="199" data-alt="research" data-frz-ratio="1.60" data-src="/content/dam/work-salary/2016/05/11/scientist-small_trans_NvBQzQNjv4BqpdpCsDEHI-S5JwZr3nT67FjKkg6BxshTkQSFIPEistw.jpg" data-frz-src-array="[{'src':'/content/dam/work-salary/2016/05/11/scientist-xsmall_trans_NvBQzQNjv4BqpdpCsDEHI-S5JwZr3nT67FjKkg6BxshTkQSFIPEistw.jpg','width':160,'height':99,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqpdpCsDEHI-S5JwZr3nT67FjKkg6BxshTkQSFIPEistw','percentageImageRatio':'61.88'},{'src':'/content/dam/work-salary/2016/05/11/scientist-xlarge_trans_NvBQzQNjv4BqpdpCsDEHI-S5JwZr3nT67FjKkg6BxshTkQSFIPEistw.jpg','width':1280,'height':799,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqpdpCsDEHI-S5JwZr3nT67FjKkg6BxshTkQSFIPEistw','percentageImageRatio':'62.42'},{'src':'/content/dam/work-salary/2016/05/11/scientist-medium_trans_NvBQzQNjv4BqpdpCsDEHI-S5JwZr3nT67FjKkg6BxshTkQSFIPEistw.jpg','width':480,'height':299,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqpdpCsDEHI-S5JwZr3nT67FjKkg6BxshTkQSFIPEistw','percentageImageRatio':'62.29'},{'src':'/content/dam/work-salary/2016/05/11/scientist-thumbnail_trans_NvBQzQNjv4BqpdpCsDEHI-S5JwZr3nT67FjKkg6BxshTkQSFIPEistw.jpg','width':140,'height':87,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqpdpCsDEHI-S5JwZr3nT67FjKkg6BxshTkQSFIPEistw','percentageImageRatio':'62.14'},{'src':'/content/dam/work-salary/2016/05/11/scientist-xxlarge_trans_NvBQzQNjv4BqpdpCsDEHI-S5JwZr3nT67FjKkg6BxshTkQSFIPEistw.jpg','width':1500,'height':937,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqpdpCsDEHI-S5JwZr3nT67FjKkg6BxshTkQSFIPEistw','percentageImageRatio':'62.47'},{'src':'/content/dam/work-salary/2016/05/11/scientist-small_trans_NvBQzQNjv4BqpdpCsDEHI-S5JwZr3nT67FjKkg6BxshTkQSFIPEistw.jpg','width':320,'height':199,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqpdpCsDEHI-S5JwZr3nT67FjKkg6BxshTkQSFIPEistw','percentageImageRatio':'62.19'},{'src':'/content/dam/work-salary/2016/05/11/scientist-large_trans_NvBQzQNjv4BqpdpCsDEHI-S5JwZr3nT67FjKkg6BxshTkQSFIPEistw.jpg','width':720,'height':449,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqpdpCsDEHI-S5JwZr3nT67FjKkg6BxshTkQSFIPEistw','percentageImageRatio':'62.36'}]" style="padding-bottom:62.19%;" data-asset-type="article"> <noscript>
+<img src="/content/dam/work-salary/2016/05/11/scientist-small_trans_NvBQzQNjv4BqpdpCsDEHI-S5JwZr3nT67FjKkg6BxshTkQSFIPEistw.jpg" alt="research" width="320" height="199" class="responsive-image--fallback" />
+</noscript> </div>
+ </a>
+ <div class="list-of-entities__item-body"> <span class="m_meta-property">
+<time class="m_meta-property__date" title="21 Nov 2017, 8:00pm" datetime="2017-11-21T08:00:00" itemprop="datePublished" pubdate="">
+<span class="m_meta-property__date-date">21 Nov 2017</span><span class="m_meta-property__date-separator">,</span> <span class="m_meta-property__date-time">8:00pm</span> </time>
+ </span>
+ <h3 class="list-of-entities__item-body-headline"> <a href="/news/2017/11/21/nhs-doctors-fell-dirty-working-private-industry-health-chief/">NHS doctors fell 'dirty' working with private industry, health chief says</a> </h3>
+ </div>
+ </div>
+ </li>
+ <li class="list-of-entities__item " data-timestamp="1511293926108">
+ <div class="list-of-entities__item-link">
+ <a href="/news/2017/11/21/suicidal-children-abandoned-nhs-commissioner-tells-parliament/" class="list-of-entities__item-image-container" tabindex="-1">
+ <div class="responsive-image list-of-entities__item-image " data-width="320" data-height="199" data-alt="Child with condition" data-frz-ratio="1.60" data-src="/content/dam/women/2017/11/15/TELEMMGLPICT000144240040-small_trans_NvBQzQNjv4BqVlmHh3SSu09ExpEHx1qy7_d8x02NWIDrBnjLwW5B8SQ.jpeg" data-frz-src-array="[{'src':'/content/dam/women/2017/11/15/TELEMMGLPICT000144240040-xsmall_trans_NvBQzQNjv4BqVlmHh3SSu09ExpEHx1qy7_d8x02NWIDrBnjLwW5B8SQ.jpeg','width':160,'height':99,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqVlmHh3SSu09ExpEHx1qy7_d8x02NWIDrBnjLwW5B8SQ','percentageImageRatio':'61.88'},{'src':'/content/dam/women/2017/11/15/TELEMMGLPICT000144240040-xlarge_trans_NvBQzQNjv4BqVlmHh3SSu09ExpEHx1qy7_d8x02NWIDrBnjLwW5B8SQ.jpeg','width':1280,'height':799,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqVlmHh3SSu09ExpEHx1qy7_d8x02NWIDrBnjLwW5B8SQ','percentageImageRatio':'62.42'},{'src':'/content/dam/women/2017/11/15/TELEMMGLPICT000144240040-medium_trans_NvBQzQNjv4BqVlmHh3SSu09ExpEHx1qy7_d8x02NWIDrBnjLwW5B8SQ.jpeg','width':480,'height':299,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqVlmHh3SSu09ExpEHx1qy7_d8x02NWIDrBnjLwW5B8SQ','percentageImageRatio':'62.29'},{'src':'/content/dam/women/2017/11/15/TELEMMGLPICT000144240040-thumbnail_trans_NvBQzQNjv4BqVlmHh3SSu09ExpEHx1qy7_d8x02NWIDrBnjLwW5B8SQ.jpeg','width':140,'height':87,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqVlmHh3SSu09ExpEHx1qy7_d8x02NWIDrBnjLwW5B8SQ','percentageImageRatio':'62.14'},{'src':'/content/dam/women/2017/11/15/TELEMMGLPICT000144240040-small_trans_NvBQzQNjv4BqVlmHh3SSu09ExpEHx1qy7_d8x02NWIDrBnjLwW5B8SQ.jpeg','width':320,'height':199,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqVlmHh3SSu09ExpEHx1qy7_d8x02NWIDrBnjLwW5B8SQ','percentageImageRatio':'62.19'},{'src':'/content/dam/women/2017/11/15/TELEMMGLPICT000144240040-large_trans_NvBQzQNjv4BqVlmHh3SSu09ExpEHx1qy7_d8x02NWIDrBnjLwW5B8SQ.jpeg','width':720,'height':449,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqVlmHh3SSu09ExpEHx1qy7_d8x02NWIDrBnjLwW5B8SQ','percentageImageRatio':'62.36'}]" style="padding-bottom:62.19%;" data-asset-type="article"> <noscript>
+<img src="/content/dam/women/2017/11/15/TELEMMGLPICT000144240040-small_trans_NvBQzQNjv4BqVlmHh3SSu09ExpEHx1qy7_d8x02NWIDrBnjLwW5B8SQ.jpeg" alt="Child with condition" width="320" height="199" class="responsive-image--fallback" />
+</noscript> </div>
+ </a>
+ <div class="list-of-entities__item-body"> <span class="m_meta-property">
+<time class="m_meta-property__date" title="21 Nov 2017, 7:52pm" datetime="2017-11-21T07:52:06" itemprop="datePublished" pubdate="">
+<span class="m_meta-property__date-date">21 Nov 2017</span><span class="m_meta-property__date-separator">,</span> <span class="m_meta-property__date-time">7:52pm</span> </time>
+ </span>
+ <h3 class="list-of-entities__item-body-headline"> <a href="/news/2017/11/21/suicidal-children-abandoned-nhs-commissioner-tells-parliament/">Suicidal children abandoned by NHS, Commissioner tells Parliament</a> </h3>
+ </div>
+ </div>
+ </li>
+ <li class="list-of-entities__item video" data-timestamp="1511293884545">
+ <div class="list-of-entities__item-link">
+ <a href="/news/2017/11/21/5x5-bulletin-tuesday-21-november-listen-todays-essential-news/" class="list-of-entities__item-image-container" tabindex="-1">
+ <div class="video-icon-wrapper">
+ <div class="video-icon video-icon--text-image component">
+ <div class="video-icon__play">
+ <div class="video-icon__arrow"></div>
+ </div> <time class="video-icon__duration" datetime="PT0H3M42S">03:43
+</time> </div> <img class="responsive-image list-of-entities__item-image" width="320" height="179" alt="5x5 bulletin for Tuesday 21 November: Listen to today's essential news from the Telegraph " data-frz-ratio="1.78" src="/content/dam/video_previews/m/1/m1mtdnzde6egx6afc92n7ygcnaaczsdz-small.jpg" data-frz-src-array="[{'src':'/content/dam/video_previews/m/1/m1mtdnzde6egx6afc92n7ygcnaaczsdz-xsmall.jpg','width':160,'height':89,'percentageImageRatio':'55.62'},{'src':'/content/dam/video_previews/m/1/m1mtdnzde6egx6afc92n7ygcnaaczsdz-xlarge.jpg','width':1280,'height':718,'percentageImageRatio':'56.09'},{'src':'/content/dam/video_previews/m/1/m1mtdnzde6egx6afc92n7ygcnaaczsdz-medium.jpg','width':480,'height':269,'percentageImageRatio':'56.04'},{'src':'/content/dam/video_previews/m/1/m1mtdnzde6egx6afc92n7ygcnaaczsdz-thumbnail.jpg','width':140,'height':78,'percentageImageRatio':'55.71'},{'src':'/content/dam/video_previews/m/1/m1mtdnzde6egx6afc92n7ygcnaaczsdz-small.jpg','width':320,'height':179,'percentageImageRatio':'55.94'},{'src':'/content/dam/video_previews/m/1/m1mtdnzde6egx6afc92n7ygcnaaczsdz-large.jpg','width':720,'height':404,'percentageImageRatio':'56.11'}]" data-asset-type="article" /> </div>
+ </a>
+ <div class="list-of-entities__item-body">
+ <div class="video-icon video-icon--text-only component">
+ <div class="video-icon__play">
+ <div class="video-icon__arrow"></div>
+ </div>
+ </div> <span class="m_meta-property">
+<time class="m_meta-property__date" title="21 Nov 2017, 7:51pm" datetime="2017-11-21T07:51:24" itemprop="datePublished" pubdate="">
+<span class="m_meta-property__date-date">21 Nov 2017</span><span class="m_meta-property__date-separator">,</span> <span class="m_meta-property__date-time">7:51pm</span> </time>
+ </span>
+ <h3 class="list-of-entities__item-body-headline"> <a href="/news/2017/11/21/5x5-bulletin-tuesday-21-november-listen-todays-essential-news/">5x5 bulletin for Tuesday 21 November: Listen to today's essential news from the Telegraph&nbsp;</a> </h3>
+ </div>
+ </div>
+ </li>
+ <li class="list-of-entities__item " data-timestamp="1511293322150">
+ <div class="list-of-entities__item-link">
+ <a href="/news/2017/11/21/zimbabwes-president-robert-mugabe-has-resigned-speaker-says/" class="list-of-entities__item-image-container" tabindex="-1">
+ <div class="responsive-image list-of-entities__item-image " data-width="320" data-height="199" data-alt="Live: Zimbabwe's MP's erupt into celebration after President Robert Mugabe's resignation " data-frz-ratio="1.60" data-src="/content/dam/news/2017/11/21/TELEMMGLPICT000147334404-small_trans_NvBQzQNjv4BqpVlberWd9EgFPZtcLiMQfyf2A9a6I9YchsjMeADBa08.jpeg" data-frz-src-array="[{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147334404-xsmall_trans_NvBQzQNjv4BqpVlberWd9EgFPZtcLiMQfyf2A9a6I9YchsjMeADBa08.jpeg','width':160,'height':99,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqpVlberWd9EgFPZtcLiMQfyf2A9a6I9YchsjMeADBa08','percentageImageRatio':'61.88'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147334404-xlarge_trans_NvBQzQNjv4BqpVlberWd9EgFPZtcLiMQfyf2A9a6I9YchsjMeADBa08.jpeg','width':1280,'height':799,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqpVlberWd9EgFPZtcLiMQfyf2A9a6I9YchsjMeADBa08','percentageImageRatio':'62.42'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147334404-medium_trans_NvBQzQNjv4BqpVlberWd9EgFPZtcLiMQfyf2A9a6I9YchsjMeADBa08.jpeg','width':480,'height':299,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqpVlberWd9EgFPZtcLiMQfyf2A9a6I9YchsjMeADBa08','percentageImageRatio':'62.29'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147334404-thumbnail_trans_NvBQzQNjv4BqpVlberWd9EgFPZtcLiMQfyf2A9a6I9YchsjMeADBa08.jpeg','width':140,'height':87,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqpVlberWd9EgFPZtcLiMQfyf2A9a6I9YchsjMeADBa08','percentageImageRatio':'62.14'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147334404-small_trans_NvBQzQNjv4BqpVlberWd9EgFPZtcLiMQfyf2A9a6I9YchsjMeADBa08.jpeg','width':320,'height':199,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqpVlberWd9EgFPZtcLiMQfyf2A9a6I9YchsjMeADBa08','percentageImageRatio':'62.19'},{'src':'/content/dam/news/2017/11/21/TELEMMGLPICT000147334404-large_trans_NvBQzQNjv4BqpVlberWd9EgFPZtcLiMQfyf2A9a6I9YchsjMeADBa08.jpeg','width':720,'height':449,'imageCropTransformSuffix':'trans_NvBQzQNjv4BqpVlberWd9EgFPZtcLiMQfyf2A9a6I9YchsjMeADBa08','percentageImageRatio':'62.36'}]" style="padding-bottom:62.19%;" data-asset-type="article"> <noscript>
+<img src="/content/dam/news/2017/11/21/TELEMMGLPICT000147334404-small_trans_NvBQzQNjv4BqpVlberWd9EgFPZtcLiMQfyf2A9a6I9YchsjMeADBa08.jpeg" alt="Zimbabwe&#39;s MP&#39;s erupt into celebration after President Robert Mugabe&#39;s resignation " width="320" height="199" class="responsive-image--fallback" />
+</noscript> </div>
+ </a>
+ <div class="list-of-entities__item-body"> <span class="m_meta-property">
+<time class="m_meta-property__date" title="21 Nov 2017, 7:42pm" datetime="2017-11-21T07:42:02" itemprop="datePublished" pubdate="">
+<span class="m_meta-property__date-date">21 Nov 2017</span><span class="m_meta-property__date-separator">,</span> <span class="m_meta-property__date-time">7:42pm</span> </time>
+ </span>
+ <h3 class="list-of-entities__item-body-headline"> <a href="/news/2017/11/21/zimbabwes-president-robert-mugabe-has-resigned-speaker-says/">Zimbabwe's president Robert Mugabe finally resigns, sparking wild jubilation on the streets of Harare&nbsp;</a> </h3>
+ </div>
+ </div>
+ </li>
+ </ol>
+ </div>
+ </div>
+ </div>
+ <!-- <sly data-sly-call=""></sly> -->
+ </div>
+ </div>
+ </div>
+ </aside>
+ <div class="spark-slot3"> </div>
+ <div class="article__footer">
+ <section class="snippet-footer">
+ <footer data-tmg-dtm-nav-area="footernav">
+ <div class="footer-list-corporate component">
+ <div class="component-content">
+ <nav>
+ <ul class="footer-list-corporate__list">
+ <li class="footer-list-corporate__item "> <a class="footer-list-corporate__link " href="/contact-us/" data-tmg-dtm-nav="1-nav:/contact-us.html">
+Contact us
+</a> </li>
+ <li class="footer-list-corporate__item "> <a class="footer-list-corporate__link " href="https://corporate.telegraph.co.uk/" data-tmg-dtm-nav="2-nav:https://corporate.telegraph.co.uk/">
+About us
+</a> </li>
+ <li class="footer-list-corporate__item "> <a class="footer-list-corporate__link " title="Rewards" href="/rewards/" data-tmg-dtm-nav="3-nav:/rewards.html">
+Rewards
+</a> </li>
+ <li class="footer-list-corporate__item "> <a class="footer-list-corporate__link " href="http://www.telegraph.co.uk/archive/" data-tmg-dtm-nav="4-nav:http://www.telegraph.co.uk/archive/">
+Archive
+</a> </li>
+ <li class="footer-list-corporate__item "> <a class="footer-list-corporate__link " href="http://telegraph.newsprints.co.uk/" data-tmg-dtm-nav="5-nav:http://telegraph.newsprints.co.uk/">
+Reader Prints
+</a> </li>
+ <li class="footer-list-corporate__item "> <a class="footer-list-corporate__link " href="/spark/" data-tmg-dtm-nav="6-nav:/spark.html">
+Branded Content
+</a> </li>
+ <li class="footer-list-corporate__item "> <a class="footer-list-corporate__link " title="Syndication &amp; Content Partnerships" href="/syndication/" data-tmg-dtm-nav="7-nav:/syndication.html">
+Syndication
+</a> </li>
+ <li class="footer-list-corporate__item "> <a class="footer-list-corporate__link " href="/about-us/editorial-and-commercial-guidelines/" data-tmg-dtm-nav="8-nav:/about-us/editorial-and-commercial-guidelines.html">
+Guidelines
+</a> </li>
+ <li class="footer-list-corporate__item "> <a class="footer-list-corporate__link " href="/about-us/privacy-and-cookie-policy/" data-tmg-dtm-nav="9-nav:/about-us/privacy-and-cookie-policy.html">
+Privacy
+</a> </li>
+ <li class="footer-list-corporate__item "> <a class="footer-list-corporate__link " href="/about-us/terms-and-conditions/" data-tmg-dtm-nav="10-nav:/about-us/terms-and-conditions.html">
+Terms and Conditions
+</a> </li>
+ </ul>
+ </nav>
+ </div>
+ </div>
+ <div class="footer-copyright component">
+ <div class="component-content">
+ <p>© Telegraph Media Group Limited 2017</p>
+ </div>
+ </div>
+ </footer>
+ </section>
+ <div class="footer-ads">
+ <div id="advert_tmg_tmg" class="js-advert advert " data-adtype="tmg"></div>
+ <div id="advert_tmg_inr" class="js-advert advert " data-adtype="inr"></div>
+ <div id="advert_tmg_ftr" class="js-advert advert " data-adtype="ftr"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="spark-slot4"> </div>
+ <script>
+ tmg.loadClientLibs.init();
+ </script>
+ <script src="//d3c3cq33003psk.cloudfront.net/opentag-35657-1096944.js" async=""></script>
+ <script>
+ RUM.mark('js_load_opentag');
+ </script>
+ <script type="text/javascript">
+ _satellite.pageBottom();
+ </script>
+ <div style="display: none;" class="adblocker-message component">
+ <div class="component-content">
+ <div class="cartoon"> <img class="adblock-image" alt="Please support us by disabling your adblocker" src="/content/dam/generic/Matt-cartoon-255x206px-small.png" /> </div>
+ <div class="adblocker-message__body">
+ <h3>We've noticed you're adblocking.</h3>
+ <p>We rely on advertising to help fund our award-winning journalism.</p>
+ <p>We urge you to turn off your ad blocker for The Telegraph website so that you can continue to access our quality content in the future.</p>
+ <p>Thank you for your support.</p>
+ </div>
+ <p class="bold">Need help?</p>
+ <p>Click <a href="http://www.telegraph.co.uk/go/adblocking/" class="help" data-tmg-event="click" data-tmg-name="adBlockMessageHelp">here</a> for instructions </p>
+ <div class="logo"></div> <button class="close" data-tmg-event="click" data-tmg-name="adBlockMessageClose">Close</button> </div>
+ </div>
+ <script src="//cdn.optimizely.com/js/1425218314.js" async=""></script>
+ <script>
+ RUM.mark('js_load_optimizelyasync');
+ </script>
+</body>
+
+</html> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/title-and-h1-discrepancy/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/title-and-h1-discrepancy/expected-images.json
new file mode 100644
index 000000000..0637a088a
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/title-and-h1-discrepancy/expected-images.json
@@ -0,0 +1 @@
+[] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/title-and-h1-discrepancy/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/title-and-h1-discrepancy/expected-metadata.json
new file mode 100644
index 000000000..07338d0a7
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/title-and-h1-discrepancy/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "Lorem\n ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,\n quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo\n consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse\n cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non\n proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
+ "Image": null,
+ "Title": "This is a long title with a colon: Hello there",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/title-and-h1-discrepancy/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/title-and-h1-discrepancy/expected.html
new file mode 100644
index 000000000..e4fa77ae9
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/title-and-h1-discrepancy/expected.html
@@ -0,0 +1,20 @@
+<article>
+ <p>
+ Lorem
+ ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+ <p>
+ Lorem
+ ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </p>
+</article> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/title-and-h1-discrepancy/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/title-and-h1-discrepancy/source.html
new file mode 100644
index 000000000..d91b65844
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/title-and-h1-discrepancy/source.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8"/>
+ <title>This is a long title with a colon: Hello there</title>
+</head>
+<body>
+<article>
+ <h1>This is a long title with a colon: But the final text here is different</h1>
+ <div>
+ Lorem
+ ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </div>
+ <div>
+ Lorem
+ ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ </div>
+</article>
+</body>
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/tmz-1/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/tmz-1/expected-images.json
new file mode 100644
index 000000000..fa74f0b81
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/tmz-1/expected-images.json
@@ -0,0 +1,6 @@
+[
+ "http:\/\/ll-media.tmz.com\/2015\/02\/26\/0225-lupita-nyongo-getty-01-1200x630.jpg",
+ "http:\/\/ll-media.tmz.com\/2015\/02\/26\/0225-lupita-nyongo-getty-4.jpg",
+ "http:\/\/ll-media.tmz.com\/2013\/11\/20\/update-graphic-red-bar.jpg",
+ "http:\/\/ll-media.tmz.com\/2015\/02\/26\/0226-sub-london-hotel-swipe-tmz-11.jpg"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/tmz-1/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/tmz-1/expected-metadata.json
new file mode 100644
index 000000000..63d67965b
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/tmz-1/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "Lupita Nyong'o's now-famous Oscar dress -- adorned in pearls -- was stolen right out of her hotel room ... TMZ has learned. Law enforcement sources tell…",
+ "Image": "http:\/\/ll-media.tmz.com\/2015\/02\/26\/0225-lupita-nyongo-getty-01-1200x630.jpg",
+ "Title": "Lupita Nyong'o's $150K Pearl Oscar Dress -- STOLEN!!!",
+ "SiteName": "http://www.tmz.com"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/tmz-1/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/tmz-1/expected.html
new file mode 100644
index 000000000..6eb48b97d
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/tmz-1/expected.html
@@ -0,0 +1,34 @@
+<div id="post-2015_02_26_lupita-nyongo-pearl-dress-stolen-oscars">
+ <p>
+ <h2>Lupita Nyong'o</h2>
+
+ <h4>$150K Pearl Oscar Dress ... STOLEN!!!!</h4>
+
+ </p>
+ <h5>
+ 2/26/2015 7:11 AM PST BY TMZ STAFF
+ </h5>
+
+ <div itemprop="articleBody">
+ <p><span>EXCLUSIVE</span>
+ </p>
+ <p>
+ <img alt="0225-lupita-nyongo-getty-01" src="http://ll-media.tmz.com/2015/02/26/0225-lupita-nyongo-getty-4.jpg"></img><strong>Lupita Nyong</strong>'<strong>o</strong>'s now-famous Oscar dress
+ -- adorned in pearls -- was stolen right out of her hotel room ... TMZ
+ has learned.</p>
+ <p>Law enforcement sources tell TMZ ... the dress was taken out of Lupita's
+ room at The London West Hollywood. The dress is made of pearls ... 6,000
+ white Akoya pearls. It's valued at $150,000.</p>
+ <p>Our sources say Lupita told cops it was taken from her room sometime between
+ 8 AM and 9 PM Wednesday ... while she was gone.  </p>
+ <p>We're told there is security footage that cops are looking at that could
+ catch the culprit right in the act. </p>
+ <p>
+ <img alt="update_graphic_red_bar" src="http://ll-media.tmz.com/2013/11/20/update-graphic-red-bar.jpg"></img><strong>12:00 PM PT</strong> -- Sheriff's deputies were at The London Thursday
+ morning.  We know they were in the manager's office and we're told
+ they have looked at security footage to determine if they can ID the culprit.</p>
+ <p>
+ <img alt="0226-SUB-london-hotel-swipe-tmz-02" src="http://ll-media.tmz.com/2015/02/26/0226-sub-london-hotel-swipe-tmz-11.jpg"></img></p>
+ </div>
+
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/tmz-1/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/tmz-1/source.html
new file mode 100644
index 000000000..c2b19f0e0
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/tmz-1/source.html
@@ -0,0 +1,1528 @@
+<!DOCTYPE html>
+<html itemscope="" itemtype="http://schema.org/Article" itemid="http://www.tmz.com/2015/02/26/lupita-nyongo-pearl-dress-stolen-oscars/"
+xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#" xmlns:fb="http://ogp.me/ns/fb#">
+
+ <head>
+ <link rel="canonical" href="http://www.tmz.com/2015/02/26/lupita-nyongo-pearl-dress-stolen-oscars/"/>
+ <!-- Require JS -->
+ <script>
+ var SYSTEM_VERSION = '1425687224';
+ var SYSTEM_ENV = 'prod';
+ var DEVICE_VIEW = 'main';
+ var ASSETS_BASEURL = 'http://ll-assets.tmz.com/www.tmz.com/main/default/';
+ var SITE_BASEURL = 'http://www.tmz.com/';
+ var SITE_DOMAIN = 'http://www.tmz.com'.replace(/http\:\/\//g, '');
+ var require = {baseUrl: ASSETS_BASEURL + 'js/'};
+ var LOADED_CSS = (LOADED_CSS || []).concat(''.split(','));
+ var KRUX_CONFID = 'JXlj-zpN';
+ </script>
+ <script src="//cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script>
+ <script>
+ if (typeof require !== 'function') { document.write('&lt;scr'+'ipt src="' + ASSETS_BASEURL +'js/requirejs/2.1.10/requirejs.min.js">&lt;/sc'+'ript>'); }
+ </script>
+ <!--[if lt IE 9]>
+ <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
+ <script language="JavaScript" type="text/javascript" src="http://ll-assets.tmz.com/www.tmz.com/main/default/cache/html5shiv.min.512480812d84e77c54b38a11b9a9e049.v2014_05_09_164122.js"></script>
+ <style>
+ #nav ul.nav-list li{border-right: 1px solid #787878;}#nav ul.nav-list li:first-child{border-left: 1px solid #787878;}
+ </style>
+ <![endif]-->
+ <!--[if gte IE 9]>
+ <!-->
+ <script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
+ <!--<![endif]-->
+ <!--[if lt IE 10]>
+ <script language="JavaScript" type="text/javascript" src="http://ll-assets.tmz.com/www.tmz.com/main/default/cache/jquery.html5-placeholder-shim.491d773b3026f66a7b690d8bcd0c3983.v2014_05_09_164122.js"></script>
+ <![endif]-->
+ <link rel="alternate" media="handheld" href="http://m.tmz.com/2015/02/26/lupita-nyongo-pearl-dress-stolen-oscars/"/>
+ <!-- BEGIN Tynt Script -->
+ <script type="text/javascript">
+ if(document.location.protocol=='http:'){
+ var Tynt=Tynt||[];Tynt.push('a6kPi63Aqr4yT7acwqm_6l');Tynt.i={"ap":"Read more:"};
+ (function(){var s=document.createElement('script');s.async="async";s.type="text/javascript";s.src='http://tcr.tynt.com/ti.js';var h=document.getElementsByTagName('script')[0];h.parentNode.insertBefore(s,h);})();
+ }
+ </script>
+ <!-- END Tynt Script -->
+ <!-- Criteo RTA Script -->
+ <script type="text/javascript">
+ var CRTG_NID="1870";
+ var CRTG_COOKIE_NAME="cto_tmz";
+ var CRTG_VAR_NAME="crtg_content";
+ </script>
+ <!-- end -->
+ <!-- BEGIN Chartbeat Script -->
+ <script type="text/javascript">
+ var _sf_startpt=(new Date()).getTime()
+ </script>
+ <!-- END Chartbeat Script -->
+ <title>Lupita Nyong'o's $150K Pearl Oscar Dress -- STOLEN!!! | TMZ.com</title>
+ <script
+ language="JavaScript" type="text/javascript" src="http://ll-assets.tmz.com/www.tmz.com/main/default/cache/d445e4380e66504cd22c77ef054f930a.v2015_03_11_155119.js"></script>
+ <script src="//c.amazon-adsystem.com/aax2/amzn_ads.js"></script>
+ <script>
+ try {
+ amznads.getAds('3064');
+ } catch(e) {}
+ </script>
+ <script>
+ wbads.setEnabled(true);
+ wbads.init(
+ '55153744',
+ 'tmz',
+ 'article',
+ {
+ debug_enabled: true,
+ device_view: "main"
+ },
+ {
+ collapse_empty_divs: true,
+ global_targeting: {
+ tag: "lupita-nyongo,exclusive,fashion,awards-awards-shows,academy-awards,celebrity-justice"
+ }
+ }
+ );
+ </script>
+ <script language="JavaScript" type="text/javascript" src="http://ll-assets.tmz.com/www.tmz.com/main/default/cache/spinner.3ab697b3b6a3cf7be0a061af8e9c0e1d.v2014_06_11_152631.js"></script>
+ <link rel="stylesheet" type="text/css" media="screen" href="http://ll-assets.tmz.com/www.tmz.com/main/default/cache/style.0c025c59d9785bf4bd93c859ba6c5e03.v2015_03_10_155849.css"/>
+ <script language="JavaScript" type="text/javascript" src="http://ll-assets.tmz.com/www.tmz.com/main/default/cache/220084d67afc3f1291993cbd8bf46c77.v2014_10_16_163308.js"></script>
+ <script language="JavaScript" type="text/javascript" src="http://ll-assets.tmz.com/www.tmz.com/main/default/cache/ecdb9b872560bac80e1b2efcaf73f7dc.v2015_03_11_155121.js"></script>
+ <script language="JavaScript" type="text/javascript" src="http://ll-assets.tmz.com/www.tmz.com/main/default/cache/eda2efbea250c40d4d75dde9b8eebda1.v2015_03_09_212628.js"></script>
+ <!-- check -->
+ <script src="http://cdnapi.kaltura.com/p/591531/sp/59153100/embedIframeJs/uiconf_id/22960621/partner_id/591531"></script>
+ <script language="JavaScript" type="text/javascript" src="http://ll-assets.tmz.com/www.tmz.com/main/default/cache/post_video_embed.589aa778ae630edf34d7163158ccd942.v2015_03_11_154423.js"></script>
+ <script>
+ Showtimes.enableAutoLoad(true);
+ </script>
+ <!-- Middleware -->
+ <script>
+ require(['tmz/middleware/1.0.0/client'], function(mw) {
+ mw.init("https://mw-api.tmz.com", "85bcfbd793d84806bd67fa8cb9b13525");
+ });
+ </script>
+ <link rel="image_src" href="http://ll-media.tmz.com/2015/02/26/0225-lupita-nyongo-getty-01-1200x630.jpg"/>
+ <meta name="robots" content="all"/>
+ <meta name="description" content="Lupita Nyong'o's now-famous Oscar dress -- adorned in pearls -- was stolen right out of her hotel room ... TMZ has learned. Law enforcement sources tell…"/>
+ <meta name="generator" content="Crowd Fusion 2.0-enterprise"/>
+ <meta name="viewport" content="width=device-width, maximum-scale=1.0"/>
+ <meta name="google-site-verification" content="UUmtbUBf3djgPpCeLefe_PbFsOc6JGxfXmHzpjFLAEQ"/>
+ <meta name="verify-v1" content="Wtpd0N6FufoE2XqopQJoTjWV6Co/Mny9BTaswPJbPPA="/>
+ <meta name="msvalidate.01" content="AFEB17971BCF30779AEA662782EF26F4"/>
+ <meta name="y_key" content="14cb04e4656b0c58"/>
+ <meta property="fb:app_id" content="310610065699820"/>
+ <meta property="article:publisher" content="https://www.facebook.com/tmz"/>
+ <meta property="og:site_name" content="http://www.tmz.com"/>
+ <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
+ <meta http-equiv="content-language" content="en"/>
+ <meta http-equiv="pragma" content="no-cache"/>
+ <meta http-equiv="imagetoolbar" content="no"/>
+ <meta name="twitter:description" value="Lupita Nyong'o's now-famous Oscar dress -- adorned in pearls -- was stolen right out of her hotel room ... TMZ has learned. Law enforcement sources tell…"/>
+ <meta name="news_keywords" content="Lupita Nyong'o, Exclusive, Fashion, Awards / Awards Shows, The Oscars, CELEBRITY JUSTICE ™"/>
+ <meta property="og:title" content="Lupita Nyong'o's $150K Pearl Oscar Dress -- STOLEN!!!"/>
+ <meta property="og:type" content="article"/>
+ <meta property="og:url" content="http://www.tmz.com/2015/02/26/lupita-nyongo-pearl-dress-stolen-oscars/"/>
+ <meta property="og:image" content="http://ll-media.tmz.com/2015/02/26/0225-lupita-nyongo-getty-01-1200x630.jpg"/>
+ <meta itemprop="inLanguage" content="en-US"/>
+ <meta itemprop="thumbnailUrl" content="http://ll-assets.tmz.com/www.tmz.com/main/default/cache/images/tmz_rnews_logo.v2014_05_09_134122.jpg"/>
+ <!--start twitter card-->
+ <meta name="twitter:card" value="summary_large_image"/>
+ <meta name="twitter:site" value="@TMZ"/>
+ <meta name="twitter:description" value="Lupita Nyong'o's now-famous Oscar dress -- adorned in pearls -- was stolen right out of her hotel room ... TMZ has learned. Law enforcement sources tell…"/>
+ <!--end twitter card-->
+ <!-- PINNING -->
+ <meta name="application-name" content="TMZ.COM"/>
+ <meta name="msapplication-starturl" content="http://www.tmz.com?adid=IE9pin"/>
+ <meta name="msapplication-navbutton-color" content="#CF0000"/>
+ <meta name="msapplication-window" content="width=1024;height=768"/>
+ <meta name="msapplication-tooltip" content="TMZ | Entertainment News"/>
+ <!-- Each meta tag below adds a Static Jump List item to the Tasks list
+ on our pinned site's Jump List menu -->
+ <meta name="msapplication-task" content="name=Home;action-uri=http://www.tmz.com;icon-uri=http://ll-assets.tmz.com/www.tmz.com/main/default/cache/favicon.v2014_05_09_134122.ico"/>
+ <meta name="msapplication-task" content="name=Videos;action-uri=http://www.tmz.com/videos;icon-uri=http://ll-assets.tmz.com/www.tmz.com/main/default/cache/favicon.v2014_05_09_134122.ico"/>
+ <meta name="msapplication-task" content="name=Photos;action-uri=http://www.tmz.com/photos;icon-uri=http://ll-assets.tmz.com/www.tmz.com/main/default/cache/favicon.v2014_05_09_134122.ico"/>
+ <meta name="msapplication-task" content="name=Celebrity Directory;action-uri=http://www.tmz.com/celebrity-directory;icon-uri=http://ll-assets.tmz.com/www.tmz.com/main/default/cache/favicon.v2014_05_09_134122.ico"/>
+ <!-- KRUX VALUES -->
+ <meta name="articleID" content="b48ab5a6-bdca-11e4-bb2e-30342d324647"/>
+ <meta name="celebrityID" content="aa7e28b0-a301-4cda-dd84-3b4c66f23259"/>
+ <meta name="categoryID" content="f2cb2570-104e-4c13-e20e-9186a7708dac, 0cba3e09-d41a-45e5-9c40-c964a9d09e78, ff1fba86-7e4d-43fe-fb53-c384d4aa71b5, df5027f9-8759-42b9-ad53-d3b7cb675345, f261d39e-f751-4ecb-f12d-4d386e61929e"/>
+ <link rel="apple-touch-icon" href="http://ll-assets.tmz.com/www.tmz.com/main/default/cache/apple-touch-icon-precomposed.v2014_05_09_134122.png"/>
+ <!--[if lt IE 9]>
+ <script language="JavaScript" type="text/javascript" src="http://ll-assets.tmz.com/www.tmz.com/main/default/cache/html5shiv.min.512480812d84e77c54b38a11b9a9e049.v2014_05_09_164122.js"></script>
+ <![endif]-->
+ <!-- SPONSORED SKIN AD TAG START -->
+ </head>
+
+ <body class="body-home news-permalink">
+ <style>
+ #nav-stretcher-sticky-wrapper{display:none !important;}
+ </style>
+ <div id="skin">
+ <!-- TMZ ROS/Other -->
+ <div align="center" class="ad-container wbads" data-adsize="skin" data-adsize-list="3x3"></div>
+ </div>
+ <!-- SPONSORED SKIN AD TAG END -->
+ <!-- Google Analytics -->
+ <script>
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+ })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-51835118-1', 'auto');
+ ga('require', 'linkid', 'linkid.js');
+ ga('send', 'pageview');
+ </script>
+ <!-- END Google Analytics -->
+ <!-- Optimizely Beacon -->
+ <script src="//cdn.optimizely.com/js/806850178.js"></script>
+ <script type="text/javascript">
+ window.tmz_user_id= $.cookie('MEMBER_GUID');
+ </script>
+ <!-- BEGIN : ShareThis 02/09/2015 -->
+ <script>
+ var k=document.createElement('script');k.type='text/javascript';k.async=true;k.src='http://w.sharethis.com/button/buttons.js';document.getElementsByTagName('head')[0].appendChild(k);k.onload=function() {stLight.options(
+ {publisher: '24ac57da-241d-455f-858d-3a8f7f9b268e', version: '5x', doNotHash: true, doNotCopy: true, hashAddressBar: false}
+ )};
+ </script>
+ <!-- END : ShareThis -->
+ <!--googleoff: index-->
+ <!--googleoff: snippet-->
+ <div id="fb-root"></div>
+ <div class="masthead-ad">
+ <div id="adpos1-leaderboard" class="group" meebo:notsharable="true" style="position:relative;">
+ <center>
+ <!-- begin ad tag (tile=1) -->
+ <div align="center" class="ad-container wbads" data-adsize="leaderboard_flex"
+ data-pos="top" data-tile="1"></div>
+ <!-- End ad tag -->
+ </center>
+ </div>
+ </div>
+ <div class="masthead" id="masthead-container">
+<a class="home hide-text" href="http://www.tmz.com">TMZ</a>
+
+ <div id="showtimes-main"
+ class="showtimes">
+ <div class="showtimes-widget masthead-showtimes">
+ <div class="header">
+ <h2>Our TV Shows</h2>
+
+ </div>
+ <div class="change-location"> <span class="zip"></span>
+
+ </div>
+ <div class="zip-form-overlay">
+ <form class="stations-search-form">
+ <label class="zip-code">Enter your Zip Code</label>
+ <input type="text" class="zip-code-field"/>
+ <label alt="Submit" class="submit-search">
+ <input alt="Enter Zipcode" type="submit" value="Go"/>
+ </label>
+ </form> <a href="#" class="zip-form-close" onclick="Showtimes.hideForm($('.masthead-showtimes'));"><img src="http://ll-assets.tmz.com/www.tmz.com/main/default/cache/img/widgets/showtimes/overlay-close.v2014_05_09_134122.png"/></a>
+
+ </div>
+ <div class="showtimes-block tmz">
+ <img class="logo" src="http://ll-assets.tmz.com/www.tmz.com/main/default/cache/img/widgets/showtimes/tmz-showtimes-logo.v2014_05_09_134122.png"/>
+ <div class="stations-results"> <a class="buttons prev" href="#"></a>
+
+ <div class="viewport">
+ <ul class="overview stations js-tmz-stations" data-showtimes-url="http://www.tmz.com/when-its-on-browse"></ul>
+ </div> <a class="buttons next" href="#"></a>
+
+ </div>
+ </div>
+ <div class="showtimes-block tmzlive">
+ <img class="logo" src="http://ll-assets.tmz.com/www.tmz.com/main/default/cache/img/widgets/showtimes/tmzlive-showtimes-logo.v2014_05_09_134122.png"/>
+ <div class="stations-results"> <a class="buttons prev" href="#"></a>
+
+ <div class="viewport">
+ <ul class="overview stations js-tmzlive-stations" data-showtimes-url="http://www.tmz.com/when-is-tmz-live"></ul>
+ </div> <a class="buttons next" href="#"></a>
+
+ </div>
+ </div>
+ </div>
+ </div>
+ <script language="JavaScript" type="text/javascript" src="http://ll-assets.tmz.com/www.tmz.com/main/default/cache/tinycarousel.d2bbcf34691ddf8e9a3e21e66eb0a4cc.v2014_05_09_164122.js"></script>
+ <script>
+ // expose geo and showtimes as global because tmz has mixed use of amd
+ var WbGeoLocation;
+ var WbShowTimes;
+ require(['jquery', 'wb/geolocation/1.0.1/geolocation', 'wb/showtimes/1.0.1/showtimes'], function($, geo, wbShowTimes) {
+ geo.enableGoogleClientLocation(false);
+ geo.enableGetByCoordinates(true);
+ WbGeoLocation = geo;
+ WbShowTimes = wbShowTimes;
+
+ Showtimes.enableAutoLoad(true);
+
+ $(document).ready(function() {
+ Showtimes.init();
+ $('.masthead-showtimes').find('.buttons').not('.disable').show();
+ });
+ });
+ </script>
+ <div class="gotatip">
+ <h2>Got a Tip?</h2>
+
+ <p>Call TMZ at (888) 847-9869 or <a href="/tips/?adid=TMZ_Web_Nav_Got_A_Tip"
+ class="js-tip-form-toggle">Click Here</a>
+
+ </p>
+ </div>
+ <div class="search">
+ <form target="" name="bb_topform" action="http://www.tmz.com/search/news/"
+ onsubmit="return elasticSearch(this);" id="search">
+ <input name="q" placeholder="SEARCH TMZ" type="text"/>
+ <label alt="Submit" class="submit-search">
+ <input alt="Search TMZ.com" id="submit-search" src=" http://ll-assets.tmz.com/www.tmz.com/main/default/cache/img/widgets/search/search-icon.v2014_05_09_134122.jpg"
+ type="image"/>
+ </label>
+ </form>
+ </div>
+ </div>
+ <div class="masthead-stretcher">
+ <div class="glint"></div>
+ </div>
+ <div id="nav-stretcher"></div>
+ <nav class="clearfix" id="nav">
+ <ul class="nav-list">
+ <li id="nav-tmzhome"> <a href="http://www.tmz.com/?adid=TMZ_Web_Nav_Logo"><img itemprop="logo" src="http://ll-assets.tmz.com/www.tmz.com/main/default/cache/img/widgets/masthead/tmz-logo-62x23.v2014_05_09_134122.png" alt="tmz"/></a>
+
+ </li>
+ <li> <a href="http://www.tmz.com/celebrity-directory?adid=TMZ_Web_Nav_Celebs">Celebs</a>
+
+ </li>
+ <li> <a href="http://www.tmz.com/videos?adid=TMZ_Web_Nav_Video">Videos</a>
+
+ </li>
+ <li> <a href="http://www.tmz.com/photos?adid=TMZ_Web_Nav_Photos">Photos</a>
+
+ </li>
+ <li> <a href="http://www.tmz.com/category/tmzsports?adid=TMZ_Web_Nav_TMZSports"
+ id="tmzsports">TMZ SPORTS</a>
+
+ </li>
+ <li> <a href="http://www.tmz.com/when-its-on?adid=TMZ_Web_Nav_TMZ_On_TV" id="tmztv">TMZ TV</a>
+
+ </li>
+ <li> <a href="http://www.tmzstore.com/?adid=TMZ_Web_Nav_TMZ_Store" target="_blank">Store</a>
+
+ </li>
+ <li id="tmztourbutton" class="hotspot"> <a href="javascript:void(0)">TMZ TOURS <img src="http://ll-assets.tmz.com/www.tmz.com/main/default/cache/img/widgets/masthead/rightarrow_13x13.v2014_05_09_134122.png" alt="right-arrow"/></a>
+
+ <div
+ id="tourmenu" class="hotspot"> <a target="_blank" href="http://www.tmztour.com/?adid=TMZ_Web_Nav_Logo_Tours_Hollywood">HOLLYWOOD</a>
+
+ <a
+ target="_blank" href="http://www.tmztournyc.com/?adid=TMZ_Web_Nav_Tours_New_York">NEW YORK</a>
+ </div>
+ </li>
+ </ul>
+ <ul class="user-nav">
+ <li> <a href="http://www.tmz.com/signin?adid=TMZ_Web_Nav_Sign_In">Sign In</a>
+
+ </li>
+ <li> <a href="http://www.tmz.com/signup?adid=TMZ_Web_Nav_Register">Register</a>
+
+ </li>
+ </ul>
+ </nav>
+ <script>
+ require(['tmz/members/1.0.2/members'], function(members){
+ members.renderUserNav();
+ });
+ </script>
+ <!-- SiteCatalyst code version: H.14. Copyright 1997-2008 Omniture,
+ Inc. More info available at http://www.omniture.com -->
+ <script language="JavaScript" src="http://ll-assets.tmz.com/www.tmz.com/main/default/cache/js/s_code.v2015_01_21_110352.js"></script>
+ <script language="JavaScript">
+ var queryString = window.location.search;
+ var sidebarwidget = (window.location.href.match(/sidebarwidget/gi)) ? 'Lupita Nyong&#039;o&#039;s $150K Pearl Oscar Dress -- STOLEN!!! : ' + queryString.substring(1) : '';
+ </script>
+ <script language="JavaScript">
+ <!--
+
+ s.linkInternalFilters=s.linkInternalFilters+",tmz.com"
+ s.pageName="Lupita Nyong&#039;o&#039;s $150K Pearl Oscar Dress -- STOLEN!!!"
+ s.channel=""
+
+ s.prop1="TMZ.us"
+ s.prop2="News"
+ s.prop3="Desktop Article"
+ s.prop4=""
+ s.prop5=""
+ s.prop6=""
+ s.prop7=""
+ s.prop8=""
+ s.prop9=""
+ s.prop10=""
+ s.prop18=""
+ s.prop25=sidebarwidget;
+ s.products=""
+ s.campaign=""
+ s.events=""
+ s.eVar1=""
+ s.eVar2=""
+ s.eVar3=""
+ s.eVar4=""
+ s.eVar5=""
+ s.eVar25=sidebarwidget;
+ s.eVar30=""
+
+ /*What you see below is for the production site use. You will need to use a different DO NOT ALTER for the development site. See the Dynamic Values page for the alternate code*/
+ /************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/
+ var s_code=s.t();if(s_code)document.write(s_code)//-->
+ </script>
+ <script language="JavaScript">
+ <!--
+ if(navigator.appVersion.indexOf('MSIE')>=0)document.write(unescape('%3C')+'\!-'+'-')
+ //-->
+ </script>
+ <noscript><a href="http://www.omniture.com" title="Web Analytics"><img
+src="http://wbrostmz.112.2O7.net/b/ss/wbrostmz/1/H.14--NS/0?[AQB]&cdp=3&[AQE]"
+height="1" width="1" border="0" alt="" /></a>
+ </noscript>
+ <!--/DO NOT REMOVE/-->
+ <!-- End SiteCatalyst code version: H.14. -->
+ <div id="page">
+ <div class="featured-stories-widget">
+ <ul class="clearfix">
+ <li class="story">
+ <figure> <a class="has-adid" data-adid="hero1" href="http://www.tmz.com/2015/03/18/drake-dubai-club-fight-video/"
+ rel="bookmark">
+
+ <img class="thumb-underlined-4" src="http://ll-media.tmz.com/2015/03/18/031815-drake-dubai-primary-117x81.jpg" width="117" height="81" alt="Drake Assaulted in Dubai Nightclub (VIDEO)" border="0"/>
+
+ </a>
+
+ <figcaption> <a class="hover-text has-adid" href="http://www.tmz.com/2015/03/18/drake-dubai-club-fight-video/"
+ data-adid="hero1" rel="bookmark">
+
+ Drake Assaulted in Dubai Nightclub
+
+ </a>
+
+ </figcaption>
+ </figure>
+ </li>
+ <li class="story">
+ <figure> <a class="has-adid" data-adid="hero2" href="http://www.tmz.com/2015/03/18/tom-cruise-katie-holmes-not-speaking-suri-mission-impossible-5-visitation-jamie-foxx/"
+ rel="bookmark">
+
+ <img class="thumb-underlined-4" src="http://ll-media.tmz.com/2015/03/17/0317-tom-cruise-katie-holmes-suri-tmz-getty-117x81.jpg" width="117" height="81" alt="Tom Cruise and Katie Holmes -- No Love Lost ... NOT on Speaking Terms" border="0"/>
+
+ </a>
+
+ <figcaption> <a class="hover-text has-adid" href="http://www.tmz.com/2015/03/18/tom-cruise-katie-holmes-not-speaking-suri-mission-impossible-5-visitation-jamie-foxx/"
+ data-adid="hero2" rel="bookmark">
+
+ Tom Cruise, Katie Holmes -- No Love Lost ... NOT on Speaking Terms
+
+ </a>
+
+ </figcaption>
+ </figure>
+ </li>
+ <li class="story">
+ <figure> <a class="has-adid" data-adid="hero3" href="http://www.tmz.com/2015/03/18/karrueche-tran-own-network-interview-chris-brown-iyanla-vanzant/"
+ rel="bookmark">
+
+ <img class="thumb-underlined-4" src="http://ll-media.tmz.com/2015/03/16/0316-karrueche-own-01-117x81.jpg" width="117" height="81" alt="Karrueche Tran -- I Kicked Oprah's People Out of My House!" border="0"/>
+
+ </a>
+
+ <figcaption> <a class="hover-text has-adid" href="http://www.tmz.com/2015/03/18/karrueche-tran-own-network-interview-chris-brown-iyanla-vanzant/"
+ data-adid="hero3" rel="bookmark">
+
+ Karrueche Tran -- I Kicked Oprah's People Out of My House
+
+ </a>
+
+ </figcaption>
+ </figure>
+ </li>
+ <li class="story">
+ <figure> <a class="has-adid" data-adid="hero4" href="http://www.tmz.com/2015/03/18/shark-tank-star-robert-herjavec-dating-dwts-partner/"
+ rel="bookmark">
+
+ <img class="thumb-underlined-4" src="http://ll-media.tmz.com/2015/03/18/0318-robert-kym-tmz-01-117x81.jpg" width="117" height="81" alt="'Shark Tank' Star Robert Herjavec ... Dating 'DWTS' Partner Kym Johnson" border="0"/>
+
+ </a>
+
+ <figcaption> <a class="hover-text has-adid" href="http://www.tmz.com/2015/03/18/shark-tank-star-robert-herjavec-dating-dwts-partner/"
+ data-adid="hero4" rel="bookmark">
+
+ 'Shark Tank' Star Robert Herjavec Dating 'DWTS' Partner Kym Johnson
+
+ </a>
+
+ </figcaption>
+ </figure>
+ </li>
+ <li class="story">
+ <figure> <a class="has-adid" data-adid="hero5" href="http://www.tmz.com/2015/03/18/adam-levine-hits-fan-microphone-toronto-concert-video/"
+ rel="bookmark">
+
+ <img class="thumb-underlined-4" src="http://ll-media.tmz.com/2015/03/18/031815-adam-lavine-primary-117x81.jpg" width="117" height="81" alt="Adam Levine -- Unlucky Strike ... Nails Fan In The Head With Mic (NEW VIDEO)" border="0"/>
+
+ </a>
+
+ <figcaption> <a class="hover-text has-adid" href="http://www.tmz.com/2015/03/18/adam-levine-hits-fan-microphone-toronto-concert-video/"
+ data-adid="hero5" rel="bookmark">
+
+ Adam Levine -- Unlucky Strike ... Nails Fan in Head With Mic
+
+ </a>
+
+ </figcaption>
+ </figure>
+ </li>
+ <li class="story">
+ <figure> <a class="has-adid" data-adid="hero6" href="http://www.tmz.com/2015/03/18/robert-durst-murder-search-warrant-latex-mask-identity-the-jinx/"
+ rel="bookmark">
+
+ <img class="thumb-underlined-4" src="http://ll-media.tmz.com/2015/03/16/0316-robert-durst-hbo-10-117x81.jpg" width="117" height="81" alt="Robert Durst -- Arrested with Latex Mask In Apparent Attempt to Change Identity" border="0"/>
+
+ </a>
+
+ <figcaption> <a class="hover-text has-adid" href="http://www.tmz.com/2015/03/18/robert-durst-murder-search-warrant-latex-mask-identity-the-jinx/"
+ data-adid="hero6" rel="bookmark">
+
+ Robert Durst Arrested with Latex Mask In Apparent Attempt to Change Identity
+
+ </a>
+
+ </figcaption>
+ </figure>
+ </li>
+ <li class="story">
+ <figure> <a class="has-adid" data-adid="hero7" href="http://www.tmz.com/2015/03/18/kylie-jenner-17-bathing-suit-photo/"
+ rel="bookmark">
+
+ <img class="thumb-underlined-4" src="http://ll-media.tmz.com/2015/03/18/0318-kylie-jenner-splash-117x81.jpg" width="117" height="81" alt="Kylie Jenner -- When I Was 17 ... (PHOTO)" border="0"/>
+
+ </a>
+
+ <figcaption> <a class="hover-text has-adid" href="http://www.tmz.com/2015/03/18/kylie-jenner-17-bathing-suit-photo/"
+ data-adid="hero7" rel="bookmark">
+
+ Kylie Jenner -- When I Was 17 ...
+
+ </a>
+
+ </figcaption>
+ </figure>
+ </li>
+ <li class="story">
+ <figure> <a class="has-adid" data-adid="hero8" href="http://www.tmz.com/2015/03/18/miley-cyrus-patrick-schwarzenegger-cabo-photos-usc/"
+ rel="bookmark">
+
+ <img class="thumb-underlined-4" src="http://ll-media.tmz.com/2015/03/18/0318-miley-patrick-splash-03-117x81.jpg" width="117" height="81" alt="Miley Cyrus -- She's Hung Out With Patrick Schwarzenegger's Cabo Chick" border="0"/>
+
+ </a>
+
+ <figcaption> <a class="hover-text has-adid" href="http://www.tmz.com/2015/03/18/miley-cyrus-patrick-schwarzenegger-cabo-photos-usc/"
+ data-adid="hero8" rel="bookmark">
+
+ Miley Cyrus -- She's Hung Out With Patrick's Cabo Girl
+
+ </a>
+
+ </figcaption>
+ </figure>
+ </li>
+ </ul>
+ </div>
+ <div class="breadcrumbs group"><a href="/" id="breadcrumb-home">Home</a>
+ <h1 itemprop="headline" class="post-title-breadcrumb">Lupita Nyong'o's $150K Pearl Oscar Dress -- STOLEN!!!</h1>
+ </div>
+ <div id="main-content">
+ <!-- AROUND THE WEB POSTS START -->
+ <article class="news single">
+ <div class="post single-post" id="post-2015_02_26_lupita-nyongo-pearl-dress-stolen-oscars">
+ <div class="headline">
+ <h2 class="hf1">Lupita Nyong'o</h2>
+
+ <h4 class="hf2">$150K Pearl Oscar Dress ... STOLEN!!!!</h4>
+
+ </div>
+ <h5 class="article-posted-date">
+ 2/26/2015 7:11 AM PST BY TMZ STAFF
+ </h5>
+
+ <div itemprop="articleBody" class="all-post-body group article-content">
+ <div class="primary-image-swipe"><span>EXCLUSIVE</span>
+ </div>
+ <p>
+ <img alt="0225-lupita-nyongo-getty-01" src="http://ll-media.tmz.com/2015/02/26/0225-lupita-nyongo-getty-4.jpg"/><strong>Lupita Nyong</strong>'<strong>o</strong>'s now-famous Oscar dress
+ -- adorned in pearls -- was stolen right out of her hotel room ... TMZ
+ has learned.</p>
+ <p>Law enforcement sources tell TMZ ... the dress was taken out of Lupita's
+ room at The London West Hollywood. The dress is made of pearls ... 6,000
+ white Akoya pearls. It's valued at $150,000.</p>
+ <p>Our sources say Lupita told cops it was taken from her room sometime between
+ 8 AM and 9 PM Wednesday ... while she was gone. &nbsp;</p>
+ <p>We're told there is security footage that cops are looking at that could
+ catch the culprit right in the act.&nbsp;</p>
+ <p>
+ <img alt="update_graphic_red_bar" src="http://ll-media.tmz.com/2013/11/20/update-graphic-red-bar.jpg"/><strong>12:00 PM PT</strong> -- Sheriff's deputies were at The London Thursday
+ morning. &nbsp;We know they were in the manager's office and we're told
+ they have looked at security footage to determine if they can ID the culprit.</p>
+ <p>
+ <img alt="0226-SUB-london-hotel-swipe-tmz-02" src="http://ll-media.tmz.com/2015/02/26/0226-sub-london-hotel-swipe-tmz-11.jpg"/>
+ </p> <a name="continued"></a>
+
+ <div class="related clearfix">
+
+<h3><span>See also</span></h3>
+
+ <ul>
+ <li><a href="http://www.tmz.com/2014/12/31/french-laundry-restaurant-robbed-wine-stolen/">French Laundry -- $300,000 Worth of Wine Stolen From Restaurant You WIll Never Get Into</a>
+ </li>
+ <li><a href="http://www.tmz.com/2015/01/08/miley-cyrus-house-burglary-robbed/">Miley Cyrus -- Burglary Victim ... AGAIN</a>
+ </li>
+ <li><a href="http://www.tmz.com/2015/01/30/dog-stolen-beverly-hills-store-charlie-switch-lost/">Stolen Beverly Hills Dog -- Hilary Duff &amp; Celeb Posse Scour City</a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ <!-- ALL POST BODY END -->
+ </div>
+ <!--end post-single -->
+ <div class="email-opt-in-container">
+ <iframe id="opt-in-iframe" width="0" height="0" scrolling="no" name="opt-in-iframe"></iframe>
+ <div class="opt-container">
+ <div id="email-opt-in" class="email-opt-in wrapper">
+ <div class="container">
+ <div class="opt-in-logo"></div>
+ <div class="content">Get <span class="highlight">TMZ Breaking News</span> alerts to your inbox</div>
+ <div
+ id="optin-errormsg"></div>
+ <form id="opt_in_form" method="post" action="http://www.nl.tmz.com/subscribev2.php"
+ target="opt-in-iframe" onsubmit="return emailValidation()">
+ <input type="text" id="email" name="email" value="[email protected]" placeholder="[email protected]"
+ size="30" maxlength="150"/>
+ <input class="opt-in-submit" type="submit" value="SUBMIT"/>
+ <div class="email-groups">
+ <input type="hidden" name="groups[]" value="268"/>
+ <input type="checkbox" name="groups[]" value="3" id="yesbox" checked=""/>
+ <label for="yesbox">Yes! Also send me
+ <br/><strong>"In Case You Missed It..."</strong>
+ </label>
+ </div> <span class="policy-link">By clicking "Submit," you agree to the <a href="http://www.warnerbros.com/privacy/policy.html" target="_new">Privacy Policy</a> and <a href="http://www.tmz.com/terms/" target="_new">Terms of Use</a>. &gt;</span>
+
+ <input
+ type="hidden" id="return_url" name="return_url" value="http://www.tmz.com/email-optin-thanks/"/>
+ </form>
+ </div>
+ </div>
+ <script type="text/javascript">
+ $(function(){
+ $("input#email").focus(function(){
+ var email = $("input#email").val();
+ if (email === '[email protected]') {
+ $("input#email").val('');
+ }
+
+ });
+ $("input#email").blur(function() {
+ var email = $("input#email").val();
+ if (email === "") {
+ $("input#email").val('[email protected]');
+ }
+ });
+ });
+
+ function emailValidation() {
+ var errorsContainer = $('#optin-errormsg');
+
+ var validEmail = 0;
+ var email = document.getElementById('email');
+ var emailVal = $("input#email").val();
+ var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
+
+ if (email != null && 0 !== emailVal.length && emailVal !== '[email protected]') {
+ if(filter.test(email.value)) {
+ validEmail = 1;
+ }
+ }
+
+ if (validEmail == 1) {
+ var opts = {
+ lines: 7, // The number of lines to draw
+ length: 5, // The length of each line
+ width: 7, // The line thickness
+ radius: 10, // The radius of the inner circle
+ corners: 0.7, // Corner roundness (0..1)
+ rotate: 0, // The rotation offset
+ direction: 1, // 1: clockwise, -1: counterclockwise
+ color: '#000', // #rgb or #rrggbb
+ speed: 1, // Rounds per second
+ trail: 60, // Afterglow percentage
+ shadow: false, // Whether to render a shadow
+ hwaccel: false, // Whether to use hardware acceleration
+ className: 'spinner', // The CSS class to assign to the spinner
+ zIndex: 2e9, // The z-index (defaults to 2000000000)
+ top: 'auto', // Top position relative to parent in px
+ left: 'auto' // Left position relative to parent in px
+ };
+ var target = document.getElementById('email-opt-in');
+ var spinner = new Spinner(opts).spin(target);
+
+ return true;
+ } else {
+ if(validEmail == 0) {
+ var errorMessage = 'E-mail address is not valid!';
+ }
+
+ errorsContainer.html(errorMessage);
+ return false;
+ }
+ }
+ </script>
+ </div>
+ </div>
+ <footer class="article-footer clearfix">
+ <div class="see-more">
+ <h5>
+ See More:&nbsp;
+ </h5>
+ <a href="http://www.tmz.com/person/lupita-nyongo/" target="_self">Lupita Nyong'o</a>
+,&nbsp;
+ <a
+ href="http://www.tmz.com/category/exclusive/" target="_self">Exclusive</a>,&nbsp; <a href="http://www.tmz.com/category/fashion/" target="_self">Fashion</a>
+,&nbsp;
+ <span
+ class="seemore-show">3 More</span> <span class="seemore-more">
+ <a href="http://www.tmz.com/category/awards-awards-shows/" target="_self">Awards / Awards Shows</a>
+
+ ,&nbsp;
+
+ <a href="http://www.tmz.com/category/academy-awards/" target="_self">The Oscars</a>
+
+ ,&nbsp;
+
+ <a href="http://www.tmz.com/category/celebrity-justice/" target="_self">CELEBRITY JUSTICE ™</a>
+ <span class="seemore-hide">Hide these</span>
+</span>
+ </div>
+ <div class="sharing-widget">
+ <ul>
+ <li>
+ <div class="sociallite fb-custom-share" data-href="http://www.tmz.com/2015/02/26/lupita-nyongo-pearl-dress-stolen-oscars/"></div>
+ </li>
+ <li> <a href="https://twitter.com/share" class="socialite twitter-share" data-url="http://www.tmz.com/2015/02/26/lupita-nyongo-pearl-dress-stolen-oscars/"
+ data-text="Lupita Nyong'o's $150K Pearl Oscar Dress -- STOLEN!!!" data-via="TMZ"
+ data-related="HarveyLevinTMZ" data-count="horizontal"></a>
+
+ </li>
+ <li> <a class="g-plus socialite googleplus-one" href="https://plus.google.com/share?url=http://www.tmz.com/2015/02/26/lupita-nyongo-pearl-dress-stolen-oscars/"
+ data-action="share" data-href="http://www.tmz.com/2015/02/26/lupita-nyongo-pearl-dress-stolen-oscars/"
+ data-annotation="bubble" data-size="medium"></a>
+
+ </li>
+ <li class="comment-btn"> <a href="http://www.tmz.com/2015/02/26/lupita-nyongo-pearl-dress-stolen-oscars/#disqus_thread"
+ data-disqus-identifier="b48ab5a6-bdca-11e4-bb2e-30342d324647">Comments</a>
+
+ </li>
+ </ul>
+ </div>
+ </footer>
+ <script type="text/javascript">
+ require(['tmz/disqus/1.0.2/disqus'], function(disqus) {
+ disqus.setShortname("tmz");
+ disqus.initCommentCounter();
+ });
+ </script>
+ </article>
+ <div class="legacy">
+ <div id="taboola-grid-4x2" style="width:560px;margin:auto;"></div>
+ <script type="text/javascript">
+ window._taboola = window._taboola || [];
+ _taboola.push({article:'auto'});
+ _taboola.push({mode:'grid-4x2', container:'taboola-grid-4x2'});
+ </script>
+ <script type="text/javascript" src="http://cdn.taboolasyndication.com/libtrc/tmz/loader.js"></script>
+ <script type="text/JavaScript">
+ var OB_permalink= 'http://www.tmz.com/2015/02/26/lupita-nyongo-pearl-dress-stolen-oscars/';
+ var OB_widgetId= 'AR_2';
+ var OB_Template = "tmz";
+ var OB_langJS ='http://widgets.outbrain.com/lang_en.js';
+ if (!navigator.userAgent.match(/Android|iPhone|iPad|iPod/i)) {
+ if ( typeof(OB_Script)!='undefined' ) {
+ OutbrainStart();
+ }
+ else
+ {
+ var OB_Script = true;
+ var str = "&lt;script src='http://widgets.outbrain.com/outbrainWidget.js' type='text/javascript'>&lt;/"+"script>"
+ document.write(str);
+ }
+ }
+ </script>
+ <!-- Start TMZ - Tablet -->
+ <div id="__kx_ad_178"></div>
+ <script type="text/javascript" language="javascript">
+ var __kx_ad_slots = __kx_ad_slots || [];
+
+ (function () {
+ var slot = 178;
+ var h = false;
+ __kx_ad_slots.push(slot);
+ if (typeof __kx_ad_start == 'function') {
+ __kx_ad_start();
+ } else {
+ var s = document.createElement('script');
+ s.type = 'text/javascript';
+ s.async = true;
+ s.src = 'http://cdn.kixer.com/ad/load.js';
+ s.onload = s.onreadystatechange = function(){
+ if (!h && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete')) {
+ h = true;
+ s.onload = s.onreadystatechange = null;
+ __kx_ad_start();
+ }
+ };
+ var x = document.getElementsByTagName('script')[0];
+ x.parentNode.insertBefore(s, x);
+ }
+ })();
+ </script>
+ <!-- End TMZ - Tablet -->
+ </div>
+ <div class="quigo-permalink group" style="padding-top: 15px;margin-bottom:20px;position:relative;z-index:0;">
+ <script type="text/javascript">
+ adsonar_placementId=1512388;adsonar_pid=1098767;adsonar_ps=-1;adsonar_zw=245;adsonar_zh=325;adsonar_jv='ads.adsonar.com';
+ </script>
+ <script language="JavaScript" src="http://js.adsonar.com/js/adsonar.js"></script>
+ <div style="float:right;width:300px;height:250px;">
+ <!-- begin ad tag (tile=4) adpos4 -->
+ <div align="center" class="ad-container wbads" data-adsize="medium_rectangle"
+ data-pos="bottom" data-tile="4"></div>
+ <!-- End ad tag -->
+ </div>
+ </div>
+ <div class="clear"></div>
+ <!-- Disqus Thread -->
+ <div id="disqus_thread"></div>
+ <script type="text/javascript">
+ require(['tmz/disqus/1.0.2/disqus'], function(disqus) {
+ disqus.setShortname("tmz");
+ disqus.setPublicApiKey('gkiRjQcUi7n2Dm6vpagQiOKQhO5CwHqenKNcPCn64LG7KbXY4FAWX2iGTmxv9wOg');
+ disqus.setName('TMZ.com');
+ disqus.setTitle('Lupita Nyong&#039;o&#039;s $150K Pearl Oscar Dress -- STOLEN!!!');
+ disqus.setIdentifier('b48ab5a6-bdca-11e4-bb2e-30342d324647');
+ disqus.setRestNewCommentEndpoint('/api/v1/comments/');
+ disqus.setRestSsoGuidEndpoint('/api/v1/disqus/');
+ disqus.setRestSsoSlugEndpoint('/api/v1/disqus/slug/');
+ disqus.setUrlSignIn('/disqus/signin');
+ disqus.setUrlSignOut('/signout');
+ disqus.setVersion('1.0.2');
+
+ disqus.initEmbed();
+ });
+ </script>
+ </div>
+ <!-- end #main-content -->
+ <aside id="sidebar">
+ <!-- Adpos2 ATF -->
+ <div id="adpos2" class="group">
+ <div id="ad2">
+ <div class="adbadge">Advertisement</div>
+ <!-- begin ad tag (tile=2) -->
+ <div align="center" class="ad-container wbads" data-adsize="medium_rectangle_flex"
+ data-pos="top" data-tile="2"></div>
+ <!-- End ad tag -->
+ </div>
+ </div>
+ <!-- Adpos2 ATF END -->
+ <div class="followtmz sidebar-widget" id="follow-tmz"></div>
+ <script>
+ require(['widgets/sidebar/followtmz/followtmz'],function(follow){
+ follow.render('#follow-tmz');
+
+
+ !function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');
+
+ (function(d, s, id) {var js, fjs = d.getElementsByTagName(s)[0];if (d.getElementById(id)) return;js = d.createElement(s);js.id = id;js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.0";fjs.parentNode.insertBefore(js, fjs);}(document, 'script', 'facebook-jssdk'));
+ });
+ </script>
+ <div class="sidebar-widget posts-widget around-the-web-posts">
+ <div class="widget-title">Around The Web</div>
+ <div id="zergnet-widget-16910" style="text-align:center;"> <a href="http://www.zergnet.com/?w=16910" target="_blank"><b>ZergNet</b></a>
+
+ </div>
+ <script language="javascript" type="text/javascript">
+ (function() {
+ var zergnet = document.createElement('script');
+ zergnet.type = 'text/javascript'; zergnet.async = true;
+ zergnet.src = 'http://www.zergnet.com/zerg.js?id=16910';
+ var znscr = document.getElementsByTagName('script')[0];
+ znscr.parentNode.insertBefore(zergnet, znscr);
+ })();
+ </script>
+ <article class="clearfix"> <a href="http://gossipgirl.alloyentertainment.com/kourtney-kardashian-weight-31715/#4"
+ target="_blank"><img alt="1222_kourtney_main" src="http://ll-media.tmz.com/2014/12/22/1222-kourtney-main-139x99.jpg"/></a>
+
+ <a
+ class="subheader" href="http://gossipgirl.alloyentertainment.com/kourtney-kardashian-weight-31715/#4"
+ target="_blank" rel="nofollow">Kourtney Kardashian Shares Post-Baby Weight</a>
+ <h5>
+
+ </h5>
+
+ </article>
+ <article class="clearfix"> <a href="http://www.popoholic.com/2015/03/17/selena-gomez-instagrams-her-braless-bosom/"
+ target="_blank"><img alt="0119_selena_main" src="http://ll-media.tmz.com/2015/01/19/0119-selena-main-139x99.jpg"/></a>
+
+ <a
+ class="subheader" href="http://www.popoholic.com/2015/03/17/selena-gomez-instagrams-her-braless-bosom/"
+ target="_blank" rel="nofollow">Selena Gomez Instagrams Her Braless Bosom</a>
+ <h5>
+
+ </h5>
+
+ </article>
+ <article class="clearfix"> <a href="http://www.lovebscott.com/news/oh-no-kylie-jenner-suffers-a-boob-contour-fail-on-the-red-carpet-photos"
+ target="_blank"><img alt="0316_kylie_main" src="http://ll-media.tmz.com/2015/03/16/0316-kylie-main-139x99.jpg"/></a>
+
+ <a
+ class="subheader" href="http://www.lovebscott.com/news/oh-no-kylie-jenner-suffers-a-boob-contour-fail-on-the-red-carpet-photos"
+ target="_blank" rel="nofollow">When Boob Contouring Fails</a>
+ <h5>
+
+ </h5>
+
+ </article>
+ </div>
+ <div id="grv-personalization-13" class="sidebar-widget"></div>
+ <script type="text/javascript">
+ //<![CDATA[
+ (function(){
+ window.gravityInsightsParams = {
+ 'type': 'content',
+ 'action': '',
+ 'site_guid': '82893b79564009a4d8fab7b9db32cfea'
+ };
+ var adServerReq,bUrl,cburl,doUseGravityUserGuid,includeJs,jq,pfurl,type,ug,wlPrefix,wlUrl,_ref,_ref1,_ref2;includeJs=function(a){var b;b=document.createElement("script");b.async=!0;b.src=a;a=document.getElementsByTagName("script")[0];return a.parentNode.insertBefore(b,a)};bUrl="";ug=(doUseGravityUserGuid=!0===gravityInsightsParams.useGravityUserGuid?1:0)?"":gravityInsightsParams.user_guid||(null!=(_ref=/grvinsights=([^;]+)/.exec(document.cookie))?_ref[1]:void 0)||"";
+ wlUrl=(wlPrefix="https:"===location.protocol?"https://secure-api.gravity.com/v1/api/intelligence":"http://rma-api.gravity.com/v1/api/intelligence",jq=(null!=(_ref1=window.jQuery)?null!=(_ref2=_ref1.fn)?_ref2.jquery:void 0:void 0)||"",type="iframe",adServerReq=gravityInsightsParams.ad||"",cburl=gravityInsightsParams.cburl||"",pfurl=gravityInsightsParams.pfurl||"",""+wlPrefix+"/wl?jq="+jq+"&sg="+gravityInsightsParams.site_guid+"&ug="+ug+"&ugug="+doUseGravityUserGuid+"&id=grv-personalization-13&pl=13"+
+ ("&type="+type+"&ad="+adServerReq+"&cburl=")+encodeURIComponent(cburl)+"&pfurl="+encodeURIComponent(pfurl)+("&x="+(new Date).getTime())+("undefined"!==typeof forceArticleIds&&null!==forceArticleIds&&forceArticleIds.join?"&ai="+forceArticleIds.join(","):"")+("undefined"!==typeof apids&&null!==apids&&""!==apids?"&apids="+encodeURIComponent(apids):""));bUrl&&includeJs(bUrl);wlUrl&&(window.gravityInsightsParams.sidebar&&(window.gravityInsightsParams.wlStartTime=(new Date).getTime()),includeJs(wlUrl));})();
+ //]]>
+ </script>
+ <!-- no franchise results -->
+ <div class="sidebar-widget next-tmz-widget sidebar-showtimes">
+ <div class="widget-title">NEXT on TMZ...</div> <span class="module-title-1">EPISODE 165, WEDNESDAY MARCH 18TH</span>
+
+ <span
+ class="headingtext">WHAT'S ON TODAY'S SHOW</span>
+ <div id="rr-gameofthrones-video-container"
+ style="position: relative;">
+ <div id="rr-gameofthrones-video" style="width: 300px; height: 216px;">
+ <hr/>
+ </div>
+ <div id="rr-gameofthrones-video-done" style="position: absolute; top: 0px; width: 300px; height: 156px; display: none; background: black;">
+ <img src="http://ll-media.tmz.com/2013/06/06/tmz-promo-end-card-1.jpg"
+ width="300"/>
+ </div>
+ </div>
+ <script type="text/javascript">
+ // <![CDATA[
+ function rrGameOfThronesVideoAfterPlayed() {
+ $('#rr-gameofthrones-video-done').show();
+ }
+
+ function rrGameOfThronesVideoPlayed() {
+ $('#rr-gameofthrones-video-done').hide();
+ }
+
+ kWidget.embed({
+ 'targetId': 'rr-gameofthrones-video',
+ 'wid': '_591531',
+ 'uiconf_id' : '22960621',
+ 'entry_id' : '0_h7f462sc',
+ 'width': '300px',
+ 'height': '216px',
+ 'flashvars':{ // flashvars allows you to set runtime uiVar configuration overrides.
+ 'autoPlay': false,
+ 'externalInterfaceDisabled': 'false'
+ },
+ 'params':{ // params allows you to set flash embed params such as wmode, allowFullScreen etc
+ 'wmode': 'transparent'
+ },
+ readyCallback: function( playerId ){
+ var kdp = document.getElementById('rr-gameofthrones-video');
+ kdp.addJsListener("playerPlayEnd", "rrGameOfThronesVideoAfterPlayed");
+ kdp.addJsListener("playerPlayed", "rrGameOfThronesVideoPlayed")
+ console.log( 'Player:' + playerId + ' is ready ');
+ }
+ });
+ // ]]>
+ </script>
+ <div class="next-tmz-locator"> <span>Watch TMZ on TV:</span>
+
+ <div class="stations-results">
+ <ul class="stations js-stations" data-showtimes-url="http://www.tmz.com/when-its-on-browse"></ul>
+ </div>
+ <div class="zip-form-overlay">
+ <form class="stations-search-form">
+ <label class="zip-code">Enter your Zip Code</label>
+ <input type="text" class="zip-code-field"/>
+ <label alt="Submit" class="submit-search">
+ <input alt="Enter Zipcode" type="submit" value="Go"/>
+ </label>
+ </form>
+ </div>
+ <div class="change-location"> <span class="zip"></span>
+
+ </div>
+ </div>
+ </div>
+ <div class="sidebar-widget tmz-tv-clips-widget">
+ <div class="widget-title">TMZ TV CLIPS</div>
+ <ul>
+ <li>
+ <!-- nothing was scheduled to appear in rr-tmz-tv-clips-1 -->
+ </li>
+ <li> <a class="video-thumb" href="http://www.tmz.com/videos/0_f4lfqd8l/?adid=sidebarwidget_tv_clips"
+ onclick="tmzVideosLightbox('0_f4lfqd8l/?adid=sidebarwidget_tv_clips'); return false;"><img src="http://ll-media.tmz.com/2015/03/18/0-j2m1i8eb-300w.jpg" class="video-img" alt="Sidebar TMZ TV Clips 2"/></a>
+
+ <a
+ class="video-title" href="http://www.tmz.com/videos/0_f4lfqd8l/?adid=sidebarwidget_tv_clips"
+ onclick="tmzVideosLightbox('0_f4lfqd8l/?adid=sidebarwidget_tv_clips'); return false;"><span class="video-title-1">Model Rosalind Lipsett Explains Why </span>
+ <span
+ class="video-title-2">There Are So Many Irish People In America!</span>
+ </a>
+ </li>
+ <li> <a class="video-thumb" href="http://www.tmz.com/videos/0_0n3coul5/?adid=sidebarwidget_tv_clips"
+ onclick="tmzVideosLightbox('0_0n3coul5/?adid=sidebarwidget_tv_clips'); return false;"><img src="http://ll-media.tmz.com/2015/03/18/0-dryjnrzt-300w.jpg" class="video-img" alt="Sidebar TMZ TV Clips 3"/></a>
+
+ <a
+ class="video-title" href="http://www.tmz.com/videos/0_0n3coul5/?adid=sidebarwidget_tv_clips"
+ onclick="tmzVideosLightbox('0_0n3coul5/?adid=sidebarwidget_tv_clips'); return false;"><span class="video-title-1">Nick Cannon: Chicks Love </span><span class="video-title-2">My New Back Tattoo!</span>
+ </a>
+ </li>
+ <li>
+ <!-- nothing was scheduled to appear in rr-tmz-tv-clips-4 -->
+ </li>
+ </ul>
+ <div class="widget-footer"> <a href="http://www.tmz.com/videos?adid=sidebarwidget_tv_clips" target="_blank">VIEW ALL VIDEOS »</a>
+
+ </div>
+ </div>
+ <div class="sidebar-widget tmz-live-widget">
+ <div class="widget-title">TMZ LIVE!</div>
+ <div>
+ <h5><a href="http://www.tmz.com/2015/03/17/tmz-live-chris-brown-royalty-miley-cyrus-patrick-schwarzenegger-kanye-west-president-obama-jimmy-kimmel-kim-kardashian/?adid=sidebarwidget-tmzlive">TMZ Live: Chris Brown: My Baby's Already Getting the V.I.P. Treatment!</a></h5>
+ <a href="http://www.tmz.com/2015/03/17/tmz-live-chris-brown-royalty-miley-cyrus-patrick-schwarzenegger-kanye-west-president-obama-jimmy-kimmel-kim-kardashian/?adid=sidebarwidget-tmzlive"
+ class="video-thumb">
+
+ <img src="http://ll-media.tmz.com/2015/03/18/0317-tmz-live-primary-300x163.jpg" width="300" height="163" alt="TMZ Live: Chris Brown: My Baby's Already Getting the V.I.P. Treatment!" border="0"/>
+
+ </a>
+
+ <p class="rr-excerpt">// HERE'S THE RUNDOWN Miley Cyrus is NOT Happy with Her Boyfriend Kanye
+ West Proves President Obama is WRONG Bruce Jenner Has Another Facial Adjustment
+ Procedure Millions of Dollars are at Stake in Pam Anderson's Divorce</p>
+ </div>
+ <div class="tmz-live-past-eps">
+ <div class="eps-row">
+ <ul class="clearfix">
+ <li class="eps-day"><a class="default-headline" href="http://www.tmz.com/2015/03/16/tmzlive-robert-durst-the-jinx-hbo-pamela-anderson-sam-simon-justin-bieber-birthday-empire/?adid=sidebarwidget-tmzlive">Monday's</a>
+ </li>
+ <li class="eps-title"><a class="default-headline" href="http://www.tmz.com/2015/03/16/tmzlive-robert-durst-the-jinx-hbo-pamela-anderson-sam-simon-justin-bieber-birthday-empire/?adid=sidebarwidget-tmzlive">TMZ Live: Pamela Anderson: Persona…</a>
+ </li>
+ <li class="eps-day"><a class="default-headline" href="http://www.tmz.com/2015/03/13/tmz-live-lil-wayne-miley-cyrus-patrick-schwarzenegger-kathy-griffin-fashion-police-pharrell-marvin-gaye-robin-thicke-blurred-lines-happy-robert-downey-jr/?adid=sidebarwidget-tmzlive">Friday's</a>
+ </li>
+ <li class="eps-title"><a class="default-headline" href="http://www.tmz.com/2015/03/13/tmz-live-lil-wayne-miley-cyrus-patrick-schwarzenegger-kathy-griffin-fashion-police-pharrell-marvin-gaye-robin-thicke-blurred-lines-happy-robert-downey-jr/?adid=sidebarwidget-tmzlive">TMZ Live: Lil Wayne: Why Is There…</a>
+ </li>
+ <li class="eps-day"><a class="default-headline" href="http://www.tmz.com/2015/03/12/tmz-live-kelly-ripa-new-york-city-townhouse-justin-bieber-floyd-mayweather-manny-pacquiao-robin-thicke-marvin-gaye-blurred-lines-pharrell/?adid=sidebarwidget-tmzlive">Thursday's</a>
+ </li>
+ <li class="eps-title"><a class="default-headline" href="http://www.tmz.com/2015/03/12/tmz-live-kelly-ripa-new-york-city-townhouse-justin-bieber-floyd-mayweather-manny-pacquiao-robin-thicke-marvin-gaye-blurred-lines-pharrell/?adid=sidebarwidget-tmzlive">TMZ Live: Kelly Ripa: Holy Crap!…</a>
+ </li>
+ </ul>
+ </div>
+ <div class="tmz-live-meta"> <a href="https://itunes.apple.com/us/podcast/tmz-live/id418086839" target="_blank">Also Available on iTunes</a>
+
+ <a
+ class="tmz-live-pngsprite sprite-tmz-past-view-all" href="http://www.tmz.com/category/tmz-live?adid=sidebarwidget-tmzlive">View All</a>
+ </div>
+ <div id="hidr" class="past-eps-btn-close">CANCEL AND CLOSE</div>
+ </div>
+ <div id="showr" class="widget-footer past-eps-btn-open"> <a href="javascript:void(0)">VIEW PAST EPISODES »</a>
+
+ </div>
+ <div class="when-its-on-widget">
+ <h3>Find out when TMZ <em>Live</em> is on near you!</h3>
+
+ <div class="next-tmzlive-locator">
+ <form class="stations-search-form">
+ <input type="text" class="zip-code-field"/>
+ <label alt="Submit" class="submit-search">
+ <input alt="Enter Zipcode" type="submit" value="Go"/>
+ </label>
+ </form>
+ <div class="stations-results">
+ <ul class="stations js-stations" data-showtimes-url="http://www.tmz.com/when-is-tmz-live"></ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="sidebar-widget single-post">
+ <div style="position:relative;width:300px;height:492px;overflow:hidden;">
+ <iframe width="300" height="492" frameborder="0" scrolling="no" src="http://tmz.vo.llnwd.net/o28/tmztourbus/swf/0120-tmztour-rr-promo.html"></iframe>
+ </div>
+ <br/>
+ <br/>
+<a class="lightbox-link" href="http://www.tmz.com/videos/0_4yt1vo4z/?adid=sidebar-sports-hw-show"
+ target="_blank"><img src="http://ll-media.tmz.com/2015/03/18/0318-dave-chappelle-son-boxing-prodigy-sports-promo-1.jpg"/></a>
+ <br/>
+ <br/>
+ <div style="display:none"><a href="http://www.tmz.com/when-is-tmz-sports/?adid=sidebar-sports-showtimes"
+ target="_blank"><img src="http://ll-media.tmz.com/2014/01/14/20140114-rr-sports-tv-promo-1.jpg" alt="New - TMZ Sports TV Show - Click here for showtimes."/></a>
+ </div>
+<a href="http://www.tmz.com/2015/03/17/floyd-mayweather-sworn-off-fast-food-manny-pacquiao-fight-diet/?adid=sidebar-sports-top-story"><img src="http://ll-media.tmz.com/2015/03/17/0317-tmz-sports-promo-launch-1.jpg"/></a>
+ <br/>
+ <br/> <a href="http://www.tmz.com/2015/03/18/coco-birthday-instagram-photos-ass-wcw/?adid=sidebar-promo-coco-birthday-butt"><img alt="coco butt photos" src="http://ll-media.tmz.com/2015/03/17/0317-sidebar-coco-cake-birthday-booty-promo2-1.gif"/></a>
+
+ <!--DO
+ NOT TOUCH OR DELETE ANYTHING AFTER THIS THIS-->
+ </div>
+ <!-- adpos7 BTF -->
+ <div id="adpos7" class="sidebar-widget group">
+ <div class="rr-top"></div>
+ <div class="rr-mid">
+ <div id="ad7">
+ <!-- begin ad tag (tile=7) -->
+ <div align="center" class="ad-container wbads" data-adsize="medium_rectangle"
+ data-pos="bottom" data-tile="7"></div>
+ <!-- End ad tag -->
+ </div>
+ </div>
+ <div class="rr-bottom"></div>
+ </div>
+ <!-- adpos7 END -->
+ <div class="sidebar-widget photo-gallery-widget" onclick="tmzPhotosLightbox('2015/03/16/patrick-schwarzenegger-body-shots-hugging-girl-cabo-photos/?adid=permasidebarwidget-gallery-1'); return false;">
+ <div class="widget-title">PHOTO GALLERY</div>
+ <figure>
+ <h5><a href="http://www.tmz.com/photos/2015/03/16/patrick-schwarzenegger-body-shots-hugging-girl-cabo-photos/?adid=permasidebarwidget-gallery-1">Patrick Schwarzenegger -- Party in the C.A.B.O. ... And That Ain't Miley! </a></h5>
+ <a href="http://www.tmz.com/photos/2015/03/16/patrick-schwarzenegger-body-shots-hugging-girl-cabo-photos/?adid=permasidebarwidget-gallery-1"><img class="rr-featured-photo-gallery" src="http://ll-media.tmz.com/2015/03/16/patrick-schwarzenegger-body-shots-hugging-girl-photos-01-300w.jpg" alt="RR Featured Photo Gallery 1 " border="0"/></a>
+
+ <figcaption
+ class="photo-meta"> <a class="view-gallery-btn" href="http://www.tmz.com/photos/2015/03/16/patrick-schwarzenegger-body-shots-hugging-girl-cabo-photos/?adid=permasidebarwidget-gallery-1">View Gallery »</a>
+
+ </figcaption>
+ </figure>
+ </div>
+ <!-- Adpos3 BTF -->
+ <div id="adpos3" class="group">
+ <div class="rr-top"></div>
+ <div class="rr-mid">
+ <div id="ad3">
+ <!-- begin ad tag (tile=3) -->
+ <div align="center" class="ad-container wbads" data-adsize="medium_rectangle"
+ data-pos="bottom" data-tile="3"></div>
+ <!-- End ad tag -->
+ </div>
+ </div>
+ <div class="rr-bottom"></div>
+ </div>
+ <!-- Adpos3 BTF END -->
+ <!-- no franchise results -->
+ <!-- Adpos6 BTF -->
+ <div id="adpos6" class="group">
+ <div class="rr-top"></div>
+ <div class="rr-mid">
+ <div id="ad6">
+ <!-- begin ad tag (tile=6) -->
+ <div align="center" class="ad-container wbads" data-adsize="medium_rectangle"
+ data-pos="bottom" data-tile="6"></div>
+ <!-- End ad tag -->
+ </div>
+ </div>
+ <div class="rr-bottom"></div>
+ </div>
+ <!-- Adpos6 BTF END -->
+ <div id="most-commented-posts"></div>
+ <script>
+ require(['widgets/sidebar/most-commented-posts/1.0.0/most-commented-posts'], function(mcp){
+ mcp.render('#most-commented-posts');
+ });
+ </script>
+ <!-- Adpos5 BTF -->
+ <div id="adpos5" class="group">
+ <div class="rr-top"></div>
+ <div class="rr-mid">
+ <div id="ad5">
+ <!-- begin ad tag (tile=5) -->
+ <div align="center" class="ad-container wbads" data-adsize="medium_rectangle"
+ data-pos="bottom" data-tile="5"></div>
+ <!-- End ad tag -->
+ </div>
+ </div>
+ <div class="rr-bottom"></div>
+ </div>
+ <!-- Adpos5 END -->
+ </aside>
+ <style>
+ article.news .related {clear: both;border-top: none;} .when-its-on-widget .stations-results {padding:0px !important;} .when-its-on-widget .stations-results ul li {padding:15px !important;}.superpost .article-content p a:first-child img:first-child {width: 100%;}.superpost .article-content p img:first-child {width: 100%;}.body-home.news-permalink .hidefromarticle {display:none !important;} .weeks-best-stuff-widget {margin-top: 32px;} #ftdiv873759 {margin-left:auto; margin-right:auto;}.sidebar-widget.posts-widget.tmzsports-archive-posts{display:none;} div.masthead-ad {position:static !important;} #ad10 {display:none;} div.ws-wss.ws-wss-left {display:none !important;} span#GGADad_ii_1418256197967 {display:none;}
+ </style>
+ <script type="text/javascript">
+ // dont remove
+ $('p:has(script)').css('padding', 0);
+ // dont remove
+ $(".tmzsports .masthead a.home").attr("href" , "http://www.tmzsports.com");
+ $('.tmztour-doubleskin').insertBefore("#page");
+ $('a[href$="hair/"]').siblings(".article-content").children('div.related').children('ul').prepend('<li><a href="https://soundcloud.com/djpaulyd-official/dj-pauly-d-delirious-alex-k-no">DJ Pauly D & Delirious - No Tomorrow</a></li>');
+ var $spad = $('a.headline[href="http://www.tmz.com/2014/08/26/truth-campaign-celebs-unpaid-spokespeople/"]').parent();
+ $spad.css('background-color','#e1e1e1');
+ $spad.css('padding', '20px');
+ $spad.prepend('<div style="text-align:center;padding:10px;">ADVERTISEMENT</div>');
+ </script>
+ <script language="JavaScript" type="text/javascript" src="http://ll-assets.tmz.com/www.tmz.com/main/default/cache/1fa7d55b78a097146cf2c1594d90e539.v2014_05_09_164122.js"></script>
+ <div id="popular-show-clips" class="clearfix">
+ <div id="taboola-horizontalx3"></div>
+ <script type="text/javascript">
+ window._taboola = window._taboola || [];
+ _taboola.push({mode:'horizontalx3', container:'taboola-horizontalx3'});
+ </script>
+ </div>
+ <div class="around-the-web-widget">
+ <h3 class="widget-header">Around The Web</h3>
+
+ <div class="partner-headlines-row clearfix">
+ <div class="partner-headlines"> <a href="http://www.usmagazine.com/" target="_blank" rel="nofollow">
+
+ <img src="http://ll-media.tmz.com/2013/04/26/partner-asset-us-magazine-logo2-cut-v2-1.gif" border="0"/>
+
+ </a>
+
+ <ul>
+ <li> <a href="http://www.usmagazine.com/entertainment/news/sinead-oconnor-has-sung-nothing-compares-2-u-for-the-last-time--2015183"
+ target="_blank" rel="nofollow">Sinead O'Connor Has Sung "Nothing Compares 2 U" for the Last Time</a>
+
+ </li>
+ <li> <a href="http://www.usmagazine.com/celebrity-moms/news/little-women-la-star-terra-jole-welcomes-first-child-2015183"
+ target="_blank" rel="nofollow">Little Women: L.A. Star Terra Jole Welcomes First Child — a Baby Girl!</a>
+
+ </li>
+ <li> <a href="http://www.usmagazine.com/celebrity-news/news/natalia-kills-speaks-out-after-x-factor-firing-2015183"
+ target="_blank" rel="nofollow">Natalia Kills Speaks Out After X Factor Firing: "There Are Many Sides to This…</a>
+
+ </li>
+ </ul>
+ </div>
+ <div class="partner-headlines"> <a href="http://egotastic.com/" target="_blank" rel="nofollow">
+
+ <img src="http://ll-media.tmz.com/2013/04/26/partner-rss-egotastic-v3.png" border="0"/>
+
+ </a>
+
+ <ul>
+ <li> <a href="http://www.egotastic.com/2015/03/karrueche-tran-and-christina-milian-bikini-selfies-in-cancun-you-would-do-the-same-if-you-looked-this-hot/"
+ target="_blank" rel="nofollow">Karrueche Tran And Christina Milian Bikini Selfies in Cancun, You Would Do the Same…</a>
+
+ </li>
+ <li> <a href="http://www.egotastic.com/2015/03/awesomely-horrible-netflix-instant-films-evil-dead-2/"
+ target="_blank" rel="nofollow">Awesomely Horrible Netflix Instant Films: “Evil Dead 2″</a>
+
+ </li>
+ <li> <a href="http://www.egotastic.com/2015/03/mortal-kombat-x/" target="_blank"
+ rel="nofollow">Is Ermac’s New ‘Mortal Kombat X’ Fatality the Grisliest Ever?</a>
+
+ </li>
+ </ul>
+ </div>
+ <div class="partner-headlines"> <a href="http://thechive.com/" target="_blank" rel="nofollow">
+
+ <img src="http://ll-media.tmz.com/2013/04/26/partner-rss-chive-v2-cut-v2.png" border="0"/>
+
+ </a>
+
+ <ul>
+ <li> <a href="http://thechive.com/2015/03/18/this-is-what-happens-when-you-get-bored-on-a-plane-video/"
+ target="_blank" rel="nofollow">This is what happens when you get bored on a plane (Video)</a>
+
+ </li>
+ <li> <a href="http://thechive.com/2015/03/18/can-we-ride-on-your-handle-bars-34-photos/"
+ target="_blank" rel="nofollow">Can we ride on your handle bars? (34 Photos)</a>
+
+ </li>
+ <li> <a href="http://thechive.com/2015/03/18/college-basketballs-best-players-and-a-shot-at-150000-survival-mania-26-photos/"
+ target="_blank" rel="nofollow">College basketball’s best players and a shot at $150,000 (26 Photos)</a>
+
+ </li>
+ </ul>
+ </div>
+ <div class="partner-headlines"> <a href="http://partner.mediatakeout.com/" target="_blank" rel="nofollow">
+
+ <img src="http://ll-media.tmz.com/2013/04/26/partner-asset-mto.png" border="0"/>
+
+ </a>
+
+ <ul>
+ <li> <a href="http://mediatakeout.com/268907/mto-shock-video-meek-mill-and-nicki-minaj-are-caught-on-tape-fighting-and-she-curses-dude-out-we-told-yall.html/?partners"
+ target="_blank" rel="nofollow">MTO SHOCK VIDEO: Meek Mill And Nicki Minaj Are CAUGHT ON TAPE Fighting . . . And She…</a>
+
+ </li>
+ <li> <a href="http://mediatakeout.com/268933/mto-exclusive-karrueche-goes-on-iyanla-fix-my-life-and-she-blasts-the-fck-outta-chris-brown.html/?partners"
+ target="_blank" rel="nofollow">MTO EXCLUSIVE: Karrueche Gives An Interview To IYANLA . . . And She BLASTS THE F*CK…</a>
+
+ </li>
+ <li> <a href="http://mediatakeout.com/268989/you-go-girrrrrllll-amber-rose-is-spotted-driving-some-cutie-around-in-her-ferrari-and-he-look-like-young-dck.html/?partners"
+ target="_blank" rel="nofollow">YOU GO GIRRRRRLLLL!! Amber Rose Is Spotted . . . Driving Some CUTIE Around In Her…</a>
+
+ </li>
+ </ul>
+ </div>
+ </div>
+ <div class="partner-headlines-row clearfix">
+ <div class="partner-headlines"> <a href="http://gossipgirl.alloyentertainment.com/" target="_blank" rel="nofollow">
+
+ <img src="http://ll-media.tmz.com/2013/04/26/partner-rss-gossipgirl-bw.png" border="0"/>
+
+ </a>
+
+ <ul>
+ <li> <a href="http://gossipgirl.alloyentertainment.com/kendall-jenner-bruce-sex-change-31815/"
+ target="_blank" rel="nofollow">Kendall Jenner Finally Addresses Bruce’s Sex Change</a>
+
+ </li>
+ <li> <a href="http://gossipgirl.alloyentertainment.com/penn-badgley-quitting-tv-31815/"
+ target="_blank" rel="nofollow">WTF! Is Penn Badgley Quitting TV?</a>
+
+ </li>
+ <li> <a href="http://gossipgirl.alloyentertainment.com/hot-mess-zoe-kravitz-31815/"
+ target="_blank" rel="nofollow">Hot Mess: Zoë Kravitz</a>
+
+ </li>
+ </ul>
+ </div>
+ <div class="partner-headlines"> <a href="http://www.justjared.com" target="_blank" rel="nofollow">
+
+ <img src="http://ll-media.tmz.com/2013/04/26/partner-rsss-justjared-logo-cut-v2.gif" border="0"/>
+
+ </a>
+
+ <ul>
+ <li> <a href="http://www.justjared.com/2015/03/18/empire-season-finale-music-listen-to-nothing-to-lose-here/"
+ target="_blank" rel="nofollow">'Empire' Season Finale Music - Listen to 'Nothing to Lose' Here!</a>
+
+ </li>
+ <li> <a href="http://www.justjared.com/2015/03/18/kit-harington-premieres-game-of-thrones-season-5-in-london/"
+ target="_blank" rel="nofollow">Kit Harington Premieres 'Game of Thrones Season 5' in London!</a>
+
+ </li>
+ <li> <a href="http://www.justjared.com/2015/03/18/adriana-limas-floral-dress-brightens-up-day-in-brazil/"
+ target="_blank" rel="nofollow">Adriana Lima's Floral Dress Brightens Up Day in Brazil</a>
+
+ </li>
+ </ul>
+ </div>
+ <div class="partner-headlines"> <a href="http://www.huffingtonpost.com/celebrity/" target="_blank" rel="nofollow">
+
+ <img src="http://ll-media.tmz.com/2013/04/26/partner-rss-huffpo-celebrity-bw.png" border="0"/>
+
+ </a>
+
+ <ul>
+ <li> <a href="http://www.huffingtonpost.com/2015/03/18/debi-mazar-madonna_n_6896968.html"
+ target="_blank" rel="nofollow">What It's Really Like To Be Best Friends With Madonna</a>
+
+ </li>
+ <li> <a href="http://www.huffingtonpost.com/2015/03/18/katie-holmes-jamie-foxx-dating-rumors_n_6895116.html"
+ target="_blank" rel="nofollow">Katie Holmes And Jamie Foxx Dating Rumors Won't Go Away</a>
+
+ </li>
+ <li> <a href="http://www.huffingtonpost.com/2015/03/18/paper-towns-first-footage_n_6894024.html"
+ target="_blank" rel="nofollow">See The First Footage From 'Paper Towns'</a>
+
+ </li>
+ </ul>
+ </div>
+ <div class="partner-headlines"> <a href="http://laineygossip.com/" target="_blank" rel="nofollow">
+
+ <img src="http://ll-media.tmz.com/2013/04/26/partner-asset-lainey-gossip-bw-1.png" border="0"/>
+
+ </a>
+
+ <ul>
+ <li> <a href="http://www.laineygossip.com/Jamie-Dornan-plays-golf-in-London/37936"
+ target="_blank" rel="nofollow">Jamie Dornan plays golf in London</a>
+
+ </li>
+ <li> <a href="http://www.laineygossip.com/Smutty-Social-Media-Wednesday--March-18--2015/37935"
+ target="_blank" rel="nofollow">Smutty Social Media Wednesday, March 18, 2015</a>
+
+ </li>
+ <li> <a href="http://www.laineygossip.com/Justin-Bieber-and-Madonna-play-Never-Have-I-Ever-on-Ellen/37934"
+ target="_blank" rel="nofollow">Justin Bieber and Madonna play Never Have I Ever on Ellen</a>
+
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <script language="JavaScript" type="text/javascript" src="http://ll-assets.tmz.com/www.tmz.com/main/default/cache/34c736edf5325fd61d97be1ac208be44.v2014_05_09_164122.js"></script>
+ </div>
+ <!-- end #page -->
+ <script type="text/javascript">
+ var _sf_async_config={};
+ /** CONFIGURATION START **/
+ _sf_async_config.uid = 47927;
+ _sf_async_config.domain = 'tmz.com';
+ _sf_async_config.useCanonical = true;
+ _sf_async_config.sections = 'Article';
+ /*_sf_async_config.authors = 'Change this to your Author name';*/
+ /** CONFIGURATION END **/
+ (function(){
+ function loadChartbeat() {
+ window._sf_endpt=(new Date()).getTime();
+ var e = document.createElement('script');
+ e.setAttribute('language', 'javascript');
+ e.setAttribute('type', 'text/javascript');
+ e.setAttribute('src', '//static.chartbeat.com/js/chartbeat.js');
+ document.body.appendChild(e);
+ }
+ var oldonload = window.onload;
+ window.onload = (typeof window.onload != 'function') ?
+ loadChartbeat : function() { oldonload(); loadChartbeat(); };
+ })();
+ </script>
+ <div class="footer-wrapper">
+ <footer id="footer">
+ <h2 id="footer-logo">
+ <a href="http://www.tmz.com"><img alt="TMZ.com" src="http://ll-assets.tmz.com/www.tmz.com/main/default/cache/img/widgets/footer/footer-logo.v2014_05_09_134122.jpg"/></a>
+ </h2>
+
+ <div class="footer-content-wrapper">
+ <div class="footer-links"> <a href="http://www.tmz.com">Home</a><a href="http://www.tmz.com/photos/">Photos</a>
+ <a
+ href="http://www.tmz.com/videos/">Videos</a><a href="http://www.tmz.com/celebrity-directory/">Celebrity Directory</a>
+ <a
+ href="http://www.tmz.com/tmzmobilealerts" rel="nofollow">TMZ Mobile Alerts</a><a href="http://www.tmz.com/tips">Send a Hot Tip</a>
+ <a
+ href="http://www.tmz.com/contact/contact-us" rel="nofollow">Contact Us</a><a href="http://hire.jobvite.com/CompanyJobs/Jobs.aspx?c=qWa9VfwU"
+ rel="nofollow">Careers</a>
+
+ </div>
+ <div class="footer-links"> <a href="http://www.warnerbros.com/privacy/policy.html" rel="nofollow"
+ target="_blank">Privacy Policy</a><a href="http://www.tmz.com/terms/" rel="nofollow"
+ target="_blank">Terms of Use</a><a href="http://www.warnerbros.com/privacy/policy.html#p5"
+ rel="nofollow" target="_blank">AdChoices</a><a href="http://www.tmz.com/advertise"
+ rel="nofollow">Advertising Inquiries</a><a href="http://www.tmz.com/pr"
+ rel="nofollow">Media Inquiries</a><a href="http://www.tmz.com/tour">Hollywood Tours</a>
+
+ </div>
+ <div class="footer-links"> <small class="copyright">© 2015 EHM Productions, Inc. All rights reserved</small>
+ <a
+ href="http://www.tmz.com/about/" rel="nofollow">About TMZ.com</a><a href="http://www.huffingtonpost.com/" target="_blank">HPMG NEWS</a>
+ <a
+ href="http://www.tmz.com/sitemap/">SITEMAP</a>
+ </div>
+ </div>
+ <div class="footer-search-wrapper">
+ <div class="search">
+ <form target="" name="bb_bottomform" action="http://www.tmz.com/search/news/"
+ onsubmit="return elasticSearch(this);" id="search">
+ <input name="q" placeholder="SEARCH TMZ" type="text"/>
+ <label alt="Submit" class="submit-search">
+ <input alt="Search TMZ.com" id="submit-search" src=" http://ll-assets.tmz.com/www.tmz.com/main/default/cache/img/widgets/search/search-icon.v2014_05_09_134122.jpg"
+ type="image"/>
+ </label>
+ </form>
+ </div>
+ </div>
+ <div id="thirtymilezone">
+ <img src="http://ll-assets.tmz.com/www.tmz.com/main/default/cache/img/widgets/footer/thirtymilezone.v2014_12_01_102336.png"
+ alt="Thirty Mile Zone"/>
+ </div>
+ </footer>
+ <div align="center" class="ad-container wbads" data-pos="interstitial"
+ data-interstitial="true"></div>
+ </div>
+ <script language="JavaScript" type="text/javascript" src="http://ll-assets.tmz.com/www.tmz.com/main/default/cache/search.93d5d22f886aa38263c8d2b4f8daa7c6.v2014_11_14_215548.js"></script>
+ <script>
+ wbads.buildSlots();
+
+ try {
+ amznads.setTargetingForGPTAsync('amznslots');
+ } catch(e) {}
+ console.log("call from news-single.cft");
+ wbads.showAds(); // separated from init() and buildSlots() to allow optional custom ad definitions prior; also used to refresh
+ </script>
+ <script>
+ require(['app', 'tmz/polls/1.0.3/polls'], function(app, polls) {
+ app.init();
+ polls.processQueue();
+ });
+ </script>
+ <!-- CCS: Deprecated as part of kaltura v2 rollout -->
+ <!-- BEGIN GRAVITY BEACON -->
+ <script type="text/javascript">
+ //<![CDATA[
+ (function(){
+ window.gravityInsightsParams = {
+ 'type': 'content',
+ 'action': '',
+ 'site_guid': '82893b79564009a4d8fab7b9db32cfea'
+ };
+ var adServerReq,bUrl,cburl,doUseGravityUserGuid,includeJs,jq,pfurl,type,ug,wlPrefix,wlUrl,_ref,_ref1,_ref2;includeJs=function(a){var b;b=document.createElement("script");b.async=!0;b.src=a;a=document.getElementsByTagName("script")[0];return a.parentNode.insertBefore(b,a)};bUrl="https:"===document.location.protocol?"https://b-ssl.grvcdn.com/moth-min.js":"http://b.grvcdn.com/moth-min.js";
+ ug=(doUseGravityUserGuid=!0===gravityInsightsParams.useGravityUserGuid?1:0)?"":gravityInsightsParams.user_guid||(null!=(_ref=/grvinsights=([^;]+)/.exec(document.cookie))?_ref[1]:void 0)||"";wlUrl=(wlPrefix="","");bUrl&&includeJs(bUrl);wlUrl&&(window.gravityInsightsParams.sidebar&&(window.gravityInsightsParams.wlStartTime=(new Date).getTime()),includeJs(wlUrl));})();
+ //]]>
+ </script>
+ <!-- END GRAVITY BEACON -->
+ <!-- begin CrazyEgg Tracking -->
+ <script type="text/javascript">
+ setTimeout(function(){var a=document.createElement("script");
+ var b=document.getElementsByTagName("script")[0];
+ a.src=document.location.protocol+"//dnn506yrbagrg.cloudfront.net/pages/scripts/0022/4748.js?"+Math.floor(new Date().getTime()/3600000);
+ a.async=true;a.type="text/javascript";b.parentNode.insertBefore(a,b)}, 1);
+ </script>
+ <!-- end CrazyEgg -->
+ <!-- Begin comScore Tag -->
+ <script>
+ var _comscore = _comscore || [];
+ _comscore.push({ c1: "2", c2: "3000013" });
+ (function() {
+ var s = document.createElement("script"), el = document.getElementsByTagName("script")[0]; s.async = true;
+ s.src = (document.location.protocol == "https:" ? "https://sb" : "http://b") + ".scorecardresearch.com/beacon.js";
+ el.parentNode.insertBefore(s, el);
+ })();
+ </script>
+ <noscript>
+ <img src="http://b.scorecardresearch.com/p?c1=2&c2=3000013&cv=2.0&cj=1"
+ />
+ </noscript>
+ <!-- End comScore Tag -->
+ <!-- START Nielsen Online SiteCensus V6.0 -->
+ <!-- COPYRIGHT 2010 Nielsen Online -->
+ <script type="text/javascript">
+ (function () {
+ var d = new Image(1, 1);
+ d.onerror = d.onload = function () {
+ d.onerror = d.onload = null;
+ };
+ d.src = ["//secure-us.imrworldwide.com/cgi-bin/m?ci=us-404979h&cg=0&cc=1&si=", escape(window.location.href), "&rp=", escape(document.referrer), "&ts=compact&rnd=", (new Date()).getTime()].join('');
+ })();
+ </script>
+ <noscript>
+ <div>
+ <img src="//secure-us.imrworldwide.com/cgi-bin/m?ci=us-404979h&amp;cg=0&amp;cc=1&amp;ts=noscript"
+ width="1" height="1" alt="" />
+ </div>
+ </noscript>
+ <!-- END Nielsen Online SiteCensus V6.0 -->
+ <!-- WebSpectator v2 initialization beacon -->
+ <script type="text/javascript" src="//wfpscripts.webspectator.com/bootstrap/ws-WS-TMZ00.js"></script>
+ <!-- END WebSpectator v2 initialization beacon -->
+ <!-- begin ZEDO for channel: Inview_ROS , publisher: default , Ad Dimension:
+ Inview - 160 x 600 -->
+ <script language="JavaScript">
+ var zflag_nid="2118"; var zflag_cid="1"; var zflag_sid="0"; var zflag_width="160"; var zflag_height="600"; var zflag_sz="88"; var zflag_screen_min_width="1024";
+ </script>
+ <script language="JavaScript" src="http://c4.zedo.com/jsc/c4/fhs.js"></script>
+ <!-- end ZEDO for channel: Inview_ROS , publisher: default ,
+ Ad Dimension: Inview - 160 x 600 -->
+ </body>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/tumblr/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/tumblr/expected-images.json
new file mode 100644
index 000000000..bce09c696
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/tumblr/expected-images.json
@@ -0,0 +1,3 @@
+[
+ "http:\/\/assets.tumblr.com\/images\/og\/fb_landscape_share.png"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/tumblr/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/tumblr/expected-metadata.json
new file mode 100644
index 000000000..225236c98
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/tumblr/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "+ Added Granite, Andesite, and Diorite stone blocks, with smooth versions\n+ Added Slime Block\n+ Added Iron Trapdoor\n+ Added Prismarine and Sea Lantern blocks\n+ Added the Ocean Monument\n+ Added Red...",
+ "Image": "http:\/\/assets.tumblr.com\/images\/og\/fb_landscape_share.png",
+ "Title": "Minecraft 1.8 - The Bountiful Update",
+ "SiteName": "Minecraft Update News"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/tumblr/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/tumblr/expected.html
new file mode 100644
index 000000000..56df59658
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/tumblr/expected.html
@@ -0,0 +1,11 @@
+<div>
+ <div id="posts">
+
+
+ <div>
+ <h3><a href="http://mcupdate.tumblr.com/post/96439224994/minecraft-18-the-bountiful-update">Minecraft 1.8 - The Bountiful Update</a></h3>
+ <div><p>+ Added Granite, Andesite, and Diorite stone blocks, with smooth versions<br></br>+ Added Slime Block<br></br>+ Added Iron Trapdoor<br></br>+ Added Prismarine and Sea Lantern blocks<br></br>+ Added the Ocean Monument<br></br>+ Added Red Sandstone<br></br>+ Added Banners<br></br>+ Added Armor Stands<br></br>+ Added Coarse Dirt (dirt where grass won’t grow)<br></br>+ Added Guardian mobs, with item drops<br></br>+ Added Endermite mob<br></br>+ Added Rabbits, with item drops<br></br>+ Added Mutton and Cooked Mutton<br></br>+ Villagers will harvest crops and plant new ones<br></br>+ Mossy Cobblestone and Mossy Stone Bricks are now craftable<br></br>+ Chiseled Stone Bricks are now craftable<br></br>+ Doors and fences now come in all wood type variants<br></br>+ Sponge block has regained its water-absorbing ability and becomes wet<br></br>+ Added a spectator game mode (game mode 3)<br></br>+ Added one new achievement<br></br>+ Added “Customized” world type<br></br>+ Added hidden “Debug Mode” world type<br></br>+ Worlds can now have a world barrier<br></br>+ Added @e target selector for Command Blocks<br></br>+ Added /blockdata command<br></br>+ Added /clone command<br></br>+ Added /execute command<br></br>+ Added /fill command<br></br>+ Added /particle command<br></br>+ Added /testforblocks command<br></br>+ Added /title command<br></br>+ Added /trigger command<br></br>+ Added /worldborder command<br></br>+ Added /stats command<br></br>+ Containers can be locked in custom maps by using the “Lock” data tag<br></br>+ Added logAdminCommands, showDeathMessages, reducedDebugInfo, sendCommandFeedback, and randomTickSpeed game rules<br></br>+ Added three new statistics<br></br>+ Player skins can now have double layers across the whole model, and left/right arms/legs can be edited independently<br></br>+ Added a new player model with smaller arms, and a new player skin called Alex?<br></br>+ Added options for configuring what pieces of the skin that are visible<br></br>+ Blocks can now have custom visual variations in the resource packs<br></br>+ Minecraft Realms now has an activity chart, so you can see who has been online<br></br>+ Minecraft Realms now lets you upload your maps<br></br>* Difficulty setting is saved per world, and can be locked if wanted<br></br>* Enchanting has been redone, now costs lapis lazuli in addition to enchantment levels<br></br>* Villager trading has been rebalanced<br></br>* Anvil repairing has been rebalanced<br></br>* Considerable faster client-side performance<br></br>* Max render distance has been increased to 32 chunks (512 blocks)<br></br>* Adventure mode now prevents you from destroying blocks, unless your items have the CanDestroy data tag<br></br>* Resource packs can now also define the shape of blocks and items, and not just their textures<br></br>* Scoreboards have been given a lot of new features<br></br>* Tweaked the F3 debug screen<br></br>* Block ID numbers (such as 1 for stone), are being replaced by ID names (such as minecraft:stone)<br></br>* Server list has been improved<br></br>* A few minor changes to village and temple generation<br></br>* Mob heads for players now show both skin layers<br></br>* Buttons can now be placed on the ceiling<br></br>* Lots and lots of other changes<br></br>* LOTS AND LOTS of other changes<br></br>- Removed Herobrine</p></div>
+ </div>
+
+ </div>
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/tumblr/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/tumblr/source.html
new file mode 100644
index 000000000..14069d241
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/tumblr/source.html
@@ -0,0 +1,793 @@
+<!DOCTYPE html>
+<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en">
+
+<head>
+ <script>
+ var __pbpa = true;
+ </script>
+ <script>
+ var translated_warning_string = 'Warning: Never enter your Tumblr password unless \u201chttps://www.tumblr.com/login\u201d\x0ais the address in your web browser.\x0a\x0aYou should also see a green \u201cTumblr, Inc.\u201d identification in the address bar.\x0a\x0aSpammers and other bad guys use fake forms to steal passwords.\x0a\x0aTumblr will never ask you to log in from a user\u2019s blog.\x0a\x0aAre you absolutely sure you want to continue?';
+ </script>
+ <script type="text/javascript" language="javascript" src="http://assets.tumblr.com/assets/scripts/pre_tumblelog.js?_v=7f6772238e1748fa255bd191b4985d65"></script>
+ <!--
+ Photo Minimal
+ A Tumblr theme by William Rainbird - http://william.rainbird.me
+
+ Tweaked for the Minecraft Launcher by Mojang
+-->
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <title>Minecraft 1.8 - The Bountiful Update - Minecraft 1.8 - The Bountiful Update - Minecraft Update News</title>
+ <style type="text/css">
+ body {
+ font-family: sans-serif;
+ background-color: #222222;
+ background-image: url('http://static.tumblr.com/qfn3sex/ezom7y7iq/bg_main.png');
+ color: #e0d0d0;
+ }
+
+ a {
+ color: #aaaaff;
+ }
+
+ hr {
+ border: 0;
+ color: #111111;
+ background-color: #111111;
+ height: 2px;
+ }
+
+ h3 {
+ color: #ffffff;
+ font-size: 16px;
+ }
+
+ img {
+ border: 0;
+ margin: 0;
+ }
+
+ .sidebar {
+ padding: 10px;
+ vertical-align: top;
+ }
+
+ .alert {
+ background-color: #aa0000;
+ color: #ffffff;
+ font-weight: bold;
+ padding: 6px 10px;
+ width: 500px;
+ }
+ </style>
+ <style>
+ figure {
+ margin: 0
+ }
+
+ .tmblr-iframe {
+ position: absolute
+ }
+
+ .tmblr-iframe.hide {
+ display: none
+ }
+ </style>
+ <link rel="alternate" href="android-app://com.tumblr/tumblr/x-callback-url/blog?blogName=mcupdate%26postID=96439224994" />
+ <link rel="alternate" href="ios-app://305343404/tumblr/x-callback-url/blog?blogName=mcupdate&amp;postID=96439224994" />
+ <link rel="alternate" type="application/json+oembed" href="https://www.tumblr.com/oembed/1.0?url=http://mcupdate.tumblr.com/post/96439224994/minecraft-18-the-bountiful-update" title="Minecraft 1.8 - The Bountiful Update
++ Added Granite, Andesite, and Diorite stone blocks, with smooth versions
++ Added Slime Block
++ Added Iron Trapdoor
++ Added Prismarine and Sea Lantern blocks
++ Added the Ocean Monument
++ Added Red Sandstone
++..." />
+ <script src="http://assets.tumblr.com/assets/scripts/tumblelog_post_message_queue.js?_v=ae06d1ab69efc6f29297bf2b7a4160af"></script>
+ <link rel="stylesheet" type="text/css" href="http://assets.tumblr.com/fonts/gibson/stylesheet.css?v=3" />
+ <!-- BEGIN TUMBLR FACEBOOK OPENGRAPH TAGS -->
+ <!-- If you'd like to specify your own Open Graph tags, define the og:url and og:title tags in your theme's HTML. -->
+ <!-- Read more: http://ogp.me/ -->
+ <meta property="fb:app_id" content="48119224995" />
+ <meta property="og:site_name" content="Minecraft Update News" />
+ <meta property="og:title" content="Minecraft 1.8 - The Bountiful Update" />
+ <meta property="og:url" content="http://mcupdate.tumblr.com/post/96439224994/minecraft-18-the-bountiful-update" />
+ <meta property="og:description" content="+ Added Granite, Andesite, and Diorite stone blocks, with smooth versions
++ Added Slime Block
++ Added Iron Trapdoor
++ Added Prismarine and Sea Lantern blocks
++ Added the Ocean Monument
++ Added Red..." />
+ <meta property="og:determiner" content="a" />
+ <meta property="og:type" content="tumblr-feed:entry" />
+ <meta property="og:image" content="http://assets.tumblr.com/images/og/fb_landscape_share.png" />
+ <meta property="al:ios:url" content="tumblr://x-callback-url/blog?blogName=mcupdate&amp;postID=96439224994" />
+ <meta property="al:ios:app_name" content="Tumblr" />
+ <meta property="al:ios:app_store_id" content="305343404" />
+ <meta property="al:android:url" content="tumblr://x-callback-url/blog?blogName=mcupdate&amp;postID=96439224994" />
+ <meta property="al:android:app_name" content="Tumblr" />
+ <meta property="al:android:package" content="com.tumblr" />
+ <!-- END TUMBLR FACEBOOK OPENGRAPH TAGS -->
+ <!-- GOOGLE CAROUSEL -->
+ <script type="application/ld+json">
+ {
+ "@type": "SocialMediaPosting",
+ "url": "http:\/\/mcupdate.tumblr.com\/post\/96439224994\/minecraft-18-the-bountiful-update",
+ "mainEntityOfPage": true,
+ "datePublished": "2014-09-02T08:35:27-04:00",
+ "author": "mcupdate",
+ "headline": "Minecraft 1.8 - The Bountiful Update",
+ "articleBody": "+ Added Granite, Andesite, and Diorite stone blocks, with smooth versions\n+ Added Slime Block\n+ Added Iron Trapdoor\n+ Added Prismarine and Sea Lantern blocks\n+ Added the Ocean Monument\n+ Added Red Sandstone\n+ Added Banners\n+ Added Armor Stands\n+ Added Coarse Dirt (dirt where grass won\u2019t grow)\n+...",
+ "@context": "http:\/\/schema.org"
+ }
+ </script>
+ <link rel="canonical" href="http://mcupdate.tumblr.com/post/96439224994/minecraft-18-the-bountiful-update" />
+ <style type="text/css">
+ .knight-rider-loader {
+ line-height: 0;
+ white-space: nowrap;
+ width: 78px
+ }
+
+ .knight-rider-loader.small {
+ width: 39px
+ }
+
+ .knight-rider-loader.centered {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ -webkit-transform: translate(-50%, -50%);
+ transform: translate(-50%, -50%)
+ }
+
+ .knight-rider-loader.h-centered {
+ position: absolute;
+ top: 0;
+ left: 50%;
+ -webkit-transform: translateX(-50%);
+ transform: translateX(-50%)
+ }
+
+ .knight-rider-bar {
+ display: none;
+ width: 20px;
+ height: 20px;
+ margin: 0 3px;
+ border-radius: 5px;
+ opacity: .5;
+ background-color: #d0d0d0
+ }
+
+ .small&gt;
+ .knight-rider-bar {
+ width: 10px;
+ height: 10px;
+ margin-left: 2px;
+ margin-right: 1px;
+ border-radius: 2px
+ }
+
+ .animate&gt;
+ .knight-rider-bar {
+ display: inline-block;
+ -webkit-animation: knight-rider-oscillate ease-in-out .3s infinite alternate;
+ animation: knight-rider-oscillate ease-in-out .3s infinite alternate
+ }
+
+ .knight-rider-bar:nth-child(1) {
+ -webkit-animation-delay: -.2s;
+ animation-delay: -.2s
+ }
+
+ .knight-rider-bar:nth-child(2) {
+ -webkit-animation-delay: -.1s;
+ animation-delay: -.1s
+ }
+
+ @-webkit-keyframes knight-rider-oscillate {
+ 0% {
+ opacity: .5;
+ -webkit-transform: scaleY(1);
+ transform: scaleY(1)
+ }
+ to {
+ opacity: 1;
+ -webkit-transform: scaleY(1.4);
+ transform: scaleY(1.4)
+ }
+ }
+
+ @keyframes knight-rider-oscillate {
+ 0% {
+ opacity: .5;
+ -webkit-transform: scaleY(1);
+ transform: scaleY(1)
+ }
+ to {
+ opacity: 1;
+ -webkit-transform: scaleY(1.4);
+ transform: scaleY(1.4)
+ }
+ }
+
+ .tmblr-iframe {
+ position: absolute
+ }
+
+ .tmblr-iframe.hide {
+ display: none
+ }
+
+ .tmblr-pano-lightbox-container .tmblr-iframe--pano-lightbox {
+ z-index: 8675309;
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ width: 100%;
+ height: 100%;
+ display: none
+ }
+
+ .tmblr-pano-lightbox-container .tmblr-iframe-preloader-container {
+ z-index: 8675310;
+ position: fixed;
+ bottom: 0;
+ width: 100%;
+ height: 100%;
+ background: rgba(0, 0, 0, .92)
+ }
+
+ .tmblr-pano-lightbox-container .tmblr-pano-lightbox {
+ display: block
+ }
+
+ .tmblr-pano-lightbox-container .tmblr-pano-lightbox--preloading {
+ display: none
+ }
+
+ .tmblr-iframe--controls-phone-container {
+ padding-top: 43px
+ }
+
+ .tmblr-iframe--controls-phone-container .t-logo {
+ display: none
+ }
+
+ .tmblr-iframe--controls,
+ .tmblr-iframe--mobile-logged-in-controls {
+ position: fixed
+ }
+
+ .tmblr-iframe--controls.iframe-controls--desktop,
+ .tmblr-iframe--mobile-logged-in-controls.iframe-controls--desktop {
+ top: 0;
+ right: 0;
+ width: 40%;
+ min-width: 200px;
+ height: 36px;
+ z-index: 100
+ }
+
+ .tmblr-iframe--controls.iframe-controls--phone-mobile,
+ .tmblr-iframe--mobile-logged-in-controls.iframe-controls--phone-mobile {
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 44px;
+ padding-right: 8px;
+ z-index: 10
+ }
+
+ .tmblr-iframe--controls.iframe-controls--tablet-mobile,
+ .tmblr-iframe--mobile-logged-in-controls.iframe-controls--tablet-mobile {
+ top: 0;
+ right: 0;
+ width: 235px;
+ height: 36px;
+ z-index: 2147483646
+ }
+
+ .tmblr-iframe--desktop-logged-in-controls {
+ position: fixed
+ }
+
+ .tmblr-iframe--desktop-logged-in-controls.iframe-controls--desktop {
+ right: 0;
+ top: 0;
+ z-index: 100
+ }
+
+ .tmblr-iframe--unified-controls {
+ position: fixed;
+ top: 0;
+ right: 0;
+ left: 0;
+ width: 100%;
+ height: 0;
+ z-index: 100
+ }
+
+ .tmblr-iframe-compact .tmblr-iframe--unified-controls {
+ left: auto
+ }
+
+ .tmblr-iframe-overlay.tmblr-iframe-full-width #page .logo-wrapper {
+ display: none
+ }
+
+ @media screen and (max-device-width:568px) {
+ .tmblr-iframe-overlay.tmblr-iframe-full-width .no-image:not(.avatar-hidden) #header {
+ padding-top: 140px
+ }
+ }
+
+ .tmblr-iframe-overlay.tmblr-iframe-full-width:not(.tmblr-iframe-themed) .top-blog-header .header-image.cover.loaded:after {
+ display: none
+ }
+
+ .tmblr-iframe-overlay.tmblr-iframe-full-width:not(.tmblr-iframe-themed) .tmblr-iframe--unified-controls {
+ background-image: linear-gradient(180deg, rgba(0, 0, 0, .4) 0, transparent);
+ padding-bottom: 10px;
+ transition: padding-bottom .1s linear
+ }
+
+ .tmblr-iframe-overlay.tmblr-iframe-full-width:not(.tmblr-iframe-themed) .tmblr-iframe--unified-controls.tmblr-iframe--below-header {
+ padding-bottom: 0
+ }
+
+ .tmblr-iframe--follow-teaser {
+ position: fixed;
+ bottom: 0;
+ right: 0;
+ z-index: 100;
+ display: none
+ }
+
+ .tmblr-iframe--follow-teaser.open {
+ display: block
+ }
+
+ .tmblr-iframe--follow-teaser.sticky-ad-visible {
+ bottom: 310px
+ }
+
+ @-webkit-keyframes iframe-app-cta-transition {
+ 0% {
+ opacity: 0;
+ bottom: -2em
+ }
+ to {
+ opacity: 1
+ }
+ }
+
+ @keyframes iframe-app-cta-transition {
+ 0% {
+ opacity: 0;
+ bottom: -2em
+ }
+ to {
+ opacity: 1
+ }
+ }
+
+ @-webkit-keyframes iframe-app-cta-dismiss-transition {
+ 0% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ transform: translateY(0)
+ }
+ to {
+ opacity: 0;
+ -webkit-transform: translateY(2em);
+ transform: translateY(2em)
+ }
+ }
+
+ @keyframes iframe-app-cta-dismiss-transition {
+ 0% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ transform: translateY(0)
+ }
+ to {
+ opacity: 0;
+ -webkit-transform: translateY(2em);
+ transform: translateY(2em)
+ }
+ }
+
+ body.android,
+ body.ios {
+ padding-bottom: 50px
+ }
+
+ .tmblr-iframe--app-cta-button {
+ display: none;
+ position: fixed;
+ bottom: 10px;
+ left: 50%;
+ -webkit-transform: translateX(-50%);
+ transform: translateX(-50%);
+ z-index: 100
+ }
+
+ .tmblr-iframe--app-cta-button.tmblr-iframe--loaded {
+ display: block;
+ -webkit-animation: iframe-app-cta-transition .2s ease-out;
+ animation: iframe-app-cta-transition .2s ease-out
+ }
+
+ .tmblr-lightbox {
+ position: fixed;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ z-index: 8675309;
+ overflow: hidden;
+ background-color: hsla(0, 0%, 7%, .92)
+ }
+
+ .tmblr-lightbox .vignette {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ left: 0;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ z-index: 8675308;
+ background-size: 100% 100%
+ }
+
+ .tmblr-lightbox .lightbox-image-container {
+ position: absolute;
+ z-index: 8675310;
+ cursor: pointer
+ }
+
+ .tmblr-lightbox .lightbox-image-container.single-image {
+ cursor: default
+ }
+
+ .tmblr-lightbox .lightbox-image {
+ border-radius: 3px;
+ box-shadow: 0 4px 30px #000;
+ border-width: 0;
+ background-color: transparent
+ }
+
+ .tmblr-lightbox .lightbox-image.hide {
+ display: none
+ }
+
+ .tmblr-lightbox .lightbox-image.placeholder {
+ background-color: hsla(0, 0%, 100%, .05)
+ }
+
+ .tmblr-lightbox .lightbox-caption {
+ position: absolute;
+ text-align: center;
+ font-family: Helvetica Neue, HelveticaNeue, Helvetica, Arial, sans-serif;
+ font-size: 17px;
+ font-weight: 700;
+ color: #fff;
+ padding-top: 20px;
+ text-shadow: 0 4px 30px #000;
+ display: inline-block;
+ text-rendering: optimizeLegibility
+ }
+
+ .tmblr-lightbox .lightbox-caption.hide {
+ display: none
+ }
+
+ .hidden-body {
+ position: relative;
+ left: -99999px;
+ overflow: hidden;
+ background-color: #000
+ }
+
+ .hidden-body .show-mobile-lightbox {
+ position: fixed;
+ overflow: hidden;
+ width: 100%;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ z-index: 8675309
+ }
+
+ .tmblr-iframe--sticky-ad {
+ position: fixed;
+ right: -464px;
+ bottom: 0;
+ border: 1px solid #8f8f8f;
+ background-color: #fff;
+ z-index: 100;
+ transition: all .5s ease
+ }
+
+ .tmblr-iframe--sticky-ad.show {
+ right: 0
+ }
+
+ .sticky-darla-ad {
+ position: fixed;
+ bottom: -315px;
+ right: 0;
+ z-index: 100;
+ border-radius: 5px 0;
+ border: 1px solid #9da6af;
+ transition: all .5s ease;
+ padding: 10px
+ }
+
+ .sticky-darla-ad.show {
+ bottom: 0
+ }
+
+ .sticky-darla-ad .ad-close-btn {
+ position: relative;
+ font-weight: 900;
+ margin-left: auto;
+ margin-right: 0;
+ margin-top: -26px;
+ cursor: pointer;
+ width: 20px;
+ height: 15px;
+ text-align: center;
+ border-radius: 5px 5px 0 0;
+ font-size: 12px;
+ line-height: 1.5;
+ border-top: 1px solid #9da6af;
+ border-left: 1px solid #9da6af;
+ border-right: 1px solid #9da6af
+ }
+
+ .sticky-darla-ad .ad-close-btn .icon-x {
+ display: none;
+ position: relative;
+ font-size: 12px;
+ content: '\D7';
+ color: #9da6af
+ }
+
+ .sticky-darla-ad .ad-footer {
+ font-size: 10px;
+ line-height: 1;
+ text-align: center
+ }
+
+ .sticky-darla-ad .ad-footer a {
+ padding-left: 5px;
+ border-bottom: 0;
+ text-decoration: none
+ }
+
+ .sticky-darla-ad .ad-header {
+ font-size: 10px;
+ line-height: 1;
+ text-align: center;
+ margin: 5px
+ }
+
+ .tmblr-iframe--init {
+ width: 0;
+ height: 0;
+ opacity: 0;
+ z-index: -1;
+ pointer-events: none
+ }
+ </style>
+ <script async="" src="/assets/src/scripts/tumblr/dashboard/px.js?ch=1"></script>
+ <style type="text/css">
+ .live-photo {
+ position: relative;
+ overflow: hidden;
+ cursor: pointer;
+ }
+
+ .live-photo video,
+ .live-photo img {
+ display: block;
+ max-width: 100%;
+ pointer-events: none;
+ -ms-touch-action: none;
+ touch-action: none;
+ }
+
+ .live-photo video {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ }
+
+ .live-photo video::-webkit-media-controls-start-playback-button {
+ display: none;
+ }
+
+ .live-photo .live-photo-icon {
+ display: block;
+ position: absolute;
+ top: 12px;
+ left: 12px;
+ width: 24px;
+ height: 24px;
+ background: url("data:image/svg+xml;charset=utf-8,%3Csvg width='48' height='48' viewBox='0 0 48 48' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Ctitle%3ELive Photo%3C/title%3E%3Cg fill-rule='evenodd'%3E%3Cpath d='M24 36c6.627 0 12-5.373 12-12s-5.373-12-12-12-12 5.373-12 12 5.373 12 12 12zm0-2c5.523 0 10-4.477 10-10s-4.477-10-10-10-10 4.477-10 10 4.477 10 10 10z'/%3E%3Cpath d='M24 29a5 5 0 1 0 0-10 5 5 0 0 0 0 10zm0-3a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0-19a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm4.788.63a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm4.462 1.85a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm3.831 2.94a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm2.94 3.831a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm1.849 4.462a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm.63 4.788a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm-.63 4.788a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm-1.85 4.461a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm-2.94 3.831a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm-3.831 2.94a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm-4.462 1.849a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM24 44a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm-4.788-.63a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm-4.462-1.85a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm-3.831-2.94a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm-2.94-3.831a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM6.13 30.288a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM5.5 25.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm.63-4.788a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm1.85-4.462a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm2.94-3.831a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm3.831-2.94a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm4.462-1.849a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z'/%3E%3C/g%3E%3C/svg%3E") center center;
+ background-size: contain;
+ -webkit-filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.5));
+ filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.5));
+ pointer-events: none;
+ }
+
+ .live-photo .live-photo-postroll,
+ .live-photo .live-photo-video {
+ opacity: 0;
+ }
+
+ .live-photo .live-photo-video {
+ -webkit-filter: blur(7.5px);
+ filter: blur(7.5px);
+ }
+
+ .live-photo .live-photo-keyframe,
+ .live-photo .live-photo-postroll,
+ .live-photo .live-photo-video {
+ will-change: transform, filter, opacity;
+ transition: opacity 0.5s linear, -webkit-transform 0.5s ease-out, -webkit-filter 0.5s linear;
+ transition: transform 0.5s ease-out, filter 0.5s linear, opacity 0.5s linear;
+ transition: transform 0.5s ease-out, filter 0.5s linear, opacity 0.5s linear, -webkit-transform 0.5s ease-out, -webkit-filter 0.5s linear;
+ }
+
+ .live-photo.loading .live-photo-icon {
+ -webkit-animation: live-photo-icon-loading 0.5s linear alternate infinite both;
+ animation: live-photo-icon-loading 0.5s linear alternate infinite both;
+ }
+
+ .live-photo.preview .live-photo-postroll {
+ opacity: 1;
+ transition-duration: 0s;
+ }
+
+ .live-photo.active video,
+ .live-photo.active img {
+ -webkit-transform: scale(1.075, 1.075);
+ -ms-transform: scale(1.075, 1.075);
+ transform: scale(1.075, 1.075);
+ }
+
+ .live-photo.active .live-photo-postroll {
+ -webkit-animation: live-photo-post-roll 1s both;
+ animation: live-photo-post-roll 1s both;
+ }
+
+ .live-photo.active .live-photo-video {
+ opacity: 1;
+ -webkit-filter: none;
+ filter: none;
+ transition-delay: 0.375s;
+ transition-duration: 0.625s;
+ }
+
+ @-webkit-keyframes live-photo-icon-loading {
+ 0% {
+ opacity: 1;
+ }
+ 100% {
+ opacity: 0.75;
+ }
+ }
+
+ @keyframes live-photo-icon-loading {
+ 0% {
+ opacity: 1;
+ }
+ 100% {
+ opacity: 0.75;
+ }
+ }
+
+ @-webkit-keyframes live-photo-post-roll {
+ 0% {
+ opacity: 0;
+ -webkit-filter: blur(0);
+ filter: blur(0);
+ }
+ 2% {
+ opacity: 1;
+ }
+ 37.5% {
+ opacity: 1;
+ -webkit-filter: blur(7.5px);
+ filter: blur(7.5px);
+ }
+ 100% {
+ opacity: 0;
+ }
+ }
+
+ @keyframes live-photo-post-roll {
+ 0% {
+ opacity: 0;
+ -webkit-filter: blur(0);
+ filter: blur(0);
+ }
+ 2% {
+ opacity: 1;
+ }
+ 37.5% {
+ opacity: 1;
+ -webkit-filter: blur(7.5px);
+ filter: blur(7.5px);
+ }
+ 100% {
+ opacity: 0;
+ }
+ }
+ </style>
+ <script async="" src="/assets/src/scripts/tumblr/dashboard/px.js?ch=2"></script>
+</head>
+
+<body class="Minecraft 1.8 - The Bountiful Update">
+ <div class="ui_dialog_lock" style="display: none;"></div>
+ <table width="100%" height="100%">
+ <tbody>
+ <tr>
+ <td style="padding-left: 16px;padding-right: 16px;" height="100%">
+ <table width="100%">
+ <tbody>
+ <tr>
+ <td>
+ <h1>Minecraft News</h1>
+ </td>
+ <td align="right">
+ <a href="http://tumblr.com/">
+ <font size="-2" color="#555555">Powered by Tumblr</font>
+ </a>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="container">
+ <div id="posts">
+ <div style="width:100%; height:16px;"></div>
+ <div style="width:100%; height:16px;"></div>
+ <div class="post text">
+ <h3><a href="http://mcupdate.tumblr.com/post/96439224994/minecraft-18-the-bountiful-update">Minecraft 1.8 - The Bountiful Update</a></h3>
+ <p>+ Added Granite, Andesite, and Diorite stone blocks, with smooth versions<br />+ Added Slime Block<br />+ Added Iron Trapdoor<br />+ Added Prismarine and Sea Lantern blocks<br />+ Added the Ocean Monument<br />+ Added Red Sandstone<br />+ Added Banners<br />+ Added Armor Stands<br />+ Added Coarse Dirt (dirt where grass won’t grow)<br />+ Added Guardian mobs, with item drops<br />+ Added Endermite mob<br />+ Added Rabbits, with item drops<br />+ Added Mutton and Cooked Mutton<br />+ Villagers will harvest crops and plant new ones<br />+ Mossy Cobblestone and Mossy Stone Bricks are now craftable<br />+ Chiseled Stone Bricks are now craftable<br />+ Doors and fences now come in all wood type variants<br />+ Sponge block has regained its water-absorbing ability and becomes wet<br />+ Added a spectator game mode (game mode 3)<br />+ Added one new achievement<br />+ Added “Customized” world type<br />+ Added hidden “Debug Mode” world type<br />+ Worlds can now have a world barrier<br />+ Added @e target selector for Command Blocks<br />+ Added /blockdata command<br />+ Added /clone command<br />+ Added /execute command<br />+ Added /fill command<br />+ Added /particle command<br />+ Added /testforblocks command<br />+ Added /title command<br />+ Added /trigger command<br />+ Added /worldborder command<br />+ Added /stats command<br />+ Containers can be locked in custom maps by using the “Lock” data tag<br />+ Added logAdminCommands, showDeathMessages, reducedDebugInfo, sendCommandFeedback, and randomTickSpeed game rules<br />+ Added three new statistics<br />+ Player skins can now have double layers across the whole model, and left/right arms/legs can be edited independently<br />+ Added a new player model with smaller arms, and a new player skin called Alex?<br />+ Added options for configuring what pieces of the skin that are visible<br />+ Blocks can now have custom visual variations in the resource packs<br />+ Minecraft Realms now has an activity chart, so you can see who has been online<br />+ Minecraft Realms now lets you upload your maps<br />* Difficulty setting is saved per world, and can be locked if wanted<br />* Enchanting has been redone, now costs lapis lazuli in addition to enchantment levels<br />* Villager trading has been rebalanced<br />* Anvil repairing has been rebalanced<br />* Considerable faster client-side performance<br />* Max render distance has been increased to 32 chunks (512 blocks)<br />* Adventure mode now prevents you from destroying blocks, unless your items have the CanDestroy data tag<br />* Resource packs can now also define the shape of blocks and items, and not just their textures<br />* Scoreboards have been given a lot of new features<br />* Tweaked the F3 debug screen<br />* Block ID numbers (such as 1 for stone), are being replaced by ID names (such as minecraft:stone)<br />* Server list has been improved<br />* A few minor changes to village and temple generation<br />* Mob heads for players now show both skin layers<br />* Buttons can now be placed on the ceiling<br />* Lots and lots of other changes<br />* LOTS AND LOTS of other changes<br />- Removed Herobrine<br /><br /></p>
+ </div>
+ <div id="footer">
+ <div id="pagination"></div>
+
+
+ <div id="permalinks"><a href="http://mcupdate.tumblr.com/post/102272891284" title="Newer Posts" id="newer">Newer</a><a href="http://mcupdate.tumblr.com/post/89960443749" title="Older Posts" id="older">Older</a></div>
+ </div>
+ </div>
+ </div>
+ </td>
+ <td class="sidebar" width="180px" valign="top">
+ <h2>Official links:</h2><a href="https://minecraft.net/">Minecraft.net</a><br /><a href="https://minecraft.net/realms">Minecraft Realms</a><br /><a href="https://www.facebook.com/minecraft">Minecraft on Facebook</a><br /><a href="http://jinx.com/minecraft.aspx">Merchandise</a><br /><br /><a href="https://bugs.mojang.com/browse/MC">Bug tracker</a><br /><a href="https://help.mojang.com">Account Support</a><br /><br /><a href="http://twitter.com/Mojang">Mojang on Twitter</a><br /><a href="http://twitter.com/MojangSupport">Support on Twitter</a><br /><br /><b>Try our other games!</b><br />
+ <div style="height:5px; display:block;"></div>
+ <a href="http://scrolls.com/welcome?utm_source=mcl"><img src="http://assets.mojang.com/scrolls/scrolls_logo_150.png" border="0" /></a>
+ <div style="height:5px; display:block;"></div>
+ <a href="http://playcobalt.com/?utm_source=mcl"><img src="http://assets.mojang.com/cobalt/cobalt_logo_150.PNG" border="0" /></a>
+ <h2>Community links:</h2><a href="http://minecraftforum.net/">Minecraft Forums</a><br /><a href="http://www.twitch.tv/directory/game/Minecraft">Minecraft on Twitch.tv</a><br /></td>
+ </tr>
+ </tbody>
+ </table>
+ <font style="display:none;" size="0" color="#222222">
+ <script src="http://assets.tumblr.com/client/prod/standalone/tumblelog/index.build.js?_v=002b364509c8adc2849edf7b59a42286"></script>
+ </font>
+</body>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/uses-getfirstelementchild-function/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/uses-getfirstelementchild-function/expected-images.json
new file mode 100644
index 000000000..c2be6de58
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/uses-getfirstelementchild-function/expected-images.json
@@ -0,0 +1,3 @@
+[
+ "http://fakehost/test/logo.jpg"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/uses-getfirstelementchild-function/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/uses-getfirstelementchild-function/expected-metadata.json
new file mode 100644
index 000000000..416d55e4c
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/uses-getfirstelementchild-function/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "",
+ "Image": null,
+ "Title": "Seattle Thunderbirds Hockey",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/uses-getfirstelementchild-function/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/uses-getfirstelementchild-function/expected.html
new file mode 100644
index 000000000..21644834f
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/uses-getfirstelementchild-function/expected.html
@@ -0,0 +1,115 @@
+<div><td>
+ <div>
+ <p><img height="235" src="http://fakehost/test/logo.jpg" width="400"></img></p>
+ <div>
+ <br></br>
+
+ <p>The Seattle Thunderbirds are excited to announce the dates of their
+ annual Summer Hockey Clinic! This three day hockey school will feature top level
+ instruction, both on and off-ice, from Thunderbirds players and coaches. Each day
+ includes 1.5 hours on-ice and 1.25 hours of off-ice instruction, conditioning and
+ theory!</p>
+ <p>Included in your purchase is a 2007 HOCKEY CLINIC JERSEY and the T-BIRDS
+ SUMMER HOCKEY TICKET SPECIAL! This ticket special includes 6 ticket vouchers for any
+ Thunderbirds game at KeyArena in 2007, where you can watch your own instructors take on
+ division rivals such as the Portland Winter Hawks and Everett Silvertips. That\'s 4.5
+ hours on-ice, 3.75 hours off-ice, a jersey and 6 Thunderbirds tickets for as little as
+ $125! Your vouchers will be redeemable at the KeyArena East Box Office or the Hockey
+ Store at Kingsgate, but expire on December 31, 2007 - so pick out your games soon!</p>
+ </div>
+ <p>The Thunderbirds offer 4 sessions, broken down by the age of the participating player.
+ You will begin your daily training on-ice and complete the day off-ice (see the next
+ page for a complete schedule). Please come prepared with appropriate work-out gear and
+ sneakers!</p>
+ <p>• GROUP A: 7, 8 &amp; 9 yrs old $125<br></br> • GROUP B: 10 &amp; 11 yrs old $125<br></br> • GROUP
+ C: 12, 13 &amp; 14 yrs old $125<br></br> • ADULTS: 18 &amp; Over $160</p>
+ <div>
+ <p>To reserve your space in the T-Birds Summer Hockey Clinic and receive
+ your Ticket Special, fill out the registration form on reverse. Space is limited and
+ fills up fast, so sign-up today!</p>
+ <p>Safe Environment: Our goal is to provide a positive, safe environment for
+ hockey players of all ages to improve their skills and enjoy their time with us. To help
+ ensure this, the Thunderbirds\' training staff will be at the clinic for its
+ entirety.</p>
+ <p>Elevate your game!<br></br> Improve your skating…<br></br> • lengthen your stride<br></br>
+ • gain power<br></br> • balance and agility</p>
+ <p>Improve your puck skills…<br></br> • puck control and deking<br></br> • power moves
+ and puck protection</p>
+ <p>Improve your passing and team play…<br></br> • puck support and \'ice
+ vision\'<br></br> • shooting for accuracy vs rebounds<br></br> • game systems</p>
+ <p><br></br> Instructors: Instructors for the 2007 Summer Hockey Clinics will
+ include Seattle Thunderbirds Head Coach Rob Sumner, Assistant Coach Turner Stevenson,
+ past Thunderbirds Ryan Gibbons and Tyler Metcalfe and past and present Seattle
+ Thunderbirds players.</p>
+
+ <p>The Thunderbirds Summer Hockey Clinic will take place from Tuesday,
+ August 14th, through Thursday, August 16th, at Kingsgate Ice Arena, 14326 124th Ave. NE,
+ Kirkland, WA 98034.</p>
+ <p>PLEASE NOTE: All players are required to wear full gear including a HECC
+ certified helmet with full facemask. Youth players must also wear a mouth guard. Adult
+ players may wear a half visor, however full cages and mouth guards are highly
+ recommended.</p>
+
+ <p>• To register and pay for your clinic online, compelte the form below<br></br> •
+ To register and pay for your clinic via mail, click here to download the registration
+ form</p>
+ <table bordercolor="#666666" readabilityDataTable="0"><tbody><tr><td bordercolor="#666666">
+ <div>
+ <p>
+ Summer Hockey Clinic Registration Form
+ </p>
+ </div></td>
+ </tr><tr><td bordercolor="#FFFFFF">
+ <table readabilityDataTable="0"><tbody><tr><td><p>Player Name</p></td>
+ <td colspan="3"></td>
+ </tr><tr><td nowrap="nowrap"><p>Email Address</p></td>
+ <td colspan="3"></td>
+ </tr><tr><td><p>Birthdate</p></td>
+ <td colspan="3"></td>
+ </tr><tr><td><p>Address</p></td>
+ <td colspan="3"></td>
+ </tr><tr><td><p>City/St</p></td>
+ <td></td>
+ <td><p>Zip</p></td>
+ <td></td>
+ </tr><tr><td><p>Day Phone</p></td>
+ <td></td>
+ <td><p>Eve Phone</p></td>
+ <td></td>
+ </tr><tr><td colspan="4"><p>Please indicate your curreny hockey association or
+ league:</p></td>
+ </tr><tr><td></td>
+ <td colspan="3"><p>SKAHA   SJHA    KVAHA   
+ GSHL    Other</p></td>
+ </tr><tr><td colspan="4"><p>If other, pelase specify:</p></td>
+ </tr><tr><td><p>Position:</p></td>
+ <td colspan="3"><p>Forward    Defense    Goalie</p>
+ </td>
+ </tr><tr><td><p>Jersey Size</p></td>
+ <td colspan="3"><p>S   M    L    XL   
+ XXL</p></td>
+ </tr><tr><td><p>I want to purchase the following T-Birds Summer Hockey
+ Clinic:</p></td>
+ <td colspan="3">
+ <table readabilityDataTable="0"><tbody><tr><td><p>GROUP A<br></br> 7, 8 &amp; 9<br></br> $125<br></br></p></td>
+ <td><p>GROUP B<br></br> 10 &amp; 11<br></br> $125<br></br></p></td>
+ <td><p>GROUP C<br></br> 12, 13 &amp; 14<br></br>
+ $125<br></br></p></td>
+ <td><p>ADULTS<br></br> 18 &amp; Over<br></br> $160<br></br></p></td>
+ </tr></tbody></table></td>
+ </tr><tr><td colspan="4"> </td>
+ </tr><tr><td colspan="4"><p>Waiver and Release</p></td>
+ </tr><tr><td colspan="4"><p>By checking this box, I understand that participation
+ of the sport constitutes a risk to me (or my child). I voluntarily
+ recognize, accept and assume risk and release the Seattle
+ Thunderbirds and Kingsgate Arena from any and all liability.</p>
+ </td>
+ </tr><tr><td colspan="4"></td>
+ </tr><tr><td colspan="4"></td>
+ </tr><tr><td colspan="4"><p>Once you click submit, you will be
+ given the link to continue to online payment</p></td>
+ </tr></tbody></table></td>
+ </tr></tbody></table>
+ </div>
+ </div></td>
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/uses-getfirstelementchild-function/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/uses-getfirstelementchild-function/source.html
new file mode 100644
index 000000000..e4b2d4ac9
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/uses-getfirstelementchild-function/source.html
@@ -0,0 +1,421 @@
+<!doctype html>
+<html>
+<head>
+ <title>Seattle Thunderbirds Hockey</title>
+</head>
+<body bgcolor="#999999" background="../images/allpages/back.jpg" leftmargin="0" topmargin="0" marginwidth="0"
+ marginheight="0">
+<table width="775" border="0" align="center" cellpadding="0" cellspacing="0">
+ <tbody>
+ <tr>
+ <td class="grayhheaderframe"></td>
+ </tr>
+ <tr>
+ <td class="headerframe"><img src="../images/allpages/200607header.jpg" width="775" height="100"></td>
+ </tr>
+ <tr>
+ <td class="grayhheaderframe">
+ <div align="center">
+ Official Website of the Seattle Thunderbirds Hockey Club&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="http://www.seattlethunderbirds.com/home/contact.html">Contact Us</a> |
+ <a href="http://www.seattlethunderbirds.com/home/sitemap.html">Site Map</a> |
+ <a href="http://ui.constantcontact.com/d.jspm_1011134921715_p_oi" target="_blank">Sign up for the
+ E-News!</a>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td valign="top" class="bodyframe">
+ <table width="775" border="0" cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr>
+ <td valign="top" class="menuframe">
+ <ul id="nav" class="menu">
+ <li><a href="http://www.seattlethunderbirds.com">Home</a></li>
+ <li><a href="#">News &amp; Notes</a>
+ <ul>
+ <li><a href="http://www.seattlethunderbirds.com/news/tbirdsnews.php"> News
+ Releases</a></li>
+ <li><a href="http://www.seattlethunderbirds.com/news/press.php"> In The Press</a>
+ </li>
+ </ul>
+ </li>
+ <li><a href="http://www.seattlethunderbirds.com/roster/roster.php"> Roster</a></li>
+ <li><a href="#">Schedule</a>
+ <ul>
+ <li><a href="http://www.seattlethunderbirds.com/schedule/schedule.php"> Schedule</a>
+ </li>
+ <li><a href="http://www.calendar-updates.com/sports/whl.aspx"> Downlad to
+ Outlook</a></li>
+ <li><a href="http://www.seattlethunderbirds.com/schedule/events.php"> Event
+ Calendar</a></li>
+ </ul>
+ </li>
+ <li><a href="#">Statistics</a>
+ <ul>
+ <li><a href="http://whl.ca/stats/statdisplay.phptype_standings" target="_blank">Team
+ Standings</a></li>
+ <li><a href="http://www.seattlethunderbirds.com/standings/divcup.php"> US Division
+ Scholarship Cup</a></li>
+ <li><a href="http://whl.ca/stats/statdisplay.phptype_top_scorers" target="_blank">Top
+ Scorers</a></li>
+ <li><a href="http://whl.ca/stats/statdisplay.phptype_top_goalies" target="_blank">Top
+ Goalies</a></li>
+ <li><a href="http://whl.ca/stats/statdisplay.phptype_records" target="_blank">Records</a>
+ </li>
+ <li><a href="http://whl.ca/stats/statdisplay.phptype_streaks" target="_blank">Streaks</a>
+ </li>
+ <li>
+ <a href="http://whl.ca/stats/statdisplay.phptype_goalies_subtype_16_season_id_227&amp;_leagueid_26&amp;lastActive=&amp;singleSeason="
+ target="_blank">Goalies</a></li>
+ <li>
+ <a href="http://whl.ca/stats/statdisplay.phptype_skaters_subtype_16_season_id_227&amp;_leagueid_26&amp;lastActive=&amp;singleSeason="
+ target="_blank">Skaters</a></li>
+ </ul>
+ </li>
+ <li><a href="#">Team Info</a>
+ <ul>
+ <li><a href="http://www.seattlethunderbirds.com/teaminfo/about.php"> About Us</a>
+ </li>
+ <li><a href="http://www.seattlethunderbirds.com/teaminfo/staff.php"> Staff</a></li>
+ <li><a href="http://www.seattlethunderbirds.com/teaminfo/owners.php"> Owners</a>
+ </li>
+ <li><a href="http://www.seattlethunderbirds.com/teaminfo/physicians.php">
+ Physicians</a></li>
+ <li><a href="http://www.seattlethunderbirds.com/teaminfo/hostfamilies.php"> Host
+ Families</a></li>
+ <li><a href="http://www.seattlethunderbirds.com/teaminfo/careers.php"> Careers</a>
+ </li>
+ </ul>
+ </li>
+ <li><a href="http://www.seattlethunderbirds.com/tickets/index.php"> Tickets</a></li>
+ <li><a href="http://www17.serrahost.com/servlet/seattle-thunderbirdscom/StoreFront">
+ Merchandise</a></li>
+ <li><a href="#">Community</a>
+ <ul>
+ <li><a href="http://www.seattlethunderbirds.com/community/appearances.php"> Team
+ Appearances</a></li>
+ <li><a href="http://www.seattlethunderbirds.com/community/coolbird.php"> Cool
+ Bird</a></li>
+ <li><a href="http://www.seattlethunderbirds.com/community/hockeychallenge.php">
+ Hockey Challenge</a></li>
+ <li><a href="http://www.seattlethunderbirds.com/community/donations.php">
+ Donations</a></li>
+ <li><a href="http://www.seattlethunderbirds.com/community/fundraising.php">
+ Fundraising</a></li>
+ <li><a href="http://www.seattlethunderbirds.com/streetteam/"> Street Team</a></li>
+ </ul>
+ </li>
+ <li><a href="#">History</a>
+ <ul>
+ <li><a href="http://www.seattlethunderbirds.com/history/alumni.php"> Alumni</a></li>
+ <li><a href="http://www.seattlethunderbirds.com/history/club.php"> Club History</a>
+ </li>
+ <li><a href="http://www.seattlethunderbirds.com/history/coaching.php"> Coaching
+ History</a></li>
+ <li><a href="http://www.seattlethunderbirds.com/history/teamrecords.php"> Team
+ Records</a></li>
+ <li><a href="http://www.seattlethunderbirds.com/history/timecapsule.php"> Time
+ Capsule</a></li>
+ <li><a href="http://www.seattlethunderbirds.com/history/winloss.php"> Win/Loss
+ Record</a></li>
+ <li><a href="http://www.seattlethunderbirds.com/history/bantam.php"> Bantam
+ Draft</a></li>
+ <li><a href="http://www.seattlethunderbirds.com/history/chl.php"> Import Draft</a>
+ </li>
+ <li><a href="http://www.seattlethunderbirds.com/history/nhl.php"> NHL Entry
+ Draft</a></li>
+ </ul>
+ </li>
+ <li><a href="#">Fan Zone</a>
+ <ul>
+ <li><a href="http://thunderbirds.shopamiga.com/" target="_blank">Amiga Games</a>
+ </li>
+ <li><a href="http://www.seattlethunderbirds.com/fanzone/booster.php"> Booster
+ Club</a></li>
+ <li><a href="http://www.seattlethunderbirds.com/fanzone/fantrain.php"> Fan Train</a>
+ </li>
+ <li><a href="http://www.seattlethunderbirds.com/fanzone/terms.php"> Hockey
+ Terminology</a></li>
+ <li><a href="http://www.seattlethunderbirds.com/fanzone/itclist.php"> In The
+ Corners</a></li>
+ <li><a href="http://www.seattlethunderbirds.com/fanzone/qalist.php"> Q&amp;A with
+ the Birds</a></li>
+ </ul>
+ </li>
+ <li><a href="http://www.seattlethunderbirds.com/kidsclub/kidsclub.php"> Kid\'s Club</a></li>
+ <li><a href="#">Multimedia</a>
+ <ul>
+ <li><a href="http://www.seattlethunderbirds.com/multimedia/videos.php"> Video</a>
+ </li>
+ <li><a href="http://www.seattlethunderbirds.com/multimedia/videos.php"> Allstate
+ Good Hands</a></li>
+ <li><a href="http://thunderbirds.shopamiga.com/" target="_blank">Amiga Games</a>
+ </li>
+ <li><a href="http://www.seattlethunderbirds.com/multimedia/photos.php"> Photos</a>
+ </li>
+ <li><a href="http://www.seattlethunderbirds.com/multimedia/wallpaper.php">
+ Wallpaper</a></li>
+ <li><a href="http://www.seattlethunderbirds.com/multimedia/icons.php"> Display
+ Pics</a></li>
+ </ul>
+ </li>
+ <li><a href="#">Partnerships</a>
+ <ul>
+ <li><a href="http://www.seattlethunderbirds.com/corporate/overview.php">
+ Overview</a></li>
+ <li><a href="http://www.seattlethunderbirds.com/corporate/sponsors.php">
+ Sponsors</a></li>
+ <li><a href="http://www.seattlethunderbirds.com/corporate/testimonials.php">
+ Testimonials</a></li>
+ </ul>
+ </li>
+ <li><a href="http://www.seattlethunderbirds.com/education/education.php"> Education</a></li>
+ <li><a href="#">Links</a>
+ <ul>
+ <li><a href="http://www.seattlethunderbirds.com/links/whl.php"> WHL Links</a></li>
+ <li><a href="http://www.seattlethunderbirds.com/links/media.php"> Local Media</a>
+ </li>
+ </ul>
+ </li>
+ <li><a href="#">Game Night</a>
+ <ul>
+ <li><a href="http://www.seattlethunderbirds.com/gamenight/promos.php"> Game Night
+ Promotions</a></li>
+ <li><a href="http://www.seattlethunderbirds.com/gamenight/cap.php"> Chuck A Puck</a>
+ </li>
+ <li><a href="http://www.seattlethunderbirds.com/gamenight/allstate.php"> Allstate
+ Ultimate Fan Road Trip</a></li>
+ <li><a href="http://www.seattlethunderbirds.com/gamenight/banner.php"> Banner of the
+ Night</a></li>
+ <li><a href="http://www.seattlethunderbirds.com/gamenight/fanappreciation.php"> Fan
+ Appreciation Night</a></li>
+ <li><a href="http://www.seattlethunderbirds.com/gamenight/sweetheartofthenight.php">
+ Sweetheart of the Night</a></li>
+ </ul>
+ </li>
+ </ul>
+ <div align="center">
+ <a href="http://www.seattlethunderbirds.com"><img src="../images/allpages/seattle.jpg"
+ width="150" height="110" border="0"><br>
+ <img src="../images/allpages/thirtieth.jpg" width="150" height="110" border="0"></a>
+ <a href="http://www.seattlethunderbirds.com"></a>
+ </div>
+ </td>
+ <td valign="top" class="mainframe">
+ <div align="center">
+ <img src="logo.jpg" width="400" height="235">
+ </div>
+ <div align="center">
+ <br>
+ <table width="100%" border="1" cellpadding="5" cellspacing="0">
+ <tbody>
+ <tr bgcolor="#EAEAEA">
+ <td><p align="center"><a href="#general">General Info</a></p></td>
+ <td><p align="center"><a href="#when">When/Where</a></p></td>
+ <td><p align="center"><a href="#register">Sign Up Online</a></p></td>
+ <td><p align="center"><a href="2007hockeyclinic.pdf" target="_blank">Downloand
+ Brochure</a></p></td>
+ </tr>
+ </tbody>
+ </table>
+ <p align="left">&nbsp;</p>
+ <h1 align="center"><a name="general" id="general"></a>General Info</h1>
+ <p align="justify">The Seattle Thunderbirds are excited to announce the dates of their
+ annual Summer Hockey Clinic! This three day hockey school will feature top level
+ instruction, both on and off-ice, from Thunderbirds players and coaches. Each day
+ includes 1.5 hours on-ice and 1.25 hours of off-ice instruction, conditioning and
+ theory!</p>
+ <p align="justify">Included in your purchase is a 2007 HOCKEY CLINIC JERSEY and the T-BIRDS
+ SUMMER HOCKEY TICKET SPECIAL! This ticket special includes 6 ticket vouchers for any
+ Thunderbirds game at KeyArena in 2007, where you can watch your own instructors take on
+ division rivals such as the Portland Winter Hawks and Everett Silvertips. That\'s 4.5
+ hours on-ice, 3.75 hours off-ice, a jersey and 6 Thunderbirds tickets for as little as
+ $125! Your vouchers will be redeemable at the KeyArena East Box Office or the Hockey
+ Store at Kingsgate, but expire on December 31, 2007 - so pick out your games soon!</p>
+ </div>
+ <div align="left">
+ <p>The Thunderbirds offer 4 sessions, broken down by the age of the participating player.
+ You will begin your daily training on-ice and complete the day off-ice (see the next
+ page for a complete schedule). Please come prepared with appropriate work-out gear and
+ sneakers!</p>
+ </div>
+ <div align="left">
+ <p>• GROUP A: 7, 8 &amp; 9 yrs old $125<br> • GROUP B: 10 &amp; 11 yrs old $125<br> • GROUP
+ C: 12, 13 &amp; 14 yrs old $125<br> • ADULTS: 18 &amp; Over $160</p>
+ </div>
+ <div align="center">
+ <p align="justify">To reserve your space in the T-Birds Summer Hockey Clinic and receive
+ your Ticket Special, fill out the registration form on reverse. Space is limited and
+ fills up fast, so sign-up today!</p>
+ <p align="justify">Safe Environment: Our goal is to provide a positive, safe environment for
+ hockey players of all ages to improve their skills and enjoy their time with us. To help
+ ensure this, the Thunderbirds\' training staff will be at the clinic for its
+ entirety.</p>
+ <p align="left">Elevate your game!<br> Improve your skating…<br> • lengthen your stride<br>
+ • gain power<br> • balance and agility</p>
+ <p align="left">Improve your puck skills…<br> • puck control and deking<br> • power moves
+ and puck protection</p>
+ <p align="left">Improve your passing and team play…<br> • puck support and \'ice
+ vision\'<br> • shooting for accuracy vs rebounds<br> • game systems</p>
+ <p align="left"><br> Instructors: Instructors for the 2007 Summer Hockey Clinics will
+ include Seattle Thunderbirds Head Coach Rob Sumner, Assistant Coach Turner Stevenson,
+ past Thunderbirds Ryan Gibbons and Tyler Metcalfe and past and present Seattle
+ Thunderbirds players.</p>
+ <h1 align="center"><a name="when" id="when"></a>When/Where</h1>
+ <p align="justify">The Thunderbirds Summer Hockey Clinic will take place from Tuesday,
+ August 14th, through Thursday, August 16th, at Kingsgate Ice Arena, 14326 124th Ave. NE,
+ Kirkland, WA 98034.</p>
+ <p align="justify">PLEASE NOTE: All players are required to wear full gear including a HECC
+ certified helmet with full facemask. Youth players must also wear a mouth guard. Adult
+ players may wear a half visor, however full cages and mouth guards are highly
+ recommended.</p>
+ <h1 align="center"><br> <a name="register" id="register"></a>Registration</h1>
+ <p align="left">• To register and pay for your clinic online, compelte the form below<br> •
+ To register and pay for your clinic via mail, click here to download the registration
+ form</p>
+ <table width="85%" border="1" align="center" cellpadding="0" cellspacing="0"
+ bordercolor="#666666">
+ <tbody>
+ <tr>
+ <td bordercolor="#666666" bgcolor="#666666">
+ <table width="100%" border="0" cellspacing="0" cellpadding="5">
+ <tbody>
+ <tr>
+ <td>
+ <div align="center">
+ Summer Hockey Clinic Registration Form
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td valign="top" bordercolor="#FFFFFF" bgcolor="#FFFFFF">
+ <table width="100%" border="0" align="center" cellpadding="3" cellspacing="0">
+ <tbody>
+ <tr>
+ <td><p>Player Name</p></td>
+ <td colspan="3"></td>
+ </tr>
+ <tr>
+ <td nowrap><p>Email Address</p></td>
+ <td colspan="3"></td>
+ </tr>
+ <tr>
+ <td><p>Birthdate</p></td>
+ <td colspan="3"></td>
+ </tr>
+ <tr>
+ <td><p>Address</p></td>
+ <td colspan="3"></td>
+ </tr>
+ <tr>
+ <td><p>City/St</p></td>
+ <td></td>
+ <td><p>Zip</p></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><p>Day Phone</p></td>
+ <td></td>
+ <td><p>Eve Phone</p></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td colspan="4"><p>Please indicate your curreny hockey association or
+ league:</p></td>
+ </tr>
+ <tr>
+ <td><p>&nbsp;</p></td>
+ <td colspan="3"><p>SKAHA&nbsp;&nbsp; SJHA &nbsp;&nbsp; KVAHA &nbsp;&nbsp;
+ GSHL &nbsp;&nbsp; Other</p></td>
+ </tr>
+ <tr>
+ <td colspan="4"><p>If other, pelase specify:</p></td>
+ </tr>
+ <tr>
+ <td><p>Position:</p></td>
+ <td colspan="3"><p>Forward &nbsp;&nbsp; Defense &nbsp;&nbsp; Goalie</p>
+ </td>
+ </tr>
+ <tr>
+ <td><p>Jersey Size</p></td>
+ <td colspan="3"><p>S&nbsp;&nbsp; M &nbsp;&nbsp; L &nbsp;&nbsp; XL &nbsp;&nbsp;
+ XXL</p></td>
+ </tr>
+ <tr>
+ <td><p>I want to purchase the following T-Birds Summer Hockey
+ Clinic:</p></td>
+ <td colspan="3">
+ <table width="100%" border="0" cellspacing="0" cellpadding="3">
+ <tbody>
+ <tr>
+ <td><p align="center">GROUP A<br> 7, 8 &amp; 9<br> $125<br>
+ </p></td>
+ <td><p align="center">GROUP B<br> 10 &amp; 11<br> $125<br>
+ </p></td>
+ <td><p align="center">GROUP C<br> 12, 13 &amp; 14<br>
+ $125<br></p></td>
+ <td><p align="center">ADULTS<br> 18 &amp; Over<br> $160<br>
+ </p></td>
+ </tr>
+ </tbody>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="4">&nbsp;</td>
+ </tr>
+ <tr>
+ <td colspan="4"><p>Waiver and Release</p></td>
+ </tr>
+ <tr>
+ <td colspan="4"><p>By checking this box, I understand that participation
+ of the sport constitutes a risk to me (or my child). I voluntarily
+ recognize, accept and assume risk and release the Seattle
+ Thunderbirds and Kingsgate Arena from any and all liability.</p>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="4"><p>&nbsp;</p></td>
+ </tr>
+ <tr>
+ <td colspan="4"></td>
+ </tr>
+ <tr>
+ <td colspan="4"><p align="center">Once you click submit, you will be
+ given the link to continue to online payment</p></td>
+ </tr>
+ </tbody>
+ </table>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <p>&nbsp;</p>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td class="grayhheaderframe">&nbsp;</td>
+ </tr>
+ <tr>
+ <td class="footerframe">
+ <div align="center">
+ Seattle Thunderbirds Hockey Club © 2005-06 All Rights Reserved •
+ <a href="../news/home_list.php">Powered by Worldlink</a> • Webmaster Email
+ <br> 14326 124th Ave• Kirkland, WA 98034 • Phone: 425.869.7825 • Tix: 206.448.PUCK• Fax: 425.497.0812
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</body>
+</html> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wapo-1/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wapo-1/expected-images.json
new file mode 100644
index 000000000..cc41335ab
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wapo-1/expected-images.json
@@ -0,0 +1,4 @@
+[
+ "http:\/\/img.washingtonpost.com\/rw\/2010-2019\/WashingtonPost\/2015\/03\/18\/Foreign\/Images\/Nic6429927.jpg",
+ "https:\/\/img.washingtonpost.com\/rf\/image_480w\/2010-2019\/WashingtonPost\/2015\/03\/18\/Foreign\/Graphics\/tunisia600.jpg?uuid=1_yuLs2LEeSHME9HNBbnWQ"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wapo-1/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wapo-1/expected-metadata.json
new file mode 100644
index 000000000..d3aad6507
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wapo-1/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "By Erin Cunningham",
+ "Direction": null,
+ "Excerpt": "The assault on Tunisia’s most renowned museum, in which gunmen killed at least 19 people, could heighten tensions in a nation that has become deeply divided between pro- and anti-Islamist factions.",
+ "Image": "http:\/\/img.washingtonpost.com\/rw\/2010-2019\/WashingtonPost\/2015\/03\/18\/Foreign\/Images\/Nic6429927.jpg",
+ "Title": "Attack stokes instability fears in North Africa",
+ "SiteName": "Washington Post"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wapo-1/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wapo-1/expected.html
new file mode 100644
index 000000000..ed051e882
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wapo-1/expected.html
@@ -0,0 +1,144 @@
+<article>
+ <p> <span>CAIRO —</span> Gunmen opened fire on visitors at
+ Tunisia’s most renowned museum on Wednesday, killing at least 19 people,
+ including 17 foreigners, in an assault that threatened to upset the fragile
+ stability of a country seen as the lone success of the Arab Spring.</p>
+ <p>It was the most deadly terrorist attack in the North African nation in
+ more than a decade. Although no group claimed responsibility, the bloodshed
+ raised fears that militants linked to the Islamic State were expanding
+ their operations.</p>
+ <p>The attackers, clad in military uniforms, <a href="http://www.washingtonpost.com/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html">stormed the Bardo National Museum</a> on
+ Wednesday afternoon, seizing and gunning down foreign tourists before security
+ forces raided the building to end the siege. The museum is a major tourist
+ draw and is near the heavily guarded national parliament in downtown Tunis.</p>
+ <p>Tunisian Prime Minister Habib Essid said that in addition to the slain
+ foreigners — from Italy, Poland, Germany and Spain — a local museum worker
+ and a security official were killed. Two gunmen died, and three others
+ may have escaped, officials said. About 50 other people were wounded, according
+ to local news reports.</p>
+ <p>“Our nation is in danger,” Essid declared in a televised address Wednesday
+ evening. He vowed that the country would be “merciless” in defending itself.</p>
+ <p channel="wp.com"> <i> <a href="http://www.washingtonpost.com/blogs/worldviews/wp/2015/03/18/why-tunisia-the-arab-springs-sole-success-story-suffers-from-islamist-violence/">[Read: Why Tunisia, Arab Spring’s sole success story, suffers from Islamist violence]</a> </i>
+ </p>
+ <p>Tunisia, a mostly Muslim nation of about 11 million people, was governed
+ for decades by autocrats who imposed secularism. Its sun-drenched Mediterranean
+ beaches drew thousands of bikini-clad tourists, and its governments promoted
+ education and other rights for women. But the country has grappled with
+ rising Islamist militancy since a popular uprising overthrew its dictator
+ four years ago, setting the stage for the Arab Spring revolts across the
+ region.</p>
+ <p>Thousands of Tunisians have flocked to join jihadist groups in Syria,
+ including the Islamic State, making the country one of the major sources
+ of foreign fighters in the conflict. Tunisian security forces have also
+ fought increasing gunbattles with jihadists at home.</p>
+ <p>Despite this, the country has been hailed as a model of democratic transition
+ as other governments that came to power after the Arab Spring collapsed,
+ often in bloody confrontations. But the attack Wednesday — on a national
+ landmark that showcases Tunisia’s rich heritage — could heighten tensions
+ in a nation that has become deeply divided between pro- and anti-Islamist
+ political factions.</p>
+ <p>Many Tunisians accuse the country’s political Islamists, who held power
+ from 2011 to 2013, of having been slow to respond to the growing danger
+ of terrorism. Islamist politicians have acknowledged that they did not
+ realize the threat that would develop when radical Muslims, who had been
+ repressed under authoritarian regimes, won the freedom to preach freely
+ in mosques.</p>
+ <p>In Washington, White House press secretary Josh Earnest <a href="http://hosted2.ap.org/APDEFAULT/cae69a7523db45408eeb2b3a98c0c9c5/Article_2015-03-18-ML--Tunisia-Attack-The%20Latest/id-653822d829b24cef993c5bd6a7ce44b5">condemned the attack </a>and
+ said the U.S. government was willing to assist Tunisian authorities in
+ the investigation.</p>
+ <div>
+
+ <p><span>Gunmen in military uniforms stormed Tunisia's national museum, killing at least 19 people, most of them foreign tourists. (Reuters)</span>
+ </p>
+ </div>
+ <p>“This attack today is meant to threaten authorities, to frighten tourists
+ and to negatively affect the economy,” said Lotfi Azzouz, Tunisia country
+ director for Amnesty International, a London-based rights group.</p>
+ <p>Tourism is critical to Tunisia’s economy, accounting for 15 percent of
+ its gross domestic product in 2013, according to the World Travel and Tourism
+ Council, an industry body. The Bardo museum hosts one of the world’s most
+ outstanding collections of Roman mosaics and is popular with tourists and
+ Tunisians alike.</p>
+ <p channel="wp.com"> <i>[<a href="http://www.washingtonpost.com/blogs/worldviews/wp/2015/03/18/tunisias-bardo-museum-attacked-by-terrorists-is-home-to-amazing-roman-treasures/">Bardo museum houses amazing Roman treasures</a>]</i>
+ </p>
+ <p>The attack is “also aimed at the country’s security and stability during
+ the transition period,” Azzouz said. “And it could have political repercussions
+ — like the curtailing of human rights, or even less government transparency
+ if there’s fear of further attacks.”</p>
+ <p>The attack raised concerns that the government, led by secularists, would
+ be pressured to stage a wider crackdown on Islamists of all stripes. Lawmakers
+ are drafting an anti-terrorism bill to give security forces additional
+ tools to fight militants.</p>
+
+ <p channel="wp.com"> <i> <a href="http://www.washingtonpost.com/world/national-security/tunisia-after-igniting-arab-spring-sends-the-most-fighters-to-islamic-state-in-syria/2014/10/28/b5db4faa-5971-11e4-8264-deed989ae9a2_story.html">[Read: Tunisia sends most foreign fighters to Islamic State in Syria]</a> </i>
+ </p>
+ <p>“We must pay attention to what is written” in that law, Azzouz said. “There
+ is worry the government will use the attack to justify some draconian measures.”</p>
+ <p>Tunisian Islamists and secular forces have worked together — often reluctantly
+ — to defuse the country’s political crises in the years since the revolt.</p>
+ <p>Last fall, Tunisians elected a secular-minded president and parliament
+ dominated by liberal forces after <a href="http://www.washingtonpost.com/world/middle_east/tunisias-islamists-get-sobering-lesson-in-governing/2014/11/20/b6fc8988-65ad-11e4-ab86-46000e1d0035_story.html">souring on Islamist-led rule</a>.
+ In 2011, voters had elected a government led by the Ennahda party — a movement
+ similar to Egypt’s Islamist Muslim Brotherhood. But a political stalemate
+ developed as the party and others tried to draft the country’s new constitution.
+ The Islamists failed to improve a slumping economy. And Ennahda came under
+ fire for what many Tunisians saw as a failure to crack down on Islamist
+ extremists.</p>
+ <div>
+ <p><span>Map: Flow of foreign fighters to Syria</span>
+ </p></div>
+ <p>After the collapse of the authoritarian system in 2011, hard-line Muslims
+ known as Salafists attacked bars and art galleries. Then, in 2012, hundreds
+ of Islamists <a href="http://www.washingtonpost.com/world/middle_east/in-tunisia-embassy-attack-tests-fledgling-democracy/2012/09/20/19f3986a-0273-11e2-8102-ebee9c66e190_story.html">assaulted the U.S. Embassy </a>in
+ Tunis, shattering windows and hurling gasoline bombs, after the release
+ of a crude online video about the prophet Muhammad. <a href="http://www.bbc.com/news/world-africa-23452979"></a>The
+ government outlawed the group behind the attack — Ansar al-Sharia, an al-Qaeda-linked
+ organization — and began a crackdown. But the killing <a href="http://www.bbc.com/news/world-africa-23452979">of two leftist politicians</a> in
+ 2013 prompted a fresh political crisis, and Ennahda stepped down, replaced
+ by a technocratic government.</p>
+ <p>Tunisia’s <a href="http://www.washingtonpost.com/blogs/monkey-cage/wp/2015/02/03/tunisia-opts-for-an-inclusive-new-government/">current coalition government</a> includes
+ an Ennahda minister in the cabinet. Still, many leftist figures openly
+ oppose collaboration with the movement’s leaders.</p>
+ <p>“Ennahda is responsible for the current deterioration of the situation,
+ because they were careless with the extremists” while they were in power,
+ Azzouz said.</p>
+ <p>The leader of Ennahda, Rachid Ghannouchi, condemned Wednesday’s attack,
+ saying in a statement that it “will not break our people’s will and will
+ not undermine our revolution and our democracy.”</p>
+ <p>Security officials are particularly concerned by the collapse of Libya,
+ where various armed groups are vying for influence and jihadist militants
+ have entrenched themselves in major cities. Tunisians worry that extremists
+ can easily get arms and training in the neighboring country.</p>
+ <p>In January, Libyan militants loyal to the Islamic State <a href="http://www.washingtonpost.com/world/middle_east/video-shows-purported-beheading-of-egyptian-christians-in-libya/2015/02/15/b8d0f092-b548-11e4-bc30-a4e75503948a_story.html">beheaded 21 Christians</a> —
+ 20 of them Egyptian Copts — along the country’s coast. They later seized
+ the Libyan city of Sirte.</p>
+ <p><img data-hi-res-src="https://img.washingtonpost.com/rf/image_1484w/2010-2019/WashingtonPost/2015/03/18/Foreign/Graphics/tunisia600.jpg?uuid=1_yuLs2LEeSHME9HNBbnWQ" data-low-res-src="https://img.washingtonpost.com/rf/image_480w/2010-2019/WashingtonPost/2015/03/18/Foreign/Graphics/tunisia600.jpg?uuid=1_yuLs2LEeSHME9HNBbnWQ" src="https://img.washingtonpost.com/rf/image_480w/2010-2019/WashingtonPost/2015/03/18/Foreign/Graphics/tunisia600.jpg?uuid=1_yuLs2LEeSHME9HNBbnWQ"></img><br></br></p>
+ <p>Officials are worried about the number of Tunisian militants who may have
+ joined the jihadists in Libya — with the goal of returning home to fight
+ the Tunis government.</p>
+ <p>Ajmi Lourimi, a member of Ennahda’s general secretariat, said he believed
+ the attack would unite Tunisians in the face of terrorism.</p>
+ <p>“There is a consensus here that this [attack] is alien to our culture,
+ to our way of life. We want to unify against this danger,” Lourimi said.
+ He said he did not expect a wider government campaign against Islamists.</p>
+ <p>“We have nothing to fear,” he said of himself and fellow Ennahda members.
+ “We believe the Interior Ministry should be trained and equipped to fight
+ and counter this militancy.”</p>
+ <p>The last major attack on a civilian target in Tunisia was in 2002, when
+ al-Qaeda militants killed more than 20 people in a car bombing outside
+ a synagogue in the city of Djerba.</p>
+
+ <p>Heba Habib contributed to this report.</p>
+
+
+
+ <p channel="wp.com"> <b>Read more:</b>
+ </p>
+ <p channel="wp.com"> <a href="http://www.washingtonpost.com/world/middle_east/tunisias-islamists-get-sobering-lesson-in-governing/2014/11/20/b6fc8988-65ad-11e4-ab86-46000e1d0035_story.html" title="www.washingtonpost.com">Tunisia’s Islamists get a sobering lesson in governing</a>
+ </p>
+ <p channel="wp.com"> <a href="http://www.washingtonpost.com/world/national-security/tunisia-after-igniting-arab-spring-sends-the-most-fighters-to-islamic-state-in-syria/2014/10/28/b5db4faa-5971-11e4-8264-deed989ae9a2_story.html">Tunisia sends most foreign fighters to Islamic State in Syria</a>
+ </p>
+ <p channel="wp.com"> <a href="http://www.washingtonpost.com/blogs/worldviews/wp/2015/03/18/tunisias-bardo-museum-attacked-by-terrorists-is-home-to-amazing-roman-treasures/">Tunisia’s Bardo museum is home to amazing Roman treasures</a>
+ </p>
+
+ </article> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wapo-1/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wapo-1/source.html
new file mode 100644
index 000000000..047505981
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wapo-1/source.html
@@ -0,0 +1,1560 @@
+<!DOCTYPE html>
+<html>
+
+ <head>
+ <meta name="eomportal-uuid" content="00202e76-cd73-11e4-8730-4f473416e759"/>
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
+ <meta charset="utf-8"/>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes, minimum-scale=0.5, maximum-scale=2.0"/>
+ <meta name="keywords" content="tunisia, bardo museum, tourists killed, tunis attack tunisia attack, tunisia terrorism, tunisia death toll, tunisia museum, islamic state, isis, isil, islamic state tunsiia, arab spring, tunisia clashes, tunisia violence, tunisia libya"/>
+ <meta name="description" content="The assault on Tunisia’s most renowned museum, in which gunmen killed at least 19 people, could heighten tensions in a nation that has become deeply divided between pro- and anti-Islamist factions."/>
+ <meta name="news_keywords" content="tunisia, bardo museum, tourists killed, tunis attack tunisia attack, tunisia terrorism, tunisia death toll, tunisia museum, islamic state, isis, isil, islamic state tunsiia, arab spring, tunisia clashes, tunisia violence, tunisia libya"/>
+ <meta name="twitter:site" value="@WashingtonPost"/>
+ <meta name="twitter:card" content="summary_large_image"/>
+ <meta property="og:description" content="The assault on Tunisia’s most renowned museum, in which gunmen killed at least 19 people, could heighten tensions in a nation that has become deeply divided between pro- and anti-Islamist factions."/>
+ <meta property="og:type" content="article"/>
+ <meta property="og:site_name" content="Washington Post"/>
+ <meta property="og:image" content="http://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/Nic6429927.jpg"/>
+ <meta property="og:title" content="Attack stokes instability fears in North Africa"/>
+ <meta property="article:publisher" content="https://www.facebook.com/washingtonpost"/>
+ <meta property="fb:admins" content="1513210492"/>
+ <meta property="fb:app_id" content="41245586762"/>
+ <meta property="fb:admins" content="1244584375"/>
+ <meta property="fb:admins" content="4403963"/>
+ <meta property="fb:admins" content="2724956"/>
+ <meta property="fb:admins" content="500835072"/>
+ <meta property="og:url" content="http://www.washingtonpost.com/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html"/>
+ <meta name="section" content="/world/middle_east"/>
+ <meta name="commercialNode" content="/world"/>
+ <link rel="canonical" href="http://www.washingtonpost.com/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html"/>
+ <link rel="alternate" href="android-app://com.washingtonpost.android/wp-android/www.washingtonpost.com/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html"/>
+ <title>Attack stokes instability fears in North Africa - The Washington Post</title>
+ <meta
+ property="twitter:creator" content="@erinmcunningham"/>
+ <link rel="author" content="https://plus.google.com/+ErinCunningham"/>
+ <!--[if (gt IE 8) | (IEMobile)]>
+ <!-->
+ <link rel="stylesheet" href="/pb/resources/css/headerfonts.css?_=f4b3d2"/>
+ <!--<![endif]-->
+ <!--[if (lt IE 9) & (!IEMobile)]><link rel="stylesheet" href="/pb/resources/css/headerfonts_ie.css?_=f4b3d2"/><![endif]-->
+ <link rel="stylesheet" href="/pb/resources/compact/type/default/styles/bc9d233e62887b11846ddc11bf4175c8.css?_=f4b3d2"/>
+ <link rel="stylesheet" href="/pb/resources/compact/template/rO4BZ28dpQ-m5p8EK5JWSsw/styles/ca81b2e4d5b093e7f72fbfe70484081e.css?_=f4b3d2"/>
+ <link rel="stylesheet" href="/pb/resource/style-rO4BZ28dpQ-m5p8EK5JWSsw-6de5b76f.css?_=f4b3d2"/>
+ <script>
+ window.head_conf={head:"TWPHead"};
+ </script>
+ <script src="/pb/resources/js/head.min.js"></script>
+ <script type="text/javascript" src="/pb/resources/compact/type/default/headJS/068d3c1f0e80ba3b4dc4a0d195ab9bcb.js?_=f4b3d2"></script>
+ <script type="text/javascript" src="/pb/resource/headjs-rO4BZ28dpQ-m5p8EK5JWSsw-6de5b76f.js?_=f4b3d2"></script>
+ <script>
+ (function(r){r.pageName="";r.templateName="rO4BZ28dpQ-m5p8EK5JWSsw";r.contextPath="/pb";r.isAdmin=false;r.layoutEngineName="off";r.environment="production"}(window.wp_pb||{}));var commercialNode="/world";
+ </script>
+ <script type="text/javascript">
+ wp_pb=window.wp_pb||{};var isMobile={Android:function(){return navigator.userAgent.match(/Android/i)?true:false},AndroidOld:function(){return navigator.userAgent.match(/Android 2.3.3/i)?true:false},AndroidTablet:function(){return(navigator.userAgent.match(/Android/i)&&!navigator.userAgent.match(/Mobile/i))?true:false},Kindle:function(){return navigator.userAgent.match(/Kindle/i)?true:false},KindleFire:function(){return navigator.userAgent.match(/KFOT/i)?true:false},Silk:function(){return navigator.userAgent.match(/Silk/i)?true:false},BlackBerry:function(){return navigator.userAgent.match(/BlackBerry/i)?true:false},iOS:function(){return navigator.userAgent.match(/iPhone|iPad|iPod/i)?true:false},iPhone:function(){return navigator.userAgent.match(/iPhone|iPod/i)?true:false},iPad:function(){return navigator.userAgent.match(/iPad/i)?true:false},Windows:function(){return navigator.userAgent.match(/IEMobile/i)?true:false},FirefoxOS:function(){return(navigator.userAgent.match(/Mozilla/i)&&navigator.userAgent.match(/Mobile/i))?true:false},Retina:function(){return(window.retina||window.devicePixelRatio>1)?true:false},any:function(){return(isMobile.Android()||isMobile.Kindle()||isMobile.KindleFire()||isMobile.Silk()||isMobile.BlackBerry()||isMobile.iOS()||isMobile.Windows()||isMobile.FirefoxOS())},all:function(){return(navigator.userAgent)},tablet:function(){return(isMobile.AndroidTablet()||isMobile.iPad()||isMobile.Kindle()||isMobile.KindleFire()||isMobile.Silk())}};var mobile_browser=isMobile.any()?1:0,iphone_browser=isMobile.iPhone()?1:0,ipad_browser=isMobile.iPad()?1:0,android_browser=isMobile.Android()?1:0,android233_browser=isMobile.AndroidOld()?1:0,kindle_browser=isMobile.Kindle()?1:0,retina_browser=isMobile.Retina()?1:0,mobile_tablet=isMobile.tablet()?1:0;TWP=window.TWP||{};TWP.PostTV=TWP.PostTV||{};TWP.PostTV.BrowserInfo=TWP.PostTV.BrowserInfo||{init:function(){this.browser=this.searchString(this.dataBrowser)||"An unknown browser";this.version=this.searchVersion(navigator.userAgent)||this.searchVersion(navigator.appVersion)||"an unknown version";this.OS=this.searchString(this.dataOS)||"an unknown OS"},searchString:function(data){for(var i=0;i&lt;data.length;i++){var dataString=data[i].string;var dataProp=data[i].prop;this.versionSearchString=data[i].versionSearch||data[i].identity;if(dataString){if(dataString.indexOf(data[i].subString)!=-1){return data[i].identity}}else{if(dataProp){return data[i].identity}}}},searchVersion:function(dataString){var index=dataString.indexOf(this.versionSearchString);if(index==-1){return}return parseFloat(dataString.substring(index+this.versionSearchString.length+1))},dataBrowser:[{string:navigator.userAgent,subString:"Chrome",identity:"Chrome"},{string:navigator.userAgent,subString:"OmniWeb",versionSearch:"OmniWeb/",identity:"OmniWeb"},{string:navigator.vendor,subString:"Apple",identity:"Safari",versionSearch:"Version"},{prop:window.opera,identity:"Opera",versionSearch:"Version"},{string:navigator.vendor,subString:"iCab",identity:"iCab"},{string:navigator.vendor,subString:"KDE",identity:"Konqueror"},{string:navigator.userAgent,subString:"Firefox",identity:"Firefox"},{string:navigator.vendor,subString:"Camino",identity:"Camino"},{string:navigator.userAgent,subString:"Netscape",identity:"Netscape"},{string:navigator.userAgent,subString:"MSIE",identity:"Explorer",versionSearch:"MSIE"},{string:navigator.userAgent,subString:"Gecko",identity:"Mozilla",versionSearch:"rv"},{string:navigator.userAgent,subString:"Mozilla",identity:"Netscape",versionSearch:"Mozilla"}],dataOS:[{string:navigator.platform,subString:"Win",identity:"Windows"},{string:navigator.platform,subString:"Mac",identity:"Mac"},{string:navigator.userAgent,subString:"iPhone",identity:"iPhone"},{string:navigator.userAgent,subString:"iPad",identity:"iPad"},{string:navigator.userAgent,subString:"Android",identity:"Android"},{string:navigator.platform,subString:"Linux",identity:"Linux"}]};TWP.PostTV.BrowserInfo.init();TWP.PostTV.getCookie=function(name){var nameEQ=name+"=";var ca=document.cookie.split(";");for(var i=0;i&lt;ca.length;i++){var c=ca[i];while(c.charAt(0)==" "){c=c.substring(1,c.length)}if(c.indexOf(nameEQ)==0){return c.substring(nameEQ.length,c.length)}}return null};wp_pb.BrowserInfo=wp_pb.BrowserInfo||{};wp_pb.BrowserInfo.mobile_browser=mobile_browser;wp_pb.BrowserInfo.tablet=mobile_tablet;wp_pb.BrowserInfo.OS=TWP.PostTV.BrowserInfo.OS;wp_pb.BrowserInfo.browser=TWP.PostTV.BrowserInfo.browser;wp_pb.BrowserInfo.version=TWP.PostTV.BrowserInfo.version;wp_pb.BrowserInfo.OS=TWP.PostTV.BrowserInfo.OS;
+ </script>
+ <script type="text/javascript">
+ if(typeof wp_meta_data=="undefined"){try{wp_meta_data={platform:"pagebuilder",showAds:true,showPreRollAds:false,isHomepage:false,isErrorPage:false,isMultimedia:false,wt:"article_story",page_id:["00202e76-cd73-11e4-8730-4f473416e759"],author:["Erin Cunningham"],keywords:["tunisia","bardo museum","tourists killed","tunis attack tunisia attack","tunisia terrorism","tunisia death toll","tunisia museum","islamic state","isis","isil","islamic state tunsiia","arab spring","tunisia clashes","tunisia violence","tunisia libya"],clavis:{keywords:["tunisian","Bardo National Museum","country","time","tourist","Interior Ministry spokesman Mohamed Ali Aroui","Story","strongman","capital","responsibility","claim","site","militant","Murphy","Washington","Tunis","people","gunman","militancy","uprising","Zine El Abidine Ben Ali","extremism","Gunfire","parliament building","area"],topics:["Wars, Conflicts and Terrorism","International Relations","Parks and Museums","Communities and Subcultures","Culture and Tradition"],ct:["qa","iw","zl","ye","za"]},breaking_news:[false],contentType:["CompoundStory"]}}catch(e){}};
+ </script>
+ <script type="text/javascript">
+ (function(){TWP=(typeof TWP=="undefined")?{}:TWP;TWP.Data=(typeof TWP.Data=="undefined")?{}:TWP.Data;TWP.Data["Tracking"]={init:function(){this.props={};this.props.platform="pagebuilder";this.props.page_type="";this.props.page_name="world:article - 4f473416e759 - 20150318 - gunmen-storm-museum-in-tunisia-killing-at-least-8";this.props.section="world";this.props.channel="wp - world";this.props.subsection="world - middle_east";this.props.hierarchy="world|article";this.props.content_type="article";this.props.story_type="";this.props.headline="Attack stokes instability fears in North Africa";this.props.author="Erin Cunningham";this.props.source="The Washington Post";this.props.content_id="00202e76-cd73-11e4-8730-4f473416e759";this.props.page_num="";this.props.op_ranking="no sentiment - no ideology";this.props.columnname="";this.props.blogname="";this.props.published="";this.props.news_or_commercial="News";this.props.commercial_node="/world";this.props.content_category="Foreign";this.props.sectionfront="";this.props.track_scrolling=true}};TWP.Data["Tracking"].init()})();
+ </script>
+ <script id="twp-identity" src="//js.washingtonpost.com/1h/twp-global.js"></script>
+ </head>
+
+ <body class="pb-theme-normal pb-full-fluid">
+ <script type="text/javascript" src="//js.washingtonpost.com/wp-stat/otto/js/mbox.js"></script>
+ <div class="mboxDefault"></div>
+ <div class="pb-container " id="pb-root">
+ <div id="article-world_1399567672841_757" class="moat-trackable pb-layout-item pb-feature pb-three pb-f-page-header-v2 pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="3" data-pb-name="page-header-v2"
+ data-pb-content-uri="/pb/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html"
+ data-pb-content-editable="" moat-id="page-header-v2|article-world">
+ <!--[if lt IE 9]>
+ <style>
+ .lt-ie9 body.left-menu #site-menu{left:-50px}.lt-ie9 #wp-logo{background:transparent url(/pb/resources/img/washingtonpost_black_32.png) no-repeat 0 8px}.lt-ie9 header.dark #wp-logo{background:transparent url(/pb/resources/img/washingtonpost_white_32.png) no-repeat 0 8px}
+ </style>
+ <![endif]-->
+ <!--[if lt IE 8]>
+ <header class="ie ie7 lte9 lte8 lte7 abt-not-loaded ">
+ <![endif]-->
+ <!--[if IE 8]>
+ <header class="ie ie8 lte9 lte8 abt-not-loaded ">
+ <![endif]-->
+ <!--[if IE 9]>
+ <header class="ie ie9 lte9 abt-not-loaded ">
+ <![endif]-->
+ <!--[if gt IE 9]>
+ <header class="ie abt-not-loaded ">
+ <![endif]-->
+ <!--[if !IE]><!-->
+ <header id="wp-header" class="nie abt-not-loaded ">
+ <!--<![endif]-->
+ <nav id="site-menu" class="nav-menu">
+ <form id="nav-search-mobile" method="get" action="http://www.washingtonpost.com/pb/newssearch/">
+ <button type="submit" class="fa fa-search"></button>
+ <input type="text" placeholder="Search" name="query" autocomplete="off"/>
+ </form>
+ <ul id="site-menu-sections">
+ <li id="nav-screenreader-link"><a class="screenreader-link" href="http://www.washingtonpost.com/pb/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html?resType=accessibility">Accessibility for screenreader</a>
+
+ </li>
+ <li id="nav-sign-in-mobile" class="hidden mobile-only"><a href="#">Sign In</a>
+
+ </li>
+ <li id="nav-user-mobile" class="hidden mobile-only"><a href="#">Username</a>
+
+ </li>
+ <li><a href="http://www.posttv.com/?nid=top_pb_posttv">PostTV</a>
+
+ </li>
+ <li><a href="http://www.washingtonpost.com/politics?nid=top_pb_politics">Politics</a>
+
+ </li>
+ <li><a href="http://www.washingtonpost.com/opinions?nid=top_pb_opinions">Opinions</a>
+
+ </li>
+ <li><a href="http://www.washingtonpost.com/local?nid=top_pb_local">Local</a>
+
+ </li>
+ <li><a href="http://www.washingtonpost.com/sports?nid=top_pb_sports">Sports</a>
+
+ </li>
+ <li><a href="http://www.washingtonpost.com/national?nid=top_pb_national">National</a>
+
+ </li>
+ <li><a href="http://www.washingtonpost.com/world?nid=top_pb_world">World</a>
+
+ </li>
+ <li><a href="http://www.washingtonpost.com/business?nid=top_pb_business">Business</a>
+
+ </li>
+ <li><a href="http://www.washingtonpost.com/business/technology?nid=top_pb_technology">Tech</a>
+
+ </li>
+ <li><a href="http://www.washingtonpost.com/lifestyle?nid=top_pb_lifestyle">Lifestyle</a>
+
+ </li>
+ <li><a href="http://www.washingtonpost.com/entertainment?nid=top_pb_entertainment">Entertainment</a>
+
+ </li>
+ <li><a href="http://www.washingtonpost.com/classifieds?nid=top_pb_classifieds">Classifieds</a>
+
+ </li>
+ <li><a href="http://www.washingtonpost.com/jobs?nid=top_pb_jobs">Jobs</a>
+
+ </li>
+ <li><a href="http://www.washingtonpost.com/realestate?nid=top_pb_realestate">Real Estate</a>
+
+ </li>
+ <li><a href="http://www.washingtonpost.com/goingoutguide?nid=top_pb_goingoutguide">Events</a>
+
+ </li>
+ <li><a href="http://www.washingtonpost.com/rentals?nid=top_pb_rentals">Rentals</a>
+
+ </li>
+ <li><a href="http://www.washingtonpost.com/cars/?nid=top_pb_cars">Cars</a>
+
+ </li>
+ <li><a href="http://www.washingtonpost.com/sf/brand-connect/?nid=top_pb_brandconnect">WP BrandConnect</a>
+
+ </li>
+ <li id="nav-subscribe-mobile" class="hidden mobile-only"><a href="https://subscribe.washingtonpost.com/acquisition/?nid=top_pb_subscribe&amp;destination=http://www.washingtonpost.com/pb/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html">Subscribe</a>
+
+ </li>
+ <li><a href="https://account.washingtonpost.com/actmgmt/registration/addnewsletter/default/">Newsletters &amp; Alerts</a>
+
+ </li>
+ </ul>
+ <div id="site-menu-info">
+ <p class="site-attribution"> <a href="http://www.washingtonpost.com"><strong>washingtonpost.com</strong></a>
+ <span
+ class="copyright">© 1996-2015 The Washington Post</span>
+ </p>
+ <p><a href="http://www.washingtonpost.com/actmgmt/help/">Help and Contact Us</a>
+
+ </p>
+ <p><a href="http://www.washingtonpost.com/terms-of-service/2011/11/18/gIQAldiYiN_story.html">Terms of Service</a>
+
+ </p>
+ <p><a href="http://www.washingtonpost.com/privacy-policy/2011/11/18/gIQASIiaiN_story.html">Privacy Policy</a>
+
+ </p>
+ <p><a href="http://www.washingtonpost.com/discussion-and-submission-guidelines/2011/11/21/gIQAuvIbiN_story.html">Submissions and Discussion Policy</a>
+
+ </p>
+ <p><a href="http://www.washingtonpost.com/rss-terms-of-service/2012/01/16/gIQAadFYAQ_story.html">RSS Terms of Service</a>
+
+ </p>
+ <p><a href="http://www.washingtonpost.com/how-can-i-opt-out-of-online-advertising-cookies/2011/11/18/gIQABECbiN_story.html">Ad Choices</a>
+
+ </p>
+ </div>
+ </nav>
+ <div id="user-menu" class="nav-menu">
+ <ul></ul>
+ </div>
+ <div id="nav-bar">
+ <div class="nav-left nav-section">
+ <div id="site-menu-btn" class="nav-btn"> <span class="nav-btn-label">Sections</span> <i class="fa fa-bars"></i>
+ </div>
+ <div id="wp-logo"> <a href="http://www.washingtonpost.com?nid=top_pb_wplogo">The Washington Post</a>
+ </div>
+ <div id="wp-logo-for-print">
+ <img src="//www.washingtonpost.com/pb/resources/img/washingtonpost_black_32.png"
+ alt="The Washington Post"/>
+ </div>
+ </div>
+ <div class="nav-middle nav-section">
+ <div id="nav-page-title" data-show-on-scroll="true">Attack stokes instability fears in North Africa</div>
+ </div>
+ <div class="nav-right nav-section">
+ <form id="nav-search" method="get" action="http://www.washingtonpost.com/newssearch/">
+ <input type="text" placeholder="Search" name="query" autocomplete="off"/>
+ <button type="submit" class="fa fa-search"></button>
+ </form>
+ <div id="nav-ad">
+ <div id="wpni_adi_88x31"></div>
+ </div> <a id="nav-sign-in" class="nav-btn hidden" href="#">Sign In</a>
+ <div id="nav-user"
+ class="nav-btn hidden" data-menu="user-menu" data-show-identity="true"> <span class="username">Username</span> <i class="fa fa-caret-down"></i>
+ </div> <a id="nav-subscribe" class="nav-btn hidden" href="https://subscribe.washingtonpost.com/acquisition/?nid=top_pb_subscribe&amp;destination=http://www.washingtonpost.com/pb/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html">Subscribe</a>
+ </div>
+ </div>
+ </header>
+ <div id="wp-topper" class="abt-not-loaded"> <a id="wp-logo-large" href="http://www.washingtonpost.com?nid=top_pb_wplogo"></a>
+ <div
+ class="top-timestamp"></div>
+ </div>
+ </div>
+ <div id="article-world_1399567677806_59" class="moat-trackable pb-layout-item pb-feature pb-three pb-f-ad-leaderboard pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="3" data-pb-name="ad-leaderboard"
+ data-pb-content-uri="/pb/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html"
+ data-pb-content-editable="" moat-id="ad-leaderboard|article-world">
+ <div class="leaderboard ad-hideable">
+ <div id="slug_leaderboard" data-ad-type="leaderboard" class="pb-ad-container"
+ style="display:none;"></div>
+ </div>
+ <div class="mobile-leaderboard ad-hideable">
+ <div id="slug_mob_av" data-ad-type="mob_av" style="display:none;"></div>
+ </div>
+ <div class="mobile-fixed ad-hideable">
+ <div id="slug_t" data-ad-type="t" class="pb-ad-container-mobile" style="display:none;"></div>
+ </div>
+ </div>
+ <div id="article-world_1401468654209_937" class="moat-trackable pb-layout-item pb-feature pb-three pb-f-article-article-topper pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="3" data-pb-name="article-article-topper"
+ data-pb-content-uri="/pb/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html"
+ data-pb-content-editable="" moat-id="article-article-topper|article-world">
+ <div id="article-topper" class="article-topper">
+ <div class="headline-kicker"><a href="/world/middle-east">Middle East</a>
+
+ </div>
+ <h1>Attack stokes instability fears in North Africa</h1>
+ <div class="clear"></div>
+ </div>
+ </div>
+ <div id="article-world_1409075662758_638" class="moat-trackable pb-layout-item pb-feature pb-three pb-f-sharebars-top-share-bar pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="3" data-pb-name="sharebars-top-share-bar"
+ data-pb-content-uri="/pb/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html"
+ data-pb-content-editable="" moat-id="sharebars-top-share-bar|article-world">
+ <style>
+ .hideText{position:absolute;left:-10000px}
+ </style>
+ <div id="top-sharebar_4297" class="top-sharebar-wrapper color-top unprocessed"
+ data-postshare="facebook,twitter">
+ <div class="social-tools-wrapper">
+ <div class="social-tools-primary margin-top">
+ <div class="social-tools "> <a onclick="try{this.postShare.callPostShare(this, this.postShareObject, 'https://www.facebook.com/sharer/sharer.php?u=', 'http://www.washingtonpost.com/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html', '' , 'width=658,height=354,scrollbars=no');}catch(err){ window.open('https://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fwapo.st%2F1O61FwZ','share_facebook','width=658,height=354,scrollbars=no'); }return false;"
+ tabindex="_tbidx_"> <div class="facebook tool first desktop mobile"><span class="hideText">Share on Facebook</span><span class="fa fa-facebook-square"></span></div> </a>
+
+ <a
+ onclick="try{this.postShare.callPostShare(this, this.postShareObject, 'https://twitter.com/share?url=', 'http://www.washingtonpost.com/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html', '&amp;text=Attack+stokes+instability+fears+in+North+Africa' , 'width=550, height=350, scrollbars=no');}catch(err){ window.open('https://twitter.com/share?url=http%3A%2F%2Fwapo.st%2F1O61FwZ&amp;text=Attack+stokes+instability+fears+in+North+Africa','share_twitter','width=550, height=350, scrollbars=no'); }return false;"
+ tabindex="_tbidx_">
+ <div class="twitter tool desktop mobile"><span class="hideText">Share on Twitter</span><span class="fa fa-twitter"></span>
+
+ </div>
+ </a><a onclick="try{this.postShare.callPostShare(this, this.postShareObject, 'https://plus.google.com/share?url=', 'http://www.washingtonpost.com/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html', '' , 'width=832,height=472,scrollbars=no');}catch(err){ window.open('https://plus.google.com/share?url=http%3A%2F%2Fwapo.st%2F1O61FwZ','share_google-plus','width=832,height=472,scrollbars=no'); }return false;"
+ tabindex="_tbidx_"> <div class="google-plus tool desktop"><span class="hideText">Share on Google Plus</span><span class="fa fa-google-plus"></span></div> </a>
+
+ <a
+ onclick="try{this.postShare.callPostShare(this, this.postShareObject, 'mailto:?subject=Attack%20stokes%20instability%20fears%20in%20North%20Africa from The Washington Post&amp;body=', 'http://www.washingtonpost.com/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html', '' , null);}catch(err){ window.location.href = 'mailto:?subject=Attack%20stokes%20instability%20fears%20in%20North%20Africa from The Washington Post&amp;body=http%3A%2F%2Fwapo.st%2F1O61FwZ'; }return false;"
+ tabindex="_tbidx_">
+ <div class="email tool desktop"><span class="hideText">Share via Email</span><span class="fa fa-envelope"></span>
+
+ </div>
+ </a><a onclick="return false;"> <div class="more tool last desktop mobile"><span class="hideText" tabindex="_tbidx_">More Options</span><span class="fa fa-plus"> </span></div> </a>
+
+ </div>
+ </div>
+ <div class="social-tools-additional margin-top">
+ <div class="social-tools "> <a onclick="try{this.postShare.callPostShare(this, this.postShareObject, 'mailto:?subject=Attack%20stokes%20instability%20fears%20in%20North%20Africa from The Washington Post&amp;body=', 'http://www.washingtonpost.com/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html', '' , null);}catch(err){ window.location.href = 'mailto:?subject=Attack%20stokes%20instability%20fears%20in%20North%20Africa from The Washington Post&amp;body=http%3A%2F%2Fwapo.st%2F1O61FwZ'; }return false;"
+ tabindex="_tbidx_"> <div class="email tool first mobile"><span class="hideText">Share via Email</span><span class="fa fa-envelope"></span></div> </a>
+
+ <a
+ onclick="try{this.postShare.callPostShare(this, this.postShareObject, 'whatsapp://send?text=Attack%20stokes%20instability%20fears%20in%20North%20Africa - ', 'http://www.washingtonpost.com/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html', '' , null);}catch(err){ window.location.href = 'whatsapp://send?text=Attack%20stokes%20instability%20fears%20in%20North%20Africa - http%3A%2F%2Fwapo.st%2F1O61FwZ'; }return false;"
+ tabindex="_tbidx_">
+ <div class="whatsapp tool mobile"><span class="hideText">Share on Whatsapp</span><span class="fa fa-whatsapp"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAYAAADE6YVjAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAEhwAABIcBblSwhwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAKMSURBVEiJnZVLSFVRFIb/czORKEqjJI0EoVKILMxB0cBJjYJGRhMD6TVs0kAhpw2qSdkoCGoSQkENehBKUSARCtqggiJudUGjh4+KEDW/BmftXB3OuXr7YbH3Wa9/r33WWScCtAg2S9olqdnWHZLGJA05GZb0KzMDkCV1QD9LwzhwJCtXlFHJCUkXJK2SNCnpiZ14UNKIpA2SWqyyPZK2WdxdSScljRarZAXw0J3wFrC+SLVBOoBJi5kADnh70vmyOX4GDi0huZda4J4jqk0j2QfMAzNAU4kEXsJNPEiSrAEKZux2AduBO8ClEkg2uqs77kl6TDkElJkuB3xgATtLIOqwmO9ApYAI+GTK/c5xN//iYonX9sri2nPWhtWSkPTcNV51oq1bMj+2dDyz9WBO0lZ7eCtpyjkNuP28pM4SSYZsbchJqrGHwYTTF0lPbT+peHSUgpCvJiep3CVN4pSkGUlVkq6WSDJua0VOUt4eGlMcRyR12b5N0hlJkbMvl1SZQdJs65jvokJGl0RAr+uyfuLhWQEMANPWecnxc878HwuoAmZNUZ9BtAy44Yh+APlEi38zvxDzyPRdQRESXCvS9xFwzJKlIe98G61CgIagbDHFHNBQhEjAOqALeOEI3rEwEcqAQdNfJzEg35uhbRESL1uI51vkdN2WpwCs9iT1ZvhJ/E/53wncTjzFwY2oYOw0Q68LaLJTLiV5NfG0Dujx9rAZNuNZ4LzdccB9oBUoTyReCewFTgNfzXcKOJo8RLjXNEwQ/8QC5oy8D3gN/E749wGb0ir1LwrgI/GH1Urc8/VW3WjKIaaJ/z9XgMNpyYNEwE1JbyTd1sLkTMNaSXWSaiUVJL2UNFvE/y/+AObPwGxY9EFMAAAAAElFTkSuQmCC"/></span>
+
+ </div>
+ </a><a onclick="try{this.postShare.callPostShare(this, this.postShareObject, '//pinterest.com/pin/create/button/?url=', 'http://www.washingtonpost.com/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html', '&amp;media=http://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/Nic6429927.jpg&amp;description=Attack+stokes+instability+fears+in+North+Africa' , 'width=550,height=450,scrollbars=no');}catch(err){ window.open('//pinterest.com/pin/create/button/?url=http%3A%2F%2Fwapo.st%2F1O61FwZ&amp;media=http://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/Nic6429927.jpg&amp;description=Attack+stokes+instability+fears+in+North+Africa','share_linkedin','width=550,height=450,scrollbars=no'); }return false;"
+ tabindex="_tbidx_"> <div class="pinterest tool desktop mobile"><span class="hideText">Share on Pinterest</span><span class="fa fa-pinterest"></span></div> </a>
+
+ <a
+ onclick="try{this.postShare.callPostShare(this, this.postShareObject, 'https://plus.google.com/share?url=', 'http://www.washingtonpost.com/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html', '' , 'width=832,height=472,scrollbars=no');}catch(err){ window.open('https://plus.google.com/share?url=http%3A%2F%2Fwapo.st%2F1O61FwZ','share_google-plus','width=832,height=472,scrollbars=no'); }return false;"
+ tabindex="_tbidx_">
+ <div class="google-plus tool mobile"><span class="hideText">Share on Google Plus</span><span class="fa fa-google-plus"></span>
+
+ </div>
+ </a><a onclick="try{this.postShare.callPostShare(this, this.postShareObject, 'http://www.linkedin.com/shareArticle?mini=true&amp;url=', 'http://www.washingtonpost.com/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html', '&amp;title=Attack+stokes+instability+fears+in+North+Africa' , 'width=830,height=460,scrollbars=no');}catch(err){ window.open('http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwapo.st%2F1O61FwZ&amp;title=Attack+stokes+instability+fears+in+North+Africa','share_linkedin','width=830,height=460,scrollbars=no'); }return false;"
+ tabindex="_tbidx_"> <div class="linkedin tool desktop mobile"><span class="hideText">Share on LinkedIn</span><span class="fa fa-linkedin"></span></div> </a>
+
+ <a
+ onclick="try{this.postShare.callPostShare(this, this.postShareObject, 'http://www.tumblr.com/share/link?url=', 'http://www.washingtonpost.com/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html', '&amp;name=Attack+stokes+instability+fears+in+North+Africa&amp;description=' , 'width=550,height=450,scrollbars=no');}catch(err){ window.open('http://www.tumblr.com/share/link?url=http%3A%2F%2Fwapo.st%2F1O61FwZ&amp;name=Attack+stokes+instability+fears+in+North+Africa&amp;description=','share_tumblr','width=550,height=450,scrollbars=no'); }return false;"
+ tabindex="_tbidx_">
+ <div class="tumblr tool last desktop"><span class="hideText">Share on Tumblr</span><span class="fa fa-tumblr"></span>
+
+ </div>
+ </a>
+ </div>
+ </div>
+ </div>
+ <div id="slug_tiffany_tile" data-ad-type="tiffany_tile" class="left" style="display:none;padding-left:20px !important;height:auto;max-height:60px;overflow:hidden;">
+ <div id="wpni_adi_tiffany_tile" class="ads slug tiffany_tile header"></div>
+ </div>
+ <div class=" utility-tools-wrapper">
+ <div class="utility-tools-primary margin-top">
+ <div class="social-tools ">
+ <div class="textresizer tool first mobile"><span class="hideText" tabindex="_tbidx_">Resize Text</span><span class="fa fa-font"></span>
+
+ </div><a onclick="window.print();" tabindex="_tbidx_"> <div class="print tool mobile"><span class="hideText">Print Article</span><span class="fa fa-print"></span></div> </a>
+
+ <a
+ href="#" onclick="wp_pb.report('comments', 'showComments',{elm:$(this),guid:'http://www.washingtonpost.com/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html'}); return false;"
+ tabindex="_tbidx_">
+ <div class="comments tool last mobile"><span class="hideText">Comments</span><span class="fa fa-comments"></span>
+ <span
+ id="echo_container" class="echo_container comment-vars echo-counter text"
+ guid="http://www.washingtonpost.com/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html"></span>
+ </div>
+ </a>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="clear"></div>
+ </div>
+ <div class="pb-scatter">
+ <div id="main-content" class="pb-layout-item pb-chain pb-two main-content"
+ data-pb-columns="2">
+ <div id="article-world_1401468655537_97" class="moat-trackable pb-feature pb-chained pb-f-article-article-body pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="" data-pb-name="article-article-body"
+ data-pb-content-uri="/pb/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html"
+ data-pb-content-editable="" moat-id="article-article-body|article-world">
+ <div id="article-body" class="article-body">
+ <div class="pb-sig-line hasnt-headshot has-0-headshots hasnt-bio is-not-column"> <span class="pb-byline">By <a href="http://www.washingtonpost.com/people/erin-cunningham">Erin Cunningham</a></span>
+ <span
+ class="pb-timestamp">March 18 at 3:57 PM</span> <span class="pb-tool email"><a href="mailto:[email protected]?subject=Reader feedback for 'Attack stokes instability fears in North Africa'"><span class="fa fa-envelope"></span>
+
+ </a>
+ </span> <span class="tweet-authors"><span class="pb-twitter-follow unprocessed"><a href="https://twitter.com/@erinmcunningham" class="twitter-follow-button" data-show-count="false" data-lang="en">Follow @erinmcunningham</a></span> </span>
+ </div>
+ <article>
+ <div class="inline-content inline-gallery-embedded">
+ <link href="//www.washingtonpost.com/pb/resources/compact/type/ssiSingle/styles/b2571cf5dfafe5a7760aba08fea63fd6.css"
+ rel="stylesheet"/>
+ <link href="//www.washingtonpost.com/pb/resources/compact/template/rcbXA58IiRzCmehOAc0OM-Q/styles/6bf32f216c50d6ab0c64d68d81d5ebb5.css"
+ rel="stylesheet"/>
+ <link href="//www.washingtonpost.com/pb/resource/style-rcbXA58IiRzCmehOAc0OM-Q-6a954a58.css"
+ rel="stylesheet"/>
+ <script src="//www.washingtonpost.com/pb/resource/headjs-rcbXA58IiRzCmehOAc0OM-Q-6a954a58.js"
+ type="text/javascript"></script>
+ <div class="pb-feature-ssi-single pb-f-gallery-gallery" data-pb-content-uri="/pb/galleryEmbed/ef22654e-cd72-11e4-8c54-ffb5ba6f2f69"
+ data-pb-name="gallery-gallery" id="gallery-embed_1417452270618_709">
+ <div class="wp-volt-gal wp-volt-gal-p-end-circular wp-volt-gal-promo-stub wp-volt-gal-on-promo-slide wp-volt-gal-embed-promo wp-volt-gal-embed-promo-hide"
+ data-category="Foreign" data-commercial-node="world" data-first-published="1426686630"
+ data-permalink="http://www.washingtonpost.com/world/at-least-8-dead-in-tunisia-attack-on-leading-museum/2015/03/18/ef22654e-cd72-11e4-8c54-ffb5ba6f2f69_gallery.html"
+ data-preroll-zone="" data-published="1426713600" data-section="world" data-show-interstitials="true"
+ data-show-preroll="true" data-slug="at-least-8-dead-in-tunisia-attack-on-leading-museum"
+ data-subsection="" data-title="At least 17 dead in Tunisia after attack in capital city"
+ data-uuid="ef22654e-cd72-11e4-8c54-ffb5ba6f2f69">
+ <div class="wp-volt-gal-bar">
+ <div class="wp-volt-gal-nav">
+ <div class="wp-volt-gal-nav-number"><span class="wp-volt-gal-nav-number-current">1</span> of 24</div>
+ <div class="wp-volt-gal-nav-buttons">
+ <div class="wp-volt-gal-nav-button wp-volt-gal-nav-prev"></div>
+ <div class="wp-volt-gal-nav-button wp-volt-gal-nav-next"></div>
+ </div>
+ </div>
+ <div class="wp-volt-gal-buttons">
+ <div class="wp-volt-gal-button wp-volt-gal-button-fullscreen">Full Screen</div>
+ <div class="wp-volt-gal-button wp-volt-gal-button-autoplay">Autoplay</div>
+ <div class="wp-volt-gal-bar-pie"></div>
+ <div class="wp-volt-gal-button wp-volt-gal-button-close">Close</div>
+ </div>
+ </div>
+ <div class="wp-volt-gal-main">
+ <div class="wp-volt-gal-photos">
+ <div class="wp-volt-gal-slide wp-volt-gal-photo" data-buy="false" data-caption="Tunisian security forces secure the area after gunmen attacked the famed Bardo National Museum in Tunis, the capital."
+ data-credit="Fethi Belaid/AFP/Getty Images" data-image="https://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/Nic6429732.jpg?env=A"
+ data-max-width="4864" data-ratio="1.514" data-title="March 18, 2015" data-uuid="960ee120-cd73-11e4-8c54-ffb5ba6f2f69">
+ <div class="wp-volt-gal-slide-gal-title"></div>
+ </div>
+ <div class="wp-volt-gal-slide wp-volt-gal-photo" data-buy="false" data-caption="Armed Tunisian police officers secure the area. A raid by security forces killed at least two suspected assailants."
+ data-credit="Fethi Belaid/AFP/Getty Images" data-image="https://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/Nic6429739.jpg?env=A"
+ data-max-width="5000" data-ratio="1.403" data-title="March 18, 2015&nbsp;"
+ data-uuid="c0a8ee44-cd73-11e4-8c54-ffb5ba6f2f69"></div>
+ <div class="wp-volt-gal-slide wp-volt-gal-photo" data-buy="false"
+ data-caption="Members of Tunisian security services take positions after gunmen took hostages at the museum, which is located near the country’s parliament. Tunisia’s prime minister said some attackers may have escaped."
+ data-credit="Mohamed Messara/European Pressphoto Agency" data-image="https://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/04667704.jpg?env=A"
+ data-max-width="3576" data-ratio="1.457" data-title="March 18, 2015" data-uuid="f66f0046-cd72-11e4-8c54-ffb5ba6f2f69"></div>
+ <div class="wp-volt-gal-slide wp-volt-gal-photo" data-buy="false"
+ data-caption="Members of Tunisian security services take up positions. The terrorist strike is the deadliest in more than a decade in the tiny North African nation, whose economy depends a lot on tourism."
+ data-credit="Mohamed Messara/European Pressphoto Agency" data-image="https://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/04667708.jpg?env=A"
+ data-max-width="4096" data-ratio="1.489" data-title="March 18, 2015&nbsp;"
+ data-uuid="f7bdd03a-cd72-11e4-8c54-ffb5ba6f2f69"></div>
+ <div class="wp-volt-gal-slide wp-volt-gal-photo" data-buy="false"
+ data-caption="Members of the Tunisian security services stand near the parliament building. There was no immediate claim of responsibility in the attack."
+ data-credit="Mohamed Messara/European Pressphoto Agency" data-image="https://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/04667692.jpg?env=A"
+ data-max-width="4096" data-ratio="1.557" data-title="March 18, 2015&nbsp;"
+ data-uuid="f92e89f0-cd72-11e4-8c54-ffb5ba6f2f69"></div>
+ <div class="wp-volt-gal-slide wp-volt-gal-photo" data-buy="false"
+ data-caption="Members of the Tunisian armed forces arrive after the attack, which followed increasing bloodshed and clashes in neighboring Lebanon."
+ data-credit="Mohamed Messara/European Pressphoto Agency" data-image="https://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/04667707.jpg?env=A"
+ data-max-width="4096" data-ratio="1.605" data-title="March 18, 2015&nbsp;"
+ data-uuid="f71c7c30-cd72-11e4-8c54-ffb5ba6f2f69"></div>
+ <div class="wp-volt-gal-slide wp-volt-gal-photo" data-buy="false"
+ data-caption="Armed Tunisian policemen stop a vehicle as they secure the area. The attack began as gunmen opened fire on tourists getting off buses outside the Bardo. The attackers then entered the museum."
+ data-credit="Fethi Belaid/AFP/Getty Images" data-image="https://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/Nic6429740.jpg?env=A"
+ data-max-width="5000" data-ratio="1.459" data-title="March 18, 2015&nbsp;"
+ data-uuid="d8c9857e-cd73-11e4-8c54-ffb5ba6f2f69"></div>
+ <div class="wp-volt-gal-slide wp-volt-gal-photo" data-buy="false"
+ data-caption="Members of the Tunisian security services take up positions.Tunisia has grappled with rising extremism and Islamist militancy since a popular uprising in 2011."
+ data-credit="Mohamed Messara/European Pressphoto Agency" data-image="https://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/04667719.jpg?env=A"
+ data-max-width="4096" data-ratio="1.648" data-title="March 18, 2015&nbsp;"
+ data-uuid="0a7ce6b6-cd73-11e4-8c54-ffb5ba6f2f69"></div>
+ <div class="wp-volt-gal-slide wp-volt-gal-photo" data-buy="false"
+ data-caption="Tunisian police officers duck behind a vehicle. The nationalities of the victims weren’t immediately clear, but the prime minister said the victims included citizens of Italy, Germany, Poland and Spain."
+ data-credit="Mohamed Messara/European Pressphoto Agency" data-image="https://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/04667698.jpg?env=A"
+ data-max-width="4096" data-ratio="1.499" data-title="March 18, 2015&nbsp;"
+ data-uuid="f87cd426-cd72-11e4-8c54-ffb5ba6f2f69"></div>
+ <div class="wp-volt-gal-slide wp-volt-gal-photo" data-buy="false"
+ data-caption="Members of Tunisian security services crouch near the country’s parliament, which was evacuated after the attack on the nearby museum."
+ data-credit="Mohamed Messara/European Pressphoto Agency" data-image="https://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/04667684.jpg?env=A"
+ data-max-width="4096" data-ratio="1.5" data-title="March 18, 2015&nbsp;"
+ data-uuid="faa5b9ca-cd72-11e4-8c54-ffb5ba6f2f69"></div>
+ <div class="wp-volt-gal-slide wp-volt-gal-photo" data-buy="false"
+ data-caption="Police officers are seen outside the parliament in Tunis. Tunisia has been praised as a model of democratic transition after the Arab Spring."
+ data-credit="Zoubeir Souissi/Reuters" data-image="https://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/2015-03-18T144520Z_01_N07_RTRIDSP_3_TUNISIA-SECURITY.jpg?env=A"
+ data-max-width="3173" data-ratio="1.75" data-title="March 18, 2015&nbsp;&nbsp;"
+ data-uuid="ae8ebade-cd93-11e4-8c54-ffb5ba6f2f69"></div>
+ <div class="wp-volt-gal-slide wp-volt-gal-photo" data-buy="false"
+ data-caption="Police officers and a journalist run outside the parliament in Tunis."
+ data-credit="Zoubeir Souissi/Reuters" data-image="https://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/2015-03-18T190845Z_01_NE16_RTRIDSP_3_TUNISIA-SECURITY.jpg?env=A"
+ data-max-width="3500" data-ratio="1.487" data-title="&nbsp;March 18, 2015"
+ data-uuid="6141ac7e-cdb0-11e4-a2a7-9517a3a70506"></div>
+ <div class="wp-volt-gal-slide wp-volt-gal-photo" data-buy="false"
+ data-caption="An image taken from video shows tourists running for cover as armed men stand guard."
+ data-credit="Reuters TV/Reuters" data-image="https://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/2015-03-18T183424Z_01_SIN35_RTRIDSP_3_TUNISIA-SECURITY.jpg?env=A"
+ data-max-width="1200" data-ratio="1.469" data-title="&nbsp;March 18, 2015"
+ data-uuid="791412ba-cdb0-11e4-a2a7-9517a3a70506"></div>
+ <div class="wp-volt-gal-slide wp-volt-gal-photo" data-buy="false"
+ data-caption="An image taken from video shows tourists running for cover as armed men stand guard."
+ data-credit="Reuters TV/Reuters" data-image="https://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/2015-03-18T182452Z_01_SIN32_RTRIDSP_3_TUNISIA-SECURITY.jpg?env=A"
+ data-max-width="1200" data-ratio="1.341" data-title="&nbsp;March 18, 2015"
+ data-uuid="87c2ef52-cdb0-11e4-a2a7-9517a3a70506"></div>
+ <div class="wp-volt-gal-slide wp-volt-gal-photo" data-buy="false"
+ data-caption="Members of the Tunisian armed forces take up positions during an operation against gunmen at the National Bardo Museum in Tunis."
+ data-credit="Mohamed Messara/European Pressphoto Agency" data-image="https://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/04668329.jpg?env=A"
+ data-max-width="4096" data-ratio="1.504" data-title="&nbsp;March 18, 2015"
+ data-uuid="c8f7af26-cdb0-11e4-a2a7-9517a3a70506"></div>
+ <div class="wp-volt-gal-slide wp-volt-gal-photo" data-buy="false"
+ data-caption="Escorted by security forces, rescue workers pull an empty stretcher outside the Bardo museum."
+ data-credit="Salah Ben Mahmoud/AP" data-image="https://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/APTOPIX_Tunisia_Attack-0e618.jpg?env=A"
+ data-max-width="2440" data-ratio="1.459" data-title="March 18, 2015&nbsp;&nbsp;&nbsp;"
+ data-uuid="ccafd350-cd92-11e4-8c54-ffb5ba6f2f69"></div>
+ <div class="wp-volt-gal-slide wp-volt-gal-photo" data-buy="false"
+ data-caption="A Tunisian security force helicopter flies over the site of the attack."
+ data-credit="Salah Habibi/AFP/Getty Images" data-image="https://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/Nic6429931.jpg?env=A"
+ data-max-width="5000" data-ratio="1.417" data-title="March 18, 2015&nbsp;&nbsp;&nbsp;"
+ data-uuid="c720e424-cd92-11e4-8c54-ffb5ba6f2f69"></div>
+ <div class="wp-volt-gal-slide wp-volt-gal-photo" data-buy="false"
+ data-caption="A member of the Tunisian special security forces celebrates after killing two gunmen who attacked Tunis’s Bardo museum."
+ data-credit="Fethi Belaid/AFP/Getty Images" data-image="https://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/Nic6429847.jpg?env=A"
+ data-max-width="5000" data-ratio="1.551" data-title="March 18, 2015&nbsp;&nbsp;&nbsp;"
+ data-uuid="db8f504e-cd92-11e4-8c54-ffb5ba6f2f69"></div>
+ <div class="wp-volt-gal-slide wp-volt-gal-photo" data-buy="false"
+ data-caption="Tourists and visitors from the Bardo museum are evacuated in Tunis."
+ data-credit="Hassene Dridi/AP" data-image="https://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/APTOPIX_Tunisia_Attack-05586.jpg?env=A"
+ data-max-width="2013" data-ratio="1.593" data-title="March 18, 2015&nbsp;&nbsp;&nbsp;"
+ data-uuid="fc2a0420-cd92-11e4-8c54-ffb5ba6f2f69"></div>
+ <div class="wp-volt-gal-slide wp-volt-gal-photo" data-buy="false"
+ data-caption="A victim is evacuated by rescue workers outside the Bardo museum."
+ data-credit="Hassene Dridi/AP" data-image="https://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/APTOPIX_Tunisia_Attack-0515a.jpg?env=A"
+ data-max-width="2347" data-ratio="1.476" data-title="March 18, 2015&nbsp;&nbsp;&nbsp;"
+ data-uuid="3c5a5d88-cd93-11e4-8c54-ffb5ba6f2f69"></div>
+ <div class="wp-volt-gal-slide wp-volt-gal-photo" data-buy="false"
+ data-caption="Tunisia’s president, Beji Caid Essebsi, center, visited some of the injured who were receiving treatment at Charles Nicole Hospital in Tunis."
+ data-credit="Stringer/European Pressphoto Agency" data-image="https://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/04668205.jpg?env=A"
+ data-max-width="4096" data-ratio="1.396" data-title="&nbsp;" data-uuid="0c81a9ae-cdb1-11e4-a2a7-9517a3a70506"></div>
+ <div class="wp-volt-gal-slide wp-volt-gal-photo" data-buy="false"
+ data-caption="An injured man arrives on a stretcher at Charles Nicole Hospital after the attack."
+ data-credit="Sofiene Hamdaoui/AFP/Getty Images" data-image="https://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/Nic6429915.jpg?env=A"
+ data-max-width="4820" data-ratio="1.488" data-title="March 18, 2015&nbsp;&nbsp;&nbsp;"
+ data-uuid="be8e079c-cd92-11e4-8c54-ffb5ba6f2f69"></div>
+ <div class="wp-volt-gal-slide wp-volt-gal-photo" data-buy="false"
+ data-caption="A bus shows damage from the attack." data-credit="Zoubeir Souissi/Reuters"
+ data-image="https://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/2015-03-18T172316Z_01_NE01_RTRIDSP_3_TUNISIA-SECURITY.jpg?env=A"
+ data-max-width="3500" data-ratio="1.655" data-title="&nbsp;March 18, 2015"
+ data-uuid="fc05c33a-cdb0-11e4-a2a7-9517a3a70506"></div>
+ <div class="wp-volt-gal-slide wp-volt-gal-photo" data-buy="false"
+ data-caption="Tunisian security forces open a gate to allow an ambulance carrying wounded victims from the attack to pass."
+ data-credit="Fethi Belaid/AFP/Getty Images" data-image="https://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/Nic6429909.jpg?env=A"
+ data-max-width="4480" data-ratio="1.425" data-title="March 18, 2015&nbsp;&nbsp;"
+ data-uuid="e6e188fe-cd92-11e4-8c54-ffb5ba6f2f69"></div>
+ </div>
+ <div class="wp-volt-gal-title-overlay">
+ <div class="wp-volt-gal-title-backdrop"></div>
+ <div class="wp-volt-gal-title-gradient"></div>
+ <div class="wp-volt-gal-title-holder">
+ <div class="wp-volt-gal-title-main"></div>
+ <div class="wp-volt-gal-title-subtitle"></div>
+ </div>
+ </div>
+ <div class="wp-volt-gal-ad">
+ <div class="wp-volt-gal-ad-wrap">
+ <div id="slug_bigbox_gallery" style="display:none;">
+ <div id="wpni_adi_bigbox_gallery"></div>
+ </div>
+ </div>
+ <div class="wp-volt-gal-ad-skip">
+ <div class="wp-volt-gal-ad-pie"></div>
+ <div class="wp-volt-gal-ad-skiptext">Skip Ad</div>
+ </div>
+ </div>
+ <div class="wp-volt-gal-close-fullscreen"><i class="close">×</i>
+
+ </div>
+ <div class="wp-volt-gal-main-nav wp-volt-gal-main-nav-prev"><i class="fa fa-angle-left"></i>
+
+ </div>
+ <div class="wp-volt-gal-main-nav wp-volt-gal-main-nav-zoom"></div>
+ <div class="wp-volt-gal-main-nav wp-volt-gal-main-nav-next"><i class="fa fa-angle-right"></i>
+
+ </div>
+ <div class="wp-volt-gal-preroll">
+ <div class="wp-volt-gal-preroll-video"></div>
+ <div class="wp-volt-gal-preroll-text"></div>
+ </div>
+ </div>
+ <div class="wp-volt-gal-embed-promo-container">
+ <div class="wp-volt-gal-embed-promo-container-table">
+ <div class="wp-volt-gal-embed-promo-top"><span class="cell">At least 17 dead in Tunisia after attack in capital city</span>
+
+ </div>
+ <div class="wp-volt-gal-embed-promo-mid">
+ <div class="cell">
+ <div class="wp-volt-gal-embed-promo-mid-img-container">
+ <img src="https://img.washingtonpost.com/rf/image_606w/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/Nic6429732.jpg"/>
+ </div>
+ <div class="wp-volt-gal-embed-promo-mid-label"><i class="fa fa-camera"></i>View Photos</div>
+ </div>
+ </div>
+ <div class="wp-volt-gal-embed-promo-bottom"><span class="cell">Security forces in Tunisia stormed the country’s most prominent museum, freeing hostages and ending a siege by gunmen.</span>
+
+ </div>
+ </div>
+ </div>
+ <div class="wp-volt-gal-details">
+ <div class="wp-volt-gal-details-handle">Caption</div>
+ <div class="wp-volt-gal-details-wrap">
+ <div class="wp-volt-gal-details-main">
+ <div class="wp-volt-gal-blurb">Security forces in Tunisia stormed the country’s most prominent museum,
+ freeing hostages and ending a siege by gunmen.</div>
+ <div class="wp-volt-gal-caption"> <span class="wp-volt-gal-caption-title">March 18, 2015</span> <span class="wp-volt-gal-caption-text">Tunisian security forces secure the area after gunmen attacked the famed Bardo National Museum in Tunis, the capital.</span>
+ <span
+ class="wp-volt-gal-caption-credit">Fethi Belaid/AFP/Getty Images</span>
+ </div> <a class="wp-volt-gal-buy-link" href="#" target="_blank">Buy Photo</a>
+ </div>
+ </div>
+ </div>
+ <div class="wp-volt-gal-templates">
+ <div class="wp-volt-gal-pie">
+ <div class="wp-volt-gal-pie-anim wp-volt-gal-pie-inner wp-volt-gal-pie-spinner"></div>
+ <div class="wp-volt-gal-pie-anim wp-volt-gal-pie-inner wp-volt-gal-pie-filler"></div>
+ <div class="wp-volt-gal-pie-anim wp-volt-gal-pie-mask"></div>
+ </div>
+ <div class="wp-volt-gal-interstitial-text">Wait 1 second to continue.</div>
+ </div>
+ </div>
+ <style>
+ .wp-volt-gal-preroll-video{width:100%;height:100%}
+ </style>
+ </div>
+ <script type="text/javascript">
+ (function(){pbSsiSingle=window.pbSsiSingle||{};pbSsiSingle.onReady=pbSsiSingle.onReady||function(){TWPHead.test(!!window.jQuery,"","//www.washingtonpost.com/pb/resources/js/jquery.1.8.2.js",function(){pbSsiSingle.serverUri="";pbSsiSingle.contextPath="/pb";var pbModules=[];$(".pb-feature-ssi-single").each(function(i,el){var modType=$(el).attr("data-pb-name");if(typeof modType=="string"&&$.inArray(modType,pbModules)==-1){pbModules.push(modType)}});pbSsiSingle.externals.push("//www.washingtonpost.com/pb/feature/resource/render.js?features="+pbModules.join(",")+"&_=f4b3d2");if(!window.EventController){pbSsiSingle.externals.unshift("//www.washingtonpost.com/pb/resources/js/event-controller.v2.js")}TWPHead.load(pbSsiSingle.externals)})};if(!pbSsiSingle.loadInitialized){if(!window.TWPHead){window.head_conf={head:"TWPHead"};var head=document.getElementsByTagName("head")[0];var scriptEl=document.createElement("script");scriptEl.src="//www.washingtonpost.com/pb/resources/js/head.min.js";head.appendChild(scriptEl);var checkLoad=function(){if(!!window.TWPHead){TWPHead.ready(document,pbSsiSingle.onReady)}else{setTimeout(checkLoad,200)}};checkLoad()}else{TWPHead.ready(document,pbSsiSingle.onReady)}pbSsiSingle.loadInitialized=true}var newExternals=["http://www.washingtonpost.com/rw/sites/twpweb/js/plugin/plugin.jquery.wp-preroll.js"];pbSsiSingle.externals=pbSsiSingle.externals||[];for(var a=0;a&lt;newExternals.length;a++){if(pbSsiSingle.externals.indexOf(newExternals[a])==-1){pbSsiSingle.externals.push(newExternals[a])}}})();
+ </script>
+ </div>
+ <p> <span class="dateline">CAIRO —</span> Gunmen opened fire on visitors at
+ Tunisia’s most renowned museum on Wednesday, killing at least 19 people,
+ including 17 foreigners, in an assault that threatened to upset the fragile
+ stability of a country seen as the lone success of the Arab Spring.</p>
+ <p>It was the most deadly terrorist attack in the North African nation in
+ more than a decade. Although no group claimed responsibility, the bloodshed
+ raised fears that militants linked to the Islamic State were expanding
+ their operations.</p>
+ <p>The attackers, clad in military uniforms, <a href="http://www.washingtonpost.com/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html">stormed the Bardo National Museum</a> on
+ Wednesday afternoon, seizing and gunning down foreign tourists before security
+ forces raided the building to end the siege. The museum is a major tourist
+ draw and is near the heavily guarded national parliament in downtown Tunis.</p>
+ <p>Tunisian Prime Minister Habib Essid said that in addition to the slain
+ foreigners — from Italy, Poland, Germany and Spain — a local museum worker
+ and a security official were killed. Two gunmen died, and three others
+ may have escaped, officials said. About 50 other people were wounded, according
+ to local news reports.</p>
+ <p>“Our nation is in danger,” Essid declared in a televised address Wednesday
+ evening. He vowed that the country would be “merciless” in defending itself.</p>
+ <p
+ channel="wp.com" class="interstitial-link"> <i> <a href="http://www.washingtonpost.com/blogs/worldviews/wp/2015/03/18/why-tunisia-the-arab-springs-sole-success-story-suffers-from-islamist-violence/">[Read: Why Tunisia, Arab Spring’s sole success story, suffers from Islamist violence]</a> </i>
+ </p>
+ <p>Tunisia, a mostly Muslim nation of about 11 million people, was governed
+ for decades by autocrats who imposed secularism. Its sun-drenched Mediterranean
+ beaches drew thousands of bikini-clad tourists, and its governments promoted
+ education and other rights for women. But the country has grappled with
+ rising Islamist militancy since a popular uprising overthrew its dictator
+ four years ago, setting the stage for the Arab Spring revolts across the
+ region.</p>
+ <p>Thousands of Tunisians have flocked to join jihadist groups in Syria,
+ including the Islamic State, making the country one of the major sources
+ of foreign fighters in the conflict. Tunisian security forces have also
+ fought increasing gunbattles with jihadists at home.</p>
+ <p>Despite this, the country has been hailed as a model of democratic transition
+ as other governments that came to power after the Arab Spring collapsed,
+ often in bloody confrontations. But the attack Wednesday — on a national
+ landmark that showcases Tunisia’s rich heritage — could heighten tensions
+ in a nation that has become deeply divided between pro- and anti-Islamist
+ political factions.</p>
+ <p>Many Tunisians accuse the country’s political Islamists, who held power
+ from 2011 to 2013, of having been slow to respond to the growing danger
+ of terrorism. Islamist politicians have acknowledged that they did not
+ realize the threat that would develop when radical Muslims, who had been
+ repressed under authoritarian regimes, won the freedom to preach freely
+ in mosques.</p>
+ <p>In Washington, White House press secretary Josh Earnest <a href="http://hosted2.ap.org/APDEFAULT/cae69a7523db45408eeb2b3a98c0c9c5/Article_2015-03-18-ML--Tunisia-Attack-The%20Latest/id-653822d829b24cef993c5bd6a7ce44b5">condemned the attack </a>and
+ said the U.S. government was willing to assist Tunisian authorities in
+ the investigation.</p>
+ <div class="inline-content inline-video">
+ <div class="posttv-video-embed" data-duration="87880" data-headline="Gunmen storm Tunisian museum, kill 17 tourists"
+ data-is-truth-teller="0" data-max-height="-1" data-max-width="-1" data-object-id="5509c662e4b0210747c74e6a"
+ data-show-endscreen="1" data-show-promo="http://img.washingtonpost.com/rf/image_1024w/2010-2019/WashingtonPost/2015/03/18/Production/WashingtonPost/Images/2015-03-18T183424Z_01_SIN35_RTRIDSP_3_TUNISIA-SECURITY.jpg"
+ data-uuid="37493ea0-cd97-11e4-8730-4f473416e759" data-youtube-id="">
+ <script src="http://www.washingtonpost.com/posttv/static/js/posttv/posttv-video-embed.v3.js"
+ type="text/javascript"></script>
+ </div>
+ <div class="inline-video-caption"> <span class="pb-caption">Gunmen in military uniforms stormed Tunisia's national museum, killing at least 19 people, most of them foreign tourists. (Reuters)</span>
+ </div>
+ </div>
+ <p>“This attack today is meant to threaten authorities, to frighten tourists
+ and to negatively affect the economy,” said Lotfi Azzouz, Tunisia country
+ director for Amnesty International, a London-based rights group.</p>
+ <p>Tourism is critical to Tunisia’s economy, accounting for 15 percent of
+ its gross domestic product in 2013, according to the World Travel and Tourism
+ Council, an industry body. The Bardo museum hosts one of the world’s most
+ outstanding collections of Roman mosaics and is popular with tourists and
+ Tunisians alike.</p>
+ <p channel="wp.com" class="interstitial-link"> <i>[<a href="http://www.washingtonpost.com/blogs/worldviews/wp/2015/03/18/tunisias-bardo-museum-attacked-by-terrorists-is-home-to-amazing-roman-treasures/">Bardo museum houses amazing Roman treasures</a>]</i>
+ </p>
+ <p>The attack is “also aimed at the country’s security and stability during
+ the transition period,” Azzouz said. “And it could have political repercussions
+ — like the curtailing of human rights, or even less government transparency
+ if there’s fear of further attacks.”</p>
+ <p>The attack raised concerns that the government, led by secularists, would
+ be pressured to stage a wider crackdown on Islamists of all stripes. Lawmakers
+ are drafting an anti-terrorism bill to give security forces additional
+ tools to fight militants.</p>
+ <div class="inline-content inline-gallery-embedded">
+ <link href="//www.washingtonpost.com/pb/resources/compact/type/ssiSingle/styles/b2571cf5dfafe5a7760aba08fea63fd6.css"
+ rel="stylesheet"/>
+ <link href="//www.washingtonpost.com/pb/resources/compact/template/rcbXA58IiRzCmehOAc0OM-Q/styles/6bf32f216c50d6ab0c64d68d81d5ebb5.css"
+ rel="stylesheet"/>
+ <link href="//www.washingtonpost.com/pb/resource/style-rcbXA58IiRzCmehOAc0OM-Q-6a954a58.css"
+ rel="stylesheet"/>
+ <script src="//www.washingtonpost.com/pb/resource/headjs-rcbXA58IiRzCmehOAc0OM-Q-6a954a58.js"
+ type="text/javascript"></script>
+ <div class="pb-feature-ssi-single pb-f-gallery-gallery" data-pb-content-uri="/pb/galleryEmbed/b9af65dc-cd7d-11e4-a2a7-9517a3a70506"
+ data-pb-name="gallery-gallery" id="gallery-embed_1417452270618_709">
+ <div class="wp-volt-gal wp-volt-gal-p-end-circular wp-volt-gal-promo-stub wp-volt-gal-on-promo-slide wp-volt-gal-embed-promo wp-volt-gal-embed-promo-hide"
+ data-category="Foreign" data-commercial-node="world/africa" data-first-published="1426694580"
+ data-permalink="http://www.washingtonpost.com/world/africa/inside-tunisias-bardo-museum/2015/03/18/b9af65dc-cd7d-11e4-a2a7-9517a3a70506_gallery.html"
+ data-preroll-zone="" data-published="1426694580" data-section="world" data-show-interstitials="true"
+ data-show-preroll="true" data-slug="inside-tunisias-bardo-museum" data-subsection="africa"
+ data-title="Inside Tunisia’s Bardo National Museum" data-uuid="b9af65dc-cd7d-11e4-a2a7-9517a3a70506">
+ <div class="wp-volt-gal-bar">
+ <div class="wp-volt-gal-nav">
+ <div class="wp-volt-gal-nav-number"><span class="wp-volt-gal-nav-number-current">1</span> of 12</div>
+ <div class="wp-volt-gal-nav-buttons">
+ <div class="wp-volt-gal-nav-button wp-volt-gal-nav-prev"></div>
+ <div class="wp-volt-gal-nav-button wp-volt-gal-nav-next"></div>
+ </div>
+ </div>
+ <div class="wp-volt-gal-buttons">
+ <div class="wp-volt-gal-button wp-volt-gal-button-fullscreen">Full Screen</div>
+ <div class="wp-volt-gal-button wp-volt-gal-button-autoplay">Autoplay</div>
+ <div class="wp-volt-gal-bar-pie"></div>
+ <div class="wp-volt-gal-button wp-volt-gal-button-close">Close</div>
+ </div>
+ </div>
+ <div class="wp-volt-gal-main">
+ <div class="wp-volt-gal-photos">
+ <div class="wp-volt-gal-slide wp-volt-gal-photo" data-buy="false" data-caption="One of the many mosaics for which the Bardo National Museum in Tunis is famous. On March 18, 2015, gunmen attacked the museum and killed at least 19 people."
+ data-credit="Fethi Belaid/AFP/Getty Images" data-image="https://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/144714787.jpg?env=A"
+ data-max-width="2940" data-ratio="1.447" data-title="May 17, 2012" data-uuid="e237f42e-cd7d-11e4-a2a7-9517a3a70506">
+ <div class="wp-volt-gal-slide-gal-title"></div>
+ </div>
+ <div class="wp-volt-gal-slide wp-volt-gal-photo" data-buy="false" data-caption="Detail of a Roman mosaic showing one of the four winds, from the “Triumph of Neptune.” Originally from Maxula-Rades, Tunisia, the piece is now in the Bardo’s collection."
+ data-credit="Print Collector/Getty Images" data-image="https://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/501584171.jpg?env=A"
+ data-max-width="4241" data-ratio="1.018" data-title="&nbsp;" data-uuid="e6a4638a-cd7d-11e4-a2a7-9517a3a70506"></div>
+ <div class="wp-volt-gal-slide wp-volt-gal-photo" data-buy="false"
+ data-caption="The Virgil Room. This was originally the center of a harem."
+ data-credit="Print Collector/Getty Images" data-image="https://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/463921897.jpg?env=A"
+ data-max-width="5124" data-ratio="1.502" data-title="&nbsp;" data-uuid="e57ec374-cd7d-11e4-a2a7-9517a3a70506"></div>
+ <div class="wp-volt-gal-slide wp-volt-gal-photo" data-buy="false"
+ data-caption="A Tunisian expert restores a sculpture dating from the Punic era."
+ data-credit="Fethi Belaid/AFP/Getty Images" data-image="https://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/117488252.jpg?env=A"
+ data-max-width="2765" data-ratio="0.79" data-title="&nbsp;" data-uuid="db9a6f8e-cd7d-11e4-a2a7-9517a3a70506"></div>
+ <div class="wp-volt-gal-slide wp-volt-gal-photo" data-buy="false"
+ data-caption="The “Good Shepherd” is an example of early Christian art from the 4th century."
+ data-credit="PHAS/UIG via Getty Images" data-image="https://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/535823163.jpg?env=A"
+ data-max-width="2856" data-ratio="0.655" data-title="&nbsp;" data-uuid="da2ffab0-cd7d-11e4-a2a7-9517a3a70506"></div>
+ <div class="wp-volt-gal-slide wp-volt-gal-photo" data-buy="false"
+ data-caption="The Bardo was expanded and renovated after years of work in 2012."
+ data-credit="Fethi Belaid/AFP/Getty Images" data-image="https://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/144714724.jpg?env=A"
+ data-max-width="3500" data-ratio="1.528" data-title="&nbsp;" data-uuid="e17ae8fc-cd7d-11e4-a2a7-9517a3a70506"></div>
+ <div class="wp-volt-gal-slide wp-volt-gal-photo" data-buy="false"
+ data-caption="A hunting scene." data-credit="Wolfgang Kaehler/LightRocket via Getty Images"
+ data-image="https://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/453368624.jpg?env=A"
+ data-max-width="5000" data-ratio="1.502" data-title="&nbsp;" data-uuid="e47bf78a-cd7d-11e4-a2a7-9517a3a70506"></div>
+ <div class="wp-volt-gal-slide wp-volt-gal-photo" data-buy="false"
+ data-caption="This is the main hall in the Roman section of the museum."
+ data-credit="Education Images/UIG via Getty Images" data-image="https://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/144107258.jpg?env=A"
+ data-max-width="3300" data-ratio="0.647" data-title="&nbsp;" data-uuid="de77c2ec-cd7d-11e4-a2a7-9517a3a70506"></div>
+ <div class="wp-volt-gal-slide wp-volt-gal-photo" data-buy="false"
+ data-caption="After the renovation, the museum opened its new wing and presented many new materials."
+ data-credit="Wolfgang Kaehler/LightRocket via Getty Images" data-image="https://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/453368558.jpg?env=A"
+ data-max-width="5000" data-ratio="1.497" data-title="&nbsp;" data-uuid="e314250c-cd7d-11e4-a2a7-9517a3a70506"></div>
+ <div class="wp-volt-gal-slide wp-volt-gal-photo" data-buy="false"
+ data-caption="Palestinian Authority President Mahmoud Abbas visited the Bardo in 2012."
+ data-credit="Fethi Belaid/AFP/Getty Images" data-image="https://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/143564307.jpg?env=A"
+ data-max-width="3500" data-ratio="1.453" data-title="&nbsp;" data-uuid="dd8b05ba-cd7d-11e4-a2a7-9517a3a70506"></div>
+ <div class="wp-volt-gal-slide wp-volt-gal-photo" data-buy="false"
+ data-caption="A 3rd-century Roman room." data-credit="Education Images/UIG via Getty Images"
+ data-image="https://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/144107259.jpg?env=A"
+ data-max-width="3300" data-ratio="0.647" data-title="&nbsp;" data-uuid="dff7a916-cd7d-11e4-a2a7-9517a3a70506"></div>
+ <div class="wp-volt-gal-slide wp-volt-gal-photo" data-buy="false"
+ data-caption="The Roman mosaics at the museum attract tourists from around the world. Seventeen of the people killed in the attack March 18, 2015, were foreign visitors."
+ data-credit="Fethi Belaid/AFP/Getty Images" data-image="https://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/REF34188.jpg?env=A"
+ data-max-width="4500" data-ratio="1.502" data-title="&nbsp;" data-uuid="be2ae21c-cd7d-11e4-a2a7-9517a3a70506"></div>
+ </div>
+ <div class="wp-volt-gal-title-overlay">
+ <div class="wp-volt-gal-title-backdrop"></div>
+ <div class="wp-volt-gal-title-gradient"></div>
+ <div class="wp-volt-gal-title-holder">
+ <div class="wp-volt-gal-title-main"></div>
+ <div class="wp-volt-gal-title-subtitle"></div>
+ </div>
+ </div>
+ <div class="wp-volt-gal-ad">
+ <div class="wp-volt-gal-ad-wrap">
+ <div id="slug_bigbox_gallery" style="display:none;">
+ <div id="wpni_adi_bigbox_gallery"></div>
+ </div>
+ </div>
+ <div class="wp-volt-gal-ad-skip">
+ <div class="wp-volt-gal-ad-pie"></div>
+ <div class="wp-volt-gal-ad-skiptext">Skip Ad</div>
+ </div>
+ </div>
+ <div class="wp-volt-gal-close-fullscreen"><i class="close">×</i>
+
+ </div>
+ <div class="wp-volt-gal-main-nav wp-volt-gal-main-nav-prev"><i class="fa fa-angle-left"></i>
+
+ </div>
+ <div class="wp-volt-gal-main-nav wp-volt-gal-main-nav-zoom"></div>
+ <div class="wp-volt-gal-main-nav wp-volt-gal-main-nav-next"><i class="fa fa-angle-right"></i>
+
+ </div>
+ <div class="wp-volt-gal-preroll">
+ <div class="wp-volt-gal-preroll-video"></div>
+ <div class="wp-volt-gal-preroll-text"></div>
+ </div>
+ </div>
+ <div class="wp-volt-gal-embed-promo-container">
+ <div class="wp-volt-gal-embed-promo-container-table">
+ <div class="wp-volt-gal-embed-promo-top"><span class="cell">Inside Tunisia’s Bardo National Museum</span>
+
+ </div>
+ <div class="wp-volt-gal-embed-promo-mid">
+ <div class="cell">
+ <div class="wp-volt-gal-embed-promo-mid-img-container">
+ <img src="https://img.washingtonpost.com/rf/image_606w/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/144714787.jpg"/>
+ </div>
+ <div class="wp-volt-gal-embed-promo-mid-label"><i class="fa fa-camera"></i>View Photos</div>
+ </div>
+ </div>
+ <div class="wp-volt-gal-embed-promo-bottom"><span class="cell">Housed in a 19th-century palace, the museum where gunmen killed foreign tourists is famous for its Roman mosaics and other antiquities.</span>
+
+ </div>
+ </div>
+ </div>
+ <div class="wp-volt-gal-details">
+ <div class="wp-volt-gal-details-handle">Caption</div>
+ <div class="wp-volt-gal-details-wrap">
+ <div class="wp-volt-gal-details-main">
+ <div class="wp-volt-gal-blurb">Housed in a 19th-century palace, the museum where gunmen killed foreign
+ tourists is famous for its Roman mosaics and other antiquities.</div>
+ <div
+ class="wp-volt-gal-caption"> <span class="wp-volt-gal-caption-title">May 17, 2012</span> <span class="wp-volt-gal-caption-text">One of the many mosaics for which the Bardo National Museum in Tunis is famous. On March 18, 2015, gunmen attacked the museum and killed at least 19 people.</span>
+ <span
+ class="wp-volt-gal-caption-credit">Fethi Belaid/AFP/Getty Images</span>
+ </div> <a class="wp-volt-gal-buy-link" href="#" target="_blank">Buy Photo</a>
+ </div>
+ </div>
+ </div>
+ <div class="wp-volt-gal-templates">
+ <div class="wp-volt-gal-pie">
+ <div class="wp-volt-gal-pie-anim wp-volt-gal-pie-inner wp-volt-gal-pie-spinner"></div>
+ <div class="wp-volt-gal-pie-anim wp-volt-gal-pie-inner wp-volt-gal-pie-filler"></div>
+ <div class="wp-volt-gal-pie-anim wp-volt-gal-pie-mask"></div>
+ </div>
+ <div class="wp-volt-gal-interstitial-text">Wait 1 second to continue.</div>
+ </div>
+ </div>
+ <style>
+ .wp-volt-gal-preroll-video{width:100%;height:100%}
+ </style>
+ </div>
+ <script type="text/javascript">
+ (function(){pbSsiSingle=window.pbSsiSingle||{};pbSsiSingle.onReady=pbSsiSingle.onReady||function(){TWPHead.test(!!window.jQuery,"","//www.washingtonpost.com/pb/resources/js/jquery.1.8.2.js",function(){pbSsiSingle.serverUri="";pbSsiSingle.contextPath="/pb";var pbModules=[];$(".pb-feature-ssi-single").each(function(i,el){var modType=$(el).attr("data-pb-name");if(typeof modType=="string"&&$.inArray(modType,pbModules)==-1){pbModules.push(modType)}});pbSsiSingle.externals.push("//www.washingtonpost.com/pb/feature/resource/render.js?features="+pbModules.join(",")+"&_=f4b3d2");if(!window.EventController){pbSsiSingle.externals.unshift("//www.washingtonpost.com/pb/resources/js/event-controller.v2.js")}TWPHead.load(pbSsiSingle.externals)})};if(!pbSsiSingle.loadInitialized){if(!window.TWPHead){window.head_conf={head:"TWPHead"};var head=document.getElementsByTagName("head")[0];var scriptEl=document.createElement("script");scriptEl.src="//www.washingtonpost.com/pb/resources/js/head.min.js";head.appendChild(scriptEl);var checkLoad=function(){if(!!window.TWPHead){TWPHead.ready(document,pbSsiSingle.onReady)}else{setTimeout(checkLoad,200)}};checkLoad()}else{TWPHead.ready(document,pbSsiSingle.onReady)}pbSsiSingle.loadInitialized=true}var newExternals=["http://www.washingtonpost.com/rw/sites/twpweb/js/plugin/plugin.jquery.wp-preroll.js"];pbSsiSingle.externals=pbSsiSingle.externals||[];for(var a=0;a&lt;newExternals.length;a++){if(pbSsiSingle.externals.indexOf(newExternals[a])==-1){pbSsiSingle.externals.push(newExternals[a])}}})();
+ </script>
+ </div>
+ <p channel="wp.com" class="interstitial-link"> <i> <a href="http://www.washingtonpost.com/world/national-security/tunisia-after-igniting-arab-spring-sends-the-most-fighters-to-islamic-state-in-syria/2014/10/28/b5db4faa-5971-11e4-8264-deed989ae9a2_story.html">[Read: Tunisia sends most foreign fighters to Islamic State in Syria]</a> </i>
+ </p>
+ <p>“We must pay attention to what is written” in that law, Azzouz said. “There
+ is worry the government will use the attack to justify some draconian measures.”</p>
+ <p>Tunisian Islamists and secular forces have worked together — often reluctantly
+ — to defuse the country’s political crises in the years since the revolt.</p>
+ <p>Last fall, Tunisians elected a secular-minded president and parliament
+ dominated by liberal forces after <a href="http://www.washingtonpost.com/world/middle_east/tunisias-islamists-get-sobering-lesson-in-governing/2014/11/20/b6fc8988-65ad-11e4-ab86-46000e1d0035_story.html">souring on Islamist-led rule</a>.
+ In 2011, voters had elected a government led by the Ennahda party — a movement
+ similar to Egypt’s Islamist Muslim Brotherhood. But a political stalemate
+ developed as the party and others tried to draft the country’s new constitution.
+ The Islamists failed to improve a slumping economy. And Ennahda came under
+ fire for what many Tunisians saw as a failure to crack down on Islamist
+ extremists.</p>
+ <div class="inline-content inline-graphic-linked">
+ <div class="photo-wrapper"> <a href="http://www.washingtonpost.com/world/foreign-fighters-flow-to-syria/2015/01/27/7fa56b70-a631-11e4-a7c2-03d37af98440_graphic.html"><img class="unprocessed" data-hi-res-src="https://img.washingtonpost.com/rf/image_1484w/2010-2019/WashingtonPost/2015/01/27/Foreign/Graphics/foreignFighters-Jan14-GS.jpg?uuid=CDUNJKYyEeShYhIdBsp38Q" data-low-res-src="https://img.washingtonpost.com/rf/image_480w/2010-2019/WashingtonPost/2015/01/27/Foreign/Graphics/foreignFighters-Jan14-GS.jpg?uuid=CDUNJKYyEeShYhIdBsp38Q" src="https://img.washingtonpost.com/rf/image_480w/2010-2019/WashingtonPost/2015/01/27/Foreign/Graphics/foreignFighters-Jan14-GS.jpg?uuid=CDUNJKYyEeShYhIdBsp38Q"/></a>
+ <a
+ href="http://www.washingtonpost.com/world/foreign-fighters-flow-to-syria/2015/01/27/7fa56b70-a631-11e4-a7c2-03d37af98440_graphic.html"> <span class="overlay"> <span class="headline">Map: Flow of foreign fighters to Syria </span>
+
+ <span
+ class="view-graphic">View Graphic <span class="fa fa-arrow-circle-right"></span></span>
+ </span>
+ </a>
+ </div> <span class="pb-caption">Map: Flow of foreign fighters to Syria</span>
+ </div>
+ <p>After the collapse of the authoritarian system in 2011, hard-line Muslims
+ known as Salafists attacked bars and art galleries. Then, in 2012, hundreds
+ of Islamists <a href="http://www.washingtonpost.com/world/middle_east/in-tunisia-embassy-attack-tests-fledgling-democracy/2012/09/20/19f3986a-0273-11e2-8102-ebee9c66e190_story.html">assaulted the U.S. Embassy </a>in
+ Tunis, shattering windows and hurling gasoline bombs, after the release
+ of a crude online video about the prophet Muhammad. <a href="http://www.bbc.com/news/world-africa-23452979"></a>The
+ government outlawed the group behind the attack — Ansar al-Sharia, an al-Qaeda-linked
+ organization — and began a crackdown. But the killing <a href="http://www.bbc.com/news/world-africa-23452979">of two leftist politicians</a> in
+ 2013 prompted a fresh political crisis, and Ennahda stepped down, replaced
+ by a technocratic government.</p>
+ <p>Tunisia’s <a href="http://www.washingtonpost.com/blogs/monkey-cage/wp/2015/02/03/tunisia-opts-for-an-inclusive-new-government/">current coalition government</a> includes
+ an Ennahda minister in the cabinet. Still, many leftist figures openly
+ oppose collaboration with the movement’s leaders.</p>
+ <p>“Ennahda is responsible for the current deterioration of the situation,
+ because they were careless with the extremists” while they were in power,
+ Azzouz said.</p>
+ <p>The leader of Ennahda, Rachid Ghannouchi, condemned Wednesday’s attack,
+ saying in a statement that it “will not break our people’s will and will
+ not undermine our revolution and our democracy.”</p>
+ <p>Security officials are particularly concerned by the collapse of Libya,
+ where various armed groups are vying for influence and jihadist militants
+ have entrenched themselves in major cities. Tunisians worry that extremists
+ can easily get arms and training in the neighboring country.</p>
+ <p>In January, Libyan militants loyal to the Islamic State <a href="http://www.washingtonpost.com/world/middle_east/video-shows-purported-beheading-of-egyptian-christians-in-libya/2015/02/15/b8d0f092-b548-11e4-bc30-a4e75503948a_story.html">beheaded 21 Christians</a> —
+ 20 of them Egyptian Copts — along the country’s coast. They later seized
+ the Libyan city of Sirte.</p>
+ <div class="inline-content inline-graphic-embedded">
+ <img class="unprocessed" data-hi-res-src="https://img.washingtonpost.com/rf/image_1484w/2010-2019/WashingtonPost/2015/03/18/Foreign/Graphics/tunisia600.jpg?uuid=1_yuLs2LEeSHME9HNBbnWQ"
+ data-low-res-src="https://img.washingtonpost.com/rf/image_480w/2010-2019/WashingtonPost/2015/03/18/Foreign/Graphics/tunisia600.jpg?uuid=1_yuLs2LEeSHME9HNBbnWQ"
+ src="https://img.washingtonpost.com/rf/image_480w/2010-2019/WashingtonPost/2015/03/18/Foreign/Graphics/tunisia600.jpg?uuid=1_yuLs2LEeSHME9HNBbnWQ"/>
+ <br/>
+ </div>
+ <p>Officials are worried about the number of Tunisian militants who may have
+ joined the jihadists in Libya — with the goal of returning home to fight
+ the Tunis government.</p>
+ <p>Ajmi Lourimi, a member of Ennahda’s general secretariat, said he believed
+ the attack would unite Tunisians in the face of terrorism.</p>
+ <p>“There is a consensus here that this [attack] is alien to our culture,
+ to our way of life. We want to unify against this danger,” Lourimi said.
+ He said he did not expect a wider government campaign against Islamists.</p>
+ <p>“We have nothing to fear,” he said of himself and fellow Ennahda members.
+ “We believe the Interior Ministry should be trained and equipped to fight
+ and counter this militancy.”</p>
+ <p>The last major attack on a civilian target in Tunisia was in 2002, when
+ al-Qaeda militants killed more than 20 people in a car bombing outside
+ a synagogue in the city of Djerba.</p>
+ <p class="trailer"></p>
+ <p>Heba Habib contributed to this report.</p>
+ <p></p>
+ <p> <i></i>
+ </p>
+ <p></p>
+ <p channel="wp.com"> <b>Read more:</b>
+ </p>
+ <p channel="wp.com"> <a href="http://www.washingtonpost.com/world/middle_east/tunisias-islamists-get-sobering-lesson-in-governing/2014/11/20/b6fc8988-65ad-11e4-ab86-46000e1d0035_story.html"
+ title="www.washingtonpost.com">Tunisia’s Islamists get a sobering lesson in governing</a>
+ </p>
+ <p channel="wp.com"> <a href="http://www.washingtonpost.com/world/national-security/tunisia-after-igniting-arab-spring-sends-the-most-fighters-to-islamic-state-in-syria/2014/10/28/b5db4faa-5971-11e4-8264-deed989ae9a2_story.html">Tunisia sends most foreign fighters to Islamic State in Syria</a>
+ </p>
+ <p channel="wp.com"> <a href="http://www.washingtonpost.com/blogs/worldviews/wp/2015/03/18/tunisias-bardo-museum-attacked-by-terrorists-is-home-to-amazing-roman-treasures/">Tunisia’s Bardo museum is home to amazing Roman treasures</a>
+ </p>
+ <p channel="wp.com"></p>
+ </article>
+ <div class="clear"></div>
+ <div class="post-body-sig-line">
+ <div class="post-body-bio">Erin Cunningham is an Egypt-based correspondent for The Post. She previously
+ covered conflicts in the Middle East and Afghanistan for the Christian
+ Science Monitor, GlobalPost and The National.</div>
+ <div class="clear"></div>
+ </div>
+ </div>
+ </div>
+ <div id="article-world_1399567687195_45" class="moat-trackable pb-feature pb-chained pb-f-page-share-bar pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="" data-pb-name="page-share-bar"
+ data-pb-content-uri="/pb/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html"
+ data-pb-content-editable="" moat-id="page-share-bar|article-world">
+ <div class="social-tools-wrapper-bottom ">
+ <ul class="social-tools-bottom inline">
+ <li data-sharetype="facebook" class="left facebook"> <a href="#" onclick="window.open('https://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fwapo.st%2F1O61FwZ','share_facebook','width=658,height=354,scrollbars=no'); return false;"
+ tabindex="_tbidx_"> <span class="fa fa-facebook-square">&nbsp;</span><span class="longname">Share on Facebook</span><span class="shortname">Share</span> </a>
+ </li>
+ <li data-sharetype="twitter" class="right twitter"> <a href="#" onclick="window.open('https://twitter.com/share?url=http%3A%2F%2Fwapo.st%2F1O61FwZ&amp;text=Attack stokes instability fears in North Africa','share_twitter','width=550, height=350, scrollbars=no'); return false;"
+ tabindex="_tbidx_"> <span class="fa fa-twitter">&nbsp;</span> <span class="longname">Share on Twitter</span><span class="shortname">Tweet</span> </a>
+ </li>
+ </ul>
+ <div class="clear"></div>
+ </div>
+ </div>
+ <div id="article-world_1402341726530_654" class="moat-trackable pb-feature pb-chained pb-f-page-comments pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="" data-pb-name="page-comments" data-pb-content-uri="/pb/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html"
+ data-pb-content-editable="" moat-id="page-comments|article-world">
+ <div data-allow-comments="true" class="pb-comment-wrapper ">
+ <div id="comment_summary_pb_comments" class="comment-summary jump ">
+ <div class="comment-summary-count"><span class="fa fa-comments"></span><span id="echo_container" class="echo_container comment-vars echo-counter"
+ guid="http://www.washingtonpost.com/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html"></span>
+
+ </div>
+ <div class="comment-summary-display"><span class="comment-display"> Comments</span>
+
+ </div>
+ </div>
+ </div>
+ <style>
+ .pb-feature.pb-f-page-comments .pb-comment-wrapper{padding-right:0;border-bottom:0}.pb-feature.pb-f-page-comments{border-right:1px solid #d5d5d5;padding-right:50px}
+ </style>
+ </div>
+ <div id="article-world_1402341731308_885" class="moat-trackable pb-feature pb-chained pb-f-page-recommended-strip pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="" data-pb-name="page-recommended-strip"
+ data-pb-content-uri="/pb/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html"
+ data-pb-content-editable="" moat-id="page-recommended-strip|article-world">
+ <script type="text/javascript">
+ (function($){TWP=window.TWP||{};TWP.Features=TWP.Features||{};TWP.Features.Page=TWP.Features.Page||{};TWP.Features.Page.RecommendedStrip={};TWP.Features.Page.RecommendedStrip.endpointServer="//recommendation.wpdigital.net";TWP.Features.Page.RecommendedStrip.canonicalUrl="http://www.washingtonpost.com/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html"})(jQuery);
+ </script>
+ <div class="content-strip-marker recommended rs-alt1-true"></div>
+ </div>
+ <div id="article-world_1402341732389_850" class="moat-trackable pb-feature pb-chained pb-f-page-trending-strip pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="" data-pb-name="page-trending-strip"
+ data-pb-content-uri="/pb/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html"
+ data-pb-content-editable="" moat-id="page-trending-strip|article-world">
+ <script type="text/javascript">
+ (function($){TWP=window.TWP||{};TWP.Features=TWP.Features||{};TWP.Features.Page=TWP.Features.Page||{};TWP.Features.Page.TrendingStrip={}})(jQuery);
+ </script>
+ <div class="content-strip-marker trending"></div>
+ </div>
+ <div id="article-world_1399567693648_436" class="moat-trackable pb-feature pb-chained pb-f-page-comments pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="" data-pb-name="page-comments" data-pb-content-uri="/pb/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html"
+ data-pb-content-editable="" moat-id="page-comments|article-world">
+ <div data-allow-comments="true" class="pb-comment-wrapper lockfix ">
+ <div id="comment_summary_pb_comments" class="comment-summary summary-expanded-mobile">
+ <div class="comment-summary-count"><span class="fa fa-comments"></span><span id="echo_container" class="echo_container comment-vars echo-counter"
+ guid="http://www.washingtonpost.com/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html"></span>
+
+ </div>
+ <div class="comment-summary-display"><span class="comment-display"> Show Comments</span>
+
+ </div>
+ </div>
+ <div id="echo_container_placeholder" class="echo_container_placeholder">
+ <div id="echo_container_pb_comments" class="echo_container canvas comment-vars comments unprocessed defer deferMobile count submitbox stream "
+ guid="http://www.washingtonpost.com/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html"
+ allow_comments="true" allow_photos="false" allow_videos="false" commentpermalinkurlfacet="http://www.washingtonpost.com/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html"
+ defaultsort="reverseChronological" defaulttab="all" isallcomments="true"
+ includepause="true" includepermalink="false" includerecommend="true" includereport="true"
+ includereply="true" includeshare="true" includesorts="true" includetabs=""
+ includeverifiedcommenters="true" includevoteofftopic="false" markerdisplay="'post_commenter':'Post Commenter','staff':'Post Writer','top_commenter':'Post Forum','top_local':'Washingtologist','top_sports':'SuperFan','fact_checker':'Fact Checker','post_recommended':'Post Recommended','world_watcher':'World Watcher','cultuer_connoisseur':'Culture Connoisseur','weather_watcher':'Capital Weather Watcher','post_contributor':'Post Contributor'"
+ markersall="" maxitems="5" maxitemstop="3" moderationrequired="" primarynode="world"
+ sectionid="middle_east" columnname="" source="washpost.com" streamid=""
+ tabs="{}" usermarkers="" usermarkersall="" webtype="article" data-canvas-id="washpost.com/km4ey0dajm"
+ data-app-instance="6634zxcgfd">
+ <div class="echo-header-container">
+ <div id="comment-info-links" class="right"> <span class="discussion-policy"><a href="http://www.washingtonpost.com/blogs/ask-the-post/discussion-and-submission-guidelines/" target="_policy">Discussion Policy</a> </span>
+ </div>
+ <div class="comment-count-label"><span class="echo-counter"></span> Comments</div>
+ </div>
+ <div id="echo_stream_container" class="echo-stream-container echo-comment-container echo-canvas canvas canvas-methode-allcomments echo-stream"
+ data-canvas-id="washpost.com/km4ey0dajm" data-app-instance="6634zxcgfd"></div>
+ </div>
+ <div class="badgetext hide hidden">
+ <div id="echo-top_sports" class="echo-badge-info">
+ <div class="marker echo-item-user-top_sports"></div>
+ <p class="title">SuperFan Badge</p>
+ <p>SuperFan badge holders consistently post smart, timely comments about
+ Washington area sports and teams.</p>
+ <p class="echo-badge-info-link"><a target="_badgeinfo" href="http://www.washingtonpost.com/wp-srv/interactivity/get-a-badge.html">More about badges</a> |
+ <a
+ target="_badgeinfo" href="http://www.washingtonpost.com/wp-srv/interactivity/get-a-badge.html">Request a badge</a>
+ </p>
+ </div>
+ <div id="echo-culture_connoisseur" class="echo-badge-info">
+ <div class="marker echo-item-user-culture_connoisseur"></div>
+ <p class="title">Culture Connoisseur Badge</p>
+ <p>Culture Connoisseurs consistently offer thought-provoking, timely comments
+ on the arts, lifestyle and entertainment.</p>
+ <p class="echo-badge-info-link"><a target="_badgeinfo" href="http://www.washingtonpost.com/wp-srv/interactivity/get-a-badge.html">More about badges</a> |
+ <a
+ target="_badgeinfo" href="http://www.washingtonpost.com/wp-srv/interactivity/get-a-badge.html">Request a badge</a>
+ </p>
+ </div>
+ <div id="echo-fact_checker" class="echo-badge-info">
+ <div class="marker echo-item-user-fact_checker"></div>
+ <p class="title">Fact Checker Badge</p>
+ <p>Fact Checkers contribute questions, information and facts to <a target="_badgeinfo"
+ href="http://www.washingtonpost.com/blogs/fact-checker">The Fact Checker</a>.</p>
+ <p
+ class="echo-badge-info-link"><a target="_badgeinfo" href="http://www.washingtonpost.com/wp-srv/interactivity/get-a-badge.html">More about badges</a> |
+ <a
+ target="_badgeinfo" href="http://www.washingtonpost.com/wp-srv/interactivity/get-a-badge.html">Request a badge</a>
+ </p>
+ </div>
+ <div id="echo-top_local" class="echo-badge-info">
+ <div class="marker echo-item-user-top_local"></div>
+ <p class="title">Washingtologist Badge</p>
+ <p>Washingtologists consistently post thought-provoking, timely comments
+ on events, communities, and trends in the Washington area.</p>
+ <p class="echo-badge-info-link"><a target="_badgeinfo" href="http://www.washingtonpost.com/wp-srv/interactivity/get-a-badge.html">More about badges</a> |
+ <a
+ target="_badgeinfo" href="http://www.washingtonpost.com/wp-srv/interactivity/get-a-badge.html">Request a badge</a>
+ </p>
+ </div>
+ <div id="echo-staff" class="echo-badge-info">
+ <div class="marker echo-item-user-staff" style="float:left;"></div>
+ <p class="title">Post Writer Badge</p>
+ <p>This commenter is a Washington Post editor, reporter or producer.</p>
+ </div>
+ <div id="echo-top_commenter" class="echo-badge-info">
+ <div class="marker echo-item-user-top_commenter"></div>
+ <p class="title">Post Forum Badge</p>
+ <p>Post Forum members consistently offer thought-provoking, timely comments
+ on politics, national and international affairs.</p>
+ <p class="echo-badge-info-link"><a target="_badgeinfo" href="http://www.washingtonpost.com/wp-srv/interactivity/get-a-badge.html">More about badges</a> |
+ <a
+ target="_badgeinfo" href="http://www.washingtonpost.com/wp-srv/interactivity/get-a-badge.html">Request a badge</a>
+ </p>
+ </div>
+ <div id="echo-weather_watcher" class="echo-badge-info">
+ <div class="marker echo-item-user-weather_watcher"></div>
+ <p class="title">Weather Watcher Badge</p>
+ <p>Weather Watchers consistently offer thought-provoking, timely comments
+ on climates and forecasts.</p>
+ <p class="echo-badge-info-link"><a target="_badgeinfo" href="http://www.washingtonpost.com/wp-srv/interactivity/get-a-badge.html">More about badges</a> |
+ <a
+ target="_badgeinfo" href="http://www.washingtonpost.com/wp-srv/interactivity/get-a-badge.html">Request a badge</a>
+ </p>
+ </div>
+ <div id="echo-world_watcher" class="echo-badge-info">
+ <div class="marker echo-item-user-world_watcher"></div>
+ <p class="title">World Watcher Badge</p>
+ <p>World Watchers consistently offer thought-provoking, timely comments on
+ international affairs.</p>
+ <p class="echo-badge-info-link"><a target="_badgeinfo" href="http://www.washingtonpost.com/wp-srv/interactivity/get-a-badge.html">More about badges</a> |
+ <a
+ target="_badgeinfo" href="http://www.washingtonpost.com/wp-srv/interactivity/get-a-badge.html">Request a badge</a>
+ </p>
+ </div>
+ <div id="echo-post_contributor" class="echo-badge-info">
+ <div class="marker echo-item-user-post_contributor"></div>
+ <p class="title">Post Contributor Badge</p>
+ <p>This commenter is a Washington Post contributor. Post contributors aren’t
+ staff, but may write articles or columns. In some cases, contributors are
+ sources or experts quoted in a story.</p>
+ <p class="echo-badge-info-link"><a target="_badgeinfo" href="http://www.washingtonpost.com/wp-srv/interactivity/get-a-badge.html">More about badges</a> |
+ <a
+ target="_badgeinfo" href="http://www.washingtonpost.com/wp-srv/interactivity/get-a-badge.html">Request a badge</a>
+ </p>
+ </div>
+ <div id="echo-post_recommended" class="echo-badge-info">
+ <div class="marker echo-item-marker-post_recommended"></div>
+ <p class="title">Post Recommended</p>
+ <p>Washington Post reporters or editors recommend this comment or reader
+ post.</p>
+ </div>
+ <div id="echo-anon-report">
+ <p>You must be logged in to report a comment.</p>
+ <div class="inline padding-right-9"><a class="echo-sign-in icon right-arrow" href=""><strong>Sign in here</strong></a>
+
+ </div>
+ </div>
+ <div id="echo-anon-recommend">
+ <p>You must be logged in to recommend a comment.</p>
+ <div class="inline padding-right-9"><a class="echo-sign-in icon right-arrow" href=""><strong>Sign in here</strong></a>
+
+ </div>
+ </div>
+ <div id="echo-comments-overview">
+ <p>Comments our editors find particularly useful or relevant are displayed
+ in <strong>Top Comments</strong>, as are comments by users with these badges: <strong><span class="badge-list"></span></strong>.
+ Replies to those posts appear here, as well as posts by staff writers.</p>
+ <p>All comments are posted in the <strong>All Comments</strong> tab.</p>
+ <div
+ class="inline padding-right-9 left"><a class="icon right-arrow" href="http://www.washingtonpost.com/wp-srv/interactivity/get-a-badge.html"><strong>More about badges</strong></a>
+
+ </div>
+ <div class="inline padding-right-9 right"><a class="icon right-arrow" href="http://www.washingtonpost.com/wp-srv/interactivity/get-a-badge.html"><strong>Get a badge</strong></a>
+
+ </div>
+ <div class="clear padding-top-10">
+ <p>To pause and restart automatic updates, click "Live" or "Paused". If paused,
+ you'll be notified of the number of additional comments that have come
+ in.</p>
+ </div>
+ </div>
+ <div id="echo-more-comments-top">
+ <div style="font-size: 11px;">
+ <br/>Comments our editors find particularly useful or relevant are displayed
+ in <strong>Top Comments</strong>, as are comments by users with these badges: <strong><span class="badge-list"></span></strong>.
+ Replies to those posts appear here, as well as posts by staff writers.</div>
+ </div>
+ </div>
+ <div class="hide hidden utils">
+ <div id="comment-flag-container">
+ <div id="comment-flag-list">
+ <div class="arrow-one"></div>
+ <div class="arrow-two"></div>
+ <div class="flag-list">
+ <ul>
+ <li id="flag-spam" class="report-button">Spam</li>
+ <li id="flag-offensive" class="report-button">Offensive</li>
+ <li id="flag-disagree" class="report-button">Disagree</li>
+ <li id="flag-offtopic" class="report-button">Off-Topic</li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ <!--[if IE 7]>
+ <style type="text/css">
+ .comment-share-info #newsharebar li .more{position:relative;margin-left:-220px}.comment-share-info #newsharebar li .morebottom{height:110px;position:relative;top:10px;z-index:998}.comment-share-info #newsharebar li .morebottom .left,.comment-share-info #newsharebar li .morebottom .right{z-index:1000;height:110px}.comment-share-info #newsharebar li .morebottom ul li{width:100px}.comment-share-info #newsharebar li .arrow-one,.comment-share-info #newsharebar li .arrow-two{position:absolute;z-index:999;left:229px}.comment-share-info #newsharebar li .arrow-one{top:9px}.comment-share-info #newsharebar li .arrow-two{top:11px}
+ </style>
+ <![endif]-->
+ <div class="comment-share-info hide hidden">
+ <div id="newsharebar">
+ <div class="newshare">
+ <ul class="share mega-menu inline-list">
+ <li class="sharetop">
+ <div class="more" style="display: none;">
+ <div class="arrow-one"></div>
+ <div class="arrow-two"></div>
+ <div class="morebottom">
+ <div class="left">
+ <ul>
+ <li>
+ <div class="shareitems facebook"></div> <a href="javascript:void(0)" class="facebook-link" onclick="window.open('http://www.facebook.com/share.php?u={shareURL}','','width=658,height=354,scrollbars=no');return false;">Facebook</a>
+
+ </li>
+ <li>
+ <div class="shareitems twitter"></div> <a href="javascript:void(0)" onclick="window.open('http://www.twitter.com/intent/tweet?text={headline}&amp;url={shareURL}','','width=550, height=350, scrollbars=no')">Twitter</a>
+
+ </li>
+ <li>
+ <div class="shareitems reddit"></div> <a href="javascript:void(0)" onclick="window.open('http://reddit.com/submit?url={shareURL}%3Ftid%3Dsm_btn_reddit&amp;title={headline}','','width=550, height=350, scrollbars=no')">Reddit</a>
+
+ </li>
+ </ul>
+ </div>
+ <div class="right">
+ <ul>
+ <li>
+ <div class="shareitems stumbleupon"></div><a href="http://www.stumbleupon.com/submit?url={shareURL}%3Ftid%3Dsm_btn_su&amp;title={headline}">StumbleUpon</a>
+
+ </li>
+ <li>
+ <div class="shareitems digg"></div> <a href="http://digg.com/submit?phase=2&amp;url={shareURL}%3Ftid%3Dsm_btn_digg&amp;title={headline}">Digg</a>
+
+ </li>
+ <li>
+ <div class="shareitems delicious"></div> <a href="http://www.delicious.com/save?v=5&amp;noui&amp;jump=close&amp;url={shareURL}%3Ftid%3Dsm_btn_delicious&amp;title={headline}">Delicious</a>
+
+ </li>
+ </ul>
+ </div>
+ <div style="clear:both;"></div>
+ </div>
+ </div>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <style>
+ .pb-feature.pb-f-page-comments .pb-comment-wrapper{padding-right:0;border-bottom:0}.pb-feature.pb-f-page-comments{border-right:1px solid #d5d5d5;padding-right:50px}
+ </style>
+ </div>
+ </div>
+ <div id="right-rail" class="pb-layout-item pb-chain pb-one right-rail"
+ data-pb-columns="1">
+ <div id="ro4bz28dpq-m5p8ek5jwssw_1418328853122_954" class="moat-trackable pb-feature pb-chained pb-f-page-newsletter pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="" data-pb-name="page-newsletter"
+ data-pb-content-uri="/pb/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html"
+ data-pb-content-editable="" moat-id="page-newsletter|article-world">
+ <div id="newsLetter-signup-box" class="pb-feature-inside-wrapper ">
+ <p id="newsletter-section">world</p>
+ <p id="newsletter-subsection">middle_east</p>
+ <p id="newsletter-blogname"></p>
+ <p class="headline" id="newsletter-headline"></p>
+ <p class="title" id="newsletter-tagline"></p>
+ <form method="post" action="http://link.washingtonpost.com/s">
+ <input type="text" name="email" id="newsLetter-input" class="newsLetter-field"
+ placeholder="E-mail address"/>
+ <input type="submit" value="Add" class="newsLetter-btn" id="subscribe-newsLetter"/>
+ <input type="hidden" name="template" value="" id="template-var"/>
+ <input type="hidden" name="vars[simple_signup]" value="1"/>
+ <input type="hidden" name="vars[simple]" value="1"/>
+ <input type="hidden" name="" value="1" id="variable-var"/>
+ <input type="hidden" name="redirect" value="" id="redirect-url"/>
+ </form>
+ <p class="newsLetter-error-msg">Please enter a valid email address</p>
+ </div>
+ </div>
+ <div id="article-world_1399567701852_557" class="moat-trackable pb-feature pb-chained pb-f-ad-flex pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="" data-pb-name="ad-flex" data-pb-content-uri="/pb/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html"
+ data-pb-content-editable="" moat-id="ad-flex|article-world">
+ <div id="slug_flex_ss_bb_hp" class="pb-ad-container" style="display:none;"
+ data-ad-type="flex_ss_bb_hp"></div>
+ </div>
+ <div id="article-world_1399567706864_192" class="moat-trackable pb-feature pb-chained pb-f-page-post-most pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="" data-pb-name="page-post-most"
+ data-pb-content-uri="/pb/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html"
+ data-pb-content-editable="" moat-id="page-post-most|article-world">
+ <div id="post-most-rr" class="post-most">
+ <div class="header-mobile-border"></div>
+ <div class="pb-module-header">Most Read <span class="section">World</span>
+
+ </div>
+ <ul class="large def-feed">
+ <li> <a href="http://www.washingtonpost.com/blogs/worldviews/wp/2015/03/18/why-was-a-9th-century-viking-woman-buried-with-a-ring-that-says-for-allah-on-it/?tid=pm_world_pop"> <div class="number left">1</div> <img class="photo right small-img" src="http://img.washingtonpost.com/rf/image_60x60/2010-2019/WashingtonPost/2015/03/18/Interactivity/Images/339633.jpg" width="60" height="60"/> <img class="photo right big-img" src="http://img.washingtonpost.com/rf/image_138x92/2010-2019/WashingtonPost/2015/03/18/Interactivity/Images/339633.jpg" width="138" height="92"/> <div class="headline ">Why was a 9th century Viking woman buried with a ring that says 'for Allah' on it?</div> <div class="clear"></div> </a>
+ </li>
+ <li> <a href="http://www.washingtonpost.com/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html?tid=pm_world_pop"> <div class="number left">2</div> <img class="photo right small-img" src="http://img.washingtonpost.com/rf/image_60x60/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/Nic6429732-6547.jpg" width="60" height="60"/> <img class="photo right big-img" src="http://img.washingtonpost.com/rf/image_138x92/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/Nic6429732-6547.jpg" width="138" height="92"/> <div class="headline ">Attack stokes instability fears in North Africa</div> <div class="clear"></div> </a>
+ </li>
+ <li> <a href="http://www.washingtonpost.com/world/netanyahu-sweeps-to-victory-in-israeli-election/2015/03/18/af4e50ca-ccf2-11e4-8730-4f473416e759_story.html?tid=pm_world_pop"> <div class="number left">3</div> <img class="photo right small-img" src="http://img.washingtonpost.com/rf/image_60x60/2010-2019/Wires/Videos/2015-03-18/AP/Images/TS-Was8911803.jpg" width="60" height="60"/> <img class="photo right big-img" src="http://img.washingtonpost.com/rf/image_138x92/2010-2019/Wires/Videos/2015-03-18/AP/Images/TS-Was8911803.jpg" width="138" height="92"/> <div class="headline ">Now comes the hard part for Netanyahu</div> <div class="clear"></div> </a>
+ </li>
+ <li> <a href="http://www.washingtonpost.com/blogs/worldviews/wp/2015/03/18/how-netanyahu-won-and-what-happens-now/?tid=pm_world_pop"> <div class="number left">4</div> <img class="photo right small-img" src="http://img.washingtonpost.com/rf/image_60x60/WashingtonPost/Content/Blogs/worldviews/201503/Images/2015-03-18T000133Z_01_NIR01_RTRIDSP_3_ISRAEL-ELECTION.jpg" width="60" height="60"/> <img class="photo right big-img" src="http://img.washingtonpost.com/rf/image_138x92/WashingtonPost/Content/Blogs/worldviews/201503/Images/2015-03-18T000133Z_01_NIR01_RTRIDSP_3_ISRAEL-ELECTION.jpg" width="138" height="92"/> <div class="headline ">How Netanyahu won - and what happens now</div> <div class="clear"></div> </a>
+ </li>
+ <li class="last"> <a href="http://www.washingtonpost.com/world/singapore-tries-to-imagine-a-future-without-lee-kuan-yew/2015/03/18/b12acc7c-cbe7-11e4-8730-4f473416e759_story.html?tid=pm_world_pop"> <div class="number left">5</div> <img class="photo right small-img" src="http://img.washingtonpost.com/rf/image_60x60/2010-2019/Wires/Videos/201503/Reuters/Images/Singapore_Lee_Kuan_Yew-0934c.jpg" width="60" height="60"/> <img class="photo right big-img" src="http://img.washingtonpost.com/rf/image_138x92/2010-2019/Wires/Videos/201503/Reuters/Images/Singapore_Lee_Kuan_Yew-0934c.jpg" width="138" height="92"/> <div class="headline ">Singapore tries to imagine a future without its founder, Lee Kuan Yew</div> <div class="clear"></div> </a>
+ </li>
+ </ul>
+ <ul class="large alt-feed">
+ <li> <a href="http://www.washingtonpost.com/blogs/worldviews/wp/2015/03/18/why-was-a-9th-century-viking-woman-buried-with-a-ring-that-says-for-allah-on-it/?tid=pm_world_pop_b"> <div class="number left">1</div> <img class="photo right small-img" src="http://img.washingtonpost.com/rf/image_60x60/2010-2019/WashingtonPost/2015/03/18/Interactivity/Images/339633.jpg" width="60" height="60"/> <img class="photo right big-img" src="http://img.washingtonpost.com/rf/image_138x92/2010-2019/WashingtonPost/2015/03/18/Interactivity/Images/339633.jpg" width="138" height="92"/> <div class="headline ">Why was a 9th century Viking woman buried with a ring that says ‘for Allah’ on it?</div> <div class="clear"></div> </a>
+ </li>
+ <li> <a href="http://www.washingtonpost.com/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html?tid=pm_world_pop_b"> <div class="number left">2</div> <img class="photo right small-img" src="http://img.washingtonpost.com/rf/image_60x60/2010-2019/WashingtonPost/2015/03/18/National-Economy/Images/Nic6429750-1138.jpg" width="60" height="60"/> <img class="photo right big-img" src="http://img.washingtonpost.com/rf/image_138x92/2010-2019/WashingtonPost/2015/03/18/National-Economy/Images/Nic6429750-1138.jpg" width="138" height="92"/> <div class="headline ">Where do strained U.S.-Israeli relations go after Netanyahu’s victory?</div> <div class="clear"></div> </a>
+ </li>
+ <li> <a href="http://www.washingtonpost.com/world/singapore-tries-to-imagine-a-future-without-lee-kuan-yew/2015/03/18/b12acc7c-cbe7-11e4-8730-4f473416e759_story.html?tid=pm_world_pop_b"> <div class="number left">3</div> <img class="photo right small-img" src="http://img.washingtonpost.com/rf/image_60x60/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/Singapore_Lee_Kuan_Yew-0934c-6506.jpg" width="60" height="60"/> <img class="photo right big-img" src="http://img.washingtonpost.com/rf/image_138x92/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/Singapore_Lee_Kuan_Yew-0934c-6506.jpg" width="138" height="92"/> <div class="headline ">Singapore tries to imagine a future without its founder, Lee Kuan Yew</div> <div class="clear"></div> </a>
+ </li>
+ <li> <a href="http://www.washingtonpost.com/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html?tid=pm_world_pop_b"> <div class="number left">4</div> <img class="photo right small-img" src="http://img.washingtonpost.com/rf/image_60x60/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/Nic6429927.jpg" width="60" height="60"/> <img class="photo right big-img" src="http://img.washingtonpost.com/rf/image_138x92/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/Nic6429927.jpg" width="138" height="92"/> <div class="headline ">Attack stokes instability fears in North Africa</div> <div class="clear"></div> </a>
+ </li>
+ <li class="last"> <a href="http://www.washingtonpost.com/world/netanyahu-sweeps-to-victory-in-israeli-election/2015/03/18/af4e50ca-ccf2-11e4-8730-4f473416e759_story.html?tid=pm_world_pop_b"> <div class="number left">5</div> <img class="photo right small-img" src="http://img.washingtonpost.com/rf/image_60x60/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/2015-03-18T004343Z_01_JER149_RTRIDSP_3_ISRAEL-ELECTION-6494.jpg" width="60" height="60"/> <img class="photo right big-img" src="http://img.washingtonpost.com/rf/image_138x92/2010-2019/WashingtonPost/2015/03/18/Foreign/Images/2015-03-18T004343Z_01_JER149_RTRIDSP_3_ISRAEL-ELECTION-6494.jpg" width="138" height="92"/> <div class="headline ">Now comes the hard part for Netanyahu</div> <div class="clear"></div> </a>
+ </li>
+ </ul>
+ <div id="slug_postmost" data-ad-type="postmost" style="display:none;width:100%;"></div>
+ </div>
+ </div>
+ <div id="article-world_1409786978769_297" class="moat-trackable pb-feature pb-chained pb-f-most-sidebar pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="" data-pb-name="most-sidebar" data-pb-content-uri="/pb/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html"
+ data-pb-content-editable="" moat-id="most-sidebar|article-world">
+ <style>
+ .the-most ul.large li{display:none}
+ </style>
+ <div id="the-most-rr" class="the-most">
+ <div class="header-mobile-border"></div>
+ <div class="pb-module-header"> <a class="the-most-sb-header" href="https://www.washingtonpost.com/themost?tid=themost_sb_header">The Most <span class="section">Popular All Over</span></a>
+ <div
+ id="slug_most_tile" style="float:right; position: relative; bottom: 15px;"
+ data-ad-type="most_tile"></div>
+ </div>
+ <ul class="large">
+ <li>
+ <div class="outer-div"> <a target="_blank" href="https://www.thedodo.com/dogs-who-are-smothering-the-cat-with-their-love-1047641763.html"> <img height="60" width="60" class="photo right small-img" src="http://img.washingtonpost.com/wp-apps/imrs.php?src=https://assets.rbl.ms/605929/300x.jpg&amp;h=60&amp;w=60"/> <img height="92" width="138" class="photo right big-img" src="http://img.washingtonpost.com/wp-apps/imrs.php?src=https://assets.rbl.ms/605929/300x.jpg&amp;h=92&amp;w=138"/> </a>
+ <a
+ target="_blank" href="http://www.thedodo.com">
+ <div class="feedname">The Dodo</div>
+ </a> <a target="_blank" href="https://www.thedodo.com/dogs-who-are-smothering-the-cat-with-their-love-1047641763.html"> <div class="line-outer"> <div class="line headline">12 Dogs Who Are Smothering The Cat With Their Love</div> </div> </a>
+ </div>
+ <div class="clear"></div>
+ </li>
+ <li>
+ <div class="outer-div"> <a target="_blank" href="http://www.wnyc.org/story/race-and-latino-americans/"> <img height="60" width="60" class="photo right small-img" src="http://img.washingtonpost.com/wp-apps/imrs.php?src=https://media2.wnyc.org/i/1500/1053/c/80/1/Rodner_Figueroa_getty.jpg&amp;h=60&amp;w=60"/> <img height="92" width="138" class="photo right big-img" src="http://img.washingtonpost.com/wp-apps/imrs.php?src=https://media2.wnyc.org/i/1500/1053/c/80/1/Rodner_Figueroa_getty.jpg&amp;h=92&amp;w=138"/> </a>
+ <a
+ target="_blank" href="http://www.wnyc.org">
+ <div class="feedname">WNYC - New York Public Radio</div>
+ </a> <a target="_blank" href="http://www.wnyc.org/story/race-and-latino-americans/"> <div class="line-outer"> <div class="line headline">'The Deepest, Darkest Secret in the Latino Community'</div> </div> </a>
+ </div>
+ <div class="clear"></div>
+ </li>
+ <li>
+ <div class="outer-div"> <a target="_blank" href="http://feedproxy.google.com/~r/time/topstories/~3/iOi1SUVvooQ/"> <img height="60" width="60" class="photo right small-img" src="http://img.washingtonpost.com/wp-apps/imrs.php?src=https://timedotcom.files.wordpress.com/2015/03/hillary-clinton8.jpg?quality=65&amp;strip=color&amp;w=150&amp;h=60&amp;w=60"/> <img height="92" width="138" class="photo right big-img" src="http://img.washingtonpost.com/wp-apps/imrs.php?src=https://timedotcom.files.wordpress.com/2015/03/hillary-clinton8.jpg?quality=65&amp;strip=color&amp;w=150&amp;h=92&amp;w=138"/> </a>
+ <a
+ target="_blank" href="http://www.time.com">
+ <div class="feedname">TIME</div>
+ </a> <a target="_blank" href="http://feedproxy.google.com/~r/time/topstories/~3/iOi1SUVvooQ/"> <div class="line-outer"> <div class="line headline">Questions Remain After Clinton Camp Discloses Reading Each Email</div> </div> </a>
+ </div>
+ <div class="clear"></div>
+ </li>
+ </ul>
+ <div id="slug_the_most"> <a id="the_most_sub_button" href="https://www.washingtonpost.com/themost?tid=themost_sb_img"
+ target="_blank"> <span>The Most</span> Popular stories around the web </a>
+ </div>
+ <div id="slug_most_logo" data-ad-type="most_logo" style="display:none;"></div>
+ </div>
+ </div>
+ <div id="article-world_1401468865785_892" class="moat-trackable pb-feature pb-chained pb-f-ad-flex-2 pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="" data-pb-name="ad-flex-2" data-pb-content-uri="/pb/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html"
+ data-pb-content-editable="" moat-id="ad-flex-2|article-world">
+ <div id="slug_flex_ss_bb_hp_2" class="pb-ad-container" style="display:none;"
+ data-ad-type-placeholder="flex_ss_bb_hp|2" data-ad-delivery="vi"></div>
+ </div>
+ <div id="article-world_1414481524496_284" class="moat-trackable pb-feature pb-chained pb-f-games-gamesWidget pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="" data-pb-name="games-gamesWidget"
+ data-pb-content-uri="/pb/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html"
+ data-pb-content-editable="" moat-id="games-gamesWidget|article-world">
+ <div class="right-rail game-module position-rel html5">
+ <div class="games-intro">
+ <h4>Our Online Games</h4>
+ <p>Play right from this page</p>
+ </div>
+ <div class="position-abs on-right game-player-container ghide">
+ <div class="position-rel full-width full-height game-player-container-inner overflow-hidden">
+ <iframe frameborder="0"></iframe>
+ <img class="screenshot position-abs on-left"/>
+ </div>
+ <div class="close-button position-abs"><i class="fa fa-2x fa-times-circle"></i>
+
+ </div>
+ </div>
+ <div class="full-width module component">
+ <div class="game-widgets-container position-rel">
+ <div id="online-game-carousel-right-rail">
+ <ul class="games">
+ <li> <a data-toggle="game-trigger" href="javascript:void(0)" class="clear block flash"> <div class="game-item" onlineembeddedgameurl="http://games.washingtonpost.com/API/en-US/games/sudoku/flash?type=gamesembed" onlinegamecodelanguage="flash" iframewidth="650px" iframeheight="470"> <img src="http://cdn.arenaconnect.arkadiumhosted.com/games-storage/sudoku/img/148x148.png" alt="sudoku"/> <div> <h4>Sudoku</h4> <h5>Genre(s):</h5><span>&nbsp;&nbsp;Strategy</span> <p> Put on your Sudoku hat and get ready for a challenging Sudoku puzzle! </p> </div> </div> </a>
+ </li>
+ <li> <a data-toggle="game-trigger" href="javascript:void(0)" class="clear block flash"> <div class="game-item" onlineembeddedgameurl="http://games.washingtonpost.com/API/en-US/games/daily-crossword/flash?type=gamesembed" onlinegamecodelanguage="flash" iframewidth="650px" iframeheight="450"> <img src="http://cdn.arenaconnect.arkadiumhosted.com/games-storage/daily-crossword/img/148x148.png" alt="daily-crossword"/> <div> <h4>Daily Crossword</h4> <h5>Genre(s):</h5><span>&nbsp;&nbsp;Word</span> <p> Same fun of crosswords but online! </p> </div> </div> </a>
+ </li>
+ <li> <a data-toggle="game-trigger" href="javascript:void(0)" class="clear block flash"> <div class="game-item" onlineembeddedgameurl="http://games.washingtonpost.com/API/en-US/games/just-words/flash?type=gamesembed" onlinegamecodelanguage="flash" iframewidth="650px" iframeheight="455"> <img src="http://cdn.arenaconnect.arkadiumhosted.com/games-storage/masque-just-words/img/148x148.png" alt="masque-just-words"/> <div> <h4>Just Words</h4> <h5>Genre(s):</h5><span>&nbsp;&nbsp;Word</span> <p> Get ready to be wowed with wonderful word fun! </p> </div> </div> </a>
+ </li>
+ <li> <a data-toggle="game-trigger" href="javascript:void(0)" class="clear block html5"> <div class="game-item" onlineembeddedgameurl="http://games.washingtonpost.com/API/en-US/games/trizzle/html5?type=gamesembed" onlinegamecodelanguage="html5" iframewidth="650px" iframeheight="0"> <img src="http://cdn.arenaconnect.arkadiumhosted.com/games-storage/html5-trizzle/img/292x194.png" alt="html5-trizzle"/> <div> <h4>Trizzle</h4> <h5>Genre(s):</h5><span>&nbsp;&nbsp;Strategy</span> <p> Experience the joy of Trizzle! </p> </div> </div> </a>
+ </li>
+ </ul>
+ </div> <a href="#" id="ui-carousel-prev" class="up-arrow position-abs on-top on-right"><i class="icon-chevron-up icon-2x"></i></a>
+ <a
+ href="#" id="ui-carousel-next" class="down-arrow position-abs on-bottom on-right"><i class="icon-chevron-down icon-2x"></i>
+
+ </a>
+ </div>
+ </div>
+ <div class="clear"></div>
+ </div>
+ </div>
+ <div id="article-world_1402433037102_568" class="moat-trackable pb-feature pb-chained pb-f-page-editors-picks pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="" data-pb-name="page-editors-picks"
+ data-pb-content-uri="/pb/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html"
+ data-pb-content-editable="" moat-id="page-editors-picks|article-world"></div>
+ <div id="article-world_1399567744669_632" class="moat-trackable pb-feature pb-chained pb-f-page-footer-v2 pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="" data-pb-name="page-footer-v2"
+ data-pb-content-uri="/pb/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html"
+ data-pb-content-editable="" moat-id="page-footer-v2|article-world">
+ <ul class="footer-v2 plain">
+ <li><a href="http://www.washingtonpost.com"><b>washingtonpost.com</b></a>
+
+ </li>
+ <li>© 1996-2015 The Washington Post</li>
+ <li>&nbsp;</li>
+ <li><a href="http://www.washingtonpost.com/actmgmt/help/">Help and Contact Us</a>
+
+ </li>
+ <li><a href="http://www.washingtonpost.com/terms-of-service/2011/11/18/gIQAldiYiN_story.html">Terms of Service</a>
+
+ </li>
+ <li><a href="http://www.washingtonpost.com/privacy-policy/2011/11/18/gIQASIiaiN_story.html">Privacy Policy</a>
+
+ </li>
+ <li><a href="http://www.washingtonpost.com/discussion-and-submission-guidelines/2011/11/21/gIQAuvIbiN_story.html">Submissions and Discussion Policy</a>
+
+ </li>
+ <li><a href="http://www.washingtonpost.com/rss-terms-of-service/2012/01/16/gIQAadFYAQ_story.html">RSS Terms of Service</a>
+
+ </li>
+ <li><a href="http://www.washingtonpost.com/how-can-i-opt-out-of-online-advertising-cookies/2011/11/18/gIQABECbiN_story.html">Ad Choices</a>
+
+ </li>
+ </ul>
+ </div>
+ <div id="article-world_1401468867404_371" class="moat-trackable pb-feature pb-chained pb-f-ad-flex-3 pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="" data-pb-name="ad-flex-3" data-pb-content-uri="/pb/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html"
+ data-pb-content-editable="" moat-id="ad-flex-3|article-world">
+ <div id="slug_flex_ss_bb_hp_3" class="pb-ad-container" style="display:none;"
+ data-ad-type-placeholder="flex_ss_bb_hp|3" data-ad-delivery="vi"></div>
+ </div>
+ </div>
+ </div>
+ <div id="article-world_1401725206101_585" class="moat-trackable pb-layout-item pb-feature pb-three pb-f-article-next-story pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="3" data-pb-name="article-next-story"
+ data-pb-content-uri="/pb/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html"
+ data-pb-content-editable="" moat-id="article-next-story|article-world">
+ <style type="text/css">
+ .pb-f-article-next-story{display:none}
+ </style>
+ </div>
+ <div id="article-world_1401468763231_812" class="moat-trackable pb-layout-item pb-feature pb-three pb-f-ad-leaderboard-2 pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="3" data-pb-name="ad-leaderboard-2"
+ data-pb-content-uri="/pb/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html"
+ data-pb-content-editable="" moat-id="ad-leaderboard-2|article-world">
+ <div id="slug_leaderboard_bottom" data-ad-type="leaderboard_bottom" class="pb-ad-container leaderboard-2"
+ style="display:none;"></div>
+ </div>
+ <div class="pb-scatter">
+ <div id="ro4bz28dpq-m5p8ek5jwssw_1423588705224_776" class="moat-trackable pb-layout-item pb-feature pb-one pb-f-page-clavis pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="1" data-pb-name="page-clavis" data-pb-content-uri="/pb/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html"
+ data-pb-content-editable="" moat-id="page-clavis|article-world">
+ <script>
+ try{if(wp_meta_data){if(!wp_meta_data.clavis){wp_meta_data.clavis={}}(function(){var clavisArray=[];var clavisNames=[];clavisArray.push("RW0");clavisNames.push("Child 2");clavisArray.push("KTT");clavisNames.push("New Auxiliary 30");clavisArray.push("sa6");clavisNames.push("New Auxiliary 37");clavisArray.push("4hr");clavisNames.push("New Auxiliary 38");clavisArray.push("g5c");clavisNames.push("New Auxiliary 39");clavisArray.push("3fv");clavisNames.push("New Auxiliary 40");clavisArray.push("8z8");clavisNames.push("Aux 100714");clavisArray.push("z0s");clavisNames.push("Copy of New Auxiliary 20");clavisArray.push("n8g");clavisNames.push("Copy of New Auxiliary 20");clavisArray.push("5k4");clavisNames.push("China_HongKong%20Exclusion%2012-12-14");clavisArray.push("7f3");clavisNames.push("Copy of New Auxiliary 26");clavisArray.push("pvj");clavisNames.push("New Auxiliary 46");wp_meta_data.clavis.auxiliaries=clavisArray;wp_meta_data.clavis.auxiliary_names=clavisNames})()}}catch(e){};
+ </script>
+ </div>
+ <div id="ro4bz28dpq-m5p8ek5jwssw_1424205842653_120" class="moat-trackable pb-layout-item pb-feature pb-one pb-f-page-targeting pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="1" data-pb-name="page-targeting"
+ data-pb-content-uri="/pb/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html"
+ data-pb-content-editable="" moat-id="page-targeting|article-world">
+ <script type="text/javascript">
+ (function($){TWP=window.TWP||{};TWP.Features=TWP.Features||{};TWP.Features.Page=TWP.Features.Page||{};TWP.Features.Page.Targeting={};TWP.Features.Page.Targeting.endpointServer="https://targeting.wpdigital.net/TargetingWebAPP/targeting"})(jQuery);
+ </script>
+ </div>
+ </div>
+ <div id="ro4bz28dpq-m5p8ek5jwssw_1425456124259_799" class="moat-trackable pb-layout-item pb-feature pb-three pb-f-page-subscription pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="3" data-pb-name="page-subscription"
+ data-pb-content-uri="/pb/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html"
+ data-pb-content-editable="" moat-id="page-subscription|article-world">
+ <div id="subscription-banner" class="ab-test-subscription-banner banner"
+ style="display: none;">
+ <div class="wp-logo"> <a href="http://www.washingtonpost.com?nid=top_pb_wplogo">The Washington Post</a>
+ </div>
+ <div class="banner-content">
+ <p class="subscribe-headline">Every story. Every feature. Every insight.</p>
+ <p class="subscribe-tagline">Yours for as low as JUST 99¢!</p> <a href="https://subscribe.washingtonpost.com/acquisition/?promo=dgdefault_bannertest1&amp;view=1&amp;wpsrc=CM0000262&amp;ttexclude=1&amp;hl=hl2N99"
+ id="subscribe-btn" class="submit-btn subscribe"> Subscribe </a> <span class="not-now-btn subscribe"> <p class="label">Not Now</p> <a class="link"><i class="fa fa-times"></i></a> </span>
+ </div>
+ </div>
+ <div id="signup-banner" class="ab-test-signup-banner banner" style="display: none;">
+ <p id="newsletter-banner-section">world</p>
+ <p id="newsletter-banner-subsection">middle_east</p>
+ <p id="newsletter-banner-blogname"></p>
+ <div class="wp-logo"> <a href="http://www.washingtonpost.com?nid=top_pb_wplogo">The Washington Post</a>
+ </div>
+ <div class="banner-content">
+ <div class="signup-title">
+ <p class="signup-headline" id="newsletter-headline-banner"></p>
+ <p class="signup-tagline" id="newsletter-tagline-banner"></p>
+ </div>
+ <form method="post" action="http://link.washingtonpost.com/s" id="signup-form">
+ <input type="text" name="email" class="signup-field" placeholder="E-mail address"
+ id="newsLetter-input-banner"/>
+ <input type="submit" value="Add" class="submit-btn signup" id="signup-newsLetter"/>
+ <input type="hidden" name="template" value="" id="template-var-banner"/>
+ <input type="hidden" name="vars[simple_signup]" value="1"/>
+ <input type="hidden" name="vars[simple]" value="2" id="banner-simple-var"/>
+ <input type="hidden" name="" value="1" id="variable-var-banner"/>
+ <input type="hidden" name="redirect" value="" id="redirect-url-banner"/>
+ </form>
+ <div class="clear"></div>
+ <div class="newsletter-suggestions">
+ <p class="title">You might also like:</p>
+ <div class="suggestion-list">
+ <div class="suggestion">
+ <input type="checkbox" class="checkbox"/>
+ <p class="title">Name of Related Newsletter (daily)</p>
+ </div>
+ <div class="suggestion">
+ <input type="checkbox" class="checkbox"/>
+ <p class="title">Another Related Newsletter (M-W-F)</p>
+ </div>
+ <div class="suggestion">
+ <input type="checkbox" class="checkbox"/>
+ <p class="title">This Newsletter is Good (weekly)</p>
+ </div>
+ </div>
+ <div class="suggestion-buttons">
+ <input type="submit" value="No, thanks" class="submit-btn signup" id="signup-cancel"/>
+ <input type="submit" value="Sign Up" class="submit-btn signup" id="signup-more"/>
+ </div>
+ </div> <span class="not-now-btn subscribe"> <p class="label">Not Now</p> <a class="link"><i class="fa fa-times"></i></a> </span>
+ </div>
+ <p class="newsLetter-error-msg-banner">Incorrect email</p>
+ </div>
+ </div>
+ <div id="article-world_1415647172638_51" class="moat-trackable pb-layout-item pb-feature pb-three pb-f-bi-abtest pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="3" data-pb-name="bi-abtest" data-pb-content-uri="/pb/world/gunmen-storm-museum-in-tunisia-killing-at-least-8/2015/03/18/00202e76-cd73-11e4-8730-4f473416e759_story.html"
+ data-pb-content-editable="" moat-id="bi-abtest|article-world">
+ <script>
+ var TWP=window.TWP||{};(function(w,usrValue,undefined){var usr=w.TWP.ABTestUser=usrValue;w._abtemptyfn=function(){return undefined}})(window,{trackPageviewEventBefore:"onTwpMeterComplete.omniture"||"abtest-noevent",trackPageviewEventAfter:"afterTwpPageTrack.omniture"||"abtest-noevent",trackSetHandler:"TWP.ABTestMfr.track.omniture.trackSetHandler"||"_abtemptyfn",trackUnsetHandler:"TWP.ABTestMfr.track.omniture.trackUnsetHandler"||"_abtemptyfn",trackSendHandler:"s.sendDataToOmniture"||"_abtemptyfn",trackValueDelimeter:","||","});
+ </script>
+ <script>
+ TWP.ABTestBucket=TWP.ABTestBucket||[];TWP.ABTestBucket.push({"name":"recommendation","features":[{"name":"recommendation-strip","active":true,"increment":0,"end":"1424062800000","_token":"76dde4","defaultTrack":[{"name":"list1","dynamic":false,"value":"recommendation-strip:default"},{"name":"prop56","dynamic":false,"value":"recommendation-strip:default"},{"name":"list1","dynamic":false,"value":"recommendation-strip-76dde4"},{"name":"prop56","dynamic":false,"value":"recommendation-strip-76dde4"}],"variations":[{"customOptions":{"target":"33"},"name":"alt1","track":[{"name":"list1","dynamic":false,"value":"recommendation-strip:alt1"},{"name":"prop56","dynamic":false,"value":"recommendation-strip:alt1"},{"name":"list1","dynamic":false,"value":"recommendation-strip-76dde4"},{"name":"prop56","dynamic":false,"value":"recommendation-strip-76dde4"}]},{"customOptions":{"target":"33"},"name":"sidebar_alt1","track":[{"name":"list1","dynamic":false,"value":"recommendation-strip:sidebar_alt1"},{"name":"prop56","dynamic":false,"value":"recommendation-strip:sidebar_alt1"},{"name":"list1","dynamic":false,"value":"recommendation-strip-76dde4"},{"name":"prop56","dynamic":false,"value":"recommendation-strip-76dde4"}]}]},{"name":"recommendation-mostread","active":true,"increment":1,"end":"1425013200000","_token":"5af7e9","defaultTrack":[{"name":"list1","dynamic":false,"value":"recommendation-mostread:default"},{"name":"prop56","dynamic":false,"value":"recommendation-mostread:default"},{"name":"list1","dynamic":false,"value":"recommendation-mostread-5af7e9"},{"name":"prop56","dynamic":false,"value":"recommendation-mostread-5af7e9"}],"variations":[{"customOptions":{"target":"5"},"name":"chartbeat","track":[{"name":"list1","dynamic":false,"value":"recommendation-mostread:chartbeat"},{"name":"prop56","dynamic":false,"value":"recommendation-mostread:chartbeat"},{"name":"list1","dynamic":false,"value":"recommendation-mostread-5af7e9"},{"name":"prop56","dynamic":false,"value":"recommendation-mostread-5af7e9"}]}]}],"disabled":false});TWP.ABTestBucket.push({"name":"dummy","features":[{"name":"dummy-feature","active":true,"reglock":false,"end":"1418965200000","throttle":3.3333333333333335,"_token":"14376b","defaultTrack":[{"name":"list1","dynamic":false,"value":"dummy-feature:default"},{"name":"list1","dynamic":false,"value":"dummy-feature-14376b"}],"variations":[{"customOptions":{"target":"20"},"name":"easy1","track":[{"name":"list1","dynamic":false,"value":"dummy-feature:easy1"},{"name":"list1","dynamic":false,"value":"dummy-feature-14376b"}]},{"customOptions":{"target":"10"},"name":"easy2","track":[{"name":"list1","dynamic":false,"value":"dummy-feature:easy2"},{"name":"list1","dynamic":false,"value":"dummy-feature-14376b"}]}]}],"disabled":false});TWP.ABTestBucket.push({"name":"header","features":[{"name":"header-mastHead2","active":false,"increment":0,"end":"1416805200000","_token":"c15b6c","blacklist":{"referrers":["","washingtonpost.com"],"track":[{"name":"list1","dynamic":false,"value":"header-mastHead2:direct"}]},"defaultTrack":[{"name":"list1","dynamic":false,"value":"header-mastHead2:default"},{"name":"list1","dynamic":false,"value":"header-mastHead2-c15b6c"}],"variations":[{"customOptions":{"target":"5"},"name":"logoLarge","track":[{"name":"list1","dynamic":false,"value":"header-mastHead2:logoLarge"},{"name":"list1","dynamic":false,"value":"header-mastHead2-c15b6c"}]}]},{"name":"header-leaderboard","active":false,"increment":0,"end":"1423630800000","_token":"1f6567","defaultTrack":[{"name":"list1","dynamic":false,"value":"header-leaderboard:default"},{"name":"list1","dynamic":false,"value":"header-leaderboard-1f6567"}],"variations":[{"customOptions":{"target":"20"},"name":"below_sharebar","track":[{"name":"list1","dynamic":false,"value":"header-leaderboard:below_sharebar"},{"name":"list1","dynamic":false,"value":"header-leaderboard-1f6567"}]}]}],"disabled":false});TWP.ABTestBucket.push({"name":"subscription","features":[{"name":"subscription-popup","active":false,"increment":0,"end":"1425531600000","_token":"cb51bd","defaultTrack":[{"name":"list1","dynamic":false,"value":"subscription-popup:default"},{"name":"prop56","dynamic":false,"value":"subscription-popup:default"},{"name":"list1","dynamic":false,"value":"subscription-popup-cb51bd"},{"name":"prop56","dynamic":false,"value":"subscription-popup-cb51bd"}],"variations":[{"customOptions":{"target":"20"},"name":"enabled","track":[{"name":"list1","dynamic":false,"value":"subscription-popup:enabled"},{"name":"prop56","dynamic":false,"value":"subscription-popup:enabled"},{"name":"list1","dynamic":false,"value":"subscription-popup-cb51bd"},{"name":"prop56","dynamic":false,"value":"subscription-popup-cb51bd"}]}]},{"name":"subscription-mobilePopup","active":true,"increment":0,"end":"1426132800000","_token":"26a8c3","defaultTrack":[{"name":"list1","dynamic":false,"value":"subscription-mobilePopup:default"},{"name":"prop56","dynamic":false,"value":"subscription-mobilePopup:default"},{"name":"list1","dynamic":false,"value":"subscription-mobilePopup-26a8c3"},{"name":"prop56","dynamic":false,"value":"subscription-mobilePopup-26a8c3"}],"variations":[{"customOptions":{"target":"5"},"name":"enabled","track":[{"name":"list1","dynamic":false,"value":"subscription-mobilePopup:enabled"},{"name":"prop56","dynamic":false,"value":"subscription-mobilePopup:enabled"},{"name":"list1","dynamic":false,"value":"subscription-mobilePopup-26a8c3"},{"name":"prop56","dynamic":false,"value":"subscription-mobilePopup-26a8c3"}]}]},{"name":"subscription-rightRailText","active":false,"increment":0,"end":"1425618000000","_token":"419734","defaultTrack":[{"name":"list1","dynamic":false,"value":"subscription-rightRailText:default"},{"name":"prop56","dynamic":false,"value":"subscription-rightRailText:default"},{"name":"list1","dynamic":false,"value":"subscription-rightRailText-419734"},{"name":"prop56","dynamic":false,"value":"subscription-rightRailText-419734"}],"variations":[{"customOptions":{"target":"25"},"name":"version2","track":[{"name":"list1","dynamic":false,"value":"subscription-rightRailText:version2"},{"name":"prop56","dynamic":false,"value":"subscription-rightRailText:version2"},{"name":"list1","dynamic":false,"value":"subscription-rightRailText-419734"},{"name":"prop56","dynamic":false,"value":"subscription-rightRailText-419734"}]},{"customOptions":{"target":"25"},"name":"version3","track":[{"name":"list1","dynamic":false,"value":"subscription-rightRailText:version3"},{"name":"prop56","dynamic":false,"value":"subscription-rightRailText:version3"},{"name":"list1","dynamic":false,"value":"subscription-rightRailText-419734"},{"name":"prop56","dynamic":false,"value":"subscription-rightRailText-419734"}]},{"customOptions":{"target":"25"},"name":"version4","track":[{"name":"list1","dynamic":false,"value":"subscription-rightRailText:version4"},{"name":"prop56","dynamic":false,"value":"subscription-rightRailText:version4"},{"name":"list1","dynamic":false,"value":"subscription-rightRailText-419734"},{"name":"prop56","dynamic":false,"value":"subscription-rightRailText-419734"}]}]},{"name":"subscription-abcde","active":true,"increment":0,"end":"1428292800000","_token":"4748dc","defaultTrack":[{"name":"list1","dynamic":false,"value":"subscription-abcde:default"},{"name":"prop56","dynamic":false,"value":"subscription-abcde:default"},{"name":"list1","dynamic":false,"value":"subscription-abcde-4748dc"},{"name":"prop56","dynamic":false,"value":"subscription-abcde-4748dc"}],"variations":[{"customOptions":{"target":"4"},"name":"subPopup","track":[{"name":"list1","dynamic":false,"value":"subscription-abcde:subPopup"},{"name":"prop56","dynamic":false,"value":"subscription-abcde:subPopup"},{"name":"list1","dynamic":false,"value":"subscription-abcde-4748dc"},{"name":"prop56","dynamic":false,"value":"subscription-abcde-4748dc"}]},{"customOptions":{"target":"2"},"name":"newsletterPopup","track":[{"name":"list1","dynamic":false,"value":"subscription-abcde:newsletterPopup"},{"name":"prop56","dynamic":false,"value":"subscription-abcde:newsletterPopup"},{"name":"list1","dynamic":false,"value":"subscription-abcde-4748dc"},{"name":"prop56","dynamic":false,"value":"subscription-abcde-4748dc"}]},{"customOptions":{"target":"2"},"name":"inArticle","track":[{"name":"list1","dynamic":false,"value":"subscription-abcde:inArticle"},{"name":"prop56","dynamic":false,"value":"subscription-abcde:inArticle"},{"name":"list1","dynamic":false,"value":"subscription-abcde-4748dc"},{"name":"prop56","dynamic":false,"value":"subscription-abcde-4748dc"}]},{"customOptions":{"target":"2"},"name":"popupInArticle","track":[{"name":"list1","dynamic":false,"value":"subscription-abcde:popupInArticle"},{"name":"prop56","dynamic":false,"value":"subscription-abcde:popupInArticle"},{"name":"list1","dynamic":false,"value":"subscription-abcde-4748dc"},{"name":"prop56","dynamic":false,"value":"subscription-abcde-4748dc"}]}]}],"disabled":false});
+ </script>
+ <script>
+ (function ABTestMfrAnonymous($,TWP,window,undefined){var user=TWP.ABTestUser;var ABTM={};var trk=ABTM.track={};var omni=trk.omniture={trackSetHandler:function(props){if(!!window.s){var pn;for(pn in props){if(props.hasOwnProperty(pn)){s[pn]=(s[pn]?[s[pn],props[pn]]:[props[pn]]).join(user.trackValueDelimeter);if(/evar/gi.test(pn)){window["wp_"+pn.toLowerCase()]=props[pn]}}}}},trackUnsetHandler:function(props){if(!!window.s){var pn;for(pn in props){if(props.hasOwnProperty(pn)){s[pn]=(s[pn]||"").replace(("string"==typeof props[pn]?[props[pn]]:props[pn]).join(user.trackValueDelimeter),"");if(!s[pn]){s[pn]=undefined}if(/evar/gi.test(pn)){window["wp_"+pn.toLowerCase()]=undefined}}}}},trackSendHandler:function(customLinkName,events,props){if(!!window.s){var originalValues={};originalValues.events=s.events;originalValues.linkTrackEvents=s.linkTrackEvents;if(events){s.events=("string"===typeof events?[events]:events).join(user.trackValueDelimeter)||undefined;s.linkTrackEvents=s.events}omni.trackSetHandler(props);s.tl(true,"o",customLinkName,{linkTrackVars:function(){var results=[];if(events){results.push("events")}var name;for(name in props){if(props.hasOwnProperty(name)){results.push(name)}}return results.join(user.trackValueDelimeter)}()});s.events=originalValues.events;s.linkTrackEvents=originalValues.linkTrackEvents;omni.trackUnsetHandler(props)}}};TWP.ABTestMfr=ABTM})(jQuery,TWP,window);
+ </script>
+ </div>
+ </div>
+ <script src="//js.washingtonpost.com/wp-srv/ad/loaders/latest/js/min/loader.min.js"
+ async="" data-ad-page-type="responsive" data-ad-site="wp"></script>
+ <script type="text/javascript" src="/pb/resources/compact/template/rO4BZ28dpQ-m5p8EK5JWSsw/javascripts/cd3facb93dab53ddfe1ce0ea3bacb2a3.js?_=f4b3d2"></script>
+ <script type="text/javascript" src="/pb/resource/footjs-rO4BZ28dpQ-m5p8EK5JWSsw-6de5b76f.js?_=f4b3d2"></script>
+ <script type="text/javascript" src="/pb/resource/instancejs-rO4BZ28dpQ-m5p8EK5JWSsw-6de5b76f.js?_=f4b3d2"></script>
+ <script type="text/javascript">
+ window.TWPHead.ready("main.js",function(){window.TWP&&TWP.Analytics&&TWP.Analytics.init("production"=="production"?"":{suite:"preproduction"})});
+ </script>
+ <noscript>
+ <img src="http://b.scorecardresearch.com/p?c1=2&c2=3005617&cv=2.0&cj=1" />
+ </noscript>
+ <script type="text/javascript" src="//widget.perfectmarket.com/wwwwashingtonpost/load.js"></script>
+ <script type="text/javascript">
+ (function($){try{if((!!window.localStorage&&!!localStorage.opbandit&&localStorage.opbandit=="F")){$.ajax({dataType:"script",cache:true,url:"//data.opbandit.com/loader.min.js?key=3e6382b012abc555",success:function(data){}})}var $tweetAuthors=$(".tweet-authors");if((!!$tweetAuthors.size()&&!window.twttr)){$.ajax({dataType:"script",cache:true,url:"//platform.twitter.com/widgets.js",success:function(data){$tweetAuthors.find(".pb-twitter-follow.unprocessed").removeClass("unprocessed")}})}$.ajax({dataType:"script",cache:true,url:"//ak.sail-horizon.com/horizon/v1.js",success:function(data){if(window.Sailthru){Sailthru.setup({domain:"horizon.washingtonpost.com"})}}})}catch(e){}})(jQuery);
+ </script>
+ <script type="text/javascript">
+ !function(){if(!(Math.floor(100*Math.random())>99)){var a,b,c,d="//js.washingtonpost.com/wp-stat/rum/wprum.min.js",e=document.createElement("iframe");e.src="javascript:false",(e.frameElement||e).style.cssText="width: 0; height: 0; border: 0";var c=document.getElementsByTagName("script")[0];c.parentNode.insertBefore(e,c);try{b=e.contentWindow.document}catch(f){a=document.domain,e.src="javascript:var d=document.open();d.domain='"+a+"';void(0);",b=e.contentWindow.document}b.open()._l=function(){var b=this.createElement("script");a&&(this.domain=a),b.id="boomr-if-as",b.src=d,this.body.appendChild(b)},b.write('&lt;body onload="document._l();">'),b.close()}}();
+ </script>
+ </body>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wapo-2/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wapo-2/expected-images.json
new file mode 100644
index 000000000..a8602d503
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wapo-2/expected-images.json
@@ -0,0 +1,5 @@
+[
+ "http:\/\/img.washingtonpost.com\/rw\/2010-2019\/WashingtonPost\/2015\/03\/18\/National-Economy\/Images\/Nic6429750-1138.jpg",
+ "https:\/\/img.washingtonpost.com\/rf\/image_400w\/2010-2019\/WashingtonPost\/2015\/03\/18\/National-Economy\/Images\/Nic6429750-1140.jpg?uuid=zLIZQs2KEeSip5UXo6cFBg",
+ "http:\/\/img.washingtonpost.com\/wp-apps\/imrs.php?src=http:\/\/www.washingtonpost.com\/blogs\/wonkblog\/files\/2014\/07\/mufson_steve.jpg&h=180&w=180"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wapo-2/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wapo-2/expected-metadata.json
new file mode 100644
index 000000000..57f81c1dc
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wapo-2/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "By Steven Mufson",
+ "Direction": null,
+ "Excerpt": "Few foreign leaders have so brazenly stood up to President Obama and the relationship could face its next test this month.",
+ "Image": "http:\/\/img.washingtonpost.com\/rw\/2010-2019\/WashingtonPost\/2015\/03\/18\/National-Economy\/Images\/Nic6429750-1138.jpg",
+ "Title": "Where do strained U.S.-Israeli relations go after Netanyahu’s victory?",
+ "SiteName": "Washington Post"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wapo-2/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wapo-2/expected.html
new file mode 100644
index 000000000..cb2a8ceda
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wapo-2/expected.html
@@ -0,0 +1,101 @@
+<p><a name="1c164a7079bfe20ebd611d79f96418b5a225cbc6"></a>
+ <img data-hi-res-src="https://img.washingtonpost.com/rf/image_1484w/2010-2019/WashingtonPost/2015/03/18/National-Economy/Images/Nic6429750-1140.jpg?uuid=zLIZQs2KEeSip5UXo6cFBg" data-low-res-src="https://img.washingtonpost.com/rf/image_400w/2010-2019/WashingtonPost/2015/03/18/National-Economy/Images/Nic6429750-1140.jpg?uuid=zLIZQs2KEeSip5UXo6cFBg" src="https://img.washingtonpost.com/rf/image_400w/2010-2019/WashingtonPost/2015/03/18/National-Economy/Images/Nic6429750-1140.jpg?uuid=zLIZQs2KEeSip5UXo6cFBg"></img><br></br><span>Israeli Prime Minister Benjamin Netanyahu reacts as he visits the Western Wall in Jerusalem on March 18 following his party's victory in Israel's general election. (Thomas Coex/AFP/Getty Images)</span>
+ </p><article><p>President Obama told the U.N. General Assembly 18 months ago that he would
+ seek “real breakthroughs on these two issues — Iran’s nuclear program and
+ ­Israeli-Palestinian peace.”</p>
+ <p>But <a href="http://www.washingtonpost.com/world/netanyahu-sweeps-to-victory-in-israeli-election/2015/03/18/af4e50ca-ccf2-11e4-8730-4f473416e759_story.html" title="www.washingtonpost.com">Benjamin Netanyahu’s triumph</a> in Tuesday’s
+ parliamentary elections keeps in place an Israeli prime minister who has
+ declared his intention to resist Obama on both of these fronts, guaranteeing
+ two more years of difficult diplomacy between leaders who barely conceal
+ their personal distaste for each other.</p>
+ <p>The Israeli election results also suggest that most voters there support
+ Netanyahu’s tough stance on U.S.-led negotiations to limit Iran’s nuclear
+ program and his vow on Monday that there would be <a href="http://www.washingtonpost.com/world/middle_east/on-final-day-of-campaign-netanyahu-says-no-palestinian-state-if-he-wins/2015/03/16/4f4468e8-cbdc-11e4-8730-4f473416e759_story.html" title="www.washingtonpost.com">no independent Palestinian state</a> as long
+ as he is prime minister.</p>
+ <p>“On the way to his election victory, Netanyahu broke a lot of crockery
+ in the relationship,” said Martin Indyk, executive vice president of the
+ Brookings Institution and a former U.S. ambassador to Israel. “It can’t
+ be repaired unless both sides have an interest and desire to do so.”</p>
+ <p>Aside from Russian President Vladi­mir Putin, few foreign leaders so brazenly
+ stand up to Obama and even fewer among longtime allies.</p>
+ <div>
+
+ <p><span>Israeli Prime Minister Benjamin Netanyahu pledged to form a new governing coalition quickly after an upset election victory that was built on a shift to the right. (Reuters)</span>
+ </p>
+ </div>
+ <p>In the past, Israeli leaders who risked damaging the country’s most important
+ relationship, that with Washington, tended to pay a price. In 1991, when
+ Prime Minister Yitzhak Shamir opposed the Madrid peace talks, President
+ George H.W. Bush held back loan guarantees to help absorb immigrants from
+ the former Soviet Union. Shamir gave in, but his government soon collapsed.</p>
+ <p>But this time, Netanyahu was not hurt by his personal and substantive
+ conflicts with the U.S. president.</p>
+ <p>“While the United States is loved and beloved in Israel, President Obama
+ is not,” said Robert M. Danin, a senior fellow at the Council on Foreign
+ Relations. “So the perceived enmity didn’t hurt the way it did with Shamir
+ when he ran afoul of Bush in ’91.”</p>
+ <p>Where do U.S.-Israeli relations go from here?</p>
+ <p>In the immediate aftermath of Tuesday’s elections, tensions between the
+ two sides continued to run hot. The Obama administration’s first comments
+ on the Israeli election came with a tough warning about some of the pre-election
+ rhetoric from Netanyahu’s Likud party, which tried to rally right-wing
+ support by saying that Arab Israeli voters were “coming out in droves.”</p>
+ <p>“The United States and this administration is deeply concerned about rhetoric
+ that seeks to marginalize Arab Israeli citizens,” White House press secretary
+ Josh Earnest told reporters aboard Air Force One. “It undermines the values
+ and democratic ideals that have been important to our democracy and an
+ important part of what binds the United States and Israel together.”</p>
+ <p>Earnest added that Netan­yahu’s election-eve disavowal of a two-state
+ solution for Israelis and Palestinians would force the administration to
+ reconsider its approach to peace in the region.</p>
+
+ <p>Over the longer term, a number of analysts say that Obama and Netan­yahu
+ will seek to play down the friction between them and point to areas of
+ continuing cooperation on military and economic issues.</p>
+ <p>“Both sides are going to want to turn down the rhetoric,” Danin said.
+ “But it is also a structural problem. They have six years of accumulated
+ history. That’s going to put limits on how far they can go together.”</p>
+ <p>The first substantive test could come as early as this month, when the
+ United States hopes that it can finish hammering out the framework of an
+ agreement with Iran.</p>
+ <p>Netanyahu strongly warned against making a “bad deal” during his March
+ 3 address to a joint meeting of Congress, an appearance arranged by Republican
+ congressional leaders and criticized by the Obama administration for making
+ U.S.-Israeli relations partisan on both sides so close to the Israeli election.</p>
+ <p>If a deal is reached and does not pass muster with Netanyahu, he is likely
+ to work with congressional Republicans to try to scuttle the accord.</p>
+ <p>“The Republicans have said they will do what they can to block a deal,
+ and the prime minister has already made clear that he will work with the
+ Republicans against the president,” Indyk said. “That’s where a clash could
+ come, and it’s coming very quickly.”</p>
+ <p>The second test — talks with Palestinians — could be even more difficult.
+ In his September 2013 address to the United Nations, Obama hailed signs
+ of hope.</p>
+ <p>“Already, Israeli and Palestinian leaders have demonstrated a willingness
+ to take significant political risks,” Obama said in his speech. Palestinian
+ Authority President Mahmoud Abbas “has put aside efforts to shortcut the
+ pursuit of peace and come to the negotiating table. Prime Minister Netanyahu
+ has released Palestinian prisoners and reaffirmed his commitment to a Palestinian
+ state.”</p>
+ <p>Today, <a href="http://www.washingtonpost.com/blogs/worldviews/wp/2015/03/18/what-netanyahus-election-victory-means-for-the-palestinians/" title="www.washingtonpost.com">the signals could not differ more</a>. The
+ Palestinian Authority has said that after it joins the International Criminal
+ Court at The Hague on April 1, it will press war crimes charges against
+ Israel for the bloody Gaza conflict during the summer. Israel, which controls
+ tax receipts, has pledged to punish the Palestinian Authority by freezing
+ its tax revenue.</p>
+ <p>The United States, which gives hundreds of millions of dollars of economic
+ aid to the Palestinian Authority, would be caught in the middle. It has
+ been trying to persuade both sides to stand down, but Netanyahu’s declaration
+ that there would be no Palestinian state on his watch makes that more difficult.</p>
+ <p>“Now it’s hard to see what could persuade the Palestinians” to hold up
+ on their ICC plans, Indyk said. “That has nothing to do with negotiations,
+ but if both sides can’t be persuaded to back down, then they will be on
+ a trajectory that could lead to the collapse of the Palestinian Authority
+ because it can’t pay wages anymore.</p>
+ <p>“That could be an issue forced onto the agenda about the same time as
+ a potential nuclear deal.”</p>
+
+ </article><div><p><a href="http://www.washingtonpost.com/people/steven-mufson"><img src="http://img.washingtonpost.com/wp-apps/imrs.php?src=http://www.washingtonpost.com/blogs/wonkblog/files/2014/07/mufson_steve.jpg&amp;h=180&amp;w=180"></img></a></p><p>Steven Mufson covers the White House. Since joining The Post, he has covered
+ economics, China, foreign policy and energy.</p>
+
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wapo-2/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wapo-2/source.html
new file mode 100644
index 000000000..1d4dd7bdb
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wapo-2/source.html
@@ -0,0 +1,1038 @@
+<!DOCTYPE html>
+<html>
+
+ <head>
+ <meta name="eomportal-uuid" content="ca175d64-cd76-11e4-a2a7-9517a3a70506"/>
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
+ <meta charset="utf-8"/>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes, minimum-scale=0.5, maximum-scale=2.0"/>
+ <meta name="keywords" content="business"/>
+ <meta name="description" content="Few foreign leaders have so brazenly stood up to President Obama and the relationship could face its next test this month."/>
+ <meta name="news_keywords" content="business"/>
+ <meta name="twitter:site" value="@WashingtonPost"/>
+ <meta name="twitter:card" content="summary_large_image"/>
+ <meta property="og:description" content="Few foreign leaders have so brazenly stood up to President Obama and the relationship could face its next test this month."/>
+ <meta property="og:type" content="article"/>
+ <meta property="og:site_name" content="Washington Post"/>
+ <meta property="og:image" content="http://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/National-Economy/Images/Nic6429750-1138.jpg"/>
+ <meta property="og:title" content="Where do strained U.S.-Israeli relations go after Netanyahu’s victory?"/>
+ <meta property="article:publisher" content="https://www.facebook.com/washingtonpost"/>
+ <meta property="fb:admins" content="1513210492"/>
+ <meta property="fb:app_id" content="41245586762"/>
+ <meta property="fb:admins" content="1244584375"/>
+ <meta property="fb:admins" content="4403963"/>
+ <meta property="fb:admins" content="2724956"/>
+ <meta property="fb:admins" content="500835072"/>
+ <meta property="og:url" content="http://www.washingtonpost.com/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html"/>
+ <meta name="section" content="/world/middle_east"/>
+ <meta name="commercialNode" content="/business/economy"/>
+ <link rel="canonical" href="http://www.washingtonpost.com/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html"/>
+ <link rel="alternate" href="android-app://com.washingtonpost.android/wp-android/www.washingtonpost.com/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html"/>
+ <title>Where do strained U.S.-Israeli relations go after Netanyahu’s victory?
+ - The Washington Post</title>
+ <meta property="twitter:creator" content="@StevenMufson"/>
+ <!--[if (gt IE 8) | (IEMobile)]>
+ <!-->
+ <link rel="stylesheet" href="/pb/resources/css/headerfonts.css?_=f4b3d2"/>
+ <!--<![endif]-->
+ <!--[if (lt IE 9) & (!IEMobile)]><link rel="stylesheet" href="/pb/resources/css/headerfonts_ie.css?_=f4b3d2"/><![endif]-->
+ <link rel="stylesheet" href="/pb/resources/compact/type/default/styles/bc9d233e62887b11846ddc11bf4175c8.css?_=f4b3d2"/>
+ <link rel="stylesheet" href="/pb/resources/compact/template/rZcHWoZzuToaTieQLcQMUOw/styles/ca81b2e4d5b093e7f72fbfe70484081e.css?_=f4b3d2"/>
+ <link rel="stylesheet" href="/pb/resource/style-rZcHWoZzuToaTieQLcQMUOw-6de5b76f.css?_=f4b3d2"/>
+ <script>
+ window.head_conf={head:"TWPHead"};
+ </script>
+ <script src="/pb/resources/js/head.min.js"></script>
+ <script type="text/javascript" src="/pb/resources/compact/type/default/headJS/068d3c1f0e80ba3b4dc4a0d195ab9bcb.js?_=f4b3d2"></script>
+ <script type="text/javascript" src="/pb/resource/headjs-rZcHWoZzuToaTieQLcQMUOw-6de5b76f.js?_=f4b3d2"></script>
+ <script>
+ (function(r){r.pageName="";r.templateName="rZcHWoZzuToaTieQLcQMUOw";r.contextPath="/pb";r.isAdmin=false;r.layoutEngineName="off";r.environment="production"}(window.wp_pb||{}));var commercialNode="/business/economy";
+ </script>
+ <script type="text/javascript">
+ wp_pb=window.wp_pb||{};var isMobile={Android:function(){return navigator.userAgent.match(/Android/i)?true:false},AndroidOld:function(){return navigator.userAgent.match(/Android 2.3.3/i)?true:false},AndroidTablet:function(){return(navigator.userAgent.match(/Android/i)&&!navigator.userAgent.match(/Mobile/i))?true:false},Kindle:function(){return navigator.userAgent.match(/Kindle/i)?true:false},KindleFire:function(){return navigator.userAgent.match(/KFOT/i)?true:false},Silk:function(){return navigator.userAgent.match(/Silk/i)?true:false},BlackBerry:function(){return navigator.userAgent.match(/BlackBerry/i)?true:false},iOS:function(){return navigator.userAgent.match(/iPhone|iPad|iPod/i)?true:false},iPhone:function(){return navigator.userAgent.match(/iPhone|iPod/i)?true:false},iPad:function(){return navigator.userAgent.match(/iPad/i)?true:false},Windows:function(){return navigator.userAgent.match(/IEMobile/i)?true:false},FirefoxOS:function(){return(navigator.userAgent.match(/Mozilla/i)&&navigator.userAgent.match(/Mobile/i))?true:false},Retina:function(){return(window.retina||window.devicePixelRatio>1)?true:false},any:function(){return(isMobile.Android()||isMobile.Kindle()||isMobile.KindleFire()||isMobile.Silk()||isMobile.BlackBerry()||isMobile.iOS()||isMobile.Windows()||isMobile.FirefoxOS())},all:function(){return(navigator.userAgent)},tablet:function(){return(isMobile.AndroidTablet()||isMobile.iPad()||isMobile.Kindle()||isMobile.KindleFire()||isMobile.Silk())}};var mobile_browser=isMobile.any()?1:0,iphone_browser=isMobile.iPhone()?1:0,ipad_browser=isMobile.iPad()?1:0,android_browser=isMobile.Android()?1:0,android233_browser=isMobile.AndroidOld()?1:0,kindle_browser=isMobile.Kindle()?1:0,retina_browser=isMobile.Retina()?1:0,mobile_tablet=isMobile.tablet()?1:0;TWP=window.TWP||{};TWP.PostTV=TWP.PostTV||{};TWP.PostTV.BrowserInfo=TWP.PostTV.BrowserInfo||{init:function(){this.browser=this.searchString(this.dataBrowser)||"An unknown browser";this.version=this.searchVersion(navigator.userAgent)||this.searchVersion(navigator.appVersion)||"an unknown version";this.OS=this.searchString(this.dataOS)||"an unknown OS"},searchString:function(data){for(var i=0;i&lt;data.length;i++){var dataString=data[i].string;var dataProp=data[i].prop;this.versionSearchString=data[i].versionSearch||data[i].identity;if(dataString){if(dataString.indexOf(data[i].subString)!=-1){return data[i].identity}}else{if(dataProp){return data[i].identity}}}},searchVersion:function(dataString){var index=dataString.indexOf(this.versionSearchString);if(index==-1){return}return parseFloat(dataString.substring(index+this.versionSearchString.length+1))},dataBrowser:[{string:navigator.userAgent,subString:"Chrome",identity:"Chrome"},{string:navigator.userAgent,subString:"OmniWeb",versionSearch:"OmniWeb/",identity:"OmniWeb"},{string:navigator.vendor,subString:"Apple",identity:"Safari",versionSearch:"Version"},{prop:window.opera,identity:"Opera",versionSearch:"Version"},{string:navigator.vendor,subString:"iCab",identity:"iCab"},{string:navigator.vendor,subString:"KDE",identity:"Konqueror"},{string:navigator.userAgent,subString:"Firefox",identity:"Firefox"},{string:navigator.vendor,subString:"Camino",identity:"Camino"},{string:navigator.userAgent,subString:"Netscape",identity:"Netscape"},{string:navigator.userAgent,subString:"MSIE",identity:"Explorer",versionSearch:"MSIE"},{string:navigator.userAgent,subString:"Gecko",identity:"Mozilla",versionSearch:"rv"},{string:navigator.userAgent,subString:"Mozilla",identity:"Netscape",versionSearch:"Mozilla"}],dataOS:[{string:navigator.platform,subString:"Win",identity:"Windows"},{string:navigator.platform,subString:"Mac",identity:"Mac"},{string:navigator.userAgent,subString:"iPhone",identity:"iPhone"},{string:navigator.userAgent,subString:"iPad",identity:"iPad"},{string:navigator.userAgent,subString:"Android",identity:"Android"},{string:navigator.platform,subString:"Linux",identity:"Linux"}]};TWP.PostTV.BrowserInfo.init();TWP.PostTV.getCookie=function(name){var nameEQ=name+"=";var ca=document.cookie.split(";");for(var i=0;i&lt;ca.length;i++){var c=ca[i];while(c.charAt(0)==" "){c=c.substring(1,c.length)}if(c.indexOf(nameEQ)==0){return c.substring(nameEQ.length,c.length)}}return null};wp_pb.BrowserInfo=wp_pb.BrowserInfo||{};wp_pb.BrowserInfo.mobile_browser=mobile_browser;wp_pb.BrowserInfo.tablet=mobile_tablet;wp_pb.BrowserInfo.OS=TWP.PostTV.BrowserInfo.OS;wp_pb.BrowserInfo.browser=TWP.PostTV.BrowserInfo.browser;wp_pb.BrowserInfo.version=TWP.PostTV.BrowserInfo.version;wp_pb.BrowserInfo.OS=TWP.PostTV.BrowserInfo.OS;
+ </script>
+ <script type="text/javascript">
+ if(typeof wp_meta_data=="undefined"){try{wp_meta_data={platform:"pagebuilder",showAds:true,showPreRollAds:false,isHomepage:false,isErrorPage:false,isMultimedia:false,wt:"article_story",page_id:["ca175d64-cd76-11e4-a2a7-9517a3a70506"],author:["Steven Mufson"],keywords:["business"],clavis:{keywords:["Russian President Vladimir Putin","Netanyahu","Obama","Republicans","Authority","leader","Israel","Iran","deal","relation","issue","minister","program","state","peace","Martin Indyk","month","United States","time","Gaza conflict","year","breakthrough","UN General Assembly","negotiation","election"],topics:["National Security","President and Administration","Wars, Conflicts and Terrorism","International Relations","Religion and Belief"],ct:["sz","lf","qa","iw","rj"]},breaking_news:[false],contentType:["CompoundStory"]}}catch(e){}};
+ </script>
+ <script type="text/javascript">
+ (function(){TWP=(typeof TWP=="undefined")?{}:TWP;TWP.Data=(typeof TWP.Data=="undefined")?{}:TWP.Data;TWP.Data["Tracking"]={init:function(){this.props={};this.props.platform="pagebuilder";this.props.page_type="";this.props.page_name="world:article - 9517a3a70506 - 20150318 - netanyahu-win-points-to-two-more-years-of-strained-u-s-israel-ties";this.props.section="world";this.props.channel="wp - world";this.props.subsection="world - middle_east";this.props.hierarchy="world|article";this.props.content_type="article";this.props.story_type="";this.props.headline="Where do strained U.S.-Israeli relations go after Netanyahu’s victory?";this.props.author="Steven Mufson";this.props.source="The Washington Post";this.props.content_id="ca175d64-cd76-11e4-a2a7-9517a3a70506";this.props.page_num="";this.props.op_ranking="no sentiment - no ideology";this.props.columnname="";this.props.blogname="";this.props.published="";this.props.news_or_commercial="News";this.props.commercial_node="/business/economy";this.props.content_category="National-Economy";this.props.sectionfront="";this.props.track_scrolling=true}};TWP.Data["Tracking"].init()})();
+ </script>
+ <script id="twp-identity" src="//js.washingtonpost.com/1h/twp-global.js"></script>
+ </head>
+
+ <body class="pb-theme-normal pb-full-fluid">
+ <script type="text/javascript" src="//js.washingtonpost.com/wp-stat/otto/js/mbox.js"></script>
+ <div class="mboxDefault"></div>
+ <div class="pb-container " id="pb-root">
+ <div id="article-business_1399492794482_885" class="moat-trackable pb-layout-item pb-feature pb-three pb-f-page-header-v2 pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="3" data-pb-name="page-header-v2"
+ data-pb-content-uri="/pb/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html"
+ data-pb-content-editable="" moat-id="page-header-v2|article-business">
+ <!--[if lt IE 9]>
+ <style>
+ .lt-ie9 body.left-menu #site-menu{left:-50px}.lt-ie9 #wp-logo{background:transparent url(/pb/resources/img/washingtonpost_black_32.png) no-repeat 0 8px}.lt-ie9 header.dark #wp-logo{background:transparent url(/pb/resources/img/washingtonpost_white_32.png) no-repeat 0 8px}
+ </style>
+ <![endif]-->
+ <!--[if lt IE 8]>
+ <header class="ie ie7 lte9 lte8 lte7 abt-not-loaded ">
+ <![endif]-->
+ <!--[if IE 8]>
+ <header class="ie ie8 lte9 lte8 abt-not-loaded ">
+ <![endif]-->
+ <!--[if IE 9]>
+ <header class="ie ie9 lte9 abt-not-loaded ">
+ <![endif]-->
+ <!--[if gt IE 9]>
+ <header class="ie abt-not-loaded ">
+ <![endif]-->
+ <!--[if !IE]><!-->
+ <header id="wp-header" class="nie abt-not-loaded ">
+ <!--<![endif]-->
+ <nav id="site-menu" class="nav-menu">
+ <form id="nav-search-mobile" method="get" action="http://www.washingtonpost.com/pb/newssearch/">
+ <button type="submit" class="fa fa-search"></button>
+ <input type="text" placeholder="Search" name="query" autocomplete="off"/>
+ </form>
+ <ul id="site-menu-sections">
+ <li id="nav-screenreader-link"><a class="screenreader-link" href="http://www.washingtonpost.com/pb/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html?resType=accessibility">Accessibility for screenreader</a>
+ </li>
+ <li id="nav-sign-in-mobile" class="hidden mobile-only"><a href="#">Sign In</a>
+ </li>
+ <li id="nav-user-mobile" class="hidden mobile-only"><a href="#">Username</a>
+ </li>
+ <li><a href="http://www.posttv.com/?nid=top_pb_posttv">PostTV</a>
+ </li>
+ <li><a href="http://www.washingtonpost.com/politics?nid=top_pb_politics">Politics</a>
+ </li>
+ <li><a href="http://www.washingtonpost.com/opinions?nid=top_pb_opinions">Opinions</a>
+ </li>
+ <li><a href="http://www.washingtonpost.com/local?nid=top_pb_local">Local</a>
+ </li>
+ <li><a href="http://www.washingtonpost.com/sports?nid=top_pb_sports">Sports</a>
+ </li>
+ <li><a href="http://www.washingtonpost.com/national?nid=top_pb_national">National</a>
+ </li>
+ <li><a href="http://www.washingtonpost.com/world?nid=top_pb_world">World</a>
+ </li>
+ <li><a href="http://www.washingtonpost.com/business?nid=top_pb_business">Business</a>
+ </li>
+ <li><a href="http://www.washingtonpost.com/business/technology?nid=top_pb_technology">Tech</a>
+ </li>
+ <li><a href="http://www.washingtonpost.com/lifestyle?nid=top_pb_lifestyle">Lifestyle</a>
+ </li>
+ <li><a href="http://www.washingtonpost.com/entertainment?nid=top_pb_entertainment">Entertainment</a>
+ </li>
+ <li><a href="http://www.washingtonpost.com/classifieds?nid=top_pb_classifieds">Classifieds</a>
+ </li>
+ <li><a href="http://www.washingtonpost.com/jobs?nid=top_pb_jobs">Jobs</a>
+ </li>
+ <li><a href="http://www.washingtonpost.com/realestate?nid=top_pb_realestate">Real Estate</a>
+ </li>
+ <li><a href="http://www.washingtonpost.com/goingoutguide?nid=top_pb_goingoutguide">Events</a>
+ </li>
+ <li><a href="http://www.washingtonpost.com/rentals?nid=top_pb_rentals">Rentals</a>
+ </li>
+ <li><a href="http://www.washingtonpost.com/cars/?nid=top_pb_cars">Cars</a>
+ </li>
+ <li><a href="http://www.washingtonpost.com/sf/brand-connect/?nid=top_pb_brandconnect">WP BrandConnect</a>
+ </li>
+ <li id="nav-subscribe-mobile" class="hidden mobile-only"><a href="https://subscribe.washingtonpost.com/acquisition/?nid=top_pb_subscribe&amp;destination=http://www.washingtonpost.com/pb/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html">Subscribe</a>
+ </li>
+ <li><a href="https://account.washingtonpost.com/actmgmt/registration/addnewsletter/default/">Newsletters &amp; Alerts</a>
+ </li>
+ </ul>
+ <div id="site-menu-info">
+ <p class="site-attribution"> <a href="http://www.washingtonpost.com"><strong>washingtonpost.com</strong></a>
+ <span
+ class="copyright">© 1996-2015 The Washington Post</span>
+ </p>
+ <p><a href="http://www.washingtonpost.com/actmgmt/help/">Help and Contact Us</a>
+ </p>
+ <p><a href="http://www.washingtonpost.com/terms-of-service/2011/11/18/gIQAldiYiN_story.html">Terms of Service</a>
+ </p>
+ <p><a href="http://www.washingtonpost.com/privacy-policy/2011/11/18/gIQASIiaiN_story.html">Privacy Policy</a>
+ </p>
+ <p><a href="http://www.washingtonpost.com/discussion-and-submission-guidelines/2011/11/21/gIQAuvIbiN_story.html">Submissions and Discussion Policy</a>
+ </p>
+ <p><a href="http://www.washingtonpost.com/rss-terms-of-service/2012/01/16/gIQAadFYAQ_story.html">RSS Terms of Service</a>
+ </p>
+ <p><a href="http://www.washingtonpost.com/how-can-i-opt-out-of-online-advertising-cookies/2011/11/18/gIQABECbiN_story.html">Ad Choices</a>
+ </p>
+ </div>
+ </nav>
+ <div id="user-menu" class="nav-menu">
+ <ul></ul>
+ </div>
+ <div id="nav-bar">
+ <div class="nav-left nav-section">
+ <div id="site-menu-btn" class="nav-btn"> <span class="nav-btn-label">Sections</span> <i class="fa fa-bars"></i>
+ </div>
+ <div id="wp-logo"> <a href="http://www.washingtonpost.com?nid=top_pb_wplogo">The Washington Post</a>
+ </div>
+ <div id="wp-logo-for-print">
+ <img src="//www.washingtonpost.com/pb/resources/img/washingtonpost_black_32.png"
+ alt="The Washington Post"/>
+ </div>
+ </div>
+ <div class="nav-middle nav-section">
+ <div id="nav-page-title" data-show-on-scroll="true">Where do strained U.S.-Israeli relations go after Netanyahu’s victory?</div>
+ </div>
+ <div class="nav-right nav-section">
+ <form id="nav-search" method="get" action="http://www.washingtonpost.com/newssearch/">
+ <input type="text" placeholder="Search" name="query" autocomplete="off"/>
+ <button type="submit" class="fa fa-search"></button>
+ </form>
+ <div id="nav-ad">
+ <div id="wpni_adi_88x31"></div>
+ </div> <a id="nav-sign-in" class="nav-btn hidden" href="#">Sign In</a>
+ <div id="nav-user"
+ class="nav-btn hidden" data-menu="user-menu" data-show-identity="true"> <span class="username">Username</span> <i class="fa fa-caret-down"></i>
+ </div> <a id="nav-subscribe" class="nav-btn hidden" href="https://subscribe.washingtonpost.com/acquisition/?nid=top_pb_subscribe&amp;destination=http://www.washingtonpost.com/pb/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html">Subscribe</a>
+ </div>
+ </div>
+ </header>
+ <div id="wp-topper" class="abt-not-loaded"> <a id="wp-logo-large" href="http://www.washingtonpost.com?nid=top_pb_wplogo"></a>
+ <div
+ class="top-timestamp"></div>
+ </div>
+ </div>
+ <div id="article-business_1399492818975_810" class="moat-trackable pb-layout-item pb-feature pb-three pb-f-ad-leaderboard pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="3" data-pb-name="ad-leaderboard"
+ data-pb-content-uri="/pb/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html"
+ data-pb-content-editable="" moat-id="ad-leaderboard|article-business">
+ <div class="leaderboard ad-hideable">
+ <div id="slug_leaderboard" data-ad-type="leaderboard" class="pb-ad-container"
+ style="display:none;"></div>
+ </div>
+ <div class="mobile-leaderboard ad-hideable">
+ <div id="slug_mob_av" data-ad-type="mob_av" style="display:none;"></div>
+ </div>
+ <div class="mobile-fixed ad-hideable">
+ <div id="slug_t" data-ad-type="t" class="pb-ad-container-mobile" style="display:none;"></div>
+ </div>
+ </div>
+ <div id="article-business_1401912612813_574" class="moat-trackable pb-layout-item pb-feature pb-three pb-f-article-article-topper pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="3" data-pb-name="article-article-topper"
+ data-pb-content-uri="/pb/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html"
+ data-pb-content-editable="" moat-id="article-article-topper|article-business">
+ <div id="article-topper" class="article-topper">
+ <div class="headline-kicker"><a href="/world/middle-east">Middle East</a>
+ </div>
+ <h1>Where do strained U.S.-Israeli relations go after Netanyahu’s victory?</h1>
+ <div class="clear"></div>
+ </div>
+ </div>
+ <div id="article-business_1409076983270_679" class="moat-trackable pb-layout-item pb-feature pb-three pb-f-sharebars-top-share-bar pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="3" data-pb-name="sharebars-top-share-bar"
+ data-pb-content-uri="/pb/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html"
+ data-pb-content-editable="" moat-id="sharebars-top-share-bar|article-business">
+ <style>
+ .hideText{position:absolute;left:-10000px}
+ </style>
+ <div id="top-sharebar_7575" class="top-sharebar-wrapper color-top unprocessed"
+ data-postshare="facebook,twitter">
+ <div class="social-tools-wrapper">
+ <div class="social-tools-primary margin-top">
+ <div class="social-tools "> <a onclick="try{this.postShare.callPostShare(this, this.postShareObject, 'https://www.facebook.com/sharer/sharer.php?u=', 'http://www.washingtonpost.com/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html', '' , 'width=658,height=354,scrollbars=no');}catch(err){ window.open('https://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fwapo.st%2F1Era2Lw','share_facebook','width=658,height=354,scrollbars=no'); }return false;"
+ tabindex="_tbidx_"> <div class="facebook tool first desktop mobile"><span class="hideText">Share on Facebook</span><span class="fa fa-facebook-square"></span></div> </a>
+ <a
+ onclick="try{this.postShare.callPostShare(this, this.postShareObject, 'https://twitter.com/share?url=', 'http://www.washingtonpost.com/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html', '&amp;text=Where+do+strained+U.S.-Israeli+relations+go+after+Netanyahu%E2%80%99s+victory%3F' , 'width=550, height=350, scrollbars=no');}catch(err){ window.open('https://twitter.com/share?url=http%3A%2F%2Fwapo.st%2F1Era2Lw&amp;text=Where+do+strained+U.S.-Israeli+relations+go+after+Netanyahu%E2%80%99s+victory%3F','share_twitter','width=550, height=350, scrollbars=no'); }return false;"
+ tabindex="_tbidx_">
+ <div class="twitter tool desktop mobile"><span class="hideText">Share on Twitter</span><span class="fa fa-twitter"></span>
+ </div>
+ </a><a onclick="try{this.postShare.callPostShare(this, this.postShareObject, 'http://www.linkedin.com/shareArticle?mini=true&amp;url=', 'http://www.washingtonpost.com/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html', '&amp;title=Where+do+strained+U.S.-Israeli+relations+go+after+Netanyahu%E2%80%99s+victory%3F' , 'width=830,height=460,scrollbars=no');}catch(err){ window.open('http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwapo.st%2F1Era2Lw&amp;title=Where+do+strained+U.S.-Israeli+relations+go+after+Netanyahu%E2%80%99s+victory%3F','share_linkedin','width=830,height=460,scrollbars=no'); }return false;"
+ tabindex="_tbidx_"> <div class="linkedin tool desktop"><span class="hideText">Share on LinkedIn</span><span class="fa fa-linkedin"></span></div> </a>
+ <a
+ onclick="try{this.postShare.callPostShare(this, this.postShareObject, 'mailto:?subject=Where%20do%20strained%20U.S.-Israeli%20relations%20go%20after%20Netanyahu%E2%80%99s%20victory%3F from The Washington Post&amp;body=', 'http://www.washingtonpost.com/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html', '' , null);}catch(err){ window.location.href = 'mailto:?subject=Where%20do%20strained%20U.S.-Israeli%20relations%20go%20after%20Netanyahu%E2%80%99s%20victory%3F from The Washington Post&amp;body=http%3A%2F%2Fwapo.st%2F1Era2Lw'; }return false;"
+ tabindex="_tbidx_">
+ <div class="email tool desktop"><span class="hideText">Share via Email</span><span class="fa fa-envelope"></span>
+ </div>
+ </a><a onclick="return false;"> <div class="more tool last desktop mobile"><span class="hideText" tabindex="_tbidx_">More Options</span><span class="fa fa-plus"> </span></div> </a>
+ </div>
+ </div>
+ <div class="social-tools-additional margin-top">
+ <div class="social-tools "> <a onclick="try{this.postShare.callPostShare(this, this.postShareObject, 'mailto:?subject=Where%20do%20strained%20U.S.-Israeli%20relations%20go%20after%20Netanyahu%E2%80%99s%20victory%3F from The Washington Post&amp;body=', 'http://www.washingtonpost.com/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html', '' , null);}catch(err){ window.location.href = 'mailto:?subject=Where%20do%20strained%20U.S.-Israeli%20relations%20go%20after%20Netanyahu%E2%80%99s%20victory%3F from The Washington Post&amp;body=http%3A%2F%2Fwapo.st%2F1Era2Lw'; }return false;"
+ tabindex="_tbidx_"> <div class="email tool first mobile"><span class="hideText">Share via Email</span><span class="fa fa-envelope"></span></div> </a>
+ <a
+ onclick="try{this.postShare.callPostShare(this, this.postShareObject, 'whatsapp://send?text=Where%20do%20strained%20U.S.-Israeli%20relations%20go%20after%20Netanyahu%E2%80%99s%20victory%3F - ', 'http://www.washingtonpost.com/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html', '' , null);}catch(err){ window.location.href = 'whatsapp://send?text=Where%20do%20strained%20U.S.-Israeli%20relations%20go%20after%20Netanyahu%E2%80%99s%20victory%3F - http%3A%2F%2Fwapo.st%2F1Era2Lw'; }return false;"
+ tabindex="_tbidx_">
+ <div class="whatsapp tool mobile"><span class="hideText">Share on Whatsapp</span><span class="fa fa-whatsapp"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAYAAADE6YVjAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAEhwAABIcBblSwhwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAKMSURBVEiJnZVLSFVRFIb/czORKEqjJI0EoVKILMxB0cBJjYJGRhMD6TVs0kAhpw2qSdkoCGoSQkENehBKUSARCtqggiJudUGjh4+KEDW/BmftXB3OuXr7YbH3Wa9/r33WWScCtAg2S9olqdnWHZLGJA05GZb0KzMDkCV1QD9LwzhwJCtXlFHJCUkXJK2SNCnpiZ14UNKIpA2SWqyyPZK2WdxdSScljRarZAXw0J3wFrC+SLVBOoBJi5kADnh70vmyOX4GDi0huZda4J4jqk0j2QfMAzNAU4kEXsJNPEiSrAEKZux2AduBO8ClEkg2uqs77kl6TDkElJkuB3xgATtLIOqwmO9ApYAI+GTK/c5xN//iYonX9sri2nPWhtWSkPTcNV51oq1bMj+2dDyz9WBO0lZ7eCtpyjkNuP28pM4SSYZsbchJqrGHwYTTF0lPbT+peHSUgpCvJiep3CVN4pSkGUlVkq6WSDJua0VOUt4eGlMcRyR12b5N0hlJkbMvl1SZQdJs65jvokJGl0RAr+uyfuLhWQEMANPWecnxc878HwuoAmZNUZ9BtAy44Yh+APlEi38zvxDzyPRdQRESXCvS9xFwzJKlIe98G61CgIagbDHFHNBQhEjAOqALeOEI3rEwEcqAQdNfJzEg35uhbRESL1uI51vkdN2WpwCs9iT1ZvhJ/E/53wncTjzFwY2oYOw0Q68LaLJTLiV5NfG0Dujx9rAZNuNZ4LzdccB9oBUoTyReCewFTgNfzXcKOJo8RLjXNEwQ/8QC5oy8D3gN/E749wGb0ir1LwrgI/GH1Urc8/VW3WjKIaaJ/z9XgMNpyYNEwE1JbyTd1sLkTMNaSXWSaiUVJL2UNFvE/y/+AObPwGxY9EFMAAAAAElFTkSuQmCC"/></span>
+ </div>
+ </a><a onclick="try{this.postShare.callPostShare(this, this.postShareObject, '//pinterest.com/pin/create/button/?url=', 'http://www.washingtonpost.com/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html', '&amp;media=http://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/National-Economy/Images/Nic6429750-1138.jpg&amp;description=Where+do+strained+U.S.-Israeli+relations+go+after+Netanyahu%E2%80%99s+victory%3F' , 'width=550,height=450,scrollbars=no');}catch(err){ window.open('//pinterest.com/pin/create/button/?url=http%3A%2F%2Fwapo.st%2F1Era2Lw&amp;media=http://img.washingtonpost.com/rw/2010-2019/WashingtonPost/2015/03/18/National-Economy/Images/Nic6429750-1138.jpg&amp;description=Where+do+strained+U.S.-Israeli+relations+go+after+Netanyahu%E2%80%99s+victory%3F','share_linkedin','width=550,height=450,scrollbars=no'); }return false;"
+ tabindex="_tbidx_"> <div class="pinterest tool desktop mobile"><span class="hideText">Share on Pinterest</span><span class="fa fa-pinterest"></span></div> </a>
+ <a
+ onclick="try{this.postShare.callPostShare(this, this.postShareObject, 'https://plus.google.com/share?url=', 'http://www.washingtonpost.com/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html', '' , 'width=832,height=472,scrollbars=no');}catch(err){ window.open('https://plus.google.com/share?url=http%3A%2F%2Fwapo.st%2F1Era2Lw','share_google-plus','width=832,height=472,scrollbars=no'); }return false;"
+ tabindex="_tbidx_">
+ <div class="google-plus tool desktop mobile"><span class="hideText">Share on Google Plus</span><span class="fa fa-google-plus"></span>
+ </div>
+ </a><a onclick="try{this.postShare.callPostShare(this, this.postShareObject, 'http://www.linkedin.com/shareArticle?mini=true&amp;url=', 'http://www.washingtonpost.com/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html', '&amp;title=Where+do+strained+U.S.-Israeli+relations+go+after+Netanyahu%E2%80%99s+victory%3F' , 'width=830,height=460,scrollbars=no');}catch(err){ window.open('http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwapo.st%2F1Era2Lw&amp;title=Where+do+strained+U.S.-Israeli+relations+go+after+Netanyahu%E2%80%99s+victory%3F','share_linkedin','width=830,height=460,scrollbars=no'); }return false;"
+ tabindex="_tbidx_"> <div class="linkedin tool mobile"><span class="hideText">Share on LinkedIn</span><span class="fa fa-linkedin"></span></div> </a>
+ <a
+ onclick="try{this.postShare.callPostShare(this, this.postShareObject, 'http://www.tumblr.com/share/link?url=', 'http://www.washingtonpost.com/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html', '&amp;name=Where+do+strained+U.S.-Israeli+relations+go+after+Netanyahu%E2%80%99s+victory%3F&amp;description=' , 'width=550,height=450,scrollbars=no');}catch(err){ window.open('http://www.tumblr.com/share/link?url=http%3A%2F%2Fwapo.st%2F1Era2Lw&amp;name=Where+do+strained+U.S.-Israeli+relations+go+after+Netanyahu%E2%80%99s+victory%3F&amp;description=','share_tumblr','width=550,height=450,scrollbars=no'); }return false;"
+ tabindex="_tbidx_">
+ <div class="tumblr tool last desktop"><span class="hideText">Share on Tumblr</span><span class="fa fa-tumblr"></span>
+ </div>
+ </a>
+ </div>
+ </div>
+ </div>
+ <div id="slug_tiffany_tile" data-ad-type="tiffany_tile" class="left" style="display:none;padding-left:20px !important;height:auto;max-height:60px;overflow:hidden;">
+ <div id="wpni_adi_tiffany_tile" class="ads slug tiffany_tile header"></div>
+ </div>
+ <div class=" utility-tools-wrapper">
+ <div class="utility-tools-primary margin-top">
+ <div class="social-tools ">
+ <div class="textresizer tool first mobile"><span class="hideText" tabindex="_tbidx_">Resize Text</span><span class="fa fa-font"></span>
+ </div><a onclick="window.print();" tabindex="_tbidx_"> <div class="print tool mobile"><span class="hideText">Print Article</span><span class="fa fa-print"></span></div> </a>
+ <a
+ href="#" onclick="wp_pb.report('comments', 'showComments',{elm:$(this),guid:'http://www.washingtonpost.com/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html'}); return false;"
+ tabindex="_tbidx_">
+ <div class="comments tool last mobile"><span class="hideText">Comments</span><span class="fa fa-comments"></span>
+ <span
+ id="echo_container" class="echo_container comment-vars echo-counter text"
+ guid="http://www.washingtonpost.com/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html"></span>
+ </div>
+ </a>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="clear"></div>
+ </div>
+ <div class="pb-scatter">
+ <div id="main-content" class="pb-layout-item pb-chain pb-two main-content"
+ data-pb-columns="2">
+ <div id="article-business_1401912605633_632" class="moat-trackable pb-feature pb-chained pb-f-article-article-body pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="" data-pb-name="article-article-body"
+ data-pb-content-uri="/pb/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html"
+ data-pb-content-editable="" moat-id="article-article-body|article-business">
+ <div id="article-body" class="article-body">
+ <div class="inline-content inline-photo inline-photo-normal"> <a name="1c164a7079bfe20ebd611d79f96418b5a225cbc6"></a>
+ <img class="unprocessed"
+ src="https://img.washingtonpost.com/rf/image_400w/2010-2019/WashingtonPost/2015/03/18/National-Economy/Images/Nic6429750-1140.jpg?uuid=zLIZQs2KEeSip5UXo6cFBg"
+ data-hi-res-src="https://img.washingtonpost.com/rf/image_1484w/2010-2019/WashingtonPost/2015/03/18/National-Economy/Images/Nic6429750-1140.jpg?uuid=zLIZQs2KEeSip5UXo6cFBg"
+ data-low-res-src="https://img.washingtonpost.com/rf/image_400w/2010-2019/WashingtonPost/2015/03/18/National-Economy/Images/Nic6429750-1140.jpg?uuid=zLIZQs2KEeSip5UXo6cFBg"/>
+ <br/> <span class="pb-caption">Israeli Prime Minister Benjamin Netanyahu reacts as he visits the Western Wall in Jerusalem on March 18 following his party's victory in Israel's general election. (Thomas Coex/AFP/Getty Images)</span>
+ </div>
+ <div class="pb-sig-line hasnt-headshot has-0-headshots hasnt-bio is-not-column"> <span class="pb-byline">By <a href="http://www.washingtonpost.com/people/steven-mufson">Steven Mufson</a></span>
+ <span
+ class="pb-timestamp">March 18 at 12:22 PM</span> <span class="pb-tool email"><a href="mailto:[email protected]?subject=Reader feedback for 'Where do strained U.S.-Israeli relations go after Netanyahu’s victory?'"><span class="fa fa-envelope"></span>
+ </a>
+ </span> <span class="tweet-authors"><span class="pb-twitter-follow unprocessed"><a href="https://twitter.com/@StevenMufson" class="twitter-follow-button" data-show-count="false" data-lang="en">Follow @StevenMufson</a></span> </span>
+ </div>
+ <article>
+ <p>President Obama told the U.N. General Assembly 18 months ago that he would
+ seek “real breakthroughs on these two issues — Iran’s nuclear program and
+ ­Israeli-Palestinian peace.”</p>
+ <p>But <a href="http://www.washingtonpost.com/world/netanyahu-sweeps-to-victory-in-israeli-election/2015/03/18/af4e50ca-ccf2-11e4-8730-4f473416e759_story.html"
+ title="www.washingtonpost.com">Benjamin Netanyahu’s triumph</a> in Tuesday’s
+ parliamentary elections keeps in place an Israeli prime minister who has
+ declared his intention to resist Obama on both of these fronts, guaranteeing
+ two more years of difficult diplomacy between leaders who barely conceal
+ their personal distaste for each other.</p>
+ <p>The Israeli election results also suggest that most voters there support
+ Netanyahu’s tough stance on U.S.-led negotiations to limit Iran’s nuclear
+ program and his vow on Monday that there would be <a href="http://www.washingtonpost.com/world/middle_east/on-final-day-of-campaign-netanyahu-says-no-palestinian-state-if-he-wins/2015/03/16/4f4468e8-cbdc-11e4-8730-4f473416e759_story.html"
+ title="www.washingtonpost.com">no independent Palestinian state</a> as long
+ as he is prime minister.</p>
+ <p>“On the way to his election victory, Netanyahu broke a lot of crockery
+ in the relationship,” said Martin Indyk, executive vice president of the
+ Brookings Institution and a former U.S. ambassador to Israel. “It can’t
+ be repaired unless both sides have an interest and desire to do so.”</p>
+ <p>Aside from Russian President Vladi­mir Putin, few foreign leaders so brazenly
+ stand up to Obama and even fewer among longtime allies.</p>
+ <div class="inline-content inline-video">
+ <div class="posttv-video-embed" data-duration="76000" data-headline="Israel's Netanyahu works on forming coalition"
+ data-is-truth-teller="0" data-max-height="-1" data-max-width="-1" data-object-id="5509aa07e4b0210747c74e5c"
+ data-show-endscreen="1" data-show-promo="http://img.washingtonpost.com/rf/image_1024w/2010-2019/WashingtonPost/2015/03/18/Production/Daily/A-Section/Images/2015-03-18T140126Z_01_JER07_RTRIDSP_3_ISRAEL-ELECTION.jpg"
+ data-uuid="a41ef658-cd8a-11e4-8730-4f473416e759" data-youtube-id="">
+ <script src="http://www.washingtonpost.com/posttv/static/js/posttv/posttv-video-embed.v3.js"
+ type="text/javascript"></script>
+ </div>
+ <div class="inline-video-caption"> <span class="pb-caption">Israeli Prime Minister Benjamin Netanyahu pledged to form a new governing coalition quickly after an upset election victory that was built on a shift to the right. (Reuters)</span>
+ </div>
+ </div>
+ <p>In the past, Israeli leaders who risked damaging the country’s most important
+ relationship, that with Washington, tended to pay a price. In 1991, when
+ Prime Minister Yitzhak Shamir opposed the Madrid peace talks, President
+ George H.W. Bush held back loan guarantees to help absorb immigrants from
+ the former Soviet Union. Shamir gave in, but his government soon collapsed.</p>
+ <p>But this time, Netanyahu was not hurt by his personal and substantive
+ conflicts with the U.S. president.</p>
+ <p>“While the United States is loved and beloved in Israel, President Obama
+ is not,” said Robert M. Danin, a senior fellow at the Council on Foreign
+ Relations. “So the perceived enmity didn’t hurt the way it did with Shamir
+ when he ran afoul of Bush in ’91.”</p>
+ <p>Where do U.S.-Israeli relations go from here?</p>
+ <p>In the immediate aftermath of Tuesday’s elections, tensions between the
+ two sides continued to run hot. The Obama administration’s first comments
+ on the Israeli election came with a tough warning about some of the pre-election
+ rhetoric from Netanyahu’s Likud party, which tried to rally right-wing
+ support by saying that Arab Israeli voters were “coming out in droves.”</p>
+ <p>“The United States and this administration is deeply concerned about rhetoric
+ that seeks to marginalize Arab Israeli citizens,” White House press secretary
+ Josh Earnest told reporters aboard Air Force One. “It undermines the values
+ and democratic ideals that have been important to our democracy and an
+ important part of what binds the United States and Israel together.”</p>
+ <p>Earnest added that Netan­yahu’s election-eve disavowal of a two-state
+ solution for Israelis and Palestinians would force the administration to
+ reconsider its approach to peace in the region.</p>
+ <div></div>
+ <p>Over the longer term, a number of analysts say that Obama and Netan­yahu
+ will seek to play down the friction between them and point to areas of
+ continuing cooperation on military and economic issues.</p>
+ <p>“Both sides are going to want to turn down the rhetoric,” Danin said.
+ “But it is also a structural problem. They have six years of accumulated
+ history. That’s going to put limits on how far they can go together.”</p>
+ <p>The first substantive test could come as early as this month, when the
+ United States hopes that it can finish hammering out the framework of an
+ agreement with Iran.</p>
+ <p>Netanyahu strongly warned against making a “bad deal” during his March
+ 3 address to a joint meeting of Congress, an appearance arranged by Republican
+ congressional leaders and criticized by the Obama administration for making
+ U.S.-Israeli relations partisan on both sides so close to the Israeli election.</p>
+ <p>If a deal is reached and does not pass muster with Netanyahu, he is likely
+ to work with congressional Republicans to try to scuttle the accord.</p>
+ <p>“The Republicans have said they will do what they can to block a deal,
+ and the prime minister has already made clear that he will work with the
+ Republicans against the president,” Indyk said. “That’s where a clash could
+ come, and it’s coming very quickly.”</p>
+ <p>The second test — talks with Palestinians — could be even more difficult.
+ In his September 2013 address to the United Nations, Obama hailed signs
+ of hope.</p>
+ <p>“Already, Israeli and Palestinian leaders have demonstrated a willingness
+ to take significant political risks,” Obama said in his speech. Palestinian
+ Authority President Mahmoud Abbas “has put aside efforts to shortcut the
+ pursuit of peace and come to the negotiating table. Prime Minister Netanyahu
+ has released Palestinian prisoners and reaffirmed his commitment to a Palestinian
+ state.”</p>
+ <p>Today, <a href="http://www.washingtonpost.com/blogs/worldviews/wp/2015/03/18/what-netanyahus-election-victory-means-for-the-palestinians/"
+ title="www.washingtonpost.com">the signals could not differ more</a>. The
+ Palestinian Authority has said that after it joins the International Criminal
+ Court at The Hague on April 1, it will press war crimes charges against
+ Israel for the bloody Gaza conflict during the summer. Israel, which controls
+ tax receipts, has pledged to punish the Palestinian Authority by freezing
+ its tax revenue.</p>
+ <p>The United States, which gives hundreds of millions of dollars of economic
+ aid to the Palestinian Authority, would be caught in the middle. It has
+ been trying to persuade both sides to stand down, but Netanyahu’s declaration
+ that there would be no Palestinian state on his watch makes that more difficult.</p>
+ <p>“Now it’s hard to see what could persuade the Palestinians” to hold up
+ on their ICC plans, Indyk said. “That has nothing to do with negotiations,
+ but if both sides can’t be persuaded to back down, then they will be on
+ a trajectory that could lead to the collapse of the Palestinian Authority
+ because it can’t pay wages anymore.</p>
+ <p>“That could be an issue forced onto the agenda about the same time as
+ a potential nuclear deal.”</p>
+ <div class="extra">
+ <p></p>
+ </div>
+ </article>
+ <div class="clear"></div>
+ <div class="post-body-sig-line"><a href="http://www.washingtonpost.com/people/steven-mufson"><img class="post-body-headshot-left" src="http://img.washingtonpost.com/wp-apps/imrs.php?src=http://www.washingtonpost.com/blogs/wonkblog/files/2014/07/mufson_steve.jpg&amp;h=180&amp;w=180"/></a>
+ <div
+ class="post-body-bio has-photo">Steven Mufson covers the White House. Since joining The Post, he has covered
+ economics, China, foreign policy and energy.</div>
+ <div class="clear"></div>
+ </div>
+ </div>
+ </div>
+ <div id="article-business_1399492829376_241" class="moat-trackable pb-feature pb-chained pb-f-page-share-bar pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="" data-pb-name="page-share-bar"
+ data-pb-content-uri="/pb/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html"
+ data-pb-content-editable="" moat-id="page-share-bar|article-business">
+ <div class="social-tools-wrapper-bottom ">
+ <ul class="social-tools-bottom inline">
+ <li data-sharetype="facebook" class="left facebook"> <a href="#" onclick="window.open('https://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fwapo.st%2F1Era2Lw','share_facebook','width=658,height=354,scrollbars=no'); return false;"
+ tabindex="_tbidx_"> <span class="fa fa-facebook-square">&nbsp;</span><span class="longname">Share on Facebook</span><span class="shortname">Share</span> </a>
+ </li>
+ <li data-sharetype="twitter" class="right twitter"> <a href="#" onclick="window.open('https://twitter.com/share?url=http%3A%2F%2Fwapo.st%2F1Era2Lw&amp;text=Where do strained U.S.-Israeli relations go after Netanyahu’s victory?','share_twitter','width=550, height=350, scrollbars=no'); return false;"
+ tabindex="_tbidx_"> <span class="fa fa-twitter">&nbsp;</span> <span class="longname">Share on Twitter</span><span class="shortname">Tweet</span> </a>
+ </li>
+ </ul>
+ <div class="clear"></div>
+ </div>
+ </div>
+ <div id="article-business_1402342504319_850" class="moat-trackable pb-feature pb-chained pb-f-page-comments pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="" data-pb-name="page-comments" data-pb-content-uri="/pb/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html"
+ data-pb-content-editable="" moat-id="page-comments|article-business">
+ <div data-allow-comments="true" class="pb-comment-wrapper ">
+ <div id="comment_summary_pb_comments" class="comment-summary jump ">
+ <div class="comment-summary-count"><span class="fa fa-comments"></span><span id="echo_container" class="echo_container comment-vars echo-counter"
+ guid="http://www.washingtonpost.com/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html"></span>
+ </div>
+ <div class="comment-summary-display"><span class="comment-display"> Comments</span>
+ </div>
+ </div>
+ </div>
+ <style>
+ .pb-feature.pb-f-page-comments .pb-comment-wrapper{padding-right:0;border-bottom:0}.pb-feature.pb-f-page-comments{border-right:1px solid #d5d5d5;padding-right:50px}
+ </style>
+ </div>
+ <div id="article-business_1402342509758_904" class="moat-trackable pb-feature pb-chained pb-f-page-recommended-strip pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="" data-pb-name="page-recommended-strip"
+ data-pb-content-uri="/pb/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html"
+ data-pb-content-editable="" moat-id="page-recommended-strip|article-business">
+ <script type="text/javascript">
+ (function($){TWP=window.TWP||{};TWP.Features=TWP.Features||{};TWP.Features.Page=TWP.Features.Page||{};TWP.Features.Page.RecommendedStrip={};TWP.Features.Page.RecommendedStrip.endpointServer="//recommendation.wpdigital.net";TWP.Features.Page.RecommendedStrip.canonicalUrl="http://www.washingtonpost.com/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html"})(jQuery);
+ </script>
+ <div class="content-strip-marker recommended rs-alt1-true"></div>
+ </div>
+ <div id="article-business_1402342510843_771" class="moat-trackable pb-feature pb-chained pb-f-page-trending-strip pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="" data-pb-name="page-trending-strip"
+ data-pb-content-uri="/pb/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html"
+ data-pb-content-editable="" moat-id="page-trending-strip|article-business">
+ <script type="text/javascript">
+ (function($){TWP=window.TWP||{};TWP.Features=TWP.Features||{};TWP.Features.Page=TWP.Features.Page||{};TWP.Features.Page.TrendingStrip={}})(jQuery);
+ </script>
+ <div class="content-strip-marker trending"></div>
+ </div>
+ <div id="article-business_1399492834009_602" class="moat-trackable pb-feature pb-chained pb-f-page-comments pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="" data-pb-name="page-comments" data-pb-content-uri="/pb/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html"
+ data-pb-content-editable="" moat-id="page-comments|article-business">
+ <div data-allow-comments="true" class="pb-comment-wrapper lockfix ">
+ <div id="comment_summary_pb_comments" class="comment-summary summary-expanded-mobile">
+ <div class="comment-summary-count"><span class="fa fa-comments"></span><span id="echo_container" class="echo_container comment-vars echo-counter"
+ guid="http://www.washingtonpost.com/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html"></span>
+ </div>
+ <div class="comment-summary-display"><span class="comment-display"> Show Comments</span>
+ </div>
+ </div>
+ <div id="echo_container_placeholder" class="echo_container_placeholder">
+ <div id="echo_container_pb_comments" class="echo_container canvas comment-vars comments unprocessed defer deferMobile count submitbox stream "
+ guid="http://www.washingtonpost.com/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html"
+ allow_comments="true" allow_photos="false" allow_videos="false" commentpermalinkurlfacet="http://www.washingtonpost.com/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html"
+ defaultsort="reverseChronological" defaulttab="all" isallcomments="true"
+ includepause="true" includepermalink="false" includerecommend="true" includereport="true"
+ includereply="true" includeshare="true" includesorts="true" includetabs=""
+ includeverifiedcommenters="true" includevoteofftopic="false" markerdisplay="'post_commenter':'Post Commenter','staff':'Post Writer','top_commenter':'Post Forum','top_local':'Washingtologist','top_sports':'SuperFan','fact_checker':'Fact Checker','post_recommended':'Post Recommended','world_watcher':'World Watcher','cultuer_connoisseur':'Culture Connoisseur','weather_watcher':'Capital Weather Watcher','post_contributor':'Post Contributor'"
+ markersall="" maxitems="5" maxitemstop="3" moderationrequired="" primarynode="world"
+ sectionid="middle_east" columnname="" source="washpost.com" streamid=""
+ tabs="{}" usermarkers="" usermarkersall="" webtype="article" data-canvas-id="washpost.com/km4ey0dajm"
+ data-app-instance="6634zxcgfd">
+ <div class="echo-header-container">
+ <div id="comment-info-links" class="right"> <span class="discussion-policy"><a href="http://www.washingtonpost.com/blogs/ask-the-post/discussion-and-submission-guidelines/" target="_policy">Discussion Policy</a> </span>
+ </div>
+ <div class="comment-count-label"><span class="echo-counter"></span> Comments</div>
+ </div>
+ <div id="echo_stream_container" class="echo-stream-container echo-comment-container echo-canvas canvas canvas-methode-allcomments echo-stream"
+ data-canvas-id="washpost.com/km4ey0dajm" data-app-instance="6634zxcgfd"></div>
+ </div>
+ <div class="badgetext hide hidden">
+ <div id="echo-top_sports" class="echo-badge-info">
+ <div class="marker echo-item-user-top_sports"></div>
+ <p class="title">SuperFan Badge</p>
+ <p>SuperFan badge holders consistently post smart, timely comments about
+ Washington area sports and teams.</p>
+ <p class="echo-badge-info-link"><a target="_badgeinfo" href="http://www.washingtonpost.com/wp-srv/interactivity/get-a-badge.html">More about badges</a> |
+ <a
+ target="_badgeinfo" href="http://www.washingtonpost.com/wp-srv/interactivity/get-a-badge.html">Request a badge</a>
+ </p>
+ </div>
+ <div id="echo-culture_connoisseur" class="echo-badge-info">
+ <div class="marker echo-item-user-culture_connoisseur"></div>
+ <p class="title">Culture Connoisseur Badge</p>
+ <p>Culture Connoisseurs consistently offer thought-provoking, timely comments
+ on the arts, lifestyle and entertainment.</p>
+ <p class="echo-badge-info-link"><a target="_badgeinfo" href="http://www.washingtonpost.com/wp-srv/interactivity/get-a-badge.html">More about badges</a> |
+ <a
+ target="_badgeinfo" href="http://www.washingtonpost.com/wp-srv/interactivity/get-a-badge.html">Request a badge</a>
+ </p>
+ </div>
+ <div id="echo-fact_checker" class="echo-badge-info">
+ <div class="marker echo-item-user-fact_checker"></div>
+ <p class="title">Fact Checker Badge</p>
+ <p>Fact Checkers contribute questions, information and facts to <a target="_badgeinfo"
+ href="http://www.washingtonpost.com/blogs/fact-checker">The Fact Checker</a>.</p>
+ <p
+ class="echo-badge-info-link"><a target="_badgeinfo" href="http://www.washingtonpost.com/wp-srv/interactivity/get-a-badge.html">More about badges</a> |
+ <a
+ target="_badgeinfo" href="http://www.washingtonpost.com/wp-srv/interactivity/get-a-badge.html">Request a badge</a>
+ </p>
+ </div>
+ <div id="echo-top_local" class="echo-badge-info">
+ <div class="marker echo-item-user-top_local"></div>
+ <p class="title">Washingtologist Badge</p>
+ <p>Washingtologists consistently post thought-provoking, timely comments
+ on events, communities, and trends in the Washington area.</p>
+ <p class="echo-badge-info-link"><a target="_badgeinfo" href="http://www.washingtonpost.com/wp-srv/interactivity/get-a-badge.html">More about badges</a> |
+ <a
+ target="_badgeinfo" href="http://www.washingtonpost.com/wp-srv/interactivity/get-a-badge.html">Request a badge</a>
+ </p>
+ </div>
+ <div id="echo-staff" class="echo-badge-info">
+ <div class="marker echo-item-user-staff" style="float:left;"></div>
+ <p class="title">Post Writer Badge</p>
+ <p>This commenter is a Washington Post editor, reporter or producer.</p>
+ </div>
+ <div id="echo-top_commenter" class="echo-badge-info">
+ <div class="marker echo-item-user-top_commenter"></div>
+ <p class="title">Post Forum Badge</p>
+ <p>Post Forum members consistently offer thought-provoking, timely comments
+ on politics, national and international affairs.</p>
+ <p class="echo-badge-info-link"><a target="_badgeinfo" href="http://www.washingtonpost.com/wp-srv/interactivity/get-a-badge.html">More about badges</a> |
+ <a
+ target="_badgeinfo" href="http://www.washingtonpost.com/wp-srv/interactivity/get-a-badge.html">Request a badge</a>
+ </p>
+ </div>
+ <div id="echo-weather_watcher" class="echo-badge-info">
+ <div class="marker echo-item-user-weather_watcher"></div>
+ <p class="title">Weather Watcher Badge</p>
+ <p>Weather Watchers consistently offer thought-provoking, timely comments
+ on climates and forecasts.</p>
+ <p class="echo-badge-info-link"><a target="_badgeinfo" href="http://www.washingtonpost.com/wp-srv/interactivity/get-a-badge.html">More about badges</a> |
+ <a
+ target="_badgeinfo" href="http://www.washingtonpost.com/wp-srv/interactivity/get-a-badge.html">Request a badge</a>
+ </p>
+ </div>
+ <div id="echo-world_watcher" class="echo-badge-info">
+ <div class="marker echo-item-user-world_watcher"></div>
+ <p class="title">World Watcher Badge</p>
+ <p>World Watchers consistently offer thought-provoking, timely comments on
+ international affairs.</p>
+ <p class="echo-badge-info-link"><a target="_badgeinfo" href="http://www.washingtonpost.com/wp-srv/interactivity/get-a-badge.html">More about badges</a> |
+ <a
+ target="_badgeinfo" href="http://www.washingtonpost.com/wp-srv/interactivity/get-a-badge.html">Request a badge</a>
+ </p>
+ </div>
+ <div id="echo-post_contributor" class="echo-badge-info">
+ <div class="marker echo-item-user-post_contributor"></div>
+ <p class="title">Post Contributor Badge</p>
+ <p>This commenter is a Washington Post contributor. Post contributors aren’t
+ staff, but may write articles or columns. In some cases, contributors are
+ sources or experts quoted in a story.</p>
+ <p class="echo-badge-info-link"><a target="_badgeinfo" href="http://www.washingtonpost.com/wp-srv/interactivity/get-a-badge.html">More about badges</a> |
+ <a
+ target="_badgeinfo" href="http://www.washingtonpost.com/wp-srv/interactivity/get-a-badge.html">Request a badge</a>
+ </p>
+ </div>
+ <div id="echo-post_recommended" class="echo-badge-info">
+ <div class="marker echo-item-marker-post_recommended"></div>
+ <p class="title">Post Recommended</p>
+ <p>Washington Post reporters or editors recommend this comment or reader
+ post.</p>
+ </div>
+ <div id="echo-anon-report">
+ <p>You must be logged in to report a comment.</p>
+ <div class="inline padding-right-9"><a class="echo-sign-in icon right-arrow" href=""><strong>Sign in here</strong></a>
+ </div>
+ </div>
+ <div id="echo-anon-recommend">
+ <p>You must be logged in to recommend a comment.</p>
+ <div class="inline padding-right-9"><a class="echo-sign-in icon right-arrow" href=""><strong>Sign in here</strong></a>
+ </div>
+ </div>
+ <div id="echo-comments-overview">
+ <p>Comments our editors find particularly useful or relevant are displayed
+ in <strong>Top Comments</strong>, as are comments by users with these badges: <strong><span class="badge-list"></span></strong>.
+ Replies to those posts appear here, as well as posts by staff writers.</p>
+ <p>All comments are posted in the <strong>All Comments</strong> tab.</p>
+ <div
+ class="inline padding-right-9 left"><a class="icon right-arrow" href="http://www.washingtonpost.com/wp-srv/interactivity/get-a-badge.html"><strong>More about badges</strong></a>
+ </div>
+ <div class="inline padding-right-9 right"><a class="icon right-arrow" href="http://www.washingtonpost.com/wp-srv/interactivity/get-a-badge.html"><strong>Get a badge</strong></a>
+ </div>
+ <div class="clear padding-top-10">
+ <p>To pause and restart automatic updates, click "Live" or "Paused". If paused,
+ you'll be notified of the number of additional comments that have come
+ in.</p>
+ </div>
+ </div>
+ <div id="echo-more-comments-top">
+ <div style="font-size: 11px;">
+ <br/>Comments our editors find particularly useful or relevant are displayed
+ in <strong>Top Comments</strong>, as are comments by users with these badges: <strong><span class="badge-list"></span></strong>.
+ Replies to those posts appear here, as well as posts by staff writers.</div>
+ </div>
+ </div>
+ <div class="hide hidden utils">
+ <div id="comment-flag-container">
+ <div id="comment-flag-list">
+ <div class="arrow-one"></div>
+ <div class="arrow-two"></div>
+ <div class="flag-list">
+ <ul>
+ <li id="flag-spam" class="report-button">Spam</li>
+ <li id="flag-offensive" class="report-button">Offensive</li>
+ <li id="flag-disagree" class="report-button">Disagree</li>
+ <li id="flag-offtopic" class="report-button">Off-Topic</li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ <!--[if IE 7]>
+ <style type="text/css">
+ .comment-share-info #newsharebar li .more{position:relative;margin-left:-220px}.comment-share-info #newsharebar li .morebottom{height:110px;position:relative;top:10px;z-index:998}.comment-share-info #newsharebar li .morebottom .left,.comment-share-info #newsharebar li .morebottom .right{z-index:1000;height:110px}.comment-share-info #newsharebar li .morebottom ul li{width:100px}.comment-share-info #newsharebar li .arrow-one,.comment-share-info #newsharebar li .arrow-two{position:absolute;z-index:999;left:229px}.comment-share-info #newsharebar li .arrow-one{top:9px}.comment-share-info #newsharebar li .arrow-two{top:11px}
+ </style>
+ <![endif]-->
+ <div class="comment-share-info hide hidden">
+ <div id="newsharebar">
+ <div class="newshare">
+ <ul class="share mega-menu inline-list">
+ <li class="sharetop">
+ <div class="more" style="display: none;">
+ <div class="arrow-one"></div>
+ <div class="arrow-two"></div>
+ <div class="morebottom">
+ <div class="left">
+ <ul>
+ <li>
+ <div class="shareitems facebook"></div> <a href="javascript:void(0)" class="facebook-link" onclick="window.open('http://www.facebook.com/share.php?u={shareURL}','','width=658,height=354,scrollbars=no');return false;">Facebook</a>
+ </li>
+ <li>
+ <div class="shareitems twitter"></div> <a href="javascript:void(0)" onclick="window.open('http://www.twitter.com/intent/tweet?text={headline}&amp;url={shareURL}','','width=550, height=350, scrollbars=no')">Twitter</a>
+ </li>
+ <li>
+ <div class="shareitems reddit"></div> <a href="javascript:void(0)" onclick="window.open('http://reddit.com/submit?url={shareURL}%3Ftid%3Dsm_btn_reddit&amp;title={headline}','','width=550, height=350, scrollbars=no')">Reddit</a>
+ </li>
+ </ul>
+ </div>
+ <div class="right">
+ <ul>
+ <li>
+ <div class="shareitems stumbleupon"></div><a href="http://www.stumbleupon.com/submit?url={shareURL}%3Ftid%3Dsm_btn_su&amp;title={headline}">StumbleUpon</a>
+ </li>
+ <li>
+ <div class="shareitems digg"></div> <a href="http://digg.com/submit?phase=2&amp;url={shareURL}%3Ftid%3Dsm_btn_digg&amp;title={headline}">Digg</a>
+ </li>
+ <li>
+ <div class="shareitems delicious"></div> <a href="http://www.delicious.com/save?v=5&amp;noui&amp;jump=close&amp;url={shareURL}%3Ftid%3Dsm_btn_delicious&amp;title={headline}">Delicious</a>
+ </li>
+ </ul>
+ </div>
+ <div style="clear:both;"></div>
+ </div>
+ </div>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="right-rail" class="pb-layout-item pb-chain pb-one right-rail"
+ data-pb-columns="1">
+ <div id="rzchwozzutoatieqlcqmuow_1421785167982_543" class="moat-trackable pb-feature pb-chained pb-f-page-newsletter pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="" data-pb-name="page-newsletter"
+ data-pb-content-uri="/pb/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html"
+ data-pb-content-editable="" moat-id="page-newsletter|article-business">
+ <div id="newsLetter-signup-box" class="pb-feature-inside-wrapper ">
+ <p id="newsletter-section">world</p>
+ <p id="newsletter-subsection">middle_east</p>
+ <p id="newsletter-blogname"></p>
+ <p class="headline" id="newsletter-headline"></p>
+ <p class="title" id="newsletter-tagline"></p>
+ <form method="post" action="http://link.washingtonpost.com/s">
+ <input type="text" name="email" id="newsLetter-input" class="newsLetter-field"
+ placeholder="E-mail address"/>
+ <input type="submit" value="Add" class="newsLetter-btn" id="subscribe-newsLetter"/>
+ <input type="hidden" name="template" value="" id="template-var"/>
+ <input type="hidden" name="vars[simple_signup]" value="1"/>
+ <input type="hidden" name="vars[simple]" value="1"/>
+ <input type="hidden" name="" value="1" id="variable-var"/>
+ <input type="hidden" name="redirect" value="" id="redirect-url"/>
+ </form>
+ <p class="newsLetter-error-msg">Please enter a valid email address</p>
+ </div>
+ </div>
+ <div id="article-business_1409240003194_922" class="moat-trackable pb-feature pb-chained pb-f-ad-flex pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="" data-pb-name="ad-flex" data-pb-content-uri="/pb/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html"
+ data-pb-content-editable="" moat-id="ad-flex|article-business">
+ <div id="slug_flex_ss_bb_hp" class="pb-ad-container" style="display:none;"
+ data-ad-type="flex_ss_bb_hp"></div>
+ </div>
+ <div id="article-business_1409240010906_564" class="moat-trackable pb-feature pb-chained pb-f-page-post-most pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="" data-pb-name="page-post-most"
+ data-pb-content-uri="/pb/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html"
+ data-pb-content-editable="" moat-id="page-post-most|article-business">
+ <div id="post-most-rr" class="post-most">
+ <div class="header-mobile-border"></div>
+ <div class="pb-module-header">Most Read <span class="section">Business</span>
+ </div>
+ <ul class="large def-feed">
+ <li> <a href="http://www.washingtonpost.com/news/energy-environment/wp/2015/03/16/the-melting-of-antarctica-was-already-really-bad-it-just-got-worse/?tid=pm_business_pop"> <div class="number left">1</div> <img class="photo right small-img" src="http://img.washingtonpost.com/rf/image_60x60/WashingtonPost/Content/Blogs/energy-environment/201503/Images/2012-02-07T003457Z_01_TOR105_RTRIDSP_3_USA.jpg" width="60" height="60"/> <img class="photo right big-img" src="http://img.washingtonpost.com/rf/image_138x92/WashingtonPost/Content/Blogs/energy-environment/201503/Images/2012-02-07T003457Z_01_TOR105_RTRIDSP_3_USA.jpg" width="138" height="92"/> <div class="headline ">The melting of Antarctica was already really bad. It just got worse.</div> <div class="clear"></div> </a>
+ </li>
+ <li> <a href="http://www.washingtonpost.com/blogs/wonkblog/wp/2015/03/18/the-worlds-longest-non-stop-flights-mapped/?tid=pm_business_pop"> <div class="number left">2</div> <img class="photo right small-img" src="http://img.washingtonpost.com/rf/image_60x60/WashingtonPost/Content/Blogs/wonkblog/201503/Images/tumblr_n1zot9AsFt1s3dn7vo1_1280.png" width="60" height="60"/> <img class="photo right big-img" src="http://img.washingtonpost.com/rf/image_138x92/WashingtonPost/Content/Blogs/wonkblog/201503/Images/tumblr_n1zot9AsFt1s3dn7vo1_1280.png" width="138" height="92"/> <div class="headline ">The world's longest non-stop flights, mapped</div> <div class="clear"></div> </a>
+ </li>
+ <li> <a href="http://www.washingtonpost.com/blogs/wonkblog/wp/2015/03/18/fed-signals-that-higher-interest-rates-are-coming/?tid=pm_business_pop"> <div class="number left">3</div> <img class="photo right small-img" src="http://img.washingtonpost.com/rf/image_60x60/WashingtonPost/Content/Blogs/wonkblog/201503/Images/Was8907355.jpg" width="60" height="60"/> <img class="photo right big-img" src="http://img.washingtonpost.com/rf/image_138x92/WashingtonPost/Content/Blogs/wonkblog/201503/Images/Was8907355.jpg" width="138" height="92"/> <div class="headline ">Federal Reserve decision: Fed signals that higher interest rates are coming</div> <div class="clear"></div> </a>
+ </li>
+ <li> <a href="http://www.washingtonpost.com/blogs/wonkblog/wp/2015/03/18/the-most-popular-breakfast-cereals-in-america-today/?tid=pm_business_pop"> <div class="number left">4</div> <img class="photo right small-img" src="http://img.washingtonpost.com/rf/image_60x60/WashingtonPost/Content/Blogs/wonkblog/201503/Images/2015-03-05T143249Z_01_TOR117_RTRIDSP_3_KROGER-RESULTS.jpg" width="60" height="60"/> <img class="photo right big-img" src="http://img.washingtonpost.com/rf/image_138x92/WashingtonPost/Content/Blogs/wonkblog/201503/Images/2015-03-05T143249Z_01_TOR117_RTRIDSP_3_KROGER-RESULTS.jpg" width="138" height="92"/> <div class="headline ">The most popular breakfast cereals in America today</div> <div class="clear"></div> </a>
+ </li>
+ <li class="last"> <a href="http://www.washingtonpost.com/blogs/the-switch/wp/2015/03/18/tesla-just-won-a-huge-victory-in-new-jersey/?tid=pm_business_pop"> <div class="number left">5</div> <img class="photo right small-img" src="http://img.washingtonpost.com/rf/image_60x60/WashingtonPost/Content/Blogs/the-switch/201503/Images/Screen-Shot-2014-10-22-at-11.32.40.jpg" width="60" height="60"/> <img class="photo right big-img" src="http://img.washingtonpost.com/rf/image_138x92/WashingtonPost/Content/Blogs/the-switch/201503/Images/Screen-Shot-2014-10-22-at-11.32.40.jpg" width="138" height="92"/> <div class="headline ">Tesla just won a huge victory in New Jersey</div> <div class="clear"></div> </a>
+ </li>
+ </ul>
+ <ul class="large alt-feed">
+ <li> <a href="http://www.washingtonpost.com/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html?tid=pm_business_pop_b"> <div class="number left">1</div> <img class="photo right small-img" src="http://img.washingtonpost.com/rf/image_60x60/2010-2019/WashingtonPost/2015/03/18/National-Economy/Images/Nic6429750-1138.jpg" width="60" height="60"/> <img class="photo right big-img" src="http://img.washingtonpost.com/rf/image_138x92/2010-2019/WashingtonPost/2015/03/18/National-Economy/Images/Nic6429750-1138.jpg" width="138" height="92"/> <div class="headline ">Where do strained U.S.-Israeli relations go after Netanyahu’s victory?</div> <div class="clear"></div> </a>
+ </li>
+ <li> <a href="http://www.washingtonpost.com/news/energy-environment/wp/2015/03/16/the-melting-of-antarctica-was-already-really-bad-it-just-got-worse/?tid=pm_business_pop_b"> <div class="number left">2</div> <img class="photo right small-img" src="http://img.washingtonpost.com/rf/image_60x60/WashingtonPost/Content/Blogs/energy-environment/201503/Images/2012-02-07T003457Z_01_TOR105_RTRIDSP_3_USA.jpg" width="60" height="60"/> <img class="photo right big-img" src="http://img.washingtonpost.com/rf/image_138x92/WashingtonPost/Content/Blogs/energy-environment/201503/Images/2012-02-07T003457Z_01_TOR105_RTRIDSP_3_USA.jpg" width="138" height="92"/> <div class="headline ">The melting of Antarctica was already really bad. It just got worse.</div> <div class="clear"></div> </a>
+ </li>
+ <li> <a href="http://www.washingtonpost.com/blogs/wonkblog/wp/2015/03/18/the-worlds-longest-non-stop-flights-mapped/?tid=pm_business_pop_b"> <div class="number left">3</div> <img class="photo right small-img" src="http://img.washingtonpost.com/rf/image_60x60/WashingtonPost/Content/Blogs/wonkblog/201503/Images/tumblr_n1zot9AsFt1s3dn7vo1_1280.png" width="60" height="60"/> <img class="photo right big-img" src="http://img.washingtonpost.com/rf/image_138x92/WashingtonPost/Content/Blogs/wonkblog/201503/Images/tumblr_n1zot9AsFt1s3dn7vo1_1280.png" width="138" height="92"/> <div class="headline ">The world’s longest non-stop flights, mapped</div> <div class="clear"></div> </a>
+ </li>
+ <li> <a href="http://www.washingtonpost.com/blogs/wonkblog/wp/2015/03/18/fed-signals-that-higher-interest-rates-are-coming/?tid=pm_business_pop_b"> <div class="number left">4</div> <img class="photo right small-img" src="http://img.washingtonpost.com/rf/image_60x60/WashingtonPost/Content/Blogs/wonkblog/201503/Images/Was8907355.jpg" width="60" height="60"/> <img class="photo right big-img" src="http://img.washingtonpost.com/rf/image_138x92/WashingtonPost/Content/Blogs/wonkblog/201503/Images/Was8907355.jpg" width="138" height="92"/> <div class="headline ">Federal Reserve decision: Fed signals that higher interest rates are coming</div> <div class="clear"></div> </a>
+ </li>
+ <li class="last"> <a href="http://www.washingtonpost.com/blogs/wonkblog/wp/2015/03/18/2015-ncaa-tournament-your-guide-to-picking-all-the-upsets-in-this-years-ncaa-tournament/?tid=pm_business_pop_b"> <div class="number left">5</div> <img class="photo right small-img" src="http://img.washingtonpost.com/rf/image_60x60/WashingtonPost/Content/Blogs/wonkblog/201503/Images/NCAA_South_Georgetowns_Past-0e6bf.jpg" width="60" height="60"/> <img class="photo right big-img" src="http://img.washingtonpost.com/rf/image_138x92/WashingtonPost/Content/Blogs/wonkblog/201503/Images/NCAA_South_Georgetowns_Past-0e6bf.jpg" width="138" height="92"/> <div class="headline ">2015 NCAA tournament: Your guide to picking all the upsets in this year’s NCAA tournament</div> <div class="clear"></div> </a>
+ </li>
+ </ul>
+ <div id="slug_postmost" data-ad-type="postmost" style="display:none;width:100%;"></div>
+ </div>
+ </div>
+ <div id="article-business_1410205915966_362" class="moat-trackable pb-feature pb-chained pb-f-most-sidebar pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="" data-pb-name="most-sidebar" data-pb-content-uri="/pb/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html"
+ data-pb-content-editable="" moat-id="most-sidebar|article-business">
+ <style>
+ .the-most ul.large li{display:none}
+ </style>
+ <div id="the-most-rr" class="the-most">
+ <div class="header-mobile-border"></div>
+ <div class="pb-module-header"> <a class="the-most-sb-header" href="https://www.washingtonpost.com/themost?tid=themost_sb_header">The Most <span class="section">Popular All Over</span></a>
+ <div
+ id="slug_most_tile" style="float:right; position: relative; bottom: 15px;"
+ data-ad-type="most_tile"></div>
+ </div>
+ <ul class="large">
+ <li>
+ <div class="outer-div"> <a target="_blank" href="https://www.thedodo.com/dogs-who-are-smothering-the-cat-with-their-love-1047641763.html"> <img height="60" width="60" class="photo right small-img" src="http://img.washingtonpost.com/wp-apps/imrs.php?src=https://assets.rbl.ms/605929/300x.jpg&amp;h=60&amp;w=60"/> <img height="92" width="138" class="photo right big-img" src="http://img.washingtonpost.com/wp-apps/imrs.php?src=https://assets.rbl.ms/605929/300x.jpg&amp;h=92&amp;w=138"/> </a>
+ <a
+ target="_blank" href="http://www.thedodo.com">
+ <div class="feedname">The Dodo</div>
+ </a> <a target="_blank" href="https://www.thedodo.com/dogs-who-are-smothering-the-cat-with-their-love-1047641763.html"> <div class="line-outer"> <div class="line headline">12 Dogs Who Are Smothering The Cat With Their Love</div> </div> </a>
+ </div>
+ <div class="clear"></div>
+ </li>
+ <li>
+ <div class="outer-div"> <a target="_blank" href="http://www.wnyc.org/story/race-and-latino-americans/"> <img height="60" width="60" class="photo right small-img" src="http://img.washingtonpost.com/wp-apps/imrs.php?src=https://media2.wnyc.org/i/1500/1053/c/80/1/Rodner_Figueroa_getty.jpg&amp;h=60&amp;w=60"/> <img height="92" width="138" class="photo right big-img" src="http://img.washingtonpost.com/wp-apps/imrs.php?src=https://media2.wnyc.org/i/1500/1053/c/80/1/Rodner_Figueroa_getty.jpg&amp;h=92&amp;w=138"/> </a>
+ <a
+ target="_blank" href="http://www.wnyc.org">
+ <div class="feedname">WNYC - New York Public Radio</div>
+ </a> <a target="_blank" href="http://www.wnyc.org/story/race-and-latino-americans/"> <div class="line-outer"> <div class="line headline">'The Deepest, Darkest Secret in the Latino Community'</div> </div> </a>
+ </div>
+ <div class="clear"></div>
+ </li>
+ <li class="last">
+ <div class="outer-div"> <a target="_blank" href="http://feedproxy.google.com/~r/time/topstories/~3/nUTIa4bLKY8/"> <img height="60" width="60" class="photo right small-img" src="http://img.washingtonpost.com/wp-apps/imrs.php?src=https://timedotcom.files.wordpress.com/2015/03/terry-mcauliffe.jpg?quality=65&amp;strip=color&amp;w=150&amp;h=60&amp;w=60"/> <img height="92" width="138" class="photo right big-img" src="http://img.washingtonpost.com/wp-apps/imrs.php?src=https://timedotcom.files.wordpress.com/2015/03/terry-mcauliffe.jpg?quality=65&amp;strip=color&amp;w=150&amp;h=92&amp;w=138"/> </a>
+ <a
+ target="_blank" href="http://www.time.com">
+ <div class="feedname">TIME</div>
+ </a> <a target="_blank" href="http://feedproxy.google.com/~r/time/topstories/~3/nUTIa4bLKY8/"> <div class="line-outer"> <div class="line headline">Virginia Governor Calls for Probe Into Student’s Arrest</div> </div> </a>
+ </div>
+ <div class="clear"></div>
+ </li>
+ </ul>
+ <div id="slug_the_most"> <a id="the_most_sub_button" href="https://www.washingtonpost.com/themost?tid=themost_sb_img"
+ target="_blank"> <span>The Most</span> Popular stories around the web </a>
+ </div>
+ <div id="slug_most_logo" data-ad-type="most_logo" style="display:none;"></div>
+ </div>
+ </div>
+ <div id="article-business_1409240017498_319" class="moat-trackable pb-feature pb-chained pb-f-ad-flex-2 pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="" data-pb-name="ad-flex-2" data-pb-content-uri="/pb/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html"
+ data-pb-content-editable="" moat-id="ad-flex-2|article-business">
+ <div id="slug_flex_ss_bb_hp_2" class="pb-ad-container" style="display:none;"
+ data-ad-type-placeholder="flex_ss_bb_hp|2" data-ad-delivery="vi"></div>
+ </div>
+ <div id="article-business_1414477165152_294" class="moat-trackable pb-feature pb-chained pb-f-games-gamesWidget pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="" data-pb-name="games-gamesWidget"
+ data-pb-content-uri="/pb/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html"
+ data-pb-content-editable="" moat-id="games-gamesWidget|article-business">
+ <div class="right-rail game-module position-rel html5">
+ <div class="games-intro">
+ <h4>Our Online Games</h4>
+ <p>Play right from this page</p>
+ </div>
+ <div class="position-abs on-right game-player-container ghide">
+ <div class="position-rel full-width full-height game-player-container-inner overflow-hidden">
+ <iframe frameborder="0"></iframe>
+ <img class="screenshot position-abs on-left"/>
+ </div>
+ <div class="close-button position-abs"><i class="fa fa-2x fa-times-circle"></i>
+ </div>
+ </div>
+ <div class="full-width module component">
+ <div class="game-widgets-container position-rel">
+ <div id="online-game-carousel-right-rail">
+ <ul class="games">
+ <li> <a data-toggle="game-trigger" href="javascript:void(0)" class="clear block flash"> <div class="game-item" onlineembeddedgameurl="http://games.washingtonpost.com/API/en-US/games/sudoku/flash?type=gamesembed" onlinegamecodelanguage="flash" iframewidth="650px" iframeheight="470"> <img src="http://cdn.arenaconnect.arkadiumhosted.com/games-storage/sudoku/img/148x148.png" alt="sudoku"/> <div> <h4>Sudoku</h4> <h5>Genre(s):</h5><span>&nbsp;&nbsp;Strategy</span> <p> Put on your Sudoku hat and get ready for a challenging Sudoku puzzle! </p> </div> </div> </a>
+ </li>
+ <li> <a data-toggle="game-trigger" href="javascript:void(0)" class="clear block flash"> <div class="game-item" onlineembeddedgameurl="http://games.washingtonpost.com/API/en-US/games/daily-crossword/flash?type=gamesembed" onlinegamecodelanguage="flash" iframewidth="650px" iframeheight="450"> <img src="http://cdn.arenaconnect.arkadiumhosted.com/games-storage/daily-crossword/img/148x148.png" alt="daily-crossword"/> <div> <h4>Daily Crossword</h4> <h5>Genre(s):</h5><span>&nbsp;&nbsp;Word</span> <p> Same fun of crosswords but online! </p> </div> </div> </a>
+ </li>
+ <li> <a data-toggle="game-trigger" href="javascript:void(0)" class="clear block flash"> <div class="game-item" onlineembeddedgameurl="http://games.washingtonpost.com/API/en-US/games/just-words/flash?type=gamesembed" onlinegamecodelanguage="flash" iframewidth="650px" iframeheight="455"> <img src="http://cdn.arenaconnect.arkadiumhosted.com/games-storage/masque-just-words/img/148x148.png" alt="masque-just-words"/> <div> <h4>Just Words</h4> <h5>Genre(s):</h5><span>&nbsp;&nbsp;Word</span> <p> Get ready to be wowed with wonderful word fun! </p> </div> </div> </a>
+ </li>
+ <li> <a data-toggle="game-trigger" href="javascript:void(0)" class="clear block html5"> <div class="game-item" onlineembeddedgameurl="http://games.washingtonpost.com/API/en-US/games/trizzle/html5?type=gamesembed" onlinegamecodelanguage="html5" iframewidth="650px" iframeheight="0"> <img src="http://cdn.arenaconnect.arkadiumhosted.com/games-storage/html5-trizzle/img/292x194.png" alt="html5-trizzle"/> <div> <h4>Trizzle</h4> <h5>Genre(s):</h5><span>&nbsp;&nbsp;Strategy</span> <p> Experience the joy of Trizzle! </p> </div> </div> </a>
+ </li>
+ </ul>
+ </div> <a href="#" id="ui-carousel-prev" class="up-arrow position-abs on-top on-right"><i class="icon-chevron-up icon-2x"></i></a>
+ <a
+ href="#" id="ui-carousel-next" class="down-arrow position-abs on-bottom on-right"><i class="icon-chevron-down icon-2x"></i>
+ </a>
+ </div>
+ </div>
+ <div class="clear"></div>
+ </div>
+ </div>
+ <div id="article-business_1409240029666_516" class="moat-trackable pb-feature pb-chained pb-f-page-editors-picks pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="" data-pb-name="page-editors-picks"
+ data-pb-content-uri="/pb/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html"
+ data-pb-content-editable="" moat-id="page-editors-picks|article-business"></div>
+ <div id="article-business_1409240036732_683" class="moat-trackable pb-feature pb-chained pb-f-page-footer-v2 pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="" data-pb-name="page-footer-v2"
+ data-pb-content-uri="/pb/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html"
+ data-pb-content-editable="" moat-id="page-footer-v2|article-business">
+ <ul class="footer-v2 plain">
+ <li><a href="http://www.washingtonpost.com"><b>washingtonpost.com</b></a>
+ </li>
+ <li>© 1996-2015 The Washington Post</li>
+ <li>&nbsp;</li>
+ <li><a href="http://www.washingtonpost.com/actmgmt/help/">Help and Contact Us</a>
+ </li>
+ <li><a href="http://www.washingtonpost.com/terms-of-service/2011/11/18/gIQAldiYiN_story.html">Terms of Service</a>
+ </li>
+ <li><a href="http://www.washingtonpost.com/privacy-policy/2011/11/18/gIQASIiaiN_story.html">Privacy Policy</a>
+ </li>
+ <li><a href="http://www.washingtonpost.com/discussion-and-submission-guidelines/2011/11/21/gIQAuvIbiN_story.html">Submissions and Discussion Policy</a>
+ </li>
+ <li><a href="http://www.washingtonpost.com/rss-terms-of-service/2012/01/16/gIQAadFYAQ_story.html">RSS Terms of Service</a>
+ </li>
+ <li><a href="http://www.washingtonpost.com/how-can-i-opt-out-of-online-advertising-cookies/2011/11/18/gIQABECbiN_story.html">Ad Choices</a>
+ </li>
+ </ul>
+ </div>
+ <div id="article-business_1409240042494_825" class="moat-trackable pb-feature pb-chained pb-f-ad-flex-3 pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="" data-pb-name="ad-flex-3" data-pb-content-uri="/pb/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html"
+ data-pb-content-editable="" moat-id="ad-flex-3|article-business">
+ <div id="slug_flex_ss_bb_hp_3" class="pb-ad-container" style="display:none;"
+ data-ad-type-placeholder="flex_ss_bb_hp|3" data-ad-delivery="vi"></div>
+ </div>
+ </div>
+ </div>
+ <div id="article-business_1401912648216_112" class="moat-trackable pb-layout-item pb-feature pb-three pb-f-article-next-story pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="3" data-pb-name="article-next-story"
+ data-pb-content-uri="/pb/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html"
+ data-pb-content-editable="" moat-id="article-next-story|article-business">
+ <style type="text/css">
+ .pb-f-article-next-story{display:none}
+ </style>
+ </div>
+ <div id="article-business_1401913151279_677" class="moat-trackable pb-layout-item pb-feature pb-three pb-f-ad-leaderboard-2 pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="3" data-pb-name="ad-leaderboard-2"
+ data-pb-content-uri="/pb/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html"
+ data-pb-content-editable="" moat-id="ad-leaderboard-2|article-business">
+ <div id="slug_leaderboard_bottom" data-ad-type="leaderboard_bottom" class="pb-ad-container leaderboard-2"
+ style="display:none;"></div>
+ </div>
+ <div class="pb-scatter">
+ <div id="rzchwozzutoatieqlcqmuow_1423588473636_766" class="moat-trackable pb-layout-item pb-feature pb-one pb-f-page-clavis pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="1" data-pb-name="page-clavis" data-pb-content-uri="/pb/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html"
+ data-pb-content-editable="" moat-id="page-clavis|article-business">
+ <script>
+ try{if(wp_meta_data){if(!wp_meta_data.clavis){wp_meta_data.clavis={}}(function(){var clavisArray=[];var clavisNames=[];clavisArray.push("RW0");clavisNames.push("Child 2");clavisArray.push("KTT");clavisNames.push("New Auxiliary 30");clavisArray.push("sa6");clavisNames.push("New Auxiliary 37");clavisArray.push("4hr");clavisNames.push("New Auxiliary 38");clavisArray.push("g5c");clavisNames.push("New Auxiliary 39");clavisArray.push("3fv");clavisNames.push("New Auxiliary 40");clavisArray.push("8z8");clavisNames.push("Aux 100714");clavisArray.push("z0s");clavisNames.push("Copy of New Auxiliary 20");clavisArray.push("n8g");clavisNames.push("Copy of New Auxiliary 20");clavisArray.push("5k4");clavisNames.push("China_HongKong%20Exclusion%2012-12-14");clavisArray.push("7f3");clavisNames.push("Copy of New Auxiliary 26");clavisArray.push("o1b");clavisNames.push("Defense%20and%20National%20Security%202.12.15");clavisArray.push("m1d");clavisNames.push("Copy%20of%20Defense%20and%20National%20Security%202.12.15");clavisArray.push("pvj");clavisNames.push("New Auxiliary 46");wp_meta_data.clavis.auxiliaries=clavisArray;wp_meta_data.clavis.auxiliary_names=clavisNames})()}}catch(e){};
+ </script>
+ </div>
+ <div id="rzchwozzutoatieqlcqmuow_1424205096940_6" class="moat-trackable pb-layout-item pb-feature pb-one pb-f-page-targeting pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="1" data-pb-name="page-targeting"
+ data-pb-content-uri="/pb/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html"
+ data-pb-content-editable="" moat-id="page-targeting|article-business">
+ <script type="text/javascript">
+ (function($){TWP=window.TWP||{};TWP.Features=TWP.Features||{};TWP.Features.Page=TWP.Features.Page||{};TWP.Features.Page.Targeting={};TWP.Features.Page.Targeting.endpointServer="https://targeting.wpdigital.net/TargetingWebAPP/targeting"})(jQuery);
+ </script>
+ </div>
+ </div>
+ <div id="rzchwozzutoatieqlcqmuow_1425455292781_802" class="moat-trackable pb-layout-item pb-feature pb-three pb-f-page-subscription pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="3" data-pb-name="page-subscription"
+ data-pb-content-uri="/pb/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html"
+ data-pb-content-editable="" moat-id="page-subscription|article-business">
+ <div id="subscription-banner" class="ab-test-subscription-banner banner"
+ style="display: none;">
+ <div class="wp-logo"> <a href="http://www.washingtonpost.com?nid=top_pb_wplogo">The Washington Post</a>
+ </div>
+ <div class="banner-content">
+ <p class="subscribe-headline">Every story. Every feature. Every insight.</p>
+ <p class="subscribe-tagline">Yours for as low as JUST 99¢!</p> <a href="https://subscribe.washingtonpost.com/acquisition/?promo=dgdefault_bannertest1&amp;view=1&amp;wpsrc=CM0000262&amp;ttexclude=1&amp;hl=hl2N99"
+ id="subscribe-btn" class="submit-btn subscribe"> Subscribe </a> <span class="not-now-btn subscribe"> <p class="label">Not Now</p> <a class="link"><i class="fa fa-times"></i></a> </span>
+ </div>
+ </div>
+ <div id="signup-banner" class="ab-test-signup-banner banner" style="display: none;">
+ <p id="newsletter-banner-section">world</p>
+ <p id="newsletter-banner-subsection">middle_east</p>
+ <p id="newsletter-banner-blogname"></p>
+ <div class="wp-logo"> <a href="http://www.washingtonpost.com?nid=top_pb_wplogo">The Washington Post</a>
+ </div>
+ <div class="banner-content">
+ <div class="signup-title">
+ <p class="signup-headline" id="newsletter-headline-banner"></p>
+ <p class="signup-tagline" id="newsletter-tagline-banner"></p>
+ </div>
+ <form method="post" action="http://link.washingtonpost.com/s" id="signup-form">
+ <input type="text" name="email" class="signup-field" placeholder="E-mail address"
+ id="newsLetter-input-banner"/>
+ <input type="submit" value="Add" class="submit-btn signup" id="signup-newsLetter"/>
+ <input type="hidden" name="template" value="" id="template-var-banner"/>
+ <input type="hidden" name="vars[simple_signup]" value="1"/>
+ <input type="hidden" name="vars[simple]" value="2" id="banner-simple-var"/>
+ <input type="hidden" name="" value="1" id="variable-var-banner"/>
+ <input type="hidden" name="redirect" value="" id="redirect-url-banner"/>
+ </form>
+ <div class="clear"></div>
+ <div class="newsletter-suggestions">
+ <p class="title">You might also like:</p>
+ <div class="suggestion-list">
+ <div class="suggestion">
+ <input type="checkbox" class="checkbox"/>
+ <p class="title">Name of Related Newsletter (daily)</p>
+ </div>
+ <div class="suggestion">
+ <input type="checkbox" class="checkbox"/>
+ <p class="title">Another Related Newsletter (M-W-F)</p>
+ </div>
+ <div class="suggestion">
+ <input type="checkbox" class="checkbox"/>
+ <p class="title">This Newsletter is Good (weekly)</p>
+ </div>
+ </div>
+ <div class="suggestion-buttons">
+ <input type="submit" value="No, thanks" class="submit-btn signup" id="signup-cancel"/>
+ <input type="submit" value="Sign Up" class="submit-btn signup" id="signup-more"/>
+ </div>
+ </div> <span class="not-now-btn subscribe"> <p class="label">Not Now</p> <a class="link"><i class="fa fa-times"></i></a> </span>
+ </div>
+ <p class="newsLetter-error-msg-banner">Incorrect email</p>
+ </div>
+ </div>
+ <div id="article-business_1415646289433_293" class="moat-trackable pb-layout-item pb-feature pb-three pb-f-bi-abtest pb-f-theme-normal"
+ data-pb-async="false" data-pb-columns="3" data-pb-name="bi-abtest" data-pb-content-uri="/pb/business/economy/netanyahu-win-points-to-two-more-years-of-strained-us-israel-ties/2015/03/18/ca175d64-cd76-11e4-a2a7-9517a3a70506_story.html"
+ data-pb-content-editable="" moat-id="bi-abtest|article-business">
+ <script>
+ var TWP=window.TWP||{};(function(w,usrValue,undefined){var usr=w.TWP.ABTestUser=usrValue;w._abtemptyfn=function(){return undefined}})(window,{trackPageviewEventBefore:"onTwpMeterComplete.omniture"||"abtest-noevent",trackPageviewEventAfter:"afterTwpPageTrack.omniture"||"abtest-noevent",trackSetHandler:"TWP.ABTestMfr.track.omniture.trackSetHandler"||"_abtemptyfn",trackUnsetHandler:"TWP.ABTestMfr.track.omniture.trackUnsetHandler"||"_abtemptyfn",trackSendHandler:"s.sendDataToOmniture"||"_abtemptyfn",trackValueDelimeter:","||","});
+ </script>
+ <script>
+ TWP.ABTestBucket=TWP.ABTestBucket||[];TWP.ABTestBucket.push({"name":"recommendation","features":[{"name":"recommendation-strip","active":true,"increment":0,"end":"1424062800000","_token":"76dde4","defaultTrack":[{"name":"list1","dynamic":false,"value":"recommendation-strip:default"},{"name":"prop56","dynamic":false,"value":"recommendation-strip:default"},{"name":"list1","dynamic":false,"value":"recommendation-strip-76dde4"},{"name":"prop56","dynamic":false,"value":"recommendation-strip-76dde4"}],"variations":[{"customOptions":{"target":"33"},"name":"alt1","track":[{"name":"list1","dynamic":false,"value":"recommendation-strip:alt1"},{"name":"prop56","dynamic":false,"value":"recommendation-strip:alt1"},{"name":"list1","dynamic":false,"value":"recommendation-strip-76dde4"},{"name":"prop56","dynamic":false,"value":"recommendation-strip-76dde4"}]},{"customOptions":{"target":"33"},"name":"sidebar_alt1","track":[{"name":"list1","dynamic":false,"value":"recommendation-strip:sidebar_alt1"},{"name":"prop56","dynamic":false,"value":"recommendation-strip:sidebar_alt1"},{"name":"list1","dynamic":false,"value":"recommendation-strip-76dde4"},{"name":"prop56","dynamic":false,"value":"recommendation-strip-76dde4"}]}]},{"name":"recommendation-mostread","active":true,"increment":1,"end":"1425013200000","_token":"5af7e9","defaultTrack":[{"name":"list1","dynamic":false,"value":"recommendation-mostread:default"},{"name":"prop56","dynamic":false,"value":"recommendation-mostread:default"},{"name":"list1","dynamic":false,"value":"recommendation-mostread-5af7e9"},{"name":"prop56","dynamic":false,"value":"recommendation-mostread-5af7e9"}],"variations":[{"customOptions":{"target":"5"},"name":"chartbeat","track":[{"name":"list1","dynamic":false,"value":"recommendation-mostread:chartbeat"},{"name":"prop56","dynamic":false,"value":"recommendation-mostread:chartbeat"},{"name":"list1","dynamic":false,"value":"recommendation-mostread-5af7e9"},{"name":"prop56","dynamic":false,"value":"recommendation-mostread-5af7e9"}]}]}],"disabled":false});TWP.ABTestBucket.push({"name":"dummy","features":[{"name":"dummy-feature","active":true,"reglock":false,"end":"1418965200000","throttle":3.3333333333333335,"_token":"14376b","defaultTrack":[{"name":"list1","dynamic":false,"value":"dummy-feature:default"},{"name":"list1","dynamic":false,"value":"dummy-feature-14376b"}],"variations":[{"customOptions":{"target":"20"},"name":"easy1","track":[{"name":"list1","dynamic":false,"value":"dummy-feature:easy1"},{"name":"list1","dynamic":false,"value":"dummy-feature-14376b"}]},{"customOptions":{"target":"10"},"name":"easy2","track":[{"name":"list1","dynamic":false,"value":"dummy-feature:easy2"},{"name":"list1","dynamic":false,"value":"dummy-feature-14376b"}]}]}],"disabled":false});TWP.ABTestBucket.push({"name":"header","features":[{"name":"header-mastHead2","active":false,"increment":0,"end":"1416805200000","_token":"c15b6c","blacklist":{"referrers":["","washingtonpost.com"],"track":[{"name":"list1","dynamic":false,"value":"header-mastHead2:direct"}]},"defaultTrack":[{"name":"list1","dynamic":false,"value":"header-mastHead2:default"},{"name":"list1","dynamic":false,"value":"header-mastHead2-c15b6c"}],"variations":[{"customOptions":{"target":"5"},"name":"logoLarge","track":[{"name":"list1","dynamic":false,"value":"header-mastHead2:logoLarge"},{"name":"list1","dynamic":false,"value":"header-mastHead2-c15b6c"}]}]},{"name":"header-leaderboard","active":false,"increment":0,"end":"1423630800000","_token":"1f6567","defaultTrack":[{"name":"list1","dynamic":false,"value":"header-leaderboard:default"},{"name":"list1","dynamic":false,"value":"header-leaderboard-1f6567"}],"variations":[{"customOptions":{"target":"20"},"name":"below_sharebar","track":[{"name":"list1","dynamic":false,"value":"header-leaderboard:below_sharebar"},{"name":"list1","dynamic":false,"value":"header-leaderboard-1f6567"}]}]}],"disabled":false});TWP.ABTestBucket.push({"name":"subscription","features":[{"name":"subscription-popup","active":false,"increment":0,"end":"1425531600000","_token":"cb51bd","defaultTrack":[{"name":"list1","dynamic":false,"value":"subscription-popup:default"},{"name":"prop56","dynamic":false,"value":"subscription-popup:default"},{"name":"list1","dynamic":false,"value":"subscription-popup-cb51bd"},{"name":"prop56","dynamic":false,"value":"subscription-popup-cb51bd"}],"variations":[{"customOptions":{"target":"20"},"name":"enabled","track":[{"name":"list1","dynamic":false,"value":"subscription-popup:enabled"},{"name":"prop56","dynamic":false,"value":"subscription-popup:enabled"},{"name":"list1","dynamic":false,"value":"subscription-popup-cb51bd"},{"name":"prop56","dynamic":false,"value":"subscription-popup-cb51bd"}]}]},{"name":"subscription-mobilePopup","active":true,"increment":0,"end":"1426132800000","_token":"26a8c3","defaultTrack":[{"name":"list1","dynamic":false,"value":"subscription-mobilePopup:default"},{"name":"prop56","dynamic":false,"value":"subscription-mobilePopup:default"},{"name":"list1","dynamic":false,"value":"subscription-mobilePopup-26a8c3"},{"name":"prop56","dynamic":false,"value":"subscription-mobilePopup-26a8c3"}],"variations":[{"customOptions":{"target":"5"},"name":"enabled","track":[{"name":"list1","dynamic":false,"value":"subscription-mobilePopup:enabled"},{"name":"prop56","dynamic":false,"value":"subscription-mobilePopup:enabled"},{"name":"list1","dynamic":false,"value":"subscription-mobilePopup-26a8c3"},{"name":"prop56","dynamic":false,"value":"subscription-mobilePopup-26a8c3"}]}]},{"name":"subscription-rightRailText","active":false,"increment":0,"end":"1425618000000","_token":"419734","defaultTrack":[{"name":"list1","dynamic":false,"value":"subscription-rightRailText:default"},{"name":"prop56","dynamic":false,"value":"subscription-rightRailText:default"},{"name":"list1","dynamic":false,"value":"subscription-rightRailText-419734"},{"name":"prop56","dynamic":false,"value":"subscription-rightRailText-419734"}],"variations":[{"customOptions":{"target":"25"},"name":"version2","track":[{"name":"list1","dynamic":false,"value":"subscription-rightRailText:version2"},{"name":"prop56","dynamic":false,"value":"subscription-rightRailText:version2"},{"name":"list1","dynamic":false,"value":"subscription-rightRailText-419734"},{"name":"prop56","dynamic":false,"value":"subscription-rightRailText-419734"}]},{"customOptions":{"target":"25"},"name":"version3","track":[{"name":"list1","dynamic":false,"value":"subscription-rightRailText:version3"},{"name":"prop56","dynamic":false,"value":"subscription-rightRailText:version3"},{"name":"list1","dynamic":false,"value":"subscription-rightRailText-419734"},{"name":"prop56","dynamic":false,"value":"subscription-rightRailText-419734"}]},{"customOptions":{"target":"25"},"name":"version4","track":[{"name":"list1","dynamic":false,"value":"subscription-rightRailText:version4"},{"name":"prop56","dynamic":false,"value":"subscription-rightRailText:version4"},{"name":"list1","dynamic":false,"value":"subscription-rightRailText-419734"},{"name":"prop56","dynamic":false,"value":"subscription-rightRailText-419734"}]}]},{"name":"subscription-abcde","active":true,"increment":0,"end":"1428292800000","_token":"4748dc","defaultTrack":[{"name":"list1","dynamic":false,"value":"subscription-abcde:default"},{"name":"prop56","dynamic":false,"value":"subscription-abcde:default"},{"name":"list1","dynamic":false,"value":"subscription-abcde-4748dc"},{"name":"prop56","dynamic":false,"value":"subscription-abcde-4748dc"}],"variations":[{"customOptions":{"target":"4"},"name":"subPopup","track":[{"name":"list1","dynamic":false,"value":"subscription-abcde:subPopup"},{"name":"prop56","dynamic":false,"value":"subscription-abcde:subPopup"},{"name":"list1","dynamic":false,"value":"subscription-abcde-4748dc"},{"name":"prop56","dynamic":false,"value":"subscription-abcde-4748dc"}]},{"customOptions":{"target":"2"},"name":"newsletterPopup","track":[{"name":"list1","dynamic":false,"value":"subscription-abcde:newsletterPopup"},{"name":"prop56","dynamic":false,"value":"subscription-abcde:newsletterPopup"},{"name":"list1","dynamic":false,"value":"subscription-abcde-4748dc"},{"name":"prop56","dynamic":false,"value":"subscription-abcde-4748dc"}]},{"customOptions":{"target":"2"},"name":"inArticle","track":[{"name":"list1","dynamic":false,"value":"subscription-abcde:inArticle"},{"name":"prop56","dynamic":false,"value":"subscription-abcde:inArticle"},{"name":"list1","dynamic":false,"value":"subscription-abcde-4748dc"},{"name":"prop56","dynamic":false,"value":"subscription-abcde-4748dc"}]},{"customOptions":{"target":"2"},"name":"popupInArticle","track":[{"name":"list1","dynamic":false,"value":"subscription-abcde:popupInArticle"},{"name":"prop56","dynamic":false,"value":"subscription-abcde:popupInArticle"},{"name":"list1","dynamic":false,"value":"subscription-abcde-4748dc"},{"name":"prop56","dynamic":false,"value":"subscription-abcde-4748dc"}]}]}],"disabled":false});
+ </script>
+ <script>
+ (function ABTestMfrAnonymous($,TWP,window,undefined){var user=TWP.ABTestUser;var ABTM={};var trk=ABTM.track={};var omni=trk.omniture={trackSetHandler:function(props){if(!!window.s){var pn;for(pn in props){if(props.hasOwnProperty(pn)){s[pn]=(s[pn]?[s[pn],props[pn]]:[props[pn]]).join(user.trackValueDelimeter);if(/evar/gi.test(pn)){window["wp_"+pn.toLowerCase()]=props[pn]}}}}},trackUnsetHandler:function(props){if(!!window.s){var pn;for(pn in props){if(props.hasOwnProperty(pn)){s[pn]=(s[pn]||"").replace(("string"==typeof props[pn]?[props[pn]]:props[pn]).join(user.trackValueDelimeter),"");if(!s[pn]){s[pn]=undefined}if(/evar/gi.test(pn)){window["wp_"+pn.toLowerCase()]=undefined}}}}},trackSendHandler:function(customLinkName,events,props){if(!!window.s){var originalValues={};originalValues.events=s.events;originalValues.linkTrackEvents=s.linkTrackEvents;if(events){s.events=("string"===typeof events?[events]:events).join(user.trackValueDelimeter)||undefined;s.linkTrackEvents=s.events}omni.trackSetHandler(props);s.tl(true,"o",customLinkName,{linkTrackVars:function(){var results=[];if(events){results.push("events")}var name;for(name in props){if(props.hasOwnProperty(name)){results.push(name)}}return results.join(user.trackValueDelimeter)}()});s.events=originalValues.events;s.linkTrackEvents=originalValues.linkTrackEvents;omni.trackUnsetHandler(props)}}};TWP.ABTestMfr=ABTM})(jQuery,TWP,window);
+ </script>
+ </div>
+ </div>
+ <script src="//js.washingtonpost.com/wp-srv/ad/loaders/latest/js/min/loader.min.js"
+ async="" data-ad-page-type="responsive" data-ad-site="wp"></script>
+ <script type="text/javascript" src="/pb/resources/compact/template/rZcHWoZzuToaTieQLcQMUOw/javascripts/cd3facb93dab53ddfe1ce0ea3bacb2a3.js?_=f4b3d2"></script>
+ <script type="text/javascript" src="/pb/resource/footjs-rZcHWoZzuToaTieQLcQMUOw-6de5b76f.js?_=f4b3d2"></script>
+ <script type="text/javascript" src="/pb/resource/instancejs-rZcHWoZzuToaTieQLcQMUOw-6de5b76f.js?_=f4b3d2"></script>
+ <script type="text/javascript">
+ window.TWPHead.ready("main.js",function(){window.TWP&&TWP.Analytics&&TWP.Analytics.init("production"=="production"?"":{suite:"preproduction"})});
+ </script>
+ <noscript>
+ <img src="http://b.scorecardresearch.com/p?c1=2&c2=3005617&cv=2.0&cj=1"
+ />
+ </noscript>
+ <script type="text/javascript" src="//widget.perfectmarket.com/wwwwashingtonpost/load.js"></script>
+ <script type="text/javascript">
+ (function($){try{if((!!window.localStorage&&!!localStorage.opbandit&&localStorage.opbandit=="F")){$.ajax({dataType:"script",cache:true,url:"//data.opbandit.com/loader.min.js?key=3e6382b012abc555",success:function(data){}})}var $tweetAuthors=$(".tweet-authors");if((!!$tweetAuthors.size()&&!window.twttr)){$.ajax({dataType:"script",cache:true,url:"//platform.twitter.com/widgets.js",success:function(data){$tweetAuthors.find(".pb-twitter-follow.unprocessed").removeClass("unprocessed")}})}$.ajax({dataType:"script",cache:true,url:"//ak.sail-horizon.com/horizon/v1.js",success:function(data){if(window.Sailthru){Sailthru.setup({domain:"horizon.washingtonpost.com"})}}})}catch(e){}})(jQuery);
+ </script>
+ <script type="text/javascript">
+ !function(){if(!(Math.floor(100*Math.random())>99)){var a,b,c,d="//js.washingtonpost.com/wp-stat/rum/wprum.min.js",e=document.createElement("iframe");e.src="javascript:false",(e.frameElement||e).style.cssText="width: 0; height: 0; border: 0";var c=document.getElementsByTagName("script")[0];c.parentNode.insertBefore(e,c);try{b=e.contentWindow.document}catch(f){a=document.domain,e.src="javascript:var d=document.open();d.domain='"+a+"';void(0);",b=e.contentWindow.document}b.open()._l=function(){var b=this.createElement("script");a&&(this.domain=a),b.id="boomr-if-as",b.src=d,this.body.appendChild(b)},b.write('&lt;body onload="document._l();">'),b.close()}}();
+ </script>
+ </body>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/webmd-1/config.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/webmd-1/config.json
new file mode 100644
index 000000000..4bb89904f
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/webmd-1/config.json
@@ -0,0 +1,3 @@
+{
+ "summonCthulhu": true
+} \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/webmd-1/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/webmd-1/expected-images.json
new file mode 100644
index 000000000..2b266e478
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/webmd-1/expected-images.json
@@ -0,0 +1,3 @@
+[
+ "http:\/\/img.webmd.com\/dtmcms\/live\/webmd\/consumer_assets\/site_images\/miscellaneous\/webmd_FB_logo_bluebkgrd.jpg?v=1"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/webmd-1/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/webmd-1/expected-metadata.json
new file mode 100644
index 000000000..2a7bced70
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/webmd-1/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "By Brenda Goodman, MA\n WebMD Health News",
+ "Direction": null,
+ "Excerpt": "Life-threatening peanut allergies have mysteriously been on the rise in the past decade, with little hope for a cure. But a groundbreaking new study may offer a way to stem that rise, while another may offer some hope for those who are already allergic.",
+ "Image": "http:\/\/img.webmd.com\/dtmcms\/live\/webmd\/consumer_assets\/site_images\/miscellaneous\/webmd_FB_logo_bluebkgrd.jpg?v=1",
+ "Title": "Babies Who Eat Peanuts Early May Avoid Allergy",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/webmd-1/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/webmd-1/expected.html
new file mode 100644
index 000000000..ddbe3d84c
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/webmd-1/expected.html
@@ -0,0 +1,48 @@
+<div id="textArea">
+
+
+
+
+
+
+
+
+
+ <p>Feb. 23, 2015 -- Life-threatening peanut allergies have mysteriously been
+ on the rise in the past decade, with little hope for a cure.</p>
+ <p xmlns:xalan="http://xml.apache.org/xalan">But a groundbreaking new study may offer a way to stem that rise, while
+ another may offer some hope for those who are already allergic.</p>
+ <p>Parents have been told for years to avoid giving foods containing peanuts
+ to babies for fear of triggering an allergy. Now research shows the opposite
+ is true: Feeding babies snacks made with peanuts before their first birthday
+ appears to prevent that from happening.</p>
+ <p>The study is published in the <i>New England Journal of Medicine,</i> and
+ it was presented at the annual meeting of the American Academy of Allergy,
+ Asthma and Immunology in Houston. It found that among children at high
+ risk for getting peanut allergies, eating peanut snacks by 11 months of
+ age and continuing to eat them at least three times a week until age 5
+ cut their chances of becoming allergic by more than 80% compared to kids
+ who avoided peanuts. Those at high risk were already allergic to egg, they
+ had the skin condition <a href="http://www.webmd.com/skin-problems-and-treatments/eczema/default.htm" onclick="return sl(this,'','embd-lnk');">eczema</a>, or
+ both.</p>
+ <p>Overall, about 3% of kids who ate peanut butter or peanut snacks before
+ their first birthday got an allergy, compared to about 17% of kids who
+ didn’t eat them.</p>
+ <p>“I think this study is an astounding and groundbreaking study, really,”
+ says Katie Allen, MD, PhD. She's the director of the Center for Food and
+ Allergy Research at the Murdoch Children’s Research Institute in Melbourne,
+ Australia. Allen was not involved in the research.</p>
+ <p>Experts say the research should shift thinking about how kids develop
+ <a href="http://www.webmd.com/allergies/guide/food-allergy-intolerances" onclick="return sl(this,'','embd-lnk');">food allergies</a>, and it should change the guidance doctors give to
+ parents.</p>
+ <p>Meanwhile, for children and adults who are already <a href="http://www.webmd.com/allergies/guide/nut-allergy" onclick="return sl(this,'','embd-lnk');">allergic to peanuts</a>,
+ another study presented at the same meeting held out hope of a treatment.</p>
+ <p>A new skin patch called Viaskin allowed people with peanut allergies to
+ eat tiny amounts of peanuts after they wore it for a year.</p>
+ <h3>A Change in Guidelines?</h3>
+
+ <p>Allergies to peanuts and other foods are on the rise. In the U.S., more
+ than 2% of people react to peanuts, a 400% increase since 1997. And reactions
+ to peanuts and other tree nuts can be especially severe. Nuts are the main
+ reason people get a life-threatening problem called <a href="http://www.webmd.com/allergies/guide/anaphylaxis" onclick="return sl(this,'','embd-lnk');">anaphylaxis</a>.</p>
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/webmd-1/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/webmd-1/source.html
new file mode 100644
index 000000000..0b50ccc54
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/webmd-1/source.html
@@ -0,0 +1,2411 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en" class="no-js">
+
+ <head>
+ <title>Babies Who Eat Peanuts Early May Avoid Allergy</title>
+ <meta http-equiv="X-UA-Compatible"
+ content="IE=Edge"/>
+ <script type="text/javascript">
+ var s_topic="1625"
+ ,s_business_reference="News"
+ ,s_publication_source="WebMD Health News"
+ ,s_sponsor_brand="Dey_EpiPen"
+ ,s_sponsor_program="Dey_EpiPen_Patient Select Allergies"
+ ,s_package_type="topic targeted - sp"
+ ,s_package_name=""
+ ,s_channel_super_portal=""
+ ,s_channel_health="Allergies"
+ ,s_channel_topic_miniguide_guide=""
+ ,s_channel_mini=""
+ ,s_channel_micro=""
+ ,s_tug="2321"
+ ,s_topic_dir="false"
+ ,s_mrt=""
+ ,s_site="core"
+ ,s_assetname=""
+ ,s_searchterm="";
+ </script>
+ <script language="javascript" type="text/javascript">
+ var s_furl="/allergies/news/20150220/child-peanut-allergy-findings"; var s_sponsor_program=""; var s_sensitive="false"; var s_mrt=""; var image_server_url="http://img.webmd.com/dtmcms/live";var s_uk_user="false";
+ </script>
+ <meta name="description" content="Life-threatening peanut allergies have mysteriously been on the rise in the past decade, with little hope for a cure. But a groundbreaking new study may offer a way to stem that rise, while another may offer some hope for those who are already allergic."/>
+ <meta name="keywords" content="peanuts, peanut allergy, eczema, peanut allergies, babies and peanuts"/>
+ <link rel="alternate" type="application/rss+xml" title="RSS" href="http://rssfeeds.webmd.com/rss/rss.aspx?RSSSource=RSS_PUBLIC"/>
+ <link rel="alternate" media="only screen and (max-width: 640px)" href="http://www.m.webmd.com/allergies/news/20150220/child-peanut-allergy-findings"/>
+ <script language="javascript1.2" type="text/javascript">
+ <!--
+ var center="health"; var center_name="Allergies"; var center_id=893; var center_prefix="www"; var center_url="/allergies/default.htm";//-->
+ </script>
+ <meta http-equiv="CACHE-CONTROL" content="NO-CACHE"/>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <link rel="shortcut icon" href="http://img.webmd.com/dtmcms/live/images/favicon/webmd.ico"/>
+ <link href="http://img.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/CSS/layout.css"
+ type="text/css" rel="stylesheet"/>
+ <link rel="apple-touch-icon-precomposed" href="/favico/apple-touch-icon-precomposed.png"/>
+ <link rel="apple-touch-icon-precomposed" sizes="72x72" href="/favico/apple-touch-icon-72x72-precomposed.png"/>
+ <link rel="apple-touch-icon-precomposed" sizes="114x114" href="/favico/apple-touch-icon-114x114-precomposed.png"/>
+ <link rel="stylesheet" type="text/css" href="http://css.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/CSS/Site/WebMD_091e9c5e8004a22432.css"/>
+ <link rel="stylesheet" type="text/css" href="http://css.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/CSS_Aggr/Allergies News CAP/page_Allergies News CAP_091e9c5e80030184_psmodules_css_1224.css"/>
+ <link rel="stylesheet" type="text/css" href="http://css.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/CSS_Aggr/Base Template/template_Base Template_091e9c5e80020366_tmodules_css_4157.css"/>
+ <link rel="stylesheet" type="text/css" href="http://css.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/CSS_Aggr/Allergies Health Center/template_Allergies Health Center_091e9c5e80022c47_tmodules_css_4718.css"/>
+ <link rel="stylesheet" type="text/css" href="http://css.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/CSS_Aggr/Allergies News/template_Allergies News_091e9c5e8002e053_tmodules_css_1593.css"/>
+ <link rel="stylesheet" type="text/css" href="http://css.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/CSS_Aggr/Allergies News CAP/page_Allergies News CAP_091e9c5e80030184_pmodules_css_3838.css"/>
+ <link rel="stylesheet" type="text/css" href="http://css.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/CSS/Atlanta/reskin/reskin12.css"/>
+ <script language="javascript" type="text/javascript" src="http://img.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/JS/webmd.dynamicMobileThrottling.min13.js"></script>
+ <script language="javascript" type="text/javascript" src="http://img.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/JS/scripts373.js"></script>
+ <script language="javascript" type="text/javascript" src="http://img.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/JS/masthead36.js"></script>
+ <script language="javascript" type="text/javascript" src="http://img.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/JS/reskin/reskin14.js"></script>
+ <script language="javascript" type="text/javascript" src="http://img.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/JS/modules/webmd.m.mostPopSS9.js"></script>
+ <script language="javascript" type="text/javascript" src="http://img.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/JS/guide_navigation42.js"></script>
+ <script language="javascript" type="text/javascript" src="http://img.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/JS/oas69.js"></script>
+ <script language="javascript" type="text/javascript" src="http://img.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/JS/topic-directory/webmd.m.dynamicnav17.js"></script>
+ <script language="javascript" type="text/javascript" src="http://img.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/JS/topic-directory/webmd.m.dynrelart28.js"></script>
+ <script language="javascript" type="text/javascript" src="http://img.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/JS/modules/answers3_promo17.js"></script>
+ <script language="javascript" type="text/javascript" src="http://img.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/JS/hover-reg32.js"></script>
+ </head>
+
+ <body>
+ <div id="centering_area">
+ <div id="page_area">
+ <div id="bannerAd_ctr">
+ <div id="ContentPane1">
+ <script type="text/javascript">
+ // write mboxes for OTT
+ if (window.$ && window.webmd && window.mboxCreate) {
+ if (window.webmd.mbox) {
+ webmd.mbox.init();
+ }
+ }
+ </script>
+ <!-- define the Facebook share thumbnail -->
+ <link rel="image_src" href="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/miscellaneous/webmd_FB_logo_bluebkgrd.jpg?v=1"/>
+ <!--<ul><li>$adsystem = DFP</li><li>$pos = 101</li><li>$print = false</li></ul><ul><li>adtype = iFRAME</li><li>iframeheight = 90</li><li>iframewidth = 728</li><li>adserver = as.webmd.com</li></ul><ul><li>affiliate = 20</li><li>apg = 1625</li><li>artid = 091e9c5e810fb2ee</li><li>au1 = </li><li>au2 = </li><li>bc = _age121_l23_age122_j30_t780_</li><li>brand = 0</li><li>cc = 17</li><li>env = </li><li>hcent = 893</li><li>mcent = </li><li>micro = </li><li>pkg = &amp;leaf=</li><li>pos = 101</li><li>pug = __</li><li>scent = </li><li>sec = </li><li>segval = </li><li>site = 2</li><li>tile = 365904714</li><li>tmg = </li><li>transactionID = 442451382</li><li>tug = 2321</li><li>uri = %2fallergies%2fnews%2f20150220%2fchild-peanut-allergy-findings</li></ul>-->
+ <script>
+ var priTopId='1625', secTopId='';
+ </script>
+ <div id="bannerAd_rdr">
+ <div class="bannerAd_top_fmt"></div>
+ <div id="bannerAd_fmt" class="bannerAd_BG_fmt loaded">
+ <div id="ads2-pos-101-bannerAd" class="ad_placeholder"></div>
+ </div>
+ </div>
+ <script>
+ webmd.ads2Consumer.defineAd({targets:{art:'091e9c5e810fb2ee',cc:'17',env:'',hcent:'893',leaf:'&amp;leaf=',mcent:'',mic:'',pt:'1625',sec:'',pug:'__',scent:'',tmg:'',tug:'2321',uri:'%2fallergies%2fnews%2f20150220%2fchild-peanut-allergy-findings'},blockCodes:'_age121_l23_age122_j30_t780_',id:'ads2-pos-101-bannerAd',pos:'101',sizes:[[728,90],[970, 90],[970,250]]});
+ </script>
+ </div>
+ </div>
+ <div id="header_ctr">
+ <div id="ContentPane2">
+ <header id="masthead" class="bottom_header">
+ <div id="global_overlay"></div><a href="#mainContentContainer_area" class="jawsonly">Skip to content</a>
+ <div
+ id="banner" role="banner">
+ <div id="logo"><a onclick="sl(this,'','logo')" href="http://www.webmd.com/www/default.htm"><img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/usability/2012/LBi_Masthead/logo_trans.png" class="logo_rdr" alt="WebMD: Better information. Better health."/></a>
+ </div>
+ <div id="search_container" role="search">
+ <form action="http://www.webmd.com/search/search_results/default.aspx"
+ method="get" name="searchForm">
+ <label class="jawsonly" for="searchQuery_fmt">Enter Search Keywords. Use the arrow keys to navigate suggestions.</label>
+ <input
+ type="text" id="searchQuery_fmt" name="query" maxlength="200" value=""
+ autocomplete="off" title="Enter Search Keywords"/>
+ <input type="submit" class="searchButton_fmt" name="searchButton_fmt"
+ value="" title="Search" onclick="return sl(this,'','srch-bar_submit')"/>
+ </form>
+ <ul id="searchTypeahead_fmt" aria-live="assertive"></ul>
+ </div>
+ <div id="lln-srchbarlnks"><a onclick="return sl(this,'','lln-srchbarlnks_schk')" class="lln-symptoms"
+ href="http://www.webmd.com/symptoms/default.htm">Symptoms</a><span class="pipe">|</span>
+ <a
+ onclick="return sl(this,'','lln-srchbarlnks_phyd')" class="lln-doctors"
+ href="http://doctor.webmd.com/home">Doctors</a><span class="pipe">|</span> <a onclick="return sl(this,'','lln-srchbarlnks_hins')"
+ class="lln-insurance" href="http://www.webmd.com/health-insurance/default.htm">Health Care Reform</a>
+ </div>
+ </div>
+ <nav id="nav" role="navigation">
+ <ul>
+ <li id="nav_1" class="nav nav_reference"><a href="http://www.webmd.com/a-to-z-guides/common-topics/default.htm"
+ id="nav_link_1" aria-haspopup="true" class="nav_link" onclick="return sl(this,'','hicb1-tab')">Health A-Z</a>
+ <div
+ id="menu_1" class="nav_dropdown" role="menu" aria-expanded="false" aria-hidden="true">
+ <div class="nav_dropdown_col_1a">
+ <div id="nav_1_1">
+ <p>Common Conditions</p><span><a href="http://www.webmd.com/a-to-z-guides/common-topics/default.htm" onclick="return sl(this,'','hicb1-ccnd_more')">View All</a></span>
+ <ul
+ class="half" role="menu">
+ <li><a href="http://www.webmd.com/add-adhd/default.htm" onclick="return sl(this,'','hicb1-ccnd_1')">ADD/ADHD</a>
+ </li>
+ <li><a href="http://www.webmd.com/allergies/default.htm" onclick="return sl(this,'','hicb1-ccnd_2')">Allergies</a>
+ </li>
+ <li><a href="http://www.webmd.com/arthritis/default.htm" onclick="return sl(this,'','hicb1-ccnd_3')">Arthritis</a>
+ </li>
+ <li><a href="http://www.webmd.com/cancer/default.htm" onclick="return sl(this,'','hicb1-ccnd_4')">Cancer</a>
+ </li>
+ <li><a href="http://www.webmd.com/cold-and-flu/default.htm" onclick="return sl(this,'','hicb1-ccnd_5')">Cold, Flu &amp; Cough</a>
+ </li>
+ <li><a href="http://www.webmd.com/depression/default.htm" onclick="return sl(this,'','hicb1-ccnd_6')">Depression</a>
+ </li>
+ <li><a href="http://www.webmd.com/diabetes/default.htm" onclick="return sl(this,'','hicb1-ccnd_7')">Diabetes</a>
+ </li>
+ </ul>
+ <ul class="half" role="menu">
+ <li><a href="http://www.webmd.com/eye-health/default.htm" onclick="return sl(this,'','hicb1-ccnd_8')">Eye Health</a>
+ </li>
+ <li><a href="http://www.webmd.com/heart-disease/default.htm" onclick="return sl(this,'','hicb1-ccnd_9')">Heart Disease</a>
+ </li>
+ <li><a href="http://www.webmd.com/heartburn-gerd/default.htm" onclick="return sl(this,'','hicb1-ccnd_10')">Heartburn/GERD</a>
+ </li>
+ <li><a href="http://www.webmd.com/pain-management/default.htm" onclick="return sl(this,'','hicb1-ccnd_11')">Pain Management</a>
+ </li>
+ <li><a href="http://www.webmd.com/sexual-conditions/default.htm" onclick="return sl(this,'','hicb1-ccnd_12')">Sexual Conditions</a>
+ </li>
+ <li><a href="http://www.webmd.com/skin-problems-and-treatments/default.htm"
+ onclick="return sl(this,'','hicb1-ccnd_13')">Skin Problems</a>
+ </li>
+ <li><a href="http://www.webmd.com/sleep-disorders/default.htm" onclick="return sl(this,'','hicb1-ccnd_14')">Sleep Disorders</a>
+ </li>
+ </ul>
+ </div>
+ <div id="nav_1_2">
+ <p>Featured Topics</p>
+ <ul role="menu">
+ <li id="pb1" class="hide_link"><a href="http://www.webmd.com/allergies/ss/slideshow-bad-bugs" class="type_ss"
+ onclick="return sl(this,'','hicb1-ftpc_1')">Identifying Bugs and Their Bites <i></i></a>
+ </li>
+ <li id="pb2" class="hide_link"><a href="http://www.webmd.com/women/yeast-evaluator/default.htm" onclick="return sl(this,'','hicb1-ftpc_2')">Bothered by Yeast Infections?</a>
+ </li>
+ <li id="pb3" class="hide_link"><a href="http://www.webmd.com/pain-management/ss/slideshow-worst-shoes-for-your-feet"
+ class="type_ss" onclick="return sl(this,'','hicb1-ftpc_3')">The Worst Shoes for Your Feet <i></i></a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ <div class="nav_dropdown_col_2a" id="symptom_checker_col">
+ <div id="nav_1_3"><a href="http://www.webmd.com/symptoms/default.htm" id="symptom_checker_logo"
+ onclick="return sl(this,'','hicb1-schk_1')">WebMD Symptom Checker</a>
+ <p
+ class="bold">Health concern on your mind?</p>
+ <p>See what your medical symptoms could mean, and learn about possible conditions.</p>
+ <a
+ href="http://www.webmd.com/symptoms/default.htm" class="webmd-btn webmd-btn-pr webmd-btn-m"
+ onclick="return sl(this,'','hicb1-schk_sub')">Get Started</a>
+ </div>
+ </div>
+ <div class="nav_dropdown_col_3">
+ <div id="nav_1_4">
+ <p>Resources</p>
+ <ul role="menu">
+ <li><a href="http://www.webmd.com/blogs/default.htm" onclick="return sl(this,'','hicb1-xchng_blg')"><strong>Second Opinion:</strong> Read expert perspectives on popular health topics.</a>
+ </li>
+ <li><a href="http://www.webmd.com/exchanges/default.htm" onclick="return sl(this,'','hicb1-xchng_cmty')"><strong>Communities:</strong> Connect with people like you, and get expert guidance on living a healthy life.</a>
+ </li>
+ <li><a href="http://www.webmd.com/health-insurance/default.htm" onclick="return sl(this,'','hicb1-ins_ctr')"><strong>Insurance Guide:</strong> Get ready for changes to your health care coverage.</a>
+ </li>
+ <li><a href="http://doctor.webmd.com" onclick="return sl(this,'','hicb1-phy_dir')"><strong>Physician Directory:</strong> Find a doctor in your area.</a>
+ </li>
+ </ul>
+ </div>
+ <div id="nav_1_6">
+ <p>WebMD Pain Coach</p><a href="http://www.webmd.com/webmdpaincoachapp" onclick="return sl(this,'','hicb1-app_1')"
+ class="nav_image"><img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/masthead_test/50x50_pain_app.jpg" alt="WebMD pain app"/></a>
+ <a
+ href="http://www.webmd.com/webmdpaincoachapp" onclick="return sl(this,'','hicb1-app_1')">Track your pain levels, triggers, and treatments. Set goals and get tips
+ with our app for iPhone.</a>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li id="nav_2" class="nav nav_reference"><a href="http://www.webmd.com/drugs/index-drugs.aspx" id="nav_link_2"
+ class="nav_link" aria-haspopup="true" onclick="return sl(this,'','hicb2-tab')">Drugs &amp; Supplements</a>
+ <div
+ id="menu_2" class="nav_dropdown" role="menu" aria-expanded="false" aria-hidden="true">
+ <div class="nav_dropdown_col_1a">
+ <div id="nav_2_1">
+ <p>Find Information About:</p>
+ <p class="bold">Drugs &amp; Supplements</p>
+ <p>Get information and reviews on prescription drugs, over-the-counter medications,
+ vitamins, and supplements. Search by name or medical condition.</p>
+ <ul
+ role="menu" class="bottom_border">
+ <li><a href="http://www.webmd.com/drugs/index-drugs.aspx" onclick="return sl(this,'','hicb2-drgsp_1')">Find or Review a Drug</a>
+ </li>
+ <li><a href="http://www.webmd.com/vitamins-supplements/default.aspx" onclick="return sl(this,'','hicb2-drgsp_2')">Find or Review a Vitamin or Supplement</a>
+ </li>
+ <li><a href="http://www.webmd.com/interaction-checker/default.htm" onclick="return sl(this,'','hicb2-drgsp_3')">Check for Drug Interactions</a>
+ </li>
+ </ul>
+ <p class="bold">Drug Basics &amp; Safety</p>
+ <ul role="menu">
+ <li><a href="http://www.webmd.com/a-to-z-guides/ss/slideshow-commonly-abused-drugs"
+ onclick="return sl(this,'','hicb2-drgsf_1')" class="type_ss">Commonly Abused Drugs <i></i></a>
+ </li>
+ <li><a href="http://www.webmd.com/drug-medication/medicationawareness/default.htm"
+ onclick="return sl(this,'','hicb2-drgsf_2')">What's Your Medication IQ?</a>
+ </li>
+ <li><a href="http://www.webmd.com/baby/taking-prescription-medications-during-pregnancy"
+ onclick="return sl(this,'','hicb2-drgsf_3')">Taking Medications During Pregnancy</a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ <div id="pill_identifier_col" class="nav_dropdown_col_2a">
+ <div id="nav_2_2" class="bottom_border pill_identifier_section"><a href="http://www.webmd.com/pill-identification/default.htm" id="pill_identifier_logo"
+ onclick="return sl(this,'','hicb2-pid_1')">WebMD Pill Identifier</a>
+ <p
+ class="bold">Having trouble identifying your pills?</p>
+ <p>Enter the shape, color, or imprint of your prescription or OTC drug. Our
+ <a
+ href="http://www.webmd.com/pill-identification/default.htm" onclick="return sl(this,'','hicb2-pid_2')">pill identification tool</a>will display pictures that you can compare
+ to your pill.</p><a href="http://www.webmd.com/pill-identification/default.htm"
+ class="webmd-btn webmd-btn-pr webmd-btn-m" onclick="return sl(this,'','hicb2-pid_sub')">Get Started</a>
+ </div>
+ <div id="nav_2_5" class="my_medicine_section"><a href="http://www.webmd.com/my-medicine/default.htm" id="my_medicine_logo"
+ onclick="return sl(this,'','hicb2-ic_2')">WebMD My Medicine</a>
+ <p>Save your medicine, check interactions, sign up for FDA alerts, create
+ family profiles and more.</p><a href="http://www.webmd.com/my-medicine/default.htm"
+ class="webmd-btn webmd-btn-pr webmd-btn-m" onclick="return sl(this,'','hicb2-ic_sub')">Get Started</a>
+ </div>
+ </div>
+ <div class="nav_dropdown_col_3">
+ <div id="nav_2_3">
+ <p>Drug News</p>
+ <ul role="menu">
+ <li id="pb5" class="hide_link"><a href="http://www.webmd.com/news/default.htm" onclick="return sl(this,'','hicb2-dnws_1')">Get the Latest Drug Approvals &amp; Alerts</a>
+ </li>
+ <li id="pb6" class="hide_link"><a href="http://www.webmd.com/fda/default.htm" onclick="return sl(this,'','hicb2-dnws_2')">Find FDA Consumer Updates</a>
+ </li>
+ <li id="pb7" class="hide_link"><a href="https://member.webmd.com/newsletters/newsletters.aspx" onclick="return sl(this,'','hicb2-dnws_3')">Sign up to receive WebMD's award-winning content delivered to your inbox.</a>
+ </li>
+ <li id="pb8" class="hide_pb_link"><a href="http://www.webmd.com/diet/news/20120627/fda-approves-diet-pill-belviq"
+ onclick="return sl(this,'','hicb2-dnws_4')">FDA Approves Diet Pill Belviq</a>
+ </li>
+ <li id="pb9" class="hide_pb_link"><a href="http://www.webmd.com/dvt/news/20120625/fda-delays-decision-on-blood-thinner-eliquis"
+ onclick="return sl(this,'','hicb2-dnws_5')">FDA Delays Decision on Blood Thinner Eliquis</a>
+ </li>
+ </ul>
+ </div>
+ <div id="nav_2_4">
+ <p>WebMD Mobile Drug Information App</p><a href="http://www.webmd.com/webmdapp"
+ onclick="return sl(this,'','hicb2-app_1')" class="nav_image"><img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/masthead_test/50x50_webmd_mobile_app.png" alt="WebMD logo"/></a>
+ <a
+ href="http://www.webmd.com/webmdapp" onclick="return sl(this,'','hicb2-app_1')">Drug, supplement, and vitamin information on the go.</a>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li id="nav_3" class="nav nav_health"><a href="http://www.webmd.com/living-healthy" id="nav_link_3" class="nav_link"
+ aria-haspopup="true" onclick="return sl(this,'','hicb3-tab')">Living Healthy</a>
+ <div
+ id="menu_3" class="nav_dropdown" role="menu" aria-expanded="false" aria-hidden="true">
+ <div class="nav_dropdown_col_1b">
+ <div id="nav_3_1">
+ <p>Featured Content</p>
+ <div id="pb11" class="hide_link">
+ <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/masthead_test/210x130_healthy_living_feature.jpg"
+ alt="Women with hair wrapped in towel"/> <a href="http://www.webmd.com/healthy-beauty/ss/slideshow-best-kept-hair-secrets"
+ onclick="return sl(this,'','hicb3-ftr_1')" class="bold">Want luxurious locks?</a>
+ <p>WebMD cuts through the hype to reveal the best kept secrets for healthy
+ hair.</p><a href="http://www.webmd.com/healthy-beauty/ss/slideshow-best-kept-hair-secrets"
+ onclick="return sl(this,'','hicb3-ftr_1')" class="link_overlay" tabindex="-1"></a>
+ </div>
+ </div>
+ </div>
+ <div class="nav_dropdown_col_2b">
+ <div id="nav_3_2">
+ <p>Living Healthy Centers</p><span><a href="http://www.webmd.com/a-to-z-guides/healthy-living/default.htm" onclick="return sl(this,'','hicb3-chl_more')">View All</a></span>
+ <div
+ class="third right_border"><a href="http://www.webmd.com/living-healthy" onclick="return sl(this,'','hicb3-cdt_1')"
+ class="nav_image"><img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/masthead_test/110x70_healthy_living_diet_food.png" alt="grilled salmon and vegetables"/></a>
+ <p
+ class="bold more_bottom_margin">Diet, Food &amp; Fitness</p>
+ <ul>
+ <li><a href="http://www.webmd.com/diet/default.htm" onclick="return sl(this,'','hicb3-cdt_1')">Weight Loss &amp; Diet Plans</a>
+ </li>
+ <li><a href="http://www.webmd.com/food-recipes/default.htm" onclick="return sl(this,'','hicb3-cdt_2')">Food &amp; Recipes</a>
+ </li>
+ <li><a href="http://www.webmd.com/fitness-exercise/default.htm" onclick="return sl(this,'','hicb3-cdt_3')">Fitness &amp; Exercise</a>
+ </li>
+ </ul>
+ </div>
+ <div class="third right_border"><a href="http://www.webmd.com/living-healthy" onclick="return sl(this,'','hicb3-cbt_1')"
+ class="nav_image"><img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/masthead_test/110x70_healthy_living_beauty_balance.png" alt="man and woman smiling"/></a>
+ <p
+ class="bold">Beauty, Balance &amp; Love</p>
+ <ul>
+ <li><a href="http://www.webmd.com/healthy-beauty/default.htm" onclick="return sl(this,'','hicb3-cbt_1')">Healthy Beauty</a>
+ </li>
+ <li><a href="http://www.webmd.com/balance/default.htm" onclick="return sl(this,'','hicb3-cbt_2')">Health &amp; Balance</a>
+ </li>
+ <li><a href="http://www.webmd.com/sex-relationships/default.htm" onclick="return sl(this,'','hicb3-cbt_3')">Sex &amp; Relationships</a>
+ </li>
+ <li><a href="http://www.webmd.com/oral-health/default.htm" onclick="return sl(this,'','hicb3-cbt_4')">Oral Care</a>
+ </li>
+ </ul>
+ </div>
+ <div class="third"><a href="http://www.webmd.com/living-healthy" onclick="return sl(this,'','hicb3-clw_1')"
+ class="nav_image"><img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/masthead_test/110x70_healthy_living_women_men.png" alt="women doing yoga"/></a>
+ <p
+ class="bold more_bottom_margin">Living Well</p>
+ <ul>
+ <li><a href="http://www.webmd.com/women/default.htm" onclick="return sl(this,'','hicb3-clw_1')">Women's Health</a>
+ </li>
+ <li><a href="http://www.webmd.com/men/default.htm" onclick="return sl(this,'','hicb3-clw_2')">Men's Health</a>
+ </li>
+ <li><a href="http://www.webmd.com/healthy-aging/default.htm" onclick="return sl(this,'','hicb3-clw_3')">Aging Well</a>
+ </li>
+ <li><a href="http://www.webmd.com/teens/default.htm" onclick="return sl(this,'','hicb3-clw_4')">Teens</a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div class="nav_dropdown_col_3">
+ <div id="nav_3_3">
+ <p>Featured Topics</p>
+ <ul>
+ <li id="pb13" class="hide_link"><a href="http://www.webmd.com/diet/calc-bmi-plus" onclick="return sl(this,'','hicb3-ftpc_1')">BMI Calculator: Get Personalized Results</a>
+ </li>
+ <li id="pb14" class="hide_link"><a href="http://www.webmd.com/diet/healthtool-portion-size-plate" onclick="return sl(this,'','hicb3-ftpc_2')">Portion Size Plate: Easy Serving Size Guide</a>
+ </li>
+ <li id="pb15" class="hide_link"><a href="http://www.webmd.com/sex/birth-control/default.htm" onclick="return sl(this,'','hicb3-ftpc_3')">Your Birth Control Options</a>
+ </li>
+ <li id="pb16" class="hide_link"><a href="http://www.webmd.com/men/ss/slideshow-secrets-women-wish-you-knew"
+ class="type_ss" onclick="return sl(this,'','hicb3-ftpc_4')">19 Secrets Men Wish Women Knew <i></i></a>
+ </li>
+ <li id="pb17" class="hide_link"><a href="http://www.webmd.com/teens/rm-quiz-crazy-dreams" onclick="return sl(this,'','hicb3-ftpc_5')">Quiz: Weird, Crazy Dreams</a>
+ </li>
+ <li id="pb18" class="hide_pb_link"><a href="http://www.webmd.com/diet/food-fitness-planner/default.htm" onclick="return sl(this,'','hicb3-ftpc_6')">Food &amp; Fitness Planner: Personalize Your Weight Loss Plan</a>
+ </li>
+ </ul>
+ </div>
+ <div id="nav_3_4">
+ <p>WebMD Allergy App for iPhone</p><a href="http://www.webmd.com/allergy-app"
+ onclick="return sl(this,'','hicb3-app_1')" class="nav_image"><img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/article_thumbnails/other/allergy_app_other/50x50_allergy_app_other.jpg" alt="WebMD Allergy App logo"/></a>
+ <a
+ href="http://www.webmd.com/allergy-app" onclick="return sl(this,'','hicb3-app_1')">Fight allergies with daily forecasts, local alerts, and personalized tips.</a>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li id="nav_4" class="nav nav_health"><a href="http://www.webmd.com/family-pregnancy" id="nav_link_4" class="nav_link"
+ aria-haspopup="true" onclick="return sl(this,'','hicb4-tab')">Family &amp; Pregnancy</a>
+ <div
+ id="menu_4" class="nav_dropdown" role="menu" aria-expanded="false" aria-hidden="true">
+ <div class="nav_dropdown_col_1b">
+ <div id="nav_4_1">
+ <p>Featured Content</p>
+ <div id="pb20" class="hide_link">
+ <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/masthead_test/210x130_family_feature.jpg"
+ alt="Family at airport"/> <a href="http://www.webmd.com/vaccines/ss/slideshow-travel-health" onclick="return sl(this,'','hicb4-ftr_1')"
+ class="bold">Traveling abroad?</a>
+ <p>Protect yourself and your family by learning which health precautions
+ and vaccines are advised for your destination.</p><a href="http://www.webmd.com/vaccines/ss/slideshow-travel-health"
+ onclick="return sl(this,'','hicb4-ftr_1')" class="link_overlay" tabindex="-1"></a>
+ </div>
+ </div>
+ </div>
+ <div class="nav_dropdown_col_2b">
+ <div id="nav_4_2">
+ <p>Family and Pregnancy Centers</p>
+ <div class="third right_border"><a href="http://www.webmd.com/baby" onclick="return sl(this,'','hicb4-cpg_1')"
+ class="nav_image"><img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/masthead_test/110x70_family_pregnancy.png" alt="pregnant woman"/></a>
+ <a
+ href="http://www.webmd.com/baby" onclick="return sl(this,'','hicb4-cpg_1')"
+ class="heading">Pregnancy</a>
+ <ul>
+ <li><a href="http://www.webmd.com/baby/guide/getting-pregnant" onclick="return sl(this,'','hicb4-cpg_2')">Trying to Conceive</a>
+ </li>
+ <li><a href="http://www.webmd.com/baby/guide/first-trimester" onclick="return sl(this,'','hicb4-cpg_3')">First Trimester</a>
+ </li>
+ <li><a href="http://www.webmd.com/baby/guide/health-baby-second-trimester"
+ onclick="return sl(this,'','hicb4-cpg_4')">Second Trimester</a>
+ </li>
+ <li><a href="http://www.webmd.com/baby/guide/third-trimester" onclick="return sl(this,'','hicb4-cpg_5')">Third Trimester</a>
+ </li>
+ </ul>
+ </div>
+ <div class="third right_border"><a href="http://www.webmd.com/parenting/default.htm" onclick="return sl(this,'','hicb4-cpt_1')"
+ class="nav_image"><img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/masthead_test/110x70_family_parenting.png" alt="mom, dad, and baby"/></a>
+ <a
+ href="http://www.webmd.com/parenting/default.htm" onclick="return sl(this,'','hicb4-cpt_1')"
+ class="heading">Parenting</a>
+ <ul>
+ <li><a href="http://www.webmd.com/parenting/baby/default.htm" onclick="return sl(this,'','hicb4-cpt_2')">Newborn &amp; Baby</a>
+ </li>
+ <li><a href="http://www.webmd.com/children/default.htm" onclick="return sl(this,'','hicb4-cpt_3')">Children's Health</a>
+ </li>
+ <li><a href="http://www.webmd.com/children/vaccines/default.htm" onclick="return sl(this,'','hicb4-cpt_4')">Children's Vaccines</a>
+ </li>
+ <li><a href="http://www.webmd.com/parenting/raising-fit-kids/default.htm"
+ onclick="return sl(this,'','hicb4-cpt_5')">Raising Fit Kids</a>
+ </li>
+ </ul>
+ </div>
+ <div class="third"><a href="http://www.webmd.com/pets/default.htm" onclick="return sl(this,'','hicb4-cpet_1')"
+ class="nav_image"><img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/masthead_test/110x70_family_pets.png" alt="Cat and dog on grass"/></a>
+ <a
+ href="http://www.webmd.com/pets/default.htm" onclick="return sl(this,'','hicb4-cpet_1')"
+ class="heading">Pets</a>
+ <ul>
+ <li><a href="http://www.webmd.com/pets/cats/default.htm" onclick="return sl(this,'','hicb4-cpet_2')">Healthy Cats</a>
+ </li>
+ <li><a href="http://www.webmd.com/pets/dogs/default.htm" onclick="return sl(this,'','hicb4-cpet_3')">Healthy Dogs</a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div class="nav_dropdown_col_3">
+ <div id="nav_4_3">
+ <p>Featured Topics</p>
+ <ul>
+ <li id="pb22" class="hide_link"><a href="http://www.webmd.com/baby/guide/pregnancy-am-i-pregnant" onclick="return sl(this,'','hicb4-ftpc_1')">Know the Signs of Early Pregnancy?</a>
+ </li>
+ <li id="pb23" class="hide_link"><a href="http://www.webmd.com/baby/rm-quiz-pregnancy-food-facts" onclick="return sl(this,'','hicb4-ftpc_2')">Test Your Smarts: What's Safe to Eat When You're Pregnant?</a>
+ </li>
+ <li id="pb24" class="hide_link"><a href="http://www.webmd.com/baby/ss/slideshow-fetal-development" class="type_ss"
+ onclick="return sl(this,'','hicb4-ftpc_3')">Peek Inside the Womb to See How Baby Grows <i></i></a>
+ </li>
+ <li id="pb25" class="hide_link"><a href="http://www.webmd.com/children/video/healthy-school-lunches" class="type_vid"
+ onclick="return sl(this,'','hicb4-ftpc_4')">Healthy School Lunches <i></i></a>
+ </li>
+ <li id="pb26" class="hide_link"><a href="http://www.webmd.com/parenting/raising-fit-kids/mood/rm-quiz-how-to-prevent-a-toddler-meltdown"
+ onclick="return sl(this,'','hicb4-ftpc_5')">Quiz: Know How to Avoid The Next Toddler Meltdown?</a>
+ </li>
+ <li id="pb27" class="hide_pb_link"><a href="http://www.webmd.com/vaccinetracker/" onclick="return sl(this,'','hicb4-ftpc_6')">WebMD Vaccine Tracker: Manage Vaccinations for Your Entire Family</a>
+ </li>
+ </ul>
+ </div>
+ <div id="nav_4_4">
+ <p>WebMD Pregnancy App for iPhone</p><a href="http://www.webmd.com/pregnancyapp"
+ onclick="return sl(this,'','hicb4-app_1')" class="nav_image"><img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/article_thumbnails/other/pregnancy_app_other/50x50_pregnancy_app_other.jpg" alt="WebMD Pregnancy App logo"/></a>
+ <a
+ href="http://www.webmd.com/pregnancyapp" onclick="return sl(this,'','hicb4-app_1')">The big day is coming! Get organized and track baby's weekly development.</a>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li id="nav_5" class="nav nav_news"><a href="http://www.webmd.com/news/default.htm" id="nav_link_5" class="nav_link"
+ aria-haspopup="true" onclick="return sl(this,'','hicb5-tab')">News &amp; Experts</a>
+ <div
+ id="menu_5" class="nav_dropdown" role="menu" aria-expanded="false" aria-hidden="true">
+ <div class="nav_dropdown_col_1c">
+ <div id="nav_5_1">
+ <p>News</p><span><a href="http://www.webmd.com/news/default.htm" onclick="return sl(this,'','hicb5-news_more')">View All</a></span>
+ <div
+ class="nav_block hide_link" id="pb29"><a href="http://www.webmd.com/news/default.htm" class="nav_image" onclick="return sl(this,'','hicb5-news_1')"><img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/masthead_test/110x70_webmd_1.jpg" alt="WebMD logo"/></a>
+ <a
+ href="http://www.webmd.com/news/default.htm" onclick="return sl(this,'','hicb5-news_1')"
+ class="shorter">Today's Top Health Headlines</a>
+ </div>
+ <div class="nav_block hide_link" id="pb30"><a href="http://www.webmd.com/news/default.htm" class="nav_image" onclick="return sl(this,'','hicb5-news_2')"><img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/masthead_test/110x70_webmd_1.jpg" alt="WebMD logo"/></a>
+ <a
+ href="http://www.webmd.com/news/default.htm" onclick="return sl(this,'','hicb5-news_2')"
+ class="shorter">Get the Latest Drug Approvals &amp; Alerts</a>
+ </div>
+ <ul>
+ <li id="pb31" class="hide_link"><a href="http://www.webmd.com/fda/default.htm" onclick="return sl(this,'','hicb5-news_3')">Find FDA Consumer Updates</a>
+ </li>
+ <li id="pb32" class="hide_link"><a href="http://www.webmd.com/fda/slideshow-fda-mobile-laboratories" class="type_ss"
+ onclick="return sl(this,'','hicb5-news_4')">On The Road Again: FDA Mobile Laboratories <i></i></a>
+ </li>
+ <li id="pb33" class="hide_link"><a href="https://member.webmd.com/newsletters/newsletters.aspx" onclick="return sl(this,'','hicb5-news_5')">Sign up to receive WebMD's award-winning content delivered to your inbox.</a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ <div id="wide_header">
+ <p>WebMD Health Experts and Community</p>
+ </div>
+ <div class="nav_dropdown_col_2c">
+ <div id="nav_5_2">
+ <p>Talk to health experts and other people like you in WebMD's Communities.
+ It's a safe forum where you can create or participate in support groups
+ and discussions about health topics that interest you.</p>
+ <div class="nav_block"><a href="http://www.webmd.com/blogs/default.htm" onclick="return sl(this,'','hicb5-xchng_blg')"
+ class="nav_image"><img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/masthead_test/50x50_expert.png" alt=""/></a>
+ <p
+ class="bold">WebMD Second Opinion</p><a href="http://www.webmd.com/blogs/default.htm"
+ onclick="return sl(this,'','hicb5-xchng_blg')">Read expert perspectives on popular health topics.</a>
+ </div>
+ <div class="nav_block"><a href="http://www.webmd.com/exchanges/default.htm" onclick="return sl(this,'','hicb5-xchng_cmty')"
+ class="nav_image"><img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/masthead_test/50x50_community.png" alt=""/></a>
+ <p
+ class="bold">WebMD Communities</p><a href="http://www.webmd.com/exchanges/default.htm"
+ onclick="return sl(this,'','hicb5-xchng_cmty')">Connect with people like you, and get expert guidance on living a healthy life.</a>
+ </div>
+ </div>
+ </div>
+ <div class="nav_dropdown_col_3">
+ <div id="nav_5_3"><a href="http://answers.webmd.com/" id="webmd_answers_logo" onclick="return sl(this,'','hicb5-ans_1')">WebMD Answers</a>
+ <p>Got a health question? Get answers provided by leading organizations,
+ doctors, and experts.</p><a href="http://answers.webmd.com/" class="webmd-btn webmd-btn-pr webmd-btn-m"
+ onclick="return sl(this,'','hicb5-ans_sub')">Get Answers</a>
+ </div>
+ <div id="nav_5_4">
+ <p>WebMD Newsletters</p><a href="https://member.webmd.com/newsletters/newsletters.aspx"
+ onclick="return sl(this,'','hicb5-nwsltr_1')" class="nav_image"><img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/masthead_test/50x50_newsletter.png" alt="closeup of newsletter"/></a>
+ <a
+ href="https://member.webmd.com/newsletters/newsletters.aspx" onclick="return sl(this,'','hicb5-nwsltr_1')">Sign up to receive WebMD's award-winning content delivered to your inbox.</a>
+ </div>
+ </div>
+ </div>
+ </li>
+ </ul>
+ </nav>
+ <div id="authorization">
+ <div id="login_tab-b"></div>
+ <div id="why_webmd"><a href="https://member.webmd.com/signin" onclick="return sl(this,'','reg-login')">Sign In</a>|
+ <a
+ href="https://member.webmd.com/register" onclick="return sl(this,'','reg-signup')">Sign Up</a>| <a href="https://member.webmd.com/subscribe" onclick="return sl(this,'','nl-mast_sub')">Subscribe</a>
+ </div>
+ <div id="logged_in_text"><a href="https://member.webmd.com/applications.aspx" onclick="return sl(this,'','mymd_mt')"
+ id="logged_in_logo"><span class="jawsonly">My WebMD</span></a><span id="greeting"></span>
+ </div>
+ <div id="logged_in"><a href="#" id="logged_in_tab" aria-haspopup="true">Show Menu</a>
+ <div
+ id="logged_in_dropdown" aria-expanded="false" aria-hidden="true">
+ <ul role="menu">
+ <li><a href="https://member.webmd.com/applications.aspx" onclick="return sl(this,'','ov-mymd_mt')">My Tools</a>
+ </li>
+ <li class="bottom_border"><a href="https://member.webmd.com/bookmarks.aspx" onclick="return sl(this,'','ov-mymd_mybkmrk')">My WebMD Pages</a>
+ </li>
+ <li class="bottom_border"><a href="https://member.webmd.com/profile.aspx" onclick="return sl(this,'','ov-mymd_ma')">My Account</a>
+ </li>
+ <li><a href="http://www.webmd.com/signout.asp" onclick="return sl(this,'','ov-mymd_so')">Sign Out</a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div id="social_icons"><a class="facebook" href="http://www.webmd.com/click?url=http%3A//www.facebook.com/WebMD%3Fref=ts"
+ onclick="return sl(this,'nw','soc_fb-h')">Facebook</a><a href="http://www.webmd.com/click?url=http%3A//twitter.com/WebMD"
+ class="twitter" onclick="return sl(this,'nw','soc_tw-h')">Twitter</a>
+ <a
+ href="http://www.webmd.com/click?url=http://pinterest.com/webmd/" class="pinterest"
+ onclick="return sl(this,'nw','soc_pn-h')">Pinterest</a>
+ </div>
+ <div id="divider"></div>
+ </header>
+ <script type="text/javascript">
+ if(window.webmd && window.webmd.p && window.webmd.p.masthead) {
+ webmd.p.masthead.init();
+ }
+ </script>
+ </div>
+ </div>
+ <div id="mainContentContainer_area">
+ <div class="bottomBackground_fmt">
+ <div id="breadcrumb_ctr">
+ <div id="ContentPane3">
+ <div id="breadcrumb_rdr"> <span class="bc_0">
+ <a href="/www/">WebMD Home</a>
+ <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/layout/shared/divider_breadcrumb.gif" alt="next page" width="6" height="10" align="absmiddle"/>
+ </span>
+ <span class="bc_1">
+ <a href="http://www.webmd.com/allergies/default.htm" onclick="return sl(this,'','brdcrmb');">Allergies Health Center</a> <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/layout/shared/divider_breadcrumb.gif" alt="next page" width="6" height="10" align="absmiddle"/> </span>
+
+ <span
+ class="bc_2"> <a href="http://www.webmd.com/allergies/news/default.htm" onclick="return sl(this,'','brdcrmb');"
+ class="breadcrumbActive">Allergies News</a>
+ </span>
+ </div>
+ <div id="headerLinks_email" class="headerLinks_fmt"> <a href="#" title="Email this page to a friend" class="triggerEmailOverlay"
+ onclick="wmdPageLink('email-friend_link');return false;">Email a Friend</a>
+
+ </div>
+ <div id="headerLinks_print" class="headerLinks_fmt"> <a rel="nofollow" href="?print=true" onclick="printWindow(); ctrs('prtfrnd'); return false"
+ title="Print this article">Print Article</a>
+
+ <script>
+ if (pf_param == "true") {
+ printElements();
+ }
+ </script>
+ </div>
+ <div id="ht-nav">
+ <p>Allergies Trends:</p>
+ <ul id="ht-nav-list">
+ <li id="first"> <a href="http://www.webmd.com/allergies/nonallergic-rhinitis" onclick="return sl(this,'','hot-trends_1');">Rhinitis</a>
+
+ </li>
+ <li> <a href="http://www.webmd.com/allergies/guide/allergy-shots" onclick="return sl(this,'','hot-trends_2');">Allergy Shots</a>
+
+ </li>
+ <li> <a href="http://www.webmd.com/allergies/guide/poison-ivy-oak-sumac" onclick="return sl(this,'','hot-trends_3');">Poison Oak</a>
+
+ </li>
+ <li> <a href="http://www.webmd.com/allergies/guide/casein-allergy-overview"
+ onclick="return sl(this,'','hot-trends_4');">Casein</a>
+
+ </li>
+ <li> <a href="http://www.webmd.com/allergies/guide/nasal-polyps-symptoms-and-treatments"
+ onclick="return sl(this,'','hot-trends_5');">Nasal Polyps</a>
+
+ </li>
+ <li> <a href="http://www.webmd.com/allergies/guide/nut-allergy" onclick="return sl(this,'','hot-trends_6');">Nut Allergy</a>
+
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div id="contentBackground_fmt">
+ <div id="mainContent_ThirdCol_ctr">
+ <div id="ContentPane4">
+ <div class="titlebar" id="hdr">
+ <div class="tb_main">
+ <h1>Allergies Health Center</h1>
+
+ </div>
+ </div>
+ <script type="text/javascript">
+ (function() {
+ var that = function() {
+ var h = $("#mainContent_ThirdCol_ctr").outerHeight();
+ $("#navColumn_area").css('margin-top', '-'+h+'px');
+ };
+ try{ that(); } catch(e) {}
+ $(window).load( function() { try{ that(); } catch(e) {} } );
+ })();
+ </script>
+ </div>
+ </div>
+ <div id="mainContent_area">
+ <div id="mainContent_ctr">
+ <div id="middleContent_fmt">
+ <div id="ContentPane5">
+ <div class="pop_toolst_rdr" id="lln-toolsres">
+ <script type="text/javascript">
+ //Removes Popular Tools from TOC pages or where www.webmd.com is followed by "news-features"
+ /* :: 2015.02.04 rewrite :: */
+ // Create array(s) of the ID's to add the Tools module to
+ var s_topic = s_topic || "", s_business_reference = s_business_reference || "", s_publication_source = s_publication_source ||"", s_channel_health = s_channel_health || "", cssBlockOverride = ['Glossary', 'Nav - A-Z page', 'TOC', 'TOC - Channel', 'TOC - Guide', 'TOC - Mini-Center Topic', 'WebMD Image Collection'], sTopicException = ['7002','7006','7022','7023','7024'];
+
+ //if the s_publication_source is !== to the array OR s_business_reference is !== to the array OR s_channel_health is === to the array
+ if ( cssBlockOverride.indexOf(s_publication_source) === -1 || ssBlockOverride.indexOf(s_business_reference) === -1 || s_channel_health === 'Health Insurance and Medicare') {
+ // if the s_topic ID's first number is not equal to 7 OR the s_topic ID is == the array AND s_business_reference != the array
+ if ((s_topic.substring(0, 1) !== "7" || sTopicException.indexOf(s_topic) >= 0) && cssBlockOverride.indexOf(s_business_reference) === -1) {
+ $('.pop_toolst_rdr').css('display', 'block');
+ webmd.oas = window.webmd.oas || {};
+ webmd.oas.mapping = window.webmd.oas.mapping || {};
+ webmd.oas.mapping['oas_tools_and_resources'] = ['x56', 'x57', 'x58', 'x59', 'x60', 'x61'];
+ }
+ }
+ </script>
+ <div class="pop_toolst_top_fmt">
+ <h2>Tools &amp; Resources</h2>
+ <ul>
+ <li id="x56"><a href="http://www.webmd.com/allergies/suspect-food-allergy" onclick="return sl(this,'','lln-toolsres_1');">Think You Have a Food Allergy?</a>
+ </li>
+ <li id="x57"><a href="http://www.webmd.com/allergies/ss/slideshow-allergy-medicines"
+ class="type_ss" onclick="return sl(this,'','lln-toolsres_2');">Essential Items for Allergy Relief <i> </i></a>
+ </li>
+ <div class="breaker_fmt"></div>
+ <li id="x58"><a href="http://www.webmd.com/allergies/ss/slideshow-pets-and-allergies"
+ class="type_ss" onclick="return sl(this,'','lln-toolsres_3');">Pets and Allergies<i> </i></a>
+ </li>
+ <li id="x59"><a href="http://www.webmd.com/allergies/allergy-relief-10/slideshow-allergy-myths-facts"
+ class="type_ss" onclick="return sl(this,'','lln-toolsres_4');">Allergies: Myths vs. Facts<i> </i></a>
+ </li>
+ <div class="breaker_fmt"></div>
+ <li id="x60"><a href="http://www.webmd.com/allergies/how-to-control-allergens-in-your-home"
+ onclick="return sl(this,'','lln-toolsres_5');">Controlling Home Allergies</a>
+ </li>
+ <li id="x61"><a href="http://www.webmd.com/allergies/video/indoor-allergies-in-the-office"
+ class="type_vid" onclick="return sl(this,'','lln-toolsres_6');">Allergies in the Workplace<i> </i></a>
+ </li>
+ <div class="breaker_fmt"></div>
+ </ul>
+ <div class="breaker"></div>
+ </div>
+ <script class="oas_template" id="oas_tools_and_resources" type="text/html">
+ <a class="{type_prefix}{type}" onclick="return sl(this,'','lln-toolsres_{link_position}');" href="{href}">{alt}{i_tag}</a>
+ </script>
+ <div class="pop_toolst_bot_fmt"></div>
+ </div>
+ <script type="text/javascript">
+ if (window.$) {
+ $(document).ready(function() {
+ // produce array from value(s) of 'secTopId'
+ var mySplitResultsecTopId = secTopId.split("|");
+ var wloop = mySplitResultsecTopId.length;
+ var sTopicException = ['7002','7006','7022','7023','7024'];
+ // Hides the Pop Tools list on pages with a sensitive secondary topic id.
+ // Updated 2015.02.04 by David Ware
+ for (i = 0; i &lt; wloop; i++) {
+ // if this is a sensitive topic and the topicId is not in the list
+ if (mySplitResultsecTopId[i].substring(0,1) === '7' && sTopicException.indexOf(mySplitResultsecTopId[i]) === -1){
+ $('.pop_toolst_rdr').css('display','none');
+ }
+ }
+ //Hides the Pop Tools list on Actionset Pages
+ if ($('.actionset').length) {
+ $('.pop_toolst_rdr').css('display','none');
+ }
+ });
+ }
+ </script>
+ <div class="article_rdr">
+ <div class="share_bar">
+ <script>
+ webmd.m.share.init();
+ </script>
+ </div>
+ <div class="font_sizer_fmt rs_skip">
+ <div class="font_sizer_text_fmt">Font Size</div>
+ <div class="font_sizer_001_fmt"></div>
+ <div id="fs_01" class="font_sizer_002b_fmt"> <a class="copyA_fmt" title="Small font" href="javascript:setClass('textArea', 'copyNormal');javascript:setClass('fs_01', 'font_sizer_002b_fmt');javascript:setClass('fs_02', 'font_sizer_002a_fmt');javascript:setClass('fs_03', 'font_sizer_002a_fmt');">A</a>
+
+ </div>
+ <div id="fs_02" class="font_sizer_002a_fmt"> <a class="copyB_fmt" title="Medium font" href="javascript:setClass('textArea', 'copyMedium');javascript:setClass('fs_01', 'font_sizer_002a_fmt');javascript:setClass('fs_02', 'font_sizer_002b_fmt');javascript:setClass('fs_03', 'font_sizer_002a_fmt');">A</a>
+
+ </div>
+ <div id="fs_03" class="font_sizer_002a_fmt"> <a class="copyC_fmt" title="Large font" href="javascript:setClass('textArea', 'copyLarge');javascript:setClass('fs_01', 'font_sizer_002a_fmt');javascript:setClass('fs_02', 'font_sizer_002a_fmt');javascript:setClass('fs_03', 'font_sizer_002b_fmt');">A</a>
+
+ </div>
+ <div class="font_sizer_003_fmt"></div>
+ </div>
+ <div class="font_sizer">
+ <script>
+ webmd.m.fontSizer.init();
+ </script>
+ </div>
+ <script type="text/javascript" src="http://img.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/JS_static/widgets/webmd.m.add_article_save.js">
+</script>
+ <div id="readspeaker_area" style="display: none;">
+ <div id="readspeaker_button1" class="rs_skip"> <a accesskey="L" href="http://app.readspeaker.com/cgi-bin/rsent?customerid=5841&amp;lang=en_us&amp;readid=textArea"
+ target="_blank" onclick="readpage(this.href, 'xp1'); return false;">
+ <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/article/readspeaker/listen_en_us.gif" alt="Listen to this page using ReadSpeaker" title="Listen to this page using ReadSpeaker"/>
+ </a>
+
+ </div>
+ <script src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/javascript/readspeaker/en.js"
+ type="text/javascript">
+</script>
+ <script type="text/javascript">
+ (function(){
+ $(document).ready(function(){
+ webmd.readspeakerPrep.init({pages:5});
+ });
+ })();
+ </script>
+ <div id="xp1"></div>
+ </div>
+ <script type="text/javascript">
+ $(function(){
+ var el = $("#readspeaker_area");
+ if(el){
+ if(s_sponsor_program == "" || typeof(s_sponsor_program) == 'undefined' ){
+ el.addClass('non-spon-listen');
+ el.find('a').append("Listen");
+ el.css("display", "block");
+ }
+ }
+ });
+ </script>
+ <div id="textArea" class="copyNormal">
+ <h2>Babies Who Eat Peanuts Early May Avoid Allergy</h2>
+
+ <div class="subhead_fmt"></div>
+ <div class="author_fmt">By <a rel="author" href="http://www.webmd.com/brenda-goodman" onclick="return sl(this,'','prog-lnk');">Brenda Goodman, MA</a>
+ <br/>WebMD Health News</div>
+ <div class="reviewedBy_fmt">Reviewed by <a onclick="return sl(this,'','prog-lnk');" href="http://www.webmd.com/hansa-bhargava">Hansa D. Bhargava, MD</a>
+ </div>
+ <div class="clearBoth_fmt clearing-div"></div>
+ <h3></h3>
+
+ <p></p>
+ <p>Feb. 23, 2015 -- Life-threatening peanut allergies have mysteriously been
+ on the rise in the past decade, with little hope for a cure.</p>
+ <p xmlns:xalan="http://xml.apache.org/xalan">But a groundbreaking new study may offer a way to stem that rise, while
+ another may offer some hope for those who are already allergic.</p>
+ <p>Parents have been told for years to avoid giving foods containing peanuts
+ to babies for fear of triggering an allergy. Now research shows the opposite
+ is true: Feeding babies snacks made with peanuts before their first birthday
+ appears to prevent that from happening.</p>
+ <p>The study is published in the <i>New England Journal of Medicine,</i> and
+ it was presented at the annual meeting of the American Academy of Allergy,
+ Asthma and Immunology in Houston. It found that among children at high
+ risk for getting peanut allergies, eating peanut snacks by 11 months of
+ age and continuing to eat them at least three times a week until age 5
+ cut their chances of becoming allergic by more than 80% compared to kids
+ who avoided peanuts. Those at high risk were already allergic to egg, they
+ had the skin condition <a href="http://www.webmd.com/skin-problems-and-treatments/eczema/default.htm"
+ onclick="return sl(this,'','embd-lnk');" class="Article">eczema</a>, or
+ both.</p>
+ <p>Overall, about 3% of kids who ate peanut butter or peanut snacks before
+ their first birthday got an allergy, compared to about 17% of kids who
+ didn’t eat them.</p>
+ <p>“I think this study is an astounding and groundbreaking study, really,”
+ says Katie Allen, MD, PhD. She's the director of the Center for Food and
+ Allergy Research at the Murdoch Children’s Research Institute in Melbourne,
+ Australia. Allen was not involved in the research.</p>
+ <p>Experts say the research should shift thinking about how kids develop
+ <a
+ href="http://www.webmd.com/allergies/guide/food-allergy-intolerances" onclick="return sl(this,'','embd-lnk');"
+ class="Article">food allergies</a>, and it should change the guidance doctors give to
+ parents.</p>
+ <p>Meanwhile, for children and adults who are already <a href="http://www.webmd.com/allergies/guide/nut-allergy"
+ onclick="return sl(this,'','embd-lnk');" class="Article">allergic to peanuts</a>,
+ another study presented at the same meeting held out hope of a treatment.</p>
+ <p>A new skin patch called Viaskin allowed people with peanut allergies to
+ eat tiny amounts of peanuts after they wore it for a year.</p>
+ <p></p> <a name="1"> </a>
+
+ <h3>A Change in Guidelines?</h3>
+
+ <p>Allergies to peanuts and other foods are on the rise. In the U.S., more
+ than 2% of people react to peanuts, a 400% increase since 1997. And reactions
+ to peanuts and other tree nuts can be especially severe. Nuts are the main
+ reason people get a life-threatening problem called <a href="http://www.webmd.com/allergies/guide/anaphylaxis"
+ onclick="return sl(this,'','embd-lnk');" class="Article">anaphylaxis</a>.</p>
+ </div>
+ </div>
+ <div class="attribution_rdr">
+ <script type="text/javascript">
+ var pagination_title=new Array();
+ var pagination_current=1;
+
+ pagination_title[1]="";
+ pagination_title[2]="A Change in Guidelines? continued...";
+ pagination_title[3]="Gathering Evidence";
+ pagination_title[4]="‘Landmark’ Results";
+ pagination_title[5]="More Hope on the Horizon continued...";
+ </script>
+ <div class="pagination_fmt">
+ <div class="left_fmt"></div>
+ <div class="right_fmt"> <span class="current_fmt">1</span>
+ <span class="pipe_fmt">|</span>
+ <a href="?page=2"
+ title="Page 2" onclick="return sl(this,'','pagenum-art_2');">2</a>
+
+ <span
+ class="pipe_fmt">|</span> <a href="?page=3" title="Page 3" onclick="return sl(this,'','pagenum-art_3');">3</a>
+
+ <span
+ class="pipe_fmt">|</span> <a href="?page=4" title="Page 4" onclick="return sl(this,'','pagenum-art_4');">4</a>
+
+ <span
+ class="pipe_fmt">|</span> <a href="?page=5" title="Page 5" onclick="return sl(this,'','pagenum-art_5');">5</a>
+
+ <div
+ class="outline_fmt right"> <a href="?page=2" onclick="return sl(this,'','pagenum-art_next');">Next Page <span class="symbol_fmt">&gt;</span></a>
+
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="moduleSpacer_rdr"></div>
+ <div id="remoteAd_rdr">
+ <div class="centerAd_r1_rdr">
+ <div class="centerAd_BG_fmt">
+ <div class="conta" style="color:#737373; clear:both; display:none;">Continue reading below...</div>
+ <div class="remoteAd_top_fmt"></div>
+ <div id="remoteAd_fmt" class="remoteAd_BG_fmt">
+ <div class="ad_placeholder"></div>
+ </div>
+ <div class="remoteAd_bottom_fmt"></div>
+ </div>
+ </div>
+ <div class="moduleSpacer_rdr"></div>
+ </div>
+ <script type="text/javascript">
+ /* using this to pop up interstitial instead of /click as going to the /click URL with all the other parameters becomes an encoding issue */
+ function popInterstitial() {
+ var interstitial = window.open("/privacy_window.html","privacy_window","width=325,height=175,resizable=no,toolbar=no,left=350,top=300");
+ if (interstitial) {
+ interstitial.focus();
+
+ }
+ return false;
+ }
+ </script>
+ <div id="triggerFlyin"></div>
+ <script type="text/javascript">
+ require(['fly_in/1/fly_in'], function(flyIn){
+ flyIn.init('#triggerFlyin');
+ });
+ </script>
+ <div class="moduleSpacer_rdr"></div>
+ <script language="javascript1.2" type="text/javascript">
+ function getPubType() {
+ return "editorial";
+ }
+
+ function checkPartners(){
+
+ /* Array of Partner Names */
+ var partnerNames=[
+ "Good Housekeeping",
+ "Redbook",
+ "Esquire",
+ "Country Living",
+ "Marie Claire",
+ "Oxmoor House",
+ "\"Health",
+ "Southern Living",
+ "Psychology Today",
+ "EatingWell",
+ "DrGreene.com",
+ "Men's Health",
+ "Women's Health",
+ "Prevention",
+ "eDiets",
+ "soul\" Magazine",
+ "Runner's World",
+ "Men's Fitness\" Magazine",
+ "Shape\" Magazine",
+ "Fit Pregnancy\" Magazine",
+ "Natural Health\" Magazine",
+ "\"Best Life\" Magazine",
+ "\"Cure\" Magazine",
+ "WebMD Veterinary Reference from the ASPCA",
+ "WebMD Veterinary Reference from ASPCA Virtual Pet Behaviorist",
+ "COPD Foundation",
+ "Elle",
+ "Woman's Day"
+ ]
+
+ /* Array of names that go with files in partners node */
+ var partnerScripts=[
+ "goodHousekeeping",
+ "redbook",
+ "esquire",
+ "countryLiving",
+ "marieClaire",
+ "cookingLight",
+ "health",
+ "southernLiving",
+ "psychToday",
+ "eatingWell",
+ "drGreene",
+ "mensHealth",
+ "womensHealth",
+ "prevention",
+ "eDiets",
+ "bodySoul",
+ "runnersWorld",
+ "mensFitness",
+ "shapeMag",
+ "fitPregnancy",
+ "naturalHealth",
+ "bestLife",
+ "cure",
+ "aspca",
+ "aspca",
+ "copdf",
+ "elle",
+ "womansDay"
+ ]
+
+ /* Variables for whether a partner exists and which one in the array it is */
+ var isThere;
+ var whichOne = -1;
+
+ /* Pulls the pub source out of the XML */
+ var pubSource = 'WebMD Medical News';
+
+ /* Runs through the different partners and sees if one of them exists in the pub source */
+ for (var i=0; i &lt;= partnerNames.length-1; i++) { isThere = pubSource.search(partnerNames[i]); if (isThere != -1) {whichOne = i} }
+
+ /* If it found one, makes the JS calls and also populates the correct divs with the files out of partners node */
+ if (whichOne != -1) {
+
+ var JSCall = 'ht' + 'tp://img.web' + 'md.com/dtmcms/live/webmd/consumer_assets/site_images/javascript/partners/' + partnerScripts[whichOne] + '.js';
+
+ var JSElement = document.createElement("script");
+ JSElement.type = "text/javascript";
+ JSElement.src = JSCall;
+
+ document.getElementsByTagName("head")[0].appendChild(JSElement);
+
+ var moduleCenter = "ContentPane8";
+ var moduleRight = "ContentPane25";
+
+ addLoadEvent(function() {
+ $('#'+moduleCenter).append(writePartnerCenter());
+ $('#'+moduleRight).prepend(writePartnerRight());
+ })
+ }
+ }
+
+ checkPartners();
+ </script>
+ <script type="text/javascript">
+ if (document.getElementById("headerLinks_print")) {
+ setClass('headerLinks_print','headerLinks_fmt_on');
+ };
+ </script>
+ <link rel="stylesheet" type="text/css" href="http://img.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/CSS/print.css"
+ media="print"/>
+ <style media="screen">
+ #url_reference {display: none};
+ </style>
+ <style media="print">
+ #url_reference { display: block; line-height: 150%; margin-bottom: 10px; }
+ #logo_rdr img { visibility: visible; }
+ .titleBar_rdr .titleBarMiddle_fmt { padding-top: 1.5em !important;}
+ </style>
+ <script type="text/javascript">
+ var insert1 = document.getElementById("ContentPane2");
+ var urlDiv = articleUrl();
+ if (insert1) {
+ insert1.appendChild(urlDiv);
+ }
+ </script>
+ </div>
+ <div id="ContentPane6"></div>
+ <div id="ContentPane7"></div>
+ <div id="ContentPane8">
+ <div class="related_reading_rdr" id="rltd-p-893">
+ <h4>Top Picks</h4>
+
+ <ul>
+ <li id="x62" class="first"> <a href="http://www.webmd.com/allergies/guide/insect-stings" onclick="return sl(this,'','rltd-p-893_1');">Insect Sting Allergies</a>
+
+ </li>
+ <li id="x63"> <a href="http://www.webmd.com/allergies/features/allergy-tips" onclick="return sl(this,'','rltd-p-893_2');">Housecleaning Tips for Indoor Allergies</a>
+
+ </li>
+ <li id="x64"> <a href="http://www.webmd.com/allergies/rm-quiz-facts-allergies" onclick="return sl(this,'','rltd-p-893_3');">Allergies: How Much Do You Know?</a>
+
+ </li>
+ <li id="x65"> <a href="http://www.webmd.com/allergies/features/the-truth-about-mucus"
+ onclick="return sl(this,'','rltd-p-893_4');">The Truth About Mucus</a>
+
+ </li>
+ <li id="x66"> <a class="type_vid" href="http://www.webmd.com/allergies/anaphylaxis-13/video-preparing-for-emergencies"
+ onclick="return sl(this,'','rltd-p-893_5');">Signs of a Dangerous Allergic Reaction<i> </i></a>
+
+ </li>
+ <li id="x67" class="last"> <a href="http://www.webmd.com/allergies/rm-quiz-colds-allergies" onclick="return sl(this,'','rltd-p-893_6');">Cold or Allergy? Quiz Yourself</a>
+
+ </li>
+ </ul>
+ <script class="oas_template" id="oas_top_picks" type="text/html">
+ <a class="{type_prefix}{type}" onclick="return sl(this,'','rltd-p-893_{link_position}');" href="{href}">{alt}{i_tag}</a>
+ </script>
+ <script type="text/javascript">
+ webmd.oas = window.webmd.oas || {}; webmd.oas.mapping = window.webmd.oas.mapping || {}; webmd.oas.mapping['oas_top_picks'] = ['x62','x63','x64','x65','x66','x67'];
+ </script>
+ </div>
+ <script type="text/javascript">
+ function moveMustSeeArticles() {
+ /* make the swap function available internally */
+ function doSwap() {
+ /* get must-see articles, remove from the DOM */
+ var msa = $('#mainContentContainer_area .related_reading_rdr').clone();
+ $('#mainContentContainer_area .related_reading_rdr').remove();
+
+ /* get the pagination if it exists */
+ var pagination = $('.attribution_rdr .pagination_fmt');
+ var contextual = $('.other_context_links_rdr');
+ var article = $('.article_rdr');
+
+ /* certain pages use another format:
+ // the top picks module is in .related_wrapper .dyn_related
+ // as the second div with this class.
+ // it has an id, unlike the other div */
+ var dyn_related = $('.related_wrapper .dyn_related[id]');
+
+ /* if dyn_related, it is handled one way */
+ if(dyn_related.html()) {
+ /* on last page, .related_wrapper is displayed and "Top Picks" should stay
+ // on other pages, it should move down */
+ if(dyn_related.parent().css('display') === 'none') {
+ var dyn_related_clone = dyn_related.clone();
+ dyn_related.remove();
+ $(pagination).after('<div class="related_wrapper" style="display: block;" id="related_wrapper_2"></div>')
+ $('#related_wrapper_2').append(dyn_related_clone);
+ }
+ /* if not dyn_related, it is handled this way */
+ } else {
+ /* if pagination exists, insert must-see articles before the pagination,
+ else insert before the next node after the contextual related links,
+ else insert before the next node after the article */
+ if (pagination.html()) {
+ $(pagination).after(msa);
+ msa.css('padding-top','30px');
+ } else if (contextual.html()) {
+ $(contextual).after(msa);
+ } else {
+ $(article).after(msa);
+ }
+ }
+
+ /* show */
+ $('#mainContentContainer_area .related_reading_rdr').show();
+
+ }
+
+
+
+ /* do the swap unless the function getPubType exists and returns the value 'third_party', unless it is Healthy Day content */
+ if (s_publication_source = 'WebMD News from HealthDay'){
+ doSwap();
+ } else if(typeof(getPubType) == 'function') {
+ (getPubType() == 'third_party') ? null : doSwap();
+ } else {
+ doSwap();
+ }
+ }
+ if (window.$) {
+ moveMustSeeArticles();
+ $('.share_rdr').hide();
+ }
+
+ $(document).ready(function()
+ {
+ $('.related_wrapper').css('display','block');
+ $('.dyn_related').css('padding-top','0px');
+ });
+ </script>
+ </div>
+ <div id="ContentPane9"></div>
+ <div id="ContentPane10"></div>
+ <div id="ContentPane11"></div>
+ <div id="ContentPane12"></div>
+ <div id="ContentPane13"></div>
+ <div id="ContentPane14"></div>
+ <div id="ContentPane15"></div>
+ <div id="ContentPane16"></div>
+ <div id="ContentPane17"></div>
+ <div id="ContentPane18">
+ <!--<ul><li>$adsystem = DFP</li><li>$pos = 5000</li><li>$print = false</li></ul><ul><li>adtype = iFRAME</li><li>iframeheight = 1</li><li>iframewidth = 1</li><li>adserver = as.webmd.com</li></ul><ul><li>affiliate = 20</li><li>apg = 1625</li><li>artid = 091e9c5e810fb2ee</li><li>au1 = </li><li>au2 = </li><li>bc = _age121_l23_age122_j30_t780_</li><li>brand = 0</li><li>cc = 17</li><li>env = </li><li>hcent = 893</li><li>mcent = </li><li>micro = </li><li>pkg = &amp;leaf=</li><li>pos = 5000</li><li>pug = __</li><li>scent = </li><li>sec = </li><li>segval = </li><li>site = 2</li><li>tile = 365904714</li><li>tmg = </li><li>transactionID = 442451382</li><li>tug = 2321</li><li>uri = %2fallergies%2fnews%2f20150220%2fchild-peanut-allergy-findings</li></ul>-->
+ <script>
+ var priTopId='1625', secTopId='';
+ </script>
+ <script>
+ // self executing function for scope
+ (function() {
+ var isDFP;
+
+ isDFP = true;
+
+
+ // Moving the ad up into the article:
+ // Finds all possible locations to insert, moves the ad location up into the article, before handling the Ad Seed Call
+
+ // Updates Paragraphs
+ $(".article_rdr p").each(function() {
+ $(this).addClass("node");
+ });
+
+
+ // Updates Unordered Lists
+ $(".article_rdr .copyNormal ul").each(function() {
+ $(this).addClass("node");
+ });
+
+
+ //Removes nodes from paragraphs where it shouldnt be?
+ $(".article_rdr .share_bar p").each(function() {
+ $(this).removeClass("node");
+ });
+ $(".article_rdr .aia_rdr p").each(function() {
+ $(this).removeClass("node");
+ });
+ $(".article_rdr .share_bar ul").each(function() {
+ $(this).removeClass("node");
+ });
+ $(".article_rdr .aia_rdr ul").each(function() {
+ $(this).removeClass("node");
+ });
+ $(".contextual_links_fmt p").each(function() {
+ $(this).removeClass("node");
+ });
+ $(".article_rdr table p").each(function() {
+ $(this).removeClass("node");
+ });
+ $(".article_rdr .verifiedBox_rdr p").each(function() {
+ $(this).removeClass("node");
+ });
+ $(".article_rdr .copyNormal table ul").each(function() {
+ $(this).removeClass("node");
+ });
+
+ // Finds the number of paragraphs / List items within the article.
+ sbposition = ($('.article_rdr .node').length);
+
+ //Is this Healthwise Content??
+ if (s_publication_source.indexOf("Healthwise") != -1) {
+ //Healthwise Steps, if different;
+ } else {
+ //Moves the sponsor box placeholder up into the document
+ if (sbposition >= 8) {
+ $('#remoteAd_rdr').insertAfter('.node:eq(5)');
+ }
+ if (sbposition == 7) {
+ $('#remoteAd_rdr').insertAfter('.node:eq(4)');
+ }
+ if (sbposition == 6) {
+ $('#remoteAd_rdr').insertAfter('.node:eq(4)');
+ }
+ if (sbposition == 5) {
+ $('#remoteAd_rdr').insertAfter('.node:eq(4)');
+ }
+ if (sbposition == 4) {
+ $('#remoteAd_rdr').insertAfter('.node:eq(3)');
+ }
+ if (sbposition == 4) {
+ $('#remoteAd_rdr').insertAfter('.node:eq(3)');
+ }
+ //End else
+ }
+
+
+ setTimeout(function() {
+ var iframeURLOutOfPB = 'http://as.webmd.com/html.ng/transactionID=442451382&tile=365904714&tug=2321&pug=__&site=2&affiliate=20&hcent=893&scent=&pos=113&xpg=1625&sec=&amp;au1=&au2=&uri=%2fallergies%2fnews%2f20150220%2fchild-peanut-allergy-findings&artid=091e9c5e810fb2ee&inst=0&amp;leaf=&segm=0&cc=17&tmg=&bc=_age121_l23_age122_j30_t780_&mcent=&micro=';
+
+ var cleanIframeURL = iframeURLOutOfPB.replace(/&amp;/g, '&');
+
+
+ var ad = {
+ adLocation: 'remote',
+ adURL: cleanIframeURL,
+ trans: '442451382',
+ tile: '365904714',
+ pos: '5000'
+ };
+
+ // check to make sure this seed call functionality exists, if it does, dooo it
+ if (webmd.object.exists('//webmd.ads.handleAdSeedCall')) {
+ if(!isDFP){
+ webmd.ads.handleAdSeedCall(ad);
+ }
+
+ setTimeout(function() {
+ updateRemoteAd();
+ }, 2000);
+ }
+ }, 2000);
+
+
+ function updateRemoteAd() {
+ $('.chapterList_fmt #remoteAd_rdr').css('position', 'relative');
+ $('.chapterList_fmt #remoteAd_rdr').css('left', '-14px');
+ $('#remoteAd_Iframe').contents().find("body").attr('id', 'mainContent_area');
+ if ($('#remoteAd_Iframe').contents().find('body').text().length && sbposition >= 4) {
+ $('.conta').css('display', 'block');
+ $('#remoteAd_rdr').css('display', 'block');
+ }
+ }
+
+ })();
+ </script>
+ <script type="text/javascript">
+ var priTopId = "1625";
+ var secTopId = "";
+ </script>
+ <!--<ul><li>$adsystem = DFP</li><li>$pos = 5001</li><li>$print = false</li></ul><ul><li>adtype = iFRAME</li><li>iframeheight = 1</li><li>iframewidth = 1</li><li>adserver = as.webmd.com</li></ul><ul><li>affiliate = 20</li><li>apg = 1625</li><li>artid = 091e9c5e810fb2ee</li><li>au1 = </li><li>au2 = </li><li>bc = _age121_l23_age122_j30_t780_</li><li>brand = 0</li><li>cc = 17</li><li>env = </li><li>hcent = 893</li><li>mcent = </li><li>micro = </li><li>pkg = &amp;leaf=</li><li>pos = 5001</li><li>pug = __</li><li>scent = </li><li>sec = </li><li>segval = </li><li>site = 2</li><li>tile = 365904714</li><li>tmg = </li><li>transactionID = 442451382</li><li>tug = 2321</li><li>uri = %2fallergies%2fnews%2f20150220%2fchild-peanut-allergy-findings</li></ul>-->
+ <script>
+ var priTopId='1625', secTopId='';
+ </script>
+ <div class="centerAd_r1_rdr">
+ <div id="centerAd_fmt" class="centerAd_BG_fmt">
+ <div id="ads2-pos-5001-ad_cw2_icm" class="ad_placeholder"></div>
+ <script>
+ webmd.ads2Consumer.defineAd({targets:{art:'091e9c5e810fb2ee',cc:'17',env:'',hcent:'893',leaf:'&amp;leaf=',mcent:'',mic:'',pt:'1625',sec:'',pug:'__',scent:'',tmg:'',tug:'2321',uri:'%2fallergies%2fnews%2f20150220%2fchild-peanut-allergy-findings'},blockCodes:'_age121_l23_age122_j30_t780_',id:'ads2-pos-5001-ad_cw2_icm',pos:'5001',sizes:[1,2]});
+ </script>
+ </div>
+ </div>
+ <div class="moduleSpacer_rdr"></div>
+ </div>
+ <div id="ContentPane19"></div>
+ <div id="ContentPane20"></div>
+ </div>
+ </div>
+ </div>
+ <div id="navColumn_area">
+ <div id="navColumn_ctr">
+ <div id="ContentPane30"></div>
+ <div id="ContentPane31"></div>
+ <div id="ContentPane22">
+ <div id="guidenav_rdr">
+ <div class="top_fmt"></div>
+ <div id="centernav_fmt">
+ <ul>
+ <li class="header_fmt"> <a href="http://www.webmd.com/allergies/default.htm" onclick="return sl(this,'','lln-ctrcnav_11-1');">Allergies Home</a>
+
+ </li>
+ <li> <a href="http://www.webmd.com/allergies/news-features" onclick="return sl(this,'','lln-ctrcnav_ll-2');">News &amp; Features</a>
+
+ </li>
+ <li> <a href="http://www.webmd.com/allergies/quiz-index" onclick="return sl(this,'','lln-ctrcnav_ll-3');">Quizzes</a>
+
+ </li>
+ <li> <a href="http://www.webmd.com/allergies/ss/slideshow-index" onclick="return sl(this,'','lln-ctrcnav_ll-4');">Slideshows</a>
+
+ </li>
+ <li> <a href="http://www.webmd.com/allergies/video/video-index" onclick="return sl(this,'','lln-ctrcnav_ll-5');">Videos</a>
+
+ </li>
+ <li> <a href="http://www.webmd.com/allergies/medical-reference-index" onclick="return sl(this,'','lln-ctrcnav_ll-6');">Reference</a>
+
+ </li>
+ <li> <a href="http://doctor.webmd.com/find-a-doctor/allergy" onclick="return sl(this,'','lln-ctrcnav_ll-7');">Find an Allergist</a>
+
+ </li>
+ </ul>
+ </div>
+ <div id="standardSubnav_fmt">
+ <div class="header_fmt">
+ <div class="icon_fmt"> <a href="http://www.webmd.com/allergies/guide/default.htm" onclick="return sl(this,'','gd-fullgd_1');">
+ <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/icon_guide.gif" border="0" alt="Guide"/>
+ </a>
+
+ </div>
+ <div class="link_fmt"> <a href="http://www.webmd.com/allergies/guide/default.htm" onclick="return sl(this,'','gd-fullgd_1');">Allergies Guide</a>
+
+ </div>
+ </div>
+ <div class="moduleSpacer_rdr"></div>
+ <div class="number_fmt">1</div>
+ <div class="chapter_fmt"> <a href="http://www.webmd.com/allergies/guide/allergies-overview" onclick="return sl(this,'','gd-fullgd_2');">Allergy Facts</a>
+
+ </div>
+ <div class="number_fmt">2</div>
+ <div class="chapter_fmt"> <a href="http://www.webmd.com/allergies/guide/allergy-symptoms-types"
+ onclick="return sl(this,'','gd-fullgd_3');">Allergy Types</a>
+
+ </div>
+ <div class="number_fmt">3</div>
+ <div class="chapter_fmt"> <a href="http://www.webmd.com/allergies/guide/allergies-diagnosis-tests"
+ onclick="return sl(this,'','gd-fullgd_4');">Allergy Tests</a>
+
+ </div>
+ <div class="number_fmt">4</div>
+ <div class="chapter_fmt"> <a href="http://www.webmd.com/allergies/guide/allergies-treatment-care"
+ onclick="return sl(this,'','gd-fullgd_5');">Allergy Treatment</a>
+
+ </div>
+ <div class="number_fmt">5</div>
+ <div class="chapter_fmt"> <a href="http://www.webmd.com/allergies/guide/allergies-living-managing"
+ onclick="return sl(this,'','gd-fullgd_6');">Living &amp; Managing</a>
+
+ </div>
+ <div class="number_fmt">6</div>
+ <div class="chapter_fmt"> <a href="http://www.webmd.com/allergies/guide/allergies-support-resources"
+ onclick="return sl(this,'','gd-fullgd_7');">Allergy Resources</a>
+
+ </div>
+ </div>
+ <div class="bottom_fmt"></div>
+ </div>
+ <script type="text/javascript">
+ var chapters = [
+ 'http://www.webmd.com/allergies/guide/default.htm',
+
+ 'http://www.webmd.com/allergies/guide/allergies-overview',
+
+ 'http://www.webmd.com/allergies/guide/allergy-symptoms-types',
+
+ 'http://www.webmd.com/allergies/guide/allergies-diagnosis-tests',
+
+ 'http://www.webmd.com/allergies/guide/allergies-treatment-care',
+
+ 'http://www.webmd.com/allergies/guide/allergies-living-managing',
+
+ 'http://www.webmd.com/allergies/guide/allergies-support-resources',
+ '',''];
+
+
+ var c1_1 = [
+ 'http://www.webmd.com/allergies/guide/allergy-basics',
+ 'http://www.webmd.com/allergies/guide/eye-allergies-1',
+ 'http://www.webmd.com/allergies/guide/chronic-allergies-causes',];
+
+ var c1_2 = [
+ 'http://www.webmd.com/allergies/guide/allergic-reaction-causes',
+ 'http://www.webmd.com/allergies/guide/allergy-triggers',
+ 'http://www.webmd.com/allergies/guide/nasal-polyps-symptoms-and-treatments'];
+
+ var c1_3 = [
+ 'http://www.webmd.com/allergies/guide/who-gets-allergies'];
+
+ var c1_4 = [
+ 'http://www.webmd.com/allergies/guide/allergy-prevention',
+ 'http://www.webmd.com/allergies/guide/neti-pot-nasal-irrigation-pros-and-cons'];
+
+ var c1_5 = [
+ 'http://www.webmd.com/allergies/guide/asthma-allergies',
+ 'http://www.webmd.com/allergies/guide/sleep-and-allergies',
+ 'http://www.webmd.com/allergies/guide/allergies-sinusitis',
+ 'http://www.webmd.com/allergies/guide/anaphylaxis'];
+
+ var c2_1 = [
+ 'http://www.webmd.com/allergies/guide/food-allergy-intolerances',
+ 'http://www.webmd.com/allergies/guide/milk-allergy',
+ 'http://www.webmd.com/allergies/guide/egg-allergy',
+ 'http://www.webmd.com/allergies/guide/wheat-allergy',
+ 'http://www.webmd.com/allergies/guide/nut-allergy',
+ 'http://www.webmd.com/allergies/guide/fish-allergy',
+ 'http://www.webmd.com/allergies/guide/shellfish-allergy',
+ 'http://www.webmd.com/allergies/guide/sulfite-sensitivity',
+ 'http://www.webmd.com/allergies/guide/soy-allergy',
+ 'http://www.webmd.com/allergies/guide/casein-allergy-overview'];
+
+ var c2_2 = [
+ 'http://www.webmd.com/allergies/guide/spring-allergies',
+ 'http://www.webmd.com/allergies/guide/summer-allergies',
+ 'http://www.webmd.com/allergies/guide/fall-allergy-relief',
+ 'http://www.webmd.com/allergies/guide/winter-allergies'];
+
+ var c2_3 = [
+ 'http://www.webmd.com/allergies/guide/dog-allergies',
+ 'http://www.webmd.com/allergies/guide/cat-allergies'];
+
+ var c2_4 = [
+ 'http://www.webmd.com/allergies/guide/understanding-hay-fever-basics',
+ 'http://www.webmd.com/allergies/guide/conjunctivitis',
+ 'http://www.webmd.com/allergies/guide/hives-urticaria-angioedema',
+ 'http://www.webmd.com/allergies/guide/poison-ivy-oak-sumac',
+ 'http://www.webmd.com/allergies/guide/insect-stings',
+ 'http://www.webmd.com/allergies/guide/mold-allergy',
+ 'http://www.webmd.com/allergies/guide/pollen-allergies-symptoms-triggers-treatments',
+ 'http://www.webmd.com/allergies/guide/sun-reactions',
+ 'http://www.webmd.com/allergies/guide/salicylate-allergy',
+ 'http://www.webmd.com/allergies/guide/cosmetics',
+ 'http://www.webmd.com/allergies/guide/nickel-jewelry-allergy',
+ 'http://www.webmd.com/allergies/guide/drug-allergies',
+ 'http://www.webmd.com/allergies/guide/dust-allergies',
+ 'http://www.webmd.com/allergies/guide/chemical-allergies',
+ 'http://www.webmd.com/allergies/guide/penicillin-allergy-topic-overview'];
+
+ var c3_1 = [
+ 'http://www.webmd.com/allergies/guide/allergies-doctor-exam',
+ 'http://www.webmd.com/allergies/guide/food-allergy-testing',
+ 'http://www.webmd.com/allergies/guide/food-allergy-symptom-diary',
+ 'http://www.webmd.com/allergies/guide/allergies-elimination-diet'];
+
+ var c3_2 = [
+ 'http://www.webmd.com/allergies/guide/skin-test',
+ 'http://www.webmd.com/allergies/guide/blood-test'];
+
+ var c4 = [
+ 'http://www.webmd.com/allergies/guide/allergy-medications',
+ 'http://www.webmd.com/allergies/guide/antihistamines-for-allergies',
+ 'http://www.webmd.com/allergies/guide/decongestants',
+ 'http://www.webmd.com/allergies/guide/anticholinergic-nasal-allergy-sprays',
+ 'http://www.webmd.com/allergies/guide/steroid_nasal_sprays',
+ 'http://www.webmd.com/allergies/guide/allergy-eye-drops',
+ 'http://www.webmd.com/allergies/guide/singulair-leukotriene-inhibitors',
+ 'http://www.webmd.com/allergies/guide/mast-cell-inhibitors',
+ 'http://www.webmd.com/allergies/guide/allergy-shots',
+ 'http://www.webmd.com/allergies/guide/skin-allergies',
+ 'http://www.webmd.com/allergies/guide/dehumidifiers-for-allergies',
+ 'http://www.webmd.com/allergies/guide/allergies-when-to-use-auto-injector'];
+
+ var c5 = [
+ 'http://www.webmd.com/allergies/guide/allergic-reaction-home-treatment-options',
+ 'http://www.webmd.com/allergies/guide/food-diary-helping-uncover-food-allergy-triggers',
+ 'http://www.webmd.com/allergies/guide/dust-mite-mattress-and-pillow-covers-for-allergy-relief',
+ 'http://www.webmd.com/allergies/guide/allergy-proof-your-environment',
+ 'http://www.webmd.com/allergies/guide/tips-for-handling-allergies-in-school'];
+
+ var c6 = [
+ 'http://www.webmd.com/allergies/guide/resource',
+ 'http://www.webmd.com/allergies/guide/allergy-suggested-reading',];
+ </script>
+ <script type="text/javascript">
+ function definePage () {
+
+ var parentChapter, tabChapter, s_pagenameCheck;
+ var subChapter ="1";
+ var theUrl=location.href;
+ s_pagenameCheck = theUrl.toLowerCase();
+
+ if (s_pagenameCheck.lastIndexOf("?") > 0) {
+ var s_pagenameCheck = s_pagenameCheck.substring(0,s_pagenameCheck.lastIndexOf("?"));
+ }
+
+ if( s_pagenameCheck in oc(chapters) ) {
+ parentChapter = s_pagenameCheck;
+ highlightLeftBin(parentChapter);
+ highlightCenterBin(parentChapter);
+ highlightTab();
+ } else {
+
+ if( s_pagenameCheck in oc(c1_1) ) { parentChapter = chapters[1]; tabChapter = "1";subChapter = "1";}
+
+ if( s_pagenameCheck in oc(c1_2) ) { parentChapter = chapters[1]; tabChapter = "1";subChapter = "2";}
+
+ if( s_pagenameCheck in oc(c1_3) ) { parentChapter = chapters[1]; tabChapter = "1";subChapter = "3";}
+
+ if( s_pagenameCheck in oc(c1_4) ) { parentChapter = chapters[1]; tabChapter = "1";subChapter = "4";}
+
+ if( s_pagenameCheck in oc(c1_5) ) { parentChapter = chapters[1]; tabChapter = "1";subChapter = "5";}
+
+ if( s_pagenameCheck in oc(c2_1) ) { parentChapter = chapters[2]; tabChapter = "2";subChapter = "1";}
+
+ if( s_pagenameCheck in oc(c2_2) ) { parentChapter = chapters[2]; tabChapter = "2";subChapter = "2";}
+
+ if( s_pagenameCheck in oc(c2_3) ) { parentChapter = chapters[2]; tabChapter = "2";subChapter = "3";}
+
+ if( s_pagenameCheck in oc(c2_4) ) { parentChapter = chapters[2]; tabChapter = "2";subChapter = "4";}
+
+ if( s_pagenameCheck in oc(c3_1) ) { parentChapter = chapters[3]; tabChapter = "3";subChapter = "1";}
+
+ if( s_pagenameCheck in oc(c3_2) ) { parentChapter = chapters[3]; tabChapter = "3";subChapter = "2";}
+
+ if( s_pagenameCheck in oc(c4) ) { parentChapter = chapters[3]; tabChapter = "4";}
+
+ if( s_pagenameCheck in oc(c5) ) { parentChapter = chapters[4]; tabChapter = "5";}
+
+ if( s_pagenameCheck in oc(c6) ) { parentChapter = chapters[5]; tabChapter = "6";}
+
+ if ((typeof(parentChapter)!="undefined") & (typeof(tabChapter)!="undefined")) {
+ highlightLeftBin(parentChapter);
+ highlightCenterBin(parentChapter);
+ setNavState(tabChapter, subChapter);
+ }
+ }
+ }
+
+ definePage();
+ </script>
+ <div class="moduleSpacer_rdr"></div>
+ </div>
+ <div id="ContentPane32"></div>
+ <div id="ContentPane33"></div>
+ <div id="ContentPane34"></div>
+ <div id="ContentPane26">
+ <div class="gen_ll" id="lln-rltdto">
+ <h3>Related to Allergies</h3>
+
+ <ul>
+ <li class="first"> <a href="http://www.webmd.com/asthma/default.htm" onclick="return sl(this,'','lln-rltdto_1');">Asthma</a>
+
+ </li>
+ <li class="odd"> <a href="http://www.webmd.com/cold-and-flu/default.htm" onclick="return sl(this,'','lln-rltdto_2');">Cold, Cough &amp; Flu</a>
+
+ </li>
+ <li> <a href="http://www.webmd.com/interaction-checker/default.htm" onclick="return sl(this,'','lln-rltdto_3');">Drug Interaction Checker</a>
+
+ </li>
+ <li class="odd"> <a href="http://www.webmd.com/eye-health/ss/slideshow-eye-allergies" onclick="return sl(this,'','lln-rltdto_4');"
+ class="type_ss">Eye Allergies<i> </i></a>
+
+ </li>
+ <li> <a href="http://www.webmd.com/allergies/guide/food-allergy-intolerances"
+ onclick="return sl(this,'','lln-rltdto_5');">Food Allergies</a>
+
+ </li>
+ <li class="odd"> <a href="http://symptoms.webmd.com/seasonal-allergy-map-tool/default.htm"
+ onclick="return sl(this,'','lln-rltdto_6');">Map: Track Allergy Symptoms</a>
+
+ </li>
+ <li> <a href="http://www.webmd.com/skin-problems-and-treatments/default.htm"
+ onclick="return sl(this,'','lln-rltdto_7');">Skin Problems &amp; Treatments</a>
+
+ </li>
+ <li class="odd last"> <a href="http://www.webmd.com/allergies/directory-index" onclick="return sl(this,'','lln-rltdto_8');">More Related Topics </a>
+
+ </li>
+ </ul>
+ </div>
+ </div>
+ <div id="ContentPane35"></div>
+ <div id="ContentPane36"></div>
+ <div id="ContentPane37"></div>
+ <div id="ContentPane27">
+ <!--<ul><li>$adsystem = DFP</li><li>$pos = 113</li><li>$print = false</li></ul><ul><li>adtype = iFRAME</li><li>iframeheight = 600</li><li>iframewidth = 160</li><li>adserver = as.webmd.com</li></ul><ul><li>affiliate = 20</li><li>apg = 1625</li><li>artid = 091e9c5e810fb2ee</li><li>au1 = </li><li>au2 = </li><li>bc = _age121_l23_age122_j30_t780_</li><li>brand = 0</li><li>cc = 17</li><li>env = </li><li>hcent = 893</li><li>mcent = </li><li>micro = </li><li>pkg = &amp;leaf=</li><li>pos = 113</li><li>pug = __</li><li>scent = </li><li>sec = </li><li>segval = </li><li>site = 2</li><li>tile = 365904714</li><li>tmg = </li><li>transactionID = 442451382</li><li>tug = 2321</li><li>uri = %2fallergies%2fnews%2f20150220%2fchild-peanut-allergy-findings</li></ul>-->
+ <script>
+ var priTopId='1625', secTopId='';
+ </script>
+ <div id="leftAd_rdr">
+ <div class="leftAd_top_fmt"></div>
+ <div id="leftAd_fmt" class="leftAd_BG_fmt loaded">
+ <div id="ads2-pos-113-ad" class="ad_placeholder"></div>
+ </div>
+ <div class="leftAd_bottom_fmt"></div>
+ </div>
+ <div class="moduleSpacer_rdr"></div>
+ <script>
+ webmd.ads2Consumer.defineAd({targets:{art:'091e9c5e810fb2ee',cc:'17',env:'',hcent:'893',leaf:'&amp;leaf=',mcent:'',mic:'',pt:'1625',sec:'',pug:'__',scent:'',tmg:'',tug:'2321',uri:'%2fallergies%2fnews%2f20150220%2fchild-peanut-allergy-findings'},blockCodes:'_age121_l23_age122_j30_t780_',id:'ads2-pos-113-ad',pos:'113',sizes:[160,600]});
+ </script>
+ </div>
+ <div id="ContentPane38"></div>
+ <div id="ContentPane39"></div>
+ </div>
+ </div>
+ <div id="thirdCol_area">
+ <div id="thirdCol_ctr">
+ <div id="ContentPane40"></div>
+ <div id="ContentPane41"></div>
+ <div id="ContentPane21">
+ <div id="ed-urr" class="unified_right_v2_rdr">
+ <h2>Today on WebMD</h2>
+
+ <div class="unified_right_inner_v2_rdr">
+ <div class="entry_fmt" id="x52"> <a href="http://www.webmd.com/allergies/ss/slideshow-natural-relief" onclick="return sl(this,'','ed-urr_1othr');">
+ <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/article_thumbnails/news/2013/01_2013/cdc_flu_update_02012013xml/110x70_cdc_flu_update_02012013xml.jpg" alt="man blowing nose"/>
+ </a>
+
+ <div class="link_fmt"> <a href="http://www.webmd.com/allergies/ss/slideshow-natural-relief" onclick="return sl(this,'','ed-urr_1othr');">12 Natural Ways to Defeat Allergies</a>
+
+ </div>
+ <div class="header_fmt">Make these tweaks to your diet, home, and lifestyle.</div>
+ </div>
+ <div class="entry_fmt" id="x53"> <a href="http://www.webmd.com/allergies/ss/slideshow-nasal-allergy-relief-products"
+ onclick="return sl(this,'','ed-urr_2othr');">
+ <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/article_thumbnails/slideshows/nasal_allergy_relief/110x70_nasal_allergy_relief.jpg" alt="Allergy capsule"/>
+ </a>
+
+ <div class="link_fmt"> <a href="http://www.webmd.com/allergies/ss/slideshow-nasal-allergy-relief-products"
+ onclick="return sl(this,'','ed-urr_2othr');">Need Nasal Allergy Relief?</a>
+
+ </div>
+ <div class="header_fmt">Breathe easier with these products.</div>
+ </div>
+ <div class="clear_fmt">&nbsp;</div>
+ <div class="entry_fmt" id="x54"> <a href="http://www.webmd.com/allergies/ss/slideshow-pets-and-allergies"
+ onclick="return sl(this,'','ed-urr_3othr');">
+ <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/article_thumbnails/health_checks/pet_health_evaluator_healthcheck/110x70_pet_health_evaluator_cat_healthcheck.jpg" alt="cat on couch"/>
+ </a>
+
+ <div class="link_fmt"> <a href="http://www.webmd.com/allergies/ss/slideshow-pets-and-allergies"
+ onclick="return sl(this,'','ed-urr_3othr');">5 Tips to Cut Pet Allergies</a>
+
+ </div>
+ <div class="header_fmt">Live in harmony with your cat or dog.</div>
+ </div>
+ <div class="entry_fmt" id="x55"> <a href="http://www.webmd.com/allergies/ss/slideshow-common-allergy-triggers"
+ onclick="return sl(this,'','ed-urr_4othr');">
+ <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/article_thumbnails/slideshows/allergy_triggers_slideshow/110x70_allergy_triggers_slideshow.jpg" alt="Woman sneezing with tissue in meadow"/>
+ </a>
+
+ <div class="link_fmt"> <a href="http://www.webmd.com/allergies/ss/slideshow-common-allergy-triggers"
+ onclick="return sl(this,'','ed-urr_4othr');">10 Common Allergy Triggers</a>
+
+ </div>
+ <div class="header_fmt">Which ones affect you?</div>
+ </div>
+ <div class="clear_fmt">&nbsp;</div>
+ </div>
+ </div>
+ <script class="oas_template" id="urr_V20" type="text/html">
+ <a onclick="return sl(this,'','thumb-link0_{link_position}{onclick_append}');" href="{href}">
+ <img src="{img}" alt="{alt_text}" />
+ </a>
+ <div class="link_fmt">
+ <a onclick="return sl(this,'','thumb-link0_{link_position}{onclick_append}');" href="{href}">{alt}</a>
+ </div>
+ <div class="header_fmt">{text}</div>
+ </script>
+ <script type="text/javascript">
+ webmd.oas = window.webmd.oas || {}; webmd.oas.mapping = window.webmd.oas.mapping || {};
+ webmd.oas.mapping['urr_V20'] = ['x52','x53','x54','x55'];
+ </script>
+ </div>
+ <div id="ContentPane42"></div>
+ <div id="ContentPane43"></div>
+ <div id="ContentPane44"></div>
+ <div id="ContentPane24">
+ <!--<ul><li>$adsystem = DFP</li><li>$pos = 121</li><li>$print = false</li></ul><ul><li>adtype = iFRAME</li><li>iframeheight = 250</li><li>iframewidth = 300</li><li>adserver = as.webmd.com</li></ul><ul><li>affiliate = 20</li><li>apg = 1625</li><li>artid = 091e9c5e810fb2ee</li><li>au1 = </li><li>au2 = </li><li>bc = _age121_l23_age122_j30_t780_</li><li>brand = 0</li><li>cc = 17</li><li>env = </li><li>hcent = 893</li><li>mcent = </li><li>micro = </li><li>pkg = &amp;leaf=</li><li>pos = 121</li><li>pug = __</li><li>scent = </li><li>sec = </li><li>segval = </li><li>site = 2</li><li>tile = 365904714</li><li>tmg = </li><li>transactionID = 442451382</li><li>tug = 2321</li><li>uri = %2fallergies%2fnews%2f20150220%2fchild-peanut-allergy-findings</li></ul>-->
+ <script>
+ var priTopId='1625', secTopId='';
+ </script>
+ <div id="rightAd_rdr">
+ <div class="rightAd_top_fmt"></div>
+ <div id="rightAd_fmt" class="rightAd_BG_fmt loaded">
+ <div id="ads2-pos-121-ad" class="ad_placeholder"></div>
+ </div>
+ <div class="rightAd_bottom_fmt"></div>
+ </div>
+ <div class="moduleSpacer_rdr"></div>
+ <script>
+ webmd.ads2Consumer.defineAd({targets:{art:'091e9c5e810fb2ee',cc:'17',env:'',hcent:'893',leaf:'&amp;leaf=',mcent:'',mic:'',pt:'1625',sec:'',pug:'__',scent:'',tmg:'',tug:'2321',uri:'%2fallergies%2fnews%2f20150220%2fchild-peanut-allergy-findings'},blockCodes:'_age121_l23_age122_j30_t780_',id:'ads2-pos-121-ad',pos:'121',sizes:[[300,250],[300, 600],[300,1050]]});
+ </script>
+ <div id="thumb-link1" class="unified_right_rdr">
+ <h2></h2>
+
+ <div class="unified_right_inner_rdr">
+ <div class="entry_fmt" id="x20"> <a href="http://www.webmd.com/allergies/features/the-truth-about-mucus"
+ onclick="return sl(this,'','thumb-link1_1othr');">
+ <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/article_thumbnails/features/_2012/04_2012/truth_about_mucus_features/69x75_truth_about_mucus_features.jpg" alt="blowing nose"/>
+ </a>
+
+ <div class="header_fmt">Article</div>
+ <div class="link_fmt"> <a href="http://www.webmd.com/allergies/features/the-truth-about-mucus"
+ onclick="return sl(this,'','thumb-link1_1othr');">The Truth About Mucus</a>
+
+ </div>
+ </div>
+ <div class="entry_fmt" id="x21"> <a href="http://www.webmd.com/allergies/postnasal-drip" onclick="return sl(this,'','thumb-link1_2othr');">
+ <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/article_thumbnails/news/2011/11_2011/acne_and_sore_throat/69x75_acne_and_sore_throat.jpg" alt="woman with sore throat"/>
+ </a>
+
+ <div class="header_fmt">Article</div>
+ <div class="link_fmt"> <a href="http://www.webmd.com/allergies/postnasal-drip" onclick="return sl(this,'','thumb-link1_2othr');">What Is Postnasal Drip?</a>
+
+ </div>
+ </div>
+ <div class="clear_fmt">&nbsp;</div>
+ <div class="entry_fmt" id="x22"> <a href="http://www.webmd.com/allergies/ss/slideshow-bad-bugs" onclick="return sl(this,'','thumb-link1_3ss');">
+ <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/article_thumbnails/news/2012/08_2012/new_tickborne_disease/69x75_new_tickborne_disease.jpg" alt="lone star tick"/>
+ </a>
+
+ <div class="header_fmt">Slideshow</div>
+ <div class="link_fmt"> <a href="http://www.webmd.com/allergies/ss/slideshow-bad-bugs" onclick="return sl(this,'','thumb-link1_3ss');">Identify Bugs and Their Bites</a>
+
+ </div>
+ </div>
+ <div class="entry_fmt" id="x23"> <a href="http://www.webmd.com/allergies/ss/slideshow-natural-relief" onclick="return sl(this,'','thumb-link1_4ss');">
+ <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/article_thumbnails/slideshows/12_natural_ways_to_defeat_allergies/69x75_12_natural_ways_to_defeat_allergies.jpg" alt="Woman blowing nose"/>
+ </a>
+
+ <div class="header_fmt">Slideshow</div>
+ <div class="link_fmt"> <a href="http://www.webmd.com/allergies/ss/slideshow-natural-relief" onclick="return sl(this,'','thumb-link1_4ss');">12 Natural Ways to Defeat Allergies</a>
+
+ </div>
+ </div>
+ <div class="clear_fmt">&nbsp;</div>
+ <script class="oas_template" id="oas_urr_1" type="text/html">
+ <a onclick="return sl(this,'','thumb-link1_{link_position}{onclick_append}');" href="{href}">
+ <img src="{img}" alt="{alt_text}" />
+ </a>
+ <div class="header_fmt">{text}</div>
+ <div class="link_fmt">
+ <a onclick="return sl(this,'','thumb-link1_{link_position}{onclick_append}');" href="{href}">{alt}</a>
+ </div>
+ </script>
+ <script type="text/javascript">
+ webmd.oas = window.webmd.oas || {}; webmd.oas.mapping = window.webmd.oas.mapping || {};
+ webmd.oas.mapping['oas_urr_1'] = ['x20','x21','x22','x23'];
+ </script>
+ </div>
+ </div>
+ </div>
+ <div id="ContentPane45">
+ <style>
+ #allergyappsmsemailgen90 {
+ box-sizing: border-box;
+ position: relative;
+ width: 300px;
+ height: 90px;
+ padding: 5px 9px 0 79px;
+ background: url(http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/mobile/app-marketing/allergy/modules/gen_allergy_woman_sneezing_sm.jpg) no-repeat 10px 50%;
+ border: 1px solid #989898;
+ font-family: 'Lato', sans-serif;
+ margin: 0 auto 1em;
+ }
+ #allergyappsmsemailgen90,
+ #allergyappsmsemailgen90 p,
+ #allergyappsmsemailgen90 a,
+ #allergyappsmsemailgen90 input,
+ #allergyappsmsemailgen90 label,
+ #allergyappsmsemailgen90 h1,
+ #allergyappsmsemailgen90 h2,
+ #allergyappsmsemailgen90 h4,
+ #allergyappsmsemailgen90 .pane h1,
+ #allergyappsmsemailgen90 .pane h2 {
+ font-family: 'Lato', sans-serif;
+ }
+
+ #allergyappsmsemailgen90 *,
+ #allergyappsmsemailgen90 *:before,
+ #allergyappsmsemailgen90 *:after {
+ box-sizing: border-box;
+ }
+ #allergyappsmsemailgen90 .pane {
+ display: block;
+ }
+ /*#allergyappsmsemailgen90 .paneIntro,*/
+ #allergyappsmsemailgen90 .paneSystemError {
+ display: none;
+ }
+ #allergyappsmsemailgen90 .paneBusy {
+ display: none;
+ margin-top: 1em;
+ overflow: hidden;
+ }
+ #allergyappsmsemailgen90 .paneBusy p {
+ line-height: 20px;
+ float: left;
+ margin-left: .5em;
+ }
+ #allergyappsmsemailgen90 .loading_small {
+ float: left;
+ }
+ #allergyappsmsemailgen90 .paneSystemError p {
+ margin: 10px 0;
+ }
+ #allergyappsmsemailgen90 .paneDone {
+ display: none;
+ }
+ #allergyappsmsemailgen90 h1 {
+ margin: 12px 0 0 0;
+ line-height: 1em;
+ color: #222;
+ font-size: 27px;
+ font-weight: bold;
+ }
+ #allergyappsmsemailgen90 h2 {
+ margin: 18px 0 10px 0;
+ line-height: 1em;
+ color: #222;
+ font-size: 18px;
+ font-weight: normal;
+ }
+ #allergyappsmsemailgen90 h3 {
+ margin: 0;
+ line-height: 1em;
+ color: #222;
+ font-size: 14px;
+ font-weight: bold;
+ }
+ #allergyappsmsemailgen90 p {
+ margin: 0;
+ line-height: 1em;
+ color: #222;
+ font-size: 14px;
+ font-weight: normal;
+ }
+ #allergyappsmsemailgen90 .allergyapplogo {
+ width: 163px;
+ height: 20px;
+ font-size: 0;
+ line-height: 0;
+ background: url(http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/mobile/app-marketing/allergy/modules/webmd-allergy-app-logo_163x20.png);
+ }
+ #allergyappsmsemailgen90 form {
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ height: 64px;
+ padding: 0 9px 9px 79px;
+ display: none;
+ }
+ #allergyappsmsemailgen90 .sender,
+ #allergyappsmsemailgen90 .controls {
+ float: left;
+ }
+ #allergyappsmsemailgen90 form p {
+ color: #222;
+ line-height: 1em;
+ font-size: 14px;
+ font-weight: bold;
+ text-align:left;
+ }
+ #allergyappsmsemailgen90 input[type=text] {
+ position: absolute;
+ bottom: 4px;
+ left: 79px;
+ width: 133px;
+ height: 30px;
+ margin: 0 10px 0 0;
+ padding: 0 4px;
+ background: #fff;
+ color: #666;
+ border: 1px solid #d5d5d5;
+ border-radius: 3px;
+ font-size: 14px;
+ font-weight: normal;
+ }
+ #allergyappsmsemailgen90 input[type=submit] {
+ position: absolute;
+ bottom: 4px;
+ right: 9px;
+ width: 67px;
+ height: 30px;
+ margin: 0;
+ padding: 0;
+ background: #f57f20;
+ color: #fff;
+ border: none;
+ border-radius: 3px;
+ font-size: 15px;
+ font-weight: bold;
+ }
+ #allergyappsmsemailgen90 input.invalid {
+ background: #fcc;
+ border: 1px solid #ffb3b3;
+ box-shadow: inset 0 0 1.2rem #ffabab;
+ color: #f33;
+ }
+ </style>
+ <div id="allergyappsmsemailgen90" class="small">
+ <div class="allergyapplogo thankyou">WebMD Allergy App</div>
+ <div class="pane paneForm">
+ <form action="#" method="get">
+ <p>Send yourself a link to download the app.</p>
+ <div class="sender">
+ <input type="text" id="email" name="toAddress" value="Your email address"
+ class="placeholder"/>
+ </div>
+ <div class="controls">
+ <input type="submit" value="Submit"/>
+ </div>
+ </form>
+ </div>
+ <div class="pane paneBusy">
+ <div class="loading_small">Loading ...</div>
+ <p>Please wait...</p>
+ </div>
+ <div class="pane paneSystemError">
+ <p>This feature is temporarily unavailable. Please try again later.</p>
+ </div>
+ <div class="pane paneDone">
+ <h3>Thanks!</h3>
+
+ <p>Now check your email account on your mobile phone to download your new
+ app.</p>
+ </div>
+ </div>
+ <script type="text/javascript">
+ require(['allergy_app/1/allergy_app_sms_email'], function(allergyappsmsemail) {
+ var allergyappsmsemailgen90 = webmd.object(allergyappsmsemail);
+ allergyappsmsemailgen90.init({wrapper:'allergyappsmsemailgen90'});
+ });
+ </script>
+ </div>
+ <div id="ContentPane46">
+ <div id="thumb-link2" class="unified_right_rdr">
+ <h2></h2>
+
+ <div class="unified_right_inner_rdr">
+ <div class="entry_fmt" id="x24"> <a href="http://www.webmd.com/allergies/guide/cat-allergies" onclick="return sl(this,'','thumb-link2_1othr');">
+ <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/article_thumbnails/features/_2011/11_2011/healthy_cat_gift_guide_features/69x75_healthy_cat_gift_guide_features.jpg" alt="cat lying on shelf"/>
+ </a>
+
+ <div class="header_fmt">Article</div>
+ <div class="link_fmt"> <a href="http://www.webmd.com/allergies/guide/cat-allergies" onclick="return sl(this,'','thumb-link2_1othr');">Causes of Cat Allergies</a>
+
+ </div>
+ </div>
+ <div class="entry_fmt" id="x25"> <a href="http://www.webmd.com/allergies/indoor-outdoor-relief-14/video-allergy-testing-and-shots"
+ onclick="return sl(this,'','thumb-link2_2othr');">
+ <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/article_thumbnails/reference_guide/allergy_tests_ref_guide/69x75_allergy_tests_ref_guide.jpg" alt="Allergy prick test"/>
+ </a>
+
+ <div class="header_fmt">VIDEO</div>
+ <div class="link_fmt"> <a href="http://www.webmd.com/allergies/indoor-outdoor-relief-14/video-allergy-testing-and-shots"
+ onclick="return sl(this,'','thumb-link2_2othr');">Types of Allergy Tests</a>
+
+ </div>
+ </div>
+ <div class="clear_fmt">&nbsp;</div>
+ <div class="entry_fmt" id="x26"> <a href="http://www.webmd.com/allergies/allergies-assessment/default.htm"
+ onclick="return sl(this,'','thumb-link2_3othr');">
+ <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/article_thumbnails/health_checks/allergy_sinus_symptoms_evaluator/69x75_allergy_sinus_symptoms_evaluator.jpg" alt="Man sneezing into tissue"/>
+ </a>
+
+ <div class="header_fmt">Assessment</div>
+ <div class="link_fmt"> <a href="http://www.webmd.com/allergies/allergies-assessment/default.htm"
+ onclick="return sl(this,'','thumb-link2_3othr');">Get Personalized Allergy &amp; Sinus Tips</a>
+
+ </div>
+ </div>
+ <div class="entry_fmt" id="x27"> <a href="http://www.webmd.com/allergies/rm-quiz-indoor-allergies" onclick="return sl(this,'','thumb-link2_4rmq');">
+ <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/article_thumbnails/quizzes/indoor_allergies_rmq/69x75_indoor_allergies_rmq.jpg" alt="Woman holding feather duster up to face, twitching"/>
+ </a>
+
+ <div class="header_fmt">Quiz</div>
+ <div class="link_fmt"> <a href="http://www.webmd.com/allergies/rm-quiz-indoor-allergies" onclick="return sl(this,'','thumb-link2_4rmq');">Test Your Indoor Allergy Smarts</a>
+
+ </div>
+ </div>
+ <div class="clear_fmt">&nbsp;</div>
+ <script class="oas_template" id="oas_urr_2" type="text/html">
+ <a onclick="return sl(this,'','thumb-link2_{link_position}{onclick_append}');" href="{href}">
+ <img src="{img}" alt="{alt_text}" />
+ </a>
+ <div class="header_fmt">{text}</div>
+ <div class="link_fmt">
+ <a onclick="return sl(this,'','thumb-link2_{link_position}{onclick_append}');" href="{href}">{alt}</a>
+ </div>
+ </script>
+ <script type="text/javascript">
+ webmd.oas = window.webmd.oas || {}; webmd.oas.mapping = window.webmd.oas.mapping || {};
+ webmd.oas.mapping['oas_urr_2'] = ['x24','x25','x26','x27'];
+ </script>
+ </div>
+ </div>
+ </div>
+ <div id="ContentPane47"></div>
+ <div id="ContentPane25">
+ <div id="newsletter-mapping-center"></div>
+ <script type="text/javascript">
+ require(['newsletter/1/mapping-centers-desktop','css!newsletter/1/newsletter-module-desktop.css'], function(module){
+ module.init({
+ selector: "#newsletter-mapping-center",
+ template: {
+ successMsg: '&lt;p class="success">&lt;span>{email}&lt;/span>&lt;br //>You will receive your first newsletter with our next scheduled circulation!&lt;/p>',
+ content: '' +
+ '&lt;div class="newsletterFmt">&lt;/div>\n' +
+ '&lt;div class="wrapper">\n' +
+ '&lt;div class="nls-header">{header}&lt;/div>\n' +
+ '{preContent}' +
+ '&lt;div class="nls-content">\n' +
+ '{preForm}' +
+ '&lt;form class="nls-form" action="#" novalidate="novalidate">\n' +
+ '&lt;div class="validationWrapper">&lt;div class="checkbox-container clearfix">{inputs}&lt;/div>&lt;/div>\n' +
+ '&lt;div class="privacy-disclaimer">' +
+ "&lt;em>By clicking submit I agree to WebMD's &lt;a href='http://www.webmd.com/about-webmd-policies/about-privacy-policy' target='_blank'>Privacy Policy&lt;/a>&lt;/em>" +
+ '&lt;/div>' +
+ '&lt;div class="input-container">\n' +
+ '&lt;div class="email-container validationWrapper">\n' +
+ '&lt;input type="email" class="nls-email" name="email" autocapitalize="off" autocorrect="off" placeholder="Enter email address" /> ' +
+ '&lt;button name="nl-submit" formnovalidate class="off {submitClass}" type="submit">&lt;span>Submit&lt;/span>&lt;/button>\n' +
+ '&lt;div class="clearfix">&lt;/div>' +
+ '&lt;/div>\n' + // .email-container
+ '&lt;/div>\n' + // .input-container
+ '&lt;/form>\n' +
+ '&lt;a class="nl-link" href="https://member.webmd.com/newsletters/newsletters.aspx" onclick="return sl(this,"nw","nl-multie_s")">Sign up for more topics!&lt;/a>' +
+ '{postForm}' +
+ '&lt;/div>\n' + // .nls-content
+ '{postContent}' +
+ '&lt;/div>',
+ submitClass: 'webmd-btn webmd-btn-pr webmd-btn-s',
+ successHeader: '&lt;h2>Thank You For Signing Up.&lt;/h2>',
+ promo: '&lt;div class="promo">&lt;div class="promo-content clearfix">&lt;img src="{image}" alt="WebMD App" />&lt;div class="promo-description">&lt;p>{text}&lt;/p>&lt;p class="promoLink">&lt;a href="{url}" class="webmd-btn webmd-btn-pr webmd-btn-m" onclick="wmdPageLink(\'nlupgrd_sub\')">{button}&lt;/a>&lt;/p>&lt;div class="clearfix">&lt;/div>&lt;/div>&lt;/div>&lt;/div>'
+
+ }
+ });
+ });
+ </script>
+ <div class="specialSectionsList_rdr" id="lln-spec">
+ <div class="tomtest"></div>
+ <div class="headTop_fmt"></div>
+ <div class="header_fmt">
+ <h3>WebMD Special Sections</h3>
+
+ </div>
+ <div class="headBot_fmt"></div>
+ <div class="content_fmt">
+ <ul>
+ <li> <a href="http://www.webmd.com/allergies/indoor-outdoor-relief-14/video-allergy-testing-and-shots"
+ onclick="return sl(this,'','lln-spec_1');">Indoor and Outdoor Allergy Relief</a>
+
+ </li>
+ <li> <a href="http://www.webmd.com/allergies/anaphylaxis-15/default.htm" onclick="return sl(this,'','lln-spec_2');">Anaphylaxis: When Allergies Threaten Lives</a>
+
+ </li>
+ <li> <a href="http://symptoms.webmd.com/seasonal-allergy-map-tool/default.htm"
+ onclick="return sl(this,'','lln-spec_3');">Seasonal Allergy Symptoms Nationwide</a>
+
+ </li>
+ <li> <a href="http://www.webmd.com/allergies/sinus-pain-pressure-11/default.htm"
+ onclick="return sl(this,'','lln-spec_4');">Help for Sinus Pain and Pressure</a>
+
+ </li>
+ </ul>
+ </div>
+ <div class="bot_fmt"></div>
+ </div>
+ <div class="moduleSpacer_rdr"></div>
+ </div>
+ <div id="ContentPane48"></div>
+ <div id="ContentPane49"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="footer_rdr">
+ <div id="ContentPane28"></div>
+ <div id="ContentPane23">
+ <script type="text/javascript">
+ (function(){
+ var module_title = 'hicb f-hs';
+ var propIsSet = false;
+
+ $(document).bind('before_pv', function(){
+ if (!propIsSet) {
+ if (s_md.prop46) {
+ s_md.prop46 += "|";
+ }
+ s_md.prop46 += module_title;
+ propIsSet = true;
+ }
+ webmd.metrics.ctr.addImpression(module_title);
+ webmd.metrics.ctr.getImpressions();
+ });
+ })();
+ </script>
+ <div id="sp_ft_rdr">
+ <h3>Health Solutions <span>From Our Sponsors</span></h3>
+
+ <div class="hs_cols">
+ <ul>
+ <li> <a href="http://www.webmd.com/women/pharmacist-14/video-sponsored-heart-disease"
+ onclick="return sl(this,'','hicb f-hs_1');">Controlling Heart Disease</a>
+
+ </li>
+ <li> <a href="http://www.webmd.com/women/pharmacist-14/video-sponsored-allergy"
+ onclick="return sl(this,'','hicb f-hs_2');">Allergy Relief</a>
+
+ </li>
+ <li> <a href="http://www.webmd.com/digestive-disorders/lactose-intolerance-14/real-dairy-no-discomfort"
+ onclick="return sl(this,'','hicb f-hs_3');">Lactose Intolerant?</a>
+
+ </li>
+ </ul>
+ <ul>
+ <li> <a href="http://www.webmd.com/manage-ibsc-cic-symptoms/default.htm" onclick="return sl(this,'','hicb f-hs_4');">IBS-C Symptoms?</a>
+
+ </li>
+ <li> <a href="http://www.webmd.com/osteoarthritis/knee-pain-14/3-signs-new-treatment"
+ onclick="return sl(this,'','hicb f-hs_5');">Exercise &amp; OA Knee Pain</a>
+
+ </li>
+ <li> <a href="http://www.webmd.com/lung/copd/alpha-1-deficiency-14/alphakit-test"
+ onclick="return sl(this,'','hicb f-hs_6');">COPD and Alpha-1</a>
+
+ </li>
+ </ul>
+ <ul>
+ <li> <a href="http://www.webmd.com/digestive-disorders/lactose-intolerance-14/real-dairy-no-discomfort"
+ onclick="return sl(this,'','hicb f-hs_7');">Enjoy Dairy Everyday</a>
+
+ </li>
+ <li> <a href="http://www.webmd.com/women/pharmacist-14/video-sponsored-diabetes"
+ onclick="return sl(this,'','hicb f-hs_8');">Managing Diabetes</a>
+
+ </li>
+ <li> <a href="http://www.webmd.com/oral-health/healthy-mouth-14/video-oral-health-routine"
+ onclick="return sl(this,'','hicb f-hs_9');">21 Days: A New Routine</a>
+
+ </li>
+ </ul>
+ <ul>
+ <li> <a href="http://www.webmd.com/osteoarthritis/knee-pain-14/treat-oa-knee-pain"
+ onclick="return sl(this,'','hicb f-hs_10');">Knee Pain Relief</a>
+
+ </li>
+ <li> <a href="http://www.webmd.com/digestive-disorders/lactose-intolerance-14/real-dairy-no-discomfort"
+ onclick="return sl(this,'','hicb f-hs_11');">Replacing Milk</a>
+
+ </li>
+ <li> <a href="http://www.webmd.com/women/pharmacist-14/video-sponsored-child-meds"
+ onclick="return sl(this,'','hicb f-hs_12');">Children's Medicine</a>
+
+ </li>
+ </ul>
+ <ul>
+ <li> <a href="http://www.webmd.com/manage-ibsc-cic-symptoms/how-treatment-works"
+ onclick="return sl(this,'','hicb f-hs_13');">Frequent Constipation?</a>
+
+ </li>
+ <li> <a href="http://www.webmd.com/lung/copd/alpha-1-deficiency-14/alphakit-test"
+ onclick="return sl(this,'','hicb f-hs_14');">Can COPD Be Inherited?</a>
+
+ </li>
+ <li> <a href="http://www.webmd.com/manage-ibsc-cic-symptoms/default.htm" onclick="return sl(this,'','hicb f-hs_15');">Managing IBS-C Symptoms</a>
+
+ </li>
+ </ul>
+ <div class="clearing"></div>
+ </div>
+ <div class="prem_ed">
+ <div class="prem_ed_border">
+ <h5>More From WebMD:</h5>
+ <a href="http://www.webmd.com/rheumatoid-arthritis/ss/slideshow-ra-overview"
+ onclick="return sl(this,'','f-idc_1');">RA Basics</a>|<a href="http://www.webmd.com/skin-problems-and-treatments/psoriasis/ss/slideshow-severe-psoriasis-9"
+ onclick="return sl(this,'','f-idc_2');">Severe Psoriasis</a>|<a href="http://www.webmd.com/men/erectile-dysfunction-13/slideshow-causes-of-ed"
+ onclick="return sl(this,'','f-idc_3');">ED Causes</a>|<a href="http://www.webmd.com/diabetes/ss/slideshow-blood-sugar-swings"
+ onclick="return sl(this,'','f-idc_4');">Blood Sugar Swings</a>|<a href="http://www.webmd.com/arthritis/psoriatic-arthritis/ss/slideshow-visual-guide-to-psoriatic-arthritis"
+ onclick="return sl(this,'','f-idc_5');">Psoriatic Arthritis</a>|<a href="http://www.webmd.com/multiple-sclerosis/ss/slideshow-multiple-sclerosis-overview"
+ onclick="return sl(this,'','f-idc_6');">Multiple Sclerosis Symptoms</a>|
+ <a
+ href="http://www.webmd.com/add-adhd/childhood-adhd/ss/slideshow-adhd-in-children"
+ onclick="return sl(this,'','f-idc_7');">ADHD in Children</a>|<a href="http://www.webmd.com/diabetes/10-diabetes-diet-myths"
+ onclick="return sl(this,'','f-idc_8');">Diabetes Diet Myths</a>
+ </div>
+ </div>
+ </div>
+ <div id="non_sp_ft_rdr">
+ <div class="social_links social_footer">
+ <h6>Find us on:</h6>
+
+ <ul>
+ <li class="fb"> <a class="facebook" href="http://www.webmd.com/click?url=http%3A//www.facebook.com/%23!/WebMD%3Fref=ts"
+ onclick="return sl(this,'nw','soc_fb-f');"></a>
+
+ </li>
+ <li class="tw"> <a class="twitter" href="http://www.webmd.com/click?url=http%3A//twitter.com/WebMD"
+ onclick="return sl(this,'nw','soc_tw-f');"></a>
+
+ </li>
+ <li class="pn"> <a class="pinterest" href="http://www.webmd.com/click?url=http%3A//pinterest.com/webmd/"
+ onclick="return sl(this,'nw','soc_pn-f');"></a>
+
+ </li>
+ </ul>
+ </div>
+ <div class="ft_logos newSize"> <a onclick="return sl(this,'nw','f-about_22');" href="http://www.webmd.com/click?url=https://www.urac.org/directory/CompanyView.aspx?cid=C8700000F48&amp;aid=1951&amp;Type=Accreditnet"
+ class="logo_urac">
+ <span>URAC: Accredited Health Web Site</span>
+ </a>
+
+ <!-- div id="f733a173-6d11-4e17-ba9f-f1454ef8b32f" style="float:left"
+ --> <a onclick="return sl(this,'nw','f-about_23');" href="http://www.webmd.com/click?url=https://privacy.truste.com/privacy-seal/WebMD,-LLC/validation?rid=7b3bf16d-37b4-42e0-aec7-836ef1d3680d"
+ title="TRUSTe online privacy certification">
+ <img style="border: none; float:left; margin: 0px 8px 0px 0px;" src="//privacy-policy.truste.com/privacy-seal/WebMD,-LLC/seal?rid=80c33c7c-da0b-4788-8236-61a318f00f4c" alt="TRUSTe online privacy certification"/>
+ </a>
+
+ <!-- /div -->
+ <!-- a onclick="return sl(this,'nw','f-about_24');" href="http://www.webmd.com/click?url=http://www.hon.ch/HONcode/Conduct.html%3FHONConduct298987"
+ class="logo_honcode" title="This site complies with the HONcode standard
+ for trustworthy health information.">
+ <span>HonCode: Health on the Net Foundation</span></a -->
+<a onclick="return sl(this,'nw','f-about_24');" href="http://www.webmd.com/click?url=http://www.hon.ch/HONcode/Conduct.html%3FHONConduct298987"
+ title="This site complies with the HONcode standard for trustworthy health information.">
+<img alt="HONcode Seal" src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/layout/shared/honcode14.gif" style="border: none; float:left; margin: 0px 0px 0px 5px; width: 43px; height: 60px;"/>
+ </a>
+ <a onclick="TRUSTeWidget.Tab.link();return sl(this,'f-about_27');"
+ class="logo_AdChoices">AdChoices</a>
+
+ <script type="text/javascript">
+ $(function(){
+ var fileNameToLoad = '//preferences.truste.com/webservices/js?type=webmd&domain=webmd';
+
+ if(webmd.useragent.ua.browser === 'browserSF') {
+ fileNameToLoad = '//preferences.truste.com/webservices/js?domain=webmdsafari.com&type=webmdsafari&js=2';
+ }
+
+ webmd.load({js:[fileNameToLoad, '//privacy-policy.truste.com/privacy-seal/WebMD,-LLC/asc?rid=f733a173-6d11-4e17-ba9f-f1454ef8b32f']});
+ });
+ </script>
+ </div>
+ <div class="ft_text">
+ <div class="about"> <a rel="nofollow" href="http://www.webmd.com/www/about-webmd-policies/default.htm?ss=ftr"
+ onclick="return sl(this,'','f-about_01');">About WebMD</a> <a rel="nofollow"
+ href="http://www.webmd.com/www/about-webmd-policies/media/default.htm"
+ onclick="return sl(this,'f-about_09','ftr')">Advertise With Us</a> <a rel="nofollow"
+ href="http://www.webmd.com/www/about-webmd-policies/about-terms-and-conditions-of-use?ss=ftr"
+ onclick="return sl(this,'','f-about_02');">Terms of Use</a> <a rel="nofollow"
+ href="http://www.webmd.com/www/about-webmd-policies/about-privacy-policy?ss=ftr"
+ onclick="return sl(this,'','f-about_03');">Privacy Policy</a> <a rel="nofollow"
+ href="http://www.webmd.com/www/about-webmd-policies/about-our-sponsors?ss=ftr"
+ onclick="return sl(this,'','f-about_04');">Sponsor Policy</a> <a href="http://www.webmd.com/www/sitemap?ss=ftr"
+ onclick="return sl(this,'','f-about_05');">Site Map</a> <a rel="nofollow"
+ href="https://careers-webmd.icims.com/" onclick="return sl(this,'','f-about_07')">Careers</a>
+ <a
+ class="last" rel="nofollow" href="https://customercare.webmd.com/ics/support/default.asp?deptID=18003&amp;task=ticket"
+ onclick="return sl(this,'nw','f-about_08');">Contact Us</a>
+ </div>
+ <div class="links"> <a href="http://reference.medscape.com/" onclick="return sl(this,'f-about_11','ftr')">Medscape Reference</a>
+ <a
+ href="http://www.emedicinehealth.com/script/main/hp.asp" onclick="return sl(this,'f-about_12','ftr')">eMedicineHealth</a> <a href="http://www.rxlist.com/" onclick="return sl(this,'f-about_13','ftr')">RxList</a>
+ <a
+ href="http://www.medscape.com/" onclick="return sl(this,'f-about_14','ftr')">Medscape</a> <a href="http://www.medicinenet.com/" onclick="return sl(this,'f-about_15','ftr')">MedicineNet</a>
+ <a
+ href="http://www.webmd.boots.com/" onclick="return sl(this,'f-about_26','ftr')">BootsWebMD</a>
+<a class="last" rel="nofollow" href="http://www.wbmd.com/"
+ onclick="return sl(this,'f-about_10','ftr')">WebMD Corporate</a>
+
+ </div>
+ <div class="links"> <a rel="nofollow" href="http://www.webmdhealthservices.com/" onclick="return sl(this,'f-about_29','ftr')">WebMD Health Services</a>
+ <a
+ href="http://www.webmd.com/first-aid/default.htm" onclick="return sl(this,'','f-about_17');">First Aid</a> <a href="http://www.webmd.com/www/magazine/default.htm?ss=ftr"
+ onclick="return sl(this,'','f-about_18');">WebMD Magazine</a> <a href="http://www.webmd.com/www/phr"
+ onclick="return sl(this,'','f-about_19')">WebMD Health Record</a> <a href="http://www.webmd.com/www/mobile"
+ onclick="return sl(this,'','f-about_20')">WebMD Mobile</a> <a class="last"
+ href="https://member.webmd.com/subscribe" onclick="return sl(this,'','f-about_21')">Newsletters</a>
+ </div>
+ <div class="links">
+<a href="http://dictionary.webmd.com/default.htm" onclick="return sl(this,'','f-about_22')">Dictionary</a>
+ <a
+ class="last" href="http://doctor.webmd.com/home" onclick="return sl(this,'','f-about_23')">Physician Directory</a>
+ </div>
+ <div class="copyright">
+ <p>©2005-2015 WebMD, LLC. All rights reserved.</p>
+ <p>WebMD does not provide medical advice, diagnosis or treatment. <a rel="nofollow"
+ href="http://www.webmd.com/www/policies/additional-info?ss=ftr" onclick="return sl(this,'','f-about_25');">See additional information.</a>
+
+ </p>
+ </div>
+ </div>
+ <div class="clearing"></div>
+ </div>
+ <script type="text/javascript">
+ // adding RR test back into preview to troubleshoot
+ try {
+ webmd.usability.tests.ssRightRail.writeTest();
+ } catch(e) {
+ };
+ </script>
+ <script language="javascript1.2" type="text/javascript">
+ if (document.URL.substring(0, 5).indexOf('http:') >= 0) {
+ document.write('&lt;img src=//bi.medscape.com/pi/global/webmd-1x1.gif?' + new Date().getTime() + '" alt="" height="1" width="1" border="0" />')
+ }
+ </script>
+ <script language="javascript" type="text/javascript" src="http://img.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/JS_static/tools/ldcc.js"></script>
+ <script type="text/javascript">
+ (function(){
+ // duckpunching s_before_pv as some assets are using that vs our event driven system. This lets the event system get triggered as well as the other functions
+ var _old = window.s_before_pv;
+
+ window.s_before_pv = function() {
+ var timestamp = Number(new Date());
+ if (window.location.protocol === 'http:') {
+ webmd.load({image: '//b.scorecardresearch.com/b?c1=2&c2=6035829&c3=&c4=&c5=&c6=&c7=' + encodeURIComponent(window.location.href) + '&c9=' + encodeURIComponent(window.document.referrer) + '&c15=&cv=2.0&cj=1&cb='+ timestamp});
+ }
+ if (window.location.protocol === 'https:') {
+ webmd.load({image: '//sb.scorecardresearch.com/b?c1=2&c2=6035829&c3=&c4=&c5=&c6=&c7=' + encodeURIComponent(window.location.href) + '&c9=' + encodeURIComponent(window.document.referrer) + '&c15=&cv=2.0&cj=1&cb='+ timestamp});
+ }
+
+ _old();
+ }
+ if (webmd && webmd.ads2Consumer) {
+ webmd.ads2Consumer.display();
+ }
+ })();
+ </script>
+ <!--<ul><li>$adsystem = DFP</li><li>$pos = 901</li><li>$print = false</li></ul><ul><li>adtype = JavaScript</li><li>iframeheight = 1</li><li>iframewidth = 1</li><li>adserver = as.webmd.com</li></ul><ul><li>affiliate = 20</li><li>apg = 1625</li><li>artid = 091e9c5e810fb2ee</li><li>au1 = </li><li>au2 = </li><li>bc = _age121_l23_age122_j30_t780_</li><li>brand = 0</li><li>cc = 17</li><li>env = </li><li>hcent = 893</li><li>mcent = </li><li>micro = </li><li>pkg = &amp;leaf=</li><li>pos = 901</li><li>pug = __</li><li>scent = </li><li>sec = </li><li>segval = </li><li>site = 2</li><li>tile = 365904714</li><li>tmg = </li><li>transactionID = 442451382</li><li>tug = 2321</li><li>uri = %2fallergies%2fnews%2f20150220%2fchild-peanut-allergy-findings</li></ul>-->
+ <script>
+ var priTopId='1625', secTopId='';
+ </script>
+ <div id="ads2-pos-901-1x1ad" class="ad_placeholder" style="display:none;"></div>
+ <script>
+ webmd.ads2Consumer.defineAd({targets:{art:'091e9c5e810fb2ee',cc:'17',env:'',hcent:'893',leaf:'&amp;leaf=',mcent:'',mic:'',pt:'1625',sec:'',pug:'__',scent:'',tmg:'',tug:'2321',uri:'%2fallergies%2fnews%2f20150220%2fchild-peanut-allergy-findings'},blockCodes:'_age121_l23_age122_j30_t780_',id:'ads2-pos-901-1x1ad',pos:'901',sizes:[1,1]});
+ </script>
+ </div>
+ <div id="ContentPane29"></div>
+ <div id="bottomShadow_fmt"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <script type="text/javascript">
+ var s_account="webmdcom"
+ ,s_server_type="1b"
+ ,s_server="WFAWS15L-CON-08"
+ ,s_object_type="wbmd_cons_article"
+ ,s_page_number="1"
+ ,s_topic_dir="false"
+ ,s_site_class="ooc"
+ ,s_site="core"
+ ,s_sponsored_uri="allergies/news/20150220/child-peanut-allergy-findings"
+ ,s_pagename="www.webmd.com/allergies/news/20150220/child-peanut-allergy-findings"
+ ,s_channel=""
+ ,s_topic="1625"
+ ,s_business_reference="News"
+ ,s_publication_source="WebMD Health News"
+ ,s_intended_demographics="__"
+ ,s_stage_condition=""
+ ,s_asset_id="091e9c5e810fb2ee"
+ ,s_unique_id="091e9c5e810fb2ee"
+ ,s_company="webmd"
+ ,s_mrt=""
+ ,s_assetname=""
+ ,s_refpath=""
+ ,s_sponsor_brand="Dey_EpiPen"
+ ,s_sponsor_program="Dey_EpiPen_Patient Select Allergies"
+ ,s_tug="2321"
+ ,s_package_type="topic targeted - sp"
+ ,s_package_name=""
+ ,s_channel_super_portal=""
+ ,s_channel_health="Allergies"
+ ,s_channel_mini=""
+ ,s_channel_micro=""
+ ,s_channel_topic_miniguide_guide=""
+ ,s_searchterm="";
+ </script>
+ <script language="javascript1.2" type="text/javascript" src="http://img.webmd.com/bi_common/bi_consumer.js?d=3/18/2015"></script>
+ </body>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/webmd-2/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/webmd-2/expected-images.json
new file mode 100644
index 000000000..2b266e478
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/webmd-2/expected-images.json
@@ -0,0 +1,3 @@
+[
+ "http:\/\/img.webmd.com\/dtmcms\/live\/webmd\/consumer_assets\/site_images\/miscellaneous\/webmd_FB_logo_bluebkgrd.jpg?v=1"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/webmd-2/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/webmd-2/expected-metadata.json
new file mode 100644
index 000000000..9fee7bc3c
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/webmd-2/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "By Kelli Miller\n WebMD Health News",
+ "Direction": null,
+ "Excerpt": "Drug-resistant bacteria, dubbed",
+ "Image": "http:\/\/img.webmd.com\/dtmcms\/live\/webmd\/consumer_assets\/site_images\/miscellaneous\/webmd_FB_logo_bluebkgrd.jpg?v=1",
+ "Title": "Superbugs: What They Are and How You Get Them",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/webmd-2/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/webmd-2/expected.html
new file mode 100644
index 000000000..d9e181691
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/webmd-2/expected.html
@@ -0,0 +1,23 @@
+<div id="textArea">
+
+
+
+
+
+
+
+ <p>April 17, 2015 -- Imagine being sick in the hospital with a <a class="" href="http://www.webmd.com/a-to-z-guides/bacterial-and-viral-infections" onclick="return sl(this,'','embd-lnk');">bacterial infection</a> and doctors can't stop it from spreading. This so-called "superbug" scenario is not science fiction. It's an urgent, worldwide worry that is prompting swift action.</p>
+ <p xmlns:xalan="http://xml.apache.org/xalan">Every year, about 2 million people get sick from a superbug, according to the CDC. About 23,000 die. Earlier this year, an outbreak of CRE (carbapenem-resistant enterobacteriaceae) linked to contaminated medical tools sickened 11 people at two Los-Angeles area hospitals. Two people died, and more than 200 others may have been exposed.</p>
+ <p>The White House recently released a <a href="http://www.webmd.com/click?url=https://www.whitehouse.gov/sites/default/files/docs/national_action_plan_for_combating_antibotic-resistant_bacteria.pdf" onclick="return sl(this,'','embd-lnk');">comprehensive plan</a> outlining steps to combat drug-resistant bacteria. The plan identifies three "urgent" and several "serious" threats. We asked infectious disease experts to explain what some of them are and when to worry.</p>
+
+
+
+ <h3>But First: What's a Superbug? </h3>
+ <p>It's a term coined by the media to describe bacteria that cannot be killed using multiple <a class="" href="http://www.webmd.com/cold-and-flu/rm-quiz-antibiotics-myths-facts" onclick="return sl(this,'','embd-lnk');">antibiotics</a>. "It resonates because it's scary," says Stephen Calderwood, MD, president of the Infectious Diseases Society of America. "But in fairness, there is no real definition."</p>
+ <p>Instead, doctors often use phrases like "multidrug-resistant bacteria." That's because a superbug isn't necessarily resistant to all antibiotics. It refers to bacteria that can't be treated using two or more, says Brian K. Coombes, PhD, of McMaster University in Ontario.</p>
+ <p>Any species of bacteria can turn into a superbug.</p>
+ <p>Misusing antibiotics (such as taking them when you don't need them or not finishing all of your medicine) is the "single leading factor" contributing to this problem, the CDC says. The concern is that eventually doctors will run out of antibiotics to treat them.</p>
+ <p>"What the public should know is that the more antibiotics you’ve taken, the higher your superbug risk," says Eric Biondi, MD, who runs a program to decrease unnecessary antibiotic use. "The more encounters you have with the hospital setting, the higher your superbug risk."</p>
+ <p>"Superbugs should be a concern to everyone," Coombes says. "Antibiotics are the foundation on which all modern medicine rests. Cancer <a class="" href="http://www.webmd.com/cancer/chemotherapy-what-to-expect" onclick="return sl(this,'','embd-lnk');">chemotherapy</a>, <a class="" href="http://www.webmd.com/a-to-z-guides/organ-donation-facts" onclick="return sl(this,'','embd-lnk');">organ transplants</a>, surgeries, and <a class="" href="http://www.webmd.com/baby/guide/delivery-methods" onclick="return sl(this,'','embd-lnk');">childbirth</a> all rely on antibiotics to prevent infections. If you can't treat those, then we lose the medical advances we have made in the last 50 years."</p>
+ <p>Here are some of the growing superbug threats identified in the 2015 White House report.</p>
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/webmd-2/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/webmd-2/source.html
new file mode 100644
index 000000000..d7b374b7c
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/webmd-2/source.html
@@ -0,0 +1,1299 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en" class="no-js">
+
+<head>
+ <title>Superbugs: What They Are and How You Get Them</title>
+ <meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
+ <script type="text/javascript">
+ var s_topic = "4286",
+ s_business_reference = "News",
+ s_publication_source = "WebMD Health News",
+ s_sponsor_brand = "",
+ s_sponsor_program = "",
+ s_package_type = "",
+ s_package_name = "",
+ s_channel_super_portal = "",
+ s_channel_health = "",
+ s_channel_topic_miniguide_guide = "",
+ s_channel_mini = "",
+ s_channel_micro = "",
+ s_tug = "",
+ s_topic_dir = "false",
+ s_mrt = "1",
+ s_site = "core",
+ s_assetname = "",
+ s_searchterm = "";
+ </script>
+ <script language="javascript" type="text/javascript">
+ var s_furl = "/news/20150417/superbugs-what-they-are";
+ var s_sponsor_program = "";
+ var s_sensitive = "false";
+ var s_mrt = "1";
+ var image_server_url = "http://img.webmd.com/dtmcms/live";
+ var s_uk_user = "false";
+ </script>
+ <meta name="description" content="Drug-resistant bacteria, dubbed " superbugs, "=" " pose=" " an=" " enormous=" " threat=" " to=" " our=" " health.=" " learn=" " about=" " the=" " biggest=" " threats=" " and=" " how=" " you=" " might=" " get=" " infected,=" " from=" " webmd.=" " "=""/>
+ <meta name="keywords" content="antibiotic resistance, superbugs, bacteria, CRE, multi-drug resistant, MRSA, E. coli, Kelli Miller, C. diff, "/>
+ <link rel="alternate" type="application/rss+xml" title="RSS" href="http://rssfeeds.webmd.com/rss/rss.aspx?RSSSource=RSS_PUBLIC"/>
+ <link rel="alternate" media="only screen and (max-width: 640px)" href="http://www.m.webmd.com/a-to-z-guides/news/20150417/superbugs-what-they-are"/>
+ <meta http-equiv="CACHE-CONTROL" content="NO-CACHE"/>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <link rel="shortcut icon" href="http://img.webmd.com/dtmcms/live/images/favicon/webmd.ico"/>
+ <link href="http://img.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/CSS/layout.css" type="text/css" rel="stylesheet"/>
+ <link rel="apple-touch-icon-precomposed" href="/favico/apple-touch-icon-precomposed.png"/>
+ <link rel="apple-touch-icon-precomposed" sizes="72x72" href="/favico/apple-touch-icon-72x72-precomposed.png"/>
+ <link rel="apple-touch-icon-precomposed" sizes="114x114" href="/favico/apple-touch-icon-114x114-precomposed.png"/>
+ <link rel="stylesheet" type="text/css" href="http://css.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/CSS/Site/WebMD_091e9c5e8004a22434.css"/>
+ <link rel="stylesheet" type="text/css" href="http://css.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/CSS_Aggr/News Catch All Template/page_News Catch All Template_091e9c5e8005d6e9_psmodules_css_1612.css"/>
+ <link rel="stylesheet" type="text/css" href="http://css.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/CSS_Aggr/Base Template/template_Base Template_091e9c5e80020366_tmodules_css_4185.css"/>
+ <link rel="stylesheet" type="text/css" href="http://css.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/CSS_Aggr/Main Catch All Template_091e9c5e80336210/template_Main Catch All Template_091e9c5e80336210_tmodules_css_1370.css"/>
+ <link rel="stylesheet" type="text/css" href="http://css.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/CSS_Aggr/News Catch All Template_091e9c5e8034e93a/template_News Catch All Template_091e9c5e8034e93a_tmodules_css_686.css"/>
+ <link rel="stylesheet" type="text/css" href="http://css.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/CSS_Aggr/News Catch All Template/page_News Catch All Template_091e9c5e8005d6e9_pmodules_css_3203.css"/>
+ <link rel="stylesheet" type="text/css" href="http://css.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/CSS/Atlanta/reskin/reskin12.css"/>
+ <script language="javascript" type="text/javascript" src="http://img.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/JS/webmd.dynamicMobileThrottling.min13.js"></script>
+ <script language="javascript" type="text/javascript" src="http://img.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/JS/scripts374.js"></script>
+ <script language="javascript" type="text/javascript" src="http://img.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/JS/masthead36.js"></script>
+ <script language="javascript" type="text/javascript" src="http://img.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/JS/reskin/reskin14.js"></script>
+ <script language="javascript" type="text/javascript" src="http://img.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/JS/modules/webmd.m.mostPopSS9.js"></script>
+ <script language="javascript" type="text/javascript" src="http://img.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/JS/consumer_alert96.js"></script>
+ <script language="javascript" type="text/javascript" src="http://img.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/JS/topic-directory/webmd.m.dynrelart28.js"></script>
+ <script language="javascript" type="text/javascript" src="http://img.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/JS/topic-directory/webmd.m.dynamicnav17.js"></script>
+</head>
+
+<body>
+ <div id="centering_area">
+ <div id="page_area">
+ <div id="bannerAd_ctr">
+ <div id="ContentPane1">
+ <script type="text/javascript">
+ // write mboxes for OTT
+ if (window.$ && window.webmd && window.mboxCreate) {
+ if (window.webmd.mbox) {
+ webmd.mbox.init();
+ }
+ }
+ </script>
+ <!-- define the Facebook share thumbnail -->
+ <link rel="image_src" href="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/miscellaneous/webmd_FB_logo_bluebkgrd.jpg?v=1"/>
+ <!--<ul><li>$adsystem = DFP</li><li>$pos = 101</li><li>$print = false</li></ul><ul><li>adtype = iFRAME</li><li>iframeheight = 90</li><li>iframewidth = 728</li><li>adserver = as.webmd.com</li></ul><ul><li>affiliate = 20</li><li>apg = 4286</li><li>artid = 091e9c5e8117ec19</li><li>au1 = </li><li>au2 = </li><li>bc = _cust4_k_</li><li>brand = 0</li><li>cc = 17</li><li>env = </li><li>hcent = </li><li>mcent = </li><li>micro = </li><li>pkg = &amp;leaf=</li><li>pos = 101</li><li>pug = __</li><li>scent = </li><li>sec = </li><li>segval = </li><li>site = 2</li><li>tile = 1390870376</li><li>tmg = </li><li>transactionID = 93834023</li><li>tug = </li><li>uri = %2fnews%2f20150417%2fsuperbugs-what-they-are</li></ul>-->
+ <script>
+ var priTopId = '4286',
+ secTopId = '';
+ </script>
+ <div id="bannerAd_rdr">
+ <div class="bannerAd_top_fmt"></div>
+ <div id="bannerAd_fmt" class="bannerAd_BG_fmt loaded">
+ <div id="ads2-pos-101-bannerAd" class="ad_placeholder"></div>
+ </div>
+ </div>
+ <script>
+ webmd.ads2Consumer.defineAd({
+ targets: {
+ art: '091e9c5e8117ec19',
+ cc: '17',
+ env: '',
+ hcent: '',
+ leaf: '&amp;leaf=',
+ mcent: '',
+ mic: '',
+ pt: '4286',
+ sec: '',
+ pug: '__',
+ scent: '',
+ tmg: '',
+ tug: '',
+ uri: '%2fnews%2f20150417%2fsuperbugs-what-they-are'
+ },
+ blockCodes: '_cust4_k_',
+ id: 'ads2-pos-101-bannerAd',
+ pos: '101',
+ sizes: [
+ [728, 90],
+ [970, 90],
+ [970, 250]
+ ]
+ });
+ </script>
+ </div>
+ </div>
+ <div id="header_ctr">
+ <div id="ContentPane2">
+ <header id="masthead" class="bottom_header">
+ <div id="global_overlay"></div><a href="#mainContentContainer_area" class="jawsonly">Skip to content</a>
+ <div id="banner" role="banner">
+ <div id="logo">
+ <a onclick="sl(this,'','logo')" href="http://www.webmd.com/www/default.htm"><img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/usability/2012/LBi_Masthead/logo_trans.png" class="logo_rdr" alt="WebMD: Better information. Better health."/></a>
+ </div>
+ <div id="search_container" role="search">
+ <form action="http://www.webmd.com/search/search_results/default.aspx" method="get" name="searchForm">
+ <label class="jawsonly" for="searchQuery_fmt">Enter Search Keywords. Use the arrow keys to navigate suggestions.</label>
+ <input type="text" id="searchQuery_fmt" name="query" maxlength="200" value="" autocomplete="off" title="Enter Search Keywords"/>
+ <input type="submit" class="searchButton_fmt" name="searchButton_fmt" value="" title="Search" onclick="return sl(this,'','srch-bar_submit')"/>
+ </form>
+ <ul id="searchTypeahead_fmt" aria-live="assertive"></ul>
+ </div>
+ <div id="lln-srchbarlnks"><a onclick="return sl(this,'','lln-srchbarlnks_schk')" class="lln-symptoms" href="http://www.webmd.com/symptoms/default.htm">Symptoms</a><span class="pipe">|</span> <a onclick="return sl(this,'','lln-srchbarlnks_phyd')" class="lln-doctors" href="http://doctor.webmd.com/home">Doctors</a><span class="pipe">|</span> <a onclick="return sl(this,'','lln-srchbarlnks_hins')" class="lln-insurance" href="http://www.webmd.com/health-insurance/default.htm">Health Care Reform</a></div>
+ <div id="wbmd-webby" data-metrics-module="wbmd-webby">
+ <a href="http://goo.gl/AtWsfO" data-metrics-link="vote"> <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/home_page/webby-awards-vote.png" alt="Vote for WebMD in the Webbys"/> </a>
+ </div>
+ </div>
+ <!-- / #banner -->
+ <nav id="nav" role="navigation">
+ <ul>
+ <li id="nav_1" class="nav nav_reference"><a href="http://www.webmd.com/a-to-z-guides/common-topics/default.htm" id="nav_link_1" aria-haspopup="true" class="nav_link" onclick="return sl(this,'','hicb1-tab')">Health A-Z</a>
+ <div id="menu_1" class="nav_dropdown" role="menu" aria-expanded="false" aria-hidden="true">
+ <div class="nav_dropdown_col_1a">
+ <div id="nav_1_1">
+ <p>Common Conditions</p><span><a href="http://www.webmd.com/a-to-z-guides/common-topics/default.htm" onclick="return sl(this,'','hicb1-ccnd_more')">View All</a></span>
+ <ul class="half" role="menu">
+ <li><a href="http://www.webmd.com/add-adhd/default.htm" onclick="return sl(this,'','hicb1-ccnd_1')">ADD/ADHD</a></li>
+ <li><a href="http://www.webmd.com/allergies/default.htm" onclick="return sl(this,'','hicb1-ccnd_2')">Allergies</a></li>
+ <li><a href="http://www.webmd.com/arthritis/default.htm" onclick="return sl(this,'','hicb1-ccnd_3')">Arthritis</a></li>
+ <li><a href="http://www.webmd.com/cancer/default.htm" onclick="return sl(this,'','hicb1-ccnd_4')">Cancer</a></li>
+ <li><a href="http://www.webmd.com/cold-and-flu/default.htm" onclick="return sl(this,'','hicb1-ccnd_5')">Cold, Flu &amp; Cough</a></li>
+ <li><a href="http://www.webmd.com/depression/default.htm" onclick="return sl(this,'','hicb1-ccnd_6')">Depression</a></li>
+ <li><a href="http://www.webmd.com/diabetes/default.htm" onclick="return sl(this,'','hicb1-ccnd_7')">Diabetes</a></li>
+ </ul>
+ <ul class="half" role="menu">
+ <li><a href="http://www.webmd.com/eye-health/default.htm" onclick="return sl(this,'','hicb1-ccnd_8')">Eye Health</a></li>
+ <li><a href="http://www.webmd.com/heart-disease/default.htm" onclick="return sl(this,'','hicb1-ccnd_9')">Heart Disease</a></li>
+ <li><a href="http://www.webmd.com/heartburn-gerd/default.htm" onclick="return sl(this,'','hicb1-ccnd_10')">Heartburn/GERD</a></li>
+ <li><a href="http://www.webmd.com/pain-management/default.htm" onclick="return sl(this,'','hicb1-ccnd_11')">Pain Management</a></li>
+ <li><a href="http://www.webmd.com/sexual-conditions/default.htm" onclick="return sl(this,'','hicb1-ccnd_12')">Sexual Conditions</a></li>
+ <li><a href="http://www.webmd.com/skin-problems-and-treatments/default.htm" onclick="return sl(this,'','hicb1-ccnd_13')">Skin Problems</a></li>
+ <li><a href="http://www.webmd.com/sleep-disorders/default.htm" onclick="return sl(this,'','hicb1-ccnd_14')">Sleep Disorders</a></li>
+ </ul>
+ </div>
+ <div id="nav_1_2">
+ <p>Featured Topics</p>
+ <ul role="menu">
+ <li id="pb1" class="hide_link"><a href="http://www.webmd.com/allergies/ss/slideshow-bad-bugs" class="type_ss" onclick="return sl(this,'','hicb1-ftpc_1')">Identifying Bugs and Their Bites <i></i></a></li>
+ <li id="pb2" class="hide_link"><a href="http://www.webmd.com/women/yeast-evaluator/default.htm" onclick="return sl(this,'','hicb1-ftpc_2')">Bothered by Yeast Infections?</a></li>
+ <li id="pb3" class="hide_link"><a href="http://www.webmd.com/pain-management/ss/slideshow-worst-shoes-for-your-feet" class="type_ss" onclick="return sl(this,'','hicb1-ftpc_3')">The Worst Shoes for Your Feet <i></i></a></li>
+ </ul>
+ </div>
+ </div>
+ <div class="nav_dropdown_col_2a" id="symptom_checker_col">
+ <div id="nav_1_3"><a href="http://www.webmd.com/symptoms/default.htm" id="symptom_checker_logo" onclick="return sl(this,'','hicb1-schk_1')">WebMD Symptom Checker</a>
+ <p class="bold">Health concern on your mind?</p>
+ <p>See what your medical symptoms could mean, and learn about possible conditions.</p><a href="http://www.webmd.com/symptoms/default.htm" class="webmd-btn webmd-btn-pr webmd-btn-m" onclick="return sl(this,'','hicb1-schk_sub')">Get Started</a></div>
+ </div>
+ <div class="nav_dropdown_col_3">
+ <div id="nav_1_4">
+ <p>Resources</p>
+ <ul role="menu">
+ <li><a href="http://www.webmd.com/blogs/default.htm" onclick="return sl(this,'','hicb1-xchng_blg')"><strong>Second Opinion:</strong> Read expert perspectives on popular health topics.</a></li>
+ <li><a href="http://www.webmd.com/exchanges/default.htm" onclick="return sl(this,'','hicb1-xchng_cmty')"><strong>Communities:</strong> Connect with people like you, and get expert guidance on living a healthy life.</a></li>
+ <li><a href="http://www.webmd.com/health-insurance/default.htm" onclick="return sl(this,'','hicb1-ins_ctr')"><strong>Insurance Guide:</strong> Get ready for changes to your health care coverage.</a></li>
+ <li><a href="http://doctor.webmd.com" onclick="return sl(this,'','hicb1-phy_dir')"><strong>Physician Directory:</strong> Find a doctor in your area.</a></li>
+ </ul>
+ </div>
+ <div id="nav_1_6">
+ <p>WebMD Pain Coach</p>
+ <a href="http://www.webmd.com/webmdpaincoachapp" onclick="return sl(this,'','hicb1-app_1')" class="nav_image"><img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/masthead_test/50x50_pain_app.jpg" alt="WebMD pain app"/></a> <a href="http://www.webmd.com/webmdpaincoachapp" onclick="return sl(this,'','hicb1-app_1')">Track your pain levels, triggers, and treatments. Set goals and get tips with our app for iPhone.</a></div>
+ </div>
+ </div>
+ </li>
+ <li id="nav_2" class="nav nav_reference"><a href="http://www.webmd.com/drugs/index-drugs.aspx" id="nav_link_2" class="nav_link" aria-haspopup="true" onclick="return sl(this,'','hicb2-tab')">Drugs &amp; Supplements</a>
+ <div id="menu_2" class="nav_dropdown" role="menu" aria-expanded="false" aria-hidden="true">
+ <div class="nav_dropdown_col_1a">
+ <div id="nav_2_1">
+ <p>Find Information About:</p>
+ <p class="bold">Drugs &amp; Supplements</p>
+ <p>Get information and reviews on prescription drugs, over-the-counter medications, vitamins, and supplements. Search by name or medical condition.</p>
+ <ul role="menu" class="bottom_border">
+ <li><a href="http://www.webmd.com/drugs/index-drugs.aspx" onclick="return sl(this,'','hicb2-drgsp_1')">Find or Review a Drug</a></li>
+ <li><a href="http://www.webmd.com/vitamins-supplements/default.aspx" onclick="return sl(this,'','hicb2-drgsp_2')">Find or Review a Vitamin or Supplement</a></li>
+ <li><a href="http://www.webmd.com/interaction-checker/default.htm" onclick="return sl(this,'','hicb2-drgsp_3')">Check for Drug Interactions</a></li>
+ </ul>
+ <p class="bold">Drug Basics &amp; Safety</p>
+ <ul role="menu">
+ <li><a href="http://www.webmd.com/a-to-z-guides/ss/slideshow-commonly-abused-drugs" onclick="return sl(this,'','hicb2-drgsf_1')" class="type_ss">Commonly Abused Drugs <i></i></a></li>
+ <li><a href="http://www.webmd.com/drug-medication/medicationawareness/default.htm" onclick="return sl(this,'','hicb2-drgsf_2')">What's Your Medication IQ?</a></li>
+ <li><a href="http://www.webmd.com/baby/taking-prescription-medications-during-pregnancy" onclick="return sl(this,'','hicb2-drgsf_3')">Taking Medications During Pregnancy</a></li>
+ </ul>
+ </div>
+ </div>
+ <div id="pill_identifier_col" class="nav_dropdown_col_2a">
+ <div id="nav_2_2" class="bottom_border pill_identifier_section"><a href="http://www.webmd.com/pill-identification/default.htm" id="pill_identifier_logo" onclick="return sl(this,'','hicb2-pid_1')">WebMD Pill Identifier</a>
+ <p class="bold">Having trouble identifying your pills?</p>
+ <p>Enter the shape, color, or imprint of your prescription or OTC drug. Our <a href="http://www.webmd.com/pill-identification/default.htm" onclick="return sl(this,'','hicb2-pid_2')">pill identification tool</a> will display pictures that you can compare to your pill.</p><a href="http://www.webmd.com/pill-identification/default.htm" class="webmd-btn webmd-btn-pr webmd-btn-m" onclick="return sl(this,'','hicb2-pid_sub')">Get Started</a></div>
+ <div id="nav_2_5" class="my_medicine_section"><a href="http://www.webmd.com/my-medicine/default.htm" id="my_medicine_logo" onclick="return sl(this,'','hicb2-ic_2')">WebMD My Medicine</a>
+ <p>Save your medicine, check interactions, sign up for FDA alerts, create family profiles and more.</p><a href="http://www.webmd.com/my-medicine/default.htm" class="webmd-btn webmd-btn-pr webmd-btn-m" onclick="return sl(this,'','hicb2-ic_sub')">Get Started</a></div>
+ </div>
+ <div class="nav_dropdown_col_3">
+ <div id="nav_2_3">
+ <p>Drug News</p>
+ <ul role="menu">
+ <li id="pb5" class="hide_link"><a href="http://www.webmd.com/news/default.htm" onclick="return sl(this,'','hicb2-dnws_1')">Get the Latest Drug Approvals &amp; Alerts</a></li>
+ <li id="pb6" class="hide_link"><a href="http://www.webmd.com/fda/default.htm" onclick="return sl(this,'','hicb2-dnws_2')">Find FDA Consumer Updates</a></li>
+ <li id="pb7" class="hide_link"><a href="https://member.webmd.com/newsletters/newsletters.aspx" onclick="return sl(this,'','hicb2-dnws_3')">Sign up to receive WebMD's award-winning content delivered to your inbox.</a></li>
+ <li id="pb8" class="hide_pb_link"><a href="http://www.webmd.com/diet/news/20120627/fda-approves-diet-pill-belviq" onclick="return sl(this,'','hicb2-dnws_4')">FDA Approves Diet Pill Belviq</a></li>
+ <li id="pb9" class="hide_pb_link"><a href="http://www.webmd.com/dvt/news/20120625/fda-delays-decision-on-blood-thinner-eliquis" onclick="return sl(this,'','hicb2-dnws_5')">FDA Delays Decision on Blood Thinner Eliquis</a></li>
+ </ul>
+ </div>
+ <div id="nav_2_4">
+ <p>WebMD Mobile Drug Information App</p>
+ <a href="http://www.webmd.com/webmdapp" onclick="return sl(this,'','hicb2-app_1')" class="nav_image"><img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/masthead_test/50x50_webmd_mobile_app.png" alt="WebMD logo"/></a> <a href="http://www.webmd.com/webmdapp" onclick="return sl(this,'','hicb2-app_1')">Drug, supplement, and vitamin information on the go.</a></div>
+ </div>
+ </div>
+ </li>
+ <li id="nav_3" class="nav nav_health"><a href="http://www.webmd.com/living-healthy" id="nav_link_3" class="nav_link" aria-haspopup="true" onclick="return sl(this,'','hicb3-tab')">Living Healthy</a>
+ <div id="menu_3" class="nav_dropdown" role="menu" aria-expanded="false" aria-hidden="true">
+ <div class="nav_dropdown_col_1b">
+ <div id="nav_3_1">
+ <p>Featured Content</p>
+ <div id="pb11" class="hide_link"><img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/masthead_test/210x130_healthy_living_feature.jpg" alt="Women with hair wrapped in towel"/> <a href="http://www.webmd.com/healthy-beauty/ss/slideshow-best-kept-hair-secrets" onclick="return sl(this,'','hicb3-ftr_1')" class="bold">Want luxurious locks?</a>
+ <p>WebMD cuts through the hype to reveal the best kept secrets for healthy hair.</p>
+ <a href="http://www.webmd.com/healthy-beauty/ss/slideshow-best-kept-hair-secrets" onclick="return sl(this,'','hicb3-ftr_1')" class="link_overlay" tabindex="-1"></a>
+ </div>
+ </div>
+ </div>
+ <div class="nav_dropdown_col_2b">
+ <div id="nav_3_2">
+ <p>Living Healthy Centers</p><span><a href="http://www.webmd.com/a-to-z-guides/healthy-living/default.htm" onclick="return sl(this,'','hicb3-chl_more')">View All</a></span>
+ <div class="third right_border">
+ <a href="http://www.webmd.com/living-healthy" onclick="return sl(this,'','hicb3-cdt_1')" class="nav_image"><img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/masthead_test/110x70_healthy_living_diet_food.png" alt="grilled salmon and vegetables"/></a>
+ <p class="bold more_bottom_margin">Diet, Food &amp; Fitness</p>
+ <ul>
+ <li><a href="http://www.webmd.com/diet/default.htm" onclick="return sl(this,'','hicb3-cdt_1')">Weight Loss &amp; Diet Plans</a></li>
+ <li><a href="http://www.webmd.com/food-recipes/default.htm" onclick="return sl(this,'','hicb3-cdt_2')">Food &amp; Recipes</a></li>
+ <li><a href="http://www.webmd.com/fitness-exercise/default.htm" onclick="return sl(this,'','hicb3-cdt_3')">Fitness &amp; Exercise</a></li>
+ </ul>
+ </div>
+ <div class="third right_border">
+ <a href="http://www.webmd.com/living-healthy" onclick="return sl(this,'','hicb3-cbt_1')" class="nav_image"><img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/masthead_test/110x70_healthy_living_beauty_balance.png" alt="man and woman smiling"/></a>
+ <p class="bold">Beauty, Balance &amp; Love</p>
+ <ul>
+ <li><a href="http://www.webmd.com/healthy-beauty/default.htm" onclick="return sl(this,'','hicb3-cbt_1')">Healthy Beauty</a></li>
+ <li><a href="http://www.webmd.com/balance/default.htm" onclick="return sl(this,'','hicb3-cbt_2')">Health &amp; Balance</a></li>
+ <li><a href="http://www.webmd.com/sex-relationships/default.htm" onclick="return sl(this,'','hicb3-cbt_3')">Sex &amp; Relationships</a></li>
+ <li><a href="http://www.webmd.com/oral-health/default.htm" onclick="return sl(this,'','hicb3-cbt_4')">Oral Care</a></li>
+ </ul>
+ </div>
+ <div class="third">
+ <a href="http://www.webmd.com/living-healthy" onclick="return sl(this,'','hicb3-clw_1')" class="nav_image"><img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/masthead_test/110x70_healthy_living_women_men.png" alt="women doing yoga"/></a>
+ <p class="bold more_bottom_margin">Living Well</p>
+ <ul>
+ <li><a href="http://www.webmd.com/women/default.htm" onclick="return sl(this,'','hicb3-clw_1')">Women's Health</a></li>
+ <li><a href="http://www.webmd.com/men/default.htm" onclick="return sl(this,'','hicb3-clw_2')">Men's Health</a></li>
+ <li><a href="http://www.webmd.com/healthy-aging/default.htm" onclick="return sl(this,'','hicb3-clw_3')">Aging Well</a></li>
+ <li><a href="http://www.webmd.com/teens/default.htm" onclick="return sl(this,'','hicb3-clw_4')">Teens</a></li>
+ <li><a href="http://www.webmd.com/fit/default.htm" onclick="return sl(this,'','hicb3-clw_5')">Fit Kids</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div class="nav_dropdown_col_3">
+ <div id="nav_3_3">
+ <p>Featured Topics</p>
+ <ul>
+ <li id="pb13" class="hide_link"><a href="http://www.webmd.com/diet/calc-bmi-plus" onclick="return sl(this,'','hicb3-ftpc_1')">BMI Calculator: Get Personalized Results</a></li>
+ <li id="pb14" class="hide_link"><a href="http://www.webmd.com/diet/healthtool-portion-size-plate" onclick="return sl(this,'','hicb3-ftpc_2')">Portion Size Plate: Easy Serving Size Guide</a></li>
+ <li id="pb15" class="hide_link"><a href="http://www.webmd.com/sex/birth-control/default.htm" onclick="return sl(this,'','hicb3-ftpc_3')">Your Birth Control Options</a></li>
+ <li id="pb16" class="hide_link"><a href="http://www.webmd.com/men/ss/slideshow-secrets-women-wish-you-knew" class="type_ss" onclick="return sl(this,'','hicb3-ftpc_4')">19 Secrets Men Wish Women Knew <i></i></a></li>
+ <li id="pb17" class="hide_link"><a href="http://www.webmd.com/teens/rm-quiz-crazy-dreams" onclick="return sl(this,'','hicb3-ftpc_5')">Quiz: Weird, Crazy Dreams</a></li>
+ <li id="pb18" class="hide_pb_link"><a href="http://www.webmd.com/diet/food-fitness-planner/default.htm" onclick="return sl(this,'','hicb3-ftpc_6')">Food &amp; Fitness Planner: Personalize Your Weight Loss Plan</a></li>
+ </ul>
+ </div>
+ <div id="nav_3_4">
+ <p>WebMD Allergy App for iPhone</p>
+ <a href="http://www.webmd.com/allergy-app" onclick="return sl(this,'','hicb3-app_1')" class="nav_image"><img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/article_thumbnails/other/allergy_app_other/50x50_allergy_app_other.jpg" alt="WebMD Allergy App logo"/></a> <a href="http://www.webmd.com/allergy-app" onclick="return sl(this,'','hicb3-app_1')">Fight allergies with daily forecasts, local alerts, and personalized tips.</a></div>
+ </div>
+ </div>
+ </li>
+ <li id="nav_4" class="nav nav_health"><a href="http://www.webmd.com/family-pregnancy" id="nav_link_4" class="nav_link" aria-haspopup="true" onclick="return sl(this,'','hicb4-tab')">Family &amp; Pregnancy</a>
+ <div id="menu_4" class="nav_dropdown" role="menu" aria-expanded="false" aria-hidden="true">
+ <div class="nav_dropdown_col_1b">
+ <div id="nav_4_1">
+ <p>Featured Content</p>
+ <div id="pb20" class="hide_link"><img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/masthead_test/210x130_family_feature.jpg" alt="Family at airport"/> <a href="http://www.webmd.com/vaccines/ss/slideshow-travel-health" onclick="return sl(this,'','hicb4-ftr_1')" class="bold">Traveling abroad?</a>
+ <p>Protect yourself and your family by learning which health precautions and vaccines are advised for your destination.</p>
+ <a href="http://www.webmd.com/vaccines/ss/slideshow-travel-health" onclick="return sl(this,'','hicb4-ftr_1')" class="link_overlay" tabindex="-1"></a>
+ </div>
+ </div>
+ </div>
+ <div class="nav_dropdown_col_2b">
+ <div id="nav_4_2">
+ <p>Family and Pregnancy Centers</p>
+ <div class="third right_border">
+ <a href="http://www.webmd.com/baby" onclick="return sl(this,'','hicb4-cpg_1')" class="nav_image"><img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/masthead_test/110x70_family_pregnancy.png" alt="pregnant woman"/></a> <a href="http://www.webmd.com/baby" onclick="return sl(this,'','hicb4-cpg_1')" class="heading">Pregnancy</a>
+ <ul>
+ <li><a href="http://www.webmd.com/baby/guide/getting-pregnant" onclick="return sl(this,'','hicb4-cpg_2')">Trying to Conceive</a></li>
+ <li><a href="http://www.webmd.com/baby/guide/first-trimester" onclick="return sl(this,'','hicb4-cpg_3')">First Trimester</a></li>
+ <li><a href="http://www.webmd.com/baby/guide/health-baby-second-trimester" onclick="return sl(this,'','hicb4-cpg_4')">Second Trimester</a></li>
+ <li><a href="http://www.webmd.com/baby/guide/third-trimester" onclick="return sl(this,'','hicb4-cpg_5')">Third Trimester</a></li>
+ </ul>
+ </div>
+ <div class="third right_border">
+ <a href="http://www.webmd.com/parenting/default.htm" onclick="return sl(this,'','hicb4-cpt_1')" class="nav_image"><img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/masthead_test/110x70_family_parenting.png" alt="mom, dad, and baby"/></a> <a href="http://www.webmd.com/parenting/default.htm" onclick="return sl(this,'','hicb4-cpt_1')" class="heading">Parenting</a>
+ <ul>
+ <li><a href="http://www.webmd.com/parenting/baby/default.htm" onclick="return sl(this,'','hicb4-cpt_2')">Newborn &amp; Baby</a></li>
+ <li><a href="http://www.webmd.com/children/default.htm" onclick="return sl(this,'','hicb4-cpt_3')">Children's Health</a></li>
+ <li><a href="http://www.webmd.com/children/vaccines/default.htm" onclick="return sl(this,'','hicb4-cpt_4')">Children's Vaccines</a></li>
+ <li><a href="http://www.webmd.com/parenting/raising-fit-kids/default.htm" onclick="return sl(this,'','hicb4-cpt_5')">Raising Fit Kids</a></li>
+ </ul>
+ </div>
+ <div class="third">
+ <a href="http://www.webmd.com/pets/default.htm" onclick="return sl(this,'','hicb4-cpet_1')" class="nav_image"><img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/masthead_test/110x70_family_pets.png" alt="Cat and dog on grass"/></a> <a href="http://www.webmd.com/pets/default.htm" onclick="return sl(this,'','hicb4-cpet_1')" class="heading">Pets</a>
+ <ul>
+ <li><a href="http://www.webmd.com/pets/cats/default.htm" onclick="return sl(this,'','hicb4-cpet_2')">Healthy Cats</a></li>
+ <li><a href="http://www.webmd.com/pets/dogs/default.htm" onclick="return sl(this,'','hicb4-cpet_3')">Healthy Dogs</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div class="nav_dropdown_col_3">
+ <div id="nav_4_3">
+ <p>Featured Topics</p>
+ <ul>
+ <li id="pb22" class="hide_link"><a href="http://www.webmd.com/baby/guide/pregnancy-am-i-pregnant" onclick="return sl(this,'','hicb4-ftpc_1')">Know the Signs of Early Pregnancy?</a></li>
+ <li id="pb23" class="hide_link"><a href="http://www.webmd.com/baby/rm-quiz-pregnancy-food-facts" onclick="return sl(this,'','hicb4-ftpc_2')">Test Your Smarts: What's Safe to Eat When You're Pregnant?</a></li>
+ <li id="pb24" class="hide_link"><a href="http://www.webmd.com/baby/ss/slideshow-fetal-development" class="type_ss" onclick="return sl(this,'','hicb4-ftpc_3')">Peek Inside the Womb to See How Baby Grows <i></i></a></li>
+ <li id="pb25" class="hide_link"><a href="http://www.webmd.com/children/video/healthy-school-lunches" class="type_vid" onclick="return sl(this,'','hicb4-ftpc_4')">Healthy School Lunches <i></i></a></li>
+ <li id="pb26" class="hide_link"><a href="http://www.webmd.com/parenting/raising-fit-kids/mood/rm-quiz-how-to-prevent-a-toddler-meltdown" onclick="return sl(this,'','hicb4-ftpc_5')">Quiz: Know How to Avoid The Next Toddler Meltdown?</a></li>
+ <li id="pb27" class="hide_pb_link"><a href="http://www.webmd.com/vaccinetracker/" onclick="return sl(this,'','hicb4-ftpc_6')">WebMD Vaccine Tracker: Manage Vaccinations for Your Entire Family</a></li>
+ </ul>
+ </div>
+ <div id="nav_4_4">
+ <p>WebMD Pregnancy App for iPhone</p>
+ <a href="http://www.webmd.com/pregnancyapp" onclick="return sl(this,'','hicb4-app_1')" class="nav_image"><img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/article_thumbnails/other/pregnancy_app_other/50x50_pregnancy_app_other.jpg" alt="WebMD Pregnancy App logo"/></a> <a href="http://www.webmd.com/pregnancyapp" onclick="return sl(this,'','hicb4-app_1')">The big day is coming! Get organized and track baby's weekly development.</a></div>
+ </div>
+ </div>
+ </li>
+ <li id="nav_5" class="nav nav_news"><a href="http://www.webmd.com/news/default.htm" id="nav_link_5" class="nav_link" aria-haspopup="true" onclick="return sl(this,'','hicb5-tab')">News &amp; Experts</a>
+ <div id="menu_5" class="nav_dropdown" role="menu" aria-expanded="false" aria-hidden="true">
+ <div class="nav_dropdown_col_1c">
+ <div id="nav_5_1">
+ <p>News</p><span><a href="http://www.webmd.com/news/default.htm" onclick="return sl(this,'','hicb5-news_more')">View All</a></span>
+ <div class="nav_block hide_link" id="pb29">
+ <a href="http://www.webmd.com/news/default.htm" class="nav_image" onclick="return sl(this,'','hicb5-news_1')"><img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/masthead_test/110x70_webmd_1.jpg" alt="WebMD logo"/></a> <a href="http://www.webmd.com/news/default.htm" onclick="return sl(this,'','hicb5-news_1')" class="shorter">Today's Top Health Headlines</a></div>
+ <div class="nav_block hide_link" id="pb30">
+ <a href="http://www.webmd.com/news/default.htm" class="nav_image" onclick="return sl(this,'','hicb5-news_2')"><img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/masthead_test/110x70_webmd_1.jpg" alt="WebMD logo"/></a> <a href="http://www.webmd.com/news/default.htm" onclick="return sl(this,'','hicb5-news_2')" class="shorter">Get the Latest Drug Approvals &amp; Alerts</a></div>
+ <ul>
+ <li id="pb31" class="hide_link"><a href="http://www.webmd.com/fda/default.htm" onclick="return sl(this,'','hicb5-news_3')">Find FDA Consumer Updates</a></li>
+ <li id="pb32" class="hide_link"><a href="http://www.webmd.com/fda/slideshow-fda-mobile-laboratories" class="type_ss" onclick="return sl(this,'','hicb5-news_4')">On The Road Again: FDA Mobile Laboratories <i></i></a></li>
+ <li id="pb33" class="hide_link"><a href="https://member.webmd.com/newsletters/newsletters.aspx" onclick="return sl(this,'','hicb5-news_5')">Sign up to receive WebMD's award-winning content delivered to your inbox.</a></li>
+ </ul>
+ </div>
+ </div>
+ <div id="wide_header">
+ <p>WebMD Health Experts and Community</p>
+ </div>
+ <div class="nav_dropdown_col_2c">
+ <div id="nav_5_2">
+ <p>Talk to health experts and other people like you in WebMD's Communities. It's a safe forum where you can create or participate in support groups and discussions about health topics that interest you.</p>
+ <div class="nav_block">
+ <a href="http://www.webmd.com/blogs/default.htm" onclick="return sl(this,'','hicb5-xchng_blg')" class="nav_image"><img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/masthead_test/50x50_expert.png" alt=""/></a>
+ <p class="bold">WebMD Second Opinion</p><a href="http://www.webmd.com/blogs/default.htm" onclick="return sl(this,'','hicb5-xchng_blg')">Read expert perspectives on popular health topics.</a></div>
+ <div class="nav_block">
+ <a href="http://www.webmd.com/exchanges/default.htm" onclick="return sl(this,'','hicb5-xchng_cmty')" class="nav_image"><img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/masthead_test/50x50_community.png" alt=""/></a>
+ <p class="bold">WebMD Communities</p><a href="http://www.webmd.com/exchanges/default.htm" onclick="return sl(this,'','hicb5-xchng_cmty')">Connect with people like you, and get expert guidance on living a healthy life.</a></div>
+ </div>
+ </div>
+ <div class="nav_dropdown_col_3">
+ <div id="nav_5_3"><a href="http://answers.webmd.com/" id="webmd_answers_logo" onclick="return sl(this,'','hicb5-ans_1')">WebMD Answers</a>
+ <p>Got a health question? Get answers provided by leading organizations, doctors, and experts.</p><a href="http://answers.webmd.com/" class="webmd-btn webmd-btn-pr webmd-btn-m" onclick="return sl(this,'','hicb5-ans_sub')">Get Answers</a></div>
+ <div id="nav_5_4">
+ <p>WebMD Newsletters</p>
+ <a href="https://member.webmd.com/newsletters/newsletters.aspx" onclick="return sl(this,'','hicb5-nwsltr_1')" class="nav_image"><img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/masthead_test/50x50_newsletter.png" alt="closeup of newsletter"/></a> <a href="https://member.webmd.com/newsletters/newsletters.aspx" onclick="return sl(this,'','hicb5-nwsltr_1')">Sign up to receive WebMD's award-winning content delivered to your inbox.</a></div>
+ </div>
+ </div>
+ </li>
+ </ul>
+ </nav>
+ <div id="authorization">
+ <div id="login_tab-b"></div>
+ <div id="why_webmd"><a href="https://member.webmd.com/signin" onclick="return sl(this,'','reg-login')">Sign In</a>| <a href="https://member.webmd.com/register" onclick="return sl(this,'','reg-signup')">Sign Up</a> | <a href="https://member.webmd.com/subscribe" onclick="return sl(this,'','nl-mast_sub')">Subscribe</a></div>
+ <div id="logged_in_text"><a href="https://member.webmd.com/applications.aspx" onclick="return sl(this,'','mymd_mt')" id="logged_in_logo"><span class="jawsonly">My WebMD</span></a><span id="greeting"></span></div>
+ <div id="logged_in"><a href="#" id="logged_in_tab" aria-haspopup="true">Show Menu</a>
+ <div id="logged_in_dropdown" aria-expanded="false" aria-hidden="true">
+ <ul role="menu">
+ <li><a href="https://member.webmd.com/applications.aspx" onclick="return sl(this,'','ov-mymd_mt')">My Tools</a></li>
+ <li class="bottom_border"><a href="https://member.webmd.com/bookmarks.aspx" onclick="return sl(this,'','ov-mymd_mybkmrk')">My WebMD Pages</a></li>
+ <li class="bottom_border"><a href="https://member.webmd.com/profile.aspx" onclick="return sl(this,'','ov-mymd_ma')">My Account</a></li>
+ <li><a href="http://www.webmd.com/signout.asp" onclick="return sl(this,'','ov-mymd_so')">Sign Out</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div id="social_icons"><a class="facebook" href="http://www.webmd.com/click?url=http%3A//www.facebook.com/WebMD%3Fref=ts" onclick="return sl(this,'nw','soc_fb-h')">Facebook</a><a href="http://www.webmd.com/click?url=http%3A//twitter.com/WebMD" class="twitter" onclick="return sl(this,'nw','soc_tw-h')">Twitter</a><a href="http://www.webmd.com/click?url=http://pinterest.com/webmd/" class="pinterest" onclick="return sl(this,'nw','soc_pn-h')">Pinterest</a></div>
+ <div id="divider"></div>
+ </header>
+ <script>
+ if (window.webmd && window.webmd.p && window.webmd.p.masthead) {
+ webmd.p.masthead.init();
+ }
+ </script>
+ </div>
+ </div>
+ <div id="mainContentContainer_area">
+ <div class="bottomBackground_fmt">
+ <div id="breadcrumb_ctr">
+ <div id="ContentPane3">
+ <div id="breadcrumb_rdr"> <span class="bc_0">
+ <a href="/www/">WebMD Home</a>
+ <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/layout/shared/divider_breadcrumb.gif" alt="next page" width="6" height="10" align="absmiddle"/>
+ </span> <span class="bc_1">
+ <a href="http://www.webmd.com/news/default.htm" onclick="return sl(this,'','brdcrmb');" class="breadcrumbActive">Health News</a> </span> </div>
+ <div id="headerLinks_email" class="headerLinks_fmt"> <a href="#" title="Email this page to a friend" class="triggerEmailOverlay" onclick="wmdPageLink('email-friend_link');return false;">Email a Friend</a> </div>
+ <div id="headerLinks_print" class="headerLinks_fmt"> <a rel="nofollow" href="?print=true" onclick="printWindow(); ctrs('prtfrnd'); return false" title="Print this article">Print Article</a>
+ <script>
+ if (pf_param == "true") {
+ printElements();
+ }
+ </script>
+ </div>
+ </div>
+ </div>
+ <div id="contentBackground_fmt">
+ <div id="mainContent_ThirdCol_ctr">
+ <div id="ContentPane4">
+ <div class="titlebar" id="twcol-hdr">
+ <div class="tb_main">
+ <h1>Information and Resources</h1> </div>
+ </div>
+ <script type="text/javascript">
+ (function() {
+ var that = function() {
+ var h = $("#mainContent_ThirdCol_ctr").outerHeight();
+ $("#navColumn_area").css('margin-top', '-' + h + 'px');
+ };
+ try {
+ that();
+ } catch (e) {}
+ $(window).load(function() {
+ try {
+ that();
+ } catch (e) {}
+ });
+ })();
+ </script>
+ </div>
+ </div>
+ <div id="mainContent_area">
+ <div id="mainContent_ctr">
+ <div id="middleContent_fmt">
+ <div id="ContentPane5">
+ <div class="article_rdr">
+ <div class="share_bar">
+ <script>
+ webmd.m.share.init();
+ </script>
+ </div>
+ <div class="font_sizer_fmt rs_skip">
+ <div class="font_sizer_text_fmt">Font Size</div>
+ <div class="font_sizer_001_fmt"> </div>
+ <div id="fs_01" class="font_sizer_002b_fmt"> <a class="copyA_fmt" title="Small font" href="javascript:setClass('textArea', 'copyNormal');javascript:setClass('fs_01', 'font_sizer_002b_fmt');javascript:setClass('fs_02', 'font_sizer_002a_fmt');javascript:setClass('fs_03', 'font_sizer_002a_fmt');">A</a> </div>
+ <div id="fs_02" class="font_sizer_002a_fmt"> <a class="copyB_fmt" title="Medium font" href="javascript:setClass('textArea', 'copyMedium');javascript:setClass('fs_01', 'font_sizer_002a_fmt');javascript:setClass('fs_02', 'font_sizer_002b_fmt');javascript:setClass('fs_03', 'font_sizer_002a_fmt');">A</a> </div>
+ <div id="fs_03" class="font_sizer_002a_fmt"> <a class="copyC_fmt" title="Large font" href="javascript:setClass('textArea', 'copyLarge');javascript:setClass('fs_01', 'font_sizer_002a_fmt');javascript:setClass('fs_02', 'font_sizer_002a_fmt');javascript:setClass('fs_03', 'font_sizer_002b_fmt');">A</a> </div>
+ <div class="font_sizer_003_fmt"> </div>
+ </div>
+ <div class="font_sizer">
+ <script>
+ webmd.m.fontSizer.init();
+ </script>
+ </div>
+ <script type="text/javascript" src="http://img.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/JS_static/widgets/webmd.m.add_article_save.js">
+ </script>
+ <div id="readspeaker_area" style="display: none;">
+ <div id="readspeaker_button1" class="rs_skip">
+ <a accesskey="L" href="http://app.readspeaker.com/cgi-bin/rsent?customerid=5841&amp;lang=en_us&amp;readid=textArea" target="_blank" onclick="readpage(this.href, 'xp1'); return false;"> <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/article/readspeaker/listen_en_us.gif" alt="Listen to this page using ReadSpeaker" title="Listen to this page using ReadSpeaker"/> </a>
+ </div>
+ <script src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/javascript/readspeaker/en.js" type="text/javascript">
+ </script>
+ <script type="text/javascript">
+ (function() {
+ $(document).ready(function() {
+ webmd.readspeakerPrep.init({
+ pages: 3
+ });
+ });
+ })();
+ </script>
+ <div id="xp1"> </div>
+ </div>
+ <script type="text/javascript">
+ $(function() {
+ var el = $("#readspeaker_area");
+ if (el) {
+ if (s_sponsor_program == "" || typeof(s_sponsor_program) == 'undefined') {
+ el.addClass('non-spon-listen');
+ el.find('a').append("Listen");
+ el.css("display", "block");
+ }
+ }
+ });
+ </script>
+ <div id="textArea" class="copyNormal">
+ <h2>Superbugs: What They Are and How You Get Them</h2>
+ <div class="subhead_fmt"></div>
+ <div class="author_fmt"> By <a rel="author" href="http://www.webmd.com/kelli-miller" onclick="return sl(this,'','prog-lnk');">Kelli Miller</a>
+ <br/>WebMD Health News</div>
+ <div class="reviewedBy_fmt"> Reviewed by <a onclick="return sl(this,'','prog-lnk');" href="http://www.webmd.com/hansa-bhargava">Hansa D. Bhargava, MD</a></div>
+ <div class="clearBoth_fmt clearing-div"> </div>
+ <h3></h3>
+ <p> </p>
+ <p>April 17, 2015 -- Imagine being sick in the hospital with a <a href="http://www.webmd.com/a-to-z-guides/bacterial-and-viral-infections" onclick="return sl(this,'','embd-lnk');" class="">bacterial infection</a> and doctors can't stop it from spreading. This so-called "superbug" scenario is not science fiction. It's an urgent, worldwide worry that is prompting swift action.</p>
+ <p xmlns:xalan="http://xml.apache.org/xalan">Every year, about 2 million people get sick from a superbug, according to the CDC. About 23,000 die. Earlier this year, an outbreak of CRE (carbapenem-resistant enterobacteriaceae) linked to contaminated medical tools sickened 11 people at two Los-Angeles area hospitals. Two people died, and more than 200 others may have been exposed.</p>
+ <p>The White House recently released a <a onclick="return sl(this,'','embd-lnk');" href="http://www.webmd.com/click?url=https://www.whitehouse.gov/sites/default/files/docs/national_action_plan_for_combating_antibotic-resistant_bacteria.pdf">comprehensive plan</a> outlining steps to combat drug-resistant bacteria. The plan identifies three "urgent" and several "serious" threats. We asked infectious disease experts to explain what some of them are and when to worry.</p>
+ <p></p>
+ <link type="text/css" rel="stylesheet" href="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/css/contextual_related_links.css"/>
+ <div class="slideshow_links_rdr contextual_links_fmt">
+ <h4></h4>
+ <p> <a href="http://www.webmd.com/skin-problems-and-treatments/ss/slideshow-closer-look-at-mrsa" onclick="return sl(this,'','embd-app-ssh');">A Closer Look at MRSA</a> </p>
+ </div>
+ <div class="moduleSpacer_rdr"> </div>
+ <a name="1"> </a>
+ <h3>But First: What's a Superbug? </h3>
+ <p>It's a term coined by the media to describe bacteria that cannot be killed using multiple <a href="http://www.webmd.com/cold-and-flu/rm-quiz-antibiotics-myths-facts" onclick="return sl(this,'','embd-lnk');" class="">antibiotics</a>. "It resonates because it's scary," says Stephen Calderwood, MD, president of the Infectious Diseases Society of America. "But in fairness, there is no real definition."</p>
+ <p>Instead, doctors often use phrases like "multidrug-resistant bacteria." That's because a superbug isn't necessarily resistant to all antibiotics. It refers to bacteria that can't be treated using two or more, says Brian K. Coombes, PhD, of McMaster University in Ontario.</p>
+ <p>Any species of bacteria can turn into a superbug.</p>
+ <p>Misusing antibiotics (such as taking them when you don't need them or not finishing all of your medicine) is the "single leading factor" contributing to this problem, the CDC says. The concern is that eventually doctors will run out of antibiotics to treat them.</p>
+ <p>"What the public should know is that the more antibiotics you’ve taken, the higher your superbug risk," says Eric Biondi, MD, who runs a program to decrease unnecessary antibiotic use. "The more encounters you have with the hospital setting, the higher your superbug risk."</p>
+ <p>"Superbugs should be a concern to everyone," Coombes says. "Antibiotics are the foundation on which all modern medicine rests. Cancer <a href="http://www.webmd.com/cancer/chemotherapy-what-to-expect" onclick="return sl(this,'','embd-lnk');" class="">chemotherapy</a>, <a href="http://www.webmd.com/a-to-z-guides/organ-donation-facts" onclick="return sl(this,'','embd-lnk');" class="">organ transplants</a>, surgeries, and <a href="http://www.webmd.com/baby/guide/delivery-methods" onclick="return sl(this,'','embd-lnk');" class="">childbirth</a> all rely on antibiotics to prevent infections. If you can't treat those, then we lose the medical advances we have made in the last 50 years."</p>
+ <p>Here are some of the growing superbug threats identified in the 2015 White House report.</p>
+ </div>
+ </div>
+ <div class="attribution_rdr">
+ <script type="text/javascript">
+ var pagination_title = new Array();
+ var pagination_current = 1;
+ pagination_title[1] = "";
+ pagination_title[2] = "Urgent Threat: Carbapenem-Resistant Enterobacteriaceae (CRE)";
+ pagination_title[3] = "Urgent Threat: Clostridium difficile (C. diff) continued...";
+ </script>
+ <div class="pagination_fmt">
+ <div class="left_fmt"> </div>
+ <div class="right_fmt"> <span class="current_fmt">1</span> <span class="pipe_fmt">|</span> <a href="?page=2" title="Page 2" onclick="return sl(this,'','pagenum-art_2');">2</a> <span class="pipe_fmt">|</span> <a href="?page=3" title="Page 3" onclick="return sl(this,'','pagenum-art_3');">3</a>
+ <div class="outline_fmt right"> <a href="?page=2" onclick="return sl(this,'','pagenum-art_next');">Next Page <span class="symbol_fmt">&gt;</span></a> </div>
+ </div>
+ </div>
+ </div>
+ <div class="moduleSpacer_rdr"> </div>
+ <div id="remoteAd_rdr">
+ <div class="centerAd_r1_rdr">
+ <div class="centerAd_BG_fmt">
+ <div class="conta" style="color:#737373; clear:both; display:none;">Continue reading below...</div>
+ <div class="remoteAd_top_fmt"> </div>
+ <div id="remoteAd_fmt" class="remoteAd_BG_fmt">
+ <div class="ad_placeholder"> </div>
+ </div>
+ <div class="remoteAd_bottom_fmt"> </div>
+ </div>
+ </div>
+ <div class="moduleSpacer_rdr"> </div>
+ </div>
+ <script type="text/javascript">
+ /* using this to pop up interstitial instead of /click as going to the /click URL with all the other parameters becomes an encoding issue */
+ function popInterstitial() {
+ var interstitial = window.open("/privacy_window.html", "privacy_window", "width=325,height=175,resizable=no,toolbar=no,left=350,top=300");
+ if (interstitial) {
+ interstitial.focus();
+ }
+ return false;
+ }
+ </script>
+ <div id="triggerFlyin"> </div>
+ <script type="text/javascript">
+ require(['fly_in/1/fly_in'], function(flyIn) {
+ flyIn.init('#triggerFlyin');
+ });
+ </script>
+ <div class="moduleSpacer_rdr"> </div>
+ <script language="javascript1.2" type="text/javascript">
+ function getPubType() {
+ return "editorial";
+ }
+
+ function checkPartners() {
+ /* Array of Partner Names */
+ var partnerNames = ["Good Housekeeping", "Redbook", "Esquire", "Country Living", "Marie Claire", "Oxmoor House", "\"Health", "Southern Living", "Psychology Today", "EatingWell", "DrGreene.com", "Men's Health", "Women's Health", "Prevention", "eDiets", "soul\" Magazine", "Runner's World", "Men's Fitness\" Magazine", "Shape\" Magazine", "Fit Pregnancy\" Magazine", "Natural Health\" Magazine", "\"Best Life\" Magazine", "\"Cure\" Magazine", "WebMD Veterinary Reference from the ASPCA", "WebMD Veterinary Reference from ASPCA Virtual Pet Behaviorist", "COPD Foundation", "Elle", "Woman's Day"]
+ /* Array of names that go with files in partners node */
+ var partnerScripts = ["goodHousekeeping", "redbook", "esquire", "countryLiving", "marieClaire", "cookingLight", "health", "southernLiving", "psychToday", "eatingWell", "drGreene", "mensHealth", "womensHealth", "prevention", "eDiets", "bodySoul", "runnersWorld", "mensFitness", "shapeMag", "fitPregnancy", "naturalHealth", "bestLife", "cure", "aspca", "aspca", "copdf", "elle", "womansDay"]
+ /* Variables for whether a partner exists and which one in the array it is */
+ var isThere;
+ var whichOne = -1;
+ /* Pulls the pub source out of the XML */
+ var pubSource = 'WebMD Medical News';
+ /* Runs through the different partners and sees if one of them exists in the pub source */
+ for (var i = 0; i &lt;= partnerNames.length - 1; i++) {
+ isThere = pubSource.search(partnerNames[i]);
+ if (isThere != -1) {
+ whichOne = i
+ }
+ }
+ /* If it found one, makes the JS calls and also populates the correct divs with the files out of partners node */
+ if (whichOne != -1) {
+ var JSCall = 'ht' + 'tp://img.web' + 'md.com/dtmcms/live/webmd/consumer_assets/site_images/javascript/partners/' + partnerScripts[whichOne] + '.js';
+ var JSElement = document.createElement("script");
+ JSElement.type = "text/javascript";
+ JSElement.src = JSCall;
+ document.getElementsByTagName("head")[0].appendChild(JSElement);
+ var moduleCenter = "ContentPane8";
+ var moduleRight = "ContentPane25";
+ addLoadEvent(function() {
+ $('#' + moduleCenter).append(writePartnerCenter());
+ $('#' + moduleRight).prepend(writePartnerRight());
+ })
+ }
+ }
+ checkPartners();
+ </script>
+ <script type="text/javascript">
+ if (document.getElementById("headerLinks_print")) {
+ setClass('headerLinks_print', 'headerLinks_fmt_on');
+ };
+ </script>
+ <link rel="stylesheet" type="text/css" href="http://img.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/CSS/print.css" media="print"/>
+ <style media="screen">
+ #url_reference {
+ display: none
+ }
+
+ ;
+ </style>
+ <style media="print">
+ #url_reference {
+ display: block;
+ line-height: 150%;
+ margin-bottom: 10px;
+ }
+
+ #logo_rdr img {
+ visibility: visible;
+ }
+
+ .titleBar_rdr .titleBarMiddle_fmt {
+ padding-top: 1.5em !important;
+ }
+ </style>
+ <script type="text/javascript">
+ var insert1 = document.getElementById("ContentPane2");
+ var urlDiv = articleUrl();
+ if (insert1) {
+ insert1.appendChild(urlDiv);
+ }
+ </script>
+ </div>
+ <div id="ContentPane6"></div>
+ <div id="ContentPane7"></div>
+ <div id="ContentPane8"></div>
+ <div id="ContentPane9"></div>
+ <div id="ContentPane10"></div>
+ <div id="ContentPane11"></div>
+ <div id="ContentPane12"></div>
+ <div id="ContentPane13"></div>
+ <div id="ContentPane14"></div>
+ <div id="ContentPane15"></div>
+ <div id="ContentPane16"></div>
+ <div id="ContentPane17"></div>
+ <div id="ContentPane18"></div>
+ <div id="ContentPane19"></div>
+ <div id="ContentPane20"></div>
+ </div>
+ </div>
+ </div>
+ <div id="navColumn_area">
+ <div id="navColumn_ctr">
+ <div id="ContentPane30"></div>
+ <div id="ContentPane31"></div>
+ <div id="ContentPane22">
+ <div class="top12_rdr">
+ <div class="top12_header_fmt">
+ <a onclick="window.open(this.href, 'popup','width=512,height=240,scrollbars=no,resizeable=no,status=yes');return false;" href="/www/topics-placements-lists"> <img border="0" alt="" title="WebMD Editors determine the topics and placement on our lists..." src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/top12QuestionMark.gif" class="top12_questionMark" style="margin: 1px 5px 0px 0px; float: right;"/> </a>Top 12 News Topics</div>
+ <ul class="top12List_fmt">
+ <li>
+ <div class="top12_number_fmt">1<span>.</span></div>
+ <div class="top12_link_fmt"> <a href="http://www.webmd.com/melanoma-skin-cancer/news/20150414/skin-cancer-young_adults" onclick="return sl(this,'','top-twlv-news_1');">Skin Cancer</a> </div>
+ </li>
+ <li>
+ <div class="top12_number_fmt">2<span>.</span></div>
+ <div class="top12_link_fmt"> <a href="http://www.webmd.com/sleep-disorders/news/20150415/heavy-snoring-apnea-tied-to-earlier-brain-troubles" onclick="return sl(this,'','top-twlv-news_2');">Snoring</a> </div>
+ </li>
+ <li>
+ <div class="top12_number_fmt">3<span>.</span></div>
+ <div class="top12_link_fmt"> <a href="http://www.webmd.com/mental-health/addiction/news/20150416/new-synthetic-drug-flakka-triggers-crazed-behaviors" onclick="return sl(this,'','top-twlv-news_3');">Flakka</a> </div>
+ </li>
+ <li>
+ <div class="top12_number_fmt">4<span>.</span></div>
+ <div class="top12_link_fmt"> <a href="http://www.webmd.com/healthy-aging/news/20150406/fit-at-50-cardiac-arrest-during-exercise-unlikely-study-finds" onclick="return sl(this,'','top-twlv-news_4');">Fit at 50</a> </div>
+ </li>
+ <li>
+ <div class="top12_number_fmt">5<span>.</span></div>
+ <div class="top12_link_fmt"> <a href="http://www.webmd.com/news/breaking-news/20150302/autism-early-diagnosis" onclick="return sl(this,'','top-twlv-news_5');">Autism</a> </div>
+ </li>
+ <li>
+ <div class="top12_number_fmt">6<span>.</span></div>
+ <div class="top12_link_fmt"> <a href="http://www.webmd.com/diet/20150406/weight-watchers-jenny-craig-beat-other-commercial-diet-plans-study-finds" onclick="return sl(this,'','top-twlv-news_6');">Diet Plans</a> </div>
+ </li>
+ <li>
+ <div class="top12_number_fmt">7<span>.</span></div>
+ <div class="top12_link_fmt"> <a href="http://www.webmd.com/food-recipes/food-poisoning/20150402/travelers-bringing-drug-resistant-bacteria-to-united-states" onclick="return sl(this,'','top-twlv-news_7');">Shigella</a> </div>
+ </li>
+ <li>
+ <div class="top12_number_fmt">8<span>.</span></div>
+ <div class="top12_link_fmt"> <a href="http://www.webmd.com/digestive-disorders/news/20150330/fecal-transplant-treats-serious-recurrent-intestinal-infection" onclick="return sl(this,'','top-twlv-news_8');">Fecal Transplant</a> </div>
+ </li>
+ <li>
+ <div class="top12_number_fmt">9<span>.</span></div>
+ <div class="top12_link_fmt"> <a href="http://www.webmd.com/brain/news/20150324/colorado-marijuana-metals-fungus" onclick="return sl(this,'','top-twlv-news_9');">CO Marijuana</a> </div>
+ </li>
+ <li>
+ <div class="top12_number_fmt">10<span>.</span></div>
+ <div class="top12_link_fmt"> <a href="http://www.webmd.com/allergies/news/20150220/child-peanut-allergy-findings" onclick="return sl(this,'','top-twlv-news_10');">Peanut Allergies</a> </div>
+ </li>
+ <li>
+ <div class="top12_number_fmt">11<span>.</span></div>
+ <div class="top12_link_fmt"> <a href="http://www.webmd.com/men/news/20150313/more-sex-better-testosterone-levels" onclick="return sl(this,'','top-twlv-news_11');">Testosterone</a> </div>
+ </li>
+ <li>
+ <div class="top12_number_fmt">12<span>.</span></div>
+ <div class="top12_link_fmt"> <a href="http://www.webmd.com/news/breaking-news/future-of-health/#future-of-health" onclick="return sl(this,'','top-twlv-news_12');">Future of Health</a> </div>
+ <div class="clearBoth_fmt"> </div>
+ </li>
+ </ul>
+ <div class="top12_footer_fmt"> </div>
+ </div>
+ <div class="moduleSpacer_rdr"> </div>
+ <div class="top12_rdr">
+ <div class="top12_header_fmt">
+ <a onclick="window.open(this.href, 'popup','width=512,height=240,scrollbars=no,resizeable=no,status=yes');return false;" href="/www/topics-placements-lists"> <img border="0" alt="" title="WebMD Editors determine the topics and placement on our lists..." src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/top12QuestionMark.gif" class="top12_questionMark" style="margin: 1px 5px 0px 0px; float: right;"/> </a>Top 12 Topics</div>
+ <ul class="top12List_fmt">
+ <li>
+ <div class="top12_number_fmt">1<span>.</span></div>
+ <div class="top12_link_fmt"> <a href="http://www.webmd.com/skin-problems-and-treatments/morgellons-disease-what-is-it" onclick="return sl(this,'','top-twlv-az_1');">Morgellons</a> </div>
+ </li>
+ <li>
+ <div class="top12_number_fmt">2<span>.</span></div>
+ <div class="top12_link_fmt"> <a href="http://www.webmd.com/rheumatoid-arthritis/arthritis-lyme-disease" onclick="return sl(this,'','top-twlv-az_2');">Lyme Disease</a> </div>
+ </li>
+ <li>
+ <div class="top12_number_fmt">3<span>.</span></div>
+ <div class="top12_link_fmt"> <a href="http://www.webmd.com/arthritis/ankylosing-spondylitis-assessment/default.htm" onclick="return sl(this,'','top-twlv-az_3');">Ankylosing Spondylitis</a> </div>
+ </li>
+ <li>
+ <div class="top12_number_fmt">4<span>.</span></div>
+ <div class="top12_link_fmt"> <a href="http://www.webmd.com/mental-health/eating-disorders/binge-eating-disorder/ss/slideshow-binge-eating-disorder" onclick="return sl(this,'','top-twlv-az_4');">Binge Eating Disorder</a> </div>
+ </li>
+ <li>
+ <div class="top12_number_fmt">5<span>.</span></div>
+ <div class="top12_link_fmt"> <a href="http://www.webmd.com/diabetes/ss/slideshow-type-2-diabetes-overview" onclick="return sl(this,'','top-twlv-az_5');">Type 2 Diabetes</a> </div>
+ </li>
+ <li>
+ <div class="top12_number_fmt">6<span>.</span></div>
+ <div class="top12_link_fmt"> <a href="http://www.webmd.com/rheumatoid-arthritis/ss/slideshow-ra-overview" onclick="return sl(this,'','top-twlv-az_6');">Rheumatoid Arthritis</a> </div>
+ </li>
+ <li>
+ <div class="top12_number_fmt">7<span>.</span></div>
+ <div class="top12_link_fmt"> <a href="http://www.webmd.com/multiple-sclerosis/ss/slideshow-multiple-sclerosis-overview" onclick="return sl(this,'','top-twlv-az_7');">Multiple Sclerosis</a> </div>
+ </li>
+ <li>
+ <div class="top12_number_fmt">8<span>.</span></div>
+ <div class="top12_link_fmt"> <a href="http://www.webmd.com/skin-problems-and-treatments/psoriasis/ss/slideshow-severe-psoriasis-9" onclick="return sl(this,'','top-twlv-az_8');">Psoriasis</a> </div>
+ </li>
+ <li>
+ <div class="top12_number_fmt">9<span>.</span></div>
+ <div class="top12_link_fmt"> <a href="http://www.webmd.com/schizophrenia/ss/slideshow-schizophrenia-overview" onclick="return sl(this,'','top-twlv-az_9');">Schizophrenia</a> </div>
+ </li>
+ <li>
+ <div class="top12_number_fmt">10<span>.</span></div>
+ <div class="top12_link_fmt"> <a href="http://www.webmd.com/add-adhd/ss/slideshow-brain-foods-that-help-you-concentrate" onclick="return sl(this,'','top-twlv-az_10');">Brain Foods</a> </div>
+ </li>
+ <li>
+ <div class="top12_number_fmt">11<span>.</span></div>
+ <div class="top12_link_fmt"> <a href="http://www.webmd.com/children/central-precocious-puberty" onclick="return sl(this,'','top-twlv-az_11');">Early Puberty</a> </div>
+ </li>
+ <li>
+ <div class="top12_number_fmt">12<span>.</span></div>
+ <div class="top12_link_fmt"> <a href="http://www.webmd.com/allergies/anaphylaxis-15/understanding-anaphylaxis-basics" onclick="return sl(this,'','top-twlv-az_12');">Common Anaphylaxis Triggers</a> </div>
+ <div class="clearBoth_fmt"> </div>
+ </li>
+ </ul>
+ <div class="top12_footer_fmt"> </div>
+ </div>
+ <div class="moduleSpacer_rdr"> </div>
+ </div>
+ <div id="ContentPane32"></div>
+ <div id="ContentPane33"></div>
+ <div id="ContentPane34"></div>
+ <div id="ContentPane26">
+ <!--<ul><li>$adsystem = DFP</li><li>$pos = 113</li><li>$print = false</li></ul><ul><li>adtype = iFRAME</li><li>iframeheight = 600</li><li>iframewidth = 160</li><li>adserver = as.webmd.com</li></ul><ul><li>affiliate = 20</li><li>apg = 4286</li><li>artid = 091e9c5e8117ec19</li><li>au1 = </li><li>au2 = </li><li>bc = _cust4_k_</li><li>brand = 0</li><li>cc = 17</li><li>env = </li><li>hcent = </li><li>mcent = </li><li>micro = </li><li>pkg = &amp;leaf=</li><li>pos = 113</li><li>pug = __</li><li>scent = </li><li>sec = </li><li>segval = </li><li>site = 2</li><li>tile = 1390870376</li><li>tmg = </li><li>transactionID = 93834023</li><li>tug = </li><li>uri = %2fnews%2f20150417%2fsuperbugs-what-they-are</li></ul>-->
+ <script>
+ var priTopId = '4286',
+ secTopId = '';
+ </script>
+ <div id="leftAd_rdr">
+ <div class="leftAd_top_fmt"></div>
+ <div id="leftAd_fmt" class="leftAd_BG_fmt loaded">
+ <div id="ads2-pos-113-ad" class="ad_placeholder"></div>
+ </div>
+ <div class="leftAd_bottom_fmt"></div>
+ </div>
+ <div class="moduleSpacer_rdr"></div>
+ <script>
+ webmd.ads2Consumer.defineAd({
+ targets: {
+ art: '091e9c5e8117ec19',
+ cc: '17',
+ env: '',
+ hcent: '',
+ leaf: '&amp;leaf=',
+ mcent: '',
+ mic: '',
+ pt: '4286',
+ sec: '',
+ pug: '__',
+ scent: '',
+ tmg: '',
+ tug: '',
+ uri: '%2fnews%2f20150417%2fsuperbugs-what-they-are'
+ },
+ blockCodes: '_cust4_k_',
+ id: 'ads2-pos-113-ad',
+ pos: '113',
+ sizes: [160, 600]
+ });
+ </script>
+ </div>
+ <div id="ContentPane35"></div>
+ <div id="ContentPane36"></div>
+ <div id="ContentPane37"></div>
+ <div id="ContentPane27"></div>
+ <div id="ContentPane38"></div>
+ <div id="ContentPane39"></div>
+ </div>
+ </div>
+ <div id="thirdCol_area">
+ <div id="thirdCol_ctr">
+ <div id="ContentPane40"></div>
+ <div id="ContentPane41"></div>
+ <div id="ContentPane21">
+ <div id="lnch-mvid" class="multi_vid">
+ <h3>WebMD Video: Now Playing</h3>
+ <div class="content">
+ <div class="expander" style="display:none;">
+ <div class="vidheader"> <span class="toggle">
+ <a href="">
+ <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/vid_plus.jpg" alt="click to expand section" height="14" width="14"/>
+ </a>
+ </span> <a href="http://www.webmd.com/men/video/dirty-truth-handwashing" onclick="return sl(this,'','lnch-mvid_1_txt');">Dirty Truth About Hand Washing</a> </div>
+ </div>
+ <div class="pushsize" style="display:block;">
+ <div class="video" style="display:block;">
+ <div class="vidwidth">
+ <div class="vidheader"> <span class="toggle">
+ <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/vid_minus.jpg" alt="click to hide section" height="14" width="14"/>
+ </span> <a href="http://www.webmd.com/men/video/dirty-truth-handwashing" onclick="return sl(this,'','lnch-mvid_1_txt');">Dirty Truth About Hand Washing</a> </div>
+ <p class="thumb">
+ <a href="http://www.webmd.com/men/video/dirty-truth-handwashing" onclick="return sl(this,'','lnch-mvid_1_img');"> <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/dam/editorial/infectious-disease/cold-and-flu/dirty-truth-handwashing/graphics/thumbnails/final/dirty-truth-handwashing-48x48.jpg" alt="Click here to wach video: Dirty Truth About Hand Washing"/> </a>
+ </p>
+ <p class="text">Which sex is the worst about washing up? Why is it so important? We’ve got the dirty truth on how and when to wash your hands.</p>
+ <p class="watchbutton">
+ <a href="http://www.webmd.com/men/video/dirty-truth-handwashing" onclick="return sl(this,'','lnch-mvid_1_watch');"> <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/multi_watch.jpg" alt="Click here to watch video: Dirty Truth About Hand Washing" height="23" width="100"/> </a>
+ </p>
+ </div>
+ </div>
+ </div>
+ <div class="expander">
+ <div class="vidheader"> <span class="toggle">
+ <a href="">
+ <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/vid_plus.jpg" alt="click to expand section" height="14" width="14"/>
+ </a>
+ </span> <a href="http://www.webmd.com/video/causes-cures-bad-breath" onclick="return sl(this,'','lnch-mvid_2_txt');">Truth About Bad Breath</a> </div>
+ </div>
+ <div class="pushsize" style="display:none;">
+ <div class="video" style="display:none;">
+ <div class="vidwidth">
+ <div class="vidheader"> <span class="toggle">
+ <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/vid_minus.jpg" alt="click to hide section" height="14" width="14"/>
+ </span> <a href="http://www.webmd.com/video/causes-cures-bad-breath" onclick="return sl(this,'','lnch-mvid_2_txt');">Truth About Bad Breath</a> </div>
+ <p class="thumb">
+ <a href="http://www.webmd.com/video/causes-cures-bad-breath" onclick="return sl(this,'','lnch-mvid_2_img');"> <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/dam/editorial/dental-health/miscellaneous/causes-cures-bad-breath/graphics/thumbnails/final/causes-cures-bad-breath-48x48.jpg" alt="Click here to wach video: Truth About Bad Breath"/> </a>
+ </p>
+ <p class="text">Suffer from chronic halitosis? Get the truth on the causes and cures for your stinky breath.</p>
+ <p class="watchbutton">
+ <a href="http://www.webmd.com/video/causes-cures-bad-breath" onclick="return sl(this,'','lnch-mvid_2_watch');"> <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/multi_watch.jpg" alt="Click here to watch video: Truth About Bad Breath" height="23" width="100"/> </a>
+ </p>
+ </div>
+ </div>
+ </div>
+ <div class="expander">
+ <div class="vidheader"> <span class="toggle">
+ <a href="">
+ <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/vid_plus.jpg" alt="click to expand section" height="14" width="14"/>
+ </a>
+ </span> <a href="http://www.webmd.com/video/dangers-gum-disease" onclick="return sl(this,'','lnch-mvid_3_txt');">Dangers of Gum Disease</a> </div>
+ </div>
+ <div class="pushsize" style="display:none;">
+ <div class="video" style="display:none;">
+ <div class="vidwidth">
+ <div class="vidheader"> <span class="toggle">
+ <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/vid_minus.jpg" alt="click to hide section" height="14" width="14"/>
+ </span> <a href="http://www.webmd.com/video/dangers-gum-disease" onclick="return sl(this,'','lnch-mvid_3_txt');">Dangers of Gum Disease</a> </div>
+ <p class="thumb">
+ <a href="http://www.webmd.com/video/dangers-gum-disease" onclick="return sl(this,'','lnch-mvid_3_img');"> <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/dam/editorial/dental-health/miscellaneous/dangers-gum-disease/graphics/thumbnails/final/dangers-gum-disease-48x48.jpg" alt="Click here to wach video: Dangers of Gum Disease"/> </a>
+ </p>
+ <p class="text">If you're not brushing and flossing regularly, you are at risk for gum disease and potential health problems.</p>
+ <p class="watchbutton">
+ <a href="http://www.webmd.com/video/dangers-gum-disease" onclick="return sl(this,'','lnch-mvid_3_watch');"> <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/multi_watch.jpg" alt="Click here to watch video: Dangers of Gum Disease" height="23" width="100"/> </a>
+ </p>
+ </div>
+ </div>
+ </div>
+ <div class="expander">
+ <div class="vidheader"> <span class="toggle">
+ <a href="">
+ <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/vid_plus.jpg" alt="click to expand section" height="14" width="14"/>
+ </a>
+ </span> <a href="http://www.webmd.com/beauty/video/hair-care-shampoo" onclick="return sl(this,'','lnch-mvid_4_txt');">Truth About Shampoo and Conditioner</a> </div>
+ </div>
+ <div class="pushsize" style="display:none;">
+ <div class="video" style="display:none;">
+ <div class="vidwidth">
+ <div class="vidheader"> <span class="toggle">
+ <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/vid_minus.jpg" alt="click to hide section" height="14" width="14"/>
+ </span> <a href="http://www.webmd.com/beauty/video/hair-care-shampoo" onclick="return sl(this,'','lnch-mvid_4_txt');">Truth About Shampoo and Conditioner</a> </div>
+ <p class="thumb">
+ <a href="http://www.webmd.com/beauty/video/hair-care-shampoo" onclick="return sl(this,'','lnch-mvid_4_img');"> <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/dam/editorial/skin-and-beauty/beauty/hair-care-shampoo/graphics/thumbnails/final/hair-care-shampoo-48x48.jpg" alt="Click here to wach video: Truth About Shampoo and Conditioner"/> </a>
+ </p>
+ <p class="text">Get the facts you need to get the most out of your shampoo and conditioner.</p>
+ <p class="watchbutton">
+ <a href="http://www.webmd.com/beauty/video/hair-care-shampoo" onclick="return sl(this,'','lnch-mvid_4_watch');"> <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/multi_watch.jpg" alt="Click here to watch video: Truth About Shampoo and Conditioner" height="23" width="100"/> </a>
+ </p>
+ </div>
+ </div>
+ </div>
+ <div class="expander">
+ <div class="vidheader"> <span class="toggle">
+ <a href="">
+ <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/vid_plus.jpg" alt="click to expand section" height="14" width="14"/>
+ </a>
+ </span> <a href="http://www.webmd.com/oral-health/video/laugh-therapy-1" onclick="return sl(this,'','lnch-mvid_5_txt');">Laugh Therapy: Does it Work?</a> </div>
+ </div>
+ <div class="pushsize" style="display:none;">
+ <div class="video" style="display:none;">
+ <div class="vidwidth">
+ <div class="vidheader"> <span class="toggle">
+ <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/vid_minus.jpg" alt="click to hide section" height="14" width="14"/>
+ </span> <a href="http://www.webmd.com/oral-health/video/laugh-therapy-1" onclick="return sl(this,'','lnch-mvid_5_txt');">Laugh Therapy: Does it Work?</a> </div>
+ <p class="thumb">
+ <a href="http://www.webmd.com/oral-health/video/laugh-therapy-1" onclick="return sl(this,'','lnch-mvid_5_img');"> <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/dam/editorial/dental-health/healthy-teeth/graphics/thumbnails/final/vd-2125-wrld-3001-48x48.jpg" alt="Click here to wach video: Laugh Therapy: Does it Work?"/> </a>
+ </p>
+ <p class="text">Therapist Steven Sultanoff explains the utility of humor in counseling, and Jeffrey Briar leads a session of Laughter Yoga on Laguna Beach.</p>
+ <p class="watchbutton">
+ <a href="http://www.webmd.com/oral-health/video/laugh-therapy-1" onclick="return sl(this,'','lnch-mvid_5_watch');"> <img src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/multi_watch.jpg" alt="Click here to watch video: Laugh Therapy: Does it Work?" height="23" width="100"/> </a>
+ </p>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <script type="text/javascript">
+ //The following Ads open/closed numerical ids to the multi video module - JS
+ $("div.multi_vid div.expander").each(function(i) {
+ this.id = this.id + "closed" + i;
+ });
+ $("div.multi_vid div.pushsize").each(function(i) {
+ this.id = this.id + "openps" + i;
+ });
+ $("div.multi_vid div.video").each(function(i) {
+ this.id = this.id + "open" + i;
+ });
+ //The following Ads javascript function to the appropriate links in multivideo module to open and close them - JS
+ $("div.multi_vid div.expander div.vidheader span.toggle a").each(function(i) {
+ this.href = "javascript:swapvids('#open" + i + "','#openps" + i + "','#closed" + i + "');"
+ });
+ $("div.multi_vid div.video div.vidheader span.toggle a").each(function(i) {
+ this.href = "javascript:swapvids('#open" + i + "','#openps" + i + "','#closed" + i + "');"
+ });
+ //hides or shows the appropriate items when switching in the multivideo module - JS
+ function swapvids(showit, showps, hideit) {
+ $('.video').hide('');
+ $('.pushsize').hide('');
+ $('.expander').show('');
+ $('' + hideit + '').hide('');
+ $('' + showps + '').show('');
+ $('' + showit + '').show('slow');
+ }
+ </script>
+ </div>
+ <div id="ContentPane42"></div>
+ <div id="ContentPane43"></div>
+ <div id="ContentPane44"></div>
+ <div id="ContentPane24">
+ <!--<ul><li>$adsystem = DFP</li><li>$pos = 131</li><li>$print = false</li></ul><ul><li>adtype = iFRAME</li><li>iframeheight = 600</li><li>iframewidth = 300</li><li>adserver = as.webmd.com</li></ul><ul><li>affiliate = 20</li><li>apg = 4286</li><li>artid = 091e9c5e8117ec19</li><li>au1 = </li><li>au2 = </li><li>bc = _cust4_k_</li><li>brand = 0</li><li>cc = 17</li><li>env = </li><li>hcent = </li><li>mcent = </li><li>micro = </li><li>pkg = &amp;leaf=</li><li>pos = 131</li><li>pug = __</li><li>scent = </li><li>sec = </li><li>segval = </li><li>site = 2</li><li>tile = 1390870376</li><li>tmg = </li><li>transactionID = 93834023</li><li>tug = </li><li>uri = %2fnews%2f20150417%2fsuperbugs-what-they-are</li></ul>-->
+ <script>
+ var priTopId = '4286',
+ secTopId = '';
+ </script>
+ <div id="rightAd_rdr">
+ <div class="rightAd_top_fmt"></div>
+ <div id="rightAd_fmt" class="rightAd_BG_fmt loaded">
+ <div id="ads2-pos-121-ad" class="ad_placeholder"></div>
+ </div>
+ <div class="rightAd_bottom_fmt"></div>
+ </div>
+ <div class="moduleSpacer_rdr"></div>
+ <script>
+ webmd.ads2Consumer.defineAd({
+ targets: {
+ art: '091e9c5e8117ec19',
+ cc: '17',
+ env: '',
+ hcent: '',
+ leaf: '&amp;leaf=',
+ mcent: '',
+ mic: '',
+ pt: '4286',
+ sec: '',
+ pug: '__',
+ scent: '',
+ tmg: '',
+ tug: '',
+ uri: '%2fnews%2f20150417%2fsuperbugs-what-they-are'
+ },
+ blockCodes: '_cust4_k_',
+ id: 'ads2-pos-121-ad',
+ pos: '121',
+ sizes: [
+ [300, 250],
+ [300, 600],
+ [300, 1050]
+ ]
+ });
+ </script>
+ </div>
+ <div id="ContentPane45"></div>
+ <div id="ContentPane46"></div>
+ <div id="ContentPane47"></div>
+ <div id="ContentPane25">
+ <div id="newsletter-mapping-center"> </div>
+ <script type="text/javascript">
+ require(['newsletter/1/mapping-centers-desktop', 'css!newsletter/1/newsletter-module-desktop.css'], function(module) {
+ module.init({
+ selector: "#newsletter-mapping-center",
+ template: {
+ successMsg: '&lt;p class="success">&lt;span>{email}&lt;/span>&lt;br //>You will receive your first newsletter with our next scheduled circulation!&lt;/p>',
+ content: '' + '&lt;div class="newsletterFmt">&lt;/div>\n' + '&lt;div class="wrapper">\n' + '&lt;div class="nls-header">{header}&lt;/div>\n' + '{preContent}' + '&lt;div class="nls-content">\n' + '{preForm}' + '&lt;form class="nls-form" action="#" novalidate="novalidate">\n' + '&lt;div class="validationWrapper">&lt;div class="checkbox-container clearfix">{inputs}&lt;/div>&lt;/div>\n' + '&lt;div class="privacy-disclaimer">' + "&lt;em>By clicking submit I agree to WebMD's &lt;a href='http://www.webmd.com/about-webmd-policies/about-privacy-policy' target='_blank'>Privacy Policy&lt;/a>&lt;/em>" + '&lt;/div>' + '&lt;div class="input-container">\n' + '&lt;div class="email-container validationWrapper">\n' + '&lt;input type="email" class="nls-email" name="email" autocapitalize="off" autocorrect="off" placeholder="Enter email address" /> ' + '&lt;button name="nl-submit" formnovalidate class="off {submitClass}" type="submit">&lt;span>Submit&lt;/span>&lt;/button>\n' + '&lt;div class="clearfix">&lt;/div>' + '&lt;/div>\n' + // .email-container
+ '&lt;/div>\n' + // .input-container
+ '&lt;/form>\n' + '&lt;a class="nl-link" href="https://member.webmd.com/newsletters/newsletters.aspx" onclick="return sl(this,"nw","nl-multie_s")">Sign up for more topics!&lt;/a>' + '{postForm}' + '&lt;/div>\n' + // .nls-content
+ '{postContent}' + '&lt;/div>',
+ submitClass: 'webmd-btn webmd-btn-pr webmd-btn-s',
+ successHeader: '&lt;h2>Thank You For Signing Up.&lt;/h2>',
+ promo: '&lt;div class="promo">&lt;div class="promo-content clearfix">&lt;img src="{image}" alt="WebMD App" />&lt;div class="promo-description">&lt;p>{text}&lt;/p>&lt;p class="promoLink">&lt;a href="{url}" class="webmd-btn webmd-btn-pr webmd-btn-m" onclick="wmdPageLink(\'nlupgrd_sub\')">{button}&lt;/a>&lt;/p>&lt;div class="clearfix">&lt;/div>&lt;/div>&lt;/div>&lt;/div>'
+ }
+ });
+ });
+ </script>
+ </div>
+ <div id="ContentPane48"></div>
+ <div id="ContentPane49"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="footer_rdr">
+ <div id="ContentPane28"></div>
+ <div id="ContentPane23">
+ <script type="text/javascript">
+ (function() {
+ var module_title = 'hicb f-hs';
+ var propIsSet = false;
+ $(document).bind('before_pv', function() {
+ if (!propIsSet) {
+ if (s_md.prop46) {
+ s_md.prop46 += "|";
+ }
+ s_md.prop46 += module_title;
+ propIsSet = true;
+ }
+ webmd.metrics.ctr.addImpression(module_title);
+ webmd.metrics.ctr.getImpressions();
+ });
+ })();
+ </script>
+ <div id="sp_ft_rdr">
+ <h3>Health Solutions <span>From Our Sponsors</span></h3>
+ <div class="hs_cols">
+ <ul>
+ <li> <a href="http://www.webmd.com/women/pharmacist-14/video-sponsored-heart-disease" onclick="return sl(this,'','hicb f-hs_1');">Controlling Heart Disease</a> </li>
+ <li> <a href="http://www.webmd.com/women/pharmacist-14/video-sponsored-allergy" onclick="return sl(this,'','hicb f-hs_2');">Allergy Relief</a> </li>
+ <li> <a href="http://www.webmd.com/digestive-disorders/lactose-intolerance-14/real-dairy-no-discomfort" onclick="return sl(this,'','hicb f-hs_3');">Lactose Intolerant?</a> </li>
+ </ul>
+ <ul>
+ <li> <a href="http://www.webmd.com/manage-ibsc-cic-symptoms/default.htm" onclick="return sl(this,'','hicb f-hs_4');">IBS-C Symptoms?</a> </li>
+ <li> <a href="http://www.webmd.com/oral-health/healthy-mouth-14/video-oral-health-routine" onclick="return sl(this,'','hicb f-hs_5');">Brush, Floss &amp; Rinse</a> </li>
+ <li> <a href="http://www.webmd.com/tavr-for-severe-aortic-stenosis-caregiver" onclick="return sl(this,'','hicb f-hs_6');">Care for Aortic Stenosis?</a> </li>
+ </ul>
+ <ul>
+ <li> <a href="http://www.webmd.com/digestive-disorders/lactose-intolerance-14/real-dairy-no-discomfort" onclick="return sl(this,'','hicb f-hs_7');">Enjoy Dairy Everyday</a> </li>
+ <li> <a href="http://www.webmd.com/women/pharmacist-14/video-sponsored-diabetes" onclick="return sl(this,'','hicb f-hs_8');">Managing Diabetes</a> </li>
+ <li> <a href="http://www.webmd.com/oral-health/healthy-mouth-14/video-oral-health-routine" onclick="return sl(this,'','hicb f-hs_9');">21 Days: A New Routine</a> </li>
+ </ul>
+ <ul>
+ <li> <a href="http://www.webmd.com/osteoarthritis/knee-pain-14/treat-oa-knee-pain" onclick="return sl(this,'','hicb f-hs_10');">Knee Pain Relief</a> </li>
+ <li> <a href="http://www.webmd.com/manage-ibsc-cic-symptoms/default.htm" onclick="return sl(this,'','hicb f-hs_11');">Managing IBS-C Symptoms</a> </li>
+ <li> <a href="http://www.webmd.com/women/pharmacist-14/video-sponsored-child-meds" onclick="return sl(this,'','hicb f-hs_12');">Children's Medicine</a> </li>
+ </ul>
+ <ul>
+ <li> <a href="http://www.webmd.com/manage-ibsc-cic-symptoms/how-treatment-works" onclick="return sl(this,'','hicb f-hs_13');">Frequent Constipation?</a> </li>
+ <li> <a href="http://www.webmd.com/tavr-for-severe-aortic-stenosis-patient" onclick="return sl(this,'','hicb f-hs_14');">Aortic Valve Stenosis?</a> </li>
+ <li> <a href="http://www.webmd.com/digestive-disorders/lactose-intolerance-14/real-dairy-no-discomfort" onclick="return sl(this,'','hicb f-hs_15');">Replacing Milk</a> </li>
+ </ul>
+ <div class="clearing"> </div>
+ </div>
+ <div class="prem_ed">
+ <div class="prem_ed_border">
+ <h5>More From WebMD:</h5> <a href="http://www.webmd.com/rheumatoid-arthritis/ss/slideshow-ra-overview" onclick="return sl(this,'','f-idc_1');">RA Basics</a>|<a href="http://www.webmd.com/skin-problems-and-treatments/psoriasis/ss/slideshow-severe-psoriasis-9" onclick="return sl(this,'','f-idc_2');">Severe Psoriasis</a>|<a href="http://www.webmd.com/men/erectile-dysfunction-13/slideshow-causes-of-ed" onclick="return sl(this,'','f-idc_3');">ED Causes</a>|<a href="http://www.webmd.com/diabetes/ss/slideshow-blood-sugar-swings" onclick="return sl(this,'','f-idc_4');">Blood Sugar Swings</a>|<a href="http://www.webmd.com/healthy-aging/caregiving-insights-15/default.htm" onclick="return sl(this,'','f-idc_5');">Caregiver Support</a>|<a href="http://www.webmd.com/multiple-sclerosis/ss/slideshow-multiple-sclerosis-overview" onclick="return sl(this,'','f-idc_6');">Multiple Sclerosis Symptoms</a>|<a href="http://www.webmd.com/add-adhd/childhood-adhd/ss/slideshow-adhd-in-children" onclick="return sl(this,'','f-idc_7');">ADHD in Children</a>|<a href="http://www.webmd.com/diabetes/10-diabetes-diet-myths" onclick="return sl(this,'','f-idc_8');">Diabetes Diet Myths</a></div>
+ </div>
+ </div>
+ <div id="non_sp_ft_rdr">
+ <div class="social_links social_footer">
+ <h6>Find us on:</h6>
+ <ul>
+ <li class="fb">
+ <a class="facebook" href="http://www.webmd.com/click?url=http%3A//www.facebook.com/%23!/WebMD%3Fref=ts" onclick="return sl(this,'nw','soc_fb-f');"></a>
+ </li>
+ <li class="tw">
+ <a class="twitter" href="http://www.webmd.com/click?url=http%3A//twitter.com/WebMD" onclick="return sl(this,'nw','soc_tw-f');"></a>
+ </li>
+ <li class="pn">
+ <a class="pinterest" href="http://www.webmd.com/click?url=http%3A//pinterest.com/webmd/" onclick="return sl(this,'nw','soc_pn-f');"></a>
+ </li>
+ </ul>
+ </div>
+ <div class="ft_logos newSize">
+ <a onclick="return sl(this,'nw','f-about_22');" href="http://www.webmd.com/click?url=https://www.urac.org/directory/CompanyView.aspx?cid=C8700000F48&amp;aid=1951&amp;Type=Accreditnet" class="logo_urac"> <span>URAC: Accredited Health Web Site</span> </a>
+ <!-- div id="f733a173-6d11-4e17-ba9f-f1454ef8b32f" style="float:left" -->
+ <a onclick="return sl(this,'nw','f-about_23');" href="http://www.webmd.com/click?url=https://privacy.truste.com/privacy-seal/WebMD,-LLC/validation?rid=7b3bf16d-37b4-42e0-aec7-836ef1d3680d" title="TRUSTe online privacy certification"> <img style="border: none; float:left; margin: 0px 8px 0px 0px;" src="//privacy-policy.truste.com/privacy-seal/WebMD,-LLC/seal?rid=80c33c7c-da0b-4788-8236-61a318f00f4c" alt="TRUSTe online privacy certification"/> </a>
+ <!-- /div -->
+ <!-- a onclick="return sl(this,'nw','f-about_24');" href="http://www.webmd.com/click?url=http://www.hon.ch/HONcode/Conduct.html%3FHONConduct298987" class="logo_honcode" title="This site complies with the HONcode standard for trustworthy health information.">
+ <span>HonCode: Health on the Net Foundation</span></a -->
+ <a onclick="return sl(this,'nw','f-about_24');" href="http://www.webmd.com/click?url=http://www.hon.ch/HONcode/Conduct.html%3FHONConduct298987" title="This site complies with the HONcode standard for trustworthy health information."> <img alt="HONcode Seal" src="http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/layout/shared/honcode14.gif" style="border: none; float:left; margin: 0px 0px 0px 5px; width: 43px; height: 60px;"/> </a> <a onclick="TRUSTeWidget.Tab.link();return sl(this,'f-about_27');" class="logo_AdChoices">AdChoices</a>
+ <script type="text/javascript">
+ $(function() {
+ var fileNameToLoad = '//preferences.truste.com/webservices/js?type=webmd&domain=webmd';
+ if (webmd.useragent.ua.browser === 'browserSF') {
+ fileNameToLoad = '//preferences.truste.com/webservices/js?domain=webmdsafari.com&type=webmdsafari&js=2';
+ }
+ webmd.load({
+ js: [fileNameToLoad, '//privacy-policy.truste.com/privacy-seal/WebMD,-LLC/asc?rid=f733a173-6d11-4e17-ba9f-f1454ef8b32f']
+ });
+ });
+ </script>
+ </div>
+ <div class="ft_text">
+ <div class="about"> <a rel="nofollow" href="http://www.webmd.com/www/about-webmd-policies/default.htm?ss=ftr" onclick="return sl(this,'','f-about_01');">About WebMD</a> <a rel="nofollow" href="http://www.webmd.com/www/about-webmd-policies/media/default.htm" onclick="return sl(this,'f-about_09','ftr')">Advertise With Us</a> <a rel="nofollow" href="http://www.webmd.com/www/about-webmd-policies/about-terms-and-conditions-of-use?ss=ftr" onclick="return sl(this,'','f-about_02');">Terms of Use</a> <a rel="nofollow" href="http://www.webmd.com/www/about-webmd-policies/about-privacy-policy?ss=ftr" onclick="return sl(this,'','f-about_03');">Privacy Policy</a> <a rel="nofollow" href="http://www.webmd.com/www/about-webmd-policies/about-our-sponsors?ss=ftr" onclick="return sl(this,'','f-about_04');">Sponsor Policy</a> <a href="http://www.webmd.com/www/sitemap?ss=ftr" onclick="return sl(this,'','f-about_05');">Site Map</a> <a rel="nofollow" href="https://careers-webmd.icims.com/" onclick="return sl(this,'','f-about_07')">Careers</a> <a class="last" rel="nofollow" href="https://customercare.webmd.com/ics/support/default.asp?deptID=18003&amp;task=ticket" onclick="return sl(this,'nw','f-about_08');">Contact Us</a> </div>
+ <div class="links"> <a href="http://reference.medscape.com/" onclick="return sl(this,'f-about_11','ftr')">Medscape Reference</a> <a href="http://www.emedicinehealth.com/script/main/hp.asp" onclick="return sl(this,'f-about_12','ftr')">eMedicineHealth</a> <a href="http://www.rxlist.com/" onclick="return sl(this,'f-about_13','ftr')">RxList</a> <a href="http://www.medscape.com/" onclick="return sl(this,'f-about_14','ftr')">Medscape</a> <a href="http://www.medicinenet.com/" onclick="return sl(this,'f-about_15','ftr')">MedicineNet</a> <a href="http://www.webmd.boots.com/" onclick="return sl(this,'f-about_26','ftr')">BootsWebMD</a> <a class="last" rel="nofollow" href="http://www.wbmd.com/" onclick="return sl(this,'f-about_10','ftr')">WebMD Corporate</a> </div>
+ <div class="links"> <a rel="nofollow" href="http://www.webmdhealthservices.com/" onclick="return sl(this,'f-about_29','ftr')">WebMD Health Services</a> <a href="http://www.webmd.com/first-aid/default.htm" onclick="return sl(this,'','f-about_17');">First Aid</a> <a href="http://www.webmd.com/www/magazine/default.htm?ss=ftr" onclick="return sl(this,'','f-about_18');">WebMD Magazine</a> <a href="http://www.webmd.com/www/phr" onclick="return sl(this,'','f-about_19')">WebMD Health Record</a> <a href="http://www.webmd.com/www/mobile" onclick="return sl(this,'','f-about_20')">WebMD Mobile</a> <a class="last" href="https://member.webmd.com/subscribe" onclick="return sl(this,'','f-about_21')">Newsletters</a> </div>
+ <div class="links"> <a href="http://dictionary.webmd.com/default.htm" onclick="return sl(this,'','f-about_22')">Dictionary</a> <a class="last" href="http://doctor.webmd.com/home" onclick="return sl(this,'','f-about_23')">Physician Directory</a> </div>
+ <div class="copyright">
+ <p> ©2005-2015 WebMD, LLC. All rights reserved. </p>
+ <p> WebMD does not provide medical advice, diagnosis or treatment. <a rel="nofollow" href="http://www.webmd.com/www/policies/additional-info?ss=ftr" onclick="return sl(this,'','f-about_25');">See additional information.</a> </p>
+ </div>
+ </div>
+ <div class="clearing"></div>
+ </div>
+ <script type="text/javascript">
+ // adding RR test back into preview to troubleshoot
+ try {
+ webmd.usability.tests.ssRightRail.writeTest();
+ } catch (e) {};
+ </script>
+ <script language="javascript1.2" type="text/javascript">
+ if (document.URL.substring(0, 5).indexOf('http:') >= 0) {
+ document.write('&lt;img src=//bi.medscape.com/pi/global/webmd-1x1.gif?' + new Date().getTime() + '" alt="" height="1" width="1" border="0" />')
+ }
+ </script>
+ <!--<ul><li>$adsystem = DFP</li><li>$pos = 901</li><li>$print = false</li></ul><ul><li>adtype = JavaScript</li><li>iframeheight = 1</li><li>iframewidth = 1</li><li>adserver = as.webmd.com</li></ul><ul><li>affiliate = 20</li><li>apg = 4286</li><li>artid = 091e9c5e8117ec19</li><li>au1 = </li><li>au2 = </li><li>bc = _cust4_k_</li><li>brand = 0</li><li>cc = 17</li><li>env = </li><li>hcent = </li><li>mcent = </li><li>micro = </li><li>pkg = &amp;leaf=</li><li>pos = 901</li><li>pug = __</li><li>scent = </li><li>sec = </li><li>segval = </li><li>site = 2</li><li>tile = 1390870376</li><li>tmg = </li><li>transactionID = 93834023</li><li>tug = </li><li>uri = %2fnews%2f20150417%2fsuperbugs-what-they-are</li></ul>-->
+ <script>
+ var priTopId = '4286',
+ secTopId = '';
+ </script>
+ <div id="ads2-pos-901-1x1ad" class="ad_placeholder" style="display:none;"></div>
+ <script>
+ webmd.ads2Consumer.defineAd({
+ targets: {
+ art: '091e9c5e8117ec19',
+ cc: '17',
+ env: '',
+ hcent: '',
+ leaf: '&amp;leaf=',
+ mcent: '',
+ mic: '',
+ pt: '4286',
+ sec: '',
+ pug: '__',
+ scent: '',
+ tmg: '',
+ tug: '',
+ uri: '%2fnews%2f20150417%2fsuperbugs-what-they-are'
+ },
+ blockCodes: '_cust4_k_',
+ id: 'ads2-pos-901-1x1ad',
+ pos: '901',
+ sizes: [1, 1]
+ });
+ </script>
+ <script language="javascript" type="text/javascript" src="http://img.webmd.com/dtmcms/live/webmd/PageBuilder_Assets/JS_static/tools/ldcc.js"></script>
+ <script type="text/javascript">
+ (function() {
+ // duckpunching s_before_pv as some assets are using that vs our event driven system. This lets the event system get triggered as well as the other functions
+ var _old = window.s_before_pv;
+ window.s_before_pv = function() {
+ var timestamp = Number(new Date());
+ if (window.location.protocol === 'http:') {
+ webmd.load({
+ image: '//b.scorecardresearch.com/b?c1=2&c2=6035829&c3=&c4=&c5=&c6=&c7=' + encodeURIComponent(window.location.href) + '&c9=' + encodeURIComponent(window.document.referrer) + '&c15=&cv=2.0&cj=1&cb=' + timestamp
+ });
+ }
+ if (window.location.protocol === 'https:') {
+ webmd.load({
+ image: '//sb.scorecardresearch.com/b?c1=2&c2=6035829&c3=&c4=&c5=&c6=&c7=' + encodeURIComponent(window.location.href) + '&c9=' + encodeURIComponent(window.document.referrer) + '&c15=&cv=2.0&cj=1&cb=' + timestamp
+ });
+ }
+ _old();
+ }
+ if (webmd && webmd.ads2Consumer) {
+ webmd.ads2Consumer.display();
+ }
+ })();
+ </script>
+ </div>
+ <div id="ContentPane29"></div>
+ <div id="bottomShadow_fmt"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <script type="text/javascript">
+ var s_account = "webmdcom",
+ s_server_type = "1b",
+ s_server = "WFAWS18L-CON-08",
+ s_object_type = "wbmd_cons_article",
+ s_page_number = "1",
+ s_topic_dir = "false",
+ s_site_class = "ooc",
+ s_site = "core",
+ s_sponsored_uri = "news/20150417/superbugs-what-they-are",
+ s_pagename = "www.webmd.com/news/20150417/superbugs-what-they-are",
+ s_channel = "",
+ s_topic = "4286",
+ s_business_reference = "News",
+ s_publication_source = "WebMD Health News",
+ s_intended_demographics = "__",
+ s_stage_condition = "",
+ s_asset_id = "091e9c5e8117ec19",
+ s_unique_id = "091e9c5e8117ec19",
+ s_company = "webmd",
+ s_mrt = "1",
+ s_assetname = "",
+ s_refpath = "",
+ s_sponsor_program = "",
+ s_searchterm = "";
+ </script>
+ <script language="javascript1.2" type="text/javascript" src="http://img.webmd.com/bi_common/bi_consumer.js?d=4/22/2015"></script>
+</body>
+
+</html> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wikia/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wikia/expected-images.json
new file mode 100644
index 000000000..2ad255671
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wikia/expected-images.json
@@ -0,0 +1,6 @@
+[
+ "https:\/\/vignette.wikia.nocookie.net\/1fb5ee36-d9ae-4125-96d9-f52eb403f1c9\/thumbnail-down\/width\/1280\/height\/720",
+ "https:\/\/vignette.wikia.nocookie.net\/e80dae8a-b955-43f6-8ada-f023385e622b\/scale-to-width-down\/627",
+ "https:\/\/vignette.wikia.nocookie.net\/375e0e5a-170d-4560-8f20-240c9f0624e9\/scale-to-width-down\/627",
+ "https:\/\/vignette.wikia.nocookie.net\/1fb5ee36-d9ae-4125-96d9-f52eb403f1c9\/scale-to-width-down\/627"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wikia/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wikia/expected-metadata.json
new file mode 100644
index 000000000..ec9aa476f
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wikia/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "James Akinaka",
+ "Direction": null,
+ "Excerpt": "As a 40th birthday present to the Star Wars Saga and its fans, Lucasfilm could re-release the original versions of the original trilogy films.",
+ "Image": "https:\/\/vignette.wikia.nocookie.net\/1fb5ee36-d9ae-4125-96d9-f52eb403f1c9\/thumbnail-down\/width\/1280\/height\/720",
+ "Title": "'Star Wars' Original Cuts Might Get Released for 40th Anniversary",
+ "SiteName": "Fandom powered by Wikia"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wikia/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wikia/expected.html
new file mode 100644
index 000000000..de18ee3f3
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wikia/expected.html
@@ -0,0 +1,26 @@
+<div>
+ <p>Although Lucasfilm is already planning a birthday bash for the Star Wars Saga at <a data-is="trackable" href="http://starwars.wikia.com/wiki/Celebration_Orlando" riot-tag="trackable">Celebration Orlando</a> this April, fans might get another present for the saga’s 40th anniversary. According to fan site <a data-is="trackable" href="http://makingstarwars.net/2017/02/rumor-unaltered-original-star-wars-trilogy-re-released-year/" riot-tag="trackable">MakingStarWars.net</a>, rumors abound that Lucasfilm might re-release the unaltered cuts of the saga’s original trilogy.</p>
+ <p>If the rumors are true, this is big news for Star Wars fans. Aside from limited VHS releases, the unaltered cuts of the original trilogy films haven’t been available since they premiered in theaters in the 1970s and ’80s. If Lucasfilm indeed re-releases the films’ original cuts, then this will be the first time in decades that fans can see the films in their original forms. Here’s what makes the unaltered cuts of the original trilogy so special.</p>
+ <h2>The Star Wars Special Editions Caused Controversy
+ <a data-is="trackable" href="https://vignette.wikia.nocookie.net/e80dae8a-b955-43f6-8ada-f023385e622b" riot-tag="trackable"><img alt="star wars han solo" sizes="(max-width: 840px) 100vw, (max-width: 1064px) calc(100vw - 300px), 627px" src="https://vignette.wikia.nocookie.net/e80dae8a-b955-43f6-8ada-f023385e622b/scale-to-width-down/627" srcset="https://vignette.wikia.nocookie.net/e80dae8a-b955-43f6-8ada-f023385e622b/scale-to-width-down/400 400w, https://vignette.wikia.nocookie.net/e80dae8a-b955-43f6-8ada-f023385e622b/scale-to-width-down/627 627w, https://vignette.wikia.nocookie.net/e80dae8a-b955-43f6-8ada-f023385e622b/scale-to-width-down/800 800w, https://vignette.wikia.nocookie.net/e80dae8a-b955-43f6-8ada-f023385e622b/scale-to-width-down/1200 1200w"></img></a>
+ </h2>
+ <p>Thanks to the commercial success of Star Wars, <a data-is="trackable" href="http://starwars.wikia.com/wiki/George_Lucas" riot-tag="trackable">George Lucas</a> has revisited and further edited his films for re-releases. The most notable — and controversial — release were the <a data-is="trackable" href="http://starwars.wikia.com/wiki/The_Star_Wars_Trilogy_Special_Edition" riot-tag="trackable">Special Editions</a> of the original trilogy. In 1997, to celebrate the saga’s 20th anniversary, Lucasfilm spent a total of $15 million to remaster <a data-is="trackable" href="http://starwars.wikia.com/wiki/Star_Wars:_Episode_IV_A_New_Hope" riot-tag="trackable"><em>A New Hope</em></a>, <a data-is="trackable" href="http://starwars.wikia.com/wiki/Star_Wars:_Episode_V_The_Empire_Strikes_Back" riot-tag="trackable"><em>The Empire Strikes Back</em></a>, and <a data-is="trackable" href="http://starwars.wikia.com/wiki/Star_Wars:_Episode_VI_Return_of_the_Jedi" riot-tag="trackable"><em>Return of the Jedi</em></a>. The Special Editions had stints in theaters before moving to home media.</p>
+ <p>Although most of the Special Editions’ changes were cosmetic, others significantly affected the plot of the films. The most notable example is the “<a data-is="trackable" href="http://starwars.wikia.com/wiki/Han_shot_first" riot-tag="trackable">Han shot first</a>” scene in <em>A New Hope</em>. As a result, the Special Editions generated significant controversy among Star Wars fans. Many fans remain skeptical about George Lucas’s decision to finish each original trilogy film “the way it was meant to be.”</p>
+ <p>
+ <a data-is="trackable" href="https://vignette.wikia.nocookie.net/375e0e5a-170d-4560-8f20-240c9f0624e9" riot-tag="trackable"><img alt="star wars" sizes="(max-width: 840px) 100vw, (max-width: 1064px) calc(100vw - 300px), 627px" src="https://vignette.wikia.nocookie.net/375e0e5a-170d-4560-8f20-240c9f0624e9/scale-to-width-down/627" srcset="https://vignette.wikia.nocookie.net/375e0e5a-170d-4560-8f20-240c9f0624e9/scale-to-width-down/400 400w, https://vignette.wikia.nocookie.net/375e0e5a-170d-4560-8f20-240c9f0624e9/scale-to-width-down/627 627w, https://vignette.wikia.nocookie.net/375e0e5a-170d-4560-8f20-240c9f0624e9/scale-to-width-down/800 800w, https://vignette.wikia.nocookie.net/375e0e5a-170d-4560-8f20-240c9f0624e9/scale-to-width-down/1200 1200w"></img></a>
+ </p>
+ <p>While the Special Editions represent the most significant edits to the original trilogy, the saga has undergone other changes. Following up on the saga’s first Blu-ray release in 2011, Industrial Light &amp; Magic (ILM) began remastering the entire saga in 3D, starting with the prequel trilogy. <a data-is="trackable" href="http://starwars.wikia.com/wiki/Star_Wars:_Episode_I_The_Phantom_Menace" riot-tag="trackable"><em>The Phantom Menace</em></a> saw a theatrical 3D re-release in 2012, but Disney’s 2012 acquisition of Lucasfilm indefinitely postponed further 3D releases.</p>
+ <p>In 2015, <a data-is="trackable" href="http://starwars.wikia.com/wiki/Star_Wars:_Episode_II_Attack_of_the_Clones" riot-tag="trackable"><em>Attack of the Clones</em></a> and <a data-is="trackable" href="http://starwars.wikia.com/wiki/Star_Wars:_Episode_III_Revenge_of_the_Sith" riot-tag="trackable"><em>Revenge of the Sith</em></a> received limited 3D showings at <a data-is="trackable" href="http://starwars.wikia.com/wiki/Celebration_Anaheim" riot-tag="trackable">Celebration Anaheim</a>. Other than that, it seems as though Disney has decided to refocus Lucasfilm’s efforts to new films. Of course, that’s why the saga has produced new content beginning with <a data-is="trackable" href="http://starwars.wikia.com/wiki/Star_Wars:_Episode_VII_The_Force_Awakens" riot-tag="trackable"><em>The Force Awakens</em></a>. However, it looks like Lucasfilm isn’t likely to generate 3D versions of the original trilogy anytime soon.</p>
+ <h2>Why the Original Film Cuts Matter</h2>
+ <p>
+ <a data-is="trackable" href="https://vignette.wikia.nocookie.net/1fb5ee36-d9ae-4125-96d9-f52eb403f1c9" riot-tag="trackable"><img alt="" sizes="(max-width: 840px) 100vw, (max-width: 1064px) calc(100vw - 300px), 627px" src="https://vignette.wikia.nocookie.net/1fb5ee36-d9ae-4125-96d9-f52eb403f1c9/scale-to-width-down/627" srcset="https://vignette.wikia.nocookie.net/1fb5ee36-d9ae-4125-96d9-f52eb403f1c9/scale-to-width-down/400 400w, https://vignette.wikia.nocookie.net/1fb5ee36-d9ae-4125-96d9-f52eb403f1c9/scale-to-width-down/627 627w, https://vignette.wikia.nocookie.net/1fb5ee36-d9ae-4125-96d9-f52eb403f1c9/scale-to-width-down/800 800w, https://vignette.wikia.nocookie.net/1fb5ee36-d9ae-4125-96d9-f52eb403f1c9/scale-to-width-down/1200 1200w"></img></a>
+ </p>
+ <p>Admittedly, the differences between the original trilogy’s unaltered cuts and the Special Editions appeal to more hardcore fans. Casual fans are less likely to care about whether <a data-is="trackable" href="http://starwars.wikia.com/wiki/Greedo" riot-tag="trackable">Greedo</a> or <a data-is="trackable" href="http://starwars.wikia.com/wiki/Han_Solo" riot-tag="trackable">Han Solo</a> shot first. Still, given Star Wars’ indelible impact on pop culture, there’s certainly a market for the original trilogy’s unaltered cuts. They might not be for every Star Wars fan, but many of us care about them.</p>
+ <p>ILM supervisor <a data-is="trackable" href="http://starwars.wikia.com/wiki/John_Knoll" riot-tag="trackable">John Knoll</a>, who first pitched the <a data-is="trackable" href="http://fandom.wikia.com/videos/john-knoll-important-rogue-one" riot-tag="trackable">story idea</a> for <a data-is="trackable" href="http://starwars.wikia.com/wiki/Rogue_One:_A_Star_Wars_Story" riot-tag="trackable"><em>Rogue One</em></a>, said <a data-is="trackable" href="http://lwlies.com/interviews/gareth-edwards-rogue-one-a-star-wars-story/" riot-tag="trackable">last year</a> that ILM finished a brand new 4K restoration print of <em>A New Hope</em>. For that reason, it seems likely that Lucasfilm will finally give diehard fans the original film cuts that they’ve clamored for. There’s no word yet whether the unaltered cuts will be released in theaters or on home media. At the very least, however, fans will likely get them after all this time. After all, the Special Editions marked the saga’s 20th anniversary. Star Wars turns 40 years old this year, so there’s no telling what’s in store.</p>
+ <hr></hr><p>
+ <em>
+ Would you like to be part of the Fandom team? <a data-is="trackable" href="http://fandom.wikia.com/fan-contributor" riot-tag="trackable">Join our Fan Contributor Program</a> and share your voice on <a data-is="trackable" href="http://fandom.wikia.com" riot-tag="trackable">Fandom.com</a>! </em>
+
+ </p>
+
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wikia/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wikia/source.html
new file mode 100644
index 000000000..aa1d77164
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wikia/source.html
@@ -0,0 +1,19998 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" class="js non-touch-device sliding-icons" data-region="united-states" lang="en">
+
+<head>
+ <script type="text/javascript" src="http://cdn.krxd.net/userdata/get?pub=44c1a380-770f-11df-93f2-0800200c9a66&amp;technographics=1&amp;callback=Krux.ns._default.kxjsonp_userdata"></script>
+ <script type="text/javascript" src="http://beacon.krxd.net/optout_check?callback=Krux.ns._default.kxjsonp_optOutCheck"></script>
+ <script src="http://static.parsely.com/code/ptrack-v0.8.0-engaged-time-slots-video.js"></script>
+ <script src="http://srv-2017-02-24-09.config.parsely.com/config/fandom.wikia.com"></script>
+ <meta charset="utf-8" />
+ <meta http-equiv="x-ua-compatible" content="ie=edge" />
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <meta name="google-site-verification" content="gpjDSKft3IX1rWylaTa_VAAgbn0SoAbo2VWfrqTxeB8" />
+
+ <link rel="apple-touch-icon" sizes="180x180" href="http://fandom.wikia.com/wp-content/themes/upstream/apple-touch-icon.png?v=3" />
+ <link rel="icon" type="image/png" href="http://fandom.wikia.com/wp-content/themes/upstream/favicon-32x32.png?v=3" sizes="32x32" />
+ <link rel="icon" type="image/png" href="http://fandom.wikia.com/wp-content/themes/upstream/favicon-16x16.png?v=3" sizes="16x16" />
+ <link rel="manifest" href="http://fandom.wikia.com/wp-content/themes/upstream/manifest.json?v=3" />
+ <link rel="shortcut icon" href="http://fandom.wikia.com/wp-content/themes/upstream/favicon.ico?v=3" />
+ <meta name="apple-mobile-web-app-title" content="Fandom from Wikia" />
+ <meta name="application-name" content="Fandom from Wikia" />
+ <meta name="msapplication-config" content="http://fandom.wikia.com/wp-content/themes/upstream/browserconfig.xml?v=3" />
+ <meta name="theme-color" content="#ffffff" />
+
+
+ <script src="http://edge.quantserve.com/quant.js" async="" type="text/javascript"></script>
+ <script async="" src="http://b.scorecardresearch.com/beacon.js"></script>
+ <script src="https://securepubads.g.doubleclick.net/gampad/ads?gdfp_req=1&amp;correlator=2523222516379679&amp;output=json_html&amp;callback=googletag.impl.pubads.callbackProxy1&amp;impl=fifs&amp;json_a=1&amp;eid=108809080%2C21060003&amp;sc=0&amp;sfv=1-0-6&amp;iu_parts=5441%2Cwka.fandom%2C_article%2CARTICLE_TOP_LEADERBOARD%2CARTICLE_TOP_BOXAD&amp;enc_prev_ius=%2F0%2F1%2F2%2F3%2C%2F0%2F1%2F2%2F4&amp;prev_iu_szs=728x90%7C970x250%7C1024x416%2C300x250%7C300x600%7C300x1050&amp;prev_scp=pos%3DTOP_LEADERBOARD%26src%3Dgpt%26loc%3Dtop%26uap%3Dnone%26wsi%3Dfla1%7Cpos%3DTOP_BOXAD%26src%3Dgpt%26loc%3Dtop%26uap%3Dnone%26wsi%3Dfma1&amp;eri=1&amp;cust_params=vertical%3DMovies%26post_id%3D49332%26page_url%3Dhttp%253A%252F%252Ffandom.wikia.com%252Farticles%252Fstar-wars-original-cuts-might-get-released-40th-anniversary%26topic%3DStar%2520Wars%26tags%3DFan%2520Contributor%252CGeorge%2520Lucas%252CJohn%2520Knoll%252CLucasfilm%252COriginal%2520Trilogy%252CRogue%2520One%253A%2520A%2520Star%2520Wars%2520Story%252CSpecial%2520Editions%252CStar%2520Wars%252CStar%2520Wars%253A%2520Episode%2520IV%2520-%2520A%2520New%2520Hope%252CStar%2520Wars%253A%2520Episode%2520V%2520-%2520The%2520Empire%2520Strikes%2520Back%252CStar%2520Wars%253A%2520Episode%2520VI%2520-%2520Return%2520of%2520the%2520Jedi%252CStar%2520Wars%253A%2520Episode%2520VII%2520-%2520The%2520Force%2520Awakens%26rrspace%3D0%26wsi%3Dfxa1%26lang%3Den%26host%3Dfandom.wikia.com%26skin%3Dfandom_desktop&amp;cookie_enabled=1&amp;lmt=1487930323&amp;dt=1487930323080&amp;cc=14&amp;frm=20&amp;biw=1280&amp;bih=685&amp;oid=3&amp;adxs=0%2C0&amp;adys=0%2C0&amp;adks=609416046%2C1485679590&amp;gut=v2&amp;ifi=1&amp;u_tz=480&amp;u_his=2&amp;u_h=900&amp;u_w=1440&amp;u_ah=877&amp;u_aw=1436&amp;u_cd=24&amp;u_nplug=1&amp;u_nmime=2&amp;u_sd=2&amp;flash=21.0.0&amp;url=http%3A%2F%2Ffandom.wikia.com%2Farticles%2Fstar-wars-original-cuts-might-get-released-40th-anniversary&amp;dssz=24&amp;icsg=2191&amp;std=11&amp;csl=41&amp;vrg=110&amp;vrp=110&amp;ga_vid=1119668980.1487930323&amp;ga_sid=1487930323&amp;ga_hid=559925686"></script>
+ <script id="facebook-jssdk" src="//connect.facebook.net/en_US/sdk.js"></script>
+ <script id="twitter-wjs" src="https://platform.twitter.com/widgets.js"></script>
+ <script type="text/javascript" src="http://beacon.krxd.net/cookie2json?callback=Krux.ns._default.kxjsonp_3pevents"></script>
+ <script async="" src="//cdn.krxd.net/ctjs/controltag.js.75dfa713ddfc7625c783b3f4f5aaa8be"></script>
+ <script async="" src="//cdn.petametrics.com/l9ehhrb6mtv75bp2.js?ts=413313"></script>
+ <script type="text/javascript" async="" src="http://cdn.krxd.net/controltag?confid=KPSUiAKl"></script>
+ <script async="" type="text/javascript" src="http://www.googletagservices.com/tag/js/gpt.js"></script>
+ <script async="" src="https://www.google-analytics.com/analytics.js"></script>
+ <script>
+ (function() {
+ 'use strict';
+
+ function getWindowWidth() {
+ return window.innerWidth ||
+ document.documentElement.clientWidth ||
+ document.body.clientWidth;
+ }
+
+ window.upstream = {
+ "env": "production",
+ "siteUrl": "http:\/\/fandom.wikia.com",
+ "wikiBridge": {
+ "wikiId": 1452001,
+ "database": "fandomstories"
+ },
+ "pageType": "article",
+ "post": {
+ "verticals": ["Movies"],
+ "topics": ["Star Wars"],
+ "events": [],
+ "tags": ["Fan Contributor", "George Lucas", "John Knoll", "Lucasfilm", "Original Trilogy", "Rogue One: A Star Wars Story", "Special Editions", "Star Wars", "Star Wars: Episode IV - A New Hope", "Star Wars: Episode V - The Empire Strikes Back", "Star Wars: Episode VI - Return of the Jedi", "Star Wars: Episode VII - The Force Awakens"],
+ "id": 49332,
+ "title": "'Star Wars' Original Cuts Might Get Released for 40th Anniversary",
+ "primaryVertical": "Movies",
+ "author": "CC7567",
+ "authorType": "Fan Contributor",
+ "publishDate": "2017-02-23 17:18:13",
+ "authorId": "58",
+ "categories": []
+ },
+ "tests": {},
+ "contentLanguage": "en",
+ "user": {
+ "loggedIn": false
+ },
+ "ads": {
+ "adStack": []
+ },
+ "translations": {
+ "enter-email-prompt": "Please enter your email address.",
+ "invalid-email-error": "Invalid email address format. Please try again!",
+ "generic-email-error": "An error occurred. Please try again!",
+ "content-is-restricted": "This content is restricted.",
+ "birth-year-prompt": "Please enter your birth month and year below.",
+ "continue": "Continue",
+ "error-msg-sorry": "Sorry! You must be at least",
+ "error-msg-years-old": "years old to watch this content."
+ }
+ };
+
+ window.upstream.isMobileScreenSize = getWindowWidth() & lt;
+ 840;
+ window.upstream.isTouchDevice = 'ontouchstart' in document.documentElement;
+ window.upstream.mobileBreakpoint = 840;
+ })();
+ </script>
+ <!-- Google Analytics -->
+ <script>
+ (function(i, s, o, g, r, a, m) {
+ i['GoogleAnalyticsObject'] = r;
+ i[r] = i[r] || function() {
+ (i[r].q = i[r].q || []).push(arguments)
+ }, i[r].l = 1 * new Date();
+ a = s.createElement(o),
+ m = s.getElementsByTagName(o)[0];
+ a.async = 1;
+ a.src = g;
+ m.parentNode.insertBefore(a, m)
+ })(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');
+ </script>
+ <!-- End Google Analytics -->
+ <script type="text/javascript">
+ var googletag = window.googletag || {};
+ googletag.cmd = googletag.cmd || [];
+
+ (function() {
+ var gads = document.createElement('script'),
+ useSSL = 'https:' == document.location.protocol,
+ node = document.getElementsByTagName('script')[0];
+
+ gads.async = true;
+ gads.type = 'text/javascript';
+ gads.src = (useSSL ? 'https:' : 'http:') + '//www.googletagservices.com/tag/js/gpt.js';
+ node.parentNode.insertBefore(gads, node);
+ })();
+ </script>
+ <!-- start Parsely JSON-LD -->
+ <meta name="parsely-metadata" content="{&quot;postID&quot;:49332,&quot;authorType&quot;:&quot;Fan Contributor&quot;,&quot;isVideo&quot;:false,&quot;postType&quot;:&quot;post&quot;,&quot;userID&quot;:&quot;1197885&quot;}" />
+ <script type="application/ld+json">
+ {
+ "@context": "http://schema.org",
+ "@type": "NewsArticle",
+ "headline": "'Star Wars' Original Cuts Might Get Released for 40th Anniversary",
+ "url": "http://fandom.wikia.com/articles/star-wars-original-cuts-might-get-released-40th-anniversary",
+ "thumbnailUrl": "https://vignette.wikia.nocookie.net/1fb5ee36-d9ae-4125-96d9-f52eb403f1c9/scale-to-width-down/400",
+ "dateCreated": "2017-02-24T01:18:13Z",
+ "articleSection": "Movies",
+ "creator": "CC7567",
+ "keywords": ["Movies", "Fan Contributor", "George Lucas", "John Knoll", "Lucasfilm", "Original Trilogy", "Rogue One: A Star Wars Story", "Special Editions", "Star Wars", "Star Wars: Episode IV - A New Hope", "Star Wars: Episode V - The Empire Strikes Back", "Star Wars: Episode VI - Return of the Jedi", "Star Wars: Episode VII - The Force Awakens", "Star Wars"]
+ }
+ </script>
+ <!-- end Parsely JSON-LD -->
+ <!-- BEGIN Krux Control Tag for "Fandom" -->
+ <!-- Source: /snippet/controltag?confid=KPSUiAKl&site=Fandom&edit=1 -->
+ <script class="kxct" data-id="KPSUiAKl" data-timing="async" data-version="1.9" type="text/javascript">
+ window.Krux || ((Krux = function() {
+ Krux.q.push(arguments)
+ }).q = []);
+ (function() {
+ var k = document.createElement('script');
+ k.type = 'text/javascript';
+ k.async = true;
+ var m, src = (m = location.href.match(/\bkxsrc=([^&amp;]+)/)) & amp; & amp;
+ decodeURIComponent(m[1]);
+ k.src = /^https?:\/\/([a-z0-9_\-\.]+\.)?krxd\.net(:\d{1,5})?\//i.test(src) ? src : src === "disable" ? "" :
+ (location.protocol === "https:" ? "https:" : "http:") + "//cdn.krxd.net/controltag?confid=KPSUiAKl";
+ var s = document.getElementsByTagName('script')[0];
+ s.parentNode.insertBefore(k, s);
+ }());
+ </script>
+ <!-- END Krux Controltag -->
+ <!-- GPT interchange code -->
+
+ <script>
+ window.Krux || ((Krux = function() {
+ Krux.q.push(arguments);
+ }).q = []);
+ (function() {
+ function retrieve(n) {
+ var m, k = 'kx' + n;
+ if (window.localStorage) {
+ return window.localStorage[k] || "";
+ } else if (navigator.cookieEnabled) {
+ m = document.cookie.match(k + '=([^;]*)');
+ return (m & amp; & amp; unescape(m[1])) || "";
+ } else {
+ return '';
+ }
+ }
+ Krux.user = retrieve('user');
+ Krux.segments = retrieve('segs') & amp; & amp;
+ retrieve('segs').split(',') || [];
+ })();
+ </script>
+ <!-- END GPT interchange code -->
+
+ <!-- Liftigniter -->
+ <script type="text/javascript">
+ (function(w, d, s, p, v, e, r) {
+ w['$igniter_var'] = v;
+ w[v] = w[v] || function() {
+ (w[v].q = w[v].q || []).push(
+ arguments)
+ };
+ w[v].l = 1 * new Date();
+ e = d.createElement(s), r = d.getElementsByTagName(s)[0];
+ e.async = 1;
+ e.src = p + '?ts=' + (+new Date() / 3600000 | 0);
+ r.parentNode.insertBefore(e, r)
+ })(window, document, 'script', '//cdn.petametrics.com/l9ehhrb6mtv75bp2.js', '$p');
+ </script>
+ <!-- End Liftigniter -->
+ <title>'Star Wars' Original Cuts Might Get Released for 40th Anniversary | Fandom powered by Wikia</title>
+
+ <!-- This site is optimized with the Yoast SEO plugin v4.3 - https://yoast.com/wordpress/plugins/seo/ -->
+ <meta name="description" content="As a 40th birthday present to the Star Wars Saga and its fans, Lucasfilm could re-release the original versions of the original trilogy films." />
+ <meta name="robots" content="noodp" />
+ <link rel="canonical" href="http://fandom.wikia.com/articles/star-wars-original-cuts-might-get-released-40th-anniversary" />
+ <link rel="publisher" href="https://plus.google.com/+wikia/about" />
+ <meta property="og:locale" content="en_US" />
+ <meta property="og:type" content="article" />
+ <meta property="og:title" content="'Star Wars' Original Cuts Might Get Released for 40th Anniversary" />
+ <meta property="og:description" content="As a 40th birthday present to the Star Wars Saga and its fans, Lucasfilm could re-release the original versions of the original trilogy films." />
+ <meta property="og:url" content="http://fandom.wikia.com/articles/star-wars-original-cuts-might-get-released-40th-anniversary" />
+ <meta property="og:site_name" content="Fandom powered by Wikia" />
+ <meta property="article:publisher" content="https://www.facebook.com/getfandom" />
+ <meta property="article:tag" content="Fan Contributor" />
+ <meta property="article:tag" content="George Lucas" />
+ <meta property="article:tag" content="John Knoll" />
+ <meta property="article:tag" content="Lucasfilm" />
+ <meta property="article:tag" content="Original Trilogy" />
+ <meta property="article:tag" content="Rogue One: A Star Wars Story" />
+ <meta property="article:tag" content="Special Editions" />
+ <meta property="article:tag" content="Star Wars" />
+ <meta property="article:tag" content="Star Wars: Episode IV - A New Hope" />
+ <meta property="article:tag" content="Star Wars: Episode V - The Empire Strikes Back" />
+ <meta property="article:tag" content="Star Wars: Episode VI - Return of the Jedi" />
+ <meta property="article:tag" content="Star Wars: Episode VII - The Force Awakens" />
+ <meta property="article:section" content="Movies" />
+ <meta property="article:published_time" content="2017-02-23T17:18:13-08:00" />
+ <meta property="fb:app_id" content="112328095453510" />
+ <meta property="og:image" content="https://vignette.wikia.nocookie.net/1fb5ee36-d9ae-4125-96d9-f52eb403f1c9/thumbnail-down/width/1280/height/720" />
+ <meta property="og:image:width" content="1280" />
+ <meta property="og:image:height" content="720" />
+ <meta name="twitter:card" content="summary" />
+ <meta name="twitter:description" content="As a 40th birthday present to the Star Wars Saga and its fans, Lucasfilm could re-release the original versions of the original trilogy films." />
+ <meta name="twitter:title" content="'Star Wars' Original Cuts Might Get Released for 40th Anniversary | Fandom powered by Wikia" />
+ <meta name="twitter:site" content="@getfandom" />
+ <meta name="twitter:image" content="https://vignette.wikia.nocookie.net/1fb5ee36-d9ae-4125-96d9-f52eb403f1c9" />
+ <meta name="twitter:creator" content="@JamesAkinaka" />
+ <!-- / Yoast SEO plugin. -->
+
+ <link rel="alternate" type="application/rss+xml" title="Fandom powered by Wikia » Feed" href="http://fandom.wikia.com/feed" />
+ <link rel="alternate" type="application/rss+xml" title="Fandom powered by Wikia » Comments Feed" href="http://fandom.wikia.com/comments/feed" />
+ <link rel="https://api.w.org/" href="http://fandom.wikia.com/wp-json/" />
+ <link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://fandom.wikia.com/xmlrpc.php?rsd" />
+ <link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://fandom.wikia.com/wp-includes/wlwmanifest.xml" />
+ <meta name="generator" content="WordPress 4.7.2" />
+ <link rel="shortlink" href="http://fandom.wikia.com/?p=49332" />
+ <link rel="alternate" type="application/json+oembed" href="http://fandom.wikia.com/wp-json/oembed/1.0/embed?url=http%3A%2F%2Ffandom.wikia.com%2Farticles%2Fstar-wars-original-cuts-might-get-released-40th-anniversary" />
+ <link rel="alternate" type="text/xml+oembed" href="http://fandom.wikia.com/wp-json/oembed/1.0/embed?url=http%3A%2F%2Ffandom.wikia.com%2Farticles%2Fstar-wars-original-cuts-might-get-released-40th-anniversary&amp;format=xml" />
+
+ <script>
+ "format global";
+ ! function(a) {
+ function b(a, b, e) {
+ return 4 === arguments.length ? c.apply(this, arguments) : void d(a, {
+ declarative: !0,
+ deps: b,
+ declare: e
+ })
+ }
+
+ function c(a, b, c, e) {
+ d(a, {
+ declarative: !1,
+ deps: b,
+ executingRequire: c,
+ execute: e
+ })
+ }
+
+ function d(a, b) {
+ b.name = a, a in m || (m[a] = b), b.normalizedDeps = b.deps
+ }
+
+ function e(a, b) {
+ if (b[a.groupIndex] = b[a.groupIndex] || [], -1 == n.call(b[a.groupIndex], a)) {
+ b[a.groupIndex].push(a);
+ for (var c = 0, d = a.normalizedDeps.length; d & gt; c; c++) {
+ var f = a.normalizedDeps[c],
+ g = m[f];
+ if (g & amp; & amp; !g.evaluated) {
+ var h = a.groupIndex + (g.declarative != a.declarative);
+ if (void 0 === g.groupIndex || g.groupIndex & lt; h) {
+ if (void 0 !== g.groupIndex & amp; & amp;
+ (b[g.groupIndex].splice(n.call(b[g.groupIndex], g), 1), 0 == b[g.groupIndex].length)) throw new TypeError("Mixed dependency cycle detected");
+ g.groupIndex = h
+ }
+ e(g, b)
+ }
+ }
+ }
+ }
+
+ function f(a) {
+ var b = m[a];
+ b.groupIndex = 0;
+ var c = [];
+ e(b, c);
+ for (var d = !!b.declarative == c.length % 2, f = c.length - 1; f & gt; = 0; f--) {
+ for (var g = c[f], i = 0; i & lt; g.length; i++) {
+ var k = g[i];
+ d ? h(k) : j(k)
+ }
+ d = !d
+ }
+ }
+
+ function g(a) {
+ return r[a] || (r[a] = {
+ name: a,
+ dependencies: [],
+ exports: {},
+ importers: []
+ })
+ }
+
+ function h(b) {
+ if (!b.module) {
+ var c = b.module = g(b.name),
+ d = b.module.exports,
+ e = b.declare.call(a, function(a, b) {
+ if (c.locked = !0, "object" == typeof a)
+ for (var e in a) d[e] = a[e];
+ else d[a] = b;
+ for (var f = 0, g = c.importers.length; g & gt; f; f++) {
+ var h = c.importers[f];
+ if (!h.locked)
+ for (var i = 0; i & lt; h.dependencies.length; ++i) h.dependencies[i] === c & amp; & amp;
+ h.setters[i](d)
+ }
+ return c.locked = !1, b
+ });
+ c.setters = e.setters, c.execute = e.execute;
+ for (var f = 0, i = b.normalizedDeps.length; i & gt; f; f++) {
+ var j, k = b.normalizedDeps[f],
+ n = m[k],
+ o = r[k];
+ o ? j = o.exports : n & amp; & amp;
+ !n.declarative ? j = n.esModule : n ? (h(n), o = n.module, j = o.exports) : j = l(k), o & amp; & amp;
+ o.importers ? (o.importers.push(c), c.dependencies.push(o)) : c.dependencies.push(null), c.setters[f] & amp; & amp;
+ c.setters[f](j)
+ }
+ }
+ }
+
+ function i(a) {
+ var b, c = m[a];
+ if (c) c.declarative ? k(a, []) : c.evaluated || j(c), b = c.module.exports;
+ else if (b = l(a), !b) throw new Error("Unable to load dependency " + a + ".");
+ return (!c || c.declarative) & amp; & amp;
+ b & amp; & amp;
+ b.__useDefault ? b["default"] : b
+ }
+
+ function j(b) {
+ if (!b.module) {
+ var c = {},
+ d = b.module = {
+ exports: c,
+ id: b.name
+ };
+ if (!b.executingRequire)
+ for (var e = 0, f = b.normalizedDeps.length; f & gt; e; e++) {
+ var g = b.normalizedDeps[e],
+ h = m[g];
+ h & amp; & amp;
+ j(h)
+ }
+ b.evaluated = !0;
+ var k = b.execute.call(a, function(a) {
+ for (var c = 0, d = b.deps.length; d & gt; c; c++)
+ if (b.deps[c] == a) return i(b.normalizedDeps[c]);
+ throw new TypeError("Module " + a + " not declared as a dependency.")
+ }, c, d);
+ if (k & amp; & amp;
+ (d.exports = k), c = d.exports, c & amp; & amp; c.__esModule) b.esModule = c;
+ else {
+ if (b.esModule = {}, "object" == typeof c || "function" == typeof c)
+ if (o) {
+ var l;
+ for (var n in c)(l = Object.getOwnPropertyDescriptor(c, n)) & amp; & amp;
+ q(b.esModule, n, l)
+ } else {
+ var p = c & amp; & amp;
+ c.hasOwnProperty;
+ for (var n in c)(!p || c.hasOwnProperty(n)) & amp; & amp;
+ (b.esModule[n] = c[n])
+ }
+ b.esModule["default"] = c, q(b.esModule, "__useDefault", {
+ value: !0
+ })
+ }
+ }
+ }
+
+ function k(b, c) {
+ var d = m[b];
+ if (d & amp; & amp; !d.evaluated & amp; & amp; d.declarative) {
+ c.push(b);
+ for (var e = 0, f = d.normalizedDeps.length; f & gt; e; e++) {
+ var g = d.normalizedDeps[e]; - 1 == n.call(c, g) & amp; & amp;
+ (m[g] ? k(g, c) : l(g))
+ }
+ d.evaluated || (d.evaluated = !0, d.module.execute.call(a))
+ }
+ }
+
+ function l(a) {
+ if (s[a]) return s[a];
+ if ("@node/" == a.substr(0, 6)) return require(a.substr(6));
+ var b = m[a];
+ if (!b) throw "Module " + a + " not present.";
+ return f(a), k(a, []), m[a] = void 0, b.declarative & amp; & amp;
+ q(b.module.exports, "__esModule", {
+ value: !0
+ }), s[a] = b.declarative ? b.module.exports : b.esModule
+ }
+ var m = {},
+ n = Array.prototype.indexOf || function(a) {
+ for (var b = 0, c = this.length; c & gt; b; b++)
+ if (this[b] === a) return b;
+ return -1
+ },
+ o = !0;
+ try {
+ Object.getOwnPropertyDescriptor({
+ a: 0
+ }, "a")
+ } catch (p) {
+ o = !1
+ }
+ var q;
+ ! function() {
+ try {
+ Object.defineProperty({}, "a", {}) & amp; & amp;
+ (q = Object.defineProperty)
+ } catch (a) {
+ q = function(a, b, c) {
+ try {
+ a[b] = c.value || c.get.call(a)
+ } catch (d) {}
+ }
+ }
+ }();
+ var r = {},
+ s = {};
+ return function(a, d, e) {
+ return function(f) {
+ f(function(f) {
+ var g = {
+ _nodeRequire: "undefined" != typeof require & amp; & amp;require.resolve & amp; & amp;
+ "undefined" != typeof process & amp; & amp;require,
+ register: b,
+ registerDynamic: c,
+ get: l,
+ set: function(a, b) {
+ s[a] = b
+ },
+ newModule: function(a) {
+ return a
+ }
+ };
+ g.set("@empty", {});
+ for (var h = 0; h & lt; d.length; h++)(function(a, b) {
+ b & amp; & amp;
+ b.__esModule ? g.register(a, [], function(a) {
+ return {
+ setters: [],
+ execute: function() {
+ for (var c in b) "__esModule" == c || "object" == typeof c & amp; & amp;
+ c + "" == "Module" || a(c, b[c])
+ }
+ }
+ }) : g.registerDynamic(a, [], !1, function() {
+ return b
+ })
+ })(d[h], arguments[h]);
+ e(g);
+ var i = l(a[0]);
+ if (a.length & gt; 1)
+ for (var h = 1; h & lt; a.length; h++) l(a[h]);
+ return i.__useDefault ? i["default"] : i
+ })
+ }
+ }
+ }("undefined" != typeof self ? self : global)(["1"], [], function(a) {
+ ! function(b) {
+ function c(a, b) {
+ for (var c = a.split("."); c.length;) b = b[c.shift()];
+ return b
+ }
+
+ function d(a) {
+ if (Object.keys) Object.keys(b).forEach(a);
+ else
+ for (var c in b) h.call(b, c) & amp; & amp;
+ a(c)
+ }
+
+ function e(a) {
+ d(function(c) {
+ if (-1 == i.call(j, c)) {
+ try {
+ var d = b[c]
+ } catch (e) {
+ j.push(c)
+ }
+ a(c, d)
+ }
+ })
+ }
+ var f, g = a,
+ h = Object.prototype.hasOwnProperty,
+ i = Array.prototype.indexOf || function(a) {
+ for (var b = 0, c = this.length; c & gt; b; b++)
+ if (this[b] === a) return b;
+ return -1
+ },
+ j = ["_g", "sessionStorage", "localStorage", "clipboardData", "frames", "external", "mozAnimationStartTime", "webkitStorageInfo", "webkitIndexedDB"];
+ g.set("@@global-helpers", g.newModule({
+ prepareGlobal: function(a, d, g) {
+ var h = b.define;
+ b.define = void 0, b.exports = void 0, b.module & amp; & amp;
+ b.module.exports & amp; & amp;
+ (b.module = void 0);
+ var i;
+ if (g) {
+ i = {};
+ for (var j in g) i[j] = g[j], b[j] = g[j]
+ }
+ return d || (f = {}, e(function(a, b) {
+ f[a] = b
+ })),
+ function() {
+ var a;
+ if (d) a = c(d, b);
+ else {
+ var g, j, k = {};
+ e(function(a, b) {
+ f[a] !== b & amp; & amp;
+ "undefined" != typeof b & amp; & amp;
+ (k[a] = b, "undefined" != typeof g ? j || g === b || (j = !0) : g = b)
+ }), a = j ? k : g
+ }
+ if (i)
+ for (var l in i) b[l] = i[l];
+ return b.define = h, a
+ }
+ }
+ }))
+ }("undefined" != typeof self ? self : global), a.registerDynamic("2", [], !1, function(b, c, d) {
+ var e = a.get("@@global-helpers").prepareGlobal(d.id, null, null);
+ return function() {
+ ! function(a) {
+ "use strict";
+ a.classList.remove("no-js"), a.classList.add("js"), window.upstream.isTouchDevice ? a.classList.add("touch-device") : a.classList.add("non-touch-device")
+ }(document.documentElement)
+ }(), e()
+ }), a.registerDynamic("3", [], !1, function(b, c, d) {
+ var e = a.get("@@global-helpers").prepareGlobal(d.id, null, null);
+ return function() {
+ "use strict";
+ ! function() {
+ function a(a, b) {
+ b = b || {
+ bubbles: !0,
+ cancelable: !0,
+ detail: void 0
+ };
+ var c = document.createEvent("CustomEvent");
+ return c.initCustomEvent(a, b.bubbles, b.cancelable, b.detail), c
+ }
+ "function" != typeof window.CustomEvent & amp; & amp;
+ (a.prototype = window.Event.prototype, window.CustomEvent = a)
+ }(), String.prototype.includes || (String.prototype.includes = function(a, b) {
+ return "number" != typeof b & amp; & amp;
+ (b = 0), b + a.length & gt;
+ this.length ? !1 : -1 !== this.indexOf(a, b)
+ })
+ }(), e()
+ }), a.register("1", ["2", "3"], function(a) {
+ "use strict";
+
+ function b() {}
+ return {
+ setters: [function(a) {}, function(a) {}],
+ execute: function() {
+ window.upstream.initHeaderScripts = b
+ }
+ }
+ })
+ })(function(a) {
+ a()
+ });
+ //# sourceMappingURL=header.js.map window.upstream.initHeaderScripts();
+ </script>
+
+ <style type="text/css">
+ /*
+Theme Name: upstream
+Theme URI: http://www.wikia.com
+Author: Team RevMo @ Wikia
+Author URI: http://www.wikia.com/
+Description: Wikia Upstream theme
+Version: 1.0
+License: GNU General Public License v2 or later
+License URI: http://www.gnu.org/licenses/gpl-2.0.html
+Tags: wikia
+Text Domain: wikia
+
+This theme, like WordPress, is licensed under the GPL.
+Use it to make something cool, have fun, and share what you've learned with others.
+*/
+ /*! normalize.css v3.0.1 | MIT License | git.io/normalize */
+
+ html {
+ font-family: sans-serif;
+ -ms-text-size-adjust: 100%;
+ -webkit-text-size-adjust: 100%
+ }
+
+ body {
+ margin: 0
+ }
+
+ article,
+ aside,
+ details,
+ figcaption,
+ figure,
+ footer,
+ header,
+ hgroup,
+ main,
+ nav,
+ section,
+ summary {
+ display: block
+ }
+
+ audio,
+ canvas,
+ progress,
+ video {
+ display: inline-block;
+ vertical-align: baseline
+ }
+
+ audio:not([controls]) {
+ display: none;
+ height: 0
+ }
+
+ [hidden],
+ template {
+ display: none
+ }
+
+ a {
+ background: transparent
+ }
+
+ a:active,
+ a:hover {
+ outline: 0
+ }
+
+ abbr[title] {
+ border-bottom: 1px dotted
+ }
+
+ b,
+ strong {
+ font-weight: bold
+ }
+
+ dfn {
+ font-style: italic
+ }
+
+ h1 {
+ font-size: 2em;
+ margin: 0.67em 0
+ }
+
+ mark {
+ background: #ff0;
+ color: #000
+ }
+
+ small {
+ font-size: 80%
+ }
+
+ sub,
+ sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline
+ }
+
+ sup {
+ top: -0.5em
+ }
+
+ sub {
+ bottom: -0.25em
+ }
+
+ img {
+ border: 0
+ }
+
+ svg:not(:root) {
+ overflow: hidden
+ }
+
+ figure {
+ margin: 1em 40px
+ }
+
+ hr {
+ box-sizing: content-box;
+ height: 0
+ }
+
+ pre {
+ overflow: auto
+ }
+
+ code,
+ kbd,
+ pre,
+ samp {
+ font-family: monospace, monospace;
+ font-size: 1em
+ }
+
+ button,
+ input,
+ optgroup,
+ select,
+ textarea {
+ color: inherit;
+ font: inherit;
+ margin: 0
+ }
+
+ button {
+ overflow: visible
+ }
+
+ button,
+ select {
+ text-transform: none
+ }
+
+ button,
+ html input[type="button"],
+ input[type="reset"],
+ input[type="submit"] {
+ -webkit-appearance: button;
+ cursor: pointer
+ }
+
+ button[disabled],
+ html input[disabled] {
+ cursor: default
+ }
+
+ button::-moz-focus-inner,
+ input::-moz-focus-inner {
+ border: 0;
+ padding: 0
+ }
+
+ input {
+ line-height: normal
+ }
+
+ input[type="checkbox"],
+ input[type="radio"] {
+ box-sizing: border-box;
+ padding: 0
+ }
+
+ input[type="number"]::-webkit-inner-spin-button,
+ input[type="number"]::-webkit-outer-spin-button {
+ height: auto
+ }
+
+ input[type="search"] {
+ -webkit-appearance: textfield;
+ box-sizing: content-box
+ }
+
+ input[type="search"]::-webkit-search-cancel-button,
+ input[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none
+ }
+
+ fieldset {
+ border: 1px solid #c0c0c0;
+ margin: 0 2px;
+ padding: 0.35em 0.625em 0.75em
+ }
+
+ legend {
+ border: 0;
+ padding: 0
+ }
+
+ textarea {
+ overflow: auto
+ }
+
+ optgroup {
+ font-weight: bold
+ }
+
+ table {
+ border-collapse: collapse;
+ border-spacing: 0
+ }
+
+ td,
+ th {
+ padding: 0
+ }
+
+ meta.foundation-version {
+ font-family: "1.1.0"
+ }
+
+ meta.foundation-mq {
+ font-family: "small=0&amp;medium=40rem&amp;large=75rem&amp;xlarge=90rem&amp;xxlarge=120rem"
+ }
+
+ html,
+ body {
+ height: 100%;
+ font-size: 100%
+ }
+
+ html {
+ box-sizing: border-box
+ }
+
+ *,
+ *:before,
+ *:after {
+ box-sizing: inherit
+ }
+
+ body {
+ background: #fff;
+ color: #222;
+ padding: 0;
+ margin: 0;
+ font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif;
+ font-weight: normal;
+ font-style: normal;
+ line-height: 1;
+ position: relative;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale
+ }
+
+ img {
+ max-width: 100%;
+ height: auto;
+ -ms-interpolation-mode: bicubic;
+ display: inline-block;
+ vertical-align: middle
+ }
+
+ a,
+ [ui-sref],
+ [zf-open],
+ [zf-close],
+ [zf-toggle] {
+ cursor: pointer
+ }
+
+ #map_canvas img,
+ #map_canvas embed,
+ #map_canvas object,
+ .map_canvas img,
+ .map_canvas embed,
+ .map_canvas object {
+ max-width: none !important
+ }
+
+ .padding {
+ padding: 1rem
+ }
+
+ .vertical.grid-frame,
+ .vertical.grid-block,
+ .vertical.small-grid-block,
+ .vertical.medium-grid-block,
+ .vertical.large-grid-block {
+ -webkit-flex-flow: column nowrap;
+ -ms-flex-flow: column nowrap;
+ flex-flow: column nowrap;
+ -webkit-align-items: stretch;
+ -ms-flex-align: stretch;
+ -ms-grid-row-align: stretch;
+ align-items: stretch
+ }
+
+ .small-vertical.grid-frame,
+ .small-vertical.grid-block,
+ .small-vertical.small-grid-block,
+ .small-vertical.medium-grid-block,
+ .small-vertical.large-grid-block {
+ -webkit-flex-flow: column nowrap;
+ -ms-flex-flow: column nowrap;
+ flex-flow: column nowrap;
+ -webkit-align-items: stretch;
+ -ms-flex-align: stretch;
+ -ms-grid-row-align: stretch;
+ align-items: stretch
+ }
+
+ .small-horizontal.grid-frame,
+ .small-horizontal.grid-block,
+ .small-horizontal.small-grid-block,
+ .small-horizontal.medium-grid-block,
+ .small-horizontal.large-grid-block {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap
+ }
+
+ @media only screen and (min-width: 40em) {
+ .medium-vertical.grid-frame,
+ .medium-vertical.grid-block,
+ .medium-vertical.small-grid-block,
+ .medium-vertical.medium-grid-block,
+ .medium-vertical.large-grid-block {
+ -webkit-flex-flow: column nowrap;
+ -ms-flex-flow: column nowrap;
+ flex-flow: column nowrap;
+ -webkit-align-items: stretch;
+ -ms-flex-align: stretch;
+ -ms-grid-row-align: stretch;
+ align-items: stretch
+ }
+ .medium-horizontal.grid-frame,
+ .medium-horizontal.grid-block,
+ .medium-horizontal.small-grid-block,
+ .medium-horizontal.medium-grid-block,
+ .medium-horizontal.large-grid-block {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .large-vertical.grid-frame,
+ .large-vertical.grid-block,
+ .large-vertical.small-grid-block,
+ .large-vertical.medium-grid-block,
+ .large-vertical.large-grid-block {
+ -webkit-flex-flow: column nowrap;
+ -ms-flex-flow: column nowrap;
+ flex-flow: column nowrap;
+ -webkit-align-items: stretch;
+ -ms-flex-align: stretch;
+ -ms-grid-row-align: stretch;
+ align-items: stretch
+ }
+ .large-horizontal.grid-frame,
+ .large-horizontal.grid-block,
+ .large-horizontal.small-grid-block,
+ .large-horizontal.medium-grid-block,
+ .large-horizontal.large-grid-block {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap
+ }
+ }
+
+ .align-right.grid-frame,
+ .align-right.grid-block,
+ .align-right.small-grid-block,
+ .align-right.medium-grid-block,
+ .align-right.large-grid-block {
+ -webkit-justify-content: flex-end;
+ -ms-flex-pack: end;
+ justify-content: flex-end
+ }
+
+ .align-center.grid-frame,
+ .align-center.grid-block,
+ .align-center.small-grid-block,
+ .align-center.medium-grid-block,
+ .align-center.large-grid-block {
+ -webkit-justify-content: center;
+ -ms-flex-pack: center;
+ justify-content: center
+ }
+
+ .align-justify.grid-frame,
+ .align-justify.grid-block,
+ .align-justify.small-grid-block,
+ .align-justify.medium-grid-block,
+ .align-justify.large-grid-block {
+ -webkit-justify-content: space-between;
+ -ms-flex-pack: justify;
+ justify-content: space-between
+ }
+
+ .align-spaced.grid-frame,
+ .align-spaced.grid-block,
+ .align-spaced.small-grid-block,
+ .align-spaced.medium-grid-block,
+ .align-spaced.large-grid-block {
+ -webkit-justify-content: space-around;
+ -ms-flex-pack: distribute;
+ justify-content: space-around
+ }
+
+ .wrap.grid-frame,
+ .wrap.grid-block,
+ .wrap.small-grid-block,
+ .wrap.medium-grid-block,
+ .wrap.large-grid-block {
+ -webkit-flex-wrap: wrap;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ -webkit-align-items: flex-start;
+ -ms-flex-align: start;
+ -ms-grid-row-align: flex-start;
+ align-items: flex-start
+ }
+
+ .shrink.grid-block,
+ .shrink.grid-content,
+ section.post-archive .shrink.pagination,
+ .shrink.small-grid-block,
+ .shrink.small-grid-content,
+ .shrink.medium-grid-block,
+ .shrink.medium-grid-content,
+ .shrink.large-grid-block,
+ .shrink.large-grid-content {
+ -webkit-flex: 0 0 auto;
+ -ms-flex: 0 0 auto;
+ flex: 0 0 auto
+ }
+
+ .noscroll.grid-block,
+ .noscroll.grid-content,
+ section.post-archive .noscroll.pagination,
+ .noscroll.small-grid-block,
+ .noscroll.small-grid-content,
+ .noscroll.medium-grid-block,
+ .noscroll.medium-grid-content,
+ .noscroll.large-grid-block,
+ .noscroll.large-grid-content {
+ overflow: hidden
+ }
+
+ .grid-frame {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ height: 100vh;
+ position: relative;
+ overflow: hidden;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-flex: 1 1 auto;
+ -ms-flex: 1 1 auto;
+ flex: 1 1 auto;
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ -webkit-flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap;
+ -webkit-align-items: stretch;
+ -ms-flex-align: stretch;
+ align-items: stretch;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ -webkit-order: 0;
+ -ms-flex-order: 0;
+ order: 0
+ }
+
+ .grid-block {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ height: 100vh;
+ position: relative;
+ overflow: hidden;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-flex: 1 1 auto;
+ -ms-flex: 1 1 auto;
+ flex: 1 1 auto;
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ -webkit-flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap;
+ -webkit-align-items: stretch;
+ -ms-flex-align: stretch;
+ align-items: stretch;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ -webkit-order: 0;
+ -ms-flex-order: 0;
+ order: 0;
+ height: auto;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar
+ }
+
+ .grid-content,
+ section.post-archive .pagination {
+ display: block;
+ padding: 0 1rem;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar;
+ -webkit-flex: 1 1 auto;
+ -ms-flex: 1 1 auto;
+ flex: 1 1 auto
+ }
+
+ .grid-content.collapse,
+ section.post-archive .collapse.pagination {
+ padding: 0
+ }
+
+ .grid-content .grid-block,
+ section.post-archive .pagination .grid-block {
+ margin-left: -1rem;
+ margin-right: -1rem;
+ -webkit-flex-wrap: wrap;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ overflow: visible
+ }
+
+ .grid-content .grid-block.nowrap,
+ section.post-archive .pagination .grid-block.nowrap {
+ -webkit-flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap;
+ -webkit-align-items: stretch;
+ -ms-flex-align: stretch;
+ -ms-grid-row-align: stretch;
+ align-items: stretch
+ }
+
+ .grid-content .grid-block .grid-content,
+ section.post-archive .pagination .grid-block .grid-content,
+ .grid-content .grid-block section.post-archive .pagination,
+ section.post-archive .grid-content .grid-block .pagination,
+ section.post-archive .pagination .grid-block .pagination {
+ overflow: visible
+ }
+
+ .grid-container {
+ max-width: 66.5rem;
+ margin: 0 auto
+ }
+
+ .grid-container.contain-left {
+ max-width: 66.5rem;
+ margin: 0 auto 0 0
+ }
+
+ .grid-container.contain-right {
+ max-width: 66.5rem;
+ margin: 0 0 0 auto
+ }
+
+ .small-grid-block {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ height: 100vh;
+ position: relative;
+ overflow: hidden;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-flex: 1 1 auto;
+ -ms-flex: 1 1 auto;
+ flex: 1 1 auto;
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ -webkit-flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap;
+ -webkit-align-items: stretch;
+ -ms-flex-align: stretch;
+ align-items: stretch;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ -webkit-order: 0;
+ -ms-flex-order: 0;
+ order: 0;
+ height: auto;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar
+ }
+
+ .small-grid-block.panel {
+ -webkit-transform: none;
+ transform: none;
+ position: relative;
+ width: auto;
+ height: auto;
+ z-index: auto;
+ box-shadow: none;
+ background: transparent;
+ top: auto;
+ right: auto;
+ bottom: auto;
+ left: auto
+ }
+
+ .small-grid-content {
+ display: block;
+ padding: 0 1rem;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar;
+ -webkit-flex: 1 1 auto;
+ -ms-flex: 1 1 auto;
+ flex: 1 1 auto
+ }
+
+ .small-grid-content.panel {
+ -webkit-transform: none;
+ transform: none;
+ position: relative;
+ width: auto;
+ height: auto;
+ z-index: auto;
+ box-shadow: none;
+ background: transparent;
+ top: auto;
+ right: auto;
+ bottom: auto;
+ left: auto
+ }
+
+ @media only screen and (min-width: 40em) {
+ .medium-grid-block {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ height: 100vh;
+ position: relative;
+ overflow: hidden;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-flex: 1 1 auto;
+ -ms-flex: 1 1 auto;
+ flex: 1 1 auto;
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ -webkit-flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap;
+ -webkit-align-items: stretch;
+ -ms-flex-align: stretch;
+ align-items: stretch;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ -webkit-order: 0;
+ -ms-flex-order: 0;
+ order: 0;
+ height: auto;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar
+ }
+ .medium-grid-block.panel {
+ -webkit-transform: none;
+ transform: none;
+ position: relative;
+ width: auto;
+ height: auto;
+ z-index: auto;
+ box-shadow: none;
+ background: transparent;
+ top: auto;
+ right: auto;
+ bottom: auto;
+ left: auto
+ }
+ }
+
+ @media only screen and (min-width: 40em) {
+ .medium-grid-content {
+ display: block;
+ padding: 0 1rem;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar;
+ -webkit-flex: 1 1 auto;
+ -ms-flex: 1 1 auto;
+ flex: 1 1 auto
+ }
+ .medium-grid-content.panel {
+ -webkit-transform: none;
+ transform: none;
+ position: relative;
+ width: auto;
+ height: auto;
+ z-index: auto;
+ box-shadow: none;
+ background: transparent;
+ top: auto;
+ right: auto;
+ bottom: auto;
+ left: auto
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .large-grid-block {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ height: 100vh;
+ position: relative;
+ overflow: hidden;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-flex: 1 1 auto;
+ -ms-flex: 1 1 auto;
+ flex: 1 1 auto;
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ -webkit-flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap;
+ -webkit-align-items: stretch;
+ -ms-flex-align: stretch;
+ align-items: stretch;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ -webkit-order: 0;
+ -ms-flex-order: 0;
+ order: 0;
+ height: auto;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar
+ }
+ .large-grid-block.panel {
+ -webkit-transform: none;
+ transform: none;
+ position: relative;
+ width: auto;
+ height: auto;
+ z-index: auto;
+ box-shadow: none;
+ background: transparent;
+ top: auto;
+ right: auto;
+ bottom: auto;
+ left: auto
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .large-grid-content {
+ display: block;
+ padding: 0 1rem;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar;
+ -webkit-flex: 1 1 auto;
+ -ms-flex: 1 1 auto;
+ flex: 1 1 auto
+ }
+ .large-grid-content.panel {
+ -webkit-transform: none;
+ transform: none;
+ position: relative;
+ width: auto;
+ height: auto;
+ z-index: auto;
+ box-shadow: none;
+ background: transparent;
+ top: auto;
+ right: auto;
+ bottom: auto;
+ left: auto
+ }
+ }
+
+ .order-1 {
+ -webkit-order: 1;
+ -ms-flex-order: 1;
+ order: 1
+ }
+
+ .order-2 {
+ -webkit-order: 2;
+ -ms-flex-order: 2;
+ order: 2
+ }
+
+ .order-3 {
+ -webkit-order: 3;
+ -ms-flex-order: 3;
+ order: 3
+ }
+
+ .order-4 {
+ -webkit-order: 4;
+ -ms-flex-order: 4;
+ order: 4
+ }
+
+ .order-5 {
+ -webkit-order: 5;
+ -ms-flex-order: 5;
+ order: 5
+ }
+
+ .order-6 {
+ -webkit-order: 6;
+ -ms-flex-order: 6;
+ order: 6
+ }
+
+ .order-7 {
+ -webkit-order: 7;
+ -ms-flex-order: 7;
+ order: 7
+ }
+
+ .order-8 {
+ -webkit-order: 8;
+ -ms-flex-order: 8;
+ order: 8
+ }
+
+ .order-9 {
+ -webkit-order: 9;
+ -ms-flex-order: 9;
+ order: 9
+ }
+
+ .order-10 {
+ -webkit-order: 10;
+ -ms-flex-order: 10;
+ order: 10
+ }
+
+ .order-11 {
+ -webkit-order: 11;
+ -ms-flex-order: 11;
+ order: 11
+ }
+
+ .order-12 {
+ -webkit-order: 12;
+ -ms-flex-order: 12;
+ order: 12
+ }
+
+ .small-1 {
+ -webkit-flex: 0 0 8.33333%;
+ -ms-flex: 0 0 8.33333%;
+ flex: 0 0 8.33333%;
+ max-width: 8.33333%
+ }
+
+ .small-order-1 {
+ -webkit-order: 1;
+ -ms-flex-order: 1;
+ order: 1
+ }
+
+ .small-offset-1 {
+ margin-left: 8.33333%
+ }
+
+ .small-up-1 {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ overflow: visible;
+ list-style-type: none
+ }
+
+ .small-up-1&gt;
+ li,
+ .small-up-1&gt;
+ div,
+ .small-up-1&gt;
+ section {
+ padding: 0 1rem 1rem;
+ -webkit-flex: 0 0 100%;
+ -ms-flex: 0 0 100%;
+ flex: 0 0 100%
+ }
+
+ .small-2 {
+ -webkit-flex: 0 0 16.66667%;
+ -ms-flex: 0 0 16.66667%;
+ flex: 0 0 16.66667%;
+ max-width: 16.66667%
+ }
+
+ .small-order-2 {
+ -webkit-order: 2;
+ -ms-flex-order: 2;
+ order: 2
+ }
+
+ .small-offset-2 {
+ margin-left: 16.66667%
+ }
+
+ .small-up-2 {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ overflow: visible;
+ list-style-type: none
+ }
+
+ .small-up-2&gt;
+ li,
+ .small-up-2&gt;
+ div,
+ .small-up-2&gt;
+ section {
+ padding: 0 1rem 1rem;
+ -webkit-flex: 0 0 50%;
+ -ms-flex: 0 0 50%;
+ flex: 0 0 50%
+ }
+
+ .small-3 {
+ -webkit-flex: 0 0 25%;
+ -ms-flex: 0 0 25%;
+ flex: 0 0 25%;
+ max-width: 25%
+ }
+
+ .small-order-3 {
+ -webkit-order: 3;
+ -ms-flex-order: 3;
+ order: 3
+ }
+
+ .small-offset-3 {
+ margin-left: 25%
+ }
+
+ .small-up-3 {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ overflow: visible;
+ list-style-type: none
+ }
+
+ .small-up-3&gt;
+ li,
+ .small-up-3&gt;
+ div,
+ .small-up-3&gt;
+ section {
+ padding: 0 1rem 1rem;
+ -webkit-flex: 0 0 33.33333%;
+ -ms-flex: 0 0 33.33333%;
+ flex: 0 0 33.33333%
+ }
+
+ .small-4,
+ .more-stories .post .thumbnail,
+ section.post-archive .post .thumbnail {
+ -webkit-flex: 0 0 33.33333%;
+ -ms-flex: 0 0 33.33333%;
+ flex: 0 0 33.33333%;
+ max-width: 33.33333%
+ }
+
+ .small-order-4 {
+ -webkit-order: 4;
+ -ms-flex-order: 4;
+ order: 4
+ }
+
+ .small-offset-4 {
+ margin-left: 33.33333%
+ }
+
+ .small-up-4 {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ overflow: visible;
+ list-style-type: none
+ }
+
+ .small-up-4&gt;
+ li,
+ .small-up-4&gt;
+ div,
+ .small-up-4&gt;
+ section {
+ padding: 0 1rem 1rem;
+ -webkit-flex: 0 0 25%;
+ -ms-flex: 0 0 25%;
+ flex: 0 0 25%
+ }
+
+ .small-5 {
+ -webkit-flex: 0 0 41.66667%;
+ -ms-flex: 0 0 41.66667%;
+ flex: 0 0 41.66667%;
+ max-width: 41.66667%
+ }
+
+ .small-order-5 {
+ -webkit-order: 5;
+ -ms-flex-order: 5;
+ order: 5
+ }
+
+ .small-offset-5 {
+ margin-left: 41.66667%
+ }
+
+ .small-up-5 {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ overflow: visible;
+ list-style-type: none
+ }
+
+ .small-up-5&gt;
+ li,
+ .small-up-5&gt;
+ div,
+ .small-up-5&gt;
+ section {
+ padding: 0 1rem 1rem;
+ -webkit-flex: 0 0 20%;
+ -ms-flex: 0 0 20%;
+ flex: 0 0 20%
+ }
+
+ .small-6,
+ .rail-feed .post-list .post .thumbnail,
+ .rail-feed .post-list .post .details,
+ .recommended-videos .post-list .post .details,
+ .recommended-videos .post-list .post .thumbnail {
+ -webkit-flex: 0 0 50%;
+ -ms-flex: 0 0 50%;
+ flex: 0 0 50%;
+ max-width: 50%
+ }
+
+ .small-order-6 {
+ -webkit-order: 6;
+ -ms-flex-order: 6;
+ order: 6
+ }
+
+ .small-offset-6 {
+ margin-left: 50%
+ }
+
+ .small-up-6 {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ overflow: visible;
+ list-style-type: none
+ }
+
+ .small-up-6&gt;
+ li,
+ .small-up-6&gt;
+ div,
+ .small-up-6&gt;
+ section {
+ padding: 0 1rem 1rem;
+ -webkit-flex: 0 0 16.66667%;
+ -ms-flex: 0 0 16.66667%;
+ flex: 0 0 16.66667%
+ }
+
+ .small-7 {
+ -webkit-flex: 0 0 58.33333%;
+ -ms-flex: 0 0 58.33333%;
+ flex: 0 0 58.33333%;
+ max-width: 58.33333%
+ }
+
+ .small-order-7 {
+ -webkit-order: 7;
+ -ms-flex-order: 7;
+ order: 7
+ }
+
+ .small-offset-7 {
+ margin-left: 58.33333%
+ }
+
+ .small-up-7 {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ overflow: visible;
+ list-style-type: none
+ }
+
+ .small-up-7&gt;
+ li,
+ .small-up-7&gt;
+ div,
+ .small-up-7&gt;
+ section {
+ padding: 0 1rem 1rem;
+ -webkit-flex: 0 0 14.28571%;
+ -ms-flex: 0 0 14.28571%;
+ flex: 0 0 14.28571%
+ }
+
+ .small-8,
+ .more-stories .post .details,
+ section.post-archive .post .details {
+ -webkit-flex: 0 0 66.66667%;
+ -ms-flex: 0 0 66.66667%;
+ flex: 0 0 66.66667%;
+ max-width: 66.66667%
+ }
+
+ .small-order-8 {
+ -webkit-order: 8;
+ -ms-flex-order: 8;
+ order: 8
+ }
+
+ .small-offset-8 {
+ margin-left: 66.66667%
+ }
+
+ .small-up-8 {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ overflow: visible;
+ list-style-type: none
+ }
+
+ .small-up-8&gt;
+ li,
+ .small-up-8&gt;
+ div,
+ .small-up-8&gt;
+ section {
+ padding: 0 1rem 1rem;
+ -webkit-flex: 0 0 12.5%;
+ -ms-flex: 0 0 12.5%;
+ flex: 0 0 12.5%
+ }
+
+ .small-9 {
+ -webkit-flex: 0 0 75%;
+ -ms-flex: 0 0 75%;
+ flex: 0 0 75%;
+ max-width: 75%
+ }
+
+ .small-order-9 {
+ -webkit-order: 9;
+ -ms-flex-order: 9;
+ order: 9
+ }
+
+ .small-offset-9 {
+ margin-left: 75%
+ }
+
+ .small-up-9 {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ overflow: visible;
+ list-style-type: none
+ }
+
+ .small-up-9&gt;
+ li,
+ .small-up-9&gt;
+ div,
+ .small-up-9&gt;
+ section {
+ padding: 0 1rem 1rem;
+ -webkit-flex: 0 0 11.11111%;
+ -ms-flex: 0 0 11.11111%;
+ flex: 0 0 11.11111%
+ }
+
+ .small-10 {
+ -webkit-flex: 0 0 83.33333%;
+ -ms-flex: 0 0 83.33333%;
+ flex: 0 0 83.33333%;
+ max-width: 83.33333%
+ }
+
+ .small-order-10 {
+ -webkit-order: 10;
+ -ms-flex-order: 10;
+ order: 10
+ }
+
+ .small-offset-10 {
+ margin-left: 83.33333%
+ }
+
+ .small-up-10 {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ overflow: visible;
+ list-style-type: none
+ }
+
+ .small-up-10&gt;
+ li,
+ .small-up-10&gt;
+ div,
+ .small-up-10&gt;
+ section {
+ padding: 0 1rem 1rem;
+ -webkit-flex: 0 0 10%;
+ -ms-flex: 0 0 10%;
+ flex: 0 0 10%
+ }
+
+ .small-11 {
+ -webkit-flex: 0 0 91.66667%;
+ -ms-flex: 0 0 91.66667%;
+ flex: 0 0 91.66667%;
+ max-width: 91.66667%
+ }
+
+ .small-order-11 {
+ -webkit-order: 11;
+ -ms-flex-order: 11;
+ order: 11
+ }
+
+ .small-offset-11 {
+ margin-left: 91.66667%
+ }
+
+ .small-up-11 {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ overflow: visible;
+ list-style-type: none
+ }
+
+ .small-up-11&gt;
+ li,
+ .small-up-11&gt;
+ div,
+ .small-up-11&gt;
+ section {
+ padding: 0 1rem 1rem;
+ -webkit-flex: 0 0 9.09091%;
+ -ms-flex: 0 0 9.09091%;
+ flex: 0 0 9.09091%
+ }
+
+ .small-12,
+ .more-stories .tabbed-feed {
+ -webkit-flex: 0 0 100%;
+ -ms-flex: 0 0 100%;
+ flex: 0 0 100%;
+ max-width: 100%
+ }
+
+ .small-order-12 {
+ -webkit-order: 12;
+ -ms-flex-order: 12;
+ order: 12
+ }
+
+ .small-offset-12 {
+ margin-left: 100%
+ }
+
+ .small-up-12 {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ overflow: visible;
+ list-style-type: none
+ }
+
+ .small-up-12&gt;
+ li,
+ .small-up-12&gt;
+ div,
+ .small-up-12&gt;
+ section {
+ padding: 0 1rem 1rem;
+ -webkit-flex: 0 0 8.33333%;
+ -ms-flex: 0 0 8.33333%;
+ flex: 0 0 8.33333%
+ }
+
+ @media only screen and (min-width: 40em) {
+ .medium-1 {
+ -webkit-flex: 0 0 8.33333%;
+ -ms-flex: 0 0 8.33333%;
+ flex: 0 0 8.33333%;
+ max-width: 8.33333%
+ }
+ .medium-order-1 {
+ -webkit-order: 1;
+ -ms-flex-order: 1;
+ order: 1
+ }
+ .medium-offset-1 {
+ margin-left: 8.33333%
+ }
+ .medium-up-1 {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ overflow: visible;
+ list-style-type: none
+ }
+ .medium-up-1&gt;
+ li,
+ .medium-up-1&gt;
+ div,
+ .medium-up-1&gt;
+ section {
+ padding: 0 1rem 1rem;
+ -webkit-flex: 0 0 100%;
+ -ms-flex: 0 0 100%;
+ flex: 0 0 100%
+ }
+ }
+
+ @media only screen and (min-width: 40em) {
+ .medium-2 {
+ -webkit-flex: 0 0 16.66667%;
+ -ms-flex: 0 0 16.66667%;
+ flex: 0 0 16.66667%;
+ max-width: 16.66667%
+ }
+ .medium-order-2 {
+ -webkit-order: 2;
+ -ms-flex-order: 2;
+ order: 2
+ }
+ .medium-offset-2 {
+ margin-left: 16.66667%
+ }
+ .medium-up-2 {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ overflow: visible;
+ list-style-type: none
+ }
+ .medium-up-2&gt;
+ li,
+ .medium-up-2&gt;
+ div,
+ .medium-up-2&gt;
+ section {
+ padding: 0 1rem 1rem;
+ -webkit-flex: 0 0 50%;
+ -ms-flex: 0 0 50%;
+ flex: 0 0 50%
+ }
+ }
+
+ @media only screen and (min-width: 40em) {
+ .medium-3 {
+ -webkit-flex: 0 0 25%;
+ -ms-flex: 0 0 25%;
+ flex: 0 0 25%;
+ max-width: 25%
+ }
+ .medium-order-3 {
+ -webkit-order: 3;
+ -ms-flex-order: 3;
+ order: 3
+ }
+ .medium-offset-3 {
+ margin-left: 25%
+ }
+ .medium-up-3 {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ overflow: visible;
+ list-style-type: none
+ }
+ .medium-up-3&gt;
+ li,
+ .medium-up-3&gt;
+ div,
+ .medium-up-3&gt;
+ section {
+ padding: 0 1rem 1rem;
+ -webkit-flex: 0 0 33.33333%;
+ -ms-flex: 0 0 33.33333%;
+ flex: 0 0 33.33333%
+ }
+ }
+
+ @media only screen and (min-width: 40em) {
+ .medium-4 {
+ -webkit-flex: 0 0 33.33333%;
+ -ms-flex: 0 0 33.33333%;
+ flex: 0 0 33.33333%;
+ max-width: 33.33333%
+ }
+ .medium-order-4 {
+ -webkit-order: 4;
+ -ms-flex-order: 4;
+ order: 4
+ }
+ .medium-offset-4 {
+ margin-left: 33.33333%
+ }
+ .medium-up-4 {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ overflow: visible;
+ list-style-type: none
+ }
+ .medium-up-4&gt;
+ li,
+ .medium-up-4&gt;
+ div,
+ .medium-up-4&gt;
+ section {
+ padding: 0 1rem 1rem;
+ -webkit-flex: 0 0 25%;
+ -ms-flex: 0 0 25%;
+ flex: 0 0 25%
+ }
+ }
+
+ @media only screen and (min-width: 40em) {
+ .medium-5 {
+ -webkit-flex: 0 0 41.66667%;
+ -ms-flex: 0 0 41.66667%;
+ flex: 0 0 41.66667%;
+ max-width: 41.66667%
+ }
+ .medium-order-5 {
+ -webkit-order: 5;
+ -ms-flex-order: 5;
+ order: 5
+ }
+ .medium-offset-5 {
+ margin-left: 41.66667%
+ }
+ .medium-up-5 {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ overflow: visible;
+ list-style-type: none
+ }
+ .medium-up-5&gt;
+ li,
+ .medium-up-5&gt;
+ div,
+ .medium-up-5&gt;
+ section {
+ padding: 0 1rem 1rem;
+ -webkit-flex: 0 0 20%;
+ -ms-flex: 0 0 20%;
+ flex: 0 0 20%
+ }
+ }
+
+ @media only screen and (min-width: 40em) {
+ .medium-6 {
+ -webkit-flex: 0 0 50%;
+ -ms-flex: 0 0 50%;
+ flex: 0 0 50%;
+ max-width: 50%
+ }
+ .medium-order-6 {
+ -webkit-order: 6;
+ -ms-flex-order: 6;
+ order: 6
+ }
+ .medium-offset-6 {
+ margin-left: 50%
+ }
+ .medium-up-6 {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ overflow: visible;
+ list-style-type: none
+ }
+ .medium-up-6&gt;
+ li,
+ .medium-up-6&gt;
+ div,
+ .medium-up-6&gt;
+ section {
+ padding: 0 1rem 1rem;
+ -webkit-flex: 0 0 16.66667%;
+ -ms-flex: 0 0 16.66667%;
+ flex: 0 0 16.66667%
+ }
+ }
+
+ @media only screen and (min-width: 40em) {
+ .medium-7 {
+ -webkit-flex: 0 0 58.33333%;
+ -ms-flex: 0 0 58.33333%;
+ flex: 0 0 58.33333%;
+ max-width: 58.33333%
+ }
+ .medium-order-7 {
+ -webkit-order: 7;
+ -ms-flex-order: 7;
+ order: 7
+ }
+ .medium-offset-7 {
+ margin-left: 58.33333%
+ }
+ .medium-up-7 {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ overflow: visible;
+ list-style-type: none
+ }
+ .medium-up-7&gt;
+ li,
+ .medium-up-7&gt;
+ div,
+ .medium-up-7&gt;
+ section {
+ padding: 0 1rem 1rem;
+ -webkit-flex: 0 0 14.28571%;
+ -ms-flex: 0 0 14.28571%;
+ flex: 0 0 14.28571%
+ }
+ }
+
+ @media only screen and (min-width: 40em) {
+ .medium-8 {
+ -webkit-flex: 0 0 66.66667%;
+ -ms-flex: 0 0 66.66667%;
+ flex: 0 0 66.66667%;
+ max-width: 66.66667%
+ }
+ .medium-order-8 {
+ -webkit-order: 8;
+ -ms-flex-order: 8;
+ order: 8
+ }
+ .medium-offset-8 {
+ margin-left: 66.66667%
+ }
+ .medium-up-8 {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ overflow: visible;
+ list-style-type: none
+ }
+ .medium-up-8&gt;
+ li,
+ .medium-up-8&gt;
+ div,
+ .medium-up-8&gt;
+ section {
+ padding: 0 1rem 1rem;
+ -webkit-flex: 0 0 12.5%;
+ -ms-flex: 0 0 12.5%;
+ flex: 0 0 12.5%
+ }
+ }
+
+ @media only screen and (min-width: 40em) {
+ .medium-9 {
+ -webkit-flex: 0 0 75%;
+ -ms-flex: 0 0 75%;
+ flex: 0 0 75%;
+ max-width: 75%
+ }
+ .medium-order-9 {
+ -webkit-order: 9;
+ -ms-flex-order: 9;
+ order: 9
+ }
+ .medium-offset-9 {
+ margin-left: 75%
+ }
+ .medium-up-9 {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ overflow: visible;
+ list-style-type: none
+ }
+ .medium-up-9&gt;
+ li,
+ .medium-up-9&gt;
+ div,
+ .medium-up-9&gt;
+ section {
+ padding: 0 1rem 1rem;
+ -webkit-flex: 0 0 11.11111%;
+ -ms-flex: 0 0 11.11111%;
+ flex: 0 0 11.11111%
+ }
+ }
+
+ @media only screen and (min-width: 40em) {
+ .medium-10 {
+ -webkit-flex: 0 0 83.33333%;
+ -ms-flex: 0 0 83.33333%;
+ flex: 0 0 83.33333%;
+ max-width: 83.33333%
+ }
+ .medium-order-10 {
+ -webkit-order: 10;
+ -ms-flex-order: 10;
+ order: 10
+ }
+ .medium-offset-10 {
+ margin-left: 83.33333%
+ }
+ .medium-up-10 {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ overflow: visible;
+ list-style-type: none
+ }
+ .medium-up-10&gt;
+ li,
+ .medium-up-10&gt;
+ div,
+ .medium-up-10&gt;
+ section {
+ padding: 0 1rem 1rem;
+ -webkit-flex: 0 0 10%;
+ -ms-flex: 0 0 10%;
+ flex: 0 0 10%
+ }
+ }
+
+ @media only screen and (min-width: 40em) {
+ .medium-11 {
+ -webkit-flex: 0 0 91.66667%;
+ -ms-flex: 0 0 91.66667%;
+ flex: 0 0 91.66667%;
+ max-width: 91.66667%
+ }
+ .medium-order-11 {
+ -webkit-order: 11;
+ -ms-flex-order: 11;
+ order: 11
+ }
+ .medium-offset-11 {
+ margin-left: 91.66667%
+ }
+ .medium-up-11 {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ overflow: visible;
+ list-style-type: none
+ }
+ .medium-up-11&gt;
+ li,
+ .medium-up-11&gt;
+ div,
+ .medium-up-11&gt;
+ section {
+ padding: 0 1rem 1rem;
+ -webkit-flex: 0 0 9.09091%;
+ -ms-flex: 0 0 9.09091%;
+ flex: 0 0 9.09091%
+ }
+ }
+
+ @media only screen and (min-width: 40em) {
+ .medium-12 {
+ -webkit-flex: 0 0 100%;
+ -ms-flex: 0 0 100%;
+ flex: 0 0 100%;
+ max-width: 100%
+ }
+ .medium-order-12 {
+ -webkit-order: 12;
+ -ms-flex-order: 12;
+ order: 12
+ }
+ .medium-offset-12 {
+ margin-left: 100%
+ }
+ .medium-up-12 {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ overflow: visible;
+ list-style-type: none
+ }
+ .medium-up-12&gt;
+ li,
+ .medium-up-12&gt;
+ div,
+ .medium-up-12&gt;
+ section {
+ padding: 0 1rem 1rem;
+ -webkit-flex: 0 0 8.33333%;
+ -ms-flex: 0 0 8.33333%;
+ flex: 0 0 8.33333%
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .large-1 {
+ -webkit-flex: 0 0 8.33333%;
+ -ms-flex: 0 0 8.33333%;
+ flex: 0 0 8.33333%;
+ max-width: 8.33333%
+ }
+ .large-order-1 {
+ -webkit-order: 1;
+ -ms-flex-order: 1;
+ order: 1
+ }
+ .large-offset-1 {
+ margin-left: 8.33333%
+ }
+ .large-up-1 {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ overflow: visible;
+ list-style-type: none
+ }
+ .large-up-1&gt;
+ li,
+ .large-up-1&gt;
+ div,
+ .large-up-1&gt;
+ section {
+ padding: 0 1rem 1rem;
+ -webkit-flex: 0 0 100%;
+ -ms-flex: 0 0 100%;
+ flex: 0 0 100%
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .large-2 {
+ -webkit-flex: 0 0 16.66667%;
+ -ms-flex: 0 0 16.66667%;
+ flex: 0 0 16.66667%;
+ max-width: 16.66667%
+ }
+ .large-order-2 {
+ -webkit-order: 2;
+ -ms-flex-order: 2;
+ order: 2
+ }
+ .large-offset-2 {
+ margin-left: 16.66667%
+ }
+ .large-up-2 {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ overflow: visible;
+ list-style-type: none
+ }
+ .large-up-2&gt;
+ li,
+ .large-up-2&gt;
+ div,
+ .large-up-2&gt;
+ section {
+ padding: 0 1rem 1rem;
+ -webkit-flex: 0 0 50%;
+ -ms-flex: 0 0 50%;
+ flex: 0 0 50%
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .large-3 {
+ -webkit-flex: 0 0 25%;
+ -ms-flex: 0 0 25%;
+ flex: 0 0 25%;
+ max-width: 25%
+ }
+ .large-order-3 {
+ -webkit-order: 3;
+ -ms-flex-order: 3;
+ order: 3
+ }
+ .large-offset-3 {
+ margin-left: 25%
+ }
+ .large-up-3 {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ overflow: visible;
+ list-style-type: none
+ }
+ .large-up-3&gt;
+ li,
+ .large-up-3&gt;
+ div,
+ .large-up-3&gt;
+ section {
+ padding: 0 1rem 1rem;
+ -webkit-flex: 0 0 33.33333%;
+ -ms-flex: 0 0 33.33333%;
+ flex: 0 0 33.33333%
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .large-4 {
+ -webkit-flex: 0 0 33.33333%;
+ -ms-flex: 0 0 33.33333%;
+ flex: 0 0 33.33333%;
+ max-width: 33.33333%
+ }
+ .large-order-4 {
+ -webkit-order: 4;
+ -ms-flex-order: 4;
+ order: 4
+ }
+ .large-offset-4 {
+ margin-left: 33.33333%
+ }
+ .large-up-4 {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ overflow: visible;
+ list-style-type: none
+ }
+ .large-up-4&gt;
+ li,
+ .large-up-4&gt;
+ div,
+ .large-up-4&gt;
+ section {
+ padding: 0 1rem 1rem;
+ -webkit-flex: 0 0 25%;
+ -ms-flex: 0 0 25%;
+ flex: 0 0 25%
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .large-5 {
+ -webkit-flex: 0 0 41.66667%;
+ -ms-flex: 0 0 41.66667%;
+ flex: 0 0 41.66667%;
+ max-width: 41.66667%
+ }
+ .large-order-5 {
+ -webkit-order: 5;
+ -ms-flex-order: 5;
+ order: 5
+ }
+ .large-offset-5 {
+ margin-left: 41.66667%
+ }
+ .large-up-5 {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ overflow: visible;
+ list-style-type: none
+ }
+ .large-up-5&gt;
+ li,
+ .large-up-5&gt;
+ div,
+ .large-up-5&gt;
+ section {
+ padding: 0 1rem 1rem;
+ -webkit-flex: 0 0 20%;
+ -ms-flex: 0 0 20%;
+ flex: 0 0 20%
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .large-6 {
+ -webkit-flex: 0 0 50%;
+ -ms-flex: 0 0 50%;
+ flex: 0 0 50%;
+ max-width: 50%
+ }
+ .large-order-6 {
+ -webkit-order: 6;
+ -ms-flex-order: 6;
+ order: 6
+ }
+ .large-offset-6 {
+ margin-left: 50%
+ }
+ .large-up-6 {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ overflow: visible;
+ list-style-type: none
+ }
+ .large-up-6&gt;
+ li,
+ .large-up-6&gt;
+ div,
+ .large-up-6&gt;
+ section {
+ padding: 0 1rem 1rem;
+ -webkit-flex: 0 0 16.66667%;
+ -ms-flex: 0 0 16.66667%;
+ flex: 0 0 16.66667%
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .large-7 {
+ -webkit-flex: 0 0 58.33333%;
+ -ms-flex: 0 0 58.33333%;
+ flex: 0 0 58.33333%;
+ max-width: 58.33333%
+ }
+ .large-order-7 {
+ -webkit-order: 7;
+ -ms-flex-order: 7;
+ order: 7
+ }
+ .large-offset-7 {
+ margin-left: 58.33333%
+ }
+ .large-up-7 {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ overflow: visible;
+ list-style-type: none
+ }
+ .large-up-7&gt;
+ li,
+ .large-up-7&gt;
+ div,
+ .large-up-7&gt;
+ section {
+ padding: 0 1rem 1rem;
+ -webkit-flex: 0 0 14.28571%;
+ -ms-flex: 0 0 14.28571%;
+ flex: 0 0 14.28571%
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .large-8 {
+ -webkit-flex: 0 0 66.66667%;
+ -ms-flex: 0 0 66.66667%;
+ flex: 0 0 66.66667%;
+ max-width: 66.66667%
+ }
+ .large-order-8 {
+ -webkit-order: 8;
+ -ms-flex-order: 8;
+ order: 8
+ }
+ .large-offset-8 {
+ margin-left: 66.66667%
+ }
+ .large-up-8 {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ overflow: visible;
+ list-style-type: none
+ }
+ .large-up-8&gt;
+ li,
+ .large-up-8&gt;
+ div,
+ .large-up-8&gt;
+ section {
+ padding: 0 1rem 1rem;
+ -webkit-flex: 0 0 12.5%;
+ -ms-flex: 0 0 12.5%;
+ flex: 0 0 12.5%
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .large-9 {
+ -webkit-flex: 0 0 75%;
+ -ms-flex: 0 0 75%;
+ flex: 0 0 75%;
+ max-width: 75%
+ }
+ .large-order-9 {
+ -webkit-order: 9;
+ -ms-flex-order: 9;
+ order: 9
+ }
+ .large-offset-9 {
+ margin-left: 75%
+ }
+ .large-up-9 {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ overflow: visible;
+ list-style-type: none
+ }
+ .large-up-9&gt;
+ li,
+ .large-up-9&gt;
+ div,
+ .large-up-9&gt;
+ section {
+ padding: 0 1rem 1rem;
+ -webkit-flex: 0 0 11.11111%;
+ -ms-flex: 0 0 11.11111%;
+ flex: 0 0 11.11111%
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .large-10 {
+ -webkit-flex: 0 0 83.33333%;
+ -ms-flex: 0 0 83.33333%;
+ flex: 0 0 83.33333%;
+ max-width: 83.33333%
+ }
+ .large-order-10 {
+ -webkit-order: 10;
+ -ms-flex-order: 10;
+ order: 10
+ }
+ .large-offset-10 {
+ margin-left: 83.33333%
+ }
+ .large-up-10 {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ overflow: visible;
+ list-style-type: none
+ }
+ .large-up-10&gt;
+ li,
+ .large-up-10&gt;
+ div,
+ .large-up-10&gt;
+ section {
+ padding: 0 1rem 1rem;
+ -webkit-flex: 0 0 10%;
+ -ms-flex: 0 0 10%;
+ flex: 0 0 10%
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .large-11 {
+ -webkit-flex: 0 0 91.66667%;
+ -ms-flex: 0 0 91.66667%;
+ flex: 0 0 91.66667%;
+ max-width: 91.66667%
+ }
+ .large-order-11 {
+ -webkit-order: 11;
+ -ms-flex-order: 11;
+ order: 11
+ }
+ .large-offset-11 {
+ margin-left: 91.66667%
+ }
+ .large-up-11 {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ overflow: visible;
+ list-style-type: none
+ }
+ .large-up-11&gt;
+ li,
+ .large-up-11&gt;
+ div,
+ .large-up-11&gt;
+ section {
+ padding: 0 1rem 1rem;
+ -webkit-flex: 0 0 9.09091%;
+ -ms-flex: 0 0 9.09091%;
+ flex: 0 0 9.09091%
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .large-12 {
+ -webkit-flex: 0 0 100%;
+ -ms-flex: 0 0 100%;
+ flex: 0 0 100%;
+ max-width: 100%
+ }
+ .large-order-12 {
+ -webkit-order: 12;
+ -ms-flex-order: 12;
+ order: 12
+ }
+ .large-offset-12 {
+ margin-left: 100%
+ }
+ .large-up-12 {
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ overflow: visible;
+ list-style-type: none
+ }
+ .large-up-12&gt;
+ li,
+ .large-up-12&gt;
+ div,
+ .large-up-12&gt;
+ section {
+ padding: 0 1rem 1rem;
+ -webkit-flex: 0 0 8.33333%;
+ -ms-flex: 0 0 8.33333%;
+ flex: 0 0 8.33333%
+ }
+ }
+
+ .grid-content .modal .grid-block,
+ section.post-archive .pagination .modal .grid-block {
+ -webkit-flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap
+ }
+
+ .v-align {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-align-items: center;
+ -ms-flex-align: center;
+ align-items: center;
+ -webkit-justify-content: space-between;
+ -ms-flex-pack: justify;
+ justify-content: space-between
+ }
+
+ .v-align .align-top {
+ -webkit-align-self: flex-start;
+ -ms-flex-item-align: start;
+ align-self: flex-start
+ }
+
+ .v-align .align-center {
+ -webkit-align-self: center;
+ -ms-flex-item-align: center;
+ align-self: center
+ }
+
+ .v-align .align-bottom {
+ -webkit-align-self: flex-end;
+ -ms-flex-item-align: end;
+ align-self: flex-end
+ }
+
+ .v-align .small-align-top {
+ -webkit-align-self: flex-start;
+ -ms-flex-item-align: start;
+ align-self: flex-start
+ }
+
+ .v-align .small-align-center {
+ -webkit-align-self: center;
+ -ms-flex-item-align: center;
+ align-self: center
+ }
+
+ .v-align .small-align-bottom {
+ -webkit-align-self: flex-end;
+ -ms-flex-item-align: end;
+ align-self: flex-end
+ }
+
+ @media only screen and (min-width: 40em) {
+ .v-align .medium-align-top {
+ -webkit-align-self: flex-start;
+ -ms-flex-item-align: start;
+ align-self: flex-start
+ }
+ }
+
+ @media only screen and (min-width: 40em) {
+ .v-align .medium-align-center {
+ -webkit-align-self: center;
+ -ms-flex-item-align: center;
+ align-self: center
+ }
+ }
+
+ @media only screen and (min-width: 40em) {
+ .v-align .medium-align-bottom {
+ -webkit-align-self: flex-end;
+ -ms-flex-item-align: end;
+ align-self: flex-end
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .v-align .large-align-top {
+ -webkit-align-self: flex-start;
+ -ms-flex-item-align: start;
+ align-self: flex-start
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .v-align .large-align-center {
+ -webkit-align-self: center;
+ -ms-flex-item-align: center;
+ align-self: center
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .v-align .large-align-bottom {
+ -webkit-align-self: flex-end;
+ -ms-flex-item-align: end;
+ align-self: flex-end
+ }
+ }
+
+ .hide {
+ display: none !important
+ }
+
+ .invisible {
+ visibility: hidden
+ }
+
+ .hide-for-small:not(.ng-hide) {
+ display: block !important;
+ display: none !important
+ }
+
+ .hide-for-small[class*="grid-block"]:not(.ng-hide) {
+ display: -webkit-flex !important;
+ display: -ms-flexbox !important;
+ display: flex !important;
+ display: none !important
+ }
+
+ .show-for-small:not(.ng-hide) {
+ display: none !important;
+ display: block !important
+ }
+
+ .show-for-small[class*="grid-block"]:not(.ng-hide) {
+ display: none !important;
+ display: -webkit-flex !important;
+ display: -ms-flexbox !important;
+ display: flex !important
+ }
+
+ .hide-for-small-only:not(.ng-hide) {
+ display: block !important
+ }
+
+ @media only screen and (min-width: 0em) and (max-width: 39.9375rem) {
+ .hide-for-small-only:not(.ng-hide) {
+ display: none !important
+ }
+ }
+
+ .hide-for-small-only[class*="grid-block"]:not(.ng-hide) {
+ display: -webkit-flex !important;
+ display: -ms-flexbox !important;
+ display: flex !important
+ }
+
+ @media only screen and (min-width: 0em) and (max-width: 39.9375rem) {
+ .hide-for-small-only[class*="grid-block"]:not(.ng-hide) {
+ display: none !important
+ }
+ }
+
+ .show-for-small-only:not(.ng-hide) {
+ display: none !important
+ }
+
+ @media only screen and (min-width: 0em) and (max-width: 39.9375rem) {
+ .show-for-small-only:not(.ng-hide) {
+ display: block !important
+ }
+ }
+
+ .show-for-small-only[class*="grid-block"]:not(.ng-hide) {
+ display: none !important
+ }
+
+ @media only screen and (min-width: 0em) and (max-width: 39.9375rem) {
+ .show-for-small-only[class*="grid-block"]:not(.ng-hide) {
+ display: -webkit-flex !important;
+ display: -ms-flexbox !important;
+ display: flex !important
+ }
+ }
+
+ .hide-for-medium:not(.ng-hide) {
+ display: block !important
+ }
+
+ @media only screen and (min-width: 40em) {
+ .hide-for-medium:not(.ng-hide) {
+ display: none !important
+ }
+ }
+
+ .hide-for-medium[class*="grid-block"]:not(.ng-hide) {
+ display: -webkit-flex !important;
+ display: -ms-flexbox !important;
+ display: flex !important
+ }
+
+ @media only screen and (min-width: 40em) {
+ .hide-for-medium[class*="grid-block"]:not(.ng-hide) {
+ display: none !important
+ }
+ }
+
+ .show-for-medium:not(.ng-hide) {
+ display: none !important
+ }
+
+ @media only screen and (min-width: 40em) {
+ .show-for-medium:not(.ng-hide) {
+ display: block !important
+ }
+ }
+
+ .show-for-medium[class*="grid-block"]:not(.ng-hide) {
+ display: none !important
+ }
+
+ @media only screen and (min-width: 40em) {
+ .show-for-medium[class*="grid-block"]:not(.ng-hide) {
+ display: -webkit-flex !important;
+ display: -ms-flexbox !important;
+ display: flex !important
+ }
+ }
+
+ .hide-for-medium-only:not(.ng-hide) {
+ display: block !important
+ }
+
+ @media only screen and (min-width: 40em) and (max-width: 52.4375rem) {
+ .hide-for-medium-only:not(.ng-hide) {
+ display: none !important
+ }
+ }
+
+ .hide-for-medium-only[class*="grid-block"]:not(.ng-hide) {
+ display: -webkit-flex !important;
+ display: -ms-flexbox !important;
+ display: flex !important
+ }
+
+ @media only screen and (min-width: 40em) and (max-width: 52.4375rem) {
+ .hide-for-medium-only[class*="grid-block"]:not(.ng-hide) {
+ display: none !important
+ }
+ }
+
+ .show-for-medium-only:not(.ng-hide) {
+ display: none !important
+ }
+
+ @media only screen and (min-width: 40em) and (max-width: 52.4375rem) {
+ .show-for-medium-only:not(.ng-hide) {
+ display: block !important
+ }
+ }
+
+ .show-for-medium-only[class*="grid-block"]:not(.ng-hide) {
+ display: none !important
+ }
+
+ @media only screen and (min-width: 40em) and (max-width: 52.4375rem) {
+ .show-for-medium-only[class*="grid-block"]:not(.ng-hide) {
+ display: -webkit-flex !important;
+ display: -ms-flexbox !important;
+ display: flex !important
+ }
+ }
+
+ .hide-for-large:not(.ng-hide) {
+ display: block !important
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .hide-for-large:not(.ng-hide) {
+ display: none !important
+ }
+ }
+
+ .hide-for-large[class*="grid-block"]:not(.ng-hide) {
+ display: -webkit-flex !important;
+ display: -ms-flexbox !important;
+ display: flex !important
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .hide-for-large[class*="grid-block"]:not(.ng-hide) {
+ display: none !important
+ }
+ }
+
+ .show-for-large:not(.ng-hide) {
+ display: none !important
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .show-for-large:not(.ng-hide) {
+ display: block !important
+ }
+ }
+
+ .show-for-large[class*="grid-block"]:not(.ng-hide) {
+ display: none !important
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .show-for-large[class*="grid-block"]:not(.ng-hide) {
+ display: -webkit-flex !important;
+ display: -ms-flexbox !important;
+ display: flex !important
+ }
+ }
+
+ .hide-for-large-only:not(.ng-hide) {
+ display: block !important
+ }
+
+ @media only screen and (min-width: 52.5em) and (max-width: 66.4375rem) {
+ .hide-for-large-only:not(.ng-hide) {
+ display: none !important
+ }
+ }
+
+ .hide-for-large-only[class*="grid-block"]:not(.ng-hide) {
+ display: -webkit-flex !important;
+ display: -ms-flexbox !important;
+ display: flex !important
+ }
+
+ @media only screen and (min-width: 52.5em) and (max-width: 66.4375rem) {
+ .hide-for-large-only[class*="grid-block"]:not(.ng-hide) {
+ display: none !important
+ }
+ }
+
+ .show-for-large-only:not(.ng-hide) {
+ display: none !important
+ }
+
+ @media only screen and (min-width: 52.5em) and (max-width: 66.4375rem) {
+ .show-for-large-only:not(.ng-hide) {
+ display: block !important
+ }
+ }
+
+ .show-for-large-only[class*="grid-block"]:not(.ng-hide) {
+ display: none !important
+ }
+
+ @media only screen and (min-width: 52.5em) and (max-width: 66.4375rem) {
+ .show-for-large-only[class*="grid-block"]:not(.ng-hide) {
+ display: -webkit-flex !important;
+ display: -ms-flexbox !important;
+ display: flex !important
+ }
+ }
+
+ @media only screen and (orientation: portrait) {
+ .hide-for-portrait {
+ display: none !important
+ }
+ .hide-for-portrait[class*="grid-block"] {
+ display: -webkit-flex !important;
+ display: -ms-flexbox !important;
+ display: flex !important
+ }
+ }
+
+ .show-for-portrait {
+ display: none !important
+ }
+
+ @media only screen and (orientation: portrait) {
+ .show-for-portrait {
+ display: block !important
+ }
+ .show-for-portrait[class*="grid-block"] {
+ display: -webkit-flex !important;
+ display: -ms-flexbox !important;
+ display: flex !important
+ }
+ }
+
+ @media only screen and (orientation: landscape) {
+ .hide-for-landscape {
+ display: none !important
+ }
+ .hide-for-landscape[class*="grid-block"] {
+ display: -webkit-flex !important;
+ display: -ms-flexbox !important;
+ display: flex !important
+ }
+ }
+
+ .show-for-landscape {
+ display: none !important
+ }
+
+ @media only screen and (orientation: landscape) {
+ .show-for-landscape {
+ display: block !important
+ }
+ .show-for-landscape[class*="grid-block"] {
+ display: -webkit-flex !important;
+ display: -ms-flexbox !important;
+ display: flex !important
+ }
+ }
+
+ .text-left {
+ text-align: left
+ }
+
+ .small-text-left {
+ text-align: left
+ }
+
+ @media only screen and (min-width: 0em) and (max-width: 39.9375rem) {
+ .small-only-text-left {
+ text-align: left
+ }
+ }
+
+ @media only screen and (min-width: 40em) {
+ .medium-text-left {
+ text-align: left
+ }
+ }
+
+ @media only screen and (min-width: 40em) and (max-width: 52.4375rem) {
+ .medium-only-text-left {
+ text-align: left
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .large-text-left {
+ text-align: left
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) and (max-width: 66.4375rem) {
+ .large-only-text-left {
+ text-align: left
+ }
+ }
+
+ .text-right {
+ text-align: right
+ }
+
+ .small-text-right {
+ text-align: right
+ }
+
+ @media only screen and (min-width: 0em) and (max-width: 39.9375rem) {
+ .small-only-text-right {
+ text-align: right
+ }
+ }
+
+ @media only screen and (min-width: 40em) {
+ .medium-text-right {
+ text-align: right
+ }
+ }
+
+ @media only screen and (min-width: 40em) and (max-width: 52.4375rem) {
+ .medium-only-text-right {
+ text-align: right
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .large-text-right {
+ text-align: right
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) and (max-width: 66.4375rem) {
+ .large-only-text-right {
+ text-align: right
+ }
+ }
+
+ .text-center {
+ text-align: center
+ }
+
+ .small-text-center {
+ text-align: center
+ }
+
+ @media only screen and (min-width: 0em) and (max-width: 39.9375rem) {
+ .small-only-text-center {
+ text-align: center
+ }
+ }
+
+ @media only screen and (min-width: 40em) {
+ .medium-text-center {
+ text-align: center
+ }
+ }
+
+ @media only screen and (min-width: 40em) and (max-width: 52.4375rem) {
+ .medium-only-text-center {
+ text-align: center
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .large-text-center {
+ text-align: center
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) and (max-width: 66.4375rem) {
+ .large-only-text-center {
+ text-align: center
+ }
+ }
+
+ .text-justify {
+ text-align: justify
+ }
+
+ .small-text-justify {
+ text-align: justify
+ }
+
+ @media only screen and (min-width: 0em) and (max-width: 39.9375rem) {
+ .small-only-text-justify {
+ text-align: justify
+ }
+ }
+
+ @media only screen and (min-width: 40em) {
+ .medium-text-justify {
+ text-align: justify
+ }
+ }
+
+ @media only screen and (min-width: 40em) and (max-width: 52.4375rem) {
+ .medium-only-text-justify {
+ text-align: justify
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .large-text-justify {
+ text-align: justify
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) and (max-width: 66.4375rem) {
+ .large-only-text-justify {
+ text-align: justify
+ }
+ }
+
+ .clearfix:before,
+ .clearfix:after {
+ content: " ";
+ display: table
+ }
+
+ .clearfix:after {
+ clear: both
+ }
+
+ .float-left {
+ float: left
+ }
+
+ .float-right {
+ float: right
+ }
+
+ .float-none {
+ float: none
+ }
+
+ .grid-block {
+ overflow: visible
+ }
+
+ .grid-content,
+ section.post-archive .pagination {
+ overflow: visible
+ }
+
+ .wds-avatar {
+ height: 28px;
+ min-width: 28px;
+ width: 28px;
+ border: solid 2px currentColor;
+ border-radius: 50%
+ }
+
+ .wds-button {
+ background-color: #00b7e0;
+ border-color: #00b7e0;
+ border: 1px solid;
+ color: #fff;
+ cursor: pointer;
+ display: inline-block;
+ font-size: 12px;
+ font-weight: 600;
+ letter-spacing: .15px;
+ line-height: 1.3em;
+ outline: none;
+ padding: 16px 18px 15px;
+ text-align: center;
+ text-decoration: none;
+ text-transform: uppercase;
+ transition-duration: 300ms;
+ transition-property: background-color, border-color, color;
+ -webkit-appearance: none;
+ -webkit-border-radius: 0
+ }
+
+ .wds-button:focus:not(:disabled),
+ .wds-button:hover:not(:disabled),
+ .wds-button:active,
+ .wds-button.wds-is-active {
+ background-color: #00647a;
+ border-color: #00647a
+ }
+
+ .wds-button:disabled,
+ .wds-button.wds-is-disabled {
+ cursor: default;
+ opacity: .5
+ }
+
+ .wds-button.wds-is-secondary {
+ background-color: transparent;
+ color: #00b7e0
+ }
+
+ .wds-button.wds-is-secondary:focus:not(:disabled),
+ .wds-button.wds-is-secondary:hover:not(:disabled),
+ .wds-button.wds-is-secondary:active,
+ .wds-button.wds-is-secondary.wds-is-active {
+ background-color: transparent;
+ color: #00647a
+ }
+
+ .wds-button.wds-is-squished {
+ font-size: 10px;
+ padding: 10px 12px 9px
+ }
+
+ .wds-button.wds-is-stretched {
+ padding: 28px 18px 27px
+ }
+
+ .wds-button.wds-is-full-width {
+ box-sizing: border-box;
+ width: 100%
+ }
+
+ .wds-button.wds-is-square {
+ height: 45px;
+ min-width: 45px;
+ width: 45px;
+ -webkit-align-items: center;
+ -ms-flex-align: center;
+ align-items: center;
+ display: -webkit-inline-flex;
+ display: -ms-inline-flexbox;
+ display: inline-flex;
+ -webkit-justify-content: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ padding: 0
+ }
+
+ .wds-button.wds-is-text {
+ background-color: transparent;
+ border: 0;
+ color: #00b7e0
+ }
+
+ .wds-button.wds-is-text:focus:not(:disabled),
+ .wds-button.wds-is-text:hover:not(:disabled),
+ .wds-button.wds-is-text:active,
+ .wds-button.wds-is-text.wds-is-active {
+ background-color: transparent;
+ color: #00647a
+ }
+
+ .wds-button.wds-is-facebook-color {
+ background-color: #3b5998;
+ border-color: #3b5998
+ }
+
+ .wds-button.wds-is-facebook-color:focus:not(:disabled),
+ .wds-button.wds-is-facebook-color:hover:not(:disabled),
+ .wds-button.wds-is-facebook-color:active,
+ .wds-button.wds-is-facebook-color.wds-is-active {
+ background-color: #1e2e4f;
+ border-color: #1e2e4f
+ }
+
+ .wds-button.wds-is-googleplus-color {
+ background-color: #dd4b39;
+ border-color: #dd4b39
+ }
+
+ .wds-button.wds-is-googleplus-color:focus:not(:disabled),
+ .wds-button.wds-is-googleplus-color:hover:not(:disabled),
+ .wds-button.wds-is-googleplus-color:active,
+ .wds-button.wds-is-googleplus-color.wds-is-active {
+ background-color: #96271a;
+ border-color: #96271a
+ }
+
+ .wds-button.wds-is-line-color {
+ background-color: #00c300;
+ border-color: #00c300
+ }
+
+ .wds-button.wds-is-line-color:focus:not(:disabled),
+ .wds-button.wds-is-line-color:hover:not(:disabled),
+ .wds-button.wds-is-line-color:active,
+ .wds-button.wds-is-line-color.wds-is-active {
+ background-color: #005d00;
+ border-color: #005d00
+ }
+
+ .wds-button.wds-is-linkedin-color {
+ background-color: #0077b5;
+ border-color: #0077b5
+ }
+
+ .wds-button.wds-is-linkedin-color:focus:not(:disabled),
+ .wds-button.wds-is-linkedin-color:hover:not(:disabled),
+ .wds-button.wds-is-linkedin-color:active,
+ .wds-button.wds-is-linkedin-color.wds-is-active {
+ background-color: #00344f;
+ border-color: #00344f
+ }
+
+ .wds-button.wds-is-meneame-color {
+ background-color: #ff6400;
+ border-color: #ff6400
+ }
+
+ .wds-button.wds-is-meneame-color:focus:not(:disabled),
+ .wds-button.wds-is-meneame-color:hover:not(:disabled),
+ .wds-button.wds-is-meneame-color:active,
+ .wds-button.wds-is-meneame-color.wds-is-active {
+ background-color: #993c00;
+ border-color: #993c00
+ }
+
+ .wds-button.wds-is-nk-color {
+ background-color: #4077a7;
+ border-color: #4077a7
+ }
+
+ .wds-button.wds-is-nk-color:focus:not(:disabled),
+ .wds-button.wds-is-nk-color:hover:not(:disabled),
+ .wds-button.wds-is-nk-color:active,
+ .wds-button.wds-is-nk-color.wds-is-active {
+ background-color: #24425d;
+ border-color: #24425d
+ }
+
+ .wds-button.wds-is-odnoklassniki-color {
+ background-color: #f96900;
+ border-color: #f96900
+ }
+
+ .wds-button.wds-is-odnoklassniki-color:focus:not(:disabled),
+ .wds-button.wds-is-odnoklassniki-color:hover:not(:disabled),
+ .wds-button.wds-is-odnoklassniki-color:active,
+ .wds-button.wds-is-odnoklassniki-color.wds-is-active {
+ background-color: #933e00;
+ border-color: #933e00
+ }
+
+ .wds-button.wds-is-reddit-color {
+ background-color: #ff4500;
+ border-color: #ff4500
+ }
+
+ .wds-button.wds-is-reddit-color:focus:not(:disabled),
+ .wds-button.wds-is-reddit-color:hover:not(:disabled),
+ .wds-button.wds-is-reddit-color:active,
+ .wds-button.wds-is-reddit-color.wds-is-active {
+ background-color: #992900;
+ border-color: #992900
+ }
+
+ .wds-button.wds-is-tumblr-color {
+ background-color: #34465d;
+ border-color: #34465d
+ }
+
+ .wds-button.wds-is-tumblr-color:focus:not(:disabled),
+ .wds-button.wds-is-tumblr-color:hover:not(:disabled),
+ .wds-button.wds-is-tumblr-color:active,
+ .wds-button.wds-is-tumblr-color.wds-is-active {
+ background-color: #0f151c;
+ border-color: #0f151c
+ }
+
+ .wds-button.wds-is-twitter-color {
+ background-color: #1da1f2;
+ border-color: #1da1f2
+ }
+
+ .wds-button.wds-is-twitter-color:focus:not(:disabled),
+ .wds-button.wds-is-twitter-color:hover:not(:disabled),
+ .wds-button.wds-is-twitter-color:active,
+ .wds-button.wds-is-twitter-color.wds-is-active {
+ background-color: #0967a0;
+ border-color: #0967a0
+ }
+
+ .wds-button.wds-is-vkontakte-color {
+ background-color: #587ca3;
+ border-color: #587ca3
+ }
+
+ .wds-button.wds-is-vkontakte-color:focus:not(:disabled),
+ .wds-button.wds-is-vkontakte-color:hover:not(:disabled),
+ .wds-button.wds-is-vkontakte-color:active,
+ .wds-button.wds-is-vkontakte-color.wds-is-active {
+ background-color: #344a61;
+ border-color: #344a61
+ }
+
+ .wds-button.wds-is-wykop-color {
+ background-color: #fb803f;
+ border-color: #fb803f
+ }
+
+ .wds-button.wds-is-wykop-color:focus:not(:disabled),
+ .wds-button.wds-is-wykop-color:hover:not(:disabled),
+ .wds-button.wds-is-wykop-color:active,
+ .wds-button.wds-is-wykop-color.wds-is-active {
+ background-color: #d04b04;
+ border-color: #d04b04
+ }
+
+ .wds-button.wds-is-weibo-color {
+ background-color: #ff8140;
+ border-color: #ff8140
+ }
+
+ .wds-button.wds-is-weibo-color:focus:not(:disabled),
+ .wds-button.wds-is-weibo-color:hover:not(:disabled),
+ .wds-button.wds-is-weibo-color:active,
+ .wds-button.wds-is-weibo-color.wds-is-active {
+ background-color: #d94a00;
+ border-color: #d94a00
+ }
+
+ .wds-dropdown {
+ display: inline-block;
+ position: relative
+ }
+
+ .wds-dropdown__toggle {
+ cursor: pointer;
+ position: relative;
+ z-index: 2
+ }
+
+ .wds-dropdown__toggle-chevron {
+ margin-left: 5px
+ }
+
+ .wds-dropdown__content {
+ background-color: #fff;
+ box-shadow: 0 0 10px 0 rgba(26, 26, 26, 0.2);
+ display: none;
+ left: 0;
+ position: absolute;
+ top: 100%;
+ z-index: 1
+ }
+
+ .wds-dropdown__content.wds-is-dark {
+ box-shadow: 0 0 20px 0 rgba(26, 26, 26, 0.3)
+ }
+
+ .wds-dropdown__content.wds-is-right-aligned {
+ left: auto;
+ right: 0
+ }
+
+ .wds-dropdown.wds-is-active .wds-dropdown__content {
+ display: inline-block
+ }
+
+ .wds-dropdown.wds-is-active .wds-dropdown__toggle-chevron {
+ -webkit-transform: rotate(180deg);
+ transform: rotate(180deg)
+ }
+
+ .wds-icon {
+ fill: currentColor;
+ height: 24px;
+ min-width: 24px;
+ width: 24px
+ }
+
+ .wds-icon-small {
+ height: 18px;
+ min-width: 18px;
+ width: 18px
+ }
+
+ .wds-icon-tiny {
+ height: 12px;
+ min-width: 12px;
+ width: 12px
+ }
+
+ .wds-list {
+ list-style-type: none;
+ margin: 0;
+ padding: 7px 18px
+ }
+
+ .wds-list&gt;
+ li {
+ font-size: 14px;
+ line-height: 1em;
+ padding: 11px 0
+ }
+
+ .wds-list.wds-has-big-items {
+ padding-bottom: 2px;
+ padding-top: 2px
+ }
+
+ .wds-list.wds-has-big-items&gt;
+ li {
+ font-size: 16px;
+ padding-bottom: 16px;
+ padding-top: 16px
+ }
+
+ .wds-list.wds-has-lines-between&gt;
+ li {
+ border-bottom: solid 1px #e6e6e6
+ }
+
+ .wds-list.wds-has-lines-between&gt;
+ li:last-child {
+ border: 0
+ }
+
+ .wds-list.wds-has-ellipsis&gt;
+ li,
+ .wds-list.wds-has-ellipsis.wds-is-linked&gt;
+ li&gt;
+ a {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap
+ }
+
+ .wds-list.wds-is-linked&gt;
+ li {
+ padding: 0
+ }
+
+ .wds-list.wds-is-linked&gt;
+ li&gt;
+ a {
+ display: block;
+ padding: 11px 0
+ }
+
+ .wds-global-footer {
+ background-color: #39424d;
+ box-sizing: border-box;
+ color: #fff;
+ margin-top: 30px;
+ word-wrap: break-word
+ }
+
+ .wds-global-footer * {
+ box-sizing: inherit
+ }
+
+ .wds-global-footer ul {
+ list-style-type: none;
+ margin: 0;
+ padding: 0
+ }
+
+ .wds-global-footer__header-wrapper {
+ display: block;
+ width: 100%
+ }
+
+ .wds-global-footer__header {
+ -webkit-align-items: center;
+ -ms-flex-align: center;
+ align-items: center;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-justify-content: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ margin: 0;
+ padding: 30px 0 25px
+ }
+
+ .wds-global-footer__bottom-bar {
+ background: rgba(38, 38, 38, 0.5);
+ font-size: 12px;
+ line-height: 1.3em;
+ min-height: 50px;
+ padding: 0 20px;
+ text-align: center
+ }
+
+ .wds-global-footer__bottom-bar a,
+ .wds-global-footer__bottom-bar a:visited {
+ color: #00b7e0;
+ text-decoration: none
+ }
+
+ .wds-global-footer__bottom-bar a:hover {
+ color: #fff
+ }
+
+ .wds-global-footer__bottom-bar-row {
+ margin: 0 auto
+ }
+
+ .wds-global-footer__bottom-bar-row.wds-has-border-top {
+ border-top: 1px solid #656e78
+ }
+
+ .wds-global-footer__bottom-bar-row.wds-has-padding {
+ padding: 16px 0
+ }
+
+ .wds-global-footer__button-link {
+ display: inline-block;
+ font-weight: bold;
+ letter-spacing: .3px;
+ line-height: 1.3em;
+ min-height: 45px;
+ padding: 14px 18px;
+ text-decoration: none;
+ text-transform: uppercase
+ }
+
+ .wds-global-footer__header-logo {
+ height: 44px;
+ width: 184px
+ }
+
+ .wds-global-footer__fandom-logo {
+ fill: #fff;
+ height: 26px;
+ width: 122px
+ }
+
+ .wds-global-footer__wikia-logo {
+ fill: #fff;
+ height: 26px;
+ width: 67px
+ }
+
+ .wds-global-footer__wikia-logo.wds-is-large {
+ height: 30px;
+ padding: 0;
+ width: 84px
+ }
+
+ .wds-global-footer__home-of-fandom {
+ border-bottom: 1px solid #c5ced9;
+ border-top: 1px solid #c5ced9;
+ color: #7f90a1;
+ display: block;
+ font-size: 12px;
+ font-weight: bold;
+ letter-spacing: .5px;
+ margin-left: 13px;
+ margin-top: 5px;
+ padding: 3px 0;
+ text-transform: uppercase;
+ white-space: nowrap
+ }
+
+ .wds-global-footer__main {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: column;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ -webkit-flex-wrap: wrap;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap
+ }
+
+ .wds-global-footer__fandom-header,
+ .wds-global-footer__wikia-header {
+ margin: 0
+ }
+
+ .wds-global-footer__fandom-sections,
+ .wds-global-footer__wikia-sections {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-wrap: wrap;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap
+ }
+
+ .wds-global-footer__fandom-section,
+ .wds-global-footer__wikia-section {
+ border-top: 4px solid #656e78;
+ margin-right: 55px;
+ padding-top: 8px
+ }
+
+ .wds-global-footer__link,
+ .wds-global-footer__link:active,
+ .wds-global-footer__link:visited,
+ .wds-global-footer__link:focus {
+ color: #c5ced9;
+ font-size: 14px;
+ font-weight: normal;
+ line-height: 1.3em;
+ text-decoration: none
+ }
+
+ .wds-global-footer__link:hover {
+ color: #fff
+ }
+
+ .wds-global-footer__links-list-item {
+ margin-bottom: 8px
+ }
+
+ .wds-global-footer__fandom-section.wds-is-fandom-overview {
+ border: 0;
+ padding: 0
+ }
+
+ .wds-global-footer__fandom-section.wds-is-fandom-overview .wds-global-footer__link {
+ -webkit-align-items: center;
+ -ms-flex-align: center;
+ align-items: center;
+ border-top: 4px solid #656e78;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ font-size: 18px;
+ font-weight: bold;
+ -webkit-justify-content: space-between;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+ margin: 0;
+ padding: 6px 0 28px;
+ text-decoration: none
+ }
+
+ .wds-global-footer__fandom-section.wds-is-fandom-overview .wds-global-footer__link.wds-is-games {
+ border-color: #94d11f
+ }
+
+ .wds-global-footer__fandom-section.wds-is-fandom-overview .wds-global-footer__link.wds-is-movies {
+ border-color: #09d3bf
+ }
+
+ .wds-global-footer__fandom-section.wds-is-fandom-overview .wds-global-footer__link.wds-is-tv {
+ border-color: #00b7e0
+ }
+
+ .wds-global-footer__fandom-section.wds-is-fandom-overview .wds-global-footer__image {
+ -webkit-transform: rotate(180deg);
+ transform: rotate(180deg)
+ }
+
+ .wds-global-footer__fandom-section.wds-is-follow-us .wds-global-footer__links-list {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap
+ }
+
+ .wds-global-footer__fandom-section.wds-is-follow-us .wds-global-footer__link {
+ background: no-repeat center;
+ background-size: 24px;
+ display: inline-block;
+ height: 24px;
+ margin-right: 20px;
+ width: 24px
+ }
+
+ .wds-global-footer__fandom-section.wds-is-follow-us .wds-global-footer__image {
+ color: #656e78
+ }
+
+ .wds-global-footer__fandom-section.wds-is-follow-us .wds-global-footer__image:hover {
+ color: #fff
+ }
+
+ .wds-global-footer__wikia-section.wds-is-create-wiki .wds-global-footer__link {
+ border: solid 1px #c5ced9;
+ color: #c5ced9;
+ display: inline-block;
+ font-size: 12px;
+ font-weight: bold;
+ letter-spacing: .3px;
+ line-height: 1.3em;
+ margin-top: 13px;
+ padding: 14px 18px;
+ text-decoration: none;
+ text-transform: uppercase
+ }
+
+ .wds-global-footer__wikia-section.wds-is-create-wiki .wds-global-footer__link:hover {
+ color: #fff
+ }
+
+ .wds-global-footer__wikia-section.wds-is-community-apps .wds-global-footer__links-list {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex
+ }
+
+ .wds-global-footer__wikia-section.wds-is-community-apps .wds-global-footer__link {
+ display: block;
+ line-height: 1.3em;
+ margin-top: 6px;
+ width: 119px
+ }
+
+ .wds-global-footer__wikia-section.wds-is-community-apps .wds-global-footer__image {
+ height: 35px;
+ width: 119px
+ }
+
+ .wds-global-footer__section-header {
+ color: #fff;
+ font-size: 18px;
+ font-weight: bold;
+ margin-bottom: 10px;
+ margin-top: 0;
+ min-height: 24px;
+ padding: 0
+ }
+
+ .wds-global-footer__section-description {
+ color: #fff;
+ font-size: 14px;
+ line-height: 1.3em;
+ margin: 0;
+ padding: 0
+ }
+
+ @media only screen and (max-width: 1083px) {
+ .wds-global-footer__main {
+ margin: 0 20px
+ }
+ .wds-global-footer__fandom-header {
+ margin-bottom: 29px;
+ margin-top: 38px
+ }
+ .wds-global-footer__wikia-header {
+ margin-bottom: 29px;
+ margin-top: 61px
+ }
+ .wds-global-footer__fandom-section,
+ .wds-global-footer__wikia-section {
+ margin: 0;
+ width: 100%
+ }
+ .wds-global-footer__fandom-section.wds-is-fandom-overview .wds-global-footer__links-list-item {
+ margin-bottom: 0
+ }
+ .wds-global-footer__fandom-section.wds-is-follow-us {
+ margin-bottom: 20px
+ }
+ .wds-global-footer__fandom-section.wds-is-follow-us .wds-global-footer__links-list-item {
+ margin-bottom: 0
+ }
+ .wds-global-footer__fandom-section.wds-is-follow-us .wds-global-footer__link {
+ height: 42px;
+ margin-right: 10px;
+ width: 42px
+ }
+ .wds-global-footer__wikia-section {
+ margin-bottom: 20px
+ }
+ .wds-global-footer__wikia-section.wds-is-company-overview {
+ width: 50%
+ }
+ .wds-global-footer__wikia-section.wds-is-site-overview {
+ padding-top: 42px;
+ width: 50%
+ }
+ .wds-global-footer__wikia-section.wds-is-create-wiki {
+ display: none
+ }
+ .wds-global-footer__wikia-section.wds-is-community-apps .wds-global-footer__links-list {
+ margin-bottom: 0;
+ margin-top: 5px
+ }
+ .wds-global-footer__wikia-section.wds-is-community-apps .wds-global-footer__link {
+ margin-right: 25px
+ }
+ .wds-global-footer.wds-is-en .wds-global-footer__fandom-section.wds-is-follow-us {
+ margin-bottom: 0
+ }
+ .wds-global-footer__links-list-item {
+ margin-bottom: 20px
+ }
+ }
+
+ @media only screen and (min-width: 1084px) {
+ .wds-global-footer__main {
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ margin: 0 auto;
+ padding-bottom: 40px;
+ width: 1024px
+ }
+ .wds-global-footer__bottom-bar {
+ padding: 0
+ }
+ .wds-global-footer__bottom-bar-row {
+ width: 1024px
+ }
+ .wds-global-footer__fandom-header,
+ .wds-global-footer__wikia-header {
+ height: 26px;
+ margin-bottom: 35px;
+ margin-top: 47px
+ }
+ .wds-global-footer__header {
+ padding: 40px 0 35px
+ }
+ .wds-global-footer__fandom-header {
+ -webkit-order: 1;
+ -ms-flex-order: 1;
+ order: 1;
+ width: 25%
+ }
+ .wds-global-footer__fandom-sections {
+ -webkit-flex-direction: column;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ -webkit-order: 3;
+ -ms-flex-order: 3;
+ order: 3;
+ width: 25%
+ }
+ .wds-global-footer__wikia-header {
+ -webkit-order: 2;
+ -ms-flex-order: 2;
+ order: 2;
+ width: 75%
+ }
+ .wds-global-footer__wikia-sections {
+ -webkit-align-content: flex-start;
+ -ms-flex-line-pack: start;
+ align-content: flex-start;
+ -webkit-order: 4;
+ -ms-flex-order: 4;
+ order: 4;
+ width: 75%
+ }
+ .wds-global-footer__fandom-section {
+ width: 200px
+ }
+ .wds-global-footer__wikia-section {
+ padding-bottom: 8px
+ }
+ .wds-global-footer__wikia-section.wds-is-company-overview {
+ margin-right: 50px;
+ min-height: 210px;
+ -webkit-order: 1;
+ -ms-flex-order: 1;
+ order: 1;
+ width: 124px
+ }
+ .wds-global-footer__wikia-section.wds-is-site-overview {
+ margin-right: 50px;
+ -webkit-order: 4;
+ -ms-flex-order: 4;
+ order: 4;
+ width: 124px
+ }
+ .wds-global-footer__wikia-section.wds-is-community {
+ min-height: 210px;
+ -webkit-order: 2;
+ -ms-flex-order: 2;
+ order: 2;
+ width: 290px
+ }
+ .wds-global-footer__wikia-section.wds-is-create-wiki {
+ display: block;
+ -webkit-order: 5;
+ -ms-flex-order: 5;
+ order: 5;
+ width: 290px
+ }
+ .wds-global-footer__wikia-section.wds-is-community-apps {
+ margin-right: 0;
+ min-height: 210px;
+ -webkit-order: 3;
+ -ms-flex-order: 3;
+ order: 3;
+ width: 200px
+ }
+ .wds-global-footer__wikia-section.wds-is-community-apps .wds-global-footer__links-list {
+ -webkit-flex-direction: column;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ margin-top: 5px
+ }
+ .wds-global-footer__wikia-section.wds-is-advertise {
+ margin-right: 0;
+ -webkit-order: 6;
+ -ms-flex-order: 6;
+ order: 6;
+ width: 200px
+ }
+ }
+
+ .wds-global-navigation {
+ background-color: #fff;
+ border-image: linear-gradient(to right, #39424d 40%, #656e78 40%) 1 0 0;
+ border-top: 6px solid #656e78;
+ border-width: 6px 0 0;
+ box-shadow: 0 1px 0 0 #ccc;
+ position: relative
+ }
+
+ .wds-global-navigation__dropdown-toggle {
+ -webkit-align-items: center;
+ -ms-flex-align: center;
+ align-items: center;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex: 1 1 auto;
+ -ms-flex: 1 1 auto;
+ flex: 1 1 auto;
+ height: 49px;
+ -webkit-justify-content: center;
+ -ms-flex-pack: center;
+ justify-content: center
+ }
+
+ .wds-global-navigation__dropdown-content {
+ color: #39424d;
+ min-width: 190px;
+ top: calc(100% + 1px);
+ z-index: -1
+ }
+
+ .wds-global-navigation__dropdown-link {
+ color: #39424d;
+ text-decoration: none;
+ transition: color 200ms
+ }
+
+ .wds-global-navigation__dropdown-link:active,
+ .wds-global-navigation__dropdown-link:hover,
+ .wds-global-navigation__dropdown-link.wds-is-active {
+ color: #00b7e0
+ }
+
+ .wds-global-navigation__content-bar {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ height: 49px;
+ margin: 0 auto;
+ position: relative;
+ width: 768px;
+ z-index: 1
+ }
+
+ .wds-global-navigation__account-menu,
+ .wds-global-navigation__link,
+ .wds-global-navigation__logo,
+ .wds-global-navigation__notifications-menu,
+ .wds-global-navigation__search,
+ .wds-global-navigation__start-a-wiki,
+ .wds-global-navigation__user-menu,
+ .wds-global-navigation__wikis-menu {
+ -webkit-align-items: center;
+ -ms-flex-align: center;
+ align-items: center;
+ background-color: #fff;
+ border-top: 6px solid #656e78;
+ color: #39424d;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ font-size: 14px;
+ height: 49px;
+ -webkit-justify-content: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ margin-top: -6px;
+ padding: 0 8px;
+ text-decoration: none;
+ white-space: nowrap
+ }
+
+ .wds-global-navigation__account-menu,
+ .wds-global-navigation__link,
+ .wds-global-navigation__notifications-menu,
+ .wds-global-navigation__user-menu,
+ .wds-global-navigation__wikis-menu {
+ transition-duration: 200ms;
+ transition-property: background-color, border-color, color
+ }
+
+ .wds-global-navigation__account-menu:hover,
+ .wds-global-navigation__link:hover,
+ .wds-global-navigation__notifications-menu:hover,
+ .wds-global-navigation__user-menu:hover,
+ .wds-global-navigation__wikis-menu:hover {
+ color: #00b7e0
+ }
+
+ .wds-global-navigation__account-menu:active,
+ .wds-global-navigation__account-menu.wds-is-active,
+ .wds-global-navigation__link:active,
+ .wds-global-navigation__link.wds-is-active,
+ .wds-global-navigation__notifications-menu:active,
+ .wds-global-navigation__notifications-menu.wds-is-active,
+ .wds-global-navigation__user-menu:active,
+ .wds-global-navigation__user-menu.wds-is-active,
+ .wds-global-navigation__wikis-menu:active,
+ .wds-global-navigation__wikis-menu.wds-is-active {
+ background-color: #656e78;
+ border-color: #363b41;
+ color: #fff
+ }
+
+ .wds-global-navigation__logo {
+ border-top: 6px solid #39424d
+ }
+
+ .wds-global-navigation__logo-fandom {
+ height: 100%;
+ padding-bottom: 4px;
+ width: 230px
+ }
+
+ .wds-global-navigation__logo-image {
+ height: 100%
+ }
+
+ .wds-global-navigation__logo-image.wds-is-wds-company-logo-fandom {
+ fill: #39424d;
+ padding-bottom: 4px;
+ width: 120px
+ }
+
+ .wds-global-navigation__logo-image.wds-is-wds-company-logo-powered-by-wikia {
+ margin: 0 1px 2px 11px;
+ width: 98px
+ }
+
+ .wds-global-navigation__logo-image.wds-is-wds-company-logo-wikia-org {
+ width: 105px
+ }
+
+ .wds-global-navigation__links-and-search {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex: 4 1 auto;
+ -ms-flex: 4 1 auto;
+ flex: 4 1 auto
+ }
+
+ .wds-global-navigation__link,
+ .wds-global-navigation__wikis-menu {
+ transition-duration: 200ms;
+ transition-property: background-color, color, font-size, padding, -webkit-flex;
+ transition-property: background-color, color, flex, font-size, padding;
+ transition-property: background-color, color, flex, font-size, padding, -webkit-flex, -ms-flex
+ }
+
+ .wds-global-navigation__link {
+ -webkit-flex: 1 1 auto;
+ -ms-flex: 1 1 auto;
+ flex: 1 1 auto
+ }
+
+ .wds-global-navigation__link.wds-is-games {
+ border-color: #94d11f
+ }
+
+ .wds-global-navigation__link.wds-is-games:active,
+ .wds-global-navigation__link.wds-is-games.wds-is-active {
+ background-color: #94d11f;
+ border-color: #75a518
+ }
+
+ .wds-global-navigation__link.wds-is-movies {
+ border-color: #09d3bf
+ }
+
+ .wds-global-navigation__link.wds-is-movies:active,
+ .wds-global-navigation__link.wds-is-movies.wds-is-active {
+ background-color: #09d3bf;
+ border-color: #07a293
+ }
+
+ .wds-global-navigation__link.wds-is-tv {
+ border-color: #00b7e0
+ }
+
+ .wds-global-navigation__link.wds-is-tv:active,
+ .wds-global-navigation__link.wds-is-tv.wds-is-active {
+ background-color: #00b7e0;
+ border-color: #008dad
+ }
+
+ .wds-global-navigation__wikis-menu {
+ -webkit-flex: 0 1 auto;
+ -ms-flex: 0 1 auto;
+ flex: 0 1 auto
+ }
+
+ .wds-global-navigation__search {
+ -webkit-flex: 0 1 auto;
+ -ms-flex: 0 1 auto;
+ flex: 0 1 auto;
+ transition: -webkit-flex 200ms;
+ transition: flex 200ms;
+ transition: flex 200ms, -webkit-flex 200ms, -ms-flex 200ms
+ }
+
+ .wds-global-navigation__search-input-wrapper {
+ border: solid transparent;
+ border-width: 0 0 1px;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex: 1 1 auto;
+ -ms-flex: 1 1 auto;
+ flex: 1 1 auto;
+ height: 28px;
+ transition: border-bottom-color 200ms
+ }
+
+ .wds-global-navigation__search-label {
+ -webkit-align-items: center;
+ -ms-flex-align: center;
+ align-items: center;
+ background-color: #fff;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex: 1 1 auto;
+ -ms-flex: 1 1 auto;
+ flex: 1 1 auto;
+ position: relative;
+ z-index: 2
+ }
+
+ .wds-global-navigation__search-label-icon {
+ cursor: pointer;
+ transition: color 200ms;
+ z-index: 1
+ }
+
+ .wds-global-navigation__search-label-icon:hover {
+ color: #00b7e0
+ }
+
+ .wds-global-navigation__search-input {
+ -webkit-appearance: none;
+ border: 0;
+ box-sizing: border-box;
+ color: #333;
+ -webkit-flex: 1 1 auto;
+ -ms-flex: 1 1 auto;
+ flex: 1 1 auto;
+ font-size: 14px;
+ height: 100%;
+ left: 0;
+ max-width: 100%;
+ padding: 3px 4px;
+ padding-left: 20px;
+ position: absolute;
+ right: 0;
+ top: 0;
+ transition: padding 200ms;
+ width: 100%
+ }
+
+ .wds-global-navigation__search-input::-webkit-search-decoration,
+ .wds-global-navigation__search-input::-webkit-search-cancel-button {
+ display: none
+ }
+
+ .wds-global-navigation__search-input:focus {
+ outline: none
+ }
+
+ .wds-global-navigation__search-input::-webkit-input-placeholder {
+ color: transparent;
+ opacity: 1;
+ transition: color 200ms
+ }
+
+ .wds-global-navigation__search-input::-moz-placeholder {
+ color: transparent;
+ opacity: 1;
+ transition: color 200ms
+ }
+
+ .wds-global-navigation__search-input:-ms-input-placeholder {
+ color: transparent;
+ opacity: 1;
+ transition: color 200ms
+ }
+
+ .wds-global-navigation__search-input::placeholder {
+ color: transparent;
+ opacity: 1;
+ transition: color 200ms
+ }
+
+ .wds-global-navigation__search-input::-ms-clear {
+ display: none
+ }
+
+ .wds-global-navigation__search-close {
+ margin: 0;
+ max-width: 0;
+ opacity: 0;
+ padding: 0;
+ transition-duration: 50ms;
+ transition-property: max-width, opacity, padding;
+ z-index: 2
+ }
+
+ .wds-global-navigation__search-close-icon {
+ color: #999;
+ display: block
+ }
+
+ .wds-global-navigation__search-submit {
+ border-width: 0;
+ max-width: 0;
+ overflow: hidden;
+ padding: 0;
+ transition-duration: 50ms;
+ transition-property: max-width, padding;
+ z-index: 2
+ }
+
+ .wds-global-navigation__search-submit-icon {
+ display: block;
+ -webkit-transform: rotate(180deg);
+ transform: rotate(180deg)
+ }
+
+ .wds-global-navigation__search-suggestions {
+ right: 0;
+ top: calc(100% + 1px)
+ }
+
+ .wds-global-navigation__account-menu-caption {
+ display: none;
+ margin-left: 5px
+ }
+
+ .wds-global-navigation__account-menu-dropdown-caption {
+ font-size: 12px;
+ padding-bottom: 10px;
+ text-align: center
+ }
+
+ .wds-global-navigation__notifications-menu {
+ padding-right: 0;
+ position: relative;
+ width: 50px
+ }
+
+ .wds-global-navigation__notifications-menu-counter {
+ -webkit-align-items: center;
+ -ms-flex-align: center;
+ align-items: center;
+ background-color: #00b7e0;
+ border: 1px solid #fff;
+ border-radius: 9px;
+ box-sizing: border-box;
+ color: #fff;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ font-size: 10px;
+ height: 18px;
+ -webkit-justify-content: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ left: -1px;
+ min-width: 18px;
+ padding: 0 4px;
+ position: absolute;
+ top: 8px
+ }
+
+ html[lang^='zh'] .wds-global-navigation__start-a-wiki-button {
+ font-size: 12px;
+ font-weight: 400;
+ padding: 9px 12px 8px
+ }
+
+ .wds-global-navigation__start-a-wiki-icon {
+ height: 14px;
+ min-width: 14px;
+ width: 14px;
+ display: none
+ }
+
+ .wds-global-navigation__partner-slot {
+ border-left: 1px solid #c5ced9;
+ display: none;
+ height: 100%;
+ max-width: 80px;
+ position: absolute;
+ right: 0;
+ top: 0
+ }
+
+ @media (min-width: 1280px) {
+ .wds-global-navigation__partner-slot {
+ -webkit-align-items: center;
+ -ms-flex-align: center;
+ align-items: center;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex
+ }
+ }
+
+ .wds-global-navigation__partner-slot-link {
+ padding: 10px
+ }
+
+ .wds-global-navigation__partner-slot-image {
+ max-width: 60px;
+ max-height: 29px;
+ vertical-align: middle
+ }
+
+ .wds-global-navigation:not(.wds-search-is-active) .wds-global-navigation__search-suggestions {
+ display: none
+ }
+
+ .wds-global-navigation.wds-search-is-always-visible .wds-global-navigation__search-input {
+ padding: 3px 4px;
+ position: relative;
+ top: auto
+ }
+
+ .wds-global-navigation.wds-search-is-always-visible .wds-global-navigation__search-label-icon:hover {
+ color: #39424d
+ }
+
+ .wds-global-navigation.wds-search-is-always-visible .wds-global-navigation__search-input::-webkit-input-placeholder {
+ color: #39424d
+ }
+
+ .wds-global-navigation.wds-search-is-always-visible .wds-global-navigation__search-input::-moz-placeholder {
+ color: #39424d
+ }
+
+ .wds-global-navigation.wds-search-is-always-visible .wds-global-navigation__search-input:-ms-input-placeholder {
+ color: #39424d
+ }
+
+ .wds-global-navigation.wds-search-is-always-visible .wds-global-navigation__search-input::placeholder {
+ color: #39424d
+ }
+
+ .wds-global-navigation.wds-search-is-always-visible .wds-global-navigation__link {
+ -webkit-flex: 0 1 auto;
+ -ms-flex: 0 1 auto;
+ flex: 0 1 auto
+ }
+
+ .wds-global-navigation.wds-search-is-always-visible .wds-global-navigation__search {
+ -webkit-flex: 1 1 0;
+ -ms-flex: 1 1 0;
+ flex: 1 1 0
+ }
+
+ .wds-global-navigation.wds-search-is-always-visible .wds-global-navigation__search-input-wrapper {
+ border-bottom-color: #656e78
+ }
+
+ .wds-global-navigation.wds-search-is-active .wds-global-navigation__search-label-icon:hover {
+ color: #39424d
+ }
+
+ .wds-global-navigation.wds-search-is-active .wds-global-navigation__link,
+ .wds-global-navigation.wds-search-is-active .wds-global-navigation__wikis-menu {
+ color: transparent;
+ -webkit-flex: 0 0 auto;
+ -ms-flex: 0 0 auto;
+ flex: 0 0 auto;
+ font-size: 0;
+ padding: 0
+ }
+
+ .wds-global-navigation.wds-search-is-active .wds-global-navigation__wikis-menu .wds-icon {
+ display: none
+ }
+
+ .wds-global-navigation.wds-search-is-active .wds-global-navigation__search {
+ -webkit-flex: 2 1 auto;
+ -ms-flex: 2 1 auto;
+ flex: 2 1 auto
+ }
+
+ .wds-global-navigation.wds-search-is-active .wds-global-navigation__search-input-wrapper {
+ border-bottom-color: #656e78
+ }
+
+ .wds-global-navigation.wds-search-is-active .wds-global-navigation__search-input-wrapper.wds-is-active {
+ border-bottom-color: #00b7e0
+ }
+
+ .wds-global-navigation.wds-search-is-active .wds-global-navigation__search-input::-webkit-input-placeholder {
+ color: #999
+ }
+
+ .wds-global-navigation.wds-search-is-active .wds-global-navigation__search-input::-moz-placeholder {
+ color: #999
+ }
+
+ .wds-global-navigation.wds-search-is-active .wds-global-navigation__search-input:-ms-input-placeholder {
+ color: #999
+ }
+
+ .wds-global-navigation.wds-search-is-active .wds-global-navigation__search-input::placeholder {
+ color: #999
+ }
+
+ .wds-global-navigation.wds-search-is-active .wds-global-navigation__search-close {
+ max-width: 24px;
+ opacity: 1;
+ padding-right: 8px;
+ transition-delay: 150ms
+ }
+
+ .wds-global-navigation.wds-search-is-active .wds-global-navigation__search-submit {
+ max-width: 100%;
+ padding: 5px 9px;
+ transition: background-color 300ms, border-color 300ms, color 300ms, max-width 50ms 150ms, opacity 300ms, padding 50ms 150ms
+ }
+
+ .wds-global-navigation .wds-user-is-logged-in .wds-global-navigation__start-a-wiki-caption {
+ display: none
+ }
+
+ .wds-global-navigation .wds-user-is-logged-in .wds-global-navigation__start-a-wiki-icon {
+ display: block
+ }
+
+ @media only screen and (min-width: 1024px) {
+ .wds-global-navigation__search-input {
+ padding: 3px 4px;
+ position: relative;
+ top: auto
+ }
+ .wds-global-navigation__search-label-icon:hover {
+ color: #39424d
+ }
+ .wds-global-navigation__search-input::-webkit-input-placeholder {
+ color: #39424d
+ }
+ .wds-global-navigation__search-input::-moz-placeholder {
+ color: #39424d
+ }
+ .wds-global-navigation__search-input:-ms-input-placeholder {
+ color: #39424d
+ }
+ .wds-global-navigation__search-input::placeholder {
+ color: #39424d
+ }
+ .wds-global-navigation__content-bar {
+ width: 1004px
+ }
+ .wds-global-navigation__wikis-menu {
+ -webkit-flex: 1 1 auto;
+ -ms-flex: 1 1 auto;
+ flex: 1 1 auto
+ }
+ .wds-global-navigation__search {
+ -webkit-flex: 2 1 auto;
+ -ms-flex: 2 1 auto;
+ flex: 2 1 auto
+ }
+ .wds-global-navigation__search-input-wrapper {
+ border-bottom: 1px solid #656e78
+ }
+ .wds-global-navigation__account-menu-caption,
+ .wds-global-navigation__start-a-wiki-caption {
+ display: inline
+ }
+ .wds-global-navigation__start-a-wiki-icon {
+ display: none
+ }
+ .wds-global-navigation .wds-user-is-logged-in .wds-global-navigation__start-a-wiki-caption {
+ display: inline
+ }
+ .wds-global-navigation .wds-user-is-logged-in .wds-global-navigation__start-a-wiki-icon {
+ display: none
+ }
+ }
+
+ @media only screen and (min-width: 1084px) {
+ .wds-global-navigation__content-bar {
+ width: 1064px
+ }
+ }
+
+ @media only screen and (min-width: 1596px) {
+ .wds-global-navigation__content-bar {
+ width: 1238px
+ }
+ }
+
+ .article-wrapper .sponsored-heading,
+ .gpt-ad&gt;
+ div::before,
+ .careers-content .careers-testimonials .testimonials&gt;
+ .testimonial blockquote cite .title {
+ font-size: .625rem;
+ line-height: .75rem
+ }
+
+ .article-wrapper .entry-meta .byline,
+ .post-list .author-attribution,
+ .post-grid .author-attribution,
+ .post-list .attribution,
+ .post-grid .attribution,
+ .hub-feed .attribution,
+ .hero-block .hero .attribution,
+ .hero-block-sponsored .hero .attribution,
+ .page-about-content section.team a,
+ .page-press section.contact a,
+ .endless-feed+.load-more .load-more-btn,
+ .article-wrapper .author-bio .view-profile,
+ .article-wrapper .article-share .text,
+ article .wp-caption-text,
+ .btn,
+ .share-btn,
+ .email-share-btn,
+ .fb-share-btn,
+ .reddit-btn,
+ .tweet-btn,
+ .ln-share-bt,
+ .fandom-newsletter-signup .form-fandom-newsletter-signup.selected .email-label,
+ .fandom-newsletter-signup input.submit,
+ .fandom-newsletter-signup .error,
+ .fan-contributor-ad a,
+ .home-fandom,
+ figure.video figcaption .caption,
+ .rail-feed .post-list .post .category,
+ .recommended-videos .heading,
+ .hero-block .hero .category,
+ .hero-block-sponsored .hero .category,
+ .top-community .top-community-stats,
+ .other-communities .other-communities-content-community-stats,
+ .careers-content .careers-header h1,
+ .careers-content .careers-header .job-categories a,
+ .careers-content .careers-header .learn-more-arrow span,
+ .social-footer p,
+ .topic-card .sponsored-by,
+ article.type-video time,
+ .page-about-content section.follow-us .follow,
+ .page-about-content section.leadership .profile {
+ font-size: .75rem;
+ line-height: .9375rem
+ }
+
+ .article-wrapper .author-bio .about,
+ .community-resources p,
+ .community-resources a,
+ .fan-contributor-ad,
+ .pagination,
+ figure.video figcaption .caption-title,
+ .rail-feed .post-list .post .entry-title,
+ .more-stories header .view-all,
+ .recommended-videos h3,
+ .hero-block .topic-link,
+ .hero-block-sponsored .topic-link,
+ section.post-archive .filter,
+ section.post-archive .excerpt,
+ .top-community .top-community-heading,
+ .top-community .top-community-topic,
+ .top-community .top-community-text,
+ .top-community .top-community-link,
+ .other-communities,
+ .other-communities .other-communities-heading,
+ .careers-content .careers-header .job-categories.open .select-a-team,
+ .careers-content .values-matter .value-boxes .value-box h3,
+ .careers-content .values-matter .value-boxes .value-box p,
+ .careers-content section.news-events .news-wrapper&gt;
+ section h3,
+ .careers-content .social-header,
+ .videos-module h3,
+ .wikia-explanation p,
+ .wikia-explanation a,
+ .page-about-content section.follow-us a,
+ .page-about-content section.investors p,
+ .page-about-content section.leadership .profile strong,
+ .page-about-content section.about-intl dl,
+ .page-about-content section.about-intl table,
+ .fan-contributor-wrapper .hero p,
+ .page-press section.press-feed li .attribution {
+ font-size: .875rem;
+ line-height: 1.25rem
+ }
+
+ .article-wrapper .article-rail .topic-card h3,
+ body,
+ h5,
+ h6,
+ p,
+ .nav-flyout-description,
+ section.post-archive h3,
+ .other-communities .other-communities-content-community-name,
+ .careers-content .top p,
+ .careers-content .careers-header .job-categories.open a,
+ .careers-content section.news-events .news-wrapper&gt;
+ section h4,
+ .careers-content section.news-events .news-wrapper&gt;
+ section a,
+ .careers-content section.open-positions .department ul.job-posts li&gt;
+ a,
+ .fan-contributor-wrapper .form h2,
+ .fan-contributor-wrapper .share h3 {
+ font-size: 1rem;
+ line-height: 1.5rem
+ }
+
+ .hero.sponsored .action-btn,
+ .topic-card .action-btn,
+ h2,
+ h3,
+ h4,
+ .post-grid .entry-title,
+ .more-stories h3,
+ p .icon-copy,
+ .hub-feed .entry-title,
+ .nav-flyout-heading,
+ .hero-block .hero h3,
+ .hero-block-sponsored .hero h3,
+ .top-community .top-community-name,
+ .topic-card h4,
+ .page-about-content section.about-intl h4,
+ .page-about-content section.about-intl th,
+ .fan-contributor-wrapper .description h2,
+ .fan-contributor-wrapper .description h3,
+ .fan-contributor-wrapper .perks h3,
+ .page-press section.press-feed h4 {
+ font-size: 1.125rem;
+ line-height: 1.375rem
+ }
+
+ .community-resources .explore-title,
+ .fan-contributor-ad h3,
+ .pull-quote .content,
+ .rail-feed h2,
+ .more-stories h2,
+ .hero-block .hero.lead h3,
+ .hero-block-sponsored .hero.lead h3,
+ section.post-archive h1,
+ .careers-content .careers-testimonials .testimonials&gt;
+ .testimonial blockquote cite,
+ .careers-content section.open-positions h2,
+ .social-promo-rail .callout,
+ .topic-card.compact .topic-title,
+ article.type-video h1,
+ .wikia-explanation .explore-title,
+ .page-about-content section.team h4,
+ .page-press section.press-feed li h3 {
+ font-size: 1.5rem;
+ line-height: 1.8125rem
+ }
+
+ h1,
+ .careers-content .top h2,
+ .careers-content .careers-header .tagline,
+ .fan-contributor-wrapper .hero h1 {
+ font-size: 1.6875rem;
+ line-height: 2.0625rem
+ }
+
+ .article-wrapper .article-rail .topic-card .topic-title,
+ .community-resources h2,
+ .wikia-explanation h2,
+ .page-about-content section.leadership h2,
+ .page-about-content section.team h2 {
+ font-size: 2.25rem;
+ line-height: 2.6875rem
+ }
+
+ .topic-card .topic-title {
+ font-size: 2.5rem;
+ line-height: 3rem
+ }
+
+ .page-about-content header h1 {
+ font-size: 3.375rem;
+ line-height: 4.0625rem
+ }
+
+ .wds-global-footer {
+ line-height: 1;
+ margin-top: 0;
+ position: relative
+ }
+
+ .wds-global-navigation.loaded .wds-global-navigation__account-menu {
+ visibility: visible
+ }
+
+ .wds-global-navigation .wds-global-navigation__account-menu {
+ visibility: hidden
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .wds-global-navigation-wrapper {
+ height: 55px;
+ position: relative
+ }
+ .wds-global-navigation {
+ position: relative;
+ width: 100%
+ }
+ .wds-global-navigation .wds-global-navigation__account-menu li:first-of-type a:visited {
+ color: #fff
+ }
+ .wds-global-navigation a.wds-global-navigation__link:visited,
+ .wds-global-navigation a.wds-global-navigation__dropdown-link:visited {
+ color: #1a1a1a
+ }
+ .wds-global-navigation a.wds-global-navigation__link:hover,
+ .wds-global-navigation a.wds-global-navigation__dropdown-link:hover {
+ color: #00b7e0
+ }
+ .wds-global-navigation .wds-global-navigation__content-bar {
+ box-sizing: initial
+ }
+ .wds-global-navigation .wds-global-navigation__content-bar .wds-global-navigation__links-and-search a.wds-is-active {
+ color: #fff
+ }
+ .wds-global-navigation .wds-global-navigation__content-bar .wds-global-navigation__search-input {
+ min-width: 90%
+ }
+ .wds-global-navigation.headroom {
+ position: fixed;
+ top: 0;
+ transition: -webkit-transform 200ms linear;
+ transition: transform 200ms linear;
+ transition: transform 200ms linear, -webkit-transform 200ms linear;
+ width: 100%;
+ will-change: transform;
+ z-index: 5000101
+ }
+ .wds-global-navigation.headroom.logged-in.headroom--unpinned {
+ -webkit-transform: translateY(-100%);
+ transform: translateY(-100%)
+ }
+ .wds-global-navigation.headroom.logged-in.headroom--pinned {
+ -webkit-transform: translateY(0%);
+ transform: translateY(0%)
+ }
+ .wds-global-navigation.headroom.headroom-override {
+ position: absolute
+ }
+ .wds-global-navigation.sponsored-hero-pinned,
+ .wds-global-navigation.bfaa-pinned {
+ position: relative
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) and (-ms-high-contrast: active),
+ only screen and (min-width: 52.5em) and (-ms-high-contrast: none) {
+ .wds-global-navigation img[src$=".svg"] {
+ width: 100%
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .hero-block-sponsored~.wds-global-navigation-wrapper {
+ position: static
+ }
+ }
+
+ .post-list .post-thumbnail,
+ .post-grid .post-thumbnail,
+ .featured-header,
+ .twitch-video .video-container,
+ .youtube-inline .video-container,
+ .featured-header .video-container,
+ figure.ooyala-video,
+ .hub-feed .post-thumbnail {
+ display: block;
+ position: relative
+ }
+
+ .post-list .post-thumbnail:after,
+ .post-grid .post-thumbnail:after,
+ .featured-header:after,
+ .twitch-video .video-container:after,
+ .youtube-inline .video-container:after,
+ .featured-header .video-container:after,
+ figure.ooyala-video:after,
+ .hub-feed .post-thumbnail:after {
+ display: block;
+ content: '';
+ padding-top: 56.25%
+ }
+
+ .post-list .post-thumbnail img,
+ .post-grid .post-thumbnail img,
+ .featured-header .featured-header-inner,
+ .twitch-video .video-container iframe,
+ .youtube-inline .video-container iframe,
+ .featured-header .video-container iframe,
+ figure.ooyala-video .video-container,
+ .hub-feed .post-thumbnail img {
+ height: 100%;
+ left: 0;
+ position: absolute;
+ top: 0;
+ width: 100%
+ }
+
+ .article-wrapper .entry-meta .byline,
+ .post-list .author-attribution,
+ .post-grid .author-attribution,
+ .post-list .attribution,
+ .post-grid .attribution,
+ .hub-feed .attribution,
+ .hero-block .hero .attribution,
+ .hero-block-sponsored .hero .attribution {
+ color: rgba(57, 66, 77, 0.4);
+ font-weight: bold;
+ line-height: 30px;
+ margin-top: 10px;
+ text-transform: uppercase
+ }
+
+ .article-wrapper .entry-meta .byline,
+ .post-list .author-attribution,
+ .post-grid .author-attribution {
+ text-transform: none
+ }
+
+ .article-wrapper .entry-meta .byline a,
+ .post-list .author-attribution a,
+ .post-grid .author-attribution a {
+ color: #656e78
+ }
+
+ .article-wrapper .entry-meta .byline .avatar,
+ .post-list .author-attribution .avatar,
+ .post-grid .author-attribution .avatar {
+ border: 2px solid #c5ced9;
+ border-radius: 50%;
+ height: 30px;
+ margin-right: 2px;
+ width: 30px
+ }
+
+ .article-wrapper .entry-meta .byline .posted-time,
+ .post-list .author-attribution .posted-time,
+ .post-grid .author-attribution .posted-time {
+ color: rgba(57, 66, 77, 0.4)
+ }
+
+ .page-about-content section.team a,
+ .page-press section.contact a {
+ border: 2px solid #999;
+ border-radius: 3px;
+ display: block;
+ font-weight: bold;
+ letter-spacing: 1px;
+ line-height: 40px;
+ text-align: center;
+ text-transform: uppercase
+ }
+
+ .endless-feed+.load-more .load-more-btn {
+ background-color: #fff;
+ border: 1px solid #4a90e2;
+ color: #4a90e2;
+ cursor: pointer;
+ font-weight: bold;
+ line-height: 2.875rem;
+ outline: none;
+ padding: 0 18px;
+ text-align: center;
+ text-transform: uppercase
+ }
+
+ .endless-feed+.load-more .load-more-btn:active {
+ background-color: #4a90e2;
+ color: #fff
+ }
+
+ .endless-feed+.load-more [disabled].load-more-btn {
+ opacity: 0.7
+ }
+
+ .hero.sponsored .action-btn,
+ .topic-card .action-btn {
+ border-radius: 3px;
+ color: #fff;
+ display: inline-block;
+ font-weight: bold
+ }
+
+ .hero.sponsored .action-btn:hover,
+ .topic-card .action-btn:hover {
+ color: #fff
+ }
+
+ .article-wrapper .categories li,
+ .post-list .category,
+ .post-grid .category,
+ .hub-feed .category,
+ .topic-card .categories .category {
+ background-color: #39424d;
+ color: #fff;
+ display: inline-block;
+ font-size: .75rem;
+ font-weight: bold;
+ height: 27px;
+ line-height: 27px;
+ padding: 0 11px;
+ text-transform: capitalize
+ }
+
+ .article-wrapper .categories li.cat-games,
+ .post-list .cat-games.category,
+ .post-grid .cat-games.category,
+ .hub-feed .cat-games.category,
+ .topic-card .categories .cat-games.category {
+ background-color: #94d11f
+ }
+
+ .article-wrapper .categories li.cat-movies,
+ .post-list .cat-movies.category,
+ .post-grid .cat-movies.category,
+ .hub-feed .cat-movies.category,
+ .topic-card .categories .cat-movies.category {
+ background-color: #09d3bf
+ }
+
+ .article-wrapper .categories li.cat-tv,
+ .post-list .cat-tv.category,
+ .post-grid .cat-tv.category,
+ .hub-feed .cat-tv.category,
+ .topic-card .categories .cat-tv.category {
+ background-color: #00b7e0;
+ text-transform: uppercase
+ }
+
+ .article-wrapper .categories li.cat-sponsored,
+ .post-list .cat-sponsored.category,
+ .post-grid .cat-sponsored.category,
+ .hub-feed .cat-sponsored.category,
+ .topic-card .categories .cat-sponsored.category {
+ background-color: #333
+ }
+
+ .hero.sponsored .action-btn,
+ .hero.sponsored .sponsored-hero-mobile .action-btn,
+ .top-community .top-community-name {
+ overflow-x: hidden;
+ word-wrap: break-word;
+ white-space: nowrap;
+ text-overflow: ellipsis
+ }
+
+ .hero-block .hero,
+ .hero-block-sponsored .hero,
+ .topic-card:not(.topic-card-simple),
+ .topic-card-simple .top-link,
+ .videos-module .thumbnail {
+ background-position: center;
+ background-size: cover;
+ position: relative
+ }
+
+ .featured-header.shaded:before,
+ .topic-card:not(.topic-card-simple):before,
+ .topic-card-simple .top-link:before,
+ .videos-module .thumbnail:before {
+ background-color: #1a1a1a;
+ opacity: .4
+ }
+
+ .non-touch-device .topic-card:hover:before,
+ .topic-card-simple .top-link:hover:before,
+ .non-touch-device .videos-module .thumbnail:hover:before {
+ opacity: .6
+ }
+
+ .hero-block .hero:before,
+ .hero-block-sponsored .hero:before {
+ background-image: linear-gradient(to bottom, transparent 40%, rgba(0, 0, 0, 0.9))
+ }
+
+ .non-touch-device .hero-block .hero:hover:before,
+ .non-touch-device .hero-block-sponsored .hero:hover:before {
+ background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.6) 50%, rgba(0, 0, 0, 0.6))
+ }
+
+ .featured-header.shaded:before,
+ .topic-card:not(.topic-card-simple):before,
+ .topic-card-simple .top-link:before,
+ .videos-module .thumbnail:before,
+ .hero-block .hero:before,
+ .hero-block-sponsored .hero:before,
+ .play-button-overlay,
+ .post-list .has-video a::before,
+ .post-grid .has-video a::before,
+ .hub-feed .has-video a::before,
+ .nav-flyout-play-button-overlay {
+ bottom: 0;
+ content: '';
+ display: block;
+ left: 0;
+ position: absolute;
+ right: 0;
+ top: 0
+ }
+
+ .post-list .post-thumbnail:before,
+ .post-grid .post-thumbnail:before {
+ pointer-events: none
+ }
+
+ .post-list .post-thumbnail:after,
+ .post-grid .post-thumbnail:after {
+ background-color: #1a1a1a
+ }
+
+ .post-list .post-thumbnail img:hover,
+ .post-grid .post-thumbnail img:hover {
+ opacity: .6
+ }
+
+ .post-list .post-thumbnail img,
+ .post-grid .post-thumbnail img {
+ color: #1a1a1a
+ }
+
+ .fan-feed .clickable-unit.hover .post-thumbnail img,
+ .rail-feed .clickable-unit.hover .post-thumbnail img,
+ .more-stories .clickable-unit.hover .post-thumbnail img,
+ .recirculation-feed .clickable-unit.hover .post-thumbnail img,
+ section.post-archive .clickable-unit.hover .post-thumbnail img,
+ html.js .video-rail .clickable-unit.hover .post-thumbnail img {
+ opacity: .6
+ }
+
+ .top-nav ul,
+ .hero-block ul,
+ .hero-block-sponsored ul,
+ section.post-archive .filter,
+ .top-communities .community-list,
+ .fan-contributor-wrapper .perks ul,
+ .page-press section.press-feed ul {
+ list-style-type: none;
+ padding: 0;
+ margin: 0
+ }
+
+ @-webkit-keyframes fade-in {
+ from {
+ opacity: 0
+ }
+ to {
+ opacity: 1
+ }
+ }
+
+ @keyframes fade-in {
+ from {
+ opacity: 0
+ }
+ to {
+ opacity: 1
+ }
+ }
+
+ @-webkit-keyframes fade-out {
+ from {
+ opacity: 1
+ }
+ to {
+ opacity: 0
+ }
+ }
+
+ @keyframes fade-out {
+ from {
+ opacity: 1
+ }
+ to {
+ opacity: 0
+ }
+ }
+
+ @-webkit-keyframes slide-up {
+ 0% {
+ -webkit-transform: translateY(100%);
+ transform: translateY(100%)
+ }
+ 100% {
+ -webkit-transform: translateY(0%);
+ transform: translateY(0%)
+ }
+ }
+
+ @keyframes slide-up {
+ 0% {
+ -webkit-transform: translateY(100%);
+ transform: translateY(100%)
+ }
+ 100% {
+ -webkit-transform: translateY(0%);
+ transform: translateY(0%)
+ }
+ }
+
+ @-webkit-keyframes slide-left {
+ 0% {
+ -webkit-transform: translateX(100%);
+ transform: translateX(100%)
+ }
+ 100% {
+ -webkit-transform: translateX(0%);
+ transform: translateX(0%)
+ }
+ }
+
+ @keyframes slide-left {
+ 0% {
+ -webkit-transform: translateX(100%);
+ transform: translateX(100%)
+ }
+ 100% {
+ -webkit-transform: translateX(0%);
+ transform: translateX(0%)
+ }
+ }
+
+ .article-wrapper .article-container {
+ background: #fff
+ }
+
+ .article-wrapper article {
+ padding-top: 40px
+ }
+
+ .article-wrapper.featured article {
+ padding-top: 0
+ }
+
+ .article-wrapper .author-bio {
+ background-color: #39424d;
+ color: #fff;
+ margin: 70px -1rem 0;
+ text-align: center
+ }
+
+ .article-wrapper .author-bio .about {
+ line-height: 1.3125rem;
+ margin: 14px 1rem 0
+ }
+
+ .article-wrapper .author-bio .author-name {
+ color: #fff;
+ display: block;
+ font-weight: bold
+ }
+
+ .article-wrapper .author-bio .avatar {
+ border: 2px solid #ccc;
+ border-radius: 50%;
+ height: 60px;
+ margin: 0 auto -20px;
+ -webkit-transform: translateY(-30px);
+ transform: translateY(-30px);
+ width: 60px
+ }
+
+ .article-wrapper .author-bio .social-media a {
+ display: none;
+ margin-top: 14px;
+ padding: 0 8px
+ }
+
+ .article-wrapper .author-bio .social-media .icon {
+ fill: #fff;
+ height: 15px
+ }
+
+ .article-wrapper .author-bio .view-profile {
+ background-color: #2c343d;
+ margin-top: 20px;
+ text-transform: uppercase
+ }
+
+ .article-wrapper .author-bio .view-profile a {
+ color: #fff;
+ font-weight: bold;
+ line-height: 48px;
+ padding: 10px
+ }
+
+ .article-wrapper .author-bio .view-profile .menu-control {
+ fill: #656e78;
+ height: 11px;
+ margin-left: 3px;
+ vertical-align: middle;
+ width: 11px
+ }
+
+ .article-wrapper .categories {
+ line-height: 13px;
+ list-style: none;
+ margin: 0;
+ padding: 0 0 12px
+ }
+
+ .article-wrapper .categories li {
+ font-size: .625rem;
+ height: 17px;
+ line-height: 17px;
+ margin-right: -2px;
+ padding: 0
+ }
+
+ .article-wrapper .categories a {
+ display: inline-block;
+ height: 17px;
+ padding: 0 10px;
+ line-height: 17px;
+ font-size: .625rem;
+ color: #fff
+ }
+
+ .article-wrapper .entry-meta {
+ border-color: #000;
+ border-style: dashed;
+ border-width: 1px 0 1px 0;
+ padding: 15px 0 15px 0
+ }
+
+ .article-wrapper .entry-meta .byline {
+ display: inline-block;
+ line-height: 45px;
+ margin: 0
+ }
+
+ .article-wrapper .entry-meta .byline .avatar {
+ height: 36px;
+ margin-right: 3px;
+ width: 36px
+ }
+
+ .article-wrapper .article-share {
+ margin-bottom: 40px;
+ text-align: center
+ }
+
+ .article-wrapper .article-share hr {
+ border: 2px solid #e6e6e6;
+ width: 71px
+ }
+
+ .article-wrapper .article-share .text {
+ font-weight: bold;
+ margin: 18px 0;
+ text-transform: uppercase
+ }
+
+ .article-wrapper .share-wrapper {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ margin-top: 15px
+ }
+
+ .article-wrapper .share-wrapper [class*='-btn'] {
+ min-width: 45px;
+ width: 45px
+ }
+
+ .article-wrapper .share-wrapper [class*='-btn'] span {
+ display: none
+ }
+
+ .article-wrapper .share-wrapper .tweet-btn,
+ .article-wrapper .share-wrapper .reddit-btn {
+ margin-left: 9px
+ }
+
+ .article-wrapper .article-rail {
+ padding-bottom: 40px
+ }
+
+ .article-wrapper .article-rail .topic-card {
+ height: 600px
+ }
+
+ .article-wrapper .article-rail .topic-card .topic-title {
+ line-height: 2.5rem
+ }
+
+ .article-wrapper .article-rail:not(.featured-article-rail) .topic-card {
+ margin-top: 18px
+ }
+
+ .article-wrapper .entry-content {
+ margin-top: 1.5em
+ }
+
+ .article-wrapper .side-rail {
+ -webkit-flex: 1 0 auto;
+ -ms-flex: 1 0 auto;
+ flex: 1 0 auto;
+ max-width: 300px;
+ position: relative;
+ width: 300px
+ }
+
+ .article-wrapper .side-rail-wrapper {
+ width: 300px;
+ height: 100%
+ }
+
+ .article-wrapper .side-rail-wrapper.static {
+ height: auto
+ }
+
+ .article-wrapper .side-rail-wrapper.fixed {
+ height: auto;
+ position: fixed;
+ top: 0
+ }
+
+ .article-wrapper .sponsored-heading {
+ background-color: #f6f6f6;
+ font-weight: bold;
+ height: 30px;
+ line-height: 30px;
+ position: relative;
+ text-align: center
+ }
+
+ .article-wrapper .sponsored-heading .sponsor-logo {
+ max-height: 20px;
+ margin-left: 7px
+ }
+
+ .article-wrapper twitterwidget {
+ width: auto !important
+ }
+
+ .article-wrapper twitterwidget::shadow .EmbeddedTweet {
+ margin-left: auto;
+ margin-right: auto
+ }
+
+ .article-wrapper .wp-embedded-content {
+ width: 100% !important
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .article-wrapper .article-container {
+ -webkit-align-items: start;
+ -ms-flex-align: start;
+ -ms-grid-row-align: start;
+ align-items: start;
+ -webkit-flex-wrap: wrap;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ position: static
+ }
+ .article-wrapper .byline .avatar {
+ height: 30px;
+ width: 30px
+ }
+ .article-wrapper .entry-meta {
+ border: none;
+ padding: 0
+ }
+ .article-wrapper .entry-title {
+ margin-bottom: 10px
+ }
+ .article-wrapper .share-wrapper {
+ display: block
+ }
+ .article-wrapper .share-wrapper [class*='-btn'] {
+ height: 45px;
+ width: 45px
+ }
+ .article-wrapper .share-wrapper [class*='-btn'] span {
+ display: none
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .article-wrapper:not(.featured) {
+ padding-right: 1rem
+ }
+ .article-wrapper article {
+ padding-right: 45px
+ }
+ .article-wrapper article.type-post .article-share {
+ margin-bottom: 80px
+ }
+ .article-wrapper .article-share .tweet-btn,
+ .article-wrapper .article-share .reddit-btn {
+ margin-left: 10px
+ }
+ .article-wrapper .author-bio {
+ margin: 70px 0 60px
+ }
+ .article-wrapper .author-bio .about {
+ margin: 14px 70px 0
+ }
+ .article-wrapper .entry-meta {
+ padding: 11px
+ }
+ .article-wrapper .sponsored-heading {
+ font-size: .75rem;
+ height: 50px;
+ line-height: 50px
+ }
+ .article-wrapper .sponsored-heading .sponsor-logo {
+ max-height: 40px
+ }
+ }
+
+ @media only screen and (min-width: 66.5em) {
+ .article-wrapper:not(.featured) {
+ padding-right: 0
+ }
+ .article-wrapper .article-share,
+ .article-wrapper .author-bio {
+ margin-left: 76px
+ }
+ .article-wrapper .entry-content {
+ padding-left: 76px
+ }
+ .article-wrapper .share-wrapper {
+ float: right;
+ margin-top: 0;
+ display: inline-block
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ html.js .article-rail:not(.featured-article-rail) {
+ visibility: hidden
+ }
+ html.js .article-rail:not(.featured-article-rail).visible {
+ visibility: visible
+ }
+ }
+
+ article.page .entry-content {
+ padding-left: 0
+ }
+
+ article .alignleft {
+ display: inline;
+ float: left
+ }
+
+ article .alignright {
+ display: inline;
+ float: right
+ }
+
+ article .aligncenter {
+ display: block;
+ margin-right: auto;
+ margin-left: auto
+ }
+
+ article blockquote {
+ border-left: 2px solid #c5ced9;
+ font-style: italic;
+ margin-left: 20px;
+ padding-bottom: 10px;
+ padding-left: 17px;
+ padding-top: 10px
+ }
+
+ article blockquote p {
+ color: #656e78
+ }
+
+ article blockquote :last-child {
+ margin-bottom: 0
+ }
+
+ article blockquote :first-child {
+ margin-top: 0
+ }
+
+ article blockquote *+* {
+ padding-top: 10px
+ }
+
+ article blockquote.alignleft,
+ article .wp-caption.alignleft,
+ article img.alignleft {
+ margin: 0.4rem 1.5rem 1.5rem 0
+ }
+
+ article blockquote.alignright,
+ article .wp-caption.alignright,
+ article img.alignright {
+ margin: 0.4rem 0 1.5rem 1.5rem
+ }
+
+ article blockquote.aligncenter,
+ article .wp-caption.aligncenter,
+ article img.aligncenter {
+ clear: both;
+ margin-top: 0.4rem;
+ margin-bottom: 1.5rem
+ }
+
+ article img.size-medium,
+ article img.size-full {
+ width: 100%;
+ height: auto
+ }
+
+ article figure {
+ margin: 1.5rem 0;
+ max-width: 100%
+ }
+
+ article p {
+ margin: .75rem 0 1.5rem
+ }
+
+ article figure.aligncenter:first-child {
+ margin-top: 1.5rem
+ }
+
+ article .wp-caption-text {
+ color: #999;
+ display: block;
+ font-style: italic;
+ padding: 10px 10px 0
+ }
+
+ article figcaption:after {
+ background: #e6e6e6;
+ content: '';
+ display: block;
+ height: 4px;
+ margin-left: -10px;
+ margin-top: 10px;
+ width: 27%
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ article figcaption:after {
+ width: 50%
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ article h2,
+ article h3 {
+ font-size: 1.5rem;
+ line-height: 1.8125rem;
+ margin: 0 0 .75rem
+ }
+ }
+
+ html {
+ font-size: 100%
+ }
+
+ body {
+ color: #39424d
+ }
+
+ body.no-scroll {
+ height: 100%;
+ overflow: hidden
+ }
+
+ a {
+ text-decoration: none;
+ color: #00b7e0
+ }
+
+ a:visited {
+ color: #00b7e0
+ }
+
+ a:hover {
+ color: #00b7e0
+ }
+
+ a:active {
+ color: #00b7e0
+ }
+
+ h1 {
+ margin: 0 0 1.375rem
+ }
+
+ h2,
+ h3,
+ h4 {
+ margin: 0 0 1.375rem
+ }
+
+ h5,
+ h6 {
+ margin: 0
+ }
+
+ p {
+ margin: 1.5rem 0
+ }
+
+ h5+p,
+ h6+p {
+ margin-top: 0
+ }
+
+ .main-wrap {
+ -webkit-align-items: flex-start;
+ -ms-flex-align: start;
+ -ms-grid-row-align: flex-start;
+ align-items: flex-start
+ }
+
+ .error-404 {
+ padding-top: 20px;
+ min-height: 300px
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .main-wrap {
+ -webkit-flex-direction: column;
+ -ms-flex-direction: column;
+ flex-direction: column
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ h1 {
+ font-size: 2.5rem;
+ line-height: 3rem
+ }
+ h2 {
+ font-size: 2.25rem;
+ line-height: 2.6875rem
+ }
+ h3 {
+ font-size: 1.5rem;
+ line-height: 1.8125rem;
+ margin: 0 0 1.125rem
+ }
+ h4 {
+ font-size: 1.125rem;
+ line-height: 1.375rem;
+ margin: 0 0 1.375rem
+ }
+ }
+
+ input[type="search"]::-webkit-search-decoration,
+ input[type="search"]::-webkit-search-cancel-button,
+ input[type="search"]::-webkit-search-results-button,
+ input[type="search"]::-webkit-search-results-decoration {
+ display: none
+ }
+
+ .more-from-event .rail-feed {
+ padding-bottom: 20px
+ }
+
+ .more-from-event .rail-feed .post-list .category {
+ display: none
+ }
+
+ .more-from-event .rail-feed .post-list .post {
+ border-top-color: #c5ced9;
+ padding-top: 15px
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .event-enabled .more-stories .rail {
+ margin-top: 19px
+ }
+ }
+
+ body.nycc-2016.home .hero-block {
+ position: relative
+ }
+
+ body.nycc-2016.home .videos-module {
+ background-color: #fff
+ }
+
+ body.nycc-2016.home .videos-module h2 {
+ font-size: 2.25rem;
+ color: #39424d
+ }
+
+ body.nycc-2016.home .videos-module .clickable-unit.hover h3 {
+ color: #00b7e0
+ }
+
+ body.nycc-2016.home .videos-module .videos-module-inner {
+ padding-bottom: 10px
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ body.nycc-2016.home .hero-block {
+ margin: auto;
+ max-width: 1160px
+ }
+ body.nycc-2016.home .hero-block&gt;
+ .grid-block {
+ height: 557px
+ }
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ body.nycc-2016.home .videos-module .secondary h3 {
+ color: #39424d
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ body.nycc-2016.home .hero-block {
+ border: 5px solid #fff;
+ margin: -315px auto 15px
+ }
+ }
+
+ .featured-header {
+ background-position: 50% 25%;
+ background-size: cover
+ }
+
+ .featured-header .featured-video {
+ bottom: 0;
+ position: absolute;
+ left: 50%;
+ -webkit-transform: translateX(-50%);
+ transform: translateX(-50%);
+ width: 100%;
+ z-index: 10
+ }
+
+ .article-wrapper.featured .article-container {
+ padding-top: 20px
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .featured-header {
+ height: 543px
+ }
+ .featured-header .featured-video {
+ outline: none;
+ bottom: 150px;
+ max-width: 680px
+ }
+ .article-wrapper.featured {
+ margin-top: -140px;
+ padding: 0
+ }
+ .article-wrapper.featured .article-container {
+ padding: 20px
+ }
+ .article-wrapper.featured article {
+ padding-left: 0
+ }
+ }
+
+ .btn,
+ .share-btn,
+ .email-share-btn,
+ .fb-share-btn,
+ .reddit-btn,
+ .tweet-btn,
+ .ln-share-bt {
+ background-color: #ececec;
+ color: #fff;
+ display: inline-block;
+ padding: 9px 10px;
+ text-align: center;
+ text-decoration: none
+ }
+
+ .btn:hover,
+ .share-btn:hover,
+ .email-share-btn:hover,
+ .fb-share-btn:hover,
+ .reddit-btn:hover,
+ .tweet-btn:hover,
+ .ln-share-bt:hover {
+ color: #fff
+ }
+
+ .share-btn,
+ .email-share-btn,
+ .fb-share-btn,
+ .reddit-btn,
+ .tweet-btn,
+ .ln-share-bt {
+ font-weight: bold;
+ font-size: .625rem;
+ height: 45px;
+ line-height: 45px;
+ padding: 0 5px;
+ text-transform: uppercase
+ }
+
+ .share-btn.invert,
+ .invert.email-share-btn,
+ .invert.fb-share-btn,
+ .invert.reddit-btn,
+ .invert.tweet-btn,
+ .invert.ln-share-bt {
+ background-color: transparent
+ }
+
+ .share-btn span,
+ .email-share-btn span,
+ .fb-share-btn span,
+ .reddit-btn span,
+ .tweet-btn span,
+ .ln-share-bt span {
+ padding-left: 6px
+ }
+
+ @media only screen and (min-width: 66.5em) {
+ .share-btn,
+ .email-share-btn,
+ .fb-share-btn,
+ .reddit-btn,
+ .tweet-btn,
+ .ln-share-bt {
+ font-size: .75rem
+ }
+ .share-btn.fb-share-btn,
+ .fb-share-btn {
+ min-width: 100px
+ }
+ .share-btn.tweet-btn,
+ .tweet-btn {
+ min-width: 116px
+ }
+ .share-btn.reddit-btn,
+ .reddit-btn {
+ min-width: 111px
+ }
+ .share-btn.ln-share-bt,
+ .ln-share-bt {
+ min-width: 109px
+ }
+ }
+
+ .share-icon,
+ .fb-share-icon,
+ .tweet-share-icon,
+ .ln-share-icon {
+ text-align: center;
+ display: inline-block;
+ width: 25px
+ }
+
+ .community-resources {
+ background-color: #f6f6f6;
+ color: #39424d;
+ padding: 15px 15px 50px 15px;
+ margin-top: 11px;
+ text-align: center;
+ overflow: none
+ }
+
+ .community-resources img {
+ width: 97px;
+ height: 97px
+ }
+
+ .community-resources h2 {
+ letter-spacing: -1px;
+ font-weight: bolder;
+ margin: 0
+ }
+
+ .community-resources .more-top-margin {
+ margin-top: 35px
+ }
+
+ .community-resources .less-top-margin {
+ margin-top: 5px
+ }
+
+ .community-resources p.bottom-margin {
+ margin-bottom: 5px
+ }
+
+ .community-resources p {
+ font-weight: bold;
+ text-transform: uppercase
+ }
+
+ .community-resources a {
+ display: inline-block;
+ background: #f6f6f6;
+ border: 1px solid #39424d;
+ color: #39424d;
+ font-weight: bold;
+ line-height: 1.125rem;
+ padding: 18px 30px;
+ text-transform: uppercase
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .community-resources {
+ padding: 25px 15px 65px 15px
+ }
+ .community-resources .explore-title {
+ font-size: 2.25rem;
+ line-height: 2.6875rem
+ }
+ .community-resources img {
+ width: 161px;
+ height: 161px
+ }
+ }
+
+ .contact-header {
+ margin-bottom: 60px;
+ background-color: #092344;
+ height: 166px;
+ text-align: center
+ }
+
+ .contact-header h1 {
+ font-size: 24px;
+ color: #fff;
+ font-weight: bold;
+ margin-bottom: 25px;
+ padding-top: 40px
+ }
+
+ .contact-header h1:after {
+ width: 90px;
+ height: 4px;
+ content: '';
+ display: block;
+ margin: 22px auto 0;
+ background-color: #fff
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .contact-header {
+ height: 257px
+ }
+ .contact-header h1 {
+ font-size: 40px;
+ margin-bottom: 33px;
+ padding-top: 70px
+ }
+ .contact-header h1:after {
+ margin: 35px auto 0;
+ width: 96px;
+ height: 5px;
+ width: 90px
+ }
+ }
+
+ .fandom-newsletter-signup {
+ background-color: #2c343d;
+ color: #fff;
+ height: 120px;
+ padding-top: 40px;
+ position: relative;
+ text-align: center
+ }
+
+ .fandom-newsletter-signup .message-success {
+ -webkit-animation: fade-in 1s ease forwards;
+ animation: fade-in 1s ease forwards;
+ left: 0;
+ padding: 50px 1rem 0 1rem;
+ position: absolute;
+ text-align: center;
+ top: 0;
+ width: 100%
+ }
+
+ .fandom-newsletter-signup .form-success {
+ -webkit-animation: fade-out 0.4s ease forwards;
+ animation: fade-out 0.4s ease forwards;
+ opacity: 0
+ }
+
+ .fandom-newsletter-signup .form-fandom-newsletter-signup {
+ margin: 0;
+ opacity: 1;
+ padding: 0 20px;
+ position: relative;
+ text-align: center
+ }
+
+ .fandom-newsletter-signup .form-fandom-newsletter-signup.selected .email-label {
+ opacity: 1;
+ padding: 0;
+ pointer-events: none;
+ position: absolute;
+ -webkit-transform: translateY(-22px);
+ transform: translateY(-22px);
+ top: 10px
+ }
+
+ .fandom-newsletter-signup .form-title {
+ display: inline-block;
+ font-weight: bold;
+ margin-right: 15px
+ }
+
+ .fandom-newsletter-signup input {
+ display: inline-block;
+ height: 40px;
+ margin: 0;
+ padding: 0
+ }
+
+ .fandom-newsletter-signup input:focus {
+ outline: 0
+ }
+
+ .fandom-newsletter-signup input.email {
+ background: transparent;
+ border: none;
+ border-bottom: 1px solid #656e78;
+ height: 29px;
+ margin: 0
+ }
+
+ .fandom-newsletter-signup input.submit {
+ background: transparent;
+ border: 1px solid #656e78;
+ border-radius: 2px;
+ color: #c5ced9;
+ font-weight: bold;
+ height: 40px;
+ line-height: 40px;
+ text-transform: uppercase;
+ width: 130px
+ }
+
+ .fandom-newsletter-signup .input {
+ display: inline-block;
+ margin: 0 15px 20px 0;
+ position: relative;
+ text-align: left
+ }
+
+ .fandom-newsletter-signup .email-label {
+ text-align: left;
+ color: #656e78;
+ display: block;
+ left: 0;
+ position: absolute;
+ top: 2px;
+ transition: all 0.2s ease 0.1s
+ }
+
+ .fandom-newsletter-signup .email {
+ width: 315px
+ }
+
+ .fandom-newsletter-signup .error {
+ bottom: -22px;
+ color: #ed1c24;
+ left: 0;
+ position: absolute;
+ z-index: 0
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .fandom-newsletter-signup {
+ height: 200px;
+ padding: 20px 0;
+ text-align: center
+ }
+ .fandom-newsletter-signup .email {
+ width: 265px
+ }
+ .fandom-newsletter-signup .form-fandom-newsletter-signup.selected .email-label {
+ top: 8px
+ }
+ .fandom-newsletter-signup .form-title {
+ font-size: .875rem;
+ margin: 0 0 30px 0
+ }
+ .fandom-newsletter-signup .grid-container {
+ margin: auto;
+ max-width: 360px;
+ width: 100%
+ }
+ .fandom-newsletter-signup .input {
+ margin: 0 0 40px 0
+ }
+ .fandom-newsletter-signup .message-title {
+ display: block;
+ margin-bottom: 10px
+ }
+ }
+
+ .fan-contributor-ad {
+ background: url("http://vignette.wikia.nocookie.net/6b0cd445-363e-4f7d-a9e8-2abd0fd47dae") no-repeat center;
+ color: #fff;
+ padding: 78px 0 68px;
+ text-align: center
+ }
+
+ .fan-contributor-ad a {
+ background-color: #fff;
+ color: #2060b5;
+ display: block;
+ font-weight: bold;
+ height: 40px;
+ letter-spacing: 1px;
+ line-height: 40px;
+ margin: 27px auto 0;
+ text-transform: uppercase;
+ width: 200px
+ }
+
+ .fan-contributor-ad h3 {
+ line-height: 32px;
+ margin: 0
+ }
+
+ .fan-contributor-ad hr {
+ border-top: 4px solid #fff;
+ border-width: 4px 0 0;
+ margin: 24px auto;
+ width: 97px
+ }
+
+ .fan-contributor-ad span {
+ line-height: 20px;
+ text-transform: uppercase
+ }
+
+ .article-wrapper .article-rail .fan-contributor-ad {
+ margin-top: 40px
+ }
+
+ .icon-top-comm-arrow-down {
+ fill: #94d11f
+ }
+
+ .icon-top-comm-arrow-up {
+ fill: #ff7f26
+ }
+
+ .icon-top-comm-circle {
+ fill: #1a5eb8
+ }
+
+ .icon-comics {
+ fill: #ff5400
+ }
+
+ .icon-games {
+ fill: #94d11f
+ }
+
+ .icon-books {
+ fill: #ff7f26
+ }
+
+ .icon-movies {
+ fill: #09d3bf
+ }
+
+ .icon-music {
+ fill: #c819ad
+ }
+
+ .icon-fan-profile-avatar {
+ fill: transparent
+ }
+
+ .pagination {
+ text-align: center
+ }
+
+ .pagination a,
+ .pagination span {
+ border-radius: 3px;
+ display: inline-block;
+ height: 36px;
+ line-height: 35px
+ }
+
+ .pagination a {
+ width: 32px
+ }
+
+ .pagination a.previous,
+ .pagination a.next,
+ .pagination a.active {
+ border: 1px solid #00b7e0;
+ width: 36px
+ }
+
+ .pagination a.active {
+ background-color: #00b7e0;
+ color: #fff
+ }
+
+ .pagination .inactive {
+ color: #c5ced9;
+ border: 1px solid #c5ced9;
+ width: 36px
+ }
+
+ .pull-quote {
+ margin-bottom: 25px;
+ padding-bottom: 24px;
+ border-bottom: 1px solid #e5e5e5
+ }
+
+ @media only screen and (min-width: 66.5em) {
+ .pull-quote {
+ margin-right: -20px;
+ max-width: 300px
+ }
+ .pull-quote.left {
+ float: left;
+ left: -76px;
+ position: relative
+ }
+ }
+
+ @media only screen and (max-width: 66.4375em) {
+ .pull-quote {
+ margin-right: 20px
+ }
+ .pull-quote.left {
+ float: left;
+ left: 0;
+ position: relative
+ }
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .pull-quote {
+ width: 100%
+ }
+ }
+
+ .pull-quote .share-bar {
+ -webkit-align-items: center;
+ -ms-flex-align: center;
+ align-items: center;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ margin-bottom: 23px
+ }
+
+ .pull-quote .share-bar [class*='-btn']:not(:last-of-type) {
+ margin-right: 20px
+ }
+
+ .pull-quote .share-bar .separator {
+ background: #e5e5e5;
+ -webkit-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+ height: 4px;
+ margin-left: 25px
+ }
+
+ @media only screen and (max-width: 66.4375em) {
+ .pull-quote .share-bar .share-icon,
+ .pull-quote .share-bar .fb-share-icon,
+ .pull-quote .share-bar .tweet-share-icon,
+ .pull-quote .share-bar .ln-share-icon {
+ width: 50px
+ }
+ }
+
+ .pull-quote .content {
+ color: #1eb6de;
+ font-style: italic
+ }
+
+ .svg-sprite-container {
+ height: 0;
+ position: absolute;
+ visibility: hidden;
+ width: 0
+ }
+
+ body.vertical-hub .top-nav {
+ height: 56px
+ }
+
+ body.vertical-hub:after {
+ clear: both;
+ content: '';
+ display: block
+ }
+
+ .page-tv .top-nav .sub-nav .tv {
+ background-color: #00b7e0;
+ border-color: #00a2c7
+ }
+
+ .page-tv .top-nav .sub-nav .tv a {
+ color: #fff
+ }
+
+ .page-tv .top-nav:after {
+ border-bottom: 4px solid #00b7e0
+ }
+
+ .page-movies .top-nav .sub-nav .movies {
+ background-color: #09d3bf;
+ border-color: #08bba9
+ }
+
+ .page-movies .top-nav .sub-nav .movies a {
+ color: #fff
+ }
+
+ .page-movies .top-nav:after {
+ border-bottom: 4px solid #09d3bf
+ }
+
+ .page-games .top-nav .sub-nav .games {
+ background-color: #94d11f;
+ border-color: #84bb1c
+ }
+
+ .page-games .top-nav .sub-nav .games a {
+ color: #fff
+ }
+
+ .page-games .top-nav:after {
+ border-bottom: 4px solid #94d11f
+ }
+
+ .page-explore .top-nav .nav-links-item.explore {
+ background-color: #656e78;
+ border-color: #59616a
+ }
+
+ .page-explore .top-nav .nav-links-item.explore&gt;
+ a {
+ color: #fff
+ }
+
+ .page-explore .top-nav:after {
+ border-bottom: 2px solid #656e78
+ }
+
+ .home-fandom {
+ font-weight: bold;
+ text-transform: uppercase
+ }
+
+ .top-nav {
+ background-color: #fff;
+ border-image: linear-gradient(to right, #39424d 40%, #656e78 40%) 1 0 0;
+ border-left: 0 none;
+ border-right: 0 none;
+ border-top-style: solid;
+ border-top-width: 6px;
+ font-weight: 500;
+ height: 55px;
+ position: relative
+ }
+
+ .top-nav:after {
+ border-bottom: 1px solid #ccc;
+ clear: both;
+ content: '';
+ display: block
+ }
+
+ .top-nav a {
+ color: #39424d;
+ display: inline-block
+ }
+
+ .top-nav a:hover {
+ color: #00b7e0
+ }
+
+ .top-nav .hamburger,
+ .top-nav .hamburger-close {
+ -webkit-animation: fade-in 0.65s ease forwards;
+ animation: fade-in 0.65s ease forwards;
+ cursor: pointer;
+ height: 24px;
+ padding-left: 1rem;
+ position: absolute;
+ top: 13px;
+ width: 24px
+ }
+
+ .top-nav .wordmark-desktop {
+ -webkit-flex: 0 0 254px;
+ -ms-flex: 0 0 254px;
+ flex: 0 0 254px;
+ margin: 0 20px
+ }
+
+ .top-nav .nav-links-item {
+ border-style: solid;
+ border-width: 0;
+ position: relative
+ }
+
+ .top-nav .nav-links-item.games {
+ border-color: #94d11f
+ }
+
+ .top-nav .nav-links-item.movies {
+ border-color: #09d3bf
+ }
+
+ .top-nav .nav-links-item.tv {
+ border-color: #00b7e0
+ }
+
+ .top-nav .nav-links-item.explore,
+ .top-nav .nav-links-item.explore-mobile,
+ .top-nav .nav-links-item.generic {
+ border-color: #656e78
+ }
+
+ .top-nav .nav-links-item.generic {
+ border-left-width: 0 !important;
+ font-weight: normal
+ }
+
+ .top-nav .avatar {
+ border: 2px solid #c5ced9;
+ border-radius: 50%;
+ display: inline-block;
+ height: 30px;
+ margin-right: 9px;
+ width: 30px
+ }
+
+ .top-nav .icon-sign-in-gray {
+ display: inline-block;
+ height: 30px;
+ width: 30px
+ }
+
+ .top-nav .logo-fandom {
+ display: block;
+ height: 26px;
+ margin: 12px auto 4px;
+ width: 131px
+ }
+
+ .top-nav .logo-fandom-tagline {
+ height: 26px;
+ margin-top: 10px;
+ width: 254px
+ }
+
+ .top-nav .search-bar {
+ box-sizing: border-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: column;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ -webkit-justify-content: center;
+ -ms-flex-pack: center;
+ justify-content: center
+ }
+
+ .top-nav .search-form {
+ line-height: 18px
+ }
+
+ .top-nav .search-form .svg-wrap {
+ padding: 4px 2px 4px 0
+ }
+
+ .top-nav .search-form .icon-search {
+ height: 18px;
+ margin-bottom: -3px;
+ width: 18px
+ }
+
+ .top-nav .search-form .search-field {
+ border-width: 0;
+ outline: none;
+ padding: 4px 0;
+ width: 70%
+ }
+
+ .top-nav .search-form .search-field::-webkit-input-placeholder {
+ color: #c5ced9
+ }
+
+ .top-nav .search-form .search-field::-moz-placeholder {
+ color: #c5ced9
+ }
+
+ .top-nav .search-form .search-field:-ms-input-placeholder {
+ color: #c5ced9
+ }
+
+ .top-nav .search-form .search-field::placeholder {
+ color: #c5ced9
+ }
+
+ .top-nav .search-form .search-field::-moz-placeholder {
+ color: #c5ced9
+ }
+
+ .top-nav .search-form .search-field:-ms-input-placeholder {
+ color: #c5ced9
+ }
+
+ .top-nav .search-form .search-field::webkit-input-placeholder {
+ color: #c5ced9
+ }
+
+ .top-nav .search-line {
+ border-bottom: 1px solid #1a1a1a;
+ width: 90%
+ }
+
+ .top-nav .sub-nav {
+ -webkit-flex-grow: 0;
+ -ms-flex-positive: 0;
+ flex-grow: 0;
+ -webkit-flex-shrink: 0;
+ -ms-flex-negative: 0;
+ flex-shrink: 0
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .top-nav {
+ border-image: none;
+ border-top-color: #092344
+ }
+ .top-nav .hide-for-mobile {
+ display: none
+ }
+ .top-nav .wordmark-desktop {
+ display: none
+ }
+ .top-nav .logo-fandom-tagline {
+ display: none
+ }
+ .top-nav .sub-nav {
+ background-color: #39424d;
+ height: 100vh;
+ left: 0;
+ position: absolute;
+ text-align: left;
+ top: 48px;
+ width: 100vw;
+ z-index: 100001
+ }
+ .top-nav .sub-nav a {
+ color: #fff;
+ display: block;
+ font-size: 1.5rem;
+ font-weight: bold;
+ line-height: 60px;
+ padding: 0 1rem
+ }
+ .top-nav .sub-nav .nav-links-item {
+ border-left-width: 6px;
+ margin-bottom: 2px
+ }
+ .top-nav .sub-nav .icon-menu-control {
+ fill: #656e78;
+ float: right;
+ height: 24px;
+ margin-top: 17px;
+ -webkit-transform: rotate(270deg);
+ transform: rotate(270deg);
+ width: 24px
+ }
+ .top-nav .cta-link {
+ background-color: #656e78;
+ margin-bottom: 2px
+ }
+ .top-nav .cta-link a {
+ font-size: 1rem
+ }
+ .top-nav .cta-link .icon-arrow-white {
+ float: none;
+ fill: #fff;
+ height: 24px;
+ margin-top: -3px !important;
+ -webkit-transform: rotate(180deg) scaleX(-1) translateY(1px);
+ transform: rotate(180deg) scaleX(-1) translateY(1px);
+ vertical-align: middle;
+ width: 24px
+ }
+ .top-nav .top-nav-wrapper {
+ text-align: center;
+ width: 100%
+ }
+ .top-nav .mobile-drawer {
+ position: absolute;
+ top: 48px;
+ width: 100%
+ }
+ .top-nav .user-state-mobile {
+ background-color: #656e78;
+ color: #fff;
+ line-height: 48px;
+ padding: 0 18px
+ }
+ .top-nav .user-state-mobile .icon-sign-in-gray {
+ -webkit-transform: translateY(-2px);
+ transform: translateY(-2px)
+ }
+ .top-nav .user-state-mobile a {
+ display: inline-block;
+ font-size: 1rem;
+ font-weight: 500;
+ padding: 0
+ }
+ .top-nav .user-state-mobile a.log-out {
+ float: right
+ }
+ .top-nav .search-icon,
+ .top-nav .search-close {
+ -webkit-animation: fade-in 0.65s ease forwards;
+ animation: fade-in 0.65s ease forwards;
+ cursor: pointer;
+ padding: 3px 3px 0;
+ position: absolute;
+ right: 12px;
+ top: 9px
+ }
+ .top-nav .search-bar {
+ background-color: #fff;
+ border-bottom: 1px solid #c5ced9;
+ height: 50px;
+ left: 0;
+ line-height: 20px;
+ padding: 0 20px 15px 20px;
+ position: absolute;
+ top: 49px;
+ width: 100%;
+ z-index: 100002
+ }
+ .top-nav .search-bar .svg-wrap {
+ -webkit-flex: 0 0 25px;
+ -ms-flex: 0 0 25px;
+ flex: 0 0 25px;
+ padding-right: 7px
+ }
+ .top-nav .search-line {
+ width: 100%
+ }
+ .top-nav .search-form {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ line-height: 1rem;
+ margin-top: 8px
+ }
+ .top-nav .search-form .search-field {
+ width: 100%
+ }
+ }
+
+ @media only screen and (max-width: 39.9375em) {
+ .top-nav .sub-nav a {
+ font-size: 1rem;
+ line-height: 48px
+ }
+ .top-nav .sub-nav .icon-arrow-white {
+ height: 24px;
+ margin-right: 16px;
+ margin-top: 15px;
+ width: 24px
+ }
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .wds-global-navigation {
+ display: none
+ }
+ .top-nav {
+ display: block
+ }
+ #wpadminbar {
+ display: none !important
+ }
+ .top-nav+.tagline {
+ background-color: #fff;
+ line-height: 23px;
+ position: relative;
+ text-align: center
+ }
+ .top-nav+.tagline img {
+ vertical-align: baseline
+ }
+ .top-nav+.tagline .partner-slot {
+ position: absolute;
+ right: 12px;
+ top: 3px
+ }
+ .top-nav+.tagline .partner-slot img {
+ height: 17px
+ }
+ .games-hub,
+ .movies-hub,
+ .tv-hub {
+ display: none
+ }
+ body.vertical-hub .hub-name {
+ height: 23px
+ }
+ body.vertical-hub .hub-name p {
+ text-align: center;
+ font-weight: bold;
+ letter-spacing: -0.7px;
+ color: #fff;
+ margin: 0;
+ font-size: 1rem;
+ line-height: 1.5rem
+ }
+ body.vertical-hub .top-nav:after {
+ border-bottom: none
+ }
+ .page-tv .hub-name {
+ background-color: #00b7e0
+ }
+ .page-tv .hub-name .tv-hub {
+ display: block
+ }
+ .page-movies .hub-name {
+ background-color: #09d3bf
+ }
+ .page-movies .hub-name .movies-hub {
+ display: block
+ }
+ .page-games .hub-name {
+ background-color: #94d11f
+ }
+ .page-games .hub-name .games-hub {
+ display: block
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .top-nav {
+ display: none
+ }
+ .wds-global-navigation {
+ display: block
+ }
+ }
+
+ figure.video {
+ margin-top: 0.4rem;
+ margin-bottom: 1.5rem
+ }
+
+ figure.video figcaption {
+ padding: 10px 10px 0
+ }
+
+ figure.video figcaption .caption {
+ color: #999;
+ display: block;
+ font-style: italic;
+ line-height: 1rem
+ }
+
+ figure.video figcaption .caption-title {
+ color: #39424d;
+ display: block;
+ font-weight: bold
+ }
+
+ figure.ooyala-video .innerWrapper {
+ height: 100% !important;
+ width: 100% !important;
+ z-index: 10 !important
+ }
+
+ figure.ooyala-video.video iframe[src^="http://imasdk.googleapis.com/"] {
+ z-index: 10004
+ }
+
+ .play-button-overlay {
+ background-image: url("http://vignette.wikia.nocookie.net/6857d275-0eb0-4e97-9401-3d23da474ed0");
+ background-repeat: no-repeat;
+ z-index: 1
+ }
+
+ [data-user] {
+ visibility: hidden
+ }
+
+ [data-user] [data-facebook-link],
+ [data-user] [data-twitter-link] {
+ display: none
+ }
+
+ .gpt-ad&gt;
+ div {
+ box-sizing: content-box;
+ padding-top: 16px;
+ padding-right: 0;
+ padding-bottom: 0px;
+ padding-left: 0
+ }
+
+ .gpt-ad&gt;
+ div::before {
+ color: #656e78;
+ content: attr(data-win-advertisement-text);
+ display: block;
+ margin-top: -16px;
+ padding-bottom: 6px;
+ position: absolute;
+ text-transform: uppercase
+ }
+
+ .gpt-ad.slot-animation {
+ transition: max-height 0.8s ease;
+ overflow: hidden
+ }
+
+ .gpt-ad.slot-responsive {
+ width: 100%
+ }
+
+ .gpt-ad.slot-responsive&gt;
+ div {
+ position: relative
+ }
+
+ .gpt-ad.slot-responsive&gt;
+ div iframe {
+ height: 100%;
+ left: 0;
+ position: absolute;
+ width: 100%;
+ top: 0
+ }
+
+ .home-top-leaderboard,
+ .article-top-leaderboard,
+ .vertical-top-leaderboard,
+ .page-top-leaderboard {
+ background: #f6f6f6;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-justify-content: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ position: relative
+ }
+
+ .home-top-leaderboard&gt;
+ div,
+ .article-top-leaderboard&gt;
+ div,
+ .vertical-top-leaderboard&gt;
+ div,
+ .page-top-leaderboard&gt;
+ div {
+ padding-top: 23px;
+ padding-right: 0;
+ padding-bottom: 25px;
+ padding-left: 0
+ }
+
+ .home-top-leaderboard.featured,
+ .article-top-leaderboard.featured,
+ .vertical-top-leaderboard.featured,
+ .page-top-leaderboard.featured {
+ background: #1a1a1a
+ }
+
+ .article-top-box-ad-mobile {
+ background: #f6f6f6;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-justify-content: center;
+ -ms-flex-pack: center;
+ justify-content: center
+ }
+
+ .article-top-box-ad-mobile&gt;
+ div {
+ padding-top: 23px;
+ padding-right: 0;
+ padding-bottom: 10px;
+ padding-left: 0
+ }
+
+ .home-top-leaderboard&gt;
+ div,
+ .vertical-top-leaderboard&gt;
+ div {
+ padding-top: 34px;
+ padding-right: 0;
+ padding-bottom: 25px;
+ padding-left: 0
+ }
+
+ .home-bottom-leaderboard,
+ .article-bottom-leaderboard-desktop,
+ .article-bottom-leaderboard-mobile,
+ .vertical-bottom-leaderboard,
+ .page-bottom-leaderboard {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-justify-content: center;
+ -ms-flex-pack: center;
+ justify-content: center
+ }
+
+ .article-bottom-leaderboard-desktop-wrapper {
+ background: #f6f6f6;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-justify-content: center;
+ -ms-flex-pack: center;
+ justify-content: center
+ }
+
+ .article-bottom-leaderboard-desktop-wrapper .article-bottom-leaderboard-desktop&gt;
+ div {
+ margin: 15px 0
+ }
+
+ .home-top-box-ad,
+ .vertical-top-box-ad {
+ margin-bottom: 40px
+ }
+
+ .featured-article-rail .article-top-box-ad-desktop&gt;
+ div {
+ padding-bottom: 40px
+ }
+
+ .article-top-box-ad-desktop&gt;
+ div {
+ padding-top: 23px;
+ padding-right: 0;
+ padding-bottom: 22px;
+ padding-left: 0
+ }
+
+ .incontent-boxad-desktop {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-justify-content: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ padding: 7px 0 13px 0;
+ position: fixed;
+ top: 42px
+ }
+
+ .incontent-boxad-desktop.pinned-top {
+ position: static;
+ top: 0
+ }
+
+ .incontent-boxad-desktop.pinned-bottom {
+ bottom: 0;
+ position: absolute;
+ top: auto
+ }
+
+ .tracking-pixels {
+ position: absolute;
+ visibility: hidden
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .gpt-more-top-stories-box-ad&gt;
+ div {
+ margin: 50px 0 40px
+ }
+ .article-bottom-box-ad-mobile,
+ .incontent-boxad-mobile {
+ display: none
+ }
+ .home-bottom-leaderboard,
+ .article-bottom-leaderboard-desktop,
+ .vertical-bottom-leaderboard,
+ .page-bottom-leaderboard {
+ margin: 0 0 10px 0
+ }
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .gpt-more-top-stories-box-ad,
+ .home-top-box-ad,
+ .vertical-top-box-ad,
+ .article-top-leaderboard-mobile,
+ .article-bottom-leaderboard-mobile,
+ .article-top-box-ad-mobile,
+ .article-bottom-box-ad-mobile,
+ .incontent-boxad-mobile,
+ .page-top-box-ad {
+ background: #f6f6f6;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-justify-content: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ position: static;
+ width: 100%
+ }
+ .gpt-more-top-stories-box-ad&gt;
+ div,
+ .home-top-box-ad&gt;
+ div,
+ .vertical-top-box-ad&gt;
+ div,
+ .article-top-leaderboard-mobile&gt;
+ div,
+ .article-bottom-leaderboard-mobile&gt;
+ div,
+ .article-top-box-ad-mobile&gt;
+ div,
+ .article-bottom-box-ad-mobile&gt;
+ div,
+ .incontent-boxad-mobile&gt;
+ div,
+ .page-top-box-ad&gt;
+ div {
+ padding-top: 23px;
+ padding-right: 0;
+ padding-bottom: 10px;
+ padding-left: 0
+ }
+ .article-bottom-box-ad-mobile,
+ .incontent-boxad-mobile {
+ -webkit-flex: 1 1 auto;
+ -ms-flex: 1 1 auto;
+ flex: 1 1 auto
+ }
+ .incontent-boxad-desktop {
+ display: none
+ }
+ .home-bottom-leaderboard,
+ .article-bottom-leaderboard-desktop,
+ .vertical-bottom-leaderboard,
+ .page-bottom-leaderboard {
+ background: none;
+ width: 100%;
+ margin: 0 0 1px 0
+ }
+ .home-bottom-leaderboard&gt;
+ div,
+ .article-bottom-leaderboard-desktop&gt;
+ div,
+ .vertical-bottom-leaderboard&gt;
+ div,
+ .page-bottom-leaderboard&gt;
+ div {
+ margin: 10px 0
+ }
+ .gpt-ad.article-bottom-leaderboard-mobile&gt;
+ div {
+ background-color: #000;
+ margin: 0 0 36px 0
+ }
+ .gpt-ad.article-bottom-leaderboard-mobile&gt;
+ div.replay-overlay {
+ height: calc(100% - 36px)
+ }
+ }
+
+ .kxinvisible {
+ display: none
+ }
+
+ .invisible-skin {
+ display: none
+ }
+
+ .ad-skin {
+ display: none
+ }
+
+ body.skin-ad .ad-skin {
+ background-position-y: -46px;
+ background-repeat: no-repeat;
+ background-size: 100%;
+ display: block
+ }
+
+ @media only screen and (max-width: 106.1875em) {
+ body.skin-ad .ad-skin {
+ left: 50%;
+ margin-left: -850px;
+ width: 1700px
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ body.skin-ad .index-page-wrapper {
+ overflow: hidden
+ }
+ body.skin-ad .index-page-inner {
+ max-width: 1064px;
+ margin: 0 auto;
+ position: relative
+ }
+ body.skin-ad .ad-skin {
+ height: 100%;
+ max-width: 100%;
+ min-width: 1700px;
+ position: absolute;
+ -webkit-transform: translate3d(0px, 0px, 0px);
+ transform: translate3d(0px, 0px, 0px);
+ width: 100%
+ }
+ body.skin-ad .ad-skin.fixed {
+ bottom: 0;
+ position: fixed;
+ top: 0
+ }
+ body.skin-ad .home-top-leaderboard,
+ body.skin-ad .vertical-top-leaderboard {
+ background-color: transparent
+ }
+ body.skin-ad .home-top-leaderboard&gt;
+ div,
+ body.skin-ad .vertical-top-leaderboard&gt;
+ div {
+ padding: 10px 0 20px 0
+ }
+ body.skin-ad .home-top-leaderboard&gt;
+ div::before,
+ body.skin-ad .vertical-top-leaderboard&gt;
+ div::before {
+ display: none
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .gpt-ad.bfaa-template.on-animation,
+ .gpt-ad.bfab-template.on-animation {
+ background: #000
+ }
+ }
+
+ .gpt-ad.bfaa-template,
+ .gpt-ad.bfab-template {
+ display: block
+ }
+
+ .gpt-ad.bfaa-template&gt;
+ div,
+ .gpt-ad.bfab-template&gt;
+ div {
+ padding: 0;
+ position: relative;
+ text-align: center;
+ width: 100%
+ }
+
+ .gpt-ad.bfaa-template&gt;
+ div::before,
+ .gpt-ad.bfab-template&gt;
+ div::before {
+ display: none
+ }
+
+ .gpt-ad.bfaa-template .video-player.video-player-left,
+ .gpt-ad.bfaa-template .video-player.video-player-right,
+ .gpt-ad.bfab-template .video-player.video-player-left,
+ .gpt-ad.bfab-template .video-player.video-player-right {
+ position: absolute !important;
+ z-index: 100
+ }
+
+ .gpt-ad.bfaa-template .video-player.video-player-right,
+ .gpt-ad.bfab-template .video-player.video-player-right {
+ right: 0
+ }
+
+ .gpt-ad.bfaa-template .video-player .progress-bar,
+ .gpt-ad.bfab-template .video-player .progress-bar {
+ background: #666;
+ bottom: 0;
+ height: 8px;
+ left: 0;
+ position: absolute;
+ width: 100%
+ }
+
+ .gpt-ad.bfaa-template .video-player .current-time,
+ .gpt-ad.bfab-template .video-player .current-time {
+ background: #b7b7b7;
+ height: 100%;
+ max-width: 100%;
+ width: 0;
+ transition: width linear
+ }
+
+ .gpt-ad.bfaa-template iframe,
+ .gpt-ad.bfab-template iframe {
+ height: 100%;
+ left: 0;
+ position: absolute;
+ width: 100%;
+ top: 0
+ }
+
+ .gpt-ad.bfaa-template .replay-overlay,
+ .gpt-ad.bfaa-template .pause-overlay,
+ .gpt-ad.bfab-template .replay-overlay,
+ .gpt-ad.bfab-template .pause-overlay {
+ cursor: pointer;
+ height: 100%;
+ position: absolute
+ }
+
+ .gpt-ad.bfaa-template .replay-overlay,
+ .gpt-ad.bfab-template .replay-overlay {
+ background: rgba(0, 0, 0, 0.7) url("data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCI+DQogICAgPGNpcmNsZSBmaWxsPSIjZmZmIiBvcGFjaXR5PSIwLjQiIGN4PSIxNCIgY3k9IjE0IiByPSIxMy43NCIvPg0KICAgIDxwYXRoIGZpbGw9IiMyMzFmMjAiDQogICAgICAgICAgZD0iTTE2LDIuOTRBMTMuMDcsMTMuMDcsMCwxLDEsMywxNiwxMy4wOCwxMy4wOCwwLDAsMSwxNiwyLjk0TTE2LDJBMTQsMTQsMCwxLDAsMzAsMTYsMTQsMTQsMCwwLDAsMTYsMloiDQogICAgICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIuMDQgLTIuMDEpIi8+DQogICAgPHBvbHlnb24gZmlsbD0iIzIzMWYyMCIgcG9pbnRzPSIyMC4xNyAxNCA5LjYzIDIwLjIzIDkuNjMgNy43NyAyMC4xNyAxNCIvPg0KPC9zdmc+") center/80px no-repeat;
+ display: none;
+ z-index: 1
+ }
+
+ .gpt-ad.bfaa-template .pause-overlay,
+ .gpt-ad.bfab-template .pause-overlay {
+ top: 0;
+ width: 100%
+ }
+
+ .gpt-ad.bfaa-template .close-ad,
+ .gpt-ad.bfab-template .close-ad {
+ background: url("data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfNF9jb3B5XzIiIGRhdGEtbmFtZT0iTGF5ZXIgNCBjb3B5IDIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI4IDI4Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmZjtvcGFjaXR5OjAuNDt9LmNscy0ye2ZpbGw6IzIzMWYyMDt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPmNsb3NlX2J1dHRvbjwvdGl0bGU+PGNpcmNsZSBjbGFzcz0iY2xzLTEiIGN4PSIxNC4wOSIgY3k9IjE0LjA5IiByPSIxMy43NCIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTE2LDIuOTNBMTMuMDcsMTMuMDcsMCwxLDEsMi45MywxNiwxMy4wOCwxMy4wOCwwLDAsMSwxNiwyLjkzTTE2LDJBMTQsMTQsMCwxLDAsMzAsMTYsMTQsMTQsMCwwLDAsMTYsMloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yIC0yKSIvPjxnIGlkPSJQYWdlLTEiPjxnIGlkPSJTVElDS0VSU0hFRVQiPjxnIGlkPSJJY29ucyI+PGcgaWQ9IkNyb3NzIj48cGF0aCBpZD0iQ2xvc2UiIGNsYXNzPSJjbHMtMiIgZD0iTTIyLjI5LDguMjksMTYsMTQuNTksOS43MSw4LjI5QTEsMSwwLDAsMCw4LjI5LDkuNzFMMTQuNTksMTYsOC4yOSwyMi4yOWExLDEsMCwxLDAsMS40MSwxLjQxTDE2LDE3LjQxbDYuMjksNi4yOWExLDEsMCwxLDAsMS40MS0xLjQxTDE3LjQxLDE2bDYuMjktNi4yOWExLDEsMCwwLDAtMS40MS0xLjQxWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIgLTIpIi8+PC9nPjwvZz48L2c+PC9nPjwvc3ZnPg==");
+ cursor: pointer;
+ height: 30px;
+ margin: 10px 10px 30px 30px;
+ position: absolute;
+ right: 0;
+ top: 0;
+ width: 30px
+ }
+
+ .gpt-ad.bfaa-template .volume-button,
+ .gpt-ad.bfab-template .volume-button {
+ bottom: 18px;
+ cursor: pointer;
+ position: absolute;
+ right: 10px
+ }
+
+ .gpt-ad.bfaa-template .volume-button .speaker,
+ .gpt-ad.bfab-template .volume-button .speaker {
+ background: url("data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfNCIgZGF0YS1uYW1lPSJMYXllciA0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiNmZmY7b3BhY2l0eTowLjQ7fS5jbHMtMntmaWxsOiMyMzFmMjA7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5zb3VuZF9vbl9idXR0b248L3RpdGxlPjxjaXJjbGUgY2xhc3M9ImNscy0xIiBjeD0iMTMuOTYiIGN5PSIxNC4wNiIgcj0iMTMuNzQiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0xNiwyLjkzQTEzLjA3LDEzLjA3LDAsMSwxLDIuOTMsMTYsMTMuMDgsMTMuMDgsMCwwLDEsMTYsMi45M00xNiwyQTE0LDE0LDAsMSwwLDMwLDE2LDE0LDE0LDAsMCwwLDE2LDJaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMiAtMikiLz48ZyBpZD0iUGFnZS0xIj48ZyBpZD0iVmlkZW8tUGxheWVyLVNraW4iPjxnIGlkPSJWaWRlby1Db3B5Ij48ZyBpZD0idm9sdW1lIj48cGF0aCBpZD0iU2hhcGUiIGNsYXNzPSJjbHMtMiIgZD0iTTE0LjI0LDkuMTdsLTMuNzksNC4xMUg2LjgyYy0uNzgsMC0xLC40Ni0xLC44OVYxNy43YTEsMSwwLDAsMCwxLDFoMy42NWwzLjc5LDQuMThhMS4wOSwxLjA5LDAsMCwwLC41My4xNCwxLDEsMCwwLDAsLjUtLjE0LDEsMSwwLDAsMCwuNS0uOVYxMGExLDEsMCwwLDAtLjUtLjksMS4wNiwxLjA2LDAsMCwwLTEsLjA1WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIgLTIpIi8+PHBhdGggaWQ9IlNoYXBlLTIiIGRhdGEtbmFtZT0iU2hhcGUiIGNsYXNzPSJjbHMtMiIgZD0iTTE5LjE4LDE5LjMzYTQuMzksNC4zOSwwLDAsMCwwLTYuMTkuNzEuNzEsMCwwLDAtMSwxLDMsMywwLDAsMSwwLDQuMTkuNzEuNzEsMCwwLDAsMSwxWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIgLTIpIi8+PHBhdGggaWQ9IlNoYXBlLTMiIGRhdGEtbmFtZT0iU2hhcGUiIGNsYXNzPSJjbHMtMiIgZD0iTTIzLjMsMTYuMjNhNi4xOSw2LjE5LDAsMCwwLTEuODEtNC4zOS43MS43MSwwLDEsMC0xLDEsNC44MSw0LjgxLDAsMCwxLDAsNi43OS43MS43MSwwLDEsMCwxLDEsNi4xOSw2LjE5LDAsMCwwLDEuODEtNC4zOVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yIC0yKSIvPjwvZz48L2c+PC9nPjwvZz48L3N2Zz4=");
+ display: inline-block;
+ height: 30px;
+ overflow: hidden;
+ position: relative;
+ width: 30px
+ }
+
+ .gpt-ad.bfaa-template .volume-button .speaker.mute,
+ .gpt-ad.bfab-template .volume-button .speaker.mute {
+ background: url("data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfNF9jb3B5IiBkYXRhLW5hbWU9IkxheWVyIDQgY29weSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjggMjgiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojZmZmO29wYWNpdHk6MC40O30uY2xzLTJ7ZmlsbDojMjMxZjIwO308L3N0eWxlPjwvZGVmcz48dGl0bGU+c291bmRfb2ZmX2J1dHRvbjwvdGl0bGU+PGNpcmNsZSBjbGFzcz0iY2xzLTEiIGN4PSIxNC4wNiIgY3k9IjEzLjk2IiByPSIxMy43NCIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTE2LDIuOTNBMTMuMDcsMTMuMDcsMCwxLDEsMi45MywxNiwxMy4wOCwxMy4wOCwwLDAsMSwxNiwyLjkzTTE2LDJBMTQsMTQsMCwxLDAsMzAsMTYsMTQsMTQsMCwwLDAsMTYsMloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yIC0yKSIvPjxnIGlkPSJQYWdlLTEiPjxnIGlkPSJWaWRlby1QbGF5ZXItU2tpbiI+PGcgaWQ9IlZpZGVvLUNvcHkiPjxnIGlkPSJ2b2x1bWUtb2ZmIj48cGF0aCBpZD0iU2hhcGUiIGNsYXNzPSJjbHMtMiIgZD0iTTE0LjI1LDkuMTdsLTMuNzksNC4xMUg2Ljg0Yy0uNzgsMC0xLC40Ni0xLC44OVYxNy43YTEsMSwwLDAsMCwxLDFoMy42NWwzLjc5LDQuMThhMS4wOSwxLjA5LDAsMCwwLC41My4xNCwxLDEsMCwwLDAsLjUtLjE0LDEsMSwwLDAsMCwuNS0uOVYxMGExLDEsMCwwLDAtLjUtLjksMS4wNiwxLjA2LDAsMCwwLTEsLjA1WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIgLTIpIi8+PHBhdGggaWQ9IkZpbGwtMSIgY2xhc3M9ImNscy0yIiBkPSJNMjIuOTEsMTYuMjFsMy0zYS45Mi45MiwwLDEsMC0xLjMtMS4zbC0zLDMtMy0zYS45Mi45MiwwLDEsMC0xLjMsMS4zbDMsMy0zLDNhLjkyLjkyLDAsMSwwLDEuMywxLjNsMy0zLDMsM2EuOTIuOTIsMCwxLDAsMS4zLTEuM1oiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yIC0yKSIvPjwvZz48L2c+PC9nPjwvZz48L3N2Zz4=")
+ }
+
+ body.vuap-loaded {
+ transition: padding .4s ease
+ }
+
+ .gpt-ad.bfaa-template {
+ height: auto;
+ left: 0;
+ overflow: hidden;
+ position: absolute;
+ width: 100%;
+ transition: height .4s ease;
+ top: 0
+ }
+
+ .gpt-ad.bfaa-template video {
+ left: 0
+ }
+
+ .gpt-ad.bfab-template {
+ max-width: 1024px;
+ width: 100%;
+ overflow: hidden;
+ position: relative;
+ transition: height .4s ease
+ }
+
+ .gpt-ad.bfab-template video {
+ left: 0
+ }
+
+ .article-bottom-leaderboard-mobile.bfab-template {
+ background: none
+ }
+
+ .article-bottom-leaderboard-desktop.bfab-template {
+ margin: 15px 0
+ }
+
+ .article-bottom-leaderboard-desktop.bfab-template&gt;
+ div {
+ margin: 0
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .bfab-template&gt;
+ div {
+ margin: 0 0 1px 0
+ }
+ .gpt-ad.bfaa-template .video-player&gt;
+ iframe,
+ .gpt-ad.bfab-template .video-player&gt;
+ iframe {
+ z-index: -1
+ }
+ }
+
+ .email-share-btn {
+ background-color: #656e78;
+ fill: #fff
+ }
+
+ .email-share-btn .icon {
+ -webkit-transform: translateX(-3px) translateY(3px);
+ transform: translateX(-3px) translateY(3px)
+ }
+
+ .event-banner.location-top-banner {
+ background-image: url("http://vignette.wikia.nocookie.net/f4de9517-67b8-4f9e-a13b-397c7af50f14");
+ background-position: center;
+ background-size: cover;
+ height: 100px;
+ padding: 0;
+ position: relative
+ }
+
+ .event-banner.location-top-banner .event-header {
+ color: #7e90a2;
+ padding-top: 35px;
+ text-align: center
+ }
+
+ .event-banner.location-top-banner .event-header h2 {
+ font-size: 25px;
+ line-height: 25px;
+ margin-bottom: 5px
+ }
+
+ .event-banner.location-top-banner .event-header h2 span {
+ color: #1a1a1a
+ }
+
+ .event-banner.location-top-banner .event-header .sponsorship {
+ font-size: .625rem;
+ font-weight: bold;
+ line-height: 14px;
+ text-transform: uppercase
+ }
+
+ .event-banner.location-top-banner .event-header .sponsorship a {
+ color: #7e90a2
+ }
+
+ .event-banner.location-top-banner .event-header .sponsorship img {
+ height: 14px;
+ margin: -1px 0 0 5px;
+ width: 85px
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .event-banner.location-top-banner {
+ background-image: url("http://vignette.wikia.nocookie.net/a735da1e-e2fc-4d93-86fd-e441d5dc83a9");
+ height: 415px
+ }
+ .event-banner.location-top-banner .event-header {
+ float: right;
+ margin-right: 20px;
+ padding-top: 35px;
+ text-align: right
+ }
+ .event-banner.location-top-banner .event-header h2 {
+ font-size: 36px;
+ line-height: 36px;
+ margin-bottom: 5px
+ }
+ .event-banner.location-top-banner .event-header .sponsorship {
+ font-size: .75rem
+ }
+ }
+
+ body.single .event-banner.location-top-banner {
+ border-bottom: 1px solid #fff
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ body.single .event-banner.location-top-banner {
+ background-position: center top;
+ background-size: auto;
+ height: 100px
+ }
+ }
+
+ .clickable-unit {
+ cursor: pointer
+ }
+
+ .clickable-unit .clickable-anchor {
+ color: #fff
+ }
+
+ .clickable-unit.post .clickable-anchor {
+ color: #39424d
+ }
+
+ .clickable-unit.hover .clickable-anchor {
+ color: #00b7e0
+ }
+
+ .fan-feed {
+ background-color: #fff;
+ padding: 30px 0
+ }
+
+ .fan-feed header {
+ padding-left: 10px
+ }
+
+ .fan-feed h2 {
+ letter-spacing: -.9px
+ }
+
+ .fan-feed figcaption {
+ padding: 15px 10px 36px
+ }
+
+ .fan-feed .fan-feed-content {
+ margin-top: -18px
+ }
+
+ .fan-feed .fan-feed-posts {
+ margin-top: 18px
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .fan-feed {
+ padding: 30px 20px
+ }
+ .fan-feed .fan-feed-rail {
+ margin-left: 29px;
+ -webkit-flex: 0 0 300px;
+ -ms-flex: 0 0 300px;
+ flex: 0 0 300px
+ }
+ .fan-feed .fan-feed-posts .grid-content,
+ .fan-feed .fan-feed-posts section.post-archive .pagination,
+ section.post-archive .fan-feed .fan-feed-posts .pagination {
+ padding: 0 12px 0 0
+ }
+ .fan-feed .wrap {
+ margin-right: -12px
+ }
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .fan-feed {
+ padding-bottom: 0
+ }
+ .fan-feed h2 {
+ font-size: 1.5rem;
+ line-height: 1.8125rem
+ }
+ .fan-feed header {
+ padding-left: 1rem
+ }
+ .fan-feed .fan-feed-rail {
+ -webkit-flex: 0 0 auto;
+ -ms-flex: 0 0 auto;
+ flex: 0 0 auto;
+ width: 100%
+ }
+ }
+
+ body.vertical-hub .fan-feed .category:not(.cat-sponsored) {
+ display: none
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ body.single .fan-feed {
+ background: linear-gradient(to bottom, #f6f6f6, #fff) repeat-x;
+ background-size: auto 210px
+ }
+ }
+
+ .post-list {
+ width: 100%
+ }
+
+ .post-list .post {
+ border-top: 1px solid #c5ced9;
+ padding: 20px 0
+ }
+
+ .post-list .post-thumbnail img {
+ display: inline
+ }
+
+ .post-list .thumbnail {
+ padding-left: 0
+ }
+
+ .post-list .category {
+ position: absolute
+ }
+
+ .post-list .has-video a::before {
+ background-image: url("http://vignette.wikia.nocookie.net/6857d275-0eb0-4e97-9401-3d23da474ed0");
+ background-position: bottom 15px right 15px;
+ background-repeat: no-repeat;
+ z-index: 1;
+ background-position: bottom 10px right 10px;
+ background-size: 30px 30px
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .post-list .category {
+ bottom: 27px;
+ left: 0;
+ position: relative
+ }
+ .post-list .thumbnail {
+ position: relative
+ }
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .post-list .post {
+ border-top-color: #39424d
+ }
+ .post-list .post .grid-content,
+ .post-list .post section.post-archive .pagination,
+ section.post-archive .post-list .post .pagination {
+ padding: 0 5px
+ }
+ .post-list .post .grid-content.thumbnail,
+ .post-list .post section.post-archive .thumbnail.pagination,
+ section.post-archive .post-list .post .thumbnail.pagination {
+ padding-left: 0
+ }
+ .post-list .post .category {
+ background-color: transparent;
+ color: #39424d;
+ font-size: .625rem;
+ line-height: .75rem;
+ padding: 0;
+ top: 0;
+ margin-top: 3px
+ }
+ .post-list .post .cat-games {
+ color: #94d11f
+ }
+ .post-list .post .cat-movies {
+ color: #09d3bf
+ }
+ .post-list .post .cat-tv {
+ color: #00b7e0
+ }
+ .post-list .post-games {
+ border-top-color: #94d11f
+ }
+ .post-list .post-movies {
+ border-top-color: #09d3bf
+ }
+ .post-list .post-tv {
+ border-top-color: #00b7e0
+ }
+ .post-list .author-attribution .avatar {
+ display: none
+ }
+ }
+
+ .post-grid figure {
+ margin: 0
+ }
+
+ .post-grid .category {
+ margin-top: -27px;
+ position: absolute
+ }
+
+ .post-grid .entry-title {
+ font-weight: 500;
+ margin-bottom: 0
+ }
+
+ .post-grid .entry-title a {
+ color: #39424d
+ }
+
+ .post-grid .entry-title a:hover {
+ color: #00b7e0
+ }
+
+ .post-grid .has-video a::before {
+ background-image: url("http://vignette.wikia.nocookie.net/6857d275-0eb0-4e97-9401-3d23da474ed0");
+ background-position: bottom 15px right 15px;
+ background-repeat: no-repeat;
+ z-index: 1;
+ background-size: 60px 60px
+ }
+
+ .post-grid .post-thumbnail img {
+ display: inline
+ }
+
+ .rail-feed h2 {
+ margin-bottom: 20px
+ }
+
+ .rail-feed .post-list a {
+ color: #39424d
+ }
+
+ .rail-feed .post-list .post {
+ padding-top: 24px
+ }
+
+ .rail-feed .post-list .post .entry-title {
+ line-height: 1.125rem;
+ margin: 0
+ }
+
+ .rail-feed .post-list .post .thumbnail {
+ position: static
+ }
+
+ .rail-feed .post {
+ border-top-color: #39424d
+ }
+
+ .rail-feed .post .grid-content,
+ .rail-feed .post section.post-archive .pagination,
+ section.post-archive .rail-feed .post .pagination {
+ padding: 0 5px
+ }
+
+ .rail-feed .post .grid-content.thumbnail,
+ .rail-feed .post section.post-archive .thumbnail.pagination,
+ section.post-archive .rail-feed .post .thumbnail.pagination {
+ padding-left: 0
+ }
+
+ .rail-feed .post .category {
+ background-color: transparent;
+ color: #39424d;
+ font-size: .625rem;
+ line-height: .75rem;
+ padding: 0;
+ top: 0;
+ margin-top: 3px
+ }
+
+ .rail-feed .post .cat-games {
+ color: #94d11f
+ }
+
+ .rail-feed .post .cat-movies {
+ color: #09d3bf
+ }
+
+ .rail-feed .post .cat-tv {
+ color: #00b7e0
+ }
+
+ .rail-feed .post-games {
+ border-top-color: #94d11f
+ }
+
+ .rail-feed .post-movies {
+ border-top-color: #09d3bf
+ }
+
+ .rail-feed .post-tv {
+ border-top-color: #00b7e0
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .rail-feed header {
+ padding: 0
+ }
+ .rail-feed .post-list .post {
+ max-width: 300px
+ }
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .rail-feed h2 {
+ margin-bottom: 15px
+ }
+ .rail-feed .post-list {
+ margin: 0 1rem 15px
+ }
+ }
+
+ .more-stories {
+ background-color: #fff;
+ padding-bottom: 27px
+ }
+
+ .more-stories h2 {
+ letter-spacing: -.9px;
+ margin-bottom: .875rem
+ }
+
+ .more-stories h3 {
+ font-weight: normal;
+ margin-bottom: 0
+ }
+
+ .more-stories h3 a {
+ color: #39424d
+ }
+
+ .more-stories h3 a:hover {
+ color: #00b7e0
+ }
+
+ .more-stories header {
+ padding: 0;
+ position: relative
+ }
+
+ .more-stories header .view-all {
+ bottom: 1rem;
+ position: absolute;
+ right: 0
+ }
+
+ .more-stories .post {
+ margin-left: 1px
+ }
+
+ .more-stories .post.pending {
+ opacity: 0
+ }
+
+ .more-stories .post.loaded {
+ -webkit-animation: fade-in 0.65s ease forwards;
+ animation: fade-in 0.65s ease forwards
+ }
+
+ .more-stories .tab-e3-2016 .category {
+ display: none
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .more-stories {
+ padding-bottom: 40px;
+ padding-top: 2rem
+ }
+ .more-stories .grid-container {
+ padding: 0 20px
+ }
+ .more-stories .list {
+ padding-right: 50px
+ }
+ .more-stories .rail {
+ -webkit-align-self: stretch;
+ -ms-flex-item-align: stretch;
+ align-self: stretch;
+ -webkit-flex: 0 0 300px;
+ -ms-flex: 0 0 300px;
+ flex: 0 0 300px;
+ margin-top: -25px
+ }
+ .more-stories .upstream-tabs .tab {
+ margin-bottom: 10px;
+ margin-top: 5px
+ }
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .more-stories header {
+ margin-top: 1.5625rem
+ }
+ .more-stories header h2 {
+ max-width: 60%
+ }
+ .more-stories .list {
+ -webkit-order: 2;
+ -ms-flex-order: 2;
+ order: 2;
+ padding: 0 10px
+ }
+ .more-stories .rail {
+ -webkit-flex: 0 0 auto;
+ -ms-flex: 0 0 auto;
+ flex: 0 0 auto;
+ width: 100%
+ }
+ .more-stories .tab-e3-2016 .post {
+ border-top-color: #c5ced9
+ }
+ }
+
+ body.vertical-hub .more-stories .category {
+ display: none
+ }
+
+ p .icon-copy {
+ text-transform: none
+ }
+
+ .hub-feed {
+ padding: 10px 9px 30px 9px
+ }
+
+ .hub-feed .grid-container {
+ max-width: 1024px
+ }
+
+ .hub-feed.home .hub-feed-content {
+ margin-top: -18px
+ }
+
+ .hub-feed.home .hub-feed-posts {
+ margin-top: 18px
+ }
+
+ .hub-feed h2 {
+ letter-spacing: -.9px;
+ margin: 0
+ }
+
+ .hub-feed figcaption {
+ padding: 4px 10px 7px
+ }
+
+ .hub-feed figure {
+ margin: 0
+ }
+
+ .hub-feed .category {
+ margin-top: -27px;
+ position: absolute
+ }
+
+ .hub-feed .entry-title {
+ font-weight: 500;
+ margin-bottom: 0
+ }
+
+ .hub-feed .entry-title a {
+ color: #39424d
+ }
+
+ .hub-feed .entry-title a:hover {
+ color: #00b7e0
+ }
+
+ .hub-feed .grid-content,
+ .hub-feed section.post-archive .pagination,
+ section.post-archive .hub-feed .pagination {
+ padding: 0 5px 13px 0
+ }
+
+ .hub-feed .wrap {
+ margin-right: -5px
+ }
+
+ .hub-feed .post-thumbnail img {
+ display: inline
+ }
+
+ .hub-feed .has-video a::before {
+ background-image: url("http://vignette.wikia.nocookie.net/6857d275-0eb0-4e97-9401-3d23da474ed0");
+ background-position: bottom 15px right 15px;
+ background-repeat: no-repeat;
+ z-index: 1;
+ background-size: 60px 60px
+ }
+
+ .hub-feed figcaption h3 {
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .hub-feed {
+ padding: 20px 1rem 10px 1rem
+ }
+ .hub-feed .grid-content,
+ .hub-feed section.post-archive .pagination,
+ section.post-archive .hub-feed .pagination {
+ padding: 0 12px 25px 0
+ }
+ .hub-feed .category-title {
+ padding-bottom: 5px
+ }
+ .hub-feed .wrap {
+ margin-right: -12px
+ }
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .hub-feed {
+ padding-bottom: 0
+ }
+ .hub-feed h2 {
+ font-size: 1.5rem;
+ line-height: 1.8125rem
+ }
+ }
+
+ .recommended-videos .heading {
+ font-weight: bold
+ }
+
+ .recommended-videos h3 {
+ margin: 0
+ }
+
+ .recommended-videos h3 a {
+ color: #39424d
+ }
+
+ .recommended-videos .post-list .post {
+ border-width: 0;
+ margin-left: 0;
+ padding: 20px 0 0 0
+ }
+
+ .recommended-videos .post-list .post .category {
+ display: none
+ }
+
+ .recommended-videos .post-list .post .grid-content,
+ .recommended-videos .post-list .post section.post-archive .pagination,
+ section.post-archive .recommended-videos .post-list .post .pagination {
+ padding: 0
+ }
+
+ .recommended-videos .post-list .post .post-thumbnail {
+ margin-right: 1rem
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .recommended-videos h3 {
+ line-height: 1.125rem
+ }
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .recommended-videos .heading {
+ font-size: 1rem
+ }
+ .recommended-videos .post-list {
+ margin-top: 4px
+ }
+ .recommended-videos .post-list .has-video a::before {
+ background-size: 20%
+ }
+ .recommended-videos .post-list .post .details {
+ -webkit-flex-basis: 55%;
+ -ms-flex-preferred-size: 55%;
+ flex-basis: 55%
+ }
+ .recommended-videos .post-list .post .thumbnail {
+ -webkit-flex-basis: 45%;
+ -ms-flex-preferred-size: 45%;
+ flex-basis: 45%
+ }
+ }
+
+ .recirculation-feed header {
+ padding-left: 10px
+ }
+
+ .recirculation-feed h2 {
+ letter-spacing: -.9px;
+ margin-bottom: 0
+ }
+
+ .recirculation-feed figcaption {
+ padding: 15px 10px 36px
+ }
+
+ .recirculation-feed span.load-more-btn {
+ max-width: 500px;
+ margin: auto;
+ text-align: left;
+ width: 100%
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .recirculation-feed {
+ padding: 30px 0 0
+ }
+ .recirculation-feed .upstream-tabs {
+ margin-left: 10px
+ }
+ .recirculation-feed&gt;
+ .grid-container {
+ padding: 0 8px 0 20px
+ }
+ .recirculation-feed .recirculation-feed-rail {
+ margin-left: 29px;
+ -webkit-flex: 0 0 300px;
+ -ms-flex: 0 0 300px;
+ flex: 0 0 300px
+ }
+ .recirculation-feed .grid-content,
+ .recirculation-feed section.post-archive .pagination,
+ section.post-archive .recirculation-feed .pagination {
+ padding: 0 12px 0 0
+ }
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .recirculation-feed {
+ padding: 30px 0 0
+ }
+ .recirculation-feed h2 {
+ font-size: 1.5rem;
+ line-height: 1.8125rem
+ }
+ .recirculation-feed header {
+ padding-left: 1rem
+ }
+ .recirculation-feed .recirculation-feed-rail {
+ -webkit-flex: 0 0 auto;
+ -ms-flex: 0 0 auto;
+ flex: 0 0 auto;
+ width: 100%
+ }
+ .recirculation-feed .tab-more-by-author label:after {
+ content: attr(data-after-text)
+ }
+ .recirculation-feed .tab-more-by-author .author-name {
+ display: none
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ body.single .recirculation-feed {
+ background: linear-gradient(to bottom, #f6f6f6, #fff) repeat-x;
+ background-size: auto 210px
+ }
+ }
+
+ .endless-feed+.load-more {
+ padding: 0 0 1px 0
+ }
+
+ .endless-feed+.load-more .load-more-btn {
+ display: block
+ }
+
+ .nav-flyout {
+ background: white;
+ box-shadow: 0 1px 0 0 #ccc;
+ display: block;
+ height: 326px;
+ max-height: 0;
+ overflow: hidden;
+ position: fixed;
+ -webkit-transform: translateZ(0);
+ transform: translateZ(0);
+ transition: max-height 300ms ease;
+ width: 100%
+ }
+
+ .nav-flyout.active {
+ opacity: 0.97;
+ max-height: 326px
+ }
+
+ .nav-flyout a {
+ color: #1a1a1a;
+ font-weight: bold;
+ text-decoration: none
+ }
+
+ .nav-flyout a:visited {
+ color: #1a1a1a
+ }
+
+ .nav-flyout a:hover {
+ color: #00b7e0
+ }
+
+ .nav-flyout-content {
+ display: none;
+ height: 320px
+ }
+
+ .wds-is-games&gt;
+ .nav-flyout-content-games {
+ display: block
+ }
+
+ .wds-is-movies&gt;
+ .nav-flyout-content-movies {
+ display: block
+ }
+
+ .wds-is-tv&gt;
+ .nav-flyout-content-tv {
+ display: block
+ }
+
+ .wds-is-games&gt;
+ .nav-flyout-top-border {
+ background: #94d11f
+ }
+
+ .wds-is-movies&gt;
+ .nav-flyout-top-border {
+ background: #09d3bf
+ }
+
+ .wds-is-tv&gt;
+ .nav-flyout-top-border {
+ background: #00b7e0
+ }
+
+ .nav-flyout-top-border {
+ height: 6px
+ }
+
+ .wds-global-navigation__link::before {
+ border-left: 10px solid transparent;
+ border-right: 10px solid transparent;
+ bottom: -16px;
+ content: '';
+ display: block;
+ position: absolute
+ }
+
+ .wds-is-movies.wds-caret::before {
+ border-top: 10px solid #09d3bf
+ }
+
+ .wds-is-tv.wds-caret::before {
+ border-top: 10px solid #00b7e0
+ }
+
+ .wds-is-games.wds-caret::before {
+ border-top: 10px solid #94d11f
+ }
+
+ .wds-is-hovered {
+ background: #f6f6f6
+ }
+
+ .nav-flyout-wrapper {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-flow: column;
+ -ms-flex-flow: column;
+ flex-flow: column
+ }
+
+ .nav-flyout-heading {
+ font-weight: bold;
+ padding: 26px 0 20px calc(50% - 1026px / 2);
+ width: 1026px
+ }
+
+ @media only screen and (min-width: 768px) and (max-width: 1023px) {
+ .nav-flyout-heading {
+ width: 764px;
+ padding-left: calc(50% - 764px / 2)
+ }
+ }
+
+ .nav-flyout-columns {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-justify-content: center;
+ -ms-flex-pack: center;
+ justify-content: center
+ }
+
+ .nav-flyout-column {
+ margin-right: 22px;
+ width: 240px
+ }
+
+ .nav-flyout-column:hover .nav-flyout-image:after {
+ background-color: black;
+ content: '';
+ height: 100%;
+ left: 0;
+ opacity: .6;
+ position: absolute;
+ top: 0;
+ width: 100%
+ }
+
+ @media only screen and (min-width: 768px) and (max-width: 1023px) {
+ .nav-flyout-column:nth-child(3) {
+ margin-right: 0
+ }
+ }
+
+ .nav-flyout-last-item {
+ margin-right: 0
+ }
+
+ @media only screen and (min-width: 768px) and (max-width: 1023px) {
+ .nav-flyout-last-item {
+ display: none
+ }
+ }
+
+ .nav-flyout-image {
+ background-size: cover;
+ height: 140px;
+ max-width: 240px;
+ position: relative;
+ width: 240px
+ }
+
+ .nav-flyout-play-button-overlay {
+ background-image: url("http://vignette.wikia.nocookie.net/6857d275-0eb0-4e97-9401-3d23da474ed0");
+ background-repeat: no-repeat;
+ z-index: 1;
+ background-size: 36px 36px;
+ background-position: bottom 12px right 12px;
+ position: absolute
+ }
+
+ .nav-flyout-description {
+ font-weight: 400;
+ padding-top: 10px
+ }
+
+ .logged-in.headroom--unpinned&gt;
+ .nav-flyout {
+ visibility: hidden
+ }
+
+ .logged-in.headroom--unpinned .wds-caret::before {
+ visibility: hidden
+ }
+
+ .hero-block hr,
+ .hero-block-sponsored hr {
+ border-color: #e6e6e6;
+ border-style: solid;
+ border-width: 2px 0 0;
+ margin: 0;
+ width: 10%
+ }
+
+ .hero-block ul,
+ .hero-block-sponsored ul {
+ margin-top: 1rem
+ }
+
+ .hero-block .hero,
+ .hero-block-sponsored .hero {
+ background-position: 50% 25%;
+ color: #fff;
+ overflow: hidden;
+ padding: 0;
+ position: relative
+ }
+
+ .hero-block .hero .play-button-overlay,
+ .hero-block-sponsored .hero .play-button-overlay {
+ background-size: 120px 120px;
+ background-position: bottom 40px right 40px
+ }
+
+ .hero-block .hero .play-button-overlay~.content,
+ .hero-block-sponsored .hero .play-button-overlay~.content {
+ width: 70%
+ }
+
+ .hero-block .hero .play-button-overlay~.content a,
+ .hero-block-sponsored .hero .play-button-overlay~.content a {
+ max-width: 100%;
+ overflow: hidden;
+ word-wrap: break-word
+ }
+
+ .hero-block .hero a,
+ .hero-block-sponsored .hero a {
+ color: #fff;
+ display: inline-block
+ }
+
+ .hero-block .hero a:hover,
+ .hero-block-sponsored .hero a:hover {
+ color: #00b7e0
+ }
+
+ .hero-block .hero h3,
+ .hero-block-sponsored .hero h3 {
+ margin: 0
+ }
+
+ .hero-block .hero .attribution,
+ .hero-block-sponsored .hero .attribution {
+ color: #c5ced9;
+ display: block;
+ margin-top: .3125rem
+ }
+
+ .hero-block .hero .category,
+ .hero-block-sponsored .hero .category {
+ font-weight: bold
+ }
+
+ .hero-block .hero .content,
+ .hero-block-sponsored .hero .content {
+ bottom: .875rem;
+ padding: 0 .625rem;
+ position: absolute;
+ width: 80%;
+ z-index: 2
+ }
+
+ .hero-block .vertical .hero .play-button-overlay,
+ .hero-block-sponsored .vertical .hero .play-button-overlay {
+ background-size: 72px 72px;
+ background-position: bottom 20px right 20px
+ }
+
+ .hero-block .icon-arrow-white,
+ .hero-block-sponsored .icon-arrow-white {
+ fill: #fff;
+ float: right;
+ margin-top: .5rem;
+ position: absolute;
+ right: 0
+ }
+
+ .hero-block .topic-link,
+ .hero-block-sponsored .topic-link {
+ font-weight: bold;
+ line-height: 2.125rem;
+ margin-bottom: -.6875rem;
+ max-width: 90%;
+ overflow: hidden;
+ padding-right: 36px;
+ position: relative;
+ text-overflow: ellipsis;
+ white-space: nowrap
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .hero-block&gt;
+ .grid-block,
+ .hero-block-sponsored&gt;
+ .grid-block {
+ height: 576px
+ }
+ .hero-block .hero.lead h3,
+ .hero-block-sponsored .hero.lead h3 {
+ font-size: 2.25rem;
+ line-height: 2.6875rem
+ }
+ .hero-block .hero.lead .content,
+ .hero-block-sponsored .hero.lead .content {
+ bottom: 1.375rem;
+ padding: 0 2.5rem
+ }
+ .hero-block .hero .content,
+ .hero-block-sponsored .hero .content {
+ padding: 0 1.25rem
+ }
+ }
+
+ @media only screen and (max-width: 66.4375em) {
+ .hero-block .hero .play-button-overlay,
+ .hero-block .vertical .hero .play-button-overlay {
+ background-size: 60px 60px;
+ background-position: bottom 25px right 25px
+ }
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .hero-block,
+ .hero-block-sponsored {
+ -webkit-flex-direction: column;
+ -ms-flex-direction: column;
+ flex-direction: column
+ }
+ .hero-block .hero.lead,
+ .hero-block-sponsored .hero.lead {
+ height: 360px
+ }
+ .hero-block .grid-block,
+ .hero-block-sponsored .grid-block {
+ -webkit-flex-direction: column;
+ -ms-flex-direction: column;
+ flex-direction: column
+ }
+ .hero-block .grid-content,
+ .hero-block section.post-archive .pagination,
+ section.post-archive .hero-block .pagination,
+ .hero-block-sponsored .grid-content,
+ .hero-block-sponsored section.post-archive .pagination,
+ section.post-archive .hero-block-sponsored .pagination {
+ height: 180px;
+ margin-bottom: 1px
+ }
+ }
+
+ body.vertical-hub .hero-block .category,
+ body.vertical-hub .hero-block-sponsored .category {
+ display: none
+ }
+
+ .hero.sponsored {
+ height: 430px
+ }
+
+ .hero.sponsored .sponsored-hero-desktop&gt;
+ * {
+ position: relative
+ }
+
+ .hero.sponsored .action-btn {
+ height: 43px;
+ line-height: 43px;
+ margin-top: 1rem;
+ max-width: 90%;
+ padding: 0 20px
+ }
+
+ .hero.sponsored .sponsor-logo {
+ float: left;
+ text-align: center
+ }
+
+ .hero.sponsored .sponsor-logo img {
+ display: block;
+ margin: 5px auto 10px;
+ max-height: 30px
+ }
+
+ .hero.sponsored .sponsor-logo small {
+ font-weight: bold
+ }
+
+ .hero.sponsored .sponsored-hero-mobile .sponsored-hero-mobile-wrap {
+ bottom: 0;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: column;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ left: 0;
+ position: absolute;
+ right: 0;
+ top: 0
+ }
+
+ .hero.sponsored .sponsored-hero-mobile .brand-logo {
+ text-align: center
+ }
+
+ .hero.sponsored .sponsored-hero-mobile .brand-logo img {
+ width: 100px
+ }
+
+ .hero.sponsored .sponsored-hero-mobile .content-primary,
+ .hero.sponsored .sponsored-hero-mobile .content-secondary {
+ padding: 20px
+ }
+
+ .hero.sponsored .sponsored-hero-mobile .content-primary {
+ -webkit-flex: 1 0;
+ -ms-flex: 1 0;
+ flex: 1 0;
+ position: relative
+ }
+
+ .hero.sponsored .sponsored-hero-mobile .content-primary .sponsor-logo.tall-logo img {
+ max-height: 60px
+ }
+
+ .hero.sponsored .sponsored-hero-mobile .content-primary .copy {
+ bottom: 0;
+ left: 0;
+ padding: 20px;
+ position: absolute;
+ width: 100%
+ }
+
+ .hero.sponsored .sponsored-hero-mobile.cta-available .content-primary .copy {
+ bottom: -20px;
+ padding: 0 20px
+ }
+
+ .hero.sponsored .sponsored-hero-mobile .content-secondary {
+ height: 100px
+ }
+
+ .hero.sponsored .sponsored-hero-mobile .action-btn {
+ max-width: 161px;
+ padding: 0 13px
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .hero.sponsored .sponsored-hero-desktop .content-primary .content-inner {
+ padding: 0 2.5rem 2.5rem
+ }
+ .hero.sponsored .sponsored-hero-desktop .content-primary .sponsor-logo.tall-logo img {
+ max-height: 80px
+ }
+ .hero.sponsored .sponsored-hero-desktop .content-secondary .content-inner {
+ text-align: center
+ }
+ .hero.sponsored .sponsored-hero-desktop .content-secondary .brand-logo img {
+ display: block;
+ margin: 0 auto;
+ max-height: 65px;
+ max-width: 220px
+ }
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .hero.sponsored {
+ height: 430px
+ }
+ .hero.sponsored h3 {
+ font-size: 1.125rem;
+ line-height: 1.375rem
+ }
+ .hero.sponsored .action-btn {
+ font-size: .875rem;
+ height: 40px;
+ line-height: 40px
+ }
+ .hero.sponsored .sponsor-logo img {
+ max-height: 26px
+ }
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .hero-block-sponsored {
+ margin-bottom: 1px
+ }
+ }
+
+ section.post-archive.vertical-filter .category {
+ display: none
+ }
+
+ section.post-archive h1 {
+ margin: 30px 1rem 20px
+ }
+
+ section.post-archive h3 {
+ font-weight: normal;
+ line-height: 1.25rem;
+ margin-bottom: 0
+ }
+
+ section.post-archive h3 a {
+ color: #39424d
+ }
+
+ section.post-archive h3 a:hover {
+ color: #00b7e0
+ }
+
+ section.post-archive .filter {
+ float: left;
+ margin: 0 0 1rem 1rem
+ }
+
+ section.post-archive .filter li {
+ margin: 0 26px 0 0;
+ padding: 0
+ }
+
+ section.post-archive .filter li:last-child {
+ margin: 0
+ }
+
+ section.post-archive .filter li.active {
+ border-bottom: 2px solid #1a5eb8;
+ padding: 0 2px 8px
+ }
+
+ section.post-archive .filter li.active a {
+ color: #1a5eb8;
+ font-weight: bold
+ }
+
+ section.post-archive .filter li a {
+ color: #c5ced9
+ }
+
+ section.post-archive .excerpt {
+ margin: 0;
+ padding-top: 10px
+ }
+
+ section.post-archive .excerpt a {
+ color: #39424d
+ }
+
+ section.post-archive .post:last-child {
+ border-bottom: 1px solid #c5ced9
+ }
+
+ section.post-archive .pagination {
+ margin: 30px auto 60px
+ }
+
+ section.post-archive .rail {
+ -webkit-flex: 0 0 auto;
+ -ms-flex: 0 0 auto;
+ flex: 0 0 auto;
+ width: 100%
+ }
+
+ section.post-archive .community-search {
+ font-size: .875rem;
+ line-height: 1.25rem;
+ color: #c5ced9;
+ float: right;
+ line-height: 16px
+ }
+
+ section.post-archive .community-search:hover {
+ color: #00b7e0
+ }
+
+ section.post-archive .community-search:hover .icon-arrow {
+ fill: #00b7e0
+ }
+
+ section.post-archive .community-search .icon-arrow {
+ fill: #c5ced9;
+ height: 16px;
+ margin-left: 7px;
+ -webkit-transform: rotate(180deg);
+ transform: rotate(180deg);
+ vertical-align: sub;
+ width: 16px
+ }
+
+ section.post-archive .no-results {
+ border-top: 1px solid #c5ced9;
+ margin-left: 1rem;
+ padding: 40px 2rem
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ section.post-archive .post {
+ margin-left: 1rem
+ }
+ section.post-archive .rail {
+ -webkit-flex: 0 0 300px;
+ -ms-flex: 0 0 300px;
+ flex: 0 0 300px;
+ margin: 78px 20px 20px 75px
+ }
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ section.post-archive h1 {
+ font-size: 1.125rem;
+ margin: 25px 0 20px
+ }
+ section.post-archive header,
+ section.post-archive .post-list,
+ section.post-archive .pagination {
+ padding: 0 1rem
+ }
+ section.post-archive .filter {
+ float: none;
+ margin-left: 0
+ }
+ section.post-archive .filter li {
+ border-bottom: 2px solid #c5ced9;
+ margin: 0;
+ text-align: center
+ }
+ section.post-archive .community-search {
+ display: block;
+ float: none;
+ text-align: center;
+ margin-bottom: 1rem
+ }
+ section.post-archive .excerpt {
+ display: none
+ }
+ section.post-archive .no-results {
+ margin-right: 1rem;
+ padding: 40px 1rem
+ }
+ }
+
+ .page-articles .page-top-box-ad,
+ .page-videos .page-top-box-ad,
+ body.search-results .page-top-box-ad,
+ body.search-no-results .page-top-box-ad {
+ margin-top: -18px
+ }
+
+ .top-community .top-community-link .icon-arrow,
+ .other-communities-link .icon-arrow {
+ fill: #00b7e0;
+ height: 16px;
+ margin-left: 7px;
+ -webkit-transform: rotate(180deg);
+ transform: rotate(180deg);
+ vertical-align: sub;
+ width: 16px
+ }
+
+ .top-community {
+ width: 300px
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .top-community {
+ background-color: #f6f6f6;
+ border-bottom: solid 1px #c5ced9;
+ border-top: solid 1px #c5ced9;
+ width: 100%
+ }
+ }
+
+ .top-community .top-community-heading {
+ font-weight: bold;
+ padding: 0 0 27px 27px
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .top-community .top-community-heading {
+ font-size: .625rem;
+ padding: 10px 0 14px 1rem
+ }
+ }
+
+ .top-community .top-community-content {
+ display: inline-block;
+ width: 100%
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .top-community .top-community-content {
+ background-color: #fff;
+ border: solid 1px #c5ced9
+ }
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .top-community .top-community-block {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ padding-left: 1rem
+ }
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .top-community .top-community-block-left {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: column-reverse;
+ -ms-flex-direction: column-reverse;
+ flex-direction: column-reverse
+ }
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .top-community .top-community-block-right {
+ width: 70%
+ }
+ }
+
+ .top-community .top-community-image {
+ width: 300px
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .top-community .top-community-image {
+ height: 93px;
+ width: 93px
+ }
+ }
+
+ .top-community .top-community-name {
+ padding: 21px 32px 5px 27px
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .top-community .top-community-name {
+ padding-top: 0
+ }
+ }
+
+ .top-community .top-community-topic {
+ color: #c5ced9;
+ padding-left: 27px
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .top-community .top-community-topic {
+ text-transform: uppercase
+ }
+ }
+
+ .top-community .top-community-stats {
+ color: #656e78;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-justify-content: space-between;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+ padding: 20px 32px 0 27px;
+ text-transform: uppercase
+ }
+
+ .top-community .top-community-text {
+ color: #656e78;
+ padding: 16px 32px 0 27px
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .top-community .top-community-text {
+ font-size: .75rem;
+ padding: 16px 1rem 28px 1rem
+ }
+ }
+
+ .top-community .top-community-link {
+ padding: 12px 32px 28px 27px
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .top-community .top-community-link {
+ display: none
+ }
+ }
+
+ .post-list .top-community {
+ margin: 0 -1rem;
+ width: calc(100% + 2rem)
+ }
+
+ .other-communities .other-communities-heading {
+ font-weight: bold;
+ padding: 27px
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .other-communities .other-communities-heading {
+ display: none
+ }
+ }
+
+ .other-communities .other-communities-content {
+ border-top: solid 1px #c5ced9
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .other-communities .other-communities-content {
+ display: none
+ }
+ }
+
+ .other-communities .other-communities-content-details {
+ border-bottom: solid 1px #c5ced9;
+ color: #39424d;
+ display: block;
+ padding: 21px 0 21px 27px
+ }
+
+ .other-communities .other-communities-content-details:hover .other-communities-content-community-name {
+ color: #00b7e0
+ }
+
+ .other-communities .other-communities-content-community-stats {
+ color: #656e78
+ }
+
+ .other-communities-link {
+ padding: 27px
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .other-communities-link {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: row-reverse;
+ -ms-flex-direction: row-reverse;
+ flex-direction: row-reverse;
+ font-size: .875rem;
+ padding: 24px 16px;
+ width: 100%
+ }
+ }
+
+ .careers-content&gt;
+ section:not(.social-footer) {
+ padding: 30px 0
+ }
+
+ .careers-content h2,
+ .careers-content h3,
+ .careers-content p {
+ color: #39424d
+ }
+
+ .careers-content .social-footer p {
+ margin-top: 0
+ }
+
+ .careers-content .top {
+ margin: auto;
+ text-align: center;
+ width: 80%
+ }
+
+ .careers-content .top h2 {
+ margin-bottom: 10px
+ }
+
+ .careers-content .top p {
+ color: #39424d;
+ margin: auto;
+ margin-top: 0;
+ padding-bottom: 30px
+ }
+
+ @media only screen and (min-width: 40em) {
+ .careers-content .top {
+ width: 75%
+ }
+ .careers-content .top h2 {
+ font-size: 3rem;
+ line-height: 3.4375rem;
+ line-height: 1.1
+ }
+ .careers-content .top p {
+ font-size: 1rem;
+ line-height: 1.5rem;
+ line-height: 1.1;
+ max-width: 450px;
+ padding-bottom: 50px
+ }
+ }
+
+ @media only screen and (min-width: 40em) {
+ .careers-content&gt;
+ section:not(.social-footer) {
+ padding: 50px 0 80px
+ }
+ }
+
+ .careers-content .careers-header {
+ -webkit-align-items: center;
+ -ms-flex-align: center;
+ align-items: center;
+ background: linear-gradient(rgba(60, 60, 60, 0.7), rgba(60, 60, 60, 0.7)), url("//vignette.wikia.nocookie.net/7805260c-fe1a-418a-838e-096209c73ef7");
+ background-size: cover;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: column;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ -webkit-flex-wrap: wrap;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ -webkit-justify-content: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ min-height: 300px
+ }
+
+ .careers-content .careers-header h1 {
+ color: #fff;
+ margin-bottom: 0;
+ margin-top: 50px;
+ text-transform: uppercase
+ }
+
+ .careers-content .careers-header .tagline {
+ color: #fff;
+ font-weight: bold;
+ margin-top: 0;
+ padding-bottom: 25px;
+ text-align: center;
+ width: 75%
+ }
+
+ .careers-content .careers-header .close-button {
+ color: white;
+ display: block;
+ left: 45%;
+ position: relative;
+ top: 40px
+ }
+
+ .careers-content .careers-header .select-a-team {
+ border: solid 1px white;
+ color: white;
+ display: block;
+ font-weight: bold;
+ margin: auto;
+ padding: 10px 50px;
+ text-align: center
+ }
+
+ .careers-content .careers-header .select-a-team.closed {
+ display: none
+ }
+
+ .careers-content .careers-header .select-a-team:after {
+ content: ' ';
+ border-left: 7.5px solid transparent;
+ border-right: 7.5px solid transparent;
+ border-top: 7.5px solid #fff;
+ display: inline-block;
+ height: 0px;
+ margin-left: 15px;
+ width: 0px
+ }
+
+ .careers-content .careers-header .job-categories {
+ max-width: 66.5rem;
+ margin: 0 auto;
+ background: #39424d;
+ display: block;
+ height: 0;
+ margin-top: 10px;
+ opacity: 0;
+ padding: 15px;
+ transition: opacity 300ms ease-in-out;
+ width: 100%
+ }
+
+ .careers-content .careers-header .job-categories a {
+ color: #fff;
+ font-weight: bold
+ }
+
+ .careers-content .careers-header .job-categories.open {
+ height: auto;
+ opacity: 1;
+ transition: opacity 100ms ease-in-out
+ }
+
+ .careers-content .careers-header .job-categories.open div,
+ .careers-content .careers-header .job-categories.open a {
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
+ display: block;
+ font-weight: normal;
+ line-height: 1.6;
+ margin: 0 10px;
+ padding: 10px 0
+ }
+
+ .careers-content .careers-header .job-categories.open .select-a-team {
+ color: rgba(255, 255, 255, 0.5);
+ display: none
+ }
+
+ .careers-content .careers-header .job-categories.open a {
+ font-weight: normal
+ }
+
+ .careers-content .careers-header .learn-more-arrow {
+ margin-top: 20px;
+ padding-bottom: 30px
+ }
+
+ .careers-content .careers-header .learn-more-arrow span {
+ color: #fff;
+ font-weight: bold;
+ letter-spacing: .9;
+ text-transform: uppercase
+ }
+
+ .careers-content .careers-header .learn-more-arrow span svg {
+ display: block;
+ margin: auto;
+ margin-top: 10px;
+ fill: white
+ }
+
+ @media only screen and (min-width: 40em) {
+ .careers-content .careers-header {
+ -webkit-justify-content: flex-end;
+ -ms-flex-pack: end;
+ justify-content: flex-end;
+ min-height: 700px;
+ min-height: calc(100vh - 55px)
+ }
+ .careers-content .careers-header h1 {
+ font-size: 1rem;
+ line-height: 1.5rem;
+ margin-top: 125px;
+ margin-top: 25vh;
+ margin-bottom: 42px
+ }
+ .careers-content .careers-header .tagline {
+ font-size: 3.375rem;
+ line-height: 4.0625rem;
+ margin: 0;
+ padding: 0;
+ padding-bottom: 10px;
+ margin-bottom: 42px
+ }
+ .careers-content .careers-header .select-a-team,
+ .careers-content .careers-header .close-button {
+ display: none
+ }
+ .careers-content .careers-header .job-categories,
+ .careers-content .careers-header .job-categories.open {
+ height: auto;
+ opacity: 1;
+ background: transparent;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-wrap: wrap;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ -webkit-justify-content: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ padding-bottom: 25px;
+ width: 80%;
+ margin: auto;
+ padding-top: 0;
+ margin-top: 0
+ }
+ .careers-content .careers-header .job-categories .select-a-team,
+ .careers-content .careers-header .job-categories.open .select-a-team {
+ display: none
+ }
+ .careers-content .careers-header .job-categories a,
+ .careers-content .careers-header .job-categories.open a {
+ border-bottom: none;
+ border: 1px solid #fff;
+ -webkit-flex-basis: 24%;
+ -ms-flex-preferred-size: 24%;
+ flex-basis: 24%;
+ -webkit-flex-grow: 0;
+ -ms-flex-positive: 0;
+ flex-grow: 0;
+ -webkit-flex-shrink: 1;
+ -ms-flex-negative: 1;
+ flex-shrink: 1;
+ line-height: 1;
+ margin-bottom: 15px;
+ margin-left: 0;
+ margin-right: 1%;
+ padding: 12px;
+ text-align: center;
+ transition: background 100ms ease-out
+ }
+ .careers-content .careers-header .job-categories a:hover,
+ .careers-content .careers-header .job-categories.open a:hover {
+ background: #fff;
+ color: #1a1a1a
+ }
+ }
+
+ .careers-content .values-matter .value-boxes {
+ max-width: 66.5rem;
+ margin: 0 auto;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-grow: 1;
+ -ms-flex-positive: 1;
+ flex-grow: 1;
+ -webkit-flex-shrink: 1;
+ -ms-flex-negative: 1;
+ flex-shrink: 1;
+ -webkit-flex-wrap: wrap;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ -webkit-justify-content: center;
+ -ms-flex-pack: center;
+ justify-content: center
+ }
+
+ .careers-content .values-matter .value-boxes .value-box {
+ -webkit-flex-basis: 100%;
+ -ms-flex-preferred-size: 100%;
+ flex-basis: 100%;
+ text-align: center
+ }
+
+ .careers-content .values-matter .value-boxes .value-box img {
+ width: 100%
+ }
+
+ .careers-content .values-matter .value-boxes .value-box h3 {
+ margin-bottom: 0;
+ margin-top: 25px;
+ padding-bottom: 0;
+ text-transform: uppercase
+ }
+
+ .careers-content .values-matter .value-boxes .value-box h3::after {
+ background: #656e78;
+ content: ' ';
+ display: block;
+ height: 3px;
+ margin: 10px auto;
+ width: 35px
+ }
+
+ .careers-content .values-matter .value-boxes .value-box p {
+ margin-top: 0;
+ padding: 0 10px
+ }
+
+ @media only screen and (min-width: 40em) {
+ .careers-content .values-matter .value-boxes .value-box {
+ -webkit-flex-basis: 30%;
+ -ms-flex-preferred-size: 30%;
+ flex-basis: 30%;
+ margin-right: 1%;
+ margin-bottom: 48px
+ }
+ }
+
+ .careers-content .careers-testimonials {
+ background: #f2f6fa;
+ text-align: center
+ }
+
+ .careers-content .careers-testimonials .testimonials {
+ max-width: 66.5rem;
+ margin: 0 auto;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-wrap: wrap;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ -webkit-justify-content: center;
+ -ms-flex-pack: center;
+ justify-content: center
+ }
+
+ .careers-content .careers-testimonials .testimonials&gt;
+ .testimonial {
+ -webkit-flex-basis: 100%;
+ -ms-flex-preferred-size: 100%;
+ flex-basis: 100%;
+ margin-bottom: 25px
+ }
+
+ .careers-content .careers-testimonials .testimonials&gt;
+ .testimonial blockquote {
+ font-style: italic
+ }
+
+ .careers-content .careers-testimonials .testimonials&gt;
+ .testimonial blockquote cite {
+ display: block;
+ font-style: normal;
+ font-weight: bold
+ }
+
+ .careers-content .careers-testimonials .testimonials&gt;
+ .testimonial blockquote cite .title {
+ color: #39424d;
+ display: block;
+ letter-spacing: 1px;
+ line-height: 2.6;
+ text-transform: uppercase
+ }
+
+ @media only screen and (min-width: 40em) {
+ .careers-content .careers-testimonials .testimonials&gt;
+ .testimonial {
+ -webkit-flex-basis: 33.3%;
+ -ms-flex-preferred-size: 33.3%;
+ flex-basis: 33.3%
+ }
+ }
+
+ .careers-content section.global-company {
+ max-width: 66.5rem;
+ margin: 0 auto;
+ text-align: center;
+ padding-bottom: 0
+ }
+
+ .careers-content section.global-company img {
+ width: 100vw
+ }
+
+ .careers-content section.global-company .desktop {
+ display: none
+ }
+
+ @media only screen and (min-width: 40em) {
+ .careers-content section.global-company .desktop {
+ display: block;
+ margin-bottom: 80px
+ }
+ .careers-content section.global-company .mobile {
+ display: none
+ }
+ }
+
+ .careers-content section.our-benefits {
+ background: #f2f6fa;
+ padding: 50px 15px 15px
+ }
+
+ .careers-content section.our-benefits .benefits {
+ max-width: 66.5rem;
+ margin: 0 auto;
+ -webkit-align-items: baseline;
+ -ms-flex-align: baseline;
+ align-items: baseline;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-wrap: wrap;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ -webkit-justify-content: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ margin: auto;
+ text-align: center
+ }
+
+ .careers-content section.our-benefits .benefits .benefit {
+ -webkit-flex-basis: 50%;
+ -ms-flex-preferred-size: 50%;
+ flex-basis: 50%;
+ margin-bottom: 50px
+ }
+
+ .careers-content section.our-benefits .benefits .benefit h3 {
+ margin: 25px auto 0
+ }
+
+ .careers-content section.our-benefits .benefits .benefit p {
+ margin-top: 0;
+ padding: 5px
+ }
+
+ .careers-content section.our-benefits .benefits .benefit img {
+ height: 54px
+ }
+
+ @media only screen and (min-width: 40em) {
+ .careers-content section.our-benefits {
+ padding-top: 70px
+ }
+ .careers-content section.our-benefits .benefits .benefit {
+ -webkit-flex-basis: 33%;
+ -ms-flex-preferred-size: 33%;
+ flex-basis: 33%
+ }
+ .careers-content section.our-benefits .benefits .benefit p {
+ padding: 10px 27px
+ }
+ }
+
+ .careers-content section.news-events {
+ background: #c5ced9;
+ padding: 40px 0 40px;
+ text-align: center
+ }
+
+ .careers-content section.news-events .news-wrapper {
+ max-width: 66.5rem;
+ margin: 0 auto;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-wrap: wrap;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ -webkit-align-items: center;
+ -ms-flex-align: center;
+ align-items: center;
+ -webkit-justify-content: center;
+ -ms-flex-pack: center;
+ justify-content: center
+ }
+
+ .careers-content section.news-events .news-wrapper&gt;
+ section {
+ background: #fff;
+ border-radius: 2px;
+ box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.25);
+ -webkit-flex-basis: 100%;
+ -ms-flex-preferred-size: 100%;
+ flex-basis: 100%;
+ -webkit-flex-grow: .1;
+ -ms-flex-positive: .1;
+ flex-grow: .1;
+ margin: 0 15px 20px;
+ padding-bottom: 20px
+ }
+
+ .careers-content section.news-events .news-wrapper&gt;
+ section h3 {
+ color: #898989;
+ margin: 10px 0 0;
+ padding: 0 5px;
+ text-transform: uppercase
+ }
+
+ .careers-content section.news-events .news-wrapper&gt;
+ section h4 {
+ padding: 0 5px
+ }
+
+ .careers-content section.news-events .news-wrapper&gt;
+ section img {
+ width: 100%
+ }
+
+ .careers-content section.news-events .news-wrapper&gt;
+ section a {
+ color: #4a90e2;
+ font-weight: bold;
+ letter-spacing: 1.2px;
+ text-transform: uppercase
+ }
+
+ @media only screen and (min-width: 40em) {
+ .careers-content section.news-events .news-wrapper {
+ -webkit-flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap
+ }
+ .careers-content section.news-events .news-wrapper&gt;
+ section {
+ -webkit-flex-basis: 33%;
+ -ms-flex-preferred-size: 33%;
+ flex-basis: 33%;
+ margin-bottom: 0;
+ margin-right: 40px
+ }
+ }
+
+ .careers-content section.open-positions {
+ max-width: 66.5rem;
+ margin: 0 auto;
+ padding-left: 15px;
+ padding-right: 15px
+ }
+
+ .careers-content section.open-positions h2 {
+ font-size: 27px
+ }
+
+ .careers-content section.open-positions a {
+ color: #4a90e2;
+ font-weight: bold
+ }
+
+ .careers-content section.open-positions .department {
+ margin-bottom: 1em
+ }
+
+ .careers-content section.open-positions .department .description h3 {
+ -webkit-flex-basis: 100%;
+ -ms-flex-preferred-size: 100%;
+ flex-basis: 100%;
+ font-size: 24px;
+ line-height: 1;
+ margin-bottom: 0
+ }
+
+ .careers-content section.open-positions .department .description h3::after {
+ background: #39424d;
+ content: ' ';
+ display: block;
+ height: 5px;
+ margin: 15px 0;
+ width: 55px
+ }
+
+ .careers-content section.open-positions .department .description p {
+ margin-top: 0
+ }
+
+ .careers-content section.open-positions .department ul.job-posts {
+ list-style: none;
+ padding-left: 0;
+ margin-top: 0
+ }
+
+ .careers-content section.open-positions .department ul.job-posts li {
+ color: #39424d;
+ margin-bottom: 15px
+ }
+
+ .careers-content section.open-positions .department ul.job-posts li p {
+ color: #656e78;
+ margin-top: 0;
+ padding-right: 0
+ }
+
+ .careers-content section.open-positions .department ul.job-posts li&gt;
+ a {
+ display: block;
+ font-weight: bold
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .careers-content section.open-positions .department {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ height: 100vh;
+ position: relative;
+ overflow: hidden;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-flex: 1 1 auto;
+ -ms-flex: 1 1 auto;
+ flex: 1 1 auto;
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ -webkit-flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap;
+ -webkit-align-items: stretch;
+ -ms-flex-align: stretch;
+ align-items: stretch;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ -webkit-order: 0;
+ -ms-flex-order: 0;
+ order: 0;
+ height: auto;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar;
+ -webkit-align-items: flex-start;
+ -ms-flex-align: start;
+ align-items: flex-start;
+ -webkit-justify-content: space-between;
+ -ms-flex-pack: justify;
+ justify-content: space-between
+ }
+ .careers-content section.open-positions .department .description {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ height: 100vh;
+ position: relative;
+ overflow: hidden;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-flex: 0 0 41.66667%;
+ -ms-flex: 0 0 41.66667%;
+ flex: 0 0 41.66667%;
+ max-width: 41.66667%;
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ -webkit-flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap;
+ -webkit-align-items: stretch;
+ -ms-flex-align: stretch;
+ align-items: stretch;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ -webkit-order: 0;
+ -ms-flex-order: 0;
+ order: 0;
+ height: auto;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar;
+ -webkit-flex-wrap: wrap;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ -webkit-align-items: flex-start;
+ -ms-flex-align: start;
+ align-items: flex-start
+ }
+ .careers-content section.open-positions .department ul.job-posts {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ height: 100vh;
+ position: relative;
+ overflow: hidden;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-flex: 0 0 50%;
+ -ms-flex: 0 0 50%;
+ flex: 0 0 50%;
+ max-width: 50%;
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ -webkit-flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap;
+ -webkit-align-items: stretch;
+ -ms-flex-align: stretch;
+ align-items: stretch;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ -webkit-order: 0;
+ -ms-flex-order: 0;
+ order: 0;
+ height: auto;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar;
+ -webkit-flex-wrap: wrap;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ -webkit-align-items: flex-start;
+ -ms-flex-align: start;
+ align-items: flex-start
+ }
+ .careers-content section.open-positions .department ul.job-posts li {
+ -webkit-flex-basis: 100%;
+ -ms-flex-preferred-size: 100%;
+ flex-basis: 100%;
+ margin-bottom: 25px
+ }
+ .careers-content section.open-positions .department ul.job-posts li&gt;
+ a {
+ font-size: 1.6875rem;
+ line-height: 2.0625rem
+ }
+ .careers-content section.open-positions .department ul.job-posts li p {
+ padding-right: 20%
+ }
+ }
+
+ @media only screen and (min-width: 40em) {
+ .careers-content section.open-positions h2 {
+ font-size: 3rem;
+ line-height: 3.4375rem;
+ margin-bottom: 30px
+ }
+ .careers-content section.open-positions .department ul.job-posts {
+ margin-top: 59px
+ }
+ .careers-content section.open-positions .department ul.job-posts li p {
+ padding-right: 20%
+ }
+ }
+
+ .careers-content svg.icon-back-to-openings {
+ fill: #4a90e2;
+ height: 12px;
+ -webkit-transform: rotate(180deg);
+ transform: rotate(180deg)
+ }
+
+ .careers-content .single-post-header {
+ background: url("//vignette.wikia.nocookie.net/dd0ee7d2-d531-47da-8aac-2f50abb5d5cb");
+ background-position: top;
+ background-size: cover;
+ height: 200px;
+ width: 100%
+ }
+
+ .careers-content .back-to-openings {
+ color: #4a90e2;
+ display: block;
+ margin: 0 0 30px
+ }
+
+ .careers-content .job-post {
+ max-width: 66.5rem;
+ margin: 0 auto;
+ margin: 0 15px;
+ padding: 10px
+ }
+
+ .careers-content .job-post ul.meta {
+ list-style-type: none;
+ padding-left: 0
+ }
+
+ @media only screen and (min-width: 40em) {
+ .careers-content .job-post {
+ margin: 0 auto
+ }
+ .careers-content .single-post-header {
+ height: 400px
+ }
+ }
+
+ @media only screen and (min-width: 90em) {
+ .careers-content .back-to-openings {
+ color: #4a90e2;
+ display: block
+ }
+ }
+
+ .careers-content .gh-wrapper {
+ background-color: rgba(246, 246, 246, 0.75);
+ min-height: 500px;
+ text-align: center
+ }
+
+ .careers-content .gh-wrapper .loading {
+ padding: 15px
+ }
+
+ .careers-content .gh-wrapper iframe {
+ transition: all 200ms ease-in-out;
+ opacity: 0;
+ width: 100%;
+ max-width: 100%
+ }
+
+ .careers-content .gh-wrapper iframe.loaded {
+ opacity: 1
+ }
+
+ .careers-content .social-header {
+ color: #39424d;
+ font-weight: bold;
+ margin-bottom: 15px;
+ text-align: center;
+ text-transform: uppercase
+ }
+
+ .careers-content .social-header::before {
+ background: #e6e6e6;
+ content: '';
+ display: block;
+ height: 4px;
+ margin: 30px auto 15px;
+ width: 75px
+ }
+
+ .careers-content .share-wrapper {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-justify-content: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ margin-bottom: 42px
+ }
+
+ .careers-content .share-wrapper a {
+ margin: 10px 5px
+ }
+
+ .fb-share-btn {
+ background-color: #3b5998;
+ fill: #fff
+ }
+
+ .fb-share-btn .icon {
+ -webkit-transform: translateX(-3px) translateY(3px);
+ transform: translateX(-3px) translateY(3px)
+ }
+
+ .fb-share-btn.invert {
+ fill: #3b5998
+ }
+
+ .fb-share-icon {
+ fill: #3b5998
+ }
+
+ .reddit-btn {
+ background-color: #ff4500;
+ fill: #fff
+ }
+
+ .reddit-btn .icon {
+ -webkit-transform: translateY(6px);
+ transform: translateY(6px)
+ }
+
+ .reddit-btn.invert {
+ fill: #ff4500
+ }
+
+ .reddit-btn:visited {
+ color: #fff
+ }
+
+ .tweet-btn {
+ background-color: #1da1f2;
+ fill: #fff
+ }
+
+ .tweet-btn .icon {
+ -webkit-transform: translateY(2px);
+ transform: translateY(2px)
+ }
+
+ .tweet-btn.invert {
+ fill: #1da1f2
+ }
+
+ .tweet-btn:visited {
+ color: #fff
+ }
+
+ .tweet-share-icon {
+ fill: #1da1f2
+ }
+
+ .social-follow {
+ background-color: #f6f6f6;
+ bottom: 0;
+ color: #39424d;
+ height: 200px;
+ padding: 30px 0;
+ position: fixed;
+ text-align: center;
+ -webkit-transform: translateY(100%);
+ transform: translateY(100%);
+ width: 100%;
+ z-index: 10001
+ }
+
+ .social-follow.animate {
+ -webkit-animation: slide-up 1s ease forwards;
+ animation: slide-up 1s ease forwards
+ }
+
+ .social-follow .content {
+ display: inline-block;
+ margin: auto
+ }
+
+ .social-follow .close {
+ cursor: pointer;
+ fill: #39424d;
+ height: 16px;
+ position: absolute;
+ right: 20px;
+ top: 20px;
+ width: 16px
+ }
+
+ .social-follow .logo-fandom {
+ border-right: solid 1px #39424d;
+ height: 140px;
+ line-height: 140px;
+ padding: 0 40px
+ }
+
+ .social-follow .logo-fandom img {
+ height: 50px
+ }
+
+ .social-follow .container-follow {
+ margin-left: 40px;
+ text-align: left
+ }
+
+ .social-follow .copy h3 {
+ font-size: 2.25rem;
+ line-height: 3.375rem;
+ margin-bottom: 5px
+ }
+
+ .social-follow .copy span {
+ font-size: 1.5rem
+ }
+
+ .social-follow .facebook-button,
+ .social-follow .twitter-button {
+ display: inline-block;
+ margin-top: 10px;
+ vertical-align: bottom
+ }
+
+ .social-follow .facebook-button {
+ overflow: hidden
+ }
+
+ .social-follow .twitter-button {
+ height: 20px;
+ margin-left: 10px
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .social-follow.right-corner {
+ height: 160px;
+ padding: 25px 0;
+ right: 0;
+ text-align: left;
+ -webkit-transform: translateX(100%);
+ transform: translateX(100%);
+ width: 580px
+ }
+ .social-follow.right-corner.animate {
+ -webkit-animation: slide-left 1s ease forwards;
+ animation: slide-left 1s ease forwards
+ }
+ .social-follow.right-corner h3 {
+ font-size: 1.5rem;
+ line-height: 2.5rem
+ }
+ .social-follow.right-corner .container-follow {
+ margin-left: 25px
+ }
+ .social-follow.right-corner .logo-fandom {
+ height: 110px;
+ line-height: 110px;
+ padding: 0 25px
+ }
+ .social-follow .container-follow,
+ .social-follow .logo-fandom {
+ float: left
+ }
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .social-follow {
+ height: 184px
+ }
+ .social-follow .logo-fandom {
+ height: 30px;
+ line-height: 30px;
+ border-right: none
+ }
+ .social-follow .logo-fandom img {
+ height: 30px
+ }
+ .social-follow .container-follow {
+ margin: 0;
+ padding-top: 15px;
+ text-align: center
+ }
+ .social-follow .copy h3 {
+ font-size: 1.125rem;
+ line-height: 1rem
+ }
+ .social-follow .copy span {
+ font-size: .875rem;
+ line-height: 1rem
+ }
+ }
+
+ .floating-social {
+ display: none
+ }
+
+ html.sliding-icons .floating-social {
+ display: block;
+ height: 52px;
+ position: fixed;
+ transition: all 0.5s;
+ width: 100%;
+ z-index: 10
+ }
+
+ html.sliding-icons .floating-social .share-wrapper {
+ height: 52px
+ }
+
+ html.sliding-icons .floating-social .share-wrapper .fb-share-btn,
+ html.sliding-icons .floating-social .share-wrapper .tweet-btn,
+ html.sliding-icons .floating-social .share-wrapper .reddit-btn {
+ float: left;
+ height: 52px;
+ min-width: 0;
+ width: 33.33%
+ }
+
+ html.sliding-icons .floating-social .share-wrapper .fb-share-btn span,
+ html.sliding-icons .floating-social .share-wrapper .tweet-btn span,
+ html.sliding-icons .floating-social .share-wrapper .reddit-btn span {
+ display: none
+ }
+
+ html.sliding-icons .floating-social .share-wrapper .tweet-btn .icon {
+ height: 22px;
+ margin-top: 12px;
+ width: 27px
+ }
+
+ html.sliding-icons .floating-social .share-wrapper .reddit-btn .icon {
+ height: 23px;
+ margin-top: 8px;
+ width: 24px
+ }
+
+ html.sliding-icons .floating-social .share-wrapper .fb-share-btn .icon {
+ height: 22px;
+ margin-top: 12px;
+ width: 11px
+ }
+
+ @media only screen and (max-width: 66.4375em) {
+ html.sliding-icons .floating-social {
+ bottom: 0;
+ left: 0;
+ -webkit-transform: translateY(52px);
+ transform: translateY(52px)
+ }
+ html.sliding-icons .floating-social.visible {
+ -webkit-transform: translateY(0);
+ transform: translateY(0)
+ }
+ }
+
+ @media only screen and (min-width: 66.5em) {
+ html.sliding-icons .floating-social {
+ height: 192px;
+ left: 0;
+ margin-top: -96px;
+ -webkit-transform: translateX(-64px);
+ transform: translateX(-64px);
+ width: 64px
+ }
+ html.sliding-icons .floating-social.side-fixed {
+ display: block;
+ position: fixed;
+ transition: all 0.5s
+ }
+ html.sliding-icons .floating-social.pinned-to-article {
+ display: block;
+ position: fixed;
+ transition: none
+ }
+ html.sliding-icons .floating-social.first-time-pinned {
+ transition: all 0.5s
+ }
+ html.sliding-icons .floating-social.visible {
+ display: block;
+ -webkit-transform: translate(0, 0);
+ transform: translate(0, 0)
+ }
+ html.sliding-icons .floating-social .article-wrapper .share-wrapper,
+ html.sliding-icons .floating-social .article-wrapper .article-share {
+ display: block
+ }
+ html.sliding-icons .floating-social .share-wrapper {
+ height: 192px
+ }
+ html.sliding-icons .floating-social .share-wrapper .fb-share-btn,
+ html.sliding-icons .floating-social .share-wrapper .tweet-btn,
+ html.sliding-icons .floating-social .share-wrapper .reddit-btn {
+ clear: left;
+ float: left;
+ height: 64px;
+ min-width: 64px;
+ width: 64px
+ }
+ html.sliding-icons .floating-social .share-wrapper .fb-share-btn .icon,
+ html.sliding-icons .floating-social .share-wrapper .tweet-btn .icon,
+ html.sliding-icons .floating-social .share-wrapper .reddit-btn .icon {
+ margin-top: 22px
+ }
+ html.sliding-icons .floating-social .share-wrapper .fb-share-btn span,
+ html.sliding-icons .floating-social .share-wrapper .tweet-btn span,
+ html.sliding-icons .floating-social .share-wrapper .reddit-btn span {
+ display: none
+ }
+ html.sliding-icons .floating-social .share-wrapper .tweet-btn .icon {
+ -webkit-transform: translateY(3px);
+ transform: translateY(3px)
+ }
+ html.sliding-icons .floating-social .share-wrapper .reddit-btn .icon {
+ -webkit-transform: translateY(-3px);
+ transform: translateY(-3px)
+ }
+ html.sliding-icons .floating-social .share-wrapper .fb-share-btn .icon {
+ -webkit-transform: translateX(-2px);
+ transform: translateX(-2px)
+ }
+ }
+
+ .social-promo-rail {
+ background-color: #f6f6f6;
+ margin-bottom: 40px;
+ padding-bottom: 40px;
+ text-align: center
+ }
+
+ .social-promo-rail .buttons {
+ margin: 10px auto 0
+ }
+
+ .social-promo-rail .buttons&gt;
+ div {
+ display: inline-block
+ }
+
+ .social-promo-rail .callout {
+ font-weight: bold
+ }
+
+ .social-promo-rail .logo {
+ background-color: #39424d;
+ border-radius: 50%;
+ height: 40px;
+ line-height: 40px;
+ margin: 0 auto;
+ text-align: center;
+ -webkit-transform: translateY(-20px);
+ transform: translateY(-20px);
+ width: 40px
+ }
+
+ .social-promo-rail .logo img {
+ height: 19px;
+ width: 20px
+ }
+
+ .social-promo-rail .facebook-button {
+ overflow: hidden;
+ vertical-align: bottom
+ }
+
+ .social-promo-rail .twitter-button {
+ height: 20px;
+ margin-left: 5px;
+ vertical-align: bottom
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .social-promo-rail {
+ margin-left: 1rem;
+ margin-right: 1rem
+ }
+ }
+
+ .article-wrapper .article-rail .social-promo-rail {
+ margin-top: 20px
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .article-wrapper .social-promo {
+ padding: 0
+ }
+ }
+
+ .article-wrapper .social-promo-rail {
+ margin-top: 40px
+ }
+
+ .ln-share-bt {
+ background-color: #0077b5;
+ fill: #fff
+ }
+
+ .ln-share-bt:visited {
+ color: white
+ }
+
+ .ln-share-bt .icon {
+ -webkit-transform: translateX(-3px) translateY(3px);
+ transform: translateX(-3px) translateY(3px)
+ }
+
+ .ln-share-bt.invert {
+ fill: #0077b5
+ }
+
+ .ln-share-icon {
+ fill: #0077b5
+ }
+
+ .social-footer {
+ height: 165px;
+ background-color: #f6f6f6;
+ text-align: center
+ }
+
+ .social-footer a {
+ display: inline-block;
+ border: none;
+ border-radius: 100px;
+ line-height: 1.125rem;
+ margin-right: 10px
+ }
+
+ .social-footer a span {
+ display: none
+ }
+
+ .social-footer a img {
+ margin-right: 5px;
+ margin-top: -5px;
+ height: 15px
+ }
+
+ .social-footer .fb {
+ background: #3b5998;
+ padding: 12px 12px
+ }
+
+ .social-footer .fb img {
+ padding-left: 4px
+ }
+
+ .social-footer .twitter {
+ background: #1da1f2;
+ padding: 12px 6px
+ }
+
+ .social-footer .twitter img {
+ padding-left: 7px;
+ padding-top: 2px
+ }
+
+ .social-footer .youtube {
+ background: #cd201f;
+ padding: 12px 6px
+ }
+
+ .social-footer .youtube img {
+ padding-left: 6px;
+ padding-top: 2px
+ }
+
+ .social-footer .linkedin {
+ background: #0077b5;
+ padding: 12px 6px
+ }
+
+ .social-footer .linkedin img {
+ padding-left: 6px;
+ height: 18px
+ }
+
+ .social-footer p {
+ padding-top: 33px;
+ font-weight: bold;
+ text-transform: uppercase;
+ text-align: center;
+ margin-top: 20px;
+ margin-bottom: 20px
+ }
+
+ .social-footer p:before {
+ width: 95px;
+ height: 4px;
+ content: '';
+ display: block;
+ margin: 0 auto 20px;
+ background: #e6e6e6
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .social-footer {
+ height: 254px
+ }
+ .social-footer .twitter,
+ .social-footer .youtube,
+ .social-footer .linkedin {
+ padding-right: 15px
+ }
+ .social-footer a {
+ color: #fff;
+ padding: 18px 25px;
+ margin-right: 10px;
+ border-radius: 0
+ }
+ .social-footer a img {
+ height: 21px;
+ margin-right: 8px
+ }
+ .social-footer a span {
+ font-size: .875rem;
+ display: inline-block
+ }
+ .social-footer a .linkedin img {
+ margin-top: -5px
+ }
+ .social-footer p {
+ padding-top: 60px;
+ margin-bottom: 20px
+ }
+ .social-footer p:before {
+ width: 95px;
+ height: 4px;
+ content: '';
+ display: block;
+ margin: 0 auto 20px;
+ background: #e6e6e6;
+ width: 71px
+ }
+ }
+
+ .upstream-tabs {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ -webkit-flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap;
+ -webkit-justify-content: space-between;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+ list-style-type: none;
+ margin: 0;
+ padding: 0
+ }
+
+ .upstream-tabs .tab {
+ line-height: 24px;
+ margin: 7px 0 22px 0;
+ padding: 0;
+ text-align: center;
+ width: 100%
+ }
+
+ .upstream-tabs .tab label {
+ border-bottom: 2px solid #aaa;
+ color: #aaa;
+ cursor: pointer;
+ display: block;
+ font-size: .75rem;
+ padding-bottom: 10px;
+ width: 100%
+ }
+
+ .upstream-tabs .tab [type=radio] {
+ display: none
+ }
+
+ .upstream-tabs .tab [type=radio]:checked~label {
+ border-bottom: 2px solid #1a5eb8;
+ color: #1a5eb8;
+ font-weight: bold
+ }
+
+ html.js .upstream-tab-content {
+ display: none
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .upstream-tabs {
+ -webkit-flex-basis: content;
+ -ms-flex-preferred-size: content;
+ flex-basis: content;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start
+ }
+ .upstream-tabs .tab {
+ margin: 25px 40px 20px 0;
+ min-width: 0;
+ padding: 0;
+ width: -webkit-fit-content;
+ width: -moz-fit-content;
+ width: fit-content
+ }
+ .upstream-tabs .tab:last-child {
+ margin-right: 0
+ }
+ .upstream-tabs .tab label {
+ border-bottom: none;
+ font-size: .875rem;
+ padding-bottom: 4px
+ }
+ .upstream-tabs .tab label:hover {
+ border-bottom: 2px solid #aaa
+ }
+ }
+
+ .topics h2 {
+ letter-spacing: -.9px
+ }
+
+ .topics header {
+ margin-left: 0
+ }
+
+ .topics .grid-content,
+ .topics section.post-archive .pagination,
+ section.post-archive .topics .pagination,
+ .topics .grid-container {
+ padding: 0
+ }
+
+ .topics .grid-content,
+ .topics section.post-archive .pagination,
+ section.post-archive .topics .pagination {
+ margin-bottom: 1px
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .topics {
+ background-color: #f6f6f6;
+ padding: 2rem 0
+ }
+ .topics header {
+ padding-left: 5px
+ }
+ .topics .grid-container {
+ padding: 0 20px
+ }
+ .topics .grid-content,
+ .topics section.post-archive .pagination,
+ section.post-archive .topics .pagination {
+ margin-bottom: 0;
+ padding: 0
+ }
+ .topics .grid-content:last-of-type .topic-card,
+ .topics section.post-archive .pagination:last-of-type .topic-card,
+ section.post-archive .topics .pagination:last-of-type .topic-card {
+ margin-right: 0
+ }
+ .topics .topic-card {
+ margin-bottom: .625rem;
+ margin-right: .625rem
+ }
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .topics header {
+ margin-top: 25px;
+ padding-left: 1rem
+ }
+ .topics header h2 {
+ font-size: 1.5rem;
+ line-height: 1.8125rem
+ }
+ }
+
+ .topic-card {
+ color: #fff;
+ height: 600px;
+ overflow: hidden
+ }
+
+ .topic-card.sponsored {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: column;
+ -ms-flex-direction: column;
+ flex-direction: column
+ }
+
+ .topic-card .topic-title {
+ margin-top: 40px
+ }
+
+ .topic-card h2 {
+ letter-spacing: -.9px
+ }
+
+ .topic-card a,
+ .topic-card a:visited,
+ .topic-card a:active {
+ color: #fff
+ }
+
+ .topic-card a:hover {
+ color: #00b7e0
+ }
+
+ .topic-card ul {
+ list-style-type: none;
+ padding: 0
+ }
+
+ .topic-card .topic-card-inner {
+ height: 100%;
+ padding: 2.375rem 1.8125rem;
+ position: relative
+ }
+
+ .topic-card .topic-title {
+ font-style: italic;
+ margin-bottom: 0
+ }
+
+ .topic-card .topic-item {
+ border-top: 1px dashed #999;
+ padding-top: 15px
+ }
+
+ .topic-card .categories {
+ margin-top: -2.375rem;
+ margin-left: -11px;
+ position: absolute
+ }
+
+ .topic-card h4 {
+ font-weight: 500;
+ margin-bottom: 15px
+ }
+
+ .topic-card:not(.compact) h4 {
+ max-height: 3rem;
+ overflow: hidden
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .topic-card:not(.compact) h4 {
+ font-size: .875rem;
+ line-height: 1.125rem
+ }
+ }
+
+ .topic-card .action-btn-wrapper {
+ -webkit-align-self: flex-end;
+ -ms-flex-item-align: end;
+ align-self: flex-end;
+ margin-bottom: 20px;
+ text-align: center;
+ width: 100%;
+ z-index: 1
+ }
+
+ .topic-card .action-btn {
+ height: 43px;
+ line-height: 43px;
+ max-width: 90%;
+ overflow: hidden;
+ padding: 0 1rem
+ }
+
+ .topic-card .sponsored-by {
+ font-weight: bold;
+ height: 43px;
+ position: absolute;
+ right: 25px;
+ text-align: center;
+ top: 12px
+ }
+
+ .topic-card .sponsored-by.tall-logo img {
+ display: inline-block;
+ margin-left: 5px;
+ margin-top: 0;
+ max-height: 70px
+ }
+
+ .topic-card .sponsored-by img {
+ display: block;
+ height: auto;
+ margin: 10px auto 0;
+ max-height: 30px;
+ width: auto
+ }
+
+ .topic-card.compact {
+ height: 285px;
+ position: relative
+ }
+
+ .topic-card.compact h2,
+ .topic-card.compact h4 {
+ font-size: 1.5rem;
+ font-weight: bold;
+ line-height: 1.8125rem
+ }
+
+ .topic-card.compact .topic-feed {
+ width: 100%;
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ padding: 0 20px
+ }
+
+ .topic-card.compact .topic-title {
+ margin-top: 0
+ }
+
+ .topic-card.compact .topic-item {
+ display: none
+ }
+
+ .topic-card.compact .topic-item:nth-child(1) {
+ display: list-item
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .topic-card.compact h4 {
+ font-size: 1.3125rem;
+ line-height: 1.6875rem
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .topic-card.compact {
+ height: 500px
+ }
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .topic-card.sponsored h4 {
+ font-size: .875rem
+ }
+ .topic-card.sponsored .action-btn {
+ font-size: .875rem;
+ height: 40px;
+ line-height: 40px
+ }
+ .topic-card.sponsored .sponsored-by.tall-logo img {
+ max-height: 60px
+ }
+ .topic-card.sponsored .sponsored-by img {
+ max-height: 26px
+ }
+ .topic-card.sponsored .topic-item {
+ padding-top: 10px
+ }
+ .topic-card.sponsored .topic-title {
+ line-height: 2.25rem
+ }
+ }
+
+ .side-rail .topic-card.sponsored h4 {
+ font-size: .875rem
+ }
+
+ .side-rail .topic-card.sponsored .action-btn {
+ font-size: .875rem;
+ font-weight: bold;
+ height: 40px;
+ line-height: 40px
+ }
+
+ .side-rail .topic-card.sponsored .sponsored-by.tall-logo img {
+ max-height: 60px;
+ max-width: 45px
+ }
+
+ .side-rail .topic-card.sponsored .topic-item {
+ padding-top: 10px
+ }
+
+ .side-rail .topic-card.sponsored .topic-title {
+ line-height: 2.25rem;
+ margin-top: 30px
+ }
+
+ .side-rail .topic-card.sponsored .topic-title.tall-logo {
+ margin-top: 65px
+ }
+
+ .side-rail .topic-card-inner {
+ padding: 2.375rem 1.25rem
+ }
+
+ body.vertical-hub .topic-card .category:not(.cat-sponsored) {
+ display: none
+ }
+
+ .topic-card-simple-layout {
+ display: none
+ }
+
+ .topic-card-layout-test .topic-card-featured-layout {
+ display: none
+ }
+
+ .topic-card-layout-test .topic-card-simple-layout {
+ display: block
+ }
+
+ .topic-card-layout-test .topic-card-simple-layout .topic-card-simple-horizontal {
+ display: none
+ }
+
+ .entry-content .topic-card,
+ .entry-content .topic-card-simple-article-header {
+ display: none
+ }
+
+ .topic-card-article-test-featured .topic-card:not(.topic-card-simple) {
+ display: block
+ }
+
+ .topic-card-article-test-featured .topic-card-simple-article-header {
+ display: block
+ }
+
+ .topic-card-article-test-vertical .topic-card-simple:not(.topic-card-simple-horizontal) {
+ display: block
+ }
+
+ .topic-card-article-test-vertical .topic-card-simple-article-header {
+ display: block
+ }
+
+ .topic-card-article-test-horizontal .topic-card-simple-horizontal {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex
+ }
+
+ .topic-card-article-test-horizontal .topic-card-simple-article-header {
+ display: block
+ }
+
+ .topic-card-simple {
+ height: 362px
+ }
+
+ .topic-card-simple .categories {
+ margin: 0
+ }
+
+ .topic-card-simple .top-link {
+ -webkit-align-items: flex-end;
+ -ms-flex-align: end;
+ align-items: flex-end;
+ background-color: transparent;
+ color: #FFF;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ height: 187px;
+ padding: 0 15px 15px
+ }
+
+ .topic-card-simple .top-link a,
+ .topic-card-simple .top-link h4 {
+ color: #FFF
+ }
+
+ .topic-card-simple .top-link .icon-arrow-white {
+ fill: #FFF
+ }
+
+ .topic-card-simple .top-link.hover {
+ cursor: pointer
+ }
+
+ .topic-card-simple .top-link.hover a {
+ color: #00b7e0
+ }
+
+ .topic-card-simple .top-link.hover .icon-arrow-white {
+ fill: #00b7e0
+ }
+
+ .topic-card-simple .top-link a:hover {
+ color: #00b7e0
+ }
+
+ .topic-card-simple .top-link a:hover .icon-arrow-white {
+ fill: #00b7e0
+ }
+
+ .topic-card-simple .top-link h4 {
+ font-size: 1.5rem;
+ font-style: italic;
+ font-weight: bold;
+ line-height: 2.0625rem;
+ margin-bottom: 0;
+ max-height: none
+ }
+
+ .topic-card-simple .top-link-inner {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ -webkit-align-items: flex-end;
+ -ms-flex-align: end;
+ align-items: flex-end;
+ height: 100%;
+ position: relative
+ }
+
+ .topic-card-simple .topic-feed {
+ background: #FFF;
+ border: 1px solid #e6e6e6;
+ border-top-width: 0;
+ height: 175px
+ }
+
+ .topic-card-simple .topic-item {
+ border-top: none;
+ margin: 0 19px;
+ padding: 6px 0
+ }
+
+ .topic-card-simple .topic-item:first-child {
+ border-bottom: 1px dashed #e6e6e6
+ }
+
+ .topic-card-simple .topic-item .source * {
+ color: #39424d
+ }
+
+ .topic-card-simple .topic-item a {
+ color: #00b7e0
+ }
+
+ .topic-card-simple .topic-item h4 {
+ font-size: .875rem;
+ line-height: 1.25rem;
+ margin-bottom: 0;
+ max-height: 2.5rem
+ }
+
+ .topic-card-simple-horizontal {
+ height: 170px
+ }
+
+ .topic-card-simple-horizontal.grid-block {
+ margin-left: 0;
+ margin-right: 0
+ }
+
+ .topic-card-simple-horizontal .top-link {
+ height: 100%;
+ margin-left: 0;
+ margin-right: 0
+ }
+
+ .topic-card-simple-horizontal .top-link-inner {
+ height: 100%
+ }
+
+ .topic-card-simple-horizontal .topic-feed {
+ border-width: 1px 1px 1px 0;
+ height: 100%
+ }
+
+ .entry-content .topic-card {
+ margin-bottom: 50px
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .entry-content .article-topic-card-layout {
+ display: none
+ }
+ }
+
+ .top-communities {
+ background-color: #f6f6f6;
+ margin: 20px 0 20px;
+ text-align: center;
+ padding: 0 20px;
+ width: 300px
+ }
+
+ .top-communities&gt;
+ * {
+ -webkit-transform: translateY(-20px);
+ transform: translateY(-20px)
+ }
+
+ .top-communities header {
+ padding-bottom: 10px
+ }
+
+ .top-communities h3 {
+ margin: 5px auto 0
+ }
+
+ .top-communities .community-list li {
+ border-top: 1px dashed #999;
+ font-size: 14px;
+ font-weight: bold;
+ padding: .875rem 0;
+ text-align: left
+ }
+
+ .top-communities .community-list li:first-child {
+ border-top: 0 none
+ }
+
+ .top-communities .community-list a {
+ color: #39424d;
+ display: block
+ }
+
+ .top-communities .community-list a:hover {
+ color: #00b7e0
+ }
+
+ .top-communities .community-list .vertical {
+ float: right;
+ margin-top: 2px;
+ text-align: center;
+ width: 28px
+ }
+
+ article.type-video {
+ -webkit-align-content: flex-start;
+ -ms-flex-line-pack: start;
+ align-content: flex-start;
+ padding-top: 24px
+ }
+
+ article.type-video h1 {
+ margin-bottom: 10px
+ }
+
+ article.type-video .article-share {
+ margin: 15px 0 0;
+ padding-left: 1rem;
+ text-align: left
+ }
+
+ article.type-video .article-share .share-wrapper {
+ float: none
+ }
+
+ article.type-video .description {
+ padding-bottom: 35px
+ }
+
+ article.type-video .entry-content {
+ margin-top: 0;
+ padding-left: 1rem
+ }
+
+ article.type-video .entry-content p {
+ margin: 1.5rem 0 0 0
+ }
+
+ article.type-video .video-content {
+ margin: 15px 1rem 0;
+ padding: 0
+ }
+
+ article.type-video .video-content figure {
+ margin: 0 auto
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ article.type-video {
+ padding-top: 0
+ }
+ article.type-video .article-share {
+ margin: 6px auto 24px;
+ -webkit-order: 2;
+ -ms-flex-order: 2;
+ order: 2
+ }
+ article.type-video .description {
+ margin-top: -1.5rem
+ }
+ article.type-video .entry-content {
+ -webkit-order: 4;
+ -ms-flex-order: 4;
+ order: 4
+ }
+ article.type-video .header {
+ -webkit-order: 3;
+ -ms-flex-order: 3;
+ order: 3
+ }
+ article.type-video .video-content {
+ -webkit-order: 1;
+ -ms-flex-order: 1;
+ order: 1;
+ margin: 0;
+ padding: 0
+ }
+ article.type-video .video-content figure {
+ margin: 0
+ }
+ .article-wrapper .side-rail {
+ max-width: none;
+ padding: 35px 1rem 0
+ }
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ html.js .video-rail {
+ visibility: hidden
+ }
+ html.js .video-rail.visible {
+ visibility: visible
+ }
+ }
+
+ .videos-module {
+ background-color: #39424d
+ }
+
+ .videos-module h2 {
+ font-size: 1.5rem;
+ line-height: 1.8125rem;
+ color: #fff
+ }
+
+ .videos-module .videos-module-inner {
+ max-width: 66.5rem;
+ margin: 0 auto;
+ padding: 23px 20px 38px
+ }
+
+ .videos-module .video-post {
+ position: relative
+ }
+
+ .videos-module .thumbnail {
+ display: block;
+ position: relative;
+ padding: 10px;
+ width: 100%
+ }
+
+ .videos-module .thumbnail:after {
+ display: block;
+ content: '';
+ padding-top: 56.25%
+ }
+
+ .videos-module .thumbnail-inner {
+ height: 100%;
+ left: 0;
+ position: absolute;
+ top: 0;
+ width: 100%
+ }
+
+ .videos-module h3 {
+ color: #fff;
+ margin-bottom: 0;
+ width: 60%
+ }
+
+ .videos-module .clickable-unit.hover h3 {
+ color: #00b7e0
+ }
+
+ .videos-module .play-button-overlay {
+ background-size: 36px 36px;
+ background-position: bottom 12px right 12px;
+ text-indent: -9999px
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .videos-module h2 {
+ padding-left: 10px
+ }
+ .videos-module h3 {
+ bottom: 10px;
+ left: 10px;
+ margin-bottom: 0;
+ position: absolute
+ }
+ .videos-module .lead {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ height: 100vh;
+ position: relative;
+ overflow: hidden;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-flex: 0 0 50%;
+ -ms-flex: 0 0 50%;
+ flex: 0 0 50%;
+ max-width: 50%;
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ -webkit-flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap;
+ -webkit-align-items: stretch;
+ -ms-flex-align: stretch;
+ align-items: stretch;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ -webkit-order: 0;
+ -ms-flex-order: 0;
+ order: 0;
+ height: auto;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar
+ }
+ .videos-module .lead h3 {
+ font-size: 1.125rem;
+ line-height: 1.375rem;
+ width: 70%
+ }
+ .videos-module .lead .play-button-overlay {
+ background-size: 72px 72px;
+ background-position: bottom 20px right 20px
+ }
+ .videos-module .secondary {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ height: 100vh;
+ position: relative;
+ overflow: hidden;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-flex: 0 0 50%;
+ -ms-flex: 0 0 50%;
+ flex: 0 0 50%;
+ max-width: 50%;
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ -webkit-flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap;
+ -webkit-align-items: stretch;
+ -ms-flex-align: stretch;
+ align-items: stretch;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ -webkit-order: 0;
+ -ms-flex-order: 0;
+ order: 0;
+ height: auto;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar
+ }
+ .videos-module .secondary&gt;
+ div {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ height: 100vh;
+ position: relative;
+ overflow: hidden;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-flex: 1 1 auto;
+ -ms-flex: 1 1 auto;
+ flex: 1 1 auto;
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ -webkit-flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap;
+ -webkit-align-items: stretch;
+ -ms-flex-align: stretch;
+ align-items: stretch;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ -webkit-order: 0;
+ -ms-flex-order: 0;
+ order: 0;
+ height: auto;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar;
+ -webkit-flex-flow: column nowrap;
+ -ms-flex-flow: column nowrap;
+ flex-flow: column nowrap;
+ align-items: stretch
+ }
+ .videos-module .secondary&gt;
+ div:last-child .video-post {
+ margin-right: 0
+ }
+ .videos-module .secondary h3 {
+ line-height: .9375rem
+ }
+ .videos-module .videos-module-grid {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ height: 100vh;
+ position: relative;
+ overflow: hidden;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-flex: 1 1 auto;
+ -ms-flex: 1 1 auto;
+ flex: 1 1 auto;
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ -webkit-flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap;
+ -webkit-align-items: stretch;
+ -ms-flex-align: stretch;
+ align-items: stretch;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ -webkit-order: 0;
+ -ms-flex-order: 0;
+ order: 0;
+ height: auto;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar;
+ height: 312px
+ }
+ .videos-module .video-post {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ height: 100vh;
+ position: relative;
+ overflow: hidden;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-flex: 1 1 auto;
+ -ms-flex: 1 1 auto;
+ flex: 1 1 auto;
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ -webkit-flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap;
+ -webkit-align-items: stretch;
+ -ms-flex-align: stretch;
+ align-items: stretch;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ -webkit-order: 0;
+ -ms-flex-order: 0;
+ order: 0;
+ height: auto;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar;
+ margin: 0 10px 10px 0
+ }
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .videos-module a {
+ display: inline-block
+ }
+ .videos-module .lead {
+ margin-bottom: 24px
+ }
+ .videos-module .lead h3 {
+ font-size: .875rem;
+ line-height: 1.25rem;
+ position: absolute;
+ bottom: 10px;
+ left: 10px
+ }
+ .videos-module .lead .play-button-overlay {
+ background-size: 72px 72px;
+ background-position: bottom 20px right 20px
+ }
+ .videos-module .secondary .video-post {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ height: 100vh;
+ position: relative;
+ overflow: hidden;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-flex: 0 0 100%;
+ -ms-flex: 0 0 100%;
+ flex: 0 0 100%;
+ max-width: 100%;
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ -webkit-flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap;
+ -webkit-align-items: stretch;
+ -ms-flex-align: stretch;
+ align-items: stretch;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ -webkit-order: 0;
+ -ms-flex-order: 0;
+ order: 0;
+ height: auto;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar;
+ margin-bottom: 12px;
+ overflow: visible
+ }
+ .videos-module .secondary .thumbnail {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ height: 100vh;
+ position: relative;
+ overflow: hidden;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-flex: 0 0 50%;
+ -ms-flex: 0 0 50%;
+ flex: 0 0 50%;
+ max-width: 50%;
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+ -webkit-flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap;
+ -webkit-align-items: stretch;
+ -ms-flex-align: stretch;
+ align-items: stretch;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ -webkit-order: 0;
+ -ms-flex-order: 0;
+ order: 0;
+ height: auto;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar
+ }
+ .videos-module .secondary h3 {
+ display: block;
+ padding: 0 1rem;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar;
+ -webkit-flex: 0 0 50%;
+ -ms-flex: 0 0 50%;
+ flex: 0 0 50%;
+ max-width: 50%;
+ line-height: 1.375rem;
+ max-height: 4.125rem;
+ overflow: hidden
+ }
+ .videos-module .videos-module-inner {
+ padding-bottom: 26px
+ }
+ }
+
+ .oo-player-container .oo-clearfix::after {
+ content: "";
+ display: table;
+ clear: both
+ }
+
+ .oo-player-container .oo-center-block {
+ display: block;
+ margin-left: auto;
+ margin-right: auto
+ }
+
+ .oo-player-container .oo-pull-right {
+ float: right !important
+ }
+
+ .oo-player-container .oo-pull-left {
+ float: left !important
+ }
+
+ .oo-player-container [hidden],
+ .oo-player-container .oo-hidden {
+ display: none !important
+ }
+
+ .oo-player-container .oo-invisible {
+ visibility: hidden
+ }
+
+ .oo-player-container .oo-text-truncate {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap
+ }
+
+ .oo-player-container .oo-text-lowercase {
+ text-transform: lowercase
+ }
+
+ .oo-player-container .oo-text-uppercase {
+ text-transform: uppercase
+ }
+
+ .oo-player-container .oo-text-capitalize {
+ text-transform: capitalize
+ }
+
+ .oo-player-container .oo-sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ border: 0
+ }
+
+ .oo-player-container .oo-expand,
+ .oo-player-container .oo-state-screen,
+ .oo-player-container .oo-spinner-screen,
+ .oo-player-container .oo-state-screen .oo-fading-underlay,
+ .oo-player-container .oo-spinner-screen .oo-fading-underlay,
+ .oo-player-container .oo-state-screen .oo-fading-underlay-active,
+ .oo-player-container .oo-spinner-screen .oo-fading-underlay-active,
+ .oo-player-container .oo-state-screen .oo-underlay-gradient,
+ .oo-player-container .oo-spinner-screen .oo-underlay-gradient,
+ .oo-player-container .oo-state-screen .oo-state-screen-selectable,
+ .oo-player-container .oo-spinner-screen .oo-state-screen-selectable,
+ .oo-player-container .oo-plugins,
+ .oo-player-container .oo-player&gt;
+ div,
+ .oo-player-container .oo-player&gt;
+ embed,
+ .oo-player-container .oo-player&gt;
+ figure,
+ .oo-player-container .oo-player&gt;
+ object,
+ .oo-player-container .oo-player-skin,
+ .oo-player-container video {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: 0
+ }
+
+ .oo-player-container .oo-center-vertical-horizontal,
+ .oo-player-container .oo-state-screen .oo-action-icon,
+ .oo-player-container .oo-spinner-screen .oo-action-icon,
+ .oo-player-container .oo-action-icon-pause,
+ .oo-player-container .oo-action-icon-pause.oo-animate-pause,
+ .oo-player-container .oo-spinner-wrapper,
+ .oo-player-container .oo-slider {
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ -webkit-transform: translate(-50%, -50%);
+ transform: translate(-50%, -50%)
+ }
+
+ .oo-player-container {
+ font-family: sans-serif;
+ -ms-text-size-adjust: 100%;
+ -webkit-text-size-adjust: 100%;
+ margin: 0;
+ padding: 0
+ }
+
+ .oo-player-container figure,
+ .oo-player-container menu,
+ .oo-player-container section {
+ display: block
+ }
+
+ .oo-player-container video {
+ display: block;
+ vertical-align: baseline
+ }
+
+ .oo-player-container [hidden],
+ .oo-player-container template {
+ display: none
+ }
+
+ .oo-player-container a {
+ background-color: transparent
+ }
+
+ .oo-player-container a:active {
+ outline: 0
+ }
+
+ .oo-player-container a:hover {
+ outline: 0
+ }
+
+ .oo-player-container b,
+ .oo-player-container strong {
+ font-weight: bold
+ }
+
+ .oo-player-container h1 {
+ font-size: 2em;
+ margin: 0.67em 0
+ }
+
+ .oo-player-container img {
+ border: 0
+ }
+
+ .oo-player-container svg:not(:root) {
+ overflow: hidden
+ }
+
+ .oo-player-container figure {
+ margin: 1em 40px
+ }
+
+ .oo-player-container hr {
+ box-sizing: content-box;
+ height: 0
+ }
+
+ .oo-player-container button,
+ .oo-player-container input,
+ .oo-player-container optgroup,
+ .oo-player-container select,
+ .oo-player-container textarea {
+ color: #55595c;
+ font: inherit;
+ margin: 0
+ }
+
+ .oo-player-container button {
+ overflow: visible
+ }
+
+ .oo-player-container button,
+ .oo-player-container select {
+ text-transform: none
+ }
+
+ .oo-player-container button,
+ .oo-player-container html input[type="button"],
+ .oo-player-container input[type="reset"],
+ .oo-player-container input[type="submit"] {
+ -webkit-appearance: button;
+ cursor: pointer
+ }
+
+ .oo-player-container button[disabled],
+ .oo-player-container html input[disabled] {
+ cursor: default
+ }
+
+ .oo-player-container button::-moz-focus-inner,
+ .oo-player-container input::-moz-focus-inner {
+ border: 0;
+ padding: 0
+ }
+
+ .oo-player-container input {
+ line-height: normal
+ }
+
+ .oo-player-container input[type="checkbox"],
+ .oo-player-container input[type="radio"] {
+ box-sizing: border-box;
+ padding: 0
+ }
+
+ .oo-player-container input[type="number"]::-webkit-inner-spin-button,
+ .oo-player-container input[type="number"]::-webkit-outer-spin-button {
+ height: auto
+ }
+
+ .oo-player-container input[type="search"] {
+ -webkit-appearance: textfield;
+ box-sizing: content-box
+ }
+
+ .oo-player-container input[type="search"]::-webkit-search-cancel-button,
+ .oo-player-container input[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none
+ }
+
+ .oo-player-container textarea {
+ overflow: auto
+ }
+
+ .oo-player-container table {
+ border-collapse: collapse;
+ border-spacing: 0
+ }
+
+ .oo-player-container td,
+ .oo-player-container th {
+ padding: 0
+ }
+
+ .oo-player-container *,
+ .oo-player-container *::before,
+ .oo-player-container *::after {
+ box-sizing: border-box
+ }
+
+ .oo-player-container h1,
+ .oo-player-container h2,
+ .oo-player-container h3,
+ .oo-player-container h4,
+ .oo-player-container h5,
+ .oo-player-container h6 {
+ margin-top: 0;
+ margin-bottom: .5rem
+ }
+
+ .oo-player-container p {
+ margin-top: 0;
+ margin-bottom: 1rem
+ }
+
+ .oo-player-container ol,
+ .oo-player-container ul,
+ .oo-player-container dl {
+ margin-top: 0;
+ margin-bottom: 1rem
+ }
+
+ .oo-player-container ol ol,
+ .oo-player-container ul ul,
+ .oo-player-container ol ul,
+ .oo-player-container ul ol {
+ margin-bottom: 0
+ }
+
+ .oo-player-container figure {
+ margin: 0 0 1rem
+ }
+
+ .oo-player-container img {
+ vertical-align: middle
+ }
+
+ .oo-player-container [role="button"] {
+ cursor: pointer
+ }
+
+ .oo-player-container th {
+ text-align: left
+ }
+
+ .oo-player-container label {
+ display: inline-block;
+ margin-bottom: .5rem
+ }
+
+ .oo-player-container input,
+ .oo-player-container button,
+ .oo-player-container select,
+ .oo-player-container textarea {
+ margin: 0;
+ line-height: inherit;
+ border-radius: 0
+ }
+
+ .oo-player-container textarea {
+ resize: vertical
+ }
+
+ .oo-player-container {
+ font-size: 16px;
+ font-size: 1em;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ line-height: 1.5;
+ color: #fff;
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-font-smoothing: antialiased;
+ text-rendering: optimizelegibility;
+ -webkit-tap-highlight-color: transparent;
+ min-width: 320px
+ }
+
+ .oo-player-container a {
+ color: #448aff;
+ text-decoration: none;
+ cursor: pointer
+ }
+
+ .oo-player-container a:focus {
+ color: #005cf7;
+ text-decoration: none
+ }
+
+ .oo-player-container a:hover {
+ color: #005cf7;
+ text-decoration: none
+ }
+
+ .oo-player-container a:focus {
+ outline: thin dotted;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px
+ }
+
+ .oo-player-container .oo-col-sm-2 {
+ width: 16.66667%
+ }
+
+ .oo-player-container .oo-col-sm-10 {
+ width: 83.33333%
+ }
+
+ .oo-player-container .oo-col-sm-offset-2 {
+ margin-left: 16.66667%
+ }
+
+ @font-face {
+ font-family: "ooyala-slick-type";
+ src: url("/wp-content/themes/upstream/dist/ooyala/fonts/ooyala-slick-type.eot");
+ src: url("/wp-content/themes/upstream/dist/ooyala/fonts/ooyala-slick-type.eot?#iefix") format("embedded-opentype"), url("/wp-content/themes/upstream/dist/ooyala/fonts/ooyala-slick-type.woff") format("woff"), url("/wp-content/themes/upstream/dist/ooyala/fonts/ooyala-slick-type.ttf") format("truetype"), url("/wp-content/themes/upstream/dist/ooyala/fonts/ooyala-slick-type.svg#alice") format("svg");
+ font-weight: normal;
+ font-style: normal
+ }
+
+ @font-face {
+ font-family: 'Roboto Condensed';
+ font-style: normal;
+ font-weight: 400;
+ src: local("Roboto Condensed"), local("RobotoCondensed-Regular"), url("/wp-content/themes/upstream/dist/ooyala/fonts/RobotoCondensed-Regular.woff2") format("woff2"), url("/wp-content/themes/upstream/dist/ooyala/fonts/RobotoCondensed-Regular.woff") format("woff"), url("/wp-content/themes/upstream/dist/ooyala/fonts/RobotoCondensed-Regular.ttf") format("truetype");
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000
+ }
+
+ @font-face {
+ font-family: 'Roboto Condensed Bold';
+ font-style: normal;
+ font-weight: 700;
+ src: local("Roboto Condensed Bold"), local("RobotoCondensed-Bold"), url("/wp-content/themes/upstream/dist/ooyala/fonts/RobotoCondensed-Bold.woff2") format("woff2"), url("/wp-content/themes/upstream/dist/ooyala/fonts/RobotoCondensed-Bold.woff") format("woff"), url("/wp-content/themes/upstream/dist/ooyala/fonts/RobotoCondensed-Bold.ttf") format("truetype");
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000
+ }
+
+ @font-face {
+ font-family: 'Roboto';
+ font-style: normal;
+ font-weight: 400;
+ src: local("Roboto"), local("Roboto-Regular"), url("/wp-content/themes/upstream/dist/ooyala/fonts/Roboto-Regular.woff2") format("woff2"), url("/wp-content/themes/upstream/dist/ooyala/fonts/Roboto-Regular.ttf") format("truetype"), url("/wp-content/themes/upstream/dist/ooyala/fonts/Roboto-Regular.woff") format("woff");
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000
+ }
+
+ @font-face {
+ font-family: 'Roboto Bold';
+ font-style: normal;
+ font-weight: 700;
+ src: local("Roboto Bold"), local("Roboto-Bold"), url("/wp-content/themes/upstream/dist/ooyala/fonts/Roboto-Bold.woff2") format("woff2"), url("/wp-content/themes/upstream/dist/ooyala/fonts/Roboto-Bold.ttf") format("truetype"), url("/wp-content/themes/upstream/dist/ooyala/fonts/Roboto-Bold.woff") format("woff");
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000
+ }
+
+ @font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 400;
+ src: local("Open Sans"), local("OpenSans"), url("/wp-content/themes/upstream/dist/ooyala/fonts/OpenSans.woff2") format("woff2"), url("/wp-content/themes/upstream/dist/ooyala/fonts/OpenSans.woff") format("woff"), url("/wp-content/themes/upstream/dist/ooyala/fonts/OpenSans.ttf") format("truetype");
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000
+ }
+
+ @font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 400;
+ src: local("Open Sans"), local("OpenSans"), url("/wp-content/themes/upstream/dist/ooyala/fonts/OpenSans.woff2") format("woff2"), url("/wp-content/themes/upstream/dist/ooyala/fonts/OpenSans.woff") format("woff"), url("/wp-content/themes/upstream/dist/ooyala/fonts/OpenSans.ttf") format("truetype");
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000
+ }
+
+ .oo-player-container [data-icon] {
+ font-family: "ooyala-slick-type" !important;
+ content: attr(data-icon);
+ font-style: normal !important;
+ font-weight: normal !important;
+ font-variant: normal !important;
+ text-transform: none !important;
+ speak: none;
+ line-height: 1;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale
+ }
+
+ .oo-player-container [class^="oo-icon-"],
+ .oo-player-container [class*=" oo-icon-"] {
+ font-family: "ooyala-slick-type" !important;
+ font-style: normal !important;
+ font-weight: normal !important;
+ font-variant: normal !important;
+ text-transform: none !important;
+ speak: none;
+ line-height: 1;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale
+ }
+
+ .oo-player-container .oo-content-screen {
+ padding: 24.5px;
+ background-color: rgba(0, 0, 0, 0.7);
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: 0
+ }
+
+ .oo-player-container .oo-content-screen-title-bar {
+ position: relative
+ }
+
+ .oo-player-container .oo-content-screen-title {
+ display: inline;
+ line-height: 1;
+ font-weight: bold;
+ font-size: 1.6em;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ color: #fff
+ }
+
+ .oo-player-container .oo-content-screen-title span.oo-icon {
+ top: 1px;
+ position: relative;
+ margin-left: 12px;
+ font-size: 0.8em
+ }
+
+ .oo-player-container .oo-content-panel {
+ height: 100%;
+ overflow: hidden
+ }
+
+ .oo-player-container .oo-state-screen,
+ .oo-player-container .oo-spinner-screen {
+ overflow: hidden;
+ cursor: default;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ -o-user-select: none;
+ user-select: none
+ }
+
+ .oo-player-container .oo-state-screen .oo-fading-underlay,
+ .oo-player-container .oo-spinner-screen .oo-fading-underlay {
+ background-color: #1a1a1a;
+ opacity: 0
+ }
+
+ .oo-player-container .oo-state-screen .oo-fading-underlay-active,
+ .oo-player-container .oo-spinner-screen .oo-fading-underlay-active {
+ background-color: #1a1a1a;
+ opacity: 0.5
+ }
+
+ .oo-player-container .oo-state-screen .oo-fading-underlay.oo-animate-fade,
+ .oo-player-container .oo-spinner-screen .oo-fading-underlay.oo-animate-fade {
+ opacity: 0.5;
+ transition: all 1s ease
+ }
+
+ .oo-player-container .oo-state-screen .oo-underlay-gradient,
+ .oo-player-container .oo-spinner-screen .oo-underlay-gradient {
+ background-size: contain;
+ background-repeat: no-repeat;
+ background-position: center;
+ background: linear-gradient(to bottom, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.3) 100%)
+ }
+
+ .oo-player-container .oo-state-screen .oo-state-screen-selectable,
+ .oo-player-container .oo-spinner-screen .oo-state-screen-selectable {
+ text-decoration: none;
+ cursor: default;
+ background-color: white;
+ opacity: 0;
+ filter: alpha(opacity=1)
+ }
+
+ .oo-player-container .oo-state-screen .oo-state-screen-poster,
+ .oo-player-container .oo-spinner-screen .oo-state-screen-poster {
+ width: 100%;
+ top: 0;
+ left: 0;
+ background-size: cover;
+ background-repeat: no-repeat;
+ background-position: center;
+ display: inline-block;
+ vertical-align: middle;
+ cursor: pointer;
+ margin: 0;
+ padding: 0;
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ height: 100%
+ }
+
+ .oo-player-container .oo-state-screen .oo-state-screen-poster img,
+ .oo-player-container .oo-spinner-screen .oo-state-screen-poster img {
+ visibility: hidden;
+ width: 100%
+ }
+
+ .oo-player-container .oo-state-screen .oo-state-screen-poster-small,
+ .oo-player-container .oo-spinner-screen .oo-state-screen-poster-small {
+ position: relative;
+ width: 75%;
+ height: 200px;
+ top: 5%;
+ left: 5%;
+ background-size: cover;
+ background-repeat: no-repeat;
+ background-position: center
+ }
+
+ .oo-player-container .oo-state-screen .oo-state-screen-poster-small img,
+ .oo-player-container .oo-spinner-screen .oo-state-screen-poster-small img {
+ visibility: hidden;
+ width: 0
+ }
+
+ .oo-player-container .oo-state-screen .oo-state-screen-info,
+ .oo-player-container .oo-spinner-screen .oo-state-screen-info {
+ position: absolute;
+ width: 100%;
+ top: 5%;
+ left: 5%
+ }
+
+ .oo-player-container .oo-state-screen .oo-state-screen-info .oo-state-screen-title,
+ .oo-player-container .oo-spinner-screen .oo-state-screen-info .oo-state-screen-title {
+ font-size: 1.6em;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-weight: bold;
+ max-width: 70%;
+ resize: none;
+ margin-bottom: 15px
+ }
+
+ .oo-player-container .oo-state-screen .oo-state-screen-info .oo-state-screen-description,
+ .oo-player-container .oo-spinner-screen .oo-state-screen-info .oo-state-screen-description {
+ font-size: 1.1em;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ max-width: 70%;
+ clear: both
+ }
+
+ .oo-player-container .oo-state-screen .oo-info-panel-top,
+ .oo-player-container .oo-spinner-screen .oo-info-panel-top {
+ top: 5%
+ }
+
+ .oo-player-container .oo-state-screen .oo-info-panel-bottom,
+ .oo-player-container .oo-spinner-screen .oo-info-panel-bottom {
+ top: 66%
+ }
+
+ .oo-player-container .oo-state-screen .oo-info-panel-left,
+ .oo-player-container .oo-spinner-screen .oo-info-panel-left {
+ left: 5%
+ }
+
+ .oo-player-container .oo-state-screen .oo-info-panel-right,
+ .oo-player-container .oo-spinner-screen .oo-info-panel-right {
+ left: -3%
+ }
+
+ .oo-player-container .oo-state-screen .oo-action-icon,
+ .oo-player-container .oo-spinner-screen .oo-action-icon {
+ cursor: pointer
+ }
+
+ .oo-player-container .oo-state-screen .oo-action-icon span.oo-icon,
+ .oo-player-container .oo-spinner-screen .oo-action-icon span.oo-icon {
+ font-size: 150px;
+ opacity: 1;
+ color: white
+ }
+
+ .oo-player-container .oo-state-screen .oo-action-icon-top,
+ .oo-player-container .oo-spinner-screen .oo-action-icon-top {
+ top: 15% !important
+ }
+
+ .oo-player-container .oo-state-screen .oo-action-icon-bottom,
+ .oo-player-container .oo-spinner-screen .oo-action-icon-bottom {
+ top: 80% !important
+ }
+
+ .oo-player-container .oo-state-screen .oo-action-icon-left,
+ .oo-player-container .oo-spinner-screen .oo-action-icon-left {
+ left: 10% !important
+ }
+
+ .oo-player-container .oo-state-screen .oo-action-icon-right,
+ .oo-player-container .oo-spinner-screen .oo-action-icon-right {
+ left: 90% !important
+ }
+
+ .oo-player-container .oo-state-screen .oo-interactive-container,
+ .oo-player-container .oo-spinner-screen .oo-interactive-container {
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ width: 100%
+ }
+
+ .oo-player-container .oo-start-screen {
+ z-index: 12005
+ }
+
+ .oo-player-container .oo-start-screen .oo-start-screen-linear-gradient {
+ background: linear-gradient(to bottom, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.3) 100%);
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: 0
+ }
+
+ .oo-player-container .oo-action-icon-pause {
+ opacity: 1;
+ font-size: 24px
+ }
+
+ .oo-player-container .oo-action-icon-pause span.oo-icon {
+ color: #FFF;
+ opacity: 1
+ }
+
+ .oo-player-container .oo-action-icon-pause.oo-animate-pause {
+ opacity: 0;
+ font-size: 72px;
+ transition: all 1s ease
+ }
+
+ .oo-player-container .oo-error-screen {
+ background-color: #000
+ }
+
+ .oo-player-container .oo-error-screen .oo-error-content {
+ width: 80%;
+ position: relative;
+ top: 50%;
+ text-align: left;
+ -webkit-transform: translateY(-50%);
+ transform: translateY(-50%);
+ word-wrap: break-word
+ }
+
+ .oo-player-container .oo-error-screen .oo-error-content .oo-error-title {
+ font-family: 'Roboto', sans-serif;
+ font-weight: bold;
+ margin-bottom: 30px;
+ font-size: 1.7em
+ }
+
+ .oo-player-container .oo-error-screen .oo-error-content .oo-error-description {
+ font-family: 'Open Sans', sans-serif;
+ margin-bottom: 30px;
+ font-size: 1em
+ }
+
+ .oo-player-container .oo-error-screen .oo-error-content .oo-error-action {
+ color: #4389FF;
+ font-family: 'Open Sans', sans-serif;
+ font-size: 1em
+ }
+
+ .oo-player-container .oo-ad-screen {
+ cursor: default
+ }
+
+ .oo-player-container .oo-ad-screen .oo-action-icon span.oo-icon {
+ opacity: 0
+ }
+
+ .oo-player-container .oo-ad-screen .oo-action-icon.oo-icon-hidden {
+ z-index: 11990;
+ visibility: hidden
+ }
+
+ .oo-player-container .oo-ad-screen .oo-action-icon-pause.oo-animate-pause {
+ z-index: 12600;
+ cursor: default
+ }
+
+ .oo-player-container .oo-ad-screen.oo-hidden {
+ cursor: none
+ }
+
+ .oo-player-container .oo-popover {
+ position: absolute;
+ background-color: rgba(26, 26, 26, 0.8);
+ bottom: 80px;
+ box-shadow: rgba(0, 0, 0, 0.2) 0 5px 10px;
+ border: 0;
+ border-radius: 4px;
+ position: absolute;
+ left: 50%;
+ -webkit-transform: translateX(-50%);
+ transform: translateX(-50%)
+ }
+
+ .oo-player-container .oo-popover ul.oo-popover-horizontal {
+ display: inline-block;
+ padding: 0;
+ margin: 13px;
+ list-style: none;
+ white-space: nowrap;
+ position: relative
+ }
+
+ .oo-player-container .oo-popover ul.oo-popover-horizontal li {
+ float: none;
+ position: relative;
+ display: inline-block;
+ margin: 0 12.5px;
+ vertical-align: middle
+ }
+
+ .oo-player-container .oo-popover ul.oo-popover-horizontal li:first-child {
+ margin-left: 0 !important
+ }
+
+ .oo-player-container .oo-popover ul.oo-popover-horizontal li:last-child {
+ margin-right: 0 !important
+ }
+
+ .oo-player-container .oo-popover ul.oo-popover-horizontal li .oo-switch-container {
+ margin-left: 0;
+ display: block
+ }
+
+ .oo-player-container .oo-popover ul.oo-popover-horizontal li a.oo-more-captions {
+ border: 1px solid grey;
+ border-radius: 4px;
+ padding: 4px 10px;
+ color: #fff;
+ background-color: #333;
+ text-transform: uppercase;
+ font-size: 12px;
+ font-weight: bold
+ }
+
+ .oo-player-container .oo-discovery-toaster-container-style {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ -webkit-transform: translate(-50%, -50%);
+ transform: translate(-50%, -50%);
+ position: relative;
+ background-color: transparent;
+ height: auto;
+ max-height: 370px;
+ width: 100%;
+ overflow: hidden;
+ white-space: nowrap;
+ margin: auto
+ }
+
+ .oo-player-container _::-webkit-full-page-media,
+ .oo-player-container _:future,
+ .oo-player-container :root .oo-discovery-toaster-container-style {
+ min-height: 270px
+ }
+
+ @supports (overflow: -webkit-marquee) and (justify-content: inherit) {
+ .oo-player-container .oo-discovery-toaster-container-style {
+ min-height: 270px
+ }
+ }
+
+ @media all and (-ms-high-contrast: none) {
+ .oo-player-container *::-ms-backdrop,
+ .oo-player-container .oo-discovery-toaster-container-style {
+ position: absolute;
+ height: 100%;
+ left: 50%;
+ top: 62.5%;
+ -webkit-transform: translate(none, -25%);
+ transform: translate(none, -25%)
+ }
+ }
+
+ .oo-player-container .oo-flexcontainer {
+ display: -ms-flexbox;
+ display: -webkit-flex;
+ display: flex;
+ -webkit-align-items: center;
+ -ms-flex-align: center;
+ align-items: center;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ -webkit-flex-flow: column wrap;
+ -ms-flex-flow: column wrap;
+ flex-flow: column wrap;
+ -ms-flex-line-pack: center;
+ -webkit-align-content: center;
+ align-content: center;
+ overflow: visible
+ }
+
+ .oo-player-container .oo-discovery-image-wrapper-style {
+ position: relative;
+ width: 150px;
+ height: auto;
+ margin: 0 42px 42px 0;
+ -ms-flex-negative: 0;
+ -webkit-flex-shrink: 0;
+ flex-shrink: 0
+ }
+
+ .oo-player-container .oo-discovery-image-wrapper-style:nth-of-type(even) {
+ margin-bottom: 0
+ }
+
+ .oo-player-container .oo-discovery-image-wrapper-style:last-child,
+ .oo-player-container .oo-discovery-image-wrapper-style:nth-last-child(2):nth-of-type(odd) {
+ margin-right: 0
+ }
+
+ .oo-player-container .oo-discovery-image-wrapper-style .oo-discovery-wrapper {
+ position: relative
+ }
+
+ .oo-player-container .oo-image-style {
+ width: auto;
+ height: 84px;
+ display: block;
+ background-size: cover;
+ background-repeat: no-repeat;
+ background-position: center
+ }
+
+ .oo-player-container .oo-discovery-content-name {
+ color: #fff;
+ font-size: 1em;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ width: 100%;
+ display: inline-block;
+ text-transform: capitalize;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap
+ }
+
+ .oo-player-container .oo-discover-btn,
+ .oo-player-container a.oo-left-button,
+ .oo-player-container a.oo-right-button {
+ position: absolute;
+ top: 50%;
+ background-color: transparent;
+ height: 10%;
+ width: 25px;
+ color: white
+ }
+
+ .oo-player-container a.oo-left-button {
+ left: 0;
+ text-align: right
+ }
+
+ .oo-player-container a.oo-right-button {
+ right: 0;
+ text-align: left
+ }
+
+ .oo-player-container .oo-discovery-count-down-wrapper-style {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ -webkit-transform: translate(-50%, -50%);
+ transform: translate(-50%, -50%);
+ line-height: 1
+ }
+
+ .oo-player-container .oo-discovery-count-down-wrapper-style a.oo-discovery-count-down-icon-style span {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ -webkit-transform: translate(-50%, -50%);
+ transform: translate(-50%, -50%);
+ line-height: 40px;
+ z-index: 10005;
+ color: #fff;
+ font-size: 25px;
+ cursor: pointer
+ }
+
+ .oo-player-container .oo-scale-size {
+ max-height: 250px
+ }
+
+ .oo-player-container .oo-scale-size .oo-discovery-image-wrapper-style {
+ width: 105px;
+ margin: 0 29.4px 21px 0
+ }
+
+ .oo-player-container .oo-scale-size .oo-discovery-image-wrapper-style:nth-of-type(even) {
+ margin-bottom: 0
+ }
+
+ .oo-player-container .oo-scale-size .oo-discovery-image-wrapper-style:last-child,
+ .oo-player-container .oo-scale-size .oo-discovery-image-wrapper-style:nth-last-child(2):nth-of-type(odd) {
+ margin-right: 0
+ }
+
+ .oo-player-container .oo-scale-size .oo-discovery-image-wrapper-style .oo-image-style {
+ height: 58.8px
+ }
+
+ .oo-player-container .oo-share-panel {
+ font-size: .875em
+ }
+
+ .oo-player-container .oo-share-panel .oo-tab-row {
+ line-height: 1
+ }
+
+ .oo-player-container .oo-share-panel .oo-tab-row .oo-tab,
+ .oo-player-container .oo-share-panel .oo-tab-row .oo-share-tab,
+ .oo-player-container .oo-share-panel .oo-tab-row .oo-embed-tab {
+ display: inline-block;
+ color: #afafaf;
+ font-weight: bold;
+ padding-right: 25px
+ }
+
+ .oo-player-container .oo-share-panel .oo-tab-row .oo-tab:last-child,
+ .oo-player-container .oo-share-panel .oo-tab-row .oo-share-tab:last-child,
+ .oo-player-container .oo-share-panel .oo-tab-row .oo-embed-tab:last-child {
+ padding-left: 0
+ }
+
+ .oo-player-container .oo-share-panel .oo-tab-row .oo-active {
+ color: #fff
+ }
+
+ .oo-player-container .oo-share-tab-panel {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ -webkit-transform: translate(-50%, -50%);
+ transform: translate(-50%, -50%);
+ color: #fff;
+ text-align: center;
+ width: 90%;
+ margin-top: 10px
+ }
+
+ .oo-player-container .oo-share-tab-panel a {
+ color: inherit
+ }
+
+ .oo-player-container .oo-share-tab-panel a:hover {
+ color: #fff
+ }
+
+ .oo-player-container .oo-share-tab-panel .oo-social-action-text {
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-size: 1.25em;
+ font-weight: bold;
+ margin-bottom: 15px
+ }
+
+ .oo-player-container .oo-share-tab-panel .oo-social-icon,
+ .oo-player-container .oo-share-tab-panel .oo-facebook,
+ .oo-player-container .oo-share-tab-panel .oo-twitter,
+ .oo-player-container .oo-share-tab-panel .oo-google-plus,
+ .oo-player-container .oo-share-tab-panel .oo-email-share {
+ display: inline-block;
+ height: 38px;
+ width: 38px;
+ margin-bottom: 12.25px;
+ margin-right: 20px;
+ background-size: contain;
+ background-repeat: no-repeat;
+ background-position: center;
+ border-radius: 6px
+ }
+
+ .oo-player-container .oo-share-tab-panel .oo-facebook {
+ background-image: url("//player.ooyala.com/static/v4/stable/4.6.9/skin-plugin/assets/images/social-facebook.svg")
+ }
+
+ .oo-player-container .oo-share-tab-panel .oo-twitter {
+ background-image: url("//player.ooyala.com/static/v4/stable/4.6.9/skin-plugin/assets/images/social-twitter.svg")
+ }
+
+ .oo-player-container .oo-share-tab-panel .oo-google-plus {
+ background-image: url("//player.ooyala.com/static/v4/stable/4.6.9/skin-plugin/assets/images/social-google.svg")
+ }
+
+ .oo-player-container .oo-share-tab-panel .oo-email-share {
+ background-image: url("//player.ooyala.com/static/v4/stable/4.6.9/skin-plugin/assets/images/social-email.svg");
+ background-size: cover
+ }
+
+ .oo-player-container .scrollarea-content {
+ margin: 0;
+ padding: 0;
+ overflow: hidden;
+ position: relative
+ }
+
+ .oo-player-container .scrollarea {
+ position: relative;
+ overflow: hidden
+ }
+
+ .oo-player-container .scrollarea .scrollbar-container {
+ position: absolute;
+ background: none;
+ opacity: .4;
+ z-index: 9999;
+ transition: all .4s
+ }
+
+ .oo-player-container .scrollarea .scrollbar-container.horizontal {
+ width: 100%;
+ height: 10px;
+ left: 0;
+ bottom: 0
+ }
+
+ .oo-player-container .scrollarea .scrollbar-container.horizontal .scrollbar {
+ width: 20px;
+ height: 2px;
+ background: #545456;
+ margin-top: 4px;
+ border-radius: 10px
+ }
+
+ .oo-player-container .scrollarea .scrollbar-container.vertical {
+ width: 10px;
+ height: 100%;
+ right: 0;
+ top: 0
+ }
+
+ .oo-player-container .scrollarea .scrollbar-container.vertical .scrollbar {
+ width: 2px;
+ height: 20px;
+ background: #545456;
+ margin-left: 4px;
+ border-radius: 10px
+ }
+
+ .oo-player-container .scrollarea .scrollbar-container:hover {
+ opacity: 1 !important
+ }
+
+ .oo-player-container .scrollarea .scrollbar-container.active {
+ opacity: 1 !important
+ }
+
+ .oo-player-container .scrollarea:hover .scrollbar-container {
+ opacity: 0.8
+ }
+
+ .oo-player-container video::cue {
+ font: 16px/8px Arial, Helvetica, sans-serif;
+ color: #fff !important;
+ background: #000;
+ white-space: normal;
+ text-shadow: 1px 1px 2px black
+ }
+
+ .oo-player-container video::-webkit-media-text-track-container {
+ margin-bottom: 60px !important
+ }
+
+ .oo-player-container video::-webkit-media-text-track-container {
+ margin-bottom: 60px !important;
+ font-size: 16px !important;
+ background-color: transparent !important
+ }
+
+ .oo-player-container video::-webkit-media-text-track-background {
+ background-color: transparent !important;
+ padding: 0 !important;
+ margin: 0 !important
+ }
+
+ .oo-player-container video::-webkit-media-text-track-display {
+ position: relative;
+ top: 76% !important;
+ bottom: 20px;
+ background-color: transparent !important;
+ padding: 1px !important;
+ margin: 0 !important;
+ font: 16px Arial, Helvetica, sans-serif;
+ color: #fff !important;
+ text-shadow: 1px 1px 2px black !important
+ }
+
+ .oo-player-container button.oo-close-button {
+ position: absolute;
+ color: #fff;
+ opacity: 0.6;
+ line-height: 1;
+ padding: 0;
+ border: 0;
+ outline: none;
+ background: transparent;
+ -webkit-appearance: none;
+ position: relative;
+ float: right
+ }
+
+ .oo-player-container button.oo-close-button:hover {
+ opacity: 1.0;
+ filter: drop-shadow(0px 0px 3px rgba(255, 255, 255, 0.8));
+ -webkit-filter: drop-shadow(0px 0px 3px rgba(255, 255, 255, 0.8));
+ -ms-filter: progid:DXImageTransform.Microsoft.Dropshadow(OffX=0, OffY=0, Color='#fff')
+ }
+
+ .oo-player-container button.oo-close-button:before {
+ position: absolute;
+ content: '';
+ right: -18px;
+ left: -18px;
+ top: -18px;
+ bottom: -18px
+ }
+
+ .oo-player-container button.oo-close-btn {
+ top: 24.5px;
+ right: 24.5px;
+ position: absolute;
+ color: #fff;
+ opacity: 0.6;
+ line-height: 1;
+ padding: 0;
+ border: 0;
+ outline: none;
+ background: transparent;
+ -webkit-appearance: none
+ }
+
+ .oo-player-container button.oo-close-btn:hover {
+ opacity: 1.0;
+ filter: drop-shadow(0px 0px 3px rgba(255, 255, 255, 0.8));
+ -webkit-filter: drop-shadow(0px 0px 3px rgba(255, 255, 255, 0.8));
+ -ms-filter: progid:DXImageTransform.Microsoft.Dropshadow(OffX=0, OffY=0, Color='#fff')
+ }
+
+ .oo-player-container button.oo-close-btn:before {
+ position: absolute;
+ content: '';
+ right: -18px;
+ left: -18px;
+ top: -18px;
+ bottom: -18px
+ }
+
+ .oo-player-container button.oo-up-next-close-btn {
+ top: 10px;
+ right: 10px;
+ position: absolute;
+ color: #fff;
+ opacity: 0.6;
+ line-height: 1;
+ padding: 0;
+ border: 0;
+ outline: none;
+ background: transparent;
+ -webkit-appearance: none
+ }
+
+ .oo-player-container button.oo-up-next-close-btn:hover {
+ opacity: 1.0;
+ filter: drop-shadow(0px 0px 3px rgba(255, 255, 255, 0.8));
+ -webkit-filter: drop-shadow(0px 0px 3px rgba(255, 255, 255, 0.8));
+ -ms-filter: progid:DXImageTransform.Microsoft.Dropshadow(OffX=0, OffY=0, Color='#fff')
+ }
+
+ .oo-player-container button.oo-up-next-close-btn:before {
+ position: absolute;
+ content: '';
+ right: -10px;
+ left: -10px;
+ top: -10px;
+ bottom: -10px
+ }
+
+ .oo-player-container .oo-form-control {
+ display: block;
+ width: 100%;
+ padding: .375em .75em;
+ font-size: 1em;
+ line-height: 1.5;
+ color: #55595c;
+ background-color: #fff;
+ background-image: none;
+ border: 1px solid #ccc;
+ border-radius: .25em;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s
+ }
+
+ .oo-player-container .oo-form-control::-webkit-input-placeholder {
+ color: #999;
+ opacity: 1
+ }
+
+ .oo-player-container .oo-form-control:-ms-input-placeholder {
+ color: #999;
+ opacity: 1
+ }
+
+ .oo-player-container .oo-form-control::-moz-placeholder {
+ color: #999;
+ opacity: 1
+ }
+
+ .oo-player-container .oo-form-control::placeholder {
+ color: #999;
+ opacity: 1
+ }
+
+ .oo-player-container .oo-form-control:disabled,
+ .oo-player-container .oo-form-control[readonly] {
+ background-color: #afafaf;
+ opacity: 1
+ }
+
+ .oo-player-container .oo-form-control:disabled {
+ cursor: not-allowed
+ }
+
+ .oo-player-container .oo-form-control-label {
+ padding: .375em .75em;
+ margin-bottom: 0
+ }
+
+ .oo-player-container .oo-form-inline .oo-form-group {
+ display: inline-block;
+ margin-bottom: 0;
+ vertical-align: middle
+ }
+
+ .oo-player-container .oo-form-inline .oo-form-control {
+ display: inline-block;
+ width: auto;
+ vertical-align: middle
+ }
+
+ .oo-player-container .oo-form-inline .oo-form-control-label {
+ margin-bottom: 0;
+ vertical-align: middle
+ }
+
+ .oo-player-container .oo-form-inline label.oo-checkbox-inline {
+ padding-left: 10px;
+ padding-right: 10px
+ }
+
+ .oo-player-container .oo-form-inline label.oo-checkbox-inline&gt;
+ span {
+ margin-left: 6px
+ }
+
+ .oo-player-container .oo-form-inline .radio,
+ .oo-player-container .oo-form-inline .checkbox {
+ display: inline-block;
+ margin-top: 0;
+ margin-bottom: 0;
+ vertical-align: middle
+ }
+
+ .oo-player-container .oo-form-inline .radio label,
+ .oo-player-container .oo-form-inline .checkbox label {
+ padding-left: 0
+ }
+
+ .oo-player-container .oo-form-inline .radio input[type="radio"],
+ .oo-player-container .oo-form-inline input[type="checkbox"] {
+ position: relative;
+ margin-left: 0
+ }
+
+ .oo-player-container .oo-form-horizontal label {
+ float: left;
+ padding-top: 7px;
+ margin-bottom: 0;
+ text-align: right
+ }
+
+ .oo-player-container .oo-form-horizontal .oo-form-group {
+ margin-bottom: 15px
+ }
+
+ .oo-player-container .oo-form-horizontal .oo-form-group div.oo-col-sm-10 {
+ float: left;
+ position: relative;
+ min-height: 1px;
+ padding-right: 15px;
+ padding-left: 15px
+ }
+
+ .oo-player-container .oo-has-error .oo-form-control {
+ border-color: #a94442;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075)
+ }
+
+ .oo-player-container .oo-has-error .oo-form-control-label {
+ color: #a94442
+ }
+
+ .oo-player-container .oo-scrubber-bar-container {
+ padding: 0;
+ margin: 0;
+ position: relative;
+ width: 100%;
+ height: 34px;
+ z-index: 12600;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ -o-user-select: none;
+ user-select: none
+ }
+
+ .oo-player-container .oo-scrubber-bar-container .oo-scrubber-bar-padding {
+ height: 100%;
+ left: 0;
+ right: 0;
+ position: absolute
+ }
+
+ .oo-player-container .oo-scrubber-bar-container .oo-scrubber-bar-padding .oo-scrubber-bar {
+ background-color: #afafaf;
+ height: 6px;
+ width: 100%;
+ margin: 0;
+ position: absolute;
+ cursor: pointer;
+ padding: 0;
+ bottom: 50%;
+ border-radius: 3px;
+ -webkit-transform: translateY(50%);
+ transform: translateY(50%);
+ transition: all 0.15s
+ }
+
+ .oo-player-container .oo-scrubber-bar-container .oo-scrubber-bar-padding .oo-scrubber-bar-hover {
+ height: 6px;
+ border-radius: 6px
+ }
+
+ .oo-player-container .oo-scrubber-bar-container .oo-scrubber-bar-padding .oo-hovered-indicator {
+ background-color: #448aff;
+ opacity: 0.6;
+ height: 100%;
+ position: absolute;
+ border-radius: 3px
+ }
+
+ .oo-player-container .oo-scrubber-bar-container .oo-scrubber-bar-padding .oo-buffered-indicator {
+ background-color: #818a91;
+ height: 100%;
+ position: absolute;
+ border-radius: 3px;
+ transition: all 0.1s
+ }
+
+ .oo-player-container .oo-scrubber-bar-container .oo-scrubber-bar-padding .oo-played-indicator {
+ background: #448aff;
+ height: 100%;
+ position: absolute;
+ border-radius: 3px
+ }
+
+ .oo-player-container .oo-scrubber-bar-container .oo-scrubber-bar-padding .oo-played-ad-indicator {
+ background: #FF3F80
+ }
+
+ .oo-player-container .oo-scrubber-bar-container .oo-scrubber-bar-padding .oo-playhead-padding {
+ width: 25px;
+ height: 25px;
+ position: absolute;
+ z-index: 1;
+ top: 100%;
+ transition: opacity 0.25s;
+ -webkit-transform: translateY(-50%) translateX(-50%);
+ transform: translateY(-50%) translateX(-50%)
+ }
+
+ .oo-player-container .oo-scrubber-bar-container .oo-scrubber-bar-padding .oo-playhead-padding .oo-playhead {
+ background: #448aff;
+ width: 13px;
+ height: 13px;
+ border: 2px solid #fff;
+ border-radius: 10px;
+ position: absolute;
+ top: 40%;
+ cursor: pointer;
+ left: 50%;
+ -webkit-transform: translateY(-50%) translateX(-50%);
+ transform: translateY(-50%) translateX(-50%);
+ transition: all 0.1s
+ }
+
+ .oo-player-container .oo-scrubber-bar-container .oo-scrubber-bar-padding .oo-playhead-padding .oo-playhead-scrubbing {
+ width: 20px;
+ height: 20px;
+ border: 3px solid #448aff;
+ background: #fff;
+ box-shadow: rgba(0, 0, 0, 0.5) 0 6px 18px
+ }
+
+ .oo-player-container .oo-scrubber-bar-container .oo-scrubber-bar-padding .oo-playhead-padding .oo-playhead-hovering {
+ top: 40%
+ }
+
+ .oo-player-container .oo-scrubber-bar-container .oo-scrubber-bar-padding .oo-playhead-padding .oo-ad-playhead {
+ visibility: hidden
+ }
+
+ .oo-player-container .oo-control-bar {
+ background: rgba(0, 0, 0, 0.3);
+ -webkit-background: linear-gradient(to bottom, transparent 23%, rgba(0, 0, 0, 0.6) 90%, rgba(0, 0, 0, 0.69) 100%);
+ -moz-background: linear-gradient(to bottom, transparent 23%, rgba(0, 0, 0, 0.6) 90%, rgba(0, 0, 0, 0.69) 100%);
+ -ms-background: linear-gradient(to bottom, transparent 23%, rgba(0, 0, 0, 0.6) 90%, rgba(0, 0, 0, 0.69) 100%);
+ -o-background: linear-gradient(to bottom, transparent 23%, rgba(0, 0, 0, 0.6) 90%, rgba(0, 0, 0, 0.69) 100%);
+ background: linear-gradient(to bottom, transparent 23%, rgba(0, 0, 0, 0.6) 90%, rgba(0, 0, 0, 0.69) 100%);
+ transition: transition, opacity 0.2s ease-in-out, height 0.3s ease-in-out;
+ width: 100%;
+ height: 90px;
+ position: relative;
+ margin: 0;
+ padding: 0 15px;
+ list-style: none;
+ font-size: 18px;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ z-index: 12500
+ }
+
+ .oo-player-container .oo-control-bar .oo-control-bar-items-wrapper {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ -webkit-flex-flow: row nowrap;
+ -ms-flex-flow: row nowrap;
+ flex-flow: row nowrap;
+ -webkit-align-items: center;
+ -ms-flex-align: center;
+ align-items: center;
+ -webkit-justify-content: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ white-space: nowrap;
+ margin-top: 10px
+ }
+
+ .oo-player-container .oo-control-bar .oo-control-bar-items-wrapper&gt;
+ * {
+ line-height: 1 !important
+ }
+
+ .oo-player-container .oo-control-bar .oo-control-bar-items-wrapper .oo-popover-button-container {
+ position: relative;
+ height: 100%;
+ border: 0;
+ margin: 0;
+ padding: 0
+ }
+
+ .oo-player-container .oo-control-bar .oo-control-bar-items-wrapper .oo-control-bar-item {
+ height: 100%;
+ font-weight: bold;
+ font-size: 23px;
+ text-align: center;
+ padding: 0 12.5px;
+ cursor: pointer;
+ opacity: 1
+ }
+
+ .oo-player-container .oo-control-bar .oo-control-bar-items-wrapper&gt;
+ .oo-control-bar-item:first-child {
+ padding-left: 0 !important
+ }
+
+ .oo-player-container .oo-control-bar .oo-control-bar-items-wrapper&gt;
+ .oo-control-bar-item:last-child {
+ padding-right: 0 !important
+ }
+
+ .oo-player-container .oo-control-bar .oo-control-bar-items-wrapper a.oo-control-bar-item {
+ background-color: transparent;
+ border: 0;
+ outline: none
+ }
+
+ .oo-player-container .oo-control-bar .oo-control-bar-items-wrapper .oo-control-bar-item.oo-selected&gt;
+ span {
+ color: #448aff !important;
+ opacity: 1 !important
+ }
+
+ .oo-player-container .oo-control-bar .oo-control-bar-items-wrapper .oo-control-bar-item.oo-logo {
+ cursor: auto
+ }
+
+ .oo-player-container .oo-control-bar .oo-control-bar-items-wrapper .oo-control-bar-duration {
+ height: 100%;
+ color: #fff;
+ opacity: 1;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-size: 14px;
+ padding-left: 7.5px;
+ padding-right: 7.5px;
+ text-align: left;
+ position: relative;
+ top: -2px
+ }
+
+ .oo-player-container .oo-control-bar .oo-control-bar-items-wrapper .oo-control-bar-duration .oo-total-time {
+ color: #fff
+ }
+
+ .oo-player-container .oo-control-bar .oo-control-bar-items-wrapper .oo-control-bar-duration .oo-total-time:before {
+ content: " - ";
+ color: #fff
+ }
+
+ .oo-player-container .oo-control-bar .oo-control-bar-items-wrapper .oo-control-bar-flex-space {
+ -webkit-flex: 1;
+ -ms-flex: 1;
+ flex: 1
+ }
+
+ .oo-player-container .oo-control-bar .oo-control-bar-items-wrapper .oo-live-indicator {
+ top: -5px;
+ position: relative
+ }
+
+ .oo-player-container .oo-control-bar .oo-control-bar-items-wrapper .oo-live-circle {
+ display: inline-block;
+ width: 8px;
+ height: 8px;
+ border-radius: 50%;
+ background-color: #E83F3F;
+ margin-right: 4px;
+ vertical-align: middle
+ }
+
+ .oo-player-container .oo-control-bar .oo-control-bar-items-wrapper .oo-live-text {
+ font-size: 14px;
+ color: #fff;
+ vertical-align: middle
+ }
+
+ .oo-player-container .oo-control-bar .oo-control-bar-items-wrapper .oo-logo img {
+ position: relative;
+ max-height: 24px;
+ vertical-align: baseline;
+ opacity: 0.9
+ }
+
+ .oo-player-container .oo-control-bar .oo-control-bar-items-wrapper .oo-live-nonclickable {
+ cursor: default
+ }
+
+ .oo-player-container a.oo-volume-bar {
+ border: 0;
+ outline: none
+ }
+
+ .oo-player-container .oo-volume-bar {
+ margin-bottom: 4px;
+ display: inline-block;
+ background-clip: content-box;
+ position: relative;
+ width: 9px;
+ height: 8px;
+ padding-left: 7px;
+ background-color: rgba(255, 255, 255, 0.6);
+ transition: all 0.18s ease-in-out
+ }
+
+ .oo-player-container .oo-volume-bar:hover {
+ height: 17px
+ }
+
+ .oo-player-container .oo-on {
+ background-color: #448aff;
+ height: 17px;
+ padding-bottom: 0px;
+ margin-bottom: 4px
+ }
+
+ .oo-player-container .oo-volume:hover .oo-volume-bar {
+ background-color: rgba(255, 255, 255, 0.7)
+ }
+
+ .oo-player-container .oo-volume:hover .oo-volume-bar.oo-on {
+ background-color: #448aff
+ }
+
+ .oo-player-container .oo-volume-slider {
+ display: inline-block;
+ position: relative;
+ margin-left: 6px;
+ height: 20px;
+ width: 200px
+ }
+
+ @media all and (-ms-high-contrast: none) {
+ .oo-player-container *::-ms-backdrop,
+ .oo-player-container .oo-volume-slider {
+ height: auto
+ }
+ }
+
+ .oo-player-container .oo-interactive-container .oo-control-bar.oo-control-bar-hidden {
+ height: 0 !important;
+ opacity: 0
+ }
+
+ .oo-player-container .oo-up-next-panel {
+ position: relative;
+ width: 100%;
+ height: 80px;
+ right: 0;
+ background-color: rgba(22, 22, 22, 0.9);
+ transition: bottom 0.5s
+ }
+
+ .oo-player-container .oo-up-next-panel a.oo-up-next-content {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 140px;
+ height: 100%;
+ cursor: pointer;
+ background-size: cover;
+ background-repeat: no-repeat;
+ background-position: center
+ }
+
+ .oo-player-container .oo-up-next-panel a.oo-up-next-content img.oo-content-image {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ -webkit-transform: translate(-50%, -50%);
+ transform: translate(-50%, -50%);
+ max-width: 100%;
+ max-height: 100%;
+ width: auto;
+ height: auto
+ }
+
+ .oo-player-container .oo-up-next-panel a.oo-up-next-content span.oo-icon {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ -webkit-transform: translate(-50%, -50%);
+ transform: translate(-50%, -50%);
+ font-size: 25px;
+ opacity: 1;
+ color: white;
+ transition: opacity .25s ease-in-out
+ }
+
+ .oo-player-container .oo-content-metadata {
+ position: absolute;
+ top: 0;
+ left: 140px;
+ width: 78%;
+ height: 100%
+ }
+
+ .oo-player-container .oo-content-metadata .oo-up-next-title {
+ position: absolute;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ top: 3px;
+ left: 15px;
+ width: 100%;
+ color: #fff
+ }
+
+ .oo-player-container .oo-content-metadata .oo-up-next-title .oo-up-next-count-down {
+ width: 36px;
+ height: 36px;
+ float: left
+ }
+
+ .oo-player-container .oo-content-metadata .oo-up-next-title .oo-up-next-title-text {
+ font-size: 18pt;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-weight: bold;
+ max-width: 70%;
+ color: inherit;
+ resize: none;
+ display: inline-block;
+ float: left
+ }
+
+ .oo-player-container .oo-content-metadata .oo-content-description {
+ position: absolute;
+ bottom: 5px;
+ left: 15px;
+ width: 70%;
+ margin-top: 10px;
+ color: rgba(255, 255, 255, 0.6);
+ font-size: 12pt;
+ font-family: 'Open Sans', sans-serif;
+ font-weight: normal
+ }
+
+ .oo-player-container .oo-up-next-count-down {
+ margin-right: 10px
+ }
+
+ .oo-player-container .oo-spinner-wrapper .oo-spinner {
+ width: 70px;
+ height: 70px;
+ opacity: 1;
+ color: white;
+ transition: opacity .25s ease-in-out;
+ cursor: pointer;
+ -webkit-animation: spin 0.6s linear infinite;
+ animation: spin 0.6s linear infinite
+ }
+
+ @-webkit-keyframes spin {
+ 100% {
+ -webkit-transform: rotate(360deg)
+ }
+ }
+
+ @keyframes spin {
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg)
+ }
+ }
+
+ .oo-player-container .oo-slider {
+ width: 10px
+ }
+
+ .oo-player-container .oo-slider[type=range] {
+ -webkit-appearance: none;
+ border-top: solid 20px transparent;
+ border-bottom: solid 20px transparent;
+ background-clip: content-box;
+ border-right-color: red;
+ border-left-color: green;
+ border-left-style: hidden;
+ width: 10px
+ }
+
+ .oo-player-container .oo-slider[type=range]::-webkit-slider-runnable-track {
+ height: 1px;
+ border: none
+ }
+
+ .oo-player-container .oo-slider[type=range]::-webkit-slider-thumb {
+ -webkit-appearance: none;
+ border: none;
+ height: 3px;
+ width: 3px;
+ border-radius: 50%;
+ background: #ff0;
+ margin-top: -1px
+ }
+
+ @supports (-ms-accelerator: true) {
+ .oo-player-container .oo-slider[type=range]::-webkit-slider-thumb {
+ margin-top: 0
+ }
+ }
+
+ .oo-player-container .oo-slider[type=range]:focus {
+ outline: none
+ }
+
+ .oo-player-container .oo-slider[type=range]::-moz-range-track {
+ width: 10px;
+ height: 1px;
+ background: red
+ }
+
+ .oo-player-container .oo-slider[type=range]::-moz-range-thumb {
+ border: none;
+ height: 3px;
+ width: 3px;
+ border-radius: 50%;
+ background: #ff0
+ }
+
+ .oo-player-container .oo-slider[type=range]:focus::-moz-range-track {
+ background: red
+ }
+
+ .oo-player-container .oo-slider[type=range]::-moz-range-progress {
+ background: green
+ }
+
+ .oo-player-container .oo-slider-volume[type=range]::-moz-range-progress {
+ background: #fff
+ }
+
+ .oo-player-container .oo-slider[type=range]::-ms-track {
+ width: 10px;
+ height: 1px;
+ background: transparent;
+ border-color: transparent;
+ border-width: 1.5px 0;
+ color: transparent
+ }
+
+ .oo-player-container .oo-slider[type=range]::-ms-fill-lower {
+ background: green
+ }
+
+ .oo-player-container .oo-slider[type=range]::-ms-fill-upper {
+ background: red
+ }
+
+ .oo-player-container .oo-slider[type=range]::-ms-thumb {
+ border: none;
+ height: 3px;
+ width: 3px;
+ border-radius: 50%;
+ background: #ff0
+ }
+
+ .oo-player-container .oo-slider[type=range]:focus::-ms-fill-lower {
+ background: green
+ }
+
+ .oo-player-container .oo-slider[type=range]:focus::-ms-fill-upper {
+ background: red
+ }
+
+ .oo-player-container .oo-slider[type=range]::-ms-tooltip {
+ display: none
+ }
+
+ .oo-player-container .oo-slider-volume {
+ width: 200px
+ }
+
+ .oo-player-container .oo-slider-volume[type=range] {
+ border-right-color: #999;
+ border-left-color: #fff;
+ width: 200px
+ }
+
+ .oo-player-container .oo-slider-volume[type=range]::-webkit-slider-runnable-track {
+ height: 3px
+ }
+
+ .oo-player-container .oo-slider-volume[type=range]::-webkit-slider-thumb {
+ height: 15px;
+ width: 15px;
+ background: #fff;
+ margin-top: -6px
+ }
+
+ @supports (-ms-accelerator: true) {
+ .oo-player-container .oo-slider-volume[type=range]::-webkit-slider-thumb {
+ margin-top: 0
+ }
+ }
+
+ .oo-player-container .oo-slider-volume[type=range]::-moz-range-track {
+ width: 200px;
+ height: 3px;
+ background: #999
+ }
+
+ .oo-player-container .oo-slider-volume[type=range]::-moz-range-thumb {
+ height: 15px;
+ width: 15px;
+ background: #fff
+ }
+
+ .oo-player-container .oo-slider-volume[type=range]:focus::-moz-range-track {
+ background: #999
+ }
+
+ .oo-player-container .oo-slider-volume[type=range]::-ms-track {
+ width: 200px;
+ height: 3px;
+ border-width: 7.5px 0
+ }
+
+ .oo-player-container .oo-slider-volume[type=range]::-ms-fill-lower {
+ background: #fff
+ }
+
+ .oo-player-container .oo-slider-volume[type=range]::-ms-fill-upper {
+ background: #999
+ }
+
+ .oo-player-container .oo-slider-volume[type=range]::-ms-thumb {
+ height: 15px;
+ width: 15px;
+ background: #fff
+ }
+
+ .oo-player-container .oo-slider-volume[type=range]:focus::-ms-fill-lower {
+ background: #fff
+ }
+
+ .oo-player-container .oo-slider-volume[type=range]:focus::-ms-fill-upper {
+ background: #999
+ }
+
+ .oo-player-container .oo-ad-overlay {
+ display: table;
+ position: relative;
+ transition: bottom 0.5s, height 0.25s;
+ margin: 0;
+ padding: 0;
+ overflow: hidden
+ }
+
+ .oo-player-container .oo-ad-overlay .oo-ad-overlay-close-button {
+ display: inline-block;
+ position: absolute;
+ cursor: pointer;
+ height: 28px;
+ width: 28px;
+ top: 0;
+ right: 0;
+ background-color: rgba(0, 0, 0, 0.3);
+ border: 0;
+ outline: none
+ }
+
+ .oo-player-container .oo-ad-overlay .oo-ad-overlay-close-button.oo-hidden {
+ display: none
+ }
+
+ .oo-player-container .oo-ad-overlay .oo-ad-overlay-close-button-icon {
+ position: absolute;
+ font-size: 8px;
+ top: 50%;
+ left: 50%;
+ -webkit-transform: translate(-50%, -50%);
+ transform: translate(-50%, -50%);
+ color: #ffffff;
+ opacity: 0.6
+ }
+
+ .oo-player-container .oo-ad-overlay.oo-hidden {
+ display: none
+ }
+
+ .oo-player-container .oo-ad-screen-panel {
+ position: absolute;
+ top: 0;
+ bottom: 64px;
+ width: 100%
+ }
+
+ .oo-player-container .oo-ad-screen-panel .oo-ad-top-bar {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ position: absolute;
+ top: 0;
+ height: 25px;
+ width: 100%;
+ background-color: rgba(0, 0, 0, 0.5);
+ margin: 0;
+ font-size: 1em;
+ list-style: none;
+ -webkit-flex-flow: row nowrap;
+ -ms-flex-flow: row nowrap;
+ flex-flow: row nowrap;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ -o-user-select: none;
+ user-select: none;
+ transition: bottom 0.5s, height 0.5s;
+ z-index: 12600
+ }
+
+ .oo-player-container .oo-ad-screen-panel .oo-ad-top-bar .oo-ad-title,
+ .oo-player-container .oo-ad-screen-panel .oo-ad-top-bar .oo-ad-playback-info {
+ font-size: 0.9em;
+ color: #fff;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ margin: auto;
+ text-align: center;
+ padding-left: 7.5px;
+ padding-right: 7.5px;
+ white-space: pre
+ }
+
+ .oo-player-container .oo-ad-screen-panel .oo-ad-top-bar .oo-flexible-space {
+ -webkit-flex: 1;
+ -moz-flex: 1;
+ -ms-flex: 1;
+ -o-flex: 1;
+ flex: 1
+ }
+
+ .oo-player-container .oo-ad-screen-panel .oo-ad-top-bar .oo-learn-more {
+ font-size: 0.9em;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ color: #fff;
+ margin: auto 15px auto auto;
+ text-align: center;
+ cursor: pointer
+ }
+
+ .oo-player-container .oo-ad-screen-panel .oo-ad-top-bar .oo-learn-more .oo-button-icon {
+ font-size: 0.7em;
+ margin-right: 5px
+ }
+
+ .oo-player-container .oo-ad-screen-panel .oo-ad-top-bar .oo-learn-more.oo-hidden {
+ visibility: hidden
+ }
+
+ .oo-player-container .oo-ad-screen-panel .oo-ad-top-bar .oo-skip-button {
+ font-size: 0.9em;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ color: #fff;
+ visibility: hidden;
+ width: 0;
+ margin: auto auto auto 0;
+ opacity: 0.3;
+ cursor: default
+ }
+
+ .oo-player-container .oo-ad-screen-panel .oo-ad-top-bar .oo-skip-button .oo-button-icon {
+ font-size: 0.7em;
+ margin-right: 5px
+ }
+
+ .oo-player-container .oo-ad-screen-panel .oo-ad-top-bar .oo-skip-button.oo-visible {
+ visibility: visible;
+ width: initial;
+ margin: auto 15px;
+ text-align: center;
+ cursor: pointer
+ }
+
+ .oo-player-container .oo-ad-screen-panel .oo-ad-top-bar .oo-skip-button.oo-visible .oo-skip-icon {
+ font-size: 0.7em;
+ margin-right: 5px
+ }
+
+ .oo-player-container .oo-ad-screen-panel .oo-ad-top-bar .oo-skip-button.oo-enabled {
+ opacity: 1;
+ cursor: pointer
+ }
+
+ .oo-player-container .oo-player-skin-plugins {
+ z-index: 12000;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 90px;
+ position: absolute;
+ overflow: hidden;
+ display: none
+ }
+
+ .oo-player-container .oo-player-skin-plugins.oo-showing:not(:empty) {
+ display: block
+ }
+
+ .oo-player-container .oo-player-skin-plugins.oo-overlay-showing:not(:empty) {
+ display: block
+ }
+
+ .oo-player-container .oo-player-skin-plugins.oo-overlay-blur:not(:empty) {
+ -webkit-filter: blur(3px);
+ -moz-filter: blur(3px);
+ filter: blur(3px);
+ z-index: -10000;
+ position: absolute
+ }
+
+ .oo-player-container .oo-player-skin-plugins-click-layer {
+ z-index: 12005;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 90px;
+ position: absolute;
+ display: none
+ }
+
+ .oo-player-container .oo-player-skin-plugins.oo-full:not(.oo-overlay-showing),
+ .oo-player-container .oo-player-skin-plugins-click-layer.oo-full {
+ bottom: 0
+ }
+
+ .oo-player-container .oo-player-skin-plugins-click-layer.oo-showing {
+ display: block
+ }
+
+ .oo-player-container .oo-text-track-container {
+ position: absolute;
+ left: 50%;
+ -webkit-transform: translateX(-50%);
+ transform: translateX(-50%);
+ position: relative;
+ display: inline-block;
+ max-width: 80%;
+ margin: 0 auto 12px auto
+ }
+
+ .oo-player-container .oo-text-track-container .oo-text-track-window {
+ padding: 10px;
+ border-radius: 8px
+ }
+
+ .oo-player-container .oo-text-track-container .oo-text-track-window .oo-text-track-background {
+ padding: 4px 16px;
+ border-radius: 8px
+ }
+
+ .oo-player-container .oo-text-track-container .oo-text-track-window .oo-text-track-background .oo-text-track {
+ text-align: center;
+ white-space: pre-wrap
+ }
+
+ .oo-player-container .oo-more-options-items {
+ position: absolute;
+ left: 50%;
+ -webkit-transform: translate(-50%, -50%);
+ transform: translate(-50%, -50%);
+ top: 100%;
+ opacity: 0;
+ list-style: none;
+ display: -ms-flexbox;
+ display: flex;
+ display: -webkit-flex;
+ -webkit-flex-flow: row nowrap;
+ -ms-flex-flow: row nowrap;
+ flex-flow: row nowrap;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ -o-user-select: none;
+ user-select: none;
+ font-size: 30px
+ }
+
+ .oo-player-container .oo-more-options-items a.oo-control-bar-item {
+ background-color: transparent;
+ border: 0;
+ outline: none
+ }
+
+ .oo-player-container .oo-more-options-items .oo-control-bar-item {
+ height: 100%;
+ font-weight: bold;
+ text-align: center;
+ padding-left: 13px;
+ padding-right: 13px;
+ margin: 0 auto;
+ opacity: 1;
+ cursor: pointer
+ }
+
+ .oo-player-container .oo-more-options-items.oo-animate-more-options {
+ top: 50%;
+ opacity: 1;
+ transition: all 0.7s ease
+ }
+
+ .oo-player-container .oo-quality-panel {
+ position: relative;
+ top: 46%;
+ left: 50%;
+ -webkit-transform: translate(-50%, -50%);
+ transform: translate(-50%, -50%);
+ height: 100px;
+ text-align: center
+ }
+
+ .oo-player-container .oo-quality-panel .scrollarea-content {
+ display: inline-block
+ }
+
+ .oo-player-container .oo-quality-panel .scrollbar-container.horizontal {
+ display: none
+ }
+
+ .oo-player-container .oo-quality-panel .oo-quality-screen-content ul {
+ display: inline-block;
+ padding: 0;
+ margin: 0 auto;
+ list-style: none;
+ white-space: nowrap;
+ position: relative;
+ height: 90px
+ }
+
+ .oo-player-container .oo-quality-panel .oo-quality-screen-content ul li {
+ float: none;
+ position: relative;
+ display: inline-block;
+ margin: 0 24px
+ }
+
+ .oo-player-container .oo-quality-panel .oo-quality-screen-content ul li:first-child {
+ margin-left: 0 !important
+ }
+
+ .oo-player-container .oo-quality-panel .oo-quality-screen-content ul li a.oo-quality-btn {
+ padding: 10px 8px;
+ background-color: transparent;
+ color: #fff;
+ font-size: 1.1em;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ line-height: 1em;
+ border-radius: 2px;
+ border: 1px solid #55595c;
+ outline: none;
+ opacity: 1;
+ transition: opacity 0.3s ease
+ }
+
+ .oo-player-container .oo-quality-panel .oo-quality-screen-content ul li a.oo-quality-btn:hover {
+ opacity: 0.6
+ }
+
+ .oo-player-container .oo-quality-panel .oo-quality-screen-content ul li a.oo-quality-btn.oo-selected {
+ color: #448aff;
+ border-color: #448aff;
+ font-weight: bold
+ }
+
+ .oo-player-container .oo-quality-panel .oo-quality-screen-content ul li a.oo-quality-auto-btn {
+ background-color: transparent;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ line-height: 1;
+ outline: none
+ }
+
+ .oo-player-container .oo-quality-panel .oo-quality-screen-content ul li a.oo-quality-auto-btn:hover .oo-quality-auto-icon,
+ .oo-player-container .oo-quality-panel .oo-quality-screen-content ul li a.oo-quality-auto-btn:hover .oo-quality-auto-label {
+ opacity: 0.6;
+ transition: opacity 0.3s ease
+ }
+
+ .oo-player-container .oo-quality-panel .oo-quality-screen-content ul li a.oo-quality-auto-btn.oo-selected .oo-quality-auto-icon,
+ .oo-player-container .oo-quality-panel .oo-quality-screen-content ul li a.oo-quality-auto-btn.oo-selected .oo-quality-auto-label {
+ color: #448aff;
+ font-weight: bold
+ }
+
+ .oo-player-container .oo-quality-panel .oo-quality-screen-content ul li a.oo-quality-auto-btn .oo-quality-auto-icon {
+ font-size: 2.1em;
+ font-weight: bold;
+ color: #55595c;
+ margin-bottom: 6px;
+ opacity: 1
+ }
+
+ .oo-player-container .oo-quality-panel .oo-quality-screen-content ul li a.oo-quality-auto-btn .oo-quality-auto-label {
+ color: #fff;
+ font-size: 0.9em;
+ text-transform: capitalize;
+ text-align: center;
+ opacity: 1
+ }
+
+ .oo-player-container .oo-quality-panel .oo-quality-screen-content ul li.oo-auto-li {
+ top: 20px
+ }
+
+ .oo-player-container .oo-popover .oo-quality-popover {
+ margin: 10px 0
+ }
+
+ .oo-player-container .oo-popover .oo-quality-screen-content {
+ max-height: 150px;
+ width: 80px;
+ text-align: center
+ }
+
+ .oo-player-container .oo-popover .oo-quality-screen-content ul {
+ padding: 0;
+ margin: 0;
+ list-style: none
+ }
+
+ .oo-player-container .oo-popover .oo-quality-screen-content ul li {
+ display: block;
+ margin: 0 0 6px 0;
+ padding: 0
+ }
+
+ .oo-player-container .oo-popover .oo-quality-screen-content ul li a.oo-quality-btn {
+ background-color: transparent;
+ color: #fff;
+ font-size: 0.6em;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ line-height: 1;
+ outline: none;
+ opacity: 1;
+ white-space: nowrap;
+ transition: opacity 0.3s ease
+ }
+
+ .oo-player-container .oo-popover .oo-quality-screen-content ul li a.oo-quality-btn:hover {
+ opacity: 0.6
+ }
+
+ .oo-player-container .oo-popover .oo-quality-screen-content ul li a.oo-quality-btn.oo-selected {
+ color: #448aff;
+ font-weight: bold;
+ font-size: 0.725em
+ }
+
+ .oo-player-container .oo-popover .oo-quality-screen-content ul li a.oo-quality-auto-btn {
+ background-color: transparent;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ line-height: 1;
+ outline: none;
+ white-space: nowrap
+ }
+
+ .oo-player-container .oo-popover .oo-quality-screen-content ul li a.oo-quality-auto-btn:hover .oo-quality-auto-icon,
+ .oo-player-container .oo-popover .oo-quality-screen-content ul li a.oo-quality-auto-btn:hover .oo-quality-auto-label {
+ transition: opacity 0.3s ease;
+ opacity: 0.6
+ }
+
+ .oo-player-container .oo-popover .oo-quality-screen-content ul li a.oo-quality-auto-btn.oo-selected .oo-quality-auto-icon,
+ .oo-player-container .oo-popover .oo-quality-screen-content ul li a.oo-quality-auto-btn.oo-selected .oo-quality-auto-label {
+ color: #448aff;
+ font-weight: bold
+ }
+
+ .oo-player-container .oo-popover .oo-quality-screen-content ul li a.oo-quality-auto-btn.oo-selected .oo-quality-auto-icon {
+ font-size: 1.125em
+ }
+
+ .oo-player-container .oo-popover .oo-quality-screen-content ul li a.oo-quality-auto-btn.oo-selected .oo-quality-auto-label {
+ font-size: 0.625em
+ }
+
+ .oo-player-container .oo-popover .oo-quality-screen-content ul li a.oo-quality-auto-btn .oo-quality-auto-icon {
+ font-size: 1em;
+ font-weight: bold;
+ color: #55595c;
+ margin-bottom: 2px;
+ opacity: 1
+ }
+
+ .oo-player-container .oo-popover .oo-quality-screen-content ul li a.oo-quality-auto-btn .oo-quality-auto-label {
+ color: #fff;
+ font-size: 0.5em;
+ text-transform: capitalize;
+ text-align: center;
+ opacity: 1
+ }
+
+ .oo-player-container .tabs-menu {
+ white-space: nowrap;
+ list-style: none;
+ padding: 0;
+ width: 815px
+ }
+
+ .oo-player-container .tabs-menu-item {
+ display: inline-block;
+ float: none;
+ margin-right: 40px
+ }
+
+ .oo-player-container .tabs-menu-item a {
+ border-bottom: 2px solid transparent;
+ cursor: pointer;
+ display: block;
+ color: #fff;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-size: 18px;
+ transition: .3s
+ }
+
+ .oo-player-container .tabs-menu-item.is-active a {
+ border-bottom: 2px solid #448aff
+ }
+
+ .oo-player-container .tabs-menu-item:not(.is-active) a:hover {
+ color: #448aff;
+ opacity: 0.7
+ }
+
+ .oo-player-container .tab-panel {
+ height: 100%;
+ padding: 10px 0
+ }
+
+ .oo-player-container .tabs-navigation {
+ width: 100%;
+ margin: 0 auto;
+ overflow-x: scroll;
+ padding-bottom: 1000%
+ }
+
+ .oo-player-container .tabs-navigation .scrollarea-content {
+ display: inline-block
+ }
+
+ .oo-player-container .tabs-navigation .scrollbar-container.horizontal {
+ display: none
+ }
+
+ .oo-player-container .tabs-navigation .oo-scrollarea-tabs ul {
+ display: inline-block;
+ padding: 0;
+ margin: 0 auto;
+ list-style: none;
+ white-space: nowrap;
+ position: relative
+ }
+
+ .oo-player-container .tabs-navigation .oo-scrollarea-tabs ul li {
+ float: none;
+ position: relative;
+ display: inline-block;
+ margin: 0 24px
+ }
+
+ .oo-player-container .tabs-navigation .oo-scrollarea-tabs ul li:first-child {
+ margin-left: 0 !important
+ }
+
+ .oo-player-container .tabs-navigation .oo-scrollarea-tabs ul li.oo-auto-li {
+ top: 20px
+ }
+
+ .oo-player-container .oo-left-tab-button {
+ display: none
+ }
+
+ .oo-player-container .oo-right-tab-button {
+ display: none
+ }
+
+ .oo-player-container .oo-scrubber-thumbnail-container {
+ position: absolute;
+ bottom: 112px
+ }
+
+ .oo-player-container .oo-scrubber-carousel-container {
+ position: absolute;
+ bottom: 138px
+ }
+
+ .oo-player-container .oo-thumbnail-carousel-center-image {
+ position: absolute;
+ width: 154px;
+ height: 102px;
+ border-radius: 4px;
+ box-shadow: 0px 0px 33px 7px rgba(0, 0, 0, 0.54);
+ background-repeat: no-repeat;
+ background-size: cover;
+ background-position: 50% 50%
+ }
+
+ .oo-player-container .oo-thumbnail-carousel-image {
+ position: absolute;
+ width: 93px;
+ height: 63px;
+ padding: 6px;
+ border-radius: 2px;
+ box-shadow: 0px 0px 39px -4px rgba(0, 0, 0, 0.26);
+ background-repeat: no-repeat;
+ background-size: cover;
+ background-position: 50% 50%
+ }
+
+ .oo-player-container .oo-thumbnail-carousel-time {
+ position: absolute;
+ bottom: 10%;
+ background-color: rgba(26, 26, 26, 0.8);
+ border-radius: 12px;
+ color: white;
+ padding-left: 8%;
+ padding-right: 8%;
+ font-size: 16px;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ left: 50%;
+ -webkit-transform: translateX(-50%);
+ transform: translateX(-50%)
+ }
+
+ .oo-player-container .oo-thumbnail {
+ position: absolute;
+ width: 119px;
+ height: 74px;
+ border-radius: 4px;
+ box-shadow: rgba(0, 0, 0, 0.5) 0 6px 18px;
+ background-repeat: no-repeat;
+ background-size: cover;
+ background-position: 50% 50%;
+ -webkit-transform: translateX(-50%);
+ transform: translateX(-50%)
+ }
+
+ .oo-player-container .oo-thumbnail-time {
+ position: absolute;
+ bottom: 7%;
+ background-color: rgba(26, 26, 26, 0.8);
+ border-radius: 10px;
+ color: white;
+ padding-left: 8%;
+ padding-right: 8%;
+ font-size: 14px;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ left: 50%;
+ -webkit-transform: translateX(-50%);
+ transform: translateX(-50%)
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-screen {
+ padding: 17.15px
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-screen-title {
+ font-size: 1.1em
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-screen-title span.oo-icon {
+ font-size: 0.7em
+ }
+
+ .oo-player-container .oo-xsmall .oo-state-screen .oo-state-screen-info .oo-state-screen-title,
+ .oo-player-container .oo-xsmall .oo-spinner-screen .oo-state-screen-info .oo-state-screen-title {
+ font-size: 1em
+ }
+
+ .oo-player-container .oo-xsmall .oo-state-screen .oo-state-screen-info .oo-state-screen-description,
+ .oo-player-container .oo-xsmall .oo-spinner-screen .oo-state-screen-info .oo-state-screen-description {
+ font-size: 0.6em
+ }
+
+ .oo-player-container .oo-xsmall .oo-discovery-panel .oo-discovery-toaster-container-style {
+ max-height: 200px
+ }
+
+ .oo-player-container .oo-xsmall .oo-discovery-panel _::-webkit-full-page-media,
+ .oo-player-container .oo-xsmall .oo-discovery-panel _:future,
+ .oo-player-container .oo-xsmall .oo-discovery-panel :root .oo-discovery-toaster-container-style {
+ min-height: 100px
+ }
+
+ @supports (overflow: -webkit-marquee) and (justify-content: inherit) {
+ .oo-player-container .oo-xsmall .oo-discovery-panel .oo-discovery-toaster-container-style {
+ min-height: 100px
+ }
+ }
+
+ .oo-player-container .oo-xsmall .oo-discovery-panel .oo-discovery-image-wrapper-style {
+ margin-bottom: 0
+ }
+
+ .oo-player-container .oo-xsmall .oo-discovery-panel .oo-discovery-image-wrapper-style:nth-last-child(2) {
+ margin-right: 42px !important
+ }
+
+ .oo-player-container .oo-xsmall .oo-discovery-panel .oo-discovery-image-wrapper-style:last-child {
+ margin-right: 0
+ }
+
+ .oo-player-container .oo-xsmall .oo-discovery-panel .oo-scale-size {
+ max-height: 150px
+ }
+
+ .oo-player-container .oo-xsmall .oo-discovery-panel _::-webkit-full-page-media,
+ .oo-player-container .oo-xsmall .oo-discovery-panel _:future,
+ .oo-player-container .oo-xsmall .oo-discovery-panel :root .oo-scale-size {
+ min-height: 80px !important
+ }
+
+ @supports (overflow: -webkit-marquee) and (justify-content: inherit) {
+ .oo-player-container .oo-xsmall .oo-discovery-panel .oo-scale-size {
+ min-height: 80px !important
+ }
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-screen-closed-captions .oo-switch-container {
+ height: 15px;
+ width: 74px;
+ margin-left: 18px;
+ top: 4px
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-screen-closed-captions .oo-switch-container .oo-switch-captions {
+ font-size: .7em
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-screen-closed-captions .oo-switch-container .oo-switch-element {
+ top: -3px
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-screen-closed-captions .captions-navbar {
+ margin-top: 10px
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-screen-closed-captions .tabs-menu {
+ width: 775px
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-screen-closed-captions .oo-left-tab-button-active {
+ position: absolute;
+ display: block !important;
+ background-color: transparent;
+ height: 25px;
+ width: 25px;
+ color: white;
+ top: 55px;
+ text-align: right;
+ left: -10px
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-screen-closed-captions .oo-right-tab-button-active {
+ position: absolute;
+ display: block !important;
+ background-color: transparent;
+ height: 25px;
+ width: 25px;
+ color: white;
+ top: 55px;
+ text-align: left;
+ right: -10px
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-screen-closed-captions .oo-data-selector {
+ top: 60%;
+ margin-top: 30px
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-screen-closed-captions .oo-data-panel {
+ width: 80%;
+ margin: auto
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-screen-closed-captions .oo-flexcontainer {
+ -webkit-justify-content: center;
+ -ms-flex-pack: center;
+ justify-content: center
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-screen-closed-captions .oo-color-selection-tab .oo-color-selection-inner-wrapper {
+ position: absolute;
+ top: 100px;
+ left: 0;
+ height: calc(100% - 103px);
+ width: 100%;
+ overflow-y: scroll;
+ -webkit-transform: none;
+ transform: none
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-screen-closed-captions .oo-color-selection-tab .oo-selection-container {
+ width: 100%;
+ padding-left: 30px;
+ margin-bottom: 20px
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-screen-closed-captions .oo-color-selection-tab .oo-selection-inner-wrapper {
+ width: 80%;
+ margin: 0 auto
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-screen-closed-captions .oo-color-selection-tab .oo-text-color-items-container {
+ max-width: none !important
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-screen-closed-captions .oo-color-selection-tab .oo-selection-items-container {
+ max-width: none !important
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-screen-closed-captions .oo-caption-opacity-tab .oo-caption-opacity-inner-wrapper {
+ position: absolute;
+ top: 100px;
+ left: 0;
+ height: calc(100% - 103px);
+ width: 100%;
+ overflow-y: scroll;
+ -webkit-transform: none;
+ transform: none;
+ padding-left: 0
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-screen-closed-captions .oo-caption-opacity-tab .oo-selection-container {
+ width: 100%;
+ padding-left: 30px
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-screen-closed-captions .oo-caption-opacity-tab .oo-selection-inner-wrapper {
+ width: 80%;
+ margin: 0 auto
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-screen-closed-captions .oo-caption-opacity-tab .oo-selection-container-title {
+ margin-bottom: 10px
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-screen-closed-captions .oo-caption-opacity-tab .oo-selection-items-container {
+ margin-bottom: 30px
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-screen-closed-captions .oo-font-size-tab .oo-font-size-inner-wrapper {
+ position: absolute;
+ top: 100px;
+ left: 0;
+ height: calc(100% - 103px);
+ width: 100%;
+ overflow-y: scroll;
+ -webkit-transform: none;
+ transform: none;
+ padding-left: 0
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-screen-closed-captions .oo-font-size-tab .oo-selection-inner-wrapper {
+ width: 80%;
+ margin: 0 auto
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-screen-closed-captions .oo-font-size-tab .oo-selection-container-title {
+ margin-bottom: 0px !important
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-screen-closed-captions .oo-font-size-tab .oo-font-size-container {
+ width: 100% !important
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-screen-closed-captions .oo-font-size-tab .oo-font-size-letter-Large {
+ line-height: 160px !important;
+ margin-bottom: 20px !important
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-screen-closed-captions .oo-font-size-tab .oo-font-size-letter-Extra-Large {
+ line-height: 220px !important;
+ margin-bottom: 60px !important
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-screen-closed-captions .oo-font-size-tab .oo-font-size-label {
+ margin-bottom: 20px
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-screen-closed-captions .oo-text-enhancements-tab .oo-text-enhancements-inner-wrapper {
+ position: absolute;
+ top: 100px;
+ left: 0;
+ height: calc(100% - 103px);
+ width: 100%;
+ overflow-y: scroll;
+ -webkit-transform: none;
+ transform: none;
+ padding-left: 0
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-screen-closed-captions .oo-text-enhancements-tab .oo-selection-inner-wrapper {
+ width: 80%;
+ margin: 0 auto
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-screen-closed-captions .oo-text-enhancements-tab .oo-selection-container-title {
+ margin-bottom: 10px !important
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-screen-closed-captions .oo-text-enhancements-tab .oo-text-enhancements-container {
+ width: 100% !important;
+ margin-bottom: 40px !important
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-screen-closed-captions .oo-text-enhancements-tab .oo-text-enhancements-label {
+ margin-bottom: 20px
+ }
+
+ .oo-player-container .oo-xsmall .oo-preview-panel {
+ display: none
+ }
+
+ .oo-player-container .oo-xsmall .oo-error-screen .oo-error-title {
+ font-size: 1em;
+ margin-bottom: 10px
+ }
+
+ .oo-player-container .oo-xsmall .oo-error-screen .oo-error-description {
+ font-size: 0.7em;
+ margin-bottom: 10px
+ }
+
+ .oo-player-container .oo-xsmall .oo-error-screen .oo-error-action {
+ font-size: 0.7em
+ }
+
+ .oo-player-container .oo-xsmall .oo-action-icon-pause {
+ font-size: 12px
+ }
+
+ .oo-player-container .oo-xsmall .oo-action-icon span.oo-icon,
+ .oo-player-container .oo-xsmall .oo-action-icon-pause.oo-animate-pause {
+ font-size: 50px
+ }
+
+ .oo-player-container .oo-xsmall .oo-ad-top-bar {
+ height: 17px
+ }
+
+ .oo-player-container .oo-xsmall .oo-ad-top-bar .oo-ad-title,
+ .oo-player-container .oo-xsmall .oo-ad-top-bar .oo-ad-playback-info {
+ font-size: 0.7em;
+ padding-left: 4px;
+ padding-right: 4px
+ }
+
+ .oo-player-container .oo-xsmall .oo-ad-top-bar .oo-learn-more {
+ font-size: 0.7em;
+ margin-right: 7px
+ }
+
+ .oo-player-container .oo-xsmall .oo-ad-top-bar .oo-learn-more .oo-button-icon {
+ font-size: 0.7em;
+ margin-right: 3px
+ }
+
+ .oo-player-container .oo-xsmall .oo-ad-top-bar .oo-skip-button {
+ font-size: 0.7em
+ }
+
+ .oo-player-container .oo-xsmall .oo-ad-top-bar .oo-skip-button .oo-skip-icon {
+ font-size: 0.7em;
+ margin-right: 3px
+ }
+
+ .oo-player-container .oo-xsmall .oo-ad-top-bar .oo-skip-button.oo-visible {
+ margin-right: 7px;
+ margin-left: 7px
+ }
+
+ .oo-player-container .oo-xsmall .oo-ad-top-bar .oo-skip-button.oo-visible .oo-skip-icon {
+ font-size: 0.7em;
+ margin-right: 3px
+ }
+
+ .oo-player-container .oo-xsmall .oo-quality-panel {
+ height: 75px
+ }
+
+ .oo-player-container .oo-xsmall .oo-quality-panel .oo-quality-screen-content ul {
+ height: 70px
+ }
+
+ .oo-player-container .oo-xsmall .oo-quality-panel .oo-quality-screen-content ul li {
+ margin: 0 14px
+ }
+
+ .oo-player-container .oo-xsmall .oo-quality-panel .oo-quality-screen-content ul li a.oo-quality-btn {
+ padding: 8px 6px;
+ font-size: 0.8em
+ }
+
+ .oo-player-container .oo-xsmall .oo-quality-panel .oo-quality-screen-content ul li a.oo-quality-auto-btn .oo-quality-auto-icon {
+ font-size: 1.4em;
+ padding: 4px;
+ margin-bottom: 0
+ }
+
+ .oo-player-container .oo-xsmall .oo-quality-panel .oo-quality-screen-content ul li a.oo-quality-auto-btn .oo-quality-auto-label {
+ font-size: 0.8em
+ }
+
+ .oo-player-container .oo-xsmall .oo-quality-panel .oo-quality-screen-content ul li.oo-auto-li {
+ top: 14px
+ }
+
+ .oo-player-container .oo-xsmall .oo-control-bar {
+ height: 57px !important;
+ font-size: 17.5px
+ }
+
+ .oo-player-container .oo-xsmall .oo-control-bar .oo-control-bar-items-wrapper .oo-control-bar-item {
+ font-size: 17.5px;
+ padding: 0 5.95px
+ }
+
+ .oo-player-container .oo-xsmall .oo-control-bar .oo-control-bar-items-wrapper .oo-control-bar-duration {
+ font-size: 9.8px;
+ padding-left: 5.25px;
+ padding-right: 5.25px;
+ top: -1px
+ }
+
+ .oo-player-container .oo-xsmall .oo-control-bar .oo-control-bar-items-wrapper .oo-live-indicator {
+ top: -3px
+ }
+
+ .oo-player-container .oo-xsmall .oo-control-bar .oo-control-bar-items-wrapper .oo-live-circle {
+ width: 4.9px;
+ height: 4.9px
+ }
+
+ .oo-player-container .oo-xsmall .oo-control-bar .oo-control-bar-items-wrapper .oo-live-text {
+ font-size: 10.5px
+ }
+
+ .oo-player-container .oo-xsmall .oo-control-bar .oo-control-bar-items-wrapper .oo-logo img {
+ max-height: 16.8px
+ }
+
+ .oo-player-container .oo-xsmall .oo-volume-bar {
+ width: 4.9px;
+ height: 9.8px;
+ padding-left: 2.8px;
+ margin-bottom: 4px
+ }
+
+ .oo-player-container .oo-xsmall .oo-volume-bar.oo-on {
+ background-color: #448aff;
+ height: 9.8px;
+ padding-bottom: 0
+ }
+
+ .oo-player-container .oo-xsmall .oo-volume-slider {
+ height: 14px;
+ width: 140px;
+ margin-left: 4.2px
+ }
+
+ @media all and (-ms-high-contrast: none) {
+ .oo-player-container .oo-xsmall *::-ms-backdrop,
+ .oo-player-container .oo-xsmall .oo-volume-slider {
+ height: 0
+ }
+ }
+
+ .oo-player-container .oo-xsmall .oo-scrubber-bar-container {
+ height: 14px
+ }
+
+ .oo-player-container .oo-xsmall .oo-scrubber-bar-container .oo-scrubber-bar-padding .oo-scrubber-bar {
+ height: 4.2px
+ }
+
+ .oo-player-container .oo-xsmall .oo-scrubber-bar-container .oo-scrubber-bar-padding .oo-playhead-padding {
+ width: 17.5px;
+ height: 17.5px
+ }
+
+ .oo-player-container .oo-xsmall .oo-scrubber-bar-container .oo-scrubber-bar-padding .oo-playhead-padding .oo-playhead {
+ width: 9px;
+ height: 9px;
+ border-width: 1.4px;
+ border-radius: 7px
+ }
+
+ .oo-player-container .oo-xsmall .oo-scrubber-bar-container .oo-scrubber-bar-padding .oo-playhead-padding .oo-playhead-scrubbing {
+ width: 9.8px;
+ height: 9.8px
+ }
+
+ .oo-player-container .oo-xsmall .oo-scrubber-bar-container .oo-scrubber-bar-padding .oo-playhead-padding .oo-playhead-hovering {
+ top: 39%
+ }
+
+ .oo-player-container .oo-xsmall button.oo-close-btn,
+ .oo-player-container .oo-xsmall button.oo-close-button {
+ font-size: 10px
+ }
+
+ .oo-player-container .oo-xsmall button.oo-up-next-close-btn {
+ top: 7px;
+ right: 7px;
+ font-size: 10px;
+ position: absolute;
+ color: #fff;
+ opacity: 0.6;
+ line-height: 1;
+ padding: 0;
+ border: 0;
+ outline: none;
+ background: transparent;
+ -webkit-appearance: none
+ }
+
+ .oo-player-container .oo-xsmall button.oo-up-next-close-btn:hover {
+ opacity: 1.0;
+ filter: drop-shadow(0px 0px 3px rgba(255, 255, 255, 0.8));
+ -webkit-filter: drop-shadow(0px 0px 3px rgba(255, 255, 255, 0.8));
+ -ms-filter: progid:DXImageTransform.Microsoft.Dropshadow(OffX=0, OffY=0, Color='#fff')
+ }
+
+ .oo-player-container .oo-xsmall button.oo-up-next-close-btn:before {
+ position: absolute;
+ content: '';
+ right: -7px;
+ left: -7px;
+ top: -7px;
+ bottom: -7px
+ }
+
+ .oo-player-container .oo-xsmall .oo-up-next-panel {
+ height: 56px
+ }
+
+ .oo-player-container .oo-xsmall .oo-up-next-panel a.oo-up-next-content {
+ width: 98px
+ }
+
+ .oo-player-container .oo-xsmall .oo-up-next-panel a.oo-up-next-content span.oo-icon {
+ font-size: 17.5px
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-metadata {
+ left: 98px
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-metadata .oo-up-next-title {
+ top: 2.1px;
+ left: 10.5px
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-metadata .oo-up-next-title .oo-up-next-count-down {
+ width: 25.2px;
+ height: 25.2px
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-metadata .oo-up-next-title .oo-up-next-title-text {
+ font-size: 12.6pt
+ }
+
+ .oo-player-container .oo-xsmall .oo-content-metadata .oo-content-description {
+ bottom: 3.5px;
+ left: 10.5px;
+ margin-top: 7px;
+ font-size: 8.4pt
+ }
+
+ .oo-player-container .oo-xsmall .oo-up-next-count-down {
+ margin-right: 7px
+ }
+
+ .oo-player-container .oo-xsmall .oo-ad-overlay.oo-control-bar-visible {
+ bottom: 63px !important
+ }
+
+ .oo-player-container .oo-xsmall .oo-up-next-panel-bottom {
+ bottom: 63px
+ }
+
+ .oo-player-container .oo-xsmall .oo-player-skin-plugins {
+ bottom: 63px
+ }
+
+ .oo-player-container .oo-xsmall .oo-player-skin-plugins-click-layer {
+ bottom: 63px
+ }
+
+ .oo-player-container .oo-xsmall .oo-slider-volume {
+ width: 140px
+ }
+
+ .oo-player-container .oo-xsmall .oo-slider-volume[type=range] {
+ width: 140px
+ }
+
+ .oo-player-container .oo-xsmall .oo-slider-volume[type=range]::-webkit-slider-runnable-track {
+ height: 2.1px
+ }
+
+ .oo-player-container .oo-xsmall .oo-slider-volume[type=range]::-webkit-slider-thumb {
+ height: 10.5px;
+ width: 10.5px;
+ margin-top: -4.2px
+ }
+
+ @supports (-ms-accelerator: true) {
+ .oo-player-container .oo-xsmall .oo-slider-volume[type=range]::-webkit-slider-thumb {
+ margin-top: 1px
+ }
+ }
+
+ .oo-player-container .oo-xsmall .oo-slider-volume[type=range]::-moz-range-track {
+ width: 140px;
+ height: 2.1px
+ }
+
+ .oo-player-container .oo-xsmall .oo-slider-volume[type=range]::-moz-range-thumb {
+ height: 10.5px;
+ width: 10.5px
+ }
+
+ .oo-player-container .oo-xsmall .oo-slider-volume[type=range]::-ms-track {
+ width: 140px;
+ height: 2.1px;
+ border-width: 5.25px 0
+ }
+
+ .oo-player-container .oo-xsmall .oo-slider-volume[type=range]::-ms-thumb {
+ height: 10.5px;
+ width: 10.5px
+ }
+
+ .oo-player-container .oo-xsmall .oo-text-track-container {
+ max-width: 96%;
+ margin-bottom: 4px
+ }
+
+ .oo-player-container .oo-xsmall .oo-text-track-container .oo-text-track-window {
+ padding: 4px
+ }
+
+ .oo-player-container .oo-xsmall .oo-text-track-container .oo-text-track-window .oo-text-track-background {
+ padding: 2px 6px
+ }
+
+ .oo-player-container .oo-xsmall .oo-scrubber-thumbnail-container {
+ bottom: 80.5px
+ }
+
+ .oo-player-container .oo-xsmall .oo-thumbnail {
+ width: 79.1px;
+ height: 53.9px;
+ border-radius: 2.8px;
+ box-shadow: rgba(0, 0, 0, 0.5) 0 4.2px 12.6px
+ }
+
+ .oo-player-container .oo-xsmall .oo-thumbnail-time {
+ border-radius: 9.1px;
+ font-size: 8.4px;
+ padding-left: 7%;
+ padding-right: 7%;
+ font-size: 12.6px
+ }
+
+ .oo-player-container .oo-xsmall .oo-thumbnail-carousel-center-image {
+ width: 124px;
+ height: 72px;
+ border-radius: 4px
+ }
+
+ .oo-player-container .oo-xsmall .oo-thumbnail-carousel-image {
+ position: absolute;
+ width: 73px;
+ height: 43px;
+ border-radius: 2px
+ }
+
+ .oo-player-container .oo-xsmall .oo-scrubber-thumbnail-container {
+ bottom: 70px
+ }
+
+ .oo-player-container .oo-xsmall .oo-scrubber-carousel-container {
+ bottom: 88px
+ }
+
+ .oo-player-container .oo-small .oo-control-bar-items-wrapper .oo-control-bar-item {
+ padding: 0 10.15px;
+ font-size: 23px
+ }
+
+ .oo-player-container .oo-small .oo-action-icon span.oo-icon,
+ .oo-player-container .oo-small .oo-action-icon-pause.oo-animate-pause {
+ font-size: 86px
+ }
+
+ .oo-player-container .oo-small .oo-discovery-panel _::-webkit-full-page-media,
+ .oo-player-container .oo-small .oo-discovery-panel _:future,
+ .oo-player-container .oo-small .oo-discovery-panel :root .oo-scale-size {
+ min-height: 190px !important
+ }
+
+ @supports (overflow: -webkit-marquee) and (justify-content: inherit) {
+ .oo-player-container .oo-small .oo-discovery-panel .oo-scale-size {
+ min-height: 190px !important
+ }
+ }
+
+ .oo-player-container .oo-small .captions-navbar {
+ margin-top: 10px
+ }
+
+ .oo-player-container .oo-small .tabs-menu {
+ width: 685px
+ }
+
+ .oo-player-container .oo-small .tabs-menu-item a {
+ font-size: 15px
+ }
+
+ .oo-player-container .oo-small .oo-left-tab-button-active {
+ position: absolute;
+ display: block !important;
+ background-color: transparent;
+ height: 25px;
+ width: 25px;
+ color: white;
+ top: 65px;
+ text-align: right;
+ left: -5px
+ }
+
+ .oo-player-container .oo-small .oo-right-tab-button-active {
+ position: absolute;
+ display: block !important;
+ background-color: transparent;
+ height: 25px;
+ width: 25px;
+ color: white;
+ top: 65px;
+ text-align: left;
+ right: -5px
+ }
+
+ .oo-player-container .oo-small .oo-data-panel {
+ width: 400px;
+ margin: auto
+ }
+
+ .oo-player-container .oo-small .oo-closed-captions-panel .oo-data-selector {
+ top: 60%
+ }
+
+ .oo-player-container .oo-small .oo-closed-captions-panel .oo-color-selection-tab .oo-color-selection-inner-wrapper {
+ top: calc(50% + 42px)
+ }
+
+ .oo-player-container .oo-small .oo-closed-captions-panel .oo-color-selection-tab .oo-selection-container {
+ min-width: 185px
+ }
+
+ .oo-player-container .oo-small .oo-closed-captions-panel .oo-color-selection-tab .oo-selection-container .oo-selection-inner-wrapper {
+ width: 190px;
+ margin: 0 auto
+ }
+
+ .oo-player-container .oo-small .oo-closed-captions-panel .oo-color-selection-tab .oo-selection-container .oo-selection-inner-wrapper .oo-selection-container-title {
+ font-size: 15px;
+ margin-bottom: 20px
+ }
+
+ .oo-player-container .oo-small .oo-closed-captions-panel .oo-color-selection-tab .oo-selection-container .oo-selection-inner-wrapper .oo-text-color-items-container {
+ width: 180px
+ }
+
+ .oo-player-container .oo-small .oo-closed-captions-panel .oo-color-selection-tab .oo-selection-container .oo-selection-inner-wrapper .oo-selection-items-container {
+ width: 190px
+ }
+
+ .oo-player-container .oo-small .oo-closed-captions-panel .oo-color-selection-tab .oo-selection-container .oo-selection-inner-wrapper .oo-item {
+ width: 23px;
+ height: 23px;
+ margin-right: 15px;
+ margin-bottom: 20px
+ }
+
+ .oo-player-container .oo-small .oo-closed-captions-panel .oo-color-selection-tab .oo-selection-container .oo-selection-inner-wrapper .oo-item-selected {
+ border: solid #247dff 3px;
+ border-radius: 50%
+ }
+
+ .oo-player-container .oo-small .oo-closed-captions-panel .oo-color-selection-tab .oo-selection-container .oo-selection-inner-wrapper .oo-color-item {
+ width: 15px;
+ height: 15px
+ }
+
+ .oo-player-container .oo-small .oo-closed-captions-panel .oo-color-selection-tab .oo-text-color-selection-container {
+ min-width: 160px;
+ padding-left: 24.5px
+ }
+
+ .oo-player-container .oo-small .oo-closed-captions-panel .oo-caption-opacity-inner-wrapper {
+ top: 60%;
+ padding-left: 0
+ }
+
+ .oo-player-container .oo-small .oo-closed-captions-panel .oo-font-size-tab .oo-font-size-inner-wrapper {
+ top: calc(50% + 42px);
+ padding-left: 0
+ }
+
+ .oo-player-container .oo-small .oo-closed-captions-panel .oo-font-size-tab .oo-selection-container-title {
+ margin-bottom: 0px !important
+ }
+
+ .oo-player-container .oo-small .oo-closed-captions-panel .oo-text-enhancements-tab .oo-text-enhancements-inner-wrapper {
+ top: calc(50% + 42px);
+ padding-left: 0
+ }
+
+ .oo-player-container .oo-small .oo-closed-captions-panel .oo-text-enhancements-tab .oo-selection-container-title {
+ margin-bottom: 0px !important
+ }
+
+ .oo-player-container .oo-small .oo-closed-captions-panel .oo-selection-inner-wrapper {
+ margin: 0 auto
+ }
+
+ .oo-player-container .oo-small .oo-preview-panel {
+ display: none
+ }
+
+ .oo-player-container .oo-small .oo-text-track-container .oo-text-track-window {
+ padding: 8px
+ }
+
+ .oo-player-container .oo-small .oo-text-track-container .oo-text-track-window .oo-text-track-background {
+ padding: 2px 12px
+ }
+
+ .oo-player-container .oo-small .oo-thumbnail-carousel-center-image {
+ width: 124px;
+ height: 72px;
+ border-radius: 4px
+ }
+
+ .oo-player-container .oo-small .oo-thumbnail-carousel-image {
+ position: absolute;
+ width: 73px;
+ height: 43px;
+ border-radius: 2px
+ }
+
+ .oo-player-container .oo-small .oo-scrubber-thumbnail-container {
+ bottom: 105px
+ }
+
+ .oo-player-container .oo-small .oo-scrubber-carousel-container {
+ bottom: 103px
+ }
+
+ .oo-player-container .oo-large .oo-content-screen {
+ padding: 35px
+ }
+
+ .oo-player-container .oo-large .oo-content-screen-title {
+ font-size: 1.9em
+ }
+
+ .oo-player-container .oo-large .oo-content-screen-title span.oo-icon {
+ top: 4px;
+ font-size: 1em
+ }
+
+ .oo-player-container .oo-large .oo-state-screen .oo-state-screen-info .oo-state-screen-title,
+ .oo-player-container .oo-large .oo-spinner-screen .oo-state-screen-info .oo-state-screen-title {
+ font-size: 3.0em
+ }
+
+ .oo-player-container .oo-large .oo-state-screen .oo-state-screen-info .oo-state-screen-description,
+ .oo-player-container .oo-large .oo-spinner-screen .oo-state-screen-info .oo-state-screen-description {
+ font-size: 1.8em
+ }
+
+ .oo-player-container .oo-large .oo-discovery-panel {
+ padding: 35px;
+ margin-top: auto;
+ margin-bottom: auto
+ }
+
+ .oo-player-container .oo-large .oo-discovery-panel .oo-discovery-panel-title {
+ position: absolute
+ }
+
+ .oo-player-container .oo-large .oo-discovery-panel .oo-discovery-toaster-container-style {
+ max-height: 460px
+ }
+
+ .oo-player-container .oo-large .oo-discovery-panel _::-webkit-full-page-media,
+ .oo-player-container .oo-large .oo-discovery-panel _:future,
+ .oo-player-container .oo-large .oo-discovery-panel :root .oo-discovery-toaster-container-style {
+ min-height: 360px
+ }
+
+ @supports (overflow: -webkit-marquee) and (justify-content: inherit) {
+ .oo-player-container .oo-large .oo-discovery-panel .oo-discovery-toaster-container-style {
+ min-height: 360px
+ }
+ }
+
+ .oo-player-container .oo-large .oo-discovery-panel .oo-discovery-image-wrapper-style {
+ width: 214px;
+ height: auto;
+ margin: 0 60px 60px 0
+ }
+
+ .oo-player-container .oo-large .oo-discovery-panel .oo-discovery-image-wrapper-style:nth-of-type(even) {
+ margin-bottom: 0
+ }
+
+ .oo-player-container .oo-large .oo-discovery-panel .oo-discovery-image-wrapper-style:last-child,
+ .oo-player-container .oo-large .oo-discovery-panel .oo-discovery-image-wrapper-style:nth-last-child(2):nth-of-type(odd) {
+ margin-right: 0
+ }
+
+ .oo-player-container .oo-large .oo-discovery-panel .oo-image-style {
+ height: 120px
+ }
+
+ .oo-player-container .oo-large .oo-content-screen-closed-captions .oo-switch-container {
+ height: 26px;
+ width: 126px;
+ margin-left: 34px
+ }
+
+ .oo-player-container .oo-large .oo-content-screen-closed-captions .oo-switch-container .oo-switch-captions {
+ font-size: 1.2em
+ }
+
+ .oo-player-container .oo-large .oo-content-screen-closed-captions .oo-data-panel {
+ padding-left: 7px;
+ width: 850px
+ }
+
+ .oo-player-container .oo-large .oo-content-screen-closed-captions .oo-text-color-selection-container {
+ padding-left: 35px
+ }
+
+ .oo-player-container .oo-large .oo-content-screen-closed-captions .oo-caption-opacity-inner-wrapper {
+ padding-left: 35px
+ }
+
+ .oo-player-container .oo-large .oo-content-screen-closed-captions .oo-font-size-inner-wrapper {
+ padding-left: 35px
+ }
+
+ .oo-player-container .oo-large .oo-content-screen-closed-captions .oo-text-enhancements-inner-wrapper {
+ padding-left: 35px
+ }
+
+ .oo-player-container .oo-large .oo-error-screen .oo-error-title {
+ font-size: 2em
+ }
+
+ .oo-player-container .oo-large .oo-error-screen .oo-error-description {
+ font-size: 1.4em
+ }
+
+ .oo-player-container .oo-large .oo-error-screen .oo-error-action {
+ font-size: 1.4em
+ }
+
+ .oo-player-container .oo-large .oo-action-icon-pause {
+ font-size: 32px
+ }
+
+ .oo-player-container .oo-large .oo-action-icon span.oo-icon,
+ .oo-player-container .oo-large .oo-action-icon-pause.oo-animate-pause {
+ font-size: 150px
+ }
+
+ .oo-player-container .oo-large .oo-ad-top-bar {
+ height: 34px
+ }
+
+ .oo-player-container .oo-large .oo-ad-top-bar .oo-ad-title,
+ .oo-player-container .oo-large .oo-ad-top-bar .oo-ad-playback-info {
+ font-size: 1em;
+ padding-left: 7.5px;
+ padding-right: 7.5px
+ }
+
+ .oo-player-container .oo-large .oo-ad-top-bar .oo-learn-more {
+ font-size: 1em;
+ margin-right: 10px
+ }
+
+ .oo-player-container .oo-large .oo-ad-top-bar .oo-learn-more .oo-button-icon {
+ font-size: 0.8em;
+ margin-right: 5px
+ }
+
+ .oo-player-container .oo-large .oo-ad-top-bar .oo-skip-button {
+ font-size: 1em
+ }
+
+ .oo-player-container .oo-large .oo-ad-top-bar .oo-skip-button .oo-skip-icon {
+ font-size: 0.8em;
+ margin-right: 5px
+ }
+
+ .oo-player-container .oo-large .oo-ad-top-bar .oo-skip-button.oo-visible {
+ margin-right: 15px;
+ margin-left: 15px
+ }
+
+ .oo-player-container .oo-large .oo-ad-top-bar .oo-skip-button.oo-visible .oo-skip-icon {
+ font-size: 0.8em;
+ margin-right: 5px
+ }
+
+ .oo-player-container .oo-large button.oo-close-btn {
+ top: 35px;
+ right: 35px
+ }
+
+ @media (orientation: portrait) {
+ .oo-player-container .oo-mobile-fullscreen.oo-quality-panel {
+ height: 80% !important;
+ width: 100px !important
+ }
+ .oo-player-container .oo-mobile-fullscreen.oo-quality-panel .scrollbar-container.vertical {
+ display: none
+ }
+ .oo-player-container .oo-mobile-fullscreen.oo-quality-panel .oo-quality-screen-content {
+ position: relative;
+ height: 100%;
+ text-align: center
+ }
+ .oo-player-container .oo-mobile-fullscreen.oo-quality-panel .oo-quality-screen-content ul {
+ padding: 0;
+ margin: 0;
+ list-style: none;
+ height: 75% !important;
+ white-space: normal
+ }
+ .oo-player-container .oo-mobile-fullscreen.oo-quality-panel .oo-quality-screen-content ul li {
+ display: block;
+ margin: 0 0 30px 0 !important;
+ padding: 0;
+ list-style: none
+ }
+ .oo-player-container .oo-mobile-fullscreen.oo-quality-panel .oo-quality-screen-content ul li:last-child {
+ margin-bottom: 10px
+ }
+ .oo-player-container .oo-mobile-fullscreen.oo-quality-panel .oo-quality-screen-content ul li.oo-auto-li {
+ top: 4px !important
+ }
+ }
+
+ .oo-player-container .oo-player {
+ display: block;
+ position: relative;
+ overflow: hidden;
+ vertical-align: top;
+ background-color: #000 !important;
+ padding: 0;
+ width: 100%;
+ height: 0;
+ padding-top: 56.25%;
+ transition: padding-top 0.5s ease
+ }
+
+ .oo-player-container .oo-player:-moz-full-screen {
+ position: absolute;
+ width: 100% !important;
+ height: 100% !important;
+ padding: 0 !important
+ }
+
+ .oo-player-container .oo-player:-webkit-full-screen {
+ width: 100% !important;
+ height: 100% !important;
+ padding: 0 !important
+ }
+
+ .oo-player-container .oo-player:-ms-fullscreen {
+ width: 100% !important;
+ height: 100% !important;
+ padding: 0 !important
+ }
+
+ .oo-player-container .oo-player.oo-fullscreen {
+ position: fixed;
+ overflow: hidden;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%
+ }
+
+ .oo-player-container .oo-player-skin {
+ overflow: hidden;
+ z-index: 11000
+ }
+
+ .oo-player-container video.oo-blur {
+ -webkit-filter: blur(3px);
+ -moz-filter: blur(3px);
+ filter: blur(3px)
+ }
+
+ .oo-player-container .oo-state-screen.oo-pause-screen .oo-state-screen-title {
+ display: none
+ }
+
+ .oo-player-container .oo-state-screen.oo-start-screen .oo-start-screen-linear-gradient {
+ background: linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, transparent 100%)
+ }
+
+ .oo-player-container .oo-state-screen.oo-start-screen .oo-action-icon {
+ background-image: url("http://vignette.wikia.nocookie.net/6857d275-0eb0-4e97-9401-3d23da474ed0");
+ background-size: cover;
+ bottom: 25px;
+ height: 80px;
+ left: auto;
+ right: 25px;
+ text-indent: 8000px;
+ top: auto;
+ -webkit-transform: none;
+ transform: none;
+ width: 80px
+ }
+
+ .oo-player-container .oo-state-screen .oo-action-icon {
+ position: absolute
+ }
+
+ .oo-player-container .oo-state-screen .oo-state-screen-info {
+ bottom: 25px;
+ left: 25px;
+ top: auto
+ }
+
+ .oo-player-container .oo-state-screen .oo-state-screen-info .oo-state-screen-title {
+ font-size: 1.125rem;
+ line-height: 1.375rem;
+ margin-bottom: 10px
+ }
+
+ .oo-player-container .oo-state-screen .oo-state-screen-info .video-duration {
+ font-size: 1.125rem;
+ line-height: 1.375rem;
+ color: #656e78;
+ font-weight: bold
+ }
+
+ .oo-player-container .oo-state-screen .oo-text-truncate {
+ overflow: visible;
+ text-overflow: clip;
+ white-space: normal
+ }
+
+ .oo-player-container .oo-state-screen .oo-state-screen-selectable {
+ cursor: inherit
+ }
+
+ .oo-player-container .oo-social-action-text {
+ display: none
+ }
+
+ .oo-player-container .oo-player-skin .oo-content-panel.oo-share-panel .oo-share-tab-panel .oo-facebook,
+ .oo-player-container .oo-player-skin .oo-content-panel.oo-share-panel .oo-share-tab-panel .oo-twitter {
+ border-radius: 0;
+ height: 45px;
+ margin-right: 6px;
+ width: 45px
+ }
+
+ .oo-player-container .oo-player-skin .oo-content-panel.oo-share-panel .oo-share-tab-panel .oo-facebook {
+ background-color: #3b5998;
+ background-size: 30px
+ }
+
+ .oo-player-container .oo-player-skin .oo-content-panel.oo-share-panel .oo-share-tab-panel .oo-twitter {
+ background-color: #1da1f2;
+ background-size: 40px
+ }
+
+ .oo-player-container .oo-player-skin .oo-content-panel.oo-share-panel .oo-share-tab-panel .oo-google-plus,
+ .oo-player-container .oo-player-skin .oo-content-panel.oo-share-panel .oo-share-tab-panel .oo-email-share {
+ display: none
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .oo-player-container .oo-state-screen.oo-start-screen .oo-action-icon {
+ height: 60px;
+ width: 60px
+ }
+ .oo-player-container .oo-state-screen .oo-state-screen-info .oo-state-screen-title,
+ .oo-player-container .oo-state-screen .oo-state-screen-info .video-duration {
+ font-size: 1rem;
+ line-height: 1.25rem
+ }
+ }
+
+ .oo-player-container .oo-scrubber-bar-container {
+ height: 5px
+ }
+
+ .oo-player-container .oo-scrubber-bar-container .oo-scrubber-bar-padding .oo-scrubber-bar {
+ height: 3px
+ }
+
+ .oo-player-container .oo-scrubber-bar-container .oo-scrubber-bar-padding .oo-playhead-padding .oo-playhead {
+ background: #2cd3f8;
+ border-radius: 13px;
+ border: 2px solid #fff;
+ height: 13px;
+ width: 13px
+ }
+
+ .oo-player-container .oo-scrubber-bar-container .oo-scrubber-bar-padding .oo-playhead-padding .oo-playhead-scrubbing {
+ background: #2cd3f8;
+ border-radius: 20px;
+ border: 3px solid #fff;
+ height: 20px;
+ width: 20px
+ }
+
+ .oo-player-container .oo-control-bar .oo-logo,
+ .oo-player-container .oo-control-bar .oo-closed-caption,
+ .oo-player-container .oo-control-bar .oo-more-options {
+ display: none !important
+ }
+
+ .oo-player-container .oo-control-bar .oo-icon:hover {
+ -webkit-filter: none !important;
+ filter: none !important
+ }
+
+ .oo-player-container .oo-control-bar .oo-control-bar-items-wrapper {
+ margin-top: 12px
+ }
+
+ .oo-player-container .oo-control-bar .oo-control-bar-items-wrapper .oo-control-bar-item {
+ padding: 0 3px
+ }
+
+ .oo-player-container .oo-control-bar .oo-control-bar-items-wrapper .oo-control-bar-item.oo-selected&gt;
+ .fandom-video-gear-icon {
+ color: transparent !important
+ }
+
+ .oo-player-container .oo-control-bar .oo-control-bar-items-wrapper .oo-volume .oo-volume-bar {
+ height: 16px;
+ background-color: rgba(255, 255, 255, 0.2)
+ }
+
+ .oo-player-container .oo-control-bar .oo-icon:not(.fandom-video-icon):hover {
+ color: #2cd3f8 !important
+ }
+
+ .oo-player-container .oo-control-bar .fandom-video-icon {
+ color: transparent !important
+ }
+
+ .oo-player-container .oo-control-bar .fandom-video-share-icon {
+ background: no-repeat center url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjE0cHgiIGhlaWdodD0iMTdweCIgdmlld0JveD0iMCAwIDE0IDE3IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCAzOS4xICgzMTcyMCkgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiAgICA8dGl0bGU+U2hhcmU8L3RpdGxlPgogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CiAgICA8ZGVmcz48L2RlZnM+CiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8ZyBpZD0iVmlkZW8tUGxheWVyLVNraW4iIHRyYW5zZm9ybT0idHJhbnNsYXRlKC04NDMuMDAwMDAwLCAtNjA5LjAwMDAwMCkiIGZpbGw9IiNGRkZGRkYiPgogICAgICAgICAgICA8ZyBpZD0iVmlkZW8tQ29weSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjQ4LjAwMDAwMCwgMjU4LjAwMDAwMCkiPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTU5Ny41NDU0NTUsMzYyLjQzNTkzNiBDNTk4LjI1OTQ1NSwzNjIuNDM1OTM2IDU5OC45MDM0NTUsMzYyLjEyNDYwMyA1OTkuMzY2MDkxLDM2MS42MjcyNjkgTDYwNC4wMDgzNjQsMzY0LjQwNTkzNiBDNjAzLjk1MDQ1NSwzNjQuNjI5MjY5IDYwMy45MDkwOTEsMzY0Ljg1OTkzNiA2MDMuOTA5MDkxLDM2NS4xMDI2MDMgQzYwMy45MDkwOTEsMzY2LjU3MzI2OSA2MDUuMDUwNzI3LDM2Ny43NjkyNjkgNjA2LjQ1NDU0NSwzNjcuNzY5MjY5IEM2MDcuODU4MzY0LDM2Ny43NjkyNjkgNjA5LDM2Ni41NzMyNjkgNjA5LDM2NS4xMDI2MDMgQzYwOSwzNjMuNjMxOTM2IDYwNy44NTgzNjQsMzYyLjQzNTkzNiA2MDYuNDU0NTQ1LDM2Mi40MzU5MzYgQzYwNS43NDA1NDUsMzYyLjQzNTkzNiA2MDUuMDk2NTQ1LDM2Mi43NDcyNjkgNjA0LjYzMzkwOSwzNjMuMjQ0NjAzIEw1OTkuOTkxNjM2LDM2MC40NjU5MzYgQzYwMC4wNDk1NDUsMzYwLjI0MjYwMyA2MDAuMDkwOTA5LDM2MC4wMTE5MzYgNjAwLjA5MDkwOSwzNTkuNzY5MjY5IEM2MDAuMDkwOTA5LDM1OS41MjY2MDMgNjAwLjA0OTU0NSwzNTkuMjk1OTM2IDU5OS45OTE2MzYsMzU5LjA3MjYwMyBMNjA0LjYzMzkwOSwzNTYuMjkzOTM2IEM2MDUuMDk2NTQ1LDM1Ni43OTEyNjkgNjA1Ljc0MDU0NSwzNTcuMTAyNjAzIDYwNi40NTQ1NDUsMzU3LjEwMjYwMyBDNjA3Ljg1ODM2NCwzNTcuMTAyNjAzIDYwOSwzNTUuOTA2NjAzIDYwOSwzNTQuNDM1OTM2IEM2MDksMzUyLjk2NTI2OSA2MDcuODU4MzY0LDM1MS43NjkyNjkgNjA2LjQ1NDU0NSwzNTEuNzY5MjY5IEM2MDUuMDUwNzI3LDM1MS43NjkyNjkgNjAzLjkwOTA5MSwzNTIuOTY1MjY5IDYwMy45MDkwOTEsMzU0LjQzNTkzNiBDNjAzLjkwOTA5MSwzNTQuNjc4NjAzIDYwMy45NTA0NTUsMzU0LjkwOTI2OSA2MDQuMDA4MzY0LDM1NS4xMzI2MDMgTDU5OS4zNjYwOTEsMzU3LjkxMTI2OSBDNTk4LjkwMzQ1NSwzNTcuNDEzOTM2IDU5OC4yNTk0NTUsMzU3LjEwMjYwMyA1OTcuNTQ1NDU1LDM1Ny4xMDI2MDMgQzU5Ni4xNDE2MzYsMzU3LjEwMjYwMyA1OTUsMzU4LjI5ODYwMyA1OTUsMzU5Ljc2OTI2OSBDNTk1LDM2MS4yMzk5MzYgNTk2LjE0MTYzNiwzNjIuNDM1OTM2IDU5Ny41NDU0NTUsMzYyLjQzNTkzNiIgaWQ9IlNoYXJlIj48L3BhdGg+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==")
+ }
+
+ .oo-player-container .oo-control-bar .fandom-video-share-icon:hover {
+ background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjE0cHgiIGhlaWdodD0iMTdweCIgdmlld0JveD0iMCAwIDE0IDE3IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCAzOS4xICgzMTcyMCkgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiAgICA8dGl0bGU+U2hhcmU8L3RpdGxlPgogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CiAgICA8ZGVmcz48L2RlZnM+CiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8ZyBpZD0iVmlkZW8tUGxheWVyLVNraW4iIHRyYW5zZm9ybT0idHJhbnNsYXRlKC04NDMuMDAwMDAwLCAtNjA5LjAwMDAwMCkiIGZpbGw9IiMyY2QzZjgiPgogICAgICAgICAgICA8ZyBpZD0iVmlkZW8tQ29weSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjQ4LjAwMDAwMCwgMjU4LjAwMDAwMCkiPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTU5Ny41NDU0NTUsMzYyLjQzNTkzNiBDNTk4LjI1OTQ1NSwzNjIuNDM1OTM2IDU5OC45MDM0NTUsMzYyLjEyNDYwMyA1OTkuMzY2MDkxLDM2MS42MjcyNjkgTDYwNC4wMDgzNjQsMzY0LjQwNTkzNiBDNjAzLjk1MDQ1NSwzNjQuNjI5MjY5IDYwMy45MDkwOTEsMzY0Ljg1OTkzNiA2MDMuOTA5MDkxLDM2NS4xMDI2MDMgQzYwMy45MDkwOTEsMzY2LjU3MzI2OSA2MDUuMDUwNzI3LDM2Ny43NjkyNjkgNjA2LjQ1NDU0NSwzNjcuNzY5MjY5IEM2MDcuODU4MzY0LDM2Ny43NjkyNjkgNjA5LDM2Ni41NzMyNjkgNjA5LDM2NS4xMDI2MDMgQzYwOSwzNjMuNjMxOTM2IDYwNy44NTgzNjQsMzYyLjQzNTkzNiA2MDYuNDU0NTQ1LDM2Mi40MzU5MzYgQzYwNS43NDA1NDUsMzYyLjQzNTkzNiA2MDUuMDk2NTQ1LDM2Mi43NDcyNjkgNjA0LjYzMzkwOSwzNjMuMjQ0NjAzIEw1OTkuOTkxNjM2LDM2MC40NjU5MzYgQzYwMC4wNDk1NDUsMzYwLjI0MjYwMyA2MDAuMDkwOTA5LDM2MC4wMTE5MzYgNjAwLjA5MDkwOSwzNTkuNzY5MjY5IEM2MDAuMDkwOTA5LDM1OS41MjY2MDMgNjAwLjA0OTU0NSwzNTkuMjk1OTM2IDU5OS45OTE2MzYsMzU5LjA3MjYwMyBMNjA0LjYzMzkwOSwzNTYuMjkzOTM2IEM2MDUuMDk2NTQ1LDM1Ni43OTEyNjkgNjA1Ljc0MDU0NSwzNTcuMTAyNjAzIDYwNi40NTQ1NDUsMzU3LjEwMjYwMyBDNjA3Ljg1ODM2NCwzNTcuMTAyNjAzIDYwOSwzNTUuOTA2NjAzIDYwOSwzNTQuNDM1OTM2IEM2MDksMzUyLjk2NTI2OSA2MDcuODU4MzY0LDM1MS43NjkyNjkgNjA2LjQ1NDU0NSwzNTEuNzY5MjY5IEM2MDUuMDUwNzI3LDM1MS43NjkyNjkgNjAzLjkwOTA5MSwzNTIuOTY1MjY5IDYwMy45MDkwOTEsMzU0LjQzNTkzNiBDNjAzLjkwOTA5MSwzNTQuNjc4NjAzIDYwMy45NTA0NTUsMzU0LjkwOTI2OSA2MDQuMDA4MzY0LDM1NS4xMzI2MDMgTDU5OS4zNjYwOTEsMzU3LjkxMTI2OSBDNTk4LjkwMzQ1NSwzNTcuNDEzOTM2IDU5OC4yNTk0NTUsMzU3LjEwMjYwMyA1OTcuNTQ1NDU1LDM1Ny4xMDI2MDMgQzU5Ni4xNDE2MzYsMzU3LjEwMjYwMyA1OTUsMzU4LjI5ODYwMyA1OTUsMzU5Ljc2OTI2OSBDNTk1LDM2MS4yMzk5MzYgNTk2LjE0MTYzNiwzNjIuNDM1OTM2IDU5Ny41NDU0NTUsMzYyLjQzNTkzNiIgaWQ9IlNoYXJlIj48L3BhdGg+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==")
+ }
+
+ .oo-player-container .oo-control-bar .fandom-video-volume-icon {
+ background: no-repeat center url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjE4cHgiIGhlaWdodD0iMTVweCIgdmlld0JveD0iMCAwIDE4IDE1IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCAzOS4xICgzMTcyMCkgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiAgICA8dGl0bGU+dm9sdW1lPC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+PC9kZWZzPgogICAgPGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9IlZpZGVvLVBsYXllci1Ta2luIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjkxLjAwMDAwMCwgLTYxMC4wMDAwMDApIiBmaWxsPSIjRkZGRkZGIj4KICAgICAgICAgICAgPGcgaWQ9IlZpZGVvLUNvcHkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI0OC4wMDAwMDAsIDI1OC4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxnIGlkPSJ2b2x1bWUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQzLjAwMDAwMCwgMzUyLjAwMDAwMCkiPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik04LjU5NTMxNDk0LDAuMTczMTY1OTI1IEw0Ljc0NDA4MjIxLDQuMzc0MDYyMTQgTDEuMDUzNzU2MTIsNC4zNzQwNjIxNCBDMC4yNjA4NDc2Nyw0LjM3NDA2MjE0IDAsNC44NDEzMzg1MyAwLDUuMjg2MzcwNjcgTDAsOC44ODU5MzU4MiBDMCw5LjMzMDk2Nzk1IDAuMjYwODQ3NjcsOS44OTIxNTYzIDEuMDUzNzU2MTIsOS44OTIxNTYzIEw0Ljc2MjE2NTI0LDkuODkyMTU2MyBMOC42MTI0OTM4MywxNC4xNTg5MjU5IEM4Ljc4MDIxMzksMTQuMjUzNTAwOCA4Ljk2NzM3MzIzLDE0LjMwNTQyODYgOS4xNTQ3NTg2LDE0LjMwNTQyODYgQzkuMzQxOTE3OTMsMTQuMzA1NDI4NiA5LjQ5NTYyMzY3LDE0LjI2MDEyOTggOS42NjMxMTc3MiwxNC4xNjUzMzQgQzkuOTk4NzgzODksMTMuOTc1OTYzMyAxMC4xNzE3MDI5LDEzLjYyODM3ODcgMTAuMTcxNzAyOSwxMy4yNDkxOTU0IEwxMC4xNzE3MDI5LDEuMDM1Mzg4MDggQzEwLjE3MTcwMjksMC42NTY0MjU3NDYgOS45OTg3ODM4OSwwLjMwNjQxMDM5MyA5LjY2MzExNzcyLDAuMTE3MDM5NzI2IEM5LjMyNzQ1MTUyLC0wLjA3MjMzMDk1OTggOC45MzEyMDcxOCwtMC4wMTYyMDQ3NjA1IDguNTk1MzE0OTQsMC4xNzMxNjU5MjUgTDguNTk1MzE0OTQsMC4xNzMxNjU5MjUgWiIgaWQ9IlNoYXBlIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTEzLjM5OTMwNjUsMTAuMzI2NDM4NSBDMTUuMDk5ODg4NSw4LjYxOTM2MjA3IDE1LjA5OTkxMDYsNS44NDMwMjg0OSAxMy4zOTk0NDY3LDQuMTM2MDcwNDcgQzEzLjEyMjYxMjUsMy44NTg0MzQ5MSAxMi42NzI4OTE2LDMuODU4NDM4NDkgMTIuMzk2MzgwOSw0LjEzNjA5MDYgQzEyLjEyMTE5MzIsNC40MTIwNzQ3NiAxMi4xMjExOTMyLDQuODU4NzU0MTMgMTIuMzk2MzgwOSw1LjEzNTA3NzgyIEMxMy41NDY5NjI5LDYuMjkwNDA5MzIgMTMuNTQ2OTYwOSw4LjE3MTk3NTY1IDEyLjM5NjM2NzYsOS4zMjc1NTU2MSBDMTIuMTIxMTcxNiw5LjYwMzU0ODA1IDEyLjEyMTE4ODIsMTAuMDUwMjg4NSAxMi4zOTY0NjEsMTAuMzI2MzU4MSBDMTIuNTI5ODg2MiwxMC40NjAzMzQxIDEyLjcwOTU4MDEsMTAuNTM0NTkxMSAxMi44OTc5MjM5LDEwLjUzNDU5MTEgQzEzLjA4NTkzNjgsMTAuNTM0NTkxMSAxMy4yNjU2NjI0LDEwLjQ2MDMwNDUgMTMuMzk5MzA2NSwxMC4zMjY0Mzg1IEwxMy4zOTkzMDY1LDEwLjMyNjQzODUgWiIgaWQ9IlNoYXBlIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTE3LjUxNDk0NzgsNy4yMzEzMTAwMSBDMTcuNTE0OTQ3OCw1LjU3MzIzODIxIDE2Ljg3MDU5NzYsNC4wMTI1NTk4NSAxNS43MDExOTY1LDIuODM4NTkwOCBDMTUuNDI0NzM5NCwyLjU2MDY1MDk5IDE0Ljk3NDgzMDQsMi41NjA2Njc5MSAxNC42OTgyOTU3LDIuODM4Njg1NjUgQzE0LjQyMzE2MDUsMy4xMTQ2MTcwMSAxNC40MjMxODg5LDMuNTYxMzU3NDUgMTQuNjk4NDU1OCwzLjgzNzQyMTEyIEMxNS42MDIwNjAyLDQuNzQ0NzU1NjQgMTYuMDk5MzUxMSw1Ljk0OTM5NzE3IDE2LjA5OTM1MTEsNy4yMzEzMTAwMSBDMTYuMDk5MzUxMSw4LjUxMjg2MjYzIDE1LjYwMTc4MjYsOS43MTgxMzM4OSAxNC42OTgzOTMyLDEwLjYyNTAxMDEgQzE0LjQyMzE4OTYsMTAuOTAxMDEwMiAxNC40MjMxODY1LDExLjM0NzY4OTUgMTQuNjk4Mzc1OCwxMS42MjQwMTQ4IEMxNC44MzIxNjc4LDExLjc1ODAyOTIgMTUuMDExODg4NSwxMS44MzIzMjgxIDE1LjE5OTkxODcsMTEuODMyMzI4MSBDMTUuMzg4MjA3OCwxMS44MzIzMjgxIDE1LjU2ODI1NjEsMTEuNzU3ODQ4MyAxNS43MDEzNzE0LDExLjYyMzg1MzQgQzE2Ljg3MDYxMjEsMTAuNDQ5Nzg2MyAxNy41MTQ5NDc4LDguODg5MTEwMjEgMTcuNTE0OTQ3OCw3LjIzMTMxMDAxIEwxNy41MTQ5NDc4LDcuMjMxMzEwMDEgWiIgaWQ9IlNoYXBlIj48L3BhdGg+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==")
+ }
+
+ .oo-player-container .oo-control-bar .fandom-video-volume-icon:hover {
+ background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjE4cHgiIGhlaWdodD0iMTVweCIgdmlld0JveD0iMCAwIDE4IDE1IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCAzOS4xICgzMTcyMCkgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiAgICA8dGl0bGU+dm9sdW1lPC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+PC9kZWZzPgogICAgPGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9IlZpZGVvLVBsYXllci1Ta2luIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjkxLjAwMDAwMCwgLTYxMC4wMDAwMDApIiBmaWxsPSIjMmNkM2Y4Ij4KICAgICAgICAgICAgPGcgaWQ9IlZpZGVvLUNvcHkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI0OC4wMDAwMDAsIDI1OC4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxnIGlkPSJ2b2x1bWUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQzLjAwMDAwMCwgMzUyLjAwMDAwMCkiPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik04LjU5NTMxNDk0LDAuMTczMTY1OTI1IEw0Ljc0NDA4MjIxLDQuMzc0MDYyMTQgTDEuMDUzNzU2MTIsNC4zNzQwNjIxNCBDMC4yNjA4NDc2Nyw0LjM3NDA2MjE0IDAsNC44NDEzMzg1MyAwLDUuMjg2MzcwNjcgTDAsOC44ODU5MzU4MiBDMCw5LjMzMDk2Nzk1IDAuMjYwODQ3NjcsOS44OTIxNTYzIDEuMDUzNzU2MTIsOS44OTIxNTYzIEw0Ljc2MjE2NTI0LDkuODkyMTU2MyBMOC42MTI0OTM4MywxNC4xNTg5MjU5IEM4Ljc4MDIxMzksMTQuMjUzNTAwOCA4Ljk2NzM3MzIzLDE0LjMwNTQyODYgOS4xNTQ3NTg2LDE0LjMwNTQyODYgQzkuMzQxOTE3OTMsMTQuMzA1NDI4NiA5LjQ5NTYyMzY3LDE0LjI2MDEyOTggOS42NjMxMTc3MiwxNC4xNjUzMzQgQzkuOTk4NzgzODksMTMuOTc1OTYzMyAxMC4xNzE3MDI5LDEzLjYyODM3ODcgMTAuMTcxNzAyOSwxMy4yNDkxOTU0IEwxMC4xNzE3MDI5LDEuMDM1Mzg4MDggQzEwLjE3MTcwMjksMC42NTY0MjU3NDYgOS45OTg3ODM4OSwwLjMwNjQxMDM5MyA5LjY2MzExNzcyLDAuMTE3MDM5NzI2IEM5LjMyNzQ1MTUyLC0wLjA3MjMzMDk1OTggOC45MzEyMDcxOCwtMC4wMTYyMDQ3NjA1IDguNTk1MzE0OTQsMC4xNzMxNjU5MjUgTDguNTk1MzE0OTQsMC4xNzMxNjU5MjUgWiIgaWQ9IlNoYXBlIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTEzLjM5OTMwNjUsMTAuMzI2NDM4NSBDMTUuMDk5ODg4NSw4LjYxOTM2MjA3IDE1LjA5OTkxMDYsNS44NDMwMjg0OSAxMy4zOTk0NDY3LDQuMTM2MDcwNDcgQzEzLjEyMjYxMjUsMy44NTg0MzQ5MSAxMi42NzI4OTE2LDMuODU4NDM4NDkgMTIuMzk2MzgwOSw0LjEzNjA5MDYgQzEyLjEyMTE5MzIsNC40MTIwNzQ3NiAxMi4xMjExOTMyLDQuODU4NzU0MTMgMTIuMzk2MzgwOSw1LjEzNTA3NzgyIEMxMy41NDY5NjI5LDYuMjkwNDA5MzIgMTMuNTQ2OTYwOSw4LjE3MTk3NTY1IDEyLjM5NjM2NzYsOS4zMjc1NTU2MSBDMTIuMTIxMTcxNiw5LjYwMzU0ODA1IDEyLjEyMTE4ODIsMTAuMDUwMjg4NSAxMi4zOTY0NjEsMTAuMzI2MzU4MSBDMTIuNTI5ODg2MiwxMC40NjAzMzQxIDEyLjcwOTU4MDEsMTAuNTM0NTkxMSAxMi44OTc5MjM5LDEwLjUzNDU5MTEgQzEzLjA4NTkzNjgsMTAuNTM0NTkxMSAxMy4yNjU2NjI0LDEwLjQ2MDMwNDUgMTMuMzk5MzA2NSwxMC4zMjY0Mzg1IEwxMy4zOTkzMDY1LDEwLjMyNjQzODUgWiIgaWQ9IlNoYXBlIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTE3LjUxNDk0NzgsNy4yMzEzMTAwMSBDMTcuNTE0OTQ3OCw1LjU3MzIzODIxIDE2Ljg3MDU5NzYsNC4wMTI1NTk4NSAxNS43MDExOTY1LDIuODM4NTkwOCBDMTUuNDI0NzM5NCwyLjU2MDY1MDk5IDE0Ljk3NDgzMDQsMi41NjA2Njc5MSAxNC42OTgyOTU3LDIuODM4Njg1NjUgQzE0LjQyMzE2MDUsMy4xMTQ2MTcwMSAxNC40MjMxODg5LDMuNTYxMzU3NDUgMTQuNjk4NDU1OCwzLjgzNzQyMTEyIEMxNS42MDIwNjAyLDQuNzQ0NzU1NjQgMTYuMDk5MzUxMSw1Ljk0OTM5NzE3IDE2LjA5OTM1MTEsNy4yMzEzMTAwMSBDMTYuMDk5MzUxMSw4LjUxMjg2MjYzIDE1LjYwMTc4MjYsOS43MTgxMzM4OSAxNC42OTgzOTMyLDEwLjYyNTAxMDEgQzE0LjQyMzE4OTYsMTAuOTAxMDEwMiAxNC40MjMxODY1LDExLjM0NzY4OTUgMTQuNjk4Mzc1OCwxMS42MjQwMTQ4IEMxNC44MzIxNjc4LDExLjc1ODAyOTIgMTUuMDExODg4NSwxMS44MzIzMjgxIDE1LjE5OTkxODcsMTEuODMyMzI4MSBDMTUuMzg4MjA3OCwxMS44MzIzMjgxIDE1LjU2ODI1NjEsMTEuNzU3ODQ4MyAxNS43MDEzNzE0LDExLjYyMzg1MzQgQzE2Ljg3MDYxMjEsMTAuNDQ5Nzg2MyAxNy41MTQ5NDc4LDguODg5MTEwMjEgMTcuNTE0OTQ3OCw3LjIzMTMxMDAxIEwxNy41MTQ5NDc4LDcuMjMxMzEwMDEgWiIgaWQ9IlNoYXBlIj48L3BhdGg+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==")
+ }
+
+ .oo-player-container .oo-control-bar .fandom-video-volume-off-icon {
+ background: no-repeat center url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjExcHgiIGhlaWdodD0iMTVweCIgdmlld0JveD0iMCAwIDExIDE1IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCAzOS4xICgzMTcyMCkgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiAgICA8dGl0bGU+dm9sdW1lPC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+PC9kZWZzPgogICAgPGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9IlZpZGVvLVBsYXllci1Ta2luIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjkxLjAwMDAwMCwgLTU1OC4wMDAwMDApIiBmaWxsPSIjRkZGRkZGIj4KICAgICAgICAgICAgPGcgaWQ9IlZpZGVvLUNvcHkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI0OC4wMDAwMDAsIDI1OC4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxnIGlkPSJ2b2x1bWUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQzLjAwMDAwMCwgMzAwLjAwMDAwMCkiPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik04LjU5NTMxNDk0LDAuMTczMTY1OTI1IEw0Ljc0NDA4MjIxLDQuMzc0MDYyMTQgTDEuMDUzNzU2MTIsNC4zNzQwNjIxNCBDMC4yNjA4NDc2Nyw0LjM3NDA2MjE0IDAsNC44NDEzMzg1MyAwLDUuMjg2MzcwNjcgTDAsOC44ODU5MzU4MiBDMCw5LjMzMDk2Nzk1IDAuMjYwODQ3NjcsOS44OTIxNTYzIDEuMDUzNzU2MTIsOS44OTIxNTYzIEw0Ljc2MjE2NTI0LDkuODkyMTU2MyBMOC42MTI0OTM4MywxNC4xNTg5MjU5IEM4Ljc4MDIxMzksMTQuMjUzNTAwOCA4Ljk2NzM3MzIzLDE0LjMwNTQyODYgOS4xNTQ3NTg2LDE0LjMwNTQyODYgQzkuMzQxOTE3OTMsMTQuMzA1NDI4NiA5LjQ5NTYyMzY3LDE0LjI2MDEyOTggOS42NjMxMTc3MiwxNC4xNjUzMzQgQzkuOTk4NzgzODksMTMuOTc1OTYzMyAxMC4xNzE3MDI5LDEzLjYyODM3ODcgMTAuMTcxNzAyOSwxMy4yNDkxOTU0IEwxMC4xNzE3MDI5LDEuMDM1Mzg4MDggQzEwLjE3MTcwMjksMC42NTY0MjU3NDYgOS45OTg3ODM4OSwwLjMwNjQxMDM5MyA5LjY2MzExNzcyLDAuMTE3MDM5NzI2IEM5LjMyNzQ1MTUyLC0wLjA3MjMzMDk1OTggOC45MzEyMDcxOCwtMC4wMTYyMDQ3NjA1IDguNTk1MzE0OTQsMC4xNzMxNjU5MjUgTDguNTk1MzE0OTQsMC4xNzMxNjU5MjUgWiIgaWQ9IlNoYXBlIj48L3BhdGg+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==")
+ }
+
+ .oo-player-container .oo-control-bar .fandom-video-volume-off-icon:hover {
+ background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjExcHgiIGhlaWdodD0iMTVweCIgdmlld0JveD0iMCAwIDExIDE1IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCAzOS4xICgzMTcyMCkgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiAgICA8dGl0bGU+dm9sdW1lPC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+PC9kZWZzPgogICAgPGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9IlZpZGVvLVBsYXllci1Ta2luIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjkxLjAwMDAwMCwgLTU1OC4wMDAwMDApIiBmaWxsPSIjMmNkM2Y4Ij4KICAgICAgICAgICAgPGcgaWQ9IlZpZGVvLUNvcHkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI0OC4wMDAwMDAsIDI1OC4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxnIGlkPSJ2b2x1bWUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQzLjAwMDAwMCwgMzAwLjAwMDAwMCkiPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik04LjU5NTMxNDk0LDAuMTczMTY1OTI1IEw0Ljc0NDA4MjIxLDQuMzc0MDYyMTQgTDEuMDUzNzU2MTIsNC4zNzQwNjIxNCBDMC4yNjA4NDc2Nyw0LjM3NDA2MjE0IDAsNC44NDEzMzg1MyAwLDUuMjg2MzcwNjcgTDAsOC44ODU5MzU4MiBDMCw5LjMzMDk2Nzk1IDAuMjYwODQ3NjcsOS44OTIxNTYzIDEuMDUzNzU2MTIsOS44OTIxNTYzIEw0Ljc2MjE2NTI0LDkuODkyMTU2MyBMOC42MTI0OTM4MywxNC4xNTg5MjU5IEM4Ljc4MDIxMzksMTQuMjUzNTAwOCA4Ljk2NzM3MzIzLDE0LjMwNTQyODYgOS4xNTQ3NTg2LDE0LjMwNTQyODYgQzkuMzQxOTE3OTMsMTQuMzA1NDI4NiA5LjQ5NTYyMzY3LDE0LjI2MDEyOTggOS42NjMxMTc3MiwxNC4xNjUzMzQgQzkuOTk4NzgzODksMTMuOTc1OTYzMyAxMC4xNzE3MDI5LDEzLjYyODM3ODcgMTAuMTcxNzAyOSwxMy4yNDkxOTU0IEwxMC4xNzE3MDI5LDEuMDM1Mzg4MDggQzEwLjE3MTcwMjksMC42NTY0MjU3NDYgOS45OTg3ODM4OSwwLjMwNjQxMDM5MyA5LjY2MzExNzcyLDAuMTE3MDM5NzI2IEM5LjMyNzQ1MTUyLC0wLjA3MjMzMDk1OTggOC45MzEyMDcxOCwtMC4wMTYyMDQ3NjA1IDguNTk1MzE0OTQsMC4xNzMxNjU5MjUgTDguNTk1MzE0OTQsMC4xNzMxNjU5MjUgWiIgaWQ9IlNoYXBlIj48L3BhdGg+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==")
+ }
+
+ .oo-player-container .oo-control-bar .fandom-video-gear-icon {
+ background: no-repeat center url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjE1cHgiIGhlaWdodD0iMTVweCIgdmlld0JveD0iMCAwIDE1IDE1IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCAzOS4xICgzMTcyMCkgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiAgICA8dGl0bGU+U2hhcGU8L3RpdGxlPgogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CiAgICA8ZGVmcz48L2RlZnM+CiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8ZyBpZD0iVmlkZW8tUGxheWVyLVNraW4iIHRyYW5zZm9ybT0idHJhbnNsYXRlKC04NjkuMDAwMDAwLCAtNjEwLjAwMDAwMCkiIGZpbGw9IiNGRkZGRkYiPgogICAgICAgICAgICA8ZyBpZD0iVmlkZW8tQ29weSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjQ4LjAwMDAwMCwgMjU4LjAwMDAwMCkiPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTYyOS42OTI0OTIsMzUyLjE1ODExNyBDNjI5Ljc1NDgwNCwzNTIuNjQwNDc0IDYyOS44MzI2OTQsMzUzLjEwNzI3MiA2MjkuODk1MDA1LDM1My41NzQwNjkgQzYyOS44OTUwMDUsMzUzLjYyMDc0OSA2MjkuODk1MDA1LDM1My42NTE4NjkgNjI5LjkxMDU4MywzNTMuNjk4NTQ5IEM2MjkuOTU3MzE3LDM1My44NTQxNDggNjMwLjczNjIxNCwzNTQuMTE4NjY3IDYzMC44NzY0MTYsMzU0LjAwOTc0NyBDNjMxLjIxOTEzLDM1My43NjA3ODggNjMxLjU2MTg0NSwzNTMuNTExODMgNjMxLjg4ODk4MiwzNTMuMjQ3MzExIEM2MzIuMDEzNjA2LDM1My4xMzgzOTIgNjMyLjEwNzA3MywzNTMuMTY5NTExIDYzMi4yMTYxMTksMzUzLjI0NzMxMSBDNjMyLjk2Mzg2LDM1My43NjA3ODggNjMzLjU4Njk3OCwzNTQuMzk4NzQ1IDYzNC4xMDEwNSwzNTUuMTQ1NjIxIEM2MzQuMTc4OTQsMzU1LjI1NDU0MSA2MzQuMTc4OTQsMzU1LjMzMjM0IDYzNC4xMDEwNSwzNTUuNDQxMjYgQzYzMy44MzYyMjUsMzU1Ljc2ODAxOCA2MzMuNTg2OTc4LDM1Ni4xMjU4OTYgNjMzLjMzNzczMSwzNTYuNDUyNjU1IEM2MzMuMjU5ODQxLDM1Ni41NjE1NzQgNjMzLjIyODY4NSwzNTYuNjU0OTM0IDYzMy4zMDY1NzUsMzU2Ljc3OTQxMyBDNjMzLjM1MzMwOSwzNTYuODU3MjEzIDYzMy40MDAwNDIsMzU2LjkzNTAxMiA2MzMuNDE1NjIsMzU3LjAxMjgxMiBDNjMzLjQ3NzkzMiwzNTcuMzcwNjkgNjMzLjY5NjAyMywzNTcuNDc5NjEgNjM0LjAyMzE2LDM1Ny40OTUxNjkgQzYzNC4zNTAyOTcsMzU3LjUxMDcyOSA2MzQuNjc3NDM0LDM1Ny41ODg1MjkgNjM0Ljk4ODk5MywzNTcuNjE5NjQ5IEM2MzUuMTI5MTk0LDM1Ny42MzUyMDkgNjM1LjE3NTkyOCwzNTcuNjgxODg4IDYzNS4yMDcwODQsMzU3LjgwNjM2OCBDNjM1LjMzMTcwNywzNTguNDU5ODg1IDYzNS4zNjI4NjMsMzU5LjEyODk2MSA2MzUuMzAwNTUxLDM1OS43ODI0NzggQzYzNS4yODQ5NzMsMzYwLjAzMTQzNiA2MzUuMjM4MjQsMzYwLjI5NTk1NSA2MzUuMTkxNTA2LDM2MC41NDQ5MTQgQzYzNS4xNzU5MjgsMzYwLjYwNzE1NCA2MzUuMDk4MDM4LDM2MC42ODQ5NTMgNjM1LjAzNTcyNiwzNjAuNzAwNTEzIEM2MzQuNjE1MTIyLDM2MC43NzgzMTMgNjM0LjE3ODk0LDM2MC44NDA1NTIgNjMzLjc1ODMzNSwzNjAuODg3MjMyIEM2MzMuNjE4MTM0LDM2MC45MDI3OTIgNjMzLjU0MDI0NCwzNjAuOTQ5NDcyIDYzMy41MDkwODgsMzYxLjA4OTUxMSBDNjMzLjQ5MzUxLDM2MS4xNjczMTEgNjMzLjQ2MjM1NCwzNjEuMjYwNjcgNjMzLjQxNTYyLDM2MS4zMzg0NyBDNjMzLjE5NzUyOSwzNjEuNjM0MTA4IDYzMy4yOTA5OTcsMzYxLjg4MzA2NyA2MzMuNTI0NjY2LDM2Mi4xMzIwMjYgQzYzMy43NDI3NTcsMzYyLjM4MDk4NSA2MzMuOTI5NjkyLDM2Mi42NDU1MDMgNjM0LjExNjYyOCwzNjIuOTEwMDIyIEM2MzQuMTYzMzYyLDM2Mi45NzIyNjEgNjM0LjE2MzM2MiwzNjMuMTEyMzAxIDYzNC4xMzIyMDYsMzYzLjE3NDU0IEM2MzMuNjE4MTM0LDM2My45MzY5NzcgNjMyLjk3OTQzOCwzNjQuNTc0OTMzIDYzMi4yMTYxMTksMzY1LjEwMzk3MSBDNjMyLjEwNzA3MywzNjUuMTgxNzcgNjMyLjAyOTE4MywzNjUuMTY2MjEgNjMxLjkyMDEzOCwzNjUuMDg4NDExIEM2MzEuNTkzMDAxLDM2NC44MjM4OTIgNjMxLjIzNDcwOCwzNjQuNTc0OTMzIDYzMC45MDc1NzIsMzY0LjMyNTk3NSBDNjMwLjgxNDEwNCwzNjQuMjQ4MTc1IDYzMC43MjA2MzYsMzY0LjIxNzA1NSA2MzAuNjExNTkxLDM2NC4yOTQ4NTUgQzYzMC41MzM3MDEsMzY0LjM0MTUzNSA2MzAuNDQwMjMzLDM2NC4zODgyMTQgNjMwLjM0Njc2NiwzNjQuNDAzNzc0IEM2MjkuOTg4NDczLDM2NC40NjYwMTQgNjI5Ljg5NTAwNSwzNjQuNjk5NDEzIDYyOS44Nzk0MjcsMzY1LjAyNjE3MSBDNjI5Ljg2Mzg0OSwzNjUuMzUyOTI5IDYyOS44MDE1MzgsMzY1LjY5NTI0OCA2MjkuNzM5MjI2LDM2Ni4wMjIwMDYgQzYyOS43MjM2NDgsMzY2LjA4NDI0NiA2MjkuNjQ1NzU4LDM2Ni4xNzc2MDUgNjI5LjU2Nzg2OSwzNjYuMTkzMTY1IEM2MjguNjQ4NzcsMzY2LjM3OTg4NCA2MjcuNzQ1MjQ5LDM2Ni4zNzk4ODQgNjI2LjgyNjE1MSwzNjYuMjA4NzI1IEM2MjYuNzAxNTI3LDM2Ni4xOTMxNjUgNjI2LjY1NDc5MywzNjYuMTMwOTI1IDYyNi42MzkyMTUsMzY2LjAwNjQ0NiBDNjI2LjU5MjQ4MSwzNjUuNTg2MzI4IDYyNi41MTQ1OTIsMzY1LjE2NjIxIDYyNi40Njc4NTgsMzY0Ljc0NjA5MiBDNjI2LjQ1MjI4LDM2NC42MDYwNTMgNjI2LjQwNTU0NiwzNjQuNTI4MjU0IDYyNi4yNjUzNDUsMzY0LjQ5NzEzNCBDNjI2LjIwMzAzMywzNjQuNDgxNTc0IDYyNi4xMjUxNDMsMzY0LjQ1MDQ1NCA2MjYuMDYyODMxLDM2NC40MTkzMzQgQzYyNS43NTEyNzMsMzY0LjIwMTQ5NSA2MjUuNDg2NDQ4LDM2NC4yNjM3MzUgNjI1LjIwNjA0NSwzNjQuNTI4MjU0IEM2MjQuOTg3OTUzLDM2NC43NDYwOTIgNjI0LjcwNzU1LDM2NC45MDE2OTIgNjI0LjQ1ODMwMywzNjUuMTAzOTcxIEM2MjQuMzQ5MjU4LDM2NS4xOTczMyA2MjQuMjcxMzY4LDM2NS4xOTczMyA2MjQuMTYyMzIyLDM2NS4xMTk1MzEgQzYyMy4zOTkwMDMsMzY0LjU5MDQ5MyA2MjIuNzYwMzA4LDM2My45NTI1MzYgNjIyLjIzMDY1NywzNjMuMTkwMSBDNjIyLjE1Mjc2OCwzNjMuMDgxMTgxIDYyMi4xNjgzNDYsMzYzLjAwMzM4MSA2MjIuMjQ2MjM1LDM2Mi44OTQ0NjIgQzYyMi41MTEwNiwzNjIuNTY3NzA0IDYyMi43NjAzMDgsMzYyLjIwOTgyNSA2MjMuMDA5NTU1LDM2MS44ODMwNjcgQzYyMy4wODc0NDQsMzYxLjc4OTcwOCA2MjMuMTE4NiwzNjEuNjk2MzQ4IDYyMy4wNDA3MSwzNjEuNTg3NDI5IEM2MjIuOTkzOTc3LDM2MS41MjUxODkgNjIyLjk0NzI0MywzNjEuNDQ3Mzg5IDYyMi45NDcyNDMsMzYxLjM2OTU5IEM2MjIuODg0OTMxLDM2MC45NDk0NzIgNjIyLjYwNDUyOCwzNjAuODcxNjcyIDYyMi4yMzA2NTcsMzYwLjg0MDU1MiBDNjIxLjkxOTA5OSwzNjAuODI0OTkyIDYyMS42MDc1NCwzNjAuNzYyNzUzIDYyMS4zMTE1NTksMzYwLjcwMDUxMyBDNjIxLjI0OTI0NywzNjAuNjg0OTUzIDYyMS4xNTU3NzksMzYwLjU5MTU5NCA2MjEuMTQwMjAxLDM2MC41MjkzNTQgQzYyMC45NTMyNjYsMzU5LjYxMTMxOSA2MjAuOTUzMjY2LDM1OC43MDg4NDMgNjIxLjE0MDIwMSwzNTcuNzkwODA4IEM2MjEuMTU1Nzc5LDM1Ny43Mjg1NjggNjIxLjI0OTI0NywzNTcuNjM1MjA5IDYyMS4zMTE1NTksMzU3LjYzNTIwOSBDNjIxLjc0Nzc0MSwzNTcuNTU3NDA5IDYyMi4xODM5MjQsMzU3LjUxMDcyOSA2MjIuNjIwMTA2LDM1Ny40MzI5MyBDNjIyLjY5Nzk5NiwzNTcuNDE3MzcgNjIyLjc2MDMwOCwzNTcuMzM5NTcgNjIyLjgyMjYxOSwzNTcuMjc3MzMxIEM2MjIuODM4MTk3LDM1Ny4yNjE3NzEgNjIyLjgzODE5NywzNTcuMjE1MDkxIDYyMi44NTM3NzUsMzU3LjE4Mzk3MSBDNjIzLjE2NTMzNCwzNTYuNzQ4MjkzIDYyMy4wNDA3MSwzNTYuMzc0ODU1IDYyMi42OTc5OTYsMzU2LjAxNjk3NyBDNjIyLjUyNjYzOCwzNTUuODMwMjU4IDYyMi4zNzA4NTksMzU1LjYxMjQxOSA2MjIuMjMwNjU3LDM1NS40MTAxNCBDNjIyLjE4MzkyNCwzNTUuMzQ3OSA2MjIuMTgzOTI0LDM1NS4yMjM0MjEgNjIyLjIxNTA4LDM1NS4xNjExODEgQzYyMi43MjkxNTIsMzU0LjM4MzE4NSA2MjMuMzgzNDI1LDM1My43NDUyMjkgNjI0LjE0Njc0NCwzNTMuMjE2MTkxIEM2MjQuMjU1NzksMzUzLjEzODM5MiA2MjQuMzE4MTAyLDM1My4xNTM5NTIgNjI0LjQxMTU2OSwzNTMuMjMxNzUxIEM2MjQuNzM4NzA2LDM1My40OTYyNyA2MjUuMDk2OTk5LDM1My43NDUyMjkgNjI1LjQyNDEzNiwzNTMuOTk0MTg3IEM2MjUuNTMzMTgxLDM1NC4wNzE5ODcgNjI1LjYyNjY0OSwzNTQuMTAzMTA3IDYyNS43MzU2OTUsMzU0LjAyNTMwNyBDNjI1LjgxMzU4NCwzNTMuOTc4NjI3IDYyNS45MDcwNTIsMzUzLjkzMTk0OCA2MjYuMDAwNTIsMzUzLjkxNjM4OCBDNjI2LjM1ODgxMiwzNTMuODU0MTQ4IDYyNi40MzY3MDIsMzUzLjYyMDc0OSA2MjYuNDUyMjgsMzUzLjMwOTU1MSBDNjI2LjQ2Nzg1OCwzNTIuOTgyNzkyIDYyNi41NDU3NDgsMzUyLjY1NjAzNCA2MjYuNTc2OTAzLDM1Mi4zMjkyNzYgQzYyNi41OTI0ODEsMzUyLjE3MzY3NyA2MjYuNjU0NzkzLDM1Mi4xMjY5OTcgNjI2Ljc5NDk5NSwzNTIuMTExNDM3IEM2MjcuNzc2NDA1LDM1MS45NTU4MzggNjI4LjcyNjY2LDM1MS45NTU4MzggNjI5LjY5MjQ5MiwzNTIuMTU4MTE3IEw2MjkuNjkyNDkyLDM1Mi4xNTgxMTcgWiBNNjI1LjUxNzYwMywzNTkuMDk3ODQxIEM2MjUuNTAyMDI1LDM2MC41NDQ5MTQgNjI2LjY4NTk0OSwzNjEuNzExOTA4IDYyOC4xMzQ2OTgsMzYxLjcyNzQ2OCBDNjI5LjU2Nzg2OSwzNjEuNzI3NDY4IDYzMC43NjczNywzNjAuNTQ0OTE0IDYzMC43NjczNywzNTkuMTEzNDAxIEM2MzAuNzY3MzcsMzU3LjY4MTg4OCA2MjkuNTgzNDQ2LDM1Ni41MTQ4OTQgNjI4LjE1MDI3NiwzNTYuNDk5MzM1IEM2MjYuNzAxNTI3LDM1Ni40ODM3NzUgNjI1LjUxNzYwMywzNTcuNjUwNzY5IDYyNS41MTc2MDMsMzU5LjA5Nzg0MSBMNjI1LjUxNzYwMywzNTkuMDk3ODQxIFoiIGlkPSJTaGFwZSI+PC9wYXRoPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4=")
+ }
+
+ .oo-player-container .oo-control-bar .fandom-video-gear-icon:hover {
+ background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjE1cHgiIGhlaWdodD0iMTVweCIgdmlld0JveD0iMCAwIDE1IDE1IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCAzOS4xICgzMTcyMCkgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiAgICA8dGl0bGU+U2hhcGU8L3RpdGxlPgogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CiAgICA8ZGVmcz48L2RlZnM+CiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8ZyBpZD0iVmlkZW8tUGxheWVyLVNraW4iIHRyYW5zZm9ybT0idHJhbnNsYXRlKC04NjkuMDAwMDAwLCAtNjEwLjAwMDAwMCkiIGZpbGw9IiMyY2QzZjgiPgogICAgICAgICAgICA8ZyBpZD0iVmlkZW8tQ29weSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjQ4LjAwMDAwMCwgMjU4LjAwMDAwMCkiPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTYyOS42OTI0OTIsMzUyLjE1ODExNyBDNjI5Ljc1NDgwNCwzNTIuNjQwNDc0IDYyOS44MzI2OTQsMzUzLjEwNzI3MiA2MjkuODk1MDA1LDM1My41NzQwNjkgQzYyOS44OTUwMDUsMzUzLjYyMDc0OSA2MjkuODk1MDA1LDM1My42NTE4NjkgNjI5LjkxMDU4MywzNTMuNjk4NTQ5IEM2MjkuOTU3MzE3LDM1My44NTQxNDggNjMwLjczNjIxNCwzNTQuMTE4NjY3IDYzMC44NzY0MTYsMzU0LjAwOTc0NyBDNjMxLjIxOTEzLDM1My43NjA3ODggNjMxLjU2MTg0NSwzNTMuNTExODMgNjMxLjg4ODk4MiwzNTMuMjQ3MzExIEM2MzIuMDEzNjA2LDM1My4xMzgzOTIgNjMyLjEwNzA3MywzNTMuMTY5NTExIDYzMi4yMTYxMTksMzUzLjI0NzMxMSBDNjMyLjk2Mzg2LDM1My43NjA3ODggNjMzLjU4Njk3OCwzNTQuMzk4NzQ1IDYzNC4xMDEwNSwzNTUuMTQ1NjIxIEM2MzQuMTc4OTQsMzU1LjI1NDU0MSA2MzQuMTc4OTQsMzU1LjMzMjM0IDYzNC4xMDEwNSwzNTUuNDQxMjYgQzYzMy44MzYyMjUsMzU1Ljc2ODAxOCA2MzMuNTg2OTc4LDM1Ni4xMjU4OTYgNjMzLjMzNzczMSwzNTYuNDUyNjU1IEM2MzMuMjU5ODQxLDM1Ni41NjE1NzQgNjMzLjIyODY4NSwzNTYuNjU0OTM0IDYzMy4zMDY1NzUsMzU2Ljc3OTQxMyBDNjMzLjM1MzMwOSwzNTYuODU3MjEzIDYzMy40MDAwNDIsMzU2LjkzNTAxMiA2MzMuNDE1NjIsMzU3LjAxMjgxMiBDNjMzLjQ3NzkzMiwzNTcuMzcwNjkgNjMzLjY5NjAyMywzNTcuNDc5NjEgNjM0LjAyMzE2LDM1Ny40OTUxNjkgQzYzNC4zNTAyOTcsMzU3LjUxMDcyOSA2MzQuNjc3NDM0LDM1Ny41ODg1MjkgNjM0Ljk4ODk5MywzNTcuNjE5NjQ5IEM2MzUuMTI5MTk0LDM1Ny42MzUyMDkgNjM1LjE3NTkyOCwzNTcuNjgxODg4IDYzNS4yMDcwODQsMzU3LjgwNjM2OCBDNjM1LjMzMTcwNywzNTguNDU5ODg1IDYzNS4zNjI4NjMsMzU5LjEyODk2MSA2MzUuMzAwNTUxLDM1OS43ODI0NzggQzYzNS4yODQ5NzMsMzYwLjAzMTQzNiA2MzUuMjM4MjQsMzYwLjI5NTk1NSA2MzUuMTkxNTA2LDM2MC41NDQ5MTQgQzYzNS4xNzU5MjgsMzYwLjYwNzE1NCA2MzUuMDk4MDM4LDM2MC42ODQ5NTMgNjM1LjAzNTcyNiwzNjAuNzAwNTEzIEM2MzQuNjE1MTIyLDM2MC43NzgzMTMgNjM0LjE3ODk0LDM2MC44NDA1NTIgNjMzLjc1ODMzNSwzNjAuODg3MjMyIEM2MzMuNjE4MTM0LDM2MC45MDI3OTIgNjMzLjU0MDI0NCwzNjAuOTQ5NDcyIDYzMy41MDkwODgsMzYxLjA4OTUxMSBDNjMzLjQ5MzUxLDM2MS4xNjczMTEgNjMzLjQ2MjM1NCwzNjEuMjYwNjcgNjMzLjQxNTYyLDM2MS4zMzg0NyBDNjMzLjE5NzUyOSwzNjEuNjM0MTA4IDYzMy4yOTA5OTcsMzYxLjg4MzA2NyA2MzMuNTI0NjY2LDM2Mi4xMzIwMjYgQzYzMy43NDI3NTcsMzYyLjM4MDk4NSA2MzMuOTI5NjkyLDM2Mi42NDU1MDMgNjM0LjExNjYyOCwzNjIuOTEwMDIyIEM2MzQuMTYzMzYyLDM2Mi45NzIyNjEgNjM0LjE2MzM2MiwzNjMuMTEyMzAxIDYzNC4xMzIyMDYsMzYzLjE3NDU0IEM2MzMuNjE4MTM0LDM2My45MzY5NzcgNjMyLjk3OTQzOCwzNjQuNTc0OTMzIDYzMi4yMTYxMTksMzY1LjEwMzk3MSBDNjMyLjEwNzA3MywzNjUuMTgxNzcgNjMyLjAyOTE4MywzNjUuMTY2MjEgNjMxLjkyMDEzOCwzNjUuMDg4NDExIEM2MzEuNTkzMDAxLDM2NC44MjM4OTIgNjMxLjIzNDcwOCwzNjQuNTc0OTMzIDYzMC45MDc1NzIsMzY0LjMyNTk3NSBDNjMwLjgxNDEwNCwzNjQuMjQ4MTc1IDYzMC43MjA2MzYsMzY0LjIxNzA1NSA2MzAuNjExNTkxLDM2NC4yOTQ4NTUgQzYzMC41MzM3MDEsMzY0LjM0MTUzNSA2MzAuNDQwMjMzLDM2NC4zODgyMTQgNjMwLjM0Njc2NiwzNjQuNDAzNzc0IEM2MjkuOTg4NDczLDM2NC40NjYwMTQgNjI5Ljg5NTAwNSwzNjQuNjk5NDEzIDYyOS44Nzk0MjcsMzY1LjAyNjE3MSBDNjI5Ljg2Mzg0OSwzNjUuMzUyOTI5IDYyOS44MDE1MzgsMzY1LjY5NTI0OCA2MjkuNzM5MjI2LDM2Ni4wMjIwMDYgQzYyOS43MjM2NDgsMzY2LjA4NDI0NiA2MjkuNjQ1NzU4LDM2Ni4xNzc2MDUgNjI5LjU2Nzg2OSwzNjYuMTkzMTY1IEM2MjguNjQ4NzcsMzY2LjM3OTg4NCA2MjcuNzQ1MjQ5LDM2Ni4zNzk4ODQgNjI2LjgyNjE1MSwzNjYuMjA4NzI1IEM2MjYuNzAxNTI3LDM2Ni4xOTMxNjUgNjI2LjY1NDc5MywzNjYuMTMwOTI1IDYyNi42MzkyMTUsMzY2LjAwNjQ0NiBDNjI2LjU5MjQ4MSwzNjUuNTg2MzI4IDYyNi41MTQ1OTIsMzY1LjE2NjIxIDYyNi40Njc4NTgsMzY0Ljc0NjA5MiBDNjI2LjQ1MjI4LDM2NC42MDYwNTMgNjI2LjQwNTU0NiwzNjQuNTI4MjU0IDYyNi4yNjUzNDUsMzY0LjQ5NzEzNCBDNjI2LjIwMzAzMywzNjQuNDgxNTc0IDYyNi4xMjUxNDMsMzY0LjQ1MDQ1NCA2MjYuMDYyODMxLDM2NC40MTkzMzQgQzYyNS43NTEyNzMsMzY0LjIwMTQ5NSA2MjUuNDg2NDQ4LDM2NC4yNjM3MzUgNjI1LjIwNjA0NSwzNjQuNTI4MjU0IEM2MjQuOTg3OTUzLDM2NC43NDYwOTIgNjI0LjcwNzU1LDM2NC45MDE2OTIgNjI0LjQ1ODMwMywzNjUuMTAzOTcxIEM2MjQuMzQ5MjU4LDM2NS4xOTczMyA2MjQuMjcxMzY4LDM2NS4xOTczMyA2MjQuMTYyMzIyLDM2NS4xMTk1MzEgQzYyMy4zOTkwMDMsMzY0LjU5MDQ5MyA2MjIuNzYwMzA4LDM2My45NTI1MzYgNjIyLjIzMDY1NywzNjMuMTkwMSBDNjIyLjE1Mjc2OCwzNjMuMDgxMTgxIDYyMi4xNjgzNDYsMzYzLjAwMzM4MSA2MjIuMjQ2MjM1LDM2Mi44OTQ0NjIgQzYyMi41MTEwNiwzNjIuNTY3NzA0IDYyMi43NjAzMDgsMzYyLjIwOTgyNSA2MjMuMDA5NTU1LDM2MS44ODMwNjcgQzYyMy4wODc0NDQsMzYxLjc4OTcwOCA2MjMuMTE4NiwzNjEuNjk2MzQ4IDYyMy4wNDA3MSwzNjEuNTg3NDI5IEM2MjIuOTkzOTc3LDM2MS41MjUxODkgNjIyLjk0NzI0MywzNjEuNDQ3Mzg5IDYyMi45NDcyNDMsMzYxLjM2OTU5IEM2MjIuODg0OTMxLDM2MC45NDk0NzIgNjIyLjYwNDUyOCwzNjAuODcxNjcyIDYyMi4yMzA2NTcsMzYwLjg0MDU1MiBDNjIxLjkxOTA5OSwzNjAuODI0OTkyIDYyMS42MDc1NCwzNjAuNzYyNzUzIDYyMS4zMTE1NTksMzYwLjcwMDUxMyBDNjIxLjI0OTI0NywzNjAuNjg0OTUzIDYyMS4xNTU3NzksMzYwLjU5MTU5NCA2MjEuMTQwMjAxLDM2MC41MjkzNTQgQzYyMC45NTMyNjYsMzU5LjYxMTMxOSA2MjAuOTUzMjY2LDM1OC43MDg4NDMgNjIxLjE0MDIwMSwzNTcuNzkwODA4IEM2MjEuMTU1Nzc5LDM1Ny43Mjg1NjggNjIxLjI0OTI0NywzNTcuNjM1MjA5IDYyMS4zMTE1NTksMzU3LjYzNTIwOSBDNjIxLjc0Nzc0MSwzNTcuNTU3NDA5IDYyMi4xODM5MjQsMzU3LjUxMDcyOSA2MjIuNjIwMTA2LDM1Ny40MzI5MyBDNjIyLjY5Nzk5NiwzNTcuNDE3MzcgNjIyLjc2MDMwOCwzNTcuMzM5NTcgNjIyLjgyMjYxOSwzNTcuMjc3MzMxIEM2MjIuODM4MTk3LDM1Ny4yNjE3NzEgNjIyLjgzODE5NywzNTcuMjE1MDkxIDYyMi44NTM3NzUsMzU3LjE4Mzk3MSBDNjIzLjE2NTMzNCwzNTYuNzQ4MjkzIDYyMy4wNDA3MSwzNTYuMzc0ODU1IDYyMi42OTc5OTYsMzU2LjAxNjk3NyBDNjIyLjUyNjYzOCwzNTUuODMwMjU4IDYyMi4zNzA4NTksMzU1LjYxMjQxOSA2MjIuMjMwNjU3LDM1NS40MTAxNCBDNjIyLjE4MzkyNCwzNTUuMzQ3OSA2MjIuMTgzOTI0LDM1NS4yMjM0MjEgNjIyLjIxNTA4LDM1NS4xNjExODEgQzYyMi43MjkxNTIsMzU0LjM4MzE4NSA2MjMuMzgzNDI1LDM1My43NDUyMjkgNjI0LjE0Njc0NCwzNTMuMjE2MTkxIEM2MjQuMjU1NzksMzUzLjEzODM5MiA2MjQuMzE4MTAyLDM1My4xNTM5NTIgNjI0LjQxMTU2OSwzNTMuMjMxNzUxIEM2MjQuNzM4NzA2LDM1My40OTYyNyA2MjUuMDk2OTk5LDM1My43NDUyMjkgNjI1LjQyNDEzNiwzNTMuOTk0MTg3IEM2MjUuNTMzMTgxLDM1NC4wNzE5ODcgNjI1LjYyNjY0OSwzNTQuMTAzMTA3IDYyNS43MzU2OTUsMzU0LjAyNTMwNyBDNjI1LjgxMzU4NCwzNTMuOTc4NjI3IDYyNS45MDcwNTIsMzUzLjkzMTk0OCA2MjYuMDAwNTIsMzUzLjkxNjM4OCBDNjI2LjM1ODgxMiwzNTMuODU0MTQ4IDYyNi40MzY3MDIsMzUzLjYyMDc0OSA2MjYuNDUyMjgsMzUzLjMwOTU1MSBDNjI2LjQ2Nzg1OCwzNTIuOTgyNzkyIDYyNi41NDU3NDgsMzUyLjY1NjAzNCA2MjYuNTc2OTAzLDM1Mi4zMjkyNzYgQzYyNi41OTI0ODEsMzUyLjE3MzY3NyA2MjYuNjU0NzkzLDM1Mi4xMjY5OTcgNjI2Ljc5NDk5NSwzNTIuMTExNDM3IEM2MjcuNzc2NDA1LDM1MS45NTU4MzggNjI4LjcyNjY2LDM1MS45NTU4MzggNjI5LjY5MjQ5MiwzNTIuMTU4MTE3IEw2MjkuNjkyNDkyLDM1Mi4xNTgxMTcgWiBNNjI1LjUxNzYwMywzNTkuMDk3ODQxIEM2MjUuNTAyMDI1LDM2MC41NDQ5MTQgNjI2LjY4NTk0OSwzNjEuNzExOTA4IDYyOC4xMzQ2OTgsMzYxLjcyNzQ2OCBDNjI5LjU2Nzg2OSwzNjEuNzI3NDY4IDYzMC43NjczNywzNjAuNTQ0OTE0IDYzMC43NjczNywzNTkuMTEzNDAxIEM2MzAuNzY3MzcsMzU3LjY4MTg4OCA2MjkuNTgzNDQ2LDM1Ni41MTQ4OTQgNjI4LjE1MDI3NiwzNTYuNDk5MzM1IEM2MjYuNzAxNTI3LDM1Ni40ODM3NzUgNjI1LjUxNzYwMywzNTcuNjUwNzY5IDYyNS41MTc2MDMsMzU5LjA5Nzg0MSBMNjI1LjUxNzYwMywzNTkuMDk3ODQxIFoiIGlkPSJTaGFwZSI+PC9wYXRoPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4=")
+ }
+
+ .oo-player-container .oo-control-bar .fandom-video-full-screen-icon {
+ background: no-repeat center url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjE4cHgiIGhlaWdodD0iMTVweCIgdmlld0JveD0iMCAwIDE4IDE1IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCAzOS4xICgzMTcyMCkgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiAgICA8dGl0bGU+ZnVsbHNjcmVlbjwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxkZWZzPjwvZGVmcz4KICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJWaWRlby1QbGF5ZXItU2tpbiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTg5NS4wMDAwMDAsIC02MTAuMDAwMDAwKSIgZmlsbD0iI0ZGRkZGRiI+CiAgICAgICAgICAgIDxnIGlkPSJWaWRlby1Db3B5IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNDguMDAwMDAwLCAyNTguMDAwMDAwKSI+CiAgICAgICAgICAgICAgICA8ZyBpZD0iZnVsbHNjcmVlbiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjQ3LjkyNjgyOSwgMzUyLjY3MzIzNykiPgogICAgICAgICAgICAgICAgICAgIDxnIGlkPSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwb2x5Z29uIGlkPSJTaGFwZSIgcG9pbnRzPSIxNi41MzY1ODU0IDUuMTg4NDc1NjggMTQuMjQ0OTQ1NCA1LjE4ODQ3NTY4IDE0LjI0NDk0NTQgMi4zMzM4NzA5NCAxMS40NDE5OTQxIDIuMzMzODcwOTQgMTEuNDQxOTk0MSAwIDE2LjUzNjU4NTQgMCI+PC9wb2x5Z29uPgogICAgICAgICAgICAgICAgICAgICAgICA8cG9seWdvbiBpZD0iU2hhcGUiIHBvaW50cz0iMTYuNTM2NTg1NCAxNC4xNzMxNTQ2IDExLjQ0MTk5NDEgMTQuMTczMTU0NiAxMS40NDE5OTQxIDExLjgzOTQ1MjEgMTQuMjQ0OTQ1NCAxMS44Mzk0NTIxIDE0LjI0NDk0NTQgOC45ODQ1MTA1MyAxNi41MzY1ODU0IDguOTg0NTEwNTMiPjwvcG9seWdvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHBvbHlnb24gaWQ9IlNoYXBlIiBwb2ludHM9IjUuMDk0NzU2NTkgMTQuMTcyOTg2MiAwIDE0LjE3Mjk4NjIgMCA4Ljk4NDUxMDUzIDIuMjkxNjQgOC45ODQ1MTA1MyAyLjI5MTY0IDExLjgzOTI4MzcgNS4wOTQ3NTY1OSAxMS44MzkyODM3Ij48L3BvbHlnb24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwb2x5Z29uIGlkPSJTaGFwZSIgcG9pbnRzPSIyLjI5MTY0IDUuMTg4NDc1NjggMCA1LjE4ODQ3NTY4IDAgMCA1LjA5NDc1NjU5IDAgNS4wOTQ3NTY1OSAyLjMzMzg3MDk0IDIuMjkxNjQgMi4zMzM4NzA5NCI+PC9wb2x5Z29uPgogICAgICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+")
+ }
+
+ .oo-player-container .oo-control-bar .fandom-video-full-screen-icon:hover {
+ background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjE4cHgiIGhlaWdodD0iMTVweCIgdmlld0JveD0iMCAwIDE4IDE1IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCAzOS4xICgzMTcyMCkgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiAgICA8dGl0bGU+ZnVsbHNjcmVlbjwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxkZWZzPjwvZGVmcz4KICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJWaWRlby1QbGF5ZXItU2tpbiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTg5NS4wMDAwMDAsIC02MTAuMDAwMDAwKSIgZmlsbD0iIzJjZDNmOCI+CiAgICAgICAgICAgIDxnIGlkPSJWaWRlby1Db3B5IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNDguMDAwMDAwLCAyNTguMDAwMDAwKSI+CiAgICAgICAgICAgICAgICA8ZyBpZD0iZnVsbHNjcmVlbiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjQ3LjkyNjgyOSwgMzUyLjY3MzIzNykiPgogICAgICAgICAgICAgICAgICAgIDxnIGlkPSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwb2x5Z29uIGlkPSJTaGFwZSIgcG9pbnRzPSIxNi41MzY1ODU0IDUuMTg4NDc1NjggMTQuMjQ0OTQ1NCA1LjE4ODQ3NTY4IDE0LjI0NDk0NTQgMi4zMzM4NzA5NCAxMS40NDE5OTQxIDIuMzMzODcwOTQgMTEuNDQxOTk0MSAwIDE2LjUzNjU4NTQgMCI+PC9wb2x5Z29uPgogICAgICAgICAgICAgICAgICAgICAgICA8cG9seWdvbiBpZD0iU2hhcGUiIHBvaW50cz0iMTYuNTM2NTg1NCAxNC4xNzMxNTQ2IDExLjQ0MTk5NDEgMTQuMTczMTU0NiAxMS40NDE5OTQxIDExLjgzOTQ1MjEgMTQuMjQ0OTQ1NCAxMS44Mzk0NTIxIDE0LjI0NDk0NTQgOC45ODQ1MTA1MyAxNi41MzY1ODU0IDguOTg0NTEwNTMiPjwvcG9seWdvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHBvbHlnb24gaWQ9IlNoYXBlIiBwb2ludHM9IjUuMDk0NzU2NTkgMTQuMTcyOTg2MiAwIDE0LjE3Mjk4NjIgMCA4Ljk4NDUxMDUzIDIuMjkxNjQgOC45ODQ1MTA1MyAyLjI5MTY0IDExLjgzOTI4MzcgNS4wOTQ3NTY1OSAxMS44MzkyODM3Ij48L3BvbHlnb24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwb2x5Z29uIGlkPSJTaGFwZSIgcG9pbnRzPSIyLjI5MTY0IDUuMTg4NDc1NjggMCA1LjE4ODQ3NTY4IDAgMCA1LjA5NDc1NjU5IDAgNS4wOTQ3NTY1OSAyLjMzMzg3MDk0IDIuMjkxNjQgMi4zMzM4NzA5NCI+PC9wb2x5Z29uPgogICAgICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+")
+ }
+
+ .oo-player-container .age-gate {
+ background: #1a1a1a;
+ color: #fff;
+ display: none;
+ height: 100%;
+ position: absolute;
+ width: 100%;
+ z-index: 100000
+ }
+
+ .oo-player-container .age-gate .inner-element {
+ height: 165px;
+ left: 50%;
+ margin: auto;
+ position: absolute;
+ top: 50%;
+ -webkit-transform: translate(-50%, -50%);
+ transform: translate(-50%, -50%);
+ width: 415px
+ }
+
+ .oo-player-container .age-gate .inner-element.failed {
+ display: none
+ }
+
+ .oo-player-container .age-gate .inner-element.failed .verbiage {
+ margin-top: 50px
+ }
+
+ .oo-player-container .age-gate .inner-element .title {
+ font-size: 1.5rem;
+ font-weight: bold;
+ line-height: 1.5rem;
+ margin-bottom: 10px;
+ text-align: center
+ }
+
+ .oo-player-container .age-gate .inner-element .age-requirement {
+ font-weight: bold
+ }
+
+ .oo-player-container .age-gate .inner-element .verbiage {
+ font-size: 1rem;
+ line-height: 1.25rem;
+ text-align: center
+ }
+
+ .oo-player-container .age-gate .inner-element form {
+ height: 45px;
+ position: relative;
+ margin-top: 34px
+ }
+
+ .oo-player-container .age-gate .inner-element select {
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+ background-color: #1a1a1a;
+ border: none;
+ color: #fff;
+ cursor: pointer;
+ font-size: 1rem;
+ height: 25px;
+ width: 130px
+ }
+
+ .oo-player-container .age-gate .inner-element select:focus {
+ outline: none
+ }
+
+ .oo-player-container .age-gate .inner-element .month,
+ .oo-player-container .age-gate .inner-element .year {
+ border-bottom: 1px solid #fff;
+ display: inline-block;
+ margin-right: 22px;
+ width: 130px
+ }
+
+ .oo-player-container .age-gate .inner-element button {
+ background-color: #00b7e0;
+ border-width: 0px;
+ color: #fff;
+ display: inline-block;
+ font-size: .75rem;
+ font-weight: bold;
+ height: 45px;
+ padding: 0;
+ text-align: center;
+ text-transform: uppercase;
+ -webkit-transform: translateY(-10px);
+ transform: translateY(-10px);
+ width: 99px
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .oo-player-container .age-gate .inner-element {
+ min-width: 280px;
+ text-align: center;
+ width: 90%
+ }
+ .oo-player-container .age-gate .inner-element button {
+ display: block;
+ margin: auto;
+ -webkit-transform: translateY(16px);
+ transform: translateY(16px)
+ }
+ .oo-player-container .age-gate .inner-element form {
+ margin-left: -10px;
+ margin-top: 14px
+ }
+ .oo-player-container .age-gate .inner-element select {
+ width: 126px
+ }
+ .oo-player-container .age-gate .inner-element .title {
+ font-size: 1.125rem;
+ margin: 5px 0;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap
+ }
+ .oo-player-container .age-gate .inner-element .verbiage {
+ font-size: .75rem;
+ line-height: .9375rem
+ }
+ .oo-player-container .age-gate .inner-element .month,
+ .oo-player-container .age-gate .inner-element .year {
+ width: 126px
+ }
+ .oo-player-container .age-gate .inner-element .month {
+ margin-right: 17px
+ }
+ .oo-player-container .age-gate .inner-element .year {
+ margin-right: 0
+ }
+ }
+
+ .wikia-explanation {
+ background-color: #39424d;
+ color: #fff;
+ text-align: center;
+ padding: 33px 15px;
+ margin-bottom: 0
+ }
+
+ .wikia-explanation h2 {
+ font-weight: bolder;
+ letter-spacing: -1px
+ }
+
+ .wikia-explanation .gray-text {
+ color: #c5ced9
+ }
+
+ .wikia-explanation svg {
+ display: block;
+ margin: auto;
+ width: 40%
+ }
+
+ .wikia-explanation svg.icon-create {
+ fill: #94d11f
+ }
+
+ .wikia-explanation svg.icon-edit {
+ fill: #09d3bf
+ }
+
+ .wikia-explanation svg.icon-share {
+ fill: #00b7e0
+ }
+
+ .wikia-explanation p {
+ font-weight: bold;
+ text-transform: uppercase
+ }
+
+ .wikia-explanation p.move-up {
+ margin-top: -16px
+ }
+
+ .wikia-explanation .css-circle {
+ border: 4px solid #656e78;
+ margin: 0 auto 30px auto;
+ border-radius: 50px;
+ width: 97px;
+ height: 97px
+ }
+
+ .wikia-explanation .css-circle svg {
+ margin-top: 15px
+ }
+
+ .wikia-explanation .top-margin {
+ margin-top: 30px
+ }
+
+ .wikia-explanation a {
+ display: inline-block;
+ background: #4a90e2;
+ border: none;
+ color: #fff;
+ font-weight: bold;
+ line-height: 1.125rem;
+ padding: 18px 35px;
+ text-transform: uppercase
+ }
+
+ .wikia-explanation hr {
+ border: none;
+ height: 4px;
+ background-color: #656e78
+ }
+
+ .wikia-explanation .center-the-lis {
+ position: relative;
+ margin-top: 20px
+ }
+
+ .wikia-explanation .vertical-align {
+ position: relative;
+ top: 30px;
+ height: 20px
+ }
+
+ .wikia-explanation .remove-padding-left-right {
+ padding-left: 0;
+ padding-right: 0
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .wikia-explanation {
+ padding: 33px 15px 60px 15px
+ }
+ .wikia-explanation .css-circle {
+ border-radius: 85px;
+ width: 161px;
+ height: 161px
+ }
+ .wikia-explanation .css-circle svg {
+ margin-top: 45px
+ }
+ .wikia-explanation .explore-title {
+ font-size: 2.25rem;
+ line-height: 2.6875rem
+ }
+ .wikia-explanation .push-left {
+ display: inline-block;
+ float: left
+ }
+ .wikia-explanation .push-left p {
+ text-align: center
+ }
+ .wikia-explanation .top-bottom-space {
+ padding-top: 10px;
+ padding-bottom: 10px
+ }
+ .wikia-explanation .push-right {
+ display: inline-block;
+ float: right
+ }
+ .wikia-explanation .push-right p {
+ text-align: center
+ }
+ .wikia-explanation .remove-padding-left {
+ padding-left: 0
+ }
+ .wikia-explanation .remove-padding-right {
+ padding-right: 0
+ }
+ }
+
+ .wikia-search {
+ -webkit-align-items: center;
+ -ms-flex-align: center;
+ align-items: center;
+ background-color: #f6f6f6;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: column;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ height: 70px;
+ -webkit-justify-content: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ margin-bottom: 5px
+ }
+
+ .wikia-search .search-box-container {
+ height: 46px;
+ position: relative;
+ width: auto
+ }
+
+ .wikia-search .search-box-container input {
+ border-color: #39424d;
+ border-width: 1px;
+ box-sizing: border-box;
+ color: #656e78;
+ font-size: 1rem;
+ font-weight: 500;
+ height: 46px;
+ padding-left: 40px;
+ width: 300px
+ }
+
+ .wikia-search .search-box-container .icon-search {
+ fill: #656e78;
+ height: 24px;
+ margin-left: 11px;
+ position: absolute;
+ top: 50%;
+ -webkit-transform: translateY(-40%);
+ transform: translateY(-40%);
+ width: 24px
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .wikia-search {
+ height: 200px;
+ margin-bottom: 30px
+ }
+ .wikia-search .search-box-container {
+ height: 75px
+ }
+ .wikia-search .search-box-container input {
+ font-size: 1.5rem;
+ height: 75px;
+ padding-left: 65px;
+ width: 600px
+ }
+ .wikia-search .search-box-container .icon-search {
+ height: 32px;
+ margin-left: 30px;
+ width: 32px
+ }
+ }
+
+ .profile-alert {
+ background-image: linear-gradient(to bottom, #39424d, #2c343d);
+ color: white;
+ visibility: hidden;
+ max-height: 0;
+ text-align: center;
+ transition: max-height 100ms ease-in-out;
+ width: 100%
+ }
+
+ .profile-alert.visible {
+ height: 270px;
+ max-height: 270px;
+ visibility: visible
+ }
+
+ .profile-alert .icon-fan-profile-avatar {
+ margin-top: 37px
+ }
+
+ .profile-alert .close-alert {
+ fill: white;
+ float: left;
+ margin-top: 24px
+ }
+
+ .profile-alert h3 {
+ margin-bottom: 0;
+ margin-top: 15px
+ }
+
+ .profile-alert p {
+ font-size: 14px;
+ margin-bottom: 16px;
+ margin-top: 11px
+ }
+
+ .profile-alert a.button-edit-profile {
+ color: white
+ }
+
+ .profile-alert a.button-edit-profile:hover {
+ color: white
+ }
+
+ .wds-global-navigation.profile-alert-visible {
+ position: absolute;
+ -webkit-transform: translateY(0%) !important;
+ transform: translateY(0%) !important
+ }
+
+ @media only screen and (max-width: 66.4375em) {
+ .profile-alert {
+ padding-left: 18px;
+ padding-right: 18px
+ }
+ .profile-alert.visible {
+ height: 290px;
+ max-height: 290px;
+ visibility: visible
+ }
+ }
+
+ .close-alert svg {
+ position: absolute
+ }
+
+ .page-about-content header {
+ background-color: #092344;
+ color: #fff;
+ height: 257px;
+ padding: 50px 20px
+ }
+
+ .page-about-content header h1 {
+ line-height: 3.75rem;
+ max-width: 780px
+ }
+
+ .page-about-content header hr {
+ border-color: #fff;
+ margin: auto
+ }
+
+ .page-about-content hr {
+ border-color: #092344;
+ border-style: solid;
+ border-width: 5px 0 0;
+ margin: 0;
+ width: 96px
+ }
+
+ .page-about-content img {
+ display: block;
+ margin: auto
+ }
+
+ .page-about-content p {
+ margin: 0
+ }
+
+ .page-about-content .grid-content,
+ .page-about-content section.post-archive .pagination,
+ section.post-archive .page-about-content .pagination {
+ padding: 0
+ }
+
+ .page-about-content section.follow-us {
+ text-align: center
+ }
+
+ .page-about-content section.follow-us a {
+ border-radius: 25px;
+ height: 50px;
+ line-height: 50px;
+ margin-left: 10px;
+ padding: 1px 0 0 5px;
+ width: 50px
+ }
+
+ .page-about-content section.follow-us a .icon {
+ fill: #fff
+ }
+
+ .page-about-content section.follow-us a:visited {
+ color: #fff
+ }
+
+ .page-about-content section.follow-us a.facebook {
+ background-color: #3b5998;
+ margin-left: 0
+ }
+
+ .page-about-content section.follow-us a.facebook .facebook-icon-default {
+ fill: #fff;
+ height: 19px;
+ -webkit-transform: translateX(-3px) translateY(3px);
+ transform: translateX(-3px) translateY(3px);
+ width: 10px
+ }
+
+ .page-about-content section.follow-us a.twitter {
+ background-color: #1da1f2
+ }
+
+ .page-about-content section.follow-us a.twitter .icon {
+ height: 18px;
+ -webkit-transform: translateX(-1px) translateY(2px);
+ transform: translateX(-1px) translateY(2px);
+ width: 22px
+ }
+
+ .page-about-content section.follow-us a.instagram {
+ background-color: #e02d69;
+ margin-top: 10px
+ }
+
+ .page-about-content section.follow-us a.instagram .icon {
+ margin-right: 4px;
+ -webkit-transform: translateY(5px);
+ transform: translateY(5px)
+ }
+
+ .page-about-content section.follow-us a.linkedin {
+ background-color: #0077b5;
+ margin-top: 10px
+ }
+
+ .page-about-content section.follow-us a.linkedin .icon {
+ height: 23px;
+ margin-right: 4px;
+ -webkit-transform: translateY(5px);
+ transform: translateY(5px);
+ width: 18px
+ }
+
+ .page-about-content section.follow-us hr {
+ border-color: #e5e5e5;
+ margin: 0 auto 15px
+ }
+
+ .page-about-content section.follow-us .follow {
+ font-weight: bold;
+ letter-spacing: 1px;
+ margin-bottom: 3px
+ }
+
+ .page-about-content section.fandom img {
+ width: 222px
+ }
+
+ .page-about-content section.global {
+ background-color: #f2f6fa
+ }
+
+ .page-about-content section.global img {
+ width: 357px
+ }
+
+ .page-about-content section.intro {
+ background-color: #f2f6fa
+ }
+
+ .page-about-content section.intro .stat {
+ font-weight: bold;
+ text-align: center
+ }
+
+ .page-about-content section.intro .stat span {
+ display: block;
+ font-size: 3rem;
+ line-height: 3rem;
+ padding-top: 5px;
+ white-space: nowrap
+ }
+
+ .page-about-content section.investors {
+ background-color: #f2f6fa
+ }
+
+ .page-about-content section.investors h2 {
+ margin: 0 auto 50px;
+ max-width: 570px
+ }
+
+ .page-about-content section.investors p {
+ margin: 50px auto 0;
+ max-width: 370px
+ }
+
+ .page-about-content section.leadership,
+ .page-about-content section.team,
+ .page-about-content section.investors {
+ text-align: center
+ }
+
+ .page-about-content section.leadership {
+ padding-top: 50px
+ }
+
+ .page-about-content section.leadership h2 {
+ margin-bottom: 50px
+ }
+
+ .page-about-content section.leadership .grid-container {
+ max-width: 767px
+ }
+
+ .page-about-content section.leadership .profile {
+ margin: 0 auto 50px
+ }
+
+ .page-about-content section.leadership .profile img {
+ width: 132px;
+ margin-bottom: 15px
+ }
+
+ .page-about-content section.team {
+ background-color: #6a6a6a;
+ color: #fff
+ }
+
+ .page-about-content section.team a {
+ color: #ccc;
+ margin: 34px auto;
+ width: 130px
+ }
+
+ .page-about-content section.team h2 {
+ margin-bottom: 50px
+ }
+
+ .page-about-content section.team h4 {
+ font-weight: normal;
+ margin: 20px 0 3px
+ }
+
+ .page-about-content section.team .icon {
+ fill: #fff;
+ margin-top: 15px
+ }
+
+ .page-about-content section.about-intl {
+ background-color: #fff;
+ border-top: 1px solid #f2f6fa;
+ padding: 20px 0
+ }
+
+ .page-about-content section.about-intl.wikia-de .inner {
+ width: 670px
+ }
+
+ .page-about-content section.about-intl.wikia-ja .inner {
+ width: 600px
+ }
+
+ .page-about-content section.about-intl.wikia-ja table:last-of-type {
+ margin-top: 37px
+ }
+
+ .page-about-content section.about-intl h4,
+ .page-about-content section.about-intl th {
+ color: #656e78;
+ font-weight: normal;
+ margin: 0;
+ padding: 0 0 15px 0
+ }
+
+ .page-about-content section.about-intl dl,
+ .page-about-content section.about-intl table {
+ margin: 0;
+ text-align: left
+ }
+
+ .page-about-content section.about-intl td {
+ padding-bottom: 10px;
+ vertical-align: top
+ }
+
+ .page-about-content section.about-intl dt,
+ .page-about-content section.about-intl td:first-child {
+ color: #656e78
+ }
+
+ .page-about-content section.about-intl td:first-child {
+ width: 85px
+ }
+
+ .page-about-content section.about-intl dd,
+ .page-about-content section.about-intl td:last-child {
+ font-weight: bold;
+ margin: 0;
+ padding-bottom: 10px
+ }
+
+ .page-about-content section.about-intl .inner {
+ margin: auto
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .page-about-content header {
+ text-align: center
+ }
+ .page-about-content header h1 {
+ margin: 0 auto 30px
+ }
+ .page-about-content section.fandom,
+ .page-about-content section.intro,
+ .page-about-content section.global {
+ padding: 60px 0
+ }
+ .page-about-content section.fandom hr,
+ .page-about-content section.intro hr,
+ .page-about-content section.global hr {
+ margin-bottom: 30px
+ }
+ .page-about-content section.fandom p,
+ .page-about-content section.intro p,
+ .page-about-content section.global p {
+ width: 435px
+ }
+ .page-about-content section.fandom .grid-block,
+ .page-about-content section.intro .grid-block,
+ .page-about-content section.global .grid-block {
+ -webkit-align-items: center;
+ -ms-flex-align: center;
+ -ms-grid-row-align: center;
+ align-items: center
+ }
+ .page-about-content section.follow-us {
+ padding: 60px 0 80px
+ }
+ .page-about-content section.follow-us .follow {
+ margin-bottom: 8px
+ }
+ .page-about-content section.follow-us a {
+ border-radius: 0;
+ height: 50px;
+ line-height: 50px;
+ padding: 0;
+ width: 120px
+ }
+ .page-about-content section.investors,
+ .page-about-content section.team {
+ padding: 60px 0
+ }
+ .page-about-content section.leadership .profile {
+ background-color: #fcfdff;
+ border: 1px solid #e5e9f4;
+ border-radius: 4px;
+ height: 238px;
+ padding: 25px 20px;
+ width: 213px
+ }
+ .page-about-content section.leadership,
+ .page-about-content section.team {
+ padding-top: 50px
+ }
+ .page-about-content section.team .grid-content:last-of-type,
+ .page-about-content section.team section.post-archive .pagination:last-of-type,
+ section.post-archive .page-about-content section.team .pagination:last-of-type {
+ border-left: 1px solid #ccc
+ }
+ .page-about-content section.intro .stats {
+ -webkit-align-items: flex-start;
+ -ms-flex-align: start;
+ -ms-grid-row-align: flex-start;
+ align-items: flex-start
+ }
+ .page-about-content section.intro .stat {
+ max-width: 310px
+ }
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .page-about-content header {
+ height: 222px
+ }
+ .page-about-content header h1 {
+ font-size: 1.5rem;
+ line-height: 1.75rem;
+ max-width: 250px
+ }
+ .page-about-content header hr {
+ margin-left: 0
+ }
+ .page-about-content section {
+ padding: 30px 20px
+ }
+ .page-about-content section hr {
+ margin: 40px auto 25px
+ }
+ .page-about-content section.fandom img {
+ width: 135px
+ }
+ .page-about-content section.global img {
+ width: 158px
+ }
+ .page-about-content section.intro img {
+ width: 87px
+ }
+ .page-about-content section.intro .stat {
+ font-size: .625rem
+ }
+ .page-about-content section.intro .stat span {
+ font-size: 1.6875rem;
+ line-height: 1.6875rem
+ }
+ .page-about-content section.investors h2 {
+ font-size: 1.6875rem;
+ line-height: 2rem
+ }
+ .page-about-content section.investors img {
+ margin-bottom: 40px
+ }
+ .page-about-content section.investors p {
+ margin-top: 0
+ }
+ .page-about-content section.leadership h2 {
+ margin-bottom: 35px
+ }
+ .page-about-content section.leadership .profile img {
+ width: 100px
+ }
+ .page-about-content section.team a {
+ font-size: .875rem;
+ line-height: 60px;
+ width: 200px
+ }
+ .page-about-content section.team h2 {
+ font-size: 1.6875rem;
+ line-height: 2rem;
+ margin-bottom: 15px
+ }
+ .page-about-content section.about-intl {
+ padding: 20px 30px
+ }
+ .page-about-content section.about-intl.wikia-de .inner,
+ .page-about-content section.about-intl.wikia-ja .inner {
+ width: auto
+ }
+ .page-about-content section.about-intl.wikia-de table:last-of-type,
+ .page-about-content section.about-intl.wikia-ja table:last-of-type {
+ margin-top: 10px
+ }
+ .page-about-content section.about-intl .grid-block {
+ -webkit-flex-direction: column;
+ -ms-flex-direction: column;
+ flex-direction: column
+ }
+ }
+
+ html[lang^='ja'] .page-about-content header h1 {
+ font-size: 3.125rem;
+ line-height: 3.25rem
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ html[lang^='ja'] .page-about-content header h1 {
+ font-size: 1.375rem;
+ line-height: 1.5rem
+ }
+ }
+
+ .background-feed-treatment {
+ background-image: url("http://vignette.wikia.nocookie.net/96088fce-76ef-4908-b1b4-1b56e8d4337d");
+ background-size: cover;
+ height: 363px
+ }
+
+ .background-feed-treatment .fandom-newsletter-signup {
+ background-color: transparent;
+ padding-top: 0
+ }
+
+ .background-feed-treatment .fandom-newsletter-signup .message-success {
+ padding: 140px 1rem 0 1rem
+ }
+
+ .background-feed-treatment .fandom-newsletter-signup .form-title {
+ font-size: 1.5rem;
+ padding-top: 100px
+ }
+
+ .background-feed-treatment .fandom-newsletter-signup input.email {
+ border-bottom: 2px solid #656e78;
+ height: 30px
+ }
+
+ .background-feed-treatment .fandom-newsletter-signup input.submit {
+ border-width: 2px;
+ color: #fff;
+ font-size: .875rem;
+ line-height: 1.25rem;
+ width: 200px
+ }
+
+ .background-feed-treatment .fandom-newsletter-signup .input {
+ margin-bottom: 23px
+ }
+
+ .background-feed-treatment .fandom-newsletter-signup .input label {
+ color: #fff
+ }
+
+ .trending-feed {
+ padding-top: 0
+ }
+
+ .trending-feed h2 {
+ padding-bottom: 24px;
+ padding-top: 20px;
+ text-align: center
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .trending-feed h2 {
+ padding-bottom: 44px;
+ padding-top: 50px
+ }
+ .background-feed-treatment {
+ background-image: url("http://vignette.wikia.nocookie.net/c8befc8a-0cac-4be7-981d-15656f049c95");
+ background-size: cover;
+ height: 575px
+ }
+ .background-feed-treatment .fandom-newsletter-signup .message-success {
+ font-size: 1.5rem;
+ line-height: 1.8125rem;
+ padding: 250px 1rem 0 1rem
+ }
+ .background-feed-treatment .fandom-newsletter-signup .form-title {
+ display: block;
+ font-size: 3.375rem;
+ line-height: 4.0625rem;
+ max-width: 700px;
+ margin: 0 auto;
+ padding-bottom: 65px;
+ padding-top: 200px
+ }
+ .background-feed-treatment .fandom-newsletter-signup input.submit {
+ width: 130px
+ }
+ .background-feed-treatment .fandom-newsletter-signup input.email {
+ border-bottom: 1px solid #fff
+ }
+ }
+
+ body&gt;
+ svg:nth-of-type(2) {
+ display: none
+ }
+
+ .fan-contributor-wrapper {
+ background-color: #f6f6f6;
+ color: #fff
+ }
+
+ .fan-contributor-wrapper a {
+ color: #aae3f0
+ }
+
+ .fan-contributor-wrapper button {
+ border: none;
+ font-size: .875rem;
+ font-weight: bold;
+ letter-spacing: 1px;
+ line-height: 1.25rem;
+ margin-bottom: 35px;
+ padding: 12px 54px;
+ text-transform: uppercase
+ }
+
+ .fan-contributor-wrapper .faq {
+ color: #fff
+ }
+
+ .fan-contributor-wrapper [class*='-btn'] {
+ color: #fff
+ }
+
+ .fan-contributor-wrapper .hero {
+ background-image: url("http://vignette.wikia.nocookie.net/d0e56f2a-df36-4367-af13-d523da7d2883");
+ background-position: center;
+ background-size: cover;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-flow: column wrap;
+ -ms-flex-flow: column wrap;
+ flex-flow: column wrap;
+ height: 366px;
+ -webkit-justify-content: flex-end;
+ -ms-flex-pack: end;
+ justify-content: flex-end;
+ text-align: center
+ }
+
+ .fan-contributor-wrapper .hero&gt;
+ div {
+ margin-bottom: 40px;
+ width: 100%
+ }
+
+ .fan-contributor-wrapper .hero h1 {
+ margin-bottom: 25px
+ }
+
+ .fan-contributor-wrapper .hero p {
+ margin: 0 auto;
+ max-width: 500px;
+ padding-left: 25px;
+ padding-right: 25px
+ }
+
+ .fan-contributor-wrapper .hero .faq-link {
+ margin-top: 25px
+ }
+
+ .fan-contributor-wrapper .hero .contrib-invitation:after {
+ background: #fff;
+ content: '';
+ display: block;
+ height: 4px;
+ margin: 23px auto 0;
+ width: 97px
+ }
+
+ .fan-contributor-wrapper .hero button {
+ background: #94d11f;
+ color: #fff
+ }
+
+ .fan-contributor-wrapper .description {
+ background-color: #2060b5
+ }
+
+ .fan-contributor-wrapper .description h2:after {
+ background: #fff;
+ content: '';
+ display: block;
+ height: 4px;
+ margin: 23px auto 0;
+ width: 97px;
+ margin-left: 0
+ }
+
+ .fan-contributor-wrapper .description svg {
+ display: block;
+ margin: auto;
+ max-width: 230px
+ }
+
+ .fan-contributor-wrapper .description .image {
+ padding: 40px 10px 23px
+ }
+
+ .fan-contributor-wrapper .description .text {
+ padding: 0 10px 23px
+ }
+
+ .fan-contributor-wrapper .description button {
+ background: #fff;
+ color: #2060b5;
+ display: block;
+ margin: 0 auto 40px
+ }
+
+ .fan-contributor-wrapper .perks {
+ background-color: #00b7e0;
+ padding: 33px 15px;
+ text-align: center
+ }
+
+ .fan-contributor-wrapper .perks h2 {
+ margin-bottom: 35px
+ }
+
+ .fan-contributor-wrapper .perks h3 {
+ margin-bottom: 45px
+ }
+
+ .fan-contributor-wrapper .perks li {
+ margin-bottom: 35px
+ }
+
+ .fan-contributor-wrapper .perks svg {
+ display: block;
+ margin: 0 auto 12px
+ }
+
+ .fan-contributor-wrapper .perks .faq {
+ display: block
+ }
+
+ .fan-contributor-wrapper .perks a[href='#form'] button {
+ background: #fff;
+ color: #2060b5;
+ margin-bottom: 18px
+ }
+
+ .fan-contributor-wrapper .perks div.video-content {
+ text-align: left
+ }
+
+ .fan-contributor-wrapper .form {
+ color: #39424d;
+ padding: 35px 15px 10px
+ }
+
+ .fan-contributor-wrapper .form h2 {
+ text-align: left
+ }
+
+ .fan-contributor-wrapper .form h2:after {
+ background: #fff;
+ content: '';
+ display: block;
+ height: 4px;
+ margin: 23px auto 0;
+ width: 97px;
+ margin-left: 0;
+ background-color: #39424d
+ }
+
+ .fan-contributor-wrapper .share {
+ color: #39424d;
+ padding: 10px 10px 40px;
+ text-align: center
+ }
+
+ .fan-contributor-wrapper .share h3 {
+ margin-bottom: 18px
+ }
+
+ .fan-contributor-wrapper .share h3 span {
+ display: block
+ }
+
+ .fan-contributor-wrapper .share h3:before {
+ background: #fff;
+ content: '';
+ display: block;
+ height: 4px;
+ margin: 23px auto 0;
+ width: 97px;
+ background: #e6e6e6;
+ margin-bottom: 18px
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .fan-contributor-wrapper button {
+ padding: 22px 54px
+ }
+ .fan-contributor-wrapper .hero {
+ background-image: url("http://vignette.wikia.nocookie.net/bb481af9-79ad-48ec-baee-8af76d7e6110");
+ height: 575px
+ }
+ .fan-contributor-wrapper .hero h1 {
+ font-size: 3.375rem;
+ line-height: 4.0625rem;
+ margin-bottom: 27px
+ }
+ .fan-contributor-wrapper .hero p {
+ font-size: 1rem;
+ line-height: 1.5rem
+ }
+ .fan-contributor-wrapper .hero p:after {
+ height: 2px;
+ margin-top: 26px
+ }
+ .fan-contributor-wrapper .description h2,
+ .fan-contributor-wrapper .description h3 {
+ font-size: 1.5rem;
+ line-height: 1.8125rem
+ }
+ .fan-contributor-wrapper .description h2:after {
+ height: 2px;
+ margin-top: 26px
+ }
+ .fan-contributor-wrapper .description .image {
+ padding: 90px 0 50px
+ }
+ .fan-contributor-wrapper .description .text {
+ padding: 110px 60px 0 15px
+ }
+ .fan-contributor-wrapper .description svg {
+ max-width: 100%
+ }
+ .fan-contributor-wrapper .perks {
+ padding: 50px 15px 70px 15px
+ }
+ .fan-contributor-wrapper .perks h2 {
+ margin-bottom: 56px
+ }
+ .fan-contributor-wrapper .perks h3 {
+ font-size: 1.5rem;
+ line-height: 1.8125rem;
+ margin-top: 20px
+ }
+ .fan-contributor-wrapper .perks li:first-of-type {
+ margin-top: 6px
+ }
+ .fan-contributor-wrapper .perks svg {
+ margin-bottom: 25px
+ }
+ .fan-contributor-wrapper .perks a.faq,
+ .fan-contributor-wrapper .perks a[href='#form'] {
+ margin: 0 auto;
+ width: 130px
+ }
+ .fan-contributor-wrapper .share h3 span {
+ display: inline
+ }
+ .fan-contributor-wrapper .share .email-share-btn {
+ background: #656e78;
+ height: 40px;
+ width: 80px
+ }
+ .fan-contributor-wrapper .form {
+ padding: 50px 15px 10px
+ }
+ .fan-contributor-wrapper .form h2 {
+ font-size: 2.25rem;
+ line-height: 2.6875rem;
+ margin-left: 0
+ }
+ .fan-contributor-wrapper .form .form-intro {
+ margin: 0 auto;
+ max-width: 700px
+ }
+ }
+
+ .page-press header {
+ background-color: #092344;
+ color: #fff;
+ height: 257px;
+ padding: 90px 20px 0;
+ text-align: center
+ }
+
+ .page-press header hr {
+ border-color: #fff;
+ margin: auto
+ }
+
+ .page-press hr {
+ border-color: #092344;
+ border-style: solid;
+ border-width: 5px 0 0;
+ margin: 0;
+ width: 96px
+ }
+
+ .page-press section.contact {
+ background-color: #f2f6fa
+ }
+
+ .page-press section.contact a {
+ border-color: #656e78;
+ color: #656e78;
+ float: right;
+ margin: 35px 0;
+ padding: 0 20px
+ }
+
+ .page-press section.press-feed {
+ padding: 90px 0 80px
+ }
+
+ .page-press section.press-feed h4 {
+ margin-bottom: 20px;
+ text-transform: uppercase
+ }
+
+ .page-press section.press-feed li {
+ border-bottom: 1px solid #c5ced9;
+ margin-bottom: 40px;
+ padding-bottom: 35px
+ }
+
+ .page-press section.press-feed li a {
+ color: #2060b5;
+ font-weight: bold
+ }
+
+ .page-press section.press-feed li h3 {
+ margin-top: 5px;
+ max-width: 500px
+ }
+
+ .page-press section.press-feed li .attribution {
+ color: #c5ced9
+ }
+
+ .page-press .grid-container {
+ margin: 0 auto;
+ padding: 0 20px
+ }
+
+ .page-press #twitter-widget-0 {
+ max-width: 310px !important
+ }
+
+ @media only screen and (max-width: 52.4375em) {
+ .page-press header {
+ height: 166px;
+ padding-top: 50px
+ }
+ .page-press section.contact a {
+ float: none;
+ margin: 30px auto
+ }
+ .page-press section.press-feed {
+ padding: 30px 0 40px
+ }
+ .page-press section.press-feed li {
+ margin-bottom: 30px;
+ padding-bottom: 30px
+ }
+ .page-press .grid-container {
+ padding: 0
+ }
+ .page-press #twitter-widget-0 {
+ max-width: 300px !important
+ }
+ }
+
+ .wikia-contacts h1,
+ .wikia-contacts h2,
+ .wikia-contacts h3,
+ .wikia-contacts h4,
+ .wikia-contacts h5,
+ .wikia-contacts h6 {
+ color: #39424d
+ }
+
+ .wikia-contacts p {
+ color: #b1b1b1;
+ font-size: .875rem;
+ line-height: 20px;
+ margin: 0
+ }
+
+ .wikia-contacts h2 {
+ font-size: 2.25rem
+ }
+
+ .wikia-contacts h3 {
+ font-size: 1.5rem
+ }
+
+ .wikia-contacts h6 {
+ line-height: 30px
+ }
+
+ .wikia-contacts.grid-block {
+ margin-bottom: 0;
+ margin-left: 0;
+ margin-right: 0
+ }
+
+ .wikia-contacts .grid-content,
+ .wikia-contacts section.post-archive .pagination,
+ section.post-archive .wikia-contacts .pagination {
+ margin-bottom: 20px;
+ padding-left: 0;
+ padding-right: 0;
+ overflow-y: visible
+ }
+
+ .wikia-contacts .grid-content .grid-block,
+ .wikia-contacts section.post-archive .pagination .grid-block,
+ section.post-archive .wikia-contacts .pagination .grid-block {
+ margin-left: 0
+ }
+
+ .wikia-contacts.grid-container {
+ padding-left: 35px;
+ padding-right: 35px
+ }
+
+ .wikia-contacts .quick-links {
+ margin-top: 17px
+ }
+
+ .wikia-contacts .quick-links h5 {
+ text-transform: uppercase;
+ margin-bottom: 10px
+ }
+
+ .wikia-contacts .quick-links a {
+ line-height: 50px;
+ font-size: 1rem;
+ color: #1a5eb8
+ }
+
+ .wikia-contacts .regional-offices {
+ margin-top: 45px;
+ margin-bottom: 0
+ }
+
+ .wikia-contacts .headquarters h3 {
+ font-weight: normal;
+ line-height: 28px;
+ margin-bottom: 10px
+ }
+
+ .wikia-contacts .headquarters p {
+ font-size: 1rem;
+ line-height: 20px
+ }
+
+ @media only screen and (min-width: 52.5em) {
+ .wikia-contacts p {
+ font-size: .875rem;
+ line-height: 20px
+ }
+ .wikia-contacts .headquarters p {
+ font-size: 1rem;
+ line-height: 24px
+ }
+ .wikia-contacts.grid-block {
+ margin-bottom: 20px
+ }
+ .wikia-contacts.grid-block.regional-offices {
+ margin-top: 45px;
+ margin-bottom: 0
+ }
+ .wikia-contacts .grid-content,
+ .wikia-contacts section.post-archive .pagination,
+ section.post-archive .wikia-contacts .pagination {
+ margin-bottom: 30px;
+ padding-right: 20px
+ }
+ .wikia-contacts .quick-links a {
+ font-size: 1rem
+ }
+ }
+ </style>
+ <script src="https://securepubads.g.doubleclick.net/gpt/pubads_impl_110.js" async=""></script>
+
+ <link rel="prefetch" href="http://tpc.googlesyndication.com/safeframe/1-0-6/html/container.html" />
+ <script src="https://beacon.wikia-services.com/__track/view?ga_category=view&amp;a=49332&amp;page=%27Star%20Wars%27%20Original%20Cuts%20Might%20Get%20Released%20for%2040th%20Anniversary&amp;s=upstream&amp;lc=en&amp;x=fandomstories&amp;c=1452001&amp;beacon=&amp;cb=77884&amp;url=http%3A%2F%2Ffandom.wikia.com%2Farticles%2Fstar-wars-original-cuts-might-get-released-40th-anniversary&amp;r="></script>
+ <style type="text/css"></style>
+ <script type="text/javascript" src="//query.petametrics.com/gid?jsonp=igniter_1eee93b315074bdabf74be96c01d1acb"></script>
+ <link href="https://vignette.wikia.nocookie.net/ce87556c-22ef-4827-9002-bc0c9ca947a8/scale-to-width-down/400" rel="prefetch" />
+ <link href="https://vignette.wikia.nocookie.net/fc7164d9-06e8-4f91-9115-1745783792da/scale-to-width-down/400" rel="prefetch" />
+ <link href="https://vignette.wikia.nocookie.net/a5f353ae-4bdb-473e-bad4-c56e664ec8b1/scale-to-width-down/400" rel="prefetch" />
+ <link href="https://vignette.wikia.nocookie.net/15a2234d-ab13-4bd0-ac50-bee1736e0de0/scale-to-width-down/400" rel="prefetch" />
+ <link href="https://vignette.wikia.nocookie.net/96f9f44f-abb8-4125-b338-fcec161f6832/scale-to-width-down/400" rel="prefetch" />
+ <link href="https://vignette.wikia.nocookie.net/b0bfa18a-b74e-4ec9-a7ee-b0871a6dbeaa/scale-to-width-down/400" rel="prefetch" />
+ <link href="https://vignette.wikia.nocookie.net/25c63a09-9713-4573-bb91-7667fb4c06f3/scale-to-width-down/400" rel="prefetch" />
+ <link href="https://vignette.wikia.nocookie.net/6fda9a02-b7ed-4001-9364-0d9bd0bf0763/scale-to-width-down/400" rel="prefetch" />
+ <link href="https://vignette.wikia.nocookie.net/76afd7ae-d58c-471f-9ee9-93b8e351cf5e/scale-to-width-down/400" rel="prefetch" />
+ <link href="https://vignette.wikia.nocookie.net/e0700497-86a4-4497-a127-e8cbb2b26a34/scale-to-width-down/400" rel="prefetch" />
+ <link href="https://vignette.wikia.nocookie.net/abd1690f-aeef-4ea2-8e8b-5782a34c0622/scale-to-width-down/400" rel="prefetch" />
+ <script src="/wp-content/themes/upstream/dist/ooyala/ooyala.js"></script>
+ <link href="https://vignette.wikia.nocookie.net/b67fc4d4-f0cc-4fe2-8ff9-6cfd78ce1bb8/scale-to-width-down/400" rel="prefetch" />
+ <link href="http://fandom.wikia.com/games" rel="prefetch" />
+ <link href="http://fandom.wikia.com/movies" rel="prefetch" />
+ <link href="http://fandom.wikia.com/tv" rel="prefetch" />
+ <script type="text/javascript" charset="utf-8" async="" src="https://platform.twitter.com/js/button.5b89bce04f133ec533459161985cf461.js"></script>
+ <style type="text/css">
+ .fb_hidden {
+ position: absolute;
+ top: -10000px;
+ z-index: 10001
+ }
+
+ .fb_reposition {
+ overflow: hidden;
+ position: relative
+ }
+
+ .fb_invisible {
+ display: none
+ }
+
+ .fb_reset {
+ background: none;
+ border: 0;
+ border-spacing: 0;
+ color: #000;
+ cursor: auto;
+ direction: ltr;
+ font-family: "lucida grande", tahoma, verdana, arial, sans-serif;
+ font-size: 11px;
+ font-style: normal;
+ font-variant: normal;
+ font-weight: normal;
+ letter-spacing: normal;
+ line-height: 1;
+ margin: 0;
+ overflow: visible;
+ padding: 0;
+ text-align: left;
+ text-decoration: none;
+ text-indent: 0;
+ text-shadow: none;
+ text-transform: none;
+ visibility: visible;
+ white-space: normal;
+ word-spacing: normal
+ }
+
+ .fb_reset&gt;
+ div {
+ overflow: hidden
+ }
+
+ .fb_link img {
+ border: none
+ }
+
+ @keyframes fb_transform {
+ from {
+ opacity: 0;
+ transform: scale(.95)
+ }
+ to {
+ opacity: 1;
+ transform: scale(1)
+ }
+ }
+
+ .fb_animate {
+ animation: fb_transform .3s forwards
+ }
+
+ .fb_dialog {
+ background: rgba(82, 82, 82, .7);
+ position: absolute;
+ top: -10000px;
+ z-index: 10001
+ }
+
+ .fb_reset .fb_dialog_legacy {
+ overflow: visible
+ }
+
+ .fb_dialog_advanced {
+ padding: 10px;
+ -moz-border-radius: 8px;
+ -webkit-border-radius: 8px;
+ border-radius: 8px
+ }
+
+ .fb_dialog_content {
+ background: #fff;
+ color: #333
+ }
+
+ .fb_dialog_close_icon {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/yq/r/IE9JII6Z1Ys.png) no-repeat scroll 0 0 transparent;
+ _background-image: url(https://static.xx.fbcdn.net/rsrc.php/v3/yL/r/s816eWC-2sl.gif);
+ cursor: pointer;
+ display: block;
+ height: 15px;
+ position: absolute;
+ right: 18px;
+ top: 17px;
+ width: 15px
+ }
+
+ .fb_dialog_mobile .fb_dialog_close_icon {
+ top: 5px;
+ left: 5px;
+ right: auto
+ }
+
+ .fb_dialog_padding {
+ background-color: transparent;
+ position: absolute;
+ width: 1px;
+ z-index: -1
+ }
+
+ .fb_dialog_close_icon:hover {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/yq/r/IE9JII6Z1Ys.png) no-repeat scroll 0 -15px transparent;
+ _background-image: url(https://static.xx.fbcdn.net/rsrc.php/v3/yL/r/s816eWC-2sl.gif)
+ }
+
+ .fb_dialog_close_icon:active {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/yq/r/IE9JII6Z1Ys.png) no-repeat scroll 0 -30px transparent;
+ _background-image: url(https://static.xx.fbcdn.net/rsrc.php/v3/yL/r/s816eWC-2sl.gif)
+ }
+
+ .fb_dialog_loader {
+ background-color: #f6f7f9;
+ border: 1px solid #606060;
+ font-size: 24px;
+ padding: 20px
+ }
+
+ .fb_dialog_top_left,
+ .fb_dialog_top_right,
+ .fb_dialog_bottom_left,
+ .fb_dialog_bottom_right {
+ height: 10px;
+ width: 10px;
+ overflow: hidden;
+ position: absolute
+ }
+
+ .fb_dialog_top_left {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/ye/r/8YeTNIlTZjm.png) no-repeat 0 0;
+ left: -10px;
+ top: -10px
+ }
+
+ .fb_dialog_top_right {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/ye/r/8YeTNIlTZjm.png) no-repeat 0 -10px;
+ right: -10px;
+ top: -10px
+ }
+
+ .fb_dialog_bottom_left {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/ye/r/8YeTNIlTZjm.png) no-repeat 0 -20px;
+ bottom: -10px;
+ left: -10px
+ }
+
+ .fb_dialog_bottom_right {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/ye/r/8YeTNIlTZjm.png) no-repeat 0 -30px;
+ right: -10px;
+ bottom: -10px
+ }
+
+ .fb_dialog_vert_left,
+ .fb_dialog_vert_right,
+ .fb_dialog_horiz_top,
+ .fb_dialog_horiz_bottom {
+ position: absolute;
+ background: #525252;
+ filter: alpha(opacity=70);
+ opacity: .7
+ }
+
+ .fb_dialog_vert_left,
+ .fb_dialog_vert_right {
+ width: 10px;
+ height: 100%
+ }
+
+ .fb_dialog_vert_left {
+ margin-left: -10px
+ }
+
+ .fb_dialog_vert_right {
+ right: 0;
+ margin-right: -10px
+ }
+
+ .fb_dialog_horiz_top,
+ .fb_dialog_horiz_bottom {
+ width: 100%;
+ height: 10px
+ }
+
+ .fb_dialog_horiz_top {
+ margin-top: -10px
+ }
+
+ .fb_dialog_horiz_bottom {
+ bottom: 0;
+ margin-bottom: -10px
+ }
+
+ .fb_dialog_iframe {
+ line-height: 0
+ }
+
+ .fb_dialog_content .dialog_title {
+ background: #6d84b4;
+ border: 1px solid #365899;
+ color: #fff;
+ font-size: 14px;
+ font-weight: bold;
+ margin: 0
+ }
+
+ .fb_dialog_content .dialog_title&gt;
+ span {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/yd/r/Cou7n-nqK52.gif) no-repeat 5px 50%;
+ float: left;
+ padding: 5px 0 7px 26px
+ }
+
+ body.fb_hidden {
+ -webkit-transform: none;
+ height: 100%;
+ margin: 0;
+ overflow: visible;
+ position: absolute;
+ top: -10000px;
+ left: 0;
+ width: 100%
+ }
+
+ .fb_dialog.fb_dialog_mobile.loading {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/ya/r/3rhSv5V8j3o.gif) white no-repeat 50% 50%;
+ min-height: 100%;
+ min-width: 100%;
+ overflow: hidden;
+ position: absolute;
+ top: 0;
+ z-index: 10001
+ }
+
+ .fb_dialog.fb_dialog_mobile.loading.centered {
+ width: auto;
+ height: auto;
+ min-height: initial;
+ min-width: initial;
+ background: none
+ }
+
+ .fb_dialog.fb_dialog_mobile.loading.centered #fb_dialog_loader_spinner {
+ width: 100%
+ }
+
+ .fb_dialog.fb_dialog_mobile.loading.centered .fb_dialog_content {
+ background: none
+ }
+
+ .loading.centered #fb_dialog_loader_close {
+ color: #fff;
+ display: block;
+ padding-top: 20px;
+ clear: both;
+ font-size: 18px
+ }
+
+ #fb-root #fb_dialog_ipad_overlay {
+ background: rgba(0, 0, 0, .45);
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ top: 0;
+ width: 100%;
+ min-height: 100%;
+ z-index: 10000
+ }
+
+ #fb-root #fb_dialog_ipad_overlay.hidden {
+ display: none
+ }
+
+ .fb_dialog.fb_dialog_mobile.loading iframe {
+ visibility: hidden
+ }
+
+ .fb_dialog_content .dialog_header {
+ -webkit-box-shadow: white 0 1px 1px -1px inset;
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#738ABA), to(#2C4987));
+ border-bottom: 1px solid;
+ border-color: #1d4088;
+ color: #fff;
+ font: 14px Helvetica, sans-serif;
+ font-weight: bold;
+ text-overflow: ellipsis;
+ text-shadow: rgba(0, 30, 84, .296875) 0 -1px 0;
+ vertical-align: middle;
+ white-space: nowrap
+ }
+
+ .fb_dialog_content .dialog_header table {
+ -webkit-font-smoothing: subpixel-antialiased;
+ height: 43px;
+ width: 100%
+ }
+
+ .fb_dialog_content .dialog_header td.header_left {
+ font-size: 12px;
+ padding-left: 5px;
+ vertical-align: middle;
+ width: 60px
+ }
+
+ .fb_dialog_content .dialog_header td.header_right {
+ font-size: 12px;
+ padding-right: 5px;
+ vertical-align: middle;
+ width: 60px
+ }
+
+ .fb_dialog_content .touchable_button {
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#4966A6), color-stop(.5, #355492), to(#2A4887));
+ border: 1px solid #29487d;
+ -webkit-background-clip: padding-box;
+ -webkit-border-radius: 3px;
+ -webkit-box-shadow: rgba(0, 0, 0, .117188) 0 1px 1px inset, rgba(255, 255, 255, .167969) 0 1px 0;
+ display: inline-block;
+ margin-top: 3px;
+ max-width: 85px;
+ line-height: 18px;
+ padding: 4px 12px;
+ position: relative
+ }
+
+ .fb_dialog_content .dialog_header .touchable_button input {
+ border: none;
+ background: none;
+ color: #fff;
+ font: 12px Helvetica, sans-serif;
+ font-weight: bold;
+ margin: 2px -12px;
+ padding: 2px 6px 3px 6px;
+ text-shadow: rgba(0, 30, 84, .296875) 0 -1px 0
+ }
+
+ .fb_dialog_content .dialog_header .header_center {
+ color: #fff;
+ font-size: 16px;
+ font-weight: bold;
+ line-height: 18px;
+ text-align: center;
+ vertical-align: middle
+ }
+
+ .fb_dialog_content .dialog_content {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/y9/r/jKEcVPZFk-2.gif) no-repeat 50% 50%;
+ border: 1px solid #555;
+ border-bottom: 0;
+ border-top: 0;
+ height: 150px
+ }
+
+ .fb_dialog_content .dialog_footer {
+ background: #f6f7f9;
+ border: 1px solid #555;
+ border-top-color: #ccc;
+ height: 40px
+ }
+
+ #fb_dialog_loader_close {
+ float: left
+ }
+
+ .fb_dialog.fb_dialog_mobile .fb_dialog_close_button {
+ text-shadow: rgba(0, 30, 84, .296875) 0 -1px 0
+ }
+
+ .fb_dialog.fb_dialog_mobile .fb_dialog_close_icon {
+ visibility: hidden
+ }
+
+ #fb_dialog_loader_spinner {
+ animation: rotateSpinner 1.2s linear infinite;
+ background-color: transparent;
+ background-image: url(https://static.xx.fbcdn.net/rsrc.php/v3/yD/r/t-wz8gw1xG1.png);
+ background-repeat: no-repeat;
+ background-position: 50% 50%;
+ height: 24px;
+ width: 24px
+ }
+
+ @keyframes rotateSpinner {
+ 0% {
+ transform: rotate(0deg)
+ }
+ 100% {
+ transform: rotate(360deg)
+ }
+ }
+
+ .fb_iframe_widget {
+ display: inline-block;
+ position: relative
+ }
+
+ .fb_iframe_widget span {
+ display: inline-block;
+ position: relative;
+ text-align: justify
+ }
+
+ .fb_iframe_widget iframe {
+ position: absolute
+ }
+
+ .fb_iframe_widget_fluid_desktop,
+ .fb_iframe_widget_fluid_desktop span,
+ .fb_iframe_widget_fluid_desktop iframe {
+ max-width: 100%
+ }
+
+ .fb_iframe_widget_fluid_desktop iframe {
+ min-width: 220px;
+ position: relative
+ }
+
+ .fb_iframe_widget_lift {
+ z-index: 1
+ }
+
+ .fb_hide_iframes iframe {
+ position: relative;
+ left: -10000px
+ }
+
+ .fb_iframe_widget_loader {
+ position: relative;
+ display: inline-block
+ }
+
+ .fb_iframe_widget_fluid {
+ display: inline
+ }
+
+ .fb_iframe_widget_fluid span {
+ width: 100%
+ }
+
+ .fb_iframe_widget_loader iframe {
+ min-height: 32px;
+ z-index: 2;
+ zoom: 1
+ }
+
+ .fb_iframe_widget_loader .FB_Loader {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/y9/r/jKEcVPZFk-2.gif) no-repeat;
+ height: 32px;
+ width: 32px;
+ margin-left: -16px;
+ position: absolute;
+ left: 50%;
+ z-index: 4
+ }
+ </style>
+ <link href="http://www.reddit.com/submit?url=http%3A%2F%2Ffandom.wikia.com%2Farticles%2Fstar-wars-original-cuts-might-get-released-40th-anniversary" rel="prefetch" />
+ <link href="http://fandom.wikia.com/articles/everything-we-know-about-the-han-solo-movie" rel="prefetch" />
+ <link href="https://twitter.com/intent/tweet?text=&amp;url=http%3A%2F%2Ffandom.wikia.com%2Farticles%2Fstar-wars-original-cuts-might-get-released-40th-anniversary&amp;hashtags=fandom&amp;via=getfandom" rel="prefetch" />
+</head>
+
+<body class="post-template-default single single-post postid-49332 single-format-standard">
+ <!--[if lt IE 10]>
+ <p class="browser-upgrade">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/?locale=en">upgrade your browser</a> to improve your experience.</p>
+ <![endif]-->
+
+ <div class="svg-sprite-container">
+ <svg xmlns="http://www.w3.org/2000/svg" style="width:0; height:0; visibility:hidden;">
+ <symbol id="dropdown-triangle" viewBox="0 0 12 6">
+ <path d="M0 0h12L6 6" fill="param(fill) #E6E6E6" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="facebook-icon-default" viewBox="0 0 8 16">
+ <path d="M7.763 2.746h-1.42c-1.136 0-1.325.568-1.325 1.325V5.87h2.745L7.48 8.71H5.207V16h-2.84V8.71H0V5.87h2.367V3.787C2.367 1.42 3.787 0 5.87 0c.947 0 1.799.095 2.083.095v2.65h-.19z" fill="param(fill) #FFF" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="icon-arrow-careers" viewBox="0 0 22 12">
+ <path d="M20.293.293L11 9.586 1.707.293A.999.999 0 1 0 .293 1.707l10 10a.997.997 0 0 0 1.414 0l10-10A.999.999 0 1 0 20.293.293" fill="param(fill) #FFF" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="icon-arrow-footer" viewBox="0 0 16 16">
+ <path d="M8 0L6.6 1.4 12.2 7H0v2h12.2l-5.6 5.6L8 16l8-8-8-8z" fill="param(fill) #656D77" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="icon-arrow-white" viewBox="0 0 16 16">
+ <path d="M8 0L6.6 1.4 12.2 7H0v2h12.2l-5.6 5.6L8 16l8-8-8-8z" fill="param(fill) #fff" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="icon-arrow" viewBox="0 0 24 24">
+ <path d="M22.999 12a1 1 0 0 0-1-1H4.413l5.293-5.293a.999.999 0 1 0-1.414-1.414l-7 7a1 1 0 0 0 0 1.415l7 7a.997.997 0 0 0 1.414 0 .999.999 0 0 0 0-1.415L4.413 13h17.586a1 1 0 0 0 1-1" fill-rule="evenodd" class="fill"/>
+ </symbol>
+ <symbol id="icon-books" viewBox="0 0 18 13">
+ <g fill="param(fill) #FF7F26" fill-rule="evenodd"><path d="M2.445 1.3H.27v10.165s2.825-.38 6.955 1.14c0 0-.98-1.14-2.445-1.74-1.52-.545-2.335-.815-2.335-.815V1.3z"/><path d="M7.985 1.515S6.135-.115 3.8.21v9.51s2.715.705 4.185 2.23V1.515zM14.835 1.245h2.175V11.41s-2.825-.38-6.955 1.14c0 0 .98-1.14 2.445-1.74 1.52-.545 2.335-.815 2.335-.815v-8.75z"/><path d="M9.29 1.465S11.14-.165 13.475.16v9.51s-2.715.705-4.185 2.23V1.465z"/></g>
+ </symbol>
+ <symbol id="icon-close" viewBox="0 0 24 24">
+ <path d="M19.707 4.293a.999.999 0 0 0-1.414 0L12 10.586 5.707 4.293a.999.999 0 1 0-1.414 1.414L10.586 12l-6.293 6.293a.999.999 0 1 0 1.414 1.414L12 13.414l6.293 6.293a.997.997 0 0 0 1.414 0 .999.999 0 0 0 0-1.414L13.414 12l6.293-6.293a.999.999 0 0 0 0-1.414" fill-rule="evenodd" class="fill"/>
+ </symbol>
+ <symbol id="icon-comics" viewBox="0 0 20 20">
+ <path d="M10.055.25C4.785.25.49 4 .49 8.675c0 4.675 4.295 8.425 9.565 8.425.705 0 1.415-.055 2.065-.215l-.435 2.555 2.77-3.315c3.045-1.415 5.11-4.24 5.11-7.445 0-4.68-4.24-8.43-9.51-8.43zm.055 12.825a.388.388 0 0 1-.11.215.41.41 0 0 1-.215.215l-.325.165c-.11.055-.27.055-.435.055-.325 0-.6-.055-.815-.27-.215-.165-.325-.435-.325-.76 0-.165.055-.27.11-.435.055-.11.165-.215.27-.325.11-.11.27-.165.435-.165.165 0 .38 0 .6.055.165.055.325.11.435.215.11.11.215.215.27.325.055.11.11.215.11.325.05.225.05.275-.005.385zm2.01-7.77c-.165.545-.38 1.035-.545 1.575-.165.54-.325 1.085-.49 1.575-.165.545-.325 1.035-.435 1.52-.11.49-.27.925-.38 1.36-.055.165-.11.215-.165.27-.055.055-.165.055-.325 0-.215-.055-.38-.055-.545-.11a2.091 2.091 0 0 1-.49-.215c-.165-.105-.27-.165-.325-.27-.055-.11-.055-.27 0-.435.055-.38.11-.87.215-1.415.11-.545.215-1.085.325-1.685.11-.6.27-1.14.38-1.685.11-.545.27-1.085.38-1.52.055-.215.165-.325.215-.38.11-.055.27-.055.49.055.215.055.435.11.705.215.27.11.435.215.65.325.165.11.325.27.325.38.07.115.07.275.015.44z" fill="param(fill) #FF5400" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="icon-create" viewBox="0 0 56 56">
+ <g fill="param(fill) #80DBEF" fill-rule="evenodd"><path d="M5.45 18.835L.015 51.442c-.16.96 1.006 1.56 1.694.871l14.556-14.556a5.008 5.008 0 0 1 .636-6.293A4.967 4.967 0 0 1 20.436 30c1.636 0 3.15.78 4.123 2.164 1.177 1.675 1.177 3.997 0 5.672C23.587 39.22 22.072 40 20.436 40a4.96 4.96 0 0 1-2.757-.829L3.123 53.727c-.688.688-.088 1.854.872 1.694L36.6 49.986a.998.998 0 0 0 .764-.615l6.629-16.57-21.357-21.358-16.572 6.628a1 1 0 0 0-.615.764M27.729.293l-6 6a.999.999 0 0 0 0 1.414l26 26a.997.997 0 0 0 1.414 0l6-6a.999.999 0 0 0 0-1.414l-26-26a.999.999 0 0 0-1.414 0"/></g>
+ </symbol>
+ <symbol id="icon-edit" viewBox="0 0 62 59">
+ <path d="M13 21.242a4 4 0 1 1 0 8 4 4 0 0 1 0-8m8 18a4 4 0 1 1-8 0 4 4 0 0 1 8 0m10 2a4 4 0 1 1 0 8 4 4 0 0 1 0-8m14-23c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.14-7-7 3.14-7 7-7M31.168 58.484c13.885 0 26.219-9.322 30.003-22.699.333-1.34 1.353-6.117.496-11.29-.915-5.514-3.719-9.59-8.127-11.794-2.701-1.292-5.482-1.921-8.5-1.921-4.143 0-7.923 1.196-11.258 2.252-2.557.81-4.766 1.509-6.596 1.509-1.521 0-2.59-.484-3.446-1.538-.664-.886-.232-2.324.267-3.989.638-2.124 1.431-4.767-.271-6.987C22.74.72 21.066 0 19.022 0c-1.959 0-4.115.676-5.779 1.815A31.23 31.23 0 0 0 0 27.316c0 17.186 13.982 31.168 31.168 31.168" fill="param(fill) #80DBEF" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="icon-fan-mark-no-border" viewBox="0 0 40 40">
+ <g fill="param(fill) none" fill-rule="evenodd"><circle fill="#FFF" cx="20" cy="20" r="20"/><path d="M19.917 0C8.917 0 0 8.917 0 19.917c0 11 8.917 19.918 19.917 19.918 11 0 19.918-8.918 19.918-19.918S30.917 0 19.917 0zM12.79 8.947a2.83 2.83 0 1 1 0 5.659 2.83 2.83 0 0 1 0-5.66zm4.32 10.35H14.59v8.51h2.518v3.08H10.02V16.202h7.088v3.096zm12.765 1.907v9.684h-7.09v-3.186h2.52v-8.405h-2.52V16.2h7.09v5.003zm-2.83-6.6a2.829 2.829 0 1 1 0-5.657 2.829 2.829 0 0 1 0 5.657z" fill="#39414D"/></g>
+ </symbol>
+ <symbol id="icon-fan-mark" viewBox="0 0 59 59">
+ <g fill="param(fill) none" fill-rule="evenodd"><circle fill="#FFF" cx="29.5" cy="29.5" r="29.5"/><path d="M29.5 3C14.864 3 3 14.864 3 29.5S14.864 56 29.5 56C44.135 56 56 44.136 56 29.5S44.135 3 29.5 3zm-10 12a3.5 3.5 0 1 1 0 7.001 3.5 3.5 0 0 1 0-7.001zM25 28.004h-3.197v11.01H25V43h-9V24h9v4.004zm17 2.468V43h-9v-4.122h3.198V28.004H33V24h9v6.472zM38.5 22a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7z" fill="#39414D"/></g>
+ </symbol>
+ <symbol id="icon-fan-profile-avatar" viewBox="0 0 50 50">
+ <g fill="param(fill) none" fill-rule="evenodd" opacity=".4"><path d="M1 25C1 11.745 11.745 1 25 1s24 10.745 24 24-10.745 24-24 24S1 38.255 1 25z" stroke="#FFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M40.273 43.454V41.89a6.545 6.545 0 0 0-3.3-5.684l-7.068-4.04M20.052 32.191l-7.026 4.015a6.545 6.545 0 0 0-3.299 5.683v1.565" stroke="#FFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M25 32.727A7.728 7.728 0 0 1 17.273 25v-4.364a7.728 7.728 0 0 1 15.454 0V25A7.728 7.728 0 0 1 25 32.727zm0 2c5.372 0 9.727-4.355 9.727-9.727v-4.364c0-5.372-4.355-9.727-9.727-9.727s-9.727 4.355-9.727 9.727V25c0 5.372 4.355 9.727 9.727 9.727z" fill="#FFF"/></g>
+ </symbol>
+ <symbol id="icon-games" viewBox="0 0 20 13">
+ <path d="M19.49 7.165c-.275-1.91-.875-3.655-2.02-5.18C16.65.95 15.615.295 14.25.35c-.98.055-1.855.38-2.62.925-.38.275-.82.435-1.31.38h-.6c-.435.055-.875-.11-1.255-.325A6.237 6.237 0 0 0 7.1.675C5.41.13 3.935.565 2.79 1.93c-.275.325-.49.655-.71 1.035C.88 5.145.5 7.49.715 10c.055.6.11 1.2.325 1.745.325.765.925 1.145 1.69 1.035.38-.055.655-.275.925-.49C4.53 11.635 5.29 10.765 6 9.945c.325-.38.71-.545 1.2-.545.925 0 1.91 0 2.835-.055.655 0 1.365 0 2.02-.055 1.635-.055 1.475-.055 2.51 1.035.71.765 1.42 1.475 2.345 1.965.82.435 1.745.165 2.125-.655.11-.22.165-.49.22-.71.4-1.25.4-2.505.235-3.76zm-11.945-1.2H6.07V7.44H4.65V5.965H3.175v-1.42H4.65V3.07h1.42v1.475h1.475v1.42zm6.33-1.2c-.545 0-.98-.435-1.035-.98 0-.545.435-1.035 1.035-1.035.545 0 1.035.435 1.035.98 0 .545-.435 1.035-1.035 1.035zm2.4 2.125c-.545 0-1.035-.435-1.035-.98 0-.545.435-.98.98-.98.6 0 1.035.38 1.035.98 0 .545-.435.98-.98.98z" fill="param(fill) #94D11F" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="icon-lifestyle" viewBox="0 0 22 21">
+ <g fill="param(fill) #FFD000" fill-rule="evenodd"><circle cx="10.945" cy="10.325" r="5.27"/><path d="M4.37 11.63V8.915l-3.695 1.41L4.37 11.63zM17.575 8.915v2.715l3.695-1.415-3.695-1.3zM12.305 16.9H9.64L11 20.545l1.305-3.645zM9.64 3.695h2.665L10.89 0 9.64 3.695zM7.25 15.925l-1.9-1.905-1.635 3.535 3.535-1.63zM14.695 4.675l1.905 1.9 1.63-3.585-3.535 1.685zM16.6 14.02l-1.905 1.905 3.59 1.575-1.685-3.48zM5.35 6.575l1.9-1.9-3.585-1.63 1.685 3.53z"/></g>
+ </symbol>
+ <symbol id="icon-menu" viewBox="0 0 24 24">
+ <path d="M23 11H1a1 1 0 0 0 0 2h22a1 1 0 0 0 0-2zm0-7H1a1 1 0 0 0 0 2h22a1 1 0 0 0 0-2zm0 14H1a1 1 0 0 0 0 2h22a1 1 0 0 0 0-2z" fill-rule="evenodd" class="fill"/>
+ </symbol>
+ <symbol id="icon-movies" viewBox="0 0 15 17">
+ <g fill="param(fill) #09D3BF" fill-rule="evenodd"><path d="M1.425 7.965h13.37v8.585H1.425zM13.98.795l-1.795 3.75L14.575 4 13.98.795zM3.27 3.185l.11-.165-2.555.545.655 3.205 1.79-3.585zM5.285 2.64L3.49 6.335l2.335-.485L7.73 2.1l-2.445.54zM7.835 5.465l2.34-.54 1.845-3.75-2.39.54-1.795 3.75z"/></g>
+ </symbol>
+ <symbol id="icon-music" viewBox="0 0 17 18">
+ <g fill="param(fill) #C819AD" fill-rule="evenodd"><path d="M15.61 5.98C13.87.87 8.22.71 8.11.655 8.055.655 2.405.82.665 5.98c-1.575 4.675.325 7.39.705 7.88v.815c.27 2.77 2.77 2.825 2.77 2.825l-.925-6.035s-.76.165-1.305.87c-.49-.98-1.035-2.99-.055-5.925 1.465-4.24 6.085-4.4 6.25-4.455.055 0 4.835.165 6.305 4.455.98 2.825.49 4.785 0 5.815-.545-.545-1.14-.705-1.14-.705l-.92 6.035s2.5-.055 2.77-2.825c.055-.38 0-.76 0-1.035.545-.925 1.955-3.53.49-7.715z"/><path d="M5.654 11.044l.922 6.07-1.235.188-.923-6.07 1.236-.188zM10.833 11.07l1.236.188-.923 6.07-1.235-.188.922-6.07z"/></g>
+ </symbol>
+ <symbol id="icon-search" viewBox="0 0 24 24">
+ <g fill-rule="evenodd" class="fill"><path d="M21.747 20.524l-4.872-4.871a.864.864 0 1 0-1.222 1.222l4.871 4.872a.864.864 0 1 0 1.223-1.223z"/><path d="M3.848 10.763a6.915 6.915 0 0 1 6.915-6.915 6.915 6.915 0 0 1 6.915 6.915 6.915 6.915 0 0 1-6.915 6.915 6.915 6.915 0 0 1-6.915-6.915zm-1.729 0a8.643 8.643 0 0 0 8.644 8.644 8.643 8.643 0 0 0 8.644-8.644 8.643 8.643 0 0 0-8.644-8.644 8.643 8.643 0 0 0-8.644 8.644z"/></g>
+ </symbol>
+ <symbol id="icon-share" viewBox="0 0 55 62">
+ <g fill="param(fill) #80DBEF" fill-rule="evenodd"><path d="M54.297 25c0-6.9-2.5-13.5-6.9-18.7l4.6-4.6c.4-.4.4-1 0-1.4-.4-.4-1-.4-1.4 0l-4.5 4.5c-1.3-1.3-2.7-2.5-4.2-3.6-.5-.3-1.1-.2-1.4.2-.3.5-.2 1.1.2 1.4 7.3 5.1 11.6 13.4 11.6 22.2 0 14.9-12.1 27-27 27-9.6 0-18.6-5.2-23.4-13.5-.3-.5-.9-.6-1.4-.4-.5.3-.6.9-.4 1.4 1.4 2.3 3 4.4 4.9 6.3l-4.5 4.5c-.4.4-.4 1 0 1.4.3.2.5.3.8.3.3 0 .5-.1.7-.3l4.6-4.6c4.9 4.1 11.1 6.6 17.7 6.8V60h-11c-.6 0-1 .4-1 1s.4 1 1 1h24c.6 0 1-.4 1-1s-.4-1-1-1h-11v-6.1c15.5-.5 28-13.2 28-28.9"/><path d="M39.397 40.5l-6-6c-5.5 5.2-12.3 8.5-17.6 8.5-.5 0-1 0-1.5-.1 3.3 2 7.1 3.2 11 3.2 5.3-.1 10.2-2.1 14.1-5.6M18.597 16.9l6.7 6.7 13.5-13.5c-1-.7-2.3-1-4-1-4.8 0-11.1 3-16.2 7.8M10.097 30c-1.1 3.5-1 6.6.3 8.5l13.5-13.5-6.6-6.6c-3.4 3.5-6 7.7-7.2 11.6M34.797 33.1l6 6c6.4-7 7.2-17.3 2.3-25.1.2 1.9 0 4.1-.8 6.6-1.2 4.2-4 8.7-7.5 12.5"/><path d="M31.997 33.1l-6.7-6.7-13.5 13.5c1 .7 2.3 1 4 1 4.8 0 11.1-3 16.2-7.8M8.197 29.4c1.3-4.2 4.1-8.7 7.6-12.5l-6-6c-6.4 7-7.2 17.3-2.3 25.1-.3-1.9-.1-4.1.7-6.6M26.697 25l6.6 6.6c3.3-3.5 5.9-7.7 7.1-11.7 1.1-3.5 1-6.6-.3-8.5L26.697 25zM34.797 7.1c.5 0 1 0 1.5.1-3.2-2.1-7-3.2-11-3.2-5.3 0-10.2 2-14.1 5.5l6 6c5.5-5.1 12.3-8.4 17.6-8.4"/></g>
+ </symbol>
+ <symbol id="icon-top-comm-arrow-down" viewBox="0 0 12 12">
+ <path d="M5.25 9.129l-4.19-4.19L0 6l6 6 6-6-1.06-1.06-4.19 4.189V0h-1.5v9.129z" fill="param(fill) #F50" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="icon-top-comm-arrow-up" viewBox="0 0 12 12">
+ <path d="M6.75 2.871l4.19 4.19L12 6 6 0 0 6l1.06 1.06 4.19-4.189V12h1.5V2.871z" fill="param(fill) #709F18" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="icon-top-comm-circle" viewBox="0 0 12 12">
+ <circle cx="1816" cy="1646" r="6" transform="translate(-1810 -1640)" fill="param(fill) #1A5EB8" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="icon-tv" viewBox="0 0 18 17">
+ <g fill="param(fill) #00B7E0" fill-rule="evenodd"><path d="M.85.825v11.9H17.1V.825H.85zm14.835 9.405H2.26V2.185h13.425v8.045zM6.555 14.14h4.89v2.825h-4.89z"/></g>
+ </symbol>
+ <symbol id="instagram-icon-default" viewBox="0 0 24 24">
+ <g fill="param(fill) #FFF" fill-rule="evenodd"><path d="M12 2.162c3.204 0 3.584.012 4.849.07 1.366.062 2.633.336 3.608 1.311.975.975 1.249 2.242 1.311 3.608.058 1.265.07 1.645.07 4.849s-.012 3.584-.07 4.849c-.062 1.366-.336 2.633-1.311 3.608-.975.975-2.242 1.249-3.608 1.311-1.265.058-1.645.07-4.849.07s-3.584-.012-4.849-.07c-1.366-.062-2.633-.336-3.608-1.311-.975-.975-1.249-2.242-1.311-3.608-.058-1.265-.07-1.645-.07-4.849s.012-3.584.07-4.849c.062-1.366.336-2.633 1.311-3.608.975-.975 2.242-1.249 3.608-1.311 1.265-.058 1.645-.07 4.849-.07zM12 0C8.741 0 8.332.014 7.052.072c-1.95.089-3.663.567-5.038 1.942C.639 3.389.161 5.102.072 7.052.014 8.332 0 8.741 0 12c0 3.259.014 3.668.072 4.948.089 1.95.567 3.663 1.942 5.038 1.375 1.375 3.088 1.853 5.038 1.942C8.332 23.986 8.741 24 12 24c3.259 0 3.668-.014 4.948-.072 1.95-.089 3.663-.567 5.038-1.942 1.375-1.375 1.853-3.088 1.942-5.038.058-1.28.072-1.689.072-4.948 0-3.259-.014-3.668-.072-4.948-.089-1.95-.567-3.663-1.942-5.038C20.611.639 18.898.161 16.948.072 15.668.014 15.259 0 12 0z"/><path d="M12 5.838a6.162 6.162 0 1 0 0 12.324 6.162 6.162 0 0 0 0-12.324zM12 16a4 4 0 1 1 0-8 4 4 0 0 1 0 8z"/><circle cx="18.406" cy="5.594" r="1.44"/></g>
+ </symbol>
+ <symbol id="linkedin-logo" viewBox="0 0 430.117 430.117">
+ <path d="M430.117 261.543V420.56h-92.188V272.193c0-37.271-13.334-62.707-46.703-62.707-25.473 0-40.632 17.142-47.301 33.724-2.432 5.928-3.058 14.179-3.058 22.477V420.56h-92.219s1.242-251.285 0-277.32h92.21v39.309c-.187.294-.43.611-.606.896h.606v-.896c12.251-18.869 34.13-45.824 83.102-45.824 60.673-.001 106.157 39.636 106.157 124.818zM52.183 9.558C20.635 9.558 0 30.251 0 57.463c0 26.619 20.038 47.94 50.959 47.94h.616c32.159 0 52.159-21.317 52.159-47.94-.606-27.212-20-47.905-51.551-47.905zM5.477 420.56h92.184V143.24H5.477v277.32z" fill="param(fill) #FFF"/>
+ </symbol>
+ <symbol id="logo-wikia" viewBox="0 0 110 30">
+ <path d="M50.323 29.224V.144h6.68V16.44l1.78-2.175 3.844-4.433h9.55l-8.012 7.663 8.35 11.73h-8.66l-4.55-7.375L57 23.99v5.234h-6.68M12.74 9.83L9.504 23.075 6.97 9.83H.01l5.146 19.394h8.95L16.61 19.16l2.508 10.064h8.95L33.232 9.83h-6.993L23.72 23.075 20.43 9.83h-7.69m96.88 5.64l.372-5.64h-6.096l-.462 2.127c-1.403-1.45-3.148-2.647-6.22-2.647-5.56 0-8.595 3.515-8.595 10.182 0 6.668 3.035 10.182 8.593 10.182 3.073 0 4.818-1.195 6.22-2.643l.48 2.194h6.08l-.372-5.708V15.47zm-6.664 6.488c-.854 1.086-2.187 1.81-3.93 1.81-1.997 0-3.59-1.27-3.59-4.276 0-3.007 1.593-4.276 3.59-4.276 1.743 0 3.076.726 3.93 1.812v4.93zM40.357.252c-2.11 0-3.818 1.673-3.818 3.736 0 2.062 1.707 3.734 3.817 3.734 2.11 0 3.818-1.672 3.818-3.734 0-2.063-1.708-3.736-3.818-3.736m5.752 13.668V9.83h-9.57v19.392h9.57v-4.068h-3V13.92h3m31.535-9.932c0 2.062 1.71 3.734 3.82 3.734 2.108 0 3.818-1.672 3.818-3.734 0-2.063-1.71-3.736-3.818-3.736-2.11 0-3.82 1.673-3.82 3.736m1.067 21.168h-3v4.068h9.57V9.832h-9.57v4.087h3v11.236z" fill="param(fill) #FFF"/>
+ </symbol>
+ <symbol id="menu-control" viewBox="0 0 24 24">
+ <path d="M6.293 2.707L15.586 12l-9.293 9.293a.999.999 0 1 0 1.414 1.414l10-10a.997.997 0 0 0 0-1.414l-10-10a.999.999 0 1 0-1.414 1.414" fill="param(fill) #999" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="reddit-icon-default" viewBox="0 0 24 21">
+ <path d="M23.639 10.127c0 1.118-.474 1.932-1.422 2.435.036.183.054.435.054.76 0 2.057-1.027 3.818-3.08 5.28-2.053 1.463-4.52 2.193-7.398 2.193-2.877 0-5.335-.723-7.37-2.167-2.037-1.444-3.055-3.193-3.055-5.252 0-.36.018-.631.054-.814C.474 12.06 0 11.245 0 10.127c0-.758.263-1.4.788-1.922.528-.525 1.142-.786 1.845-.786.631 0 1.21.234 1.736.705 1.932-1.373 4.194-2.112 6.793-2.22h.104L12.899.325l4.737.973C18.128.432 18.813 0 19.69 0h.054c.668 0 1.22.236 1.658.705.438.469.658 1.046.658 1.733 0 .684-.22 1.264-.658 1.733-.438.469-.99.702-1.658.702h-.054a2.284 2.284 0 0 1-1.579-.622 2.19 2.19 0 0 1-.737-1.543l-3.526-.758-1.16 4.007c2.67.18 4.862.903 6.582 2.167.526-.471 1.124-.705 1.79-.705.702 0 1.308.261 1.816.786.51.522.764 1.164.764 1.922zM1.79 11.211c.281-.832.789-1.571 1.526-2.22a1.293 1.293 0 0 0-.789-.273c-.35 0-.658.136-.92.406a1.31 1.31 0 0 0-.396.948c0 .543.193.922.58 1.139zm4.895.92c0 .505.169.919.501 1.245.333.326.728.487 1.184.487a1.64 1.64 0 0 0 1.186-.487c.333-.326.499-.74.499-1.246 0-.469-.157-.866-.474-1.192-.315-.323-.72-.487-1.211-.487-.49 0-.894.164-1.21.487a1.654 1.654 0 0 0-.475 1.192zm5.108 6.065c1.685 0 3.053-.541 4.107-1.625l-.685-.649c-.876.867-2.018 1.299-3.422 1.299a4.923 4.923 0 0 1-1.79-.326c-.561-.215-.966-.432-1.21-.65l-.37-.323-.684.65c1.053 1.083 2.403 1.624 4.054 1.624zm2.343-4.82c.333.326.728.487 1.184.487.456 0 .852-.161 1.184-.487.335-.326.501-.74.501-1.246 0-.469-.157-.866-.474-1.192-.314-.323-.719-.487-1.21-.487-.493 0-.895.164-1.212.487a1.645 1.645 0 0 0-.474 1.192c0 .506.167.92.501 1.246zm4.95-11.59a.963.963 0 0 0-.239.652c0 .251.08.469.238.649.157.18.36.27.604.27.248 0 .459-.09.634-.27a.9.9 0 0 0 .263-.65.905.905 0 0 0-.263-.65.852.852 0 0 0-.634-.271.767.767 0 0 0-.604.27zm2.762 9.478c.387-.289.58-.686.58-1.192 0-.36-.122-.677-.369-.948a1.223 1.223 0 0 0-.948-.406c-.28 0-.543.09-.788.272.737.65 1.244 1.408 1.525 2.274z" fill="param(fill) #FFF" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="twitter-icon-default" viewBox="0 0 18 14">
+ <path d="M15.607 3.443v.459C15.607 8.607 12.049 14 5.508 14 3.443 14 1.607 13.426 0 12.393c.344 0 .574.115.918.115 1.607 0 3.213-.574 4.475-1.492-1.491 0-2.868-1.032-3.327-2.524.23 0 .459.115.688.115.344 0 .344 0 .803-.115C1.837 8.148.344 6.656.344 4.934c0 .345 1.263.345 1.836.46A3.642 3.642 0 0 1 .69 2.41c0-.689.229-1.262.573-1.836C2.984 2.754 5.738 4.13 8.607 4.36c-.115-.345-.115-.574-.115-.804A3.575 3.575 0 0 1 12.049 0c1.033 0 1.951.344 2.64 1.148.803-.23 1.491-.46 2.18-.918-.344.918-.918 1.491-1.492 1.95a10.861 10.861 0 0 0 2.066-.573c-.574.688-1.148 1.377-1.836 1.836z" fill="param(fill) #FFF" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="youtube-icon-default" viewBox="0 0 24 17">
+ <path d="M23.8 3.6s-.2-1.7-1-2.4c-.9-1-1.9-1-2.4-1C17 0 12 0 12 0S7 0 3.6.2c-.5.1-1.5.1-2.4 1-.7.7-1 2.4-1 2.4S0 5.5 0 7.5v1.8c0 1.9.2 3.9.2 3.9s.2 1.7 1 2.4c.9 1 2.1.9 2.6 1 1.9.2 8.2.2 8.2.2s5 0 8.4-.3c.5-.1 1.5-.1 2.4-1 .7-.7 1-2.4 1-2.4s.2-1.9.2-3.9V7.4c0-1.9-.2-3.8-.2-3.8zM9.5 11.5V4.8L16 8.2l-6.5 3.3z" fill="param(fill) #FFF" fill-rule="evenodd"/>
+ </symbol></svg><svg xmlns="http://www.w3.org/2000/svg" style="width:0; height:0; visibility:hidden;">
+ <defs>
+ <linearGradient id="sprite-a" x1="0%" x2="63.848%" y1="100%" y2="32.54%"><stop stop-color="#94D11F" offset="0%"/><stop stop-color="#09D3BF" offset="100%"/></linearGradient><linearGradient x1="33.016%" y1="84.794%" x2="84.225%" y2="35.32%" id="sprite-b"><stop stop-color="#ADED00" offset="0%"/><stop stop-color="#00D6D6" offset="100%"/></linearGradient><linearGradient x1="0%" y1="100%" x2="63.848%" y2="32.54%" id="sprite-c"><stop stop-color="#94D11F" offset="0%"/><stop stop-color="#09D3BF" offset="100%"/></linearGradient><linearGradient id="sprite-d" x1="0%" x2="63.848%" y1="100%" y2="32.54%"><stop stop-color="#94D11F" offset="0%"/><stop stop-color="#09D3BF" offset="100%"/></linearGradient><clipPath id="sprite-e"><path fill="none" clip-rule="evenodd" d="M83.06 19.53v3h3v-3zm8.77-4a7 7 0 0 1 .34-2.28 4.92 4.92 0 0 1 .94-1.68 4 4 0 0 1 1.41-1 4.28 4.28 0 0 1 3.41 0 4 4 0 0 1 1.41 1 4.92 4.92 0 0 1 .94 1.68 7 7 0 0 1 .34 2.28 7 7 0 0 1-.34 2.28 4.77 4.77 0 0 1-.94 1.67 4.09 4.09 0 0 1-1.41 1 4.28 4.28 0 0 1-3.41 0 4.09 4.09 0 0 1-1.41-1 4.77 4.77 0 0 1-.94-1.67 7 7 0 0 1-.34-2.28zm-2.46 0a9.28 9.28 0 0 0 .44 2.9 6.61 6.61 0 0 0 1.31 2.34 6 6 0 0 0 2.16 1.56 8.09 8.09 0 0 0 5.91 0 6.06 6.06 0 0 0 2.14-1.56 6.61 6.61 0 0 0 1.31-2.34 9.28 9.28 0 0 0 .44-2.9 9.41 9.41 0 0 0-.44-2.91 6.59 6.59 0 0 0-1.31-2.35 6.21 6.21 0 0 0-2.13-1.58 7.91 7.91 0 0 0-5.91 0 6.18 6.18 0 0 0-2.16 1.57 6.59 6.59 0 0 0-1.31 2.35 9.41 9.41 0 0 0-.44 2.91zm16.36-7.08v14.12h2.32v-6.29a9.66 9.66 0 0 1 .27-2.42 4.63 4.63 0 0 1 .87-1.79 3.75 3.75 0 0 1 1.6-1.07 6.57 6.57 0 0 1 2.38-.38V8.11a5.22 5.22 0 0 0-3.11.76 6.29 6.29 0 0 0-2.06 2.55h-.05v-3zm21.37 12.91V8.44h-2.19v2a4.13 4.13 0 0 0-1.75-1.76 5.21 5.21 0 0 0-2.46-.59 6.29 6.29 0 0 0-3.09.7 6 6 0 0 0-2 1.78 7 7 0 0 0-1.09 2.4 10.73 10.73 0 0 0-.33 2.58 9.35 9.35 0 0 0 .4 2.75 6.57 6.57 0 0 0 1.19 2.27 5.77 5.77 0 0 0 2 1.54 6.22 6.22 0 0 0 2.76.57 5.64 5.64 0 0 0 2.58-.61 3.9 3.9 0 0 0 1.82-1.93h.05v.93a9.39 9.39 0 0 1-.23 2.16 4.51 4.51 0 0 1-.75 1.68 3.64 3.64 0 0 1-1.39 1.09 4.31 4.31 0 0 1-1.94.4 6.26 6.26 0 0 1-1.2-.12 4.37 4.37 0 0 1-1.16-.4 2.89 2.89 0 0 1-.9-.71 1.72 1.72 0 0 1-.4-1.07h-2.32a3.65 3.65 0 0 0 .6 1.94 4.33 4.33 0 0 0 1.38 1.28 6.15 6.15 0 0 0 1.86.71 9.61 9.61 0 0 0 2 .22q3.39 0 5-1.72a7.44 7.44 0 0 0 1.58-5.19zm-6.5-.68a3.55 3.55 0 0 1-1.91-.48 3.69 3.69 0 0 1-1.23-1.26 5.44 5.44 0 0 1-.66-1.73 9.73 9.73 0 0 1-.19-1.91 8 8 0 0 1 .23-1.94 4.81 4.81 0 0 1 .74-1.64 3.72 3.72 0 0 1 1.3-1.13 4 4 0 0 1 1.91-.42 3.69 3.69 0 0 1 1.86.44 3.62 3.62 0 0 1 1.24 1.16 5.11 5.11 0 0 1 .7 1.63 7.74 7.74 0 0 1 .22 1.83 8.53 8.53 0 0 1-.23 2 5.74 5.74 0 0 1-.72 1.76 3.81 3.81 0 0 1-1.3 1.26 3.76 3.76 0 0 1-2 .48z"/></clipPath><linearGradient id="sprite-f" x1="91.536%" x2="-37.559%" y1="4.839%" y2="71.968%"><stop stop-color="#00A0FF" offset="0%"/><stop stop-color="#00A1FF" offset=".657%"/><stop stop-color="#00BEFF" offset="26.01%"/><stop stop-color="#00D2FF" offset="51.22%"/><stop stop-color="#00DFFF" offset="76.04%"/><stop stop-color="#00E3FF" offset="100%"/></linearGradient><linearGradient id="sprite-g" x1="107.728%" x2="-130.665%" y1="49.428%" y2="49.428%"><stop stop-color="#FFE000" offset="0%"/><stop stop-color="#FFBD00" offset="40.87%"/><stop stop-color="#FFA500" offset="77.54%"/><stop stop-color="#FF9C00" offset="100%"/></linearGradient><linearGradient id="sprite-h" x1="86.389%" x2="-49.888%" y1="17.815%" y2="194.393%"><stop stop-color="#FF3A44" offset="0%"/><stop stop-color="#C31162" offset="100%"/></linearGradient><linearGradient id="sprite-i" x1="-18.579%" x2="42.275%" y1="-54.527%" y2="24.69%"><stop stop-color="#32A071" offset="0%"/><stop stop-color="#2DA771" offset="6.85%"/><stop stop-color="#15CF74" offset="47.62%"/><stop stop-color="#06E775" offset="80.09%"/><stop stop-color="#00F076" offset="100%"/></linearGradient>
+<linearGradient id="wds-company-logo-fandom-heart-a" x1="0%" x2="63.848%" y1="100%" y2="32.54%"><stop stop-color="#94D11F" offset="0%"/><stop stop-color="#09D3BF" offset="100%"/></linearGradient>
+<linearGradient x1="33.016%" y1="84.794%" x2="84.225%" y2="35.32%" id="wds-company-logo-fandom-powered-by-wikia-two-lines-a"><stop stop-color="#ADED00" offset="0%"/><stop stop-color="#00D6D6" offset="100%"/></linearGradient>
+<linearGradient x1="0%" y1="100%" x2="63.848%" y2="32.54%" id="wds-company-logo-fandom-powered-by-wikia-a"><stop stop-color="#94D11F" offset="0%"/><stop stop-color="#09D3BF" offset="100%"/></linearGradient>
+<linearGradient id="wds-company-logo-fandom-a" x1="0%" x2="63.848%" y1="100%" y2="32.54%"><stop stop-color="#94D11F" offset="0%"/><stop stop-color="#09D3BF" offset="100%"/></linearGradient>
+<clipPath id="wds-company-logo-wikia-org-a"><path fill="none" clip-rule="evenodd" d="M83.06 19.53v3h3v-3zm8.77-4a7 7 0 0 1 .34-2.28 4.92 4.92 0 0 1 .94-1.68 4 4 0 0 1 1.41-1 4.28 4.28 0 0 1 3.41 0 4 4 0 0 1 1.41 1 4.92 4.92 0 0 1 .94 1.68 7 7 0 0 1 .34 2.28 7 7 0 0 1-.34 2.28 4.77 4.77 0 0 1-.94 1.67 4.09 4.09 0 0 1-1.41 1 4.28 4.28 0 0 1-3.41 0 4.09 4.09 0 0 1-1.41-1 4.77 4.77 0 0 1-.94-1.67 7 7 0 0 1-.34-2.28zm-2.46 0a9.28 9.28 0 0 0 .44 2.9 6.61 6.61 0 0 0 1.31 2.34 6 6 0 0 0 2.16 1.56 8.09 8.09 0 0 0 5.91 0 6.06 6.06 0 0 0 2.14-1.56 6.61 6.61 0 0 0 1.31-2.34 9.28 9.28 0 0 0 .44-2.9 9.41 9.41 0 0 0-.44-2.91 6.59 6.59 0 0 0-1.31-2.35 6.21 6.21 0 0 0-2.13-1.58 7.91 7.91 0 0 0-5.91 0 6.18 6.18 0 0 0-2.16 1.57 6.59 6.59 0 0 0-1.31 2.35 9.41 9.41 0 0 0-.44 2.91zm16.36-7.08v14.12h2.32v-6.29a9.66 9.66 0 0 1 .27-2.42 4.63 4.63 0 0 1 .87-1.79 3.75 3.75 0 0 1 1.6-1.07 6.57 6.57 0 0 1 2.38-.38V8.11a5.22 5.22 0 0 0-3.11.76 6.29 6.29 0 0 0-2.06 2.55h-.05v-3zm21.37 12.91V8.44h-2.19v2a4.13 4.13 0 0 0-1.75-1.76 5.21 5.21 0 0 0-2.46-.59 6.29 6.29 0 0 0-3.09.7 6 6 0 0 0-2 1.78 7 7 0 0 0-1.09 2.4 10.73 10.73 0 0 0-.33 2.58 9.35 9.35 0 0 0 .4 2.75 6.57 6.57 0 0 0 1.19 2.27 5.77 5.77 0 0 0 2 1.54 6.22 6.22 0 0 0 2.76.57 5.64 5.64 0 0 0 2.58-.61 3.9 3.9 0 0 0 1.82-1.93h.05v.93a9.39 9.39 0 0 1-.23 2.16 4.51 4.51 0 0 1-.75 1.68 3.64 3.64 0 0 1-1.39 1.09 4.31 4.31 0 0 1-1.94.4 6.26 6.26 0 0 1-1.2-.12 4.37 4.37 0 0 1-1.16-.4 2.89 2.89 0 0 1-.9-.71 1.72 1.72 0 0 1-.4-1.07h-2.32a3.65 3.65 0 0 0 .6 1.94 4.33 4.33 0 0 0 1.38 1.28 6.15 6.15 0 0 0 1.86.71 9.61 9.61 0 0 0 2 .22q3.39 0 5-1.72a7.44 7.44 0 0 0 1.58-5.19zm-6.5-.68a3.55 3.55 0 0 1-1.91-.48 3.69 3.69 0 0 1-1.23-1.26 5.44 5.44 0 0 1-.66-1.73 9.73 9.73 0 0 1-.19-1.91 8 8 0 0 1 .23-1.94 4.81 4.81 0 0 1 .74-1.64 3.72 3.72 0 0 1 1.3-1.13 4 4 0 0 1 1.91-.42 3.69 3.69 0 0 1 1.86.44 3.62 3.62 0 0 1 1.24 1.16 5.11 5.11 0 0 1 .7 1.63 7.74 7.74 0 0 1 .22 1.83 8.53 8.53 0 0 1-.23 2 5.74 5.74 0 0 1-.72 1.76 3.81 3.81 0 0 1-1.3 1.26 3.76 3.76 0 0 1-2 .48z"/></clipPath>
+<linearGradient id="wds-company-store-googleplay-a" x1="91.536%" x2="-37.559%" y1="4.839%" y2="71.968%"><stop stop-color="#00A0FF" offset="0%"/><stop stop-color="#00A1FF" offset=".657%"/><stop stop-color="#00BEFF" offset="26.01%"/><stop stop-color="#00D2FF" offset="51.22%"/><stop stop-color="#00DFFF" offset="76.04%"/><stop stop-color="#00E3FF" offset="100%"/></linearGradient><linearGradient id="wds-company-store-googleplay-b" x1="107.728%" x2="-130.665%" y1="49.428%" y2="49.428%"><stop stop-color="#FFE000" offset="0%"/><stop stop-color="#FFBD00" offset="40.87%"/><stop stop-color="#FFA500" offset="77.54%"/><stop stop-color="#FF9C00" offset="100%"/></linearGradient><linearGradient id="wds-company-store-googleplay-c" x1="86.389%" x2="-49.888%" y1="17.815%" y2="194.393%"><stop stop-color="#FF3A44" offset="0%"/><stop stop-color="#C31162" offset="100%"/></linearGradient><linearGradient id="wds-company-store-googleplay-d" x1="-18.579%" x2="42.275%" y1="-54.527%" y2="24.69%"><stop stop-color="#32A071" offset="0%"/><stop stop-color="#2DA771" offset="6.85%"/><stop stop-color="#15CF74" offset="47.62%"/><stop stop-color="#06E775" offset="80.09%"/><stop stop-color="#00F076" offset="100%"/></linearGradient>
+ </defs>
+ <symbol id="sprite" viewBox="0 0 100 100">
+
+ </symbol>
+ <symbol id="wds-avatar-badges-admin" viewBox="0 0 18 18">
+ <g fill-rule="evenodd"><path d="M0 9c0-1.15 1.247-2.04 1.66-3.04.43-1.035.196-2.544.976-3.324.78-.78 2.29-.546 3.324-.975C6.96 1.248 7.85 0 9 0c1.15 0 2.04 1.247 3.04 1.66 1.035.43 2.544.196 3.324.976.78.78.546 2.29.975 3.324C16.752 6.96 18 7.85 18 9c0 1.15-1.247 2.04-1.66 3.04-.43 1.035-.196 2.544-.976 3.324-.78.78-2.29.546-3.324.975-1 .413-1.89 1.66-3.04 1.66-1.15 0-2.04-1.247-3.04-1.66-1.035-.43-2.544-.196-3.324-.976-.78-.78-.546-2.29-.975-3.324C1.248 11.04 0 10.15 0 9" fill="param(fill) #E3BD00"/><path d="M12.567 7.523L10.41 7.21l-.964-1.954c-.17-.34-.728-.34-.897 0L7.584 7.21l-2.157.313a.5.5 0 0 0-.277.853l1.562 1.52-.368 2.15a.5.5 0 0 0 .725.526l1.927-1.014 1.93 1.014a.5.5 0 0 0 .725-.526l-.37-2.148 1.562-1.52a.502.502 0 0 0-.277-.855z" fill="#FFF"/></g>
+ </symbol>
+ <symbol id="wds-avatar-badges-content-moderator" viewBox="0 0 18 18">
+ <g fill-rule="evenodd"><path d="M0 9c0-1.149 1.247-2.04 1.661-3.04.43-1.035.195-2.544.975-3.324.78-.78 2.29-.546 3.324-.975C6.96 1.247 7.851 0 9 0s2.04 1.247 3.04 1.661c1.035.43 2.544.195 3.324.975.78.78.546 2.29.975 3.324C16.753 6.96 18 7.851 18 9s-1.247 2.04-1.661 3.04c-.43 1.035-.195 2.544-.975 3.324-.78.78-2.29.546-3.324.975C11.04 16.753 10.149 18 9 18s-2.04-1.247-3.04-1.661c-1.035-.43-2.544-.195-3.324-.975-.78-.78-.546-2.29-.975-3.324C1.247 11.04 0 10.149 0 9" fill="param(fill) #999"/><path d="M9.05 6.75l-3.9 3.9c-.1.1-.15.2-.15.35v1.5c0 .3.2.5.5.5H7c.15 0 .25-.05.35-.15l3.9-3.9-2.2-2.2zm3.8-.1l-1.5-1.5c-.2-.2-.5-.2-.7 0l-.9.9 2.2 2.2.9-.9c.2-.2.2-.5 0-.7z" fill="#FFF"/></g>
+ </symbol>
+ <symbol id="wds-avatar-badges-discussion-moderator" viewBox="0 0 18 18">
+ <g fill-rule="evenodd"><path d="M0 9c0-1.15 1.247-2.04 1.66-3.04.43-1.035.196-2.544.976-3.324.78-.78 2.29-.546 3.324-.975C6.96 1.248 7.85 0 9 0c1.15 0 2.04 1.247 3.04 1.66 1.035.43 2.544.196 3.324.976.78.78.546 2.29.975 3.324C16.752 6.96 18 7.85 18 9c0 1.15-1.247 2.04-1.66 3.04-.43 1.035-.196 2.544-.976 3.324-.78.78-2.29.546-3.324.975-1 .413-1.89 1.66-3.04 1.66-1.15 0-2.04-1.247-3.04-1.66-1.035-.43-2.544-.196-3.324-.976-.78-.78-.546-2.29-.975-3.324C1.248 11.04 0 10.15 0 9" fill="param(fill) #999"/><path d="M12.82 8.232c0 1.782-1.753 3.232-3.91 3.232a4.69 4.69 0 0 1-.978-.104l-1.833.727a.33.33 0 0 1-.32-.043.322.322 0 0 1-.126-.293l.17-1.532C5.293 9.653 5 8.953 5 8.232 5 6.45 6.754 5 8.91 5c2.157 0 3.91 1.45 3.91 3.232z" fill="#FFF"/></g>
+ </symbol>
+ <symbol id="wds-avatar-badges-helper" viewBox="0 0 18 18">
+ <g fill-rule="evenodd"><path d="M0 9c0-1.149 1.247-2.04 1.661-3.04.43-1.035.195-2.544.975-3.324.78-.78 2.29-.546 3.324-.975C6.96 1.247 7.851 0 9 0s2.04 1.247 3.04 1.661c1.035.43 2.544.195 3.324.975.78.78.546 2.29.975 3.324C16.753 6.96 18 7.851 18 9s-1.247 2.04-1.661 3.04c-.43 1.035-.195 2.544-.975 3.324-.78.78-2.29.546-3.324.975C11.04 16.753 10.149 18 9 18s-2.04-1.247-3.04-1.661c-1.035-.43-2.544-.195-3.324-.975-.78-.78-.546-2.29-.975-3.324C1.247 11.04 0 10.149 0 9"/><path d="M11.234 4L9.06 6.055 6.89 4.008 4 6.445V9.14L8.995 14 14 9.14l-.01-2.688L11.235 4zM5.245 6.703l1.608-1.356 3.739 3.526-1.484 1.485-3.863-3.655zm4.542.038l1.466-1.385L12.764 6.7l-1.467 1.468-1.51-1.426zM5 8.717v-.87l3.401 3.22-.487.486L5 8.717zm3.63 3.533l4.366-4.369.002.836-4.003 3.89-.365-.357z" fill="param(fill) #FFF"/></g>
+ </symbol>
+ <symbol id="wds-avatar-badges-staff" viewBox="0 0 18 18">
+ <g fill-rule="evenodd"><path d="M0 9c0-1.149 1.247-2.04 1.661-3.04.43-1.035.195-2.544.975-3.324.78-.78 2.29-.546 3.324-.975C6.96 1.247 7.851 0 9 0s2.04 1.247 3.04 1.661c1.035.43 2.544.195 3.324.975.78.78.546 2.29.975 3.324C16.753 6.96 18 7.851 18 9s-1.247 2.04-1.661 3.04c-.43 1.035-.195 2.544-.975 3.324-.78.78-2.29.546-3.324.975C11.04 16.753 10.149 18 9 18s-2.04-1.247-3.04-1.661c-1.035-.43-2.544-.195-3.324-.975-.78-.78-.546-2.29-.975-3.324C1.247 11.04 0 10.149 0 9" fill="param(fill) #00B7E0"/><path d="M11.234 4L9.06 6.055 6.89 4.008 4 6.445V9.14L8.995 14 14 9.14l-.01-2.688L11.235 4zM5.245 6.703l1.608-1.356 3.739 3.526-1.484 1.485-3.863-3.655zm4.542.038l1.466-1.385L12.764 6.7l-1.467 1.468-1.51-1.426zM5 8.717v-.87l3.401 3.22-.487.486L5 8.717zm3.63 3.533l4.366-4.369.002.836-4.003 3.89-.365-.357z" fill="#FFF"/></g>
+ </symbol>
+ <symbol id="wds-avatar-badges-vstf" viewBox="0 0 18 18">
+ <g fill-rule="evenodd"><path d="M0 9c0-1.15 1.247-2.04 1.66-3.04.43-1.035.196-2.544.976-3.324.78-.78 2.29-.546 3.324-.975C6.96 1.248 7.85 0 9 0c1.15 0 2.04 1.247 3.04 1.66 1.035.43 2.544.196 3.324.976.78.78.546 2.29.975 3.324C16.752 6.96 18 7.85 18 9c0 1.15-1.247 2.04-1.66 3.04-.43 1.035-.196 2.544-.976 3.324-.78.78-2.29.546-3.324.975-1 .413-1.89 1.66-3.04 1.66-1.15 0-2.04-1.247-3.04-1.66-1.035-.43-2.544-.196-3.324-.976-.78-.78-.546-2.29-.975-3.324C1.248 11.04 0 10.15 0 9"/><g fill="param(fill) #FFF"><path d="M7.667 5h2.667v8H7.667z"/><path d="M13 7.667v2.667H5V7.667z"/></g></g>
+ </symbol>
+ <symbol id="wds-company-logo-fandom-heart" viewBox="0 0 24 24">
+ <path fill="param(fill) url(#wds-company-logo-fandom-heart-a)" d="M10.175 16.803c0 .19-.046.46-.26.666l-.81.69-7.362-6.94V8.51l8.094 7.627c.126.12.338.367.338.666zm11.21-8.096v2.525l-9.158 8.86a.673.673 0 0 1-.493.21.73.73 0 0 1-.514-.21l-.838-.76L21.384 8.707zm-6.976 4.498l-2.54 2.422-8.04-7.672a1.997 1.997 0 0 1-.01-2.9l2.54-2.423 8.04 7.672c.84.8.84 2.1 0 2.9zm-1.5-6.682L15.55 4c.406-.387.945-.6 1.52-.6.575 0 1.114.213 1.52.6l2.73 2.605-4.164 3.973-1.52-1.45-2.73-2.605zm10.17-.403L17.09.317l-.125-.12-.124.12-5.22 5.03L6.96.867 6.953.864 6.948.858l-.583-.47-.12-.098-.115.106L.052 6.11 0 6.16v5.76l.05.05 11.396 10.867.123.117.12-.117L23.07 11.97l.05-.05V6.17l-.05-.05z"/>
+ </symbol>
+ <symbol id="wds-company-logo-fandom-powered-by-wikia-two-lines" viewBox="0 0 184 44">
+ <g fill="param(fill) none" fill-rule="evenodd"><path d="M48.283 1.884c-5.14 0-8.594 3.466-8.594 8.624v16.63h4.285V14.915h4.497v-4.07h-4.497v-.37c0-2.912 1.516-4.389 4.505-4.389.292 0 .571.05.867.104.112.02.226.04.342.058l.216.034v-4.21l-.163-.021a19.47 19.47 0 0 1-.383-.057 6.92 6.92 0 0 0-1.075-.11zm14.72 16.828c0 2.958-1.433 4.521-4.146 4.521-3.72 0-4.276-2.833-4.276-4.521 0-2.874 1.559-4.522 4.276-4.522 2.653 0 4.01 1.482 4.146 4.522m4.304.846a36.71 36.71 0 0 0-.018-.854c-.202-5.294-3.432-8.583-8.432-8.583-2.58 0-4.763.869-6.314 2.513-1.45 1.536-2.247 3.683-2.247 6.045 0 4.916 3.484 8.623 8.105 8.623 2.197 0 3.98-.839 5.186-2.432a11.6 11.6 0 0 0 .737 2.157l.05.11h4.32l-.118-.267c-1.206-2.715-1.244-5.481-1.27-7.312m11.612-9.438c-2.464 0-4.547.868-6.025 2.509-1.384 1.537-2.146 3.698-2.146 6.083v8.426h4.285v-8.426c0-2.874 1.416-4.521 3.886-4.521 2.469 0 3.885 1.647 3.885 4.52v8.427h4.285v-8.426c0-2.385-.762-4.546-2.146-6.083-1.478-1.64-3.56-2.508-6.024-2.508m23.299 8.591c0 2.958-1.433 4.521-4.145 4.521-3.721 0-4.277-2.833-4.277-4.521 0-2.874 1.56-4.522 4.277-4.522 2.653 0 4.009 1.482 4.145 4.522m3.684 0V4.276h-4.133v6.8c-1.317-.595-2.283-.955-3.92-.955-5.055 0-8.45 3.44-8.45 8.558 0 4.916 3.508 8.623 8.161 8.623 2.37 0 4.08-.715 5.213-2.185.181.78.447 1.619.763 2.401l.047.118h4.324l-.116-.266c-1.386-3.185-1.89-6.923-1.89-8.658m15.426 0c0 2.873-1.535 4.521-4.21 4.521-2.677 0-4.212-1.648-4.212-4.521 0-2.874 1.535-4.522 4.211-4.522s4.211 1.648 4.211 4.522m-4.21-8.591c-5.003 0-8.497 3.533-8.497 8.59 0 5.059 3.494 8.591 8.496 8.591 5.003 0 8.497-3.532 8.497-8.59s-3.494-8.591-8.497-8.591m34.45 2.328c-1.36-1.523-3.28-2.328-5.552-2.328-2.313 0-4.21 1.106-5.376 3.125-1.166-2.019-3.063-3.125-5.376-3.125-2.273 0-4.193.805-5.553 2.328-1.268 1.42-1.967 3.41-1.967 5.604v9.085h4.286v-9.085c0-2.455 1.179-3.862 3.234-3.862 2.054 0 3.233 1.407 3.233 3.862v9.085h4.286v-9.085c0-2.455 1.178-3.862 3.233-3.862s3.234 1.407 3.234 3.862v9.085h4.285v-9.085c0-2.194-.698-4.184-1.967-5.604" fill="#FFF"/><path d="M13.464 23.496c0 .267-.06.646-.346.935l-1.07.978-9.741-9.726v-3.817l10.71 10.696c.166.169.447.515.447.934zm14.833-11.351v3.54L16.179 28.109c-.2.202-.401.292-.652.292a.93.93 0 0 1-.68-.293l-1.109-1.065 14.559-14.898zm-9.231 6.306l-3.359 3.396L5.07 11.09a2.872 2.872 0 0 1-.829-2.034c0-.77.294-1.493.828-2.033l3.36-3.397 10.638 10.757a2.903 2.903 0 0 1 0 4.068zm-1.981-9.37l3.5-3.538a2.811 2.811 0 0 1 2.01-.84c.76 0 1.475.299 2.012.841l3.612 3.653-5.51 5.571-2.012-2.034-3.612-3.652zm13.452-.562L22.623.379l-.164-.17-.165.169-6.909 7.053-6.176-6.278-.007-.007-.008-.007-.771-.66-.161-.137-.15.15-8.043 8.01-.069.07v8.078l.068.068 15.077 15.239.164.165.163-.165 15.064-15.239.067-.068V8.587l-.066-.068z" fill="url(#wds-company-logo-fandom-powered-by-wikia-two-lines-a)"/><path d="M153.465 37.06l-.999 4.415-.779-4.414h-2.145l1.584 6.462h2.758l.771-3.354.773 3.354h2.758l1.59-6.462h-2.154l-.775 4.414-1.015-4.415zm27.791 4.042c-.264.36-.676.602-1.212.602-.615 0-1.105-.422-1.105-1.423 0-1.004.49-1.428 1.105-1.428.536 0 .948.243 1.212.605v1.644zm2.052-2.162l.114-1.88h-1.878l-.143.709c-.431-.481-.97-.881-1.914-.881-1.713 0-2.648 1.172-2.648 3.393 0 2.219.935 3.39 2.648 3.39.945 0 1.483-.398 1.914-.88l.147.73h1.874l-.114-1.902V38.94zm-18.266 4.582v-9.689h2.057v5.432l.55-.725 1.182-1.478h2.942l-2.468 2.553 2.573 3.907h-2.668l-1.402-2.457-.71.71v1.746zm-3.071-9.653c-.65 0-1.176.558-1.176 1.244 0 .688.526 1.246 1.176 1.246.65 0 1.176-.558 1.176-1.246 0-.686-.527-1.244-1.176-1.244m1.771 4.555V37.06h-2.947v6.462h2.947v-1.357h-.923v-3.741zm9.714-3.311c0 .688.528 1.246 1.178 1.246.65 0 1.177-.558 1.177-1.246 0-.686-.527-1.244-1.177-1.244s-1.178.558-1.178 1.244m.331 3.311v3.741h-.924v1.356h2.947V37.06h-2.947v1.365zm-82.189 1.667c.155 0 .303-.012.446-.036a.992.992 0 0 0 .377-.14.746.746 0 0 0 .262-.295c.066-.127.098-.294.098-.5 0-.205-.032-.371-.098-.498a.75.75 0 0 0-.262-.295 1.004 1.004 0 0 0-.377-.14 2.669 2.669 0 0 0-.446-.036h-1.046v1.94h1.046zm.369-3.047c.383 0 .709.06.977.177.269.118.488.274.656.467.169.194.292.414.369.662a2.592 2.592 0 0 1 0 1.537c-.077.251-.2.473-.369.667a1.826 1.826 0 0 1-.656.467c-.268.118-.594.177-.977.177h-1.415v2.321h-1.346v-6.475h2.76zm4.129 4.059c.06.256.155.488.287.693.131.206.302.37.514.495.211.123.469.185.772.185.303 0 .56-.062.771-.185.212-.124.383-.29.515-.495.131-.205.227-.437.287-.693a3.732 3.732 0 0 0 0-1.619 2.256 2.256 0 0 0-.287-.712 1.497 1.497 0 0 0-.515-.5 1.506 1.506 0 0 0-.771-.185c-.303 0-.56.062-.772.186-.212.124-.383.29-.514.499a2.25 2.25 0 0 0-.288.712 3.732 3.732 0 0 0 0 1.619m-1.23-2.14c.137-.415.334-.776.591-1.085a2.72 2.72 0 0 1 .948-.725 2.944 2.944 0 0 1 1.265-.262c.474 0 .897.088 1.269.263.371.175.686.417.943.725.257.309.454.67.591 1.084.138.414.206.863.206 1.347 0 .471-.068.911-.206 1.32a3.19 3.19 0 0 1-.591 1.065c-.257.303-.572.54-.943.712a2.98 2.98 0 0 1-1.27.259c-.468 0-.89-.087-1.264-.26a2.716 2.716 0 0 1-.948-.71 3.197 3.197 0 0 1-.591-1.067 4.109 4.109 0 0 1-.206-1.32c0-.483.069-.932.206-1.346m11.224 4.556l-1.038-4.407h-.017l-1.02 4.407h-1.364l-1.62-6.475h1.346l.969 4.408h.017l1.064-4.408h1.26l1.047 4.462h.017l1.002-4.462h1.32l-1.646 6.475zm8.179-6.475v1.197h-3.232v1.388h2.966v1.106h-2.966v1.587h3.3v1.197h-4.647v-6.475zm3.798 2.929c.31 0 .54-.072.695-.217.155-.145.231-.381.231-.708 0-.314-.076-.542-.231-.684-.154-.142-.386-.213-.694-.213h-1.475v1.822h1.475zm.48-2.93c.275 0 .522.048.742.142a1.683 1.683 0 0 1 .926.952c.083.214.125.446.125.694 0 .38-.076.71-.228.988-.15.278-.398.49-.741.635v.018c.166.049.303.123.411.222.109.1.198.218.266.354.069.136.119.286.15.449.032.163.053.326.064.49l.018.362c.005.14.015.282.03.427.014.145.037.282.068.412.032.13.079.24.142.331h-1.346a2.638 2.638 0 0 1-.138-.734 11.532 11.532 0 0 0-.077-.816c-.046-.34-.143-.587-.291-.744-.149-.157-.392-.236-.729-.236h-1.346v2.53h-1.346v-6.475h3.3zm7.469.001v1.197h-3.233v1.388h2.967v1.106h-2.967v1.587h3.301v1.197h-4.647v-6.475zm3.524 5.278c.194 0 .382-.033.565-.1.183-.066.346-.176.49-.33a1.71 1.71 0 0 0 .342-.604c.086-.248.129-.55.129-.906 0-.327-.03-.622-.09-.885a1.812 1.812 0 0 0-.296-.676 1.325 1.325 0 0 0-.545-.43c-.226-.1-.504-.15-.835-.15h-.96v4.081h1.2zm.094-5.278c.394 0 .762.067 1.102.2.34.133.634.332.883.598.248.266.443.599.583.998.14.399.21.867.21 1.406 0 .47-.058.906-.172 1.305a2.93 2.93 0 0 1-.518 1.034 2.45 2.45 0 0 1-.866.685c-.346.166-.754.25-1.222.25h-2.641v-6.477h2.64zm8.883 5.369c.131 0 .257-.014.377-.04a.897.897 0 0 0 .317-.137.674.674 0 0 0 .219-.259.933.933 0 0 0 .081-.416c0-.333-.088-.57-.266-.712-.177-.143-.411-.214-.703-.214h-1.465v1.778h1.44zm-.077-2.748a.93.93 0 0 0 .591-.181c.154-.121.232-.318.232-.59a.79.79 0 0 0-.078-.372.593.593 0 0 0-.205-.226.837.837 0 0 0-.296-.114 1.851 1.851 0 0 0-.347-.031h-1.26v1.514h1.363zm.171-2.621c.291 0 .557.027.797.082.24.054.446.143.618.267.171.124.304.289.398.494.095.206.142.46.142.762 0 .327-.07.599-.21.816-.14.218-.347.397-.622.536.378.114.659.316.845.603.186.287.278.633.278 1.038 0 .327-.06.61-.18.848-.12.239-.281.434-.484.585a2.092 2.092 0 0 1-.694.336c-.26.072-.528.108-.802.108h-2.967v-6.475h2.881zm2.495 0h1.51l1.431 2.557 1.423-2.557h1.5l-2.271 3.99v2.485h-1.346v-2.52z" fill="#656E78"/></g>
+ </symbol>
+ <symbol id="wds-company-logo-fandom-powered-by-wikia" viewBox="0 0 254 26">
+ <g fill="param(fill) none" fill-rule="evenodd"><path d="M232.073 9.342v10.496h2.358v-1.89l.814-.772 1.606 2.662h3.058l-2.948-4.234 2.828-2.765h-3.372l-1.356 1.598-.63.786V9.342h-2.357zm-8.503 3.496l-.888 4.78-1.162-4.78h-2.715l-1.143 4.78-.893-4.78h-2.46l1.817 7h3.16l.885-3.633.885 3.632h3.16l1.822-7h-2.47zm27.085 4.377c-.3.392-.772.654-1.387.654-.705 0-1.268-.46-1.268-1.545s.563-1.543 1.268-1.543c.615 0 1.086.262 1.387.654v1.78zm2.353-2.34l.13-2.037h-2.15l-.164.767c-.496-.522-1.112-.955-2.196-.955-1.963 0-3.035 1.27-3.035 3.675 0 2.407 1.072 3.675 3.035 3.675 1.084 0 1.7-.43 2.196-.954l.17.792h2.145l-.132-2.06v-2.904zM228.555 9.38a1.349 1.349 0 1 0 .002 2.7 1.349 1.349 0 0 0-.002-2.701m2.03 4.935V12.84l-1.02-.002h-2.358v7h3.378V18.37h-1.06v-4.057h1.06zm11.133-3.584a1.348 1.348 0 1 0 2.697 0 1.348 1.348 0 0 0-2.697-.001m.376 3.585v4.056h-1.06v1.468h3.38V12.84h-3.378v1.474h1.058z" fill="#0B2343"/><path d="M147.733 16.13c.176 0 .346-.013.51-.04.163-.026.306-.076.43-.15a.85.85 0 0 0 .3-.32c.074-.137.112-.316.112-.538 0-.222-.038-.402-.113-.54a.836.836 0 0 0-.3-.318 1.149 1.149 0 0 0-.43-.15 3.012 3.012 0 0 0-.51-.04h-1.194v2.096h1.195zm.42-3.292c.44 0 .81.064 1.118.192.308.127.558.295.75.504.193.21.333.447.422.715a2.674 2.674 0 0 1 0 1.66c-.09.27-.23.51-.422.72a2.084 2.084 0 0 1-.75.504c-.306.127-.678.19-1.116.19h-1.616v2.51H145v-6.995l3.154-.002zm4.817 4.385c.067.278.176.528.327.75.15.22.346.398.588.532.24.134.535.2.88.2.347.002.64-.066.883-.2.242-.134.437-.312.588-.534.15-.22.26-.47.328-.748.068-.277.103-.563.103-.857 0-.307-.035-.604-.103-.892a2.391 2.391 0 0 0-.328-.768 1.668 1.668 0 0 0-.588-.54c-.242-.133-.536-.2-.882-.2s-.64.067-.88.2c-.243.135-.44.314-.59.54-.15.225-.26.48-.327.768a3.76 3.76 0 0 0-.001 1.749m-1.407-2.312c.157-.447.382-.837.676-1.17a3.075 3.075 0 0 1 1.082-.784c.427-.19.91-.284 1.444-.284a3.53 3.53 0 0 1 1.45.284c.425.19.784.45 1.078.783.294.333.52.723.676 1.17.156.448.235.933.235 1.455 0 .51-.08.984-.235 1.425-.157.44-.382.825-.676 1.15a3.087 3.087 0 0 1-1.078.77c-.424.186-.908.28-1.45.28a3.583 3.583 0 0 1-1.444-.28 3.07 3.07 0 0 1-1.083-.77 3.381 3.381 0 0 1-.677-1.15 4.214 4.214 0 0 1-.235-1.425c0-.522.078-1.007.235-1.455m12.925 4.923l-1.185-4.76h-.02l-1.167 4.76h-1.557l-1.852-6.994h1.538l1.107 4.76h.02l1.214-4.76h1.44l1.195 4.818h.018l1.146-4.82h1.51l-1.882 6.995h-1.528zm9.443-6.993v1.292h-3.693v1.5h3.39v1.194h-3.39v1.714h3.77v1.293h-5.308V12.84h5.23zm4.437 3.163c.353 0 .617-.078.794-.235.176-.157.264-.41.264-.764 0-.34-.088-.586-.264-.74-.177-.153-.44-.23-.794-.23h-1.685v1.97h1.684zm.55-3.164c.312 0 .595.05.846.15.25.102.467.24.646.417.18.177.317.38.412.612.094.23.142.48.142.75 0 .41-.087.766-.26 1.067-.173.3-.455.53-.847.685v.02c.19.052.346.132.47.24.124.108.225.235.304.382.078.147.135.308.17.485.037.175.06.35.075.528l.02.392c.006.15.017.303.034.46.016.157.042.305.078.446.036.14.09.26.16.357h-1.536a2.685 2.685 0 0 1-.157-.793c-.02-.307-.048-.6-.087-.882-.052-.366-.163-.633-.333-.803-.17-.17-.448-.255-.833-.255h-1.538v2.733h-1.54v-6.99h3.773zm8.628.001v1.292h-3.693v1.5h3.39v1.194h-3.39v1.714h3.77v1.293h-5.31V12.84h5.232zm4.125 5.7c.222 0 .437-.036.646-.108.21-.072.395-.19.56-.357.162-.167.293-.384.39-.652.1-.268.147-.594.147-.98 0-.352-.034-.67-.102-.955a1.943 1.943 0 0 0-.338-.73 1.501 1.501 0 0 0-.622-.464c-.258-.11-.577-.162-.956-.162h-1.097v4.408h1.372zm.108-5.7c.45 0 .87.07 1.26.214.387.144.723.36 1.007.647.284.288.506.647.667 1.078.158.43.238.938.238 1.52 0 .508-.065.978-.195 1.41-.13.43-.33.802-.593 1.116-.265.313-.595.56-.99.74-.395.18-.86.27-1.395.27h-3.018V12.84h3.018zm10.345 5.798c.15 0 .293-.014.43-.044s.258-.078.363-.147a.747.747 0 0 0 .25-.28.98.98 0 0 0 .092-.45c0-.358-.1-.615-.303-.768-.203-.155-.47-.232-.803-.232h-1.677v1.92h1.646zm-.09-2.968c.275 0 .5-.065.677-.196.176-.13.264-.342.264-.637a.801.801 0 0 0-.087-.4.64.64 0 0 0-.235-.246.983.983 0 0 0-.338-.12 2.14 2.14 0 0 0-.397-.036h-1.44v1.636h1.558zm.197-2.83c.333 0 .637.03.91.087.275.06.51.155.706.29.196.133.348.31.456.533.106.222.16.497.16.823 0 .353-.08.647-.24.88-.16.237-.396.43-.71.58.43.124.753.34.965.65.212.31.318.685.318 1.123 0 .352-.068.657-.205.916a1.776 1.776 0 0 1-.554.63 2.43 2.43 0 0 1-.793.364 3.581 3.581 0 0 1-.915.117h-3.39V12.84h3.292zm2.948 0h1.724l1.635 2.762 1.626-2.763h1.715l-2.596 4.31v2.683h-1.538V17.11l-2.567-4.27z" fill="#7E90A2"/><path d="M129.71 10.107c-1.16-1.222-2.797-1.868-4.736-1.868-1.972 0-3.59.887-4.583 2.507-.993-1.62-2.61-2.508-4.583-2.508-1.938 0-3.574.645-4.735 1.867-1.08 1.14-1.676 2.736-1.676 4.496v7.29h3.654v-7.29c0-1.97 1.005-3.1 2.757-3.1 1.752 0 2.756 1.13 2.756 3.1v7.29h3.655v-7.29c0-1.97 1.005-3.1 2.756-3.1 1.753 0 2.758 1.13 2.758 3.1v7.29h3.654v-7.29c0-1.76-.596-3.357-1.677-4.496M42.565 1.72c-.295-.044-.6-.09-.917-.09-4.383 0-7.327 2.782-7.327 6.92v13.342h3.654v-9.806h3.834V8.82h-3.834v-.297c0-2.336 1.293-3.52 3.84-3.52.25 0 .488.04.74.082l.292.047.185.027V1.78l-.138-.018c-.11-.014-.22-.03-.327-.045M54.2 15.132c0 2.373-1.223 3.627-3.536 3.627-3.172 0-3.646-2.274-3.646-3.628 0-2.306 1.33-3.628 3.646-3.628 2.262 0 3.418 1.19 3.535 3.628m3.668.678c-.004-.254-.007-.484-.016-.684-.17-4.248-2.925-6.887-7.188-6.887-2.2 0-4.06.697-5.384 2.016-1.236 1.232-1.916 2.954-1.916 4.85 0 3.943 2.97 6.918 6.91 6.918 1.874 0 3.395-.673 4.422-1.952.15.6.362 1.18.63 1.73l.042.09h3.684l-.102-.214c-1.028-2.18-1.06-4.398-1.082-5.868m9.901-7.568c-2.1 0-3.877.695-5.137 2.01-1.18 1.235-1.83 2.968-1.83 4.882v6.76h3.655v-6.76c0-2.306 1.208-3.628 3.313-3.628 2.105 0 3.312 1.322 3.312 3.628v6.76h3.654v-6.76c0-1.914-.65-3.647-1.83-4.88-1.26-1.317-3.035-2.013-5.136-2.013m19.865 6.893c0 2.373-1.222 3.627-3.535 3.627-3.173 0-3.647-2.274-3.647-3.628 0-2.306 1.33-3.628 3.646-3.628 2.26 0 3.417 1.19 3.534 3.628m3.14 0V3.55H87.25v5.456c-1.122-.478-1.946-.767-3.342-.767-4.31 0-7.205 2.76-7.205 6.865 0 3.944 2.992 6.92 6.96 6.92 2.02 0 3.477-.575 4.444-1.755.154.627.38 1.3.65 1.927l.04.095h3.687l-.1-.213c-1.18-2.557-1.61-5.556-1.61-6.948m13.152.002c0 2.305-1.308 3.627-3.59 3.627s-3.59-1.323-3.59-3.628c0-2.306 1.308-3.628 3.59-3.628s3.59 1.322 3.59 3.628m-3.59-6.893c-4.265 0-7.245 2.833-7.245 6.892 0 4.058 2.98 6.892 7.246 6.892 4.265 0 7.245-2.834 7.245-6.892 0-4.06-2.98-6.893-7.244-6.893" fill="#39414D"/><path d="M11.48 18.903c0 .214-.052.518-.296.75l-.913.785-8.303-7.804V9.572l9.13 8.582c.143.135.383.413.383.75zm12.646-9.107v2.84l-10.33 9.968a.767.767 0 0 1-.558.235.819.819 0 0 1-.58-.237l-.945-.854L24.126 9.795zm-7.87 5.06l-2.863 2.724-9.07-8.63a2.236 2.236 0 0 1-.003-3.263L7.185 2.96l9.07 8.632c.947.9.947 2.363 0 3.263zm-1.69-7.518l2.985-2.84a2.478 2.478 0 0 1 1.715-.673c.65 0 1.258.24 1.715.675l3.08 2.93-4.698 4.47-1.715-1.63-3.08-2.932zm11.47-.452L19.29.356 19.15.22l-.14.134-5.892 5.66L7.852.977 7.845.97 7.84.967l-.66-.53-.136-.11-.128.12L.06 6.874 0 6.93v6.48l.058.055L12.913 25.69l.14.134.14-.133 12.843-12.225.057-.055V6.94l-.056-.054z" fill="url(#wds-company-logo-fandom-powered-by-wikia-a)" transform="translate(.48 .067)"/></g>
+ </symbol>
+ <symbol id="wds-company-logo-fandom" viewBox="0 0 117 23">
+ <g fill-rule="evenodd"><path d="M114.543 8.924c-1.028-1.086-2.48-1.66-4.197-1.66-1.748 0-3.18.79-4.062 2.23-.882-1.44-2.315-2.23-4.063-2.23-1.71 0-3.16.574-4.19 1.66-.96 1.013-1.48 2.432-1.48 3.997v6.48h3.24v-6.48c0-1.75.89-2.75 2.445-2.75s2.444 1.01 2.444 2.76v6.48h3.24v-6.48c0-1.75.89-2.75 2.44-2.75 1.554 0 2.444 1.005 2.444 2.756v6.48h3.24v-6.48c0-1.564-.53-2.983-1.487-3.996M37.3 1.467c-.26-.038-.53-.078-.81-.078-3.886 0-6.496 2.47-6.496 6.15V19.4h3.24v-8.717h3.397V7.78h-3.39v-.263c0-2.077 1.15-3.13 3.41-3.13.22 0 .43.035.657.073.085.014.17.03.26.042l.163.024v-3l-.13-.016-.29-.05m10.31 11.923c0 2.11-1.083 3.224-3.133 3.224-2.81 0-3.23-2.02-3.23-3.224 0-2.05 1.18-3.223 3.23-3.223 2.007 0 3.03 1.058 3.135 3.226m3.254.602c-.004-.226-.007-.43-.014-.61-.153-3.774-2.594-6.12-6.373-6.12-1.95 0-3.6.62-4.77 1.792-1.1 1.096-1.7 2.627-1.7 4.31 0 3.507 2.63 6.152 6.12 6.152 1.66 0 3.01-.6 3.92-1.736.134.534.32 1.05.56 1.54l.04.08h3.264l-.09-.19c-.91-1.938-.94-3.91-.96-5.217m8.774-6.73c-1.86 0-3.436.62-4.553 1.79-1.046 1.09-1.622 2.63-1.622 4.34v6.01h3.24v-6.01c0-2.05 1.07-3.23 2.935-3.23s2.938 1.174 2.938 3.223v6.01h3.237v-6.01c0-1.7-.576-3.24-1.622-4.336-1.115-1.17-2.69-1.79-4.552-1.79m17.61 6.125c0 2.11-1.085 3.224-3.135 3.224-2.812 0-3.232-2.02-3.232-3.224 0-2.05 1.18-3.22 3.235-3.22 2.006 0 3.03 1.055 3.134 3.223m2.786 0V3.095h-3.13v4.85c-.994-.423-1.724-.68-2.962-.68-3.82 0-6.385 2.453-6.385 6.103 0 3.5 2.655 6.15 6.17 6.15 1.79 0 3.085-.51 3.94-1.56.14.55.34 1.15.58 1.71l.033.082h3.27l-.088-.19c-1.048-2.27-1.428-4.937-1.428-6.174m11.655-.003c0 2.05-1.16 3.225-3.183 3.225-2.024 0-3.184-1.175-3.184-3.224 0-2.05 1.16-3.22 3.185-3.22 2.024 0 3.184 1.175 3.184 3.225M88.52 7.26c-3.78 0-6.42 2.52-6.42 6.13s2.64 6.13 6.42 6.13 6.42-2.52 6.42-6.127c0-3.607-2.64-6.126-6.42-6.126"/><path fill="param(fill) url(#wds-company-logo-fandom-a)" d="M10.175 16.803c0 .19-.046.46-.26.666l-.81.69-7.362-6.94V8.51l8.094 7.627c.126.12.338.367.338.666zm11.21-8.096v2.525l-9.158 8.86a.673.673 0 0 1-.493.21.73.73 0 0 1-.514-.21l-.838-.76L21.384 8.707zm-6.976 4.498l-2.54 2.422-8.04-7.672a1.997 1.997 0 0 1-.01-2.9l2.54-2.423 8.04 7.672c.84.8.84 2.1 0 2.9zm-1.5-6.682L15.55 4c.406-.387.945-.6 1.52-.6.575 0 1.114.213 1.52.6l2.73 2.605-4.164 3.973-1.52-1.45-2.73-2.605zm10.17-.403L17.09.317l-.125-.12-.124.12-5.22 5.03L6.96.867 6.953.864 6.948.858l-.583-.47-.12-.098-.115.106L.052 6.11 0 6.16v5.76l.05.05 11.396 10.867.123.117.12-.117L23.07 11.97l.05-.05V6.17l-.05-.05z"/></g>
+ </symbol>
+ <symbol id="wds-company-logo-powered-by-wikia" viewBox="0 0 128 13">
+ <g fill="param(fill) none" fill-rule="evenodd"><path d="M3.233 8.427c.208 0 .409-.015.602-.046.194-.032.363-.091.51-.18a.986.986 0 0 0 .353-.376c.089-.163.134-.374.134-.637 0-.262-.045-.475-.134-.637a.99.99 0 0 0-.353-.377 1.395 1.395 0 0 0-.51-.178 3.69 3.69 0 0 0-.602-.046H1.819v2.477h1.414zm.497-3.89c.518 0 .958.075 1.32.226.364.15.66.349.887.596.228.247.394.528.499.845a3.158 3.158 0 0 1 0 1.963c-.105.319-.27.603-.5.85a2.458 2.458 0 0 1-.885.596c-.363.15-.803.226-1.321.226H1.819v2.964H0V4.536h3.73zm5.696 5.181c.08.328.21.623.388.885.177.262.41.472.695.63.286.16.633.238 1.043.238.409 0 .757-.079 1.043-.237.286-.159.517-.369.695-.631a2.71 2.71 0 0 0 .388-.885c.08-.328.122-.666.122-1.013a4.53 4.53 0 0 0-.122-1.054 2.799 2.799 0 0 0-.388-.908 1.968 1.968 0 0 0-.695-.637c-.286-.158-.634-.238-1.043-.238-.41 0-.757.08-1.043.238-.286.158-.518.37-.695.637a2.749 2.749 0 0 0-.388.908 4.471 4.471 0 0 0 0 2.067M7.763 6.985c.186-.528.452-.989.8-1.384a3.665 3.665 0 0 1 1.28-.925c.507-.224 1.077-.336 1.71-.336.64 0 1.213.112 1.715.336.502.223.927.533 1.275.925.347.395.614.856.8 1.384a5.19 5.19 0 0 1 .277 1.72 5.01 5.01 0 0 1-.278 1.684 4.017 4.017 0 0 1-.8 1.36 3.664 3.664 0 0 1-1.274.909c-.502.22-1.074.33-1.715.33-.633 0-1.203-.11-1.708-.33a3.654 3.654 0 0 1-1.281-.909 4.017 4.017 0 0 1-.8-1.36 4.981 4.981 0 0 1-.278-1.684c0-.617.092-1.19.278-1.72m15.282 5.818l-1.402-5.627h-.023l-1.38 5.627H18.4l-2.19-8.266h1.818l1.31 5.627h.023L20.8 4.537h1.7l1.414 5.695h.023l1.356-5.695h1.785l-2.225 8.266zm11.169-8.266v1.528h-4.368v1.771h4.01V9.25h-4.01v2.025h4.46v1.528h-6.28V4.537zm5.249 3.739c.417 0 .73-.092.939-.278.208-.185.312-.485.312-.903 0-.4-.104-.692-.312-.874-.21-.181-.522-.272-.94-.272h-1.992v2.327h1.993zm.649-3.74c.37 0 .705.061 1.002.18.297.12.552.284.764.492.213.21.375.45.487.723.111.274.168.57.168.887 0 .485-.103.906-.306 1.262-.206.354-.54.625-1.003.81v.023c.223.061.41.156.556.284a1.6 1.6 0 0 1 .36.451c.092.174.16.364.202.573.042.208.07.416.087.625.007.132.016.285.023.464.008.177.02.358.041.543.019.186.05.36.092.527.043.166.107.307.19.422H40.96a3.17 3.17 0 0 1-.186-.937c-.024-.363-.058-.71-.104-1.042-.062-.433-.193-.748-.394-.95-.201-.2-.53-.3-.985-.3h-1.82v3.23h-1.819V4.536h4.462zm10.207.001v1.528h-4.368v1.771h4.01V9.25h-4.01v2.025h4.46v1.528h-6.28V4.537zm4.878 6.738c.263 0 .517-.043.764-.128a1.7 1.7 0 0 0 .662-.422c.192-.197.347-.453.463-.77.116-.317.173-.702.173-1.157 0-.417-.04-.794-.12-1.13a2.278 2.278 0 0 0-.4-.863 1.776 1.776 0 0 0-.736-.548c-.305-.129-.683-.192-1.13-.192h-1.298v5.21h1.622zm.128-6.738c.532 0 1.03.085 1.49.254.458.17.856.425 1.192.765.335.34.598.764.789 1.273.188.51.282 1.108.282 1.795 0 .602-.077 1.157-.23 1.666-.155.51-.39.95-.702 1.32-.313.37-.704.662-1.17.875-.468.212-1.018.318-1.65.318h-3.57V4.537h3.57zm12.235 6.853c.178 0 .348-.016.51-.052.162-.034.305-.092.43-.174a.875.875 0 0 0 .294-.33c.073-.138.11-.316.11-.532 0-.423-.12-.727-.358-.908-.24-.182-.556-.273-.95-.273h-1.983v2.27h1.947zm-.104-3.508c.324 0 .59-.076.8-.231.208-.155.312-.404.312-.753a.954.954 0 0 0-.104-.474.761.761 0 0 0-.278-.29 1.165 1.165 0 0 0-.4-.144 2.63 2.63 0 0 0-.47-.041h-1.703v1.933h1.843zm.233-3.345c.394 0 .754.035 1.078.104.324.07.602.183.834.341.231.159.411.369.539.631.126.263.19.588.19.973 0 .417-.094.765-.284 1.041-.189.28-.468.506-.84.684.51.147.891.403 1.142.77.25.366.376.808.376 1.326 0 .416-.08.776-.242 1.082a2.12 2.12 0 0 1-.656.746 2.897 2.897 0 0 1-.938.43 4.255 4.255 0 0 1-1.083.137h-4.01V4.537h3.894zm3.486 0h2.04l1.934 3.265 1.923-3.265h2.028L76.03 9.63v3.172h-1.819V9.584z" fill="#656E78"/><path d="M102.992.404V12.81h2.79v-2.233l.96-.913 1.9 3.146h3.617l-3.487-5.004 3.346-3.268h-3.989l-1.604 1.89-.744.929V.404zM92.934 4.536l-1.05 5.649-1.375-5.65H87.3l-1.353 5.65-1.056-5.65H81.98l2.15 8.272h3.737l1.047-4.292 1.047 4.292H93.7l2.155-8.271zm32.036 5.173c-.355.463-.912.772-1.64.772-.834 0-1.5-.54-1.5-1.824 0-1.283.666-1.824 1.5-1.824.728 0 1.285.31 1.64.773V9.71zm2.784-2.767l.155-2.406h-2.546l-.192.906c-.587-.617-1.316-1.128-2.598-1.128-2.322 0-3.59 1.5-3.59 4.343 0 2.844 1.268 4.343 3.59 4.343 1.282 0 2.011-.51 2.598-1.128l.2.936h2.538l-.155-2.435V6.942zM98.83.45a1.594 1.594 0 1 0-.001 3.187A1.594 1.594 0 0 0 98.83.45m2.402 5.83V4.536h-3.996v8.272h3.996v-1.735h-1.253V6.28zM114.4 2.043a1.595 1.595 0 0 0 3.19 0 1.595 1.595 0 1 0-3.19 0m.445 4.237v4.793h-1.252v1.735h3.997V4.536h-3.997V6.28z" fill="#092344"/></g>
+ </symbol>
+ <symbol id="wds-company-logo-wikia-org" viewBox="0 0 128 29">
+ <path fill="param(fill) #092140" d="M37.35 22.64V1.14h4.8v12l1.29-1.57 2.77-3.32h6.83l-5.72 5.72 5.99 8.67h-6.27l-3.23-5.44-1.66 1.57v3.87h-4.8zM10.23 8.25l-2.4 9.78-1.85-9.78H1l3.69 14.39h6.46l1.84-7.47 1.76 7.47h6.55l3.69-14.39h-5.08l-1.84 9.78-2.31-9.78h-5.53zm69.84 4.24l.28-4.24h-4.43l-.37 1.57A5.64 5.64 0 0 0 71 7.88c-4 0-6.18 2.58-6.18 7.47s2.21 7.47 6.18 7.47a5.94 5.94 0 0 0 4.52-1.94l.37 1.66h4.43l-.28-4.24zm-4.8 4.71a3.39 3.39 0 0 1-2.86 1.29c-1.48 0-2.58-.92-2.58-3.14s1.11-3.14 2.58-3.14a3.46 3.46 0 0 1 2.86 1.38zM30.16 1.23A2.78 2.78 0 0 0 27.39 4a2.72 2.72 0 0 0 2.77 2.77A2.78 2.78 0 0 0 32.92 4a2.84 2.84 0 0 0-2.76-2.77zm4.15 10.06V8.25h-6.92v14.39h6.92V19.6h-2.22v-8.31h2.22zM57 4a2.72 2.72 0 0 0 2.77 2.77A2.77 2.77 0 1 0 57 4zm.84 7.29v8.31h-2.22v3.04h6.92V8.25h-6.92v3.04h2.22z"/><g clip-path="url(#wds-company-logo-wikia-org-a)"><path fill="#7e7e7e" d="M76.25 5.78h60.19v24.44H76.25z"/></g>
+ </symbol>
+ <symbol id="wds-company-logo-wikia" viewBox="0 0 64 23">
+ <path fill-rule="evenodd" d="M28.82 19.085v-17h3.827v9.526l1.02-1.27 2.2-2.59h5.47l-4.588 4.48 4.78 6.858h-4.96l-2.608-4.31-1.318 1.25v3.06H28.82M7.297 7.748L5.442 15.49l-1.45-7.743H.004l2.948 11.338h5.126L9.514 13.2l1.436 5.885h5.126l2.956-11.338h-4.005l-1.442 7.743L11.7 7.747H7.297m55.486 3.297l.213-3.297h-3.492L59.24 8.99c-.804-.847-1.804-1.547-3.563-1.547-3.184 0-4.923 2.055-4.923 5.952 0 3.898 1.74 5.953 4.923 5.953 1.76 0 2.76-.7 3.563-1.545l.274 1.282h3.482l-.213-3.337v-4.704zm-3.817 3.793c-.49.635-1.253 1.06-2.25 1.06-1.145 0-2.057-.744-2.057-2.502 0-1.758.91-2.5 2.052-2.5.998 0 1.762.425 2.25 1.06v2.882zM23.113 2.147a2.186 2.186 0 1 0 0 4.372 2.184 2.184 0 1 0 0-4.367m3.294 7.988V7.75h-5.48v11.338h5.48v-2.38H24.69V10.14h1.717m18.06-5.807c0 1.208.98 2.186 2.188 2.186a2.186 2.186 0 0 0 2.188-2.184c0-1.203-.98-2.18-2.188-2.18a2.185 2.185 0 0 0-2.187 2.183m.612 12.374h-1.72v2.38h5.483V7.746H43.36v2.39h1.72"/>
+ </symbol>
+ <symbol id="wds-company-store-appstore" viewBox="0 0 119 35">
+ <g fill="param(fill) none" fill-rule="evenodd"><path d="M114.766 35H4.17C1.87 35 0 33.138 0 30.859V4.135C0 1.855 1.87 0 4.169 0h110.597C117.063 0 119 1.855 119 4.135V30.86c0 2.279-1.937 4.141-4.234 4.141" fill="#A9AAA9"/><path d="M118.147 30.86c0 1.851-1.511 3.35-3.38 3.35H4.17c-1.87 0-3.385-1.498-3.385-3.35V4.134C.785 2.284 2.3.78 4.169.78h110.597c1.87 0 3.38 1.505 3.38 3.355V30.86" fill="#0A0B09"/><path d="M26.557 17.311c-.025-2.82 2.327-4.192 2.434-4.257-1.332-1.928-3.396-2.19-4.122-2.211-1.734-.181-3.416 1.03-4.299 1.03-.9 0-2.262-1.012-3.727-.983-1.885.03-3.65 1.113-4.619 2.797-1.997 3.432-.507 8.477 1.406 11.251.958 1.36 2.076 2.877 3.54 2.823 1.432-.06 1.967-.907 3.696-.907 1.713 0 2.216.907 3.709.873 1.537-.025 2.505-1.365 3.429-2.736 1.106-1.558 1.55-3.092 1.568-3.171-.036-.012-2.986-1.129-3.015-4.509m-2.82-8.293c.77-.957 1.296-2.258 1.15-3.578-1.115.049-2.51.765-3.312 1.7-.71.825-1.345 2.176-1.181 3.447 1.253.092 2.539-.628 3.343-1.57M43.858 22.71l-.992-3.04c-.104-.31-.301-1.042-.592-2.194h-.034a84.012 84.012 0 0 1-.557 2.195l-.974 3.04h3.15zm3.43 4.856h-2.003l-1.096-3.42h-3.811l-1.045 3.42h-1.948l3.776-11.644h2.332l3.794 11.644zm7.796-4.233c0-.817-.185-1.491-.557-2.021-.407-.553-.951-.83-1.636-.83a1.96 1.96 0 0 0-1.262.459 2.115 2.115 0 0 0-.74 1.2 2.42 2.42 0 0 0-.087.57v1.4c0 .61.19 1.126.566 1.546.378.42.868.63 1.47.63.708 0 1.26-.27 1.654-.811.394-.542.592-1.256.592-2.143zm1.914-.068c0 1.427-.388 2.556-1.166 3.385-.696.738-1.56 1.106-2.593 1.106-1.113 0-1.914-.397-2.401-1.193h-.036v4.423h-1.879v-9.052c0-.898-.024-1.82-.07-2.765h1.653l.105 1.331h.035c.626-1.002 1.578-1.503 2.854-1.503.998 0 1.83.391 2.498 1.174.667.784 1 1.815 1 3.094zm7.815.068c0-.817-.186-1.491-.557-2.021-.407-.553-.952-.83-1.636-.83-.465 0-.885.154-1.263.459a2.123 2.123 0 0 0-.738 1.2c-.058.231-.088.42-.088.57v1.4c0 .61.189 1.126.564 1.546.378.42.869.63 1.473.63.707 0 1.258-.27 1.652-.811.395-.542.593-1.256.593-2.143zm1.914-.068c0 1.427-.388 2.556-1.167 3.385-.695.738-1.56 1.106-2.592 1.106-1.114 0-1.915-.397-2.401-1.193h-.036v4.423h-1.879v-9.052c0-.898-.024-1.82-.07-2.765h1.654l.104 1.331h.035c.626-1.002 1.576-1.503 2.854-1.503.997 0 1.83.391 2.498 1.174.666.784 1 1.815 1 3.094zm10.878 1.036c0 .99-.347 1.796-1.042 2.418-.764.68-1.828 1.02-3.196 1.02-1.26 0-2.274-.242-3.04-.726l.436-1.555a5.18 5.18 0 0 0 2.716.743c.708 0 1.26-.158 1.655-.476.395-.317.59-.741.59-1.272 0-.473-.16-.87-.487-1.194-.323-.323-.864-.623-1.617-.9-2.054-.76-3.081-1.874-3.081-3.34 0-.956.36-1.741 1.08-2.353.717-.611 1.674-.917 2.871-.917 1.068 0 1.955.184 2.662.552l-.47 1.521c-.661-.357-1.409-.535-2.245-.535-.661 0-1.178.16-1.548.483a1.38 1.38 0 0 0-.47 1.055c0 .46.179.84.54 1.139.312.277.88.577 1.705.9 1.01.403 1.75.874 2.228 1.415.476.542.713 1.216.713 2.022m6.213-3.731h-2.071v4.076c0 1.037.365 1.555 1.096 1.555.336 0 .616-.029.836-.086l.051 1.417c-.37.137-.857.206-1.461.206-.743 0-1.323-.224-1.741-.672-.416-.45-.627-1.204-.627-2.264V20.57h-1.234v-1.4H79.9v-1.538l1.846-.553v2.09h2.071v1.4m7.398 2.79c0-.774-.168-1.438-.505-1.992-.394-.67-.958-1.005-1.687-1.005-.756 0-1.33.334-1.724 1.005-.337.554-.504 1.229-.504 2.027 0 .774.167 1.439.504 1.992.407.67.975 1.005 1.707 1.005.717 0 1.28-.34 1.687-1.022.347-.565.522-1.236.522-2.01zm1.95-.06c0 1.29-.371 2.35-1.114 3.178-.778.853-1.811 1.279-3.099 1.279-1.241 0-2.23-.409-2.966-1.227-.737-.817-1.106-1.849-1.106-3.092 0-1.301.38-2.367 1.14-3.196.76-.83 1.783-1.244 3.071-1.244 1.242 0 2.24.409 2.995 1.227.719.794 1.079 1.819 1.079 3.075zm6.108-2.489a3.281 3.281 0 0 0-.592-.05c-.661 0-1.172.247-1.532.742-.314.438-.47.99-.47 1.658v4.406h-1.878l.016-5.752c0-.969-.023-1.85-.07-2.645h1.638l.068 1.607h.052c.198-.552.512-.997.94-1.33.418-.3.871-.449 1.358-.449.174 0 .331.012.47.034v1.78m6.613 1.676c.013-.553-.11-1.03-.365-1.434-.325-.518-.825-.777-1.497-.777-.615 0-1.115.252-1.496.76-.314.403-.5.887-.556 1.45h3.914zm1.792.484c0 .334-.022.616-.069.846h-5.637c.022.83.294 1.463.817 1.901.475.391 1.09.587 1.844.587.834 0 1.596-.133 2.281-.398l.294 1.296c-.8.346-1.745.519-2.835.519-1.312 0-2.342-.384-3.09-1.15-.747-.766-1.123-1.794-1.123-3.084 0-1.267.347-2.32 1.046-3.16.73-.9 1.716-1.348 2.957-1.348 1.219 0 2.142.448 2.769 1.347.497.714.746 1.596.746 2.643zM42.263 8.783c0-.667-.178-1.18-.535-1.536-.357-.356-.877-.535-1.56-.535-.292 0-.54.02-.745.06v4.277c.114.018.322.026.624.026.707 0 1.253-.195 1.638-.585.385-.39.578-.96.578-1.707zm.974-.025c0 1.03-.31 1.805-.932 2.326-.577.48-1.394.72-2.454.72-.525 0-.975-.022-1.351-.067V6.11c.49-.079 1.02-.118 1.59-.118 1.01 0 1.77.218 2.284.654.574.492.863 1.196.863 2.113zm4.206.929c0-.38-.083-.706-.248-.978-.194-.33-.47-.495-.83-.495-.37 0-.652.165-.846.495-.165.272-.248.604-.248.995 0 .38.083.707.248.98.2.328.478.492.838.492.354 0 .63-.167.83-.501.17-.278.256-.607.256-.988zm.958-.03c0 .635-.182 1.155-.547 1.562-.383.42-.89.629-1.522.629-.61 0-1.096-.2-1.458-.603-.362-.402-.543-.909-.543-1.52 0-.639.186-1.162.56-1.57.373-.408.876-.61 1.508-.61.611 0 1.1.2 1.472.602.352.39.53.894.53 1.51zm6.925-2.027l-1.3 4.124h-.845l-.54-1.791a13.32 13.32 0 0 1-.334-1.333h-.016c-.08.453-.191.898-.334 1.333l-.573 1.79h-.855L49.307 7.63h.949l.47 1.96c.113.465.208.906.283 1.325h.016c.068-.345.182-.784.342-1.316l.59-1.969h.752l.565 1.927c.137.47.248.922.333 1.358h.026c.062-.425.157-.877.283-1.358l.504-1.927h.906m4.789 4.124h-.924V9.39c0-.728-.278-1.092-.837-1.092a.837.837 0 0 0-.667.301c-.171.2-.257.436-.257.707v2.447h-.924V8.809c0-.363-.011-.755-.033-1.18h.812l.043.645h.026c.107-.2.268-.367.478-.498.25-.155.53-.232.838-.232.387 0 .71.125.967.374.319.305.478.76.478 1.366v2.47m1.625-6.017h.923v6.017h-.923zm5.402 3.95c0-.38-.082-.706-.247-.978-.193-.33-.471-.495-.829-.495-.372 0-.654.165-.847.495-.165.272-.248.604-.248.995 0 .38.083.707.248.98.2.328.479.492.838.492.354 0 .629-.167.829-.501.172-.278.256-.607.256-.988zm.96-.03c0 .635-.183 1.155-.548 1.562-.382.42-.89.629-1.522.629-.611 0-1.097-.2-1.458-.603-.362-.402-.542-.909-.542-1.52 0-.639.186-1.162.559-1.57.373-.408.877-.61 1.508-.61.612 0 1.1.2 1.472.602.353.39.53.894.53 1.51zm3.511.679V9.7c-1.019-.017-1.528.26-1.528.832 0 .215.058.376.177.483.119.108.27.161.451.161a.927.927 0 0 0 .564-.19.777.777 0 0 0 .336-.65zm.96 1.418h-.83l-.07-.475h-.025c-.284.379-.689.569-1.214.569-.392 0-.709-.125-.949-.374a1.168 1.168 0 0 1-.325-.84c0-.504.212-.888.637-1.155.425-.265 1.023-.396 1.793-.39v-.077c0-.543-.288-.814-.863-.814-.41 0-.772.101-1.083.305l-.188-.603c.386-.237.862-.356 1.426-.356 1.086 0 1.63.569 1.63 1.707v1.519c0 .412.02.74.06.984zm4.291-1.74v-.687a1.043 1.043 0 0 0-.36-.844.908.908 0 0 0-.617-.226.952.952 0 0 0-.813.407c-.197.272-.296.62-.296 1.044 0 .408.094.739.284.993.2.271.47.408.807.408a.895.895 0 0 0 .73-.34c.178-.209.265-.46.265-.755zm.958 1.74h-.82l-.042-.662h-.027c-.262.503-.707.755-1.334.755-.501 0-.917-.195-1.248-.585-.33-.391-.496-.897-.496-1.52 0-.667.179-1.208.539-1.62a1.662 1.662 0 0 1 1.283-.578c.557 0 .948.187 1.17.56h.017V5.737h.925v4.906c0 .401.01.771.033 1.11zm6.943-2.067c0-.38-.083-.706-.248-.978-.194-.33-.47-.495-.83-.495-.37 0-.652.165-.847.495-.165.272-.248.604-.248.995 0 .38.083.707.248.98.2.328.479.492.839.492.353 0 .63-.167.83-.501.17-.278.256-.607.256-.988zm.957-.03c0 .635-.182 1.155-.547 1.562-.383.42-.889.629-1.522.629-.61 0-1.095-.2-1.458-.603-.362-.402-.542-.909-.542-1.52 0-.639.186-1.162.56-1.57.372-.408.875-.61 1.51-.61.608 0 1.1.2 1.469.602.353.39.53.894.53 1.51zm4.968 2.097h-.923V9.39c0-.728-.279-1.092-.839-1.092a.833.833 0 0 0-.666.301c-.17.2-.257.436-.257.707v2.447h-.924V8.809c0-.363-.01-.755-.033-1.18h.811l.043.645h.026c.108-.2.269-.367.478-.498.252-.155.531-.232.839-.232.388 0 .71.125.966.374.32.305.478.76.478 1.366v2.47m6.218-3.438h-1.019v2.004c0 .509.181.764.54.764.165 0 .302-.014.41-.043l.025.696c-.182.068-.422.102-.718.102-.365 0-.649-.11-.853-.331-.207-.221-.309-.591-.309-1.112v-2.08h-.608v-.687h.608v-.756l.905-.271v1.027h1.019v.687m4.89 3.438h-.924V9.409c0-.74-.28-1.11-.837-1.11-.429 0-.721.215-.882.644-.027.09-.042.2-.042.33v2.48h-.923V5.738h.923v2.485h.017c.29-.452.708-.678 1.248-.678.383 0 .699.125.95.374.314.31.47.772.47 1.383v2.453m4.163-2.497a1.23 1.23 0 0 0-.179-.704c-.16-.255-.404-.382-.735-.382a.88.88 0 0 0-.735.374 1.38 1.38 0 0 0-.274.712h1.923zm.882.238c0 .165-.013.303-.035.416h-2.77c.012.408.144.718.4.934.235.192.539.288.909.288.41 0 .783-.064 1.12-.195l.145.636c-.394.17-.857.256-1.395.256-.643 0-1.15-.188-1.516-.565-.368-.377-.55-.882-.55-1.515 0-.622.17-1.14.512-1.553.358-.442.842-.663 1.453-.663.598 0 1.052.221 1.358.663.246.35.369.784.369 1.298z" fill="#FFF"/></g>
+ </symbol>
+ <symbol id="wds-company-store-googleplay" viewBox="0 0 119 35">
+ <g fill="param(fill) none" fill-rule="evenodd"><path fill="#000" d="M114.593 35H4.407C1.94 35 0 33.075 0 30.625V4.375C0 1.925 1.94 0 4.407 0h110.186C117.06 0 119 1.925 119 4.375v26.25c0 2.362-1.94 4.375-4.407 4.375z"/><path fill="#A6A6A6" d="M114.593.7c2.027 0 3.702 1.662 3.702 3.675v26.25c0 2.013-1.675 3.675-3.702 3.675H4.407C2.38 34.3.705 32.638.705 30.625V4.375C.705 2.362 2.38.7 4.407.7h110.186zm0-.7H4.407C1.94 0 0 1.925 0 4.375v26.25C0 33.075 1.94 35 4.407 35h110.186c2.468 0 4.407-1.925 4.407-4.375V4.375C119 2.013 117.06 0 114.593 0z"/><path fill="#FFF" stroke="#FFF" stroke-width=".2" d="M41.475 8.925c0 .7-.175 1.313-.613 1.75-.525.525-1.137.787-1.925.787-.787 0-1.4-.262-1.924-.787-.526-.525-.788-1.138-.788-1.925 0-.787.262-1.4.788-1.925.525-.525 1.137-.788 1.925-.788.35 0 .7.088 1.05.263.35.175.612.35.787.612l-.438.438c-.35-.438-.787-.612-1.4-.612-.524 0-1.05.174-1.4.612-.437.35-.612.875-.612 1.488 0 .612.175 1.137.613 1.487.437.35.875.613 1.4.613.612 0 1.05-.176 1.487-.613.263-.262.438-.612.438-1.05h-1.925v-.613h2.537v.263zM45.5 6.737h-2.362V8.4h2.187v.612h-2.187v1.663H45.5v.7h-3.062v-5.25H45.5zm2.888 4.638h-.7V6.737H46.2v-.612h3.675v.612h-1.487zm4.025 0v-5.25h.7v5.25zm3.674 0h-.7V6.737H53.9v-.612h3.587v.612H56v4.638zm8.313-.7c-.525.525-1.138.787-1.925.787-.788 0-1.4-.262-1.925-.787-.525-.525-.787-1.138-.787-1.925 0-.787.262-1.4.787-1.925.525-.525 1.138-.788 1.925-.788.788 0 1.4.263 1.925.788.525.525.787 1.138.787 1.925 0 .787-.262 1.4-.787 1.925zm-3.325-.438c.35.35.875.613 1.4.613.525 0 1.05-.175 1.4-.612.35-.35.612-.875.612-1.488s-.174-1.138-.612-1.487c-.35-.35-.875-.613-1.4-.613-.525 0-1.05.175-1.4.612-.35.35-.613.875-.613 1.488s.175 1.137.613 1.488zm5.075 1.138v-5.25h.788l2.537 4.113V6.125h.7v5.25h-.7l-2.712-4.287v4.287z"/><path fill="#FFF" d="M59.587 19.075c-2.1 0-3.762 1.575-3.762 3.762 0 2.1 1.662 3.763 3.762 3.763s3.763-1.575 3.763-3.763c0-2.274-1.663-3.762-3.763-3.762zm0 5.95c-1.137 0-2.1-.962-2.1-2.275s.963-2.275 2.1-2.275c1.138 0 2.1.875 2.1 2.275 0 1.313-.962 2.275-2.1 2.275zm-8.137-5.95c-2.1 0-3.763 1.575-3.763 3.762 0 2.1 1.663 3.763 3.763 3.763 2.1 0 3.762-1.575 3.762-3.763 0-2.274-1.662-3.762-3.762-3.762zm0 5.95c-1.138 0-2.1-.962-2.1-2.275s.962-2.275 2.1-2.275c1.137 0 2.1.875 2.1 2.275 0 1.313-.962 2.275-2.1 2.275zm-9.713-4.813v1.576H45.5c-.087.875-.438 1.575-.875 2.012-.525.525-1.4 1.137-2.888 1.137-2.362 0-4.112-1.837-4.112-4.2 0-2.362 1.837-4.2 4.112-4.2 1.225 0 2.188.526 2.888 1.138l1.138-1.137c-.963-.876-2.188-1.575-3.938-1.575-3.15 0-5.863 2.624-5.863 5.775 0 3.15 2.713 5.774 5.863 5.774 1.75 0 2.975-.524 4.025-1.662 1.05-1.05 1.4-2.538 1.4-3.675 0-.35 0-.7-.087-.963h-5.425zm39.726 1.226c-.35-.875-1.225-2.363-3.15-2.363-1.925 0-3.5 1.488-3.5 3.762 0 2.1 1.575 3.763 3.674 3.763 1.663 0 2.713-1.05 3.063-1.663l-1.225-.875c-.438.613-.963 1.05-1.838 1.05-.874 0-1.4-.35-1.837-1.137l4.987-2.1-.174-.438zm-5.075 1.225c0-1.4 1.137-2.188 1.924-2.188.613 0 1.225.35 1.4.787l-3.325 1.4zm-4.113 3.587h1.662V15.312h-1.662V26.25zm-2.625-6.387c-.438-.438-1.138-.875-2.013-.875-1.837 0-3.587 1.662-3.587 3.762s1.663 3.675 3.588 3.675c.874 0 1.575-.438 1.924-.875h.088v.525c0 1.4-.788 2.188-2.013 2.188-.962 0-1.662-.7-1.837-1.313l-1.4.613c.438.962 1.487 2.187 3.325 2.187 1.925 0 3.5-1.137 3.5-3.85v-6.65H69.65v.613zm-1.925 5.162c-1.137 0-2.1-.962-2.1-2.275s.963-2.275 2.1-2.275c1.138 0 2.013.962 2.013 2.275s-.876 2.275-2.013 2.275zm21.35-9.712h-3.938V26.25H86.8v-4.113h2.275c1.837 0 3.587-1.312 3.587-3.412 0-2.1-1.75-3.413-3.587-3.413zm.087 5.25H86.8V16.8h2.362c1.225 0 1.925 1.05 1.925 1.837-.087.963-.787 1.925-1.925 1.925zm10.063-1.575c-1.225 0-2.45.524-2.887 1.662l1.487.613c.35-.613.875-.788 1.487-.788.876 0 1.663.525 1.75 1.4v.087c-.262-.174-.962-.437-1.662-.437-1.575 0-3.15.875-3.15 2.45 0 1.487 1.313 2.45 2.713 2.45 1.137 0 1.662-.525 2.1-1.05h.087v.875h1.575v-4.2c-.175-1.925-1.662-3.063-3.5-3.063zm-.175 6.037c-.525 0-1.313-.262-1.313-.962 0-.875.963-1.138 1.75-1.138.7 0 1.05.175 1.488.35-.175 1.05-1.05 1.75-1.925 1.75zm9.188-5.775l-1.838 4.725h-.088l-1.924-4.725h-1.75l2.887 6.65-1.663 3.675h1.663l4.462-10.325h-1.75zm-14.7 7H95.2V15.312h-1.663V26.25z"/><path fill="url(#wds-company-store-googleplay-a)" d="M9.1 6.563c-.262.262-.438.7-.438 1.224v19.338c0 .525.175.962.438 1.225l.088.087 10.85-10.85v-.174L9.1 6.563z"/><path fill="url(#wds-company-store-googleplay-b)" d="M23.625 21.262l-3.587-3.587v-.262l3.587-3.588.087.088L28 16.363c1.225.7 1.225 1.837 0 2.537l-4.375 2.363z"/><path fill="url(#wds-company-store-googleplay-c)" d="M23.712 21.175L20.038 17.5 9.1 28.438c.438.437 1.05.437 1.838.087l12.774-7.35"/><path fill="url(#wds-company-store-googleplay-d)" d="M23.712 13.825L10.938 6.563c-.788-.438-1.4-.35-1.838.087L20.038 17.5l3.674-3.675z"/><path fill="#000" d="M23.625 21.087l-12.688 7.175c-.7.438-1.312.35-1.75 0l-.087.088.088.087c.437.35 1.05.438 1.75 0l12.687-7.35z" opacity=".2"/><path fill="#000" d="M9.15 28.262c-.3-.262-.4-.7-.4-1.224v.087c0 .525.2.962.5 1.225v-.088h-.1zM28 18.637l-4.375 2.45.087.088L28 18.725c.613-.35.875-.788.875-1.225 0 .438-.35.788-.875 1.137z" opacity=".12"/><path fill="#FFF" d="M10.938 6.65L28 16.363c.525.35.875.7.875 1.137 0-.438-.262-.875-.875-1.225L10.937 6.563c-1.224-.7-2.187-.088-2.187 1.312v.088c0-1.4.963-2.013 2.188-1.313z" opacity=".25"/></g>
+ </symbol>
+ <symbol id="wds-icons-alert-small" viewBox="0 0 18 18">
+ <path d="M10 9a1 1 0 1 1-2 0V4.5a1 1 0 1 1 2 0V9zm0 4.5a1 1 0 1 1-2 0V13a1 1 0 1 1 2 0v.5zM9 1a8 8 0 1 0 0 16A8 8 0 0 0 9 1z" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-alert" viewBox="0 0 24 24">
+ <path d="M13 11.857c0 .631-.448 1.143-1 1.143s-1-.512-1-1.143V6.143C11 5.512 11.448 5 12 5s1 .512 1 1.143v5.714zM13 17a1 1 0 0 1-2 0v-1a1 1 0 0 1 2 0v1zM12 0C5.383 0 0 5.383 0 12s5.383 12 12 12 12-5.383 12-12S18.617 0 12 0z" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-arrow" viewBox="0 0 24 24">
+ <path d="M22.999 12a1 1 0 0 0-1-1H4.413l5.293-5.293a.999.999 0 1 0-1.414-1.414l-7 7a1 1 0 0 0 0 1.415l7 7a.997.997 0 0 0 1.414 0 .999.999 0 0 0 0-1.415L4.413 13h17.586a1 1 0 0 0 1-1" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-bell" viewBox="0 0 24 24">
+ <path d="M21.882 19.472a.998.998 0 0 0-.05-1.026C21.814 18.418 20 15.656 20 12V8c0-4.411-3.59-8-8-8-4.411 0-8 3.589-8 8v4c0 3.628-1.815 6.419-1.832 6.446a1.003 1.003 0 0 0-.05 1.026c.175.325.514.528.882.528h18a1 1 0 0 0 .882-.528M12 24c1.474 0 2.75-.81 3.444-2H8.556c.694 1.19 1.97 2 3.444 2" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-bold-small" viewBox="0 0 18 18">
+ <path d="M12.56 8.316a3.483 3.483 0 0 0 1.418-3.207C13.782 3.305 12.143 2 10.33 2H3v1l1.447.724A1 1 0 0 1 5 4.618v8.764a1 1 0 0 1-.553.894L3 15v1h7.823c2.104 0 3.98-1.547 4.162-3.643a4.001 4.001 0 0 0-2.424-4.04zM8 4h1a2 2 0 1 1 0 4H8V4zm2 10H8v-4h2a2 2 0 1 1 0 4z" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-bold" viewBox="0 0 24 24">
+ <path d="M3 23v-2.37l1.3-.41a1 1 0 0 0 .7-.954V4.756a1 1 0 0 0-.726-.963L3 3.431V1h10.11c5.196 0 6.654 2.37 6.654 5.378 0 2.887-1.853 4.498-3.706 5.105v.09C19.522 11.97 21 13.963 21 17c0 4.497-3.393 6-8.164 6H3zm8.165-12.762c2.187 0 4.132-.517 4.132-3.1 0-2.492-1.58-2.826-3.677-2.826H10v5.926h1.165zm.88 9.48c2.553 0 4.224-.608 4.224-3.251 0-2.523-1.7-3.19-3.767-3.19H10v6.44h2.046z" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-bookmark-small" viewBox="0 0 18 18">
+ <path d="M14.333 1H3.666c-.4 0-.666.267-.666.667v14.666c0 .267.133.467.333.6.133.067.2.067.333.067.134 0 .2-.067.334-.133l5-3.134 5 3.134c.133.066.2.133.333.133s.2 0 .333-.067a.7.7 0 0 0 .334-.6V1.667c0-.4-.267-.667-.667-.667" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-bookmark" viewBox="0 0 24 24">
+ <path d="M20 0H4c-.6 0-1 .4-1 1v22c0 .4.2.7.5.9.2.1.3.1.5.1s.3-.1.5-.2l7.5-4.7 7.5 4.7c.2.1.3.2.5.2s.3 0 .5-.1c.3-.2.5-.5.5-.9V1c0-.6-.4-1-1-1" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-bullet-list-small" viewBox="0 0 18 18">
+ <g transform="translate(1 1)" fill-rule="evenodd"><circle cx="2" cy="2" r="2"/><path d="M6 1h10v2H6z"/><circle cx="2" cy="8" r="2"/><path d="M6 7h10v2H6z"/><circle cx="2" cy="14" r="2"/><path d="M6 13h10v2H6z"/></g>
+ </symbol>
+ <symbol id="wds-icons-bullet-list" viewBox="0 0 24 24">
+ <path d="M4 7c1.654 0 3-1.346 3-3S5.654 1 4 1 1 2.346 1 4s1.346 3 3 3m0 8c1.654 0 3-1.346 3-3S5.654 9 4 9s-3 1.346-3 3 1.346 3 3 3m0 8c1.654 0 3-1.346 3-3s-1.346-3-3-3-3 1.346-3 3 1.346 3 3 3M22 3H10a1 1 0 1 0 0 2h12a1 1 0 1 0 0-2m0 8H10a1 1 0 1 0 0 2h12a1 1 0 1 0 0-2m1 9a1 1 0 0 0-1-1H10a1 1 0 1 0 0 2h12a1 1 0 0 0 1-1" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-camera" viewBox="0 0 24 24">
+ <g fill-rule="evenodd"><path d="M12 18.5c-2.8 0-5-2.2-5-5s2.2-5 5-5 5 2.2 5 5-2.2 5-5 5M23 6h-5.5l-1.7-2.6c-.2-.2-.5-.4-.8-.4H9c-.3 0-.6.2-.8.4L6.5 6H1c-.6 0-1 .4-1 1v13c0 .6.4 1 1 1h22c.6 0 1-.4 1-1V7c0-.6-.4-1-1-1"/><path d="M12 10.5c-1.68 0-3 1.32-3 3s1.32 3 3 3 3-1.32 3-3-1.32-3-3-3M1.5 5h3a.5.5 0 0 0 0-1h-3a.5.5 0 0 0 0 1"/></g>
+ </symbol>
+ <symbol id="wds-icons-checkbox" viewBox="0 0 24 24">
+ <path d="M17.03 9.53l-6 6a.748.748 0 0 1-1.06 0l-3-3a.75.75 0 1 1 1.06-1.06l2.47 2.47 5.47-5.47a.75.75 0 1 1 1.06 1.06M20.25 3H3.75a.75.75 0 0 0-.75.75v16.5c0 .414.335.75.75.75h16.5a.75.75 0 0 0 .75-.75V3.75a.75.75 0 0 0-.75-.75" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-checkmark-circle" viewBox="0 0 24 24">
+ <g fill-rule="evenodd"><path d="M12 3c-4.963 0-9 4.037-9 9s4.037 9 9 9 9-4.037 9-9-4.037-9-9-9m0 20C5.935 23 1 18.065 1 12S5.935 1 12 1s11 4.935 11 11-4.935 11-11 11"/><path d="M10.879 15.753a.998.998 0 0 1-.663-.252l-2.88-2.551a1 1 0 0 1 1.327-1.496l2.19 1.94 5.093-4.87a1 1 0 0 1 1.383 1.446l-5.76 5.506a1 1 0 0 1-.69.277"/></g>
+ </symbol>
+ <symbol id="wds-icons-checkmark-small" viewBox="0 0 18 18">
+ <path d="M6.333 15.2a.995.995 0 0 1-.663-.251L.336 10.223a1 1 0 0 1 1.327-1.497l4.644 4.115L16.31 3.278a.998.998 0 0 1 1.413.032.998.998 0 0 1-.032 1.413l-10.666 10.2a1 1 0 0 1-.69.277" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-checkmark" viewBox="0 0 24 24">
+ <path d="M8.293 18.707a.997.997 0 0 0 1.414 0l13-13a.999.999 0 1 0-1.414-1.414L9 16.586l-6.293-6.293a.999.999 0 1 0-1.414 1.414l7 7z" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-clipboard-small" viewBox="0 0 19 18">
+ <path d="M7.3 12.7l-2-2c-.4-.4-.4-1 0-1.4.4-.4 1-.4 1.4 0L8 10.6l3.3-3.3c.4-.4 1-.4 1.4 0 .4.4.4 1 0 1.4l-4 4c-.4.4-.9.5-1.4 0zM16 2h-3v2h2v11H3V4h2V2H2c-.6 0-1 .4-1 1v13c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V3c0-.6-.4-1-1-1zM6 1h6v4H6V1z" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-clipboard" viewBox="0 0 24 24">
+ <g fill-rule="evenodd"><path d="M14.382 10.264l-3.42 3.388-1.37-1.257a.937.937 0 0 0-1.352.085 1.017 1.017 0 0 0 .082 1.399l2.03 1.86a.937.937 0 0 0 1.295-.025l4.058-4.018a1.017 1.017 0 0 0 .03-1.401.934.934 0 0 0-1.353-.031"/><path d="M19 20H5V4h3v2.497c0 .278.225.503.503.503H10a2 2 0 1 1 4 0h1.497A.503.503 0 0 0 16 6.497V4h3v16zm1.5-19h-17A1.5 1.5 0 0 0 2 2.5v19A1.5 1.5 0 0 0 3.5 23h17a1.5 1.5 0 0 0 1.5-1.5v-19A1.5 1.5 0 0 0 20.5 1z"/></g>
+ </symbol>
+ <symbol id="wds-icons-community-small" viewBox="0 0 18 18">
+ <path d="M6.378 3.176c0 1.203-.98 2.177-2.19 2.177A2.182 2.182 0 0 1 2 3.176C2 1.975 2.98 1 4.189 1s2.19.975 2.19 2.176zm9.583 0c0 1.203-.98 2.177-2.19 2.177a2.182 2.182 0 0 1-2.188-2.177c0-1.201.98-2.176 2.188-2.176 1.21 0 2.19.975 2.19 2.176zM7.243 6.26h-5.2v10.48h5.2v-1.71H5.488V7.995h1.755V6.26zm3.553 0H16v10.48h-5.204v-1.71h1.73V7.995h-1.73V6.26z" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-community" viewBox="0 0 24 24">
+ <path d="M9.004 5.489a2.495 2.495 0 0 1-2.503 2.489A2.495 2.495 0 0 1 4 5.488 2.495 2.495 0 0 1 6.501 3a2.496 2.496 0 0 1 2.503 2.489zm10.951 0a2.495 2.495 0 0 1-2.502 2.489 2.495 2.495 0 0 1-2.501-2.49A2.495 2.495 0 0 1 17.452 3a2.496 2.496 0 0 1 2.503 2.489zM9.992 9.016H4.049V21h5.943v-1.955H7.986v-8.046h2.006V9.016zm4.06 0H20V21h-5.948v-1.955h1.977v-8.046h-1.977V9.016z" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-controls" viewBox="0 0 24 24">
+ <path d="M12.494 6H22.5a.5.5 0 0 0 0-1H12.494a.5.5 0 0 0 0 1M1.5 13h11.994v1.482c0 .29.235.526.525.526h2.947c.29 0 .526-.236.526-.526v-3.956a.526.526 0 0 0-.526-.526h-2.947a.525.525 0 0 0-.525.526V12H1.5a.5.5 0 0 0 0 1m21 5.998H12.494a.5.5 0 0 0 0 1H22.5a.5.5 0 0 0 0-1M1.5 6h2.998v1.48c0 .29.235.526.526.526H7.97a.526.526 0 0 0 .526-.526V3.526A.525.525 0 0 0 7.97 3H5.024a.525.525 0 0 0-.526.526V5H1.5a.5.5 0 0 0 0 1m20.99 6h-2.003a.5.5 0 0 0 0 1h2.003a.5.5 0 0 0 0-1M7.97 17H5.023a.525.525 0 0 0-.525.526V19H1.5a.5.5 0 1 0 0 1h2.998v1.47c0 .29.235.526.525.526H7.97c.29 0 .526-.236.526-.526v-3.944A.526.526 0 0 0 7.97 17"/>
+ </symbol>
+ <symbol id="wds-icons-cross" viewBox="0 0 24 24">
+ <path d="M19.707 4.293a.999.999 0 0 0-1.414 0L12 10.586 5.707 4.293a.999.999 0 1 0-1.414 1.414L10.586 12l-6.293 6.293a.999.999 0 1 0 1.414 1.414L12 13.414l6.293 6.293a.997.997 0 0 0 1.414 0 .999.999 0 0 0 0-1.414L13.414 12l6.293-6.293a.999.999 0 0 0 0-1.414" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-document" viewBox="0 0 24 24">
+ <path d="M11 10h2V8h-2v2zm-1 2h4a1 1 0 0 0 1-1V7a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1zm6-2a1 1 0 0 1 1-1h1a1 1 0 1 1 0 2h-1a1 1 0 0 1-1-1zm0-3a1 1 0 0 1 1-1h1a1 1 0 1 1 0 2h-1a1 1 0 0 1-1-1zM9 17a1 1 0 0 1 1-1h8a1 1 0 1 1 0 2h-8a1 1 0 0 1-1-1zm0-3a1 1 0 0 1 1-1h8a1 1 0 1 1 0 2h-8a1 1 0 0 1-1-1zm11 5.363a.646.646 0 0 1-.637.637H7.903c.063-.202.097-.415.097-.637V4h12v15.363zM5 20c-.471 0-1-.415-1-.637V14h2v5.363c0 .222-.529.637-1 .637zM21 2H7a1 1 0 0 0-1 1v9H3a1 1 0 0 0-1 1v6.363C2 20.872 3.584 22 5 22h14.363A2.64 2.64 0 0 0 22 19.363V3a1 1 0 0 0-1-1z" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-dropdown-tiny" viewBox="0 0 12 12">
+ <path d="M1 3h10L6 9z"/>
+ </symbol>
+ <symbol id="wds-icons-dropdown" viewBox="0 0 24 24">
+ <path d="M7 8h10l-5 6z"/>
+ </symbol>
+ <symbol id="wds-icons-eye-crossed-small" viewBox="0 0 18 18">
+ <path d="M15.6 6.6l-8.2 8.2c.5.1 1.1.2 1.6.2 3.6 0 6.4-3.1 7.6-4.9.5-.7.5-1.6 0-2.3-.2-.3-.6-.7-1-1.2zm-.3-5.3L12.6 4c-1.1-.6-2.3-1-3.6-1-3.6 0-6.4 3.1-7.6 4.9-.5.7-.5 1.6 0 2.2.5.8 1.4 1.8 2.4 2.7l-2.5 2.5c-.4.4-.4 1 0 1.4.2.2.4.3.7.3.3 0 .5-.1.7-.3l14-14c.4-.4.4-1 0-1.4-.4-.4-1-.4-1.4 0zm-9 9C6.1 9.9 6 9.5 6 9c0-1.7 1.3-3 3-3 .5 0 .9.1 1.3.3l-4 4z" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-eye-crossed" viewBox="0 0 24 24">
+ <g fill-rule="evenodd"><path d="M20.201 8.041l-4.228 4.228a3.981 3.981 0 0 1-3.703 3.703l-3.439 3.439A9.108 9.108 0 0 0 12 20c6.473 0 10.69-7.195 10.866-7.501a.996.996 0 0 0 .002-.995c-.081-.142-1.032-1.764-2.667-3.463zM5.647 17.624c.97-1.015 2.039-2.115 3.153-3.249A3.96 3.96 0 0 1 8 12c0-2.206 1.794-4 4-4a3.96 3.96 0 0 1 2.375.8 336.506 336.506 0 0 1 3.122-3.031C15.941 4.748 14.092 4 12 4 5.461 4 1.304 11.2 1.13 11.507a1 1 0 0 0 .002.989c.108.189 1.748 3.002 4.515 5.128z"/><path d="M3 22a.999.999 0 0 1-.707-1.707l18-18a.999.999 0 1 1 1.414 1.414l-18 18A.997.997 0 0 1 3 22z"/></g>
+ </symbol>
+ <symbol id="wds-icons-eye-small" viewBox="0 0 18 18">
+ <path d="M9 6c1.705 0 3.009 1.3 3.009 3s-1.304 3-3.01 3c-1.704 0-3.008-1.3-3.008-3S7.295 6 9 6m0 9c3.61 0 6.42-3.1 7.624-4.9.5-.7.5-1.6 0-2.3C15.42 6.1 12.61 3 9 3 5.389 3 2.58 6.1 1.376 7.9c-.501.7-.501 1.6 0 2.2C2.58 11.9 5.389 15 9 15" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-eye" viewBox="0 0 24 24">
+ <path d="M22.95 11.5c-.2-.3-4.4-7.5-10.9-7.5s-10.7 7.2-10.9 7.5c-.2.3-.2.7 0 1 .2.3 4.4 7.5 10.9 7.5s10.7-7.2 10.9-7.5c.1-.3.1-.7 0-1zM12.05 16c-2.2 0-4-1.8-4-4s1.8-4 4-4 4 1.8 4 4-1.8 4-4 4z" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-facebook" viewBox="0 0 24 24">
+ <path d="M16.762 5.432h-1.786c-1.428 0-1.666.71-1.666 1.657v2.248h3.452l-.357 3.55h-2.857V22H9.976v-9.112H7v-3.55h2.976V6.733C9.976 3.775 11.762 2 14.381 2c1.19 0 2.262.118 2.619.118v3.314h-.238z"/>
+ </symbol>
+ <symbol id="wds-icons-flag" viewBox="0 0 24 24">
+ <path d="M1.487 5.166a.973.973 0 0 0-.356 1.33l9.247 16.017a.972.972 0 0 0 1.33.357.973.973 0 0 0 .356-1.33L2.817 5.522a.973.973 0 0 0-1.33-.356m9.481 9.39c1.172-2.065 2.62-2.225 4.537-2.225l.977.004c1.776 0 3.825-.138 5.676-1.796.352-.316.435-.835.199-1.245l-4.5-7.794a1.003 1.003 0 0 0-1.542-.236c-1.31 1.2-2.763 1.3-4.26 1.3l-1.146-.007c-1.984 0-4.218.223-5.878 2.728l5.567 9.643a1 1 0 0 0 .37-.372" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-gear" viewBox="0 0 24 24">
+ <path d="M12 9a3 3 0 1 1 0 6 3 3 0 0 1 0-6m-7.389-.049A1.683 1.683 0 0 1 3.055 10H2a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h1.055a1.683 1.683 0 0 1 1.565 1.069 1.684 1.684 0 0 1-.359 1.842l-.746.746a.999.999 0 0 0 0 1.414l1.414 1.414a.999.999 0 0 0 1.414 0l.746-.746a1.684 1.684 0 0 1 1.842-.359l.02.009c.633.26 1.049.871 1.049 1.556V22a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-1.055c0-.685.416-1.296 1.049-1.556l.02-.009a1.684 1.684 0 0 1 1.842.359l.746.746a.999.999 0 0 0 1.414 0l1.414-1.414a.999.999 0 0 0 0-1.414l-.746-.746a1.684 1.684 0 0 1-.35-1.862A1.683 1.683 0 0 1 20.945 14H22a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1h-1.055a1.683 1.683 0 0 1-1.565-1.069 1.684 1.684 0 0 1 .359-1.842l.746-.746a.999.999 0 0 0 0-1.414l-1.414-1.414a.999.999 0 0 0-1.414 0l-.746.746a1.684 1.684 0 0 1-1.842.359l-.02-.009A1.683 1.683 0 0 1 14 3.055V2a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1v1.055c0 .685-.416 1.296-1.049 1.556l-.02.009a1.684 1.684 0 0 1-1.842-.359l-.746-.746a.999.999 0 0 0-1.414 0L3.515 4.929a.999.999 0 0 0 0 1.414l.746.746a1.684 1.684 0 0 1 .35 1.862" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-gift" viewBox="0 0 24 24">
+ <path d="M23 4h-4.2c.1-.3.2-.6.2-1 0-1.7-1.3-3-3-3-2 0-3.2 1.3-4 2.5C11.2 1.3 10 0 8 0 6.3 0 5 1.3 5 3c0 .4.1.7.2 1H1c-.6 0-1 .4-1 1v2c0 .6.4 1 1 1h22c.6 0 1-.4 1-1V5c0-.6-.4-1-1-1zm-7-2c.6 0 1 .4 1 1s-.4 1-1 1h-2.5c.4-.9 1.3-2 2.5-2zM7 3c0-.6.4-1 1-1 1.2 0 2.1 1.1 2.5 2H8c-.6 0-1-.4-1-1zm4 7H3c-.6 0-1 .4-1 1v12c0 .6.4 1 1 1h8V10zm10 0h-8v14h8c.6 0 1-.4 1-1V11c0-.6-.4-1-1-1z" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-googleplus" viewBox="0 0 24 24">
+ <path d="M21.146 11.163V8.564h-1.844v2.6h-2.655v1.856h2.655v2.673h1.844V13.02h2.58v-1.857h-2.58zm-13.422-.148v2.97s2.862-.004 4.027-.004c-.631 1.926-1.612 2.974-4.027 2.974-2.444 0-4.35-1.994-4.35-4.455 0-2.46 1.906-4.455 4.35-4.455 1.292 0 2.127.457 2.892 1.094.613-.617.561-.705 2.12-2.187A7.393 7.393 0 0 0 7.724 5C3.611 5 .276 8.358.276 12.5c0 4.142 3.335 7.5 7.448 7.5 6.149 0 7.652-5.391 7.153-8.985H7.724z"/>
+ </symbol>
+ <symbol id="wds-icons-grid" viewBox="0 0 24 24">
+ <path d="M22.234 18h-3.467a.766.766 0 0 0-.767.766v3.468c0 .423.343.766.767.766h3.467a.766.766 0 0 0 .766-.766v-3.468a.766.766 0 0 0-.766-.766m-8.5 0h-3.467a.766.766 0 0 0-.767.766v3.468c0 .423.343.766.767.766h3.467a.766.766 0 0 0 .766-.766v-3.468a.766.766 0 0 0-.766-.766m-8.5 0H1.767a.766.766 0 0 0-.767.766v3.468c0 .423.343.766.767.766h3.467A.766.766 0 0 0 6 22.234v-3.468A.766.766 0 0 0 5.234 18m17-8.5h-3.467a.766.766 0 0 0-.767.766v3.468c0 .423.343.766.767.766h3.467a.766.766 0 0 0 .766-.766v-3.468a.766.766 0 0 0-.766-.766m-8.5 0h-3.467a.766.766 0 0 0-.767.766v3.468c0 .423.343.766.767.766h3.467a.766.766 0 0 0 .766-.766v-3.468a.766.766 0 0 0-.766-.766m-8.5 0H1.767a.766.766 0 0 0-.767.766v3.468c0 .423.343.766.767.766h3.467A.766.766 0 0 0 6 13.734v-3.468a.766.766 0 0 0-.766-.766m17-8.5h-3.467a.766.766 0 0 0-.767.766v3.468c0 .423.343.766.767.766h3.467A.766.766 0 0 0 23 5.234V1.766A.766.766 0 0 0 22.234 1m-8.5 0h-3.467a.766.766 0 0 0-.767.766v3.468c0 .423.343.766.767.766h3.467a.766.766 0 0 0 .766-.766V1.766A.766.766 0 0 0 13.734 1M6 1.766v3.468A.766.766 0 0 1 5.234 6H1.767A.766.766 0 0 1 1 5.234V1.766C1 1.343 1.343 1 1.767 1h3.467c.423 0 .766.343.766.766" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-help" viewBox="0 0 24 24">
+ <g fill-rule="evenodd"><path d="M6.507 2.193L5.093 3.607l4.4 4.4 1.414-1.414zm.086 8.714l1.414-1.414-4.4-4.4-1.414 1.414zm15.214-4.4l-1.414-1.414-4.4 4.4 1.414 1.414zm-8.714.086l1.414 1.414 4.4-4.4-1.414-1.414zm4.4 15.214l1.414-1.414-4.4-4.4-1.414 1.414zm-.086-8.714l-1.414 1.414 4.4 4.4 1.414-1.414zm-15.214 4.4l1.414 1.414 4.4-4.4-1.414-1.414zm8.714-.086l-1.414-1.414-4.4 4.4 1.414 1.414z"/><path d="M24 12c0-6.627-5.373-12-12-12S0 5.373 0 12s5.373 12 12 12 12-5.373 12-12zM2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10S2 17.523 2 12z"/><path d="M18 12a6 6 0 1 0-12 0 6 6 0 0 0 12 0zM8 12a4 4 0 1 1 8 0 4 4 0 0 1-8 0z"/></g>
+ </symbol>
+ <symbol id="wds-icons-hourglass" viewBox="0 0 24 24">
+ <path d="M21.6 2c.2 0 .4-.2.4-.4V.4c0-.2-.2-.4-.4-.4H2.4c-.2 0-.4.2-.4.4v1.2c0 .2.2.4.4.4H4c0 4.1 1.4 7.8 3.6 10C5.4 14.2 4 17.9 4 22H2.4c-.2 0-.4.2-.4.4v1.1c0 .3.2.5.4.5h19.1c.2 0 .4-.2.4-.4v-1.1c0-.2-.2-.4-.4-.4H20c0-4.1-1.4-7.8-3.6-10C18.6 9.8 20 6.1 20 2h1.6zM18 22H6c0-1.4.2-2.8.5-4h10.9c.4 1.2.6 2.6.6 4zm-3.7-10.8l-1.1.8 1.2.8c1 .7 1.8 1.8 2.4 3.2H7.3c.6-1.4 1.4-2.5 2.4-3.2l1.2-.8-1.2-.8C7.5 9.6 6 5.9 6 2h12c0 3.9-1.5 7.6-3.7 9.2z" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-house-small" viewBox="0 0 18 18">
+ <path d="M11.955 16.925h2c.6 0 1-.4 1-1v-7h1c.3 0 .6-.1.8-.3.4-.4.3-1-.1-1.4l-7-6c-.4-.3-.9-.3-1.3 0l-7 6c-.4.4-.5 1-.1 1.4.1.2.4.3.7.3h1v7c0 .6.4 1 1 1h2c.6 0 1-.4 1-1v-3h4v3c0 .6.4 1 1 1z" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-house" viewBox="0 0 24 24">
+ <path d="M22.664 10.126L12.662 1.25a.996.996 0 0 0-1.327.005l-10.003 9a.998.998 0 0 0-.264 1.104c.148.386.518.64.93.64h.005l1.989-.012V22c0 .553.446 1 .997 1H7.98a.998.998 0 0 0 .997-1v-4.5h5.983V22c0 .553.446 1 .997 1h2.992a.998.998 0 0 0 .997-1V11.888l2.062-.013a1 1 0 0 0 .655-1.75" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-image-add" viewBox="0 0 24 24">
+ <path d="M9.5 5.75a1.75 1.75 0 1 0 .001 3.501A1.75 1.75 0 0 0 9.5 5.75"/><path d="M16.688 20a3.316 3.316 0 0 1-3.314-3.313 3.316 3.316 0 0 1 3.313-3.312A3.316 3.316 0 0 1 20 16.687 3.316 3.316 0 0 1 16.687 20zm-6.558-7.735l-3.378-2.027a1 1 0 0 0-1.22.15L4 11.919V4h15v6.036l-3.303-2.202a1 1 0 0 0-1.26.125l-4.307 4.306zM21 13.616V3a1 1 0 0 0-1-1H3a1 1 0 0 0-1 1v17a1 1 0 0 0 1 1h10.623c.867.62 1.917 1 3.063 1A5.318 5.318 0 0 0 22 16.687a5.258 5.258 0 0 0-1-3.071z"/><path d="M18.413 16.188h-1.225v-1.225a.5.5 0 0 0-1 0v1.225h-1.225a.5.5 0 1 0 0 1h1.225v1.225a.5.5 0 0 0 1 0v-1.226h1.225a.5.5 0 0 0 0-1"/>
+ </symbol>
+ <symbol id="wds-icons-image-remove" viewBox="0 0 24 24">
+ <path d="M9.5 5.75a1.75 1.75 0 1 0 .001 3.501A1.75 1.75 0 0 0 9.5 5.75"/><path d="M16.688 20a3.316 3.316 0 0 1-3.314-3.312 3.316 3.316 0 0 1 3.313-3.313A3.316 3.316 0 0 1 20 16.688 3.316 3.316 0 0 1 16.687 20zm-6.558-7.735l-3.378-2.027a1 1 0 0 0-1.22.15L4 11.919V4h15v6.036l-3.303-2.202a1 1 0 0 0-1.26.125l-4.307 4.306zM21 13.616V3a1 1 0 0 0-1-1H3a1 1 0 0 0-1 1v17a1 1 0 0 0 1 1h10.623c.867.62 1.917 1 3.063 1A5.318 5.318 0 0 0 22 16.688a5.258 5.258 0 0 0-1-3.072z"/><path d="M18.45 17.125H15a.5.5 0 1 1 0-1h3.45a.5.5 0 0 1 0 1"/>
+ </symbol>
+ <symbol id="wds-icons-image" viewBox="0 0 24 24">
+ <g fill-rule="evenodd"><path d="M3 4h18v8.737l-3.83-3.191a.916.916 0 0 0-1.282.108l-4.924 5.744-3.891-3.114a.92.92 0 0 0-1.146 0L3 14.626V4zm19-2H2a1 1 0 0 0-1 1v18a1 1 0 0 0 1 1h20a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1z"/><path d="M9 10c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2"/></g>
+ </symbol>
+ <symbol id="wds-icons-information" viewBox="0 0 24 24">
+ <path d="M14 18h-4a1 1 0 1 1 0-2h1v-4h-1a1 1 0 1 1 0-2h2a1 1 0 0 1 1 1v5h1a1 1 0 1 1 0 2zM11 6a1 1 0 1 1 2 0v1a1 1 0 1 1-2 0V6zm1-6C5.383 0 0 5.383 0 12s5.383 12 12 12 12-5.383 12-12S18.617 0 12 0z" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-instagram" viewBox="0 0 24 24">
+ <g fill-rule="evenodd"><path d="M12 2.162c3.204 0 3.584.012 4.849.07 1.366.062 2.633.336 3.608 1.311.975.975 1.249 2.242 1.311 3.608.058 1.265.07 1.645.07 4.849s-.012 3.584-.07 4.849c-.062 1.366-.336 2.633-1.311 3.608-.975.975-2.242 1.249-3.608 1.311-1.265.058-1.645.07-4.849.07s-3.584-.012-4.849-.07c-1.366-.062-2.633-.336-3.608-1.311-.975-.975-1.249-2.242-1.311-3.608-.058-1.265-.07-1.645-.07-4.849s.012-3.584.07-4.849c.062-1.366.336-2.633 1.311-3.608.975-.975 2.242-1.249 3.608-1.311 1.265-.058 1.645-.07 4.849-.07zM12 0C8.741 0 8.332.014 7.052.072c-1.95.089-3.663.567-5.038 1.942C.639 3.389.161 5.102.072 7.052.014 8.332 0 8.741 0 12c0 3.259.014 3.668.072 4.948.089 1.95.567 3.663 1.942 5.038 1.375 1.375 3.088 1.853 5.038 1.942C8.332 23.986 8.741 24 12 24c3.259 0 3.668-.014 4.948-.072 1.95-.089 3.663-.567 5.038-1.942 1.375-1.375 1.853-3.088 1.942-5.038.058-1.28.072-1.689.072-4.948 0-3.259-.014-3.668-.072-4.948-.089-1.95-.567-3.663-1.942-5.038C20.611.639 18.898.161 16.948.072 15.668.014 15.259 0 12 0z"/><path d="M12 5.838a6.162 6.162 0 1 0 0 12.324 6.162 6.162 0 0 0 0-12.324zM12 16a4 4 0 1 1 0-8 4 4 0 0 1 0 8z"/><circle cx="18.406" cy="5.594" r="1.44"/></g>
+ </symbol>
+ <symbol id="wds-icons-italics-small" viewBox="0 0 18 18">
+ <path d="M13 3V1H7v2h1.27a.5.5 0 0 1 .496.57l-1.51 10.571a1 1 0 0 1-.99.859H5v2h6v-2H9.73a.5.5 0 0 1-.496-.57l1.51-10.571a1 1 0 0 1 .99-.859H13z" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-italics" viewBox="0 0 24 24">
+ <path d="M6 24l.166-1.625 2.42-.232c.464-.032.53-.165.596-.663l2.652-18.96c.066-.498.034-.63-.43-.664l-2.32-.232L9.282 0h8.885l-.2 1.624-2.518.265c-.498.067-.532.133-.598.63l-2.685 18.929c-.066.53-.066.596.43.663l2.454.264L14.884 24H6z" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-line" viewBox="0 0 24 24">
+ <path d="M21.727 10.908c0-4.37-4.428-7.925-9.87-7.925-5.441 0-9.869 3.555-9.869 7.925 0 3.918 3.511 7.2 8.254 7.82.321.068.759.21.87.481.1.247.065.633.031.883l-.14.836c-.043.247-.199.966.855.527 1.053-.44 5.683-3.312 7.753-5.67 1.43-1.553 2.116-3.128 2.116-4.877zm-13.732 2.6H6.033a.515.515 0 0 1-.517-.512V9.115c0-.282.232-.512.517-.512.286 0 .518.23.518.512v3.369h1.444c.285 0 .517.23.517.512a.515.515 0 0 1-.517.512zm2.028-.512a.515.515 0 0 1-.518.512.515.515 0 0 1-.517-.512V9.115c0-.282.232-.512.517-.512.286 0 .518.23.518.512v3.88zm4.72 0a.51.51 0 0 1-.518.512.523.523 0 0 1-.414-.205l-2.01-2.708v2.4a.515.515 0 0 1-.517.513.515.515 0 0 1-.517-.512V9.115a.512.512 0 0 1 .518-.512.52.52 0 0 1 .413.205l2.01 2.708V9.115c0-.282.232-.512.518-.512.285 0 .517.23.517.512v3.88zm3.173-2.453c.285 0 .518.23.518.513a.516.516 0 0 1-.518.512h-1.443v.916h1.443c.285 0 .518.23.518.512a.516.516 0 0 1-.518.512h-1.961a.516.516 0 0 1-.517-.512V9.115c0-.282.232-.512.517-.512h1.961c.285 0 .518.23.518.512a.515.515 0 0 1-.518.512h-1.443v.916h1.443z"/>
+ </symbol>
+ <symbol id="wds-icons-link" viewBox="0 0 24 24">
+ <path d="M5 17h5c2.757 0 5-2.243 5-5a1 1 0 1 0-2 0c0 1.654-1.346 3-3 3H5c-1.654 0-3-1.346-3-3s1.346-3 3-3h2a1 1 0 1 0 0-2H5c-2.757 0-5 2.243-5 5s2.243 5 5 5zM19 7h-5c-2.757 0-5 2.243-5 5a1 1 0 1 0 2 0c0-1.654 1.346-3 3-3h5c1.654 0 3 1.346 3 3s-1.346 3-3 3h-2a1 1 0 1 0 0 2h2c2.757 0 5-2.243 5-5s-2.243-5-5-5z" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-linkedin" viewBox="0 0 24 24">
+ <path d="M.351 24h4.982V7.93H.351zM18.035 7.509c-2.386 0-4.07 1.333-4.702 2.596h-.07V7.93H8.491V24h4.983v-7.93c0-2.105.421-4.14 3.017-4.14 2.597 0 2.597 2.386 2.597 4.28V24H24v-8.842c0-4.351-.912-7.65-5.965-7.65M2.877 0A2.845 2.845 0 0 0 0 2.877a2.845 2.845 0 0 0 2.877 2.877c1.614 0 2.877-1.333 2.877-2.877A2.845 2.845 0 0 0 2.877 0"/>
+ </symbol>
+ <symbol id="wds-icons-loading" viewBox="0 0 24 24">
+ <path d="M15.01 3.516A9 9 0 1 0 12 21h.36v-1.152H12A7.848 7.848 0 1 1 19.848 12v.36H21V12a9.003 9.003 0 0 0-5.99-8.484zm-.24.678A8.283 8.283 0 0 1 20.28 12l.36-.36h-.432l.36.36a8.57 8.57 0 0 0-5.702-8.077A8.568 8.568 0 1 0 12 20.568l-.36-.36v.432l.36-.36a8.28 8.28 0 1 1 2.77-16.086z" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-lock-small" viewBox="0 0 18 18">
+ <path d="M11 6H7V5c0-1.1.9-2 2-2s2 .9 2 2v1zm-1 6.7V14H8v-1.3c-.6-.3-1-1-1-1.7 0-1.1.9-2 2-2s2 .9 2 2c0 .7-.4 1.4-1 1.7zM9 1C6.8 1 5 2.8 5 5v1H3c-.6 0-1 .4-1 1v9c0 .6.4 1 1 1h12c.6 0 1-.4 1-1V7c0-.6-.4-1-1-1h-2V5c0-2.2-1.8-4-4-4z" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-lock" viewBox="0 0 24 24">
+ <path d="M16 8H8V6c0-2.206 1.794-4 4-4s4 1.794 4 4v2zm-3 9.816V19a1 1 0 0 1-2 0v-1.184A2.996 2.996 0 0 1 9 15c0-1.654 1.346-3 3-3s3 1.346 3 3a2.996 2.996 0 0 1-2 2.816zM12 0C8.691 0 6 2.691 6 6v2H4a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1V9a1 1 0 0 0-1-1h-2V6c0-3.309-2.691-6-6-6z" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-magnifying-glass" viewBox="0 0 24 24">
+ <g fill-rule="evenodd"><path d="M21.747 20.524l-4.872-4.871a.864.864 0 1 0-1.222 1.222l4.871 4.872a.864.864 0 1 0 1.223-1.223z"/><path d="M3.848 10.763a6.915 6.915 0 0 1 6.915-6.915 6.915 6.915 0 0 1 6.915 6.915 6.915 6.915 0 0 1-6.915 6.915 6.915 6.915 0 0 1-6.915-6.915zm-1.729 0a8.643 8.643 0 0 0 8.644 8.644 8.643 8.643 0 0 0 8.644-8.644 8.643 8.643 0 0 0-8.644-8.644 8.643 8.643 0 0 0-8.644 8.644z"/></g>
+ </symbol>
+ <symbol id="wds-icons-mail" viewBox="0 0 24 24">
+ <path d="M23 2H1a1 1 0 0 0-1 1v3a1 1 0 0 0 .521.878l11 6a1.003 1.003 0 0 0 .958 0l11-6A1 1 0 0 0 24 6V3a1 1 0 0 0-1-1zM12 15c-.498 0-.994-.126-1.433-.364L0 8.872V21a1 1 0 0 0 1 1h22a1 1 0 0 0 1-1V8.872l-10.563 5.762c-.443.24-.939.366-1.437.366z" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-map" viewBox="0 0 24 24">
+ <path d="M22.725 1.039L17 2.675v20.08l6.275-1.793A1 1 0 0 0 24 20V2a1 1 0 0 0-1.275-.961M15 2.72l-6-1.5v20.06l6 1.5zM1 23a.993.993 0 0 0 .275-.039L7 21.326V1.246L.725 3.039A1 1 0 0 0 0 4v18a.998.998 0 0 0 1 1" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-meneame" viewBox="0 0 24 24">
+ <path d="M20.494 7.792c-1.427 1.37-4.004 1.33-4.962 3.181-.818 2.195 1.107 5.702 1.911 7.702.545 1.033-4.253 2.03-3.666 2.285 3.385-.036 4.83-1.206 4.423-2.641-.389-1.373-2.144-4.114-2.144-6.305.05-1.654 2.004-2.162 3.263-2.836 1.463-.62 2.831-2.006 2.453-3.63-.016-.574-1.07-2.482-.64-1.003.235 1.092.347 2.44-.638 3.247"/><path d="M16.091 5.326c-1.842-.9-3.89-1.444-6.032-.97-1.151.201-2.507.797-3.279 1.794-1.011 1.144-1.05 2.807-.387 4.115.515 1.007 1.299 2.128 2.569 2.296 1.092.155 2.292.015 3.22-.582-1.103.18-2.381.55-3.372-.147-1.66-1.005-2.467-3.287-1.46-4.952.81-1.452 2.441-1.86 4.167-1.932 2.301-.096 4.507 1.147 5.353 1.45.815.242 1.985.55 2.565-.27.339-.38.203-1.429-.072-1.526.08.735-.49 1.659-1.376 1.418-.662-.148-1.27-.449-1.896-.694M3.742 11.824c-1.067 1.592-2.042 3.457-1.67 5.398.342 2.03 2.416 3.46 4.478 3.715 2.117.234 4.23.174 6.352.03.358-.328-1.732-.319-2.612-.439-2.008-.215-4.186-.255-5.907-1.383-1.604-1.136-1.814-3.365-1.045-5.007.644-1.55 1.607-3.048 2.619-4.343-.79.621-1.519 1.084-2.215 2.029"/><path d="M9.014 16.833c1.251.091 3.326-.029 4.301.616.35.497-.3 3.247-.076 3.564.498.139 1.067-3.222.752-4.057-.239-.637-4.479-.298-4.977-.123"/>
+ </symbol>
+ <symbol id="wds-icons-menu-control-small" viewBox="0 0 18 18">
+ <path d="M9 14a.997.997 0 0 1-.707-.293l-7-7a.999.999 0 1 1 1.414-1.414L9 11.586l6.293-6.293a.999.999 0 1 1 1.414 1.414l-7 7A.997.997 0 0 1 9 14" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-menu-control-tiny" viewBox="0 0 12 12">
+ <path d="M6.003 10.002a.997.997 0 0 1-.707-.293L.293 4.707a.999.999 0 1 1 1.414-1.414l4.296 4.295 4.293-4.293A.999.999 0 1 1 11.71 4.71l-5 5a.997.997 0 0 1-.707.293" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-menu-control" viewBox="0 0 24 24">
+ <path d="M21.293 6.293L12 15.586 2.707 6.293a.999.999 0 1 0-1.414 1.414l10 10a.997.997 0 0 0 1.414 0l10-10a.999.999 0 1 0-1.414-1.414" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-menu" viewBox="0 0 24 24">
+ <path d="M23 11H1a1 1 0 0 0 0 2h22a1 1 0 0 0 0-2zm0-7H1a1 1 0 0 0 0 2h22a1 1 0 0 0 0-2zm0 14H1a1 1 0 0 0 0 2h22a1 1 0 0 0 0-2z" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-more" viewBox="0 0 24 24">
+ <path d="M12 21a2 2 0 1 0 .001-3.999A2 2 0 0 0 12 21m0-7a2 2 0 1 0 .001-3.999A2 2 0 0 0 12 14m0-7a2 2 0 1 0 .001-3.999A2 2 0 0 0 12 7" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-nk" viewBox="0 0 24 24">
+ <path d="M3.852 9.339c.573-.25 1.12-.505 1.68-.727 1.016-.403 2.066-.691 3.17-.714.331-.007.675.04.994.126.992.271 1.496.99 1.602 1.93.082.723.044 1.467-.01 2.197-.118 1.585-.278 3.167-.423 4.75-.09.976-.185 1.952-.268 2.93-.015.173-.082.236-.258.235-.877-.005-1.755-.008-2.632.002-.245.003-.275-.114-.256-.305.083-.86.161-1.718.24-2.577l.37-3.989c.047-.515.086-1.031.142-1.546.077-.7-.21-.987-.932-.911-.7.073-1.332.336-1.947.65-.421.214-.845.426-1.254.662a.467.467 0 0 0-.207.308c-.121 1.165-.226 2.332-.333 3.499-.12 1.293-.242 2.586-.352 3.88-.022.248-.115.337-.38.332-.803-.017-1.605-.006-2.408-.006-.356 0-.366-.002-.337-.337.14-1.61.285-3.22.428-4.83.119-1.34.24-2.678.354-4.017.032-.382.02-.383-.365-.385-.49-.003-.483-.002-.436-.478.053-.533.1-1.067.13-1.602.011-.22.091-.303.32-.299.578.011 1.157.003 1.735.004.982 0 1.362.28 1.633 1.218m9.826-3.941h-.861c0-.182-.012-.342.002-.5.049-.552.113-1.101.158-1.653.014-.176.089-.229.263-.228.83.007 1.661-.006 2.491.008.677.01 1.26.625 1.206 1.281-.12 1.455-.26 2.909-.389 4.363-.1 1.13-.193 2.26-.295 3.388-.103 1.138-.217 2.275-.32 3.413-.103 1.13-.196 2.26-.296 3.388-.031.353-.062.705-.113 1.055-.01.07-.112.181-.172.182-.97.01-1.94.004-2.91 0-.025 0-.05-.021-.113-.05l1.349-14.647m9.079 14.69c-.148.008-.238.017-.328.017-.905.001-1.81-.004-2.716.004-.2.002-.319-.054-.416-.236a942.803 942.803 0 0 0-3.025-5.618c-.08-.149-.078-.255.014-.395 1.215-1.842 2.422-3.687 3.64-5.527.06-.09.197-.182.3-.183 1.138-.013 2.276-.008 3.415-.007.044 0 .089.01.177.022-.072.112-.125.202-.186.287-1.297 1.799-2.592 3.599-3.897 5.393-.125.172-.137.296-.035.485.969 1.8 1.926 3.607 2.886 5.412.051.096.096.194.171.346"/>
+ </symbol>
+ <symbol id="wds-icons-note" viewBox="0 0 24 24">
+ <path d="M23 1H1a1 1 0 0 0-1 1v15a1 1 0 0 0 1 1h6.52l3.699 4.625a1 1 0 0 0 1.562 0L16.48 18H23a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-numbered-list-small" viewBox="0 0 18 18">
+ <path d="M6 2h11v2H6zm0 6h11v2H6zm0 6h11v2H6zM1.368 5v-.549l.598-.048c.097-.007.11-.035.11-.139V1.84c0-.083-.02-.125-.09-.145l-.604-.126L1.46 1h1.666v3.264c0 .111.007.132.111.139l.57.048V5H1.368zm-.321 6v-.63l.907-.886c.684-.663.975-.934.975-1.32 0-.25-.122-.433-.48-.433-.373 0-.529.122-.529.603L1 8.252C1.007 7.176 1.826 7 2.536 7c1.05 0 1.422.447 1.422 1.083 0 .636-.44 1.056-.934 1.53l-.765.73h.995c.067 0 .095-.013.108-.08l.095-.535h.717V11H1.047zm2.297 3.682c.567.087.88.427.88 1.026 0 .88-.66 1.292-1.612 1.292-.673 0-1.272-.24-1.612-.613l.533-.586c.253.247.533.44.999.44.373 0 .693-.133.693-.6 0-.406-.253-.573-.666-.573a2.73 2.73 0 0 0-.493.047v-.666l.326-.04c.48-.06.74-.293.74-.72 0-.252-.114-.459-.487-.459-.36 0-.532.12-.532.593l-.913-.08c0-1.052.793-1.232 1.492-1.232 1.026 0 1.419.393 1.419 1.106 0 .56-.347.912-.767 1.039v.026z" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-numbered-list" viewBox="0 0 24 24">
+ <path d="M23 5H9a1 1 0 0 1 0-2h14a1 1 0 0 1 0 2zm0 8H9a1 1 0 0 1 0-2h14a1 1 0 0 1 0 2zm0 8H9a1 1 0 1 1 0-2h14a1 1 0 1 1 0 2zM1.56 6.593V5.88l.774-.063c.126-.008.144-.045.144-.18V2.498c0-.108-.027-.163-.117-.19l-.783-.161.099-.739h2.16V5.64c0 .144.01.17.144.18l.739.062v.712H1.56zm-.469 8.067v-.837l1.207-1.18c.91-.882 1.296-1.241 1.296-1.755 0-.333-.162-.576-.639-.576-.495 0-.702.162-.702.802l-1.225-.109c.01-1.431 1.099-1.665 2.044-1.665 1.395 0 1.89.594 1.89 1.44 0 .847-.584 1.405-1.242 2.035l-1.017.972h1.324c.09 0 .126-.018.144-.108l.126-.711h.954v1.692H1.09zm3.039 5.241c.765.117 1.188.576 1.188 1.386 0 1.189-.89 1.747-2.178 1.747-.91 0-1.72-.324-2.18-.828l.721-.792c.342.333.72.594 1.35.594.505 0 .937-.18.937-.81 0-.55-.342-.775-.9-.775a3.69 3.69 0 0 0-.667.063v-.9l.442-.054c.648-.081.999-.396.999-.972 0-.342-.153-.621-.658-.621-.485 0-.72.162-.72.801l-1.233-.108c0-1.423 1.072-1.666 2.017-1.666 1.386 0 1.917.531 1.917 1.495 0 .756-.468 1.233-1.035 1.404v.036z" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-odnoklassniki" viewBox="0 0 24 24">
+ <path d="M14.289 16.068c.33.319.618.598.909.875.644.613 1.296 1.22 1.934 1.84.67.65.694 1.557.071 2.176-.629.624-1.624.635-2.294-.01-.934-.9-1.844-1.823-2.794-2.764-.16.145-.26.23-.353.32-.812.778-1.625 1.554-2.432 2.337-.39.378-.837.626-1.408.576-.645-.056-1.113-.372-1.354-.953-.248-.598-.13-1.153.33-1.61.673-.672 1.372-1.318 2.061-1.974.267-.254.538-.503.863-.806-.214-.065-.356-.095-.486-.15-.806-.334-1.635-.629-2.407-1.024-.876-.449-1.114-1.383-.634-2.14.466-.734 1.412-.933 2.247-.475 2.342 1.285 4.684 1.284 7.025-.006.828-.456 1.78-.247 2.243.49.468.747.235 1.677-.618 2.116-.772.398-1.598.697-2.403 1.034-.135.057-.283.085-.5.148zM6.695 7.176c.01-2.858 2.419-5.131 5.422-5.118 2.925.013 5.31 2.344 5.29 5.171-.021 2.865-2.414 5.103-5.441 5.089-2.913-.013-5.282-2.325-5.271-5.142zm5.364-2.03c-1.191-.003-2.158.901-2.175 2.035-.017 1.114 1.009 2.1 2.177 2.093 1.164-.009 2.148-.957 2.154-2.077.005-1.123-.967-2.048-2.156-2.051z"/>
+ </symbol>
+ <symbol id="wds-icons-pages-small" viewBox="0 0 18 18">
+ <g fill="param(fill) #999" fill-rule="evenodd"><path d="M13 0H4a1 1 0 1 0 0 2h8v10a1 1 0 1 0 2 0V1a1 1 0 0 0-1-1z"/><path d="M2 14h6V6H2v8zM9 4H1a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V5a1 1 0 0 0-1-1z"/></g>
+ </symbol>
+ <symbol id="wds-icons-pages" viewBox="0 0 24 24">
+ <g fill-rule="evenodd"><path d="M4 21.053h13v-15H4v15zm14-17H3a1 1 0 0 0-1 1v17a1 1 0 0 0 1 1h15a1 1 0 0 0 1-1v-17a1 1 0 0 0-1-1z"/><path d="M21 1H5.505a1 1 0 1 0 0 2H20v17.229a1 1 0 1 0 2 0V2a1 1 0 0 0-1-1"/><path d="M7 10.042h7a1 1 0 1 0 0-2H7a1 1 0 1 0 0 2m0 4.011h6a1 1 0 1 0 0-2H7a1 1 0 1 0 0 2m0 4h3a1 1 0 1 0 0-2H7a1 1 0 1 0 0 2"/></g>
+ </symbol>
+ <symbol id="wds-icons-pencil-small" viewBox="0 0 18 18">
+ <path d="M9.1 4.5l-7.8 7.8c-.2.2-.3.4-.3.7v3c0 .6.4 1 1 1h3c.3 0 .5-.1.7-.3l7.8-7.8-4.4-4.4zm7.6-.2l-3-3c-.4-.4-1-.4-1.4 0l-1.8 1.8 4.4 4.4 1.8-1.8c.4-.4.4-1 0-1.4z" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-pencil" viewBox="0 0 24 24">
+ <path d="M1.293 16.293A1 1 0 0 0 1 17v5a1 1 0 0 0 1 1h5c.265 0 .52-.105.707-.293L19 11.414 12.586 5 1.293 16.293zm21.414-10l-5-5a.999.999 0 0 0-1.414 0L14 3.586 20.414 10l2.293-2.293a.999.999 0 0 0 0-1.414z" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-play" viewBox="0 0 24 24">
+ <path d="M16.555 12.832l-6 4A1.002 1.002 0 0 1 9 16V8a1 1 0 0 1 1.555-.832l6 4a.999.999 0 0 1 0 1.664M12 0C5.383 0 0 5.383 0 12s5.383 12 12 12c6.618 0 12-5.383 12-12S18.618 0 12 0" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-plus" viewBox="0 0 24 24">
+ <path d="M11 13v9a1 1 0 1 0 2 0v-9h9a1 1 0 1 0 0-2h-9V2a1 1 0 1 0-2 0v9H2a1 1 0 1 0 0 2h9z" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-question" viewBox="0 0 24 24">
+ <path d="M13 12.868V13a1 1 0 1 1-2 0v-1a1 1 0 0 1 1-1c1.065 0 2-.934 2-2 0-1.065-.935-2-2-2-.812 0-1.592.672-1.876 1.322a1 1 0 1 1-1.832-.801C8.93 6.061 10.489 5 12 5c2.168 0 4 1.832 4 4 0 1.825-1.297 3.411-3 3.868zM13 18a1 1 0 1 1-2 0v-1a1 1 0 1 1 2 0v1zM12 0C5.383 0 0 5.384 0 12c0 6.617 5.383 12 12 12s12-5.383 12-12c0-6.616-5.383-12-12-12z" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-quote-small" viewBox="0 0 18 18">
+ <path d="M7.287 10.334c-1.113-1.03-2.939-1.248-4.257-.22-.113-.929-.024-1.781.291-2.544.966-2.335 3.684-3.147 3.713-3.155a.72.72 0 0 0 .497-.892.732.732 0 0 0-.901-.496 7.51 7.51 0 0 0-1.208.493c-1.637.786-4.144 2.662-4.392 6.765a9.57 9.57 0 0 0-.022.48c0 .062-.008.117-.008.179v.053c0 .182.007.363.02.543l.002.024c.012.17.029.337.052.503l.008.057C1.395 14.276 2.633 16 4.94 16a3.304 3.304 0 0 0 2.853-1.6c.72-1.189.623-3.023-.505-4.066zm8.746 0c-1.114-1.03-2.94-1.248-4.258-.22-.112-.929-.023-1.781.292-2.544.965-2.335 3.684-3.147 3.712-3.155a.72.72 0 0 0 .497-.892.732.732 0 0 0-.9-.496 7.51 7.51 0 0 0-1.209.493c-1.636.786-4.143 2.662-4.392 6.765a9.57 9.57 0 0 0-.021.48c-.001.062-.008.117-.008.179v.053c0 .182.007.363.02.543l.001.024c.012.17.03.337.052.503l.009.057C10.14 14.276 11.378 16 13.685 16a3.304 3.304 0 0 0 2.853-1.6c.72-1.189.622-3.023-.505-4.066z" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-quote" viewBox="0 0 24 24">
+ <path d="M9.647 13.156c-1.532-1.427-4.042-1.728-5.856-.303-.154-1.287-.032-2.468.401-3.524C5.52 6.095 9.26 4.97 9.298 4.959a.999.999 0 0 0 .684-1.235 1.006 1.006 0 0 0-1.24-.686c-.071.02-.75.22-1.66.682-2.251 1.089-5.7 3.686-6.04 9.368-.018.22-.025.443-.031.666-.001.085-.011.16-.011.247l.001.038-.001.035c0 .253.01.504.027.752 0 .012.002.022.003.034.016.235.04.467.071.697.004.026.01.052.012.078.43 2.98 2.133 5.368 5.305 5.368 1.63 0 3.092-.833 3.924-2.217.989-1.645.856-4.185-.695-5.63zm12.028 0c-1.532-1.427-4.043-1.728-5.856-.303-.154-1.287-.032-2.468.401-3.524 1.328-3.234 5.067-4.358 5.106-4.37a.999.999 0 0 0 .684-1.235 1.006 1.006 0 0 0-1.24-.686c-.071.02-.75.22-1.661.682-2.25 1.089-5.698 3.686-6.04 9.368-.017.22-.024.443-.03.666-.001.085-.011.16-.011.247v.073c0 .253.01.504.027.752 0 .012.002.022.003.034.016.235.04.467.071.697.004.026.01.052.012.078.43 2.98 2.133 5.368 5.304 5.368a4.537 4.537 0 0 0 3.924-2.217c.99-1.645.856-4.185-.694-5.63z" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-qzone" viewBox="0 0 24 24">
+ <path d="M21.602 9.72c-1.418 1.324-2.836 2.65-4.257 3.971-.2.185-.313.386-.236.66l.09.54c-.758.011-1.515-.025-2.273-.058-.796-.035-1.592-.082-2.388-.13-.513-.032-1.026-.076-1.538-.116-.076-.006-.154-.013-.21-.082.212-.176.432-.325.652-.475a687.562 687.562 0 0 0 5.657-3.907c.03-.022.082-.034.072-.081-.01-.048-.061-.038-.098-.044a25.625 25.625 0 0 0-3.692-.439 30.083 30.083 0 0 0-7.275.538c-.168.034-.334.077-.502.115a.253.253 0 0 0 .121.022c1.058.02 2.114.053 3.17.1 1.18.053 2.361.114 3.537.252.397.046.792.108 1.189.163.026.004.062.006.07.033.01.035-.023.054-.048.073l-.183.128a24252.936 24252.936 0 0 0-6.138 4.326c-.046.04-.037.067.02.077.074.01.148.015.223.024 1.24.143 2.488.22 3.737.246a32.84 32.84 0 0 0 3.954-.153 23.413 23.413 0 0 0 2.696-.42c.106-.024.065-.055.17-.082.107-.028.175-.053.175-.064v.002c0 .015.13.029.121.043a2.872 2.872 0 0 1-.914.496c-.27.096-.233.097-.166.376.002.007.027.014.03.02.002.026.009.055.014.08.086.474.177.947.265 1.42.06.32.126.639.188.958.026.25.086.493.13.74.08.442.164.884.242 1.328a.58.58 0 0 1-.003.22c-.048.206-.208.294-.42.246a1.126 1.126 0 0 1-.3-.13c-1.68-.97-3.363-1.937-5.042-2.91-.347-.2-.675-.197-1.02.003-1.687.976-3.376 1.946-5.065 2.92a1.054 1.054 0 0 1-.245.11c-.295.08-.533-.152-.466-.452.074-.333.132-.669.189-1.006.043-.258.102-.512.153-.768.021-.107.04-.215.06-.323.069-.342.139-.684.207-1.027.084-.424.148-.852.236-1.276.087-.41.166-.824.234-1.238.026-.154.082-.302.075-.46.102-.22.062-.356-.16-.56L2.242 9.715a.858.858 0 0 1-.254-.374c.009-.228.133-.358.398-.392.412-.052.826-.095 1.239-.142l1.601-.18 1.568-.173c.499-.055.998-.114 1.497-.166.297-.03.466-.209.586-.46.4-.835.801-1.669 1.203-2.503l1.413-2.933a.984.984 0 0 1 .183-.284c.159-.158.347-.16.508-.005a.845.845 0 0 1 .18.272c.843 1.868 1.689 3.734 2.525 5.606.133.3.378.352.655.38.695.067 1.39.138 2.086.206.671.066 1.343.128 2.014.195.606.06 1.211.119 1.815.186.189.022.363.083.414.302.002.21-.132.341-.27.47"/>
+ </symbol>
+ <symbol id="wds-icons-reddit" viewBox="0 0 24 24">
+ <path d="M21.334 12.023c.359-.283.538-.671.538-1.166 0-.354-.112-.663-.342-.928a1.111 1.111 0 0 0-.882-.398 1.17 1.17 0 0 0-.734.268 5.004 5.004 0 0 1 1.42 2.224m-2.572-9.275a.97.97 0 0 0-.222.638c0 .247.076.458.222.635a.697.697 0 0 0 .562.265c.23 0 .426-.088.59-.265a.904.904 0 0 0 .244-.635.908.908 0 0 0-.244-.638.773.773 0 0 0-.59-.264.697.697 0 0 0-.562.264M14.156 14.09c.31.319.677.477 1.102.477.424 0 .793-.158 1.102-.477.311-.319.466-.724.466-1.219 0-.46-.146-.848-.44-1.167-.294-.316-.67-.476-1.128-.476-.458 0-.832.16-1.127.476-.295.32-.44.708-.44 1.167 0 .495.153.9.465 1.219m-2.18 4.716c1.568 0 2.84-.529 3.822-1.589l-.638-.635c-.815.848-1.878 1.27-3.184 1.27a4.38 4.38 0 0 1-1.666-.319c-.523-.21-.9-.422-1.128-.635l-.343-.316-.637.635c.98 1.06 2.237 1.59 3.774 1.59M7.221 12.87c0 .495.157.9.467 1.219.309.319.677.477 1.102.477a1.49 1.49 0 0 0 1.104-.477c.308-.319.463-.724.463-1.219 0-.46-.145-.848-.44-1.167-.293-.316-.67-.476-1.127-.476-.457 0-.832.16-1.128.476-.292.32-.44.708-.44 1.167m-4.556-.9c.262-.814.734-1.537 1.42-2.172a1.167 1.167 0 0 0-.734-.268c-.326 0-.613.133-.858.398a1.316 1.316 0 0 0-.367.928c0 .53.18.902.539 1.114M23 10.911c0 1.094-.44 1.89-1.324 2.383.034.179.05.425.05.744 0 2.013-.955 3.735-2.866 5.167-1.91 1.43-4.206 2.145-6.884 2.145s-4.965-.708-6.86-2.121c-1.896-1.412-2.843-3.125-2.843-5.14 0-.352.017-.616.05-.795C1.44 12.801 1 12.004 1 10.91c0-.74.245-1.37.733-1.88.492-.513 1.063-.77 1.717-.77.588 0 1.127.229 1.616.69C6.864 7.607 8.97 6.884 11.39 6.778h.096l1.52-5.459 4.409.952C17.87 1.423 18.509 1 19.324 1h.05c.621 0 1.135.231 1.543.69.408.459.613 1.024.613 1.696 0 .67-.205 1.236-.613 1.696a1.975 1.975 0 0 1-1.542.687h-.05c-.555 0-1.046-.203-1.47-.608a2.186 2.186 0 0 1-.686-1.51l-3.283-.743-1.078 3.921c2.484.177 4.524.885 6.126 2.121.488-.461 1.045-.69 1.665-.69.653 0 1.218.257 1.69.77.474.51.711 1.14.711 1.88"/>
+ </symbol>
+ <symbol id="wds-icons-refresh" viewBox="0 0 24 24">
+ <path d="M12 23c6.065 0 11-4.863 11-10.84a.992.992 0 0 0-1-.985c-.553 0-1 .44-1 .986 0 4.89-4.037 8.868-9 8.868s-9-3.978-9-8.868c0-4.89 4.037-8.869 9-8.869a8.991 8.991 0 0 1 6.975 3.292l-3.794-.501a.996.996 0 0 0-1.124.845.987.987 0 0 0 .858 1.108l5.946.785a.996.996 0 0 0 1.124-.845l.797-5.86a.987.987 0 0 0-.858-1.107.994.994 0 0 0-1.124.846l-.446 3.28A10.997 10.997 0 0 0 12 1.322c-6.065 0-11 4.862-11 10.839C1 18.137 5.935 23 12 23" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-reply-arrow-small" viewBox="0 0 18 18">
+ <path d="M8.73 4.985V1.379a.38.38 0 0 0-.217-.347.352.352 0 0 0-.391.067L1.119 7.726a.388.388 0 0 0 0 .56l7.003 6.627c.106.1.26.128.39.067a.38.38 0 0 0 .218-.347v-3.589c5.166.246 7.555 5.675 7.579 5.731a.364.364 0 0 0 .408.217.376.376 0 0 0 .288-.37v-1.989c0-7.342-5.038-9.5-8.275-9.648" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-reply-arrow" viewBox="0 0 24 24">
+ <path d="M11.628 6.479V1.52a.523.523 0 0 0-.298-.476.485.485 0 0 0-.538.09l-9.628 9.113a.533.533 0 0 0 0 .77l9.628 9.113a.486.486 0 0 0 .538.09.523.523 0 0 0 .298-.475V14.81c7.104.338 10.388 7.803 10.421 7.88a.5.5 0 0 0 .561.298.516.516 0 0 0 .396-.51v-2.733c0-10.096-6.926-13.062-11.378-13.267" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-reply-small" viewBox="0 0 18 18">
+ <path d="M18 8.273c0 4.01-4.037 7.272-9 7.272-.752 0-1.508-.078-2.252-.233l-4.22 1.636a.77.77 0 0 1-.732-.096.719.719 0 0 1-.291-.66l.395-3.45C.672 11.47 0 9.896 0 8.273 0 4.263 4.037 1 9 1s9 3.263 9 7.273z" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-reply-tiny" viewBox="0 0 12 12">
+ <path d="M11.997 5.845c0 2.672-2.691 4.846-5.999 4.846-.5 0-1.005-.052-1.5-.156l-2.813 1.09a.513.513 0 0 1-.488-.064.479.479 0 0 1-.194-.439l.263-2.299C.448 7.976 0 6.926 0 5.845 0 3.174 2.69 1 5.998 1c3.308 0 5.999 2.174 5.999 4.845z" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-reply" viewBox="0 0 24 24">
+ <path d="M12 2c6.066 0 11 4.078 11 9.09 0 5.014-4.934 9.092-11 9.092-.919 0-1.843-.098-2.753-.292L4.09 21.935a.922.922 0 0 1-.895-.12.907.907 0 0 1-.356-.824l.483-4.313C1.822 15.088 1 13.118 1 11.091 1 6.078 5.934 2 12 2" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-share-small" viewBox="0 0 18 18">
+ <path d="M3.91 12c.815 0 1.551-.35 2.08-.91l5.305 3.126a3.06 3.06 0 0 0-.113.784c0 1.654 1.305 3 2.909 3C15.695 18 17 16.654 17 15c0-1.655-1.305-3-2.91-3-.815 0-1.551.35-2.08.91L6.705 9.784A3.06 3.06 0 0 0 6.818 9a3.06 3.06 0 0 0-.113-.784L12.01 5.09c.529.56 1.265.91 2.08.91C15.696 6 17 4.654 17 3c0-1.655-1.305-3-2.91-3-1.603 0-2.908 1.345-2.908 3 0 .273.047.533.113.784L5.99 6.91A2.856 2.856 0 0 0 3.91 6C2.304 6 1 7.346 1 9c0 1.655 1.305 3 2.91 3" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-share" viewBox="0 0 24 24">
+ <path d="M5 16a3.984 3.984 0 0 0 2.861-1.213l7.295 4.168A3.964 3.964 0 0 0 15 20c0 2.206 1.794 4 4 4s4-1.794 4-4-1.794-4-4-4a3.984 3.984 0 0 0-2.861 1.213l-7.295-4.168C8.935 12.71 9 12.364 9 12c0-.364-.065-.71-.156-1.045l7.295-4.168A3.984 3.984 0 0 0 19 8c2.206 0 4-1.794 4-4s-1.794-4-4-4-4 1.794-4 4c0 .364.065.71.156 1.045L7.861 9.213A3.984 3.984 0 0 0 5 8c-2.206 0-4 1.794-4 4s1.794 4 4 4" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-text-small" viewBox="0 0 18 18">
+ <path d="M9 1H2v4h1l.724-1.447A1 1 0 0 1 4.618 3H8v11.28a1 1 0 0 1-.684.948L5 16v1h8v-1l-2.316-.772a1 1 0 0 1-.684-.949V3h3.382a1 1 0 0 1 .894.553L15 5h1V1H9z" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-text" viewBox="0 0 24 24">
+ <path d="M23 0H1a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1h1c.334 0 .646-.167.832-.445L4.535 4H10v15.382l-3.447 1.723c-.339.17-.553.516-.553.895v1a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1v-1c0-.379-.214-.725-.553-.895L14 19.382V4h5.465l1.703 2.555c.186.278.498.445.832.445h1a1 1 0 0 0 1-1V1a1 1 0 0 0-1-1" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-trash-open-small" viewBox="0 0 18 18">
+ <g fill-rule="evenodd"><path d="M6.23 3.345l3.845-1.106.353 1.228-3.843 1.106-.354-1.228zm10.725-.716a.998.998 0 0 0-1.238-.684l-3.366.968-.631-2.19A.998.998 0 0 0 10.483.04L4.717 1.699a1.002 1.002 0 0 0-.684 1.238l.63 2.189-2.94.845A1 1 0 0 0 2 7.933V17a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V7a1 1 0 0 0-2 0v9H4V7.397l12.27-3.531a1 1 0 0 0 .685-1.237z"/><path d="M6 10.001v4a1 1 0 1 0 2 0v-4a1 1 0 1 0-2 0m4 0v4a1 1 0 1 0 2 0v-4a1 1 0 1 0-2 0"/></g>
+ </symbol>
+ <symbol id="wds-icons-trash-open" viewBox="0 0 24 24">
+ <path d="M11.797 11.848v6.77a.84.84 0 0 0 .833.846.84.84 0 0 0 .834-.846v-6.77a.84.84 0 0 0-.834-.846.84.84 0 0 0-.833.846m-3.334 0v6.77a.84.84 0 0 0 .834.846.84.84 0 0 0 .833-.846v-6.77a.84.84 0 0 0-.833-.846.84.84 0 0 0-.834.846m6.667 0v6.77a.84.84 0 0 0 .834.846.84.84 0 0 0 .834-.846v-6.77a.84.84 0 0 0-.834-.846.84.84 0 0 0-.833.846"/><path d="M9.166 3.225l4.83-1.314.414 1.565L9.58 4.79l-.414-1.565zm12.184-.761a.83.83 0 0 0-1.02-.598l-4.311 1.172-.628-2.383a.849.849 0 0 0-.389-.514.822.822 0 0 0-.632-.085L7.93 1.81a.848.848 0 0 0-.589 1.037l.629 2.382-5.352 1.455a.847.847 0 0 0-.59 1.036.835.835 0 0 0 1.021.6l2.08-.567V22.85a.84.84 0 0 0 .834.846h13.335a.84.84 0 0 0 .833-.846V7.616a.84.84 0 0 0-.833-.846.84.84 0 0 0-.834.846v14.387H6.796V7.616a.856.856 0 0 0-.06-.3l2.169-.59c.035.004.067.017.103.017a.828.828 0 0 0 .52-.186l5.796-1.578a.814.814 0 0 0 .642-.174L20.76 3.5a.847.847 0 0 0 .59-1.036z"/>
+ </symbol>
+ <symbol id="wds-icons-trash-small" viewBox="0 0 18 18">
+ <g fill-rule="evenodd"><path d="M14 15H4V6h10v9zM6.875 3h4v1h-4V3zM16 4h-3.125V2a1 1 0 0 0-1-1h-6a1 1 0 0 0-1 1v2H2a1 1 0 0 0 0 2v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V6a1 1 0 0 0 0-2z"/><path d="M7 14a1 1 0 0 0 1-1V9a1 1 0 0 0-2 0v4a1 1 0 0 0 1 1m4 0a1 1 0 0 0 1-1V9a1 1 0 0 0-2 0v4a1 1 0 0 0 1 1"/></g>
+ </symbol>
+ <symbol id="wds-icons-trash" viewBox="0 0 24 24">
+ <g fill-rule="evenodd"><path d="M18.417 21.167H5.583V6.5h12.834v14.667zM9.25 2.833h5.5v1.834h-5.5V2.833zm12.833 1.834h-5.5v-2.75A.916.916 0 0 0 15.667 1H8.333a.917.917 0 0 0-.916.917v2.75h-5.5a.917.917 0 0 0 0 1.833H3.75v15.583c0 .507.41.917.917.917h14.666c.507 0 .917-.41.917-.917V6.5h1.833a.916.916 0 1 0 0-1.833z"/><path d="M12 9.25a.917.917 0 0 0-.917.917V17.5a.916.916 0 1 0 1.834 0v-7.333A.917.917 0 0 0 12 9.25m-3.667 0a.917.917 0 0 0-.916.917V17.5a.916.916 0 1 0 1.833 0v-7.333a.917.917 0 0 0-.917-.917m6.417.917V17.5a.916.916 0 1 0 1.833 0v-7.333a.916.916 0 1 0-1.833 0"/></g>
+ </symbol>
+ <symbol id="wds-icons-tumblr" viewBox="0 0 24 24">
+ <path d="M13.987 20.999c-3.79.067-5.226-2.794-5.226-4.807V10.31H7V7.985c2.64-.984 3.275-3.447 3.423-4.85.01-.097.083-.135.126-.135h2.549v4.585h3.48v2.725h-3.494v5.603c.013.763.282 1.814 1.675 1.775.461-.012 1.08-.152 1.403-.31L17 19.944c-.315.477-1.734 1.03-3.013 1.054"/>
+ </symbol>
+ <symbol id="wds-icons-twitter" viewBox="0 0 24 24">
+ <path d="M20.681 7.328v.577c0 5.915-4.486 12.695-12.735 12.695-2.605 0-4.92-.721-6.946-2.02.434 0 .724.145 1.158.145 2.026 0 4.052-.722 5.644-1.876-1.882 0-3.618-1.298-4.197-3.174.29 0 .579.145.868.145.434 0 .434 0 1.013-.145-2.17-.432-4.052-2.308-4.052-4.472 0 .433 1.592.433 2.316.577-1.158-.865-1.882-2.164-1.882-3.75 0-.866.29-1.587.724-2.309 2.17 2.741 5.644 4.472 9.261 4.761-.144-.433-.144-.721-.144-1.01C11.709 5.02 13.735 3 16.195 3c1.302 0 2.46.433 3.328 1.443 1.013-.289 1.882-.577 2.75-1.154-.434 1.154-1.158 1.875-1.881 2.452a13.73 13.73 0 0 0 2.604-.721c-.723.865-1.447 1.73-2.315 2.308z"/>
+ </symbol>
+ <symbol id="wds-icons-undo" viewBox="0 0 24 24">
+ <path d="M4.414 15H16a5 5 0 1 0 0-10H2a1 1 0 0 1 0-2h14a7 7 0 1 1 0 14H4.414l3.293 3.293a1 1 0 0 1-1.414 1.414l-5-5a.997.997 0 0 1 0-1.414l5-5a1 1 0 0 1 1.414 1.414L4.414 15z" fill-rule="evenodd" fill-opacity="100"/>
+ </symbol>
+ <symbol id="wds-icons-unlock-small" viewBox="0 0 18 18">
+ <path d="M10 12.7V14H8v-1.3c-.6-.3-1-1-1-1.7 0-1.1.9-2 2-2s2 .9 2 2c0 .7-.4 1.4-1 1.7M15 6H7V5c0-1.1.9-2 2-2 .6 0 1.225.25 1.625.75.182.244.547.5.875.5a1 1 0 0 0 .761-1.651c.004-.004-.003.003 0 0L12 2.3C11.2 1.5 10.1 1 9 1 6.8 1 5 2.8 5 5v1H3c-.6 0-1 .4-1 1v9c0 .6.4 1 1 1h12c.6 0 1-.4 1-1V7c0-.6-.4-1-1-1" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-unlock" viewBox="0 0 24 24">
+ <path d="M13 17.816V19a1 1 0 0 1-2 0v-1.184A2.996 2.996 0 0 1 9 15c0-1.654 1.346-3 3-3s3 1.346 3 3a2.996 2.996 0 0 1-2 2.816M20 8H8V6c0-2.206 1.794-4 4-4 1.447 0 2.788.793 3.499 2.069a1 1 0 1 0 1.747-.974A6.015 6.015 0 0 0 12 0C8.691 0 6 2.691 6 6v2H4a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1V9a1 1 0 0 0-1-1" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-upload" viewBox="0 0 24 24">
+ <path d="M12 17.999a1 1 0 0 0 1-1V5.413l3.293 3.293a.997.997 0 0 0 1.414 0 .999.999 0 0 0 0-1.414l-5-5a.999.999 0 0 0-1.089-.216.999.999 0 0 0-.325.216l-5 5a.999.999 0 1 0 1.414 1.414L11 5.413v11.586a1 1 0 0 0 1 1zm-7-3a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-5a1 1 0 0 0-2 0v4H6v-4a1 1 0 0 0-1-1z" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-upvote-reply-tiny" viewBox="0 0 12 12">
+ <path d="M10.707 5.292l-4-4a1.001 1.001 0 0 0-1.414 0l-4 4a.999.999 0 1 0 1.414 1.414L5 4.413v5.586a1 1 0 0 0 2 0V4.413l2.293 2.293a.997.997 0 0 0 1.414 0 .999.999 0 0 0 0-1.414" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-upvote-small" viewBox="0 0 18 18">
+ <path d="M12.53 8.78a.748.748 0 0 1-1.06 0L9.75 7.06v6.44a.75.75 0 0 1-1.5 0V7.06L6.53 8.78a.75.75 0 1 1-1.06-1.06l3-3a.75.75 0 0 1 1.06 0l3 3a.75.75 0 0 1 0 1.06M9 0C4.037 0 0 4.037 0 9s4.037 9 9 9 9-4.037 9-9-4.037-9-9-9" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-upvote-tiny" viewBox="0 0 12 12">
+ <path d="M8.354 5.854a.499.499 0 0 1-.707 0L6.5 4.707V9a.5.5 0 0 1-1 0V4.707L4.354 5.854a.5.5 0 1 1-.708-.708l2-2a.5.5 0 0 1 .708 0l2 2a.5.5 0 0 1 0 .708M6 0C2.692 0 0 2.692 0 6c0 3.309 2.692 6 6 6s6-2.691 6-6c0-3.308-2.692-6-6-6" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-upvote" viewBox="0 0 24 24">
+ <path d="M16.707 11.707a.997.997 0 0 1-1.414 0L13 9.414V18a1 1 0 0 1-2 0V9.414l-2.293 2.293a.999.999 0 1 1-1.414-1.414l4-4a.999.999 0 0 1 1.089-.216c.122.051.233.124.325.216l4 4a.999.999 0 0 1 0 1.414M12 0C5.383 0 0 5.383 0 12s5.383 12 12 12 12-5.383 12-12S18.617 0 12 0" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-user" viewBox="0 0 24 24">
+ <path d="M12 14c3.309 0 6-2.691 6-6V6c0-3.309-2.691-6-6-6S6 2.691 6 6v2c0 3.309 2.691 6 6 6zm5 2H7c-3.86 0-7 3.14-7 7a1 1 0 0 0 1 1h22a1 1 0 0 0 1-1c0-3.86-3.14-7-7-7z" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-video-camera" viewBox="0 0 24 24">
+ <path d="M23.6 6.2c-.3-.2-.6-.2-.9-.1L17 8.5V5c0-.6-.4-1-1-1H1c-.6 0-1 .4-1 1v14c0 .6.4 1 1 1h15c.6 0 1-.4 1-1v-3.5l5.6 2.4c.1.1.3.1.4.1.2 0 .4-.1.6-.2.3-.2.4-.5.4-.8V7c0-.3-.2-.6-.4-.8z" fill-rule="evenodd"/>
+ </symbol>
+ <symbol id="wds-icons-vkontakte" viewBox="0 0 24 24">
+ <path d="M8.169 7.816a1.17 1.17 0 0 1 .792-.65 5.11 5.11 0 0 1 1.037-.175 27.89 27.89 0 0 1 1.925-.025c.329.006.662.048.984.117.591.126.88.45.924 1.062.03.439.013.882-.003 1.322-.018.462-.064.924-.089 1.386a13.41 13.41 0 0 0-.024.981c.007.384.044.77.285 1.09.233.31.279.34.621.132.189-.115.348-.294.487-.472.964-1.23 1.699-2.59 2.26-4.052.054-.138.124-.27.179-.407.182-.446.528-.631.983-.633.414-.001.829.022 1.244.024.62.002 1.24-.012 1.861-.004.267.005.538.024.797.082.353.078.477.305.41.666-.094.508-.315.965-.567 1.407-.464.812-1.043 1.54-1.612 2.275a68.25 68.25 0 0 0-1.066 1.42 1.933 1.933 0 0 0-.191.345c-.229.504-.158.905.252 1.32.419.422.855.828 1.276 1.248.62.62 1.19 1.284 1.655 2.031.117.187.205.402.259.615.068.273-.05.5-.278.658-.265.187-.575.248-.884.251-.645.008-1.292-.013-1.937-.02-.326-.004-.653-.011-.976.067-.09.023-.2-.01-.296-.033-.618-.148-1.127-.489-1.587-.916-.454-.422-.833-.91-1.221-1.39-.14-.173-.3-.334-.478-.466a.989.989 0 0 0-.443-.189c-.321-.046-.577.107-.678.423-.083.263-.116.543-.155.82-.036.272-.037.55-.077.824-.075.517-.227.743-.878.859-.536.094-1.072.047-1.607-.001-.74-.069-1.468-.207-2.166-.472-1.063-.401-1.96-1.049-2.739-1.874-.822-.873-1.521-1.845-2.186-2.841-1-1.5-1.835-3.091-2.607-4.719-.217-.458-.452-.91-.565-1.41-.04-.178-.06-.36-.091-.539-.018-.107.016-.19.115-.223.21-.069.421-.17.634-.18.528-.026 1.057-.006 1.586-.01.44-.004.88-.019 1.319-.022.1-.001.2.02.3.034a.732.732 0 0 1 .572.41c.124.25.254.497.363.754a20.133 20.133 0 0 0 1.94 3.517c.16.233.32.47.503.684.1.118.237.217.376.285.23.113.435.048.54-.184a2.32 2.32 0 0 0 .204-.662c.13-.972.145-1.95.053-2.925a4.61 4.61 0 0 0-.126-.662c-.077-.312-.278-.525-.568-.652a38.53 38.53 0 0 1-.494-.222c-.05-.021-.095-.051-.147-.08"/>
+ </symbol>
+ <symbol id="wds-icons-weibo" viewBox="0 0 24 24">
+ <path d="M16.562 11.618c-.273-.081-.46-.137-.318-.493.31-.775.342-1.443.006-1.92-.63-.894-2.353-.845-4.328-.024 0 0-.62.27-.461-.219.303-.97.258-1.783-.215-2.253-1.072-1.065-3.921.04-6.365 2.468-1.83 1.819-2.893 3.746-2.893 5.413 0 3.188 4.115 5.126 8.14 5.126 5.275 0 8.785-3.047 8.785-5.465 0-1.46-1.238-2.29-2.351-2.633m-6.424 6.955c-3.211.315-5.984-1.127-6.192-3.223-.209-2.095 2.226-4.049 5.437-4.364 3.212-.316 5.985 1.127 6.193 3.221.208 2.096-2.226 4.05-5.438 4.366m9.927-12.789a5.155 5.155 0 0 0-4.888-1.572.738.738 0 1 0 .31 1.444c1.234-.26 2.57.12 3.476 1.117a3.611 3.611 0 0 1 .763 3.55.744.744 0 0 0 1.414.455v-.003a5.076 5.076 0 0 0-1.075-4.991"/><path d="M18.109 7.539a2.51 2.51 0 0 0-2.381-.765.635.635 0 1 0 .266 1.242 1.23 1.23 0 0 1 1.165.374c.303.334.385.79.255 1.19a.635.635 0 0 0 .411.8.64.64 0 0 0 .805-.41 2.47 2.47 0 0 0-.521-2.431m-7.649 5.059c-1.53-.395-3.257.362-3.92 1.7-.676 1.365-.023 2.88 1.521 3.375 1.6.513 3.485-.273 4.14-1.746.647-1.44-.16-2.922-1.742-3.329m-1.167 3.486c-.31.492-.976.708-1.477.48-.494-.223-.64-.795-.329-1.275.307-.478.95-.691 1.447-.484.503.213.664.781.359 1.279m1.023-1.306c-.112.191-.36.283-.555.204-.191-.079-.251-.292-.142-.48.112-.186.35-.277.541-.202.194.07.264.286.156.478"/>
+ </symbol>
+ <symbol id="wds-icons-wykop" viewBox="0 0 24 24">
+ <path d="M6.76 20.985a9.543 9.543 0 0 1-2.192-.45c-2.005-.646-2.991-2.095-3.251-3.988a34.21 34.21 0 0 1-.081-8.58c.308-2.687 2.073-4.3 4.983-4.635 3.068-.353 6.147-.287 9.223-.17a19.45 19.45 0 0 1 3.321.41c2.425.52 3.734 2.024 3.981 4.351.26 2.447.35 4.898.157 7.35-.093 1.183-.247 2.37-.935 3.412-.927 1.405-2.37 2.057-4.039 2.22-1.942.19-9.402.211-11.167.08zm7.421-2.064c1.314-.076 2.63-.154 3.933-.313.836-.102 1.547-.53 1.87-1.295.262-.622.516-1.291.548-1.95.093-1.902.101-3.81.08-5.715-.008-.658-.153-1.325-.322-1.967-.314-1.19-1.13-1.917-2.448-2.077-.743-.09-1.491-.189-2.24-.202a175.972 175.972 0 0 0-5.531-.018c-1.19.016-2.381.071-3.565.176-1.546.136-2.424.863-2.808 2.222a5.68 5.68 0 0 0-.126.546c-.345 1.919-.274 3.854-.204 5.784.028.78.155 1.565.317 2.333.23 1.096.928 1.842 2.101 2.132.41.101.833.182 1.253.203 1.656.083 6.422.182 7.142.14zm.995-12.884L12.6 7.227l3.196 6.103-1.269.6-3.248-6.091L8.66 9.048l3.204 6.117-1.269.6L7.34 9.66l-2.563 1.184 3.87 7.369 10.368-4.835-3.838-7.34"/>
+ </symbol>
+ <symbol id="wds-icons-youtube" viewBox="0 0 24 24">
+ <path d="M23.8 7.6s-.2-1.7-1-2.4c-.9-1-1.9-1-2.4-1C17 4 12 4 12 4s-5 0-8.4.2c-.5.1-1.5.1-2.4 1-.7.7-1 2.4-1 2.4S0 9.5 0 11.5v1.8c0 1.9.2 3.9.2 3.9s.2 1.7 1 2.4c.9 1 2.1.9 2.6 1 1.9.2 8.2.2 8.2.2s5 0 8.4-.3c.5-.1 1.5-.1 2.4-1 .7-.7 1-2.4 1-2.4s.2-1.9.2-3.9v-1.8c0-1.9-.2-3.8-.2-3.8zM9.5 15.5V8.8l6.5 3.4-6.5 3.3z"/>
+ </symbol></svg> </div>
+
+ <style>
+ .dropdown-triangle {
+ width: 12px;
+ height: 6px
+ }
+
+ .facebook-icon-default {
+ width: 8px;
+ height: 16px
+ }
+
+ .icon-arrow-careers {
+ width: 22px;
+ height: 12px
+ }
+
+ .icon-arrow-footer {
+ width: 16px;
+ height: 16px
+ }
+
+ .icon-arrow-white {
+ width: 16px;
+ height: 16px
+ }
+
+ .icon-arrow {
+ width: 24px;
+ height: 24px
+ }
+
+ .icon-books {
+ width: 18px;
+ height: 13px
+ }
+
+ .icon-close {
+ width: 24px;
+ height: 24px
+ }
+
+ .icon-comics {
+ width: 20px;
+ height: 20px
+ }
+
+ .icon-create {
+ width: 56px;
+ height: 56px
+ }
+
+ .icon-edit {
+ width: 62px;
+ height: 59px
+ }
+
+ .icon-fan-mark-no-border {
+ width: 40px;
+ height: 40px
+ }
+
+ .icon-fan-mark {
+ width: 59px;
+ height: 59px
+ }
+
+ .icon-fan-profile-avatar {
+ width: 50px;
+ height: 50px
+ }
+
+ .icon-games {
+ width: 20px;
+ height: 13px
+ }
+
+ .icon-lifestyle {
+ width: 22px;
+ height: 21px
+ }
+
+ .icon-menu {
+ width: 24px;
+ height: 24px
+ }
+
+ .icon-movies {
+ width: 15px;
+ height: 17px
+ }
+
+ .icon-music {
+ width: 17px;
+ height: 18px
+ }
+
+ .icon-search {
+ width: 24px;
+ height: 24px
+ }
+
+ .icon-share {
+ width: 55px;
+ height: 62px
+ }
+
+ .icon-top-comm-arrow-down {
+ width: 12px;
+ height: 12px
+ }
+
+ .icon-top-comm-arrow-up {
+ width: 12px;
+ height: 12px
+ }
+
+ .icon-top-comm-circle {
+ width: 12px;
+ height: 12px
+ }
+
+ .icon-tv {
+ width: 18px;
+ height: 17px
+ }
+
+ .instagram-icon-default {
+ width: 24px;
+ height: 24px
+ }
+
+ .linkedin-logo {
+ width: 14px;
+ height: 18px
+ }
+
+ .logo-wikia {
+ width: 110px;
+ height: 30px
+ }
+
+ .menu-control {
+ width: 24px;
+ height: 24px
+ }
+
+ .reddit-icon-default {
+ width: 24px;
+ height: 21px
+ }
+
+ .twitter-icon-default {
+ width: 18px;
+ height: 14px
+ }
+
+ .youtube-icon-default {
+ width: 24px;
+ height: 17px
+ }
+ </style>
+
+ <div class="profile-alert">
+ <div class="grid-container">
+ <a href="#" class="close-alert">
+ <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-close">
+ <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-close"/>
+ </svg>
+ </a>
+
+ <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-fan-profile-avatar">
+ <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-fan-profile-avatar"/>
+ </svg>
+
+ <h3>Introducing Fandom Author Profiles</h3>
+ <p>Bringing you closer to your readers with a customizable profile.</p>
+ <a href="#" class="wds-button button-edit-profile">Edit Your Profile</a>
+ </div>
+ </div>
+ <div class="wds-global-navigation-wrapper">
+ <div class="wds-global-navigation anon loaded headroom headroom--not-bottom headroom--pinned headroom--top" style="top: 0px;">
+ <div class="wds-global-navigation__content-bar">
+
+ <a href="http://fandom.wikia.com" class="wds-global-navigation__logo" data-trackable="" tracking-label="global-navigation.logo" data-is="trackable" riot-tag="trackable"><svg xmlns="http://www.w3.org/2000/svg" class="wds-global-navigation__logo-fandom" alt="Fandom powered by Wikia">
+ <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#wds-company-logo-fandom-powered-by-wikia"/>
+ </svg></a>
+
+ <div class="wds-global-navigation__links-and-search">
+
+ <a href="http://fandom.wikia.com/games" class="wds-global-navigation__link wds-is-games " data-trackable="" tracking-label="global-navigation.link.games" data-is="trackable" riot-tag="trackable">Games</a>
+ <a href="http://fandom.wikia.com/movies" class="wds-global-navigation__link wds-is-movies " data-trackable="" tracking-label="global-navigation.link.movies" data-is="trackable" riot-tag="trackable">Movies</a>
+ <a href="http://fandom.wikia.com/tv" class="wds-global-navigation__link wds-is-tv " data-trackable="" tracking-label="global-navigation.link.tv" data-is="trackable" riot-tag="trackable">TV</a>
+
+ <div class="wds-global-navigation__wikis-menu wds-dropdown">
+ <div class="wds-dropdown__toggle wds-global-navigation__dropdown-toggle" data-trackable="" tracking-label="global-navigation.link.wikis" data-is="trackable" riot-tag="trackable"><span>Wikis</span>
+ <svg xmlns="http://www.w3.org/2000/svg" class="wds-icon wds-icon-tiny wds-dropdown__toggle-chevron" alt="Wikis dropdown">
+ <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#wds-icons-dropdown-tiny"/>
+ </svg></div>
+ <div class="wds-dropdown__content wds-global-navigation__dropdown-content">
+ <ul class="wds-list wds-is-linked">
+
+ <li><a href="http://fandom.wikia.com/explore" class="wds-global-navigation__dropdown-link" data-trackable="" tracking-label="global-navigation.link.explore" data-is="trackable" riot-tag="trackable">Explore Wikis</a></li>
+ <li><a href="http://community.wikia.com/wiki/Community_Central" class="wds-global-navigation__dropdown-link" data-trackable="" tracking-label="global-navigation.link.community-central" data-is="trackable" riot-tag="trackable">Community Central</a></li>
+ <li><a href="http://community.wikia.com/wiki/Fandom_University" class="wds-global-navigation__dropdown-link" data-trackable="" tracking-label="global-navigation.link.fandom-university" data-is="trackable" riot-tag="trackable">Fandom University</a></li>
+
+ </ul>
+ </div>
+ </div>
+
+
+ <form class="wds-global-navigation__search" action="/">
+ <div class="wds-global-navigation__search-input-wrapper">
+ <label class="wds-global-navigation__search-label">
+ <svg xmlns="http://www.w3.org/2000/svg" class="wds-icon wds-icon-small wds-global-navigation__search-label-icon" alt="Search">
+ <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#wds-icons-magnifying-glass"/>
+ </svg>
+ <input class="wds-global-navigation__search-input" name="s" placeholder="Search" placeholder-active="Search Stories and Wikis..." placeholder-inactive="Search" />
+ </label>
+ <button class="wds-button wds-is-text wds-global-navigation__search-close" type="reset">
+ <svg xmlns="http://www.w3.org/2000/svg" class="wds-icon wds-icon-small wds-global-navigation__search-close-icon" alt="Close">
+ <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#wds-icons-cross"/>
+ </svg>
+ </button>
+ <button class="wds-button wds-global-navigation__search-submit" type="submit" disabled="disabled">
+ <svg xmlns="http://www.w3.org/2000/svg" class="wds-icon wds-icon-small wds-global-navigation__search-submit-icon" alt="Search">
+ <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#wds-icons-arrow"/>
+ </svg>
+ </button>
+ </div>
+ </form>
+ </div>
+
+
+ <div class="wds-global-navigation__account-menu wds-dropdown">
+ <div class="wds-dropdown__toggle wds-global-navigation__dropdown-toggle" data-trackable="" tracking-label="global-navigation.account" data-is="trackable" riot-tag="trackable"><svg xmlns="http://www.w3.org/2000/svg" class="wds-icon wds-icon-small wds-icon">
+ <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#wds-icons-user"/>
+ </svg>
+ <span class="wds-global-navigation__account-menu-caption">
+ My Account </span>
+ <svg xmlns="http://www.w3.org/2000/svg" class="wds-icon wds-icon-tiny wds-dropdown__toggle-chevron">
+ <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#wds-icons-dropdown-tiny"/>
+ </svg></div>
+
+ <div class="wds-dropdown__content wds-is-right-aligned wds-global-navigation__dropdown-content">
+ <ul class="wds-list wds-has-lines-between">
+
+
+ <li>
+ <a href="https://www.wikia.com/signin?redirect=http%3A%2F%2Ffandom.wikia.com%2Farticles%2Fstar-wars-original-cuts-might-get-released-40th-anniversary%3Fcb%3D1487930323112" data-param-name="redirect" data-trackable="" tracking-label="global-navigation.account.sign-in" class="wds-button wds-is-full-width " data-is="trackable" riot-tag="trackable">Sign In</a>
+ </li>
+
+ <li>
+ <div class="wds-global-navigation__account-menu-dropdown-caption">
+ Don't have an account? </div>
+ <a href="https://www.wikia.com/register?redirect=http%3A%2F%2Ffandom.wikia.com%2Farticles%2Fstar-wars-original-cuts-might-get-released-40th-anniversary%3Fcb%3D1487930323112" data-param-name="redirect" data-trackable="" tracking-label="global-navigation.account.register" class="wds-button wds-is-full-width wds-is-secondary" data-is="trackable" riot-tag="trackable">Register</a>
+ </li>
+ </ul>
+ </div>
+ </div>
+
+
+ <div class="wds-global-navigation__start-a-wiki" data-trackable="" tracking-label="global-navigation.start-a-wiki" data-is="trackable" riot-tag="trackable">
+ <a href="http://www.wikia.com/Special:CreateNewWiki" class="wds-global-navigation__start-a-wiki-button wds-button wds-is-squished wds-is-secondary">
+ <span class="wds-global-navigation__start-a-wiki-caption">
+ Start a Wiki </span>
+ <svg xmlns="http://www.w3.org/2000/svg" class="wds-global-navigation__start-a-wiki-icon wds-icon" alt="Start a Wiki">
+ <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#wds-icons-plus"/>
+ </svg>
+ </a>
+ </div>
+ </div>
+
+ <div class="nav-flyout">
+ <div class="nav-flyout-top-border "></div>
+ <div class="nav-flyout-content nav-flyout-content-games">
+ <div class="nav-flyout-wrapper">
+ <div class="nav-flyout-heading">
+ Top Stories </div>
+ <div class="nav-flyout-columns">
+ <a href="http://fandom.wikia.com/articles/not-everyone-will-love-for-honor" class="nav-flyout-column ">
+ <div class="nav-flyout-image" style="background-image: url(https://vignette.wikia.nocookie.net/ce87556c-22ef-4827-9002-bc0c9ca947a8/scale-to-width-down/400);">
+ </div>
+ <div class="nav-flyout-description">
+ Not Everyone Will Love 'For Honor', But That's a Good Thing </div>
+ </a>
+ <a href="http://fandom.wikia.com/articles/5-quick-thinking-icons-in-pop-culture" class="nav-flyout-column ">
+ <div class="nav-flyout-image" style="background-image: url(https://vignette.wikia.nocookie.net/fc7164d9-06e8-4f91-9115-1745783792da/scale-to-width-down/400);">
+ </div>
+ <div class="nav-flyout-description">
+ 5 Quick-Thinking Icons in Pop Culture </div>
+ </a>
+ <a href="http://fandom.wikia.com/articles/overwatch-new-character" class="nav-flyout-column ">
+ <div class="nav-flyout-image" style="background-image: url(https://vignette.wikia.nocookie.net/a5f353ae-4bdb-473e-bad4-c56e664ec8b1/scale-to-width-down/400);">
+ </div>
+ <div class="nav-flyout-description">
+ 'Overwatch's' Upcoming Character - Everything We Know </div>
+ </a>
+ <a href="http://fandom.wikia.com/videos/final-fantasy-xiv-offers-new-look-stormblood-dlc" class="nav-flyout-column nav-flyout-last-item">
+ <div class="nav-flyout-image" style="background-image: url(https://vignette.wikia.nocookie.net/15a2234d-ab13-4bd0-ac50-bee1736e0de0/scale-to-width-down/400);">
+ <div class="nav-flyout-play-button-overlay"></div>
+ </div>
+ <div class="nav-flyout-description">
+ 'Final Fantasy XIV' Offers Up New Look at Stormblood DLC </div>
+ </a>
+ </div>
+ </div>
+ </div>
+ <div class="nav-flyout-content nav-flyout-content-movies">
+ <div class="nav-flyout-wrapper">
+ <div class="nav-flyout-heading">
+ Top Stories </div>
+ <div class="nav-flyout-columns">
+ <a href="http://fandom.wikia.com/articles/everything-we-know-about-the-han-solo-movie" class="nav-flyout-column ">
+ <div class="nav-flyout-image" style="background-image: url(https://vignette.wikia.nocookie.net/96f9f44f-abb8-4125-b338-fcec161f6832/scale-to-width-down/400);">
+ </div>
+ <div class="nav-flyout-description">
+ Everything We Know About the Han Solo Movie [UPDATED] </div>
+ </a>
+ <a href="http://fandom.wikia.com/articles/alien-covenant-shows-off-corpses-err-cast" class="nav-flyout-column ">
+ <div class="nav-flyout-image" style="background-image: url(https://vignette.wikia.nocookie.net/b0bfa18a-b74e-4ec9-a7ee-b0871a6dbeaa/scale-to-width-down/400);">
+ </div>
+ <div class="nav-flyout-description">
+ 'Alien: Covenant' Shows Off Its Corpses... Err, Cast </div>
+ </a>
+ <a href="http://fandom.wikia.com/articles/rogue-one-digitalblu-ray-details-extras-released" class="nav-flyout-column ">
+ <div class="nav-flyout-image" style="background-image: url(https://vignette.wikia.nocookie.net/25c63a09-9713-4573-bb91-7667fb4c06f3/scale-to-width-down/400);">
+ </div>
+ <div class="nav-flyout-description">
+ 'Rogue One' Digital/Blu-ray Details and Extras Released </div>
+ </a>
+ <a href="http://fandom.wikia.com/articles/logan-review-solid-step-forward-superhero-movies" class="nav-flyout-column nav-flyout-last-item">
+ <div class="nav-flyout-image" style="background-image: url(https://vignette.wikia.nocookie.net/6fda9a02-b7ed-4001-9364-0d9bd0bf0763/scale-to-width-down/400);">
+ </div>
+ <div class="nav-flyout-description">
+ 'Logan' Review - A Solid Step Forward for Superhero Movies </div>
+ </a>
+ </div>
+ </div>
+ </div>
+ <div class="nav-flyout-content nav-flyout-content-tv">
+ <div class="nav-flyout-wrapper">
+ <div class="nav-flyout-heading">
+ Top Stories </div>
+ <div class="nav-flyout-columns">
+ <a href="http://fandom.wikia.com/articles/arrow-oliver-queen-gun-control" class="nav-flyout-column ">
+ <div class="nav-flyout-image" style="background-image: url(https://vignette.wikia.nocookie.net/76afd7ae-d58c-471f-9ee9-93b8e351cf5e/scale-to-width-down/400);">
+ </div>
+ <div class="nav-flyout-description">
+ How 'Arrow' Handled Gun Control and Why Oliver Queen Is the Mayor We Need </div>
+ </a>
+ <a href="http://fandom.wikia.com/articles/4-essential-ingredients-fan-theory" class="nav-flyout-column ">
+ <div class="nav-flyout-image" style="background-image: url(https://vignette.wikia.nocookie.net/e0700497-86a4-4497-a127-e8cbb2b26a34/scale-to-width-down/400);">
+ </div>
+ <div class="nav-flyout-description">
+ The 4 Essential Ingredients of a Full-Fledged Fan Theory </div>
+ </a>
+ <a href="http://fandom.wikia.com/articles/marvels-iron-fist-watch-danny-rand-use-the-fire-of-the-fist" class="nav-flyout-column ">
+ <div class="nav-flyout-image" style="background-image: url(https://vignette.wikia.nocookie.net/abd1690f-aeef-4ea2-8e8b-5782a34c0622/scale-to-width-down/400);">
+ </div>
+ <div class="nav-flyout-description">
+ Marvel's 'Iron Fist': Watch Danny Rand Use the Fire of the Fist </div>
+ </a>
+ <a href="http://fandom.wikia.com/articles/first-look-m-night-shyamalans-tales-crypt-reboot-dead-wrong" class="nav-flyout-column nav-flyout-last-item">
+ <div class="nav-flyout-image" style="background-image: url(https://vignette.wikia.nocookie.net/b67fc4d4-f0cc-4fe2-8ff9-6cfd78ce1bb8/scale-to-width-down/400);">
+ </div>
+ <div class="nav-flyout-description">
+ First Look at M. Night Shyamalan's 'Tales From the Crypt' Reboot Is Dead Wrong </div>
+ </a>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+
+ <div class="top-nav" data-is="top-nav" riot-tag="top-nav">
+ <div class="top-nav-wrapper grid-container">
+ <div class="hamburger">
+ <svg xmlns="http://www.w3.org/2000/svg" class="icon-menu">
+ <use xlink:href="#icon-menu" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ </svg>
+ </div>
+ <div class="hamburger-close hide">
+ <svg xmlns="http://www.w3.org/2000/svg" class="icon-close">
+ <use xlink:href="#icon-close" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ </svg>
+ </div>
+ <div class="search-icon" data-trackable="" tracking-label="global-navigation.search" data-is="trackable" riot-tag="trackable"><svg xmlns="http://www.w3.org/2000/svg" class="icon-search">
+ <use xlink:href="#icon-search" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ </svg></div>
+ <div class="search-close hide">
+ <svg xmlns="http://www.w3.org/2000/svg" class="icon-close">
+ <use xlink:href="#icon-close" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ </svg>
+ </div>
+
+ <a href="http://fandom.wikia.com" class="wordmark wordmark-desktop" data-trackable="" tracking-label="global-navigation.logo" data-is="trackable" riot-tag="trackable"><img class="logo-fandom-tagline" src="http://fandom.wikia.com/wp-content/themes/upstream/dist/svg/logo-fandom-tagline.svg?v=2" /></a>
+ <a href="http://fandom.wikia.com" class="wordmark wordmark-mobile" data-trackable="" tracking-label="global-navigation.logo" data-is="trackable" riot-tag="trackable"><img class="logo-fandom" src="http://fandom.wikia.com/wp-content/themes/upstream/dist/svg/logo-fandom.svg" /></a>
+
+ <ul class="nav-links sub-nav hide-for-mobile">
+ <li class="user-state-mobile clearfix" data-is="top-nav-user-state" riot-tag="top-nav-user-state">
+ <div class="unauthenticated">
+ <img class="icon-sign-in-gray" src="http://fandom.wikia.com/wp-content/themes/upstream/dist/svg/icon-sign-in-white.svg?v=2" />
+ <a href="http://www.wikia.com/join" data-trackable="" tracking-label="global-navigation.account.sign-in" data-is="trackable" riot-tag="trackable">Sign In</a>
+ <span>|</span>
+ <a href="http://www.wikia.com/join" data-trackable="" tracking-label="global-navigation.account.register" data-is="trackable" riot-tag="trackable">Register</a>
+ </div>
+ <div class="authenticated hide">
+ <a class="profile">
+ <img class="avatar default" src="http://fandom.wikia.com/wp-content/themes/upstream/dist/svg/icon-sign-in-white.svg" /> My Profile </a>
+ <a href="http://www.wikia.com/wiki/Special:UserLogout?returnto=" class="log-out">
+ Log Out </a>
+ </div>
+ </li>
+ <li class="games nav-links-item" data-trackable="" tracking-label="global-navigation.link.games" data-is="trackable" riot-tag="trackable"><a href="http://fandom.wikia.com/games">
+ Games </a></li>
+ <li class="movies nav-links-item" data-trackable="" tracking-label="global-navigation.link.movies" data-is="trackable" riot-tag="trackable"><a href="http://fandom.wikia.com/movies">
+ Movies </a></li>
+ <li class="tv nav-links-item" data-trackable="" tracking-label="global-navigation.link.tv" data-is="trackable" riot-tag="trackable"><a href="http://fandom.wikia.com/tv">
+ TV </a></li>
+ <li class="explore nav-links-item hide-for-mobile" data-trackable="" tracking-label="global-navigation.link.explore" data-is="trackable" riot-tag="trackable"><a href="/explore">
+ Explore Wikis </a>
+ <div class="dropdown">
+ <ul>
+ <li><a href="http://www.wikia.com/WAM">Trending Communities</a></li>
+ <li><a href="http://community.wikia.com/wiki/Community_Central" data-trackable="" tracking-label="global-navigation.link.community-central">
+ Community Central </a></li>
+ </ul>
+ <a class="btn" href="http://www.wikia.com/Special:CreateNewWiki" data-trackable="" tracking-label="global-navigation.start-a-wiki">
+ Start a Wiki </a>
+ </div>
+ </li>
+ <li class="explore-mobile nav-links-item">
+ <a href="/explore">
+ <svg xmlns="http://www.w3.org/2000/svg" class="icon-menu-control">
+ <use xlink:href="#wds-icons-menu-control" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ </svg> Wikis </a>
+ </li>
+ </ul>
+ <div class="mobile-drawer sub-nav hide-for-mobile">
+ <ul>
+ <li class="cta-link back-link">
+ <a href="">
+ <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-arrow-white">
+ <use xlink:href="#wds-icons-arrow" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ </svg> Wikis </a>
+ </li>
+ <li><a class="generic nav-links-item" href="/explore" data-trackable="" tracking-label="global-navigation.link.explore" data-is="trackable" riot-tag="trackable">Explore Wikis</a></li>
+ <li><a class="generic nav-links-item" href="http://community.wikia.com/wiki/Community_Central" data-trackable="" tracking-label="global-navigation.link.community-central" data-is="trackable" riot-tag="trackable">Community Central</a></li>
+ <li><a class="generic nav-links-item" href="http://community.wikia.com/wiki/Wikia_University" data-trackable="" tracking-label="global-navigation.link.fandom-university" data-is="trackable" riot-tag="trackable">Fandom University</a></li>
+ </ul>
+ </div>
+ <div class="search-bar hide-for-mobile">
+ <form role="search" method="get" class="search-form" action="http://fandom.wikia.com">
+ <span class="svg-wrap">
+ <svg xmlns="http://www.w3.org/2000/svg" class="icon-search">
+ <use xlink:href="#icon-search" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ </svg>
+ </span>
+ <input class="search-field" placeholder="Search Stories and Wikis..." value="" name="s" type="search" />
+ </form>
+ <div class="search-line"></div>
+ </div>
+ <div class="user-state hide-for-mobile" data-is="top-nav-user-state" riot-tag="top-nav-user-state">
+ <div class="unauthenticated">
+ <img class="icon-sign-in-gray" src="http://fandom.wikia.com/wp-content/themes/upstream/dist/svg/icon-sign-in-gray.svg" />
+ <a href="http://www.wikia.com/signin" data-trackable="" tracking-label="global-navigation.account.sign-in" data-is="trackable" riot-tag="trackable">Sign In</a>
+ <span>|</span>
+ <a href="http://www.wikia.com/register" data-trackable="" tracking-label="global-navigation.account.register" data-is="trackable" riot-tag="trackable">Register</a>
+ </div>
+ <div class="authenticated hide">
+ <a class="profile">
+ <img class="avatar default" src="http://fandom.wikia.com/wp-content/themes/upstream/dist/svg/icon-sign-in-gray.svg" /> My Profile </a>
+ </div>
+ <div class="dropdown">
+ <a href="http://www.wikia.com/wiki/Special:UserLogout?returnto=" class="log-out">
+ Log Out </a>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="tagline hide-for-large">
+ <img src="http://fandom.wikia.com/wp-content/themes/upstream/dist/svg/tagline-powered-by-wikia.svg?v=2" />
+ </div>
+ <div class="hub-name hide-for-large">
+ <p class="tv-hub">TV</p>
+ <p class="games-hub">Games</p>
+ <p class="movies-hub">Movies</p>
+ </div>
+
+
+ <div id="gpt-top-leaderboard" class="gpt-ad article-top-leaderboard hide" data-page-type="article" data-win-advertisement-text="Advertisement" data-google-query-id="COXo7bK8qNICFReUvQodi-UEWw" style="display: none;">
+ <div id="google_ads_iframe_/5441/wka.fandom/_article/ARTICLE_TOP_LEADERBOARD_0__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/5441/wka.fandom/_article/ARTICLE_TOP_LEADERBOARD_0" title="3rd party ad content" name="google_ads_iframe_/5441/wka.fandom/_article/ARTICLE_TOP_LEADERBOARD_0" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" srcdoc="" width="728" height="90" frameborder="0"></iframe></div>
+ </div>
+
+ <div class="floating-social" style="display: block; top: 50%;">
+ <div class="share-wrapper">
+ <a class="fb-share-btn" data-is="fb-share-button" riot-tag="fb-share-button"><svg xmlns="http://www.w3.org/2000/svg" class="icon facebook-icon-default">
+ <use xlink:href="#facebook-icon-default" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ </svg>
+ <span>Share</span></a>
+ <a class="tweet-btn" text="" data-is="tweet-button" riot-tag="tweet-button" href="https://twitter.com/intent/tweet?text=&amp;url=http%3A%2F%2Ffandom.wikia.com%2Farticles%2Fstar-wars-original-cuts-might-get-released-40th-anniversary&amp;hashtags=fandom&amp;via=getfandom"><svg xmlns="http://www.w3.org/2000/svg" class="icon twitter-icon-default">
+ <use xlink:href="#twitter-icon-default" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ </svg>
+ <span>Tweet</span></a>
+ <a class="reddit-btn" target="_blank" data-is="reddit-button" riot-tag="reddit-button" href="//www.reddit.com/submit?url=http%3A%2F%2Ffandom.wikia.com%2Farticles%2Fstar-wars-original-cuts-might-get-released-40th-anniversary"><svg xmlns="http://www.w3.org/2000/svg" class="icon reddit-icon-default">
+ <use xlink:href="#reddit-icon-default" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ </svg>
+ <span>Share</span></a>
+ </div>
+ </div>
+
+ <!-- .article-wrapper needed for padding around .article-container -->
+ <div class="article-wrapper ">
+ <div class="grid-container">
+ <div class="article-container grid-block">
+ <article id="post-49332" class="grid-content post-49332 post type-post status-publish format-standard has-post-thumbnail hentry category-movies category-star-wars tag-fan-contributor tag-george-lucas tag-john-knoll tag-lucasfilm tag-original-trilogy tag-rogue-one-a-star-wars-story tag-special-editions tag-star-wars tag-star-wars-episode-iv-a-new-hope tag-star-wars-episode-v-the-empire-strikes-back tag-star-wars-episode-vi-return-of-the-jedi tag-star-wars-episode-vii-the-force-awakens region-no-region">
+ <ul class="categories">
+ <li class="cat-movies">
+ <a href="http://fandom.wikia.com/movies" data-is="trackable" riot-tag="trackable">Movies</a>
+ </li>
+ </ul>
+
+
+ <header class="entry-header">
+ <h1 class="entry-title">‘Star Wars’ Original Cuts Might Get Released for 40th Anniversary</h1>
+ </header>
+
+ <div class="entry-meta clearfix">
+ <div class="byline" data-user="" data-user-id="1197885" style="visibility: visible;">
+ <a href="http://fandom.wikia.com/u/CC7567" data-profile-link="" data-is="trackable" riot-tag="trackable"><img class="avatar" data-avatar="" src="http://static.wikia.nocookie.net/6eef5bc5-c8a0-4da1-9ba1-066e6b2cf8e9" />
+ <span class="author vcard">
+ <span class="author-name fn" data-name="">James Akinaka</span>
+ </span>
+ </a>
+ <span class="posted-time">
+ •
+ <time class="entry-date" datetime="2017-02-23T17:18:13+00:00">
+ 8h </time>
+ </span>
+ </div>
+
+ <div class="share-wrapper">
+ <a class="fb-share-btn" data-is="fb-share-button" riot-tag="fb-share-button"><svg xmlns="http://www.w3.org/2000/svg" class="icon facebook-icon-default">
+ <use xlink:href="#facebook-icon-default" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ </svg>
+ <span>Share</span></a>
+ <a class="tweet-btn" text="" data-is="tweet-button" riot-tag="tweet-button" href="https://twitter.com/intent/tweet?text=&amp;url=http%3A%2F%2Ffandom.wikia.com%2Farticles%2Fstar-wars-original-cuts-might-get-released-40th-anniversary&amp;hashtags=fandom&amp;via=getfandom"><svg xmlns="http://www.w3.org/2000/svg" class="icon twitter-icon-default">
+ <use xlink:href="#twitter-icon-default" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ </svg>
+ <span>Tweet</span></a>
+ <a class="reddit-btn" target="_blank" data-is="reddit-button" riot-tag="reddit-button" href="//www.reddit.com/submit?url=http%3A%2F%2Ffandom.wikia.com%2Farticles%2Fstar-wars-original-cuts-might-get-released-40th-anniversary"><svg xmlns="http://www.w3.org/2000/svg" class="icon reddit-icon-default">
+ <use xlink:href="#reddit-icon-default" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ </svg>
+ <span>Share</span></a>
+ </div>
+ </div>
+
+ <div id="gpt-top-boxad-mobile" class="gpt-ad article-top-box-ad-mobile hide" data-page-type="article" data-win-advertisement-text="Advertisement">
+ <script type="text/javascript">
+ window.upstream.ads.adStack.push({
+ id: 'gpt-top-boxad-mobile',
+ pageType: 'article'
+ });
+ </script>
+ </div>
+
+ <div class="entry-content">
+ <p>Although Lucasfilm is already planning a birthday bash for the Star Wars Saga at <a href="http://starwars.wikia.com/wiki/Celebration_Orlando" data-is="trackable" riot-tag="trackable">Celebration Orlando</a> this April, fans might get another present for the saga’s 40th anniversary. According to fan site <a href="http://makingstarwars.net/2017/02/rumor-unaltered-original-star-wars-trilogy-re-released-year/" data-is="trackable" riot-tag="trackable">MakingStarWars.net</a>, rumors abound that Lucasfilm might re-release the unaltered cuts of the saga’s original trilogy.</p>
+ <p>If the rumors are true, this is big news for Star Wars fans. Aside from limited VHS releases, the unaltered cuts of the original trilogy films haven’t been available since they premiered in theaters in the 1970s and ’80s. If Lucasfilm indeed re-releases the films’ original cuts, then this will be the first time in decades that fans can see the films in their original forms. Here’s what makes the unaltered cuts of the original trilogy so special.</p>
+ <h2>The Star Wars Special Editions Caused Controversy
+ <a href="https://vignette.wikia.nocookie.net/e80dae8a-b955-43f6-8ada-f023385e622b" data-is="trackable" riot-tag="trackable"><img class="size-full aligncenter" src="https://vignette.wikia.nocookie.net/e80dae8a-b955-43f6-8ada-f023385e622b/scale-to-width-down/627" alt="star wars han solo" srcset="https://vignette.wikia.nocookie.net/e80dae8a-b955-43f6-8ada-f023385e622b/scale-to-width-down/400 400w, https://vignette.wikia.nocookie.net/e80dae8a-b955-43f6-8ada-f023385e622b/scale-to-width-down/627 627w, https://vignette.wikia.nocookie.net/e80dae8a-b955-43f6-8ada-f023385e622b/scale-to-width-down/800 800w, https://vignette.wikia.nocookie.net/e80dae8a-b955-43f6-8ada-f023385e622b/scale-to-width-down/1200 1200w" sizes="(max-width: 840px) 100vw, (max-width: 1064px) calc(100vw - 300px), 627px" /></a>
+ </h2>
+ <p>Thanks to the commercial success of Star Wars, <a href="http://starwars.wikia.com/wiki/George_Lucas" data-is="trackable" riot-tag="trackable">George Lucas</a> has revisited and further edited his films for re-releases. The most notable — and controversial — release were the <a href="http://starwars.wikia.com/wiki/The_Star_Wars_Trilogy_Special_Edition" data-is="trackable" riot-tag="trackable">Special Editions</a> of the original trilogy. In 1997, to celebrate the saga’s 20th anniversary, Lucasfilm spent a total of $15 million to remaster <a href="http://starwars.wikia.com/wiki/Star_Wars:_Episode_IV_A_New_Hope" data-is="trackable" riot-tag="trackable"><em>A New Hope</em></a>, <a href="http://starwars.wikia.com/wiki/Star_Wars:_Episode_V_The_Empire_Strikes_Back" data-is="trackable" riot-tag="trackable"><em>The Empire Strikes Back</em></a>, and <a href="http://starwars.wikia.com/wiki/Star_Wars:_Episode_VI_Return_of_the_Jedi" data-is="trackable" riot-tag="trackable"><em>Return of the Jedi</em></a>. The Special Editions had stints in theaters before moving to home media.</p>
+ <p>Although most of the Special Editions’ changes were cosmetic, others significantly affected the plot of the films. The most notable example is the “<a href="http://starwars.wikia.com/wiki/Han_shot_first" data-is="trackable" riot-tag="trackable">Han shot first</a>” scene in <em>A New Hope</em>. As a result, the Special Editions generated significant controversy among Star Wars fans. Many fans remain skeptical about George Lucas’s decision to finish each original trilogy film “the way it was meant to be.”</p>
+ <p>
+ <a href="https://vignette.wikia.nocookie.net/375e0e5a-170d-4560-8f20-240c9f0624e9" data-is="trackable" riot-tag="trackable"><img class="size-full aligncenter" src="https://vignette.wikia.nocookie.net/375e0e5a-170d-4560-8f20-240c9f0624e9/scale-to-width-down/627" alt="star wars" srcset="https://vignette.wikia.nocookie.net/375e0e5a-170d-4560-8f20-240c9f0624e9/scale-to-width-down/400 400w, https://vignette.wikia.nocookie.net/375e0e5a-170d-4560-8f20-240c9f0624e9/scale-to-width-down/627 627w, https://vignette.wikia.nocookie.net/375e0e5a-170d-4560-8f20-240c9f0624e9/scale-to-width-down/800 800w, https://vignette.wikia.nocookie.net/375e0e5a-170d-4560-8f20-240c9f0624e9/scale-to-width-down/1200 1200w" sizes="(max-width: 840px) 100vw, (max-width: 1064px) calc(100vw - 300px), 627px" /></a>
+ </p>
+ <p>While the Special Editions represent the most significant edits to the original trilogy, the saga has undergone other changes. Following up on the saga’s first Blu-ray release in 2011, Industrial Light &amp; Magic (ILM) began remastering the entire saga in 3D, starting with the prequel trilogy. <a href="http://starwars.wikia.com/wiki/Star_Wars:_Episode_I_The_Phantom_Menace" data-is="trackable" riot-tag="trackable"><em>The Phantom Menace</em></a> saw a theatrical 3D re-release in 2012, but Disney’s 2012 acquisition of Lucasfilm indefinitely postponed further 3D releases.</p>
+ <p>In 2015, <a href="http://starwars.wikia.com/wiki/Star_Wars:_Episode_II_Attack_of_the_Clones" data-is="trackable" riot-tag="trackable"><em>Attack of the Clones</em></a> and <a href="http://starwars.wikia.com/wiki/Star_Wars:_Episode_III_Revenge_of_the_Sith" data-is="trackable" riot-tag="trackable"><em>Revenge of the Sith</em></a> received limited 3D showings at <a href="http://starwars.wikia.com/wiki/Celebration_Anaheim" data-is="trackable" riot-tag="trackable">Celebration Anaheim</a>. Other than that, it seems as though Disney has decided to refocus Lucasfilm’s efforts to new films. Of course, that’s why the saga has produced new content beginning with <a href="http://starwars.wikia.com/wiki/Star_Wars:_Episode_VII_The_Force_Awakens" data-is="trackable" riot-tag="trackable"><em>The Force Awakens</em></a>. However, it looks like Lucasfilm isn’t likely to generate 3D versions of the original trilogy anytime soon.</p>
+ <h2>Why the Original Film Cuts Matter</h2>
+ <p>
+ <a href="https://vignette.wikia.nocookie.net/1fb5ee36-d9ae-4125-96d9-f52eb403f1c9" data-is="trackable" riot-tag="trackable"><img class="size-full aligncenter" src="https://vignette.wikia.nocookie.net/1fb5ee36-d9ae-4125-96d9-f52eb403f1c9/scale-to-width-down/627" alt="" srcset="https://vignette.wikia.nocookie.net/1fb5ee36-d9ae-4125-96d9-f52eb403f1c9/scale-to-width-down/400 400w, https://vignette.wikia.nocookie.net/1fb5ee36-d9ae-4125-96d9-f52eb403f1c9/scale-to-width-down/627 627w, https://vignette.wikia.nocookie.net/1fb5ee36-d9ae-4125-96d9-f52eb403f1c9/scale-to-width-down/800 800w, https://vignette.wikia.nocookie.net/1fb5ee36-d9ae-4125-96d9-f52eb403f1c9/scale-to-width-down/1200 1200w" sizes="(max-width: 840px) 100vw, (max-width: 1064px) calc(100vw - 300px), 627px" /></a>
+ </p>
+ <p>Admittedly, the differences between the original trilogy’s unaltered cuts and the Special Editions appeal to more hardcore fans. Casual fans are less likely to care about whether <a href="http://starwars.wikia.com/wiki/Greedo" data-is="trackable" riot-tag="trackable">Greedo</a> or <a href="http://starwars.wikia.com/wiki/Han_Solo" data-is="trackable" riot-tag="trackable">Han Solo</a> shot first. Still, given Star Wars’ indelible impact on pop culture, there’s certainly a market for the original trilogy’s unaltered cuts. They might not be for every Star Wars fan, but many of us care about them.</p>
+ <p>ILM supervisor <a href="http://starwars.wikia.com/wiki/John_Knoll" data-is="trackable" riot-tag="trackable">John Knoll</a>, who first pitched the <a href="http://fandom.wikia.com/videos/john-knoll-important-rogue-one" data-is="trackable" riot-tag="trackable">story idea</a> for <a href="http://starwars.wikia.com/wiki/Rogue_One:_A_Star_Wars_Story" data-is="trackable" riot-tag="trackable"><em>Rogue One</em></a>, said <a href="http://lwlies.com/interviews/gareth-edwards-rogue-one-a-star-wars-story/" data-is="trackable" riot-tag="trackable">last year</a> that ILM finished a brand new 4K restoration print of <em>A New Hope</em>. For that reason, it seems likely that Lucasfilm will finally give diehard fans the original film cuts that they’ve clamored for. There’s no word yet whether the unaltered cuts will be released in theaters or on home media. At the very least, however, fans will likely get them after all this time. After all, the Special Editions marked the saga’s 20th anniversary. Star Wars turns 40 years old this year, so there’s no telling what’s in store.</p>
+ <hr />
+ <p class="cta-fandom-contributor">
+ <em>
+ Would you like to be part of the Fandom team? <a href="http://fandom.wikia.com/fan-contributor" data-is="trackable" riot-tag="trackable">Join our Fan Contributor Program</a> and share your voice on <a href="http://fandom.wikia.com" data-is="trackable" riot-tag="trackable">Fandom.com</a>! </em>
+
+ </p>
+
+ </div>
+ <div class="author-bio" data-user="" data-user-id="1197885" style="visibility: visible;">
+ <a href="http://fandom.wikia.com/u/CC7567" data-profile-link="" data-is="trackable" riot-tag="trackable"><img class="avatar" data-avatar="" src="http://static.wikia.nocookie.net/6eef5bc5-c8a0-4da1-9ba1-066e6b2cf8e9" /></a>
+ <a href="http://fandom.wikia.com/u/CC7567" class="author-name" data-profile-link="" data-name="" data-is="trackable" riot-tag="trackable">James Akinaka</a>
+ <p class="about" data-bio="">James Akinaka arrives at Fandom by way of Wookieepedia. He covers Star Wars, superheroes, and animation and values bold, inclusive stories. He suffers from a lifelong case of nitpicking and high standards.</p>
+ <div class="social-media">
+ <a href="#" class="facebook" data-facebook-link="" target="_blank" data-is="trackable" riot-tag="trackable"><svg xmlns="http://www.w3.org/2000/svg" class="icon facebook-icon-default">
+ <use xlink:href="#facebook-icon-default" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ </svg></a>
+ <a href="http://twitter.com/JamesAkinaka" class="twitter" data-twitter-link="" target="_blank" data-is="trackable" riot-tag="trackable" style="display: inline-block;"><svg xmlns="http://www.w3.org/2000/svg" class="icon twitter-icon-default">
+ <use xlink:href="#twitter-icon-default" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ </svg></a>
+ </div>
+ <div class="view-profile">
+ <a href="http://fandom.wikia.com/u/CC7567" data-profile-link="" data-is="trackable" riot-tag="trackable">View Profile <svg xmlns="http://www.w3.org/2000/svg" class="icon menu-control">
+ <use xlink:href="#menu-control" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ </svg></a>
+ </div>
+ </div>
+ </article>
+
+ <div id="gpt-incontent-boxad-mobile" class="gpt-ad incontent-boxad-mobile" data-page-type="article" data-win-advertisement-text="Advertisement">
+ </div>
+ <div class="social-promo grid-content hide-for-large">
+ <div class="social-promo-rail">
+ <div class="logo">
+ <img src="http://fandom.wikia.com/wp-content/themes/upstream/dist/svg/icon-fandom.svg" />
+ </div>
+ <span class="callout">
+ Don't miss a thing.<br />
+ Keep up with Fandom. </span>
+ <div class="buttons">
+ <div class="facebook-button">
+ <div class="fb-like fb_iframe_widget" data-href="https://www.facebook.com/getfandom" data-layout="button" data-action="like" fb-xfbml-state="rendered" fb-iframe-plugin-query="action=like&amp;app_id=112328095453510&amp;container_width=0&amp;href=https%3A%2F%2Fwww.facebook.com%2Fgetfandom&amp;layout=button&amp;locale=en_US&amp;sdk=joey"><span style="vertical-align: bottom; width: 0px; height: 0px;"><iframe name="fc9336c8a1dc8a" allowtransparency="true" allowfullscreen="true" scrolling="no" title="fb:like Facebook Social Plugin" style="border: medium none; visibility: visible; width: 0px; height: 0px;" src="https://www.facebook.com/v2.5/plugins/like.php?action=like&amp;app_id=112328095453510&amp;channel=http%3A%2F%2Fstaticxx.facebook.com%2Fconnect%2Fxd_arbiter%2Fr%2Fao6eUeuGXQq.js%3Fversion%3D42%23cb%3Df1ed61fadc1e24c%26domain%3Dfandom.wikia.com%26origin%3Dhttp%253A%252F%252Ffandom.wikia.com%252Ff20f11e27292492%26relation%3Dparent.parent&amp;container_width=0&amp;href=https%3A%2F%2Fwww.facebook.com%2Fgetfandom&amp;layout=button&amp;locale=en_US&amp;sdk=joey" class="" width="1000px" height="1000px" frameborder="0"></iframe></span></div>
+ </div>
+ <div class="twitter-button">
+ <iframe id="twitter-widget-0" scrolling="no" allowtransparency="true" class="twitter-follow-button twitter-follow-button-rendered" style="position: absolute; visibility: hidden; width: 0px; height: 0px;" title="Twitter Follow Button" src="http://platform.twitter.com/widgets/follow_button.a0ec3119d8db2bc5422f2144c89ad7a9.en.html#dnt=false&amp;id=twitter-widget-0&amp;lang=en&amp;screen_name=getfandom&amp;show_count=false&amp;show_screen_name=false&amp;size=m&amp;time=1487930323873" data-screen-name="getfandom" frameborder="0"></iframe>
+ </div>
+ </div>
+ </div>
+ </div>
+ <aside class="side-rail article-rail hide-for-medium show-for-large visible" style="margin-top: 161.633px;">
+ <div class="side-rail-wrapper">
+
+ <div id="gpt-top-boxad-desktop" class="gpt-ad article-top-box-ad-desktop hide" data-page-type="article" data-win-advertisement-text="Advertisement" data-google-query-id="CObo7bK8qNICFReUvQodi-UEWw" style="display: none;">
+ <div id="google_ads_iframe_/5441/wka.fandom/_article/ARTICLE_TOP_BOXAD_0__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/5441/wka.fandom/_article/ARTICLE_TOP_BOXAD_0" title="3rd party ad content" name="google_ads_iframe_/5441/wka.fandom/_article/ARTICLE_TOP_BOXAD_0" scrolling="no" marginwidth="0" marginheight="0" style="border: 0px none; vertical-align: bottom;" srcdoc="" width="300" height="250" frameborder="0"></iframe></div>
+ </div>
+ <div class="social-promo-rail">
+ <div class="logo">
+ <img src="http://fandom.wikia.com/wp-content/themes/upstream/dist/svg/icon-fandom.svg" />
+ </div>
+ <span class="callout">
+ Don't miss a thing.<br />
+ Keep up with Fandom. </span>
+ <div class="buttons">
+ <div class="facebook-button">
+ <div class="fb-like fb_iframe_widget" data-href="https://www.facebook.com/getfandom" data-layout="button" data-action="like" fb-xfbml-state="rendered" fb-iframe-plugin-query="action=like&amp;app_id=112328095453510&amp;container_width=0&amp;href=https%3A%2F%2Fwww.facebook.com%2Fgetfandom&amp;layout=button&amp;locale=en_US&amp;sdk=joey"><span style="vertical-align: bottom; width: 49px; height: 20px;"><iframe name="fdd11dcd9ec89e" allowtransparency="true" allowfullscreen="true" scrolling="no" title="fb:like Facebook Social Plugin" style="border: medium none; visibility: visible; width: 49px; height: 20px;" src="https://www.facebook.com/v2.5/plugins/like.php?action=like&amp;app_id=112328095453510&amp;channel=http%3A%2F%2Fstaticxx.facebook.com%2Fconnect%2Fxd_arbiter%2Fr%2Fao6eUeuGXQq.js%3Fversion%3D42%23cb%3Df3e84cb3e7ba1b2%26domain%3Dfandom.wikia.com%26origin%3Dhttp%253A%252F%252Ffandom.wikia.com%252Ff20f11e27292492%26relation%3Dparent.parent&amp;container_width=0&amp;href=https%3A%2F%2Fwww.facebook.com%2Fgetfandom&amp;layout=button&amp;locale=en_US&amp;sdk=joey" class="" width="1000px" height="1000px" frameborder="0"></iframe></span></div>
+ </div>
+ <div class="twitter-button">
+ <iframe id="twitter-widget-1" scrolling="no" allowtransparency="true" class="twitter-follow-button twitter-follow-button-rendered" style="position: static; visibility: visible; width: 65px; height: 20px;" title="Twitter Follow Button" src="http://platform.twitter.com/widgets/follow_button.a0ec3119d8db2bc5422f2144c89ad7a9.en.html#dnt=false&amp;id=twitter-widget-1&amp;lang=en&amp;screen_name=getfandom&amp;show_count=false&amp;show_screen_name=false&amp;size=m&amp;time=1487930323880" data-screen-name="getfandom" frameborder="0"></iframe>
+ </div>
+ </div>
+ </div>
+
+ <div class="topic-card " style="background-image: url(https://vignette.wikia.nocookie.net/c2f597b4-03f6-432a-ad9c-8975ef9859fb/thumbnail-down/width/800/height/450)">
+ <div class="topic-card-inner">
+ <div class="categories">
+ <span class="category cat-movies">Movies</span> </div>
+ <h2 class="topic-title">Han Solo</h2>
+ <ul class="topic-feed">
+ <li class="topic-item">
+ <a href="http://fandom.wikia.com/articles/everything-we-know-about-the-han-solo-movie" data-trackable="" tracking-label="topic-card.slot-right-rail.link-0.link" data-is="trackable" riot-tag="trackable">
+ <h4 class="topic-link-title">Everything We Know About the Han Solo Movie</h4>
+ </a>
+ </li>
+ <li class="topic-item">
+ <a href="http://fandom.wikia.com/articles/woody-harrelson-eyed-han-solo-movie-role" data-trackable="" tracking-label="topic-card.slot-right-rail.link-1.link" data-is="trackable" riot-tag="trackable">
+ <h4 class="topic-link-title">Woody Harrelson Will Play Han Solo's Mentor</h4>
+ </a>
+ </li>
+ <li class="topic-item">
+ <a href="http://fandom.wikia.com/articles/emilia-clarke-game-thrones-cast-han-solo-film" data-trackable="" tracking-label="topic-card.slot-right-rail.link-2.link" data-is="trackable" riot-tag="trackable">
+ <h4 class="topic-link-title">'Game of Thrones' Actress Emilia Clark Is the Female Lead</h4>
+ </a>
+ </li>
+ <li class="topic-item">
+ <a href="http://fandom.wikia.com/articles/alden-ehrenreich-hopeful-han-solo" data-trackable="" tracking-label="topic-card.slot-right-rail.link-3.link" data-is="trackable" riot-tag="trackable">
+ <h4 class="topic-link-title">Meet Alden Ehrenreich: The New Han Solo</h4>
+ </a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ <div class="fan-contributor-ad">
+ <span>
+ Are you a pop culture <br />
+ expert in disguise? </span>
+ <hr />
+ <h3>Become a Fandom Contributor!</h3>
+ <a href="http://fandom.wikia.com/fan-contributor" class="learn-more" data-is="trackable" riot-tag="trackable">Learn More</a>
+ </div>
+
+ <div id="gpt-incontent-boxad-desktop" class="gpt-ad incontent-boxad-desktop pinned-top floating" data-page-type="article" data-win-advertisement-text="Advertisement">
+ </div>
+ </div>
+ </aside>
+ </div>
+ </div>
+ </div>
+ <section class="videos-module">
+ <div class="videos-module-inner">
+ <h2>Latest Videos</h2>
+
+ <div class="videos-module-grid">
+ <div class="lead">
+ <div class="video-post clickable-unit" data-trackable="" tracking-label="videos-module.tile-0" data-is="trackable" riot-tag="trackable">
+ <div class="thumbnail" data-src-bg="https://vignette.wikia.nocookie.net/dfcd11c3-0c3e-45dd-ad5d-12ab1868eda5/thumbnail-down/width/400/height/225">
+ <div class="thumbnail-inner"></div>
+ <a href="http://fandom.wikia.com/videos/see-batman-superman-battle-newest-injustice-2-trailer" data-trackable="" tracking-label="videos-module.slot-0.title" class="play-button-overlay clickable-anchor">See Batman and Superman Battle in Newest ‘Injustice 2’ Trailer</a>
+ </div>
+ <h3>See Batman and Superman Battle in Newest ‘Injustice 2’ Trailer</h3>
+ </div>
+ </div>
+ <div class="secondary">
+ <div>
+ <div class="video-post clickable-unit" data-trackable="" tracking-label="videos-module.tile-1" data-is="trackable" riot-tag="trackable">
+ <div class="thumbnail" data-src-bg="https://vignette.wikia.nocookie.net/fdee7f02-b01d-4925-a32b-844c99134a73/thumbnail-down/width/400/height/225">
+ <div class="thumbnail-inner"></div>
+ <a href="http://fandom.wikia.com/videos/ghost-recon-wildlands-open-beta-now-live" data-trackable="" tracking-label="videos-module.slot-1.title" class="play-button-overlay clickable-anchor">‘Ghost Recon: Wildlands’ Open Beta is Now Live</a>
+ </div>
+ <h3>‘Ghost Recon: Wildlands’ Open Beta is Now Live</h3>
+ </div>
+ <div class="video-post clickable-unit" data-trackable="" tracking-label="videos-module.tile-2" data-is="trackable" riot-tag="trackable">
+ <div class="thumbnail" data-src-bg="https://vignette.wikia.nocookie.net/8db45ad8-c5da-4ddc-8006-854c2055ab1f/thumbnail-down/width/400/height/225">
+ <div class="thumbnail-inner"></div>
+ <a href="http://fandom.wikia.com/videos/watch-5-minute-prologue-alien-covenant" data-trackable="" tracking-label="videos-module.slot-2.title" class="play-button-overlay clickable-anchor">Watch the 5-Minute Prologue to ‘Alien: Covenant’</a>
+ </div>
+ <h3>Watch the 5-Minute Prologue to ‘Alien: Covenant’</h3>
+ </div>
+ </div>
+ <div>
+ <div class="video-post clickable-unit" data-trackable="" tracking-label="videos-module.tile-3" data-is="trackable" riot-tag="trackable">
+ <div class="thumbnail" data-src-bg="https://vignette.wikia.nocookie.net/6cf1fccd-62e2-48ef-86e4-6290bd80ed89/thumbnail-down/width/400/height/225">
+ <div class="thumbnail-inner"></div>
+ <a href="http://fandom.wikia.com/videos/free-xbox-games-gold-revealed-march-2017" data-trackable="" tracking-label="videos-module.slot-3.title" class="play-button-overlay clickable-anchor">Free Xbox Games With Gold Revealed For March 2017</a>
+ </div>
+ <h3>Free Xbox Games With Gold Revealed For March 2017</h3>
+ </div>
+ <div class="video-post clickable-unit" data-trackable="" tracking-label="videos-module.tile-4" data-is="trackable" riot-tag="trackable">
+ <div class="thumbnail" data-src-bg="https://vignette.wikia.nocookie.net/9f94dd23-939d-46f0-94a5-743b821429d4/thumbnail-down/width/400/height/225">
+ <div class="thumbnail-inner"></div>
+ <a href="http://fandom.wikia.com/videos/dragon-quest-heroes-ii-release-date-revealed" data-trackable="" tracking-label="videos-module.slot-4.title" class="play-button-overlay clickable-anchor">‘Dragon Quest Heroes II’ Release Date Revealed</a>
+ </div>
+ <h3>‘Dragon Quest Heroes II’ Release Date Revealed</h3>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </section>
+ <section class="recirculation-feed">
+ <div class="grid-container">
+ <header>
+ <h2>Fan Feed</h2>
+ </header>
+ </div>
+
+ <div class="tabbed-feed grid-container">
+
+ <ul class="upstream-tabs tabs-recirc">
+ <li class="tab tab-most-popular" data-default="">
+ <input id="tab-most-popular" name="recirc-tab-group" checked="checked" type="radio" />
+ <label for="tab-most-popular">Trending</label>
+ </li>
+ <li class="tab tab-most-recent">
+ <input id="tab-most-recent" name="recirc-tab-group" type="radio" />
+ <label for="tab-most-recent">Latest</label>
+ </li>
+ <li class="tab tab-more-by-author">
+ <input id="tab-more-by-author" name="recirc-tab-group" type="radio" />
+ <label for="tab-more-by-author" data-after-text="Author">More by <span class="author-name">CC7567</span></label>
+ </li>
+ </ul>
+ <div class="grid-block main-wrap tab-most-popular upstream-tab-content" data-action="trending" style="display: block;">
+ <div class="grid-block wrap posts post-grid">
+ <div class="post grid-content clickable-unit small-12 large-4 post-games" data-trackable="" tracking-label="fan-feed.item-0" data-is="trackable" riot-tag="trackable">
+ <figure>
+ <div>
+ <a class="post-thumbnail" href="http://fandom.wikia.com/articles/spring-2017-games-guide">
+ <img class="attachment-400 size-400 wp-post-image" alt="Fandom's Spring 2017 Games Guide" src="https://vignette.wikia.nocookie.net/e8cd4f01-7b93-4520-96b9-0d0fff411644/thumbnail-down/width/400/height/225" />
+ </a>
+ <span class="category cat-sponsored">Sponsored</span> </div>
+
+ <figcaption>
+ <h3 class="entry-title">
+ <a href="http://fandom.wikia.com/articles/spring-2017-games-guide" class="clickable-anchor" rel="bookmark">
+ Fandom’s Spring 2017 Games Guide </a>
+ </h3>
+ <div class="author-attribution" data-user="" data-user-id="28813958" style="visibility: visible;">
+ <a href="http://fandom.wikia.com/u/Hgilbert" data-profile-link="">
+ <img class="avatar" data-avatar="" src="http://static.wikia.nocookie.net/8a35b75d-730b-45ae-9d87-ba78fde72959" />
+ <span class="author-name" data-name="">Henry Gilbert</span>
+ </a>
+ <span class="posted-time">
+ •
+ <time datetime="2017-02-15T09:00:59+00:00">
+ February 15, 2017 </time>
+ </span>
+ </div>
+ </figcaption>
+ </figure>
+ </div>
+ <div class="post grid-content clickable-unit small-12 large-4 post-tv" data-trackable="" tracking-label="fan-feed.item-1" data-is="trackable" riot-tag="trackable">
+ <figure>
+ <div>
+ <a class="post-thumbnail" href="http://fandom.wikia.com/articles/whats-store-young-justice-season-3">
+ <img class="attachment-400 size-400 wp-post-image" alt="What's in Store for 'Young Justice' Season 3? [Updated]" src="https://vignette.wikia.nocookie.net/2d27def1-0a6b-4471-af7e-0acdcbfe4cdc/thumbnail-down/width/400/height/225" />
+ </a>
+ <span class="category cat-tv">TV</span> </div>
+
+ <figcaption>
+ <h3 class="entry-title">
+ <a href="http://fandom.wikia.com/articles/whats-store-young-justice-season-3" class="clickable-anchor" rel="bookmark">
+ What’s in Store for ‘Young Justice’ Season 3? [Updated] </a>
+ </h3>
+ <div class="author-attribution" data-user="" data-user-id="1197885" style="visibility: visible;">
+ <a href="http://fandom.wikia.com/u/CC7567" data-profile-link="">
+ <img class="avatar" data-avatar="" src="http://static.wikia.nocookie.net/6eef5bc5-c8a0-4da1-9ba1-066e6b2cf8e9" />
+ <span class="author-name" data-name="">James Akinaka</span>
+ </a>
+ <span class="posted-time">
+ •
+ <time datetime="2017-02-16T20:00:20+00:00">
+ February 16, 2017 </time>
+ </span>
+ </div>
+ </figcaption>
+ </figure>
+ </div>
+
+ <div id="gpt-bottom-leaderboard-mobile" class="gpt-ad article-bottom-leaderboard-mobile" data-page-type="article" data-win-advertisement-text="Advertisement">
+ </div>
+ <div class="post grid-content clickable-unit small-12 large-4 post-tv" data-trackable="" tracking-label="fan-feed.item-2" data-is="trackable" riot-tag="trackable">
+ <figure>
+ <div>
+ <a class="post-thumbnail" href="http://fandom.wikia.com/articles/walking-dead-junkyard">
+ <img class="attachment-400 size-400 wp-post-image" alt="Who Are 'The Walking Dead' Junkyard Gang?" src="https://vignette.wikia.nocookie.net/e5d7165e-71ba-47a0-9bd3-e593cf469b9b/thumbnail-down/width/400/height/225" />
+ </a>
+ <span class="category cat-tv">TV</span> </div>
+
+ <figcaption>
+ <h3 class="entry-title">
+ <a href="http://fandom.wikia.com/articles/walking-dead-junkyard" class="clickable-anchor" rel="bookmark">
+ Who Are ‘The Walking Dead’ Junkyard Gang? </a>
+ </h3>
+ <div class="author-attribution" data-user="" data-user-id="5973594" style="visibility: visible;">
+ <a href="http://fandom.wikia.com/u/Brian%20Linder" data-profile-link="">
+ <img class="avatar" data-avatar="" src="http://static.wikia.nocookie.net/ece53f92-e810-4687-992b-021775864ccf" />
+ <span class="author-name" data-name="">Brian Linder</span>
+ </a>
+ <span class="posted-time">
+ •
+ <time datetime="2017-02-15T12:36:02+00:00">
+ February 15, 2017 </time>
+ </span>
+ </div>
+ </figcaption>
+ </figure>
+ </div>
+ <div class="post grid-content clickable-unit small-12 large-4 post-games" data-trackable="" tracking-label="fan-feed.item-3" data-is="trackable" riot-tag="trackable">
+ <figure>
+ <div>
+ <a class="post-thumbnail" href="http://fandom.wikia.com/articles/nintendo-switch-leak-info">
+ <img class="attachment-400 size-400 wp-post-image" alt="What Did We Learn from the Nintendo Switch Leak?" src="https://vignette.wikia.nocookie.net/174df909-103a-471f-b582-99119e64ef80/thumbnail-down/width/400/height/225" />
+ </a>
+ <span class="category cat-games">Games</span> </div>
+
+ <figcaption>
+ <h3 class="entry-title">
+ <a href="http://fandom.wikia.com/articles/nintendo-switch-leak-info" class="clickable-anchor" rel="bookmark">
+ What Did We Learn from the Nintendo Switch Leak? </a>
+ </h3>
+ <div class="author-attribution" data-user="" data-user-id="30661025" style="visibility: visible;">
+ <a href="http://fandom.wikia.com/u/Bobservo" data-profile-link="">
+ <img class="avatar" data-avatar="" src="http://static.wikia.nocookie.net/e3803b59-b3c1-4533-8513-9192f39310b8" />
+ <span class="author-name" data-name="">Bob Mackey</span>
+ </a>
+ <span class="posted-time">
+ •
+ <time datetime="2017-02-17T14:19:40+00:00">
+ February 17, 2017 </time>
+ </span>
+ </div>
+ </figcaption>
+ </figure>
+ </div>
+ <div class="post grid-content clickable-unit small-12 large-4 post-movies" data-trackable="" tracking-label="fan-feed.item-4" data-is="trackable" riot-tag="trackable">
+ <figure>
+ <div>
+ <a class="post-thumbnail" href="http://fandom.wikia.com/articles/a-cure-for-wellness-review-a-wild-crazy-and-unpredictable-ride">
+ <img class="attachment-400 size-400 wp-post-image" alt="'A Cure For Wellness' Review: A Wild, Crazy and Unpredictable Ride" src="https://vignette.wikia.nocookie.net/941e2129-fc45-4fd9-929b-eb133c1efd79/thumbnail-down/width/400/height/225" />
+ </a>
+ <span class="category cat-movies">Movies</span> </div>
+
+ <figcaption>
+ <h3 class="entry-title">
+ <a href="http://fandom.wikia.com/articles/a-cure-for-wellness-review-a-wild-crazy-and-unpredictable-ride" class="clickable-anchor" rel="bookmark">
+ ‘A Cure For Wellness’ Review: A Wild, Crazy and Unpredictable Ride </a>
+ </h3>
+ <div class="author-attribution" data-user="" data-user-id="30748578" style="visibility: visible;">
+ <a href="http://fandom.wikia.com/u/Ktaylor-foster" data-profile-link="">
+ <img class="avatar" data-avatar="" src="http://static.wikia.nocookie.net/39101a69-3beb-49f5-a40c-21820b4cfd6d" />
+ <span class="author-name" data-name="">Kim Taylor-Foster</span>
+ </a>
+ <span class="posted-time">
+ •
+ <time datetime="2017-02-17T08:35:15+00:00">
+ February 17, 2017 </time>
+ </span>
+ </div>
+ </figcaption>
+ </figure>
+ </div>
+ <div class="post grid-content clickable-unit small-12 large-4 post-movies" data-trackable="" tracking-label="fan-feed.item-5" data-is="trackable" riot-tag="trackable">
+ <figure>
+ <div>
+ <a class="post-thumbnail" href="http://fandom.wikia.com/articles/matt-reeves-wont-direct-batman">
+ <img class="attachment-400 size-400 wp-post-image" alt="(UPDATE) It Looks Like Matt Reeves WILL Direct 'The Batman'" src="https://vignette.wikia.nocookie.net/b968ada1-c2f4-4126-af61-286935e668cb/thumbnail-down/width/400/height/225" />
+ </a>
+ <span class="category cat-movies">Movies</span> </div>
+
+ <figcaption>
+ <h3 class="entry-title">
+ <a href="http://fandom.wikia.com/articles/matt-reeves-wont-direct-batman" class="clickable-anchor" rel="bookmark">
+ (UPDATE) It Looks Like Matt Reeves WILL Direct ‘The Batman’ </a>
+ </h3>
+ <div class="author-attribution" data-user="" data-user-id="29436716" style="visibility: visible;">
+ <a href="http://fandom.wikia.com/u/BrandonMarcus" data-profile-link="">
+ <img class="avatar" data-avatar="" src="http://static.wikia.nocookie.net/7d1b855e-a181-4f55-85a4-16045dd2549a" />
+ <span class="author-name" data-name="">Brandon Marcus</span>
+ </a>
+ <span class="posted-time">
+ •
+ <time datetime="2017-02-23T13:25:34+00:00">
+ 12h </time>
+ </span>
+ </div>
+ </figcaption>
+ </figure>
+ </div>
+ <div class="post grid-content clickable-unit small-12 large-4 post-movies" data-trackable="" tracking-label="fan-feed.item-6" data-is="trackable" riot-tag="trackable">
+ <figure>
+ <div>
+ <a class="post-thumbnail" href="http://fandom.wikia.com/articles/what-surprises-does-marvel-have-in-store-for-guardians-of-the-galaxy-vol-2">
+ <img class="attachment-400 size-400 wp-post-image" alt="What Surprises Does Marvel Have in Store For Guardians of the Galaxy Vol. 2?" src="https://vignette.wikia.nocookie.net/b2eea388-4eb3-4532-9352-9a060c09e0b9/thumbnail-down/width/400/height/225" />
+ </a>
+ <span class="category cat-movies">Movies</span> </div>
+
+ <figcaption>
+ <h3 class="entry-title">
+ <a href="http://fandom.wikia.com/articles/what-surprises-does-marvel-have-in-store-for-guardians-of-the-galaxy-vol-2" class="clickable-anchor" rel="bookmark">
+ What Surprises Does Marvel Have in Store For Guardians of the Galaxy Vol. 2? </a>
+ </h3>
+ <div class="author-attribution" data-user="" data-user-id="30748578" style="visibility: visible;">
+ <a href="http://fandom.wikia.com/u/Ktaylor-foster" data-profile-link="">
+ <img class="avatar" data-avatar="" src="http://static.wikia.nocookie.net/39101a69-3beb-49f5-a40c-21820b4cfd6d" />
+ <span class="author-name" data-name="">Kim Taylor-Foster</span>
+ </a>
+ <span class="posted-time">
+ •
+ <time datetime="2017-02-19T00:22:51+00:00">
+ February 19, 2017 </time>
+ </span>
+ </div>
+ </figcaption>
+ </figure>
+ </div>
+ <div class="post grid-content clickable-unit small-12 large-4 post-movies" data-trackable="" tracking-label="fan-feed.item-7" data-is="trackable" riot-tag="trackable">
+ <figure>
+ <div>
+ <a class="post-thumbnail" href="http://fandom.wikia.com/articles/great-wall-review-exciting-empty-spectacle">
+ <img class="attachment-400 size-400 wp-post-image" alt="'The Great Wall' Review - An Exciting but Empty Spectacle" src="https://vignette.wikia.nocookie.net/f0127060-55ef-43db-b0c3-51b0b1676ac9/thumbnail-down/width/400/height/225" />
+ </a>
+ <span class="category cat-movies">Movies</span> </div>
+
+ <figcaption>
+ <h3 class="entry-title">
+ <a href="http://fandom.wikia.com/articles/great-wall-review-exciting-empty-spectacle" class="clickable-anchor" rel="bookmark">
+ ‘The Great Wall’ Review – An Exciting but Empty Spectacle </a>
+ </h3>
+ <div class="author-attribution" data-user="" data-user-id="28779280" style="visibility: visible;">
+ <a href="http://fandom.wikia.com/u/Drew%20Dietsch" data-profile-link="">
+ <img class="avatar" data-avatar="" src="http://static.wikia.nocookie.net/cffee4db-9472-4d40-93d8-c42475e8444d" />
+ <span class="author-name" data-name="">Drew Dietsch</span>
+ </a>
+ <span class="posted-time">
+ •
+ <time datetime="2017-02-16T12:39:25+00:00">
+ February 16, 2017 </time>
+ </span>
+ </div>
+ </figcaption>
+ </figure>
+ </div>
+ <div class="post grid-content clickable-unit small-12 large-4 post-games" data-trackable="" tracking-label="fan-feed.item-8" data-is="trackable" riot-tag="trackable">
+ <figure>
+ <div>
+ <a class="post-thumbnail" href="http://fandom.wikia.com/articles/not-everyone-will-love-for-honor">
+ <img class="attachment-400 size-400 wp-post-image" alt="Not Everyone Will Love 'For Honor', But That's a Good Thing" src="https://vignette.wikia.nocookie.net/ce87556c-22ef-4827-9002-bc0c9ca947a8/thumbnail-down/width/400/height/225" />
+ </a>
+ <span class="category cat-games">Games</span> </div>
+
+ <figcaption>
+ <h3 class="entry-title">
+ <a href="http://fandom.wikia.com/articles/not-everyone-will-love-for-honor" class="clickable-anchor" rel="bookmark">
+ Not Everyone Will Love ‘For Honor’, But That’s a Good Thing </a>
+ </h3>
+ <div class="author-attribution" data-user="" data-user-id="31211592" style="visibility: visible;">
+ <a href="http://fandom.wikia.com/u/ApacheRose3" data-profile-link="">
+ <img class="avatar" data-avatar="" src="http://static.wikia.nocookie.net/38cd0c49-d652-4950-8206-f85b3b804d23" />
+ <span class="author-name" data-name="">Samantha Loveridge</span>
+ </a>
+ <span class="posted-time">
+ •
+ <time datetime="2017-02-20T08:52:46+00:00">
+ 3d </time>
+ </span>
+ </div>
+ </figcaption>
+ </figure>
+ </div>
+ <div class="post grid-content clickable-unit small-12 large-4 post-movies" data-trackable="" tracking-label="fan-feed.item-9" data-is="trackable" riot-tag="trackable">
+ <figure>
+ <div>
+ <a class="post-thumbnail" href="http://fandom.wikia.com/articles/star-wars-last-jedi-title-tell-us">
+ <img class="attachment-400 size-400 wp-post-image" alt="'Star Wars: The Last Jedi' - The Title Has More to Tell Us" src="https://vignette.wikia.nocookie.net/6463530d-2842-47c9-8ecd-58ea25b7f716/thumbnail-down/width/400/height/225" />
+ </a>
+ <span class="category cat-movies">Movies</span> </div>
+
+ <figcaption>
+ <h3 class="entry-title">
+ <a href="http://fandom.wikia.com/articles/star-wars-last-jedi-title-tell-us" class="clickable-anchor" rel="bookmark">
+ ‘Star Wars: The Last Jedi’ – The Title Has More to Tell Us </a>
+ </h3>
+ <div class="author-attribution" data-user="" data-user-id="28779280" style="visibility: visible;">
+ <a href="http://fandom.wikia.com/u/Drew%20Dietsch" data-profile-link="">
+ <img class="avatar" data-avatar="" src="http://static.wikia.nocookie.net/cffee4db-9472-4d40-93d8-c42475e8444d" />
+ <span class="author-name" data-name="">Drew Dietsch</span>
+ </a>
+ <span class="posted-time">
+ •
+ <time datetime="2017-02-17T10:34:23+00:00">
+ February 17, 2017 </time>
+ </span>
+ </div>
+ </figcaption>
+ </figure>
+ </div>
+ <div class="post grid-content clickable-unit small-12 large-4 post-games" data-trackable="" tracking-label="fan-feed.item-10" data-is="trackable" riot-tag="trackable">
+ <figure>
+ <div>
+ <a class="post-thumbnail" href="http://fandom.wikia.com/articles/5-quick-thinking-icons-in-pop-culture">
+ <img class="attachment-400 size-400 wp-post-image" alt="5 Quick-Thinking Icons in Pop Culture" src="https://vignette.wikia.nocookie.net/fc7164d9-06e8-4f91-9115-1745783792da/thumbnail-down/width/400/height/225" />
+ </a>
+ <span class="category cat-games">Games</span> </div>
+
+ <figcaption>
+ <h3 class="entry-title">
+ <a href="http://fandom.wikia.com/articles/5-quick-thinking-icons-in-pop-culture" class="clickable-anchor" rel="bookmark">
+ 5 Quick-Thinking Icons in Pop Culture </a>
+ </h3>
+ <div class="author-attribution" data-user="" data-user-id="30748578" style="visibility: visible;">
+ <a href="http://fandom.wikia.com/u/Ktaylor-foster" data-profile-link="">
+ <img class="avatar" data-avatar="" src="http://static.wikia.nocookie.net/39101a69-3beb-49f5-a40c-21820b4cfd6d" />
+ <span class="author-name" data-name="">Kim Taylor-Foster</span>
+ </a>
+ <span class="posted-time">
+ •
+ <time datetime="2017-02-20T03:50:17+00:00">
+ 3d </time>
+ </span>
+ </div>
+ </figcaption>
+ </figure>
+ </div>
+ <div class="post grid-content clickable-unit small-12 large-4 post-movies" data-trackable="" tracking-label="fan-feed.item-11" data-is="trackable" riot-tag="trackable">
+ <figure>
+ <div>
+ <a class="post-thumbnail" href="http://fandom.wikia.com/articles/everything-we-know-about-the-han-solo-movie">
+ <img class="attachment-400 size-400 wp-post-image" alt="Everything We Know About the Han Solo Movie [UPDATED]" src="https://vignette.wikia.nocookie.net/96f9f44f-abb8-4125-b338-fcec161f6832/thumbnail-down/width/400/height/225" />
+ </a>
+ <span class="category cat-movies">Movies</span> </div>
+
+ <figcaption>
+ <h3 class="entry-title">
+ <a href="http://fandom.wikia.com/articles/everything-we-know-about-the-han-solo-movie" class="clickable-anchor" rel="bookmark">
+ Everything We Know About the Han Solo Movie [UPDATED] </a>
+ </h3>
+ <div class="author-attribution" data-user="" data-user-id="30268677" style="visibility: visible;">
+ <a href="http://fandom.wikia.com/u/Chris%20Tilly" data-profile-link="">
+ <img class="avatar" data-avatar="" src="http://static.wikia.nocookie.net/f3f8b3d4-5f2b-4de2-918d-460fe7349036" />
+ <span class="author-name" data-name="">Chris Tilly</span>
+ </a>
+ <span class="posted-time">
+ •
+ <time datetime="2017-02-21T09:00:13+00:00">
+ 2d </time>
+ </span>
+ </div>
+ </figcaption>
+ </figure>
+ </div>
+ </div>
+ </div>
+
+ <div class="grid-block main-wrap tab-most-recent upstream-tab-content" data-action="chronological">
+ <div class="grid-block wrap posts post-grid"></div>
+ </div>
+
+ <div class="grid-block main-wrap tab-more-by-author upstream-tab-content" data-action="author">
+ <div class="grid-block wrap posts post-grid"></div>
+ </div>
+ </div>
+ </section>
+ <div class="article-bottom-leaderboard-desktop-wrapper">
+
+ <div id="gpt-bottom-leaderboard-desktop" class="gpt-ad article-bottom-leaderboard-desktop" data-page-type="article" data-win-advertisement-text="Advertisement">
+ </div>
+ </div>
+ <script type="text/javascript" src="http://fandom.wikia.com/wp-content/themes/upstream/dist/scripts/main.js?ver=1487884280"></script>
+ <script type="text/javascript" src="http://fandom.wikia.com/wp-includes/js/wp-embed.min.js?ver=4.7.2"></script>
+ <div class="fandom-newsletter-signup clearfix">
+ <div class="grid-container nowrap">
+ <form class="form-fandom-newsletter-signup" method="post" name="Fandom Newsletter Signup" action="/ajax/email_signup" data-is="email-signup-form" riot-tag="email-signup-form">
+ <div class="form-title">
+ Get your fandom straight to your inbox! </div>
+ <div class="input string email">
+ <label class="email-label" for="newsletter-fandom-email">
+ Email Address </label>
+ <input class="email" name="email" placeholder="" id="newsletter-fandom-email" autocomplete="off" type="text" />
+ <span class="error hide">Invalid email address format. Please try again!</span>
+ </div>
+ <input class="submit" value="Submit" type="submit" /></form>
+ <div class="message-success hide">
+ <strong class="message-title">Got it!</strong> Your favorite fandoms are coming to your inbox. </div>
+ </div>
+ </div>
+ <footer class="wds-global-footer wds-is-en">
+ <div class="wds-global-footer__main">
+ <div class="wds-global-footer__header-wrapper">
+ <h2 class="wds-global-footer__header" data-trackable="" tracking-label="global-footer.logo" data-is="trackable" riot-tag="trackable">
+ <a href="http://fandom.wikia.com">
+ <svg xmlns="http://www.w3.org/2000/svg" class="wds-global-footer__header-logo" alt="Fandom powered by Wikia">
+ <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#wds-company-logo-fandom-powered-by-wikia-two-lines"/>
+ </svg>
+ </a>
+ </h2>
+ </div>
+ <div class="wds-global-footer__fandom-sections">
+ <section class="wds-global-footer__fandom-section wds-is-fandom-overview">
+ <ul class="wds-global-footer__links-list">
+ <li class="wds-global-footer__links-list-item">
+ <a href="http://fandom.wikia.com/games" class="wds-global-footer__link wds-is-games" data-trackable="" tracking-label="global-footer.fandom-overview.games" data-is="trackable" riot-tag="trackable">
+ <div>Games</div>
+ <svg xmlns="http://www.w3.org/2000/svg" class="wds-global-footer__image wds-icon">
+ <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#wds-icons-arrow"/>
+ </svg></a>
+ </li>
+ <li class="wds-global-footer__links-list-item">
+ <a href="http://fandom.wikia.com/movies" class="wds-global-footer__link wds-is-movies" data-trackable="" tracking-label="global-footer.fandom-overview.movies" data-is="trackable" riot-tag="trackable">
+ <div>Movies</div>
+ <svg xmlns="http://www.w3.org/2000/svg" class="wds-global-footer__image wds-icon">
+ <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#wds-icons-arrow"/>
+ </svg></a>
+ </li>
+ <li class="wds-global-footer__links-list-item">
+ <a href="http://fandom.wikia.com/tv" class="wds-global-footer__link wds-is-tv" data-trackable="" tracking-label="global-footer.fandom-overview.tv" data-is="trackable" riot-tag="trackable">
+ <div>TV</div>
+ <svg xmlns="http://www.w3.org/2000/svg" class="wds-global-footer__image wds-icon">
+ <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#wds-icons-arrow"/>
+ </svg></a>
+ </li>
+ <li class="wds-global-footer__links-list-item">
+ <a href="http://fandom.wikia.com/explore" class="wds-global-footer__link wds-is-explore-wikis" data-trackable="" tracking-label="global-footer.fandom-overview.explore-wikis" data-is="trackable" riot-tag="trackable">
+ <div>Explore Wikis</div>
+ <svg xmlns="http://www.w3.org/2000/svg" class="wds-global-footer__image wds-icon">
+ <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#wds-icons-arrow"/>
+ </svg></a>
+ </li>
+ </ul>
+ </section>
+ <section class="wds-global-footer__fandom-section wds-is-follow-us">
+ <h3 class="wds-global-footer__section-header">Follow Us</h3>
+ <ul class="wds-global-footer__links-list">
+ <li class="wds-global-footer__links-list-item">
+ <a href="https://www.facebook.com/getfandom" class="wds-global-footer__link" data-trackable="" tracking-label="global-footer.follow-us.facebook" data-is="trackable" riot-tag="trackable"><svg xmlns="http://www.w3.org/2000/svg" class="wds-global-footer__image wds-icon" alt="Facebook">
+ <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#wds-icons-facebook"/>
+ </svg></a>
+ </li>
+ <li class="wds-global-footer__links-list-item">
+ <a href="https://twitter.com/getfandom" class="wds-global-footer__link" data-trackable="" tracking-label="global-footer.follow-us.twitter" data-is="trackable" riot-tag="trackable"><svg xmlns="http://www.w3.org/2000/svg" class="wds-global-footer__image wds-icon" alt="Twitter">
+ <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#wds-icons-twitter"/>
+ </svg></a>
+ </li>
+ <li class="wds-global-footer__links-list-item">
+ <a href="https://www.youtube.com/channel/UC988qTQImTjO7lUdPfYabgQ" class="wds-global-footer__link" data-trackable="" tracking-label="global-footer.follow-us.youtube" data-is="trackable" riot-tag="trackable"><svg xmlns="http://www.w3.org/2000/svg" class="wds-global-footer__image wds-icon" alt="Youtube">
+ <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#wds-icons-youtube"/>
+ </svg></a>
+ </li>
+ <li class="wds-global-footer__links-list-item">
+ <a href="https://www.instagram.com/getfandom/" class="wds-global-footer__link" data-trackable="" tracking-label="global-footer.follow-us.instagram" data-is="trackable" riot-tag="trackable"><svg xmlns="http://www.w3.org/2000/svg" class="wds-global-footer__image wds-icon" alt="Instagram">
+ <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#wds-icons-instagram"/>
+ </svg></a>
+ </li>
+ <li class="wds-global-footer__links-list-item">
+ <a href="https://www.linkedin.com/company/157252" class="wds-global-footer__link" data-trackable="" tracking-label="global-footer.follow-us.linkedin" data-is="trackable" riot-tag="trackable"><svg xmlns="http://www.w3.org/2000/svg" class="wds-global-footer__image wds-icon" alt="global-footer-follow-us-link-linkedin">
+ <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#wds-icons-linkedin"/>
+ </svg></a>
+ </li>
+ </ul>
+ </section>
+ </div>
+ <div class="wds-global-footer__wikia-sections">
+ <section class="wds-global-footer__wikia-section wds-is-company-overview">
+ <h3 class="wds-global-footer__section-header">Overview</h3>
+ <ul class="wds-global-footer__links-list">
+ <li class="wds-global-footer__links-list-item">
+ <a href="http://www.wikia.com/about" class="wds-global-footer__link" data-trackable="" tracking-label="global-footer.company-overview.about" data-is="trackable" riot-tag="trackable">About</a>
+ </li>
+ <li class="wds-global-footer__links-list-item">
+ <a href="https://careers.wikia.com" class="wds-global-footer__link" data-trackable="" tracking-label="global-footer.company-overview.careers" data-is="trackable" riot-tag="trackable">Careers</a>
+ </li>
+ <li class="wds-global-footer__links-list-item">
+ <a href="http://fandom.wikia.com/press" class="wds-global-footer__link" data-trackable="" tracking-label="global-footer.company-overview.press" data-is="trackable" riot-tag="trackable">Press</a>
+ </li>
+ <li class="wds-global-footer__links-list-item">
+ <a href="http://fandom.wikia.com/contact" class="wds-global-footer__link" data-trackable="" tracking-label="global-footer.company-overview.contact" data-is="trackable" riot-tag="trackable">Contact</a>
+ </li>
+ <li class="wds-global-footer__links-list-item">
+ <a href="http://wikia.org" class="wds-global-footer__link" data-trackable="" tracking-label="global-footer.company-overview.wikia-org" data-is="trackable" riot-tag="trackable">Wikia.org</a>
+ </li>
+ </ul>
+ </section>
+ <section class="wds-global-footer__wikia-section wds-is-site-overview">
+ <ul class="wds-global-footer__links-list">
+ <li class="wds-global-footer__links-list-item">
+ <a href="http://www.wikia.com/Terms_of_use" class="wds-global-footer__link" data-trackable="" tracking-label="global-footer.site-overview.terms-of-use" data-is="trackable" riot-tag="trackable">Terms of Use</a>
+ </li>
+ <li class="wds-global-footer__links-list-item">
+ <a href="http://www.wikia.com/Privacy_Policy" class="wds-global-footer__link" data-trackable="" tracking-label="global-footer.site-overview.privacy-policy" data-is="trackable" riot-tag="trackable">Privacy Policy</a>
+ </li>
+ <li class="wds-global-footer__links-list-item">
+ <a href="http://www.wikia.com/Sitemap" class="wds-global-footer__link" data-trackable="" tracking-label="global-footer.site-overview.global-sitemap" data-is="trackable" riot-tag="trackable">Global Sitemap</a>
+ </li>
+ <li class="wds-global-footer__links-list-item">
+ <a href="http://fandom.wikia.com/local-sitemap" class="wds-global-footer__link" data-trackable="" tracking-label="global-footer.site-overview.local-sitemap" data-is="trackable" riot-tag="trackable">Local Sitemap</a>
+ </li>
+ </ul>
+ </section>
+ <section class="wds-global-footer__wikia-section wds-is-community">
+ <h3 class="wds-global-footer__section-header">Community</h3>
+ <ul class="wds-global-footer__links-list">
+ <li class="wds-global-footer__links-list-item">
+ <a href="http://community.wikia.com/wiki/Community_Central" class="wds-global-footer__link" data-trackable="" tracking-label="global-footer.community.community-central" data-is="trackable" riot-tag="trackable">Community Central</a>
+ </li>
+ <li class="wds-global-footer__links-list-item">
+ <a href="http://community.wikia.com/wiki/Special:Contact" class="wds-global-footer__link" data-trackable="" tracking-label="global-footer.community.support" data-is="trackable" riot-tag="trackable">Support</a>
+ </li>
+ <li class="wds-global-footer__links-list-item">
+ <a href="http://fandom.wikia.com/fan-contributor" class="wds-global-footer__link" data-trackable="" tracking-label="global-footer.community.fan-contributor" data-is="trackable" riot-tag="trackable">Fan Contributor Program</a>
+ </li>
+ <li class="wds-global-footer__links-list-item">
+ <a href="http://www.wikia.com/WAM" class="wds-global-footer__link" data-trackable="" tracking-label="global-footer.community.wam" data-is="trackable" riot-tag="trackable">WAM Score</a>
+ </li>
+ <li class="wds-global-footer__links-list-item">
+ <a href="http://community.wikia.com/wiki/Help:Contents" class="wds-global-footer__link" data-trackable="" tracking-label="global-footer.community.help" data-is="trackable" riot-tag="trackable">Help</a>
+ </li>
+ </ul>
+ </section>
+ <section class="wds-global-footer__wikia-section wds-is-create-wiki">
+ <span class="wds-global-footer__section-description">Can't find a community you love? Create your own and start something epic.</span>
+ <ul class="wds-global-footer__links-list">
+ <li class="wds-global-footer__links-list-item">
+ <a href="http://www.wikia.com/Special:CreateNewWiki" class="wds-global-footer__link" data-trackable="" tracking-label="global-footer.start-a-wiki" data-is="trackable" riot-tag="trackable">Start a wiki</a>
+ </li>
+ </ul>
+ </section>
+ <section class="wds-global-footer__wikia-section wds-is-community-apps">
+ <h3 class="wds-global-footer__section-header">Community Apps</h3>
+ <span class="wds-global-footer__section-description">Take your favorite fandoms with you and never miss a beat.</span>
+ <ul class="wds-global-footer__links-list">
+ <li class="wds-global-footer__links-list-item">
+ <a href="https://itunes.apple.com/developer/wikia-inc./id422467077" class="wds-global-footer__link" data-trackable="" tracking-label="global-footer.community-apps.app-store" data-is="trackable" riot-tag="trackable"><svg xmlns="http://www.w3.org/2000/svg" class="wds-global-footer__image">
+ <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#wds-company-store-appstore"/>
+ </svg></a>
+ </li>
+ <li class="wds-global-footer__links-list-item">
+ <a href="https://play.google.com/store/apps/developer?id=Fandom+powered+by+Wikia" class="wds-global-footer__link" data-trackable="" tracking-label="global-footer.community-apps.google-play" data-is="trackable" riot-tag="trackable"><svg xmlns="http://www.w3.org/2000/svg" class="wds-global-footer__image">
+ <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#wds-company-store-googleplay"/>
+ </svg></a>
+ </li>
+ </ul>
+ </section>
+ <section class="wds-global-footer__wikia-section wds-is-advertise">
+ <h3 class="wds-global-footer__section-header">Advertise</h3>
+ <ul class="wds-global-footer__links-list">
+ <li class="wds-global-footer__links-list-item">
+ <a href="http://www.wikia.com/mediakit" class="wds-global-footer__link" data-trackable="" tracking-label="global-footer.advertise.media-kit" data-is="trackable" riot-tag="trackable">Media Kit</a>
+ </li>
+ <li class="wds-global-footer__links-list-item">
+ <a href="http://www.wikia.com/mediakit/contact" class="wds-global-footer__link" data-trackable="" tracking-label="global-footer.advertise.contact" data-is="trackable" riot-tag="trackable">Contact</a>
+ </li>
+ </ul>
+ </section>
+ </div>
+ </div>
+ <div class="wds-global-footer__bottom-bar">
+ <div class="wds-global-footer__bottom-bar-row wds-has-padding">Copyright 2017 Wikia, Inc.</div>
+ </div>
+ </footer>
+ <script>
+ window.twttr = (function(d, s, id) {
+ var js, fjs = d.getElementsByTagName(s)[0],
+ t = window.twttr || {};
+ if (d.getElementById(id)) return t;
+ js = d.createElement(s);
+ js.id = id;
+ js.src = "https://platform.twitter.com/widgets.js";
+ fjs.parentNode.insertBefore(js, fjs);
+
+ t._e = [];
+ t.ready = function(f) {
+ t._e.push(f);
+ };
+
+ return t;
+ }(document, "script", "twitter-wjs"));
+ </script>
+
+ <!-- Load Facebook SDK for JavaScript -->
+ <div id="fb-root" class=" fb_reset">
+ <div style="position: absolute; top: -10000px; height: 0px; width: 0px;">
+ <div><iframe name="fb_xdm_frame_http" allowtransparency="true" allowfullscreen="true" scrolling="no" id="fb_xdm_frame_http" aria-hidden="true" title="Facebook Cross Domain Communication Frame" tabindex="-1" style="border: medium none;" src="http://staticxx.facebook.com/connect/xd_arbiter/r/ao6eUeuGXQq.js?version=42#channel=f20f11e27292492&amp;origin=http%3A%2F%2Ffandom.wikia.com" frameborder="0"></iframe><iframe name="fb_xdm_frame_https" allowtransparency="true" allowfullscreen="true" scrolling="no" id="fb_xdm_frame_https" aria-hidden="true" title="Facebook Cross Domain Communication Frame" tabindex="-1" style="border: medium none;" src="https://staticxx.facebook.com/connect/xd_arbiter/r/ao6eUeuGXQq.js?version=42#channel=f20f11e27292492&amp;origin=http%3A%2F%2Ffandom.wikia.com" frameborder="0"></iframe></div>
+ </div>
+ <div style="position: absolute; top: -10000px; height: 0px; width: 0px;">
+ <div></div>
+ </div>
+ </div>
+ <script>
+ window.fbAsyncInit = function() {
+ FB.init({
+ appId: 112328095453510,
+ xfbml: true,
+ version: 'v2.5'
+ });
+ window.dispatchEvent(new CustomEvent('facebookInit'));
+ };
+
+ (function(d, s, id) {
+ var js, fjs = d.getElementsByTagName(s)[0];
+ if (d.getElementById(id)) {
+ return;
+ }
+ js = d.createElement(s);
+ js.id = id;
+ js.src = "//connect.facebook.net/en_US/sdk.js";
+ fjs.parentNode.insertBefore(js, fjs);
+ }(document, 'script', 'facebook-jssdk'));
+ </script>
+
+
+ <!-- Check to see if environment is production-ish -->
+ <script>
+ window.upstream.initFooterScripts();
+ </script>
+
+
+ <!-- START Parse.ly Include: Standard -->
+ <div id="parsely-root" style="display: none">
+ <span id="parsely-cfg" data-parsely-site="fandom.wikia.com"></span>
+ <script id="parsely-script" async="" src="http://static.parsely.com/p.js"></script>
+ </div>
+ <script>
+ (function(s, p, d) {
+ var h = d.location.protocol,
+ i = p + "-" + s,
+ e = d.getElementById(i),
+ r = d.getElementById(p + "-root"),
+ u = h === "https:" ? "d1z2jf7jlzjs58.cloudfront.net" :
+ "static." + p + ".com";
+ if (e) return;
+ e = d.createElement(s);
+ e.id = i;
+ e.async = true;
+ e.src = h + "//" + u + "/p.js";
+ r.appendChild(e);
+ })("script", "parsely", document);
+ </script>
+ <!-- END Parse.ly Include: Standard -->
+
+ <!-- Begin comScore Tag -->
+ <script type="text/javascript">
+ var _comscore = _comscore || [];
+ _comscore.push({
+ c1: "2",
+ c2: "6177433",
+ options: {
+ url_append: "comscorekw=fandom_entertainment"
+ }
+ });
+
+ (function() {
+ var s = document.createElement("script"),
+ el = document.getElementsByTagName("script")[0];
+ s.async = true;
+ s.src = (document.location.protocol == "https:" ? "https://sb" : "http://b") + ".scorecardresearch.com/beacon.js";
+ el.parentNode.insertBefore(s, el);
+ })();
+ </script>
+ <noscript>
+ &lt;img src="http://b.scorecardresearch.com/p?c1=2&amp;amp;c2=6177433&amp;amp;c3=&amp;amp;c4=&amp;amp;c5=&amp;amp;c6=&amp;amp;c7=http%3A%2F%2Ffandom.wikia.com%2F%2Farticles%2Fstar-wars-original-cuts-might-get-released-40th-anniversary%3Fcomscorekw%3Dfandom_entertainment&amp;amp;c15=&amp;amp;cv=2.0&amp;amp;cj=1"&gt;
+</noscript>
+ <!-- End comScore Tag -->
+
+ <!-- Quantcast Tag -->
+ <script type="text/javascript">
+ var _qevents = _qevents || [];
+
+ (function() {
+ var elem = document.createElement('script');
+ elem.src = (document.location.protocol == "https:" ? "https://secure" : "http://edge") + ".quantserve.com/quant.js";
+ elem.async = true;
+ elem.type = "text/javascript";
+ var scpt = document.getElementsByTagName('script')[0];
+ scpt.parentNode.insertBefore(elem, scpt);
+ })();
+
+ _qevents.push({
+ qacct: "p-8bG6eLqkH6Avk"
+ });
+ </script>
+
+ <noscript>
+ &lt;div style="display:none;"&gt;
+ &lt;img src="//pixel.quantserve.com/pixel/p-8bG6eLqkH6Avk.gif" border="0" height="1" width="1" alt="Quantcast"/&gt;
+ &lt;/div&gt;
+</noscript>
+ <!-- End Quantcast tag -->
+
+
+
+ <div class="kxhead" data-id="KPSUiAKl" style="display:none !important;"><span class="kxtag kxinvisible" data-id="21521"><script>
+(function() {
+ var i = new Image();
+ i.src = '//p.rfihub.com/cm?in=1&amp;pub=6919';
+})();
+
+</script></span><span class="kxtag kxinvisible" data-id="21571"><script>
+(function(){
+ var kuid = Krux('get', 'user');
+ if (kuid) {
+ new Image().src = "//pxl.jivox.com/tags/sync/usync.php?px=eZQcCLxB";
+ }
+})();
+</script></span><span class="kxtag kxinvisible" data-id="22692"><script>
+(function(){
+ new Image().src = location.protocol + '//cs.lkqd.net/cs?partnerId=40&amp;redirect=' + encodeURIComponent('https://beacon.krxd.net/usermatch.gif?partner=lkqd&amp;partner_uid=') + '$$rawlkqduserid$$';
+})();
+</script></span><span class="kxtag kxinvisible" data-id="21429"><script>
+(function() {
+ if (Krux('get', 'user') != null) {
+ new Image().src = 'https://usermatch.krxd.net/um/v2?partner=google';
+ }
+})();
+</script></span><span class="kxtag kxinvisible" data-id="21436"><script>
+/*
+CryptoJS v3.1.2
+code.google.com/p/crypto-js
+(c) 2009-2013 by Jeff Mott. All rights reserved.
+code.google.com/p/crypto-js/wiki/License
+*/
+var CryptoJS=CryptoJS||function(g,l){var e={},d=e.lib={},m=function(){},k=d.Base={extend:function(a){m.prototype=this;var c=new m;a&amp;&amp;c.mixIn(a);c.hasOwnProperty("init")||(c.init=function(){c.$super.init.apply(this,arguments)});c.init.prototype=c;c.$super=this;return c},create:function(){var a=this.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var c in a)a.hasOwnProperty(c)&amp;&amp;(this[c]=a[c]);a.hasOwnProperty("toString")&amp;&amp;(this.toString=a.toString)},clone:function(){return this.init.prototype.extend(this)}},
+p=d.WordArray=k.extend({init:function(a,c){a=this.words=a||[];this.sigBytes=c!=l?c:4*a.length},toString:function(a){return(a||n).stringify(this)},concat:function(a){var c=this.words,q=a.words,f=this.sigBytes;a=a.sigBytes;this.clamp();if(f%4)for(var b=0;b&lt;a;b++)c[f+b&gt;&gt;&gt;2]|=(q[b&gt;&gt;&gt;2]&gt;&gt;&gt;24-8*(b%4)&amp;255)&lt;&lt;24-8*((f+b)%4);else if(65535&lt;q.length)for(b=0;b&lt;a;b+=4)c[f+b&gt;&gt;&gt;2]=q[b&gt;&gt;&gt;2];else c.push.apply(c,q);this.sigBytes+=a;return this},clamp:function(){var a=this.words,c=this.sigBytes;a[c&gt;&gt;&gt;2]&amp;=4294967295&lt;&lt;
+32-8*(c%4);a.length=g.ceil(c/4)},clone:function(){var a=k.clone.call(this);a.words=this.words.slice(0);return a},random:function(a){for(var c=[],b=0;b&lt;a;b+=4)c.push(4294967296*g.random()|0);return new p.init(c,a)}}),b=e.enc={},n=b.Hex={stringify:function(a){var c=a.words;a=a.sigBytes;for(var b=[],f=0;f&lt;a;f++){var d=c[f&gt;&gt;&gt;2]&gt;&gt;&gt;24-8*(f%4)&amp;255;b.push((d&gt;&gt;&gt;4).toString(16));b.push((d&amp;15).toString(16))}return b.join("")},parse:function(a){for(var c=a.length,b=[],f=0;f&lt;c;f+=2)b[f&gt;&gt;&gt;3]|=parseInt(a.substr(f,
+2),16)&lt;&lt;24-4*(f%8);return new p.init(b,c/2)}},j=b.Latin1={stringify:function(a){var c=a.words;a=a.sigBytes;for(var b=[],f=0;f&lt;a;f++)b.push(String.fromCharCode(c[f&gt;&gt;&gt;2]&gt;&gt;&gt;24-8*(f%4)&amp;255));return b.join()},parse:function(a){for(var c=a.length,b=[],f=0;f&lt;c;f++)b[f&gt;&gt;&gt;2]|=(a.charCodeAt(f)&amp;255)&lt;&lt;24-8*(f%4);return new p.init(b,c)}},h=b.Utf8={stringify:function(a){try{return decodeURIComponent(escape(j.stringify(a)))}catch(c){throw Error("Malformed UTF-8 data");}},parse:function(a){return j.parse(unescape(encodeURIComponent(a)))}},
+r=d.BufferedBlockAlgorithm=k.extend({reset:function(){this._data=new p.init;this._nDataBytes=0},_append:function(a){"string"==typeof a&amp;&amp;(a=h.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(a){var c=this._data,b=c.words,f=c.sigBytes,d=this.blockSize,e=f/(4*d),e=a?g.ceil(e):g.max((e|0)-this._minBufferSize,0);a=e*d;f=g.min(4*a,f);if(a){for(var k=0;k&lt;a;k+=d)this._doProcessBlock(b,k);k=b.splice(0,a);c.sigBytes-=f}return new p.init(k,f)},clone:function(){var a=k.clone.call(this);
+a._data=this._data.clone();return a},_minBufferSize:0});d.Hasher=r.extend({cfg:k.extend(),init:function(a){this.cfg=this.cfg.extend(a);this.reset()},reset:function(){r.reset.call(this);this._doReset()},update:function(a){this._append(a);this._process();return this},finalize:function(a){a&amp;&amp;this._append(a);return this._doFinalize()},blockSize:16,_createHelper:function(a){return function(b,d){return(new a.init(d)).finalize(b)}},_createHmacHelper:function(a){return function(b,d){return(new s.HMAC.init(a,
+d)).finalize(b)}}});var s=e.algo={};return e}(Math);
+(function(){var g=CryptoJS,l=g.lib,e=l.WordArray,d=l.Hasher,m=[],l=g.algo.SHA1=d.extend({_doReset:function(){this._hash=new e.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(d,e){for(var b=this._hash.words,n=b[0],j=b[1],h=b[2],g=b[3],l=b[4],a=0;80&gt;a;a++){if(16&gt;a)m[a]=d[e+a]|0;else{var c=m[a-3]^m[a-8]^m[a-14]^m[a-16];m[a]=c&lt;&lt;1|c&gt;&gt;&gt;31}c=(n&lt;&lt;5|n&gt;&gt;&gt;27)+l+m[a];c=20&gt;a?c+((j&amp;h|~j&amp;g)+1518500249):40&gt;a?c+((j^h^g)+1859775393):60&gt;a?c+((j&amp;h|j&amp;g|h&amp;g)-1894007588):c+((j^h^
+g)-899497514);l=g;g=h;h=j&lt;&lt;30|j&gt;&gt;&gt;2;j=n;n=c}b[0]=b[0]+n|0;b[1]=b[1]+j|0;b[2]=b[2]+h|0;b[3]=b[3]+g|0;b[4]=b[4]+l|0},_doFinalize:function(){var d=this._data,e=d.words,b=8*this._nDataBytes,g=8*d.sigBytes;e[g&gt;&gt;&gt;5]|=128&lt;&lt;24-g%32;e[(g+64&gt;&gt;&gt;9&lt;&lt;4)+14]=Math.floor(b/4294967296);e[(g+64&gt;&gt;&gt;9&lt;&lt;4)+15]=b;d.sigBytes=4*e.length;this._process();return this._hash},clone:function(){var e=d.clone.call(this);e._hash=this._hash.clone();return e}});g.SHA1=d._createHelper(l);g.HmacSHA1=d._createHmacHelper(l)})();
+(function(){var g=CryptoJS,l=g.enc.Utf8;g.algo.HMAC=g.lib.Base.extend({init:function(e,d){e=this._hasher=new e.init;"string"==typeof d&amp;&amp;(d=l.parse(d));var g=e.blockSize,k=4*g;d.sigBytes&gt;k&amp;&amp;(d=e.finalize(d));d.clamp();for(var p=this._oKey=d.clone(),b=this._iKey=d.clone(),n=p.words,j=b.words,h=0;h&lt;g;h++)n[h]^=1549556828,j[h]^=909522486;p.sigBytes=b.sigBytes=k;this.reset()},reset:function(){var e=this._hasher;e.reset();e.update(this._iKey)},update:function(e){this._hasher.update(e);return this},finalize:function(e){var d=
+this._hasher;e=d.finalize(e);d.reset();return d.finalize(this._oKey.clone().concat(e))}})})();
+(function() {
+ var injectScript = function(src, cb) {
+ var scriptnode = document.createElement('script');
+ scriptnode.src = src;
+
+ scriptnode.onload = scriptnode.onreadystatechange = function() {
+ var state = scriptnode.readyState;
+ if (!cb.done &amp;&amp; (!state || /loaded|complete/.test(state))) {
+ cb.done = true;
+ cb();
+ }
+ };
+ var sibling = document.getElementsByTagName('script')[0];
+ sibling.parentNode.insertBefore(scriptnode, sibling);
+ };
+
+ var injectImg = function(src) {
+ new Image().src = src;
+ };
+
+ var Krux = window.Krux;
+ if (!!Krux) {
+ var kuid = Krux('get', 'user');
+ if (!!kuid) {
+ var prefix = location.protocol === 'https:' ? "https:" : "http:";
+ var callback_url = encodeURIComponent(prefix + "//beacon.krxd.net/usermatch.gif");
+ var ttl = Math.floor((new Date().getTime())/ 1000) + 15 * 60;
+ var params = 'user_id=' + kuid + '&amp;provider_id=654689&amp;callback=' + callback_url + '&amp;type=redirect&amp;' + 'TTL=' + ttl;
+ var hash = CryptoJS.HmacSHA1(params, '_h_b4yvlZ51p8qTHW99PvozJLq3x0NGWQGk1QGrA2Xk-');
+ // Must break the thread to avoid capturing the postscribe doc.write.
+ setTimeout(function() {
+ var oDocWrite = document.write;
+ document.write = function(img) {
+ var matches = String(img).match(/img [^&gt;]*src=(?:'|")([^'"]+)/i);
+ if (matches) {
+ injectImg(matches[1]);
+ document.write = oDocWrite;
+ }
+ else {
+ return oDocWrite.apply(document, arguments);
+ }
+ };
+ injectScript("//ads.yahoo.com/v0/get-user-id?" + params + "&amp;sigver=0&amp;sig=" + hash.toString(), function() {
+ document.write = oDocWrite;
+ });
+ }, 25);
+ }
+ }
+})();
+</script></span><span class="kxtag kxinvisible" data-id="21462"></span><iframe class="kxtag kxinvisible" data-id="24605" scrolling="no" style="overflow:hidden;" width="0" height="0"></iframe><span class="kxtag kxinvisible" data-id="21435"><script>
+
+(function() {
+
+Krux('scrape', { "page_attr_kruxdartparam_s0": {js_global: "kruxDartParam_s0"}});
+Krux('scrape', { "page_attr_kruxdartparam_s1": {js_global: "kruxDartParam_s1"}});
+Krux('scrape', { "page_attr_kruxdartparam_s2": {js_global: "kruxDartParam_s2"}});
+Krux('scrape', { "page_attr_kruxdartparam_gnre": {js_global: "kruxDartParam_gnre"}});
+Krux('scrape', { "page_attr_kruxdartparam_egnre": {js_global: "kruxDartParam_egnre"}});
+Krux('scrape', { "page_attr_kruxdartparam_pform": {js_global: "kruxDartParam_pform"}});
+Krux('scrape', { "page_attr_kruxdartparam_pub": {js_global: "kruxDartParam_pub"}});
+Krux('scrape', { "page_attr_kruxdartparam_dev": {js_global: "kruxDartParam_dev"}});
+Krux('scrape', { "page_attr_kruxdartparam_sub": {js_global: "kruxDartParam_sub"}});
+Krux('scrape', { "page_attr_kruxdartparam_esrb": {js_global: "kruxDartParam_esrb"}});
+Krux('scrape', { "page_attr_kruxdartparam_media": {js_global: "kruxDartParam_media"}});
+Krux('scrape', { "page_attr_kruxdartparam_de": {js_global: "kruxDartParam_de"}});
+Krux('scrape', { "page_attr_kruxdartparam_wpage": {js_global: "kruxDartParam_wpage"}});
+Krux('scrape', { "page_attr_kruxdartparam_cat": {js_global: "kruxDartParam_cat"}});
+Krux('scrape', { "page_attr_kruxdartparam_sex": {js_global: "kruxDartParam_sex"}});
+Krux('scrape', { "page_attr_kruxdartparam_age": {js_global: "kruxDartParam_age"}});
+Krux('scrape', { "page_attr_kruxdartparam_eth": {js_global: "kruxDartParam_eth"}});
+Krux('scrape', { "page_attr_kruxdartparam_hhi": {js_global: "kruxDartParam_hhi"}});
+
+Krux('scrape', { "page_attr_kruxdartparam_tv": {js_global: "kruxDartParam_tv"}});
+Krux('scrape', { "page_attr_kruxdartparam_theme": {js_global: "kruxDartParam_theme"}});
+
+
+Krux('scrape', { "page_attr_domain": {url_domain: 2} });
+
+})();
+
+</script></span><span class="kxtag kxinvisible" data-id="21530"><script>
+(function()
+{ var i = new Image(); i.src = '//match.adsrvr.org/track/cmf/generic?ttd_pid=krux&amp;ttd_tpi=1'; }
+)();
+</script></span><span class="kxtag kxinvisible" data-id="21531"><script>
+(function(){
+ var kuid = Krux('get', 'user');
+ if (kuid) {
+ (new Image()).src='//d.turn.com/r/dd/id/L2NzaWQvMS9jaWQvMjg0OTE3NDgvdC8y/dpuid/' + kuid;
+ }
+})();
+</script></span><span class="kxtag kxinvisible" data-id="21533"><script>
+(function(){
+ var kuid = Krux('get', 'user');
+ if (kuid) {
+ var liveramp_url = 'https://idsync.rlcdn.com/379708.gif?partner_uid=' + kuid;
+ var i = new Image();
+ i.src = liveramp_url;
+ }
+})();
+</script></span><span class="kxtag kxinvisible" data-id="21539"><script>
+(function(){
+ var kuid = Krux('get', 'user');
+ if (kuid) {
+ var prefix = 'https:';
+ var rurl = prefix + '//cms.analytics.yahoo.com/cms?partner_id=KRUX';
+ var i = new Image();
+ i.src = rurl;
+ }
+})();
+</script></span><span class="kxtag kxinvisible" data-id="21544"><script>
+ (function() {
+ var kuid = Krux('get', 'user');
+ if (kuid) {
+ var prefix = location.protocol == 'https:' ? "https:" : "http:";
+ var kurl_params = encodeURIComponent("_kuid=" + kuid + "&amp;_kdpid=d7158cb7-a851-4e3c-b7ab-cc9e815b2399&amp;dlxid=&lt;na_id&gt;&amp;dlxdata=&lt;na_da&gt;");
+ var kurl = prefix + "//beacon.krxd.net/data.gif?" + kurl_params;
+ var dlx_url = '//r.nexac.com/e/getdata.xgi?dt=br&amp;pkey=gwjn34gwjnh86&amp;ru=' + kurl;
+ var i = new Image();
+ i.src = dlx_url;
+ }
+ })();
+</script></span><span class="kxtag kxinvisible" data-id="21545"><script>
+(function(){
+ var kuid = Krux('get', 'user');
+ if (kuid) {
+ var prefix = location.protocol == 'https:' ? "https:" : "http:";
+ var kurl = prefix + '//beacon.krxd.net/usermatch.gif?adnxs_uid=$UID';
+ var appnexus_url = '//ib.adnxs.com/getuid?' + kurl
+ var i = new Image();
+ i.src = appnexus_url;
+ }
+})();
+</script></span><span class="kxtag kxinvisible" data-id="21548"><script>
+(function(){
+ var kuid = Krux('get', 'user');
+ var prefix = window.location.protocol == 'https:' ? 'https:' : 'http:';
+ if (kuid) {
+ var url = '//servedby.flashtalking.com/map/?key=ad919e4f211cr5452615&amp;url='
+ + prefix
+ + '//beacon.krxd.net/usermatch.gif?partner=flashtalking&amp;partner_uid=[%FT_GUID%]';
+ (new Image()).src = url;
+ }
+})();
+</script></span><span class="kxtag kxinvisible" data-id="21551"><script type="text/javascript">
+(function() {
+ (new Image()).src = '//aa.agkn.com/adscores/g.js?sid=9212244187&amp;_kdpid=2111c0af-fc3a-446f-ab07-63aa74fbde8e';
+})();
+</script></span><span class="kxtag kxinvisible" data-id="21552"><script>
+(function(){
+ var kuid = Krux('get', 'user');
+ var prefix = window.location.protocol == 'https:' ? 'https:' : 'http:';
+ if (kuid) {
+ var url = prefix + '//pix.btrll.com/partner/868092.png';
+ (new Image()).src = url;
+ }
+})();
+</script></span><span class="kxtag kxinvisible" data-id="21553"><script type="text/javascript">
+(function() {
+ (new Image()).src = '//sync.tidaltv.com/genericusersync.ashx?dpid=395';
+})();
+</script></span><span class="kxtag kxinvisible" data-id="22580"><script>
+(function(){
+ var prefix = window.location.protocol == 'https:' ? "https:" : "http:";
+ var i_url = prefix + '//ag.innovid.com/dv/sync?tid=2';
+ var i = new Image();
+ i.src = i_url;
+})();
+</script></span><span class="kxtag kxinvisible" data-id="21557"><img src="http://beacon.krxd.net/event.gif?event_id=KPRU8DbB&amp;event_type=dmtc" width="0" height="0" />
+
+<!-- BEGIN Segment: Fandom -->
+ <img src="http://segs.btrll.com/v1/tpix/-/-/-/-/-/sid.6614149" width="1" height="1" />
+<!-- END Segment: Fandom --></span><span class="kxtag kxinvisible" data-id="21577"><script>
+ (function() {
+ var kuid = Krux('get', 'user');
+ if (kuid) {
+ var prefix = location.protocol == 'https:' ? "https:" : "http:";
+ var kurl_params = encodeURIComponent("_kuid=" + kuid + "&amp;_kdpid=8da8b14d-5569-4bec-bcea-722864ee8d06&amp;dlxid=&lt;na_id&gt;&amp;dlxdata=&lt;na_da&gt;");
+ var kurl = prefix + "//beacon.krxd.net/data.gif?" + kurl_params;
+ var dlx_url = '//r.nexac.com/e/getdata.xgi?dt=br&amp;pkey=iefs40iefsj26&amp;ru=' + kurl;
+ var i = new Image();
+ i.src = dlx_url;
+ }
+ })();
+</script></span><span class="kxtag kxinvisible" data-id="21578"><script>
+ (function() {
+ var kuid = Krux('get', 'user');
+ if (kuid) {
+ var prefix = location.protocol == 'https:' ? "https:" : "http:";
+ var kurl_params = encodeURIComponent("_kuid=" + kuid + "&amp;_kdpid=bef9f122-393d-4c45-8d8d-32d8be7ac433&amp;dlxid=&lt;na_id&gt;&amp;dlxdata=&lt;na_da&gt;");
+ var kurl = prefix + "//beacon.krxd.net/data.gif?" + kurl_params;
+ var dlx_url = '//r.nexac.com/e/getdata.xgi?dt=br&amp;pkey=iyzu39iyzud95&amp;ru=' + kurl;
+ var i = new Image();
+ i.src = dlx_url;
+ }
+ })();
+</script></span><span class="kxtag kxinvisible" data-id="21579"><script>
+ (function() {
+ var allowUserMatch = function() {
+ var GDN_SITE_ID = '1282650';
+
+ if (Krux('get', 'config').params.client_type === 'marketer') {
+ try {
+ var params = Krux('require:marketer').getParams(
+ Krux('require:sizzle').find('script[src*="' + Krux('get', 'confid') + '"]')
+ );
+ return GDN_SITE_ID !== (params.siteid || params.kxsiteid);
+ }
+ catch (e) {
+ // In case we don't find the script tag or the URL parser fails, just allow matching.
+ }
+ }
+ return true;
+ };
+
+ var kuid = Krux('get', 'user');
+ if (allowUserMatch() &amp;&amp; kuid) {
+ var prefix = location.protocol == 'https:' ? "https:" : "http:";
+ var kurl_params = encodeURIComponent("_kuid=" + kuid + "&amp;_kdpid=8bf57916-aac8-4f01-a386-4baf103b3e1f&amp;dlxid=&lt;na_id&gt;&amp;dlxdata=&lt;na_da&gt;");
+ var kurl = prefix + "//beacon.krxd.net/data.gif?" + kurl_params;
+ var dlx_url = '//r.nexac.com/e/getdata.xgi?dt=br&amp;pkey=bckw15bckwu20&amp;ru=' + kurl;
+ var i = new Image();
+ i.src = dlx_url;
+ }
+ })();
+</script></span><span class="kxtag kxinvisible" data-id="21580"><script>
+ (function() {
+ var allowUserMatch = function() {
+ var GDN_SITE_ID = '1282650';
+
+ if (Krux('get', 'config').params.client_type === 'marketer') {
+ try {
+ var params = Krux('require:marketer').getParams(
+ Krux('require:sizzle').find('script[src*="' + Krux('get', 'confid') + '"]')
+ );
+ return GDN_SITE_ID !== (params.siteid || params.kxsiteid);
+ }
+ catch (e) {
+ // In case we don't find the script tag or the URL parser fails, just allow matching.
+ }
+ }
+ return true;
+ };
+
+ var kuid = Krux('get', 'user');
+ if (allowUserMatch() &amp;&amp; kuid) {
+ var prefix = location.protocol == 'https:' ? "https:" : "http:";
+ var kurl_params = encodeURIComponent("_kuid=" + kuid + "&amp;_kdpid=d7158cb7-a851-4e3c-b7ab-cc9e815b2399&amp;dlxid=&lt;na_id&gt;&amp;dlxdata=&lt;na_da&gt;");
+ var kurl = prefix + "//beacon.krxd.net/data.gif?" + kurl_params;
+ var dlx_url = '//r.nexac.com/e/getdata.xgi?dt=br&amp;pkey=gwjn34gwjnh86&amp;ru=' + kurl;
+ var i = new Image();
+ i.src = dlx_url;
+ }
+ })();
+</script></span><span class="kxtag kxinvisible" data-id="21581"><script>
+ (function() {
+ var kuid = Krux('get', 'user');
+ if (kuid) {
+ var prefix = location.protocol == 'https:' ? "https:" : "http:";
+ var kurl_params = encodeURIComponent("_kuid=" + kuid + "&amp;_kdpid=536f0daa-aaaa-4d9e-9a25-dde40646786a&amp;dlxid=&lt;na_id&gt;&amp;dlxdata=&lt;na_da&gt;");
+ var kurl = prefix + "//beacon.krxd.net/data.gif?" + kurl_params;
+ var dlx_url = '//r.nexac.com/e/getdata.xgi?dt=br&amp;pkey=iefs40iefsj26&amp;ru=' + kurl;
+ var i = new Image();
+ i.src = dlx_url;
+ }
+ })();
+</script></span><span class="kxtag kxinvisible" data-id="21582"><script>
+ (function() {
+ var kuid = Krux('get', 'user');
+ if (kuid) {
+ var prefix = location.protocol == 'https:' ? "https:" : "http:";
+ var kurl_params = encodeURIComponent("_kuid=" + kuid + "&amp;_kdpid=7c6392c9-e878-492c-8b14-bf06e3828ebd&amp;dlxid=&lt;na_id&gt;&amp;dlxdata=&lt;na_da&gt;");
+ var kurl = prefix + "//beacon.krxd.net/data.gif?" + kurl_params;
+ var dlx_url = '//r.nexac.com/e/getdata.xgi?dt=br&amp;pkey=rowp70rowpu60&amp;ru=' + kurl;
+ var i = new Image();
+ i.src = dlx_url;
+ }
+ })();
+</script></span><span class="kxtag kxinvisible" data-id="21583"><script>
+ (function() {
+ var allowUserMatch = function() {
+ var GDN_SITE_ID = '1282650';
+
+ if (Krux('get', 'config').params.client_type === 'marketer') {
+ try {
+ var params = Krux('require:marketer').getParams(
+ Krux('require:sizzle').find('script[src*="' + Krux('get', 'confid') + '"]')
+ );
+ return GDN_SITE_ID !== (params.siteid || params.kxsiteid);
+ }
+ catch (e) {
+ // In case we don't find the script tag or the URL parser fails, just allow matching.
+ }
+ }
+ return true;
+ };
+
+ var kuid = Krux('get', 'user');
+ if (allowUserMatch() &amp;&amp; kuid) {
+ var prefix = location.protocol == 'https:' ? "https:" : "http:";
+ var kurl_params = encodeURIComponent("_kuid=" + kuid + "&amp;_kdpid=bb8ae0e2-9cd7-45b2-ad37-7737269627d8&amp;dlxid=&lt;na_id&gt;&amp;dlxdata=&lt;na_da&gt;");
+ var kurl = prefix + "//beacon.krxd.net/data.gif?" + kurl_params;
+ var dlx_url = '//r.nexac.com/e/getdata.xgi?dt=br&amp;pkey=rsxs71rsxsk73&amp;ru=' + kurl;
+ var i = new Image();
+ i.src = dlx_url;
+ }
+ })();
+</script></span><span class="kxtag kxinvisible" data-id="21586"><script>
+ (function() {
+ var allowUserMatch = function() {
+ var GDN_SITE_ID = '1282650';
+
+ if (Krux('get', 'config').params.client_type === 'marketer') {
+ try {
+ var params = Krux('require:marketer').getParams(
+ Krux('require:sizzle').find('script[src*="' + Krux('get', 'confid') + '"]')
+ );
+ return GDN_SITE_ID !== (params.siteid || params.kxsiteid);
+ }
+ catch (e) {
+ // In case we don't find the script tag or the URL parser fails, just allow matching.
+ }
+ }
+ return true;
+ };
+
+ var kuid = Krux('get', 'user');
+ if (allowUserMatch() &amp;&amp; kuid) {
+ var prefix = location.protocol == 'https:' ? "https:" : "http:";
+ var kurl_params = encodeURIComponent("_kuid=" + kuid + "&amp;_kdpid=afae52b8-1e27-4650-bd6a-ed7d982f5a6a&amp;dlxid=&lt;na_id&gt;&amp;dlxdata=&lt;na_da&gt;");
+ var kurl = prefix + "//beacon.krxd.net/data.gif?" + kurl_params;
+ var dlx_url = '//r.nexac.com/e/getdata.xgi?dt=br&amp;pkey=iqbg41iqbgj68&amp;ru=' + kurl;
+ new Image().src = dlx_url;
+
+ }
+ })();
+</script></span><span class="kxtag kxinvisible" data-id="21342"><script>new Image().src = 'https://usermatch.krxd.net/um/v2?partner=vdna';</script></span><span class="kxtag kxinvisible" data-id="21344"><script>
+ (function(){
+ var _ = Krux('require:underscore');
+ var parseZone = function(dartZone){
+ var out = {};
+ var split = dartZone.split("/");
+ for (var i = 0; i &lt; split.length; i++){
+ switch(i){
+ case 0: out.site = split[i]; break;
+ case 1: out.section = split[i]; break;
+ case 2: out.subSection = split[i]; break;
+ default: out["subSection"+(i-1)] = split[i]; break;
+ }
+ }
+ return out;
+ };
+
+ var parseKeyValues = function(str, amp, eq){
+ amp = amp || '&amp;';
+ eq = eq || '=';
+ var ret = {};
+ var rgx = new RegExp(amp+'*([^'+eq+amp+']+)'+eq+'([^'+eq+amp+']+)'+amp+'*', 'g');
+ ("" + str).replace(rgx, function ($0, key, value) {
+ ret[key] =
+ !ret[key] ? value :
+ _.isArray(ret[key]) ? ret[key].concat([value]) : [ret[key], value];
+ });
+ for(key in ret){
+ if(_.isArray(ret[key])){
+ ret[key] = ret[key].toString();
+ }
+ }
+ return ret;
+ };
+
+ Krux.wgDartCustomKeyValues = parseKeyValues(window.wgDartCustomKeyValues || '', ';');
+ Krux.wgContentLanguage = window.wgContentLanguage || '';
+ Krux.wgPageName = window.wgPageName || '';
+ Krux.wgCategories = window.wgCategories &amp;&amp; window.wgCategories.toString() || '';
+
+ var scripts = document.getElementsByTagName('script');
+ var sAttrs = {};
+ for(var i = 0; i &lt; scripts.length; i++){
+ var srcUrl = scripts[i].getAttribute('src');
+ if(srcUrl &amp;&amp; srcUrl.indexOf('http://ad.doubleclick.net') === 0){
+ var dfpSrcUrl = srcUrl;
+ var zones = parseZone(dfpSrcUrl);
+ sAttrs = parseKeyValues(zones.subSection5, ';');
+ break;
+ }
+ }
+ Krux.s0 = sAttrs.s0;
+ Krux.s1 = sAttrs.s1;
+ Krux.s2 = sAttrs.s2;
+
+ var metaTags = document.getElementsByTagName('meta');
+ var keyValsStr = '';
+ for(var i = 0; i &lt; metaTags.length; i++){
+ var nameAttr = metaTags[i].getAttribute('name');
+ if(nameAttr === 'keywords'){
+ keyValsStr = metaTags[i].getAttribute('content') || '';
+ break;
+ }
+ }
+ Krux.keyVals = keyValsStr;
+ })();
+ Krux('scrape', {
+ page_attr_egenre: {
+ javascript: "Krux.wgDartCustomKeyValues.egnre"
+ },
+ page_attr_genre: {
+ javascript: "Krux.wgDartCustomKeyValues.gnre"
+ },
+ page_attr_platform: {
+ javascript: "Krux.wgDartCustomKeyValues.pform"
+ },
+ page_attr_publisher: {
+ javascript: "Krux.wgDartCustomKeyValues.pub"
+ },
+ page_attr_developer: {
+ javascript: "Krux.wgDartCustomKeyValues.dev"
+ },
+ page_attr_subject: {
+ javascript: "Krux.wgDartCustomKeyValues.sub"
+ },
+ page_attr_esrb: {
+ javascript: "Krux.wgDartCustomKeyValues.esrb"
+ },
+ page_attr_media: {
+ javascript: "Krux.wgDartCustomKeyValues.media"
+ },
+ page_attr_lang: {
+ javascript: "Krux.wgContentLanguage"
+ },
+ page_attr_wpage: {
+ javascript: "Krux.wgPageName"
+ },
+ page_attr_cat: {
+ javascript: "Krux.wgCategories"
+ },
+ page_attr_s0: {
+ javascript: "Krux.s0"
+ },
+ page_attr_s1: {
+ javascript: "Krux.s1"
+ },
+ page_attr_s2: {
+ javascript: "Krux.s2"
+ },
+ page_attr_keywords: {
+ javascript: "Krux.keyVals"
+ },
+ page_attr_sex: {
+ javascript: "Krux.wgDartCustomKeyValues.sex"
+ },
+ page_attr_age: {
+ javascript: "Krux.wgDartCustomKeyValues.age"
+ },
+ page_attr_eth: {
+ javascript: "Krux.wgDartCustomKeyValues.eth"
+ },
+ page_attr_hhi: {
+ javascript: "Krux.wgDartCustomKeyValues.hhi"
+ },
+ page_attr_onSiteSearch: {
+ url_param: "search"
+ }
+ });
+
+// Using Dart s0 to produce page attribute dart_s0
+Krux('scrape', { "page_attr_dart_s0": {dart: "s0"}});
+// Using Dart s1 to produce page attribute dart_s1
+Krux('scrape', { "page_attr_dart_s1": {dart: "s1"}});
+// Using Dart s2 to produce page attribute dart_s2
+Krux('scrape', { "page_attr_dart_s2": {dart: "s2"}});
+</script></span><span class="kxtag kxinvisible" data-id="21348"><script>
+// this tag is intentionally blank
+</script></span><span class="kxtag kxinvisible" data-id="24719"><script>
+(function(){
+
+ var kuid = Krux('get', 'user');
+ var prefix = location.protocol == 'https:' ? "https:" : "http:";
+
+ if (kuid) {
+ new Image().src = prefix + '//s.thebrighttag.com/cs?tp=8RtgoqC&amp;uid=' + kuid;
+ }
+
+})();
+</script></span><span class="kxtag kxinvisible" data-id="27304"><script>
+ (function() {
+ var kuid = Krux('get', 'user');
+ if (kuid) {
+ var prefix = location.protocol == 'https:' ? "https:" : "http:";
+ var kurl_params = encodeURIComponent("_kuid=" + kuid + "&amp;_kdpid=a8138b01-9fff-43bb-b649-99241ab62170&amp;dlxid=&lt;na_id&gt;&amp;dlxdata=&lt;na_da&gt;");
+ var kurl = prefix + "//beacon.krxd.net/data.gif?" + kurl_params;
+ var dlx_url = '//r.nexac.com/e/getdata.xgi?dt=br&amp;pkey=qkgx66qkgxw46&amp;ru=' + kurl;
+ var i = new Image();
+ i.src = dlx_url;
+ }
+ })();
+</script></span><span class="kxtag kxinvisible" data-id="28339"><script>
+(function(){
+ var kuid = Krux('get', 'user');
+ var prefix = window.location.protocol == 'https:' ? 'https:' : 'http:';
+
+ if (kuid) {
+ var partner_url = prefix +'//s.amazon-adsystem.com/ecm3?ex=krux.com&amp;id=' + kuid;
+ new Image().src = partner_url;
+ }
+})();
+</script></span><span class="kxtag kxinvisible" data-id="28340"><script>
+(function(){
+ var kuid = Krux('get', 'user');
+ var prefix = window.location.protocol == 'https:' ? 'https:' : 'http:';
+
+ if (kuid) {
+ var partner_url = prefix +'//beacon.walmart.com/etap.gif?tap=krux&amp;partner_uid=' + kuid;
+ new Image().src = partner_url;
+ }
+})();
+</script></span><span class="kxtag kxinvisible" data-id="21430"><script>
+(function(){
+ var kuid = Krux('get', 'user');
+ var cbust = Math.round(new Date().getTime() / 1000);
+ if (kuid) {
+ Krux('require:http').pixel({
+ url: "//ib.adnxs.com/pxj",
+ data: {
+ bidder: '140',
+ seg: '381342',
+ action: "setuid('" + kuid + "')",
+ bust: cbust
+ }});
+ }
+ })();
+</script></span><span class="kxtag kxinvisible" data-id="21437"><script>
+(function(){
+ if (window.Krux) {
+ var kuid = window.Krux('get', 'user');
+ if (kuid &amp;&amp; typeof kuid != 'undefined') {
+ var rubicon_url = '//tap.rubiconproject.com/oz/feeds/krux/tokens?afu=' + kuid;
+ var i = new Image();
+ i.src = rubicon_url;
+ }
+ }
+})();
+</script></span><span class="kxtag kxinvisible" data-id="21456"></span><span class="kxtag kxinvisible" data-id="21465"></span><span class="kxtag kxinvisible" data-id="21476"><script>
+
+(function() {
+ var i = new Image();
+ i.src = '//rs.gwallet.com/r1/cm/p70r' + Date.now();
+}
+)();
+
+</script></span><span class="kxtag kxinvisible" data-id="21477"><script>
+(function() {
+ var kuid = Krux('get', 'user');
+ if (kuid) {
+ var prefix = window.location.protocol == 'https:' ? "https:" :"http:";
+ var r_url = prefix + '//secure-us.imrworldwide.com/cgi-bin/m?ci=ent599834&amp;c1=kxkuid,'
+ var kurl = r_url + kuid;
+ var i = new Image();
+ i.src = kurl;
+ }
+})();
+</script></span></div><iframe id="rufous-sandbox" scrolling="no" allowtransparency="true" allowfullscreen="true" style="position: absolute; visibility: hidden; display: none; width: 0px; height: 0px; padding: 0px; border: medium none;" title="Twitter analytics iframe" frameborder="0"></iframe><iframe style="display: none;" src="http://player.ooyala.com/ooyala_storage.html"></iframe></body><iframe id="kx-proxy-KPSUiAKl" src="http://cdn.krxd.net/partnerjs/xdi/proxy.072fda1ce3db3ac8dea875408764eeab.html#%21kxcid=KPSUiAKl&amp;kxt=http%3A%2F%2Ffandom.wikia.com&amp;kxcl=cdn&amp;kxp=" style="display: none; visibility: hidden; height: 0; width: 0;"></iframe>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wikipedia/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wikipedia/expected-images.json
new file mode 100644
index 000000000..81d1c9d4d
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wikipedia/expected-images.json
@@ -0,0 +1,9 @@
+[
+ "http:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/7\/76\/Mozilla_Firefox_logo_2013.svg\/220px-Mozilla_Firefox_logo_2013.svg.png",
+ "http:\/\/upload.wikimedia.org\/wikipedia\/commons\/0\/0d\/SeaMonkey.png",
+ "http:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/d\/d7\/Buggie.svg\/220px-Buggie.svg.png",
+ "http:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/2\/2a\/London_Mozilla_Workspace.jpg\/220px-London_Mozilla_Workspace.jpg",
+ "http:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/0\/0b\/Mozilla_Reps.png\/220px-Mozilla_Reps.png",
+ "http:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/e\/e4\/Fireside_Chat%2C_Knight%27s_Michael_Maness_and_Dan_Sinker_-_Flickr_-_Knight_Foundation.jpg\/220px-Fireside_Chat%2C_Knight%27s_Michael_Maness_and_Dan_Sinker_-_Flickr_-_Knight_Foundation.jpg",
+ "http:\/\/upload.wikimedia.org\/wikipedia\/en\/thumb\/4\/4a\/Commons-logo.svg\/30px-Commons-logo.svg.png"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wikipedia/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wikipedia/expected-metadata.json
new file mode 100644
index 000000000..b6e3d76fd
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wikipedia/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": "ltr",
+ "Excerpt": "Mozilla is a free-software community, created in 1998 by members of Netscape. The Mozilla community uses, develops, spreads and supports Mozilla products, thereby promoting exclusively free software and open standards, with only minor exceptions.[1] The community is supported institutionally by the Mozilla Foundation and its tax-paying subsidiary, the Mozilla Corporation.[2]",
+ "Image": null,
+ "Title": "Mozilla - Wikipedia",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wikipedia/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wikipedia/expected.html
new file mode 100644
index 000000000..8de3ffabc
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wikipedia/expected.html
@@ -0,0 +1,427 @@
+<div dir="ltr" id="mw-content-text" lang="en">
+
+ <p><b>Mozilla</b> is a <a href="http://fakehost/wiki/Free_software" title="Free software">free-software</a> community, created in 1998 by members of <a href="http://fakehost/wiki/Netscape" title="Netscape">Netscape</a>. The Mozilla community uses, develops, spreads and supports Mozilla products, thereby promoting exclusively free software and open standards, with only minor exceptions.<sup id="cite_ref-1"><a href="#cite_note-1">[1]</a></sup> The community is supported institutionally by the <a href="http://fakehost/wiki/Mozilla_Foundation" title="Mozilla Foundation">Mozilla Foundation</a> and its tax-paying subsidiary, the <a href="http://fakehost/wiki/Mozilla_Corporation" title="Mozilla Corporation">Mozilla Corporation</a>.<sup id="cite_ref-2"><a href="#cite_note-2">[2]</a></sup></p>
+ <p><a href="http://fakehost/wiki/List_of_Mozilla_products" title="List of Mozilla products">Mozilla produces many products</a> such as the <a href="http://fakehost/wiki/Firefox" title="Firefox">Firefox</a> web browser, <a href="http://fakehost/wiki/Mozilla_Thunderbird" title="Mozilla Thunderbird">Thunderbird</a> e-mail client, <a href="http://fakehost/wiki/Firefox_Mobile" title="Firefox Mobile">Firefox Mobile</a> web browser, <a href="http://fakehost/wiki/Firefox_OS" title="Firefox OS">Firefox OS</a> mobile operating system, <a href="http://fakehost/wiki/Bugzilla" title="Bugzilla">Bugzilla</a> bug tracking system and other projects.</p>
+
+
+
+ <h2><span id="History">History</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=1" title="Edit section: History">edit</a><span>]</span></span>
+ </h2>
+ <p>On January 23, 1998, Netscape made two announcements: first, that <a href="http://fakehost/wiki/Netscape_Communicator" title="Netscape Communicator">Netscape Communicator</a> will be free; second, that the source code will also be free.<sup id="cite_ref-3"><a href="#cite_note-3">[3]</a></sup> One day later, <a href="http://fakehost/wiki/Jamie_Zawinski" title="Jamie Zawinski">Jamie Zawinski</a> from Netscape registered <span>mozilla.org</span>.<sup id="cite_ref-4"><a href="#cite_note-4">[4]</a></sup> The project was named Mozilla after the original code name of the <a href="http://fakehost/wiki/Netscape_Navigator" title="Netscape Navigator">Netscape Navigator</a> browser which is a blending of "<a href="http://fakehost/wiki/Mosaic_(web_browser)" title="Mosaic (web browser)">Mosaic</a> and <a href="http://fakehost/wiki/Godzilla" title="Godzilla">Godzilla</a>"<sup id="cite_ref-google_5-0"><a href="#cite_note-google-5">[5]</a></sup> and used to co-ordinate the development of the <a href="http://fakehost/wiki/Mozilla_Application_Suite" title="Mozilla Application Suite">Mozilla Application Suite</a>, the <a href="http://fakehost/wiki/Open_source" title="Open source">open source</a> version of Netscape's internet software, <a href="http://fakehost/wiki/Netscape_Communicator" title="Netscape Communicator">Netscape Communicator</a>.<sup id="cite_ref-Mozilla_Launch_Announcement_6-0"><a href="#cite_note-Mozilla_Launch_Announcement-6">[6]</a></sup><sup id="cite_ref-7"><a href="#cite_note-7">[7]</a></sup> Jamie Zawinski says he came up with the name "Mozilla" at a Netscape staff meeting.<sup id="cite_ref-8"><a href="#cite_note-8">[8]</a></sup><sup id="cite_ref-9"><a href="#cite_note-9">[9]</a></sup> A small group of Netscape employees were tasked with coordination of the new community.</p>
+ <p>Originally, Mozilla aimed to be a technology provider for companies, such as Netscape, who would commercialize their open source code.<sup id="cite_ref-10"><a href="#cite_note-10">[10]</a></sup> When <a href="http://fakehost/wiki/AOL" title="AOL">AOL</a> (Netscape's parent company) greatly reduced its involvement with Mozilla in July 2003, the <a href="http://fakehost/wiki/Mozilla_Foundation" title="Mozilla Foundation">Mozilla Foundation</a> was designated the legal steward of the project.<sup id="cite_ref-11"><a href="#cite_note-11">[11]</a></sup> Soon after, Mozilla deprecated the Mozilla Suite in favor of creating independent applications for each function, primarily the <a href="http://fakehost/wiki/Firefox" title="Firefox">Firefox</a> web browser and the <a href="http://fakehost/wiki/Mozilla_Thunderbird" title="Mozilla Thunderbird">Thunderbird</a> email client, and moved to supply them directly to the public.<sup id="cite_ref-12"><a href="#cite_note-12">[12]</a></sup></p>
+ <p>Recently, Mozilla's activities have expanded to include Firefox on mobile platforms (primarily <a href="http://fakehost/wiki/Android_(operating_system)" title="Android (operating system)">Android</a>),<sup id="cite_ref-13"><a href="#cite_note-13">[13]</a></sup> a mobile OS called <a href="http://fakehost/wiki/Firefox_OS" title="Firefox OS">Firefox OS</a>,<sup id="cite_ref-14"><a href="#cite_note-14">[14]</a></sup> a web-based identity system called <a href="http://fakehost/wiki/Mozilla_Persona" title="Mozilla Persona">Mozilla Persona</a> and a marketplace for HTML5 applications.<sup id="cite_ref-15"><a href="#cite_note-15">[15]</a></sup></p>
+ <p>In a report released in November 2012, Mozilla reported that their total revenue for 2011 was $163 million, which was up 33% from $123 million in 2010. Mozilla noted that roughly 85% of their revenue comes from their contract with Google.<sup id="cite_ref-16"><a href="#cite_note-16">[16]</a></sup></p>
+ <p>At the end of 2013, Mozilla announced a deal with <a href="http://fakehost/wiki/Cisco_Systems" title="Cisco Systems">Cisco Systems</a> whereby Firefox would download and use a Cisco-provided binary build of an open source<sup id="cite_ref-github_17-0"><a href="#cite_note-github-17">[17]</a></sup><a href="http://fakehost/wiki/Codec" title="Codec">codec</a> to play the <a href="http://fakehost/wiki/Proprietary_format" title="Proprietary format">proprietary</a> <a href="http://fakehost/wiki/H.264" title="H.264">H.264</a> video format.<sup id="cite_ref-gigaom_18-0"><a href="#cite_note-gigaom-18">[18]</a></sup><sup id="cite_ref-techrepublic_19-0"><a href="#cite_note-techrepublic-19">[19]</a></sup> As part of the deal, Cisco would pay any patent licensing fees associated with the binaries that it distributes. Mozilla's CTO, <a href="http://fakehost/wiki/Brendan_Eich" title="Brendan Eich">Brendan Eich</a>, acknowledged that this is "not a complete solution" and isn't "perfect".<sup id="cite_ref-20"><a href="#cite_note-20">[20]</a></sup> An employee in Mozilla's video formats team, writing in an unofficial capacity, justified<sup id="cite_ref-21"><a href="#cite_note-21">[21]</a></sup> it by the need to maintain their large user base, which would be necessary in future battles for truly free video formats.</p>
+ <p>In December 2013, Mozilla announced funding for the development of non-<a href="http://fakehost/wiki/Free_software" title="Free software">free</a> games<sup id="cite_ref-22"><a href="#cite_note-22">[22]</a></sup> through its Game Creator Challenge. However, even those games that may be released under a non-free software or open source license must be made with open web technologies and Javascript as per the work criteria outlined in the announcement.</p>
+ <h3><span id="Eich_CEO_promotion_controversy">Eich CEO promotion controversy</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=2" title="Edit section: Eich CEO promotion controversy">edit</a><span>]</span></span>
+ </h3>
+ <p>On March 24, 2014, Mozilla promoted <a href="http://fakehost/wiki/Brendan_Eich" title="Brendan Eich">Brendan Eich</a> to the role of CEO. This led to boycotts and protests from the LGBT community and its supporters, as Eich previously donated US$1,000<sup id="cite_ref-23"><a href="#cite_note-23">[23]</a></sup> in 2008 in support of <a href="http://fakehost/wiki/California_Proposition_8_(2008)" title="California Proposition 8 (2008)">California's Proposition 8</a>, a California ballot proposition and state constitutional amendment in opposition to same-sex marriage.<sup id="cite_ref-arstechnica_24-0"><a href="#cite_note-arstechnica-24">[24]</a></sup> Eich's donation first became public knowledge in 2012, while he was Mozilla’s chief technical officer, leading to angry responses on Twitter—including the use of the hashtag "#wontworkwithbigots".<sup id="cite_ref-25"><a href="#cite_note-25">[25]</a></sup></p>
+ <p>Protests also emerged in 2014 following the announcement of Eich's appointment as CEO of Mozilla. U.S. companies <a href="http://fakehost/wiki/OkCupid" title="OkCupid">OkCupid</a> and <a href="http://fakehost/wiki/CREDO_Mobile" title="CREDO Mobile">CREDO Mobile</a> received media coverage for their objections, with the former asking its users to boycott the browser,<sup id="cite_ref-26"><a href="#cite_note-26">[26]</a></sup> while Credo amassed 50,000 signatures for a petition that called for Eich's resignation</p>
+ <p>Due to the controversy, Eich voluntarily stepped down on April 3, 2014<sup id="cite_ref-27"><a href="#cite_note-27">[27]</a></sup> and <a href="http://fakehost/wiki/Mitchell_Baker" title="Mitchell Baker">Mitchell Baker</a>, executive chairwoman of Mozilla Corporation, posted a statement on the Mozilla blog: "We didn’t move fast enough to engage with people once the controversy started. Mozilla believes both in equality and freedom of speech. Equality is necessary for meaningful speech. And you need free speech to fight for equality."<sup id="cite_ref-28"><a href="#cite_note-28">[28]</a></sup> Eich's resignation promoted a larger backlash from conservatives who felt he had been forced out of the company internally.<sup>[<i><a href="http://fakehost/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (August 2015)">citation needed</span></a></i>]</sup></p>
+ <p>OkCupid co-founder and CEO <a href="http://fakehost/wiki/Sam_Yagan" title="Sam Yagan">Sam Yagan</a> had also donated $500<sup id="cite_ref-29"><a href="#cite_note-29">[29]</a></sup> to Republican candidate <a href="http://fakehost/wiki/Chris_Cannon" title="Chris Cannon">Chris Cannon</a> who proceeded to vote for multiple measures viewed as "anti-gay", including the banning of same-sex marriage.<sup id="cite_ref-30"><a href="#cite_note-30">[30]</a></sup><sup id="cite_ref-31"><a href="#cite_note-31">[31]</a></sup><sup id="cite_ref-32"><a href="#cite_note-32">[32]</a></sup><sup id="cite_ref-33"><a href="#cite_note-33">[33]</a></sup> Yagan claims he did not know about Cannon's stance on gay rights and that his contribution was due to the candidate being the ranking Republican participating in the House subcommittee that oversaw Internet and Intellectual Property matters.<sup id="cite_ref-34"><a href="#cite_note-34">[34]</a></sup><sup id="cite_ref-35"><a href="#cite_note-35">[35]</a></sup><sup id="cite_ref-uncrunched.com_36-0"><a href="#cite_note-uncrunched.com-36">[36]</a></sup><sup id="cite_ref-37"><a href="#cite_note-37">[37]</a></sup><sup id="cite_ref-38"><a href="#cite_note-38">[38]</a></sup></p>
+ <p>Reader comments on articles that were published close to the events were divided between support for OkCupid's actions and opposition to them. Supporters claimed the boycott was justified and saw OkCupid's actions as a firm statement of opposition to intolerance towards the gay community. Opponents saw OkCupid's actions as hypocritical, since Eich is also the inventor of <a href="http://fakehost/wiki/Brendan_Eich#Netscape_and_JavaScript" title="Brendan Eich">JavaScript</a>, which is still required to browse OkCupid's website, and felt that users should not be punished for the actions of Mozilla and suspected that OkCupid's actions were a <a href="http://fakehost/wiki/Publicity_stunt" title="Publicity stunt">publicity stunt</a>.<sup id="cite_ref-uncrunched.com_36-1"><a href="#cite_note-uncrunched.com-36">[36]</a></sup><sup id="cite_ref-39"><a href="#cite_note-39">[39]</a></sup></p>
+ <h2><span id="Values">Values</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=3" title="Edit section: Values">edit</a><span>]</span></span>
+ </h2>
+ <p>According to Mozilla's manifesto,<sup id="cite_ref-manifesto_40-0"><a href="#cite_note-manifesto-40">[40]</a></sup> which outlines goals, principles, and a pledge, "The Mozilla project uses a community-based approach to create world-class open source software and to develop new types of collaborative activities". Mozilla's manifesto mentions only its beliefs in regards to the Internet and Internet privacy, and has no mention of any political or social viewpoints.</p>
+ <h3><span id="Pledge">Pledge</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=4" title="Edit section: Pledge">edit</a><span>]</span></span>
+ </h3>
+ <p>According to the Mozilla Foundation:<sup id="cite_ref-41"><a href="#cite_note-41">[41]</a></sup></p>
+ <blockquote>
+ <p>The Mozilla Foundation pledges to support the Mozilla Manifesto in its activities. Specifically, we will:</p>
+ <ul><li>Build and enable open-source technologies and communities that support the Manifesto’s principles;</li>
+ <li>Build and deliver great consumer products that support the Manifesto’s principles;</li>
+ <li>Use the Mozilla assets (intellectual property such as copyrights and trademarks, infrastructure, funds, and reputation) to keep the Internet an open platform;</li>
+ <li>Promote models for creating economic value for the public benefit; and</li>
+ <li>Promote the Mozilla Manifesto principles in public discourse and within the Internet industry.</li>
+ </ul></blockquote>
+ <h2><span id="Software">Software</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=5" title="Edit section: Software">edit</a><span>]</span></span>
+ </h2>
+ <div>
+ <div>
+ <p><a href="http://fakehost/wiki/File:Mozilla_Firefox_logo_2013.svg"><img alt="" data-file-height="373" data-file-width="352" height="233" src="http://upload.wikimedia.org/wikipedia/commons/thumb/7/76/Mozilla_Firefox_logo_2013.svg/220px-Mozilla_Firefox_logo_2013.svg.png" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/7/76/Mozilla_Firefox_logo_2013.svg/330px-Mozilla_Firefox_logo_2013.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/7/76/Mozilla_Firefox_logo_2013.svg/440px-Mozilla_Firefox_logo_2013.svg.png 2x" width="220"></img></a></p>
+ </div>
+ </div>
+ <h3><span id="Firefox">Firefox</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=6" title="Edit section: Firefox">edit</a><span>]</span></span>
+ </h3>
+
+ <p><a href="http://fakehost/wiki/Firefox" title="Firefox">Firefox</a> is a <a href="http://fakehost/wiki/Web_browser" title="Web browser">web browser</a>, and is Mozilla's <a href="http://fakehost/wiki/Flagship_product" title="Flagship product">flagship</a> software product. It is available in both desktop and mobile versions. Firefox uses the <a href="http://fakehost/wiki/Gecko_(software)" title="Gecko (software)">Gecko</a> <a href="http://fakehost/wiki/Layout_engine" title="Layout engine">layout engine</a> to render web pages, which implements current and anticipated <a href="http://fakehost/wiki/Web_standards" title="Web standards">web standards</a>.<sup id="cite_ref-42"><a href="#cite_note-42">[42]</a></sup> As of late 2015, Firefox has approximately 10-11% of worldwide <a href="http://fakehost/wiki/Usage_share_of_web_browsers#Summary" title="Usage share of web browsers">usage share of web browsers</a>, making it the 4th most-used web browser.<sup id="cite_ref-w3counter1_43-0"><a href="#cite_note-w3counter1-43">[43]</a></sup><sup id="cite_ref-gs.statcounter.com_44-0"><a href="#cite_note-gs.statcounter.com-44">[44]</a></sup><sup id="cite_ref-getclicky1_45-0"><a href="#cite_note-getclicky1-45">[45]</a></sup></p>
+ <p>Firefox began as an experimental branch of the <a href="http://fakehost/wiki/Mozilla#Mozilla_Project" title="Mozilla">Mozilla codebase</a> by <a href="http://fakehost/wiki/Dave_Hyatt" title="Dave Hyatt">Dave Hyatt</a>, <a href="http://fakehost/wiki/Joe_Hewitt_(programmer)" title="Joe Hewitt (programmer)">Joe Hewitt</a> and <a href="http://fakehost/wiki/Blake_Ross" title="Blake Ross">Blake Ross</a>. They believed the commercial requirements of <a href="http://fakehost/wiki/Netscape" title="Netscape">Netscape's</a> sponsorship and developer-driven <a href="http://fakehost/wiki/Feature_creep" title="Feature creep">feature creep</a> compromised the utility of the Mozilla browser.<sup id="cite_ref-46"><a href="#cite_note-46">[46]</a></sup> To combat what they saw as the <a href="http://fakehost/wiki/Mozilla_Application_Suite" title="Mozilla Application Suite">Mozilla Suite's</a> <a href="http://fakehost/wiki/Software_bloat" title="Software bloat">software bloat</a>, they created a stand-alone browser, with which they intended to replace the Mozilla Suite.</p>
+ <p>Firefox was originally named <i>Phoenix</i> but the name was changed so as to avoid trademark conflicts with <a href="http://fakehost/wiki/Phoenix_Technologies" title="Phoenix Technologies">Phoenix Technologies</a>. The initially-announced replacement, <i>Firebird</i>, provoked objections from the <a href="http://fakehost/wiki/Firebird_(database_server)" title="Firebird (database server)">Firebird</a> project community.<sup id="cite_ref-47"><a href="#cite_note-47">[47]</a></sup><sup id="cite_ref-48"><a href="#cite_note-48">[48]</a></sup> The current name, Firefox, was chosen on February 9, 2004.<sup id="cite_ref-49"><a href="#cite_note-49">[49]</a></sup></p>
+ <h3><span id="Firefox_Mobile">Firefox Mobile</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=7" title="Edit section: Firefox Mobile">edit</a><span>]</span></span>
+ </h3>
+
+ <p>Firefox Mobile (codenamed <i>Fennec</i>) is the build of the <a href="http://fakehost/wiki/Firefox" title="Firefox">Mozilla Firefox</a> <a href="http://fakehost/wiki/Web_browser" title="Web browser">web browser</a> for devices such as <a href="http://fakehost/wiki/Smartphone" title="Smartphone">smartphones</a> and <a href="http://fakehost/wiki/Tablet_computer" title="Tablet computer">tablet computers</a>.</p>
+ <p>Firefox Mobile uses the same <a href="http://fakehost/wiki/Gecko_(layout_engine)" title="Gecko (layout engine)">Gecko</a> <a href="http://fakehost/wiki/Layout_engine" title="Layout engine">layout engine</a> as <a href="http://fakehost/wiki/Firefox" title="Firefox">Mozilla Firefox</a>. For example, version 1.0 used the same engine as Firefox 3.6, and the following release, 4.0, shared core code with Firefox 4.0. Its features include <a href="http://fakehost/wiki/HTML5" title="HTML5">HTML5</a> support, <a href="http://fakehost/wiki/Firefox_Sync" title="Firefox Sync">Firefox Sync</a>, <a href="http://fakehost/wiki/Add-on_(Mozilla)" title="Add-on (Mozilla)">add-ons</a> support and <a href="http://fakehost/wiki/Tabbed_browsing" title="Tabbed browsing">tabbed browsing</a>.<sup id="cite_ref-50"><a href="#cite_note-50">[50]</a></sup></p>
+ <p>Firefox Mobile is currently available for <a href="http://fakehost/wiki/Android_(operating_system)" title="Android (operating system)">Android</a> 2.2 and above devices with an <a href="http://fakehost/wiki/ARM_architecture" title="ARM architecture">ARMv7</a> or <a href="http://fakehost/wiki/ARM_architecture" title="ARM architecture">ARMv6</a> CPU.<sup id="cite_ref-51"><a href="#cite_note-51">[51]</a></sup> The x86 architecture is not officially supported.<sup id="cite_ref-52"><a href="#cite_note-52">[52]</a></sup><a href="http://fakehost/wiki/Tristan_Nitot" title="Tristan Nitot">Tristan Nitot</a>, president of <a href="http://fakehost/wiki/Mozilla_Europe" title="Mozilla Europe">Mozilla Europe</a>, has said that it's unlikely that an <a href="http://fakehost/wiki/IPhone" title="IPhone">iPhone</a> or a <a href="http://fakehost/wiki/BlackBerry" title="BlackBerry">BlackBerry</a> version will be released, citing <a href="http://fakehost/wiki/Apple_Inc" title="Apple Inc">Apple's</a> iTunes Store application approval policies (which forbid applications competing with Apple's own, and forbid engines which run downloaded code) and BlackBerry's limited operating system as the reasons.<sup id="cite_ref-53"><a href="#cite_note-53">[53]</a></sup></p>
+ <h3><span id="Firefox_OS">Firefox OS</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=8" title="Edit section: Firefox OS">edit</a><span>]</span></span>
+ </h3>
+
+ <p>Firefox OS (project name: <i>Boot to Gecko</i> also known as <i>B2G</i>) is an <a href="http://fakehost/wiki/Open_source" title="Open source">open source</a> <a href="http://fakehost/wiki/Operating_system" title="Operating system">operating system</a> in development by Mozilla that aims to support <a href="http://fakehost/wiki/HTML5" title="HTML5">HTML5</a> apps written using "<a href="http://fakehost/wiki/Open_Web" title="Open Web">open Web</a>" technologies rather than platform-specific native <a href="http://fakehost/wiki/Application_programming_interface" title="Application programming interface">APIs</a>. The concept behind Firefox OS is that all user-accessible software will be HTML5 applications, that use Open Web APIs to access the phone's hardware directly via <a href="http://fakehost/wiki/JavaScript" title="JavaScript">JavaScript</a>.<sup id="cite_ref-54"><a href="#cite_note-54">[54]</a></sup></p>
+ <p>Some devices using this OS include<sup id="cite_ref-55"><a href="#cite_note-55">[55]</a></sup> Alcatel One Touch Fire, ZTE Open, LG Fireweb.</p>
+ <h3><span id="Thunderbird">Thunderbird</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=9" title="Edit section: Thunderbird">edit</a><span>]</span></span>
+ </h3>
+
+ <p><a href="http://fakehost/wiki/Mozilla_Thunderbird" title="Mozilla Thunderbird">Thunderbird</a> is a free, open source, cross-platform email and news client developed by the volunteers of the Mozilla Community.</p>
+ <p>On July 16, 2012, Mitchell Baker announced that Mozilla's leadership had come to the conclusion that on-going stability was the most important thing for Thunderbird and that innovation in Thunderbird was no longer a priority for Mozilla. In that update Baker also suggested that Mozilla had provided a pathway for community to innovate around Thunderbird if the community chooses.<sup id="cite_ref-56"><a href="#cite_note-56">[56]</a></sup></p>
+ <h3><span id="SeaMonkey">SeaMonkey</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=10" title="Edit section: SeaMonkey">edit</a><span>]</span></span>
+ </h3>
+
+ <div>
+ <div>
+ <p><a href="http://fakehost/wiki/File:SeaMonkey.png"><img alt="" data-file-height="128" data-file-width="128" height="128" src="http://upload.wikimedia.org/wikipedia/commons/0/0d/SeaMonkey.png" width="128"></img></a></p>
+ </div>
+ </div>
+ <p><a href="http://fakehost/wiki/SeaMonkey" title="SeaMonkey">SeaMonkey</a> (formerly the Mozilla Application Suite) is a free and open source cross platform suite of Internet software components including a web browser component, a client for sending and receiving email and <a href="http://fakehost/wiki/USENET" title="USENET">USENET</a> newsgroup messages, an HTML editor (<a href="http://fakehost/wiki/Mozilla_Composer" title="Mozilla Composer">Mozilla Composer</a>) and the <a href="http://fakehost/wiki/ChatZilla" title="ChatZilla">ChatZilla</a> IRC client.</p>
+ <p>On March 10, 2005, <a href="http://fakehost/wiki/The_Mozilla_Foundation" title="The Mozilla Foundation">the Mozilla Foundation</a> announced that it would not release any official versions of Mozilla Application Suite beyond 1.7.x, since it had now focused on the standalone applications <a href="http://fakehost/wiki/Mozilla_Firefox" title="Mozilla Firefox">Firefox</a> and <a href="http://fakehost/wiki/Mozilla_Thunderbird" title="Mozilla Thunderbird">Thunderbird</a>.<sup id="cite_ref-57"><a href="#cite_note-57">[57]</a></sup> SeaMonkey is now maintained by the SeaMonkey Council, which has <a href="http://fakehost/wiki/Trademark" title="Trademark">trademarked</a> the SeaMonkey name with help from the Mozilla Foundation.<sup id="cite_ref-58"><a href="#cite_note-58">[58]</a></sup> The Mozilla Foundation provides project hosting for the SeaMonkey developers.</p>
+
+ <h3><span id="Bugzilla">Bugzilla</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=11" title="Edit section: Bugzilla">edit</a><span>]</span></span>
+ </h3>
+
+ <div>
+ <div>
+ <p><a href="http://fakehost/wiki/File:Buggie.svg"><img alt="" data-file-height="125" data-file-width="95" height="289" src="http://upload.wikimedia.org/wikipedia/commons/thumb/d/d7/Buggie.svg/220px-Buggie.svg.png" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/d/d7/Buggie.svg/330px-Buggie.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/d/d7/Buggie.svg/440px-Buggie.svg.png 2x" width="220"></img></a></p>
+ </div>
+ </div>
+ <p><a href="http://fakehost/wiki/Bugzilla" title="Bugzilla">Bugzilla</a> is a <a href="http://fakehost/wiki/World_Wide_Web" title="World Wide Web">web</a>-based general-purpose <a href="http://fakehost/wiki/Bug_tracking_system" title="Bug tracking system">bug tracking system</a>, which was released as <a href="http://fakehost/wiki/Open_source_software" title="Open source software">open source software</a> by <a href="http://fakehost/wiki/Netscape_Communications" title="Netscape Communications">Netscape Communications</a> in 1998 along with the rest of the Mozilla codebase, and is currently stewarded by Mozilla. It has been adopted by a variety of organizations for use as a <a href="http://fakehost/wiki/Bug_tracking_system" title="Bug tracking system">bug tracking system</a> for both <a href="http://fakehost/wiki/Free_and_open_source_software" title="Free and open source software">free and open source software</a> and <a href="http://fakehost/wiki/Proprietary_software" title="Proprietary software">proprietary</a> projects and products, including the <a href="http://fakehost/wiki/The_Mozilla_Foundation" title="The Mozilla Foundation">Mozilla Foundation</a>, the <a href="http://fakehost/wiki/Linux_kernel" title="Linux kernel">Linux kernel</a>, <a href="http://fakehost/wiki/GNOME" title="GNOME">GNOME</a>, <a href="http://fakehost/wiki/KDE" title="KDE">KDE</a>, <a href="http://fakehost/wiki/Red_Hat" title="Red Hat">Red Hat</a>, <a href="http://fakehost/wiki/Novell" title="Novell">Novell</a>, <a href="http://fakehost/wiki/Eclipse_(software)" title="Eclipse (software)">Eclipse</a> and <a href="http://fakehost/wiki/LibreOffice" title="LibreOffice">LibreOffice</a>.<sup id="cite_ref-59"><a href="#cite_note-59">[59]</a></sup></p>
+ <h3><span id="Components">Components</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=12" title="Edit section: Components">edit</a><span>]</span></span>
+ </h3>
+ <h4><span id="NSS">NSS</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=13" title="Edit section: NSS">edit</a><span>]</span></span>
+ </h4>
+
+ <p><a href="http://fakehost/wiki/Network_Security_Services" title="Network Security Services">Network Security Services</a> (NSS) comprises a set of <a href="http://fakehost/wiki/Library_(computing)" title="Library (computing)">libraries</a> designed to support <a href="http://fakehost/wiki/Cross-platform" title="Cross-platform">cross-platform</a> development of security-enabled client and server applications. NSS provides a complete open-source implementation of crypto libraries supporting <a href="http://fakehost/wiki/Secure_Sockets_Layer" title="Secure Sockets Layer">SSL</a> and <a href="http://fakehost/wiki/S/MIME" title="S/MIME">S/MIME</a>. NSS was previously <a href="http://fakehost/wiki/Multi-licensing" title="Multi-licensing">tri-licensed</a> under the <a href="http://fakehost/wiki/Mozilla_Public_License" title="Mozilla Public License">Mozilla Public License</a> 1.1, the <a href="http://fakehost/wiki/GNU_General_Public_License" title="GNU General Public License">GNU General Public License</a>, and the <a href="http://fakehost/wiki/LGPL" title="LGPL">GNU Lesser General Public License</a>, but upgraded to GPL-compatible MPL 2.0.</p>
+ <p><a href="http://fakehost/wiki/AOL" title="AOL">AOL</a>, <a href="http://fakehost/wiki/Red_Hat" title="Red Hat">Red Hat</a>, <a href="http://fakehost/wiki/Sun_Microsystems" title="Sun Microsystems">Sun Microsystems</a>/<a href="http://fakehost/wiki/Oracle_Corporation" title="Oracle Corporation">Oracle Corporation</a>, <a href="http://fakehost/wiki/Google" title="Google">Google</a> and other companies and individual contributors have co-developed NSS and it is used in a wide range of non-Mozilla products including <a href="http://fakehost/wiki/Evolution_(software)" title="Evolution (software)">Evolution</a>, <a href="http://fakehost/wiki/Pidgin_(software)" title="Pidgin (software)">Pidgin</a>, and <a href="http://fakehost/wiki/Apache_OpenOffice" title="Apache OpenOffice">Apache OpenOffice</a>.</p>
+ <h4><span id="SpiderMonkey">SpiderMonkey</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=14" title="Edit section: SpiderMonkey">edit</a><span>]</span></span>
+ </h4>
+
+ <p><a href="http://fakehost/wiki/SpiderMonkey_(software)" title="SpiderMonkey (software)">SpiderMonkey</a> is the original <a href="http://fakehost/wiki/JavaScript_engine" title="JavaScript engine">JavaScript engine</a> developed by <a href="http://fakehost/wiki/Brendan_Eich" title="Brendan Eich">Brendan Eich</a> when he invented <a href="http://fakehost/wiki/JavaScript" title="JavaScript">JavaScript</a> in 1995 as a developer at <a href="http://fakehost/wiki/Netscape" title="Netscape">Netscape</a>. It became part of the Mozilla product family when Mozilla inherited Netscape's code-base in 1998. In 2011, Eich transferred the nominal ownership of the SpiderMonkey code and project to Dave Mandelin.<sup id="cite_ref-BE201106_60-0"><a href="#cite_note-BE201106-60">[60]</a></sup></p>
+ <p>SpiderMonkey is a <a href="http://fakehost/wiki/Cross-platform" title="Cross-platform">cross-platform</a> engine written in <a href="http://fakehost/wiki/C%2B%2B" title="C++">C++</a> which implements <a href="http://fakehost/wiki/ECMAScript" title="ECMAScript">ECMAScript</a>, a standard developed from JavaScript.<sup id="cite_ref-BE201106_60-1"><a href="#cite_note-BE201106-60">[60]</a></sup><sup id="cite_ref-61"><a href="#cite_note-61">[61]</a></sup> It comprises an <a href="http://fakehost/wiki/Interpreter_(computing)" title="Interpreter (computing)">interpreter</a>, several <a href="http://fakehost/wiki/Just-in-time_compilation" title="Just-in-time compilation">just-in-time compilers</a>, a <a href="http://fakehost/wiki/Decompiler" title="Decompiler">decompiler</a> and a <a href="http://fakehost/wiki/Garbage_collection_(computer_science)" title="Garbage collection (computer science)">garbage collector</a>. Products which embed SpiderMonkey include <a href="http://fakehost/wiki/Firefox" title="Firefox">Firefox</a>, <a href="http://fakehost/wiki/Mozilla_Thunderbird" title="Mozilla Thunderbird">Thunderbird</a>, <a href="http://fakehost/wiki/SeaMonkey" title="SeaMonkey">SeaMonkey</a>, and many non-Mozilla applications.<sup id="cite_ref-62"><a href="#cite_note-62">[62]</a></sup></p>
+ <h4><span id="Rhino">Rhino</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=15" title="Edit section: Rhino">edit</a><span>]</span></span>
+ </h4>
+
+ <p>Rhino is an <a href="http://fakehost/wiki/Open_source" title="Open source">open source</a> <a href="http://fakehost/wiki/JavaScript_engine" title="JavaScript engine">JavaScript engine</a> managed by the <a href="http://fakehost/wiki/Mozilla_Foundation" title="Mozilla Foundation">Mozilla Foundation</a>. It is developed entirely in <a href="http://fakehost/wiki/Java_(programming_language)" title="Java (programming language)">Java</a>. Rhino converts JavaScript scripts into Java <a href="http://fakehost/wiki/Class_(computer_programming)" title="Class (computer programming)">classes</a>. Rhino works in both <a href="http://fakehost/wiki/Compiler" title="Compiler">compiled</a> and <a href="http://fakehost/wiki/Interpreter_(computing)" title="Interpreter (computing)">interpreted</a> mode.<sup id="cite_ref-63"><a href="#cite_note-63">[63]</a></sup></p>
+ <h4><span id="Gecko">Gecko</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=16" title="Edit section: Gecko">edit</a><span>]</span></span>
+ </h4>
+
+ <p><a href="http://fakehost/wiki/Gecko_(layout_engine)" title="Gecko (layout engine)">Gecko</a> is a <a href="http://fakehost/wiki/Web_browser_engine" title="Web browser engine">layout engine</a> that supports web pages written using <a href="http://fakehost/wiki/HTML" title="HTML">HTML</a>, <a href="http://fakehost/wiki/Scalable_Vector_Graphics" title="Scalable Vector Graphics">SVG</a>, and <a href="http://fakehost/wiki/MathML" title="MathML">MathML</a>. Gecko is written in <a href="http://fakehost/wiki/C%2B%2B" title="C++">C++</a> and uses <a href="http://fakehost/wiki/NSPR" title="NSPR">NSPR</a> for <a href="http://fakehost/wiki/Platform_independence" title="Platform independence">platform independence</a>. Its source code is licensed under the <a href="http://fakehost/wiki/Mozilla_Public_License" title="Mozilla Public License">Mozilla Public License</a>.</p>
+ <p>Firefox uses Gecko both for rendering web pages and for rendering its <a href="http://fakehost/wiki/User_interface" title="User interface">user interface</a>. Gecko is also used by Thunderbird, SeaMonkey, and many non-Mozilla applications.</p>
+ <h4><span id="Rust">Rust</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=17" title="Edit section: Rust">edit</a><span>]</span></span>
+ </h4>
+
+ <p><a href="http://fakehost/wiki/Rust_(programming_language)" title="Rust (programming language)">Rust</a> is a compiled <a href="http://fakehost/wiki/Programming_language" title="Programming language">programming language</a> being developed by Mozilla Research. It is designed for safety, concurrency, and performance. Rust is intended for creating large and complex software which needs to be both safe against exploits and fast.</p>
+ <p>Rust is being used in an experimental layout engine, <a href="http://fakehost/wiki/Servo_(layout_engine)" title="Servo (layout engine)">Servo</a>, which is developed by Mozilla and Samsung. Servo is not used in any consumer-oriented browsers yet. However, the Servo project developers plan for parts of the Servo source code to be merged into Gecko, and Firefox, incrementally.<sup id="cite_ref-64"><a href="#cite_note-64">[64]</a></sup><sup id="cite_ref-65"><a href="#cite_note-65">[65]</a></sup></p>
+ <h4><span id="XULRunner">XULRunner</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=18" title="Edit section: XULRunner">edit</a><span>]</span></span>
+ </h4>
+
+ <p><a href="http://fakehost/wiki/XULRunner" title="XULRunner">XULRunner</a> is a software platform and technology experiment by Mozilla, that allows applications built with the same technologies used by Firefox extensions (XPCOM, Javascript, HTML, CSS, XUL) to be run natively as desktop applications, without requiring Firefox to be installed on the user's machine. XULRunner binaries are available for the Windows, GNU/Linux and OS X operating systems, allowing such applications to be effectively cross platform.</p>
+ <h4><span id="pdf.js">pdf.js</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=19" title="Edit section: pdf.js">edit</a><span>]</span></span>
+ </h4>
+
+ <p><a href="http://fakehost/wiki/Pdf.js" title="Pdf.js">Pdf.js</a> is a library developed by Mozilla that allows in-browser rendering of pdf documents using the HTML5 Canvas and Javascript. It is included by default in recent versions of Firefox, allowing the browser to render pdf documents without requiring an external plugin; and it is available separately as an extension named "PDF Viewer" for Firefox for Android, SeaMonkey, and the Firefox versions which don't include it built-in. It can also be included as part of a website's scripts, to allow pdf rendering for any browser that implements the required HTML5 features and can run Javascript.</p>
+ <h4><span id="Shumway">Shumway</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=20" title="Edit section: Shumway">edit</a><span>]</span></span>
+ </h4>
+
+ <p><a href="http://fakehost/wiki/Shumway_(software)" title="Shumway (software)">Shumway</a> is an open source replacement for the Adobe Flash Player, developed by Mozilla since 2012, using open web technologies as a replacement for Flash technologies. It uses Javascript and HTML5 Canvas elements to render Flash and execute Actionscript. It is included by default in Firefox Nightly and can be installed as an extension for any recent version of Firefox. The current implementation is limited in its capabilities to render Flash content outside simple projects.</p>
+ <h2><span id="Other_activities">Other activities</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=21" title="Edit section: Other activities">edit</a><span>]</span></span>
+ </h2>
+ <h3><span id="Mozilla_VR">Mozilla VR</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=22" title="Edit section: Mozilla VR">edit</a><span>]</span></span>
+ </h3>
+ <p>Mozilla VR is a team focused on bringing <a href="http://fakehost/wiki/Virtual_reality" title="Virtual reality">Virtual reality</a> tools, specifications, and standards to the open Web.<sup id="cite_ref-66"><a href="#cite_note-66">[66]</a></sup> Mozilla VR maintains <a href="http://fakehost/wiki/A-Frame_(VR)" title="A-Frame (VR)">A-Frame (VR)</a>, a web framework for building VR experiences, and works on advancing <a href="http://fakehost/wiki/WebVR" title="WebVR">WebVR</a> support within web browsers.</p>
+ <h3><span id="Mozilla_Persona">Mozilla Persona</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=23" title="Edit section: Mozilla Persona">edit</a><span>]</span></span>
+ </h3>
+
+ <p><a href="http://fakehost/wiki/Mozilla_Persona" title="Mozilla Persona">Mozilla Persona</a> is a secure, cross-browser website <a href="http://fakehost/wiki/Authentication" title="Authentication">authentication</a> mechanism which allows a user to use a single username and password (or other authentication method) to log in to multiple sites.<sup id="cite_ref-67"><a href="#cite_note-67">[67]</a></sup> Mozilla Persona will be shutting down on November 30, 2016.<sup id="cite_ref-68"><a href="#cite_note-68">[68]</a></sup></p>
+ <h3><span id="Mozilla_Location_Service">Mozilla Location Service</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=24" title="Edit section: Mozilla Location Service">edit</a><span>]</span></span>
+ </h3>
+
+ <p>This open source crowdsourced geolocation service was started by Mozilla in 2013 and offers a free <a href="http://fakehost/wiki/Application_programming_interface" title="Application programming interface">API</a>.</p>
+ <h3><span id="Webmaker">Webmaker</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=25" title="Edit section: Webmaker">edit</a><span>]</span></span>
+ </h3>
+ <p>Mozilla Webmaker is Mozilla's educational initiative, Webmaker's goal is to "help millions of people move from using the web to making the web." As part of Mozilla’s non-profit mission, Webmaker aims "to help the world increase their understanding of the web, take greater control of their online lives, and create a more web literate planet."<sup id="cite_ref-69"><a href="#cite_note-69">[69]</a></sup><sup id="cite_ref-lifehacker.com_70-0"><a href="#cite_note-lifehacker.com-70">[70]</a></sup><sup id="cite_ref-lifehacker.com_70-1"><a href="#cite_note-lifehacker.com-70">[70]</a></sup></p>
+ <h3><span id="Mozilla_Developer_Network">Mozilla Developer Network</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=26" title="Edit section: Mozilla Developer Network">edit</a><span>]</span></span>
+ </h3>
+
+ <p>Mozilla maintains a comprehensive developer documentation website called the <a href="http://fakehost/wiki/Mozilla_Developer_Network" title="Mozilla Developer Network">Mozilla Developer Network</a> which contains information about web technologies including <a href="http://fakehost/wiki/HTML" title="HTML">HTML</a>, <a href="http://fakehost/wiki/CSS" title="CSS">CSS</a>, <a href="http://fakehost/wiki/SVG" title="SVG">SVG</a>, <a href="http://fakehost/wiki/JavaScript" title="JavaScript">JavaScript</a>, as well Mozilla-specific information. In addition, Mozilla publishes a large number of videos about web technologies and the development of Mozilla projects on the Air Mozilla website.<sup id="cite_ref-71"><a href="#cite_note-71">[71]</a></sup><sup id="cite_ref-72"><a href="#cite_note-72">[72]</a></sup></p>
+ <h2><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=27" title="Edit section: Community">edit</a><span>]</span></span>
+ </h2>
+ <p>The Mozilla Community consists of over 40,000 active contributors from across the globe<sup>[<i><a href="http://fakehost/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (July 2015)">citation needed</span></a></i>]</sup>. It includes both paid employees and volunteers who work towards the goals set forth<sup id="cite_ref-manifesto_40-1"><a href="#cite_note-manifesto-40">[40]</a></sup> in the Mozilla Manifesto. Many of the sub-communities in Mozilla have formed around localization efforts for Mozilla Firefox, and the Mozilla web properties.</p>
+ <h3><span id="Local_communities">Local communities</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=28" title="Edit section: Local communities">edit</a><span>]</span></span>
+ </h3>
+ <div>
+ <div>
+ <p><a href="http://fakehost/wiki/File:London_Mozilla_Workspace.jpg"><img alt="" data-file-height="1656" data-file-width="2500" height="146" src="http://upload.wikimedia.org/wikipedia/commons/thumb/2/2a/London_Mozilla_Workspace.jpg/220px-London_Mozilla_Workspace.jpg" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/2/2a/London_Mozilla_Workspace.jpg/330px-London_Mozilla_Workspace.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/2/2a/London_Mozilla_Workspace.jpg/440px-London_Mozilla_Workspace.jpg 2x" width="220"></img></a></p>
+ </div>
+ </div>
+ <p>There are a number of sub-communities that exist based on their geographical locations, where contributors near each other work together on particular activities, such as localization, marketing, PR and user support.</p>
+ <h3><span id="Mozilla_Reps">Mozilla Reps</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=29" title="Edit section: Mozilla Reps">edit</a><span>]</span></span>
+ </h3>
+ <div>
+ <div>
+ <p><a href="http://fakehost/wiki/File:Mozilla_Reps.png"><img alt="" data-file-height="183" data-file-width="400" height="101" src="http://upload.wikimedia.org/wikipedia/commons/thumb/0/0b/Mozilla_Reps.png/220px-Mozilla_Reps.png" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/0/0b/Mozilla_Reps.png/330px-Mozilla_Reps.png 1.5x, //upload.wikimedia.org/wikipedia/commons/0/0b/Mozilla_Reps.png 2x" width="220"></img></a></p>
+ </div>
+ </div>
+ <p>The Mozilla Reps program aims to empower and support volunteer Mozillians who want to become official representatives of Mozilla in their region/locale.</p>
+ <p>The program provides a simple framework and a specific set of tools to help Mozillians to organize and/or attend events, recruit and mentor new contributors, document and share activities, and support their local communities better.</p>
+ <p>When joining the program, a Mozilla Rep agrees to take on the following responsibilities:</p>
+ <ul><li>Represent Mozilla in their country/region</li>
+ <li>Promote the Mozilla Project and its mission</li>
+ <li>Build on and support existing/future local community efforts and programs</li>
+ <li>Inspire, recruit and support new contributors</li>
+ <li>Support and mentor future Mozilla Reps</li>
+ <li>Document clearly all their activities</li>
+ </ul><h3><span id="Conferences_and_events">Conferences and events</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=30" title="Edit section: Conferences and events">edit</a><span>]</span></span>
+ </h3>
+ <h4><span id="Mozilla_Festival">Mozilla Festival</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=31" title="Edit section: Mozilla Festival">edit</a><span>]</span></span>
+ </h4>
+ <div>
+ <div>
+ <p><a href="http://fakehost/wiki/File:Fireside_Chat,_Knight%27s_Michael_Maness_and_Dan_Sinker_-_Flickr_-_Knight_Foundation.jpg"><img alt="" data-file-height="854" data-file-width="1280" height="147" src="http://upload.wikimedia.org/wikipedia/commons/thumb/e/e4/Fireside_Chat%2C_Knight%27s_Michael_Maness_and_Dan_Sinker_-_Flickr_-_Knight_Foundation.jpg/220px-Fireside_Chat%2C_Knight%27s_Michael_Maness_and_Dan_Sinker_-_Flickr_-_Knight_Foundation.jpg" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/e/e4/Fireside_Chat%2C_Knight%27s_Michael_Maness_and_Dan_Sinker_-_Flickr_-_Knight_Foundation.jpg/330px-Fireside_Chat%2C_Knight%27s_Michael_Maness_and_Dan_Sinker_-_Flickr_-_Knight_Foundation.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/e/e4/Fireside_Chat%2C_Knight%27s_Michael_Maness_and_Dan_Sinker_-_Flickr_-_Knight_Foundation.jpg/440px-Fireside_Chat%2C_Knight%27s_Michael_Maness_and_Dan_Sinker_-_Flickr_-_Knight_Foundation.jpg 2x" width="220"></img></a></p><div>
+ <p>
+ Speakers from the <a href="http://fakehost/wiki/Knight_Foundation" title="Knight Foundation">Knight Foundation</a> discuss the future of news at the 2011 Mozilla Festival in London.</p></div>
+ </div>
+ </div>
+ <p>The Mozilla Festival is an annual event where hundreds of passionate people explore the Web, learn together and make things that can change the world. With the emphasis on <i>making</i>—the mantra of the Festival is "less yack, more hack." Journalists, coders, filmmakers, designers, educators, gamers, makers, youth and anyone else, from all over the world, are encouraged to attend, with attendees from more than 40 countries, working together at the intersection between freedom, the Web, and that years theme.</p>
+ <p>The event revolves around design challenges which address key issues based on the chosen theme for that years festival. In previous years the Mozilla Festival has focused on Learning, and Media, with the 2012 festival being based around making. The titles of the festival revolve around the main theme, freedom (as in freedom of speech not free beer), and the Web.</p>
+ <h4><span id="MozCamps">MozCamps</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=32" title="Edit section: MozCamps">edit</a><span>]</span></span>
+ </h4>
+ <p>MozCamps are the critical part of the Grow Mozilla initiative which aims to grow the Mozilla Community. These camps aim to bring core contributors from around the world together. They are intensive multi-day summits that include keynote speeches by Mozilla leadership, workshops and breakout sessions (led by paid and unpaid staff), and fun social outings. All of these activities combine to reward contributors for their hard work, engage them with new products and initiatives, and align all attendees on Mozilla's mission.</p>
+ <h4><span id="Mozilla_Summit">Mozilla Summit</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=33" title="Edit section: Mozilla Summit">edit</a><span>]</span></span>
+ </h4>
+ <p>Mozilla Summit are the global event with active contributors and Mozilla employees to develop a shared understanding of Mozilla's mission together. Over 2,000 people representing 90 countries and 114 languages gathered in Santa Clara, Toronto and Brussels in 2013. Mozilla has since its last summit in 2013 replaced summits with all-hands where both employees and volunteers come together to collaborate the event is a scaled down version of Mozilla Summit.</p>
+ <h2><span id="See_also">See also</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=34" title="Edit section: See also">edit</a><span>]</span></span>
+ </h2>
+
+ <ul><li><a href="http://fakehost/wiki/-zilla_(suffix)" title="-zilla (suffix)">-zilla (suffix)</a></li>
+ <li><a href="http://fakehost/wiki/Mozilla_(mascot)" title="Mozilla (mascot)">Mozilla (mascot)</a></li>
+ <li><i><a href="http://fakehost/wiki/The_Book_of_Mozilla" title="The Book of Mozilla">The Book of Mozilla</a></i></li>
+ <li><a href="http://fakehost/wiki/Timeline_of_web_browsers" title="Timeline of web browsers">Timeline of web browsers</a></li>
+ </ul><h2><span id="References">References</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=35" title="Edit section: References">edit</a><span>]</span></span>
+ </h2>
+ <div>
+ <ol><li id="cite_note-1"><span><b><a href="#cite_ref-1">^</a></b></span> <span>For exceptions, see "Values" section below</span></li>
+ <li id="cite_note-2"><span><b><a href="#cite_ref-2">^</a></b></span> <span><cite><a href="https://www.mozilla.org/foundation/moco/" rel="nofollow">"About the Mozilla Corporation"</a>. Mozilla Foundation.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=About+the+Mozilla+Corporation&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fwww.mozilla.org%2Ffoundation%2Fmoco%2F&amp;rft.pub=Mozilla+Foundation&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-3"><span><b><a href="#cite_ref-3">^</a></b></span> <span><cite><a href="http://www.oreilly.com/openbook/opensources/book/netrev.html" rel="nofollow">"Freeing the Source: The Story of Mozilla"</a>. <i>Open Sources: Voices from the Open Source Revolution</i><span>. Retrieved <span>2016-05-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Freeing+the+Source%3A+The+Story+of+Mozilla&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.oreilly.com%2Fopenbook%2Fopensources%2Fbook%2Fnetrev.html&amp;rft.jtitle=Open+Sources%3A+Voices+from+the+Open+Source+Revolution&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"></span>
+ </span>
+ </li>
+ <li id="cite_note-4"><span><b><a href="#cite_ref-4">^</a></b></span> <span><cite><a href="https://whois.domaintools.com/mozilla.org" rel="nofollow">"Mozilla.org WHOIS, DNS, &amp; Domain Info"</a>. <i>DomainTools</i><span>. Retrieved <span>1 May</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Mozilla.org+WHOIS%2C+DNS%2C+%26+Domain+Info&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fwhois.domaintools.com%2Fmozilla.org&amp;rft.jtitle=DomainTools&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"></span>
+ </span>
+ </li>
+ <li id="cite_note-google-5"><span><b><a href="#cite_ref-google_5-0">^</a></b></span> <span><cite>Payment, S. (2007). <a href="http://books.google.co.uk/books?id=zyIvOn7sKCsC" rel="nofollow"><i>Marc Andreessen and Jim Clark: The Founders of Netscape</i></a>. Rosen Publishing Group. <a href="http://fakehost/wiki/International_Standard_Book_Number" title="International Standard Book Number">ISBN</a> <a href="http://fakehost/wiki/Special:BookSources/9781404207196" title="Special:BookSources/9781404207196">9781404207196</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.au=Payment%2C+S.&amp;rft.btitle=Marc+Andreessen+and+Jim+Clark%3A+The+Founders+of+Netscape&amp;rft.date=2007&amp;rft.genre=book&amp;rft_id=%2F%2Fbooks.google.co.uk%2Fbooks%3Fid%3DzyIvOn7sKCsC&amp;rft.isbn=9781404207196&amp;rft.pub=Rosen+Publishing+Group&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-Mozilla_Launch_Announcement-6"><span><b><a href="#cite_ref-Mozilla_Launch_Announcement_6-0">^</a></b></span> <span><cite><a href="https://web.archive.org/web/20021004080737/wp.netscape.com/newsref/pr/newsrelease577.html" rel="nofollow">"Netscape Announces mozilla.org, a Dedicated Team and Web Site Supporting Development of Free Client Source Code"</a>. Netscape. Archived from the original on October 4, 2002<span>. Retrieved <span>2012-08-21</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Netscape+Announces+mozilla.org%2C+a+Dedicated+Team+and+Web+Site+Supporting+Development+of+Free+Client+Source+Code&amp;rft.genre=unknown&amp;rft_id=%2F%2Fwp.netscape.com%2Fnewsref%2Fpr%2Fnewsrelease577.html&amp;rft.pub=Netscape&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span> </span>
+ </li>
+ <li id="cite_note-7"><span><b><a href="#cite_ref-7">^</a></b></span> <span><cite><a href="http://www.highbeam.com/doc/1G1-20453744.html" rel="nofollow">"Mac vendors ponder Netscape gambit."</a>. <i>Macworld</i>. 1 May 1998<span>. Retrieved <span>2012-08-19</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Mac+vendors+ponder+Netscape+gambit.&amp;rft.date=1998-05-01&amp;rft.genre=article&amp;rft_id=http%3A%2F%2Fwww.highbeam.com%2Fdoc%2F1G1-20453744.html&amp;rft.jtitle=Macworld&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"></span>
+ </span>
+ </li>
+ <li id="cite_note-8"><span><b><a href="#cite_ref-8">^</a></b></span> <span><cite>Zawinski, Jamie (1996). <a href="http://www.jwz.org/gruntle/nscpdorm.html" rel="nofollow">"nscp dorm"</a><span>. Retrieved <span>2007-10-12</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.aufirst=Jamie&amp;rft.aulast=Zawinski&amp;rft.btitle=nscp+dorm&amp;rft.date=1996&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.jwz.org%2Fgruntle%2Fnscpdorm.html&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-9"><span><b><a href="#cite_ref-9">^</a></b></span> <span><cite>Dave Titus with assistance from Andrew Wong. <a href="http://www.davetitus.com/mozilla/" rel="nofollow">"How was Mozilla born"</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.au=Dave+Titus+with+assistance+from+Andrew+Wong&amp;rft.btitle=How+was+Mozilla+born&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.davetitus.com%2Fmozilla%2F&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-10"><span><b><a href="#cite_ref-10">^</a></b></span> <span><cite><a href="http://www-archive.mozilla.org/hacking/coding-introduction.html" rel="nofollow">"Introduction to Mozilla Source Code"</a>. Mozilla<span>. Retrieved <span>2012-08-18</span></span>. <q>However, mozilla.org wants to emphasize that these milestones are being produced for testing purposes only.</q></cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Introduction+to+Mozilla+Source+Code&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww-archive.mozilla.org%2Fhacking%2Fcoding-introduction.html&amp;rft.pub=Mozilla&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-11"><span><b><a href="#cite_ref-11">^</a></b></span> <span><cite><a href="http://www.mozilla.org/en-US/press/mozilla-foundation.html" rel="nofollow">"mozilla.org Announces Launch of the Mozilla Foundation to Lead Open-Source Browser Efforts"</a><span>. Retrieved <span>2012-08-18</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=mozilla.org+Announces+Launch+of+the+Mozilla+Foundation+to+Lead+Open-Source+Browser+Efforts&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.mozilla.org%2Fen-US%2Fpress%2Fmozilla-foundation.html&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-12"><span><b><a href="#cite_ref-12">^</a></b></span> <span><cite><a href="http://fakehost/wiki/Brendan_Eich" title="Brendan Eich">Eich, Brendan</a>; <a href="http://fakehost/wiki/Dave_Hyatt" title="Dave Hyatt">David Hyatt</a> (April 2, 2003). <a href="http://www-archive.mozilla.org/roadmap/roadmap-02-Apr-2003.html" rel="nofollow">"mozilla development roadmap"</a>. Mozilla<span>. Retrieved <span>2009-08-02</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.au=David+Hyatt&amp;rft.aufirst=Brendan&amp;rft.aulast=Eich&amp;rft.btitle=mozilla+development+roadmap&amp;rft.date=2003-04-02&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww-archive.mozilla.org%2Froadmap%2Froadmap-02-Apr-2003.html&amp;rft.pub=Mozilla&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-13"><span><b><a href="#cite_ref-13">^</a></b></span> <span><cite><a href="http://allthingsd.com/20120816/better-browsing-on-your-android-smartphone/" rel="nofollow">"Better Browsing on Your Android Smartphone"</a>. AllThingsD<span>. Retrieved <span>2012-08-18</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Better+Browsing+on+Your+Android+Smartphone&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fallthingsd.com%2F20120816%2Fbetter-browsing-on-your-android-smartphone%2F&amp;rft.pub=AllThingsD&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-14"><span><b><a href="#cite_ref-14">^</a></b></span> <span><cite><a href="http://www.pcmag.com/article2/0,2817,2407468,00.asp" rel="nofollow">"Mozilla Releases Test Version of Firefox OS"</a>. PC Magazine<span>. Retrieved <span>2012-08-18</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Mozilla+Releases+Test+Version+of+Firefox+OS&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.pcmag.com%2Farticle2%2F0%2C2817%2C2407468%2C00.asp&amp;rft.pub=PC+Magazine&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-15"><span><b><a href="#cite_ref-15">^</a></b></span> <span><cite><a href="http://www.engadget.com/2012/06/12/mozilla-marketplace-live-web-apps-like-desktop/" rel="nofollow">"Mozilla Marketplace is live, lets you run web apps like desktop programs"</a>. Engadget<span>. Retrieved <span>2012-08-18</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Mozilla+Marketplace+is+live%2C+lets+you+run+web+apps+like+desktop+programs&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.engadget.com%2F2012%2F06%2F12%2Fmozilla-marketplace-live-web-apps-like-desktop%2F&amp;rft.pub=Engadget&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-16"><span><b><a href="#cite_ref-16">^</a></b></span> <span><cite>Lardinois, Frederic (November 15, 2012). <a href="http://techcrunch.com/2012/11/15/mozilla-releases-annual-report-for-2011-revenue-up-33-to-163m-majority-from-google/" rel="nofollow">"Mozilla Releases Annual Report For 2011: Revenue Up 33% To $163M, Majority From Google"</a>. <i>techcrunch.com</i>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Mozilla+Releases+Annual+Report+For+2011%3A+Revenue+Up+33%25+To+%24163M%2C+Majority+From+Google&amp;rft.aufirst=Frederic&amp;rft.aulast=Lardinois&amp;rft.date=2012-11-15&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Ftechcrunch.com%2F2012%2F11%2F15%2Fmozilla-releases-annual-report-for-2011-revenue-up-33-to-163m-majority-from-google%2F&amp;rft.jtitle=techcrunch.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"></span>
+ </span>
+ </li>
+ <li id="cite_note-github-17"><span><b><a href="#cite_ref-github_17-0">^</a></b></span> <span><cite><a href="https://github.com/cisco/openh264" rel="nofollow">"cisco/openh264 · GitHub"</a>. github.com<span>. Retrieved <span>2014-04-05</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=cisco%2Fopenh264+%B7+GitHub&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fgithub.com%2Fcisco%2Fopenh264&amp;rft.pub=github.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-gigaom-18"><span><b><a href="#cite_ref-gigaom_18-0">^</a></b></span> <span><cite><a href="http://gigaom.com/2013/10/30/mozilla-will-add-h-264-to-firefox-as-cisco-makes-eleventh-hour-push-for-webrtcs-future/" rel="nofollow">"Mozilla will add H.264 to Firefox as Cisco makes eleventh-hour push for WebRTC's future — Tech News and Analysis"</a>. gigaom.com<span>. Retrieved <span>2014-04-05</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Mozilla+will+add+H.264+to+Firefox+as+Cisco+makes+eleventh-hour+push+for+WebRTC%99s+future+%26mdash%3B+Tech+News+and+Analysis&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fgigaom.com%2F2013%2F10%2F30%2Fmozilla-will-add-h-264-to-firefox-as-cisco-makes-eleventh-hour-push-for-webrtcs-future%2F&amp;rft.pub=gigaom.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-techrepublic-19"><span><b><a href="#cite_ref-techrepublic_19-0">^</a></b></span> <span><cite><a href="http://www.techrepublic.com/blog/australian-technology/cisco-to-release-open-source-h264-codec-mozilla-makes-tactical-retreat/" rel="nofollow">"Cisco to release open-source H.264 codec, Mozilla makes tactical retreat - TechRepublic"</a>. techrepublic.com<span>. Retrieved <span>2014-04-05</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Cisco+to+release+open-source+H.264+codec%2C+Mozilla+makes+tactical+retreat+-+TechRepublic&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.techrepublic.com%2Fblog%2Faustralian-technology%2Fcisco-to-release-open-source-h264-codec-mozilla-makes-tactical-retreat%2F&amp;rft.pub=techrepublic.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-20"><span><b><a href="#cite_ref-20">^</a></b></span> <span><cite><a href="https://blog.mozilla.org/blog/2013/10/30/video-interoperability-on-the-web-gets-a-boost-from-ciscos-h-264-codec/" rel="nofollow">"Video Interoperability on the Web Gets a Boost From Cisco's H.264 Codec"</a>. <q>Of course, this is not a not a complete solution. In a perfect world, codecs, like other basic Internet technologies such as TCP/IP, HTTP, and HTML, would be fully open and free</q></cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Video+Interoperability+on+the+Web+Gets+a+Boost+From+Cisco%99s+H.264+Codec&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fblog.mozilla.org%2Fblog%2F2013%2F10%2F30%2Fvideo-interoperability-on-the-web-gets-a-boost-from-ciscos-h-264-codec%2F&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-21"><span><b><a href="#cite_ref-21">^</a></b></span> <span><cite><a href="http://xiphmont.livejournal.com/61927.html" rel="nofollow">"Comments on Cisco, Mozilla, and H.264"</a>. <q>By endorsing Cisco's plan, there's no getting around the fact that we've caved on our principles. That said, principles can't replace being in a practical position to make a difference in the future.</q></cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Comments+on+Cisco%2C+Mozilla%2C+and+H.264&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fxiphmont.livejournal.com%2F61927.html&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span> - Christopher Montgomery wrote in a personal capacity but works for Mozilla in their codecs team</span>
+ </li>
+ <li id="cite_note-22"><span><b><a href="#cite_ref-22">^</a></b></span> <span><cite><a href="https://wiki.mozilla.org/Game_Creator_Challenge_-Contest_Terms_and_Conditions" rel="nofollow">"Game Creator Challenge -Contest Terms and Conditions"</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Game+Creator+Challenge+-Contest+Terms+and+Conditions&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fwiki.mozilla.org%2FGame_Creator_Challenge_-Contest_Terms_and_Conditions&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span> - submissions to the "amateur" category have to be released as free software, but not for the other two categories</span>
+ </li>
+ <li id="cite_note-23"><span><b><a href="#cite_ref-23">^</a></b></span> <span><cite><a href="http://projects.latimes.com/prop8/donation/8930/" rel="nofollow">"Los Angeles Times - Brendan Eich contribution to Proposition 8"</a>. latimes.com<span>. Retrieved <span>2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Los+Angeles+Times+-+Brendan+Eich+contribution+to+Proposition+8&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fprojects.latimes.com%2Fprop8%2Fdonation%2F8930%2F&amp;rft.pub=latimes.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-arstechnica-24"><span><b><a href="#cite_ref-arstechnica_24-0">^</a></b></span> <span><cite><a href="http://arstechnica.com/business/2014/03/gay-firefox-developers-boycott-mozilla-to-protest-ceo-hire/" rel="nofollow">"Gay Firefox developers boycott Mozilla to protest CEO hire [Updated] | Ars Technica"</a>. arstechnica.com<span>. Retrieved <span>2014-04-05</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Gay+Firefox+developers+boycott+Mozilla+to+protest+CEO+hire+%26%2391%3BUpdated%26%2393%3B+%26%23124%3B+Ars+Technica&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Farstechnica.com%2Fbusiness%2F2014%2F03%2Fgay-firefox-developers-boycott-mozilla-to-protest-ceo-hire%2F&amp;rft.pub=arstechnica.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-25"><span><b><a href="#cite_ref-25">^</a></b></span> <span><cite>Kelly Faircloth (9 April 2012). <a href="http://betabeat.com/2012/04/tech-celeb-makes-prop-8-donation-internet-goes-berserk/" rel="nofollow">"Tech Celeb Makes Prop-8 Donation; Internet Goes Berserk"</a>. <i>BetaBeat</i>. BetaBeat<span>. Retrieved <span>2014-04-28</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Tech+Celeb+Makes+Prop-8+Donation%3B+Internet+Goes+Berserk&amp;rft.au=Kelly+Faircloth&amp;rft.date=2012-04-09&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fbetabeat.com%2F2012%2F04%2Ftech-celeb-makes-prop-8-donation-internet-goes-berserk%2F&amp;rft.jtitle=BetaBeat&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"></span>
+ </span>
+ </li>
+ <li id="cite_note-26"><span><b><a href="#cite_ref-26">^</a></b></span> <span><cite><a href="http://i.huffpost.com/gen/1710681/thumbs/o-OKC-900.jpg" rel="nofollow">"Screenshot of OkCupid's statement towards Firefox users"</a>. huffingtonpost.com<span>. Retrieved <span>2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Screenshot+of+OkCupid%27s+statement+towards+Firefox+users&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fi.huffpost.com%2Fgen%2F1710681%2Fthumbs%2Fo-OKC-900.jpg&amp;rft.pub=huffingtonpost.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-27"><span><b><a href="#cite_ref-27">^</a></b></span> <span><cite><a href="https://blog.mozilla.org/blog/2014/04/05/faq-on-ceo-resignation/" rel="nofollow">"FAQ on CEO Resignation"</a>. <i>The Mozilla Blog</i><span>. Retrieved <span>2015-04-20</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=FAQ+on+CEO+Resignation&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fblog.mozilla.org%2Fblog%2F2014%2F04%2F05%2Ffaq-on-ceo-resignation%2F&amp;rft.jtitle=The+Mozilla+Blog&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"></span>
+ </span>
+ </li>
+ <li id="cite_note-28"><span><b><a href="#cite_ref-28">^</a></b></span> <span><cite>Baker, Mitchell (3 April 2014). <a href="https://blog.mozilla.org/blog/2014/04/03/brendan-eich-steps-down-as-mozilla-ceo/" rel="nofollow">"Brendan Eich Steps Down as Mozilla CEO"</a>. <i>mozilla blog</i>. Mozilla<span>. Retrieved <span>2014-04-04</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Brendan+Eich+Steps+Down+as+Mozilla+CEO&amp;rft.aufirst=Mitchell&amp;rft.aulast=Baker&amp;rft.date=2014-04-03&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fblog.mozilla.org%2Fblog%2F2014%2F04%2F03%2Fbrendan-eich-steps-down-as-mozilla-ceo%2F&amp;rft.jtitle=mozilla+blog&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"></span>
+ </span>
+ </li>
+ <li id="cite_note-29"><span><b><a href="#cite_ref-29">^</a></b></span> <span><cite><a href="http://www.opensecrets.org/indivs/search.php?name=Sam+Yagan&amp;cycle=All&amp;sort=R&amp;state=&amp;zip=&amp;employ=&amp;cand=&amp;submit=Submit+Query" rel="nofollow">"opensecrets.org listing of Sam Yagan's contributions to political candidates"</a>. opensecrets.org<span>. Retrieved <span>2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=opensecrets.org+listing+of+Sam+Yagan%27s+contributions+to+political+candidates&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.opensecrets.org%2Findivs%2Fsearch.php%3Fname%3DSam%2BYagan%26cycle%3DAll%26sort%3DR%26state%3D%26zip%3D%26employ%3D%26cand%3D%26submit%3DSubmit%2BQuery&amp;rft.pub=opensecrets.org&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-30"><span><b><a href="#cite_ref-30">^</a></b></span> <span><cite><a href="http://www.ontheissues.org/house/Chris_Cannon.htm#Civil_Rights" rel="nofollow">"ontheissues.org listing of votes cast by Chris Cannon"</a>. ontheissues.org<span>. Retrieved <span>2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=ontheissues.org+listing+of+votes+cast+by+Chris+Cannon&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.ontheissues.org%2Fhouse%2FChris_Cannon.htm%23Civil_Rights&amp;rft.pub=ontheissues.org&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-31"><span><b><a href="#cite_ref-31">^</a></b></span> <span><cite><a href="http://www.ontheissues.org/HouseVote/Party_2005-627.htm" rel="nofollow">"ontheissues.org listing of votes cast on the permanency of the Patriot Act"</a>. ontheissues.org<span>. Retrieved <span>2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=ontheissues.org+listing+of+votes+cast+on+the+permanency+of+the+Patriot+Act&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.ontheissues.org%2FHouseVote%2FParty_2005-627.htm&amp;rft.pub=ontheissues.org&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-32"><span><b><a href="#cite_ref-32">^</a></b></span> <span><cite><a href="http://www.ontheissues.org/house/Chris_Cannon_Homeland_Security.htm" rel="nofollow">"ontheissues.org: Chris Cannon on Homeland Security"</a>. ontheissues.org<span>. Retrieved <span>2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=ontheissues.org%3A+Chris+Cannon+on+Homeland+Security&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.ontheissues.org%2Fhouse%2FChris_Cannon_Homeland_Security.htm&amp;rft.pub=ontheissues.org&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-33"><span><b><a href="#cite_ref-33">^</a></b></span> <span><cite><a href="http://www.ontheissues.org/house/Chris_Cannon_Abortion.htm" rel="nofollow">"ontheissues.org: Chris Cannon on Abortion"</a>. ontheissues.org<span>. Retrieved <span>2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=ontheissues.org%3A+Chris+Cannon+on+Abortion&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.ontheissues.org%2Fhouse%2FChris_Cannon_Abortion.htm&amp;rft.pub=ontheissues.org&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-34"><span><b><a href="#cite_ref-34">^</a></b></span> <span><cite>Levintova, Hannah (7 April 2014). <a href="http://www.motherjones.com/mojo/2014/04/okcupid-ceo-donate-anti-gay-firefox" rel="nofollow">"OkCupid's CEO Donated to an Anti-Gay Campaign Once, Too"</a>. <i>Hanna Levintova article on motherjones.com</i>. motherjones.com<span>. Retrieved <span>2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=OkCupid%27s+CEO+Donated+to+an+Anti-Gay+Campaign+Once%2C+Too&amp;rft.aufirst=Hannah&amp;rft.aulast=Levintova&amp;rft.date=2014-04-07&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.motherjones.com%2Fmojo%2F2014%2F04%2Fokcupid-ceo-donate-anti-gay-firefox&amp;rft.jtitle=Hanna+Levintova+article+on+motherjones.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"></span>
+ </span>
+ </li>
+ <li id="cite_note-35"><span><b><a href="#cite_ref-35">^</a></b></span> <span><cite>Lee, Stephanie M. (8 April 2014). <a href="http://blog.sfgate.com/techchron/2014/04/08/okcupid-ceo-once-donated-to-anti-gay-politician/" rel="nofollow">"OKCupid CEO once donated to anti-gay politician"</a>. <i>Stephanie M. Lee's blog on sfgate.com</i>. sfgate.com<span>. Retrieved <span>2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=OKCupid+CEO+once+donated+to+anti-gay+politician&amp;rft.aufirst=Stephanie+M.&amp;rft.aulast=Lee&amp;rft.date=2014-04-08&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fblog.sfgate.com%2Ftechchron%2F2014%2F04%2F08%2Fokcupid-ceo-once-donated-to-anti-gay-politician%2F&amp;rft.jtitle=Stephanie+M.+Lee%27s+blog+on+sfgate.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"></span>
+ </span>
+ </li>
+ <li id="cite_note-uncrunched.com-36"><span>^ <a href="#cite_ref-uncrunched.com_36-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-uncrunched.com_36-1"><sup><i><b>b</b></i></sup></a></span> <span><cite><a href="http://uncrunched.com/2014/04/06/the-hypocrisy-of-sam-yagan-okcupid/" rel="nofollow">"The Hypocrisy Of Sam Yagan &amp; OkCupid"</a>. <i>uncrunched.com blog</i>. uncrunched.com. 6 April 2014<span>. Retrieved <span>2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=The+Hypocrisy+Of+Sam+Yagan+%26+OkCupid&amp;rft.date=2014-04-06&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Funcrunched.com%2F2014%2F04%2F06%2Fthe-hypocrisy-of-sam-yagan-okcupid%2F&amp;rft.jtitle=uncrunched.com+blog&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"></span>
+ </span>
+ </li>
+ <li id="cite_note-37"><span><b><a href="#cite_ref-37">^</a></b></span> <span><cite>Bellware, Kim (31 March 2014). <a href="http://www.huffingtonpost.com/2014/03/31/okcupid-mozilla_n_5065743.html" rel="nofollow">"OKCupid Publicly Rips Mozilla: 'We Wish Them Nothing But Failure<span>'</span>"</a>. <i>Kim Bellware article on huffingtonpost.com</i>. huffingtonpost.com<span>. Retrieved <span>2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=OKCupid+Publicly+Rips+Mozilla%3A+%27We+Wish+Them+Nothing+But+Failure%27&amp;rft.aufirst=Kim&amp;rft.aulast=Bellware&amp;rft.date=2014-03-31&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.huffingtonpost.com%2F2014%2F03%2F31%2Fokcupid-mozilla_n_5065743.html&amp;rft.jtitle=Kim+Bellware+article+on+huffingtonpost.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"></span>
+ </span>
+ </li>
+ <li id="cite_note-38"><span><b><a href="#cite_ref-38">^</a></b></span> <span><cite><a href="http://www.huffingtonpost.com/2014/03/27/mozilla-ceo-prop-8-_n_5042660.html" rel="nofollow">"Mozilla's Appointment Of Brendan Eich As CEO Sparks Controversy After Prop 8 Donation News Re-Emerges"</a>. <i>huffingtonpost.com article</i>. huffingtonpost.com. 27 March 2014<span>. Retrieved <span>2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Mozilla%27s+Appointment+Of+Brendan+Eich+As+CEO+Sparks+Controversy+After+Prop+8+Donation+News+Re-Emerges&amp;rft.date=2014-03-27&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.huffingtonpost.com%2F2014%2F03%2F27%2Fmozilla-ceo-prop-8-_n_5042660.html&amp;rft.jtitle=huffingtonpost.com+article&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"></span>
+ </span>
+ </li>
+ <li id="cite_note-39"><span><b><a href="#cite_ref-39">^</a></b></span> <span><cite>Eidelson, Josh (4 April 2014). <a href="http://www.salon.com/2014/04/04/okcupids_gay_rights_stunt_has_its_limits_taking_a_deeper_look_at_the_savvy_ploy/" rel="nofollow">"OkCupid's gay rights stunt has its limits: Taking a deeper look at the savvy ploy"</a>. <i>Josh Eidelson article on salon.com</i>. salon.com<span>. Retrieved <span>2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=OkCupid%99s+gay+rights+stunt+has+its+limits%3A+Taking+a+deeper+look+at+the+savvy+ploy&amp;rft.aufirst=Josh&amp;rft.aulast=Eidelson&amp;rft.date=2014-04-04&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.salon.com%2F2014%2F04%2F04%2Fokcupids_gay_rights_stunt_has_its_limits_taking_a_deeper_look_at_the_savvy_ploy%2F&amp;rft.jtitle=Josh+Eidelson+article+on+salon.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"></span>
+ </span>
+ </li>
+ <li id="cite_note-manifesto-40"><span>^ <a href="#cite_ref-manifesto_40-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-manifesto_40-1"><sup><i><b>b</b></i></sup></a></span> <span><cite><a href="http://www.mozilla.org/about/manifesto/" rel="nofollow">"Mozilla Manifesto"</a>. Mozilla.org<span>. Retrieved <span>2012-03-21</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Mozilla+Manifesto&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.mozilla.org%2Fabout%2Fmanifesto%2F&amp;rft.pub=Mozilla.org&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-41"><span><b><a href="#cite_ref-41">^</a></b></span> <span><cite><a href="https://www.mozilla.org/en-US/about/manifesto/details/" rel="nofollow">"The Mozilla Manifesto"</a><span>. Retrieved <span>24 July</span> 2015</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=The+Mozilla+Manifesto&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fwww.mozilla.org%2Fen-US%2Fabout%2Fmanifesto%2Fdetails%2F&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-42"><span><b><a href="#cite_ref-42">^</a></b></span> <span><cite><a href="https://web.archive.org/web/20101128150117/http://download-firefox.org/spread-firefox/gecko-layout-engine-and-mozilla-firefox/" rel="nofollow">"Gecko Layout Engine"</a>. download-firefox.org. July 17, 2008. Archived from <a href="http://download-firefox.org/spread-firefox/gecko-layout-engine-and-mozilla-firefox/" rel="nofollow">the original</a> on 2010-11-28<span>. Retrieved <span>2012-05-10</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Gecko+Layout+Engine&amp;rft.date=2008-07-17&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fdownload-firefox.org%2Fspread-firefox%2Fgecko-layout-engine-and-mozilla-firefox%2F&amp;rft.pub=download-firefox.org&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-w3counter1-43"><span><b><a href="#cite_ref-w3counter1_43-0">^</a></b></span> <span><cite><a href="http://www.w3counter.com/trends" rel="nofollow">"Web Browser Market Share Trends"</a>. <i>W3Counter</i>. Awio Web Services LLC<span>. Retrieved <span>2012-05-10</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Web+Browser+Market+Share+Trends&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.w3counter.com%2Ftrends&amp;rft.jtitle=W3Counter&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"></span>
+ </span>
+ </li>
+ <li id="cite_note-gs.statcounter.com-44"><span><b><a href="#cite_ref-gs.statcounter.com_44-0">^</a></b></span> <span><cite><a href="http://gs.statcounter.com" rel="nofollow">"Top 5 Browsers"</a>. <i>StatCounter Global Stats</i>. StatCounter<span>. Retrieved <span>2012-05-10</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Top+5+Browsers&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fgs.statcounter.com&amp;rft.jtitle=StatCounter+Global+Stats&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"></span>
+ </span>
+ </li>
+ <li id="cite_note-getclicky1-45"><span><b><a href="#cite_ref-getclicky1_45-0">^</a></b></span> <span><cite><a href="http://www.getclicky.com/marketshare/global/web-browsers/" rel="nofollow">"Web browsers (Global marketshare)"</a>. <i>Clicky</i>. Roxr Software Ltd<span>. Retrieved <span>2012-05-10</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Web+browsers+%28Global+marketshare%29&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.getclicky.com%2Fmarketshare%2Fglobal%2Fweb-browsers%2F&amp;rft.jtitle=Clicky&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"></span>
+ </span>
+ </li>
+ <li id="cite_note-46"><span><b><a href="#cite_ref-46">^</a></b></span> <span><cite><a href="http://fakehost/wiki/Ben_Goodger" title="Ben Goodger">Goodger, Ben</a> (February 6, 2006). <a href="https://web.archive.org/web/20110623034401/http://weblogs.mozillazine.org/ben/archives/009698.html" rel="nofollow">"Where Did Firefox Come From?"</a>. Inside Firefox. Archived from <a href="http://weblogs.mozillazine.org/ben/archives/009698.html" rel="nofollow">the original</a> on 2011-06-23<span>. Retrieved <span>2012-01-07</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.aufirst=Ben&amp;rft.aulast=Goodger&amp;rft.btitle=Where+Did+Firefox+Come+From%3F&amp;rft.date=2006-02-06&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fweblogs.mozillazine.org%2Fben%2Farchives%2F009698.html&amp;rft.pub=Inside+Firefox&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-47"><span><b><a href="#cite_ref-47">^</a></b></span> <span><cite><a href="https://web.archive.org/web/20070914035447/http://www.ibphoenix.com/main.nfs?a=ibphoenix&amp;page=ibp_Mozilla0" rel="nofollow">"Mozilla browser becomes Firebird"</a>. IBPhoenix. Archived from <a href="http://www.ibphoenix.com/main.nfs?a=ibphoenix&amp;page=ibp_Mozilla0" rel="nofollow">the original</a> on 2007-09-14<span>. Retrieved <span>2013-06-10</span></span>. <q>We at IBPhoenix think that having a browser and a database with the same name in the same space will confuse the market, especially as browsers and databases are often used in the same applications</q></cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Mozilla+browser+becomes+Firebird&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.ibphoenix.com%2Fmain.nfs%3Fa%3Dibphoenix%26page%3Dibp_Mozilla0&amp;rft.pub=IBPhoenix&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-48"><span><b><a href="#cite_ref-48">^</a></b></span> <span><cite>Festa, Paul (May 6, 2003). <a href="http://news.cnet.com/2100-1032_3-1000146.html" rel="nofollow">"Mozilla's Firebird gets wings clipped"</a>. <a href="http://fakehost/wiki/CNET_Networks" title="CNET Networks">CNET</a><span>. Retrieved <span>2007-01-30</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.aufirst=Paul&amp;rft.aulast=Festa&amp;rft.btitle=Mozilla%27s+Firebird+gets+wings+clipped&amp;rft.date=2003-05-06&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fnews.cnet.com%2F2100-1032_3-1000146.html&amp;rft.pub=CNET&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-49"><span><b><a href="#cite_ref-49">^</a></b></span> <span><cite>Festa, Paul (February 9, 2004). <a href="http://news.cnet.com/2100-7344-5156101.html" rel="nofollow">"Mozilla holds 'fire' in naming fight"</a>. CNET News<span>. Retrieved <span>2007-01-24</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.aufirst=Paul&amp;rft.aulast=Festa&amp;rft.btitle=Mozilla+holds+%27fire%27+in+naming+fight&amp;rft.date=2004-02-09&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fnews.cnet.com%2F2100-7344-5156101.html&amp;rft.pub=CNET+News&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-50"><span><b><a href="#cite_ref-50">^</a></b></span> <span><cite><a href="http://www.mozilla.org/en-US/firefox/mobile/features/" rel="nofollow">"Mobile features"</a>. Mozilla<span>. Retrieved <span>2012-06-26</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Mobile+features&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.mozilla.org%2Fen-US%2Ffirefox%2Fmobile%2Ffeatures%2F&amp;rft.pub=Mozilla&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-51"><span><b><a href="#cite_ref-51">^</a></b></span> <span><cite><a href="https://wiki.mozilla.org/Mobile/Platforms/Android#System_Requirements" rel="nofollow">"Mobile System Requirements"</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Mobile+System+Requirements&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fwiki.mozilla.org%2FMobile%2FPlatforms%2FAndroid%23System_Requirements&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-52"><span><b><a href="#cite_ref-52">^</a></b></span> <span><cite><a href="https://support.mozilla.org/en-US/kb/will-firefox-work-my-mobile-device" rel="nofollow">"Firefox Mobile supported devices"</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Firefox+Mobile+supported+devices&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fsupport.mozilla.org%2Fen-US%2Fkb%2Fwill-firefox-work-my-mobile-device&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-53"><span><b><a href="#cite_ref-53">^</a></b></span> <span><cite><a href="http://www.mirror.co.uk/news/technology/2009/11/09/mozilla-rules-out-firefox-for-iphone-and-blackberry-115875-21809563/" rel="nofollow">"Mozilla rules out Firefox for iPhone and BlackBerry"</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Mozilla+rules+out+Firefox+for+iPhone+and+BlackBerry&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.mirror.co.uk%2Fnews%2Ftechnology%2F2009%2F11%2F09%2Fmozilla-rules-out-firefox-for-iphone-and-blackberry-115875-21809563%2F&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-54"><span><b><a href="#cite_ref-54">^</a></b></span> <span><cite><a href="http://www.mozilla.org/firefox/os/" rel="nofollow">"Boot to Gecko Project"</a>. Mozilla. March 2012<span>. Retrieved <span>2012-03-30</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Boot+to+Gecko+Project&amp;rft.date=2012-03&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.mozilla.org%2Ffirefox%2Fos%2F&amp;rft.pub=Mozilla&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-55"><span><b><a href="#cite_ref-55">^</a></b></span> <span><cite><a href="https://www.mozilla.org/en-US/firefox/os/devices/" rel="nofollow">"Firefox OS - Devices &amp; Availability"</a>. <i>Mozilla</i><span>. Retrieved <span>2015-12-30</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Firefox+OS+-+Devices+%26+Availability&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fwww.mozilla.org%2Fen-US%2Ffirefox%2Fos%2Fdevices%2F&amp;rft.jtitle=Mozilla&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"></span>
+ </span>
+ </li>
+ <li id="cite_note-56"><span><b><a href="#cite_ref-56">^</a></b></span> <span><cite><a href="https://blog.lizardwrangler.com/2012/07/06/thunderbird-stability-and-community-innovation/" rel="nofollow">"Thunderbird: Stability and Community Innovation | Mitchell's Blog"</a>. <i>blog.lizardwrangler.com</i><span>. Retrieved <span>2015-04-20</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Thunderbird%3A+Stability+and+Community+Innovation+%7C+Mitchell%27s+Blog&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fblog.lizardwrangler.com%2F2012%2F07%2F06%2Fthunderbird-stability-and-community-innovation%2F&amp;rft.jtitle=blog.lizardwrangler.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"></span>
+ </span>
+ </li>
+ <li id="cite_note-57"><span><b><a href="#cite_ref-57">^</a></b></span> <span><cite><a href="https://lwn.net/Articles/165080/" rel="nofollow">"Two discontinued browsers"</a>. LWN.net. 21 December 2005<span>. Retrieved <span>2012-08-19</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Two+discontinued+browsers&amp;rft.date=2005-12-21&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Flwn.net%2FArticles%2F165080%2F&amp;rft.pub=LWN.net&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-58"><span><b><a href="#cite_ref-58">^</a></b></span> <span><cite><a href="http://home.kairo.at/blog/2007-06/seamonkey_r_trademarks_registered" rel="nofollow">"SeaMonkey trademarks registered!"</a>. kairo.at. 2007-05-22<span>. Retrieved <span>2013-06-10</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=SeaMonkey+trademarks+registered%21&amp;rft.date=2007-05-22&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fhome.kairo.at%2Fblog%2F2007-06%2Fseamonkey_r_trademarks_registered&amp;rft.pub=kairo.at&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-59"><span><b><a href="#cite_ref-59">^</a></b></span> <span><cite><a href="http://www.bugzilla.org/installation-list/" rel="nofollow">"Bugzilla Installation List"</a><span>. Retrieved <span>2014-09-18</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Bugzilla+Installation+List&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.bugzilla.org%2Finstallation-list%2F&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-BE201106-60"><span>^ <a href="#cite_ref-BE201106_60-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-BE201106_60-1"><sup><i><b>b</b></i></sup></a></span> <span><cite><a href="http://fakehost/wiki/Brendan_Eich" title="Brendan Eich">Eich, Brendan</a> (21 June 2011). <a href="http://brendaneich.com/2011/06/new-javascript-engine-module-owner/" rel="nofollow">"New JavaScript Engine Module Owner"</a>. BrendanEich.com.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.aufirst=Brendan&amp;rft.aulast=Eich&amp;rft.btitle=New+JavaScript+Engine+Module+Owner&amp;rft.date=2011-06-21&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fbrendaneich.com%2F2011%2F06%2Fnew-javascript-engine-module-owner%2F&amp;rft.pub=BrendanEich.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-61"><span><b><a href="#cite_ref-61">^</a></b></span> <span><cite><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=759422#c0" rel="nofollow">"Bug 759422 - Remove use of e4x in account creation"</a>. Bugzilla@Mozilla. 2012-08-17<span>. Retrieved <span>2012-08-18</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Bug+759422+-+Remove+use+of+e4x+in+account+creation&amp;rft.date=2012-08-17&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fbugzilla.mozilla.org%2Fshow_bug.cgi%3Fid%3D759422%23c0&amp;rft.pub=Bugzilla%40Mozilla&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-62"><span><b><a href="#cite_ref-62">^</a></b></span> <span><cite><a href="https://developer.mozilla.org/en-US/docs/SpiderMonkey" rel="nofollow">"SpiderMonkey"</a>. Mozilla Developer Network. 2012-08-15<span>. Retrieved <span>2012-08-18</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=SpiderMonkey&amp;rft.date=2012-08-15&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fdeveloper.mozilla.org%2Fen-US%2Fdocs%2FSpiderMonkey&amp;rft.pub=Mozilla+Developer+Network&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-63"><span><b><a href="#cite_ref-63">^</a></b></span> <span><cite><a href="http://www.mozilla.org/rhino/history.html" rel="nofollow">"Rhino History"</a>. <a href="http://fakehost/wiki/Mozilla_Foundation" title="Mozilla Foundation">Mozilla Foundation</a><span>. Retrieved <span>2008-03-20</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Rhino+History&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.mozilla.org%2Frhino%2Fhistory.html&amp;rft.pub=Mozilla+Foundation&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-64"><span><b><a href="#cite_ref-64">^</a></b></span> <span><cite><a href="https://github.com/servo/servo/wiki/Roadmap" rel="nofollow">"Roadmap"</a><span>. Retrieved <span>10 May</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Roadmap&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fgithub.com%2Fservo%2Fservo%2Fwiki%2FRoadmap&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-65"><span><b><a href="#cite_ref-65">^</a></b></span> <span><cite>Larabel, Michael. <a href="https://www.phoronix.com/scan.php?page=news_item&amp;px=Servo-9-May-2016" rel="nofollow">"Servo Continues Making Progress For Shipping Components In Gecko, Browser.html"</a>. <i>Phoronix.com</i><span>. Retrieved <span>10 May</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Servo+Continues+Making+Progress+For+Shipping+Components+In+Gecko%2C+Browser.html&amp;rft.aufirst=Michael&amp;rft.aulast=Larabel&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fwww.phoronix.com%2Fscan.php%3Fpage%3Dnews_item%26px%3DServo-9-May-2016&amp;rft.jtitle=Phoronix.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"></span>
+ </span>
+ </li>
+ <li id="cite_note-66"><span><b><a href="#cite_ref-66">^</a></b></span> <span><cite><a href="https://mozvr.com" rel="nofollow">"Mozilla VR"</a>. <i>Mozilla VR</i><span>. Retrieved <span>2016-10-27</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Mozilla+VR&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fmozvr.com&amp;rft.jtitle=Mozilla+VR&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"></span>
+ </span>
+ </li>
+ <li id="cite_note-67"><span><b><a href="#cite_ref-67">^</a></b></span> <span><cite><a href="https://login.persona.org/" rel="nofollow"><i>Persona</i></a>, Mozilla</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Persona&amp;rft.genre=book&amp;rft_id=https%3A%2F%2Flogin.persona.org%2F&amp;rft.pub=Mozilla&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-68"><span><b><a href="#cite_ref-68">^</a></b></span> <span><cite><a href="https://developer.mozilla.org/en-US/Persona" rel="nofollow">"Persona"</a>. <i>Mozilla Developer Network</i><span>. Retrieved <span>2016-10-27</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Persona&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fdeveloper.mozilla.org%2Fen-US%2FPersona&amp;rft.jtitle=Mozilla+Developer+Network&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"></span>
+ </span>
+ </li>
+ <li id="cite_note-69"><span><b><a href="#cite_ref-69">^</a></b></span> <span><cite><a href="https://webmaker.org/en-US/about/" rel="nofollow"><i>About Mozilla Webmaker</i></a>, Mozilla</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=About+Mozilla+Webmaker&amp;rft.genre=book&amp;rft_id=https%3A%2F%2Fwebmaker.org%2Fen-US%2Fabout%2F&amp;rft.pub=Mozilla&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-lifehacker.com-70"><span>^ <a href="#cite_ref-lifehacker.com_70-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-lifehacker.com_70-1"><sup><i><b>b</b></i></sup></a></span> <span><cite>Alan Henry. <a href="http://lifehacker.com/mozilla-webmaker-teaches-you-how-to-build-web-sites-ap-1553277374" rel="nofollow">"Mozilla Webmaker Teaches You to Build Web Sites, Apps, and More"</a>. <i>Lifehacker</i>. Gawker Media.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Mozilla+Webmaker+Teaches+You+to+Build+Web+Sites%2C+Apps%2C+and+More&amp;rft.au=Alan+Henry&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Flifehacker.com%2Fmozilla-webmaker-teaches-you-how-to-build-web-sites-ap-1553277374&amp;rft.jtitle=Lifehacker&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal"></span>
+ </span>
+ </li>
+ <li id="cite_note-71"><span><b><a href="#cite_ref-71">^</a></b></span> <span><cite><a href="https://wiki.mozilla.org/Air_Mozilla" rel="nofollow">"Air Mozilla"</a>. Mozilla Wiki.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Air+Mozilla&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fwiki.mozilla.org%2FAir_Mozilla&amp;rft.pub=Mozilla+Wiki&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ <li id="cite_note-72"><span><b><a href="#cite_ref-72">^</a></b></span> <span><cite><a href="https://blog.mozilla.org/mrz/2012/04/17/air-mozilla-reboot-phase-i/" rel="nofollow">"Air Mozilla Reboot, Phase I"</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Air+Mozilla+Reboot%2C+Phase+I&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fblog.mozilla.org%2Fmrz%2F2012%2F04%2F17%2Fair-mozilla-reboot-phase-i%2F&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook"></span>
+ </span>
+ </li>
+ </ol></div>
+ <p><a href="http://www.techsive.com/2014/09/how-to-resume-failed-downloads-in.html" rel="nofollow">Constant downloads failure in firefox</a></p>
+ <h2><span id="External_links">External links</span><span><span>[</span><a href="http://fakehost/w/index.php?title=Mozilla&amp;action=edit&amp;section=36" title="Edit section: External links">edit</a><span>]</span></span>
+ </h2>
+ <table readabilityDataTable="0" role="presentation"><tr><td>
+ <a href="http://fakehost/wiki/File:Commons-logo.svg"><img alt="" data-file-height="1376" data-file-width="1024" height="40" src="http://upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/30px-Commons-logo.svg.png" srcset="//upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/45px-Commons-logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/59px-Commons-logo.svg.png 2x" width="30"></img></a>
+ </td>
+ <td>Wikimedia Commons has media related to <i><b><a href="https://commons.wikimedia.org/wiki/Category:Mozilla" title="commons:Category:Mozilla">Mozilla</a></b></i>.</td>
+ </tr></table><ul><li><span><span><a href="http://mozilla.org/" rel="nofollow">Official website</a></span></span>, including <a href="https://www.mozilla.org/en-US/about/manifesto/" rel="nofollow">the Mozilla Manifesto</a></li>
+ <li><a href="https://wiki.mozilla.org/" rel="nofollow">Mozilla Wiki</a>(<a href="https://wiki.mozilla.org/Timeline" title="mozillawiki:Timeline">Major time line of community development</a>)</li>
+ <li><a href="http://hg.mozilla.org/" rel="nofollow">Mozilla Mercurial Repository</a></li>
+ </ul>
+
+
+
+
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wikipedia/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wikipedia/source.html
new file mode 100644
index 000000000..1a1338dfb
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wikipedia/source.html
@@ -0,0 +1,1652 @@
+<!DOCTYPE html>
+<html class="client-nojs" lang="en" dir="ltr">
+
+<head>
+ <meta charset="UTF-8" />
+ <title>Mozilla - Wikipedia</title>
+ <script>
+ document.documentElement.className = document.documentElement.className.replace(/(^|\s)client-nojs(\s|$)/, "$1client-js$2");
+ </script>
+ <script>
+ (window.RLQ = window.RLQ || []).push(function() {
+ mw.config.set({
+ "wgCanonicalNamespace": "",
+ "wgCanonicalSpecialPageName": false,
+ "wgNamespaceNumber": 0,
+ "wgPageName": "Mozilla",
+ "wgTitle": "Mozilla",
+ "wgCurRevisionId": 746574460,
+ "wgRevisionId": 746574460,
+ "wgArticleId": 36754915,
+ "wgIsArticle": true,
+ "wgIsRedirect": false,
+ "wgAction": "view",
+ "wgUserName": null,
+ "wgUserGroups": ["*"],
+ "wgCategories": ["CS1 maint: Unfit url", "All articles with unsourced statements", "Articles with unsourced statements from August 2015", "Articles containing potentially dated statements from April 2015", "All articles containing potentially dated statements", "Articles with unsourced statements from July 2015", "Commons category with page title same as on Wikidata", "Mozilla", "Netscape", "Projects established in 1998"],
+ "wgBreakFrames": false,
+ "wgPageContentLanguage": "en",
+ "wgPageContentModel": "wikitext",
+ "wgSeparatorTransformTable": ["", ""],
+ "wgDigitTransformTable": ["", ""],
+ "wgDefaultDateFormat": "dmy",
+ "wgMonthNames": ["", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
+ "wgMonthNamesShort": ["", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
+ "wgRelevantPageName": "Mozilla",
+ "wgRelevantArticleId": 36754915,
+ "wgRequestId": "WBL2vApAME0AAEo9USUAAAIO",
+ "wgIsProbablyEditable": true,
+ "wgRestrictionEdit": [],
+ "wgRestrictionMove": [],
+ "wgFlaggedRevsParams": {
+ "tags": {
+ "status": {
+ "levels": 1,
+ "quality": 2,
+ "pristine": 3
+ }
+ }
+ },
+ "wgStableRevisionId": null,
+ "wgWikiEditorEnabledModules": {
+ "toolbar": true,
+ "dialogs": true,
+ "preview": false,
+ "publish": false
+ },
+ "wgBetaFeaturesFeatures": [],
+ "wgMediaViewerOnClick": true,
+ "wgMediaViewerEnabledByDefault": true,
+ "wgVisualEditor": {
+ "pageLanguageCode": "en",
+ "pageLanguageDir": "ltr",
+ "usePageImages": true,
+ "usePageDescriptions": true
+ },
+ "wgPreferredVariant": "en",
+ "wgMFDisplayWikibaseDescriptions": {
+ "search": true,
+ "nearby": true,
+ "watchlist": true,
+ "tagline": false
+ },
+ "wgRelatedArticles": null,
+ "wgRelatedArticlesUseCirrusSearch": true,
+ "wgRelatedArticlesOnlyUseCirrusSearch": false,
+ "wgULSCurrentAutonym": "English",
+ "wgNoticeProject": "wikipedia",
+ "wgCentralNoticeCookiesToDelete": [],
+ "wgCentralNoticeCategoriesUsingLegacy": ["Fundraising", "fundraising"],
+ "wgCategoryTreePageCategoryOptions": "{\"mode\":0,\"hideprefix\":20,\"showcount\":true,\"namespaces\":false}",
+ "wgWikibaseItemId": "Q9661",
+ "wgCentralAuthMobileDomain": false,
+ "wgVisualEditorToolbarScrollOffset": 0,
+ "wgEditSubmitButtonLabelPublish": false
+ });
+ mw.loader.state({
+ "ext.globalCssJs.user.styles": "ready",
+ "ext.globalCssJs.site.styles": "ready",
+ "site.styles": "ready",
+ "noscript": "ready",
+ "user.styles": "ready",
+ "user.cssprefs": "ready",
+ "user": "ready",
+ "user.options": "loading",
+ "user.tokens": "loading",
+ "ext.cite.styles": "ready",
+ "wikibase.client.init": "ready",
+ "ext.visualEditor.desktopArticleTarget.noscript": "ready",
+ "ext.uls.interlanguage": "ready",
+ "ext.wikimediaBadges": "ready",
+ "mediawiki.legacy.shared": "ready",
+ "mediawiki.legacy.commonPrint": "ready",
+ "mediawiki.sectionAnchor": "ready",
+ "mediawiki.skinning.interface": "ready",
+ "skins.vector.styles": "ready",
+ "ext.globalCssJs.user": "ready",
+ "ext.globalCssJs.site": "ready"
+ });
+ mw.loader.implement("user.options@0j3lz3q", function($, jQuery, require, module) {
+ mw.user.options.set({
+ "variant": "en"
+ });
+ });
+ mw.loader.implement("user.tokens@1dqfd7l", function($, jQuery, require, module) {
+ mw.user.tokens.set({
+ "editToken": "+\\",
+ "patrolToken": "+\\",
+ "watchToken": "+\\",
+ "csrfToken": "+\\"
+ }); /*@nomin*/ ;
+
+ });
+ mw.loader.load(["mediawiki.page.startup", "mediawiki.legacy.wikibits", "ext.centralauth.centralautologin", "mmv.head", "ext.visualEditor.desktopArticleTarget.init", "ext.uls.interface", "ext.quicksurveys.init", "skins.vector.js"]);
+ });
+ </script>
+ <link rel="stylesheet" href="/w/load.php?debug=false&amp;lang=en&amp;modules=ext.cite.styles%7Cext.gadget.ReferenceTooltips%2Cfeatured-articles-links%2Cteahouse%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediaBadges%7Cmediawiki.legacy.commonPrint%2Cshared%7Cmediawiki.sectionAnchor%7Cmediawiki.skinning.interface%7Cskins.vector.styles%7Cwikibase.client.init&amp;only=styles&amp;skin=vector" />
+ <script async="" src="/w/load.php?debug=false&amp;lang=en&amp;modules=startup&amp;only=scripts&amp;skin=vector"></script>
+ <meta name="ResourceLoaderDynamicStyles" content="" />
+ <link rel="stylesheet" href="/w/load.php?debug=false&amp;lang=en&amp;modules=site.styles&amp;only=styles&amp;skin=vector" />
+ <meta name="generator" content="MediaWiki 1.28.0-wmf.23" />
+ <meta name="referrer" content="origin-when-cross-origin" />
+ <link rel="alternate" href="android-app://org.wikipedia/http/en.m.wikipedia.org/wiki/Mozilla" />
+ <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/w/index.php?title=Mozilla&amp;action=edit" />
+ <link rel="edit" title="Edit this page" href="/w/index.php?title=Mozilla&amp;action=edit" />
+ <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png" />
+ <link rel="shortcut icon" href="/static/favicon/wikipedia.ico" />
+ <link rel="search" type="application/opensearchdescription+xml" href="/w/opensearch_desc.php" title="Wikipedia (en)" />
+ <link rel="EditURI" type="application/rsd+xml" href="//en.wikipedia.org/w/api.php?action=rsd" />
+ <link rel="copyright" href="//creativecommons.org/licenses/by-sa/3.0/" />
+ <link rel="canonical" href="https://en.wikipedia.org/wiki/Mozilla" />
+ <link rel="dns-prefetch" href="//login.wikimedia.org" />
+ <link rel="dns-prefetch" href="//meta.wikimedia.org" />
+</head>
+
+<body class="mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Mozilla rootpage-Mozilla skin-vector action-view feature-footer-v2">
+ <div id="mw-page-base" class="noprint"></div>
+ <div id="mw-head-base" class="noprint"></div>
+ <div id="content" class="mw-body" role="main">
+ <a id="top"></a>
+
+ <div id="siteNotice">
+ <!-- CentralNotice -->
+ </div>
+ <div class="mw-indicators">
+ </div>
+ <h1 id="firstHeading" class="firstHeading" lang="en">Mozilla</h1>
+ <div id="bodyContent" class="mw-body-content">
+ <div id="siteSub">From Wikipedia, the free encyclopedia</div>
+ <div id="contentSub"></div>
+ <div id="jump-to-nav" class="mw-jump">
+ Jump to: <a href="#mw-head">navigation</a>, <a href="#p-search">search</a>
+ </div>
+ <div id="mw-content-text" lang="en" dir="ltr" class="mw-content-ltr">
+ <div role="note" class="hatnote">See also: <a href="/wiki/Mozilla_Foundation" title="Mozilla Foundation">Mozilla Foundation</a> and <a href="/wiki/Mozilla_Corporation" title="Mozilla Corporation">Mozilla Corporation</a></div>
+ <table class="infobox vcard" style="width:22em">
+ <caption class="fn org">Mozilla</caption>
+ <tr>
+ <td colspan="2" class="logo" style="text-align:center">
+ <a href="/wiki/File:Mozilla_dinosaur_head_logo.png" class="image"><img alt="Mozilla dinosaur head logo.png" src="//upload.wikimedia.org/wikipedia/commons/thumb/5/5c/Mozilla_dinosaur_head_logo.png/200px-Mozilla_dinosaur_head_logo.png" width="200" height="143" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/5/5c/Mozilla_dinosaur_head_logo.png/300px-Mozilla_dinosaur_head_logo.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/5/5c/Mozilla_dinosaur_head_logo.png/400px-Mozilla_dinosaur_head_logo.png 2x" data-file-width="1300" data-file-height="929" /></a>
+ </td>
+ </tr>
+ <tr>
+ <th scope="row" style="padding-right:0.5em;">Industry</th>
+ <td class="category" style="line-height:1.35em;"><a href="/wiki/Open-source_software" title="Open-source software">Open-source software</a></td>
+ </tr>
+ <tr>
+ <th scope="row" style="padding-right:0.5em;">Founded</th>
+ <td style="line-height:1.35em;">February&#160;28, 1998<span class="noprint">; 18 years ago</span><span style="display:none">&#160;(<span class="bday dtstart published updated">1998-02-28</span>)</span>
+ </td>
+ </tr>
+ <tr>
+ <th scope="row" style="padding-right:0.5em;">Founder</th>
+ <td class="agent" style="line-height:1.35em;"><a href="/wiki/Netscape" title="Netscape">Netscape Communications Corporation</a></td>
+ </tr>
+ <tr>
+ <th scope="row" style="padding-right:0.5em;">Products</th>
+ <td style="line-height:1.35em;"><a href="/wiki/Mozilla_Application_Suite" title="Mozilla Application Suite">Mozilla Application Suite</a></td>
+ </tr>
+ <tr>
+ <th scope="row" style="padding-right:0.5em;"><a href="/wiki/Division_(business)" title="Division (business)">Divisions</a></th>
+ <td style="line-height:1.35em;">
+ <div class="plainlist">
+ <ul>
+ <li><a href="/wiki/Mozilla_Corporation" title="Mozilla Corporation">Mozilla Corporation</a></li>
+ <li><a href="/wiki/Mozilla_Foundation" title="Mozilla Foundation">Mozilla Foundation</a></li>
+ </ul>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <th scope="row" style="padding-right:0.5em;">Website</th>
+ <td style="line-height:1.35em;"><span class="url"><a rel="nofollow" class="external text" href="http://mozilla.org/,%20https://www.mozilla.org/tr/">mozilla<wbr />.org<wbr />/,%20https:<wbr />//www<wbr />.mozilla<wbr />.org<wbr />/tr<wbr />/</a></span></td>
+ </tr>
+ </table>
+ <p><b>Mozilla</b> is a <a href="/wiki/Free_software" title="Free software">free-software</a> community, created in 1998 by members of <a href="/wiki/Netscape" title="Netscape">Netscape</a>. The Mozilla community uses, develops, spreads and supports Mozilla products, thereby promoting exclusively free software and open standards, with only minor exceptions.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup> The community is supported institutionally by the <a href="/wiki/Mozilla_Foundation" title="Mozilla Foundation">Mozilla Foundation</a> and its tax-paying subsidiary, the <a href="/wiki/Mozilla_Corporation" title="Mozilla Corporation">Mozilla Corporation</a>.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2">[2]</a></sup></p>
+ <p><a href="/wiki/List_of_Mozilla_products" title="List of Mozilla products">Mozilla produces many products</a> such as the <a href="/wiki/Firefox" title="Firefox">Firefox</a> web browser, <a href="/wiki/Mozilla_Thunderbird" title="Mozilla Thunderbird">Thunderbird</a> e-mail client, <a href="/wiki/Firefox_Mobile" class="mw-redirect" title="Firefox Mobile">Firefox Mobile</a> web browser, <a href="/wiki/Firefox_OS" title="Firefox OS">Firefox OS</a> mobile operating system, <a href="/wiki/Bugzilla" title="Bugzilla">Bugzilla</a> bug tracking system and other projects.</p>
+ <p></p>
+ <div id="toc" class="toc">
+ <div id="toctitle">
+ <h2>Contents</h2>
+ </div>
+ <ul>
+ <li class="toclevel-1 tocsection-1"><a href="#History"><span class="tocnumber">1</span> <span class="toctext">History</span></a>
+ <ul>
+ <li class="toclevel-2 tocsection-2"><a href="#Eich_CEO_promotion_controversy"><span class="tocnumber">1.1</span> <span class="toctext">Eich CEO promotion controversy</span></a></li>
+ </ul>
+ </li>
+ <li class="toclevel-1 tocsection-3"><a href="#Values"><span class="tocnumber">2</span> <span class="toctext">Values</span></a>
+ <ul>
+ <li class="toclevel-2 tocsection-4"><a href="#Pledge"><span class="tocnumber">2.1</span> <span class="toctext">Pledge</span></a></li>
+ </ul>
+ </li>
+ <li class="toclevel-1 tocsection-5"><a href="#Software"><span class="tocnumber">3</span> <span class="toctext">Software</span></a>
+ <ul>
+ <li class="toclevel-2 tocsection-6"><a href="#Firefox"><span class="tocnumber">3.1</span> <span class="toctext">Firefox</span></a></li>
+ <li class="toclevel-2 tocsection-7"><a href="#Firefox_Mobile"><span class="tocnumber">3.2</span> <span class="toctext">Firefox Mobile</span></a></li>
+ <li class="toclevel-2 tocsection-8"><a href="#Firefox_OS"><span class="tocnumber">3.3</span> <span class="toctext">Firefox OS</span></a></li>
+ <li class="toclevel-2 tocsection-9"><a href="#Thunderbird"><span class="tocnumber">3.4</span> <span class="toctext">Thunderbird</span></a></li>
+ <li class="toclevel-2 tocsection-10"><a href="#SeaMonkey"><span class="tocnumber">3.5</span> <span class="toctext">SeaMonkey</span></a></li>
+ <li class="toclevel-2 tocsection-11"><a href="#Bugzilla"><span class="tocnumber">3.6</span> <span class="toctext">Bugzilla</span></a></li>
+ <li class="toclevel-2 tocsection-12"><a href="#Components"><span class="tocnumber">3.7</span> <span class="toctext">Components</span></a>
+ <ul>
+ <li class="toclevel-3 tocsection-13"><a href="#NSS"><span class="tocnumber">3.7.1</span> <span class="toctext">NSS</span></a></li>
+ <li class="toclevel-3 tocsection-14"><a href="#SpiderMonkey"><span class="tocnumber">3.7.2</span> <span class="toctext">SpiderMonkey</span></a></li>
+ <li class="toclevel-3 tocsection-15"><a href="#Rhino"><span class="tocnumber">3.7.3</span> <span class="toctext">Rhino</span></a></li>
+ <li class="toclevel-3 tocsection-16"><a href="#Gecko"><span class="tocnumber">3.7.4</span> <span class="toctext">Gecko</span></a></li>
+ <li class="toclevel-3 tocsection-17"><a href="#Rust"><span class="tocnumber">3.7.5</span> <span class="toctext">Rust</span></a></li>
+ <li class="toclevel-3 tocsection-18"><a href="#XULRunner"><span class="tocnumber">3.7.6</span> <span class="toctext">XULRunner</span></a></li>
+ <li class="toclevel-3 tocsection-19"><a href="#pdf.js"><span class="tocnumber">3.7.7</span> <span class="toctext">pdf.js</span></a></li>
+ <li class="toclevel-3 tocsection-20"><a href="#Shumway"><span class="tocnumber">3.7.8</span> <span class="toctext">Shumway</span></a></li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li class="toclevel-1 tocsection-21"><a href="#Other_activities"><span class="tocnumber">4</span> <span class="toctext">Other activities</span></a>
+ <ul>
+ <li class="toclevel-2 tocsection-22"><a href="#Mozilla_VR"><span class="tocnumber">4.1</span> <span class="toctext">Mozilla VR</span></a></li>
+ <li class="toclevel-2 tocsection-23"><a href="#Mozilla_Persona"><span class="tocnumber">4.2</span> <span class="toctext">Mozilla Persona</span></a></li>
+ <li class="toclevel-2 tocsection-24"><a href="#Mozilla_Location_Service"><span class="tocnumber">4.3</span> <span class="toctext">Mozilla Location Service</span></a></li>
+ <li class="toclevel-2 tocsection-25"><a href="#Webmaker"><span class="tocnumber">4.4</span> <span class="toctext">Webmaker</span></a></li>
+ <li class="toclevel-2 tocsection-26"><a href="#Mozilla_Developer_Network"><span class="tocnumber">4.5</span> <span class="toctext">Mozilla Developer Network</span></a></li>
+ </ul>
+ </li>
+ <li class="toclevel-1 tocsection-27"><a href="#Community"><span class="tocnumber">5</span> <span class="toctext">Community</span></a>
+ <ul>
+ <li class="toclevel-2 tocsection-28"><a href="#Local_communities"><span class="tocnumber">5.1</span> <span class="toctext">Local communities</span></a></li>
+ <li class="toclevel-2 tocsection-29"><a href="#Mozilla_Reps"><span class="tocnumber">5.2</span> <span class="toctext">Mozilla Reps</span></a></li>
+ <li class="toclevel-2 tocsection-30"><a href="#Conferences_and_events"><span class="tocnumber">5.3</span> <span class="toctext">Conferences and events</span></a>
+ <ul>
+ <li class="toclevel-3 tocsection-31"><a href="#Mozilla_Festival"><span class="tocnumber">5.3.1</span> <span class="toctext">Mozilla Festival</span></a></li>
+ <li class="toclevel-3 tocsection-32"><a href="#MozCamps"><span class="tocnumber">5.3.2</span> <span class="toctext">MozCamps</span></a></li>
+ <li class="toclevel-3 tocsection-33"><a href="#Mozilla_Summit"><span class="tocnumber">5.3.3</span> <span class="toctext">Mozilla Summit</span></a></li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li class="toclevel-1 tocsection-34"><a href="#See_also"><span class="tocnumber">6</span> <span class="toctext">See also</span></a></li>
+ <li class="toclevel-1 tocsection-35"><a href="#References"><span class="tocnumber">7</span> <span class="toctext">References</span></a></li>
+ <li class="toclevel-1 tocsection-36"><a href="#External_links"><span class="tocnumber">8</span> <span class="toctext">External links</span></a></li>
+ </ul>
+ </div>
+ <p></p>
+ <h2><span class="mw-headline" id="History">History</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Mozilla&amp;action=edit&amp;section=1" title="Edit section: History">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </h2>
+ <p>On January 23, 1998, Netscape made two announcements: first, that <a href="/wiki/Netscape_Communicator" title="Netscape Communicator">Netscape Communicator</a> will be free; second, that the source code will also be free.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3">[3]</a></sup> One day later, <a href="/wiki/Jamie_Zawinski" title="Jamie Zawinski">Jamie Zawinski</a> from Netscape registered <span style="font-family: monospace, monospace;">mozilla.org</span>.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4">[4]</a></sup> The project was named Mozilla after the original code name of the <a href="/wiki/Netscape_Navigator" title="Netscape Navigator">Netscape Navigator</a> browser which is a blending of "<a href="/wiki/Mosaic_(web_browser)" title="Mosaic (web browser)">Mosaic</a> and <a href="/wiki/Godzilla" title="Godzilla">Godzilla</a>"<sup id="cite_ref-google_5-0" class="reference"><a href="#cite_note-google-5">[5]</a></sup> and used to co-ordinate the development of the <a href="/wiki/Mozilla_Application_Suite" title="Mozilla Application Suite">Mozilla Application Suite</a>, the <a href="/wiki/Open_source" class="mw-redirect" title="Open source">open source</a> version of Netscape's internet software, <a href="/wiki/Netscape_Communicator" title="Netscape Communicator">Netscape Communicator</a>.<sup id="cite_ref-Mozilla_Launch_Announcement_6-0" class="reference"><a href="#cite_note-Mozilla_Launch_Announcement-6">[6]</a></sup><sup id="cite_ref-7" class="reference"><a href="#cite_note-7">[7]</a></sup> Jamie Zawinski says he came up with the name "Mozilla" at a Netscape staff meeting.<sup id="cite_ref-8" class="reference"><a href="#cite_note-8">[8]</a></sup><sup id="cite_ref-9" class="reference"><a href="#cite_note-9">[9]</a></sup> A small group of Netscape employees were tasked with coordination of the new community.</p>
+ <p>Originally, Mozilla aimed to be a technology provider for companies, such as Netscape, who would commercialize their open source code.<sup id="cite_ref-10" class="reference"><a href="#cite_note-10">[10]</a></sup> When <a href="/wiki/AOL" title="AOL">AOL</a> (Netscape's parent company) greatly reduced its involvement with Mozilla in July 2003, the <a href="/wiki/Mozilla_Foundation" title="Mozilla Foundation">Mozilla Foundation</a> was designated the legal steward of the project.<sup id="cite_ref-11" class="reference"><a href="#cite_note-11">[11]</a></sup> Soon after, Mozilla deprecated the Mozilla Suite in favor of creating independent applications for each function, primarily the <a href="/wiki/Firefox" title="Firefox">Firefox</a> web browser and the <a href="/wiki/Mozilla_Thunderbird" title="Mozilla Thunderbird">Thunderbird</a> email client, and moved to supply them directly to the public.<sup id="cite_ref-12" class="reference"><a href="#cite_note-12">[12]</a></sup></p>
+ <p>Recently, Mozilla's activities have expanded to include Firefox on mobile platforms (primarily <a href="/wiki/Android_(operating_system)" title="Android (operating system)">Android</a>),<sup id="cite_ref-13" class="reference"><a href="#cite_note-13">[13]</a></sup> a mobile OS called <a href="/wiki/Firefox_OS" title="Firefox OS">Firefox OS</a>,<sup id="cite_ref-14" class="reference"><a href="#cite_note-14">[14]</a></sup> a web-based identity system called <a href="/wiki/Mozilla_Persona" title="Mozilla Persona">Mozilla Persona</a> and a marketplace for HTML5 applications.<sup id="cite_ref-15" class="reference"><a href="#cite_note-15">[15]</a></sup></p>
+ <p>In a report released in November 2012, Mozilla reported that their total revenue for 2011 was $163&#160;million, which was up 33% from $123&#160;million in 2010. Mozilla noted that roughly 85% of their revenue comes from their contract with Google.<sup id="cite_ref-16" class="reference"><a href="#cite_note-16">[16]</a></sup></p>
+ <p>At the end of 2013, Mozilla announced a deal with <a href="/wiki/Cisco_Systems" title="Cisco Systems">Cisco Systems</a> whereby Firefox would download and use a Cisco-provided binary build of an open source<sup id="cite_ref-github_17-0" class="reference"><a href="#cite_note-github-17">[17]</a></sup> <a href="/wiki/Codec" title="Codec">codec</a> to play the <a href="/wiki/Proprietary_format" title="Proprietary format">proprietary</a> <a href="/wiki/H.264" class="mw-redirect" title="H.264">H.264</a> video format.<sup id="cite_ref-gigaom_18-0" class="reference"><a href="#cite_note-gigaom-18">[18]</a></sup><sup id="cite_ref-techrepublic_19-0" class="reference"><a href="#cite_note-techrepublic-19">[19]</a></sup> As part of the deal, Cisco would pay any patent licensing fees associated with the binaries that it distributes. Mozilla's CTO, <a href="/wiki/Brendan_Eich" title="Brendan Eich">Brendan Eich</a>, acknowledged that this is "not a complete solution" and isn't "perfect".<sup id="cite_ref-20" class="reference"><a href="#cite_note-20">[20]</a></sup> An employee in Mozilla's video formats team, writing in an unofficial capacity, justified<sup id="cite_ref-21" class="reference"><a href="#cite_note-21">[21]</a></sup> it by the need to maintain their large user base, which would be necessary in future battles for truly free video formats.</p>
+ <p>In December 2013, Mozilla announced funding for the development of non-<a href="/wiki/Free_software" title="Free software">free</a> games<sup id="cite_ref-22" class="reference"><a href="#cite_note-22">[22]</a></sup> through its Game Creator Challenge. However, even those games that may be released under a non-free software or open source license must be made with open web technologies and Javascript as per the work criteria outlined in the announcement.</p>
+ <h3><span class="mw-headline" id="Eich_CEO_promotion_controversy">Eich CEO promotion controversy</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Mozilla&amp;action=edit&amp;section=2" title="Edit section: Eich CEO promotion controversy">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </h3>
+ <p>On March 24, 2014, Mozilla promoted <a href="/wiki/Brendan_Eich" title="Brendan Eich">Brendan Eich</a> to the role of CEO. This led to boycotts and protests from the LGBT community and its supporters, as Eich previously donated US$1,000<sup id="cite_ref-23" class="reference"><a href="#cite_note-23">[23]</a></sup> in 2008 in support of <a href="/wiki/California_Proposition_8_(2008)" title="California Proposition 8 (2008)">California's Proposition 8</a>, a California ballot proposition and state constitutional amendment in opposition to same-sex marriage.<sup id="cite_ref-arstechnica_24-0" class="reference"><a href="#cite_note-arstechnica-24">[24]</a></sup> Eich's donation first became public knowledge in 2012, while he was Mozilla’s chief technical officer, leading to angry responses on Twitter—including the use of the hashtag "#wontworkwithbigots".<sup id="cite_ref-25" class="reference"><a href="#cite_note-25">[25]</a></sup></p>
+ <p>Protests also emerged in 2014 following the announcement of Eich's appointment as CEO of Mozilla. U.S. companies <a href="/wiki/OkCupid" title="OkCupid">OkCupid</a> and <a href="/wiki/CREDO_Mobile" title="CREDO Mobile">CREDO Mobile</a> received media coverage for their objections, with the former asking its users to boycott the browser,<sup id="cite_ref-26" class="reference"><a href="#cite_note-26">[26]</a></sup> while Credo amassed 50,000 signatures for a petition that called for Eich's resignation</p>
+ <p>Due to the controversy, Eich voluntarily stepped down on April 3, 2014<sup id="cite_ref-27" class="reference"><a href="#cite_note-27">[27]</a></sup> and <a href="/wiki/Mitchell_Baker" title="Mitchell Baker">Mitchell Baker</a>, executive chairwoman of Mozilla Corporation, posted a statement on the Mozilla blog: "We didn’t move fast enough to engage with people once the controversy started. Mozilla believes both in equality and freedom of speech. Equality is necessary for meaningful speech. And you need free speech to fight for equality."<sup id="cite_ref-28" class="reference"><a href="#cite_note-28">[28]</a></sup> Eich's resignation promoted a larger backlash from conservatives who felt he had been forced out of the company internally.<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (August 2015)">citation needed</span></a></i>]</sup></p>
+ <p>OkCupid co-founder and CEO <a href="/wiki/Sam_Yagan" title="Sam Yagan">Sam Yagan</a> had also donated $500<sup id="cite_ref-29" class="reference"><a href="#cite_note-29">[29]</a></sup> to Republican candidate <a href="/wiki/Chris_Cannon" title="Chris Cannon">Chris Cannon</a> who proceeded to vote for multiple measures viewed as "anti-gay", including the banning of same-sex marriage.<sup id="cite_ref-30" class="reference"><a href="#cite_note-30">[30]</a></sup><sup id="cite_ref-31" class="reference"><a href="#cite_note-31">[31]</a></sup><sup id="cite_ref-32" class="reference"><a href="#cite_note-32">[32]</a></sup><sup id="cite_ref-33" class="reference"><a href="#cite_note-33">[33]</a></sup> Yagan claims he did not know about Cannon's stance on gay rights and that his contribution was due to the candidate being the ranking Republican participating in the House subcommittee that oversaw Internet and Intellectual Property matters.<sup id="cite_ref-34" class="reference"><a href="#cite_note-34">[34]</a></sup><sup id="cite_ref-35" class="reference"><a href="#cite_note-35">[35]</a></sup><sup id="cite_ref-uncrunched.com_36-0" class="reference"><a href="#cite_note-uncrunched.com-36">[36]</a></sup><sup id="cite_ref-37" class="reference"><a href="#cite_note-37">[37]</a></sup><sup id="cite_ref-38" class="reference"><a href="#cite_note-38">[38]</a></sup></p>
+ <p>Reader comments on articles that were published close to the events were divided between support for OkCupid's actions and opposition to them. Supporters claimed the boycott was justified and saw OkCupid's actions as a firm statement of opposition to intolerance towards the gay community. Opponents saw OkCupid's actions as hypocritical, since Eich is also the inventor of <a href="/wiki/Brendan_Eich#Netscape_and_JavaScript" title="Brendan Eich">JavaScript</a>, which is still required to browse OkCupid's website, and felt that users should not be punished for the actions of Mozilla and suspected that OkCupid's actions were a <a href="/wiki/Publicity_stunt" title="Publicity stunt">publicity stunt</a>.<sup id="cite_ref-uncrunched.com_36-1" class="reference"><a href="#cite_note-uncrunched.com-36">[36]</a></sup><sup id="cite_ref-39" class="reference"><a href="#cite_note-39">[39]</a></sup></p>
+ <h2><span class="mw-headline" id="Values">Values</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Mozilla&amp;action=edit&amp;section=3" title="Edit section: Values">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </h2>
+ <p>According to Mozilla's manifesto,<sup id="cite_ref-manifesto_40-0" class="reference"><a href="#cite_note-manifesto-40">[40]</a></sup> which outlines goals, principles, and a pledge, "The Mozilla project uses a community-based approach to create world-class open source software and to develop new types of collaborative activities". Mozilla's manifesto mentions only its beliefs in regards to the Internet and Internet privacy, and has no mention of any political or social viewpoints.</p>
+ <h3><span class="mw-headline" id="Pledge">Pledge</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Mozilla&amp;action=edit&amp;section=4" title="Edit section: Pledge">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </h3>
+ <p>According to the Mozilla Foundation:<sup id="cite_ref-41" class="reference"><a href="#cite_note-41">[41]</a></sup></p>
+ <blockquote class="templatequote">
+ <p>The Mozilla Foundation pledges to support the Mozilla Manifesto in its activities. Specifically, we will:</p>
+ <ul>
+ <li>Build and enable open-source technologies and communities that support the Manifesto’s principles;</li>
+ <li>Build and deliver great consumer products that support the Manifesto’s principles;</li>
+ <li>Use the Mozilla assets (intellectual property such as copyrights and trademarks, infrastructure, funds, and reputation) to keep the Internet an open platform;</li>
+ <li>Promote models for creating economic value for the public benefit; and</li>
+ <li>Promote the Mozilla Manifesto principles in public discourse and within the Internet industry.</li>
+ </ul>
+ </blockquote>
+ <h2><span class="mw-headline" id="Software">Software</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Mozilla&amp;action=edit&amp;section=5" title="Edit section: Software">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </h2>
+ <div class="thumb tright">
+ <div class="thumbinner" style="width:222px;">
+ <a href="/wiki/File:Mozilla_Firefox_logo_2013.svg" class="image"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/7/76/Mozilla_Firefox_logo_2013.svg/220px-Mozilla_Firefox_logo_2013.svg.png" width="220" height="233" class="thumbimage" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/7/76/Mozilla_Firefox_logo_2013.svg/330px-Mozilla_Firefox_logo_2013.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/7/76/Mozilla_Firefox_logo_2013.svg/440px-Mozilla_Firefox_logo_2013.svg.png 2x" data-file-width="352" data-file-height="373" /></a>
+ <div class="thumbcaption">
+ <div class="magnify">
+ <a href="/wiki/File:Mozilla_Firefox_logo_2013.svg" class="internal" title="Enlarge"></a>
+ </div>
+ Firefox logo</div>
+ </div>
+ </div>
+ <h3><span class="mw-headline" id="Firefox">Firefox</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Mozilla&amp;action=edit&amp;section=6" title="Edit section: Firefox">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </h3>
+ <div role="note" class="hatnote">Main article: <a href="/wiki/Firefox" title="Firefox">Firefox</a></div>
+ <p><a href="/wiki/Firefox" title="Firefox">Firefox</a> is a <a href="/wiki/Web_browser" title="Web browser">web browser</a>, and is Mozilla's <a href="/wiki/Flagship_product" class="mw-redirect" title="Flagship product">flagship</a> software product. It is available in both desktop and mobile versions. Firefox uses the <a href="/wiki/Gecko_(software)" title="Gecko (software)">Gecko</a> <a href="/wiki/Layout_engine" title="Layout engine">layout engine</a> to render web pages, which implements current and anticipated <a href="/wiki/Web_standards" title="Web standards">web standards</a>.<sup id="cite_ref-42" class="reference"><a href="#cite_note-42">[42]</a></sup> As of late 2015<sup class="plainlinks noprint asof-tag update" style="display:none;"><a class="external text" href="//en.wikipedia.org/w/index.php?title=Mozilla&amp;action=edit">[update]</a></sup>, Firefox has approximately 10-11% of worldwide <a href="/wiki/Usage_share_of_web_browsers#Summary" title="Usage share of web browsers">usage share of web browsers</a>, making it the 4th most-used web browser.<sup id="cite_ref-w3counter1_43-0" class="reference"><a href="#cite_note-w3counter1-43">[43]</a></sup><sup id="cite_ref-gs.statcounter.com_44-0" class="reference"><a href="#cite_note-gs.statcounter.com-44">[44]</a></sup><sup id="cite_ref-getclicky1_45-0" class="reference"><a href="#cite_note-getclicky1-45">[45]</a></sup></p>
+ <p>Firefox began as an experimental branch of the <a href="/wiki/Mozilla#Mozilla_Project" title="Mozilla">Mozilla codebase</a> by <a href="/wiki/Dave_Hyatt" title="Dave Hyatt">Dave Hyatt</a>, <a href="/wiki/Joe_Hewitt_(programmer)" title="Joe Hewitt (programmer)">Joe Hewitt</a> and <a href="/wiki/Blake_Ross" title="Blake Ross">Blake Ross</a>. They believed the commercial requirements of <a href="/wiki/Netscape" title="Netscape">Netscape's</a> sponsorship and developer-driven <a href="/wiki/Feature_creep" title="Feature creep">feature creep</a> compromised the utility of the Mozilla browser.<sup id="cite_ref-46" class="reference"><a href="#cite_note-46">[46]</a></sup> To combat what they saw as the <a href="/wiki/Mozilla_Application_Suite" title="Mozilla Application Suite">Mozilla Suite's</a> <a href="/wiki/Software_bloat" title="Software bloat">software bloat</a>, they created a stand-alone browser, with which they intended to replace the Mozilla Suite.</p>
+ <p>Firefox was originally named <i>Phoenix</i> but the name was changed so as to avoid trademark conflicts with <a href="/wiki/Phoenix_Technologies" title="Phoenix Technologies">Phoenix Technologies</a>. The initially-announced replacement, <i>Firebird</i>, provoked objections from the <a href="/wiki/Firebird_(database_server)" title="Firebird (database server)">Firebird</a> project community.<sup id="cite_ref-47" class="reference"><a href="#cite_note-47">[47]</a></sup><sup id="cite_ref-48" class="reference"><a href="#cite_note-48">[48]</a></sup> The current name, Firefox, was chosen on February 9, 2004.<sup id="cite_ref-49" class="reference"><a href="#cite_note-49">[49]</a></sup></p>
+ <h3><span class="mw-headline" id="Firefox_Mobile">Firefox Mobile</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Mozilla&amp;action=edit&amp;section=7" title="Edit section: Firefox Mobile">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </h3>
+ <div role="note" class="hatnote">Main article: <a href="/wiki/Firefox_Mobile" class="mw-redirect" title="Firefox Mobile">Firefox Mobile</a></div>
+ <p>Firefox Mobile (codenamed <i>Fennec</i>) is the build of the <a href="/wiki/Firefox" title="Firefox">Mozilla Firefox</a> <a href="/wiki/Web_browser" title="Web browser">web browser</a> for devices such as <a href="/wiki/Smartphone" title="Smartphone">smartphones</a> and <a href="/wiki/Tablet_computer" title="Tablet computer">tablet computers</a>.</p>
+ <p>Firefox Mobile uses the same <a href="/wiki/Gecko_(layout_engine)" class="mw-redirect" title="Gecko (layout engine)">Gecko</a> <a href="/wiki/Layout_engine" title="Layout engine">layout engine</a> as <a href="/wiki/Firefox" title="Firefox">Mozilla Firefox</a>. For example, version 1.0 used the same engine as Firefox 3.6, and the following release, 4.0, shared core code with Firefox 4.0. Its features include <a href="/wiki/HTML5" title="HTML5">HTML5</a> support, <a href="/wiki/Firefox_Sync" title="Firefox Sync">Firefox Sync</a>, <a href="/wiki/Add-on_(Mozilla)" title="Add-on (Mozilla)">add-ons</a> support and <a href="/wiki/Tabbed_browsing" class="mw-redirect" title="Tabbed browsing">tabbed browsing</a>.<sup id="cite_ref-50" class="reference"><a href="#cite_note-50">[50]</a></sup></p>
+ <p>Firefox Mobile is currently available for <a href="/wiki/Android_(operating_system)" title="Android (operating system)">Android</a> 2.2 and above devices with an <a href="/wiki/ARM_architecture" title="ARM architecture">ARMv7</a> or <a href="/wiki/ARM_architecture" title="ARM architecture">ARMv6</a> CPU.<sup id="cite_ref-51" class="reference"><a href="#cite_note-51">[51]</a></sup> The x86 architecture is not officially supported.<sup id="cite_ref-52" class="reference"><a href="#cite_note-52">[52]</a></sup> <a href="/wiki/Tristan_Nitot" title="Tristan Nitot">Tristan Nitot</a>, president of <a href="/wiki/Mozilla_Europe" title="Mozilla Europe">Mozilla Europe</a>, has said that it's unlikely that an <a href="/wiki/IPhone" title="IPhone">iPhone</a> or a <a href="/wiki/BlackBerry" title="BlackBerry">BlackBerry</a> version will be released, citing <a href="/wiki/Apple_Inc" class="mw-redirect" title="Apple Inc">Apple's</a> iTunes Store application approval policies (which forbid applications competing with Apple's own, and forbid engines which run downloaded code) and BlackBerry's limited operating system as the reasons.<sup id="cite_ref-53" class="reference"><a href="#cite_note-53">[53]</a></sup></p>
+ <h3><span class="mw-headline" id="Firefox_OS">Firefox OS</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Mozilla&amp;action=edit&amp;section=8" title="Edit section: Firefox OS">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </h3>
+ <div role="note" class="hatnote">Main article: <a href="/wiki/Firefox_OS" title="Firefox OS">Firefox OS</a></div>
+ <p>Firefox OS (project name: <i>Boot to Gecko</i> also known as <i>B2G</i>) is an <a href="/wiki/Open_source" class="mw-redirect" title="Open source">open source</a> <a href="/wiki/Operating_system" title="Operating system">operating system</a> in development by Mozilla that aims to support <a href="/wiki/HTML5" title="HTML5">HTML5</a> apps written using "<a href="/wiki/Open_Web" title="Open Web">open Web</a>" technologies rather than platform-specific native <a href="/wiki/Application_programming_interface" title="Application programming interface">APIs</a>. The concept behind Firefox OS is that all user-accessible software will be HTML5 applications, that use Open Web APIs to access the phone's hardware directly via <a href="/wiki/JavaScript" title="JavaScript">JavaScript</a>.<sup id="cite_ref-54" class="reference"><a href="#cite_note-54">[54]</a></sup></p>
+ <p>Some devices using this OS include<sup id="cite_ref-55" class="reference"><a href="#cite_note-55">[55]</a></sup> Alcatel One Touch Fire, ZTE Open, LG Fireweb.</p>
+ <h3><span class="mw-headline" id="Thunderbird">Thunderbird</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Mozilla&amp;action=edit&amp;section=9" title="Edit section: Thunderbird">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </h3>
+ <div role="note" class="hatnote">Main article: <a href="/wiki/Mozilla_Thunderbird" title="Mozilla Thunderbird">Mozilla Thunderbird</a></div>
+ <p><a href="/wiki/Mozilla_Thunderbird" title="Mozilla Thunderbird">Thunderbird</a> is a free, open source, cross-platform email and news client developed by the volunteers of the Mozilla Community.</p>
+ <p>On July 16, 2012, Mitchell Baker announced that Mozilla's leadership had come to the conclusion that on-going stability was the most important thing for Thunderbird and that innovation in Thunderbird was no longer a priority for Mozilla. In that update Baker also suggested that Mozilla had provided a pathway for community to innovate around Thunderbird if the community chooses.<sup id="cite_ref-56" class="reference"><a href="#cite_note-56">[56]</a></sup></p>
+ <h3><span class="mw-headline" id="SeaMonkey">SeaMonkey</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Mozilla&amp;action=edit&amp;section=10" title="Edit section: SeaMonkey">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </h3>
+ <div role="note" class="hatnote">Main article: <a href="/wiki/SeaMonkey" title="SeaMonkey">SeaMonkey</a></div>
+ <div class="thumb tleft">
+ <div class="thumbinner" style="width:130px;">
+ <a href="/wiki/File:SeaMonkey.png" class="image"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/0/0d/SeaMonkey.png" width="128" height="128" class="thumbimage" data-file-width="128" data-file-height="128" /></a>
+ <div class="thumbcaption">
+ <div class="magnify">
+ <a href="/wiki/File:SeaMonkey.png" class="internal" title="Enlarge"></a>
+ </div>
+ SeaMonkey logo</div>
+ </div>
+ </div>
+ <p><a href="/wiki/SeaMonkey" title="SeaMonkey">SeaMonkey</a> (formerly the Mozilla Application Suite) is a free and open source cross platform suite of Internet software components including a web browser component, a client for sending and receiving email and <a href="/wiki/USENET" class="mw-redirect" title="USENET">USENET</a> newsgroup messages, an HTML editor (<a href="/wiki/Mozilla_Composer" title="Mozilla Composer">Mozilla Composer</a>) and the <a href="/wiki/ChatZilla" title="ChatZilla">ChatZilla</a> IRC client.</p>
+ <p>On March 10, 2005, <a href="/wiki/The_Mozilla_Foundation" class="mw-redirect" title="The Mozilla Foundation">the Mozilla Foundation</a> announced that it would not release any official versions of Mozilla Application Suite beyond 1.7.x, since it had now focused on the standalone applications <a href="/wiki/Mozilla_Firefox" class="mw-redirect" title="Mozilla Firefox">Firefox</a> and <a href="/wiki/Mozilla_Thunderbird" title="Mozilla Thunderbird">Thunderbird</a>.<sup id="cite_ref-57" class="reference"><a href="#cite_note-57">[57]</a></sup> SeaMonkey is now maintained by the SeaMonkey Council, which has <a href="/wiki/Trademark" title="Trademark">trademarked</a> the SeaMonkey name with help from the Mozilla Foundation.<sup id="cite_ref-58" class="reference"><a href="#cite_note-58">[58]</a></sup> The Mozilla Foundation provides project hosting for the SeaMonkey developers.</p>
+ <div style="clear:both;"></div>
+ <h3><span class="mw-headline" id="Bugzilla">Bugzilla</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Mozilla&amp;action=edit&amp;section=11" title="Edit section: Bugzilla">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </h3>
+ <div role="note" class="hatnote">Main article: <a href="/wiki/Bugzilla" title="Bugzilla">Bugzilla</a></div>
+ <div class="thumb tright">
+ <div class="thumbinner" style="width:222px;">
+ <a href="/wiki/File:Buggie.svg" class="image"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/d/d7/Buggie.svg/220px-Buggie.svg.png" width="220" height="289" class="thumbimage" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/d/d7/Buggie.svg/330px-Buggie.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/d/d7/Buggie.svg/440px-Buggie.svg.png 2x" data-file-width="95" data-file-height="125" /></a>
+ <div class="thumbcaption">
+ <div class="magnify">
+ <a href="/wiki/File:Buggie.svg" class="internal" title="Enlarge"></a>
+ </div>
+ Bugzilla logo</div>
+ </div>
+ </div>
+ <p><a href="/wiki/Bugzilla" title="Bugzilla">Bugzilla</a> is a <a href="/wiki/World_Wide_Web" title="World Wide Web">web</a>-based general-purpose <a href="/wiki/Bug_tracking_system" title="Bug tracking system">bug tracking system</a>, which was released as <a href="/wiki/Open_source_software" class="mw-redirect" title="Open source software">open source software</a> by <a href="/wiki/Netscape_Communications" class="mw-redirect" title="Netscape Communications">Netscape Communications</a> in 1998 along with the rest of the Mozilla codebase, and is currently stewarded by Mozilla. It has been adopted by a variety of organizations for use as a <a href="/wiki/Bug_tracking_system" title="Bug tracking system">bug tracking system</a> for both <a href="/wiki/Free_and_open_source_software" class="mw-redirect" title="Free and open source software">free and open source software</a> and <a href="/wiki/Proprietary_software" title="Proprietary software">proprietary</a> projects and products, including the <a href="/wiki/The_Mozilla_Foundation" class="mw-redirect" title="The Mozilla Foundation">Mozilla Foundation</a>, the <a href="/wiki/Linux_kernel" title="Linux kernel">Linux kernel</a>, <a href="/wiki/GNOME" title="GNOME">GNOME</a>, <a href="/wiki/KDE" title="KDE">KDE</a>, <a href="/wiki/Red_Hat" title="Red Hat">Red Hat</a>, <a href="/wiki/Novell" title="Novell">Novell</a>, <a href="/wiki/Eclipse_(software)" title="Eclipse (software)">Eclipse</a> and <a href="/wiki/LibreOffice" title="LibreOffice">LibreOffice</a>.<sup id="cite_ref-59" class="reference"><a href="#cite_note-59">[59]</a></sup></p>
+ <h3><span class="mw-headline" id="Components">Components</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Mozilla&amp;action=edit&amp;section=12" title="Edit section: Components">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </h3>
+ <h4><span class="mw-headline" id="NSS">NSS</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Mozilla&amp;action=edit&amp;section=13" title="Edit section: NSS">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </h4>
+ <div role="note" class="hatnote">Main article: <a href="/wiki/Network_Security_Services" title="Network Security Services">Network Security Services</a></div>
+ <p><a href="/wiki/Network_Security_Services" title="Network Security Services">Network Security Services</a> (NSS) comprises a set of <a href="/wiki/Library_(computing)" title="Library (computing)">libraries</a> designed to support <a href="/wiki/Cross-platform" title="Cross-platform">cross-platform</a> development of security-enabled client and server applications. NSS provides a complete open-source implementation of crypto libraries supporting <a href="/wiki/Secure_Sockets_Layer" class="mw-redirect" title="Secure Sockets Layer">SSL</a> and <a href="/wiki/S/MIME" title="S/MIME">S/MIME</a>. NSS was previously <a href="/wiki/Multi-licensing" title="Multi-licensing">tri-licensed</a> under the <a href="/wiki/Mozilla_Public_License" title="Mozilla Public License">Mozilla Public License</a> 1.1, the <a href="/wiki/GNU_General_Public_License" title="GNU General Public License">GNU General Public License</a>, and the <a href="/wiki/LGPL" class="mw-redirect" title="LGPL">GNU Lesser General Public License</a>, but upgraded to GPL-compatible MPL 2.0.</p>
+ <p><a href="/wiki/AOL" title="AOL">AOL</a>, <a href="/wiki/Red_Hat" title="Red Hat">Red Hat</a>, <a href="/wiki/Sun_Microsystems" title="Sun Microsystems">Sun Microsystems</a>/<a href="/wiki/Oracle_Corporation" title="Oracle Corporation">Oracle Corporation</a>, <a href="/wiki/Google" title="Google">Google</a> and other companies and individual contributors have co-developed NSS and it is used in a wide range of non-Mozilla products including <a href="/wiki/Evolution_(software)" title="Evolution (software)">Evolution</a>, <a href="/wiki/Pidgin_(software)" title="Pidgin (software)">Pidgin</a>, and <a href="/wiki/Apache_OpenOffice" title="Apache OpenOffice">Apache OpenOffice</a>.</p>
+ <h4><span class="mw-headline" id="SpiderMonkey">SpiderMonkey</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Mozilla&amp;action=edit&amp;section=14" title="Edit section: SpiderMonkey">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </h4>
+ <div role="note" class="hatnote">Main article: <a href="/wiki/SpiderMonkey_(JavaScript_engine)" class="mw-redirect" title="SpiderMonkey (JavaScript engine)">SpiderMonkey (JavaScript engine)</a></div>
+ <p><a href="/wiki/SpiderMonkey_(software)" class="mw-redirect" title="SpiderMonkey (software)">SpiderMonkey</a> is the original <a href="/wiki/JavaScript_engine" title="JavaScript engine">JavaScript engine</a> developed by <a href="/wiki/Brendan_Eich" title="Brendan Eich">Brendan Eich</a> when he invented <a href="/wiki/JavaScript" title="JavaScript">JavaScript</a> in 1995 as a developer at <a href="/wiki/Netscape" title="Netscape">Netscape</a>. It became part of the Mozilla product family when Mozilla inherited Netscape's code-base in 1998. In 2011, Eich transferred the nominal ownership of the SpiderMonkey code and project to Dave Mandelin.<sup id="cite_ref-BE201106_60-0" class="reference"><a href="#cite_note-BE201106-60">[60]</a></sup></p>
+ <p>SpiderMonkey is a <a href="/wiki/Cross-platform" title="Cross-platform">cross-platform</a> engine written in <a href="/wiki/C%2B%2B" title="C++">C++</a> which implements <a href="/wiki/ECMAScript" title="ECMAScript">ECMAScript</a>, a standard developed from JavaScript.<sup id="cite_ref-BE201106_60-1" class="reference"><a href="#cite_note-BE201106-60">[60]</a></sup><sup id="cite_ref-61" class="reference"><a href="#cite_note-61">[61]</a></sup> It comprises an <a href="/wiki/Interpreter_(computing)" title="Interpreter (computing)">interpreter</a>, several <a href="/wiki/Just-in-time_compilation" title="Just-in-time compilation">just-in-time compilers</a>, a <a href="/wiki/Decompiler" title="Decompiler">decompiler</a> and a <a href="/wiki/Garbage_collection_(computer_science)" title="Garbage collection (computer science)">garbage collector</a>. Products which embed SpiderMonkey include <a href="/wiki/Firefox" title="Firefox">Firefox</a>, <a href="/wiki/Mozilla_Thunderbird" title="Mozilla Thunderbird">Thunderbird</a>, <a href="/wiki/SeaMonkey" title="SeaMonkey">SeaMonkey</a>, and many non-Mozilla applications.<sup id="cite_ref-62" class="reference"><a href="#cite_note-62">[62]</a></sup></p>
+ <h4><span class="mw-headline" id="Rhino">Rhino</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Mozilla&amp;action=edit&amp;section=15" title="Edit section: Rhino">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </h4>
+ <div role="note" class="hatnote">Main article: <a href="/wiki/Rhino_(JavaScript_engine)" title="Rhino (JavaScript engine)">Rhino (JavaScript engine)</a></div>
+ <p>Rhino is an <a href="/wiki/Open_source" class="mw-redirect" title="Open source">open source</a> <a href="/wiki/JavaScript_engine" title="JavaScript engine">JavaScript engine</a> managed by the <a href="/wiki/Mozilla_Foundation" title="Mozilla Foundation">Mozilla Foundation</a>. It is developed entirely in <a href="/wiki/Java_(programming_language)" title="Java (programming language)">Java</a>. Rhino converts JavaScript scripts into Java <a href="/wiki/Class_(computer_programming)" title="Class (computer programming)">classes</a>. Rhino works in both <a href="/wiki/Compiler" title="Compiler">compiled</a> and <a href="/wiki/Interpreter_(computing)" title="Interpreter (computing)">interpreted</a> mode.<sup id="cite_ref-63" class="reference"><a href="#cite_note-63">[63]</a></sup></p>
+ <h4><span class="mw-headline" id="Gecko">Gecko</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Mozilla&amp;action=edit&amp;section=16" title="Edit section: Gecko">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </h4>
+ <div role="note" class="hatnote">Main article: <a href="/wiki/Gecko_(layout_engine)" class="mw-redirect" title="Gecko (layout engine)">Gecko (layout engine)</a></div>
+ <p><a href="/wiki/Gecko_(layout_engine)" class="mw-redirect" title="Gecko (layout engine)">Gecko</a> is a <a href="/wiki/Web_browser_engine" title="Web browser engine">layout engine</a> that supports web pages written using <a href="/wiki/HTML" title="HTML">HTML</a>, <a href="/wiki/Scalable_Vector_Graphics" title="Scalable Vector Graphics">SVG</a>, and <a href="/wiki/MathML" title="MathML">MathML</a>. Gecko is written in <a href="/wiki/C%2B%2B" title="C++">C++</a> and uses <a href="/wiki/NSPR" class="mw-redirect" title="NSPR">NSPR</a> for <a href="/wiki/Platform_independence" class="mw-redirect" title="Platform independence">platform independence</a>. Its source code is licensed under the <a href="/wiki/Mozilla_Public_License" title="Mozilla Public License">Mozilla Public License</a>.</p>
+ <p>Firefox uses Gecko both for rendering web pages and for rendering its <a href="/wiki/User_interface" title="User interface">user interface</a>. Gecko is also used by Thunderbird, SeaMonkey, and many non-Mozilla applications.</p>
+ <h4><span class="mw-headline" id="Rust">Rust</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Mozilla&amp;action=edit&amp;section=17" title="Edit section: Rust">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </h4>
+ <div role="note" class="hatnote">Main article: <a href="/wiki/Rust_(programming_language)" title="Rust (programming language)">Rust (programming language)</a></div>
+ <p><a href="/wiki/Rust_(programming_language)" title="Rust (programming language)">Rust</a> is a compiled <a href="/wiki/Programming_language" title="Programming language">programming language</a> being developed by Mozilla Research. It is designed for safety, concurrency, and performance. Rust is intended for creating large and complex software which needs to be both safe against exploits and fast.</p>
+ <p>Rust is being used in an experimental layout engine, <a href="/wiki/Servo_(layout_engine)" title="Servo (layout engine)">Servo</a>, which is developed by Mozilla and Samsung. Servo is not used in any consumer-oriented browsers yet. However, the Servo project developers plan for parts of the Servo source code to be merged into Gecko, and Firefox, incrementally.<sup id="cite_ref-64" class="reference"><a href="#cite_note-64">[64]</a></sup><sup id="cite_ref-65" class="reference"><a href="#cite_note-65">[65]</a></sup></p>
+ <h4><span class="mw-headline" id="XULRunner">XULRunner</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Mozilla&amp;action=edit&amp;section=18" title="Edit section: XULRunner">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </h4>
+ <div role="note" class="hatnote">Main article: <a href="/wiki/XULRunner" title="XULRunner">XULRunner</a></div>
+ <p><a href="/wiki/XULRunner" title="XULRunner">XULRunner</a> is a software platform and technology experiment by Mozilla, that allows applications built with the same technologies used by Firefox extensions (XPCOM, Javascript, HTML, CSS, XUL) to be run natively as desktop applications, without requiring Firefox to be installed on the user's machine. XULRunner binaries are available for the Windows, GNU/Linux and OS X operating systems, allowing such applications to be effectively cross platform.</p>
+ <h4><span class="mw-headline" id="pdf.js">pdf.js</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Mozilla&amp;action=edit&amp;section=19" title="Edit section: pdf.js">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </h4>
+ <div role="note" class="hatnote">Main article: <a href="/wiki/Pdf.js" class="mw-redirect" title="Pdf.js">pdf.js</a></div>
+ <p><a href="/wiki/Pdf.js" class="mw-redirect" title="Pdf.js">Pdf.js</a> is a library developed by Mozilla that allows in-browser rendering of pdf documents using the HTML5 Canvas and Javascript. It is included by default in recent versions of Firefox, allowing the browser to render pdf documents without requiring an external plugin; and it is available separately as an extension named "PDF Viewer" for Firefox for Android, SeaMonkey, and the Firefox versions which don't include it built-in. It can also be included as part of a website's scripts, to allow pdf rendering for any browser that implements the required HTML5 features and can run Javascript.</p>
+ <h4><span class="mw-headline" id="Shumway">Shumway</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Mozilla&amp;action=edit&amp;section=20" title="Edit section: Shumway">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </h4>
+ <div role="note" class="hatnote">Main article: <a href="/wiki/Shumway_(software)" title="Shumway (software)">Shumway (software)</a></div>
+ <p><a href="/wiki/Shumway_(software)" title="Shumway (software)">Shumway</a> is an open source replacement for the Adobe Flash Player, developed by Mozilla since 2012, using open web technologies as a replacement for Flash technologies. It uses Javascript and HTML5 Canvas elements to render Flash and execute Actionscript. It is included by default in Firefox Nightly and can be installed as an extension for any recent version of Firefox. The current implementation is limited in its capabilities to render Flash content outside simple projects.</p>
+ <h2><span class="mw-headline" id="Other_activities">Other activities</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Mozilla&amp;action=edit&amp;section=21" title="Edit section: Other activities">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </h2>
+ <h3><span class="mw-headline" id="Mozilla_VR">Mozilla VR</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Mozilla&amp;action=edit&amp;section=22" title="Edit section: Mozilla VR">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </h3>
+ <p>Mozilla VR is a team focused on bringing <a href="/wiki/Virtual_reality" title="Virtual reality">Virtual reality</a> tools, specifications, and standards to the open Web.<sup id="cite_ref-66" class="reference"><a href="#cite_note-66">[66]</a></sup> Mozilla VR maintains <a href="/wiki/A-Frame_(VR)" title="A-Frame (VR)">A-Frame (VR)</a>, a web framework for building VR experiences, and works on advancing <a href="/wiki/WebVR" title="WebVR">WebVR</a> support within web browsers.</p>
+ <h3><span class="mw-headline" id="Mozilla_Persona">Mozilla Persona</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Mozilla&amp;action=edit&amp;section=23" title="Edit section: Mozilla Persona">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </h3>
+ <div role="note" class="hatnote">Main article: <a href="/wiki/Mozilla_Persona" title="Mozilla Persona">Mozilla Persona</a></div>
+ <p><a href="/wiki/Mozilla_Persona" title="Mozilla Persona">Mozilla Persona</a> is a secure, cross-browser website <a href="/wiki/Authentication" title="Authentication">authentication</a> mechanism which allows a user to use a single username and password (or other authentication method) to log in to multiple sites.<sup id="cite_ref-67" class="reference"><a href="#cite_note-67">[67]</a></sup> Mozilla Persona will be shutting down on November 30, 2016.<sup id="cite_ref-68" class="reference"><a href="#cite_note-68">[68]</a></sup></p>
+ <h3><span class="mw-headline" id="Mozilla_Location_Service">Mozilla Location Service</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Mozilla&amp;action=edit&amp;section=24" title="Edit section: Mozilla Location Service">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </h3>
+ <div role="note" class="hatnote">Main article: <a href="/wiki/Mozilla_Location_Service" title="Mozilla Location Service">Mozilla Location Service</a></div>
+ <p>This open source crowdsourced geolocation service was started by Mozilla in 2013 and offers a free <a href="/wiki/Application_programming_interface" title="Application programming interface">API</a>.</p>
+ <h3><span class="mw-headline" id="Webmaker">Webmaker</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Mozilla&amp;action=edit&amp;section=25" title="Edit section: Webmaker">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </h3>
+ <p>Mozilla Webmaker is Mozilla's educational initiative, Webmaker's goal is to "help millions of people move from using the web to making the web." As part of Mozilla’s non-profit mission, Webmaker aims "to help the world increase their understanding of the web, take greater control of their online lives, and create a more web literate planet."<sup id="cite_ref-69" class="reference"><a href="#cite_note-69">[69]</a></sup><sup id="cite_ref-lifehacker.com_70-0" class="reference"><a href="#cite_note-lifehacker.com-70">[70]</a></sup><sup id="cite_ref-lifehacker.com_70-1" class="reference"><a href="#cite_note-lifehacker.com-70">[70]</a></sup></p>
+ <h3><span class="mw-headline" id="Mozilla_Developer_Network">Mozilla Developer Network</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Mozilla&amp;action=edit&amp;section=26" title="Edit section: Mozilla Developer Network">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </h3>
+ <div role="note" class="hatnote">Main article: <a href="/wiki/Mozilla_Developer_Network" title="Mozilla Developer Network">Mozilla Developer Network</a></div>
+ <p>Mozilla maintains a comprehensive developer documentation website called the <a href="/wiki/Mozilla_Developer_Network" title="Mozilla Developer Network">Mozilla Developer Network</a> which contains information about web technologies including <a href="/wiki/HTML" title="HTML">HTML</a>, <a href="/wiki/CSS" class="mw-redirect" title="CSS">CSS</a>, <a href="/wiki/SVG" class="mw-redirect" title="SVG">SVG</a>, <a href="/wiki/JavaScript" title="JavaScript">JavaScript</a>, as well Mozilla-specific information. In addition, Mozilla publishes a large number of videos about web technologies and the development of Mozilla projects on the Air Mozilla website.<sup id="cite_ref-71" class="reference"><a href="#cite_note-71">[71]</a></sup><sup id="cite_ref-72" class="reference"><a href="#cite_note-72">[72]</a></sup></p>
+ <h2><span class="mw-headline" id="Community">Community</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Mozilla&amp;action=edit&amp;section=27" title="Edit section: Community">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </h2>
+ <p>The Mozilla Community consists of over 40,000 active contributors from across the globe<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (July 2015)">citation needed</span></a></i>]</sup>. It includes both paid employees and volunteers who work towards the goals set forth<sup id="cite_ref-manifesto_40-1" class="reference"><a href="#cite_note-manifesto-40">[40]</a></sup> in the Mozilla Manifesto. Many of the sub-communities in Mozilla have formed around localization efforts for Mozilla Firefox, and the Mozilla web properties.</p>
+ <h3><span class="mw-headline" id="Local_communities">Local communities</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Mozilla&amp;action=edit&amp;section=28" title="Edit section: Local communities">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </h3>
+ <div class="thumb tright">
+ <div class="thumbinner" style="width:222px;">
+ <a href="/wiki/File:London_Mozilla_Workspace.jpg" class="image"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/2/2a/London_Mozilla_Workspace.jpg/220px-London_Mozilla_Workspace.jpg" width="220" height="146" class="thumbimage" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/2/2a/London_Mozilla_Workspace.jpg/330px-London_Mozilla_Workspace.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/2/2a/London_Mozilla_Workspace.jpg/440px-London_Mozilla_Workspace.jpg 2x" data-file-width="2500" data-file-height="1656" /></a>
+ <div class="thumbcaption">
+ <div class="magnify">
+ <a href="/wiki/File:London_Mozilla_Workspace.jpg" class="internal" title="Enlarge"></a>
+ </div>
+ Mozilla spaces, London</div>
+ </div>
+ </div>
+ <p>There are a number of sub-communities that exist based on their geographical locations, where contributors near each other work together on particular activities, such as localization, marketing, PR and user support.</p>
+ <h3><span class="mw-headline" id="Mozilla_Reps">Mozilla Reps</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Mozilla&amp;action=edit&amp;section=29" title="Edit section: Mozilla Reps">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </h3>
+ <div class="thumb tright">
+ <div class="thumbinner" style="width:222px;">
+ <a href="/wiki/File:Mozilla_Reps.png" class="image"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/0/0b/Mozilla_Reps.png/220px-Mozilla_Reps.png" width="220" height="101" class="thumbimage" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/0/0b/Mozilla_Reps.png/330px-Mozilla_Reps.png 1.5x, //upload.wikimedia.org/wikipedia/commons/0/0b/Mozilla_Reps.png 2x" data-file-width="400" data-file-height="183" /></a>
+ <div class="thumbcaption">
+ <div class="magnify">
+ <a href="/wiki/File:Mozilla_Reps.png" class="internal" title="Enlarge"></a>
+ </div>
+ Mozilla Reps logo</div>
+ </div>
+ </div>
+ <p>The Mozilla Reps program aims to empower and support volunteer Mozillians who want to become official representatives of Mozilla in their region/locale.</p>
+ <p>The program provides a simple framework and a specific set of tools to help Mozillians to organize and/or attend events, recruit and mentor new contributors, document and share activities, and support their local communities better.</p>
+ <p>When joining the program, a Mozilla Rep agrees to take on the following responsibilities:</p>
+ <ul>
+ <li>Represent Mozilla in their country/region</li>
+ <li>Promote the Mozilla Project and its mission</li>
+ <li>Build on and support existing/future local community efforts and programs</li>
+ <li>Inspire, recruit and support new contributors</li>
+ <li>Support and mentor future Mozilla Reps</li>
+ <li>Document clearly all their activities</li>
+ </ul>
+ <h3><span class="mw-headline" id="Conferences_and_events">Conferences and events</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Mozilla&amp;action=edit&amp;section=30" title="Edit section: Conferences and events">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </h3>
+ <h4><span class="mw-headline" id="Mozilla_Festival">Mozilla Festival</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Mozilla&amp;action=edit&amp;section=31" title="Edit section: Mozilla Festival">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </h4>
+ <div class="thumb tright">
+ <div class="thumbinner" style="width:222px;">
+ <a href="/wiki/File:Fireside_Chat,_Knight%27s_Michael_Maness_and_Dan_Sinker_-_Flickr_-_Knight_Foundation.jpg" class="image"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/e/e4/Fireside_Chat%2C_Knight%27s_Michael_Maness_and_Dan_Sinker_-_Flickr_-_Knight_Foundation.jpg/220px-Fireside_Chat%2C_Knight%27s_Michael_Maness_and_Dan_Sinker_-_Flickr_-_Knight_Foundation.jpg" width="220" height="147" class="thumbimage" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/e/e4/Fireside_Chat%2C_Knight%27s_Michael_Maness_and_Dan_Sinker_-_Flickr_-_Knight_Foundation.jpg/330px-Fireside_Chat%2C_Knight%27s_Michael_Maness_and_Dan_Sinker_-_Flickr_-_Knight_Foundation.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/e/e4/Fireside_Chat%2C_Knight%27s_Michael_Maness_and_Dan_Sinker_-_Flickr_-_Knight_Foundation.jpg/440px-Fireside_Chat%2C_Knight%27s_Michael_Maness_and_Dan_Sinker_-_Flickr_-_Knight_Foundation.jpg 2x" data-file-width="1280" data-file-height="854" /></a>
+ <div class="thumbcaption">
+ <div class="magnify">
+ <a href="/wiki/File:Fireside_Chat,_Knight%27s_Michael_Maness_and_Dan_Sinker_-_Flickr_-_Knight_Foundation.jpg" class="internal" title="Enlarge"></a>
+ </div>
+ Speakers from the <a href="/wiki/Knight_Foundation" class="mw-redirect" title="Knight Foundation">Knight Foundation</a> discuss the future of news at the 2011 Mozilla Festival in London.</div>
+ </div>
+ </div>
+ <p>The Mozilla Festival is an annual event where hundreds of passionate people explore the Web, learn together and make things that can change the world. With the emphasis on <i>making</i>—the mantra of the Festival is "less yack, more hack." Journalists, coders, filmmakers, designers, educators, gamers, makers, youth and anyone else, from all over the world, are encouraged to attend, with attendees from more than 40 countries, working together at the intersection between freedom, the Web, and that years theme.</p>
+ <p>The event revolves around design challenges which address key issues based on the chosen theme for that years festival. In previous years the Mozilla Festival has focused on Learning, and Media, with the 2012 festival being based around making. The titles of the festival revolve around the main theme, freedom (as in freedom of speech not free beer), and the Web.</p>
+ <h4><span class="mw-headline" id="MozCamps">MozCamps</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Mozilla&amp;action=edit&amp;section=32" title="Edit section: MozCamps">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </h4>
+ <p>MozCamps are the critical part of the Grow Mozilla initiative which aims to grow the Mozilla Community. These camps aim to bring core contributors from around the world together. They are intensive multi-day summits that include keynote speeches by Mozilla leadership, workshops and breakout sessions (led by paid and unpaid staff), and fun social outings. All of these activities combine to reward contributors for their hard work, engage them with new products and initiatives, and align all attendees on Mozilla's mission.</p>
+ <h4><span class="mw-headline" id="Mozilla_Summit">Mozilla Summit</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Mozilla&amp;action=edit&amp;section=33" title="Edit section: Mozilla Summit">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </h4>
+ <p>Mozilla Summit are the global event with active contributors and Mozilla employees to develop a shared understanding of Mozilla's mission together. Over 2,000 people representing 90 countries and 114 languages gathered in Santa Clara, Toronto and Brussels in 2013. Mozilla has since its last summit in 2013 replaced summits with all-hands where both employees and volunteers come together to collaborate the event is a scaled down version of Mozilla Summit.</p>
+ <h2><span class="mw-headline" id="See_also">See also</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Mozilla&amp;action=edit&amp;section=34" title="Edit section: See also">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </h2>
+ <div role="navigation" aria-label="Portals" class="noprint portal plainlist tright" style="margin:0.5em 0 0.5em 1em;border:solid #aaa 1px">
+ <ul style="display:table;box-sizing:border-box;padding:0.1em;max-width:175px;background:#f9f9f9;font-size:85%;line-height:110%;font-style:italic;font-weight:bold">
+ <li style="display:table-row"><span style="display:table-cell;padding:0.2em;vertical-align:middle;text-align:center"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/3/31/Free_and_open-source_software_logo_%282009%29.svg/28px-Free_and_open-source_software_logo_%282009%29.svg.png" width="28" height="28" class="noviewer" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/3/31/Free_and_open-source_software_logo_%282009%29.svg/42px-Free_and_open-source_software_logo_%282009%29.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/3/31/Free_and_open-source_software_logo_%282009%29.svg/56px-Free_and_open-source_software_logo_%282009%29.svg.png 2x" data-file-width="512" data-file-height="512" /></span><span style="display:table-cell;padding:0.2em 0.2em 0.2em 0.3em;vertical-align:middle"><a href="/wiki/Portal:Free_software" class="mw-redirect" title="Portal:Free software">Free software portal</a></span></li>
+ </ul>
+ </div>
+ <ul>
+ <li><a href="/wiki/-zilla_(suffix)" class="mw-redirect" title="-zilla (suffix)">-zilla (suffix)</a></li>
+ <li><a href="/wiki/Mozilla_(mascot)" title="Mozilla (mascot)">Mozilla (mascot)</a></li>
+ <li><i><a href="/wiki/The_Book_of_Mozilla" title="The Book of Mozilla">The Book of Mozilla</a></i></li>
+ <li><a href="/wiki/Timeline_of_web_browsers" title="Timeline of web browsers">Timeline of web browsers</a></li>
+ </ul>
+ <h2><span class="mw-headline" id="References">References</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Mozilla&amp;action=edit&amp;section=35" title="Edit section: References">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </h2>
+ <div class="reflist references-column-width" style="-moz-column-width: 30em; -webkit-column-width: 30em; column-width: 30em; list-style-type: decimal;">
+ <ol class="references">
+ <li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text">For exceptions, see "Values" section below</span></li>
+ <li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="https://www.mozilla.org/foundation/moco/">"About the Mozilla Corporation"</a>. Mozilla Foundation.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=About+the+Mozilla+Corporation&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fwww.mozilla.org%2Ffoundation%2Fmoco%2F&amp;rft.pub=Mozilla+Foundation&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="http://www.oreilly.com/openbook/opensources/book/netrev.html">"Freeing the Source: The Story of Mozilla"</a>. <i>Open Sources: Voices from the Open Source Revolution</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2016-05-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Freeing+the+Source%3A+The+Story+of+Mozilla&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.oreilly.com%2Fopenbook%2Fopensources%2Fbook%2Fnetrev.html&amp;rft.jtitle=Open+Sources%3A+Voices+from+the+Open+Source+Revolution&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="https://whois.domaintools.com/mozilla.org">"Mozilla.org WHOIS, DNS, &amp; Domain Info"</a>. <i>DomainTools</i><span class="reference-accessdate">. Retrieved <span class="nowrap">1 May</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Mozilla.org+WHOIS%2C+DNS%2C+%26+Domain+Info&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fwhois.domaintools.com%2Fmozilla.org&amp;rft.jtitle=DomainTools&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-google-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-google_5-0">^</a></b></span> <span class="reference-text"><cite class="citation book">Payment, S. (2007). <a rel="nofollow" class="external text" href="//books.google.co.uk/books?id=zyIvOn7sKCsC"><i>Marc Andreessen and Jim Clark: The Founders of Netscape</i></a>. Rosen Publishing Group. <a href="/wiki/International_Standard_Book_Number" title="International Standard Book Number">ISBN</a>&#160;<a href="/wiki/Special:BookSources/9781404207196" title="Special:BookSources/9781404207196">9781404207196</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.au=Payment%2C+S.&amp;rft.btitle=Marc+Andreessen+and+Jim+Clark%3A+The+Founders+of+Netscape&amp;rft.date=2007&amp;rft.genre=book&amp;rft_id=%2F%2Fbooks.google.co.uk%2Fbooks%3Fid%3DzyIvOn7sKCsC&amp;rft.isbn=9781404207196&amp;rft.pub=Rosen+Publishing+Group&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-Mozilla_Launch_Announcement-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-Mozilla_Launch_Announcement_6-0">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20021004080737/wp.netscape.com/newsref/pr/newsrelease577.html">"Netscape Announces mozilla.org, a Dedicated Team and Web Site Supporting Development of Free Client Source Code"</a>. Netscape. Archived from the original on October 4, 2002<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-08-21</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Netscape+Announces+mozilla.org%2C+a+Dedicated+Team+and+Web+Site+Supporting+Development+of+Free+Client+Source+Code&amp;rft.genre=unknown&amp;rft_id=%2F%2Fwp.netscape.com%2Fnewsref%2Fpr%2Fnewsrelease577.html&amp;rft.pub=Netscape&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span> <span class="citation-comment" style="display:none; color:#33aa33">CS1 maint: Unfit url (<a href="/wiki/Category:CS1_maint:_Unfit_url" title="Category:CS1 maint: Unfit url">link</a>)</span></span>
+ </li>
+ <li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><cite class="citation news"><a rel="nofollow" class="external text" href="http://www.highbeam.com/doc/1G1-20453744.html">"Mac vendors ponder Netscape gambit."</a>. <i>Macworld</i>. 1 May 1998<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-08-19</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Mac+vendors+ponder+Netscape+gambit.&amp;rft.date=1998-05-01&amp;rft.genre=article&amp;rft_id=http%3A%2F%2Fwww.highbeam.com%2Fdoc%2F1G1-20453744.html&amp;rft.jtitle=Macworld&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><cite class="citation web">Zawinski, Jamie (1996). <a rel="nofollow" class="external text" href="http://www.jwz.org/gruntle/nscpdorm.html">"nscp dorm"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2007-10-12</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.aufirst=Jamie&amp;rft.aulast=Zawinski&amp;rft.btitle=nscp+dorm&amp;rft.date=1996&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.jwz.org%2Fgruntle%2Fnscpdorm.html&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><cite class="citation web">Dave Titus with assistance from Andrew Wong. <a rel="nofollow" class="external text" href="http://www.davetitus.com/mozilla/">"How was Mozilla born"</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.au=Dave+Titus+with+assistance+from+Andrew+Wong&amp;rft.btitle=How+was+Mozilla+born&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.davetitus.com%2Fmozilla%2F&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="http://www-archive.mozilla.org/hacking/coding-introduction.html">"Introduction to Mozilla Source Code"</a>. Mozilla<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-08-18</span></span>. <q>However, mozilla.org wants to emphasize that these milestones are being produced for testing purposes only.</q></cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Introduction+to+Mozilla+Source+Code&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww-archive.mozilla.org%2Fhacking%2Fcoding-introduction.html&amp;rft.pub=Mozilla&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="http://www.mozilla.org/en-US/press/mozilla-foundation.html">"mozilla.org Announces Launch of the Mozilla Foundation to Lead Open-Source Browser Efforts"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2012-08-18</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=mozilla.org+Announces+Launch+of+the+Mozilla+Foundation+to+Lead+Open-Source+Browser+Efforts&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.mozilla.org%2Fen-US%2Fpress%2Fmozilla-foundation.html&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><cite class="citation web"><a href="/wiki/Brendan_Eich" title="Brendan Eich">Eich, Brendan</a>; <a href="/wiki/Dave_Hyatt" title="Dave Hyatt">David Hyatt</a> (April 2, 2003). <a rel="nofollow" class="external text" href="http://www-archive.mozilla.org/roadmap/roadmap-02-Apr-2003.html">"mozilla development roadmap"</a>. Mozilla<span class="reference-accessdate">. Retrieved <span class="nowrap">2009-08-02</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.au=David+Hyatt&amp;rft.aufirst=Brendan&amp;rft.aulast=Eich&amp;rft.btitle=mozilla+development+roadmap&amp;rft.date=2003-04-02&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww-archive.mozilla.org%2Froadmap%2Froadmap-02-Apr-2003.html&amp;rft.pub=Mozilla&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="http://allthingsd.com/20120816/better-browsing-on-your-android-smartphone/">"Better Browsing on Your Android Smartphone"</a>. AllThingsD<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-08-18</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Better+Browsing+on+Your+Android+Smartphone&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fallthingsd.com%2F20120816%2Fbetter-browsing-on-your-android-smartphone%2F&amp;rft.pub=AllThingsD&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-14">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="http://www.pcmag.com/article2/0,2817,2407468,00.asp">"Mozilla Releases Test Version of Firefox OS"</a>. PC Magazine<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-08-18</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Mozilla+Releases+Test+Version+of+Firefox+OS&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.pcmag.com%2Farticle2%2F0%2C2817%2C2407468%2C00.asp&amp;rft.pub=PC+Magazine&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="http://www.engadget.com/2012/06/12/mozilla-marketplace-live-web-apps-like-desktop/">"Mozilla Marketplace is live, lets you run web apps like desktop programs"</a>. Engadget<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-08-18</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Mozilla+Marketplace+is+live%2C+lets+you+run+web+apps+like+desktop+programs&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.engadget.com%2F2012%2F06%2F12%2Fmozilla-marketplace-live-web-apps-like-desktop%2F&amp;rft.pub=Engadget&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-16">^</a></b></span> <span class="reference-text"><cite class="citation web">Lardinois, Frederic (November 15, 2012). <a rel="nofollow" class="external text" href="http://techcrunch.com/2012/11/15/mozilla-releases-annual-report-for-2011-revenue-up-33-to-163m-majority-from-google/">"Mozilla Releases Annual Report For 2011: Revenue Up 33% To $163M, Majority From Google"</a>. <i>techcrunch.com</i>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Mozilla+Releases+Annual+Report+For+2011%3A+Revenue+Up+33%25+To+%24163M%2C+Majority+From+Google&amp;rft.aufirst=Frederic&amp;rft.aulast=Lardinois&amp;rft.date=2012-11-15&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Ftechcrunch.com%2F2012%2F11%2F15%2Fmozilla-releases-annual-report-for-2011-revenue-up-33-to-163m-majority-from-google%2F&amp;rft.jtitle=techcrunch.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-github-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-github_17-0">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="https://github.com/cisco/openh264">"cisco/openh264 · GitHub"</a>. github.com<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-04-05</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=cisco%2Fopenh264+%B7+GitHub&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fgithub.com%2Fcisco%2Fopenh264&amp;rft.pub=github.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-gigaom-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-gigaom_18-0">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="http://gigaom.com/2013/10/30/mozilla-will-add-h-264-to-firefox-as-cisco-makes-eleventh-hour-push-for-webrtcs-future/">"Mozilla will add H.264 to Firefox as Cisco makes eleventh-hour push for WebRTC's future — Tech News and Analysis"</a>. gigaom.com<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-04-05</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Mozilla+will+add+H.264+to+Firefox+as+Cisco+makes+eleventh-hour+push+for+WebRTC%99s+future+%26mdash%3B+Tech+News+and+Analysis&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fgigaom.com%2F2013%2F10%2F30%2Fmozilla-will-add-h-264-to-firefox-as-cisco-makes-eleventh-hour-push-for-webrtcs-future%2F&amp;rft.pub=gigaom.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-techrepublic-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-techrepublic_19-0">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="http://www.techrepublic.com/blog/australian-technology/cisco-to-release-open-source-h264-codec-mozilla-makes-tactical-retreat/">"Cisco to release open-source H.264 codec, Mozilla makes tactical retreat - TechRepublic"</a>. techrepublic.com<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-04-05</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Cisco+to+release+open-source+H.264+codec%2C+Mozilla+makes+tactical+retreat+-+TechRepublic&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.techrepublic.com%2Fblog%2Faustralian-technology%2Fcisco-to-release-open-source-h264-codec-mozilla-makes-tactical-retreat%2F&amp;rft.pub=techrepublic.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-20">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="https://blog.mozilla.org/blog/2013/10/30/video-interoperability-on-the-web-gets-a-boost-from-ciscos-h-264-codec/">"Video Interoperability on the Web Gets a Boost From Cisco's H.264 Codec"</a>. <q>Of course, this is not a not a complete solution. In a perfect world, codecs, like other basic Internet technologies such as TCP/IP, HTTP, and HTML, would be fully open and free</q></cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Video+Interoperability+on+the+Web+Gets+a+Boost+From+Cisco%99s+H.264+Codec&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fblog.mozilla.org%2Fblog%2F2013%2F10%2F30%2Fvideo-interoperability-on-the-web-gets-a-boost-from-ciscos-h-264-codec%2F&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-21"><span class="mw-cite-backlink"><b><a href="#cite_ref-21">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="http://xiphmont.livejournal.com/61927.html">"Comments on Cisco, Mozilla, and H.264"</a>. <q>By endorsing Cisco's plan, there's no getting around the fact that we've caved on our principles. That said, principles can't replace being in a practical position to make a difference in the future.</q></cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Comments+on+Cisco%2C+Mozilla%2C+and+H.264&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fxiphmont.livejournal.com%2F61927.html&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span> - Christopher Montgomery wrote in a personal capacity but works for Mozilla in their codecs team</span>
+ </li>
+ <li id="cite_note-22"><span class="mw-cite-backlink"><b><a href="#cite_ref-22">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="https://wiki.mozilla.org/Game_Creator_Challenge_-Contest_Terms_and_Conditions">"Game Creator Challenge -Contest Terms and Conditions"</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Game+Creator+Challenge+-Contest+Terms+and+Conditions&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fwiki.mozilla.org%2FGame_Creator_Challenge_-Contest_Terms_and_Conditions&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span> - submissions to the "amateur" category have to be released as free software, but not for the other two categories</span>
+ </li>
+ <li id="cite_note-23"><span class="mw-cite-backlink"><b><a href="#cite_ref-23">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="http://projects.latimes.com/prop8/donation/8930/">"Los Angeles Times - Brendan Eich contribution to Proposition 8"</a>. latimes.com<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Los+Angeles+Times+-+Brendan+Eich+contribution+to+Proposition+8&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fprojects.latimes.com%2Fprop8%2Fdonation%2F8930%2F&amp;rft.pub=latimes.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-arstechnica-24"><span class="mw-cite-backlink"><b><a href="#cite_ref-arstechnica_24-0">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="http://arstechnica.com/business/2014/03/gay-firefox-developers-boycott-mozilla-to-protest-ceo-hire/">"Gay Firefox developers boycott Mozilla to protest CEO hire [Updated] | Ars Technica"</a>. arstechnica.com<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-04-05</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Gay+Firefox+developers+boycott+Mozilla+to+protest+CEO+hire+%26%2391%3BUpdated%26%2393%3B+%26%23124%3B+Ars+Technica&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Farstechnica.com%2Fbusiness%2F2014%2F03%2Fgay-firefox-developers-boycott-mozilla-to-protest-ceo-hire%2F&amp;rft.pub=arstechnica.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-25"><span class="mw-cite-backlink"><b><a href="#cite_ref-25">^</a></b></span> <span class="reference-text"><cite class="citation web">Kelly Faircloth (9 April 2012). <a rel="nofollow" class="external text" href="http://betabeat.com/2012/04/tech-celeb-makes-prop-8-donation-internet-goes-berserk/">"Tech Celeb Makes Prop-8 Donation; Internet Goes Berserk"</a>. <i>BetaBeat</i>. BetaBeat<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-04-28</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Tech+Celeb+Makes+Prop-8+Donation%3B+Internet+Goes+Berserk&amp;rft.au=Kelly+Faircloth&amp;rft.date=2012-04-09&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fbetabeat.com%2F2012%2F04%2Ftech-celeb-makes-prop-8-donation-internet-goes-berserk%2F&amp;rft.jtitle=BetaBeat&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-26"><span class="mw-cite-backlink"><b><a href="#cite_ref-26">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="http://i.huffpost.com/gen/1710681/thumbs/o-OKC-900.jpg">"Screenshot of OkCupid's statement towards Firefox users"</a>. huffingtonpost.com<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Screenshot+of+OkCupid%27s+statement+towards+Firefox+users&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fi.huffpost.com%2Fgen%2F1710681%2Fthumbs%2Fo-OKC-900.jpg&amp;rft.pub=huffingtonpost.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-27"><span class="mw-cite-backlink"><b><a href="#cite_ref-27">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="https://blog.mozilla.org/blog/2014/04/05/faq-on-ceo-resignation/">"FAQ on CEO Resignation"</a>. <i>The Mozilla Blog</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2015-04-20</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=FAQ+on+CEO+Resignation&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fblog.mozilla.org%2Fblog%2F2014%2F04%2F05%2Ffaq-on-ceo-resignation%2F&amp;rft.jtitle=The+Mozilla+Blog&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-28"><span class="mw-cite-backlink"><b><a href="#cite_ref-28">^</a></b></span> <span class="reference-text"><cite class="citation web">Baker, Mitchell (3 April 2014). <a rel="nofollow" class="external text" href="https://blog.mozilla.org/blog/2014/04/03/brendan-eich-steps-down-as-mozilla-ceo/">"Brendan Eich Steps Down as Mozilla CEO"</a>. <i>mozilla blog</i>. Mozilla<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-04-04</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Brendan+Eich+Steps+Down+as+Mozilla+CEO&amp;rft.aufirst=Mitchell&amp;rft.aulast=Baker&amp;rft.date=2014-04-03&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fblog.mozilla.org%2Fblog%2F2014%2F04%2F03%2Fbrendan-eich-steps-down-as-mozilla-ceo%2F&amp;rft.jtitle=mozilla+blog&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-29"><span class="mw-cite-backlink"><b><a href="#cite_ref-29">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="http://www.opensecrets.org/indivs/search.php?name=Sam+Yagan&amp;cycle=All&amp;sort=R&amp;state=&amp;zip=&amp;employ=&amp;cand=&amp;submit=Submit+Query">"opensecrets.org listing of Sam Yagan's contributions to political candidates"</a>. opensecrets.org<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=opensecrets.org+listing+of+Sam+Yagan%27s+contributions+to+political+candidates&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.opensecrets.org%2Findivs%2Fsearch.php%3Fname%3DSam%2BYagan%26cycle%3DAll%26sort%3DR%26state%3D%26zip%3D%26employ%3D%26cand%3D%26submit%3DSubmit%2BQuery&amp;rft.pub=opensecrets.org&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-30"><span class="mw-cite-backlink"><b><a href="#cite_ref-30">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="http://www.ontheissues.org/house/Chris_Cannon.htm#Civil_Rights">"ontheissues.org listing of votes cast by Chris Cannon"</a>. ontheissues.org<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=ontheissues.org+listing+of+votes+cast+by+Chris+Cannon&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.ontheissues.org%2Fhouse%2FChris_Cannon.htm%23Civil_Rights&amp;rft.pub=ontheissues.org&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-31"><span class="mw-cite-backlink"><b><a href="#cite_ref-31">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="http://www.ontheissues.org/HouseVote/Party_2005-627.htm">"ontheissues.org listing of votes cast on the permanency of the Patriot Act"</a>. ontheissues.org<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=ontheissues.org+listing+of+votes+cast+on+the+permanency+of+the+Patriot+Act&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.ontheissues.org%2FHouseVote%2FParty_2005-627.htm&amp;rft.pub=ontheissues.org&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-32"><span class="mw-cite-backlink"><b><a href="#cite_ref-32">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="http://www.ontheissues.org/house/Chris_Cannon_Homeland_Security.htm">"ontheissues.org: Chris Cannon on Homeland Security"</a>. ontheissues.org<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=ontheissues.org%3A+Chris+Cannon+on+Homeland+Security&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.ontheissues.org%2Fhouse%2FChris_Cannon_Homeland_Security.htm&amp;rft.pub=ontheissues.org&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-33"><span class="mw-cite-backlink"><b><a href="#cite_ref-33">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="http://www.ontheissues.org/house/Chris_Cannon_Abortion.htm">"ontheissues.org: Chris Cannon on Abortion"</a>. ontheissues.org<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=ontheissues.org%3A+Chris+Cannon+on+Abortion&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.ontheissues.org%2Fhouse%2FChris_Cannon_Abortion.htm&amp;rft.pub=ontheissues.org&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-34"><span class="mw-cite-backlink"><b><a href="#cite_ref-34">^</a></b></span> <span class="reference-text"><cite class="citation web">Levintova, Hannah (7 April 2014). <a rel="nofollow" class="external text" href="http://www.motherjones.com/mojo/2014/04/okcupid-ceo-donate-anti-gay-firefox">"OkCupid's CEO Donated to an Anti-Gay Campaign Once, Too"</a>. <i>Hanna Levintova article on motherjones.com</i>. motherjones.com<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=OkCupid%27s+CEO+Donated+to+an+Anti-Gay+Campaign+Once%2C+Too&amp;rft.aufirst=Hannah&amp;rft.aulast=Levintova&amp;rft.date=2014-04-07&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.motherjones.com%2Fmojo%2F2014%2F04%2Fokcupid-ceo-donate-anti-gay-firefox&amp;rft.jtitle=Hanna+Levintova+article+on+motherjones.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-35"><span class="mw-cite-backlink"><b><a href="#cite_ref-35">^</a></b></span> <span class="reference-text"><cite class="citation web">Lee, Stephanie M. (8 April 2014). <a rel="nofollow" class="external text" href="http://blog.sfgate.com/techchron/2014/04/08/okcupid-ceo-once-donated-to-anti-gay-politician/">"OKCupid CEO once donated to anti-gay politician"</a>. <i>Stephanie M. Lee's blog on sfgate.com</i>. sfgate.com<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=OKCupid+CEO+once+donated+to+anti-gay+politician&amp;rft.aufirst=Stephanie+M.&amp;rft.aulast=Lee&amp;rft.date=2014-04-08&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fblog.sfgate.com%2Ftechchron%2F2014%2F04%2F08%2Fokcupid-ceo-once-donated-to-anti-gay-politician%2F&amp;rft.jtitle=Stephanie+M.+Lee%27s+blog+on+sfgate.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-uncrunched.com-36"><span class="mw-cite-backlink">^ <a href="#cite_ref-uncrunched.com_36-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-uncrunched.com_36-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="http://uncrunched.com/2014/04/06/the-hypocrisy-of-sam-yagan-okcupid/">"The Hypocrisy Of Sam Yagan &amp; OkCupid"</a>. <i>uncrunched.com blog</i>. uncrunched.com. 6 April 2014<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=The+Hypocrisy+Of+Sam+Yagan+%26+OkCupid&amp;rft.date=2014-04-06&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Funcrunched.com%2F2014%2F04%2F06%2Fthe-hypocrisy-of-sam-yagan-okcupid%2F&amp;rft.jtitle=uncrunched.com+blog&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-37"><span class="mw-cite-backlink"><b><a href="#cite_ref-37">^</a></b></span> <span class="reference-text"><cite class="citation web">Bellware, Kim (31 March 2014). <a rel="nofollow" class="external text" href="http://www.huffingtonpost.com/2014/03/31/okcupid-mozilla_n_5065743.html">"OKCupid Publicly Rips Mozilla: 'We Wish Them Nothing But Failure<span style="padding-right:0.2em;">'</span>"</a>. <i>Kim Bellware article on huffingtonpost.com</i>. huffingtonpost.com<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=OKCupid+Publicly+Rips+Mozilla%3A+%27We+Wish+Them+Nothing+But+Failure%27&amp;rft.aufirst=Kim&amp;rft.aulast=Bellware&amp;rft.date=2014-03-31&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.huffingtonpost.com%2F2014%2F03%2F31%2Fokcupid-mozilla_n_5065743.html&amp;rft.jtitle=Kim+Bellware+article+on+huffingtonpost.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-38"><span class="mw-cite-backlink"><b><a href="#cite_ref-38">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="http://www.huffingtonpost.com/2014/03/27/mozilla-ceo-prop-8-_n_5042660.html">"Mozilla's Appointment Of Brendan Eich As CEO Sparks Controversy After Prop 8 Donation News Re-Emerges"</a>. <i>huffingtonpost.com article</i>. huffingtonpost.com. 27 March 2014<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Mozilla%27s+Appointment+Of+Brendan+Eich+As+CEO+Sparks+Controversy+After+Prop+8+Donation+News+Re-Emerges&amp;rft.date=2014-03-27&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.huffingtonpost.com%2F2014%2F03%2F27%2Fmozilla-ceo-prop-8-_n_5042660.html&amp;rft.jtitle=huffingtonpost.com+article&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-39"><span class="mw-cite-backlink"><b><a href="#cite_ref-39">^</a></b></span> <span class="reference-text"><cite class="citation web">Eidelson, Josh (4 April 2014). <a rel="nofollow" class="external text" href="http://www.salon.com/2014/04/04/okcupids_gay_rights_stunt_has_its_limits_taking_a_deeper_look_at_the_savvy_ploy/">"OkCupid's gay rights stunt has its limits: Taking a deeper look at the savvy ploy"</a>. <i>Josh Eidelson article on salon.com</i>. salon.com<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-07-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=OkCupid%99s+gay+rights+stunt+has+its+limits%3A+Taking+a+deeper+look+at+the+savvy+ploy&amp;rft.aufirst=Josh&amp;rft.aulast=Eidelson&amp;rft.date=2014-04-04&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.salon.com%2F2014%2F04%2F04%2Fokcupids_gay_rights_stunt_has_its_limits_taking_a_deeper_look_at_the_savvy_ploy%2F&amp;rft.jtitle=Josh+Eidelson+article+on+salon.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-manifesto-40"><span class="mw-cite-backlink">^ <a href="#cite_ref-manifesto_40-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-manifesto_40-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="http://www.mozilla.org/about/manifesto/">"Mozilla Manifesto"</a>. Mozilla.org<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-03-21</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Mozilla+Manifesto&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.mozilla.org%2Fabout%2Fmanifesto%2F&amp;rft.pub=Mozilla.org&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-41"><span class="mw-cite-backlink"><b><a href="#cite_ref-41">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="https://www.mozilla.org/en-US/about/manifesto/details/">"The Mozilla Manifesto"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">24 July</span> 2015</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=The+Mozilla+Manifesto&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fwww.mozilla.org%2Fen-US%2Fabout%2Fmanifesto%2Fdetails%2F&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-42"><span class="mw-cite-backlink"><b><a href="#cite_ref-42">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20101128150117/http://download-firefox.org/spread-firefox/gecko-layout-engine-and-mozilla-firefox/">"Gecko Layout Engine"</a>. download-firefox.org. July 17, 2008. Archived from <a rel="nofollow" class="external text" href="http://download-firefox.org/spread-firefox/gecko-layout-engine-and-mozilla-firefox/">the original</a> on 2010-11-28<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-05-10</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Gecko+Layout+Engine&amp;rft.date=2008-07-17&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fdownload-firefox.org%2Fspread-firefox%2Fgecko-layout-engine-and-mozilla-firefox%2F&amp;rft.pub=download-firefox.org&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-w3counter1-43"><span class="mw-cite-backlink"><b><a href="#cite_ref-w3counter1_43-0">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="http://www.w3counter.com/trends">"Web Browser Market Share Trends"</a>. <i>W3Counter</i>. Awio Web Services LLC<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-05-10</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Web+Browser+Market+Share+Trends&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.w3counter.com%2Ftrends&amp;rft.jtitle=W3Counter&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-gs.statcounter.com-44"><span class="mw-cite-backlink"><b><a href="#cite_ref-gs.statcounter.com_44-0">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="http://gs.statcounter.com">"Top 5 Browsers"</a>. <i>StatCounter Global Stats</i>. StatCounter<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-05-10</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Top+5+Browsers&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fgs.statcounter.com&amp;rft.jtitle=StatCounter+Global+Stats&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-getclicky1-45"><span class="mw-cite-backlink"><b><a href="#cite_ref-getclicky1_45-0">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="http://www.getclicky.com/marketshare/global/web-browsers/">"Web browsers (Global marketshare)"</a>. <i>Clicky</i>. Roxr Software Ltd<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-05-10</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Web+browsers+%28Global+marketshare%29&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.getclicky.com%2Fmarketshare%2Fglobal%2Fweb-browsers%2F&amp;rft.jtitle=Clicky&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-46"><span class="mw-cite-backlink"><b><a href="#cite_ref-46">^</a></b></span> <span class="reference-text"><cite class="citation web"><a href="/wiki/Ben_Goodger" title="Ben Goodger">Goodger, Ben</a> (February 6, 2006). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20110623034401/http://weblogs.mozillazine.org/ben/archives/009698.html">"Where Did Firefox Come From?"</a>. Inside Firefox. Archived from <a rel="nofollow" class="external text" href="http://weblogs.mozillazine.org/ben/archives/009698.html">the original</a> on 2011-06-23<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-01-07</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.aufirst=Ben&amp;rft.aulast=Goodger&amp;rft.btitle=Where+Did+Firefox+Come+From%3F&amp;rft.date=2006-02-06&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fweblogs.mozillazine.org%2Fben%2Farchives%2F009698.html&amp;rft.pub=Inside+Firefox&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-47"><span class="mw-cite-backlink"><b><a href="#cite_ref-47">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20070914035447/http://www.ibphoenix.com/main.nfs?a=ibphoenix&amp;page=ibp_Mozilla0">"Mozilla browser becomes Firebird"</a>. IBPhoenix. Archived from <a rel="nofollow" class="external text" href="http://www.ibphoenix.com/main.nfs?a=ibphoenix&amp;page=ibp_Mozilla0">the original</a> on 2007-09-14<span class="reference-accessdate">. Retrieved <span class="nowrap">2013-06-10</span></span>. <q>We at IBPhoenix think that having a browser and a database with the same name in the same space will confuse the market, especially as browsers and databases are often used in the same applications</q></cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Mozilla+browser+becomes+Firebird&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.ibphoenix.com%2Fmain.nfs%3Fa%3Dibphoenix%26page%3Dibp_Mozilla0&amp;rft.pub=IBPhoenix&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-48"><span class="mw-cite-backlink"><b><a href="#cite_ref-48">^</a></b></span> <span class="reference-text"><cite class="citation web">Festa, Paul (May 6, 2003). <a rel="nofollow" class="external text" href="http://news.cnet.com/2100-1032_3-1000146.html">"Mozilla's Firebird gets wings clipped"</a>. <a href="/wiki/CNET_Networks" class="mw-redirect" title="CNET Networks">CNET</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2007-01-30</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.aufirst=Paul&amp;rft.aulast=Festa&amp;rft.btitle=Mozilla%27s+Firebird+gets+wings+clipped&amp;rft.date=2003-05-06&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fnews.cnet.com%2F2100-1032_3-1000146.html&amp;rft.pub=CNET&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-49"><span class="mw-cite-backlink"><b><a href="#cite_ref-49">^</a></b></span> <span class="reference-text"><cite class="citation web">Festa, Paul (February 9, 2004). <a rel="nofollow" class="external text" href="http://news.cnet.com/2100-7344-5156101.html">"Mozilla holds 'fire' in naming fight"</a>. CNET News<span class="reference-accessdate">. Retrieved <span class="nowrap">2007-01-24</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.aufirst=Paul&amp;rft.aulast=Festa&amp;rft.btitle=Mozilla+holds+%27fire%27+in+naming+fight&amp;rft.date=2004-02-09&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fnews.cnet.com%2F2100-7344-5156101.html&amp;rft.pub=CNET+News&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-50"><span class="mw-cite-backlink"><b><a href="#cite_ref-50">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="http://www.mozilla.org/en-US/firefox/mobile/features/">"Mobile features"</a>. Mozilla<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-06-26</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Mobile+features&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.mozilla.org%2Fen-US%2Ffirefox%2Fmobile%2Ffeatures%2F&amp;rft.pub=Mozilla&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-51"><span class="mw-cite-backlink"><b><a href="#cite_ref-51">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="https://wiki.mozilla.org/Mobile/Platforms/Android#System_Requirements">"Mobile System Requirements"</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Mobile+System+Requirements&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fwiki.mozilla.org%2FMobile%2FPlatforms%2FAndroid%23System_Requirements&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-52"><span class="mw-cite-backlink"><b><a href="#cite_ref-52">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="https://support.mozilla.org/en-US/kb/will-firefox-work-my-mobile-device">"Firefox Mobile supported devices"</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Firefox+Mobile+supported+devices&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fsupport.mozilla.org%2Fen-US%2Fkb%2Fwill-firefox-work-my-mobile-device&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-53"><span class="mw-cite-backlink"><b><a href="#cite_ref-53">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="http://www.mirror.co.uk/news/technology/2009/11/09/mozilla-rules-out-firefox-for-iphone-and-blackberry-115875-21809563/">"Mozilla rules out Firefox for iPhone and BlackBerry"</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Mozilla+rules+out+Firefox+for+iPhone+and+BlackBerry&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.mirror.co.uk%2Fnews%2Ftechnology%2F2009%2F11%2F09%2Fmozilla-rules-out-firefox-for-iphone-and-blackberry-115875-21809563%2F&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-54"><span class="mw-cite-backlink"><b><a href="#cite_ref-54">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="http://www.mozilla.org/firefox/os/">"Boot to Gecko Project"</a>. Mozilla. March 2012<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-03-30</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Boot+to+Gecko+Project&amp;rft.date=2012-03&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.mozilla.org%2Ffirefox%2Fos%2F&amp;rft.pub=Mozilla&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-55"><span class="mw-cite-backlink"><b><a href="#cite_ref-55">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="https://www.mozilla.org/en-US/firefox/os/devices/">"Firefox OS - Devices &amp; Availability"</a>. <i>Mozilla</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2015-12-30</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Firefox+OS+-+Devices+%26+Availability&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fwww.mozilla.org%2Fen-US%2Ffirefox%2Fos%2Fdevices%2F&amp;rft.jtitle=Mozilla&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-56"><span class="mw-cite-backlink"><b><a href="#cite_ref-56">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="https://blog.lizardwrangler.com/2012/07/06/thunderbird-stability-and-community-innovation/">"Thunderbird: Stability and Community Innovation | Mitchell's Blog"</a>. <i>blog.lizardwrangler.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2015-04-20</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Thunderbird%3A+Stability+and+Community+Innovation+%7C+Mitchell%27s+Blog&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fblog.lizardwrangler.com%2F2012%2F07%2F06%2Fthunderbird-stability-and-community-innovation%2F&amp;rft.jtitle=blog.lizardwrangler.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-57"><span class="mw-cite-backlink"><b><a href="#cite_ref-57">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="https://lwn.net/Articles/165080/">"Two discontinued browsers"</a>. LWN.net. 21 December 2005<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-08-19</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Two+discontinued+browsers&amp;rft.date=2005-12-21&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Flwn.net%2FArticles%2F165080%2F&amp;rft.pub=LWN.net&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-58"><span class="mw-cite-backlink"><b><a href="#cite_ref-58">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="http://home.kairo.at/blog/2007-06/seamonkey_r_trademarks_registered">"SeaMonkey trademarks registered!"</a>. kairo.at. 2007-05-22<span class="reference-accessdate">. Retrieved <span class="nowrap">2013-06-10</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=SeaMonkey+trademarks+registered%21&amp;rft.date=2007-05-22&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fhome.kairo.at%2Fblog%2F2007-06%2Fseamonkey_r_trademarks_registered&amp;rft.pub=kairo.at&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-59"><span class="mw-cite-backlink"><b><a href="#cite_ref-59">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="http://www.bugzilla.org/installation-list/">"Bugzilla Installation List"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2014-09-18</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Bugzilla+Installation+List&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.bugzilla.org%2Finstallation-list%2F&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-BE201106-60"><span class="mw-cite-backlink">^ <a href="#cite_ref-BE201106_60-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-BE201106_60-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite class="citation web"><a href="/wiki/Brendan_Eich" title="Brendan Eich">Eich, Brendan</a> (21 June 2011). <a rel="nofollow" class="external text" href="http://brendaneich.com/2011/06/new-javascript-engine-module-owner/">"New JavaScript Engine Module Owner"</a>. BrendanEich.com.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.aufirst=Brendan&amp;rft.aulast=Eich&amp;rft.btitle=New+JavaScript+Engine+Module+Owner&amp;rft.date=2011-06-21&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fbrendaneich.com%2F2011%2F06%2Fnew-javascript-engine-module-owner%2F&amp;rft.pub=BrendanEich.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-61"><span class="mw-cite-backlink"><b><a href="#cite_ref-61">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="https://bugzilla.mozilla.org/show_bug.cgi?id=759422#c0">"Bug 759422 - Remove use of e4x in account creation"</a>. Bugzilla@Mozilla. 2012-08-17<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-08-18</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Bug+759422+-+Remove+use+of+e4x+in+account+creation&amp;rft.date=2012-08-17&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fbugzilla.mozilla.org%2Fshow_bug.cgi%3Fid%3D759422%23c0&amp;rft.pub=Bugzilla%40Mozilla&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-62"><span class="mw-cite-backlink"><b><a href="#cite_ref-62">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="https://developer.mozilla.org/en-US/docs/SpiderMonkey">"SpiderMonkey"</a>. Mozilla Developer Network. 2012-08-15<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-08-18</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=SpiderMonkey&amp;rft.date=2012-08-15&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fdeveloper.mozilla.org%2Fen-US%2Fdocs%2FSpiderMonkey&amp;rft.pub=Mozilla+Developer+Network&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-63"><span class="mw-cite-backlink"><b><a href="#cite_ref-63">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="http://www.mozilla.org/rhino/history.html">"Rhino History"</a>. <a href="/wiki/Mozilla_Foundation" title="Mozilla Foundation">Mozilla Foundation</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2008-03-20</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Rhino+History&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.mozilla.org%2Frhino%2Fhistory.html&amp;rft.pub=Mozilla+Foundation&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-64"><span class="mw-cite-backlink"><b><a href="#cite_ref-64">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="https://github.com/servo/servo/wiki/Roadmap">"Roadmap"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">10 May</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Roadmap&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fgithub.com%2Fservo%2Fservo%2Fwiki%2FRoadmap&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-65"><span class="mw-cite-backlink"><b><a href="#cite_ref-65">^</a></b></span> <span class="reference-text"><cite class="citation web">Larabel, Michael. <a rel="nofollow" class="external text" href="https://www.phoronix.com/scan.php?page=news_item&amp;px=Servo-9-May-2016">"Servo Continues Making Progress For Shipping Components In Gecko, Browser.html"</a>. <i>Phoronix.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">10 May</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Servo+Continues+Making+Progress+For+Shipping+Components+In+Gecko%2C+Browser.html&amp;rft.aufirst=Michael&amp;rft.aulast=Larabel&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fwww.phoronix.com%2Fscan.php%3Fpage%3Dnews_item%26px%3DServo-9-May-2016&amp;rft.jtitle=Phoronix.com&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-66"><span class="mw-cite-backlink"><b><a href="#cite_ref-66">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="https://mozvr.com">"Mozilla VR"</a>. <i>Mozilla VR</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2016-10-27</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Mozilla+VR&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fmozvr.com&amp;rft.jtitle=Mozilla+VR&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-67"><span class="mw-cite-backlink"><b><a href="#cite_ref-67">^</a></b></span> <span class="reference-text"><cite class="citation"><a rel="nofollow" class="external text" href="https://login.persona.org/"><i>Persona</i></a>, Mozilla</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Persona&amp;rft.genre=book&amp;rft_id=https%3A%2F%2Flogin.persona.org%2F&amp;rft.pub=Mozilla&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-68"><span class="mw-cite-backlink"><b><a href="#cite_ref-68">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="https://developer.mozilla.org/en-US/Persona">"Persona"</a>. <i>Mozilla Developer Network</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2016-10-27</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Persona&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fdeveloper.mozilla.org%2Fen-US%2FPersona&amp;rft.jtitle=Mozilla+Developer+Network&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-69"><span class="mw-cite-backlink"><b><a href="#cite_ref-69">^</a></b></span> <span class="reference-text"><cite class="citation"><a rel="nofollow" class="external text" href="https://webmaker.org/en-US/about/"><i>About Mozilla Webmaker</i></a>, Mozilla</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=About+Mozilla+Webmaker&amp;rft.genre=book&amp;rft_id=https%3A%2F%2Fwebmaker.org%2Fen-US%2Fabout%2F&amp;rft.pub=Mozilla&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-lifehacker.com-70"><span class="mw-cite-backlink">^ <a href="#cite_ref-lifehacker.com_70-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-lifehacker.com_70-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite class="citation web">Alan Henry. <a rel="nofollow" class="external text" href="http://lifehacker.com/mozilla-webmaker-teaches-you-how-to-build-web-sites-ap-1553277374">"Mozilla Webmaker Teaches You to Build Web Sites, Apps, and More"</a>. <i>Lifehacker</i>. Gawker Media.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.atitle=Mozilla+Webmaker+Teaches+You+to+Build+Web+Sites%2C+Apps%2C+and+More&amp;rft.au=Alan+Henry&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Flifehacker.com%2Fmozilla-webmaker-teaches-you-how-to-build-web-sites-ap-1553277374&amp;rft.jtitle=Lifehacker&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-71"><span class="mw-cite-backlink"><b><a href="#cite_ref-71">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="https://wiki.mozilla.org/Air_Mozilla">"Air Mozilla"</a>. Mozilla Wiki.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Air+Mozilla&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fwiki.mozilla.org%2FAir_Mozilla&amp;rft.pub=Mozilla+Wiki&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ <li id="cite_note-72"><span class="mw-cite-backlink"><b><a href="#cite_ref-72">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="https://blog.mozilla.org/mrz/2012/04/17/air-mozilla-reboot-phase-i/">"Air Mozilla Reboot, Phase I"</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMozilla&amp;rft.btitle=Air+Mozilla+Reboot%2C+Phase+I&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fblog.mozilla.org%2Fmrz%2F2012%2F04%2F17%2Fair-mozilla-reboot-phase-i%2F&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span>
+ </span>
+ </li>
+ </ol>
+ </div>
+ <p><a rel="nofollow" class="external text" href="http://www.techsive.com/2014/09/how-to-resume-failed-downloads-in.html">Constant downloads failure in firefox</a></p>
+ <h2><span class="mw-headline" id="External_links">External links</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Mozilla&amp;action=edit&amp;section=36" title="Edit section: External links">edit</a><span class="mw-editsection-bracket">]</span></span>
+ </h2>
+ <table role="presentation" class="mbox-small plainlinks sistersitebox" style="border:1px solid #aaa;background-color:#f9f9f9">
+ <tr>
+ <td class="mbox-image">
+ <a href="/wiki/File:Commons-logo.svg" class="image"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/30px-Commons-logo.svg.png" width="30" height="40" class="noviewer" srcset="//upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/45px-Commons-logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/59px-Commons-logo.svg.png 2x" data-file-width="1024" data-file-height="1376" /></a>
+ </td>
+ <td class="mbox-text plainlist">Wikimedia Commons has media related to <i><b><a href="https://commons.wikimedia.org/wiki/Category:Mozilla" class="extiw" title="commons:Category:Mozilla">Mozilla</a></b></i>.</td>
+ </tr>
+ </table>
+ <ul>
+ <li><span class="official-website"><span class="url"><a rel="nofollow" class="external text" href="http://mozilla.org/">Official website</a></span></span>, including <a rel="nofollow" class="external text" href="https://www.mozilla.org/en-US/about/manifesto/">the Mozilla Manifesto</a></li>
+ <li><a rel="nofollow" class="external text" href="https://wiki.mozilla.org/">Mozilla Wiki</a>(<a href="https://wiki.mozilla.org/Timeline" class="extiw" title="mozillawiki:Timeline">Major time line of community development</a>)</li>
+ <li><a rel="nofollow" class="external text" href="//hg.mozilla.org/">Mozilla Mercurial Repository</a></li>
+ </ul>
+ <div role="navigation" class="navbox" aria-labelledby="Mozilla" style="padding:3px">
+ <table class="nowraplinks hlist collapsible collapsed navbox-inner" style="border-spacing:0;background:transparent;color:inherit">
+ <tr>
+ <th scope="col" class="navbox-title" colspan="2">
+ <div class="plainlinks hlist navbar mini">
+ <ul>
+ <li class="nv-view"><a href="/wiki/Template:Mozilla" title="Template:Mozilla"><abbr title="View this template" style=";;background:none transparent;border:none;">v</abbr></a></li>
+ <li class="nv-talk"><a href="/wiki/Template_talk:Mozilla" title="Template talk:Mozilla"><abbr title="Discuss this template" style=";;background:none transparent;border:none;">t</abbr></a></li>
+ <li class="nv-edit"><a class="external text" href="//en.wikipedia.org/w/index.php?title=Template:Mozilla&amp;action=edit"><abbr title="Edit this template" style=";;background:none transparent;border:none;">e</abbr></a></li>
+ </ul>
+ </div>
+ <div id="Mozilla" style="font-size:114%"><strong class="selflink">Mozilla</strong></div>
+ </th>
+ </tr>
+ <tr style="height:2px">
+ <td colspan="2"></td>
+ </tr>
+ <tr>
+ <td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0px">
+ <div style="padding:0em 0.25em"></div>
+ <table class="nowraplinks collapsible collapsed navbox-subgroup" style="border-spacing:0">
+ <tr>
+ <th scope="col" class="navbox-title" colspan="2" style=";"><span style="float:left;width:6em">&#160;</span>
+ <div id="Projects" style="font-size:114%">Projects</div>
+ </th>
+ </tr>
+ <tr style="height:2px">
+ <td colspan="2"></td>
+ </tr>
+ <tr>
+ <td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0px">
+ <div style="padding:0em 0.25em"></div>
+ <table class="nowraplinks navbox-subgroup" style="border-spacing:0">
+ <tr>
+ <th scope="row" class="navbox-group">Mozilla<br /> Labs
+ </th>
+ <td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px">
+ <div style="padding:0em 0.25em">
+ <ul>
+ <li><a href="/wiki/Bonsai_(software)" title="Bonsai (software)">Bonsai</a></li>
+ <li><a href="/wiki/Bugzilla" title="Bugzilla">Bugzilla</a></li>
+ <li><a href="/wiki/ChatZilla" title="ChatZilla">ChatZilla</a></li>
+ <li><a href="/wiki/Electrolysis_Project" class="mw-redirect" title="Electrolysis Project">Electrolysis Project</a></li>
+ <li><a href="/wiki/Jetpack_(Firefox_project)" title="Jetpack (Firefox project)">Jetpack</a></li>
+ <li><a href="/wiki/Lightning_(software)" title="Lightning (software)">Lightning</a></li>
+ <li><a href="/wiki/Mozilla_Persona" title="Mozilla Persona">Persona</a></li>
+ <li><a href="/wiki/Mozilla_Prism" title="Mozilla Prism">Prism</a></li>
+ <li><a href="/wiki/Mozilla_Raindrop" title="Mozilla Raindrop">Raindrop</a></li>
+ <li><a href="/wiki/Mozilla_Skywriter" title="Mozilla Skywriter">Skywriter</a></li>
+ <li><a href="/wiki/Mozilla_Sunbird" title="Mozilla Sunbird">Sunbird</a></li>
+ <li><a href="/wiki/PDF.js" title="PDF.js">PDF.js</a></li>
+ <li><a href="/wiki/Firefox_Sync" title="Firefox Sync">Sync</a></li>
+ <li>Tinderbox</li>
+ <li><a href="/wiki/Ubiquity_(Firefox)" title="Ubiquity (Firefox)">Ubiquity</a></li>
+ </ul>
+ </div>
+ </td>
+ </tr>
+ <tr style="height:2px">
+ <td colspan="2"></td>
+ </tr>
+ <tr>
+ <th scope="row" class="navbox-group">Mozilla<br /> Research
+ </th>
+ <td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px">
+ <div style="padding:0em 0.25em">
+ <ul>
+ <li><a href="/wiki/Daala" title="Daala">Daala</a></li>
+ <li><a href="/wiki/Firefox_OS" title="Firefox OS">Firefox OS</a></li>
+ <li><a href="/wiki/OpenFlint" title="OpenFlint">OpenFlint</a></li>
+ <li><a href="/wiki/Rust_(programming_language)" title="Rust (programming language)">Rust</a></li>
+ <li><a href="/wiki/Servo_(layout_engine)" title="Servo (layout engine)">Servo</a></li>
+ <li><a href="/wiki/Shumway_(software)" title="Shumway (software)">Shumway</a></li>
+ </ul>
+ </div>
+ </td>
+ </tr>
+ <tr style="height:2px">
+ <td colspan="2"></td>
+ </tr>
+ <tr>
+ <th scope="row" class="navbox-group">Mozilla<br /> Foundation
+ </th>
+ <td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px">
+ <div style="padding:0em 0.25em"></div>
+ <table class="nowraplinks navbox-subgroup" style="border-spacing:0">
+ <tr>
+ <td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0px">
+ <div style="padding:0em 0.25em">
+ <ul>
+ <li><a href="/wiki/Firefox" title="Firefox">Firefox</a>
+ <ul>
+ <li><i><a href="/wiki/Firefox_1" class="mw-redirect" title="Firefox 1">1</a></i></li>
+ <li><i><a href="/wiki/Firefox_1.5" class="mw-redirect" title="Firefox 1.5">1.5</a></i></li>
+ <li><i><a href="/wiki/Firefox_2" title="Firefox 2">2</a></i></li>
+ <li><i><a href="/wiki/Firefox_3" class="mw-redirect" title="Firefox 3">3</a></i></li>
+ <li><i><a href="/wiki/Firefox_3.5" title="Firefox 3.5">3.5</a></i></li>
+ <li><a href="/wiki/Firefox_3.6" title="Firefox 3.6">3.6</a></li>
+ <li><i><a href="/wiki/Firefox_4" title="Firefox 4">4</a></i></li>
+ <li><i><a href="/wiki/History_of_Firefox#Rapid_release" title="History of Firefox">5–current</a></i></li>
+ <li><a href="/wiki/History_of_Firefox#Future_releases" title="History of Firefox">Future releases</a></li>
+ <li><a href="/wiki/Firefox_for_mobile" class="mw-redirect" title="Firefox for mobile">for Mobile</a></li>
+ <li><a href="/wiki/Firefox_for_iOS" title="Firefox for iOS">for iOS</a></li>
+ </ul>
+ </li>
+ <li><a href="/wiki/SeaMonkey" title="SeaMonkey">SeaMonkey</a></li>
+ <li><a href="/wiki/Mozilla_Thunderbird" title="Mozilla Thunderbird">Thunderbird</a></li>
+ </ul>
+ </div>
+ </td>
+ </tr>
+ <tr style="height:2px">
+ <td colspan="2"></td>
+ </tr>
+ <tr>
+ <th scope="row" class="navbox-group">Origins</th>
+ <td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px">
+ <div style="padding:0em 0.25em">
+ <ul>
+ <li><a href="/wiki/Mozilla_Application_Suite" title="Mozilla Application Suite">Mozilla Application Suite</a></li>
+ <li><a href="/wiki/Netscape_Navigator" title="Netscape Navigator">Netscape Navigator</a></li>
+ <li><a href="/wiki/Netscape_Communicator" title="Netscape Communicator">Netscape Communicator</a></li>
+ <li><a href="/wiki/Netscape" title="Netscape">Netscape Communications</a></li>
+ <li><a href="/wiki/Beonex_Communicator" title="Beonex Communicator">Beonex Communicator</a></li>
+ </ul>
+ </div>
+ </td>
+ </tr>
+ <tr style="height:2px">
+ <td colspan="2"></td>
+ </tr>
+ <tr>
+ <th scope="row" class="navbox-group">Forks</th>
+ <td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px">
+ <div style="padding:0em 0.25em">
+ <ul>
+ <li><a href="/wiki/GNewSense#Comparison_with_other_distributions" title="GNewSense">BurningDog</a></li>
+ <li><a href="/wiki/Classilla" title="Classilla">Classilla</a></li>
+ <li><i><a href="/wiki/Flock_(web_browser)" title="Flock (web browser)">Flock</a></i></li>
+ <li><a href="/wiki/Gnuzilla" title="Gnuzilla">Gnuzilla</a></li>
+ <li><a href="/wiki/Mozilla_software_rebranded_by_Debian#Iceape" title="Mozilla software rebranded by Debian">Iceape</a></li>
+ <li><a href="/wiki/GNU_IceCat" title="GNU IceCat">IceCat</a></li>
+ <li><a href="/wiki/Mozilla_software_rebranded_by_Debian#Icedove" title="Mozilla software rebranded by Debian">Icedove</a></li>
+ <li><a href="/wiki/Mozilla_software_rebranded_by_Debian#Iceowl" title="Mozilla software rebranded by Debian">Iceowl</a></li>
+ <li><a href="/wiki/Miro_(software)" title="Miro (software)">Miro</a></li>
+ <li><i><a href="/wiki/Netscape_Navigator_9" title="Netscape Navigator 9">Netscape 9</a></i></li>
+ <li><a href="/wiki/Pale_Moon_(web_browser)" title="Pale Moon (web browser)">Pale Moon</a></li>
+ <li><a href="/wiki/Firefox_Portable" title="Firefox Portable">Portable Edition</a></li>
+ <li><i><a href="/wiki/Swiftfox" title="Swiftfox">Swiftfox</a></i></li>
+ <li><i><a href="/wiki/Swiftweasel" title="Swiftweasel">Swiftweasel</a></i></li>
+ <li><a href="/wiki/TenFourFox" title="TenFourFox">TenFourFox</a></li>
+ <li><i><a href="/wiki/XB_Browser" title="XB Browser">xB Browser</a></i></li>
+ </ul>
+ </div>
+ </td>
+ </tr>
+ <tr style="height:2px">
+ <td colspan="2"></td>
+ </tr>
+ <tr>
+ <th scope="row" class="navbox-group">Frameworks</th>
+ <td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px">
+ <div style="padding:0em 0.25em">
+ <ul>
+ <li><a href="/wiki/Add-on_(Mozilla)" title="Add-on (Mozilla)">add-on</a></li>
+ <li><a href="/wiki/Gecko_(software)" title="Gecko (software)">Gecko</a></li>
+ <li><a href="/wiki/Mozilla_application_framework" title="Mozilla application framework">Necko</a></li>
+ <li><a href="/wiki/NPAPI" title="NPAPI">NPAPI</a>
+ <ul>
+ <li><a href="/wiki/NPAPI#XPConnect" title="NPAPI">XPConnect</a></li>
+ </ul>
+ </li>
+ <li><a href="/wiki/XBL" title="XBL">XBL</a></li>
+ <li><a href="/wiki/XPCOM" title="XPCOM">XPCOM</a></li>
+ <li><a href="/wiki/XPInstall" title="XPInstall">XPInstall</a></li>
+ <li><a href="/wiki/XUL" title="XUL">XUL</a></li>
+ <li><a href="/wiki/XULRunner" title="XULRunner">XULRunner</a></li>
+ </ul>
+ </div>
+ </td>
+ </tr>
+ <tr style="height:2px">
+ <td colspan="2"></td>
+ </tr>
+ <tr>
+ <th scope="row" class="navbox-group">Components</th>
+ <td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px">
+ <div style="padding:0em 0.25em">
+ <ul>
+ <li><a href="/w/index.php?title=Application_Object_Model&amp;action=edit&amp;redlink=1" class="new" title="Application Object Model (page does not exist)">Application Object Model</a></li>
+ <li><a href="/wiki/Mozilla_Composer" title="Mozilla Composer">Composer</a></li>
+ <li><a href="/wiki/Netscape_Portable_Runtime" title="Netscape Portable Runtime">NSPR</a></li>
+ <li><a href="/wiki/Network_Security_Services" title="Network Security Services">NSS</a></li>
+ <li><a href="/wiki/Rhino_(JavaScript_engine)" title="Rhino (JavaScript engine)">Rhino</a></li>
+ <li><a href="/wiki/SpiderMonkey" title="SpiderMonkey">SpiderMonkey</a></li>
+ <li><a href="/wiki/Tamarin_(software)" title="Tamarin (software)">Tamarin</a></li>
+ <li><a href="/wiki/Venkman" title="Venkman">Venkman</a></li>
+ </ul>
+ </div>
+ </td>
+ </tr>
+ <tr style="height:2px">
+ <td colspan="2"></td>
+ </tr>
+ <tr>
+ <th scope="row" class="navbox-group">Discontinued</th>
+ <td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px">
+ <div style="padding:0em 0.25em">
+ <ul>
+ <li><a href="/wiki/Mozilla_Calendar_Project" title="Mozilla Calendar Project">Calendar Project</a></li>
+ <li><a href="/wiki/Camino_(web_browser)" title="Camino (web browser)">Camino</a></li>
+ <li><a href="/wiki/Firefox_Home" class="mw-redirect" title="Firefox Home">Firefox Home</a></li>
+ <li><a href="/wiki/Mozilla_Grendel" title="Mozilla Grendel">Grendel</a></li>
+ <li><a href="/wiki/Minimo" title="Minimo">Minimo</a></li>
+ </ul>
+ </div>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr style="height:2px">
+ <td colspan="2"></td>
+ </tr>
+ <tr>
+ <td colspan="2" class="navbox-list navbox-even" style="width:100%;padding:0px">
+ <div style="padding:0em 0.25em"></div>
+ <table class="nowraplinks collapsible collapsed navbox-subgroup" style="border-spacing:0">
+ <tr>
+ <th scope="col" class="navbox-title" colspan="2" style=";"><span style="float:left;width:6em">&#160;</span>
+ <div id="Organization" style="font-size:114%">Organization</div>
+ </th>
+ </tr>
+ <tr style="height:2px">
+ <td colspan="2"></td>
+ </tr>
+ <tr>
+ <td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0px">
+ <div style="padding:0em 0.25em"></div>
+ <table class="nowraplinks navbox-subgroup" style="border-spacing:0">
+ <tr>
+ <th scope="row" class="navbox-group"><strong class="selflink">Foundation</strong></th>
+ <td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px">
+ <div style="padding:0em 0.25em">
+ <ul>
+ <li><i>Former <a href="/wiki/Mozilla_Organization" class="mw-redirect" title="Mozilla Organization">Mozilla Organization</a></i></li>
+ <li><a href="/wiki/Mozilla_Foundation" title="Mozilla Foundation">Mozilla Foundation</a></li>
+ </ul>
+ </div>
+ </td>
+ </tr>
+ <tr style="height:2px">
+ <td colspan="2"></td>
+ </tr>
+ <tr>
+ <th scope="row" class="navbox-group">Subsidiaries</th>
+ <td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px">
+ <div style="padding:0em 0.25em">
+ <ul>
+ <li><a href="/wiki/Mozilla_Corporation" title="Mozilla Corporation">Mozilla Corporation</a></li>
+ <li><a href="/wiki/Mozilla_Messaging" title="Mozilla Messaging">Mozilla Messaging</a></li>
+ <li><a href="/wiki/Mozilla_Foundation#Mozilla_Online" title="Mozilla Foundation">Mozilla Online</a></li>
+ </ul>
+ </div>
+ </td>
+ </tr>
+ <tr style="height:2px">
+ <td colspan="2"></td>
+ </tr>
+ <tr>
+ <th scope="row" class="navbox-group">Official affiliates</th>
+ <td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px">
+ <div style="padding:0em 0.25em">
+ <ul>
+ <li><a href="/wiki/Mozilla_China" title="Mozilla China">Mozilla China</a></li>
+ <li><a href="/wiki/Mozilla_Europe" title="Mozilla Europe">Mozilla Europe</a></li>
+ <li><a href="/wiki/Mozilla_Japan" title="Mozilla Japan">Mozilla Japan</a></li>
+ <li><a href="/wiki/Mozilla_Taiwan" title="Mozilla Taiwan">Mozilla Taiwan</a></li>
+ </ul>
+ </div>
+ </td>
+ </tr>
+ <tr style="height:2px">
+ <td colspan="2"></td>
+ </tr>
+ <tr>
+ <th scope="row" class="navbox-group">People</th>
+ <td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px">
+ <div style="padding:0em 0.25em">
+ <ul>
+ <li><a href="/wiki/Mitchell_Baker" title="Mitchell Baker">Mitchell Baker</a></li>
+ <li><a href="/w/index.php?title=David_Baron_(Computer_Scientist)&amp;action=edit&amp;redlink=1" class="new" title="David Baron (Computer Scientist) (page does not exist)">David Baron</a></li>
+ <li><a href="/wiki/Sheeri_Cabral" title="Sheeri Cabral">Sheeri Cabral</a></li>
+ <li><a href="/wiki/Tantek_%C3%87elik" title="Tantek Çelik">Tantek Çelik</a></li>
+ <li><a href="/wiki/Asa_Dotzler" title="Asa Dotzler">Asa Dotzler</a></li>
+ <li><a href="/wiki/Brendan_Eich" title="Brendan Eich">Brendan Eich</a></li>
+ <li><a href="/wiki/John_Hammink" title="John Hammink">John Hammink</a></li>
+ <li><a href="/w/index.php?title=Robert_O%27Callahan&amp;action=edit&amp;redlink=1" class="new" title="Robert O'Callahan (page does not exist)">Robert O'Callahan</a></li>
+ <li><a href="/wiki/Johnny_Stenb%C3%A4ck" title="Johnny Stenbäck">Johnny Stenbäck</a></li>
+ <li><a href="/wiki/Doug_Turner_(Mozilla)" title="Doug Turner (Mozilla)">Doug Turner</a></li>
+ <li><a href="/w/index.php?title=Boris_Zbarsky&amp;action=edit&amp;redlink=1" class="new" title="Boris Zbarsky (page does not exist)">Boris Zbarsky</a></li>
+ </ul>
+ </div>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr style="height:2px">
+ <td colspan="2"></td>
+ </tr>
+ <tr>
+ <td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0px">
+ <div style="padding:0em 0.25em"></div>
+ <table class="nowraplinks collapsible collapsed navbox-subgroup" style="border-spacing:0">
+ <tr>
+ <th scope="col" class="navbox-title" colspan="2" style=";"><span style="float:left;width:6em">&#160;</span>
+ <div id="Community" style="font-size:114%">Community</div>
+ </th>
+ </tr>
+ <tr style="height:2px">
+ <td colspan="2"></td>
+ </tr>
+ <tr>
+ <td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0px">
+ <div style="padding:0em 0.25em">
+ <ul>
+ <li><a href="/wiki/Mozdev.org" title="Mozdev.org">mozdev.org</a></li>
+ <li><a href="/wiki/Mozilla_Add-ons" class="mw-redirect" title="Mozilla Add-ons">Mozilla Add-ons</a></li>
+ <li><a href="/wiki/Mozilla_Developer_Network" title="Mozilla Developer Network">Mozilla Developer Network</a></li>
+ <li><a href="/wiki/MozillaZine" title="MozillaZine">MozillaZine</a></li>
+ <li><a href="/wiki/Firefox#Promotion" title="Firefox">Spread Firefox</a></li>
+ </ul>
+ </div>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr style="height:2px">
+ <td colspan="2"></td>
+ </tr>
+ <tr>
+ <td colspan="2" class="navbox-list navbox-even" style="width:100%;padding:0px">
+ <div style="padding:0em 0.25em"></div>
+ <table class="nowraplinks collapsible collapsed navbox-subgroup" style="border-spacing:0">
+ <tr>
+ <th scope="col" class="navbox-title" colspan="2" style=";"><span style="float:left;width:6em">&#160;</span>
+ <div id="Other_topics" style="font-size:114%">Other topics</div>
+ </th>
+ </tr>
+ <tr style="height:2px">
+ <td colspan="2"></td>
+ </tr>
+ <tr>
+ <td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0px">
+ <div style="padding:0em 0.25em">
+ <ul>
+ <li><i><a href="/wiki/The_Book_of_Mozilla" title="The Book of Mozilla">The Book of Mozilla</a></i></li>
+ <li><i><a href="/wiki/Code_Rush" title="Code Rush">Code Rush</a></i></li>
+ <li><a href="/wiki/Mozilla_Public_License" title="Mozilla Public License">Mozilla Public License</a></li>
+ <li><a href="/wiki/Mozilla_localizations" title="Mozilla localizations">Localizations</a></li>
+ <li><a href="/wiki/Mozilla_(mascot)" title="Mozilla (mascot)">Mascot</a></li>
+ <li><a href="/wiki/Mozilla_software_rebranded_by_Debian" title="Mozilla software rebranded by Debian">Rebranding / forking</a></li>
+ </ul>
+ </div>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </div>
+ <div role="navigation" class="navbox" aria-labelledby="Free_and_open-source_software" style="padding:3px">
+ <table class="nowraplinks hlist collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit">
+ <tr>
+ <th scope="col" class="navbox-title" colspan="2">
+ <div class="plainlinks hlist navbar mini">
+ <ul>
+ <li class="nv-view"><a href="/wiki/Template:FOSS" title="Template:FOSS"><abbr title="View this template" style=";;background:none transparent;border:none;">v</abbr></a></li>
+ <li class="nv-talk"><a href="/wiki/Template_talk:FOSS" title="Template talk:FOSS"><abbr title="Discuss this template" style=";;background:none transparent;border:none;">t</abbr></a></li>
+ <li class="nv-edit"><a class="external text" href="//en.wikipedia.org/w/index.php?title=Template:FOSS&amp;action=edit"><abbr title="Edit this template" style=";;background:none transparent;border:none;">e</abbr></a></li>
+ </ul>
+ </div>
+ <div id="Free_and_open-source_software" style="font-size:114%"><a href="/wiki/Free_and_open-source_software" title="Free and open-source software">Free and open-source software</a></div>
+ </th>
+ </tr>
+ <tr style="height:2px">
+ <td colspan="2"></td>
+ </tr>
+ <tr>
+ <th scope="row" class="navbox-group">General</th>
+ <td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px">
+ <div style="padding:0em 0.25em">
+ <ul>
+ <li><a href="/wiki/Alternative_terms_for_free_software" title="Alternative terms for free software">Alternative terms for free software</a></li>
+ <li><a href="/wiki/Comparison_of_open-source_and_closed-source_software" title="Comparison of open-source and closed-source software">Comparison of open-source and closed-source software</a></li>
+ <li><a href="/wiki/Comparison_of_source_code_hosting_facilities" title="Comparison of source code hosting facilities">Comparison of source code hosting facilities</a></li>
+ <li><a href="/wiki/Free_software" title="Free software">Free software</a></li>
+ <li><a href="/wiki/List_of_free_software_project_directories" title="List of free software project directories">Free software project directories</a></li>
+ <li><a href="/wiki/Gratis_versus_libre" title="Gratis versus libre">Gratis versus libre</a></li>
+ <li><a href="/wiki/Long-term_support" title="Long-term support">Long-term support</a></li>
+ <li><a href="/wiki/Open-source_software" title="Open-source software">Open-source software</a></li>
+ <li><a href="/wiki/Open-source_software_development" title="Open-source software development">Open-source software development</a></li>
+ <li><a href="/wiki/Outline_of_free_software" title="Outline of free software">Outline</a></li>
+ </ul>
+ </div>
+ </td>
+ </tr>
+ <tr style="height:2px">
+ <td colspan="2"></td>
+ </tr>
+ <tr>
+ <th scope="row" class="navbox-group"><a href="/wiki/List_of_free_and_open-source_software_packages" title="List of free and open-source software packages">Software<br />
+packages</a></th>
+ <td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px">
+ <div style="padding:0em 0.25em">
+ <ul>
+ <li><a href="/wiki/Comparison_of_free_software_for_audio" title="Comparison of free software for audio">Audio</a></li>
+ <li><a href="/wiki/List_of_open-source_bioinformatics_software" title="List of open-source bioinformatics software">Bioinformatics</a></li>
+ <li><a href="/wiki/List_of_open-source_codecs" title="List of open-source codecs">Codecs</a></li>
+ <li><a href="/wiki/List_of_collaborative_software#Open_source_software" title="List of collaborative software">Collaboration</a></li>
+ <li><a href="/wiki/Comparison_of_open-source_configuration_management_software" title="Comparison of open-source configuration management software">Configuration management</a></li>
+ <li><a href="/wiki/Device_driver#Open_drivers" title="Device driver">Device drivers</a>
+ <ul>
+ <li><a href="/wiki/Free_and_open-source_graphics_device_driver" title="Free and open-source graphics device driver">Graphics</a></li>
+ <li><a href="/wiki/Comparison_of_open-source_wireless_drivers" title="Comparison of open-source wireless drivers">Wireless</a></li>
+ </ul>
+ </li>
+ <li><a href="/wiki/Comparison_of_free_geophysics_software" title="Comparison of free geophysics software">Geophysics</a></li>
+ <li><a href="/wiki/List_of_open-source_health_software" title="List of open-source health software">Health</a></li>
+ <li><a href="/wiki/List_of_open-source_software_for_mathematics" title="List of open-source software for mathematics">Mathematics</a></li>
+ <li><a href="/wiki/Comparison_of_open-source_operating_systems" title="Comparison of open-source operating systems">Operating systems</a></li>
+ <li><a href="/wiki/Comparison_of_open-source_programming_language_licensing" title="Comparison of open-source programming language licensing">Programming languages</a></li>
+ <li><a href="/wiki/List_of_open-source_routing_platforms" title="List of open-source routing platforms">Routing</a></li>
+ <li><a href="/wiki/List_of_statistical_packages#Open-source_statistical_packages" title="List of statistical packages">Statistics</a></li>
+ <li><a href="/wiki/List_of_free_television_software" title="List of free television software">Television</a></li>
+ <li><a href="/wiki/List_of_open-source_video_games" title="List of open-source video games">Video games</a></li>
+ <li><a href="/wiki/List_of_free_software_web_applications" title="List of free software web applications">Web applications</a>
+ <ul>
+ <li><a href="/wiki/List_of_content_management_systems#Open_source_software" title="List of content management systems">Content management systems</a></li>
+ <li><a href="/wiki/Comparison_of_free_software_e-commerce_web_application_frameworks" class="mw-redirect" title="Comparison of free software e-commerce web application frameworks">E-commerce</a></li>
+ </ul>
+ </li>
+ <li><a href="/wiki/List_of_word_processors#Free_and_open-source_software" title="List of word processors">Word processors</a></li>
+ <li><a href="/wiki/List_of_free_and_open-source_Android_applications" title="List of free and open-source Android applications">Android apps</a></li>
+ <li><a href="/wiki/List_of_free_and_open-source_iOS_applications" title="List of free and open-source iOS applications">iOS apps</a></li>
+ <li><a href="/wiki/List_of_commercial_open-source_applications_and_services" title="List of commercial open-source applications and services">Commercial</a></li>
+ <li><a href="/wiki/List_of_trademarked_open-source_software" title="List of trademarked open-source software">Trademarked</a></li>
+ <li><a href="/wiki/List_of_formerly_proprietary_software" title="List of formerly proprietary software">Formerly proprietary</a></li>
+ </ul>
+ </div>
+ </td>
+ </tr>
+ <tr style="height:2px">
+ <td colspan="2"></td>
+ </tr>
+ <tr>
+ <th scope="row" class="navbox-group">Community</th>
+ <td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px">
+ <div style="padding:0em 0.25em">
+ <ul>
+ <li><a href="/wiki/Free_software_movement" title="Free software movement">Free software movement</a></li>
+ <li><a href="/wiki/History_of_free_and_open-source_software" title="History of free and open-source software">History</a></li>
+ <li><a href="/wiki/Open-source_movement" title="Open-source movement">Open-source movement</a></li>
+ <li><a href="/wiki/List_of_free_and_open-source_software_organizations" title="List of free and open-source software organizations">Organizations</a></li>
+ <li><a href="/wiki/List_of_free-software_events" title="List of free-software events">Events</a></li>
+ </ul>
+ </div>
+ </td>
+ </tr>
+ <tr style="height:2px">
+ <td colspan="2"></td>
+ </tr>
+ <tr>
+ <th scope="row" class="navbox-group"><a href="/wiki/Free_software_license" title="Free software license">Licenses</a></th>
+ <td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px">
+ <div style="padding:0em 0.25em">
+ <ul>
+ <li><a href="/wiki/Apache_License" title="Apache License">Apache</a></li>
+ <li><a href="/wiki/Apple_Public_Source_License" title="Apple Public Source License">APSL</a></li>
+ <li><a href="/wiki/Artistic_License" title="Artistic License">Artistic</a></li>
+ <li><a href="/wiki/Beerware" title="Beerware">Beerware</a></li>
+ <li><a href="/wiki/Boost_Software_License" class="mw-redirect" title="Boost Software License">Boost</a></li>
+ <li><a href="/wiki/BSD_licenses" title="BSD licenses">BSD</a></li>
+ <li><a href="/wiki/CC0" class="mw-redirect" title="CC0">CC0</a></li>
+ <li><a href="/wiki/Common_Development_and_Distribution_License" title="Common Development and Distribution License">CDDL</a></li>
+ <li><a href="/wiki/Eclipse_Public_License" title="Eclipse Public License">EPL</a></li>
+ <li><a href="/wiki/GNU_General_Public_License" title="GNU General Public License">GNU GPL</a></li>
+ <li><a href="/wiki/GNU_Lesser_General_Public_License" title="GNU Lesser General Public License">GNU LGPL</a></li>
+ <li><a href="/wiki/ISC_license" title="ISC license">ISC</a></li>
+ <li><a href="/wiki/MIT_License" title="MIT License">MIT</a></li>
+ <li><a href="/wiki/Mozilla_Public_License" title="Mozilla Public License">MPL</a></li>
+ <li><a href="/wiki/Shared_source#Open_Source_licenses" title="Shared source">Ms-PL/RL</a></li>
+ <li><a href="/wiki/WTFPL" title="WTFPL">WTFPL</a></li>
+ <li><a href="/wiki/Zlib_License" title="Zlib License">zlib</a></li>
+ </ul>
+ </div>
+ </td>
+ </tr>
+ <tr style="height:2px">
+ <td colspan="2"></td>
+ </tr>
+ <tr>
+ <th scope="row" class="navbox-group">License types<br /> and standards</th>
+ <td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px">
+ <div style="padding:0em 0.25em">
+ <ul>
+ <li><a href="/wiki/Comparison_of_free_and_open-source_software_licenses" title="Comparison of free and open-source software licenses">Comparison of free and open-source software licenses</a></li>
+ <li><a href="/wiki/Contributor_License_Agreement" title="Contributor License Agreement">Contributor License Agreement</a></li>
+ <li><a href="/wiki/Copyfree" class="mw-redirect" title="Copyfree">Copyfree</a></li>
+ <li><a href="/wiki/Copyleft" title="Copyleft">Copyleft</a></li>
+ <li><a href="/wiki/Debian_Free_Software_Guidelines" title="Debian Free Software Guidelines">Debian Free Software Guidelines</a></li>
+ <li><a href="/wiki/Definition_of_Free_Cultural_Works" title="Definition of Free Cultural Works">Definition of Free Cultural Works</a></li>
+ <li><a href="/wiki/Free_license" title="Free license">Free license</a></li>
+ <li><a href="/wiki/The_Free_Software_Definition" title="The Free Software Definition">The Free Software Definition</a></li>
+ <li><a href="/wiki/The_Open_Source_Definition" title="The Open Source Definition">The Open Source Definition</a></li>
+ <li><a href="/wiki/Open-source_license" title="Open-source license">Open-source license</a></li>
+ <li><a href="/wiki/Permissive_free_software_licence" class="mw-redirect" title="Permissive free software licence">Permissive free software licence</a></li>
+ <li><a href="/wiki/Public_domain" title="Public domain">Public domain</a></li>
+ <li><a href="/wiki/Viral_license" title="Viral license">Viral license</a></li>
+ </ul>
+ </div>
+ </td>
+ </tr>
+ <tr style="height:2px">
+ <td colspan="2"></td>
+ </tr>
+ <tr>
+ <th scope="row" class="navbox-group">Challenges</th>
+ <td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px">
+ <div style="padding:0em 0.25em">
+ <ul>
+ <li><a href="/wiki/Binary_blob" title="Binary blob">Binary blob</a></li>
+ <li><a href="/wiki/Digital_rights_management" title="Digital rights management">Digital rights management</a></li>
+ <li><a href="/wiki/Hardware_restriction" title="Hardware restriction">Hardware restrictions</a></li>
+ <li><a href="/wiki/License_proliferation" title="License proliferation">License proliferation</a></li>
+ <li><a href="/wiki/Mozilla_Corporation_software_rebranded_by_the_Debian_project" class="mw-redirect" title="Mozilla Corporation software rebranded by the Debian project">Mozilla software rebranding</a></li>
+ <li><a href="/wiki/Proprietary_software" title="Proprietary software">Proprietary software</a></li>
+ <li><a href="/wiki/SCO/Linux_controversies" title="SCO/Linux controversies">SCO/Linux controversies</a></li>
+ <li><a href="/wiki/UEFI_Secure_Boot#Secure_boot" class="mw-redirect" title="UEFI Secure Boot">Secure boot</a></li>
+ <li><a href="/wiki/Software_patents_and_free_software" title="Software patents and free software">Software patents</a></li>
+ <li><a href="/wiki/Open-source_software_security" title="Open-source software security">Software security</a></li>
+ <li><a href="/wiki/Trusted_Computing" title="Trusted Computing">Trusted Computing</a></li>
+ </ul>
+ </div>
+ </td>
+ </tr>
+ <tr style="height:2px">
+ <td colspan="2"></td>
+ </tr>
+ <tr>
+ <th scope="row" class="navbox-group">Related topics</th>
+ <td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px">
+ <div style="padding:0em 0.25em">
+ <ul>
+ <li><i><a href="/wiki/The_Cathedral_and_the_Bazaar" title="The Cathedral and the Bazaar">The Cathedral and the Bazaar</a></i></li>
+ <li><a href="/wiki/Fork_(software_development)" title="Fork (software development)">Forking</a></li>
+ <li><a href="/wiki/Microsoft_Open_Specification_Promise" title="Microsoft Open Specification Promise">Microsoft Open Specification Promise</a></li>
+ <li><i><a href="/wiki/Revolution_OS" title="Revolution OS">Revolution OS</a></i></li>
+ </ul>
+ </div>
+ </td>
+ </tr>
+ <tr style="height:2px">
+ <td colspan="2"></td>
+ </tr>
+ <tr>
+ <td class="navbox-abovebelow" colspan="2" style="font-weight:bold">
+ <div>
+ <ul>
+ <li><img alt="Wikipedia book" src="//upload.wikimedia.org/wikipedia/commons/thumb/8/89/Symbol_book_class2.svg/16px-Symbol_book_class2.svg.png" title="Wikipedia book" width="16" height="16" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/8/89/Symbol_book_class2.svg/23px-Symbol_book_class2.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/8/89/Symbol_book_class2.svg/31px-Symbol_book_class2.svg.png 2x" data-file-width="180" data-file-height="185" /> <a href="/wiki/Book:Free_and_Open_Source_Software" title="Book:Free and Open Source Software">Book</a></li>
+ <li><img alt="Category" src="//upload.wikimedia.org/wikipedia/en/thumb/4/48/Folder_Hexagonal_Icon.svg/16px-Folder_Hexagonal_Icon.svg.png" title="Category" width="16" height="14" srcset="//upload.wikimedia.org/wikipedia/en/thumb/4/48/Folder_Hexagonal_Icon.svg/24px-Folder_Hexagonal_Icon.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/4/48/Folder_Hexagonal_Icon.svg/32px-Folder_Hexagonal_Icon.svg.png 2x" data-file-width="36" data-file-height="31" /> <a href="/wiki/Category:Free_software" title="Category:Free software">Category</a></li>
+ <li><img alt="Commons page" src="//upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/12px-Commons-logo.svg.png" title="Commons page" width="12" height="16" srcset="//upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/18px-Commons-logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/24px-Commons-logo.svg.png 2x" data-file-width="1024" data-file-height="1376" /> <a href="https://commons.wikimedia.org/wiki/Category:Free_software" class="extiw" title="commons:Category:Free software">Commons</a></li>
+ <li><img alt="Portal" src="//upload.wikimedia.org/wikipedia/en/thumb/f/fd/Portal-puzzle.svg/16px-Portal-puzzle.svg.png" title="Portal" width="16" height="14" srcset="//upload.wikimedia.org/wikipedia/en/thumb/f/fd/Portal-puzzle.svg/24px-Portal-puzzle.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/f/fd/Portal-puzzle.svg/32px-Portal-puzzle.svg.png 2x" data-file-width="32" data-file-height="28" /> <a href="/wiki/Portal:Free_software" class="mw-redirect" title="Portal:Free software">Portal</a></li>
+ </ul>
+ </div>
+ </td>
+ </tr>
+ </table>
+ </div>
+
+
+ <!-- Saved in parser cache with key enwiki:pcache:idhash:36754915-0!*!0!!en!4!* and timestamp 20161028065633 and revision id 746574460
+ -->
+ <script>
+ (window.RLQ = window.RLQ || []).push(function() {
+ mw.log.warn("Gadget \"teahouse\" styles loaded twice. Migrate to type=general. See \u003Chttps://phabricator.wikimedia.org/T42284\u003E.");
+ mw.log.warn("Gadget \"ReferenceTooltips\" styles loaded twice. Migrate to type=general. See \u003Chttps://phabricator.wikimedia.org/T42284\u003E.");
+ mw.log.warn("Gadget \"featured-articles-links\" styles loaded twice. Migrate to type=general. See \u003Chttps://phabricator.wikimedia.org/T42284\u003E.");
+ });
+ </script><noscript><img src="//en.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title="" width="1" height="1" style="border: none; position: absolute;" /></noscript></div>
+ <div class="printfooter">
+ Retrieved from "<a dir="ltr" href="https://en.wikipedia.org/w/index.php?title=Mozilla&amp;oldid=746574460">https://en.wikipedia.org/w/index.php?title=Mozilla&amp;oldid=746574460</a>" </div>
+ <div id="catlinks" class="catlinks" data-mw="interface">
+ <div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Help:Category" title="Help:Category">Categories</a>:
+ <ul>
+ <li><a href="/wiki/Category:Mozilla" title="Category:Mozilla">Mozilla</a></li>
+ <li><a href="/wiki/Category:Netscape" title="Category:Netscape">Netscape</a></li>
+ <li><a href="/wiki/Category:Projects_established_in_1998" title="Category:Projects established in 1998">Projects established in 1998</a></li>
+ </ul>
+ </div>
+ <div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Hidden categories:
+ <ul>
+ <li><a href="/wiki/Category:CS1_maint:_Unfit_url" title="Category:CS1 maint: Unfit url">CS1 maint: Unfit url</a></li>
+ <li><a href="/wiki/Category:All_articles_with_unsourced_statements" title="Category:All articles with unsourced statements">All articles with unsourced statements</a></li>
+ <li><a href="/wiki/Category:Articles_with_unsourced_statements_from_August_2015" title="Category:Articles with unsourced statements from August 2015">Articles with unsourced statements from August 2015</a></li>
+ <li><a href="/wiki/Category:Articles_containing_potentially_dated_statements_from_April_2015" title="Category:Articles containing potentially dated statements from April 2015">Articles containing potentially dated statements from April 2015</a></li>
+ <li><a href="/wiki/Category:All_articles_containing_potentially_dated_statements" title="Category:All articles containing potentially dated statements">All articles containing potentially dated statements</a></li>
+ <li><a href="/wiki/Category:Articles_with_unsourced_statements_from_July_2015" title="Category:Articles with unsourced statements from July 2015">Articles with unsourced statements from July 2015</a></li>
+ <li><a href="/wiki/Category:Commons_category_with_page_title_same_as_on_Wikidata" title="Category:Commons category with page title same as on Wikidata">Commons category with page title same as on Wikidata</a></li>
+ </ul>
+ </div>
+ </div>
+ <div class="visualClear"></div>
+ </div>
+ </div>
+ <div id="mw-navigation">
+ <h2>Navigation menu</h2>
+
+ <div id="mw-head">
+ <div id="p-personal" role="navigation" class="" aria-labelledby="p-personal-label">
+ <h3 id="p-personal-label">Personal tools</h3>
+ <ul>
+ <li id="pt-anonuserpage">Not logged in</li>
+ <li id="pt-anontalk"><a href="/wiki/Special:MyTalk" title="Discussion about edits from this IP address [n]" accesskey="n">Talk</a></li>
+ <li id="pt-anoncontribs"><a href="/wiki/Special:MyContributions" title="A list of edits made from this IP address [y]" accesskey="y">Contributions</a></li>
+ <li id="pt-createaccount"><a href="/w/index.php?title=Special:CreateAccount&amp;returnto=Mozilla" title="You are encouraged to create an account and log in; however, it is not mandatory">Create account</a></li>
+ <li id="pt-login"><a href="/w/index.php?title=Special:UserLogin&amp;returnto=Mozilla" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o">Log in</a></li>
+ </ul>
+ </div>
+ <div id="left-navigation">
+ <div id="p-namespaces" role="navigation" class="vectorTabs" aria-labelledby="p-namespaces-label">
+ <h3 id="p-namespaces-label">Namespaces</h3>
+ <ul>
+ <li id="ca-nstab-main" class="selected"><span><a href="/wiki/Mozilla" title="View the content page [c]" accesskey="c">Article</a></span></li>
+ <li id="ca-talk"><span><a href="/wiki/Talk:Mozilla" title="Discussion about the content page [t]" accesskey="t" rel="discussion">Talk</a></span></li>
+ </ul>
+ </div>
+ <div id="p-variants" role="navigation" class="vectorMenu emptyPortlet" aria-labelledby="p-variants-label">
+ <h3 id="p-variants-label">
+ <span>Variants</span>
+ <a href="#"></a>
+ </h3>
+
+ <div class="menu">
+ <ul>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div id="right-navigation">
+ <div id="p-views" role="navigation" class="vectorTabs" aria-labelledby="p-views-label">
+ <h3 id="p-views-label">Views</h3>
+ <ul>
+ <li id="ca-view" class="selected"><span><a href="/wiki/Mozilla" >Read</a></span></li>
+ <li id="ca-edit"><span><a href="/w/index.php?title=Mozilla&amp;action=edit" title="Edit this page [e]" accesskey="e">Edit</a></span></li>
+ <li id="ca-history" class="collapsible"><span><a href="/w/index.php?title=Mozilla&amp;action=history" title="Past revisions of this page [h]" accesskey="h">View history</a></span></li>
+ </ul>
+ </div>
+ <div id="p-cactions" role="navigation" class="vectorMenu emptyPortlet" aria-labelledby="p-cactions-label">
+ <h3 id="p-cactions-label"><span>More</span>
+ <a href="#"></a>
+ </h3>
+
+ <div class="menu">
+ <ul>
+ </ul>
+ </div>
+ </div>
+ <div id="p-search" role="search">
+ <h3>
+ <label for="searchInput">Search</label>
+ </h3>
+
+ <form action="/w/index.php" id="searchform">
+ <div id="simpleSearch">
+ <input type="search" name="search" placeholder="Search Wikipedia" title="Search Wikipedia [f]" accesskey="f" id="searchInput" /><input type="hidden" value="Special:Search" name="title" /><input type="submit" name="fulltext" value="Search" title="Search Wikipedia for this text" id="mw-searchButton" class="searchButton mw-fallbackSearchButton" /><input type="submit" name="go" value="Go" title="Go to a page with this exact name if it exists" id="searchButton" class="searchButton" /> </div>
+ </form>
+ </div>
+ </div>
+ </div>
+ <div id="mw-panel">
+ <div id="p-logo" role="banner">
+ <a class="mw-wiki-logo" href="/wiki/Main_Page" title="Visit the main page"></a>
+ </div>
+ <div class="portal" role="navigation" id='p-navigation' aria-labelledby='p-navigation-label'>
+ <h3 id='p-navigation-label'>Navigation</h3>
+
+ <div class="body">
+ <ul>
+ <li id="n-mainpage-description"><a href="/wiki/Main_Page" title="Visit the main page [z]" accesskey="z">Main page</a></li>
+ <li id="n-contents"><a href="/wiki/Portal:Contents" title="Guides to browsing Wikipedia">Contents</a></li>
+ <li id="n-featuredcontent"><a href="/wiki/Portal:Featured_content" title="Featured content – the best of Wikipedia">Featured content</a></li>
+ <li id="n-currentevents"><a href="/wiki/Portal:Current_events" title="Find background information on current events">Current events</a></li>
+ <li id="n-randompage"><a href="/wiki/Special:Random" title="Load a random article [x]" accesskey="x">Random article</a></li>
+ <li id="n-sitesupport"><a href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&amp;utm_medium=sidebar&amp;utm_campaign=C13_en.wikipedia.org&amp;uselang=en" title="Support us">Donate to Wikipedia</a></li>
+ <li id="n-shoplink"><a href="//shop.wikimedia.org" title="Visit the Wikipedia store">Wikipedia store</a></li>
+ </ul>
+ </div>
+ </div>
+ <div class="portal" role="navigation" id='p-interaction' aria-labelledby='p-interaction-label'>
+ <h3 id='p-interaction-label'>Interaction</h3>
+
+ <div class="body">
+ <ul>
+ <li id="n-help"><a href="/wiki/Help:Contents" title="Guidance on how to use and edit Wikipedia">Help</a></li>
+ <li id="n-aboutsite"><a href="/wiki/Wikipedia:About" title="Find out about Wikipedia">About Wikipedia</a></li>
+ <li id="n-portal"><a href="/wiki/Wikipedia:Community_portal" title="About the project, what you can do, where to find things">Community portal</a></li>
+ <li id="n-recentchanges"><a href="/wiki/Special:RecentChanges" title="A list of recent changes in the wiki [r]" accesskey="r">Recent changes</a></li>
+ <li id="n-contactpage"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us" title="How to contact Wikipedia">Contact page</a></li>
+ </ul>
+ </div>
+ </div>
+ <div class="portal" role="navigation" id='p-tb' aria-labelledby='p-tb-label'>
+ <h3 id='p-tb-label'>Tools</h3>
+
+ <div class="body">
+ <ul>
+ <li id="t-whatlinkshere"><a href="/wiki/Special:WhatLinksHere/Mozilla" title="List of all English Wikipedia pages containing links to this page [j]" accesskey="j">What links here</a></li>
+ <li id="t-recentchangeslinked"><a href="/wiki/Special:RecentChangesLinked/Mozilla" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k">Related changes</a></li>
+ <li id="t-upload"><a href="/wiki/Wikipedia:File_Upload_Wizard" title="Upload files [u]" accesskey="u">Upload file</a></li>
+ <li id="t-specialpages"><a href="/wiki/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q">Special pages</a></li>
+ <li id="t-permalink"><a href="/w/index.php?title=Mozilla&amp;oldid=746574460" title="Permanent link to this revision of the page">Permanent link</a></li>
+ <li id="t-info"><a href="/w/index.php?title=Mozilla&amp;action=info" title="More information about this page">Page information</a></li>
+ <li id="t-wikibase"><a href="https://www.wikidata.org/wiki/Q9661" title="Link to connected data repository item [g]" accesskey="g">Wikidata item</a></li>
+ <li id="t-cite"><a href="/w/index.php?title=Special:CiteThisPage&amp;page=Mozilla&amp;id=746574460" title="Information on how to cite this page">Cite this page</a></li>
+ </ul>
+ </div>
+ </div>
+ <div class="portal" role="navigation" id='p-coll-print_export' aria-labelledby='p-coll-print_export-label'>
+ <h3 id='p-coll-print_export-label'>Print/export</h3>
+
+ <div class="body">
+ <ul>
+ <li id="coll-create_a_book"><a href="/w/index.php?title=Special:Book&amp;bookcmd=book_creator&amp;referer=Mozilla">Create a book</a></li>
+ <li id="coll-download-as-rdf2latex"><a href="/w/index.php?title=Special:Book&amp;bookcmd=render_article&amp;arttitle=Mozilla&amp;returnto=Mozilla&amp;oldid=746574460&amp;writer=rdf2latex">Download as PDF</a></li>
+ <li id="t-print"><a href="/w/index.php?title=Mozilla&amp;printable=yes" title="Printable version of this page [p]" accesskey="p">Printable version</a></li>
+ </ul>
+ </div>
+ </div>
+ <div class="portal" role="navigation" id='p-wikibase-otherprojects' aria-labelledby='p-wikibase-otherprojects-label'>
+ <h3 id='p-wikibase-otherprojects-label'>In other projects</h3>
+
+ <div class="body">
+ <ul>
+ <li class="wb-otherproject-link wb-otherproject-commons"><a href="https://commons.wikimedia.org/wiki/Category:Mozilla" hreflang="en">Wikimedia Commons</a></li>
+ <li class="wb-otherproject-link wb-otherproject-wikisource"><a href="https://en.wikisource.org/wiki/Portal:Mozilla" hreflang="en">Wikisource</a></li>
+ </ul>
+ </div>
+ </div>
+ <div class="portal" role="navigation" id='p-lang' aria-labelledby='p-lang-label'>
+ <h3 id='p-lang-label'>Languages</h3>
+
+ <div class="body">
+ <ul>
+ <li class="interlanguage-link interwiki-af"><a href="https://af.wikipedia.org/wiki/Mozilla" title="Mozilla – Afrikaans" lang="af" hreflang="af" class="interlanguage-link-target">Afrikaans</a></li>
+ <li class="interlanguage-link interwiki-ar"><a href="https://ar.wikipedia.org/wiki/%D9%85%D9%88%D8%B2%D9%8A%D9%84%D8%A7" title="موزيلا – Arabic" lang="ar" hreflang="ar" class="interlanguage-link-target">العربية</a></li>
+ <li class="interlanguage-link interwiki-ast"><a href="https://ast.wikipedia.org/wiki/Mozilla" title="Mozilla – Asturian" lang="ast" hreflang="ast" class="interlanguage-link-target">Asturianu</a></li>
+ <li class="interlanguage-link interwiki-az"><a href="https://az.wikipedia.org/wiki/Mozilla" title="Mozilla – Azerbaijani" lang="az" hreflang="az" class="interlanguage-link-target">Azərbaycanca</a></li>
+ <li class="interlanguage-link interwiki-bn"><a href="https://bn.wikipedia.org/wiki/%E0%A6%AE%E0%A7%8B%E0%A6%9C%E0%A6%BF%E0%A6%B2%E0%A6%BE" title="মোজিলা – Bengali" lang="bn" hreflang="bn" class="interlanguage-link-target">বাংলা</a></li>
+ <li class="interlanguage-link interwiki-zh-min-nan"><a href="https://zh-min-nan.wikipedia.org/wiki/Mozilla" title="Mozilla – Chinese (Min Nan)" lang="zh-min-nan" hreflang="zh-min-nan" class="interlanguage-link-target">Bân-lâm-gú</a></li>
+ <li class="interlanguage-link interwiki-ca"><a href="https://ca.wikipedia.org/wiki/Mozilla" title="Mozilla – Catalan" lang="ca" hreflang="ca" class="interlanguage-link-target">Català</a></li>
+ <li class="interlanguage-link interwiki-cs"><a href="https://cs.wikipedia.org/wiki/Mozilla" title="Mozilla – Czech" lang="cs" hreflang="cs" class="interlanguage-link-target">Čeština</a></li>
+ <li class="interlanguage-link interwiki-da"><a href="https://da.wikipedia.org/wiki/Mozilla" title="Mozilla – Danish" lang="da" hreflang="da" class="interlanguage-link-target">Dansk</a></li>
+ <li class="interlanguage-link interwiki-de"><a href="https://de.wikipedia.org/wiki/Mozilla" title="Mozilla – German" lang="de" hreflang="de" class="interlanguage-link-target">Deutsch</a></li>
+ <li class="interlanguage-link interwiki-fa"><a href="https://fa.wikipedia.org/wiki/%D9%85%D9%88%D8%B2%DB%8C%D9%84%D8%A7" title="موزیلا – Persian" lang="fa" hreflang="fa" class="interlanguage-link-target">فارسی</a></li>
+ <li class="interlanguage-link interwiki-fr"><a href="https://fr.wikipedia.org/wiki/Mozilla_(chronique)" title="Mozilla (chronique) – French" lang="fr" hreflang="fr" class="interlanguage-link-target">Français</a></li>
+ <li class="interlanguage-link interwiki-ko"><a href="https://ko.wikipedia.org/wiki/%EB%AA%A8%EC%A7%88%EB%9D%BC" title="모질라 – Korean" lang="ko" hreflang="ko" class="interlanguage-link-target">한국어</a></li>
+ <li class="interlanguage-link interwiki-hi"><a href="https://hi.wikipedia.org/wiki/%E0%A4%AE%E0%A5%8B%E0%A4%9C%E0%A4%BF%E0%A4%B2%E0%A4%BE" title="मोजिला – Hindi" lang="hi" hreflang="hi" class="interlanguage-link-target">हिन्दी</a></li>
+ <li class="interlanguage-link interwiki-id"><a href="https://id.wikipedia.org/wiki/Mozilla" title="Mozilla – Indonesian" lang="id" hreflang="id" class="interlanguage-link-target">Bahasa Indonesia</a></li>
+ <li class="interlanguage-link interwiki-it"><a href="https://it.wikipedia.org/wiki/Mozilla" title="Mozilla – Italian" lang="it" hreflang="it" class="interlanguage-link-target">Italiano</a></li>
+ <li class="interlanguage-link interwiki-he"><a href="https://he.wikipedia.org/wiki/%D7%9E%D7%95%D7%96%D7%99%D7%9C%D7%94" title="מוזילה – Hebrew" lang="he" hreflang="he" class="interlanguage-link-target">עברית</a></li>
+ <li class="interlanguage-link interwiki-csb"><a href="https://csb.wikipedia.org/wiki/Mozilla" title="Mozilla – Kashubian" lang="csb" hreflang="csb" class="interlanguage-link-target">Kaszëbsczi</a></li>
+ <li class="interlanguage-link interwiki-ku"><a href="https://ku.wikipedia.org/wiki/Mozilla" title="Mozilla – Kurdish" lang="ku" hreflang="ku" class="interlanguage-link-target">Kurdî</a></li>
+ <li class="interlanguage-link interwiki-lt"><a href="https://lt.wikipedia.org/wiki/Mozilla" title="Mozilla – Lithuanian" lang="lt" hreflang="lt" class="interlanguage-link-target">Lietuvių</a></li>
+ <li class="interlanguage-link interwiki-hu"><a href="https://hu.wikipedia.org/wiki/Mozilla" title="Mozilla – Hungarian" lang="hu" hreflang="hu" class="interlanguage-link-target">Magyar</a></li>
+ <li class="interlanguage-link interwiki-mg"><a href="https://mg.wikipedia.org/wiki/Mozilla" title="Mozilla – Malagasy" lang="mg" hreflang="mg" class="interlanguage-link-target">Malagasy</a></li>
+ <li class="interlanguage-link interwiki-ml"><a href="https://ml.wikipedia.org/wiki/%E0%B4%AE%E0%B5%8B%E0%B4%B8%E0%B4%BF%E0%B4%B2%E0%B5%8D%E0%B4%B2" title="മോസില്ല – Malayalam" lang="ml" hreflang="ml" class="interlanguage-link-target">മലയാളം</a></li>
+ <li class="interlanguage-link interwiki-ms"><a href="https://ms.wikipedia.org/wiki/Mozilla" title="Mozilla – Malay" lang="ms" hreflang="ms" class="interlanguage-link-target">Bahasa Melayu</a></li>
+ <li class="interlanguage-link interwiki-nl"><a href="https://nl.wikipedia.org/wiki/Mozilla" title="Mozilla – Dutch" lang="nl" hreflang="nl" class="interlanguage-link-target">Nederlands</a></li>
+ <li class="interlanguage-link interwiki-ja"><a href="https://ja.wikipedia.org/wiki/Mozilla" title="Mozilla – Japanese" lang="ja" hreflang="ja" class="interlanguage-link-target">日本語</a></li>
+ <li class="interlanguage-link interwiki-no"><a href="https://no.wikipedia.org/wiki/Mozilla" title="Mozilla – Norwegian" lang="no" hreflang="no" class="interlanguage-link-target">Norsk bokmål</a></li>
+ <li class="interlanguage-link interwiki-oc"><a href="https://oc.wikipedia.org/wiki/Mozilla" title="Mozilla – Occitan" lang="oc" hreflang="oc" class="interlanguage-link-target">Occitan</a></li>
+ <li class="interlanguage-link interwiki-pl"><a href="https://pl.wikipedia.org/wiki/Mozilla" title="Mozilla – Polish" lang="pl" hreflang="pl" class="interlanguage-link-target">Polski</a></li>
+ <li class="interlanguage-link interwiki-ro"><a href="https://ro.wikipedia.org/wiki/Mozilla" title="Mozilla – Romanian" lang="ro" hreflang="ro" class="interlanguage-link-target">Română</a></li>
+ <li class="interlanguage-link interwiki-sq"><a href="https://sq.wikipedia.org/wiki/Mozilla" title="Mozilla – Albanian" lang="sq" hreflang="sq" class="interlanguage-link-target">Shqip</a></li>
+ <li class="interlanguage-link interwiki-sv"><a href="https://sv.wikipedia.org/wiki/Mozilla" title="Mozilla – Swedish" lang="sv" hreflang="sv" class="interlanguage-link-target">Svenska</a></li>
+ <li class="interlanguage-link interwiki-th"><a href="https://th.wikipedia.org/wiki/%E0%B8%A1%E0%B8%AD%E0%B8%8B%E0%B8%B4%E0%B8%A5%E0%B8%A5%E0%B8%B2" title="มอซิลลา – Thai" lang="th" hreflang="th" class="interlanguage-link-target">ไทย</a></li>
+ <li class="interlanguage-link interwiki-tr"><a href="https://tr.wikipedia.org/wiki/Mozilla" title="Mozilla – Turkish" lang="tr" hreflang="tr" class="interlanguage-link-target">Türkçe</a></li>
+ <li class="interlanguage-link interwiki-ur"><a href="https://ur.wikipedia.org/wiki/%D9%85%D9%88%D8%B2%DB%8C%D9%84%D8%A7" title="موزیلا – Urdu" lang="ur" hreflang="ur" class="interlanguage-link-target">اردو</a></li>
+ <li class="interlanguage-link interwiki-vi"><a href="https://vi.wikipedia.org/wiki/Mozilla" title="Mozilla – Vietnamese" lang="vi" hreflang="vi" class="interlanguage-link-target">Tiếng Việt</a></li>
+ <li class="interlanguage-link interwiki-zh"><a href="https://zh.wikipedia.org/wiki/Mozilla" title="Mozilla – Chinese" lang="zh" hreflang="zh" class="interlanguage-link-target">中文</a></li>
+ <li class="uls-p-lang-dummy">
+ <a href="#"></a>
+ </li>
+ </ul>
+ <div class='after-portlet after-portlet-lang'><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Q9661#sitelinks-wikipedia" title="Edit interlanguage links" class="wbc-editpage">Edit links</a></span></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="footer" role="contentinfo">
+ <ul id="footer-info">
+ <li id="footer-info-lastmod"> This page was last modified on 28 October 2016, at 06:56.</li>
+ <li id="footer-info-copyright">Text is available under the <a rel="license" href="//en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License">Creative Commons Attribution-ShareAlike License</a>
+ <a rel="license" href="//creativecommons.org/licenses/by-sa/3.0/" style="display:none;"></a>; additional terms may apply. By using this site, you agree to the <a href="//wikimediafoundation.org/wiki/Terms_of_Use">Terms of Use</a> and <a href="//wikimediafoundation.org/wiki/Privacy_policy">Privacy Policy</a>. Wikipedia® is a registered trademark of the <a href="//www.wikimediafoundation.org/">Wikimedia Foundation, Inc.</a>, a non-profit organization.</li>
+ </ul>
+ <ul id="footer-places">
+ <li id="footer-places-privacy"><a href="https://wikimediafoundation.org/wiki/Privacy_policy" class="extiw" title="wmf:Privacy policy">Privacy policy</a></li>
+ <li id="footer-places-about"><a href="/wiki/Wikipedia:About" title="Wikipedia:About">About Wikipedia</a></li>
+ <li id="footer-places-disclaimer"><a href="/wiki/Wikipedia:General_disclaimer" title="Wikipedia:General disclaimer">Disclaimers</a></li>
+ <li id="footer-places-contact"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us">Contact Wikipedia</a></li>
+ <li id="footer-places-developers"><a href="https://www.mediawiki.org/wiki/Special:MyLanguage/How_to_contribute">Developers</a></li>
+ <li id="footer-places-cookiestatement"><a href="https://wikimediafoundation.org/wiki/Cookie_statement">Cookie statement</a></li>
+ <li id="footer-places-mobileview"><a href="//en.m.wikipedia.org/w/index.php?title=Mozilla&amp;mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li>
+ </ul>
+ <ul id="footer-icons" class="noprint">
+ <li id="footer-copyrightico">
+ <a href="https://wikimediafoundation.org/"><img src="/static/images/wikimedia-button.png" srcset="/static/images/wikimedia-button-1.5x.png 1.5x, /static/images/wikimedia-button-2x.png 2x" width="88" height="31" alt="Wikimedia Foundation" /></a>
+ </li>
+ <li id="footer-poweredbyico">
+ <a href="//www.mediawiki.org/"><img src="/static/images/poweredby_mediawiki_88x31.png" alt="Powered by MediaWiki" srcset="/static/images/poweredby_mediawiki_132x47.png 1.5x, /static/images/poweredby_mediawiki_176x62.png 2x" width="88" height="31" /></a>
+ </li>
+ </ul>
+ <div style="clear:both"></div>
+ </div>
+ <script>
+ (window.RLQ = window.RLQ || []).push(function() {
+ mw.loader.load(["ext.cite.a11y", "mediawiki.toc", "mediawiki.action.view.postEdit", "site", "mediawiki.user", "mediawiki.hidpi", "mediawiki.page.ready", "mediawiki.searchSuggest", "ext.gadget.teahouse", "ext.gadget.ReferenceTooltips", "ext.gadget.watchlist-notice", "ext.gadget.DRN-wizard", "ext.gadget.charinsert", "ext.gadget.refToolbar", "ext.gadget.extra-toolbar-buttons", "ext.gadget.switcher", "ext.gadget.featured-articles-links", "mmv.bootstrap.autostart", "ext.visualEditor.targetLoader", "ext.eventLogging.subscriber", "ext.wikimediaEvents", "ext.navigationTiming", "ext.uls.eventlogger", "ext.uls.init", "ext.centralNotice.geoIP", "ext.centralNotice.startUp"]);
+ });
+ </script>
+ <script>
+ (window.RLQ = window.RLQ || []).push(function() {
+ mw.config.set({
+ "wgPageParseReport": {
+ "limitreport": {
+ "cputime": "0.888",
+ "walltime": "0.991",
+ "ppvisitednodes": {
+ "value": 4683,
+ "limit": 1000000
+ },
+ "ppgeneratednodes": {
+ "value": 0,
+ "limit": 1500000
+ },
+ "postexpandincludesize": {
+ "value": 202526,
+ "limit": 2097152
+ },
+ "templateargumentsize": {
+ "value": 9662,
+ "limit": 2097152
+ },
+ "expansiondepth": {
+ "value": 20,
+ "limit": 40
+ },
+ "expensivefunctioncount": {
+ "value": 3,
+ "limit": 500
+ },
+ "entityaccesscount": {
+ "value": 1,
+ "limit": 400
+ },
+ "timingprofile": [
+ "100.00% 814.549 1 -total",
+ " 51.43% 418.949 1 Template:Reflist",
+ " 38.13% 310.586 67 Template:Cite_web",
+ " 9.60% 78.180 1 Template:Infobox_company",
+ " 7.70% 62.748 1 Template:Infobox",
+ " 7.34% 59.816 2 Template:Citation_needed",
+ " 6.67% 54.309 2 Template:Fix",
+ " 6.39% 52.081 1 Template:Mozilla",
+ " 6.05% 49.300 1 Template:Navbox_with_collapsible_groups",
+ " 4.15% 33.802 17 Template:Main_article"
+ ]
+ },
+ "scribunto": {
+ "limitreport-timeusage": {
+ "value": "0.419",
+ "limit": "10.000"
+ },
+ "limitreport-memusage": {
+ "value": 6399012,
+ "limit": 52428800
+ }
+ },
+ "cachereport": {
+ "origin": "mw1207",
+ "timestamp": "20161028065633",
+ "ttl": 2592000,
+ "transientcontent": false
+ }
+ }
+ });
+ });
+ </script>
+ <script>
+ (window.RLQ = window.RLQ || []).push(function() {
+ mw.config.set({
+ "wgBackendResponseTime": 63,
+ "wgHostname": "mw1242"
+ });
+ });
+ </script>
+</body>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wordpress/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wordpress/expected-images.json
new file mode 100644
index 000000000..e0c78e6ce
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wordpress/expected-images.json
@@ -0,0 +1,6 @@
+[
+ "https:\/\/i0.wp.com\/wptavern.com\/wp-content\/uploads\/2016\/07\/stack-overflow.png?fit=1200%2C470&ssl=1",
+ "https:\/\/i0.wp.com\/wptavern.com\/wp-content\/uploads\/2016\/07\/stack-overflow.png?resize=1025%2C401&ssl=1",
+ "https:\/\/i2.wp.com\/wptavern.com\/wp-content\/uploads\/2017\/03\/ChangesinDemand.png?resize=975%2C1115&ssl=1",
+ "https:\/\/i1.wp.com\/wptavern.com\/wp-content\/uploads\/2017\/03\/HighDemand.png?resize=975%2C854&ssl=1"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wordpress/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wordpress/expected-metadata.json
new file mode 100644
index 000000000..9154ef04d
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wordpress/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "Stack Overflow published its analysis of 2017 hiring trends based on the targeting options employers selected when posting to Stack Overflow Jobs. The report, which compares data from 200 companies…",
+ "Image": "https:\/\/i0.wp.com\/wptavern.com\/wp-content\/uploads\/2016\/07\/stack-overflow.png?fit=1200%2C470&ssl=1",
+ "Title": "Stack Overflow Jobs Data Shows ReactJS Skills in High Demand, WordPress Market Oversaturated with Developers",
+ "SiteName": "WordPress Tavern"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wordpress/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wordpress/expected.html
new file mode 100644
index 000000000..1f47d8fe1
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wordpress/expected.html
@@ -0,0 +1,29 @@
+<article id="post-67202" itemprop="blogPost" itemscope="itemscope" itemtype="http://schema.org/BlogPosting"><div itemprop="articleBody">
+ <p>
+ <a href="https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?ssl=1"><img alt="" data-attachment-id="57913" data-comments-opened="0" data-image-description="" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="stack-overflow" data-large-file="https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?fit=500%2C196&amp;ssl=1" data-medium-file="https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?fit=300%2C117&amp;ssl=1" data-orig-file="https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?fit=1650%2C646&amp;ssl=1" data-orig-size="1650,646" data-permalink="https://wptavern.com/stack-overflow-documentation-is-now-in-beta/stack-overflow" height="252" sizes="(max-width: 1025px) 100vw, 1025px" src="https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?resize=1025%2C401&amp;ssl=1" srcset="https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?w=1650&amp;ssl=1 1650w, https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?resize=300%2C117&amp;ssl=1 300w, https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?resize=768%2C301&amp;ssl=1 768w, https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?resize=500%2C196&amp;ssl=1 500w, https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?resize=1025%2C401&amp;ssl=1 1025w" width="644"></img></a>
+ </p>
+ <p>Stack Overflow published its analysis of <a href="https://stackoverflow.blog/2017/03/09/developer-hiring-trends-2017/" target="_blank">2017 hiring trends</a> based on the targeting options employers selected when posting to <a href="http://stackoverflow.com/jobs" target="_blank">Stack Overflow Jobs</a>. The report, which compares data from 200 companies since 2015, ranks ReactJS, Docker, and Ansible at the top of the fastest growing skills in demand. When comparing the percentage change from 2015 to 2016, technologies like AJAX, Backbone.js, jQuery, and WordPress are less in demand.</p>
+ <p>
+ <a href="https://i2.wp.com/wptavern.com/wp-content/uploads/2017/03/ChangesinDemand.png?ssl=1"><img alt="" data-attachment-id="67214" data-comments-opened="0" data-image-description="" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="ChangesinDemand" data-large-file="https://i2.wp.com/wptavern.com/wp-content/uploads/2017/03/ChangesinDemand.png?fit=437%2C500&amp;ssl=1" data-medium-file="https://i2.wp.com/wptavern.com/wp-content/uploads/2017/03/ChangesinDemand.png?fit=262%2C300&amp;ssl=1" data-orig-file="https://i2.wp.com/wptavern.com/wp-content/uploads/2017/03/ChangesinDemand.png?fit=975%2C1115&amp;ssl=1" data-orig-size="975,1115" data-permalink="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers/changesindemand" height="736" sizes="(max-width: 975px) 100vw, 975px" src="https://i2.wp.com/wptavern.com/wp-content/uploads/2017/03/ChangesinDemand.png?resize=975%2C1115&amp;ssl=1" srcset="https://i2.wp.com/wptavern.com/wp-content/uploads/2017/03/ChangesinDemand.png?w=975&amp;ssl=1 975w, https://i2.wp.com/wptavern.com/wp-content/uploads/2017/03/ChangesinDemand.png?resize=262%2C300&amp;ssl=1 262w, https://i2.wp.com/wptavern.com/wp-content/uploads/2017/03/ChangesinDemand.png?resize=768%2C878&amp;ssl=1 768w, https://i2.wp.com/wptavern.com/wp-content/uploads/2017/03/ChangesinDemand.png?resize=437%2C500&amp;ssl=1 437w" width="644"></img></a>
+ </p>
+ <p>Stack Overflow also measured the demand relative to the available developers in different tech skills. The demand for backend, mobile, and database engineers is higher than the number of qualified candidates available. WordPress is last among the oversaturated fields with a surplus of developers relative to available positions.</p>
+ <p>
+ <a href="https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?ssl=1"><img alt="" data-attachment-id="67216" data-comments-opened="0" data-image-description="" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="HighDemand" data-large-file="https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?fit=500%2C438&amp;ssl=1" data-medium-file="https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?fit=300%2C263&amp;ssl=1" data-orig-file="https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?fit=975%2C854&amp;ssl=1" data-orig-size="975,854" data-permalink="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers/highdemand" height="564" sizes="(max-width: 975px) 100vw, 975px" src="https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?resize=975%2C854&amp;ssl=1" srcset="https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?w=975&amp;ssl=1 975w, https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?resize=300%2C263&amp;ssl=1 300w, https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?resize=768%2C673&amp;ssl=1 768w, https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?resize=500%2C438&amp;ssl=1 500w, https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?resize=571%2C500&amp;ssl=1 571w" width="644"></img></a>
+ </p>
+ <p>In looking at these results, it’s important to consider the inherent biases within the Stack Overflow ecosystem. In 2016, the site surveyed more than 56,000 developers but noted that the survey was “biased against devs who don’t speak English.” The average age of respondents was 29.6 years old and 92.8% of them were male. </p>
+ <p>For two years running, Stack Overflow survey respondents have <a href="https://wptavern.com/stack-overflow-survey-results-show-wordpress-is-trending-up-despite-being-ranked-among-most-dreaded-technologies" target="_blank">ranked WordPress among the most dreaded technologies</a> that they would prefer not to use. This may be one reason why employers wouldn’t be looking to advertise positions on the site’s job board, which is the primary source of the data for this report.</p>
+ <p>Many IT career forecasts focus more generally on job descriptions and highest paying positions. Stack Overflow is somewhat unique in that it identifies trends in specific tech skills, pulling this data out of how employers are tagging their listings for positions. It presents demand in terms of number of skilled developers relative to available positions, a slightly more complicated approach than measuring demand based on advertised salary. However, Stack Overflow’s data presentation could use some refining. </p>
+ <p>One commenter, Bruce Van Horn, <a href="https://stackoverflow.blog/2017/03/09/developer-hiring-trends-2017/#comment-3194770754" target="_blank">noted</a> that jobs tagged as “Full Stack Developer” already assume many of the skills that are listed separately: </p>
+ <blockquote>
+ <p>I wonder how many of these skills are no longer listed because they are “table stakes”. You used to have to put CSS, jQuery, and JSON on the job description. I wouldn’t expect to have to put that on a Full Stack Developer description today – if you don’t know those then you aren’t a Full Stack Web Developer, and I’m more interested in whether you know the shiny things like React, Redux, and Angular2.</p>
+ </blockquote>
+ <p>It would be interesting to know what is meant by tagging “WordPress” as a skill – whether it is the general ability to work within the WordPress ecosystem of tools or if it refers to specific skills like PHP. Browsing a few jobs on Stack Overflow, <a href="http://stackoverflow.com/jobs?sort=i&amp;q=wordpress" target="_blank">WordPress positions</a> vary in the skills they require, such as React.js, Angular, PHP, HTML, CSS, and other technologies. This is a reflection of the diversity of technology that can be leveraged in creating WordPress-powered sites and applications, and several of these skills are listed independently of WordPress in the data. </p>
+ <p>Regardless of how much credibility you give Stack Overflow’s analysis of hiring trends, the report’s recommendation for those working in technologies oversaturated with developers is a good one: “Consider brushing up on some technologies that offer higher employer demand and less competition.” WordPress’ code base is currently <a href="https://www.openhub.net/p/wordpress/analyses/latest/languages_summary" target="_blank">59% PHP and 27% JavaScript</a>. The percentage of PHP has grown over time, but newer features and improvements to core are also being built in JavaScript. These are both highly portable skills that are in demand on the web.</p>
+
+
+
+
+ </div>
+
+
+ </article> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wordpress/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wordpress/source.html
new file mode 100644
index 000000000..f5984508e
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/wordpress/source.html
@@ -0,0 +1,2228 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" style="height: 100%;" lang="en-US">
+
+<head>
+ <script type="text/javascript" async="" src="//s.swiftypecdn.com/cc.js"></script>
+ <script id="twitter-wjs" src="https://platform.twitter.com/widgets.js"></script>
+ <link rel="apple-touch-icon" sizes="57x57" href="/apple-touch-icon-57x57.png" />
+ <link rel="apple-touch-icon" sizes="114x114" href="/apple-touch-icon-114x114.png" />
+ <link rel="apple-touch-icon" sizes="72x72" href="/apple-touch-icon-72x72.png" />
+ <link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon-144x144.png" />
+ <link rel="apple-touch-icon" sizes="60x60" href="/apple-touch-icon-60x60.png" />
+ <link rel="apple-touch-icon" sizes="120x120" href="/apple-touch-icon-120x120.png" />
+ <link rel="apple-touch-icon" sizes="76x76" href="/apple-touch-icon-76x76.png" />
+ <link rel="apple-touch-icon" sizes="152x152" href="/apple-touch-icon-152x152.png" />
+ <link rel="icon" type="image/png" href="/favicon-196x196.png" sizes="196x196" />
+ <link rel="icon" type="image/png" href="/favicon-160x160.png" sizes="160x160" />
+ <link rel="icon" type="image/png" href="/favicon-96x96.png" sizes="96x96" />
+ <link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32" />
+ <link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16" />
+ <meta name="msapplication-TileColor" content="#2d89ef" />
+ <meta name="msapplication-TileImage" content="/mstile-144x144.png" />
+ <meta charset="UTF-8" />
+ <title>Stack Overflow Jobs Data Shows ReactJS Skills in High Demand, WordPress Market Oversaturated with Developers – WordPress Tavern</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <meta name="generator" content="Stargazer 3.0.0" />
+ <link rel="dns-prefetch" href="//s0.wp.com" />
+ <link rel="dns-prefetch" href="//secure.gravatar.com" />
+ <link rel="dns-prefetch" href="//cdnjs.cloudflare.com" />
+ <link rel="dns-prefetch" href="//fonts.googleapis.com" />
+ <link rel="dns-prefetch" href="//s.w.org" />
+ <link rel="alternate" type="application/rss+xml" title="WordPress Tavern » Feed" href="https://wptavern.com/feed" />
+ <link rel="alternate" type="application/rss+xml" title="WordPress Tavern » Comments Feed" href="https://wptavern.com/comments/feed" />
+ <link rel="alternate" type="application/rss+xml" title="WordPress Tavern » Stack Overflow Jobs Data Shows ReactJS Skills in High Demand, WordPress Market Oversaturated with Developers Comments Feed" href="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers/feed" />
+ <script async="" src="https://www.google-analytics.com/analytics.js"></script>
+ <script type="text/javascript" async="" src="https://ssl.google-analytics.com/ga.js"></script>
+ <script type="text/javascript">
+ window._wpemojiSettings = {
+ "baseUrl": "https:\/\/s.w.org\/images\/core\/emoji\/2.2.1\/72x72\/",
+ "ext": ".png",
+ "svgUrl": "https:\/\/s.w.org\/images\/core\/emoji\/2.2.1\/svg\/",
+ "svgExt": ".svg",
+ "source": {
+ "concatemoji": "https:\/\/wptavern.com\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.8-alpha-40290"
+ }
+ };
+ ! function(a, b, c) {
+ function d(a) {
+ var b, c, d, e, f = String.fromCharCode;
+ if (!k || !k.fillText) return !1;
+ switch (k.clearRect(0, 0, j.width, j.height), k.textBaseline = "top", k.font = "600 32px Arial", a) {
+ case "flag":
+ return k.fillText(f(55356, 56826, 55356, 56819), 0, 0), !(j.toDataURL().length & lt; 3e3) & amp; & amp;
+ (k.clearRect(0, 0, j.width, j.height), k.fillText(f(55356, 57331, 65039, 8205, 55356, 57096), 0, 0), b = j.toDataURL(), k.clearRect(0, 0, j.width, j.height), k.fillText(f(55356, 57331, 55356, 57096), 0, 0), c = j.toDataURL(), b !== c);
+ case "emoji4":
+ return k.fillText(f(55357, 56425, 55356, 57341, 8205, 55357, 56507), 0, 0), d = j.toDataURL(), k.clearRect(0, 0, j.width, j.height), k.fillText(f(55357, 56425, 55356, 57341, 55357, 56507), 0, 0), e = j.toDataURL(), d !== e
+ }
+ return !1
+ }
+
+ function e(a) {
+ var c = b.createElement("script");
+ c.src = a, c.defer = c.type = "text/javascript", b.getElementsByTagName("head")[0].appendChild(c)
+ }
+ var f, g, h, i, j = b.createElement("canvas"),
+ k = j.getContext & amp; & amp;
+ j.getContext("2d");
+ for (i = Array("flag", "emoji4"), c.supports = {
+ everything: !0,
+ everythingExceptFlag: !0
+ }, h = 0; h & lt; i.length; h++) c.supports[i[h]] = d(i[h]), c.supports.everything = c.supports.everything & amp; & amp;
+ c.supports[i[h]], "flag" !== i[h] & amp; & amp;
+ (c.supports.everythingExceptFlag = c.supports.everythingExceptFlag & amp; & amp; c.supports[i[h]]);
+ c.supports.everythingExceptFlag = c.supports.everythingExceptFlag & amp; & amp;
+ !c.supports.flag, c.DOMReady = !1, c.readyCallback = function() {
+ c.DOMReady = !0
+ }, c.supports.everything || (g = function() {
+ c.readyCallback()
+ }, b.addEventListener ? (b.addEventListener("DOMContentLoaded", g, !1), a.addEventListener("load", g, !1)) : (a.attachEvent("onload", g), b.attachEvent("onreadystatechange", function() {
+ "complete" === b.readyState & amp; & amp;
+ c.readyCallback()
+ })), f = c.source || {}, f.concatemoji ? e(f.concatemoji) : f.wpemoji & amp; & amp; f.twemoji & amp; & amp;
+ (e(f.twemoji), e(f.wpemoji)))
+ }(window, document, window._wpemojiSettings);
+ </script>
+ <script src="https://wptavern.com/wp-includes/js/wp-emoji-release.min.js?ver=4.8-alpha-40290" type="text/javascript" defer="defer"></script>
+ <link rel="stylesheet" id="sdpvs_css-css" href="https://wptavern.com/wp-content/plugins/post-volume-stats/sdpvs_css.css?ver=1.0.5" type="text/css" media="screen" />
+ <link rel="stylesheet" id="swiftype-css" href="https://wptavern.com/wp-content/plugins/swiftype-search/assets/autocomplete.css?ver=4.8-alpha-40290" type="text/css" media="all" />
+ <link rel="stylesheet" id="wp-polls-css" href="https://wptavern.com/wp-content/plugins/wp-polls/polls-css.css?ver=2.73.2" type="text/css" media="all" />
+ <style id="wp-polls-inline-css" type="text/css">
+ .wp-polls .pollbar {
+ margin: 1px;
+ font-size: 6px;
+ line-height: 8px;
+ height: 8px;
+ background: #43251A;
+ border: 1px solid #D0D0D0;
+ }
+ </style>
+ <link rel="stylesheet" id="elevated-comment-css" href="https://wptavern.com/wp-content/plugins/elevated-comments/assets/css/elevated-comment.css?ver=20160509" type="text/css" media="all" />
+ <link rel="stylesheet" id="stargazer-fonts-css" href="//fonts.googleapis.com/css?family=Droid+Serif%3A400%2C700%2C400italic%2C700italic%7COpen+Sans%3A300%2C400%2C600%2C700&amp;ver=4.8-alpha-40290" type="text/css" media="all" />
+ <link rel="stylesheet" id="hybrid-one-five-css" href="https://wptavern.com/wp-content/themes/stargazer/library/css/one-five.min.css?ver=4.8-alpha-40290" type="text/css" media="all" />
+ <link rel="stylesheet" id="hybrid-gallery-css" href="https://wptavern.com/wp-content/themes/stargazer/library/css/gallery.min.css?ver=4.8-alpha-40290" type="text/css" media="all" />
+ <link rel="stylesheet" id="stargazer-mediaelement-css" href="https://wptavern.com/wp-content/themes/stargazer/css/mediaelement.min.css?ver=4.8-alpha-40290" type="text/css" media="all" />
+ <link rel="stylesheet" id="stargazer-media-css" href="https://wptavern.com/wp-content/themes/stargazer/css/media.min.css?ver=4.8-alpha-40290" type="text/css" media="all" />
+ <link rel="stylesheet" id="hybrid-parent-css" href="https://wptavern.com/wp-content/themes/stargazer/style.min.css?ver=4.8-alpha-40290" type="text/css" media="all" />
+ <link rel="stylesheet" id="hybrid-style-css" href="https://wptavern.com/wp-content/themes/stargazer-child-dev/style.css?ver=4.8-alpha-40290" type="text/css" media="all" />
+ <!-- Inline jetpack_facebook_likebox -->
+ <style id="jetpack_facebook_likebox-inline-css" type="text/css">
+ .widget_facebook_likebox {
+ overflow: hidden;
+ }
+ </style>
+ <link rel="stylesheet" id="author-avatars-widget-css" href="https://wptavern.com/wp-content/plugins/author-avatars/css/widget.css?ver=1.10" type="text/css" media="all" />
+ <link rel="stylesheet" id="epoch-light-css" href="https://wptavern.com/wp-content/plugins/epoch//assets/css/front/light.min.css?ver=1" type="text/css" media="all" />
+ <link rel="stylesheet" id="author-avatars-shortcode-css" href="https://wptavern.com/wp-content/plugins/author-avatars/css/shortcode.css?ver=1.10" type="text/css" media="all" />
+ <link rel="stylesheet" id="social-logos-css" href="https://wptavern.com/wp-content/plugins/jetpack/_inc/social-logos/social-logos.min.css?ver=1" type="text/css" media="all" />
+ <link rel="stylesheet" id="jetpack_css-css" href="https://wptavern.com/wp-content/plugins/jetpack/css/jetpack.css?ver=4.7.1" type="text/css" media="all" />
+ <link rel="stylesheet" id="tw-recent-posts-widget-css" href="https://wptavern.com/wp-content/plugins/tw-recent-posts-widget/tw-recent-posts-widget.css?ver=1.0.5" type="text/css" media="screen" />
+ <link rel="stylesheet" id="basic-comment-quicktags-css" href="https://wptavern.com/wp-content/plugins/basic-comment-quicktags/quicktags.css?ver=4.8-alpha-40290" type="text/css" media="all" />
+ <script type="text/javascript" src="https://wptavern.com/wp-includes/js/jquery/jquery.js?ver=1.12.4"></script>
+ <script type="text/javascript" src="https://wptavern.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=1.4.1"></script>
+ <script type="text/javascript">
+ /* &lt;![CDATA[ */
+ var related_posts_js_options = {
+ "post_heading": "h4"
+ };
+ /* ]]&gt; */
+ </script>
+ <script type="text/javascript" src="https://wptavern.com/wp-content/plugins/jetpack/modules/related-posts/related-posts.js?ver=20150408"></script>
+ <script type="text/javascript">
+ /* &lt;![CDATA[ */
+ var swiftypeParams = {
+ "engineKey": "kqZWC4JruSj8r1P84v8k"
+ };
+ /* ]]&gt; */
+ </script>
+ <script type="text/javascript" src="https://wptavern.com/wp-content/plugins/swiftype-search/assets/install_swiftype.min.js?ver=4.8-alpha-40290"></script>
+ <link rel="https://api.w.org/" href="https://wptavern.com/wp-json/" />
+ <link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://wptavern.com/xmlrpc.php?rsd" />
+ <link rel="wlwmanifest" type="application/wlwmanifest+xml" href="https://wptavern.com/wp-includes/wlwmanifest.xml" />
+ <link rel="prev" title="Google Launches Invisible reCAPTCHA" href="https://wptavern.com/google-launches-invisible-recaptcha" />
+ <link rel="next" title="WeFoster Launches Hosting Platform Catered to Online Communities" href="https://wptavern.com/wefoster-launches-hosting-platform-catered-to-online-communities" />
+ <meta name="generator" content="WordPress 4.8-alpha-40290" />
+ <link rel="canonical" href="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers" />
+ <link rel="shortlink" href="https://wp.me/pBMYe-htU" />
+ <link rel="alternate" type="application/json+oembed" href="https://wptavern.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwptavern.com%2Fstack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers" />
+ <link rel="alternate" type="text/xml+oembed" href="https://wptavern.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwptavern.com%2Fstack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers&amp;format=xml" />
+ <script type="text/javascript">
+ & lt;
+ !--
+ function powerpress_pinw(pinw_url) {
+ window.open(pinw_url, 'PowerPressPlayer', 'toolbar=0,status=0,resizable=1,width=460,height=320');
+ return false;
+ }
+ //--&gt;
+ </script>
+ <link rel="alternate" type="application/rss+xml" title="Default Podcast Feed" href="https://wptavern.com/feed/podcast" />
+
+ <!-- Simple Google Analytics Begin -->
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-7150849-1']);
+ _gaq.push(['_trackPageview']);
+ (function() {
+ var ga = document.createElement('script');
+ ga.type = 'text/javascript';
+ ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0];
+ s.parentNode.insertBefore(ga, s);
+ })();
+ </script>
+ <!-- Simple Google Analytics End -->
+ <script type="text/javascript">
+ var belaAjaxUrl = "/wp-admin/admin-ajax.php";
+ var belaAjaxAction = "bela_ajax";
+ </script>
+ <link rel="stylesheet" href="https://wptavern.com/wp-content/plugins/better-extended-live-archive/css/bela-k2.css?ver=20140509" type="text/css" medir="screen" />
+ <link rel="dns-prefetch" href="//i0.wp.com" />
+ <link rel="dns-prefetch" href="//i1.wp.com" />
+ <link rel="dns-prefetch" href="//i2.wp.com" />
+ <link rel="dns-prefetch" href="//widgets.wp.com" />
+ <link rel="dns-prefetch" href="//s0.wp.com" />
+ <link rel="dns-prefetch" href="//0.gravatar.com" />
+ <link rel="dns-prefetch" href="//1.gravatar.com" />
+ <link rel="dns-prefetch" href="//2.gravatar.com" />
+
+ <style type="text/css" id="custom-colors-css">
+ a,
+ .wp-playlist-light .wp-playlist-playing,
+ .wp-embed-comments a,
+ .wp-embed-share-dialog-open,
+ .wp-embed a {
+ color: rgba( 204, 51, 0, 0.75);
+ }
+
+ a:hover,
+ a:focus,
+ legend,
+ mark,
+ .comment-respond .required,
+ pre,
+ .form-allowed-tags code,
+ pre code,
+ .wp-playlist-light .wp-playlist-item:hover,
+ .wp-playlist-light .wp-playlist-item:focus,
+ .mejs-button button:hover::after,
+ .mejs-button button:focus::after,
+ .mejs-overlay-button:hover::after,
+ .mejs-overlay-button:focus::after,
+ .wp-embed-comments a:hover,
+ .wp-embed-comments a:focus,
+ .wp-embed-share-dialog-open:hover,
+ .wp-embed-share-dialog-open:focus,
+ .wp-embed a:hover,
+ .wp-embed a:focus {
+ color: #CC3300;
+ }
+
+ input[type='submit'],
+ input[type='reset'],
+ input[type='button'],
+ button,
+ .page-links a,
+ .comment-reply-link,
+ .comment-reply-login,
+ .wp-calendar td.has-posts a,
+ #menu-sub-terms li a {
+ background-color: rgba( 204, 51, 0, 0.8);
+ }
+
+ legend,
+ mark,
+ pre,
+ .form-allowed-tags code {
+ background-color: rgba( 204, 51, 0, 0.1);
+ }
+
+ input[type='submit']:hover,
+ input[type='submit']:focus,
+ input[type='reset']:hover,
+ input[type='reset']:focus,
+ input[type='button']:hover,
+ input[type='button']:focus,
+ button:hover,
+ button:focus,
+ .page-links a:hover,
+ .page-links a:focus,
+ .wp-calendar td.has-posts a:hover,
+ .wp-calendar td.has-posts a:focus,
+ .widget-title &gt;
+ .wrap,
+ #comments-number &gt;
+ .wrap,
+ #reply-title &gt;
+ .wrap,
+ .attachment-meta-title &gt;
+ .wrap,
+ .widget_search &gt;
+ .search-form,
+ #menu-sub-terms li a:hover,
+ #menu-sub-terms li a:focus,
+ .comment-reply-link:hover,
+ .comment-reply-link:focus,
+ .comment-reply-login:hover,
+ .comment-reply-login:focus,
+ .mejs-time-rail .mejs-time-loaded,
+ .skip-link .screen-reader-text {
+ background-color: #CC3300;
+ }
+
+ ::selection {
+ background-color: #CC3300;
+ }
+
+ legend {
+ border-color: rgba( 204, 51, 0, 0.15);
+ }
+
+ body {
+ border-top-color: #CC3300;
+ }
+
+ .entry-content a,
+ .entry-summary a,
+ .comment-content a {
+ border-bottom-color: rgba( 204, 51, 0, 0.15);
+ }
+
+ .entry-content a:hover,
+ .entry-content a:focus,
+ .entry-summary a:hover,
+ .entry-summary a:focus,
+ .comment-content a:hover,
+ .comment-content a:focus {
+ border-bottom-color: rgba( 204, 51, 0, 0.75);
+ }
+
+ body,
+ .widget-title,
+ #comments-number,
+ #reply-title,
+ .attachment-meta-title {
+ border-bottom-color: #CC3300;
+ }
+
+ blockquote {
+ background-color: rgba( 204, 51, 0, 0.85);
+ }
+
+ blockquote blockquote {
+ background-color: rgba( 204, 51, 0, 0.9);
+ }
+
+ blockquote {
+ outline-color: rgba( 204, 51, 0, 0.85);
+ }
+ </style>
+ <style type="text/css">
+ .recentcomments a {
+ display: inline !important;
+ padding: 0 !important;
+ margin: 0 !important;
+ }
+ </style>
+ <style type="text/css">
+ ul#recentcomments {
+ list-style: none;
+ padding: 0;
+ margin: 0;
+ }
+
+ ul#recentcomments li.recentcomments {
+ border-bottom: 1px solid #C6C6C6;
+ margin: 0 0 8px;
+ padding: 0 0 9px;
+ min-height: 40px;
+ background-image: none;
+ list-style: none;
+ }
+
+ ul#recentcomments .alignleft {
+ margin: 0 8px 0 0;
+ padding: 0;
+ }
+
+ ul#recentcomments img.avatar {
+ background-color: #FFFFFF;
+ border: 1px solid #C6C6C6;
+ box-shadow: none;
+ padding: 4px;
+ margin: 0;
+ }
+ </style>
+ <style type="text/css">
+ .pmcc-comments-report-link {
+ font: 10px sans-serif;
+ display: block;
+ float: right;
+ clear: left;
+ margin-top: 10px;
+ }
+
+ .pmcc-comments-report-link a {
+ color: #9C3E3E;
+ padding: 2px 5px;
+ margin: 2px 0 0 5px;
+ border: 1px solid #ddd;
+ }
+
+ .pmcc-comments-report-link strong {
+ color: white;
+ background: #c0392b;
+ padding-top: 2px;
+ border-radius: 7px;
+ display: block;
+ width: 15px;
+ height: 15px;
+ text-align: center;
+ margin-right: 10px;
+ }
+ </style>
+
+ <style type="text/css" id="custom-header-css">
+ body.custom-header #site-title a {
+ color: #252525;
+ }
+ </style>
+ <style type="text/css" id="custom-background-css">
+ body.custom-background {
+ background-image: url("https://wptavern.com/wp-content/uploads/2013/12/wood13.jpg");
+ background-position: left top;
+ background-size: auto;
+ background-repeat: repeat;
+ background-attachment: fixed;
+ }
+ </style>
+ <link rel="amphtml" href="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers/amp" />
+ <!-- Jetpack Open Graph Tags -->
+ <meta property="og:type" content="article" />
+ <meta property="og:title" content="Stack Overflow Jobs Data Shows ReactJS Skills in High Demand, WordPress Market Oversaturated with Developers" />
+ <meta property="og:url" content="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers" />
+ <meta property="og:description" content="Stack Overflow published its analysis of 2017 hiring trends based on the targeting options employers selected when posting to Stack Overflow Jobs. The report, which compares data from 200 companies…" />
+ <meta property="article:published_time" content="2017-03-09T23:16:02+00:00" />
+ <meta property="article:modified_time" content="2017-03-09T23:16:02+00:00" />
+ <meta property="og:site_name" content="WordPress Tavern" />
+ <meta property="og:image" content="https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?fit=1200%2C470&amp;ssl=1" />
+ <meta property="og:image:width" content="1200" />
+ <meta property="og:image:height" content="470" />
+ <meta property="og:locale" content="en_US" />
+ <meta name="twitter:site" content="@wptavern" />
+ <meta name="twitter:image" content="https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?fit=1200%2C470&amp;ssl=1&amp;w=640" />
+ <meta name="twitter:card" content="summary_large_image" />
+ <meta name="twitter:creator" content="@wptavern" />
+ <style type="text/css" id="syntaxhighlighteranchor"></style>
+
+ <!-- BEGIN GADWP v4.9.6.2 Universal Tracking - https://deconf.com/google-analytics-dashboard-wordpress/ -->
+ <script>
+ (function(i, s, o, g, r, a, m) {
+ i['GoogleAnalyticsObject'] = r;
+ i[r] = i[r] || function() {
+ (i[r].q = i[r].q || []).push(arguments)
+ }, i[r].l = 1 * new Date();
+ a = s.createElement(o),
+ m = s.getElementsByTagName(o)[0];
+ a.async = 1;
+ a.src = g;
+ m.parentNode.insertBefore(a, m)
+ })(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');
+ ga('create', 'UA-7150849-1', 'auto');
+ ga('set', 'dimension1', 'Sarah Gooding');
+ ga('send', 'pageview');
+ </script>
+
+ <!-- END GADWP Universal Tracking -->
+
+ <link rel="stylesheet" type="text/css" id="wp-custom-css" href="https://wptavern.com/?custom-css=2d4ff81801" />
+ <style type="text/css"></style>
+ <link type="text/css" rel="stylesheet" charset="UTF-8" href="https://translate.googleapis.com/translate_static/css/translateelement.css" />
+ <script type="text/javascript" charset="UTF-8" src="https://translate.googleapis.com/translate_static/js/element/main.js"></script>
+ <link rel="stylesheet" type="text/css" id="gravatar-card-css" href="https://secure.gravatar.com/css/hovercard.css?ver=2017Maraa" />
+ <link rel="stylesheet" type="text/css" id="gravatar-card-services-css" href="https://secure.gravatar.com/css/services.css?ver=2017Maraa" />
+ <script type="text/javascript" charset="UTF-8" src="https://translate.googleapis.com/element/TE_20170306_00/e/js/element/element_main.js"></script>
+ <style type="text/css">
+ .fb_hidden {
+ position: absolute;
+ top: -10000px;
+ z-index: 10001
+ }
+
+ .fb_reposition {
+ overflow: hidden;
+ position: relative
+ }
+
+ .fb_invisible {
+ display: none
+ }
+
+ .fb_reset {
+ background: none;
+ border: 0;
+ border-spacing: 0;
+ color: #000;
+ cursor: auto;
+ direction: ltr;
+ font-family: "lucida grande", tahoma, verdana, arial, sans-serif;
+ font-size: 11px;
+ font-style: normal;
+ font-variant: normal;
+ font-weight: normal;
+ letter-spacing: normal;
+ line-height: 1;
+ margin: 0;
+ overflow: visible;
+ padding: 0;
+ text-align: left;
+ text-decoration: none;
+ text-indent: 0;
+ text-shadow: none;
+ text-transform: none;
+ visibility: visible;
+ white-space: normal;
+ word-spacing: normal
+ }
+
+ .fb_reset&gt;
+ div {
+ overflow: hidden
+ }
+
+ .fb_link img {
+ border: none
+ }
+
+ @keyframes fb_transform {
+ from {
+ opacity: 0;
+ transform: scale(.95)
+ }
+ to {
+ opacity: 1;
+ transform: scale(1)
+ }
+ }
+
+ .fb_animate {
+ animation: fb_transform .3s forwards
+ }
+
+ .fb_dialog {
+ background: rgba(82, 82, 82, .7);
+ position: absolute;
+ top: -10000px;
+ z-index: 10001
+ }
+
+ .fb_reset .fb_dialog_legacy {
+ overflow: visible
+ }
+
+ .fb_dialog_advanced {
+ padding: 10px;
+ -moz-border-radius: 8px;
+ -webkit-border-radius: 8px;
+ border-radius: 8px
+ }
+
+ .fb_dialog_content {
+ background: #fff;
+ color: #333
+ }
+
+ .fb_dialog_close_icon {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/yq/r/IE9JII6Z1Ys.png) no-repeat scroll 0 0 transparent;
+ _background-image: url(https://static.xx.fbcdn.net/rsrc.php/v3/yL/r/s816eWC-2sl.gif);
+ cursor: pointer;
+ display: block;
+ height: 15px;
+ position: absolute;
+ right: 18px;
+ top: 17px;
+ width: 15px
+ }
+
+ .fb_dialog_mobile .fb_dialog_close_icon {
+ top: 5px;
+ left: 5px;
+ right: auto
+ }
+
+ .fb_dialog_padding {
+ background-color: transparent;
+ position: absolute;
+ width: 1px;
+ z-index: -1
+ }
+
+ .fb_dialog_close_icon:hover {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/yq/r/IE9JII6Z1Ys.png) no-repeat scroll 0 -15px transparent;
+ _background-image: url(https://static.xx.fbcdn.net/rsrc.php/v3/yL/r/s816eWC-2sl.gif)
+ }
+
+ .fb_dialog_close_icon:active {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/yq/r/IE9JII6Z1Ys.png) no-repeat scroll 0 -30px transparent;
+ _background-image: url(https://static.xx.fbcdn.net/rsrc.php/v3/yL/r/s816eWC-2sl.gif)
+ }
+
+ .fb_dialog_loader {
+ background-color: #f6f7f9;
+ border: 1px solid #606060;
+ font-size: 24px;
+ padding: 20px
+ }
+
+ .fb_dialog_top_left,
+ .fb_dialog_top_right,
+ .fb_dialog_bottom_left,
+ .fb_dialog_bottom_right {
+ height: 10px;
+ width: 10px;
+ overflow: hidden;
+ position: absolute
+ }
+
+ .fb_dialog_top_left {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/ye/r/8YeTNIlTZjm.png) no-repeat 0 0;
+ left: -10px;
+ top: -10px
+ }
+
+ .fb_dialog_top_right {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/ye/r/8YeTNIlTZjm.png) no-repeat 0 -10px;
+ right: -10px;
+ top: -10px
+ }
+
+ .fb_dialog_bottom_left {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/ye/r/8YeTNIlTZjm.png) no-repeat 0 -20px;
+ bottom: -10px;
+ left: -10px
+ }
+
+ .fb_dialog_bottom_right {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/ye/r/8YeTNIlTZjm.png) no-repeat 0 -30px;
+ right: -10px;
+ bottom: -10px
+ }
+
+ .fb_dialog_vert_left,
+ .fb_dialog_vert_right,
+ .fb_dialog_horiz_top,
+ .fb_dialog_horiz_bottom {
+ position: absolute;
+ background: #525252;
+ filter: alpha(opacity=70);
+ opacity: .7
+ }
+
+ .fb_dialog_vert_left,
+ .fb_dialog_vert_right {
+ width: 10px;
+ height: 100%
+ }
+
+ .fb_dialog_vert_left {
+ margin-left: -10px
+ }
+
+ .fb_dialog_vert_right {
+ right: 0;
+ margin-right: -10px
+ }
+
+ .fb_dialog_horiz_top,
+ .fb_dialog_horiz_bottom {
+ width: 100%;
+ height: 10px
+ }
+
+ .fb_dialog_horiz_top {
+ margin-top: -10px
+ }
+
+ .fb_dialog_horiz_bottom {
+ bottom: 0;
+ margin-bottom: -10px
+ }
+
+ .fb_dialog_iframe {
+ line-height: 0
+ }
+
+ .fb_dialog_content .dialog_title {
+ background: #6d84b4;
+ border: 1px solid #365899;
+ color: #fff;
+ font-size: 14px;
+ font-weight: bold;
+ margin: 0
+ }
+
+ .fb_dialog_content .dialog_title&gt;
+ span {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/yd/r/Cou7n-nqK52.gif) no-repeat 5px 50%;
+ float: left;
+ padding: 5px 0 7px 26px
+ }
+
+ body.fb_hidden {
+ -webkit-transform: none;
+ height: 100%;
+ margin: 0;
+ overflow: visible;
+ position: absolute;
+ top: -10000px;
+ left: 0;
+ width: 100%
+ }
+
+ .fb_dialog.fb_dialog_mobile.loading {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/ya/r/3rhSv5V8j3o.gif) white no-repeat 50% 50%;
+ min-height: 100%;
+ min-width: 100%;
+ overflow: hidden;
+ position: absolute;
+ top: 0;
+ z-index: 10001
+ }
+
+ .fb_dialog.fb_dialog_mobile.loading.centered {
+ width: auto;
+ height: auto;
+ min-height: initial;
+ min-width: initial;
+ background: none
+ }
+
+ .fb_dialog.fb_dialog_mobile.loading.centered #fb_dialog_loader_spinner {
+ width: 100%
+ }
+
+ .fb_dialog.fb_dialog_mobile.loading.centered .fb_dialog_content {
+ background: none
+ }
+
+ .loading.centered #fb_dialog_loader_close {
+ color: #fff;
+ display: block;
+ padding-top: 20px;
+ clear: both;
+ font-size: 18px
+ }
+
+ #fb-root #fb_dialog_ipad_overlay {
+ background: rgba(0, 0, 0, .45);
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ top: 0;
+ width: 100%;
+ min-height: 100%;
+ z-index: 10000
+ }
+
+ #fb-root #fb_dialog_ipad_overlay.hidden {
+ display: none
+ }
+
+ .fb_dialog.fb_dialog_mobile.loading iframe {
+ visibility: hidden
+ }
+
+ .fb_dialog_content .dialog_header {
+ -webkit-box-shadow: white 0 1px 1px -1px inset;
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#738ABA), to(#2C4987));
+ border-bottom: 1px solid;
+ border-color: #1d4088;
+ color: #fff;
+ font: 14px Helvetica, sans-serif;
+ font-weight: bold;
+ text-overflow: ellipsis;
+ text-shadow: rgba(0, 30, 84, .296875) 0 -1px 0;
+ vertical-align: middle;
+ white-space: nowrap
+ }
+
+ .fb_dialog_content .dialog_header table {
+ -webkit-font-smoothing: subpixel-antialiased;
+ height: 43px;
+ width: 100%
+ }
+
+ .fb_dialog_content .dialog_header td.header_left {
+ font-size: 12px;
+ padding-left: 5px;
+ vertical-align: middle;
+ width: 60px
+ }
+
+ .fb_dialog_content .dialog_header td.header_right {
+ font-size: 12px;
+ padding-right: 5px;
+ vertical-align: middle;
+ width: 60px
+ }
+
+ .fb_dialog_content .touchable_button {
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#4966A6), color-stop(.5, #355492), to(#2A4887));
+ border: 1px solid #29487d;
+ -webkit-background-clip: padding-box;
+ -webkit-border-radius: 3px;
+ -webkit-box-shadow: rgba(0, 0, 0, .117188) 0 1px 1px inset, rgba(255, 255, 255, .167969) 0 1px 0;
+ display: inline-block;
+ margin-top: 3px;
+ max-width: 85px;
+ line-height: 18px;
+ padding: 4px 12px;
+ position: relative
+ }
+
+ .fb_dialog_content .dialog_header .touchable_button input {
+ border: none;
+ background: none;
+ color: #fff;
+ font: 12px Helvetica, sans-serif;
+ font-weight: bold;
+ margin: 2px -12px;
+ padding: 2px 6px 3px 6px;
+ text-shadow: rgba(0, 30, 84, .296875) 0 -1px 0
+ }
+
+ .fb_dialog_content .dialog_header .header_center {
+ color: #fff;
+ font-size: 16px;
+ font-weight: bold;
+ line-height: 18px;
+ text-align: center;
+ vertical-align: middle
+ }
+
+ .fb_dialog_content .dialog_content {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/y9/r/jKEcVPZFk-2.gif) no-repeat 50% 50%;
+ border: 1px solid #555;
+ border-bottom: 0;
+ border-top: 0;
+ height: 150px
+ }
+
+ .fb_dialog_content .dialog_footer {
+ background: #f6f7f9;
+ border: 1px solid #555;
+ border-top-color: #ccc;
+ height: 40px
+ }
+
+ #fb_dialog_loader_close {
+ float: left
+ }
+
+ .fb_dialog.fb_dialog_mobile .fb_dialog_close_button {
+ text-shadow: rgba(0, 30, 84, .296875) 0 -1px 0
+ }
+
+ .fb_dialog.fb_dialog_mobile .fb_dialog_close_icon {
+ visibility: hidden
+ }
+
+ #fb_dialog_loader_spinner {
+ animation: rotateSpinner 1.2s linear infinite;
+ background-color: transparent;
+ background-image: url(https://static.xx.fbcdn.net/rsrc.php/v3/yD/r/t-wz8gw1xG1.png);
+ background-repeat: no-repeat;
+ background-position: 50% 50%;
+ height: 24px;
+ width: 24px
+ }
+
+ @keyframes rotateSpinner {
+ 0% {
+ transform: rotate(0deg)
+ }
+ 100% {
+ transform: rotate(360deg)
+ }
+ }
+
+ .fb_iframe_widget {
+ display: inline-block;
+ position: relative
+ }
+
+ .fb_iframe_widget span {
+ display: inline-block;
+ position: relative;
+ text-align: justify
+ }
+
+ .fb_iframe_widget iframe {
+ position: absolute
+ }
+
+ .fb_iframe_widget_fluid_desktop,
+ .fb_iframe_widget_fluid_desktop span,
+ .fb_iframe_widget_fluid_desktop iframe {
+ max-width: 100%
+ }
+
+ .fb_iframe_widget_fluid_desktop iframe {
+ min-width: 220px;
+ position: relative
+ }
+
+ .fb_iframe_widget_lift {
+ z-index: 1
+ }
+
+ .fb_hide_iframes iframe {
+ position: relative;
+ left: -10000px
+ }
+
+ .fb_iframe_widget_loader {
+ position: relative;
+ display: inline-block
+ }
+
+ .fb_iframe_widget_fluid {
+ display: inline
+ }
+
+ .fb_iframe_widget_fluid span {
+ width: 100%
+ }
+
+ .fb_iframe_widget_loader iframe {
+ min-height: 32px;
+ z-index: 2;
+ zoom: 1
+ }
+
+ .fb_iframe_widget_loader .FB_Loader {
+ background: url(https://static.xx.fbcdn.net/rsrc.php/v3/y9/r/jKEcVPZFk-2.gif) no-repeat;
+ height: 32px;
+ width: 32px;
+ margin-left: -16px;
+ position: absolute;
+ left: 50%;
+ z-index: 4
+ }
+ </style>
+</head>
+
+<body class="wordpress ltr en en-us child-theme y2017 m03 d15 h05 wednesday logged-out custom-background custom-header display-header-text singular singular-post singular-post-67202 post-format-standard layout-2c-l custom-colors font-primary" dir="ltr" itemscope="itemscope" itemtype="http://schema.org/Blog" style="position: relative; min-height: 100%; top: 0px;">
+
+ <div id="container">
+
+
+ <nav class="menu menu-primary font-secondary" role="navigation" id="menu-primary" aria-label="Primary Menu" itemscope="itemscope" itemtype="http://schema.org/SiteNavigationElement">
+
+ <h3 id="menu-primary-title" class="menu-toggle font-headlines">
+ <button class="screen-reader-text font-secondary">Secondary Menu</button>
+ </h3>
+ <!-- .menu-toggle -->
+
+ <div class="wrap">
+ <ul id="menu-primary-items" class="menu-items">
+ <li id="menu-item-4157" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-4157"><a href="http://www.wptavern.com">Home</a></li>
+ <li id="menu-item-8881" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-8881"><a href="https://wptavern.com/about">About</a></li>
+ <li id="menu-item-15916" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-15916"><a>Categories</a>
+ <ul class="sub-menu">
+ <li id="menu-item-15927" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-15927"><a href="https://wptavern.com/category/bbpress">bbPress</a></li>
+ <li id="menu-item-15926" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-15926"><a href="https://wptavern.com/category/blogging">Blogging</a></li>
+ <li id="menu-item-15923" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-15923"><a href="https://wptavern.com/category/buddypress">BuddyPress</a></li>
+ <li id="menu-item-15922" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-15922"><a href="https://wptavern.com/category/wordcamps-meetups">Events</a></li>
+ <li id="menu-item-61908" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-61908"><a href="https://wptavern.com/category/icymi">ICYMI</a></li>
+ <li id="menu-item-15918" class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-item-15918"><a href="https://wptavern.com/category/news">News</a></li>
+ <li id="menu-item-15919" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-15919"><a href="https://wptavern.com/category/plugins">Plugins</a></li>
+ <li id="menu-item-15925" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-15925"><a href="https://wptavern.com/category/polls">Polls</a></li>
+ <li id="menu-item-15921" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-15921"><a href="https://wptavern.com/category/themes">Themes</a></li>
+ <li id="menu-item-15920" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-15920"><a href="https://wptavern.com/category/wordpress-weekly">WordPress Weekly</a></li>
+ <li id="menu-item-15917" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-15917"><a href="https://wptavern.com/category/wordpressorg">WordPress</a></li>
+ </ul>
+ </li>
+ <li id="menu-item-8877" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-8877"><a href="https://wptavern.com/contributors">Contributors</a></li>
+ <li id="menu-item-13603" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-13603"><a title="WordPress Weekly Podcast" href="https://wptavern.com/wordpress-weekly">Podcast</a></li>
+ <li id="menu-item-48015" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-48015"><a href="https://wptavern.com/comment-policy">Comment Policy</a></li>
+ <li id="menu-item-4161" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4161"><a href="https://wptavern.com/contact-me">Contact Us</a></li>
+ </ul>
+ <form role="search" method="get" class="search-form" action="https://wptavern.com/"><button class="search-toggle" type="button"><span class="screen-reader-text">Expand Search Form</span></button>
+ <label class="font-secondary label-search" style="display: none;">
+ <span class="screen-reader-text">Search for:</span>
+ <input class="search-field font-primary" placeholder="Search …" value="" name="s" autocomplete="off" type="search" />
+ </label>
+ <input class="search-submit font-primary font-secondary" value="Search" type="submit" />
+ </form>
+ </div>
+ </nav>
+ <!-- #menu-primary -->
+
+
+ <div class="wrap">
+
+ <header id="header" class="site-header" role="banner" itemscope="itemscope" itemtype="http://schema.org/WPHeader">
+
+
+ <hgroup id="branding">
+ <a href="https://wptavern.com" title="WordPress Tavern" rel="home" class="img-hyperlink"><img src="https://wptavern.com/wp-content/themes/stargazer-child-dev/images/[email protected]" alt="WordPress Tavern Logo" scale="2" width="380" height="96" /></a>
+ </hgroup>
+ <!-- #branding -->
+
+
+
+ </header>
+ <!-- #header -->
+
+
+ <div id="main" class="main">
+
+
+ <nav role="navigation" aria-label="Breadcrumbs" class="breadcrumb-trail breadcrumbs font-secondary" itemprop="breadcrumb">
+ <ul class="trail-items" itemscope="" itemtype="http://schema.org/BreadcrumbList">
+ <meta name="numberOfItems" content="3" />
+ <meta name="itemListOrder" content="Ascending" />
+ <li itemprop="itemListElement" itemscope="" itemtype="http://schema.org/ListItem" class="trail-item trail-begin"><a href="https://wptavern.com" rel="home"><span class="screen-reader-text"><span itemprop="name">Home</span></span></a>
+ <meta itemprop="position" content="1" />
+ </li>
+ <li itemprop="itemListElement" itemscope="" itemtype="http://schema.org/ListItem" class="trail-item"><a href="https://wptavern.com/category/news"><span itemprop="name">News</span></a>
+ <meta itemprop="position" content="2" />
+ </li>
+ <li itemprop="itemListElement" itemscope="" itemtype="http://schema.org/ListItem" class="trail-item trail-end"><span itemprop="name">Stack Overflow Jobs Data Shows ReactJS Skills in High Demand, WordPress Market Oversaturated with Developers</span>
+ <meta itemprop="position" content="3" />
+ </li>
+ </ul>
+ </nav>
+
+ <main id="content" class="content" role="main" tabindex="-1">
+
+
+
+
+
+ <article id="post-67202" class="entry author-sarah post-67202 post type-post status-publish format-standard has-post-thumbnail category-news tag-jobs tag-stack-overflow" itemscope="itemscope" itemtype="http://schema.org/BlogPosting" itemprop="blogPost">
+
+
+ <header class="entry-header">
+
+ <h1 class="entry-title font-headlines" itemprop="headline">Stack Overflow Jobs Data Shows ReactJS Skills in High Demand, WordPress Market Oversaturated with Developers</h1>
+
+ <div class="entry-byline font-secondary">
+ <span class="entry-author" itemprop="author" itemscope="itemscope" itemtype="http://schema.org/Person"><a href="https://wptavern.com/author/sarah" title="Posts by Sarah Gooding" rel="author" class="url fn n" itemprop="url"><span itemprop="name">Sarah Gooding</span></a>
+ </span>
+ <time class="entry-published updated" datetime="2017-03-09T18:16:02-04:00" itemprop="datePublished" title="Thursday, March 9, 2017, 6:16 pm">March 9, 2017</time>
+ <a href="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers#comments" class="comments-link" itemprop="discussionURL">13</a> </div>
+ <!-- .entry-byline -->
+
+ </header>
+ <!-- .entry-header -->
+
+ <div class="entry-content" itemprop="articleBody">
+ <p>
+ <a href="https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?ssl=1" class="img-hyperlink"><img data-attachment-id="57913" data-permalink="https://wptavern.com/stack-overflow-documentation-is-now-in-beta/stack-overflow" data-orig-file="https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?fit=1650%2C646&amp;ssl=1" data-orig-size="1650,646" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="stack-overflow" data-image-description="" data-medium-file="https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?fit=300%2C117&amp;ssl=1" data-large-file="https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?fit=500%2C196&amp;ssl=1" src="https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?resize=1025%2C401&amp;ssl=1" alt="" class="aligncenter size-full wp-image-57913" srcset="https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?w=1650&amp;ssl=1 1650w, https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?resize=300%2C117&amp;ssl=1 300w, https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?resize=768%2C301&amp;ssl=1 768w, https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?resize=500%2C196&amp;ssl=1 500w, https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?resize=1025%2C401&amp;ssl=1 1025w" sizes="(max-width: 1025px) 100vw, 1025px" width="644" height="252" /></a>
+ </p>
+ <p>Stack Overflow published its analysis of <a href="https://stackoverflow.blog/2017/03/09/developer-hiring-trends-2017/" target="_blank">2017 hiring trends</a> based on the targeting options employers selected when posting to <a href="http://stackoverflow.com/jobs" target="_blank">Stack Overflow Jobs</a>. The report, which compares data from 200 companies since 2015, ranks ReactJS, Docker, and Ansible at the top of the fastest growing skills in demand. When comparing the percentage change from 2015 to 2016, technologies like AJAX, Backbone.js, jQuery, and WordPress are less in demand.</p>
+ <p>
+ <a href="https://i2.wp.com/wptavern.com/wp-content/uploads/2017/03/ChangesinDemand.png?ssl=1" class="img-hyperlink"><img data-attachment-id="67214" data-permalink="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers/changesindemand" data-orig-file="https://i2.wp.com/wptavern.com/wp-content/uploads/2017/03/ChangesinDemand.png?fit=975%2C1115&amp;ssl=1" data-orig-size="975,1115" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="ChangesinDemand" data-image-description="" data-medium-file="https://i2.wp.com/wptavern.com/wp-content/uploads/2017/03/ChangesinDemand.png?fit=262%2C300&amp;ssl=1" data-large-file="https://i2.wp.com/wptavern.com/wp-content/uploads/2017/03/ChangesinDemand.png?fit=437%2C500&amp;ssl=1" src="https://i2.wp.com/wptavern.com/wp-content/uploads/2017/03/ChangesinDemand.png?resize=975%2C1115&amp;ssl=1" alt="" class="aligncenter size-full wp-image-67214" srcset="https://i2.wp.com/wptavern.com/wp-content/uploads/2017/03/ChangesinDemand.png?w=975&amp;ssl=1 975w, https://i2.wp.com/wptavern.com/wp-content/uploads/2017/03/ChangesinDemand.png?resize=262%2C300&amp;ssl=1 262w, https://i2.wp.com/wptavern.com/wp-content/uploads/2017/03/ChangesinDemand.png?resize=768%2C878&amp;ssl=1 768w, https://i2.wp.com/wptavern.com/wp-content/uploads/2017/03/ChangesinDemand.png?resize=437%2C500&amp;ssl=1 437w" sizes="(max-width: 975px) 100vw, 975px" width="644" height="736" /></a>
+ </p>
+ <p>Stack Overflow also measured the demand relative to the available developers in different tech skills. The demand for backend, mobile, and database engineers is higher than the number of qualified candidates available. WordPress is last among the oversaturated fields with a surplus of developers relative to available positions.</p>
+ <p>
+ <a href="https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?ssl=1" class="img-hyperlink"><img data-attachment-id="67216" data-permalink="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers/highdemand" data-orig-file="https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?fit=975%2C854&amp;ssl=1" data-orig-size="975,854" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="HighDemand" data-image-description="" data-medium-file="https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?fit=300%2C263&amp;ssl=1" data-large-file="https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?fit=500%2C438&amp;ssl=1" src="https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?resize=975%2C854&amp;ssl=1" alt="" class="aligncenter size-full wp-image-67216" srcset="https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?w=975&amp;ssl=1 975w, https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?resize=300%2C263&amp;ssl=1 300w, https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?resize=768%2C673&amp;ssl=1 768w, https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?resize=500%2C438&amp;ssl=1 500w, https://i1.wp.com/wptavern.com/wp-content/uploads/2017/03/HighDemand.png?resize=571%2C500&amp;ssl=1 571w" sizes="(max-width: 975px) 100vw, 975px" width="644" height="564" /></a>
+ </p>
+ <p>In looking at these results, it’s important to consider the inherent biases within the Stack Overflow ecosystem. In 2016, the site surveyed more than 56,000 developers but noted that the survey was “biased against devs who don’t speak English.” The average age of respondents was 29.6 years old and 92.8% of them were male. </p>
+ <p>For two years running, Stack Overflow survey respondents have <a href="https://wptavern.com/stack-overflow-survey-results-show-wordpress-is-trending-up-despite-being-ranked-among-most-dreaded-technologies" target="_blank">ranked WordPress among the most dreaded technologies</a> that they would prefer not to use. This may be one reason why employers wouldn’t be looking to advertise positions on the site’s job board, which is the primary source of the data for this report.</p>
+ <p>Many IT career forecasts focus more generally on job descriptions and highest paying positions. Stack Overflow is somewhat unique in that it identifies trends in specific tech skills, pulling this data out of how employers are tagging their listings for positions. It presents demand in terms of number of skilled developers relative to available positions, a slightly more complicated approach than measuring demand based on advertised salary. However, Stack Overflow’s data presentation could use some refining. </p>
+ <p>One commenter, Bruce Van Horn, <a href="https://stackoverflow.blog/2017/03/09/developer-hiring-trends-2017/#comment-3194770754" target="_blank">noted</a> that jobs tagged as “Full Stack Developer” already assume many of the skills that are listed separately: </p>
+ <blockquote>
+ <p>I wonder how many of these skills are no longer listed because they are “table stakes”. You used to have to put CSS, jQuery, and JSON on the job description. I wouldn’t expect to have to put that on a Full Stack Developer description today – if you don’t know those then you aren’t a Full Stack Web Developer, and I’m more interested in whether you know the shiny things like React, Redux, and Angular2.</p>
+ </blockquote>
+ <p>It would be interesting to know what is meant by tagging “WordPress” as a skill – whether it is the general ability to work within the WordPress ecosystem of tools or if it refers to specific skills like PHP. Browsing a few jobs on Stack Overflow, <a href="http://stackoverflow.com/jobs?sort=i&amp;q=wordpress" target="_blank">WordPress positions</a> vary in the skills they require, such as React.js, Angular, PHP, HTML, CSS, and other technologies. This is a reflection of the diversity of technology that can be leveraged in creating WordPress-powered sites and applications, and several of these skills are listed independently of WordPress in the data. </p>
+ <p>Regardless of how much credibility you give Stack Overflow’s analysis of hiring trends, the report’s recommendation for those working in technologies oversaturated with developers is a good one: “Consider brushing up on some technologies that offer higher employer demand and less competition.” WordPress’ code base is currently <a href="https://www.openhub.net/p/wordpress/analyses/latest/languages_summary" target="_blank">59% PHP and 27% JavaScript</a>. The percentage of PHP has grown over time, but newer features and improvements to core are also being built in JavaScript. These are both highly portable skills that are in demand on the web.</p>
+ <div class="sharedaddy sd-sharing-enabled">
+ <div class="robots-nocontent sd-block sd-social sd-social-icon sd-sharing">
+ <h3 class="sd-title font-headlines">Share this:</h3>
+ <div class="sd-content">
+ <ul>
+ <li class="share-email share-service-visible"><a rel="nofollow" data-shared="" class="share-email sd-button share-icon no-text" href="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers?share=email&amp;nb=1" target="_blank" title="Click to email this to a friend"><span></span><span class="sharing-screen-reader-text">Click to email this to a friend (Opens in new window)</span></a></li>
+ <li class="share-facebook"><a rel="nofollow" data-shared="sharing-facebook-67202" class="share-facebook sd-button share-icon no-text" href="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers?share=facebook&amp;nb=1" target="_blank" title="Click to share on Facebook"><span><span class="share-count">61</span></span><span class="sharing-screen-reader-text">Click to share on Facebook (Opens in new window)<span class="share-count">61</span></span></a></li>
+ <li class="share-twitter"><a rel="nofollow" data-shared="sharing-twitter-67202" class="share-twitter sd-button share-icon no-text" href="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers?share=twitter&amp;nb=1" target="_blank" title="Click to share on Twitter"><span></span><span class="sharing-screen-reader-text">Click to share on Twitter (Opens in new window)</span></a></li>
+ <li class="share-telegram"><a rel="nofollow" data-shared="" class="share-telegram sd-button share-icon no-text" href="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers?share=telegram&amp;nb=1" target="_blank" title="Click to share on Telegram"><span></span><span class="sharing-screen-reader-text">Click to share on Telegram (Opens in new window)</span></a></li>
+ <li class="share-jetpack-whatsapp"><a rel="nofollow" data-shared="" class="share-jetpack-whatsapp sd-button share-icon no-text" href="whatsapp://send?text=Stack%20Overflow%20Jobs%20Data%20Shows%20ReactJS%20Skills%20in%20High%20Demand%2C%20WordPress%20Market%20Oversaturated%20with%20Developers%20https%3A%2F%2Fwptavern.com%2Fstack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers" target="_blank" title="Click to share on WhatsApp"><span></span><span class="sharing-screen-reader-text">Click to share on WhatsApp (Opens in new window)</span></a></li>
+ <li class="share-google-plus-1"><a rel="nofollow" data-shared="sharing-google-67202" class="share-google-plus-1 sd-button share-icon no-text" href="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers?share=google-plus-1&amp;nb=1" target="_blank" title="Click to share on Google+"><span></span><span class="sharing-screen-reader-text">Click to share on Google+ (Opens in new window)</span></a></li>
+ <li class="share-pocket"><a rel="nofollow" data-shared="" class="share-pocket sd-button share-icon no-text" href="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers?share=pocket&amp;nb=1" target="_blank" title="Click to share on Pocket"><span></span><span class="sharing-screen-reader-text">Click to share on Pocket (Opens in new window)</span></a></li>
+ <li class="share-reddit"><a rel="nofollow" data-shared="" class="share-reddit sd-button share-icon no-text" href="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers?share=reddit&amp;nb=1" target="_blank" title="Click to share on Reddit"><span></span><span class="sharing-screen-reader-text">Click to share on Reddit (Opens in new window)</span></a></li>
+ <li class="share-end"></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div class="sharedaddy sd-block sd-like jetpack-likes-widget-wrapper jetpack-likes-widget-loaded" id="like-post-wrapper-9006382-67202-58c90c896e67b" data-src="//widgets.wp.com/likes/#blog_id=9006382&amp;post_id=67202&amp;origin=wptavern.com&amp;obj_id=9006382-67202-58c90c896e67b" data-name="like-post-frame-9006382-67202-58c90c896e67b">
+ <h3 class="sd-title font-headlines">Like this:</h3>
+ <div class="likes-widget-placeholder post-likes-widget-placeholder" style="height: 55px; display: none;"><span class="button"><span>Like</span></span> <span class="loading">Loading...</span></div><iframe class="post-likes-widget jetpack-likes-widget" name="like-post-frame-9006382-67202-58c90c896e67b" src="//widgets.wp.com/likes/#blog_id=9006382&amp;post_id=67202&amp;origin=wptavern.com&amp;obj_id=9006382-67202-58c90c896e67b" width="100%" height="55px" frameborder="0"></iframe><span class="sd-text-color"></span>
+ <a class="sd-link-color"></a>
+ </div>
+ <div id="jp-relatedposts" class="jp-relatedposts" style="display: block;">
+ <h3 class="jp-relatedposts-headline font-headlines"><em>Related</em></h3>
+ <div class="jp-relatedposts-items jp-relatedposts-items-visual jp-relatedposts-grid ">
+ <div class="jp-relatedposts-post jp-relatedposts-post0 jp-relatedposts-post-thumbs" data-post-id="52540" data-post-format="false">
+ <a class="jp-relatedposts-post-a" href="https://wptavern.com/stack-overflow-survey-results-show-wordpress-is-trending-up-despite-being-ranked-among-most-dreaded-technologies" title="Stack Overflow Survey Results Show WordPress is Trending Up, Despite Being Ranked Among Most Dreaded Technologies
+
+Stack Overflow published the results of its 2016 Developer Survey, summarizing responses from 56,033 developers in 173 countries. The 45-question survey collected answers from more than twice as many developers as the previous year. The results were published along with a disclaimer recognizing that the survey is &quot;biased against devs…" rel="nofollow" data-origin="67202" data-position="0"><img class="jp-relatedposts-post-img" src="https://i1.wp.com/wptavern.com/wp-content/uploads/2016/03/stack-overflow-developer-survey-2016.png?fit=1200%2C541&amp;ssl=1&amp;resize=350%2C200" alt="Stack Overflow Survey Results Show WordPress is Trending Up, Despite Being Ranked Among Most Dreaded Technologies" scale="0" width="350" /></a>
+ <h4 class="jp-relatedposts-post-title"><a class="jp-relatedposts-post-a" href="https://wptavern.com/stack-overflow-survey-results-show-wordpress-is-trending-up-despite-being-ranked-among-most-dreaded-technologies" title="Stack Overflow Survey Results Show WordPress is Trending Up, Despite Being Ranked Among Most Dreaded Technologies
+
+Stack Overflow published the results of its 2016 Developer Survey, summarizing responses from 56,033 developers in 173 countries. The 45-question survey collected answers from more than twice as many developers as the previous year. The results were published along with a disclaimer recognizing that the survey is &quot;biased against devs…" rel="nofollow" data-origin="67202" data-position="0">Stack Overflow Survey Results Show WordPress is Trending Up, Despite Being Ranked Among Most Dreaded Technologies</a></h4>
+ <p class="jp-relatedposts-post-excerpt">Stack Overflow published the results of its 2016 Developer Survey, summarizing responses from 56,033 developers in 173 countries. The 45-question survey collected answers from more than twice as many developers as the previous year. The results were published along with a disclaimer recognizing that the survey is "biased against devs…</p>
+ <p class="jp-relatedposts-post-date" style="display: block;">March 17, 2016</p>
+ <p class="jp-relatedposts-post-context">In "News"</p>
+ </div>
+ <div class="jp-relatedposts-post jp-relatedposts-post1 jp-relatedposts-post-thumbs" data-post-id="41651" data-post-format="false">
+ <a class="jp-relatedposts-post-a" href="https://wptavern.com/stack-overflow-developer-survey-ranks-wordpress-as-the-3rd-most-dreaded-technology" title="Stack Overflow Developer Survey Ranks WordPress as the 3rd Most Dreaded Technology
+
+Stack Overflow has released the results of its 2015 developer survey, which covers a wide range of topics including preferred programming languages, education, compensation, and even caffeine consumption. The 45-question survey ran for just two weeks in February and the site was able to collect results from more than 26,000…" rel="nofollow" data-origin="67202" data-position="1"><img class="jp-relatedposts-post-img" src="https://i1.wp.com/wptavern.com/wp-content/uploads/2015/04/stack-overflow-developer-survey-2015.png?fit=700%2C287&amp;ssl=1&amp;resize=350%2C200" alt="Stack Overflow Developer Survey Ranks WordPress as the 3rd Most Dreaded Technology" scale="0" width="350" /></a>
+ <h4 class="jp-relatedposts-post-title"><a class="jp-relatedposts-post-a" href="https://wptavern.com/stack-overflow-developer-survey-ranks-wordpress-as-the-3rd-most-dreaded-technology" title="Stack Overflow Developer Survey Ranks WordPress as the 3rd Most Dreaded Technology
+
+Stack Overflow has released the results of its 2015 developer survey, which covers a wide range of topics including preferred programming languages, education, compensation, and even caffeine consumption. The 45-question survey ran for just two weeks in February and the site was able to collect results from more than 26,000…" rel="nofollow" data-origin="67202" data-position="1">Stack Overflow Developer Survey Ranks WordPress as the 3rd Most Dreaded Technology</a></h4>
+ <p class="jp-relatedposts-post-excerpt">Stack Overflow has released the results of its 2015 developer survey, which covers a wide range of topics including preferred programming languages, education, compensation, and even caffeine consumption. The 45-question survey ran for just two weeks in February and the site was able to collect results from more than 26,000…</p>
+ <p class="jp-relatedposts-post-date" style="display: block;">April 8, 2015</p>
+ <p class="jp-relatedposts-post-context">In "News"</p>
+ </div>
+ <div class="jp-relatedposts-post jp-relatedposts-post2 jp-relatedposts-post-thumbs" data-post-id="57906" data-post-format="false">
+ <a class="jp-relatedposts-post-a" href="https://wptavern.com/stack-overflow-documentation-is-now-in-beta" title="Stack Overflow Documentation is Now in Beta
+
+Building on the success of its Q&amp;A communities, Stack Overflow announced that its new Documentation product is now in beta. For the past eight years, the site has rewarded expert advice by floating high quality answers to the top and allowing users to earn reputation points. This formula has turned…" rel="nofollow" data-origin="67202" data-position="2"><img class="jp-relatedposts-post-img" src="https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?fit=1200%2C470&amp;ssl=1&amp;resize=350%2C200" alt="Stack Overflow Documentation is Now in Beta" scale="0" width="350" /></a>
+ <h4 class="jp-relatedposts-post-title"><a class="jp-relatedposts-post-a" href="https://wptavern.com/stack-overflow-documentation-is-now-in-beta" title="Stack Overflow Documentation is Now in Beta
+
+Building on the success of its Q&amp;A communities, Stack Overflow announced that its new Documentation product is now in beta. For the past eight years, the site has rewarded expert advice by floating high quality answers to the top and allowing users to earn reputation points. This formula has turned…" rel="nofollow" data-origin="67202" data-position="2">Stack Overflow Documentation is Now in Beta</a></h4>
+ <p class="jp-relatedposts-post-excerpt">Building on the success of its Q&amp;A communities, Stack Overflow announced that its new Documentation product is now in beta. For the past eight years, the site has rewarded expert advice by floating high quality answers to the top and allowing users to earn reputation points. This formula has turned…</p>
+ <p class="jp-relatedposts-post-date" style="display: block;">July 22, 2016</p>
+ <p class="jp-relatedposts-post-context">In "News"</p>
+ </div>
+ </div>
+ </div>
+ <div id="epoch-width-sniffer"></div>
+ </div>
+ <!-- .entry-content -->
+
+ <footer class="entry-footer font-secondary">
+ <span class="entry-terms category" itemprop="articleSection">Posted in <a href="https://wptavern.com/category/news" rel="tag">News</a></span> <br /><span class="entry-terms post_tag" itemprop="keywords">Tagged <a href="https://wptavern.com/tag/jobs" rel="tag">jobs</a>, <a href="https://wptavern.com/tag/stack-overflow" rel="tag">stack overflow</a></span> </footer>
+ <!-- .entry-footer -->
+
+
+ </article>
+ <!-- .entry -->
+
+ <div id="comments"></div>
+ <div id="epoch-wrap" class="comments-area epoch-wrapper" style="width: 650px;">
+ <h3 class="comment-count-area font-headlines">There are <span id="epoch-count">13</span> comments
+ <a href="#reply-title"> </a>
+ </h3>
+ <div id="epoch-comments">
+ <div id="epoch-loading" style="display: none;" aria-hidden="true">
+ <div class="dot1"></div>
+ <div class="dot2"></div>
+ </div>
+ <div id="comment-215101" data-comment-id="215101">
+ <article id="div-comment-215101" class="epoch-comment-body epoch-single-comment">
+ <footer class="epoch-comment-meta">
+ <div class="epoch-comment-author">
+ <div class="epoch-comment-author-avatar">
+ <a href="https://wpfangirl.com" title="Link to comment author's website" rel="nofollow" target="_blank" class="epoch-author-avatar"><img alt="" src="https://secure.gravatar.com/avatar/80a39eb1d7d169f5563483e61c3cba52?s=96&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fcanvas-wapuu-64.png&amp;r=r" srcset="https://secure.gravatar.com/avatar/80a39eb1d7d169f5563483e61c3cba52?s=96&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fcanvas-wapuu-64.png&amp;r=r 2x" class="avatar avatar-48 photo" itemprop="image" originals="48" src-orig="https://secure.gravatar.com/avatar/80a39eb1d7d169f5563483e61c3cba52?s=48&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fcanvas-wapuu-64.png&amp;r=r" scale="2" width="48" height="48" /></a>
+ </div>
+ <a href="https://wpfangirl.com" title="Link to comment author's website" rel="nofollow" target="_blank" class="epoch-author-link">Sallie Goetsch (rhymes with sketch)</a>
+ <span class="epoch-divide">·</span>
+ <a href="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers#comment-215101" title="Link to comment" class="epoch-comment-link"><time datetime="comment_date">March 10, 2017 at 12:20 AM</time></a>
+ </div>
+ <!-- .comment-author -->
+
+ </footer>
+ <!-- .comment-meta -->
+
+ <div class="epoch-comment-content">
+ <p>If there were really no demand for WordPress developers, I would not be so busy. But there may not be that much demand for the kind of developers who hang out on Stack Overflow’s job board.<span class="pmcc-comments-report-link" id="comment-215101"><a class="hide-if-no-js" href="javascript:void(0);" onclick="crowd_control_comments_flag_comment( '215101', '7a131817e2', '67202');">Report</a></span></p>
+
+ </div>
+ <!-- .comment-content -->
+
+ <ul class="epoch-comment-actions">
+ <li class="epoch-reply" data-comment-id="215101">
+ <a itemprop="replyToUrl" rel="nofollow" class="comment-reply-link" href="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers?replytocom=215101#respond" onclick='return addComment.moveForm( "comment-215101", "215101", "respond", "67202" )' aria-label="Reply to Sallie Goetsch (rhymes with sketch)">Reply</a>
+ </li>
+ </ul>
+
+ </article>
+ <!-- .comment-body -->
+ </div>
+ <div id="comment-215114" data-comment-id="215114">
+ <article id="div-comment-215114" class="epoch-comment-body epoch-single-comment">
+ <footer class="epoch-comment-meta">
+ <div class="epoch-comment-author">
+ <div class="epoch-comment-author-avatar">
+ <a href="https://www.Rarst.net/" title="Link to comment author's website" rel="nofollow" target="_blank" class="epoch-author-avatar"><img alt="" src="https://secure.gravatar.com/avatar/ab89ce39f47b327f1c85e4019e865a71?s=96&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Feduwapuu-64.png&amp;r=r" srcset="https://secure.gravatar.com/avatar/ab89ce39f47b327f1c85e4019e865a71?s=96&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Feduwapuu-64.png&amp;r=r 2x" class="avatar avatar-48 photo" itemprop="image" originals="48" src-orig="https://secure.gravatar.com/avatar/ab89ce39f47b327f1c85e4019e865a71?s=48&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Feduwapuu-64.png&amp;r=r" scale="2" width="48" height="48" /></a>
+ </div>
+ <a href="https://www.Rarst.net/" title="Link to comment author's website" rel="nofollow" target="_blank" class="epoch-author-link">Rarst</a>
+ <span class="epoch-divide">·</span>
+ <a href="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers#comment-215114" title="Link to comment" class="epoch-comment-link"><time datetime="comment_date">March 10, 2017 at 1:26 AM</time></a>
+ </div>
+ <!-- .comment-author -->
+
+ </footer>
+ <!-- .comment-meta -->
+
+ <div class="epoch-comment-content">
+ <p>One nuance of over saturation number might be that many people who self–identify themselves as WordPress “developers” might be in “site builder” segment. Off–the–shelf assembly and lightweight customization rather than involved custom development.</p>
+ <p>I had certainly never had an impression that there is an oversupply of of WP devs with advanced level of PHP and experience in custom projects.<span class="pmcc-comments-report-link" id="comment-215114"><a class="hide-if-no-js" href="javascript:void(0);" onclick="crowd_control_comments_flag_comment( '215114', '0cdbb25db6', '67202');">Report</a></span></p>
+
+ </div>
+ <!-- .comment-content -->
+
+ <ul class="epoch-comment-actions">
+ <li class="epoch-reply" data-comment-id="215114">
+ <a itemprop="replyToUrl" rel="nofollow" class="comment-reply-link" href="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers?replytocom=215114#respond" onclick='return addComment.moveForm( "comment-215114", "215114", "respond", "67202" )' aria-label="Reply to Rarst">Reply</a>
+ </li>
+ </ul>
+
+ </article>
+ <!-- .comment-body -->
+ <div class="epoch-child child-of-215114 level-1 ">
+
+ <div id="comment-215125" data-comment-id="215125">
+ <article id="div-comment-215125" class="epoch-comment-body epoch-single-comment">
+ <footer class="epoch-comment-meta">
+ <div class="epoch-comment-author">
+ <div class="epoch-comment-author-avatar">
+ <a href="http://never5.com" title="Link to comment author's website" rel="nofollow" target="_blank" class="epoch-author-avatar"><img alt="" src="https://secure.gravatar.com/avatar/3362e71af49222a4980d39c89b9f28ee?s=84&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fwapuu-torque-64.png&amp;r=r" srcset="https://secure.gravatar.com/avatar/3362e71af49222a4980d39c89b9f28ee?s=96&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fwapuu-torque-64.png&amp;r=r 2x" class="avatar avatar-48 photo" itemprop="image" originals="48" src-orig="https://secure.gravatar.com/avatar/3362e71af49222a4980d39c89b9f28ee?s=48&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fwapuu-torque-64.png&amp;r=r" scale="2" width="48" height="48" /></a>
+ </div>
+ <a href="http://never5.com" title="Link to comment author's website" rel="nofollow" target="_blank" class="epoch-author-link">Barry Kooij</a>
+ <span class="epoch-divide">·</span>
+ <a href="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers#comment-215125" title="Link to comment" class="epoch-comment-link"><time datetime="comment_date">March 10, 2017 at 2:56 AM</time></a>
+ </div>
+ <!-- .comment-author -->
+
+ </footer>
+ <!-- .comment-meta -->
+
+ <div class="epoch-comment-content">
+ <p>I feel like you’re 100% right on this one. WordPress has many self called ‘developers’ who actually don’t know how to code. I think there’s indeed a lot competition in that space (the “Off–the–shelf assembly and lightweight customization”) but there’s still more than enough work for developers that can actually code complex custom solutions in WP.<span class="pmcc-comments-report-link" id="comment-215125"><a class="hide-if-no-js" href="javascript:void(0);" onclick="crowd_control_comments_flag_comment( '215125', '23b35a0801', '67202');">Report</a></span></p>
+
+ </div>
+ <!-- .comment-content -->
+
+ <ul class="epoch-comment-actions">
+ <li class="epoch-reply" data-comment-id="215125">
+ <a itemprop="replyToUrl" rel="nofollow" class="comment-reply-link" href="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers?replytocom=215125#respond" onclick='return addComment.moveForm( "comment-215125", "215125", "respond", "67202" )' aria-label="Reply to Barry Kooij">Reply</a>
+ </li>
+ </ul>
+
+ </article>
+ <!-- .comment-body -->
+ <div class="epoch-child child-of-215125 level-2 ">
+
+ <div id="comment-215173" data-comment-id="215173">
+ <article id="div-comment-215173" class="epoch-comment-body epoch-single-comment">
+ <footer class="epoch-comment-meta">
+ <div class="epoch-comment-author">
+ <div class="epoch-comment-author-avatar">
+ <a href="http://ahmadawais.com" title="Link to comment author's website" rel="nofollow" target="_blank" class="epoch-author-avatar"><img alt="" src="https://secure.gravatar.com/avatar/7ad68a17dcb10ac8dfabf1b8c1f51b72?s=84&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fwapuu-der-ber-64.png&amp;r=r" srcset="https://secure.gravatar.com/avatar/7ad68a17dcb10ac8dfabf1b8c1f51b72?s=96&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fwapuu-der-ber-64.png&amp;r=r 2x" class="avatar avatar-48 photo" itemprop="image" originals="48" src-orig="https://secure.gravatar.com/avatar/7ad68a17dcb10ac8dfabf1b8c1f51b72?s=48&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fwapuu-der-ber-64.png&amp;r=r" scale="2" width="48" height="48" /></a>
+ </div>
+ <a href="http://ahmadawais.com" title="Link to comment author's website" rel="nofollow" target="_blank" class="epoch-author-link">Ahmad Awais</a>
+ <span class="epoch-divide">·</span>
+ <a href="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers#comment-215173" title="Link to comment" class="epoch-comment-link"><time datetime="comment_date">March 10, 2017 at 11:55 AM</time></a>
+ </div>
+ <!-- .comment-author -->
+
+ </footer>
+ <!-- .comment-meta -->
+
+ <div class="epoch-comment-content">
+ <p>Would you put yourself in that category of page builders?<span class="pmcc-comments-report-link" id="comment-215173"><a class="hide-if-no-js" href="javascript:void(0);" onclick="crowd_control_comments_flag_comment( '215173', 'a9fd3e88ee', '67202');">Report</a></span></p>
+
+ </div>
+ <!-- .comment-content -->
+
+ <ul class="epoch-comment-actions">
+ <li class="epoch-reply" data-comment-id="215173">
+ <a itemprop="replyToUrl" rel="nofollow" class="comment-reply-link" href="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers?replytocom=215173#respond" onclick='return addComment.moveForm( "comment-215173", "215173", "respond", "67202" )' aria-label="Reply to Ahmad Awais">Reply</a>
+ </li>
+ </ul>
+
+ </article>
+ <!-- .comment-body -->
+ <div class="epoch-child child-of-215173 level-3 ">
+
+ <div id="comment-215254" data-comment-id="215254">
+ <article id="div-comment-215254" class="epoch-comment-body epoch-single-comment">
+ <footer class="epoch-comment-meta">
+ <div class="epoch-comment-author">
+ <div class="epoch-comment-author-avatar">
+ <a href="http://never5.com" title="Link to comment author's website" rel="nofollow" target="_blank" class="epoch-author-avatar"><img alt="" src="https://secure.gravatar.com/avatar/3362e71af49222a4980d39c89b9f28ee?s=84&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fwapuu-torque-64.png&amp;r=r" srcset="https://secure.gravatar.com/avatar/3362e71af49222a4980d39c89b9f28ee?s=96&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fwapuu-torque-64.png&amp;r=r 2x" class="avatar avatar-48 photo" itemprop="image" originals="48" src-orig="https://secure.gravatar.com/avatar/3362e71af49222a4980d39c89b9f28ee?s=48&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fwapuu-torque-64.png&amp;r=r" scale="2" width="48" height="48" /></a>
+ </div>
+ <a href="http://never5.com" title="Link to comment author's website" rel="nofollow" target="_blank" class="epoch-author-link">Barry Kooij</a>
+ <span class="epoch-divide">·</span>
+ <a href="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers#comment-215254" title="Link to comment" class="epoch-comment-link"><time datetime="comment_date">March 13, 2017 at 6:30 AM</time></a>
+ </div>
+ <!-- .comment-author -->
+
+ </footer>
+ <!-- .comment-meta -->
+
+ <div class="epoch-comment-content">
+ <p>If I consider myself a ‘page builder’? If you’re asking if I do “Off–the–shelf assembly and lightweight customization” WordPress work, no I don’t. I make and sell WordPress plugins that allow others to do so though :)<span class="pmcc-comments-report-link" id="comment-215254"><a class="hide-if-no-js" href="javascript:void(0);" onclick="crowd_control_comments_flag_comment( '215254', 'e0d72b18a5', '67202');">Report</a></span></p>
+
+ </div>
+ <!-- .comment-content -->
+
+ <ul class="epoch-comment-actions">
+ <li class="epoch-reply" data-comment-id="215254">
+
+ </li>
+ </ul>
+
+ </article>
+ <!-- .comment-body -->
+ </div>
+
+ </div>
+ </div>
+
+ </div>
+ </div>
+
+ </div>
+ <div class="epoch-child child-of-215114 level-1 ">
+
+ <div id="comment-215219" data-comment-id="215219">
+ <article id="div-comment-215219" class="epoch-comment-body epoch-single-comment">
+ <footer class="epoch-comment-meta">
+ <div class="epoch-comment-author">
+ <div class="epoch-comment-author-avatar">
+ <img alt="" src="https://secure.gravatar.com/avatar/ae6946dbb86bba8d8f5052a53f608323?s=84&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fwapuu-poststatus-64.png&amp;r=r" srcset="https://secure.gravatar.com/avatar/ae6946dbb86bba8d8f5052a53f608323?s=96&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fwapuu-poststatus-64.png&amp;r=r 2x" class="avatar avatar-48 photo" itemprop="image" originals="48" src-orig="https://secure.gravatar.com/avatar/ae6946dbb86bba8d8f5052a53f608323?s=48&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fwapuu-poststatus-64.png&amp;r=r" scale="2" width="48" height="48" />
+ </div>
+ Ammon
+ <span class="epoch-divide">·</span>
+ <a href="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers#comment-215219" title="Link to comment" class="epoch-comment-link"><time datetime="comment_date">March 11, 2017 at 8:41 PM</time></a>
+ </div>
+ <!-- .comment-author -->
+
+ </footer>
+ <!-- .comment-meta -->
+
+ <div class="epoch-comment-content">
+ <p>You’re 100% correct Rarst. In my opinion, if a person does not have the skills of a computer scientist (OOP specifically) then they cannot really hold the title of a “developer,” albeit outside of project management skills; UML, scrum, etc. Developers can develop because when their calculator breaks, they can still do the math, so to speak. It will just be a little slower. </p>
+ <p>Installation, light-weight customization, tweaks, etc., relative to the WP theme design or not, is NOT true development. You must know code/syntax, algorithms (e.g. optimization techniques), etc. to truly “develop” big [project] picture, small picture, and the realtionships between them to tweak code. THAT is development.<span class="pmcc-comments-report-link" id="comment-215219"><a class="hide-if-no-js" href="javascript:void(0);" onclick="crowd_control_comments_flag_comment( '215219', '486cf344c8', '67202');">Report</a></span></p>
+
+ </div>
+ <!-- .comment-content -->
+
+ <ul class="epoch-comment-actions">
+ <li class="epoch-reply" data-comment-id="215219">
+ <a itemprop="replyToUrl" rel="nofollow" class="comment-reply-link" href="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers?replytocom=215219#respond" onclick='return addComment.moveForm( "comment-215219", "215219", "respond", "67202" )' aria-label="Reply to Ammon">Reply</a>
+ </li>
+ </ul>
+
+ </article>
+ <!-- .comment-body -->
+ </div>
+
+ </div>
+ <div class="epoch-child child-of-215114 level-1 ">
+
+ <div id="comment-215302" data-comment-id="215302">
+ <article id="div-comment-215302" class="epoch-comment-body epoch-single-comment">
+ <footer class="epoch-comment-meta">
+ <div class="epoch-comment-author">
+ <div class="epoch-comment-author-avatar">
+ <a href="https://asphaltthemes.com/" title="Link to comment author's website" rel="nofollow" target="_blank" class="epoch-author-avatar"><img alt="" src="https://secure.gravatar.com/avatar/?s=84&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2FWapuuPepa-64.png&amp;r=r" srcset="https://secure.gravatar.com/avatar/?s=96&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2FWapuuPepa-64.png&amp;r=r 2x" class="avatar avatar-48 photo avatar-default" itemprop="image" originals="48" src-orig="https://secure.gravatar.com/avatar/?s=48&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2FWapuuPepa-64.png&amp;r=r" scale="2" width="48" height="48" /></a>
+ </div>
+ <a href="https://asphaltthemes.com/" title="Link to comment author's website" rel="nofollow" target="_blank" class="epoch-author-link">Ashiquzzaman</a>
+ <span class="epoch-divide">·</span>
+ <a href="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers#comment-215302" title="Link to comment" class="epoch-comment-link"><time datetime="comment_date">March 14, 2017 at 7:36 AM</time></a>
+ </div>
+ <!-- .comment-author -->
+
+ </footer>
+ <!-- .comment-meta -->
+
+ <div class="epoch-comment-content">
+ <p>Agree with you. WordPress is heading towards the right direction and It is necessary to implement REST API quickly to make it more accessible for people who hate to deal with PHP or WordPress tags. <span class="pmcc-comments-report-link" id="comment-215302"><a class="hide-if-no-js" href="javascript:void(0);" onclick="crowd_control_comments_flag_comment( '215302', '82d8807b47', '67202');">Report</a></span></p>
+
+ </div>
+ <!-- .comment-content -->
+
+ <ul class="epoch-comment-actions">
+ <li class="epoch-reply" data-comment-id="215302">
+ <a itemprop="replyToUrl" rel="nofollow" class="comment-reply-link" href="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers?replytocom=215302#respond" onclick='return addComment.moveForm( "comment-215302", "215302", "respond", "67202" )' aria-label="Reply to Ashiquzzaman">Reply</a>
+ </li>
+ </ul>
+
+ </article>
+ <!-- .comment-body -->
+ </div>
+
+ </div>
+ </div>
+ <div id="comment-215128" data-comment-id="215128">
+ <article id="div-comment-215128" class="epoch-comment-body epoch-single-comment">
+ <footer class="epoch-comment-meta">
+ <div class="epoch-comment-author">
+ <div class="epoch-comment-author-avatar">
+ <a href="http://globaladvancedmedia.com" title="Link to comment author's website" rel="nofollow" target="_blank" class="epoch-author-avatar"><img alt="" src="https://secure.gravatar.com/avatar/0308418f96b6ebfd2eb92b7bedaf5546?s=96&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fshachihoko-wapuu-64.png&amp;r=r" srcset="https://secure.gravatar.com/avatar/0308418f96b6ebfd2eb92b7bedaf5546?s=96&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fshachihoko-wapuu-64.png&amp;r=r 2x" class="avatar avatar-48 photo" itemprop="image" originals="48" src-orig="https://secure.gravatar.com/avatar/0308418f96b6ebfd2eb92b7bedaf5546?s=48&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fshachihoko-wapuu-64.png&amp;r=r" scale="2" width="48" height="48" /></a>
+ </div>
+ <a href="http://globaladvancedmedia.com" title="Link to comment author's website" rel="nofollow" target="_blank" class="epoch-author-link">djsteveb</a>
+ <span class="epoch-divide">·</span>
+ <a href="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers#comment-215128" title="Link to comment" class="epoch-comment-link"><time datetime="comment_date">March 10, 2017 at 3:19 AM</time></a>
+ </div>
+ <!-- .comment-author -->
+
+ </footer>
+ <!-- .comment-meta -->
+
+ <div class="epoch-comment-content">
+ <p>tons of wordpress devs – and yet hardly any buddypress devs. I’ve posted several bp jobs and still have 4 plugin projects where no one will take my money.<span class="pmcc-comments-report-link" id="comment-215128"><a class="hide-if-no-js" href="javascript:void(0);" onclick="crowd_control_comments_flag_comment( '215128', '8d3133d841', '67202');">Report</a></span></p>
+
+ </div>
+ <!-- .comment-content -->
+
+ <ul class="epoch-comment-actions">
+ <li class="epoch-reply" data-comment-id="215128">
+ <a itemprop="replyToUrl" rel="nofollow" class="comment-reply-link" href="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers?replytocom=215128#respond" onclick='return addComment.moveForm( "comment-215128", "215128", "respond", "67202" )' aria-label="Reply to djsteveb">Reply</a>
+ </li>
+ </ul>
+
+ </article>
+ <!-- .comment-body -->
+ <div class="epoch-child child-of-215128 level-1 ">
+
+ <div id="comment-215138" data-comment-id="215138">
+ <article id="div-comment-215138" class="epoch-comment-body epoch-single-comment">
+ <footer class="epoch-comment-meta">
+ <div class="epoch-comment-author">
+ <div class="epoch-comment-author-avatar">
+ <a href="https://ovirium.com" title="Link to comment author's website" rel="nofollow" target="_blank" class="epoch-author-avatar"><img alt="" src="https://secure.gravatar.com/avatar/61fb07ede3247b63f19015f200b3eb2c?s=84&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fwapuu-travel-64.png&amp;r=r" srcset="https://secure.gravatar.com/avatar/61fb07ede3247b63f19015f200b3eb2c?s=96&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fwapuu-travel-64.png&amp;r=r 2x" class="avatar avatar-48 photo" itemprop="image" originals="48" src-orig="https://secure.gravatar.com/avatar/61fb07ede3247b63f19015f200b3eb2c?s=48&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fwapuu-travel-64.png&amp;r=r" scale="2" width="48" height="48" /></a>
+ </div>
+ <a href="https://ovirium.com" title="Link to comment author's website" rel="nofollow" target="_blank" class="epoch-author-link">Slava Abakumov</a>
+ <span class="epoch-divide">·</span>
+ <a href="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers#comment-215138" title="Link to comment" class="epoch-comment-link"><time datetime="comment_date">March 10, 2017 at 4:51 AM</time></a>
+ </div>
+ <!-- .comment-author -->
+
+ </footer>
+ <!-- .comment-meta -->
+
+ <div class="epoch-comment-content">
+ <p>I’m a “BuddyPress developer”, as well as quite a bunch of other people.<br /> The problem is that BP is not that big market, it’s not that easy to be 100% focused on BP-related projects only. So such people are either working with WP (mainly) and BP (when something – seldom – appear), or have own business around WP (and sometimes) BP. And such people are marketing WP skills more, I guess.<span class="pmcc-comments-report-link" id="comment-215138"><a class="hide-if-no-js" href="javascript:void(0);" onclick="crowd_control_comments_flag_comment( '215138', '5cc8d362bf', '67202');">Report</a></span></p>
+
+ </div>
+ <!-- .comment-content -->
+
+ <ul class="epoch-comment-actions">
+ <li class="epoch-reply" data-comment-id="215138">
+ <a itemprop="replyToUrl" rel="nofollow" class="comment-reply-link" href="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers?replytocom=215138#respond" onclick='return addComment.moveForm( "comment-215138", "215138", "respond", "67202" )' aria-label="Reply to Slava Abakumov">Reply</a>
+ </li>
+ </ul>
+
+ </article>
+ <!-- .comment-body -->
+ </div>
+
+ </div>
+ </div>
+ <div id="comment-215176" data-comment-id="215176">
+ <article id="div-comment-215176" class="epoch-comment-body epoch-single-comment">
+ <footer class="epoch-comment-meta">
+ <div class="epoch-comment-author">
+ <div class="epoch-comment-author-avatar">
+ <a href="http://bentcorner.com/" title="Link to comment author's website" rel="nofollow" target="_blank" class="epoch-author-avatar"><img alt="" src="https://secure.gravatar.com/avatar/16b1673da5245d28872801f737595b84?s=96&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fmatsuri-wapuu-64.png&amp;r=r" srcset="https://secure.gravatar.com/avatar/16b1673da5245d28872801f737595b84?s=96&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fmatsuri-wapuu-64.png&amp;r=r 2x" class="avatar avatar-48 photo" itemprop="image" originals="48" src-orig="https://secure.gravatar.com/avatar/16b1673da5245d28872801f737595b84?s=48&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fmatsuri-wapuu-64.png&amp;r=r" scale="2" width="48" height="48" /></a>
+ </div>
+ <a href="http://bentcorner.com/" title="Link to comment author's website" rel="nofollow" target="_blank" class="epoch-author-link">Rick Rottman</a>
+ <span class="epoch-divide">·</span>
+ <a href="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers#comment-215176" title="Link to comment" class="epoch-comment-link"><time datetime="comment_date">March 10, 2017 at 2:18 PM</time></a>
+ </div>
+ <!-- .comment-author -->
+
+ </footer>
+ <!-- .comment-meta -->
+
+ <div class="epoch-comment-content">
+ <p>Why doesn’t WordPress have some kind of certification system when it comes to working with WordPress? Make it something similar to CompTIA A+ certification. There could be different levels of verification to cover all aspects of WordPress. It would be a benefit to anyone trying to make a living working with WordPress. It would also be a major benefit for anyone seeking to hire a WordPress professional. There could be a centralized location on dot org that would list certified WordPress professionals tagged with their various certifications. </p>
+ <p>Currently, it’s so hit or miss when it comes to hiring someone to provide help with WordPress. You might need someone with just a basic skill set to set up a new site with a standard theme and some basic plugins, but the person you hire is more suited for advanced, complex integrations involving multiple APIs. The problem is, the customer ends up paying far more than they really need to for someone with skill sets far more advanced than what they actually need. <span class="pmcc-comments-report-link" id="comment-215176"><a class="hide-if-no-js" href="javascript:void(0);" onclick="crowd_control_comments_flag_comment( '215176', 'b8e4e3f568', '67202');">Report</a></span></p>
+
+ </div>
+ <!-- .comment-content -->
+
+ <ul class="epoch-comment-actions">
+ <li class="epoch-reply" data-comment-id="215176">
+ <a itemprop="replyToUrl" rel="nofollow" class="comment-reply-link" href="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers?replytocom=215176#respond" onclick='return addComment.moveForm( "comment-215176", "215176", "respond", "67202" )' aria-label="Reply to Rick Rottman">Reply</a>
+ </li>
+ </ul>
+
+ </article>
+ <!-- .comment-body -->
+ <div class="epoch-child child-of-215176 level-1 ">
+
+ <div id="comment-215180" data-comment-id="215180">
+ <article id="div-comment-215180" class="epoch-comment-body epoch-single-comment">
+ <footer class="epoch-comment-meta">
+ <div class="epoch-comment-author">
+ <div class="epoch-comment-author-avatar">
+ <a href="https://www.wpfangirl.com/" title="Link to comment author's website" rel="nofollow" target="_blank" class="epoch-author-avatar"><img alt="" src="https://secure.gravatar.com/avatar/80a39eb1d7d169f5563483e61c3cba52?s=84&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fcanvas-wapuu-64.png&amp;r=r" srcset="https://secure.gravatar.com/avatar/80a39eb1d7d169f5563483e61c3cba52?s=96&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fcanvas-wapuu-64.png&amp;r=r 2x" class="avatar avatar-48 photo" itemprop="image" originals="48" src-orig="https://secure.gravatar.com/avatar/80a39eb1d7d169f5563483e61c3cba52?s=48&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fcanvas-wapuu-64.png&amp;r=r" scale="2" width="48" height="48" /></a>
+ </div>
+ <a href="https://www.wpfangirl.com/" title="Link to comment author's website" rel="nofollow" target="_blank" class="epoch-author-link">Sallie Goetsch</a>
+ <span class="epoch-divide">·</span>
+ <a href="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers#comment-215180" title="Link to comment" class="epoch-comment-link"><time datetime="comment_date">March 10, 2017 at 3:50 PM</time></a>
+ </div>
+ <!-- .comment-author -->
+
+ </footer>
+ <!-- .comment-meta -->
+
+ <div class="epoch-comment-content">
+ <p>In theory, this might be a good idea, though just who would do the certifying? In practice, however, I’ve heard from people who’ve been developing compiled software since before PHP existed that a lot of those certifications really test your ability to take standardized tests, not your ability as a programmer. The best way to hire anybody to do anything is to get a personal recommendation.<span class="pmcc-comments-report-link" id="comment-215180"><a class="hide-if-no-js" href="javascript:void(0);" onclick="crowd_control_comments_flag_comment( '215180', 'cacd6ec5d2', '67202');">Report</a></span></p>
+
+ </div>
+ <!-- .comment-content -->
+
+ <ul class="epoch-comment-actions">
+ <li class="epoch-reply" data-comment-id="215180">
+ <a itemprop="replyToUrl" rel="nofollow" class="comment-reply-link" href="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers?replytocom=215180#respond" onclick='return addComment.moveForm( "comment-215180", "215180", "respond", "67202" )' aria-label="Reply to Sallie Goetsch">Reply</a>
+ </li>
+ </ul>
+
+ </article>
+ <!-- .comment-body -->
+ <div class="epoch-child child-of-215180 level-2 ">
+
+ <div id="comment-215186" data-comment-id="215186">
+ <article id="div-comment-215186" class="epoch-comment-body epoch-single-comment">
+ <footer class="epoch-comment-meta">
+ <div class="epoch-comment-author">
+ <div class="epoch-comment-author-avatar">
+ <a href="http://bentcorner.com/" title="Link to comment author's website" rel="nofollow" target="_blank" class="epoch-author-avatar"><img alt="" src="https://secure.gravatar.com/avatar/16b1673da5245d28872801f737595b84?s=84&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fmatsuri-wapuu-64.png&amp;r=r" srcset="https://secure.gravatar.com/avatar/16b1673da5245d28872801f737595b84?s=96&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fmatsuri-wapuu-64.png&amp;r=r 2x" class="avatar avatar-48 photo" itemprop="image" originals="48" src-orig="https://secure.gravatar.com/avatar/16b1673da5245d28872801f737595b84?s=48&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fmatsuri-wapuu-64.png&amp;r=r" scale="2" width="48" height="48" /></a>
+ </div>
+ <a href="http://bentcorner.com/" title="Link to comment author's website" rel="nofollow" target="_blank" class="epoch-author-link">Rick Rottman</a>
+ <span class="epoch-divide">·</span>
+ <a href="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers#comment-215186" title="Link to comment" class="epoch-comment-link"><time datetime="comment_date">March 10, 2017 at 6:16 PM</time></a>
+ </div>
+ <!-- .comment-author -->
+
+ </footer>
+ <!-- .comment-meta -->
+
+ <div class="epoch-comment-content">
+ <p>WordPress.org should do the certifications. Individual testing could happen at WordCamps and/or at local testing facilities like how CompTIA A+ certification is handled. Most clients do not need a programmer or a developer. They need someone who can set up a website. That means finding a host, installing WordPress, installing a theme, and installing plugins. </p>
+ <p>If someone hires a programmer to do all that, they are most likely overpaying for the work. </p>
+ <p><span class="pmcc-comments-report-link" id="comment-215186"><a class="hide-if-no-js" href="javascript:void(0);" onclick="crowd_control_comments_flag_comment( '215186', '602ce2fb2c', '67202');">Report</a></span></p>
+
+ </div>
+ <!-- .comment-content -->
+
+ <ul class="epoch-comment-actions">
+ <li class="epoch-reply" data-comment-id="215186">
+ <a itemprop="replyToUrl" rel="nofollow" class="comment-reply-link" href="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers?replytocom=215186#respond" onclick='return addComment.moveForm( "comment-215186", "215186", "respond", "67202" )' aria-label="Reply to Rick Rottman">Reply</a>
+ </li>
+ </ul>
+
+ </article>
+ <!-- .comment-body -->
+ <div class="epoch-child child-of-215186 level-3 ">
+
+ <div id="comment-215190" data-comment-id="215190">
+ <article id="div-comment-215190" class="epoch-comment-body epoch-single-comment">
+ <footer class="epoch-comment-meta">
+ <div class="epoch-comment-author">
+ <div class="epoch-comment-author-avatar">
+ <a href="https://wpfangirl.com" title="Link to comment author's website" rel="nofollow" target="_blank" class="epoch-author-avatar"><img alt="" src="https://secure.gravatar.com/avatar/80a39eb1d7d169f5563483e61c3cba52?s=84&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fcanvas-wapuu-64.png&amp;r=r" srcset="https://secure.gravatar.com/avatar/80a39eb1d7d169f5563483e61c3cba52?s=96&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fcanvas-wapuu-64.png&amp;r=r 2x" class="avatar avatar-48 photo" itemprop="image" originals="48" src-orig="https://secure.gravatar.com/avatar/80a39eb1d7d169f5563483e61c3cba52?s=48&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fcanvas-wapuu-64.png&amp;r=r" scale="2" width="48" height="48" /></a>
+ </div>
+ <a href="https://wpfangirl.com" title="Link to comment author's website" rel="nofollow" target="_blank" class="epoch-author-link">Sallie Goetsch (rhymes with sketch)</a>
+ <span class="epoch-divide">·</span>
+ <a href="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers#comment-215190" title="Link to comment" class="epoch-comment-link"><time datetime="comment_date">March 10, 2017 at 11:43 PM</time></a>
+ </div>
+ <!-- .comment-author -->
+
+ </footer>
+ <!-- .comment-meta -->
+
+ <div class="epoch-comment-content">
+ <p>Were you volunteering to help design the tests and conduct the certifications? Or at least set up the means to organize it on make.wordpress.org? It’s an idea that has potential merit and you aren’t the first person to wish there were some kind of standards by which to judge a person’s basic WordPress literacy. </p>
+ <p>To the best of my knowledge, however, everything done by WordPress.org is handled by volunteers. In the spirit of open source, if there’s something you want to see happen, you need to get it started. </p>
+ <p>An idea like certification would actually need much broader support throughout the WordPress community than a choice of what to focus development on for the next release. And it would require either a means to administer and grade the test online automatically (requiring programming to make it work) or a fairly large army of volunteers to undertake in-person testing. I imagine you could tie up years of surveys and committee meetings just figuring out what you wanted to test for, never mind designing the test itself. </p>
+ <p>And you have to decide how often people need to re-certify, because recommendations and best practices change rapidly in the web world.</p>
+ <p>Even if you get that far, it will only make a difference if enough people accept the validity of the test and care whether someone has passed it before hiring them.</p>
+ <p>And, finally, a test like that could determine whether the person had enough skill to install WordPress, set up a theme, and choose some plugins, or (at a more advanced level) whether they understand WordPress’ action and filter hooks, plus PHP, HTML, CSS, and JavaScript, but it will never tell you whether a person is honest, timely, able to understand (or even ask) what a client’s real needs and goals are, or someone you can work with without both of you going crazy.<span class="pmcc-comments-report-link" id="comment-215190"><a class="hide-if-no-js" href="javascript:void(0);" onclick="crowd_control_comments_flag_comment( '215190', '2fb454b1a7', '67202');">Report</a></span></p>
+
+ </div>
+ <!-- .comment-content -->
+
+ <ul class="epoch-comment-actions">
+ <li class="epoch-reply" data-comment-id="215190">
+
+ </li>
+ </ul>
+
+ </article>
+ <!-- .comment-body -->
+ </div>
+
+ </div>
+ </div>
+
+ </div>
+ </div>
+
+ </div>
+ </div>
+ </div>
+ <div id="epoch-commenting">
+ <div id="respond" class="comment-respond">
+ <h3 id="reply-title" class="comment-reply-title font-headlines"><span class="wrap"> <small class="font-primary"><a rel="nofollow" id="cancel-comment-reply-link" href="/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers#respond" style="display:none;">Cancel reply</a></small></span></h3>
+ <form method="post" id="commentform" class="comment-form" novalidate="" action="post">
+ <p class="comment-notes"><span id="email-notes">Your email address will not be published.</span> Required fields are marked <span class="required font-primary">*</span></p>
+ <p class="comment-form-comment"><label for="comment" class="font-secondary label-textarea">Comment</label>
+ <div id="qt_comment_toolbar" class="quicktags-toolbar"><input id="qt_comment_strong" class="ed_button button button-small" aria-label="Bold" value="b" type="button" /><input id="qt_comment_em" class="ed_button button button-small" aria-label="Italic" value="i" type="button" /><input id="qt_comment_link" class="ed_button button button-small" aria-label="Insert link" value="link" type="button" /><input id="qt_comment_quote" class="ed_button button button-small" value="quote" type="button" /></div><textarea id="comment" name="comment" cols="45" rows="8" maxlength="65525" aria-required="true" required="required" class="font-primary"></textarea></p>
+ <p class="comment-form-author"><label for="author" class="font-secondary label-text">Name <span class="required font-primary">*</span></label> <input id="author" name="author" value="" size="30" maxlength="245" aria-required="true" required="required" class="font-primary" type="text" /></p>
+ <p class="comment-form-email"><label for="email" class="font-secondary label-email">Email <span class="required font-primary">*</span></label> <input id="email" name="email" value="" size="30" maxlength="100" aria-describedby="email-notes" aria-required="true" required="required" class="font-primary" type="email" /></p>
+ <p class="comment-form-url"><label for="url" class="font-secondary label-url">Website</label> <input id="url" name="url" value="" size="30" maxlength="200" class="font-primary" type="url" /></p>
+ <label id="prompt-comment-subscribe" class="label-checkbox font-primary"><input name="prompt_comment_subscribe" value="1" class="font-primary" type="checkbox" /> <span class="postmatic-tooltip">Join the discussion via email<em>Get only replies to your comment, the best of the rest, as well as a daily recap of all comments on this post. No more than a few emails daily, which you can reply to/unsubscribe from directly from your inbox.</em></span></label>
+ <p class="form-submit"><input name="submit" id="submit" class="submit font-primary font-secondary" value="Post Comment" type="submit" /> <input name="comment_post_ID" value="67202" id="comment_post_ID" class="font-primary" type="hidden" />
+ <input name="comment_parent" id="comment_parent" value="0" class="font-primary" type="hidden" />
+ </p>
+ <p style="display: none;"><input id="akismet_comment_nonce" name="akismet_comment_nonce" value="b655315fa6" class="font-primary" type="hidden" /></p>
+ <p class="comment-subscription-form"><input name="subscribe_comments" id="subscribe_comments" value="subscribe" style="width: auto; -moz-appearance: checkbox; -webkit-appearance: checkbox;" class="font-primary" type="checkbox" /> <label class="subscribe-label label-checkbox font-primary" id="subscribe-label" for="subscribe_comments">Notify me of follow-up comments by email.</label></p>
+ <p class="comment-subscription-form"><input name="subscribe_blog" id="subscribe_blog" value="subscribe" style="width: auto; -moz-appearance: checkbox; -webkit-appearance: checkbox;" class="font-primary" type="checkbox" /> <label class="subscribe-label label-checkbox font-primary" id="subscribe-blog-label" for="subscribe_blog">Notify me of new posts by email.</label></p>
+ <p style="display: none;"></p> <input id="ak_js" name="ak_js" value="1489570949116" class="font-primary" type="hidden" /></form>
+ </div>
+ <!-- #respond -->
+ </div>
+ </div>
+
+
+
+ <div class="loop-nav">
+ <div class="prev">Previous Post: <a href="https://wptavern.com/google-launches-invisible-recaptcha" rel="prev">Google Launches Invisible reCAPTCHA</a></div>
+ <div class="next">Next Post: <a href="https://wptavern.com/wefoster-launches-hosting-platform-catered-to-online-communities" rel="next">WeFoster Launches Hosting Platform Catered to Online Communities</a></div>
+ </div>
+ <!-- .loop-nav -->
+
+
+
+ </main>
+ <!-- #content -->
+
+
+ <aside class="sidebar sidebar-primary" role="complementary" id="sidebar-primary" aria-label="Primary Sidebar" itemscope="itemscope" itemtype="http://schema.org/WPSideBar">
+
+ <h3 id="sidebar-primary-title" class="screen-reader-text font-headlines">Primary Sidebar</h3>
+
+
+ <section id="google_translate_widget-2" class="widget widget_google_translate_widget">
+ <div id="google_translate_element">
+ <div class="skiptranslate goog-te-gadget" dir="ltr" style="">
+ <div id=":0.targetLanguage" style="white-space: nowrap;" class="goog-te-gadget-simple"><img src="https://www.google.com/images/cleardot.gif" class="goog-te-gadget-icon" alt="" style="background-image: url(&quot;https://translate.googleapis.com/translate_static/img/te_ctrl3.gif&quot;); background-position: -65px 0px;" scale="0" /><span style="vertical-align: middle;"><a role="menu" class="goog-te-menu-value" href="javascript:void(0)"><span>Select Language</span><img src="https://www.google.com/images/cleardot.gif" alt="" scale="0" width="1" height="1" /><span style="border-left: 1px solid rgb(187, 187, 187);">​</span><img src="https://www.google.com/images/cleardot.gif" alt="" scale="0" width="1" height="1" /><span style="color: rgb(118, 118, 118);">▼</span></a>
+ </span>
+ </div>
+ </div>
+ </div>
+ </section>
+ <section id="top-posts-3" class="widget widget_top-posts">
+ <h3 class="widget-title font-headlines"><span class="wrap">Currently On Tap</span></h3>
+ <ul class="widgets-list-layout no-grav">
+ <li>
+ <a href="https://wptavern.com/wordpress-com-updates-its-post-editor-with-a-distraction-free-interface" title="WordPress.com Updates Its Post Editor With a Distraction-Free Interface" class="bump-view img-hyperlink" data-bump-view="tp">
+ <img src="https://i0.wp.com/wptavern.com/wp-content/uploads/2016/02/writing.jpg?fit=1200%2C553&amp;ssl=1&amp;resize=60%2C60" class="widgets-list-layout-blavatar" alt="WordPress.com Updates Its Post Editor With a Distraction-Free Interface" data-pin-nopin="true" scale="0" width="60" height="60" />
+ </a>
+ <div class="widgets-list-layout-links">
+ <a href="https://wptavern.com/wordpress-com-updates-its-post-editor-with-a-distraction-free-interface" class="bump-view" data-bump-view="tp">
+ WordPress.com Updates Its Post Editor With a Distraction-Free Interface </a>
+ </div>
+ </li>
+ <li>
+ <a href="https://wptavern.com/woocommerce-3-0-0-scheduled-for-release-april-4th" title="WooCommerce 3.0.0 Scheduled for Release April 4th" class="bump-view img-hyperlink" data-bump-view="tp">
+ <img src="https://i0.wp.com/wptavern.com/wp-content/uploads/2017/01/WooCommerceFeaturedImage.png?fit=650%2C200&amp;ssl=1&amp;resize=60%2C60" class="widgets-list-layout-blavatar" alt="WooCommerce 3.0.0 Scheduled for Release April 4th" data-pin-nopin="true" scale="0" width="60" height="60" />
+ </a>
+ <div class="widgets-list-layout-links">
+ <a href="https://wptavern.com/woocommerce-3-0-0-scheduled-for-release-april-4th" class="bump-view" data-bump-view="tp">
+ WooCommerce 3.0.0 Scheduled for Release April 4th </a>
+ </div>
+ </li>
+ <li>
+ <a href="https://wptavern.com/how-to-create-a-dropdown-menu-of-wordpress-categories-without-using-code" title="How To Create A Dropdown Menu Of WordPress Categories Without Using Code" class="bump-view img-hyperlink" data-bump-view="tp">
+ <img src="https://i2.wp.com/wptavern.com/wp-content/uploads/2014/01/DropDownCategoriesTutorialFeaturedImage.jpg?fit=650%2C200&amp;ssl=1&amp;resize=60%2C60" class="widgets-list-layout-blavatar" alt="How To Create A Dropdown Menu Of WordPress Categories Without Using Code" data-pin-nopin="true" scale="0" width="60" height="60" />
+ </a>
+ <div class="widgets-list-layout-links">
+ <a href="https://wptavern.com/how-to-create-a-dropdown-menu-of-wordpress-categories-without-using-code" class="bump-view" data-bump-view="tp">
+ How To Create A Dropdown Menu Of WordPress Categories Without Using Code </a>
+ </div>
+ </li>
+ <li>
+ <a href="https://wptavern.com/john-maedas-2017-design-in-tech-report-puts-the-spotlight-on-inclusive-design" title="John Maeda's 2017 Design in Tech Report Puts the Spotlight on Inclusive Design" class="bump-view img-hyperlink" data-bump-view="tp">
+ <img src="https://i2.wp.com/wptavern.com/wp-content/uploads/2017/03/design-in-tech-2017.png?fit=1200%2C547&amp;ssl=1&amp;resize=60%2C60" class="widgets-list-layout-blavatar" alt="John Maeda's 2017 Design in Tech Report Puts the Spotlight on Inclusive Design" data-pin-nopin="true" scale="0" width="60" height="60" />
+ </a>
+ <div class="widgets-list-layout-links">
+ <a href="https://wptavern.com/john-maedas-2017-design-in-tech-report-puts-the-spotlight-on-inclusive-design" class="bump-view" data-bump-view="tp">
+ John Maeda's 2017 Design in Tech Report Puts the Spotlight on Inclusive Design </a>
+ </div>
+ </li>
+ <li>
+ <a href="https://wptavern.com/beware-of-links-to-baidu-in-skype-messages" title="Beware of Links to Baidu in Skype Messages" class="bump-view img-hyperlink" data-bump-view="tp">
+ <img src="https://i2.wp.com/wptavern.com/wp-content/uploads/2015/01/links.jpg?fit=1024%2C508&amp;ssl=1&amp;resize=60%2C60" class="widgets-list-layout-blavatar" alt="Beware of Links to Baidu in Skype Messages" data-pin-nopin="true" scale="0" width="60" height="60" />
+ </a>
+ <div class="widgets-list-layout-links">
+ <a href="https://wptavern.com/beware-of-links-to-baidu-in-skype-messages" class="bump-view" data-bump-view="tp">
+ Beware of Links to Baidu in Skype Messages </a>
+ </div>
+ </li>
+ </ul>
+ </section>
+ <section id="recent-comments-2" class="widget widget_recent_comments">
+ <h3 class="widget-title font-headlines"><span class="wrap">Recent Comments</span></h3>
+ <ul id="recentcomments">
+ <li class="recentcomments">
+ <div class="alignleft"><img alt="" src="https://secure.gravatar.com/avatar/900a582c7ad8d6ef8c0fe32db0ff5c81?s=116&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fwapuu-ji-chaudhary-128.png&amp;r=r" srcset="https://secure.gravatar.com/avatar/900a582c7ad8d6ef8c0fe32db0ff5c81?s=232&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fwapuu-ji-chaudhary-128.png&amp;r=r 2x" class="avatar avatar-116 photo grav-hashed grav-hijack" itemprop="image" originals="116" scale="2" id="grav-900a582c7ad8d6ef8c0fe32db0ff5c81-0" width="116" height="116" /></div><b><a href="http://wefoster.co" rel="external nofollow" class="url fn n" itemprop="url"><span itemprop="name">Marion</span></a></b>: Thanks for the feedback! <a href="https://wptavern.com/wefoster-launches-hosting-platform-catered-to-online-communities#comment-215388">»</a></li>
+ <li class="recentcomments">
+ <div class="alignleft"><img alt="" src="https://secure.gravatar.com/avatar/60803c843b9bffd2e6fe367148b84186?s=116&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fkani-wapuu-128.png&amp;r=r" srcset="https://secure.gravatar.com/avatar/60803c843b9bffd2e6fe367148b84186?s=232&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fkani-wapuu-128.png&amp;r=r 2x" class="avatar avatar-116 photo grav-hashed grav-hijack" itemprop="image" originals="116" scale="2" id="grav-60803c843b9bffd2e6fe367148b84186-0" width="116" height="116" /></div><b><a href="https://www.pattonwebz.com" rel="external nofollow" class="url fn n" itemprop="url"><span itemprop="name">William Patton</span></a></b>: While this is a good thing for end users I wonder <a href="https://wptavern.com/google-launches-invisible-recaptcha#comment-215372">»</a></li>
+ <li class="recentcomments">
+ <div class="alignleft"><img alt="" src="https://secure.gravatar.com/avatar/54ee16346c9e61e36f62ca49cf320f0f?s=116&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fheian-wapuu-128.png&amp;r=r" srcset="https://secure.gravatar.com/avatar/54ee16346c9e61e36f62ca49cf320f0f?s=232&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fheian-wapuu-128.png&amp;r=r 2x" class="avatar avatar-116 photo grav-hashed grav-hijack" itemprop="image" id="grav-54ee16346c9e61e36f62ca49cf320f0f-0" originals="116" scale="2" width="116" height="116" /></div><b><a href="https://unturnedlord.com/" rel="external nofollow" class="url fn n" itemprop="url"><span itemprop="name">Tazz</span></a></b>: Just started using it, for too long I've been gett <a href="https://wptavern.com/google-launches-invisible-recaptcha#comment-215362">»</a></li>
+ <li class="recentcomments">
+ <div class="alignleft"><img alt="" src="https://secure.gravatar.com/avatar/a2bdfb8c0d221b153115a5a9b724b9fb?s=116&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fwapuu-alaaf-128.png&amp;r=r" srcset="https://secure.gravatar.com/avatar/a2bdfb8c0d221b153115a5a9b724b9fb?s=232&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fwapuu-alaaf-128.png&amp;r=r 2x" class="avatar avatar-116 photo grav-hashed grav-hijack" itemprop="image" originals="116" scale="2" id="grav-a2bdfb8c0d221b153115a5a9b724b9fb-0" width="116" height="116" /></div><b><a href="http://magiciansandmagic.com" rel="external nofollow" class="url fn n" itemprop="url"><span itemprop="name">kenny</span></a></b>: really like the buddypress force profile photo plu <a href="https://wptavern.com/configuring-a-user-avatar-in-wordpress-is-not-as-easy-as-it-should-be#comment-215360">»</a></li>
+ <li class="recentcomments">
+ <div class="alignleft"><img alt="" src="https://secure.gravatar.com/avatar/52c80ebb4d23da3db1d6ab82f0f7daa9?s=116&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Ftampa-gasparilla-wapuu-128.png&amp;r=r" srcset="https://secure.gravatar.com/avatar/52c80ebb4d23da3db1d6ab82f0f7daa9?s=232&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Ftampa-gasparilla-wapuu-128.png&amp;r=r 2x" class="avatar avatar-116 photo grav-hashed grav-hijack" itemprop="image" originals="116" scale="2" id="grav-52c80ebb4d23da3db1d6ab82f0f7daa9-0" width="116" height="116" /></div><b><a href="http://dannybrown.me" rel="external nofollow" class="url fn n" itemprop="url"><span itemprop="name">Danny Brown</span></a></b>: Ah, yes, now I see it. Very easy to miss, compared <a href="https://wptavern.com/wordpress-com-updates-its-post-editor-with-a-distraction-free-interface#comment-215358">»</a></li>
+ <li class="recentcomments">
+ <div class="alignleft"><img alt="" src="https://secure.gravatar.com/avatar/60181f881f72355935ec0891318443be?s=116&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fmercenary-wapuu-128.png&amp;r=r" srcset="https://secure.gravatar.com/avatar/60181f881f72355935ec0891318443be?s=232&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fmercenary-wapuu-128.png&amp;r=r 2x" class="avatar avatar-116 photo grav-hashed grav-hijack" itemprop="image" originals="116" scale="2" id="grav-60181f881f72355935ec0891318443be-0" width="116" height="116" /></div><b><a href="http://www.wptavern.com" rel="external nofollow" class="url fn n" itemprop="url"><span itemprop="name">Jeff Chandler</span></a></b>: In the top left next to your blog title, you shoul <a href="https://wptavern.com/wordpress-com-updates-its-post-editor-with-a-distraction-free-interface#comment-215348">»</a></li>
+ <li class="recentcomments">
+ <div class="alignleft"><img alt="" src="https://secure.gravatar.com/avatar/52c80ebb4d23da3db1d6ab82f0f7daa9?s=116&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Ftampa-gasparilla-wapuu-128.png&amp;r=r" srcset="https://secure.gravatar.com/avatar/52c80ebb4d23da3db1d6ab82f0f7daa9?s=232&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Ftampa-gasparilla-wapuu-128.png&amp;r=r 2x" class="avatar avatar-116 photo grav-hashed grav-hijack" itemprop="image" originals="116" scale="2" id="grav-52c80ebb4d23da3db1d6ab82f0f7daa9-1" width="116" height="116" /></div><b><a href="https://dannybrown.me" rel="external nofollow" class="url fn n" itemprop="url"><span itemprop="name">Danny Brown</span></a></b>: Just tried it, and very clean experience for sure. <a href="https://wptavern.com/wordpress-com-updates-its-post-editor-with-a-distraction-free-interface#comment-215321">»</a></li>
+ <li class="recentcomments">
+ <div class="alignleft"><img alt="" src="https://secure.gravatar.com/avatar/?s=116&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2FWapuuPepa-128.png&amp;r=r" srcset="https://secure.gravatar.com/avatar/?s=232&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2FWapuuPepa-128.png&amp;r=r 2x" class="avatar avatar-116 photo avatar-default grav-hashed grav-hijack" itemprop="image" id="grav-false-0" originals="116" scale="2" width="116" height="116" /></div><b><a href="https://asphaltthemes.com/" rel="external nofollow" class="url fn n" itemprop="url"><span itemprop="name">Ashiquzzaman</span></a></b>: Agree with you. WordPress is heading towards the r <a href="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers#comment-215302">»</a></li>
+ <li class="recentcomments">
+ <div class="alignleft"><img alt="" src="https://secure.gravatar.com/avatar/fcbd82c5e73aa874e2f9bd53a0f401dd?s=116&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fshikasenbei-wapuu-128.png&amp;r=r" srcset="https://secure.gravatar.com/avatar/fcbd82c5e73aa874e2f9bd53a0f401dd?s=232&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fshikasenbei-wapuu-128.png&amp;r=r 2x" class="avatar avatar-116 photo grav-hashed grav-hijack" itemprop="image" originals="116" scale="2" id="grav-fcbd82c5e73aa874e2f9bd53a0f401dd-0" width="116" height="116" /></div><b><a href="https://dcrazed.com/" rel="external nofollow" class="url fn n" itemprop="url"><span itemprop="name">Rijo Abraham</span></a></b>: The new feature is awesome and it welcomes more ge <a href="https://wptavern.com/google-launches-invisible-recaptcha#comment-215292">»</a></li>
+ <li class="recentcomments">
+ <div class="alignleft"><img alt="" src="https://secure.gravatar.com/avatar/be9a4e9519964b933dea6723d480c95a?s=116&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fr2-wapuu-128.png&amp;r=r" srcset="https://secure.gravatar.com/avatar/be9a4e9519964b933dea6723d480c95a?s=232&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2Fr2-wapuu-128.png&amp;r=r 2x" class="avatar avatar-116 photo grav-hashed grav-hijack" itemprop="image" originals="116" scale="2" id="grav-be9a4e9519964b933dea6723d480c95a-0" width="116" height="116" /></div><b><a href="https://woorkup.com" rel="external nofollow" class="url fn n" itemprop="url"><span itemprop="name">Brian Jackson</span></a></b>: Ya Sallie, many people don't utilize the Gravity F <a href="https://wptavern.com/google-launches-invisible-recaptcha#comment-215281">»</a></li>
+ </ul>
+ </section>
+ <section id="blog_subscription-2" class="widget jetpack_subscription_widget">
+ <h3 class="widget-title font-headlines"><span class="wrap">Subscribe to Blog via Email</span></h3>
+ <form action="#" method="post" accept-charset="utf-8" id="subscribe-blog-blog_subscription-2">
+ <div id="subscribe-text">
+ <p>Enter your email address to subscribe to this blog and receive notifications of new posts by email.</p>
+ </div>
+ <p>Join 9,518 other subscribers</p>
+ <p id="subscribe-email">
+ <label id="jetpack-subscribe-label" for="subscribe-field-blog_subscription-2" style="clip: rect(1px, 1px, 1px, 1px); position: absolute; height: 1px; width: 1px; overflow: hidden;" class="font-secondary label-email">
+ Email Address </label>
+ <input name="email" required="required" class="required font-primary" value="" id="subscribe-field-blog_subscription-2" placeholder="Email Address" type="email" />
+ </p>
+
+ <p id="subscribe-submit">
+ <input name="action" value="subscribe" class="font-primary" type="hidden" />
+ <input name="source" value="https://wptavern.com/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers" class="font-primary" type="hidden" />
+ <input name="sub-type" value="widget" class="font-primary" type="hidden" />
+ <input name="redirect_fragment" value="blog_subscription-2" class="font-primary" type="hidden" />
+ <input value="Subscribe" name="jetpack_subscriptions_widget" class="font-primary font-secondary" type="submit" />
+ </p>
+ </form>
+
+ <script>
+ /*
+ Custom functionality for safari and IE
+ */
+ (function(d) {
+ // In case the placeholder functionality is available we remove labels
+ if (('placeholder' in d.createElement('input'))) {
+ var label = d.querySelector('label[for=subscribe-field-blog_subscription-2]');
+ label.style.clip = 'rect(1px, 1px, 1px, 1px)';
+ label.style.position = 'absolute';
+ label.style.height = '1px';
+ label.style.width = '1px';
+ label.style.overflow = 'hidden';
+ }
+
+ // Make sure the email value is filled in before allowing submit
+ var form = d.getElementById('subscribe-blog-blog_subscription-2'),
+ input = d.getElementById('subscribe-field-blog_subscription-2'),
+ handler = function(event) {
+ if ('' === input.value) {
+ input.focus();
+
+ if (event.preventDefault) {
+ event.preventDefault();
+ }
+
+ return false;
+ }
+ };
+
+ if (window.addEventListener) {
+ form.addEventListener('submit', handler, false);
+ } else {
+ form.attachEvent('onsubmit', handler);
+ }
+ })(document);
+ </script>
+
+ </section>
+
+ </aside>
+ <!-- #sidebar-primary -->
+
+
+ </div>
+ <!-- #main -->
+
+
+ </div>
+ <!-- .wrap -->
+
+ <footer id="footer" class="site-footer" role="contentinfo" itemscope="itemscope" itemtype="http://schema.org/WPFooter">
+
+ <div class="wrap">
+
+
+ <div id="menu-social" class="menu font-secondary">
+ <ul id="menu-social-items" class="menu-items">
+ <li id="menu-item-13447" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-13447"><a href="http://twitter.com/wptavern"><span class="screen-reader-text">Twitter</span></a></li>
+ <li id="menu-item-13448" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-13448"><a href="http://facebook.com/wptavern"><span class="screen-reader-text">Facebook</span></a></li>
+ <li id="menu-item-13449" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-13449"><a href="https://plus.google.com/u/0/b/106331420450854425959/"><span class="screen-reader-text">G+</span></a></li>
+ </ul>
+ </div>
+
+ <p class="credit">
+ Copyright © 2017 <a class="site-link" href="https://wptavern.com" rel="home">WordPress Tavern</a>. Powered by <a class="wp-link" href="http://wordpress.org">WordPress</a> and <a class="theme-link" href="http://themehybrid.com/themes/stargazer">Stargazer</a>. </p>
+ <!-- .credit -->
+
+ </div>
+ <!-- .wrap -->
+
+ </footer>
+ <!-- #footer -->
+
+ </div>
+ <!-- #container -->
+
+ <div style="display:none">
+ <div class="grofile-hash-map-d41d8cd98f00b204e9800998ecf8427e">
+ </div>
+ <div class="grofile-hash-map-900a582c7ad8d6ef8c0fe32db0ff5c81">
+ </div>
+ <div class="grofile-hash-map-60803c843b9bffd2e6fe367148b84186">
+ </div>
+ <div class="grofile-hash-map-54ee16346c9e61e36f62ca49cf320f0f">
+ </div>
+ <div class="grofile-hash-map-a2bdfb8c0d221b153115a5a9b724b9fb">
+ </div>
+ <div class="grofile-hash-map-52c80ebb4d23da3db1d6ab82f0f7daa9">
+ </div>
+ <div class="grofile-hash-map-60181f881f72355935ec0891318443be">
+ </div>
+ <div class="grofile-hash-map-fcbd82c5e73aa874e2f9bd53a0f401dd">
+ </div>
+ <div class="grofile-hash-map-be9a4e9519964b933dea6723d480c95a">
+ </div>
+ </div>
+ <script id="epoch-comment-template" type="text/x-handlebars-template">
+
+ &lt;div id="comment-{{comment_ID}}" data-comment-id="{{comment_ID}}"&gt; &lt;article id="div-comment-{{comment_ID}}" class="epoch-comment-body {{comment_classes}}"&gt; &lt;footer class="epoch-comment-meta"&gt; &lt;div class="epoch-comment-author"&gt; &lt;div class="epoch-comment-author-avatar"&gt; {{#if comment_author_url}} {{epochLink comment_author_url author_avatar 'author_url_link_title' 'epoch-author-avatar' '_blank' 'nofollow'}} {{else}} {{{author_avatar}}} {{/if}} &lt;/div&gt; {{#if comment_author_url}} {{epochLink comment_author_url comment_author 'author_url_link_title' 'epoch-author-link' '_blank' 'nofollow'}} {{else}} {{{comment_author}}} {{/if}} &lt;span class="epoch-divide"&gt;&amp;#183;&lt;/span&gt; {{epochLink comment_link '&lt;time datetime="comment_date"&gt;-comment_date-&lt;/time&gt;' 'comment_link_title' 'epoch-comment-link'}} &lt;/div&gt;&lt;!-- .comment-author --&gt; {{#unless comment_approved}} &lt;p class="epoch-comment-awaiting-moderation"&gt;{{epochTranslation 'awaiting_moderation'}}&lt;/p&gt; {{/unless}} &lt;/footer&gt;&lt;!-- .comment-meta --&gt; &lt;div class="epoch-comment-content"&gt; {{{comment_content}}} &lt;/div&gt;&lt;!-- .comment-content --&gt; {{#if front_moderation}} &lt;ul class="epoch-moderation-actions"&gt; {{#unless approval_status}} &lt;li class="epoch-approve" data-comment-id="{{comment_ID}}"&gt; {{{approve_link}}} &lt;/li&gt; {{/unless}} {{!-- {{#if approval_status}} &lt;li class="epoch-unapprove" data-comment-id="{{comment_ID}}"&gt; {{{unapprove_link}}} &lt;/li&gt; {{/if}} --}} &lt;li class="epoch-trash" data-comment-id="{{comment_ID}}"&gt; {{{trash_link}}} &lt;/li&gt; &lt;li class="epoch-spam" data-comment-id="{{comment_ID}}"&gt; {{{spam_link}}} &lt;/li&gt; &lt;/ul&gt; {{/if}} &lt;ul class="epoch-comment-actions"&gt; {{#if reply_allowed}} &lt;li class="epoch-reply" data-comment-id="{{comment_ID}}"&gt; {{{reply_link}}} &lt;/li&gt; {{/if}} &lt;/ul&gt; &lt;/article&gt;&lt;!-- .comment-body --&gt; &lt;/div&gt;
+
+ </script>
+
+ <script type="text/javascript">
+ window.WPCOM_sharing_counts = {
+ "https:\/\/wptavern.com\/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers": 67202
+ };
+ </script>
+
+ <script type="text/javascript" src="https://wptavern.com/wp-content/plugins/akismet/_inc/form.js?ver=3.3"></script>
+ <!--[if lte IE 8]>
+<link rel='stylesheet' id='jetpack-carousel-ie8fix-css' href='https://wptavern.com/wp-content/plugins/jetpack/modules/carousel/jetpack-carousel-ie8fix.css?ver=20121024' type='text/css' media='all' />
+<![endif]-->
+ <link rel="stylesheet" id="prompt-comment-form-css" href="https://wptavern.com/wp-content/plugins/postmatic-premium/vendor/plugins/postmatic/css/comment-form.css?ver=2.0.14" type="text/css" media="all" />
+ <script type="text/javascript" src="https://wptavern.com/wp-includes/js/comment-reply.min.js?ver=4.8-alpha-40290"></script>
+ <script type="text/javascript" src="https://wptavern.com/wp-content/plugins/jetpack/modules/photon/photon.js?ver=20130122"></script>
+ <script type="text/javascript" src="https://s0.wp.com/wp-content/js/devicepx-jetpack.js?ver=201711"></script>
+ <script type="text/javascript">
+ /* &lt;![CDATA[ */
+ var pollsL10n = {
+ "ajax_url": "https:\/\/wptavern.com\/wp-admin\/admin-ajax.php",
+ "text_wait": "Your last request is still being processed. Please wait a while ...",
+ "text_valid": "Please choose a valid poll answer.",
+ "text_multiple": "Maximum number of choices allowed: ",
+ "show_loading": "1",
+ "show_fading": "0"
+ };
+ /* ]]&gt; */
+ </script>
+ <script type="text/javascript" src="https://wptavern.com/wp-content/plugins/wp-polls/polls-js.js?ver=2.73.2"></script>
+ <script type="text/javascript" src="https://secure.gravatar.com/js/gprofiles.js?ver=2017Maraa"></script>
+ <script type="text/javascript">
+ /* &lt;![CDATA[ */
+ var WPGroHo = {
+ "my_hash": ""
+ };
+ /* ]]&gt; */
+ </script>
+ <script type="text/javascript" src="https://wptavern.com/wp-content/plugins/jetpack/modules/wpgroho.js?ver=4.8-alpha-40290"></script>
+ <script type="text/javascript">
+ /* &lt;![CDATA[ */
+ var stargazer_i18n = {
+ "search_toggle": "Expand Search Form"
+ };
+ /* ]]&gt; */
+ </script>
+ <script type="text/javascript" src="https://wptavern.com/wp-content/themes/stargazer/js/stargazer.min.js"></script>
+ <script type="text/javascript">
+ /* &lt;![CDATA[ */
+ var jpfbembed = {
+ "appid": "249643311490",
+ "locale": "en_US"
+ };
+ /* ]]&gt; */
+ </script>
+ <script type="text/javascript" src="https://wptavern.com/wp-content/plugins/jetpack/_inc/facebook-embed.js"></script>
+ <div id="fb-root" class=" fb_reset">
+ <div style="position: absolute; top: -10000px; height: 0px; width: 0px;">
+ <div><iframe name="fb_xdm_frame_https" allowtransparency="true" allowfullscreen="true" scrolling="no" id="fb_xdm_frame_https" aria-hidden="true" title="Facebook Cross Domain Communication Frame" tabindex="-1" style="border: medium none;" src="https://staticxx.facebook.com/connect/xd_arbiter/r/ao6eUeuGXQq.js?version=42#channel=f3be4ceeb94059c&amp;origin=https%3A%2F%2Fwptavern.com" frameborder="0"></iframe></div>
+ </div>
+ <div style="position: absolute; top: -10000px; height: 0px; width: 0px;">
+ <div></div>
+ </div>
+ </div>
+ <script type="text/javascript" src="https://wptavern.com/wp-content/plugins/jetpack/_inc/twitter-timeline.js?ver=4.0.0"></script>
+ <script type="text/javascript" src="https://wptavern.com/wp-content/plugins/simple-comment-editing/js/event-manager.min.js?ver=20151103"></script>
+ <script type="text/javascript">
+ /* &lt;![CDATA[ */
+ var wpAjax = {
+ "noPerm": "Sorry, you are not allowed to do that.",
+ "broken": "An unidentified error has occurred."
+ };
+ /* ]]&gt; */
+ </script>
+ <script type="text/javascript" src="https://wptavern.com/wp-includes/js/wp-ajax-response.min.js?ver=4.8-alpha-40290"></script>
+ <script type="text/javascript">
+ /* &lt;![CDATA[ */
+ var simple_comment_editing = {
+ "and": "and",
+ "confirm_delete": "Do you want to delete this comment?",
+ "comment_deleted": "Your comment has been removed.",
+ "comment_deleted_error": "Your comment could not be deleted",
+ "empty_comment": "Your comment cannot be empty",
+ "allow_delete": "1",
+ "timer": {
+ "minutes": ["minutes", "minute", "minutes", "minutes", "minutes", "minutes", "minutes", "minutes", "minutes", "minutes", "minutes", "minutes", "minutes", "minutes", "minutes", "minutes"],
+ "seconds": ["seconds", "second", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds", "seconds"]
+ },
+ "ajax_url": "https:\/\/wptavern.com\/wp-admin\/admin-ajax.php",
+ "nonce": "d939ce75f9"
+ };
+ /* ]]&gt; */
+ </script>
+ <script type="text/javascript" src="https://wptavern.com/wp-content/plugins/simple-comment-editing/js/simple-comment-editing.min.js?ver=20151021"></script>
+ <script type="text/javascript">
+ /* &lt;![CDATA[ */
+ var pmcc_ajax = {
+ "ajaxurl": "https:\/\/wptavern.com\/wp-admin\/admin-ajax.php",
+ "errors": {
+ "thank_you_message": "Reported.",
+ "invalid_nonce_message": "It seems you already reported this comment.",
+ "invalid_values_message": "Cheating huh?",
+ "already_flagged_message": "It seems you already reported this comment.",
+ "already_flagged_note": "Comment has been flagged already."
+ }
+ };
+ /* ]]&gt; */
+ </script>
+ <script type="text/javascript" src="https://wptavern.com/wp-content/plugins/crowd-control/js/ajax.js?ver=20150929"></script>
+ <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/visibility.js/1.2.1/visibility.min.js?ver=1.0.14"></script>
+ <script type="text/javascript" src="https://wptavern.com/wp-content/plugins/epoch//assets/js/front/handlebars.js?ver=1.0.14"></script>
+ <script type="text/javascript">
+ /* &lt;![CDATA[ */
+ var epoch_vars = {
+ "api_url": "https:\/\/wptavern.com\/epoch-api",
+ "submit_api_url": "https:\/\/wptavern.com\/epoch-api?epochNonce=4c32ed8df5&amp;action=submit_comment",
+ "alt_comment_count": "https:\/\/wptavern.com\/wp-content\/uploads\/epoch\/67202.txt",
+ "depth": "3",
+ "nonce": "4c32ed8df5",
+ "live_mode": "1",
+ "wrap_class": "epoch-wrapper",
+ "count_id": "epoch-count",
+ "wrap_id": "epoch-wrap",
+ "form_wrap": "epoch-commenting",
+ "form_id": "commentform",
+ "submit_id": "epoch-submit",
+ "comments_wrap": "epoch-comments",
+ "comments_template_id": "epoch-comment-template",
+ "nonce_field": "epochNonce",
+ "endpoint": "epoch-api",
+ "reply_link_id": "epoch-reply-link",
+ "sniffer": "epoch-width-sniffer",
+ "loading": "epoch-loading",
+ "epoch_options": {
+ "theme": "light",
+ "threaded": false,
+ "before_text": "",
+ "interval": 15000,
+ "order": "ASC",
+ "show_pings": false
+ },
+ "post_id": "67202",
+ "user": {
+ "author_avatar": "",
+ "comment_author_url": "",
+ "comment_author": ""
+ },
+ "empty_avatar": "&lt;img alt='' src='https:\/\/secure.gravatar.com\/avatar\/?s=96&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2FWapuuPepa-128.png&amp;r=r' srcset='https:\/\/secure.gravatar.com\/avatar\/?s=192&amp;d=https%3A%2F%2Fwptavern.com%2Fwp-content%2Fplugins%2Fwapuuvatar%2Fdist%2FWapuuPepa-128.png&amp;r=r 2x' class='avatar avatar-96 photo avatar-default' height='96' width='96' itemprop=\"image\" \/&gt;"
+ };
+ var epoch_translation = {
+ "awaiting_moderation": "Your comment is awaiting moderation.",
+ "comment_link_title": "Link to comment",
+ "reply": "Reply",
+ "reply_link_title": "Reply To This Comment",
+ "author_url_link_title": "Link to comment author's website",
+ "is_required": "is required",
+ "pending": "Comment Pending",
+ "comment_rejected": "Your comment was not accepted, please check that everything is filled out correctly."
+ };
+ /* ]]&gt; */
+ </script>
+ <script type="text/javascript" src="https://wptavern.com/wp-content/plugins/epoch//assets/js/front/epoch.min.js?ver=1.0.14"></script>
+ <script type="text/javascript">
+ /* &lt;![CDATA[ */
+ var quicktagsL10n = {
+ "closeAllOpenTags": "Close all open tags",
+ "closeTags": "close tags",
+ "enterURL": "Enter the URL",
+ "enterImageURL": "Enter the URL of the image",
+ "enterImageDescription": "Enter a description of the image",
+ "textdirection": "text direction",
+ "toggleTextdirection": "Toggle Editor Text Direction",
+ "dfw": "Distraction-free writing mode",
+ "strong": "Bold",
+ "strongClose": "Close bold tag",
+ "em": "Italic",
+ "emClose": "Close italic tag",
+ "link": "Insert link",
+ "blockquote": "Blockquote",
+ "blockquoteClose": "Close blockquote tag",
+ "del": "Deleted text (strikethrough)",
+ "delClose": "Close deleted text tag",
+ "ins": "Inserted text",
+ "insClose": "Close inserted text tag",
+ "image": "Insert image",
+ "ul": "Bulleted list",
+ "ulClose": "Close bulleted list tag",
+ "ol": "Numbered list",
+ "olClose": "Close numbered list tag",
+ "li": "List item",
+ "liClose": "Close list item tag",
+ "code": "Code",
+ "codeClose": "Close code tag",
+ "more": "Insert Read More tag"
+ };
+ /* ]]&gt; */
+ </script>
+ <script type="text/javascript" src="https://wptavern.com/wp-includes/js/quicktags.min.js?ver=4.8-alpha-40290"></script>
+ <script type="text/javascript" src="https://wptavern.com/wp-content/plugins/basic-comment-quicktags/quicktags.js?ver=3.3.1"></script>
+ <script type="text/javascript" src="https://wptavern.com/wp-includes/js/wp-embed.min.js?ver=4.8-alpha-40290"></script>
+ <script type="text/javascript" src="https://wptavern.com/wp-content/plugins/jetpack/_inc/spin.js?ver=1.3"></script>
+ <script type="text/javascript" src="https://wptavern.com/wp-content/plugins/jetpack/_inc/jquery.spin.js?ver=1.3"></script>
+ <script type="text/javascript">
+ /* &lt;![CDATA[ */
+ var jetpackCarouselStrings = {
+ "widths": [370, 700, 1000, 1200, 1400, 2000],
+ "is_logged_in": "",
+ "lang": "en",
+ "ajaxurl": "https:\/\/wptavern.com\/wp-admin\/admin-ajax.php",
+ "nonce": "8b429d4e23",
+ "display_exif": "1",
+ "display_geo": "1",
+ "single_image_gallery": "1",
+ "single_image_gallery_media_file": "",
+ "background_color": "black",
+ "comment": "Comment",
+ "post_comment": "Post Comment",
+ "write_comment": "Write a Comment...",
+ "loading_comments": "Loading Comments...",
+ "download_original": "View full size &lt;span class=\"photo-size\"&gt;{0}&lt;span class=\"photo-size-times\"&gt;\u00d7&lt;\/span&gt;{1}&lt;\/span&gt;",
+ "no_comment_text": "Please be sure to submit some text with your comment.",
+ "no_comment_email": "Please provide an email address to comment.",
+ "no_comment_author": "Please provide your name to comment.",
+ "comment_post_error": "Sorry, but there was an error posting your comment. Please try again later.",
+ "comment_approved": "Your comment was approved.",
+ "comment_unapproved": "Your comment is in moderation.",
+ "camera": "Camera",
+ "aperture": "Aperture",
+ "shutter_speed": "Shutter Speed",
+ "focal_length": "Focal Length",
+ "copyright": "Copyright",
+ "comment_registration": "0",
+ "require_name_email": "1",
+ "login_url": "https:\/\/wptavern.com\/wp-login.php?redirect_to=https%3A%2F%2Fwptavern.com%2Fstack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers",
+ "blog_id": "1",
+ "meta_data": ["camera", "aperture", "shutter_speed", "focal_length", "copyright"],
+ "local_comments_commenting_as": "&lt;fieldset&gt;&lt;label for=\"email\"&gt;Email (Required)&lt;\/label&gt; &lt;input type=\"text\" name=\"email\" class=\"jp-carousel-comment-form-field jp-carousel-comment-form-text-field\" id=\"jp-carousel-comment-form-email-field\" \/&gt;&lt;\/fieldset&gt;&lt;fieldset&gt;&lt;label for=\"author\"&gt;Name (Required)&lt;\/label&gt; &lt;input type=\"text\" name=\"author\" class=\"jp-carousel-comment-form-field jp-carousel-comment-form-text-field\" id=\"jp-carousel-comment-form-author-field\" \/&gt;&lt;\/fieldset&gt;&lt;fieldset&gt;&lt;label for=\"url\"&gt;Website&lt;\/label&gt; &lt;input type=\"text\" name=\"url\" class=\"jp-carousel-comment-form-field jp-carousel-comment-form-text-field\" id=\"jp-carousel-comment-form-url-field\" \/&gt;&lt;\/fieldset&gt;"
+ };
+ /* ]]&gt; */
+ </script>
+ <script type="text/javascript" src="https://wptavern.com/wp-content/plugins/jetpack/modules/carousel/jetpack-carousel.js?ver=20170209"></script>
+ <script type="text/javascript" src="https://wptavern.com/wp-content/plugins/jetpack/_inc/postmessage.js?ver=4.7.1"></script>
+ <script type="text/javascript" src="https://wptavern.com/wp-content/plugins/jetpack/_inc/jquery.jetpack-resize.js?ver=4.7.1"></script>
+ <script type="text/javascript" src="https://wptavern.com/wp-content/plugins/jetpack/_inc/jquery.inview.js?ver=4.7.1"></script>
+ <script type="text/javascript" src="https://wptavern.com/wp-content/plugins/jetpack/modules/likes/queuehandler.js?ver=4.7.1"></script>
+ <script type="text/javascript">
+ /* &lt;![CDATA[ */
+ var prompt_comment_form_env = {
+ "url": "https:\/\/wptavern.com\/wp-admin\/admin-ajax.php",
+ "nonce": "7fdf8a181f",
+ "action": "prompt_comment_unsubscribe",
+ "post_id": "67202"
+ };
+ /* ]]&gt; */
+ </script>
+ <script type="text/javascript" src="https://wptavern.com/wp-content/plugins/postmatic-premium/vendor/plugins/postmatic/js/comment-form.min.js?ver=2.0.14"></script>
+ <script type="text/javascript">
+ /* &lt;![CDATA[ */
+ var _wp_google_translate_widget = {
+ "lang": "en_US"
+ };
+ /* ]]&gt; */
+ </script>
+ <script type="text/javascript" src="https://wptavern.com/wp-content/plugins/jetpack/modules/widgets/google-translate/google-translate.js?ver=4.8-alpha-40290"></script>
+ <script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit&amp;ver=4.8-alpha-40290"></script>
+ <script type="text/javascript">
+ /* &lt;![CDATA[ */
+ var sharing_js_options = {
+ "lang": "en",
+ "counts": "1"
+ };
+ /* ]]&gt; */
+ </script>
+ <script type="text/javascript" src="https://wptavern.com/wp-content/plugins/jetpack/modules/sharedaddy/sharing.js?ver=4.7.1"></script>
+ <script type="text/javascript">
+ var windowOpen;
+ jQuery(document.body).on('click', 'a.share-facebook', function() {
+ // If there's another sharing window open, close it.
+ if ('undefined' !== typeof windowOpen) {
+ windowOpen.close();
+ }
+ windowOpen = window.open(jQuery(this).attr('href'), 'wpcomfacebook', 'menubar=1,resizable=1,width=600,height=400');
+ return false;
+ });
+ var windowOpen;
+ jQuery(document.body).on('click', 'a.share-twitter', function() {
+ // If there's another sharing window open, close it.
+ if ('undefined' !== typeof windowOpen) {
+ windowOpen.close();
+ }
+ windowOpen = window.open(jQuery(this).attr('href'), 'wpcomtwitter', 'menubar=1,resizable=1,width=600,height=350');
+ return false;
+ });
+ var windowOpen;
+ jQuery(document.body).on('click', 'a.share-telegram', function() {
+ // If there's another sharing window open, close it.
+ if ('undefined' !== typeof windowOpen) {
+ windowOpen.close();
+ }
+ windowOpen = window.open(jQuery(this).attr('href'), 'wpcomtelegram', 'menubar=1,resizable=1,width=450,height=450');
+ return false;
+ });
+ var windowOpen;
+ jQuery(document.body).on('click', 'a.share-google-plus-1', function() {
+ // If there's another sharing window open, close it.
+ if ('undefined' !== typeof windowOpen) {
+ windowOpen.close();
+ }
+ windowOpen = window.open(jQuery(this).attr('href'), 'wpcomgoogle-plus-1', 'menubar=1,resizable=1,width=480,height=550');
+ return false;
+ });
+ var windowOpen;
+ jQuery(document.body).on('click', 'a.share-pocket', function() {
+ // If there's another sharing window open, close it.
+ if ('undefined' !== typeof windowOpen) {
+ windowOpen.close();
+ }
+ windowOpen = window.open(jQuery(this).attr('href'), 'wpcompocket', 'menubar=1,resizable=1,width=450,height=450');
+ return false;
+ });
+ </script>
+ <iframe src="https://widgets.wp.com/likes/master.html?ver=20160429#ver=20160429" scrolling="no" id="likes-master" name="likes-master" style="display:none;"></iframe>
+ <div id="likes-other-gravatars">
+ <div class="likes-text"><span>%d</span> bloggers like this:</div>
+ <ul class="wpl-avatars sd-like-gravatars"></ul>
+ </div>
+ <script type="text/javascript" src="https://stats.wp.com/e-201711.js" async="" defer="defer"></script>
+ <script type="text/javascript">
+ _stq = window._stq || [];
+ _stq.push(['view', {
+ v: 'ext',
+ j: '1:4.7.1',
+ blog: '9006382',
+ post: '67202',
+ tz: '-4',
+ srv: 'wptavern.com'
+ }]);
+ _stq.push(['clickTrackerInit', '9006382', '67202']);
+ </script>
+
+
+ <img src="https://pixel.wp.com/g.gif?v=ext&amp;j=1%3A4.7.1&amp;blog=9006382&amp;post=67202&amp;tz=-4&amp;srv=wptavern.com&amp;host=wptavern.com&amp;ref=&amp;rand=0.17647913145625704" alt=":)" id="wpstats" scale="0" width="6" height="5" />
+ <div id="sharing_email" style="display: none;">
+ <form action="/stack-overflow-jobs-data-shows-reactjs-skills-in-high-demand-wordpress-market-oversaturated-with-developers" method="post">
+ <label for="target_email" class="font-secondary">Send to Email Address</label>
+ <input name="target_email" id="target_email" value="" class="font-primary" type="email" />
+
+
+ <label for="source_name" class="font-secondary">Your Name</label>
+ <input name="source_name" id="source_name" value="" class="font-primary" type="text" />
+
+ <label for="source_email" class="font-secondary">Your Email Address</label>
+ <input name="source_email" id="source_email" value="" class="font-primary" type="email" />
+
+ <input id="jetpack-source_f_name" name="source_f_name" class="input font-primary" value="" size="25" autocomplete="off" title="This field is for validation and should not be changed" type="text" />
+ <script>
+ jQuery(document).ready(function() {
+ document.getElementById('jetpack-source_f_name').value = ''
+ });
+ </script>
+
+ <img style="float: right; display: none" class="loading" src="https://wptavern.com/wp-content/plugins/jetpack/modules/sharedaddy/images/loading.gif" alt="loading" scale="0" width="16" height="16" />
+ <input value="Send Email" class="sharing_send font-primary font-secondary" type="submit" />
+ <a rel="nofollow" href="#cancel" class="sharing_cancel">Cancel</a>
+
+ <div class="errors errors-1" style="display: none;">
+ Post was not sent - check your email addresses!</div>
+
+ <div class="errors errors-2" style="display: none;">
+ Email check failed, please try again </div>
+
+ <div class="errors errors-3" style="display: none;">
+ Sorry, your blog cannot share posts by email. </div>
+ </form>
+ </div>
+ <div class="swiftype-widget">
+ <div class="autocomplete" style="position: absolute; z-index: 9999; top: 35px; left: 0px; width: 198px; display: none;">
+ <ul></ul>
+ </div>
+ </div>
+ <div id="goog-gt-tt" class="skiptranslate" dir="ltr">
+ <div style="padding: 8px;">
+ <div>
+ <div class="logo"><img src="https://www.gstatic.com/images/branding/product/1x/translate_24dp.png" alt="Google Translate" scale="0" width="20" height="20" /></div>
+ </div>
+ </div>
+ <div class="top" style="padding: 8px; float: left; width: 100%;">
+ <h1 class="title gray">Original text</h1>
+ </div>
+ <div class="middle" style="padding: 8px;">
+ <div class="original-text"></div>
+ </div>
+ <div class="bottom" style="padding: 8px;">
+ <div class="activity-links"><span class="activity-link">Contribute a better translation</span><span class="activity-link"></span></div>
+ <div class="started-activity-container">
+ <hr style="color: #CCC; background-color: #CCC; height: 1px; border: none;" />
+ <div class="activity-root"></div>
+ </div>
+ </div>
+ <div class="status-message" style="display: none;"></div>
+ </div><iframe id="rufous-sandbox" scrolling="no" allowtransparency="true" allowfullscreen="true" style="position: absolute; visibility: hidden; display: none; width: 0px; height: 0px; padding: 0px; border: medium none;" title="Twitter analytics iframe" frameborder="0"></iframe>
+ <div class="goog-te-spinner-pos">
+ <div class="goog-te-spinner-animation"><svg xmlns="http://www.w3.org/2000/svg" class="goog-te-spinner" width="96px" height="96px" viewBox="0 0 66 66"><circle class="goog-te-spinner-path" fill="none" stroke-width="6" stroke-linecap="round" cx="33" cy="33" r="30"/></svg></div>
+ </div><iframe class="goog-te-menu-frame skiptranslate" style="visibility: visible; box-sizing: content-box; width: 1022px; height: 273px; display: none;" frameborder="0"></iframe></body>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-1/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-1/expected-images.json
new file mode 100644
index 000000000..4c0fc4c25
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-1/expected-images.json
@@ -0,0 +1,4 @@
+[
+ "http:\/\/l3.yimg.com\/uu\/api\/res\/1.2\/4eRCPf9lJt_3q29.outekQ--\/aD02Njk7dz03NDQ7c209MTthcHBpZD15dGFjaHlvbg--\/http:\/\/media.zenfs.com\/en\/homerun\/feed_manager_auto_publish_494\/4406ef57dcb40376c513903b03bef048",
+ "http:\/\/l1.yimg.com\/ny\/api\/res\/1.2\/589noY9BZNdmsUUQf6L1AQ--\/YXBwaWQ9aGlnaGxhbmRlcjtzbT0xO3c9NzQ0O2g9NjY5\/http:\/\/media.zenfs.com\/en\/homerun\/feed_manager_auto_publish_494\/4406ef57dcb40376c513903b03bef048"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-1/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-1/expected-metadata.json
new file mode 100644
index 000000000..cfd3a6943
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-1/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "Ben Silverman",
+ "Direction": null,
+ "Excerpt": "To help you decide what’s what, I’ve put together this list of the 8 PSVR games worth considering. Beloved cult hit “Rez” gets the VR treatment to help launch the PSVR, and the results are terrific. Chaos, for sure, and also “Thumper.” Called a “violent rhythm game” by its creators, “Thumper” is, well",
+ "Image": "http:\/\/l3.yimg.com\/uu\/api\/res\/1.2\/4eRCPf9lJt_3q29.outekQ--\/aD02Njk7dz03NDQ7c209MTthcHBpZD15dGFjaHlvbg--\/http:\/\/media.zenfs.com\/en\/homerun\/feed_manager_auto_publish_494\/4406ef57dcb40376c513903b03bef048",
+ "Title": "These are the 8 coolest PlayStation VR games",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-1/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-1/expected.html
new file mode 100644
index 000000000..deea6c82f
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-1/expected.html
@@ -0,0 +1,45 @@
+<div data-reactid="406" id="Col1-0-ContentCanvas-Proxy">
+ <div data-reactid="407" id="Col1-0-ContentCanvas">
+ <article data-reactid="408" data-type="story" data-uuid="80b35014-fba3-377e-adc5-47fb44f61fa7"><figure data-reactid="409" data-type="image"><p><img alt="The PlayStation VR" data-reactid="411" src="http://l1.yimg.com/ny/api/res/1.2/589noY9BZNdmsUUQf6L1AQ--/YXBwaWQ9aGlnaGxhbmRlcjtzbT0xO3c9NzQ0O2g9NjY5/http://media.zenfs.com/en/homerun/feed_manager_auto_publish_494/4406ef57dcb40376c513903b03bef048"></img></p>
+ <div data-reactid="413">
+ <figcaption data-reactid="414" title="Sony’s PlayStation VR."><p>Sony’s PlayStation VR.</p>
+ </figcaption></div>
+ </figure><div data-reactid="418">
+ <p data-reactid="419" data-type="text">Virtual reality has officially reached the consoles. And it’s pretty good! <a href="http://finance.yahoo.com/news/review-playstation-vr-is-comfortable-and-affordable-but-lacks-must-have-games-165053851.html">Sony’s PlayStation VR</a> is extremely comfortable and reasonably priced, and while it’s lacking killer apps, it’s loaded with lots of interesting ones.</p>
+ <p data-reactid="420" data-type="text">But which ones should you buy? I’ve played just about every launch game, and while some are worth your time, others you might want to skip. To help you decide what’s what, I’ve put together this list of the eight PSVR games worth considering.</p>
+ <h3 data-reactid="421" data-type="text"><a href="https://www.playstation.com/en-us/games/rez-infinite-ps4/" rel="nofollow noopener noreferrer" target="_blank">“Rez Infinite” ($30)</a></h3>
+ <p data-reactid="422"><iframe data-reactid="423" data-type="videoIframe" src="https://www.youtube.com/embed/YlDxEOwj5j8"></iframe></p>
+ <p data-reactid="424" data-type="text">Beloved cult hit “Rez” gets the VR treatment to help launch the PSVR, and the results are terrific. It includes a fully remastered take on the original “Rez” – you zoom through a Matrix-like computer system, shooting down enemies to the steady beat of thumping electronica – but the VR setting makes it incredibly immersive. It gets better the more you play it, too; unlock the amazing Area X mode and you’ll find yourself flying, shooting and bobbing your head to some of the trippiest visuals yet seen in VR.</p>
+ <h3 data-reactid="425" data-type="text"><a href="https://www.playstation.com/en-us/games/thumper-ps4/" rel="nofollow noopener noreferrer" target="_blank">“Thumper” ($20)</a></h3>
+ <p data-reactid="426"><iframe data-reactid="427" data-type="videoIframe" src="https://www.youtube.com/embed/gtPGX8i1Eaw"></iframe></p>
+ <p data-reactid="428" data-type="text">What would happen if Tron, the board game Simon, a Clown beetle, Cthulhu and a noise band met in VR? Chaos, for sure, and also “Thumper.” Called a “violent rhythm game” by its creators, “Thumper” is, well, a violent rhythm game that’s also a gorgeous, unsettling and totally captivating assault on the senses. With simple controls and a straightforward premise – click the X button and the analog stick in time with the music as you barrel down a neon highway — it’s one of the rare games that works equally well both in and out of VR. But since you have PSVR, play it there. It’s marvelous.</p>
+ <h3 data-reactid="429" data-type="text"><a href="https://www.playstation.com/en-us/games/until-dawn-rush-of-blood-ps4/" rel="nofollow noopener noreferrer" target="_blank">“Until Dawn: Rush of Blood” ($20)</a></h3>
+ <p data-reactid="430"><iframe data-reactid="431" data-type="videoIframe" src="https://www.youtube.com/embed/EL3svUfC8Ds"></iframe></p>
+ <p data-reactid="432" data-type="text">Cheeky horror game “Until Dawn” was a breakout hit for the PS4 last year, channeling the classic “dumb teens in the woods” horror trope into an effective interactive drama. Well, forget all that if you fire up “Rush of Blood,” because this one sticks you front and center on a rollercoaster ride from Hell. Literally. You ride through a dimly-lit carnival of terror, dual-wielding pistols as you take down targets, hideous pig monsters and, naturally, maniac clowns. Be warned: If the bad guys don’t get you, the jump scares will.</p>
+ <h3 data-reactid="433" data-type="text"><a href="https://www.playstation.com/en-us/games/headmaster-ps4/" rel="nofollow noopener noreferrer" target="_blank">“Headmaster” ($20)</a></h3>
+ <p data-reactid="434"><iframe data-reactid="435" data-type="videoIframe" src="https://www.youtube.com/embed/a7CSMKw1E7g"></iframe></p>
+ <p data-reactid="436" data-type="text">Soccer meets “Portal” in the weird (and weirdly fun) “Headmaster,” a game about heading soccer balls into nets, targets and a variety of other things while stuck in some diabolical training facility. While at first it seems a little basic, increasingly challenging shots and a consistently entertaining narrative keep it from running off the pitch. Funny, ridiculous and as easy as literally moving your head back and forth, it’s a pleasant PSVR surprise.</p>
+ <h3 data-reactid="437" data-type="text"><a href="https://www.playstation.com/en-us/games/rigs-mechanized-combat-league-ps4/" rel="nofollow noopener noreferrer" target="_blank">“RIGS: Mechanized Combat League” ($50)</a></h3>
+ <p data-reactid="438"><iframe data-reactid="439" data-type="videoIframe" src="https://www.youtube.com/embed/Rnqlf9EQ2zA"></iframe></p>
+ <p data-reactid="440" data-type="text">Giant mechs + sports? That’s the gist of this robotic blast-a-thon, which pits two teams of three against one another in gorgeous, explosive and downright fun VR combat. At its best, “RIGS” marries the thrill of fast-paced competitive shooters with the insanity of piloting a giant mech in VR. It can, however, be one of the barfier PSVR games. So pack your Dramamine, you’re going to have to ease yourself into this one.</p>
+ <h3 data-reactid="441" data-type="text"><a href="https://www.playstation.com/en-us/games/batman-arkham-vr-ps4/" rel="nofollow noopener noreferrer" target="_blank">“Batman Arkham VR” ($20)</a></h3>
+ <p data-reactid="442"><iframe data-reactid="443" data-type="videoIframe" src="https://www.youtube.com/embed/eS4g0py16N8"></iframe></p>
+ <p data-reactid="444" data-type="text">“I’m Batman,” you will say. And you’ll actually be right this time, because you are Batman in this detective yarn, and you know this because you actually grab the famous cowl and mask, stick it on your head, and stare into the mirrored reflection of Rocksteady Games’ impressive Dark Knight character model. It lacks the action of its fellow “Arkham” games and runs disappointingly short, but it’s a high-quality experience that really shows off how powerfully immersive VR can be.</p>
+ <h3 data-reactid="445" data-type="text"><a href="https://www.playstation.com/en-us/games/job-simulator-the-2050-archives-ps4/" rel="nofollow noopener noreferrer" target="_blank">“Job Simulator” ($30)</a></h3>
+ <p data-reactid="446"><iframe data-reactid="447" data-type="videoIframe" src="https://www.youtube.com/embed/3-iMlQIGH8Y"></iframe></p>
+ <p data-reactid="448" data-type="text">There are a number of good VR ports in the PSVR launch lineup, but the HTC Vive launch game “Job Simulator” might be the best. Your task? Lots of tasks, actually, from cooking food to fixing cars to working in an office, all for robots, because did I mention you were in the future? Infinitely charming and surprisingly challenging, it’s a great showpiece for VR.</p>
+ <h3 data-reactid="449" data-type="text"><a href="https://www.playstation.com/en-us/games/eve-valkyrie-ps4/" rel="nofollow noopener noreferrer" target="_blank">“Eve Valkyrie” ($60)</a></h3>
+ <p data-reactid="450"><iframe data-reactid="451" data-type="videoIframe" src="https://www.youtube.com/embed/0KFHw12CTbo"></iframe></p>
+ <p data-reactid="452" data-type="text">Already a hit on the Oculus Rift, this space dogfighting game was one of the first to really show off how VR can turn a traditional game experience into something special. It’s pricey and not quite as hi-res as the Rift version, but “Eve Valkyrie” does an admirable job filling the void left since “Battlestar Galactica” ended. Too bad there aren’t any Cylons in it (or are there?)</p>
+ <p data-reactid="453" data-type="text"><em><strong>More games news:</strong></em></p>
+ <ul data-reactid="454" data-type="list"><li data-reactid="455"><a href="https://www.yahoo.com/tech/skylanders-imaginators-will-let-you-create-and-3d-print-your-own-action-figure-143838550.html">‘Skylanders Imaginators’ will let you create and 3D print your own action figures</a></li>
+ <li data-reactid="456"><a href="https://www.yahoo.com/tech/review-high-flying-nba-2k17-has-a-career-year-184135248.html">Review: High-flying ‘NBA 2K17’ has a career year</a></li>
+ <li data-reactid="457"><a href="https://www.yahoo.com/tech/review-race-at-your-own-speed-in-big-beautiful-forza-horizon-3-195337170.html">Review: Race at your own speed in big, beautiful ‘Forza Horizon 3’</a></li>
+ <li data-reactid="458"><a href="https://www.yahoo.com/tech/sonys-playstation-4-pro-shows-promise-potential-161304037.html">Sony’s PlayStation 4 Pro shows promise, potential and plenty of pretty lighting</a></li>
+ <li data-reactid="459"><a href="https://www.yahoo.com/tech/review-madden-nfl-17-runs-000000394.html">Review: ‘Madden NFL 17’ runs hard, plays it safe</a></li>
+ </ul><p data-reactid="460" data-type="text"><i>Ben Silverman is on Twitter at</i>
+ <a href="https://twitter.com/ben_silverman" rel="nofollow noopener noreferrer" target="_blank"> <i>ben_silverman</i></a><i>.</i></p>
+
+ </div>
+ </article></div>
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-1/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-1/source.html
new file mode 100644
index 000000000..b13bd1d8d
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-1/source.html
@@ -0,0 +1,14670 @@
+<!DOCTYPE html>
+<html id="atomic" class="NoJs firefox desktop" lang="en-US">
+
+<head prefix="og: http://ogp.me/ns#">
+ <script>
+ window.performance & amp; & amp;
+ window.performance.mark & amp; & amp;
+ window.performance.mark('PageStart');
+ </script>
+ <meta charset="utf-8" />
+ <meta name="msapplication-TileColor" content="#6e329d" />
+ <meta name="msapplication-TileImage" content="https://s.yimg.com/os/mit/media/p/presentation/images/icons/win8-tile-1484740.png" />
+ <meta name="referrer" content="origin" />
+ <meta name="theme-color" content="#400090" />
+ <meta name="twitter:dnt" content="on" />
+ <meta name="twitter:site" content="@Yahoo" />
+ <meta name="Yahoo" content="app-id=304158842,app-argument=yahoo://article/view?uuid=80b35014-fba3-377e-adc5-47fb44f61fa7&amp;src=web" />
+ <meta name="twitter:description" content="To help you decide what’s what, I’ve put together this list of the 8 PSVR games worth considering. Beloved cult hit “Rez” gets the VR treatment to help launch the PSVR, and the results are terrific. Chaos, for sure, and also “Thumper.” Called a “violent rhythm game” by its creators, “Thumper” is, well" />
+ <meta name="twitter:image" content="http://l3.yimg.com/uu/api/res/1.2/4eRCPf9lJt_3q29.outekQ--/aD02Njk7dz03NDQ7c209MTthcHBpZD15dGFjaHlvbg--/http://media.zenfs.com/en/homerun/feed_manager_auto_publish_494/4406ef57dcb40376c513903b03bef048" />
+ <meta name="twitter:image:src" content="http://l3.yimg.com/uu/api/res/1.2/4eRCPf9lJt_3q29.outekQ--/aD02Njk7dz03NDQ7c209MTthcHBpZD15dGFjaHlvbg--/http://media.zenfs.com/en/homerun/feed_manager_auto_publish_494/4406ef57dcb40376c513903b03bef048" />
+ <meta name="twitter:title" content="These are the 8 coolest PlayStation VR games" />
+ <meta name="description" content="To help you decide what’s what, I’ve put together this list of the 8 PSVR games worth considering. Beloved cult hit “Rez” gets the VR treatment to help launch the PSVR, and the results are terrific. Chaos, for sure, and also “Thumper.” Called a “violent rhythm game” by its creators, “Thumper” is, well" />
+ <meta property="og:type" content="article" />
+ <meta property="twitter:site" content="@YahooFinance" />
+ <meta property="al:android:package" content="com.yahoo.mobile.client.android.yahoo" />
+ <meta property="al:android:url" content="yahoo://article/view?uuid=80b35014-fba3-377e-adc5-47fb44f61fa7&amp;src=web" />
+ <meta property="al:ios:app_name" content="Yahoo" />
+ <meta property="al:ios:app_store_id" content="304158842" />
+ <meta property="al:ios:url" content="yahoo://article/view?uuid=80b35014-fba3-377e-adc5-47fb44f61fa7&amp;src=web" />
+ <meta property="twitter:dnt" content="on" />
+ <meta property="og:image:width" content="744" />
+ <meta property="og:image:height" content="669" />
+ <meta property="twitter:creator" content="@ben_silverman" />
+ <meta property="twitter:card" content="summary_large_image" />
+ <meta property="og:description" content="To help you decide what’s what, I’ve put together this list of the 8 PSVR games worth considering. Beloved cult hit “Rez” gets the VR treatment to help launch the PSVR, and the results are terrific. Chaos, for sure, and also “Thumper.” Called a “violent rhythm game” by its creators, “Thumper” is, well" />
+ <meta property="og:image" content="http://l3.yimg.com/uu/api/res/1.2/4eRCPf9lJt_3q29.outekQ--/aD02Njk7dz03NDQ7c209MTthcHBpZD15dGFjaHlvbg--/http://media.zenfs.com/en/homerun/feed_manager_auto_publish_494/4406ef57dcb40376c513903b03bef048" />
+ <meta property="og:title" content="These are the 8 coolest PlayStation VR games" />
+ <meta property="og:url" content="http://finance.yahoo.com/news/best-psvr-games-170003443.html" />
+ <meta http-equiv="x-dns-prefetch-control" content="on" />
+ <link rel="canonical" href="http://finance.yahoo.com/news/best-psvr-games-170003443.html" />
+ <link rel="alternate" href="http://finance.yahoo.com/news/best-psvr-games-170003443.html" hreflang="x-default" />
+ <link rel="alternate" href="https://ca.finance.yahoo.com/news/best-psvr-games-170003443.html" hreflang="en-CA" />
+ <link rel="alternate" href="https://uk.finance.yahoo.com/news/best-psvr-games-170003443.html" hreflang="en-GB" />
+ <link rel="alternate" href="https://in.finance.yahoo.com/news/best-psvr-games-170003443.html" hreflang="en-IN" />
+ <link rel="alternate" href="https://sg.finance.yahoo.com/news/best-psvr-games-170003443.html" hreflang="en-SG" />
+ <link rel="alternate" href="http://finance.yahoo.com/news/best-psvr-games-170003443.html" hreflang="en-US" />
+ <link rel="dns-prefetch" href="//shim.btrll.com" />
+ <link rel="preconnect" href="//s.yimg.com" />
+ <link rel="preconnect" href="//geo.query.yahoo.com" />
+ <link rel="preconnect" href="//csc.beap.bc.yahoo.com" />
+ <link rel="preconnect" href="//beap.gemini.yahoo.com" />
+ <link rel="preconnect" href="//yep.video.yahoo.com" />
+ <link rel="preconnect" href="//video-api.yql.yahoo.com" />
+ <link rel="preconnect" href="//yrtas.btrll.com" />
+ <link rel="preconnect" href="//shim.btrll.com" />
+ <link rel="icon" sizes="any" href="https://s.yimg.com/os/mit/media/p/common/images/favicon_new-7483e38.svg" />
+ <link rel="icon" type="image/x-icon" href="/favicon.ico" />
+ <link rel="amphtml" href="https://www.yahoo.com/amphtml/finance/news/best-psvr-games-170003443.html" />
+ <title>These are the 8 coolest PlayStation VR games</title>
+ <link rel="stylesheet" href="https://s.yimg.com/zz/combo?os/yc/css/custom.a7b8ca29.css&amp;os/yc/css/bundle.40c34d82.css&amp;os/yc/css/atomic-desktop-ltr.eedb091e.css&amp;os/yc/css/atomic-context.2d508cfe.css&amp;os/yc/css/patch.cd698090.css&amp;os/yc/css/theme.7c54e2fd.css&amp;os/fuji-style/css/fuji-rollup.min.e15bf8b3.css&amp;os/yc/css/content-canvas.67e84b7e.css" />
+ <script src="https://www.yahoo.com/polyfill.min.js?features=locale-data-en-us%2Carray.isarray%2Carray.prototype.every%2Carray.prototype.foreach%2Carray.prototype.indexof%2Carray.prototype.map%2Cdate.now%2Cfunction.prototype.bind%2Cobject.keys%2Cstring.prototype.trim%2Cobject.defineproperty%2Cobject.defineproperties%2Cobject.create%2Cobject.freeze%2Carray.prototype.filter%2Carray.prototype.reduce%2Cobject.assign%2Cpromise%2Crequestanimationframe%2Carray.prototype.some%2Cobject.getownpropertynames%2Cintl&amp;version=2.1.23" defer="defer"></script>
+ <script src="https://s.yimg.com/os/ri/2.1.5/en.js"></script>
+ <script src="https://s.yimg.com/zz/combo?ss/rapid-3.39.1.js"></script>
+ <script src="https://s.yimg.com/zz/combo?os/yc/js/common.ef256c31a306ee102313.min.js" defer="defer"></script>
+ <script src="http://l.yimg.com/rq/darla/2-9-17/js/g-r-min.js"></script>
+ <script>
+ window.Modernizr = function(a, b, c) {
+ function d(a) {
+ r.cssText = a
+ }
+
+ function e(a, b) {
+ return typeof a === b
+ }
+
+ function f(a, b) {
+ return !!~("" + a).indexOf(b)
+ }
+
+ function g(a, b) {
+ for (var d in a) {
+ var e = a[d];
+ if (!f(e, "-") & amp; & amp; r[e] !== c) return "pfx" == b ? e : !0
+ }
+ return !1
+ }
+
+ function h(a, b, d) {
+ for (var f in a) {
+ var g = b[a[f]];
+ if (g !== c) return d === !1 ? a[f] : e(g, "function") ? g.bind(d || b) : g
+ }
+ return !1
+ }
+
+ function i(a, b, c) {
+ var d = a.charAt(0).toUpperCase() + a.slice(1),
+ f = (a + " " + u.join(d + " ") + d).split(" ");
+ return e(b, "string") || e(b, "undefined") ? g(f, b) : (f = (a + " " + v.join(d + " ") + d).split(" "), h(f, b, c))
+ }
+ var j, k, l, m = "2.8.3",
+ n = {},
+ o = b.documentElement,
+ p = "modernizr",
+ q = b.createElement(p),
+ r = q.style,
+ s = ({}.toString, " -webkit- -moz- -o- -ms- ".split(" ")),
+ t = "Webkit Moz O ms",
+ u = t.split(" "),
+ v = t.toLowerCase().split(" "),
+ w = {
+ svg: "http://www.w3.org/2000/svg"
+ },
+ x = {},
+ y = [],
+ z = y.slice,
+ A = function(a, c, d, e) {
+ var f, g, h, i, j = b.createElement("div"),
+ k = b.body,
+ l = k || b.createElement("body");
+ if (parseInt(d, 10))
+ for (; d--;) h = b.createElement("div"), h.id = e ? e[d] : p + (d + 1), j.appendChild(h);
+ return f = ["&amp;#173;", '&lt;style id="s', p, '"&gt;', a, "&lt;/style&gt;"].join(""), j.id = p, (k ? j : l).innerHTML += f, l.appendChild(j), k || (l.style.background = "", l.style.overflow = "hidden", i = o.style.overflow, o.style.overflow = "hidden", o.appendChild(l)), g = c(j, a), k ? j.parentNode.removeChild(j) : (l.parentNode.removeChild(l), o.style.overflow = i), !!g
+ },
+ B = {}.hasOwnProperty;
+ l = e(B, "undefined") || e(B.call, "undefined") ? function(a, b) {
+ return b in a & amp; & amp;
+ e(a.constructor.prototype[b], "undefined")
+ } : function(a, b) {
+ return B.call(a, b)
+ }, Function.prototype.bind || (Function.prototype.bind = function(a) {
+ var b = this;
+ if ("function" != typeof b) throw new TypeError;
+ var c = z.call(arguments, 1),
+ d = function() {
+ if (this instanceof d) {
+ var e = function() {};
+ e.prototype = b.prototype;
+ var f = new e,
+ g = b.apply(f, c.concat(z.call(arguments)));
+ return Object(g) === g ? g : f
+ }
+ return b.apply(a, c.concat(z.call(arguments)))
+ };
+ return d
+ }), x.canvas = function() {
+ var a = b.createElement("canvas");
+ return !(!a.getContext || !a.getContext("2d"))
+ }, x.history = function() {
+ return !(!a.history || !history.pushState)
+ }, x.csstransforms3d = function() {
+ var a = !!i("perspective");
+ return a & amp; & amp;
+ "webkitPerspective" in o.style & amp; & amp;
+ A("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}", function(b, c) {
+ a = 9 === b.offsetLeft & amp; & amp;
+ 3 === b.offsetHeight
+ }), a
+ }, x.csstransitions = function() {
+ return i("transition")
+ }, x.video = function() {
+ var a = b.createElement("video"),
+ c = !1;
+ try {
+ (c = !!a.canPlayType) & amp; & amp;
+ (c = new Boolean(c), c.ogg = a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/, ""), c.h264 = a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/, ""), c.webm = a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/, ""))
+ } catch (d) {}
+ return c
+ }, x.localstorage = function() {
+ try {
+ return localStorage.setItem(p, p), localStorage.removeItem(p), !0
+ } catch (a) {
+ return !1
+ }
+ }, x.sessionstorage = function() {
+ try {
+ return sessionStorage.setItem(p, p), sessionStorage.removeItem(p), !0
+ } catch (a) {
+ return !1
+ }
+ }, x.svg = function() {
+ return !!b.createElementNS & amp; & amp;
+ !!b.createElementNS(w.svg, "svg").createSVGRect
+ }, x.inlinesvg = function() {
+ var a = b.createElement("div");
+ return a.innerHTML = "&lt;svg/&gt;", (a.firstChild & amp; & amp; a.firstChild.namespaceURI) == w.svg
+ };
+ for (var C in x) l(x, C) & amp; & amp;
+ (k = C.toLowerCase(), n[k] = x[C](), y.push((n[k] ? "" : "no-") + k));
+ return n.addTest = function(a, b) {
+ if ("object" == typeof a)
+ for (var d in a) l(a, d) & amp; & amp;
+ n.addTest(d, a[d]);
+ else {
+ if (a = a.toLowerCase(), n[a] !== c) return n;
+ b = "function" == typeof b ? b() : b, "undefined" != typeof enableClasses & amp; & amp;
+ enableClasses & amp; & amp;
+ (o.className += " " + (b ? "" : "no-") + a), n[a] = b
+ }
+ return n
+ }, d(""), q = j = null, n._version = m, n._prefixes = s, n._domPrefixes = v, n._cssomPrefixes = u, n.testProp = function(a) {
+ return g([a])
+ }, n.testAllProps = i, n.testStyles = A, n.prefixed = function(a, b, c) {
+ return b ? i(a, b, c) : i(a, "pfx")
+ }, n
+ }(this, this.document);
+ </script>
+ <script>
+ (function(html) {
+ var c = html.className;
+ c += " JsEnabled";
+ c = c.replace("NoJs", "");
+ html.className = c;
+ })(document.documentElement);
+ </script>
+ <style>
+ .jtdTrans-enter {
+ transform: translateY(7px) scale(.9667)
+ }
+
+ .jtdTrans-enter.jtdTrans-enter-active {
+ transform: translateY(0) scale(1);
+ transition: all 350ms ease-out
+ }
+
+ .jtdTrans-leave {
+ opacity: 1;
+ transform: translateX(0)
+ }
+
+ .jtdTrans-leave.jtdTrans-leave-active {
+ opacity: .01;
+ transform: translateX(100%);
+ transition: all 350ms ease-in
+ }
+
+ .jtdBgTrans-enter {
+ opacity: 0;
+ transform: translateY(7px) scale(.9667)
+ }
+
+ .jtdBgTrans-enter.jtdBgTrans-enter-active {
+ opacity: 1;
+ transform: translateY(0) scale(1);
+ transition: all 350ms ease-out
+ }
+
+ .jtdBgTrans-leave {
+ opacity: 0
+ }
+
+ @-webkit-keyframes moveAnimation {
+ 25% {
+ transform: rotate(-90deg)
+ }
+ 75% {
+ transform: rotate(0)
+ }
+ }
+
+ @keyframes moveAnimation {
+ 25% {
+ transform: rotate(-90deg)
+ }
+ 75% {
+ transform: rotate(0)
+ }
+ }
+ </style>
+ <style>
+ .tdv2-applet-livecoverage .action-enter {
+ opacity: .01
+ }
+
+ .tdv2-applet-livecoverage .action-enter.action-enter-active {
+ opacity: 1;
+ transition: opacity .5s ease-in
+ }
+
+ .tdv2-applet-livecoverage .action-leave {
+ opacity: 1
+ }
+
+ .tdv2-applet-livecoverage .action-leave.action-leave-active {
+ opacity: .01;
+ transition: opacity 1s ease-in
+ }
+
+ .tdv2-applet-livecoverage .action-appear {
+ opacity: .01
+ }
+
+ .tdv2-applet-livecoverage .action-appear.action-appear-active {
+ opacity: 1;
+ transition: opacity .5s ease-in
+ }
+
+ .tdv2-applet-livecoverage .new-post {
+ animation: transistion-bd-color 10s ease-in
+ }
+
+ @keyframes transistion-bd-color {
+ 0%,
+ 25% {
+ border-color: #ff2429
+ }
+ 100% {
+ border-color: #198cff
+ }
+ }
+ </style>
+ <style>
+ .trending-enter {
+ opacity: .01;
+ position: relative;
+ transition: opacity .5s ease-in;
+ transition-delay: .5s
+ }
+
+ .trending-enter.trending-enter-active {
+ opacity: 1;
+ position: relative
+ }
+
+ .trending-leave {
+ opacity: 1;
+ position: absolute;
+ top: 0;
+ left: 0;
+ transition: opacity .5s ease-in
+ }
+
+ .trending-leave.trending-leave-active {
+ position: absolute;
+ top: 0;
+ left: 0;
+ opacity: .01
+ }
+ </style>
+ <style>
+ .td-applet-mtfpopup .ac-results .react-autocomplete-results-list {
+ margin: 0;
+ border: 1px solid #ccc
+ }
+
+ .td-applet-mtfpopup .ac-results .react-autocomplete-results-list .react-autocomplete-result-item {
+ padding: 5px
+ }
+
+ .td-applet-mtfpopup .ac-results .react-autocomplete-results-list .react-autocomplete-result-item:hover {
+ background-color: #ddd
+ }
+
+ .td-applet-mtfpopup .ac-results .react-autocomplete-results-list .react-autocomplete-result-item.focused {
+ background-color: #ccc
+ }
+ </style>
+ <style>
+ @-webkit-keyframes spin {
+ to {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg)
+ }
+ }
+
+ @keyframes spin {
+ to {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg)
+ }
+ }
+
+ @-webkit-keyframes location-spinner {
+ 0% {
+ -webkit-transform: scale(0);
+ transform: scale(0)
+ }
+ 100% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ opacity: 0
+ }
+ }
+
+ @keyframes location-spinner {
+ 0% {
+ -webkit-transform: scale(0);
+ transform: scale(0)
+ }
+ 100% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ opacity: 0
+ }
+ }
+
+ .bgimg-enter {
+ opacity: .01
+ }
+
+ .bgimg-enter.bgimg-enter-active {
+ opacity: 1;
+ -webkit-transition: opacity .5s ease-in;
+ transition: opacity .5s ease-in
+ }
+
+ .bgimg-leave {
+ opacity: 1
+ }
+
+ .bgimg-leave.bgimg-leave-active {
+ opacity: .01;
+ -webkit-transition: opacity .3s ease-in;
+ transition: opacity .3s ease-in
+ }
+ </style>
+ <style>
+ @-webkit-keyframes follow-anim {
+ 0%,
+ 100% {
+ opacity: 1;
+ stroke-width: 1px
+ }
+ 50% {
+ opacity: .8;
+ stroke-width: 4px
+ }
+ }
+
+ @keyframes follow-anim {
+ 0%,
+ 100% {
+ opacity: 1;
+ stroke-width: 1px
+ }
+ 50% {
+ opacity: .8;
+ stroke-width: 4px
+ }
+ }
+ </style>
+ <style>
+ body::after {
+ opacity: 0;
+ content: ' ';
+ position: fixed;
+ transition: opacity .1s ease-in, transform .1s ease-in;
+ -webkit-transition: opacity .1s ease-in, transform .1s ease-in;
+ pointer-events: none
+ }
+
+ .desktop body::after,
+ .desktop body:after {
+ top: 50%;
+ left: 50%;
+ display: block;
+ width: 52px;
+ height: 52px;
+ z-index: 11;
+ background: url(https://s.yimg.com/os/yc/pt/icons/fuji-loader-v2-blue.0.svg) center center no-repeat;
+ background: url(https://s.yimg.com/os/yc/pt/icons/throbber-93.gif) center center no-repeat\9;
+ background-size: 52px 52px;
+ margin-left: -41px;
+ margin-top: -41px;
+ padding: 15px;
+ background-color: #fff;
+ border-radius: 50%;
+ box-shadow: 0 0 100px #ccc;
+ transform: scale(.7);
+ -webkit-transform: scale(.7)
+ }
+
+ @media screen and (-ms-high-contrast:active),
+ (-ms-high-contrast:none) {
+ .desktop body::after,
+ .desktop body:after {
+ background: url(https://s.yimg.com/os/yc/pt/icons/throbber-93.gif) center center no-repeat
+ }
+ }
+
+ .smartphone body::after,
+ .smartphone body:after,
+ .tablet body::after,
+ .tablet body:after {
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ z-index: 1;
+ background: url(https://s.yimg.com/os/yc/pt/icons/fuji-loader-v2-blue.0.svg) 50% 50% no-repeat rgba(255, 255, 255, .7);
+ height: 100%;
+ background-size: 52px 52px
+ }
+
+ .batchupdate-transitioning body::after,
+ .batchupdate-transitioning body:after {
+ opacity: 1
+ }
+ </style>
+ <style>
+ #atomic .render-target-modal #YDC-UH {
+ display: none
+ }
+
+ #atomic #render-target-modal,
+ #atomic #render-target-viewer {
+ opacity: 0
+ }
+
+ #atomic.modal-postopen #render-target-modal,
+ #atomic.viewer-postopen #render-target-viewer {
+ opacity: 1
+ }
+
+ #atomic.modal-postopen #render-target-mrt,
+ #atomic.modal-postopen .render-target-default,
+ #atomic.viewer-postopen #render-target-mrt,
+ #atomic.viewer-postopen .render-target-default {
+ max-height: 100%;
+ overflow: hidden
+ }
+
+ #render-target-mrt {
+ position: absolute;
+ width: 100%
+ }
+
+ #atomic.default-to-modal-fade .render-target-default,
+ #atomic.default-to-viewer-fade .render-target-default,
+ #atomic.modal-to-default-fade .render-target-modal,
+ #atomic.mrt-to-modal-fade #render-target-mrt,
+ #atomic.mrt-to-viewer-fade #render-target-mrt,
+ #atomic.viewer-to-default-fade .render-target-viewer {
+ position: fixed
+ }
+
+ #atomic.default-to-modal-fade .render-target-modal {
+ -webkit-animation: fadein .15s ease-out forwards;
+ animation: fadein .15s ease-out forwards
+ }
+
+ #atomic.modal-to-default-fade .render-target-modal {
+ -webkit-animation: fadeout .15s ease-in forwards;
+ animation: fadeout .15s ease-in forwards
+ }
+
+ #atomic.default-to-viewer-fade .render-target-viewer,
+ #atomic.modal-to-viewer-fade .render-target-viewer {
+ -webkit-animation: fadein .25s ease-out forwards;
+ animation: fadein .25s ease-out forwards
+ }
+
+ #atomic.viewer-to-default-fade .render-target-viewer,
+ #atomic.viewer-to-modal-fade .render-target-viewer {
+ -webkit-animation: fadeout .25s ease-in forwards;
+ animation: fadeout .25s ease-in forwards
+ }
+
+ @-webkit-keyframes fadein {
+ 0% {
+ opacity: 0
+ }
+ 100% {
+ opacity: 1
+ }
+ }
+
+ @-webkit-keyframes fadeout {
+ 0% {
+ opacity: 1
+ }
+ 100% {
+ opacity: 0
+ }
+ }
+
+ @keyframes fadein {
+ 0% {
+ opacity: 0
+ }
+ 100% {
+ opacity: 1
+ }
+ }
+
+ @keyframes fadeout {
+ 0% {
+ opacity: 1
+ }
+ 100% {
+ opacity: 0
+ }
+ }
+ </style>
+ <script>
+ (function() {
+ if (!window.YAHOO || !window.YAHOO.i13n || !window.YAHOO.i13n.Rapid) {
+ return;
+ }
+ var rapidConfig = {
+ "keys": {
+ "ver": "y20",
+ "navtype": "server",
+ "layout": "y20stream",
+ "pd": "non_modal",
+ "pt": 4,
+ "p_cpos": 1,
+ "p_hosted": "hosted",
+ "pct": "story",
+ "pstaid": "80b35014-fba3-377e-adc5-47fb44f61fa7",
+ "ss_cid": "",
+ "mrkt": "us",
+ "site": "finance",
+ "lang": "en-US",
+ "colo": "gq1",
+ "_yrid": "9qrr7t5c1iors",
+ "_rid": "9qrr7t5c1iors"
+ },
+ "compr_type": "deflate",
+ "tracked_mods_viewability": [],
+ "test_id": "finance-US-en-US-def",
+ "webworker_file": "/lib/metro/g/myy/rapidworker_1_2_0.0.2.js",
+ "client_only": 1,
+ "track_right_click": true,
+ "pageview_on_init": true,
+ "viewability": true,
+ "dwell_on": true,
+ "spaceid": "1183300100"
+ };
+ window.rapidInstance = new window.YAHOO.i13n.Rapid(rapidConfig);
+ })();
+ </script>
+</head>
+
+<body>
+ <div id="app">
+ <div data-reactroot="" data-reactid="1" data-react-checksum="510596237">
+ <div class="render-target-active render-target-default D(b)" id="render-target-default" data-reactid="2">
+ <div class="finance US en-US" data-reactid="3">
+ <div id="YDC-MainCanvas" class="YDC-MainCanvas Bgc($bg-body) Bxz(bb) Mih(100%) W(100%) Pos(a) lightweight_Miw(1247px)" data-reactid="4">
+ <div id="YDC-UH" class="YDC-UH" style="height:128px;" data-reactid="5">
+ <div id="YDC-UH-Stack" class="YDC-UH-Stack Z(10) End(0) Start(0) T(0) Pos(f)" data-reactid="6">
+ <div data-reactid="7">
+ <div id="UH-0-UH-Proxy" data-reactid="8">
+ <div data-reactid="9">
+ <div data-reactid="10">
+ <div id="masterNav" class="C(#fff) Fz(13px) H(22px)" data-reactid="11">
+ <ul id="eyebrow" role="navigation" class="H(22px) Lh(1.7) M(0) NavLinks P(0) Whs(nw) Z(11) Bgc(#2d1152) Pos(a) Start(0) End(0)" data-reactid="12">
+ <li id="uh-tb-home" class="D(ib) Lh(1.7) Mend(18px) Pstart(10px) Va(t) Zoom" data-reactid="13">
+ <a class="C(#fff) Td(n) Pos(r) Z(1) rapidnofollow" href="https://www.yahoo.com/" data-reactid="14">
+ <div data-reactid="15"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="16" style="cursor:pointer;margin-right:6px;margin-top:1px;vertical-align:top;fill:#fff;stroke:#fff;stroke-width:0;" height="16" viewBox="0 0 32 32" data-icon="home" data-reactid="16"><path d="M16.153 3.224L0 16.962h4.314v11.814h9.87v-8.003h3.934v8.003h9.84V16.962H32" data-reactid="17"/></svg><b class="Fw(400) Mstart(-1px) Td(u):h" data-reactid="18">Home</b></div>
+ </a>
+ </li>
+ <li id="uh-tb-mail" class="D(ib) Lh(1.7) Mend(18px) Pstart(14px) Va(t) Zoom" data-reactid="19"><a class="C(#fff) Td(n) Td(u):h" href="https://mail.yahoo.com/?.intl=us&amp;.lang=en-US" data-reactid="20">Mail</a></li>
+ <li id="uh-tb-flickr" class="D(ib) Lh(1.7) Mend(18px) Pstart(14px) Va(t) Zoom" data-reactid="21"><a class="C(#fff) Td(n) Td(u):h" href="https://www.flickr.com/" data-reactid="22">Flickr</a></li>
+ <li id="uh-tb-tumblr" class="D(ib) Lh(1.7) Mend(18px) Pstart(14px) Va(t) Zoom" data-reactid="23"><a class="C(#fff) Td(n) Td(u):h" href="https://www.tumblr.com/" data-reactid="24">Tumblr</a></li>
+ <li id="uh-tb-news" class="D(ib) Lh(1.7) Mend(18px) Pstart(14px) Va(t) Zoom" data-reactid="25"><a class="C(#fff) Td(n) Td(u):h" href="https://www.yahoo.com/news/" data-reactid="26">News</a></li>
+ <li id="uh-tb-sports" class="D(ib) Lh(1.7) Mend(18px) Pstart(14px) Va(t) Zoom" data-reactid="27"><a class="C(#fff) Td(n) Td(u):h" href="http://sports.yahoo.com/" data-reactid="28">Sports</a></li>
+ <li id="uh-tb-finance" class="D(ib) Lh(1.7) Mend(18px) Pstart(14px) Va(t) Zoom" data-reactid="29"><a class="C(#fff) Td(n) Td(u):h" href="http://finance.yahoo.com/" data-reactid="30">Finance</a></li>
+ <li id="uh-tb-celebrity" class="D(ib) Lh(1.7) Mend(18px) Pstart(14px) Va(t) Zoom" data-reactid="31"><a class="C(#fff) Td(n) Td(u):h" href="https://www.yahoo.com/celebrity/" data-reactid="32">Celebrity</a></li>
+ <li id="uh-tb-answers" class="D(ib) Lh(1.7) Mend(18px) Pstart(14px) Va(t) Zoom" data-reactid="33"><a class="C(#fff) Td(n) Td(u):h" href="https://answers.yahoo.com/" data-reactid="34">Answers</a></li>
+ <li id="uh-tb-groups" class="D(ib) Lh(1.7) Mend(18px) Pstart(14px) Va(t) Zoom" data-reactid="35"><a class="C(#fff) Td(n) Td(u):h" href="https://groups.yahoo.com/" data-reactid="36">Groups</a></li>
+ <li id="uh-tb-mobile" class="D(ib) Lh(1.7) Mend(18px) Pstart(14px) Va(t) Zoom" data-reactid="37"><a class="C(#fff) Td(n) Td(u):h" href="https://mobile.yahoo.com/" data-reactid="38">Mobile</a></li>
+ <li id="uh-tb-more" class="D(ib) Lh(1.7) Pend(6px) Pos(r) Pstart(10px) Va(t) Z(4) Zoom" data-reactid="39"><a id="uh-tb-more-link" class="C(#fff) Pos(r) Td(n) Z(1) yucs-leavable rapidnofollow" href="http://everything.yahoo.com/" role="button" data-reactid="40"><span class="Td(u):h" data-reactid="41">More</span><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="8" style="cursor:pointer;margin-left:5px;vertical-align:middle;fill:#fff;stroke:#fff;stroke-width:0;" height="8" viewBox="0 0 512 512" data-icon="CoreArrowDown" data-reactid="42"><path d="M500.77 131.432L477.53 108.18c-14.45-14.55-40.11-14.55-54.51 0L255.845 275.363 88.582 108.124c-15.015-14.874-39.363-14.874-54.42.108L10.94 131.486c-14.58 14.44-14.58 40.11-.033 54.442l217.77 217.845c15.004 14.82 39.33 14.874 54.42-.108L500.88 185.82c14.818-14.982 14.87-39.298-.11-54.388z" data-reactid="43"/></svg></a></li>
+ <!-- react-empty: 44 -->
+ </ul>
+ </div>
+ <div id="preLoadUH-0-Header" class="Bdbs(s) Bdw(1px) Miw(1024px) End(0) Start(0) UH Z(10) Bdc($c-divider) Py(14px) Bgc($bg-header) T(22px) Pos(f) Panel-open_Bxsh(shadowOn)" data-name="tdv2-applet-uh" data-version="8.0.567" data-reactid="45">
+ <div data-reactid="46">
+ <div class="Fl(start) Fz(0) M(0) P(0) ie-7_W(190px) Miw(190px) UHMR1D_Py(0)" style="background-color:transparent;" data-reactid="47">
+ <div data-reactid="48">
+ <style data-reactid="49">
+ #preLoadUH-0-Header #uh-logo {
+ background-image: url(https://s.yimg.com/rz/d/yahoo_finance_en-US_s_f_pw_351x40_finance.png);
+ }
+
+ @media only screen and (-webkit-min-device-pixel-ratio: 2),
+ only screen and ( min--moz-device-pixel-ratio: 2),
+ only screen and ( -o-min-device-pixel-ratio: 2/1),
+ only screen and ( min-device-pixel-ratio: 2),
+ only screen and ( min-resolution: 192dpi),
+ only screen and ( min-resolution: 2dppx) {
+ #preLoadUH-0-Header #uh-logo {
+ background-image: url(https://s.yimg.com/rz/d/yahoo_finance_en-US_s_f_pw_351x40_finance_2x.png);
+ }
+ }
+ </style><a id="uh-logo" class="Bgpx(0) Bgr(nr) Cur(p) D(b) H(35px) Bgz(702px) Mx(a)! W(92px)" href="https://finance.yahoo.com/" data-reactid="50"><b class="Hidden" data-reactid="51">Yahoo</b></a></div>
+ </div>
+ <div id="uh-search" class="D(ib) uh-max_Py(50px)" data-reactid="52">
+ <form action="http://search.yahoo.com/search" class="M(0) P(0) Whs(nw)" method="get" name="input" data-reactid="53"><label class="Hidden" for="search-assist-input" data-reactid="54">Search</label>
+ <table class="Bdsp(0) Bdcl(c) Maw(searchMaxWidth) Miw(searchMinWidth) W(searchWidth) ie-8_W(searchMinWidthLightWeight) ie-7_W(searchMinWidthLightWeight) ie-7_Miw(searchMinWidthLightWeight) ie-8_Miw(searchMinWidthLightWeight)" data-reactid="55">
+ <tbody data-reactid="56">
+ <tr data-reactid="57">
+ <td class="W(100%) Va(t) Px(0)" data-reactid="58">
+ <div data-reactid="59">
+ <div class="Z(2) Pos(r)" id="search-assist-input" data-reactid="60">
+ <div class="" data-reactid="61"><input aria-label="Search" autocomplete="off" autocorrect="off" autocapitalize="off" class="Pos(r) W(100%) M(0) O(0) O(0):f Bgc(#fff) Z(2) Bxsh(n) Bxsh(n):f Fz(15px) Px(15px) Py(8px) Bdrs(0) Pstart(10px) Pend(10px) Va(t)" name="p" placeholder="Search" style="-webkit-appearance:none;" value="" data-reactid="62" type="text" /></div>
+ <div class="Pos(a) Ta(start) Start(0) End(0) Bgc(#fff) Z(1) D(n) Bd Bdc(#aaa) Bdtw(0) Mt(-1px)" data-reactid="63">
+ <ul class="M(0)" data-reactid="64"></ul>
+ </div>
+ </div>
+ </div>
+ </td>
+ <td class="Va(t) Tren(os) W(10%) Whs(nw) Px(0) Bdcl(s)" data-reactid="65">
+ <div id="search-buttons" data-reactid="66"><button class="Bdrs(4px) Bdtw(0) Bdw(1px) Bgr(rx) Mstart(5px) Bxz(cb) C(#fff) Ff(ss)! Fz(15px) two-btn_Fz(13px) Lh(32px)! Mend(0)! My(0)! Miw(92px) Px(14px) Py(0) Ta(c) Td(n) Va(t) Zoom Bg(searchBtnBg) Bxsh(customShadowSearchButton)" id="search-button" style="filter:chroma(color=#000000);" type="submit" data-reactid="67">Search</button></div>
+ </td>
+ </tr>
+ </tbody>
+ </table><input name="fr" value="uh3_finance_vert" data-reactid="68" type="hidden" /><input name="fr2" value="p:finvsrp,m:sb" data-reactid="69" type="hidden" /></form>
+ </div>
+ <ul id="uh-right" class="End(20px) List(n) Pos(a) T(14px)" data-reactid="70">
+ <li class="Fl(start) Mx(4px) Mend(9px)" data-reactid="71"><a id="uh-signedin" class="Bdrs(5px) Bds(s) Bdw(2px) C(#fff):h D(ib) Ell Fz(14px) Fw(b) Py(2px) Mt(3px) Ta(c) Td(n):h Miw(78px) H(18px) Bdc(signInBtn) Bgc(signInBtn):h C(signInBtn)" href="https://login.yahoo.com/config/login?.intl=us&amp;.lang=en-US&amp;.src=finance&amp;.done=http%3A%2F%2Ffinance.yahoo.com%2Fnews%2Fbest-psvr-games-170003443.html" data-reactid="72">Sign in</a></li>
+ <li class="D(ib) Mstart(14px) Mt(-1px) ua-ie8_Pb(10px) ua-ie9_Pb(10px)" data-reactid="73"><button id="uh-follow" class="Pos(r) Fl(start) D(ib) Bd(0) P(0) Mstart(14px) Mend(13px) Cur(p) ie-7_D(n) ie-8_Pb(10px) ie-9_Pb(10px)" href="#" aria-label="Notifications" data-reactid="74"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="28" style="fill:#400090;stroke:#400090;stroke-width:0;vertical-align:bottom;" height="28" viewBox="0 0 512 512" data-icon="nav-bell" data-reactid="75"><path d="M294.2 428.05h-74.4c0 20.543 16.656 37.2 37.2 37.2 20.535 0 37.2-12.47 37.2-37.2zM136.1 195.55c0 62.284-53.51 94.162-55.728 95.452L71 296.352v94.498h372v-94.498l-9.373-5.35c-.562-.318-55.727-32.573-55.727-95.452 0-63.88-12.533-148.8-120.9-148.8-108.368 0-120.9 84.92-120.9 148.8z" data-reactid="76"/></svg><span id="uh-follow-count" class="Bgc(mailBadge) Bdrs(11px) C(#fff) Start(16px) Fz(11px) Fw(b) Pos(a) Lh(2) Ta(c) T(-11px) W(22px) V(h)" data-reactid="77">0</span></button></li>
+ <li class="D(ib) Mstart(14px) Mt(-1px) ua-ie8_Pb(10px) ua-ie9_Pb(10px)" data-reactid="78"><a id="uh-mail" class="Pos(r) D(ib) Ta(s) Td(n):h" href="https://mail.yahoo.com/?.intl=us&amp;.lang=en-US&amp;.partner=none&amp;.src=finance" data-reactid="79"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="30" style="fill:#400090;stroke:#400090;stroke-width:0;vertical-align:bottom;" height="35" viewBox="0 0 512 512" data-icon="NavMail" data-reactid="80"><path d="M460.586 91.31H51.504c-10.738 0-19.46 8.72-19.46 19.477v40.088l224 104.03 224-104.03v-40.088c0-10.757-8.702-19.478-19.458-19.478M32.046 193.426V402.96c0 10.758 8.72 19.48 19.458 19.48h409.082c10.756 0 19.46-8.722 19.46-19.48V193.428l-224 102.327-224-102.327z" data-reactid="81"/></svg><b class="Lh(userNavTextLh) D(ib) C(mailBtn) Fz(14px) Fw(b) Va(t) Mstart(6px)" data-reactid="82">Mail</b></a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="UH-1-TopNav-Proxy" data-reactid="83">
+ <div id="UH-1-TopNav" class="Bgc(#fff) Bxsh($lightGrayBoxShadow) Mt(68px) H(40px) Miw(1024px)" data-test="top-nav" data-reactid="84">
+ <ul class="Va(t) D(ib) nav-tabs M(0) Pstart(20px) Whs(nw)" data-reactid="85">
+ <li class="D(ib) Fz(s) Pend(30px)" data-reactid="86"><a href="https://finance.yahoo.com/" class="Td(n) Py(12px) D(b) C($topNavLinkBlack):h Pb(8px):h Bdbw(4px):h Bdbs(s):h Bdbc($dropdownBlue):h Fw(b) C($topNavLinkBlack)" target="_self" data-reactid="87"><span data-reactid="88">Finance Home</span></a></li>
+ <li class="More D(ib) Fz(s) Pend(30px) Cur(d) More" data-reactid="89"><a class="Py(12px) Td(n) D(b) Fw(b) activeSubNav_C($topNavLinkBlack) activeSubNav_Py(8px) activeSubNav_Bdbw(4px) activeSubNav_Bdbs(s) activeSubNav_Bdbc($dropdownBlue) C($topNavLinkBlack):h Py(8px):h Bdbw(4px):h Bdbs(s):h Bdbc($dropdownBlue):h C($topNavLinkBlack)" data-reactid="90"><span data-reactid="91">Yahoo Originals</span><span data-reactid="92"></span></a>
+ <ul class="nav-sub-links Ov(h) Bxsh($navDropdownShadow) M(0) Pos(a) Bgc(#fff)! Z(8)! Bdrs(2px) Pt(10px) Pb(15px) D(n)" data-reactid="93">
+ <li class="Pend(30px)" data-reactid="94"><a href="https://finance.yahoo.com/topic/marketmovers" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="95"><span data-reactid="96">Market Movers</span></a></li>
+ <li class="Pend(30px)" data-reactid="97"><a href="https://finance.yahoo.com/topic/middaymovers" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="98"><span data-reactid="99">Midday Movers</span></a></li>
+ <li class="Pend(30px)" data-reactid="100"><a href="https://finance.yahoo.com/topic/finalround" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="101"><span data-reactid="102">The Final Round</span></a></li>
+ <li class="Pend(30px)" data-reactid="103"><a href="https://finance.yahoo.com/topic/sportsbook" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="104"><span data-reactid="105">Sportsbook</span></a></li>
+ <li class="Pend(30px)" data-reactid="106"><a href="https://finance.yahoo.com/topic/trendingtickers" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="107"><span data-reactid="108">Trending Tickers</span></a></li>
+ <li class="Pend(30px)" data-reactid="109"><a href="http://finance.yahoo.com/blogs/author/andy-serwer/" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="110">Andy Serwer</a></li>
+ <li class="Pend(30px)" data-reactid="111"><a href="http://finance.yahoo.com/blogs/author/brittany-jones-cooper/" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="112">Brittany Jones-Cooper</a></li>
+ <li class="Pend(30px)" data-reactid="113"><a href="http://finance.yahoo.com/blogs/author/daniel-howley-20160419/" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="114">Daniel Howley</a></li>
+ <li class="Pend(30px)" data-reactid="115"><a href="http://finance.yahoo.com/blogs/author/daniel-roberts/" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="116">Daniel Roberts</a></li>
+ <li class="Pend(30px)" data-reactid="117"><a href="http://finance.yahoo.com/news/david-pogue/" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="118">David Pogue</a></li>
+ <li class="Pend(30px)" data-reactid="119"><a href="http://ewolffmannyf.tumblr.com/" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="120">Ethan Wolff-Mann</a></li>
+ <li class="Pend(30px)" data-reactid="121"><a href="http://jpmangalindan-yahoofinance.tumblr.com/" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="122">JP Mangalindan</a></li>
+ <li class="Pend(30px)" data-reactid="123"><a href="http://finance.yahoo.com/blogs/author/julia-la-roche/" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="124">Julia La Roche</a></li>
+ <li class="Pend(30px)" data-reactid="125"><a href="http://finance.yahoo.com/blogs/author/melody-hahm-20151026/" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="126">Melody Hahm</a></li>
+ <li class="Pend(30px)" data-reactid="127"><a href="http://finance.yahoo.com/blogs/author/nicole-sinclair/" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="128">Nicole Sinclair</a></li>
+ <li class="Pend(30px)" data-reactid="129"><a href="http://finance.yahoo.com/blogs/author/rick-newman/" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="130">Rick Newman</a></li>
+ <li class="Pend(30px)" data-reactid="131"><a href="http://finance.yahoo.com/blogs/author/sam-ro/" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="132">Sam Ro</a></li>
+ <li class="Pend(30px)" data-reactid="133"><a target="_self" href="http://financecontributors.tumblr.com/" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" data-reactid="134"><span data-reactid="135">Contributors</span></a></li>
+ </ul>
+ </li>
+ <li class="More D(ib) Fz(s) Pend(30px) Cur(d) More" data-reactid="136"><a class="Py(12px) Td(n) D(b) Fw(b) activeSubNav_C($topNavLinkBlack) activeSubNav_Py(8px) activeSubNav_Bdbw(4px) activeSubNav_Bdbs(s) activeSubNav_Bdbc($dropdownBlue) C($topNavLinkBlack):h Py(8px):h Bdbw(4px):h Bdbs(s):h Bdbc($dropdownBlue):h C($topNavLinkBlack)" href="/personal-finance" data-reactid="137"><span data-reactid="138">Personal Finance</span><span data-reactid="139"></span></a>
+ <ul class="nav-sub-links Ov(h) Bxsh($navDropdownShadow) M(0) Pos(a) Bgc(#fff)! Z(8)! Bdrs(2px) Pt(10px) Pb(15px) D(n)" data-reactid="140">
+ <li class="Pend(30px)" data-reactid="141"><a href="https://finance.yahoo.com/topic/retirement" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="142"><span data-reactid="143">Retirement</span></a></li>
+ <li class="Pend(30px)" data-reactid="144"><a href="https://finance.yahoo.com/topic/lifestyle" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="145"><span data-reactid="146">Lifestyle</span></a></li>
+ <li class="Pend(30px)" data-reactid="147"><a href="https://finance.yahoo.com/topic/videos" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="148"><span data-reactid="149"> [Video]</span></a></li>
+ <li class="Pend(30px)" data-reactid="150"><a href="http://finance.yahoo.com/currency-converter" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="151"><span data-reactid="152">Currency Converter</span></a></li>
+ </ul>
+ </li>
+ <li class="D(ib) Fz(s) Pend(30px)" data-reactid="153"><a target="_self" href="http://www.yahoo.com/tech" class="Td(n) Py(12px) D(b) C($topNavLinkBlack):h Pb(8px):h Bdbw(4px):h Bdbs(s):h Bdbc($dropdownBlue):h Fw(b) C($topNavLinkBlack)" data-reactid="154"><span data-reactid="155">Tech</span></a></li>
+ <li class="More D(ib) Fz(s) Pend(30px) Cur(d) More" data-reactid="156"><a class="Py(12px) Td(n) D(b) Fw(b) activeSubNav_C($topNavLinkBlack) activeSubNav_Py(8px) activeSubNav_Bdbw(4px) activeSubNav_Bdbs(s) activeSubNav_Bdbc($dropdownBlue) C($topNavLinkBlack):h Py(8px):h Bdbw(4px):h Bdbs(s):h Bdbc($dropdownBlue):h C($topNavLinkBlack)" data-reactid="157"><span data-reactid="158">Market Data</span><span data-reactid="159"></span></a>
+ <ul class="nav-sub-links Ov(h) Bxsh($navDropdownShadow) M(0) Pos(a) Bgc(#fff)! Z(8)! Bdrs(2px) Pt(10px) Pb(15px) D(n)" data-reactid="160">
+ <li class="Pend(30px)" data-reactid="161"><a href="https://finance.yahoo.com/trending-tickers" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="162"><span data-reactid="163">Trending Tickers</span></a></li>
+ <li class="Pend(30px)" data-reactid="164"><a href="https://finance.yahoo.com/most-active" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="165"><span data-reactid="166">Stocks: Most Actives</span></a></li>
+ <li class="Pend(30px)" data-reactid="167"><a href="https://finance.yahoo.com/gainers" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="168"><span data-reactid="169">Stocks: Gainers</span></a></li>
+ <li class="Pend(30px)" data-reactid="170"><a href="https://finance.yahoo.com/losers" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="171"><span data-reactid="172">Stocks: Losers</span></a></li>
+ <li class="Pend(30px)" data-reactid="173"><a href="https://finance.yahoo.com/etfs" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="174"><span data-reactid="175">Top ETFs</span></a></li>
+ <li class="Pend(30px)" data-reactid="176"><a href="https://finance.yahoo.com/commodities" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="177"><span data-reactid="178">Commodities</span></a></li>
+ <li class="Pend(30px)" data-reactid="179"><a href="https://finance.yahoo.com/world-indices" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="180"><span data-reactid="181">World Indices</span></a></li>
+ <li class="Pend(30px)" data-reactid="182"><a href="https://finance.yahoo.com/currencies" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="183"><span data-reactid="184">Currencies</span></a></li>
+ <li class="Pend(30px)" data-reactid="185"><a href="https://finance.yahoo.com/mutualfunds" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="186"><span data-reactid="187">Top Mutual Funds</span></a></li>
+ <li class="Pend(30px)" data-reactid="188"><a href="https://finance.yahoo.com/options" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="189"><span data-reactid="190">Most Traded Options by Volume</span></a></li>
+ <li class="Pend(30px)" data-reactid="191"><a href="https://finance.yahoo.com/bonds" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="192"><span data-reactid="193">US Treasury Bonds Rates</span></a></li>
+ <li class="Pend(30px)" data-reactid="194"><a href="https://biz.yahoo.com/research/earncal/today.html" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="195"><span data-reactid="196">Calendars</span></a></li>
+ </ul>
+ </li>
+ <li class="More D(ib) Fz(s) Pend(30px) Cur(d) More" data-reactid="197"><a class="Py(12px) Td(n) D(b) Fw(b) activeSubNav_C($topNavLinkBlack) activeSubNav_Py(8px) activeSubNav_Bdbw(4px) activeSubNav_Bdbs(s) activeSubNav_Bdbc($dropdownBlue) C($topNavLinkBlack):h Py(8px):h Bdbw(4px):h Bdbs(s):h Bdbc($dropdownBlue):h C($topNavLinkBlack)" data-reactid="198"><span data-reactid="199">Industry News</span><span data-reactid="200"></span></a>
+ <ul class="nav-sub-links Ov(h) Bxsh($navDropdownShadow) M(0) Pos(a) Bgc(#fff)! Z(8)! Bdrs(2px) Pt(10px) Pb(15px) D(n)" data-reactid="201">
+ <li class="Pend(30px)" data-reactid="202"><a href="https://finance.yahoo.com/industries/energy" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="203"><span data-reactid="204">Energy</span></a></li>
+ <li class="Pend(30px)" data-reactid="205"><a href="https://finance.yahoo.com/industries/financial" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="206"><span data-reactid="207">Financial</span></a></li>
+ <li class="Pend(30px)" data-reactid="208"><a href="https://finance.yahoo.com/industries/healthcare" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="209"><span data-reactid="210">Healthcare</span></a></li>
+ <li class="Pend(30px)" data-reactid="211"><a href="https://finance.yahoo.com/industries/business_services" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="212"><span data-reactid="213">Business Services</span></a></li>
+ <li class="Pend(30px)" data-reactid="214"><a href="https://finance.yahoo.com/industries/telecom_utilities" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="215"><span data-reactid="216">Telecom &amp; Utilities</span></a></li>
+ <li class="Pend(30px)" data-reactid="217"><a href="https://finance.yahoo.com/industries/hardware_electronics" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="218"><span data-reactid="219">Computer Hardware &amp; Electronics</span></a></li>
+ <li class="Pend(30px)" data-reactid="220"><a href="https://finance.yahoo.com/industries/software_services" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="221"><span data-reactid="222">Computer Software &amp; Services</span></a></li>
+ <li class="Pend(30px)" data-reactid="223"><a href="https://finance.yahoo.com/industries/industrials" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="224"><span data-reactid="225">Industrials</span></a></li>
+ <li class="Pend(30px)" data-reactid="226"><a href="https://finance.yahoo.com/industries/manufacturing_materials" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="227"><span data-reactid="228">Manufacturing &amp; Materials</span></a></li>
+ <li class="Pend(30px)" data-reactid="229"><a href="https://finance.yahoo.com/industries/consumer_products_media" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="230"><span data-reactid="231">Consumer Products &amp; Media</span></a></li>
+ <li class="Pend(30px)" data-reactid="232"><a href="https://finance.yahoo.com/industries/diversified_business" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="233"><span data-reactid="234">Diversified Business</span></a></li>
+ <li class="Pend(30px)" data-reactid="235"><a href="https://finance.yahoo.com/industries/retailing_hospitality" class="Td(n) Py(12px) D(b) C($topNavLinkBlack) C(#fff):h Bgc($dropdownBlue):h Px(22px) Fw(b) W(100%)" target="_self" data-reactid="236"><span data-reactid="237">Retailing &amp; Hospitality</span></a></li>
+ </ul>
+ </li>
+ <li class="D(ib) Fz(s) Pend(30px) Pos(r)" data-reactid="238">
+ <div class="Pos(a) Bdrs(7px) Bgi($noticeRedGradient) Fz(8px) C(white) Fw(b) Pstart(6px) Pend(5px) Pt(2px) Pb(1.5px) End(16px) T(2px) Lts(0.5px)" data-reactid="239">NEW</div><a href="https://finance.yahoo.com/screener" class="Td(n) Py(12px) D(b) C($topNavLinkBlack):h Pb(8px):h Bdbw(4px):h Bdbs(s):h Bdbc($dropdownBlue):h Fw(b) C($topNavLinkBlack)" target="_self" data-reactid="240"><span data-reactid="241">My Screeners</span></a></li>
+ <li class="Cur(d) D(ib) Fz(s) More" data-reactid="242">
+ <a class="D(b) Pstart(0) Pend(30px) Py(12px) Td(n) Fw(b) activeSubNav_C($topNavLinkBlack) activeSubNav_Py(8px) activeSubNav_Bdbw(4px) activeSubNav_Bdbs(s) activeSubNav_Bdbc($dropdownBlue) C($topNavLinkBlack):h Py(8px):h Bdbw(4px):h Bdbs(s):h Bdbc($dropdownBlue):h C($topNavLinkBlack)" href="https://finance.yahoo.com/portfolios?bypass=true" data-reactid="243">
+ <!-- react-text: 244 -->My Portfolio
+ <!-- /react-text --><span data-reactid="245"></span></a>
+ <ul class="nav-sub-links Ov(h) Bxsh($navDropdownShadow) M(0) Pos(a) Bgc(#fff)! Z(8)! Bdrs(2px) Pt(10px) Pb(15px) D(n)" data-reactid="246">
+ <div class="M(5px)" data-reactid="247"><a class="Bdrs(2px) Td(n) Fz(13px) D(ib) Bxz(bb) Py(0) Px(10px) H(30px) Lh(30px) Bd O(n) O(n):f O(n):h Op(1) Op(0.7):f Op(0.7):h Op(1):di:h Bgc($actionBlue) C(#fff) C(#aaa):di Bdc($actionBlue) Bdc($lightGray):di Bg($lightGray):di W(100%)" href="https://login.yahoo.com/config/login?.src=finance&amp;.intl=us&amp;.done=http%3A%2F%2Ffinance.yahoo.com%2Fnews%2Fbest-psvr-games-170003443.html" title="Sign In" data-reactid="248">Sign In</a></div>
+ </ul>
+ </li>
+ </ul>
+ <div class="D(ib) Fl(end) Mend(20px) Py(12px)" data-reactid="249"><span class="Mend(5px) Fz(xs) Fw(b) D(ib) C($topNavLinkDarkGray)" data-reactid="250"><svg xmlns="http://www.w3.org/2000/svg" class="H(16px) W(16px) Va(m)! Mend(5px) Cur(a)! Fill($topNavLinkDarkGray)! Stk($topNavLinkDarkGray)! Cur(p)" width="48" style="fill:#000;stroke:#000;stroke-width:0;vertical-align:bottom;" height="48" viewBox="0 0 48 48" data-icon="live" data-reactid="251"><path d="M24 20c-2.205 0-4 1.795-4 4s1.795 4 4 4 4-1.795 4-4-1.795-4-4-4M37.12 24.032c0-4.09-1.764-7.896-4.78-10.537-.83-.727-2.094-.644-2.822.187-.727.832-.644 2.095.187 2.823 2.158 1.89 3.416 4.604 3.416 7.527 0 2.932-1.265 5.654-3.434 7.543-.833.726-.92 1.99-.194 2.822.725.833 1.99.92 2.822.194 3.032-2.64 4.807-6.458 4.807-10.558zM45.097 23.982c0-6.996-3.29-13.45-8.77-17.58-.883-.664-2.137-.488-2.802.394-.664.882-.488 2.136.394 2.8 4.487 3.384 7.177 8.66 7.177 14.386 0 5.775-2.736 11.09-7.288 14.468-.89.658-1.074 1.91-.416 2.798.658.887 1.91 1.073 2.797.415 5.56-4.124 8.907-10.625 8.907-17.68zM15 24.032c0-2.923 1.26-5.638 3.416-7.527.83-.728.915-1.99.187-2.823-.727-.83-1.99-.914-2.822-.187-3.015 2.64-4.78 6.448-4.78 10.537 0 4.1 1.776 7.918 4.808 10.56.833.725 2.096.638 2.822-.195.725-.833.638-2.096-.195-2.822-2.17-1.89-3.435-4.61-3.435-7.543zM7 23.982c0-5.726 2.69-11.002 7.178-14.385.882-.665 1.06-1.92.394-2.8-.665-.883-1.92-1.06-2.8-.394C6.29 10.533 3 16.986 3 23.983c0 7.055 3.347 13.556 8.906 17.68.887.658 2.14.472 2.798-.415.658-.887.472-2.14-.415-2.798C9.735 35.073 7 29.757 7 23.982z" data-reactid="252"/></svg><span class="Va(m)" data-reactid="253">U.S. Markets closed</span></span>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="Bgc($bg-content) Cf" data-reactid="254">
+ <div id="YDC-Hero" class="YDC-Hero" data-reactid="255">
+ <div id="YDC-Hero-Stack" class="YDC-Hero-Stack Z(3) Pos(r)" data-reactid="256">
+ <div data-reactid="257">
+ <div id="Hero-0-FinanceHeader-Proxy" data-reactid="258">
+ <div class="Mx(20px)" data-reactid="259">
+ <div class="Whs(nw) D(ib) Bgc(#fff) My(25px) W(100%) Bxz(bb)" id="market-summary" aria-label="Market Summary" data-reactid="260">
+ <div class="Pos(r) Bxz(bb) Mstart(a) Mend(a) Ov(h)" data-reactid="261">
+ <div class="D(ib) Fl(start)" data-reactid="262">
+ <div class="Carousel-Mask Pos(r) Ov(h) market-summary M(0) D(ib) Va(t)" style="width:588px;" data-reactid="263">
+ <ul class="Carousel-Slider Pos(r) Whs(nw)" style="margin-left:0;margin-right:-2px;" data-reactid="264">
+ <li style="width:30.612244897959187%;" class="D(ib) Bxz(bb) Bdc($finLightGray) Mend(16px) BdEnd" data-reactid="265">
+ <div class="Maw(160px) Py(3px)" data-reactid="266">
+ <a target="_blank" class="Fl(end) Mt(25px)" href="https://finance.yahoo.com/chart/%5EGSPC" data-symbol="^GSPC" data-reactid="267">
+ <div width="70" height="25" class="W(100%) D(b) virgo-spark" data-reactid="268"></div>
+ </a><a class="Fz(s) Ell Fw(b) C($actionBlue)" href="https://finance.yahoo.com/quote/%5EGSPC?p=%5EGSPC" title="S&amp;P 500" data-reactid="269">S&amp;P 500</a><br data-reactid="270" /><span class="Fz(s) Mt(4px) Mb(0px) Fw(b) D(ib)" data-reactid="271">2,111.72</span><br data-reactid="272" /><span class="Fz(xs) Fw(b) C($dataRed)" data-reactid="273"><!-- react-text: 274 -->-14.43<!-- /react-text --><!-- react-text: 275 --> (<!-- /react-text --><!-- react-text: 276 -->-0.68%<!-- /react-text --><!-- react-text: 277 -->)<!-- /react-text --></span></div>
+ </li>
+ <li style="width:30.612244897959187%;" class="D(ib) Bxz(bb) Bdc($finLightGray) Mend(16px) BdEnd" data-reactid="278">
+ <div class="Maw(160px) Py(3px)" data-reactid="279">
+ <a target="_blank" class="Fl(end) Mt(25px)" href="https://finance.yahoo.com/chart/%5EDJI" data-symbol="^DJI" data-reactid="280">
+ <div width="70" height="25" class="W(100%) D(b) virgo-spark" data-reactid="281"></div>
+ </a><a class="Fz(s) Ell Fw(b) C($actionBlue)" href="https://finance.yahoo.com/quote/%5EDJI?p=%5EDJI" title="Dow 30" data-reactid="282">Dow 30</a><br data-reactid="283" /><span class="Fz(s) Mt(4px) Mb(0px) Fw(b) D(ib)" data-reactid="284">18,037.10</span><br data-reactid="285" /><span class="Fz(xs) Fw(b) C($dataRed)" data-reactid="286"><!-- react-text: 287 -->-105.32<!-- /react-text --><!-- react-text: 288 --> (<!-- /react-text --><!-- react-text: 289 -->-0.58%<!-- /react-text --><!-- react-text: 290 -->)<!-- /react-text --></span></div>
+ </li>
+ <li style="width:30.612244897959187%;" class="D(ib) Bxz(bb) Bdc($finLightGray) Mend(16px) " data-reactid="291">
+ <div class="Maw(160px) Py(3px)" data-reactid="292">
+ <a target="_blank" class="Fl(end) Mt(25px)" href="https://finance.yahoo.com/chart/%5EIXIC" data-symbol="^IXIC" data-reactid="293">
+ <div width="70" height="25" class="W(100%) D(b) virgo-spark" data-reactid="294"></div>
+ </a><a class="Fz(s) Ell Fw(b) C($actionBlue)" href="https://finance.yahoo.com/quote/%5EIXIC?p=%5EIXIC" title="Nasdaq" data-reactid="295">Nasdaq</a><br data-reactid="296" /><span class="Fz(s) Mt(4px) Mb(0px) Fw(b) D(ib)" data-reactid="297">5,153.58</span><br data-reactid="298" /><span class="Fz(xs) Fw(b) C($dataRed)" data-reactid="299"><!-- react-text: 300 -->-35.56<!-- /react-text --><!-- react-text: 301 --> (<!-- /react-text --><!-- react-text: 302 -->-0.69%<!-- /react-text --><!-- react-text: 303 -->)<!-- /react-text --></span></div>
+ </li>
+ </ul>
+ </div>
+ <div class="D(ib) Z(5) T(0) End(0) nav" data-reactid="304"><button class="market-summary-button P(0) Zoom(1) O(n):f Bgc(#fff) H(60px) W(22px) Bdendc($finLightGray) Bdendw(1px) Bdends(s) Disabled" title="previous" data-reactid="305"><svg xmlns="http://www.w3.org/2000/svg" class="Mstart(-8px) Fill($finLightGray)! Stk($finLightGray)! Cur(p)" width="30" style="fill:#000;stroke:#000;stroke-width:0;vertical-align:bottom;" height="30" viewBox="0 0 48 48" data-icon="caret-left" data-reactid="306"><path d="M16.14 24.102L28.865 36.83c.78.78 2.048.78 2.828 0 .78-.78.78-2.047 0-2.828l-9.9-9.9 9.9-9.9c.78-.78.78-2.047 0-2.827-.78-.78-2.047-.78-2.828 0L16.14 24.102z" data-reactid="307"/></svg></button><button class="market-summary-button P(0) Zoom(1) O(n):f Bgc(#fff) H(60px) W(22px) Bgc($extraLightBlue):h" title="next" data-reactid="308"><svg xmlns="http://www.w3.org/2000/svg" class="Mstart(-6px) Fill($actionBlue)! Stk($actionBlue)! Cur(p)" width="30" style="fill:#000;stroke:#000;stroke-width:0;vertical-align:bottom;" height="30" viewBox="0 0 48 48" data-icon="caret-right" data-reactid="309"><path d="M33.447 24.102L20.72 11.375c-.78-.78-2.048-.78-2.828 0-.78.78-.78 2.047 0 2.828l9.9 9.9-9.9 9.9c-.78.78-.78 2.047 0 2.827.78.78 2.047.78 2.828 0l12.727-12.728z" data-reactid="310"/></svg></button></div>
+ </div>
+ <div class="broker-buttons D(ib) Fl(end) H(60px)" style="width:0;" data-reactid="311">
+ <div style="display:inline-block;" data-reactid="312">
+ <div data-reactid="313">
+ <div id="defaultBTN-sizer" class="darla-container Pos-r Z-0 Pos(r) Ov(a) Z(0)" style="height:0;width:0;" data-reactid="314">
+ <div id="defaultBTN-wrapper" class="Pos-a T-0 B-0 Start-0 End-0 Ov-h Pos(a) T(0) B(0) Start(0) End(0) Ov(h)" data-reactid="315">
+ <div id="defaultdestBTN" style=""></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div style="display:inline-block;" data-reactid="316">
+ <div data-reactid="317">
+ <div id="defaultBTN-1-sizer" class="darla-container Pos-r Z-0 Pos(r) Ov(a) Z(0)" style="height:0;width:0;" data-reactid="318">
+ <div id="defaultBTN-1-wrapper" class="Pos-a T-0 B-0 Start-0 End-0 Ov-h Pos(a) T(0) B(0) Start(0) End(0) Ov(h)" data-reactid="319">
+ <div id="defaultdestBTN-1" style=""></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div style="display:inline-block;" data-reactid="320">
+ <div data-reactid="321">
+ <div id="defaultBTN-2-sizer" class="darla-container Pos-r Z-0 Pos(r) Ov(a) Z(0)" style="height:0;width:0;" data-reactid="322">
+ <div id="defaultBTN-2-wrapper" class="Pos-a T-0 B-0 Start-0 End-0 Ov-h Pos(a) T(0) B(0) Start(0) End(0) Ov(h)" data-reactid="323">
+ <div id="defaultdestBTN-2" style=""></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div style="display:inline-block;" data-reactid="324">
+ <div data-reactid="325">
+ <div id="defaultBTN-3-sizer" class="darla-container Pos-r Z-0 Pos(r) Ov(a) Z(0)" style="height:0;width:0;" data-reactid="326">
+ <div id="defaultBTN-3-wrapper" class="Pos-a T-0 B-0 Start-0 End-0 Ov-h Pos(a) T(0) B(0) Start(0) End(0) Ov(h)" data-reactid="327">
+ <div id="defaultdestBTN-3" style=""></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="Cl(b)" data-reactid="328"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="Hero-1-TDV2BreakingNews-Proxy" data-reactid="329">
+ <div data-reactid="330"></div>
+ </div>
+ <div id="Hero-2-HeroSlideshow-Proxy" data-reactid="331">
+ <!-- react-empty: 332 -->
+ </div>
+ <div id="Hero-3-HeadComponentVideo-Proxy" data-reactid="333">
+ <!-- react-empty: 334 -->
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="W(1/1) Pos(r)" data-reactid="335">
+ <div class="W(2/3)--md W(1/1)--sm W(3/4) Bxz(bb)" data-reactid="336">
+ <div id="YDC-Lead" class="YDC-Lead" data-reactid="337">
+ <div id="YDC-Lead-Stack" class="YDC-Lead-Stack Z(1) Pos(r)" data-reactid="338">
+ <div data-reactid="339">
+ <div id="Lead-0-CommonSlotComposite-Proxy" data-reactid="340">
+ <!-- react-empty: 341 -->
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="YDC-Side" class="YDC-Side Pos(a) Pos(r)--md Pos(r)--sm W(1/1)--sm W(1/4) W(1/1)--md ie-7_Mstart(-310px)" data-reactid="342">
+ <div class="sticky-outer-wrapper" data-reactid="343">
+ <div class="sticky-inner-wrapper" style="position:relative;top:0px;" data-reactid="344">
+ <div id="YDC-Side-Stack" class="YDC-Side-Stack Z(1) Pos(r) Bxz(bb) Fl(end) Fl(n)--sm Fl(n)--md M(a)--sm M(a)--md Maw(340px) Maw(640px)--sm Maw(640px)--md P(20px) Pb(0)--md Pb(0)--sm W(1/1)" data-reactid="345">
+ <div class="M(a) W(a)--sm W(0) W(a)--md" data-reactid="346">
+ <div class="Pos(r) Start(-150px) Start(a)--sm Start(a)--md W(a)--sm W(300px) W(a)--md" data-reactid="347">
+ <div data-reactid="348">
+ <div id="SideTop-0-HeadComponentTitle-Proxy" data-reactid="349">
+ <header id="SideTop-0-HeadComponentTitle" class="canvas-header" data-reactid="350">
+ <h1 class="Lh(36px) Fz(25px)--sm Fz(32px) Mb(17px)--sm Mb(20px) Mb(30px)--lg Ff($ff-primary) Lts($lspacing-md) Fw($fweight) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) Wow(bw)" data-reactid="351">These are the 8 coolest PlayStation VR games</h1>
+ </header>
+ </div>
+ <div id="SideTop-1-OneIdButtons-Proxy" data-reactid="352">
+ <!-- react-empty: 353 -->
+ </div>
+ <div id="SideTop-2-HeadComponentAttribution-Proxy" data-reactid="354">
+ <div id="SideTop-2-HeadComponentAttribution" class="auth-attr W(100%) Mb(12px) Pos(r)" data-reactid="355">
+ <div class="auth-prov-logos D(tbc) Va(t)" data-reactid="356">
+ <div class="provider-logo D(tbc) Mah(45px) Mah(40px)--sm Va(m) Pend(10px)" data-reactid="357">
+ <a href="http://yahoofinancestaff.tumblr.com/" target="_blank" rel="noopener noreferrer" data-reactid="358"><img class="Trsdu(.42s) H(a) Mah(46px) Maw(46px) Mah(40px)--sm Maw(40px)--sm" title="Yahoo Finance" src="http://l4.yimg.com/uu/api/res/1.2/CR1v_hSPghpHrl0a4OKYqQ--/YXBwaWQ9eXRhY2h5b24-/https://media.zenfs.com/creatr-images/GLB/2016-08-26/7ac3a4f0-6bba-11e6-b52d-c59238e28a69_yahoologo.png" data-reactid="359" width="auto" /></a>
+ </div>
+ </div>
+ <div class="auth-prov-soc Fz(14px) Mend(4px) Va(m) D(tbc) Mah(45px) Maw(320px) Mah(40px)--sm" data-reactid="360">
+ <div class="author Mb(4px) Mend(4px) D(ib)" data-reactid="361"><a class="author-link Td(u):h C(#000) Fw(b) Fz(12px) Lh(18px) Mend(3px) Td(n)" href="https://www.yahoo.com/author/ben-silverman" data-reactid="362">Ben Silverman</a>
+ <div class="author-title C(#999) Fw(b) Fz(12px) Mend(3px) Mt(4px) D(n)--sm" data-reactid="363">Games Editor</div>
+ </div>
+ <div class="D(tbc)" data-reactid="364"><span class="provider Mb(4px) Pend(5px)" data-reactid="365"><span class="provider-link Fw(b)" data-reactid="366"><a class="C(#222) Fz(12px)" href="http://yahoofinancestaff.tumblr.com/" target="_blank" rel="noopener noreferrer" data-reactid="367">Yahoo Finance</a></span></span><time class="date D(ib) Fz(11px) Mb(4px)" datetime="2016-10-13T17:00:03.000Z" data-reactid="368">October 13, 2016</time></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="D(ib) D(n)--md D(n)--sm" data-reactid="369">
+ <div id="Navigation" role="navigation" tabindex="-1" data-reactid="370">
+ <div id="Side-0-CanvasShareButtons-Proxy" data-reactid="371">
+ <div class="canvas-share-buttons Bgc(#fff) left-share-buttons" data-reactid="372">
+ <div class="" style="-webkit-user-select:none;cursor:default;-webkit-tap-highlight-color:rgba(0,0,0,0);z-index:2;text-align:center;width:45px;" data-reactid="373"><button data-sharetype="tumblr" data-ylk="elm:share;itc:0;sec:social-sh;outcm:share;rspns:op;slk:Tumblr;cpos:1;subsec:side-left;uuid:80b35014-fba3-377e-adc5-47fb44f61fa7;tar:www.tumblr.com;tar_uri:/widgets/share/tool?posttype=photo&amp;content=http%3A%2F%2Fl3.yimg.com%2Fuu%2Fapi%2Fres%2F1.2%2F4eRCPf9lJt_3q29.outekQ--%2FaD02Njk7dz03NDQ7c209MTthcHBpZD15dGFjaHlvbg--%2Fhttp%3A%2F%2Fmedia.zenfs.com%2Fen%2Fhomerun%2Ffeed_manager_auto_publish_494%2F4406ef57dcb40376c513903b03bef048&amp;url=http%3A%2F%2Ffinance.yahoo.com%2Fnews%2Fbest-psvr-games-170003443.html%3Fsoc_src%3Dsocial-sh%26soc_trk%3Dtu&amp;clickthroughUrl=http%3A%2F%2Ffinance.yahoo.com%2Fnews%2Fbest-psvr-games-170003443.html%3Fsoc_src%3Dsocial-sh%26soc_trk%3Dtu&amp;caption=To%20help%20you%20decide%20what%E2%80%99s%20what%2C%20I%E2%80%99ve%20put%20together%20this%20list%20of%20the%208%20PSVR%20games%20worth%20considering.%20%20Beloved%20cult%20hit%20%E2%80%9CRez%E2%80%9D%20gets%20the%20VR%20treatment%20to%20help%20launch%20the%20PSVR%2C%20and%20the%20results%20are%20terrific.%20%20Chaos%2C%20for%20sure%2C%20and%20also%20%E2%80%9CThumper.%E2%80%9D%20Called%20a%20%E2%80%9Cviolent%20rhythm%20game%E2%80%9D%20by%20its%20creators%2C%20%E2%80%9CThumper%E2%80%9D%20is%2C%20well&amp;tags=" aria-label="Tumblr" style="width:45px;height:45px;margin-right:0px;border-radius:0px;border-width:0px;max-width:58px;min-width:45px;max-height:58px;min-height:45px;background-color:#3c5a77;color:white;border-color:#3c5a77;" class="ButtonNaked D(b) My(0) nofollow O(0) Ov(v) P(0) Pos(r) rapid-noclick-resp Va(b) tumblr react-button" data-reactid="374"><svg xmlns="http://www.w3.org/2000/svg" class="D(b) M(a) Cur(p)" width="20" style="fill:white;stroke:white;stroke-width:0;vertical-align:bottom;" height="20" viewBox="0 0 32 32" data-icon="LogoTumblr" data-reactid="375"><path d="M20.685 25.83c-1.493 0-3.54-.91-3.54-1.516V13.482h6.844V8.735h-6.846V1.6h-3.917c-.1 1.815-.645 3.45-1.482 4.702-.384.573-.827 1.066-1.32 1.45-.794.625-1.71.983-2.682.983h-.605v4.747h3.285V25.2c0 4.428 3.973 5.218 6.71 5.2.62-.007 1.18 0 1.785 0 4.18 0 4.98-.387 5.944-.9v-5.077c-.006.003-.013.013-.02.016-1.205.773-2.668 1.39-4.157 1.39z" data-reactid="376"/></svg><div class="share-info-wrapper Pos(a) W(a) Py(0) Whs(nw) Cur(p) Lh(1) D(n) Px(4px)" style="background:#f2f2f2;height:45px;min-width:50px;left:45px;top:0px;" data-reactid="377"><span class="Pos(r) Fw(b) Ff(ss) Lh(1) Lts(.02em) Fw(n) Fz(14px) Fz(12px)! T(11px)! End(9px) C(#188fff)!:h D(n)--modalFloatingCloseBtn" style="color:#3c5a77;top:14px;" data-reactid="378">Reblog</span></div></button><button data-sharetype="facebook" data-ylk="elm:share;itc:0;sec:social-sh;outcm:share;rspns:op;slk:Facebook;cpos:2;subsec:side-left;uuid:80b35014-fba3-377e-adc5-47fb44f61fa7;tar:www.facebook.com;tar_uri:/dialog/feed?app_id=90376669494&amp;link=http%3A%2F%2Ffinance.yahoo.com%2Fnews%2Fbest-psvr-games-170003443.html%3Fsoc_src%3Dsocial-sh%26soc_trk%3Dfb&amp;name=These%20are%20the%208%20coolest%20PlayStation%20VR%20games&amp;description=To%20help%20you%20decide%20what%E2%80%99s%20what%2C%20I%E2%80%99ve%20put%20together%20this%20list%20of%20the%208%20PSVR%20games%20worth%20considering.%20%20Beloved%20cult%20hit%20%E2%80%9CRez%E2%80%9D%20gets%20the%20VR%20treatment%20to%20help%20launch%20the%20PSVR%2C%20and%20the%20results%20are%20terrific.%20%20Chaos%2C%20for%20sure%2C%20and%20also%20%E2%80%9CThumper.%E2%80%9D%20Called%20a%20%E2%80%9Cviolent%20rhythm%20game%E2%80%9D%20by%20its%20creators%2C%20%E2%80%9CThumper%E2%80%9D%20is%2C%20well&amp;picture=http%3A%2F%2Fl3.yimg.com%2Fuu%2Fapi%2Fres%2F1.2%2F4eRCPf9lJt_3q29.outekQ--%2FaD02Njk7dz03NDQ7c209MTthcHBpZD15dGFjaHlvbg--%2Fhttp%3A%2F%2Fmedia.zenfs.com%2Fen%2Fhomerun%2Ffeed_manager_auto_publish_494%2F4406ef57dcb40376c513903b03bef048&amp;redirect_uri=https%3A%2F%2Fwww.yahoo.com%2Fnews%2Fmediacontentsharebuttons%2Fpostshare%2F&amp;display=popup&amp;show_error=yes" aria-label="Facebook" style="width:45px;height:45px;margin-right:0px;border-radius:0px;border-width:0px;max-width:58px;min-width:45px;max-height:58px;min-height:45px;background-color:#4761a6;color:white;border-color:#4761a6;" class="ButtonNaked D(b) My(0) nofollow O(0) Ov(v) P(0) Pos(r) rapid-noclick-resp Va(b) facebook react-button" data-reactid="379"><svg xmlns="http://www.w3.org/2000/svg" class="D(b) M(a) Cur(p)" width="20" style="fill:white;stroke:white;stroke-width:0;vertical-align:bottom;" height="20" viewBox="0 0 32 32" data-icon="LogoFacebook" data-reactid="380"><path d="M12.752 30.4V16.888H9.365V12.02h3.387V7.865c0-3.264 2.002-6.264 6.613-6.264 1.866 0 3.248.19 3.248.19l-.11 4.54s-1.404-.013-2.943-.013c-1.66 0-1.93.81-1.93 2.152v3.553h5.008l-.22 4.867h-4.786V30.4h-4.88z" data-reactid="381"/></svg><div class="share-info-wrapper Pos(a) W(a) Py(0) Whs(nw) Cur(p) Lh(1) D(n) Px(4px)" style="background:#f2f2f2;height:45px;min-width:50px;left:45px;top:0px;" data-reactid="382"><span class="Pos(r) Fw(b) Ff(ss) Lh(1) Lts(.02em) Fw(n) Fz(14px) Fz(12px)! T(11px)! End(9px) C(#188fff)!:h D(n)--modalFloatingCloseBtn" style="color:#4761a6;top:14px;" data-reactid="383">Share</span></div></button><button data-sharetype="twitter" data-ylk="elm:share;itc:0;sec:social-sh;outcm:share;rspns:op;slk:Twitter;cpos:3;subsec:side-left;uuid:80b35014-fba3-377e-adc5-47fb44f61fa7;tar:twitter.com;tar_uri:/intent/tweet?text=These%20are%20the%208%20coolest%20PlayStation%20VR%20games&amp;url=http%3A%2F%2Ffinance.yahoo.com%2Fnews%2Fbest-psvr-games-170003443.html%3Fsoc_src%3Dsocial-sh%26soc_trk%3Dtw&amp;via=YahooFinance" aria-label="Twitter" style="width:45px;height:45px;margin-right:0px;border-radius:0px;border-width:0px;max-width:58px;min-width:45px;max-height:58px;min-height:45px;background-color:#00aceb;color:white;border-color:#00aceb;" class="ButtonNaked D(b) My(0) nofollow O(0) Ov(v) P(0) Pos(r) rapid-noclick-resp Va(b) twitter react-button" data-reactid="384"><svg xmlns="http://www.w3.org/2000/svg" class="D(b) M(a) Cur(p)" width="20" style="fill:white;stroke:white;stroke-width:0;vertical-align:bottom;" height="20" viewBox="0 0 32 32" data-icon="LogoTwitter" data-reactid="385"><path d="M30.402 7.094c-1.058.47-2.198.782-3.392.928 1.218-.725 2.154-1.885 2.595-3.256-1.134.674-2.405 1.165-3.75 1.43-1.077-1.148-2.612-1.862-4.31-1.862-3.268 0-5.915 2.635-5.915 5.893 0 .464.056.91.155 1.34-4.915-.244-9.266-2.59-12.18-6.158-.51.87-.806 1.885-.806 2.96 0 2.044 1.045 3.847 2.633 4.905-.974-.032-1.883-.3-2.68-.736v.07c0 2.857 2.034 5.236 4.742 5.773-.498.138-1.022.21-1.56.21-.38 0-.75-.034-1.11-.103.75 2.344 2.93 4.042 5.518 4.09-2.024 1.58-4.57 2.523-7.333 2.523-.478 0-.952-.032-1.41-.085 2.613 1.674 5.72 2.65 9.054 2.65 10.872 0 16.814-8.976 16.814-16.765 0-.254-.008-.507-.018-.762 1.155-.83 2.155-1.868 2.95-3.047z" data-reactid="386"/></svg><div class="share-info-wrapper Pos(a) W(a) Py(0) Whs(nw) Cur(p) Lh(1) D(n) Px(4px)" style="background:#f2f2f2;height:45px;min-width:50px;left:45px;top:0px;" data-reactid="387"><span class="Pos(r) Fw(b) Ff(ss) Lh(1) Lts(.02em) Fw(n) Fz(14px) Fz(12px)! T(11px)! End(9px) C(#188fff)!:h D(n)--modalFloatingCloseBtn" style="color:#00aceb;top:14px;" data-reactid="388">Tweet</span></div></button><button data-sharetype="pinterest" data-ylk="elm:share;itc:0;sec:social-sh;outcm:share;rspns:op;slk:Pinterest;cpos:4;subsec:side-left;uuid:80b35014-fba3-377e-adc5-47fb44f61fa7;tar:pinterest.com;tar_uri:/pin/create/button/?url=http%3A%2F%2Ffinance.yahoo.com%2Fnews%2Fbest-psvr-games-170003443.html%3Fsoc_src%3Dsocial-sh%26soc_trk%3Dpi&amp;description=To%20help%20you%20decide%20what%E2%80%99s%20what%2C%20I%E2%80%99ve%20put%20together%20this%20list%20of%20the%208%20PSVR%20games%20worth%20considering.%20%20Beloved%20cult%20hit%20%E2%80%9CRez%E2%80%9D%20gets%20the%20VR%20treatment%20to%20help%20launch%20the%20PSVR%2C%20and%20the%20results%20are%20terrific.%20%20Chaos%2C%20for%20sure%2C%20and%20also%20%E2%80%9CThumper.%E2%80%9D%20Called%20a%20%E2%80%9Cviolent%20rhythm%20game%E2%80%9D%20by%20its%20creators%2C%20%E2%80%9CThumper%E2%80%9D%20is%2C%20well&amp;media=http%3A%2F%2Fl3.yimg.com%2Fuu%2Fapi%2Fres%2F1.2%2F4eRCPf9lJt_3q29.outekQ--%2FaD02Njk7dz03NDQ7c209MTthcHBpZD15dGFjaHlvbg--%2Fhttp%3A%2F%2Fmedia.zenfs.com%2Fen%2Fhomerun%2Ffeed_manager_auto_publish_494%2F4406ef57dcb40376c513903b03bef048" aria-label="Pinterest" style="width:45px;height:45px;margin-right:0px;border-radius:0px;border-width:0px;max-width:58px;min-width:45px;max-height:58px;min-height:45px;background-color:#cc2127;color:white;border-color:#cc2127;" class="ButtonNaked D(b) My(0) nofollow O(0) Ov(v) P(0) Pos(r) rapid-noclick-resp Va(b) pinterest react-button" data-reactid="389"><svg xmlns="http://www.w3.org/2000/svg" class="D(b) M(a) Cur(p)" width="20" style="fill:white;stroke:white;stroke-width:0;vertical-align:bottom;" height="20" viewBox="0 0 32 32" data-icon="LogoPinterest" data-reactid="390"><path d="M16 1.598c-7.952 0-14.4 6.448-14.4 14.4 0 5.896 3.546 10.962 8.62 13.19-.04-1.006-.007-2.212.25-3.307l1.853-7.844s-.46-.92-.46-2.28c0-2.133 1.236-3.728 2.778-3.728 1.31 0 1.943.982 1.943 2.163 0 1.318-.84 3.286-1.272 5.11-.36 1.527.767 2.772 2.273 2.772 2.73 0 4.566-3.502 4.566-7.656 0-3.157-2.127-5.52-5.993-5.52-4.37 0-7.09 3.258-7.09 6.898 0 1.256.37 2.136.95 2.824.265.317.303.442.207.802-.07.267-.23.902-.294 1.158-.096.366-.39.498-.72.36-2.01-.82-2.95-3.024-2.95-5.5 0-4.09 3.45-8.996 10.293-8.996 5.5 0 9.115 3.98 9.115 8.25 0 5.65-3.14 9.872-7.77 9.872-1.555 0-3.016-.843-3.517-1.798 0 0-.836 3.317-1.013 3.962-.304 1.107-.902 2.22-1.45 3.085 1.294.378 2.666.587 4.082.587 7.95 0 14.4-6.45 14.4-14.402s-6.45-14.4-14.4-14.4z" data-reactid="391"/></svg><div class="share-info-wrapper Pos(a) W(a) Py(0) Whs(nw) Cur(p) Lh(1) D(n) Px(4px)" style="background:#f2f2f2;height:45px;min-width:50px;left:45px;top:0px;" data-reactid="392"><span class="Pos(r) Fw(b) Ff(ss) Lh(1) Lts(.02em) Fw(n) Fz(14px) Fz(12px)! T(11px)! End(9px) C(#188fff)!:h D(n)--modalFloatingCloseBtn" style="color:#cc2127;top:14px;" data-reactid="393">Pin it</span></div></button><button data-sharetype="mtf" data-ylk="elm:share;itc:0;sec:social-sh;outcm:share;rspns:op;slk:Email;cpos:5;subsec:side-left;uuid:80b35014-fba3-377e-adc5-47fb44f61fa7;tar:www.yahoo.com;tar_uri:/mtfpopup?redirect=http%3A%2F%2Fwww.yahoo.com%2Fmtfpopup&amp;url=http%3A%2F%2Ffinance.yahoo.com%2Fnews%2Fbest-psvr-games-170003443.html%3Fsoc_src%3Dsocial-sh%26soc_trk%3Dma&amp;locale=en-US&amp;lang=en-US&amp;region=US&amp;site=finance&amp;uuid=80b35014-fba3-377e-adc5-47fb44f61fa7&amp;alias=ymedia-alias%3Astory%3Dbest-psvr-games-170003443" aria-label="Email" style="width:45px;height:45px;margin-right:0px;border-radius:0px;border-width:0px;max-width:58px;min-width:45px;max-height:58px;min-height:45px;background-color:#400090;color:white;border-color:#400090;" class="ButtonNaked D(b) My(0) nofollow O(0) Ov(v) P(0) Pos(r) rapid-noclick-resp Va(b) mail react-button" data-reactid="394"><svg xmlns="http://www.w3.org/2000/svg" class="D(b) M(a) Cur(p)" width="20" style="fill:white;stroke:white;stroke-width:0;vertical-align:bottom;" height="20" viewBox="0 0 32 32" data-icon="PropertyMail" data-reactid="395"><path d="M16.014 18.806L1.6 7.36v18.722l28.8-.006V7.36L16.014 18.808zM30.4 5.92H1.6L16 17.44 30.4 5.92z" data-reactid="396"/></svg><div class="share-info-wrapper Pos(a) W(a) Py(0) Whs(nw) Cur(p) Lh(1) D(n) Px(4px)" style="background:#f2f2f2;height:45px;min-width:50px;left:45px;top:0px;" data-reactid="397"><span class="Pos(r) Fw(b) Ff(ss) Lh(1) Lts(.02em) Fw(n) Fz(14px) Fz(12px)! T(11px)! End(9px) C(#188fff)!:h D(n)--modalFloatingCloseBtn" style="color:#400090;top:14px;" data-reactid="398">Share</span></div></button></div>
+ </div>
+ </div>
+ <div id="Side-1-CommonSlotComposite-Proxy" data-reactid="399">
+ <!-- react-empty: 400 -->
+ </div>
+ <div id="Side-2-Empty-Proxy" data-reactid="401">
+ <!-- react-empty: 402 -->
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="YDC-Col1" class="YDC-Col1 Bxz(bb) Mstart(0)--sm Mstart(0)--md Mstart(33.3%) P(20px) W(1/1)--sm W(1/1)--md ie-7_W(45%)" data-reactid="403">
+ <div id="YDC-Col1-Stack" class="YDC-Col1-Stack Pos(r) M(a) Maw(600px) Maw(800px)--lg Mih(650px) Mih(0)--sm" data-reactid="404">
+ <div id="Main" role="content" tabindex="-1" data-reactid="405">
+ <div id="Col1-0-ContentCanvas-Proxy" data-reactid="406">
+ <div id="Col1-0-ContentCanvas" class="content-canvas Bgc(#fff) Pos(r) P(20px)--sm Pt(17px)--sm" data-reactid="407">
+ <article data-uuid="80b35014-fba3-377e-adc5-47fb44f61fa7" data-type="story" data-reactid="408">
+ <figure class="canvas-image Mx(a) canvas-atom Mt(0px) Mt(20px)--sm Mb(24px) Mb(22px)--sm" style="max-width:100%;" data-type="image" data-reactid="409">
+ <div style="padding-bottom:89.9%;" class="Maw(100%) Pos(r) H(0)" data-reactid="410"><img alt="The PlayStation VR" class="Trsdu(.42s) StretchedBox W(100%) H(100%) ie-7_H(a)" src="http://l1.yimg.com/ny/api/res/1.2/589noY9BZNdmsUUQf6L1AQ--/YXBwaWQ9aGlnaGxhbmRlcjtzbT0xO3c9NzQ0O2g9NjY5/http://media.zenfs.com/en/homerun/feed_manager_auto_publish_494/4406ef57dcb40376c513903b03bef048" data-reactid="411" /><noscript data-reactid="412"><img alt="The PlayStation VR" class="StretchedBox W(100%) H(100%) ie-7_H(a)" src="http://l1.yimg.com/ny/api/res/1.2/589noY9BZNdmsUUQf6L1AQ--/YXBwaWQ9aGlnaGxhbmRlcjtzbT0xO3c9NzQ0O2g9NjY5/http://media.zenfs.com/en/homerun/feed_manager_auto_publish_494/4406ef57dcb40376c513903b03bef048" /></noscript></div>
+ <div class="Ov(h) Pos(r) Mah(80px)" data-reactid="413">
+ <figcaption class="C(#787d82) Fz(13px) Py(5px) Lh(1.5)" title="Sony’s PlayStation VR." data-reactid="414">
+ <div class="figure-caption" data-reactid="415">Sony’s PlayStation VR.</div>
+ </figcaption><button class="C(#157cfb) Cur(p) W(100%) T(63px) Bgc(#fff) Ta(start) Fz(13px) P(0) Bd(0) O(0) Lh(1.5) Pos(a)" data-reactid="416"><span data-reactid="417">More</span></button></div>
+ </figure>
+ <div class="canvas-body C(#26282a) Wow(bw) Cl(start) Mb(20px) Fz(15px) Lh(1.6) Ff($ff-secondary)" data-reactid="418">
+ <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text" style="letter-spacing:.01em;" data-reactid="419">Virtual reality has officially reached the consoles. And it’s pretty good! <a href="http://finance.yahoo.com/news/review-playstation-vr-is-comfortable-and-affordable-but-lacks-must-have-games-165053851.html">Sony’s PlayStation VR</a> is extremely comfortable and reasonably priced, and while it’s lacking killer apps, it’s loaded with lots of interesting ones.</p>
+ <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text" style="letter-spacing:.01em;" data-reactid="420">But which ones should you buy? I’ve played just about every launch game, and while some are worth your time, others you might want to skip. To help you decide what’s what, I’ve put together this list of the eight PSVR games worth considering.</p>
+ <h3 class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text" style="letter-spacing:.01em;" data-reactid="421"><a href="https://www.playstation.com/en-us/games/rez-infinite-ps4/" rel="nofollow noopener noreferrer" target="_blank">“Rez Infinite” ($30)</a></h3>
+ <div class="iframe-wrapper Pos(r) My(20px) canvas-atom Mt(14px)--sm Mb(0)--sm" style="padding-bottom:56.3%;" data-reactid="422"><iframe class="canvas-video-iframe Bdw(0) StretchedBox W(100%) H(100%)" data-type="videoIframe" src="https://www.youtube.com/embed/YlDxEOwj5j8" data-reactid="423"></iframe></div>
+ <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text" style="letter-spacing:.01em;" data-reactid="424">Beloved cult hit “Rez” gets the VR treatment to help launch the PSVR, and the results are terrific. It includes a fully remastered take on the original “Rez” – you zoom through a Matrix-like computer system, shooting down enemies to the steady beat of thumping electronica – but the VR setting makes it incredibly immersive. It gets better the more you play it, too; unlock the amazing Area X mode and you’ll find yourself flying, shooting and bobbing your head to some of the trippiest visuals yet seen in VR.</p>
+ <h3 class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text" style="letter-spacing:.01em;" data-reactid="425"><a href="https://www.playstation.com/en-us/games/thumper-ps4/" rel="nofollow noopener noreferrer" target="_blank">“Thumper” ($20)</a></h3>
+ <div class="iframe-wrapper Pos(r) My(20px) canvas-atom Mt(14px)--sm Mb(0)--sm" style="padding-bottom:56.3%;" data-reactid="426"><iframe class="canvas-video-iframe Bdw(0) StretchedBox W(100%) H(100%)" data-type="videoIframe" src="https://www.youtube.com/embed/gtPGX8i1Eaw" data-reactid="427"></iframe></div>
+ <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text" style="letter-spacing:.01em;" data-reactid="428">What would happen if Tron, the board game Simon, a Clown beetle, Cthulhu and a noise band met in VR? Chaos, for sure, and also “Thumper.” Called a “violent rhythm game” by its creators, “Thumper” is, well, a violent rhythm game that’s also a gorgeous, unsettling and totally captivating assault on the senses. With simple controls and a straightforward premise – click the X button and the analog stick in time with the music as you barrel down a neon highway — it’s one of the rare games that works equally well both in and out of VR. But since you have PSVR, play it there. It’s marvelous.</p>
+ <h3 class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text" style="letter-spacing:.01em;" data-reactid="429"><a href="https://www.playstation.com/en-us/games/until-dawn-rush-of-blood-ps4/" rel="nofollow noopener noreferrer" target="_blank">“Until Dawn: Rush of Blood” ($20)</a></h3>
+ <div class="iframe-wrapper Pos(r) My(20px) canvas-atom Mt(14px)--sm Mb(0)--sm" style="padding-bottom:56.3%;" data-reactid="430"><iframe class="canvas-video-iframe Bdw(0) StretchedBox W(100%) H(100%)" data-type="videoIframe" src="https://www.youtube.com/embed/EL3svUfC8Ds" data-reactid="431"></iframe></div>
+ <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text" style="letter-spacing:.01em;" data-reactid="432">Cheeky horror game “Until Dawn” was a breakout hit for the PS4 last year, channeling the classic “dumb teens in the woods” horror trope into an effective interactive drama. Well, forget all that if you fire up “Rush of Blood,” because this one sticks you front and center on a rollercoaster ride from Hell. Literally. You ride through a dimly-lit carnival of terror, dual-wielding pistols as you take down targets, hideous pig monsters and, naturally, maniac clowns. Be warned: If the bad guys don’t get you, the jump scares will.</p>
+ <h3 class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text" style="letter-spacing:.01em;" data-reactid="433"><a href="https://www.playstation.com/en-us/games/headmaster-ps4/" rel="nofollow noopener noreferrer" target="_blank">“Headmaster” ($20)</a></h3>
+ <div class="iframe-wrapper Pos(r) My(20px) canvas-atom Mt(14px)--sm Mb(0)--sm" style="padding-bottom:56.3%;" data-reactid="434"><iframe class="canvas-video-iframe Bdw(0) StretchedBox W(100%) H(100%)" data-type="videoIframe" src="https://www.youtube.com/embed/a7CSMKw1E7g" data-reactid="435"></iframe></div>
+ <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text" style="letter-spacing:.01em;" data-reactid="436">Soccer meets “Portal” in the weird (and weirdly fun) “Headmaster,” a game about heading soccer balls into nets, targets and a variety of other things while stuck in some diabolical training facility. While at first it seems a little basic, increasingly challenging shots and a consistently entertaining narrative keep it from running off the pitch. Funny, ridiculous and as easy as literally moving your head back and forth, it’s a pleasant PSVR surprise.</p>
+ <h3 class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text" style="letter-spacing:.01em;" data-reactid="437"><a href="https://www.playstation.com/en-us/games/rigs-mechanized-combat-league-ps4/" rel="nofollow noopener noreferrer" target="_blank">“RIGS: Mechanized Combat League” ($50)</a></h3>
+ <div class="iframe-wrapper Pos(r) My(20px) canvas-atom Mt(14px)--sm Mb(0)--sm" style="padding-bottom:56.3%;" data-reactid="438"><iframe class="canvas-video-iframe Bdw(0) StretchedBox W(100%) H(100%)" data-type="videoIframe" src="https://www.youtube.com/embed/Rnqlf9EQ2zA" data-reactid="439"></iframe></div>
+ <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text" style="letter-spacing:.01em;" data-reactid="440">Giant mechs + sports? That’s the gist of this robotic blast-a-thon, which pits two teams of three against one another in gorgeous, explosive and downright fun VR combat. At its best, “RIGS” marries the thrill of fast-paced competitive shooters with the insanity of piloting a giant mech in VR. It can, however, be one of the barfier PSVR games. So pack your Dramamine, you’re going to have to ease yourself into this one.</p>
+ <h3 class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text" style="letter-spacing:.01em;" data-reactid="441"><a href="https://www.playstation.com/en-us/games/batman-arkham-vr-ps4/" rel="nofollow noopener noreferrer" target="_blank">“Batman Arkham VR” ($20)</a></h3>
+ <div class="iframe-wrapper Pos(r) My(20px) canvas-atom Mt(14px)--sm Mb(0)--sm" style="padding-bottom:56.3%;" data-reactid="442"><iframe class="canvas-video-iframe Bdw(0) StretchedBox W(100%) H(100%)" data-type="videoIframe" src="https://www.youtube.com/embed/eS4g0py16N8" data-reactid="443"></iframe></div>
+ <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text" style="letter-spacing:.01em;" data-reactid="444">“I’m Batman,” you will say. And you’ll actually be right this time, because you are Batman in this detective yarn, and you know this because you actually grab the famous cowl and mask, stick it on your head, and stare into the mirrored reflection of Rocksteady Games’ impressive Dark Knight character model. It lacks the action of its fellow “Arkham” games and runs disappointingly short, but it’s a high-quality experience that really shows off how powerfully immersive VR can be.</p>
+ <h3 class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text" style="letter-spacing:.01em;" data-reactid="445"><a href="https://www.playstation.com/en-us/games/job-simulator-the-2050-archives-ps4/" rel="nofollow noopener noreferrer" target="_blank">“Job Simulator” ($30)</a></h3>
+ <div class="iframe-wrapper Pos(r) My(20px) canvas-atom Mt(14px)--sm Mb(0)--sm" style="padding-bottom:56.3%;" data-reactid="446"><iframe class="canvas-video-iframe Bdw(0) StretchedBox W(100%) H(100%)" data-type="videoIframe" src="https://www.youtube.com/embed/3-iMlQIGH8Y" data-reactid="447"></iframe></div>
+ <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text" style="letter-spacing:.01em;" data-reactid="448">There are a number of good VR ports in the PSVR launch lineup, but the HTC Vive launch game “Job Simulator” might be the best. Your task? Lots of tasks, actually, from cooking food to fixing cars to working in an office, all for robots, because did I mention you were in the future? Infinitely charming and surprisingly challenging, it’s a great showpiece for VR.</p>
+ <h3 class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text" style="letter-spacing:.01em;" data-reactid="449"><a href="https://www.playstation.com/en-us/games/eve-valkyrie-ps4/" rel="nofollow noopener noreferrer" target="_blank">“Eve Valkyrie” ($60)</a></h3>
+ <div class="iframe-wrapper Pos(r) My(20px) canvas-atom Mt(14px)--sm Mb(0)--sm" style="padding-bottom:56.3%;" data-reactid="450"><iframe class="canvas-video-iframe Bdw(0) StretchedBox W(100%) H(100%)" data-type="videoIframe" src="https://www.youtube.com/embed/0KFHw12CTbo" data-reactid="451"></iframe></div>
+ <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text" style="letter-spacing:.01em;" data-reactid="452">Already a hit on the Oculus Rift, this space dogfighting game was one of the first to really show off how VR can turn a traditional game experience into something special. It’s pricey and not quite as hi-res as the Rift version, but “Eve Valkyrie” does an admirable job filling the void left since “Battlestar Galactica” ended. Too bad there aren’t any Cylons in it (or are there?)</p>
+ <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text" style="letter-spacing:.01em;" data-reactid="453"><em><strong>More games news:</strong></em></p>
+ <ul class="canvas-list Pstart(40px) Mt(1.5em) Mb(1.5em) List(d)" data-type="list" data-reactid="454">
+ <li data-reactid="455"><a href="https://www.yahoo.com/tech/skylanders-imaginators-will-let-you-create-and-3d-print-your-own-action-figure-143838550.html">‘Skylanders Imaginators’ will let you create and 3D print your own action figures</a></li>
+ <li data-reactid="456"><a href="https://www.yahoo.com/tech/review-high-flying-nba-2k17-has-a-career-year-184135248.html">Review: High-flying ‘NBA 2K17’ has a career year</a></li>
+ <li data-reactid="457"><a href="https://www.yahoo.com/tech/review-race-at-your-own-speed-in-big-beautiful-forza-horizon-3-195337170.html">Review: Race at your own speed in big, beautiful ‘Forza Horizon 3’</a></li>
+ <li data-reactid="458"><a href="https://www.yahoo.com/tech/sonys-playstation-4-pro-shows-promise-potential-161304037.html">Sony’s PlayStation 4 Pro shows promise, potential and plenty of pretty lighting</a></li>
+ <li data-reactid="459"><a href="https://www.yahoo.com/tech/review-madden-nfl-17-runs-000000394.html">Review: ‘Madden NFL 17’ runs hard, plays it safe</a></li>
+ </ul>
+ <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text" style="letter-spacing:.01em;" data-reactid="460"><i>Ben Silverman is on Twitter at</i>
+ <a href="https://twitter.com/ben_silverman" target="_blank" rel="nofollow noopener noreferrer"> <i>ben_silverman</i></a><i>.</i></p>
+ <div data-reactid="461"></div>
+ </div>
+ </article><span class="canvas-bottom-anchor-80b35014-fba3-377e-adc5-47fb44f61fa7" aria-hidden="true" data-reactid="462"></span></div>
+ </div>
+ <div id="Col1-1-IFrame-Proxy" data-reactid="463"><iframe src="//www.bankrate.com/widgets/yho/rate-table-story.aspx" class="H(440px) W(100%) Bd(0)" scrolling="no" id="Col1-1-IFrame" data-reactid="464"></iframe></div>
+ <div id="Col1-2-CanvasShareButtons-Proxy" data-reactid="465">
+ <div class="canvas-share-buttons Bgc(#fff) bottom-share-buttons Pb(35px) Pt(20px)" data-reactid="466">
+ <div class="" style="-webkit-user-select:none;cursor:default;-webkit-tap-highlight-color:rgba(0,0,0,0);z-index:2;text-align:center;white-space:nowrap;" data-reactid="467"><button data-sharetype="tumblr" data-ylk="elm:share;itc:0;sec:social-sh;outcm:share;rspns:op;slk:Tumblr;cpos:1;uuid:80b35014-fba3-377e-adc5-47fb44f61fa7;tar:www.tumblr.com;tar_uri:/widgets/share/tool?posttype=photo&amp;content=http%3A%2F%2Fl3.yimg.com%2Fuu%2Fapi%2Fres%2F1.2%2F4eRCPf9lJt_3q29.outekQ--%2FaD02Njk7dz03NDQ7c209MTthcHBpZD15dGFjaHlvbg--%2Fhttp%3A%2F%2Fmedia.zenfs.com%2Fen%2Fhomerun%2Ffeed_manager_auto_publish_494%2F4406ef57dcb40376c513903b03bef048&amp;url=http%3A%2F%2Ffinance.yahoo.com%2Fnews%2Fbest-psvr-games-170003443.html%3Fsoc_src%3Dsocial-sh%26soc_trk%3Dtu&amp;clickthroughUrl=http%3A%2F%2Ffinance.yahoo.com%2Fnews%2Fbest-psvr-games-170003443.html%3Fsoc_src%3Dsocial-sh%26soc_trk%3Dtu&amp;caption=To%20help%20you%20decide%20what%E2%80%99s%20what%2C%20I%E2%80%99ve%20put%20together%20this%20list%20of%20the%208%20PSVR%20games%20worth%20considering.%20%20Beloved%20cult%20hit%20%E2%80%9CRez%E2%80%9D%20gets%20the%20VR%20treatment%20to%20help%20launch%20the%20PSVR%2C%20and%20the%20results%20are%20terrific.%20%20Chaos%2C%20for%20sure%2C%20and%20also%20%E2%80%9CThumper.%E2%80%9D%20Called%20a%20%E2%80%9Cviolent%20rhythm%20game%E2%80%9D%20by%20its%20creators%2C%20%E2%80%9CThumper%E2%80%9D%20is%2C%20well&amp;tags=" aria-label="Tumblr" style="width:58px;height:58px;margin-right:0px;border-radius:0px;border-width:0px;max-width:58px;min-width:45px;max-height:58px;min-height:45px;background-color:#3c5a77;color:white;border-color:#3c5a77;" class="ButtonNaked D(ib) My(0) nofollow O(0) Ov(v) P(0) Pos(r) rapid-noclick-resp Va(b) tumblr react-button" data-reactid="468"><svg xmlns="http://www.w3.org/2000/svg" class="D(b) M(a) Cur(p)" width="20" style="fill:white;stroke:white;stroke-width:0;vertical-align:bottom;" height="20" viewBox="0 0 32 32" data-icon="LogoTumblr" data-reactid="469"><path d="M20.685 25.83c-1.493 0-3.54-.91-3.54-1.516V13.482h6.844V8.735h-6.846V1.6h-3.917c-.1 1.815-.645 3.45-1.482 4.702-.384.573-.827 1.066-1.32 1.45-.794.625-1.71.983-2.682.983h-.605v4.747h3.285V25.2c0 4.428 3.973 5.218 6.71 5.2.62-.007 1.18 0 1.785 0 4.18 0 4.98-.387 5.944-.9v-5.077c-.006.003-.013.013-.02.016-1.205.773-2.668 1.39-4.157 1.39z" data-reactid="470"/></svg><div class="share-info-wrapper Pos(a) W(a) Py(0) Whs(nw) Cur(p) Lh(1) D(n) Px(4px)" style="background:#f2f2f2;height:45px;min-width:50px;top:-45px;left:0px;" data-reactid="471"><span class="Pos(r) Fw(b) Ff(ss) Lh(1) Lts(.02em) Fw(n) Fz(14px) Fz(12px)! T(11px)! End(9px) C(#188fff)!:h D(n)--modalFloatingCloseBtn" style="color:#3c5a77;top:14px;" data-reactid="472">Reblog</span></div></button><button data-sharetype="facebook" data-ylk="elm:share;itc:0;sec:social-sh;outcm:share;rspns:op;slk:Facebook;cpos:2;uuid:80b35014-fba3-377e-adc5-47fb44f61fa7;tar:www.facebook.com;tar_uri:/dialog/feed?app_id=90376669494&amp;link=http%3A%2F%2Ffinance.yahoo.com%2Fnews%2Fbest-psvr-games-170003443.html%3Fsoc_src%3Dsocial-sh%26soc_trk%3Dfb&amp;name=These%20are%20the%208%20coolest%20PlayStation%20VR%20games&amp;description=To%20help%20you%20decide%20what%E2%80%99s%20what%2C%20I%E2%80%99ve%20put%20together%20this%20list%20of%20the%208%20PSVR%20games%20worth%20considering.%20%20Beloved%20cult%20hit%20%E2%80%9CRez%E2%80%9D%20gets%20the%20VR%20treatment%20to%20help%20launch%20the%20PSVR%2C%20and%20the%20results%20are%20terrific.%20%20Chaos%2C%20for%20sure%2C%20and%20also%20%E2%80%9CThumper.%E2%80%9D%20Called%20a%20%E2%80%9Cviolent%20rhythm%20game%E2%80%9D%20by%20its%20creators%2C%20%E2%80%9CThumper%E2%80%9D%20is%2C%20well&amp;picture=http%3A%2F%2Fl3.yimg.com%2Fuu%2Fapi%2Fres%2F1.2%2F4eRCPf9lJt_3q29.outekQ--%2FaD02Njk7dz03NDQ7c209MTthcHBpZD15dGFjaHlvbg--%2Fhttp%3A%2F%2Fmedia.zenfs.com%2Fen%2Fhomerun%2Ffeed_manager_auto_publish_494%2F4406ef57dcb40376c513903b03bef048&amp;redirect_uri=https%3A%2F%2Fwww.yahoo.com%2Fnews%2Fmediacontentsharebuttons%2Fpostshare%2F&amp;display=popup&amp;show_error=yes" aria-label="Facebook" style="width:58px;height:58px;margin-right:0px;border-radius:0px;border-width:0px;max-width:58px;min-width:45px;max-height:58px;min-height:45px;background-color:#4761a6;color:white;border-color:#4761a6;" class="ButtonNaked D(ib) My(0) nofollow O(0) Ov(v) P(0) Pos(r) rapid-noclick-resp Va(b) facebook react-button" data-reactid="473"><svg xmlns="http://www.w3.org/2000/svg" class="D(b) M(a) Cur(p)" width="20" style="fill:white;stroke:white;stroke-width:0;vertical-align:bottom;" height="20" viewBox="0 0 32 32" data-icon="LogoFacebook" data-reactid="474"><path d="M12.752 30.4V16.888H9.365V12.02h3.387V7.865c0-3.264 2.002-6.264 6.613-6.264 1.866 0 3.248.19 3.248.19l-.11 4.54s-1.404-.013-2.943-.013c-1.66 0-1.93.81-1.93 2.152v3.553h5.008l-.22 4.867h-4.786V30.4h-4.88z" data-reactid="475"/></svg><div class="share-info-wrapper Pos(a) W(a) Py(0) Whs(nw) Cur(p) Lh(1) D(n) Px(4px)" style="background:#f2f2f2;height:45px;min-width:50px;top:-45px;left:0px;" data-reactid="476"><span class="Pos(r) Fw(b) Ff(ss) Lh(1) Lts(.02em) Fw(n) Fz(14px) Fz(12px)! T(11px)! End(9px) C(#188fff)!:h D(n)--modalFloatingCloseBtn" style="color:#4761a6;top:14px;" data-reactid="477">Share</span></div></button><button data-sharetype="twitter" data-ylk="elm:share;itc:0;sec:social-sh;outcm:share;rspns:op;slk:Twitter;cpos:3;uuid:80b35014-fba3-377e-adc5-47fb44f61fa7;tar:twitter.com;tar_uri:/intent/tweet?text=These%20are%20the%208%20coolest%20PlayStation%20VR%20games&amp;url=http%3A%2F%2Ffinance.yahoo.com%2Fnews%2Fbest-psvr-games-170003443.html%3Fsoc_src%3Dsocial-sh%26soc_trk%3Dtw&amp;via=YahooFinance" aria-label="Twitter" style="width:58px;height:58px;margin-right:0px;border-radius:0px;border-width:0px;max-width:58px;min-width:45px;max-height:58px;min-height:45px;background-color:#00aceb;color:white;border-color:#00aceb;" class="ButtonNaked D(ib) My(0) nofollow O(0) Ov(v) P(0) Pos(r) rapid-noclick-resp Va(b) twitter react-button" data-reactid="478"><svg xmlns="http://www.w3.org/2000/svg" class="D(b) M(a) Cur(p)" width="20" style="fill:white;stroke:white;stroke-width:0;vertical-align:bottom;" height="20" viewBox="0 0 32 32" data-icon="LogoTwitter" data-reactid="479"><path d="M30.402 7.094c-1.058.47-2.198.782-3.392.928 1.218-.725 2.154-1.885 2.595-3.256-1.134.674-2.405 1.165-3.75 1.43-1.077-1.148-2.612-1.862-4.31-1.862-3.268 0-5.915 2.635-5.915 5.893 0 .464.056.91.155 1.34-4.915-.244-9.266-2.59-12.18-6.158-.51.87-.806 1.885-.806 2.96 0 2.044 1.045 3.847 2.633 4.905-.974-.032-1.883-.3-2.68-.736v.07c0 2.857 2.034 5.236 4.742 5.773-.498.138-1.022.21-1.56.21-.38 0-.75-.034-1.11-.103.75 2.344 2.93 4.042 5.518 4.09-2.024 1.58-4.57 2.523-7.333 2.523-.478 0-.952-.032-1.41-.085 2.613 1.674 5.72 2.65 9.054 2.65 10.872 0 16.814-8.976 16.814-16.765 0-.254-.008-.507-.018-.762 1.155-.83 2.155-1.868 2.95-3.047z" data-reactid="480"/></svg><div class="share-info-wrapper Pos(a) W(a) Py(0) Whs(nw) Cur(p) Lh(1) D(n) Px(4px)" style="background:#f2f2f2;height:45px;min-width:50px;top:-45px;left:0px;" data-reactid="481"><span class="Pos(r) Fw(b) Ff(ss) Lh(1) Lts(.02em) Fw(n) Fz(14px) Fz(12px)! T(11px)! End(9px) C(#188fff)!:h D(n)--modalFloatingCloseBtn" style="color:#00aceb;top:14px;" data-reactid="482">Tweet</span></div></button><button data-sharetype="pinterest" data-ylk="elm:share;itc:0;sec:social-sh;outcm:share;rspns:op;slk:Pinterest;cpos:4;uuid:80b35014-fba3-377e-adc5-47fb44f61fa7;tar:pinterest.com;tar_uri:/pin/create/button/?url=http%3A%2F%2Ffinance.yahoo.com%2Fnews%2Fbest-psvr-games-170003443.html%3Fsoc_src%3Dsocial-sh%26soc_trk%3Dpi&amp;description=To%20help%20you%20decide%20what%E2%80%99s%20what%2C%20I%E2%80%99ve%20put%20together%20this%20list%20of%20the%208%20PSVR%20games%20worth%20considering.%20%20Beloved%20cult%20hit%20%E2%80%9CRez%E2%80%9D%20gets%20the%20VR%20treatment%20to%20help%20launch%20the%20PSVR%2C%20and%20the%20results%20are%20terrific.%20%20Chaos%2C%20for%20sure%2C%20and%20also%20%E2%80%9CThumper.%E2%80%9D%20Called%20a%20%E2%80%9Cviolent%20rhythm%20game%E2%80%9D%20by%20its%20creators%2C%20%E2%80%9CThumper%E2%80%9D%20is%2C%20well&amp;media=http%3A%2F%2Fl3.yimg.com%2Fuu%2Fapi%2Fres%2F1.2%2F4eRCPf9lJt_3q29.outekQ--%2FaD02Njk7dz03NDQ7c209MTthcHBpZD15dGFjaHlvbg--%2Fhttp%3A%2F%2Fmedia.zenfs.com%2Fen%2Fhomerun%2Ffeed_manager_auto_publish_494%2F4406ef57dcb40376c513903b03bef048" aria-label="Pinterest" style="width:58px;height:58px;margin-right:0px;border-radius:0px;border-width:0px;max-width:58px;min-width:45px;max-height:58px;min-height:45px;background-color:#cc2127;color:white;border-color:#cc2127;" class="ButtonNaked D(ib) My(0) nofollow O(0) Ov(v) P(0) Pos(r) rapid-noclick-resp Va(b) pinterest react-button" data-reactid="483"><svg xmlns="http://www.w3.org/2000/svg" class="D(b) M(a) Cur(p)" width="20" style="fill:white;stroke:white;stroke-width:0;vertical-align:bottom;" height="20" viewBox="0 0 32 32" data-icon="LogoPinterest" data-reactid="484"><path d="M16 1.598c-7.952 0-14.4 6.448-14.4 14.4 0 5.896 3.546 10.962 8.62 13.19-.04-1.006-.007-2.212.25-3.307l1.853-7.844s-.46-.92-.46-2.28c0-2.133 1.236-3.728 2.778-3.728 1.31 0 1.943.982 1.943 2.163 0 1.318-.84 3.286-1.272 5.11-.36 1.527.767 2.772 2.273 2.772 2.73 0 4.566-3.502 4.566-7.656 0-3.157-2.127-5.52-5.993-5.52-4.37 0-7.09 3.258-7.09 6.898 0 1.256.37 2.136.95 2.824.265.317.303.442.207.802-.07.267-.23.902-.294 1.158-.096.366-.39.498-.72.36-2.01-.82-2.95-3.024-2.95-5.5 0-4.09 3.45-8.996 10.293-8.996 5.5 0 9.115 3.98 9.115 8.25 0 5.65-3.14 9.872-7.77 9.872-1.555 0-3.016-.843-3.517-1.798 0 0-.836 3.317-1.013 3.962-.304 1.107-.902 2.22-1.45 3.085 1.294.378 2.666.587 4.082.587 7.95 0 14.4-6.45 14.4-14.402s-6.45-14.4-14.4-14.4z" data-reactid="485"/></svg><div class="share-info-wrapper Pos(a) W(a) Py(0) Whs(nw) Cur(p) Lh(1) D(n) Px(4px)" style="background:#f2f2f2;height:45px;min-width:50px;top:-45px;left:0px;" data-reactid="486"><span class="Pos(r) Fw(b) Ff(ss) Lh(1) Lts(.02em) Fw(n) Fz(14px) Fz(12px)! T(11px)! End(9px) C(#188fff)!:h D(n)--modalFloatingCloseBtn" style="color:#cc2127;top:14px;" data-reactid="487">Pin it</span></div></button><button data-sharetype="mtf" data-ylk="elm:share;itc:0;sec:social-sh;outcm:share;rspns:op;slk:Email;cpos:5;uuid:80b35014-fba3-377e-adc5-47fb44f61fa7;tar:www.yahoo.com;tar_uri:/mtfpopup?redirect=http%3A%2F%2Fwww.yahoo.com%2Fmtfpopup&amp;url=http%3A%2F%2Ffinance.yahoo.com%2Fnews%2Fbest-psvr-games-170003443.html%3Fsoc_src%3Dsocial-sh%26soc_trk%3Dma&amp;locale=en-US&amp;lang=en-US&amp;region=US&amp;site=finance&amp;uuid=80b35014-fba3-377e-adc5-47fb44f61fa7&amp;alias=ymedia-alias%3Astory%3Dbest-psvr-games-170003443" aria-label="Email" style="width:58px;height:58px;margin-right:0px;border-radius:0px;border-width:0px;max-width:58px;min-width:45px;max-height:58px;min-height:45px;background-color:#400090;color:white;border-color:#400090;" class="ButtonNaked D(ib) My(0) nofollow O(0) Ov(v) P(0) Pos(r) rapid-noclick-resp Va(b) mail react-button" data-reactid="488"><svg xmlns="http://www.w3.org/2000/svg" class="D(b) M(a) Cur(p)" width="20" style="fill:white;stroke:white;stroke-width:0;vertical-align:bottom;" height="20" viewBox="0 0 32 32" data-icon="PropertyMail" data-reactid="489"><path d="M16.014 18.806L1.6 7.36v18.722l28.8-.006V7.36L16.014 18.808zM30.4 5.92H1.6L16 17.44 30.4 5.92z" data-reactid="490"/></svg><div class="share-info-wrapper Pos(a) W(a) Py(0) Whs(nw) Cur(p) Lh(1) D(n) Px(4px)" style="background:#f2f2f2;height:45px;min-width:50px;top:-45px;left:0px;" data-reactid="491"><span class="Pos(r) Fw(b) Ff(ss) Lh(1) Lts(.02em) Fw(n) Fz(14px) Fz(12px)! T(11px)! End(9px) C(#188fff)!:h D(n)--modalFloatingCloseBtn" style="color:#400090;top:14px;" data-reactid="492">Share</span></div></button></div>
+ </div>
+ </div>
+ <div id="Col1-3-CanvassComments-Proxy" data-reactid="493"><span data-reactid="494"></span></div>
+ <div id="Col1-4-Ad-Proxy" data-reactid="495">
+ <div data-reactid="496">
+ <div id="defaultFOOT-sizer" class="darla-container Pos-r Z-0 Pos(r) Ov(a) Z(0)" style="height:0;width:0;" data-reactid="497">
+ <div id="defaultFOOT-wrapper" class="Pos-a T-0 B-0 Start-0 End-0 Ov-h Pos(a) T(0) B(0) Start(0) End(0) Ov(h)" data-reactid="498">
+ <div id="defaultdestFOOT" style=""></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="Col1-5-Ad-Proxy" data-reactid="499">
+ <div data-reactid="500">
+ <div id="defaultFSRVY-sizer" class="darla-container Pos-r Z-0 Pos(r) Ov(a) Z(0)" style="height:0;width:0;" data-reactid="501">
+ <div id="defaultFSRVY-wrapper" class="Pos-a T-0 B-0 Start-0 End-0 Ov-h Pos(a) T(0) B(0) Start(0) End(0) Ov(h)" data-reactid="502">
+ <div id="defaultdestFSRVY" style=""></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="YDC-Col2" class="YDC-Col2 Pos(a) T(0) End(0) W(1/3)--md W(1/4) D(n)--sm" data-reactid="503">
+ <div class="sticky-outer-wrapper" data-reactid="504">
+ <div class="sticky-inner-wrapper" style="position:relative;top:0px;" data-reactid="505">
+ <div id="YDC-Col2-Stack" class="YDC-Col2-Stack Pos(r) Bxz(bb) Maw(340px) P(20px) W(100%)" data-reactid="506">
+ <div class="M(a) W(0)" data-reactid="507">
+ <div class="Pos(r) Start(-150px) W(300px)" data-reactid="508">
+ <div id="Aside" role="complementary" tabindex="-1" data-reactid="509">
+ <div id="Col2-0-SymbolLookup-Proxy" data-reactid="510">
+ <div class="Pos(r) D(ib) Mend(10px) Va(m) W(100%)" data-test="add-symbol-overlay" data-reactid="511">
+ <div class="clear-button-inside Pos(r) react-autocomplete-box" data-reactid="512">
+ <div class="Cf" data-reactid="513">
+ <fieldset class="Pos(r) D(ib) W(100%)" data-reactid="514"><input class="Bdrs(0) Bxsh(n)! Fz(s) Bxz(bb) D(ib) Bg(n) Pend(5px) Px(8px) Py(0) H(34px) Lh(34px) Bd O(n):f O(n):h Bdc($lightGray) Bdc($actionBlue):f Bdc($breakingRed):inv C($dataRed):inv M(0) Pstart(10px) Bgc(white) W(100%)" name="s" tabindex="1" placeholder="Quote Lookup" autocomplete="off" data-reactid="515" type="text" /></fieldset><button class="Bdrs(2px) Td(n) Fz(13px) D(ib) Bxz(bb) Py(0) Px(10px) H(34px) Lh(n) Bd O(n) O(n):f O(n):h Op(1) Op(0.7):f Op(0.7):h Op(1):di:h Bgc($actionBlue) C(white) C(#aaa):di Bdc($actionBlue) Bdc($lightGray):di Bg($lightGray):di Va(m) Pos(a) Fl(end) End(1px)" type="submit" data-reactid="516"><svg xmlns="http://www.w3.org/2000/svg" class="Fill(white)! Stroke(white)! Cur(p)" width="20" style="fill:#000;stroke:#000;stroke-width:0;vertical-align:bottom;" height="20" viewBox="0 0 24 24" data-icon="search" data-reactid="517"><path d="M9 3C5.686 3 3 5.686 3 9c0 3.313 2.686 6 6 6s6-2.687 6-6c0-3.314-2.686-6-6-6m13.713 19.713c-.387.388-1.016.388-1.404 0l-7.404-7.404C12.55 16.364 10.85 17 9 17c-4.418 0-8-3.582-8-8 0-4.42 3.582-8 8-8s8 3.58 8 8c0 1.85-.634 3.55-1.69 4.905l7.403 7.404c.39.386.39 1.015 0 1.403" data-reactid="518"/></svg></button></div>
+ <!-- react-text: 519 -->
+ <!-- /react-text -->
+ </div><svg xmlns="http://www.w3.org/2000/svg" class="D(n) Cur(p)" width="24" style="fill:#000;stroke:#000;stroke-width:0;vertical-align:bottom;" height="24" viewBox="0 0 24 24" data-icon="search" data-reactid="520"><path d="M9 3C5.686 3 3 5.686 3 9c0 3.313 2.686 6 6 6s6-2.687 6-6c0-3.314-2.686-6-6-6m13.713 19.713c-.387.388-1.016.388-1.404 0l-7.404-7.404C12.55 16.364 10.85 17 9 17c-4.418 0-8-3.582-8-8 0-4.42 3.582-8 8-8s8 3.58 8 8c0 1.85-.634 3.55-1.69 4.905l7.403 7.404c.39.386.39 1.015 0 1.403" data-reactid="521"/></svg></div>
+ </div>
+ <div id="Col2-1-RecentQuotes-Proxy" data-reactid="522">
+ <div class="My(20px)" data-reactid="523"><span class="Py(10px) Pos(r) D(b) Bdc($grey3) BdB" data-reactid="524"><a href="/recent-quotes" title="Recently Viewed" class="Va(m) Fw(b) Fz(s) C(#000) Wow(bw) Us(n)" data-test="list-name" data-reactid="525"><span data-reactid="526">Recently Viewed</span><svg xmlns="http://www.w3.org/2000/svg" class="Px(2px) Pt(3px) Cur(p)" width="14" style="fill:#000;stroke:#000;stroke-width:0;vertical-align:bottom;" height="14" viewBox="0 0 48 48" data-icon="caret-right-finance" data-reactid="527"><path d="M20.95 9.774c-.966-1.025-2.694-1.023-3.67 0-.98 1.032-.98 2.71 0 3.74l8.95 9.412-8.946 9.404c-.983 1.036-.98 2.716 0 3.74.49.514 1.14.796 1.837.796.698 0 1.35-.28 1.834-.795l12.5-13.145L20.95 9.775z" data-reactid="528"/></svg></a>
+ </span>
+ <table class="table-bordered W(100%) Tbl(f) Bdcl(c)" role="presentation" data-reactid="529" cellpadding="0">
+ <thead data-reactid="530">
+ <tr data-reactid="531">
+ <th class="Ta(start) Va(b) Py(4px) Fw(n) Fz(xs) C($grey6) Cur(p) Pend(0) Bxz(bb) data-col0" data-reactid="532"><span data-reactid="533">Symbol</span></th>
+ <th class="Ta(end) Va(b) Py(4px) Fw(n) Fz(xs) C($grey6) Cur(p) data-col1" style="width:100px;" data-reactid="534"><span data-reactid="535">Last Price</span></th>
+ <th class="Ta(end) Va(b) Py(4px) Fw(n) Fz(xs) C($grey6) Cur(p) Pstart(4px) data-col2" style="width:70px;" data-reactid="536"><span data-reactid="537">Change</span></th>
+ <th class="Ta(end) Va(b) Py(4px) Fw(n) Fz(xs) C($grey6) Cur(p) Pstart(6px) data-col3" style="width:60px;" data-reactid="538"><span data-reactid="539">% Change</span></th>
+ </tr>
+ </thead>
+ <tbody data-reactid="540"></tbody>
+ </table><span class="Pos(r) D(b) Bdc($grey3) BdT My(2px) Pt(5px)" data-reactid="541"><span data-reactid="542">You don't have any symbols in this list.</span></span>
+ </div>
+ </div>
+ <div id="Col2-2-Ad-Proxy" data-reactid="543">
+ <div data-reactid="544">
+ <div id="defaultLREC-sizer" class="darla-container" style="margin-bottom:20px;" data-reactid="545">
+ <div id="defaultLREC-wrapper" class="" data-reactid="546">
+ <div id="defaultdestLREC" style="width:300px;height:250px;"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="Col2-3-CommonSlotComposite-Proxy" data-reactid="547"><span data-reactid="548"></span></div>
+ <div id="Col2-4-HeightContainer-Proxy" data-reactid="549">
+ <div id="Col2-4-HeightContainer" class="YDC-Height-Container Ov(h) Trsp(max-height) Trsdu(.42s)" data-reactid="550">
+ <div data-reactid="551">
+ <div id="Col2-4-HeightContainer-0-Stream" class="tdv2-applet-stream Bdc(#e2e2e6)" style="max-width:900px;" data-reactid="552">
+ <h2 class="C(#26282a) Fw(500) Fz(16px) Ff($ff-primary) Lh($lheight) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing)" data-reactid="553">What to Read Next</h2>
+ <ul class="Mb(0) Ov(h) P(0) Wow(bw)" data-reactid="554">
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)" data-reactid="555">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured" data-reactid="556">
+ <div class="Pos(r)" data-reactid="557">
+ <div class="Pos(r)" data-reactid="558">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width:600px;" data-reactid="559">
+ <div class="Trsdu(.42s) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom:52%;background-image:url(http://l3.yimg.com/ny/api/res/1.2/J2boBNrJ13dcslIlWN88vw--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/wEAPFp0fjhGr6q3Nb0BOHw--/dz0xMjQ2O2g9OTM0O2FwcGlkPXl0YWNoeW9u/http://globalfinance.zenfs.com/en_us/Finance/US_AFTP_SILICONALLEY_H_LIVE/Its_becoming_clear_there_were-cc8eca84bc2295903a36075d4738a8fa);" data-reactid="560"></div>
+ </div>
+ <h3 class="M(0) Py(1px)" data-reactid="561"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/becoming-clear-were-2-big-152321240.html" data-reactid="562"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)" data-reactid="563">It's becoming clear there were 2 big reasons the Patriots traded one of their best defensive players to the Browns</span><u class="StretchedBox Z(1)" data-reactid="564"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)" data-reactid="565">
+ <div class="" data-reactid="566">Business Insider</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)" data-reactid="567">
+ <div class="controller Feedback Pos(r)" data-beacon="" data-tp-beacon="" data-reactid="568">
+ <div class="Py(14px) smartphone_Px(20px) Pos(r) Ov(h) smartphone_Bxsh(streamBoxShadow)" data-reactid="569">
+ <div class="Mx(a)" style="max-width:600px;" data-reactid="570">
+ <div class="Trsdu(.42s) Bdrs(2px) Bgz(cv) smartphone_Mx(0) Mb(6px) smartphone_Mb(12px) Trsdu(0s)!" style="padding-bottom:52%;background-image:url(http://l3.yimg.com/ny/api/res/1.2/yakZD2gCbTHgIQi5kyX0tw--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/av/moneyball/ads/1477383770030-3005.jpg);" data-reactid="571"></div>
+ </div>
+ <h3 class="M(0) Py(1px)" data-reactid="572"><a rel="nofollow noopener noreferrer" class="Td(n) Fz(13px) C(#020e65) smartphone_C(#000) C(#0078ff):h LineClamp(4,96px) smartphone_Fz(19px)" target="_blank" href="https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=SlkEC58GIS.Y0wATYo8d.RrcUAM19.YDwMff7hOqeL.KhNIsD.ae_AA4UVTomwzUjf1fYOFCSNWT.hYk6yRHycaSnXaAAOCVvqdY2YSBbTuWMxaFjtSGKeLQy3nQA6MbDaadfE4WCf8kuWxsKpvxgSrSZJJMWrs7AfEpNuFZn7QnDu2NER5EWwjOeFwyfkEg8oPTQ.v7tVJWtcTPlLzmylY4ZVd49S2LcBX8AMSjunRI4TJaaQGzxdR3WyJjbj4wZGQjVuQRvwC1dqw9aRjGtbLtZuU4yBxrCopcfao.N.08wHghta4.qlbrCnqTCOockpaXG1Gv10jobDtTktGjoXy5tS2rF9OR6YcLN2V2z0D9XB6ByxM_5iY9mzPUIwQhWG9R5kmduUNUBQ0ahmoePpQTqMyNwO3z3GfXDk1ISMrfgR69fg0cO1Fj6.unPmD0KOA2YOOwC577yygaGXCTR_xYHBfjijS3dprMtZwz_.t37omywSmtf_3VWykZCIuJcHMTZqOWfQDuLgUVIg--%26lp=https%3A%2F%2Fom.forgeofempires.com%2Ffoe%2Fen%2F%3Fref%3Dgen_en_en_gam%23buildings" data-reactid="573"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)" data-reactid="574">The most addictive game of the year!</span><u class="StretchedBox Z(1)" data-reactid="575"></u></a></h3>
+ <div class="Fz(11px) Pos(r) Z(2) Ell smartphone_Fz(13px)" data-reactid="576"><a class="Whs(nw) Mend(6px) Lh(1.6) C(#96989f)" rel="noopener noreferrer" target="_blank" href="https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=SlkEC58GIS.Y0wATYo8d.RrcUAM19.YDwMff7hOqeL.KhNIsD.ae_AA4UVTomwzUjf1fYOFCSNWT.hYk6yRHycaSnXaAAOCVvqdY2YSBbTuWMxaFjtSGKeLQy3nQA6MbDaadfE4WCf8kuWxsKpvxgSrSZJJMWrs7AfEpNuFZn7QnDu2NER5EWwjOeFwyfkEg8oPTQ.v7tVJWtcTPlLzmylY4ZVd49S2LcBX8AMSjunRI4TJaaQGzxdR3WyJjbj4wZGQjVuQRvwC1dqw9aRjGtbLtZuU4yBxrCopcfao.N.08wHghta4.qlbrCnqTCOockpaXG1Gv10jobDtTktGjoXy5tS2rF9OR6YcLN2V2z0D9XB6ByxM_5iY9mzPUIwQhWG9R5kmduUNUBQ0ahmoePpQTqMyNwO3z3GfXDk1ISMrfgR69fg0cO1Fj6.unPmD0KOA2YOOwC577yygaGXCTR_xYHBfjijS3dprMtZwz_.t37omywSmtf_3VWykZCIuJcHMTZqOWfQDuLgUVIg--%26lp=https%3A%2F%2Fom.forgeofempires.com%2Ffoe%2Fen%2F%3Fref%3Dgen_en_en_gam%23buildings" data-reactid="577">InnoGames</a><span data-reactid="578"><a class="Mend(6px) C(#b9bdc5)" href="http://help.yahoo.com/kb/index?page=content&amp;y=PROD_FRONT&amp;locale=en_US&amp;id=SLN14553" rel="noopener noreferrer" target="_blank" data-reactid="579">Sponsored</a><a href="https://info.yahoo.com/privacy/us/yahoo/relevantads.html" target="_blank" rel="noopener noreferrer" data-reactid="580"><i class="Pos(r) T(3px)" data-reactid="581"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="15" style="vertical-align:baseline;fill:#b9bdc5;stroke:#b9bdc5;stroke-width:0;" height="15" viewBox="0 0 24 24" data-icon="sponsor" data-reactid="582"><path d="M5.636 4.222c-.39-.39-1.023-.39-1.414 0s-.39 1.024 0 1.414l.707.707c.39.39 1.022.39 1.414 0 .39-.39.39-1.023 0-1.414l-.708-.708zM4.93 17.658l-.708.707c-.39.39-.39 1.023 0 1.414.39.39 1.023.39 1.414 0l.707-.708c.39-.39.39-1.024 0-1.414-.39-.39-1.023-.39-1.414 0zm14.14 0c-.39-.39-1.023-.39-1.413 0-.39.39-.39 1.023 0 1.414l.707.707c.39.39 1.024.39 1.414 0 .39-.392.39-1.025 0-1.415l-.707-.707zm0-11.315l.708-.707c.39-.39.39-1.023 0-1.414s-1.024-.39-1.414 0l-.707.707c-.39.39-.39 1.024 0 1.414.39.39 1.023.39 1.414 0zM22 11h-1c-.553 0-1 .448-1 1s.447 1 1 1h1c.552 0 1-.448 1-1s-.448-1-1-1zM10 9h5c.552 0 1-.448 1-1s-.448-1-1-1h-2c0-.55-.447-1-1-1s-1 .45-1 1H9.5C8.12 7 7 8.12 7 9.5v1C7 11.88 8.12 13 9.5 13H13c.552 0 1 .448 1 1s-.448 1-1 1H8c-.553 0-1 .448-1 1s.447 1 1 1h3c0 .55.447 1 1 1s1-.45 1-1h.5c1.38 0 2.5-1.12 2.5-2.5v-1c0-1.38-1.37-2.5-3-2.5h-3c-.553 0-1-.448-1-1s.447-1 1-1zm2-5c.553 0 1-.448 1-1V2c0-.552-.447-1-1-1s-1 .448-1 1v1c0 .552.447 1 1 1zm-9 7H2c-.553 0-1 .448-1 1s.447 1 1 1h1c.552 0 1-.448 1-1s-.448-1-1-1zm9 9c-.553 0-1 .448-1 1v1c0 .552.447 1 1 1s1-.448 1-1v-1c0-.552-.447-1-1-1z" data-reactid="583"/></svg></i></a></span></div>
+ </div>
+ <!-- react-text: 584 -->
+ <!-- /react-text -->
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)" data-reactid="585">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured" data-reactid="586">
+ <div class="Pos(r)" data-reactid="587">
+ <div class="Pos(r)" data-reactid="588">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width:600px;" data-reactid="589">
+ <div class="Trsdu(.42s) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom:52%;background-image:url(http://l2.yimg.com/ny/api/res/1.2/U3D9fEU2vXLjcYVz.8l6ow--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/0zasyXa7KQlezglOp7XM6g--/dz03NDQ7aD00OTY7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en/homerun/feed_manager_auto_publish_494/66281ce88f76a83c339f010f928ba8ab);" data-reactid="590"></div>
+ </div>
+ <h3 class="M(0) Py(1px)" data-reactid="591"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/the-real-reason-why-millennials-are-leaving-banks-170424785.html" data-reactid="592"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)" data-reactid="593">The real reason why millennials are leaving banks</span><u class="StretchedBox Z(1)" data-reactid="594"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)" data-reactid="595">
+ <div class="" data-reactid="596">Yahoo Finance</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)" data-reactid="597">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured" data-reactid="598">
+ <div class="Pos(r)" data-reactid="599">
+ <div class="Pos(r)" data-reactid="600">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width:600px;" data-reactid="601">
+ <div class="JsEnabled_Op(0) JsEnabled_Bg(n) Trsdu(.42s) Bgr(nr) Bgz(cv) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom:52%;background-image:url(http://l3.yimg.com/ny/api/res/1.2/qknQHYRR9DEXYsRSbSGKSg--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/fmpZDU.ysK8f2Ru.ntw07A--/dz0xMzMzO2g9MTAwMDthcHBpZD15dGFjaHlvbg--/http://globalfinance.zenfs.com/en_us/Finance/US_AFTP_SILICONALLEY_H_LIVE/Kevin_Durant_delivered_a_forceful-be68a99a9bebafdc71cecd0ea7c70f14);" data-reactid="602"></div>
+ </div>
+ <h3 class="M(0) Py(1px)" data-reactid="603"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/kevin-durant-delivered-forceful-brutally-214843064.html" data-reactid="604"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)" data-reactid="605">Kevin Durant delivered a forceful and brutally honest response to defend his relationship with Russell Westbrook after he left the Thunder</span><u class="StretchedBox Z(1)" data-reactid="606"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)" data-reactid="607">
+ <div class="" data-reactid="608">Business Insider</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)" data-reactid="609">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured" data-reactid="610">
+ <div class="Pos(r)" data-reactid="611">
+ <div class="Pos(r)" data-reactid="612">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width:600px;" data-reactid="613">
+ <div class="JsEnabled_Op(0) JsEnabled_Bg(n) Trsdu(.42s) Bgr(nr) Bgz(cv) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom:52%;background-image:url(http://l3.yimg.com/ny/api/res/1.2/cDAUrHZe1DRdQfLWKz8z3g--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/UAIXGOcP_ivO8lbGFqWi8w--/dz0xNjAwO2g9ODAwO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/homerun/elle_570/04c1ac4bb7a90453465c5a354c308396);" data-reactid="614"></div>
+ </div>
+ <h3 class="M(0) Py(1px)" data-reactid="615"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/chrissy-teigen-addresses-criticism-over-153235776.html" data-reactid="616"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)" data-reactid="617">Chrissy Teigen Addresses the Criticism Over Baby Luna's Free Costumes</span><u class="StretchedBox Z(1)" data-reactid="618"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)" data-reactid="619">
+ <div class="" data-reactid="620">Elle</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)" data-reactid="621">
+ <div class="controller Feedback Pos(r)" data-beacon="" data-tp-beacon="" data-reactid="622">
+ <div class="Py(14px) smartphone_Px(20px) Pos(r) Ov(h) smartphone_Bxsh(streamBoxShadow)" data-reactid="623">
+ <div class="Mx(a)" style="max-width:600px;" data-reactid="624">
+ <div class="JsEnabled_Op(0) JsEnabled_Bg(n) Trsdu(.42s) Bgr(nr) Bgz(cv) Bdrs(2px) Bgz(cv) smartphone_Mx(0) Mb(6px) smartphone_Mb(12px) Trsdu(0s)!" style="padding-bottom:52%;background-image:url(http://l3.yimg.com/ny/api/res/1.2/3lW9BZ4aWN4M4zyEMrjrGg--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/av/moneyball/ads/1471339441444-3957.jpg);" data-reactid="625"></div>
+ </div>
+ <h3 class="M(0) Py(1px)" data-reactid="626"><a rel="nofollow noopener noreferrer" class="Td(n) Fz(13px) C(#020e65) smartphone_C(#000) C(#0078ff):h LineClamp(4,96px) smartphone_Fz(19px)" target="_blank" href="https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=0Q7gd38GIS_pYHOYO5MaOOUKSMwcIHjsFyc2.mISFhZBWjbQxIV03_VVCqyb3wwshIfM.Cb1EjCUhW6DZiTkOlC8RWkDNlWgFuZCAyuhrk691V5ST9RdUp77cKl8xXevOwYqBkQco9KXTAGyaBPvVWWxB8lH6GYx51DpAkWTajjw8abhvkL6_eYNojeGpzJKI_fpvHuxCdOExG354wj46I28..qYr.jhUfJWdgYInogaTs3bqC2bppgD083HJWKAws0GyzUspgi1LhgEdroz.48BL.CdJ8ggdOgwvlIBWfvWYn5.E_pv7GgkaDtCnXCzdMgxhkBwhf8peqbeAq2OjJy.xm.H6Jp7E_vj5kyBTdHBb6DyrP1O0LWvSCaGB0fn_x5NjNmbKVWKs.PtrbfnLot.ClDyFdgJsnlR6fgWvcu8wK3lq8f.1DictQOkV18o49kcTbyp9S7ldVSvwdumyh1aYeyLL0QtMdyiF3vzLSXAauoYauxZytkEbkQ.YmLuevUmu2Mp6kPRrJBKKciXmenK8VfoPg7stRX9RxvqZBc6lJgCAA9JIYPfS6J1mGxu4gcWFj.hPoQixPs-%26lp=http%3A%2F%2Fplarium.com%2Fplay%2Fen%2Fstormfall%2F004_dragon_hybrid_anim%3FadCampaign%3D97905%26adPixel%3Dyahoo%21%26publisherID%3D32381142928" data-reactid="627"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)" data-reactid="628">This Strategy Game will keep you up all night!</span><u class="StretchedBox Z(1)" data-reactid="629"></u></a></h3>
+ <div class="Fz(11px) Pos(r) Z(2) Ell smartphone_Fz(13px)" data-reactid="630"><a class="Whs(nw) Mend(6px) Lh(1.6) C(#96989f)" rel="noopener noreferrer" target="_blank" href="https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=0Q7gd38GIS_pYHOYO5MaOOUKSMwcIHjsFyc2.mISFhZBWjbQxIV03_VVCqyb3wwshIfM.Cb1EjCUhW6DZiTkOlC8RWkDNlWgFuZCAyuhrk691V5ST9RdUp77cKl8xXevOwYqBkQco9KXTAGyaBPvVWWxB8lH6GYx51DpAkWTajjw8abhvkL6_eYNojeGpzJKI_fpvHuxCdOExG354wj46I28..qYr.jhUfJWdgYInogaTs3bqC2bppgD083HJWKAws0GyzUspgi1LhgEdroz.48BL.CdJ8ggdOgwvlIBWfvWYn5.E_pv7GgkaDtCnXCzdMgxhkBwhf8peqbeAq2OjJy.xm.H6Jp7E_vj5kyBTdHBb6DyrP1O0LWvSCaGB0fn_x5NjNmbKVWKs.PtrbfnLot.ClDyFdgJsnlR6fgWvcu8wK3lq8f.1DictQOkV18o49kcTbyp9S7ldVSvwdumyh1aYeyLL0QtMdyiF3vzLSXAauoYauxZytkEbkQ.YmLuevUmu2Mp6kPRrJBKKciXmenK8VfoPg7stRX9RxvqZBc6lJgCAA9JIYPfS6J1mGxu4gcWFj.hPoQixPs-%26lp=http%3A%2F%2Fplarium.com%2Fplay%2Fen%2Fstormfall%2F004_dragon_hybrid_anim%3FadCampaign%3D97905%26adPixel%3Dyahoo%21%26publisherID%3D32381142928" data-reactid="631">Stormfall: Age of War</a><span data-reactid="632"><a class="Mend(6px) C(#b9bdc5)" href="http://help.yahoo.com/kb/index?page=content&amp;y=PROD_FRONT&amp;locale=en_US&amp;id=SLN14553" rel="noopener noreferrer" target="_blank" data-reactid="633">Sponsored</a><a href="https://info.yahoo.com/privacy/us/yahoo/relevantads.html" target="_blank" rel="noopener noreferrer" data-reactid="634"><i class="Pos(r) T(3px)" data-reactid="635"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="15" style="vertical-align:baseline;fill:#b9bdc5;stroke:#b9bdc5;stroke-width:0;" height="15" viewBox="0 0 24 24" data-icon="sponsor" data-reactid="636"><path d="M5.636 4.222c-.39-.39-1.023-.39-1.414 0s-.39 1.024 0 1.414l.707.707c.39.39 1.022.39 1.414 0 .39-.39.39-1.023 0-1.414l-.708-.708zM4.93 17.658l-.708.707c-.39.39-.39 1.023 0 1.414.39.39 1.023.39 1.414 0l.707-.708c.39-.39.39-1.024 0-1.414-.39-.39-1.023-.39-1.414 0zm14.14 0c-.39-.39-1.023-.39-1.413 0-.39.39-.39 1.023 0 1.414l.707.707c.39.39 1.024.39 1.414 0 .39-.392.39-1.025 0-1.415l-.707-.707zm0-11.315l.708-.707c.39-.39.39-1.023 0-1.414s-1.024-.39-1.414 0l-.707.707c-.39.39-.39 1.024 0 1.414.39.39 1.023.39 1.414 0zM22 11h-1c-.553 0-1 .448-1 1s.447 1 1 1h1c.552 0 1-.448 1-1s-.448-1-1-1zM10 9h5c.552 0 1-.448 1-1s-.448-1-1-1h-2c0-.55-.447-1-1-1s-1 .45-1 1H9.5C8.12 7 7 8.12 7 9.5v1C7 11.88 8.12 13 9.5 13H13c.552 0 1 .448 1 1s-.448 1-1 1H8c-.553 0-1 .448-1 1s.447 1 1 1h3c0 .55.447 1 1 1s1-.45 1-1h.5c1.38 0 2.5-1.12 2.5-2.5v-1c0-1.38-1.37-2.5-3-2.5h-3c-.553 0-1-.448-1-1s.447-1 1-1zm2-5c.553 0 1-.448 1-1V2c0-.552-.447-1-1-1s-1 .448-1 1v1c0 .552.447 1 1 1zm-9 7H2c-.553 0-1 .448-1 1s.447 1 1 1h1c.552 0 1-.448 1-1s-.448-1-1-1zm9 9c-.553 0-1 .448-1 1v1c0 .552.447 1 1 1s1-.448 1-1v-1c0-.552-.447-1-1-1z" data-reactid="637"/></svg></i></a></span></div>
+ </div>
+ <!-- react-text: 638 -->
+ <!-- /react-text -->
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)" data-reactid="639">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured" data-reactid="640">
+ <div class="Pos(r)" data-reactid="641">
+ <div class="Pos(r)" data-reactid="642">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width:600px;" data-reactid="643">
+ <div class="JsEnabled_Op(0) JsEnabled_Bg(n) Trsdu(.42s) Bgr(nr) Bgz(cv) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom:52%;background-image:url(http://l.yimg.com/ny/api/res/1.2/5u9Swf9pUn5TrmPc4zpFQA--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/UMyO5yj.kDIqAGUBkhcLaQ--/dz02NDA7aD0zNjA7YXBwaWQ9eXRhY2h5b24-/https://s.yimg.com/uu/api/res/1.2/0l.pO7jeb47Y1ihDmh0NaQ--/dz02NDA7aD0zNjA7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en-US/video/bloomberg_932/383eec731e1cf4a4d116ed59c66d4689);" data-reactid="644"></div><span class="JsEnabled_Op(0) JsEnabled_Bg(n) Trsdu(.42s) Bgr(nr) Bgz(cv) StretchedBox M(a) lightweight_D(n) Trsdu(0s)!" style="height:50px;width:50px;background-size:50px;background-image:url(https://s.yimg.com/dh/ap/default/150604/orb.png);" data-reactid="645"><svg xmlns="http://www.w3.org/2000/svg" class="D(b) Pos(r) Mstart(2px) Cur(p)" width="20" style="left:15px;top:15px;fill:#fff;stroke:#fff;stroke-width:0;vertical-align:bottom;" height="20" viewBox="0 0 512 512" data-icon="CorePlay" data-reactid="646"><path d="M82.294 490.295c-20.327 11.736-36.952 2.14-36.952-21.332V42.295c0-23.472 16.632-33.055 36.952-21.332L451.67 234.295c20.318 11.75 20.318 30.945 0 42.682L82.294 490.295z" data-reactid="647"/></svg></span></div>
+ <h3 class="M(0) Py(1px)" data-reactid="648"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/video/election-worries-play-volatility-025347338.html" data-reactid="649"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)" data-reactid="650">Election Worries: How to Play the Volatility</span><u class="StretchedBox Z(1)" data-reactid="651"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)" data-reactid="652">
+ <div class="" data-reactid="653">Bloomberg Video</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)" data-reactid="654">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured" data-reactid="655">
+ <div class="Pos(r)" data-reactid="656">
+ <div class="Pos(r)" data-reactid="657">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width:600px;" data-reactid="658">
+ <div class="JsEnabled_Op(0) JsEnabled_Bg(n) Trsdu(.42s) Bgr(nr) Bgz(cv) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom:52%;background-image:url(http://l3.yimg.com/ny/api/res/1.2/1CDj4bqWTSP1grae5WfNoA--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/PCYO02uno6swpKcM0bwTHA--/dz0xNTAwO2g9MTAxODthcHBpZD15dGFjaHlvbg--/http://l.yimg.com/os/publish-images/finance/2016-07-03/0a5e0eb0-410f-11e6-9b9a-a9d808d329ff_Screen-Shot-2016-07-03-at-7-10-54-AM.png);" data-reactid="659"></div>
+ </div>
+ <h3 class="M(0) Py(1px)" data-reactid="660"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/us-forms-of-energy-usage-1776-2040-industry-source-eia-110731958.html" data-reactid="661"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)" data-reactid="662">From biomass to nuclear: The evolution of American energy usage since 1776</span><u class="StretchedBox Z(1)" data-reactid="663"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)" data-reactid="664">
+ <div class="" data-reactid="665">Yahoo Finance</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)" data-reactid="666">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured" data-reactid="667">
+ <div class="Pos(r)" data-reactid="668">
+ <div class="Pos(r)" data-reactid="669">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width:600px;" data-reactid="670">
+ <div class="JsEnabled_Op(0) JsEnabled_Bg(n) Trsdu(.42s) Bgr(nr) Bgz(cv) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom:52%;background-image:url(http://l3.yimg.com/ny/api/res/1.2/SiVvFBiTWfd8o.Tbez2ZjA--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/rG6bnHiidp9qQstxufxKpQ--/dz0xMDIzO2g9NzY3O2FwcGlkPXl0YWNoeW9u/http://globalfinance.zenfs.com/en_us/Finance/US_AFTP_SILICONALLEY_H_LIVE/How_Chinas_stealthy_new_J20-f7143b78fa45dea3cc4f88b787b17cbb);" data-reactid="671"></div>
+ </div>
+ <h3 class="M(0) Py(1px)" data-reactid="672"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/chinas-stealthy-j-20-fighter-171139077.html" data-reactid="673"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)" data-reactid="674">How China's stealthy new J-20 fighter jet compares to the US's F-22 and F-35</span><u class="StretchedBox Z(1)" data-reactid="675"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)" data-reactid="676">
+ <div class="" data-reactid="677">Business Insider</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)" data-reactid="678">
+ <div class="controller Feedback Pos(r)" data-beacon="" data-tp-beacon="" data-reactid="679">
+ <div class="Py(14px) smartphone_Px(20px) Pos(r) Ov(h) smartphone_Bxsh(streamBoxShadow)" data-reactid="680">
+ <div class="Mx(a)" style="max-width:600px;" data-reactid="681">
+ <div class="JsEnabled_Op(0) JsEnabled_Bg(n) Trsdu(.42s) Bgr(nr) Bgz(cv) Bdrs(2px) Bgz(cv) smartphone_Mx(0) Mb(6px) smartphone_Mb(12px) Trsdu(0s)!" style="padding-bottom:52%;background-image:url(http://l2.yimg.com/ny/api/res/1.2/HNEPk_ENbYd9EqIvtcReqw--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/av/moneyball/ads/1476785529800-3512.jpg);" data-reactid="682"></div>
+ </div>
+ <h3 class="M(0) Py(1px)" data-reactid="683"><a rel="nofollow noopener noreferrer" class="Td(n) Fz(13px) C(#020e65) smartphone_C(#000) C(#0078ff):h LineClamp(4,96px) smartphone_Fz(19px)" target="_blank" href="https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=gYoRCIQGIS.GsNSg31dG7uu3jx1l47K_9t_lL68694y5vPklbhwGNF2IOCXI5Gay.KEmvJYzGtoc._QaiNOyVwkdJQY8jTD_A4uY0.1OI47TuRvpcBMvdXdyTLVqUaIbKZjuLSdMhsq.aFWXTJBkDvMBr9jGKe1Dcs5mzRVUoWc5iPAeZSSgpz3nyj49giJ0W2ZN3r2KAdmuDxU48_TnDHDh_9f4cEhSw9nSpbz9uXOjDYsQ6nOkJQbFehfzNrYe4PVEu3NbzvKwgoi37c0DQqrMMwXbnsHqHlS6FSLjaxkZ53xSggWUfVAcLSmYvhC7K_PkWSQqoKLF5I5_rcymJYID9IzgBTFrXphnEI_XKT3hlo2vlL.vsS7xbXKLME6kHl4WNht1kg3STGm3NWwNYOvI6R01YtU4DhK51Jmka2sOqzxxxoPTZIPON4n15fVub8fwidZXBigTgpaIqNe3FhvFC1pPAEUkLyhkoCpzmMO4n_wXrWKfsDSHsGYEnr329Y7UkzKcsC3eAaJ5GXWmp8v44SGRysntPeCbBRkbtxGB5FtAC5m6j7E-%26lp=http%3A%2F%2F104.131.127.216%2Fstrapwork%2F%3F1uvop32q%26ad%3D32488250754%26creative%3D32488250754%26device%3Dc%26network%3Dn" data-reactid="684"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)" data-reactid="685">She Was A Waitress In a Bar and Now She Owns a Jet</span><u class="StretchedBox Z(1)" data-reactid="686"></u></a></h3>
+ <div class="Fz(11px) Pos(r) Z(2) Ell smartphone_Fz(13px)" data-reactid="687"><a class="Whs(nw) Mend(6px) Lh(1.6) C(#96989f)" rel="noopener noreferrer" target="_blank" href="https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=gYoRCIQGIS.GsNSg31dG7uu3jx1l47K_9t_lL68694y5vPklbhwGNF2IOCXI5Gay.KEmvJYzGtoc._QaiNOyVwkdJQY8jTD_A4uY0.1OI47TuRvpcBMvdXdyTLVqUaIbKZjuLSdMhsq.aFWXTJBkDvMBr9jGKe1Dcs5mzRVUoWc5iPAeZSSgpz3nyj49giJ0W2ZN3r2KAdmuDxU48_TnDHDh_9f4cEhSw9nSpbz9uXOjDYsQ6nOkJQbFehfzNrYe4PVEu3NbzvKwgoi37c0DQqrMMwXbnsHqHlS6FSLjaxkZ53xSggWUfVAcLSmYvhC7K_PkWSQqoKLF5I5_rcymJYID9IzgBTFrXphnEI_XKT3hlo2vlL.vsS7xbXKLME6kHl4WNht1kg3STGm3NWwNYOvI6R01YtU4DhK51Jmka2sOqzxxxoPTZIPON4n15fVub8fwidZXBigTgpaIqNe3FhvFC1pPAEUkLyhkoCpzmMO4n_wXrWKfsDSHsGYEnr329Y7UkzKcsC3eAaJ5GXWmp8v44SGRysntPeCbBRkbtxGB5FtAC5m6j7E-%26lp=http%3A%2F%2F104.131.127.216%2Fstrapwork%2F%3F1uvop32q%26ad%3D32488250754%26creative%3D32488250754%26device%3Dc%26network%3Dn" data-reactid="688">BinaryUno</a><span data-reactid="689"><a class="Mend(6px) C(#b9bdc5)" href="http://help.yahoo.com/kb/index?page=content&amp;y=PROD_FRONT&amp;locale=en_US&amp;id=SLN14553" rel="noopener noreferrer" target="_blank" data-reactid="690">Sponsored</a><a href="https://info.yahoo.com/privacy/us/yahoo/relevantads.html" target="_blank" rel="noopener noreferrer" data-reactid="691"><i class="Pos(r) T(3px)" data-reactid="692"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="15" style="vertical-align:baseline;fill:#b9bdc5;stroke:#b9bdc5;stroke-width:0;" height="15" viewBox="0 0 24 24" data-icon="sponsor" data-reactid="693"><path d="M5.636 4.222c-.39-.39-1.023-.39-1.414 0s-.39 1.024 0 1.414l.707.707c.39.39 1.022.39 1.414 0 .39-.39.39-1.023 0-1.414l-.708-.708zM4.93 17.658l-.708.707c-.39.39-.39 1.023 0 1.414.39.39 1.023.39 1.414 0l.707-.708c.39-.39.39-1.024 0-1.414-.39-.39-1.023-.39-1.414 0zm14.14 0c-.39-.39-1.023-.39-1.413 0-.39.39-.39 1.023 0 1.414l.707.707c.39.39 1.024.39 1.414 0 .39-.392.39-1.025 0-1.415l-.707-.707zm0-11.315l.708-.707c.39-.39.39-1.023 0-1.414s-1.024-.39-1.414 0l-.707.707c-.39.39-.39 1.024 0 1.414.39.39 1.023.39 1.414 0zM22 11h-1c-.553 0-1 .448-1 1s.447 1 1 1h1c.552 0 1-.448 1-1s-.448-1-1-1zM10 9h5c.552 0 1-.448 1-1s-.448-1-1-1h-2c0-.55-.447-1-1-1s-1 .45-1 1H9.5C8.12 7 7 8.12 7 9.5v1C7 11.88 8.12 13 9.5 13H13c.552 0 1 .448 1 1s-.448 1-1 1H8c-.553 0-1 .448-1 1s.447 1 1 1h3c0 .55.447 1 1 1s1-.45 1-1h.5c1.38 0 2.5-1.12 2.5-2.5v-1c0-1.38-1.37-2.5-3-2.5h-3c-.553 0-1-.448-1-1s.447-1 1-1zm2-5c.553 0 1-.448 1-1V2c0-.552-.447-1-1-1s-1 .448-1 1v1c0 .552.447 1 1 1zm-9 7H2c-.553 0-1 .448-1 1s.447 1 1 1h1c.552 0 1-.448 1-1s-.448-1-1-1zm9 9c-.553 0-1 .448-1 1v1c0 .552.447 1 1 1s1-.448 1-1v-1c0-.552-.447-1-1-1z" data-reactid="694"/></svg></i></a></span></div>
+ </div>
+ <!-- react-text: 695 -->
+ <!-- /react-text -->
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)" data-reactid="696">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured" data-reactid="697">
+ <div class="Pos(r)" data-reactid="698">
+ <div class="Pos(r)" data-reactid="699">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width:600px;" data-reactid="700">
+ <div class="JsEnabled_Op(0) JsEnabled_Bg(n) Trsdu(.42s) Bgr(nr) Bgz(cv) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom:52%;background-image:url(http://l.yimg.com/ny/api/res/1.2/axca9exznwNpwwziuP3_.A--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/SogZHAfIl0xU6zwa.9cgzA--/dz0xMDY3O2g9ODAwO2FwcGlkPXl0YWNoeW9u/http://globalfinance.zenfs.com/en_us/Finance/US_AFTP_SILICONALLEY_H_LIVE/The_woman_sexually_assaulted_by-cec9c3c426f7cf74dd301f8277adbde2);" data-reactid="701"></div>
+ </div>
+ <h3 class="M(0) Py(1px)" data-reactid="702"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/woman-sexually-assaulted-ex-stanford-185500342.html" data-reactid="703"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)" data-reactid="704">The woman sexually assaulted by ex-Stanford swimmer Brock Turner was just named a woman of the year by Glamour</span><u class="StretchedBox Z(1)" data-reactid="705"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)" data-reactid="706">
+ <div class="" data-reactid="707">Business Insider</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)" data-reactid="708">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured" data-reactid="709">
+ <div class="Pos(r)" data-reactid="710">
+ <div class="Pos(r)" data-reactid="711">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width:600px;" data-reactid="712">
+ <div class="JsEnabled_Op(0) JsEnabled_Bg(n) Trsdu(.42s) Bgr(nr) Bgz(cv) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom:52%;background-image:url(http://l2.yimg.com/ny/api/res/1.2/xtwsl2Xs5Fa2oKSzfbzkpg--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/aJklNfwvY9sbg1rkIPhnIg--/dz0xNzA0O2g9ODg1O2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en/homerun/feed_manager_auto_publish_494/583afc8f01a87b3a8f1f0a05ce081057);" data-reactid="713"></div>
+ </div>
+ <h3 class="M(0) Py(1px)" data-reactid="714"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/the-market-doesnt-care-who-wins-the-election-unless-its-donald-trump-121934629.html" data-reactid="715"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)" data-reactid="716">The market doesn't care who wins the election unless it's Donald Trump</span><u class="StretchedBox Z(1)" data-reactid="717"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)" data-reactid="718">
+ <div class="" data-reactid="719">Yahoo Finance</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)" data-reactid="720">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured" data-reactid="721">
+ <div class="Pos(r)" data-reactid="722">
+ <div class="Pos(r)" data-reactid="723">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width:600px;" data-reactid="724">
+ <div class="JsEnabled_Op(0) JsEnabled_Bg(n) Trsdu(.42s) Bgr(nr) Bgz(cv) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom:52%;background-image:url(http://l.yimg.com/ny/api/res/1.2/oNs_JQy7IE_SFQ9Zcr7m8g--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/mdaeqRg8x6_neb4vmQs8xw--/dz00ODA7aD0yNDA7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en-US/homerun/delish_597/904270cb6438437fb4389a0d081f227c);" data-reactid="725"></div>
+ </div>
+ <h3 class="M(0) Py(1px)" data-reactid="726"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/actress-secret-pasta-sauce-totally-175617752.html" data-reactid="727"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)" data-reactid="728">Prince Harry's Rumored Girlfriend Has A Killer Hack for "Sexy, Filthy" Pasta</span><u class="StretchedBox Z(1)" data-reactid="729"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)" data-reactid="730">
+ <div class="" data-reactid="731">Delish</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)" data-reactid="732">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured" data-reactid="733">
+ <div class="Pos(r)" data-reactid="734">
+ <div class="Pos(r)" data-reactid="735">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width:600px;" data-reactid="736">
+ <div class="JsEnabled_Op(0) JsEnabled_Bg(n) Trsdu(.42s) Bgr(nr) Bgz(cv) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom:52%;background-image:url(http://l1.yimg.com/ny/api/res/1.2/pSDQ8Jo4JY_WDRKJCdxQTQ--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/.g_ZevDqMH1OvZ8DMfgatQ--/dz02NDA7aD0zNjA7YXBwaWQ9eXRhY2h5b24-/https://s1.yimg.com/uu/api/res/1.2/S4DZyU1UuCH1C70TFpmTIg--/dz02NDA7aD0zNjA7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en-US/video/bloomberg_932/4721c5f146eb6fa3fd8ea81ab78bfe35);" data-reactid="737"></div><span class="JsEnabled_Op(0) JsEnabled_Bg(n) Trsdu(.42s) Bgr(nr) Bgz(cv) StretchedBox M(a) lightweight_D(n) Trsdu(0s)!" style="height:50px;width:50px;background-size:50px;background-image:url(https://s.yimg.com/dh/ap/default/150604/orb.png);" data-reactid="738"><svg xmlns="http://www.w3.org/2000/svg" class="D(b) Pos(r) Mstart(2px) Cur(p)" width="20" style="left:15px;top:15px;fill:#fff;stroke:#fff;stroke-width:0;vertical-align:bottom;" height="20" viewBox="0 0 512 512" data-icon="CorePlay" data-reactid="739"><path d="M82.294 490.295c-20.327 11.736-36.952 2.14-36.952-21.332V42.295c0-23.472 16.632-33.055 36.952-21.332L451.67 234.295c20.318 11.75 20.318 30.945 0 42.682L82.294 490.295z" data-reactid="740"/></svg></span></div>
+ <h3 class="M(0) Py(1px)" data-reactid="741"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/video/aercaps-kelly-china-tremendous-opportunities-024542944.html" data-reactid="742"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)" data-reactid="743">AerCap's Kelly: China Has Tremendous Opportunities</span><u class="StretchedBox Z(1)" data-reactid="744"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)" data-reactid="745">
+ <div class="" data-reactid="746">Bloomberg Video</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)" data-reactid="747">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured" data-reactid="748">
+ <div class="Pos(r)" data-reactid="749">
+ <div class="Pos(r)" data-reactid="750">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width:600px;" data-reactid="751">
+ <div class="JsEnabled_Op(0) JsEnabled_Bg(n) Trsdu(.42s) Bgr(nr) Bgz(cv) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom:52%;background-image:url(http://l.yimg.com/ny/api/res/1.2/4P.2VUVyBAMLiKjfEkUMOA--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/E.5KPKb7t4bUW9kWg3H7rw--/dz0xMzUwO2g9Nzc5O2FwcGlkPXl0YWNoeW9u/https://media.zenfs.com/creatr-images/GLB/2016-06-30/bb999610-3f05-11e6-8172-bdb6a94e43ee_Screen-Shot-2016-06-30-at-4-59-46-PM.png);" data-reactid="752"></div>
+ </div>
+ <h3 class="M(0) Py(1px)" data-reactid="753"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/my-dad-became-an-uber-driver-170616718.html" data-reactid="754"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)" data-reactid="755">Why Uber is the perfect employer for my 70-year-old, hot-air balloon pilot father</span><u class="StretchedBox Z(1)" data-reactid="756"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)" data-reactid="757">
+ <div class="" data-reactid="758">Yahoo Finance</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)" data-reactid="759">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured" data-reactid="760">
+ <div class="Pos(r)" data-reactid="761">
+ <div class="Pos(r)" data-reactid="762">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width:600px;" data-reactid="763">
+ <div class="JsEnabled_Op(0) JsEnabled_Bg(n) Trsdu(.42s) Bgr(nr) Bgz(cv) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom:52%;background-image:url(http://l1.yimg.com/ny/api/res/1.2/AEauiw8DCUeMiiv29Si8Iw--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/Y9PD7_2Ta9jRz_t5W.DNJw--/dz00ODEwO2g9MzIwMTthcHBpZD15dGFjaHlvbg--/https://media.zenfs.com/creatr-images/GLB/2016-10-31/9f64d750-9f8d-11e6-9fe9-d790575cda31_GettyImages-481827878.jpg);" data-reactid="764"></div>
+ </div>
+ <h3 class="M(0) Py(1px)" data-reactid="765"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/this-is-how-fbi-director-comey-really-hurt-the-democrats-172445180.html" data-reactid="766"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)" data-reactid="767">This is how FBI Director Comey really hurt the Democrats</span><u class="StretchedBox Z(1)" data-reactid="768"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)" data-reactid="769">
+ <div class="" data-reactid="770">Yahoo Finance</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="Col2-5-DockedAds-Proxy" data-reactid="771">
+ <div class="ad-wrapper D(n)" data-reactid="772">
+ <div data-reactid="773">
+ <div style="height:250px;" data-reactid="774">
+ <div data-reactid="775">
+ <div data-reactid="776">
+ <div id="defaultLREC2-4-sizer" class="darla-container D-n D(n)" data-reactid="777">
+ <div id="defaultLREC2-4-wrapper" class="" data-reactid="778">
+ <div id="defaultdestLREC2-4" style=""></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div data-reactid="779">
+ <div class="mini-jtd Pos(r) W(300px) Mb(25px)" data-reactid="780"><span data-reactid="781"><div class="Pos(a) T(10px) Start(5px) End(5px) H(128px) Bdrs(2px) Bxsh(jtdCardShadow) Bdw(1px) Bdc(#d9d9d9) Bds(s) Bxz(bb) Bgc(#ffffff)" data-reactid="782"></div></span>
+ <div id="Col2-5-DockedAds-1-DiscussionCarousel" class="Pos(r) H(133px)" data-reactid="783"><span data-reactid="784"><div class="Px(14px) Pt(12px) Pb(10px) Pos(a) H(100%) W(100%) Bdrs(2px) Bxsh(jtdCardShadow) Bdw(1px) Bdc(#d9d9d9) Bds(s) Bxz(bb) Bgc(#ffffff)" data-reactid="785"><div class="Pos(r) H(45px) Mb(7px) Cf" data-reactid="786"><div class="Fl(start) Pos(r) Z(1) W(45px) Pend(9px)" data-reactid="787"><a class="D(b) H(0) Ov(h) Bdrs(2px)" href="/news/reports-detail-trump-campaigns-alleged-ties-to-russia-190230912.html?.tsrc=jtc_news_article" style="padding-bottom:100%;" data-reactid="788"><img class="JsEnabled_Op(0) JsEnabled_Bg(n) Trsdu(.42s) Bgr(nr) Bgz(cv) W(100%)" style="background-image:url(http://l.yimg.com/uu/api/res/1.2/mXdRAmdG60eLYdESH8w5oA--/Zmk9c3RyaW07aD05MDtweW9mZj0wO3E9ODA7dz05MDtzbT0xO2FwcGlkPXl0YWNoeW9u/https://media.zenfs.com/creatr-images/GLB/2016-11-01/d7ce4430-a061-11e6-b4cf-35d5bc59143b_donald-trump-russia-vladimir-putin.jpg);" src="https://s.yimg.com/g/images/spaceball.gif" data-reactid="789" /></a></div><div class="Ov(h) Pt(6px)" data-reactid="790"><h3 class="Mb(5px)" data-reactid="791"><a class="Td(n)" href="/news/reports-detail-trump-campaigns-alleged-ties-to-russia-190230912.html?.tsrc=jtc_news_article" data-reactid="792"><u class="StretchedBox" data-reactid="793"></u><div class="Fw(b) Fz(13px) Lh(16px) LineClamp(2,32px) Pos(r) C(#0078ff)" data-reactid="794">Reports detail Trump campaign’s alleged ties to Russia</div></a></h3></div></div><div class="Pos(r) H(28px) Mb(7px) Cf" data-reactid="795"><div class="Fl(start) Pos(r) W(32px)" data-reactid="796"><a href="/news/reports-detail-trump-campaigns-alleged-ties-to-russia-190230912.html?.tsrc=jtc_news_article" data-reactid="797"><ul class="Pos(r) H(25px) W(32px)" data-reactid="798"><li class="Pos(a)" style="left:-4px;transform:scale(0.76);" data-reactid="799"><img class="JsEnabled_Op(0) JsEnabled_Bg(n) Trsdu(.42s) Bgr(nr) Bgz(cv) W(25px) H(25px) Bdrs(50%) Bdw(2px) Bdc(#ffffff) Bds(s) Bxz(bb)" style="background-image:url(https://s.yimg.com/wv/images/alphatar_100x100_D_ad.jpg);" src="https://s.yimg.com/g/images/spaceball.gif" data-reactid="800" /></li><li class="Pos(a)" style="left:2px;transform:scale(0.88);" data-reactid="801"><img class="JsEnabled_Op(0) JsEnabled_Bg(n) Trsdu(.42s) Bgr(nr) Bgz(cv) W(25px) H(25px) Bdrs(50%) Bdw(2px) Bdc(#ffffff) Bds(s) Bxz(bb)" style="background-image:url(https://s.yimg.com/dg/users/155taHDbfAAEB_gFVvI9oCQ==.large.png);" src="https://s.yimg.com/g/images/spaceball.gif" data-reactid="802" /></li><li class="Pos(a)" style="left:8px;transform:scale(1);" data-reactid="803"><img class="JsEnabled_Op(0) JsEnabled_Bg(n) Trsdu(.42s) Bgr(nr) Bgz(cv) W(25px) H(25px) Bdrs(50%) Bdw(2px) Bdc(#ffffff) Bds(s) Bxz(bb)" style="background-image:url(https://s.yimg.com/wv/images/alphatar_100x100_MW_kl.jpg);" src="https://s.yimg.com/g/images/spaceball.gif" data-reactid="804" /></li></ul></a></div><div class="Ov(h) Pstart(4px)" data-reactid="805"><a class="Td(n)" href="/news/reports-detail-trump-campaigns-alleged-ties-to-russia-190230912.html?.tsrc=jtc_news_article" data-reactid="806"><u class="StretchedBox" data-reactid="807"></u><p class="C(#000) Fz(12px) Lh(14px) LineClamp(2,28px)" data-reactid="808"><span class="Fw(b)" data-reactid="809">Mr. Wizard: </span><span data-reactid="810">The New York Times reported that the FBI spent several months over the summer investigating Russia’s potential meddling in the U.S. election and found no direct link to Trump.</span></p>
+ </a>
+ </div>
+ </div>
+ <div class="Pos(r) Cf Bdtw(1px) Bdtc(#d9d9d9) Bdts(s) Pt(6px)" data-reactid="811"><a class="Fl(start) Fz(12px) Fw(b) Td(n) C(#0078ff) Pt(2px)" href="/news/reports-detail-trump-campaigns-alleged-ties-to-russia-190230912.html?.tsrc=jtc_news_article" data-reactid="812">Join the Conversation</a>
+ <div class="Fl(end) C(#878c9b) Fw(b)" data-reactid="813"><button class="jtdBtnPrev Lh(12px) Px(5px) Py(2px)" data-reactid="814"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="12" style="fill:#878c9b;stroke:#878c9b;stroke-width:0;vertical-align:bottom;" height="12" viewBox="0 0 32 32" data-icon="CoreArrowLeft" data-reactid="815"><path d="M22.72.665c-.886-.887-2.323-.887-3.21 0L4.175 16 19.51 31.335c.442.443 1.023.665 1.604.665s1.162-.222 1.605-.665c.886-.887.886-2.324 0-3.21L10.596 16 22.72 3.876c.887-.887.887-2.324 0-3.21z" data-reactid="816"/></svg></button><span class="Pos(r) Fz(11px) T(-2px)" data-reactid="817"><!-- react-text: 818 -->1<!-- /react-text --><!-- react-text: 819 --> / <!-- /react-text --><!-- react-text: 820 -->5<!-- /react-text --></span><button class="jtdBtnNext Lh(12px) Px(5px) Py(2px)" data-reactid="821"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="12" style="fill:#878c9b;stroke:#878c9b;stroke-width:0;vertical-align:bottom;" height="12" viewBox="0 0 32 32" data-icon="CoreArrowRight" data-reactid="822"><path d="M7.06.665c.887-.887 2.324-.887 3.21 0L25.606 16 10.27 31.335c-.442.443-1.023.665-1.604.665s-1.162-.222-1.605-.665c-.886-.887-.886-2.324 0-3.21L19.185 16 7.06 3.876c-.887-.887-.887-2.324 0-3.21z" data-reactid="823"/></svg></button></div>
+ </div>
+ <div class="Pos(a) T(-8px) End(-10px) W(39px) H(39px) Bg(commentBubbleImg) Bgz(39px,39px)" data-reactid="824"><a href="/news/reports-detail-trump-campaigns-alleged-ties-to-russia-190230912.html?.tsrc=jtc_news_article" data-reactid="825"><u class="StretchedBox" data-reactid="826"></u></a>
+ <p class="Fz(11px) Fw(b) C(#ffffff) Lts(0) Ta(c) Mt(4px)" data-reactid="827">6.2k</p>
+ <div class="W(18px) H(6px) Bg(typingIcon) Bgz(18px,6px) Mstart(10px)" data-reactid="828"></div>
+ </div>
+ </div>
+ </span>
+ </div>
+ </div>
+ <div data-reactid="829">
+ <div id="defaultLREC3-4-sizer" class="darla-container D-n D(n)" data-reactid="830">
+ <div id="defaultLREC3-4-wrapper" class="" data-reactid="831">
+ <div id="defaultdestLREC3-4" style=""></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="YDC-Bottom" class="YDC-Bottom Cl(b) W(100%)" data-reactid="832">
+ <div id="YDC-Bottom-Stack" class="YDC-Bottom-Stack Pos(r) Z(1)" data-reactid="833">
+ <div data-reactid="834">
+ <div id="Bottom-0-Ad-Proxy" data-reactid="835">
+ <div data-reactid="836">
+ <div id="defaultMAST-sizer" class="darla-container D-n D(n)" data-reactid="837">
+ <div id="defaultMAST-wrapper" class="" data-reactid="838">
+ <div id="defaultdestMAST" style=""></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="Bottom-1-Ad-Proxy" data-reactid="839">
+ <div data-reactid="840">
+ <div id="defaultLDRB-sizer" class="darla-container" style="margin-bottom:8px;margin-top:8px;margin-left:auto;margin-right:auto;text-align:center;line-height:0px;" data-reactid="841">
+ <div id="defaultLDRB-wrapper" class="" data-reactid="842">
+ <div id="defaultdestLDRB" style="width:728px;height:90px;"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="Bottom-2-Ad-Proxy" data-reactid="843">
+ <div data-reactid="844">
+ <div id="defaultSPL-sizer" class="darla-container Pos-r Z-0 Pos(r) Ov(a) Z(0) Bg-n Bg(n)" style="height:0;padding-top:0;width:0;" data-reactid="845">
+ <div id="defaultSPL-wrapper" class="Pos-a T-0 B-0 Start-0 End-0 Ov-h Pos(a) T(0) B(0) Start(0) End(0) Ov(h)" data-reactid="846">
+ <div id="defaultdestSPL" style=""></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="Bgc($bg-content) Cf Pos(r)" data-reactid="847">
+ <div class="W(2/3)--md W(1/1)--sm W(3/4) Bxz(bb)" data-reactid="848">
+ <div id="YDC-Col1Ext" class="YDC-Col1Ext Bxz(bb) Mstart(0)--sm Mstart(0)--md Mstart(33.3%) P(20px) W(1/1)--sm W(1/1)--md ie-7_W(45%)" data-reactid="849">
+ <div id="YDC-Col1Ext-Stack" class="YDC-Col1Ext-Stack Pos(r) M(a) Maw(600px) Maw(800px)--lg Mih(650px) Mih(0)--sm" data-reactid="850">
+ <div id="Main" role="content" tabindex="-1" data-reactid="851">
+ <div id="YDC-Stream-Proxy" data-reactid="852"><span data-reactid="853"></span></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="YDC-Col2Ext" class="YDC-Col2Ext Pos(a) T(0) End(0) W(1/3)--md W(1/4) D(n)--sm" data-reactid="854">
+ <div class="sticky-outer-wrapper" data-reactid="855">
+ <div class="sticky-inner-wrapper" style="position:relative;top:0px;" data-reactid="856">
+ <div id="YDC-Col2Ext-Stack" class="YDC-Col2Ext-Stack Pos(r) Bxz(bb) Maw(340px) P(20px) W(100%)" data-reactid="857">
+ <div class="M(a) W(0)" data-reactid="858">
+ <div class="Pos(r) Start(-150px) W(300px)" data-reactid="859">
+ <div id="Aside" role="complementary" tabindex="-1" data-reactid="860">
+ <div id="Col2Ext-0-Stream-Proxy" data-reactid="861"><span data-reactid="862"></span></div>
+ <div id="Col2Ext-1-Ad-Proxy" data-reactid="863">
+ <div data-reactid="864">
+ <div id="defaultLREC2-sizer" class="darla-container" style="margin-top:8px;margin-bottom:8px;" data-reactid="865">
+ <div id="defaultLREC2-wrapper" class="" data-reactid="866">
+ <div id="defaultdestLREC2" style="width:300px;height:250px;"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="Col2Ext-2-Stream-Proxy" data-reactid="867"><span data-reactid="868"></span></div>
+ <div id="Col2Ext-3-Ad-Proxy" data-reactid="869">
+ <div data-reactid="870">
+ <div id="defaultLREC3-sizer" class="darla-container" style="margin-top:8px;margin-bottom:8px;" data-reactid="871">
+ <div id="defaultLREC3-wrapper" class="" data-reactid="872">
+ <div id="defaultdestLREC3" style="width:300px;height:250px;"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="Col2Ext-4-Footer-Proxy" data-reactid="873">
+ <ul class="yvpDocked_Mt(260px)" data-test-locator="tdv2-applet-footer" data-reactid="874">
+ <li class="D(ib) mouseover Mend(6px) Lh(22px)" data-test-locator="footer-item" data-reactid="875"><a title="Data Disclaimer" href="https://help.yahoo.com/kb/finance/SLN2310.html?impressions=true" class="Tt(c) Fz(13px) Td(n) mouseover:h_Op(1) mouseover:h_Td(u) C(#3c3c5b) Op(.4)" data-reactid="876">Data Disclaimer</a></li>
+ <li class="D(ib) mouseover Mend(6px) Lh(22px)" data-test-locator="footer-item" data-reactid="877"><a title="Help" href="http://help.yahoo.com/l/us/yahoo/finance/" class="Tt(c) Fz(13px) Td(n) mouseover:h_Op(1) mouseover:h_Td(u) C(#3c3c5b) Op(.4)" data-reactid="878">Help</a></li>
+ <li class="D(ib) mouseover Mend(6px) Lh(22px)" data-test-locator="footer-item" data-reactid="879"><a title="Suggestions" href="http://yahoo.uservoice.com/forums/207809" class="Tt(c) Fz(13px) Td(n) mouseover:h_Op(1) mouseover:h_Td(u) C(#3c3c5b) Op(.4)" data-reactid="880">Suggestions</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="YDC-Overlay" class="YDC-Overlay" data-reactid="881">
+ <div id="YDC-Overlay-Stack" class="YDC-Overlay-Stack Z(11) End(0) Pos(f) Start(0) lw-nav-open_Pos(r) lw-nav-open_Z(10) T(0)" data-reactid="882">
+ <div data-reactid="883">
+ <div id="Overlay-0-MtfModal-Proxy" data-reactid="884">
+ <!-- react-empty: 885 -->
+ </div>
+ <div id="Overlay-1-Lightbox-Proxy" data-reactid="886">
+ <div id="Overlay-1-Lightbox" class="lightbox" data-reactid="887">
+ <div tabindex="-1" class="lightbox-wrapper Ta(c) Pos(f) T(0) Start(0) H(100%) W(100%) D(n)! Op(0)" data-reactid="888">
+ <div id="myLightboxContainer" class="Ta(start) Pos(r) Z(1) T(0) Maw(100%) P(0) D(n)!" aria-describedby="lightbox-container" role="alertdialog" data-reactid="889"></div><b class="ModalShim" data-reactid="890"></b><b class="IEShim" data-reactid="891"></b></div>
+ </div>
+ </div>
+ <div id="Overlay-2-QuoteFlyout-Proxy" data-reactid="892">
+ <div class="D(n)" data-reactid="893"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="render-target-modal O(n)!:f Bdc(#e0e4e9) Bdrs(6px) Bdstarts(s) Bdstartw(1px) Bdts(s) Bdtw(1px) Bxsh(modalShadow) D(n) H(a)! Mih(100%) ) modal-postopen_Op(1) Pos(a) T(76px) CollapsibleUh_T(60px) Start(0) End(0) Maw(1230px) Miw(984px) Mx(a) modal-open_D(b) modal-postopen_D(b) W(100%) H(100%) Z(9)" id="render-target-modal" data-reactid="894"><span data-reactid="895"></span></div>
+ </div>
+ </div>
+ <script>
+ (function(root) {
+ /* -- Data -- */
+ root.App || (root.App = {});
+ root.App.now = 1478058901412;
+ root.App.main = {
+ "context": {
+ "dispatcher": {
+ "stores": {
+ "PageStore": {
+ "currentPageName": "content",
+ "currentRenderTargetId": "default",
+ "pagesConfigRaw": {
+ "base": {
+ "content": {
+ "layout": {
+ "name": "RC5TwoColumnLayout",
+ "config": {
+ "Side": {
+ "isSticky": false
+ },
+ "UH": {
+ "height": 128,
+ "slotHeight": 128,
+ "isFixed": true
+ },
+ "enablePrefetchResource": true,
+ "Col2": {
+ "sticky": {
+ "bottomBoundary": "{renderTargetId} .YDC-Col1"
+ },
+ "isSticky": false
+ },
+ "Col2Ext": {
+ "sticky": {}
+ },
+ "fetchNewAttribution": true,
+ "enableCanvassInit": true
+ },
+ "meta": {
+ "name": {
+ "msapplication-TileColor": "#6e329d",
+ "msapplication-TileImage": "https:\u002F\u002Fs.yimg.com\u002Fos\u002Fmit\u002Fmedia\u002Fp\u002Fpresentation\u002Fimages\u002Ficons\u002Fwin8-tile-1484740.png",
+ "referrer": "origin",
+ "theme-color": "#400090",
+ "twitter:dnt": "on",
+ "twitter:site": "@Yahoo"
+ },
+ "property": {
+ "og:type": "website",
+ "twitter:site": "@YahooFinance"
+ }
+ },
+ "enableCtopid": true,
+ "title": "Yahoo Finance"
+ },
+ "enableSpinner": true,
+ "regions": {
+ "UH": [{
+ "bundleName": "react-finance",
+ "name": "UH",
+ "props": {
+ "urlPrefix": "https:\u002F\u002Ffinance.yahoo.com\u002F",
+ "key": "UH-0-UH",
+ "id": "UH-0-UH"
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "react-finance",
+ "name": "TopNav",
+ "props": {
+ "className": "Bgc(#fff) Bxsh($lightGrayBoxShadow) Mt(68px) H(40px) Miw(1024px)",
+ "urlPrefix": "https:\u002F\u002Ffinance.yahoo.com",
+ "key": "UH-1-TopNav",
+ "id": "UH-1-TopNav"
+ },
+ "isPageComposite": true
+ }],
+ "Overlay": [{
+ "bundleName": "tdv2-applet-mtfpopup",
+ "name": "MtfModal",
+ "props": {
+ "key": "Overlay-0-MtfModal",
+ "id": "Overlay-0-MtfModal"
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "react-lightbox",
+ "name": "Lightbox",
+ "props": {
+ "key": "Overlay-1-Lightbox",
+ "id": "Overlay-1-Lightbox"
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "react-finance",
+ "name": "QuoteFlyout",
+ "props": {
+ "chartPrefixUrl": "https:\u002F\u002Ffinance.yahoo.com\u002F",
+ "quotePrefixUrl": "https:\u002F\u002Ffinance.yahoo.com\u002F",
+ "key": "Overlay-2-QuoteFlyout",
+ "id": "Overlay-2-QuoteFlyout"
+ },
+ "isPageComposite": true
+ }],
+ "Hero": [{
+ "bundleName": "react-finance",
+ "name": "FinanceHeader",
+ "props": {
+ "adsConfig": {
+ "fetchAds": false
+ },
+ "className": "Mx(20px)",
+ "showAds": true,
+ "chartPrefixUrl": "https:\u002F\u002Ffinance.yahoo.com\u002F",
+ "quotePrefixUrl": "https:\u002F\u002Ffinance.yahoo.com\u002F",
+ "key": "Hero-0-FinanceHeader",
+ "id": "Hero-0-FinanceHeader"
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "tdv2-applet-breakingnews",
+ "name": "TDV2BreakingNews",
+ "perfLabel": "BreakingNews",
+ "config": {
+ "category": "LISTID:58dada6c-c801-483e-95af-f964921334ce",
+ "showClose": false
+ },
+ "props": {
+ "className": "Pstart(32px) W(100%)",
+ "key": "Hero-1-TDV2BreakingNews",
+ "id": "Hero-1-TDV2BreakingNews"
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "tdv2-applet-slideshow",
+ "name": "HeroSlideshow",
+ "props": {
+ "adRefreshPositions": ["LREC2", "LREC-2"],
+ "key": "Hero-2-HeroSlideshow",
+ "id": "Hero-2-HeroSlideshow"
+ },
+ "config": {
+ "enableInterstitialAd": true
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "tdv2-applet-content-canvas",
+ "name": "HeadComponentVideo",
+ "config": {
+ "videoFallbackChannel": "finance-videotron",
+ "enableVideoDocking": true
+ },
+ "props": {
+ "key": "Hero-3-HeadComponentVideo",
+ "id": "Hero-3-HeadComponentVideo"
+ },
+ "isPageComposite": true
+ }],
+ "Lead": [{
+ "bundleName": "tdv2-applet-content-canvas",
+ "name": "CommonSlotComposite",
+ "props": {
+ "slotPosition": "north",
+ "className": "Pt(20px) Pstart(20px) Pend(20px)",
+ "key": "Lead-0-CommonSlotComposite",
+ "id": "Lead-0-CommonSlotComposite"
+ },
+ "isPageComposite": true
+ }],
+ "SideTop": [{
+ "bundleName": "tdv2-applet-content-canvas",
+ "name": "HeadComponentTitle",
+ "props": {
+ "key": "SideTop-0-HeadComponentTitle",
+ "id": "SideTop-0-HeadComponentTitle"
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "tdv2-applet-content-canvas",
+ "name": "OneIdButtons",
+ "config": {
+ "enable": false
+ },
+ "props": {
+ "key": "SideTop-1-OneIdButtons",
+ "id": "SideTop-1-OneIdButtons"
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "tdv2-applet-content-canvas",
+ "name": "HeadComponentAttribution",
+ "config": {
+ "attribution": {
+ "forceEnableProvider": true,
+ "enableNewAttribution": true,
+ "enableCanvassComments": true
+ }
+ },
+ "props": {
+ "key": "SideTop-2-HeadComponentAttribution",
+ "id": "SideTop-2-HeadComponentAttribution"
+ },
+ "isPageComposite": true
+ }],
+ "Side": [{
+ "bundleName": "tdv2-applet-content-canvas",
+ "name": "CanvasShareButtons",
+ "props": {
+ "mailHost": "www.yahoo.com",
+ "className": "left-share-buttons",
+ "orientation": "VERTICAL",
+ "ylkData": {
+ "subsec": "side-left"
+ },
+ "key": "Side-0-CanvasShareButtons",
+ "id": "Side-0-CanvasShareButtons"
+ },
+ "config": {
+ "shareButtons": {
+ "enableCanvassComments": true,
+ "enableMtfModal": true
+ }
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "tdv2-applet-content-canvas",
+ "name": "CommonSlotComposite",
+ "props": {
+ "slotPosition": "west",
+ "key": "Side-1-CommonSlotComposite",
+ "id": "Side-1-CommonSlotComposite"
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "tdv2-applet-swisschamp",
+ "name": "Empty",
+ "props": {
+ "key": "Side-2-Empty",
+ "id": "Side-2-Empty"
+ },
+ "isPageComposite": true
+ }],
+ "Col1": [{
+ "bundleName": "tdv2-applet-content-canvas",
+ "name": "ContentCanvas",
+ "perfLabel": "ContentCanvas",
+ "config": {
+ "ads": {
+ "enableInterstitialAd": true
+ },
+ "attribution": {
+ "forceEnableProvider": true,
+ "enableNewAttribution": true
+ },
+ "enableCanvassComments": true,
+ "openNewPageForPreviewReadMore": true,
+ "enableVideoAutoPlay": true,
+ "enableVideoDocking": true,
+ "includeBodyImageInSlideshow": true,
+ "openLightboxForImages": true
+ },
+ "critical": true,
+ "props": {
+ "key": "Col1-0-ContentCanvas",
+ "id": "Col1-0-ContentCanvas"
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "react-finance",
+ "name": "IFrame",
+ "props": {
+ "src": "\u002F\u002Fwww.bankrate.com\u002Fwidgets\u002Fyho\u002Frate-table-story.aspx",
+ "allowtransparency": true,
+ "className": "H(440px) W(100%) Bd(0)",
+ "scrolling": "no",
+ "key": "Col1-1-IFrame",
+ "id": "Col1-1-IFrame"
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "tdv2-applet-content-canvas",
+ "name": "CanvasShareButtons",
+ "props": {
+ "mailHost": "www.yahoo.com",
+ "className": "bottom-share-buttons Pb(35px) Pt(20px)",
+ "key": "Col1-2-CanvasShareButtons",
+ "id": "Col1-2-CanvasShareButtons"
+ },
+ "config": {
+ "shareButtons": {
+ "enableCanvassComments": true,
+ "enableMtfModal": true
+ }
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "tdv2-applet-content-canvas",
+ "name": "CanvassComments",
+ "perfLabel": "CanvassComments",
+ "skipRenderWhenLcp": true,
+ "initMode": {
+ "deferRender": true,
+ "deferInitializeAction": true
+ },
+ "props": {
+ "key": "Col1-3-CanvassComments",
+ "id": "Col1-3-CanvassComments"
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "td-ads",
+ "name": "Ad",
+ "props": {
+ "pos": "FOOT",
+ "key": "Col1-4-Ad",
+ "id": "Col1-4-Ad"
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "td-ads",
+ "name": "Ad",
+ "props": {
+ "pos": "FSRVY",
+ "key": "Col1-5-Ad",
+ "id": "Col1-5-Ad"
+ },
+ "isPageComposite": true
+ }],
+ "Col2": [{
+ "bundleName": "react-finance",
+ "name": "SymbolLookup",
+ "props": {
+ "allowedContentTypes": ["story"],
+ "resultClassNames": "W(100%) Bxz(bb) Z(10)",
+ "urlPrefix": "https:\u002F\u002Ffinance.yahoo.com\u002F",
+ "key": "Col2-0-SymbolLookup",
+ "id": "Col2-0-SymbolLookup"
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "react-finance",
+ "name": "RecentQuotes",
+ "props": {
+ "containerClassNames": "My(20px)",
+ "allowedContentTypes": ["story"],
+ "quotePrefixUrl": "https:\u002F\u002Ffinance.yahoo.com\u002F",
+ "newsPrefixUrl": "https:\u002F\u002Ffinance.yahoo.com\u002F",
+ "chartPrefixUrl": "https:\u002F\u002Ffinance.yahoo.com\u002F",
+ "watchlistPrefixUrl": "https:\u002F\u002Ffinance.yahoo.com\u002F",
+ "key": "Col2-1-RecentQuotes",
+ "id": "Col2-1-RecentQuotes"
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "td-ads",
+ "name": "Ad",
+ "props": {
+ "pos": "LREC",
+ "style": {
+ "marginBottom": "20px"
+ },
+ "key": "Col2-2-Ad",
+ "id": "Col2-2-Ad"
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "tdv2-applet-content-canvas",
+ "name": "CommonSlotComposite",
+ "props": {
+ "slotPosition": "east",
+ "className": "Pt(20px) Pstart(20px) Pend(20px)",
+ "key": "Col2-3-CommonSlotComposite",
+ "id": "Col2-3-CommonSlotComposite"
+ },
+ "initMode": {
+ "deferRender": true,
+ "deferInitializeAction": true
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "tdv2-applet-swisschamp",
+ "name": "HeightContainer",
+ "props": {
+ "childComponentConfig": {
+ "bundleName": "tdv2-applet-stream",
+ "name": "Stream",
+ "perfLabel": "Sidekick",
+ "config": {
+ "ads": {
+ "useHqImg": true,
+ "enableGeminiAdFeedback": true,
+ "frequency": 3
+ },
+ "batches": {
+ "pagination": false,
+ "size": 32,
+ "start_index": 0,
+ "end_index": 15
+ },
+ "blending_enabled": true,
+ "category": "SIDEKICK:TOPSTORIES",
+ "i13n": {
+ "sec": "sdkick"
+ },
+ "max_exclude": 10,
+ "ui": {
+ "attribution_pos": "bottom",
+ "featured_summary": false,
+ "follow_content": false,
+ "inline_filters_max": 0,
+ "magazine_icon": false,
+ "smart_crop": true,
+ "smush_images": true,
+ "summary": false,
+ "view": "sidekick"
+ },
+ "video": {
+ "use_inline_video": false
+ },
+ "use_prefetch": true,
+ "use_content_id": true
+ },
+ "initMode": {
+ "deferRender": false,
+ "deferInitializeAction": false
+ },
+ "props": {
+ "key": "Col2-4-HeightContainer-0-Stream",
+ "id": "Col2-4-HeightContainer-0-Stream"
+ }
+ },
+ "itemsToTruncate": ".js-stream-content",
+ "itemsThatIncreaseHeight": [".YDC-Col1 .content-canvas", ".YDC-Col1 .canvas-share-buttons", ".YDC-Lead"],
+ "itemsThatDecreaseHeight": ["#ad-LREC-sizer", "#Col2-0-SymbolLookup", "#Col2-1-RecentQuotes"],
+ "key": "Col2-4-HeightContainer",
+ "id": "Col2-4-HeightContainer"
+ },
+ "initMode": {
+ "deferRender": false,
+ "deferInitializeAction": false
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "td-ads",
+ "name": "DockedAds",
+ "props": {
+ "children": [{
+ "bundleName": "td-ads",
+ "name": "Ad",
+ "props": {
+ "pos": "LREC2-4",
+ "style": {
+ "marginBottom": "20px"
+ },
+ "key": "Col2-5-DockedAds-0-Ad",
+ "id": "Col2-5-DockedAds-0-Ad"
+ }
+ }, {
+ "bundleName": "tdv2-applet-discussion",
+ "name": "DiscussionCarousel",
+ "config": {
+ "ui": {
+ "enable_canvass_comments": true
+ }
+ },
+ "props": {
+ "className": "W(300px) Mb(25px)",
+ "key": "Col2-5-DockedAds-1-DiscussionCarousel",
+ "id": "Col2-5-DockedAds-1-DiscussionCarousel"
+ }
+ }, {
+ "bundleName": "td-ads",
+ "name": "Ad",
+ "props": {
+ "pos": "LREC3-4",
+ "key": "Col2-5-DockedAds-2-Ad",
+ "id": "Col2-5-DockedAds-2-Ad"
+ }
+ }],
+ "targetSelector": ".YDC-Col1 .tdv2-applet-canvass",
+ "targetIndex": 0,
+ "key": "Col2-5-DockedAds",
+ "id": "Col2-5-DockedAds"
+ },
+ "isPageComposite": true
+ }],
+ "Bottom": [{
+ "bundleName": "td-ads",
+ "name": "Ad",
+ "props": {
+ "pos": "MAST",
+ "style": {
+ "marginBottom": "8px",
+ "marginTop": "8px",
+ "marginLeft": "auto",
+ "marginRight": "auto",
+ "textAlign": "center"
+ },
+ "key": "Bottom-0-Ad",
+ "id": "Bottom-0-Ad"
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "td-ads",
+ "name": "Ad",
+ "props": {
+ "pos": "LDRB",
+ "style": {
+ "marginBottom": "8px",
+ "marginTop": "8px",
+ "marginLeft": "auto",
+ "marginRight": "auto",
+ "textAlign": "center",
+ "lineHeight": "0px"
+ },
+ "key": "Bottom-1-Ad",
+ "id": "Bottom-1-Ad"
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "td-ads",
+ "name": "Ad",
+ "props": {
+ "pos": "SPL",
+ "key": "Bottom-2-Ad",
+ "id": "Bottom-2-Ad"
+ },
+ "isPageComposite": true
+ }],
+ "Col1Ext": [{
+ "bundleName": "tdv2-applet-stream",
+ "name": "Stream",
+ "id": "YDC-Stream",
+ "perfLabel": "Stream",
+ "config": {
+ "ads": {
+ "enableGeminiAdFeedback": true,
+ "frequency": 3,
+ "se": 5417818,
+ "contentType": "video\u002Fmp4,application\u002Fx-shockwave-flash",
+ "inline_video": true,
+ "videoBeaconDisabled": true,
+ "enableEndCard": true,
+ "type": "STRM,STRM_CONTENT,STRM_VIDEO"
+ },
+ "cache_ttl": 300,
+ "offnet": {
+ "use_preview": true,
+ "include_lcp": true
+ },
+ "persist_category": true,
+ "ui": {
+ "follow_content": true,
+ "inline_filters_max": 0,
+ "ntk_bypassA3c": true,
+ "related_enabled": true,
+ "smart_crop": true,
+ "tumblr_reblog": false,
+ "breaking_news": false,
+ "enable_canvass_comments": true,
+ "show_comments_drawer": false,
+ "share_buttons": {
+ "enable": true
+ },
+ "show_label": true,
+ "view": "mega",
+ "featured_count": 1,
+ "tiles": {
+ "resizeImages": true
+ },
+ "button_pos": "right"
+ },
+ "use_mags_nydc": true,
+ "use_prefetch": true,
+ "pageload_image_count": 200,
+ "use_content_id": true,
+ "use_page_category": true,
+ "components": {
+ "StreamHeroCarousel": {
+ "ui": {
+ "enable_canvass_comments": true,
+ "show_comments_drawer": false
+ }
+ }
+ },
+ "category": "YPROP:FINANCE",
+ "use_content_site": true,
+ "video": {
+ "enable_ads": false,
+ "use_inline_video": true
+ }
+ },
+ "critical": false,
+ "initMode": {
+ "deferRender": true,
+ "deferInitializeAction": true
+ },
+ "props": {
+ "key": "YDC-Stream",
+ "id": "YDC-Stream"
+ },
+ "isPageComposite": true
+ }],
+ "Col2Ext": [{
+ "bundleName": "tdv2-applet-stream",
+ "name": "Stream",
+ "config": {
+ "ads": {
+ "useHqImg": true,
+ "enableGeminiAdFeedback": true,
+ "frequency": 3
+ },
+ "batches": {
+ "pagination": false,
+ "size": 32,
+ "start_index": 16,
+ "end_index": 18
+ },
+ "blending_enabled": true,
+ "extended_sidekick": true,
+ "category": "SIDEKICK:TOPSTORIES",
+ "i13n": {
+ "sec": "sdkick"
+ },
+ "max_exclude": 10,
+ "ui": {
+ "attribution_pos": "bottom",
+ "featured_summary": false,
+ "follow_content": false,
+ "inline_filters_max": 0,
+ "magazine_icon": false,
+ "summary": false,
+ "view": "sidekick",
+ "title": "disabled"
+ },
+ "video": {
+ "use_inline_video": false
+ },
+ "use_prefetch": true
+ },
+ "initMode": {
+ "deferRender": true,
+ "deferInitializeAction": true
+ },
+ "props": {
+ "key": "Col2Ext-0-Stream",
+ "id": "Col2Ext-0-Stream"
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "td-ads",
+ "name": "Ad",
+ "props": {
+ "pos": "LREC2",
+ "style": {
+ "marginTop": "8px",
+ "marginBottom": "8px"
+ },
+ "key": "Col2Ext-1-Ad",
+ "id": "Col2Ext-1-Ad"
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "tdv2-applet-stream",
+ "name": "Stream",
+ "config": {
+ "ads": {
+ "useHqImg": true,
+ "enableGeminiAdFeedback": true,
+ "frequency": 3
+ },
+ "batches": {
+ "pagination": false,
+ "size": 32,
+ "start_index": 19,
+ "end_index": 31
+ },
+ "blending_enabled": true,
+ "extended_sidekick": true,
+ "category": "SIDEKICK:TOPSTORIES",
+ "i13n": {
+ "sec": "sdkick"
+ },
+ "max_exclude": 10,
+ "ui": {
+ "attribution_pos": "bottom",
+ "featured_summary": false,
+ "follow_content": false,
+ "inline_filters_max": 0,
+ "magazine_icon": false,
+ "summary": false,
+ "view": "sidekick",
+ "title": "disabled"
+ },
+ "video": {
+ "use_inline_video": false
+ },
+ "use_prefetch": true
+ },
+ "initMode": {
+ "deferRender": true,
+ "deferInitializeAction": true
+ },
+ "props": {
+ "key": "Col2Ext-2-Stream",
+ "id": "Col2Ext-2-Stream"
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "td-ads",
+ "name": "Ad",
+ "props": {
+ "pos": "LREC3",
+ "style": {
+ "marginTop": "8px",
+ "marginBottom": "8px"
+ },
+ "key": "Col2Ext-3-Ad",
+ "id": "Col2Ext-3-Ad"
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "tdv2-applet-footer",
+ "name": "Footer",
+ "config": {
+ "links": ["disclaimer", "help", "suggestions"],
+ "wrapperClassName": "yvpDocked_Mt(260px)",
+ "linkMeta": {
+ "disclaimer": {
+ "title": "DISCLAIMER",
+ "href": "https:\u002F\u002Fhelp.yahoo.com\u002Fkb\u002Ffinance\u002FSLN2310.html?impressions=true"
+ },
+ "help": {
+ "title": "HELP",
+ "href": "http:\u002F\u002Fhelp.yahoo.com\u002Fl\u002Fus\u002Fyahoo\u002Ffinance\u002F"
+ },
+ "suggestions": {
+ "title": "SUGGESTIONS",
+ "href": "http:\u002F\u002Fyahoo.uservoice.com\u002Fforums\u002F207809"
+ }
+ }
+ },
+ "props": {
+ "key": "Col2Ext-4-Footer",
+ "id": "Col2Ext-4-Footer"
+ },
+ "isPageComposite": true
+ }],
+ "preLoadUH": [{
+ "bundleName": "tdv2-applet-uh",
+ "name": "Header",
+ "perfLabel": "UH",
+ "config": {
+ "uh": {
+ "actions": {
+ "loadNav": false
+ },
+ "featureSwitches": {
+ "navrailCollapse": true
+ },
+ "follow": {
+ "style": {
+ "button": {
+ "inline": {}
+ },
+ "followcount": {}
+ },
+ "data": {
+ "icon": {
+ "follow": {}
+ }
+ },
+ "count": {}
+ },
+ "help": {
+ "data": {
+ "items": {
+ "help": {
+ "url": {}
+ },
+ "suggestions": {
+ "url": {}
+ }
+ }
+ }
+ },
+ "logo": {
+ "style": {
+ "property": {},
+ "yahoo": {},
+ "container": {}
+ }
+ },
+ "mail": {
+ "data": {
+ "icon": {
+ "mail": {}
+ }
+ },
+ "style": {
+ "button": {},
+ "mailcount": {}
+ }
+ },
+ "placeHolder": {
+ "width": ""
+ },
+ "profile": {},
+ "promotedNotification": {
+ "enabled": true,
+ "promoId": "20160606",
+ "timeToResurrect": 1814400
+ },
+ "search": {
+ "autocomplete": {
+ "gossip": {
+ "url": {
+ "query": {
+ "appid": "yahoo.com",
+ "nresults": 10,
+ "output": "yjsonp",
+ "region": "US",
+ "lang": "en-US"
+ },
+ "protocol": "https",
+ "host": "s.yimg.com",
+ "path": "\u002Fxb\u002Fv6\u002Ffinance\u002Fautocomplete"
+ },
+ "isJSONP": true,
+ "queryKey": "query",
+ "resultAccessor": "ResultSet.Result",
+ "suggestionTitleAccessor": "symbol",
+ "suggestionMeta": ["symbol", "name", "exch", "type", "exchDisp", "typeDisp"]
+ }
+ },
+ "instantSearch": false,
+ "icon": {},
+ "queries": {
+ "fr": "uh3_finance_vert"
+ },
+ "style": {
+ "input": {},
+ "container": {},
+ "search_button": {}
+ },
+ "placeholder": "UH_SEARCH_WEB"
+ },
+ "searchOrigin": {},
+ "style": {
+ "container": {}
+ },
+ "topbar": {
+ "style": {
+ "nav_main": {
+ "link": {}
+ }
+ },
+ "data": {
+ "homeSwitcher": {
+ "enabled": false
+ }
+ }
+ },
+ "ui": {
+ "back": false,
+ "help": false,
+ "mail": true,
+ "profile": true,
+ "search": true,
+ "share": false,
+ "skip_nav": false,
+ "profileNotifications": true
+ },
+ "useTopicTitle": false
+ },
+ "mrt": {
+ "flush": false,
+ "cache": true,
+ "skipAlertOnChecksumMismatch": true,
+ "prioritize": false
+ }
+ },
+ "props": {
+ "key": "preLoadUH-0-Header",
+ "id": "preLoadUH-0-Header"
+ },
+ "isPageComposite": true
+ }]
+ },
+ "title": "Yahoo",
+ "yvapid": "193",
+ "ads": {
+ "events": {
+ "adFetch": {
+ "ps": "BTN,BTN-1,BTN-2,BTN-3,MAST,LDRB,SPL,LREC,LREC2,LREC3,FOOT,FSRVY",
+ "dynamic": true,
+ "addsa": "megamodal=true",
+ "firstRender": "BTN,BTN-1,BTN-2,BTN-3,LREC"
+ }
+ },
+ "contentTypeAdPosModifier": {
+ "slideshow": ["-LREC", "LREC-2", "LREC2"],
+ "inlineSlideshow": []
+ },
+ "deferRender": true
+ },
+ "i13n": {
+ "rapid": {
+ "keys": {
+ "layout": "y20stream",
+ "pd": "non_modal",
+ "pt": 4
+ }
+ }
+ },
+ "initializeAction": "initializeContentPage",
+ "_context": {
+ "site": "finance",
+ "pageType": "content",
+ "renderTarget": "default"
+ }
+ }
+ },
+ "headerOverride": {},
+ "queryOverride": {}
+ },
+ "compositeConfig": {
+ "canvass-80b35014-fba3-377e-adc5-47fb44f61fa7": {
+ "name": "canvass-80b35014-fba3-377e-adc5-47fb44f61fa7",
+ "components": [{
+ "bundleName": "tdv2-applet-canvass",
+ "name": "CanvassApplet",
+ "config": {
+ "ui": {
+ "containerExtraClasses": "BdT Bdtc(#222) Bdtw(2px)",
+ "enableCommentsToggle": true,
+ "expanded": false,
+ "showContextDisplayText": false
+ }
+ },
+ "props": {
+ "instanceId": "canvass-80b35014-fba3-377e-adc5-47fb44f61fa7",
+ "context": "80b35014-fba3-377e-adc5-47fb44f61fa7",
+ "contextDisplayText": "These are the 8 coolest PlayStation VR games",
+ "contextUrl": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Fbest-psvr-games-170003443.html",
+ "oauthConsumerKey": "frontpage.oauth.canvass",
+ "oauthConsumerSecret": "frontpage.oauth.canvass.secret",
+ "uploadOptions": "TEXT,GIF,SMARTLINKS",
+ "key": "canvass-80b35014-fba3-377e-adc5-47fb44f61fa7-0-CanvassApplet",
+ "id": "canvass-80b35014-fba3-377e-adc5-47fb44f61fa7-0-CanvassApplet"
+ }
+ }]
+ },
+ "Lead-0-CommonSlotComposite": {
+ "name": "Lead-0-CommonSlotComposite",
+ "components": []
+ },
+ "Side-1-CommonSlotComposite": {
+ "name": "Side-1-CommonSlotComposite",
+ "components": []
+ },
+ "Col2-4-HeightContainer": {
+ "parentComponent": {
+ "bundleName": "tdv2-applet-swisschamp",
+ "name": "HeightContainer"
+ },
+ "name": "Col2-4-HeightContainer",
+ "components": [{
+ "bundleName": "tdv2-applet-stream",
+ "name": "Stream",
+ "perfLabel": "Sidekick",
+ "config": {
+ "ads": {
+ "useHqImg": true,
+ "enableGeminiAdFeedback": true,
+ "frequency": 3
+ },
+ "batches": {
+ "pagination": false,
+ "size": 32,
+ "start_index": 0,
+ "end_index": 15
+ },
+ "blending_enabled": true,
+ "category": "SIDEKICK:TOPSTORIES",
+ "i13n": {
+ "sec": "sdkick"
+ },
+ "max_exclude": 10,
+ "ui": {
+ "attribution_pos": "bottom",
+ "featured_summary": false,
+ "follow_content": false,
+ "inline_filters_max": 0,
+ "magazine_icon": false,
+ "smart_crop": true,
+ "smush_images": true,
+ "summary": false,
+ "view": "sidekick"
+ },
+ "video": {
+ "use_inline_video": false
+ },
+ "use_prefetch": true,
+ "use_content_id": true
+ },
+ "initMode": {
+ "deferRender": false,
+ "deferInitializeAction": false
+ },
+ "props": {
+ "key": "Col2-4-HeightContainer-0-Stream",
+ "id": "Col2-4-HeightContainer-0-Stream"
+ }
+ }]
+ },
+ "Col2-5-DockedAds": {
+ "parentComponent": {
+ "bundleName": "td-ads",
+ "name": "DockedAds"
+ },
+ "name": "Col2-5-DockedAds",
+ "components": [{
+ "bundleName": "td-ads",
+ "name": "Ad",
+ "props": {
+ "pos": "LREC2-4",
+ "style": {
+ "marginBottom": "20px"
+ },
+ "key": "Col2-5-DockedAds-0-Ad",
+ "id": "Col2-5-DockedAds-0-Ad"
+ }
+ }, {
+ "bundleName": "tdv2-applet-discussion",
+ "name": "DiscussionCarousel",
+ "config": {
+ "ui": {
+ "enable_canvass_comments": true
+ }
+ },
+ "props": {
+ "className": "W(300px) Mb(25px)",
+ "key": "Col2-5-DockedAds-1-DiscussionCarousel",
+ "id": "Col2-5-DockedAds-1-DiscussionCarousel"
+ }
+ }, {
+ "bundleName": "td-ads",
+ "name": "Ad",
+ "props": {
+ "pos": "LREC3-4",
+ "key": "Col2-5-DockedAds-2-Ad",
+ "id": "Col2-5-DockedAds-2-Ad"
+ }
+ }]
+ },
+ "account-switch-uh": {
+ "name": "account-switch-uh",
+ "components": [{
+ "bundleName": "tdv2-applet-account-switch",
+ "name": "AccountSwitch",
+ "config": {
+ "isEnabled": true,
+ "styles": {
+ "avatar": {},
+ "secondary_accounts": {}
+ }
+ },
+ "props": {
+ "key": "account-switch-uh-0-AccountSwitch",
+ "id": "account-switch-uh-0-AccountSwitch"
+ }
+ }]
+ }
+ },
+ "compositeStatus": {
+ "canvass-80b35014-fba3-377e-adc5-47fb44f61fa7": 1,
+ "Lead-0-CommonSlotComposite": 1,
+ "Side-1-CommonSlotComposite": 1,
+ "Col2-4-HeightContainer": 1,
+ "Col2-5-DockedAds": 1,
+ "account-switch-uh": 1
+ },
+ "pageData": {
+ "amp": {
+ "enabled": true
+ },
+ "title": "These are the 8 coolest PlayStation VR games",
+ "description": "To help you decide what’s what, I’ve put together this list of the 8 PSVR games worth considering. Beloved cult hit “Rez” gets the VR treatment to help launch the PSVR, and the results are terrific. Chaos, for sure, and also “Thumper.” Called a “violent rhythm game” by its creators, “Thumper” is, well",
+ "meta": {
+ "name": {
+ "msapplication-TileColor": "#6e329d",
+ "msapplication-TileImage": "https:\u002F\u002Fs.yimg.com\u002Fos\u002Fmit\u002Fmedia\u002Fp\u002Fpresentation\u002Fimages\u002Ficons\u002Fwin8-tile-1484740.png",
+ "referrer": "origin",
+ "theme-color": "#400090",
+ "twitter:dnt": "on",
+ "twitter:site": "@Yahoo",
+ "Yahoo": "app-id=304158842,app-argument=yahoo:\u002F\u002Farticle\u002Fview?uuid=80b35014-fba3-377e-adc5-47fb44f61fa7&amp;src=web"
+ },
+ "property": {
+ "og:type": "article",
+ "twitter:site": "@YahooFinance",
+ "al:android:package": "com.yahoo.mobile.client.android.yahoo",
+ "al:android:url": "yahoo:\u002F\u002Farticle\u002Fview?uuid=80b35014-fba3-377e-adc5-47fb44f61fa7&amp;src=web",
+ "googlebot": "",
+ "al:ios:app_name": "Yahoo",
+ "al:ios:app_store_id": "304158842",
+ "al:ios:url": "yahoo:\u002F\u002Farticle\u002Fview?uuid=80b35014-fba3-377e-adc5-47fb44f61fa7&amp;src=web",
+ "twitter:dnt": "on",
+ "og:image:width": "744",
+ "og:image:height": "669",
+ "twitter:creator": "@ben_silverman",
+ "twitter:card": "summary_large_image"
+ },
+ "httpEquiv": {
+ "x-dns-prefetch-control": "on"
+ }
+ },
+ "links": [{
+ "rel": "canonical",
+ "href": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Fbest-psvr-games-170003443.html"
+ }, {
+ "rel": "alternate",
+ "href": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Fbest-psvr-games-170003443.html",
+ "hrefLang": "x-default"
+ }, {
+ "rel": "alternate",
+ "href": "https:\u002F\u002Fca.finance.yahoo.com\u002Fnews\u002Fbest-psvr-games-170003443.html",
+ "hrefLang": "en-CA"
+ }, {
+ "rel": "alternate",
+ "href": "https:\u002F\u002Fuk.finance.yahoo.com\u002Fnews\u002Fbest-psvr-games-170003443.html",
+ "hrefLang": "en-GB"
+ }, {
+ "rel": "alternate",
+ "href": "https:\u002F\u002Fin.finance.yahoo.com\u002Fnews\u002Fbest-psvr-games-170003443.html",
+ "hrefLang": "en-IN"
+ }, {
+ "rel": "alternate",
+ "href": "https:\u002F\u002Fsg.finance.yahoo.com\u002Fnews\u002Fbest-psvr-games-170003443.html",
+ "hrefLang": "en-SG"
+ }, {
+ "rel": "alternate",
+ "href": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Fbest-psvr-games-170003443.html",
+ "hrefLang": "en-US"
+ }, {
+ "rel": "dns-prefetch",
+ "href": "\u002F\u002Fshim.btrll.com"
+ }, {
+ "rel": "preconnect",
+ "href": "\u002F\u002Fs.yimg.com"
+ }, {
+ "rel": "preconnect",
+ "href": "\u002F\u002Fgeo.query.yahoo.com"
+ }, {
+ "rel": "preconnect",
+ "href": "\u002F\u002Fcsc.beap.bc.yahoo.com"
+ }, {
+ "rel": "preconnect",
+ "href": "\u002F\u002Fbeap.gemini.yahoo.com"
+ }, {
+ "rel": "preconnect",
+ "href": "\u002F\u002Fyep.video.yahoo.com"
+ }, {
+ "rel": "preconnect",
+ "href": "\u002F\u002Fvideo-api.yql.yahoo.com"
+ }, {
+ "rel": "preconnect",
+ "href": "\u002F\u002Fyrtas.btrll.com"
+ }, {
+ "rel": "preconnect",
+ "href": "\u002F\u002Fshim.btrll.com"
+ }, {
+ "rel": "icon",
+ "sizes": "any",
+ "href": "https:\u002F\u002Fs.yimg.com\u002Fos\u002Fmit\u002Fmedia\u002Fp\u002Fcommon\u002Fimages\u002Ffavicon_new-7483e38.svg"
+ }, {
+ "rel": "icon",
+ "type": "image\u002Fx-icon",
+ "href": "\u002Ffavicon.ico"
+ }, {
+ "rel": "amphtml",
+ "href": "https:\u002F\u002Fwww.yahoo.com\u002Famphtml\u002Ffinance\u002Fnews\u002Fbest-psvr-games-170003443.html"
+ }],
+ "entities": [{
+ "term": "WIKIID:PlayStation_VR",
+ "label": "PlayStation VR",
+ "capAbtScore": "0.823"
+ }, {
+ "term": "YCT:001000193",
+ "score": "0.96063",
+ "label": "Consumer Discretionary"
+ }, {
+ "term": "YCT:001000031",
+ "score": "0.918418",
+ "label": "Arts &amp; Entertainment"
+ }, {
+ "term": "YCT:001000075",
+ "score": "0.917151",
+ "label": "Media"
+ }, {
+ "term": "YCT:001000088",
+ "score": "0.785714",
+ "label": "Video Games"
+ }, {
+ "term": "YMEDIA:CATEGORY=100000019",
+ "score": "1.0",
+ "label": ""
+ }, {
+ "term": "YMEDIA:CATEGORY=100000009",
+ "score": "1.0",
+ "label": ""
+ }, {
+ "term": "YMEDIA:CATEGORY=100000000",
+ "score": "1.0",
+ "label": "Yahoo Originals"
+ }, {
+ "term": "YCT:001000193",
+ "score": "0.96063",
+ "label": "Consumer Discretionary"
+ }, {
+ "term": "YCT:001000031",
+ "score": "0.918418",
+ "label": "Arts &amp; Entertainment"
+ }, {
+ "term": "YCT:001000075",
+ "score": "0.917151",
+ "label": "Media"
+ }, {
+ "term": "YCT:001000088",
+ "score": "0.785714",
+ "label": "Video Games"
+ }],
+ "ctopic": "1542500;1480989;1482489;1489489;1577000;12698500;1035500;1878000;10610989;2299500;2334500",
+ "image": "http:\u002F\u002Fl3.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002F4eRCPf9lJt_3q29.outekQ--\u002FaD02Njk7dz03NDQ7c209MTthcHBpZD15dGFjaHlvbg--\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen\u002Fhomerun\u002Ffeed_manager_auto_publish_494\u002F4406ef57dcb40376c513903b03bef048",
+ "titleTag": "These are the 8 coolest PlayStation VR games",
+ "url": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Fbest-psvr-games-170003443.html",
+ "uuid": "80b35014-fba3-377e-adc5-47fb44f61fa7",
+ "author": "Ben Silverman"
+ },
+ "spaceid": "1183300100",
+ "status": {
+ "code": 200,
+ "redirect": null,
+ "responseBody": null,
+ "responseHTML": null
+ },
+ "appConfig": {
+ "timeouts": {
+ "page": 3000,
+ "xhr": 3000,
+ "navigate": 6000
+ },
+ "spaceid": 2023538075,
+ "renderTargets": [{
+ "classNames": "render-target-default D(b)",
+ "id": "default"
+ }, {
+ "classNames": "render-target-modal O(n)!:f Bdc(#e0e4e9) Bdrs(6px) Bdstarts(s) Bdstartw(1px) Bdts(s) Bdtw(1px) Bxsh(modalShadow) D(n) H(a)! Mih(100%) ) modal-postopen_Op(1) Pos(a) T(76px) CollapsibleUh_T(60px) Start(0) End(0) Maw(1230px) Miw(984px) Mx(a) modal-open_D(b) modal-postopen_D(b) W(100%) H(100%) Z(9)",
+ "id": "modal",
+ "initialPageKey": ":content:modal"
+ }]
+ },
+ "routeConfig": {},
+ "renderTargets": {
+ "default": {
+ "id": "default",
+ "guid": 0,
+ "classNames": "render-target-default D(b)",
+ "owner": "app",
+ "elementId": "render-target-default",
+ "url": "\u002Fnews\u002Fbest-psvr-games-170003443.html"
+ },
+ "modal": {
+ "classNames": "render-target-modal O(n)!:f Bdc(#e0e4e9) Bdrs(6px) Bdstarts(s) Bdstartw(1px) Bdts(s) Bdtw(1px) Bxsh(modalShadow) D(n) H(a)! Mih(100%) ) modal-postopen_Op(1) Pos(a) T(76px) CollapsibleUh_T(60px) Start(0) End(0) Maw(1230px) Miw(984px) Mx(a) modal-open_D(b) modal-postopen_D(b) W(100%) H(100%) Z(9)",
+ "id": "modal",
+ "initialPageKey": ":content:modal",
+ "guid": 1,
+ "elementId": "render-target-modal",
+ "owner": "app",
+ "url": ""
+ }
+ },
+ "renderTargetsInited": true
+ },
+ "MRTStore": {
+ "mrtConfigRaw": {
+ "app": {},
+ "page": {},
+ "route": {}
+ },
+ "staticComponents": []
+ },
+ "DaggrStore": {
+ "config": {},
+ "forceEnabled": true,
+ "shouldSkipExecute": false
+ },
+ "RouteStore": {
+ "currentUrl": "\u002Fnews\u002Fbest-psvr-games-170003443.html",
+ "currentNavigate": {
+ "transactionId": 3662876937228282,
+ "url": "\u002Fnews\u002Fbest-psvr-games-170003443.html",
+ "method": "GET",
+ "body": {},
+ "externalUrl": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Fbest-psvr-games-170003443.html"
+ },
+ "currentNavigateError": null,
+ "isNavigateComplete": true,
+ "routes": {
+ "home": {
+ "path": "\u002F",
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "page": "finance",
+ "pageType": "index",
+ "renderTarget": "default",
+ "spaceid": 1183300002
+ },
+ "appstate": {
+ "path": "\u002F_appstate",
+ "action": "loadConfigAndPage",
+ "i13n": {
+ "rapid": {
+ "pageview_on_init": false
+ }
+ },
+ "method": "get",
+ "page": "appstate"
+ },
+ "author": {
+ "path": "\u002Fauthor\u002F:author",
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "page": "author",
+ "pageType": "author",
+ "renderTarget": "default"
+ },
+ "category": {
+ "path": "\u002Fcategory\u002F:alias",
+ "action": "loadConfigAndPage",
+ "contentType": "YCT",
+ "method": "get",
+ "page": "topic",
+ "pageType": "topic",
+ "spaceid": 81121452
+ },
+ "perfHome": {
+ "path": "\u002Fperf\u002Fhome",
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "page": "perfHome",
+ "pageType": "perfhome"
+ },
+ "section": {
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "page": "section",
+ "pageType": "section",
+ "renderTarget": "default",
+ "path": "\u002F:section([^.\u002F]+)",
+ "contentSite": "finance"
+ },
+ "topic": {
+ "path": "\u002Ftopic\u002F:alias",
+ "action": "loadConfigAndPage",
+ "contentType": "WIKIID",
+ "method": "get",
+ "page": "topic",
+ "pageType": "topic",
+ "renderTarget": "default",
+ "spaceid": 81121452
+ },
+ "mtfpopup": {
+ "path": "\u002Fmtfpopup",
+ "method": "get",
+ "page": "mtfpopup",
+ "action": "loadConfigAndPage",
+ "timeouts": {
+ "page": 10000,
+ "xhr": 10000
+ }
+ },
+ "blogpost": {
+ "path": "\u002Fblogs\u002F:contentBlog\u002F:alias.html",
+ "method": "get",
+ "page": "content",
+ "action": "loadConfigAndPage",
+ "contentType": "blogpost",
+ "pageType": "content",
+ "contentSite": "finance"
+ },
+ "cavideo": {
+ "path": "\u002F:type(v|video)\u002F:alias.html",
+ "method": "get",
+ "page": "content",
+ "action": "loadConfigAndPage",
+ "contentType": "cavideo",
+ "pageType": "content",
+ "contentSite": "finance"
+ },
+ "preview": {
+ "path": "(\u002Fm)?\u002F:uuid([a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12})\u002F:alias",
+ "action": "loadConfigAndPage",
+ "contentType": "story",
+ "method": "get",
+ "page": "content",
+ "pageType": "content",
+ "contentSite": "finance"
+ },
+ "slideshow": {
+ "path": "\u002F:type(photos|ss)\u002F:alias",
+ "method": "get",
+ "page": "content",
+ "action": "loadConfigAndPage",
+ "contentType": "slideshow",
+ "pageType": "content",
+ "contentSite": "finance"
+ },
+ "slideshowPhoto": {
+ "path": "\u002F:type(photos|ss)\u002F:alias\u002F:photoAlias.html",
+ "method": "get",
+ "page": "content",
+ "action": "loadConfigAndPage",
+ "contentType": "slideshow",
+ "pageType": "content",
+ "contentSite": "finance"
+ },
+ "story": {
+ "path": "\u002F:alias.html",
+ "method": "get",
+ "page": "content",
+ "action": "loadConfigAndPage",
+ "contentType": "story",
+ "pageType": "content",
+ "contentSite": "finance"
+ },
+ "magazinesSlideshowPhoto": {
+ "path": "\u002Fnews\u002F:alias\u002Fphoto-:photoAlias.html",
+ "method": "get",
+ "page": "content",
+ "action": "loadConfigAndPage",
+ "contentType": "slideshow",
+ "pageType": "content",
+ "contentSite": "finance"
+ },
+ "storyExtra": {
+ "path": "\u002F:contentPath\u002F:alias.html",
+ "method": "get",
+ "page": "content",
+ "action": "loadConfigAndPage",
+ "contentType": "story",
+ "pageType": "content",
+ "contentSite": "finance"
+ },
+ "showtimes": {
+ "path": "\u002F:contentSite(movies)\u002Fshowtimes",
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "page": "showtimes",
+ "pageType": "showtimes",
+ "spaceid": 1197756580
+ },
+ "news": {
+ "path": "\u002F:contentSite(news)",
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "page": "news",
+ "pageType": "index",
+ "renderTarget": "default",
+ "spaceid": 1197800621
+ },
+ "eolStory": {
+ "path": "\u002F:section(politics|autos|realestate)\u002F:alias.html",
+ "method": "get",
+ "page": "content",
+ "action": "loadConfigAndPage",
+ "contentSite": "news",
+ "contentType": "story",
+ "pageType": "content"
+ },
+ "sectionpolitics": {
+ "path": "\u002F:contentSite(news)\u002F:section(politics|originals)",
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "page": "magtag",
+ "pageType": "magtag",
+ "renderTarget": "default"
+ },
+ "sectionelections": {
+ "path": "\u002F:contentSite(news)\u002F:section(elections)",
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "magName": "news",
+ "page": "magtag",
+ "pageType": "elections",
+ "renderTarget": "default"
+ },
+ "sectiongovernor": {
+ "path": "\u002F:contentSite(news)\u002F:section(elections)\u002Fgovernor",
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "magName": "news",
+ "page": "magtag",
+ "pageType": "governor",
+ "renderTarget": "default"
+ },
+ "sectionhouse": {
+ "path": "\u002F:contentSite(news)\u002F:section(elections)\u002Fhouse",
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "magName": "news",
+ "page": "magtag",
+ "pageType": "house",
+ "renderTarget": "default"
+ },
+ "sectionsenate": {
+ "path": "\u002F:contentSite(news)\u002F:section(elections)\u002Fsenate",
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "magName": "news",
+ "page": "magtag",
+ "pageType": "senate",
+ "renderTarget": "default"
+ },
+ "sectionTag": {
+ "path": "\u002F:contentSite(news)\u002Ftagged\u002F:tag",
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "magName": "news",
+ "page": "magtag",
+ "pageType": "magtag",
+ "renderTarget": "default"
+ },
+ "letssolveit": {
+ "path": "\u002Fletssolveit",
+ "action": "loadConfigAndPage",
+ "contentSite": "letssolveit",
+ "method": "get",
+ "pageType": "intlMagazine",
+ "page": "intlMagazine"
+ },
+ "letssolveitContent": {
+ "path": "\u002Fletssolveit\u002F:alias.html",
+ "action": "loadConfigAndPage",
+ "contentSite": "letssolveit",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Fletssolveit.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "letssolveitContentPhoto": {
+ "path": "\u002Fletssolveit\u002F:alias\u002Fphoto-:photoAlias.html",
+ "action": "loadConfigAndPage",
+ "contentSite": "letssolveit",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Fletssolveit.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "letssolveitPost": {
+ "path": "\u002Fletssolveit\u002F:tumblr(post)\u002F:alias",
+ "action": "loadConfigAndPage",
+ "contentSite": "letssolveit",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Fletssolveit.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "letssolveitPostPhoto": {
+ "path": "\u002Fletssolveit\u002F:tumblr(post)\u002F:alias\u002Fphoto-:photoAlias.html",
+ "action": "loadConfigAndPage",
+ "contentSite": "letssolveit",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Fletssolveit.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "letssolveitTag": {
+ "path": "\u002Fletssolveit\u002Ftagged\u002F:alias",
+ "action": "loadConfigAndPage",
+ "contentSite": "letssolveit",
+ "method": "get",
+ "pageType": "intlMagazineTag",
+ "baseUrl": "https:\u002F\u002Fletssolveit.yahoo.com",
+ "page": "intlMagazineTag",
+ "useYqlCTopic": false
+ },
+ "kidstakeon": {
+ "path": "\u002Fkidstakeon",
+ "action": "loadConfigAndPage",
+ "contentSite": "kidstakeon",
+ "method": "get",
+ "pageType": "intlMagazine",
+ "page": "intlMagazine"
+ },
+ "kidstakeonContent": {
+ "path": "\u002Fkidstakeon\u002F:alias.html",
+ "action": "loadConfigAndPage",
+ "contentSite": "kidstakeon",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Fkidstakeon.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "kidstakeonContentPhoto": {
+ "path": "\u002Fkidstakeon\u002F:alias\u002Fphoto-:photoAlias.html",
+ "action": "loadConfigAndPage",
+ "contentSite": "kidstakeon",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Fkidstakeon.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "kidstakeonPost": {
+ "path": "\u002Fkidstakeon\u002F:tumblr(post)\u002F:alias",
+ "action": "loadConfigAndPage",
+ "contentSite": "kidstakeon",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Fkidstakeon.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "kidstakeonPostPhoto": {
+ "path": "\u002Fkidstakeon\u002F:tumblr(post)\u002F:alias\u002Fphoto-:photoAlias.html",
+ "action": "loadConfigAndPage",
+ "contentSite": "kidstakeon",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Fkidstakeon.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "kidstakeonTag": {
+ "path": "\u002Fkidstakeon\u002Ftagged\u002F:alias",
+ "action": "loadConfigAndPage",
+ "contentSite": "kidstakeon",
+ "method": "get",
+ "pageType": "intlMagazineTag",
+ "baseUrl": "https:\u002F\u002Fkidstakeon.yahoo.com",
+ "page": "intlMagazineTag",
+ "useYqlCTopic": false
+ },
+ "backstage": {
+ "path": "\u002Fbackstage",
+ "action": "loadConfigAndPage",
+ "contentSite": "backstage",
+ "method": "get",
+ "pageType": "intlMagazine",
+ "page": "intlMagazine"
+ },
+ "backstageContent": {
+ "path": "\u002Fbackstage\u002F:alias.html",
+ "action": "loadConfigAndPage",
+ "contentSite": "backstage",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Fbackstage.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "backstageContentPhoto": {
+ "path": "\u002Fbackstage\u002F:alias\u002Fphoto-:photoAlias.html",
+ "action": "loadConfigAndPage",
+ "contentSite": "backstage",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Fbackstage.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "backstagePost": {
+ "path": "\u002Fbackstage\u002F:tumblr(post)\u002F:alias",
+ "action": "loadConfigAndPage",
+ "contentSite": "backstage",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Fbackstage.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "backstagePostPhoto": {
+ "path": "\u002Fbackstage\u002F:tumblr(post)\u002F:alias\u002Fphoto-:photoAlias.html",
+ "action": "loadConfigAndPage",
+ "contentSite": "backstage",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Fbackstage.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "backstageTag": {
+ "path": "\u002Fbackstage\u002Ftagged\u002F:alias",
+ "action": "loadConfigAndPage",
+ "contentSite": "backstage",
+ "method": "get",
+ "pageType": "intlMagazineTag",
+ "baseUrl": "https:\u002F\u002Fbackstage.yahoo.com",
+ "page": "intlMagazineTag",
+ "useYqlCTopic": false
+ },
+ "mrright": {
+ "path": "\u002Fmrright",
+ "action": "loadConfigAndPage",
+ "contentSite": "mrright",
+ "method": "get",
+ "pageType": "intlMagazine",
+ "page": "intlMagazine"
+ },
+ "mrrightContent": {
+ "path": "\u002Fmrright\u002F:alias.html",
+ "action": "loadConfigAndPage",
+ "contentSite": "mrright",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Fmr-right.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "mrrightContentPhoto": {
+ "path": "\u002Fmrright\u002F:alias\u002Fphoto-:photoAlias.html",
+ "action": "loadConfigAndPage",
+ "contentSite": "mrright",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Fmr-right.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "mrrightPost": {
+ "path": "\u002Fmrright\u002F:tumblr(post)\u002F:alias",
+ "action": "loadConfigAndPage",
+ "contentSite": "mrright",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Fmr-right.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "mrrightPostPhoto": {
+ "path": "\u002Fmrright\u002F:tumblr(post)\u002F:alias\u002Fphoto-:photoAlias.html",
+ "action": "loadConfigAndPage",
+ "contentSite": "mrright",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Fmr-right.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "mrrightTag": {
+ "path": "\u002Fmrright\u002Ftagged\u002F:alias",
+ "action": "loadConfigAndPage",
+ "contentSite": "mrright",
+ "method": "get",
+ "pageType": "intlMagazineTag",
+ "baseUrl": "https:\u002F\u002Fmr-right.yahoo.com",
+ "page": "intlMagazineTag",
+ "useYqlCTopic": false
+ },
+ "livenationpresents": {
+ "path": "\u002Flivenationpresents",
+ "action": "loadConfigAndPage",
+ "contentSite": "livenationpresents",
+ "method": "get",
+ "pageType": "intlMagazine",
+ "page": "intlMagazine"
+ },
+ "livenationpresentsContent": {
+ "path": "\u002Flivenationpresents\u002F:alias.html",
+ "action": "loadConfigAndPage",
+ "contentSite": "livenationpresents",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Flivenationpresents.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "livenationpresentsContentPhoto": {
+ "path": "\u002Flivenationpresents\u002F:alias\u002Fphoto-:photoAlias.html",
+ "action": "loadConfigAndPage",
+ "contentSite": "livenationpresents",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Flivenationpresents.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "livenationpresentsPost": {
+ "path": "\u002Flivenationpresents\u002F:tumblr(post)\u002F:alias",
+ "action": "loadConfigAndPage",
+ "contentSite": "livenationpresents",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Flivenationpresents.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "livenationpresentsPostPhoto": {
+ "path": "\u002Flivenationpresents\u002F:tumblr(post)\u002F:alias\u002Fphoto-:photoAlias.html",
+ "action": "loadConfigAndPage",
+ "contentSite": "livenationpresents",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Flivenationpresents.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "livenationpresentsTag": {
+ "path": "\u002Flivenationpresents\u002Ftagged\u002F:alias",
+ "action": "loadConfigAndPage",
+ "contentSite": "livenationpresents",
+ "method": "get",
+ "pageType": "intlMagazineTag",
+ "baseUrl": "https:\u002F\u002Flivenationpresents.yahoo.com",
+ "page": "intlMagazineTag",
+ "useYqlCTopic": false
+ },
+ "magazineHome": {
+ "path": "\u002F:contentSite(beauty|beautyTest|celebrity|celebrityTest|gma|katiecouric|movies|music|style|tech|techTest|tv|hkstylemen|kidstakeon|mrright|saludbucal|saudebucal|hktravelnow|letssolveit|livenationpresents|backstage|techcast)",
+ "method": "get",
+ "page": "maghome",
+ "action": "loadConfigAndPage",
+ "pageType": "maghome",
+ "renderTarget": "default"
+ },
+ "magazinePreview": {
+ "path": "\u002F:contentSite(beauty|beautyTest|celebrity|celebrityTest|gma|katiecouric|movies|music|style|tech|techTest|tv|hkstylemen|kidstakeon|mrright|saludbucal|saudebucal|hktravelnow|letssolveit|livenationpresents|backstage|techcast)(\u002Fm)?\u002F:uuid([a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12})\u002F:alias",
+ "action": "loadConfigAndPage",
+ "contentType": "story",
+ "method": "get",
+ "page": "magpreview",
+ "pageType": "magpreview"
+ },
+ "magazineSlideshow": {
+ "path": "\u002F:contentSite(beauty|beautyTest|celebrity|celebrityTest|gma|katiecouric|movies|music|style|tech|techTest|tv|hkstylemen|kidstakeon|mrright|saludbucal|saudebucal|hktravelnow|letssolveit|livenationpresents|backstage|techcast)\u002F:type(photos|ss)\u002F:alias",
+ "method": "get",
+ "page": "magcontent",
+ "action": "loadConfigAndPage",
+ "pageType": "magcontent"
+ },
+ "magazineSlideshowPhoto": {
+ "path": "\u002F:contentSite(beauty|beautyTest|celebrity|celebrityTest|gma|katiecouric|movies|music|style|tech|techTest|tv|hkstylemen|kidstakeon|mrright|saludbucal|saudebucal|hktravelnow|letssolveit|livenationpresents|backstage|techcast)\u002Fphotos\u002F:alias\u002F:photoAlias.html",
+ "method": "get",
+ "page": "magcontent",
+ "action": "loadConfigAndPage",
+ "pageType": "magcontent"
+ },
+ "magazineVideo": {
+ "path": "\u002F:contentSite(beauty|beautyTest|celebrity|celebrityTest|gma|katiecouric|movies|music|style|tech|techTest|tv|hkstylemen|kidstakeon|mrright|saludbucal|saudebucal|hktravelnow|letssolveit|livenationpresents|backstage|techcast)\u002F:type(v|video)\u002F:alias.html",
+ "method": "get",
+ "page": "magcontent",
+ "action": "loadConfigAndPage",
+ "contentType": "cavideo",
+ "pageType": "magcontent"
+ },
+ "magazineStory": {
+ "path": "\u002F:contentSite(beauty|beautyTest|celebrity|celebrityTest|gma|katiecouric|movies|music|style|tech|techTest|tv|hkstylemen|kidstakeon|mrright|saludbucal|saudebucal|hktravelnow|letssolveit|livenationpresents|backstage|techcast)\u002F:alias.html",
+ "method": "get",
+ "page": "magcontent",
+ "action": "loadConfigAndPage",
+ "contentType": "story",
+ "pageType": "magcontent"
+ },
+ "magazineStoryPhotos": {
+ "path": "\u002F:contentSite(beauty|beautyTest|celebrity|celebrityTest|gma|katiecouric|movies|music|style|tech|techTest|tv|hkstylemen|kidstakeon|mrright|saludbucal|saudebucal|hktravelnow|letssolveit|livenationpresents|backstage|techcast)(\u002Fss)?\u002F:alias\u002Fphoto-:photoAlias.html",
+ "method": "get",
+ "page": "magcontent",
+ "action": "loadConfigAndPage",
+ "contentType": "story",
+ "pageType": "magcontent"
+ },
+ "magazineStoryExtra": {
+ "path": "\u002F:contentSite(beauty|beautyTest|celebrity|celebrityTest|gma|katiecouric|movies|music|style|tech|techTest|tv|hkstylemen|kidstakeon|mrright|saludbucal|saudebucal|hktravelnow|letssolveit|livenationpresents|backstage|techcast)\u002F:contentPath\u002F:alias.html",
+ "method": "get",
+ "page": "magcontent",
+ "action": "loadConfigAndPage",
+ "contentType": "story",
+ "pageType": "magcontent"
+ },
+ "magazineBlogpost": {
+ "path": "\u002F:contentSite(beauty|beautyTest|celebrity|celebrityTest|gma|katiecouric|movies|music|style|tech|techTest|tv|hkstylemen|kidstakeon|mrright|saludbucal|saudebucal|hktravelnow|letssolveit|livenationpresents|backstage|techcast)\u002Fblogs\u002F:contentBlog\u002F:alias.html",
+ "method": "get",
+ "page": "magcontent",
+ "action": "loadConfigAndPage",
+ "contentType": "blogpost",
+ "pageType": "magcontent"
+ },
+ "magazineTag": {
+ "path": "\u002Ftagged\u002F:alias",
+ "method": "get",
+ "page": "magtag",
+ "action": "loadConfigAndPage",
+ "pageType": "magtag",
+ "renderTarget": "default",
+ "useYqlCTopic": true,
+ "contentSite": "finance"
+ },
+ "moviesTagmovie": {
+ "path": "\u002F:contentSite(movies)\u002Ffilm\u002F:alias",
+ "method": "get",
+ "page": "moviesTag",
+ "action": "loadConfigAndPage",
+ "pageType": "magtag",
+ "renderTarget": "default",
+ "tagType": "movie"
+ },
+ "moviesTagperson": {
+ "path": "\u002F:contentSite(movies)\u002Fperson\u002F:alias",
+ "method": "get",
+ "page": "moviesTag",
+ "action": "loadConfigAndPage",
+ "pageType": "magtag",
+ "renderTarget": "default",
+ "tagType": "person"
+ },
+ "tvTagperson": {
+ "path": "\u002F:contentSite(tv)\u002Fperson\u002F:alias",
+ "method": "get",
+ "page": "tvTag",
+ "action": "loadConfigAndPage",
+ "pageType": "magtag",
+ "renderTarget": "default",
+ "tagType": "person"
+ },
+ "horoscopes": {
+ "path": "\u002F:contentSite(style)\u002Fhoroscope\u002F:sign\u002F:frequency-:frequencyValue.html",
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "page": "horoscope",
+ "pageType": "horoscope",
+ "spaceid": 1197757569
+ },
+ "horoscopesHome": {
+ "path": "\u002F:contentSite(style)\u002Fhoroscope\u002F",
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "page": "horoscopes",
+ "pageType": "horoscopes",
+ "spaceid": 1197757568
+ }
+ }
+ },
+ "I13nStore": {
+ "appConfig": {
+ "base": {
+ "initComscore": true,
+ "initOmniture": false,
+ "initRapid": true,
+ "rapid": {
+ "keys": {
+ "ver": "y20",
+ "navtype": "server"
+ },
+ "compr_type": "deflate",
+ "tracked_mods_viewability": [],
+ "test_id": "",
+ "webworker_file": "\u002Flib\u002Fmetro\u002Fg\u002Fmyy\u002Frapidworker_1_2_0.0.2.js",
+ "client_only": 1,
+ "track_right_click": true,
+ "pageview_on_init": true,
+ "viewability": true,
+ "dwell_on": true
+ },
+ "rootModelData": {},
+ "navigationPageview": {
+ "enable": true
+ },
+ "serverPageview": {
+ "enable": true,
+ "type": "nonClassified"
+ }
+ }
+ },
+ "comscoreC7Keyword": "",
+ "currentUrl": "\u002Fnews\u002Fbest-psvr-games-170003443.html",
+ "i13nConfig": {
+ "initComscore": true,
+ "initOmniture": false,
+ "initRapid": true,
+ "rapid": {
+ "keys": {
+ "ver": "y20",
+ "navtype": "server",
+ "layout": "y20stream",
+ "pd": "non_modal",
+ "pt": 4,
+ "p_cpos": 1,
+ "p_hosted": "hosted",
+ "pct": "story",
+ "pstaid": "80b35014-fba3-377e-adc5-47fb44f61fa7",
+ "ss_cid": "",
+ "mrkt": "us",
+ "site": "finance",
+ "lang": "en-US",
+ "colo": "gq1",
+ "_yrid": "2n23a79c1iosl",
+ "_rid": "2n23a79c1iosl"
+ },
+ "compr_type": "deflate",
+ "tracked_mods_viewability": [],
+ "test_id": "finance-US-en-US-def",
+ "webworker_file": "\u002Flib\u002Fmetro\u002Fg\u002Fmyy\u002Frapidworker_1_2_0.0.2.js",
+ "client_only": 1,
+ "track_right_click": true,
+ "pageview_on_init": true,
+ "viewability": true,
+ "dwell_on": true,
+ "spaceid": "1183300100"
+ },
+ "rootModelData": {},
+ "navigationPageview": {
+ "enable": true
+ },
+ "serverPageview": {
+ "enable": true,
+ "type": "nonClassified"
+ }
+ },
+ "pageConfig": {
+ "base": {
+ "rapid": {
+ "keys": {
+ "layout": "y20stream",
+ "pd": "non_modal",
+ "pt": 4
+ }
+ }
+ },
+ "headerOverride": null
+ },
+ "routeConfig": {},
+ "runtimeConfig": {
+ "rapid": {
+ "keys": {
+ "p_cpos": 1,
+ "p_hosted": "hosted",
+ "pct": "story",
+ "pstaid": "80b35014-fba3-377e-adc5-47fb44f61fa7",
+ "ss_cid": ""
+ }
+ }
+ }
+ },
+ "ClientStore": {
+ "currentRoute": {
+ "path": "\u002F:contentPath\u002F:alias.html",
+ "method": "get",
+ "page": "content",
+ "action": "loadConfigAndPage",
+ "contentType": "story",
+ "pageType": "content",
+ "contentSite": "finance",
+ "name": "storyExtra",
+ "url": "\u002Fnews\u002Fbest-psvr-games-170003443.html",
+ "params": {
+ "contentPath": "news",
+ "alias": "best-psvr-games-170003443"
+ },
+ "navigate": {
+ "transactionId": 3662876937228282,
+ "url": "\u002Fnews\u002Fbest-psvr-games-170003443.html",
+ "method": "GET",
+ "body": {},
+ "externalUrl": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Fbest-psvr-games-170003443.html"
+ },
+ "query": {}
+ }
+ },
+ "VideoPlayerStore": {
+ "_config": {
+ "docking": {
+ "enableOnScrollDown": true,
+ "enableOnScrollUp": false,
+ "fadeInAnimation": true,
+ "position": {
+ "left": "ref",
+ "right": 0,
+ "bottom": 55
+ },
+ "ref": ".modal-open .render-target-modal .modalRight, html:not(.modal-open) .render-target-active #YDC-Col2 #Aside",
+ "width": 300,
+ "height": 168.75,
+ "threshold": 60,
+ "enableOnMuted": true,
+ "showInfoCard": true
+ },
+ "enableRestoreOnNavigate": true,
+ "enableUndockOnNavigate": true,
+ "refreshDockingOnNavigate": true,
+ "totalInactivePlayers": 10,
+ "videoClickSrc": ["video-click", "startScreen"]
+ },
+ "_playerConfig": {},
+ "_playerUrls": {
+ "url": "https:\u002F\u002Fyep.video.yahoo.com\u002Fjs\u002F3\u002Fvideoplayer-min.js?r=nextgen-desktop&amp;lang=en-US"
+ }
+ },
+ "QuoteAutoCompleteStore": {
+ "clear": true
+ },
+ "PageTransitionStore": {
+ "_appConfig": {
+ "pageTransition": {
+ "enabled": true,
+ "enableHandlerCallback": true,
+ "pluginName": "modal-fade"
+ }
+ },
+ "_currentRoute": {
+ "path": "\u002F:contentPath\u002F:alias.html",
+ "method": "get",
+ "page": "content",
+ "action": "loadConfigAndPage",
+ "contentType": "story",
+ "pageType": "content",
+ "contentSite": "finance",
+ "name": "storyExtra",
+ "url": "\u002Fnews\u002Fbest-psvr-games-170003443.html",
+ "params": {
+ "contentPath": "news",
+ "alias": "best-psvr-games-170003443"
+ },
+ "navigate": {
+ "transactionId": 3662876937228282,
+ "url": "\u002Fnews\u002Fbest-psvr-games-170003443.html",
+ "method": "GET",
+ "body": {},
+ "externalUrl": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Fbest-psvr-games-170003443.html"
+ },
+ "query": {}
+ },
+ "_currentRenderTarget": {
+ "referrer": {
+ "route": {}
+ },
+ "id": "default",
+ "guid": 0,
+ "classNames": "render-target-default",
+ "owner": "app",
+ "elementId": "render-target-default",
+ "url": ""
+ },
+ "_renderTargets": {
+ "default": {
+ "referrer": {
+ "route": {}
+ },
+ "id": "default",
+ "guid": 0,
+ "classNames": "render-target-default",
+ "owner": "app",
+ "elementId": "render-target-default",
+ "url": ""
+ }
+ }
+ },
+ "FlyoutStore": {},
+ "NavrailStore": {
+ "showNavrail": false,
+ "navTitle": "finance",
+ "navSections": "best-psvr-games-170003443",
+ "currentUrl": "\u002Fnews\u002Fbest-psvr-games-170003443.html",
+ "pageType": "content",
+ "navSectionsDisplayTitle": {}
+ },
+ "AppConfigStore": {
+ "config": {
+ "clientEligible": {
+ "index": ["beauty", "backstage", "celebrity", "eleccioneseeuu2016", "hkstylemen", "hktravelnow", "katiecouric", "livenationpresents", "m6info", "movies", "news", "music", "style", "saludbucal", "saudebucal", "tech", "techcast", "tv", "weather"],
+ "content": ["finance"],
+ "home": ["beauty", "backstage", "celebrity", "eleccioneseeuu2016", "hkstylemen", "hktravelnow", "katiecouric", "livenationpresents", "m6info", "movies", "news", "music", "style", "saludbucal", "saudebucal", "tech", "techcast", "tv", "weather"]
+ },
+ "enableVideoManager": true,
+ "pageTransition": {
+ "enabled": true,
+ "enableHandlerCallback": true,
+ "pluginName": "modal-fade"
+ },
+ "prefetch": {
+ "enableOnPageStoreChange": true,
+ "prerenderDelay": 0,
+ "pageTypes": {
+ "content": ["index"],
+ "index": ["content"],
+ "intlMagazine": ["intlMagazineContent"],
+ "intlMagazineContent": ["intlMagazine"],
+ "magcontent": ["maghome", "magpreview"],
+ "magpreview": ["maghome", "magcontent"],
+ "maghome": ["magcontent", "magpreview"],
+ "magtag": ["magcontent", "magpreview"]
+ }
+ },
+ "timeouts": {
+ "page": 3000,
+ "xhr": 3000,
+ "navigate": 6000
+ },
+ "renderTargets": [{
+ "classNames": "render-target-default D(b)",
+ "id": "default"
+ }, {
+ "classNames": "render-target-modal O(n)!:f Bdc(#e0e4e9) Bdrs(6px) Bdstarts(s) Bdstartw(1px) Bdts(s) Bdtw(1px) Bxsh(modalShadow) D(n) H(a)! Mih(100%) ) modal-postopen_Op(1) Pos(a) T(76px) CollapsibleUh_T(60px) Start(0) End(0) Maw(1230px) Miw(984px) Mx(a) modal-open_D(b) modal-postopen_D(b) W(100%) H(100%) Z(9)",
+ "id": "modal",
+ "initialPageKey": ":content:modal"
+ }],
+ "videoPlayer": {
+ "baseUrl": "https:\u002F\u002Fyep.video.yahoo.com\u002Fjs\u002F3\u002Fvideoplayer-min.js",
+ "device": "nextgen-desktop",
+ "docking": {
+ "enableOnScrollDown": true,
+ "enableOnScrollUp": false,
+ "fadeInAnimation": true,
+ "position": {
+ "left": "ref",
+ "right": 0,
+ "bottom": 55
+ },
+ "ref": ".modal-open .render-target-modal .modalRight, html:not(.modal-open) .render-target-active #YDC-Col2 #Aside",
+ "width": 300,
+ "height": 168.75,
+ "threshold": 60,
+ "enableOnMuted": true,
+ "showInfoCard": true
+ },
+ "enableRestoreOnNavigate": true,
+ "refreshDockingOnNavigate": true,
+ "version": null
+ }
+ }
+ },
+ "LangStore": {
+ "defaultBundle": "td-app-yahoo",
+ "baseLangs": {
+ "td-app-yahoo": {
+ "TITLE": "Articles",
+ "DEFAULT_TITLE": "Yahoo",
+ "REDIRECT_404_MSG": "Hmmm... the page you're looking for isn't here. Try searching above.",
+ "RSS_TITLE": "RSS feed for {page}",
+ "FOLLOW_MODULE_TITLE": "Follow {property}",
+ "FOLLOW_PROPERTY_TITLE_NEWS": "Yahoo News",
+ "VIDEO_TITLE": " [Video]"
+ },
+ "tdv2-applet-canvass": {
+ "CANVASS_CONVERSATIONS": "Conversations",
+ "CANVASS_SUBHEADER_TITLE": "What people are saying...",
+ "CANVASS_FOOTER_TITLE": "Join the Conversation",
+ "CANVASS_ATTRIBUTION": "By {author} on {source}",
+ "CANVASS_HEADING_WITH_ONE_MESSAGE": "1 reaction",
+ "CANVASS_HEADING_WITH_MORE_THAN_ONE_MESSAGE": "{count} reactions",
+ "CANVASS_HEADING_WITH_ONE_MESSAGE_WITH_TITLE": "1 reaction on {title}",
+ "CANVASS_HEADING_WITH_MORE_THAN_ONE_MESSAGE_WITH_TITLE": "{count} reactions on {title}",
+ "CANVASS_ON": "on",
+ "CANVASS_COMMENTS": "reactions",
+ "CANVASS_COMMENT": "reaction",
+ "CANVASS_SEE_USERS_HISTORY": "See reaction history for {user}",
+ "CANVASS_SEE_MY_HISTORY": "See my reaction history",
+ "CANVASS_NO_USER_COMMENTS": "No reactions from the user.",
+ "CANVASS_BE_THE_FIRST": "Start the conversation",
+ "CANVASS_VIEW_COMMENTS": "View Reactions ({count})",
+ "CANVASS_POSTED_IN": "Posted in \u003Cspan class='Fw(600) C(#26282a)'\u003E{displayText}\u003Cspan\u003E",
+ "CANVASS_SHOW_NEW_COMMENTS": "New Reactions",
+ "CANVASS_SHOW_MORE_COMMENTS": "View more",
+ "CANVASS_SHOW_PREVIOUS_COMMENTS": "View Previous Replies",
+ "CANVASS_LOADING_MORE_COMMENTS": "Loading...",
+ "CANVASS_LOADING_GIFS": "Loading GIFs...",
+ "CANVASS_NO_GIFS_FOUND": "Sorry, we couldn't find any GIFs",
+ "CANVASS_SHOW_REPLIES": "Show Replies ({count})",
+ "CANVASS_HIDE_REPLIES": "Hide Replies",
+ "CANVASS_COMMENT_GUIDELINES": "Reactions Guidelines",
+ "CANVASS_POST_COMMENT": "Share your reaction",
+ "CANVASS_POST_COMMENT_LONG": "Share your reaction with #tags, links &amp; more!",
+ "CANVASS_POST_COMMENT_SMARTPHONE_LONG": "Post with #tags, links &amp; more!",
+ "CANVASS_FILE_SIZE_EXCEEDED": "You can only upload files upto 10mb ",
+ "CANVASS_FILE_EXTENSION_NOT_SUPPORTED": "You can upload only image files",
+ "CANVASS_NETWORK_ERROR": "Temporary Network Error. Please try again later.",
+ "CANVASS_POST_REPLY": "Leave a reply",
+ "CANVASS_SEARCH_GIF": "Search...",
+ "CANVASS_SHOW_GIFS": "Show gifs",
+ "CANVASS_SEARCH_GIFS": "Search gifs",
+ "CANVASS_POST": "Post",
+ "CANVASS_DONE": "Done",
+ "CANVASS_MISSING_COMMENT": "You forgot to enter a reaction.",
+ "CANVASS_MISSING_REPLY": "You forgot to enter a reply.",
+ "CANVASS_CANCEL": "Cancel",
+ "CANVASS_REPORT_ABUSE": "Report Abuse",
+ "CANVASS_FLAG_MESSAGE": "Report Abuse",
+ "CANVASS_MUTE_MESSAGE": "Mute {user}",
+ "CANVASS_FLAG_REASON_INAPPROPRIATE_POST": "Inappropriate post",
+ "CANVASS_FLAG_REASON_DOES_NOT_BELONG_HERE": "Does not belong here",
+ "CANVASS_FLAG_REASON_SPAM": "Looks like spam",
+ "CANVASS_FLAG_REASON_COPYRIGHT_VIOLATION": "Copyright violation",
+ "CANVASS_FLAG_REASON_ELSE": "Something else",
+ "CANVASS_FLAGGED_MESSAGE": "Done! This post has been flagged. Thank you for reporting.",
+ "CANVASS_MUTED_MESSAGE": "Done! You won't see this user's reactions again.",
+ "CANVASS_REPORTED_ABUSE": "Reported Abuse",
+ "CANVASS_REPORT_LABEL": "Why didn't you like this reaction?",
+ "CANVASS_REPORT_REASON": "Please let us know why...",
+ "CANVASS_REPORT": "Report",
+ "CANVASS_DELETE_LABEL": "Are you sure?",
+ "CANVASS_DELETE": "Delete",
+ "CANVASS_DELETE_MESSAGE": "Delete your post",
+ "CANVASS_DELETED_MESSAGE": "Done! Your post has been deleted.",
+ "CANVASS_PLEASE_SIGN_IN": "Please sign in.",
+ "CANVASS_SIGN_IN_POST_COMMENT": "Sign in to post a message.",
+ "CANVASS_SIGN_IN_POST_REPLY": "Sign in to post a reply.",
+ "CANVASS_SORT_LATEST": "Recent Reactions",
+ "CANVASS_SORT_OLDEST": "Oldest Reactions",
+ "CANVASS_SORT_MOST_REPLIED": "Most Discussed",
+ "CANVASS_SORT_HIGHEST_RATED": "Top Reactions",
+ "CANVASS_SORT_NEWEST": "Newest Reactions",
+ "CANVASS_REPLY": "Reply",
+ "CANVASS_REPLIES": "Replies",
+ "CANVASS_ANONYMOUS": "Anonymous",
+ "CANVASS_AVATAR": "Avatar",
+ "CANVASS_EDITOR_LABEL": "Editor",
+ "CANVASS_PROMOTED_COMMENTS": "We will promote constructive and witty reactions to the top, so everyone sees them!",
+ "CANVASS_KEEP_READING": "Keep reading",
+ "CANVASS_RELATED_TAGS_FILTER_MESSAGE": "Select #tags to filter the conversation",
+ "CANVASS_RELATED_TAGS_CURRENTELY_NO_TAGS_TO_FILTER_MESSAGE": "Currently, no #tags to filter. You can add #tags in your reaction to start a conversation on the topic.",
+ "CANVASS_RELATED_TAGS_NO_MORE_TAGS_TO_FILTER_MESSAGE": "No more #tags to filter.",
+ "CANVASS_RELATED_TAGS_APPLY_MESSAGE": "Select 'Apply' below or remove #tags above.",
+ "CANVASS_APPLY": "Apply",
+ "CANVASS_SELECTED_TAGS": "Selected #tags",
+ "CANVASS_SENTIMENTS_MOSTLY_POSITIVE": "Conversations mostly positive",
+ "CANVASS_SENTIMENTS_LEANING_POSITIVE": "Conversations leaning positive",
+ "CANVASS_SENTIMENTS_OVERWHEMINGLY_POSITIVE": "Conversations is overwhemingly positive",
+ "CANVASS_SENTIMENTS_MOSTLY_NEGATIVE": "Conversations mostly negative",
+ "CANVASS_SENTIMENTS_LEANING_NEGATIVE": "Conversations leaning negative",
+ "CANVASS_SENTIMENTS_OVERWHEMINGLY_NEGATIVE": "Conversations is overwhemingly negative",
+ "CANVASS_SENTIMENTS_DIVIDED": "People are divided on this topic",
+ "CANVASS_SEE_MORE": "See More",
+ "CANVASS_SEE_LESS": "See Less",
+ "LIKE": "Like",
+ "CANVASS_MESSAGE_BOARD_TITLE": "{displayText} Message Board",
+ "CANVASS_MESSAGE_BOARD_TOPIC": "Topic",
+ "CANVASS_MESSAGE_BOARD_NEW_TOPIC": "New Topic",
+ "CANVASS_MESSAGE_BOARD_TOPIC_TITLE": "Topic Title",
+ "CANVASS_MESSAGE_BOARD_MISSING_TOPIC": "You forgot to enter a topic.",
+ "CANVASS_MESSAGE_BOARD_LAST_ACTIVITY": "Last Activity",
+ "CANVASS_MESSAGE_BOARD_RETURN_TO_TOPIC_LIST": "Return to Topic list",
+ "CANVASS_MESSAGE_BOARD_ATTRIBUTION": "by {author}"
+ },
+ "react-finance": {
+ "200_DAY_MOVING_AVG": "200-Day Moving Average",
+ "ADD_ANOTHER_LOT": "Add another lot",
+ "ADD_CASH": "Add Cash",
+ "ADD_SHARES_OF": "Add shares of {symbol}",
+ "ADD_SYMBOL": "Add Symbol",
+ "ADD_TO_WATCHLIST": "Add to Watchlist",
+ "AUTOCOMPLETE_PLACEHOLDER": "YHOO, AAPL, TSLA",
+ "AUTOS_TITLE": "Autos",
+ "AVG_VOL_10_DAY": "Avg Vol (10 day)",
+ "AVG_VOL_3_MONTH": "Avg Vol (3 month)",
+ "BERKSHIRE": "Berkshire Hathaway",
+ "BETA": "Beta",
+ "BREXIT_TITLE": "Brexit",
+ "BONDS_TITLE": "US Treasury Bonds Rates",
+ "BUSINESS_SERVICES_TITLE": "Business Services",
+ "CALENDARS_TITLE": "Calendars",
+ "CANADA_TITLE": "Canada",
+ "CANCEL": "Cancel",
+ "CAREERS_TITLE": "Careers",
+ "CHART": "Chart",
+ "CLOSE": "Close",
+ "COMMODITIES": "Commodities",
+ "COMPONENTS": "Components",
+ "CONFIRM_DELETE": "Confirm Delete",
+ "CONFIRM_DELETE_MSG": "Are you sure you want to delete {pfName} watchlist?",
+ "CONFIRM_DELETE_TICKER": "Are you sure you want to remove {symbol}?",
+ "CONFIRM_NO": "No",
+ "CONFIRM_YES": "Yes",
+ "COMPARE_PRODUCTS_TITLE": "Compare Products",
+ "CONSUMER_PRODUCTS_MEDIA_TITLE": "Consumer Products &amp; Media",
+ "CONTRIBUTORS_TITLE": "Contributors",
+ "CREATE_NEW_LIST": "Create a new list",
+ "CURRENCIES": "Currencies",
+ "CURRENCIES_TITLE": "Currencies",
+ "CURRENCY_CONVERTER_TITLE": "Currency Converter",
+ "DELAYED": "Delayed Price",
+ "DELETE_BTN": "Delete",
+ "DELETE_TICKER_INFO": "Delete symbol from watchlist",
+ "DELETE_WATCHLIST": "Delete Watchlist",
+ "DIVERSIFIED_BUSINESS_TITLE": "Diversified Business",
+ "DIVIDEND": "Dividend",
+ "EDIT": "Edit",
+ "END": "End",
+ "ENERGY_TITLE": "Energy",
+ "ENTER_LIST_NAME": "Enter List name",
+ "ETFS_TITLE": "Top ETFs",
+ "EX_DIVIDEND": "Ex-Dividend",
+ "EX_DIVIDEND_DATE": "Ex-Dividend Date",
+ "FEEDBACK_TITLE": "Feedback",
+ "FINAL_ROUND_TITLE": "The Final Round",
+ "FINANCIAL_GLOSSARY": "Financial Glossary",
+ "FINANCE_HOME_TITLE": "Finance Home",
+ "FINANCIAL_TITLE": "Financial",
+ "FOOTER_ABOUT_TEXT": "About Our Ads",
+ "FOOTER_DISCLAIMER_TEXT": "Data Disclaimer",
+ "FOOTER_FB_FOLLOW_TEXT": "Follow on Facebook",
+ "FOOTER_FOLLOW_TEXT": "Follow Yahoo Finance",
+ "FOOTER_HELP_TEXT": "Help",
+ "FOOTER_PRIVACY_TEXT": "Privacy",
+ "FOOTER_SUGGEST_TEXT": "Suggestions",
+ "FOOTER_TERMS_TEXT": "Terms",
+ "FOOTER_TU_FOLLOW_TEXT": "Follow on Tumblr",
+ "FOOTER_TW_FOLLOW_TEXT": "Follow on Twitter",
+ "FORWARD_PE": "Forward P\u002FE",
+ "FREE_REALTIME": "Real Time Price",
+ "GAINERS_TITLE": "Stocks: Gainers",
+ "GOOD_LIFE_NAV_TITLE": "The Good Life",
+ "HARDWARE_ELECTRONICS_TITLE": "Computer Hardware &amp; Electronics",
+ "HEALTHCARE_TITLE": "Healthcare",
+ "HIGH": "High",
+ "INDUSTRY_NAV_TITLE": "Industry News",
+ "INDUSTRIALS_TITLE": "Industrials",
+ "INVALID_SYMBOL_MESSAGE": "{symbol} is not a valid symbol",
+ "IN_WATCHLIST": "In Watchlist",
+ "LAST_MONTH": "Last Mo.",
+ "LATEST_NEWS": "Latest News",
+ "LEISURE_INDUSTRIES_TITLE": "Leisure Industries",
+ "LIFESTYLE_TITLE": "Lifestyle",
+ "LOADING": "Loading...",
+ "LOSERS_TITLE": "Stocks: Losers",
+ "LOOKUP_FOOTER_TIP": "Tip: Use comma to separate multiple quotes",
+ "LOTS_SAVE_FAIL": "Oops! Something went wrong on our end. Try again later!",
+ "LOTS_SAVE_SUCCESS": "Lots have been saved.",
+ "LOT_DELETED": "This lot has been deleted",
+ "LOW": "Low",
+ "MAIL": "Mail",
+ "MANUFACTURING_MATERIALS_TITLE": "Manufacturing &amp; Materials",
+ "MARKET_BLOGS_TITLE": "Market Blogs",
+ "MARKET_DATA_TITLE": "Market Data",
+ "MARKET_MOVERS_TITLE": "Market Movers",
+ "MARKET_SUMMARY": "Market Summary",
+ "MIDDAY_MOVERS_TITLE": "Midday Movers",
+ "MONEY_GUIDES_TITLE": "Money Guides",
+ "MOST_ACTIVE_TITLE": "Stocks: Most Actives",
+ "MSG_EMPTY_PF": "You don't have any symbols in this list.",
+ "MSG_EMPTY_RQ": "Your Recently Viewed list is empty.",
+ "MSG_EMPTY_YFINLIST": "We're sorry, but we were unable to retrieve this data. Please try again.",
+ "MUTUALFUNDS_TITLE": "Top Mutual Funds",
+ "MY_PORTFOLIO_NAV_TITLE": "My Portfolio",
+ "MY_WATCHLIST": "My Watchlist",
+ "NA": "N\u002FA",
+ "NAME_NEW_WATCHLIST": "Name your new watchlist",
+ "NASDAQ_REALTIME_PRICE": "Nasdaq Realtime Price",
+ "NEWS_NAV_TITLE": "News",
+ "NO_LOTS": "You currently have no lots",
+ "OPTIONS": "Options",
+ "OPTIONS_TITLE": "Most Traded Options by Volume",
+ "ORIGINALS_TITLE": "Yahoo Originals",
+ "PEG_RATIO_5_YR": "PEG Ratio (5 yr expected)",
+ "PERSONAL_FINANCE_NAV_TITLE": "Personal Finance",
+ "POST_MARKET_NOTICE": "Post-Market:",
+ "PRESS_RELEASE": "Press Releases",
+ "PRICE_TO_BOOK": "Price\u002FBook",
+ "PROFILE": "Profile",
+ "PROPERTY_TITLE": "Property",
+ "QUOTE_LOOKUP": "Quote Lookup",
+ "RATES": "Rates",
+ "REAL_ESTATE_TITLE": "Real Estate",
+ "RENAME": "Rename",
+ "RENAME_MODAL_ERROR_MESSAGE": "Please enter a valid watchlist name.",
+ "RENAME_MODAL_MESSAGE": "Enter a new name for {pfName}.",
+ "RENAME_MODAL_TITLE": "Rename your watchlist",
+ "RETAILING_HOSPITALITY_TITLE": "Retailing &amp; Hospitality",
+ "RETIREMENT_TITLE": "Retirement",
+ "RQ_TITLE": "Recently Viewed",
+ "SAVE": "Save",
+ "SAVING_SPENDING_TITLE": "Saving &amp; Spending",
+ "SCREENER_TITLE": "My Screeners",
+ "SHARE": "Share",
+ "SHARES_FLOAT": "Float",
+ "SHORT_RATIO": "Short Ratio",
+ "SHOW_ALL_RESULTS_FOR": "Show all results for {query}",
+ "SIGN_IN": "Sign In",
+ "SIGN_IN_TO_ADD_WATCHLIST": "Sign in to add to watchlist",
+ "SMALL_BUSINESS_TITLE": "Small Business",
+ "SOFTWARE_SERVICES_TITLE": "Computer Software &amp; Services",
+ "SPLIT": "Split",
+ "SPORTSBOOK_TITLE": "Sportsbook",
+ "START": "Start",
+ "SUGGESTIONS": "Suggestions",
+ "SUMMARY": "Summary",
+ "TAXES_TITLE": "Taxes",
+ "TDG_BASIC": "Basic Columns",
+ "TDG_DETAILS": "Details Columns",
+ "TDG_ESTIMATES": "Estimates Columns",
+ "TDG_FUNDAMENTALS": "Fundamentals Columns",
+ "TDG_MARKET": "Share Statistics",
+ "TDG_MOVERS": "Moving Averages Columns",
+ "TDG_PORTFOLIOS": "Portfolios Columns",
+ "TDG_SHARE_STATS": "Share Statistics",
+ "TD_52_WK_HIGH": "52 Week High",
+ "TD_52_WK_LOW": "52 Week Low",
+ "TD_52_WK_RANGE": "52 Week Range",
+ "TD_ALERTS": "Alerts",
+ "TD_ASK": "Ask",
+ "TD_ASK_SIZE": "Ask Size",
+ "TD_BID": "Bid",
+ "TD_BID_SIZE": "Bid Size",
+ "TD_BOOK_VALUE": "Book Val",
+ "TD_CASH_AMOUNT": "Amount",
+ "TD_CHANGE": "Change",
+ "TD_COST_BASIS": "Cost Basis",
+ "TD_CURRENCY": "Currency",
+ "TD_DAY_GAIN": "Day Gain $",
+ "TD_DAY_GAIN_PERCENT": "Day Gain %",
+ "TD_DAY_HIGH": "Day High",
+ "TD_DAY_LOW": "Day Low",
+ "TD_DAY_RANGE": "Intraday High\u002FLow",
+ "TD_DIVIDEND_AMOUNT": "Dividend Amount",
+ "TD_DIVIDEND_PAYMENT_DATE": "Dividend Payment Date",
+ "TD_DIVIDEND_YIELD": "Dividend Yield",
+ "TD_EARNINGS_PER_SHARE": "Earnings Per Share",
+ "TD_EBITDA": "EBITDA",
+ "TD_EPS": "EPS",
+ "TD_EXCHANGE": "Exchange",
+ "TD_EX_DIVIDEND_DATE": "Ex-Dividend Date",
+ "TD_FIVE_YEAR": "5-Yr Return",
+ "TD_FUND_CATEGORY": "Category",
+ "TD_HIGH_LIMIT": "High Limit",
+ "TD_LAST_MONTH": "Last Month",
+ "TD_LAST_NAV": "Last NAV",
+ "TD_LAST_WEEK": "Last Week",
+ "TD_LOT_VALUE": "Lot Value",
+ "TD_LOW_LIMIT": "Low Limit",
+ "TD_MARKET": "Intraday Return",
+ "TD_MARKET_CAP": "Market Cap",
+ "TD_MARKET_TIME": "Market Time",
+ "TD_MARKET_VALUE": "Market Value",
+ "TD_MATURITY": "Maturity",
+ "TD_NAV_CHANGE": "NAV $ Change",
+ "TD_NAV_PERCENT_CHANGE": "NAV % Change",
+ "TD_NOTES": "Notes",
+ "TD_OPEN": "Open",
+ "TD_OPEN_INTEREST": "Open Interest",
+ "TD_OPTION_NAME": "Option",
+ "TD_OPTION_SYMBOL": "Option Symbol",
+ "TD_PERCENT_CHANGE": "% Change",
+ "TD_PE_RATIO": "PE Ratio",
+ "TD_PREV_CLOSE": "Prev Close",
+ "TD_PRICE": "Last Price",
+ "TD_PRICE_PAID_PER_SHARE": "Price Paid",
+ "TD_SHARES": "Shares",
+ "TD_SHARES_OUTSTANDING": "Shares Out",
+ "TD_SPARKLINE": "Day Chart",
+ "TD_SYMBOL": "Symbol",
+ "TD_THREE_MONTH": "3-Mo Return",
+ "TD_THREE_YEAR": "3-Yr Return",
+ "TD_TOTAL_GAIN": "Total Gain $",
+ "TD_TOTAL_GAIN_PERCENT": "Total Gain %",
+ "TD_TRADE_DATE": "Trade Date",
+ "TD_VOLUME": "Volume",
+ "TD_YEAR_TO_DATE": "YTD Return",
+ "TD_YESTERDAY": "Yesterday",
+ "TD_YIELD": "Yield",
+ "TECH_NAV_TITLE": "Tech",
+ "TELECOM_UTILITIES_TITLE": "Telecom &amp; Utilities",
+ "TOP_STORIES_TITLE": "Top Stories",
+ "TRAILING_PE": "Trailing P\u002FE",
+ "TRAVEL_TITLE": "Travel",
+ "TRENDING_TICKERS_TITLE": "Trending Tickers",
+ "UNDO": "Undo",
+ "VIDEO_TITLE": "Video",
+ "VIEW_CHART": "View Chart",
+ "WATCHLISTS_NAV_TITLE": "Watchlists",
+ "WORLD_INDICES": "World Indices",
+ "WORLD_TITLE": "World",
+ "YF_TITLE": "Yahoo Finance Lists"
+ },
+ "tdv2-applet-mtfpopup": {
+ "YMSB_MTF_HEADER": "Email this",
+ "YMSB_MTF_FROM": "From",
+ "YMSB_MTF_LOADNG": "Loading",
+ "YMSB_MTF_TO": "To",
+ "YMSB_MTF_FB_CONTACT_IMPORT_MESG": "Don't see your Facebook contacts?",
+ "YMSB_MTF_FB_CONTACT_IMPORT": "Import them.",
+ "YMSB_MTF_SEND_ME": "Send me a copy of this email",
+ "YMSB_MTF_PMESG_PRETEXT": "Write a message, maximum 300 characters",
+ "YMSB_MTF_SEND_BTN": "Send",
+ "YMSB_MTF_CANCEL_BTN": "Cancel",
+ "YMSB_MTF_CLOSE": "Close",
+ "YMSB_MTF_SUCCESS_LABEL": "Thank You!",
+ "YMSB_MTF_SUCCESS": "Your email was sent to",
+ "YMSB_MTF_SEND_ERROR": "Error occurs, please try again later.",
+ "YMSB_MTF_ERROR_REMAIL": "Please enter valid email addresses, separated by commas.",
+ "YMSB_MTF_ERROR_REMAIL_MAX": "Maximum {num} receiver email limit exceeded.",
+ "YMSB_MTF_ERROR_SEMAIL": "Please enter a valid email address.",
+ "YMSB_MTF_ERROR_PMESG": "Please enter a message.",
+ "YMSB_MTF_INVALID_EMAIL": "Email is not valid.",
+ "YMSB_MTF_EMAIL_TEMPLATE_FOOTER_POLICY": "This email was sent to you at the request of one of our users. To learn more about Yahoo's use of personal information, including the use of \u003Ca href=\"{beaconUrl}\" target=\"_blank\"\u003E\u003Cspan style=\"color:#400090;\"\u003Eweb beacons\u003C\u002Fspan\u003E\u003C\u002Fa\u003E in HTML-based email, please read our \u003Ca href=\"{privUrl}\" target=\"_blank\"\u003E\u003Cspan style=\"color:#400090;\"\u003EPrivacy Policy\u003C\u002Fspan\u003E\u003C\u002Fa\u003E.",
+ "YMSB_MTF_EMAIL_TEMPLATE_FOOTER_ADDRESS": "Yahoo is located at 701 First Avenue, Sunnyvale, CA 94089."
+ },
+ "tdv2-applet-breakingnews": {
+ "BREAKING_NEWS": "Breaking News",
+ "BREAKING": "Breaking",
+ "DEVELOPING": "Developing",
+ "FEATURED": "Featured",
+ "LIVE": "Live"
+ },
+ "tdv2-applet-slideshow": {
+ "NEXT": "Next",
+ "PREV": "Previous",
+ "SPONSORED": "Sponsored",
+ "MORE": "More",
+ "LESS": "Less"
+ },
+ "tdv2-applet-content-canvas": {
+ "SOURCE": "Source: {source}",
+ "READ_MORE": "Read More",
+ "READ_FULL_ARTICLE": "Read Full Article",
+ "SPONSORED": "Sponsored",
+ "ADFB_DONE": "Done",
+ "ADFB_FDB1": "It's offensive to me",
+ "ADFB_FDB2": "I keep seeing this",
+ "ADFB_FDB3": "It's not relevant to me",
+ "ADFB_FDB4": "Something else",
+ "ADFB_HEADING": "Why don't you like this ad?",
+ "ADFB_REVIEW": "We'll review and make changes needed.",
+ "ADFB_THANKYOU": "Thank you for your feedback",
+ "ADFB_TOOLTIP": "I don't like this ad",
+ "ADFB_UNDO": "Undo",
+ "ADFB_CLOSE": "Close",
+ "TUMBLR_SHARE": "Reblog",
+ "FACEBOOK_SHARE": "Share",
+ "TWITTER_SHARE": "Tweet",
+ "PINTEREST_SHARE": "Pin it",
+ "MAIL_SHARE": "Send",
+ "COPY_LINK_SHARE": "Copy",
+ "SHARE": "Share",
+ "CLOSE": "Close",
+ "COMMENT": "Comment",
+ "RELATED_SEARCH_RESULT": "Related Search Result",
+ "VIEW_PHOTOS": "View photos",
+ "MORE": "More",
+ "LESS": "Less",
+ "COMMENTS_PLURAL": "Comments",
+ "LIKE_THIS_TOPIC": "Like",
+ "SIGN_IN_TO_LIKE": "Like",
+ "UNDO": "Undo",
+ "ENTER_MODAL_MSG": "Beginning of a Modal Window. You are entering a Modal, Escape will cancel and close the window."
+ },
+ "tdv2-applet-swisschamp": {
+ "BROWSER_UPGRADE": "Some parts of this page may not look right. To see them, {msg}",
+ "FIREFOX_UPGRADE": "upgrade to the new Firefox.",
+ "CLOSE": "Close"
+ },
+ "td-ads": {},
+ "tdv2-applet-stream": {
+ "ADFB_DONE": "Done",
+ "ADFB_FDB1": "It's offensive to me",
+ "ADFB_FDB2": "I keep seeing this",
+ "ADFB_FDB3": "It's not relevant to me",
+ "ADFB_FDB4": "Something else",
+ "ADFB_HEADING": "Why don't you like this ad?",
+ "ADFB_REVIEW": "We'll review and make changes needed.",
+ "ADFB_THANKYOU": "Thank you for your feedback",
+ "ADFB_TOOLTIP": "I don't like this ad",
+ "ADFB_UNDO": "Undo",
+ "ADFB_CLOSE": "Close",
+ "LEARN_MORE": "Learn More",
+ "EDITORS_PICK": "Editor's Pick",
+ "FEATURED": "Featured",
+ "HIDE_SOURCES": "Hide Sources",
+ "HIDE_STORIES": "Hide Stories",
+ "SHARE_MENU": "Share Menu",
+ "SHOW_SOURCES": "More Sources",
+ "SHOW_STORIES": "More Stories",
+ "THE_ROUNDUP": "Need To Know",
+ "YOU_MIGHT_ALSO_LIKE": "You might also like",
+ "FOLLOW": "Follow",
+ "FOLLOWING": "Following",
+ "LIKE_THIS_TOPIC": "Like this topic",
+ "SIGN_IN_TO_LIKE": "Sign in to like",
+ "UNFOLLOW": "Unfollow",
+ "UNDO": "Undo",
+ "APPLET_COMMENT_ARIA_VIEW_COMMENTS": "Comments. Click to view comments",
+ "APPLET_COMMENT_COMMENTS": "Comments",
+ "APPLET_COMMENT_START_CONVERSATION": "Start the conversation",
+ "REBLOG_ON_TUMBLR": "Reblog on Tumblr",
+ "FACEBOOK": "Facebook",
+ "EMAIL": "Email",
+ "SEND": "Send",
+ "PINTEREST": "Pinterest",
+ "TUMBLR": "Tumblr",
+ "TWITTER": "Twitter",
+ "WHATSAPP": "Whatsapp",
+ "CLOSE": "Close",
+ "CONTENT_ERROR": "{hasItems, select, true {We're sorry this is all we were able to find about this topic.} false {We're sorry we weren't able to find anything about this topic.}}",
+ "JOIN_THE_CONVERSATION": "Join the Conversation",
+ "MORE": "More",
+ "MORE_ON": "More on {category}",
+ "SIDEKICK_TITLE": "What to Read Next",
+ "SPONSORED": "Sponsored"
+ },
+ "tdv2-applet-footer": {
+ "ABOUT_OUR_ADS": "About our Ads",
+ "ADVERTISE": "Advertise",
+ "ATTRIBUTION_AUTOS": "Yahoo Autos",
+ "ATTRIBUTION_CELEBRITY": "Yahoo Celebrity",
+ "ATTRIBUTION_CELEBRITY_UK": "Yahoo Celebrity UK",
+ "ATTRIBUTION_DECOR": "Yahoo Decor and Real Estate Network",
+ "ATTRIBUTION_GMA": "Yahoo - ABC News Network",
+ "ATTRIBUTION_HOMES": "Yahoo Homes",
+ "ATTRIBUTION_LETSSOLVEIT": "Yahoo Finance",
+ "ATTRIBUTION_LIFESTYLE": "Yahoo Lifestyle Network",
+ "ATTRIBUTION_MOVIES": "Yahoo Movies",
+ "ATTRIBUTION_MUSIC": "Yahoo Music",
+ "ATTRIBUTION_NEWS": "Yahoo News Network",
+ "ATTRIBUTION_REALESTATE": "Yahoo Decor and Real Estate Network",
+ "ATTRIBUTION_STYLE": "Yahoo Style",
+ "ATTRIBUTION_STYLE_BEAUTY": "Yahoo Style and Beauty Network",
+ "ATTRIBUTION_TRAVEL": "Yahoo Travel Network",
+ "ATTRIBUTION_TV": "Yahoo TV",
+ "ATTRIBUTION_YAHOO": "Yahoo",
+ "CAREERS": "Careers",
+ "DISCLAIMER": "Data Disclaimer",
+ "FEEDBACK": "Feedback",
+ "HELP": "Help",
+ "LEGAL_ATTRIBUTION": "Brought to you by {attribution}",
+ "PRIVACY": "Privacy",
+ "SUGGESTIONS": "Suggestions",
+ "TERMS": "Terms"
+ },
+ "tdv2-applet-uh": {
+ "ABOUT_THIS_PAGE": "About this Page",
+ "ACCOUNT_INFO": "Account Info",
+ "ADVANCED_SEARCH": "Advanced Search",
+ "ADVERTISING_PROGRAMS": "Advertising Programs",
+ "ALL": "ALL",
+ "BACK": "Back",
+ "CANCEL": "Cancel",
+ "COMPOSE": "Compose",
+ "CORPMAIL": "Corp Mail",
+ "DEVELOPING_NOW": "Developing Now",
+ "FOLLOW": "Follow",
+ "FOLLOWABLE_STORYLINES": "Followable storylines",
+ "FOLLOWING": "Following",
+ "GO_TO_HELP": "Go",
+ "GO_TO_MAIL": "Go to Mail",
+ "HAVE_NO_NEW_MESSAGES": "You have no new messages.",
+ "HELP": "Help",
+ "HOME": "Home",
+ "LOADING": "Loading",
+ "MAIL": "Mail",
+ "MENU": "Menu",
+ "MORE": "More",
+ "NAV_HOME": "Home",
+ "NAV_MAIL": "Mail",
+ "NOTIFICATIONS": "Notifications",
+ "PREFERENCES": "Preferences",
+ "PROFILE": "Profile",
+ "PROPERTY_NAME_ANSWERS": "Answers",
+ "PROPERTY_NAME_AUTOS": "Autos",
+ "PROPERTY_NAME_BACKSTAGE": "Music",
+ "PROPERTY_NAME_BEAUTY": "Beauty",
+ "PROPERTY_NAME_CELEBRITY": "Celebrity",
+ "PROPERTY_NAME_CUBA": "In-Depth",
+ "PROPERTY_NAME_DAILYFANTASY": "Fantasy",
+ "PROPERTY_NAME_DECOR": "Decor",
+ "PROPERTY_NAME_ESPORTS": "Esports",
+ "PROPERTY_NAME_FANTASY": "Fantasy",
+ "PROPERTY_NAME_FINANCE": "Finance",
+ "PROPERTY_NAME_FLICKR": "Flickr",
+ "PROPERTY_NAME_FOOD": "Food",
+ "PROPERTY_NAME_GAMES": "Games",
+ "PROPERTY_NAME_GROUPS": "Groups",
+ "PROPERTY_NAME_HEALTH": "Health",
+ "PROPERTY_NAME_HOMES": "Homes",
+ "PROPERTY_NAME_HOROSCOPES": "Horoscopes",
+ "PROPERTY_NAME_KATIECOURIC": "News",
+ "PROPERTY_NAME_LIVENATIONPRESENTS": "Music",
+ "PROPERTY_NAME_MAIL": "Mail",
+ "PROPERTY_NAME_MAKERS": "Makers",
+ "PROPERTY_NAME_MOBILE": "Mobile",
+ "PROPERTY_NAME_MOVIES": "Movies",
+ "PROPERTY_NAME_MUSIC": "Music",
+ "PROPERTY_NAME_NEWS": "News",
+ "PROPERTY_NAME_OMG": "omg!",
+ "PROPERTY_NAME_PARENTING": "Parenting",
+ "PROPERTY_NAME_PEOPLE": "People",
+ "PROPERTY_NAME_POLITICS": "Politics",
+ "PROPERTY_NAME_POPEVISIT": "In-Depth",
+ "PROPERTY_NAME_REALESTATE": "Real Estate",
+ "PROPERTY_NAME_RISING": "Music",
+ "PROPERTY_NAME_SCREEN": "Screen",
+ "PROPERTY_NAME_SETTINGS": "Settings",
+ "PROPERTY_NAME_SHINE": "Shine",
+ "PROPERTY_NAME_SHOPPING": "Shopping",
+ "PROPERTY_NAME_SPORTS": "Sports",
+ "PROPERTY_NAME_STYLE": "Style",
+ "PROPERTY_NAME_TECH": "Tech",
+ "PROPERTY_NAME_TRAVEL": "Travel",
+ "PROPERTY_NAME_TV": "TV",
+ "PROPERTY_NAME_WEATHER": "Weather",
+ "SEARCH": "Search",
+ "SEARCH_EMPTY": " ",
+ "SEARCH_HISTORY": "Search History",
+ "SEARCH_VERT_NEWS": "Search News",
+ "SEARCH_WEB": "Search web",
+ "SETTINGS": "Settings",
+ "SHARE": "Share",
+ "SIGNIN": "Sign in",
+ "SIGNOUT": "Sign out",
+ "START_TYPING": "Start typing...",
+ "SUGGESTIONS": "Suggestions",
+ "TO_SAVE": "to save and get updates.",
+ "TO_VIEW_NOTIFICATIONS": "to view your notifications",
+ "UNABLE_TO_PREVIEW_MAIL": "We are unable to preview your mail.",
+ "UNFOLLOW": "Unfollow",
+ "WELCOME_BACK": "Welcome back",
+ "YAHOO": "Yahoo"
+ },
+ "tdv2-applet-discussion": {
+ "APPLET_COMMENT_YAHOO_READER": "A Yahoo reader",
+ "COMMUNITY_JTC": "Popular in the Community",
+ "CONVERSATION": "Conversations around this story lean {sentiment, select, positive {{positive}} negative {{negative}}}",
+ "CONVERSATION_NEUTRAL": "Conversations around this story are mostly {neutral}",
+ "JOIN_THE_CONVERSATION": "Join the Conversation",
+ "MESSAGES": "messages",
+ "NEGATIVE": "negative",
+ "NEUTRAL": "neutral",
+ "POSITIVE": "positive",
+ "SPONSORED": "Sponsored"
+ },
+ "tdv2-applet-account-switch": {
+ "ACCOUNT_INFO": "Account Info",
+ "ACCOUNT_MANAGEMENT": "Add or Manage accounts",
+ "ADD_ACCOUNT": "Add account",
+ "BACKYARD": "Backyard",
+ "SIGNOUT": "Sign Out",
+ "SIGNOUT_ALL": "Sign out all",
+ "WELCOME": "Welcome back"
+ }
+ },
+ "intlConfig": {}
+ },
+ "BeaconStore": {
+ "beaconConfig": {
+ "defaultSrc": "td-app-yahoo",
+ "beaconUncaughtJSError": true,
+ "enableBatch": false,
+ "pathPrefix": "https:\u002F\u002Fwww.yahoo.com\u002F_td_api\u002Fbeacon",
+ "sampleSize": 1,
+ "sampleSizeUncaughtJSError": 100,
+ "context": {
+ "prid": "2n23a79c1iosl",
+ "authed": "0",
+ "ynet": "0",
+ "ssl": "0",
+ "spdy": "0",
+ "ytee": "0",
+ "mode": "normal",
+ "site": "finance",
+ "region": "US",
+ "lang": "en-US",
+ "bucket": "finance-US-en-US-def",
+ "colo": "gq1",
+ "device": "desktop",
+ "bot": "0",
+ "environment": "prod",
+ "intl": "us",
+ "partner": "none",
+ "tz": "Asia\u002FTaipei",
+ "feature": ["canvass", "newContentAttribution"]
+ }
+ }
+ },
+ "AdStore": {
+ "appConfig": {
+ "base": {
+ "aboveFoldPositions": "MAST,LDRB,SPRZ,SPL,SPL-2,LREC,MON-1",
+ "autoRotation": 10000,
+ "autoadrender": true,
+ "darlaJsAtTop": true,
+ "darlaVersion": "2-9-13",
+ "darlaAssetFetch": true,
+ "cacheDarlaAsset": true,
+ "darlaConfigFetch": true,
+ "cacheDarlaConfig": true,
+ "events": {
+ "AUTO": {
+ "name": "AUTO",
+ "autoStart": 1,
+ "autoMax": 25,
+ "autoRT": 10000,
+ "autoIV": 1,
+ "autoDDG": 1,
+ "ps": {
+ "LDRB": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LDRB-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LDRB2-1": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LDRB2-2": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC-1": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC2": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC2-1": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-4": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-5": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-6": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-7": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-8": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC3": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC3-4": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-5": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-6": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-7": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-8": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC4": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "MAST": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ },
+ "MAST-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ },
+ "MON-1": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "SPL": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ },
+ "SPL-2": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ },
+ "SPL2": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ }
+ }
+ },
+ "DEFAULT": {
+ "clw": {
+ "LREC": {
+ "blocked_by": "MON-1"
+ },
+ "MON-1": {
+ "blocked_by": "LREC"
+ },
+ "MAST-9": {
+ "blocked_by": "SPL,LDRB-9"
+ },
+ "MAST": {
+ "blocked_by": "SPL,LDRB"
+ },
+ "LDRB": {
+ "blocked_by": "MAST,SPL"
+ },
+ "LDRB-9": {
+ "blocked_by": "MAST-9,SPL"
+ },
+ "SPL": {
+ "blocked_by": "MAST,LDRB"
+ }
+ }
+ }
+ },
+ "multipleRenderTargets": true,
+ "positions": {
+ "DEFAULT": {
+ "meta": {
+ "stack": "ydc"
+ }
+ },
+ "BTN": {
+ "w": 120,
+ "h": 60,
+ "autoFetch": false
+ },
+ "BTN-1": {
+ "w": 120,
+ "h": 60,
+ "autoFetch": false
+ },
+ "BTN-2": {
+ "w": 120,
+ "h": 60,
+ "autoFetch": false
+ },
+ "BTN-3": {
+ "w": 120,
+ "h": 60,
+ "autoFetch": false
+ },
+ "FOOT": {
+ "id": "FOOT",
+ "enable": true,
+ "fr": "expIfr_exp",
+ "autoFetch": false,
+ "supports": {
+ "lyr": 1
+ }
+ },
+ "FOOT9": {
+ "id": "FOOT9",
+ "enable": true,
+ "fr": "expIfr_exp",
+ "autoFetch": false,
+ "supports": {
+ "lyr": 1
+ }
+ },
+ "FSRVY": {
+ "id": "FSRVY",
+ "enable": true,
+ "fr": "expIfr_exp",
+ "autoFetch": false,
+ "supports": {
+ "lyr": 1
+ }
+ },
+ "LREC": {
+ "id": "LREC",
+ "w": 300,
+ "h": 250,
+ "fr": "expIfr_exp",
+ "autoFetch": false,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 3,
+ "fallback": {
+ "link": "https:\u002F\u002Fbaseball.fantasysports.yahoo.com\u002Fb1\u002Fsignup",
+ "image": "https:\u002F\u002Fs.yimg.com\u002Fnn\u002Flib\u002Fmetro\u002FDailyFantasy_BN_Baseball_300x250-min.jpg"
+ }
+ },
+ "LREC-1": {
+ "id": "LREC-1",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC-2": {
+ "id": "LREC-2",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC-9": {
+ "id": "LREC-9",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC2-1": {
+ "id": "LREC2-1",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC2-2": {
+ "id": "LREC2-2",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC2-4": {
+ "id": "LREC2-4",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC2-5": {
+ "id": "LREC2-5",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC2-6": {
+ "id": "LREC2-6",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC2-7": {
+ "id": "LREC2-7",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC2-8": {
+ "id": "LREC2-8",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC2-9": {
+ "id": "LREC2-9",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC2": {
+ "id": "LREC2",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC3": {
+ "id": "LREC3",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC3-1": {
+ "id": "LREC3-1",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC3-4": {
+ "id": "LREC3-4",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC3-5": {
+ "id": "LREC3-5",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC3-6": {
+ "id": "LREC3-6",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC3-7": {
+ "id": "LREC3-7",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC3-8": {
+ "id": "LREC3-8",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC3-9": {
+ "id": "LREC3-9",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC4": {
+ "id": "LREC4",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LDRB": {
+ "id": "LDRB",
+ "w": 728,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true
+ },
+ "LDRB-1": {
+ "id": "LDRB-1",
+ "w": 728,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true
+ },
+ "LDRB-9": {
+ "id": "LDRB-9",
+ "w": 728,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true
+ },
+ "LDRB2-1": {
+ "id": "LDRB2-1",
+ "w": 728,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true
+ },
+ "LDRB2-2": {
+ "id": "LDRB2-2",
+ "w": 728,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true
+ },
+ "LDRP": {
+ "id": "LDRP",
+ "w": 320,
+ "h": 50,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1,
+ "lyr": 1
+ },
+ "enable": true,
+ "metaSize": true,
+ "staticLayout": true,
+ "fdb": true
+ },
+ "MAST": {
+ "id": "MAST",
+ "w": 970,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1,
+ "resize-to": 1
+ },
+ "enable": true,
+ "staticLayout": false,
+ "fclose": 2,
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "closeBtn": {
+ "adc": 0,
+ "mode": 2,
+ "useShow": 1
+ },
+ "metaSize": true
+ },
+ "MAST-9": {
+ "id": "MAST-9",
+ "w": 970,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1,
+ "resize-to": 1
+ },
+ "enable": true,
+ "staticLayout": false,
+ "fclose": 2,
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "closeBtn": {
+ "adc": 0,
+ "mode": 2,
+ "useShow": 1
+ },
+ "metaSize": true
+ },
+ "MFPAD": {
+ "id": "MFPAD",
+ "w": 720,
+ "h": 90,
+ "autoFetch": false,
+ "enable": true,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "metaSize": true,
+ "staticLayout": false,
+ "fdb": false
+ },
+ "MON-1": {
+ "id": "MON-1",
+ "w": 300,
+ "h": 600,
+ "fr": "expIfr_exp",
+ "autoFetch": false,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 3
+ },
+ "SPL": {
+ "id": "SPL",
+ "flex": "both",
+ "enable": true,
+ "autoFetch": false,
+ "staticLayout": false,
+ "fclose": 2,
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "supports": {
+ "cmsg": 1
+ },
+ "uhslot": ".YDC-UH",
+ "meta": {
+ "type": "stream"
+ },
+ "css": ".Mags-FontA{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:300}.Mags-FontA.Size1{font-size:13px}.Mags-FontA.Size2{font-size:16px}.Mags-FontA.Size3{font-size:20px}.Mags-FontA.Size4{font-size:22px}.Mags-FontA.Size5{font-size:33px}.Mags-FontA.Size6{font-size:35px}.Mags-FontA.Size7{font-size:58px}.Mags-FontA.Size8{font-size:70px}.Mags-FontA.Size9{font-size:100px}.Mags-FontB{font-family:Georgia,Times,serif;font-weight:400}.Mags-FontB.Size1{font-size:18px}.Mags-FontC{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400}.Mags-FontC.Size1{font-size:11px}.Mags-FontC.Size2{font-size:14px}.Mags-FontC.Size3{font-size:16px}.Mags-FontC.Size4{font-size:20px}.Mags-FontC.Size5{font-size:30px}.Mags-FontC.Size6{font-size:32px}.Mags-FontC.Size7{font-size:52px}"
+ },
+ "SPL-2": {
+ "id": "SPL-2",
+ "flex": "both",
+ "enable": true,
+ "autoFetch": false,
+ "staticLayout": false,
+ "fclose": 2,
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "supports": {
+ "cmsg": 1
+ },
+ "uhslot": ".YDC-UH",
+ "meta": {
+ "type": "stream"
+ },
+ "css": ".Mags-FontA{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:300}.Mags-FontA.Size1{font-size:13px}.Mags-FontA.Size2{font-size:16px}.Mags-FontA.Size3{font-size:20px}.Mags-FontA.Size4{font-size:22px}.Mags-FontA.Size5{font-size:33px}.Mags-FontA.Size6{font-size:35px}.Mags-FontA.Size7{font-size:58px}.Mags-FontA.Size8{font-size:70px}.Mags-FontA.Size9{font-size:100px}.Mags-FontB{font-family:Georgia,Times,serif;font-weight:400}.Mags-FontB.Size1{font-size:18px}.Mags-FontC{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400}.Mags-FontC.Size1{font-size:11px}.Mags-FontC.Size2{font-size:14px}.Mags-FontC.Size3{font-size:16px}.Mags-FontC.Size4{font-size:20px}.Mags-FontC.Size5{font-size:30px}.Mags-FontC.Size6{font-size:32px}.Mags-FontC.Size7{font-size:52px}"
+ },
+ "SPL2": {
+ "id": "SPL2",
+ "autoFetch": false,
+ "flex": "both",
+ "enable": true,
+ "staticLayout": false,
+ "fclose": 2,
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "supports": {
+ "cmsg": 1
+ },
+ "uhslot": ".YDC-UH",
+ "meta": {
+ "stack": "ydc",
+ "type": "stream"
+ },
+ "css": ".Mags-FontA{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:300}.Mags-FontA.Size1{font-size:13px}.Mags-FontA.Size2{font-size:16px}.Mags-FontA.Size3{font-size:20px}.Mags-FontA.Size4{font-size:22px}.Mags-FontA.Size5{font-size:33px}.Mags-FontA.Size6{font-size:35px}.Mags-FontA.Size7{font-size:58px}.Mags-FontA.Size8{font-size:70px}.Mags-FontA.Size9{font-size:100px}.Mags-FontB{font-family:Georgia,Times,serif;font-weight:400}.Mags-FontB.Size1{font-size:18px}.Mags-FontC{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400}.Mags-FontC.Size1{font-size:11px}.Mags-FontC.Size2{font-size:14px}.Mags-FontC.Size3{font-size:16px}.Mags-FontC.Size4{font-size:20px}.Mags-FontC.Size5{font-size:30px}.Mags-FontC.Size6{font-size:32px}.Mags-FontC.Size7{font-size:52px}"
+ },
+ "SPRZ": {
+ "id": "SPRZ",
+ "autoFetch": false,
+ "flex": "both",
+ "enable": true,
+ "staticLayout": false,
+ "fdb": false,
+ "supports": {
+ "cmsg": 1
+ },
+ "uhslot": ".YDC-UH"
+ },
+ "SPON": {
+ "pos": "SPON",
+ "h": 1,
+ "id": "SPON",
+ "w": 1,
+ "autoFetch": false
+ },
+ "TXTL": {
+ "id": "TXTL",
+ "w": 120,
+ "h": 170,
+ "css": "#fc_align a,#tl1_slug{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:11px}.ad-tl2b{overflow:hidden;text-align:left}p{margin:0}a{color:#020e65}a:hover{color:#0078ff}.y-fp-pg-controls{margin-top:5px;margin-bottom:5px}#tl1_slug{color:#999}a:link{text-decoration:none}",
+ "autoFetch": false
+ },
+ "WFPAD": {
+ "id": "WFPAD",
+ "w": 320,
+ "h": 50,
+ "autoFetch": false,
+ "enable": true,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1,
+ "lyr": 1,
+ "resize-to": 1
+ },
+ "metaSize": true,
+ "staticLayout": false,
+ "fdb": false
+ }
+ },
+ "rotationTimingDisabled": false,
+ "nukeAds": "LREC,LREC2,LREC3,LREC-9,LREC2-9,LREC3-9,MAST,LDRB,LDRB2-1,LDRB2-2,MON-1,SPL"
+ }
+ },
+ "pageConfig": {
+ "base": {
+ "events": {
+ "adFetch": {
+ "ps": "BTN,BTN-1,BTN-2,BTN-3,MAST,LDRB,SPL,LREC,LREC2,LREC3,FOOT,FSRVY",
+ "dynamic": true,
+ "addsa": "megamodal=true",
+ "firstRender": "BTN,BTN-1,BTN-2,BTN-3,LREC"
+ }
+ },
+ "contentTypeAdPosModifier": {
+ "slideshow": ["-LREC", "LREC-2", "LREC2"],
+ "inlineSlideshow": []
+ },
+ "deferRender": true
+ },
+ "header": null
+ },
+ "routeConfig": {},
+ "failedPositions": {
+ "positions": {
+ "BTN": {
+ "failed": true
+ },
+ "BTN-1": {
+ "failed": true
+ },
+ "BTN-2": {
+ "failed": true
+ },
+ "BTN-3": {
+ "failed": true
+ },
+ "FOOT": {
+ "failed": true
+ },
+ "FSRVY": {
+ "failed": true
+ }
+ }
+ },
+ "darlaConfig": {
+ "aboveFoldPositions": "MAST,LDRB,SPRZ,SPL,SPL-2,LREC,MON-1",
+ "autoRotation": 10000,
+ "events": {
+ "AUTO": {
+ "name": "AUTO",
+ "autoStart": 1,
+ "autoMax": 25,
+ "autoRT": 10000,
+ "autoIV": 1,
+ "autoDDG": 1,
+ "ps": {
+ "LDRB": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LDRB-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LDRB2-1": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LDRB2-2": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC-1": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC2": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC2-1": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-4": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-5": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-6": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-7": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-8": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC3": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC3-4": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-5": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-6": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-7": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-8": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC4": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "MAST": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ },
+ "MAST-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ },
+ "MON-1": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "SPL": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ },
+ "SPL-2": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ },
+ "SPL2": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ }
+ }
+ },
+ "DEFAULT": {
+ "clw": {
+ "LREC": {
+ "blocked_by": "MON-1"
+ },
+ "MON-1": {
+ "blocked_by": "LREC"
+ },
+ "MAST-9": {
+ "blocked_by": "SPL,LDRB-9"
+ },
+ "MAST": {
+ "blocked_by": "SPL,LDRB"
+ },
+ "LDRB": {
+ "blocked_by": "MAST,SPL"
+ },
+ "LDRB-9": {
+ "blocked_by": "MAST-9,SPL"
+ },
+ "SPL": {
+ "blocked_by": "MAST,LDRB"
+ }
+ }
+ },
+ "adFetch": {
+ "ps": "BTN,BTN-1,BTN-2,BTN-3,MAST,LDRB,SPL,LREC,LREC2,LREC3,FOOT,FSRVY",
+ "dynamic": true,
+ "addsa": "megamodal=true",
+ "firstRender": "BTN,BTN-1,BTN-2,BTN-3,LREC"
+ }
+ },
+ "positions": {
+ "DEFAULT": {
+ "meta": {
+ "stack": "ydc"
+ },
+ "clean": "cleanDEFAULT",
+ "dest": "destDEFAULT",
+ "enable": true,
+ "fallback": null,
+ "metaSize": false,
+ "id": "DEFAULT",
+ "staticLayout": false
+ },
+ "BTN": {
+ "w": 120,
+ "h": 60,
+ "autoFetch": false,
+ "clean": "cleanBTN",
+ "dest": "destBTN",
+ "enable": true,
+ "fallback": null,
+ "metaSize": false,
+ "id": "BTN",
+ "staticLayout": false,
+ "failed": true
+ },
+ "BTN-1": {
+ "w": 120,
+ "h": 60,
+ "autoFetch": false,
+ "clean": "cleanBTN-1",
+ "dest": "destBTN-1",
+ "enable": true,
+ "fallback": null,
+ "metaSize": false,
+ "id": "BTN-1",
+ "staticLayout": false,
+ "failed": true
+ },
+ "BTN-2": {
+ "w": 120,
+ "h": 60,
+ "autoFetch": false,
+ "clean": "cleanBTN-2",
+ "dest": "destBTN-2",
+ "enable": true,
+ "fallback": null,
+ "metaSize": false,
+ "id": "BTN-2",
+ "staticLayout": false,
+ "failed": true
+ },
+ "BTN-3": {
+ "w": 120,
+ "h": 60,
+ "autoFetch": false,
+ "clean": "cleanBTN-3",
+ "dest": "destBTN-3",
+ "enable": true,
+ "fallback": null,
+ "metaSize": false,
+ "id": "BTN-3",
+ "staticLayout": false,
+ "failed": true
+ },
+ "FOOT": {
+ "id": "FOOT",
+ "enable": true,
+ "fr": "expIfr_exp",
+ "autoFetch": false,
+ "supports": {
+ "lyr": 1
+ },
+ "clean": "cleanFOOT",
+ "dest": "destFOOT",
+ "fallback": null,
+ "metaSize": false,
+ "staticLayout": false,
+ "failed": true
+ },
+ "FOOT9": {
+ "id": "FOOT9",
+ "enable": true,
+ "fr": "expIfr_exp",
+ "autoFetch": false,
+ "supports": {
+ "lyr": 1
+ },
+ "clean": "cleanFOOT9",
+ "dest": "destFOOT9",
+ "fallback": null,
+ "metaSize": false,
+ "staticLayout": false
+ },
+ "FSRVY": {
+ "id": "FSRVY",
+ "enable": true,
+ "fr": "expIfr_exp",
+ "autoFetch": false,
+ "supports": {
+ "lyr": 1
+ },
+ "clean": "cleanFSRVY",
+ "dest": "destFSRVY",
+ "fallback": null,
+ "metaSize": false,
+ "staticLayout": false,
+ "failed": true
+ },
+ "LREC": {
+ "id": "LREC",
+ "w": 300,
+ "h": 250,
+ "fr": "expIfr_exp",
+ "autoFetch": false,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 3,
+ "fallback": {
+ "link": "https:\u002F\u002Fbaseball.fantasysports.yahoo.com\u002Fb1\u002Fsignup",
+ "image": "https:\u002F\u002Fs.yimg.com\u002Fnn\u002Flib\u002Fmetro\u002FDailyFantasy_BN_Baseball_300x250-min.jpg"
+ },
+ "clean": "cleanLREC",
+ "dest": "destLREC",
+ "metaSize": false
+ },
+ "LREC-1": {
+ "id": "LREC-1",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC-1",
+ "dest": "destLREC-1",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC-2": {
+ "id": "LREC-2",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC-2",
+ "dest": "destLREC-2",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC-9": {
+ "id": "LREC-9",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC-9",
+ "dest": "destLREC-9",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC2-1": {
+ "id": "LREC2-1",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC2-1",
+ "dest": "destLREC2-1",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC2-2": {
+ "id": "LREC2-2",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC2-2",
+ "dest": "destLREC2-2",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC2-4": {
+ "id": "LREC2-4",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC2-4",
+ "dest": "destLREC2-4",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC2-5": {
+ "id": "LREC2-5",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC2-5",
+ "dest": "destLREC2-5",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC2-6": {
+ "id": "LREC2-6",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC2-6",
+ "dest": "destLREC2-6",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC2-7": {
+ "id": "LREC2-7",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC2-7",
+ "dest": "destLREC2-7",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC2-8": {
+ "id": "LREC2-8",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC2-8",
+ "dest": "destLREC2-8",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC2-9": {
+ "id": "LREC2-9",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC2-9",
+ "dest": "destLREC2-9",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC2": {
+ "id": "LREC2",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC2",
+ "dest": "destLREC2",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC3": {
+ "id": "LREC3",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC3",
+ "dest": "destLREC3",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC3-1": {
+ "id": "LREC3-1",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC3-1",
+ "dest": "destLREC3-1",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC3-4": {
+ "id": "LREC3-4",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC3-4",
+ "dest": "destLREC3-4",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC3-5": {
+ "id": "LREC3-5",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC3-5",
+ "dest": "destLREC3-5",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC3-6": {
+ "id": "LREC3-6",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC3-6",
+ "dest": "destLREC3-6",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC3-7": {
+ "id": "LREC3-7",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC3-7",
+ "dest": "destLREC3-7",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC3-8": {
+ "id": "LREC3-8",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC3-8",
+ "dest": "destLREC3-8",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC3-9": {
+ "id": "LREC3-9",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC3-9",
+ "dest": "destLREC3-9",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC4": {
+ "id": "LREC4",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC4",
+ "dest": "destLREC4",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LDRB": {
+ "id": "LDRB",
+ "w": 728,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "clean": "cleanLDRB",
+ "dest": "destLDRB",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LDRB-1": {
+ "id": "LDRB-1",
+ "w": 728,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "clean": "cleanLDRB-1",
+ "dest": "destLDRB-1",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LDRB-9": {
+ "id": "LDRB-9",
+ "w": 728,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "clean": "cleanLDRB-9",
+ "dest": "destLDRB-9",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LDRB2-1": {
+ "id": "LDRB2-1",
+ "w": 728,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "clean": "cleanLDRB2-1",
+ "dest": "destLDRB2-1",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LDRB2-2": {
+ "id": "LDRB2-2",
+ "w": 728,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "clean": "cleanLDRB2-2",
+ "dest": "destLDRB2-2",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LDRP": {
+ "id": "LDRP",
+ "w": 320,
+ "h": 50,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1,
+ "lyr": 1
+ },
+ "enable": true,
+ "metaSize": true,
+ "staticLayout": true,
+ "fdb": true,
+ "clean": "cleanLDRP",
+ "dest": "destLDRP",
+ "fallback": null
+ },
+ "MAST": {
+ "id": "MAST",
+ "w": 970,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1,
+ "resize-to": 1
+ },
+ "enable": true,
+ "staticLayout": false,
+ "fclose": 2,
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "closeBtn": {
+ "adc": 0,
+ "mode": 2,
+ "useShow": 1
+ },
+ "metaSize": true,
+ "clean": "cleanMAST",
+ "dest": "destMAST",
+ "fallback": null
+ },
+ "MAST-9": {
+ "id": "MAST-9",
+ "w": 970,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1,
+ "resize-to": 1
+ },
+ "enable": true,
+ "staticLayout": false,
+ "fclose": 2,
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "closeBtn": {
+ "adc": 0,
+ "mode": 2,
+ "useShow": 1
+ },
+ "metaSize": true,
+ "clean": "cleanMAST-9",
+ "dest": "destMAST-9",
+ "fallback": null
+ },
+ "MFPAD": {
+ "id": "MFPAD",
+ "w": 720,
+ "h": 90,
+ "autoFetch": false,
+ "enable": true,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "metaSize": true,
+ "staticLayout": false,
+ "fdb": false,
+ "clean": "cleanMFPAD",
+ "dest": "destMFPAD",
+ "fallback": null
+ },
+ "MON-1": {
+ "id": "MON-1",
+ "w": 300,
+ "h": 600,
+ "fr": "expIfr_exp",
+ "autoFetch": false,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 3,
+ "clean": "cleanMON-1",
+ "dest": "destMON-1",
+ "fallback": null,
+ "metaSize": false
+ },
+ "SPL": {
+ "id": "SPL",
+ "flex": "both",
+ "enable": true,
+ "autoFetch": false,
+ "staticLayout": false,
+ "fclose": 2,
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "supports": {
+ "cmsg": 1
+ },
+ "uhslot": ".YDC-UH",
+ "meta": {
+ "type": "stream"
+ },
+ "css": ".Mags-FontA{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:300}.Mags-FontA.Size1{font-size:13px}.Mags-FontA.Size2{font-size:16px}.Mags-FontA.Size3{font-size:20px}.Mags-FontA.Size4{font-size:22px}.Mags-FontA.Size5{font-size:33px}.Mags-FontA.Size6{font-size:35px}.Mags-FontA.Size7{font-size:58px}.Mags-FontA.Size8{font-size:70px}.Mags-FontA.Size9{font-size:100px}.Mags-FontB{font-family:Georgia,Times,serif;font-weight:400}.Mags-FontB.Size1{font-size:18px}.Mags-FontC{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400}.Mags-FontC.Size1{font-size:11px}.Mags-FontC.Size2{font-size:14px}.Mags-FontC.Size3{font-size:16px}.Mags-FontC.Size4{font-size:20px}.Mags-FontC.Size5{font-size:30px}.Mags-FontC.Size6{font-size:32px}.Mags-FontC.Size7{font-size:52px}",
+ "clean": "cleanSPL",
+ "dest": "destSPL",
+ "fallback": null,
+ "metaSize": false
+ },
+ "SPL-2": {
+ "id": "SPL-2",
+ "flex": "both",
+ "enable": true,
+ "autoFetch": false,
+ "staticLayout": false,
+ "fclose": 2,
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "supports": {
+ "cmsg": 1
+ },
+ "uhslot": ".YDC-UH",
+ "meta": {
+ "type": "stream"
+ },
+ "css": ".Mags-FontA{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:300}.Mags-FontA.Size1{font-size:13px}.Mags-FontA.Size2{font-size:16px}.Mags-FontA.Size3{font-size:20px}.Mags-FontA.Size4{font-size:22px}.Mags-FontA.Size5{font-size:33px}.Mags-FontA.Size6{font-size:35px}.Mags-FontA.Size7{font-size:58px}.Mags-FontA.Size8{font-size:70px}.Mags-FontA.Size9{font-size:100px}.Mags-FontB{font-family:Georgia,Times,serif;font-weight:400}.Mags-FontB.Size1{font-size:18px}.Mags-FontC{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400}.Mags-FontC.Size1{font-size:11px}.Mags-FontC.Size2{font-size:14px}.Mags-FontC.Size3{font-size:16px}.Mags-FontC.Size4{font-size:20px}.Mags-FontC.Size5{font-size:30px}.Mags-FontC.Size6{font-size:32px}.Mags-FontC.Size7{font-size:52px}",
+ "clean": "cleanSPL-2",
+ "dest": "destSPL-2",
+ "fallback": null,
+ "metaSize": false
+ },
+ "SPL2": {
+ "id": "SPL2",
+ "autoFetch": false,
+ "flex": "both",
+ "enable": true,
+ "staticLayout": false,
+ "fclose": 2,
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "supports": {
+ "cmsg": 1
+ },
+ "uhslot": ".YDC-UH",
+ "meta": {
+ "stack": "ydc",
+ "type": "stream"
+ },
+ "css": ".Mags-FontA{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:300}.Mags-FontA.Size1{font-size:13px}.Mags-FontA.Size2{font-size:16px}.Mags-FontA.Size3{font-size:20px}.Mags-FontA.Size4{font-size:22px}.Mags-FontA.Size5{font-size:33px}.Mags-FontA.Size6{font-size:35px}.Mags-FontA.Size7{font-size:58px}.Mags-FontA.Size8{font-size:70px}.Mags-FontA.Size9{font-size:100px}.Mags-FontB{font-family:Georgia,Times,serif;font-weight:400}.Mags-FontB.Size1{font-size:18px}.Mags-FontC{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400}.Mags-FontC.Size1{font-size:11px}.Mags-FontC.Size2{font-size:14px}.Mags-FontC.Size3{font-size:16px}.Mags-FontC.Size4{font-size:20px}.Mags-FontC.Size5{font-size:30px}.Mags-FontC.Size6{font-size:32px}.Mags-FontC.Size7{font-size:52px}",
+ "clean": "cleanSPL2",
+ "dest": "destSPL2",
+ "fallback": null,
+ "metaSize": false
+ },
+ "SPRZ": {
+ "id": "SPRZ",
+ "autoFetch": false,
+ "flex": "both",
+ "enable": true,
+ "staticLayout": false,
+ "fdb": false,
+ "supports": {
+ "cmsg": 1
+ },
+ "uhslot": ".YDC-UH",
+ "clean": "cleanSPRZ",
+ "dest": "destSPRZ",
+ "fallback": null,
+ "metaSize": false
+ },
+ "SPON": {
+ "pos": "SPON",
+ "h": 1,
+ "id": "SPON",
+ "w": 1,
+ "autoFetch": false,
+ "clean": "cleanSPON",
+ "dest": "destSPON",
+ "enable": true,
+ "fallback": null,
+ "metaSize": false,
+ "staticLayout": false
+ },
+ "TXTL": {
+ "id": "TXTL",
+ "w": 120,
+ "h": 170,
+ "css": "#fc_align a,#tl1_slug{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:11px}.ad-tl2b{overflow:hidden;text-align:left}p{margin:0}a{color:#020e65}a:hover{color:#0078ff}.y-fp-pg-controls{margin-top:5px;margin-bottom:5px}#tl1_slug{color:#999}a:link{text-decoration:none}",
+ "autoFetch": false,
+ "clean": "cleanTXTL",
+ "dest": "destTXTL",
+ "enable": true,
+ "fallback": null,
+ "metaSize": false,
+ "staticLayout": false
+ },
+ "WFPAD": {
+ "id": "WFPAD",
+ "w": 320,
+ "h": 50,
+ "autoFetch": false,
+ "enable": true,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1,
+ "lyr": 1,
+ "resize-to": 1
+ },
+ "metaSize": true,
+ "staticLayout": false,
+ "fdb": false,
+ "clean": "cleanWFPAD",
+ "dest": "destWFPAD",
+ "fallback": null
+ }
+ },
+ "rotationTimingDisabled": false,
+ "contentTypeAdPosModifier": {
+ "slideshow": ["-LREC", "LREC-2", "LREC2"],
+ "inlineSlideshow": []
+ }
+ },
+ "adFetchEvent": {
+ "ps": "BTN,BTN-1,BTN-2,BTN-3,MAST,LDRB,SPL,LREC,LREC2,LREC3,FOOT,FSRVY",
+ "sp": "1183300100",
+ "sa": "ticker=\"SNE\" wiki_topics=\"PlayStation_VR;Rhythm_game;Launch_game\" ctopid=\"1542500;1480989;1482489;1489489;1577000;12698500;1035500;1878000;10610989;2299500;2334500\" hashtag=\"playstation-vr;sony-playstation-vr;sony-psvr;psvr;playstation-4;playstation;ps4;sony;gaming;games;video-games;featured;%24sne;1542500;1480989;1482489;1489489;1577000;12698500;1035500;1878000;10610989;2299500;2334500\" rs=\"lmsid:a0Vd000000AE7lXEAT;revsp:407fd5b2-47b4-4c00-a1d0-421cf33bb721;lpstaid:80b35014-fba3-377e-adc5-47fb44f61fa7;pct:story\" megamodal=true Y-BUCKET=\"finance-US-en-US-def\"",
+ "optionalps": "",
+ "site": "finance"
+ },
+ "siteAttrs": "ticker=\"SNE\" wiki_topics=\"PlayStation_VR;Rhythm_game;Launch_game\" ctopid=\"1542500;1480989;1482489;1489489;1577000;12698500;1035500;1878000;10610989;2299500;2334500\" hashtag=\"playstation-vr;sony-playstation-vr;sony-psvr;psvr;playstation-4;playstation;ps4;sony;gaming;games;video-games;featured;%24sne;1542500;1480989;1482489;1489489;1577000;12698500;1035500;1878000;10610989;2299500;2334500\" rs=\"lmsid:a0Vd000000AE7lXEAT;revsp:407fd5b2-47b4-4c00-a1d0-421cf33bb721;lpstaid:80b35014-fba3-377e-adc5-47fb44f61fa7;pct:story\" megamodal=true Y-BUCKET=\"finance-US-en-US-def\"",
+ "autoAdRender": true,
+ "supportMultipleRenderTargets": true,
+ "darlaJsAtTop": true,
+ "delayedRender": false,
+ "darlaVersion": "2-9-13",
+ "disableDarla": false,
+ "deferRender": true,
+ "keepPerfEntries": false,
+ "darlaAssetFetch": true,
+ "cacheDarlaAsset": true,
+ "darlaConfigFetch": true,
+ "cacheDarlaConfig": true,
+ "prefetchedPositions": {
+ "BTN": {
+ "hasError": true,
+ "error": "ns",
+ "size": "unknown"
+ },
+ "BTN-1": {
+ "hasError": true,
+ "error": "ns",
+ "size": "unknown"
+ },
+ "BTN-2": {
+ "hasError": true,
+ "error": "ns",
+ "size": "unknown"
+ },
+ "BTN-3": {
+ "hasError": true,
+ "error": "ns",
+ "size": "unknown"
+ },
+ "MAST": {
+ "hasError": true,
+ "error": "ns",
+ "size": "unknown"
+ },
+ "LDRB": {
+ "hasError": false,
+ "error": "none",
+ "size": "728x90"
+ },
+ "SPL": {
+ "hasError": true,
+ "error": "ns",
+ "size": "unknown"
+ },
+ "LREC": {
+ "hasError": false,
+ "error": "none",
+ "size": "300x250"
+ },
+ "LREC2": {
+ "hasError": false,
+ "error": "none",
+ "size": "300x250"
+ },
+ "LREC3": {
+ "hasError": false,
+ "error": "none",
+ "size": "300x250"
+ },
+ "FOOT": {
+ "hasError": true,
+ "error": "ns",
+ "size": "unknown"
+ },
+ "FSRVY": {
+ "hasError": false,
+ "error": "none",
+ "size": "1x1"
+ }
+ },
+ "_newPageRendered": false,
+ "checkForModalClose": false,
+ "nukeAds": ["LREC", "LREC2", "LREC3", "LREC-9", "LREC2-9", "LREC3-9", "MAST", "LDRB", "LDRB2-1", "LDRB2-2", "MON-1", "SPL"],
+ "adfetchTimeout": null,
+ "_childCompositeReady": {
+ "Col2-5-DockedAds": true
+ }
+ },
+ "FinanceConfigStore": {
+ "app": {
+ "base": {
+ "spaceid": 2023538075,
+ "clientEligible": {
+ "index": ["beauty", "backstage", "celebrity", "eleccioneseeuu2016", "hkstylemen", "hktravelnow", "katiecouric", "livenationpresents", "m6info", "movies", "news", "music", "style", "saludbucal", "saudebucal", "tech", "techcast", "tv", "weather"],
+ "content": ["finance"],
+ "home": ["beauty", "backstage", "celebrity", "eleccioneseeuu2016", "hkstylemen", "hktravelnow", "katiecouric", "livenationpresents", "m6info", "movies", "news", "music", "style", "saludbucal", "saudebucal", "tech", "techcast", "tv", "weather"]
+ },
+ "i13n": {
+ "initComscore": true,
+ "initOmniture": false,
+ "initRapid": true,
+ "rapid": {
+ "client_only": 1,
+ "viewability": true,
+ "pageview_on_init": true,
+ "test_id": "",
+ "webworker_file": "\u002Flib\u002Fmetro\u002Fg\u002Fmyy\u002Frapidworker_1_2_0.0.2.js",
+ "tracked_mods_viewability": [],
+ "dwell_on": true,
+ "track_right_click": true,
+ "keys": {
+ "ver": "y20",
+ "navtype": "server"
+ },
+ "compr_type": "deflate"
+ },
+ "rootModelData": {},
+ "navigationPageview": {
+ "enable": true
+ },
+ "serverPageview": {
+ "enable": true,
+ "type": "nonClassified"
+ }
+ },
+ "beacon": {
+ "defaultSrc": "td-app-yahoo",
+ "beaconUncaughtJSError": true,
+ "enableBatch": false,
+ "pathPrefix": "https:\u002F\u002Fwww.yahoo.com\u002F_td_api\u002Fbeacon",
+ "sampleSize": 1,
+ "sampleSizeUncaughtJSError": 100,
+ "context": {
+ "mode": "normal",
+ "ynet": "0",
+ "tz": "Asia\u002FTaipei",
+ "authed": "0",
+ "bot": "0",
+ "site": "finance",
+ "partner": "none",
+ "bucket": "finance-US-en-US-def",
+ "ssl": "0",
+ "lang": "en-US",
+ "colo": "gq1",
+ "spdy": "0",
+ "environment": "prod",
+ "region": "US",
+ "device": "desktop",
+ "feature": ["canvass", "newContentAttribution"],
+ "ytee": "0",
+ "intl": "us",
+ "prid": "2n23a79c1iosl"
+ }
+ },
+ "pageTransition": {
+ "enabled": true,
+ "enableHandlerCallback": true,
+ "pluginName": "modal-fade"
+ },
+ "amp": {
+ "enabled": true
+ },
+ "renderTargets": [{
+ "classNames": "render-target-default D(b)",
+ "id": "default"
+ }, {
+ "classNames": "render-target-modal O(n)!:f Bdc(#e0e4e9) Bdrs(6px) Bdstarts(s) Bdstartw(1px) Bdts(s) Bdtw(1px) Bxsh(modalShadow) D(n) H(a)! Mih(100%) ) modal-postopen_Op(1) Pos(a) T(76px) CollapsibleUh_T(60px) Start(0) End(0) Maw(1230px) Miw(984px) Mx(a) modal-open_D(b) modal-postopen_D(b) W(100%) H(100%) Z(9)",
+ "id": "modal",
+ "initialPageKey": ":content:modal"
+ }],
+ "ads": {
+ "rotationTimingDisabled": false,
+ "autoadrender": true,
+ "cacheDarlaAsset": true,
+ "positions": {
+ "BTN-1": {
+ "w": 120,
+ "h": 60,
+ "autoFetch": false
+ },
+ "BTN-2": {
+ "w": 120,
+ "h": 60,
+ "autoFetch": false
+ },
+ "DEFAULT": {
+ "meta": {
+ "stack": "ydc"
+ }
+ },
+ "MAST-9": {
+ "enable": true,
+ "closeBtn": {
+ "adc": 0,
+ "mode": 2,
+ "useShow": 1
+ },
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1,
+ "resize-to": 1
+ },
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "metaSize": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "fclose": 2,
+ "w": 970,
+ "staticLayout": false,
+ "id": "MAST-9"
+ },
+ "BTN-3": {
+ "w": 120,
+ "h": 60,
+ "autoFetch": false
+ },
+ "SPL2": {
+ "enable": true,
+ "css": ".Mags-FontA{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:300}.Mags-FontA.Size1{font-size:13px}.Mags-FontA.Size2{font-size:16px}.Mags-FontA.Size3{font-size:20px}.Mags-FontA.Size4{font-size:22px}.Mags-FontA.Size5{font-size:33px}.Mags-FontA.Size6{font-size:35px}.Mags-FontA.Size7{font-size:58px}.Mags-FontA.Size8{font-size:70px}.Mags-FontA.Size9{font-size:100px}.Mags-FontB{font-family:Georgia,Times,serif;font-weight:400}.Mags-FontB.Size1{font-size:18px}.Mags-FontC{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400}.Mags-FontC.Size1{font-size:11px}.Mags-FontC.Size2{font-size:14px}.Mags-FontC.Size3{font-size:16px}.Mags-FontC.Size4{font-size:20px}.Mags-FontC.Size5{font-size:30px}.Mags-FontC.Size6{font-size:32px}.Mags-FontC.Size7{font-size:52px}",
+ "supports": {
+ "cmsg": 1
+ },
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "meta": {
+ "stack": "ydc",
+ "type": "stream"
+ },
+ "autoFetch": false,
+ "uhslot": ".YDC-UH",
+ "fclose": 2,
+ "staticLayout": false,
+ "flex": "both",
+ "id": "SPL2"
+ },
+ "LREC": {
+ "fallback": {
+ "link": "https:\u002F\u002Fbaseball.fantasysports.yahoo.com\u002Fb1\u002Fsignup",
+ "image": "https:\u002F\u002Fs.yimg.com\u002Fnn\u002Flib\u002Fmetro\u002FDailyFantasy_BN_Baseball_300x250-min.jpg"
+ },
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 3,
+ "id": "LREC"
+ },
+ "WFPAD": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1,
+ "lyr": 1,
+ "resize-to": 1
+ },
+ "fdb": false,
+ "metaSize": true,
+ "h": 50,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 320,
+ "staticLayout": false,
+ "id": "WFPAD"
+ },
+ "SPRZ": {
+ "id": "SPRZ",
+ "autoFetch": false,
+ "flex": "both",
+ "enable": true,
+ "staticLayout": false,
+ "fdb": false,
+ "supports": {
+ "cmsg": 1
+ },
+ "uhslot": ".YDC-UH"
+ },
+ "LREC-1": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC-1"
+ },
+ "LDRB": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 728,
+ "staticLayout": true,
+ "id": "LDRB"
+ },
+ "FSRVY": {
+ "id": "FSRVY",
+ "enable": true,
+ "fr": "expIfr_exp",
+ "autoFetch": false,
+ "supports": {
+ "lyr": 1
+ }
+ },
+ "LREC-2": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC-2"
+ },
+ "FOOT9": {
+ "id": "FOOT9",
+ "enable": true,
+ "fr": "expIfr_exp",
+ "autoFetch": false,
+ "supports": {
+ "lyr": 1
+ }
+ },
+ "LDRB-1": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 728,
+ "staticLayout": true,
+ "id": "LDRB-1"
+ },
+ "LREC2": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC2"
+ },
+ "FOOT": {
+ "id": "FOOT",
+ "enable": true,
+ "fr": "expIfr_exp",
+ "autoFetch": false,
+ "supports": {
+ "lyr": 1
+ }
+ },
+ "LDRB2-1": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 728,
+ "staticLayout": true,
+ "id": "LDRB2-1"
+ },
+ "LREC3": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC3"
+ },
+ "SPL": {
+ "enable": true,
+ "css": ".Mags-FontA{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:300}.Mags-FontA.Size1{font-size:13px}.Mags-FontA.Size2{font-size:16px}.Mags-FontA.Size3{font-size:20px}.Mags-FontA.Size4{font-size:22px}.Mags-FontA.Size5{font-size:33px}.Mags-FontA.Size6{font-size:35px}.Mags-FontA.Size7{font-size:58px}.Mags-FontA.Size8{font-size:70px}.Mags-FontA.Size9{font-size:100px}.Mags-FontB{font-family:Georgia,Times,serif;font-weight:400}.Mags-FontB.Size1{font-size:18px}.Mags-FontC{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400}.Mags-FontC.Size1{font-size:11px}.Mags-FontC.Size2{font-size:14px}.Mags-FontC.Size3{font-size:16px}.Mags-FontC.Size4{font-size:20px}.Mags-FontC.Size5{font-size:30px}.Mags-FontC.Size6{font-size:32px}.Mags-FontC.Size7{font-size:52px}",
+ "supports": {
+ "cmsg": 1
+ },
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "meta": {
+ "type": "stream"
+ },
+ "autoFetch": false,
+ "uhslot": ".YDC-UH",
+ "fclose": 2,
+ "staticLayout": false,
+ "flex": "both",
+ "id": "SPL"
+ },
+ "LDRB2-2": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 728,
+ "staticLayout": true,
+ "id": "LDRB2-2"
+ },
+ "LREC4": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC4"
+ },
+ "LREC-9": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC-9"
+ },
+ "MON-1": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 600,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 3,
+ "id": "MON-1"
+ },
+ "LREC2-1": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC2-1"
+ },
+ "LREC3-1": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC3-1"
+ },
+ "LREC2-2": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC2-2"
+ },
+ "LDRB-9": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 728,
+ "staticLayout": true,
+ "id": "LDRB-9"
+ },
+ "SPL-2": {
+ "enable": true,
+ "css": ".Mags-FontA{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:300}.Mags-FontA.Size1{font-size:13px}.Mags-FontA.Size2{font-size:16px}.Mags-FontA.Size3{font-size:20px}.Mags-FontA.Size4{font-size:22px}.Mags-FontA.Size5{font-size:33px}.Mags-FontA.Size6{font-size:35px}.Mags-FontA.Size7{font-size:58px}.Mags-FontA.Size8{font-size:70px}.Mags-FontA.Size9{font-size:100px}.Mags-FontB{font-family:Georgia,Times,serif;font-weight:400}.Mags-FontB.Size1{font-size:18px}.Mags-FontC{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400}.Mags-FontC.Size1{font-size:11px}.Mags-FontC.Size2{font-size:14px}.Mags-FontC.Size3{font-size:16px}.Mags-FontC.Size4{font-size:20px}.Mags-FontC.Size5{font-size:30px}.Mags-FontC.Size6{font-size:32px}.Mags-FontC.Size7{font-size:52px}",
+ "supports": {
+ "cmsg": 1
+ },
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "meta": {
+ "type": "stream"
+ },
+ "autoFetch": false,
+ "uhslot": ".YDC-UH",
+ "fclose": 2,
+ "staticLayout": false,
+ "flex": "both",
+ "id": "SPL-2"
+ },
+ "LREC2-4": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC2-4"
+ },
+ "MAST": {
+ "enable": true,
+ "closeBtn": {
+ "adc": 0,
+ "mode": 2,
+ "useShow": 1
+ },
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1,
+ "resize-to": 1
+ },
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "metaSize": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "fclose": 2,
+ "w": 970,
+ "staticLayout": false,
+ "id": "MAST"
+ },
+ "LDRP": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1,
+ "lyr": 1
+ },
+ "fdb": true,
+ "metaSize": true,
+ "h": 50,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 320,
+ "staticLayout": true,
+ "id": "LDRP"
+ },
+ "LREC3-4": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC3-4"
+ },
+ "LREC2-5": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC2-5"
+ },
+ "LREC3-5": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC3-5"
+ },
+ "LREC2-6": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC2-6"
+ },
+ "LREC3-6": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC3-6"
+ },
+ "LREC2-7": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC2-7"
+ },
+ "LREC3-7": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC3-7"
+ },
+ "LREC2-8": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC2-8"
+ },
+ "MFPAD": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": false,
+ "metaSize": true,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 720,
+ "staticLayout": false,
+ "id": "MFPAD"
+ },
+ "LREC3-8": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC3-8"
+ },
+ "LREC2-9": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC2-9"
+ },
+ "LREC3-9": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC3-9"
+ },
+ "SPON": {
+ "pos": "SPON",
+ "h": 1,
+ "id": "SPON",
+ "w": 1,
+ "autoFetch": false
+ },
+ "BTN": {
+ "w": 120,
+ "h": 60,
+ "autoFetch": false
+ },
+ "TXTL": {
+ "id": "TXTL",
+ "w": 120,
+ "h": 170,
+ "css": "#fc_align a,#tl1_slug{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:11px}.ad-tl2b{overflow:hidden;text-align:left}p{margin:0}a{color:#020e65}a:hover{color:#0078ff}.y-fp-pg-controls{margin-top:5px;margin-bottom:5px}#tl1_slug{color:#999}a:link{text-decoration:none}",
+ "autoFetch": false
+ }
+ },
+ "cacheDarlaConfig": true,
+ "aboveFoldPositions": "MAST,LDRB,SPRZ,SPL,SPL-2,LREC,MON-1",
+ "autoRotation": 10000,
+ "darlaVersion": "2-9-13",
+ "darlaConfigFetch": true,
+ "darlaJsAtTop": true,
+ "nukeAds": "LREC,LREC2,LREC3,LREC-9,LREC2-9,LREC3-9,MAST,LDRB,LDRB2-1,LDRB2-2,MON-1,SPL",
+ "darlaAssetFetch": true,
+ "events": {
+ "AUTO": {
+ "name": "AUTO",
+ "autoStart": 1,
+ "autoMax": 25,
+ "autoRT": 10000,
+ "autoIV": 1,
+ "autoDDG": 1,
+ "ps": {
+ "MAST-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ },
+ "SPL2": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ },
+ "LREC": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC-1": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LDRB": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC2": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LDRB2-1": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC3": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "SPL": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ },
+ "LDRB2-2": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC4": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "MON-1": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-1": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LDRB-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "SPL-2": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ },
+ "LREC2-4": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "MAST": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ },
+ "LREC3-4": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-5": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-5": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-6": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-6": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-7": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-7": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-8": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-8": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC3-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ }
+ }
+ },
+ "DEFAULT": {
+ "clw": {
+ "LREC": {
+ "blocked_by": "MON-1"
+ },
+ "MON-1": {
+ "blocked_by": "LREC"
+ },
+ "MAST-9": {
+ "blocked_by": "SPL,LDRB-9"
+ },
+ "MAST": {
+ "blocked_by": "SPL,LDRB"
+ },
+ "LDRB": {
+ "blocked_by": "MAST,SPL"
+ },
+ "LDRB-9": {
+ "blocked_by": "MAST-9,SPL"
+ },
+ "SPL": {
+ "blocked_by": "MAST,LDRB"
+ }
+ }
+ }
+ },
+ "multipleRenderTargets": true
+ },
+ "mrsOptions": {
+ "mrs_host": "l.yimg.com\u002Fny",
+ "key": "mrs.highlander.crumbkey",
+ "app_id": "highlander"
+ },
+ "dehydratedStateIsJSON": true,
+ "timeouts": {
+ "page": 3000,
+ "xhr": 3000,
+ "navigate": 6000
+ },
+ "enablePageStoreCache": true,
+ "enableVideoManager": true,
+ "prefetch": {
+ "enableOnPageStoreChange": true,
+ "prerenderDelay": 0,
+ "pageTypes": {
+ "content": ["index"],
+ "index": ["content"],
+ "intlMagazine": ["intlMagazineContent"],
+ "intlMagazineContent": ["intlMagazine"],
+ "magcontent": ["maghome", "magpreview"],
+ "magpreview": ["maghome", "magcontent"],
+ "maghome": ["magcontent", "magpreview"],
+ "magtag": ["magcontent", "magpreview"]
+ }
+ },
+ "esi": {
+ "mode": "batch",
+ "batchTimeout": 3,
+ "fallbackSource": "readthru",
+ "page": {
+ "swr": 86400
+ },
+ "staticRedirectToFS": true,
+ "useStableFragmentId": true
+ },
+ "loadChildBundles": true,
+ "enableDehydratedState": true,
+ "videoPlayer": {
+ "baseUrl": "https:\u002F\u002Fyep.video.yahoo.com\u002Fjs\u002F3\u002Fvideoplayer-min.js",
+ "device": "nextgen-desktop",
+ "docking": {
+ "fadeInAnimation": true,
+ "width": 300,
+ "height": 168.75,
+ "position": {
+ "left": "ref",
+ "right": 0,
+ "bottom": 55
+ },
+ "enableOnMuted": true,
+ "enableOnScrollUp": false,
+ "threshold": 60,
+ "enableOnScrollDown": true,
+ "ref": ".modal-open .render-target-modal .modalRight, html:not(.modal-open) .render-target-active #YDC-Col2 #Aside",
+ "showInfoCard": true
+ },
+ "enableRestoreOnNavigate": true,
+ "refreshDockingOnNavigate": true,
+ "version": null
+ },
+ "appConfigStore": {
+ "fields": ["clientEligible", "enableVideoManager", "initRenderTimeBeacon", "overrideContentTypes", "pageTransition", "prefetch", "timeouts", "renderTargets", "videoPlayer"]
+ }
+ },
+ "headerOverride": {},
+ "queryOverride": {}
+ }
+ },
+ "VideoStore": {
+ "videos": {},
+ "_cdnBase": "https:\u002F\u002Fs.yimg.com"
+ },
+ "ContentStore": {
+ "currentContentIds": {
+ "default": "80b35014-fba3-377e-adc5-47fb44f61fa7"
+ },
+ "relatedUuids": [],
+ "uuidMap": {
+ "80b35014-fba3-377e-adc5-47fb44f61fa7": {
+ "ad_meta": {
+ "spaceid": "1183300100",
+ "site_attribute": "ticker=\"SNE\" wiki_topics=\"PlayStation_VR;Rhythm_game;Launch_game\" ctopid=\"1542500;1480989;1482489;1489489;1577000;12698500;1035500;1878000;10610989;2299500;2334500\" hashtag=\"playstation-vr;sony-playstation-vr;sony-psvr;psvr;playstation-4;playstation;ps4;sony;gaming;games;video-games;featured;%24sne;1542500;1480989;1482489;1489489;1577000;12698500;1035500;1878000;10610989;2299500;2334500\" rs=\"lmsid:a0Vd000000AE7lXEAT;revsp:407fd5b2-47b4-4c00-a1d0-421cf33bb721;lpstaid:80b35014-fba3-377e-adc5-47fb44f61fa7;pct:story\"",
+ "site": "finance",
+ "region": "US",
+ "lang": "en-US",
+ "isSupplySegment": "false"
+ },
+ "spaceId": "1183300100",
+ "entities": [{
+ "term": "WIKIID:PlayStation_VR",
+ "label": "PlayStation VR",
+ "capAbtScore": "0.823"
+ }, {
+ "term": "YCT:001000193",
+ "score": "0.96063",
+ "label": "Consumer Discretionary"
+ }, {
+ "term": "YCT:001000031",
+ "score": "0.918418",
+ "label": "Arts &amp; Entertainment"
+ }, {
+ "term": "YCT:001000075",
+ "score": "0.917151",
+ "label": "Media"
+ }, {
+ "term": "YCT:001000088",
+ "score": "0.785714",
+ "label": "Video Games"
+ }, {
+ "term": "YMEDIA:CATEGORY=100000019",
+ "score": "1.0",
+ "label": ""
+ }, {
+ "term": "YMEDIA:CATEGORY=100000009",
+ "score": "1.0",
+ "label": ""
+ }, {
+ "term": "YMEDIA:CATEGORY=100000000",
+ "score": "1.0",
+ "label": "Yahoo Originals"
+ }, {
+ "term": "YCT:001000193",
+ "score": "0.96063",
+ "label": "Consumer Discretionary"
+ }, {
+ "term": "YCT:001000031",
+ "score": "0.918418",
+ "label": "Arts &amp; Entertainment"
+ }, {
+ "term": "YCT:001000075",
+ "score": "0.917151",
+ "label": "Media"
+ }, {
+ "term": "YCT:001000088",
+ "score": "0.785714",
+ "label": "Video Games"
+ }],
+ "liveCoverageEventId": null,
+ "body": [{
+ "type": "image",
+ "headline": null,
+ "alignleft": false,
+ "alt": "The PlayStation VR",
+ "caption": "Sony’s PlayStation VR.",
+ "alias": null,
+ "size": {
+ "original": {
+ "width": 744,
+ "height": 669,
+ "ratio": 1.1121076233183858,
+ "url": "http:\u002F\u002Fl1.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002F589noY9BZNdmsUUQf6L1AQ--\u002FYXBwaWQ9aGlnaGxhbmRlcjtzbT0xO3c9NzQ0O2g9NjY5\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen\u002Fhomerun\u002Ffeed_manager_auto_publish_494\u002F4406ef57dcb40376c513903b03bef048"
+ },
+ "800x600": {
+ "width": 667,
+ "height": 600,
+ "ratio": 1.1121076233183858,
+ "url": "http:\u002F\u002Fl1.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002FlxY4FpzNDbBPRGtvVixGLA--\u002FYXBwaWQ9aGlnaGxhbmRlcjtzbT0xO3c9ODAwO2g9NjAw\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen\u002Fhomerun\u002Ffeed_manager_auto_publish_494\u002F4406ef57dcb40376c513903b03bef048"
+ }
+ }
+ }, {
+ "type": "text",
+ "content": "Virtual reality has officially reached the consoles. And it’s pretty good! \u003Ca href=\"http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Freview-playstation-vr-is-comfortable-and-affordable-but-lacks-must-have-games-165053851.html\"\u003ESony’s PlayStation VR\u003C\u002Fa\u003E is extremely comfortable and reasonably priced, and while it’s lacking killer apps, it’s loaded with lots of interesting ones.",
+ "length": 223,
+ "tagName": "p"
+ }, {
+ "type": "text",
+ "content": "But which ones should you buy? I’ve played just about every launch game, and while some are worth your time, others you might want to skip. To help you decide what’s what, I’ve put together this list of the eight&amp;nbsp;PSVR games worth considering.",
+ "length": 247,
+ "tagName": "p"
+ }, {
+ "type": "text",
+ "content": "\u003Ca href=\"https:\u002F\u002Fwww.playstation.com\u002Fen-us\u002Fgames\u002Frez-infinite-ps4\u002F\" rel=\"nofollow noopener noreferrer\" target=\"_blank\"\u003E“Rez Infinite” ($30)\u003C\u002Fa\u003E",
+ "length": 20,
+ "tagName": "h3"
+ }, {
+ "type": "videoIframe",
+ "url": "https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FYlDxEOwj5j8",
+ "width": 560,
+ "height": 315,
+ "ratio": 1.7777777777777777,
+ "aliases": null,
+ "queryParams": null
+ }, {
+ "type": "text",
+ "content": "Beloved cult hit “Rez” gets the VR treatment to help launch the PSVR, and the results are terrific. It includes a fully remastered take on the original “Rez” – you zoom through a Matrix-like computer system, shooting down enemies to the steady beat of thumping electronica – but the VR setting makes it incredibly immersive. It gets better the more you play it, too; unlock the amazing Area X mode and you’ll find yourself flying, shooting and bobbing your head to some of the trippiest visuals yet seen in VR.",
+ "length": 510,
+ "tagName": "p"
+ }, {
+ "type": "text",
+ "content": "\u003Ca href=\"https:\u002F\u002Fwww.playstation.com\u002Fen-us\u002Fgames\u002Fthumper-ps4\u002F\" rel=\"nofollow noopener noreferrer\" target=\"_blank\"\u003E“Thumper” ($20)\u003C\u002Fa\u003E",
+ "length": 15,
+ "tagName": "h3"
+ }, {
+ "type": "videoIframe",
+ "url": "https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FgtPGX8i1Eaw",
+ "width": 560,
+ "height": 315,
+ "ratio": 1.7777777777777777,
+ "aliases": null,
+ "queryParams": null
+ }, {
+ "type": "text",
+ "content": "What would happen if Tron, the board game Simon, a Clown beetle, Cthulhu and a noise band met in VR? Chaos, for sure, and also “Thumper.” Called a “violent rhythm game” by its creators, “Thumper” is, well, a violent rhythm game that’s also a gorgeous, unsettling and totally captivating assault on the senses. With simple controls and a straightforward premise – click the X button and the analog stick in time with the music as you barrel down a neon highway — it’s one of the rare games that works equally well both in and out of VR. But since you have PSVR, play it there. It’s marvelous.",
+ "length": 591,
+ "tagName": "p"
+ }, {
+ "type": "text",
+ "content": "\u003Ca href=\"https:\u002F\u002Fwww.playstation.com\u002Fen-us\u002Fgames\u002Funtil-dawn-rush-of-blood-ps4\u002F\" rel=\"nofollow noopener noreferrer\" target=\"_blank\"\u003E“Until Dawn: Rush of Blood” ($20)\u003C\u002Fa\u003E",
+ "length": 33,
+ "tagName": "h3"
+ }, {
+ "type": "videoIframe",
+ "url": "https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FEL3svUfC8Ds",
+ "width": 560,
+ "height": 315,
+ "ratio": 1.7777777777777777,
+ "aliases": null,
+ "queryParams": null
+ }, {
+ "type": "text",
+ "content": "Cheeky horror game “Until Dawn” was a breakout hit for the PS4 last year, channeling the classic “dumb teens in the woods” horror trope into an effective interactive drama. Well, forget all that if you fire up “Rush of Blood,” because this one sticks you front and center on a rollercoaster ride from Hell. Literally. You ride through a dimly-lit carnival of terror, dual-wielding pistols as you take down targets, hideous pig monsters and, naturally, maniac clowns. Be warned: If the bad guys don’t get you, the jump scares will.",
+ "length": 530,
+ "tagName": "p"
+ }, {
+ "type": "text",
+ "content": "\u003Ca href=\"https:\u002F\u002Fwww.playstation.com\u002Fen-us\u002Fgames\u002Fheadmaster-ps4\u002F\" rel=\"nofollow noopener noreferrer\" target=\"_blank\"\u003E“Headmaster” ($20)\u003C\u002Fa\u003E",
+ "length": 18,
+ "tagName": "h3"
+ }, {
+ "type": "videoIframe",
+ "url": "https:\u002F\u002Fwww.youtube.com\u002Fembed\u002Fa7CSMKw1E7g",
+ "width": 560,
+ "height": 315,
+ "ratio": 1.7777777777777777,
+ "aliases": null,
+ "queryParams": null
+ }, {
+ "type": "text",
+ "content": "Soccer meets “Portal” in the weird (and weirdly fun) “Headmaster,” a game about heading soccer balls into nets, targets and a variety of other things while stuck in some diabolical training facility. While at first it seems a little basic, increasingly challenging shots and a consistently entertaining narrative keep it from running off the pitch. Funny, ridiculous and as easy as literally moving your head back and forth, it’s a pleasant PSVR surprise.",
+ "length": 455,
+ "tagName": "p"
+ }, {
+ "type": "text",
+ "content": "\u003Ca href=\"https:\u002F\u002Fwww.playstation.com\u002Fen-us\u002Fgames\u002Frigs-mechanized-combat-league-ps4\u002F\" rel=\"nofollow noopener noreferrer\" target=\"_blank\"\u003E“RIGS: Mechanized Combat League” ($50)\u003C\u002Fa\u003E",
+ "length": 38,
+ "tagName": "h3"
+ }, {
+ "type": "videoIframe",
+ "url": "https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FRnqlf9EQ2zA",
+ "width": 560,
+ "height": 315,
+ "ratio": 1.7777777777777777,
+ "aliases": null,
+ "queryParams": null
+ }, {
+ "type": "text",
+ "content": "Giant mechs + sports? That’s the gist of this robotic blast-a-thon, which pits two teams of three against one another in gorgeous, explosive and downright fun VR combat. At its best, “RIGS” marries the thrill of fast-paced competitive shooters with the insanity of piloting a giant mech in VR. It can, however, be one of the barfier PSVR games. So pack your Dramamine, you’re going to have to ease yourself into this one.",
+ "length": 421,
+ "tagName": "p"
+ }, {
+ "type": "text",
+ "content": "\u003Ca href=\"https:\u002F\u002Fwww.playstation.com\u002Fen-us\u002Fgames\u002Fbatman-arkham-vr-ps4\u002F\" rel=\"nofollow noopener noreferrer\" target=\"_blank\"\u003E“Batman Arkham VR” ($20)\u003C\u002Fa\u003E",
+ "length": 24,
+ "tagName": "h3"
+ }, {
+ "type": "videoIframe",
+ "url": "https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FeS4g0py16N8",
+ "width": 560,
+ "height": 315,
+ "ratio": 1.7777777777777777,
+ "aliases": null,
+ "queryParams": null
+ }, {
+ "type": "text",
+ "content": "“I’m Batman,” you will say. And you’ll actually be right this time, because you are Batman in this detective yarn, and you know this because you actually grab the famous cowl and mask, stick it on your head, and stare into the mirrored reflection of Rocksteady Games’ impressive Dark Knight character model. It lacks the action of its fellow “Arkham” games and runs disappointingly short, but it’s a high-quality experience that really shows off how powerfully immersive VR can be.",
+ "length": 481,
+ "tagName": "p"
+ }, {
+ "type": "text",
+ "content": "\u003Ca href=\"https:\u002F\u002Fwww.playstation.com\u002Fen-us\u002Fgames\u002Fjob-simulator-the-2050-archives-ps4\u002F\" rel=\"nofollow noopener noreferrer\" target=\"_blank\"\u003E“Job Simulator” ($30)\u003C\u002Fa\u003E",
+ "length": 21,
+ "tagName": "h3"
+ }, {
+ "type": "videoIframe",
+ "url": "https:\u002F\u002Fwww.youtube.com\u002Fembed\u002F3-iMlQIGH8Y",
+ "width": 560,
+ "height": 315,
+ "ratio": 1.7777777777777777,
+ "aliases": null,
+ "queryParams": null
+ }, {
+ "type": "text",
+ "content": "There are a number of good VR ports in the PSVR launch lineup, but the HTC Vive launch game “Job Simulator” might be the best. Your task? Lots of tasks, actually, from cooking food to fixing cars to working in an office, all for robots, because did I mention you were in the future? Infinitely charming and surprisingly challenging, it’s a great showpiece for VR.",
+ "length": 363,
+ "tagName": "p"
+ }, {
+ "type": "text",
+ "content": "\u003Ca href=\"https:\u002F\u002Fwww.playstation.com\u002Fen-us\u002Fgames\u002Feve-valkyrie-ps4\u002F\" rel=\"nofollow noopener noreferrer\" target=\"_blank\"\u003E“Eve Valkyrie” ($60)\u003C\u002Fa\u003E",
+ "length": 20,
+ "tagName": "h3"
+ }, {
+ "type": "videoIframe",
+ "url": "https:\u002F\u002Fwww.youtube.com\u002Fembed\u002F0KFHw12CTbo",
+ "width": 560,
+ "height": 315,
+ "ratio": 1.7777777777777777,
+ "aliases": null,
+ "queryParams": null
+ }, {
+ "type": "text",
+ "content": "Already a hit on the Oculus Rift, this space dogfighting game was one of the first to really show off how VR can turn a traditional game experience into something special. It’s pricey and not quite as hi-res as the Rift version, but “Eve Valkyrie” does an admirable job filling the void left since “Battlestar Galactica” ended. Too bad there aren’t any Cylons in it (or are there?)",
+ "length": 381,
+ "tagName": "p"
+ }, {
+ "type": "text",
+ "content": "\u003Cem\u003E\u003Cstrong\u003EMore games news:\u003C\u002Fstrong\u003E\u003C\u002Fem\u003E",
+ "length": 16,
+ "tagName": "p"
+ }, {
+ "type": "list",
+ "listItems": ["\u003Ca href=\"https:\u002F\u002Fwww.yahoo.com\u002Ftech\u002Fskylanders-imaginators-will-let-you-create-and-3d-print-your-own-action-figure-143838550.html\"\u003E‘Skylanders Imaginators’ will let you create and 3D print your own action figures\u003C\u002Fa\u003E", "\u003Ca href=\"https:\u002F\u002Fwww.yahoo.com\u002Ftech\u002Freview-high-flying-nba-2k17-has-a-career-year-184135248.html\"\u003EReview: High-flying ‘NBA 2K17’ has a career year\u003C\u002Fa\u003E", "\u003Ca href=\"https:\u002F\u002Fwww.yahoo.com\u002Ftech\u002Freview-race-at-your-own-speed-in-big-beautiful-forza-horizon-3-195337170.html\"\u003EReview: Race at your own speed in big, beautiful ‘Forza Horizon 3’\u003C\u002Fa\u003E", "\u003Ca href=\"https:\u002F\u002Fwww.yahoo.com\u002Ftech\u002Fsonys-playstation-4-pro-shows-promise-potential-161304037.html\"\u003ESony’s PlayStation 4 Pro shows promise, potential and plenty of pretty lighting\u003C\u002Fa\u003E", "\u003Ca href=\"https:\u002F\u002Fwww.yahoo.com\u002Ftech\u002Freview-madden-nfl-17-runs-000000394.html\"\u003EReview: ‘Madden NFL 17’ runs hard, plays it safe\u003C\u002Fa\u003E"],
+ "listTagType": "ul"
+ }, {
+ "type": "text",
+ "content": "\u003Ci\u003EBen Silverman is on Twitter at\u003C\u002Fi\u003E\u003Ca href=\"https:\u002F\u002Ftwitter.com\u002Fben_silverman\" target=\"_blank\" rel=\"nofollow noopener noreferrer\"\u003E \u003Ci\u003Eben_silverman\u003C\u002Fi\u003E\u003C\u002Fa\u003E\u003Ci\u003E.\u003C\u002Fi\u003E",
+ "length": 45,
+ "tagName": "p"
+ }],
+ "summary": "To help you decide what’s what, I’ve put together this list of the 8 PSVR games worth considering. Beloved cult hit “Rez” gets the VR treatment to help launch the PSVR, and the results are terrific. Chaos, for sure, and also “Thumper.” Called a “violent rhythm game” by its creators, “Thumper” is, well",
+ "tagsInfo": {
+ "id": "playstation-vr",
+ "name": "Playstation Vr"
+ },
+ "site": "finance",
+ "searchNoIndex": "false",
+ "author": {
+ "name": "Ben Silverman",
+ "title": "Games Editor",
+ "url": "http:\u002F\u002Fyahoofinancestaff.tumblr.com\u002F",
+ "logo": {
+ "size": {
+ "original": {
+ "width": 430,
+ "height": 288,
+ "ratio": 1.4930555555555556,
+ "url": "http:\u002F\u002Fl3.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002FYcIHpugjTiLKu_ujMPtzag--\u002FYXBwaWQ9aGlnaGxhbmRlcjtzbT0xO2ZpPWZpbGw7dz00MzA7aD0yODg7aWw9cGxhbmU-\u002Fhttp:\u002F\u002Fmagazines.zenfs.com\u002Fresizer\u002FFIT_TO_WIDTH-w430\u002F57569de350ee4c7dd84aa9d0b5bdfc7a8200f47a.png.cf.jpg"
+ },
+ "40x40": {
+ "width": 40,
+ "height": 27,
+ "ratio": 1.4930555555555556,
+ "url": "http:\u002F\u002Fl2.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002FQvNt74vQ.MB4YYRXkl6t0g--\u002FYXBwaWQ9aGlnaGxhbmRlcjtzbT0xO2ZpPWZpbGw7dz00MDtoPTQwO2lsPXBsYW5l\u002Fhttp:\u002F\u002Fmagazines.zenfs.com\u002Fresizer\u002FFIT_TO_WIDTH-w430\u002F57569de350ee4c7dd84aa9d0b5bdfc7a8200f47a.png.cf.jpg"
+ },
+ "84x84": {
+ "width": 84,
+ "height": 56,
+ "ratio": 1.4930555555555556,
+ "url": "http:\u002F\u002Fl2.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002FLKwS3OZMPXJ8QS0J18jNHg--\u002FYXBwaWQ9aGlnaGxhbmRlcjtzbT0xO2ZpPWZpbGw7dz04NDtoPTg0O2lsPXBsYW5l\u002Fhttp:\u002F\u002Fmagazines.zenfs.com\u002Fresizer\u002FFIT_TO_WIDTH-w430\u002F57569de350ee4c7dd84aa9d0b5bdfc7a8200f47a.png.cf.jpg"
+ }
+ }
+ },
+ "social": {
+ "twitter": "ben_silverman",
+ "email": "[email protected]"
+ }
+ },
+ "thumbnail": {
+ "width": "744",
+ "height": "669",
+ "url": "http:\u002F\u002Fl3.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002F4eRCPf9lJt_3q29.outekQ--\u002FaD02Njk7dz03NDQ7c209MTthcHBpZD15dGFjaHlvbg--\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen\u002Fhomerun\u002Ffeed_manager_auto_publish_494\u002F4406ef57dcb40376c513903b03bef048",
+ "tag": "size=original"
+ },
+ "payoffs": {},
+ "url": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Fbest-psvr-games-170003443.html",
+ "alias": "ymedia-alias:story=best-psvr-games-170003443",
+ "provider": null,
+ "ibsImages": null,
+ "contentType": "story",
+ "publishDateStr": "October 13, 2016",
+ "hideComments": false,
+ "pending": false,
+ "title": "These are the 8 coolest PlayStation VR games",
+ "tags": ["playstation-vr", "sony-playstation-vr", "sony-psvr", "psvr", "playstation-4", "playstation", "ps4", "sony", "gaming", "games", "video-games", "featured", "$sne"],
+ "bodyImages": [{
+ "type": "image",
+ "headline": null,
+ "alignleft": false,
+ "alt": "The PlayStation VR",
+ "caption": "Sony’s PlayStation VR.",
+ "alias": null,
+ "size": {
+ "original": {
+ "width": 744,
+ "height": 669,
+ "ratio": 1.1121076233183858,
+ "url": "http:\u002F\u002Fl1.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002F589noY9BZNdmsUUQf6L1AQ--\u002FYXBwaWQ9aGlnaGxhbmRlcjtzbT0xO3c9NzQ0O2g9NjY5\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen\u002Fhomerun\u002Ffeed_manager_auto_publish_494\u002F4406ef57dcb40376c513903b03bef048"
+ },
+ "800x600": {
+ "width": 667,
+ "height": 600,
+ "ratio": 1.1121076233183858,
+ "url": "http:\u002F\u002Fl1.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002FlxY4FpzNDbBPRGtvVixGLA--\u002FYXBwaWQ9aGlnaGxhbmRlcjtzbT0xO3c9ODAwO2g9NjAw\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen\u002Fhomerun\u002Ffeed_manager_auto_publish_494\u002F4406ef57dcb40376c513903b03bef048"
+ }
+ }
+ }],
+ "type": "story",
+ "hrefLangs": [{
+ "rel": "alternate",
+ "hrefLang": "x-default",
+ "href": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Fbest-psvr-games-170003443.html"
+ }, {
+ "rel": "alternate",
+ "hrefLang": "en-CA",
+ "href": "https:\u002F\u002Fca.finance.yahoo.com\u002Fnews\u002Fbest-psvr-games-170003443.html"
+ }, {
+ "rel": "alternate",
+ "hrefLang": "en-GB",
+ "href": "https:\u002F\u002Fuk.finance.yahoo.com\u002Fnews\u002Fbest-psvr-games-170003443.html"
+ }, {
+ "rel": "alternate",
+ "hrefLang": "en-IN",
+ "href": "https:\u002F\u002Fin.finance.yahoo.com\u002Fnews\u002Fbest-psvr-games-170003443.html"
+ }, {
+ "rel": "alternate",
+ "hrefLang": "en-SG",
+ "href": "https:\u002F\u002Fsg.finance.yahoo.com\u002Fnews\u002Fbest-psvr-games-170003443.html"
+ }, {
+ "rel": "alternate",
+ "hrefLang": "en-US",
+ "href": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Fbest-psvr-games-170003443.html"
+ }],
+ "uuid": "80b35014-fba3-377e-adc5-47fb44f61fa7",
+ "canonicalUrl": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Fbest-psvr-games-170003443.html",
+ "rapid": {},
+ "tumblr": {
+ "blogName": "yahoofinance-us",
+ "postId": "151755440913",
+ "reblogKey": "Lf7eYFz9"
+ },
+ "snippet": false,
+ "publishDate": "Thu, 13 Oct 2016 17:00:03 GMT",
+ "attribution": {
+ "author": {
+ "name": "Ben Silverman",
+ "title": "Games Editor",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fauthor\u002Fben-silverman"
+ },
+ "provider": {
+ "name": "Yahoo Finance",
+ "url": "http:\u002F\u002Fyahoofinancestaff.tumblr.com\u002F",
+ "logo": {
+ "size": {
+ "raw": {
+ "url": "http:\u002F\u002Fl4.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FCR1v_hSPghpHrl0a4OKYqQ--\u002FYXBwaWQ9eXRhY2h5b24-\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-08-26\u002F7ac3a4f0-6bba-11e6-b52d-c59238e28a69_yahoologo.png"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "_viewedContentIds": {
+ "80b35014-fba3-377e-adc5-47fb44f61fa7": true
+ },
+ "_slotCompositeReady": {
+ "Lead-0-CommonSlotComposite": true,
+ "Side-1-CommonSlotComposite": true
+ },
+ "_currentPlaylistId": null
+ },
+ "CompositeStore": {
+ "_instances": {
+ "canvass-80b35014-fba3-377e-adc5-47fb44f61fa7-0-CanvassApplet": {
+ "status": "initialized"
+ },
+ "Hero-0-FinanceHeader": {
+ "status": "initialized"
+ },
+ "Col2-1-RecentQuotes": {
+ "status": "initialized"
+ },
+ "Lead-0-CommonSlotComposite": {
+ "status": "initialized"
+ },
+ "Side-1-CommonSlotComposite": {
+ "status": "initialized"
+ },
+ "Col2-4-HeightContainer": {
+ "status": "initialized"
+ },
+ "Col2-5-DockedAds": {
+ "status": "initialized"
+ },
+ "UH-1-TopNav": {
+ "status": "initialized"
+ },
+ "Hero-1-TDV2BreakingNews": {
+ "status": "initialized"
+ },
+ "preLoadUH-0-Header": {
+ "status": "initialized"
+ },
+ "Col2-5-DockedAds-1-DiscussionCarousel": {
+ "status": "initialized"
+ },
+ "account-switch-uh-0-AccountSwitch": {
+ "status": "initialized"
+ }
+ }
+ },
+ "StreamStore": {
+ "pageUuid": "80b35014-fba3-377e-adc5-47fb44f61fa7",
+ "articleCategory": {
+ "term": "YCT:001000193",
+ "label": "Consumer Discretionary"
+ },
+ "pageCategory": "YPROP:FINANCE",
+ "fallbackCategory": "YPROP:FINANCE",
+ "parentCategory": "",
+ "pageSubsite": "",
+ "streams": {
+ "SIDEKICK:TOPSTORIES.sidekick": {
+ "bpos": 1,
+ "data": {
+ "stream_items": [{
+ "i13n": {
+ "bpos": 1,
+ "cpos": 1,
+ "cposy": 1
+ },
+ "instrument": {
+ "algo": "",
+ "mab": "",
+ "mab_e": "",
+ "mab_a": ""
+ },
+ "is_eligible": true,
+ "url": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Fbecoming-clear-were-2-big-152321240.html",
+ "title": "It's becoming clear there were 2 big reasons the Patriots traded one of their best defensive players to the Browns",
+ "images": {
+ "original": {
+ "height": 934,
+ "width": 1246,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FwEAPFp0fjhGr6q3Nb0BOHw--\u002Fdz0xMjQ2O2g9OTM0O2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fglobalfinance.zenfs.com\u002Fen_us\u002FFinance\u002FUS_AFTP_SILICONALLEY_H_LIVE\u002FIts_becoming_clear_there_were-cc8eca84bc2295903a36075d4738a8fa"
+ },
+ "medium": {
+ "url": "http:\u002F\u002Fl3.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002FJ2boBNrJ13dcslIlWN88vw--\u002FYXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FwEAPFp0fjhGr6q3Nb0BOHw--\u002Fdz0xMjQ2O2g9OTM0O2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fglobalfinance.zenfs.com\u002Fen_us\u002FFinance\u002FUS_AFTP_SILICONALLEY_H_LIVE\u002FIts_becoming_clear_there_were-cc8eca84bc2295903a36075d4738a8fa",
+ "height": 312,
+ "width": 600
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fbecoming-clear-were-2-big-152321240.html",
+ "id": "ff9dad25-dbc2-3861-9307-ce3ad4e2ef96",
+ "publisher": "Business Insider",
+ "off_network": false
+ }, {
+ "adChoicesUrl": "",
+ "hasHqImg": true,
+ "ad_feedback_beacon": "https:\u002F\u002Fus.af.beap.bc.yahoo.com\u002Faf?bv=1.0.0&amp;bs=(15nd5ga62(gid$216a27fa-a0b0-11e6-93a1-bb5a58e51259-7fde40bae700,st$1478058901682000,li$0,cr$32502733041,dmn$c32502733041,srv$3,exp$1478066101682000,ct$27,v$1.0,adv$1420691,pbid$1,seid$5417818))&amp;r=1478058901682&amp;al=$(AD_FEEDBACK)",
+ "i13n": {
+ "bpos": 1,
+ "cpos": 2,
+ "cposy": 2
+ },
+ "beacon": "https:\u002F\u002Fbeap.gemini.yahoo.com\u002Fmbcsc?bv=1.0.0&amp;es=KyLKOwYGIS_6cXuaa6EkxRTwx56p3eZRekHIvslCrq75t8Y0N4vD1kp0.jarwLzL_3Zo4vYLBkuTKTk4hXo94dAIsso8An8rOlW0WWgvGHeE4Vv.OMDg.qNQKjoCHWx5wl__0OaHvqTMAafMt_wR06rCo_Z0wY05wv28wjgo__2f4GZKLCzFrQHttsLSYvPnRVKgk9l7Ph8MNHe71JekhHGTA1.2gtne8GSaQTyPUl3Ux0b0A_z7dLhti._P_79rxZlzdwCwHC1OAWwcfr9UeONxUwroZhJzhjauDlGUl18GZHlaJOZLPDmUzgujTaWAm.hGNUu68JhIhk31YimmvAQh9zeom1vQ3KPfiDA2amNgnF.rqDetnOVEALsp7ulTL9szG9.RwkH17zw5xN_LcX3aJam4GIBw&amp;ap=$(AD_POSN)",
+ "is_eligible": false,
+ "format": "featured",
+ "title": "The most addictive game of the year!",
+ "subtype": "NATIVE",
+ "type": "ad",
+ "link": "https:\u002F\u002Fbeap.gemini.yahoo.com\u002Fmbclk?bv=1.0.0&amp;es=SlkEC58GIS.Y0wATYo8d.RrcUAM19.YDwMff7hOqeL.KhNIsD.ae_AA4UVTomwzUjf1fYOFCSNWT.hYk6yRHycaSnXaAAOCVvqdY2YSBbTuWMxaFjtSGKeLQy3nQA6MbDaadfE4WCf8kuWxsKpvxgSrSZJJMWrs7AfEpNuFZn7QnDu2NER5EWwjOeFwyfkEg8oPTQ.v7tVJWtcTPlLzmylY4ZVd49S2LcBX8AMSjunRI4TJaaQGzxdR3WyJjbj4wZGQjVuQRvwC1dqw9aRjGtbLtZuU4yBxrCopcfao.N.08wHghta4.qlbrCnqTCOockpaXG1Gv10jobDtTktGjoXy5tS2rF9OR6YcLN2V2z0D9XB6ByxM_5iY9mzPUIwQhWG9R5kmduUNUBQ0ahmoePpQTqMyNwO3z3GfXDk1ISMrfgR69fg0cO1Fj6.unPmD0KOA2YOOwC577yygaGXCTR_xYHBfjijS3dprMtZwz_.t37omywSmtf_3VWykZCIuJcHMTZqOWfQDuLgUVIg--%26lp=https%3A%2F%2Fom.forgeofempires.com%2Ffoe%2Fen%2F%3Fref%3Dgen_en_en_gam%23buildings",
+ "id": "32502733041",
+ "image": {
+ "url": "http:\u002F\u002Fl3.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002FyakZD2gCbTHgIQi5kyX0tw--\u002FYXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fav\u002Fmoneyball\u002Fads\u002F1477383770030-3005.jpg",
+ "height": 312,
+ "width": 600
+ },
+ "publisher": "InnoGames",
+ "snippet": "Start in the stone age and journey to future. Build your Empire now! The most addictive game of the year! Play with 14 million Players now!"
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 3,
+ "cposy": 3
+ },
+ "instrument": {
+ "algo": "",
+ "mab": "",
+ "mab_e": "",
+ "mab_a": ""
+ },
+ "is_eligible": true,
+ "url": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Fthe-real-reason-why-millennials-are-leaving-banks-170424785.html",
+ "title": "The real reason why millennials are leaving banks",
+ "images": {
+ "original": {
+ "height": 496,
+ "width": 744,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002F0zasyXa7KQlezglOp7XM6g--\u002Fdz03NDQ7aD00OTY7YXBwaWQ9eXRhY2h5b24-\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen\u002Fhomerun\u002Ffeed_manager_auto_publish_494\u002F66281ce88f76a83c339f010f928ba8ab"
+ },
+ "medium": {
+ "url": "http:\u002F\u002Fl2.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002FU3D9fEU2vXLjcYVz.8l6ow--\u002FYXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002F0zasyXa7KQlezglOp7XM6g--\u002Fdz03NDQ7aD00OTY7YXBwaWQ9eXRhY2h5b24-\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen\u002Fhomerun\u002Ffeed_manager_auto_publish_494\u002F66281ce88f76a83c339f010f928ba8ab",
+ "height": 312,
+ "width": 600
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fthe-real-reason-why-millennials-are-leaving-banks-170424785.html",
+ "id": "f06ac92d-e467-3d6c-b687-0db89bb184ca",
+ "publisher": "Yahoo Finance",
+ "off_network": false
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 4,
+ "cposy": 4
+ },
+ "instrument": {
+ "algo": "",
+ "mab": "",
+ "mab_e": "",
+ "mab_a": ""
+ },
+ "is_eligible": true,
+ "url": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Fkevin-durant-delivered-forceful-brutally-214843064.html",
+ "title": "Kevin Durant delivered a forceful and brutally honest response to defend his relationship with Russell Westbrook after he left the Thunder",
+ "images": {
+ "original": {
+ "height": 1000,
+ "width": 1333,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FfmpZDU.ysK8f2Ru.ntw07A--\u002Fdz0xMzMzO2g9MTAwMDthcHBpZD15dGFjaHlvbg--\u002Fhttp:\u002F\u002Fglobalfinance.zenfs.com\u002Fen_us\u002FFinance\u002FUS_AFTP_SILICONALLEY_H_LIVE\u002FKevin_Durant_delivered_a_forceful-be68a99a9bebafdc71cecd0ea7c70f14"
+ },
+ "medium": {
+ "url": "http:\u002F\u002Fl3.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002FqknQHYRR9DEXYsRSbSGKSg--\u002FYXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FfmpZDU.ysK8f2Ru.ntw07A--\u002Fdz0xMzMzO2g9MTAwMDthcHBpZD15dGFjaHlvbg--\u002Fhttp:\u002F\u002Fglobalfinance.zenfs.com\u002Fen_us\u002FFinance\u002FUS_AFTP_SILICONALLEY_H_LIVE\u002FKevin_Durant_delivered_a_forceful-be68a99a9bebafdc71cecd0ea7c70f14",
+ "height": 312,
+ "width": 600
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fkevin-durant-delivered-forceful-brutally-214843064.html",
+ "id": "5315a69b-5656-378d-8b01-f015072ccc09",
+ "publisher": "Business Insider",
+ "off_network": false
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 5,
+ "cposy": 5
+ },
+ "instrument": {
+ "algo": "",
+ "mab": "",
+ "mab_e": "",
+ "mab_a": ""
+ },
+ "is_eligible": true,
+ "url": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Fchrissy-teigen-addresses-criticism-over-153235776.html",
+ "title": "Chrissy Teigen Addresses the Criticism Over Baby Luna's Free Costumes",
+ "images": {
+ "original": {
+ "height": 800,
+ "width": 1600,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FUAIXGOcP_ivO8lbGFqWi8w--\u002Fdz0xNjAwO2g9ODAwO2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen-US\u002Fhomerun\u002Felle_570\u002F04c1ac4bb7a90453465c5a354c308396"
+ },
+ "medium": {
+ "url": "http:\u002F\u002Fl3.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002FcDAUrHZe1DRdQfLWKz8z3g--\u002FYXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FUAIXGOcP_ivO8lbGFqWi8w--\u002Fdz0xNjAwO2g9ODAwO2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen-US\u002Fhomerun\u002Felle_570\u002F04c1ac4bb7a90453465c5a354c308396",
+ "height": 312,
+ "width": 600
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fchrissy-teigen-addresses-criticism-over-153235776.html",
+ "id": "0ef9a993-481e-3033-a6a8-29bc472f95c0",
+ "publisher": "Elle",
+ "off_network": false
+ }, {
+ "adChoicesUrl": "",
+ "hasHqImg": true,
+ "ad_feedback_beacon": "https:\u002F\u002Fus.af.beap.bc.yahoo.com\u002Faf?bv=1.0.0&amp;bs=(15mrf8prm(gid$216a27fa-a0b0-11e6-93a1-bb5a58e51259-7fde40bae700,st$1478058901682000,li$0,cr$32381142928,dmn$plarium.com,srv$3,exp$1478066101682000,ct$27,v$1.0,adv$1443388,pbid$1,seid$5417818))&amp;r=1478058901682&amp;al=$(AD_FEEDBACK)",
+ "i13n": {
+ "bpos": 1,
+ "cpos": 6,
+ "cposy": 6
+ },
+ "beacon": "https:\u002F\u002Fbeap.gemini.yahoo.com\u002Fmbcsc?bv=1.0.0&amp;es=kvGuVIcGIS8on9wjUAkvKB3g93dHo3KoIsUhp3VdJ8zEbmAFpOqG1gtBqNhnpocNlE94nd7DGHKgI5FxaevzkJ6Sux6HFAOZQ0RerImuGsCit7z89zLI.QJbTNGFEC8QEpKHGkmyzFD__SaFOheIecg.1vVmQ9SqnFYhCBo.GvjHnAzPTif87pAcU9TaZPSuJpCtT3BwMVjEbM8YYbHU1Z5Q8r8WWtmFwLkJ65xDawMYQMIYM6FPN0ClLq.jBegVbuKrm7_VWO_uWxuMrIaE.Ktsj6GRb_T8QvlkDnxIirrAMQGk61kr_YypiFoVXQL2KVB1emM.FCAwbYv41uKNq0RtV3FD3g2pVExNjMwcrln.MCLmO3FQLGNIMLhFczq6j5r.xsZc9HAZXmzfAcgUxe2Tkjw-&amp;ap=$(AD_POSN)",
+ "is_eligible": false,
+ "format": "featured",
+ "title": "This Strategy Game will keep you up all night!",
+ "subtype": "NATIVE",
+ "type": "ad",
+ "link": "https:\u002F\u002Fbeap.gemini.yahoo.com\u002Fmbclk?bv=1.0.0&amp;es=0Q7gd38GIS_pYHOYO5MaOOUKSMwcIHjsFyc2.mISFhZBWjbQxIV03_VVCqyb3wwshIfM.Cb1EjCUhW6DZiTkOlC8RWkDNlWgFuZCAyuhrk691V5ST9RdUp77cKl8xXevOwYqBkQco9KXTAGyaBPvVWWxB8lH6GYx51DpAkWTajjw8abhvkL6_eYNojeGpzJKI_fpvHuxCdOExG354wj46I28..qYr.jhUfJWdgYInogaTs3bqC2bppgD083HJWKAws0GyzUspgi1LhgEdroz.48BL.CdJ8ggdOgwvlIBWfvWYn5.E_pv7GgkaDtCnXCzdMgxhkBwhf8peqbeAq2OjJy.xm.H6Jp7E_vj5kyBTdHBb6DyrP1O0LWvSCaGB0fn_x5NjNmbKVWKs.PtrbfnLot.ClDyFdgJsnlR6fgWvcu8wK3lq8f.1DictQOkV18o49kcTbyp9S7ldVSvwdumyh1aYeyLL0QtMdyiF3vzLSXAauoYauxZytkEbkQ.YmLuevUmu2Mp6kPRrJBKKciXmenK8VfoPg7stRX9RxvqZBc6lJgCAA9JIYPfS6J1mGxu4gcWFj.hPoQixPs-%26lp=http%3A%2F%2Fplarium.com%2Fplay%2Fen%2Fstormfall%2F004_dragon_hybrid_anim%3FadCampaign%3D97905%26adPixel%3Dyahoo%21%26publisherID%3D32381142928",
+ "id": "32381142928",
+ "image": {
+ "url": "http:\u002F\u002Fl3.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002F3lW9BZ4aWN4M4zyEMrjrGg--\u002FYXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fav\u002Fmoneyball\u002Fads\u002F1471339441444-3957.jpg",
+ "height": 312,
+ "width": 600
+ },
+ "publisher": "Stormfall: Age of War",
+ "snippet": "14 million players and growing. The game that might just take over your life"
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 7,
+ "cposy": 7
+ },
+ "instrument": {
+ "algo": "",
+ "mab": "",
+ "mab_e": "",
+ "mab_a": ""
+ },
+ "is_eligible": true,
+ "url": "https:\u002F\u002Ffinance.yahoo.com\u002Fvideo\u002Felection-worries-play-volatility-025347338.html",
+ "title": "Election Worries: How to Play the Volatility",
+ "images": {
+ "original": {
+ "height": 360,
+ "width": 640,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FUMyO5yj.kDIqAGUBkhcLaQ--\u002Fdz02NDA7aD0zNjA7YXBwaWQ9eXRhY2h5b24-\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002F0l.pO7jeb47Y1ihDmh0NaQ--\u002Fdz02NDA7aD0zNjA7YXBwaWQ9eXRhY2h5b24-\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen-US\u002Fvideo\u002Fbloomberg_932\u002F383eec731e1cf4a4d116ed59c66d4689"
+ },
+ "medium": {
+ "url": "http:\u002F\u002Fl.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002F5u9Swf9pUn5TrmPc4zpFQA--\u002FYXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FUMyO5yj.kDIqAGUBkhcLaQ--\u002Fdz02NDA7aD0zNjA7YXBwaWQ9eXRhY2h5b24-\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002F0l.pO7jeb47Y1ihDmh0NaQ--\u002Fdz02NDA7aD0zNjA7YXBwaWQ9eXRhY2h5b24-\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen-US\u002Fvideo\u002Fbloomberg_932\u002F383eec731e1cf4a4d116ed59c66d4689",
+ "height": 312,
+ "width": 600
+ }
+ },
+ "type": "video",
+ "link": "\u002Fvideo\u002Felection-worries-play-volatility-025347338.html",
+ "id": "92152601-6bd4-33a8-9117-337bc5b9aa1f",
+ "publisher": "Bloomberg Video",
+ "off_network": false
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 8,
+ "cposy": 8
+ },
+ "instrument": {
+ "algo": "",
+ "mab": "",
+ "mab_e": "",
+ "mab_a": ""
+ },
+ "is_eligible": true,
+ "url": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Fus-forms-of-energy-usage-1776-2040-industry-source-eia-110731958.html",
+ "title": "From biomass to nuclear: The evolution of American energy usage since 1776",
+ "images": {
+ "original": {
+ "height": 1018,
+ "width": 1500,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FPCYO02uno6swpKcM0bwTHA--\u002Fdz0xNTAwO2g9MTAxODthcHBpZD15dGFjaHlvbg--\u002Fhttp:\u002F\u002Fl.yimg.com\u002Fos\u002Fpublish-images\u002Ffinance\u002F2016-07-03\u002F0a5e0eb0-410f-11e6-9b9a-a9d808d329ff_Screen-Shot-2016-07-03-at-7-10-54-AM.png"
+ },
+ "medium": {
+ "url": "http:\u002F\u002Fl3.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002F1CDj4bqWTSP1grae5WfNoA--\u002FYXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FPCYO02uno6swpKcM0bwTHA--\u002Fdz0xNTAwO2g9MTAxODthcHBpZD15dGFjaHlvbg--\u002Fhttp:\u002F\u002Fl.yimg.com\u002Fos\u002Fpublish-images\u002Ffinance\u002F2016-07-03\u002F0a5e0eb0-410f-11e6-9b9a-a9d808d329ff_Screen-Shot-2016-07-03-at-7-10-54-AM.png",
+ "height": 312,
+ "width": 600
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fus-forms-of-energy-usage-1776-2040-industry-source-eia-110731958.html",
+ "id": "4d2fbb50-baa9-39f6-be85-0e1858f64499",
+ "publisher": "Yahoo Finance",
+ "off_network": false
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 9,
+ "cposy": 9
+ },
+ "instrument": {
+ "algo": "",
+ "mab": "",
+ "mab_e": "",
+ "mab_a": ""
+ },
+ "is_eligible": true,
+ "url": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Fchinas-stealthy-j-20-fighter-171139077.html",
+ "title": "How China's stealthy new J-20 fighter jet compares to the US's F-22 and F-35",
+ "images": {
+ "original": {
+ "height": 767,
+ "width": 1023,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FrG6bnHiidp9qQstxufxKpQ--\u002Fdz0xMDIzO2g9NzY3O2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fglobalfinance.zenfs.com\u002Fen_us\u002FFinance\u002FUS_AFTP_SILICONALLEY_H_LIVE\u002FHow_Chinas_stealthy_new_J20-f7143b78fa45dea3cc4f88b787b17cbb"
+ },
+ "medium": {
+ "url": "http:\u002F\u002Fl3.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002FSiVvFBiTWfd8o.Tbez2ZjA--\u002FYXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FrG6bnHiidp9qQstxufxKpQ--\u002Fdz0xMDIzO2g9NzY3O2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fglobalfinance.zenfs.com\u002Fen_us\u002FFinance\u002FUS_AFTP_SILICONALLEY_H_LIVE\u002FHow_Chinas_stealthy_new_J20-f7143b78fa45dea3cc4f88b787b17cbb",
+ "height": 312,
+ "width": 600
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fchinas-stealthy-j-20-fighter-171139077.html",
+ "id": "2dc053f6-d036-35aa-b4e4-0b6a96290772",
+ "publisher": "Business Insider",
+ "off_network": false
+ }, {
+ "adChoicesUrl": "",
+ "hasHqImg": true,
+ "ad_feedback_beacon": "https:\u002F\u002Fus.af.beap.bc.yahoo.com\u002Faf?bv=1.0.0&amp;bs=(15njon4cg(gid$216a27fa-a0b0-11e6-93a1-bb5a58e51259-7fde40bae700,st$1478058901682000,li$0,cr$32488250754,dmn$c32488250754,srv$3,exp$1478066101682000,ct$27,v$1.0,adv$1382800,pbid$1,seid$5417818))&amp;r=1478058901682&amp;al=$(AD_FEEDBACK)",
+ "i13n": {
+ "bpos": 1,
+ "cpos": 10,
+ "cposy": 10
+ },
+ "beacon": "https:\u002F\u002Fbeap.gemini.yahoo.com\u002Fmbcsc?bv=1.0.0&amp;es=CwZW4GgGIS9q7FZB4zAM_PWGVbVklc3waiorYYu6tvjCsMMR87eZ71S5OFfl7CUMW3tVoMknIvlGLq0CvQkRhUER6GfRO9Zf0VAVPr0_wl5LsNtOI6QCP1Mf7v9FBZgwS772OhnPCMYPDjmmzBDMOYB5fnjls.bJMwKcr5jyuwLNOjABnpI_LifI8YlA4t34mfc1eH9LP.HDxqTnp5crTjagqRO7LzF2_kNGmYFPQFXNVOeQ7Kvrh2pkKg3OCeiU.gWwgXbviLM.pz44Gz5iv5uo40jySZzWULxAPigqo4.rHg3FY9hOHTQoZqLw3P.XQkftVr4ULhw55N.lmXZwxFKM_Cqns8Tife4Je7tqtBD8qpQPdl82NCJ_FyeyD29T0Bk65wJhUGzDKLUjjLxL9of2&amp;ap=$(AD_POSN)",
+ "is_eligible": false,
+ "format": "featured",
+ "title": "She Was A Waitress In a Bar and Now She Owns a Jet",
+ "subtype": "NATIVE",
+ "type": "ad",
+ "link": "https:\u002F\u002Fbeap.gemini.yahoo.com\u002Fmbclk?bv=1.0.0&amp;es=gYoRCIQGIS.GsNSg31dG7uu3jx1l47K_9t_lL68694y5vPklbhwGNF2IOCXI5Gay.KEmvJYzGtoc._QaiNOyVwkdJQY8jTD_A4uY0.1OI47TuRvpcBMvdXdyTLVqUaIbKZjuLSdMhsq.aFWXTJBkDvMBr9jGKe1Dcs5mzRVUoWc5iPAeZSSgpz3nyj49giJ0W2ZN3r2KAdmuDxU48_TnDHDh_9f4cEhSw9nSpbz9uXOjDYsQ6nOkJQbFehfzNrYe4PVEu3NbzvKwgoi37c0DQqrMMwXbnsHqHlS6FSLjaxkZ53xSggWUfVAcLSmYvhC7K_PkWSQqoKLF5I5_rcymJYID9IzgBTFrXphnEI_XKT3hlo2vlL.vsS7xbXKLME6kHl4WNht1kg3STGm3NWwNYOvI6R01YtU4DhK51Jmka2sOqzxxxoPTZIPON4n15fVub8fwidZXBigTgpaIqNe3FhvFC1pPAEUkLyhkoCpzmMO4n_wXrWKfsDSHsGYEnr329Y7UkzKcsC3eAaJ5GXWmp8v44SGRysntPeCbBRkbtxGB5FtAC5m6j7E-%26lp=http%3A%2F%2F104.131.127.216%2Fstrapwork%2F%3F1uvop32q%26ad%3D32488250754%26creative%3D32488250754%26device%3Dc%26network%3Dn",
+ "id": "32488250754",
+ "image": {
+ "url": "http:\u002F\u002Fl2.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002FHNEPk_ENbYd9EqIvtcReqw--\u002FYXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fav\u002Fmoneyball\u002Fads\u002F1476785529800-3512.jpg",
+ "height": 312,
+ "width": 600
+ },
+ "publisher": "BinaryUno",
+ "snippet": "Millionaires Are Shearing Their Secret How To Make Money"
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 11,
+ "cposy": 11
+ },
+ "instrument": {
+ "algo": "",
+ "mab": "",
+ "mab_e": "",
+ "mab_a": ""
+ },
+ "is_eligible": true,
+ "url": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Fwoman-sexually-assaulted-ex-stanford-185500342.html",
+ "title": "The woman sexually assaulted by ex-Stanford swimmer Brock Turner was just named a woman of the year by Glamour",
+ "images": {
+ "original": {
+ "height": 800,
+ "width": 1067,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FSogZHAfIl0xU6zwa.9cgzA--\u002Fdz0xMDY3O2g9ODAwO2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fglobalfinance.zenfs.com\u002Fen_us\u002FFinance\u002FUS_AFTP_SILICONALLEY_H_LIVE\u002FThe_woman_sexually_assaulted_by-cec9c3c426f7cf74dd301f8277adbde2"
+ },
+ "medium": {
+ "url": "http:\u002F\u002Fl.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002Faxca9exznwNpwwziuP3_.A--\u002FYXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FSogZHAfIl0xU6zwa.9cgzA--\u002Fdz0xMDY3O2g9ODAwO2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fglobalfinance.zenfs.com\u002Fen_us\u002FFinance\u002FUS_AFTP_SILICONALLEY_H_LIVE\u002FThe_woman_sexually_assaulted_by-cec9c3c426f7cf74dd301f8277adbde2",
+ "height": 312,
+ "width": 600
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fwoman-sexually-assaulted-ex-stanford-185500342.html",
+ "id": "f2e23aa9-2fcf-3fab-bea2-ad350efc8e33",
+ "publisher": "Business Insider",
+ "off_network": false
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 12,
+ "cposy": 12
+ },
+ "instrument": {
+ "algo": "",
+ "mab": "",
+ "mab_e": "",
+ "mab_a": ""
+ },
+ "is_eligible": true,
+ "url": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Fthe-market-doesnt-care-who-wins-the-election-unless-its-donald-trump-121934629.html",
+ "title": "The market doesn't care who wins the election unless it's Donald Trump",
+ "images": {
+ "original": {
+ "height": 885,
+ "width": 1704,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FaJklNfwvY9sbg1rkIPhnIg--\u002Fdz0xNzA0O2g9ODg1O2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen\u002Fhomerun\u002Ffeed_manager_auto_publish_494\u002F583afc8f01a87b3a8f1f0a05ce081057"
+ },
+ "medium": {
+ "url": "http:\u002F\u002Fl2.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002Fxtwsl2Xs5Fa2oKSzfbzkpg--\u002FYXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FaJklNfwvY9sbg1rkIPhnIg--\u002Fdz0xNzA0O2g9ODg1O2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen\u002Fhomerun\u002Ffeed_manager_auto_publish_494\u002F583afc8f01a87b3a8f1f0a05ce081057",
+ "height": 312,
+ "width": 600
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fthe-market-doesnt-care-who-wins-the-election-unless-its-donald-trump-121934629.html",
+ "id": "0ad48c46-6903-3f3c-9661-aec82db449c9",
+ "publisher": "Yahoo Finance",
+ "off_network": false
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 13,
+ "cposy": 13
+ },
+ "instrument": {
+ "algo": "",
+ "mab": "",
+ "mab_e": "",
+ "mab_a": ""
+ },
+ "is_eligible": true,
+ "url": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Factress-secret-pasta-sauce-totally-175617752.html",
+ "title": "Prince Harry's Rumored Girlfriend Has A Killer Hack for \"Sexy, Filthy\" Pasta",
+ "images": {
+ "original": {
+ "height": 240,
+ "width": 480,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FmdaeqRg8x6_neb4vmQs8xw--\u002Fdz00ODA7aD0yNDA7YXBwaWQ9eXRhY2h5b24-\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen-US\u002Fhomerun\u002Fdelish_597\u002F904270cb6438437fb4389a0d081f227c"
+ },
+ "medium": {
+ "url": "http:\u002F\u002Fl.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002FoNs_JQy7IE_SFQ9Zcr7m8g--\u002FYXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FmdaeqRg8x6_neb4vmQs8xw--\u002Fdz00ODA7aD0yNDA7YXBwaWQ9eXRhY2h5b24-\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen-US\u002Fhomerun\u002Fdelish_597\u002F904270cb6438437fb4389a0d081f227c",
+ "height": 312,
+ "width": 600
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Factress-secret-pasta-sauce-totally-175617752.html",
+ "id": "77d53434-c7a4-3f1f-9105-551930bf0287",
+ "publisher": "Delish",
+ "off_network": false
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 14,
+ "cposy": 14
+ },
+ "instrument": {
+ "algo": "",
+ "mab": "",
+ "mab_e": "",
+ "mab_a": ""
+ },
+ "is_eligible": true,
+ "url": "https:\u002F\u002Ffinance.yahoo.com\u002Fvideo\u002Faercaps-kelly-china-tremendous-opportunities-024542944.html",
+ "title": "AerCap's Kelly: China Has Tremendous Opportunities",
+ "images": {
+ "original": {
+ "height": 360,
+ "width": 640,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002F.g_ZevDqMH1OvZ8DMfgatQ--\u002Fdz02NDA7aD0zNjA7YXBwaWQ9eXRhY2h5b24-\u002Fhttps:\u002F\u002Fs1.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FS4DZyU1UuCH1C70TFpmTIg--\u002Fdz02NDA7aD0zNjA7YXBwaWQ9eXRhY2h5b24-\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen-US\u002Fvideo\u002Fbloomberg_932\u002F4721c5f146eb6fa3fd8ea81ab78bfe35"
+ },
+ "medium": {
+ "url": "http:\u002F\u002Fl1.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002FpSDQ8Jo4JY_WDRKJCdxQTQ--\u002FYXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002F.g_ZevDqMH1OvZ8DMfgatQ--\u002Fdz02NDA7aD0zNjA7YXBwaWQ9eXRhY2h5b24-\u002Fhttps:\u002F\u002Fs1.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FS4DZyU1UuCH1C70TFpmTIg--\u002Fdz02NDA7aD0zNjA7YXBwaWQ9eXRhY2h5b24-\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen-US\u002Fvideo\u002Fbloomberg_932\u002F4721c5f146eb6fa3fd8ea81ab78bfe35",
+ "height": 312,
+ "width": 600
+ }
+ },
+ "type": "video",
+ "link": "\u002Fvideo\u002Faercaps-kelly-china-tremendous-opportunities-024542944.html",
+ "id": "631c00e8-c19e-37b8-ac36-f2f7d71e6932",
+ "publisher": "Bloomberg Video",
+ "off_network": false
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 15,
+ "cposy": 15
+ },
+ "instrument": {
+ "algo": "",
+ "mab": "",
+ "mab_e": "",
+ "mab_a": ""
+ },
+ "is_eligible": true,
+ "url": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Fmy-dad-became-an-uber-driver-170616718.html",
+ "title": "Why Uber is the perfect employer for my 70-year-old, hot-air balloon pilot father",
+ "images": {
+ "original": {
+ "height": 779,
+ "width": 1350,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FE.5KPKb7t4bUW9kWg3H7rw--\u002Fdz0xMzUwO2g9Nzc5O2FwcGlkPXl0YWNoeW9u\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-06-30\u002Fbb999610-3f05-11e6-8172-bdb6a94e43ee_Screen-Shot-2016-06-30-at-4-59-46-PM.png"
+ },
+ "medium": {
+ "url": "http:\u002F\u002Fl.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002F4P.2VUVyBAMLiKjfEkUMOA--\u002FYXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FE.5KPKb7t4bUW9kWg3H7rw--\u002Fdz0xMzUwO2g9Nzc5O2FwcGlkPXl0YWNoeW9u\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-06-30\u002Fbb999610-3f05-11e6-8172-bdb6a94e43ee_Screen-Shot-2016-06-30-at-4-59-46-PM.png",
+ "height": 312,
+ "width": 600
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fmy-dad-became-an-uber-driver-170616718.html",
+ "id": "61164bae-94e9-3a89-af93-5e6174af2695",
+ "publisher": "Yahoo Finance",
+ "off_network": false
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 16,
+ "cposy": 16
+ },
+ "instrument": {
+ "algo": "",
+ "mab": "",
+ "mab_e": "",
+ "mab_a": ""
+ },
+ "is_eligible": true,
+ "url": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Fthis-is-how-fbi-director-comey-really-hurt-the-democrats-172445180.html",
+ "title": "This is how FBI Director Comey really hurt the Democrats",
+ "images": {
+ "original": {
+ "height": 3201,
+ "width": 4810,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FY9PD7_2Ta9jRz_t5W.DNJw--\u002Fdz00ODEwO2g9MzIwMTthcHBpZD15dGFjaHlvbg--\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-10-31\u002F9f64d750-9f8d-11e6-9fe9-d790575cda31_GettyImages-481827878.jpg"
+ },
+ "medium": {
+ "url": "http:\u002F\u002Fl1.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002FAEauiw8DCUeMiiv29Si8Iw--\u002FYXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FY9PD7_2Ta9jRz_t5W.DNJw--\u002Fdz00ODEwO2g9MzIwMTthcHBpZD15dGFjaHlvbg--\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-10-31\u002F9f64d750-9f8d-11e6-9fe9-d790575cda31_GettyImages-481827878.jpg",
+ "height": 312,
+ "width": 600
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fthis-is-how-fbi-director-comey-really-hurt-the-democrats-172445180.html",
+ "id": "6ecca210-6741-3d22-80f8-a67214fc4593",
+ "publisher": "Yahoo Finance",
+ "off_network": false
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 17,
+ "cposy": 17
+ },
+ "instrument": {
+ "algo": "",
+ "mab": "",
+ "mab_e": "",
+ "mab_a": ""
+ },
+ "is_eligible": true,
+ "url": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Fblack-friday-sales-already-amazon-143656454.html",
+ "title": "Black Friday Sales Are Already Here, With Amazon Leading the Pack",
+ "images": {
+ "original": {
+ "height": 1400,
+ "width": 2100,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FYtVqeNqJydoAUM0zWWt7OA--\u002Fdz0yMTAwO2g9MTQwMDthcHBpZD15dGFjaHlvbg--\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen-US\u002Fhomerun\u002Fmoney_403\u002F2c682e9e323f6a3c52545385277d20d9"
+ },
+ "medium": {
+ "url": "http:\u002F\u002Fl2.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002FwaQsobflPiaBqQPcz2ek.Q--\u002FYXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FYtVqeNqJydoAUM0zWWt7OA--\u002Fdz0yMTAwO2g9MTQwMDthcHBpZD15dGFjaHlvbg--\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen-US\u002Fhomerun\u002Fmoney_403\u002F2c682e9e323f6a3c52545385277d20d9",
+ "height": 312,
+ "width": 600
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fblack-friday-sales-already-amazon-143656454.html",
+ "id": "94eefaa2-6170-3937-aa10-b2fb941ede59",
+ "publisher": "Money",
+ "off_network": false
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 18,
+ "cposy": 18
+ },
+ "instrument": {
+ "algo": "",
+ "mab": "",
+ "mab_e": "",
+ "mab_a": ""
+ },
+ "is_eligible": true,
+ "url": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Fwhy-pro-golfers-might-soon-make-less-money-201601031.html",
+ "title": "Why pro golfers might soon make less money",
+ "images": {
+ "original": {
+ "height": 2000,
+ "width": 3000,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FlKPtFWKuQ7PHffyqNHJz9w--\u002Fdz0zMDAwO2g9MjAwMDthcHBpZD15dGFjaHlvbg--\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen\u002Fhomerun\u002Ffeed_manager_auto_publish_494\u002Fc5044a53b2ac9c82953dafacf2f08618"
+ },
+ "medium": {
+ "url": "http:\u002F\u002Fl1.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002FPwPagl0_Qcf_oQk_OslaFw--\u002FYXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FlKPtFWKuQ7PHffyqNHJz9w--\u002Fdz0zMDAwO2g9MjAwMDthcHBpZD15dGFjaHlvbg--\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen\u002Fhomerun\u002Ffeed_manager_auto_publish_494\u002Fc5044a53b2ac9c82953dafacf2f08618",
+ "height": 312,
+ "width": 600
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fwhy-pro-golfers-might-soon-make-less-money-201601031.html",
+ "id": "26a72724-286b-3230-8172-9f5dcf5b1356",
+ "publisher": "Yahoo Finance",
+ "off_network": false
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 19,
+ "cposy": 19
+ },
+ "instrument": {
+ "algo": "",
+ "mab": "",
+ "mab_e": "",
+ "mab_a": ""
+ },
+ "is_eligible": true,
+ "url": "http:\u002F\u002Fwww.marketwatch.com\u002Fstory\u002Fnetflix-is-pouring-money-into-some-of-tvs-most-expensive-shows-2016-09-28?siteid=yhoof2&amp;yptr=yahoo",
+ "title": "Netflix’s new show ‘The Crown’ ushers in a new era of content spending",
+ "images": {
+ "original": {
+ "height": 742,
+ "width": 1320,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FIPxh5NjgGrmrgvMRNBjeOg--\u002Fdz0xMzIwO2g9NzQyO2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fslingstone.zenfs.com\u002Foffnetwork\u002F630b4b1f88d81f7d7a3e7f6ac565c977"
+ },
+ "medium": {
+ "url": "http:\u002F\u002Fl2.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002FPBddwbaXUaITP1F9ffgdUA--\u002FYXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FIPxh5NjgGrmrgvMRNBjeOg--\u002Fdz0xMzIwO2g9NzQyO2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fslingstone.zenfs.com\u002Foffnetwork\u002F630b4b1f88d81f7d7a3e7f6ac565c977",
+ "height": 312,
+ "width": 600
+ }
+ },
+ "type": "article",
+ "link": "\u002Fm\u002F74a17dba-1d6c-3a7d-95fc-08ed035b2e07\u002Fnetflix%E2%80%99s-new-show-%E2%80%98the.html",
+ "id": "74a17dba-1d6c-3a7d-95fc-08ed035b2e07",
+ "publisher": "MarketWatch",
+ "off_network": true
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 20,
+ "cposy": 20
+ },
+ "instrument": {
+ "algo": "",
+ "mab": "",
+ "mab_e": "",
+ "mab_a": ""
+ },
+ "is_eligible": true,
+ "url": "https:\u002F\u002Ffinance.yahoo.com\u002Fvideo\u002Fsharps-success-turnaround-sustainable-022110991.html",
+ "title": "Sharp's Success: Is the Turnaround Sustainable?",
+ "images": {
+ "original": {
+ "height": 360,
+ "width": 640,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FDOuo2U92ahhhPiqM_6cawA--\u002Fdz02NDA7aD0zNjA7YXBwaWQ9eXRhY2h5b24-\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002Fwp5epCzu715sEXs8umJ6jA--\u002Fdz02NDA7aD0zNjA7YXBwaWQ9eXRhY2h5b24-\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen-US\u002Fvideo\u002Fbloomberg_932\u002F4d7b033ba079f87ac76988e96b65237e"
+ },
+ "medium": {
+ "url": "http:\u002F\u002Fl3.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002FrS0OIg3IOUTyJWREfXYDnQ--\u002FYXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FDOuo2U92ahhhPiqM_6cawA--\u002Fdz02NDA7aD0zNjA7YXBwaWQ9eXRhY2h5b24-\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002Fwp5epCzu715sEXs8umJ6jA--\u002Fdz02NDA7aD0zNjA7YXBwaWQ9eXRhY2h5b24-\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen-US\u002Fvideo\u002Fbloomberg_932\u002F4d7b033ba079f87ac76988e96b65237e",
+ "height": 312,
+ "width": 600
+ }
+ },
+ "type": "video",
+ "link": "\u002Fvideo\u002Fsharps-success-turnaround-sustainable-022110991.html",
+ "id": "cf4cfa57-e9f6-3c11-ba3a-ec363a49470f",
+ "publisher": "Bloomberg Video",
+ "off_network": false
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 21,
+ "cposy": 21
+ },
+ "instrument": {
+ "algo": "",
+ "mab": "",
+ "mab_e": "",
+ "mab_a": ""
+ },
+ "is_eligible": true,
+ "url": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Fthese-are-a-few-of-fashion-icon-isaac-mizrahi-s-favorite-things-223446175.html",
+ "title": "These are a few of fashion icon Isaac Mizrahi's favorite things",
+ "images": {
+ "original": {
+ "height": 3676,
+ "width": 5156,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FPFMAFTciafmzsWVhTfjJ6w--\u002Fdz01MTU2O2g9MzY3NjthcHBpZD15dGFjaHlvbg--\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-07-01\u002F8de06600-3f86-11e6-909b-2b00c8575c8b_AP_1603151355466505.jpg"
+ },
+ "medium": {
+ "url": "http:\u002F\u002Fl.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002F7yQ7hIF1OdSJELYdU5I_8w--\u002FYXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FPFMAFTciafmzsWVhTfjJ6w--\u002Fdz01MTU2O2g9MzY3NjthcHBpZD15dGFjaHlvbg--\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-07-01\u002F8de06600-3f86-11e6-909b-2b00c8575c8b_AP_1603151355466505.jpg",
+ "height": 312,
+ "width": 600
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fthese-are-a-few-of-fashion-icon-isaac-mizrahi-s-favorite-things-223446175.html",
+ "id": "07eae41a-64ea-3a1c-ae83-81cbade99ede",
+ "publisher": "Yahoo Finance",
+ "off_network": false
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 22,
+ "cposy": 22
+ },
+ "instrument": {
+ "algo": "",
+ "mab": "",
+ "mab_e": "",
+ "mab_a": ""
+ },
+ "is_eligible": true,
+ "url": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Fthis-is-where-nafta-hurts-american-workers-the-most-182621244.html",
+ "title": "This is where NAFTA hurts American workers the most",
+ "images": {
+ "original": {
+ "height": 1600,
+ "width": 2400,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FpF1ErVTNnF1hb_uEfI0ISw--\u002Fdz0yNDAwO2g9MTYwMDthcHBpZD15dGFjaHlvbg--\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-11-01\u002F8ec15ff0-a059-11e6-a2aa-2fba18fac3e8_AP_607510456937.jpg"
+ },
+ "medium": {
+ "url": "http:\u002F\u002Fl2.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002F.JHEoV2rVa5JbTmr1zg7Lg--\u002FYXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FpF1ErVTNnF1hb_uEfI0ISw--\u002Fdz0yNDAwO2g9MTYwMDthcHBpZD15dGFjaHlvbg--\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-11-01\u002F8ec15ff0-a059-11e6-a2aa-2fba18fac3e8_AP_607510456937.jpg",
+ "height": 312,
+ "width": 600
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fthis-is-where-nafta-hurts-american-workers-the-most-182621244.html",
+ "id": "1621ce92-7c01-39a7-9863-6a9ce1bcd8b2",
+ "publisher": "Yahoo Finance",
+ "off_network": false
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 23,
+ "cposy": 23
+ },
+ "instrument": {
+ "algo": "",
+ "mab": "",
+ "mab_e": "",
+ "mab_a": ""
+ },
+ "is_eligible": true,
+ "url": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Fstarbucks-green-cups-causing-uproar-133645462.html",
+ "title": "Starbucks' new green cups are causing an uproar — here's why you don't need to panic",
+ "images": {
+ "original": {
+ "height": 3676,
+ "width": 4901,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FCf0WSHn1eIQm6J9S8Kk5iQ--\u002Fdz00OTAxO2g9MzY3NjthcHBpZD15dGFjaHlvbg--\u002Fhttp:\u002F\u002Fglobalfinance.zenfs.com\u002Fen_us\u002FFinance\u002FUS_AFTP_SILICONALLEY_H_LIVE\u002FStarbucks_new_green_cups_are-8c86aff2f958a339712cd6f68512ec54"
+ },
+ "medium": {
+ "url": "http:\u002F\u002Fl3.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002Fbom1uu0GtFGB_HvLySSS.g--\u002FYXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FCf0WSHn1eIQm6J9S8Kk5iQ--\u002Fdz00OTAxO2g9MzY3NjthcHBpZD15dGFjaHlvbg--\u002Fhttp:\u002F\u002Fglobalfinance.zenfs.com\u002Fen_us\u002FFinance\u002FUS_AFTP_SILICONALLEY_H_LIVE\u002FStarbucks_new_green_cups_are-8c86aff2f958a339712cd6f68512ec54",
+ "height": 312,
+ "width": 600
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fstarbucks-green-cups-causing-uproar-133645462.html",
+ "id": "dd61cf89-7c55-3a53-8bb9-ae9bbface166",
+ "publisher": "Business Insider",
+ "off_network": false
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 24,
+ "cposy": 24
+ },
+ "instrument": {
+ "algo": "",
+ "mab": "",
+ "mab_e": "",
+ "mab_a": ""
+ },
+ "is_eligible": true,
+ "url": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Fivanka-trumps-brand-crisis-shopper-151045694.html",
+ "title": "Ivanka Trump's Brand Is in Crisis as Shopper Boycott Takes Hold",
+ "images": {
+ "original": {
+ "height": 800,
+ "width": 1188,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002Fgxuedy9Yl9x4nehL3owWCg--\u002Fdz0xMTg4O2g9ODAwO2FwcGlkPXl0YWNoeW9u\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-11-01\u002F25769dd0-a04f-11e6-8f32-876f257f0086_trumpz.gif"
+ },
+ "medium": {
+ "url": "http:\u002F\u002Fl3.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002FNRgIwP8ZrVmrsgYtby4Euw--\u002FYXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002Fgxuedy9Yl9x4nehL3owWCg--\u002Fdz0xMTg4O2g9ODAwO2FwcGlkPXl0YWNoeW9u\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-11-01\u002F25769dd0-a04f-11e6-8f32-876f257f0086_trumpz.gif",
+ "height": 312,
+ "width": 600
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fivanka-trumps-brand-crisis-shopper-151045694.html",
+ "id": "f21b0cb8-9b0b-3131-ba8a-baac94dee256",
+ "publisher": "Business Insider",
+ "off_network": false
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 25,
+ "cposy": 25
+ },
+ "instrument": {
+ "algo": "",
+ "mab": "",
+ "mab_e": "",
+ "mab_a": ""
+ },
+ "is_eligible": true,
+ "url": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Fobama-reveals-rooms-where-lives-white-house-124612516.html",
+ "title": "Obama reveals private living areas of White House",
+ "images": {
+ "original": {
+ "height": 1464,
+ "width": 2193,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FKcg9WGBoMWM7N_hhV8EWnQ--\u002Fdz0yMTkzO2g9MTQ2NDthcHBpZD15dGFjaHlvbg--\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen_us\u002FNews\u002Fap_webfeeds\u002F19fca37f9e354967bed1c32f0e5eef3a.jpg"
+ },
+ "medium": {
+ "url": "http:\u002F\u002Fl.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002FRRtwruDfdrWAzzClXNmUXw--\u002FYXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FKcg9WGBoMWM7N_hhV8EWnQ--\u002Fdz0yMTkzO2g9MTQ2NDthcHBpZD15dGFjaHlvbg--\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen_us\u002FNews\u002Fap_webfeeds\u002F19fca37f9e354967bed1c32f0e5eef3a.jpg",
+ "height": 312,
+ "width": 600
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fobama-reveals-rooms-where-lives-white-house-124612516.html",
+ "id": "c9aec5d2-7b24-35c4-93ff-e76872245ef3",
+ "publisher": "Associated Press",
+ "off_network": false
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 26,
+ "cposy": 26
+ },
+ "instrument": {
+ "algo": "",
+ "mab": "",
+ "mab_e": "",
+ "mab_a": ""
+ },
+ "is_eligible": true,
+ "url": "https:\u002F\u002Ffinance.yahoo.com\u002Fvideo\u002Fsouth-koreas-park-appoints-prime-021242523.html",
+ "title": "South Korea's Park Appoints New Prime Minister",
+ "images": {
+ "original": {
+ "height": 360,
+ "width": 640,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002F7FDCJPGIP_Xx9ZvJdvvbwg--\u002Fdz02NDA7aD0zNjA7YXBwaWQ9eXRhY2h5b24-\u002Fhttps:\u002F\u002Fs1.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FGq4EZdrlOFlBUh.sYfGfzg--\u002Fdz02NDA7aD0zNjA7YXBwaWQ9eXRhY2h5b24-\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen-US\u002Fvideo\u002Fbloomberg_932\u002F212df3999a654f49b8c138c2e4ba6459"
+ },
+ "medium": {
+ "url": "http:\u002F\u002Fl1.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002F6P_n9F8Sf9uE19EKHdmXhQ--\u002FYXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002F7FDCJPGIP_Xx9ZvJdvvbwg--\u002Fdz02NDA7aD0zNjA7YXBwaWQ9eXRhY2h5b24-\u002Fhttps:\u002F\u002Fs1.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FGq4EZdrlOFlBUh.sYfGfzg--\u002Fdz02NDA7aD0zNjA7YXBwaWQ9eXRhY2h5b24-\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen-US\u002Fvideo\u002Fbloomberg_932\u002F212df3999a654f49b8c138c2e4ba6459",
+ "height": 312,
+ "width": 600
+ }
+ },
+ "type": "video",
+ "link": "\u002Fvideo\u002Fsouth-koreas-park-appoints-prime-021242523.html",
+ "id": "e8d9d42b-50f9-3879-b704-213e9844cb5a",
+ "publisher": "Bloomberg Video",
+ "off_network": false
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 27,
+ "cposy": 27
+ },
+ "instrument": {
+ "algo": "",
+ "mab": "",
+ "mab_e": "",
+ "mab_a": ""
+ },
+ "is_eligible": true,
+ "url": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Fline-ipo-market-pipeline-twilio-volume-returns-renaissance-capital-unicorns-volatility-202320723.html",
+ "title": "All eyes on upcoming Line offering amid a dismal IPO market",
+ "images": {
+ "original": {
+ "height": 503,
+ "width": 728,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FsS.yBJzaBhj2kuSWB3wqbw--\u002Fdz03Mjg7aD01MDM7YXBwaWQ9eXRhY2h5b24-\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-07-01\u002F4c889e20-3fae-11e6-b296-dd70df83d872_Line-corp.jpg"
+ },
+ "medium": {
+ "url": "http:\u002F\u002Fl1.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002FqySLCicKfL4iQsFxnk3RuQ--\u002FYXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FsS.yBJzaBhj2kuSWB3wqbw--\u002Fdz03Mjg7aD01MDM7YXBwaWQ9eXRhY2h5b24-\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-07-01\u002F4c889e20-3fae-11e6-b296-dd70df83d872_Line-corp.jpg",
+ "height": 312,
+ "width": 600
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fline-ipo-market-pipeline-twilio-volume-returns-renaissance-capital-unicorns-volatility-202320723.html",
+ "id": "dd6fa117-34cd-378f-80bb-3a383bdc2bac",
+ "publisher": "Yahoo Finance",
+ "off_network": false
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 28,
+ "cposy": 28
+ },
+ "instrument": {
+ "algo": "",
+ "mab": "",
+ "mab_e": "",
+ "mab_a": ""
+ },
+ "is_eligible": true,
+ "url": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Fwhy-clinton-is-still-a-huge-favorite-to-win-161657760.html",
+ "title": "Why Clinton is still a huge favorite to win",
+ "images": {
+ "original": {
+ "height": 2385,
+ "width": 3000,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FBKJg4n3Zmgv6j0m7evXrrw--\u002Fdz0zMDAwO2g9MjM4NTthcHBpZD15dGFjaHlvbg--\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-10-31\u002F4061f290-9f80-11e6-aef3-7746e81e8129_GettyImages-619111192.jpg"
+ },
+ "medium": {
+ "url": "http:\u002F\u002Fl1.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002FNtaLzSKbGETAh1RfBPbCag--\u002FYXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FBKJg4n3Zmgv6j0m7evXrrw--\u002Fdz0zMDAwO2g9MjM4NTthcHBpZD15dGFjaHlvbg--\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-10-31\u002F4061f290-9f80-11e6-aef3-7746e81e8129_GettyImages-619111192.jpg",
+ "height": 312,
+ "width": 600
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fwhy-clinton-is-still-a-huge-favorite-to-win-161657760.html",
+ "id": "8afcc6cb-ac17-3f05-9e3d-a236b4da9038",
+ "publisher": "Yahoo Finance",
+ "off_network": false
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 29,
+ "cposy": 29
+ },
+ "instrument": {
+ "algo": "",
+ "mab": "",
+ "mab_e": "",
+ "mab_a": ""
+ },
+ "is_eligible": true,
+ "url": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Felon-musk-teslas-model-3-220711131.html",
+ "title": "Elon Musk: Tesla is developing a special kind of glass for its Model 3",
+ "images": {
+ "original": {
+ "height": 707,
+ "width": 943,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FriJBS1L1tLlGrwRPUyZGAA--\u002Fdz05NDM7aD03MDc7YXBwaWQ9eXRhY2h5b24-\u002Fhttp:\u002F\u002Fglobalfinance.zenfs.com\u002Fen_us\u002FFinance\u002FUS_AFTP_SILICONALLEY_H_LIVE\u002FElon_Musk_Tesla_is_developing-00c7632e277e771809db65ad744b3804"
+ },
+ "medium": {
+ "url": "http:\u002F\u002Fl3.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002F1pnr5Uyp3BBMORs0HVO0ew--\u002FYXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FriJBS1L1tLlGrwRPUyZGAA--\u002Fdz05NDM7aD03MDc7YXBwaWQ9eXRhY2h5b24-\u002Fhttp:\u002F\u002Fglobalfinance.zenfs.com\u002Fen_us\u002FFinance\u002FUS_AFTP_SILICONALLEY_H_LIVE\u002FElon_Musk_Tesla_is_developing-00c7632e277e771809db65ad744b3804",
+ "height": 312,
+ "width": 600
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Felon-musk-teslas-model-3-220711131.html",
+ "id": "014b8a3d-44f7-365d-a352-3ab5dc3696ca",
+ "publisher": "Business Insider",
+ "off_network": false
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 30,
+ "cposy": 30
+ },
+ "instrument": {
+ "algo": "",
+ "mab": "",
+ "mab_e": "",
+ "mab_a": ""
+ },
+ "is_eligible": true,
+ "url": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Fbryan-cranston-says-hell-move-144007827.html",
+ "title": "Bryan Cranston says he'll move to Canada if Donald Trump becomes president",
+ "images": {
+ "original": {
+ "height": 1786,
+ "width": 2381,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FuFL5ZWpLd4RpgsiGtOTeRQ--\u002Fdz0yMzgxO2g9MTc4NjthcHBpZD15dGFjaHlvbg--\u002Fhttp:\u002F\u002Fglobalfinance.zenfs.com\u002Fen_us\u002FFinance\u002FUS_AFTP_SILICONALLEY_H_LIVE\u002FBryan_Cranston_says_hell_move-793da55a73529bed5d80ea02e046be8b"
+ },
+ "medium": {
+ "url": "http:\u002F\u002Fl2.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002FTBAOTkBjddYOsLkOGLg3sg--\u002FYXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FuFL5ZWpLd4RpgsiGtOTeRQ--\u002Fdz0yMzgxO2g9MTc4NjthcHBpZD15dGFjaHlvbg--\u002Fhttp:\u002F\u002Fglobalfinance.zenfs.com\u002Fen_us\u002FFinance\u002FUS_AFTP_SILICONALLEY_H_LIVE\u002FBryan_Cranston_says_hell_move-793da55a73529bed5d80ea02e046be8b",
+ "height": 312,
+ "width": 600
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fbryan-cranston-says-hell-move-144007827.html",
+ "id": "c7740c33-64d7-381c-8a18-6241b9860c26",
+ "publisher": "Business Insider",
+ "off_network": false
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 31,
+ "cposy": 31
+ },
+ "instrument": {
+ "algo": "",
+ "mab": "",
+ "mab_e": "",
+ "mab_a": ""
+ },
+ "is_eligible": true,
+ "url": "https:\u002F\u002Fwww.cnet.com\u002Fnews\u002Frogue-one-a-star-wars-story-droid-k2so-neil-scanlan\u002F",
+ "title": "'Rogue One' throws out the Star Wars rule book",
+ "images": {
+ "original": {
+ "height": 503,
+ "width": 670,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002F_0XYJPjycBqO0Wi7IHKXiA--\u002Fdz02NzA7aD01MDM7YXBwaWQ9eXRhY2h5b24-\u002Fhttp:\u002F\u002Fslingstone.zenfs.com\u002Foffnetwork\u002Fa67ecee0812f93d5e1ae998bb3e045b9"
+ },
+ "medium": {
+ "url": "http:\u002F\u002Fl.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002FwE2t._heXy4ddX63u78naw--\u002FYXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002F_0XYJPjycBqO0Wi7IHKXiA--\u002Fdz02NzA7aD01MDM7YXBwaWQ9eXRhY2h5b24-\u002Fhttp:\u002F\u002Fslingstone.zenfs.com\u002Foffnetwork\u002Fa67ecee0812f93d5e1ae998bb3e045b9",
+ "height": 312,
+ "width": 600
+ }
+ },
+ "type": "article",
+ "link": "\u002Fm\u002Fafe2c4e8-ca5a-3fd0-a092-68d96aabd29f\u002F%26%2339%3Brogue-one%26%2339%3B-throws.html",
+ "id": "afe2c4e8-ca5a-3fd0-a092-68d96aabd29f",
+ "publisher": "CNET",
+ "off_network": true
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 32,
+ "cposy": 32
+ },
+ "instrument": {
+ "algo": "",
+ "mab": "",
+ "mab_e": "",
+ "mab_a": ""
+ },
+ "is_eligible": true,
+ "url": "https:\u002F\u002Ffinance.yahoo.com\u002Fvideo\u002Fplugging-asias-infrastructure-gap-020804838.html",
+ "title": "Plugging Asia's Infrastructure Gap",
+ "images": {
+ "original": {
+ "height": 360,
+ "width": 640,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FJXVoUWIA6Wbi8jjn4tH.Mw--\u002Fdz02NDA7aD0zNjA7YXBwaWQ9eXRhY2h5b24-\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FtglwebWdGVKfMHMahcsEmA--\u002Fdz02NDA7aD0zNjA7YXBwaWQ9eXRhY2h5b24-\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen-US\u002Fvideo\u002Fbloomberg_932\u002F1ca450354eebb33ec870bdf6deb80182"
+ },
+ "medium": {
+ "url": "http:\u002F\u002Fl.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002FUfJQSMWISj1C22kaCNw6RQ--\u002FYXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FJXVoUWIA6Wbi8jjn4tH.Mw--\u002Fdz02NDA7aD0zNjA7YXBwaWQ9eXRhY2h5b24-\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FtglwebWdGVKfMHMahcsEmA--\u002Fdz02NDA7aD0zNjA7YXBwaWQ9eXRhY2h5b24-\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen-US\u002Fvideo\u002Fbloomberg_932\u002F1ca450354eebb33ec870bdf6deb80182",
+ "height": 312,
+ "width": 600
+ }
+ },
+ "type": "video",
+ "link": "\u002Fvideo\u002Fplugging-asias-infrastructure-gap-020804838.html",
+ "id": "6ddeaaf7-8000-3193-9a49-83f83ab3e06e",
+ "publisher": "Bloomberg Video",
+ "off_network": false
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 33,
+ "cposy": 33
+ },
+ "instrument": {
+ "algo": "",
+ "mab": "",
+ "mab_e": "",
+ "mab_a": ""
+ },
+ "is_eligible": true,
+ "url": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Fciti-analysts-cuts-apple-eps-forecast--warns-brexit-impact-iphone-sales-135006500.html",
+ "title": "Citi analyst warns Brexit is bad news for Apple iPhone sales",
+ "images": {
+ "original": {
+ "height": 2179,
+ "width": 3499,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002F.tHBF.443UYNFKcfxIJvug--\u002Fdz0zNDk5O2g9MjE3OTthcHBpZD15dGFjaHlvbg--\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen_us\u002FNews\u002FReuters\u002F2016-06-01T072741Z_468975588_S1BETHIZSFAA_RTRMADP_3_APPLE-BONDS-TAIWAN.JPG"
+ },
+ "medium": {
+ "url": "http:\u002F\u002Fl3.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002Fm6xr69rrZ9l0qWpR.CdiRA--\u002FYXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002F.tHBF.443UYNFKcfxIJvug--\u002Fdz0zNDk5O2g9MjE3OTthcHBpZD15dGFjaHlvbg--\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen_us\u002FNews\u002FReuters\u002F2016-06-01T072741Z_468975588_S1BETHIZSFAA_RTRMADP_3_APPLE-BONDS-TAIWAN.JPG",
+ "height": 312,
+ "width": 600
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fciti-analysts-cuts-apple-eps-forecast--warns-brexit-impact-iphone-sales-135006500.html",
+ "id": "9a51fc99-15c7-3e55-be47-63f0b7165f58",
+ "publisher": "Yahoo Finance",
+ "off_network": false
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 34,
+ "cposy": 34
+ },
+ "instrument": {
+ "algo": "",
+ "mab": "",
+ "mab_e": "",
+ "mab_a": ""
+ },
+ "is_eligible": true,
+ "url": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Finvestors-focused-election-stocks-remain-check-141338193.html",
+ "title": "Asian shares languish as jittery investors eye 2016 election",
+ "images": {
+ "original": {
+ "height": 2333,
+ "width": 3500,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FOm.A7lk9ZjmkLld6H7uNqA--\u002Fdz0zNTAwO2g9MjMzMzthcHBpZD15dGFjaHlvbg--\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen_us\u002FNews\u002Fap_webfeeds\u002F453d3380df10424992b1d89f8737123a.jpg"
+ },
+ "medium": {
+ "url": "http:\u002F\u002Fl.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002FsyB36e3buIdiQBziKO6j0w--\u002FYXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FOm.A7lk9ZjmkLld6H7uNqA--\u002Fdz0zNTAwO2g9MjMzMzthcHBpZD15dGFjaHlvbg--\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen_us\u002FNews\u002Fap_webfeeds\u002F453d3380df10424992b1d89f8737123a.jpg",
+ "height": 312,
+ "width": 600
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Finvestors-focused-election-stocks-remain-check-141338193.html",
+ "id": "77d58c37-a4b2-3674-a6ba-2788ff67b11e",
+ "publisher": "Associated Press",
+ "off_network": false
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 35,
+ "cposy": 35
+ },
+ "instrument": {
+ "algo": "",
+ "mab": "",
+ "mab_e": "",
+ "mab_a": ""
+ },
+ "is_eligible": true,
+ "url": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Fwhy-clinton-has-stayed-mum-on-corporate-tax-reform-194841794.html",
+ "title": "Why Clinton has stayed mum on corporate tax reform",
+ "images": {
+ "original": {
+ "height": 2191,
+ "width": 3286,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FOjZ62C5TKajIY9gPWOQeBw--\u002Fdz0zMjg2O2g9MjE5MTthcHBpZD15dGFjaHlvbg--\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-11-01\u002F1e565450-a054-11e6-9ad3-8592f1bd5d61_AP_114927716013.jpg"
+ },
+ "medium": {
+ "url": "http:\u002F\u002Fl3.yimg.com\u002Fny\u002Fapi\u002Fres\u002F1.2\u002Fc5jFc.WCAa64JjH_inlwsQ--\u002FYXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FOjZ62C5TKajIY9gPWOQeBw--\u002Fdz0zMjg2O2g9MjE5MTthcHBpZD15dGFjaHlvbg--\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-11-01\u002F1e565450-a054-11e6-9ad3-8592f1bd5d61_AP_114927716013.jpg",
+ "height": 312,
+ "width": 600
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fwhy-clinton-has-stayed-mum-on-corporate-tax-reform-194841794.html",
+ "id": "e7487dbb-33a7-3432-a636-e800b94f2d2c",
+ "publisher": "Yahoo Finance",
+ "off_network": false
+ }],
+ "more_items": [],
+ "more": 0,
+ "category": "SIDEKICK:TOPSTORIES",
+ "view": "sidekick",
+ "comscore": "pageview_candidate",
+ "components": [{
+ "name": "Featured",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "StreamAd",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "Featured",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "Featured",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "Featured",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "StreamAd",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "Featured",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "Featured",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "Featured",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "StreamAd",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "Featured",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "Featured",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "Featured",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "Featured",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "Featured",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "Featured",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "Featured",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "Featured",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "Featured",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "Featured",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "Featured",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "Featured",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "Featured",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "Featured",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "Featured",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "Featured",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "Featured",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "Featured",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "Featured",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "Featured",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "Featured",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "Featured",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "Featured",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "Featured",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "Featured",
+ "bundleName": "tdv2-applet-stream"
+ }]
+ },
+ "ts": 1478058901.711,
+ "cposy": 36
+ }
+ }
+ },
+ "HeightContainerStore": {
+ "_childCompositeReady": {
+ "Col2-4-HeightContainer": true
+ }
+ },
+ "UserStore": {
+ "guid": "",
+ "login": "",
+ "alias": "",
+ "firstName": "",
+ "comscoreC14": -1,
+ "isSignedIn": false,
+ "isRecognized": false,
+ "isLoaded": true
+ },
+ "ProfileStore": {
+ "err": {},
+ "guid": "",
+ "profileUrl": "",
+ "userProfile": {
+ "nickName": "",
+ "imageUrl": ""
+ },
+ "_isLoaded": false
+ },
+ "ComponentConfigStore": {
+ "configs": {
+ "canvass-80b35014-fba3-377e-adc5-47fb44f61fa7-0-CanvassApplet": {
+ "publisher": "news-en-US",
+ "guidelineUrl": "\u002F\u002Fhelp.yahoo.com\u002Fkb\u002Fnews\u002FSLN2292.html",
+ "FIXED_UH_HEIGHT": 130,
+ "ui": {
+ "sortTabs": {
+ "enabled": true,
+ "arrangement": ["popular", "newest", "oldest", "mostdiscussed"],
+ "defaultTab": "popular"
+ },
+ "enableCommentsToggle": true,
+ "expanded": false,
+ "containerExtraClasses": "BdT Bdtc(#222) Bdtw(2px)",
+ "seeMore": {
+ "enable": true,
+ "maxTextLength": 600,
+ "lines": 3,
+ "lineHeight": 20
+ },
+ "disclaimer": {
+ "enable": false
+ },
+ "showContextDisplayText": false
+ },
+ "i13n": {
+ "sec": "cmmts",
+ "itc": "1"
+ },
+ "header": {
+ "imgTitle": "Elections",
+ "imgUrl": "https:\u002F\u002Fs.yimg.com\u002Fdh\u002Fap\u002Fdefault\u002F161027\u002Frr-map-news.jpg",
+ "imgStyle": "W(100%)",
+ "imgLink": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Felections",
+ "imgFollowLink": true,
+ "forceLoad": false,
+ "logoImg": "https:\u002F\u002Fs.yimg.com\u002Fdh\u002Fap\u002Fdefault\u002F161028\u002F2016-ratings.jpg"
+ },
+ "subHeader": {
+ "title": "CANVASS_SUBHEADER_TITLE",
+ "subHeaderStyle": ""
+ },
+ "footer": {
+ "footerTxt": "CANVASS_FOOTER_TITLE",
+ "footerStyle": "C(#188fff)"
+ },
+ "isSummaryView": false,
+ "enable": true,
+ "enableInitAction": false
+ },
+ "SideTop-2-HeadComponentAttribution": {
+ "attribution": {
+ "defaultLogoDim": "84x84",
+ "enable": false,
+ "enableAuthorSocial": true,
+ "enableNewAttribution": true,
+ "enablePublishTimestamp": false,
+ "enableShareButtons": false,
+ "forceEnableProvider": true,
+ "shareButtons": {
+ "buttons": ["tumblr", "facebook", "twitter", "pinterest", "mail"],
+ "enableCommentsButton": false,
+ "enableLikeButton": false,
+ "enableRoundShareButtons": true,
+ "enableShareMailTo": false,
+ "isTouchDevice": false,
+ "lcpButtons": ["tumblr", "twitter"]
+ },
+ "enableCanvassComments": true
+ },
+ "shareButtons": {
+ "buttons": ["tumblr", "facebook", "twitter", "pinterest", "mail"],
+ "enableMtfModal": false,
+ "enableRoundShareButtons": false,
+ "enableShareMailTo": false,
+ "enableShareModal": false,
+ "lcpButtons": ["tumblr", "twitter"],
+ "isTouchDevice": false,
+ "styles": {
+ "buttonWidth": "",
+ "commentsClasses": "Ta(c) W(40px) H(22px) Mb(20px)",
+ "commentsIconClasses": "",
+ "commentsLabelClasses": "Pos(a)! T(6px) End(2px) D(n)--modalFloatingCloseBtn",
+ "iconRendererClasses": "",
+ "likeClasses": "canvas-modal-like-button W(40px) H(28px) Ta(c) D(ib) lightweight_D(n)",
+ "likeButtonClasses": "O(n)",
+ "likeIconClasses": "",
+ "outerContainerClasses": "",
+ "tooltipClasses": "C(#000) C(#188fff)!:h Lh(1.3em) Fz(12px) Whs(n) Pos(a) Start(36px) W(100%) T(2px)! O(n)! Ta(start) D(n)--modalFloatingCloseBtn"
+ }
+ },
+ "i13n": {
+ "sec": "hl-viewer"
+ }
+ },
+ "Side-0-CanvasShareButtons": {
+ "shareButtons": {
+ "buttons": ["tumblr", "facebook", "twitter", "pinterest", "mail"],
+ "enableMtfModal": true,
+ "enableRoundShareButtons": false,
+ "enableShareMailTo": false,
+ "enableShareModal": false,
+ "lcpButtons": ["tumblr", "twitter"],
+ "isTouchDevice": false,
+ "styles": {
+ "buttonWidth": "",
+ "commentsClasses": "Ta(c) W(40px) H(22px) Mb(20px)",
+ "commentsIconClasses": "",
+ "commentsLabelClasses": "Pos(a)! T(6px) End(2px) D(n)--modalFloatingCloseBtn",
+ "iconRendererClasses": "",
+ "likeClasses": "canvas-modal-like-button W(40px) H(28px) Ta(c) D(ib) lightweight_D(n)",
+ "likeButtonClasses": "O(n)",
+ "likeIconClasses": "",
+ "outerContainerClasses": "",
+ "tooltipClasses": "C(#000) C(#188fff)!:h Lh(1.3em) Fz(12px) Whs(n) Pos(a) Start(36px) W(100%) T(2px)! O(n)! Ta(start) D(n)--modalFloatingCloseBtn"
+ },
+ "enableCanvassComments": true
+ },
+ "i13n": {
+ "sec": "hl-viewer"
+ }
+ },
+ "Col1-0-ContentCanvas": {
+ "ads": {
+ "adchoices_url": "https:\u002F\u002Finfo.yahoo.com\u002Fprivacy\u002Fus\u002Fyahoo\u002Frelevantads.html",
+ "enableGeminiFeedback": false,
+ "enableInterstitialAd": true,
+ "frequency": 0,
+ "interstitialAdInterval": 7,
+ "interstitialAdStart": 2,
+ "inlineSlideshowAdRefresh": ["LREC"],
+ "lightboxAdPositions": ["LREC-2", "LREC2-2"],
+ "limit": 0,
+ "photosetAd": {
+ "enable": false
+ },
+ "sponsored_url": "http:\u002F\u002Fhelp.yahoo.com\u002Fkb\u002Findex?page=content&amp;y=PROD_FRONT&amp;locale=en_US&amp;id=SLN14553",
+ "start": 2000
+ },
+ "attribution": {
+ "defaultLogoDim": "84x84",
+ "enable": false,
+ "enableAuthorSocial": true,
+ "enableNewAttribution": true,
+ "enablePublishTimestamp": false,
+ "enableShareButtons": false,
+ "forceEnableProvider": true,
+ "shareButtons": {
+ "buttons": ["tumblr", "facebook", "twitter", "pinterest", "mail"],
+ "enableCommentsButton": false,
+ "enableLikeButton": false,
+ "enableRoundShareButtons": true,
+ "enableShareMailTo": false,
+ "isTouchDevice": false,
+ "lcpButtons": ["tumblr", "twitter"]
+ }
+ },
+ "bodyAdsSlot": {
+ "enabled": false,
+ "position": 3,
+ "pos": "LREC",
+ "style": {
+ "marginTop": "10px",
+ "marginBottom": "10px",
+ "marginLeft": "-10px",
+ "marginRight": "-10px",
+ "textAlign": "center"
+ }
+ },
+ "bodySlot": {
+ "enabled": false,
+ "position": 4
+ },
+ "canvasTag": {
+ "enable": false,
+ "enableCommentsLink": false,
+ "enableBottomBorder": false,
+ "tagFollowLink": false
+ },
+ "doubleIframe": {
+ "host": "https:\u002F\u002Fs.yimg.com",
+ "path": "\u002Fos\u002Fyc\u002Fhtml\u002Fembed-iframe-min.d8c8a26f.html"
+ },
+ "enableCollapsibleBody": true,
+ "enableExpandableComments": true,
+ "enableGraphiq": true,
+ "enableInstagram": true,
+ "enableLeadContent": false,
+ "enableLightboxLooping": true,
+ "enableLiveCoverage": false,
+ "enableMutingBodyVideos": true,
+ "enableReadMore": true,
+ "enableRelatedTags": false,
+ "enableSlideshow": true,
+ "enableTextWrap": false,
+ "enableTitle": false,
+ "enableTouch": false,
+ "enableTumblrActionButtons": false,
+ "enableVerticalSlideshow": false,
+ "enableVideoAutoPlay": true,
+ "enableVideoDocking": true,
+ "enableVideoLazyLoad": false,
+ "enableVideosContinuousPlay": true,
+ "enableVideoOnly": false,
+ "forceVideoAutoplayOff": false,
+ "homepageUrl": "https:\u002F\u002Fwww.yahoo.com",
+ "i13n": {
+ "sec": "hl-viewer"
+ },
+ "imageCharCount": 1000,
+ "imageDimensions": ["800x"],
+ "imageScrollMargin": 0,
+ "includeIBImageInSlideshow": true,
+ "includeBodyImageInSlideshow": true,
+ "inlineSlideshowDimension": ["800x600"],
+ "lazyLoadFirstIframe": false,
+ "leadVideoIframe": {
+ "enabled": false,
+ "params": []
+ },
+ "lightboxImageDimensions": ["1280x960"],
+ "minImageWidthToBeInSlideshow": 200,
+ "minImageHeightToBeInSlideshow": 200,
+ "minImgCountToShowSlideshow": 2,
+ "openLightboxForImages": true,
+ "openNewPageForPreviewReadMore": true,
+ "readMoreCharLimit": 4250,
+ "shareButtons": {
+ "buttons": ["tumblr", "facebook", "twitter", "pinterest", "mail"],
+ "enableMtfModal": false,
+ "enableRoundShareButtons": false,
+ "enableShareMailTo": false,
+ "enableShareModal": false,
+ "lcpButtons": ["tumblr", "twitter"],
+ "isTouchDevice": false,
+ "styles": {
+ "buttonWidth": "",
+ "commentsClasses": "Ta(c) W(40px) H(22px) Mb(20px)",
+ "commentsIconClasses": "",
+ "commentsLabelClasses": "Pos(a)! T(6px) End(2px) D(n)--modalFloatingCloseBtn",
+ "iconRendererClasses": "",
+ "likeClasses": "canvas-modal-like-button W(40px) H(28px) Ta(c) D(ib) lightweight_D(n)",
+ "likeButtonClasses": "O(n)",
+ "likeIconClasses": "",
+ "outerContainerClasses": "",
+ "tooltipClasses": "C(#000) C(#188fff)!:h Lh(1.3em) Fz(12px) Whs(n) Pos(a) Start(36px) W(100%) T(2px)! O(n)! Ta(start) D(n)--modalFloatingCloseBtn"
+ }
+ },
+ "shortBodyLimit": 1000,
+ "showCoverItem": true,
+ "showLeadVideo": true,
+ "showSynthesizedSlideshow": false,
+ "videoExpName": "y20",
+ "yahooVideoIframe": {
+ "enabled": false
+ },
+ "enableCanvassComments": true
+ },
+ "Col1-2-CanvasShareButtons": {
+ "shareButtons": {
+ "buttons": ["tumblr", "facebook", "twitter", "pinterest", "mail"],
+ "enableMtfModal": true,
+ "enableRoundShareButtons": false,
+ "enableShareMailTo": false,
+ "enableShareModal": false,
+ "lcpButtons": ["tumblr", "twitter"],
+ "isTouchDevice": false,
+ "styles": {
+ "buttonWidth": "",
+ "commentsClasses": "Ta(c) W(40px) H(22px) Mb(20px)",
+ "commentsIconClasses": "",
+ "commentsLabelClasses": "Pos(a)! T(6px) End(2px) D(n)--modalFloatingCloseBtn",
+ "iconRendererClasses": "",
+ "likeClasses": "canvas-modal-like-button W(40px) H(28px) Ta(c) D(ib) lightweight_D(n)",
+ "likeButtonClasses": "O(n)",
+ "likeIconClasses": "",
+ "outerContainerClasses": "",
+ "tooltipClasses": "C(#000) C(#188fff)!:h Lh(1.3em) Fz(12px) Whs(n) Pos(a) Start(36px) W(100%) T(2px)! O(n)! Ta(start) D(n)--modalFloatingCloseBtn"
+ },
+ "enableCanvassComments": true
+ },
+ "i13n": {
+ "sec": "hl-viewer"
+ }
+ },
+ "Col2Ext-0-Stream": {
+ "ads": {
+ "ad_polices": true,
+ "adchoices_url": "https:\u002F\u002Finfo.yahoo.com\u002Fprivacy\u002Fus\u002Fyahoo\u002Frelevantads.html",
+ "contentType": "",
+ "count": 25,
+ "enableGeminiAdFeedback": true,
+ "fallback": false,
+ "force_thumbnail_size": false,
+ "frequency": 3,
+ "inline_video": false,
+ "letterbox_thumb": true,
+ "pu": "www.yahoo.com",
+ "related_ct_se": "5454650",
+ "related_start_index": 3,
+ "se": 4250754,
+ "spaceid": 2023538075,
+ "sponsored_url": "http:\u002F\u002Fhelp.yahoo.com\u002Fkb\u002Findex?page=content&amp;y=PROD_FRONT&amp;locale=en_US&amp;id=SLN14553",
+ "start_index": 2,
+ "timeout": 0,
+ "type": "STRM,STRM_CONTENT",
+ "useHqImg": true,
+ "useResizedImages": true
+ },
+ "batches": {
+ "pagination": false,
+ "size": 32,
+ "timeout": 500,
+ "total": 170,
+ "start_index": 16,
+ "end_index": 18
+ },
+ "cache_ads": false,
+ "cache_ttl": 0,
+ "category": "SIDEKICK:TOPSTORIES",
+ "clear_on_navigate": false,
+ "embedComponents": [],
+ "flyout_enabled": false,
+ "forceJpg": true,
+ "headline_test_enabled": false,
+ "i13n": {
+ "sec": "sdkick"
+ },
+ "login": {
+ "src": "fpctx"
+ },
+ "max_dedupe_ADID_size": 50,
+ "max_dedupe_UUID_size": 250,
+ "max_exclude": 10,
+ "min_count": 3,
+ "min_count_error": false,
+ "pageload_image_count": 3,
+ "pageload_item_count": -1,
+ "perf_beacon": false,
+ "perf_label": "",
+ "offnet": {
+ "include_lcp": true,
+ "share_buttons": {
+ "buttons_to_show": ["tumblr", "twitter"]
+ },
+ "use_preview": true
+ },
+ "redisCompress": false,
+ "sentiment_comments_enabled": false,
+ "service": {
+ "specRetry": {
+ "enabled": false
+ }
+ },
+ "sidekick_sectionid_enabled": false,
+ "store": {
+ "ls_delay": 1000,
+ "ls_ttl": 86400
+ },
+ "ui": {
+ "applet_layout": {
+ "actionFontSize": "Fz(12px)",
+ "actionColor": "#c8c8cc",
+ "actionIconSize": 15,
+ "actionWrapper": "D(ib) W(50%) Ta(end)",
+ "categoryClass": "Fz(14px) Fw(b) Tt(c) Ell Mb(5px)",
+ "headerLink": "Td(n) Fz(18px) Fw(b) LineClamp(4,91px)",
+ "linkColor": "C(#3c3c5b)",
+ "wrapper": "P(20px)"
+ },
+ "attribution_filter": false,
+ "attribution_pos": "bottom",
+ "breaking_news": true,
+ "breaking_news_closable": false,
+ "comments": false,
+ "comments_count": 2,
+ "comments_offnet": false,
+ "container_classnames": "",
+ "dispatch_content_store": true,
+ "editorial_content_count": 0,
+ "editorial_featured_count": 1,
+ "enable_canvass_comments": false,
+ "exclude_types": "",
+ "follow_cluster": false,
+ "follow_content": false,
+ "ad_image_fit": false,
+ "image_quality_override": false,
+ "inline_filters_article_min": 10,
+ "inline_filters_max": 0,
+ "inline_video": false,
+ "item_classnames": "",
+ "link_params": false,
+ "link_out_allowed": true,
+ "magazine_featured": true,
+ "magazine_icon": false,
+ "max_width": 900,
+ "mega_image_height": "",
+ "needtoknow_card": false,
+ "needtoknow_roundup_only": false,
+ "needtoknow_template": "",
+ "ntk_bypassA3c": true,
+ "property_colors": true,
+ "pubtime_maxage": -1,
+ "related_count": 4,
+ "related_enabled": false,
+ "require_resized_image": false,
+ "related_item_width": "",
+ "related_min": 3,
+ "relative_links": true,
+ "render_video_featured": false,
+ "roundup": false,
+ "scrollbuffer": 900,
+ "share_buttons": {
+ "buttons_to_show": ["tumblr", "facebook", "twitter", "mail"],
+ "enable": false,
+ "mail_host": "www.yahoo.com"
+ },
+ "show_comment_count": false,
+ "show_error": true,
+ "show_follow_treatment": false,
+ "show_publisher_color": true,
+ "show_read": true,
+ "show_summary": true,
+ "smart_crop": true,
+ "sponsored_label": false,
+ "sponsored_label_pos": "bottom",
+ "storyline_count": 2,
+ "storyline_enabled": false,
+ "storyline_min": 2,
+ "summary": false,
+ "tiles": {
+ "allowPartialRows": true,
+ "doubleTallStart": 0,
+ "featured_label": false,
+ "gradient": false,
+ "height": 175,
+ "resizeImages": false,
+ "textOnly": [{
+ "backgroundColor": "#fff",
+ "foregroundColor": "#000"
+ }],
+ "width_max": 300,
+ "width_min": 200
+ },
+ "thumbnail": true,
+ "thumbnail_align": "right",
+ "thumbnail_size": 100,
+ "title_pos": "bottom",
+ "touch_device": false,
+ "tumblr_reblog": false,
+ "view": "sidekick",
+ "follow_cluster_hover_color": true,
+ "follow_content_hover_color": true,
+ "follow_content_tooltip": true,
+ "hover_on_image": true,
+ "tumblr_reblog_hover_color": true,
+ "tumblr_reblog_tooltip": true,
+ "featured_summary": false,
+ "title": "disabled"
+ },
+ "use_article_category": false,
+ "use_content_id": false,
+ "use_content_site": false,
+ "use_page_category": false,
+ "use_prefetch": true,
+ "use_yct_wikiids": true,
+ "video": {
+ "disable_buffer_on_pause": true,
+ "disable_title_on_hover": true,
+ "enable_ads": false,
+ "energy_saver_mode": false,
+ "enable_custom_controls": false,
+ "enable_detached_video": false,
+ "enable_docking": false,
+ "enable_expand_on_unmute": false,
+ "enable_video_enrichment": false,
+ "use_inline_video": false
+ },
+ "blending_enabled": true,
+ "extended_sidekick": true
+ },
+ "Col2Ext-2-Stream": {
+ "ads": {
+ "ad_polices": true,
+ "adchoices_url": "https:\u002F\u002Finfo.yahoo.com\u002Fprivacy\u002Fus\u002Fyahoo\u002Frelevantads.html",
+ "contentType": "",
+ "count": 25,
+ "enableGeminiAdFeedback": true,
+ "fallback": false,
+ "force_thumbnail_size": false,
+ "frequency": 3,
+ "inline_video": false,
+ "letterbox_thumb": true,
+ "pu": "www.yahoo.com",
+ "related_ct_se": "5454650",
+ "related_start_index": 3,
+ "se": 4250754,
+ "spaceid": 2023538075,
+ "sponsored_url": "http:\u002F\u002Fhelp.yahoo.com\u002Fkb\u002Findex?page=content&amp;y=PROD_FRONT&amp;locale=en_US&amp;id=SLN14553",
+ "start_index": 2,
+ "timeout": 0,
+ "type": "STRM,STRM_CONTENT",
+ "useHqImg": true,
+ "useResizedImages": true
+ },
+ "batches": {
+ "pagination": false,
+ "size": 32,
+ "timeout": 500,
+ "total": 170,
+ "start_index": 19,
+ "end_index": 31
+ },
+ "cache_ads": false,
+ "cache_ttl": 0,
+ "category": "SIDEKICK:TOPSTORIES",
+ "clear_on_navigate": false,
+ "embedComponents": [],
+ "flyout_enabled": false,
+ "forceJpg": true,
+ "headline_test_enabled": false,
+ "i13n": {
+ "sec": "sdkick"
+ },
+ "login": {
+ "src": "fpctx"
+ },
+ "max_dedupe_ADID_size": 50,
+ "max_dedupe_UUID_size": 250,
+ "max_exclude": 10,
+ "min_count": 3,
+ "min_count_error": false,
+ "pageload_image_count": 3,
+ "pageload_item_count": -1,
+ "perf_beacon": false,
+ "perf_label": "",
+ "offnet": {
+ "include_lcp": true,
+ "share_buttons": {
+ "buttons_to_show": ["tumblr", "twitter"]
+ },
+ "use_preview": true
+ },
+ "redisCompress": false,
+ "sentiment_comments_enabled": false,
+ "service": {
+ "specRetry": {
+ "enabled": false
+ }
+ },
+ "sidekick_sectionid_enabled": false,
+ "store": {
+ "ls_delay": 1000,
+ "ls_ttl": 86400
+ },
+ "ui": {
+ "applet_layout": {
+ "actionFontSize": "Fz(12px)",
+ "actionColor": "#c8c8cc",
+ "actionIconSize": 15,
+ "actionWrapper": "D(ib) W(50%) Ta(end)",
+ "categoryClass": "Fz(14px) Fw(b) Tt(c) Ell Mb(5px)",
+ "headerLink": "Td(n) Fz(18px) Fw(b) LineClamp(4,91px)",
+ "linkColor": "C(#3c3c5b)",
+ "wrapper": "P(20px)"
+ },
+ "attribution_filter": false,
+ "attribution_pos": "bottom",
+ "breaking_news": true,
+ "breaking_news_closable": false,
+ "comments": false,
+ "comments_count": 2,
+ "comments_offnet": false,
+ "container_classnames": "",
+ "dispatch_content_store": true,
+ "editorial_content_count": 0,
+ "editorial_featured_count": 1,
+ "enable_canvass_comments": false,
+ "exclude_types": "",
+ "follow_cluster": false,
+ "follow_content": false,
+ "ad_image_fit": false,
+ "image_quality_override": false,
+ "inline_filters_article_min": 10,
+ "inline_filters_max": 0,
+ "inline_video": false,
+ "item_classnames": "",
+ "link_params": false,
+ "link_out_allowed": true,
+ "magazine_featured": true,
+ "magazine_icon": false,
+ "max_width": 900,
+ "mega_image_height": "",
+ "needtoknow_card": false,
+ "needtoknow_roundup_only": false,
+ "needtoknow_template": "",
+ "ntk_bypassA3c": true,
+ "property_colors": true,
+ "pubtime_maxage": -1,
+ "related_count": 4,
+ "related_enabled": false,
+ "require_resized_image": false,
+ "related_item_width": "",
+ "related_min": 3,
+ "relative_links": true,
+ "render_video_featured": false,
+ "roundup": false,
+ "scrollbuffer": 900,
+ "share_buttons": {
+ "buttons_to_show": ["tumblr", "facebook", "twitter", "mail"],
+ "enable": false,
+ "mail_host": "www.yahoo.com"
+ },
+ "show_comment_count": false,
+ "show_error": true,
+ "show_follow_treatment": false,
+ "show_publisher_color": true,
+ "show_read": true,
+ "show_summary": true,
+ "smart_crop": true,
+ "sponsored_label": false,
+ "sponsored_label_pos": "bottom",
+ "storyline_count": 2,
+ "storyline_enabled": false,
+ "storyline_min": 2,
+ "summary": false,
+ "tiles": {
+ "allowPartialRows": true,
+ "doubleTallStart": 0,
+ "featured_label": false,
+ "gradient": false,
+ "height": 175,
+ "resizeImages": false,
+ "textOnly": [{
+ "backgroundColor": "#fff",
+ "foregroundColor": "#000"
+ }],
+ "width_max": 300,
+ "width_min": 200
+ },
+ "thumbnail": true,
+ "thumbnail_align": "right",
+ "thumbnail_size": 100,
+ "title_pos": "bottom",
+ "touch_device": false,
+ "tumblr_reblog": false,
+ "view": "sidekick",
+ "follow_cluster_hover_color": true,
+ "follow_content_hover_color": true,
+ "follow_content_tooltip": true,
+ "hover_on_image": true,
+ "tumblr_reblog_hover_color": true,
+ "tumblr_reblog_tooltip": true,
+ "featured_summary": false,
+ "title": "disabled"
+ },
+ "use_article_category": false,
+ "use_content_id": false,
+ "use_content_site": false,
+ "use_page_category": false,
+ "use_prefetch": true,
+ "use_yct_wikiids": true,
+ "video": {
+ "disable_buffer_on_pause": true,
+ "disable_title_on_hover": true,
+ "enable_ads": false,
+ "energy_saver_mode": false,
+ "enable_custom_controls": false,
+ "enable_detached_video": false,
+ "enable_docking": false,
+ "enable_expand_on_unmute": false,
+ "enable_video_enrichment": false,
+ "use_inline_video": false
+ },
+ "blending_enabled": true,
+ "extended_sidekick": true
+ },
+ "UH-1-TopNav": {
+ "navs": [{
+ "id": "FINANCE_HOME_TITLE",
+ "uri": "\u002F"
+ }, {
+ "id": "ORIGINALS_TITLE",
+ "entries": [{
+ "id": "MARKET_MOVERS_TITLE",
+ "uri": "\u002Ftopic\u002Fmarketmovers"
+ }, {
+ "id": "MIDDAY_MOVERS_TITLE",
+ "uri": "\u002Ftopic\u002Fmiddaymovers"
+ }, {
+ "id": "FINAL_ROUND_TITLE",
+ "uri": "\u002Ftopic\u002Ffinalround"
+ }, {
+ "id": "SPORTSBOOK_TITLE",
+ "uri": "\u002Ftopic\u002Fsportsbook"
+ }, {
+ "id": "TRENDING_TICKERS_TITLE",
+ "uri": "\u002Ftopic\u002Ftrendingtickers"
+ }, {
+ "text": "Andy Serwer",
+ "uri": "http:\u002F\u002Ffinance.yahoo.com\u002Fblogs\u002Fauthor\u002Fandy-serwer\u002F"
+ }, {
+ "text": "Brittany Jones-Cooper",
+ "uri": "http:\u002F\u002Ffinance.yahoo.com\u002Fblogs\u002Fauthor\u002Fbrittany-jones-cooper\u002F"
+ }, {
+ "text": "Daniel Howley",
+ "uri": "http:\u002F\u002Ffinance.yahoo.com\u002Fblogs\u002Fauthor\u002Fdaniel-howley-20160419\u002F"
+ }, {
+ "text": "Daniel Roberts",
+ "uri": "http:\u002F\u002Ffinance.yahoo.com\u002Fblogs\u002Fauthor\u002Fdaniel-roberts\u002F"
+ }, {
+ "text": "David Pogue",
+ "uri": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Fdavid-pogue\u002F"
+ }, {
+ "text": "Ethan Wolff-Mann",
+ "uri": "http:\u002F\u002Fewolffmannyf.tumblr.com\u002F"
+ }, {
+ "text": "JP Mangalindan",
+ "uri": "http:\u002F\u002Fjpmangalindan-yahoofinance.tumblr.com\u002F"
+ }, {
+ "text": "Julia La Roche",
+ "uri": "http:\u002F\u002Ffinance.yahoo.com\u002Fblogs\u002Fauthor\u002Fjulia-la-roche\u002F"
+ }, {
+ "text": "Melody Hahm",
+ "uri": "http:\u002F\u002Ffinance.yahoo.com\u002Fblogs\u002Fauthor\u002Fmelody-hahm-20151026\u002F"
+ }, {
+ "text": "Nicole Sinclair",
+ "uri": "http:\u002F\u002Ffinance.yahoo.com\u002Fblogs\u002Fauthor\u002Fnicole-sinclair\u002F"
+ }, {
+ "text": "Rick Newman",
+ "uri": "http:\u002F\u002Ffinance.yahoo.com\u002Fblogs\u002Fauthor\u002Frick-newman\u002F"
+ }, {
+ "text": "Sam Ro",
+ "uri": "http:\u002F\u002Ffinance.yahoo.com\u002Fblogs\u002Fauthor\u002Fsam-ro\u002F"
+ }, {
+ "id": "CONTRIBUTORS_TITLE",
+ "uri": "http:\u002F\u002Ffinancecontributors.tumblr.com\u002F",
+ "target": "_blank"
+ }]
+ }, {
+ "id": "PERSONAL_FINANCE_NAV_TITLE",
+ "uri": "\u002Fpersonal-finance",
+ "entries": [{
+ "id": "RETIREMENT_TITLE",
+ "uri": "\u002Ftopic\u002Fretirement"
+ }, {
+ "id": "LIFESTYLE_TITLE",
+ "uri": "\u002Ftopic\u002Flifestyle"
+ }, {
+ "id": "VIDEO_TITLE",
+ "uri": "\u002Ftopic\u002Fvideos"
+ }, {
+ "id": "CURRENCY_CONVERTER_TITLE",
+ "uri": "http:\u002F\u002Ffinance.yahoo.com\u002Fcurrency-converter"
+ }]
+ }, {
+ "id": "TECH_NAV_TITLE",
+ "uri": "http:\u002F\u002Fwww.yahoo.com\u002Ftech",
+ "target": "_blank"
+ }, {
+ "id": "MARKET_DATA_TITLE",
+ "entries": [{
+ "id": "TRENDING_TICKERS_TITLE",
+ "uri": "\u002Ftrending-tickers"
+ }, {
+ "id": "MOST_ACTIVE_TITLE",
+ "uri": "\u002Fmost-active"
+ }, {
+ "id": "GAINERS_TITLE",
+ "uri": "\u002Fgainers"
+ }, {
+ "id": "LOSERS_TITLE",
+ "uri": "\u002Flosers"
+ }, {
+ "id": "ETFS_TITLE",
+ "uri": "\u002Fetfs"
+ }, {
+ "id": "COMMODITIES",
+ "uri": "\u002Fcommodities"
+ }, {
+ "id": "WORLD_INDICES",
+ "uri": "\u002Fworld-indices"
+ }, {
+ "id": "CURRENCIES_TITLE",
+ "uri": "\u002Fcurrencies"
+ }, {
+ "id": "MUTUALFUNDS_TITLE",
+ "uri": "\u002Fmutualfunds"
+ }, {
+ "id": "OPTIONS_TITLE",
+ "uri": "\u002Foptions"
+ }, {
+ "id": "BONDS_TITLE",
+ "uri": "\u002Fbonds"
+ }, {
+ "id": "CALENDARS_TITLE",
+ "uri": "https:\u002F\u002Fbiz.yahoo.com\u002Fresearch\u002Fearncal\u002Ftoday.html"
+ }]
+ }, {
+ "id": "INDUSTRY_NAV_TITLE",
+ "entries": [{
+ "id": "ENERGY_TITLE",
+ "uri": "\u002Findustries\u002Fenergy"
+ }, {
+ "id": "FINANCIAL_TITLE",
+ "uri": "\u002Findustries\u002Ffinancial"
+ }, {
+ "id": "HEALTHCARE_TITLE",
+ "uri": "\u002Findustries\u002Fhealthcare"
+ }, {
+ "id": "BUSINESS_SERVICES_TITLE",
+ "uri": "\u002Findustries\u002Fbusiness_services"
+ }, {
+ "id": "TELECOM_UTILITIES_TITLE",
+ "uri": "\u002Findustries\u002Ftelecom_utilities"
+ }, {
+ "id": "HARDWARE_ELECTRONICS_TITLE",
+ "uri": "\u002Findustries\u002Fhardware_electronics"
+ }, {
+ "id": "SOFTWARE_SERVICES_TITLE",
+ "uri": "\u002Findustries\u002Fsoftware_services"
+ }, {
+ "id": "INDUSTRIALS_TITLE",
+ "uri": "\u002Findustries\u002Findustrials"
+ }, {
+ "id": "MANUFACTURING_MATERIALS_TITLE",
+ "uri": "\u002Findustries\u002Fmanufacturing_materials"
+ }, {
+ "id": "CONSUMER_PRODUCTS_MEDIA_TITLE",
+ "uri": "\u002Findustries\u002Fconsumer_products_media"
+ }, {
+ "id": "DIVERSIFIED_BUSINESS_TITLE",
+ "uri": "\u002Findustries\u002Fdiversified_business"
+ }, {
+ "id": "RETAILING_HOSPITALITY_TITLE",
+ "uri": "\u002Findustries\u002Fretailing_hospitality"
+ }]
+ }, {
+ "id": "SCREENER_TITLE",
+ "uri": "\u002Fscreener",
+ "showNew": true
+ }],
+ "watchlistNav": {
+ "title": "MY_PORTFOLIO_NAV_TITLE",
+ "uri": "https:\u002F\u002Ffinance.yahoo.com\u002Fportfolios?bypass=true",
+ "urlPrefix": "https:\u002F\u002Ffinance.yahoo.com",
+ "urlType": "portfolio"
+ },
+ "enableMarketTime": true
+ },
+ "Hero-1-TDV2BreakingNews": {
+ "enable": true,
+ "cacheTTL": 300,
+ "category": "LISTID:58dada6c-c801-483e-95af-f964921334ce",
+ "className": "",
+ "backgroundColor": null,
+ "linkColor": null,
+ "buttonColor": "#fff",
+ "showClose": false,
+ "showPrefix": true,
+ "i13n": {
+ "sec": "breakingnews"
+ },
+ "use_mags_nydc": true
+ },
+ "Hero-2-HeroSlideshow": {
+ "imageDimensions": ["1280x960"],
+ "nativeAdDimension": ["1280x960"],
+ "buffer": 2,
+ "enableInterstitialAd": true,
+ "useFixedHeight": false,
+ "isSmartphone": false,
+ "loadMoreBuffer": 6,
+ "loadMoreCount": 25,
+ "interstitialAdStart": 3,
+ "interstitialAdInterval": 7,
+ "followLinkOnNav": false,
+ "enableTouch": false,
+ "looping": true
+ },
+ "Hero-3-HeadComponentVideo": {
+ "enableVideoDocking": true,
+ "enableVideoOnly": false,
+ "enableVideosContinuousPlay": true,
+ "forceVideoAutoplayOff": false,
+ "leadVideoIframe": {
+ "enabled": false,
+ "params": []
+ },
+ "videoExpName": "y20",
+ "i13n": {
+ "sec": "hl-viewer"
+ },
+ "videoFallbackChannel": "finance-videotron"
+ },
+ "SideTop-1-OneIdButtons": {
+ "enable": false
+ },
+ "YDC-Stream": {
+ "ads": {
+ "ad_polices": true,
+ "adchoices_url": "https:\u002F\u002Finfo.yahoo.com\u002Fprivacy\u002Fus\u002Fyahoo\u002Frelevantads.html",
+ "contentType": "video\u002Fmp4,application\u002Fx-shockwave-flash",
+ "count": 25,
+ "enableGeminiAdFeedback": true,
+ "fallback": false,
+ "force_thumbnail_size": false,
+ "frequency": 3,
+ "inline_video": true,
+ "letterbox_thumb": true,
+ "pu": "www.yahoo.com",
+ "related_ct_se": "5454650",
+ "related_start_index": 3,
+ "se": 5417818,
+ "spaceid": 2023538075,
+ "sponsored_url": "http:\u002F\u002Fhelp.yahoo.com\u002Fkb\u002Findex?page=content&amp;y=PROD_FRONT&amp;locale=en_US&amp;id=SLN14553",
+ "start_index": 2,
+ "timeout": 0,
+ "type": "STRM,STRM_CONTENT,STRM_VIDEO",
+ "useHqImg": true,
+ "useResizedImages": true,
+ "videoBeaconDisabled": true,
+ "enableEndCard": true
+ },
+ "batches": {
+ "pagination": true,
+ "size": 20,
+ "timeout": 500,
+ "total": 170
+ },
+ "cache_ads": false,
+ "cache_ttl": 300,
+ "category": "YPROP:FINANCE",
+ "clear_on_navigate": false,
+ "embedComponents": [],
+ "flyout_enabled": false,
+ "forceJpg": true,
+ "headline_test_enabled": false,
+ "i13n": {
+ "sec": "strm"
+ },
+ "login": {
+ "src": "fpctx"
+ },
+ "max_dedupe_ADID_size": 50,
+ "max_dedupe_UUID_size": 250,
+ "max_exclude": 0,
+ "min_count": 3,
+ "min_count_error": false,
+ "pageload_image_count": 200,
+ "pageload_item_count": -1,
+ "perf_beacon": false,
+ "perf_label": "",
+ "offnet": {
+ "include_lcp": true,
+ "share_buttons": {
+ "buttons_to_show": ["tumblr", "twitter"]
+ },
+ "use_preview": true
+ },
+ "redisCompress": false,
+ "sentiment_comments_enabled": false,
+ "service": {
+ "specRetry": {
+ "enabled": false
+ }
+ },
+ "sidekick_sectionid_enabled": false,
+ "store": {
+ "ls_delay": 1000,
+ "ls_ttl": 86400
+ },
+ "ui": {
+ "applet_layout": {
+ "actionFontSize": "Fz(12px)",
+ "actionColor": "#c8c8cc",
+ "actionIconSize": 15,
+ "actionWrapper": "D(ib) W(50%) Ta(end)",
+ "categoryClass": "Fz(14px) Fw(b) Tt(c) Ell Mb(5px)",
+ "headerLink": "Td(n) Fz(18px) Fw(b) LineClamp(4,91px)",
+ "linkColor": "C(#3c3c5b)",
+ "wrapper": "P(20px)"
+ },
+ "attribution_filter": false,
+ "attribution_pos": "inline-bottom",
+ "breaking_news": false,
+ "breaking_news_closable": false,
+ "comments": false,
+ "comments_count": 2,
+ "comments_offnet": false,
+ "container_classnames": "",
+ "dispatch_content_store": true,
+ "editorial_content_count": 0,
+ "editorial_featured_count": 1,
+ "enable_canvass_comments": true,
+ "exclude_types": "",
+ "follow_cluster": false,
+ "follow_content": true,
+ "ad_image_fit": false,
+ "image_quality_override": false,
+ "inline_filters_article_min": 10,
+ "inline_filters_max": 0,
+ "inline_video": false,
+ "item_classnames": "",
+ "link_params": false,
+ "link_out_allowed": true,
+ "magazine_featured": true,
+ "magazine_icon": false,
+ "max_width": 900,
+ "mega_image_height": "",
+ "needtoknow_card": false,
+ "needtoknow_roundup_only": false,
+ "needtoknow_template": "",
+ "ntk_bypassA3c": true,
+ "property_colors": true,
+ "pubtime_maxage": -1,
+ "related_count": 4,
+ "related_enabled": true,
+ "require_resized_image": false,
+ "related_item_width": "",
+ "related_min": 3,
+ "relative_links": true,
+ "render_video_featured": false,
+ "roundup": false,
+ "scrollbuffer": 900,
+ "share_buttons": {
+ "buttons_to_show": ["tumblr", "facebook", "twitter", "mail"],
+ "enable": true,
+ "mail_host": "www.yahoo.com"
+ },
+ "show_comment_count": false,
+ "show_error": true,
+ "show_follow_treatment": false,
+ "show_publisher_color": true,
+ "show_read": true,
+ "show_summary": true,
+ "smart_crop": true,
+ "sponsored_label": false,
+ "sponsored_label_pos": "bottom",
+ "storyline_count": 2,
+ "storyline_enabled": false,
+ "storyline_min": 2,
+ "summary": true,
+ "tiles": {
+ "allowPartialRows": true,
+ "doubleTallStart": 0,
+ "featured_label": false,
+ "gradient": false,
+ "height": 175,
+ "resizeImages": true,
+ "textOnly": [{
+ "backgroundColor": "#fff",
+ "foregroundColor": "#000"
+ }],
+ "width_max": 300,
+ "width_min": 200
+ },
+ "thumbnail": true,
+ "thumbnail_align": "right",
+ "thumbnail_size": 100,
+ "title_pos": "bottom",
+ "touch_device": false,
+ "tumblr_reblog": false,
+ "view": "mega",
+ "follow_cluster_hover_color": true,
+ "follow_content_hover_color": true,
+ "follow_content_tooltip": true,
+ "hover_on_image": true,
+ "tumblr_reblog_hover_color": true,
+ "tumblr_reblog_tooltip": true,
+ "show_comments_drawer": false,
+ "show_label": true,
+ "featured_count": 1,
+ "button_pos": "right"
+ },
+ "use_article_category": false,
+ "use_content_id": true,
+ "use_content_site": true,
+ "use_page_category": true,
+ "use_prefetch": true,
+ "use_yct_wikiids": true,
+ "video": {
+ "disable_buffer_on_pause": true,
+ "disable_title_on_hover": true,
+ "enable_ads": false,
+ "energy_saver_mode": false,
+ "enable_custom_controls": false,
+ "enable_detached_video": false,
+ "enable_docking": false,
+ "enable_expand_on_unmute": false,
+ "enable_video_enrichment": false,
+ "use_inline_video": true
+ },
+ "persist_category": true,
+ "use_mags_nydc": true,
+ "components": {
+ "StreamHeroCarousel": {
+ "ui": {
+ "enable_canvass_comments": true,
+ "show_comments_drawer": false
+ }
+ }
+ }
+ },
+ "Col2Ext-4-Footer": {
+ "copyright": {},
+ "legalAttribution": "ATTRIBUTION_YAHOO",
+ "enableLegalAttribution": true,
+ "links": ["disclaimer", "help", "suggestions"],
+ "linkMeta": {
+ "about_our_ads": {
+ "title": "ABOUT_OUR_ADS",
+ "href": "https:\u002F\u002Finfo.yahoo.com\u002Fprivacy\u002Fus\u002Fyahoo\u002Frelevantads.html"
+ },
+ "advertise": {
+ "title": "ADVERTISE",
+ "href": "https:\u002F\u002Fadvertising.yahoo.com"
+ },
+ "careers": {
+ "title": "CAREERS",
+ "href": "https:\u002F\u002Fcareers.yahoo.com\u002Fus"
+ },
+ "feedback": {
+ "title": "FEEDBACK",
+ "href": "https:\u002F\u002Ffeedback.yahoo.com\u002Fforums\u002F206380-us-homepage"
+ },
+ "help": {
+ "title": "HELP",
+ "href": "http:\u002F\u002Fhelp.yahoo.com\u002Fl\u002Fus\u002Fyahoo\u002Ffinance\u002F"
+ },
+ "privacy": {
+ "title": "PRIVACY",
+ "href": "https:\u002F\u002Fpolicies.yahoo.com\u002Fus\u002Fen\u002Fyahoo\u002Fprivacy\u002Findex.htm"
+ },
+ "suggestions": {
+ "title": "SUGGESTIONS",
+ "href": "http:\u002F\u002Fyahoo.uservoice.com\u002Fforums\u002F207809"
+ },
+ "terms": {
+ "title": "TERMS",
+ "href": "https:\u002F\u002Fpolicies.yahoo.com\u002Fus\u002Fen\u002Fyahoo\u002Fterms\u002Futos\u002Findex.htm"
+ },
+ "disclaimer": {
+ "title": "DISCLAIMER",
+ "href": "https:\u002F\u002Fhelp.yahoo.com\u002Fkb\u002Ffinance\u002FSLN2310.html?impressions=true"
+ }
+ },
+ "wrapperClassName": "yvpDocked_Mt(260px)"
+ },
+ "preLoadUH-0-Header": {
+ "uh": {
+ "featureSwitches": {
+ "navrailCollapse": true
+ },
+ "style": {
+ "container": {}
+ },
+ "backgroundColor": "Bgc(#f9f9f9)",
+ "theme": {
+ "topbarBackground": "Bgc(#2d1152)",
+ "topbarIcon": "#1d1da3",
+ "profileBackground": "Bgc(uhPurple):h C(uhPurple) Bdc(uhPurple)",
+ "profileIcon": "#400090",
+ "mailBackground": "Bgc(uhPurple)",
+ "mailNotificationBackground": "Bgc(#f0162f)",
+ "mailNotificationBorderColor": "Bdc(#fff)",
+ "followNotificationBorderColor": "Bdc(#fff)"
+ },
+ "help": {
+ "style": {
+ "container": {
+ "wrapper": "D(ib) Mstart(16px) Va(t) Mt(3px)"
+ },
+ "separator": {
+ "content": "Bgc(#e2e2e6) H(1px)"
+ },
+ "icon": {
+ "settings": {
+ "content": "D(n) Lh(2.6) Mstart(4px)",
+ "asset": {
+ "name": "CoreSettings",
+ "height": 32,
+ "width": 32,
+ "path": "M12.57 3.98c-.08.022-.16.05-.238.075-.022.004-.044.01-.07.014l-.006.008c-.907.288-1.785.685-2.62 1.188h-.004c-.698.322-1.288-.052-1.44-.164l-.515-.396c-.42-.414-1.094-.408-1.51.012L4.61 6.302c-.414.42-.41 1.096.012 1.51l.57.928c.09.22.205.652.007 1.114-.06.104-.12.207-.176.314-.036.062-.07.126-.1.19-.054.105-.106.212-.158.317-.036.078-.076.155-.11.232-.044.093-.083.188-.12.283-.044.092-.084.188-.122.283l-.09.24c-.042.112-.082.224-.123.338-.018.067-.04.132-.06.198-.04.127-.083.255-.12.387-.016.052-.026.105-.04.16-.032.122-.066.246-.094.37-.222.466-.628.657-.89.734l-.768.1c-.592.005-1.065.488-1.06 1.076l.018 2.223c.004.57.46 1.027 1.02 1.05l-.005.005s1.47.216 1.83 1c.024.087.048.176.075.264l.034.102c.046.145.094.29.145.434l.05.13c.05.133.102.265.155.396l.06.152c.055.123.11.243.168.364.026.055.053.112.076.167.06.12.122.237.185.352.062.124.13.244.2.365.048.085.096.17.147.255l.08.13c.192.486.06.907-.078 1.167l-.653.85c-.412.42-.408 1.094.01 1.507l1.584 1.56c.42.414 1.095.41 1.51-.01l1.18-.724c.267-.114.647-.19 1.073-.016.123.064.242.124.364.184v.01c.062.03.124.058.188.087.192.094.385.183.583.263.008.004.014.008.022.01.148.06.3.118.452.174.02.006.038.014.06.02.14.05.28.098.425.143.03.01.06.02.093.028.132.042.265.08.398.115.303.173.49.426.576.58l.34 1.462c-.007.59.463 1.075 1.05 1.084l.253.003c.08.02.167.032.256.03l.86-.013.852.015c.09.002.172-.012.253-.03l.257-.004c.586-.01 1.057-.494 1.05-1.083l.337-1.46c.087-.157.274-.41.576-.582.135-.034.267-.073.4-.115.032-.01.06-.02.09-.028.143-.045.285-.092.43-.144.017-.005.036-.013.056-.02.15-.055.3-.113.45-.173.007-.002.016-.006.02-.01.198-.08.39-.168.585-.262.063-.028.126-.056.187-.088v-.01c.12-.06.242-.12.363-.183.427-.174.808-.098 1.074.016l1.18.724c.414.42 1.09.424 1.51.01l1.58-1.56c.42-.412.427-1.09.013-1.507l-.65-.85c-.14-.26-.27-.68-.082-1.167.027-.042.056-.085.083-.13.05-.083.097-.17.148-.254.067-.122.135-.242.2-.365.063-.117.124-.235.182-.353.027-.055.052-.11.077-.167.057-.122.113-.242.165-.364.02-.052.042-.1.064-.152.053-.132.105-.263.156-.396.016-.044.03-.087.047-.13.05-.144.1-.29.148-.434.008-.035.02-.07.03-.103.026-.088.052-.176.076-.265.363-.784 1.83-1 1.83-1l-.005-.004c.564-.023 1.013-.482 1.017-1.05l.02-2.224c.004-.588-.468-1.07-1.06-1.076l-.77-.1c-.258-.078-.663-.27-.888-.734-.03-.125-.06-.25-.092-.372-.02-.054-.028-.107-.045-.16-.035-.13-.076-.26-.116-.386l-.06-.197c-.04-.113-.083-.225-.125-.338-.028-.078-.055-.16-.09-.24-.038-.094-.076-.19-.12-.282-.037-.094-.078-.19-.12-.283-.035-.077-.075-.154-.11-.232-.053-.106-.103-.212-.155-.317l-.104-.19c-.055-.106-.114-.21-.173-.314-.2-.46-.084-.892.005-1.114l.572-.93c.42-.412.426-1.088.013-1.508l-1.56-1.584c-.413-.42-1.09-.426-1.508-.012L23.7 5.1c-.15.112-.744.486-1.442.165h-.005c-.832-.503-1.71-.9-2.616-1.188l-.007-.01c-.026-.003-.228-.065-.31-.088l-.18-.09c-.355-.216-.53-.55-.6-.713l-.33-1.332c0-.588-.475-1.067-1.065-1.067H14.75c-.59 0-1.072.48-1.072 1.068l-.327 1.332s-.21.724-.78.802zm3.377 18.717c-3.763 0-6.81-3.05-6.81-6.808s3.046-6.81 6.81-6.81c3.76 0 6.805 3.05 6.805 6.81s-3.046 6.807-6.805 6.807z"
+ },
+ "name": "CoreSettings",
+ "size": 28,
+ "wrapper": "D(ib)"
+ }
+ },
+ "link": {
+ "content": "Td(n) Td(u):h D(b) C(#000)",
+ "wrapper": "Py(8px) Px(10px)"
+ },
+ "panel": {
+ "content": "Mx(-10px) Pos(r) My(0) P(0) C(#000)!",
+ "wrapper": "Bdrs(4px) Bgc(menuBgc) Bxsh(customShadowFlyoutMenu) D(b) End(0) Pos(a) Px(10px) T(40px) Ta(start)"
+ },
+ "button": {
+ "wrapper": "Cur(p) Bgc(#3775dd) Pt(0) Pend(3px) Fz(13px) Bdw(1px) Bds(s) Mt(2px) Mstart(3px) Whs(nw) Ta(c) C(#fff) Bdc(#182e5c)"
+ },
+ "menulist": {
+ "wrapper": "Fz(13px)"
+ }
+ },
+ "data": {
+ "items": {
+ "account_info": {
+ "order": 1,
+ "title": "Account Info",
+ "url": {
+ "protocol": "https",
+ "hostname": "login.yahoo.com",
+ "pathname": "\u002Faccount\u002Fpersonalinfo\u002F",
+ "query": {}
+ }
+ },
+ "help": {
+ "order": 2,
+ "title": "Help",
+ "url": {
+ "protocol": "https",
+ "hostname": "help.yahoo.com",
+ "pathname": "kb\u002Fhelpcentral\u002F"
+ }
+ },
+ "separator": {
+ "order": 3
+ },
+ "suggestions": {
+ "order": 4,
+ "title": "Suggestions",
+ "url": {
+ "protocol": "https",
+ "hostname": "yahoo.uservoice.com"
+ }
+ }
+ }
+ }
+ },
+ "logo": {
+ "style": {
+ "cobrand": {
+ "partner": {},
+ "yahoo": {}
+ },
+ "container": {
+ "inline": {}
+ },
+ "country_property": {},
+ "property": {},
+ "yahoo": {}
+ },
+ "isCobrand": false,
+ "logoBgSize": "Bgz(250px)",
+ "backgroundColor": null,
+ "backgroundPosX": "Bgpx(0)",
+ "backgroundPosY": "Bgpy(0)",
+ "height": 74,
+ "width": 125,
+ "defaultRetinaImage": "https:\u002F\u002Fs.yimg.com\u002Frz\u002Fd\u002Fyahoo_frontpage_en-US_s_f_pw_bestfit_frontpage_2x.png",
+ "defaultNonRetinaImage": "https:\u002F\u002Fs.yimg.com\u002Frz\u002Fd\u002Fyahoo_frontpage_en-US_s_f_pw_bestfit_frontpage.png",
+ "image": "https:\u002F\u002Fs.yimg.com\u002Frz\u002Fl\u002Fyahoo_en-US_f_pw_125x32_2x.png",
+ "nonRetinaImage": "https:\u002F\u002Fs.yimg.com\u002Frz\u002Fl\u002Fyahoo_en-US_f_pw_125x32.png",
+ "link": "https:\u002F\u002Ffinance.yahoo.com\u002F"
+ },
+ "mail": {
+ "style": {
+ "button": {
+ "inline": {}
+ },
+ "mailcount": {}
+ },
+ "data": {
+ "icon": {
+ "mail": {
+ "asset": {
+ "name": "NavMail",
+ "height": 512,
+ "width": 512,
+ "path": "M460.586 91.31H51.504c-10.738 0-19.46 8.72-19.46 19.477v40.088l224 104.03 224-104.03v-40.088c0-10.757-8.702-19.478-19.458-19.478M32.046 193.426V402.96c0 10.758 8.72 19.48 19.458 19.48h409.082c10.756 0 19.46-8.722 19.46-19.48V193.428l-224 102.327-224-102.327z"
+ },
+ "name": "NavMail",
+ "height": 35,
+ "width": 30
+ }
+ },
+ "mode": "client"
+ },
+ "urls": {
+ "mail": {
+ "protocol": "https",
+ "hostname": "mail.yahoo.com",
+ "pathname": "\u002F",
+ "query": {}
+ }
+ },
+ "compose": {
+ "url": "https:\u002F\u002Fmrd.mail.yahoo.com\u002Fcompose"
+ },
+ "count": {
+ "api": {
+ "protocol": "https",
+ "host": "mg.mail.yahoo.com",
+ "path": "\u002Fmailservices\u002Fv1\u002Fnewmailcount",
+ "query": {
+ "appid": "UnivHeader",
+ "wssid": ""
+ }
+ },
+ "jsonp": {
+ "timeout": 3000,
+ "prefix": "__uhmc__"
+ },
+ "maxCountDisplay": 99,
+ "pollingDuration": 10,
+ "pollingInterval": 2,
+ "pollingWindow": 110000
+ },
+ "mailservices": {
+ "api": {
+ "host": "mail.yahoo.com",
+ "path": "\u002F",
+ "protocol": "https",
+ "query": {
+ ".src": "ym"
+ }
+ }
+ },
+ "preview": {
+ "api": {
+ "protocol": "https",
+ "host": "ucs.query.yahoo.com",
+ "path": "\u002Fv1\u002Fconsole\u002Fyql",
+ "query": {
+ "format": "json",
+ "q": "select messageInfo.receivedDate, messageInfo.mid, messageInfo.flags.isRead, messageInfo.from.name, messageInfo.subject from ymail.messages where numMid=\"3\" limit 6",
+ "crumb": ""
+ }
+ },
+ "fetchInterval": 5000,
+ "jsonp": {
+ "timeout": 3000,
+ "prefix": "__uhmp__"
+ },
+ "urls": {
+ "message": "https:\u002F\u002Fmrd.mail.yahoo.com\u002Fmsg?fid=Inbox&amp;src=hp&amp;mid="
+ }
+ },
+ "url": "https:\u002F\u002Fmail.yahoo.com\u002F",
+ "signedInUrl": "https:\u002F\u002Fmail.yahoo.com\u002F"
+ },
+ "notifications": {
+ "comet": {
+ "config": {
+ "privateHost": "https:\u002F\u002Fpr.comet.yahoo.com\u002Fcomet",
+ "subscribeMaxTries": 1,
+ "subscribeTimeout": 5000
+ },
+ "channel": "\u002FUNP\u002Falerts\u002F*"
+ },
+ "count": {
+ "maxCountDisplay": 99
+ },
+ "style": {
+ "notificationsCount": {}
+ }
+ },
+ "account_switch": {
+ "isEnabled": true,
+ "styles": {
+ "avatar": {},
+ "secondary_accounts": {}
+ }
+ },
+ "follow": {
+ "style": {
+ "button": {
+ "inline": {}
+ },
+ "followcount": {}
+ },
+ "data": {
+ "icon": {
+ "follow": {
+ "asset": {
+ "name": "nav-bell",
+ "height": 512,
+ "width": 512,
+ "path": "M294.2 428.05h-74.4c0 20.543 16.656 37.2 37.2 37.2 20.535 0 37.2-12.47 37.2-37.2zM136.1 195.55c0 62.284-53.51 94.162-55.728 95.452L71 296.352v94.498h372v-94.498l-9.373-5.35c-.562-.318-55.727-32.573-55.727-95.452 0-63.88-12.533-148.8-120.9-148.8-108.368 0-120.9 84.92-120.9 148.8z"
+ },
+ "name": "nav-bell",
+ "size": 28
+ }
+ }
+ },
+ "count": {
+ "maxCountDisplay": 99,
+ "pollingInterval": 2,
+ "pollingDuration": 10
+ },
+ "maxUpsellCount": 10,
+ "prefetchBatchSize": 10,
+ "prefetchContent": false
+ },
+ "placeHolder": {
+ "width": ""
+ },
+ "promotedNotification": {
+ "body": "Set your new tab and home page to Yahoo to keep up with latest news.",
+ "buttonLabel": "Add it Now ",
+ "enabled": true,
+ "extensionName": "homepage",
+ "heading": "Stay on top of breaking news!",
+ "isExtension": true,
+ "promoId": "20160606",
+ "increaseCount": true,
+ "timeToLive": 0,
+ "timeToResurrect": 1814400
+ },
+ "profile": {
+ "style": {
+ "account_info": {},
+ "avatar": {},
+ "container": {},
+ "panel": {},
+ "button": {
+ "inline": {}
+ },
+ "signed_out": {}
+ },
+ "data": {
+ "icon": {
+ "profile": {
+ "asset": {
+ "name": "profile",
+ "height": 48,
+ "width": 48,
+ "path": "M4.095 33.61c1.092 2.7 2.607 4.937 4.562 6.696 1.94 1.766 4.23 3.072 6.847 3.922 2.632.846 5.472 1.27 8.53 1.27 3.012 0 5.837-.425 8.458-1.27 1.053-.342 2.046-.754 2.986-1.244 1.41-.732 2.705-1.617 3.87-2.678 1.948-1.76 3.472-3.996 4.558-6.697 1.092-2.7 1.636-5.903 1.636-9.614 0-3.702-.544-6.904-1.636-9.61-1.086-2.703-2.608-4.934-4.56-6.694-1.944-1.767-4.23-3.07-6.854-3.922-2.62-.847-5.445-1.27-8.457-1.27-3.06 0-5.9.423-8.53 1.27-.847.277-1.662.607-2.443.98-1.623.777-3.1 1.753-4.404 2.942-1.956 1.76-3.47 3.992-4.562 6.694-1.09 2.706-1.636 5.908-1.636 9.61-.002 3.71.545 6.914 1.635 9.613zM35.838 34.758l-23.674.002v-2.21s.017-1.425 3.123-2.716c1.538-.633 3.35-1.854 6.6-2.24-.997-.705-1.44-2.154-2.29-4.17-.02-.032-.03-.068-.043-.1-.193.032-.393.032-.537-.046-.398-.232-.636-1.48-.642-2.092-.01-.906.48-.824.48-.824s.017 0 .042-.004c-.006-.07-.01-.142-.01-.213 0-.86-.174-2.24.053-2.988.353-1.176.78-2.46 1.72-2.464.874 0 .28-1.006 1.348-1.345 1.102-.348 2.912.262 3.283.262.53 0 1.863.378 2.78 1.284.646.64.572 1.08.93 2.25.23.777.057 2.167.057 3 0 .07-.007.14-.014.213.018.007.03.007.03.007s.487-.082.478.824c-.004.612-.248 1.86-.635 2.092-.146.078-.34.078-.53.052-.01.026-.023.058-.033.09-.85 1.996-1.308 3.457-2.305 4.162 3.283.38 5.107 1.61 6.654 2.25 3.128 1.287 3.14 2.533 3.14 2.533l-.002 2.39z"
+ },
+ "name": "profile",
+ "size": 34
+ }
+ }
+ },
+ "mode": "server",
+ "authStateCheck": false,
+ "avatarSize": "36px",
+ "loginBaseUrl": "https:\u002F\u002Flogin.yahoo.com\u002Fconfig\u002Flogin",
+ "settingUrl": "https:\u002F\u002Fedit.yahoo.com\u002Fconfig\u002Feval_profile",
+ "signoutUrl": "https:\u002F\u002Flogin.yahoo.com\u002Fconfig\u002Flogin?logout=1&amp;.direct=2&amp;.done=https:\u002F\u002Fwww.yahoo.com",
+ "urls": {
+ "signed_in": {
+ "protocol": "https",
+ "hostname": "login.yahoo.com",
+ "pathname": "\u002Fconfig\u002Flogin",
+ "query": {}
+ },
+ "signed_out": {
+ "protocol": "https",
+ "hostname": "login.yahoo.com",
+ "pathname": "\u002Fconfig\u002Flogin",
+ "query": {
+ ".direct": 2,
+ "logout": 1
+ }
+ },
+ "account_info": {
+ "protocol": "https",
+ "hostname": "edit.yahoo.com",
+ "pathname": "\u002Fconfig\u002Feval_profile",
+ "query": {}
+ }
+ }
+ },
+ "search": {
+ "style": {
+ "cancel_button": {},
+ "table": {},
+ "container": {},
+ "input": {},
+ "search_button": {
+ "inline_1": {},
+ "inline_2": {}
+ },
+ "magnifying_glass": {}
+ },
+ "verticalSearchEnabled": false,
+ "verticalSearchButtonText": null,
+ "webSearchButtonText": "SEARCH_WEB",
+ "verticalSearchAction": null,
+ "autofocus": true,
+ "assistYlc": ";_ylc=X3oDMTFiaHBhMnJmBF9TAzIwMjM1MzgwNzUEaXRjAzEEc2VjA3NyY2hfcWEEc2xrA3NyY2hhc3Q-",
+ "ylc": ";_ylc=X3oDMTFiN25laTRvBF9TAzIwMjM1MzgwNzUEaXRjAzEEc2VjA3NyY2hfcWEEc2xrA3NyY2h3ZWI-",
+ "buttonText": "SEARCH",
+ "glowEnabled": false,
+ "placeholderIcon": false,
+ "placeholderText": "SEARCH",
+ "autocomplete": {
+ "gossip": {
+ "url": {
+ "host": "s.yimg.com",
+ "path": "\u002Fxb\u002Fv6\u002Ffinance\u002Fautocomplete",
+ "query": {
+ "appid": "yahoo.com",
+ "nresults": 10,
+ "output": "yjsonp",
+ "region": "US",
+ "lang": "en-US"
+ },
+ "protocol": "https"
+ },
+ "isJSONP": true,
+ "queryKey": "query",
+ "resultAccessor": "ResultSet.Result",
+ "suggestionTitleAccessor": "symbol",
+ "suggestionMeta": ["symbol", "name", "exch", "type", "exchDisp", "typeDisp"]
+ }
+ },
+ "icon": {},
+ "instantSearch": false,
+ "searchHint": false,
+ "cancelBtn": false,
+ "clearBtn": false,
+ "termCompleteBtn": false,
+ "trendingNow": false,
+ "magnifyingGlass": false,
+ "useIcon": false,
+ "queries": {
+ "fr": "uh3_finance_vert"
+ },
+ "placeholder": "UH_SEARCH_WEB"
+ },
+ "searchOrigin": {
+ "fr": "uh3_finance_web",
+ "fr2": "p:finvsrp,m:{FRSOURCE}"
+ },
+ "skip_nav": {
+ "style": {
+ "container": {
+ "wrapper": "Pos(a)"
+ },
+ "link": {
+ "content": "W(0) O(h) D(ib) Whs(nw) Pos(a) Bg(#500095) C(#fff) Op(0) W(a):f Op(1):f P(5px):f"
+ }
+ },
+ "data": {
+ "items": {
+ "item_1": {
+ "name": "Skip to Navigation",
+ "link": "#Navigation",
+ "order": 1
+ },
+ "item_2": {
+ "name": "Skip to Main Content",
+ "link": "#Main",
+ "order": 2
+ },
+ "item_3": {
+ "name": "Skip to Related Content",
+ "link": "#Aside",
+ "order": 3
+ }
+ }
+ }
+ },
+ "topbar": {
+ "style": {
+ "nav_home": {
+ "inline": {},
+ "link": {}
+ },
+ "nav_main": {
+ "link": {},
+ "link_home": {
+ "icon": {
+ "down_arrow": {
+ "inline": {}
+ },
+ "home": {
+ "inline": {}
+ }
+ }
+ },
+ "link_more": {
+ "icon": {
+ "down_arrow": {
+ "inline": {}
+ }
+ }
+ }
+ },
+ "nav_more": {
+ "inline": {},
+ "link": {}
+ }
+ },
+ "data": {
+ "force_absolute": {
+ "answers": false,
+ "finance": false,
+ "games": false,
+ "groups": false,
+ "home": false,
+ "mail": false,
+ "mobile": false,
+ "screen": false,
+ "search": false,
+ "shopping": false,
+ "sports": false,
+ "weather": false
+ },
+ "force_absolute_all": true,
+ "homeSwitcher": {
+ "enabled": false
+ },
+ "more": 11,
+ "more_item": {
+ "link": "https:\u002F\u002Feverything.yahoo.com",
+ "title": "More"
+ },
+ "icon": {
+ "home": {
+ "asset": {
+ "name": "home",
+ "height": 32,
+ "width": 32,
+ "path": "M16.153 3.224L0 16.962h4.314v11.814h9.87v-8.003h3.934v8.003h9.84V16.962H32"
+ },
+ "name": "home",
+ "size": 16
+ },
+ "down_arrow": {
+ "asset": {
+ "name": "CoreArrowDown",
+ "height": 512,
+ "width": 512,
+ "path": "M500.77 131.432L477.53 108.18c-14.45-14.55-40.11-14.55-54.51 0L255.845 275.363 88.582 108.124c-15.015-14.874-39.363-14.874-54.42.108L10.94 131.486c-14.58 14.44-14.58 40.11-.033 54.442l217.77 217.845c15.004 14.82 39.33 14.874 54.42-.108L500.88 185.82c14.818-14.982 14.87-39.298-.11-54.388z"
+ },
+ "name": "CoreArrowDown",
+ "size": 8
+ }
+ }
+ }
+ },
+ "data": {
+ "action": {
+ "load_nav": {
+ "cache": {
+ "enabled": true
+ }
+ },
+ "load_theme": {
+ "cache": {
+ "enabled": true
+ },
+ "client": {
+ "enabled": true
+ }
+ }
+ }
+ },
+ "navTitle": "",
+ "ui": {
+ "alphatar": true,
+ "back": false,
+ "darkTheme": false,
+ "follow": true,
+ "help": false,
+ "logo": true,
+ "mail": true,
+ "mailcount": true,
+ "mailpreview": true,
+ "menuBtn": true,
+ "notifications": false,
+ "openSearchBtn": false,
+ "profile": true,
+ "profileNotifications": true,
+ "profileCardOpen": false,
+ "profileCardAvatar": false,
+ "profileCardName": false,
+ "profileCardEmail": false,
+ "profileCardSignout": false,
+ "profileCardAcctInfo": false,
+ "search": true,
+ "share": false,
+ "skip_nav": false,
+ "theme": "default",
+ "topbar": true,
+ "topbarFFPromo": true,
+ "topbarSticky": true
+ },
+ "useNavTitle": false,
+ "actions": {
+ "loadNav": false
+ },
+ "useTopicTitle": false
+ },
+ "i13n": {
+ "sec": "uh"
+ },
+ "mrt": {
+ "flush": false,
+ "cache": true,
+ "skipAlertOnChecksumMismatch": true,
+ "prioritize": false
+ }
+ },
+ "Col2-4-HeightContainer-0-Stream": {
+ "ads": {
+ "ad_polices": true,
+ "adchoices_url": "https:\u002F\u002Finfo.yahoo.com\u002Fprivacy\u002Fus\u002Fyahoo\u002Frelevantads.html",
+ "contentType": "",
+ "count": 25,
+ "enableGeminiAdFeedback": true,
+ "fallback": false,
+ "force_thumbnail_size": false,
+ "frequency": 3,
+ "inline_video": false,
+ "letterbox_thumb": true,
+ "pu": "www.yahoo.com",
+ "related_ct_se": "5454650",
+ "related_start_index": 3,
+ "se": 4250754,
+ "spaceid": 2023538075,
+ "sponsored_url": "http:\u002F\u002Fhelp.yahoo.com\u002Fkb\u002Findex?page=content&amp;y=PROD_FRONT&amp;locale=en_US&amp;id=SLN14553",
+ "start_index": 2,
+ "timeout": 0,
+ "type": "STRM,STRM_CONTENT",
+ "useHqImg": true,
+ "useResizedImages": true
+ },
+ "batches": {
+ "pagination": false,
+ "size": 32,
+ "timeout": 500,
+ "total": 170,
+ "start_index": 0,
+ "end_index": 15
+ },
+ "cache_ads": false,
+ "cache_ttl": 0,
+ "category": "SIDEKICK:TOPSTORIES",
+ "clear_on_navigate": false,
+ "embedComponents": [],
+ "flyout_enabled": false,
+ "forceJpg": true,
+ "headline_test_enabled": false,
+ "i13n": {
+ "sec": "sdkick"
+ },
+ "login": {
+ "src": "fpctx"
+ },
+ "max_dedupe_ADID_size": 50,
+ "max_dedupe_UUID_size": 250,
+ "max_exclude": 10,
+ "min_count": 3,
+ "min_count_error": false,
+ "pageload_image_count": 3,
+ "pageload_item_count": -1,
+ "perf_beacon": false,
+ "perf_label": "",
+ "offnet": {
+ "include_lcp": true,
+ "share_buttons": {
+ "buttons_to_show": ["tumblr", "twitter"]
+ },
+ "use_preview": true
+ },
+ "redisCompress": false,
+ "sentiment_comments_enabled": false,
+ "service": {
+ "specRetry": {
+ "enabled": false
+ }
+ },
+ "sidekick_sectionid_enabled": false,
+ "store": {
+ "ls_delay": 1000,
+ "ls_ttl": 86400
+ },
+ "ui": {
+ "applet_layout": {
+ "actionFontSize": "Fz(12px)",
+ "actionColor": "#c8c8cc",
+ "actionIconSize": 15,
+ "actionWrapper": "D(ib) W(50%) Ta(end)",
+ "categoryClass": "Fz(14px) Fw(b) Tt(c) Ell Mb(5px)",
+ "headerLink": "Td(n) Fz(18px) Fw(b) LineClamp(4,91px)",
+ "linkColor": "C(#3c3c5b)",
+ "wrapper": "P(20px)"
+ },
+ "attribution_filter": false,
+ "attribution_pos": "bottom",
+ "breaking_news": true,
+ "breaking_news_closable": false,
+ "comments": false,
+ "comments_count": 2,
+ "comments_offnet": false,
+ "container_classnames": "",
+ "dispatch_content_store": true,
+ "editorial_content_count": 0,
+ "editorial_featured_count": 1,
+ "enable_canvass_comments": false,
+ "exclude_types": "",
+ "follow_cluster": false,
+ "follow_content": false,
+ "ad_image_fit": false,
+ "image_quality_override": false,
+ "inline_filters_article_min": 10,
+ "inline_filters_max": 0,
+ "inline_video": false,
+ "item_classnames": "",
+ "link_params": false,
+ "link_out_allowed": true,
+ "magazine_featured": true,
+ "magazine_icon": false,
+ "max_width": 900,
+ "mega_image_height": "",
+ "needtoknow_card": false,
+ "needtoknow_roundup_only": false,
+ "needtoknow_template": "",
+ "ntk_bypassA3c": true,
+ "property_colors": true,
+ "pubtime_maxage": -1,
+ "related_count": 4,
+ "related_enabled": false,
+ "require_resized_image": false,
+ "related_item_width": "",
+ "related_min": 3,
+ "relative_links": true,
+ "render_video_featured": false,
+ "roundup": false,
+ "scrollbuffer": 900,
+ "share_buttons": {
+ "buttons_to_show": ["tumblr", "facebook", "twitter", "mail"],
+ "enable": false,
+ "mail_host": "www.yahoo.com"
+ },
+ "show_comment_count": false,
+ "show_error": true,
+ "show_follow_treatment": false,
+ "show_publisher_color": true,
+ "show_read": true,
+ "show_summary": true,
+ "smart_crop": true,
+ "sponsored_label": false,
+ "sponsored_label_pos": "bottom",
+ "storyline_count": 2,
+ "storyline_enabled": false,
+ "storyline_min": 2,
+ "summary": false,
+ "tiles": {
+ "allowPartialRows": true,
+ "doubleTallStart": 0,
+ "featured_label": false,
+ "gradient": false,
+ "height": 175,
+ "resizeImages": false,
+ "textOnly": [{
+ "backgroundColor": "#fff",
+ "foregroundColor": "#000"
+ }],
+ "width_max": 300,
+ "width_min": 200
+ },
+ "thumbnail": true,
+ "thumbnail_align": "right",
+ "thumbnail_size": 100,
+ "title_pos": "bottom",
+ "touch_device": false,
+ "tumblr_reblog": false,
+ "view": "sidekick",
+ "follow_cluster_hover_color": true,
+ "follow_content_hover_color": true,
+ "follow_content_tooltip": true,
+ "hover_on_image": true,
+ "tumblr_reblog_hover_color": true,
+ "tumblr_reblog_tooltip": true,
+ "featured_summary": false,
+ "smush_images": true
+ },
+ "use_article_category": false,
+ "use_content_id": true,
+ "use_content_site": false,
+ "use_page_category": false,
+ "use_prefetch": true,
+ "use_yct_wikiids": true,
+ "video": {
+ "disable_buffer_on_pause": true,
+ "disable_title_on_hover": true,
+ "enable_ads": false,
+ "energy_saver_mode": false,
+ "enable_custom_controls": false,
+ "enable_detached_video": false,
+ "enable_docking": false,
+ "enable_expand_on_unmute": false,
+ "enable_video_enrichment": false,
+ "use_inline_video": false
+ },
+ "blending_enabled": true
+ },
+ "Col2-5-DockedAds-1-DiscussionCarousel": {
+ "count": 10,
+ "maxCount": 5,
+ "appendQueryParam": {
+ ".tsrc": "jtc_news_article"
+ },
+ "category": "LISTID:JTD$politics",
+ "linkOutAllowed": true,
+ "prefetch": true,
+ "resizeTag": ["img:45x45|2|80"],
+ "requireArticleWithComments": true,
+ "requireResizeTags": ["img:45x45"],
+ "requireResizedImage": true,
+ "sentimentCommentsEnabled": true,
+ "topRatedCommentsEnabled": true,
+ "i13n": {
+ "sec": "jtc"
+ },
+ "ui": {
+ "autoRotation": true,
+ "commentRotationInterval": 5000,
+ "enable_canvass_comments": true,
+ "smart_crop": true,
+ "storyRotationInterval": 15000
+ }
+ },
+ "account-switch-uh-0-AccountSwitch": {
+ "isEnabled": true,
+ "clientRender": true,
+ "accountListLength": 3,
+ "enableAlphatar": true,
+ "host": "login.yahoo.com",
+ "urlReplacements": {
+ "CRUMB": {
+ ".crumb": "{crumb}"
+ },
+ "DONE": {
+ ".done": "{doneUrl}"
+ },
+ "DONE_YAHOO": {
+ ".done": "{doneUrlYahoo}"
+ }
+ },
+ "urls": {
+ "accountInfo": {
+ "protocol": "https",
+ "path": "\u002Faccount\u002Fpersonalinfo\u002F",
+ "query": ["DONE", {
+ ".intl": "{intl}"
+ }, {
+ ".lang": "{lang}"
+ }, {
+ ".partner": "{partner}"
+ }, {
+ ".src": "{site}"
+ }]
+ },
+ "switchUrl": {
+ "protocol": "https",
+ "path": "\u002Fd",
+ "query": ["CRUMB", {
+ ".intl": "{intl}"
+ }, {
+ ".lang": "{lang}"
+ }, {
+ ".partner": "{partner}"
+ }, {
+ ".src": "{site}"
+ }, {
+ "login": "{alias}"
+ }, {
+ "as": "1"
+ }, "DONE"]
+ },
+ "manageUrl": {
+ "protocol": "https",
+ "path": "\u002Fmanage_account",
+ "query": ["CRUMB", {
+ ".intl": "{intl}"
+ }, {
+ ".lang": "{lang}"
+ }, {
+ ".partner": "{partner}"
+ }, {
+ ".src": "{site}"
+ }, "DONE"]
+ },
+ "logoutUrl": {
+ "protocol": "https",
+ "path": "\u002Fconfig\u002Flogin",
+ "query": ["CRUMB", {
+ ".src": "{site}"
+ }, {
+ ".intl": "{intl}"
+ }, {
+ ".lang": "{lang}"
+ }, {
+ ".partner": "{partner}"
+ }, {
+ "logout_all": "1"
+ }, {
+ ".direct": "1"
+ }, "DONE_YAHOO"]
+ },
+ "requestUrl": {
+ "protocol": "https",
+ "path": "\u002Fw\u002Fdevice_users",
+ "query": ["CRUMB"]
+ }
+ },
+ "styles": {
+ "account_switch_main": {
+ "wrapper": "Py(16px)",
+ "account_info": "C(asTextColor) C(asLinkHoverColor):h Td(n) Td(n):h D(ib) Mstart(asIconWidth) Pend(asEndPadding) Whs(nw)"
+ },
+ "signed_out": {
+ "wrapper": "Py(14px) Ta(c) Bdt(asMenuBorder)",
+ "content": "C(asTextColor) C(asLinkHoverColor):h Td(n) Td(n):h"
+ },
+ "add_accounts": {
+ "icon_wrapper": "W(asIconWidth) D(ib) Va(t) Ta(c)",
+ "icon_content": "C(asTextColor) Fz(30px) Fw(200) Lh(1.5)",
+ "text": "Pt(16px) D(ib) C(asTextColor) Zoom Fz(15px)",
+ "wrapper": "Bdt(asMenuBorder) Td(n) Td(n):h D(b) Whs(nw) Bgc(asMenuHoverBgc):h H(50px) Pend(asEndPadding)"
+ },
+ "avatar": {
+ "size": 40,
+ "color": "#400090",
+ "content": "Bdrs(100px) Bgz(cv) D(ib)",
+ "panel_content": "D(ib) Va(m) Bgz(cv) Bdrs(100px)",
+ "name": "D(n) Lh(2.6) Mstart(4px)",
+ "wrapper": "Zoom Va(t) Ta(c) Fl(start) W(asIconWidth)"
+ },
+ "main_account": {
+ "alias": "C(asLightTextColor) Ell Pt(2px)",
+ "alias_wrapper": "Ell C(#000) Fz(13px)",
+ "content": "C(asTextColor) D(ib) Fz(13px) Pt(10px)",
+ "name": "C(asTextColor) Ell Fz(15px)",
+ "name_wrapper": "Fz(15px) Ell",
+ "user_info_wrapper": "W(2\u002F3) D(ib) Zoom Lts(n) Tren(a) Va(t)",
+ "wrapper": "Cf"
+ },
+ "secondary_accounts": {
+ "list": "Pos(r) M(0) P(0) List(n)",
+ "list_item": "Bdt(asMenuBorder)",
+ "anchor": "Td(n) Td(n):h Py(16px) D(b) Cf C(#000) Bgc(asMenuHoverBgc):h"
+ }
+ }
+ }
+ }
+ },
+ "CanvassStore": {
+ "comments": {
+ "canvass-80b35014-fba3-377e-adc5-47fb44f61fa7": {
+ "contextUrl": "http:\u002F\u002Ffinance.yahoo.com\u002Fnews\u002Fbest-psvr-games-170003443.html",
+ "contextDisplayText": "These are the 8 coolest PlayStation VR games",
+ "newMessagesCount": 0,
+ "relatedTags": [],
+ "messageList": [],
+ "error": false,
+ "replyList": {},
+ "replyListState": {},
+ "count": 70,
+ "context": "80b35014-fba3-377e-adc5-47fb44f61fa7",
+ "instanceId": "canvass-80b35014-fba3-377e-adc5-47fb44f61fa7",
+ "index": null,
+ "selectedTags": [],
+ "showLoadPrev": true,
+ "expanded": false,
+ "disabled": false
+ }
+ },
+ "userComments": {}
+ },
+ "CanvassConfigStore": {
+ "pollingInterval": 3,
+ "scoreAlgo": "dynamic",
+ "uploadOptions": "TEXT,GIF,SMARTLINKS",
+ "messagesPerPage": 10,
+ "allowAnimatedGIF": true,
+ "allowSmartlinks": true,
+ "namespace": "yahoo_content",
+ "lang": "en-US",
+ "region": "US",
+ "oauthConsumerKey": "frontpage.oauth.canvass",
+ "oauthConsumerSecret": "frontpage.oauth.canvass.secret"
+ },
+ "RecentQuotesStore": {
+ "recentquotes": {
+ "positions": []
+ },
+ "error": {
+ "statusCode": 404,
+ "message": "user has no recent quotes on their PRF cookie"
+ }
+ },
+ "QuoteDataStore-Immutable": {
+ "quoteData": {
+ "^TNX": {
+ "sourceInterval": 15,
+ "exchange": "WCB",
+ "regularMarketTime": {
+ "raw": 1478026798,
+ "fmt": "2:59PM EDT"
+ },
+ "shortName": "10-Yr Bond",
+ "exchangeTimezoneName": "America\u002FNew_York",
+ "regularMarketChange": {
+ "raw": -0.013999939,
+ "fmt": "-0.01"
+ },
+ "exchangeTimezoneShortName": "EDT",
+ "regularMarketPrice": {
+ "raw": 1.82,
+ "fmt": "1.82"
+ },
+ "isLoading": false,
+ "gmtOffSetMilliseconds": -14400000,
+ "marketState": "POSTPOST",
+ "quoteType": "INDEX",
+ "symbol": "^TNX",
+ "market": "us_market",
+ "regularMarketChangePercent": {
+ "raw": -0.7633555,
+ "fmt": "-0.76%"
+ },
+ "fullExchangeName": "Chicago Options"
+ },
+ "^N225": {
+ "sourceInterval": 20,
+ "exchange": "OSA",
+ "regularMarketTime": {
+ "raw": 1478057655,
+ "fmt": "12:34PM JST"
+ },
+ "shortName": "Nikkei 225",
+ "exchangeTimezoneName": "Asia\u002FTokyo",
+ "regularMarketChange": {
+ "raw": -287.25,
+ "fmt": "-287.25"
+ },
+ "exchangeTimezoneShortName": "JST",
+ "regularMarketPrice": {
+ "raw": 17155.15,
+ "fmt": "17,155.15"
+ },
+ "isLoading": false,
+ "gmtOffSetMilliseconds": 32400000,
+ "marketState": "REGULAR",
+ "quoteType": "INDEX",
+ "symbol": "^N225",
+ "market": "jp_market",
+ "regularMarketChangePercent": {
+ "raw": -1.6468489,
+ "fmt": "-1.65%"
+ },
+ "fullExchangeName": "Osaka"
+ },
+ "GC=F": {
+ "sourceInterval": 15,
+ "exchange": "CMX",
+ "regularMarketTime": {
+ "raw": 1478058296,
+ "fmt": "11:44PM EDT"
+ },
+ "shortName": "Gold",
+ "exchangeTimezoneName": "America\u002FNew_York",
+ "regularMarketChange": {
+ "raw": 3.3000488,
+ "fmt": "3.30"
+ },
+ "exchangeTimezoneShortName": "EDT",
+ "regularMarketPrice": {
+ "raw": 1291.3,
+ "fmt": "1,291.30"
+ },
+ "isLoading": false,
+ "gmtOffSetMilliseconds": -14400000,
+ "marketState": "REGULAR",
+ "quoteType": "FUTURE",
+ "symbol": "GC=F",
+ "headSymbolAsString": "GC=F",
+ "market": "us24_market",
+ "regularMarketChangePercent": {
+ "raw": 0.25621498,
+ "fmt": "0.26%"
+ },
+ "fullExchangeName": "COMEX"
+ },
+ "^DJI": {
+ "sourceInterval": 120,
+ "exchange": "DJI",
+ "regularMarketTime": {
+ "raw": 1478035662,
+ "fmt": "5:27PM EDT"
+ },
+ "shortName": "Dow 30",
+ "exchangeTimezoneName": "America\u002FNew_York",
+ "regularMarketChange": {
+ "raw": -105.32031,
+ "fmt": "-105.32"
+ },
+ "exchangeTimezoneShortName": "EDT",
+ "regularMarketPrice": {
+ "raw": 18037.1,
+ "fmt": "18,037.10"
+ },
+ "isLoading": false,
+ "gmtOffSetMilliseconds": -14400000,
+ "marketState": "POSTPOST",
+ "quoteType": "INDEX",
+ "symbol": "^DJI",
+ "market": "us_market",
+ "regularMarketChangePercent": {
+ "raw": -0.5805197,
+ "fmt": "-0.58%"
+ },
+ "fullExchangeName": "DJI"
+ },
+ "^VIX": {
+ "sourceInterval": 15,
+ "exchange": "WCB",
+ "regularMarketTime": {
+ "raw": 1478031293,
+ "fmt": "4:14PM EDT"
+ },
+ "shortName": "Vix",
+ "exchangeTimezoneName": "America\u002FNew_York",
+ "regularMarketChange": {
+ "raw": 1.5,
+ "fmt": "1.50"
+ },
+ "exchangeTimezoneShortName": "EDT",
+ "regularMarketPrice": {
+ "raw": 18.56,
+ "fmt": "18.56"
+ },
+ "isLoading": false,
+ "gmtOffSetMilliseconds": -14400000,
+ "marketState": "POSTPOST",
+ "quoteType": "INDEX",
+ "symbol": "^VIX",
+ "market": "us_market",
+ "regularMarketChangePercent": {
+ "raw": 8.792498,
+ "fmt": "8.79%"
+ },
+ "fullExchangeName": "Chicago Options"
+ },
+ "^IXIC": {
+ "sourceInterval": 15,
+ "exchange": "NIM",
+ "regularMarketTime": {
+ "raw": 1478034959,
+ "fmt": "5:15PM EDT"
+ },
+ "shortName": "Nasdaq",
+ "exchangeTimezoneName": "America\u002FNew_York",
+ "regularMarketChange": {
+ "raw": -35.557617,
+ "fmt": "-35.56"
+ },
+ "exchangeTimezoneShortName": "EDT",
+ "regularMarketPrice": {
+ "raw": 5153.577,
+ "fmt": "5,153.58"
+ },
+ "isLoading": false,
+ "gmtOffSetMilliseconds": -14400000,
+ "marketState": "POSTPOST",
+ "quoteType": "INDEX",
+ "symbol": "^IXIC",
+ "market": "us_market",
+ "regularMarketChangePercent": {
+ "raw": -0.6852321,
+ "fmt": "-0.69%"
+ },
+ "fullExchangeName": "Nasdaq GIDS"
+ },
+ "GBPUSD=X": {
+ "sourceInterval": 15,
+ "exchange": "CCY",
+ "regularMarketTime": {
+ "raw": 1478058780,
+ "fmt": "3:53AM GMT"
+ },
+ "shortName": "GBP\u002FUSD",
+ "exchangeTimezoneName": "Europe\u002FLondon",
+ "regularMarketChange": {
+ "raw": -0.00052440166,
+ "fmt": "-0.00"
+ },
+ "exchangeTimezoneShortName": "GMT",
+ "currency": "USD",
+ "regularMarketPrice": {
+ "raw": 1.2237805,
+ "fmt": "1.2238"
+ },
+ "isLoading": false,
+ "gmtOffSetMilliseconds": 0,
+ "marketState": "REGULAR",
+ "quoteType": "CURRENCY",
+ "symbol": "GBPUSD=X",
+ "market": "ccy_market",
+ "regularMarketChangePercent": {
+ "raw": -0.042832132,
+ "fmt": "-0.04%"
+ },
+ "fullExchangeName": "CCY"
+ },
+ "JPY=X": {
+ "sourceInterval": 15,
+ "quoteSourceName": "Delayed Quote",
+ "exchange": "CCY",
+ "regularMarketTime": {
+ "raw": 1478058898,
+ "fmt": "3:54AM GMT"
+ },
+ "shortName": "USD\u002FJPY",
+ "exchangeTimezoneName": "Europe\u002FLondon",
+ "regularMarketChange": {
+ "raw": -0.20999908,
+ "fmt": "-0.21"
+ },
+ "exchangeTimezoneShortName": "GMT",
+ "currency": "JPY",
+ "regularMarketPrice": {
+ "raw": 103.807,
+ "fmt": "103.8070"
+ },
+ "isLoading": false,
+ "gmtOffSetMilliseconds": 0,
+ "marketState": "REGULAR",
+ "quoteType": "CURRENCY",
+ "symbol": "JPY=X",
+ "market": "ccy_market",
+ "regularMarketChangePercent": {
+ "raw": -0.2018892,
+ "fmt": "-0.20%"
+ },
+ "fullExchangeName": "CCY"
+ },
+ "CL=F": {
+ "sourceInterval": 30,
+ "exchange": "NYM",
+ "regularMarketTime": {
+ "raw": 1478058282,
+ "fmt": "11:44PM EDT"
+ },
+ "shortName": "Crude Oil",
+ "exchangeTimezoneName": "America\u002FNew_York",
+ "regularMarketChange": {
+ "raw": -0.40000153,
+ "fmt": "-0.40"
+ },
+ "exchangeTimezoneShortName": "EDT",
+ "regularMarketPrice": {
+ "raw": 46.84,
+ "fmt": "46.84"
+ },
+ "isLoading": false,
+ "gmtOffSetMilliseconds": -14400000,
+ "marketState": "REGULAR",
+ "quoteType": "FUTURE",
+ "symbol": "CL=F",
+ "headSymbolAsString": "CL=F",
+ "market": "us24_market",
+ "regularMarketChangePercent": {
+ "raw": -0.8467432,
+ "fmt": "-0.85%"
+ },
+ "fullExchangeName": "NY Mercantile"
+ },
+ "^RUT": {
+ "sourceInterval": 15,
+ "exchange": "WCB",
+ "regularMarketTime": {
+ "raw": 1478032216,
+ "fmt": "4:30PM EDT"
+ },
+ "shortName": "Russell 2000",
+ "exchangeTimezoneName": "America\u002FNew_York",
+ "regularMarketChange": {
+ "raw": -13.445068,
+ "fmt": "-13.45"
+ },
+ "exchangeTimezoneShortName": "EDT",
+ "regularMarketPrice": {
+ "raw": 1177.9431,
+ "fmt": "1,177.94"
+ },
+ "isLoading": false,
+ "gmtOffSetMilliseconds": -14400000,
+ "marketState": "POSTPOST",
+ "quoteType": "INDEX",
+ "symbol": "^RUT",
+ "market": "us_market",
+ "regularMarketChangePercent": {
+ "raw": -1.1285212,
+ "fmt": "-1.13%"
+ },
+ "fullExchangeName": "Chicago Options"
+ },
+ "^GSPC": {
+ "sourceInterval": 15,
+ "exchange": "SNP",
+ "regularMarketTime": {
+ "raw": 1478035662,
+ "fmt": "5:27PM EDT"
+ },
+ "shortName": "S&amp;P 500",
+ "exchangeTimezoneName": "America\u002FNew_York",
+ "regularMarketChange": {
+ "raw": -14.429932,
+ "fmt": "-14.43"
+ },
+ "exchangeTimezoneShortName": "EDT",
+ "regularMarketPrice": {
+ "raw": 2111.72,
+ "fmt": "2,111.72"
+ },
+ "isLoading": false,
+ "gmtOffSetMilliseconds": -14400000,
+ "marketState": "POSTPOST",
+ "quoteType": "INDEX",
+ "symbol": "^GSPC",
+ "market": "us_market",
+ "regularMarketChangePercent": {
+ "raw": -0.67868835,
+ "fmt": "-0.68%"
+ },
+ "fullExchangeName": "SNP"
+ },
+ "^FTSE": {
+ "sourceInterval": 15,
+ "exchange": "FGI",
+ "regularMarketTime": {
+ "raw": 1478018127,
+ "fmt": "4:35PM GMT"
+ },
+ "shortName": "FTSE 100",
+ "exchangeTimezoneName": "Europe\u002FLondon",
+ "regularMarketChange": {
+ "raw": -37.08008,
+ "fmt": "-37.08"
+ },
+ "exchangeTimezoneShortName": "GMT",
+ "regularMarketPrice": {
+ "raw": 6917.14,
+ "fmt": "6,917.14"
+ },
+ "isLoading": false,
+ "gmtOffSetMilliseconds": 0,
+ "marketState": "PREPRE",
+ "quoteType": "INDEX",
+ "symbol": "^FTSE",
+ "market": "gb_market",
+ "regularMarketChangePercent": {
+ "raw": -0.5332025,
+ "fmt": "-0.53%"
+ },
+ "fullExchangeName": "FTSE Index"
+ },
+ "SI=F": {
+ "sourceInterval": 15,
+ "exchange": "CMX",
+ "regularMarketTime": {
+ "raw": 1478055541,
+ "fmt": "10:59PM EDT"
+ },
+ "shortName": "Silver",
+ "exchangeTimezoneName": "America\u002FNew_York",
+ "regularMarketChange": {
+ "raw": 0.00399971,
+ "fmt": "0.00"
+ },
+ "exchangeTimezoneShortName": "EDT",
+ "regularMarketPrice": {
+ "raw": 18.545,
+ "fmt": "18.55"
+ },
+ "isLoading": false,
+ "gmtOffSetMilliseconds": -14400000,
+ "marketState": "REGULAR",
+ "quoteType": "FUTURE",
+ "symbol": "SI=F",
+ "headSymbolAsString": "SI=F",
+ "market": "us24_market",
+ "regularMarketChangePercent": {
+ "raw": 0.021572245,
+ "fmt": "0.02%"
+ },
+ "fullExchangeName": "COMEX"
+ },
+ "EURUSD=X": {
+ "sourceInterval": 15,
+ "exchange": "CCY",
+ "regularMarketTime": {
+ "raw": 1478058840,
+ "fmt": "3:54AM GMT"
+ },
+ "shortName": "EUR\u002FUSD",
+ "exchangeTimezoneName": "Europe\u002FLondon",
+ "regularMarketChange": {
+ "raw": 0.000857234,
+ "fmt": "0.00"
+ },
+ "exchangeTimezoneShortName": "GMT",
+ "currency": "USD",
+ "regularMarketPrice": {
+ "raw": 1.107052,
+ "fmt": "1.1071"
+ },
+ "isLoading": false,
+ "gmtOffSetMilliseconds": 0,
+ "marketState": "REGULAR",
+ "quoteType": "CURRENCY",
+ "symbol": "EURUSD=X",
+ "market": "ccy_market",
+ "regularMarketChangePercent": {
+ "raw": 0.07749329,
+ "fmt": "0.08%"
+ },
+ "fullExchangeName": "CCY"
+ }
+ }
+ },
+ "TDV2BreakingNewsStore": {
+ "items": [],
+ "hideBreakingNews": false,
+ "timestamp": 1478058902,
+ "category": {
+ "type": "list",
+ "listid": "58dada6c-c801-483e-95af-f964921334ce"
+ }
+ },
+ "PortfolioStore": {
+ "portfolios": {},
+ "error": {
+ "statusCode": 401,
+ "message": "User is not logged in"
+ }
+ },
+ "ThemeStore": {
+ "last_accessed_cache_key": "127925508",
+ "data": {
+ "127925508": {
+ "uh": {
+ "help": {
+ "style": {
+ "icon": {
+ "settings": {
+ "color": "#400090",
+ "content": "D(n) Lh(2.6) Mstart(4px)",
+ "wrapper": "D(ib)"
+ }
+ }
+ }
+ },
+ "notifications": {
+ "style": {
+ "notificationsCount": {
+ "wrapper_1": "Bgc(mailBadge) Bdrs(11px) C(#fff) Start(30px) Fz(11px) Fw(b) Pos(a) Py(4px) Ta(c) T(-8px) W(22px)"
+ }
+ }
+ },
+ "search": {
+ "style": {
+ "cancel_button": {
+ "content": "D(n)"
+ },
+ "container": {
+ "content": "M(0) P(0) Whs(nw)",
+ "wrapper": "D(ib) uh-max_Py(50px)"
+ },
+ "table": {
+ "wrapper": "Bdsp(0) Bdcl(c) Maw(searchMaxWidth) Miw(searchMinWidth) W(searchWidth) ie-8_W(searchMinWidthLightWeight) ie-7_W(searchMinWidthLightWeight) ie-7_Miw(searchMinWidthLightWeight) ie-8_Miw(searchMinWidthLightWeight)"
+ },
+ "input": {
+ "content": "Va(t)"
+ },
+ "search_button": {
+ "inline_1": {
+ "filter": "chroma(color=#000000)"
+ },
+ "inline_2": {},
+ "content_1": "Bdrs(4px) Bdtw(0) Bdw(1px) Bgr(rx) Mstart(5px) Bxz(cb) C(#fff) Ff(ss)! Fz(15px) two-btn_Fz(13px) Lh(32px)! Mend(0)! My(0)! Miw(92px) Px(14px) Py(0) Ta(c) Td(n) Va(t) Zoom",
+ "content_2": "Bg(searchBtnBg) Bxsh(customShadowSearchButton)"
+ },
+ "magnifying_glass": {
+ "color": "#000"
+ }
+ }
+ },
+ "profile": {
+ "style": {
+ "account_info": {
+ "alias": "C(textColor) Ell Maw(160px)",
+ "content": "C(#0078ff) C(#0078ff):h C(#0078ff):v D(ib) Fz(13px) My(2px)",
+ "name": "C(textColor) Ell Fw(b) Fz(13px) Maw(160px)",
+ "wrapper": "P(16px)"
+ },
+ "avatar": {
+ "content": "Lh(userNavTextLh) Bdrs(45%) Mt(-2px) Bgz(cv) C(signInBtn) Cur(p) D(ib) Fz(34px) H(34px) W(34px) ua-ie7_D(n)",
+ "color": "#400090",
+ "name": "Whs(nw) D(ib) Maw(100px) Ov(h) Mt(-1px) Tov(e) Lh(userNavTextLh) C(mailBtn) Pstart(8px) Fz(14px) Fw(b) Va(t) ua-ie7_D(n)",
+ "wrapper": "P(0) Bd(0) Pos(r) ua-ie8_Pb(10px) ua-ie9_Pb(10px)",
+ "size": 34
+ },
+ "container": {
+ "wrapper": "Fl(start) H(34px) Mx(8px)"
+ },
+ "panel": {
+ "wrapper": "Bdrs(4px) Bgc(menuBgc) Bxsh(customShadowFlyoutMenu) D(n) End(0) Pos(a) T(40px) Ta(start) uh-menu-open_D(b) W(280px)"
+ },
+ "button": {
+ "inline": {},
+ "content_1": "Bdrs(5px) Bds(s) Bdw(2px) C(#fff):h D(ib) Ell Fz(14px) Fw(b) Py(2px) Mt(3px) Ta(c) Td(n):h Miw(78px) H(18px)",
+ "content_2": "Bdc(signInBtn) Bgc(signInBtn):h C(signInBtn)",
+ "wrapper": "Fl(start) Mx(4px) Mend(9px)"
+ },
+ "signed_out": {
+ "content": "C(textColor)",
+ "wrapper": "Bdtc(#e1e1e5) Bdts(s) Bdtw(1px) Mx(16px) Py(16px) Ta(c)"
+ }
+ }
+ },
+ "logo": {
+ "style": {
+ "cobrand": {
+ "partner": {},
+ "yahoo": {},
+ "wrapper_1": "Bgr(nr) D(b) Fl(start) Mstart(10px)"
+ },
+ "container": {
+ "inline": {
+ "backgroundColor": "transparent"
+ },
+ "wrapper_1": "Fl(start) Fz(0) M(0) P(0)",
+ "wrapper_2": "ie-7_W(190px) Miw(190px) UHMR1D_Py(0)"
+ },
+ "country_property": {
+ "content_1": "Bgpx(0) Bgr(nr) Cur(p) D(b) H(35px)",
+ "content_2": "Bgz(702px) Mx(a)! W(155px)"
+ },
+ "property": {
+ "content_1": "Bgpx(0) Bgr(nr) Cur(p) D(b) H(35px)",
+ "content_2": "Bgz(702px) Mx(a)! W(92px)",
+ "image_1x": "https:\u002F\u002Fs.yimg.com\u002Frz\u002Fd\u002Fyahoo_finance_en-US_s_f_pw_351x40_finance.png",
+ "image_2x": "https:\u002F\u002Fs.yimg.com\u002Frz\u002Fd\u002Fyahoo_finance_en-US_s_f_pw_351x40_finance_2x.png"
+ },
+ "yahoo": {
+ "content_1": "Bgpx(0) Bgr(nr) Cur(p) D(b) H(35px) Mstart(20px)",
+ "content_2": "Bgz(284px) Mx(a)! W(140px)",
+ "image_1x": "https:\u002F\u002Fs.yimg.com\u002Frz\u002Fd\u002Fyahoo_frontpage_en-US_s_f_pw_bestfit_frontpage.png",
+ "image_2x": "https:\u002F\u002Fs.yimg.com\u002Frz\u002Fd\u002Fyahoo_frontpage_en-US_s_f_pw_bestfit_frontpage_2x.png"
+ },
+ "template": "property"
+ }
+ },
+ "style": {
+ "container": {
+ "right_list": "End(20px) List(n) Pos(a) T(14px)",
+ "wrapper_1": "Bdbs(s) Bdw(1px) Miw(1024px) End(0) Start(0) UH Z(10)",
+ "wrapper_2": "Bdc($c-divider) Py(14px)",
+ "wrapper_3": "T(0)",
+ "wrapper_4": "T(22px)",
+ "wrapper_5": "Pos(f)",
+ "wrapper_6": "Pos(r)",
+ "wrapper_7": "Bgc($bg-header)",
+ "wrapper_8": "Panel-open_Bxsh(shadowOn)"
+ }
+ },
+ "follow": {
+ "style": {
+ "button": {
+ "inline": {},
+ "content_1": "Pos(r) Fl(start) D(ib) Bd(0) P(0) Mstart(14px) Mend(13px) Cur(p) ie-7_D(n) ie-8_Pb(10px) ie-9_Pb(10px)",
+ "icon_1": "#400090",
+ "text_1": "Lh(userNavTextLh) D(ib) C(mailBtn) Fz(14px) Fw(b) Va(t) Mstart(6px)",
+ "wrapper": "D(ib) Mstart(14px) Mt(-1px) ua-ie8_Pb(10px) ua-ie9_Pb(10px)"
+ },
+ "followcount": {
+ "wrapper_1": "Bgc(mailBadge) Bdrs(11px) C(#fff) Start(16px) Fz(11px) Fw(b) Pos(a) Lh(2) Ta(c) T(-11px) W(22px)"
+ }
+ }
+ },
+ "mail": {
+ "style": {
+ "button": {
+ "inline": {},
+ "content_1": "Pos(r) D(ib) Ta(s) Td(n):h",
+ "content_2": "",
+ "icon_1": "#400090",
+ "icon_2": "#400090",
+ "text_1": "Lh(userNavTextLh) D(ib) C(mailBtn) Fz(14px) Fw(b) Va(t) Mstart(6px)",
+ "text_2": "Lh(userNavTextLh) D(ib) C(mailBtn) Fz(14px) Fw(b) Va(t) Mstart(6px)",
+ "wrapper": "D(ib) Mstart(14px) Mt(-1px) ua-ie8_Pb(10px) ua-ie9_Pb(10px)"
+ },
+ "mailcount": {
+ "wrapper_1": "Bgc(mailBadge) Bdrs(11px) C(#fff) Start(18px) Fz(11px) Fw(b) Pos(a) Py(4px) Ta(c) T(-8px) W(22px)"
+ }
+ }
+ },
+ "topbar": {
+ "style": {
+ "nav_home": {
+ "inline": {
+ "boxShadow": "0 4px 7px rgba(0,0,0,.2)",
+ "border": "0px 1px 1px 1px",
+ "borderColor": "1px solid #d9d9d9"
+ },
+ "link": {
+ "content": "C(#1d1da3)! D(b) Py(3px) Td(n) Td(u):h"
+ },
+ "content": "Bgc(#fff) C(#eee) List(n) My(.55em) Pos(r) Px(10px)!",
+ "wrapper": "Bd(1px solid #d9d9d9) Bgc(#fff) D(b) Pos(a) Start(0) T(100%)"
+ },
+ "nav_main": {
+ "link": {
+ "content": "C(#fff) Td(n) Td(u):h",
+ "wrapper": "D(ib) Lh(1.7) Mend(18px) Pstart(14px) Va(t) Zoom"
+ },
+ "link_home": {
+ "icon": {
+ "down_arrow": {
+ "inline": {
+ "cursor": "pointer",
+ "marginLeft": "5px",
+ "verticalAlign": "middle"
+ },
+ "color_1": "#fff",
+ "color_2": "#1d1da3"
+ },
+ "home": {
+ "inline": {
+ "cursor": "pointer",
+ "marginRight": "6px",
+ "marginTop": "1px",
+ "verticalAlign": "top"
+ },
+ "color_1": "#fff",
+ "color_2": "#1d1da3"
+ }
+ },
+ "content_1": "C(#fff) Td(n) Pos(r) Z(1) rapidnofollow",
+ "content_2": "C(#1d1da3)!",
+ "text": "Fw(400) Mstart(-1px) Td(u):h",
+ "wrapper_1": "D(ib) Lh(1.7) Mend(18px) Pstart(10px) Va(t) Zoom",
+ "wrapper_2": "Bgc(#fff)!"
+ },
+ "link_more": {
+ "icon": {
+ "down_arrow": {
+ "inline": {
+ "cursor": "pointer",
+ "marginLeft": "5px",
+ "verticalAlign": "middle"
+ },
+ "color_1": "#fff",
+ "color_2": "#1d1da3"
+ }
+ },
+ "content_1": "C(#fff) Pos(r) Td(n) Z(1) yucs-leavable rapidnofollow",
+ "content_2": "C(#1d1da3)!",
+ "text": "Td(u):h",
+ "wrapper_1": "D(ib) Lh(1.7) Pend(6px) Pos(r) Pstart(10px) Va(t) Z(4) Zoom",
+ "wrapper_2": "Bgc(#fff)!"
+ },
+ "content_1": "H(22px) Lh(1.7) M(0) NavLinks P(0) Whs(nw) Z(11)",
+ "content_2": "Bgc(#2d1152)",
+ "content_3": "Pos(a) Start(0) End(0)",
+ "wrapper_1": "C(#fff) Fz(13px)",
+ "wrapper_2": "H(22px)"
+ },
+ "nav_more": {
+ "inline": {
+ "boxShadow": "0 4px 7px rgba(0,0,0,.2)",
+ "border": "0px 1px 1px 1px",
+ "borderColor": "1px solid #d9d9d9"
+ },
+ "link": {
+ "content": "C(#1d1da3)! D(b) Py(3px) Td(n) Td(u):h"
+ },
+ "content": "Bgc(#fff) C(#eee) Pos(r) Px(10px)! List(n) My(.55em)",
+ "wrapper": "Bgc(#fff) Bd(1px solid #d9d9d9) D(b) Pos(a) Start(0) T(100%)"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "HeaderStore": {
+ "showFFPromo": false
+ },
+ "NavStore": {
+ "data": {
+ "items": [{
+ "id": "home",
+ "name": "Home",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002F",
+ "children": []
+ }, {
+ "id": "mail",
+ "name": "Mail",
+ "url": "https:\u002F\u002Fmail.yahoo.com\u002F?.intl=us&amp;.lang=en-US",
+ "children": []
+ }, {
+ "id": "flickr",
+ "name": "Flickr",
+ "url": "https:\u002F\u002Fwww.flickr.com\u002F",
+ "children": []
+ }, {
+ "id": "tumblr",
+ "name": "Tumblr",
+ "url": "https:\u002F\u002Fwww.tumblr.com\u002F",
+ "children": []
+ }, {
+ "id": "news",
+ "name": "News",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002F",
+ "children": []
+ }, {
+ "id": "sports",
+ "name": "Sports",
+ "url": "http:\u002F\u002Fsports.yahoo.com\u002F",
+ "children": []
+ }, {
+ "id": "finance",
+ "name": "Finance",
+ "url": "http:\u002F\u002Ffinance.yahoo.com\u002F",
+ "children": []
+ }, {
+ "id": "celebrity",
+ "name": "Celebrity",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fcelebrity\u002F",
+ "children": []
+ }, {
+ "id": "answers",
+ "name": "Answers",
+ "url": "https:\u002F\u002Fanswers.yahoo.com\u002F",
+ "children": []
+ }, {
+ "id": "groups",
+ "name": "Groups",
+ "url": "https:\u002F\u002Fgroups.yahoo.com\u002F",
+ "children": []
+ }, {
+ "id": "mobile",
+ "name": "Mobile",
+ "url": "https:\u002F\u002Fmobile.yahoo.com\u002F",
+ "children": []
+ }, {
+ "id": "movies",
+ "name": "Movies",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fmovies\u002F",
+ "children": []
+ }, {
+ "id": "music",
+ "name": "Music",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fmusic\u002F",
+ "children": []
+ }, {
+ "id": "tv",
+ "name": "TV",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Ftv\u002F",
+ "children": []
+ }, {
+ "id": "style",
+ "name": "Style",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fstyle\u002F",
+ "children": []
+ }, {
+ "id": "beauty",
+ "name": "Beauty",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fbeauty\u002F",
+ "children": []
+ }, {
+ "id": "tech",
+ "name": "Tech",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Ftech\u002F",
+ "children": []
+ }, {
+ "id": "shopping",
+ "name": "Shopping",
+ "url": "https:\u002F\u002Fshopping.yahoo.com\u002F",
+ "children": []
+ }]
+ }
+ },
+ "MarketTimeStore": {
+ "error": null,
+ "data": {
+ "message": "U.S. Markets closed",
+ "time": "2016-11-02T03:55:01Z",
+ "status": "YFT_MARKET_CLOSED",
+ "timeZone": "ET"
+ }
+ },
+ "MarketSummaryStore": {
+ "data": [{
+ "symbol": "^GSPC",
+ "name": "S&amp;P 500"
+ }, {
+ "symbol": "^DJI",
+ "name": "Dow 30"
+ }, {
+ "symbol": "^IXIC",
+ "name": "Nasdaq"
+ }, {
+ "symbol": "CL=F",
+ "name": "Crude Oil"
+ }, {
+ "symbol": "GC=F",
+ "name": "Gold"
+ }, {
+ "symbol": "SI=F",
+ "name": "Silver"
+ }, {
+ "symbol": "EURUSD=X",
+ "name": "EUR\u002FUSD"
+ }, {
+ "symbol": "^TNX",
+ "name": "10-Yr Bond"
+ }, {
+ "symbol": "^RUT",
+ "name": "Russell 2000"
+ }, {
+ "symbol": "^VIX",
+ "name": "Vix"
+ }, {
+ "symbol": "GBPUSD=X",
+ "name": "GBP\u002FUSD"
+ }, {
+ "symbol": "JPY=X",
+ "name": "USD\u002FJPY"
+ }, {
+ "symbol": "^FTSE",
+ "name": "FTSE 100"
+ }, {
+ "symbol": "^N225",
+ "name": "Nikkei 225"
+ }]
+ },
+ "UHAccountSwitchStore": {
+ "site": "finance",
+ "crumb": "g%2F3v1TW3wAw",
+ "sendRequest": false,
+ "isEnabled": true
+ },
+ "DiscussionStore": {
+ "data": {
+ "LISTID:JTD$politics": [{
+ "externalLink": null,
+ "title": "Reports detail Trump campaign’s alleged ties to Russia",
+ "summary": "For those few voters who remain undecided a week before the 2016 presidential election, the choice between Donald Trump and Hillary Clinton may come down to which potential new scandal they can look past. The FBI announced on Friday that it had discovered new emails that may be “pertinent” to its investigation",
+ "url": "\u002Fnews\u002Freports-detail-trump-campaigns-alleged-ties-to-russia-190230912.html",
+ "image": "http:\u002F\u002Fl4.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FgXds9rM9Dx.j2Oh_0g36hg--\u002FaD0yMTg5O3c9Mjg4MztzbT0xO2FwcGlkPXl0YWNoeW9u\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-11-01\u002Fd7ce4430-a061-11e6-b4cf-35d5bc59143b_donald-trump-russia-vladimir-putin.jpg",
+ "image_assets": {
+ "width": 2883,
+ "height": 2189,
+ "ratio": 1.3170397441754225,
+ "url": "http:\u002F\u002Fl4.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FgXds9rM9Dx.j2Oh_0g36hg--\u002FaD0yMTg5O3c9Mjg4MztzbT0xO2FwcGlkPXl0YWNoeW9u\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-11-01\u002Fd7ce4430-a061-11e6-b4cf-35d5bc59143b_donald-trump-russia-vladimir-putin.jpg",
+ "tag": "size=original",
+ "image_asset_type": "tile"
+ },
+ "imageSize": {
+ "original": {
+ "width": 2883,
+ "height": 2189,
+ "ratio": 1.3170397441754225,
+ "url": "http:\u002F\u002Fl4.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FgXds9rM9Dx.j2Oh_0g36hg--\u002FaD0yMTg5O3c9Mjg4MztzbT0xO2FwcGlkPXl0YWNoeW9u\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-11-01\u002Fd7ce4430-a061-11e6-b4cf-35d5bc59143b_donald-trump-russia-vladimir-putin.jpg",
+ "tag": "size=original",
+ "image_asset_type": "tile"
+ },
+ "img:45x45": {
+ "width": 45,
+ "height": 45,
+ "ratio": 1,
+ "url": "http:\u002F\u002Fl.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FmXdRAmdG60eLYdESH8w5oA--\u002FZmk9c3RyaW07aD05MDtweW9mZj0wO3E9ODA7dz05MDtzbT0xO2FwcGlkPXl0YWNoeW9u\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-11-01\u002Fd7ce4430-a061-11e6-b4cf-35d5bc59143b_donald-trump-russia-vladimir-putin.jpg",
+ "tag": "img:45x45",
+ "image_asset_type": "tile"
+ }
+ },
+ "provider": "Yahoo News",
+ "type": "article",
+ "uuid": "a869f544-32e5-3503-b9a5-bccebde64f6a",
+ "published": "2016-11-01T19:02:30Z",
+ "entities": [{
+ "term": "WIKIID:Donald_Trump",
+ "label": "Donald Trump",
+ "capAbtScore": "0.997"
+ }, {
+ "term": "WIKIID:Hillary_Clinton",
+ "label": "Hillary Clinton",
+ "capAbtScore": "0.981"
+ }, {
+ "term": "WIKIID:David_Corn",
+ "label": "David Corn",
+ "capAbtScore": "0.903"
+ }, {
+ "term": "WIKIID:Russia",
+ "label": "Russia",
+ "capAbtScore": "0.832"
+ }, {
+ "term": "WIKIID:Donald_Trump_presidential_campaign,_2016",
+ "label": "Trump campaign",
+ "capAbtScore": "0.793"
+ }],
+ "categories": [{
+ "term": "YCT:001000661",
+ "score": "0.973529",
+ "label": "Politics &amp; Government"
+ }, {
+ "term": "YCT:001000681",
+ "score": "0.893443",
+ "label": "Government"
+ }, {
+ "term": "YCT:001001110",
+ "score": "0.74359",
+ "label": "Olympics"
+ }, {
+ "term": "YCT:001000671",
+ "score": "0.644068",
+ "label": "Elections"
+ }],
+ "tags": null,
+ "author": "Dylan Stableford",
+ "total_postive_comments": 267,
+ "total_negative_comments": 2235,
+ "total_neutral_comments": 4622,
+ "topRatedComments": [{
+ "comment": "The New York Times reported that the FBI spent several months over the summer investigating Russia’s potential meddling in the U.S. election and found no direct link to Trump.",
+ "selfURI": "https:\u002F\u002Fcanvass-yql.media.yahoo.com\u002Fapi\u002Fcanvass\u002Fv1\u002Fns\u002Fyahoo-content\u002Fcontexts\u002Fa869f544-32e5-3503-b9a5-bccebde64f6a\u002Fmessages\u002Fb2fa676e-5c10-4ce3-86c5-2c76a9b2509a?region=US&amp;lang=en-US",
+ "thumbsDownCount": "0",
+ "thumbsUpCount": "818",
+ "createTime": "2016-11-01T19:35:48Z",
+ "userProfile": {
+ "imageUrl": "https:\u002F\u002Fs.yimg.com\u002Fwv\u002Fimages\u002Falphatar_100x100_MW_kl.jpg",
+ "nickName": "Mr. Wizard"
+ }
+ }, {
+ "comment": "Dylan Corporate Stableford with a last-ditch hail Mary for Hillary. Trump is a KGB agent. Or maybe he is a Martian. Is he a robot? No, I'd rather believe PC Stableford is a robot.",
+ "selfURI": "https:\u002F\u002Fcanvass-yql.media.yahoo.com\u002Fapi\u002Fcanvass\u002Fv1\u002Fns\u002Fyahoo-content\u002Fcontexts\u002Fa869f544-32e5-3503-b9a5-bccebde64f6a\u002Fmessages\u002Fff3fbc74-0296-46ab-ba07-7b319a9eef4c?region=US&amp;lang=en-US",
+ "thumbsDownCount": "0",
+ "thumbsUpCount": "470",
+ "createTime": "2016-11-01T19:13:28Z",
+ "userProfile": {
+ "imageUrl": "https:\u002F\u002Fs.yimg.com\u002Fdg\u002Fusers\u002F155taHDbfAAEB_gFVvI9oCQ==.large.png",
+ "nickName": "Timothy"
+ }
+ }, {
+ "comment": "One pro hillary or anti trump story after another. When are we going to boycott yahoo?",
+ "selfURI": "https:\u002F\u002Fcanvass-yql.media.yahoo.com\u002Fapi\u002Fcanvass\u002Fv1\u002Fns\u002Fyahoo-content\u002Fcontexts\u002Fa869f544-32e5-3503-b9a5-bccebde64f6a\u002Fmessages\u002Fcf9a14fd-95f5-4a64-9e14-4ab03f9aff29?region=US&amp;lang=en-US",
+ "thumbsDownCount": "0",
+ "thumbsUpCount": "314",
+ "createTime": "2016-11-01T20:29:13Z",
+ "userProfile": {
+ "imageUrl": "https:\u002F\u002Fs.yimg.com\u002Fwv\u002Fimages\u002Falphatar_100x100_D_ad.jpg",
+ "nickName": "dewd"
+ }
+ }],
+ "commentCount": 6192,
+ "id": "a869f544-32e5-3503-b9a5-bccebde64f6a"
+ }, {
+ "externalLink": null,
+ "title": "Why Clinton has stayed mum on corporate tax reform",
+ "summary": "Democratic presidential nominee Hillary Clinton has detailed proposals for all manner of economic stimulus. Conspicuously absent: any kind of plan for corporate tax reform. The US corporate tax rate, at 35%, is one of the highest in the developed world, which creates an incentive for big companies",
+ "url": "\u002Fnews\u002Fwhy-clinton-has-stayed-mum-on-corporate-tax-reform-194841794.html",
+ "image": "http:\u002F\u002Fl1.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FE6QJI01jnHFbHygimJNoQw--\u002FaD0yMTkxO3c9MzI4NjtzbT0xO2FwcGlkPXl0YWNoeW9u\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-11-01\u002F1e565450-a054-11e6-9ad3-8592f1bd5d61_AP_114927716013.jpg",
+ "image_assets": {
+ "width": 3286,
+ "height": 2191,
+ "ratio": 1.4997717937015063,
+ "url": "http:\u002F\u002Fl1.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FE6QJI01jnHFbHygimJNoQw--\u002FaD0yMTkxO3c9MzI4NjtzbT0xO2FwcGlkPXl0YWNoeW9u\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-11-01\u002F1e565450-a054-11e6-9ad3-8592f1bd5d61_AP_114927716013.jpg",
+ "tag": "size=original",
+ "image_asset_type": "embed-video"
+ },
+ "imageSize": {
+ "original": {
+ "width": 3286,
+ "height": 2191,
+ "ratio": 1.4997717937015063,
+ "url": "http:\u002F\u002Fl1.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FE6QJI01jnHFbHygimJNoQw--\u002FaD0yMTkxO3c9MzI4NjtzbT0xO2FwcGlkPXl0YWNoeW9u\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-11-01\u002F1e565450-a054-11e6-9ad3-8592f1bd5d61_AP_114927716013.jpg",
+ "tag": "size=original",
+ "image_asset_type": "embed-video"
+ },
+ "img:45x45": {
+ "width": 45,
+ "height": 45,
+ "ratio": 1,
+ "url": "http:\u002F\u002Fl4.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FYN3CnSbUpnxi8yWiYi1MBw--\u002FZmk9c3RyaW07aD05MDtweW9mZj0wO3E9ODA7dz05MDtzbT0xO2FwcGlkPXl0YWNoeW9u\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-11-01\u002F1e565450-a054-11e6-9ad3-8592f1bd5d61_AP_114927716013.jpg",
+ "tag": "img:45x45",
+ "image_asset_type": "embed-video"
+ }
+ },
+ "provider": "Yahoo Finance",
+ "type": "article",
+ "uuid": "e7487dbb-33a7-3432-a636-e800b94f2d2c",
+ "published": "2016-11-01T19:48:41Z",
+ "entities": [{
+ "term": "WIKIID:Hillary_Clinton",
+ "label": "Hillary Clinton",
+ "capAbtScore": "0.994"
+ }, {
+ "term": "WIKIID:Barack_Obama",
+ "label": "Barack Obama",
+ "capAbtScore": "0.809"
+ }, {
+ "term": "WIKIID:Tax_reform",
+ "label": "tax reform",
+ "capAbtScore": "0.8"
+ }, {
+ "term": "WIKIID:Tax_break",
+ "label": "tax breaks",
+ "capAbtScore": "0.791"
+ }],
+ "categories": [{
+ "term": "YCT:001000661",
+ "score": "0.960526",
+ "label": "Politics &amp; Government"
+ }, {
+ "term": "YCT:001000663",
+ "score": "0.929577",
+ "label": "Budget, Tax &amp; Economy"
+ }],
+ "tags": null,
+ "author": "Rick Newman",
+ "total_postive_comments": 7,
+ "total_negative_comments": 58,
+ "total_neutral_comments": 146,
+ "topRatedComments": [{
+ "comment": "She is bought and paid for by big business.",
+ "selfURI": "https:\u002F\u002Fcanvass-yql.media.yahoo.com\u002Fapi\u002Fcanvass\u002Fv1\u002Fns\u002Fyahoo-content\u002Fcontexts\u002Fe7487dbb-33a7-3432-a636-e800b94f2d2c\u002Fmessages\u002F4bd2659d-c686-44cf-a331-3ec2b876ce08?region=US&amp;lang=en-US",
+ "thumbsDownCount": "0",
+ "thumbsUpCount": "66",
+ "createTime": "2016-11-01T23:37:48Z",
+ "userProfile": {
+ "imageUrl": "https:\u002F\u002Fs.yimg.com\u002Fwv\u002Fimages\u002F40ad396c5c7abfaac674a9104e39cc98_192.jpeg",
+ "nickName": "Steve B"
+ }
+ }, {
+ "comment": "Very little interest from Hillary half wits on any article that deals with tax or finances. They live off the government and have no care or understanding of who pays the bills.",
+ "selfURI": "https:\u002F\u002Fcanvass-yql.media.yahoo.com\u002Fapi\u002Fcanvass\u002Fv1\u002Fns\u002Fyahoo-content\u002Fcontexts\u002Fe7487dbb-33a7-3432-a636-e800b94f2d2c\u002Fmessages\u002Fbcb79d6f-9a3b-48a7-bf42-db6c81bb06a3?region=US&amp;lang=en-US",
+ "thumbsDownCount": "0",
+ "thumbsUpCount": "57",
+ "createTime": "2016-11-01T23:37:05Z",
+ "userProfile": {
+ "imageUrl": "https:\u002F\u002Fs.yimg.com\u002Fwv\u002Fimages\u002Fb6f401fa085ff68a959e85c605623f45_192.jpeg",
+ "nickName": "Chris Tingle"
+ }
+ }, {
+ "comment": "HUMA LAWYERED UP ALREADY, AND HITLARY ALL ALONE.",
+ "selfURI": "https:\u002F\u002Fcanvass-yql.media.yahoo.com\u002Fapi\u002Fcanvass\u002Fv1\u002Fns\u002Fyahoo-content\u002Fcontexts\u002Fe7487dbb-33a7-3432-a636-e800b94f2d2c\u002Fmessages\u002Fe17cc6a2-0d85-4047-83c7-daecdccb09da?region=US&amp;lang=en-US",
+ "thumbsDownCount": "0",
+ "thumbsUpCount": "61",
+ "createTime": "2016-11-01T20:46:41Z",
+ "userProfile": {
+ "imageUrl": "https:\u002F\u002Fs.yimg.com\u002Fwv\u002Fimages\u002Falphatar_100x100_D_ad.jpg",
+ "nickName": "dopie"
+ }
+ }],
+ "commentCount": 172
+ }, {
+ "externalLink": null,
+ "title": "Donald Trump Says Hillary Clinton Is a Bad Role Model for His 10-Year-Old Son Barron",
+ "summary": "Donald Trump claimed Monday that his presidential election opponent, Hillary Clinton, is a poor role model for children — including his youngest son, Barron. The Republican candidate’s statements closely mirror previous accusations made against him by Clinton, 69. In July, Clinton’s campaign released",
+ "url": "\u002Fnews\u002Fdonald-trump-says-hillary-clinton-141402497.html",
+ "image": "http:\u002F\u002Fl2.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002F7AOzxatp2SHD5nlyssP5_Q--\u002FaD0xMzMzO3c9MjAwMDtzbT0xO2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen-US\u002Fhomerun\u002Fpeople_218\u002Fbf95f3d0d67ecbf08d16b722ed2d6791",
+ "image_assets": {
+ "width": 2000,
+ "height": 1333,
+ "ratio": 1.5003750937734435,
+ "url": "http:\u002F\u002Fl2.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002F7AOzxatp2SHD5nlyssP5_Q--\u002FaD0xMzMzO3c9MjAwMDtzbT0xO2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen-US\u002Fhomerun\u002Fpeople_218\u002Fbf95f3d0d67ecbf08d16b722ed2d6791",
+ "tag": "size=original",
+ "image_asset_type": "photo"
+ },
+ "imageSize": {
+ "original": {
+ "width": 2000,
+ "height": 1333,
+ "ratio": 1.5003750937734435,
+ "url": "http:\u002F\u002Fl2.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002F7AOzxatp2SHD5nlyssP5_Q--\u002FaD0xMzMzO3c9MjAwMDtzbT0xO2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen-US\u002Fhomerun\u002Fpeople_218\u002Fbf95f3d0d67ecbf08d16b722ed2d6791",
+ "tag": "size=original",
+ "image_asset_type": "photo"
+ },
+ "img:45x45": {
+ "width": 45,
+ "height": 45,
+ "ratio": 1,
+ "url": "http:\u002F\u002Fl3.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FpuYU1rHhMUsxlGSnoewlJg--\u002FZmk9c3RyaW07aD05MDtweW9mZj0wO3E9ODA7dz05MDtzbT0xO2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen-US\u002Fhomerun\u002Fpeople_218\u002Fbf95f3d0d67ecbf08d16b722ed2d6791",
+ "tag": "img:45x45",
+ "image_asset_type": "photo"
+ }
+ },
+ "provider": "People",
+ "type": "article",
+ "uuid": "d7f8a81f-3f16-30a1-9c08-9f8e82c6d57d",
+ "published": "2016-11-01T14:14:02Z",
+ "entities": {
+ "term": "WIKIID:Hillary_Clinton",
+ "label": "Hillary Clinton",
+ "capAbtScore": "0.997"
+ },
+ "categories": [{
+ "term": "YCT:001000661",
+ "score": "0.953281",
+ "label": "Politics &amp; Government"
+ }, {
+ "term": "YCT:001000671",
+ "score": "0.644068",
+ "label": "Elections"
+ }],
+ "tags": null,
+ "author": "Stephanie Petit",
+ "total_postive_comments": 27,
+ "total_negative_comments": 173,
+ "total_neutral_comments": 287,
+ "topRatedComments": [{
+ "comment": "I'm astonished! Maybe he should worry more about what kind of role model he is for his son!",
+ "selfURI": "https:\u002F\u002Fcanvass-yql.media.yahoo.com\u002Fapi\u002Fcanvass\u002Fv1\u002Fns\u002Fyahoo-content\u002Fcontexts\u002Fd7f8a81f-3f16-30a1-9c08-9f8e82c6d57d\u002Fmessages\u002F7b4291a1-1429-4d9a-bb3f-39dec7559389?region=US&amp;lang=en-US",
+ "thumbsDownCount": "0",
+ "thumbsUpCount": "172",
+ "createTime": "2016-11-01T19:45:55Z",
+ "userProfile": {
+ "imageUrl": "https:\u002F\u002Fgraph.facebook.com\u002F100003113692822\u002Fpicture?height=320&amp;width=213",
+ "nickName": "Susan B"
+ }
+ }, {
+ "comment": "The only bad role model for his son, or sons, is Trump himself...not anyone else.",
+ "selfURI": "https:\u002F\u002Fcanvass-yql.media.yahoo.com\u002Fapi\u002Fcanvass\u002Fv1\u002Fns\u002Fyahoo-content\u002Fcontexts\u002Fd7f8a81f-3f16-30a1-9c08-9f8e82c6d57d\u002Fmessages\u002F6be5854a-4afa-4bce-a127-21c561b1d5d7?region=US&amp;lang=en-US",
+ "thumbsDownCount": "0",
+ "thumbsUpCount": "146",
+ "createTime": "2016-11-01T23:57:05Z",
+ "userProfile": {
+ "imageUrl": "https:\u002F\u002Fs.yimg.com\u002Fwv\u002Fimages\u002Falphatar_100x100_T_ald_2_6-16.jpg",
+ "nickName": "Tawandah"
+ }
+ }, {
+ "comment": "Lol he must be in lala land he has to be the worst role model in America I certainly wouldn't want my kids around him.",
+ "selfURI": "https:\u002F\u002Fcanvass-yql.media.yahoo.com\u002Fapi\u002Fcanvass\u002Fv1\u002Fns\u002Fyahoo-content\u002Fcontexts\u002Fd7f8a81f-3f16-30a1-9c08-9f8e82c6d57d\u002Fmessages\u002Fb62ea5a8-66b3-4b61-b2a9-835b6bd5efdf?region=US&amp;lang=en-US",
+ "thumbsDownCount": "0",
+ "thumbsUpCount": "112",
+ "createTime": "2016-11-02T00:06:49Z",
+ "userProfile": {
+ "imageUrl": "https:\u002F\u002Fs.yimg.com\u002Fdg\u002Fusers\u002F1YVrauq1XAAABtIKcYCY=.large.png",
+ "nickName": "anon"
+ }
+ }],
+ "commentCount": 354
+ }, {
+ "externalLink": null,
+ "title": "Comey letter receives surprise criticism from GOP",
+ "summary": "FBI Director James Comey’s bombshell letter to congressional leaders informing them of newly discovered emails that might be “pertinent” to the bureau’s investigation of Hillary Clinton’s use of a private email server is being criticized by a broad spectrum of politicians on Capitol Hill — including",
+ "url": "\u002Fnews\u002Fcomey-letter-receives-surprise-criticism-from-gop-155951391.html",
+ "image": "http:\u002F\u002Fl1.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FrBaEFDuMYi8oIyhtaDyPIg--\u002FaD00OTY7dz03NDQ7c209MTthcHBpZD15dGFjaHlvbg--\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen\u002Fhomerun\u002Ffeed_manager_auto_publish_494\u002F07528e91971542df0b8468e45cccf720",
+ "image_assets": {
+ "width": 744,
+ "height": 496,
+ "ratio": 1.5,
+ "url": "http:\u002F\u002Fl1.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FrBaEFDuMYi8oIyhtaDyPIg--\u002FaD00OTY7dz03NDQ7c209MTthcHBpZD15dGFjaHlvbg--\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen\u002Fhomerun\u002Ffeed_manager_auto_publish_494\u002F07528e91971542df0b8468e45cccf720",
+ "tag": "size=original",
+ "image_asset_type": "tile"
+ },
+ "imageSize": {
+ "original": {
+ "width": 744,
+ "height": 496,
+ "ratio": 1.5,
+ "url": "http:\u002F\u002Fl1.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FrBaEFDuMYi8oIyhtaDyPIg--\u002FaD00OTY7dz03NDQ7c209MTthcHBpZD15dGFjaHlvbg--\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen\u002Fhomerun\u002Ffeed_manager_auto_publish_494\u002F07528e91971542df0b8468e45cccf720",
+ "tag": "size=original",
+ "image_asset_type": "tile"
+ },
+ "img:45x45": {
+ "width": 45,
+ "height": 45,
+ "ratio": 1,
+ "url": "http:\u002F\u002Fl1.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FkPbxVSz9qWuHkGXTzJqtSA--\u002FZmk9c3RyaW07aD05MDtweW9mZj0wO3E9ODA7dz05MDtzbT0xO2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen\u002Fhomerun\u002Ffeed_manager_auto_publish_494\u002F07528e91971542df0b8468e45cccf720",
+ "tag": "img:45x45",
+ "image_asset_type": "tile"
+ }
+ },
+ "provider": "Yahoo News",
+ "type": "article",
+ "uuid": "a3e411a3-3cf1-37cf-ae4c-f7937e0b72bb",
+ "published": "2016-11-01T15:59:51Z",
+ "entities": [{
+ "term": "WIKIID:Hillary_Clinton",
+ "label": "Hillary Clinton",
+ "capAbtScore": "0.98"
+ }, {
+ "term": "WIKIID:Federal_Bureau_of_Investigation",
+ "label": "FBI",
+ "capAbtScore": "0.915"
+ }, {
+ "term": "WIKIID:Chuck_Grassley",
+ "label": "Chuck Grassley",
+ "capAbtScore": "0.842"
+ }, {
+ "term": "WIKIID:Hillary_Clinton_presidential_campaign,_2016",
+ "label": "Clinton campaign",
+ "capAbtScore": "0.792"
+ }, {
+ "term": "WIKIID:James_Comey",
+ "label": "James Comey",
+ "capAbtScore": "0.763"
+ }],
+ "categories": [{
+ "term": "YCT:001000661",
+ "score": "0.991329",
+ "label": "Politics &amp; Government"
+ }, {
+ "term": "YCT:001000681",
+ "score": "0.911504",
+ "label": "Government"
+ }, {
+ "term": "YCT:001000682",
+ "score": "0.897436",
+ "label": "Government Agencies"
+ }],
+ "tags": null,
+ "author": "Dylan Stableford",
+ "total_postive_comments": 86,
+ "total_negative_comments": 892,
+ "total_neutral_comments": 1971,
+ "topRatedComments": [{
+ "comment": "I don't buy it for a minute that trump voters are angry at government and fed up with the system. They and most republicans are challenged by an America that is becoming more socially open, more environmentally conscious, and more ethnically diverse. They are squirming about it and they are in-denial that we're coming off a two term democratic, African American president's administration and things are better now than Bush left it. The GOP has no legs to stand on and nether does Trump.",
+ "selfURI": "https:\u002F\u002Fcanvass-yql.media.yahoo.com\u002Fapi\u002Fcanvass\u002Fv1\u002Fns\u002Fyahoo-content\u002Fcontexts\u002Fa3e411a3-3cf1-37cf-ae4c-f7937e0b72bb\u002Fmessages\u002Fc3f4d695-2f04-4653-99f0-717607b1bae2?region=US&amp;lang=en-US",
+ "thumbsDownCount": "0",
+ "thumbsUpCount": "389",
+ "createTime": "2016-11-01T16:58:46Z",
+ "userProfile": {
+ "imageUrl": "https:\u002F\u002Fs.yimg.com\u002Fwv\u002Fimages\u002F3c2cb24d3677e3e4ce07449e1c0a8cde_192.png",
+ "nickName": "pd"
+ }
+ }, {
+ "comment": "Comey is conducting an investigation. How could he (or anyone) provide details until he has facts.",
+ "selfURI": "https:\u002F\u002Fcanvass-yql.media.yahoo.com\u002Fapi\u002Fcanvass\u002Fv1\u002Fns\u002Fyahoo-content\u002Fcontexts\u002Fa3e411a3-3cf1-37cf-ae4c-f7937e0b72bb\u002Fmessages\u002Fe7a043b6-e3e2-4542-b7fe-f1975f215123?region=US&amp;lang=en-US",
+ "thumbsDownCount": "0",
+ "thumbsUpCount": "319",
+ "createTime": "2016-11-01T16:55:14Z",
+ "userProfile": {
+ "imageUrl": "https:\u002F\u002Fs.yimg.com\u002Fwv\u002Fimages\u002Falphatar_100x100_L_ad.jpg",
+ "nickName": "LeBo"
+ }
+ }, {
+ "comment": "If he didn't send the letter and go public it would appear as though he was covering for Clinton.",
+ "selfURI": "https:\u002F\u002Fcanvass-yql.media.yahoo.com\u002Fapi\u002Fcanvass\u002Fv1\u002Fns\u002Fyahoo-content\u002Fcontexts\u002Fa3e411a3-3cf1-37cf-ae4c-f7937e0b72bb\u002Fmessages\u002F6d17729f-575b-4f11-8ed2-4560a96a35a7?region=US&amp;lang=en-US",
+ "thumbsDownCount": "0",
+ "thumbsUpCount": "268",
+ "createTime": "2016-11-01T16:46:35Z",
+ "userProfile": {
+ "imageUrl": "https:\u002F\u002Fs.yimg.com\u002Fwv\u002Fimages\u002Falphatar_100x100_D_ad.jpg",
+ "nickName": "Drew"
+ }
+ }],
+ "commentCount": 1898
+ }, {
+ "externalLink": null,
+ "title": "Megyn Kelly Rips Donna Brazile: ‘Can You Imagine If This Were a Republican?’ (Video)",
+ "summary": "Megyn Kelly went after DNC chair Donna Brazile on Monday night after another batch of leaked emails appear to show the former CNN contributor providing the Clinton campaign with debate and town hall questions in advance. “Can you imagine if this were a Republican had been fed a question by Fox News,",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Ftv\u002Fmegyn-kelly-rips-donna-brazile-imagine-were-republican-141029136.html",
+ "image": "http:\u002F\u002Fl1.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FOiXuuKB3I73dVXxX0Ht40A--\u002FaD00MTI7dz02MTg7c209MTthcHBpZD15dGFjaHlvbg--\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen_US\u002FNews\u002FTheWrap\u002FMegyn_Kelly_Rips_Donna_Brazile-1dbf6f34da7037a514518abff7b16c36",
+ "image_assets": {
+ "width": 618,
+ "height": 412,
+ "ratio": 1.5,
+ "url": "http:\u002F\u002Fl1.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FOiXuuKB3I73dVXxX0Ht40A--\u002FaD00MTI7dz02MTg7c209MTthcHBpZD15dGFjaHlvbg--\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen_US\u002FNews\u002FTheWrap\u002FMegyn_Kelly_Rips_Donna_Brazile-1dbf6f34da7037a514518abff7b16c36",
+ "tag": "size=original",
+ "image_asset_type": "photo"
+ },
+ "imageSize": {
+ "original": {
+ "width": 618,
+ "height": 412,
+ "ratio": 1.5,
+ "url": "http:\u002F\u002Fl1.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FOiXuuKB3I73dVXxX0Ht40A--\u002FaD00MTI7dz02MTg7c209MTthcHBpZD15dGFjaHlvbg--\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen_US\u002FNews\u002FTheWrap\u002FMegyn_Kelly_Rips_Donna_Brazile-1dbf6f34da7037a514518abff7b16c36",
+ "tag": "size=original",
+ "image_asset_type": "photo"
+ },
+ "img:45x45": {
+ "width": 45,
+ "height": 45,
+ "ratio": 1,
+ "url": "http:\u002F\u002Fl3.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002F0151lPNJDus2WpMXtlYSyA--\u002FZmk9c3RyaW07aD05MDtweW9mZj0wO3E9ODA7dz05MDtzbT0xO2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen_US\u002FNews\u002FTheWrap\u002FMegyn_Kelly_Rips_Donna_Brazile-1dbf6f34da7037a514518abff7b16c36",
+ "tag": "img:45x45",
+ "image_asset_type": "photo"
+ }
+ },
+ "provider": "The Wrap",
+ "type": "article",
+ "uuid": "3dceeaeb-6499-3a42-808b-796f29237a8f",
+ "published": "2016-11-01T14:10:29Z",
+ "entities": [{
+ "term": "WIKIID:Megyn_Kelly",
+ "label": "Megyn Kelly",
+ "capAbtScore": "0.997"
+ }, {
+ "term": "WIKIID:Donna_Brazile",
+ "label": "Donna Brazile",
+ "capAbtScore": "0.992"
+ }, {
+ "term": "WIKIID:Bernie_Sanders",
+ "label": "Bernie Sanders",
+ "capAbtScore": "0.877"
+ }, {
+ "term": "WIKIID:Hillary_Clinton_presidential_campaign,_2016",
+ "label": "Clinton campaign",
+ "capAbtScore": "0.809"
+ }],
+ "categories": {
+ "term": "YCT:001000661",
+ "score": "0.92",
+ "label": "Politics &amp; Government"
+ },
+ "tags": null,
+ "author": "Brian Flood",
+ "total_postive_comments": 4,
+ "total_negative_comments": 34,
+ "total_neutral_comments": 59,
+ "topRatedComments": [{
+ "comment": "SHE IS A CRIMINAL JUST LIKE KILLARY, LOCK BOTH OF THEM UP!",
+ "selfURI": "https:\u002F\u002Fcanvass-yql.media.yahoo.com\u002Fapi\u002Fcanvass\u002Fv1\u002Fns\u002Fyahoo-content\u002Fcontexts\u002F3dceeaeb-6499-3a42-808b-796f29237a8f\u002Fmessages\u002F3c21cf02-f29e-425b-bfc8-27e412a5f45a?region=US&amp;lang=en-US",
+ "thumbsDownCount": "0",
+ "thumbsUpCount": "43",
+ "createTime": "2016-11-02T01:46:54Z",
+ "userProfile": {
+ "imageUrl": "https:\u002F\u002Fs.yimg.com\u002Fdg\u002Fusers\u002F1Dnxb3makAAEC-IFDNI3_c5IA.large.png",
+ "nickName": "lorane M"
+ }
+ }, {
+ "comment": "The Democratic National Committee conspired to keep Bernie from winning. Their super delegate system is a form of voter disenfranchisement allowing big league higher tier party members to throw massive weight behind a candidate and ensure their (her) victory in the primaries. It looks nothing like democracy is suppose to look. So the discovery that they also cheat and lie to give questions ahead of time during debates is nothing next to their entire system and past antics.",
+ "selfURI": "https:\u002F\u002Fcanvass-yql.media.yahoo.com\u002Fapi\u002Fcanvass\u002Fv1\u002Fns\u002Fyahoo-content\u002Fcontexts\u002F3dceeaeb-6499-3a42-808b-796f29237a8f\u002Fmessages\u002F022c754b-cb17-4ec9-9dac-e0e966dd8e0f?region=US&amp;lang=en-US",
+ "thumbsDownCount": "0",
+ "thumbsUpCount": "37",
+ "createTime": "2016-11-02T01:35:43Z",
+ "userProfile": {
+ "imageUrl": "https:\u002F\u002Fs.yimg.com\u002Fwv\u002Fimages\u002Falphatar_100x100_M_ald.jpg",
+ "nickName": "Morgan"
+ }
+ }, {
+ "comment": "Ya if this was all the News Outlets &amp; she was Republican. She be tried, convicted &amp; hung.",
+ "selfURI": "https:\u002F\u002Fcanvass-yql.media.yahoo.com\u002Fapi\u002Fcanvass\u002Fv1\u002Fns\u002Fyahoo-content\u002Fcontexts\u002F3dceeaeb-6499-3a42-808b-796f29237a8f\u002Fmessages\u002F3ecb39ca-4f66-4101-a48e-8bdef1bf2257?region=US&amp;lang=en-US",
+ "thumbsDownCount": "0",
+ "thumbsUpCount": "36",
+ "createTime": "2016-11-02T02:04:02Z",
+ "userProfile": {
+ "imageUrl": "https:\u002F\u002Fs.yimg.com\u002Fdg\u002Fusers\u002F1nihqSO4KAAEC_IFHtCw=.large.png",
+ "nickName": "Rick"
+ }
+ }],
+ "commentCount": 70
+ }]
+ }
+ },
+ "MobileHeaderStore": {
+ "navTitle": "finance",
+ "useNavTitle": false
+ }
+ }
+ },
+ "plugins": {
+ "BundlePlugin": {
+ "loadedBundles": ["tdv2-applet-canvass", "react-finance", "tdv2-applet-mtfpopup", "react-lightbox", "tdv2-applet-breakingnews", "tdv2-applet-slideshow", "tdv2-applet-content-canvas", "tdv2-applet-swisschamp", "td-ads", "tdv2-applet-stream", "tdv2-applet-footer", "tdv2-applet-uh", "tdv2-applet-discussion", "tdv2-applet-account-switch", "react-tumblr-tile", "tdv2-applet-follow", "td-app-yahoo"],
+ "meta": {
+ "react-finance": {
+ "dependencies": ["tdv2-applet-uh"]
+ },
+ "react-sports.nav": {
+ "langBundle": "react-sports"
+ },
+ "react-sports.y20": {
+ "langBundle": "react-sports"
+ },
+ "tdv2-applet-content-canvas": {
+ "dependencies": ["tdv2-applet-canvass", "tdv2-applet-livecoverage", "tdv2-applet-slideshow", "tdv2-applet-video-modal"]
+ },
+ "tdv2-applet-stream": {
+ "dependencies": ["react-tumblr-tile", "tdv2-applet-follow"]
+ },
+ "tdv2-applet-stream-hero": {
+ "dependencies": ["td-ads", "tdv2-applet-follow", "tdv2-applet-video-modal"]
+ },
+ "tdv2-applet-uh": {
+ "dependencies": ["tdv2-applet-trending", "tdv2-applet-account-switch"]
+ }
+ },
+ "reqContext": {
+ "authed": "0",
+ "ynet": "0",
+ "ssl": "0",
+ "spdy": "0",
+ "ytee": "0",
+ "mode": "normal",
+ "site": "finance",
+ "region": "US",
+ "lang": "en-US",
+ "bucket": "finance-US-en-US-def",
+ "colo": "gq1",
+ "device": "desktop",
+ "bot": "0",
+ "environment": "prod",
+ "intl": "us",
+ "partner": "none",
+ "tz": "Asia\u002FTaipei",
+ "feature": ["canvass", "newContentAttribution"]
+ },
+ "loadChildBundles": true
+ },
+ "DaggrPlugin": {
+ "daggr": {
+ "requests": {
+ "StreamService:7487a38421fe819c05b9ce6bb5bcce52": {
+ "resource": "StreamService",
+ "id": "StreamService:7487a38421fe819c05b9ce6bb5bcce52",
+ "error": null,
+ "requesters": [{
+ "id": "Col2-4-HeightContainer-0-Stream",
+ "dataKey": "streamItems"
+ }]
+ }
+ }
+ }
+ },
+ "DevToolsPlugin": {
+ "actionHistory": [],
+ "enableDebug": false
+ },
+ "FetchrPlugin": {
+ "xhrContext": {
+ "feature": "canvass,newContentAttribution",
+ "bkt": "finance-US-en-US-def",
+ "crumb": "MjDCwQ.gH8Y",
+ "device": "desktop",
+ "intl": "us",
+ "lang": "en-US",
+ "partner": "none",
+ "region": "US",
+ "site": "finance",
+ "tz": "Asia\u002FTaipei",
+ "ver": "2.0.2425002"
+ },
+ "xhrPath": "\u002F_td\u002Fapi\u002Fresource",
+ "xhrTimeout": 3000,
+ "corsPath": null
+ },
+ "LoggerPlugin": {
+ "logLevel": 3
+ },
+ "RouterPlugin": {
+ "appLevelEnable": true
+ },
+ "SessionPlugin": {
+ "bucketLogString": "finance-US-en-US-def",
+ "bucketMetaData": {},
+ "dimensions": {
+ "authed": "0",
+ "ynet": "0",
+ "ssl": "0",
+ "spdy": "0",
+ "ytee": "0",
+ "mode": "normal",
+ "site": "finance",
+ "region": "US",
+ "lang": "en-US",
+ "bucket": "finance-US-en-US-def",
+ "colo": "gq1",
+ "device": "desktop",
+ "bot": "0",
+ "environment": "prod",
+ "intl": "us",
+ "partner": "none",
+ "tz": "Asia\u002FTaipei",
+ "feature": ["canvass", "newContentAttribution"]
+ },
+ "enableSpdyAssetUrls": true,
+ "enableSpdyAssetUrlsFlag": true,
+ "experimentIds": {},
+ "host": "finance.yahoo.com",
+ "isBot": false,
+ "isCorpUser": false,
+ "isDevInfo": false,
+ "isYnet": false,
+ "pathPrefix": "\u002F_td",
+ "protocol": "http",
+ "query": {
+ "m_mode": "multipart",
+ "_appName": "td-app-yahoo",
+ "_appVer": "2.0.2425002",
+ "_esiAuthed": "0",
+ "_esiBucket": "finance-US-en-US-def",
+ "_esiInclude": "1"
+ },
+ "rid": "2n23a79c1iosl",
+ "woe": {
+ "woeid_country": "23424971",
+ "country": "TW",
+ "confidence_country": "99"
+ },
+ "sampleIds": {},
+ "spdyPathPrefix": "\u002Fsy",
+ "userAgent": {
+ "browserName": "firefox",
+ "browserVersion": "52.0",
+ "osName": "mac os x",
+ "osVersion": "10.11"
+ }
+ }
+ }
+ },
+ "plugins": {
+ "BundlePlugin": {
+ "mainBundle": "td-app-yahoo"
+ },
+ "ResourcePlugin": {
+ "registry": {
+ "configs": {
+ "td-app-yahoo": {
+ "ads": 1,
+ "app": 1,
+ "assets": 1,
+ "dimensions": 1,
+ "feature": 1,
+ "feedback": 1,
+ "i13n": 1,
+ "prefetch": 1,
+ "rss": 1,
+ "sections": 1
+ },
+ "react-avatar": {
+ "defaultColors": 1
+ },
+ "react-finance": {
+ "TopNavMap": 1,
+ "app": 1,
+ "atomize": 1,
+ "componentFooter": 1,
+ "componentMarketSummary": 1,
+ "componentSignInBtn": 1,
+ "componentTopNav": 1,
+ "cookies": 1,
+ "defaultViews": 1,
+ "i13n": 1,
+ "industries": 1,
+ "listConfig": 1,
+ "regal": 1,
+ "search": 1,
+ "table": 1,
+ "tableColumns": 1,
+ "tableViews": 1,
+ "topnav-ca-en-CA": 1,
+ "topnav-de-de-DE": 1,
+ "topnav-gb-en-GB": 1,
+ "yfinlists": 1,
+ "styles\u002Fbtn": 1,
+ "styles\u002Fdropbox": 1,
+ "styles\u002Finput": 1,
+ "styles\u002FreactAutoCompleteResults": 1,
+ "styles\u002Ftable": 1
+ },
+ "react-sports": {
+ "atomic-classsets": 1,
+ "componentAdBlockPromo": 1,
+ "componentBoxscore": 1,
+ "componentDraft": 1,
+ "componentDraftProspects": 1,
+ "componentDraftResults": 1,
+ "componentFantasy": 1,
+ "componentGolfTours": 1,
+ "componentGraphStats": 1,
+ "componentInterstitial": 1,
+ "componentLeaderboard": 1,
+ "componentLeaguePlayers": 1,
+ "componentLeagueRankings": 1,
+ "componentLeagueStandings": 1,
+ "componentLeagueTeams": 1,
+ "componentLeagueTracks": 1,
+ "componentLivelook": 1,
+ "componentMatchHeader": 1,
+ "componentOdds": 1,
+ "componentPlayer": 1,
+ "componentPromo": 1,
+ "componentScoreboard": 1,
+ "componentTeam": 1,
+ "componentTopPlayer": 1,
+ "intlFormats": 1
+ },
+ "react-tile": {
+ "config": 1
+ },
+ "react-video": {
+ "video-reel": 1
+ },
+ "react-weather": {
+ "componentWeather": 1,
+ "componentWeatherAppPromote": 1,
+ "componentWeatherChannelPromote": 1,
+ "componentWeatherStaticList": 1
+ },
+ "td-service-canvas": {
+ "config": 1
+ },
+ "td-service-canvass": {
+ "api": 1
+ },
+ "td-service-digest": {
+ "config": 1
+ },
+ "td-service-location": {
+ "config": 1
+ },
+ "td-stores-location": {
+ "config": 1
+ },
+ "td-stores-sports": {
+ "resources": 1,
+ "statcloud\u002Fnormalize-schema-statcloud": 1,
+ "statcloud\u002Fstatcloud": 1,
+ "sierra\u002Fnormalize-schema-sierra": 1,
+ "sierra\u002Fsierra": 1,
+ "olympics\u002Folympics": 1,
+ "graphite\u002Fgraphite": 1,
+ "fantasy\u002Ffantasy": 1,
+ "dailyfantasy\u002Fdailyfantasy": 1,
+ "dailyfantasy\u002Fnormalize-schema-dailyfantasy": 1
+ },
+ "tdv2-applet-account-switch": {
+ "componentAccountSwitch": 1,
+ "constants": 1,
+ "i13n": 1
+ },
+ "tdv2-applet-activitylist": {
+ "activitylist": 1
+ },
+ "tdv2-applet-breakingnews": {
+ "componentTDV2BreakingNews": 1
+ },
+ "tdv2-applet-bubble": {
+ "componentBubble": 1
+ },
+ "tdv2-applet-canvass": {
+ "atomize": 1,
+ "componentComments": 1,
+ "constants": 1
+ },
+ "tdv2-applet-cardstrip": {
+ "config": 1
+ },
+ "tdv2-applet-channels": {
+ "componentChannels": 1,
+ "thumbnails": 1
+ },
+ "tdv2-applet-comments": {
+ "atomic-helper": 1,
+ "componentComments": 1
+ },
+ "tdv2-applet-content-canvas": {
+ "componentContentCanvas": 1,
+ "componentOneIdButtons": 1,
+ "componentStorylineItem": 1,
+ "pages": 1,
+ "routes": 1
+ },
+ "tdv2-applet-delegate-tracker": {
+ "componentDelegateTracker": 1,
+ "config": 1
+ },
+ "tdv2-applet-discussion": {
+ "componentDiscussionCarousel": 1,
+ "componentDiscussionList": 1
+ },
+ "tdv2-applet-featurebar": {
+ "componentFeatureBar": 1
+ },
+ "tdv2-applet-finance-virgo": {
+ "componentControlSet": 1,
+ "legacyRangeMap": 1
+ },
+ "tdv2-applet-follow": {
+ "componentFollow": 1,
+ "regal": 1
+ },
+ "tdv2-applet-followauthor": {
+ "componentFollowAuthor": 1,
+ "componentFollowHeadlines": 1
+ },
+ "tdv2-applet-footer": {
+ "componentFooter": 1
+ },
+ "tdv2-applet-horoscope": {
+ "componentHoroscope": 1,
+ "config": 1
+ },
+ "tdv2-applet-livecoverage": {
+ "componentLiveCoverage": 1
+ },
+ "tdv2-applet-map": {
+ "componentElectionMap": 1,
+ "config": 1
+ },
+ "tdv2-applet-mtfpopup": {
+ "config": 1
+ },
+ "tdv2-applet-nagbar": {
+ "componentNagbar": 1
+ },
+ "tdv2-applet-navrail": {
+ "componentNavLite": 1,
+ "componentNavrail": 1,
+ "nav\u002Findex": 1,
+ "nav\u002Fmaster": 1,
+ "nav\u002Fsite\u002Findex": 1,
+ "nav\u002Fpartner\u002Findex": 1,
+ "nav\u002Flang\u002Findex": 1,
+ "nav\u002Fdevice\u002Findex": 1
+ },
+ "tdv2-applet-rawads": {
+ "componentRawAds": 1
+ },
+ "tdv2-applet-search-input": {
+ "searchassist": 1
+ },
+ "tdv2-applet-showtimes": {
+ "componentShowtimes": 1
+ },
+ "tdv2-applet-slideshow": {
+ "componentHeroSlideshow": 1
+ },
+ "tdv2-applet-stream": {
+ "componentStream": 1
+ },
+ "tdv2-applet-stream-hero": {
+ "componentStreamHero": 1,
+ "componentStreamHeroCarousel": 1,
+ "componentWideHero": 1
+ },
+ "tdv2-applet-style": {
+ "componentStyleCover": 1,
+ "config": 1
+ },
+ "tdv2-applet-trending": {
+ "componentTrending": 1,
+ "config": 1
+ },
+ "tdv2-applet-uh": {
+ "componentHeader": 1,
+ "searchOrigins": 1,
+ "components\u002Findex": 1,
+ "components\u002Fmaster": 1,
+ "components\u002Fsite\u002Findex": 1,
+ "components\u002Fpartner\u002Findex": 1,
+ "components\u002Flang\u002Findex": 1,
+ "components\u002Fenvironment\u002Findex": 1,
+ "components\u002Fdevice\u002Findex": 1
+ },
+ "tdv2-applet-video-lightbox": {
+ "componentContentLightboxVideo": 1,
+ "componentVideoLightbox": 1
+ },
+ "tdv2-applet-video-modal": {
+ "componentVideoModal": 1,
+ "keyboard-shortcuts": 1,
+ "modalShareButtons": 1,
+ "thumbnails-cover": 1,
+ "thumbnails": 1,
+ "videoModalExamples": 1
+ },
+ "tdv2-service-ads": {
+ "config": 1
+ },
+ "tdv2-service-comments": {
+ "config": 1,
+ "developers": 1,
+ "editors": 1,
+ "powerUsers": 1
+ },
+ "video-service": {
+ "channel_service_config": 1
+ }
+ },
+ "lang": {
+ "td-app-yahoo": {
+ "strings": 1
+ },
+ "react-finance": {
+ "strings": 1
+ },
+ "react-horoscope": {
+ "strings": 1
+ },
+ "react-location-widget": {
+ "strings": 1
+ },
+ "react-showtimes": {
+ "strings": 1
+ },
+ "react-sports": {
+ "strings": 1
+ },
+ "react-tumblr-tile": {
+ "strings": 1
+ },
+ "react-weather": {
+ "strings": 1
+ },
+ "td-ads": {
+ "strings": 1
+ },
+ "tdv2-applet-account-switch": {
+ "strings": 1
+ },
+ "tdv2-applet-activitylist": {
+ "strings": 1
+ },
+ "tdv2-applet-breakingnews": {
+ "strings": 1
+ },
+ "tdv2-applet-bubble": {
+ "strings": 1
+ },
+ "tdv2-applet-canvass": {
+ "strings": 1
+ },
+ "tdv2-applet-cardstrip": {
+ "strings": 1
+ },
+ "tdv2-applet-channels": {
+ "strings": 1
+ },
+ "tdv2-applet-comments": {
+ "strings": 1
+ },
+ "tdv2-applet-content-canvas": {
+ "strings": 1
+ },
+ "tdv2-applet-delegate-tracker": {
+ "strings": 1
+ },
+ "tdv2-applet-discussion": {
+ "strings": 1
+ },
+ "tdv2-applet-featurebar": {
+ "strings": 1
+ },
+ "tdv2-applet-finance-virgo": {
+ "strings": 1
+ },
+ "tdv2-applet-follow": {
+ "strings": 1
+ },
+ "tdv2-applet-followauthor": {
+ "strings": 1
+ },
+ "tdv2-applet-footer": {
+ "strings": 1
+ },
+ "tdv2-applet-horoscope": {
+ "strings": 1
+ },
+ "tdv2-applet-livecoverage": {
+ "strings": 1
+ },
+ "tdv2-applet-map": {
+ "strings": 1
+ },
+ "tdv2-applet-mtfpopup": {
+ "strings": 1
+ },
+ "tdv2-applet-nagbar": {
+ "strings": 1
+ },
+ "tdv2-applet-navrail": {
+ "strings": 1
+ },
+ "tdv2-applet-rawads": {
+ "strings": 1
+ },
+ "tdv2-applet-search-input": {
+ "strings": 1
+ },
+ "tdv2-applet-showtimes": {
+ "strings": 1
+ },
+ "tdv2-applet-slideshow": {
+ "strings": 1
+ },
+ "tdv2-applet-stream": {
+ "strings": 1
+ },
+ "tdv2-applet-stream-hero": {
+ "strings": 1
+ },
+ "tdv2-applet-style": {
+ "strings": 1
+ },
+ "tdv2-applet-swisschamp": {
+ "strings": 1
+ },
+ "tdv2-applet-trending": {
+ "strings": 1
+ },
+ "tdv2-applet-tumblr-actions": {
+ "strings": 1
+ },
+ "tdv2-applet-uh": {
+ "strings": 1
+ },
+ "tdv2-applet-video-lightbox": {
+ "strings": 1
+ },
+ "tdv2-applet-video-modal": {
+ "strings": 1
+ },
+ "yahoodotcom-layout": {
+ "strings": 1
+ }
+ }
+ },
+ "options": {
+ "defaultBundle": "td-app-yahoo"
+ }
+ }
+ }
+ };
+ }(this));
+ </script>
+ <div>
+ <script type="text/javascript">
+ window._loadEvt = false;
+ window._adPerfData = [];
+ window._adPosMsg = [];
+ window._perfMark = function _perfMark(name) {
+ if (window.performance & amp; & amp; window.performance.mark) {
+ try {
+ if (window.performance.getEntriesByName("NAVIGATE_START") & amp; & amp; window.performance.getEntriesByName("NAVIGATE_START")[0]) {
+ name = "CL_" + name;
+ }
+ window.performance.mark(name);
+ } catch (e) {
+ console.warn(name + ' could not be marked:', e);
+ }
+ };
+ };
+ window._perfMeasure = function _perfMeasure(name, start, end) {
+ if (window.performance & amp; & amp; window.performance.measure) {
+ try {
+ if (window.performance.getEntriesByName("NAVIGATE_START") & amp; & amp; window.performance.getEntriesByName("NAVIGATE_START")[0]) {
+ start = "CL_" + start;
+ end = "CL_" + end;
+ name = "CL_" + name;
+ }
+ window.performance.measure(name, start, end);
+ } catch (e) {
+ console.warn(name + ' could not be added:', e);
+ }
+ };
+ };
+ window._pushAdPerfMetric = function _pushAdPerfMetric(key) {
+ if (window.performance & amp; & amp; window.performance.now) {
+ _adPerfData.push([key, Math.round(window.performance.now())]);
+ }
+ };
+ window._fireAdPerfBeacon = function _fireAdPerfBeacon(eventName) {
+ try {
+ if (window & amp; & amp; window.rapidInstance & amp; & amp; window.performance) {
+ var navClickMark = window.performance.getEntriesByName('NAVIGATE_START') & amp; & amp;
+ window.performance.getEntriesByName('NAVIGATE_START').pop();
+ var navClickTime = navClickMark & amp; & amp;
+ navClickMark.startTime || 0;
+ var userTime = {};
+ window.performance.getEntries().forEach(function forEachPerfTime(item) {
+ if (item.name.search('DARLA_') & gt; - 1) {
+ if (item.entryType === "mark") {
+ userTime[item.name] = Math.round(item.startTime) - navClickTime;
+ window.performance.clearMarks(item.name);
+ } else if (item.entryType === "measure") {
+ userTime[item.name] = Math.round(item.duration);
+ window.performance.clearMeasures(item.name);
+ }
+ }
+ });
+ var perfData = {
+ perf_usertime: {
+ utm: userTime
+ }
+ };
+ window.rapidInstance.beaconPerformanceData(perfData);
+ }
+ } catch (e) {
+ console.warn('Could not send the beacon:', e);
+ }
+ };
+ window.DARLA_CONFIG = {
+ "autoRotation": 10000,
+ "events": {
+ "AUTO": {
+ "name": "AUTO",
+ "autoStart": 1,
+ "autoMax": 25,
+ "autoRT": 10000,
+ "autoIV": 1,
+ "autoDDG": 1,
+ "ps": {
+ "LDRB": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LDRB-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LDRB2-1": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LDRB2-2": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC-1": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC2": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC2-1": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-4": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-5": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-6": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-7": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-8": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC3": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC3-4": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-5": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-6": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-7": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-8": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC4": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "MAST": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ },
+ "MAST-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ },
+ "MON-1": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "SPL": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ },
+ "SPL-2": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ },
+ "SPL2": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ }
+ },
+ "sa": "ticker=\"SNE\" wiki_topics=\"PlayStation_VR;Rhythm_game;Launch_game\" ctopid=\"1542500;1480989;1482489;1489489;1577000;12698500;1035500;1878000;10610989;2299500;2334500\" hashtag=\"playstation-vr;sony-playstation-vr;sony-psvr;psvr;playstation-4;playstation;ps4;sony;gaming;games;video-games;featured;%24sne;1542500;1480989;1482489;1489489;1577000;12698500;1035500;1878000;10610989;2299500;2334500\" rs=\"lmsid:a0Vd000000AE7lXEAT;revsp:407fd5b2-47b4-4c00-a1d0-421cf33bb721;lpstaid:80b35014-fba3-377e-adc5-47fb44f61fa7;pct:story\" megamodal=true Y-BUCKET=\"finance-US-en-US-def\"",
+ "ult": {
+ "pg": {
+ "property": "finance_en-US",
+ "test": "finance-US-en-US-def"
+ }
+ }
+ },
+ "DEFAULT": {
+ "clw": {
+ "LREC": {
+ "blocked_by": "MON-1"
+ },
+ "MON-1": {
+ "blocked_by": "LREC"
+ },
+ "MAST-9": {
+ "blocked_by": "SPL,LDRB-9"
+ },
+ "MAST": {
+ "blocked_by": "SPL,LDRB"
+ },
+ "LDRB": {
+ "blocked_by": "MAST,SPL"
+ },
+ "LDRB-9": {
+ "blocked_by": "MAST-9,SPL"
+ },
+ "SPL": {
+ "blocked_by": "MAST,LDRB"
+ }
+ },
+ "sp": "1183300100",
+ "ult": {
+ "pg": {
+ "property": "finance_en-US",
+ "test": "finance-US-en-US-def"
+ }
+ }
+ },
+ "adFetch": {
+ "ps": "BTN,BTN-1,BTN-2,BTN-3,MAST,LDRB,SPL,LREC,LREC2,LREC3,FOOT,FSRVY",
+ "sp": "1183300100",
+ "sa": "ticker=\"SNE\" wiki_topics=\"PlayStation_VR;Rhythm_game;Launch_game\" ctopid=\"1542500;1480989;1482489;1489489;1577000;12698500;1035500;1878000;10610989;2299500;2334500\" hashtag=\"playstation-vr;sony-playstation-vr;sony-psvr;psvr;playstation-4;playstation;ps4;sony;gaming;games;video-games;featured;%24sne;1542500;1480989;1482489;1489489;1577000;12698500;1035500;1878000;10610989;2299500;2334500\" rs=\"lmsid:a0Vd000000AE7lXEAT;revsp:407fd5b2-47b4-4c00-a1d0-421cf33bb721;lpstaid:80b35014-fba3-377e-adc5-47fb44f61fa7;pct:story\" megamodal=true Y-BUCKET=\"finance-US-en-US-def\"",
+ "optionalps": "",
+ "site": "finance",
+ "ssl": 1,
+ "secure": 1,
+ "ult": {
+ "pg": {
+ "property": "finance_en-US",
+ "test": "finance-US-en-US-def"
+ }
+ }
+ },
+ "TD_AUTO": {
+ "ps": "DEFAULT,BTN,BTN-1,BTN-2,BTN-3,FOOT,FOOT9,FSRVY,LREC,LREC-1,LREC-2,LREC-9,LREC2-1,LREC2-2,LREC2-4,LREC2-5,LREC2-6,LREC2-7,LREC2-8,LREC2-9,LREC2,LREC3,LREC3-1,LREC3-4,LREC3-5,LREC3-6,LREC3-7,LREC3-8,LREC3-9,LREC4,LDRB,LDRB-1,LDRB-9,LDRB2-1,LDRB2-2,LDRP,MAST,MAST-9,MFPAD,MON-1,SPL,SPL-2,SPL2,SPRZ,SPON,TXTL,WFPAD",
+ "ult": {
+ "pg": {
+ "property": "finance_en-US",
+ "test": "finance-US-en-US-def"
+ }
+ }
+ }
+ },
+ "positions": {
+ "DEFAULT": {
+ "meta": {
+ "stack": "ydc"
+ },
+ "clean": "defaultcleanDEFAULT",
+ "dest": "defaultdestDEFAULT",
+ "enable": true,
+ "fallback": null,
+ "metaSize": false,
+ "id": "DEFAULT",
+ "staticLayout": false
+ },
+ "BTN": {
+ "w": 120,
+ "h": 60,
+ "autoFetch": false,
+ "clean": "defaultcleanBTN",
+ "dest": "defaultdestBTN",
+ "enable": true,
+ "fallback": null,
+ "metaSize": false,
+ "id": "BTN",
+ "staticLayout": false,
+ "failed": true
+ },
+ "BTN-1": {
+ "w": 120,
+ "h": 60,
+ "autoFetch": false,
+ "clean": "defaultcleanBTN-1",
+ "dest": "defaultdestBTN-1",
+ "enable": true,
+ "fallback": null,
+ "metaSize": false,
+ "id": "BTN-1",
+ "staticLayout": false,
+ "failed": true
+ },
+ "BTN-2": {
+ "w": 120,
+ "h": 60,
+ "autoFetch": false,
+ "clean": "defaultcleanBTN-2",
+ "dest": "defaultdestBTN-2",
+ "enable": true,
+ "fallback": null,
+ "metaSize": false,
+ "id": "BTN-2",
+ "staticLayout": false,
+ "failed": true
+ },
+ "BTN-3": {
+ "w": 120,
+ "h": 60,
+ "autoFetch": false,
+ "clean": "defaultcleanBTN-3",
+ "dest": "defaultdestBTN-3",
+ "enable": true,
+ "fallback": null,
+ "metaSize": false,
+ "id": "BTN-3",
+ "staticLayout": false,
+ "failed": true
+ },
+ "FOOT": {
+ "id": "FOOT",
+ "enable": true,
+ "fr": "expIfr_exp",
+ "autoFetch": false,
+ "supports": {
+ "lyr": 1
+ },
+ "clean": "defaultcleanFOOT",
+ "dest": "defaultdestFOOT",
+ "fallback": null,
+ "metaSize": false,
+ "staticLayout": false,
+ "failed": true
+ },
+ "FOOT9": {
+ "id": "FOOT9",
+ "enable": true,
+ "fr": "expIfr_exp",
+ "autoFetch": false,
+ "supports": {
+ "lyr": 1
+ },
+ "clean": "defaultcleanFOOT9",
+ "dest": "defaultdestFOOT9",
+ "fallback": null,
+ "metaSize": false,
+ "staticLayout": false
+ },
+ "FSRVY": {
+ "id": "FSRVY",
+ "enable": true,
+ "fr": "expIfr_exp",
+ "autoFetch": false,
+ "supports": {
+ "lyr": 1
+ },
+ "clean": "defaultcleanFSRVY",
+ "dest": "defaultdestFSRVY",
+ "fallback": null,
+ "metaSize": false,
+ "staticLayout": false,
+ "failed": true
+ },
+ "LREC": {
+ "id": "LREC",
+ "w": 300,
+ "h": 250,
+ "fr": "expIfr_exp",
+ "autoFetch": false,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 3,
+ "fallback": {
+ "link": "https://baseball.fantasysports.yahoo.com/b1/signup",
+ "image": "https://s.yimg.com/nn/lib/metro/DailyFantasy_BN_Baseball_300x250-min.jpg"
+ },
+ "clean": "defaultcleanLREC",
+ "dest": "defaultdestLREC",
+ "metaSize": false
+ },
+ "LREC-1": {
+ "id": "LREC-1",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "defaultcleanLREC-1",
+ "dest": "defaultdestLREC-1",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC-2": {
+ "id": "LREC-2",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "defaultcleanLREC-2",
+ "dest": "defaultdestLREC-2",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC-9": {
+ "id": "LREC-9",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "defaultcleanLREC-9",
+ "dest": "defaultdestLREC-9",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC2-1": {
+ "id": "LREC2-1",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "defaultcleanLREC2-1",
+ "dest": "defaultdestLREC2-1",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC2-2": {
+ "id": "LREC2-2",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "defaultcleanLREC2-2",
+ "dest": "defaultdestLREC2-2",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC2-4": {
+ "id": "LREC2-4",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "defaultcleanLREC2-4",
+ "dest": "defaultdestLREC2-4",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC2-5": {
+ "id": "LREC2-5",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "defaultcleanLREC2-5",
+ "dest": "defaultdestLREC2-5",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC2-6": {
+ "id": "LREC2-6",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "defaultcleanLREC2-6",
+ "dest": "defaultdestLREC2-6",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC2-7": {
+ "id": "LREC2-7",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "defaultcleanLREC2-7",
+ "dest": "defaultdestLREC2-7",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC2-8": {
+ "id": "LREC2-8",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "defaultcleanLREC2-8",
+ "dest": "defaultdestLREC2-8",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC2-9": {
+ "id": "LREC2-9",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "defaultcleanLREC2-9",
+ "dest": "defaultdestLREC2-9",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC2": {
+ "id": "LREC2",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "defaultcleanLREC2",
+ "dest": "defaultdestLREC2",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC3": {
+ "id": "LREC3",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "defaultcleanLREC3",
+ "dest": "defaultdestLREC3",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC3-1": {
+ "id": "LREC3-1",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "defaultcleanLREC3-1",
+ "dest": "defaultdestLREC3-1",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC3-4": {
+ "id": "LREC3-4",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "defaultcleanLREC3-4",
+ "dest": "defaultdestLREC3-4",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC3-5": {
+ "id": "LREC3-5",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "defaultcleanLREC3-5",
+ "dest": "defaultdestLREC3-5",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC3-6": {
+ "id": "LREC3-6",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "defaultcleanLREC3-6",
+ "dest": "defaultdestLREC3-6",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC3-7": {
+ "id": "LREC3-7",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "defaultcleanLREC3-7",
+ "dest": "defaultdestLREC3-7",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC3-8": {
+ "id": "LREC3-8",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "defaultcleanLREC3-8",
+ "dest": "defaultdestLREC3-8",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC3-9": {
+ "id": "LREC3-9",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "defaultcleanLREC3-9",
+ "dest": "defaultdestLREC3-9",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC4": {
+ "id": "LREC4",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "defaultcleanLREC4",
+ "dest": "defaultdestLREC4",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LDRB": {
+ "id": "LDRB",
+ "w": 728,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "clean": "defaultcleanLDRB",
+ "dest": "defaultdestLDRB",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LDRB-1": {
+ "id": "LDRB-1",
+ "w": 728,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "clean": "defaultcleanLDRB-1",
+ "dest": "defaultdestLDRB-1",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LDRB-9": {
+ "id": "LDRB-9",
+ "w": 728,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "clean": "defaultcleanLDRB-9",
+ "dest": "defaultdestLDRB-9",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LDRB2-1": {
+ "id": "LDRB2-1",
+ "w": 728,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "clean": "defaultcleanLDRB2-1",
+ "dest": "defaultdestLDRB2-1",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LDRB2-2": {
+ "id": "LDRB2-2",
+ "w": 728,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "clean": "defaultcleanLDRB2-2",
+ "dest": "defaultdestLDRB2-2",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LDRP": {
+ "id": "LDRP",
+ "w": 320,
+ "h": 50,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1,
+ "lyr": 1
+ },
+ "enable": true,
+ "metaSize": true,
+ "staticLayout": true,
+ "fdb": true,
+ "clean": "defaultcleanLDRP",
+ "dest": "defaultdestLDRP",
+ "fallback": null
+ },
+ "MAST": {
+ "id": "MAST",
+ "w": 970,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1,
+ "resize-to": 1
+ },
+ "enable": true,
+ "staticLayout": false,
+ "fclose": 2,
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "closeBtn": {
+ "adc": 0,
+ "mode": 2,
+ "useShow": 1
+ },
+ "metaSize": true,
+ "clean": "defaultcleanMAST",
+ "dest": "defaultdestMAST",
+ "fallback": null
+ },
+ "MAST-9": {
+ "id": "MAST-9",
+ "w": 970,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1,
+ "resize-to": 1
+ },
+ "enable": true,
+ "staticLayout": false,
+ "fclose": 2,
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "closeBtn": {
+ "adc": 0,
+ "mode": 2,
+ "useShow": 1
+ },
+ "metaSize": true,
+ "clean": "defaultcleanMAST-9",
+ "dest": "defaultdestMAST-9",
+ "fallback": null
+ },
+ "MFPAD": {
+ "id": "MFPAD",
+ "w": 720,
+ "h": 90,
+ "autoFetch": false,
+ "enable": true,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "metaSize": true,
+ "staticLayout": false,
+ "fdb": false,
+ "clean": "defaultcleanMFPAD",
+ "dest": "defaultdestMFPAD",
+ "fallback": null
+ },
+ "MON-1": {
+ "id": "MON-1",
+ "w": 300,
+ "h": 600,
+ "fr": "expIfr_exp",
+ "autoFetch": false,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 3,
+ "clean": "defaultcleanMON-1",
+ "dest": "defaultdestMON-1",
+ "fallback": null,
+ "metaSize": false
+ },
+ "SPL": {
+ "id": "SPL",
+ "flex": "both",
+ "enable": true,
+ "autoFetch": false,
+ "staticLayout": false,
+ "fclose": 2,
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "supports": {
+ "cmsg": 1
+ },
+ "uhslot": ".YDC-UH",
+ "meta": {
+ "type": "stream"
+ },
+ "css": ".Mags-FontA{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:300}.Mags-FontA.Size1{font-size:13px}.Mags-FontA.Size2{font-size:16px}.Mags-FontA.Size3{font-size:20px}.Mags-FontA.Size4{font-size:22px}.Mags-FontA.Size5{font-size:33px}.Mags-FontA.Size6{font-size:35px}.Mags-FontA.Size7{font-size:58px}.Mags-FontA.Size8{font-size:70px}.Mags-FontA.Size9{font-size:100px}.Mags-FontB{font-family:Georgia,Times,serif;font-weight:400}.Mags-FontB.Size1{font-size:18px}.Mags-FontC{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400}.Mags-FontC.Size1{font-size:11px}.Mags-FontC.Size2{font-size:14px}.Mags-FontC.Size3{font-size:16px}.Mags-FontC.Size4{font-size:20px}.Mags-FontC.Size5{font-size:30px}.Mags-FontC.Size6{font-size:32px}.Mags-FontC.Size7{font-size:52px}",
+ "clean": "defaultcleanSPL",
+ "dest": "defaultdestSPL",
+ "fallback": null,
+ "metaSize": false
+ },
+ "SPL-2": {
+ "id": "SPL-2",
+ "flex": "both",
+ "enable": true,
+ "autoFetch": false,
+ "staticLayout": false,
+ "fclose": 2,
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "supports": {
+ "cmsg": 1
+ },
+ "uhslot": ".YDC-UH",
+ "meta": {
+ "type": "stream"
+ },
+ "css": ".Mags-FontA{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:300}.Mags-FontA.Size1{font-size:13px}.Mags-FontA.Size2{font-size:16px}.Mags-FontA.Size3{font-size:20px}.Mags-FontA.Size4{font-size:22px}.Mags-FontA.Size5{font-size:33px}.Mags-FontA.Size6{font-size:35px}.Mags-FontA.Size7{font-size:58px}.Mags-FontA.Size8{font-size:70px}.Mags-FontA.Size9{font-size:100px}.Mags-FontB{font-family:Georgia,Times,serif;font-weight:400}.Mags-FontB.Size1{font-size:18px}.Mags-FontC{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400}.Mags-FontC.Size1{font-size:11px}.Mags-FontC.Size2{font-size:14px}.Mags-FontC.Size3{font-size:16px}.Mags-FontC.Size4{font-size:20px}.Mags-FontC.Size5{font-size:30px}.Mags-FontC.Size6{font-size:32px}.Mags-FontC.Size7{font-size:52px}",
+ "clean": "defaultcleanSPL-2",
+ "dest": "defaultdestSPL-2",
+ "fallback": null,
+ "metaSize": false
+ },
+ "SPL2": {
+ "id": "SPL2",
+ "autoFetch": false,
+ "flex": "both",
+ "enable": true,
+ "staticLayout": false,
+ "fclose": 2,
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "supports": {
+ "cmsg": 1
+ },
+ "uhslot": ".YDC-UH",
+ "meta": {
+ "stack": "ydc",
+ "type": "stream"
+ },
+ "css": ".Mags-FontA{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:300}.Mags-FontA.Size1{font-size:13px}.Mags-FontA.Size2{font-size:16px}.Mags-FontA.Size3{font-size:20px}.Mags-FontA.Size4{font-size:22px}.Mags-FontA.Size5{font-size:33px}.Mags-FontA.Size6{font-size:35px}.Mags-FontA.Size7{font-size:58px}.Mags-FontA.Size8{font-size:70px}.Mags-FontA.Size9{font-size:100px}.Mags-FontB{font-family:Georgia,Times,serif;font-weight:400}.Mags-FontB.Size1{font-size:18px}.Mags-FontC{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400}.Mags-FontC.Size1{font-size:11px}.Mags-FontC.Size2{font-size:14px}.Mags-FontC.Size3{font-size:16px}.Mags-FontC.Size4{font-size:20px}.Mags-FontC.Size5{font-size:30px}.Mags-FontC.Size6{font-size:32px}.Mags-FontC.Size7{font-size:52px}",
+ "clean": "defaultcleanSPL2",
+ "dest": "defaultdestSPL2",
+ "fallback": null,
+ "metaSize": false
+ },
+ "SPRZ": {
+ "id": "SPRZ",
+ "autoFetch": false,
+ "flex": "both",
+ "enable": true,
+ "staticLayout": false,
+ "fdb": false,
+ "supports": {
+ "cmsg": 1
+ },
+ "uhslot": ".YDC-UH",
+ "clean": "defaultcleanSPRZ",
+ "dest": "defaultdestSPRZ",
+ "fallback": null,
+ "metaSize": false
+ },
+ "SPON": {
+ "pos": "SPON",
+ "h": 1,
+ "id": "SPON",
+ "w": 1,
+ "autoFetch": false,
+ "clean": "defaultcleanSPON",
+ "dest": "defaultdestSPON",
+ "enable": true,
+ "fallback": null,
+ "metaSize": false,
+ "staticLayout": false
+ },
+ "TXTL": {
+ "id": "TXTL",
+ "w": 120,
+ "h": 170,
+ "css": "#fc_align a,#tl1_slug{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:11px}.ad-tl2b{overflow:hidden;text-align:left}p{margin:0}a{color:#020e65}a:hover{color:#0078ff}.y-fp-pg-controls{margin-top:5px;margin-bottom:5px}#tl1_slug{color:#999}a:link{text-decoration:none}",
+ "autoFetch": false,
+ "clean": "defaultcleanTXTL",
+ "dest": "defaultdestTXTL",
+ "enable": true,
+ "fallback": null,
+ "metaSize": false,
+ "staticLayout": false
+ },
+ "WFPAD": {
+ "id": "WFPAD",
+ "w": 320,
+ "h": 50,
+ "autoFetch": false,
+ "enable": true,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1,
+ "lyr": 1,
+ "resize-to": 1
+ },
+ "metaSize": true,
+ "staticLayout": false,
+ "fdb": false,
+ "clean": "defaultcleanWFPAD",
+ "dest": "defaultdestWFPAD",
+ "fallback": null
+ }
+ },
+ "rotationTimingDisabled": true,
+ "contentTypeAdPosModifier": {
+ "slideshow": ["-LREC", "LREC-2", "LREC2"],
+ "inlineSlideshow": []
+ },
+ "useYAC": 0,
+ "usePE": 1,
+ "servicePath": "",
+ "xservicePath": "",
+ "beaconPath": "",
+ "renderPath": "",
+ "allowFiF": false,
+ "srenderPath": "http://l.yimg.com/rq/darla/2-9-17/html/r-sf.html",
+ "renderFile": "http://l.yimg.com/rq/darla/2-9-17/html/r-sf.html",
+ "sfbrenderPath": "http://l.yimg.com/rq/darla/2-9-17/html/r-sf.html",
+ "msgPath": "http://fc.yahoo.com/sdarla/2-9-17/html/msg.html",
+ "cscPath": "http://l.yimg.com/rq/darla/2-9-17/html/r-csc.html",
+ "root": "sdarla",
+ "edgeRoot": "http://l.yimg.com/rq/darla/2-9-17",
+ "sedgeRoot": "https://s.yimg.com/rq/darla/2-9-17",
+ "version": "2-9-17",
+ "tpbURI": "",
+ "hostFile": "http://l.yimg.com/rq/darla/2-9-17/js/g-r-min.js",
+ "beaconsDisabled": true,
+ "fdb_locale": "What don't you like about this ad?|It's offensive|Something else|Thank you for helping us improve your Yahoo experience|It's not relevant|It's distracting|I don't like this ad|Send|Done|Why do I see ads?|Learn more about your feedback.",
+ "property": "",
+ "lang": "en-US",
+ "debug": false,
+ "auto_render": true
+ }
+ window.DARLA_CONFIG.servicePath = window.location.protocol + "//fc.yahoo.com/sdarla/php/fc.php";
+ window.DARLA_CONFIG.dm = 1;
+ window.DARLA_CONFIG.onStartRequest = function() {
+ window._perfMark('DARLA_REQSTART');
+ };
+ window.DARLA_CONFIG.onFinishRequest = function() {
+ window._perfMark('DARLA_REQEND');
+ };
+ window.DARLA_CONFIG.onStartParse = function() {
+ window._perfMark('DARLA_PSTART');
+ };
+ window.DARLA_CONFIG.onSuccess = function(eventName) {
+ if (eventName === 'AUTO') {
+ return;
+ }
+ if (window._DarlaEvents) {
+ window._DarlaEvents.emit("success", {
+ eventName: eventName
+ });
+ }
+ window._perfMark('DARLA_DONE_' + eventName);
+ window._darlaSuccessEvt = eventName;
+ if (window._loadEvt) {
+ window._fireAdPerfBeacon(eventName);
+ }
+ };
+ window.DARLA_CONFIG.onStartPosRender = function(posItem) {
+ var posId = posItem & amp; & amp;
+ posItem.pos;
+ window._perfMark('DARLA_ADSTART_' + posId);
+ if (window._pushAdPerfMetric) {
+ window._pushAdPerfMetric("DARLA_ADSTART_" + posId);
+ }
+ };
+ window.DARLA_CONFIG.onFinishPosRender = function(posId, reqList, posItem) {
+ var ltime;
+ window._perfMark('DARLA_ADEND_' + posId);
+ window._perfMeasure('DARLA_RENDERTIME_' + posId, 'DARLA_ADSTART_' + posId, 'DARLA_ADEND_' + posId);
+ if (window._DarlaEvents) {
+ window._DarlaEvents.emit("finishrender", {
+ pos: posId,
+ list: reqList,
+ item: posItem
+ });
+ }
+ var aboveFoldPositions = ["MAST", "LDRB", "SPRZ", "SPL", "SPL-2", "LREC", "MON-1"];
+ if (window._pushAdPerfMetric) {
+ if (window.performance & amp; & amp; window.performance.now) {
+ ltime = window.performance.now();
+ }
+ window._pushAdPerfMetric("ADEND_" + posId);
+ var adModDiv = posItem.conf.dest.replace("dest", "") + "-sizer";
+ setTimeout(function() {
+ if (window.performance & amp; & amp; window.YAFT !== undefined & amp; & amp; window.YAFT.isInitialized() & amp; & amp; - 1 !== aboveFoldPositions.indexOf(posId)) {
+ window.YAFT.triggerCustomTiming(adModDiv, "", ltime);
+ }
+ }, 300);
+ }
+ };
+ window.DARLA_CONFIG.onBeforePosMsg = function(msg, posId) {
+ var maxWidth = 970,
+ maxHeight = 600;
+ var newWidth, newHeight, pos;
+ if ("MAST" !== posId) {
+ return;
+ }
+ if (msg === "resize-to") {
+ newWidth = arguments[2];
+ newHeight = arguments[3];
+ } else if (msg === "exp-push" || msg === "exp-ovr") {
+ pos = $sf.host.get("MAST");
+ newWidth = pos.conf.w + arguments[6] + arguments[7];
+ newHeight = pos.conf.h + arguments[5] + arguments[8];
+ }
+ if (newWidth & gt; maxWidth || newHeight & gt; maxHeight) {
+ return true;
+ }
+ };
+ window.DARLA_CONFIG.onFinishParse = function(eventName, response) {
+ try {
+ window._perfMark('DARLA_PEND');
+ if (eventName === "prefetch") {
+ window._DarlaPrefetchResponse = response;
+ }
+ if (window._DarlaEvents) {
+ window._DarlaEvents.emit("finishparse", {
+ response: response,
+ eventName: eventName
+ });
+ }
+ } catch (e) {
+ console.error(e);
+ throw e;
+ }
+ };
+ window.DARLA_CONFIG.onStartPrefetchRequest = function(eventName) {
+ window._perfMark('DARLA_PFSTART');
+ };
+ window.DARLA_CONFIG.onFinishPrefetchRequest = function(eventName, status) {
+ window._perfMark('DARLA_PFEND');
+ try {
+ window._DarlaEvents.emit('finishprefetch', {
+ status: status,
+ eventName: eventName
+ });
+ } catch (e) {
+ console.error(e);
+ throw e;
+ }
+ };
+ window.DARLA_CONFIG.onPosMsg = function(cmd, pos, msg) {
+ try {
+ if (window._DarlaEvents & amp; & amp; cmd === "cmsg") {
+ var posmsg = {
+ pos: pos,
+ msg: msg
+ };
+ window._DarlaEvents.emit("splashmsg", posmsg);
+ if (window._adPosMsg) {
+ window._adPosMsg[window._adPosMsg.length] = posmsg;
+ }
+ }
+ if (window._DarlaEvents & amp; & amp;
+ (cmd === "ui-fclose-show" || cmd === "ui-fclose-close")) {
+ setTimeout(function _emitAdResize() {
+ window._DarlaEvents.emit("adresize", {
+ pos: pos
+ })
+ }, 0);
+ }
+ } catch (e) {
+ console.error(e);
+ throw e;
+ }
+ };
+ (function() {
+ var _onloadEvt = function _onloadEvtHandler() {
+ window._loadEvt = true;
+ if (window._darlaSuccessEvt) {
+ window._fireAdPerfBeacon(window._darlaSuccessEvt);
+ }
+ };
+ if (window.addEventListener) {
+ window.addEventListener("load", _onloadEvt);
+ } else if (window.attachEvent) {
+ window.attachEvent("onload", _onloadEvt);
+ }
+
+ function _onDarlaError(type) {
+ return function _darlaErrHandler(evName) {
+ try {
+ if (window._DarlaEvents) {
+ window._DarlaEvents.emit("darlaerror" + evName);
+ window._DarlaEvents.emit("darlaerror", {
+ type: type,
+ eventName: evName,
+ error: true
+ });
+ }
+ } catch (e) {
+ console.error(e);
+ throw e;
+ }
+ };
+ };
+ window.DARLA_CONFIG.onRequestTimeout = _onDarlaError("requestTimeout");
+ window.DARLA_CONFIG.onRenderTimeout = _onDarlaError("renderTimeout");
+ window.DARLA_CONFIG.onFailure = _onDarlaError("failure");
+ window.DARLA_CONFIG.onIdle = function onDarlaIdle() {
+ try {
+ window._DarlaEvents & amp; & amp;
+ window._DarlaEvents.emit("onIdle");
+ } catch (e) {
+ console.error(e);
+ throw e;
+ }
+ };
+ })();
+ window.$sf = window.sf = {};
+ window.$sf.host = {
+ onReady: function(autorender, deferrender, firstRenderPos, deferRenderDelay) {
+ window._perfMark('DARLA_ONREADY');
+ window._perfMeasure('DARLA_ONREADY');
+ window.sfready = true;
+ if (window._DarlaEvents & amp; & amp; !autorender) {
+ window._DarlaEvents.emit("darlaboot");
+ } else if (autorender) {
+ window._perfMark('DARLA_RSTART');
+ if (typeof DARLA !== "undefined" & amp; & amp; DARLA) {
+ if (deferrender & amp; & amp; firstRenderPos) {
+ var firstBatchPos = [];
+ var prefetchedPos = DARLA.prefetched();
+ if (prefetchedPos.length & lt; = 0) {
+ return;
+ }
+ var firstRender = firstRenderPos.split(',');
+ if (firstRender & amp; & amp; firstRender.length & gt; 0) {
+ for (var i = 0; i & lt; firstRender.length; i++) {
+ var position = firstRender[i];
+ var index = prefetchedPos.indexOf(position);
+ if (index & gt; = 0) {
+ firstBatchPos = firstBatchPos.concat(prefetchedPos.splice(index, 1));
+ }
+ };
+ }
+ if (firstBatchPos.length & gt; 0) {
+ var renderWithRetry = function(pos) {
+ if (DARLA.inProgress()) {
+ var waittime = 600,
+ maxwait = 100,
+ deferRetry = 0,
+ interval;
+ interval = setInterval(function() {
+ deferRetry++;
+ if (!DARLA.inProgress()) {
+ clearInterval(interval);
+ DARLA.render(pos);
+ }
+ if (deferRetry & gt; maxwait) {
+ clearInterval(interval);
+ }
+ }, waittime);
+ } else {
+ DARLA.render(pos);
+ }
+ };
+ renderWithRetry(firstBatchPos);
+ setTimeout(renderWithRetry, deferRenderDelay, prefetchedPos);
+ } else {
+ DARLA.render();
+ }
+ } else {
+ DARLA.render();
+ }
+ }
+ }
+ }
+ };
+ window.sf_host = window.$sf.host;
+ document.onreadystatechange = function() {
+ if (document.readyState == "interactive") {
+ window._perfMark('DOM_INTERACTIVE');
+ }
+ };
+ </script>
+ <script type="text/x-safeframe" id="fc" _ver="2-9-17">{"positions":[{"id":"BTN","html":"&lt;!-- SpaceID=1183300100 loc=BTN noad --&gt;&lt;!-- fac-gd2-noad --&gt;&lt;!-- gd2-status-2 --&gt;&lt;!--QYZ CMS_NONE_AVAIL,,;;BTN;1183300100;2--&gt;","lowHTML":"","meta":{"y":{"pos":"BTN","cscHTML":"&lt;scr"+"ipt language=javascr"+"ipt&gt;\nif(window.xzq_d==null)window.xzq_d=new Object();\nwindow.xzq_d['6Xtg5dgnOXs-']='(as$1253r59h3,aid$6Xtg5dgnOXs-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=BTN)';\n&lt;\/scr"+"ipt&gt;&lt;noscr"+"ipt&gt;&lt;img width=1 height=1 alt=\"\" src=\"http:\/\/csc.beap.bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136icdmhm(gid$ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH,st$1478058901547400,si$4451051,sp$1183300100,pv$1,v$2.0))&amp;t=J_3-D_3&amp;al=(as$1253r59h3,aid$6Xtg5dgnOXs-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=BTN)\"&gt;&lt;\/noscr"+"ipt&gt;","cscURI":"http:\/\/csc.beap.bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136icdmhm(gid$ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH,st$1478058901547400,si$4451051,sp$1183300100,pv$1,v$2.0))&amp;t=J_3-D_3&amp;al=(as$1253r59h3,aid$6Xtg5dgnOXs-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=BTN)","behavior":"non_exp","adID":"#2","matchID":"#2","bookID":"-1","slotID":"0","serveType":"-1","err":"invalid_space","hasExternal":false,"supp_ugc":"0","placementID":-1,"fdb":"{ \\\"fdb_url\\\": \\\"http:\\\\\/\\\\\/beap-bc.yahoo.com\\\\\/af?bv=1.0.0&amp;bs=(15ir45r6b(gid$jmTVQDk4LjHHbFsHU5jMkgKkMTAuNwAAAACljpkK,st$1402537233026922,srv$1,si$13303551,adv$25941429036,ct$25,li$3239250051,exp$1402544433026922,cr$4154984551,pbid$25372728133,v$1.0))&amp;al=(type${type},cmnt${cmnt},subo${subo})&amp;r=10\\\", \\\"fdb_on\\\": \\\"1\\\", \\\"fdb_exp\\\": \\\"1402544433026\\\", \\\"fdb_intl\\\": \\\"en-us\\\" , \\\"d\\\" : \\\"1\\\" }","serveTime":1478058901547400,"impID":"","creativeID":-1,"adc":"{\\\"label\\\":\\\"AdChoices\\\",\\\"url\\\":\\\"https:\\\\\/\\\\\/info.yahoo.com\\\\\/privacy\\\\\/us\\\\\/yahoo\\\\\/relevantads.html\\\",\\\"close\\\":\\\"Close\\\",\\\"closeAd\\\":\\\"Close Ad\\\",\\\"showAd\\\":\\\"Show ad\\\",\\\"collapse\\\":\\\"Collapse\\\",\\\"fdb\\\":\\\"I don't like this ad\\\",\\\"code\\\":\\\"en-us\\\"}","is3rd":0,"facStatus":{"fedStatusCode":"0","fedStatusMessage":"federation is not configured for ad slot"},"userProvidedData":{},"slotData":{"pt":"0","bamt":"10000000000.000000","namt":"0.000000","isLiveAdPreview":"false","is_ad_feedback":"false","trusted_custom":"false","isCompAds":"false","pvid":"ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH"}}}},{"id":"BTN-1","html":"&lt;!-- SpaceID=1183300100 loc=BTN noad --&gt;&lt;!-- fac-gd2-noad --&gt;&lt;!-- gd2-status-2 --&gt;&lt;!--QYZ CMS_NONE_AVAIL,,;;BTN;1183300100;2--&gt;","lowHTML":"","meta":{"y":{"pos":"BTN-1","cscHTML":"&lt;scr"+"ipt language=javascr"+"ipt&gt;\nif(window.xzq_d==null)window.xzq_d=new Object();\nwindow.xzq_d['xtdg5dgnOXs-']='(as$125jq57q9,aid$xtdg5dgnOXs-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=BTN)';\n&lt;\/scr"+"ipt&gt;&lt;noscr"+"ipt&gt;&lt;img width=1 height=1 alt=\"\" src=\"http:\/\/csc.beap.bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136icdmhm(gid$ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH,st$1478058901547400,si$4451051,sp$1183300100,pv$1,v$2.0))&amp;t=J_3-D_3&amp;al=(as$125jq57q9,aid$xtdg5dgnOXs-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=BTN)\"&gt;&lt;\/noscr"+"ipt&gt;","cscURI":"http:\/\/csc.beap.bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136icdmhm(gid$ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH,st$1478058901547400,si$4451051,sp$1183300100,pv$1,v$2.0))&amp;t=J_3-D_3&amp;al=(as$125jq57q9,aid$xtdg5dgnOXs-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=BTN)","behavior":"non_exp","adID":"#2","matchID":"#2","bookID":"-1","slotID":"1","serveType":"-1","err":"invalid_space","hasExternal":false,"supp_ugc":"0","placementID":-1,"fdb":"{ \\\"fdb_url\\\": \\\"http:\\\\\/\\\\\/beap-bc.yahoo.com\\\\\/af?bv=1.0.0&amp;bs=(15ir45r6b(gid$jmTVQDk4LjHHbFsHU5jMkgKkMTAuNwAAAACljpkK,st$1402537233026922,srv$1,si$13303551,adv$25941429036,ct$25,li$3239250051,exp$1402544433026922,cr$4154984551,pbid$25372728133,v$1.0))&amp;al=(type${type},cmnt${cmnt},subo${subo})&amp;r=10\\\", \\\"fdb_on\\\": \\\"1\\\", \\\"fdb_exp\\\": \\\"1402544433026\\\", \\\"fdb_intl\\\": \\\"en-us\\\" , \\\"d\\\" : \\\"1\\\" }","serveTime":1478058901547400,"impID":"","creativeID":-1,"adc":"{\\\"label\\\":\\\"AdChoices\\\",\\\"url\\\":\\\"https:\\\\\/\\\\\/info.yahoo.com\\\\\/privacy\\\\\/us\\\\\/yahoo\\\\\/relevantads.html\\\",\\\"close\\\":\\\"Close\\\",\\\"closeAd\\\":\\\"Close Ad\\\",\\\"showAd\\\":\\\"Show ad\\\",\\\"collapse\\\":\\\"Collapse\\\",\\\"fdb\\\":\\\"I don't like this ad\\\",\\\"code\\\":\\\"en-us\\\"}","is3rd":0,"facStatus":{"fedStatusCode":"0","fedStatusMessage":"federation is not configured for ad slot"},"userProvidedData":{},"slotData":{"pt":"0","bamt":"10000000000.000000","namt":"0.000000","isLiveAdPreview":"false","is_ad_feedback":"false","trusted_custom":"false","isCompAds":"false","pvid":"ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH"}}}},{"id":"BTN-2","html":"&lt;!-- SpaceID=1183300100 loc=BTN noad --&gt;&lt;!-- fac-gd2-noad --&gt;&lt;!-- gd2-status-2 --&gt;&lt;!--QYZ CMS_NONE_AVAIL,,;;BTN;1183300100;2--&gt;","lowHTML":"","meta":{"y":{"pos":"BTN-2","cscHTML":"&lt;scr"+"ipt language=javascr"+"ipt&gt;\nif(window.xzq_d==null)window.xzq_d=new Object();\nwindow.xzq_d['ozNh5dgnOXs-']='(as$1255vhek8,aid$ozNh5dgnOXs-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=BTN)';\n&lt;\/scr"+"ipt&gt;&lt;noscr"+"ipt&gt;&lt;img width=1 height=1 alt=\"\" src=\"http:\/\/csc.beap.bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136icdmhm(gid$ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH,st$1478058901547400,si$4451051,sp$1183300100,pv$1,v$2.0))&amp;t=J_3-D_3&amp;al=(as$1255vhek8,aid$ozNh5dgnOXs-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=BTN)\"&gt;&lt;\/noscr"+"ipt&gt;","cscURI":"http:\/\/csc.beap.bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136icdmhm(gid$ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH,st$1478058901547400,si$4451051,sp$1183300100,pv$1,v$2.0))&amp;t=J_3-D_3&amp;al=(as$1255vhek8,aid$ozNh5dgnOXs-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=BTN)","behavior":"non_exp","adID":"#2","matchID":"#2","bookID":"-1","slotID":"2","serveType":"-1","err":"invalid_space","hasExternal":false,"supp_ugc":"0","placementID":-1,"fdb":"{ \\\"fdb_url\\\": \\\"http:\\\\\/\\\\\/beap-bc.yahoo.com\\\\\/af?bv=1.0.0&amp;bs=(15ir45r6b(gid$jmTVQDk4LjHHbFsHU5jMkgKkMTAuNwAAAACljpkK,st$1402537233026922,srv$1,si$13303551,adv$25941429036,ct$25,li$3239250051,exp$1402544433026922,cr$4154984551,pbid$25372728133,v$1.0))&amp;al=(type${type},cmnt${cmnt},subo${subo})&amp;r=10\\\", \\\"fdb_on\\\": \\\"1\\\", \\\"fdb_exp\\\": \\\"1402544433026\\\", \\\"fdb_intl\\\": \\\"en-us\\\" , \\\"d\\\" : \\\"1\\\" }","serveTime":1478058901547400,"impID":"","creativeID":-1,"adc":"{\\\"label\\\":\\\"AdChoices\\\",\\\"url\\\":\\\"https:\\\\\/\\\\\/info.yahoo.com\\\\\/privacy\\\\\/us\\\\\/yahoo\\\\\/relevantads.html\\\",\\\"close\\\":\\\"Close\\\",\\\"closeAd\\\":\\\"Close Ad\\\",\\\"showAd\\\":\\\"Show ad\\\",\\\"collapse\\\":\\\"Collapse\\\",\\\"fdb\\\":\\\"I don't like this ad\\\",\\\"code\\\":\\\"en-us\\\"}","is3rd":0,"facStatus":{"fedStatusCode":"0","fedStatusMessage":"federation is not configured for ad slot"},"userProvidedData":{},"slotData":{"pt":"0","bamt":"10000000000.000000","namt":"0.000000","isLiveAdPreview":"false","is_ad_feedback":"false","trusted_custom":"false","isCompAds":"false","pvid":"ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH"}}}},{"id":"BTN-3","html":"&lt;!-- SpaceID=1183300100 loc=BTN noad --&gt;&lt;!-- fac-gd2-noad --&gt;&lt;!-- gd2-status-2 --&gt;&lt;!--QYZ CMS_NONE_AVAIL,,;;BTN;1183300100;2--&gt;","lowHTML":"","meta":{"y":{"pos":"BTN-3","cscHTML":"&lt;scr"+"ipt language=javascr"+"ipt&gt;\nif(window.xzq_d==null)window.xzq_d=new Object();\nwindow.xzq_d['gI9h5dgnOXs-']='(as$125ckguqr,aid$gI9h5dgnOXs-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=BTN)';\n&lt;\/scr"+"ipt&gt;&lt;noscr"+"ipt&gt;&lt;img width=1 height=1 alt=\"\" src=\"http:\/\/csc.beap.bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136icdmhm(gid$ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH,st$1478058901547400,si$4451051,sp$1183300100,pv$1,v$2.0))&amp;t=J_3-D_3&amp;al=(as$125ckguqr,aid$gI9h5dgnOXs-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=BTN)\"&gt;&lt;\/noscr"+"ipt&gt;","cscURI":"http:\/\/csc.beap.bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136icdmhm(gid$ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH,st$1478058901547400,si$4451051,sp$1183300100,pv$1,v$2.0))&amp;t=J_3-D_3&amp;al=(as$125ckguqr,aid$gI9h5dgnOXs-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=BTN)","behavior":"non_exp","adID":"#2","matchID":"#2","bookID":"-1","slotID":"3","serveType":"-1","err":"invalid_space","hasExternal":false,"supp_ugc":"0","placementID":-1,"fdb":"{ \\\"fdb_url\\\": \\\"http:\\\\\/\\\\\/beap-bc.yahoo.com\\\\\/af?bv=1.0.0&amp;bs=(15ir45r6b(gid$jmTVQDk4LjHHbFsHU5jMkgKkMTAuNwAAAACljpkK,st$1402537233026922,srv$1,si$13303551,adv$25941429036,ct$25,li$3239250051,exp$1402544433026922,cr$4154984551,pbid$25372728133,v$1.0))&amp;al=(type${type},cmnt${cmnt},subo${subo})&amp;r=10\\\", \\\"fdb_on\\\": \\\"1\\\", \\\"fdb_exp\\\": \\\"1402544433026\\\", \\\"fdb_intl\\\": \\\"en-us\\\" , \\\"d\\\" : \\\"1\\\" }","serveTime":1478058901547400,"impID":"","creativeID":-1,"adc":"{\\\"label\\\":\\\"AdChoices\\\",\\\"url\\\":\\\"https:\\\\\/\\\\\/info.yahoo.com\\\\\/privacy\\\\\/us\\\\\/yahoo\\\\\/relevantads.html\\\",\\\"close\\\":\\\"Close\\\",\\\"closeAd\\\":\\\"Close Ad\\\",\\\"showAd\\\":\\\"Show ad\\\",\\\"collapse\\\":\\\"Collapse\\\",\\\"fdb\\\":\\\"I don't like this ad\\\",\\\"code\\\":\\\"en-us\\\"}","is3rd":0,"facStatus":{"fedStatusCode":"0","fedStatusMessage":"federation is not configured for ad slot"},"userProvidedData":{},"slotData":{"pt":"0","bamt":"10000000000.000000","namt":"0.000000","isLiveAdPreview":"false","is_ad_feedback":"false","trusted_custom":"false","isCompAds":"false","pvid":"ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH"}}}},{"id":"MAST","html":"&lt;!-- SpaceID=1183300100 loc=MAST noad --&gt;&lt;!-- fac-gd2-noad --&gt;&lt;!-- gd2-status-2 --&gt;&lt;!--QYZ CMS_NONE_AVAIL,,;;MAST;1183300100;2--&gt;","lowHTML":"","meta":{"y":{"pos":"MAST","cscHTML":"&lt;scr"+"ipt language=javascr"+"ipt&gt;\nif(window.xzq_d==null)window.xzq_d=new Object();\nwindow.xzq_d['ixJk5dgnOXs-']='(as$125b4no03,aid$ixJk5dgnOXs-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=MAST)';\n&lt;\/scr"+"ipt&gt;&lt;noscr"+"ipt&gt;&lt;img width=1 height=1 alt=\"\" src=\"http:\/\/csc.beap.bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136icdmhm(gid$ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH,st$1478058901547400,si$4451051,sp$1183300100,pv$1,v$2.0))&amp;t=J_3-D_3&amp;al=(as$125b4no03,aid$ixJk5dgnOXs-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=MAST)\"&gt;&lt;\/noscr"+"ipt&gt;","cscURI":"http:\/\/csc.beap.bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136icdmhm(gid$ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH,st$1478058901547400,si$4451051,sp$1183300100,pv$1,v$2.0))&amp;t=J_3-D_3&amp;al=(as$125b4no03,aid$ixJk5dgnOXs-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=MAST)","behavior":"non_exp","adID":"#2","matchID":"#2","bookID":"-1","slotID":"10","serveType":"-1","err":"invalid_space","hasExternal":false,"supp_ugc":"0","placementID":-1,"fdb":"{ \\\"fdb_url\\\": \\\"http:\\\\\/\\\\\/beap-bc.yahoo.com\\\\\/af?bv=1.0.0&amp;bs=(15ir45r6b(gid$jmTVQDk4LjHHbFsHU5jMkgKkMTAuNwAAAACljpkK,st$1402537233026922,srv$1,si$13303551,adv$25941429036,ct$25,li$3239250051,exp$1402544433026922,cr$4154984551,pbid$25372728133,v$1.0))&amp;al=(type${type},cmnt${cmnt},subo${subo})&amp;r=10\\\", \\\"fdb_on\\\": \\\"1\\\", \\\"fdb_exp\\\": \\\"1402544433026\\\", \\\"fdb_intl\\\": \\\"en-us\\\" , \\\"d\\\" : \\\"1\\\" }","serveTime":1478058901547400,"impID":"","creativeID":-1,"adc":"{\\\"label\\\":\\\"AdChoices\\\",\\\"url\\\":\\\"https:\\\\\/\\\\\/info.yahoo.com\\\\\/privacy\\\\\/us\\\\\/yahoo\\\\\/relevantads.html\\\",\\\"close\\\":\\\"Close\\\",\\\"closeAd\\\":\\\"Close Ad\\\",\\\"showAd\\\":\\\"Show ad\\\",\\\"collapse\\\":\\\"Collapse\\\",\\\"fdb\\\":\\\"I don't like this ad\\\",\\\"code\\\":\\\"en-us\\\"}","is3rd":0,"facStatus":{"fedStatusCode":"31","fedStatusMessage":"Yield optimization did not run"},"userProvidedData":{},"slotData":{"pt":"0","bamt":"10000000000.000000","namt":"0.000000","isLiveAdPreview":"false","is_ad_feedback":"false","trusted_custom":"false","isCompAds":"false","pvid":"ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH"}}}},{"id":"LDRB","html":"&lt;!-- APT Vendor: Right Media, Format: Standard Graphical --&gt;\n&lt;SCR"+"IPT TYPE=\"text\/javascr"+"ipt\" SRC=\"http:\/\/na.ads.yahoo.com\/yax\/banner?ve=1&amp;tt=1&amp;si=103884551&amp;megamodal=true&amp;bucket=finance-US-en-US-def&amp;asz=728x90&amp;u=http:\/\/finance.yahoo.com\/news\/best-psvr-games-170003443.html&amp;gdAdId=F6Ni5dgnOXs-&amp;gdUuid=ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH&amp;gdSt=1478058901547400&amp;publisher_blob=lmsid:a0Vd000000AE7lXEAT;revsp:407fd5b2-47b4-4c00-a1d0-421cf33bb721;lpstaid:80b35014-fba3-377e-adc5-47fb44f61fa7;pct:story|ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH|1183300100|LDRB|1478058901.86539|2-9-17:ysd:1&amp;pub_redirect=http:\/\/beap-bc.yahoo.com\/yc\/YnY9MS4wLjAmYnM9KDE3aWN0ZmxrdShnaWQka3UuckZUWXpMaksxQ1haSldCbGhOUUo4TVRFNExnQUFBQUJueUpRSCxzdCQxNDc4MDU4OTAxNTQ3NDAwLHNpJDQ0NTEwNTEsc3AkMTE4MzMwMDEwMCxjdCQyNSx5Yngkbk5kY2xaRXdzNEJDTnBBWVMuNVp4dyxsbmckZW4tdXMsY3IkNDUyNzA4MTA1MSx2JDIuMCxhaWQkRjZOaTVkZ25PWHMtLGJpJDIzMTUyMDc1NTEsbW1lJDk3NDk3Nzc4NDQ4MzMyMzk4MTIsciQwLHlvbyQxLGFncCQzNTM2MDMzNTUxLGFwJExEUkIpKQ\/2\/*&amp;K=1\"&gt;&lt;\/SCR"+"IPT&gt;&lt;scr"+"ipt&gt;var url = \"\"; if(url &amp;&amp; url.search(\"http\") != -1){document.write('&lt;scr"+"ipt src=\"' + url + '\"&gt;&lt;\\\/scr"+"ipt&gt;');}&lt;\/scr"+"ipt&gt;&lt;!--QYZ 2315207551,4527081051,;;LDRB;1183300100;1--&gt;","lowHTML":"","meta":{"y":{"pos":"LDRB","cscHTML":"&lt;scr"+"ipt language=javascr"+"ipt&gt;\nif(window.xzq_d==null)window.xzq_d=new Object();\nwindow.xzq_d['F6Ni5dgnOXs-']='(as$13amm8mdd,aid$F6Ni5dgnOXs-,bi$2315207551,agp$3536033551,cr$4527081051,ct$25,at$H,eob$gd1_match_id=-1:ypos=LDRB)';\n&lt;\/scr"+"ipt&gt;&lt;noscr"+"ipt&gt;&lt;img width=1 height=1 alt=\"\" src=\"http:\/\/csc.beap.bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136icdmhm(gid$ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH,st$1478058901547400,si$4451051,sp$1183300100,pv$1,v$2.0))&amp;t=J_3-D_3&amp;al=(as$13amm8mdd,aid$F6Ni5dgnOXs-,bi$2315207551,agp$3536033551,cr$4527081051,ct$25,at$H,eob$gd1_match_id=-1:ypos=LDRB)\"&gt;&lt;\/noscr"+"ipt&gt;","cscURI":"http:\/\/csc.beap.bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136icdmhm(gid$ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH,st$1478058901547400,si$4451051,sp$1183300100,pv$1,v$2.0))&amp;t=J_3-D_3&amp;al=(as$13amm8mdd,aid$F6Ni5dgnOXs-,bi$2315207551,agp$3536033551,cr$4527081051,ct$25,at$H,eob$gd1_match_id=-1:ypos=LDRB)","behavior":"non_exp","adID":"9749777844833239812","matchID":"999999.999999.999999.999999","bookID":"2315207551","slotID":"6","serveType":"-1","err":false,"hasExternal":false,"supp_ugc":"0","placementID":"3536033551","fdb":"{ \\\"fdb_url\\\": \\\"http:\\\\\\\/\\\\\\\/beap-bc.yahoo.com\\\\\\\/af\\\\\\\/us?bv=1.0.0&amp;bs=(160bat73o(gid$ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH,st$1478058901547400,srv$1,si$4451051,ct$25,exp$1478066101547400,adv$26513753608,li$3535920551,cr$4527081051,v$1.0,pbid$20459933223,seid$103884551))&amp;al=(type${type},cmnt${cmnt},subo${subo})&amp;r=10\\\", \\\"fdb_on\\\": \\\"1\\\", \\\"fdb_exp\\\": \\\"1478066101547\\\", \\\"fdb_intl\\\": \\\"en-US\\\" }","serveTime":"1478058901547400","impID":"F6Ni5dgnOXs-","creativeID":4527081051,"adc":"{\\\"label\\\":\\\"AdChoices\\\",\\\"url\\\":\\\"https:\\\\\/\\\\\/info.yahoo.com\\\\\/privacy\\\\\/us\\\\\/yahoo\\\\\/relevantads.html\\\",\\\"close\\\":\\\"Close\\\",\\\"closeAd\\\":\\\"Close Ad\\\",\\\"showAd\\\":\\\"Show ad\\\",\\\"collapse\\\":\\\"Collapse\\\",\\\"fdb\\\":\\\"I don't like this ad\\\",\\\"code\\\":\\\"en-us\\\"}","is3rd":1,"facStatus":{"fedStatusCode":"28","fedStatusMessage":"Gd2 won because of No Ad or high gd2 ecpm"},"userProvidedData":{},"slotData":{"pt":"8","bamt":"10000000000.000000","namt":"0.000000","isLiveAdPreview":"false","is_ad_feedback":"false","trusted_custom":"false","isCompAds":"false","adjf":"1.000000","alpha":"-1.000000","ffrac":"0.993775","pcpm":"-1.000000","fc":"false","sdate":"1473794820","edate":"1561953540","bimpr":99641147392,"pimpr":0,"spltp":0,"frp":"false","pvid":"ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH"},"size":"728x90"}},"conf":{"w":728,"h":90}},{"id":"SPL","html":"&lt;!-- SpaceID=1183300100 loc=SPL noad --&gt;&lt;!-- fac-gd2-noad --&gt;&lt;!-- gd2-status-2 --&gt;&lt;!--QYZ CMS_NONE_AVAIL,,;;SPL;1183300100;2--&gt;","lowHTML":"","meta":{"y":{"pos":"SPL","cscHTML":"&lt;scr"+"ipt language=javascr"+"ipt&gt;\nif(window.xzq_d==null)window.xzq_d=new Object();\nwindow.xzq_d['aG5k5dgnOXs-']='(as$125uoa4f3,aid$aG5k5dgnOXs-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=SPL)';\n&lt;\/scr"+"ipt&gt;&lt;noscr"+"ipt&gt;&lt;img width=1 height=1 alt=\"\" src=\"http:\/\/csc.beap.bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136icdmhm(gid$ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH,st$1478058901547400,si$4451051,sp$1183300100,pv$1,v$2.0))&amp;t=J_3-D_3&amp;al=(as$125uoa4f3,aid$aG5k5dgnOXs-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=SPL)\"&gt;&lt;\/noscr"+"ipt&gt;","cscURI":"http:\/\/csc.beap.bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136icdmhm(gid$ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH,st$1478058901547400,si$4451051,sp$1183300100,pv$1,v$2.0))&amp;t=J_3-D_3&amp;al=(as$125uoa4f3,aid$aG5k5dgnOXs-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=SPL)","behavior":"non_exp","adID":"#2","matchID":"#2","bookID":"-1","slotID":"11","serveType":"-1","err":"invalid_space","hasExternal":false,"supp_ugc":"0","placementID":-1,"fdb":"{ \\\"fdb_url\\\": \\\"http:\\\\\/\\\\\/beap-bc.yahoo.com\\\\\/af?bv=1.0.0&amp;bs=(15ir45r6b(gid$jmTVQDk4LjHHbFsHU5jMkgKkMTAuNwAAAACljpkK,st$1402537233026922,srv$1,si$13303551,adv$25941429036,ct$25,li$3239250051,exp$1402544433026922,cr$4154984551,pbid$25372728133,v$1.0))&amp;al=(type${type},cmnt${cmnt},subo${subo})&amp;r=10\\\", \\\"fdb_on\\\": \\\"1\\\", \\\"fdb_exp\\\": \\\"1402544433026\\\", \\\"fdb_intl\\\": \\\"en-us\\\" , \\\"d\\\" : \\\"1\\\" }","serveTime":"1478058901547400","impID":"","creativeID":-1,"adc":"{\\\"label\\\":\\\"AdChoices\\\",\\\"url\\\":\\\"https:\\\\\/\\\\\/info.yahoo.com\\\\\/privacy\\\\\/us\\\\\/yahoo\\\\\/relevantads.html\\\",\\\"close\\\":\\\"Close\\\",\\\"closeAd\\\":\\\"Close Ad\\\",\\\"showAd\\\":\\\"Show ad\\\",\\\"collapse\\\":\\\"Collapse\\\",\\\"fdb\\\":\\\"I don't like this ad\\\",\\\"code\\\":\\\"en-us\\\"}","is3rd":0,"facStatus":{"fedStatusCode":"31","fedStatusMessage":"Yield optimization did not run"},"userProvidedData":{},"slotData":{"pt":"0","bamt":"10000000000.000000","namt":"0.000000","isLiveAdPreview":"false","is_ad_feedback":"false","trusted_custom":"false","isCompAds":"false","pvid":"ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH"}}}},{"id":"LREC","html":"&lt;!-- APT Vendor: Yahoo, Format: Standard Graphical --&gt;\n&lt;!-- http:\/\/beap-bc.yahoo.com\/yc\/YnY9MS4wLjAmYnM9KDE3aWxmaXNoaihnaWQka3UuckZUWXpMaksxQ1haSldCbGhOUUo4TVRFNExnQUFBQUJueUpRSCxzdCQxNDc4MDU4OTAxNTQ3NDAwLHNpJDQ0NTEwNTEsc3AkMTE4MzMwMDEwMCxjdCQyNSx5Yngkbk5kY2xaRXdzNEJDTnBBWVMuNVp4dyxsbmckZW4tdXMsY3IkNDUyODgxODA1MSx2JDIuMCxhaWQkOVA1aTVkZ25PWHMtLGJpJDIzMTY3MTYwNTEsbW1lJDk3NTU1OTk2NzMwMDI5NzEwODEsciQwLHlvbyQxLGFncCQzNTM3Njg1NTUxLGFwJExSRUMpKQ\/2\/* \/\/--&gt;&lt;scr"+"ipt language=\"JavaScript\" type=\"text\/javascr"+"ipt\" src=\"https:\/\/global.adserver.yahoo.com\/a?f=794008125&amp;l=LREC&amp;c=r&amp;at=content=%22no_expandable%22&amp;site-country=tw&amp;t=1478058901.86192&amp;rs=guid:ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH%3Bspid:1183300100%3Bypos:LREC\"&gt;&lt;\/scr"+"ipt&gt;&lt;noscr"+"ipt&gt;&lt;iframe src=\"https:\/\/global.adserver.yahoo.com\/a?f=794008125&amp;l=LREC&amp;c=h&amp;bg=ffffff&amp;at=content=%22no_expandable%22&amp;site-country=tw&amp;t=1478058901.86192&amp;rs=guid:ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH%3Bspid:1183300100%3Bypos:LREC\" marginwidth=0 marginheight=0 width=\"300px\" height=\"250px\" hspace=0 vspace=0 frameborder=0 scrolling=no&gt;&lt;\/iframe&gt;&lt;\/noscr"+"ipt&gt;&lt;scr"+"ipt&gt;var url = \"\"; if(url &amp;&amp; url.search(\"http\") != -1){document.write('&lt;scr"+"ipt src=\"' + url + '\"&gt;&lt;\\\/scr"+"ipt&gt;');}&lt;\/scr"+"ipt&gt;&lt;!--QYZ 2316716051,4528818051,;;LREC;1183300100;1--&gt;","lowHTML":"","meta":{"y":{"pos":"LREC","cscHTML":"&lt;scr"+"ipt language=javascr"+"ipt&gt;\nif(window.xzq_d==null)window.xzq_d=new Object();\nwindow.xzq_d['9P5i5dgnOXs-']='(as$13aq1var5,aid$9P5i5dgnOXs-,bi$2316716051,agp$3537685551,cr$4528818051,ct$25,at$H,eob$gd1_match_id=-1:ypos=LREC)';\n&lt;\/scr"+"ipt&gt;&lt;noscr"+"ipt&gt;&lt;img width=1 height=1 alt=\"\" src=\"http:\/\/csc.beap.bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136icdmhm(gid$ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH,st$1478058901547400,si$4451051,sp$1183300100,pv$1,v$2.0))&amp;t=J_3-D_3&amp;al=(as$13aq1var5,aid$9P5i5dgnOXs-,bi$2316716051,agp$3537685551,cr$4528818051,ct$25,at$H,eob$gd1_match_id=-1:ypos=LREC)\"&gt;&lt;\/noscr"+"ipt&gt;","cscURI":"http:\/\/csc.beap.bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136icdmhm(gid$ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH,st$1478058901547400,si$4451051,sp$1183300100,pv$1,v$2.0))&amp;t=J_3-D_3&amp;al=(as$13aq1var5,aid$9P5i5dgnOXs-,bi$2316716051,agp$3537685551,cr$4528818051,ct$25,at$H,eob$gd1_match_id=-1:ypos=LREC)","behavior":"non_exp","adID":"9755599673002971081","matchID":"999999.999999.999999.999999","bookID":"2316716051","slotID":"7","serveType":"-1","err":false,"hasExternal":true,"supp_ugc":"0","placementID":"3537685551","fdb":"{ \\\"fdb_url\\\": \\\"http:\\\\\\\/\\\\\\\/beap-bc.yahoo.com\\\\\\\/af\\\\\\\/us?bv=1.0.0&amp;bs=(160ds25pa(gid$ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH,st$1478058901547400,srv$1,si$4451051,ct$25,exp$1478066101547400,adv$26100339340,li$3537554551,cr$4528818051,v$1.0,pbid$20459933223,seid$103884551))&amp;al=(type${type},cmnt${cmnt},subo${subo})&amp;r=10\\\", \\\"fdb_on\\\": \\\"1\\\", \\\"fdb_exp\\\": \\\"1478066101547\\\", \\\"fdb_intl\\\": \\\"en-US\\\" }","serveTime":"1478058901547400","impID":"9P5i5dgnOXs-","creativeID":4528818051,"adc":"{\\\"label\\\":\\\"AdChoices\\\",\\\"url\\\":\\\"https:\\\\\/\\\\\/info.yahoo.com\\\\\/privacy\\\\\/us\\\\\/yahoo\\\\\/relevantads.html\\\",\\\"close\\\":\\\"Close\\\",\\\"closeAd\\\":\\\"Close Ad\\\",\\\"showAd\\\":\\\"Show ad\\\",\\\"collapse\\\":\\\"Collapse\\\",\\\"fdb\\\":\\\"I don't like this ad\\\",\\\"code\\\":\\\"en-us\\\"}","is3rd":0,"facStatus":{"fedStatusCode":"10","fedStatusMessage":"no replacement for exclusive contract"},"userProvidedData":{},"slotData":{"pt":"3","bamt":"10000000000.000000","namt":"0.000000","isLiveAdPreview":"false","is_ad_feedback":"false","trusted_custom":"false","isCompAds":"false","adjf":"1.000000","alpha":"1.000000","ffrac":"1.000000","pcpm":"-1.000000","fc":"false","ecpm":0,"sdate":"1474886419","edate":"1514735940","bimpr":0,"pimpr":0,"spltp":100,"frp":"false","pvid":"ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH"},"size":"300x250"}},"conf":{"w":300,"h":250}},{"id":"LREC2","html":"&lt;scr"+"ipt type=\"text\/javascr"+"ipt\"&gt;document.write('&lt;img src=\"http:\/\/na.ads.yahoo.com\/yax\/csc?sn=d61d936826a326c501fc56fedca07c2baa0e4905&amp;es=AXzCXGnRVIOCrEAWTd.fxBxfKt6EhXoRPSgAogfTZPlhfwTi3qbIQH5anQCX7ttJkRQyb8XAwZBK4BbqjMq4q6R3NX3EiPGTTqLEoGHyUaPJmwwmn3qzyTvZhIrXn5bm1tpDu22e9xIXFuHqbXttKaZ4HngJDf.8B18_Zdcm4jKcbI45qkj4rBL.q20psjjgjoW.DoK55YrvBwdCyHm3HvGbp44d14h0M_8gjFROVZLYdiz7fY632cYV1Vz3kErxjRh_JIOAeK0XGds490TGyQfS1gU0BU33AyJZEudWSpqEJJfB_i5f4LReMLY3xxSkryXN5sxtqX.kNjHt4YJBfZU_bYYjHQ--&amp;ve=2&amp;ty=0&amp;brxw=true&amp;sasc=4&amp;yredirect=\" style=\"display:none\" height=\"1\" width=\"1\" alt=\"\"&gt;');\ndocument.write('&lt;scr','ipt id=\"yax_meta\" type=\"text\/x-yax-meta\"&gt;','{\"fdb_url\": \"http:\/\/beap-bc.yahoo.com\/af\/us?bv=1.0.0&amp;bs=(15lbj5g6v(gid$3d95a957-b8a1-94e5-02f2-df32f629a2ff,st$1478058901551,li$8398413,cr$81015648,dmn$www.tutorabc.com,srv$4,exp$1478563934255,ct$26,v$1.0,adv$10228,pbid$20459933223,seid$103884551))&amp;al=(type${type},cmnt${cmnt},subo${subo})&amp;r=62347\", \"fdb_on\": \"1\", \"fdb_exp\": \"1478063701551\", \"fdb_intl\": \"en-US\", \"error\": \"\" }&lt;\/scr', 'ipt&gt;');\ndocument.write('&lt;scr', 'ipt type=\"text\/javascr"+"ipt\"&gt;', '(function(){ var w = window, sf = (w &amp;&amp; w.$sf &amp;&amp; w.$sf.ext), di = document.getElementById(\"yax_meta\"); if (sf &amp;&amp; typeof sf.msg == \"function\" &amp;&amp; di){ sf.msg({cmd:\"fdb\", data: di}); }})(); &lt;\/scr', 'ipt&gt;');\ndocument.write('&lt;scr' + 'ipt type=\\\"text\\\/javascr"+"ipt\\\" src=\\\"http:\\\/\\\/pr.ybp.yahoo.com\\\/ab\\\/secure\\\/false\\\/imp\\\/400GjCyHwpgQ_f2gNh7EW-9EQWQwFYo1y1seyrCWAwoak5unpXFpCEMf6gWMDtzN_meWXt8p3bWzWwbiz4VqD5GfbugY2qmS133W9rZzrorvy10vrvNQJ73QkHr44Kmf5NayGKswv1w7Nr-Yo-hToKd3aOlNeQf2jc85GX5Yreo4_LzjK29py1IREBWtKd_y2SJWy4YrJvETwyaSQXNwtF4e3FBhQNxpcROoxpREydSxzz13_4m6aDoxV9vsin1EaEShX451-Q0Ff0Er0a8mVXwa4uH2NDIzmv7zHX4rr9RY7FZ0POqnkGtjQBXqZpDuIm5-dVy0NERTClhisfIyEJJeGdOoEiKNtgXU_UZNSFqFce3iN9pgIbHfB0nRp9lr2Tcqrov-uD8soeQuSnF-KDWzumLRhZlbsckvjv_G6dQRpmuJO9kL7EdU-tJIqVALgDwfGCoi1eAOczR8qeKobuOxOgyt7Vul7aj0M0JpBH1TZKtwWfPW5I_Iw5bWVxAHNZPKYkFRKXzlRBFRz5RW44k5HeiUdf2pDFK7oMwc1-l4iRzzDmbJ7UnwE-pbRzIVQi-eGleldZRpRhwCcwnMrMkPE5cOwJ0u2XwkCAM7hktVnO604oBNbSMbfqsi0VmPp0N6NsTMK8pnQejdAfX7BreJagIrAgj1Kh8FsZ6-_s1xG3L31WIMMnofgZhJjfZHmIIyBg_Dz2R2koPojRxPwDSc2v6C-H8sjDf9gjKc9bK1C45OGqUKQKNwp2jzHF6rhx6ndyH-yOy74ZvwF1bhDFYZlSReA0JbqD7lhavevqngRGHMX2zONeHfZli52QvpqT6bz7nlUS0UEUgiQ41YArJkaNXz7_gwfKGmnXoSIQChSoRdEjiIysm0FCNEE0TYfCMti5hOqo3OFR4M7i-wQuP2SIDZUQU_1PgLWSMP82V54GwoJwrsvgcOgGDk2ej0BksGL7DY5Bg5AoS2EiAljbJnYa5B16b3WfUa4uC-6pR9hFFv6mZhlcZtgVtuCrX2nXffPXoU8Ruz-FQlIF-e360Ch9Z9pb71eIG6MUeOWmytI17ZCBHNjQ\\\/wp\\\/0.10500000000000001\\\/pclick\\\/http:\/\/na.ads.yahoo.com\/yax\/clk?sn%3Da44f8af50f8975e68ba8fe8e26539aee96fdd7ac%26es%3DDZaiuwvRVIMhA2xBWkpmgBBqhaB.LNG6IebyvlGdDkDOmeVNpFfmM6WPonszBx8oy1.fcohG005AtswthlA1TYDLpGuIv9Ex.EYIKG_wuU2Ljk2eMZGC_fzGcw_PUchZF26o6oCdREcnl8R8dD3pxiiEdyrwdQPKB.MyyQs2.tclEoqKSHpuRp2YZDc0p6VSonDqr9Ntk66qGdbU_tIJoPeg.Zxnnmi7N4TvTmkPpoAz0NSXLgryykMETQBb8v.8uRcyfHBYx3dXMuzqYF7Om1R1CfGovNcIicYEr9TUdz4pOYh8TNicgGN_aYMkag5oxPAoTQg8ZWtfvM.VkjjqdIz65RModg--%26ve%3D2%26ty%3D0%26brxw%3Dtrue%26sasc%3D4%26yredirect%3D\\\"&gt;&lt;\\\/scr' + 'ipt&gt;');\ndocument.write('&lt;scr"+"ipt type=\"text\/javascr"+"ipt\" src=\"http:\/\/ads.yahoo.com\/get-user-id?ver=2&amp;n=23351&amp;ts=1478058901&amp;sig=a92e01995d30eeb6\"&gt;&lt;\\\/scr"+"ipt&gt;');document.write('&lt;!--YAXR BannerAd CrId:81015648, RmxCrId:47226945, DspCrId:467153--&gt;');&lt;\/scr"+"ipt&gt;","lowHTML":"","meta":{"y":{"pos":"LREC2","cscHTML":"&lt;scr"+"ipt language=javascr"+"ipt&gt; if(window.xzq_d==null)window.xzq_d=new Object();window.xzq_d['0Vpj5dgnOXs-']='(as$125gmvbnp,aid$0Vpj5dgnOXs-,cr$-1,ct$25,at$H,eob$fac2_r=1:fed_status=17:gd1_match_id=-1:pt=8:rbkid=2315208551:ud_risk=0.00:win_s=4:ypos=LREC2)';&lt;\/scr"+"ipt&gt;&lt;noscr"+"ipt&gt;&lt;img width=1 height=1 alt=\"\" src=\"http:\/\/csc.beap.bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136gehrd8(gid$ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH,si$4451051,sp$1183300100,pv$1,v$2.0,st$1478058901871338))&amp;t=J_3-D_3&amp;al=(as$125gmvbnp,aid$0Vpj5dgnOXs-,cr$-1,ct$25,at$H,eob$fac2_r=1:fed_status=17:gd1_match_id=-1:pt=8:rbkid=2315208551:ud_risk=0.00:win_s=4:ypos=LREC2)\"&gt;&lt;\/noscr"+"ipt&gt;","cscURI":"http:\/\/csc.beap.bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136gehrd8(gid$ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH,si$4451051,sp$1183300100,pv$1,v$2.0,st$1478058901871338))&amp;t=J_3-D_3&amp;al=(as$125gmvbnp,aid$0Vpj5dgnOXs-,cr$-1,ct$25,at$H,eob$fac2_r=1:fed_status=17:gd1_match_id=-1:pt=8:rbkid=2315208551:ud_risk=0.00:win_s=4:ypos=LREC2)","behavior":"non_exp","adID":"1234567","matchID":"999999.999999.999999.999999","bookID":"2315208551","slotID":"8","serveType":"-1","err":false,"hasExternal":false,"supp_ugc":"0","placementID":"3536023551","fdb":"{ \\\"fdb_url\\\": \\\"http:\\\\\\\/\\\\\\\/beap-bc.yahoo.com\\\\\\\/af\\\\\\\/us?bv=1.0.0&amp;bs=(160qoa167(gid$ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH,st$1478058901547400,srv$1,si$4451051,ct$25,exp$1478066101547400,adv$26513753608,li$3535930051,cr$4527066551,v$1.0,pbid$20459933223,seid$103884551))&amp;al=(type${type},cmnt${cmnt},subo${subo})&amp;r=10\\\", \\\"fdb_on\\\": \\\"1\\\", \\\"fdb_exp\\\": \\\"1478066101547\\\", \\\"fdb_intl\\\": \\\"en-US\\\" }","serveTime":"1478058901547400","impID":"0Vpj5dgnOXs-","creativeID":4527066551,"adc":"{\\\"label\\\":\\\"AdChoices\\\",\\\"url\\\":\\\"https:\\\\\/\\\\\/info.yahoo.com\\\\\/privacy\\\\\/us\\\\\/yahoo\\\\\/relevantads.html\\\",\\\"close\\\":\\\"Close\\\",\\\"closeAd\\\":\\\"Close Ad\\\",\\\"showAd\\\":\\\"Show ad\\\",\\\"collapse\\\":\\\"Collapse\\\",\\\"fdb\\\":\\\"I don't like this ad\\\",\\\"code\\\":\\\"en-us\\\"}","is3rd":1,"facStatus":{"fedStatusCode":"17","fedStatusMessage":"YAX\/YAM\/SAPY replaced GD2 ESOV line"},"userProvidedData":{},"slotData":{},"size":"300x250"}},"conf":{"w":300,"h":250}},{"id":"LREC3","html":"&lt;scr"+"ipt type=\"text\/javascr"+"ipt\"&gt;document.write('&lt;img src=\"http:\/\/na.ads.yahoo.com\/yax\/csc?sn=1eb3f78ccfeaf5bc63beb05f976009a093fd4cbd&amp;es=NJ.cs9DRVINCAYO7lfxtDuOS2jYYNnSCdyFuNLFFoNwC_VwQMwOW6WcmfwaDlw_h43OSZF9LAs5jEfKDWijnwnH4RF8WV.knpy9OWVVPTyP1S.Lwfek0xSJsPbVPKTvA_x27psLTHrORnczb_CE.fTH65Ta5w_9vuqGvQyO_E7ICisnaw.EqaJ2LXLZD6Uu6TwRN2xsOwPqxHn3Y1MqX665ivRgYHMkV8kO7UYzxt5C36bhkbO1xXSDqOZAN08Lh3LV41LSEc2BYpyEOArhKSn5grEb.xMXDEsGMNWeRhUr9XYGqRql2&amp;ve=2&amp;ty=0&amp;brxw=true&amp;sasc=4&amp;yredirect=\" style=\"display:none\" height=\"1\" width=\"1\" alt=\"\"&gt;');\ndocument.write('&lt;scr','ipt id=\"yax_meta\" type=\"text\/x-yax-meta\"&gt;','{\"fdb_url\": \"http:\/\/beap-bc.yahoo.com\/af\/us?bv=1.0.0&amp;bs=(1569neltu(gid$b497bd47-b357-ae8d-8706-31ac2a653d31,st$1478058901552,li$200,cr$55507194,dmn$yahoo.com,srv$4,exp$1478563934256,ct$26,v$1.0,adv$3,pbid$20459933223,seid$103884551))&amp;al=(type${type},cmnt${cmnt},subo${subo})&amp;r=1214\", \"fdb_on\": \"1\", \"fdb_exp\": \"1478063701552\", \"fdb_intl\": \"en-US\", \"error\": \"\" }&lt;\/scr', 'ipt&gt;');\ndocument.write('&lt;scr', 'ipt type=\"text\/javascr"+"ipt\"&gt;', '(function(){ var w = window, sf = (w &amp;&amp; w.$sf &amp;&amp; w.$sf.ext), di = document.getElementById(\"yax_meta\"); if (sf &amp;&amp; typeof sf.msg == \"function\" &amp;&amp; di){ sf.msg({cmd:\"fdb\", data: di}); }})(); &lt;\/scr', 'ipt&gt;');\ndocument.write('&lt;scr' + 'ipt async src=\\\"\\\/\\\/pagead2.googlesyndication.com\\\/pagead\\\/js\\\/adsbygoogle.js\\\"&gt;&lt;\\\/scr' + 'ipt&gt;\\n&lt;ins class=\\\"adsbygoogle\\\"\\n style=\\\"display:inline-block;width:300px;height:250px\\\"\\n data-ad-client=\\\"ca-pub-5786243031610172\\\"\\n data-ad-slot=\\\"8621928762\\\"\\n data-language=\\\"en\\\"\\n data-page-url=\\\"http:\/\/finance.yahoo.com\/news\/best-psvr-games-170003443.html\\\"\\n&gt;&lt;\\\/ins&gt;\\n&lt;scr' + 'ipt&gt;\\n(adsbygoogle = window.adsbygoogle || []).push({params: {google_allow_expandable_ads: false}});\\n&lt;\\\/scr' + 'ipt&gt;');\ndocument.write('&lt;scr"+"ipt type=\"text\/javascr"+"ipt\" src=\"http:\/\/ads.yahoo.com\/get-user-id?ver=2&amp;n=23351&amp;ts=1478058901&amp;sig=a92e01995d30eeb6\"&gt;&lt;\\\/scr"+"ipt&gt;');document.write('&lt;!--YAXR BannerAd CrId:55507194, RmxCrId:, DspCrId:--&gt;');&lt;\/scr"+"ipt&gt;","lowHTML":"","meta":{"y":{"pos":"LREC3","cscHTML":"&lt;scr"+"ipt language=javascr"+"ipt&gt; if(window.xzq_d==null)window.xzq_d=new Object();window.xzq_d['rrZj5dgnOXs-']='(as$125386kjr,aid$rrZj5dgnOXs-,cr$-1,ct$25,at$H,eob$fac2_r=1:fed_status=17:gd1_match_id=-1:pt=8:rbkid=2315228051:ud_risk=0.00:win_s=4:ypos=LREC3)';&lt;\/scr"+"ipt&gt;&lt;noscr"+"ipt&gt;&lt;img width=1 height=1 alt=\"\" src=\"http:\/\/csc.beap.bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136gehrd8(gid$ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH,si$4451051,sp$1183300100,pv$1,v$2.0,st$1478058901871338))&amp;t=J_3-D_3&amp;al=(as$125386kjr,aid$rrZj5dgnOXs-,cr$-1,ct$25,at$H,eob$fac2_r=1:fed_status=17:gd1_match_id=-1:pt=8:rbkid=2315228051:ud_risk=0.00:win_s=4:ypos=LREC3)\"&gt;&lt;\/noscr"+"ipt&gt;","cscURI":"http:\/\/csc.beap.bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136gehrd8(gid$ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH,si$4451051,sp$1183300100,pv$1,v$2.0,st$1478058901871338))&amp;t=J_3-D_3&amp;al=(as$125386kjr,aid$rrZj5dgnOXs-,cr$-1,ct$25,at$H,eob$fac2_r=1:fed_status=17:gd1_match_id=-1:pt=8:rbkid=2315228051:ud_risk=0.00:win_s=4:ypos=LREC3)","behavior":"non_exp","adID":"1234567","matchID":"999999.999999.999999.999999","bookID":"2315228051","slotID":"9","serveType":"-1","err":false,"hasExternal":false,"supp_ugc":"0","placementID":"3536043051","fdb":"{ \\\"fdb_url\\\": \\\"http:\\\\\\\/\\\\\\\/beap-bc.yahoo.com\\\\\\\/af\\\\\\\/us?bv=1.0.0&amp;bs=(160hpr10h(gid$ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH,st$1478058901547400,srv$1,si$4451051,ct$25,exp$1478066101547400,adv$26513753608,li$3535909051,cr$4527091051,v$1.0,pbid$20459933223,seid$103884551))&amp;al=(type${type},cmnt${cmnt},subo${subo})&amp;r=10\\\",
+ \\\"fdb_on\\\": \\\"1\\\", \\\"fdb_exp\\\": \\\"1478066101547\\\", \\\"fdb_intl\\\": \\\"en-US\\\" }","serveTime":"1478058901547400","impID":"rrZj5dgnOXs-","creativeID":4527091051,"adc":"{\\\"label\\\":\\\"AdChoices\\\",\\\"url\\\":\\\"https:\\\\\/\\\\\/info.yahoo.com\\\\\/privacy\\\\\/us\\\\\/yahoo\\\\\/relevantads.html\\\",\\\"close\\\":\\\"Close\\\",\\\"closeAd\\\":\\\"Close Ad\\\",\\\"showAd\\\":\\\"Show ad\\\",\\\"collapse\\\":\\\"Collapse\\\",\\\"fdb\\\":\\\"I don't like this ad\\\",\\\"code\\\":\\\"en-us\\\"}","is3rd":1,"facStatus":{"fedStatusCode":"17","fedStatusMessage":"YAX\/YAM\/SAPY replaced GD2 ESOV line"},"userProvidedData":{},"slotData":{},"size":"300x250"}},"conf":{"w":300,"h":250}},{"id":"FOOT","html":"&lt;!-- SpaceID=1183300100 loc=FOOT noad --&gt;&lt;!-- fac-gd2-noad --&gt;&lt;!-- gd2-status-2 --&gt;&lt;!--QYZ CMS_NONE_AVAIL,,;;FOOT;1183300100;2--&gt;","lowHTML":"","meta":{"y":{"pos":"FOOT","cscHTML":"&lt;scr"+"ipt language=javascr"+"ipt&gt;\nif(window.xzq_d==null)window.xzq_d=new Object();\nwindow.xzq_d['Xeth5dgnOXs-']='(as$125kll4ti,aid$Xeth5dgnOXs-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=FOOT)';\n&lt;\/scr"+"ipt&gt;&lt;noscr"+"ipt&gt;&lt;img width=1 height=1 alt=\"\" src=\"http:\/\/csc.beap.bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136icdmhm(gid$ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH,st$1478058901547400,si$4451051,sp$1183300100,pv$1,v$2.0))&amp;t=J_3-D_3&amp;al=(as$125kll4ti,aid$Xeth5dgnOXs-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=FOOT)\"&gt;&lt;\/noscr"+"ipt&gt;","cscURI":"http:\/\/csc.beap.bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136icdmhm(gid$ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH,st$1478058901547400,si$4451051,sp$1183300100,pv$1,v$2.0))&amp;t=J_3-D_3&amp;al=(as$125kll4ti,aid$Xeth5dgnOXs-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=FOOT)","behavior":"non_exp","adID":"#2","matchID":"#2","bookID":"-1","slotID":"4","serveType":"-1","err":"invalid_space","hasExternal":false,"supp_ugc":"0","placementID":-1,"fdb":"{ \\\"fdb_url\\\": \\\"http:\\\\\/\\\\\/beap-bc.yahoo.com\\\\\/af?bv=1.0.0&amp;bs=(15ir45r6b(gid$jmTVQDk4LjHHbFsHU5jMkgKkMTAuNwAAAACljpkK,st$1402537233026922,srv$1,si$13303551,adv$25941429036,ct$25,li$3239250051,exp$1402544433026922,cr$4154984551,pbid$25372728133,v$1.0))&amp;al=(type${type},cmnt${cmnt},subo${subo})&amp;r=10\\\", \\\"fdb_on\\\": \\\"1\\\", \\\"fdb_exp\\\": \\\"1402544433026\\\", \\\"fdb_intl\\\": \\\"en-us\\\" , \\\"d\\\" : \\\"1\\\" }","serveTime":"1478058901547400","impID":"","creativeID":-1,"adc":"{\\\"label\\\":\\\"AdChoices\\\",\\\"url\\\":\\\"https:\\\\\/\\\\\/info.yahoo.com\\\\\/privacy\\\\\/us\\\\\/yahoo\\\\\/relevantads.html\\\",\\\"close\\\":\\\"Close\\\",\\\"closeAd\\\":\\\"Close Ad\\\",\\\"showAd\\\":\\\"Show ad\\\",\\\"collapse\\\":\\\"Collapse\\\",\\\"fdb\\\":\\\"I don't like this ad\\\",\\\"code\\\":\\\"en-us\\\"}","is3rd":0,"facStatus":{"fedStatusCode":"0","fedStatusMessage":"federation is not configured for ad slot"},"userProvidedData":{},"slotData":{"pt":"0","bamt":"10000000000.000000","namt":"0.000000","isLiveAdPreview":"false","is_ad_feedback":"false","trusted_custom":"false","isCompAds":"false","pvid":"ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH"}}}},{"id":"FSRVY","html":"&lt;!-- APT Vendor: Right Media, Format: Standard Graphical --&gt;\n&lt;!-- BEGIN STANDARD TAG - 1 x 1 - APT Run-of Yahoo US O&amp;O Redirects - DO NOT MODIFY --&gt;\n&lt;SCR"+"IPT TYPE=\"text\/javascr"+"ipt\" SRC=\"https:\/\/na.ads.yahoo.com\/yax\/banner?ve=1&amp;tt=1&amp;si=103884551&amp;asz=1x1&amp;u=http:\/\/finance.yahoo.com\/news\/best-psvr-games-170003443.html&amp;gdAdId=Okdi5dgnOXs-&amp;gdUuid=ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH&amp;gdSt=1478058901547400&amp;publisher_blob=lmsid:a0Vd000000AE7lXEAT;revsp:407fd5b2-47b4-4c00-a1d0-421cf33bb721;lpstaid:80b35014-fba3-377e-adc5-47fb44f61fa7;pct:story|ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH|1183300100|FSRVY|1478058901.86392|2-9-17:ysd:1&amp;pub_redirect=http:\/\/beap-bc.yahoo.com\/yc\/YnY9MS4wLjAmYnM9KDE3anBiY29yZyhnaWQka3UuckZUWXpMaksxQ1haSldCbGhOUUo4TVRFNExnQUFBQUJueUpRSCxzdCQxNDc4MDU4OTAxNTQ3NDAwLHNpJDQ0NTEwNTEsc3AkMTE4MzMwMDEwMCxjdCQyNSx5Yngkbk5kY2xaRXdzNEJDTnBBWVMuNVp4dyxsbmckZW4tdXMsY3IkNDUyODE3NzA1MSx2JDIuMCxhaWQkT2tkaTVkZ25PWHMtLGJpJDIzMTU5MzIwNTEsbW1lJDk3NTI1MTU4ODY0ODQ0NDE4NTAsciQwLHlvbyQxLGFncCQzNTM3MDA2NTUxLGFwJEZTUlZZKSk\/1\/*&amp;K=1\"&gt;&lt;\/SCR"+"IPT&gt;\n&lt;!-- END TAG --&gt;&lt;scr"+"ipt&gt;var url = \"\"; if(url &amp;&amp; url.search(\"http\") != -1){document.write('&lt;scr"+"ipt src=\"' + url + '\"&gt;&lt;\\\/scr"+"ipt&gt;');}&lt;\/scr"+"ipt&gt;&lt;!--QYZ 2315932051,4528177051,;;FSRVY;1183300100;1--&gt;","lowHTML":"","meta":{"y":{"pos":"FSRVY","cscHTML":"&lt;scr"+"ipt language=javascr"+"ipt&gt;\nif(window.xzq_d==null)window.xzq_d=new Object();\nwindow.xzq_d['Okdi5dgnOXs-']='(as$13am06v6c,aid$Okdi5dgnOXs-,bi$2315932051,agp$3537006551,cr$4528177051,ct$25,at$H,eob$gd1_match_id=-1:ypos=FSRVY)';\n&lt;\/scr"+"ipt&gt;&lt;noscr"+"ipt&gt;&lt;img width=1 height=1 alt=\"\" src=\"http:\/\/csc.beap.bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136icdmhm(gid$ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH,st$1478058901547400,si$4451051,sp$1183300100,pv$1,v$2.0))&amp;t=J_3-D_3&amp;al=(as$13am06v6c,aid$Okdi5dgnOXs-,bi$2315932051,agp$3537006551,cr$4528177051,ct$25,at$H,eob$gd1_match_id=-1:ypos=FSRVY)\"&gt;&lt;\/noscr"+"ipt&gt;","cscURI":"http:\/\/csc.beap.bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136icdmhm(gid$ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH,st$1478058901547400,si$4451051,sp$1183300100,pv$1,v$2.0))&amp;t=J_3-D_3&amp;al=(as$13am06v6c,aid$Okdi5dgnOXs-,bi$2315932051,agp$3537006551,cr$4528177051,ct$25,at$H,eob$gd1_match_id=-1:ypos=FSRVY)","behavior":"non_exp","adID":"9752515886484441850","matchID":"999999.999999.999999.999999","bookID":"2315932051","slotID":"5","serveType":"-1","err":false,"hasExternal":false,"supp_ugc":"0","placementID":"3537006551","fdb":"{ \\\"fdb_url\\\": \\\"http:\\\\\\\/\\\\\\\/beap-bc.yahoo.com\\\\\\\/af\\\\\\\/us?bv=1.0.0&amp;bs=(160o8v8te(gid$ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH,st$1478058901547400,srv$1,si$4451051,ct$25,exp$1478066101547400,adv$26513753608,li$3536867051,cr$4528177051,v$1.0,pbid$20459933223,seid$103884551))&amp;al=(type${type},cmnt${cmnt},subo${subo})&amp;r=10\\\", \\\"fdb_on\\\": \\\"1\\\", \\\"fdb_exp\\\": \\\"1478066101547\\\", \\\"fdb_intl\\\": \\\"en-US\\\" }","serveTime":"1478058901547400","impID":"Okdi5dgnOXs-","creativeID":4528177051,"adc":"{\\\"label\\\":\\\"AdChoices\\\",\\\"url\\\":\\\"https:\\\\\/\\\\\/info.yahoo.com\\\\\/privacy\\\\\/us\\\\\/yahoo\\\\\/relevantads.html\\\",\\\"close\\\":\\\"Close\\\",\\\"closeAd\\\":\\\"Close Ad\\\",\\\"showAd\\\":\\\"Show ad\\\",\\\"collapse\\\":\\\"Collapse\\\",\\\"fdb\\\":\\\"I don't like this ad\\\",\\\"code\\\":\\\"en-us\\\"}","is3rd":1,"facStatus":{"fedStatusCode":"0","fedStatusMessage":"federation is not configured for ad slot"},"userProvidedData":{},"slotData":{"pt":"8","bamt":"10000000000.000000","namt":"0.000000","isLiveAdPreview":"false","is_ad_feedback":"false","trusted_custom":"false","isCompAds":"false","adjf":"1.000000","alpha":"-1.000000","ffrac":"1.000000","pcpm":"-1.000000","fc":"false","sdate":"1474408390","edate":"1561953540","bimpr":82733924352,"pimpr":0,"spltp":0,"frp":"false","pvid":"ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH"},"size":"1x1"}},"conf":{"w":1,"h":1}}],"conf":{"useYAC":0,"usePE":1,"servicePath":"","xservicePath":"","beaconPath":"","renderPath":"","allowFiF":false,"srenderPath":"http:\/\/l.yimg.com\/rq\/darla\/2-9-17\/html\/r-sf.html","renderFile":"http:\/\/l.yimg.com\/rq\/darla\/2-9-17\/html\/r-sf.html","sfbrenderPath":"http:\/\/l.yimg.com\/rq\/darla\/2-9-17\/html\/r-sf.html","msgPath":"http:\/\/fc.yahoo.com\/sdarla\/2-9-17\/html\/msg.html","cscPath":"http:\/\/l.yimg.com\/rq\/darla\/2-9-17\/html\/r-csc.html","root":"sdarla","edgeRoot":"http:\/\/l.yimg.com\/rq\/darla\/2-9-17","sedgeRoot":"https:\/\/s.yimg.com\/rq\/darla\/2-9-17","version":"2-9-17","tpbURI":"","hostFile":"http:\/\/l.yimg.com\/rq\/darla\/2-9-17\/js\/g-r-min.js","property":"finance_en-US","fdb_locale":"What don't you like about this ad?|It's offensive|Something else|Thank you for helping us improve your Yahoo experience|It's not relevant|It's distracting|I don't like this ad|Send|Done|Why do I see ads?|Learn more about your feedback.","positions":{"BTN":{"dest":"destBTN","asz":"120x60","id":"BTN","h":"60","w":"120"},"BTN-1":{"dest":"destBTN-1","asz":"120x60","id":"BTN-1","h":"60","w":"120"},"BTN-2":{"dest":"destBTN-2","asz":"120x60","id":"BTN-2","h":"60","w":"120"},"BTN-3":{"dest":"destBTN-3","asz":"120x60","id":"BTN-3","h":"60","w":"120"},"MAST":{"dest":"destMAST","asz":"970x250","id":"MAST","h":"250","w":"970"},"LDRB":{"dest":"destLDRB","asz":"728x90","id":"LDRB","h":"90","w":"728"},"SPL":{"dest":"destSPL","id":"SPL"},"LREC":{"dest":"destLREC","asz":"300x250","id":"LREC","h":"250","w":"300"},"LREC2":{"dest":"destLREC2","asz":"300x250","id":"LREC2","h":"250","w":"300"},"LREC3":{"dest":"destLREC3","asz":"300x250","id":"LREC3","h":"250","w":"300"},"FOOT":{"dest":"destFOOT","id":"FOOT"},"FSRVY":{"dest":"destFSRVY","id":"FSRVY","w":1,"h":1}},"events":{"DEFAULT":{"ult":{"pg":{"property":"finance_en-US","test":"finance-US-en-US-def"}},"clw":{"LREC":{"blocked_by":"MON-1"},"MON-1":{"blocked_by":"LREC"},"MAST":{"blocked_by":"SPL,LDRB"},"LDRB":{"blocked_by":"MAST,SPL"},"SPL":{"blocked_by":"MAST,LDRB"}}}},"lang":"en-US","spaceID":"1183300100","debug":false,"asString":"{\"useYAC\":0,\"usePE\":1,\"servicePath\":\"\",\"xservicePath\":\"\",\"beaconPath\":\"\",\"renderPath\":\"\",\"allowFiF\":false,\"srenderPath\":\"http:\\\/\\\/l.yimg.com\\\/rq\\\/darla\\\/2-9-17\\\/html\\\/r-sf.html\",\"renderFile\":\"http:\\\/\\\/l.yimg.com\\\/rq\\\/darla\\\/2-9-17\\\/html\\\/r-sf.html\",\"sfbrenderPath\":\"http:\\\/\\\/l.yimg.com\\\/rq\\\/darla\\\/2-9-17\\\/html\\\/r-sf.html\",\"msgPath\":\"http:\\\/\\\/fc.yahoo.com\\\/sdarla\\\/2-9-17\\\/html\\\/msg.html\",\"cscPath\":\"http:\\\/\\\/l.yimg.com\\\/rq\\\/darla\\\/2-9-17\\\/html\\\/r-csc.html\",\"root\":\"sdarla\",\"edgeRoot\":\"http:\\\/\\\/l.yimg.com\\\/rq\\\/darla\\\/2-9-17\",\"sedgeRoot\":\"https:\\\/\\\/s.yimg.com\\\/rq\\\/darla\\\/2-9-17\",\"version\":\"2-9-17\",\"tpbURI\":\"\",\"hostFile\":\"http:\\\/\\\/l.yimg.com\\\/rq\\\/darla\\\/2-9-17\\\/js\\\/g-r-min.js\",\"property\":\"finance_en-US\",\"fdb_locale\":\"What don't you like about this ad?|It's offensive|Something else|Thank you for helping us improve your Yahoo experience|It's not relevant|It's distracting|I don't like this ad|Send|Done|Why do I see ads?|Learn more about your feedback.\",\"positions\":{\"BTN\":{\"dest\":\"destBTN\",\"asz\":\"120x60\",\"id\":\"BTN\",\"h\":\"60\",\"w\":\"120\"},\"BTN-1\":{\"dest\":\"destBTN-1\",\"asz\":\"120x60\",\"id\":\"BTN-1\",\"h\":\"60\",\"w\":\"120\"},\"BTN-2\":{\"dest\":\"destBTN-2\",\"asz\":\"120x60\",\"id\":\"BTN-2\",\"h\":\"60\",\"w\":\"120\"},\"BTN-3\":{\"dest\":\"destBTN-3\",\"asz\":\"120x60\",\"id\":\"BTN-3\",\"h\":\"60\",\"w\":\"120\"},\"MAST\":{\"dest\":\"destMAST\",\"asz\":\"970x250\",\"id\":\"MAST\",\"h\":\"250\",\"w\":\"970\"},\"LDRB\":{\"dest\":\"destLDRB\",\"asz\":\"728x90\",\"id\":\"LDRB\",\"h\":\"90\",\"w\":\"728\"},\"SPL\":{\"dest\":\"destSPL\",\"id\":\"SPL\"},\"LREC\":{\"dest\":\"destLREC\",\"asz\":\"300x250\",\"id\":\"LREC\",\"h\":\"250\",\"w\":\"300\"},\"LREC2\":{\"dest\":\"destLREC2\",\"asz\":\"300x250\",\"id\":\"LREC2\",\"h\":\"250\",\"w\":\"300\"},\"LREC3\":{\"dest\":\"destLREC3\",\"asz\":\"300x250\",\"id\":\"LREC3\",\"h\":\"250\",\"w\":\"300\"},\"FOOT\":{\"dest\":\"destFOOT\",\"id\":\"FOOT\"},\"FSRVY\":{\"dest\":\"destFSRVY\",\"id\":\"FSRVY\",\"w\":1,\"h\":1}},\"events\":{\"DEFAULT\":{\"ult\":{\"pg\":{\"property\":\"finance_en-US\",\"test\":\"finance-US-en-US-def\"}},\"clw\":{\"LREC\":{\"blocked_by\":\"MON-1\"},\"MON-1\":{\"blocked_by\":\"LREC\"},\"MAST\":{\"blocked_by\":\"SPL,LDRB\"},\"LDRB\":{\"blocked_by\":\"MAST,SPL\"},\"SPL\":{\"blocked_by\":\"MAST,LDRB\"}}}},\"lang\":\"en-US\",\"spaceID\":\"1183300100\",\"debug\":false}"},"meta":{"y":{"pageEndHTML":"&lt;scr"+"ipt language=javascr"+"ipt&gt;\n(function(){window.xzq_p=function(R){M=R};window.xzq_svr=function(R){J=R};function F(S){var T=document;if(T.xzq_i==null){T.xzq_i=new Array();T.xzq_i.c=0}var R=T.xzq_i;R[++R.c]=new Image();R[R.c].src=S}window.xzq_sr=function(){var S=window;var Y=S.xzq_d;if(Y==null){return }if(J==null){return }var T=J+M;if(T.length&gt;P){C();return }var X=\"\";var U=0;var W=Math.random();var V=(Y.hasOwnProperty!=null);var R;for(R in Y){if(typeof Y[R]==\"string\"){if(V&amp;&amp;!Y.hasOwnProperty(R)){continue}if(T.length+X.length+Y[R].length&lt;=P){X+=Y[R]}else{if(T.length+Y[R].length&gt;P){}else{U++;N(T,X,U,W);X=Y[R]}}}}if(U){U++}N(T,X,U,W);C()};function N(R,U,S,T){if(U.length&gt;0){R+=\"&amp;al=\"}F(R+U+\"&amp;s=\"+S+\"&amp;r=\"+T)}function C(){window.xzq_d=null;M=null;J=null}function K(R){xzq_sr()}function B(R){xzq_sr()}function L(U,V,W){if(W){var R=W.toString();var T=U;var Y=R.match(new RegExp(\"\\\\\\\\(([^\\\\\\\\)]*)\\\\\\\\)\"));Y=(Y[1].length&gt;0?Y[1]:\"e\");T=T.replace(new RegExp(\"\\\\\\\\([^\\\\\\\\)]*\\\\\\\\)\",\"g\"),\"(\"+Y+\")\");if(R.indexOf(T)&lt;0){var X=R.indexOf(\"{\");if(X&gt;0){R=R.substring(X,R.length)}else{return W}R=R.replace(new RegExp(\"([^a-zA-Z0-9$_])this([^a-zA-Z0-9$_])\",\"g\"),\"$1xzq_this$2\");var Z=T+\";var rv = f( \"+Y+\",this);\";var S=\"{var a0 = '\"+Y+\"';var ofb = '\"+escape(R)+\"' ;var f = new Function( a0, 'xzq_this', unescape(ofb));\"+Z+\"return rv;}\";return new Function(Y,S)}else{return W}}return V}window.xzq_eh=function(){if(E||I){this.onload=L(\"xzq_onload(e)\",K,this.onload,0);if(E&amp;&amp;typeof (this.onbeforeunload)!=O){this.onbeforeunload=L(\"xzq_dobeforeunload(e)\",B,this.onbeforeunload,0)}}};window.xzq_s=function(){setTimeout(\"xzq_sr()\",1)};var J=null;var M=null;var Q=navigator.appName;var H=navigator.appVersion;var G=navigator.userAgent;var A=parseInt(H);var D=Q.indexOf(\"Microsoft\");var E=D!=-1&amp;&amp;A&gt;=4;var I=(Q.indexOf(\"Netscape\")!=-1||Q.indexOf(\"Opera\")!=-1)&amp;&amp;A&gt;=4;var O=\"undefined\";var P=2000})();\n&lt;\/scr"+"ipt&gt;&lt;scr"+"ipt language=javascr"+"ipt&gt;\nif(window.xzq_svr)xzq_svr('http:\/\/csc.beap.bc.yahoo.com\/');\nif(window.xzq_p)xzq_p('yi?bv=1.0.0&amp;bs=(136icdmhm(gid$ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH,st$1478058901547400,si$4451051,sp$1183300100,pv$1,v$2.0))&amp;t=J_3-D_3');\nif(window.xzq_s)xzq_s();\n&lt;\/scr"+"ipt&gt;&lt;noscr"+"ipt&gt;&lt;img width=1 height=1 alt=\"\" src=\"http:\/\/csc.beap.bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136icdmhm(gid$ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH,st$1478058901547400,si$4451051,sp$1183300100,pv$1,v$2.0))&amp;t=J_3-D_3\"&gt;&lt;\/noscr"+"ipt&gt;&lt;scr"+"ipt&gt;(function(c){var d=\"https:\/\/\",a=c&amp;&amp;c.JSON,e=\"ypcdb\",g=document,b;function j(n,q,p,o){var m,r;try{m=new Date();m.setTime(m.getTime()+o*1000);g.cookie=[n,\"=\",encodeURIComponent(q),\"; domain=\",p,\"; path=\/; max-age=\",o,\"; expires=\",m.toUTCString()].join(\"\")}catch(r){}}function k(m){return function(){i(m)}}function i(n){var m,o;try{m=new Image();m.onerror=m.onload=function(){m.onerror=m.onload=null;m=null};m.src=n}catch(o){}}function f(o){var p=\"\",n,s,r,q;if(o){try{n=o.match(\/^https?:\\\/\\\/([^\\\/\\?]*)(yahoo\\.com|yimg\\.com|flickr\\.com|yahoo\\.net|rivals\\.com)(:\\d+)?([\\\/\\?]|$)\/);if(n&amp;&amp;n[2]){p=n[2]}n=(n&amp;&amp;n[1])||null;s=n?n.length-1:-1;r=n&amp;&amp;s&gt;=0?n[s]:null;if(r&amp;&amp;r!=\".\"&amp;&amp;r!=\"\/\"){p=\"\"}}catch(q){p=\"\"}}return p}function l(B,n,q,m,p){var u,s,t,A,r,F,z,E,C,y,o,D,x,v=1000,w=v;try{b=location}catch(z){b=null}try{if(a){C=a.parse(p)}else{y=new Function(\"return \"+p);C=y()}}catch(z){C=null}if(y){y=null}try{s=b.hostname;t=b.protocol;if(t){t+=\"\/\/\"}}catch(z){s=t=\"\"}if(!s){try{A=g.URL||b.href||\"\";r=A.match(\/^((http[s]?)\\:[\\\/]+)?([^:\\\/\\s]+|[\\:\\dabcdef\\.]+)\/i);if(r&amp;&amp;r[1]&amp;&amp;r[3]){t=r[1]||\"\";s=r[3]||\"\"}}catch(z){t=s=\"\"}}if(!s||!C||!t||!q){return}A=g.URL||b.href||\"\";E=f(A);if(!E||g.cookie.indexOf(\"ypcdb=\"+n)&gt;-1){return}if(t===d){q=m}u=0;while(F=q[u++]){o=F.lastIndexOf(\"=\");if(o!=-1){D=F.substr(1+o);x=C[D];if(x){setTimeout(k(t+F+x),w);w+=v}}}u=0;while(F=B[u++]){setTimeout(k(t+F),w);w+=v}setTimeout(function(){j(e,n,E,86400)},w)}function h(){l(['ads.yahoo.com\/get-user-id?ver=2&amp;s=800000002&amp;type=redirect&amp;ts=1478058901&amp;sig=fc1c8114f40bbff9','ads.yahoo.com\/get-user-id?ver=2&amp;s=800000008&amp;type=redirect&amp;ts=1478058901&amp;sig=dfd418e805c45ea2'],'70e2b8da6b74a40ea891e47b227926f3',['csync.flickr.com\/csync?ver=2.1','csync.yahooapis.com\/csync?ver=2.1'],['csync.flickr.com\/csync?ver=2.1','csync.yahooapis.com\/csync?ver=2.1'],'{\"2.1\":\"&amp;id=23351&amp;value=on2oz95p1vb9y%26o%3d3%26f%3drd&amp;optout=&amp;timeout=1478058901&amp;sig=11g07k411\"}')}if(c.addEventListener){c.addEventListener(\"load\",h,false)}else{if(c.attachEvent){c.attachEvent(\"onload\",h)}else{c.onload=h}}})(window);\n&lt;\/scr"+"ipt&gt;","pos_list":["BTN","BTN-1","BTN-2","BTN-3","MAST","LDRB","SPL","LREC","LREC2","LREC3","FOOT","FSRVY"],"transID":"darla_prefetch_1478058901546_410565656_3","k2_uri":"","fac_rt":"48319","spaceID":"1183300100","lookupTime":329,"procTime":347,"npv":0,"pvid":"ku.rFTYzLjK1CXZJWBlhNQJ8MTE4LgAAAABnyJQH","serveTime":"1478058901547400","ep":{"site-attribute":"ticker=\"SNE\" wiki_topics=\"PlayStation_VR;Rhythm_game;Launch_game\" ctopid=\"1542500;1480989;1482489;1489489;1577000;12698500;1035500;1878000;10610989;2299500;2334500\" hashtag=\"playstation-vr;sony-playstation-vr;sony-psvr;psvr;playstation-4;playstation;ps4;sony;gaming;games;video-games;featured;%24sne;1542500;1480989;1482489;1489489;1577000;12698500;1035500;1878000;10610989;2299500;2334500\" rs=\"lmsid:a0Vd000000AE7lXEAT;revsp:407fd5b2-47b4-4c00-a1d0-421cf33bb721;lpstaid:80b35014-fba3-377e-adc5-47fb44f61fa7;pct:story\" megamodal=true Y-BUCKET=\"finance-US-en-US-def\"","tgt":"_blank","ref":"http:\/\/finance.yahoo.com\/news\/best-psvr-games-170003443.html","ult":{"pg":{"property":"finance_en-US","test":"finance-US-en-US-def"}},"clw":{"LREC":{"blocked_by":"MON-1"},"MON-1":{"blocked_by":"LREC"},"MAST":{"blocked_by":"SPL,LDRB"},"LDRB":{"blocked_by":"MAST,SPL"},"SPL":{"blocked_by":"MAST,LDRB"}},"lang":"en-US","filter":"no_expandable;exp_iframe_expandable;","darlaID":"darla_instance_1478058901546_1218278615_2"},"pym":{".":"v0.0.9;;-;"},"host":"","filtered":[],"pe":"CWZ1bmN0aW9uIGRwZWQoKSB7IAoJaWYod2luZG93Lnh6cV9kPT1udWxsKXdpbmRvdy54enFfZD1uZXcgT2JqZWN0KCk7CndpbmRvdy54enFfZFsnNlh0ZzVkZ25PWHMtJ109JyhhcyQxMjUzcjU5aDMsYWlkJDZYdGc1ZGduT1hzLSxjciQtMSxjdCQyNSxhdCRILGVvYiRnZDFfbWF0Y2hfaWQ9LTE6eXBvcz1CVE4pJzsKCWlmKHdpbmRvdy54enFfZD09bnVsbCl3aW5kb3cueHpxX2Q9bmV3IE9iamVjdCgpOwp3aW5kb3cueHpxX2RbJ3h0ZGc1ZGduT1hzLSddPScoYXMkMTI1anE1N3E5LGFpZCR4dGRnNWRnbk9Ycy0sY3IkLTEsY3QkMjUsYXQkSCxlb2IkZ2QxX21hdGNoX2lkPS0xOnlwb3M9QlROKSc7CglpZih3aW5kb3cueHpxX2Q9PW51bGwpd2luZG93Lnh6cV9kPW5ldyBPYmplY3QoKTsKd2luZG93Lnh6cV9kWydvek5oNWRnbk9Ycy0nXT0nKGFzJDEyNTV2aGVrOCxhaWQkb3pOaDVkZ25PWHMtLGNyJC0xLGN0JDI1LGF0JEgsZW9iJGdkMV9tYXRjaF9pZD0tMTp5cG9zPUJUTiknOwoJaWYod2luZG93Lnh6cV9kPT1udWxsKXdpbmRvdy54enFfZD1uZXcgT2JqZWN0KCk7CndpbmRvdy54enFfZFsnZ0k5aDVkZ25PWHMtJ109JyhhcyQxMjVja2d1cXIsYWlkJGdJOWg1ZGduT1hzLSxjciQtMSxjdCQyNSxhdCRILGVvYiRnZDFfbWF0Y2hfaWQ9LTE6eXBvcz1CVE4pJzsKCWlmKHdpbmRvdy54enFfZD09bnVsbCl3aW5kb3cueHpxX2Q9bmV3IE9iamVjdCgpOwp3aW5kb3cueHpxX2RbJ2l4Sms1ZGduT1hzLSddPScoYXMkMTI1YjRubzAzLGFpZCRpeEprNWRnbk9Ycy0sY3IkLTEsY3QkMjUsYXQkSCxlb2IkZ2QxX21hdGNoX2lkPS0xOnlwb3M9TUFTVCknOwoJaWYod2luZG93Lnh6cV9kPT1udWxsKXdpbmRvdy54enFfZD1uZXcgT2JqZWN0KCk7CndpbmRvdy54enFfZFsnRjZOaTVkZ25PWHMtJ109JyhhcyQxM2FtbThtZGQsYWlkJEY2Tmk1ZGduT1hzLSxiaSQyMzE1MjA3NTUxLGFncCQzNTM2MDMzNTUxLGNyJDQ1MjcwODEwNTEsY3QkMjUsYXQkSCxlb2IkZ2QxX21hdGNoX2lkPS0xOnlwb3M9TERSQiknOwoJaWYod2luZG93Lnh6cV9kPT1udWxsKXdpbmRvdy54enFfZD1uZXcgT2JqZWN0KCk7CndpbmRvdy54enFfZFsnYUc1azVkZ25PWHMtJ109JyhhcyQxMjV1b2E0ZjMsYWlkJGFHNWs1ZGduT1hzLSxjciQtMSxjdCQyNSxhdCRILGVvYiRnZDFfbWF0Y2hfaWQ9LTE6eXBvcz1TUEwpJzsKCWlmKHdpbmRvdy54enFfZD09bnVsbCl3aW5kb3cueHpxX2Q9bmV3IE9iamVjdCgpOwp3aW5kb3cueHpxX2RbJzlQNWk1ZGduT1hzLSddPScoYXMkMTNhcTF2YXI1LGFpZCQ5UDVpNWRnbk9Ycy0sYmkkMjMxNjcxNjA1MSxhZ3AkMzUzNzY4NTU1MSxjciQ0NTI4ODE4MDUxLGN0JDI1LGF0JEgsZW9iJGdkMV9tYXRjaF9pZD0tMTp5cG9zPUxSRUMpJzsKCWlmKHdpbmRvdy54enFfZD09bnVsbCl3aW5kb3cueHpxX2Q9bmV3IE9iamVjdCgpO3dpbmRvdy54enFfZFsnMFZwajVkZ25PWHMtJ109JyhhcyQxMjVnbXZibnAsYWlkJDBWcGo1ZGduT1hzLSxjciQtMSxjdCQyNSxhdCRILGVvYiRmYWMyX3I9MTpmZWRfc3RhdHVzPTE3OmdkMV9tYXRjaF9pZD0tMTpwdD04OnJia2lkPTIzMTUyMDg1NTE6dWRfcmlzaz0wLjAwOndpbl9zPTQ6eXBvcz1MUkVDMiknOwoJaWYod2luZG93Lnh6cV9kPT1udWxsKXdpbmRvdy54enFfZD1uZXcgT2JqZWN0KCk7d2luZG93Lnh6cV9kWydyclpqNWRnbk9Ycy0nXT0nKGFzJDEyNTM4NmtqcixhaWQkcnJaajVkZ25PWHMtLGNyJC0xLGN0JDI1LGF0JEgsZW9iJGZhYzJfcj0xOmZlZF9zdGF0dXM9MTc6Z2QxX21hdGNoX2lkPS0xOnB0PTg6cmJraWQ9MjMxNTIyODA1MTp1ZF9yaXNrPTAuMDA6d2luX3M9NDp5cG9zPUxSRUMzKSc7CglpZih3aW5kb3cueHpxX2Q9PW51bGwpd2luZG93Lnh6cV9kPW5ldyBPYmplY3QoKTsKd2luZG93Lnh6cV9kWydYZXRoNWRnbk9Ycy0nXT0nKGFzJDEyNWtsbDR0aSxhaWQkWGV0aDVkZ25PWHMtLGNyJC0xLGN0JDI1LGF0JEgsZW9iJGdkMV9tYXRjaF9pZD0tMTp5cG9zPUZPT1QpJztpZih3aW5kb3cueHpxX2Q9PW51bGwpd2luZG93Lnh6cV9kPW5ldyBPYmplY3QoKTsKd2luZG93Lnh6cV9kWydPa2RpNWRnbk9Ycy0nXT0nKGFzJDEzYW0wNnY2YyxhaWQkT2tkaTVkZ25PWHMtLGJpJDIzMTU5MzIwNTEsYWdwJDM1MzcwMDY1NTEsY3IkNDUyODE3NzA1MSxjdCQyNSxhdCRILGVvYiRnZDFfbWF0Y2hfaWQ9LTE6eXBvcz1GU1JWWSknOwoJCSB9OwpkcGVkLnRyYW5zSUQgPSAiZGFybGFfcHJlZmV0Y2hfMTQ3ODA1ODkwMTU0Nl80MTA1NjU2NTZfMyI7CgoJZnVuY3Rpb24gZHBlcigpIHsgCgkKaWYod2luZG93Lnh6cV9zdnIpeHpxX3N2cignaHR0cDovL2NzYy5iZWFwLmJjLnlhaG9vLmNvbS8nKTsKaWYod2luZG93Lnh6cV9wKXh6cV9wKCd5aT9idj0xLjAuMCZicz0oMTM2aWNkbWhtKGdpZCRrdS5yRlRZekxqSzFDWFpKV0JsaE5RSjhNVEU0TGdBQUFBQm55SlFILHN0JDE0NzgwNTg5MDE1NDc0MDAsc2kkNDQ1MTA1MSxzcCQxMTgzMzAwMTAwLHB2JDEsdiQyLjApKSZ0PUpfMy1EXzMnKTsKaWYod2luZG93Lnh6cV9zKXh6cV9zKCk7CgoKCShmdW5jdGlvbihjKXt2YXIgZD0iaHR0cHM6Ly8iLGE9YyYmYy5KU09OLGU9InlwY2RiIixnPWRvY3VtZW50LGI7ZnVuY3Rpb24gaihuLHEscCxvKXt2YXIgbSxyO3RyeXttPW5ldyBEYXRlKCk7bS5zZXRUaW1lKG0uZ2V0VGltZSgpK28qMTAwMCk7Zy5jb29raWU9W24sIj0iLGVuY29kZVVSSUNvbXBvbmVudChxKSwiOyBkb21haW49IixwLCI7IHBhdGg9LzsgbWF4LWFnZT0iLG8sIjsgZXhwaXJlcz0iLG0udG9VVENTdHJpbmcoKV0uam9pbigiIil9Y2F0Y2gocil7fX1mdW5jdGlvbiBrKG0pe3JldHVybiBmdW5jdGlvbigpe2kobSl9fWZ1bmN0aW9uIGkobil7dmFyIG0sbzt0cnl7bT1uZXcgSW1hZ2UoKTttLm9uZXJyb3I9bS5vbmxvYWQ9ZnVuY3Rpb24oKXttLm9uZXJyb3I9bS5vbmxvYWQ9bnVsbDttPW51bGx9O20uc3JjPW59Y2F0Y2gobyl7fX1mdW5jdGlvbiBmKG8pe3ZhciBwPSIiLG4scyxyLHE7aWYobyl7dHJ5e249by5tYXRjaCgvXmh0dHBzPzpcL1wvKFteXC9cP10qKSh5YWhvb1wuY29tfHlpbWdcLmNvbXxmbGlja3JcLmNvbXx5YWhvb1wubmV0fHJpdmFsc1wuY29tKSg6XGQrKT8oW1wvXD9dfCQpLyk7aWYobiYmblsyXSl7cD1uWzJdfW49KG4mJm5bMV0pfHxudWxsO3M9bj9uLmxlbmd0aC0xOi0xO3I9biYmcz49MD9uW3NdOm51bGw7aWYociYmciE9Ii4iJiZyIT0iLyIpe3A9IiJ9fWNhdGNoKHEpe3A9IiJ9fXJldHVybiBwfWZ1bmN0aW9uIGwoQixuLHEsbSxwKXt2YXIgdSxzLHQsQSxyLEYseixFLEMseSxvLEQseCx2PTEwMDAsdz12O3RyeXtiPWxvY2F0aW9ufWNhdGNoKHope2I9bnVsbH10cnl7aWYoYSl7Qz1hLnBhcnNlKHApfWVsc2V7eT1uZXcgRnVuY3Rpb24oInJldHVybiAiK3ApO0M9eSgpfX1jYXRjaCh6KXtDPW51bGx9aWYoeSl7eT1udWxsfXRyeXtzPWIuaG9zdG5hbWU7dD1iLnByb3RvY29sO2lmKHQpe3QrPSIvLyJ9fWNhdGNoKHope3M9dD0iIn1pZighcyl7dHJ5e0E9Zy5VUkx8fGIuaHJlZnx8IiI7cj1BLm1hdGNoKC9eKChodHRwW3NdPylcOltcL10rKT8oW146XC9cc10rfFtcOlxkYWJjZGVmXC5dKykvaSk7aWYociYmclsxXSYmclszXSl7dD1yWzFdfHwiIjtzPXJbM118fCIifX1jYXRjaCh6KXt0PXM9IiJ9fWlmKCFzfHwhQ3x8IXR8fCFxKXtyZXR1cm59QT1nLlVSTHx8Yi5ocmVmfHwiIjtFPWYoQSk7aWYoIUV8fGcuY29va2llLmluZGV4T2YoInlwY2RiPSIrbik+LTEpe3JldHVybn1pZih0PT09ZCl7cT1tfXU9MDt3aGlsZShGPXFbdSsrXSl7bz1GLmxhc3RJbmRleE9mKCI9Iik7aWYobyE9LTEpe0Q9Ri5zdWJzdHIoMStvKTt4PUNbRF07aWYoeCl7c2V0VGltZW91dChrKHQrRit4KSx3KTt3Kz12fX19dT0wO3doaWxlKEY9Qlt1KytdKXtzZXRUaW1lb3V0KGsodCtGKSx3KTt3Kz12fXNldFRpbWVvdXQoZnVuY3Rpb24oKXtqKGUsbixFLDg2NDAwKX0sdyl9ZnVuY3Rpb24gaCgpe2woWydhZHMueWFob28uY29tL2dldC11c2VyLWlkP3Zlcj0yJnM9ODAwMDAwMDAyJnR5cGU9cmVkaXJlY3QmdHM9MTQ3ODA1ODkwMSZzaWc9ZmMxYzgxMTRmNDBiYmZmOScsJ2Fkcy55YWhvby5jb20vZ2V0LXVzZXItaWQ\/dmVyPTImcz04MDAwMDAwMDgmdHlwZT1yZWRpcmVjdCZ0cz0xNDc4MDU4OTAxJnNpZz1kZmQ0MThlODA1YzQ1ZWEyJ10sJzcwZTJiOGRhNmI3NGE0MGVhODkxZTQ3YjIyNzkyNmYzJyxbJ2NzeW5jLmZsaWNrci5jb20vY3N5bmM\/dmVyPTIuMScsJ2NzeW5jLnlhaG9vYXBpcy5jb20vY3N5bmM\/dmVyPTIuMSddLFsnY3N5bmMuZmxpY2tyLmNvbS9jc3luYz92ZXI9Mi4xJywnY3N5bmMueWFob29hcGlzLmNvbS9jc3luYz92ZXI9Mi4xJ10sJ3siMi4xIjoiJmlkPTIzMzUxJnZhbHVlPW9uMm96OTVwMXZiOXklMjZvJTNkMyUyNmYlM2RyZCZvcHRvdXQ9JnRpbWVvdXQ9MTQ3ODA1ODkwMSZzaWc9MTFnMDdrNDExIn0nKX1pZihjLmFkZEV2ZW50TGlzdGVuZXIpe2MuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsaCxmYWxzZSl9ZWxzZXtpZihjLmF0dGFjaEV2ZW50KXtjLmF0dGFjaEV2ZW50KCJvbmxvYWQiLGgpfWVsc2V7Yy5vbmxvYWQ9aH19fSkod2luZG93KTsKCgoJCiB9OwpkcGVyLnRyYW5zSUQgPSJkYXJsYV9wcmVmZXRjaF8xNDc4MDU4OTAxNTQ2XzQxMDU2NTY1Nl8zIjsKCg=="}}}</script>
+ <meta itemprop="metadata/x-safeframe" content="eyJwb3NpdGlvbnMiOlt7ImlkIjoiQlROIiwibG93SFRNTCI6IiIsIm1ldGEiOnsieSI6eyJwb3MiOiJCVE4iLCJiZWhhdmlvciI6Im5vbl9leHAiLCJhZElEIjoiIzIiLCJtYXRjaElEIjoiIzIiLCJib29rSUQiOiItMSIsInNsb3RJRCI6IjAiLCJzZXJ2ZVR5cGUiOiItMSIsImVyciI6ImludmFsaWRfc3BhY2UiLCJoYXNFeHRlcm5hbCI6ZmFsc2UsInN1cHBfdWdjIjoiIiwicGxhY2VtZW50SUQiOi0xLCJmZGIiOiJ7IFxcXCJmZGJfdXJsXFxcIjogXFxcImh0dHA6XFxcXFwvXFxcXFwvYmVhcC1iYy55YWhvby5jb21cXFxcXC9hZj9idj0xLjAuMCZicz0oMTVpcjQ1cjZiKGdpZCRqbVRWUURrNExqSEhiRnNIVTVqTWtnS2tNVEF1TndBQUFBQ2xqcGtLLHN0JDE0MDI1MzcyMzMwMjY5MjIsc3J2JDEsc2kkMTMzMDM1NTEsYWR2JDI1OTQxNDI5MDM2LGN0JDI1LGxpJDMyMzkyNTAwNTEsZXhwJDE0MDI1NDQ0MzMwMjY5MjIsY3IkNDE1NDk4NDU1MSxwYmlkJDI1MzcyNzI4MTMzLHYkMS4wKSkmYWw9KHR5cGUke3R5cGV9LGNtbnQke2NtbnR9LHN1Ym8ke3N1Ym99KSZyPTEwXFxcIiwgXFxcImZkYl9vblxcXCI6IFxcXCIxXFxcIiwgXFxcImZkYl9leHBcXFwiOiBcXFwiMTQwMjU0NDQzMzAyNlxcXCIsIFxcXCJmZGJfaW50bFxcXCI6IFxcXCJlbi11c1xcXCIgLCBcXFwiZFxcXCIgOiBcXFwiMVxcXCIgfSIsInNlcnZlVGltZSI6MTQ3ODA1ODkwMTU0NzQwMCwiaW1wSUQiOiIiLCJjcmVhdGl2ZUlEIjotMSwiYWRjIjoie1xcXCJsYWJlbFxcXCI6XFxcIkFkQ2hvaWNlc1xcXCIsXFxcInVybFxcXCI6XFxcImh0dHBzOlxcXFxcL1xcXFxcL2luZm8ueWFob28uY29tXFxcXFwvcHJpdmFjeVxcXFxcL3VzXFxcXFwveWFob29cXFxcXC9yZWxldmFudGFkcy5odG1sXFxcIixcXFwiY2xvc2VcXFwiOlxcXCJDbG9zZVxcXCIsXFxcImNsb3NlQWRcXFwiOlxcXCJDbG9zZSBBZFxcXCIsXFxcInNob3dBZFxcXCI6XFxcIlNob3cgYWRcXFwiLFxcXCJjb2xsYXBzZVxcXCI6XFxcIkNvbGxhcHNlXFxcIixcXFwiZmRiXFxcIjpcXFwiSSBkb24ndCBsaWtlIHRoaXMgYWRcXFwiLFxcXCJjb2RlXFxcIjpcXFwiZW4tdXNcXFwifSIsImlzM3JkIjowLCJmYWNTdGF0dXMiOnt9LCJ1c2VyUHJvdmlkZWREYXRhIjp7fSwic2xvdERhdGEiOnt9fX19LHsiaWQiOiJCVE4tMSIsImxvd0hUTUwiOiIiLCJtZXRhIjp7InkiOnsicG9zIjoiQlROLTEiLCJiZWhhdmlvciI6Im5vbl9leHAiLCJhZElEIjoiIzIiLCJtYXRjaElEIjoiIzIiLCJib29rSUQiOiItMSIsInNsb3RJRCI6IjEiLCJzZXJ2ZVR5cGUiOiItMSIsImVyciI6ImludmFsaWRfc3BhY2UiLCJoYXNFeHRlcm5hbCI6ZmFsc2UsInN1cHBfdWdjIjoiIiwicGxhY2VtZW50SUQiOi0xLCJmZGIiOiJ7IFxcXCJmZGJfdXJsXFxcIjogXFxcImh0dHA6XFxcXFwvXFxcXFwvYmVhcC1iYy55YWhvby5jb21cXFxcXC9hZj9idj0xLjAuMCZicz0oMTVpcjQ1cjZiKGdpZCRqbVRWUURrNExqSEhiRnNIVTVqTWtnS2tNVEF1TndBQUFBQ2xqcGtLLHN0JDE0MDI1MzcyMzMwMjY5MjIsc3J2JDEsc2kkMTMzMDM1NTEsYWR2JDI1OTQxNDI5MDM2LGN0JDI1LGxpJDMyMzkyNTAwNTEsZXhwJDE0MDI1NDQ0MzMwMjY5MjIsY3IkNDE1NDk4NDU1MSxwYmlkJDI1MzcyNzI4MTMzLHYkMS4wKSkmYWw9KHR5cGUke3R5cGV9LGNtbnQke2NtbnR9LHN1Ym8ke3N1Ym99KSZyPTEwXFxcIiwgXFxcImZkYl9vblxcXCI6IFxcXCIxXFxcIiwgXFxcImZkYl9leHBcXFwiOiBcXFwiMTQwMjU0NDQzMzAyNlxcXCIsIFxcXCJmZGJfaW50bFxcXCI6IFxcXCJlbi11c1xcXCIgLCBcXFwiZFxcXCIgOiBcXFwiMVxcXCIgfSIsInNlcnZlVGltZSI6MTQ3ODA1ODkwMTU0NzQwMCwiaW1wSUQiOiIiLCJjcmVhdGl2ZUlEIjotMSwiYWRjIjoie1xcXCJsYWJlbFxcXCI6XFxcIkFkQ2hvaWNlc1xcXCIsXFxcInVybFxcXCI6XFxcImh0dHBzOlxcXFxcL1xcXFxcL2luZm8ueWFob28uY29tXFxcXFwvcHJpdmFjeVxcXFxcL3VzXFxcXFwveWFob29cXFxcXC9yZWxldmFudGFkcy5odG1sXFxcIixcXFwiY2xvc2VcXFwiOlxcXCJDbG9zZVxcXCIsXFxcImNsb3NlQWRcXFwiOlxcXCJDbG9zZSBBZFxcXCIsXFxcInNob3dBZFxcXCI6XFxcIlNob3cgYWRcXFwiLFxcXCJjb2xsYXBzZVxcXCI6XFxcIkNvbGxhcHNlXFxcIixcXFwiZmRiXFxcIjpcXFwiSSBkb24ndCBsaWtlIHRoaXMgYWRcXFwiLFxcXCJjb2RlXFxcIjpcXFwiZW4tdXNcXFwifSIsImlzM3JkIjowLCJmYWNTdGF0dXMiOnt9LCJ1c2VyUHJvdmlkZWREYXRhIjp7fSwic2xvdERhdGEiOnt9fX19LHsiaWQiOiJCVE4tMiIsImxvd0hUTUwiOiIiLCJtZXRhIjp7InkiOnsicG9zIjoiQlROLTIiLCJiZWhhdmlvciI6Im5vbl9leHAiLCJhZElEIjoiIzIiLCJtYXRjaElEIjoiIzIiLCJib29rSUQiOiItMSIsInNsb3RJRCI6IjIiLCJzZXJ2ZVR5cGUiOiItMSIsImVyciI6ImludmFsaWRfc3BhY2UiLCJoYXNFeHRlcm5hbCI6ZmFsc2UsInN1cHBfdWdjIjoiIiwicGxhY2VtZW50SUQiOi0xLCJmZGIiOiJ7IFxcXCJmZGJfdXJsXFxcIjogXFxcImh0dHA6XFxcXFwvXFxcXFwvYmVhcC1iYy55YWhvby5jb21cXFxcXC9hZj9idj0xLjAuMCZicz0oMTVpcjQ1cjZiKGdpZCRqbVRWUURrNExqSEhiRnNIVTVqTWtnS2tNVEF1TndBQUFBQ2xqcGtLLHN0JDE0MDI1MzcyMzMwMjY5MjIsc3J2JDEsc2kkMTMzMDM1NTEsYWR2JDI1OTQxNDI5MDM2LGN0JDI1LGxpJDMyMzkyNTAwNTEsZXhwJDE0MDI1NDQ0MzMwMjY5MjIsY3IkNDE1NDk4NDU1MSxwYmlkJDI1MzcyNzI4MTMzLHYkMS4wKSkmYWw9KHR5cGUke3R5cGV9LGNtbnQke2NtbnR9LHN1Ym8ke3N1Ym99KSZyPTEwXFxcIiwgXFxcImZkYl9vblxcXCI6IFxcXCIxXFxcIiwgXFxcImZkYl9leHBcXFwiOiBcXFwiMTQwMjU0NDQzMzAyNlxcXCIsIFxcXCJmZGJfaW50bFxcXCI6IFxcXCJlbi11c1xcXCIgLCBcXFwiZFxcXCIgOiBcXFwiMVxcXCIgfSIsInNlcnZlVGltZSI6MTQ3ODA1ODkwMTU0NzQwMCwiaW1wSUQiOiIiLCJjcmVhdGl2ZUlEIjotMSwiYWRjIjoie1xcXCJsYWJlbFxcXCI6XFxcIkFkQ2hvaWNlc1xcXCIsXFxcInVybFxcXCI6XFxcImh0dHBzOlxcXFxcL1xcXFxcL2luZm8ueWFob28uY29tXFxcXFwvcHJpdmFjeVxcXFxcL3VzXFxcXFwveWFob29cXFxcXC9yZWxldmFudGFkcy5odG1sXFxcIixcXFwiY2xvc2VcXFwiOlxcXCJDbG9zZVxcXCIsXFxcImNsb3NlQWRcXFwiOlxcXCJDbG9zZSBBZFxcXCIsXFxcInNob3dBZFxcXCI6XFxcIlNob3cgYWRcXFwiLFxcXCJjb2xsYXBzZVxcXCI6XFxcIkNvbGxhcHNlXFxcIixcXFwiZmRiXFxcIjpcXFwiSSBkb24ndCBsaWtlIHRoaXMgYWRcXFwiLFxcXCJjb2RlXFxcIjpcXFwiZW4tdXNcXFwifSIsImlzM3JkIjowLCJmYWNTdGF0dXMiOnt9LCJ1c2VyUHJvdmlkZWREYXRhIjp7fSwic2xvdERhdGEiOnt9fX19LHsiaWQiOiJCVE4tMyIsImxvd0hUTUwiOiIiLCJtZXRhIjp7InkiOnsicG9zIjoiQlROLTMiLCJiZWhhdmlvciI6Im5vbl9leHAiLCJhZElEIjoiIzIiLCJtYXRjaElEIjoiIzIiLCJib29rSUQiOiItMSIsInNsb3RJRCI6IjMiLCJzZXJ2ZVR5cGUiOiItMSIsImVyciI6ImludmFsaWRfc3BhY2UiLCJoYXNFeHRlcm5hbCI6ZmFsc2UsInN1cHBfdWdjIjoiIiwicGxhY2VtZW50SUQiOi0xLCJmZGIiOiJ7IFxcXCJmZGJfdXJsXFxcIjogXFxcImh0dHA6XFxcXFwvXFxcXFwvYmVhcC1iYy55YWhvby5jb21cXFxcXC9hZj9idj0xLjAuMCZicz0oMTVpcjQ1cjZiKGdpZCRqbVRWUURrNExqSEhiRnNIVTVqTWtnS2tNVEF1TndBQUFBQ2xqcGtLLHN0JDE0MDI1MzcyMzMwMjY5MjIsc3J2JDEsc2kkMTMzMDM1NTEsYWR2JDI1OTQxNDI5MDM2LGN0JDI1LGxpJDMyMzkyNTAwNTEsZXhwJDE0MDI1NDQ0MzMwMjY5MjIsY3IkNDE1NDk4NDU1MSxwYmlkJDI1MzcyNzI4MTMzLHYkMS4wKSkmYWw9KHR5cGUke3R5cGV9LGNtbnQke2NtbnR9LHN1Ym8ke3N1Ym99KSZyPTEwXFxcIiwgXFxcImZkYl9vblxcXCI6IFxcXCIxXFxcIiwgXFxcImZkYl9leHBcXFwiOiBcXFwiMTQwMjU0NDQzMzAyNlxcXCIsIFxcXCJmZGJfaW50bFxcXCI6IFxcXCJlbi11c1xcXCIgLCBcXFwiZFxcXCIgOiBcXFwiMVxcXCIgfSIsInNlcnZlVGltZSI6MTQ3ODA1ODkwMTU0NzQwMCwiaW1wSUQiOiIiLCJjcmVhdGl2ZUlEIjotMSwiYWRjIjoie1xcXCJsYWJlbFxcXCI6XFxcIkFkQ2hvaWNlc1xcXCIsXFxcInVybFxcXCI6XFxcImh0dHBzOlxcXFxcL1xcXFxcL2luZm8ueWFob28uY29tXFxcXFwvcHJpdmFjeVxcXFxcL3VzXFxcXFwveWFob29cXFxcXC9yZWxldmFudGFkcy5odG1sXFxcIixcXFwiY2xvc2VcXFwiOlxcXCJDbG9zZVxcXCIsXFxcImNsb3NlQWRcXFwiOlxcXCJDbG9zZSBBZFxcXCIsXFxcInNob3dBZFxcXCI6XFxcIlNob3cgYWRcXFwiLFxcXCJjb2xsYXBzZVxcXCI6XFxcIkNvbGxhcHNlXFxcIixcXFwiZmRiXFxcIjpcXFwiSSBkb24ndCBsaWtlIHRoaXMgYWRcXFwiLFxcXCJjb2RlXFxcIjpcXFwiZW4tdXNcXFwifSIsImlzM3JkIjowLCJmYWNTdGF0dXMiOnt9LCJ1c2VyUHJvdmlkZWREYXRhIjp7fSwic2xvdERhdGEiOnt9fX19LHsiaWQiOiJNQVNUIiwibG93SFRNTCI6IiIsIm1ldGEiOnsieSI6eyJwb3MiOiJNQVNUIiwiYmVoYXZpb3IiOiJub25fZXhwIiwiYWRJRCI6IiMyIiwibWF0Y2hJRCI6IiMyIiwiYm9va0lEIjoiLTEiLCJzbG90SUQiOiIxMCIsInNlcnZlVHlwZSI6Ii0xIiwiZXJyIjoiaW52YWxpZF9zcGFjZSIsImhhc0V4dGVybmFsIjpmYWxzZSwic3VwcF91Z2MiOiIiLCJwbGFjZW1lbnRJRCI6LTEsImZkYiI6InsgXFxcImZkYl91cmxcXFwiOiBcXFwiaHR0cDpcXFxcXC9cXFxcXC9iZWFwLWJjLnlhaG9vLmNvbVxcXFxcL2FmP2J2PTEuMC4wJmJzPSgxNWlyNDVyNmIoZ2lkJGptVFZRRGs0TGpISGJGc0hVNWpNa2dLa01UQXVOd0FBQUFDbGpwa0ssc3QkMTQwMjUzNzIzMzAyNjkyMixzcnYkMSxzaSQxMzMwMzU1MSxhZHYkMjU5NDE0MjkwMzYsY3QkMjUsbGkkMzIzOTI1MDA1MSxleHAkMTQwMjU0NDQzMzAyNjkyMixjciQ0MTU0OTg0NTUxLHBiaWQkMjUzNzI3MjgxMzMsdiQxLjApKSZhbD0odHlwZSR7dHlwZX0sY21udCR7Y21udH0sc3VibyR7c3Vib30pJnI9MTBcXFwiLCBcXFwiZmRiX29uXFxcIjogXFxcIjFcXFwiLCBcXFwiZmRiX2V4cFxcXCI6IFxcXCIxNDAyNTQ0NDMzMDI2XFxcIiwgXFxcImZkYl9pbnRsXFxcIjogXFxcImVuLXVzXFxcIiAsIFxcXCJkXFxcIiA6IFxcXCIxXFxcIiB9Iiwic2VydmVUaW1lIjoxNDc4MDU4OTAxNTQ3NDAwLCJpbXBJRCI6IiIsImNyZWF0aXZlSUQiOi0xLCJhZGMiOiJ7XFxcImxhYmVsXFxcIjpcXFwiQWRDaG9pY2VzXFxcIixcXFwidXJsXFxcIjpcXFwiaHR0cHM6XFxcXFwvXFxcXFwvaW5mby55YWhvby5jb21cXFxcXC9wcml2YWN5XFxcXFwvdXNcXFxcXC95YWhvb1xcXFxcL3JlbGV2YW50YWRzLmh0bWxcXFwiLFxcXCJjbG9zZVxcXCI6XFxcIkNsb3NlXFxcIixcXFwiY2xvc2VBZFxcXCI6XFxcIkNsb3NlIEFkXFxcIixcXFwic2hvd0FkXFxcIjpcXFwiU2hvdyBhZFxcXCIsXFxcImNvbGxhcHNlXFxcIjpcXFwiQ29sbGFwc2VcXFwiLFxcXCJmZGJcXFwiOlxcXCJJIGRvbid0IGxpa2UgdGhpcyBhZFxcXCIsXFxcImNvZGVcXFwiOlxcXCJlbi11c1xcXCJ9IiwiaXMzcmQiOjAsImZhY1N0YXR1cyI6e30sInVzZXJQcm92aWRlZERhdGEiOnt9LCJzbG90RGF0YSI6e319fX0seyJpZCI6IkxEUkIiLCJsb3dIVE1MIjoiIiwibWV0YSI6eyJ5Ijp7InBvcyI6IkxEUkIiLCJiZWhhdmlvciI6Im5vbl9leHAiLCJhZElEIjoiOTc0OTc3Nzg0NDgzMzIzOTgxMiIsIm1hdGNoSUQiOiI5OTk5OTkuOTk5OTk5Ljk5OTk5OS45OTk5OTkiLCJib29rSUQiOiIyMzE1MjA3NTUxIiwic2xvdElEIjoiNiIsInNlcnZlVHlwZSI6Ii0xIiwiZXJyIjpmYWxzZSwiaGFzRXh0ZXJuYWwiOmZhbHNlLCJzdXBwX3VnYyI6IiIsInBsYWNlbWVudElEIjoiMzUzNjAzMzU1MSIsImZkYiI6InsgXFxcImZkYl91cmxcXFwiOiBcXFwiaHR0cDpcXFxcXFxcL1xcXFxcXFwvYmVhcC1iYy55YWhvby5jb21cXFxcXFxcL2FmXFxcXFxcXC91cz9idj0xLjAuMCZicz0oMTYwYmF0NzNvKGdpZCRrdS5yRlRZekxqSzFDWFpKV0JsaE5RSjhNVEU0TGdBQUFBQm55SlFILHN0JDE0NzgwNTg5MDE1NDc0MDAsc3J2JDEsc2kkNDQ1MTA1MSxjdCQyNSxleHAkMTQ3ODA2NjEwMTU0NzQwMCxhZHYkMjY1MTM3NTM2MDgsbGkkMzUzNTkyMDU1MSxjciQ0NTI3MDgxMDUxLHYkMS4wLHBiaWQkMjA0NTk5MzMyMjMsc2VpZCQxMDM4ODQ1NTEpKSZhbD0odHlwZSR7dHlwZX0sY21udCR7Y21udH0sc3VibyR7c3Vib30pJnI9MTBcXFwiLCBcXFwiZmRiX29uXFxcIjogXFxcIjFcXFwiLCBcXFwiZmRiX2V4cFxcXCI6IFxcXCIxNDc4MDY2MTAxNTQ3XFxcIiwgXFxcImZkYl9pbnRsXFxcIjogXFxcImVuLVVTXFxcIiB9Iiwic2VydmVUaW1lIjoiMTQ3ODA1ODkwMTU0NzQwMCIsImltcElEIjoiRjZOaTVkZ25PWHMtIiwiY3JlYXRpdmVJRCI6NDUyNzA4MTA1MSwiYWRjIjoie1xcXCJsYWJlbFxcXCI6XFxcIkFkQ2hvaWNlc1xcXCIsXFxcInVybFxcXCI6XFxcImh0dHBzOlxcXFxcL1xcXFxcL2luZm8ueWFob28uY29tXFxcXFwvcHJpdmFjeVxcXFxcL3VzXFxcXFwveWFob29cXFxcXC9yZWxldmFudGFkcy5odG1sXFxcIixcXFwiY2xvc2VcXFwiOlxcXCJDbG9zZVxcXCIsXFxcImNsb3NlQWRcXFwiOlxcXCJDbG9zZSBBZFxcXCIsXFxcInNob3dBZFxcXCI6XFxcIlNob3cgYWRcXFwiLFxcXCJjb2xsYXBzZVxcXCI6XFxcIkNvbGxhcHNlXFxcIixcXFwiZmRiXFxcIjpcXFwiSSBkb24ndCBsaWtlIHRoaXMgYWRcXFwiLFxcXCJjb2RlXFxcIjpcXFwiZW4tdXNcXFwifSIsImlzM3JkIjoxLCJmYWNTdGF0dXMiOnt9LCJ1c2VyUHJvdmlkZWREYXRhIjp7fSwic2xvdERhdGEiOnt9LCJzaXplIjoiNzI4eDkwIn19LCJjb25mIjp7InciOjcyOCwiaCI6OTB9fSx7ImlkIjoiU1BMIiwibG93SFRNTCI6IiIsIm1ldGEiOnsieSI6eyJwb3MiOiJTUEwiLCJiZWhhdmlvciI6Im5vbl9leHAiLCJhZElEIjoiIzIiLCJtYXRjaElEIjoiIzIiLCJib29rSUQiOiItMSIsInNsb3RJRCI6IjExIiwic2VydmVUeXBlIjoiLTEiLCJlcnIiOiJpbnZhbGlkX3NwYWNlIiwiaGFzRXh0ZXJuYWwiOmZhbHNlLCJzdXBwX3VnYyI6IiIsInBsYWNlbWVudElEIjotMSwiZmRiIjoieyBcXFwiZmRiX3VybFxcXCI6IFxcXCJodHRwOlxcXFxcL1xcXFxcL2JlYXAtYmMueWFob28uY29tXFxcXFwvYWY/YnY9MS4wLjAmYnM9KDE1aXI0NXI2YihnaWQkam1UVlFEazRMakhIYkZzSFU1ak1rZ0trTVRBdU53QUFBQUNsanBrSyxzdCQxNDAyNTM3MjMzMDI2OTIyLHNydiQxLHNpJDEzMzAzNTUxLGFkdiQyNTk0MTQyOTAzNixjdCQyNSxsaSQzMjM5MjUwMDUxLGV4cCQxNDAyNTQ0NDMzMDI2OTIyLGNyJDQxNTQ5ODQ1NTEscGJpZCQyNTM3MjcyODEzMyx2JDEuMCkpJmFsPSh0eXBlJHt0eXBlfSxjbW50JHtjbW50fSxzdWJvJHtzdWJvfSkmcj0xMFxcXCIsIFxcXCJmZGJfb25cXFwiOiBcXFwiMVxcXCIsIFxcXCJmZGJfZXhwXFxcIjogXFxcIjE0MDI1NDQ0MzMwMjZcXFwiLCBcXFwiZmRiX2ludGxcXFwiOiBcXFwiZW4tdXNcXFwiICwgXFxcImRcXFwiIDogXFxcIjFcXFwiIH0iLCJzZXJ2ZVRpbWUiOiIxNDc4MDU4OTAxNTQ3NDAwIiwiaW1wSUQiOiIiLCJjcmVhdGl2ZUlEIjotMSwiYWRjIjoie1xcXCJsYWJlbFxcXCI6XFxcIkFkQ2hvaWNlc1xcXCIsXFxcInVybFxcXCI6XFxcImh0dHBzOlxcXFxcL1xcXFxcL2luZm8ueWFob28uY29tXFxcXFwvcHJpdmFjeVxcXFxcL3VzXFxcXFwveWFob29cXFxcXC9yZWxldmFudGFkcy5odG1sXFxcIixcXFwiY2xvc2VcXFwiOlxcXCJDbG9zZVxcXCIsXFxcImNsb3NlQWRcXFwiOlxcXCJDbG9zZSBBZFxcXCIsXFxcInNob3dBZFxcXCI6XFxcIlNob3cgYWRcXFwiLFxcXCJjb2xsYXBzZVxcXCI6XFxcIkNvbGxhcHNlXFxcIixcXFwiZmRiXFxcIjpcXFwiSSBkb24ndCBsaWtlIHRoaXMgYWRcXFwiLFxcXCJjb2RlXFxcIjpcXFwiZW4tdXNcXFwifSIsImlzM3JkIjowLCJmYWNTdGF0dXMiOnt9LCJ1c2VyUHJvdmlkZWREYXRhIjp7fSwic2xvdERhdGEiOnt9fX19LHsiaWQiOiJMUkVDIiwibG93SFRNTCI6IiIsIm1ldGEiOnsieSI6eyJwb3MiOiJMUkVDIiwiYmVoYXZpb3IiOiJub25fZXhwIiwiYWRJRCI6Ijk3NTU1OTk2NzMwMDI5NzEwODEiLCJtYXRjaElEIjoiOTk5OTk5Ljk5OTk5OS45OTk5OTkuOTk5OTk5IiwiYm9va0lEIjoiMjMxNjcxNjA1MSIsInNsb3RJRCI6IjciLCJzZXJ2ZVR5cGUiOiItMSIsImVyciI6ZmFsc2UsImhhc0V4dGVybmFsIjp0cnVlLCJzdXBwX3VnYyI6IiIsInBsYWNlbWVudElEIjoiMzUzNzY4NTU1MSIsImZkYiI6InsgXFxcImZkYl91cmxcXFwiOiBcXFwiaHR0cDpcXFxcXFxcL1xcXFxcXFwvYmVhcC1iYy55YWhvby5jb21cXFxcXFxcL2FmXFxcXFxcXC91cz9idj0xLjAuMCZicz0oMTYwZHMyNXBhKGdpZCRrdS5yRlRZekxqSzFDWFpKV0JsaE5RSjhNVEU0TGdBQUFBQm55SlFILHN0JDE0NzgwNTg5MDE1NDc0MDAsc3J2JDEsc2kkNDQ1MTA1MSxjdCQyNSxleHAkMTQ3ODA2NjEwMTU0NzQwMCxhZHYkMjYxMDAzMzkzNDAsbGkkMzUzNzU1NDU1MSxjciQ0NTI4ODE4MDUxLHYkMS4wLHBiaWQkMjA0NTk5MzMyMjMsc2VpZCQxMDM4ODQ1NTEpKSZhbD0odHlwZSR7dHlwZX0sY21udCR7Y21udH0sc3VibyR7c3Vib30pJnI9MTBcXFwiLCBcXFwiZmRiX29uXFxcIjogXFxcIjFcXFwiLCBcXFwiZmRiX2V4cFxcXCI6IFxcXCIxNDc4MDY2MTAxNTQ3XFxcIiwgXFxcImZkYl9pbnRsXFxcIjogXFxcImVuLVVTXFxcIiB9Iiwic2VydmVUaW1lIjoiMTQ3ODA1ODkwMTU0NzQwMCIsImltcElEIjoiOVA1aTVkZ25PWHMtIiwiY3JlYXRpdmVJRCI6NDUyODgxODA1MSwiYWRjIjoie1xcXCJsYWJlbFxcXCI6XFxcIkFkQ2hvaWNlc1xcXCIsXFxcInVybFxcXCI6XFxcImh0dHBzOlxcXFxcL1xcXFxcL2luZm8ueWFob28uY29tXFxcXFwvcHJpdmFjeVxcXFxcL3VzXFxcXFwveWFob29cXFxcXC9yZWxldmFudGFkcy5odG1sXFxcIixcXFwiY2xvc2VcXFwiOlxcXCJDbG9zZVxcXCIsXFxcImNsb3NlQWRcXFwiOlxcXCJDbG9zZSBBZFxcXCIsXFxcInNob3dBZFxcXCI6XFxcIlNob3cgYWRcXFwiLFxcXCJjb2xsYXBzZVxcXCI6XFxcIkNvbGxhcHNlXFxcIixcXFwiZmRiXFxcIjpcXFwiSSBkb24ndCBsaWtlIHRoaXMgYWRcXFwiLFxcXCJjb2RlXFxcIjpcXFwiZW4tdXNcXFwifSIsImlzM3JkIjowLCJmYWNTdGF0dXMiOnt9LCJ1c2VyUHJvdmlkZWREYXRhIjp7fSwic2xvdERhdGEiOnt9LCJzaXplIjoiMzAweDI1MCJ9fSwiY29uZiI6eyJ3IjozMDAsImgiOjI1MH19LHsiaWQiOiJMUkVDMiIsImxvd0hUTUwiOiIiLCJtZXRhIjp7InkiOnsicG9zIjoiTFJFQzIiLCJiZWhhdmlvciI6Im5vbl9leHAiLCJhZElEIjoiMTIzNDU2NyIsIm1hdGNoSUQiOiI5OTk5OTkuOTk5OTk5Ljk5OTk5OS45OTk5OTkiLCJib29rSUQiOiIyMzE1MjA4NTUxIiwic2xvdElEIjoiOCIsInNlcnZlVHlwZSI6Ii0xIiwiZXJyIjpmYWxzZSwiaGFzRXh0ZXJuYWwiOmZhbHNlLCJzdXBwX3VnYyI6IiIsInBsYWNlbWVudElEIjoiMzUzNjAyMzU1MSIsImZkYiI6InsgXFxcImZkYl91cmxcXFwiOiBcXFwiaHR0cDpcXFxcXFxcL1xcXFxcXFwvYmVhcC1iYy55YWhvby5jb21cXFxcXFxcL2FmXFxcXFxcXC91cz9idj0xLjAuMCZicz0oMTYwcW9hMTY3KGdpZCRrdS5yRlRZekxqSzFDWFpKV0JsaE5RSjhNVEU0TGdBQUFBQm55SlFILHN0JDE0NzgwNTg5MDE1NDc0MDAsc3J2JDEsc2kkNDQ1MTA1MSxjdCQyNSxleHAkMTQ3ODA2NjEwMTU0NzQwMCxhZHYkMjY1MTM3NTM2MDgsbGkkMzUzNTkzMDA1MSxjciQ0NTI3MDY2NTUxLHYkMS4wLHBiaWQkMjA0NTk5MzMyMjMsc2VpZCQxMDM4ODQ1NTEpKSZhbD0odHlwZSR7dHlwZX0sY21udCR7Y21udH0sc3VibyR7c3Vib30pJnI9MTBcXFwiLCBcXFwiZmRiX29uXFxcIjogXFxcIjFcXFwiLCBcXFwiZmRiX2V4cFxcXCI6IFxcXCIxNDc4MDY2MTAxNTQ3XFxcIiwgXFxcImZkYl9pbnRsXFxcIjogXFxcImVuLVVTXFxcIiB9Iiwic2VydmVUaW1lIjoiMTQ3ODA1ODkwMTU0NzQwMCIsImltcElEIjoiMFZwajVkZ25PWHMtIiwiY3JlYXRpdmVJRCI6NDUyNzA2NjU1MSwiYWRjIjoie1xcXCJsYWJlbFxcXCI6XFxcIkFkQ2hvaWNlc1xcXCIsXFxcInVybFxcXCI6XFxcImh0dHBzOlxcXFxcL1xcXFxcL2luZm8ueWFob28uY29tXFxcXFwvcHJpdmFjeVxcXFxcL3VzXFxcXFwveWFob29cXFxcXC9yZWxldmFudGFkcy5odG1sXFxcIixcXFwiY2xvc2VcXFwiOlxcXCJDbG9zZVxcXCIsXFxcImNsb3NlQWRcXFwiOlxcXCJDbG9zZSBBZFxcXCIsXFxcInNob3dBZFxcXCI6XFxcIlNob3cgYWRcXFwiLFxcXCJjb2xsYXBzZVxcXCI6XFxcIkNvbGxhcHNlXFxcIixcXFwiZmRiXFxcIjpcXFwiSSBkb24ndCBsaWtlIHRoaXMgYWRcXFwiLFxcXCJjb2RlXFxcIjpcXFwiZW4tdXNcXFwifSIsImlzM3JkIjoxLCJmYWNTdGF0dXMiOnt9LCJ1c2VyUHJvdmlkZWREYXRhIjp7fSwic2xvdERhdGEiOnt9LCJzaXplIjoiMzAweDI1MCJ9fSwiY29uZiI6eyJ3IjozMDAsImgiOjI1MH19LHsiaWQiOiJMUkVDMyIsImxvd0hUTUwiOiIiLCJtZXRhIjp7InkiOnsicG9zIjoiTFJFQzMiLCJiZWhhdmlvciI6Im5vbl9leHAiLCJhZElEIjoiMTIzNDU2NyIsIm1hdGNoSUQiOiI5OTk5OTkuOTk5OTk5Ljk5OTk5OS45OTk5OTkiLCJib29rSUQiOiIyMzE1MjI4MDUxIiwic2xvdElEIjoiOSIsInNlcnZlVHlwZSI6Ii0xIiwiZXJyIjpmYWxzZSwiaGFzRXh0ZXJuYWwiOmZhbHNlLCJzdXBwX3VnYyI6IiIsInBsYWNlbWVudElEIjoiMzUzNjA0MzA1MSIsImZkYiI6InsgXFxcImZkYl91cmxcXFwiOiBcXFwiaHR0cDpcXFxcXFxcL1xcXFxcXFwvYmVhcC1iYy55YWhvby5jb21cXFxcXFxcL2FmXFxcXFxcXC91cz9idj0xLjAuMCZicz0oMTYwaHByMTBoKGdpZCRrdS5yRlRZekxqSzFDWFpKV0JsaE5RSjhNVEU0TGdBQUFBQm55SlFILHN0JDE0NzgwNTg5MDE1NDc0MDAsc3J2JDEsc2kkNDQ1MTA1MSxjdCQyNSxleHAkMTQ3ODA2NjEwMTU0NzQwMCxhZHYkMjY1MTM3NTM2MDgsbGkkMzUzNTkwOTA1MSxjciQ0NTI3MDkxMDUxLHYkMS4wLHBiaWQkMjA0NTk5MzMyMjMsc2VpZCQxMDM4ODQ1NTEpKSZhbD0odHlwZSR7dHlwZX0sY21udCR7Y21udH0sc3VibyR7c3Vib30pJnI9MTBcXFwiLCBcXFwiZmRiX29uXFxcIjogXFxcIjFcXFwiLCBcXFwiZmRiX2V4cFxcXCI6IFxcXCIxNDc4MDY2MTAxNTQ3XFxcIiwgXFxcImZkYl9pbnRsXFxcIjogXFxcImVuLVVTXFxcIiB9Iiwic2VydmVUaW1lIjoiMTQ3ODA1ODkwMTU0NzQwMCIsImltcElEIjoicnJaajVkZ25PWHMtIiwiY3JlYXRpdmVJRCI6NDUyNzA5MTA1MSwiYWRjIjoie1xcXCJsYWJlbFxcXCI6XFxcIkFkQ2hvaWNlc1xcXCIsXFxcInVybFxcXCI6XFxcImh0dHBzOlxcXFxcL1xcXFxcL2luZm8ueWFob28uY29tXFxcXFwvcHJpdmFjeVxcXFxcL3VzXFxcXFwveWFob29cXFxcXC9yZWxldmFudGFkcy5odG1sXFxcIixcXFwiY2xvc2VcXFwiOlxcXCJDbG9zZVxcXCIsXFxcImNsb3NlQWRcXFwiOlxcXCJDbG9zZSBBZFxcXCIsXFxcInNob3dBZFxcXCI6XFxcIlNob3cgYWRcXFwiLFxcXCJjb2xsYXBzZVxcXCI6XFxcIkNvbGxhcHNlXFxcIixcXFwiZmRiXFxcIjpcXFwiSSBkb24ndCBsaWtlIHRoaXMgYWRcXFwiLFxcXCJjb2RlXFxcIjpcXFwiZW4tdXNcXFwifSIsImlzM3JkIjoxLCJmYWNTdGF0dXMiOnt9LCJ1c2VyUHJvdmlkZWREYXRhIjp7fSwic2xvdERhdGEiOnt9LCJzaXplIjoiMzAweDI1MCJ9fSwiY29uZiI6eyJ3IjozMDAsImgiOjI1MH19LHsiaWQiOiJGT09UIiwibG93SFRNTCI6IiIsIm1ldGEiOnsieSI6eyJwb3MiOiJGT09UIiwiYmVoYXZpb3IiOiJub25fZXhwIiwiYWRJRCI6IiMyIiwibWF0Y2hJRCI6IiMyIiwiYm9va0lEIjoiLTEiLCJzbG90SUQiOiI0Iiwic2VydmVUeXBlIjoiLTEiLCJlcnIiOiJpbnZhbGlkX3NwYWNlIiwiaGFzRXh0ZXJuYWwiOmZhbHNlLCJzdXBwX3VnYyI6IiIsInBsYWNlbWVudElEIjotMSwiZmRiIjoieyBcXFwiZmRiX3VybFxcXCI6IFxcXCJodHRwOlxcXFxcL1xcXFxcL2JlYXAtYmMueWFob28uY29tXFxcXFwvYWY/YnY9MS4wLjAmYnM9KDE1aXI0NXI2YihnaWQkam1UVlFEazRMakhIYkZzSFU1ak1rZ0trTVRBdU53QUFBQUNsanBrSyxzdCQxNDAyNTM3MjMzMDI2OTIyLHNydiQxLHNpJDEzMzAzNTUxLGFkdiQyNTk0MTQyOTAzNixjdCQyNSxsaSQzMjM5MjUwMDUxLGV4cCQxNDAyNTQ0NDMzMDI2OTIyLGNyJDQxNTQ5ODQ1NTEscGJpZCQyNTM3MjcyODEzMyx2JDEuMCkpJmFsPSh0eXBlJHt0eXBlfSxjbW50JHtjbW50fSxzdWJvJHtzdWJvfSkmcj0xMFxcXCIsIFxcXCJmZGJfb25cXFwiOiBcXFwiMVxcXCIsIFxcXCJmZGJfZXhwXFxcIjogXFxcIjE0MDI1NDQ0MzMwMjZcXFwiLCBcXFwiZmRiX2ludGxcXFwiOiBcXFwiZW4tdXNcXFwiICwgXFxcImRcXFwiIDogXFxcIjFcXFwiIH0iLCJzZXJ2ZVRpbWUiOiIxNDc4MDU4OTAxNTQ3NDAwIiwiaW1wSUQiOiIiLCJjcmVhdGl2ZUlEIjotMSwiYWRjIjoie1xcXCJsYWJlbFxcXCI6XFxcIkFkQ2hvaWNlc1xcXCIsXFxcInVybFxcXCI6XFxcImh0dHBzOlxcXFxcL1xcXFxcL2luZm8ueWFob28uY29tXFxcXFwvcHJpdmFjeVxcXFxcL3VzXFxcXFwveWFob29cXFxcXC9yZWxldmFudGFkcy5odG1sXFxcIixcXFwiY2xvc2VcXFwiOlxcXCJDbG9zZVxcXCIsXFxcImNsb3NlQWRcXFwiOlxcXCJDbG9zZSBBZFxcXCIsXFxcInNob3dBZFxcXCI6XFxcIlNob3cgYWRcXFwiLFxcXCJjb2xsYXBzZVxcXCI6XFxcIkNvbGxhcHNlXFxcIixcXFwiZmRiXFxcIjpcXFwiSSBkb24ndCBsaWtlIHRoaXMgYWRcXFwiLFxcXCJjb2RlXFxcIjpcXFwiZW4tdXNcXFwifSIsImlzM3JkIjowLCJmYWNTdGF0dXMiOnt9LCJ1c2VyUHJvdmlkZWREYXRhIjp7fSwic2xvdERhdGEiOnt9fX19LHsiaWQiOiJGU1JWWSIsImxvd0hUTUwiOiIiLCJtZXRhIjp7InkiOnsicG9zIjoiRlNSVlkiLCJiZWhhdmlvciI6Im5vbl9leHAiLCJhZElEIjoiOTc1MjUxNTg4NjQ4NDQ0MTg1MCIsIm1hdGNoSUQiOiI5OTk5OTkuOTk5OTk5Ljk5OTk5OS45OTk5OTkiLCJib29rSUQiOiIyMzE1OTMyMDUxIiwic2xvdElEIjoiNSIsInNlcnZlVHlwZSI6Ii0xIiwiZXJyIjpmYWxzZSwiaGFzRXh0ZXJuYWwiOmZhbHNlLCJzdXBwX3VnYyI6IiIsInBsYWNlbWVudElEIjoiMzUzNzAwNjU1MSIsImZkYiI6InsgXFxcImZkYl91cmxcXFwiOiBcXFwiaHR0cDpcXFxcXFxcL1xcXFxcXFwvYmVhcC1iYy55YWhvby5jb21cXFxcXFxcL2FmXFxcXFxcXC91cz9idj0xLjAuMCZicz0oMTYwbzh2OHRlKGdpZCRrdS5yRlRZekxqSzFDWFpKV0JsaE5RSjhNVEU0TGdBQUFBQm55SlFILHN0JDE0NzgwNTg5MDE1NDc0MDAsc3J2JDEsc2kkNDQ1MTA1MSxjdCQyNSxleHAkMTQ3ODA2NjEwMTU0NzQwMCxhZHYkMjY1MTM3NTM2MDgsbGkkMzUzNjg2NzA1MSxjciQ0NTI4MTc3MDUxLHYkMS4wLHBiaWQkMjA0NTk5MzMyMjMsc2VpZCQxMDM4ODQ1NTEpKSZhbD0odHlwZSR7dHlwZX0sY21udCR7Y21udH0sc3VibyR7c3Vib30pJnI9MTBcXFwiLCBcXFwiZmRiX29uXFxcIjogXFxcIjFcXFwiLCBcXFwiZmRiX2V4cFxcXCI6IFxcXCIxNDc4MDY2MTAxNTQ3XFxcIiwgXFxcImZkYl9pbnRsXFxcIjogXFxcImVuLVVTXFxcIiB9Iiwic2VydmVUaW1lIjoiMTQ3ODA1ODkwMTU0NzQwMCIsImltcElEIjoiT2tkaTVkZ25PWHMtIiwiY3JlYXRpdmVJRCI6NDUyODE3NzA1MSwiYWRjIjoie1xcXCJsYWJlbFxcXCI6XFxcIkFkQ2hvaWNlc1xcXCIsXFxcInVybFxcXCI6XFxcImh0dHBzOlxcXFxcL1xcXFxcL2luZm8ueWFob28uY29tXFxcXFwvcHJpdmFjeVxcXFxcL3VzXFxcXFwveWFob29cXFxcXC9yZWxldmFudGFkcy5odG1sXFxcIixcXFwiY2xvc2VcXFwiOlxcXCJDbG9zZVxcXCIsXFxcImNsb3NlQWRcXFwiOlxcXCJDbG9zZSBBZFxcXCIsXFxcInNob3dBZFxcXCI6XFxcIlNob3cgYWRcXFwiLFxcXCJjb2xsYXBzZVxcXCI6XFxcIkNvbGxhcHNlXFxcIixcXFwiZmRiXFxcIjpcXFwiSSBkb24ndCBsaWtlIHRoaXMgYWRcXFwiLFxcXCJjb2RlXFxcIjpcXFwiZW4tdXNcXFwifSIsImlzM3JkIjoxLCJmYWNTdGF0dXMiOnt9LCJ1c2VyUHJvdmlkZWREYXRhIjp7fSwic2xvdERhdGEiOnt9LCJzaXplIjoiMXgxIn19LCJjb25mIjp7InciOjEsImgiOjF9fV0sImNvbmYiOm51bGwsIm1ldGEiOnsieSI6eyJwb3NfbGlzdCI6WyJCVE4iLCJCVE4tMSIsIkJUTi0yIiwiQlROLTMiLCJNQVNUIiwiTERSQiIsIlNQTCIsIkxSRUMiLCJMUkVDMiIsIkxSRUMzIiwiRk9PVCIsIkZTUlZZIl0sInRyYW5zSUQiOiJkYXJsYV9wcmVmZXRjaF8xNDc4MDU4OTAxNTQ2XzQxMDU2NTY1Nl8zIiwiazJfdXJpIjoiIiwiZmFjX3J0IjoiNDgzMTkiLCJzcGFjZUlEIjoiMTE4MzMwMDEwMCIsImxvb2t1cFRpbWUiOjMyOSwicHJvY1RpbWUiOjM0NywibnB2IjowLCJwdmlkIjoia3UuckZUWXpMaksxQ1haSldCbGhOUUo4TVRFNExnQUFBQUJueUpRSCIsInNlcnZlVGltZSI6IjE0NzgwNTg5MDE1NDc0MDAiLCJlcCI6eyJzaXRlLWF0dHJpYnV0ZSI6InRpY2tlcj1cIlNORVwiIHdpa2lfdG9waWNzPVwiUGxheVN0YXRpb25fVlI7Umh5dGhtX2dhbWU7TGF1bmNoX2dhbWVcIiBjdG9waWQ9XCIxNTQyNTAwOzE0ODA5ODk7MTQ4MjQ4OTsxNDg5NDg5OzE1NzcwMDA7MTI2OTg1MDA7MTAzNTUwMDsxODc4MDAwOzEwNjEwOTg5OzIyOTk1MDA7MjMzNDUwMFwiIGhhc2h0YWc9XCJwbGF5c3RhdGlvbi12cjtzb255LXBsYXlzdGF0aW9uLXZyO3NvbnktcHN2cjtwc3ZyO3BsYXlzdGF0aW9uLTQ7cGxheXN0YXRpb247cHM0O3Nvbnk7Z2FtaW5nO2dhbWVzO3ZpZGVvLWdhbWVzO2ZlYXR1cmVkOyUyNHNuZTsxNTQyNTAwOzE0ODA5ODk7MTQ4MjQ4OTsxNDg5NDg5OzE1NzcwMDA7MTI2OTg1MDA7MTAzNTUwMDsxODc4MDAwOzEwNjEwOTg5OzIyOTk1MDA7MjMzNDUwMFwiIHJzPVwibG1zaWQ6YTBWZDAwMDAwMEFFN2xYRUFUO3JldnNwOjQwN2ZkNWIyLTQ3YjQtNGMwMC1hMWQwLTQyMWNmMzNiYjcyMTtscHN0YWlkOjgwYjM1MDE0LWZiYTMtMzc3ZS1hZGM1LTQ3ZmI0NGY2MWZhNztwY3Q6c3RvcnlcIiBtZWdhbW9kYWw9dHJ1ZSBZLUJVQ0tFVD1cImZpbmFuY2UtVVMtZW4tVVMtZGVmXCIiLCJ0Z3QiOiJfYmxhbmsiLCJyZWYiOiJodHRwOlwvXC9maW5hbmNlLnlhaG9vLmNvbVwvbmV3c1wvYmVzdC1wc3ZyLWdhbWVzLTE3MDAwMzQ0My5odG1sIiwidWx0Ijp7InBnIjp7InByb3BlcnR5IjoiZmluYW5jZV9lbi1VUyIsInRlc3QiOiJmaW5hbmNlLVVTLWVuLVVTLWRlZiJ9fSwiY2x3Ijp7IkxSRUMiOnsiYmxvY2tlZF9ieSI6Ik1PTi0xIn0sIk1PTi0xIjp7ImJsb2NrZWRfYnkiOiJMUkVDIn0sIk1BU1QiOnsiYmxvY2tlZF9ieSI6IlNQTCxMRFJCIn0sIkxEUkIiOnsiYmxvY2tlZF9ieSI6Ik1BU1QsU1BMIn0sIlNQTCI6eyJibG9ja2VkX2J5IjoiTUFTVCxMRFJCIn19LCJsYW5nIjoiZW4tVVMiLCJmaWx0ZXIiOiJub19leHBhbmRhYmxlO2V4cF9pZnJhbWVfZXhwYW5kYWJsZTsiLCJkYXJsYUlEIjoiZGFybGFfaW5zdGFuY2VfMTQ3ODA1ODkwMTU0Nl8xMjE4Mjc4NjE1XzIifSwicHltIjp7Ii4iOiJ2MC4wLjk7Oy07In0sImhvc3QiOiIiLCJmaWx0ZXJlZCI6W119fX0="
+ />
+
+ <!-- gq1-sdarlaws-009.adx.gq1.yahoo.com Tue Nov 1 20:55:01 PDT 2016 -->
+ <script type="text/javascript">
+ if (typeof DARLA !== "undefined" & amp; & amp; DARLA) {
+ DARLA.config(window.DARLA_CONFIG);
+ window.sf_host.onReady(true, true, 'BTN,BTN-1,BTN-2,BTN-3,LREC', 3000);
+ }
+ </script>
+ </div>
+ <script>
+ window.daggr = window.daggr || {};
+ window.daggr.results = {};
+ window.daggr.results['StreamService:Col2-4-HeightContainer-0-Stream'] = null;
+ window.daggr.fallbackData = [{
+ requesters: [{
+ id: "Col2-4-HeightContainer-0-Stream",
+ dataKey: "streamItems"
+ }],
+ result: window.daggr.results['StreamService:Col2-4-HeightContainer-0-Stream']
+ }];
+ </script>
+ <script src="https://s.yimg.com/zz/combo?os/yaft/yaft-0.3.10.min.js&amp;os/yaft/yaft-plugin-aftnoad-0.1.3.min.js" defer="defer"></script>
+ <script src="https://s.yimg.com/os/yc/js/main.ef256c31a306ee102313.min.js" defer="defer"></script>
+ <script>
+ ! function() {
+ function a() {
+ this.init()
+ }
+ var b = document,
+ c = window;
+ if (Modernizr & amp; & amp; Modernizr.csstransitions) {
+ var d, e, f, g, h, i, j, k, l, m, n, o, p = "has-scrolled",
+ q = "Scrolling",
+ r = "UhHideSubnav",
+ s = "",
+ t = "scroll",
+ u = 50,
+ v = c.addEventListener,
+ w = b.documentElement,
+ x = 1,
+ y = !1,
+ z = void 0 !== c.pageXOffset,
+ A = "CSS1Compat" === (b.compatMode || s),
+ B = c.requestAnimationFrame || c.mozRequestAnimationFrame || c.webkitRequestAnimationFrame || c.msRequestAnimationFrame || function(a) {
+ c.setTimeout(a, u)
+ },
+ C = !1;
+ e = function() {
+ return z ? c.pageYOffset : A ? b.documentElement.scrollTop : b.body.scrollTop
+ }, f = function() {
+ C || (o(q, !0), C = !0, B(n))
+ }, g = function() {
+ o(r, !0), y = !0, l()
+ }, h = function() {
+ o(r, !1), y = !1, m()
+ }, n = function() {
+ var a = e(),
+ b = a & gt;
+ 0;
+ if (C = !1, o(p, b), 0 & gt; = a) return d = 0, void h();
+ var c = a - d;
+ c & gt;
+ x & amp; & amp;
+ !y ? g() : -x & gt;
+ c & amp; & amp;
+ y & amp; & amp;
+ h(), 0 === c ? o(q, !1) : d = a
+ }, i = function() {
+ v ? c.addEventListener(t, f, !0) : c.attachEvent("on" + t, f)
+ }, j = function() {
+ v ? c.removeEventListener(t, f) : c.detachEvent("on" + t, f)
+ }, k = function(a) {
+ y & amp; & amp;
+ h()
+ }, l = function() {
+ var a = b.getElementsByClassName("UH")[0];
+ a & amp; & amp;
+ a.addEventListener("mouseenter", k)
+ }, m = function() {
+ var a = b.getElementsByClassName("UH")[0];
+ a & amp; & amp;
+ a.removeEventListener("mouseenter", k)
+ };
+ var D = {};
+ o = function(a, b) {
+ var c = D[a];
+ if ("undefined" == typeof c || c !== b) {
+ D[a] = b;
+ var d = w.className.split(/\s+/),
+ e = d.indexOf(a);
+ b & amp; & amp;
+ 0 & gt;
+ e ? d.push(a) : !b & amp; & amp;
+ e & gt; = 0 & amp; & amp;
+ d.splice(e, 1), w.className = d.join(" ").trim()
+ }
+ }, a.prototype.init = function() {
+ b.getElementsByClassName("nr-applet-main-nav")[0] & amp; & amp;
+ !this.initialized & amp; & amp;
+ (this.initialized = !0, d = e(), i())
+ }, a.prototype.remove = function() {
+ j(), this.initialized = !1
+ }, c.ScrollHandler = new a
+ }
+ }();
+ </script>
+</body>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-2/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-2/expected-images.json
new file mode 100644
index 000000000..6ece996a2
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-2/expected-images.json
@@ -0,0 +1,3 @@
+[
+ "https:\/\/s.yimg.com\/os\/mit\/media\/m\/social\/images\/social_default_logo-1481777.png"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-2/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-2/expected-metadata.json
new file mode 100644
index 000000000..8ca33da76
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-2/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "NATALIYA VASILYEVA",
+ "Direction": null,
+ "Excerpt": "The latest news and headlines from Yahoo! News. Get breaking news stories and in-depth coverage with videos and photos.",
+ "Image": "https:\/\/s.yimg.com\/os\/mit\/media\/m\/social\/images\/social_default_logo-1481777.png",
+ "Title": "Yahoo News - Latest News & Headlines",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-2/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-2/expected.html
new file mode 100644
index 000000000..9bc5f6f5f
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-2/expected.html
@@ -0,0 +1,34 @@
+<div id="tgt1-Col1-2-ContentCanvas-Proxy">
+ <div id="tgt1-Col1-2-ContentCanvas">
+ <article data-type="story" data-uuid="8dd27580-6b4e-3cfb-a389-5b1ab90bd0eb"><div>
+
+ <div>
+ <div>
+ <p><span>1 / 5</span></p>
+ <div>
+ <div>
+
+ <p>In this photo dated Tuesday, Nov, 29, 2016 the Soyuz-FG rocket booster with the Progress MS-04 cargo ship is installed on a launch pad in Baikonur, Kazakhstan. The unmanned Russian cargo space ship Progress MS-04 broke up in the atmosphere over Siberia on Thursday Dec. 1, 2016, just minutes after the launch en route to the International Space Station due to an unspecified malfunction, the Russian space agency said.(Oleg Urusov/ Roscosmos Space Agency Press Service photo via AP)</p>
+ </div>
+
+ </div></div>
+ </div>
+ </div>
+ <div>
+ <p data-type="text">MOSCOW (AP) — An unmanned Russian cargo spaceship heading to the International Space Station broke up in the atmosphere over Siberia on Thursday due to an unspecified malfunction, the Russian space agency said.</p>
+ <p data-type="text">The Progress MS-04 cargo craft broke up at an altitude of 190 kilometers (118 miles) over the remote Russian Tuva region in Siberia that borders Mongolia, Roscosmos said in a statement. It said most of spaceship's debris burnt up as it entered the atmosphere but some fell to Earth over what it called an uninhabited area.</p>
+ <p data-type="text">Local people reported seeing a flash of light and hearing a loud thud west of the regional capital of Kyzyl, more than 3,600 kilometers (2,200 miles) east of Moscow, the Tuva government was quoted as saying late Thursday by the Interfax news agency.</p>
+ <p data-type="text">The Progress cargo ship had lifted off as scheduled at 8:51 p.m. (1451 GMT) from Russia's space launch complex in Baikonur, Kazakhstan, to deliver 2.5 metric tons of fuel, water, food and other supplies. It was set to dock with the space station on Saturday.</p>
+ <p data-type="text">Roscosmos said the craft was operating normally before it stopped transmitting data 6 ½ minutes after the launch. The Russian space agency would not immediately describe the malfunction, saying its experts were looking into it.</p>
+ <p data-type="text">This is the third botched launch of a Russian spacecraft in two years. A Progress cargo ship plunged into the Pacific Ocean in May 2015, and a Proton-M rocket carrying an advanced satellite broke up in the atmosphere in May 2014.</p>
+ <p data-type="text">But both Roscosmos and NASA said the crash of the ship would have no impact on the operations of the orbiting space lab that is currently home to a six-member crew, including three cosmonauts from Russia, two NASA astronauts and one from the European Union.</p>
+ <p data-type="text">Orbital ATK, NASA's other shipper, successfully sent up supplies to the space station in October, and a Japanese cargo spaceship is scheduled to launch a full load in mid-December.</p>
+ <p data-type="text">NASA supplier SpaceX, meanwhile, has been grounded since a rocket explosion in September on the launch pad at Cape Canaveral, Florida. The company hopes to resume launches in December to deliver communication satellites.</p>
+ <p data-type="text">___</p>
+ <p data-type="text">This version corrects the spelling of the region to Tuva, not Tyva.</p>
+ <p data-type="text">__</p>
+ <p data-type="text">Aerospace Writer Marcia Dunn in Cape Canaveral, Florida, and Vladimir Isachenkov in Moscow contributed to this report.</p>
+
+ </div>
+ </article></div>
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-2/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-2/source.html
new file mode 100644
index 000000000..2ab343fc9
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-2/source.html
@@ -0,0 +1,20539 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" id="atomic" class="firefox desktop JsEnabled TwoColumnLayout CollapsibleUh onDemandFocusSupport Panel-open modal-open Panel-postopen modal-postopen MegaModalLayout ShowNavrail scrollUp Scrolling" style="" lang="en-US">
+
+<head prefix="og: http://ogp.me/ns#">
+ <script>
+ window.performance & amp; & amp;
+ window.performance.mark & amp; & amp;
+ window.performance.mark('PageStart');
+ </script>
+ <meta charset="utf-8" />
+ <meta name="msapplication-TileColor" content="#6e329d" />
+ <meta name="msapplication-TileImage" content="https://s.yimg.com/os/mit/media/p/presentation/images/icons/win8-tile-1484740.png" />
+ <meta name="referrer" content="origin" />
+ <meta name="theme-color" content="#400090" />
+ <meta name="twitter:dnt" content="on" />
+ <meta name="twitter:site" content="@Yahoo" />
+ <meta name="application-name" content="Yahoo News - Latest News &amp; Headlines" />
+ <meta name="twitter:card" content="summary" />
+ <meta name="apple-itunes-app" content="app-id=304158842" />
+ <meta name="twitter:description" content="The latest news and headlines from Yahoo! News. Get breaking news stories and in-depth coverage with videos and photos." />
+ <meta name="twitter:image" content="https://s.yimg.com/os/mit/media/m/social/images/social_default_logo-1481777.png" />
+ <meta name="twitter:image:src" content="https://s.yimg.com/os/mit/media/m/social/images/social_default_logo-1481777.png" />
+ <meta name="twitter:title" content="Yahoo News - Latest News &amp; Headlines" />
+ <meta name="description" content="The latest news and headlines from Yahoo! News. Get breaking news stories and in-depth coverage with videos and photos." />
+ <meta property="og:type" content="website" />
+ <meta property="fb:app_id" content="90376669494" />
+ <meta property="twitter:site" content="@YahooNews" />
+ <meta property="og:description" content="The latest news and headlines from Yahoo! News. Get breaking news stories and in-depth coverage with videos and photos." />
+ <meta property="og:image" content="https://s.yimg.com/os/mit/media/m/social/images/social_default_logo-1481777.png" />
+ <meta property="og:title" content="Yahoo News - Latest News &amp; Headlines" />
+ <meta http-equiv="x-dns-prefetch-control" content="on" />
+ <link rel="dns-prefetch" href="//s.yimg.com" />
+ <link rel="dns-prefetch" href="//geo.query.yahoo.com" />
+ <link rel="dns-prefetch" href="//csc.beap.bc.yahoo.com" />
+ <link rel="dns-prefetch" href="//beap.gemini.yahoo.com" />
+ <link rel="dns-prefetch" href="//yep.video.yahoo.com" />
+ <link rel="dns-prefetch" href="//video-api.yql.yahoo.com" />
+ <link rel="dns-prefetch" href="//yrtas.btrll.com" />
+ <link rel="dns-prefetch" href="//shim.btrll.com" />
+ <link rel="preconnect" href="//s.yimg.com" />
+ <link rel="preconnect" href="//geo.query.yahoo.com" />
+ <link rel="preconnect" href="//csc.beap.bc.yahoo.com" />
+ <link rel="preconnect" href="//beap.gemini.yahoo.com" />
+ <link rel="preconnect" href="//yep.video.yahoo.com" />
+ <link rel="preconnect" href="//video-api.yql.yahoo.com" />
+ <link rel="preconnect" href="//yrtas.btrll.com" />
+ <link rel="preconnect" href="//shim.btrll.com" />
+ <link rel="icon" sizes="any" href="https://s.yimg.com/os/mit/media/p/common/images/favicon_new-7483e38.svg" />
+ <link rel="icon" type="image/x-icon" href="/favicon.ico" />
+ <link rel="canonical" href="//us.yahoo.com/news/" />
+ <title>Russia: Space ship malfunctions, breaks up over Siberia</title>
+ <link rel="stylesheet" href="https://s.yimg.com/zz/combo?os/yc/css/custom.a7b8ca29.css&amp;os/yc/css/bundle.40c34d82.css&amp;os/yc/css/atomic-desktop-ltr.b9fc1997.css&amp;os/yc/css/atomic-context.2d508cfe.css&amp;os/yc/css/patch.cd698090.css&amp;os/yc/css/theme.7c54e2fd.css&amp;os/fuji-style/css/fuji-rollup.min.e15bf8b3.css&amp;os/yc/css/content-canvas.67e84b7e.css" />
+ <script src="https://www.yahoo.com/polyfill.min.js?features=locale-data-en-us%2Carray.isarray%2Carray.prototype.every%2Carray.prototype.foreach%2Carray.prototype.indexof%2Carray.prototype.map%2Cdate.now%2Cfunction.prototype.bind%2Cobject.keys%2Cstring.prototype.trim%2Cobject.defineproperty%2Cobject.defineproperties%2Cobject.create%2Cobject.freeze%2Carray.prototype.filter%2Carray.prototype.reduce%2Cobject.assign%2Cpromise%2Crequestanimationframe%2Carray.prototype.some%2Cobject.getownpropertynames%2Cintl&amp;version=2.1.23" defer="defer"></script>
+ <script src="https://s.yimg.com/os/ri/2.1.5/en.js"></script>
+ <script src="https://s.yimg.com/zz/combo?ss/rapid-3.39.1.js"></script>
+ <script src="https://s.yimg.com/zz/combo?os/yc/js/common.19836e536b932247a9b1.min.js" defer="defer"></script>
+ <script src="https://s.yimg.com/rq/darla/2-9-19/js/g-r-min.js"></script>
+ <script>
+ window.Modernizr = function(a, b, c) {
+ function d(a) {
+ r.cssText = a
+ }
+
+ function e(a, b) {
+ return typeof a === b
+ }
+
+ function f(a, b) {
+ return !!~("" + a).indexOf(b)
+ }
+
+ function g(a, b) {
+ for (var d in a) {
+ var e = a[d];
+ if (!f(e, "-") & amp; & amp; r[e] !== c) return "pfx" == b ? e : !0
+ }
+ return !1
+ }
+
+ function h(a, b, d) {
+ for (var f in a) {
+ var g = b[a[f]];
+ if (g !== c) return d === !1 ? a[f] : e(g, "function") ? g.bind(d || b) : g
+ }
+ return !1
+ }
+
+ function i(a, b, c) {
+ var d = a.charAt(0).toUpperCase() + a.slice(1),
+ f = (a + " " + u.join(d + " ") + d).split(" ");
+ return e(b, "string") || e(b, "undefined") ? g(f, b) : (f = (a + " " + v.join(d + " ") + d).split(" "), h(f, b, c))
+ }
+ var j, k, l, m = "2.8.3",
+ n = {},
+ o = b.documentElement,
+ p = "modernizr",
+ q = b.createElement(p),
+ r = q.style,
+ s = ({}.toString, " -webkit- -moz- -o- -ms- ".split(" ")),
+ t = "Webkit Moz O ms",
+ u = t.split(" "),
+ v = t.toLowerCase().split(" "),
+ w = {
+ svg: "http://www.w3.org/2000/svg"
+ },
+ x = {},
+ y = [],
+ z = y.slice,
+ A = function(a, c, d, e) {
+ var f, g, h, i, j = b.createElement("div"),
+ k = b.body,
+ l = k || b.createElement("body");
+ if (parseInt(d, 10))
+ for (; d--;) h = b.createElement("div"), h.id = e ? e[d] : p + (d + 1), j.appendChild(h);
+ return f = ["&amp;#173;", '&lt;style id="s', p, '"&gt;', a, "&lt;/style&gt;"].join(""), j.id = p, (k ? j : l).innerHTML += f, l.appendChild(j), k || (l.style.background = "", l.style.overflow = "hidden", i = o.style.overflow, o.style.overflow = "hidden", o.appendChild(l)), g = c(j, a), k ? j.parentNode.removeChild(j) : (l.parentNode.removeChild(l), o.style.overflow = i), !!g
+ },
+ B = {}.hasOwnProperty;
+ l = e(B, "undefined") || e(B.call, "undefined") ? function(a, b) {
+ return b in a & amp; & amp;
+ e(a.constructor.prototype[b], "undefined")
+ } : function(a, b) {
+ return B.call(a, b)
+ }, Function.prototype.bind || (Function.prototype.bind = function(a) {
+ var b = this;
+ if ("function" != typeof b) throw new TypeError;
+ var c = z.call(arguments, 1),
+ d = function() {
+ if (this instanceof d) {
+ var e = function() {};
+ e.prototype = b.prototype;
+ var f = new e,
+ g = b.apply(f, c.concat(z.call(arguments)));
+ return Object(g) === g ? g : f
+ }
+ return b.apply(a, c.concat(z.call(arguments)))
+ };
+ return d
+ }), x.canvas = function() {
+ var a = b.createElement("canvas");
+ return !(!a.getContext || !a.getContext("2d"))
+ }, x.history = function() {
+ return !(!a.history || !history.pushState)
+ }, x.csstransforms3d = function() {
+ var a = !!i("perspective");
+ return a & amp; & amp;
+ "webkitPerspective" in o.style & amp; & amp;
+ A("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}", function(b, c) {
+ a = 9 === b.offsetLeft & amp; & amp;
+ 3 === b.offsetHeight
+ }), a
+ }, x.csstransitions = function() {
+ return i("transition")
+ }, x.video = function() {
+ var a = b.createElement("video"),
+ c = !1;
+ try {
+ (c = !!a.canPlayType) & amp; & amp;
+ (c = new Boolean(c), c.ogg = a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/, ""), c.h264 = a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/, ""), c.webm = a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/, ""))
+ } catch (d) {}
+ return c
+ }, x.localstorage = function() {
+ try {
+ return localStorage.setItem(p, p), localStorage.removeItem(p), !0
+ } catch (a) {
+ return !1
+ }
+ }, x.sessionstorage = function() {
+ try {
+ return sessionStorage.setItem(p, p), sessionStorage.removeItem(p), !0
+ } catch (a) {
+ return !1
+ }
+ }, x.svg = function() {
+ return !!b.createElementNS & amp; & amp;
+ !!b.createElementNS(w.svg, "svg").createSVGRect
+ }, x.inlinesvg = function() {
+ var a = b.createElement("div");
+ return a.innerHTML = "&lt;svg/&gt;", (a.firstChild & amp; & amp; a.firstChild.namespaceURI) == w.svg
+ };
+ for (var C in x) l(x, C) & amp; & amp;
+ (k = C.toLowerCase(), n[k] = x[C](), y.push((n[k] ? "" : "no-") + k));
+ return n.addTest = function(a, b) {
+ if ("object" == typeof a)
+ for (var d in a) l(a, d) & amp; & amp;
+ n.addTest(d, a[d]);
+ else {
+ if (a = a.toLowerCase(), n[a] !== c) return n;
+ b = "function" == typeof b ? b() : b, "undefined" != typeof enableClasses & amp; & amp;
+ enableClasses & amp; & amp;
+ (o.className += " " + (b ? "" : "no-") + a), n[a] = b
+ }
+ return n
+ }, d(""), q = j = null, n._version = m, n._prefixes = s, n._domPrefixes = v, n._cssomPrefixes = u, n.testProp = function(a) {
+ return g([a])
+ }, n.testAllProps = i, n.testStyles = A, n.prefixed = function(a, b, c) {
+ return b ? i(a, b, c) : i(a, "pfx")
+ }, n
+ }(this, this.document);
+ </script>
+ <script>
+ (function(html) {
+ var c = html.className;
+ c += " JsEnabled";
+ c = c.replace("NoJs", "");
+ html.className = c;
+ })(document.documentElement);
+ </script>
+ <style>
+ .tdv2-applet-canvass .action-appear,
+ .tdv2-applet-canvass .action-enter {
+ opacity: .01
+ }
+
+ .tdv2-applet-canvass .action-leave {
+ opacity: 1
+ }
+
+ .tdv2-applet-canvass .action-appear.action-appear-active,
+ .tdv2-applet-canvass .action-enter.action-enter-active {
+ opacity: 1;
+ transition: opacity .5s ease-in
+ }
+
+ .tdv2-applet-canvass .action-leave.action-leave-active {
+ opacity: .01;
+ transition: opacity 1s ease-in
+ }
+
+ .tdv2-applet-canvass .arrow_box {
+ position: relative;
+ background: #fff;
+ border: 1px solid #e0e4e9
+ }
+
+ .tdv2-applet-canvass .arrow_box:after,
+ .tdv2-applet-canvass .arrow_box:before {
+ bottom: 100%;
+ left: 50%;
+ border: solid transparent;
+ content: " ";
+ height: 0;
+ width: 0;
+ position: absolute;
+ pointer-events: none
+ }
+
+ .tdv2-applet-canvass .arrow_box:after {
+ border-color: rgba(232, 235, 234, 0);
+ border-bottom-color: #fff;
+ border-width: 7px;
+ margin-left: -7px
+ }
+
+ .tdv2-applet-canvass .arrow_box:before {
+ border-color: rgba(224, 228, 233, 0);
+ border-bottom-color: #e0e4e9;
+ border-width: 8px;
+ margin-left: -8px
+ }
+ </style>
+ <style>
+ .jtdTrans-enter {
+ transform: translateY(7px) scale(.9667)
+ }
+
+ .jtdTrans-enter.jtdTrans-enter-active {
+ transform: translateY(0) scale(1);
+ transition: all 350ms ease-out
+ }
+
+ .jtdTrans-leave {
+ opacity: 1;
+ transform: translateX(0)
+ }
+
+ .jtdTrans-leave.jtdTrans-leave-active {
+ opacity: .01;
+ transform: translateX(100%);
+ transition: all 350ms ease-in
+ }
+
+ .jtdBgTrans-enter {
+ opacity: 0;
+ transform: translateY(7px) scale(.9667)
+ }
+
+ .jtdBgTrans-enter.jtdBgTrans-enter-active {
+ opacity: 1;
+ transform: translateY(0) scale(1);
+ transition: all 350ms ease-out
+ }
+
+ .jtdBgTrans-leave {
+ opacity: 0
+ }
+
+ @-webkit-keyframes moveAnimation {
+ 25% {
+ transform: rotate(-90deg)
+ }
+ 75% {
+ transform: rotate(0)
+ }
+ }
+
+ @keyframes moveAnimation {
+ 25% {
+ transform: rotate(-90deg)
+ }
+ 75% {
+ transform: rotate(0)
+ }
+ }
+ </style>
+ <style>
+ .tdv2-applet-livecoverage .action-enter {
+ opacity: .01
+ }
+
+ .tdv2-applet-livecoverage .action-enter.action-enter-active {
+ opacity: 1;
+ transition: opacity .5s ease-in
+ }
+
+ .tdv2-applet-livecoverage .action-leave {
+ opacity: 1
+ }
+
+ .tdv2-applet-livecoverage .action-leave.action-leave-active {
+ opacity: .01;
+ transition: opacity 1s ease-in
+ }
+
+ .tdv2-applet-livecoverage .action-appear {
+ opacity: .01
+ }
+
+ .tdv2-applet-livecoverage .action-appear.action-appear-active {
+ opacity: 1;
+ transition: opacity .5s ease-in
+ }
+
+ .tdv2-applet-livecoverage .new-post {
+ animation: transistion-bd-color 10s ease-in
+ }
+
+ @keyframes transistion-bd-color {
+ 0%,
+ 25% {
+ border-color: #ff2429
+ }
+ 100% {
+ border-color: #198cff
+ }
+ }
+ </style>
+ <style>
+ .trending-enter {
+ opacity: .01;
+ position: relative;
+ transition: opacity .5s ease-in;
+ transition-delay: .5s
+ }
+
+ .trending-enter.trending-enter-active {
+ opacity: 1;
+ position: relative
+ }
+
+ .trending-leave {
+ opacity: 1;
+ position: absolute;
+ top: 0;
+ left: 0;
+ transition: opacity .5s ease-in
+ }
+
+ .trending-leave.trending-leave-active {
+ position: absolute;
+ top: 0;
+ left: 0;
+ opacity: .01
+ }
+ </style>
+ <style>
+ .td-applet-mtfpopup .ac-results .react-autocomplete-results-list {
+ margin: 0;
+ border: 1px solid #ccc
+ }
+
+ .td-applet-mtfpopup .ac-results .react-autocomplete-results-list .react-autocomplete-result-item {
+ padding: 5px
+ }
+
+ .td-applet-mtfpopup .ac-results .react-autocomplete-results-list .react-autocomplete-result-item:hover {
+ background-color: #ddd
+ }
+
+ .td-applet-mtfpopup .ac-results .react-autocomplete-results-list .react-autocomplete-result-item.focused {
+ background-color: #ccc
+ }
+ </style>
+ <style>
+ @-webkit-keyframes spin {
+ to {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg)
+ }
+ }
+
+ @keyframes spin {
+ to {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg)
+ }
+ }
+
+ @-webkit-keyframes location-spinner {
+ 0% {
+ -webkit-transform: scale(0);
+ transform: scale(0)
+ }
+ 100% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ opacity: 0
+ }
+ }
+
+ @keyframes location-spinner {
+ 0% {
+ -webkit-transform: scale(0);
+ transform: scale(0)
+ }
+ 100% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ opacity: 0
+ }
+ }
+
+ .bgimg-enter {
+ opacity: .01
+ }
+
+ .bgimg-enter.bgimg-enter-active {
+ opacity: 1;
+ -webkit-transition: opacity .5s ease-in;
+ transition: opacity .5s ease-in
+ }
+
+ .bgimg-leave {
+ opacity: 1
+ }
+
+ .bgimg-leave.bgimg-leave-active {
+ opacity: .01;
+ -webkit-transition: opacity .3s ease-in;
+ transition: opacity .3s ease-in
+ }
+ </style>
+ <style>
+ @-webkit-keyframes follow-anim {
+ 0%,
+ 100% {
+ opacity: 1;
+ stroke-width: 1px
+ }
+ 50% {
+ opacity: .8;
+ stroke-width: 4px
+ }
+ }
+
+ @keyframes follow-anim {
+ 0%,
+ 100% {
+ opacity: 1;
+ stroke-width: 1px
+ }
+ 50% {
+ opacity: .8;
+ stroke-width: 4px
+ }
+ }
+ </style>
+ <style>
+ body::after {
+ opacity: 0;
+ content: ' ';
+ position: fixed;
+ transition: opacity .1s ease-in, transform .1s ease-in;
+ -webkit-transition: opacity .1s ease-in, transform .1s ease-in;
+ pointer-events: none
+ }
+
+ .desktop body::after,
+ .desktop body:after {
+ top: 50%;
+ left: 50%;
+ display: block;
+ width: 52px;
+ height: 52px;
+ z-index: 11;
+ background: url(https://s.yimg.com/os/yc/pt/icons/fuji-loader-v2-blue.0.svg) center center no-repeat;
+ background: url(https://s.yimg.com/os/yc/pt/icons/throbber-93.gif) center center no-repeat\9;
+ background-size: 52px 52px;
+ margin-left: -41px;
+ margin-top: -41px;
+ padding: 15px;
+ background-color: #fff;
+ border-radius: 50%;
+ box-shadow: 0 0 100px #ccc;
+ transform: scale(.7);
+ -webkit-transform: scale(.7)
+ }
+
+ @media screen and (-ms-high-contrast:active),
+ (-ms-high-contrast:none) {
+ .desktop body::after,
+ .desktop body:after {
+ background: url(https://s.yimg.com/os/yc/pt/icons/throbber-93.gif) center center no-repeat
+ }
+ }
+
+ .smartphone body::after,
+ .smartphone body:after,
+ .tablet body::after,
+ .tablet body:after {
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ z-index: 1;
+ background: url(https://s.yimg.com/os/yc/pt/icons/fuji-loader-v2-blue.0.svg) 50% 50% no-repeat rgba(255, 255, 255, .7);
+ height: 100%;
+ background-size: 52px 52px
+ }
+
+ .batchupdate-transitioning body::after,
+ .batchupdate-transitioning body:after {
+ opacity: 1
+ }
+ </style>
+ <style>
+ #atomic .render-target-modal #YDC-UH {
+ display: none
+ }
+
+ #atomic #render-target-modal,
+ #atomic #render-target-viewer {
+ opacity: 0
+ }
+
+ #atomic.modal-postopen #render-target-modal,
+ #atomic.viewer-postopen #render-target-viewer {
+ opacity: 1
+ }
+
+ #atomic.modal-postopen #render-target-mrt,
+ #atomic.modal-postopen .render-target-default,
+ #atomic.viewer-postopen #render-target-mrt,
+ #atomic.viewer-postopen .render-target-default {
+ max-height: 100%;
+ overflow: hidden
+ }
+
+ #render-target-mrt {
+ position: absolute;
+ width: 100%
+ }
+
+ #atomic.default-to-modal-fade .render-target-default,
+ #atomic.default-to-viewer-fade .render-target-default,
+ #atomic.modal-to-default-fade .render-target-modal,
+ #atomic.mrt-to-modal-fade #render-target-mrt,
+ #atomic.mrt-to-viewer-fade #render-target-mrt,
+ #atomic.viewer-to-default-fade .render-target-viewer {
+ position: absolute
+ }
+
+ #atomic.default-to-modal-fade .render-target-modal {
+ -webkit-animation: fadein .15s ease-out forwards;
+ animation: fadein .15s ease-out forwards
+ }
+
+ #atomic.modal-to-default-fade .render-target-modal {
+ -webkit-animation: fadeout .15s ease-in forwards;
+ animation: fadeout .15s ease-in forwards
+ }
+
+ #atomic.default-to-viewer-fade .render-target-viewer,
+ #atomic.modal-to-viewer-fade .render-target-viewer {
+ -webkit-animation: fadein .25s ease-out forwards;
+ animation: fadein .25s ease-out forwards
+ }
+
+ #atomic.viewer-to-default-fade .render-target-viewer,
+ #atomic.viewer-to-modal-fade .render-target-viewer {
+ -webkit-animation: fadeout .25s ease-in forwards;
+ animation: fadeout .25s ease-in forwards
+ }
+
+ @-webkit-keyframes fadein {
+ 0% {
+ opacity: 0
+ }
+ 100% {
+ opacity: 1
+ }
+ }
+
+ @-webkit-keyframes fadeout {
+ 0% {
+ opacity: 1
+ }
+ 100% {
+ opacity: 0
+ }
+ }
+
+ @keyframes fadein {
+ 0% {
+ opacity: 0
+ }
+ 100% {
+ opacity: 1
+ }
+ }
+
+ @keyframes fadeout {
+ 0% {
+ opacity: 1
+ }
+ 100% {
+ opacity: 0
+ }
+ }
+ </style>
+ <script>
+ (function() {
+ if (!window.YAHOO || !window.YAHOO.i13n || !window.YAHOO.i13n.Rapid) {
+ return;
+ }
+ var rapidConfig = {
+ "keys": {
+ "ver": "y20",
+ "navtype": "server",
+ "pt": 2,
+ "layout": "y20stream",
+ "site": "news",
+ "ccode_st": "mega_news_ntk",
+ "mrkt": "us",
+ "lang": "en-US",
+ "colo": "gq1",
+ "_yrid": "1eprt2tc42fn6",
+ "_rid": "1eprt2tc42fn6"
+ },
+ "compr_type": "deflate",
+ "tracked_mods_viewability": [],
+ "test_id": "news-d-162",
+ "webworker_file": "/lib/metro/g/myy/rapidworker_1_2_0.0.2.js",
+ "client_only": 1,
+ "track_right_click": true,
+ "pageview_on_init": true,
+ "viewability": true,
+ "dwell_on": true,
+ "spaceid": 1197800621
+ };
+ window.rapidInstance = new window.YAHOO.i13n.Rapid(rapidConfig);
+ })();
+ </script>
+ <script type="text/javascript" charset="utf-8" async="" src="https://s.yimg.com/os/yc/js/tdv2-applet-uh.19836e536b932247a9b1.min.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" src="https://s.yimg.com/os/yc/js/tdv2-applet-mtfpopup.19836e536b932247a9b1.min.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" src="https://s.yimg.com/os/yc/js/tdv2-applet-nagbar.19836e536b932247a9b1.min.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" src="https://s.yimg.com/os/yc/js/td-ads.19836e536b932247a9b1.min.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" src="https://s.yimg.com/os/yc/js/tdv2-applet-featurebar.19836e536b932247a9b1.min.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" src="https://s.yimg.com/os/yc/js/tdv2-applet-stream.19836e536b932247a9b1.min.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" src="https://s.yimg.com/os/yc/js/tdv2-applet-followauthor.19836e536b932247a9b1.min.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" src="https://s.yimg.com/os/yc/js/react-adblock-promo.19836e536b932247a9b1.min.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" src="https://s.yimg.com/os/yc/js/tdv2-applet-canvass.19836e536b932247a9b1.min.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" src="https://s.yimg.com/os/yc/js/react-weather.19836e536b932247a9b1.min.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" src="https://s.yimg.com/os/yc/js/tdv2-applet-channels.19836e536b932247a9b1.min.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" src="https://s.yimg.com/os/yc/js/tdv2-applet-discussion.19836e536b932247a9b1.min.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" src="https://s.yimg.com/os/yc/js/tdv2-applet-footer.19836e536b932247a9b1.min.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" src="https://s.yimg.com/os/yc/js/tdv2-applet-navrail.19836e536b932247a9b1.min.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" src="https://s.yimg.com/os/yc/js/tdv2-applet-account-switch.19836e536b932247a9b1.min.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" src="https://s.yimg.com/os/yc/js/react-share-buttons.19836e536b932247a9b1.min.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" src="https://s.yimg.com/os/yc/js/tdv2-applet-follow.19836e536b932247a9b1.min.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" src="https://s.yimg.com/os/yc/js/tdv2-applet-stream-hero.carousel.19836e536b932247a9b1.min.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" src="https://s.yimg.com/os/yc/js/tdv2-applet-video-modal.19836e536b932247a9b1.min.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" src="https://s.yimg.com/os/yc/js/react-tumblr-tile.19836e536b932247a9b1.min.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" src="https://s.yimg.com/os/yc/js/td-app-yahoo.19836e536b932247a9b1.min.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" src="https://s.yimg.com/os/yc/js/tdv2-applet-trending.19836e536b932247a9b1.min.js"></script>
+ <style type="text/css">
+ .cc-element {
+ position: absolute;
+ bottom: 16%;
+ width: 95%;
+ left: 2.5%;
+ text-align: center;
+ z-index: 6;
+ -webkit-transition-property: bottom;
+ -webkit-transition-duration: .5s;
+ -webkit-transition-delay: 0s;
+ transition-property: bottom;
+ transition-duration: .5s;
+ transition-delay: 0s;
+ }
+
+ .cc-element.bottom.float {
+ bottom: 10%
+ }
+
+ .cc-element.top.float {
+ top: 10%;
+ bottom: initial
+ }
+
+ .cc-element.top {
+ top: 5%;
+ bottom: initial
+ }
+
+ .cc-element.bottom {
+ bottom: 16%
+ }
+
+ .cc-element.yvp-show {
+ display: block
+ }
+
+ .cc-element.yvp-hide {
+ display: none
+ }
+
+ .cc-element.yvp-live-cc {
+ text-align: left;
+ width: 90%;
+ left: 5%
+ }
+
+ .yvp-cc-options-main,
+ .yvp-cc-options-more {
+ min-width: 496px;
+ max-height: 212px;
+ color: #fff;
+ }
+
+ .yvp-cc-options-main.open,
+ .yvp-cc-options-more.open {
+ display: block
+ }
+
+ .yvp-cc-options-main.close,
+ .yvp-cc-options-more.close {
+ display: none
+ }
+
+ .yvp-cc-options-main .yvp-ddm-wrapper,
+ .yvp-cc-options-more .yvp-ddm-wrapper {
+ margin-left: 0;
+ padding: 0;
+ width: 150px;
+ color: #fff;
+ display: inline-block;
+ position: relative;
+ z-index: 1;
+ vertical-align: middle
+ }
+
+ .yvp-cc-options-main .yvp-ddm-availability,
+ .yvp-cc-options-more .yvp-ddm-availability {
+ display: none;
+ background-color: #3db224;
+ width: 6px;
+ height: 6px;
+ border-radius: 8px;
+ position: relative;
+ top: -9px;
+ left: 3px;
+ }
+
+ .yvp-cc-options-main .yvp-ddm-availability.not-available,
+ .yvp-cc-options-more .yvp-ddm-availability.not-available {
+ background-color: #ccc
+ }
+
+ .yvp-cc-options-main .yvp-ddm-selected,
+ .yvp-cc-options-more .yvp-ddm-selected {
+ text-align: left;
+ padding-left: 5px;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ height: 20px;
+ line-height: 20px
+ }
+
+ .yvp-cc-options-main .yvp-ddm-selected-wrapper,
+ .yvp-cc-options-more .yvp-ddm-selected-wrapper {
+ width: 100%;
+ border: 1px solid #5f5f5f;
+ border-radius: 3px;
+ }
+
+ .yvp-cc-options-main .yvp-ddm-selected-wrapper:hover,
+ .yvp-cc-options-more .yvp-ddm-selected-wrapper:hover {
+ cursor: pointer;
+ }
+
+ .yvp-cc-options-main .yvp-ddm-selected-wrapper:hover .yvp-ddm-chevron,
+ .yvp-cc-options-more .yvp-ddm-selected-wrapper:hover .yvp-ddm-chevron {
+ opacity: .9
+ }
+
+ .yvp-cc-options-main .yvp-ddm-chevron,
+ .yvp-cc-options-more .yvp-ddm-chevron {
+ background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbG5zOnNrZXRjaD0iaHR0cDovL3d3dy5ib2hlbWlhbmNvZGluZy5jb20vc2tldGNoL25zIj4KICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHNrZXRjaDp0eXBlPSJNU1BhZ2UiPgogICAgICAgIDxnIGlkPSJjY19jYXJyb3QtIiBza2V0Y2g6dHlwZT0iTVNBcnRib2FyZEdyb3VwIiBmaWxsPSIjRkZGRkZGIj4KICAgICAgICAgICAgPHBhdGggZD0iTTEyLjcyNSw3LjQyMTgzNzc3IEw5LDExLjk5ODgzNzggTDEyLjcyNSwxNi41NzQ4Mzc4IEMxMi45NSwxNi44NTI4Mzc4IDEzLjI4NywxNi45OTc4Mzc4IDEzLjYyNiwxNi45OTc4Mzc4IEMxMy44NzMsMTYuOTk3ODM3OCAxNC4xMjIsMTYuOTIwODM3OCAxNC4zMzEsMTYuNzYxODM3OCBDMTQuODI4LDE2LjM4NjgzNzggMTQuOTE2LDE1LjY5MjgzNzggMTQuNTI1LDE1LjIxMzgzNzggTDExLjkwOSwxMS45OTg4Mzc4IEwxNC41MjUsOC43ODM4Mzc3NyBDMTQuOTE2LDguMzA0ODM3NzcgMTQuODI4LDcuNjEwODM3NzcgMTQuMzMxLDcuMjM0ODM3NzcgQzEzLjgzNSw2Ljg1ODgzNzc3IDEzLjExNSw2Ljk0MzgzNzc3IDEyLjcyNSw3LjQyMTgzNzc3IFoiIGlkPSJGaWxsLTMiIHNrZXRjaDp0eXBlPSJNU1NoYXBlR3JvdXAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyLjAwMDAwMCwgMTIuMDAwMDAwKSByb3RhdGUoLTkwLjAwMDAwMCkgdHJhbnNsYXRlKC0xMi4wMDAwMDAsIC0xMi4wMDAwMDApICI+PC9wYXRoPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+Cg==");
+ position: absolute;
+ padding-left: 11px;
+ padding-right: 7px;
+ top: 0;
+ height: 19px;
+ width: 5px;
+ right: 1.5%;
+ opacity: .7;
+ }
+
+ .yvp-cc-options-main .yvp-ddm-list,
+ .yvp-cc-options-more .yvp-ddm-list {
+ position: absolute;
+ background-color: rgba(0, 0, 0, 0.8);
+ max-height: 120px;
+ display: none;
+ padding: 0;
+ min-width: 100%;
+ overflow-x: hidden;
+ overflow-y: auto;
+ border: 1px solid rgba(255, 255, 255, 0.2);
+ border-top: none;
+ box-sizing: border-box;
+ width: 101%;
+ }
+
+ .yvp-cc-options-main .yvp-ddm-list.open,
+ .yvp-cc-options-more .yvp-ddm-list.open {
+ cursor: pointer;
+ display: block
+ }
+
+ .yvp-cc-options-main .yvp-ddm-item,
+ .yvp-cc-options-more .yvp-ddm-item {
+ text-align: left;
+ padding: 7px 5px;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
+ background: rgba(0, 0, 0, 0);
+ }
+
+ .yvp-cc-options-main .yvp-ddm-item:first-child,
+ .yvp-cc-options-more .yvp-ddm-item:first-child {
+ padding-top: 9px
+ }
+
+ .yvp-cc-options-main .yvp-ddm-item:last-child,
+ .yvp-cc-options-more .yvp-ddm-item:last-child {
+ border-bottom: none
+ }
+
+ .yvp-cc-options-main .yvp-ddm-item:hover,
+ .yvp-cc-options-more .yvp-ddm-item:hover {
+ cursor: pointer;
+ background: rgba(0, 0, 0, 0.4)
+ }
+
+ .yvp-cc-options-main .yvp-cc-header,
+ .yvp-cc-options-more .yvp-cc-header {
+ color: rgba(255, 255, 255, 0.6);
+ font-weight: normal
+ }
+
+ .yvp-cc-options-more .yvp-tab-container {
+ padding: 0;
+ width: 100%;
+ border: 0;
+ position: relative;
+ margin-top: 16px;
+ max-height: 100px;
+ }
+
+ .yvp-cc-options-more .yvp-tab-container .yvp-tabs-nav {
+ width: 100%;
+ padding-bottom: 0;
+ margin-bottom: 0;
+ height: 32px;
+ display: block;
+ background-color: transparent;
+ text-align: center;
+ overflow: hidden;
+ box-sizing: border-box;
+ }
+
+ .yvp-cc-options-more .yvp-tab-container .yvp-tabs-nav .yvp-tab {
+ display: block;
+ float: left;
+ width: 25%;
+ color: rgba(255, 255, 255, 0.6);
+ margin: 0;
+ padding: 0;
+ border-bottom: 1px solid rgba(255, 255, 255, 0.2);
+ background-color: transparent;
+ box-sizing: border-box;
+ text-transform: capitalize;
+ cursor: pointer;
+ height: 32px;
+ line-height: 24px;
+ }
+
+ .yvp-cc-options-more .yvp-tab-container .yvp-tabs-nav .yvp-tab:hover {
+ color: rgba(255, 255, 255, 0.8);
+ border-bottom: 3px solid rgba(255, 255, 255, 0.3)
+ }
+
+ .yvp-cc-options-more .yvp-tab-container .yvp-tabs-nav .yvp-tab:last-child {
+ border-right: none
+ }
+
+ .yvp-cc-options-more .yvp-tab-container .yvp-tabs-nav .yvp-tab.tab-selected {
+ border-bottom: 3px solid #0087ff;
+ color: #fff
+ }
+
+ .yvp-cc-options-more .yvp-tab-container .yvp-tabs-content .yvp-tabcontent {
+ display: none;
+ background-color: transparent;
+ padding: 16px 0;
+ height: 40px;
+ position: relative;
+ }
+
+ .yvp-cc-options-more .yvp-tab-container .yvp-tabs-content .yvp-tabcontent.tab-show {
+ display: block
+ }
+
+ .yvp-cc-options-more .yvp-tab-container .yvp-tabs-content .yvp-ddm-wrapper {
+ display: inline-block;
+ width: 150px;
+ margin: 0 0 43px 75px;
+ border-radius: 3px
+ }
+
+ .yvp-cc-options-more .yvp-tab-container .yvp-tabs-content .yvp-ddm-availability {
+ display: none
+ }
+
+ .yvp-cc-options-more .yvp-tab-container .yvp-tabs-content .yvp-ddm-list {
+ width: auto;
+ max-height: 108px
+ }
+
+ .yvp-cc-options-more .yvp-tab-container .yvp-tabs-content .yvp-ddm-selected-wrapper {
+ width: auto;
+ }
+
+ .yvp-cc-options-more .yvp-tab-container .yvp-tabs-content .yvp-ddm-selected-wrapper.hide {
+ display: none
+ }
+
+ .yvp-cc-options-more .yvp-colorpicker {
+ margin-left: auto;
+ margin-right: auto;
+ padding: 0;
+ width: 100%;
+ margin-left: -4px;
+ margin-top: 1px;
+ display: inline-block;
+ white-space: normal;
+ }
+
+ .yvp-cc-options-more .yvp-colorpicker .color-option {
+ border: 1px solid rgba(255, 255, 255, 0.2);
+ border-radius: 2px;
+ width: 16px;
+ height: 16px;
+ display: inline-block;
+ margin: 3px;
+ cursor: pointer;
+ }
+
+ .yvp-cc-options-more .yvp-colorpicker .color-option:hover {
+ border: 1px solid rgba(255, 255, 255, 0.6)
+ }
+
+ .yvp-cc-options-more .yvp-colorpicker .color-option.nocolor::before {
+ content: " ";
+ position: absolute;
+ border-bottom: 1px solid #f00;
+ width: 26px;
+ transform: rotate(135deg) translate(9px, -3px);
+ -ms-transform: rotate(135deg) translate(9px, -3px);
+ }
+
+ .yvp-cc-options-more .yvp-colorpicker .color-option.color-selected {
+ border: 1px solid #fff
+ }
+
+ .yvp-cc-options-more .fontcolorpicker {
+ display: inline-block;
+ width: 100px;
+ margin-left: 65px
+ }
+
+ .yvp-cc-options-more .bgcolorpicker {
+ display: inline-block;
+ width: 144px;
+ margin-left: 65px
+ }
+
+ .yvp-cc-options-more .effects {
+ margin-left: 75px
+ }
+
+ .yvp-cc-options-more .yvp-effect {
+ display: inline-block;
+ position: relative;
+ width: 54px;
+ height: 32px;
+ font-size: 18px;
+ line-height: 30px;
+ background-color: rgba(102, 102, 102, 0.5);
+ border: 1px solid rgba(255, 255, 255, 0.2);
+ border-radius: 4px;
+ margin-left: 2%;
+ box-sizing: border-box;
+ background-repeat: no-repeat;
+ background-position: center;
+ text-align: center;
+ cursor: pointer;
+ }
+
+ .yvp-cc-options-more .yvp-effect:hover {
+ border: 1px solid rgba(255, 255, 255, 0.6)
+ }
+
+ .yvp-cc-options-more .yvp-effect.none {
+ margin-left: 5px
+ }
+
+ .yvp-cc-options-more .yvp-effect.dropshadow {
+ text-shadow: 2px 1px 1px #000
+ }
+
+ .yvp-cc-options-more .yvp-effect.raised {
+ text-shadow: 3px 3px 4px rgba(0, 0, 0, 0.75)
+ }
+
+ .yvp-cc-options-more .yvp-effect.depressed {
+ text-shadow: 0 -4px 4px rgba(0, 0, 0, 0.54)
+ }
+
+ .yvp-cc-options-more .yvp-effect.uniform {
+ text-shadow: -2px -2px 0 #000, -2px 2px 0 #000, -2px 0 0 #000, 2px -2px 0 #000, 2px 2px 0 #000, 2px 0 0 #000, 0 -2px 0 #000, 0 2px 0 #000
+ }
+
+ .yvp-cc-options-more .yvp-effect.effect-selected {
+ border: 1px solid #fff;
+ }
+
+ .yvp-cc-options-more .yvp-effect.effect-selected .yvp-cc-effect-header {
+ color: #fff
+ }
+
+ .yvp-cc-options-more .yvp-effect .yvp-cc-effect-header {
+ font-size: 11px;
+ text-transform: capitalize;
+ color: rgba(255, 255, 255, 0.6);
+ text-shadow: none
+ }
+
+ .yvp-cc-options-more .preset-container {
+ width: 100%;
+ height: 100px;
+ position: relative;
+ max-height: 100px;
+ display: inline-block
+ }
+
+ .yvp-cc-options-more .yvp-cc-preset {
+ display: inline-block;
+ width: 53px;
+ height: 32px;
+ line-height: 30px;
+ border: 1px solid rgba(255, 255, 255, 0.2);
+ border-radius: 3px;
+ font-size: 1.3em;
+ box-sizing: border-box;
+ text-align: center;
+ margin: 3px;
+ cursor: pointer;
+ }
+
+ .yvp-cc-options-more .yvp-cc-preset:hover {
+ border: 1px solid rgba(255, 255, 255, 0.6);
+ margin: 3px
+ }
+
+ .yvp-cc-options-more .preset-separator {
+ clear: both;
+ width: 100%;
+ height: 9%
+ }
+
+ .yvp-cc-options-more .yvp-cc-back {
+ max-width: 65px;
+ background-color: transparent;
+ color: inherit;
+ font-size: 11px;
+ position: relative;
+ outline: none;
+ cursor: pointer
+ }
+
+ .yvp-cc-options-more .yvp-cc-back-header {
+ display: inline-block;
+ margin-left: 3px;
+ color: rgba(255, 255, 255, 0.6);
+ }
+
+ .yvp-cc-options-more .yvp-cc-back-header:hover {
+ color: #fff
+ }
+
+ .yvp-cc-options-more .yvp-cc-style-preview {
+ margin: 40px 0 20px 85px;
+ display: block;
+ position: relative;
+ font-size: 20px;
+ line-height: 20px;
+ max-width: 260px;
+ }
+
+ .yvp-cc-options-more .yvp-cc-style-preview .yvp-cc-options-message {
+ margin-left: 18px
+ }
+
+ .yvp-cc-options-main .yvp-cc-back-to-settings {
+ max-width: 65px
+ }
+
+ .yvp-cc-options-main .yvp-back-to-settings {
+ display: inline-block;
+ cursor: pointer;
+ margin-left: 3px;
+ color: rgba(255, 255, 255, 0.6);
+ }
+
+ .yvp-cc-options-main .yvp-back-to-settings:hover {
+ color: #fff
+ }
+
+ .yvp-cc-options-main .yvp-cc-box {
+ display: block;
+ margin-top: 16px;
+ clear: both
+ }
+
+ .yvp-cc-options-main .yvp-cc-item {
+ display: inline-block
+ }
+
+ .yvp-cc-options-main .yvp-cc-divider {
+ display: block;
+ height: 1px;
+ margin: 16px 0 16px 0;
+ background: rgba(255, 255, 255, 0.2)
+ }
+
+ .yvp-cc-options-main .yvp-cc-toggle {
+ display: inline-block;
+ margin: 0 20px
+ }
+
+ .yvp-cc-options-main .yvp-cc-language {
+ margin-left: 20px
+ }
+
+ .yvp-cc-options-main .yvp-cc-position {
+ max-width: 175px
+ }
+
+ .yvp-cc-options-main .yvp-cc-size {
+ margin-left: 20px
+ }
+
+ .yvp-cc-options-main .yvp-cc-toggle-selection,
+ .yvp-cc-options-main .yvp-cc-pos-selection,
+ .yvp-cc-options-main .yvp-cc-style-preview,
+ .yvp-cc-options-main .yvp-cc-size-selector {
+ display: inline-block;
+ margin-left: 56px;
+ padding-bottom: 18px
+ }
+
+ .yvp-cc-options-main .yvp-cc-style {
+ padding-bottom: 5px
+ }
+
+ .yvp-cc-options-main .yvp-cc-toggle-selection,
+ .yvp-cc-options-main .yvp-cc-pos-selection {
+ margin-left: 0;
+ }
+
+ .yvp-cc-options-main .yvp-cc-toggle-selection .yvp-cc-position-top,
+ .yvp-cc-options-main .yvp-cc-pos-selection .yvp-cc-position-top {
+ margin-bottom: 6px
+ }
+
+ .yvp-cc-options-main .yvp-cc-pos-selection {
+ padding-bottom: 0;
+ vertical-align: middle
+ }
+
+ .yvp-cc-options-main .yvp-cc-size-selector {
+ margin: 0;
+ padding: 0
+ }
+
+ .yvp-cc-options-main .yvp-cc-indicator {
+ display: inline-block;
+ margin-left: 19px;
+ padding: 0 4px;
+ cursor: pointer;
+ border: 1px solid transparent;
+ border-radius: 3px;
+ vertical-align: middle;
+ color: #fff;
+ }
+
+ .yvp-cc-options-main .yvp-cc-indicator:hover {
+ background-color: rgba(255, 255, 255, 0.2)
+ }
+
+ .yvp-cc-options-main .yvp-cc-indicator.size-active {
+ background-color: rgba(255, 255, 255, 0.4);
+ }
+
+ .yvp-cc-options-main .yvp-cc-indicator.size-active:hover {
+ background-color: rgba(255, 255, 255, 0.4)
+ }
+
+ .yvp-cc-options-main .yvp-cc-indicator-0 {
+ font-size: 15px
+ }
+
+ .yvp-cc-options-main .yvp-cc-indicator-25 {
+ font-size: 18px
+ }
+
+ .yvp-cc-options-main .yvp-cc-indicator-50 {
+ font-size: 24px
+ }
+
+ .yvp-cc-options-main .yvp-cc-indicator-75 {
+ font-size: 28px
+ }
+
+ .yvp-cc-options-main .yvp-cc-indicator-100 {
+ font-size: 32px
+ }
+
+ .yvp-cc-options-main .yvp-slider-wrapper {
+ margin-top: 1px;
+ width: 213px;
+ color: #ccc;
+ border-top: 1px solid #646464;
+ display: none
+ }
+
+ .yvp-cc-options-main .yvp-slider-track {
+ display: block;
+ width: 100%;
+ position: relative;
+ margin-top: -3px;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ }
+
+ .yvp-cc-options-main .yvp-slider-track:active {
+ cursor: pointer
+ }
+
+ .yvp-cc-options-main .yvp-slider-track .yvp-slider-handle {
+ position: absolute;
+ display: inline-block;
+ border-radius: 50%;
+ height: 5px;
+ width: 5px;
+ margin: 0;
+ background-color: #fff;
+ border: 1px solid #fff;
+ }
+
+ .yvp-cc-options-main .yvp-slider-track .yvp-slider-handle:hover {
+ background-color: #fff;
+ border-width: 1px solid #fff;
+ border-radius: 50%;
+ width: 10px;
+ height: 10px;
+ margin-left: -2px;
+ margin-top: -2px;
+ cursor: pointer;
+ }
+
+ .yvp-cc-options-main .yvp-slider-track .yvp-slider-anchor {
+ position: absolute;
+ margin-right: 0;
+ display: inline-block;
+ border-radius: 50%;
+ background-color: rgba(255, 255, 255, 0.6);
+ height: 5px;
+ width: 5px;
+ top: 0;
+ }
+
+ .yvp-cc-options-main .yvp-slider-track .yvp-slider-anchor:hover {
+ background-color: #fff;
+ height: 10px;
+ width: 10px;
+ margin-right: 5px;
+ top: -1px;
+ margin-left: -2px;
+ cursor: pointer
+ }
+
+ .yvp-cc-options-main .yvp-cc-feedback-link {
+ font-size: 11px;
+ float: right;
+ }
+
+ .yvp-cc-options-main .yvp-cc-feedback-link a:link {
+ color: #fff
+ }
+
+ .yvp-cc-options-main .yvp-cc-feedback-link a:visited {
+ color: #fff
+ }
+
+ .yvp-cc-options-main .yvp-cc-feedback-link a:hover {
+ color: #fff
+ }
+
+ .yvp-cc-options-main .yvp-cc-feedback-link a:active {
+ color: #fff
+ }
+
+ .yvp-cc-options-main .yvp-cc-feedback-link a {
+ text-decoration: none
+ }
+
+ .yvp-cc-options-main .yvp-cc-style-more {
+ display: inline-block;
+ font-size: 11px;
+ background-color: transparent;
+ color: inherit;
+ outline: none;
+ overflow: visible;
+ cursor: pointer
+ }
+
+ .yvp-cc-options-main .yvp-cc-style-preview {
+ display: none;
+ border: 1px solid rgba(255, 255, 255, 0.2);
+ border-radius: 3px;
+ color: #fff;
+ min-width: 54px;
+ max-width: 80px;
+ font-size: 1.5em;
+ height: 32px;
+ line-height: 32px;
+ text-align: center;
+ padding: 1px 2px;
+ margin: 0 0 0 20px;
+ }
+
+ .yvp-cc-options-main .yvp-cc-style-preview .yvp-cc-style-preview-label {
+ font-size: 11px;
+ position: absolute;
+ top: -35px;
+ left: -10px;
+ color: #ccc;
+ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4);
+ font-family: Helvetica Neue Regular, Helvetica Neue, helvetica, arial, sans-serif
+ }
+
+ .yvp-cc-options-main .yvp-cc-pos-wrapper {
+ position: relative;
+ display: inline-block;
+ vertical-align: middle;
+ margin: 5px 20px 0 20px
+ }
+
+ .yvp-cc-options-main .yvp-cc-position-top,
+ .yvp-cc-options-main .yvp-cc-position-bottom {
+ display: inline;
+ margin-right: 20px;
+ cursor: pointer;
+ color: rgba(255, 255, 255, 0.5);
+ }
+
+ .yvp-cc-options-main .yvp-cc-position-top:hover,
+ .yvp-cc-options-main .yvp-cc-position-bottom:hover {
+ color: #fff
+ }
+
+ .yvp-cc-preview {
+ position: absolute;
+ z-index: 4;
+ text-align: center;
+ left: 65px;
+ bottom: auto;
+ top: auto;
+ font-size: 20px;
+ font-weight: bold;
+ opacity: 0;
+ pointer-events: none;
+ }
+
+ .yvp-cc-preview.yvp-cc-preview-activated {
+ opacity: 1
+ }
+
+ .yvp-cc-preview.yvp-cc-preview-top {
+ top: 4px;
+ bottom: auto
+ }
+
+ .yvp-cc-preview.yvp-cc-preview-bottom {
+ bottom: 4px;
+ top: auto
+ }
+
+ .yvp-cc-preview-message {
+ display: inline-block;
+ padding: 5px 15px;
+ margin: 0 auto
+ }
+
+ .yvp-content.yvp-state-fullscreen .yvp-cc-preview-message,
+ .yvp-content.yvp-state-fullscreen .yvp-cc-options-message {
+ display: none
+ }
+ </style>
+ <style type="text/css">
+ .yvp-bottom-bar .yvp-settings-container {
+ position: absolute;
+ z-index: 4;
+ width: auto;
+ background: rgba(18, 23, 23, 0.8);
+ padding: 16px;
+ display: none;
+ bottom: 40px;
+ border-radius: 4px;
+ right: 0;
+ font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
+ font-size: 11px;
+ -webkit-font-smoothing: subpixel-antialiased;
+ color: #fff;
+ cursor: default;
+ pointer-events: auto;
+ -webkit-animation-name: fadeIn;
+ animation-name: fadeIn;
+ -webkit-animation-duration: .4s;
+ -moz-animation-duration: .4s;
+ animation-duration: .4s;
+ }
+
+ .yvp-bottom-bar .yvp-settings-container.open {
+ display: block
+ }
+
+ .yvp-bottom-bar .yvp-settings-container.hide {
+ display: none
+ }
+
+ .yvp-bottom-bar .yvp-settings-container .yvp-settings-header {
+ color: rgba(255, 255, 255, 0.6);
+ margin-bottom: 12px;
+ }
+
+ .yvp-bottom-bar .yvp-settings-container .yvp-settings-header.last-item {
+ margin-bottom: 0;
+ }
+
+ .yvp-bottom-bar .yvp-settings-container .yvp-settings-header.last-item:hover {
+ color: #fff
+ }
+
+ .yvp-bottom-bar .yvp-settings-container .yvp-settings-caret-icon {
+ position: relative;
+ display: inline-block;
+ width: 6px;
+ height: 10px;
+ margin: 0;
+ background-size: 100%;
+ background-repeat: no-repeat;
+ cursor: pointer;
+ opacity: 1;
+ }
+
+ .yvp-bottom-bar .yvp-settings-container .yvp-settings-caret-icon.right {
+ top: 2px;
+ left: 2px;
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNiIgaGVpZ2h0PSIxMCIgdmlld0JveD0iMCAwIDYgMTAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMuNzU1IDQuNjk3bC0zLjU2IDMuNTZjLS4yNi4yNi0uMjYuNjgyIDAgLjk0Mi4yNi4yNi42ODMuMjYuOTQzIDBMNS42NCA0LjY5NiAxLjEzOC4xOTVDMS4wMDguMDY1LjgzOCAwIC42NjggMCAuNDk1IDAgLjMyNS4wNjUuMTk1LjE5NWMtLjI2LjI2LS4yNi42ODMgMCAuOTQzbDMuNTYgMy41NiIgZmlsbD0iI0ZGRiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+Cg==")
+ }
+
+ .yvp-bottom-bar .yvp-settings-container .yvp-settings-caret-icon.left {
+ top: 1px;
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNiIgaGVpZ2h0PSIxMCIgdmlld0JveD0iMCAwIDYgMTAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHRpdGxlPmljb24tY2FyZXQtbGVmdC1mcG88L3RpdGxlPjxwYXRoIGQ9Ik0yLjI0NSA1LjMwM2wzLjU2LTMuNTZjLjI2LS4yNi4yNi0uNjgyIDAtLjk0Mi0uMjYtLjI2LS42ODMtLjI2LS45NDMgMEwuMzYgNS4zMDRsNC41MDIgNC41MDJjLjEzLjEzLjMuMTk1LjQ3LjE5NS4xNzIgMCAuMzQyLS4wNjUuNDcyLS4xOTUuMjYtLjI2LjI2LS42ODMgMC0uOTQzbC0zLjU2LTMuNTYiIGZpbGw9IiNGRkYiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==")
+ }
+
+ .yvp-bottom-bar .yvp-settings-container .yvp-settings-item {
+ display: inline-block;
+ margin-right: 6px;
+ cursor: pointer;
+ color: #fff;
+ padding: 4px;
+ border: 0;
+ }
+
+ .yvp-bottom-bar .yvp-settings-container .yvp-settings-item:hover {
+ background-color: rgba(255, 255, 255, 0.2);
+ border-radius: 3px
+ }
+
+ .yvp-bottom-bar .yvp-settings-container .yvp-settings-item.last-item {
+ margin-right: 0
+ }
+
+ .yvp-bottom-bar .yvp-settings-container .yvp-settings-item.yvp-disabled {
+ display: none;
+ pointer-events: none
+ }
+
+ .yvp-bottom-bar .yvp-settings-container .yvp-settings-activated {
+ color: #fff;
+ font-weight: normal;
+ border-radius: 3px;
+ background-color: rgba(255, 255, 255, 0.4);
+ }
+
+ .yvp-bottom-bar .yvp-settings-container .yvp-settings-activated:hover {
+ background-color: rgba(255, 255, 255, 0.4)
+ }
+
+ .yvp-main-settings.open {
+ display: block
+ }
+
+ .yvp-main-settings.close {
+ display: none
+ }
+
+ .yvp-main-settings .yvp-settings-divider {
+ display: block;
+ height: 1px;
+ margin: 16px 0 16px 0;
+ background: rgba(255, 255, 255, 0.2)
+ }
+
+ .yvp-main-settings .yvp-settings-embed.close {
+ display: none
+ }
+
+ .yvp-main-settings .yvp-settings-embed.open {
+ display: block
+ }
+
+ .yvp-main-settings .yvp-input-container {
+ height: 20px;
+ border: 1px solid rgba(255, 255, 255, 0.2);
+ border-radius: 4px
+ }
+
+ .yvp-main-settings .yvp-embed-input {
+ display: block;
+ min-width: 178px;
+ padding: 3px 10px;
+ font-size: 11px;
+ color: rgba(255, 255, 255, 0.6);
+ background: transparent;
+ outline: none;
+ box-shadow: none;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ }
+
+ .yvp-main-settings .yvp-embed-input:hover {
+ color: #fff;
+ cursor: pointer
+ }
+
+ .yvp-main-settings .yvp-settings-quality {
+ min-width: 200px;
+ display: none;
+ }
+
+ .yvp-main-settings .yvp-settings-quality.yvp-quality-enabled {
+ display: block
+ }
+
+ .yvp-main-settings .yvp-settings-cc {
+ min-width: 115px;
+ max-width: 145px;
+ cursor: pointer;
+ }
+
+ .yvp-main-settings .yvp-settings-cc .yvp-settings-header {
+ display: inline-block;
+ }
+
+ .yvp-main-settings .yvp-settings-cc .yvp-settings-header:hover {
+ color: rgba(255, 255, 255, 0.6);
+ opacity: 1
+ }
+ </style>
+ <style type="text/css">
+ .yvp-content.yvp-browser-desktop.yvp-docked .yvp-docked-close-button {
+ visibility: visible;
+ opacity: 1
+ }
+
+ .yvp-content.yvp-browser-desktop.yvp-docked .yvp-playing-item-title.yvp-title-standard {
+ padding: 5px 24px 5px 8px;
+ font-weight: 500;
+ font-size: 16px;
+ line-height: 20px;
+ z-index: 29;
+ }
+
+ .yvp-content.yvp-browser-desktop.yvp-docked .yvp-playing-item-title.yvp-title-standard.yvp-live {
+ padding: 35px 24px 5px 8px
+ }
+
+ .yvp-content.yvp-browser-desktop.yvp-docked .yvp-content-type {
+ left: 8px;
+ top: 8px
+ }
+
+ .yvp-content.yvp-browser-desktop.yvp-state-video.yvp-hide-controls .yvp-bottom-bar {
+ opacity: 0;
+ -webkit-transition: opacity .3s ease-in-out .1s;
+ -moz-transition: opacity .3s ease-in-out .1s;
+ -o-transition: opacity .3s ease-in-out .1s;
+ transition: opacity .3s ease-in-out .1s
+ }
+
+ .yvp-content.yvp-browser-desktop.yvp-state-video.yvp-hide-controls .yvp-bottom-bar:hover {
+ opacity: 1
+ }
+
+ .yvp-content.yvp-browser-desktop.yvp-state-video.yvp-hide-controls.yvp-muted .yvp-mute-indicator {
+ opacity: 1;
+ visibility: visible;
+ -webkit-transition: visibility .3s linear .3s, opacity .1s ease-out .5s;
+ -moz-transition: visibility .3s linear .3s, opacity .1s ease-out .5s;
+ -o-transition: visibility .3s linear .3s, opacity .1s ease-out .5s;
+ transition: visibility .3s linear .3s, opacity .1s ease-out .5s
+ }
+
+ .yvp-content.yvp-browser-desktop.yvp-state-video.yvp-hide-controls .yvp-top-bar .yvp-content-type {
+ opacity: 0;
+ -webkit-transition: opacity .3s ease-in-out .1s;
+ -moz-transition: opacity .3s ease-in-out .1s;
+ -o-transition: opacity .3s ease-in-out .1s;
+ transition: opacity .3s ease-in-out .1s
+ }
+
+ .yvp-content:hover .yvp-bottom-bar {
+ opacity: 1;
+ -webkit-transition: opacity .3s ease-in-out .1s;
+ -moz-transition: opacity .3s ease-in-out .1s;
+ -o-transition: opacity .3s ease-in-out .1s;
+ transition: opacity .3s ease-in-out .1s
+ }
+
+ .yvp-content:hover .yvp-ads-overlay {
+ -webkit-transition: height 0s;
+ -moz-transition: height 0s;
+ -o-transition: height 0s;
+ transition: height 0s
+ }
+
+ .yvp-content:hover.yvp-muted .yvp-mute-indicator {
+ opacity: 0;
+ visibility: hidden
+ }
+
+ .yvp-content.yvp-flag-paused.yvp-browser-desktop.yvp-state-video.yvp-hide-controls .yvp-bottom-bar {
+ opacity: 0;
+ -webkit-transition: opacity .3s ease-in-out .1s;
+ -moz-transition: opacity .3s ease-in-out .1s;
+ -o-transition: opacity .3s ease-in-out .1s;
+ transition: opacity .3s ease-in-out .1s
+ }
+
+ .yvp-content.yvp-flag-paused.yvp-browser-desktop.yvp-state-video.yvp-hide-controls .yvp-bottom-bar:hover {
+ opacity: 1
+ }
+
+ .yvp-content.yvp-flag-paused.yvp-browser-desktop.yvp-state-video.yvp-hide-controls .yvp-top-bar .yvp-content-type {
+ opacity: 0;
+ -webkit-transition: opacity .3s ease-in-out .1s;
+ -moz-transition: opacity .3s ease-in-out .1s;
+ -o-transition: opacity .3s ease-in-out .1s;
+ transition: opacity .3s ease-in-out .1s
+ }
+
+ .yvp-content.yvp-flag-paused.yvp-browser-desktop.yvp-state-video.yvp-hide-controls.yvp-muted .yvp-mute-indicator {
+ opacity: 0;
+ visibility: hidden
+ }
+
+ .yvp-content.yvp-flag-paused:hover .yvp-bottom-bar {
+ opacity: 1;
+ -webkit-transition: none;
+ -moz-transition: none;
+ -o-transition: none;
+ transition: none
+ }
+
+ .yvp-content.yvp-flag-paused:hover .yvp-top-bar .yvp-content-type {
+ opacity: 1;
+ -webkit-transition: none;
+ -moz-transition: none;
+ -o-transition: none;
+ transition: none
+ }
+
+ .yvp-content.yvp-user-inactive div.yvp-bottom-bar {
+ cursor: none;
+ }
+
+ .yvp-content.yvp-user-inactive div.yvp-bottom-bar .yvp-slider,
+ .yvp-content.yvp-user-inactive div.yvp-bottom-bar .yvp-buffer-bar,
+ .yvp-content.yvp-user-inactive div.yvp-bottom-bar .yvp-playback-bar {
+ height: 3px;
+ bottom: 2px;
+ direction: ltr;
+ -webkit-transition: height .5s linear 0s, bottom .5s linear 0s;
+ -moz-transition: height .5s linear 0s, bottom .5s linear 0s;
+ -o-transition: height .5s linear 0s, bottom .5s linear 0s;
+ transition: height .5s linear 0s, bottom .5s linear 0s;
+ -moz-transition: none
+ }
+
+ .yvp-content.yvp-user-inactive div.yvp-bottom-bar .yvp-handle {
+ -webkit-transform: scale(0);
+ -moz-transform: scale(0);
+ -ms-transform: scale(0);
+ -o-transform: scale(0);
+ transform: scale(0);
+ margin-top: -4px;
+ -webkit-transition: all .51s linear 0s;
+ -moz-transition: all .51s linear 0s;
+ -o-transition: all .51s linear 0s;
+ transition: all .51s linear 0s
+ }
+
+ .yvp-content.yvp-browser-desktop.yvp-state-video.yvp-disable-controls .yvp-bottom-bar {
+ opacity: 0 !important
+ }
+
+ .yvp-top-bar {
+ position: absolute;
+ z-index: 28;
+ width: 100%;
+ top: 0;
+ }
+
+ .yvp-top-bar.hide {
+ display: none
+ }
+
+ .yvp-top-bar .yvp-provider-logo {
+ position: absolute;
+ right: 0;
+ display: block;
+ height: 20px;
+ width: 55px;
+ margin-top: 20px;
+ margin-right: 10px;
+ border: 0;
+ background-repeat: no-repeat;
+ cursor: pointer;
+ }
+
+ .yvp-top-bar .yvp-provider-logo.yvp-hide {
+ display: none
+ }
+
+ .yvp-top-bar .yvp-ad-count-container {
+ display: none;
+ position: absolute;
+ left: 16px;
+ top: 12px
+ }
+
+ .yvp-top-bar .yvp-ad-count,
+ .yvp-top-bar .yvp-ad-countdowntimer {
+ display: inline-block;
+ color: #fff;
+ position: relative;
+ text-shadow: 0 1px #000;
+ font-size: 11px;
+ font-weight: normal
+ }
+
+ .yvp-top-bar .yvp-ad-countdowntimer {
+ padding-left: 5px;
+ text-align: right
+ }
+
+ .yvp-bottom-bar {
+ position: absolute;
+ background-color: transparent;
+ background-image: -webkit-linear-gradient(-180deg, rgba(255, 255, 255, 0) 0%, rgba(18, 23, 23, 0.2) 50%, rgba(18, 23, 23, 0.8) 100%);
+ background-image: -o-linear-gradient(-180deg, rgba(255, 255, 255, 0) 0%, rgba(18, 23, 23, 0.2) 50%, rgba(18, 23, 23, 0.8) 100%);
+ background-image: linear-gradient(-180deg, rgba(255, 255, 255, 0) 0%, rgba(18, 23, 23, 0.2) 50%, rgba(18, 23, 23, 0.8) 100%);
+ left: 0;
+ right: 0;
+ bottom: 0;
+ width: 100%;
+ height: 100px;
+ z-index: 30;
+ cursor: auto;
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container {
+ display: block;
+ position: relative;
+ top: 56px;
+ height: 44px;
+ margin: 0 10px 0 10px;
+ cursor: auto;
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-volume-btn {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODgiIGhlaWdodD0iODgiIHZpZXdCb3g9IjAgMCA4OCA4OCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+dm9sdW1lPC90aXRsZT48ZyBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yNS42ODIgNTUuMDE2SDE2LjUzYy0uNDk1IDAtLjk0NC0uMTk0LTEuMjczLS41MTItLjM2My0uMzM0LS41OS0uODE0LS41OS0xLjM0OHYtMTguMjRjMC0uMTcuMDIyLS4zMzIuMDY0LS40ODcuMi0uNzkzLjkyLTEuMzc4IDEuNzc1LTEuMzc4aDkuMTYyVjMzbDE0LjY2Ni0xNC42Njd2NTEuMzM0bC0xNC42NS0xNC42NXpNNTIuNDQgNzAuMjQ1Yy0xLjY0NiAwLTIuOTI2LTEuMzQyLTMuMjkzLTIuNjAzLS41NS0xLjg4LjQ4OC0zLjg4IDIuMzEzLTQuNDYgOC4wMzMtMi41NiAxMy42NDQtMTAuNDEgMTMuNjQ0LTE5LjA5IDAtOC42NjMtNS42MS0xNi41MDYtMTMuNjQ2LTE5LjA3Mi0xLjgyNC0uNTgtMi44Ni0yLjU4My0yLjMxLTQuNDY0QzQ5LjU5IDE5LjA1IDUwLjk2NyAxOCA1Mi41IDE4Yy4zNTIgMCAuNzAyLjA1NSAxLjA0LjE2NCAxMC45MjUgMy40ODggMTguNTU4IDE0LjE1IDE4LjU1OCAyNS45MjggMCAxMS4xMzYtNy4wNjcgMjEuMDYtMTguNDQ0IDI1LjktLjM5My4xNy0uOC4yNTMtMS4yMTUuMjUzem0uMDk3LTE1LjQ4NGMtMS4wMDYgMC0xLjk2OC0uNDI3LTIuNjQtMS4xNzUtMS4yOTUtMS40Ni0xLjE2OC0zLjcuMjgtNC45OTcgMS4zMzgtMS4xOTMgMi4xMDUtMi45MDIgMi4xMDUtNC42OTQgMC0xLjgxOC0uNzYyLTMuNTM2LTIuMDktNC43MTItMS40NTYtMS4yOTctMS41OS0zLjUzNS0uMy00Ljk5Mi42NzUtLjc1OCAxLjY0LTEuMTkgMi42NS0xLjE5Ljg2NCAwIDEuNjk3LjMxNiAyLjM0NS44OSAyLjg0IDIuNTIzIDQuNDY3IDYuMTcgNC40NjcgMTAuMDA0IDAgMy44MDMtMS42MjYgNy40MzctNC40NjIgOS45Ny0uNjUuNTgtMS40ODYuODk3LTIuMzU1Ljg5N3oiLz48L2c+PC9zdmc+");
+ background-size: 100%;
+ left: 0;
+ top: 0;
+ opacity: .8;
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-volume-btn:hover,
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-volume-btn:active {
+ opacity: 1
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-volume-btn.muted {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODgiIGhlaWdodD0iODgiIHZpZXdCb3g9IjAgMCA4OCA4OCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+dm9sdW1lLW11dGU8L3RpdGxlPjxnIGZpbGw9IiNGRkYiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHBhdGggZD0iTTI1LjY4MiA1NS4wMTZIMTYuNTNjLS40OTUgMC0uOTQ0LS4xOTQtMS4yNzMtLjUxMi0uMzYzLS4zMzQtLjU5LS44MTQtLjU5LTEuMzQ4di0xOC4yNGMwLS4xNy4wMjItLjMzMi4wNjQtLjQ4Ny4yLS43OTMuOTItMS4zNzggMS43NzUtMS4zNzhoOS4xNjJWMzNsMTQuNjY2LTE0LjY2N3Y1MS4zMzRsLTE0LjY1LTE0LjY1ek01OC45MDQgMzkuMDUybC00Ljk2OC00Ljk2OGMtMS40MjgtMS40MjgtMy43NTQtMS40MzItNS4xODYgMC0xLjQzIDEuNDMtMS40MzIgMy43NTMgMCA1LjE4NWw0Ljk2OCA0Ljk2Ny00Ljk2OCA0Ljk2OGMtMS40MjggMS40MjgtMS40MyAzLjc1MyAwIDUuMTg1IDEuNDMgMS40MyAzLjc1NCAxLjQzMiA1LjE4NiAwbDQuOTY4LTQuOTY4IDQuOTY4IDQuOTdjMS40MjcgMS40MjYgMy43NTMgMS40MyA1LjE4NS0uMDAyIDEuNDMtMS40MyAxLjQzMi0zLjc1MyAwLTUuMTg1bC00Ljk2OC00Ljk2OCA0Ljk2Ny00Ljk2OGMxLjQyOC0xLjQzIDEuNDMyLTMuNzU0IDAtNS4xODYtMS40My0xLjQzLTMuNzUzLTEuNDMyLTUuMTg1IDBsLTQuOTY4IDQuOTY4eiIvPjwvZz48L3N2Zz4=")
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-setting-btn {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODgiIGhlaWdodD0iODgiIHZpZXdCb3g9IjAgMCA4OCA4OCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+c2V0dGluZ3M8L3RpdGxlPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHBhdGggZD0iTTU1LjczNyA0NC4zMTRjLS4wMDQtNi4yMTUtNS4xMDQtMTEuMzM4LTExLjMyLTExLjM1Ni02LjI3LS4wMjItMTEuNDIgNS4xMDgtMTEuNDE3IDExLjM3NC4wMDQgNi4yMTUgNS4xMDQgMTEuMzM0IDExLjMxNSAxMS4zNiA2LjI3NC4wMiAxMS40MjYtNS4xMTIgMTEuNDIyLTExLjM3OHptMTAuMjc4IDQuNDAzYy0zLjE0IDEuMTg4LTQuNDc0IDQuMzgyLTMuMDg4IDcuNDMuNDQuOTY3Ljk1NCAxLjkxIDEuMzQyIDIuOTAzLjExMy4zLjAyLjg1LS4yIDEuMDg1LTEuMjU2IDEuMzQtMi41NSAyLjYzNy0zLjg5IDMuODktLjIzNC4yMi0uNzg0LjMxMi0xLjA4NC4xOTUtLjk5NC0uMzgtMS45MzYtLjg5OC0yLjkwNC0xLjMzOC0zLjAzNi0xLjM4Ni02LjI0LS4wNTItNy40MyAzLjA4Ny0uNDU3IDEuMjE2LS45IDEuNzk4LTEuMzUyIDMuMDE2aC02LjgxNmMtLjQ1LTEuMjE4LS45LTEuOC0xLjM1My0zLjAxNy0xLjE4NC0zLjE0LTQuMzg1LTQuNDc0LTcuNDI4LTMuMDg4LS45NjguNDQtMS45MS45NTMtMi45MDQgMS4zMzgtLjMuMTE3LS44NS4wMjYtMS4wODUtLjE5NC0xLjM0LTEuMjU0LTIuNi0yLjU5My0zLjkyNC0zLjg2NS0uNDMtLjQwNi0uNDA4LS43NDMtLjE2Mi0xLjIyLjQ5LS45NDYuOTUtMS45MSAxLjM4LTIuODg2IDEuMzItMi45NTUtLjAxNi02LjE0LTMuMDM3LTcuMy0xLjI0Mi0uNDc3LTIuNDk2LS45MjgtMy43NDctMS4zOXYtNi44MTZjMS4yMi0uNDUgMi40NC0uODk4IDMuNjU2LTEuMzUzIDMuMTM4LTEuMTggNC40NzItNC4zODIgMy4wODYtNy40My0uNDQtLjk2Ny0uOTUzLTEuOTEtMS4zNDItMi45MDMtLjExMy0uMy0uMDIyLS44NS4xOTgtMS4wODUgMS4yNTgtMS4zMzggMi41NTItMi42MzYgMy44OS0zLjg5LjIzNS0uMjIuNzg1LS4zMTIgMS4wODYtLjE5NS45OTQuMzgyIDEuOTM2LjkgMi45MDQgMS4zNCAzLjA0MyAxLjM4IDYuMjQ4LjA0NiA3LjQzLTMuMDkuNDUzLTEuMjE2LjktMS44NDUgMS4zNTItMy4wNmg2LjgxNmMuNDUgMS4yMTUuODk4IDEuODQ4IDEuMzUzIDMuMDYgMS4xODQgMy4xNCA0LjM4NSA0LjQ3NSA3LjQzIDMuMDkuOTY3LS40NCAxLjkxLS45NTggMi45MDMtMS4zNC4zLS4xMTcuODUtLjAyNSAxLjA4NS4xOTUgMS4zNCAxLjI1NCAyLjYgMi41OTIgMy45MjQgMy44NjQuNDMuNDA4LjQwNy43NDYuMTYyIDEuMjIyLS40OTIuOTQ2LS45NSAxLjkxLTEuMzggMi44OS0xLjMyIDIuOTUuMDE2IDYuMTQ1IDMuMDM3IDcuMjk2IDEuMjQ3LjQ3NyAyLjQ5Ny45MjggMy43NDQgMS4zOXY2LjgxNmMtMS4yMTguNDUtMi40MzUuOS0zLjY1MiAxLjM1M3oiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNNTUuNzM3IDQ0LjI4Yy0uMDA0LTYuMjE2LTUuMTA0LTExLjMzOC0xMS4zMi0xMS4zNTYtNi4yNy0uMDIyLTExLjQyIDUuMTA3LTExLjQxNyAxMS4zNzQuMDA0IDYuMjE1IDUuMTA0IDExLjMzMyAxMS4zMTUgMTEuMzYgNi4yNzQuMDIgMTEuNDI2LTUuMTEyIDExLjQyMi0xMS4zOHptMTAuMjc4IDQuNDAzYy0zLjE0IDEuMTg4LTQuNDc0IDQuMzgyLTMuMDg4IDcuNDMuNDQuOTY3Ljk1NCAxLjkxIDEuMzQyIDIuOTAzLjExMy4zLjAyLjg1LS4yIDEuMDg1LTEuMjU2IDEuMzQtMi41NSAyLjYzNy0zLjg5IDMuODktLjIzNC4yMi0uNzg0LjMxMy0xLjA4NC4xOTYtLjk5NC0uMzgyLTEuOTM2LS45LTIuOTA0LTEuMzQtMy4wMzYtMS4zODUtNi4yNC0uMDUtNy40MyAzLjA5LS40NTcgMS4yMTYtLjkgMS44Ni0xLjM1MiAzLjA4aC02LjgxNmMtLjQ1LTEuMjItLjktMS44NjQtMS4zNTMtMy4wOC0xLjE4NC0zLjE0LTQuMzg1LTQuNDc1LTcuNDI4LTMuMDktLjk2OC40NC0xLjkxLjk1NS0yLjkwNCAxLjM0LS4zLjExNy0uODUuMDI1LTEuMDg1LS4xOTUtMS4zNC0xLjI1My0yLjYtMi41OS0zLjkyNC0zLjg2My0uNDMtLjQwNy0uNDA4LS43NDUtLjE2Mi0xLjIyLjQ5LS45NDcuOTUtMS45MTIgMS4zOC0yLjg4NyAxLjMyLTIuOTU1LS4wMTYtNi4xNDItMy4wMzctNy4zLTEuMjQyLS40NzctMi40OTYtLjkyOC0zLjc0Ny0xLjM5di02LjgxNmMxLjIyLS40NSAyLjQ0LS45IDMuNjU2LTEuMzUzIDMuMTM4LTEuMTggNC40NzItNC4zOCAzLjA4Ni03LjQyOC0uNDQtLjk2OC0uOTUzLTEuOTEtMS4zNDItMi45MDQtLjExMy0uMy0uMDIyLS44NS4xOTgtMS4wODUgMS4yNTgtMS4zNCAyLjU1Mi0yLjYzNyAzLjg5LTMuODkuMjM1LS4yMi43ODUtLjMxMiAxLjA4Ni0uMTk1Ljk5NC4zOCAxLjkzNi44OTggMi45MDQgMS4zMzggMy4wNDMgMS4zODMgNi4yNDguMDQ4IDcuNDMtMy4wODcuNDUzLTEuMjE4LjktMS44MTMgMS4zNTItMy4wMjdoNi44MTZjLjQ1IDEuMjE0Ljg5OCAxLjgxMiAxLjM1MyAzLjAyNiAxLjE4NCAzLjEzOCA0LjM4NSA0LjQ3MiA3LjQzIDMuMDg2Ljk2Ny0uNDQgMS45MS0uOTU3IDIuOTAzLTEuMzM4LjMtLjExNy44NS0uMDI2IDEuMDg1LjE5NCAxLjM0IDEuMjU0IDIuNiAyLjU5MyAzLjkyNCAzLjg2NS40My40MDcuNDA3Ljc0NC4xNjIgMS4yMi0uNDkyLjk0Ny0uOTUgMS45MS0xLjM4IDIuODktMS4zMiAyLjk1Mi4wMTYgNi4xNDYgMy4wMzcgNy4yOTcgMS4yNDcuNDc3IDIuNDk3LjkyOCAzLjc0NCAxLjM5djYuODE2Yy0xLjIxOC40NS0yLjQzNS44OTgtMy42NTIgMS4zNTN6IiBzdHJva2U9IiNGRkYiIHN0cm9rZS13aWR0aD0iLjIiLz48L2c+PC9zdmc+");
+ background-size: 100%;
+ left: 0;
+ opacity: .8;
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-setting-btn.hide {
+ display: none
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-setting-btn:hover {
+ opacity: 1
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-setting-pointer {
+ position: relative;
+ display: none;
+ width: 1px;
+ border: solid;
+ border-color: rgba(38, 40, 42, 0.95) transparent;
+ border-width: 6px 5px 0;
+ top: -6px;
+ bottom: 0;
+ left: 6px;
+ content: '';
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-setting-pointer.open {
+ display: block
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-setting-pointer.hide {
+ display: none
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-cc-btn {
+ background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCAzLjguMyAoMjk4MDIpIC0gaHR0cDovL3d3dy5ib2hlbWlhbmNvZGluZy5jb20vc2tldGNoIC0tPgogICAgPHRpdGxlPmNjLW9mZjwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxkZWZzPjwvZGVmcz4KICAgIDxnIGlkPSJkZXNrdG9wIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8ZyBpZD0iY2Mtb2ZmIiBmaWxsPSIjRkZGRkZGIj4KICAgICAgICAgICAgPHBhdGggZD0iTTExLjI0NTI5MjcsMTMuMjY3OTEyMiBDMTEuMDAwNzE0NCwxMy4wMjc0OTE3IDEwLjYxMDU2NTQsMTIuOTUzMjkzOCAxMC4zMjI4NTUsMTMuMTQxNjc5NCBDMTAuMTAyMjkzNCwxMy4yODY3MDI2IDkuODM3MTI5MzUsMTMuMzcxNTAwMiA5LjU1MTg2OTY2LDEzLjM3MTUwMDIgQzguNzgxMzc0NDMsMTMuMzcxNTAwMiA4LjE1Njk0LDEyLjc1NzE5OTMgOC4xNTY5NCwxMS45OTk4MDIzIEM4LjE1Njk0LDExLjI0MjQwNTQgOC43ODEzNzQ0MywxMC42Mjg1ODYyIDkuNTUxODY5NjYsMTAuNjI4NTg2MiBDOS43Nzk3ODMzMywxMC42Mjg1ODYyIDkuOTkzOTczMTYsMTAuNjgyNTQ4NCAxMC4xODMxNjYsMTAuNzc4NDI3NSBDMTAuNTQwOTY2LDEwLjk1OTU4NiAxMC45NzIyODY0LDEwLjkwMzIxNDkgMTEuMjU5NTA2NywxMC42MjYxNzcyIEMxMS42MTI4OTU0LDEwLjI4NDU3NzcgMTEuNTUzMDk4Nyw5LjcwMTU5NDA1IDExLjEzMjU2MTIsOS40NDM4Mjg1NSBDMTAuNTE1NDc4OCw5LjA2NjA5MzY5IDkuNzUxODQ1NTIsOC45MDEzMTY0OSA4LjkzNTI3NzQyLDkuMDYwMzEyMDMgQzcuNzQ2Njk1NCw5LjI5MTU3ODI4IDYuNzgwNjM1NTMsMTAuMjQ1NTUxNSA2LjU1NjE1MjgyLDExLjQxNTM3MzMgQzYuMTg5MDQwMjcsMTMuMzI5MTAxNCA3LjY3MTcwNDQ1LDE1IDkuNTUxODY5NjYsMTUgQzEwLjEyNTMyOTksMTUgMTAuNjU3NjE4NSwxNC44NDE5NjgxIDExLjExMjQ2NTYsMTQuNTY4Nzg0OCBDMTEuNTc0NjY0NywxNC4yOTA3ODM1IDExLjYyOTA2OTksMTMuNjQ0NjgzNSAxMS4yNDUyOTI3LDEzLjI2NzkxMjIiIGlkPSJGaWxsLTEiPjwvcGF0aD4KICAgICAgICAgICAgPHBhdGggZD0iTTE3LjI0NTQ4NCwxMy4yNjc5MTIyIEMxNy4wMDA4OTU5LDEzLjAyNzQ5MTcgMTYuNjEwNzMxMSwxMi45NTMyOTM4IDE2LjMyMzAwOTIsMTMuMTQxNjc5NCBDMTYuMTAyNDM4NywxMy4yODY3MDI2IDE1LjgzNzI2MzksMTMuMzcxNTAwMiAxNS41NTE5OTI3LDEzLjM3MTUwMDIgQzE0Ljc4MTQ2NjQsMTMuMzcxNTAwMiAxNC4xNTcwMDY4LDEyLjc1NzE5OTMgMTQuMTU3MDA2OCwxMS45OTk4MDIzIEMxNC4xNTcwMDY4LDExLjI0MjQwNTQgMTQuNzgxNDY2NCwxMC42Mjg1ODYyIDE1LjU1MTk5MjcsMTAuNjI4NTg2MiBDMTUuNzc5OTE1NiwxMC42Mjg1ODYyIDE1Ljk5NDExNCwxMC42ODI1NDg0IDE2LjE4MzMxNDUsMTAuNzc4NDI3NSBDMTYuNTQxMTI4OSwxMC45NTk1ODYgMTYuOTcyNDY2OCwxMC45MDMyMTQ5IDE3LjI1OTIwODQsMTAuNjI2MTc3MiBDMTcuNjEzMTAxNiwxMC4yODQ1Nzc3IDE3LjU1MzMwMjQsOS43MDE1OTQwNSAxNy4xMzI3NDgsOS40NDM4Mjg1NSBDMTYuNTE1NjQwNyw5LjA2NjA5MzY5IDE1Ljc1MTk3NjYsOC45MDEzMTY0OSAxNC45MzQ4ODU1LDkuMDYwMzEyMDMgQzEzLjc0Njc0NTcsOS4yOTE1NzgyOCAxMi43ODA2NDY4LDEwLjI0NTU1MTUgMTIuNTU2MTU1MSwxMS40MTUzNzMzIEMxMi4xODkwMjc3LDEzLjMyOTEwMTQgMTMuNjcxNzUxNywxNSAxNS41NTE5OTI3LDE1IEMxNi4xMjU0NzYsMTUgMTYuNjU3Nzg2MiwxNC44NDE5NjgxIDE3LjExMjY1MTYsMTQuNTY4Nzg0OCBDMTcuNTc0ODY5MywxNC4yOTA3ODM1IDE3LjYyODc4NjYsMTMuNjQ0NjgzNSAxNy4yNDU0ODQsMTMuMjY3OTEyMiIgaWQ9IkZpbGwtMyI+PC9wYXRoPgogICAgICAgICAgICA8cGF0aCBkPSJNMjEsMTcgTDMsMTcgTDMsNyBMMjEsNyBMMjEsMTcgWiBNMSwxOC4wODE0MjA5IEMxLDE4LjU4ODczODEgMS40MTk4MzQzOCwxOSAxLjkxNzMwMzQxLDE5IEwyMi4wODI2OTY2LDE5IEMyMi41ODkzMDkzLDE5IDIzLDE4LjU5NjEwNTYgMjMsMTguMDgxNDIwOSBMMjMsNS45MTg1NzkxIEMyMyw1LjQxMTI2MTg3IDIyLjU4MDE2NTYsNSAyMi4wODI2OTY2LDUgTDEuOTE3MzAzNDEsNSBDMS40MTA2OTA3Myw1IDEsNS40MDM4OTQ0MiAxLDUuOTE4NTc5MSBMMSwxOC4wODE0MjA5IFoiIGlkPSJGaWxsLTUiPjwvcGF0aD4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==");
+ background-size: 100%;
+ top: 0;
+ left: 0;
+ opacity: .8;
+ margin-right: 4px;
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-cc-btn.hide {
+ opacity: .35
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-cc-btn.hide:hover {
+ opacity: .35
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-cc-btn:hover {
+ opacity: 1
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-cc-btn.on {
+ background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCAzLjguMyAoMjk4MDIpIC0gaHR0cDovL3d3dy5ib2hlbWlhbmNvZGluZy5jb20vc2tldGNoIC0tPgogICAgPHRpdGxlPmNjLW9uPC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+PC9kZWZzPgogICAgPGcgaWQ9ImRlc2t0b3AiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJjYy1vbiIgZmlsbD0iI0ZGRkZGRiI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xLDE4LjA4MTQyMDkgQzEsMTguNTg4NzM4MSAxLjQxOTgzNDM4LDE5IDEuOTE3MzAzNDEsMTkgTDIyLjA4MjY5NjYsMTkgQzIyLjU4OTMwOTMsMTkgMjMsMTguNTk2MTA1NiAyMywxOC4wODE0MjA5IEwyMyw1LjkxODU3OTEgQzIzLDUuNDExMjYxODcgMjIuNTgwMTY1Niw1IDIyLjA4MjY5NjYsNSBMMS45MTczMDM0MSw1IEMxLjQxMDY5MDczLDUgMSw1LjQwMzg5NDQyIDEsNS45MTg1NzkxIEwxLDE4LjA4MTQyMDkgWiBNMTEuMjQ1MjkyNywxMy4yNjc5MTIyIEMxMS4wMDA3MTQ0LDEzLjAyNzQ5MTcgMTAuNjEwNTY1NCwxMi45NTMyOTM4IDEwLjMyMjg1NSwxMy4xNDE2Nzk0IEMxMC4xMDIyOTM0LDEzLjI4NjcwMjYgOS44MzcxMjkzNSwxMy4zNzE1MDAyIDkuNTUxODY5NjYsMTMuMzcxNTAwMiBDOC43ODEzNzQ0MywxMy4zNzE1MDAyIDguMTU2OTQsMTIuNzU3MTk5MyA4LjE1Njk0LDExLjk5OTgwMjMgQzguMTU2OTQsMTEuMjQyNDA1NCA4Ljc4MTM3NDQzLDEwLjYyODU4NjIgOS41NTE4Njk2NiwxMC42Mjg1ODYyIEM5Ljc3OTc4MzMzLDEwLjYyODU4NjIgOS45OTM5NzMxNiwxMC42ODI1NDg0IDEwLjE4MzE2NiwxMC43Nzg0Mjc1IEMxMC41NDA5NjYsMTAuOTU5NTg2IDEwLjk3MjI4NjQsMTAuOTAzMjE0OSAxMS4yNTk1MDY3LDEwLjYyNjE3NzIgQzExLjYxMjg5NTQsMTAuMjg0NTc3NyAxMS41NTMwOTg3LDkuNzAxNTk0MDUgMTEuMTMyNTYxMiw5LjQ0MzgyODU1IEMxMC41MTU0Nzg4LDkuMDY2MDkzNjkgOS43NTE4NDU1Miw4LjkwMTMxNjQ5IDguOTM1Mjc3NDIsOS4wNjAzMTIwMyBDNy43NDY2OTU0LDkuMjkxNTc4MjggNi43ODA2MzU1MywxMC4yNDU1NTE1IDYuNTU2MTUyODIsMTEuNDE1MzczMyBDNi4xODkwNDAyNywxMy4zMjkxMDE0IDcuNjcxNzA0NDUsMTUgOS41NTE4Njk2NiwxNSBDMTAuMTI1MzI5OSwxNSAxMC42NTc2MTg1LDE0Ljg0MTk2ODEgMTEuMTEyNDY1NiwxNC41Njg3ODQ4IEMxMS41NzQ2NjQ3LDE0LjI5MDc4MzUgMTEuNjI5MDY5OSwxMy42NDQ2ODM1IDExLjI0NTI5MjcsMTMuMjY3OTEyMiBaIE0xNy4yNDU0ODQsMTMuMjY3OTEyMiBDMTcuMDAwODk1OSwxMy4wMjc0OTE3IDE2LjYxMDczMTEsMTIuOTUzMjkzOCAxNi4zMjMwMDkyLDEzLjE0MTY3OTQgQzE2LjEwMjQzODcsMTMuMjg2NzAyNiAxNS44MzcyNjM5LDEzLjM3MTUwMDIgMTUuNTUxOTkyNywxMy4zNzE1MDAyIEMxNC43ODE0NjY0LDEzLjM3MTUwMDIgMTQuMTU3MDA2OCwxMi43NTcxOTkzIDE0LjE1NzAwNjgsMTEuOTk5ODAyMyBDMTQuMTU3MDA2OCwxMS4yNDI0MDU0IDE0Ljc4MTQ2NjQsMTAuNjI4NTg2MiAxNS41NTE5OTI3LDEwLjYyODU4NjIgQzE1Ljc3OTkxNTYsMTAuNjI4NTg2MiAxNS45OTQxMTQsMTAuNjgyNTQ4NCAxNi4xODMzMTQ1LDEwLjc3ODQyNzUgQzE2LjU0MTEyODksMTAuOTU5NTg2IDE2Ljk3MjQ2NjgsMTAuOTAzMjE0OSAxNy4yNTkyMDg0LDEwLjYyNjE3NzIgQzE3LjYxMzEwMTYsMTAuMjg0NTc3NyAxNy41NTMzMDI0LDkuNzAxNTk0MDUgMTcuMTMyNzQ4LDkuNDQzODI4NTUgQzE2LjUxNTY0MDcsOS4wNjYwOTM2OSAxNS43NTE5NzY2LDguOTAxMzE2NDkgMTQuOTM0ODg1NSw5LjA2MDMxMjAzIEMxMy43NDY3NDU3LDkuMjkxNTc4MjggMTIuNzgwNjQ2OCwxMC4yNDU1NTE1IDEyLjU1NjE1NTEsMTEuNDE1MzczMyBDMTIuMTg5MDI3NywxMy4zMjkxMDE0IDEzLjY3MTc1MTcsMTUgMTUuNTUxOTkyNywxNSBDMTYuMTI1NDc2LDE1IDE2LjY1Nzc4NjIsMTQuODQxOTY4MSAxNy4xMTI2NTE2LDE0LjU2ODc4NDggQzE3LjU3NDg2OTMsMTQuMjkwNzgzNSAxNy42Mjg3ODY2LDEzLjY0NDY4MzUgMTcuMjQ1NDg0LDEzLjI2NzkxMjIgWiIgaWQ9IkNvbWJpbmVkLVNoYXBlIj48L3BhdGg+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4=");
+ opacity: 1
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-cc-btn.on.hide {
+ opacity: .35
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-cc-btn.on.hide:hover {
+ opacity: .35
+ }
+
+ .yvp-bottom-bar .yvp-volume-bar-container {
+ display: block;
+ position: relative;
+ bottom: 95px;
+ left: -1px;
+ width: 24px;
+ height: 72px;
+ padding: 7px 0;
+ background: rgba(18, 23, 23, 0.8);
+ border-radius: 4px;
+ z-index: 1;
+ visibility: hidden;
+ -webkit-animation-name: none;
+ animation-name: none;
+ -webkit-animation-duration: 0s;
+ -moz-animation-duration: 0s;
+ animation-duration: 0s;
+ }
+
+ .yvp-bottom-bar .yvp-volume-bar-container:after {
+ display: block;
+ border: solid;
+ border-color: rgba(18, 23, 23, 0.8) transparent;
+ border-width: 6px 5px 0;
+ position: absolute;
+ top: 100%;
+ bottom: 0;
+ left: 7px;
+ content: ''
+ }
+
+ .yvp-bottom-bar .yvp-volume-bar-container.open {
+ visibility: visible
+ }
+
+ .yvp-bottom-bar .yvp-volume-bar-container .yvp-volume-level,
+ .yvp-bottom-bar .yvp-volume-bar-container .yvp-volume-bar {
+ margin-top: 0;
+ height: 100%
+ }
+
+ .yvp-bottom-bar .yvp-volume-bar-container .yvp-volume-bar {
+ background: rgba(255, 255, 255, 0.1);
+ border-radius: 2px
+ }
+
+ .yvp-bottom-bar .yvp-volume-bar-container .yvp-volume-level {
+ background: rgba(255, 255, 255, 0.4);
+ width: 4px;
+ margin-left: 10px;
+ margin-top: 0;
+ border-radius: 2px
+ }
+
+ .yvp-bottom-bar .yvp-volume-bar-container .yvp-volume-handle {
+ position: relative;
+ width: 12px;
+ height: 12px;
+ background: #fff;
+ border: 0;
+ border-radius: 50%;
+ margin-left: -4px;
+ z-index: 2;
+ opacity: 0;
+ }
+
+ .yvp-bottom-bar .yvp-volume-bar-container .yvp-volume-handle.show {
+ opacity: 1
+ }
+
+ .yvp-bottom-bar .yvp-volume-bar-container .yvp-volume-value {
+ background: rgba(255, 255, 255, 0.8);
+ border: 0;
+ border-radius: 2px
+ }
+
+ .yvp-main .yvp-tooltip {
+ display: inline-block;
+ position: absolute;
+ }
+
+ .yvp-main .yvp-tooltip:hover {
+ text-decoration: none;
+ }
+
+ .yvp-main .yvp-tooltip:hover .yvp-tooltip-wrapper .yvp-tooltip-content {
+ display: table
+ }
+
+ .yvp-main .yvp-tooltip .yvp-tooltip-wrapper {
+ bottom: 34px;
+ margin: auto;
+ position: absolute;
+ display: block;
+ z-index: 5;
+ text-align: center;
+ left: -1000px;
+ right: -1000px;
+ }
+
+ .yvp-main .yvp-tooltip .yvp-tooltip-wrapper .yvp-tooltip-content {
+ display: none;
+ background: rgba(25, 26, 27, 0.8);
+ color: #fff;
+ font-size: 11px;
+ margin: auto;
+ padding: 5px 11px;
+ white-space: nowrap;
+ text-align: center;
+ pointer-events: none;
+ border-radius: 3px;
+ }
+
+ .yvp-main .yvp-tooltip .yvp-tooltip-wrapper .yvp-tooltip-content:before {
+ border: solid;
+ border-color: rgba(38, 40, 42, 0.95) transparent;
+ border-width: 5px 3px 0;
+ bottom: -5px;
+ content: '';
+ display: block;
+ left: 50%;
+ margin-left: -3px;
+ position: absolute;
+ z-index: 5
+ }
+
+ .yvp-main .yvp-tooltip .yvp-tooltip-wrapper.yvp-tooltip-pos-bottom {
+ top: 30px;
+ bottom: 0;
+ }
+
+ .yvp-main .yvp-tooltip .yvp-tooltip-wrapper.yvp-tooltip-pos-bottom .yvp-tooltip-content:before {
+ border-width: 0 3px 5px;
+ top: -5px;
+ bottom: 0
+ }
+
+ .yvp-main .yvp-tooltip.yvp-tooltip-hidden .yvp-tooltip-wrapper {
+ display: none
+ }
+
+ .yvp-main .yvp-tooltip.yvp-fullscreen-btn .yvp-tooltip-wrapper {
+ margin-right: 60px;
+ }
+
+ .yvp-main .yvp-tooltip.yvp-fullscreen-btn .yvp-tooltip-wrapper .yvp-tooltip-content:before {
+ margin-left: 25px
+ }
+
+ .yvp-mode-ad .yvp-top-bar .yvp-ad-count-container,
+ .yvp-mode-vpaid .yvp-top-bar .yvp-ad-count-container {
+ display: block
+ }
+
+ .yvp-state-video .yvp-top-bar {
+ display: block
+ }
+
+ .yvp-state-start-screen .yvp-top-bar,
+ .yvp-state-error .yvp-top-bar,
+ .yvp-state-end-screen .yvp-top-bar,
+ .yvp-state-loading .yvp-top-bar {
+ display: none
+ }
+
+ .yvp-mode-ad .yvp-top-bar .yvp-provider-logo,
+ .yvp-mode-vpaid .yvp-top-bar .yvp-provider-logo {
+ display: none
+ }
+
+ .yvp-mode-ad .yvp-playing-item-title.yvp-title-standard,
+ .yvp-mode-vpaid .yvp-playing-item-title.yvp-title-standard {
+ opacity: 0;
+ z-index: 0
+ }
+
+ .yvp-settings-on .yvp-bottom-bar .yvp-upnext-playlist {
+ display: none
+ }
+
+ .yvp-settings-on .yvp-bottom-bar .yvp-volume-bar-container {
+ visibility: hidden
+ }
+
+ .yvp-content .yvp-main .yvp-mute-indicator {
+ position: absolute;
+ bottom: 0;
+ right: 0;
+ width: 10px;
+ height: 10px;
+ margin: 0 8px 8px 0;
+ float: right;
+ opacity: 0;
+ visibility: hidden;
+ z-index: 32;
+ background-image: url("data:image/gif;base64,R0lGODlhCgAKAIABAP///wAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBOEQ3QkM1NDcyNDQxMUU2QTVFRDg5Q0IwRUY3QjFDQyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBOEQ3QkM1NTcyNDQxMUU2QTVFRDg5Q0IwRUY3QjFDQyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkE4RDdCQzUyNzI0NDExRTZBNUVEODlDQjBFRjdCMUNDIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkE4RDdCQzUzNzI0NDExRTZBNUVEODlDQjBFRjdCMUNDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEBQMAAQAsAAAAAAoACgAAAhCMj6nLnQAYNPPUC2PAmIICACH5BAUDAAEALAAABAAKAAMAAAIHBIKpaOthCgAh+QQFAwABACwIAAUAAgABAAACAgQKACH5BAUDAAEALAAAAwAKAAIAAAIGBIKpaAkFACH5BAUDAAEALAAAAgAJAAMAAAIHBIKpYetQAAAh+QQFAwABACwEAAIABgACAAACBASCiVYAIfkEBQMAAQAsAAABAAoAAgAAAgUEgqkbVgAh+QQJAwABACwAAAAABgACAAACBASCiVYAIfkEBQMAAQAsAAAAAAoACgAAAg2MA3CobLminLTai2kBACH5BAkDAAEALAAAAAAKAAIAAAIFjG8AyFEAIfkECQMAAQAsAAAAAAoACgAAAgyMbwCouQijnLTaKwsAIfkECQMAAQAsAAAAAAoACgAAAhSMjwkGe82ag0HOS7OMUff7cRVQAAAh+QQJAwABACwAAAAACgAKAAACFIyPqQdgHVyUDc5XMbY839lt1FgAACH5BAkDAAEALAAAAAAKAAoAAAITjI+pB2CNYGiy0ufm1dj2bHlaAQAh+QQJAwABACwAAAAACgAKAAACEoyPqasA5lAMbtoKH8U7X69dBQAh+QQJAwABACwAAAAACgAKAAACEYyPqbvA4AJEU8JYL96ZbwMVACH5BAkDAAEALAAAAAAKAAoAAAIRjI+pywxgHpLh0WsjrJlrrBUAIfkECQMAAQAsAAAAAAoACgAAAhCMj6nLDOBgeIjOJy3OXPMCACH5BAkDAAEALAAAAAAKAAoAAAIRjI+py90ADEQzwIqvjFb3XQAAIfkEBQMAAQAsAAAAAAoACgAAAhGMj6nL3QAQNDPAii+NVvddAAAh+QQFAwABACwEAAQAAgABAAACAgQKACH5BAUDAAEALAEABQABAAEAAAICRAEAIfkEBQMAAQAsAAADAAoAAwAAAgeMA3DLpo0KACH5BAUDAAEALAQAAgAFAAQAAAIFBIKpi1AAIfkEBQMAAQAsAAAEAAIAAQAAAgIECgAh+QQFAwABACwEAAEAAgABAAACAgQKACH5BAUDAAEALAAAAwACAAEAAAICBAoAIfkECQMAAQAsAAAAAAoABQAAAgiMA3DL7Q9TAQAh+QQJAwABACwAAAAACgAKAAACD4wDcIvKlh50szaJs96sAAAh+QQJAwABACwAAAAACgAKAAACFIyPCJC3bZ5jQS5Lb944Xu91FVAAACH5BAkDAAEALAAAAAAKAAoAAAITjI+pB7DRkoOzRWps3bfbzG1gAQAh+QQJAwABACwAAAAACgAKAAACEoyPqQew0V5kDtY2MzZa8219BQAh+QQJAwABACwAAAAACgAKAAACEYyPqasA7FAM09VHrbl36+wVACH5BAUDAAEALAAAAAAKAAoAAAIRjI+pywzgYHjP1EmtpLvfDxQAIfkECQMAAQAsBAAEAAYAAgAAAgOMj1YAIfkECQMAAQAsAAAAAAoACgAAAgqMj6nL3QCcnLIAACH5BAkDAAEALAAAAAAKAAoAAAIQjI+py+0NgIlxykBvxdTaAgAh+QQFAwABACwAAAAACgAKAAACD4yPqcvtjwAwksoZar7WFgAh+QQFAwABACwAAAYAAgABAAACAgQKACH5BAUDAAEALAAABQAGAAIAAAIEBIKJVgAh+QQFAwABACwAAAQACgADAAACBgSCqctrBQAh+QQFAwABACwEAAUABgABAAACAwQSVgAh+QQFAwABACwAAAMACgACAAACBQSCqYtQACH5BAUDAAEALAAAAgAJAAMAAAIHBIKpu4ZQAAAh+QQFAwABACwIAAMAAgABAAACAgQKACH5BAUDAAEALAAAAQAKAAMAAAIHBIKpG6aeCgAh+QQJAwABACwAAAAAAgABAAACAgQKACH5BAUDAAEALAAAAAAKAAoAAAILjI95AMgKo5y00gIAIfkECQMAAQAsAAAAAAoAAgAAAgWMbwDIUQAh+QQJAwABACwAAAAACgAKAAACC4xvAIjKD6OctNYCACH5BAkDAAEALAAAAAAKAAoAAAIUjI95AGrMXgtwRgqlvDzjbYWdVAAAIfkECQMAAQAsAAAAAAoACgAAAhSMj3kAahxalAzOVzG2PN/ZbdRYAAAh+QQJAwABACwAAAAACgAKAAACE4yPqQuAbRoMUzp6bcxy78qBWwEAIfkECQMAAQAsAAAAAAoACgAAAhOMj6kLgG3gkY26UK+1sfbOYUABACH5BAkDAAEALAAAAAAKAAoAAAITjI+pC4Bt4JEyutDozbtr+2FAAQAh+QQJAwABACwAAAAACgAKAAACEYyPqcsGgJ6DR4ZnM55Td6oVACH5BAkDAAEALAAAAAAKAAoAAAIRjI+pywaAnoNHBjun3Y9yPhUAIfkEBQMAAQAsAAAAAAoACgAAAhGMj6nLDGAekoFGWB+menvuFQAh+QQFAwABACwAAAAAAQABAAACAkwBACH5BAUDAAEALAEAAwAFAAQAAAIGjAGmG6kFACH5BAUDAAEALAAAAwAKAAQAAAIIjG8AyM3rQgEAIfkEBQMAAQAsBAACAAIAAQAAAgIECgAh+QQFAwABACwJAAIAAQABAAACAkQBACH5BAUDAAEALAgAAgABAAEAAAICRAEAIfkEBQMAAQAsAAABAAYABQAAAgeMA3DLnVsAACH5BAUDAAEALAkAAQABAAEAAAICRAEAIfkEBQMAAQAsCAABAAEAAQAAAgJEAQAh+QQFAwABACwEAAAAAgABAAACAgQKACH5BAkDAAEALAAAAAAKAAYAAAIIjG8AyO0PYygAIfkECQMAAQAsAAAAAAoACgAAAhGMjwhgqxzckbLBGi9MvPt/FAAh+QQJAwABACwAAAAACgAKAAACFIyPeQDI9lYLEc5KL9M2+m11XFYAACH5BAkDAAEALAAAAAAKAAoAAAITjI+pC4Bt4JEyutDozbtr+2FAAQAh+QQJAwABACwAAAAACgAKAAACEoyPqasA5lAMEz7q7sy6b99ZBQAh+QQJAwABACwAAAAACgAKAAACEYyPqcsGgJ6DR4ZnM55Td6oVACH5BAkDAAEALAAAAAAKAAoAAAIRjI+py30AEDTzxQCrzvRmDxYAIfkECQMAAQAsAAAAAAoACgAAAhGMj6nL3QAMRDPAiq+MVvddAAAh+QQJAwABACwAAAAACgAKAAACEIyPqcvtDYCJccpAb8XU2gIAIfkECQMAAQAsAAAAAAoACgAAAhGMj6nL7QmAitHUQCXW2XJQAAAh+QQFAwABACwAAAAACgAKAAACEIyPqcudABg8kdYZIN7a8AIAIfkEBQMAAQAsBAAGAAYAAQAAAgNEDlAAIfkEBQMAAQAsAAAEAAYAAgAAAgQEgolWACH5BAUDAAEALAAAAwAKAAMAAAIHBIKpaOthCgAh+QQFAwABACwEAAMABgACAAACBASCiVYAIfkEBQMAAQAsAAACAAoAAgAAAgUEgqkbVgAh+QQFAwABACwAAAEABgACAAACBASCiVYAIfkEBQMAAQAsAAAAAAoAAwAAAgcEgqlo62EKACH5BAkDAAEALAAAAAAKAAIAAAIFjI95AAUAIfkECQMAAQAsAAAAAAoACgAAAg2MA3CobLminLTai2kBACH5BAkDAAEALAAAAAAKAAoAAAITjG8AqKkbWnzOyUunhRjvOnlTAQAh+QQJAwABACwAAAAACgAKAAACFIyPeQDR/hgzE9YracxQY7+BmlYAACH5BAkDAAEALAAAAAAKAAoAAAIUjI+pB2DdngtwRgqlvDzjbYWdVAAAIfkECQMAAQAsAAAAAAoACgAAAhOMj6kLgG0aDFM6em3Mcu/KgVsBACH5BAkDAAEALAAAAAAKAAoAAAISjI+pywaAnnswSEvnvDzjXXUFACH5BAkDAAEALAAAAAAKAAoAAAISjI+pyw0G4gsRSmsrnZJ7DQIFACH5BAkDAAEALAAAAAAKAAoAAAISjI+py30AEDRwBlvj1Zny6nkFACH5BAkDAAEALAAAAAAKAAoAAAIRjI+py+0HAIom0nCtxFvXDhQAIfkECQMAAQAsAAAAAAoACgAAAhCMj6nL7W+ABJGGaWXVN4MCACH5BAUDAAEALAAAAAAKAAoAAAIQjI+py+0JAIuGhmgzrvKCAgA7");
+ }
+
+ .yvp-content .yvp-main .yvp-mute-indicator:hover {
+ cursor: pointer
+ }
+
+ .yvp-content .yvp-main .yvp-docked-close-button {
+ position: absolute;
+ opacity: 0;
+ visibility: hidden;
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+YnV0dG9uLWNsb3NlPC90aXRsZT48ZGVmcz48ZmlsdGVyIHg9Ii01MCUiIHk9Ii01MCUiIHdpZHRoPSIyMDAlIiBoZWlnaHQ9IjIwMCUiIGZpbHRlclVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgaWQ9ImEiPjxmZU9mZnNldCBkeD0iMSIgZHk9IjEiIGluPSJTb3VyY2VBbHBoYSIgcmVzdWx0PSJzaGFkb3dPZmZzZXRPdXRlcjEiLz48ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIuNSIgaW49InNoYWRvd09mZnNldE91dGVyMSIgcmVzdWx0PSJzaGFkb3dCbHVyT3V0ZXIxIi8+PGZlQ29sb3JNYXRyaXggdmFsdWVzPSIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwLjM1IDAiIGluPSJzaGFkb3dCbHVyT3V0ZXIxIiByZXN1bHQ9InNoYWRvd01hdHJpeE91dGVyMSIvPjxmZU1lcmdlPjxmZU1lcmdlTm9kZSBpbj0ic2hhZG93TWF0cml4T3V0ZXIxIi8+PGZlTWVyZ2VOb2RlIGluPSJTb3VyY2VHcmFwaGljIi8+PC9mZU1lcmdlPjwvZmlsdGVyPjwvZGVmcz48cGF0aCBkPSJNMTIuMDI1IDEwLjYxTDYuNzE4IDUuMzAzYy0uMzg1LS4zODQtMS4wMi0uMzg2LTEuNDEuMDA0LS4zOTQuMzkzLS4zOTMgMS4wMjItLjAwNSAxLjQxbDUuMzA3IDUuMzA4LTUuMzA3IDUuMzA3Yy0uMzg0LjM4NC0uMzg2IDEuMDIuMDA0IDEuNDEuMzkzLjM5MyAxLjAyMi4zOTIgMS40MS4wMDRsNS4zMDgtNS4zMDcgNS4zMDcgNS4zMDZjLjM4NC4zODQgMS4wMi4zODcgMS40MS0uMDA0LjM5My0uMzkzLjM5Mi0xLjAyMi4wMDQtMS40MWwtNS4zMDctNS4zMDcgNS4zMDYtNS4zMDdjLjM4NC0uMzg1LjM4Ny0xLjAyLS4wMDQtMS40MS0uMzkzLS4zOTQtMS4wMjItLjM5My0xLjQxLS4wMDVsLTUuMzA3IDUuMzA3eiIgZmlsdGVyPSJ1cmwoI2EpIiBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=");
+ background-size: 100%;
+ background-color: transparent;
+ z-index: 32;
+ width: 24px;
+ height: 24px;
+ background-repeat: no-repeat;
+ background-position: 50% 50%;
+ border-radius: 0;
+ right: -3px;
+ cursor: pointer
+ }
+
+ .yvp-content.yvp-state-fullscreen .yvp-main .yvp-mute-indicator {
+ margin: 0 15px 15px 0
+ }
+
+ .yvp-content.yvp-state-fullscreen .yvp-main .yvp-docked-close-button {
+ visibility: hidden
+ }
+
+ .yvp-overlay-hide-cursor {
+ position: absolute;
+ display: block;
+ z-index: 30;
+ cursor: none;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0
+ }
+
+ .yvp-custom-controls {
+ position: absolute;
+ z-index: 29;
+ display: none;
+ height: 100%;
+ width: 100%
+ }
+
+ #Stencil .channel-applet-wrap.mode-embedtron .yvp-content {
+ z-index: 5
+ }
+
+ html[dir='rtl'] .yvp-settings-caret-icon.right {
+ -webkit-transform: rotate(180deg);
+ -moz-transform: rotate(180deg);
+ -ms-transform: rotate(180deg);
+ -o-transform: rotate(180deg);
+ transform: rotate(180deg);
+ left: 0;
+ right: 2px
+ }
+
+ html[dir='rtl'] .yvp-settings-caret-icon.left {
+ -webkit-transform: rotate(180deg);
+ -moz-transform: rotate(180deg);
+ -ms-transform: rotate(180deg);
+ -o-transform: rotate(180deg);
+ transform: rotate(180deg)
+ }
+
+ html[dir='rtl'] .yvp-cc-feedback-link {
+ float: left
+ }
+
+ html[dir='rtl'] .yvp-cc-options-more .effects {
+ margin-left: 0;
+ margin-right: 90px
+ }
+
+ html[dir='rtl'] .yvp-cc-options-more .bgcolorpicker {
+ margin-left: 0;
+ margin-right: 65px
+ }
+
+ html[dir='rtl'] .yvp-cc-options-more .fontcolorpicker {
+ margin-left: 0;
+ margin-right: 65px
+ }
+
+ html[dir='rtl'] .yvp-cc-options-more .yvp-cc-style-preview {
+ margin: 40px 85px 20px 0
+ }
+
+ @-moz-keyframes flash-button {
+ 0%,
+ 100% {
+ background-color: transparent
+ }
+ 50% {
+ background-color: #5f32fb
+ }
+ }
+
+ @-webkit-keyframes flash-button {
+ 0%,
+ 100% {
+ background-color: transparent
+ }
+ 50% {
+ background-color: #5f32fb
+ }
+ }
+
+ @-o-keyframes flash-button {
+ 0%,
+ 100% {
+ background-color: transparent
+ }
+ 50% {
+ background-color: #5f32fb
+ }
+ }
+
+ @-ms-keyframes flash-button {
+ 0%,
+ 100% {
+ background-color: transparent
+ }
+ 50% {
+ background-color: #5f32fb
+ }
+ }
+
+ @keyframes flash-button {
+ 0%,
+ 100% {
+ background-color: transparent
+ }
+ 50% {
+ background-color: #5f32fb
+ }
+ }
+
+ @-moz-keyframes fadeIn {
+ 0% {
+ opacity: 0
+ }
+ 100% {
+ opacity: 1
+ }
+ }
+
+ @-webkit-keyframes fadeIn {
+ 0% {
+ opacity: 0
+ }
+ 100% {
+ opacity: 1
+ }
+ }
+
+ @-o-keyframes fadeIn {
+ 0% {
+ opacity: 0
+ }
+ 100% {
+ opacity: 1
+ }
+ }
+
+ @-ms-keyframes fadeIn {
+ 0% {
+ opacity: 0
+ }
+ 100% {
+ opacity: 1
+ }
+ }
+
+ @keyframes fadeIn {
+ 0% {
+ opacity: 0
+ }
+ 100% {
+ opacity: 1
+ }
+ }
+ </style>
+ <style type="text/css">
+ .yvp-flag-casting .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-chromecast-btn {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+aWNvbi1jaHJvbWVjYXN0LW9uPC90aXRsZT48ZyBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yMC4wMDMgMGgtMTZjLTEuMTA1IDAtMiAuODk1LTIgMnYxLjMwM2MuNjg3LjE0IDEuMzUuMzQyIDIgLjU3MlYyaDE2djEwaC03LjI2Yy4yOC42NDQuNTEgMS4zMTQuNzAyIDJoNi41NThjMS4xMDQgMCAyLS44OTUgMi0yVjJjMC0xLjEwNS0uODk2LTItMi0yIi8+PHBhdGggZD0iTTExLjY5IDEwSDE4VjRINnYuNzNjMi4zMjcgMS4yMyA0LjI5IDMuMDU0IDUuNjkgNS4yN3pNNi40MSAxNmMtLjM5NSAwLS43NjgtLjIzMy0uOTI3LS42Mi0uODUtMi4wNzMtMi42MTYtMy42My00LjcyNi00LjE2Ni0uNTM1LS4xMzctLjg2LS42OC0uNzIzLTEuMjE2LjEzNS0uNTM1LjY4LS44NTUgMS4yMTUtLjcyNCAyLjcyLjY5MiA0Ljk5NSAyLjY5IDYuMDg0IDUuMzQ3LjIxLjUxMi0uMDM2IDEuMDk2LS41NDYgMS4zMDYtLjEyNS4wNS0uMjUzLjA3NC0uMzguMDc0Ii8+PHBhdGggZD0iTTEwLjYxNyAxNmMtLjQ0NSAwLS44NS0uMjk4LS45NjctLjc0OC0xLjEtNC4yMi00LjU1Ny03LjQwMi04LjgxLTguMTA1LS41NDUtLjA5LS45MTQtLjYwNS0uODI0LTEuMTUuMDktLjU0NS42MDQtLjkyNCAxLjE1LS44MjMgNS4wMzIuODMgOS4xMiA0LjU5IDEwLjQyIDkuNTc0LjEzOC41MzQtLjE4MiAxLjA4LS43MTcgMS4yMi0uMDg1LjAyLS4xNy4wMzItLjI1My4wMzJNMi40NDYgMTQuNDljLjAwNC4wMDQuMDA3LjAxLjAxLjAxNS4wOTcuMTcyLjE0LjM2LjEzLjU0NC0uMDEuMTgtLjA2Ny4zNi0uMTc1LjUxNy0uMDgyLjEyLS4xOTIuMjI1LS4zMjguMzAyLS4xNTguMDktLjMyNy4xMTQtLjQ5Ni4xMTRILjAydi0xLjQ2NmMtLjAwMi0uMTcuMDI1LS4zMzguMTE0LS40OTYuMjc0LS40OC44ODQtLjY0NiAxLjM2NC0uMzc0LjI1LjE0My40NC4zMi41OTMuNDZsLjE0LjEyN2MuMDg4LjA3NC4xNi4xNi4yMTYuMjU0eiIvPjwvZz48L3N2Zz4=")
+ }
+
+ .yvp-drag .yvp-handle,
+ .yvp-drag .yvp-playback-bar {
+ -webkit-transition: none !important;
+ -moz-transition: none !important;
+ -o-transition: none !important;
+ transition: none !important
+ }
+
+ .yvp-mode-ad .yvp-top-bar .yvp-ad,
+ .yvp-mode-vpaid .yvp-top-bar .yvp-ad {
+ display: block
+ }
+
+ .yvp-mode-ad .yvp-bottom-bar,
+ .yvp-mode-vpaid .yvp-bottom-bar {
+ height: 44px;
+ background-image: -webkit-linear-gradient(-180deg, rgba(255, 255, 255, 0) 0%, rgba(18, 23, 23, 0.1) 25%, rgba(18, 23, 23, 0.5) 100%);
+ background-image: -o-linear-gradient(-180deg, rgba(255, 255, 255, 0) 0%, rgba(18, 23, 23, 0.1) 25%, rgba(18, 23, 23, 0.5) 100%);
+ background-image: linear-gradient(-180deg, rgba(255, 255, 255, 0) 0%, rgba(18, 23, 23, 0.1) 25%, rgba(18, 23, 23, 0.5) 100%);
+ }
+
+ .yvp-mode-ad .yvp-bottom-bar .yvp-bottom-container,
+ .yvp-mode-vpaid .yvp-bottom-bar .yvp-bottom-container {
+ top: 0
+ }
+
+ .yvp-mode-ad .yvp-playing-item-title.yvp-title-standard,
+ .yvp-mode-vpaid .yvp-playing-item-title.yvp-title-standard {
+ opacity: 0;
+ z-index: 0
+ }
+
+ .yvp-playing-item-title {
+ display: block;
+ position: absolute;
+ opacity: 0;
+ }
+
+ .yvp-playing-item-title.yvp-title-standard {
+ left: 0;
+ top: 0;
+ box-sizing: border-box;
+ width: 100%;
+ padding: 10px 0 0 16px;
+ color: #fff;
+ background-image: -webkit-linear-gradient(-180deg, rgba(18, 23, 23, 0.8) 0%, rgba(18, 23, 23, 0.2) 50%, rgba(255, 255, 255, 0) 100%);
+ background-image: -o-linear-gradient(-180deg, rgba(18, 23, 23, 0.8) 0%, rgba(18, 23, 23, 0.2) 50%, rgba(255, 255, 255, 0) 100%);
+ background-image: linear-gradient(-180deg, rgba(18, 23, 23, 0.8) 0%, rgba(18, 23, 23, 0.2) 50%, rgba(255, 255, 255, 0) 100%);
+ font-weight: 500;
+ font-size: 22px;
+ text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5);
+ line-height: 24px;
+ z-index: 30;
+ opacity: 1;
+ -webkit-transition: opacity .6s ease-out .1s;
+ -moz-transition: opacity .6s ease-out .1s;
+ -o-transition: opacity .6s ease-out .1s;
+ transition: opacity .6s ease-out .1s;
+ }
+
+ .yvp-playing-item-title.yvp-title-standard.yvp-live {
+ padding: 48px 0 0 16px
+ }
+
+ .yvp-playing-item-title.yvp-title-standard.yvp-hide {
+ opacity: 0;
+ z-index: 0;
+ -webkit-transition: all .3s ease-out .1s;
+ -moz-transition: all .3s ease-out .1s;
+ -o-transition: all .3s ease-out .1s;
+ transition: all .3s ease-out .1s
+ }
+
+ .yvp-top-bar {
+ position: absolute;
+ z-index: 31;
+ width: 100%;
+ top: 0;
+ height: 0;
+ }
+
+ .yvp-top-bar .yvp-ad {
+ display: none;
+ position: absolute;
+ top: 14px;
+ left: 24px;
+ color: #fff;
+ font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
+ font-size: 14px
+ }
+
+ .yvp-top-bar .yvp-content-type {
+ display: block;
+ opacity: 1;
+ height: auto;
+ left: 16px;
+ top: 16px;
+ position: absolute;
+ padding: 5px 10px 5px 10px;
+ border-radius: 2px;
+ background-color: #7300ff;
+ background-image: -webkit-linear-gradient(45deg, #ff3541 0%, #ff6230 100%);
+ background-image: -o-linear-gradient(45deg, #ff3541 0%, #ff6230 100%);
+ background-image: linear-gradient(45deg, #ff3541 0%, #ff6230 100%);
+ font-family: 'HelveticaNeue-Bold', Helvetica, Arial, sans-serif;
+ color: #fff;
+ text-shadow: none;
+ text-transform: uppercase;
+ letter-spacing: .6px;
+ font-weight: normal;
+ font-size: 10px;
+ }
+
+ .yvp-top-bar .yvp-content-type.hide {
+ display: none
+ }
+
+ .yvp-bottom-bar {
+ position: absolute;
+ background-color: transparent;
+ background-image: -webkit-linear-gradient(-180deg, rgba(255, 255, 255, 0) 0%, rgba(18, 23, 23, 0.2) 50%, rgba(18, 23, 23, 0.8) 100%);
+ background-image: -o-linear-gradient(-180deg, rgba(255, 255, 255, 0) 0%, rgba(18, 23, 23, 0.2) 50%, rgba(18, 23, 23, 0.8) 100%);
+ background-image: linear-gradient(-180deg, rgba(255, 255, 255, 0) 0%, rgba(18, 23, 23, 0.2) 50%, rgba(18, 23, 23, 0.8) 100%);
+ left: 0;
+ right: 0;
+ bottom: 0;
+ width: 100%;
+ height: 100px;
+ z-index: 30;
+ cursor: auto;
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container {
+ display: block;
+ position: relative;
+ top: 56px;
+ height: 44px;
+ margin: 0 10px 0 10px;
+ cursor: auto;
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls {
+ display: inline-block;
+ margin-top: 10px;
+ position: absolute;
+ right: 0;
+ top: 0;
+ float: right;
+ opacity: 1;
+ -webkit-transition: opacity .4s linear;
+ -moz-transition: opacity .4s linear;
+ -o-transition: opacity .4s linear;
+ transition: opacity .4s linear;
+ direction: ltr;
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .button {
+ height: 24px;
+ width: 24px;
+ bottom: 0;
+ background-position: center;
+ background-repeat: no-repeat;
+ float: none;
+ display: inline-block;
+ position: relative;
+ margin-left: 4px;
+ cursor: pointer
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-fullscreen-btn {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODgiIGhlaWdodD0iODgiIHZpZXdCb3g9IjAgMCA4OCA4OCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+ZnVsbHNjcmVlbjwvdGl0bGU+PGcgZmlsbD0iI0ZGRiIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNNzAuNzg1IDUwLjYyMmMtLjExLTEuOTYtMS43MzYtMy40NjYtMy44NC0zLjQzaC0uMDAzYy0yIC4xMTQtMy41NDIgMS44NC0zLjQzMyAzLjgxNGwuMjEyIDYuNDEtMTEuMTA3LTEwLjcyNy01LjA2IDUuMjQ0IDExLjEwMyAxMC43MjItNi41My4wMTNjLTEuOTU3LjAzMy0zLjUzIDEuNTk4LTMuNTc4IDMuNTcyLS4wMiAxLjAwNC4zOSAxLjk5IDEuMTIyIDIuNjk2LjY2LjYzIDEuNTI0Ljk5NiAyLjQ2IDEuMDE3bDE5LjUxMi4xNzQtLjg2LTE5LjUwOE00Mi4yMjQgMzYuNzQ1bC0xMS4xMS0xMC43MyA2LjUzMi0uMDFjMS45NTgtLjAzMyAzLjUyNy0xLjU5NyAzLjU4LTMuNTY4LjAxOC0xLjAxLS4zOS0xLjk5My0xLjExNS0yLjY5Ni0uNjYzLS42MzctMS41My0xLTIuNDY4LTEuMDJsLTE5LjUxLS4xNzQuODU4IDE5LjUxYy4xMSAxLjk1OCAxLjczNiAzLjQ2MyAzLjgzNiAzLjQyNmguMDAzYy45NzItLjA1NCAxLjg2Ny0uNDg0IDIuNTE1LTEuMjEuNjUtLjczLjk3OC0xLjY2Ny45Mi0yLjZsLS4yMTItNi40MTJMMzcuMTYgNDEuOTg2bDUuMDY0LTUuMjQiLz48L2c+PC9zdmc+");
+ background-size: 100%;
+ left: 0;
+ opacity: .8;
+ cursor: pointer;
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-fullscreen-btn.fullscreen {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODgiIGhlaWdodD0iODgiIHZpZXdCb3g9IjAgMCA4OCA4OCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+ZXhpdC1mdWxsc2NyZWVuPC90aXRsZT48ZyBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik00Ny4xOTMgNjUuNzUyYy4wNzMgMS45MTcgMS42MzYgMy40MTQgMy42OSAzLjQxNGguMDA0YzEuOTU3LS4wNzYgMy40OS0xLjczNCAzLjQxOC0zLjY2NWwtLjEtNi4yNjIgMTAuNjY2IDEwLjY2NCA1LjAzMi01LjAzNS0xMC42Ni0xMC42NiA2LjM3NS4wOThjMS45MTMgMCAzLjQ3Ni0xLjUgMy41NTYtMy40My4wMzctLjk4LS4zNDYtMS45NDgtMS4wNS0yLjY1LS42MzMtLjYyOC0xLjQ3LTEtMi4zODUtMS4wMzZsLTE5LjA1Mi0uNTA0LjUwNyAxOS4wNjZNMTcuNTQgMjIuNTdsMTAuNjY3IDEwLjY3LTYuMzgtLjEwM2MtMS45MTIgMC0zLjQ3MiAxLjUtMy41NTUgMy40MjQtLjAzNy45OS4zNDYgMS45NTQgMS4wNDIgMi42NTQuNjM3LjYzNCAxLjQ4IDEuMDAyIDIuMzkzIDEuMDM4bDE5LjA1Mi41MDMtLjUwOC0xOS4wN2MtLjA3My0xLjkxMi0xLjYzNi0zLjQxLTMuNjg3LTMuNDFoLS4wMDRjLS45NS4wMzctMS44My40NC0yLjQ3NiAxLjE0LS42NS43LS45ODQgMS42MS0uOTQ0IDIuNTIybC4xIDYuMjY2TDIyLjU3MyAxNy41NGwtNS4wMzUgNS4wMyIvPjwvZz48L3N2Zz4=");
+ background-size: 100%
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-fullscreen-btn:hover {
+ opacity: 1
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-chromecast-btn {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+aWNvbi1jaHJvbWVjYXN0PC90aXRsZT48ZyBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yMC4wMDMgMGgtMTZjLTEuMTA1IDAtMiAuODk1LTIgMnYxLjMwM2MuNjg3LjE0IDEuMzUuMzQyIDIgLjU3MlYyaDE2djEwaC03LjI2Yy4yOC42NDQuNTEgMS4zMTQuNzAyIDJoNi41NThjMS4xMDQgMCAyLS44OTUgMi0yVjJjMC0xLjEwNS0uODk2LTItMi0yTTYuNDEgMTZjLS4zOTUgMC0uNzY4LS4yMzMtLjkyNy0uNjItLjg1LTIuMDczLTIuNjE2LTMuNjMtNC43MjYtNC4xNjYtLjUzNS0uMTM3LS44Ni0uNjgtLjcyMy0xLjIxNi4xMzUtLjUzNS42OC0uODU1IDEuMjE1LS43MjQgMi43Mi42OTIgNC45OTUgMi42OSA2LjA4NCA1LjM0Ny4yMS41MTItLjAzNiAxLjA5Ni0uNTQ2IDEuMzA2LS4xMjUuMDUtLjI1My4wNzQtLjM4LjA3NCIvPjxwYXRoIGQ9Ik0xMC42MTcgMTZjLS40NDUgMC0uODUtLjI5OC0uOTY3LS43NDgtMS4xLTQuMjItNC41NTctNy40MDItOC44MS04LjEwNS0uNTQ1LS4wOS0uOTE0LS42MDUtLjgyNC0xLjE1LjA5LS41NDUuNjA0LS45MjQgMS4xNS0uODIzIDUuMDMyLjgzIDkuMTIgNC41OSAxMC40MiA5LjU3NC4xMzguNTM0LS4xODIgMS4wOC0uNzE3IDEuMjItLjA4NS4wMi0uMTcuMDMyLS4yNTMuMDMyTTIuNDQ2IDE0LjQ5Yy4wMDQuMDA0LjAwNy4wMS4wMS4wMTUuMDk3LjE3Mi4xNC4zNi4xMy41NDQtLjAxLjE4LS4wNjcuMzYtLjE3NS41MTctLjA4Mi4xMi0uMTkyLjIyNS0uMzI4LjMwMi0uMTU4LjA5LS4zMjcuMTE0LS40OTYuMTE0SC4wMnYtMS40NjZjLS4wMDItLjE3LjAyNS0uMzM4LjExNC0uNDk2LjI3NC0uNDguODg0LS42NDYgMS4zNjQtLjM3NC4yNS4xNDMuNDQuMzIuNTkzLjQ2bC4xNC4xMjdjLjA4OC4wNzQuMTYuMTYuMjE2LjI1NHoiLz48L2c+PC9zdmc+");
+ background-size: 100%;
+ opacity: .8;
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-chromecast-btn:hover {
+ opacity: 1
+ }
+
+ .yvp-bottom-bar .yvp-play-controls {
+ display: block;
+ top: 0;
+ left: 0;
+ padding-top: 10px;
+ opacity: 1;
+ -webkit-transition: opacity .4s linear;
+ -moz-transition: opacity .4s linear;
+ -o-transition: opacity .4s linear;
+ transition: opacity .4s linear;
+ direction: ltr
+ }
+
+ .yvp-bottom-bar .yvp-play-btn {
+ position: relative;
+ display: inline-block;
+ background-position: 50% 50%;
+ background-size: 100%;
+ bottom: 0;
+ left: 0;
+ margin-top: 0;
+ margin-left: -4px;
+ width: 24px;
+ height: 24px;
+ cursor: pointer
+ }
+
+ .yvp-bottom-bar .yvp-upnext-container {
+ bottom: 0;
+ left: 0;
+ margin-left: 4px;
+ width: 24px;
+ height: 24px;
+ display: inline-block;
+ }
+
+ .yvp-bottom-bar .yvp-upnext-container.hide {
+ display: none
+ }
+
+ .yvp-bottom-bar .yvp-upnext-container.disabled {
+ opacity: .25;
+ pointer-events: none
+ }
+
+ .yvp-bottom-bar .yvp-upnext-container .yvp-upnext-btn {
+ position: relative;
+ background-position: 50% 50%;
+ background-size: 100%;
+ top: 0;
+ left: 0;
+ width: 24px;
+ height: 24px;
+ z-index: 2;
+ }
+
+ .yvp-bottom-bar .yvp-upnext-container .yvp-upnext-btn:hover {
+ cursor: pointer
+ }
+
+ .yvp-bottom-bar .yvp-upnext-container .yvp-upnext-playlist {
+ z-index: 1;
+ }
+
+ .yvp-bottom-bar .yvp-upnext-container .yvp-upnext-playlist.hide {
+ display: none
+ }
+
+ .yvp-bottom-bar .yvp-time-container {
+ display: inline-block;
+ position: relative;
+ left: 0;
+ top: -8px;
+ font-size: 11px;
+ margin-left: 4px;
+ }
+
+ .yvp-bottom-bar .yvp-time-container.yvp-hide {
+ display: none
+ }
+
+ .yvp-bottom-bar .yvp-current-time,
+ .yvp-bottom-bar .yvp-vs-time,
+ .yvp-bottom-bar .yvp-total-time {
+ font-size: 11px;
+ display: inline-block;
+ }
+
+ .yvp-bottom-bar .yvp-current-time.yvp-hide,
+ .yvp-bottom-bar .yvp-vs-time.yvp-hide,
+ .yvp-bottom-bar .yvp-total-time.yvp-hide {
+ display: none
+ }
+
+ .yvp-bottom-bar .yvp-current-time,
+ .yvp-bottom-bar .yvp-total-time {
+ position: relative;
+ top: 0;
+ left: 0 !important;
+ margin-left: 0;
+ padding: 0;
+ width: auto;
+ background-color: transparent;
+ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.3)
+ }
+
+ .yvp-bottom-bar .yvp-current-time,
+ .yvp-bottom-bar .yvp-total-time {
+ color: rgba(255, 255, 255, 0.8);
+ }
+
+ .yvp-bottom-bar .yvp-current-time:hover,
+ .yvp-bottom-bar .yvp-total-time:hover {
+ color: rgba(255, 255, 255, 0.8)
+ }
+
+ .yvp-bottom-bar .yvp-vs-time {
+ position: absolute;
+ bottom: 3px;
+ left: 34px;
+ width: 44px;
+ background-color: rgba(0, 0, 0, 0.3);
+ color: #fff;
+ text-shadow: 1px 1px 2px #000;
+ border-radius: 2px;
+ padding: 3px 0;
+ font-size: 11px;
+ text-align: center
+ }
+
+ .yvp-bottom-bar .yvp-slider.yvp-disable {
+ display: none;
+ pointer-events: none
+ }
+
+ .yvp-bottom-bar .yvp-slider,
+ .yvp-bottom-bar .yvp-handle,
+ .yvp-bottom-bar .yvp-buffer-bar,
+ .yvp-bottom-bar .yvp-playback-bar {
+ position: absolute;
+ height: 4px;
+ bottom: 44px;
+ border: 0;
+ border-radius: 3px;
+ opacity: 1;
+ direction: ltr;
+ max-width: 100%
+ }
+
+ .yvp-bottom-bar .yvp-slider.yvp-thick-slider {
+ height: 6px;
+ bottom: 43px;
+ }
+
+ .yvp-bottom-bar .yvp-slider.yvp-thick-slider .yvp-buffer-bar,
+ .yvp-bottom-bar .yvp-slider.yvp-thick-slider .yvp-playback-bar {
+ height: 6px;
+ bottom: 43px
+ }
+
+ .yvp-bottom-bar .yvp-slider.yvp-thick-slider .yvp-handle {
+ margin-top: -3px
+ }
+
+ .yvp-bottom-bar .yvp-playback-bar {
+ top: 0;
+ background-color: #7300ff;
+ background-image: -webkit-linear-gradient(to right, #7300ff 0%, #188fff 100%);
+ background-image: -o-linear-gradient(to right, #7300ff 0%, #188fff 100%);
+ background-image: linear-gradient(to right, #7300ff 0%, #188fff 100%);
+ opacity: .8
+ }
+
+ .yvp-bottom-bar .yvp-slider {
+ width: 100%;
+ position: absolute;
+ background: rgba(255, 255, 255, 0.2);
+ border-radius: 3px;
+ border-color: transparent;
+ cursor: pointer;
+ }
+
+ .yvp-bottom-bar .yvp-slider .yvp-slider-extension {
+ position: absolute;
+ width: 100%;
+ height: 16px;
+ top: -6px
+ }
+
+ .yvp-bottom-bar .yvp-buffer-bar {
+ top: 0;
+ background: rgba(255, 255, 255, 0.2)
+ }
+
+ .yvp-bottom-bar .yvp-visual-seek {
+ display: none;
+ position: absolute;
+ top: -71px;
+ width: 112px;
+ height: 63px;
+ margin-left: -57px;
+ background-color: #000;
+ border: 0;
+ z-index: 2;
+ pointer-events: none;
+ text-align: center
+ }
+
+ .yvp-bottom-bar .yvp-handle {
+ position: absolute;
+ top: 0;
+ width: 12px;
+ height: 12px;
+ border: 0;
+ border-radius: 50%;
+ background-color: #fff;
+ margin-top: -4px;
+ margin-left: -6px;
+ background-image: none;
+ display: none;
+ z-index: 3;
+ }
+
+ .yvp-bottom-bar .yvp-handle.active {
+ display: block
+ }
+
+ .yvp-bottom-bar .yvp-ad-break {
+ background-color: rgba(204, 204, 204, 0.5);
+ position: absolute;
+ top: 0;
+ width: 3px;
+ height: 100%;
+ }
+
+ .yvp-bottom-bar .yvp-ad-break:hover {
+ background-color: rgba(255, 255, 255, 0.5)
+ }
+
+ .yvp-bottom-bar .yvp-ad-break.occurred {
+ background-color: rgba(0, 0, 0, 0.25)
+ }
+
+ .yvp-bottom-bar .yvp-fullscreen-btn-replacement {
+ width: 9px;
+ height: 30px;
+ position: relative;
+ float: right
+ }
+
+ .yvp-bottom-bar.yvp-bottom-upnext {
+ height: 100%;
+ opacity: .55;
+ -webkit-transition: opacity 200ms linear;
+ -moz-transition: opacity 200ms linear;
+ -o-transition: opacity 200ms linear;
+ transition: opacity 200ms linear;
+ background: rgba(18, 23, 23, 0.55);
+ }
+
+ .yvp-bottom-bar.yvp-bottom-upnext .yvp-bottom-container .yvp-slider {
+ opacity: 0;
+ -webkit-transition: opacity 200ms linear;
+ -moz-transition: opacity 200ms linear;
+ -o-transition: opacity 200ms linear;
+ transition: opacity 200ms linear;
+ display: none;
+ pointer-events: none
+ }
+
+ .yvp-bottom-bar.yvp-bottom-upnext .yvp-playlist-item {
+ -webkit-transform: translateX(0) scale(1, 1);
+ -moz-transform: translateX(0) scale(1, 1);
+ -ms-transform: translateX(0) scale(1, 1);
+ -o-transform: translateX(0) scale(1, 1);
+ transform: translateX(0) scale(1, 1);
+ -webkit-transition: transform 420ms cubic-bezier(0, .4, .1, 1);
+ -moz-transition: transform 420ms cubic-bezier(0, .4, .1, 1);
+ -o-transition: transform 420ms cubic-bezier(0, .4, .1, 1);
+ transition: transform 420ms cubic-bezier(0, .4, .1, 1)
+ }
+
+ .yvp-bottom-bar.yvp-drag .yvp-play-controls,
+ .yvp-bottom-bar.yvp-drag .yvp-menu-controls {
+ opacity: 0;
+ -webkit-transition: opacity 200ms linear;
+ -moz-transition: opacity 200ms linear;
+ -o-transition: opacity 200ms linear;
+ transition: opacity 200ms linear
+ }
+
+ .yvp-ie9 .yvp-playback-bar {
+ filter: progid: DXImageTransform.Microsoft.gradient(gradientType: 1, startColorStr=#AA7300FF, endColorStr=#FF0087FF)
+ }
+
+ .yvp-bottom-bar.yvp-bottom-upnext .yvp-bottom-container .yvp-menu-controls .button,
+ .yvp-bottom-bar.yvp-bottom-upnext .yvp-bottom-container .yvp-menu-controls .yvp-cc-btn,
+ .yvp-bottom-bar.yvp-bottom-upnext .yvp-bottom-container .yvp-menu-controls .yvp-chromecast-btn,
+ .yvp-bottom-bar.yvp-bottom-upnext .yvp-bottom-container .yvp-menu-controls .yvp-fullscreen-btn {
+ opacity: .2;
+ -webkit-transition: opacity 200ms linear;
+ -moz-transition: opacity 200ms linear;
+ -o-transition: opacity 200ms linear;
+ transition: opacity 200ms linear;
+ pointer-events: none
+ }
+
+ .yvp-state-video .yvp-bottom-bar .yvp-play-btn,
+ .yvp-flag-casting .yvp-bottom-bar .yvp-play-btn {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNi43ODYgMTguOTkzSDYuNzRjLS40MTQgMC0uNzUtLjM0NC0uNzUtLjc1VjUuNzczYzAtLjQxNS4zMzMtLjc1Ljc1LS43NS4xNjYgMCAuMzIuMDU0LjQ0My4xNDZsMTAuNTEgNi4wNjdjLjM2LjIxLjQ5LjY2Ny4yOCAxLjAyOC0uMDU0LjA5My0uMTI0LjE3LS4yMDYuMjMtLjAzNi4wMzItLjA3Ni4wNjItLjEyLjA4OGwtMTAuNDg1IDYuM2MtLjExOC4wNy0uMjQ3LjEwNy0uMzc2LjExeiIgZmlsbD0iI0ZGRiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+");
+ opacity: .8;
+ }
+
+ .yvp-state-video .yvp-bottom-bar .yvp-play-btn:hover,
+ .yvp-flag-casting .yvp-bottom-bar .yvp-play-btn:hover {
+ opacity: 1
+ }
+
+ .yvp-state-video.yvp-flag-playing .yvp-bottom-bar .yvp-play-btn,
+ .yvp-flag-casting.yvp-cast-playing .yvp-bottom-bar .yvp-play-btn {
+ background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCAzLjguMyAoMjk4MDIpIC0gaHR0cDovL3d3dy5ib2hlbWlhbmNvZGluZy5jb20vc2tldGNoIC0tPgogICAgPHRpdGxlPnBhdXNlPC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+PC9kZWZzPgogICAgPGcgaWQ9ImRlc2t0b3AiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJwYXVzZSIgZmlsbD0iI0ZGRkZGRiI+CiAgICAgICAgICAgIDxnIGlkPSJSZWN0YW5nbGUtMTMxLSstUmVjdGFuZ2xlLTEzMS1Db3B5IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2LjAwMDAwMCwgNS4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxyZWN0IGlkPSJSZWN0YW5nbGUtMTMxLUNvcHkiIHg9IjguNSIgeT0iMCIgd2lkdGg9IjMiIGhlaWdodD0iMTQiIHJ4PSIxLjUiPjwvcmVjdD4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0wLjUsMS40OTgyNDUyNCBDMC41LDAuNjcwNzg3MjQyIDEuMTY1Nzk3MjMsMCAyLDAgTDIsMCBDMi44Mjg0MjcxMiwwIDMuNSwwLjY3NTI0OTEgMy41LDEuNDk4MjQ1MjQgTDMuNSwxMi41MDE3NTQ4IEMzLjUsMTMuMzI5MjEyOCAyLjgzNDIwMjc3LDE0IDIsMTQgTDIsMTQgQzEuMTcxNTcyODgsMTQgMC41LDEzLjMyNDc1MDkgMC41LDEyLjUwMTc1NDggTDAuNSwxLjQ5ODI0NTI0IFoiIGlkPSJSZWN0YW5nbGUtMTMxLUNvcHkiPjwvcGF0aD4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+");
+ opacity: .8;
+ }
+
+ .yvp-state-video.yvp-flag-playing .yvp-bottom-bar .yvp-play-btn:hover,
+ .yvp-flag-casting.yvp-cast-playing .yvp-bottom-bar .yvp-play-btn:hover {
+ opacity: 1
+ }
+
+ .yvp-state-end-screen .yvp-bottom-bar .yvp-play-btn {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0xNi44NyAxNS41NDVjLS4xMS0uMTk3LS4yNzQtLjM0NS0uNDctLjQyNS0uMjA0LS4wOS0uNDUtLjA5LS42MS0uMDQtLjEwNy4wMjUtLjIwNS4wNjgtLjMyNy4xNDctLjA3Mi4wNS0uMTcyLjE1LS4yMTYuMjA0LS43NzYgMS4wMTgtMS45OTcgMS42MjctMy4yNjYgMS42MjctMi4yNDQgMC00LjA3LTEuODItNC4wNy00LjA1MyAwLTIuMTMzIDEuNzg3LTMuOTQ3IDMuOTgtNC4wNDNsLjUyLS4wMTNWN2wtLjU1Mi4wMTNDOC41NzMgNy4xMyA2IDkuNzYgNiAxMy4wMDNjMCAzLjMxMiAyLjY5MyA2LjAwNCA2LjAwNSA2LjAwNCAxLjg2NCAwIDMuNTktLjg0NSA0LjctMi4yOGwuMDctLjA5Yy4wMy0uMDQyLjA1My0uMDgyLjA3LS4xMDguMTA0LS4xNjguMTU1LS4zMzQuMTU1LS41MSAwLS4xNi0uMDQzLS4zMi0uMTMtLjQ3NSIvPjxwYXRoIGQ9Ik0xMi4zMTIgMTEuMDA4Yy0uMTcyIDAtLjMxMi0uMTUtLjMxMi0uMzIzVjUuMzIzYzAtLjE4LjEzOC0uMzIzLjMxMi0uMzIzLjA2OCAwIC4xMzIuMDI0LjE4NC4wNjNsNC4zNjUgMi42MWMuMTUyLjA5LjIwNC4yODYuMTE4LjQ0LS4wMjIuMDQtLjA1Mi4wNzUtLjA4Ni4xLS4wMTUuMDE0LS4wMzIuMDI3LS4wNS4wMzhsLTQuMzU1IDIuNzFjLS4wNS4wMy0uMTAzLjA0Ni0uMTU2LjA0OGgtLjAxOHoiLz48L2c+PC9zdmc+");
+ opacity: .8;
+ background-size: 95%;
+ }
+
+ .yvp-state-end-screen .yvp-bottom-bar .yvp-play-btn:hover {
+ opacity: 1
+ }
+
+ .yvp-state-video .yvp-bottom-bar .yvp-upnext-container .yvp-upnext-btn {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODgiIGhlaWdodD0iODgiIHZpZXdCb3g9IjAgMCA4OCA4OCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+dXBuZXh0PC90aXRsZT48ZyBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yMi4wOTIgNjYuMDIzbC0uMTMuMDAyYy0yLjAyNCAwLTMuNjY1LTEuNjQ1LTMuNjY1LTMuNjc2VjI1LjdjMC0xLjU1NS45NjYtMi44ODQgMi4zMjYtMy40MiAxLjA1OC0uNDY2IDIuMzE0LS40NCAzLjM4Ny4xOGwzMS42MDggMTguMjVjLjQ2LjI2NS44NDIuNjEzIDEuMTM4IDEuMDE1LjEuMTMyLjE5NS4yNzIuMjguNDIgMS4wNjMgMS44NC40MzQgNC4xOTUtMS40MTcgNS4yNjRMMjQuMjYgNjUuNTFjLS42ODMuMzk1LTEuNDM4LjU1Ny0yLjE3LjUxek02Mi4zMzMgMjIuMDA0YzAtMi4wMjcgMS42NDYtMy42NyAzLjY2Ny0zLjY3IDIuMDI1IDAgMy42NjcgMS42NSAzLjY2NyAzLjY3djQzLjk5MmMwIDIuMDI3LTEuNjQ2IDMuNjctMy42NjcgMy42Ny0yLjAyNSAwLTMuNjY3LTEuNjUtMy42NjctMy42N1YyMi4wMDR6Ii8+PC9nPjwvc3ZnPg==");
+ opacity: .8;
+ display: inline-block;
+ }
+
+ .yvp-state-video .yvp-bottom-bar .yvp-upnext-container .yvp-upnext-btn:hover {
+ opacity: 1
+ }
+
+ .yvp-state-start-screen .yvp-top-bar .yvp-content-type {
+ display: none
+ }
+
+ .yvp-state-end-screen .yvp-bottom-bar .yvp-visual-seek {
+ display: none !important
+ }
+
+ .yvp-state-end-screen .yvp-bottom-bar .yvp-slider {
+ pointer-events: none
+ }
+
+ .yvp-state-end-screen .yvp-playing-item-title.yvp-title-standard {
+ opacity: 0;
+ z-index: 0
+ }
+
+ .yvp-browser-mobile .yvp-bottom-bar .yvp-play-controls {
+ padding-top: 7px
+ }
+
+ .yvp-browser-mobile .yvp-bottom-bar .yvp-play-btn {
+ opacity: 1;
+ width: 30px;
+ height: 30px
+ }
+
+ .yvp-browser-mobile .yvp-bottom-bar .yvp-upnext-container .yvp-upnext-btn {
+ opacity: 1
+ }
+
+ .yvp-browser-mobile .yvp-bottom-bar .yvp-time-container {
+ top: -10px
+ }
+
+ .yvp-browser-mobile .yvp-bottom-bar .yvp-current-time,
+ .yvp-browser-mobile .yvp-bottom-bar .yvp-vs-time,
+ .yvp-browser-mobile .yvp-bottom-bar .yvp-total-time {
+ font-size: 14px
+ }
+
+ .yvp-browser-mobile .yvp-bottom-bar .yvp-handle {
+ width: 14px;
+ height: 14px;
+ margin-top: -5px;
+ display: block
+ }
+
+ .yvp-browser-mobile .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls {
+ margin-top: 7px;
+ }
+
+ .yvp-browser-mobile .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .button {
+ width: 30px;
+ height: 30px
+ }
+
+ .yvp-browser-mobile .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-fullscreen-btn {
+ opacity: 1;
+ margin-bottom: 0;
+ margin-right: 0
+ }
+
+ .yvp-state-video .yvp-bottom-bar {
+ display: block
+ }
+
+ .yvp-state-start-screen .yvp-bottom-bar,
+ .yvp-state-error .yvp-bottom-bar,
+ .yvp-state-end-screen .yvp-bottom-bar,
+ .yvp-state-loading .yvp-bottom-bar {
+ display: none
+ }
+
+ .yvp-mode-ad .yvp-bottom-bar .yvp-slider,
+ .yvp-mode-vpaid .yvp-bottom-bar .yvp-slider,
+ .yvp-mode-ad .yvp-bottom-bar .yvp-handle,
+ .yvp-mode-vpaid .yvp-bottom-bar .yvp-handle,
+ .yvp-mode-ad .yvp-bottom-bar .yvp-buffer-bar,
+ .yvp-mode-vpaid .yvp-bottom-bar .yvp-buffer-bar,
+ .yvp-mode-ad .yvp-bottom-bar .yvp-playback-bar,
+ .yvp-mode-vpaid .yvp-bottom-bar .yvp-playback-bar {
+ pointer-events: none;
+ height: 4px !important;
+ bottom: 0 !important;
+ display: none
+ }
+
+ .yvp-mode-ad .yvp-bottom-bar .yvp-handle,
+ .yvp-mode-vpaid .yvp-bottom-bar .yvp-handle,
+ .yvp-mode-ad .yvp-bottom-bar .yvp-buffer-bar,
+ .yvp-mode-vpaid .yvp-bottom-bar .yvp-buffer-bar {
+ display: none
+ }
+
+ .yvp-mode-ad .yvp-bottom-bar .yvp-content-type,
+ .yvp-mode-vpaid .yvp-bottom-bar .yvp-content-type {
+ display: block
+ }
+
+ .yvp-mode-ad .yvp-bottom-bar .yvp-ad-break,
+ .yvp-mode-vpaid .yvp-bottom-bar .yvp-ad-break {
+ display: none
+ }
+
+ .yvp-cast-overlay {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ background-color: #000;
+ z-index: 50;
+ display: none;
+ color: #fff;
+ background-repeat: no-repeat;
+ background-size: cover;
+ }
+
+ .yvp-cast-overlay:after {
+ content: '';
+ background-color: rgba(0, 0, 0, 0.85);
+ display: block;
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ top: 0;
+ z-index: -1
+ }
+
+ .yvp-cast-overlay &gt;
+ div {
+ position: relative;
+ height: calc(100% - 70px);
+ }
+
+ .yvp-cast-overlay &gt;
+ div .cast-overlay-header {
+ height: 25%;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ border-bottom: 1px solid #777
+ }
+
+ .yvp-cast-overlay &gt;
+ div .cast-device-info {
+ margin-left: 50px;
+ }
+
+ .yvp-cast-overlay &gt;
+ div .cast-device-info:before {
+ content: '';
+ float: left;
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+aWNvbi1jaHJvbWVjYXN0LW9uPC90aXRsZT48ZyBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yMC4wMDMgMGgtMTZjLTEuMTA1IDAtMiAuODk1LTIgMnYxLjMwM2MuNjg3LjE0IDEuMzUuMzQyIDIgLjU3MlYyaDE2djEwaC03LjI2Yy4yOC42NDQuNTEgMS4zMTQuNzAyIDJoNi41NThjMS4xMDQgMCAyLS44OTUgMi0yVjJjMC0xLjEwNS0uODk2LTItMi0yIi8+PHBhdGggZD0iTTExLjY5IDEwSDE4VjRINnYuNzNjMi4zMjcgMS4yMyA0LjI5IDMuMDU0IDUuNjkgNS4yN3pNNi40MSAxNmMtLjM5NSAwLS43NjgtLjIzMy0uOTI3LS42Mi0uODUtMi4wNzMtMi42MTYtMy42My00LjcyNi00LjE2Ni0uNTM1LS4xMzctLjg2LS42OC0uNzIzLTEuMjE2LjEzNS0uNTM1LjY4LS44NTUgMS4yMTUtLjcyNCAyLjcyLjY5MiA0Ljk5NSAyLjY5IDYuMDg0IDUuMzQ3LjIxLjUxMi0uMDM2IDEuMDk2LS41NDYgMS4zMDYtLjEyNS4wNS0uMjUzLjA3NC0uMzguMDc0Ii8+PHBhdGggZD0iTTEwLjYxNyAxNmMtLjQ0NSAwLS44NS0uMjk4LS45NjctLjc0OC0xLjEtNC4yMi00LjU1Ny03LjQwMi04LjgxLTguMTA1LS41NDUtLjA5LS45MTQtLjYwNS0uODI0LTEuMTUuMDktLjU0NS42MDQtLjkyNCAxLjE1LS44MjMgNS4wMzIuODMgOS4xMiA0LjU5IDEwLjQyIDkuNTc0LjEzOC41MzQtLjE4MiAxLjA4LS43MTcgMS4yMi0uMDg1LjAyLS4xNy4wMzItLjI1My4wMzJNMi40NDYgMTQuNDljLjAwNC4wMDQuMDA3LjAxLjAxLjAxNS4wOTcuMTcyLjE0LjM2LjEzLjU0NC0uMDEuMTgtLjA2Ny4zNi0uMTc1LjUxNy0uMDgyLjEyLS4xOTIuMjI1LS4zMjguMzAyLS4xNTguMDktLjMyNy4xMTQtLjQ5Ni4xMTRILjAydi0xLjQ2NmMtLjAwMi0uMTcuMDI1LS4zMzguMTE0LS40OTYuMjc0LS40OC44ODQtLjY0NiAxLjM2NC0uMzc0LjI1LjE0My40NC4zMi41OTMuNDZsLjE0LjEyN2MuMDg4LjA3NC4xNi4xNi4yMTYuMjU0eiIvPjwvZz48L3N2Zz4=");
+ background-repeat: no-repeat;
+ background-size: 90%;
+ background-position: 50%;
+ margin-right: 10px;
+ width: 36px;
+ height: 36px
+ }
+
+ .yvp-cast-overlay &gt;
+ div .cast-device-name {
+ font-size: .9em;
+ position: relative;
+ top: 3px
+ }
+
+ .yvp-cast-overlay &gt;
+ div .cast-device-type {
+ font-size: .7em;
+ color: #999
+ }
+
+ .yvp-cast-overlay &gt;
+ div .cast-overlay-content {
+ position: relative;
+ height: 50%;
+ left: 0;
+ right: 0;
+ cursor: pointer;
+ opacity: .6;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ }
+
+ .yvp-cast-overlay &gt;
+ div .cast-overlay-content:hover {
+ opacity: 1
+ }
+
+ .yvp-cast-overlay &gt;
+ div .cast-overlay-content:after {
+ content: '';
+ display: block;
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNi43ODYgMTguOTkzSDYuNzRjLS40MTQgMC0uNzUtLjM0NC0uNzUtLjc1VjUuNzczYzAtLjQxNS4zMzMtLjc1Ljc1LS43NS4xNjYgMCAuMzIuMDU0LjQ0My4xNDZsMTAuNTEgNi4wNjdjLjM2LjIxLjQ5LjY2Ny4yOCAxLjAyOC0uMDU0LjA5My0uMTI0LjE3LS4yMDYuMjMtLjAzNi4wMzItLjA3Ni4wNjItLjEyLjA4OGwtMTAuNDg1IDYuM2MtLjExOC4wNy0uMjQ3LjEwNy0uMzc2LjExeiIgZmlsbD0iI0ZGRiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+");
+ background-repeat: no-repeat;
+ background-size: 80%;
+ background-position: 50%;
+ width: 10%;
+ height: 0;
+ padding-bottom: 10%;
+ }
+
+ .yvp-cast-playing .yvp-cast-overlay &gt;
+ div .cast-overlay-content:after {
+ background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCAzLjguMyAoMjk4MDIpIC0gaHR0cDovL3d3dy5ib2hlbWlhbmNvZGluZy5jb20vc2tldGNoIC0tPgogICAgPHRpdGxlPnBhdXNlPC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+PC9kZWZzPgogICAgPGcgaWQ9ImRlc2t0b3AiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJwYXVzZSIgZmlsbD0iI0ZGRkZGRiI+CiAgICAgICAgICAgIDxnIGlkPSJSZWN0YW5nbGUtMTMxLSstUmVjdGFuZ2xlLTEzMS1Db3B5IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2LjAwMDAwMCwgNS4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxyZWN0IGlkPSJSZWN0YW5nbGUtMTMxLUNvcHkiIHg9IjguNSIgeT0iMCIgd2lkdGg9IjMiIGhlaWdodD0iMTQiIHJ4PSIxLjUiPjwvcmVjdD4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0wLjUsMS40OTgyNDUyNCBDMC41LDAuNjcwNzg3MjQyIDEuMTY1Nzk3MjMsMCAyLDAgTDIsMCBDMi44Mjg0MjcxMiwwIDMuNSwwLjY3NTI0OTEgMy41LDEuNDk4MjQ1MjQgTDMuNSwxMi41MDE3NTQ4IEMzLjUsMTMuMzI5MjEyOCAyLjgzNDIwMjc3LDE0IDIsMTQgTDIsMTQgQzEuMTcxNTcyODgsMTQgMC41LDEzLjMyNDc1MDkgMC41LDEyLjUwMTc1NDggTDAuNSwxLjQ5ODI0NTI0IFoiIGlkPSJSZWN0YW5nbGUtMTMxLUNvcHkiPjwvcGF0aD4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+")
+ }
+
+ .yvp-cast-overlay &gt;
+ div .cast-overlay-footer {
+ height: 25%;
+ text-align: center;
+ border-top: 1px solid #777
+ }
+
+ .yvp-cast-overlay &gt;
+ div .cast-disconnect-btn {
+ position: relative;
+ top: 8px;
+ cursor: pointer;
+ padding: 2px 5px;
+ color: #999;
+ }
+
+ .yvp-cast-overlay &gt;
+ div .cast-disconnect-btn:hover {
+ color: #fff
+ }
+
+ .yvp-flag-casting .yvp-cast-overlay {
+ display: block
+ }
+
+ .yvp-flag-casting .yvp-bottom-bar {
+ z-index: 75;
+ opacity: 1 !important;
+ -webkit-transition: none !important;
+ -moz-transition: none !important;
+ -o-transition: none !important;
+ transition: none !important;
+ display: block !important
+ }
+
+ body.yvp-lightbox {
+ overflow: hidden !important;
+ }
+
+ body.yvp-lightbox .yvp-lightbox-ancestor {
+ z-index: 2147483647 !important;
+ }
+
+ body.yvp-lightbox .yvp-lightbox-ancestor .yvp-content.yvp-browser-desktop {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100% !important;
+ height: 100% !important;
+ z-index: 2147483647
+ }
+
+ .yvp-stream .yvp-bottom-bar {
+ height: 60px;
+ }
+
+ .yvp-stream .yvp-bottom-bar .yvp-volume-bar-container {
+ z-index: 30
+ }
+
+ .yvp-stream .yvp-bottom-bar .yvp-bottom-container {
+ top: 26px;
+ margin: 0 8px;
+ }
+
+ .yvp-stream .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls {
+ margin-top: 0;
+ }
+
+ .yvp-stream .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-setting-btn,
+ .yvp-stream .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-cc-btn {
+ display: none
+ }
+
+ .yvp-stream .yvp-bottom-bar .yvp-play-controls {
+ padding-top: 0
+ }
+
+ .yvp-stream .yvp-bottom-bar .yvp-visual-seek {
+ display: none !important
+ }
+
+ .yvp-stream .yvp-bottom-bar .yvp-slider {
+ display: none;
+ pointer-events: none
+ }
+
+ .yvp-stream .yvp-bottom-bar .yvp-upnext-container,
+ .yvp-stream .yvp-bottom-bar .yvp-time-container {
+ display: none
+ }
+
+ .yvp-content.yvp-stream .yvp-playing-item-title.yvp-title-standard {
+ padding: 8px 10px 8px 10px;
+ font-weight: 500;
+ font-size: 16px;
+ line-height: 20px;
+ z-index: 29
+ }
+
+ .yvp-ministream .yvp-bottom-bar {
+ height: 25px;
+ }
+
+ .yvp-ministream .yvp-bottom-bar .yvp-volume-bar-container {
+ bottom: 85px;
+ padding: 6px 0;
+ width: 20px;
+ left: 2px;
+ }
+
+ .yvp-ministream .yvp-bottom-bar .yvp-volume-bar-container:after {
+ left: 5px
+ }
+
+ .yvp-ministream .yvp-bottom-bar .yvp-volume-level {
+ margin-left: 7px
+ }
+
+ .yvp-ministream .yvp-bottom-bar .yvp-bottom-container {
+ top: 0;
+ margin: 0 4px;
+ }
+
+ .yvp-ministream .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls {
+ margin-top: 0;
+ }
+
+ .yvp-ministream .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .button {
+ margin-left: 0
+ }
+
+ .yvp-ministream .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-setting-btn,
+ .yvp-ministream .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-cc-btn {
+ display: none
+ }
+
+ .yvp-ministream .yvp-bottom-bar .yvp-play-controls {
+ padding-top: 0
+ }
+
+ .yvp-ministream .yvp-bottom-bar .yvp-visual-seek {
+ display: none !important
+ }
+
+ .yvp-ministream .yvp-bottom-bar .yvp-slider {
+ display: none;
+ pointer-events: none
+ }
+
+ .yvp-ministream .yvp-bottom-bar .yvp-upnext-container,
+ .yvp-ministream .yvp-bottom-bar .yvp-time-container {
+ display: none
+ }
+
+ .yvp-content.yvp-ministream .yvp-playing-item-title.yvp-title-standard {
+ opacity: 0;
+ z-index: 0
+ }
+
+ .yvp-ministream .yvp-start-screen .yvp-start-screen-button,
+ .yvp-stream .yvp-start-screen .yvp-start-screen-button {
+ width: 50px;
+ height: 50px;
+ margin: -25px 0 0 -25px
+ }
+
+ .yvp-ministream.yvp-state-end-screen .yvp-bottom-bar {
+ height: 30px;
+ }
+
+ .yvp-ministream.yvp-state-end-screen .yvp-bottom-bar .yvp-bottom-container {
+ top: 5px
+ }
+
+ .yvp-state-end-screen .yvp-bottom-bar {
+ display: block
+ }
+ </style>
+ <style type="text/css">
+ .yvp-spinner-icon {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSItMjUgLTI1IDEwMCAxMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGc+PHBhdGggZD0iTTI1IDBhMjUgMjUgMCAwIDAgMCA1MCIgc3Ryb2tlLWRhc2hhcnJheT0iNzkiIHN0cm9rZT0iI2FhYSIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiIGZpbGw9Im5vbmUiPjxhbmltYXRlIGlkPSJhMSIgYXR0cmlidXRlVHlwZT0iWE1MIiBhdHRyaWJ1dGVOYW1lPSJzdHJva2UtZGFzaG9mZnNldCIgZnJvbT0iOSIgdG89Ijc2IiBkdXI9Ijc1MG1zIiBiZWdpbj0iMHM7IGEyLmVuZCIgZmlsbD0iZnJlZXplIiBjYWxjTW9kZT0ic3BsaW5lIiBrZXlUaW1lcz0iMDsxIiBrZXlTcGxpbmVzPSIwLjIxNSwgMC42MSwgMC4zNTUsIDEiLz48YW5pbWF0ZSBpZD0iYTIiIGF0dHJpYnV0ZVR5cGU9IlhNTCIgYXR0cmlidXRlTmFtZT0ic3Ryb2tlLWRhc2hvZmZzZXQiIGZyb209Ijc2IiB0bz0iOSIgZHVyPSI3NTBtcyIgYmVnaW49ImExLmVuZCIgZmlsbD0iZnJlZXplIiBjYWxjTW9kZT0ic3BsaW5lIiBrZXlUaW1lcz0iMDsxIiBrZXlTcGxpbmVzPSIwLjIxNSwgMC42MSwgMC4zNTUsIDEiLz48YW5pbWF0ZSBpZD0iYTMiIGF0dHJpYnV0ZVR5cGU9IlhNTCIgYXR0cmlidXRlTmFtZT0ic3Ryb2tlLXdpZHRoIiBmcm9tPSI0IiB0bz0iOCIgZHVyPSI3NTBtcyIgYmVnaW49IjBzOyBhNC5lbmQiIGZpbGw9ImZyZWV6ZSIgY2FsY01vZGU9InNwbGluZSIga2V5VGltZXM9IjA7MSIga2V5U3BsaW5lcz0iMC4yMTUsIDAuNjEsIDAuMzU1LCAxIi8+PGFuaW1hdGUgaWQ9ImE0IiBhdHRyaWJ1dGVUeXBlPSJYTUwiIGF0dHJpYnV0ZU5hbWU9InN0cm9rZS13aWR0aCIgZnJvbT0iOCIgdG89IjQiIGR1cj0iNzUwbXMiIGJlZ2luPSJhMy5lbmQiIGZpbGw9ImZyZWV6ZSIgY2FsY01vZGU9InNwbGluZSIga2V5VGltZXM9IjA7MSIga2V5U3BsaW5lcz0iMC4yMTUsIDAuNjEsIDAuMzU1LCAxIi8+PGFuaW1hdGVUcmFuc2Zvcm0gaWQ9ImE1IiBhdHRyaWJ1dGVUeXBlPSJYTUwiIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiBmcm9tPSIwIDI1IDI1IiB0bz0iMCAyNSAyNSIgZHVyPSI3NTBtcyIgYmVnaW49IjA7IGE4LmVuZCIgY2FsY01vZGU9InNwbGluZSIga2V5VGltZXM9IjA7MSIga2V5U3BsaW5lcz0iMC4yMTUsIDAuNjEsIDAuMzU1LCAxIi8+PGFuaW1hdGVUcmFuc2Zvcm0gaWQ9ImE2IiBhdHRyaWJ1dGVUeXBlPSJYTUwiIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiBmcm9tPSIwIDI1IDI1IiB0bz0iMTgwIDI1IDI1IiBkdXI9Ijc1MG1zIiBiZWdpbj0iYTUuZW5kIiBjYWxjTW9kZT0ic3BsaW5lIiBrZXlUaW1lcz0iMDsxIiBrZXlTcGxpbmVzPSIwLjIxNSwgMC42MSwgMC4zNTUsIDEiLz48YW5pbWF0ZVRyYW5zZm9ybSBpZD0iYTciIGF0dHJpYnV0ZVR5cGU9IlhNTCIgYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIGZyb209IjE4MCAyNSAyNSIgdG89IjE4MCAyNSAyNSIgZHVyPSI3NTBtcyIgYmVnaW49ImE2LmVuZCIgY2FsY01vZGU9InNwbGluZSIga2V5VGltZXM9IjA7MSIga2V5U3BsaW5lcz0iMC4yMTUsIDAuNjEsIDAuMzU1LCAxIi8+PGFuaW1hdGVUcmFuc2Zvcm0gaWQ9ImE4IiBhdHRyaWJ1dGVUeXBlPSJYTUwiIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiBmcm9tPSIxODAgMjUgMjUiIHRvPSIzNjAgMjUgMjUiIGR1cj0iNzUwbXMiIGJlZ2luPSJhNy5lbmQiIGNhbGNNb2RlPSJzcGxpbmUiIGtleVRpbWVzPSIwOzEiIGtleVNwbGluZXM9IjAuMjE1LCAwLjYxLCAwLjM1NSwgMSIvPjwvcGF0aD48cGF0aCBkPSJNMjUgNTBhMjUgMjUgMCAxIDAgMC01MCIgc3Ryb2tlLWRhc2hhcnJheT0iNzkiIHN0cm9rZT0iI2FhYSIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiIGZpbGw9Im5vbmUiPjxhbmltYXRlIGF0dHJpYnV0ZVR5cGU9IlhNTCIgYXR0cmlidXRlTmFtZT0ic3Ryb2tlLWRhc2hvZmZzZXQiIGZyb209IjkiIHRvPSI3NiIgZHVyPSI3NTBtcyIgYmVnaW49IjBzOyBhMi5lbmQiIGZpbGw9ImZyZWV6ZSIgY2FsY01vZGU9InNwbGluZSIga2V5VGltZXM9IjA7MSIga2V5U3BsaW5lcz0iMC4yMTUsIDAuNjEsIDAuMzU1LCAxIi8+PGFuaW1hdGUgYXR0cmlidXRlVHlwZT0iWE1MIiBhdHRyaWJ1dGVOYW1lPSJzdHJva2UtZGFzaG9mZnNldCIgZnJvbT0iNzYiIHRvPSI5IiBkdXI9Ijc1MG1zIiBiZWdpbj0iYTEuZW5kIiBmaWxsPSJmcmVlemUiIGNhbGNNb2RlPSJzcGxpbmUiIGtleVRpbWVzPSIwOzEiIGtleVNwbGluZXM9IjAuMjE1LCAwLjYxLCAwLjM1NSwgMSIvPjxhbmltYXRlIGF0dHJpYnV0ZVR5cGU9IlhNTCIgYXR0cmlidXRlTmFtZT0ic3Ryb2tlLXdpZHRoIiBmcm9tPSI0IiB0bz0iOCIgZHVyPSI3NTBtcyIgYmVnaW49IjBzOyBhNC5lbmQiIGZpbGw9ImZyZWV6ZSIgY2FsY01vZGU9InNwbGluZSIga2V5VGltZXM9IjA7MSIga2V5U3BsaW5lcz0iMC4yMTUsIDAuNjEsIDAuMzU1LCAxIi8+PGFuaW1hdGUgYXR0cmlidXRlVHlwZT0iWE1MIiBhdHRyaWJ1dGVOYW1lPSJzdHJva2Utd2lkdGgiIGZyb209IjgiIHRvPSI0IiBkdXI9Ijc1MG1zIiBiZWdpbj0iYTMuZW5kIiBmaWxsPSJmcmVlemUiIGNhbGNNb2RlPSJzcGxpbmUiIGtleVRpbWVzPSIwOzEiIGtleVNwbGluZXM9IjAuMjE1LCAwLjYxLCAwLjM1NSwgMSIvPjxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZVR5cGU9IlhNTCIgYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIGZyb209IjAgMjUgMjUiIHRvPSIwIDI1IDI1IiBkdXI9Ijc1MG1zIiBiZWdpbj0iMDsgYTguZW5kIiBjYWxjTW9kZT0ic3BsaW5lIiBrZXlUaW1lcz0iMDsxIiBrZXlTcGxpbmVzPSIwLjIxNSwgMC42MSwgMC4zNTUsIDEiLz48YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVUeXBlPSJYTUwiIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiBmcm9tPSIwIDI1IDI1IiB0bz0iMTgwIDI1IDI1IiBkdXI9Ijc1MG1zIiBiZWdpbj0iYTUuZW5kIiBjYWxjTW9kZT0ic3BsaW5lIiBrZXlUaW1lcz0iMDsxIiBrZXlTcGxpbmVzPSIwLjIxNSwgMC42MSwgMC4zNTUsIDEiLz48YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVUeXBlPSJYTUwiIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiBmcm9tPSIxODAgMjUgMjUiIHRvPSIxODAgMjUgMjUiIGR1cj0iNzUwbXMiIGJlZ2luPSJhNi5lbmQiIGNhbGNNb2RlPSJzcGxpbmUiIGtleVRpbWVzPSIwOzEiIGtleVNwbGluZXM9IjAuMjE1LCAwLjYxLCAwLjM1NSwgMSIvPjxhbmltYXRlVHJhbnNmb3JtIGlkPSJhOCIgYXR0cmlidXRlVHlwZT0iWE1MIiBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIHR5cGU9InJvdGF0ZSIgZnJvbT0iMTgwIDI1IDI1IiB0bz0iMzYwIDI1IDI1IiBkdXI9Ijc1MG1zIiBiZWdpbj0iYTcuZW5kIiBjYWxjTW9kZT0ic3BsaW5lIiBrZXlUaW1lcz0iMDsxIiBrZXlTcGxpbmVzPSIwLjIxNSwgMC42MSwgMC4zNTUsIDEiLz48L3BhdGg+PGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlVHlwZT0iWE1MIiBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIHR5cGU9InJvdGF0ZSIgZnJvbT0iMCAyNSAyNSIgdG89IjM2MCAyNSAyNSIgZHVyPSI2NzUwbXMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIi8+PC9nPjwvc3ZnPg==")
+ }
+
+ .yvp-loading-screen {
+ display: none;
+ }
+
+ .yvp-loading-screen .yvp-loading-spinner {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ background-size: 100% 100%;
+ max-width: 60px;
+ max-height: 60px;
+ width: 60px;
+ height: 60px;
+ margin-top: -30px;
+ margin-left: -30px;
+ visibility: hidden;
+ transition: visibility 0s linear 500ms;
+ z-index: 20
+ }
+
+ .yvp-loading-screen.yvp-show-spinner .yvp-loading-spinner {
+ visibility: visible
+ }
+
+ .yvp-flag-loading .yvp-loading-screen,
+ .yvp-flag-switching .yvp-loading-screen {
+ display: block
+ }
+
+ .yvp-state-blocked .yvp-loading-screen {
+ display: none
+ }
+ </style>
+ <style type="text/css">
+ .strip-animate {
+ -webkit-transition: left 420ms cubic-bezier(0, .2, .1, 1);
+ -moz-transition: left 420ms cubic-bezier(0, .2, .1, 1);
+ -o-transition: left 420ms cubic-bezier(0, .2, .1, 1);
+ transition: left 420ms cubic-bezier(0, .2, .1, 1)
+ }
+
+ .yvp-pl-loader {
+ display: none;
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ margin: auto;
+ width: 32px;
+ height: 32px;
+ background-size: 100%
+ }
+
+ .yvp-pl-loader-bg {
+ background-color: rgba(0, 0, 0, 0.3);
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ top: 0;
+ width: 100%;
+ display: none
+ }
+
+ .yvp-pl-loading .yvp-pl-loader,
+ .yvp-pl-loading .yvp-pl-loader-bg {
+ display: block
+ }
+
+ .yvp-playlist-pg-btn {
+ width: 24px;
+ height: 24px;
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODgiIGhlaWdodD0iODgiIHZpZXdCb3g9IjAgMCA4OCA4OCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+cGFnZS1iYWNrPC90aXRsZT48cGF0aCBkPSJNMzkuNDY1IDQzLjk1NmwxOS4xNS0xOS41MmMxLjQ0LTEuNDcgMS40NC0zLjg2IDAtNS4zMzItLjctLjcxMi0xLjYyOC0xLjEwNC0yLjYxNi0xLjEwNC0uOTkgMC0xLjkyLjM5Mi0yLjYxOCAxLjEwNGwtMjQuMzEgMjQuNzgtLjA3Mi4wNzIgMjQuMzggMjQuODVjLjcuNzEyIDEuNjMgMS4xMDQgMi42MTcgMS4xMDQuOTg1IDAgMS45MTUtLjM5MiAyLjYxNi0xLjEwNCAxLjQ0LTEuNDcgMS40NC0zLjg2MyAwLTUuMzMzTDM5LjQ2NSA0My45NTYiIGZpbGw9IiNGRkYiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==");
+ background-position: center;
+ background-repeat: no-repeat;
+ background-size: 100%;
+ position: absolute;
+ top: 55px;
+ cursor: pointer;
+ z-index: 10;
+ opacity: .8;
+ left: 21px;
+ }
+
+ .yvp-playlist-pg-btn:hover {
+ opacity: 1
+ }
+
+ .yvp-playlist-pg-btn.disabled {
+ opacity: .4;
+ cursor: default
+ }
+
+ .yvp-playlist-pg-btn.yvp-playlist-pg-btn-next {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODgiIGhlaWdodD0iODgiIHZpZXdCb3g9IjAgMCA4OCA4OCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+cGFnZS1uZXh0PC90aXRsZT48cGF0aCBkPSJNNDkuMDE4IDQ0LjExOGwtMTkuMTUgMTkuNTE4Yy0xLjQ0IDEuNDctMS40NCAzLjg2MyAwIDUuMzMzLjcuNzEgMS42MjggMS4xMDMgMi42MTYgMS4xMDMuOTkgMCAxLjkxOC0uMzkyIDIuNjE3LTEuMTA0bDI0LjMxLTI0Ljc4LjA3My0uMDcyLTI0LjM4LTI0Ljg1Yy0uNy0uNzEzLTEuNjMtMS4xMDUtMi42MTctMS4xMDUtLjk4NSAwLTEuOTE1LjM5Mi0yLjYxNiAxLjEwNS0xLjQ0IDEuNDctMS40NCAzLjg2MyAwIDUuMzMybDE5LjE0OCAxOS41MTgiIGZpbGw9IiNGRkYiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==");
+ right: 21px;
+ left: auto
+ }
+
+ .yvp-playlist-strip {
+ position: absolute;
+ left: 38px;
+ right: 24px;
+ overflow: hidden
+ }
+
+ .yvp-playlist-strip-list {
+ list-style-type: none;
+ position: relative;
+ left: 0;
+ white-space: nowrap
+ }
+
+ .yvp-pl-meta {
+ opacity: 0;
+ position: absolute;
+ left: 8px;
+ right: 8px;
+ color: #fff;
+ bottom: 6px;
+ overflow: hidden
+ }
+
+ .yvp-pl-title {
+ overflow: hidden;
+ line-height: 16px;
+ -webkit-line-clamp: 2;
+ text-overflow: ellipsis;
+ max-height: 32px;
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ font-size: 13px;
+ vertical-align: bottom;
+ white-space: normal
+ }
+
+ .yvp-pl-provider {
+ display: none
+ }
+
+ .yvp-playlist-item-watched {
+ display: none;
+ width: 126px;
+ top: 0;
+ position: absolute;
+ height: 70px;
+ text-align: center;
+ vertical-align: center;
+ background: rgba(18, 23, 23, 0.75);
+ }
+
+ .yvp-playlist-item-watched.yvp-show {
+ display: block
+ }
+
+ .yvp-playlist-item-watched.yvp-hide {
+ display: none
+ }
+
+ .yvp-watched {
+ font-size: 11px;
+ overflow: hidden;
+ color: #9ea2af;
+ font-style: italic;
+ font-family: Helvetica Neue, Helvetica, helvetica, arial, sans-serif;
+ line-height: 16px;
+ white-space: normal;
+ text-overflow: ellipsis;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ -webkit-transform: translate(-50%, -50%);
+ -moz-transform: translate(-50%, -50%);
+ -ms-transform: translate(-50%, -50%);
+ -o-transform: translate(-50%, -50%);
+ transform: translate(-50%, -50%)
+ }
+
+ .yvp-playlist-mode-hidden {
+ position: absolute;
+ left: -16px;
+ right: -16px;
+ height: auto;
+ bottom: 3000px;
+ opacity: 0;
+ z-index: -20;
+ -webkit-transition: opacity .3s ease-in-out;
+ -moz-transition: opacity .3s ease-in-out;
+ -o-transition: opacity .3s ease-in-out;
+ transition: opacity .3s ease-in-out;
+ }
+
+ .yvp-playlist-mode-hidden .yvp-upnext-title {
+ position: absolute;
+ left: 34px;
+ font-family: Helvetica, helvetica, arial, sans-serif;
+ font-size: 10px;
+ letter-spacing: .3px;
+ line-height: 15px;
+ text-transform: uppercase;
+ color: #fff
+ }
+
+ .yvp-playlist-mode-hidden .yvp-playlist-strip {
+ top: 20px;
+ left: 34px;
+ right: 34px
+ }
+
+ .yvp-playlist-mode-hidden .yvp-playlist-pg-btn {
+ top: 43px;
+ left: 10px;
+ }
+
+ .yvp-playlist-mode-hidden .yvp-playlist-pg-btn.yvp-playlist-pg-btn-next {
+ right: 10px;
+ left: auto
+ }
+
+ .yvp-playlist-mode-hidden .yvp-pl-loader {
+ top: 36px;
+ left: 50%
+ }
+
+ .yvp-playlist-mode-hidden .yvp-playlist-item {
+ width: 126px;
+ height: 70px;
+ display: inline-block;
+ margin-right: 14px;
+ position: relative;
+ cursor: pointer;
+ overflow: hidden;
+ -webkit-transform: translateX(24px) scale(.9, .9);
+ -moz-transform: translateX(24px) scale(.9, .9);
+ -ms-transform: translateX(24px) scale(.9, .9);
+ -o-transform: translateX(24px) scale(.9, .9);
+ transform: translateX(24px) scale(.9, .9);
+ -webkit-transition: transform 420ms cubic-bezier(0, .4, .1, 1);
+ -moz-transition: transform 420ms cubic-bezier(0, .4, .1, 1);
+ -o-transition: transform 420ms cubic-bezier(0, .4, .1, 1);
+ transition: transform 420ms cubic-bezier(0, .4, .1, 1);
+ }
+
+ .yvp-playlist-mode-hidden .yvp-playlist-item.yvp-hide {
+ display: none
+ }
+
+ .yvp-playlist-mode-hidden .yvp-playlist-item .yvp-playlist-item-gradient {
+ height: 100%;
+ top: 0;
+ background-image: -webkit-linear-gradient(180deg, rgba(18, 23, 23, 0) 0%, rgba(18, 23, 23, 0.2) 80%, rgba(18, 23, 23, 0.8) 100%);
+ background-image: -o-linear-gradient(180deg, rgba(18, 23, 23, 0) 0%, rgba(18, 23, 23, 0.2) 80%, rgba(18, 23, 23, 0.8) 100%);
+ background-image: linear-gradient(180deg, rgba(18, 23, 23, 0) 0%, rgba(18, 23, 23, 0.2) 80%, rgba(18, 23, 23, 0.8) 100%)
+ }
+
+ .yvp-playlist-mode-hidden .yvp-playlist-item .yvp-pl-meta {
+ top: 0
+ }
+
+ .yvp-playlist-mode-hidden .yvp-playlist-item .yvp-playlist-item-image {
+ width: 126px;
+ height: 70px;
+ overflow: hidden
+ }
+
+ .yvp-playlist-mode-hidden .yvp-playlist-item .yvp-pl-title,
+ .yvp-playlist-mode-hidden .yvp-playlist-item .yvp-now-playing {
+ display: none;
+ font-size: 12px;
+ color: #fff;
+ letter-spacing: 0;
+ max-height: 48px;
+ line-height: 16px;
+ margin-left: 8px;
+ margin-right: 8px;
+ margin-top: 10px;
+ opacity: 0;
+ }
+
+ .yvp-playlist-mode-hidden .yvp-playlist-item .yvp-pl-title.yvp-show,
+ .yvp-playlist-mode-hidden .yvp-playlist-item .yvp-now-playing.yvp-show {
+ opacity: 1;
+ display: block
+ }
+
+ .yvp-playlist-mode-hidden .yvp-playlist-item .yvp-playlist-border {
+ display: none;
+ height: 70px;
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 5px;
+ background-color: #188fff
+ }
+
+ .yvp-playlist-mode-hidden .yvp-playlist-item.yvp-currently-playing .yvp-playlist-border {
+ display: block
+ }
+
+ .yvp-playlist-mode-hidden .yvp-playlist-item-gradient {
+ position: absolute;
+ height: 22px;
+ width: 100%;
+ bottom: 0;
+ opacity: 1;
+ background-image: -webkit-linear-gradient(180deg, rgba(18, 23, 23, 0) 0%, rgba(18, 23, 23, 0.2) 35%, rgba(18, 23, 23, 0.8) 100%);
+ background-image: -o-linear-gradient(180deg, rgba(18, 23, 23, 0) 0%, rgba(18, 23, 23, 0.2) 35%, rgba(18, 23, 23, 0.8) 100%);
+ background-image: linear-gradient(180deg, rgba(18, 23, 23, 0) 0%, rgba(18, 23, 23, 0.2) 35%, rgba(18, 23, 23, 0.8) 100%)
+ }
+
+ .yvp-playlist-mode-hidden .yvp-pl-meta {
+ position: absolute;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ opacity: 1;
+ color: #fff;
+ overflow: hidden
+ }
+
+ .yvp-playlist-mode-hidden .yvp-pl-dur {
+ display: block;
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ padding: 4px 7px;
+ background: rgba(18, 23, 23, 0.5);
+ color: #fff;
+ text-shadow: 0 0 2px rgba(0, 0, 0, 0);
+ font-size: 12px;
+ font-weight: 400;
+ line-height: 14px
+ }
+
+ .yvp-playlist-mode-hidden .yvp-playlist-item-gradient-duration {
+ height: 50px
+ }
+
+ .yvp-playlist-mode-hidden.yvp-hide-playlist {
+ visibility: hidden
+ }
+
+ .yvp-playlist-mode-bottom {
+ position: relative;
+ height: 83px;
+ border: 1px solid rgba(255, 255, 255, 0.2);
+ -webkit-transition: opacity .3s ease-in-out;
+ -moz-transition: opacity .3s ease-in-out;
+ -o-transition: opacity .3s ease-in-out;
+ transition: opacity .3s ease-in-out;
+ }
+
+ .yvp-playlist-mode-bottom .yvp-playlist-strip {
+ position: relative;
+ height: 83px;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ margin: 0 24px 5px 24px
+ }
+
+ .yvp-playlist-mode-bottom .yvp-playlist-pg-btn {
+ top: 30px;
+ left: 0;
+ }
+
+ .yvp-playlist-mode-bottom .yvp-playlist-pg-btn.yvp-playlist-pg-btn-next {
+ right: 0;
+ left: auto
+ }
+
+ .yvp-playlist-mode-bottom .yvp-pl-loader {
+ top: 30px;
+ left: 50%
+ }
+
+ .yvp-playlist-mode-bottom .yvp-playlist-strip-list {
+ margin-top: 5px
+ }
+
+ .yvp-playlist-mode-bottom .yvp-playlist-item {
+ width: 130px;
+ height: 73px;
+ display: inline-block;
+ margin-right: 14px;
+ position: relative;
+ cursor: pointer;
+ overflow: hidden;
+ border-bottom: 5px solid transparent;
+ }
+
+ .yvp-playlist-mode-bottom .yvp-playlist-item.yvp-currently-playing {
+ border-bottom: 5px solid #188fff
+ }
+
+ .yvp-playlist-mode-bottom .yvp-playlist-item .yvp-playlist-item-image {
+ width: 130px;
+ height: 73px
+ }
+
+ .yvp-playlist-mode-bottom .yvp-playlist-item-gradient {
+ position: absolute;
+ height: 22px;
+ width: 100%;
+ bottom: 0;
+ opacity: 1;
+ background-image: -webkit-linear-gradient(180deg, rgba(18, 23, 23, 0) 0%, rgba(18, 23, 23, 0.2) 35%, rgba(18, 23, 23, 0.8) 100%);
+ background-image: -o-linear-gradient(180deg, rgba(18, 23, 23, 0) 0%, rgba(18, 23, 23, 0.2) 35%, rgba(18, 23, 23, 0.8) 100%);
+ background-image: linear-gradient(180deg, rgba(18, 23, 23, 0) 0%, rgba(18, 23, 23, 0.2) 35%, rgba(18, 23, 23, 0.8) 100%)
+ }
+
+ .yvp-playlist-mode-bottom .yvp-pl-meta {
+ position: absolute;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ opacity: 1;
+ color: #fff;
+ overflow: hidden
+ }
+
+ .yvp-playlist-mode-bottom .yvp-pl-title,
+ .yvp-playlist-mode-bottom .yvp-now-playing {
+ display: none;
+ max-height: 32px;
+ font-size: 13px;
+ margin-left: 6px;
+ margin-right: 5px;
+ margin-bottom: 5px;
+ overflow: hidden;
+ line-height: 16px;
+ vertical-align: bottom;
+ white-space: normal;
+ text-overflow: ellipsis;
+ -webkit-line-clamp: 2;
+ -webkit-box-orient: vertical;
+ opacity: 0;
+ }
+
+ .yvp-playlist-mode-bottom .yvp-pl-title.yvp-show,
+ .yvp-playlist-mode-bottom .yvp-now-playing.yvp-show {
+ opacity: 1;
+ display: block
+ }
+
+ .yvp-playlist-mode-bottom .yvp-pl-dur {
+ display: block;
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ padding: 4px 7px;
+ background: rgba(18, 23, 23, 0.5);
+ color: #fff;
+ text-shadow: 0 0 2px rgba(0, 0, 0, 0);
+ font-size: 12px;
+ font-weight: 400;
+ line-height: 14px
+ }
+
+ .yvp-playlist-mode-bottom .yvp-playlist-item-gradient-duration {
+ height: 50px
+ }
+
+ .yvp-playlist-mode-bottom.yvp-hide-playlist {
+ visibility: hidden
+ }
+
+ .yvp-playlist-mode-right {
+ display: block;
+ height: 100%;
+ width: 318px;
+ position: absolute;
+ top: 0;
+ right: 0;
+ border: 1px solid rgba(255, 255, 255, 0.2);
+ -webkit-transition: opacity .3s ease-in-out;
+ -moz-transition: opacity .3s ease-in-out;
+ -o-transition: opacity .3s ease-in-out;
+ transition: opacity .3s ease-in-out;
+ }
+
+ .yvp-playlist-mode-right ::-webkit-scrollbar-track {
+ -webkit-box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.3);
+ border-radius: 5px;
+ background-color: transparent
+ }
+
+ .yvp-playlist-mode-right ::-webkit-scrollbar {
+ background-color: transparent;
+ width: 5px
+ }
+
+ .yvp-playlist-mode-right ::-webkit-scrollbar-thumb {
+ border-radius: 5px;
+ -webkit-box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.3)
+ }
+
+ .yvp-playlist-mode-right .yvp-playlist-strip {
+ position: relative;
+ height: 100%;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0
+ }
+
+ .yvp-playlist-mode-right .yvp-playlist-pg-btn {
+ display: none
+ }
+
+ .yvp-playlist-mode-right .yvp-pl-loader {
+ top: 49%;
+ left: 49%
+ }
+
+ .yvp-playlist-mode-right .yvp-playlist-strip-list {
+ height: 100%;
+ margin-left: 18px;
+ overflow-y: scroll
+ }
+
+ .yvp-playlist-mode-right .yvp-playlist-item:first-child {
+ border-top: 0 solid transparent
+ }
+
+ .yvp-playlist-mode-right .yvp-playlist-item:last-child {
+ border-bottom: 0 solid transparent
+ }
+
+ .yvp-playlist-mode-right .yvp-playlist-item {
+ height: 70px;
+ display: block;
+ margin-bottom: 18px;
+ position: relative;
+ cursor: pointer;
+ overflow-x: visible;
+ border-bottom: 0 solid transparent;
+ }
+
+ .yvp-playlist-mode-right .yvp-playlist-item.yvp-currently-playing .yvp-pl-meta {
+ color: #fff;
+ background-color: rgba(255, 255, 255, 0.06)
+ }
+
+ .yvp-playlist-mode-right .yvp-playlist-item.yvp-currently-playing .yvp-playlist-border {
+ display: block
+ }
+
+ .yvp-playlist-mode-right .yvp-playlist-item.yvp-currently-playing .yvp-playlist-item-watched {
+ display: none
+ }
+
+ .yvp-playlist-mode-right .yvp-playlist-item:hover .yvp-pl-meta {
+ color: #fff;
+ background-color: rgba(255, 255, 255, 0.06)
+ }
+
+ .yvp-playlist-mode-right .yvp-playlist-item:hover .yvp-playlist-item-watched {
+ display: none
+ }
+
+ .yvp-playlist-mode-right .yvp-playlist-item-image {
+ display: block;
+ width: 126px;
+ height: 70px
+ }
+
+ .yvp-playlist-mode-right .yvp-playlist-border {
+ display: none;
+ height: 70px;
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 5px;
+ background-color: #188fff
+ }
+
+ .yvp-playlist-mode-right .yvp-pl-meta {
+ color: #fff;
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 126px;
+ padding: 4px 12px 0 12px;
+ font-size: 12px;
+ line-height: 16px;
+ overflow: hidden;
+ opacity: 1
+ }
+
+ .yvp-playlist-mode-right .yvp-pl-title {
+ display: block;
+ display: -webkit-box;
+ color: #fff;
+ margin-left: 6px;
+ margin-right: 5px;
+ margin-bottom: 5px;
+ margin-top: 0;
+ line-height: 16px;
+ overflow: hidden;
+ max-height: 32px;
+ opacity: 1;
+ font-size: 13px;
+ font-weight: 500;
+ -webkit-line-clamp: 3;
+ -webkit-box-orient: vertical;
+ vertical-align: bottom;
+ white-space: normal;
+ text-overflow: ellipsis;
+ }
+
+ .yvp-playlist-mode-right .yvp-pl-title.yvp-show {
+ opacity: 1;
+ display: block
+ }
+
+ .yvp-playlist-mode-right .yvp-now-playing {
+ display: none
+ }
+
+ .yvp-playlist-mode-right .yvp-pl-provider {
+ display: block;
+ color: #9ea2af;
+ font-size: 11px;
+ margin: 0;
+ text-overflow: ellipsis;
+ overflow: hidden
+ }
+
+ .yvp-playlist-mode-right .yvp-playlist-item-gradient {
+ position: absolute;
+ height: 22px;
+ width: 100%;
+ bottom: 0;
+ opacity: 1;
+ background-image: -webkit-linear-gradient(180deg, rgba(18, 23, 23, 0) 0%, rgba(18, 23, 23, 0.2) 35%, rgba(18, 23, 23, 0.8) 100%);
+ background-image: -o-linear-gradient(180deg, rgba(18, 23, 23, 0) 0%, rgba(18, 23, 23, 0.2) 35%, rgba(18, 23, 23, 0.8) 100%);
+ background-image: linear-gradient(180deg, rgba(18, 23, 23, 0) 0%, rgba(18, 23, 23, 0.2) 35%, rgba(18, 23, 23, 0.8) 100%)
+ }
+
+ .yvp-playlist-mode-right .yvp-pl-dur {
+ display: block;
+ position: absolute;
+ right: 169px;
+ bottom: 0;
+ padding: 4px 7px;
+ background: rgba(18, 23, 23, 0.5);
+ color: #fff;
+ text-shadow: 0 0 2px rgba(0, 0, 0, 0);
+ font-size: 12px;
+ font-weight: 400;
+ line-height: 14px
+ }
+
+ .yvp-playlist-mode-right .yvp-playlist-item-gradient-duration {
+ height: 50px
+ }
+
+ .yvp-playlist-mode-right.yvp-hide-playlist {
+ visibility: hidden
+ }
+
+ .yvp-playlist-mode-right.yvp-playlist-theme-light .yvp-pl-meta {
+ color: #000
+ }
+
+ .yvp-playlist-mode-right.yvp-playlist-theme-light ::-webkit-scrollbar-thumb {
+ background-color: #ccc
+ }
+
+ .yvp-playlist-mode-right.yvp-playlist-theme-dark ::-webkit-scrollbar-thumb {
+ background-color: #464e56
+ }
+
+ .yvp-playlist-in-stream.yvp-playlist-theme-light ::-webkit-scrollbar-thumb,
+ .yvp-playlist-in-stream.yvp-playlist-theme-dark ::-webkit-scrollbar-thumb {
+ background-color: #ccc
+ }
+
+ .yvp-playlist-mode-bottom.yvp-playlist-theme-light,
+ .yvp-playlist-mode-right.yvp-playlist-theme-light {
+ background-color: #fff;
+ }
+
+ .yvp-playlist-mode-bottom.yvp-playlist-theme-light .yvp-playlist-pg-btn,
+ .yvp-playlist-mode-right.yvp-playlist-theme-light .yvp-playlist-pg-btn {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+cGFnZS1iYWNrLWJsYWNrPC90aXRsZT48cGF0aCBkPSJNMTUuNzE3IDYuNzM2Yy4zNzctLjM5Ny4zNzctMS4wNDIgMC0xLjQzOC0uMTgyLS4xOTItLjQyNS0uMjk4LS42ODMtLjI5OC0uMjU4IDAtLjUuMTA2LS42ODMuMjk4TDggMTEuOThsNi4zNSA2LjcyMmMuMTgzLjE5Mi40MjYuMjk4LjY4NC4yOTguMjU3IDAgLjUtLjEwNi42ODMtLjI5OC4zNzctLjM5Ny4zNzctMS4wNDIgMC0xLjQzOEwxMC43MTUgMTJsNS4wMDItNS4yNjR6IiBmaWxsPSIjMDAwIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=");
+ }
+
+ .yvp-playlist-mode-bottom.yvp-playlist-theme-light .yvp-playlist-pg-btn.yvp-playlist-pg-btn-next,
+ .yvp-playlist-mode-right.yvp-playlist-theme-light .yvp-playlist-pg-btn.yvp-playlist-pg-btn-next {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+cGFnZS1uZXh0PC90aXRsZT48cGF0aCBkPSJNOC4yODMgMTcuMjY0Yy0uMzc3LjM5Ny0uMzc3IDEuMDQyIDAgMS40MzguMTgyLjE5Mi40MjUuMjk4LjY4My4yOTguMjU4IDAgLjUtLjEwNi42ODMtLjI5OEwxNiAxMi4wMiA5LjY1IDUuMjk3QzkuNDY3IDUuMTA2IDkuMjI0IDUgOC45NjYgNWMtLjI1NyAwLS41LjEwNi0uNjgzLjI5OC0uMzc3LjM5Ny0uMzc3IDEuMDQyIDAgMS40MzhMMTMuMjg1IDEybC01LjAwMiA1LjI2NHoiIGZpbGw9IiMwMDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==")
+ }
+
+ .yvp-playlist-mode-bottom.yvp-playlist-theme-light .yvp-pl-loader-bg,
+ .yvp-playlist-mode-right.yvp-playlist-theme-light .yvp-pl-loader-bg {
+ background-color: rgba(0, 0, 0, 0.7)
+ }
+
+ .yvp-playlist-mode-bottom.yvp-playlist-theme-light .yvp-pl-meta,
+ .yvp-playlist-mode-right.yvp-playlist-theme-light .yvp-pl-meta {
+ color: #fff
+ }
+
+ .yvp-playlist-mode-bottom.yvp-playlist-theme-dark,
+ .yvp-playlist-mode-right.yvp-playlist-theme-dark {
+ background-color: #121717
+ }
+
+ .yvp-browser-desktop .yvp-hover-elem {
+ display: none;
+ opacity: .1;
+ position: absolute;
+ bottom: 28px;
+ width: 100%;
+ height: 100px;
+ left: 0
+ }
+
+ .yvp-browser-desktop .yvp-upnext-container:hover .yvp-hover-elem {
+ display: block;
+ background-color: rgba(0, 0, 0, 0)
+ }
+
+ .yvp-browser-desktop .yvp-upnext-container:hover .yvp-playlist-mode-hidden {
+ opacity: 1;
+ z-index: 10;
+ bottom: 140px
+ }
+
+ .yvp-browser-desktop .yvp-playlist-item .yvp-playlist-item-gradient {
+ opacity: 0
+ }
+
+ .yvp-browser-desktop .yvp-playlist-item:hover .yvp-playlist-item-gradient {
+ opacity: 1
+ }
+
+ .yvp-browser-desktop .yvp-playlist-item:hover .yvp-pl-meta {
+ opacity: 1
+ }
+
+ .yvp-browser-desktop .yvp-overlay-fuji {
+ opacity: 0;
+ }
+
+ .yvp-browser-desktop .yvp-overlay-fuji:hover {
+ opacity: 1;
+ }
+
+ .yvp-browser-desktop .yvp-overlay-fuji:hover .yvp-pl-meta {
+ opacity: 1
+ }
+
+ .yvp-browser-desktop .yvp-playlist-mode-hidden .yvp-playlist-item .yvp-playlist-item-gradient,
+ .yvp-browser-desktop .yvp-playlist-mode-bottom .yvp-playlist-item .yvp-playlist-item-gradient {
+ opacity: 1
+ }
+
+ .yvp-browser-desktop .yvp-playlist-mode-hidden .yvp-playlist-item.yvp-currently-playing .yvp-pl-dur,
+ .yvp-browser-desktop .yvp-playlist-mode-bottom .yvp-playlist-item.yvp-currently-playing .yvp-pl-dur {
+ opacity: 0
+ }
+
+ .yvp-browser-desktop .yvp-playlist-mode-hidden .yvp-playlist-item.yvp-currently-playing .yvp-playlist-item-watched,
+ .yvp-browser-desktop .yvp-playlist-mode-bottom .yvp-playlist-item.yvp-currently-playing .yvp-playlist-item-watched {
+ display: none
+ }
+
+ .yvp-browser-desktop .yvp-playlist-mode-hidden .yvp-playlist-item:hover .yvp-playlist-item-gradient,
+ .yvp-browser-desktop .yvp-playlist-mode-bottom .yvp-playlist-item:hover .yvp-playlist-item-gradient {
+ height: 100%;
+ -webkit-transition: opacity 200ms linear;
+ -moz-transition: opacity 200ms linear;
+ -o-transition: opacity 200ms linear;
+ transition: opacity 200ms linear;
+ background-image: -webkit-linear-gradient(180deg, rgba(18, 23, 23, 0.55) 0%, rgba(18, 23, 23, 0.55) 100%);
+ background-image: -o-linear-gradient(180deg, rgba(18, 23, 23, 0.55) 0%, rgba(18, 23, 23, 0.55) 100%);
+ background-image: linear-gradient(180deg, rgba(18, 23, 23, 0.55) 0%, rgba(18, 23, 23, 0.55) 100%)
+ }
+
+ .yvp-browser-desktop .yvp-playlist-mode-hidden .yvp-playlist-item:hover .yvp-playlist-item-image,
+ .yvp-browser-desktop .yvp-playlist-mode-bottom .yvp-playlist-item:hover .yvp-playlist-item-image {
+ -webkit-transform: scale(1.2, 1.2);
+ -moz-transform: scale(1.2, 1.2);
+ -ms-transform: scale(1.2, 1.2);
+ -o-transform: scale(1.2, 1.2);
+ transform: scale(1.2, 1.2);
+ -webkit-transition: transform 2.5s cubic-bezier(.1, .2, .6, 1);
+ -moz-transition: transform 2.5s cubic-bezier(.1, .2, .6, 1);
+ -o-transition: transform 2.5s cubic-bezier(.1, .2, .6, 1);
+ transition: transform 2.5s cubic-bezier(.1, .2, .6, 1)
+ }
+
+ .yvp-browser-desktop .yvp-playlist-mode-hidden .yvp-playlist-item:hover .yvp-pl-title,
+ .yvp-browser-desktop .yvp-playlist-mode-bottom .yvp-playlist-item:hover .yvp-pl-title {
+ display: block;
+ display: -webkit-box;
+ -webkit-line-clamp: 3;
+ -webkit-box-orient: vertical;
+ opacity: 1;
+ -webkit-transition: opacity 200ms linear;
+ -moz-transition: opacity 200ms linear;
+ -o-transition: opacity 200ms linear;
+ transition: opacity 200ms linear
+ }
+
+ .yvp-browser-desktop .yvp-playlist-mode-hidden .yvp-playlist-item:hover .yvp-pl-dur,
+ .yvp-browser-desktop .yvp-playlist-mode-bottom .yvp-playlist-item:hover .yvp-pl-dur {
+ opacity: 0
+ }
+
+ .yvp-browser-desktop .yvp-playlist-mode-hidden .yvp-playlist-item:hover .yvp-playlist-item-watched,
+ .yvp-browser-desktop .yvp-playlist-mode-bottom .yvp-playlist-item:hover .yvp-playlist-item-watched {
+ display: none
+ }
+
+ .yvp-browser-desktop .yvp-playlist-mode-hidden .yvp-playlist-item.yvp-currently-playing .yvp-pl-title,
+ .yvp-browser-desktop .yvp-playlist-mode-bottom .yvp-playlist-item.yvp-currently-playing .yvp-pl-title {
+ display: none
+ }
+
+ .yvp-browser-desktop .yvp-playlist-mode-hidden .yvp-playlist-item.yvp-currently-playing .yvp-playlist-item-gradient {
+ width: calc(100% - 5px);
+ width: -moz-calc(100% - 5px);
+ width: -webkit-calc(100% - 5px);
+ width: -o-calc(100% - 5px);
+ left: 5px;
+ background-image: -webkit-linear-gradient(180deg, rgba(18, 23, 23, 0.55) 0%, rgba(18, 23, 23, 0.55) 100%);
+ background-image: -o-linear-gradient(180deg, rgba(18, 23, 23, 0.55) 0%, rgba(18, 23, 23, 0.55) 100%);
+ background-image: linear-gradient(180deg, rgba(18, 23, 23, 0.55) 0%, rgba(18, 23, 23, 0.55) 100%)
+ }
+
+ .yvp-browser-desktop .yvp-playlist-mode-right .yvp-playlist-item .yvp-playlist-item-gradient {
+ position: static;
+ opacity: 1;
+ width: 0
+ }
+
+ .yvp-browser-desktop.yvp-ie9 .yvp-upnext-container:hover .yvp-playlist-mode-hidden {
+ opacity: 1;
+ z-index: 10;
+ bottom: 140px;
+ background-color: rgba(0, 0, 0, 0)
+ }
+
+ .yvp-browser-desktop.yvp-ie9 .yvp-upnext-container:hover .yvp-playlist-item-gradient {
+ filter: progid: DXImageTransform.Microsoft.gradient(startColorStr=#00000000, endColorStr=#FF000000)
+ }
+
+ .yvp-browser-mobile .yvp-hover-elem {
+ display: none
+ }
+
+ .yvp-browser-mobile .yvp-upnext-playlist.open .yvp-hover-elem {
+ display: none
+ }
+
+ .yvp-browser-mobile .yvp-upnext-playlist.open .yvp-playlist-mode-hidden {
+ opacity: 1;
+ z-index: 10;
+ bottom: 45px
+ }
+
+ .yvp-browser-mobile .yvp-playlist-item-gradient {
+ opacity: 1
+ }
+
+ .yvp-browser-mobile .yvp-pl-meta {
+ opacity: 1
+ }
+
+ .yvp-browser-mobile .yvp-playlist-strip {
+ overyflow-y: hidden;
+ overflow-x: scroll;
+ -webkit-overflow-scrolling: touch
+ }
+
+ .yvp-browser-mobile .yvp-playlist-pg-btn {
+ display: none
+ }
+
+ .yvp-state-end-screen .yvp-start-screen {
+ display: block
+ }
+
+ .yvp-state-end-screen .yvp-start-screen-bar-wrapper {
+ display: none
+ }
+
+ .yvp-state-end-screen .yvp-start-screen-button {
+ display: none
+ }
+
+ .yvp-state-end-screen .yvp-end-screen {
+ z-index: 22;
+ background-color: rgba(0, 0, 0, 0.85);
+ }
+
+ .yvp-state-end-screen .yvp-end-screen.yvp-end-replay {
+ background-color: rgba(18, 23, 23, 0.6)
+ }
+
+ .yvp-state-end-screen .yvp-end-rep-icon {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0xNi44NyAxNS41NDVjLS4xMS0uMTk3LS4yNzQtLjM0NS0uNDctLjQyNS0uMjA0LS4wOS0uNDUtLjA5LS42MS0uMDQtLjEwNy4wMjUtLjIwNS4wNjgtLjMyNy4xNDctLjA3Mi4wNS0uMTcyLjE1LS4yMTYuMjA0LS43NzYgMS4wMTgtMS45OTcgMS42MjctMy4yNjYgMS42MjctMi4yNDQgMC00LjA3LTEuODItNC4wNy00LjA1MyAwLTIuMTMzIDEuNzg3LTMuOTQ3IDMuOTgtNC4wNDNsLjUyLS4wMTNWN2wtLjU1Mi4wMTNDOC41NzMgNy4xMyA2IDkuNzYgNiAxMy4wMDNjMCAzLjMxMiAyLjY5MyA2LjAwNCA2LjAwNSA2LjAwNCAxLjg2NCAwIDMuNTktLjg0NSA0LjctMi4yOGwuMDctLjA5Yy4wMy0uMDQyLjA1My0uMDgyLjA3LS4xMDguMTA0LS4xNjguMTU1LS4zMzQuMTU1LS41MSAwLS4xNi0uMDQzLS4zMi0uMTMtLjQ3NSIvPjxwYXRoIGQ9Ik0xMi4zMTIgMTEuMDA4Yy0uMTcyIDAtLjMxMi0uMTUtLjMxMi0uMzIzVjUuMzIzYzAtLjE4LjEzOC0uMzIzLjMxMi0uMzIzLjA2OCAwIC4xMzIuMDI0LjE4NC4wNjNsNC4zNjUgMi42MWMuMTUyLjA5LjIwNC4yODYuMTE4LjQ0LS4wMjIuMDQtLjA1Mi4wNzUtLjA4Ni4xLS4wMTUuMDE0LS4wMzIuMDI3LS4wNS4wMzhsLTQuMzU1IDIuNzFjLS4wNS4wMy0uMTAzLjA0Ni0uMTU2LjA0OGgtLjAxOHoiLz48L2c+PC9zdmc+");
+ background-size: 100%;
+ opacity: .6;
+ width: 80px;
+ height: 98px;
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ margin: auto;
+ cursor: pointer
+ }
+
+ .yvp-state-end-screen.yvp-stream .yvp-end-rep-icon,
+ .yvp-state-end-screen.yvp-ministream .yvp-end-rep-icon {
+ display: none
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen {
+ position: absolute;
+ margin: auto;
+ left: 0;
+ right: 0;
+ height: 184px;
+ width: 512px;
+ top: 0;
+ bottom: 50px;
+ z-index: 10;
+ opacity: 1;
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen .yvp-playlist-pg-btn {
+ top: 74px;
+ left: -19px;
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen .yvp-playlist-pg-btn.yvp-playlist-pg-btn-next {
+ right: 0;
+ left: auto;
+ right: -15px
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen .yvp-playlist-strip {
+ position: absolute;
+ left: 18px;
+ right: 14px;
+ height: 100%;
+ bottom: 0
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen .yvp-playlist-strip-list {
+ height: 100%;
+ margin-right: 0;
+ width: 500px
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen .yvp-playlist-item {
+ width: 100%;
+ display: inline-block;
+ position: relative;
+ height: 100%
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen .yvp-pl-loader {
+ top: 35px;
+ left: 50%
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen .yvp-end-screen-fuji-grid {
+ width: 100%;
+ height: 100%;
+ list-style-type: none;
+ white-space: normal;
+ text-align: left;
+ overflow: hidden
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen .yvp-end-screen-fuji-tile {
+ position: relative;
+ width: 150px;
+ height: 84px;
+ cursor: pointer;
+ float: left;
+ margin-right: 10px;
+ overflow: hidden;
+ margin-bottom: 10px;
+ padding: 0
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen .yvp-end-screen-fuji-tile-image {
+ width: 151px
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen .yvp-overlay-fuji {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ color: #fff;
+ font-size: 13px;
+ line-height: 14px;
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen .yvp-overlay-fuji.yvp-overlay-fuji-up-next {
+ background-color: rgba(0, 0, 0, 0.6);
+ opacity: 1
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen .yvp-metadata-fuji {
+ position: absolute;
+ top: 30px;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.8))
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen .yvp-end-screen-up-next-box {
+ position: absolute;
+ top: 8px;
+ left: 8px;
+ font-size: 13px;
+ line-height: 14px;
+ text-align: left;
+ width: 80px
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen .yvp-end-screen-up-next-time {
+ position: relative;
+ margin-top: 6px;
+ display: inline-block;
+ left: 8px
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen .yvp-end-screen-up-next-text {
+ position: relative;
+ margin-top: 5px;
+ display: inline-block;
+ left: 19px
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen .yvp-end-screen-up-close {
+ position: relative;
+ left: 57px;
+ font-weight: 500;
+ font-size: 19px;
+ opacity: .6;
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen .yvp-end-screen-up-close:hover {
+ opacity: 1
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen.yvp-pl-two-col {
+ height: 84px;
+ width: 347px;
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen.yvp-pl-two-col .yvp-playlist-pg-btn {
+ top: 35px
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen.yvp-pl-two-col .yvp-playlist-strip-list {
+ width: 332px
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen.yvp-pl-one-col {
+ height: 84px;
+ width: 178px;
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen.yvp-pl-one-col .yvp-playlist-pg-btn {
+ top: 35px
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen.yvp-pl-one-col .yvp-playlist-strip-list {
+ width: 158px
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen.yvp-pl-three-col {
+ height: 284px;
+ width: 678px;
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen.yvp-pl-three-col .yvp-playlist-pg-btn {
+ top: 135px
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen.yvp-pl-three-col .yvp-playlist-strip-list {
+ width: 666px
+ }
+
+ .yvp-browser-mobile.yvp-browser-playsinline .yvp-end-rep-icon {
+ display: block
+ }
+
+ .yvp-content div.yvp-end-screen-up-next-circle {
+ width: 20px;
+ height: 20px;
+ -moz-border-radius: 20px;
+ -webkit-border-radius: 20px;
+ border-radius: 20px;
+ border: 2px solid rgba(255, 255, 255, 0.9);
+ display: block;
+ position: absolute;
+ top: 0;
+ left: 0
+ }
+
+ .yvp-content div.yvp-end-screen-arc {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100px;
+ height: 100px;
+ border-radius: 100%;
+ border: 1px solid;
+ display: none
+ }
+
+ .yvp-playlist-in-stream.yvp-playlist-mode-right.yvp-playlist-theme-dark,
+ .yvp-playlist-in-stream.yvp-playlist-mode-right.yvp-playlist-theme-light {
+ background-color: #fff
+ }
+
+ .yvp-playlist-in-stream.yvp-playlist-mode-right {
+ width: 276px;
+ }
+
+ .yvp-playlist-in-stream.yvp-playlist-mode-right .yvp-playlist-strip-list {
+ margin-left: 16px
+ }
+
+ .yvp-playlist-in-stream.yvp-playlist-mode-right .yvp-playlist-item {
+ height: 72px;
+ margin-bottom: 20px;
+ }
+
+ .yvp-playlist-in-stream.yvp-playlist-mode-right .yvp-playlist-item .yvp-playlist-item-image {
+ width: 130px;
+ height: 73px
+ }
+
+ .yvp-playlist-in-stream.yvp-playlist-mode-right .yvp-playlist-item .yvp-pl-meta {
+ left: 130px
+ }
+
+ .yvp-playlist-in-stream.yvp-playlist-mode-right .yvp-playlist-item .yvp-pl-title {
+ color: #000667
+ }
+
+ .yvp-playlist-in-stream.yvp-playlist-mode-right .yvp-playlist-item .yvp-playlist-border {
+ height: 72px
+ }
+
+ .yvp-playlist-in-stream.yvp-playlist-mode-right .yvp-playlist-item .yvp-pl-dur {
+ right: 125px;
+ padding: 2px 6px;
+ color: #fff
+ }
+
+ .yvp-playlist-in-stream.yvp-playlist-mode-right .yvp-playlist-item .yvp-pl-provider {
+ display: none
+ }
+ </style>
+ <style type="text/css">
+ .yvp-content {
+ position: relative;
+ width: 100%;
+ height: 100%;
+ overflow: visible;
+ font-family: Helvetica Neue Regular, Helvetica Neue, helvetica, arial, sans-serif;
+ font-size: 16px;
+ text-align: initial;
+ cursor: default;
+ background-color: #000;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none
+ }
+
+ .yvp-content .yvp-main,
+ .yvp-content .yvp-playlist-container {
+ outline: none;
+ }
+
+ .yvp-content .yvp-main [tabindex],
+ .yvp-content .yvp-playlist-container [tabindex] {
+ outline: none
+ }
+
+ .yvp-content h3,
+ .yvp-content h4,
+ .yvp-content p,
+ .yvp-content label,
+ .yvp-content input,
+ .yvp-content div,
+ .yvp-content button,
+ .yvp-content img,
+ .yvp-content li,
+ .yvp-content ul {
+ margin: 0;
+ padding: 0;
+ border: 0
+ }
+
+ .yvp-main {
+ position: relative;
+ width: 100%;
+ height: 100%
+ }
+
+ .yvp-state-error .yvp-error-screen {
+ -webkit-user-select: text;
+ -moz-user-select: text;
+ -ms-user-select: text;
+ user-select: text;
+ display: block
+ }
+
+ .yvp-state-error .yvp-start-screen,
+ .yvp-state-error .yvp-end-screen,
+ .yvp-state-error .yvp-html5-video,
+ .yvp-state-error .yvp-end-screen-fuji {
+ display: none
+ }
+
+ .yvp-state-end-screen .yvp-end-screen,
+ .yvp-state-end-screen .yvp-end-screen-fuji {
+ display: block
+ }
+
+ .yvp-state-end-screen .yvp-error-screen,
+ .yvp-state-end-screen .yvp-html5-video {
+ display: none
+ }
+
+ .yvp-state-video .yvp-html5-video,
+ .yvp-state-blocked .yvp-html5-video,
+ .yvp-flag-playing.yvp-state-video.yvp-browser-iphone .yvp-html5-video {
+ display: block
+ }
+
+ .yvp-state-video .yvp-start-screen,
+ .yvp-state-blocked .yvp-start-screen,
+ .yvp-flag-playing.yvp-state-video.yvp-browser-iphone .yvp-start-screen,
+ .yvp-state-video .yvp-end-screen,
+ .yvp-state-blocked .yvp-end-screen,
+ .yvp-flag-playing.yvp-state-video.yvp-browser-iphone .yvp-end-screen,
+ .yvp-state-video .yvp-error-screen,
+ .yvp-state-blocked .yvp-error-screen,
+ .yvp-flag-playing.yvp-state-video.yvp-browser-iphone .yvp-error-screen,
+ .yvp-state-video .yvp-end-screen-fuji,
+ .yvp-state-blocked .yvp-end-screen-fuji,
+ .yvp-flag-playing.yvp-state-video.yvp-browser-iphone .yvp-end-screen-fuji {
+ display: none
+ }
+
+ .yvp-flag-casting .yvp-start-screen,
+ .yvp-flag-casting .yvp-end-screen,
+ .yvp-flag-casting .yvp-end-screen-fuji {
+ display: none
+ }
+
+ .yvp-state-start-screen .yvp-start-screen,
+ .yvp-state-video.yvp-browser-iphone .yvp-start-screen {
+ display: block
+ }
+
+ .yvp-state-start-screen .yvp-end-screen,
+ .yvp-state-video.yvp-browser-iphone .yvp-end-screen,
+ .yvp-state-start-screen .yvp-error-screen,
+ .yvp-state-video.yvp-browser-iphone .yvp-error-screen,
+ .yvp-state-start-screen .yvp-html5-video:not([playsinline]),
+ .yvp-state-video.yvp-browser-iphone .yvp-html5-video:not([playsinline]),
+ .yvp-state-start-screen .yvp-end-screen-fuji,
+ .yvp-state-video.yvp-browser-iphone .yvp-end-screen-fuji {
+ display: none
+ }
+
+ .yvp-state-start-screen .yvp-html5-video:not([playsinline]),
+ .yvp-state-video.yvp-browser-iphone .yvp-html5-video:not([playsinline]) {
+ top: -2000px
+ }
+
+ object.yvp-swf-not-ready.yvp-flash-video {
+ opacity: 0
+ }
+
+ .yvp-state-video {
+ z-index: 5
+ }
+
+ .yvp-content {
+ z-index: 0
+ }
+
+ .yvp-html5-video {
+ z-index: 5
+ }
+
+ .yvp-switching-canvas {
+ z-index: 15
+ }
+
+ .yvp-loading-screen .yvp-spinner-outer,
+ .yvp-loading-screen .yvp-spinner-inner {
+ z-index: 20
+ }
+
+ .yvp-flash-video {
+ position: absolute;
+ left: 0;
+ visibility: visible
+ }
+
+ .yvp-html5-video {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ top: 0;
+ cursor: pointer;
+ visibility: hidden
+ }
+
+ .yvp-flash-video.yvp-renderer-active,
+ .yvp-html5-video.yvp-renderer-active {
+ visibility: visible
+ }
+
+ .yvp-switching-canvas {
+ position: absolute
+ }
+
+ .yvp-start-screen,
+ .yvp-end-screen {
+ position: absolute;
+ height: 100%;
+ width: 100%;
+ background-color: #000;
+ cursor: pointer;
+ overflow: hidden
+ }
+
+ .yvp-nfl-branding-container {
+ width: 100%;
+ height: 36px;
+ position: relative;
+ z-index: 22;
+ background: #011832;
+ background: -moz-linear-gradient(left, #011832 0%, #103155 40%, #011832 100%);
+ background-image: -webkit-linear-gradient(left, #011832 0%, #103155 40%, #011832 100%);
+ background-image: -o-linear-gradient(left, #011832 0%, #103155 40%, #011832 100%);
+ background-image: linear-gradient(left, #011832 0%, #103155 40%, #011832 100%);
+ *background: #011832;
+ white-space: nowrap
+ }
+
+ .yvp-browser-mobile .yvp-nfl-branding-container {
+ height: 52px
+ }
+
+ .yvp-nfl-branding {
+ position: relative;
+ margin: 10px auto;
+ vertical-align: middle;
+ display: inline-block;
+ zoom: 1;
+ width: 30%
+ }
+
+ .yvp-browser-mobile .yvp-nfl-branding {
+ margin: 15px auto
+ }
+
+ .yvp-nfl-branding-container .yvp-nfl-brand-span {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCI+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTkuOTgzIDE5LjM4cy40MTctLjcyLjgyNC0xLjExMmMuNTc0LS41NSAxLjM5LS44OTcgMi40OS0xLjA1NiAxLjM4Mi0uMiAyLjM4NS0uNjcgMi45NzYtMS4zODIuNDc4LS41OC41NS0xLjE2Mi41NS0xLjQ1NlYyLjcyN2gtLjQ1NGMtLjU5LjQyLTEuNzE1Ljk5Ni0zLjE2LjY0QzEwLjcgMi43NSA5Ljk4Mi41ODggOS45ODIuNTg4UzkuMjY4IDIuNzUgNi43NiAzLjM2NWMtMS40NS4zNTctMi41NzQtLjIyLTMuMTYyLS42NGgtLjQ1MnYxMS42NDhjMCAuMjkzLjA3Mi44NzUuNTUgMS40NTYuNTkuNzEzIDEuNTkgMS4xOCAyLjk3NCAxLjM4MiAxLjEwMy4xNTggMS45MTcuNTA1IDIuNDkyIDEuMDU4LjQyMi40MDYuODIgMS4xMS44MiAxLjExIi8+PHBhdGggZmlsbD0iIzAxMzc2OSIgZD0iTTE2LjQxMyAzLjE4MnMtMS4zNzMgMS4wNjYtMy4zMDMuNTgzYy0yLjI1Mi0uNTYyLTMuMTI3LTIuMjUtMy4xMjctMi4yNXMtLjg3NCAxLjY4OC0zLjEyNSAyLjI1Yy0xLjkzLjQ4My0zLjMwMi0uNTgzLTMuMzAyLS41ODN2MTEuMTkyYzAgLjM4LjE2IDEuOTk1IDMuMTcyIDIuNDMyIDEuMTkuMTcyIDIuMDguNTU1IDIuNzIgMS4xNy4yMjguMjE4LjQwMy40NC41MzYuNjUuMTMzLS4yMS4zMDgtLjQzMi41NC0uNjUuNjM2LS42MTUgMS41MjUtLjk5OCAyLjcxNC0xLjE3IDMuMDE1LS40MzYgMy4xNzQtMi4wNSAzLjE3NC0yLjQzMlYzLjE4MnoiLz48cGF0aCBmaWxsPSIjRkZGIiBkPSJNOS45ODMgMTcuNDg2cy44NzUtMS4wOCAzLjE0Ni0xLjQzMmMyLjYwMy0uNCAyLjUyNi0xLjYyMiAyLjUyNi0xLjY4M1Y4LjUxTDQuMzEgOC41MXY1Ljg2YzAgLjA2My0uMDc1IDEuMjg1IDIuNTI3IDEuNjg1IDIuMjcyLjM1IDMuMTQ2IDEuNDMgMy4xNDYgMS40MyIvPjxwYXRoIGZpbGw9IiNENTBBMEEiIGQ9Ik03LjMzOCAxMi43OTN2LTIuNzg2bC0uMzUtLjE5N3YtLjcyNWgxLjU5NHYuNzI1bC0uMzMzLjE5N3Y1LjY4NmwtLjg1My0uMjU1LTEuMjMtMy42MzN2Mi4zOTNsLjM5LjN2Ljc0bC0xLjcxLS40MzZ2LS42MjdsLjM5LS4xNTZ2LTQuMDFsLS40LS4ydi0uNzI1aDEuMjk1TTEwLjI3MyAxNS4zNDRsLjM0LjQwN3YuNzI1bC0xLjY5My0uNjMzdi0uNjEzbC4zNzUtLjE1NnYtNS4wNjdsLS4zNzItLjE5di0uNzMyaDIuOTR2MS40NzNoLS42NDdsLS4xOTUtLjYwNGgtLjc0N3YxLjdoLjU2bC4yMi0uMzJoLjQ1MnYxLjUxaC0uNDVsLS4yMTQtLjMwNmgtLjU2N00xMi4xNDMgMTUuNTk4di0uNzIzbC40Mi0uMzQ1di00LjUyM2wtLjM2LS4xOXYtLjczMmgxLjY5M3YuNzMzbC0uMzMuMTl2NC4yNDJsLjcyOC0uMTk2LjEzNy0xLjExMmguN3YxLjg2Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTQuNjA1IDcuMzA4bC0uNTEyLS4zODVoLjYyOGwuMjA3LS41OTMuMjA4LjU5M2guNjI2bC0uNTEuMzg1LjE4Ny42MDUtLjUxLS4zNTgtLjUxLjM1OE02LjgzMyA3LjMwOGwtLjUxNS0uMzg1aC42MjhsLjIwNy0uNTkzLjIwOC41OTNoLjYyN2wtLjUxMy4zODUuMTkuNjA1LS41MS0uMzU4LS41MS4zNThNNC42MDUgNS4zbC0uNTEyLS4zODRoLjYyOGwuMjA3LS41OTQuMjA4LjU5NGguNjI2bC0uNTEuMzg1LjE4Ny42MDQtLjUxLS4zNi0uNTEuMzZNNi44MzMgNS4zbC0uNTE1LS4zODRoLjYyOGwuMjA3LS41OTQuMjA4LjU5NGguNjI3bC0uNTEzLjM4NS4xOS42MDQtLjUxLS4zNi0uNTEuMzZNMTUuNTUgNy45MTNsLS41MS0uMzU4LS41MS4zNTguMTktLjYwNS0uNTEyLS4zODVoLjYyNmwuMjA2LS41OTMuMjEuNTkzaC42MjZsLS41MTUuMzg1TTEzLjMyNiA3LjkxM2wtLjUxLS4zNTgtLjUxLjM1OC4xODctLjYwNS0uNTE0LS4zODVoLjYyNmwuMjEtLjU5My4yMDYuNTkzaC42MjdsLS41MTUuMzg1TTE1LjU1IDUuOTA0bC0uNTEtLjM2LS41MS4zNi4xOS0uNjAzLS41MTItLjM4NGguNjI2bC4yMDYtLjU5NC4yMS41OTRoLjYyNmwtLjUxNS4zODVNMTMuMzI2IDUuOTA0bC0uNTEtLjM2LS41MS4zNi4xODctLjYwMy0uNTE0LS4zODRoLjYyNmwuMjEtLjU5NC4yMDYuNTk0aC42MjdsLS41MTUuMzg1TTEwLjQ3MiA0Ljg2M2MtLjIyOC0uMTg3LS40ODUtLjMxLS43NTctLjM2OC4wNjUtLjA2My4xMzQtLjExNS4xOTItLjE2NC4zNC4wOC41Ny4yMzQuNzI1LjM2NS0uMDU1LjA1NS0uMTEuMTEyLS4xNi4xNjhtLS4zMy40Yy0uMjE3LS4xODctLjQ4LS4zMi0uNzgzLS4zOC4wNDUtLjA2LjEtLjEyNC4xNS0uMTguMjMuMDQuNTIyLjE2Ljc4LjM3LS4wNTMuMDY0LS4xMDIuMTI2LS4xNDguMTltLS4yOTYuNDE1Yy0uMjM1LS4xOTctLjUwOC0uMzE3LS43NzgtLjM3IDAgMCAuMDgyLS4xMzMuMTI4LS4yMDIuMzMuMDY1LjU5Ny4yMTguNzgyLjM3Ny0uMDQ3LjA2Ny0uMDkyLjEzMi0uMTMyLjE5NW0xLjU1Mi0xLjk5cy0uMjY3LjE0LS42MzcuNTAyYy4wODQuMDUuMTc4LjExNS4yMzIuMTYtLjA1Ny4wNS0uMTEzLjEwNC0uMTY3LjE1NC0uMjQtLjE5OC0uNDkyLS4zLS42ODUtLjM0OC4wNjQtLjA0NS4xMzMtLjA5Mi4yLS4xMzMuMTA0LjAyNC4yMDcuMDY3LjIwNy4wNjcuNDE4LS4zMi43OC0uNDU3Ljc4LS40NTdzLS4wNDItLjAyLS4xNTMtLjAyYy0xLjY0OC4wMjItMy4xNjUgMS4yNS0yLjg4IDMuMzU2LjAzNC4yMi4xMi42MjguMjMuODA1LjAzOC0uMzUuMTctMS4xMjQuNTYtMS45NTYtLjEzNy0uMDUtLjI1LS4wNy0uMjUtLjA3LjA0LS4wODMuMDk2LS4xOS4wOTYtLjE5LjI4OC4wNTUuNTQyLjE3Ny43NjQuMzUtLjA1Mi4wODYtLjA4OC4xNC0uMTE0LjE4OC0uMDgtLjA2My0uMTU3LS4xMTQtLjI0Mi0uMTYzLS40NC43NjctLjY0NCAxLjQ5My0uNzI4IDEuODcyLjAwNi4wMjIuMDUzLjAzNi4wOTMuMDMgMS44MDQtLjIzNSAyLjY1LTEuMTU0IDIuOTA1LTIuMTUyLjE3LS42NTQuMTE0LTEuMzM3LS4xMTItMS44OTYtLjAxNi0uMDQtLjA0Ni0uMTA1LS4wOTgtLjEiLz48L3N2Zz4=");
+ background-repeat: no-repeat;
+ position: absolute;
+ width: 20px;
+ height: 20px;
+ margin: -2px 0 0 10px
+ }
+
+ .yvp-browser-mobile .yvp-nfl-branding-container .yvp-nfl-brand-span {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCI+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTE1IDI5LjA5MnMuNjI0LTEuMDggMS4yMzQtMS42NjhjLjg2Mi0uODI3IDIuMDg0LTEuMzQ2IDMuNzM2LTEuNTg0IDIuMDczLS4zIDMuNTc2LTEgNC40NjMtMi4wNzIuNzE1LS44NzIuODIzLTEuNzQuODI1LTIuMTg0VjQuMTE0aC0uNjgzYy0uODguNjMtMi41NjggMS40OTMtNC43MzguOTU4QzE2LjA3NSA0LjE0OCAxNSAuOTA2IDE1IC45MDZzLTEuMDc2IDMuMjQtNC44MzcgNC4xNjZjLTIuMTczLjUzNS0zLjg2LS4zMy00Ljc0Mi0uOTZoLS42Nzh2MTcuNDcyYzAgLjQ0LjEwOCAxLjMxMi44MjUgMi4xODQuODg1IDEuMDcyIDIuMzg2IDEuNzcgNC40NiAyLjA3MiAxLjY1NS4yMzggMi44NzYuNzU3IDMuNzM4IDEuNTg4LjYzMy42MDggMS4yMzQgMS42NjQgMS4yMzQgMS42NjQiLz48cGF0aCBmaWxsPSIjMDEzNzY5IiBkPSJNMjQuNjQgNC43OTZzLTIuMDU2IDEuNi00Ljk1Ljg3NUMxNi4zMSA0LjgzIDE1IDIuMjk4IDE1IDIuMjk4cy0xLjMxMiAyLjUzLTQuNjkgMy4zNzRjLTIuODk3LjcyNS00Ljk1My0uODc0LTQuOTUzLS44NzR2MTYuNzg4YzAgLjU3LjI0IDIuOTkzIDQuNzU4IDMuNjQ2IDEuNzg2LjI2IDMuMTIuODMyIDQuMDc4IDEuNzU0LjM0NC4zMy42MDYuNjY2LjgwNS45NzguMi0uMzEyLjQ2LS42NDguODA4LS45NzguOTU2LS45MjIgMi4yOS0xLjQ5NCA0LjA3NC0xLjc1NCA0LjUyLS42NTIgNC43Ni0zLjA3NiA0Ljc2LTMuNjQ2VjQuNzk2eiIvPjxwYXRoIGZpbGw9IiNGRkYiIGQ9Ik0xNSAyNi4yNTNzMS4zMS0xLjYyMiA0LjcyLTIuMTQ3YzMuOTAzLS42IDMuNzg4LTIuNDMzIDMuNzg4LTIuNTI1di04Ljc5NGwtMTcuMDIuMDAydjguNzkyYzAgLjA5My0uMTEyIDEuOTI1IDMuNzkgMi41MjUgMy40MS41MjYgNC43MiAyLjE0OCA0LjcyIDIuMTQ4Ii8+PHBhdGggZmlsbD0iI0Q1MEEwQSIgZD0iTTExLjAzIDE5LjIxM3YtNC4xOGwtLjUyMy0uMjk1VjEzLjY1aDIuMzl2MS4wODhsLS41LjI5NXY4LjUzbC0xLjI3OC0uMzg0LTEuODQ3LTUuNDV2My41OWwuNTg2LjQ1MnYxLjExbC0yLjU2NS0uNjU3di0uOTRsLjU4Ni0uMjMydi02LjAxNWwtLjYtLjNWMTMuNjVoMS45NE0xNS40MzIgMjMuMDM4bC41MS42MXYxLjA4NmwtMi41MzgtLjk0OHYtLjkybC41Ni0uMjN2LTcuNjAzbC0uNTU2LS4yODN2LTEuMWg0LjQwOHYyLjIxaC0uOTY4bC0uMjk1LS45MDdoLTEuMTJ2Mi41NTJoLjg0bC4zMy0uNDg0aC42Nzd2Mi4yN2gtLjY3NmwtLjMyLS40NmgtLjg1Mk0xOC4yMzYgMjMuNDJ2LTEuMDg1bC42My0uNTE3di02Ljc4NWwtLjU0LS4yODN2LTEuMWgyLjU0MnYxLjFsLS40OTcuMjgzdjYuMzY0bDEuMDkzLS4yOTMuMjA3LTEuNjdoMS4wNXYyLjc5Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTYuOTMyIDEwLjk4NmwtLjc3LS41OGguOTQybC4zMS0uODg4LjMxMi44OWguOTRsLS43Ny41NzguMjgzLjkwNy0uNzY3LS41MzctLjc2NC41MzdNMTAuMjcyIDEwLjk4NmwtLjc3LS41OGguOTRsLjMxLS44ODguMzEyLjg5aC45NGwtLjc3LjU3OC4yODUuOTA3LS43NjctLjUzNy0uNzY0LjUzN002LjkzMiA3Ljk3NWwtLjc3LS41NzhoLjk0MmwuMzEtLjg5LjMxMi44OWguOTRsLS43Ny41NzguMjgzLjkwNS0uNzY3LS41NC0uNzY0LjU0TTEwLjI3MiA3Ljk3NWwtLjc3LS41NzhoLjk0bC4zMS0uODkuMzEyLjg5aC45NGwtLjc3LjU3OC4yODUuOTA1LS43NjctLjU0LS43NjQuNTRNMjMuMzQ4IDExLjg5M2wtLjc2NC0uNTM4LS43NjYuNTM4LjI4NC0uOTA3LS43Ny0uNTc4aC45NGwuMzEyLS44OS4zMS44OWguOTQybC0uNzcuNTc4TTIwLjAxIDExLjg5M2wtLjc2NC0uNTM4LS43NjcuNTM4LjI4NC0uOTA3LS43NzItLjU3OGguOTRsLjMxNC0uODkuMzEuODloLjk0bC0uNzcuNTc4TTIzLjM0OCA4Ljg4bC0uNzY0LS41NC0uNzY2LjU0LjI4NC0uOTA1LS43Ny0uNTc4aC45NGwuMzEyLS44OS4zMS44OWguOTQybC0uNzcuNTc4TTIwLjAxIDguODhsLS43NjQtLjU0LS43NjcuNTQuMjg0LS45MDUtLjc3Mi0uNTc4aC45NGwuMzE0LS44OS4zMS44OWguOTRsLS43Ny41NzhNMTUuNzMgNy4zMThjLS4zNDItLjI4LS43MjctLjQ2NC0xLjEzNS0uNTUyLjEtLjA5NC4yMDItLjE3Mi4yODgtLjI0Ny41MS4xMi44NTQuMzUgMS4wODguNTQ1LS4wOC4wODQtLjE2My4xNy0uMjQuMjUzbS0uNDkzLjU5OGMtLjMyNy0uMjgtLjcyNC0uNDgtMS4xNzUtLjU3LjA3LS4wODguMTUtLjE4NS4yMjgtLjI3LjM0My4wNi43ODIuMjQgMS4xNjcuNTU3LS4wOC4wOTYtLjE1Mi4xOS0uMjIuMjgzbS0uNDQ1LjYyNGMtLjM1My0uMjk1LS43NjMtLjQ3NS0xLjE2Ni0uNTUzIDAgMCAuMTIyLS4yMDIuMTkzLS4zMDQuNDkuMDk2Ljg5My4zMjcgMS4xNy41NjQtLjA3LjEtLjEzOC4yLS4xOTguMjkzbTIuMzI4LTIuOTgzcy0uNC4yMDgtLjk1Ni43NTNjLjEyNi4wNzQuMjY4LjE3LjM0OC4yNC0uMDg1LjA3Mi0uMTcuMTU0LS4yNS4yMy0uMzYtLjMtLjczOC0uNDUtMS4wMy0uNTIzLjA5Ny0uMDY3LjItLjEzOC4zMDItLjIuMTU2LjAzNy4zMS4xLjMxLjEuNjI3LS40NzggMS4xNy0uNjg2IDEuMTctLjY4NnMtLjA2Mi0uMDMtLjIzLS4wMjhjLTIuNDcuMDMzLTQuNzQ2IDEuODc2LTQuMzE4IDUuMDM0LjA0OC4zMzQuMTc2Ljk0NC4zNDMgMS4yMS4wNTQtLjUyNi4yNTItMS42ODcuODM4LTIuOTM0LS4yMDUtLjA3My0uMzc1LS4xMDMtLjM3NS0uMTAzLjA2Mi0uMTI3LjE0NS0uMjg2LjE0NS0uMjg2LjQzMy4wODIuODE0LjI2NSAxLjE0Ni41MjUtLjA3OC4xMjctLjEzMy4yMS0uMTcuMjgtLjExOC0uMDk0LS4yMzYtLjE3LS4zNjQtLjI0NC0uNjYgMS4xNS0uOTY1IDIuMjQtMS4wOSAyLjgwOC4wMDguMDM0LjA3OC4wNTMuMTM4LjA0NSAyLjcwNi0uMzUzIDMuOTczLTEuNzMgNC4zNTgtMy4yMy4yNTMtLjk4LjE3Mi0yLjAwNS0uMTY4LTIuODQ0LS4wMjQtLjA1Ny0uMDctLjE1Ni0uMTQ4LS4xNSIvPjwvc3ZnPg==");
+ background-repeat: no-repeat;
+ width: 30px;
+ height: 30px
+ }
+
+ .yvp-nfl-branding-container .yvp-nfl-brand-logo {
+ background-image: url("data:image/svg+xml;base64,PCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIiBbCgk8IUVOVElUWSBuc19leHRlbmQgImh0dHA6Ly9ucy5hZG9iZS5jb20vRXh0ZW5zaWJpbGl0eS8xLjAvIj4KCTwhRU5USVRZIG5zX2FpICJodHRwOi8vbnMuYWRvYmUuY29tL0Fkb2JlSWxsdXN0cmF0b3IvMTAuMC8iPgoJPCFFTlRJVFkgbnNfZ3JhcGhzICJodHRwOi8vbnMuYWRvYmUuY29tL0dyYXBocy8xLjAvIj4KCTwhRU5USVRZIG5zX3ZhcnMgImh0dHA6Ly9ucy5hZG9iZS5jb20vVmFyaWFibGVzLzEuMC8iPgoJPCFFTlRJVFkgbnNfaW1yZXAgImh0dHA6Ly9ucy5hZG9iZS5jb20vSW1hZ2VSZXBsYWNlbWVudC8xLjAvIj4KCTwhRU5USVRZIG5zX3NmdyAiaHR0cDovL25zLmFkb2JlLmNvbS9TYXZlRm9yV2ViLzEuMC8iPgoJPCFFTlRJVFkgbnNfY3VzdG9tICJodHRwOi8vbnMuYWRvYmUuY29tL0dlbmVyaWNDdXN0b21OYW1lc3BhY2UvMS4wLyI+Cgk8IUVOVElUWSBuc19hZG9iZV94cGF0aCAiaHR0cDovL25zLmFkb2JlLmNvbS9YUGF0aC8xLjAvIj4KXT48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwOS44OTYiIGhlaWdodD0iMTMuOTc4Ij48c3dpdGNoPjxmb3JlaWduT2JqZWN0IHJlcXVpcmVkRXh0ZW5zaW9ucz0iaHR0cDovL25zLmFkb2JlLmNvbS9BZG9iZUlsbHVzdHJhdG9yLzEwLjAvIiB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9IiNmZmYiIGQ9Ik0xMDkuODk2IDEuMDI1bC0zLjY3OCAxMi45NWgtNS41OThsMS41NC01LjQ0Ny0zLjgyMyA0Ljc0MmgtMS44MjJsLTIuMTgtOC4zNWgtNC4zNmwuODktMy44OTZoOC4zMmwuODggNS4xMzggNC4yMzQtNS4xMzV2LS4wMDNoNS41OTV6TTg3LjEzIDEwLjIyYy0uNTY2IDEuODItMi41NTMgMy43NTUtNC40MTQgMy43NTVINzQuNDFjLTEuODYgMC0yLjkyLTEuOTM0LTIuMzU0LTMuNzU1bDEuMzI3LTQuMjc3aDUuODk0TDc3Ljk3IDkuODM3aDMuMjNsMS42Ni00Ljg4NmgtOS4xMmMuNjctMS42OSAyLjYyOC0zLjkyNSA0LjM5NC0zLjkyNWg4LjMwNmMxLjg2IDAgMi44NCAyLjI3IDIuMjc0IDQuMDlMODcuMTMgMTAuMjJ6TTcxLjM1MiA2LjY0Nkg2Ni4yNGwuNTY1LTEuNjc0aC0yLjczbC0xLjY1MyA0Ljg1aDIuNzNsLjQxMi0uOTI0aDUuMDg0bC0uNzYgMi40MjZjLS41NjYgMS44Mi0yLjIxNSAyLjY1LTQuMDc2IDIuNjVoLTYuNDdjLTEuODYgMC0yLjkyLTEuOTMzLTIuMzU0LTMuNzU0bDEuNTg0LTUuMTA1Yy41NjYtMS44MiAyLjA0LTQuMDkgNC43MTctNC4wOWg2LjA1NWMyLjAyNyAwIDMuMDQ1IDIuNDYgMi40OTYgNC4xODhsLS40OSAxLjQzM3ptLTIxLjY2IDcuMzNsMS4xNTUtNC45OThoNC41MUw1NC4yIDEzLjk3NmgtNC41MDh6bS01LjE3NS00Ljk5OGg0LjUwOGwtMS4xNTYgNC45OThoLS4zNDd2LjAwMmgtOC40OXYtLjAwNEgzNS4wM0wzOC4zNzYgMi42NWgtMS4zNGwuODEtMi42M2gxLjM0Vi4wMTZoNi40N0w0Mi4yNzYgMTFoMS43M2wuNTEyLTIuMDIyem0tOS4zNC00LjMxN2gtNC41OWwuNDIzLTEuNjYzaC0xMEwyMS42NDUuMDJoMTQuNjZsLS4wMS4wNDJoLjA0M2wtMS4xNiA0LjZ6TTEyLjI1IDEzLjk3Nkg3LjUwNEw2LjIxNiAyLjY1aC00LjE5bC44MS0yLjYzaDMuMDdWLjAxNmg2LjE0TDEzLjI2IDEwLjI2IDE2LjQwOC4wMTVoMy44MzhsLTQuMTU4IDEzLjk2SDEyLjI1ek01LjI5MyAzLjY3TDUuNiA2LjgzNGwtMi4xMjYgNy4xNEguMDJMMy4xMzUgMy42NjhoMi4xNTh6bTIyLjQ4LjMyNmwtLjY0MiAyLjQ2aDUuMThMMzEuNyA4Ljk5aC01LjM2bC0xLjUzMiA0Ljk4NWgtNi4wNDNsMy4wMS05Ljk4aDUuOTk4em02NS40OCAxLjg3N2wxLjAyIDQuMzg1LTEuMDAyIDMuNzE4aC00LjczNWwyLjM1Mi04LjEwM2gyLjM2NXoiLz48L3N3aXRjaD48L3N2Zz4=");
+ background-repeat: no-repeat;
+ width: 110px;
+ height: 14px;
+ display: block;
+ position: absolute;
+ margin-left: 40px;
+ margin-top: 2px
+ }
+
+ .yvp-browser-mobile .yvp-nfl-branding-container .yvp-nfl-brand-logo {
+ background-image: url("data:image/svg+xml;base64,PCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIiBbCgk8IUVOVElUWSBuc19leHRlbmQgImh0dHA6Ly9ucy5hZG9iZS5jb20vRXh0ZW5zaWJpbGl0eS8xLjAvIj4KCTwhRU5USVRZIG5zX2FpICJodHRwOi8vbnMuYWRvYmUuY29tL0Fkb2JlSWxsdXN0cmF0b3IvMTAuMC8iPgoJPCFFTlRJVFkgbnNfZ3JhcGhzICJodHRwOi8vbnMuYWRvYmUuY29tL0dyYXBocy8xLjAvIj4KCTwhRU5USVRZIG5zX3ZhcnMgImh0dHA6Ly9ucy5hZG9iZS5jb20vVmFyaWFibGVzLzEuMC8iPgoJPCFFTlRJVFkgbnNfaW1yZXAgImh0dHA6Ly9ucy5hZG9iZS5jb20vSW1hZ2VSZXBsYWNlbWVudC8xLjAvIj4KCTwhRU5USVRZIG5zX3NmdyAiaHR0cDovL25zLmFkb2JlLmNvbS9TYXZlRm9yV2ViLzEuMC8iPgoJPCFFTlRJVFkgbnNfY3VzdG9tICJodHRwOi8vbnMuYWRvYmUuY29tL0dlbmVyaWNDdXN0b21OYW1lc3BhY2UvMS4wLyI+Cgk8IUVOVElUWSBuc19hZG9iZV94cGF0aCAiaHR0cDovL25zLmFkb2JlLmNvbS9YUGF0aC8xLjAvIj4KXT48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjE1Ny4wNDIiIGhlaWdodD0iMjAuMDE1Ij48c3dpdGNoPjxmb3JlaWduT2JqZWN0IHJlcXVpcmVkRXh0ZW5zaW9ucz0iaHR0cDovL25zLmFkb2JlLmNvbS9BZG9iZUlsbHVzdHJhdG9yLzEwLjAvIiB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9IiNmZmYiIGQ9Ik0xNTYuOTYgMS44NzdsLTUuMjU1IDE4LjEyNmgtNy45OTJsMi4xOTgtNy4zODQtNS40NiA2LjM0aC0yLjZsLTMuMTE0LTExLjgzaC02LjIyN2wxLjI3LTUuMjUyaDExLjg4bDEuMjU3IDcuMjUgNi4wNDctNy4yNDZ2LS4wMDVoNy45OTV6bS0zMi41MTMgMTMuMjRjLS44MDggMi42ODgtMy42NDUgNC44ODctNi4zMDIgNC44ODdoLTExLjg2Yy0yLjY2IDAtNC4xNzItMi4yLTMuMzY0LTQuODg3bDEuODk4LTYuMzEyaDguNDE2bC0xLjg2NiA1Ljc0N2g0LjYxbDIuMzc1LTcuMzc2aC0xMy4wMjZjLjk1OC0yLjUgMy43NTItNS4yOTggNi4yNzUtNS4yOThoMTEuODZjMi42NTcgMCA0LjA1NiAzLjAxOCAzLjI0NyA1LjcwNWwtMi4yNjQgNy41MzR6bS0yMi41My01LjI3NmgtNy4zMDJsLjgwOC0yLjYzMmgtMy45bC0yLjM2IDcuMzIyaDMuOWwuNTg3LTEuMzY1aDcuMjZsLTEuMDg0IDMuNThjLS44MSAyLjY4OC0zLjE2MyAzLjI1OC01LjgyIDMuMjU4aC05LjI0Yy0yLjY1NiAwLTQuMTctMi4yLTMuMzYyLTQuODg3bDIuMjY0LTcuNTMzYy44MDgtMi42ODggMi45MS01LjcwNSA2LjczNS01LjcwNWg4LjY1YzIuODkzIDAgNC4zNDggMy4zIDMuNTYyIDUuODVsLS42OTggMi4xMTN6TTcwLjk4NSAyMC4wMDdsMS42NS02LjcyMmg2LjQ0bC0xLjY1MiA2LjcyMmgtNi40Mzh6bS03LjM5LTYuNzJoNi40MzhsLTEuNjUgNi43MmgtLjQ5NXYuMDAzSDU1Ljc2NnYtLjAwN2gtNS43Mmw0Ljc4LTE2LjA1OGgtMS45MTJMNTQuMDcuMDY1aDEuOTFsLjAwNC0uMDFoOS4yMzhMNjAuMzk2IDE2LjI3aDIuNDY3bC43MzItMi45ODR6TTUwLjI1OCA2LjkxMkg0My43bC43MjQtMi45N2gtMTQuNjVMMzAuOTMuMDY3aDIwLjkzNmwtLjAxNC4wNmguMDZMNTAuMjYgNi45MTR6TTE3LjUxOCAyMGgtNi43ODJMOC45IDMuOTQ1SDIuOTE1TDQuMDcuMDY1aDQuMzg2di0uMDFoOC43N2wxLjcyOCAxNS4xMiA0LjUtMTUuMTJoNS40OGwtNS45NCAxOS45NDZoLTUuNDc3ek03LjU3OCA1LjQ1bC40NCA0LjY3My0zLjAzNyA5Ljg4SC4wNTNMNC40OTYgNS40NUg3LjU4em0zMi4zNDYtLjI3OGwtMS4yMTcgNC4wMzJoNy4zOTdsLS44NzMgMy43NGgtNy42NUwzNS40NSAyMGgtOC42M2w0LjQ3Ni0xNC44MjhoOC42M3ptOTMuMjY0IDMuNTNsMS40NTcgNi40Ny0xLjQzIDQuODMyaC02Ljc2NEwxMjkuODEgOC43aDMuMzh6Ii8+PC9zd2l0Y2g+PC9zdmc+");
+ background-repeat: no-repeat;
+ margin-left: 50px;
+ margin-top: 2px;
+ width: 157px;
+ height: 20px
+ }
+
+ div.yvp-agegate-container {
+ width: 100%;
+ height: 100%;
+ color: #fff;
+ font-family: 'Helvetica Neue Regular', 'Helvetica Neue', helvetica, arial, sans-serif;
+ position: absolute;
+ background-color: #000;
+ z-index: 25
+ }
+
+ .yvp-agegate-container .yvp-agegate-info-wrapper {
+ padding: 17% 25% 0 25%;
+ text-align: center;
+ position: absolute;
+ top: 0;
+ }
+
+ .yvp-stream .yvp-agegate-container .yvp-agegate-info-wrapper {
+ padding: 14% 15% 0 15%
+ }
+
+ .yvp-agegate-container .yvp-agegate-title {
+ font-size: 20px;
+ line-height: 24px;
+ font-weight: normal;
+ margin-bottom: 2%
+ }
+
+ .yvp-agegate-container .yvp-agegate-desc {
+ font-size: 12px;
+ line-height: 20px;
+ color: rgba(255, 255, 255, 0.6)
+ }
+
+ .yvp-stream .yvp-agegate-container.yvp-agegate-birthday .yvp-agegate-info-wrapper {
+ padding: 8% 10% 0 10%
+ }
+
+ .yvp-stream .yvp-agegate-container.yvp-agegate-birthday .yvp-agegate-desc {
+ line-height: 14px
+ }
+
+ .yvp-stream .yvp-agegate-container.yvp-agegate-birthday .yvp-agegate-action-wrapper {
+ margin-top: 5.2%
+ }
+
+ .yvp-stream .yvp-agegate-container.yvp-agegate-birthday .yvp-agegate-btn {
+ display: block;
+ margin: 5% auto 0 auto
+ }
+
+ .yvp-agegate-container .yvp-agegate-action-wrapper {
+ margin-top: 9.2%
+ }
+
+ .yvp-agegate-container .yvp-agegate-date-input,
+ p.yvp-agegate-input {
+ display: inline
+ }
+
+ .yvp-agegate-container .yvp-agegate-date-input
+ /*input*/
+
+ {
+ width: 56px;
+ height: 33px;
+ margin: 0 5px 0 0;
+ border: none;
+ border-radius: 2px;
+ color: #fff;
+ text-align: center;
+ background-color: rgba(255, 255, 255, 0.15)
+ }
+
+ input.yvp-agegate-date-input.validate-error {
+ border: 1px solid #cc4a4a
+ }
+
+ .yvp-agegate-container .yvp-agegate-btn {
+ padding: 10px 22px 9px 22px;
+ background-color: #188fff;
+ border: none;
+ outline: none;
+ border-radius: 2px;
+ color: #fff;
+ font-family: 'Helvetica Neue Regular', 'Helvetica Neue', helvetica, arial, sans-serif;
+ font-size: 12px;
+ line-height: 13px;
+ cursor: pointer
+ }
+
+ .yvp-agegate-container .yvp-agegate-btn.disable {
+ display: none
+ }
+
+ .yvp-agegate-container .yvp-agegate-icon {
+ position: absolute;
+ right: 20px;
+ bottom: 20px;
+ background-size: 100%;
+ display: none;
+ zoom: 1
+ }
+
+ .yvp-agegate-back-image {
+ opacity: .3;
+ display: block;
+ width: 100%;
+ height: auto
+ }
+
+ .yvp-start-screen {
+ z-index: 21;
+ }
+
+ .yvp-start-screen .yvp-start-screen-image {
+ display: block;
+ width: 100%;
+ height: auto
+ }
+
+ .yvp-start-screen .yvp-start-screen-provider {
+ font-size: 91%;
+ font-weight: normal;
+ margin-bottom: 5px
+ }
+
+ .yvp-start-screen .yvp-start-screen-title {
+ font-weight: bold;
+ font-size: 100%;
+ margin-bottom: 3px;
+ width: 100%;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis
+ }
+
+ .yvp-start-screen .yvp-start-screen-description {
+ -webkit-font-smoothing: antialiased;
+ font-weight: 200;
+ font-size: 85%;
+ letter-spacing: .07em;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis
+ }
+
+ .yvp-start-screen .yvp-start-screen-bar-wrapper {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background-color: transparent;
+ -webkit-transition: all .3s ease-in-out;
+ -moz-transition: all .3s ease-in-out;
+ -o-transition: all .3s ease-in-out;
+ transition: all .3s ease-in-out
+ }
+
+ .yvp-start-screen:hover .yvp-start-screen-bar-wrapper {
+ background-color: rgba(0, 0, 0, 0.4)
+ }
+
+ .yvp-start-screen .yvp-start-screen-bar {
+ position: absolute;
+ width: 96%;
+ min-height: 30px;
+ max-height: 70px;
+ bottom: 0;
+ color: #fff;
+ overflow: hidden;
+ padding: 10px 2%;
+ text-shadow: #000 0 1px 3px;
+ background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.7));
+ background-image: -o-linear-gradient(top, transparent, rgba(0, 0, 0, 0.7));
+ background-image: linear-gradient(top, transparent, rgba(0, 0, 0, 0.7))
+ }
+
+ .yvp-start-screen .yvp-start-screen-button {
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ width: 90px;
+ height: 90px;
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODgiIGhlaWdodD0iODgiIHZpZXdCb3g9IjAgMCA4OCA4OCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZGVmcz48bGluZWFyR3JhZGllbnQgeDE9IjIuMDY2JSIgeTE9Ijk2Ljc1MSUiIHgyPSI5NS42NTklIiB5Mj0iMi45NjklIiBpZD0iYSI+PHN0b3Agc3RvcC1jb2xvcj0iIzZEMDBGNiIgb2Zmc2V0PSIwJSIvPjxzdG9wIHN0b3AtY29sb3I9IiMwMDNBQkMiIG9mZnNldD0iMTAwJSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHBhdGggZD0iTTEyLjY3NiA3Ny4zNzZjMy45ODMgMy42MDggOC42NjcgNi4yOCAxNC4wMjcgOC4wMTdDMzIuMDc4IDg3LjEyNSAzNy44OSA4OCA0NC4xNjMgODhjNi4xNjQgMCAxMS45MzQtLjg3NSAxNy4yOTYtMi42MDcgMi4xNTQtLjY5NCA0LjE4Ni0xLjU0NyA2LjExNi0yLjU0MyAyLjg4NC0xLjQ5IDUuNTMtMy4zMTIgNy45MTYtNS40NzQgMy45OS0zLjYwNyA3LjA5Ny04LjE4MyA5LjMzLTEzLjcwN0M4Ny4wNSA1OC4xMzYgODguMTY4IDUxLjU4IDg4LjE2OCA0NGMwLTcuNTg2LTEuMTE4LTE0LjE0LTMuMzQ2LTE5LjY3LTIuMjMzLTUuNTMtNS4zNC0xMC4xLTkuMzMtMTMuNzA1LTMuOTg1LTMuNjE3LTguNjYtNi4yODUtMTQuMDMzLTguMDJDNTYuMDk2Ljg3IDUwLjMyNiAwIDQ0LjE2MiAwYy02LjI3MyAwLTEyLjA4NS44NjgtMTcuNDYgMi42MDYtMS43NDMuNTYtMy40MTIgMS4yMzYtNS4wMSAyLjAwNS0zLjMyIDEuNTgzLTYuMzMgMy41NzgtOS4wMTcgNi4wMTVDOC42ODggMTQuMjMgNS41NzggMTguOCAzLjM0NiAyNC4zMyAxLjExNiAyOS44NiAwIDM2LjQxNCAwIDQ0YzAgNy41ODIgMS4xMTcgMTQuMTM3IDMuMzQ2IDE5LjY3IDIuMjMyIDUuNTIzIDUuMzQyIDEwLjEgOS4zMyAxMy43MDZ6IiBmaWxsLW9wYWNpdHk9Ii42NSIgZmlsbD0idXJsKCNhKSIvPjxwYXRoIGQ9Ik0zNi43MyA1OWgtLjA2NmMtLjkyIDAtMS42NjQtLjc0Mi0xLjY2NC0xLjY1NlYzMC42NTZjMC0uOTE1Ljc0LTEuNjU2IDEuNjY0LTEuNjU2LjAzIDAgLjA2IDAgLjA5LjAwMi4zOC0uMDczLjc4OC0uMDE0IDEuMTUyLjE5NmwyMi42MjIgMTMuMDZjLjc5OC40NiAxLjA3NSAxLjQ3NC42MTMgMi4yNzYtLjAyMy4wNC0uMDQ4LjA4LS4wNzUuMTE4LS4xMzcuMjctLjM1LjUwMy0uNjMuNjdsLTIyLjQ0IDEzLjQ4NGMtLjM5NS4yNC0uODUuMjk1LTEuMjY1LjE5M3oiIGZpbGw9IiNGRkYiLz48L2c+PC9zdmc+");
+ background-color: transparent;
+ background-position: 50% 50%;
+ background-repeat: no-repeat;
+ background-size: 100%;
+ border-radius: 0;
+ margin: -45px 0 0 -45px
+ }
+
+ div.yvp-feedback-btn {
+ position: absolute;
+ background: #7f6af6;
+ color: #188fff;
+ font-size: 10px;
+ padding: 3px;
+ overflow: hidden;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ opacity: .8;
+ }
+
+ div.yvp-feedback-btn:hover {
+ opacity: 1
+ }
+
+ .yvp-browser-mobile div.yvp-feedback-btn {
+ font-size: 10px
+ }
+
+ .yvp-end-screen {
+ position: absolute;
+ font-family: HelveticaNeue, Helvetica, Arial, sans-serif;
+ color: #fff;
+ text-align: center;
+ box-sizing: border-box;
+ }
+
+ .yvp-end-screen.yvp-replay-only .yvp-metadata {
+ display: none
+ }
+
+ .yvp-error-screen {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
+ font-weight: normal;
+ }
+
+ .yvp-error-screen .yvp-error-screen-image {
+ position: absolute;
+ display: block;
+ width: 100%;
+ height: 100%
+ }
+
+ .yvp-error-screen .yvp-error-screen-background {
+ position: absolute;
+ height: 100%;
+ width: 100%;
+ background-image: -webkit-linear-gradient(210deg, rgba(0, 0, 0, 0.4), #000);
+ background-image: -o-linear-gradient(210deg, rgba(0, 0, 0, 0.4), #000);
+ background-image: linear-gradient(210deg, rgba(0, 0, 0, 0.4), #000)
+ }
+
+ .yvp-error-screen .yvp-error-title {
+ position: relative;
+ display: block;
+ top: 35%;
+ width: 100%;
+ margin: 0 auto;
+ font-size: 20px;
+ line-height: 24px;
+ text-align: center;
+ color: #fff;
+ overflow: hidden;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+
+ .yvp-stream .yvp-error-screen .yvp-error-title {
+ top: 22%
+ }
+
+ .yvp-ministream .yvp-error-screen .yvp-error-title {
+ top: 30%;
+ font-size: 16px;
+ line-height: 18px
+ }
+
+ .yvp-error-screen .yvp-error-desc {
+ position: relative;
+ width: 288px;
+ top: 37%;
+ margin: 0 auto;
+ font-size: 16px;
+ line-height: 20px;
+ letter-spacing: 0;
+ text-align: center;
+ color: rgba(255, 255, 255, 0.6);
+ }
+
+ .yvp-error-screen .yvp-error-desc a:link {
+ color: rgba(255, 255, 255, 0.6)
+ }
+
+ .yvp-error-screen .yvp-error-desc a:visited {
+ color: rgba(255, 255, 255, 0.6)
+ }
+
+ .yvp-error-screen .yvp-error-desc a:active {
+ color: rgba(115, 0, 255, 0.8)
+ }
+
+ .yvp-stream .yvp-error-screen .yvp-error-desc {
+ top: 25%;
+ width: 85%
+ }
+
+ .yvp-ministream .yvp-error-screen .yvp-error-desc {
+ display: none;
+ top: 25%;
+ width: 85%
+ }
+
+ .yvp-error-screen .yvp-error-desc .yvp-browser-refresh {
+ display: block;
+ padding-top: 10px
+ }
+
+ .yvp-error-screen .yvp-error-desc .yvp-error-flash-download-wrapper {
+ display: block;
+ padding-top: 10px;
+ background-color: transparent;
+ cursor: pointer
+ }
+
+ .yvp-error-screen .yvp-error-desc .yvp-error-flash-download-icon {
+ display: block;
+ width: 30%;
+ height: 25%;
+ margin-top: 10px;
+ background-repeat: no-repeat;
+ }
+
+ .yvp-browser-mobile .yvp-error-screen .yvp-error-desc .yvp-error-flash-download-icon {
+ visibility: hidden
+ }
+
+ .yvp-error-screen .yvp-error-code {
+ position: relative;
+ top: 40%;
+ width: 100%;
+ display: block;
+ color: rgba(255, 255, 255, 0.3);
+ margin: 0 auto;
+ font-size: 12px;
+ line-height: 16px;
+ font-weight: normal;
+ text-align: center;
+ overflow: hidden;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+
+ .yvp-stream .yvp-error-screen .yvp-error-code {
+ top: 30%
+ }
+
+ .yvp-ministream .yvp-error-screen .yvp-error-code {
+ font-size: 12px;
+ line-height: 16px
+ }
+
+ .yvp-browser-mobile .yvp-error-screen .yvp-error-code {
+ font-size: 10px
+ }
+
+ .yvp-error-screen .yvp-error-feedback-btn {
+ bottom: 12%;
+ right: 5%;
+ }
+
+ .yvp-ministream .yvp-error-screen .yvp-error-feedback-btn {
+ display: none
+ }
+
+ .yvp-opensimsim {
+ display: none;
+ position: absolute;
+ z-index: 100;
+ background-color: rgba(0, 0, 0, 0.6);
+ width: 100%;
+ height: 100%;
+ color: rgba(255, 255, 255, 0.8);
+ overflow-x: scroll;
+ -webkit-user-select: text;
+ -moz-user-select: text;
+ -ms-user-select: text;
+ user-select: text;
+ }
+
+ .yvp-opensimsim .yvp-close-btn {
+ display: block;
+ position: absolute;
+ top: 10px;
+ right: 10px;
+ width: 27px;
+ height: 27px;
+ background: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKICAgIHdpZHRoPSIxMHB4IiBoZWlnaHQ9IjEwcHgiIHZpZXdCb3g9IjAgMCAxMCAxMCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMTAgMTAiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8cG9seWdvbiBmaWxsPSIjQ0NDQ0NDIiBwb2ludHM9IjEwLDEuNTAyIDguNDk4LDAgNSwzLjQ5OSAxLjUwMiwwLjAwMSAwLDEuNTAzIDMuNDk4LDUgMCw4LjQ5OCAxLjUwMiwxMCA1LDYuNTAyIDguNDk4LDEwIDEwLDguNDk4IAogICAgNi41MDIsNSAiLz4KPC9zdmc+Cg==") no-repeat center center;
+ cursor: pointer;
+ z-index: 10;
+ opacity: .8;
+ }
+
+ .yvp-opensimsim .yvp-close-btn:hover {
+ opacity: 1
+ }
+
+ .yvp-opensimsim .yvp-opensimsim-feedback-btn {
+ top: 12px;
+ color: #188fff;
+ right: 6%;
+ z-index: 1;
+ padding: 1px;
+ text-align: center;
+ cursor: pointer;
+ text-decoration: underline
+ }
+
+ .yvp-opensimsim .yvp-opensimsim-profile {
+ margin: 0
+ }
+
+ .yvp-opensimsim .yvp-opensimsim-info {
+ font-size: 10px;
+ margin-left: 20px;
+ margin-right: 20px;
+ position: relative;
+ color: #d8dade;
+ }
+
+ .yvp-opensimsim .yvp-opensimsim-info .yvp-opensimsim-title {
+ color: #8e80ff;
+ padding-top: 16px;
+ padding-bottom: 1px
+ }
+
+ .yvp-opensimsim .yvp-opensimsim-info .yvp-opensimsim-lmsid {
+ padding-bottom: 5px
+ }
+
+ .yvp-opensimsim .yvp-opensimsim-info .yvp-opensimsim-graphs {
+ width: 100%;
+ height: 80px;
+ margin-bottom: 25px;
+ }
+
+ .yvp-opensimsim .yvp-opensimsim-info .yvp-opensimsim-graphs .yvp-opensimsim-graph {
+ float: left;
+ width: 150px;
+ }
+
+ .yvp-opensimsim .yvp-opensimsim-info .yvp-opensimsim-graphs .yvp-opensimsim-graph div {
+ margin-bottom: 5px
+ }
+
+ .yvp-opensimsim .yvp-opensimsim-info .yvp-profile-btn {
+ padding-top: 20px;
+ color: #188fff;
+ margin-bottom: 20px;
+ font-size: 10px;
+ cursor: pointer;
+ text-decoration: underline;
+ margin-left: 1px
+ }
+
+ .yvp-opensimsim .yvp-opensimsim-info .yvp-opensimsim-detail {
+ padding-bottom: 1px
+ }
+
+ .yvp-opensimsim .yvp-opensimsim-info .yvp-profilelink {
+ color: #fff;
+ font-size: 12px;
+ cursor: pointer;
+ }
+
+ .yvp-opensimsim .yvp-opensimsim-info .yvp-profilelink:hover {
+ text-decoration: underline
+ }
+
+ .yvp-opensimsim-info .yvp-midrollcache-data {
+ display: inline-block;
+ line-height: 7px;
+ }
+
+ .yvp-opensimsim-info .yvp-midrollcache-data::after {
+ display: table;
+ content: '';
+ clear: both
+ }
+
+ .yvp-opensimsim-info .floated-item {
+ float: left;
+ padding: 0 8px;
+ border-right: 2px solid #ddd
+ }
+
+ .yvp-opensimsim-info .yvp-table {
+ display: table;
+ color: #d8dade;
+ width: 100%;
+ margin-bottom: 25px;
+ }
+
+ .yvp-opensimsim-info .yvp-table &gt;
+ div:first-child {
+ display: table-caption;
+ background-color: transparent;
+ text-align: left;
+ line-height: 15px
+ }
+
+ .yvp-opensimsim-info .yvp-table header.yvp-tablerow {
+ font-weight: bold;
+ background-color: transparent
+ }
+
+ .yvp-opensimsim-info .yvp-tablerow {
+ display: table-row;
+ background-color: transparent
+ }
+
+ .yvp-opensimsim-info .yvp-tablecell {
+ display: table-cell;
+ padding: 2px;
+ border-style: solid;
+ border: 0;
+ }
+
+ .yvp-opensimsim-info .yvp-tablecell.yvp-tablecell-header {
+ color: #878c91;
+ border-bottom: 1px solid #878c91
+ }
+
+ .yvp-opensimsim-info .yvp-details {
+ color: #878c91
+ }
+
+ .yvp-opensimsim-info .yvp-opensimsim-pipe {
+ color: #878c91;
+ font-weight: bold
+ }
+
+ .yvp-opensimsim-info .yvp-nav {
+ padding-top: 8px;
+ padding-bottom: 0
+ }
+
+ .yvp-opensimsim-info .linkbtn {
+ background: none !important;
+ border: none;
+ padding: 0 !important;
+ border-bottom: 1px solid #444;
+ cursor: pointer;
+ color: #d8dade
+ }
+
+ .yvp-opensimsim-info .yvp-opensimsim-adinfo-uuid {
+ color: #878c91
+ }
+
+ .yvp-tablecell.st-error {
+ color: #f00
+ }
+
+ .yvp-tablecell.st-playing {
+ color: #0f0
+ }
+
+ .yvp-tablecell.st-unplayed {
+ color: #786f78
+ }
+
+ .yvp-tablecell.st-cancelled {
+ color: #f9cc9d
+ }
+
+ .emptyrow .yvp-tablecell {
+ border-width: 1px 0 0 0;
+ }
+
+ .emptyrow .yvp-tablecell * {
+ visibility: hidden
+ }
+
+ .yvp-browser-tv .yvp-opensimsim-config {
+ position: absolute;
+ top: 0;
+ right: 0
+ }
+
+ .yvp-feedback-screen {
+ display: none;
+ position: absolute;
+ z-index: 150;
+ background-color: #000;
+ width: 100%;
+ height: 100%;
+ color: #ccc;
+ overflow-x: scroll;
+ -webkit-user-select: text;
+ -moz-user-select: text;
+ -ms-user-select: text;
+ user-select: text;
+ }
+
+ .yvp-feedback-screen .yvp-feedback-screen-close-btn {
+ display: block;
+ position: absolute;
+ top: 10px;
+ right: 10px;
+ width: 27px;
+ height: 27px;
+ background: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKICAgIHdpZHRoPSIxMHB4IiBoZWlnaHQ9IjEwcHgiIHZpZXdCb3g9IjAgMCAxMCAxMCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMTAgMTAiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8cG9seWdvbiBmaWxsPSIjQ0NDQ0NDIiBwb2ludHM9IjEwLDEuNTAyIDguNDk4LDAgNSwzLjQ5OSAxLjUwMiwwLjAwMSAwLDEuNTAzIDMuNDk4LDUgMCw4LjQ5OCAxLjUwMiwxMCA1LDYuNTAyIDguNDk4LDEwIDEwLDguNDk4IAogICAgNi41MDIsNSAiLz4KPC9zdmc+Cg==") no-repeat center center;
+ cursor: pointer;
+ z-index: 10;
+ opacity: .8;
+ }
+
+ .yvp-feedback-screen .yvp-feedback-screen-close-btn:hover {
+ opacity: 1
+ }
+
+ .yvp-feedback-screen .yvp-feedback-screen-info {
+ font-size: 10px;
+ margin-top: 0;
+ margin-right: 20px;
+ margin-left: 20px;
+ height: 100%;
+ }
+
+ .yvp-feedback-screen .yvp-feedback-screen-info .yvp-feedback-screen-title {
+ font-size: 18px;
+ color: #ccc;
+ display: inline-block;
+ padding-top: 10px;
+ padding-bottom: 7px
+ }
+
+ .yvp-feedback-screen .yvp-feedback-screen-info .yvp-feedback-screen-response {
+ color: #ccc;
+ padding-top: 20px;
+ padding-bottom: 5px;
+ font-size: 14px;
+ margin-left: 0
+ }
+
+ .yvp-feedback-screen .yvp-feedback-screen-info .yvp-feedback-screen-refid {
+ color: #ccc;
+ padding-top: 0;
+ padding-bottom: 0;
+ margin-left: 0;
+ font-size: 10px
+ }
+
+ .yvp-feedback-screen .yvp-feedback-screen-info .yvp-feedback-screen-text {
+ box-sizing: border-box;
+ margin-top: 10px;
+ margin-bottom: 10px;
+ overflow: auto;
+ resize: none;
+ width: 100%;
+ height: 105px;
+ border: 1px solid #ccc;
+ opacity: .8;
+ padding: 5px;
+ color: #000
+ }
+
+ .yvp-feedback-screen .yvp-feedback-screen-info .yvp-feedback-screen-button-container {
+ text-align: right
+ }
+
+ .yvp-feedback-screen .yvp-feedback-screen-info .yvp-feedback-screen-btn {
+ display: inline-block;
+ background-color: #7f6af6;
+ color: #ccc;
+ cursor: pointer;
+ font-size: 12px;
+ text-align: center;
+ padding: 5px;
+ opacity: .8;
+ }
+
+ .yvp-feedback-screen .yvp-feedback-screen-info .yvp-feedback-screen-btn:hover {
+ opacity: 1
+ }
+
+ .yvp-feedback-screen .yvp-feedback-screen-info .yvp-feedback-screen-disclaimer {
+ position: absolute;
+ bottom: 10px;
+ padding-right: 10px
+ }
+
+ .yvp-ads-overlay {
+ position: absolute;
+ height: 100%;
+ width: 100%;
+ display: none;
+ -webkit-transition: height .2s ease-in-out 2s;
+ -moz-transition: height .2s ease-in-out 2s;
+ -o-transition: height .2s ease-in-out 2s;
+ transition: height .2s ease-in-out 2s
+ }
+
+ .yvp-docked-fadein {
+ -webkit-animation-name: fade_in;
+ animation-name: fade_in;
+ -webkit-animation-duration: .247s;
+ -moz-animation-duration: .247s;
+ animation-duration: .247s;
+ animation-timing-function: ease-in-out
+ }
+
+ .yvp-docked-animated {
+ -webkit-transition: all .2s ease-in-out;
+ -moz-transition: all .2s ease-in-out;
+ -o-transition: all .2s ease-in-out;
+ transition: all .2s ease-in-out
+ }
+
+ .yvp-docked {
+ position: fixed !important;
+ z-index: 9999;
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.2)
+ }
+
+ .yvp-content.yvp-browser-desktop .yvp-docked-meta {
+ position: relative;
+ opacity: 0;
+ visibility: hidden;
+ display: none;
+ height: 68px;
+ font-size: 16px;
+ color: #121717;
+ background: #fff;
+ line-height: 20px;
+ padding-top: 16px;
+ left: 0;
+ right: 0;
+ Box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.5);
+ }
+
+ .yvp-content.yvp-browser-desktop .yvp-docked-meta .yvp-docked-title {
+ position: relative;
+ margin: 0 16px 5px 16px;
+ max-height: 40px;
+ overflow: hidden;
+ -webkit-line-clamp: 2;
+ text-overflow: ellipsis;
+ display: -webkit-box;
+ -webkit-box-orient: vertical
+ }
+
+ .yvp-content.yvp-browser-desktop .yvp-docked-meta .yvp-docked-provider {
+ position: relative;
+ margin: 0 16px 16px 16px;
+ opacity: .8;
+ line-height: 16px;
+ font-size: 11px
+ }
+
+ .yvp-content.yvp-browser-desktop.yvp-docked-show-meta .yvp-docked-meta {
+ visibility: visible;
+ opacity: 1;
+ display: block
+ }
+
+ .yvp-content.yvp-browser-desktop.yvp-docked-show-meta.yvp-state-fullscreen .yvp-docked-meta {
+ visibility: hidden;
+ opacity: 0;
+ display: none
+ }
+
+ .yvp-docked-bg {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ z-index: 10;
+ }
+
+ .yvp-docked-bg .yvp-docked-img {
+ position: relative
+ }
+
+ .yvp-docked-bg .yvp-docked-overlay {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background-color: rgba(0, 0, 0, 0.75);
+ }
+
+ .yvp-docked-bg .yvp-docked-overlay .yvp-docked-overlay-text {
+ position: absolute;
+ width: 100%;
+ text-align: center;
+ bottom: 34px;
+ color: #fff;
+ font-size: 13px;
+ line-height: 16px
+ }
+
+ @-moz-keyframes fadeInOut {
+ 0% {
+ opacity: 0
+ }
+ 45% {
+ opacity: 1
+ }
+ 55% {
+ opacity: 1
+ }
+ 100% {
+ opacity: 0
+ }
+ }
+
+ @-webkit-keyframes fadeInOut {
+ 0% {
+ opacity: 0
+ }
+ 45% {
+ opacity: 1
+ }
+ 55% {
+ opacity: 1
+ }
+ 100% {
+ opacity: 0
+ }
+ }
+
+ @-o-keyframes fadeInOut {
+ 0% {
+ opacity: 0
+ }
+ 45% {
+ opacity: 1
+ }
+ 55% {
+ opacity: 1
+ }
+ 100% {
+ opacity: 0
+ }
+ }
+
+ @-ms-keyframes fadeInOut {
+ 0% {
+ opacity: 0
+ }
+ 45% {
+ opacity: 1
+ }
+ 55% {
+ opacity: 1
+ }
+ 100% {
+ opacity: 0
+ }
+ }
+
+ @keyframes fadeInOut {
+ 0% {
+ opacity: 0
+ }
+ 45% {
+ opacity: 1
+ }
+ 55% {
+ opacity: 1
+ }
+ 100% {
+ opacity: 0
+ }
+ }
+
+ @-moz-keyframes fade_in {
+ 0% {
+ opacity: 0
+ }
+ 100% {
+ opacity: 1
+ }
+ }
+
+ @-webkit-keyframes fade_in {
+ 0% {
+ opacity: 0
+ }
+ 100% {
+ opacity: 1
+ }
+ }
+
+ @-o-keyframes fade_in {
+ 0% {
+ opacity: 0
+ }
+ 100% {
+ opacity: 1
+ }
+ }
+
+ @-ms-keyframes fade_in {
+ 0% {
+ opacity: 0
+ }
+ 100% {
+ opacity: 1
+ }
+ }
+
+ @keyframes fade_in {
+ 0% {
+ opacity: 0
+ }
+ 100% {
+ opacity: 1
+ }
+ }
+ </style>
+ <link rel="preconnect" id="preConnector" href="//video-api.yql.yahoo.com" />
+ <script type="text/javascript" charset="utf-8" async="" src="https://s.yimg.com/os/yc/js/tdv2-applet-content-canvas.19836e536b932247a9b1.min.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" src="https://s.yimg.com/os/yc/js/tdv2-applet-swisschamp.19836e536b932247a9b1.min.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" src="https://s.yimg.com/os/yc/js/tdv2-applet-livecoverage.19836e536b932247a9b1.min.js"></script>
+ <script type="text/javascript" charset="utf-8" async="" src="https://s.yimg.com/os/yc/js/tdv2-applet-slideshow.19836e536b932247a9b1.min.js"></script>
+</head>
+
+<body>
+ <div id="mrt-app">
+ <div>
+ <div class="" id="render-target-mrt" aria-hidden="true" style="top: -505px;">
+ <div class="Bgc($bg-body) Mih(100%) W(100%) news US" style="margin-top:125px;">
+ <div class="YDC-Header Z(10) End(0) Start(0) T(0) H(0) Panel-open_Translate3d(0,-19px,0) hasScrolled_Translate3d(0,-19px,0) Translate3d(0,0,0) Pos(f) Trsp(a) Trsdu(300ms)">
+ <div id="YDC-UH" class="YDC-UH Bgc($bg-content) Pos(r) Z(1)">
+ <div id="YDC-UH-Stack" class="YDC-UH Miw(1007px) Maw(1260px) tablet_Miw(600px)--noRightRail Bxz(bb) Bdstartc(t) Bdstartw(20px) Bdendc(t) Bdends(s) Bdendw(20px) Bdstarts(s) Mx(a) tablet_Bd(n)">
+ <div>
+ <div id="mrt-node-tgtm-UH-0-Header">
+ <div id="tgtm-UH-0-Header-Proxy" data-reactroot="" data-reactid="1" data-react-checksum="-1817108582">
+ <div data-reactid="2">
+ <div id="masterNav" class="C(#fff) Fz(13px) Trsdu(0.3s) Trsp(a) hasScrolled_Mt(-19px) Panel-open_Mt(-19px) CollapsibleUh_Mt(0px)! H(22px)" data-reactid="3">
+ <ul id="eyebrow" role="navigation" class="H(22px) Lh(1.7) M(0) NavLinks P(0) Whs(nw) Z(11) Bgc(#2d1152) Pos(a) Start(0) End(0)" data-reactid="4">
+ <li id="uh-tb-home" class="D(ib) Lh(1.7) Mend(18px) Pstart(10px) Va(t) Zoom" data-reactid="5">
+ <a class="C(#fff) Td(n) Pos(r) Z(1) rapidnofollow readerOpen_V(h)" href="https://www.yahoo.com/" data-reactid="6">
+ <div data-reactid="7"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="16" style="cursor:pointer;margin-right:6px;margin-top:1px;vertical-align:top;fill:#fff;stroke:#fff;stroke-width:0;" height="16" viewBox="0 0 32 32" data-icon="home" data-reactid="8"><path d="M16.153 3.224L0 16.962h4.314v11.814h9.87v-8.003h3.934v8.003h9.84V16.962H32" data-reactid="9"/></svg><b class="Fw(400) Mstart(-1px) Td(u):h" data-reactid="10">Home</b></div>
+ </a>
+ </li>
+ <li id="uh-tb-mail" class="D(ib) Lh(1.7) Mend(18px) Pstart(14px) Va(t) Zoom" data-reactid="11"><a class="C(#fff) Td(n) Td(u):h" href="https://mail.yahoo.com/?.intl=us&amp;.lang=en-US" data-reactid="12">Mail</a></li>
+ <li id="uh-tb-flickr" class="D(ib) Lh(1.7) Mend(18px) Pstart(14px) Va(t) Zoom" data-reactid="13"><a class="C(#fff) Td(n) Td(u):h" href="https://www.flickr.com/" data-reactid="14">Flickr</a></li>
+ <li id="uh-tb-tumblr" class="D(ib) Lh(1.7) Mend(18px) Pstart(14px) Va(t) Zoom" data-reactid="15"><a class="C(#fff) Td(n) Td(u):h" href="https://www.tumblr.com/" data-reactid="16">Tumblr</a></li>
+ <li id="uh-tb-news" class="D(ib) Lh(1.7) Mend(18px) Pstart(14px) Va(t) Zoom" data-reactid="17"><a class="C(#fff) Td(n) Td(u):h" href="https://www.yahoo.com/news/" data-reactid="18">News</a></li>
+ <li id="uh-tb-sports" class="D(ib) Lh(1.7) Mend(18px) Pstart(14px) Va(t) Zoom" data-reactid="19"><a class="C(#fff) Td(n) Td(u):h" href="http://sports.yahoo.com/" data-reactid="20">Sports</a></li>
+ <li id="uh-tb-finance" class="D(ib) Lh(1.7) Mend(18px) Pstart(14px) Va(t) Zoom" data-reactid="21"><a class="C(#fff) Td(n) Td(u):h" href="http://finance.yahoo.com/" data-reactid="22">Finance</a></li>
+ <li id="uh-tb-celebrity" class="D(ib) Lh(1.7) Mend(18px) Pstart(14px) Va(t) Zoom" data-reactid="23"><a class="C(#fff) Td(n) Td(u):h" href="https://www.yahoo.com/celebrity/" data-reactid="24">Celebrity</a></li>
+ <li id="uh-tb-answers" class="D(ib) Lh(1.7) Mend(18px) Pstart(14px) Va(t) Zoom" data-reactid="25"><a class="C(#fff) Td(n) Td(u):h" href="https://answers.yahoo.com/" data-reactid="26">Answers</a></li>
+ <li id="uh-tb-groups" class="D(ib) Lh(1.7) Mend(18px) Pstart(14px) Va(t) Zoom" data-reactid="27"><a class="C(#fff) Td(n) Td(u):h" href="https://groups.yahoo.com/" data-reactid="28">Groups</a></li>
+ <li id="uh-tb-mobile" class="D(ib) Lh(1.7) Mend(18px) Pstart(14px) Va(t) Zoom" data-reactid="29"><a class="C(#fff) Td(n) Td(u):h" href="https://mobile.yahoo.com/" data-reactid="30">Mobile</a></li>
+ <li id="uh-tb-more" class="D(ib) Lh(1.7) Pend(6px) Pos(r) Pstart(10px) Va(t) Z(4) Zoom" data-reactid="31"><a id="uh-tb-more-link" class="C(#fff) Pos(r) Td(n) Z(1) yucs-leavable rapidnofollow readerOpen_V(h)" href="https://everything.yahoo.com/" role="button" data-reactid="32"><span class="Td(u):h" data-reactid="33">More</span><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="8" style="cursor:pointer;margin-left:5px;vertical-align:middle;fill:#fff;stroke:#fff;stroke-width:0;" height="8" viewBox="0 0 512 512" data-icon="CoreArrowDown" data-reactid="34"><path d="M500.77 131.432L477.53 108.18c-14.45-14.55-40.11-14.55-54.51 0L255.845 275.363 88.582 108.124c-15.015-14.874-39.363-14.874-54.42.108L10.94 131.486c-14.58 14.44-14.58 40.11-.033 54.442l217.77 217.845c15.004 14.82 39.33 14.874 54.42-.108L500.88 185.82c14.818-14.982 14.87-39.298-.11-54.388z" data-reactid="35"/></svg></a></li>
+ <!-- react-empty: 36 -->
+ </ul>
+ </div>
+ <div id="tgtm-UH-0-Header" class="Miw(1024px) End(0) Start(0) Trs(shadowTransition) UH Z(10) Bdt(customBorderTop) MegaTheme Pt(12px) Pb(12px) Trstf(eo) Trsde(0s) Trsdu(0.13s) Trsp(a) Bgc(#fff) T(22px)" data-name="tdv2-applet-uh" data-version="8.0.580" data-reactid="37">
+ <div class="Pos(r) Maw(1256px) Miw(1000px) Mx(a)" data-reactid="38">
+ <div class="Pos(a) Miw(187px) UHMR1D_Py(0)" style="background-color:transparent;" data-reactid="39">
+ <div data-reactid="40">
+ <style data-reactid="41">
+ #tgtm-UH-0-Header #uh-logo {
+ background-image: url(https://s.yimg.com/rz/d/yahoo_news_en-US_s_f_pw_351x40_news.png);
+ }
+
+ @media only screen and (-webkit-min-device-pixel-ratio: 2),
+ only screen and ( min--moz-device-pixel-ratio: 2),
+ only screen and ( -o-min-device-pixel-ratio: 2/1),
+ only screen and ( min-device-pixel-ratio: 2),
+ only screen and ( min-resolution: 192dpi),
+ only screen and ( min-resolution: 2dppx) {
+ #tgtm-UH-0-Header #uh-logo {
+ background-image: url(https://s.yimg.com/rz/d/yahoo_news_en-US_s_f_pw_351x40_news_2x.png);
+ }
+ }
+ </style><a id="uh-logo" class="Bgpx(0) Bgr(nr) Cur(p) D(b) H(40px) Bgz(702px) Mx(a)! W(94px) ie-7_Pos(r) ie-7_Start(-170px)" href="https://www.yahoo.com/news" data-reactid="42"><b class="Hidden" data-reactid="43">Yahoo</b></a></div>
+ </div>
+ <div id="uh-search" class="Mend(375px) Mstart(194px) Maw(595px) H(35px) Maw(745px)--sm1024 Trstf(eo) Trsde(0s) Trsdu(0.14s) Trsp(a)" data-reactid="44">
+ <form action="https://search.yahoo.com/search" class="M(0) P(0)" method="get" name="input" data-reactid="45"><label class="Hidden" for="search-assist-input" data-reactid="46">Search</label>
+ <table class="Bdcl(s)" data-reactid="47">
+ <tbody data-reactid="48">
+ <tr data-reactid="49">
+ <td class="W(100%) Va(t) Px(0)" data-reactid="50">
+ <div data-reactid="51">
+ <div class="Z(2) Pos(r)" id="search-assist-input" data-reactid="52">
+ <div class="" data-reactid="53"><input aria-label="Search" autocomplete="off" autocorrect="off" autocapitalize="off" class="Pos(r) W(100%) M(0) O(0) O(0):f Bgc(#fff) Z(2) Bxsh(n) Bxsh(n):f Fz(15px) Px(15px) Py(8px) Bdrs(0) Pstart(10px) Pend(10px) Bdc(searchBdr) glow_Bdc(searchBtnGlow) Bdc(searchBdrFoc):f Bdrs(2px)! ie-7_H(18px) ie-7_Lh(18px) ie-8_Lh(18px) ie-7_W(92%) H(35px) scrollDown_H(35px) Px(10px) glowing_Trs(searchMegaTransition)" name="p" placeholder="Search" style="-webkit-appearance:none;" value="" data-reactid="54" type="text" /></div>
+ <div class="Pos(a) Ta(start) Start(0) End(0) Bgc(#fff) Z(1) D(n) Bd Bdc(#aaa) Bdtw(0) Mt(-1px)" data-reactid="55">
+ <ul class="M(0)" data-reactid="56"></ul>
+ </div>
+ </div>
+ </div>
+ </td>
+ <td class="Va(t) Tren(os) W(10%) Whs(nw) Px(0) Bdcl(s)" data-reactid="57">
+ <div id="search-buttons" data-reactid="58"><button class="Bdrs(3px) Bdw(0) glowing_Trs(searchMegaTransition) Bxsh(customShadowMegaSearchButton) glow_Bgc(searchBtnGlow) Bxsh(searchBtnShadow) glow_Bxsh(searchBtnShadowGlow) C(#fff) Fz(16px) two-btn_Fz(13px) H(35px) ie-7_Lh(18px) ie-8_Lh(18px) Lh(5px) Fw(500) Whs(nw) P(0)! My(0)! Mstart(5px) Mend(0)! scrollDown_H(35px) Py(0) Ta(c) Td(n) Va(t) W(140px) Zoom Bgc(searchBtn) Bgc(searchBtnHvr):h" id="search-button" style="filter:chroma(color=#000000);-webkit-font-smoothing:antialiased;" type="submit" data-reactid="59">Search</button></div>
+ </td>
+ </tr>
+ </tbody>
+ </table><input name="fr" value="uh3_news_web_gs" data-reactid="60" type="hidden" /><input name="fr2" value="p:news,m:sb" data-reactid="61" type="hidden" /></form>
+ <ul id="skip-nav" class="Pos(a)" data-reactid="62">
+ <li tabindex="3" data-reactid="63"><a class="W(0) O(h) D(ib) Whs(nw) Pos(a) Bg(#500095) C(#fff) Op(0) W(a):f Op(1):f P(5px):f" href="#Navigation" data-reactid="64">Skip to Navigation</a></li>
+ <li tabindex="3" data-reactid="65"><a class="W(0) O(h) D(ib) Whs(nw) Pos(a) Bg(#500095) C(#fff) Op(0) W(a):f Op(1):f P(5px):f" href="#Main" data-reactid="66">Skip to Main Content</a></li>
+ <li tabindex="3" data-reactid="67"><a class="W(0) O(h) D(ib) Whs(nw) Pos(a) Bg(#500095) C(#fff) Op(0) W(a):f Op(1):f P(5px):f" href="#Aside" data-reactid="68">Skip to Related Content</a></li>
+ </ul>
+ </div>
+ <ul id="uh-right" class="Pos(a) List(n) End(15px) T(3px) Z(2)" data-reactid="69">
+ <li class="Fl(start) Mx(4px) Mend(9px)"><a id="uh-signedin" class="Bdrs(5px) Bds(s) Bdw(2px) C(#fff):h D(ib) Ell Fz(14px) Fw(b) Py(2px) Mt(3px) Ta(c) Td(n):h Miw(78px) H(18px) Bdc(signInBtn) Bgc(signInBtn):h C(signInBtn)" href="https://login.yahoo.com/config/login?.intl=us&amp;.lang=en-US&amp;.src=news&amp;.done=https%3A%2F%2Fus.yahoo.com%2Fnews%2Frussian-supply-ship-launched-international-space-station-150638637.html">Sign in</a></li>
+ <li class="D(ib) Mstart(14px) Mt(-1px) ua-ie8_Pb(10px) ua-ie9_Pb(10px)" data-reactid="73"><button id="uh-follow" class="Pos(r) Fl(start) D(ib) Bd(0) P(0) Mstart(14px) Mend(13px) Cur(p) ie-7_D(n) ie-8_Pb(10px) ie-9_Pb(10px)" href="#" aria-label="Notifications" data-reactid="74"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="28" style="fill:#400090;stroke:#400090;stroke-width:0;vertical-align:bottom;" height="28" viewBox="0 0 512 512" data-icon="nav-bell" data-reactid="75"><path d="M294.2 428.05h-74.4c0 20.543 16.656 37.2 37.2 37.2 20.535 0 37.2-12.47 37.2-37.2zM136.1 195.55c0 62.284-53.51 94.162-55.728 95.452L71 296.352v94.498h372v-94.498l-9.373-5.35c-.562-.318-55.727-32.573-55.727-95.452 0-63.88-12.533-148.8-120.9-148.8-108.368 0-120.9 84.92-120.9 148.8z" data-reactid="76"/></svg><span id="uh-follow-count" class="Bgc(mailBadge) Bdrs(11px) C(#fff) Start(16px) Fz(11px) Fw(b) Pos(a) Lh(2) Ta(c) T(-11px) W(22px)" data-reactid="77">1</span></button></li>
+ <li class="D(ib) Mstart(14px) Mt(-1px) ie-8_Pb(10px) ie-9_Pb(10px)" data-reactid="78"><a id="uh-mail" class="Pos(r) D(ib) Ta(s) Td(n):h" href="https://mail.yahoo.com/?.intl=us&amp;.lang=en-US&amp;.partner=none&amp;.src=news" data-reactid="79"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="30" style="fill:#400090;stroke:#400090;stroke-width:0;vertical-align:bottom;" height="35" viewBox="0 0 512 512" data-icon="NavMail" data-reactid="80"><path d="M460.586 91.31H51.504c-10.738 0-19.46 8.72-19.46 19.477v40.088l224 104.03 224-104.03v-40.088c0-10.757-8.702-19.478-19.458-19.478M32.046 193.426V402.96c0 10.758 8.72 19.48 19.458 19.48h409.082c10.756 0 19.46-8.722 19.46-19.48V193.428l-224 102.327-224-102.327z" data-reactid="81"/></svg><b class="Lh(userNavTextLh) D(ib) C(mailBtn) Fz(14px) Fw(b) Va(t) Mstart(6px)" data-reactid="82">Mail</b></a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <script>
+ if (window.performance) {
+ window.performance.mark & amp; & amp;
+ window.performance.mark('UH');
+ window.performance.measure & amp; & amp;
+ window.performance.measure('UHDone', 'PageStart', 'UH');
+ }
+ </script>
+ </div>
+ </div>
+ </div>
+ <div class="HideNavrail_Translate3d(0,-100%,0) Panel-open_Translate3d(0,-100%,0) Translate3d(0,0,0) Trsp(a) Trsdu(300ms)" id="Navigation" role="navigation" tabindex="-1">
+ <div id="YDC-Nav" class="YDC-Nav">
+ <div class="Bgc($bg-content) hasScrolled_Bxsh(headerShadow) Panel-open_Bxsh(headerShadow) Pt(3px) Mt(-3px)">
+ <div id="YDC-Nav-Stack" class="YDC-Nav Miw(1007px) Maw(1260px) tablet_Miw(600px)--noRightRail Bxz(bb) Bdstartc(t) Bdstartw(20px) Bdendc(t) Bdends(s) Bdendw(20px) Bdstarts(s) Mx(a) tablet_Bd(n)">
+ <div>
+ <div id="mrt-node-tgtm-Nav-0-NavLite">
+ <div id="tgtm-Nav-0-NavLite-Proxy" data-reactroot="" data-reactid="1" data-react-checksum="1858771711">
+ <div id="tgtm-Nav-0-NavLite" class="Pos(r) Z(1)" data-reactid="2">
+ <nav class="tdv2-applet-navrail" data-reactid="3">
+ <div class="Ff(navFrontFamily)" data-reactid="4">
+ <div id="tgtm-Nav-0-NavLite" class="nr-applet-main-nav Pos(r) Start(0) End(0) Z(8) H(navHeight) Lh(navHeight) Fz(13px) Fw(b) Bdw(1px) Miw(980px) Bdc($c-divider) Bdbs(s) Bdts(s) Bdc(borderColorLight) H(navHeight_uhMagDesign)! Lh(n)! Bdw(0px)! Bdbs(n)! Bdts(n)!" data-reactid="5">
+ <div class="Bgc($bg-content)! Bgc($bg-header) Pt(2px)" data-reactid="6">
+ <div class="nr-applet-title Fl(start) Pend(navPaddings) Bxz(bb) Ov(h) H(navHeight) H(itemHeight_uhMagDesign)! Pend(30px)!" data-reactid="7">
+ <div class="" data-reactid="8">
+ <a class="nr-applet-nav-item Td(n) Ell Td(n) D(ib) Lh(itemHeight_uhMagDesign) H(42px) Bdw(0) Bdbs(s) Bxz(bb) Bdbc(navliteLinkUnderline):h Bdbw(4px):h Bdbs(s)!:h Trstf(l) Trsde(0s) Trsdu(.18s) Trsp(border-bottom-width) C(lightTheme) C(lightTheme):h" href="https://www.yahoo.com/news/" data-reactid="9">
+ <!-- react-empty: 10 -->
+ <!-- react-text: 11 -->News Home
+ <!-- /react-text -->
+ </a>
+ </div>
+ </div>
+ <div class="nr-applet-main-nav-right Bxz(bb) Fl(end) Px(navPaddings) H(navHeight) Miw(160px) H(itemHeight_uhMagDesign)!" data-reactid="12">
+ <div class="Pos(r) D(ib) P(0) Lh(n)" data-reactid="13">
+ <div class="Pos(r) D(ib) Cur(d) Ta(start) Tal(start) Fz(14px) Lh(cateNavHeight) Mend(15px) C(lightTheme) Fz(13px)! Lh(itemHeight_uhMagDesign)! Fw(n)! Mt(1px)! Mstart(90px) Mend(22px) H(itemHeight_uhMagDesign)!" data-reactid="14"><span class="Va(m)" data-reactid="15"><span data-reactid="16">Follow Us</span></span>
+ </div>
+ <div class="D(ib) Va(t)" data-key="tumblr" data-reactid="17">
+ <div class="Pos(r) D(ib) Cur(d) Va(t)" style="height:42px;" data-reactid="18">
+ <div class="D(ib)" style="height:42px;line-height:42px;padding:0 10;padding-left:10px;" data-reactid="19"><a target="_blank" aria-label="tumblr" href="https://tumblr.com/follow/yahoonews" rel="me" class="D(ib)" data-reactid="20"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="15" style="vertical-align:middle;cursor:pointer;margin-top:0px;margin-left:0px;color:#000;fill:#000;stroke:#000;stroke-width:0;" height="15" viewBox="0 0 32 32" data-icon="LogoTumblr" data-reactid="21"><path d="M20.685 25.83c-1.493 0-3.54-.91-3.54-1.516V13.482h6.844V8.735h-6.846V1.6h-3.917c-.1 1.815-.645 3.45-1.482 4.702-.384.573-.827 1.066-1.32 1.45-.794.625-1.71.983-2.682.983h-.605v4.747h3.285V25.2c0 4.428 3.973 5.218 6.71 5.2.62-.007 1.18 0 1.785 0 4.18 0 4.98-.387 5.944-.9v-5.077c-.006.003-.013.013-.02.016-1.205.773-2.668 1.39-4.157 1.39z" data-reactid="22"/></svg></a></div>
+ </div>
+ </div>
+ <div class="D(ib) Va(t)" data-key="twitter" data-reactid="23">
+ <div class="Pos(r) D(ib) Cur(d) Va(t)" style="height:42px;" data-reactid="24">
+ <div class="D(ib)" style="height:42px;line-height:42px;padding:0 10;padding-left:10px;" data-reactid="25"><a target="_blank" aria-label="twitter" href="https://www.twitter.com/yahoonews" rel="me" class="D(ib)" data-reactid="26"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="16" style="vertical-align:middle;cursor:pointer;margin-top:0px;margin-left:0px;color:#000;fill:#000;stroke:#000;stroke-width:0;" height="16" viewBox="0 0 32 32" data-icon="LogoTwitter" data-reactid="27"><path d="M30.402 7.094c-1.058.47-2.198.782-3.392.928 1.218-.725 2.154-1.885 2.595-3.256-1.134.674-2.405 1.165-3.75 1.43-1.077-1.148-2.612-1.862-4.31-1.862-3.268 0-5.915 2.635-5.915 5.893 0 .464.056.91.155 1.34-4.915-.244-9.266-2.59-12.18-6.158-.51.87-.806 1.885-.806 2.96 0 2.044 1.045 3.847 2.633 4.905-.974-.032-1.883-.3-2.68-.736v.07c0 2.857 2.034 5.236 4.742 5.773-.498.138-1.022.21-1.56.21-.38 0-.75-.034-1.11-.103.75 2.344 2.93 4.042 5.518 4.09-2.024 1.58-4.57 2.523-7.333 2.523-.478 0-.952-.032-1.41-.085 2.613 1.674 5.72 2.65 9.054 2.65 10.872 0 16.814-8.976 16.814-16.765 0-.254-.008-.507-.018-.762 1.155-.83 2.155-1.868 2.95-3.047z" data-reactid="28"/></svg></a></div>
+ </div>
+ </div>
+ <div class="D(ib) Va(t)" data-key="facebook" data-reactid="29">
+ <div class="Pos(r) D(ib) Cur(d) Va(t)" style="height:42px;" data-reactid="30">
+ <div class="D(ib)" style="height:42px;line-height:42px;padding:0 10;padding-left:10px;" data-reactid="31"><a target="_blank" aria-label="facebook" href="https://www.facebook.com/YahooNews" rel="me" class="D(ib)" data-reactid="32"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="15" style="vertical-align:middle;cursor:pointer;margin-top:0px;margin-left:0px;color:#000;fill:#000;stroke:#000;stroke-width:0;" height="15" viewBox="0 0 32 32" data-icon="LogoFacebook" data-reactid="33"><path d="M12.752 30.4V16.888H9.365V12.02h3.387V7.865c0-3.264 2.002-6.264 6.613-6.264 1.866 0 3.248.19 3.248.19l-.11 4.54s-1.404-.013-2.943-.013c-1.66 0-1.93.81-1.93 2.152v3.553h5.008l-.22 4.867h-4.786V30.4h-4.88z" data-reactid="34"/></svg></a></div>
+ </div>
+ </div>
+ <div class="D(ib) Va(t)" data-key="instagram" data-reactid="35">
+ <div class="Pos(r) D(ib) Cur(d) Va(t)" style="height:42px;" data-reactid="36">
+ <div class="D(ib)" style="height:42px;line-height:42px;padding:0px;padding-left:10px;" data-reactid="37"><a target="_blank" aria-label="instagram" href="https://www.instagram.com/yahoonews" rel="me" class="D(ib)" data-reactid="38"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="15" style="vertical-align:middle;cursor:pointer;margin-top:0px;margin-left:0px;color:#000;fill:#000;stroke:#000;stroke-width:0;" height="15" viewBox="0 0 100 100" data-icon="LogoInstagram" data-reactid="39"><path d="M9.75 0c-.266.088-.53.19-.8.262C4.27 1.536 1.34 4.505.21 9.236c-.04.177-.14.342-.21.514v80.145c.17.62.31 1.25.518 1.853 1.48 4.294 4.425 6.95 8.886 7.898.185.04.362.128.54.192h79.95c.62-.17 1.25-.308 1.856-.514 4.23-1.44 6.842-4.352 7.873-8.695.06-.25.145-.49.217-.735V9.945c-.17-.62-.31-1.25-.516-1.86C97.897 3.88 95 1.282 90.697.224c-.21-.05-.405-.148-.607-.223H9.75zm68.965 11.49c1.866 0 3.733.01 5.6.028 2.406.024 3.994 1.67 4.005 4.087.017 3.668.016 7.336 0 11.004-.01 2.49-1.576 4.048-4.086 4.072-1.85.018-3.7.004-5.55.004-1.852 0-3.7.02-5.55-.004-2.435-.033-3.952-1.528-3.97-3.955-.027-3.733-.026-7.467-.002-11.2.015-2.39 1.574-3.985 3.953-4.01 1.866-.018 3.733-.027 5.6-.027zm-28.75 19.266c10.61.028 19.116 8.55 19.117 19.16 0 10.646-8.57 19.196-19.21 19.166-10.61-.03-19.11-8.55-19.114-19.158-.005-10.645 8.56-19.194 19.207-19.168zm-38.45 11.562h8.557c-2.536 12.21.533 22.677 9.93 30.96 6.03 5.312 13.254 7.72 21.283 7.322 9.648-.48 17.498-4.63 23.272-12.366 5.78-7.742 7.326-16.452 5.158-25.904h8.61v41.637c-.002 2.79-1.556 4.354-4.34 4.355-22.714.003-45.425.003-68.14 0-2.7 0-4.324-1.56-4.325-4.17-.007-13.647-.004-27.295-.004-40.943v-.892z" data-reactid="40"/></svg></a></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="nr-applet-main-nav-left H(navHeight) Mend(160px) H(itemHeight_uhMagDesign)!" data-reactid="41">
+ <div class="mainNavInnerWrapper D(tb) H(navHeight) H(itemHeight_uhMagDesign)!" data-reactid="42">
+ <div class="Lh(itemHeight) D(tbc) Lh(itemHeight_uhMagDesign)!" style="width: 646px;" data-reactid="43">
+ <ul class="H(navHeight) Ov(h) H(itemHeight_uhMagDesign)!" data-reactid="44">
+ <li class="nr-applet-main-nav-item Pend(navPaddings) Whs(nw) Fl(start) H(itemHeight) H(itemHeight_uhMagDesign)! Pend(30px)!" data-subnav-type="networknav_root-1" data-reactid="45">
+ <a class="nr-applet-nav-item Td(n) nr-list-link Ell Td(n) D(ib) Bdbs(s):h Pos(r) Bdc($fg-header) Lh(cateNavHeight) C(lightTheme):h C(lightTheme) H(42px) Bdw(0) Bdbs(s)! Bxz(bb) Bdbc(navliteLinkUnderline)!:h Bdbw(4px)!:h Bdbs(s)!:h Bdbc(navliteLinkUnderline)!:f Bdbw(4px)!:f Bdbs(s)!:f O(n) Bdbc(#fff)! Trstf(l) Trsde(0s) Trsdu(.18s) Trsp(border-bottom-width) Fw(b)! Lh(itemHeight_uhMagDesign)! Va(m)! Fz(13px) Fl(start) openSubNav" href="https://www.yahoo.com/news/us/" data-reactid="46">
+ <!-- react-empty: 47 -->
+ <!-- react-text: 48 -->US
+ <!-- /react-text -->
+ </a>
+ </li>
+ <li class="nr-applet-main-nav-item Pend(navPaddings) Whs(nw) Fl(start) H(itemHeight) H(itemHeight_uhMagDesign)! Pend(30px)!" data-subnav-type="networknav_root-2" data-reactid="49">
+ <a class="nr-applet-nav-item Td(n) nr-list-link Ell Td(n) D(ib) Bdbs(s):h Pos(r) Bdc($fg-header) Lh(cateNavHeight) C(lightTheme):h C(lightTheme) H(42px) Bdw(0) Bdbs(s)! Bxz(bb) Bdbc(navliteLinkUnderline)!:h Bdbw(4px)!:h Bdbs(s)!:h Bdbc(navliteLinkUnderline)!:f Bdbw(4px)!:f Bdbs(s)!:f O(n) Bdbc(#fff)! Trstf(l) Trsde(0s) Trsdu(.18s) Trsp(border-bottom-width) Fw(b)! Lh(itemHeight_uhMagDesign)! Va(m)! Fz(13px) Fl(start) openSubNav" href="https://www.yahoo.com/news/world/" data-reactid="50">
+ <!-- react-empty: 51 -->
+ <!-- react-text: 52 -->World
+ <!-- /react-text -->
+ </a>
+ </li>
+ <li class="nr-applet-main-nav-item Pend(navPaddings) Whs(nw) Fl(start) H(itemHeight) H(itemHeight_uhMagDesign)! Pend(30px)!" data-subnav-type="networknav_root-3" data-reactid="53">
+ <a class="nr-applet-nav-item Td(n) nr-list-link Ell Td(n) D(ib) Bdbs(s):h Pos(r) Bdc($fg-header) Lh(cateNavHeight) C(lightTheme):h C(lightTheme) H(42px) Bdw(0) Bdbs(s)! Bxz(bb) Bdbc(navliteLinkUnderline)!:h Bdbw(4px)!:h Bdbs(s)!:h Bdbc(navliteLinkUnderline)!:f Bdbw(4px)!:f Bdbs(s)!:f O(n) Bdbc(#fff)! Trstf(l) Trsde(0s) Trsdu(.18s) Trsp(border-bottom-width) Fw(b)! Lh(itemHeight_uhMagDesign)! Va(m)! Fz(13px) Fl(start) openSubNav" href="https://www.yahoo.com/news/politics/" data-reactid="54">
+ <!-- react-empty: 55 -->
+ <!-- react-text: 56 -->Politics
+ <!-- /react-text -->
+ </a>
+ </li>
+ <li class="nr-applet-main-nav-item Pend(navPaddings) Whs(nw) Fl(start) H(itemHeight) H(itemHeight_uhMagDesign)! Pend(30px)!" data-subnav-type="networknav_root-4" data-reactid="57">
+ <a class="nr-applet-nav-item Td(n) nr-list-link Ell Td(n) D(ib) Bdbs(s):h Pos(r) Bdc($fg-header) Lh(cateNavHeight) C(lightTheme):h C(lightTheme) H(42px) Bdw(0) Bdbs(s)! Bxz(bb) Bdbc(navliteLinkUnderline)!:h Bdbw(4px)!:h Bdbs(s)!:h Bdbc(navliteLinkUnderline)!:f Bdbw(4px)!:f Bdbs(s)!:f O(n) Bdbc(#fff)! Trstf(l) Trsde(0s) Trsdu(.18s) Trsp(border-bottom-width) Fw(b)! Lh(itemHeight_uhMagDesign)! Va(m)! Fz(13px) Fl(start) openSubNav" href="https://www.yahoo.com/tech" data-reactid="58">
+ <!-- react-empty: 59 -->
+ <!-- react-text: 60 -->Tech
+ <!-- /react-text -->
+ </a>
+ </li>
+ <li class="nr-applet-main-nav-item Pend(navPaddings) Whs(nw) Fl(start) H(itemHeight) H(itemHeight_uhMagDesign)! Pend(30px)!" data-subnav-type="networknav_root-5" data-reactid="61">
+ <a class="nr-applet-nav-item Td(n) nr-list-link Ell Td(n) D(ib) Bdbs(s):h Pos(r) Bdc($fg-header) Lh(cateNavHeight) C(lightTheme):h C(lightTheme) H(42px) Bdw(0) Bdbs(s)! Bxz(bb) Bdbc(navliteLinkUnderline)!:h Bdbw(4px)!:h Bdbs(s)!:h Bdbc(navliteLinkUnderline)!:f Bdbw(4px)!:f Bdbs(s)!:f O(n) Bdbc(#fff)! Trstf(l) Trsde(0s) Trsdu(.18s) Trsp(border-bottom-width) Fw(b)! Lh(itemHeight_uhMagDesign)! Va(m)! Fz(13px) Fl(start) openSubNav" href="https://www.yahoo.com/news/science/" data-reactid="62">
+ <!-- react-empty: 63 -->
+ <!-- react-text: 64 -->Science
+ <!-- /react-text -->
+ </a>
+ </li>
+ <li class="nr-applet-main-nav-item Pend(navPaddings) Whs(nw) Fl(start) H(itemHeight) H(itemHeight_uhMagDesign)! Pend(30px)!" data-subnav-type="networknav_root-6" data-reactid="65">
+ <a class="nr-applet-nav-item Td(n) nr-list-link Ell Td(n) D(ib) Bdbs(s):h Pos(r) Bdc($fg-header) Lh(cateNavHeight) C(lightTheme):h C(lightTheme) H(42px) Bdw(0) Bdbs(s)! Bxz(bb) Bdbc(navliteLinkUnderline)!:h Bdbw(4px)!:h Bdbs(s)!:h Bdbc(navliteLinkUnderline)!:f Bdbw(4px)!:f Bdbs(s)!:f O(n) Bdbc(#fff)! Trstf(l) Trsde(0s) Trsdu(.18s) Trsp(border-bottom-width) Fw(b)! Lh(itemHeight_uhMagDesign)! Va(m)! Fz(13px) Fl(start) openSubNav" href="https://www.yahoo.com/news/odd/" data-reactid="66">
+ <!-- react-empty: 67 -->
+ <!-- react-text: 68 -->Odd News
+ <!-- /react-text -->
+ </a>
+ </li>
+ <li class="nr-applet-main-nav-item Pend(navPaddings) Whs(nw) Fl(start) H(itemHeight) H(itemHeight_uhMagDesign)! Pend(30px)!" data-subnav-type="networknav_root-7" data-reactid="69">
+ <a class="nr-applet-nav-item Td(n) nr-list-link Ell Td(n) D(ib) Bdbs(s):h Pos(r) Bdc($fg-header) Lh(cateNavHeight) C(lightTheme):h C(lightTheme) H(42px) Bdw(0) Bdbs(s)! Bxz(bb) Bdbc(navliteLinkUnderline)!:h Bdbw(4px)!:h Bdbs(s)!:h Bdbc(navliteLinkUnderline)!:f Bdbw(4px)!:f Bdbs(s)!:f O(n) Bdbc(#fff)! Trstf(l) Trsde(0s) Trsdu(.18s) Trsp(border-bottom-width) Fw(b)! Lh(itemHeight_uhMagDesign)! Va(m)! Fz(13px) Fl(start) openSubNav" href="https://gma.yahoo.com/" data-reactid="70">
+ <!-- react-empty: 71 -->
+ <!-- react-text: 72 -->ABC News
+ <!-- /react-text -->
+ </a>
+ </li>
+ <li class="nr-applet-main-nav-item Pend(navPaddings) Whs(nw) Fl(start) H(itemHeight) H(itemHeight_uhMagDesign)! Pend(30px)!" data-subnav-type="networknav_root-8" data-reactid="73">
+ <a class="nr-applet-nav-item Td(n) nr-list-link Ell Td(n) D(ib) Bdbs(s):h Pos(r) Bdc($fg-header) Lh(cateNavHeight) C(lightTheme):h C(lightTheme) H(42px) Bdw(0) Bdbs(s)! Bxz(bb) Bdbc(navliteLinkUnderline)!:h Bdbw(4px)!:h Bdbs(s)!:h Bdbc(navliteLinkUnderline)!:f Bdbw(4px)!:f Bdbs(s)!:f O(n) Bdbc(#fff)! Trstf(l) Trsde(0s) Trsdu(.18s) Trsp(border-bottom-width) Fw(b)! Lh(itemHeight_uhMagDesign)! Va(m)! Fz(13px) Fl(start) openSubNav" href="https://www.yahoo.com/news/originals/" data-reactid="74">
+ <!-- react-empty: 75 -->
+ <!-- react-text: 76 -->Yahoo Originals
+ <!-- /react-text -->
+ </a>
+ </li>
+ <li class="nr-applet-main-nav-item Pend(navPaddings) Whs(nw) Fl(start) H(itemHeight) H(itemHeight_uhMagDesign)! Pend(30px)!" data-subnav-type="networknav_root-9" data-reactid="77">
+ <a class="nr-applet-nav-item Td(n) nr-list-link Ell Td(n) D(ib) Bdbs(s):h Pos(r) Bdc($fg-header) Lh(cateNavHeight) C(lightTheme):h C(lightTheme) H(42px) Bdw(0) Bdbs(s)! Bxz(bb) Bdbc(navliteLinkUnderline)!:h Bdbw(4px)!:h Bdbs(s)!:h Bdbc(navliteLinkUnderline)!:f Bdbw(4px)!:f Bdbs(s)!:f O(n) Bdbc(#fff)! Trstf(l) Trsde(0s) Trsdu(.18s) Trsp(border-bottom-width) Fw(b)! Lh(itemHeight_uhMagDesign)! Va(m)! Fz(13px) Fl(start) openSubNav" href="https://www.yahoo.com/katiecouric" data-reactid="78">
+ <!-- react-empty: 79 -->
+ <!-- react-text: 80 -->Katie Couric
+ <!-- /react-text -->
+ </a>
+ </li>
+ <li class="nr-applet-main-nav-item Pend(navPaddings) Whs(nw) Fl(start) H(itemHeight) H(itemHeight_uhMagDesign)! Pend(30px)!" data-subnav-type="networknav_root-10" data-reactid="81">
+ <a class="nr-applet-nav-item Td(n) nr-list-link Ell Td(n) D(ib) Bdbs(s):h Pos(r) Bdc($fg-header) Lh(cateNavHeight) C(lightTheme):h C(lightTheme) H(42px) Bdw(0) Bdbs(s)! Bxz(bb) Bdbc(navliteLinkUnderline)!:h Bdbw(4px)!:h Bdbs(s)!:h Bdbc(navliteLinkUnderline)!:f Bdbw(4px)!:f Bdbs(s)!:f O(n) Bdbc(#fff)! Trstf(l) Trsde(0s) Trsdu(.18s) Trsp(border-bottom-width) Fw(b)! Lh(itemHeight_uhMagDesign)! Va(m)! Fz(13px) Fl(start) openSubNav" href="https://www.yahoo.com/author/matt-bai" data-reactid="82">
+ <!-- react-empty: 83 -->
+ <!-- react-text: 84 -->Matt Bai
+ <!-- /react-text -->
+ </a>
+ </li>
+ </ul>
+ </div>
+ <div class="D(tbc) Va(t) Lh(itemHeight) Lh(itemHeight_uhMagDesign)!" data-reactid="85">
+ <div class="nr-applet-moreNav Fl(start) Pos(r) H(itemHeight) H(itemHeight_uhMagDesign)!" data-subnav-type="more-menu" data-reactid="86"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="16" style="vertical-align:middle;cursor:pointer;margin-top:-1px;color:#26282a;fill:#26282a;stroke:#26282a;stroke-width:0;" height="16" viewBox="0 0 96 96" data-icon="StreamShare" data-reactid="87"><path d="M16 38c-5.516 0-10 4.477-10 10 0 5.525 4.484 10 10 10 5.53 0 10-4.475 10-10 0-5.523-4.47-10-10-10zM48 38c-5.516 0-10 4.477-10 10 0 5.525 4.484 10 10 10 5.53 0 10-4.475 10-10 0-5.523-4.47-10-10-10zM80 38c-5.516 0-10 4.477-10 10 0 5.525 4.484 10 10 10 5.53 0 10-4.475 10-10 0-5.523-4.47-10-10-10z" data-reactid="88"/></svg></div>
+ </div>
+ </div>
+ </div>
+ <div class="W(100%) H(0)! H(2px) Bgc($c-divider)" data-reactid="89"></div>
+ </div>
+ </div>
+ </div>
+ </nav>
+ </div>
+ </div>
+ </div>
+ <script>
+ if (window.performance) {
+ window.performance.mark & amp; & amp;
+ window.performance.mark('Navrail');
+ window.performance.measure & amp; & amp;
+ window.performance.measure('NavrailDone', 'PageStart', 'Navrail');
+ }
+ </script>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="YDC-Lead" class="YDC-Lead">
+ <div id="YDC-Lead-Stack" class="YDC-Lead-Stack">
+ <div>
+ <div id="mrt-node-tgtm-Lead-0-Ad">
+ <div id="tgtm-Lead-0-Ad-Proxy" data-reactroot="" data-reactid="1" data-react-checksum="-1019061424">
+ <div data-reactid="2">
+ <div id="mrtMAST-9-sizer" class="darla-container D-n D(n)" data-reactid="3">
+ <div id="mrtMAST-9-wrapper" class="" data-reactid="4">
+ <div id="mrtdestMAST-9" style=""></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <script>
+ if (window.performance) {
+ window.performance.mark & amp; & amp;
+ window.performance.mark('tgtm-Lead-0-Ad');
+ window.performance.measure & amp; & amp;
+ window.performance.measure('tgtm-Lead-0-AdDone', 'PageStart', 'tgtm-Lead-0-Ad');
+ }
+ </script>
+ <div id="mrt-node-tgtm-Lead-1-Ad">
+ <div id="tgtm-Lead-1-Ad-Proxy" data-reactroot="" data-reactid="1" data-react-checksum="686921517">
+ <div data-reactid="2">
+ <div id="mrtLDRB-9-sizer" class="darla-container" style="margin-bottom:10px;margin-top:0px;margin-left:0px;margin-right:0px;text-align:center;line-height:0px;padding-bottom:13px;padding-top:13px;" data-reactid="3">
+ <div id="mrtLDRB-9-wrapper" class="" data-reactid="4">
+ <div id="sb_rel_mrtdestLDRB-9" class="darla" style="position: relative; z-index: 9; width: 728px; height: 90px; visibility: inherit; display: inline-block; font-size: 0px;"><iframe style="position: absolute; z-index: 10; width: 728px; height: 90px; top: 0px; left: 0px; visibility: inherit; display: block;" id="mrtdestLDRB-9" src="https://s.yimg.com/rq/darla/2-9-19/html/r-sf.html" async="" scrolling="no" allowtransparency="true" hidefocus="true" tabindex="-1" marginwidth="0" marginheight="0" frameborder="no"></iframe></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <script>
+ if (window.performance) {
+ window.performance.mark & amp; & amp;
+ window.performance.mark('tgtm-Lead-1-Ad');
+ window.performance.measure & amp; & amp;
+ window.performance.measure('tgtm-Lead-1-AdDone', 'PageStart', 'tgtm-Lead-1-Ad');
+ }
+ </script>
+ <div id="mrt-node-tgtm-Lead-2-FeatureBar">
+ <div id="tgtm-Lead-2-FeatureBar-Proxy" data-reactroot="" data-reactid="1" data-react-checksum="109322601">
+ <!-- react-empty: 2 -->
+ </div>
+ </div>
+ <script>
+ if (window.performance) {
+ window.performance.mark & amp; & amp;
+ window.performance.mark('tgtm-Lead-2-FeatureBar');
+ window.performance.measure & amp; & amp;
+ window.performance.measure('tgtm-Lead-2-FeatureBarDone', 'PageStart', 'tgtm-Lead-2-FeatureBar');
+ }
+ </script>
+ </div>
+ </div>
+ </div>
+ <div class="Pos(r) Bgc($bg-content) Panel-postopen_D(n) Miw(1007px) Maw(1260px) tablet_Miw(600px)--noRightRail Bxz(bb) Bdstartc(t) Bdstartw(20px) Bdendc(t) Bdends(s) Bdendw(20px) Bdstarts(s) Mx(a)">
+ <div id="YDC-Col1" class="YDC-Col1 Bdendc(t) Bdendw(340px) tablet_Bdendw(0)--noRightRail Bdends(s) Mt(17px) Pos(r)">
+ <div id="Main" role="content" tabindex="-1">
+ <div id="mrt-node-tgtm-YDC-Stream">
+ <div id="tgtm-YDC-Stream-Proxy" data-reactroot="" data-reactid="1" data-react-checksum="2049776449">
+ <div id="tgtm-YDC-Stream" class="tdv2-applet-stream Bdc(#e2e2e6)" style="max-width:900px;" data-reactid="2">
+ <ul class="Mb(0) Ov(h) P(0) Wow(bw)" data-reactid="3">
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)" data-reactid="4">
+ <div id="item-0" class="W(100%) Maw(900px) Mb(15px)" data-test-locator="streamhero" data-reactid="5">
+ <div class="Pos(r) Cf Wow(bw)" data-reactid="6">
+ <div class="Pos(r) streamHeroImage W(76.3%) W(68%)--md1100 Fl(start) Mend(2px)" data-reactid="7">
+ <a class="Td(n)" href="/gma/christmas-party-may-triggered-san-bernardino-terror-attack-103800489--abc-news-topstories.html" data-reactid="8">
+ <div class="Pos(r) C(#000) H(0) Ovy(h)" tabindex="-1" style="padding-bottom:56.3%;" data-reactid="9"><img alt="Party may have been San Bernardino trigger" class="Trsdu(.42s) W(100%) Trs(streamHeroImgFilterTrans) streamHeroImage:h_Op(0.9) streamHeroImage:h_Fil(streamHeroImgFilterHover) Fil(streamHeroImgFilter)" src="/sy/uu/api/res/1.2/x_tcbZOygbxFrzTIs.Wb2w--/Zmk9c3RyaW07aD0zNzg7cHlvZmY9MDtxPTk1O3c9NjcyO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://s.yimg.com/lo/api/res/1.2/OsxooCBCKqU8KAJk0gF.Tg--%7EC/Zmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy/https://media.zenfs.com/creatr-images/GLB/2016-12-01/077ba5f0-b805-11e6-9597-bb741f194c03_Syed-Farook-nh.jpg.cf.jpg" data-reactid="10" /></div>
+ <div class="StretchedBox W(100%) H(100%) ie-7_H(a) Bg(streamHeroLeadGradient)" data-reactid="11"></div>
+ </a>
+ <div class="Pos(a) Z(2) B(0) Mb(10px) Pstart(25px) Pstart(18px)--md1100" data-test-locator="streamhero-actions" data-reactid="12"><button aria-label="Sign in to like" class="D(ib) Ta(c) Va(m) Mend(30px) Mt(2px) NoJs_D(n) Bd(0) M(0) P(0) Va(m)" href="#" data-reactid="13"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="20" style="fill:#fff;stroke:#fff;stroke-width:0;vertical-align:bottom;" height="20" viewBox="0 0 48 48" data-icon="favorite" data-reactid="14"><path d="M34.055 8.48c1.928 0 3.747.8 5.127 2.256 2.914 3.076 2.914 8.08.002 11.155L24 37.87 8.824 21.897c-2.916-3.08-2.918-8.085-.002-11.163 1.377-1.455 3.197-2.256 5.13-2.256 1.606 0 3.427 0 7.267 4.512L24 16.254l2.78-3.265c3.842-4.51 5.665-4.51 7.275-4.51m0-3.653c-3.123 0-5.84.848-10.055 5.797-4.266-5.01-6.984-5.797-10.05-5.797-2.945 0-5.706 1.208-7.78 3.398-4.227 4.458-4.227 11.72.002 16.184L24 43.173l17.832-18.77c4.225-4.46 4.225-11.722 0-16.18-2.073-2.19-4.836-3.397-7.777-3.397" data-reactid="15"/></svg></button>
+ <div class="share-menu-wrapper D(ib) Pos(r) Mend(30px) Mt(2px) Va(m) Z(1)" style="-webkit-tap-highlight-color:transparent;" data-reactid="16"><button aria-label="Share Menu" class="O(0):f M(0) P(0) B(0) react-button" data-reactid="17"><svg xmlns="http://www.w3.org/2000/svg" class="M(a) Cur(p)" width="20" style="vertical-align:initial;fill:#fff;stroke:#fff;stroke-width:0;" height="20" viewBox="0 0 48 48" data-icon="share" data-reactid="18"><path d="M41.574 18.795c-1.104 0-2 .896-2 2v22h-28v-22c0-1.104-.896-2-2-2s-2 .896-2 2v24c0 1.105.896 2 2 2h32c1.104 0 2-.895 2-2v-24c0-1.104-.894-2-2-2zM21.044 13.652l2.53-2.742v22.385h4V10.91l2.53 2.742c.395.428.932.643 1.47.643.484 0 .972-.174 1.355-.53.81-.75.86-2.015.112-2.825l-7.47-8.092-7.47 8.092c-.75.81-.698 2.076.113 2.826.813.748 2.078.697 2.83-.114z" data-reactid="19"/></svg></button></div><a class="Pos(r) Cur(p) Bdw(0) Va(m) C(#ccc) Td(n) P(0) D(ib)" href="/gma/christmas-party-may-triggered-san-bernardino-terror-attack-103800489--abc-news-topstories.html" data-reactid="20"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="21" style="position:relative;top:1px;margin:auto;vertical-align:middle;fill:#fff;stroke:#fff;stroke-width:0;" height="21" viewBox="0 0 16 16" data-icon="comments" data-reactid="21"><path d="M14.002 10c0 .735-.625 1.333-1.395 1.333h-8.58l-2.028 1.892-.002-9.892C1.998 2.598 2.623 2 3.392 2h9.215c.77 0 1.395.598 1.395 1.333V10zM3.392.667C1.887.667.667 1.86.667 3.334v11.333c0 .265.157.505.4.61.085.038.176.056.266.056.165 0 .328-.062.453-.18l2.765-2.486h8.058c1.505 0 2.726-1.194 2.726-2.667V3.333c0-1.473-1.22-2.667-2.726-2.667H3.393zm7.947 4H4.68c-.367 0-.666.298-.666.667S4.314 6 4.682 6h6.657c.367 0 .665-.298.665-.666s-.298-.667-.666-.667zM4.68 7.333c-.367 0-.666.298-.666.667s.298.667.666.667h6.657c.367 0 .665-.3.665-.667s-.298-.667-.666-.667H4.68z" data-reactid="22"/></svg><span data-reactid="23"><span class="Fw(b) Pos(r) Mstart(4px) Fz(13px)" style="color:#fff;" data-reactid="24">2559</span><span class="Hidden" data-reactid="25">Comments. Click to view comments</span></span></a></div>
+ <div class="Pos(a) Pstart(25px) Pstart(18px)--md1100 Pend(45px) Pend(25px)--md1100 C(#fff) Z(1) Mb(2px) B(42px)" data-reactid="26">
+ <a class="Fw(b) Td(n) C(#fff) C(#fff):h" href="/gma/christmas-party-may-triggered-san-bernardino-terror-attack-103800489--abc-news-topstories.html" data-reactid="27">
+ <h2 class="Fz(25px) Fz(22px)--md1100 Lh(31px) Lh(25px)--md1100 Fw(700) Tsh(streamHeroTextShadow) Td(u):h" data-reactid="28">Party may have been San Bernardino trigger</h2>
+ <p class="Fz(14px) C(#f7f8ff) Tov(e) LineClamp(2,34px) firefox_D(b)! Tsh(streamHeroTextShadow) Fw(400) Pt(6px) Pb(4px)" data-reactid="29"><span class="Mend(5px)" data-reactid="30">The 2015 rampage may have been sparked by a training session with decorations that included a Christmas tree, authorities believe.</span><span class="D(ib) Td(u):h Fw(600) C(#fff)" data-reactid="31"><!-- react-text: 32 -->New details<!-- /react-text --><!-- react-text: 33 --> »<!-- /react-text --></span></p>
+ </a>
+ </div>
+ </div>
+ <div class="Ov(h) Mstart(76.3%) Mstart(68%)--md1100" data-reactid="34">
+ <ul class="Pos(r) H(0) Pb(170.25%) Pb(115.5%)--md1100" style="top:0;transition:top .4s;" data-reactid="35">
+ <li class="Pos(r) streamHeroImage Mb(2px) D(b)" data-reactid="36">
+ <a class="ie-7_D(b)" href="/news/what-just-happened-with-carrier-is-crazy-223106708.html" data-reactid="37">
+ <div class="Pos(r) C(#000) H(0) Ovy(h) Pb(56.16%)" tabindex="-1" data-reactid="38"><img alt="Trump's Carrier deal raises red flags" class="Trsdu(.42s) W(100%) Trs(streamHeroImgFilterTrans) streamHeroImage:h_Op(0.9) streamHeroImage:h_Fil(streamHeroImgFilterHover) Fil(streamHeroImgFilter)" src="/sy/uu/api/res/1.2/c_5m.q81fhiHR_OtVl4LXg--/Zmk9c3RyaW07aD0yMzI7cHlvZmY9MDtxPTgwO3c9NDEyO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://s.yimg.com/lo/api/res/1.2/Kwclfh9FhnLRkXCAxyhr1A--%7EC/Zmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy/https://media.zenfs.com/creatr-images/GLB/2016-12-01/60b4c4f0-b821-11e6-a523-df2c277ad130_carrier3.jpg.cf.jpg" data-reactid="39" /></div>
+ <div class="StretchedBox W(100%) H(100%) ie-7_H(a) Bg(streamHeroGradient)" data-reactid="40"></div>
+ <h3 class="Pos(a) Td(n) C(#fff) Fz(13px) Td(u):h LineClamp(3,45px) Mend(30px) Mend(23px)--md1100 Mstart(12px) B(0) Fw(b) Mb(10px) Lh(15px) Tsh(streamHeroTextShadow) Whs(n)" data-reactid="41">Trump's Carrier deal raises red flags</h3>
+ </a>
+ </li>
+ <li class="Pos(r) streamHeroImage Mb(2px) D(b)" data-reactid="42">
+ <a class="ie-7_D(b)" href="/news/breitbart-urges-boycott-of-kelloggs-after-cereal-maker-pulls-ads-152042623.html" data-reactid="43">
+ <div class="Pos(r) C(#000) H(0) Ovy(h) Pb(56.16%)" tabindex="-1" data-reactid="44"><img alt="Breitbart starts war with Kellogg's " class="Trsdu(.42s) W(100%) Trs(streamHeroImgFilterTrans) streamHeroImage:h_Op(0.9) streamHeroImage:h_Fil(streamHeroImgFilterHover) Fil(streamHeroImgFilter)" src="/sy/uu/api/res/1.2/nRoupSfchK9xlLaGwfqbrQ--/Zmk9c3RyaW07aD0yMzI7cHlvZmY9MDtxPTgwO3c9NDEyO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://s.yimg.com/lo/api/res/1.2/jBk_K19QS_R2N6cv1Jo.nQ--%7EC/Zmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy/https://media.zenfs.com/creatr-images/GLB/2016-12-01/578a60f0-b7e1-11e6-84d7-afd41e7a457a_cereal-nh.jpg.cf.jpg" data-reactid="45" /></div>
+ <div class="StretchedBox W(100%) H(100%) ie-7_H(a) Bg(streamHeroGradient)" data-reactid="46"></div>
+ <h3 class="Pos(a) Td(n) C(#fff) Fz(13px) Td(u):h LineClamp(3,45px) Mend(30px) Mend(23px)--md1100 Mstart(12px) B(0) Fw(b) Mb(10px) Lh(15px) Tsh(streamHeroTextShadow) Whs(n)" data-reactid="47">Breitbart starts war with Kellogg's </h3>
+ </a>
+ </li>
+ <li class="Pos(r) streamHeroImage Mb(2px) D(b)" data-reactid="48">
+ <a class="ie-7_D(b)" href="/news/former-cuban-prisoner-alan-gross-compares-trump-to-castro-153752897.html" data-reactid="49">
+ <div class="Pos(r) C(#000) H(0) Ovy(h) Pb(56.16%)" tabindex="-1" data-reactid="50"><img alt="Ex-Cuban prisoner likens Trump to Castro" class="Trsdu(.42s) W(100%) Trs(streamHeroImgFilterTrans) streamHeroImage:h_Op(0.9) streamHeroImage:h_Fil(streamHeroImgFilterHover) Fil(streamHeroImgFilter)" src="/sy/uu/api/res/1.2/lBBjVn8yZTJMYlmvXks9kg--/Zmk9c3RyaW07aD0yMzI7cHlvZmY9MDtxPTgwO3c9NDEyO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://s.yimg.com/lo/api/res/1.2/9ybaU0mkis_MEU8KEXWu_A--%7EC/Zmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy/https://media.zenfs.com/creatr-images/GLB/2016-12-01/b1c4e1d0-b7e6-11e6-acc0-99cee64c4025_gross-nh.jpg.cf.jpg" data-reactid="51" /></div>
+ <div class="StretchedBox W(100%) H(100%) ie-7_H(a) Bg(streamHeroGradient)" data-reactid="52"></div>
+ <h3 class="Pos(a) Td(n) C(#fff) Fz(13px) Td(u):h LineClamp(3,45px) Mend(30px) Mend(23px)--md1100 Mstart(12px) B(0) Fw(b) Mb(10px) Lh(15px) Tsh(streamHeroTextShadow) Whs(n)" data-reactid="53">Ex-Cuban prisoner likens Trump to Castro</h3>
+ </a>
+ </li>
+ <li class="Pos(r) streamHeroImage Mb(2px) D(b)">
+ <a class="ie-7_D(b)" href="/gma/husband-super-mom-describes-moment-alleged-kidnappers-released-002808159--abc-news-topstories.html">
+ <div class="Pos(r) C(#000) H(0) Ovy(h) Pb(56.16%)" tabindex="-1"><img alt="Husband of 'Super Mom' talks chilling release" class="Trsdu(.42s) W(100%) Trs(streamHeroImgFilterTrans) streamHeroImage:h_Op(0.9) streamHeroImage:h_Fil(streamHeroImgFilterHover) Fil(streamHeroImgFilter)" src="/sy/uu/api/res/1.2/mvvblrt5TPrXbJGw4wICFg--/Zmk9c3RyaW07aD0yMzI7cHlvZmY9MDtxPTgwO3c9NDEyO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://s.yimg.com/lo/api/res/1.2/T0TYaaPEXUYHNHelmXiDtA--%7EC/Zmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy/https://media.zenfs.com/creatr-images/GLB/2016-12-01/8d3461c0-b7db-11e6-8d5b-f33bfbc5e37a_papini.jpeg" /></div>
+ <div class="StretchedBox W(100%) H(100%) ie-7_H(a) Bg(streamHeroGradient)"></div>
+ <h3 class="Pos(a) Td(n) C(#fff) Fz(13px) Td(u):h LineClamp(3,45px) Mend(30px) Mend(23px)--md1100 Mstart(12px) B(0) Fw(b) Mb(10px) Lh(15px) Tsh(streamHeroTextShadow) Whs(n)">Husband of 'Super Mom' talks chilling release</h3>
+ </a>
+ </li>
+ <li class="Pos(r) streamHeroImage Mb(2px) D(b)">
+ <a class="ie-7_D(b)" href="/news/nobel-laureates-urge-trump-to-respect-scientific-integrity-174803237.html">
+ <div class="Pos(r) C(#000) H(0) Ovy(h) Pb(56.16%)" tabindex="-1"><img alt="Nobelists send open letter to Trump" class="Trsdu(.42s) W(100%) Trs(streamHeroImgFilterTrans) streamHeroImage:h_Op(0.9) streamHeroImage:h_Fil(streamHeroImgFilterHover) Fil(streamHeroImgFilter)" src="/sy/uu/api/res/1.2/cpzruLLm4bRxs_goFjFgag--/Zmk9c3RyaW07aD0yMzI7cHlvZmY9MDtxPTgwO3c9NDEyO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://s.yimg.com/lo/api/res/1.2/o6yR2afc_lIt7zODYEEznA--%7EC/Zmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy/https://media.zenfs.com/creatr-images/GLB/2016-12-01/90778330-b7f9-11e6-8883-b573f7cbf769_trump-nh.jpg.cf.jpg" /></div>
+ <div class="StretchedBox W(100%) H(100%) ie-7_H(a) Bg(streamHeroGradient)"></div>
+ <h3 class="Pos(a) Td(n) C(#fff) Fz(13px) Td(u):h LineClamp(3,45px) Mend(30px) Mend(23px)--md1100 Mstart(12px) B(0) Fw(b) Mb(10px) Lh(15px) Tsh(streamHeroTextShadow) Whs(n)">Nobelists send open letter to Trump</h3>
+ </a>
+ </li>
+ <li class="Pos(r) streamHeroImage Mb(2px) D(b)">
+ <a class="ie-7_D(b)" href="/news/petraeus-would-need-to-inform-his-probation-officer-if-he-joins-trumps-cabinet-172641753.html">
+ <div class="Pos(r) C(#000) H(0) Ovy(h) Pb(56.16%)" tabindex="-1"><img alt="General Petraeus may need to chat with PO" class="Trsdu(.42s) W(100%) Trs(streamHeroImgFilterTrans) streamHeroImage:h_Op(0.9) streamHeroImage:h_Fil(streamHeroImgFilterHover) Fil(streamHeroImgFilter)" src="/sy/uu/api/res/1.2/U6EahToM6GV_v_u7IMQLTA--/Zmk9c3RyaW07aD0yMzI7cHlvZmY9MDtxPTgwO3c9NDEyO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://s.yimg.com/lo/api/res/1.2/bMDj1RG6kYv1ci1TJb3hRw--%7EC/Zmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy/https://media.zenfs.com/creatr-images/GLB/2016-12-01/7e6aa6f0-b7f8-11e6-8713-53806c57f2fe_AP_16189675823987.jpg.cf.jpg" /></div>
+ <div class="StretchedBox W(100%) H(100%) ie-7_H(a) Bg(streamHeroGradient)"></div>
+ <h3 class="Pos(a) Td(n) C(#fff) Fz(13px) Td(u):h LineClamp(3,45px) Mend(30px) Mend(23px)--md1100 Mstart(12px) B(0) Fw(b) Mb(10px) Lh(15px) Tsh(streamHeroTextShadow) Whs(n)">General Petraeus may need to chat with PO</h3>
+ </a>
+ </li>
+ <li class="Pos(r) streamHeroImage Mb(2px) D(b)">
+ <a class="ie-7_D(b)" href="/news/trump-returns-to-indiana-for-victory-lap-on-carrier-deal-214322278.html">
+ <div class="Pos(r) C(#000) H(0) Ovy(h) Pb(56.16%)" tabindex="-1"><img alt="Trump basks in victory over Carrier deal" class="JsEnabled_Op(0) JsEnabled_Bg(n) Trsdu(.42s) Bgr(nr) Bgz(cv) W(100%) Trs(streamHeroImgFilterTrans) streamHeroImage:h_Op(0.9) streamHeroImage:h_Fil(streamHeroImgFilterHover) Fil(streamHeroImgFilter)" src="https://s.yimg.com/g/images/spaceball.gif" style="background-image: url(&quot;/sy/uu/api/res/1.2/.ywuOEGg0vPIJ5kxVXib0Q--/Zmk9c3RyaW07aD0yMzI7cHlvZmY9MDtxPTgwO3c9NDEyO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://s.yimg.com/lo/api/res/1.2/w4XtPBhegu11Z8jPt1b20Q--~C/Zmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy/https://media.zenfs.com/creatr-images/GLB/2016-12-01/aa784670-b812-11e6-880d-459222b4b416_trump_carrier-1404.jpg.cf.jpg&quot;);" /></div>
+ <div class="StretchedBox W(100%) H(100%) ie-7_H(a) Bg(streamHeroGradient)"></div>
+ <h3 class="Pos(a) Td(n) C(#fff) Fz(13px) Td(u):h LineClamp(3,45px) Mend(30px) Mend(23px)--md1100 Mstart(12px) B(0) Fw(b) Mb(10px) Lh(15px) Tsh(streamHeroTextShadow) Whs(n)">Trump basks in victory over Carrier deal</h3>
+ </a>
+ </li>
+ <li class="Pos(r) streamHeroImage Mb(2px) D(b)">
+ <a class="ie-7_D(b)" href="/news/trump-supports-completion-dakota-access-pipeline-233526810--finance.html">
+ <div class="Pos(r) C(#000) H(0) Ovy(h) Pb(56.16%)" tabindex="-1"><img alt="Trump backs completion of controversial pipeline" class="JsEnabled_Op(0) JsEnabled_Bg(n) Trsdu(.42s) Bgr(nr) Bgz(cv) W(100%) Trs(streamHeroImgFilterTrans) streamHeroImage:h_Op(0.9) streamHeroImage:h_Fil(streamHeroImgFilterHover) Fil(streamHeroImgFilter)" src="https://s.yimg.com/g/images/spaceball.gif" style="background-image: url(&quot;/sy/uu/api/res/1.2/07mGQG4KtGGx7QweUEJ_qA--/Zmk9c3RyaW07aD0yMzI7cHlvZmY9MDtxPTgwO3c9NDEyO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://s.yimg.com/lo/api/res/1.2/J75RdaZJ75wsUgsxKwL0kw--~C/Zmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy/https://media.zenfs.com/creatr-images/GLB/2016-12-02/80be79d0-b82b-11e6-b5e0-6b2b9a61c907_trump-pipeline-nh.jpg.cf.jpg&quot;);" /></div>
+ <div class="StretchedBox W(100%) H(100%) ie-7_H(a) Bg(streamHeroGradient)"></div>
+ <h3 class="Pos(a) Td(n) C(#fff) Fz(13px) Td(u):h LineClamp(3,45px) Mend(30px) Mend(23px)--md1100 Mstart(12px) B(0) Fw(b) Mb(10px) Lh(15px) Tsh(streamHeroTextShadow) Whs(n)">Trump backs completion of controversial pipeline</h3>
+ </a>
+ </li>
+ <li class="Pos(r) streamHeroImage Mb(2px) D(b)">
+ <a class="ie-7_D(b)" href="/news/in-gen-jim-mattis-trump-chooses-a-warrior-monk-as-secretary-of-defense-015428682.html">
+ <div class="Pos(r) C(#000) H(0) Ovy(h) Pb(56.16%)" tabindex="-1"><img alt="Trump taps Mattis as defense chief" class="JsEnabled_Op(0) JsEnabled_Bg(n) Trsdu(.42s) Bgr(nr) Bgz(cv) W(100%) Trs(streamHeroImgFilterTrans) streamHeroImage:h_Op(0.9) streamHeroImage:h_Fil(streamHeroImgFilterHover) Fil(streamHeroImgFilter)" src="https://s.yimg.com/g/images/spaceball.gif" style="background-image: url(&quot;/sy/uu/api/res/1.2/muvhe__KtjJjZ91dALn16g--/Zmk9c3RyaW07aD0yMzI7cHlvZmY9MDtxPTgwO3c9NDEyO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://s.yimg.com/lo/api/res/1.2/0h3ZdIuYBxbXMkQySxYYsw--~C/Zmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy/https://media.zenfs.com/creatr-images/GLB/2016-12-01/edc5fd00-b80d-11e6-b7cf-9932f4c0ae8b_trump_mattis-1404.jpg.cf.jpg&quot;);" /></div>
+ <div class="StretchedBox W(100%) H(100%) ie-7_H(a) Bg(streamHeroGradient)"></div>
+ <h3 class="Pos(a) Td(n) C(#fff) Fz(13px) Td(u):h LineClamp(3,45px) Mend(30px) Mend(23px)--md1100 Mstart(12px) B(0) Fw(b) Mb(10px) Lh(15px) Tsh(streamHeroTextShadow) Whs(n)">Trump taps Mattis as defense chief</h3>
+ </a>
+ </li>
+ <li class="Pos(r) streamHeroImage Mb(2px) D(b)">
+ <a class="ie-7_D(b)" href="/news/the-real-problem-behind-fake-news-233047332.html">
+ <div class="Pos(r) C(#000) H(0) Ovy(h) Pb(56.16%)" tabindex="-1"><img alt="The real problem behind fake news" class="JsEnabled_Op(0) JsEnabled_Bg(n) Trsdu(.42s) Bgr(nr) Bgz(cv) W(100%) Trs(streamHeroImgFilterTrans) streamHeroImage:h_Op(0.9) streamHeroImage:h_Fil(streamHeroImgFilterHover) Fil(streamHeroImgFilter)" src="https://s.yimg.com/g/images/spaceball.gif" style="background-image: url(&quot;/sy/uu/api/res/1.2/mQuD4f4tGqJMNuholj7DKQ--/Zmk9c3RyaW07aD0yMzI7cHlvZmY9MDtxPTgwO3c9NDEyO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://s.yimg.com/lo/api/res/1.2/vuvCrzpY5JE5h8NJIoInuw--~C/Zmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy/http://media.zenfs.com/en/homerun/feed_manager_auto_publish_494/81b22090997517ac847979e73311ea5e&quot;);" /></div>
+ <div class="StretchedBox W(100%) H(100%) ie-7_H(a) Bg(streamHeroGradient)"></div>
+ <h3 class="Pos(a) Td(n) C(#fff) Fz(13px) Td(u):h LineClamp(3,45px) Mend(30px) Mend(23px)--md1100 Mstart(12px) B(0) Fw(b) Mb(10px) Lh(15px) Tsh(streamHeroTextShadow) Whs(n)">The real problem behind fake news</h3>
+ </a>
+ </li>
+ <li class="Pos(r) streamHeroImage Mb(2px) D(b)">
+ <a class="ie-7_D(b)" href="/news/attack-san-bernardino-faithful-seek-unity-080829842.html">
+ <div class="Pos(r) C(#000) H(0) Ovy(h) Pb(56.16%)" tabindex="-1"><img alt="San Bernardino, one year after the attack" class="JsEnabled_Op(0) JsEnabled_Bg(n) Trsdu(.42s) Bgr(nr) Bgz(cv) W(100%) Trs(streamHeroImgFilterTrans) streamHeroImage:h_Op(0.9) streamHeroImage:h_Fil(streamHeroImgFilterHover) Fil(streamHeroImgFilter)" src="https://s.yimg.com/g/images/spaceball.gif" style="background-image: url(&quot;/sy/uu/api/res/1.2/povSdjarZd1nIgvPrRFt9A--/Zmk9c3RyaW07aD0yMzI7cHlvZmY9MDtxPTgwO3c9NDEyO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://s.yimg.com/lo/api/res/1.2/FBGVgMS_ySQa0V2Y9ggETg--~C/Zmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy/https://media.zenfs.com/creatr-images/GLB/2016-12-01/07ab8d60-b7f6-11e6-9bd0-5359df4ccd07_bern-nh.jpg.cf.jpg&quot;);" /></div>
+ <div class="StretchedBox W(100%) H(100%) ie-7_H(a) Bg(streamHeroGradient)"></div>
+ <h3 class="Pos(a) Td(n) C(#fff) Fz(13px) Td(u):h LineClamp(3,45px) Mend(30px) Mend(23px)--md1100 Mstart(12px) B(0) Fw(b) Mb(10px) Lh(15px) Tsh(streamHeroTextShadow) Whs(n)">San Bernardino, one year after the attack</h3>
+ </a>
+ </li>
+ <li class="Pos(r) streamHeroImage Mb(2px) D(b)">
+ <a class="ie-7_D(b)" href="/gma/buzz-aldrin-medically-evacuated-south-pole-condition-deteriorated-144817115--abc-news-topstories.html">
+ <div class="Pos(r) C(#000) H(0) Ovy(h) Pb(56.16%)" tabindex="-1"><img alt="Buzz Aldrin, 86, evacuated from South Pole" class="JsEnabled_Op(0) JsEnabled_Bg(n) Trsdu(.42s) Bgr(nr) Bgz(cv) W(100%) Trs(streamHeroImgFilterTrans) streamHeroImage:h_Op(0.9) streamHeroImage:h_Fil(streamHeroImgFilterHover) Fil(streamHeroImgFilter)" src="https://s.yimg.com/g/images/spaceball.gif" style="background-image: url(&quot;/sy/uu/api/res/1.2/Lj2IMpj83r_C6sQg5S.qPA--/Zmk9c3RyaW07aD0yMzI7cHlvZmY9MDtxPTgwO3c9NDEyO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://s.yimg.com/lo/api/res/1.2/dQQdO_MqT94IoxlwG96MoQ--~C/Zmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy/https://media.zenfs.com/creatr-images/GLB/2016-12-01/a5fface0-b7e1-11e6-b947-731778efc65d_buzzaldrin.jpeg&quot;);" /></div>
+ <div class="StretchedBox W(100%) H(100%) ie-7_H(a) Bg(streamHeroGradient)"></div>
+ <h3 class="Pos(a) Td(n) C(#fff) Fz(13px) Td(u):h LineClamp(3,45px) Mend(30px) Mend(23px)--md1100 Mstart(12px) B(0) Fw(b) Mb(10px) Lh(15px) Tsh(streamHeroTextShadow) Whs(n)">Buzz Aldrin, 86, evacuated from South Pole</h3>
+ </a>
+ </li>
+ <li class="Pos(r) streamHeroImage Mb(2px) D(b)">
+ <a class="ie-7_D(b)" href="/news/trump-face-tough-questions-future-nuclear-arsenal-083854712--election.html">
+ <div class="Pos(r) C(#000) H(0) Ovy(h) Pb(56.16%)" tabindex="-1"><img alt="Trump faces tough nuclear weapons questions" class="JsEnabled_Op(0) JsEnabled_Bg(n) Trsdu(.42s) Bgr(nr) Bgz(cv) W(100%) Trs(streamHeroImgFilterTrans) streamHeroImage:h_Op(0.9) streamHeroImage:h_Fil(streamHeroImgFilterHover) Fil(streamHeroImgFilter)" src="https://s.yimg.com/g/images/spaceball.gif" style="background-image: url(&quot;/sy/uu/api/res/1.2/PtIx1.VmCaD0zNSZdL.dGQ--/Zmk9c3RyaW07aD0yMzI7cHlvZmY9MDtxPTgwO3c9NDEyO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://s.yimg.com/lo/api/res/1.2/tZa2wNoGh44MB2lhTGEvIw--~C/Zmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy/https://media.zenfs.com/creatr-images/GLB/2016-12-02/5e194040-b826-11e6-9b8e-e31a36c5974b_trump3.jpg.cf.jpg&quot;);" /></div>
+ <div class="StretchedBox W(100%) H(100%) ie-7_H(a) Bg(streamHeroGradient)"></div>
+ <h3 class="Pos(a) Td(n) C(#fff) Fz(13px) Td(u):h LineClamp(3,45px) Mend(30px) Mend(23px)--md1100 Mstart(12px) B(0) Fw(b) Mb(10px) Lh(15px) Tsh(streamHeroTextShadow) Whs(n)">Trump faces tough nuclear weapons questions</h3>
+ </a>
+ </li>
+ <li class="Pos(r) streamHeroImage Mb(2px) D(b)">
+ <a class="ie-7_D(b)" href="/news/report-chris-christie-looking-at-becoming-gop-chair-194506864.html">
+ <div class="Pos(r) C(#000) H(0) Ovy(h) Pb(56.16%)" tabindex="-1"><img alt="Report: Chris Christie is eyeing a new position" class="JsEnabled_Op(0) JsEnabled_Bg(n) Trsdu(.42s) Bgr(nr) Bgz(cv) W(100%) Trs(streamHeroImgFilterTrans) streamHeroImage:h_Op(0.9) streamHeroImage:h_Fil(streamHeroImgFilterHover) Fil(streamHeroImgFilter)" src="https://s.yimg.com/g/images/spaceball.gif" style="background-image: url(&quot;/sy/uu/api/res/1.2/TmgLqQFk9QDGbX_eSC8iwg--/Zmk9c3RyaW07aD0yMzI7cHlvZmY9MDtxPTgwO3c9NDEyO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://s.yimg.com/lo/api/res/1.2/GlwoTf.8hIv1SjSpKL_S5Q--~C/Zmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy/https://media.zenfs.com/creatr-images/GLB/2016-12-01/b9001110-b807-11e6-9ab0-9315efad5fdd_christie3.jpg.cf.jpg&quot;);" /></div>
+ <div class="StretchedBox W(100%) H(100%) ie-7_H(a) Bg(streamHeroGradient)"></div>
+ <h3 class="Pos(a) Td(n) C(#fff) Fz(13px) Td(u):h LineClamp(3,45px) Mend(30px) Mend(23px)--md1100 Mstart(12px) B(0) Fw(b) Mb(10px) Lh(15px) Tsh(streamHeroTextShadow) Whs(n)">Report: Chris Christie is eyeing a new position</h3>
+ </a>
+ </li>
+ <li class="Pos(r) streamHeroImage Mb(2px) D(b)">
+ <a class="ie-7_D(b)" href="/news/russian-economy-way-recovery-putin-095350018.html">
+ <div class="Pos(r) C(#000) H(0) Ovy(h) Pb(56.16%)" tabindex="-1"><img alt="Putin voices hope on mending U.S. rift" class="JsEnabled_Op(0) JsEnabled_Bg(n) Trsdu(.42s) Bgr(nr) Bgz(cv) W(100%) Trs(streamHeroImgFilterTrans) streamHeroImage:h_Op(0.9) streamHeroImage:h_Fil(streamHeroImgFilterHover) Fil(streamHeroImgFilter)" src="https://s.yimg.com/g/images/spaceball.gif" style="background-image: url(&quot;/sy/uu/api/res/1.2/n0NYUNW2NsM96lclo32ETA--/Zmk9c3RyaW07aD0yMzI7cHlvZmY9MDtxPTgwO3c9NDEyO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://s.yimg.com/lo/api/res/1.2/u5bMCVVfmsTvyqmTjQkiZA--~C/Zmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy/https://media.zenfs.com/creatr-images/GLB/2016-12-01/e182c6a0-b7d5-11e6-86ed-279a0177af5d_putin-nh.jpg.cf.jpg&quot;);" /></div>
+ <div class="StretchedBox W(100%) H(100%) ie-7_H(a) Bg(streamHeroGradient)"></div>
+ <h3 class="Pos(a) Td(n) C(#fff) Fz(13px) Td(u):h LineClamp(3,45px) Mend(30px) Mend(23px)--md1100 Mstart(12px) B(0) Fw(b) Mb(10px) Lh(15px) Tsh(streamHeroTextShadow) Whs(n)">Putin voices hope on mending U.S. rift</h3>
+ </a>
+ </li>
+ <li class="Pos(r) streamHeroImage Mb(2px) D(b)">
+ <a class="ie-7_D(b)" href="/news/donald-trump-is-running-victory-laps-and-settling-old-scores-064424074.html">
+ <div class="Pos(r) C(#000) H(0) Ovy(h) Pb(56.16%)" tabindex="-1"><img alt="Trump running victory laps, settling old scores" class="JsEnabled_Op(0) JsEnabled_Bg(n) Trsdu(.42s) Bgr(nr) Bgz(cv) W(100%) Trs(streamHeroImgFilterTrans) streamHeroImage:h_Op(0.9) streamHeroImage:h_Fil(streamHeroImgFilterHover) Fil(streamHeroImgFilter)" src="https://s.yimg.com/g/images/spaceball.gif" style="background-image: url(&quot;/sy/uu/api/res/1.2/Ds22xUj228nb1mxxewg.HA--/Zmk9c3RyaW07aD0yMzI7cHlvZmY9MDtxPTgwO3c9NDEyO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://s.yimg.com/lo/api/res/1.2/HMa__s6zoGcqvtOHdCuvug--~C/Zmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy/https://media.zenfs.com/creatr-images/GLB/2016-12-02/80e8eac0-b863-11e6-b81e-d1a488560522_trump-speech-lg.jpg.cf.jpg&quot;);" /></div>
+ <div class="StretchedBox W(100%) H(100%) ie-7_H(a) Bg(streamHeroGradient)"></div>
+ <h3 class="Pos(a) Td(n) C(#fff) Fz(13px) Td(u):h LineClamp(3,45px) Mend(30px) Mend(23px)--md1100 Mstart(12px) B(0) Fw(b) Mb(10px) Lh(15px) Tsh(streamHeroTextShadow) Whs(n)">Trump running victory laps, settling old scores</h3>
+ </a>
+ </li>
+ <li class="Pos(r) streamHeroImage Mb(2px) D(b)">
+ <a class="ie-7_D(b)" href="/news/howard-schultz-stepping-down-starbucks-210110034.html">
+ <div class="Pos(r) C(#000) H(0) Ovy(h) Pb(56.16%)" tabindex="-1"><img alt="Howard Schultz stepping down at Starbucks" class="JsEnabled_Op(0) JsEnabled_Bg(n) Trsdu(.42s) Bgr(nr) Bgz(cv) W(100%) Trs(streamHeroImgFilterTrans) streamHeroImage:h_Op(0.9) streamHeroImage:h_Fil(streamHeroImgFilterHover) Fil(streamHeroImgFilter)" src="https://s.yimg.com/g/images/spaceball.gif" style="background-image: url(&quot;/sy/uu/api/res/1.2/zZ1UXoHg9p28KyUG90uMxA--/Zmk9c3RyaW07aD0yMzI7cHlvZmY9MDtxPTgwO3c9NDEyO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://s.yimg.com/lo/api/res/1.2/qrwzZd.rM0wfOH4.9DCpnA--~C/Zmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy/https://media.zenfs.com/creatr-images/GLB/2016-12-01/9c607980-b80e-11e6-a769-a3808f15d370_schultz3.jpg.cf.jpg&quot;);" /></div>
+ <div class="StretchedBox W(100%) H(100%) ie-7_H(a) Bg(streamHeroGradient)"></div>
+ <h3 class="Pos(a) Td(n) C(#fff) Fz(13px) Td(u):h LineClamp(3,45px) Mend(30px) Mend(23px)--md1100 Mstart(12px) B(0) Fw(b) Mb(10px) Lh(15px) Tsh(streamHeroTextShadow) Whs(n)">Howard Schultz stepping down at Starbucks</h3>
+ </a>
+ </li>
+ <li class="Pos(r) streamHeroImage Mb(2px) D(b)">
+ <a class="ie-7_D(b)" href="/news/tip-sheet-workers-workplaces-where-053931548.html">
+ <div class="Pos(r) C(#000) H(0) Ovy(h) Pb(56.16%)" tabindex="-1"><img alt="Changing marijuana laws and the workplace" class="JsEnabled_Op(0) JsEnabled_Bg(n) Trsdu(.42s) Bgr(nr) Bgz(cv) W(100%) Trs(streamHeroImgFilterTrans) streamHeroImage:h_Op(0.9) streamHeroImage:h_Fil(streamHeroImgFilterHover) Fil(streamHeroImgFilter)" src="https://s.yimg.com/g/images/spaceball.gif" style="background-image: url(&quot;/sy/uu/api/res/1.2/0z_iXFp1UZFCcJk4cRrkiQ--/Zmk9c3RyaW07aD0yMzI7cHlvZmY9MDtxPTgwO3c9NDEyO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://s.yimg.com/lo/api/res/1.2/nMj2SMLtzOcetPa5NI9VxA--~C/Zmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy/https://media.zenfs.com/creatr-images/GLB/2016-12-01/820828c0-b7e7-11e6-9f78-d1eb43c29ed4_marijuana_smoker-1404.jpg.cf.jpg&quot;);" /></div>
+ <div class="StretchedBox W(100%) H(100%) ie-7_H(a) Bg(streamHeroGradient)"></div>
+ <h3 class="Pos(a) Td(n) C(#fff) Fz(13px) Td(u):h LineClamp(3,45px) Mend(30px) Mend(23px)--md1100 Mstart(12px) B(0) Fw(b) Mb(10px) Lh(15px) Tsh(streamHeroTextShadow) Whs(n)">Changing marijuana laws and the workplace</h3>
+ </a>
+ </li>
+ </ul>
+ </div>
+ <div class="Bxz(bb) Mstart(76.3%) Mstart(68%)--md1100 Bgc(#000) Fw(700) C(#fff) Py(6px) Fz(11px) Pstart(12px) Pos(a) B(0) End(0) Start(2px) Pend(10px)" style="height:26px;" data-test-locator="streamhero-controls" data-reactid="54"><span><!-- react-text: 419 -->1<!-- /react-text --><!-- react-text: 420 -->-<!-- /react-text --><!-- react-text: 421 -->3<!-- /react-text --><!-- react-text: 422 --> of <!-- /react-text --><!-- react-text: 423 -->18<!-- /react-text --></span>
+ <div class="Fl(end) Pos(r) T(-4px)" data-reactid="55"><button class="Bd(0) P(0) Lh(0) Va(m) O(0):f Start(0)" data-reactid="56"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="23" style="margin-left:12px;opacity:0.6;fill:#fff;stroke:#fff;stroke-width:0;vertical-align:bottom;" height="23" viewBox="0 0 48 48" data-icon="caret-up" data-reactid="57"><path d="M24.21 16.03L11.48 28.76c-.78.78-.78 2.047 0 2.827.78.78 2.048.78 2.83 0l9.898-9.9 9.9 9.9c.78.78 2.047.78 2.827 0 .78-.78.78-2.047 0-2.828L24.21 16.03z" data-reactid="58"/></svg></button><button class="Bd(0) P(0) Lh(0) Va(m) O(0):f End(0)" data-reactid="59"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="23" style="margin-left:12px;fill:#fff;stroke:#fff;stroke-width:0;vertical-align:bottom;" height="23" viewBox="0 0 48 48" data-icon="caret-down" data-reactid="60"><path d="M24.21 33.173l12.727-12.728c.78-.78.78-2.048 0-2.828-.78-.78-2.047-.78-2.828 0l-9.9 9.9-9.9-9.9c-.78-.78-2.047-.78-2.827 0-.78.78-.78 2.047 0 2.828L24.21 33.173z" data-reactid="61"/></svg></button></div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)" data-reactid="62">
+ <div class="Py(14px) Pos(r)" data-test-locator="mega" data-reactid="63">
+ <div class="Cf" data-reactid="64">
+ <div class="Fl(start) Pos(r) Z(1) Mt(2px) W(26.5%) Maw(220px)" data-reactid="65">
+ <a href="/news/russian-supply-ship-launched-international-space-station-150638637.html" class="D(b) H(0) Ov(h) Bdrs(2px) active" style="padding-bottom:88%;" data-reactid="66"><img srcset="https://s.yimg.com/uu/api/res/1.2/rjByh6oEyxjzJF.bBGQncw--/Zmk9c3RyaW07aD0xOTM7cHlvZmY9MDtxPTgwO3c9MjIwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en_us/News/ap_webfeeds/c9375de6acbf4c168be78ffe4ec71ea9.jpg.cf.jpg 1x,https://s.yimg.com/uu/api/res/1.2/BWTbbVzclNg7m6n00NA_fw--/Zmk9c3RyaW07aD0zODY7cHlvZmY9MDtxPTgwO3c9NDQwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en_us/News/ap_webfeeds/c9375de6acbf4c168be78ffe4ec71ea9.jpg.cf.jpg 2x" class="Trsdu(.42s) W(100%) Trsdu(0s)! Bdrs(2px)" alt="Russia: Space ship malfunctions, breaks up over Siberia" src="/sy/uu/api/res/1.2/rjByh6oEyxjzJF.bBGQncw--/Zmk9c3RyaW07aD0xOTM7cHlvZmY9MDtxPTgwO3c9MjIwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en_us/News/ap_webfeeds/c9375de6acbf4c168be78ffe4ec71ea9.jpg.cf.jpg" data-reactid="67" /></a>
+ </div>
+ <div class="Ov(h) Pend(44px) Pstart(25px)" data-reactid="68">
+ <div class="Fw(b) Fz(12px) Tt(c) D(ib) Mb(6px) C(#003abc) Mend(9px) Mt(-2px)" data-test-locator="catlabel" data-reactid="69">Science</div>
+ <div class="C(#959595) Fz(11px) D(ib) Mb(6px)" data-reactid="70">Associated Press</div>
+ <div class="Pos(a) End(0) W(36px) Ta(c) Z(3) NoJs_D(n)" data-reactid="71"><a class="Pos(r) Cur(p) Bdw(0) Va(m) C(#ccc) Td(n) P(0) D(ib) Pb(6px) desktop_W(100%) active" href="/news/russian-supply-ship-launched-international-space-station-150638637.html" data-reactid="72"><span data-reactid="73"><span class="Fw(b) Mt(-14px) Pos(r) D(b) Fz(11px)" style="color:#959595;" data-reactid="74">11</span><span class="Hidden" data-reactid="75">Comments. Click to view comments</span></span><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="21" style="position:relative;top:1px;margin:auto;vertical-align:middle;fill:#959595;stroke:#959595;stroke-width:0;" height="21" viewBox="0 0 16 16" data-icon="comments" data-reactid="76"><path d="M14.002 10c0 .735-.625 1.333-1.395 1.333h-8.58l-2.028 1.892-.002-9.892C1.998 2.598 2.623 2 3.392 2h9.215c.77 0 1.395.598 1.395 1.333V10zM3.392.667C1.887.667.667 1.86.667 3.334v11.333c0 .265.157.505.4.61.085.038.176.056.266.056.165 0 .328-.062.453-.18l2.765-2.486h8.058c1.505 0 2.726-1.194 2.726-2.667V3.333c0-1.473-1.22-2.667-2.726-2.667H3.393zm7.947 4H4.68c-.367 0-.666.298-.666.667S4.314 6 4.682 6h6.657c.367 0 .665-.298.665-.666s-.298-.667-.666-.667zM4.68 7.333c-.367 0-.666.298-.666.667s.298.667.666.667h6.657c.367 0 .665-.3.665-.667s-.298-.667-.666-.667H4.68z" data-reactid="77"/></svg></a><button aria-label="Sign in to like" class="Pt(3px) Pb(0) Z(2) Pend(1px) NoJs_D(n) Bd(0) M(0) P(0) Va(m) desktop_W(100%) Pos(r)" href="#" data-reactid="78"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="21" style="fill:#959595;stroke:#959595;stroke-width:0;vertical-align:bottom;" height="21" viewBox="0 0 48 48" data-icon="favorite" data-reactid="79"><path d="M34.055 8.48c1.928 0 3.747.8 5.127 2.256 2.914 3.076 2.914 8.08.002 11.155L24 37.87 8.824 21.897c-2.916-3.08-2.918-8.085-.002-11.163 1.377-1.455 3.197-2.256 5.13-2.256 1.606 0 3.427 0 7.267 4.512L24 16.254l2.78-3.265c3.842-4.51 5.665-4.51 7.275-4.51m0-3.653c-3.123 0-5.84.848-10.055 5.797-4.266-5.01-6.984-5.797-10.05-5.797-2.945 0-5.706 1.208-7.78 3.398-4.227 4.458-4.227 11.72.002 16.184L24 43.173l17.832-18.77c4.225-4.46 4.225-11.722 0-16.18-2.073-2.19-4.836-3.397-7.777-3.397" data-reactid="80"/></svg></button>
+ <div class="share-menu-wrapper D(ib) Pos(r)" style="-webkit-tap-highlight-color:transparent;" data-reactid="81"><button aria-label="Share Menu" class="O(0):f P(4px) Pb(6px) Pend(6px) react-button" data-reactid="82"><svg xmlns="http://www.w3.org/2000/svg" class="M(a) Cur(p)" width="20" style="vertical-align:initial;fill:#959595;stroke:#959595;stroke-width:0;" height="20" viewBox="0 0 48 48" data-icon="share" data-reactid="83"><path d="M41.574 18.795c-1.104 0-2 .896-2 2v22h-28v-22c0-1.104-.896-2-2-2s-2 .896-2 2v24c0 1.105.896 2 2 2h32c1.104 0 2-.895 2-2v-24c0-1.104-.894-2-2-2zM21.044 13.652l2.53-2.742v22.385h4V10.91l2.53 2.742c.395.428.932.643 1.47.643.484 0 .972-.174 1.355-.53.81-.75.86-2.015.112-2.825l-7.47-8.092-7.47 8.092c-.75.81-.698 2.076.113 2.826.813.748 2.078.697 2.83-.114z" data-reactid="84"/></svg></button></div>
+ </div>
+ <h3 class="Mb(5px)" data-reactid="85"><a href="/news/russian-supply-ship-launched-international-space-station-150638637.html" class="Td(n) O(n):f active" data-reactid="86"><u class="StretchedBox" data-reactid="87"></u><div class="Fw(b) Fz(20px) Lh(23px) LineClamp(2,46px) Pos(r) Fz(17px)--sm1024 Lh(19px)--sm1024 LineClamp(2,38px)--sm1024 C(#000) C(#0078ff):h" data-reactid="88">Russia: Space ship malfunctions, breaks up over Siberia</div></a></h3>
+ <p class="M(0) Fz(14px) Lh(19px) Fz(13px)--sm1024 Lh(17px)--sm1024 LineClamp(2,38px) LineClamp(2,34px)--sm1024 D(n)--sm1024 Bxz(bb) Pb(2px)" data-reactid="89">An unmanned Russian cargo spaceship heading to the International Space Station broke up in the atmosphere over Siberia on Thursday due to an unspecified malfunction, the Russian space agency said. The Progress MS-04 cargo craft broke up at an altitude of 190 kilometers (118 miles) over the remote Russian Tuva region in Siberia that borders Mongolia, Roscosmos said in a statement. It said most of spaceship's debris burnt up as it entered the atmosphere but some fell to Earth over what it called an uninhabited area.</p>
+ <ul class="Cf Mt(12px) Fz(12px) Pos(r) Z(1) Mt(8px)--sm1024" data-reactid="90">
+ <li class="Fl(start) W(50%) W(100%)--sm1024 Mb(8px)--sm1024" data-reactid="91">
+ <a class="Td(n) D(ib) Va(t) W(90%) Mend(10%) C(#0078ff)!:h C(#000) C(#959595):vi" href="/news/m/7449993c-4a8a-35a2-a0ff-f34af3c189ca/ss_russian-space-station-cargo.html" data-reactid="92"><img srcset="" class="Trsdu(.42s) Fl(start) W(29%) Miw(65px) Maw(72px) Mend(10px) Trsdu(0s)! D(n)--sm1024 Bdrs(2px)" alt="Russian space station cargo ship experiences anomaly, burns up" src="/sy/uu/api/res/1.2/VTyRBpgI2e0bCUnxX5Rgpg--/Zmk9c3RyaW07aD03MjtweW9mZj0wO3E9ODA7dz03MjtzbT0xO2FwcGlkPXl0YWNoeW9u/http://slingstone.zenfs.com/offnetwork/9a3eaeb44ce43eb0e6bbd26e3b0b34f3" data-reactid="93" />
+ <div class="Ov(h)" data-reactid="94">
+ <div class="Lh(15px) Fw(b) LineClamp(3,45px) D(i)--sm1024 Pend(10px)--sm1024" data-reactid="95">Russian space station cargo ship experiences anomaly, burns up</div>
+ <div class="C(#959595) Fz(11px) Mt(2px) Va(b) D(ib)--sm1024" data-reactid="96">UPI</div>
+ </div>
+ </a>
+ </li>
+ <li class="Fl(start) W(50%) W(100%)--sm1024" data-reactid="97">
+ <a class="Td(n) D(ib) Va(t) W(90%) Mend(10%) C(#0078ff)!:h C(#000) C(#959595):vi" href="/news/m/78033279-878b-3494-9324-8bb0b27694ee/ss_progress-space-station-cargo.html" data-reactid="98"><img srcset="" class="Trsdu(.42s) Fl(start) W(29%) Miw(65px) Maw(72px) Mend(10px) Trsdu(0s)! D(n)--sm1024 Bdrs(2px)" alt="Progress space station cargo ship malfunctions, crashes in Siberia" src="/sy/uu/api/res/1.2/RZdz1Te.05Qfasd5Wfbp8Q--/Zmk9c3RyaW07aD03MjtweW9mZj0wO3E9ODA7dz03MjtzbT0xO2FwcGlkPXl0YWNoeW9u/http://slingstone.zenfs.com/offnetwork/3e956d3b2b73c0d66b383324df4e3d8c" data-reactid="99" />
+ <div class="Ov(h)" data-reactid="100">
+ <div class="Lh(15px) Fw(b) LineClamp(3,45px) D(i)--sm1024 Pend(10px)--sm1024" data-reactid="101">Progress space station cargo ship malfunctions, crashes in Siberia</div>
+ <div class="C(#959595) Fz(11px) Mt(2px) Va(b) D(ib)--sm1024" data-reactid="102">CBS News</div>
+ </div>
+ </a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)" data-reactid="103">
+ <div class="controller Feedback Pos(r)" data-beacon="" data-tp-beacon="" data-reactid="104">
+ <div class="Cf Ov(h) Pos(r) Mt(-3px) Py(14px)" data-reactid="105">
+ <a rel="nofollow noopener noreferrer" class="Fl(start) Mt(3px) Mend(25px) W(26.5%) Maw(220px)" target="_blank" href="https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=QB2YboQGIS_LDyLUj4tZxJgxNaT.BrcpGipmgxQaV5tHqVzBqQ1wu1MnAMJmpRAgp3wJHtuorQdt_QgnF9KKEr_NfKljpKZVw1kV5yklob7anAz9qV2FNG7.5IZSrxUwuVPGasRenbwtGhNi2vSiWHGUvWApKo7vR84cog4b0f1bQ9ar6.GpRZHVLob2tSKYZB06eSVh_nL_OmK99.DSDsGNXYcu45DmjMJisJz.4512PPSI9YMo_qimBzrjD8FDFMIXK_cV8FSR3E8jbDO3sUxSm6zsRrWnLm66UK66mSV3vT.gREatVNPE9xVaq7d_tm8QmKakFCwYIj5AXNgM4psQkWUxH1pn9C5EGBMr341T86R83EWvega1pF.lYVYCK7rIBfWbLgaaWsVt3foPPG2r3rF4TjAx_x2YmqFxJNtgBL4vXwvsGsKj703DzDF0xHs9Q9vfmYiaoHfaFENWb2ZVqGgg0yTEepWhH4OvwejT0nZfH4flCFtWlJjW.GQ7zT7lYM97OCZlAQuUydGWw9fYav6sRI7XRsloslBQcXqqcLjJqhCS7hx1oqJvRTsccGiArKloFqY4NF9s3YW2c3XnIZGnv3gTz3I800OiYWlqecxHQ2rXscbhb_dNZPsv1XrsGcI7UQ--%26lp=http%3A%2F%2Fwww.ifcmarkets.com%2Fen%2Fforex-cfd-trading%3Futm_source%3Dyahoo%26utm_medium%3Dcpc%26utm_term%3D%26utm_content%3Dexcellent_new%26utm_campaign%3Denglish_native_asia" data-reactid="106">
+ <div class="Pos(r) Z(1)" data-reactid="107"><img class="Trsdu(.42s) D(b) Trsdu(0s)! Bdrs(2px)" alt="IFC Markets. Forex &amp; CFD trading" src="/sy/uu/api/res/1.2/2SChHrdWdg0VIIG0njDK4g--/Zmk9c3RyaW07aD0xMjM7cHlvZmY9MDtxPTgwO3c9MjIwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://s.yimg.com/av/moneyball/ads/1476367816981-4689.jpg.cf.jpg" data-reactid="108" width="100%" /></div>
+ </a>
+ <div class="Ov(h) Pend(44px)" data-reactid="109">
+ <div class="Pos(r) Z(2) Fw(b)" data-reactid="110"><a class="D(ib) Td(n) C(#959595) Fz(12px) Mend(3px) Mb(6px)" href="http://help.yahoo.com/kb/index?page=content&amp;y=PROD_FRONT&amp;locale=en_US&amp;id=SLN14553" target="_blank" rel="noopener noreferrer" data-reactid="111">Sponsored</a><a href="https://info.yahoo.com/privacy/us/yahoo/relevantads.html" target="_blank" rel="noopener noreferrer" data-reactid="112"><i class="Pos(r) T(2px)" data-reactid="113"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="12" style="vertical-align:baseline;fill:#959595;stroke:#959595;stroke-width:0;" height="12" viewBox="0 0 24 24" data-icon="sponsor" data-reactid="114"><path d="M5.636 4.222c-.39-.39-1.023-.39-1.414 0s-.39 1.024 0 1.414l.707.707c.39.39 1.022.39 1.414 0 .39-.39.39-1.023 0-1.414l-.708-.708zM4.93 17.658l-.708.707c-.39.39-.39 1.023 0 1.414.39.39 1.023.39 1.414 0l.707-.708c.39-.39.39-1.024 0-1.414-.39-.39-1.023-.39-1.414 0zm14.14 0c-.39-.39-1.023-.39-1.413 0-.39.39-.39 1.023 0 1.414l.707.707c.39.39 1.024.39 1.414 0 .39-.392.39-1.025 0-1.415l-.707-.707zm0-11.315l.708-.707c.39-.39.39-1.023 0-1.414s-1.024-.39-1.414 0l-.707.707c-.39.39-.39 1.024 0 1.414.39.39 1.023.39 1.414 0zM22 11h-1c-.553 0-1 .448-1 1s.447 1 1 1h1c.552 0 1-.448 1-1s-.448-1-1-1zM10 9h5c.552 0 1-.448 1-1s-.448-1-1-1h-2c0-.55-.447-1-1-1s-1 .45-1 1H9.5C8.12 7 7 8.12 7 9.5v1C7 11.88 8.12 13 9.5 13H13c.552 0 1 .448 1 1s-.448 1-1 1H8c-.553 0-1 .448-1 1s.447 1 1 1h3c0 .55.447 1 1 1s1-.45 1-1h.5c1.38 0 2.5-1.12 2.5-2.5v-1c0-1.38-1.37-2.5-3-2.5h-3c-.553 0-1-.448-1-1s.447-1 1-1zm2-5c.553 0 1-.448 1-1V2c0-.552-.447-1-1-1s-1 .448-1 1v1c0 .552.447 1 1 1zm-9 7H2c-.553 0-1 .448-1 1s.447 1 1 1h1c.552 0 1-.448 1-1s-.448-1-1-1zm9 9c-.553 0-1 .448-1 1v1c0 .552.447 1 1 1s1-.448 1-1v-1c0-.552-.447-1-1-1z" data-reactid="115"/></svg></i></a><a class="Fz(11px) Td(n) Fw(n) D(ib) C(#959595) Mstart(9px)" rel="noopener noreferrer" target="_blank" href="https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=QB2YboQGIS_LDyLUj4tZxJgxNaT.BrcpGipmgxQaV5tHqVzBqQ1wu1MnAMJmpRAgp3wJHtuorQdt_QgnF9KKEr_NfKljpKZVw1kV5yklob7anAz9qV2FNG7.5IZSrxUwuVPGasRenbwtGhNi2vSiWHGUvWApKo7vR84cog4b0f1bQ9ar6.GpRZHVLob2tSKYZB06eSVh_nL_OmK99.DSDsGNXYcu45DmjMJisJz.4512PPSI9YMo_qimBzrjD8FDFMIXK_cV8FSR3E8jbDO3sUxSm6zsRrWnLm66UK66mSV3vT.gREatVNPE9xVaq7d_tm8QmKakFCwYIj5AXNgM4psQkWUxH1pn9C5EGBMr341T86R83EWvega1pF.lYVYCK7rIBfWbLgaaWsVt3foPPG2r3rF4TjAx_x2YmqFxJNtgBL4vXwvsGsKj703DzDF0xHs9Q9vfmYiaoHfaFENWb2ZVqGgg0yTEepWhH4OvwejT0nZfH4flCFtWlJjW.GQ7zT7lYM97OCZlAQuUydGWw9fYav6sRI7XRsloslBQcXqqcLjJqhCS7hx1oqJvRTsccGiArKloFqY4NF9s3YW2c3XnIZGnv3gTz3I800OiYWlqecxHQ2rXscbhb_dNZPsv1XrsGcI7UQ--%26lp=http%3A%2F%2Fwww.ifcmarkets.com%2Fen%2Fforex-cfd-trading%3Futm_source%3Dyahoo%26utm_medium%3Dcpc%26utm_term%3D%26utm_content%3Dexcellent_new%26utm_campaign%3Denglish_native_asia" data-reactid="116">IFC Markets</a></div>
+ <h3 class="M(0)" data-reactid="117"><a rel="nofollow noopener noreferrer" class="Td(n)" target="_blank" href="https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=QB2YboQGIS_LDyLUj4tZxJgxNaT.BrcpGipmgxQaV5tHqVzBqQ1wu1MnAMJmpRAgp3wJHtuorQdt_QgnF9KKEr_NfKljpKZVw1kV5yklob7anAz9qV2FNG7.5IZSrxUwuVPGasRenbwtGhNi2vSiWHGUvWApKo7vR84cog4b0f1bQ9ar6.GpRZHVLob2tSKYZB06eSVh_nL_OmK99.DSDsGNXYcu45DmjMJisJz.4512PPSI9YMo_qimBzrjD8FDFMIXK_cV8FSR3E8jbDO3sUxSm6zsRrWnLm66UK66mSV3vT.gREatVNPE9xVaq7d_tm8QmKakFCwYIj5AXNgM4psQkWUxH1pn9C5EGBMr341T86R83EWvega1pF.lYVYCK7rIBfWbLgaaWsVt3foPPG2r3rF4TjAx_x2YmqFxJNtgBL4vXwvsGsKj703DzDF0xHs9Q9vfmYiaoHfaFENWb2ZVqGgg0yTEepWhH4OvwejT0nZfH4flCFtWlJjW.GQ7zT7lYM97OCZlAQuUydGWw9fYav6sRI7XRsloslBQcXqqcLjJqhCS7hx1oqJvRTsccGiArKloFqY4NF9s3YW2c3XnIZGnv3gTz3I800OiYWlqecxHQ2rXscbhb_dNZPsv1XrsGcI7UQ--%26lp=http%3A%2F%2Fwww.ifcmarkets.com%2Fen%2Fforex-cfd-trading%3Futm_source%3Dyahoo%26utm_medium%3Dcpc%26utm_term%3D%26utm_content%3Dexcellent_new%26utm_campaign%3Denglish_native_asia" data-reactid="118"><u class="StretchedBox" data-reactid="119"></u><span class="Td(n) Fw(b) C(#0078ff):h C(#000) Fz(20px) Lh(23px) LineClamp(2,46px) Pos(r) Fz(17px)--sm1024 Lh(19px)--sm1024 LineClamp(2,38px)--sm1024" data-reactid="120">IFC Markets. Forex &amp; CFD trading</span></a></h3>
+ <p class="M(0) Lh(19px) LineClamp(2,38px) Fz(14px) Mt(5px) Fz(13px)--sm1024 Lh(17px)--sm1024 LineClamp(2,34px)--sm1024" data-reactid="121">Excellent Conditions for Professional Trading! 500+ trading instruments. 2 regulations: CySEC and BVI FSC. 100% dividend adjustment on stock CFDs.</p>
+ </div>
+ </div>
+ <!-- react-text: 122 -->
+ <!-- /react-text -->
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)" data-reactid="123">
+ <div class="Py(14px) Pos(r)" data-test-locator="mega" data-reactid="124">
+ <div class="Cf" data-reactid="125">
+ <div class="Fl(start) Pos(r) Z(1) Mt(2px) W(26.5%) Maw(220px)" data-reactid="126">
+ <a href="/news/meet-designers-happy-dress-melania-231300756.html" class="D(b) H(0) Ov(h) Bdrs(2px)" style="padding-bottom:88%;" data-reactid="127"><img class="Trsdu(.42s) W(100%) Trsdu(0s)! Bdrs(2px)" alt="Meet the Designers Who Are Happy to Dress Melania Trump as First Lady - and the Ones Who Won't" style="" src="/sy/uu/api/res/1.2/suS69_6DnHbDv..IcWI.Kg--/Zmk9c3RyaW07aD0xOTM7cHlvZmY9MDtxPTgwO3c9MjIwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en-US/homerun/inside_edition/f16f4eebbcfaa1b365e3a7fe7d93672d" data-reactid="128" srcset="" /></a>
+ </div>
+ <div class="Ov(h) Pend(44px) Pstart(25px)" data-reactid="129">
+ <div class="Fw(b) Fz(12px) Tt(c) D(ib) Mb(6px) C(#be0067) Mend(9px) Mt(-2px)" data-test-locator="catlabel" data-reactid="130">Style</div>
+ <div class="C(#959595) Fz(11px) D(ib) Mb(6px)" data-reactid="131">Inside Edition</div>
+ <div class="Pos(a) End(0) W(36px) Ta(c) Z(3) NoJs_D(n)"><a class="Pos(r) Cur(p) Bdw(0) Va(m) C(#ccc) Td(n) P(0) D(ib) Pb(6px) desktop_W(100%)" href="/news/meet-designers-happy-dress-melania-231300756.html"><span><span class="Fw(b) Mt(-14px) Pos(r) D(b) Fz(11px)" style="color: rgb(149, 149, 149);">200</span><span class="Hidden">Comments. Click to view comments</span></span><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="21" height="21" viewBox="0 0 16 16" data-icon="comments" style="position: relative; top: 1px; margin: auto; vertical-align: middle; fill: rgb(149, 149, 149); stroke: rgb(149, 149, 149); stroke-width: 0;"><path d="M14.002 10c0 .735-.625 1.333-1.395 1.333h-8.58l-2.028 1.892-.002-9.892C1.998 2.598 2.623 2 3.392 2h9.215c.77 0 1.395.598 1.395 1.333V10zM3.392.667C1.887.667.667 1.86.667 3.334v11.333c0 .265.157.505.4.61.085.038.176.056.266.056.165 0 .328-.062.453-.18l2.765-2.486h8.058c1.505 0 2.726-1.194 2.726-2.667V3.333c0-1.473-1.22-2.667-2.726-2.667H3.393zm7.947 4H4.68c-.367 0-.666.298-.666.667S4.314 6 4.682 6h6.657c.367 0 .665-.298.665-.666s-.298-.667-.666-.667zM4.68 7.333c-.367 0-.666.298-.666.667s.298.667.666.667h6.657c.367 0 .665-.3.665-.667s-.298-.667-.666-.667H4.68z"/></svg></a><button aria-label="Sign in to like" class="Pt(3px) Pb(0) Z(2) Pend(1px) NoJs_D(n) Bd(0) M(0) P(0) Va(m) desktop_W(100%) Pos(r)" href="#"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="21" height="21" viewBox="0 0 48 48" data-icon="favorite" style="fill: rgb(149, 149, 149); stroke: rgb(149, 149, 149); stroke-width: 0; vertical-align: bottom;"><path d="M34.055 8.48c1.928 0 3.747.8 5.127 2.256 2.914 3.076 2.914 8.08.002 11.155L24 37.87 8.824 21.897c-2.916-3.08-2.918-8.085-.002-11.163 1.377-1.455 3.197-2.256 5.13-2.256 1.606 0 3.427 0 7.267 4.512L24 16.254l2.78-3.265c3.842-4.51 5.665-4.51 7.275-4.51m0-3.653c-3.123 0-5.84.848-10.055 5.797-4.266-5.01-6.984-5.797-10.05-5.797-2.945 0-5.706 1.208-7.78 3.398-4.227 4.458-4.227 11.72.002 16.184L24 43.173l17.832-18.77c4.225-4.46 4.225-11.722 0-16.18-2.073-2.19-4.836-3.397-7.777-3.397"/></svg></button>
+ <div class="share-menu-wrapper D(ib) Pos(r)"><button aria-label="Share Menu" class="O(0):f P(4px) Pb(6px) Pend(6px) react-button"><svg xmlns="http://www.w3.org/2000/svg" class="M(a) Cur(p)" width="20" height="20" viewBox="0 0 48 48" data-icon="share" style="vertical-align: initial; fill: rgb(149, 149, 149); stroke: rgb(149, 149, 149); stroke-width: 0;"><path d="M41.574 18.795c-1.104 0-2 .896-2 2v22h-28v-22c0-1.104-.896-2-2-2s-2 .896-2 2v24c0 1.105.896 2 2 2h32c1.104 0 2-.895 2-2v-24c0-1.104-.894-2-2-2zM21.044 13.652l2.53-2.742v22.385h4V10.91l2.53 2.742c.395.428.932.643 1.47.643.484 0 .972-.174 1.355-.53.81-.75.86-2.015.112-2.825l-7.47-8.092-7.47 8.092c-.75.81-.698 2.076.113 2.826.813.748 2.078.697 2.83-.114z"/></svg></button></div>
+ </div>
+ <h3 class="Mb(5px)" data-reactid="132"><a href="/news/meet-designers-happy-dress-melania-231300756.html" class="Td(n) O(n):f" data-reactid="133"><u class="StretchedBox" data-reactid="134"></u><div class="Fw(b) Fz(20px) Lh(23px) LineClamp(2,46px) Pos(r) Fz(17px)--sm1024 Lh(19px)--sm1024 LineClamp(2,38px)--sm1024 C(#000) C(#0078ff):h" data-reactid="135">Meet the Designers Who Are Happy to Dress Melania Trump as First Lady - and the Ones Who Won't</div></a></h3>
+ <p class="M(0) Fz(14px) Lh(19px) Fz(13px)--sm1024 Lh(17px)--sm1024 LineClamp(2,38px) LineClamp(2,34px)--sm1024 D(n)--sm1024 Bxz(bb) Pb(2px)" data-reactid="136">Fashion designer Tom Ford has announced that he would not be dressing future first lady Melania Trump when her husband officially becomes president. “I was asked to dress [Melania Trump] quite a few years ago and I declined," Ford said. Other designers have joined Ford in refusing to dress the former Slovakian model.</p>
+ <ul class="Cf Mt(12px) Fz(12px) Pos(r) Z(1) Mt(8px)--sm1024" data-reactid="137">
+ <li class="Fl(start) W(50%) W(100%)--sm1024 Mb(8px)--sm1024" data-reactid="138">
+ <a class="Td(n) D(ib) Va(t) W(90%) Mend(10%) C(#0078ff)!:h C(#000) C(#959595):vi" href="/news/tom-ford-says-declined-dress-131819863.html" data-reactid="139"><img class="Trsdu(.42s) Fl(start) W(29%) Miw(65px) Maw(72px) Mend(10px) Trsdu(0s)! D(n)--sm1024 Bdrs(2px)" alt="Tom Ford Says He Declined to Dress Melania Trump ‘Years Ago’: ‘She’s Not Necessarily My Image’" style="" src="/sy/uu/api/res/1.2/__TdQihFmqPBav5eWGCEcg--/Zmk9c3RyaW07aD03MjtweW9mZj0wO3E9ODA7dz03MjtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/homerun/people_218/4dd2b3063c6e44496b9c69d3e1c54883" data-reactid="140" srcset="" />
+ <div class="Ov(h)" data-reactid="141">
+ <div class="Lh(15px) Fw(b) LineClamp(3,45px) D(i)--sm1024 Pend(10px)--sm1024" data-reactid="142">Tom Ford Says He Declined to Dress Melania Trump ‘Years Ago’: ‘She’s Not Necessarily My Image’</div>
+ <div class="C(#959595) Fz(11px) Mt(2px) Va(b) D(ib)--sm1024" data-reactid="143">People</div>
+ </div>
+ </a>
+ </li>
+ <li class="Fl(start) W(50%) W(100%)--sm1024" data-reactid="144">
+ <a class="Td(n) D(ib) Va(t) W(90%) Mend(10%) C(#0078ff)!:h C(#000) C(#959595):vi" href="/news/diane-von-furstenberg-dressing-melania-213132306.html" data-reactid="145"><img class="Trsdu(.42s) Fl(start) W(29%) Miw(65px) Maw(72px) Mend(10px) Trsdu(0s)! D(n)--sm1024 Bdrs(2px)" alt="Diane von Furstenberg Says Fashion Industry Shouldn’t Shun Melania Trump" style="" src="/sy/uu/api/res/1.2/MK46Tx1JrmKc8WJzn27pmA--/Zmk9c3RyaW07aD03MjtweW9mZj0wO3E9ODA7dz03MjtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/homerun/people_218/bc00455c8724c57de05799b959b551b8" data-reactid="146" srcset="" />
+ <div class="Ov(h)" data-reactid="147">
+ <div class="Lh(15px) Fw(b) LineClamp(3,45px) D(i)--sm1024 Pend(10px)--sm1024" data-reactid="148">Diane von Furstenberg Says Fashion Industry Shouldn’t Shun Melania Trump</div>
+ <div class="C(#959595) Fz(11px) Mt(2px) Va(b) D(ib)--sm1024" data-reactid="149">People</div>
+ </div>
+ </a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)" data-reactid="150">
+ <div class="Py(14px) Pos(r)" data-test-locator="mega" data-reactid="151">
+ <div class="Cf" data-reactid="152">
+ <div class="Ov(h) Pend(14%) Pend(44px)--sm1024" data-reactid="153">
+ <div class="Fw(b) Fz(12px) Tt(c) D(ib) Mb(6px) C(#188fff) Mend(9px) Mt(-2px)" data-test-locator="catlabel" data-reactid="154">News</div>
+ <div class="C(#959595) Fz(11px) D(ib) Mb(6px)" data-reactid="155">Associated Press</div>
+ <div class="Pos(a) End(0) W(36px) Ta(c) Z(3) NoJs_D(n)"><a class="Pos(r) Cur(p) Bdw(0) Va(m) C(#ccc) Td(n) P(0) D(ib) Pb(6px) desktop_W(100%)" href="/news/latest-abductors-california-mom-kept-faces-covered-222647892.html"><span><span class="Fw(b) Mt(-14px) Pos(r) D(b) Fz(11px)" style="color: rgb(149, 149, 149);">30</span><span class="Hidden">Comments. Click to view comments</span></span><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="21" height="21" viewBox="0 0 16 16" data-icon="comments" style="position: relative; top: 1px; margin: auto; vertical-align: middle; fill: rgb(149, 149, 149); stroke: rgb(149, 149, 149); stroke-width: 0;"><path d="M14.002 10c0 .735-.625 1.333-1.395 1.333h-8.58l-2.028 1.892-.002-9.892C1.998 2.598 2.623 2 3.392 2h9.215c.77 0 1.395.598 1.395 1.333V10zM3.392.667C1.887.667.667 1.86.667 3.334v11.333c0 .265.157.505.4.61.085.038.176.056.266.056.165 0 .328-.062.453-.18l2.765-2.486h8.058c1.505 0 2.726-1.194 2.726-2.667V3.333c0-1.473-1.22-2.667-2.726-2.667H3.393zm7.947 4H4.68c-.367 0-.666.298-.666.667S4.314 6 4.682 6h6.657c.367 0 .665-.298.665-.666s-.298-.667-.666-.667zM4.68 7.333c-.367 0-.666.298-.666.667s.298.667.666.667h6.657c.367 0 .665-.3.665-.667s-.298-.667-.666-.667H4.68z"/></svg></a><button aria-label="Sign in to like" class="Pt(3px) Pb(0) Z(2) Pend(1px) NoJs_D(n) Bd(0) M(0) P(0) Va(m) desktop_W(100%) Pos(r)" href="#"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="21" height="21" viewBox="0 0 48 48" data-icon="favorite" style="fill: rgb(149, 149, 149); stroke: rgb(149, 149, 149); stroke-width: 0; vertical-align: bottom;"><path d="M34.055 8.48c1.928 0 3.747.8 5.127 2.256 2.914 3.076 2.914 8.08.002 11.155L24 37.87 8.824 21.897c-2.916-3.08-2.918-8.085-.002-11.163 1.377-1.455 3.197-2.256 5.13-2.256 1.606 0 3.427 0 7.267 4.512L24 16.254l2.78-3.265c3.842-4.51 5.665-4.51 7.275-4.51m0-3.653c-3.123 0-5.84.848-10.055 5.797-4.266-5.01-6.984-5.797-10.05-5.797-2.945 0-5.706 1.208-7.78 3.398-4.227 4.458-4.227 11.72.002 16.184L24 43.173l17.832-18.77c4.225-4.46 4.225-11.722 0-16.18-2.073-2.19-4.836-3.397-7.777-3.397"/></svg></button>
+ <div class="share-menu-wrapper D(ib) Pos(r)"><button aria-label="Share Menu" class="O(0):f P(4px) Pb(6px) Pend(6px) react-button"><svg xmlns="http://www.w3.org/2000/svg" class="M(a) Cur(p)" width="20" height="20" viewBox="0 0 48 48" data-icon="share" style="vertical-align: initial; fill: rgb(149, 149, 149); stroke: rgb(149, 149, 149); stroke-width: 0;"><path d="M41.574 18.795c-1.104 0-2 .896-2 2v22h-28v-22c0-1.104-.896-2-2-2s-2 .896-2 2v24c0 1.105.896 2 2 2h32c1.104 0 2-.895 2-2v-24c0-1.104-.894-2-2-2zM21.044 13.652l2.53-2.742v22.385h4V10.91l2.53 2.742c.395.428.932.643 1.47.643.484 0 .972-.174 1.355-.53.81-.75.86-2.015.112-2.825l-7.47-8.092-7.47 8.092c-.75.81-.698 2.076.113 2.826.813.748 2.078.697 2.83-.114z"/></svg></button></div>
+ </div>
+ <h3 class="Mb(5px)" data-reactid="156"><a href="/news/latest-abductors-california-mom-kept-faces-covered-222647892.html" class="Td(n) O(n):f" data-reactid="157"><u class="StretchedBox" data-reactid="158"></u><div class="Fw(b) Fz(20px) Lh(23px) LineClamp(2,46px) Pos(r) Fz(17px)--sm1024 Lh(19px)--sm1024 LineClamp(2,38px)--sm1024 C(#000) C(#0078ff):h" data-reactid="159">The Latest: Abductors of California woman hid faces</div></a></h3>
+ <p class="M(0) Fz(14px) Lh(19px) Fz(13px)--sm1024 Lh(17px)--sm1024 LineClamp(3,57px) LineClamp(3,51px)--sm1024" data-reactid="160">A California sheriff says a woman who was held captive for three weeks is unable to fully describe her two female abductors because their faces were covered. Shasta County Sheriff Tom Bosenko said Wednesday that the Spanish-speaking suspects also kept the head of 34-year-old victim Sherri Papini covered at times. A California sheriff says the abductors of a woman who was held captive for three weeks branded her with a message before she was released.</p>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)" data-reactid="161">
+ <div class="Py(14px) Pos(r)" data-test-locator="mega" data-reactid="162">
+ <div class="Cf" data-reactid="163">
+ <div class="Fl(start) Pos(r) Z(1) Mt(2px) W(26.5%) Maw(220px)" data-reactid="164">
+ <a href="/news/steven-mnuchin-says-hes-named-us-treasury-secretary-001651071.html" class="D(b) H(0) Ov(h) Bdrs(2px)" style="padding-bottom:88%;" data-reactid="165"><img class="Trsdu(.42s) W(100%) Trsdu(0s)! Bdrs(2px)" alt="Trump picks Treasury secretary, says he'll leave his business" style="" src="/sy/uu/api/res/1.2/mzvz49PUTQK.b.__Gd9HKw--/Zmk9c3RyaW07aD0xOTM7cHlvZmY9MDtxPTgwO3c9MjIwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en_us/News/afp.com/f36535039305b6d05ae5610fc7a562994c6650be.jpg.cf.jpg" data-reactid="166" srcset="https://s.yimg.com/uu/api/res/1.2/mzvz49PUTQK.b.__Gd9HKw--/Zmk9c3RyaW07aD0xOTM7cHlvZmY9MDtxPTgwO3c9MjIwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en_us/News/afp.com/f36535039305b6d05ae5610fc7a562994c6650be.jpg.cf.jpg 1x,https://s.yimg.com/uu/api/res/1.2/BZlkDt5DLzO87oS.v_kd3g--/Zmk9c3RyaW07aD0zODY7cHlvZmY9MDtxPTgwO3c9NDQwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en_us/News/afp.com/f36535039305b6d05ae5610fc7a562994c6650be.jpg.cf.jpg 2x" /></a>
+ </div>
+ <div class="Ov(h) Pend(44px) Pstart(25px)" data-reactid="167">
+ <div class="Fw(b) Fz(12px) Tt(c) D(ib) Mb(6px) C(#003abc) Mend(9px) Mt(-2px)" data-test-locator="catlabel" data-reactid="168">Politics</div>
+ <div class="C(#959595) Fz(11px) D(ib) Mb(6px)" data-reactid="169">AFP</div>
+ <div class="Pos(a) End(0) W(36px) Ta(c) Z(3) NoJs_D(n)"><a class="Pos(r) Cur(p) Bdw(0) Va(m) C(#ccc) Td(n) P(0) D(ib) Pb(6px) desktop_W(100%)" href="/news/steven-mnuchin-says-hes-named-us-treasury-secretary-001651071.html"><span><span class="Fw(b) Mt(-14px) Pos(r) D(b) Fz(11px)" style="color: rgb(149, 149, 149);">8</span><span class="Hidden">Comments. Click to view comments</span></span><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="21" height="21" viewBox="0 0 16 16" data-icon="comments" style="position: relative; top: 1px; margin: auto; vertical-align: middle; fill: rgb(149, 149, 149); stroke: rgb(149, 149, 149); stroke-width: 0;"><path d="M14.002 10c0 .735-.625 1.333-1.395 1.333h-8.58l-2.028 1.892-.002-9.892C1.998 2.598 2.623 2 3.392 2h9.215c.77 0 1.395.598 1.395 1.333V10zM3.392.667C1.887.667.667 1.86.667 3.334v11.333c0 .265.157.505.4.61.085.038.176.056.266.056.165 0 .328-.062.453-.18l2.765-2.486h8.058c1.505 0 2.726-1.194 2.726-2.667V3.333c0-1.473-1.22-2.667-2.726-2.667H3.393zm7.947 4H4.68c-.367 0-.666.298-.666.667S4.314 6 4.682 6h6.657c.367 0 .665-.298.665-.666s-.298-.667-.666-.667zM4.68 7.333c-.367 0-.666.298-.666.667s.298.667.666.667h6.657c.367 0 .665-.3.665-.667s-.298-.667-.666-.667H4.68z"/></svg></a><button aria-label="Sign in to like" class="Pt(3px) Pb(0) Z(2) Pend(1px) NoJs_D(n) Bd(0) M(0) P(0) Va(m) desktop_W(100%) Pos(r)" href="#"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="21" height="21" viewBox="0 0 48 48" data-icon="favorite" style="fill: rgb(149, 149, 149); stroke: rgb(149, 149, 149); stroke-width: 0; vertical-align: bottom;"><path d="M34.055 8.48c1.928 0 3.747.8 5.127 2.256 2.914 3.076 2.914 8.08.002 11.155L24 37.87 8.824 21.897c-2.916-3.08-2.918-8.085-.002-11.163 1.377-1.455 3.197-2.256 5.13-2.256 1.606 0 3.427 0 7.267 4.512L24 16.254l2.78-3.265c3.842-4.51 5.665-4.51 7.275-4.51m0-3.653c-3.123 0-5.84.848-10.055 5.797-4.266-5.01-6.984-5.797-10.05-5.797-2.945 0-5.706 1.208-7.78 3.398-4.227 4.458-4.227 11.72.002 16.184L24 43.173l17.832-18.77c4.225-4.46 4.225-11.722 0-16.18-2.073-2.19-4.836-3.397-7.777-3.397"/></svg></button>
+ <div class="share-menu-wrapper D(ib) Pos(r)"><button aria-label="Share Menu" class="O(0):f P(4px) Pb(6px) Pend(6px) react-button"><svg xmlns="http://www.w3.org/2000/svg" class="M(a) Cur(p)" width="20" height="20" viewBox="0 0 48 48" data-icon="share" style="vertical-align: initial; fill: rgb(149, 149, 149); stroke: rgb(149, 149, 149); stroke-width: 0;"><path d="M41.574 18.795c-1.104 0-2 .896-2 2v22h-28v-22c0-1.104-.896-2-2-2s-2 .896-2 2v24c0 1.105.896 2 2 2h32c1.104 0 2-.895 2-2v-24c0-1.104-.894-2-2-2zM21.044 13.652l2.53-2.742v22.385h4V10.91l2.53 2.742c.395.428.932.643 1.47.643.484 0 .972-.174 1.355-.53.81-.75.86-2.015.112-2.825l-7.47-8.092-7.47 8.092c-.75.81-.698 2.076.113 2.826.813.748 2.078.697 2.83-.114z"/></svg></button></div>
+ </div>
+ <h3 class="Mb(5px)" data-reactid="170"><a href="/news/steven-mnuchin-says-hes-named-us-treasury-secretary-001651071.html" class="Td(n) O(n):f" data-reactid="171"><u class="StretchedBox" data-reactid="172"></u><div class="Fw(b) Fz(20px) Lh(23px) LineClamp(2,46px) Pos(r) Fz(17px)--sm1024 Lh(19px)--sm1024 LineClamp(2,38px)--sm1024 C(#000) C(#0078ff):h" data-reactid="173">Trump picks Treasury secretary, says he'll leave his business</div></a></h3>
+ <p class="M(0) Fz(14px) Lh(19px) Fz(13px)--sm1024 Lh(17px)--sm1024 LineClamp(2,38px) LineClamp(2,34px)--sm1024 D(n)--sm1024 Bxz(bb) Pb(2px)" data-reactid="174">President-elect Donald Trump named Wall Street veteran Steven Mnuchin for Treasury secretary Wednesday, filling key slots on his economic team even as he announced plans to leave his businesses to avoid any conflict of interest. Mnuchin and billionaire Wilbur Ross were asked in a television interview with CNBC if they could confirm reports they had been named to lead the US Treasury and Commerce departments, respectively. Mnuchin, 53, is a former Goldman Sachs partner who was Trump's campaign chairman and Ross is an investor who has made billions turning around distressed companies.</p>
+ <ul class="Cf Mt(12px) Fz(12px) Pos(r) Z(1) Mt(8px)--sm1024" data-reactid="175">
+ <li class="Fl(start) W(50%) W(100%)--sm1024 Mb(8px)--sm1024" data-reactid="176">
+ <a class="Td(n) D(ib) Va(t) W(90%) Mend(10%) C(#0078ff)!:h C(#000) C(#959595):vi" href="/news/m/04931954-fede-32d3-af52-4010e1c210d9/ss_incoming-treasury-secretary.html" data-reactid="177"><img class="Trsdu(.42s) Fl(start) W(29%) Miw(65px) Maw(72px) Mend(10px) Trsdu(0s)! D(n)--sm1024 Bdrs(2px)" alt="Incoming Treasury Secretary Eyes 3 to 4 Percent Growth; First Up, Tax Reform" style="" src="/sy/uu/api/res/1.2/XlgPAviFNQEKyX6WQAoWFw--/Zmk9c3RyaW07aD03MjtweW9mZj0wO3E9ODA7dz03MjtzbT0xO2FwcGlkPXl0YWNoeW9u/http://slingstone.zenfs.com/offnetwork/89842973b3907e6a0c42f2a9895f84b6" data-reactid="178" srcset="" />
+ <div class="Ov(h)" data-reactid="179">
+ <div class="Lh(15px) Fw(b) LineClamp(3,45px) D(i)--sm1024 Pend(10px)--sm1024" data-reactid="180">Incoming Treasury Secretary Eyes 3 to 4 Percent Growth; First Up, Tax Reform</div>
+ <div class="C(#959595) Fz(11px) Mt(2px) Va(b) D(ib)--sm1024" data-reactid="181">CNS News</div>
+ </div>
+ </a>
+ </li>
+ <li class="Fl(start) W(50%) W(100%)--sm1024" data-reactid="182">
+ <a class="Td(n) D(ib) Va(t) W(90%) Mend(10%) C(#0078ff)!:h C(#000) C(#959595):vi" href="/news/m/ad575d3c-18a7-3683-9265-c8d93257ad72/ss_trump-taps-wall-street.html" data-reactid="183"><img class="Trsdu(.42s) Fl(start) W(29%) Miw(65px) Maw(72px) Mend(10px) Trsdu(0s)! D(n)--sm1024 Bdrs(2px)" alt="Trump taps Wall Street executive and Hollywood producer Steven Mnuchin for Treasury secretary" style="" src="/sy/uu/api/res/1.2/gHqKy_nouHib387jGHw1dQ--/Zmk9c3RyaW07aD03MjtweW9mZj0wO3E9ODA7dz03MjtzbT0xO2FwcGlkPXl0YWNoeW9u/http://slingstone.zenfs.com/offnetwork/82f7c8b7a0eb9a29b9efdbf41ea15421" data-reactid="184" srcset="" />
+ <div class="Ov(h)" data-reactid="185">
+ <div class="Lh(15px) Fw(b) LineClamp(3,45px) D(i)--sm1024 Pend(10px)--sm1024" data-reactid="186">Trump taps Wall Street executive and Hollywood producer Steven Mnuchin for Treasury secretary</div>
+ <div class="C(#959595) Fz(11px) Mt(2px) Va(b) D(ib)--sm1024" data-reactid="187">Los Angeles Times</div>
+ </div>
+ </a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)" data-reactid="188">
+ <div class="controller Feedback Pos(r)" data-beacon="" data-tp-beacon="" data-reactid="189">
+ <div class="Cf Ov(h) Pos(r) Mt(-3px) Py(14px)" data-reactid="190">
+ <div class="Fl(start) Mt(3px) Mend(25px) W(26.5%) Maw(220px)">
+ <div class="Pos(r) H(0) Pb(56.25%)">
+ <div class="VideoPlayer D(b) Pos(r) Pb(56.25%)">
+ <div class="StretchedBox">
+ <div tabindex="0" class="yvp-content yvp-hide-controls smallscreen yvp-browser-ua yvp-browser-firefox yvp-browser-desktop yvp-browser-macintosh yvp-state-start-screen yvp-stream" aria-label="Yahoo Video Player" id="yvp-content-node-798">
+ <div class="yvp-main" tabindex="0">
+ <div class="yvp-loading-screen">
+ <div class="yvp-loading-spinner yvp-spinner-icon"></div>
+ <div class="yvp-feedback-btn yvp-error-feedback">
+ <p>Report issue</p>
+ </div>
+ </div>
+ <div class="yvp-bottom-bar">
+ <div class="yvp-bottom-container">
+ <div class="yvp-slider" role="slider" tabindex="0" aria-label="Seek slider" aria-valuemin="0">
+ <div class="yvp-slider-extension" aria-hidden="true"></div>
+ <div class="yvp-handle"></div>
+ <div class="yvp-buffer-bar"></div>
+ <div class="yvp-playback-bar"></div>
+ <div class="yvp-visual-seek">
+ <div class="yvp-vs-thumbnail"></div>
+ <div class="yvp-vs-time"></div>
+ </div>
+ </div>
+ <div class="yvp-play-controls">
+ <div class="yvp-play-btn" role="button" tabindex="0" aria-label="Pause Video"></div>
+ <div class="yvp-upnext-container hide">
+ <div class="yvp-upnext-btn" role="button">
+ </div>
+ <div class="yvp-upnext-playlist" role="dialog">
+ <div class="yvp-hover-elem"></div>
+ </div>
+ </div>
+ <div class="yvp-time-container" tabindex="-1" aria-hidden="true">
+ <div class="yvp-current-time"></div>
+ <div class="yvp-total-time"></div>
+ </div>
+ </div>
+ <div class="yvp-menu-controls">
+ <div class="yvp-cc-btn button hide yvp-tooltip" role="button" tabindex="0" aria-label="Closed Captions">
+ <div class="yvp-tooltip-wrapper">
+ <div class="yvp-tooltip-content">Captions Not Available</div>
+ </div>
+ </div>
+ <div class="yvp-volume-btn button" role="button" tabindex="0" aria-label="Mute">
+ <div class="yvp-volume-bar-container">
+ <div class="yvp-volume-level">
+ <div class="yvp-volume-bar">
+ <div class="yvp-volume-handle"></div>
+ </div>
+ <div class="yvp-volume-value"></div>
+ </div>
+ </div>
+ </div>
+ <div class="yvp-setting-btn button yvp-tooltip" role="button" tabindex="0" aria-label="Settings">
+ <div class="yvp-setting-pointer" aria-hidden="true"></div>
+ <div class="yvp-tooltip-wrapper">
+ <div class="yvp-tooltip-content">
+ Settings
+ </div>
+ </div>
+ </div>
+
+ <div class="yvp-fullscreen-btn button yvp-tooltip" role="button" tabindex="0" aria-label="Go to full screen">
+ <div class="yvp-tooltip-wrapper">
+ <div class="yvp-tooltip-content">
+ Full Screen
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="yvp-settings-container" tabindex="0">
+ <div class="yvp-main-settings open">
+ <div class="yvp-settings-embed open">
+ <div class="yvp-settings-header" tabindex="0" aria-label="Embed">Embed</div>
+ <div class="yvp-input-container yvp-embed-input-container">
+ <input class="yvp-embed-input" value="" data-link-type="emb" readonly="readonly" type="text" />
+ </div>
+ <div class="yvp-settings-divider"></div>
+ </div>
+ <div class="yvp-settings-quality">
+ <div class="yvp-settings-header" tabindex="0" aria-label="Video Quality">Video Quality</div>
+ <div class="yvp-settings-item yvp-quality-auto yvp-settings-activated" tabindex="1">Auto</div>
+ <div class="yvp-settings-item yvp-quality-high yvp-disabled" tabindex="2">High (HD)</div>
+ <div class="yvp-settings-item yvp-quality-medium yvp-disabled" tabindex="3">Medium</div>
+ <div class="yvp-settings-item last-item yvp-quality-low yvp-disabled" tabindex="4">Low</div>
+ <div class="yvp-settings-divider"></div>
+ </div>
+ <div class="yvp-settings-cc">
+ <div class="yvp-settings-header last-item" tabindex="0" aria-label="Closed Caption Settings">Closed Caption Settings</div>
+ <div class="yvp-settings-caret-icon right"></div>
+ </div>
+ </div>
+ <div class="yvp-cc-options-main close">
+ <div class="yvp-cc-back-to-settings">
+ <div class="yvp-settings-caret-icon left"></div>
+ <div class="yvp-back-to-settings">Back</div>
+ </div>
+
+ <div class="yvp-cc-box">
+ <div class="yvp-cc-header yvp-cc-item">Closed Captions</div>
+ <div class="yvp-cc-toggle">
+ <div data-cc-state="on" class="yvp-settings-item yvp-cc-on"></div>
+ <div data-cc-state="off" class="yvp-settings-item yvp-cc-off yvp-settings-activated"></div>
+ </div>
+ <div class="yvp-cc-header yvp-cc-item">Language</div>
+ <div class="yvp-cc-language yvp-cc-item">
+ <div class="yvp-ddm-wrapper">
+ <div class="yvp-ddm-selected-wrapper">
+ <div class="yvp-ddm-selected">English<span class="yvp-ddm-availability not-available"></span></div><span class="yvp-ddm-chevron"></span></div>
+ <ul class="yvp-ddm-list">
+ <li class="yvp-ddm-item">No item available</li>
+ </ul>
+ </div>
+ </div>
+ </div>
+
+ <div class="yvp-cc-divider"></div>
+ <div class="yvp-cc-box">
+ <div class="yvp-cc-position yvp-cc-item">
+ <div class="yvp-cc-header yvp-cc-item">Position</div>
+ <div class="yvp-cc-pos-wrapper">
+ <ul class="yvp-cc-pos-selection">
+ <li class="yvp-settings-item yvp-cc-position-bottom yvp-settings-activated" cc-pos-data="bottom">Bottom</li>
+ <li class="yvp-settings-item yvp-cc-position-top" cc-pos-data="top">Top</li>
+ </ul>
+ </div>
+ </div>
+ <div class="yvp-cc-size yvp-cc-item">
+ <div class="yvp-cc-header yvp-cc-item">Type Size</div>
+ <div class="yvp-cc-size-selector">
+ <div class="yvp-cc-size-indicators">
+ <div class="yvp-cc-indicator yvp-cc-indicator-0" data-size-value="0">A</div>
+ <div class="yvp-cc-indicator yvp-cc-indicator-25" data-size-value="25">A</div>
+ <div class="yvp-cc-indicator yvp-cc-indicator-50" data-size-value="50">A</div>
+ <div class="yvp-cc-indicator yvp-cc-indicator-75" data-size-value="75">A</div>
+ <div class="yvp-cc-indicator yvp-cc-indicator-100" data-size-value="100">A</div>
+ </div>
+ <div class="yvp-slider-wrapper">
+ <div class="yvp-slider-track">
+ <div class="yvp-slider-anchor" style="left: 0%"></div>
+ <div class="yvp-slider-anchor" style="left: 25%"></div>
+ <div class="yvp-slider-anchor" style="left: 50%"></div>
+ <div class="yvp-slider-anchor" style="left: 75%"></div>
+ <div class="yvp-slider-anchor" style="left: 100%"></div>
+ <div class="yvp-slider-handle" style="left: 24%"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div class="yvp-cc-divider"></div>
+ <div class="yvp-cc-box">
+ <div class="yvp-cc-style yvp-cc-item">
+ <div class="yvp-cc-style-preview" style="font-family: Arial,Helvetica,sans-serif; color: rgb(255, 255, 255); background-color: rgba(0, 0, 0, 0.75);">Aa</div>
+ <div class="yvp-cc-style-more">
+ <div class="yvp-cc-item">Style Options</div>
+ <div class="yvp-settings-caret-icon right"></div>
+ </div>
+ </div>
+
+ <div class="yvp-cc-feedback-link yvp-cc-item">
+ <a href="http://info.yahoo.com/legal/us/yahoo/cc/en-us/" target="_blank">
+ <div class="yvp-cc-item"></div>
+ </a>
+ </div>
+ <div class="yvp-cc-preview">
+ <div class="yvp-cc-preview-message">Captions will look like this</div>
+ </div>
+ </div>
+ </div>
+ <div class="yvp-cc-options-more close">
+ <div class="yvp-cc-back">
+ <div class="yvp-settings-caret-icon left"></div>
+ <div class="yvp-cc-back-header">Back</div>
+ </div>
+ <div class="yvp-tab-container">
+ <ul class="yvp-tabs-nav">
+ <li class="yvp-tab tab-selected">Presets</li>
+ <li class="yvp-tab">Text</li>
+ <li class="yvp-tab">background</li>
+ <li class="yvp-tab">effects</li>
+ </ul>
+ <div class="yvp-tabs-content">
+ <div class="yvp-tabcontent preset-container tab-show">
+ <div class="yvp-cc-preset" style="color: rgb(205, 205, 205); background-color: rgb(6, 6, 6);">Aa</div>
+ <div class="yvp-cc-preset" style="color: rgb(40, 40, 40); background-color: rgb(200, 200, 200);">Aa</div>
+ <div class="yvp-cc-preset" style="color: rgb(254, 241, 73); background-color: rgb(10, 9, 8);">Aa</div>
+ <div class="yvp-cc-preset" style="color: rgb(205, 205, 205); background-color: transparent;">Aa</div>
+ <div class="yvp-cc-preset" style="color: rgb(41, 253, 47); background-color: rgb(10, 9, 8);">Aa</div>
+ <div class="yvp-cc-preset" style="color: rgb(236, 54, 156); background-color: rgb(10, 10, 9);">Aa</div>
+ <div class="yvp-cc-preset" style="color: rgb(44, 254, 254); background-color: rgb(10, 10, 9);">Aa</div>
+ <div class="yvp-cc-preset" style="color: rgb(41, 253, 47); background-color: transparent;">Aa</div>
+ </div>
+ <div class="yvp-tabcontent font-list">
+ <div class="yvp-ddm-wrapper">
+ <div class="yvp-ddm-selected-wrapper">
+ <div class="yvp-ddm-selected">Arial<span class="yvp-ddm-availability"></span></div><span class="yvp-ddm-chevron"></span></div>
+ <ul class="yvp-ddm-list">
+ <li class="yvp-ddm-item">Georgia<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">Palatino Linotype<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">Times New Roman<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">Arial<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">Arial Black<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">Comic Sans MS<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">Impact<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">Lucida Sans Unicode<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">Tahoma<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">Trebuchet MS<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">Verdana<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">Courier New<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">Lucida Console<span class="yvp-ddm-availability"></span></li>
+ </ul>
+ </div>
+ <div class="yvp-colorpicker fontcolorpicker">
+ <div class="color-option" style="background-color: rgb(231, 231, 231);"></div>
+ <div class="color-option" style="background-color: rgb(0, 0, 0);"></div>
+ <div class="color-option" style="background-color: rgb(252, 37, 37);"></div>
+ <div class="color-option" style="background-color: rgb(41, 253, 47);"></div>
+ <div class="color-option" style="background-color: rgb(44, 254, 254);"></div>
+ <div class="color-option" style="background-color: rgb(236, 54, 156);"></div>
+ <div class="color-option" style="background-color: rgb(254, 241, 73);"></div>
+ <div class="color-option" style="background-color: rgb(37, 36, 251);"></div>
+ </div>
+ </div>
+ <div class="yvp-tabcontent bg-opacity-list">
+ <div class="yvp-ddm-wrapper">
+ <div class="yvp-ddm-selected-wrapper">
+ <div class="yvp-ddm-selected">75% (transparency)<span class="yvp-ddm-availability"></span></div><span class="yvp-ddm-chevron"></span></div>
+ <ul class="yvp-ddm-list">
+ <li class="yvp-ddm-item">100% (opaque)<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">75% (transparency)<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">50% (transparency)<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">25% (transparency)<span class="yvp-ddm-availability"></span></li>
+ </ul>
+ </div>
+ <div class="yvp-colorpicker bgcolorpicker">
+ <div class="color-option nocolor" style="background-color: transparent;"></div>
+ <div class="color-option" style="background-color: rgb(234, 234, 234);"></div>
+ <div class="color-option" style="background-color: rgb(199, 199, 199);"></div>
+ <div class="color-option" style="background-color: rgb(145, 145, 145);"></div>
+ <div class="color-option" style="background-color: rgb(91, 91, 91);"></div>
+ <div class="color-option" style="background-color: rgb(0, 0, 0);"></div>
+ <div class="color-option" style="background-color: rgb(41, 253, 47);"></div>
+ <div class="color-option" style="background-color: rgb(36, 36, 251);"></div>
+ <div class="color-option" style="background-color: rgb(44, 253, 253);"></div>
+ <div class="color-option" style="background-color: rgb(236, 53, 155);"></div>
+ <div class="color-option" style="background-color: rgb(253, 240, 72);"></div>
+ <div class="color-option" style="background-color: rgb(252, 36, 36);"></div>
+ </div>
+ </div>
+ <div class="yvp-tabcontent effects">
+ <div class="yvp-effect none">
+ <p>Aa</p>
+ <div class="yvp-cc-effect-header">Plain</div>
+ </div>
+ <div class="yvp-effect dropshadow">
+ <p>Aa</p>
+ <div class="yvp-cc-effect-header">Shadow</div>
+ </div>
+ <div class="yvp-effect raised">
+ <p>Aa</p>
+ <div class="yvp-cc-effect-header">raised</div>
+ </div>
+ <div class="yvp-effect depressed">
+ <p>Aa</p>
+ <div class="yvp-cc-effect-header">Lowered</div>
+ </div>
+ <div class="yvp-effect uniform">
+ <p>Aa</p>
+ <div class="yvp-cc-effect-header">Outline</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="yvp-cc-style-preview" style="font-family: Arial,Helvetica,sans-serif; color: rgb(255, 255, 255); background-color: rgba(0, 0, 0, 0.75);">
+ <div class="yvp-cc-options-message">Captions will look like this</div>
+ </div>
+ </div>
+ </div>
+ <div class="yvp-docked-close-button"></div>
+ </div>
+ </div>
+ <div class="yvp-top-bar">
+ <a class="yvp-provider-logo" target="_blank" aria-hidden="true"></a>
+ <div class="yvp-content-type hide" tabindex="0" aria-label=""></div>
+ </div>
+ <div class="yvp-playing-item-title"></div>
+ <div class="yvp-custom-controls"></div>
+ <div class="yvp-object-overlay"></div>
+ <div class="yvp-mute-indicator"></div>
+ <div class="yvp-ads-overlay"></div>
+ <div class="cc-element yvp-hide" style="font-family: Arial,Helvetica,sans-serif; font-size: 10px; color: rgb(255, 255, 255);"><span style="background-color: rgba(0, 0, 0, 0.75); line-height: 0; padding: 0px;"></span></div>
+ <div class="yvp-start-screen" tabindex="-1">
+ <img class="yvp-start-screen-image" src="https://s.yimg.com/uu/api/res/1.2/YtynaEAbpOhfQOgYxXwGDw--/Zmk9c3RyaW07aD0xMjM7cHlvZmY9MDtxPTgwO3c9MjIwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://s.yimg.com/av/moneyball/ads/1471893837023-4662.jpg.cf.jpg" aria-hidden="true" width="220" height="124" />
+ <div class="yvp-start-screen-bar-wrapper">
+ <div class="yvp-start-screen-bar" tabindex="-1">
+ </div>
+ </div>
+ </div><video class="yvp-html5-video" preload="" id="675228425" src="blob:https://us.yahoo.com/ebc614c4-062e-a54c-8094-6b375201258a"></video></div>
+ <div class="yvp-docked-meta">
+ <div class="yvp-docked-title"></div>
+ <div class="yvp-docked-provider"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="Ov(h) Pend(44px)" data-reactid="194">
+ <div class="Pos(r) Z(2) Fw(b)" data-reactid="195"><a class="D(ib) Td(n) C(#959595) Fz(12px) Mend(3px) Mb(6px)" href="http://help.yahoo.com/kb/index?page=content&amp;y=PROD_FRONT&amp;locale=en_US&amp;id=SLN14553" target="_blank" rel="noopener noreferrer" data-reactid="196">Sponsored</a><a href="https://info.yahoo.com/privacy/us/yahoo/relevantads.html" target="_blank" rel="noopener noreferrer" data-reactid="197"><i class="Pos(r) T(2px)" data-reactid="198"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="12" style="vertical-align:baseline;fill:#959595;stroke:#959595;stroke-width:0;" height="12" viewBox="0 0 24 24" data-icon="sponsor" data-reactid="199"><path d="M5.636 4.222c-.39-.39-1.023-.39-1.414 0s-.39 1.024 0 1.414l.707.707c.39.39 1.022.39 1.414 0 .39-.39.39-1.023 0-1.414l-.708-.708zM4.93 17.658l-.708.707c-.39.39-.39 1.023 0 1.414.39.39 1.023.39 1.414 0l.707-.708c.39-.39.39-1.024 0-1.414-.39-.39-1.023-.39-1.414 0zm14.14 0c-.39-.39-1.023-.39-1.413 0-.39.39-.39 1.023 0 1.414l.707.707c.39.39 1.024.39 1.414 0 .39-.392.39-1.025 0-1.415l-.707-.707zm0-11.315l.708-.707c.39-.39.39-1.023 0-1.414s-1.024-.39-1.414 0l-.707.707c-.39.39-.39 1.024 0 1.414.39.39 1.023.39 1.414 0zM22 11h-1c-.553 0-1 .448-1 1s.447 1 1 1h1c.552 0 1-.448 1-1s-.448-1-1-1zM10 9h5c.552 0 1-.448 1-1s-.448-1-1-1h-2c0-.55-.447-1-1-1s-1 .45-1 1H9.5C8.12 7 7 8.12 7 9.5v1C7 11.88 8.12 13 9.5 13H13c.552 0 1 .448 1 1s-.448 1-1 1H8c-.553 0-1 .448-1 1s.447 1 1 1h3c0 .55.447 1 1 1s1-.45 1-1h.5c1.38 0 2.5-1.12 2.5-2.5v-1c0-1.38-1.37-2.5-3-2.5h-3c-.553 0-1-.448-1-1s.447-1 1-1zm2-5c.553 0 1-.448 1-1V2c0-.552-.447-1-1-1s-1 .448-1 1v1c0 .552.447 1 1 1zm-9 7H2c-.553 0-1 .448-1 1s.447 1 1 1h1c.552 0 1-.448 1-1s-.448-1-1-1zm9 9c-.553 0-1 .448-1 1v1c0 .552.447 1 1 1s1-.448 1-1v-1c0-.552-.447-1-1-1z" data-reactid="200"/></svg></i></a><a class="Fz(11px) Td(n) Fw(n) D(ib) C(#959595) Mstart(9px)" rel="noopener noreferrer" target="_blank" href="https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=EeYb.ooGIS.5.sc_wSLQpqDRiS5MJxTCV7Xzb1NwpmtCAnc9JdcvayB4UK5vtIcGLXjOAlZpLk1mzKMsUtcUOzoAeaqkjby9kpFavRgZ6SywTbVrb1eqLJ0TFqsb0K6qrwYd72_2oJ_m.DcvhA5Xu6wcGL0sEkLLBMfLycwyNUnt54tAVfA7AyYTYvW_LPaCOf4Ss5QofWfb0xDZOefMUdmRNBKF873yo3ZJ25YL57l3sJXOWE8suUVuk58HNEoqhOX.gGeLg2Sjgw6jOHr4XKURRnt2b0Rko4lkPyrau042_pOdwNGQnPKfUg93z57XD8r0YdEjKP5atWHFCCYoyyegjEiFREn4fcgGILcL1NuMB1VH_7ieuIyalDy8Sv_i.ginCcZv8ebOKfInsai3kgz.9nNCaVGzNnDolqLUmk0zf1AlLmoLzi35bx5gAtL56TVZPFqsssh8EPDhiAUMIPGUCfolntEekuY1SmuLGxFq1F5gjUN.OgT26It2hpV9sMyvhtVS0Mv3LbzPOYTHHuotZB5.qxpAI3E43jwKMvhzjAQnv8b8%26lp=http%3A%2F%2Fclickserve.dartsearch.net%2Flink%2Fclick%3Flid%3D43700013090213478%26ds_s_kwgid%3D58700001647004279%26ds_url_v%3D2" data-reactid="201">Flonase</a></div>
+ <h3 class="M(0) Pos(r)" data-reactid="202"><a rel="nofollow noopener noreferrer" class="Td(n)" target="_blank" href="https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=EeYb.ooGIS.5.sc_wSLQpqDRiS5MJxTCV7Xzb1NwpmtCAnc9JdcvayB4UK5vtIcGLXjOAlZpLk1mzKMsUtcUOzoAeaqkjby9kpFavRgZ6SywTbVrb1eqLJ0TFqsb0K6qrwYd72_2oJ_m.DcvhA5Xu6wcGL0sEkLLBMfLycwyNUnt54tAVfA7AyYTYvW_LPaCOf4Ss5QofWfb0xDZOefMUdmRNBKF873yo3ZJ25YL57l3sJXOWE8suUVuk58HNEoqhOX.gGeLg2Sjgw6jOHr4XKURRnt2b0Rko4lkPyrau042_pOdwNGQnPKfUg93z57XD8r0YdEjKP5atWHFCCYoyyegjEiFREn4fcgGILcL1NuMB1VH_7ieuIyalDy8Sv_i.ginCcZv8ebOKfInsai3kgz.9nNCaVGzNnDolqLUmk0zf1AlLmoLzi35bx5gAtL56TVZPFqsssh8EPDhiAUMIPGUCfolntEekuY1SmuLGxFq1F5gjUN.OgT26It2hpV9sMyvhtVS0Mv3LbzPOYTHHuotZB5.qxpAI3E43jwKMvhzjAQnv8b8%26lp=http%3A%2F%2Fclickserve.dartsearch.net%2Flink%2Fclick%3Flid%3D43700013090213478%26ds_s_kwgid%3D58700001647004279%26ds_url_v%3D2" data-reactid="203"><u class="StretchedBox" data-reactid="204"></u><span class="Td(n) Fw(b) C(#0078ff):h C(#000) Fz(20px) Lh(23px) LineClamp(2,46px) Pos(r) Fz(17px)--sm1024 Lh(19px)--sm1024 LineClamp(2,38px)--sm1024" data-reactid="205">Don't Be Afraid To Get Your Hands Dirty This Year</span></a></h3>
+ <p class="M(0) Lh(19px) LineClamp(2,38px) Fz(14px) Mt(5px) Fz(13px)--sm1024 Lh(17px)--sm1024 LineClamp(2,34px)--sm1024" data-reactid="206">Learn About The Over the Counter Allergy Relief That Works Directly At The Source Where You Need It Most To Help Relieve Your Outdoor &amp; Pet Allergies!</p>
+ </div>
+ </div>
+ <!-- react-text: 207 -->
+ <!-- /react-text -->
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)" data-reactid="208">
+ <div class="Py(14px) Pos(r)" data-test-locator="mega" data-reactid="209">
+ <div class="Cf" data-reactid="210">
+ <div class="Fl(start) Pos(r) Z(1) Mt(2px) W(26.5%) Maw(220px)" data-reactid="211">
+ <a href="/news/man-charged-assault-endangerment-girlfriends-213400835.html" class="D(b) H(0) Ov(h) Bdrs(2px)" style="padding-bottom:88%;" data-reactid="212"><img class="Trsdu(.42s) W(100%) Trsdu(0s)! Bdrs(2px)" alt="Man Charged With Assault, Endangerment After Girlfriend's Toddler Is Found Brain Dead: Cops" style="" src="/sy/uu/api/res/1.2/jcmVppAqfnBmP1zyTTaExQ--/Zmk9c3RyaW07aD0xOTM7cHlvZmY9MDtxPTgwO3c9MjIwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en-US/homerun/inside_edition/04d1fa12b56c43046d626647c13c9aa9" data-reactid="213" srcset="" /></a>
+ </div>
+ <div class="Ov(h) Pend(44px) Pstart(25px)" data-reactid="214">
+ <div class="Fw(b) Fz(12px) Tt(c) D(ib) Mb(6px) C(#188fff) Mend(9px) Mt(-2px)" data-test-locator="catlabel" data-reactid="215">News</div>
+ <div class="C(#959595) Fz(11px) D(ib) Mb(6px)" data-reactid="216">Inside Edition</div>
+ <div class="Pos(a) End(0) W(36px) Ta(c) Z(3) NoJs_D(n)"><a class="Pos(r) Cur(p) Bdw(0) Va(m) C(#ccc) Td(n) P(0) D(ib) Pb(6px) desktop_W(100%)" href="/news/man-charged-assault-endangerment-girlfriends-213400835.html"><span><span class="Fw(b) Mt(-14px) Pos(r) D(b) Fz(11px)" style="color: rgb(149, 149, 149);">16</span><span class="Hidden">Comments. Click to view comments</span></span><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="21" height="21" viewBox="0 0 16 16" data-icon="comments" style="position: relative; top: 1px; margin: auto; vertical-align: middle; fill: rgb(149, 149, 149); stroke: rgb(149, 149, 149); stroke-width: 0;"><path d="M14.002 10c0 .735-.625 1.333-1.395 1.333h-8.58l-2.028 1.892-.002-9.892C1.998 2.598 2.623 2 3.392 2h9.215c.77 0 1.395.598 1.395 1.333V10zM3.392.667C1.887.667.667 1.86.667 3.334v11.333c0 .265.157.505.4.61.085.038.176.056.266.056.165 0 .328-.062.453-.18l2.765-2.486h8.058c1.505 0 2.726-1.194 2.726-2.667V3.333c0-1.473-1.22-2.667-2.726-2.667H3.393zm7.947 4H4.68c-.367 0-.666.298-.666.667S4.314 6 4.682 6h6.657c.367 0 .665-.298.665-.666s-.298-.667-.666-.667zM4.68 7.333c-.367 0-.666.298-.666.667s.298.667.666.667h6.657c.367 0 .665-.3.665-.667s-.298-.667-.666-.667H4.68z"/></svg></a><button aria-label="Sign in to like" class="Pt(3px) Pb(0) Z(2) Pend(1px) NoJs_D(n) Bd(0) M(0) P(0) Va(m) desktop_W(100%) Pos(r)" href="#"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="21" height="21" viewBox="0 0 48 48" data-icon="favorite" style="fill: rgb(149, 149, 149); stroke: rgb(149, 149, 149); stroke-width: 0; vertical-align: bottom;"><path d="M34.055 8.48c1.928 0 3.747.8 5.127 2.256 2.914 3.076 2.914 8.08.002 11.155L24 37.87 8.824 21.897c-2.916-3.08-2.918-8.085-.002-11.163 1.377-1.455 3.197-2.256 5.13-2.256 1.606 0 3.427 0 7.267 4.512L24 16.254l2.78-3.265c3.842-4.51 5.665-4.51 7.275-4.51m0-3.653c-3.123 0-5.84.848-10.055 5.797-4.266-5.01-6.984-5.797-10.05-5.797-2.945 0-5.706 1.208-7.78 3.398-4.227 4.458-4.227 11.72.002 16.184L24 43.173l17.832-18.77c4.225-4.46 4.225-11.722 0-16.18-2.073-2.19-4.836-3.397-7.777-3.397"/></svg></button>
+ <div class="share-menu-wrapper D(ib) Pos(r)"><button aria-label="Share Menu" class="O(0):f P(4px) Pb(6px) Pend(6px) react-button"><svg xmlns="http://www.w3.org/2000/svg" class="M(a) Cur(p)" width="20" height="20" viewBox="0 0 48 48" data-icon="share" style="vertical-align: initial; fill: rgb(149, 149, 149); stroke: rgb(149, 149, 149); stroke-width: 0;"><path d="M41.574 18.795c-1.104 0-2 .896-2 2v22h-28v-22c0-1.104-.896-2-2-2s-2 .896-2 2v24c0 1.105.896 2 2 2h32c1.104 0 2-.895 2-2v-24c0-1.104-.894-2-2-2zM21.044 13.652l2.53-2.742v22.385h4V10.91l2.53 2.742c.395.428.932.643 1.47.643.484 0 .972-.174 1.355-.53.81-.75.86-2.015.112-2.825l-7.47-8.092-7.47 8.092c-.75.81-.698 2.076.113 2.826.813.748 2.078.697 2.83-.114z"/></svg></button></div>
+ </div>
+ <h3 class="Mb(5px)" data-reactid="217"><a href="/news/man-charged-assault-endangerment-girlfriends-213400835.html" class="Td(n) O(n):f" data-reactid="218"><u class="StretchedBox" data-reactid="219"></u><div class="Fw(b) Fz(20px) Lh(23px) LineClamp(2,46px) Pos(r) Fz(17px)--sm1024 Lh(19px)--sm1024 LineClamp(2,38px)--sm1024 C(#000) C(#0078ff):h" data-reactid="220">Man Charged With Assault, Endangerment After Girlfriend's Toddler Is Found Brain Dead: Cops</div></a></h3>
+ <p class="M(0) Fz(14px) Lh(19px) Fz(13px)--sm1024 Lh(17px)--sm1024 LineClamp(2,38px) LineClamp(2,34px)--sm1024 D(n)--sm1024 Bxz(bb) Pb(2px)" data-reactid="221">A New York child is on life support after his mother's boyfriend allegedly beat him into unconsciousness, police said. Jaden Jordan, 3, is in cricital condition and in a coma after police answered a 911 call Monday night and found the toddler unresponsive</p>
+ <ul class="Cf Mt(12px) Fz(12px) Pos(r) Z(1) Mt(8px)--sm1024" data-reactid="222">
+ <li class="Fl(start) W(50%) W(100%)--sm1024 Mb(8px)--sm1024" data-reactid="223">
+ <a class="Td(n) D(ib) Va(t) W(90%) Mend(10%) C(#0078ff)!:h C(#000) C(#959595):vi" href="/news/m/a4d81c9b-aab2-34a7-bd24-97bf323d315b/ss_brooklyn-boy-remains-on-life.html" data-reactid="224"><img class="Trsdu(.42s) Fl(start) W(29%) Miw(65px) Maw(72px) Mend(10px) Trsdu(0s)! D(n)--sm1024 Bdrs(2px)" alt="Brooklyn Boy Remains On Life Support After Alleged Abuse" style="" src="/sy/uu/api/res/1.2/ahAFtiKFxn_LEExDOHz1NQ--/Zmk9c3RyaW07aD03MjtweW9mZj0wO3E9ODA7dz03MjtzbT0xO2FwcGlkPXl0YWNoeW9u/http://slingstone.zenfs.com/offnetwork/f6d005d2b9903476d617f5334994c495" data-reactid="225" srcset="" />
+ <div class="Ov(h)" data-reactid="226">
+ <div class="Lh(15px) Fw(b) LineClamp(3,45px) D(i)--sm1024 Pend(10px)--sm1024" data-reactid="227">Brooklyn Boy Remains On Life Support After Alleged Abuse</div>
+ <div class="C(#959595) Fz(11px) Mt(2px) Va(b) D(ib)--sm1024" data-reactid="228">CBS New York</div>
+ </div>
+ </a>
+ </li>
+ <li class="Fl(start) W(50%) W(100%)--sm1024" data-reactid="229">
+ <a class="Td(n) D(ib) Va(t) W(90%) Mend(10%) C(#0078ff)!:h C(#000) C(#959595):vi" href="/news/m/6cb80e6a-bea3-355f-b455-4a99b3a42b6e/ss_tipster-told-acs-abused-boy.html" data-reactid="230"><img class="Trsdu(.42s) Fl(start) W(29%) Miw(65px) Maw(72px) Mend(10px) Trsdu(0s)! D(n)--sm1024 Bdrs(2px)" alt="Tipster told ACS abused boy was being kept in dog crate" style="" src="/sy/uu/api/res/1.2/OkQYQfNP8HwVQ4xIznTP4A--/Zmk9c3RyaW07aD03MjtweW9mZj0wO3E9ODA7dz03MjtzbT0xO2FwcGlkPXl0YWNoeW9u/http://slingstone.zenfs.com/offnetwork/d17e8a97bc2e48d9694b996c217c47b2" data-reactid="231" srcset="" />
+ <div class="Ov(h)" data-reactid="232">
+ <div class="Lh(15px) Fw(b) LineClamp(3,45px) D(i)--sm1024 Pend(10px)--sm1024" data-reactid="233">Tipster told ACS abused boy was being kept in dog crate</div>
+ <div class="C(#959595) Fz(11px) Mt(2px) Va(b) D(ib)--sm1024" data-reactid="234">New York Post</div>
+ </div>
+ </a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)" data-reactid="235">
+ <div class="Py(14px) Pos(r)" data-test-locator="mega" data-reactid="236">
+ <div class="Cf" data-reactid="237">
+ <div class="Fl(start) Pos(r) Z(1) Mt(2px) W(26.5%) Maw(220px)" data-reactid="238">
+ <a href="/news/lawyers-3-olds-killer-ask-ohio-board-mercy-053547321.html" class="D(b) H(0) Ov(h) Bdrs(2px)" style="padding-bottom:56%;" data-reactid="239"><img class="Trsdu(.42s) W(100%) Trsdu(0s)! Bdrs(2px)" alt="Killer of 3-year-old seeks mercy from Ohio parole board" style="" src="/sy/uu/api/res/1.2/wTn7e9Tfw3gF4fgyGvZwaA--/Zmk9c3RyaW07aD0xMjM7cHlvZmY9MDtxPTgwO3c9MjIwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en_us/News/ap_webfeeds/217b21b588ac490fbb6c681e454dd4f0.jpg.cf.jpg" data-reactid="240" srcset="" /></a>
+ </div>
+ <div class="Ov(h) Pend(44px) Pstart(25px)" data-reactid="241">
+ <div class="Fw(b) Fz(12px) Tt(c) D(ib) Mb(6px) C(#188fff) Mend(9px) Mt(-2px)" data-test-locator="catlabel" data-reactid="242">News</div>
+ <div class="C(#959595) Fz(11px) D(ib) Mb(6px)" data-reactid="243">Associated Press</div>
+ <div class="Pos(a) End(0) W(36px) Ta(c) Z(3) NoJs_D(n)"><a class="Pos(r) Cur(p) Bdw(0) Va(m) C(#ccc) Td(n) P(0) D(ib) Pb(6px) desktop_W(100%)" href="/news/lawyers-3-olds-killer-ask-ohio-board-mercy-053547321.html"><span><span class="Fw(b) Mt(-14px) Pos(r) D(b) Fz(11px)" style="color: rgb(149, 149, 149);">272</span><span class="Hidden">Comments. Click to view comments</span></span><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="21" height="21" viewBox="0 0 16 16" data-icon="comments" style="position: relative; top: 1px; margin: auto; vertical-align: middle; fill: rgb(149, 149, 149); stroke: rgb(149, 149, 149); stroke-width: 0;"><path d="M14.002 10c0 .735-.625 1.333-1.395 1.333h-8.58l-2.028 1.892-.002-9.892C1.998 2.598 2.623 2 3.392 2h9.215c.77 0 1.395.598 1.395 1.333V10zM3.392.667C1.887.667.667 1.86.667 3.334v11.333c0 .265.157.505.4.61.085.038.176.056.266.056.165 0 .328-.062.453-.18l2.765-2.486h8.058c1.505 0 2.726-1.194 2.726-2.667V3.333c0-1.473-1.22-2.667-2.726-2.667H3.393zm7.947 4H4.68c-.367 0-.666.298-.666.667S4.314 6 4.682 6h6.657c.367 0 .665-.298.665-.666s-.298-.667-.666-.667zM4.68 7.333c-.367 0-.666.298-.666.667s.298.667.666.667h6.657c.367 0 .665-.3.665-.667s-.298-.667-.666-.667H4.68z"/></svg></a><button aria-label="Sign in to like" class="Pt(3px) Pb(0) Z(2) Pend(1px) NoJs_D(n) Bd(0) M(0) P(0) Va(m) desktop_W(100%) Pos(r)" href="#"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="21" height="21" viewBox="0 0 48 48" data-icon="favorite" style="fill: rgb(149, 149, 149); stroke: rgb(149, 149, 149); stroke-width: 0; vertical-align: bottom;"><path d="M34.055 8.48c1.928 0 3.747.8 5.127 2.256 2.914 3.076 2.914 8.08.002 11.155L24 37.87 8.824 21.897c-2.916-3.08-2.918-8.085-.002-11.163 1.377-1.455 3.197-2.256 5.13-2.256 1.606 0 3.427 0 7.267 4.512L24 16.254l2.78-3.265c3.842-4.51 5.665-4.51 7.275-4.51m0-3.653c-3.123 0-5.84.848-10.055 5.797-4.266-5.01-6.984-5.797-10.05-5.797-2.945 0-5.706 1.208-7.78 3.398-4.227 4.458-4.227 11.72.002 16.184L24 43.173l17.832-18.77c4.225-4.46 4.225-11.722 0-16.18-2.073-2.19-4.836-3.397-7.777-3.397"/></svg></button>
+ <div class="share-menu-wrapper D(ib) Pos(r)"><button aria-label="Share Menu" class="O(0):f P(4px) Pb(6px) Pend(6px) react-button"><svg xmlns="http://www.w3.org/2000/svg" class="M(a) Cur(p)" width="20" height="20" viewBox="0 0 48 48" data-icon="share" style="vertical-align: initial; fill: rgb(149, 149, 149); stroke: rgb(149, 149, 149); stroke-width: 0;"><path d="M41.574 18.795c-1.104 0-2 .896-2 2v22h-28v-22c0-1.104-.896-2-2-2s-2 .896-2 2v24c0 1.105.896 2 2 2h32c1.104 0 2-.895 2-2v-24c0-1.104-.894-2-2-2zM21.044 13.652l2.53-2.742v22.385h4V10.91l2.53 2.742c.395.428.932.643 1.47.643.484 0 .972-.174 1.355-.53.81-.75.86-2.015.112-2.825l-7.47-8.092-7.47 8.092c-.75.81-.698 2.076.113 2.826.813.748 2.078.697 2.83-.114z"/></svg></button></div>
+ </div>
+ <h3 class="Mb(5px)" data-reactid="244"><a href="/news/lawyers-3-olds-killer-ask-ohio-board-mercy-053547321.html" class="Td(n) O(n):f" data-reactid="245"><u class="StretchedBox" data-reactid="246"></u><div class="Fw(b) Fz(20px) Lh(23px) LineClamp(2,46px) Pos(r) Fz(17px)--sm1024 Lh(19px)--sm1024 LineClamp(2,38px)--sm1024 C(#000) C(#0078ff):h" data-reactid="247">Killer of 3-year-old seeks mercy from Ohio parole board</div></a></h3>
+ <p class="M(0) Fz(14px) Lh(19px) Fz(13px)--sm1024 Lh(17px)--sm1024 LineClamp(2,38px) LineClamp(2,34px)--sm1024" data-reactid="248">Ohio's prison parole board heard arguments Thursday for and against mercy for a man set to die in January for the 1993 rape and killing of his girlfriend's 3-year-old daughter. Ronald Phillips' clemency hearing concluded just before 6:30 p.m. The board did not make an immediate decision. "Evidence of Phillips's background, history, dysfunctional upbringing, and his reformed character demonstrate that he should not be executed for the murder of Sheila Marie Evans," attorneys Tim Sweeney and Lisa Lagos wrote in a Nov. 25 filing.</p>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)" data-reactid="249">
+ <div class="Py(14px) Pos(r)" data-test-locator="mega" data-reactid="250">
+ <div class="Cf" data-reactid="251">
+ <div class="Fl(start) Pos(r) Z(1) Mt(2px) W(26.5%) Maw(220px)" data-reactid="252">
+ <a href="/news/china-seriously-implement-n-korea-un-sanctions-101330791.html" class="D(b) H(0) Ov(h) Bdrs(2px)" style="padding-bottom:88%;" data-reactid="253"><img class="Trsdu(.42s) W(100%) Trsdu(0s)! Bdrs(2px)" alt="China to 'seriously' implement N. Korea UN sanctions" style="" src="/sy/uu/api/res/1.2/3ta3kmZHJjA.Rg6dZ8WOZw--/Zmk9c3RyaW07aD0xOTM7cHlvZmY9MDtxPTgwO3c9MjIwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en_us/News/afp.com/Part-HKG-Hkg9294085-1-1-0.jpg.cf.jpg" data-reactid="254" srcset="https://s.yimg.com/uu/api/res/1.2/3ta3kmZHJjA.Rg6dZ8WOZw--/Zmk9c3RyaW07aD0xOTM7cHlvZmY9MDtxPTgwO3c9MjIwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en_us/News/afp.com/Part-HKG-Hkg9294085-1-1-0.jpg.cf.jpg 1x,https://s.yimg.com/uu/api/res/1.2/Nmw6VVO9Lc4Y1Hs2CfFuMg--/Zmk9c3RyaW07aD0zODY7cHlvZmY9MDtxPTgwO3c9NDQwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en_us/News/afp.com/Part-HKG-Hkg9294085-1-1-0.jpg.cf.jpg 2x" /></a>
+ </div>
+ <div class="Ov(h) Pend(44px) Pstart(25px)" data-reactid="255">
+ <div class="Fw(b) Fz(12px) Tt(c) D(ib) Mb(6px) C(#188fff) Mend(9px) Mt(-2px)" data-test-locator="catlabel" data-reactid="256">World</div>
+ <div class="C(#959595) Fz(11px) D(ib) Mb(6px)" data-reactid="257">AFP</div>
+ <div class="Pos(a) End(0) W(36px) Ta(c) Z(3) NoJs_D(n)"><a class="Pos(r) Cur(p) Bdw(0) Va(m) C(#ccc) Td(n) P(0) D(ib) Pb(6px) desktop_W(100%)" href="/news/china-seriously-implement-n-korea-un-sanctions-101330791.html"><span><span class="Fw(b) Mt(-14px) Pos(r) D(b) Fz(11px)" style="color: rgb(149, 149, 149);">13</span><span class="Hidden">Comments. Click to view comments</span></span><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="21" height="21" viewBox="0 0 16 16" data-icon="comments" style="position: relative; top: 1px; margin: auto; vertical-align: middle; fill: rgb(149, 149, 149); stroke: rgb(149, 149, 149); stroke-width: 0;"><path d="M14.002 10c0 .735-.625 1.333-1.395 1.333h-8.58l-2.028 1.892-.002-9.892C1.998 2.598 2.623 2 3.392 2h9.215c.77 0 1.395.598 1.395 1.333V10zM3.392.667C1.887.667.667 1.86.667 3.334v11.333c0 .265.157.505.4.61.085.038.176.056.266.056.165 0 .328-.062.453-.18l2.765-2.486h8.058c1.505 0 2.726-1.194 2.726-2.667V3.333c0-1.473-1.22-2.667-2.726-2.667H3.393zm7.947 4H4.68c-.367 0-.666.298-.666.667S4.314 6 4.682 6h6.657c.367 0 .665-.298.665-.666s-.298-.667-.666-.667zM4.68 7.333c-.367 0-.666.298-.666.667s.298.667.666.667h6.657c.367 0 .665-.3.665-.667s-.298-.667-.666-.667H4.68z"/></svg></a><button aria-label="Sign in to like" class="Pt(3px) Pb(0) Z(2) Pend(1px) NoJs_D(n) Bd(0) M(0) P(0) Va(m) desktop_W(100%) Pos(r)" href="#"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="21" height="21" viewBox="0 0 48 48" data-icon="favorite" style="fill: rgb(149, 149, 149); stroke: rgb(149, 149, 149); stroke-width: 0; vertical-align: bottom;"><path d="M34.055 8.48c1.928 0 3.747.8 5.127 2.256 2.914 3.076 2.914 8.08.002 11.155L24 37.87 8.824 21.897c-2.916-3.08-2.918-8.085-.002-11.163 1.377-1.455 3.197-2.256 5.13-2.256 1.606 0 3.427 0 7.267 4.512L24 16.254l2.78-3.265c3.842-4.51 5.665-4.51 7.275-4.51m0-3.653c-3.123 0-5.84.848-10.055 5.797-4.266-5.01-6.984-5.797-10.05-5.797-2.945 0-5.706 1.208-7.78 3.398-4.227 4.458-4.227 11.72.002 16.184L24 43.173l17.832-18.77c4.225-4.46 4.225-11.722 0-16.18-2.073-2.19-4.836-3.397-7.777-3.397"/></svg></button>
+ <div class="share-menu-wrapper D(ib) Pos(r)"><button aria-label="Share Menu" class="O(0):f P(4px) Pb(6px) Pend(6px) react-button"><svg xmlns="http://www.w3.org/2000/svg" class="M(a) Cur(p)" width="20" height="20" viewBox="0 0 48 48" data-icon="share" style="vertical-align: initial; fill: rgb(149, 149, 149); stroke: rgb(149, 149, 149); stroke-width: 0;"><path d="M41.574 18.795c-1.104 0-2 .896-2 2v22h-28v-22c0-1.104-.896-2-2-2s-2 .896-2 2v24c0 1.105.896 2 2 2h32c1.104 0 2-.895 2-2v-24c0-1.104-.894-2-2-2zM21.044 13.652l2.53-2.742v22.385h4V10.91l2.53 2.742c.395.428.932.643 1.47.643.484 0 .972-.174 1.355-.53.81-.75.86-2.015.112-2.825l-7.47-8.092-7.47 8.092c-.75.81-.698 2.076.113 2.826.813.748 2.078.697 2.83-.114z"/></svg></button></div>
+ </div>
+ <h3 class="Mb(5px)" data-reactid="258"><a href="/news/china-seriously-implement-n-korea-un-sanctions-101330791.html" class="Td(n) O(n):f" data-reactid="259"><u class="StretchedBox" data-reactid="260"></u><div class="Fw(b) Fz(20px) Lh(23px) LineClamp(2,46px) Pos(r) Fz(17px)--sm1024 Lh(19px)--sm1024 LineClamp(2,38px)--sm1024 C(#000) C(#0078ff):h" data-reactid="261">China to 'seriously' implement N. Korea UN sanctions</div></a></h3>
+ <p class="M(0) Fz(14px) Lh(19px) Fz(13px)--sm1024 Lh(17px)--sm1024 LineClamp(2,38px) LineClamp(2,34px)--sm1024 D(n)--sm1024 Bxz(bb) Pb(2px)" data-reactid="262">Beijing will "seriously" implement new United Nations sanctions imposed on North Korea over its nuclear and missile programmes, it said Thursday, with the measures set to hit Pyongyang's lucrative Chinese coal exports hard. UN Security Council resolution 2321, passed on Wednesday, caps the North's annual coal exports at little more than four months of current sales to China, Chinese government data shows. It limits North Korea's coal exports next year to 7.5 million tonnes or just over $400 million, down 62 percent on 2015.</p>
+ <ul class="Cf Mt(12px) Fz(12px) Pos(r) Z(1) Mt(8px)--sm1024" data-reactid="263">
+ <li class="Fl(start) W(50%) W(100%)--sm1024 Mb(8px)--sm1024" data-reactid="264">
+ <a class="Td(n) D(ib) Va(t) W(90%) Mend(10%) C(#0078ff)!:h C(#000) C(#959595):vi" href="/news/china-says-north-korea-sanctions-not-meant-harm-091822014.html" data-reactid="265"><img class="Trsdu(.42s) Fl(start) W(29%) Miw(65px) Maw(72px) Mend(10px) Trsdu(0s)! D(n)--sm1024 Bdrs(2px)" alt="China says new North Korea sanctions not meant to harm 'normal' trade" style="" src="/sy/uu/api/res/1.2/FqmXgpRbQeFUeyOFvNSGlQ--/Zmk9c3RyaW07aD03MjtweW9mZj0wO3E9ODA7dz03MjtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/News/Reuters/2016-12-01T091822Z_1_LYNXMPECB027A_RTROPTP_2_KOREA-NORTH-USA.JPG.cf.jpg" data-reactid="266" srcset="" />
+ <div class="Ov(h)" data-reactid="267">
+ <div class="Lh(15px) Fw(b) LineClamp(3,45px) D(i)--sm1024 Pend(10px)--sm1024" data-reactid="268">China says new North Korea sanctions not meant to harm 'normal' trade</div>
+ <div class="C(#959595) Fz(11px) Mt(2px) Va(b) D(ib)--sm1024" data-reactid="269">Reuters</div>
+ </div>
+ </a>
+ </li>
+ <li class="Fl(start) W(50%) W(100%)--sm1024" data-reactid="270">
+ <a class="Td(n) D(ib) Va(t) W(90%) Mend(10%) C(#0078ff)!:h C(#000) C(#959595):vi" href="/news/un-security-council-strengthens-north-103133895.html" data-reactid="271"><img class="Trsdu(.42s) Fl(start) W(29%) Miw(65px) Maw(72px) Mend(10px) Trsdu(0s)! D(n)--sm1024 Bdrs(2px)" alt="UN Security Council strengthens North Korea sanctions" style="" src="/sy/uu/api/res/1.2/Lou5neeIrq52Z5SKFYvzLw--/Zmk9c3RyaW07aD03MjtweW9mZj0wO3E9ODA7dz03MjtzbT0xO2FwcGlkPXl0YWNoeW9u/http://d.yimg.com/hd/afpus/2/4/19ce7942-245c-4b74-998a-881e7a64514f__1Wz8TBxC8KCxkQXSdMoBIshbTJBEOtaWP3nvpIa7CzO0i2t3oKyRsiYnZLmryU8RZkA2Sgyquk-_2_0.jpg?s=cdbf80bd3a19e34fb6cca7a7460caab0&amp;c=1d9843bde92c11fbb433931538cb85d6&amp;a=afpus&amp;mr=0" data-reactid="272" srcset="" />
+ <div class="Ov(h)" data-reactid="273">
+ <div class="Lh(15px) Fw(b) LineClamp(3,45px) D(i)--sm1024 Pend(10px)--sm1024" data-reactid="274">UN Security Council strengthens North Korea sanctions</div>
+ <div class="C(#959595) Fz(11px) Mt(2px) Va(b) D(ib)--sm1024" data-reactid="275">AFP Videos</div>
+ </div>
+ </a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)" data-reactid="276">
+ <div class="Py(14px) Pos(r)" data-test-locator="mega" data-reactid="277">
+ <div class="Cf" data-reactid="278">
+ <div class="Ov(h) Pend(14%) Pend(44px)--sm1024" data-reactid="279">
+ <div class="Fw(b) Fz(12px) Tt(c) D(ib) Mb(6px) C(#cc008c) Mend(9px) Mt(-2px)" data-test-locator="catlabel" data-reactid="280">Lifestyle</div>
+ <div class="C(#959595) Fz(11px) D(ib) Mb(6px)" data-reactid="281">TakePart.com</div>
+ <div class="Pos(a) End(0) W(36px) Ta(c) Z(3) NoJs_D(n)"><a class="Pos(r) Cur(p) Bdw(0) Va(m) C(#ccc) Td(n) P(0) D(ib) Pb(6px) desktop_W(100%)" href="/news/gift-idea-simple-dish-made-real-food-190144486.html"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="21" height="21" viewBox="0 0 16 16" data-icon="comments" style="position: relative; top: 1px; margin: auto; vertical-align: middle; fill: rgb(149, 149, 149); stroke: rgb(149, 149, 149); stroke-width: 0;"><path d="M14.002 10c0 .735-.625 1.333-1.395 1.333h-8.58l-2.028 1.892-.002-9.892C1.998 2.598 2.623 2 3.392 2h9.215c.77 0 1.395.598 1.395 1.333V10zM3.392.667C1.887.667.667 1.86.667 3.334v11.333c0 .265.157.505.4.61.085.038.176.056.266.056.165 0 .328-.062.453-.18l2.765-2.486h8.058c1.505 0 2.726-1.194 2.726-2.667V3.333c0-1.473-1.22-2.667-2.726-2.667H3.393zm7.947 4H4.68c-.367 0-.666.298-.666.667S4.314 6 4.682 6h6.657c.367 0 .665-.298.665-.666s-.298-.667-.666-.667zM4.68 7.333c-.367 0-.666.298-.666.667s.298.667.666.667h6.657c.367 0 .665-.3.665-.667s-.298-.667-.666-.667H4.68z"/></svg></a><button aria-label="Sign in to like" class="Pt(3px) Pb(0) Z(2) Pend(1px) NoJs_D(n) Bd(0) M(0) P(0) Va(m) desktop_W(100%) Pos(r)" href="#"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="21" height="21" viewBox="0 0 48 48" data-icon="favorite" style="fill: rgb(149, 149, 149); stroke: rgb(149, 149, 149); stroke-width: 0; vertical-align: bottom;"><path d="M34.055 8.48c1.928 0 3.747.8 5.127 2.256 2.914 3.076 2.914 8.08.002 11.155L24 37.87 8.824 21.897c-2.916-3.08-2.918-8.085-.002-11.163 1.377-1.455 3.197-2.256 5.13-2.256 1.606 0 3.427 0 7.267 4.512L24 16.254l2.78-3.265c3.842-4.51 5.665-4.51 7.275-4.51m0-3.653c-3.123 0-5.84.848-10.055 5.797-4.266-5.01-6.984-5.797-10.05-5.797-2.945 0-5.706 1.208-7.78 3.398-4.227 4.458-4.227 11.72.002 16.184L24 43.173l17.832-18.77c4.225-4.46 4.225-11.722 0-16.18-2.073-2.19-4.836-3.397-7.777-3.397"/></svg></button>
+ <div class="share-menu-wrapper D(ib) Pos(r)"><button aria-label="Share Menu" class="O(0):f P(4px) Pb(6px) Pend(6px) react-button"><svg xmlns="http://www.w3.org/2000/svg" class="M(a) Cur(p)" width="20" height="20" viewBox="0 0 48 48" data-icon="share" style="vertical-align: initial; fill: rgb(149, 149, 149); stroke: rgb(149, 149, 149); stroke-width: 0;"><path d="M41.574 18.795c-1.104 0-2 .896-2 2v22h-28v-22c0-1.104-.896-2-2-2s-2 .896-2 2v24c0 1.105.896 2 2 2h32c1.104 0 2-.895 2-2v-24c0-1.104-.894-2-2-2zM21.044 13.652l2.53-2.742v22.385h4V10.91l2.53 2.742c.395.428.932.643 1.47.643.484 0 .972-.174 1.355-.53.81-.75.86-2.015.112-2.825l-7.47-8.092-7.47 8.092c-.75.81-.698 2.076.113 2.826.813.748 2.078.697 2.83-.114z"/></svg></button></div>
+ </div>
+ <h3 class="Mb(5px)" data-reactid="282"><a href="/news/gift-idea-simple-dish-made-real-food-190144486.html" class="Td(n) O(n):f" data-reactid="283"><u class="StretchedBox" data-reactid="284"></u><div class="Fw(b) Fz(20px) Lh(23px) LineClamp(2,46px) Pos(r) Fz(17px)--sm1024 Lh(19px)--sm1024 LineClamp(2,38px)--sm1024 C(#000) C(#0078ff):h" data-reactid="285">Gift Idea: Simple Dish Made With Real Food</div></a></h3>
+ <p class="M(0) Fz(14px) Lh(19px) Fz(13px)--sm1024 Lh(17px)--sm1024 LineClamp(3,57px) LineClamp(3,51px)--sm1024" data-reactid="286">Tillamook's #RealFoodSunday is a movement that encourages people to eat more Real Food, nothing artificial, at least once a week, with an emphasis on Sunday. Tillamook invites you to join in this Sunday and—whether by shopping, cooking, or eating—share your ideas with #RealFoodSunday! There is one thing that we all have in common: the great delight we get from Real Food and the longing to share it.</p>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)" data-reactid="287">
+ <div class="Py(14px) Pos(r)" data-test-locator="mega" data-reactid="288">
+ <div class="Cf" data-reactid="289">
+ <div class="Fl(start) Pos(r) Z(1) Mt(2px) W(26.5%) Maw(220px)" data-reactid="290">
+ <a href="/news/trump-fills-out-cabinet-with-millionaires-and-billionaires-195429712.html" class="D(b) H(0) Ov(h) Bdrs(2px)" style="padding-bottom:88%;" data-reactid="291"><img class="Trsdu(.42s) W(100%) Trsdu(0s)! Bdrs(2px)" alt="Trump fills out Cabinet with millionaires and billionaires" style="" src="/sy/uu/api/res/1.2/oGO0fqiXxjVPOA9wK1rQLg--/Zmk9c3RyaW07aD0xOTM7cHlvZmY9MDtxPTgwO3c9MjIwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en/homerun/feed_manager_auto_publish_494/8fd4a9cd64a49401c32b71f260825423" data-reactid="292" srcset="https://s.yimg.com/uu/api/res/1.2/oGO0fqiXxjVPOA9wK1rQLg--/Zmk9c3RyaW07aD0xOTM7cHlvZmY9MDtxPTgwO3c9MjIwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en/homerun/feed_manager_auto_publish_494/8fd4a9cd64a49401c32b71f260825423 1x,https://s.yimg.com/uu/api/res/1.2/PTWOFOoljW.WIYLC2PP3OA--/Zmk9c3RyaW07aD0zODY7cHlvZmY9MDtxPTgwO3c9NDQwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en/homerun/feed_manager_auto_publish_494/8fd4a9cd64a49401c32b71f260825423 2x" /></a>
+ </div>
+ <div class="Ov(h) Pend(44px) Pstart(25px)" data-reactid="293">
+ <div class="Fw(b) Fz(12px) Tt(c) D(ib) Mb(6px) C(#003abc) Mend(9px) Mt(-2px)" data-test-locator="catlabel" data-reactid="294">Politics</div>
+ <div class="C(#959595) Fz(11px) D(ib) Mb(6px)" data-reactid="295">Yahoo News</div>
+ <div class="Pos(a) End(0) W(36px) Ta(c) Z(3) NoJs_D(n)"><a class="Pos(r) Cur(p) Bdw(0) Va(m) C(#ccc) Td(n) P(0) D(ib) Pb(6px) desktop_W(100%)" href="/news/trump-fills-out-cabinet-with-millionaires-and-billionaires-195429712.html"><span><span class="Fw(b) Mt(-14px) Pos(r) D(b) Fz(11px)" style="color: rgb(149, 149, 149);">4698</span><span class="Hidden">Comments. Click to view comments</span></span><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="21" height="21" viewBox="0 0 16 16" data-icon="comments" style="position: relative; top: 1px; margin: auto; vertical-align: middle; fill: rgb(149, 149, 149); stroke: rgb(149, 149, 149); stroke-width: 0;"><path d="M14.002 10c0 .735-.625 1.333-1.395 1.333h-8.58l-2.028 1.892-.002-9.892C1.998 2.598 2.623 2 3.392 2h9.215c.77 0 1.395.598 1.395 1.333V10zM3.392.667C1.887.667.667 1.86.667 3.334v11.333c0 .265.157.505.4.61.085.038.176.056.266.056.165 0 .328-.062.453-.18l2.765-2.486h8.058c1.505 0 2.726-1.194 2.726-2.667V3.333c0-1.473-1.22-2.667-2.726-2.667H3.393zm7.947 4H4.68c-.367 0-.666.298-.666.667S4.314 6 4.682 6h6.657c.367 0 .665-.298.665-.666s-.298-.667-.666-.667zM4.68 7.333c-.367 0-.666.298-.666.667s.298.667.666.667h6.657c.367 0 .665-.3.665-.667s-.298-.667-.666-.667H4.68z"/></svg></a><button aria-label="Sign in to like" class="Pt(3px) Pb(0) Z(2) Pend(1px) NoJs_D(n) Bd(0) M(0) P(0) Va(m) desktop_W(100%) Pos(r)" href="#"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="21" height="21" viewBox="0 0 48 48" data-icon="favorite" style="fill: rgb(149, 149, 149); stroke: rgb(149, 149, 149); stroke-width: 0; vertical-align: bottom;"><path d="M34.055 8.48c1.928 0 3.747.8 5.127 2.256 2.914 3.076 2.914 8.08.002 11.155L24 37.87 8.824 21.897c-2.916-3.08-2.918-8.085-.002-11.163 1.377-1.455 3.197-2.256 5.13-2.256 1.606 0 3.427 0 7.267 4.512L24 16.254l2.78-3.265c3.842-4.51 5.665-4.51 7.275-4.51m0-3.653c-3.123 0-5.84.848-10.055 5.797-4.266-5.01-6.984-5.797-10.05-5.797-2.945 0-5.706 1.208-7.78 3.398-4.227 4.458-4.227 11.72.002 16.184L24 43.173l17.832-18.77c4.225-4.46 4.225-11.722 0-16.18-2.073-2.19-4.836-3.397-7.777-3.397"/></svg></button>
+ <div class="share-menu-wrapper D(ib) Pos(r)"><button aria-label="Share Menu" class="O(0):f P(4px) Pb(6px) Pend(6px) react-button"><svg xmlns="http://www.w3.org/2000/svg" class="M(a) Cur(p)" width="20" height="20" viewBox="0 0 48 48" data-icon="share" style="vertical-align: initial; fill: rgb(149, 149, 149); stroke: rgb(149, 149, 149); stroke-width: 0;"><path d="M41.574 18.795c-1.104 0-2 .896-2 2v22h-28v-22c0-1.104-.896-2-2-2s-2 .896-2 2v24c0 1.105.896 2 2 2h32c1.104 0 2-.895 2-2v-24c0-1.104-.894-2-2-2zM21.044 13.652l2.53-2.742v22.385h4V10.91l2.53 2.742c.395.428.932.643 1.47.643.484 0 .972-.174 1.355-.53.81-.75.86-2.015.112-2.825l-7.47-8.092-7.47 8.092c-.75.81-.698 2.076.113 2.826.813.748 2.078.697 2.83-.114z"/></svg></button></div>
+ </div>
+ <h3 class="Mb(5px)" data-reactid="296"><a href="/news/trump-fills-out-cabinet-with-millionaires-and-billionaires-195429712.html" class="Td(n) O(n):f" data-reactid="297"><u class="StretchedBox" data-reactid="298"></u><div class="Fw(b) Fz(20px) Lh(23px) LineClamp(2,46px) Pos(r) Fz(17px)--sm1024 Lh(19px)--sm1024 LineClamp(2,38px)--sm1024 C(#000) C(#0078ff):h" data-reactid="299">Trump fills out Cabinet with millionaires and billionaires</div></a></h3>
+ <p class="M(0) Fz(14px) Lh(19px) Fz(13px)--sm1024 Lh(17px)--sm1024 LineClamp(2,38px) LineClamp(2,34px)--sm1024 D(n)--sm1024 Bxz(bb) Pb(2px)" data-reactid="300">The family of Trump’s pick for education secretary, Betsy DeVos, has a net worth estimated at $5.1 billion. President-elect Donald Trump, who rallied populist voters by vowing to “drain the swamp” of the Washington elite, is filling his Cabinet with people who share a familiar trait: They’re very rich. On Wednesday, Trump announced Steve Mnuchin, a former Goldman Sachs executive who served as his campaign finance chairman, as his choice for treasury secretary and Wilbur Ross, a private equity investor, as his pick for secretary of commerce.</p>
+ <ul class="Cf Mt(12px) Fz(12px) Pos(r) Z(1) Mt(8px)--sm1024" data-reactid="301">
+ <li class="Fl(start) W(50%) W(100%)--sm1024 Mb(8px)--sm1024" data-reactid="302">
+ <a class="Td(n) D(ib) Va(t) W(90%) Mend(10%) C(#0078ff)!:h C(#000) C(#959595):vi" href="/news/trumps-treasury-pick-targets-taxes-124003425.html" data-reactid="303"><img class="Trsdu(.42s) Fl(start) W(29%) Miw(65px) Maw(72px) Mend(10px) Trsdu(0s)! D(n)--sm1024 Bdrs(2px)" alt="Trump's Treasury pick targets taxes, trade reforms: media" style="" src="/sy/uu/api/res/1.2/8XM7mUBfaFZco.tTMGVaTw--/Zmk9c3RyaW07aD03MjtweW9mZj0wO3E9ODA7dz03MjtzbT0xO2FwcGlkPXl0YWNoeW9u/http://globalfinance.zenfs.com/images/US_AHTTP_REUTERS_OLUSBUS_WRAPPER_H_LIVE_NEW/2016-11-30T170525Z_3_LYNXMPECAT0US_RTROPTP_3_USA-TRUMP_original.jpg.cf.jpg" data-reactid="304" srcset="" />
+ <div class="Ov(h)" data-reactid="305">
+ <div class="Lh(15px) Fw(b) LineClamp(3,45px) D(i)--sm1024 Pend(10px)--sm1024" data-reactid="306">Trump's Treasury pick targets taxes, trade reforms: media</div>
+ <div class="C(#959595) Fz(11px) Mt(2px) Va(b) D(ib)--sm1024" data-reactid="307">Reuters</div>
+ </div>
+ </a>
+ </li>
+ <li class="Fl(start) W(50%) W(100%)--sm1024" data-reactid="308">
+ <a class="Td(n) D(ib) Va(t) W(90%) Mend(10%) C(#0078ff)!:h C(#000) C(#959595):vi" href="/finance/m/40931a8f-7766-32fb-972a-0e5cce4010b8/ss_ross%2C-trump%E2%80%99s-pick-for.html" data-reactid="309"><img class="Trsdu(.42s) Fl(start) W(29%) Miw(65px) Maw(72px) Mend(10px) Trsdu(0s)! D(n)--sm1024 Bdrs(2px)" alt="Ross, Trump’s pick for Commerce chief, wants to fix ‘dumb trade’ deals" style="" src="/sy/uu/api/res/1.2/VzRwftxZGNKSbcgJdy3.oQ--/Zmk9c3RyaW07aD03MjtweW9mZj0wO3E9ODA7dz03MjtzbT0xO2FwcGlkPXl0YWNoeW9u/http://slingstone.zenfs.com/offnetwork/f63b0c1a967def685914cec395952194" data-reactid="310" srcset="" />
+ <div class="Ov(h)" data-reactid="311">
+ <div class="Lh(15px) Fw(b) LineClamp(3,45px) D(i)--sm1024 Pend(10px)--sm1024" data-reactid="312">Ross, Trump’s pick for Commerce chief, wants to fix ‘dumb trade’ deals</div>
+ <div class="C(#959595) Fz(11px) Mt(2px) Va(b) D(ib)--sm1024" data-reactid="313">MarketWatch</div>
+ </div>
+ </a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)" data-reactid="314">
+ <div class="Py(14px) Pos(r)" data-test-locator="mega" data-reactid="315">
+ <div class="Cf" data-reactid="316">
+ <div class="Fl(start) Pos(r) Z(1) Mt(2px) W(26.5%) Maw(220px)" data-reactid="317">
+ <a href="/news/watch-woman-turn-her-suv-182510048.html" class="D(b) H(0) Ov(h) Bdrs(2px)" style="padding-bottom:56%;" data-reactid="318"><img class="Trsdu(.42s) W(100%) Trsdu(0s)! Bdrs(2px)" alt="Watch This Woman Turn Her SUV Into a Battering Ram in a Parking Lot Fight" style="" src="/sy/uu/api/res/1.2/IlTIe2sWvV.uTCHYzOaU4A--/Zmk9c3RyaW07aD0xMjM7cHlvZmY9MDtxPTgwO3c9MjIwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en-US/homerun/the_drive_165/d8b3b02b586e6f32a6b108fa7e058a7a.cf.jpg" data-reactid="319" srcset="" /></a>
+ </div>
+ <div class="Ov(h) Pend(44px) Pstart(25px)" data-reactid="320">
+ <div class="Fw(b) Fz(12px) Tt(c) D(ib) Mb(6px) C(#188fff) Mend(9px) Mt(-2px)" data-test-locator="catlabel" data-reactid="321">News</div>
+ <div class="C(#959595) Fz(11px) D(ib) Mb(6px)" data-reactid="322">The Drive</div>
+ <div class="Pos(a) End(0) W(36px) Ta(c) Z(3) NoJs_D(n)"><a class="Pos(r) Cur(p) Bdw(0) Va(m) C(#ccc) Td(n) P(0) D(ib) Pb(6px) desktop_W(100%)" href="/news/watch-woman-turn-her-suv-182510048.html"><span><span class="Fw(b) Mt(-14px) Pos(r) D(b) Fz(11px)" style="color: rgb(149, 149, 149);">4627</span><span class="Hidden">Comments. Click to view comments</span></span><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="21" height="21" viewBox="0 0 16 16" data-icon="comments" style="position: relative; top: 1px; margin: auto; vertical-align: middle; fill: rgb(149, 149, 149); stroke: rgb(149, 149, 149); stroke-width: 0;"><path d="M14.002 10c0 .735-.625 1.333-1.395 1.333h-8.58l-2.028 1.892-.002-9.892C1.998 2.598 2.623 2 3.392 2h9.215c.77 0 1.395.598 1.395 1.333V10zM3.392.667C1.887.667.667 1.86.667 3.334v11.333c0 .265.157.505.4.61.085.038.176.056.266.056.165 0 .328-.062.453-.18l2.765-2.486h8.058c1.505 0 2.726-1.194 2.726-2.667V3.333c0-1.473-1.22-2.667-2.726-2.667H3.393zm7.947 4H4.68c-.367 0-.666.298-.666.667S4.314 6 4.682 6h6.657c.367 0 .665-.298.665-.666s-.298-.667-.666-.667zM4.68 7.333c-.367 0-.666.298-.666.667s.298.667.666.667h6.657c.367 0 .665-.3.665-.667s-.298-.667-.666-.667H4.68z"/></svg></a><button aria-label="Sign in to like" class="Pt(3px) Pb(0) Z(2) Pend(1px) NoJs_D(n) Bd(0) M(0) P(0) Va(m) desktop_W(100%) Pos(r)" href="#"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="21" height="21" viewBox="0 0 48 48" data-icon="favorite" style="fill: rgb(149, 149, 149); stroke: rgb(149, 149, 149); stroke-width: 0; vertical-align: bottom;"><path d="M34.055 8.48c1.928 0 3.747.8 5.127 2.256 2.914 3.076 2.914 8.08.002 11.155L24 37.87 8.824 21.897c-2.916-3.08-2.918-8.085-.002-11.163 1.377-1.455 3.197-2.256 5.13-2.256 1.606 0 3.427 0 7.267 4.512L24 16.254l2.78-3.265c3.842-4.51 5.665-4.51 7.275-4.51m0-3.653c-3.123 0-5.84.848-10.055 5.797-4.266-5.01-6.984-5.797-10.05-5.797-2.945 0-5.706 1.208-7.78 3.398-4.227 4.458-4.227 11.72.002 16.184L24 43.173l17.832-18.77c4.225-4.46 4.225-11.722 0-16.18-2.073-2.19-4.836-3.397-7.777-3.397"/></svg></button>
+ <div class="share-menu-wrapper D(ib) Pos(r)"><button aria-label="Share Menu" class="O(0):f P(4px) Pb(6px) Pend(6px) react-button"><svg xmlns="http://www.w3.org/2000/svg" class="M(a) Cur(p)" width="20" height="20" viewBox="0 0 48 48" data-icon="share" style="vertical-align: initial; fill: rgb(149, 149, 149); stroke: rgb(149, 149, 149); stroke-width: 0;"><path d="M41.574 18.795c-1.104 0-2 .896-2 2v22h-28v-22c0-1.104-.896-2-2-2s-2 .896-2 2v24c0 1.105.896 2 2 2h32c1.104 0 2-.895 2-2v-24c0-1.104-.894-2-2-2zM21.044 13.652l2.53-2.742v22.385h4V10.91l2.53 2.742c.395.428.932.643 1.47.643.484 0 .972-.174 1.355-.53.81-.75.86-2.015.112-2.825l-7.47-8.092-7.47 8.092c-.75.81-.698 2.076.113 2.826.813.748 2.078.697 2.83-.114z"/></svg></button></div>
+ </div>
+ <h3 class="Mb(5px)" data-reactid="323"><a href="/news/watch-woman-turn-her-suv-182510048.html" class="Td(n) O(n):f" data-reactid="324"><u class="StretchedBox" data-reactid="325"></u><div class="Fw(b) Fz(20px) Lh(23px) LineClamp(2,46px) Pos(r) Fz(17px)--sm1024 Lh(19px)--sm1024 LineClamp(2,38px)--sm1024 C(#000) C(#0078ff):h" data-reactid="326">Watch This Woman Turn Her SUV Into a Battering Ram in a Parking Lot Fight</div></a></h3>
+ <p class="M(0) Fz(14px) Lh(19px) Fz(13px)--sm1024 Lh(17px)--sm1024 LineClamp(2,38px) LineClamp(2,34px)--sm1024" data-reactid="327">An argument between two women in a parking lot in south Los Angeles turned (even more) violent when one of the people involved began throwing fists, which led to one of the ladies jumping into a Toyota RAV4 and taking aim at the other person and another car. Thanks to a video shared to the YouTube channel "GrindFace TV," we can see that the fight escalated to the point that the woman took to repeatedly driving her RAV4 into a BMW X3, leaving both cars severely damaged. After leaving the parking lot, the driver in the RAV4 struck a fire hydrant causing a rather spectacular geyser of water to shoot out of the ground.</p>
+ </div>
+ </div>
+ </div>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <script>
+ if (window.performance) {
+ window.performance.mark & amp; & amp;
+ window.performance.mark('Stream');
+ window.performance.measure & amp; & amp;
+ window.performance.measure('StreamDone', 'PageStart', 'Stream');
+ }
+ </script>
+ <div id="mrt-node-tgtm-Col1-1-Ad">
+ <div id="tgtm-Col1-1-Ad-Proxy" data-reactroot="" data-reactid="1" data-react-checksum="-512787763">
+ <div data-reactid="2">
+ <div id="mrtFOOT-sizer" class="darla-container Pos-r Z-0 Pos(r) Ov(a) Z(0)" style="height:0;width:0;" data-reactid="3">
+ <div id="mrtFOOT-wrapper" class="Pos-a T-0 B-0 Start-0 End-0 Ov-h Pos(a) T(0) B(0) Start(0) End(0) Ov(h)" data-reactid="4">
+ <div id="mrtdestFOOT" style=""></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <script>
+ if (window.performance) {
+ window.performance.mark & amp; & amp;
+ window.performance.mark('tgtm-Col1-1-Ad');
+ window.performance.measure & amp; & amp;
+ window.performance.measure('tgtm-Col1-1-AdDone', 'PageStart', 'tgtm-Col1-1-Ad');
+ }
+ </script>
+ <div id="mrt-node-tgtm-Col1-2-Ad">
+ <div id="tgtm-Col1-2-Ad-Proxy" data-reactroot="" data-reactid="1" data-react-checksum="2079947764">
+ <div data-reactid="2">
+ <div id="mrtFSRVY-sizer" class="darla-container Pos-r Z-0 Pos(r) Ov(a) Z(0)" style="height:0;width:0;" data-reactid="3">
+ <div id="mrtFSRVY-wrapper" class="Pos-a T-0 B-0 Start-0 End-0 Ov-h Pos(a) T(0) B(0) Start(0) End(0) Ov(h)" data-reactid="4">
+ <div id="mrtdestFSRVY" style="visibility: inherit;"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <script>
+ if (window.performance) {
+ window.performance.mark & amp; & amp;
+ window.performance.mark('tgtm-Col1-2-Ad');
+ window.performance.measure & amp; & amp;
+ window.performance.measure('tgtm-Col1-2-AdDone', 'PageStart', 'tgtm-Col1-2-Ad');
+ }
+ </script>
+ </div>
+ </div>
+ <div id="YDC-Col2" class="YDC-Col2 Pos(a) W(300px) End(0) T(0) tablet_D(n)--noRightRail">
+ <div class="sticky-outer-wrapper" style="height: 1130.05px;">
+ <div class="sticky-inner-wrapper" style="position: relative; transform: translate3d(0px, 0px, 0px); width: 300px;">
+ <div id="YDC-Col2-Stack" class="YDC-Col2-Stack Pos(r) W(300px)">
+ <div id="Aside" role="complementary" tabindex="-1">
+ <div id="mrt-node-tgtm-Col2-0-FollowAuthor">
+ <div id="tgtm-Col2-0-FollowAuthor-Proxy" data-reactroot="" data-reactid="1" data-react-checksum="-165672093">
+ <div id="tgtm-Col2-0-FollowAuthor" class="tdv2-applet-followauthor Pos(r) Ov(h) Mb(20px)" data-reactid="2">
+ <div class="Fz(15px) Fw(b) Lh(27px) Mb(10px)" data-reactid="3">Yahoo News Exclusives</div>
+ <ul class="M(0) P(0)" data-reactid="4">
+ <li class="author-follow Mb(20px) Mih(84px) Pos(r)" data-id="Katie Couric" data-reactid="5">
+ <a href="https://www.yahoo.com/katiecouric/" data-reactid="6"><img class="Trsdu(.42s) Bdrs(48%) Pos(a) Start(0) W(84px) H(84px)" title="Katie Couric" src="/sy/dh/ap/default/160914/kc2.jpg" data-reactid="7" /></a>
+ <div class="D(ib) Va(t) Mstart(94px) Pos(a) T(40%) TranslateY(-50%)" data-reactid="8"><a href="https://www.yahoo.com/katiecouric/" data-reactid="9"><span class="Fz(12px) C(#188fff) Fw(b)" data-reactid="10">Katie Couric</span></a><span class="C(#198fff) D(b) Fz(14px) Fw(b) Lh(18px) Mt(2px)" data-reactid="11"></span>
+ <ul class="M(0) P(0) Mt(2px) List(n)" data-reactid="12">
+ <li class="List(n)" data-reactid="13"><a class="Fz(12px) C(#020e65) Fw(b) Lh(14px)" href="/news/new-yorkers-post-their-feelings-about-trump-election-in-subway-230210113.html" data-reactid="14">New Yorkers post their feelings about Trump election in subway</a></li>
+ </ul>
+ </div>
+ </li>
+ <li class="author-follow Mb(20px) Mih(84px) Pos(r)" data-id="Michael Isikoff" data-reactid="15">
+ <a href="https://www.yahoo.com/news/tagged/michael-isikoff" data-reactid="16"><img class="Trsdu(.42s) Bdrs(48%) Pos(a) Start(0) W(84px) H(84px)" title="Michael Isikoff" src="/sy/dh/ap/default/160914/mi2.jpg" data-reactid="17" /></a>
+ <div class="D(ib) Va(t) Mstart(94px) Pos(a) T(40%) TranslateY(-50%)" data-reactid="18"><a href="https://www.yahoo.com/news/tagged/michael-isikoff" data-reactid="19"><span class="Fz(12px) C(#188fff) Fw(b)" data-reactid="20">Michael Isikoff</span></a><span class="C(#198fff) D(b) Fz(14px) Fw(b) Lh(18px) Mt(2px)" data-reactid="21"></span>
+ <ul class="M(0) P(0) Mt(2px) List(n)" data-reactid="22">
+ <li class="List(n)" data-reactid="23"><a class="Fz(12px) C(#020e65) Fw(b) Lh(14px)" href="/news/trumps-inauguration-ticket-prices-25000-to-1-million-013543267.html" data-reactid="24">Trump’s inauguration: ticket packages, $25,000 to $1 million</a></li>
+ </ul>
+ </div>
+ </li>
+ <li class="author-follow Mb(20px) Mih(84px) Pos(r)" data-id="Matt Bai" data-reactid="25">
+ <a href="https://www.yahoo.com/news/tagged/matt-bai" data-reactid="26"><img class="Trsdu(.42s) Bdrs(48%) Pos(a) Start(0) W(84px) H(84px)" title="Matt Bai" src="/sy/dh/ap/default/160914/mb2.jpg" data-reactid="27" /></a>
+ <div class="D(ib) Va(t) Mstart(94px) Pos(a) T(40%) TranslateY(-50%)" data-reactid="28"><a href="https://www.yahoo.com/news/tagged/matt-bai" data-reactid="29"><span class="Fz(12px) C(#188fff) Fw(b)" data-reactid="30">Matt Bai</span></a><span class="C(#198fff) D(b) Fz(14px) Fw(b) Lh(18px) Mt(2px)" data-reactid="31"></span>
+ <ul class="M(0) P(0) Mt(2px) List(n)" data-reactid="32">
+ <li class="List(n)" data-reactid="33"><a class="Fz(12px) C(#020e65) Fw(b) Lh(14px)" href="/news/the-real-problem-behind-fake-news-233047332.html" data-reactid="34">The real problem behind fake news</a></li>
+ </ul>
+ </div>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <script>
+ if (window.performance) {
+ window.performance.mark & amp; & amp;
+ window.performance.mark('tgtm-Col2-0-FollowAuthor');
+ window.performance.measure & amp; & amp;
+ window.performance.measure('tgtm-Col2-0-FollowAuthorDone', 'PageStart', 'tgtm-Col2-0-FollowAuthor');
+ }
+ </script>
+ <div id="mrt-node-tgtm-Col2-1-AdBlockPromo">
+ <div id="tgtm-Col2-1-AdBlockPromo-Proxy" data-reactroot="" data-reactid="1" data-react-checksum="1120018942">
+ <!-- react-empty: 2 -->
+ </div>
+ </div>
+ <script>
+ if (window.performance) {
+ window.performance.mark & amp; & amp;
+ window.performance.mark('tgtm-Col2-1-AdBlockPromo');
+ window.performance.measure & amp; & amp;
+ window.performance.measure('tgtm-Col2-1-AdBlockPromoDone', 'PageStart', 'tgtm-Col2-1-AdBlockPromo');
+ }
+ </script>
+ <div id="mrt-node-tgtm-Col2-2-Ad">
+ <div id="tgtm-Col2-2-Ad-Proxy" data-reactroot="" data-reactid="1" data-react-checksum="-1341101267">
+ <div data-reactid="2">
+ <div id="mrtLREC-9-sizer" class="darla-container" style="margin-bottom:40px;" data-reactid="3">
+ <div id="mrtLREC-9-wrapper" class="" data-reactid="4">
+ <div id="mrtdestLREC-9" style="width:300px;height:250px; border: 1px solid #e0e4e9;margin-left:auto;margin-right:auto"><iframe src="" frameborder="no"></iframe></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <script>
+ if (window.performance) {
+ window.performance.mark & amp; & amp;
+ window.performance.mark('tgtm-Col2-2-Ad');
+ window.performance.measure & amp; & amp;
+ window.performance.measure('tgtm-Col2-2-AdDone', 'PageStart', 'tgtm-Col2-2-Ad');
+ }
+ </script>
+ <div id="mrt-node-tgtm-Col2-3-CanvassSummaryView">
+ <div id="tgtm-Col2-3-CanvassSummaryView-Proxy" data-reactroot="" data-reactid="1" data-react-checksum="-2091571150">
+ <div class="tdv2-applet-canvass Mb(40px) Pos(r)">
+ <h3 class="subheader-title W(100%)">
+ <div class="Fz(15px) D(ib) Fw(b) Lh(27px) Fz(15px) Fw(b)"><span>What people are saying...</span></div>
+ </h3>
+ <ul class="comments-list List(n) Ovs(touch) Pos(r)">
+ <li class="comment Pstart(0) Pend(2px) Pt(3px) Pb(5px) Fz(12px) Lh(15px) ">
+ <div></div>
+ <div class="Pos(r) Pstart(42px)">
+ <div class="byline Fz(13px) Mt(10px) ">
+ <div class="D(ib)">
+ <div>
+ <div class="avatar D(ib) avatar Bdrs(46.5%) Pos(a)! Start(0) Cur(p)">
+ <div class="Pos(r)">
+ <div class="avatar-text Ta(c) Bdrs($orb-radius) Op(0) Trsdu(.3s) V(h)" title="See reaction history for J" style="background-color: rgb(26, 197, 103); color: rgb(255, 255, 255); font-size: 19px; line-height: 30px; width: 30px; height: 30px;">J</div><img class="Trsdu(.42s) avatar-img Bdrs($orb-radius) Pos(a) StretchedBox Bgc(#400090.03)" alt="J" title="See reaction history for J" src="https://s.yimg.com/wv/images/alphatar_100x100_J_kl_6-16.jpg" style="" width="30" height="30" /></div>
+ </div>
+ </div>
+ <div class="username D(ib) Fw(b) Mend(10px) C(#26282a) Fz(12px) Cur(p)">J</div>
+ </div>
+ </div>
+ <div class="message-content Wow(bw)">
+ <div class="Wow(bw) C(#26282a) Mb(2px) Fz(14px) Lh(20px) LineClamp(2,45px)">(Some) voters said they wanted a President not tainted by politics; and they got an amateur.</div>
+ </div>
+ </div>
+ </li>
+ <li class="comment Pstart(0) Pend(2px) Pt(3px) Pb(5px) Fz(12px) Lh(15px) ">
+ <div></div>
+ <div class="Pos(r) Pstart(42px)">
+ <div class="byline Fz(13px) Mt(10px) ">
+ <div class="D(ib)">
+ <div>
+ <div class="avatar D(ib) avatar Bdrs(46.5%) Pos(a)! Start(0) Cur(p)">
+ <div class="Pos(r)">
+ <div class="avatar-text Ta(c) Bdrs($orb-radius) Op(0) Trsdu(.3s) V(h)" title="See reaction history for Sky" style="background-color: rgb(17, 211, 96); color: rgb(255, 255, 255); font-size: 19px; line-height: 30px; width: 30px; height: 30px;">S</div><img class="Trsdu(.42s) avatar-img Bdrs($orb-radius) Pos(a) StretchedBox Bgc(#400090.03)" alt="Sky" title="See reaction history for Sky" src="https://s.yimg.com/wv/images/alphatar_100x100_S_ald.jpg" style="" width="30" height="30" /></div>
+ </div>
+ </div>
+ <div class="username D(ib) Fw(b) Mend(10px) C(#26282a) Fz(12px) Cur(p)">Sky</div>
+ </div>
+ </div>
+ <div class="message-content Wow(bw)">
+ <div class="Wow(bw) C(#26282a) Mb(2px) Fz(14px) Lh(20px) LineClamp(2,45px)">When will ALL you Trump supporters realize what a CON MAN he is, he will tell hid Audiences what they want to hear whether he will actual do what he says or not, look how many time he has back tracked on ALL his promises, "I am going to drain the swamp" then hires ALL insiders, "I will Repeal Obama care" then he says he will keep part of it" He will always tell his supports what they want to hear, he is the GREATET CON MAN in US Political History, even with Carrier, they are still sending 1,100 jobs to Mexico and the Tax Breaks he is giving them is being Pick up by the Tax Payers of Indiana and to ALL You Trump supports if YOU STILL believe in him, I have a Bridge in Arizona for Sale</div>
+ </div>
+ </div>
+ </li>
+ <li class="comment Pstart(0) Pend(2px) Pt(3px) Pb(5px) Fz(12px) Lh(15px) ">
+ <div></div>
+ <div class="Pos(r) Pstart(42px)">
+ <div class="byline Fz(13px) Mt(10px) ">
+ <div class="D(ib)">
+ <div>
+ <div class="avatar D(ib) avatar Bdrs(46.5%) Pos(a)! Start(0) Cur(p)">
+ <div class="Pos(r)">
+ <div class="avatar-text Ta(c) Bdrs($orb-radius) Op(0) Trsdu(.3s) V(h)" title="See reaction history for sai" style="background-color: rgb(240, 22, 47); color: rgb(255, 255, 255); font-size: 19px; line-height: 30px; width: 30px; height: 30px;">s</div><img class="Trsdu(.42s) avatar-img Bdrs($orb-radius) Pos(a) StretchedBox Bgc(#400090.03)" alt="sai" title="See reaction history for sai" src="https://s.yimg.com/wv/images/alphatar_100x100_S_ald.jpg" style="" width="30" height="30" /></div>
+ </div>
+ </div>
+ <div class="username D(ib) Fw(b) Mend(10px) C(#26282a) Fz(12px) Cur(p)">sai</div>
+ </div>
+ </div>
+ <div class="message-content Wow(bw)">
+ <div class="Wow(bw) C(#26282a) Mb(2px) Fz(14px) Lh(20px) LineClamp(2,45px)">1. Why weren't the same voters outraged when it became abundantly clear the DNC + MSM were helping to rig the voting in favor of Clint0n as their nominee, and against Bernie [B.S]?<br />2. In a similar odd fashion, the fact that their candidate [HRC] was placed above the Law by Loretta LYnch &amp; C0mey, rather than being held accountable for her actions, some of which were [T]reas0n0us, didn't deter Hillery-fans from wanting to see Clinton in the WH, again? <br />Finally, what role did the Soro$/Browne-owned Sequoya "SmartMatic" electronic voting machines play in the election-outcomes, that Clinton insisted, Trump abide by their results... but is UN_willing to do so herself?</div>
+ </div>
+ </div>
+ </li>
+ </ul><a href="https://www.yahoo.com/news/elections"><u class="StretchedBox Z(1)"></u></a>
+ <div class="footer-wrapper comment-count Fz(13px) C(#188fff) Fw(b)"><svg xmlns="http://www.w3.org/2000/svg" class="comment-icon Pos(r) M(a) T(8px) Cur(p)" width="21" height="21" viewBox="0 0 16 16" data-icon="comments" style="vertical-align: initial; fill: rgb(24, 143, 255); stroke: rgb(24, 143, 255); stroke-width: 0;"><path d="M14.002 10c0 .735-.625 1.333-1.395 1.333h-8.58l-2.028 1.892-.002-9.892C1.998 2.598 2.623 2 3.392 2h9.215c.77 0 1.395.598 1.395 1.333V10zM3.392.667C1.887.667.667 1.86.667 3.334v11.333c0 .265.157.505.4.61.085.038.176.056.266.056.165 0 .328-.062.453-.18l2.765-2.486h8.058c1.505 0 2.726-1.194 2.726-2.667V3.333c0-1.473-1.22-2.667-2.726-2.667H3.393zm7.947 4H4.68c-.367 0-.666.298-.666.667S4.314 6 4.682 6h6.657c.367 0 .665-.298.665-.666s-.298-.667-.666-.667zM4.68 7.333c-.367 0-.666.298-.666.667s.298.667.666.667h6.657c.367 0 .665-.3.665-.667s-.298-.667-.666-.667H4.68z"/></svg><span class="Fz(13px) Mstart(3px) Mend(6px)"><!-- react-text: 11 -->48.5k <!-- /react-text --><span>reactions</span></span><span>•</span><span class="footer-txt Fz(13px) Py(15px) Mb(10px) Mt(5px) Lh(13px) Fw(b) Mstart(6px) C(#188fff)"><span>Join the Conversation</span></span>
+ </div>
+ </div>
+ </div>
+ </div>
+ <script>
+ if (window.performance) {
+ window.performance.mark & amp; & amp;
+ window.performance.mark('tgtm-Col2-3-CanvassSummaryView');
+ window.performance.measure & amp; & amp;
+ window.performance.measure('tgtm-Col2-3-CanvassSummaryViewDone', 'PageStart', 'tgtm-Col2-3-CanvassSummaryView');
+ }
+ </script>
+ <div id="mrt-node-tgtm-Col2-4-WeatherSimpleForecast">
+ <div id="tgtm-Col2-4-WeatherSimpleForecast-Proxy" data-reactroot="" data-reactid="1" data-react-checksum="93858124">
+ <div class="Pos(r) Mb(40px)" id="tgtm-Col2-4-WeatherSimpleForecast">
+ <h2 class="C(#3f3f3f) D(ib) Fw(b) Fz(15px) Mb(18px)">
+ <!-- react-text: 11 -->Taipei City
+ <!-- /react-text --><button><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="16" height="16" viewBox="0 0 48 48" data-icon="caret-down" style="fill: rgb(0, 0, 0); stroke: rgb(0, 0, 0); stroke-width: 0; vertical-align: bottom;"><path d="M24.21 33.173l12.727-12.728c.78-.78.78-2.048 0-2.828-.78-.78-2.047-.78-2.828 0l-9.9 9.9-9.9-9.9c-.78-.78-2.047-.78-2.827 0-.78.78-.78 2.047 0 2.828L24.21 33.173z"/></svg></button></h2>
+ <div class="Pos(a) W(100%) Z(10)">
+ <!-- react-empty: 8 -->
+ </div>
+ <div class="Pos(r)">
+ <ul class="D(tb) W(100%)">
+ <li class="daily D(tbc) Ta(c) lightweight_D(ib) lightweight_W(25%) lightweight_Bxz(bb) Zoom">
+ <h3 class="Fz(13px) Mb(7px)"><span>Today</span></h3><span data-code="39"><img alt=" Scattered Thunderstorms" title=" Scattered Thunderstorms" class="Trsdu(.42s) " src="https://s.yimg.com/os/weather/1.0.1/dark_icon/64x64/[email protected]" width="43" height="43" /></span><span class="temp Fz(13px) D(b)"><b class="high C(#000) D(ib) Fw(b) Pend(5px)">69°</b><b class="low C(#8d8d8d) D(ib) Fw(b)">65°</b></span></li>
+ <li class="daily D(tbc) Ta(c) lightweight_D(ib) lightweight_W(25%) lightweight_Bxz(bb) Zoom">
+ <h3 class="Fz(13px) Mb(7px)"><span>Sat</span></h3><span data-code="39"><img alt=" Scattered Thunderstorms" title=" Scattered Thunderstorms" class="Trsdu(.42s) " src="https://s.yimg.com/os/weather/1.0.1/dark_icon/64x64/[email protected]" width="43" height="43" /></span><span class="temp Fz(13px) D(b)"><b class="high C(#000) D(ib) Fw(b) Pend(5px)">74°</b><b class="low C(#8d8d8d) D(ib) Fw(b)">68°</b></span></li>
+ <li class="daily D(tbc) Ta(c) lightweight_D(ib) lightweight_W(25%) lightweight_Bxz(bb) Zoom">
+ <h3 class="Fz(13px) Mb(7px)"><span>Sun</span></h3><span data-code="28"><img alt="Mostly Cloudy" title="Mostly Cloudy" class="Trsdu(.42s) " src="https://s.yimg.com/os/weather/1.0.1/dark_icon/64x64/[email protected]" width="43" height="43" /></span><span class="temp Fz(13px) D(b)"><b class="high C(#000) D(ib) Fw(b) Pend(5px)">77°</b><b class="low C(#8d8d8d) D(ib) Fw(b)">69°</b></span></li>
+ <li class="daily D(tbc) Ta(c) lightweight_D(ib) lightweight_W(25%) lightweight_Bxz(bb) Zoom">
+ <h3 class="Fz(13px) Mb(7px)"><span>Mon</span></h3><span data-code="28"><img alt="Mostly Cloudy" title="Mostly Cloudy" class="Trsdu(.42s) " src="https://s.yimg.com/os/weather/1.0.1/dark_icon/64x64/[email protected]" width="43" height="43" /></span><span class="temp Fz(13px) D(b)"><b class="high C(#000) D(ib) Fw(b) Pend(5px)">75°</b><b class="low C(#8d8d8d) D(ib) Fw(b)">69°</b></span></li>
+ </ul>
+ <a class="StretchedBox" href="https://weather.yahoo.com/taiwan/taipei-city/taipei-city-56460773" aria-label="Full forecast"></a>
+ </div>
+ </div>
+ </div>
+ </div>
+ <script>
+ if (window.performance) {
+ window.performance.mark & amp; & amp;
+ window.performance.mark('tgtm-Col2-4-WeatherSimpleForecast');
+ window.performance.measure & amp; & amp;
+ window.performance.measure('tgtm-Col2-4-WeatherSimpleForecastDone', 'PageStart', 'tgtm-Col2-4-WeatherSimpleForecast');
+ }
+ </script>
+ <div id="mrt-node-tgtm-Col2-5-ComboAd">
+ <div id="tgtm-Col2-5-ComboAd-Proxy" data-reactroot="" data-reactid="1" data-react-checksum="1236651997">
+ <div class="ads_wrapper" style="height: 250px; margin-bottom: 40px;" data-reactid="2">
+ <div data-reactid="3">
+ <div data-reactid="4">
+ <div id="mrtLREC2-9-sizer" class="darla-container" data-reactid="5">
+ <div id="mrtLREC2-9-wrapper" class="" data-reactid="6">
+ <div id="sb_rel_mrtdestLREC2-9" class="darla" style="position: relative; z-index: 8; width: 300px; height: 250px; visibility: inherit; display: inline-block; font-size: 0px;"><iframe style="position: absolute; z-index: 9; width: 299px; height: 249px; top: 0px; left: 0px; visibility: inherit; display: block;" id="mrtdestLREC2-9" src="https://s.yimg.com/rq/darla/2-9-19/html/r-sf.html" async="" scrolling="no" allowtransparency="true" hidefocus="true" tabindex="-1" marginwidth="0" marginheight="0" frameborder="no"></iframe></div>
+ </div>
+ </div>
+ </div>
+ <div data-reactid="7">
+ <div id="mrtLREC3-9-sizer" class="darla-container D-n D(n)" data-reactid="8">
+ <div id="mrtLREC3-9-wrapper" class="" data-reactid="9">
+ <div id="mrtdestLREC3-9" style=""></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <script>
+ if (window.performance) {
+ window.performance.mark & amp; & amp;
+ window.performance.mark('tgtm-Col2-5-ComboAd');
+ window.performance.measure & amp; & amp;
+ window.performance.measure('tgtm-Col2-5-ComboAdDone', 'PageStart', 'tgtm-Col2-5-ComboAd');
+ }
+ </script>
+ <div id="mrt-node-tgtm-Col2-6-Channels">
+ <div id="tgtm-Col2-6-Channels-Proxy" data-reactroot="" data-reactid="1" data-react-checksum="-1037425655">
+ <div id="tgtm-Col2-6-Channels" class="tdv2-applet-channels W(columnWidth) My(0) Mx(a) Mb(40px)">
+ <div class="W(100%) D(b) hdr">
+ <div class="Va(t) D(ib) W(55%)" style="background-color: rgb(14, 43, 92); height: 40px;"><img src="https://s.yimg.com/os/mit/media/m/content_index/images/sidekick_tv_news-2e9c408.png" style="height: 40px;" /></div>
+ <div class="Va(t) D(ib) W(15%) Bdbw(40px) Bdbc(t) Bdbs(s) Bdstartw(40px) Bdstarts(s) Bxz(bb)" style="border-left-color: rgb(14, 43, 92); background-color: rgb(219, 219, 219);"></div>
+ <div class="Va(t) D(ib) W(30%) Ta(end) Fz(xs) Fw(b)" style="background-color: rgb(219, 219, 219); color: rgb(0, 0, 0); height: 40px; line-height: 40px;"><span class="Mend(10px)">Must Watch</span></div>
+ </div>
+ <div class="playlist-stage Bgc(#111) Ov(h)">
+ <div class="playlist-player Pos(r)">
+ <!-- react-text: 13 -->
+ <!-- /react-text -->
+ <div class="W(100%) H(100%) detachable">
+ <div data-reactroot="" data-player-key="playlist-stage">
+ <div class="VideoPlayer D(b) Pos(r) Pb(56.25%) js-player-container" style="width: 100%; height: 100%;">
+ <div class="StretchedBox">
+ <div tabindex="0" class="yvp-content yvp-hide-controls smallscreen yvp-browser-ua yvp-browser-firefox yvp-browser-desktop yvp-browser-macintosh yvp-stream yvp-mode-vpaid yvp-flag-playing yvp-state-video" aria-label="Yahoo Video Player" id="yvp-content-node-4800">
+ <div class="yvp-main" tabindex="0">
+ <div class="yvp-loading-screen">
+ <div class="yvp-loading-spinner yvp-spinner-icon" style="width: 56.25px; height: 56.25px; margin-left: -28.125px; margin-top: -28.125px;"></div>
+ <div class="yvp-feedback-btn yvp-error-feedback" style="display: none;">
+ <p>Report issue</p>
+ </div>
+ </div>
+ <div class="yvp-bottom-bar">
+ <div class="yvp-bottom-container">
+ <div class="yvp-slider" role="slider" tabindex="0" aria-label="Seek slider" aria-valuemin="0">
+ <div class="yvp-slider-extension" aria-hidden="true"></div>
+ <div class="yvp-handle"></div>
+ <div class="yvp-buffer-bar"></div>
+ <div class="yvp-playback-bar"></div>
+ <div class="yvp-visual-seek">
+ <div class="yvp-vs-thumbnail"></div>
+ <div class="yvp-vs-time"></div>
+ </div>
+ </div>
+ <div class="yvp-play-controls">
+ <div class="yvp-play-btn" role="button" tabindex="0" aria-label="Pause Video"></div>
+ <div class="yvp-upnext-container hide">
+ <div class="yvp-upnext-btn" role="button">
+ </div>
+ <div class="yvp-upnext-playlist" role="dialog">
+ <div class="yvp-hover-elem"></div>
+ </div>
+ </div>
+ <div class="yvp-time-container" tabindex="-1" aria-hidden="true">
+ <div class="yvp-current-time"></div>
+ <div class="yvp-total-time"></div>
+ </div>
+ </div>
+ <div class="yvp-menu-controls">
+ <div class="yvp-cc-btn button yvp-tooltip" role="button" tabindex="0" aria-label="Closed Captions">
+ <div class="yvp-tooltip-wrapper">
+ <div class="yvp-tooltip-content">Captions Off</div>
+ </div>
+ </div>
+ <div class="yvp-volume-btn button" role="button" tabindex="0" aria-label="Mute">
+ <div class="yvp-volume-bar-container">
+ <div class="yvp-volume-level">
+ <div class="yvp-volume-bar">
+ <div class="yvp-volume-handle"></div>
+ </div>
+ <div class="yvp-volume-value"></div>
+ </div>
+ </div>
+ </div>
+ <div class="yvp-setting-btn button yvp-tooltip" role="button" tabindex="0" aria-label="Settings">
+ <div class="yvp-setting-pointer" aria-hidden="true"></div>
+ <div class="yvp-tooltip-wrapper">
+ <div class="yvp-tooltip-content">
+ Settings
+ </div>
+ </div>
+ </div>
+
+ <div class="yvp-fullscreen-btn button yvp-tooltip" role="button" tabindex="0" aria-label="Go to full screen">
+ <div class="yvp-tooltip-wrapper">
+ <div class="yvp-tooltip-content">
+ Full Screen
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="yvp-settings-container" tabindex="0">
+ <div class="yvp-main-settings open">
+ <div class="yvp-settings-embed open">
+ <div class="yvp-settings-header" tabindex="0" aria-label="Embed">Embed</div>
+ <div class="yvp-input-container yvp-embed-input-container">
+ <input class="yvp-embed-input" value="" data-link-type="emb" readonly="readonly" type="text" />
+ </div>
+ <div class="yvp-settings-divider"></div>
+ </div>
+ <div class="yvp-settings-quality">
+ <div class="yvp-settings-header" tabindex="0" aria-label="Video Quality">Video Quality</div>
+ <div class="yvp-settings-item yvp-quality-auto yvp-settings-activated" tabindex="1">Auto</div>
+ <div class="yvp-settings-item yvp-quality-high yvp-disabled" tabindex="2">High (HD)</div>
+ <div class="yvp-settings-item yvp-quality-medium yvp-disabled" tabindex="3">Medium</div>
+ <div class="yvp-settings-item last-item yvp-quality-low yvp-disabled" tabindex="4">Low</div>
+ <div class="yvp-settings-divider"></div>
+ </div>
+ <div class="yvp-settings-cc">
+ <div class="yvp-settings-header last-item" tabindex="0" aria-label="Closed Caption Settings">Closed Caption Settings</div>
+ <div class="yvp-settings-caret-icon right"></div>
+ </div>
+ </div>
+ <div class="yvp-cc-options-main close">
+ <div class="yvp-cc-back-to-settings">
+ <div class="yvp-settings-caret-icon left"></div>
+ <div class="yvp-back-to-settings">Back</div>
+ </div>
+
+ <div class="yvp-cc-box">
+ <div class="yvp-cc-header yvp-cc-item">Closed Captions</div>
+ <div class="yvp-cc-toggle">
+ <div data-cc-state="on" class="yvp-settings-item yvp-cc-on"></div>
+ <div data-cc-state="off" class="yvp-settings-item yvp-cc-off yvp-settings-activated"></div>
+ </div>
+ <div class="yvp-cc-header yvp-cc-item">Language</div>
+ <div class="yvp-cc-language yvp-cc-item">
+ <div class="yvp-ddm-wrapper">
+ <div class="yvp-ddm-selected-wrapper">
+ <div class="yvp-ddm-selected">English<span class="yvp-ddm-availability"></span></div><span class="yvp-ddm-chevron"></span></div>
+ <ul class="yvp-ddm-list">
+ <li class="yvp-ddm-item">English<span class="yvp-ddm-availability"></span></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+
+ <div class="yvp-cc-divider"></div>
+ <div class="yvp-cc-box">
+ <div class="yvp-cc-position yvp-cc-item">
+ <div class="yvp-cc-header yvp-cc-item">Position</div>
+ <div class="yvp-cc-pos-wrapper">
+ <ul class="yvp-cc-pos-selection">
+ <li class="yvp-settings-item yvp-cc-position-bottom yvp-settings-activated" cc-pos-data="bottom">Bottom</li>
+ <li class="yvp-settings-item yvp-cc-position-top" cc-pos-data="top">Top</li>
+ </ul>
+ </div>
+ </div>
+ <div class="yvp-cc-size yvp-cc-item">
+ <div class="yvp-cc-header yvp-cc-item">Type Size</div>
+ <div class="yvp-cc-size-selector">
+ <div class="yvp-cc-size-indicators">
+ <div class="yvp-cc-indicator yvp-cc-indicator-0" data-size-value="0">A</div>
+ <div class="yvp-cc-indicator yvp-cc-indicator-25" data-size-value="25">A</div>
+ <div class="yvp-cc-indicator yvp-cc-indicator-50" data-size-value="50">A</div>
+ <div class="yvp-cc-indicator yvp-cc-indicator-75" data-size-value="75">A</div>
+ <div class="yvp-cc-indicator yvp-cc-indicator-100" data-size-value="100">A</div>
+ </div>
+ <div class="yvp-slider-wrapper">
+ <div class="yvp-slider-track">
+ <div class="yvp-slider-anchor" style="left: 0%"></div>
+ <div class="yvp-slider-anchor" style="left: 25%"></div>
+ <div class="yvp-slider-anchor" style="left: 50%"></div>
+ <div class="yvp-slider-anchor" style="left: 75%"></div>
+ <div class="yvp-slider-anchor" style="left: 100%"></div>
+ <div class="yvp-slider-handle" style="left: 24%"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div class="yvp-cc-divider"></div>
+ <div class="yvp-cc-box">
+ <div class="yvp-cc-style yvp-cc-item">
+ <div class="yvp-cc-style-preview" style="font-family: Arial,Helvetica,sans-serif; color: rgb(255, 255, 255); background-color: rgba(0, 0, 0, 0.75);">Aa</div>
+ <div class="yvp-cc-style-more">
+ <div class="yvp-cc-item">Style Options</div>
+ <div class="yvp-settings-caret-icon right"></div>
+ </div>
+ </div>
+
+ <div class="yvp-cc-feedback-link yvp-cc-item">
+ <a href="http://info.yahoo.com/legal/us/yahoo/cc/en-us/" target="_blank">
+ <div class="yvp-cc-item"></div>
+ </a>
+ </div>
+ <div class="yvp-cc-preview">
+ <div class="yvp-cc-preview-message">Captions will look like this</div>
+ </div>
+ </div>
+ </div>
+ <div class="yvp-cc-options-more close">
+ <div class="yvp-cc-back">
+ <div class="yvp-settings-caret-icon left"></div>
+ <div class="yvp-cc-back-header">Back</div>
+ </div>
+ <div class="yvp-tab-container">
+ <ul class="yvp-tabs-nav">
+ <li class="yvp-tab tab-selected">Presets</li>
+ <li class="yvp-tab">Text</li>
+ <li class="yvp-tab">background</li>
+ <li class="yvp-tab">effects</li>
+ </ul>
+ <div class="yvp-tabs-content">
+ <div class="yvp-tabcontent preset-container tab-show">
+ <div class="yvp-cc-preset" style="color: rgb(205, 205, 205); background-color: rgb(6, 6, 6);">Aa</div>
+ <div class="yvp-cc-preset" style="color: rgb(40, 40, 40); background-color: rgb(200, 200, 200);">Aa</div>
+ <div class="yvp-cc-preset" style="color: rgb(254, 241, 73); background-color: rgb(10, 9, 8);">Aa</div>
+ <div class="yvp-cc-preset" style="color: rgb(205, 205, 205); background-color: transparent;">Aa</div>
+ <div class="yvp-cc-preset" style="color: rgb(41, 253, 47); background-color: rgb(10, 9, 8);">Aa</div>
+ <div class="yvp-cc-preset" style="color: rgb(236, 54, 156); background-color: rgb(10, 10, 9);">Aa</div>
+ <div class="yvp-cc-preset" style="color: rgb(44, 254, 254); background-color: rgb(10, 10, 9);">Aa</div>
+ <div class="yvp-cc-preset" style="color: rgb(41, 253, 47); background-color: transparent;">Aa</div>
+ </div>
+ <div class="yvp-tabcontent font-list">
+ <div class="yvp-ddm-wrapper">
+ <div class="yvp-ddm-selected-wrapper">
+ <div class="yvp-ddm-selected">Arial<span class="yvp-ddm-availability"></span></div><span class="yvp-ddm-chevron"></span></div>
+ <ul class="yvp-ddm-list">
+ <li class="yvp-ddm-item">Georgia<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">Palatino Linotype<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">Times New Roman<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">Arial<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">Arial Black<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">Comic Sans MS<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">Impact<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">Lucida Sans Unicode<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">Tahoma<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">Trebuchet MS<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">Verdana<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">Courier New<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">Lucida Console<span class="yvp-ddm-availability"></span></li>
+ </ul>
+ </div>
+ <div class="yvp-colorpicker fontcolorpicker">
+ <div class="color-option" style="background-color: rgb(231, 231, 231);"></div>
+ <div class="color-option" style="background-color: rgb(0, 0, 0);"></div>
+ <div class="color-option" style="background-color: rgb(252, 37, 37);"></div>
+ <div class="color-option" style="background-color: rgb(41, 253, 47);"></div>
+ <div class="color-option" style="background-color: rgb(44, 254, 254);"></div>
+ <div class="color-option" style="background-color: rgb(236, 54, 156);"></div>
+ <div class="color-option" style="background-color: rgb(254, 241, 73);"></div>
+ <div class="color-option" style="background-color: rgb(37, 36, 251);"></div>
+ </div>
+ </div>
+ <div class="yvp-tabcontent bg-opacity-list">
+ <div class="yvp-ddm-wrapper">
+ <div class="yvp-ddm-selected-wrapper">
+ <div class="yvp-ddm-selected">75% (transparency)<span class="yvp-ddm-availability"></span></div><span class="yvp-ddm-chevron"></span></div>
+ <ul class="yvp-ddm-list">
+ <li class="yvp-ddm-item">100% (opaque)<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">75% (transparency)<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">50% (transparency)<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">25% (transparency)<span class="yvp-ddm-availability"></span></li>
+ </ul>
+ </div>
+ <div class="yvp-colorpicker bgcolorpicker">
+ <div class="color-option nocolor" style="background-color: transparent;"></div>
+ <div class="color-option" style="background-color: rgb(234, 234, 234);"></div>
+ <div class="color-option" style="background-color: rgb(199, 199, 199);"></div>
+ <div class="color-option" style="background-color: rgb(145, 145, 145);"></div>
+ <div class="color-option" style="background-color: rgb(91, 91, 91);"></div>
+ <div class="color-option" style="background-color: rgb(0, 0, 0);"></div>
+ <div class="color-option" style="background-color: rgb(41, 253, 47);"></div>
+ <div class="color-option" style="background-color: rgb(36, 36, 251);"></div>
+ <div class="color-option" style="background-color: rgb(44, 253, 253);"></div>
+ <div class="color-option" style="background-color: rgb(236, 53, 155);"></div>
+ <div class="color-option" style="background-color: rgb(253, 240, 72);"></div>
+ <div class="color-option" style="background-color: rgb(252, 36, 36);"></div>
+ </div>
+ </div>
+ <div class="yvp-tabcontent effects">
+ <div class="yvp-effect none">
+ <p>Aa</p>
+ <div class="yvp-cc-effect-header">Plain</div>
+ </div>
+ <div class="yvp-effect dropshadow">
+ <p>Aa</p>
+ <div class="yvp-cc-effect-header">Shadow</div>
+ </div>
+ <div class="yvp-effect raised">
+ <p>Aa</p>
+ <div class="yvp-cc-effect-header">raised</div>
+ </div>
+ <div class="yvp-effect depressed">
+ <p>Aa</p>
+ <div class="yvp-cc-effect-header">Lowered</div>
+ </div>
+ <div class="yvp-effect uniform">
+ <p>Aa</p>
+ <div class="yvp-cc-effect-header">Outline</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="yvp-cc-style-preview" style="font-family: Arial,Helvetica,sans-serif; color: rgb(255, 255, 255); background-color: rgba(0, 0, 0, 0.75);">
+ <div class="yvp-cc-options-message">Captions will look like this</div>
+ </div>
+ </div>
+ </div>
+ <div class="yvp-docked-close-button"></div>
+ </div>
+ </div>
+ <div class="yvp-top-bar">
+ <a class="yvp-provider-logo" target="_blank" aria-hidden="true"></a>
+ <div class="yvp-content-type hide" tabindex="0" aria-label=""></div>
+ <div class="yvp-ad-count-container">
+ <div class="yvp-ad-count">Ad:</div>
+ <div class="yvp-ad-countdowntimer"></div>
+ </div>
+ </div>
+ <div class="yvp-playing-item-title"></div>
+ <div class="yvp-custom-controls"></div>
+ <div class="yvp-object-overlay"></div>
+ <div class="yvp-mute-indicator"></div>
+ <div class="yvp-ads-overlay"></div>
+ <div class="cc-element bottom yvp-hide" style="font-family: Arial,Helvetica,sans-serif; font-size: 12px; color: rgb(255, 255, 255);"><span style="background-color: rgba(0, 0, 0, 0.75); line-height: 0; padding: 0px;"></span></div><video class="yvp-html5-video" preload="" id="2177227786" src="blob:https://us.yahoo.com/897a87f7-180d-fe41-b9ee-2d6ff61035f2"></video><object id="4062397862" class="yvp-flash-video yvp-renderer-active" type="application/x-shockwave-flash" data="https://s.yimg.com/rx/builds/7.86.268.1480452935/assets/simpleplayer.swf" width="100%" height="100%"><param name="allowscriptaccess" value="always" /><param name="allowFullScreen" value="true" /><param name="wmode" value="direct" /><param name="flashVars" value="jsCallback=__YVPFlashAdHandler_1364082398&amp;allowedDomain=us.yahoo.com" /></object></div>
+ <div class="yvp-docked-meta">
+ <div class="yvp-docked-title"></div>
+ <div class="yvp-docked-provider"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="D(b) Va(t) Pt(10px) ftr" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);">
+ <div class="Fw(500) Pb(3px)">Selena Gomez Is the Queen of Instagram</div>
+ <div class="Fz(11px) C(#888)">ABC News Videos</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <script>
+ if (window.performance) {
+ window.performance.mark & amp; & amp;
+ window.performance.mark('tgtm-Col2-6-Channels');
+ window.performance.measure & amp; & amp;
+ window.performance.measure('tgtm-Col2-6-ChannelsDone', 'PageStart', 'tgtm-Col2-6-Channels');
+ }
+ </script>
+ <div id="mrt-node-tgtm-Col2-7-DiscussionList">
+ <div id="tgtm-Col2-7-DiscussionList-Proxy" data-reactroot="" data-reactid="1" data-react-checksum="-763418978">
+ <div class="Pos(r)" data-test-locator="jtd">
+ <h2 class="Fz(15px) Fw(b) C(#000) M(0) Mb(10px)"><span>Popular in the Community</span></h2>
+ <div class="Py(10px) Pos(r)">
+ <div class="Cf">
+ <div>
+ <div class="Fl(start) Pos(r) Z(1) W(150px)">
+ <a href="/news/tom-ford-on-dressing-melania-trump-shes-not-necessarily-my-image-002238208.html?.tsrc=jtc_news_index" class="D(b) H(0) Ov(h) Bdrs(2px)" style="padding-bottom: 74%;"><img alt="Tom Ford on Dressing Melania Trump: 'She's Not Necessarily My Image'" class="Trsdu(.42s) W(100%) Trsdu(0s)!" src="https://s.yimg.com/uu/api/res/1.2/9jHpA98Rf0k5TZel8HOVIQ--/Zmk9c3RyaW07aD0yMjI7cHlvZmY9MDtxPTgwO3c9MzAwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://media.zenfs.com/creatr-images/GLB/2016-12-01/98baf690-b75d-11e6-b4d7-7549993b31c7_9c8af290-a06d-11e6-bdfd-4ddc0a732700_ford.gif" style="" />
+ <div class="Bg(discussionImgRankGradient) StretchedBox"></div><span class="Tsh(discussionTextShadow) Pos(a) Fz(32px) Lh(30px) Start(8px) B(6px) C(#f8fafc) Fw(b)">1</span></a>
+ </div>
+ <div class="H(111px) Ov(h) Pstart(15px) Pos(r)">
+ <p class="W(27px) H(1px) Bdtw(1px) Bdts(s) Bdtc(#b9bdc5) Mb(6px)"></p>
+ <h3 class="Mb(5px)">
+ <a href="/news/tom-ford-on-dressing-melania-trump-shes-not-necessarily-my-image-002238208.html?.tsrc=jtc_news_index" class="Td(n)">
+ <div class="Fw(b) Fz(13px) Lh(15px) LineClamp(4,60px) Pos(r) C(#000000)">Tom Ford on Dressing Melania Trump: 'She's Not Necessarily My Image'</div>
+ </a>
+ </h3>
+ <div class="Pos(a) W(100%) B(0)"><a class="Pos(r) Cur(p) Bdw(0) Va(m) Td(n) P(0) D(ib)" href="/news/tom-ford-on-dressing-melania-trump-shes-not-necessarily-my-image-002238208.html"><span class="Fz(11px) Ta(start) C(#979ba7) C(#188fff):h"><!-- react-text: 23 -->3457 <!-- /react-text --><span>messages</span></span></a>
+ <div class="sentiments W(100%) Mt(4px) Va(b)"><span class="D(ib) Pend(6px)"><span class="W(15px) H(15px) D(ib) Va(tt) Bgz(330%) Bg(positiveImg)"></span><span class="C(#1ac567) Pstart(3px) Fz(11px) Fw(b)">7%</span></span><span class="D(ib) Pend(6px)"><span class="W(15px) H(15px) D(ib) Va(tt) Bgz(330%) Bg(neutralImg)"></span><span class="C(#ff7b12) Pstart(3px) Fz(11px) Fw(b)">63%</span></span><span class="D(ib)"><span class="W(15px) H(15px) D(ib) Va(tt) Bgz(330%) Bg(negativeImg)"></span><span class="C(#ff4d52) Pstart(3px) Fz(11px) Fw(b)">30%</span></span>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="Py(10px) Pos(r)">
+ <div class="Cf">
+ <div>
+ <div class="Fl(start) Pos(r) Z(1) W(150px)">
+ <a href="/news/presidential-election-recount-set-begin-wisconsin-060511203--election.html?.tsrc=jtc_news_index" class="D(b) H(0) Ov(h) Bdrs(2px)" style="padding-bottom: 74%;"><img alt="Wisconsin election recount begins; Michigan's is challenged" class="Trsdu(.42s) W(100%) Trsdu(0s)!" src="https://s.yimg.com/uu/api/res/1.2/JRMsDJSMu_vCqkLVkpnmiA--/Zmk9c3RyaW07aD0yMjI7cHlvZmY9MDtxPTgwO3c9MzAwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en_us/News/ap_webfeeds/3bb2278df96048098ae83026310340c6.jpg" style="" />
+ <div class="Bg(discussionImgRankGradient) StretchedBox"></div><span class="Tsh(discussionTextShadow) Pos(a) Fz(32px) Lh(30px) Start(8px) B(6px) C(#f8fafc) Fw(b)">2</span></a>
+ </div>
+ <div class="H(111px) Ov(h) Pstart(15px) Pos(r)">
+ <p class="W(27px) H(1px) Bdtw(1px) Bdts(s) Bdtc(#b9bdc5) Mb(6px)"></p>
+ <h3 class="Mb(5px)">
+ <a href="/news/presidential-election-recount-set-begin-wisconsin-060511203--election.html?.tsrc=jtc_news_index" class="Td(n)">
+ <div class="Fw(b) Fz(13px) Lh(15px) LineClamp(4,60px) Pos(r) C(#000000)">Wisconsin election recount begins; Michigan's is challenged</div>
+ </a>
+ </h3>
+ <div class="Pos(a) W(100%) B(0)"><a class="Pos(r) Cur(p) Bdw(0) Va(m) Td(n) P(0) D(ib)" href="/news/presidential-election-recount-set-begin-wisconsin-060511203--election.html"><span class="Fz(11px) Ta(start) C(#979ba7) C(#188fff):h"><!-- react-text: 51 -->2189 <!-- /react-text --><span>messages</span></span></a>
+ <div class="sentiments W(100%) Mt(4px) Va(b)"><span class="D(ib) Pend(6px)"><span class="W(15px) H(15px) D(ib) Va(tt) Bgz(330%) Bg(positiveImg)"></span><span class="C(#1ac567) Pstart(3px) Fz(11px) Fw(b)">4%</span></span><span class="D(ib) Pend(6px)"><span class="W(15px) H(15px) D(ib) Va(tt) Bgz(330%) Bg(neutralImg)"></span><span class="C(#ff7b12) Pstart(3px) Fz(11px) Fw(b)">71%</span></span><span class="D(ib)"><span class="W(15px) H(15px) D(ib) Va(tt) Bgz(330%) Bg(negativeImg)"></span><span class="C(#ff4d52) Pstart(3px) Fz(11px) Fw(b)">25%</span></span>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="Py(10px) Pos(r)">
+ <div class="Cf">
+ <div>
+ <div class="Fl(start) Pos(r) Z(1) W(150px)">
+ <a href="/news/petraeus-would-need-to-inform-his-probation-officer-if-he-joins-trumps-cabinet-172641753.html?.tsrc=jtc_news_index" class="D(b) H(0) Ov(h) Bdrs(2px)" style="padding-bottom: 74%;"><img alt="Petraeus would need to inform his probation officer if he joins Trump’s Cabinet" class="Trsdu(.42s) W(100%) Trsdu(0s)!" src="https://s.yimg.com/uu/api/res/1.2/iu5tNfG3zLOh3WEdqShqLA--/Zmk9c3RyaW07aD0yMjI7cHlvZmY9MDtxPTgwO3c9MzAwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en/homerun/feed_manager_auto_publish_494/1512a9e6f903b7e1cd786f7fe2326866" style="" />
+ <div class="Bg(discussionImgRankGradient) StretchedBox"></div><span class="Tsh(discussionTextShadow) Pos(a) Fz(32px) Lh(30px) Start(8px) B(6px) C(#f8fafc) Fw(b)">3</span></a>
+ </div>
+ <div class="H(111px) Ov(h) Pstart(15px) Pos(r)">
+ <p class="W(27px) H(1px) Bdtw(1px) Bdts(s) Bdtc(#b9bdc5) Mb(6px)"></p>
+ <h3 class="Mb(5px)">
+ <a href="/news/petraeus-would-need-to-inform-his-probation-officer-if-he-joins-trumps-cabinet-172641753.html?.tsrc=jtc_news_index" class="Td(n)">
+ <div class="Fw(b) Fz(13px) Lh(15px) LineClamp(4,60px) Pos(r) C(#000000)">Petraeus would need to inform his probation officer if he joins Trump’s Cabinet</div>
+ </a>
+ </h3>
+ <div class="Pos(a) W(100%) B(0)"><a class="Pos(r) Cur(p) Bdw(0) Va(m) Td(n) P(0) D(ib)" href="/news/petraeus-would-need-to-inform-his-probation-officer-if-he-joins-trumps-cabinet-172641753.html"><span class="Fz(11px) Ta(start) C(#979ba7) C(#188fff):h"><!-- react-text: 79 -->1237 <!-- /react-text --><span>messages</span></span></a>
+ <div class="sentiments W(100%) Mt(4px) Va(b)"><span class="D(ib) Pend(6px)"><span class="W(15px) H(15px) D(ib) Va(tt) Bgz(330%) Bg(positiveImg)"></span><span class="C(#1ac567) Pstart(3px) Fz(11px) Fw(b)">4%</span></span><span class="D(ib) Pend(6px)"><span class="W(15px) H(15px) D(ib) Va(tt) Bgz(330%) Bg(neutralImg)"></span><span class="C(#ff7b12) Pstart(3px) Fz(11px) Fw(b)">72%</span></span><span class="D(ib)"><span class="W(15px) H(15px) D(ib) Va(tt) Bgz(330%) Bg(negativeImg)"></span><span class="C(#ff4d52) Pstart(3px) Fz(11px) Fw(b)">24%</span></span>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="Py(10px) Pos(r)">
+ <div class="Cf">
+ <div>
+ <div class="Fl(start) Pos(r) Z(1) W(150px)">
+ <a href="/news/what-just-happened-with-carrier-is-crazy-223106708.html?.tsrc=jtc_news_index" class="D(b) H(0) Ov(h) Bdrs(2px)" style="padding-bottom: 74%;"><img alt="What just happened with Carrier is crazy" class="Trsdu(.42s) W(100%) Trsdu(0s)!" src="https://s.yimg.com/uu/api/res/1.2/H58kB1kmKZsVS8b3uJ8LBw--/Zmk9c3RyaW07aD0yMjI7cHlvZmY9MDtxPTgwO3c9MzAwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://media.zenfs.com/creatr-images/GLB/2016-12-01/64c09c20-b814-11e6-914d-b5ce7dec3223_GettyImages-627024488.jpg" style="" />
+ <div class="Bg(discussionImgRankGradient) StretchedBox"></div><span class="Tsh(discussionTextShadow) Pos(a) Fz(32px) Lh(30px) Start(8px) B(6px) C(#f8fafc) Fw(b)">4</span></a>
+ </div>
+ <div class="H(111px) Ov(h) Pstart(15px) Pos(r)">
+ <p class="W(27px) H(1px) Bdtw(1px) Bdts(s) Bdtc(#b9bdc5) Mb(6px)"></p>
+ <h3 class="Mb(5px)">
+ <a href="/news/what-just-happened-with-carrier-is-crazy-223106708.html?.tsrc=jtc_news_index" class="Td(n)">
+ <div class="Fw(b) Fz(13px) Lh(15px) LineClamp(4,60px) Pos(r) C(#000000)">What just happened with Carrier is crazy</div>
+ </a>
+ </h3>
+ <div class="Pos(a) W(100%) B(0)"><a class="Pos(r) Cur(p) Bdw(0) Va(m) Td(n) P(0) D(ib)" href="/news/what-just-happened-with-carrier-is-crazy-223106708.html"><span class="Fz(11px) Ta(start) C(#979ba7) C(#188fff):h"><!-- react-text: 107 -->5145 <!-- /react-text --><span>messages</span></span></a>
+ <div class="sentiments W(100%) Mt(4px) Va(b)"><span class="D(ib) Pend(6px)"><span class="W(15px) H(15px) D(ib) Va(tt) Bgz(330%) Bg(positiveImg)"></span><span class="C(#1ac567) Pstart(3px) Fz(11px) Fw(b)">4%</span></span><span class="D(ib) Pend(6px)"><span class="W(15px) H(15px) D(ib) Va(tt) Bgz(330%) Bg(neutralImg)"></span><span class="C(#ff7b12) Pstart(3px) Fz(11px) Fw(b)">69%</span></span><span class="D(ib)"><span class="W(15px) H(15px) D(ib) Va(tt) Bgz(330%) Bg(negativeImg)"></span><span class="C(#ff4d52) Pstart(3px) Fz(11px) Fw(b)">27%</span></span>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="Py(10px) Pos(r)">
+ <div class="Cf">
+ <div>
+ <div class="Fl(start) Pos(r) Z(1) W(150px)">
+ <a href="/news/donald-trump-tells-pakistan-whatever-194657529.html?.tsrc=jtc_news_index" class="D(b) H(0) Ov(h) Bdrs(2px)" style="padding-bottom: 74%;"><img alt="Donald Trump Tells Pakistan He Will Do Whatever It Wants" class="Trsdu(.42s) W(100%) Trsdu(0s)!" src="https://s.yimg.com/uu/api/res/1.2/65p_9yZez6XxWsuj5irjXA--/Zmk9c3RyaW07aD0yMjI7cHlvZmY9MDtxPTgwO3c9MzAwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en-US/homerun/foreign_policy_magazine/7843baa2ae1e72999e1487175924cf33" style="" />
+ <div class="Bg(discussionImgRankGradient) StretchedBox"></div><span class="Tsh(discussionTextShadow) Pos(a) Fz(32px) Lh(30px) Start(8px) B(6px) C(#f8fafc) Fw(b)">5</span></a>
+ </div>
+ <div class="H(111px) Ov(h) Pstart(15px) Pos(r)">
+ <p class="W(27px) H(1px) Bdtw(1px) Bdts(s) Bdtc(#b9bdc5) Mb(6px)"></p>
+ <h3 class="Mb(5px)">
+ <a href="/news/donald-trump-tells-pakistan-whatever-194657529.html?.tsrc=jtc_news_index" class="Td(n)">
+ <div class="Fw(b) Fz(13px) Lh(15px) LineClamp(4,60px) Pos(r) C(#000000)">Donald Trump Tells Pakistan He Will Do Whatever It Wants</div>
+ </a>
+ </h3>
+ <div class="Pos(a) W(100%) B(0)"><a class="Pos(r) Cur(p) Bdw(0) Va(m) Td(n) P(0) D(ib)" href="/news/donald-trump-tells-pakistan-whatever-194657529.html"><span class="Fz(11px) Ta(start) C(#979ba7) C(#188fff):h"><!-- react-text: 135 -->673 <!-- /react-text --><span>messages</span></span></a>
+ <div class="sentiments W(100%) Mt(4px) Va(b)"><span class="D(ib) Pend(6px)"><span class="W(15px) H(15px) D(ib) Va(tt) Bgz(330%) Bg(positiveImg)"></span><span class="C(#1ac567) Pstart(3px) Fz(11px) Fw(b)">5%</span></span><span class="D(ib) Pend(6px)"><span class="W(15px) H(15px) D(ib) Va(tt) Bgz(330%) Bg(neutralImg)"></span><span class="C(#ff7b12) Pstart(3px) Fz(11px) Fw(b)">65%</span></span><span class="D(ib)"><span class="W(15px) H(15px) D(ib) Va(tt) Bgz(330%) Bg(negativeImg)"></span><span class="C(#ff4d52) Pstart(3px) Fz(11px) Fw(b)">30%</span></span>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <script>
+ if (window.performance) {
+ window.performance.mark & amp; & amp;
+ window.performance.mark('DiscussionList');
+ window.performance.measure & amp; & amp;
+ window.performance.measure('DiscussionListDone', 'PageStart', 'DiscussionList');
+ }
+ </script>
+ <div id="mrt-node-tgtm-Col2-8-Footer">
+ <div id="tgtm-Col2-8-Footer-Proxy" data-reactroot="" data-reactid="1" data-react-checksum="1087118069">
+ <ul class="yvpDocked_Mt(260px)" data-test-locator="tdv2-applet-footer" data-reactid="2">
+ <li class="D(ib) mouseover Mend(6px) Lh(22px)" data-test-locator="footer-item" data-reactid="3"><a title="Help" href="https://help.yahoo.com/kb/helpcentral" class="Tt(c) Fz(13px) Td(n) mouseover:h_Op(1) mouseover:h_Td(u) C(#3c3c5b) Op(.4)" data-reactid="4">Help</a></li>
+ <li class="D(ib) mouseover Mend(6px) Lh(22px)" data-test-locator="footer-item" data-reactid="5"><a title="Privacy" href="https://policies.yahoo.com/us/en/yahoo/privacy/index.htm" class="Tt(c) Fz(13px) Td(n) mouseover:h_Op(1) mouseover:h_Td(u) C(#3c3c5b) Op(.4)" data-reactid="6">Privacy</a></li>
+ <li class="D(ib) mouseover Mend(6px) Lh(22px)" data-test-locator="footer-item" data-reactid="7"><a title="Suggestions" href="https://yahoo.uservoice.com/forums/206380" class="Tt(c) Fz(13px) Td(n) mouseover:h_Op(1) mouseover:h_Td(u) C(#3c3c5b) Op(.4)" data-reactid="8">Suggestions</a></li>
+ <li class="D(ib) mouseover Mend(6px) Lh(22px)" data-test-locator="footer-item" data-reactid="9"><a title="About our Ads" href="https://info.yahoo.com/privacy/us/yahoo/relevantads.html" class="Tt(c) Fz(13px) Td(n) mouseover:h_Op(1) mouseover:h_Td(u) C(#3c3c5b) Op(.4)" data-reactid="10">About our Ads</a></li>
+ <li class="D(ib) mouseover Mend(6px) Lh(22px)" data-test-locator="footer-item" data-reactid="11"><a title="Terms" href="https://policies.yahoo.com/us/en/yahoo/terms/utos/index.htm" class="Tt(c) Fz(13px) Td(n) mouseover:h_Op(1) mouseover:h_Td(u) C(#3c3c5b) Op(.4)" data-reactid="12">Terms</a></li>
+ </ul>
+ </div>
+ </div>
+ <script>
+ if (window.performance) {
+ window.performance.mark & amp; & amp;
+ window.performance.mark('tgtm-Col2-8-Footer');
+ window.performance.measure & amp; & amp;
+ window.performance.measure('tgtm-Col2-8-FooterDone', 'PageStart', 'tgtm-Col2-8-Footer');
+ }
+ </script>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="YDC-Overlay" class="YDC-Overlay">
+ <div id="YDC-Overlay-Stack" class="YDC-Overlay-Stack Z(11) End(0) Pos(f) Start(0) lw-nav-open_Pos(r) lw-nav-open_Z(10) T(0)">
+ <div>
+ <div id="mrt-node-tgtm-Overlay-0-MtfModal">
+ <div id="tgtm-Overlay-0-MtfModal-Proxy" data-reactroot="" data-reactid="1" data-react-checksum="1126244870">
+ <!-- react-empty: 2 -->
+ </div>
+ </div>
+ <script>
+ if (window.performance) {
+ window.performance.mark & amp; & amp;
+ window.performance.mark('tgtm-Overlay-0-MtfModal');
+ window.performance.measure & amp; & amp;
+ window.performance.measure('tgtm-Overlay-0-MtfModalDone', 'PageStart', 'tgtm-Overlay-0-MtfModal');
+ }
+ </script>
+ <div id="mrt-node-tgtm-Overlay-1-Nagbar">
+ <div id="tgtm-Overlay-1-Nagbar-Proxy" data-reactroot="" data-reactid="1" data-react-checksum="-189259458">
+ <!-- react-empty: 2 -->
+ </div>
+ </div>
+ <script>
+ if (window.performance) {
+ window.performance.mark & amp; & amp;
+ window.performance.mark('tgtm-Overlay-1-Nagbar');
+ window.performance.measure & amp; & amp;
+ window.performance.measure('tgtm-Overlay-1-NagbarDone', 'PageStart', 'tgtm-Overlay-1-Nagbar');
+ }
+ </script>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="app">
+ <div data-reactroot="">
+ <div class="render-target-default Pos(a) W(100%) modal-open_Op(1)" id="render-target-default"><span></span></div>
+ <div class="render-target-active render-target-modal O(n)!:f Bdtw(1px) D(n) H(a)! Mih(100%) modal-postopen_Op(1) Pos(a) T(76px) CollapsibleUh_T(60px) Start(0) End(0) Maw(1230px) Miw(984px) Mx(a) modal-open_D(b) modal-postopen_D(b) W(100%) H(100%) Z(9)" id="render-target-modal">
+ <div class="news US en-US H(100%) O(n)!:f Mx(a)--modalCentered Maw(1180px) Miw(984px) Mx(20px) Mx(0)--modalFloatingCloseBtn">
+ <div id="modalDescription" class="Hidden"><span>Entering a modal</span></div>
+ <div id="YDC-MainCanvas" class="YDC-MainCanvas Mih(100%) Bxsh(modalShadow) Pos(r)">
+ <div class="Cf">
+ <div>
+ <div class="Z(-1) Bgc(#fff) Cur(p) Pos(f) Start(0) W(100%) H(100%)"></div>
+ <div class="Pos(a) End(21px) T(25px)"><button class="Bdrs(20px) Cur(p) End(20px)--modalFloatingCloseBtn O(n) P(9px) Pos(f) Z(3) Bgc(#2d1152)"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="19" height="19" viewBox="-1 -1 50 50" data-icon="close" style="stroke-width: 2; fill: rgb(255, 255, 255); stroke: rgb(255, 255, 255); vertical-align: bottom;"><path d="M37.98 34.827l-9.9-9.9 9.9-9.898c.78-.782.78-2.05 0-2.83-.78-.78-2.047-.78-2.828 0l-9.9 9.9-9.898-9.9c-.78-.78-2.048-.78-2.828 0-.78.78-.78 2.047 0 2.828l9.9 9.9-9.9 9.898c-.78.78-.78 2.047 0 2.828.78.78 2.047.78 2.828 0l9.9-9.9 9.898 9.9c.78.78 2.048.78 2.828 0 .782-.78.782-2.047 0-2.827z"/></svg></button></div>
+ </div>
+ <div id="YDC-Overlay" class="YDC-Overlay">
+ <div id="YDC-Overlay-Stack" class="YDC-Overlay-Stack Z(11) End(0) Pos(f) Start(0) lw-nav-open_Pos(r) lw-nav-open_Z(10) T(0)">
+ <div>
+ <div id="tgt1-Overlay-0-Lightbox-Proxy">
+ <div id="tgt1-Overlay-0-Lightbox" class="lightbox">
+ <div tabindex="-1" class="lightbox-wrapper Ta(c) Pos(f) T(0) Start(0) H(100%) W(100%) D(n)! Op(0)">
+ <div id="myLightboxContainer" class="Ta(start) Pos(r) Z(1) T(0) Maw(100%) P(0) D(n)!" aria-describedby="lightbox-container" role="alertdialog"></div><b class="ModalShim"></b><b class="IEShim"></b></div>
+ </div>
+ </div>
+ <div id="tgt1-Overlay-1-Nagbar-Proxy">
+ <!-- react-empty: 27 -->
+ </div>
+ <div id="tgt1-Overlay-2-VideoModal-Proxy">
+ <div class="tdv2-applet-video-modal video-modal H(100%) End(0) Bgc(tspr) Trs(vm) Bxz(bb) Bgc(#000) Start(0) Pos(f) Z(20) V(h) Op(0) T(100%) B(0)">
+ <div class="T(0) Pos(a) Start(0) End(0) B(0)"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="YDC-Lead" class="YDC-Lead">
+ <div id="YDC-Lead-Stack" class="YDC-Lead-Stack Z(1) Pos(r)">
+ <div>
+ <div id="tgt1-Lead-0-ComboAd-Proxy">
+ <div class="ads_wrapper Trs(ads-height)" style="margin-top: 30px; margin-bottom: 8px; height: 90px;">
+ <div>
+ <div>
+ <div id="modalLDRB-sizer" class="darla-container" style="margin-left: auto; margin-right: auto; text-align: center;">
+ <div id="modalLDRB-wrapper" class="">
+ <div id="sb_rel_modaldestLDRB" class="darla" style="position: relative; z-index: 9; width: 728px; height: 90px; visibility: inherit; display: inline-block; font-size: 0px;"><iframe style="position: absolute; z-index: 10; width: 728px; height: 90px; top: 0px; left: 0px; visibility: inherit; display: block;" id="modaldestLDRB" src="https://s.yimg.com/rq/darla/2-9-19/html/r-sf.html" async="" scrolling="no" allowtransparency="true" hidefocus="true" tabindex="-1" marginwidth="0" marginheight="0" frameborder="no"></iframe></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="M(a) W(100%) Pos(r) Bxsz(bb)" data-test-locator="article">
+ <div class="Cf Maw(635px) Miw(454px) Mend(395px) Mstart(150px) Mstart(137px)--modalMinWidth Mend(380px)--modalMinWidth Mstart(82px)!--modalFloatingCloseBtn">
+ <div id="YDC-Col1" class="YDC-Col1 Bxz(bb)">
+ <div id="YDC-Col1-Stack" class="YDC-Col1-Stack Z(2) Pos(r) Pt(40px) Pb(24px)">
+ <div>
+ <div id="tgt1-Col1-0-HeadComponentTitle-Proxy">
+ <header id="tgt1-Col1-0-HeadComponentTitle" class="canvas-header">
+ <h1 class="Lh(36px) Fz(25px)--sm Fz(32px) Mb(17px)--sm Mb(20px) Mb(30px)--lg Ff($ff-primary) Lts($lspacing-md) Fw($fweight) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) Wow(bw)">Russia: Space ship malfunctions, breaks up over Siberia</h1>
+ </header>
+ </div>
+ <div id="tgt1-Col1-1-HeadComponentAttribution-Proxy">
+ <div id="tgt1-Col1-1-HeadComponentAttribution" class="auth-attr W(100%) Mb(12px) Pos(r)">
+ <div class="auth-prov-logos D(tbc) Va(t)">
+ <div class="provider-logo D(tbc) Mah(45px) Mah(40px)--sm Va(m) Pend(10px)">
+ <a href="http://www.ap.org/" target="_blank" rel="noopener noreferrer nofollow"><img class="Trsdu(.42s) H(a) Mah(46px) Maw(46px) Mah(40px)--sm Maw(40px)--sm" title="Associated Press" src="https://s.yimg.com/uu/api/res/1.2/FKxSqKNwseSUq0sIlACj4Q--/YXBwaWQ9eXRhY2h5b24-/http://l.yimg.com/os/152/2012/04/21/image001-png_162613.png" width="auto" /></a>
+ </div>
+ </div>
+ <div class="auth-prov-soc Fz(14px) Mend(4px) Va(m) D(tbc) Mah(45px) Maw(320px) Mah(40px)--sm">
+ <div class="author Mb(4px) Mend(4px) D(ib)">
+ <div class="author-name C(#000) Fw(b) Fz(12px) Lh(18px) Mend(3px) Td(n)">NATALIYA VASILYEVA</div>
+ </div>
+ <div class="D(tbc)"><span class="provider Mb(4px) Pend(5px)"><span class="provider-link Fw(b)"><a class="C(#222) Fz(12px)" href="http://www.ap.org/" target="_blank" rel="noopener noreferrer nofollow">Associated Press</a></span></span><time class="date D(ib) Fz(11px) Mb(4px)" datetime="2016-12-01T23:29:49.000Z">December 2, 2016</time></div>
+ </div><button aria-label="Comment" class="canvas-modal-comments-button D(b) Px(0) Cur(p) O(n) canvas-attr-canvass-btn Pos(a) End(0) T(0)"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="20" height="20" viewBox="0 0 16 16" data-icon="comments" style="vertical-align: initial; fill: rgb(0, 0, 0); stroke: rgb(0, 0, 0); stroke-width: 0;"><path d="M14.002 10c0 .735-.625 1.333-1.395 1.333h-8.58l-2.028 1.892-.002-9.892C1.998 2.598 2.623 2 3.392 2h9.215c.77 0 1.395.598 1.395 1.333V10zM3.392.667C1.887.667.667 1.86.667 3.334v11.333c0 .265.157.505.4.61.085.038.176.056.266.056.165 0 .328-.062.453-.18l2.765-2.486h8.058c1.505 0 2.726-1.194 2.726-2.667V3.333c0-1.473-1.22-2.667-2.726-2.667H3.393zm7.947 4H4.68c-.367 0-.666.298-.666.667S4.314 6 4.682 6h6.657c.367 0 .665-.298.665-.666s-.298-.667-.666-.667zM4.68 7.333c-.367 0-.666.298-.666.667s.298.667.666.667h6.657c.367 0 .665-.3.665-.667s-.298-.667-.666-.667H4.68z"/></svg><span class="Fz(12px) Pos(r) Mstart(6px) B(6px) Fw(b) C(#000)"><!-- react-text: 66 -->11<!-- /react-text --><!-- react-text: 67 --> <!-- /react-text --><span>Comments</span></span></button></div>
+ </div>
+ <div id="tgt1-Col1-2-ContentCanvas-Proxy">
+ <div id="tgt1-Col1-2-ContentCanvas" class="content-canvas Bgc(#fff) Pos(r) P(20px)--sm Pt(17px)--sm">
+ <article data-uuid="8dd27580-6b4e-3cfb-a389-5b1ab90bd0eb" data-type="story">
+ <div class="canvas-atom Mb(24px) Mb(22px)--sm">
+ <div class="Pos(r) W(100%) Bgc(#212124) Pb(66%)">
+ <div class="Pos(a) Px(30px) Py(20px) P(0)--sm H(100%) W(100%) Bxz(bb)">
+ <div class="Pos(r) O(n):f" tabindex="2" style="height: 100%;">
+ <div id="modal-slideshow-8dd27580-6b4e-3cfb-a389-5b1ab90bd0eb" class="Pos(r) H(100%) slideshow-carousel">
+ <div class="Carousel-Mask Zoom Pos(r) js-mask H(100%) Ov(h) W(100%) ">
+ <ul class="Carousel-Slider Row M(0) P(0) Pos(r) Whs(nw) H(100%)">
+ <li class="Carousel-Item IbBox H(100%) Carousel-Item-Active" style="width: 100%;">
+ <div class="Pos(r) D(ib) H(100%) W(100%) M(0)">
+ <figure class="slideshow-figure D(b) H(100%) W(100%) M(0)"><img class="slideshow-image Maw(100%) Mah(100%) M(a) W(a) StretchedBox" src="https://s.yimg.com/ny/api/res/1.2/lNHGeC84b29OU62FMISl7g--/YXBwaWQ9aGlnaGxhbmRlcjtzbT0xO3c9ODAwO2g9NjAwO2lsPXBsYW5l/http://media.zenfs.com/en_us/News/ap_webfeeds/c9375de6acbf4c168be78ffe4ec71ea9.jpg" alt="In this photo dated Tuesday, Nov, 29, 2016 the Soyuz-FG rocket booster with the Progress MS-04 cargo ship is installed on a launch pad in Baikonur, Kazakhstan. The unmanned Russian cargo space ship Progress MS-04 broke up in the atmosphere over Siberia on Thursday Dec. 1, 2016, just minutes after the launch en route to the International Space Station due to an unspecified malfunction, the Russian space agency said.(Oleg Urusov/ Roscosmos Space Agency Press Service photo via AP)" /></figure>
+ </div>
+ </li>
+ <li class="Carousel-Item IbBox H(100%) Pos(a) V(h) Carousel-Item-Next" style="width: 100%; left: 100%;">
+ <div class="Pos(r) D(ib) H(100%) W(100%) M(0)">
+ <figure class="slideshow-figure D(b) H(100%) W(100%) M(0)"><img class="slideshow-image Maw(100%) Mah(100%) M(a) W(a) StretchedBox" src="https://s.yimg.com/ny/api/res/1.2/lweVDC7ZjZpHtU0S8gpbNA--/YXBwaWQ9aGlnaGxhbmRlcjtzbT0xO3c9ODAwO2g9NjAwO2lsPXBsYW5l/http://media.zenfs.com/en_us/News/ap_webfeeds/daa4cec687a64fff8c4060e11ee9e39d.jpg" alt="In this photo dated Tuesday, Nov, 29, 2016 the Soyuz-FG rocket booster with the Progress MS-04 cargo ship is installed on a launch pad in Baikonur, Kazakhstan. The unmanned Russian cargo space ship Progress MS-04 broke up in the atmosphere over Siberia on Thursday Dec. 1, 2016, en route to the International Space Station due to an unspecified malfunction, the Russian space agency said. (Sergei Sergeev/ Roscosmos Space Agency Press Service photo via AP)" /></figure>
+ </div>
+ </li>
+ <li class="Carousel-Item IbBox H(100%) Pos(a) V(h)" style="width: 100%; left: 200%;">
+ <div class="Pos(r) D(ib) H(100%) W(100%) M(0)">
+ <figure class="slideshow-figure D(b) H(100%) W(100%) M(0)"><img class="slideshow-image Maw(100%) Mah(100%) M(a) W(a) StretchedBox" src="https://s.yimg.com/ny/api/res/1.2/AE_dA6RMl8RF7SQmMQl_pw--/YXBwaWQ9aGlnaGxhbmRlcjtzbT0xO3c9ODAwO2g9NjAwO2lsPXBsYW5l/http://media.zenfs.com/en_us/News/gettyimages.com/day-seven-championships-wimbledon-2016-20160704-162516-521.jpg" alt="LONDON, ENGLAND - JULY 04: Kim Sears (Wife of Andy Murray of Great Britain) watches on from Centre court on day seven of the Wimbledon Lawn Tennis Championships at the All England Lawn Tennis and Croquet Club on July 4, 2016 in London, England. (Photo by Shaun Botterill/Getty Images)" /></figure>
+ </div>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ <a href="" class="D(tb) Ta(c) T(50%) Z(1) Pos(a) P(0) Bdw(0) O(n):f H(45px) W(45px) Mt(-22px) Bdrs(3px) Start(0) D(n)!">
+ <div class="H(100%) Va(m) D(tbc) Lh(1)"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="15" height="15" viewBox="0 0 32 32" data-icon="CoreArrowLeft" style="fill: rgb(255, 255, 255); stroke: rgb(255, 255, 255); stroke-width: 0; vertical-align: bottom;"><path d="M22.72.665c-.886-.887-2.323-.887-3.21 0L4.175 16 19.51 31.335c.442.443 1.023.665 1.604.665s1.162-.222 1.605-.665c.886-.887.886-2.324 0-3.21L10.596 16 22.72 3.876c.887-.887.887-2.324 0-3.21z"/></svg></div>
+ </a>
+ <a href="" class="D(tb) Ta(c) T(50%) Z(1) Pos(a) P(0) Bdw(0) O(n):f H(45px) W(45px) Mt(-22px) Bdrs(3px) End(0) Bgc(#444.8) Bgc(#444):h">
+ <div class="H(100%) Va(m) D(tbc) Lh(1) Cur(p)"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="15" height="15" viewBox="0 0 32 32" data-icon="CoreArrowRight" style="fill: rgb(255, 255, 255); stroke: rgb(255, 255, 255); stroke-width: 0; vertical-align: bottom;"><path d="M7.06.665c.887-.887 2.324-.887 3.21 0L25.606 16 10.27 31.335c-.442.443-1.023.665-1.604.665s-1.162-.222-1.605-.665c-.886-.887-.886-2.324 0-3.21L19.185 16 7.06 3.876c-.887-.887-.887-2.324 0-3.21z"/></svg></div>
+ </a>
+ </div>
+ <div class="Bdbc(#e8e8e8) Bdbs(s) Bdbw(1px)">
+ <div class="Pos(r) Lh(1.4) Fz(13px) Pb(10px) Pt(6px)">
+ <div class="Fw(500) Fz(19px) Mb(8px)"><span>1 / 5</span></div>
+ <div class="Pos(r) Ovy(h)" style="max-height: 76px;">
+ <div>
+ <h1 class="slideshow-headline Fw(700) Fz(13px) Mb(4px)">In this photo dated Tuesday, Nov, 29, 2016 the Soyuz-FG rocket booster with the Progress MS-04 cargo ship is installed on a launch pad in Baikonur, Kazakhstan. The unmanned Russian cargo space ship Progress MS-04 broke up in the atmosphere over Siberia on Thursday Dec. 1, 2016, just minutes after the launch en route to the International Space Station due to an unspecified malfunction, the Russian space agency said.(Oleg Urusov/ Roscosmos Space Agency Press Service photo via AP)</h1>
+ <div class="slideshow-description">In this photo dated Tuesday, Nov, 29, 2016 the Soyuz-FG rocket booster with the Progress MS-04 cargo ship is installed on a launch pad in Baikonur, Kazakhstan. The unmanned Russian cargo space ship Progress MS-04 broke up in the atmosphere over Siberia on Thursday Dec. 1, 2016, just minutes after the launch en route to the International Space Station due to an unspecified malfunction, the Russian space agency said.(Oleg Urusov/ Roscosmos Space Agency Press Service photo via AP)</div>
+ </div>
+ <div class="Pos(a) B(0) Start(0) W(100%)" style="height: 20px; background: transparent linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgb(255, 255, 255) 80%) repeat scroll 0% 0%;"></div>
+ </div><button class="C(#157cfb) Cur(p) W(100%) Ta(start) Fz(13px) P(0) Bd(0) O(0) O(n):f"><span>More</span></button></div>
+ </div>
+ </div>
+ <div class="canvas-body C(#26282a) Wow(bw) Cl(start) Mb(20px) Fz(15px) Lh(1.6) Ff($ff-secondary)">
+ <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text" style="letter-spacing: 0.01em;">MOSCOW (AP) — An unmanned Russian cargo spaceship heading to the International Space Station broke up in the atmosphere over Siberia on Thursday due to an unspecified malfunction, the Russian space agency said.</p>
+ <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text" style="letter-spacing: 0.01em;">The Progress MS-04 cargo craft broke up at an altitude of 190 kilometers (118 miles) over the remote Russian Tuva region in Siberia that borders Mongolia, Roscosmos said in a statement. It said most of spaceship's debris burnt up as it entered the atmosphere but some fell to Earth over what it called an uninhabited area.</p>
+ <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text" style="letter-spacing: 0.01em;">Local people reported seeing a flash of light and hearing a loud thud west of the regional capital of Kyzyl, more than 3,600 kilometers (2,200 miles) east of Moscow, the Tuva government was quoted as saying late Thursday by the Interfax news agency.</p>
+ <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text" style="letter-spacing: 0.01em;">The Progress cargo ship had lifted off as scheduled at 8:51 p.m. (1451 GMT) from Russia's space launch complex in Baikonur, Kazakhstan, to deliver 2.5 metric tons of fuel, water, food and other supplies. It was set to dock with the space station on Saturday.</p>
+ <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text" style="letter-spacing: 0.01em;">Roscosmos said the craft was operating normally before it stopped transmitting data 6 ½ minutes after the launch. The Russian space agency would not immediately describe the malfunction, saying its experts were looking into it.</p>
+ <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text" style="letter-spacing: 0.01em;">This is the third botched launch of a Russian spacecraft in two years. A Progress cargo ship plunged into the Pacific Ocean in May 2015, and a Proton-M rocket carrying an advanced satellite broke up in the atmosphere in May 2014.</p>
+ <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text" style="letter-spacing: 0.01em;">But both Roscosmos and NASA said the crash of the ship would have no impact on the operations of the orbiting space lab that is currently home to a six-member crew, including three cosmonauts from Russia, two NASA astronauts and one from the European Union.</p>
+ <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text" style="letter-spacing: 0.01em;">Orbital ATK, NASA's other shipper, successfully sent up supplies to the space station in October, and a Japanese cargo spaceship is scheduled to launch a full load in mid-December.</p>
+ <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text" style="letter-spacing: 0.01em;">NASA supplier SpaceX, meanwhile, has been grounded since a rocket explosion in September on the launch pad at Cape Canaveral, Florida. The company hopes to resume launches in December to deliver communication satellites.</p>
+ <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text" style="letter-spacing: 0.01em;">___</p>
+ <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text" style="letter-spacing: 0.01em;">This version corrects the spelling of the region to Tuva, not Tyva.</p>
+ <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text" style="letter-spacing: 0.01em;">__</p>
+ <p class="canvas-text Mb(1.0em) Mb(0)--sm Mt(0.8em)--sm canvas-atom" data-type="text" style="letter-spacing: 0.01em;">Aerospace Writer Marcia Dunn in Cape Canaveral, Florida, and Vladimir Isachenkov in Moscow contributed to this report.</p>
+ <div></div>
+ </div>
+ </article><span class="canvas-bottom-anchor-8dd27580-6b4e-3cfb-a389-5b1ab90bd0eb" aria-hidden="true"></span></div>
+ </div>
+ <div id="tgt1-Col1-3-CanvassComments-Proxy"><span></span></div>
+ <div id="tgt1-Col1-4-StorylineItem-Proxy">
+ <div class="canvas-pageview canvas-storyline-item-current H(1px)"><span class="canvas-bottom-anchor-8dd27580-6b4e-3cfb-a389-5b1ab90bd0eb" aria-hidden="true"></span></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="Pos(a) T(0) End(0) W(300px) Mt(45px) Mend(45px) Mend(30px)--modalMinWidth modalRight">
+ <div id="tgt1-Col2-0-AdBlockPromo-Proxy">
+ <!-- react-empty: 130 -->
+ </div>
+ <div id="tgt1-Col2-1-Ad-Proxy">
+ <div>
+ <div id="modalLREC-sizer" class="darla-container" style="margin-bottom: 20px;">
+ <div id="modalLREC-wrapper" class="">
+ <div id="sb_rel_modaldestLREC" class="darla" style="position: relative; z-index: 2; width: 300px; height: 250px; visibility: inherit; display: inline-block; font-size: 0px;"><iframe style="position: absolute; z-index: 3; width: 300px; height: 250px; top: 0px; left: 0px; visibility: inherit; display: block;" id="modaldestLREC" src="https://s.yimg.com/rq/darla/2-9-19/html/r-sf.html" async="" scrolling="no" allowtransparency="true" hidefocus="true" tabindex="-1" marginwidth="0" marginheight="0" frameborder="no"></iframe></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="tgt1-Col2-2-HeightContainer-Proxy">
+ <div id="tgt1-Col2-2-HeightContainer" class="YDC-Height-Container Ov(h) Trsp(max-height) Trsdu(.42s)" style="max-height: 1306px;">
+ <div>
+ <div id="tgt1-Col2-2-HeightContainer-0-Stream" class="tdv2-applet-stream Bdc(#e2e2e6)" style="max-width: 900px;">
+ <h2 class="C(#26282a) Fw(500) Fz(16px) Ff($ff-primary) Lh($lheight) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing)">What to Read Next</h2>
+ <ul class="Mb(0) Ov(h) P(0) Wow(bw)">
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured">
+ <div class="Pos(r)">
+ <div class="Pos(r)">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width: 600px;">
+ <div class="Trsdu(.42s) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom: 52%; background-image: url(&quot;https://s.yimg.com/ny/api/res/1.2/HSpCZCUBIJdJo1TDDpS9xg--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/Y7DhHdi52xtDqP9G2FwyEA--/dz04MDA7aD01MDI7YXBwaWQ9eXRhY2h5b24-/http://globalfinance.zenfs.com/images/US_AHTTP_REUTERS_OLUSTECH_WRAPPER_H_LIVE_NEW/2016-12-02T085130Z_1_LYNXMPECB10DT_RTROPTP_3_GERMANY_original.jpg&quot;);"></div>
+ </div>
+ <h3 class="M(0) Py(1px)"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/russia-says-foil-cyber-attack-080134916.html"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)">Russia says foreign spies plan cyber attack on banking system</span><u class="StretchedBox Z(1)"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)">
+ <div class="">Reuters</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)">
+ <div class="controller Feedback Pos(r)" data-beacon="" data-tp-beacon="">
+ <div class="Py(14px) smartphone_Px(20px) Pos(r) Ov(h) smartphone_Bxsh(streamBoxShadow)">
+ <div class="Mx(a)" style="max-width: 600px;">
+ <div class="Trsdu(.42s) Bdrs(2px) Bgz(cv) smartphone_Mx(0) Mb(6px) smartphone_Mb(12px) Trsdu(0s)!" style="padding-bottom: 52%; background-image: url(&quot;https://s.yimg.com/ny/api/res/1.2/ZLRNmypy69_xnyMGJzjanw--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/av/moneyball/ads/1476367816981-4689.jpg&quot;);"></div>
+ </div>
+ <h3 class="M(0) Py(1px)"><a rel="nofollow noopener noreferrer" class="Td(n) Fz(13px) C(#020e65) smartphone_C(#000) C(#0078ff):h LineClamp(4,96px) smartphone_Fz(19px)" target="_blank" href="https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=BYGJT9UGIS.ONtXmWlAgcWdoJJE9cvhJFIldeaakFRCvRBq5AbkWPszeIGEo6EnzIgitdcrgzLlIM7htYBdBz8DmCLeUWN4Nfx7RCMrBuhTK2g09WLKUMfuJ2Hf8kut1h_8duwW6xH0O3K666hI5beNtzWF6DcSM556RNPglaCg5Yx6z11d8XQlPY8rrof1XDA3wiksl_1urUvOR45jV73F931NiX7TaFqAbNtp7v4JTwrrwDsBWu2qsZp8CmrITzajmtYzuoL5JS2KJCgWE0.H2PmURgP8cCUca9JvT0MN2lDDZkdd0Wke4IvcWVVSvFajT0tFKCU87f4.5P13KZsEaeYTQhuCyAG7crEr6cYYYQCgUyDZgh02h2hAy_iBoQD3S801ZOY.b1amGFsCuSc3O2bECt08V9MkUDmXW_BVwxHNYp1aWMXHSWiR.hvrvep1pa08k9ejqTWaozIRKGZkHtjr8upDVG2EhV4XQrfgt0VTRiLefjJYuThJPtxPr6OO5ATD_cFiQfXg3a694jwYZd9QQmwZ71sRDLeGz_Ix0oHfzjwUyGF5GE3l.YembbQ7BvDSHUGYzBQVx2916NB0z0mR8NqpnHQ9gy6HO6WYZNsEcMakV3Ojbidg89.dkxB_nn5fb3Q--%26lp=http%3A%2F%2Fwww.ifcmarkets.com%2Fen%2Fforex-cfd-trading%3Futm_source%3Dyahoo%26utm_medium%3Dcpc%26utm_term%3D%26utm_content%3Dexcellent_new%26utm_campaign%3Denglish_native_asia"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)">IFC Markets. Forex &amp; CFD trading</span><u class="StretchedBox Z(1)"></u></a></h3>
+ <div class="Fz(11px) Pos(r) Z(2) Ell smartphone_Fz(13px)"><a class="Whs(nw) Mend(6px) Lh(1.6) C(#96989f)" rel="noopener noreferrer" target="_blank" href="https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=BYGJT9UGIS.ONtXmWlAgcWdoJJE9cvhJFIldeaakFRCvRBq5AbkWPszeIGEo6EnzIgitdcrgzLlIM7htYBdBz8DmCLeUWN4Nfx7RCMrBuhTK2g09WLKUMfuJ2Hf8kut1h_8duwW6xH0O3K666hI5beNtzWF6DcSM556RNPglaCg5Yx6z11d8XQlPY8rrof1XDA3wiksl_1urUvOR45jV73F931NiX7TaFqAbNtp7v4JTwrrwDsBWu2qsZp8CmrITzajmtYzuoL5JS2KJCgWE0.H2PmURgP8cCUca9JvT0MN2lDDZkdd0Wke4IvcWVVSvFajT0tFKCU87f4.5P13KZsEaeYTQhuCyAG7crEr6cYYYQCgUyDZgh02h2hAy_iBoQD3S801ZOY.b1amGFsCuSc3O2bECt08V9MkUDmXW_BVwxHNYp1aWMXHSWiR.hvrvep1pa08k9ejqTWaozIRKGZkHtjr8upDVG2EhV4XQrfgt0VTRiLefjJYuThJPtxPr6OO5ATD_cFiQfXg3a694jwYZd9QQmwZ71sRDLeGz_Ix0oHfzjwUyGF5GE3l.YembbQ7BvDSHUGYzBQVx2916NB0z0mR8NqpnHQ9gy6HO6WYZNsEcMakV3Ojbidg89.dkxB_nn5fb3Q--%26lp=http%3A%2F%2Fwww.ifcmarkets.com%2Fen%2Fforex-cfd-trading%3Futm_source%3Dyahoo%26utm_medium%3Dcpc%26utm_term%3D%26utm_content%3Dexcellent_new%26utm_campaign%3Denglish_native_asia">IFC Markets</a><span><a class="Mend(6px) C(#b9bdc5)" href="http://help.yahoo.com/kb/index?page=content&amp;y=PROD_FRONT&amp;locale=en_US&amp;id=SLN14553" rel="noopener noreferrer" target="_blank">Sponsored</a><a href="https://info.yahoo.com/privacy/us/yahoo/relevantads.html" target="_blank" rel="noopener noreferrer"><i class="Pos(r) T(3px)"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="15" height="15" viewBox="0 0 24 24" data-icon="sponsor" style="vertical-align: baseline; fill: rgb(185, 189, 197); stroke: rgb(185, 189, 197); stroke-width: 0;"><path d="M5.636 4.222c-.39-.39-1.023-.39-1.414 0s-.39 1.024 0 1.414l.707.707c.39.39 1.022.39 1.414 0 .39-.39.39-1.023 0-1.414l-.708-.708zM4.93 17.658l-.708.707c-.39.39-.39 1.023 0 1.414.39.39 1.023.39 1.414 0l.707-.708c.39-.39.39-1.024 0-1.414-.39-.39-1.023-.39-1.414 0zm14.14 0c-.39-.39-1.023-.39-1.413 0-.39.39-.39 1.023 0 1.414l.707.707c.39.39 1.024.39 1.414 0 .39-.392.39-1.025 0-1.415l-.707-.707zm0-11.315l.708-.707c.39-.39.39-1.023 0-1.414s-1.024-.39-1.414 0l-.707.707c-.39.39-.39 1.024 0 1.414.39.39 1.023.39 1.414 0zM22 11h-1c-.553 0-1 .448-1 1s.447 1 1 1h1c.552 0 1-.448 1-1s-.448-1-1-1zM10 9h5c.552 0 1-.448 1-1s-.448-1-1-1h-2c0-.55-.447-1-1-1s-1 .45-1 1H9.5C8.12 7 7 8.12 7 9.5v1C7 11.88 8.12 13 9.5 13H13c.552 0 1 .448 1 1s-.448 1-1 1H8c-.553 0-1 .448-1 1s.447 1 1 1h3c0 .55.447 1 1 1s1-.45 1-1h.5c1.38 0 2.5-1.12 2.5-2.5v-1c0-1.38-1.37-2.5-3-2.5h-3c-.553 0-1-.448-1-1s.447-1 1-1zm2-5c.553 0 1-.448 1-1V2c0-.552-.447-1-1-1s-1 .448-1 1v1c0 .552.447 1 1 1zm-9 7H2c-.553 0-1 .448-1 1s.447 1 1 1h1c.552 0 1-.448 1-1s-.448-1-1-1zm9 9c-.553 0-1 .448-1 1v1c0 .552.447 1 1 1s1-.448 1-1v-1c0-.552-.447-1-1-1z"/></svg></i></a></span></div>
+ </div>
+ <!-- react-text: 704 -->
+ <!-- /react-text -->
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured">
+ <div class="Pos(r)">
+ <div class="Pos(r)">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width: 600px;">
+ <div class="Trsdu(.42s) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom: 52%; background-image: url(&quot;https://s.yimg.com/ny/api/res/1.2/K0oNi86n3NmNc9JnX46kIQ--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/jcr9peDqhMbZ06yLer_L5w--/dz0yNTQ2O2g9MTY4NTthcHBpZD15dGFjaHlvbg--/http://media.zenfs.com/en_us/News/ap_webfeeds/972eb075dab5404fb594dc3ae27e9f44.jpg&quot;);"></div>
+ </div>
+ <h3 class="M(0) Py(1px)"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/eu-leader-expects-bloc-extend-sanctions-russia-2017-171403224.html"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)">EU leader expects bloc to extend sanctions on Russia in 2017</span><u class="StretchedBox Z(1)"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)">
+ <div class="">Associated Press</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured">
+ <div class="Pos(r)">
+ <div class="Pos(r)">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width: 600px;">
+ <div class="Trsdu(.42s) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom: 52%; background-image: url(&quot;https://s.yimg.com/ny/api/res/1.2/8O0Kl4MPlopxM_P_DsRT1g--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/p_kfVmSoJkb4E6V.vvUIcQ--/dz04MDA7aD01MjQ7YXBwaWQ9eXRhY2h5b24-/http://globalfinance.zenfs.com/images/US_AHTTP_REUTERS_OLUSBUS_WRAPPER_H_LIVE_NEW/2016-12-01T190655Z_2_LYNXMPECB02RN_RTROPTP_3_RUSSIA-PUTIN_original.jpg&quot;);"></div>
+ </div>
+ <h3 class="M(0) Py(1px)"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/exclusive-putin-khamenei-saudi-prince-151654290.html"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)">Exclusive: How Putin, Khamenei and Saudi prince got OPEC deal done</span><u class="StretchedBox Z(1)"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)">
+ <div class="">Reuters</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured">
+ <div class="Pos(r)">
+ <div class="Pos(r)">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width: 600px;">
+ <div class="Trsdu(.42s) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom: 52%; background-image: url(&quot;https://s.yimg.com/ny/api/res/1.2/.vFbQLHfREG9VX6ZvsfaVw--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/daQk565_ONazY.x1pjOYLw--/dz0xNDA3O2g9MTY2OTthcHBpZD15dGFjaHlvbg--/http://media.zenfs.com/en_us/Sports/ap/201612010601216970720&quot;);"></div>
+ </div>
+ <h3 class="M(0) Py(1px)"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/clean-athletes-still-waiting-prize-money-dopers-140511721--spt.html"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)">Clean athletes still waiting for prize money from dopers</span><u class="StretchedBox Z(1)"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)">
+ <div class="">The Associated Press</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured">
+ <div class="Pos(r)">
+ <div class="Pos(r)">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width: 600px;">
+ <div class="Trsdu(.42s) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom: 52%; background-image: url(&quot;https://s.yimg.com/ny/api/res/1.2/sdibVN7Mfd8q5IztiYuaOA--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/95qvq2jAjSuxLqjrBSxsvQ--/dz0yMDQ4O2g9MTIzMTthcHBpZD15dGFjaHlvbg--/http://globalfinance.zenfs.com/en_us/Finance/US_AFTP_SILICONALLEY_H_LIVE/The_USs_military_edge_over-2e89cd7f25a143e1acbdfaa5144cbfcc&quot;);"></div>
+ </div>
+ <h3 class="M(0) Py(1px)"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/uss-military-edge-over-russia-170101129.html"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)">The US's military edge over Russia and China has come down to one plane</span><u class="StretchedBox Z(1)"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)">
+ <div class="">Business Insider</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured">
+ <div class="Pos(r)">
+ <div class="Pos(r)">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width: 600px;">
+ <div class="Trsdu(.42s) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom: 52%; background-image: url(&quot;https://s.yimg.com/ny/api/res/1.2/hQtI3BPhTGIR585waR4sNQ--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/GcfF053sCyxL0ER0aV1aeA--/dz0yMDAwO2g9MTMzMzthcHBpZD15dGFjaHlvbg--/http://media.zenfs.com/en-US/homerun/people_218/cfec187ff1e69a537da1f3c99bcaa8ed&quot;);"></div>
+ </div>
+ <h3 class="M(0) Py(1px)"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/investigator-believes-sex-trafficking-could-165307931.html"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)">Investigator Believes Sex Trafficking Could Be Motive Behind Sherri Papini Kidnapping Case</span><u class="StretchedBox Z(1)"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)">
+ <div class="">People</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured">
+ <div class="Pos(r)">
+ <div class="Pos(r)">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width: 600px;">
+ <div class="Trsdu(.42s) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom: 52%; background-image: url(&quot;https://s.yimg.com/ny/api/res/1.2/AvvLmQDjSjLyXVoJ7elqlw--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/N51IQSdIlxcLcYiw_OoFIA--/dz0yMDAwO2g9MTMzNTthcHBpZD15dGFjaHlvbg--/https://media.zenfs.com/creatr-images/GLB/2016-11-21/cbf343d0-aff3-11e6-b2ea-63c6a5abfa8a_2016-11-21T072251Z_451939988_D1BEUOBKNJAB_RTRMADP_3_NORTH-DAKOTA-PIPELINE.jpeg&quot;);"></div><span class="Trsdu(.42s) StretchedBox M(a) lightweight_D(n) Trsdu(0s)!" style="height: 50px; width: 50px; background-size: 50px auto; background-image: url(&quot;https://s.yimg.com/dh/ap/default/150604/orb.png&quot;);"><svg xmlns="http://www.w3.org/2000/svg" class="D(b) Pos(r) Cur(p)" width="20" height="20" viewBox="0 0 48 48" data-icon="gallery" style="left: 15px; top: 15px; fill: rgb(255, 255, 255); stroke: rgb(255, 255, 255); stroke-width: 0; vertical-align: bottom;"><path d="M46.135 6.15h-34.92c-1.07 0-1.94.87-1.94 1.94V36.22h36.86c1.072 0 1.94-.87 1.94-1.94V8.09c0-1.07-.868-1.94-1.94-1.94zm-1.94 26.192h-31.04V10.03h31.04v22.312zM38.375 40.102H5.395V15.85c0-1.07-.87-1.94-1.94-1.94-1.07 0-1.94.87-1.94 1.94v26.19c0 1.07.87 1.94 1.94 1.94h34.92c1.07 0 1.94-.87 1.94-1.94 0-1.07-.87-1.938-1.94-1.938z"/></svg></span></div>
+ <h3 class="M(0) Py(1px)"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/protesting-north-dakota-pipeline-153348604.html"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)">Protesting the Dakota Access pipeline</span><u class="StretchedBox Z(1)"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)">
+ <div class="">Yahoo News Photo Staff</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured">
+ <div class="Pos(r)">
+ <div class="Pos(r)">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width: 600px;">
+ <div class="Trsdu(.42s) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom: 52%; background-image: url(&quot;https://s.yimg.com/ny/api/res/1.2/Fp8r_eODultyFMaDdg5l7A--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/Ly1vh367zKSZDBmCKQ2RSA--/dz0xMTk3O2g9OTAwO2FwcGlkPXl0YWNoeW9u/http://globalfinance.zenfs.com/en_us/Finance/US_AFTP_SILICONALLEY_H_LIVE/Pluto_is_hiding_a_gigantic-574ed841807f2b3dc2774f5378de3f2f&quot;);"></div>
+ </div>
+ <h3 class="M(0) Py(1px)"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/pluto-hiding-gigantic-liquid-ocean-215038275.html"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)">Pluto is hiding a gigantic liquid ocean you would never, ever want to swim in</span><u class="StretchedBox Z(1)"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)">
+ <div class="">Business Insider</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured">
+ <div class="Pos(r)">
+ <div class="Pos(r)">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width: 600px;">
+ <div class="Trsdu(.42s) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom: 52%; background-image: url(&quot;https://s.yimg.com/ny/api/res/1.2/SUWHS9ZxcTwgJBHHen_RPg--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/M.wbkg1Vc38qELD7hPFA3g--/dz0xMjgwO2g9NzIwO2FwcGlkPXl0YWNoeW9u/https://s.yimg.com/uu/api/res/1.2/2ZFT8bStScuyOuVzSSCrkw--/dz0xMjgwO2g9NzIwO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/0878dbb1518eb4ebba4e1aaba8596f60&quot;);"></div><span class="Trsdu(.42s) StretchedBox M(a) lightweight_D(n) Trsdu(0s)!" style="height: 50px; width: 50px; background-size: 50px auto; background-image: url(&quot;https://s.yimg.com/dh/ap/default/150604/orb.png&quot;);"><svg xmlns="http://www.w3.org/2000/svg" class="D(b) Pos(r) Mstart(2px) Cur(p)" width="20" height="20" viewBox="0 0 512 512" data-icon="CorePlay" style="left: 15px; top: 15px; fill: rgb(255, 255, 255); stroke: rgb(255, 255, 255); stroke-width: 0; vertical-align: bottom;"><path d="M82.294 490.295c-20.327 11.736-36.952 2.14-36.952-21.332V42.295c0-23.472 16.632-33.055 36.952-21.332L451.67 234.295c20.318 11.75 20.318 30.945 0 42.682L82.294 490.295z"/></svg></span></div>
+ <h3 class="M(0) Py(1px)"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/video/selena-gomez-queen-instagram-062803976.html"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)">Selena Gomez Is the Queen of Instagram</span><u class="StretchedBox Z(1)"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)">
+ <div class="">ABC News Videos</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured">
+ <div class="Pos(r)">
+ <div class="Pos(r)">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width: 600px;">
+ <div class="Trsdu(.42s) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom: 52%; background-image: url(&quot;https://s.yimg.com/ny/api/res/1.2/7l8_GWt.lNbS8lnBEtR2YA--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/bjso2pHdx4F2VVKlOKvVKQ--/dz0xMjAwO2g9NzQ1O2FwcGlkPXl0YWNoeW9u/https://media.zenfs.com/creatr-images/GLB/2016-11-30/c4347cc0-b711-11e6-8de1-eb385808a9c0_GettyImages-89071032.jpg&quot;);"></div>
+ </div>
+ <h3 class="M(0) Py(1px)"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/style/law-student-denied-entry-to-campus-because-her-skirt-was-not-long-enough-152355275.html"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)">Law Student Denied Entry to Campus Because Her Skirt Was ‘Not Long Enough’</span><u class="StretchedBox Z(1)"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)">
+ <div class="">Yahoo Style</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured">
+ <div class="Pos(r)">
+ <div class="Pos(r)">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width: 600px;">
+ <div class="Trsdu(.42s) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom: 52%; background-image: url(&quot;https://s.yimg.com/ny/api/res/1.2/l7rwpbdqYZVb1A8sdCEwqw--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/h7BR7pCOrckq8yfUMB2QFw--/dz0yMDAwO2g9MTMzMzthcHBpZD15dGFjaHlvbg--/http://media.zenfs.com/en-US/homerun/people_218/74ea7bb427fa242811b13fc925262b8d&quot;);"></div>
+ </div>
+ <h3 class="M(0) Py(1px)"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/kansas-police-set-wildlife-cameras-170020739.html"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)">Kansas Police Set Up Wildlife Cameras to Catch a Mountain Lion – This Is What They Got Instead!</span><u class="StretchedBox Z(1)"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)">
+ <div class="">People</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured">
+ <div class="Pos(r)">
+ <div class="Pos(r)">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width: 600px;">
+ <div class="Trsdu(.42s) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom: 52%; background-image: url(&quot;https://s.yimg.com/ny/api/res/1.2/uIdmGLxOkOcDY4dyxI5APw--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/6Mrl3BSfdfypOp.PxaxflA--/dz01MzAwO2g9MzYxNzthcHBpZD15dGFjaHlvbg--/https://media.zenfs.com/creatr-images/GLB/2016-12-01/64c09c20-b814-11e6-914d-b5ce7dec3223_GettyImages-627024488.jpg&quot;);"></div>
+ </div>
+ <h3 class="M(0) Py(1px)"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/what-just-happened-with-carrier-is-crazy-223106708.html"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)">What just happened with Carrier is crazy</span><u class="StretchedBox Z(1)"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)">
+ <div class="">Yahoo Finance</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured">
+ <div class="Pos(r)">
+ <div class="Pos(r)">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width: 600px;">
+ <div class="Trsdu(.42s) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom: 52%; background-image: url(&quot;https://s.yimg.com/ny/api/res/1.2/q3Dx9bG7IesKBTDM7G94wA--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/t4IIpcgSgFrPaoxyHBetkQ--/dz0xMjgwO2g9ODUzO2FwcGlkPXl0YWNoeW9u/https://media.zenfs.com/creatr-images/GLB/2016-11-16/8579aa90-ac3b-11e6-b69b-19fd81771288_001-_AP_16321683571399.jpg&quot;);"></div><span class="Trsdu(.42s) StretchedBox M(a) lightweight_D(n) Trsdu(0s)!" style="height: 50px; width: 50px; background-size: 50px auto; background-image: url(&quot;https://s.yimg.com/dh/ap/default/150604/orb.png&quot;);"><svg xmlns="http://www.w3.org/2000/svg" class="D(b) Pos(r) Cur(p)" width="20" height="20" viewBox="0 0 48 48" data-icon="gallery" style="left: 15px; top: 15px; fill: rgb(255, 255, 255); stroke: rgb(255, 255, 255); stroke-width: 0; vertical-align: bottom;"><path d="M46.135 6.15h-34.92c-1.07 0-1.94.87-1.94 1.94V36.22h36.86c1.072 0 1.94-.87 1.94-1.94V8.09c0-1.07-.868-1.94-1.94-1.94zm-1.94 26.192h-31.04V10.03h31.04v22.312zM38.375 40.102H5.395V15.85c0-1.07-.87-1.94-1.94-1.94-1.07 0-1.94.87-1.94 1.94v26.19c0 1.07.87 1.94 1.94 1.94h34.92c1.07 0 1.94-.87 1.94-1.94 0-1.07-.87-1.938-1.94-1.938z"/></svg></span></div>
+ <h3 class="M(0) Py(1px)"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/warplanes-pound-aleppo-195030140.html"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)">Warplanes pound Aleppo – Dozens dead</span><u class="StretchedBox Z(1)"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)">
+ <div class="">Yahoo News Photo Staff</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured">
+ <div class="Pos(r)">
+ <div class="Pos(r)">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width: 600px;">
+ <div class="Trsdu(.42s) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom: 52%; background-image: url(&quot;https://s.yimg.com/ny/api/res/1.2/FviiQNMKvKbYjFL2kICZ_A--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/UGrO1T2pZexyNGbJQupwmQ--/dz0xMDI0O2g9ODg1O2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/News/afp.com/489a7087f4ae36aceca5c39b72a2ab95e93a2841.jpg&quot;);"></div>
+ </div>
+ <h3 class="M(0) Py(1px)"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/us-astronaut-buzz-aldrin-medically-evacuated-south-pole-142043631.html"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)">Moonwalker Buzz Aldrin medically evacuated from South Pole</span><u class="StretchedBox Z(1)"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)">
+ <div class="">AFP</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured">
+ <div class="Pos(r)">
+ <div class="Pos(r)">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width: 600px;">
+ <div class="Trsdu(.42s) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom: 52%; background-image: url(&quot;https://s.yimg.com/ny/api/res/1.2/4H4POQjPzi78rqzMA569Ew--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/ikf4Byuryni6aUpPM9vIYg--/dz0xMjgwO2g9NzIwO2FwcGlkPXl0YWNoeW9u/https://s.yimg.com/uu/api/res/1.2/dFeXCk.TfbKm8umDAIBFHQ--/dz0xMjgwO2g9NzIwO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/6d08983a6a74b4dcf6e222cfac95cbd7&quot;);"></div><span class="Trsdu(.42s) StretchedBox M(a) lightweight_D(n) Trsdu(0s)!" style="height: 50px; width: 50px; background-size: 50px auto; background-image: url(&quot;https://s.yimg.com/dh/ap/default/150604/orb.png&quot;);"><svg xmlns="http://www.w3.org/2000/svg" class="D(b) Pos(r) Mstart(2px) Cur(p)" width="20" height="20" viewBox="0 0 512 512" data-icon="CorePlay" style="left: 15px; top: 15px; fill: rgb(255, 255, 255); stroke: rgb(255, 255, 255); stroke-width: 0; vertical-align: bottom;"><path d="M82.294 490.295c-20.327 11.736-36.952 2.14-36.952-21.332V42.295c0-23.472 16.632-33.055 36.952-21.332L451.67 234.295c20.318 11.75 20.318 30.945 0 42.682L82.294 490.295z"/></svg></span></div>
+ <h3 class="M(0) Py(1px)"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/video/leah-remini-why-she-made-062445194.html"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)">Leah Remini on Why She Made Her 'Scientology and the Aftermath' Series</span><u class="StretchedBox Z(1)"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)">
+ <div class="">ABC News Videos</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="tgt1-Col2-3-Ad-Proxy">
+ <div>
+ <div id="modalLREC2-1-sizer" class="darla-container D-n D(n)">
+ <div id="modalLREC2-1-wrapper" class="">
+ <div id="modaldestLREC2-1" style=""></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="tgt1-Col2-4-DockedAds-Proxy">
+ <div class="ad-wrapper D(n)">
+ <div>
+ <div style="height: 250px;">
+ <div>
+ <div>
+ <div id="modalLREC2-4-sizer" class="darla-container D-n D(n)">
+ <div id="modalLREC2-4-wrapper" class="">
+ <div id="modaldestLREC2-4" style=""></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div>
+ <div class="mini-jtd Pos(r) W(300px) Mb(25px)"><span><div class="Pos(a) T(10px) Start(5px) End(5px) H(128px) Bdrs(2px) Bxsh(jtdCardShadow) Bdw(1px) Bdc(#d9d9d9) Bds(s) Bxz(bb) Bgc(#ffffff)"></div></span>
+ <div id="tgt1-Col2-4-DockedAds-1-DiscussionCarousel" class="Pos(r) H(133px)"><span><div class="Px(14px) Pt(12px) Pb(10px) Pos(a) H(100%) W(100%) Bdrs(2px) Bxsh(jtdCardShadow) Bdw(1px) Bdc(#d9d9d9) Bds(s) Bxz(bb) Bgc(#ffffff)"><div class="Pos(r) H(45px) Mb(7px) Cf"><div class="Fl(start) Pos(r) Z(1) W(45px) Pend(9px)"><a class="D(b) H(0) Ov(h) Bdrs(2px)" href="/news/tom-ford-on-dressing-melania-trump-shes-not-necessarily-my-image-002238208.html?.tsrc=jtc_news_article" style="padding-bottom: 100%;"><img class="Trsdu(.42s) W(100%)" src="https://s.yimg.com/uu/api/res/1.2/JJzKP5p68JZVB1jJIbzsXQ--/Zmk9c3RyaW07aD05MDtweW9mZj0wO3E9ODA7dz05MDtzbT0xO2FwcGlkPXl0YWNoeW9u/https://media.zenfs.com/creatr-images/GLB/2016-12-01/98baf690-b75d-11e6-b4d7-7549993b31c7_9c8af290-a06d-11e6-bdfd-4ddc0a732700_ford.gif" style="" /></a></div><div class="Ov(h) Pt(6px)"><h3 class="Mb(5px)"><a class="Td(n)" href="/news/tom-ford-on-dressing-melania-trump-shes-not-necessarily-my-image-002238208.html?.tsrc=jtc_news_article"><u class="StretchedBox"></u><div class="Fw(b) Fz(13px) Lh(16px) LineClamp(2,32px) Pos(r) C(#0078ff)">Tom Ford on Dressing Melania Trump: 'She's Not Necessarily My Image'</div></a></h3></div></div><div class="Pos(r) H(28px) Mb(7px) Cf"><div class="Fl(start) Pos(r) W(32px)"><a href="/news/tom-ford-on-dressing-melania-trump-shes-not-necessarily-my-image-002238208.html?.tsrc=jtc_news_article"><ul class="Pos(r) H(25px) W(32px)"><li class="Pos(a)" style="left: -4px; transform: scale(0.76);"><img class="Trsdu(.42s) W(25px) H(25px) Bdrs(50%) Bdw(2px) Bdc(#ffffff) Bds(s) Bxz(bb)" src="https://s.yimg.com/dg/users/1VVImoX-WAAAC7-L_VCY=.large.png" style="" /></li><li class="Pos(a)" style="left: 2px; transform: scale(0.88);"><img class="Trsdu(.42s) W(25px) H(25px) Bdrs(50%) Bdw(2px) Bdc(#ffffff) Bds(s) Bxz(bb)" src="https://s.yimg.com/wv/images/alphatar_100x100_L_ad.jpg" style="" /></li><li class="Pos(a)" style="left: 8px; transform: scale(1);"><img class="Trsdu(.42s) W(25px) H(25px) Bdrs(50%) Bdw(2px) Bdc(#ffffff) Bds(s) Bxz(bb)" src="https://s.yimg.com/wv/images/alphatar_100x100_Y_jl.jpg" style="" /></li></ul></a></div><div class="Ov(h) Pstart(4px)"><a class="Td(n)" href="/news/tom-ford-on-dressing-melania-trump-shes-not-necessarily-my-image-002238208.html?.tsrc=jtc_news_article"><u class="StretchedBox"></u><p class="C(#000) Fz(12px) Lh(14px) LineClamp(2,28px)"><span class="Fw(b)">43101: </span><span>Tom Ford just lost my business. Bye</span></p>
+ </a>
+ </div>
+ </div>
+ <div class="Pos(r) Cf Bdtw(1px) Bdtc(#d9d9d9) Bdts(s) Pt(6px)"><a class="Fl(start) Fz(12px) Fw(b) Td(n) C(#0078ff) Pt(2px)" href="/news/tom-ford-on-dressing-melania-trump-shes-not-necessarily-my-image-002238208.html?.tsrc=jtc_news_article">Join the Conversation</a>
+ <div class="Fl(end) C(#878c9b) Fw(b)"><button class="jtdBtnPrev Lh(12px) Px(5px) Py(2px)"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="12" height="12" viewBox="0 0 32 32" data-icon="CoreArrowLeft" style="fill: rgb(135, 140, 155); stroke: rgb(135, 140, 155); stroke-width: 0; vertical-align: bottom;"><path d="M22.72.665c-.886-.887-2.323-.887-3.21 0L4.175 16 19.51 31.335c.442.443 1.023.665 1.604.665s1.162-.222 1.605-.665c.886-.887.886-2.324 0-3.21L10.596 16 22.72 3.876c.887-.887.887-2.324 0-3.21z"/></svg></button><span class="Pos(r) Fz(11px) T(-2px)"><!-- react-text: 601 -->1<!-- /react-text --><!-- react-text: 602 --> / <!-- /react-text --><!-- react-text: 603 -->5<!-- /react-text --></span><button class="jtdBtnNext Lh(12px) Px(5px) Py(2px)"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="12" height="12" viewBox="0 0 32 32" data-icon="CoreArrowRight" style="fill: rgb(135, 140, 155); stroke: rgb(135, 140, 155); stroke-width: 0; vertical-align: bottom;"><path d="M7.06.665c.887-.887 2.324-.887 3.21 0L25.606 16 10.27 31.335c-.442.443-1.023.665-1.604.665s-1.162-.222-1.605-.665c-.886-.887-.886-2.324 0-3.21L19.185 16 7.06 3.876c-.887-.887-.887-2.324 0-3.21z"/></svg></button></div>
+ </div>
+ <div class="Pos(a) T(-8px) End(-10px) W(39px) H(39px) Bg(commentBubbleImg) Bgz(39px,39px)"><a href="/news/tom-ford-on-dressing-melania-trump-shes-not-necessarily-my-image-002238208.html?.tsrc=jtc_news_article"><u class="StretchedBox"></u></a>
+ <p class="Fz(11px) Fw(b) C(#ffffff) Lts(0) Ta(c) Mt(4px)">3.5k</p>
+ <div class="W(18px) H(6px) Bg(typingIcon) Bgz(18px,6px) Mstart(10px)"></div>
+ </div>
+ </div>
+ </span>
+ </div>
+ </div>
+ <div>
+ <div id="modalLREC3-4-sizer" class="darla-container D-n D(n)">
+ <div id="modalLREC3-4-wrapper" class="">
+ <div id="modaldestLREC3-4" style=""></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="CompanionSlot T(42px) Start(43px) Pos(a) W(79px) Ov(h) Start(30px)--modalMinWidth">
+ <div id="tgt1-Companion-0-CanvasShareButtons-Proxy">
+ <div class="canvas-share-buttons Bgc(#fff) modal-side-sharebuttons Mstart(-10px)"><button aria-label="Comment" class="canvas-modal-comments-button D(b) Px(0) Cur(p) O(n) Ta(c) W(100%) H(40px)"><svg xmlns="http://www.w3.org/2000/svg" class="Pos(a) T(4px) Start(0) Cur(p)" width="20" height="20" viewBox="0 0 16 16" data-icon="comments" style="vertical-align: initial; fill: rgb(24, 143, 255); stroke: rgb(24, 143, 255); stroke-width: 0;"><path d="M14.002 10c0 .735-.625 1.333-1.395 1.333h-8.58l-2.028 1.892-.002-9.892C1.998 2.598 2.623 2 3.392 2h9.215c.77 0 1.395.598 1.395 1.333V10zM3.392.667C1.887.667.667 1.86.667 3.334v11.333c0 .265.157.505.4.61.085.038.176.056.266.056.165 0 .328-.062.453-.18l2.765-2.486h8.058c1.505 0 2.726-1.194 2.726-2.667V3.333c0-1.473-1.22-2.667-2.726-2.667H3.393zm7.947 4H4.68c-.367 0-.666.298-.666.667S4.314 6 4.682 6h6.657c.367 0 .665-.298.665-.666s-.298-.667-.666-.667zM4.68 7.333c-.367 0-.666.298-.666.667s.298.667.666.667h6.657c.367 0 .665-.3.665-.667s-.298-.667-.666-.667H4.68z"/></svg><span class="Fz(12px) Pos(r) Pos(a)! T(6px) End(0px) D(n)--modalFloatingCloseBtn C(#000)">Comment</span></button>
+ <div class="canvas-modal-like-button W(100%) H(32px) Ta(c) D(ib) lightweight_D(n)"><button aria-label="Like" class="O(n) H(32px) NoJs_D(n) Bd(0) M(0) P(0) Va(m) desktop_W(100%) Pos(r)" href="#"><svg xmlns="http://www.w3.org/2000/svg" class="Pos(a) T(3px) Start(10px) Cur(p)" width="20" height="20" viewBox="0 0 48 48" data-icon="favorite" style="fill: rgb(242, 51, 71); stroke: rgb(242, 51, 71); stroke-width: 0; vertical-align: bottom;"><path d="M34.055 8.48c1.928 0 3.747.8 5.127 2.256 2.914 3.076 2.914 8.08.002 11.155L24 37.87 8.824 21.897c-2.916-3.08-2.918-8.085-.002-11.163 1.377-1.455 3.197-2.256 5.13-2.256 1.606 0 3.427 0 7.267 4.512L24 16.254l2.78-3.265c3.842-4.51 5.665-4.51 7.275-4.51m0-3.653c-3.123 0-5.84.848-10.055 5.797-4.266-5.01-6.984-5.797-10.05-5.797-2.945 0-5.706 1.208-7.78 3.398-4.227 4.458-4.227 11.72.002 16.184L24 43.173l17.832-18.77c4.225-4.46 4.225-11.722 0-16.18-2.073-2.19-4.836-3.397-7.777-3.397"/></svg><b class="C(#000) C(#188fff)!:h Lh(1.3em) Fz(12px) Whs(n) Pos(a) Start(36px) W(100%) T(5px)! O(n)! Ta(start) D(n)--modalFloatingCloseBtn">Like</b></button></div>
+ <div class="W(100%)!" style="-moz-user-select: none; cursor: default; z-index: 2; text-align: center; width: 40px;"><button data-sharetype="tumblr" data-ylk="elm:share;itc:0;sec:hl-viewer;outcm:share;rspns:op;slk:Tumblr;cpos:1;uuid:8dd27580-6b4e-3cfb-a389-5b1ab90bd0eb;tar:www.tumblr.com;tar_uri:/widgets/share/tool?posttype=photo&amp;content=https%3A%2F%2Fs.yimg.com%2Fuu%2Fapi%2Fres%2F1.2%2FHg9E8aICVMWLt87eYh4PLA--%2FaD0xMzM0O3c9MjAwMDtzbT0xO2FwcGlkPXl0YWNoeW9u%2Fhttp%3A%2F%2Fmedia.zenfs.com%2Fen_us%2FNews%2Fap_webfeeds%2Fc9375de6acbf4c168be78ffe4ec71ea9.jpg&amp;url=https%3A%2F%2Fwww.yahoo.com%2Fnews%2Frussian-supply-ship-launched-international-space-station-150638637.html%3Fsoc_src%3Dhl-viewer%26soc_trk%3Dtu&amp;clickthroughUrl=https%3A%2F%2Fwww.yahoo.com%2Fnews%2Frussian-supply-ship-launched-international-space-station-150638637.html%3Fsoc_src%3Dhl-viewer%26soc_trk%3Dtu&amp;caption=MOSCOW%20(AP)%20%E2%80%94%20An%20unmanned%20Russian%20cargo%20spaceship%20heading%20to%20the%20International%20Space%20Station%20broke%20up%20in%20the%20atmosphere%20over%20Siberia%20on%20Thursday%20due%20to%20an%20unspecified%20malfunction%2C%20the%20Russian%20space%20agency%20said.&amp;tags=" aria-label="Tumblr" class="active ButtonNaked D(b) My(0) nofollow O(0) Ov(v) P(0) Pos(r) rapid-noclick-resp Va(b) tumblr react-button" style="width: 100%; height: 45px; margin-right: 0px; border-radius: 0px; border-width: 0px; max-width: 100%; min-width: 40px; max-height: 40px; min-height: 40px; background-color: rgb(255, 255, 255); color: rgb(60, 90, 119); border-color: rgb(60, 90, 119);"><svg xmlns="http://www.w3.org/2000/svg" class="D(b) M(a) Pos(a) T(10px) Start(10px) Cur(p)" width="20" height="20" viewBox="0 0 32 32" data-icon="LogoTumblr" style="fill: rgb(60, 90, 119); stroke: rgb(60, 90, 119); stroke-width: 0; vertical-align: bottom;"><path d="M20.685 25.83c-1.493 0-3.54-.91-3.54-1.516V13.482h6.844V8.735h-6.846V1.6h-3.917c-.1 1.815-.645 3.45-1.482 4.702-.384.573-.827 1.066-1.32 1.45-.794.625-1.71.983-2.682.983h-.605v4.747h3.285V25.2c0 4.428 3.973 5.218 6.71 5.2.62-.007 1.18 0 1.785 0 4.18 0 4.98-.387 5.944-.9v-5.077c-.006.003-.013.013-.02.016-1.205.773-2.668 1.39-4.157 1.39z"/></svg><div class="share-info-wrapper Pos(a) W(a) Py(0) Whs(nw) Cur(p) Lh(1) D(ib) Ta(start) Pstart(0)" style="background: rgb(255, 255, 255) none repeat scroll 0% 0%; height: 45px; min-width: 50px; left: 45px; top: 0px;"><span class="Pos(r) Fw(b) Ff(ss) Lh(1) Lts(.02em) Fw(n) Fz(14px) Fz(12px)! T(11px)! End(9px) C(#188fff)!:h D(n)--modalFloatingCloseBtn" style="color: rgb(0, 0, 0); top: 14px;">Reblog</span></div></button><button data-sharetype="facebook" data-ylk="elm:share;itc:0;sec:hl-viewer;outcm:share;rspns:op;slk:Facebook;cpos:2;uuid:8dd27580-6b4e-3cfb-a389-5b1ab90bd0eb;tar:www.facebook.com;tar_uri:/dialog/feed?app_id=90376669494&amp;link=https%3A%2F%2Fwww.yahoo.com%2Fnews%2Frussian-supply-ship-launched-international-space-station-150638637.html%3Fsoc_src%3Dhl-viewer%26soc_trk%3Dfb&amp;name=Russia%3A%20Space%20ship%20malfunctions%2C%20breaks%20up%20over%20Siberia&amp;description=MOSCOW%20(AP)%20%E2%80%94%20An%20unmanned%20Russian%20cargo%20spaceship%20heading%20to%20the%20International%20Space%20Station%20broke%20up%20in%20the%20atmosphere%20over%20Siberia%20on%20Thursday%20due%20to%20an%20unspecified%20malfunction%2C%20the%20Russian%20space%20agency%20said.&amp;picture=https%3A%2F%2Fs.yimg.com%2Fuu%2Fapi%2Fres%2F1.2%2FHg9E8aICVMWLt87eYh4PLA--%2FaD0xMzM0O3c9MjAwMDtzbT0xO2FwcGlkPXl0YWNoeW9u%2Fhttp%3A%2F%2Fmedia.zenfs.com%2Fen_us%2FNews%2Fap_webfeeds%2Fc9375de6acbf4c168be78ffe4ec71ea9.jpg&amp;redirect_uri=https%3A%2F%2Fwww.yahoo.com%2Fnews%2Fmediacontentsharebuttons%2Fpostshare%2F&amp;display=popup&amp;show_error=yes" aria-label="Facebook" class="active ButtonNaked D(b) My(0) nofollow O(0) Ov(v) P(0) Pos(r) rapid-noclick-resp Va(b) facebook react-button" style="width: 100%; height: 45px; margin-right: 0px; border-radius: 0px; border-width: 0px; max-width: 100%; min-width: 40px; max-height: 40px; min-height: 40px; background-color: rgb(255, 255, 255); color: rgb(71, 97, 166); border-color: rgb(71, 97, 166);"><svg xmlns="http://www.w3.org/2000/svg" class="D(b) M(a) Pos(a) T(10px) Start(10px) Cur(p)" width="20" height="20" viewBox="0 0 32 32" data-icon="LogoFacebook" style="fill: rgb(71, 97, 166); stroke: rgb(71, 97, 166); stroke-width: 0; vertical-align: bottom;"><path d="M12.752 30.4V16.888H9.365V12.02h3.387V7.865c0-3.264 2.002-6.264 6.613-6.264 1.866 0 3.248.19 3.248.19l-.11 4.54s-1.404-.013-2.943-.013c-1.66 0-1.93.81-1.93 2.152v3.553h5.008l-.22 4.867h-4.786V30.4h-4.88z"/></svg><div class="share-info-wrapper Pos(a) W(a) Py(0) Whs(nw) Cur(p) Lh(1) D(ib) Ta(start) Pstart(0)" style="background: rgb(255, 255, 255) none repeat scroll 0% 0%; height: 45px; min-width: 50px; left: 45px; top: 0px;"><span class="Pos(r) Fw(b) Ff(ss) Lh(1) Lts(.02em) Fw(n) Fz(14px) Fz(12px)! T(11px)! End(9px) C(#188fff)!:h D(n)--modalFloatingCloseBtn" style="color: rgb(0, 0, 0); top: 14px;">Share</span></div></button><button data-sharetype="twitter" data-ylk="elm:share;itc:0;sec:hl-viewer;outcm:share;rspns:op;slk:Twitter;cpos:3;uuid:8dd27580-6b4e-3cfb-a389-5b1ab90bd0eb;tar:twitter.com;tar_uri:/intent/tweet?text=Russia%3A%20Space%20ship%20malfunctions%2C%20breaks%20up%20over%20Siberia&amp;url=https%3A%2F%2Fwww.yahoo.com%2Fnews%2Frussian-supply-ship-launched-international-space-station-150638637.html%3Fsoc_src%3Dhl-viewer%26soc_trk%3Dtw&amp;via=YahooNews" aria-label="Twitter" class="active ButtonNaked D(b) My(0) nofollow O(0) Ov(v) P(0) Pos(r) rapid-noclick-resp Va(b) twitter react-button" style="width: 100%; height: 45px; margin-right: 0px; border-radius: 0px; border-width: 0px; max-width: 100%; min-width: 40px; max-height: 40px; min-height: 40px; background-color: rgb(255, 255, 255); color: rgb(0, 172, 235); border-color: rgb(0, 172, 235);"><svg xmlns="http://www.w3.org/2000/svg" class="D(b) M(a) Pos(a) T(10px) Start(10px) Cur(p)" width="20" height="20" viewBox="0 0 32 32" data-icon="LogoTwitter" style="fill: rgb(0, 172, 235); stroke: rgb(0, 172, 235); stroke-width: 0; vertical-align: bottom;"><path d="M30.402 7.094c-1.058.47-2.198.782-3.392.928 1.218-.725 2.154-1.885 2.595-3.256-1.134.674-2.405 1.165-3.75 1.43-1.077-1.148-2.612-1.862-4.31-1.862-3.268 0-5.915 2.635-5.915 5.893 0 .464.056.91.155 1.34-4.915-.244-9.266-2.59-12.18-6.158-.51.87-.806 1.885-.806 2.96 0 2.044 1.045 3.847 2.633 4.905-.974-.032-1.883-.3-2.68-.736v.07c0 2.857 2.034 5.236 4.742 5.773-.498.138-1.022.21-1.56.21-.38 0-.75-.034-1.11-.103.75 2.344 2.93 4.042 5.518 4.09-2.024 1.58-4.57 2.523-7.333 2.523-.478 0-.952-.032-1.41-.085 2.613 1.674 5.72 2.65 9.054 2.65 10.872 0 16.814-8.976 16.814-16.765 0-.254-.008-.507-.018-.762 1.155-.83 2.155-1.868 2.95-3.047z"/></svg><div class="share-info-wrapper Pos(a) W(a) Py(0) Whs(nw) Cur(p) Lh(1) D(ib) Ta(start) Pstart(0)" style="background: rgb(255, 255, 255) none repeat scroll 0% 0%; height: 45px; min-width: 50px; left: 45px; top: 0px;"><span class="Pos(r) Fw(b) Ff(ss) Lh(1) Lts(.02em) Fw(n) Fz(14px) Fz(12px)! T(11px)! End(9px) C(#188fff)!:h D(n)--modalFloatingCloseBtn" style="color: rgb(0, 0, 0); top: 14px;">Tweet</span></div></button><button data-sharetype="pinterest" data-ylk="elm:share;itc:0;sec:hl-viewer;outcm:share;rspns:op;slk:Pinterest;cpos:4;uuid:8dd27580-6b4e-3cfb-a389-5b1ab90bd0eb;tar:pinterest.com;tar_uri:/pin/create/button/?url=https%3A%2F%2Fwww.yahoo.com%2Fnews%2Frussian-supply-ship-launched-international-space-station-150638637.html%3Fsoc_src%3Dhl-viewer%26soc_trk%3Dpi&amp;description=MOSCOW%20(AP)%20%E2%80%94%20An%20unmanned%20Russian%20cargo%20spaceship%20heading%20to%20the%20International%20Space%20Station%20broke%20up%20in%20the%20atmosphere%20over%20Siberia%20on%20Thursday%20due%20to%20an%20unspecified%20malfunction%2C%20the%20Russian%20space%20agency%20said.&amp;media=https%3A%2F%2Fs.yimg.com%2Fuu%2Fapi%2Fres%2F1.2%2FHg9E8aICVMWLt87eYh4PLA--%2FaD0xMzM0O3c9MjAwMDtzbT0xO2FwcGlkPXl0YWNoeW9u%2Fhttp%3A%2F%2Fmedia.zenfs.com%2Fen_us%2FNews%2Fap_webfeeds%2Fc9375de6acbf4c168be78ffe4ec71ea9.jpg" aria-label="Pinterest" class="active ButtonNaked D(b) My(0) nofollow O(0) Ov(v) P(0) Pos(r) rapid-noclick-resp Va(b) pinterest react-button" style="width: 100%; height: 45px; margin-right: 0px; border-radius: 0px; border-width: 0px; max-width: 100%; min-width: 40px; max-height: 40px; min-height: 40px; background-color: rgb(255, 255, 255); color: rgb(204, 33, 39); border-color: rgb(204, 33, 39);"><svg xmlns="http://www.w3.org/2000/svg" class="D(b) M(a) Pos(a) T(10px) Start(10px) Cur(p)" width="20" height="20" viewBox="0 0 32 32" data-icon="LogoPinterest" style="fill: rgb(204, 33, 39); stroke: rgb(204, 33, 39); stroke-width: 0; vertical-align: bottom;"><path d="M16 1.598c-7.952 0-14.4 6.448-14.4 14.4 0 5.896 3.546 10.962 8.62 13.19-.04-1.006-.007-2.212.25-3.307l1.853-7.844s-.46-.92-.46-2.28c0-2.133 1.236-3.728 2.778-3.728 1.31 0 1.943.982 1.943 2.163 0 1.318-.84 3.286-1.272 5.11-.36 1.527.767 2.772 2.273 2.772 2.73 0 4.566-3.502 4.566-7.656 0-3.157-2.127-5.52-5.993-5.52-4.37 0-7.09 3.258-7.09 6.898 0 1.256.37 2.136.95 2.824.265.317.303.442.207.802-.07.267-.23.902-.294 1.158-.096.366-.39.498-.72.36-2.01-.82-2.95-3.024-2.95-5.5 0-4.09 3.45-8.996 10.293-8.996 5.5 0 9.115 3.98 9.115 8.25 0 5.65-3.14 9.872-7.77 9.872-1.555 0-3.016-.843-3.517-1.798 0 0-.836 3.317-1.013 3.962-.304 1.107-.902 2.22-1.45 3.085 1.294.378 2.666.587 4.082.587 7.95 0 14.4-6.45 14.4-14.402s-6.45-14.4-14.4-14.4z"/></svg><div class="share-info-wrapper Pos(a) W(a) Py(0) Whs(nw) Cur(p) Lh(1) D(ib) Ta(start) Pstart(0)" style="background: rgb(255, 255, 255) none repeat scroll 0% 0%; height: 45px; min-width: 50px; left: 45px; top: 0px;"><span class="Pos(r) Fw(b) Ff(ss) Lh(1) Lts(.02em) Fw(n) Fz(14px) Fz(12px)! T(11px)! End(9px) C(#188fff)!:h D(n)--modalFloatingCloseBtn" style="color: rgb(0, 0, 0); top: 14px;">Pin it</span></div></button><button data-sharetype="mtf" data-ylk="elm:share;itc:0;sec:hl-viewer;outcm:share;rspns:op;slk:Email;cpos:5;uuid:8dd27580-6b4e-3cfb-a389-5b1ab90bd0eb;tar:www.yahoo.com;tar_uri:/mtfpopup?redirect=https%3A%2F%2Fwww.yahoo.com%2Fmtfpopup&amp;url=https%3A%2F%2Fwww.yahoo.com%2Fnews%2Frussian-supply-ship-launched-international-space-station-150638637.html%3Fsoc_src%3Dhl-viewer%26soc_trk%3Dma&amp;locale=en-US&amp;lang=en-US&amp;region=US&amp;site=news&amp;uuid=8dd27580-6b4e-3cfb-a389-5b1ab90bd0eb&amp;alias=ymedia-alias%3Astory%3Drussian-supply-ship-launched-international-space-station-150638637" aria-label="Email" class="active ButtonNaked D(b) My(0) nofollow O(0) Ov(v) P(0) Pos(r) rapid-noclick-resp Va(b) mail react-button" style="width: 100%; height: 45px; margin-right: 0px; border-radius: 0px; border-width: 0px; max-width: 100%; min-width: 40px; max-height: 40px; min-height: 40px; background-color: rgb(255, 255, 255); color: rgb(64, 0, 144); border-color: rgb(64, 0, 144);"><svg xmlns="http://www.w3.org/2000/svg" class="D(b) M(a) Pos(a) T(10px) Start(10px) Cur(p)" width="20" height="20" viewBox="0 0 32 32" data-icon="PropertyMail" style="fill: rgb(64, 0, 144); stroke: rgb(64, 0, 144); stroke-width: 0; vertical-align: bottom;"><path d="M16.014 18.806L1.6 7.36v18.722l28.8-.006V7.36L16.014 18.808zM30.4 5.92H1.6L16 17.44 30.4 5.92z"/></svg><div class="share-info-wrapper Pos(a) W(a) Py(0) Whs(nw) Cur(p) Lh(1) D(ib) Ta(start) Pstart(0)" style="background: rgb(255, 255, 255) none repeat scroll 0% 0%; height: 45px; min-width: 50px; left: 45px; top: 0px;"><span class="Pos(r) Fw(b) Ff(ss) Lh(1) Lts(.02em) Fw(n) Fz(14px) Fz(12px)! T(11px)! End(9px) C(#188fff)!:h D(n)--modalFloatingCloseBtn" style="color: rgb(0, 0, 0); top: 14px;">Share</span></div></button></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <!-- react-empty: 192 -->
+ <div class="Bdtc(#b2b2b2) Bdts(s) Bdtw(1px) W(100%) Pos(r) Bxsz(bb)" data-test-locator="article">
+ <div class="Cf Fl(end) W(300px) Mt(30px) Z(1) Pos(r) Mend(45px) Mend(30px)--modalMinWidth">
+ <div id="tgt1-SIDE0-0-HeightContainer-Proxy">
+ <div id="tgt1-SIDE0-0-HeightContainer" class="YDC-Height-Container Ov(h) Trsp(max-height) Trsdu(.42s)" style="max-height: 0px;">
+ <div>
+ <div id="tgt1-SIDE0-0-HeightContainer-0-Stream" class="tdv2-applet-stream Bdc(#e2e2e6)" style="max-width: 900px;">
+ <ul class="Mb(0) Ov(h) P(0) Wow(bw)">
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured">
+ <div class="Pos(r)">
+ <div class="Pos(r)">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width: 600px;">
+ <div class="Trsdu(.42s) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom: 52%; background-image: url(&quot;https://s.yimg.com/ny/api/res/1.2/NYo3cctjVQfuF7psq5mW.A--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/Vkk8mENtySN88hhvpGB5FQ--/dz0yMDAwO2g9MTYwMDthcHBpZD15dGFjaHlvbg--/http://media.zenfs.com/en-US/homerun/people_218/39878b2a4d0e67446e50b646b4c64f6f&quot;);"></div>
+ </div>
+ <h3 class="M(0) Py(1px)"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/hero-pit-bull-puppy-saves-165846711.html"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)">Hero Pit Bull Puppy Saves Teen from Attempted Rape</span><u class="StretchedBox Z(1)"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)">
+ <div class="">People</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured">
+ <div class="Pos(r)">
+ <div class="Pos(r)">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width: 600px;">
+ <div class="Trsdu(.42s) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom: 52%; background-image: url(&quot;https://s.yimg.com/ny/api/res/1.2/Egtf.KcFc7FEG1PaVyp0ng--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/lFJ3X96.SrdlQ3XFnmo4Og--/dz0xMjgwO2g9NzIwO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/c7a8c4ce652ced40c2369f60e94ea298&quot;);"></div>
+ </div>
+ <h3 class="M(0) Py(1px)"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/gma/colombia-plane-crash-survivor-said-curled-fetal-position-203301851--abc-news-topstories.html"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)">Colombia Plane Crash Survivor Said He Curled Up in Fetal Position Before Impact</span><u class="StretchedBox Z(1)"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)">
+ <div class="">Good Morning America</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured">
+ <div class="Pos(r)">
+ <div class="Pos(r)">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width: 600px;">
+ <div class="Trsdu(.42s) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom: 52%; background-image: url(&quot;https://s.yimg.com/ny/api/res/1.2/pRhCY2wD.A9tAXQawejc0w--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/Rq2GhZeWxGd9.GWkpuYEUw--/dz04MDA7aD05NzE7YXBwaWQ9eXRhY2h5b24-/https://media.zenfs.com/creatr-images/GLB/2016-12-01/384f31c0-b7fa-11e6-af7b-175b1579c336_khloe.gif&quot;);"></div>
+ </div>
+ <h3 class="M(0) Py(1px)"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/why-khloe-kardashian-resents-her-old-plus-size-label-181816800.html"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)">Why Khloé Kardashian Resents Her Old ‘Plus-Size’ Label</span><u class="StretchedBox Z(1)"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)">
+ <div class="">Yahoo Style</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured">
+ <div class="Pos(r)">
+ <div class="Pos(r)">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width: 600px;">
+ <div class="Trsdu(.42s) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom: 52%; background-image: url(&quot;https://s.yimg.com/ny/api/res/1.2/4IhXnQmloHRyKVXmEBQuCA--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/eOJ8qmrDEfW9jWhnQ_h5yQ--/dz0yMDAwO2g9MTQ5NDthcHBpZD15dGFjaHlvbg--/https://media.zenfs.com/creatr-images/GLB/2016-11-17/ca2646e0-acd0-11e6-a101-31aadfc0f408_GettyImages-623670866.jpg&quot;);"></div><span class="Trsdu(.42s) StretchedBox M(a) lightweight_D(n) Trsdu(0s)!" style="height: 50px; width: 50px; background-size: 50px auto; background-image: url(&quot;https://s.yimg.com/dh/ap/default/150604/orb.png&quot;);"><svg xmlns="http://www.w3.org/2000/svg" class="D(b) Pos(r) Cur(p)" width="20" height="20" viewBox="0 0 48 48" data-icon="gallery" style="left: 15px; top: 15px; fill: rgb(255, 255, 255); stroke: rgb(255, 255, 255); stroke-width: 0; vertical-align: bottom;"><path d="M46.135 6.15h-34.92c-1.07 0-1.94.87-1.94 1.94V36.22h36.86c1.072 0 1.94-.87 1.94-1.94V8.09c0-1.07-.868-1.94-1.94-1.94zm-1.94 26.192h-31.04V10.03h31.04v22.312zM38.375 40.102H5.395V15.85c0-1.07-.87-1.94-1.94-1.94-1.07 0-1.94.87-1.94 1.94v26.19c0 1.07.87 1.94 1.94 1.94h34.92c1.07 0 1.94-.87 1.94-1.94 0-1.07-.87-1.938-1.94-1.938z"/></svg></span></div>
+ <h3 class="M(0) Py(1px)"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/police-fatally-shoot-philando-castile-000000463.html"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)">Police fatally shoot Philando Castile in Falcon Heights, Minn.</span><u class="StretchedBox Z(1)"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)">
+ <div class="">Yahoo News Photo Staff</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured">
+ <div class="Pos(r)">
+ <div class="Pos(r)">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width: 600px;">
+ <div class="Trsdu(.42s) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom: 52%; background-image: url(&quot;https://s.yimg.com/ny/api/res/1.2/ieaoja5OppAsY_NFV997Fw--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/HqU9stAyWVvau8FDu_eX1A--/dz0xNzEyO2g9MTE4MTthcHBpZD15dGFjaHlvbg--/http://media.zenfs.com/en-US/homerun/digital_trends_973/034cee2b33cb512cc6e4dbf0fca6cdcb&quot;);"></div>
+ </div>
+ <h3 class="M(0) Py(1px)"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/tech/researchers-fatal-security-flaws-10-185210337.html"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)">“Fatal” security bugs discovered in defibrillators and medical implants</span><u class="StretchedBox Z(1)"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)">
+ <div class="">Digital Trends</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured">
+ <div class="Pos(r)">
+ <div class="Pos(r)">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width: 600px;">
+ <div class="Trsdu(.42s) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom: 52%; background-image: url(&quot;https://s.yimg.com/ny/api/res/1.2/SG4WCurdNqbZ9JAt7XhysA--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/MDFtJyQkWmTjWFKP9fRLQw--/dz0xMjgwO2g9NzIwO2FwcGlkPXl0YWNoeW9u/https://s1.yimg.com/uu/api/res/1.2/sdYTzq4i31.dqo302Dsh8Q--/dz0xMjgwO2g9NzIwO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/36098218eca243dbeea0efa40a1f2a97&quot;);"></div><span class="Trsdu(.42s) StretchedBox M(a) lightweight_D(n) Trsdu(0s)!" style="height: 50px; width: 50px; background-size: 50px auto; background-image: url(&quot;https://s.yimg.com/dh/ap/default/150604/orb.png&quot;);"><svg xmlns="http://www.w3.org/2000/svg" class="D(b) Pos(r) Mstart(2px) Cur(p)" width="20" height="20" viewBox="0 0 512 512" data-icon="CorePlay" style="left: 15px; top: 15px; fill: rgb(255, 255, 255); stroke: rgb(255, 255, 255); stroke-width: 0; vertical-align: bottom;"><path d="M82.294 490.295c-20.327 11.736-36.952 2.14-36.952-21.332V42.295c0-23.472 16.632-33.055 36.952-21.332L451.67 234.295c20.318 11.75 20.318 30.945 0 42.682L82.294 490.295z"/></svg></span></div>
+ <h3 class="M(0) Py(1px)"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/video/trump-celebrates-saved-carrier-jobs-062036308.html"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)">Trump Celebrates Saved Carrier Jobs While Nearby Plant Plans Mexico Move</span><u class="StretchedBox Z(1)"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)">
+ <div class="">ABC News Videos</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured">
+ <div class="Pos(r)">
+ <div class="Pos(r)">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width: 600px;">
+ <div class="Trsdu(.42s) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom: 52%; background-image: url(&quot;https://s.yimg.com/ny/api/res/1.2/bGgU0LFyD.scWh.MfObK9w--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/a0G7hOZBR9Y1Trv7JV5Zdw--/dz03NDQ7aD00OTY7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en/homerun/feed_manager_auto_publish_494/51df1d49630dbe06ac8ceb7a15df7070&quot;);"></div>
+ </div>
+ <h3 class="M(0) Py(1px)"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/donald-trump-is-running-victory-laps-and-settling-old-scores-064424074.html"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)">Donald Trump is running victory laps and settling old scores</span><u class="StretchedBox Z(1)"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)">
+ <div class="">Yahoo News</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured">
+ <div class="Pos(r)">
+ <div class="Pos(r)">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width: 600px;">
+ <div class="Trsdu(.42s) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom: 52%; background-image: url(&quot;https://s.yimg.com/ny/api/res/1.2/iXz86096MjNzSsBeKyi2Vw--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/86wcWRAP5lo7ARofpDcb0g--/dz05NjA7aD03MjA7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en-US/homerun/people_218/28cfeade8f980a7da4e835d4115970e3&quot;);"></div>
+ </div>
+ <h3 class="M(0) Py(1px)"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/oncology-nurse-diagnosed-cancer-writes-203228585.html"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)">Oncology Nurse Diagnosed with Cancer Writes Apology Letter to Patients: ‘I’m Sorry, I Didn’t Get It’</span><u class="StretchedBox Z(1)"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)">
+ <div class="">People</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="tgt1-SIDE0-1-Ad-Proxy">
+ <div>
+ <div id="modalLREC2-sizer" class="darla-container" style="margin-top: 8px; margin-bottom: 8px;">
+ <div id="modalLREC2-wrapper" class="">
+ <div id="sb_rel_modaldestLREC2" class="darla" style="position: relative; z-index: 8; width: 300px; height: 250px; visibility: inherit; display: inline-block; font-size: 0px;"><iframe style="position: absolute; z-index: 9; width: 300px; height: 250px; top: 0px; left: 0px; visibility: inherit; display: block;" id="modaldestLREC2" src="https://s.yimg.com/rq/darla/2-9-19/html/r-sf.html" async="" scrolling="no" allowtransparency="true" hidefocus="true" tabindex="-1" marginwidth="0" marginheight="0" frameborder="no"></iframe></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="tgt1-SIDE0-2-DockedAds-Proxy">
+ <div class="ad-wrapper D(n)">
+ <div>
+ <div style="height: 250px;">
+ <div>
+ <div>
+ <div id="modalLREC2-5-sizer" class="darla-container D-n D(n)">
+ <div id="modalLREC2-5-wrapper" class="">
+ <div id="modaldestLREC2-5" style=""></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div>
+ <div class="mini-jtd Pos(r) W(300px) Mb(25px)"><span><div class="Pos(a) T(10px) Start(5px) End(5px) H(128px) Bdrs(2px) Bxsh(jtdCardShadow) Bdw(1px) Bdc(#d9d9d9) Bds(s) Bxz(bb) Bgc(#ffffff)"></div></span>
+ <div id="tgt1-SIDE0-2-DockedAds-1-DiscussionCarousel" class="Pos(r) H(133px)"><span><div class="Px(14px) Pt(12px) Pb(10px) Pos(a) H(100%) W(100%) Bdrs(2px) Bxsh(jtdCardShadow) Bdw(1px) Bdc(#d9d9d9) Bds(s) Bxz(bb) Bgc(#ffffff)"><div class="Pos(r) H(45px) Mb(7px) Cf"><div class="Fl(start) Pos(r) Z(1) W(45px) Pend(9px)"><a class="D(b) H(0) Ov(h) Bdrs(2px)" href="/news/tom-ford-on-dressing-melania-trump-shes-not-necessarily-my-image-002238208.html?.tsrc=jtc_news_article" style="padding-bottom: 100%;"><img class="Trsdu(.42s) W(100%)" src="https://s.yimg.com/uu/api/res/1.2/JJzKP5p68JZVB1jJIbzsXQ--/Zmk9c3RyaW07aD05MDtweW9mZj0wO3E9ODA7dz05MDtzbT0xO2FwcGlkPXl0YWNoeW9u/https://media.zenfs.com/creatr-images/GLB/2016-12-01/98baf690-b75d-11e6-b4d7-7549993b31c7_9c8af290-a06d-11e6-bdfd-4ddc0a732700_ford.gif" style="" /></a></div><div class="Ov(h) Pt(6px)"><h3 class="Mb(5px)"><a class="Td(n)" href="/news/tom-ford-on-dressing-melania-trump-shes-not-necessarily-my-image-002238208.html?.tsrc=jtc_news_article"><u class="StretchedBox"></u><div class="Fw(b) Fz(13px) Lh(16px) LineClamp(2,32px) Pos(r) C(#0078ff)">Tom Ford on Dressing Melania Trump: 'She's Not Necessarily My Image'</div></a></h3></div></div><div class="Pos(r) H(28px) Mb(7px) Cf"><div class="Fl(start) Pos(r) W(32px)"><a href="/news/tom-ford-on-dressing-melania-trump-shes-not-necessarily-my-image-002238208.html?.tsrc=jtc_news_article"><ul class="Pos(r) H(25px) W(32px)"><li class="Pos(a)" style="left: -4px; transform: scale(0.76);"><img class="Trsdu(.42s) W(25px) H(25px) Bdrs(50%) Bdw(2px) Bdc(#ffffff) Bds(s) Bxz(bb)" src="https://s.yimg.com/dg/users/1VVImoX-WAAAC7-L_VCY=.large.png" style="" /></li><li class="Pos(a)" style="left: 2px; transform: scale(0.88);"><img class="Trsdu(.42s) W(25px) H(25px) Bdrs(50%) Bdw(2px) Bdc(#ffffff) Bds(s) Bxz(bb)" src="https://s.yimg.com/wv/images/alphatar_100x100_L_ad.jpg" style="" /></li><li class="Pos(a)" style="left: 8px; transform: scale(1);"><img class="Trsdu(.42s) W(25px) H(25px) Bdrs(50%) Bdw(2px) Bdc(#ffffff) Bds(s) Bxz(bb)" src="https://s.yimg.com/wv/images/alphatar_100x100_Y_jl.jpg" style="" /></li></ul></a></div><div class="Ov(h) Pstart(4px)"><a class="Td(n)" href="/news/tom-ford-on-dressing-melania-trump-shes-not-necessarily-my-image-002238208.html?.tsrc=jtc_news_article"><u class="StretchedBox"></u><p class="C(#000) Fz(12px) Lh(14px) LineClamp(2,28px)"><span class="Fw(b)">43101: </span><span>Tom Ford just lost my business. Bye</span></p>
+ </a>
+ </div>
+ </div>
+ <div class="Pos(r) Cf Bdtw(1px) Bdtc(#d9d9d9) Bdts(s) Pt(6px)"><a class="Fl(start) Fz(12px) Fw(b) Td(n) C(#0078ff) Pt(2px)" href="/news/tom-ford-on-dressing-melania-trump-shes-not-necessarily-my-image-002238208.html?.tsrc=jtc_news_article">Join the Conversation</a>
+ <div class="Fl(end) C(#878c9b) Fw(b)"><button class="jtdBtnPrev Lh(12px) Px(5px) Py(2px)"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="12" height="12" viewBox="0 0 32 32" data-icon="CoreArrowLeft" style="fill: rgb(135, 140, 155); stroke: rgb(135, 140, 155); stroke-width: 0; vertical-align: bottom;"><path d="M22.72.665c-.886-.887-2.323-.887-3.21 0L4.175 16 19.51 31.335c.442.443 1.023.665 1.604.665s1.162-.222 1.605-.665c.886-.887.886-2.324 0-3.21L10.596 16 22.72 3.876c.887-.887.887-2.324 0-3.21z"/></svg></button><span class="Pos(r) Fz(11px) T(-2px)"><!-- react-text: 546 -->1<!-- /react-text --><!-- react-text: 547 --> / <!-- /react-text --><!-- react-text: 548 -->5<!-- /react-text --></span><button class="jtdBtnNext Lh(12px) Px(5px) Py(2px)"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="12" height="12" viewBox="0 0 32 32" data-icon="CoreArrowRight" style="fill: rgb(135, 140, 155); stroke: rgb(135, 140, 155); stroke-width: 0; vertical-align: bottom;"><path d="M7.06.665c.887-.887 2.324-.887 3.21 0L25.606 16 10.27 31.335c-.442.443-1.023.665-1.604.665s-1.162-.222-1.605-.665c-.886-.887-.886-2.324 0-3.21L19.185 16 7.06 3.876c-.887-.887-.887-2.324 0-3.21z"/></svg></button></div>
+ </div>
+ <div class="Pos(a) T(-8px) End(-10px) W(39px) H(39px) Bg(commentBubbleImg) Bgz(39px,39px)"><a href="/news/tom-ford-on-dressing-melania-trump-shes-not-necessarily-my-image-002238208.html?.tsrc=jtc_news_article"><u class="StretchedBox"></u></a>
+ <p class="Fz(11px) Fw(b) C(#ffffff) Lts(0) Ta(c) Mt(4px)">3.5k</p>
+ <div class="W(18px) H(6px) Bg(typingIcon) Bgz(18px,6px) Mstart(10px)"></div>
+ </div>
+ </div>
+ </span>
+ </div>
+ </div>
+ <div>
+ <div id="modalLREC3-5-sizer" class="darla-container D-n D(n)">
+ <div id="modalLREC3-5-wrapper" class="">
+ <div id="modaldestLREC3-5" style=""></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="Cf Maw(635px) Miw(454px) Mend(395px) Mstart(150px) Mstart(137px)--modalMinWidth Mend(380px)--modalMinWidth Mstart(82px)!--modalFloatingCloseBtn">
+ <div id="YDC-CONTENT0" class="YDC-CONTENT0 Bxz(bb)">
+ <div id="YDC-CONTENT0-Stack" class="YDC-CONTENT0-Stack Z(2) Pos(r) Pt(40px) Pb(24px)">
+ <div>
+ <div id="tgt1-STORYLINE-0-StorylineItem-Proxy"><span></span></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="CompanionSlot T(42px) Start(43px) Pos(a) W(79px) Ov(h) Start(30px)--modalMinWidth">
+ <div id="tgt1-COMPANIONSTORYLINE-0-CanvasShareButtons-Proxy"><span></span></div>
+ </div>
+ <div id="YDC-Bottom0" class="YDC-Bottom0 Cl(b) W(100%) Bgc(#f5f5f8) Pt(5px) Pb(1px)">
+ <div id="YDC-Bottom0-Stack" class="YDC-Bottom0-Stack Pos(r) Z(1)">
+ <div>
+ <div id="tgt1-BOTTOM0-0-Ad-Proxy">
+ <div>
+ <div id="modalLDRB2-1-sizer" class="darla-container" style="margin: 8px auto; text-align: center;">
+ <div id="modalLDRB2-1-wrapper" class="">
+ <div id="sb_rel_modaldestLDRB2-1" class="darla" style="position: relative; z-index: 9; width: 728px; height: 90px; visibility: inherit; display: inline-block; font-size: 0px;"><iframe style="position: absolute; z-index: 10; width: 728px; height: 90px; top: 0px; left: 0px; visibility: inherit; display: block;" id="modaldestLDRB2-1" src="https://s.yimg.com/rq/darla/2-9-19/html/r-sf.html" async="" scrolling="no" allowtransparency="true" hidefocus="true" tabindex="-1" marginwidth="0" marginheight="0" frameborder="no"></iframe></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="Bdtc(#b2b2b2) Bdts(s) Bdtw(1px) W(100%) Pos(r) Bxsz(bb)" data-test-locator="article">
+ <div class="Cf Fl(end) W(300px) Mt(30px) Z(1) Pos(r) Mend(45px) Mend(30px)--modalMinWidth">
+ <div id="tgt1-SIDE1-0-HeightContainer-Proxy">
+ <div id="tgt1-SIDE1-0-HeightContainer" class="YDC-Height-Container Ov(h) Trsp(max-height) Trsdu(.42s)" style="max-height: 0px;">
+ <div>
+ <div id="tgt1-SIDE1-0-HeightContainer-0-Stream" class="tdv2-applet-stream Bdc(#e2e2e6)" style="max-width: 900px;">
+ <ul class="Mb(0) Ov(h) P(0) Wow(bw)">
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured">
+ <div class="Pos(r)">
+ <div class="Pos(r)">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width: 600px;">
+ <div class="Trsdu(.42s) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom: 52%; background-image: url(&quot;https://s.yimg.com/ny/api/res/1.2/hBipX4EaZR0SG_bDLSlqzw--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/stzLk.qCvRByal.TpeqECw--/dz03NDQ7aD00MDE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en/homerun/feed_manager_auto_publish_494/faecf4993cc09d302ff971f56f654c0b&quot;);"></div>
+ </div>
+ <h3 class="M(0) Py(1px)"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/a-couple-of-controversial-calls-go-dallas-way-and-the-cowboys-escape-with-a-win-044256314.html"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)">A couple of controversial calls go Dallas' way, and the Cowboys escape with a win</span><u class="StretchedBox Z(1)"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)">
+ <div class="">Shutdown Corner</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured">
+ <div class="Pos(r)">
+ <div class="Pos(r)">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width: 600px;">
+ <div class="Trsdu(.42s) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom: 52%; background-image: url(&quot;https://s.yimg.com/ny/api/res/1.2/LZgtzlDVWhNyLo9S9ZXrDg--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/vDi_i9gilp389LKMIZqpqA--/dz0yMjgxO2g9MTUyMTthcHBpZD15dGFjaHlvbg--/https://media.zenfs.com/creatr-images/GLB/2016-11-17/70d303a0-acc9-11e6-be2f-0d49c905bbeb_001-_RTX2SFAD.jpg&quot;);"></div><span class="Trsdu(.42s) StretchedBox M(a) lightweight_D(n) Trsdu(0s)!" style="height: 50px; width: 50px; background-size: 50px auto; background-image: url(&quot;https://s.yimg.com/dh/ap/default/150604/orb.png&quot;);"><svg xmlns="http://www.w3.org/2000/svg" class="D(b) Pos(r) Cur(p)" width="20" height="20" viewBox="0 0 48 48" data-icon="gallery" style="left: 15px; top: 15px; fill: rgb(255, 255, 255); stroke: rgb(255, 255, 255); stroke-width: 0; vertical-align: bottom;"><path d="M46.135 6.15h-34.92c-1.07 0-1.94.87-1.94 1.94V36.22h36.86c1.072 0 1.94-.87 1.94-1.94V8.09c0-1.07-.868-1.94-1.94-1.94zm-1.94 26.192h-31.04V10.03h31.04v22.312zM38.375 40.102H5.395V15.85c0-1.07-.87-1.94-1.94-1.94-1.07 0-1.94.87-1.94 1.94v26.19c0 1.07.87 1.94 1.94 1.94h34.92c1.07 0 1.94-.87 1.94-1.94 0-1.07-.87-1.938-1.94-1.938z"/></svg></span></div>
+ <h3 class="M(0) Py(1px)"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/syria-children-caught-crossfire-civil-163159544.html"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)">Syria’s children caught in the crossfire of civil war</span><u class="StretchedBox Z(1)"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)">
+ <div class="">Yahoo News Photo Staff</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured">
+ <div class="Pos(r)">
+ <div class="Pos(r)">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width: 600px;">
+ <div class="Trsdu(.42s) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom: 52%; background-image: url(&quot;https://s.yimg.com/ny/api/res/1.2/G_TDdDwOYe0DbisIhszIeg--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/dxhJt8aS5F5HEPrxd4Bsmg--/dz03MjA7aD00ODA7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en-US/homerun/science.mashable/8ce472b4982e5076c69fe11aed3466f9&quot;);"></div>
+ </div>
+ <h3 class="M(0) Py(1px)"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/bernie-burns-science-committee-devastating-214655559.html"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)">Bernie burns House Science Committee after devastating Breitbart tweet</span><u class="StretchedBox Z(1)"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)">
+ <div class="">Mashable</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured">
+ <div class="Pos(r)">
+ <div class="Pos(r)">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width: 600px;">
+ <div class="Trsdu(.42s) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom: 52%; background-image: url(&quot;https://s.yimg.com/ny/api/res/1.2/OmpEJPL9oIn1WSUQuD71Gg--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/kjO0i4eeFfWN.Kkk_rVMbQ--/dz01MTIwO2g9MzQxNDthcHBpZD15dGFjaHlvbg--/https://s1.yimg.com/uu/api/res/1.2/xJeskLbJsFqCEZ.EhrneiA--/dz01MTIwO2g9MzQxNDthcHBpZD15dGFjaHlvbg--/https://media.zenfs.com/creatr-images/GLB/2016-12-02/7157cb70-b837-11e6-b2ed-670d0851debf_AP_16337052673114.jpg&quot;);"></div><span class="Trsdu(.42s) StretchedBox M(a) lightweight_D(n) Trsdu(0s)!" style="height: 50px; width: 50px; background-size: 50px auto; background-image: url(&quot;https://s.yimg.com/dh/ap/default/150604/orb.png&quot;);"><svg xmlns="http://www.w3.org/2000/svg" class="D(b) Pos(r) Mstart(2px) Cur(p)" width="20" height="20" viewBox="0 0 512 512" data-icon="CorePlay" style="left: 15px; top: 15px; fill: rgb(255, 255, 255); stroke: rgb(255, 255, 255); stroke-width: 0; vertical-align: bottom;"><path d="M82.294 490.295c-20.327 11.736-36.952 2.14-36.952-21.332V42.295c0-23.472 16.632-33.055 36.952-21.332L451.67 234.295c20.318 11.75 20.318 30.945 0 42.682L82.294 490.295z"/></svg></span></div>
+ <h3 class="M(0) Py(1px)"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/video/trump-jabs-media-during-first-023146519.html"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)">Trump jabs at the media during first post-election rally</span><u class="StretchedBox Z(1)"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)">
+ <div class="">Yahoo News Video</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured">
+ <div class="Pos(r)">
+ <div class="Pos(r)">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width: 600px;">
+ <div class="Trsdu(.42s) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom: 52%; background-image: url(&quot;https://s.yimg.com/ny/api/res/1.2/CXm2PZXatqZdeR2qZ0ppOw--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/tT5M.bSCUCbQBbYkmYpCQA--/dz0xMzE1O2g9OTAwO2FwcGlkPXl0YWNoeW9u/https://media.zenfs.com/creatr-images/GLB/2016-12-01/9797e200-b81b-11e6-ad5d-3b75b56fa0de_rh.gif&quot;);"></div>
+ </div>
+ <h3 class="M(0) Py(1px)"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/rihanna-wore-some-very-chic-but-different-outfits-to-hang-with-prince-harry-215620555.html"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)">Rihanna Wore Some Very Chic But Different Outfits to Hang With Prince Harry</span><u class="StretchedBox Z(1)"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)">
+ <div class="">Yahoo Style</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured">
+ <div class="Pos(r)">
+ <div class="Pos(r)">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width: 600px;">
+ <div class="Trsdu(.42s) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom: 52%; background-image: url(&quot;https://s.yimg.com/ny/api/res/1.2/sq6xpUerL0MN_WM3NJBhxg--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/x9u8u6EQcwSmUhaWqcbtRw--/dz0xMjgwO2g9NzIwO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/e79f26c21b828cd20266d27bb9b638c6&quot;);"></div>
+ </div>
+ <h3 class="M(0) Py(1px)"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/gma/christmas-party-may-triggered-san-bernardino-terror-attack-103800489--abc-news-topstories.html"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)">Christmas Party May Have Triggered San Bernardino Terror Attack: Police</span><u class="StretchedBox Z(1)"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)">
+ <div class="">Good Morning America</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured">
+ <div class="Pos(r)">
+ <div class="Pos(r)">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width: 600px;">
+ <div class="Trsdu(.42s) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom: 52%; background-image: url(&quot;https://s.yimg.com/ny/api/res/1.2/n76piyO0U8EIRTcMvUH6gw--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/MZ96PkcEo75zNzF.vuBqkA--/dz0xMDAwO2g9NjY2O2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/homerun/livescience.com/e7e075be439b3f2c5ddd5592912af5f9&quot;);"></div>
+ </div>
+ <h3 class="M(0) Py(1px)"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/ravenous-14-foot-python-caught-124200900.html"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)">Ravenous 14-Foot Python Caught with 3 Deer in Its Gut</span><u class="StretchedBox Z(1)"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)">
+ <div class="">LiveScience.com</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ <li class="js-stream-content Bdc($c-divider-strong)!:h js-stream-content:h+Bdc($c-divider-strong)! Pos(r)">
+ <div class="Py(14px) smartphone_Px(20px) smartphone_Bxsh(streamBoxShadow) Cf" data-test-locator="featured">
+ <div class="Pos(r)">
+ <div class="Pos(r)">
+ <div class="Pos(r) smartphone_Mx(a) smartphone_Mb(12px)" style="max-width: 600px;">
+ <div class="Trsdu(.42s) Mb(6px) Bdrs(2px) Bgz(cv) Trsdu(0s)!" style="padding-bottom: 52%; background-image: url(&quot;https://s.yimg.com/ny/api/res/1.2/rFvOd.4P11YyIH5hJOatIw--/YXBwaWQ9aGlnaGxhbmRlcjtoPTMxMjt3PTYwMDtxPTc1O2ZpPXN0cmlt/https://s.yimg.com/uu/api/res/1.2/xB1_OayS.5JY5DpN7Ncr1w--/dz0xNzUwO2g9MTE4MjthcHBpZD15dGFjaHlvbg--/http://media.zenfs.com/en/homerun/feed_manager_auto_publish_494/28908e6201d185ba400908471af50560&quot;);"></div><span class="Trsdu(.42s) StretchedBox M(a) lightweight_D(n) Trsdu(0s)!" style="height: 50px; width: 50px; background-size: 50px auto; background-image: url(&quot;https://s.yimg.com/dh/ap/default/150604/orb.png&quot;);"><svg xmlns="http://www.w3.org/2000/svg" class="D(b) Pos(r) Cur(p)" width="20" height="20" viewBox="0 0 48 48" data-icon="gallery" style="left: 15px; top: 15px; fill: rgb(255, 255, 255); stroke: rgb(255, 255, 255); stroke-width: 0; vertical-align: bottom;"><path d="M46.135 6.15h-34.92c-1.07 0-1.94.87-1.94 1.94V36.22h36.86c1.072 0 1.94-.87 1.94-1.94V8.09c0-1.07-.868-1.94-1.94-1.94zm-1.94 26.192h-31.04V10.03h31.04v22.312zM38.375 40.102H5.395V15.85c0-1.07-.87-1.94-1.94-1.94-1.07 0-1.94.87-1.94 1.94v26.19c0 1.07.87 1.94 1.94 1.94h34.92c1.07 0 1.94-.87 1.94-1.94 0-1.07-.87-1.938-1.94-1.938z"/></svg></span></div>
+ <h3 class="M(0) Py(1px)"><a class="Td(n) Fz(13px) C(#0078ff):h LineClamp(4,96px) C(#020e65) smartphone_C(#000) smartphone_Fz(19px)" href="/news/miami-marlins-jose-fernandez-dies-145224041.html"><span class="Ff($ff-primary) Fw(600) Lts($lspacing-sm) Fsm($fsmoothing) Fsmw($fsmoothing) Fsmm($fsmoothing) smartphone_Fw(500) Z(2) Pos(r)">Miami Marlins Jose Fernandez dies in boating accident</span><u class="StretchedBox Z(1)"></u></a></h3>
+ <div class="Lh(1.2) Pos(r) Z(2) Fz(11px) smartphone_Fz(13px) Mt(4px) C(#96989f)">
+ <div class="">Yahoo News Photo Staff</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="tgt1-SIDE1-1-Ad-Proxy">
+ <div>
+ <div id="modalLREC3-sizer" class="darla-container" style="margin-top: 8px; margin-bottom: 8px;">
+ <div id="modalLREC3-wrapper" class="">
+ <div id="sb_rel_modaldestLREC3" class="darla" style="position: relative; z-index: 8; width: 300px; height: 250px; visibility: inherit; display: inline-block; font-size: 0px;"><iframe style="position: absolute; z-index: 9; width: 300px; height: 250px; top: 0px; left: 0px; visibility: inherit; display: block;" id="modaldestLREC3" src="https://s.yimg.com/rq/darla/2-9-19/html/r-sf.html" async="" scrolling="no" allowtransparency="true" hidefocus="true" tabindex="-1" marginwidth="0" marginheight="0" frameborder="no"></iframe></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="tgt1-SIDE1-2-DockedAds-Proxy">
+ <div class="ad-wrapper D(n)">
+ <div>
+ <div style="height: 250px;">
+ <div>
+ <div>
+ <div id="modalLREC2-6-sizer" class="darla-container D-n D(n)">
+ <div id="modalLREC2-6-wrapper" class="">
+ <div id="modaldestLREC2-6" style=""></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div>
+ <div class="mini-jtd Pos(r) W(300px) Mb(25px)"><span><div class="Pos(a) T(10px) Start(5px) End(5px) H(128px) Bdrs(2px) Bxsh(jtdCardShadow) Bdw(1px) Bdc(#d9d9d9) Bds(s) Bxz(bb) Bgc(#ffffff)"></div></span>
+ <div id="tgt1-SIDE1-2-DockedAds-1-DiscussionCarousel" class="Pos(r) H(133px)"><span><div class="Px(14px) Pt(12px) Pb(10px) Pos(a) H(100%) W(100%) Bdrs(2px) Bxsh(jtdCardShadow) Bdw(1px) Bdc(#d9d9d9) Bds(s) Bxz(bb) Bgc(#ffffff)"><div class="Pos(r) H(45px) Mb(7px) Cf"><div class="Fl(start) Pos(r) Z(1) W(45px) Pend(9px)"><a class="D(b) H(0) Ov(h) Bdrs(2px)" href="/news/tom-ford-on-dressing-melania-trump-shes-not-necessarily-my-image-002238208.html?.tsrc=jtc_news_article" style="padding-bottom: 100%;"><img class="Trsdu(.42s) W(100%)" src="https://s.yimg.com/uu/api/res/1.2/JJzKP5p68JZVB1jJIbzsXQ--/Zmk9c3RyaW07aD05MDtweW9mZj0wO3E9ODA7dz05MDtzbT0xO2FwcGlkPXl0YWNoeW9u/https://media.zenfs.com/creatr-images/GLB/2016-12-01/98baf690-b75d-11e6-b4d7-7549993b31c7_9c8af290-a06d-11e6-bdfd-4ddc0a732700_ford.gif" style="" /></a></div><div class="Ov(h) Pt(6px)"><h3 class="Mb(5px)"><a class="Td(n)" href="/news/tom-ford-on-dressing-melania-trump-shes-not-necessarily-my-image-002238208.html?.tsrc=jtc_news_article"><u class="StretchedBox"></u><div class="Fw(b) Fz(13px) Lh(16px) LineClamp(2,32px) Pos(r) C(#0078ff)">Tom Ford on Dressing Melania Trump: 'She's Not Necessarily My Image'</div></a></h3></div></div><div class="Pos(r) H(28px) Mb(7px) Cf"><div class="Fl(start) Pos(r) W(32px)"><a href="/news/tom-ford-on-dressing-melania-trump-shes-not-necessarily-my-image-002238208.html?.tsrc=jtc_news_article"><ul class="Pos(r) H(25px) W(32px)"><li class="Pos(a)" style="left: -4px; transform: scale(0.76);"><img class="Trsdu(.42s) W(25px) H(25px) Bdrs(50%) Bdw(2px) Bdc(#ffffff) Bds(s) Bxz(bb)" src="https://s.yimg.com/dg/users/1VVImoX-WAAAC7-L_VCY=.large.png" style="" /></li><li class="Pos(a)" style="left: 2px; transform: scale(0.88);"><img class="Trsdu(.42s) W(25px) H(25px) Bdrs(50%) Bdw(2px) Bdc(#ffffff) Bds(s) Bxz(bb)" src="https://s.yimg.com/wv/images/alphatar_100x100_L_ad.jpg" style="" /></li><li class="Pos(a)" style="left: 8px; transform: scale(1);"><img class="Trsdu(.42s) W(25px) H(25px) Bdrs(50%) Bdw(2px) Bdc(#ffffff) Bds(s) Bxz(bb)" src="https://s.yimg.com/wv/images/alphatar_100x100_Y_jl.jpg" style="" /></li></ul></a></div><div class="Ov(h) Pstart(4px)"><a class="Td(n)" href="/news/tom-ford-on-dressing-melania-trump-shes-not-necessarily-my-image-002238208.html?.tsrc=jtc_news_article"><u class="StretchedBox"></u><p class="C(#000) Fz(12px) Lh(14px) LineClamp(2,28px)"><span class="Fw(b)">43101: </span><span>Tom Ford just lost my business. Bye</span></p>
+ </a>
+ </div>
+ </div>
+ <div class="Pos(r) Cf Bdtw(1px) Bdtc(#d9d9d9) Bdts(s) Pt(6px)"><a class="Fl(start) Fz(12px) Fw(b) Td(n) C(#0078ff) Pt(2px)" href="/news/tom-ford-on-dressing-melania-trump-shes-not-necessarily-my-image-002238208.html?.tsrc=jtc_news_article">Join the Conversation</a>
+ <div class="Fl(end) C(#878c9b) Fw(b)"><button class="jtdBtnPrev Lh(12px) Px(5px) Py(2px)"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="12" height="12" viewBox="0 0 32 32" data-icon="CoreArrowLeft" style="fill: rgb(135, 140, 155); stroke: rgb(135, 140, 155); stroke-width: 0; vertical-align: bottom;"><path d="M22.72.665c-.886-.887-2.323-.887-3.21 0L4.175 16 19.51 31.335c.442.443 1.023.665 1.604.665s1.162-.222 1.605-.665c.886-.887.886-2.324 0-3.21L10.596 16 22.72 3.876c.887-.887.887-2.324 0-3.21z"/></svg></button><span class="Pos(r) Fz(11px) T(-2px)"><!-- react-text: 656 -->1<!-- /react-text --><!-- react-text: 657 --> / <!-- /react-text --><!-- react-text: 658 -->5<!-- /react-text --></span><button class="jtdBtnNext Lh(12px) Px(5px) Py(2px)"><svg xmlns="http://www.w3.org/2000/svg" class="Cur(p)" width="12" height="12" viewBox="0 0 32 32" data-icon="CoreArrowRight" style="fill: rgb(135, 140, 155); stroke: rgb(135, 140, 155); stroke-width: 0; vertical-align: bottom;"><path d="M7.06.665c.887-.887 2.324-.887 3.21 0L25.606 16 10.27 31.335c-.442.443-1.023.665-1.604.665s-1.162-.222-1.605-.665c-.886-.887-.886-2.324 0-3.21L19.185 16 7.06 3.876c-.887-.887-.887-2.324 0-3.21z"/></svg></button></div>
+ </div>
+ <div class="Pos(a) T(-8px) End(-10px) W(39px) H(39px) Bg(commentBubbleImg) Bgz(39px,39px)"><a href="/news/tom-ford-on-dressing-melania-trump-shes-not-necessarily-my-image-002238208.html?.tsrc=jtc_news_article"><u class="StretchedBox"></u></a>
+ <p class="Fz(11px) Fw(b) C(#ffffff) Lts(0) Ta(c) Mt(4px)">3.5k</p>
+ <div class="W(18px) H(6px) Bg(typingIcon) Bgz(18px,6px) Mstart(10px)"></div>
+ </div>
+ </div>
+ </span>
+ </div>
+ </div>
+ <div>
+ <div id="modalLREC3-6-sizer" class="darla-container D-n D(n)">
+ <div id="modalLREC3-6-wrapper" class="">
+ <div id="modaldestLREC3-6" style=""></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="Cf Maw(635px) Miw(454px) Mend(395px) Mstart(150px) Mstart(137px)--modalMinWidth Mend(380px)--modalMinWidth Mstart(82px)!--modalFloatingCloseBtn">
+ <div id="YDC-CONTENT1" class="YDC-CONTENT1 Bxz(bb)">
+ <div id="YDC-CONTENT1-Stack" class="YDC-CONTENT1-Stack Z(2) Pos(r) Pt(40px) Pb(24px)">
+ <div>
+ <div id="tgt1-STORYLINE-0-StorylineItem-Proxy"><span></span></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="CompanionSlot T(42px) Start(43px) Pos(a) W(79px) Ov(h) Start(30px)--modalMinWidth">
+ <div id="tgt1-COMPANIONSTORYLINE-0-CanvasShareButtons-Proxy"><span></span></div>
+ </div>
+ <div id="YDC-Bottom1" class="YDC-Bottom1 Cl(b) W(100%) Bgc(#f5f5f8) Pt(5px) Pb(1px)">
+ <div id="YDC-Bottom1-Stack" class="YDC-Bottom1-Stack Pos(r) Z(1)">
+ <div>
+ <div id="tgt1-BOTTOM1-0-Ad-Proxy">
+ <div>
+ <div id="modalLDRB2-2-sizer" class="darla-container" style="margin: 8px auto; text-align: center;">
+ <div id="modalLDRB2-2-wrapper" class="">
+ <div id="sb_rel_modaldestLDRB2-2" class="darla" style="position: relative; z-index: 9; width: 728px; height: 90px; visibility: inherit; display: inline-block; font-size: 0px;"><iframe style="position: absolute; z-index: 10; width: 728px; height: 90px; top: 0px; left: 0px; visibility: inherit; display: block;" id="modaldestLDRB2-2" src="https://s.yimg.com/rq/darla/2-9-19/html/r-sf.html" async="" scrolling="no" allowtransparency="true" hidefocus="true" tabindex="-1" marginwidth="0" marginheight="0" frameborder="no"></iframe></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="M(a) W(100%) Pos(r) Bxsz(bb)">
+ <div class="Cf Maw(600px) Miw(454px) Mend(405px) Mstart(170px) Mstart(150px)--modalMinWidth Mstart(82px)!--modalFloatingCloseBtn">
+ <!-- react-empty: 269 -->
+ </div>
+ <div class="Pos(a) T(0) End(0) W(300px) Mt(40px) Mend(45px) Mend(30px)--modalMinWidth"></div>
+ </div>
+ <div id="YDC-BottomExt" class="YDC-BottomExt Cl(b) W(100%) Bgc(#f5f5f8) Pt(5px)">
+ <div id="YDC-BottomExt-Stack" class="YDC-BottomExt-Stack Pos(r) Z(1)">
+ <div>
+ <div id="tgt1-BottomExt-0-Stream-Proxy"><span></span></div>
+ <div id="tgt1-BottomExt-1-Ad-Proxy">
+ <div>
+ <div id="modalFOOT9-sizer" class="darla-container Pos-r Z-0 Pos(r) Ov(a) Z(0)" style="height: 0px; width: 0px;">
+ <div id="modalFOOT9-wrapper" class="Pos-a T-0 B-0 Start-0 End-0 Ov-h Pos(a) T(0) B(0) Start(0) End(0) Ov(h)">
+ <div id="modaldestFOOT9" style=""></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="tgt1-BottomExt-2-Ad-Proxy">
+ <div>
+ <div id="modalFSRVY-sizer" class="darla-container Pos-r Z-0 Pos(r) Ov(a) Z(0)" style="height: 0px; width: 0px;">
+ <div id="modalFSRVY-wrapper" class="Pos-a T-0 B-0 Start-0 End-0 Ov-h Pos(a) T(0) B(0) Start(0) End(0) Ov(h)">
+ <div id="sb_rel_modaldestFSRVY" class="darla" style="position: relative; z-index: 9; width: 0px; height: 0px; visibility: inherit; display: inline-block; font-size: 0px;"><iframe style="position: absolute; z-index: 10; width: 0px; height: 0px; top: 0px; left: 0px; visibility: inherit; display: block;" id="modaldestFSRVY" src="https://s.yimg.com/rq/darla/2-9-19/html/r-sf.html" async="" scrolling="no" allowtransparency="true" hidefocus="true" tabindex="-1" marginwidth="0" marginheight="0" frameborder="no"></iframe></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div>
+ <script type="text/javascript">
+ window._loadEvt = false;
+ window._adPerfData = [];
+ window._adPosMsg = [];
+ window._perfMark = function _perfMark(name) {
+ if (window.performance & amp; & amp; window.performance.mark) {
+ try {
+ if (window.performance.getEntriesByName("NAVIGATE_START") & amp; & amp; window.performance.getEntriesByName("NAVIGATE_START")[0]) {
+ name = "CL_" + name;
+ }
+ window.performance.mark(name);
+ } catch (e) {
+ console.warn(name + ' could not be marked:', e);
+ }
+ };
+ };
+ window._perfMeasure = function _perfMeasure(name, start, end) {
+ if (window.performance & amp; & amp; window.performance.measure) {
+ try {
+ if (window.performance.getEntriesByName("NAVIGATE_START") & amp; & amp; window.performance.getEntriesByName("NAVIGATE_START")[0]) {
+ start = "CL_" + start;
+ end = "CL_" + end;
+ name = "CL_" + name;
+ }
+ window.performance.measure(name, start, end);
+ } catch (e) {
+ console.warn(name + ' could not be added:', e);
+ }
+ };
+ };
+ window._pushAdPerfMetric = function _pushAdPerfMetric(key) {
+ if (window.performance & amp; & amp; window.performance.now) {
+ _adPerfData.push([key, Math.round(window.performance.now())]);
+ }
+ };
+ window._fireAdPerfBeacon = function _fireAdPerfBeacon(eventName) {
+ try {
+ if (window & amp; & amp; window.rapidInstance & amp; & amp; window.performance) {
+ var navClickMark = window.performance.getEntriesByName('NAVIGATE_START') & amp; & amp;
+ window.performance.getEntriesByName('NAVIGATE_START').pop();
+ var navClickTime = navClickMark & amp; & amp;
+ navClickMark.startTime || 0;
+ var userTime = {};
+ window.performance.getEntries().forEach(function forEachPerfTime(item) {
+ if (item.name.search('DARLA_') & gt; - 1) {
+ if (item.entryType === "mark") {
+ userTime[item.name] = Math.round(item.startTime) - navClickTime;
+ window.performance.clearMarks(item.name);
+ } else if (item.entryType === "measure") {
+ userTime[item.name] = Math.round(item.duration);
+ window.performance.clearMeasures(item.name);
+ }
+ }
+ });
+ var perfData = {
+ perf_usertime: {
+ utm: userTime
+ }
+ };
+ window.rapidInstance.beaconPerformanceData(perfData);
+ }
+ } catch (e) {
+ console.warn('Could not send the beacon:', e);
+ }
+ };
+ window.DARLA_CONFIG = {
+ "autoRotation": 10000,
+ "events": {
+ "AUTO": {
+ "name": "AUTO",
+ "autoStart": 1,
+ "autoMax": 25,
+ "autoRT": 10000,
+ "autoIV": 1,
+ "autoDDG": 1,
+ "ps": {
+ "LDRB": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LDRB-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LDRB2-1": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LDRB2-2": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC-1": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC2": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC2-1": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-4": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-5": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-6": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-7": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-8": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC3": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC3-4": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-5": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-6": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-7": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-8": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC4": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "MAST": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ },
+ "MAST-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ },
+ "MON-1": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "SPL": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ },
+ "SPL-2": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ },
+ "SPL2": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ }
+ },
+ "sa": "\"type\"=\"page\" ctype=\"minihome\" can_suppress_ugc=\"1\" LREC2=\"300x250,1x1\" LREC=\"300x250,1x1\" ESPON=\"120x30\" megamodal=true Y-BUCKET=\"news-d-162\"",
+ "ssl": 1,
+ "secure": 1,
+ "ult": {
+ "pg": {
+ "property": "fp_en-US",
+ "test": "news-d-162"
+ }
+ }
+ },
+ "DEFAULT": {
+ "clw": {
+ "LREC": {
+ "blocked_by": "MON-1"
+ },
+ "MON-1": {
+ "blocked_by": "LREC"
+ },
+ "MAST-9": {
+ "blocked_by": "SPL,LDRB-9"
+ },
+ "MAST": {
+ "blocked_by": "SPL,LDRB"
+ },
+ "LDRB": {
+ "blocked_by": "MAST,SPL"
+ },
+ "LDRB-9": {
+ "blocked_by": "MAST-9,SPL"
+ },
+ "SPL": {
+ "blocked_by": "MAST,LDRB"
+ }
+ },
+ "sp": 1197800621,
+ "ssl": 1,
+ "secure": 1,
+ "ult": {
+ "pg": {
+ "property": "fp_en-US",
+ "test": "news-d-162"
+ }
+ }
+ },
+ "adFetch": {
+ "ps": "MAST-9,LDRB-9,LREC-9,LREC2-9,FOOT,FSRVY",
+ "sp": 1197800621,
+ "sa": "\"type\"=\"page\" ctype=\"minihome\" can_suppress_ugc=\"1\" LREC2=\"300x250,1x1\" LREC=\"300x250,1x1\" ESPON=\"120x30\" megamodal=true Y-BUCKET=\"news-d-162\"",
+ "optionalps": "",
+ "site": "fp",
+ "ssl": 1,
+ "secure": 1,
+ "ult": {
+ "pg": {
+ "property": "fp_en-US",
+ "test": "news-d-162"
+ }
+ }
+ },
+ "TD_AUTO": {
+ "ps": "DEFAULT,BTN,BTN-1,BTN-2,BTN-3,FOOT,FOOT9,FSRVY,LREC,LREC-1,LREC-2,LREC-9,LREC2-1,LREC2-2,LREC2-4,LREC2-5,LREC2-6,LREC2-7,LREC2-8,LREC2-9,LREC2,LREC3,LREC3-1,LREC3-4,LREC3-5,LREC3-6,LREC3-7,LREC3-8,LREC3-9,LREC4,LDRB,LDRB-1,LDRB-9,LDRB2-1,LDRB2-2,LDRP,MAST,MAST-9,MFPAD,MON-1,SPL,SPL-2,SPL2,SPRZ,SPON,TXTL,WFPAD",
+ "ssl": 1,
+ "secure": 1,
+ "ult": {
+ "pg": {
+ "property": "fp_en-US",
+ "test": "news-d-162"
+ }
+ }
+ }
+ },
+ "positions": {
+ "DEFAULT": {
+ "meta": {
+ "stack": "ydc"
+ },
+ "clean": "mrtcleanDEFAULT",
+ "dest": "mrtdestDEFAULT",
+ "enable": true,
+ "fallback": null,
+ "metaSize": false,
+ "id": "DEFAULT",
+ "staticLayout": false
+ },
+ "BTN": {
+ "w": 120,
+ "h": 60,
+ "autoFetch": false,
+ "clean": "mrtcleanBTN",
+ "dest": "mrtdestBTN",
+ "enable": true,
+ "fallback": null,
+ "metaSize": false,
+ "id": "BTN",
+ "staticLayout": false
+ },
+ "BTN-1": {
+ "w": 120,
+ "h": 60,
+ "autoFetch": false,
+ "clean": "mrtcleanBTN-1",
+ "dest": "mrtdestBTN-1",
+ "enable": true,
+ "fallback": null,
+ "metaSize": false,
+ "id": "BTN-1",
+ "staticLayout": false
+ },
+ "BTN-2": {
+ "w": 120,
+ "h": 60,
+ "autoFetch": false,
+ "clean": "mrtcleanBTN-2",
+ "dest": "mrtdestBTN-2",
+ "enable": true,
+ "fallback": null,
+ "metaSize": false,
+ "id": "BTN-2",
+ "staticLayout": false
+ },
+ "BTN-3": {
+ "w": 120,
+ "h": 60,
+ "autoFetch": false,
+ "clean": "mrtcleanBTN-3",
+ "dest": "mrtdestBTN-3",
+ "enable": true,
+ "fallback": null,
+ "metaSize": false,
+ "id": "BTN-3",
+ "staticLayout": false
+ },
+ "FOOT": {
+ "id": "FOOT",
+ "enable": true,
+ "fr": "expIfr_exp",
+ "autoFetch": false,
+ "supports": {
+ "lyr": 1
+ },
+ "clean": "mrtcleanFOOT",
+ "dest": "mrtdestFOOT",
+ "fallback": null,
+ "metaSize": false,
+ "staticLayout": false,
+ "failed": true
+ },
+ "FOOT9": {
+ "id": "FOOT9",
+ "enable": true,
+ "fr": "expIfr_exp",
+ "autoFetch": false,
+ "supports": {
+ "lyr": 1
+ },
+ "clean": "mrtcleanFOOT9",
+ "dest": "mrtdestFOOT9",
+ "fallback": null,
+ "metaSize": false,
+ "staticLayout": false
+ },
+ "FSRVY": {
+ "id": "FSRVY",
+ "enable": true,
+ "fr": "expIfr_exp",
+ "autoFetch": false,
+ "supports": {
+ "lyr": 1
+ },
+ "clean": "mrtcleanFSRVY",
+ "dest": "mrtdestFSRVY",
+ "fallback": null,
+ "metaSize": false,
+ "staticLayout": false,
+ "failed": true
+ },
+ "LREC": {
+ "id": "LREC",
+ "w": 300,
+ "h": 250,
+ "fr": "expIfr_exp",
+ "autoFetch": false,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 3,
+ "fallback": {
+ "link": "https://baseball.fantasysports.yahoo.com/b1/signup",
+ "image": "https://s.yimg.com/nn/lib/metro/DailyFantasy_BN_Baseball_300x250-min.jpg"
+ },
+ "clean": "mrtcleanLREC",
+ "dest": "mrtdestLREC",
+ "metaSize": false
+ },
+ "LREC-1": {
+ "id": "LREC-1",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "mrtcleanLREC-1",
+ "dest": "mrtdestLREC-1",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC-2": {
+ "id": "LREC-2",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "mrtcleanLREC-2",
+ "dest": "mrtdestLREC-2",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC-9": {
+ "id": "LREC-9",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "mrtcleanLREC-9",
+ "dest": "mrtdestLREC-9",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC2-1": {
+ "id": "LREC2-1",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "mrtcleanLREC2-1",
+ "dest": "mrtdestLREC2-1",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC2-2": {
+ "id": "LREC2-2",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "mrtcleanLREC2-2",
+ "dest": "mrtdestLREC2-2",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC2-4": {
+ "id": "LREC2-4",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "mrtcleanLREC2-4",
+ "dest": "mrtdestLREC2-4",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC2-5": {
+ "id": "LREC2-5",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "mrtcleanLREC2-5",
+ "dest": "mrtdestLREC2-5",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC2-6": {
+ "id": "LREC2-6",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "mrtcleanLREC2-6",
+ "dest": "mrtdestLREC2-6",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC2-7": {
+ "id": "LREC2-7",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "mrtcleanLREC2-7",
+ "dest": "mrtdestLREC2-7",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC2-8": {
+ "id": "LREC2-8",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "mrtcleanLREC2-8",
+ "dest": "mrtdestLREC2-8",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC2-9": {
+ "id": "LREC2-9",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "mrtcleanLREC2-9",
+ "dest": "mrtdestLREC2-9",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC2": {
+ "id": "LREC2",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "mrtcleanLREC2",
+ "dest": "mrtdestLREC2",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC3": {
+ "id": "LREC3",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "mrtcleanLREC3",
+ "dest": "mrtdestLREC3",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC3-1": {
+ "id": "LREC3-1",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "mrtcleanLREC3-1",
+ "dest": "mrtdestLREC3-1",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC3-4": {
+ "id": "LREC3-4",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "mrtcleanLREC3-4",
+ "dest": "mrtdestLREC3-4",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC3-5": {
+ "id": "LREC3-5",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "mrtcleanLREC3-5",
+ "dest": "mrtdestLREC3-5",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC3-6": {
+ "id": "LREC3-6",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "mrtcleanLREC3-6",
+ "dest": "mrtdestLREC3-6",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC3-7": {
+ "id": "LREC3-7",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "mrtcleanLREC3-7",
+ "dest": "mrtdestLREC3-7",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC3-8": {
+ "id": "LREC3-8",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "mrtcleanLREC3-8",
+ "dest": "mrtdestLREC3-8",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC3-9": {
+ "id": "LREC3-9",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "mrtcleanLREC3-9",
+ "dest": "mrtdestLREC3-9",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC4": {
+ "id": "LREC4",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "mrtcleanLREC4",
+ "dest": "mrtdestLREC4",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LDRB": {
+ "id": "LDRB",
+ "w": 728,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "clean": "mrtcleanLDRB",
+ "dest": "mrtdestLDRB",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LDRB-1": {
+ "id": "LDRB-1",
+ "w": 728,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "clean": "mrtcleanLDRB-1",
+ "dest": "mrtdestLDRB-1",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LDRB-9": {
+ "id": "LDRB-9",
+ "w": 728,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "clean": "mrtcleanLDRB-9",
+ "dest": "mrtdestLDRB-9",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LDRB2-1": {
+ "id": "LDRB2-1",
+ "w": 728,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "clean": "mrtcleanLDRB2-1",
+ "dest": "mrtdestLDRB2-1",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LDRB2-2": {
+ "id": "LDRB2-2",
+ "w": 728,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "clean": "mrtcleanLDRB2-2",
+ "dest": "mrtdestLDRB2-2",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LDRP": {
+ "id": "LDRP",
+ "w": 320,
+ "h": 50,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1,
+ "lyr": 1
+ },
+ "enable": true,
+ "metaSize": true,
+ "staticLayout": true,
+ "fdb": true,
+ "clean": "mrtcleanLDRP",
+ "dest": "mrtdestLDRP",
+ "fallback": null
+ },
+ "MAST": {
+ "id": "MAST",
+ "w": 970,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1,
+ "resize-to": 1
+ },
+ "enable": true,
+ "staticLayout": false,
+ "fclose": 2,
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "closeBtn": {
+ "adc": 0,
+ "mode": 2,
+ "useShow": 1
+ },
+ "metaSize": true,
+ "clean": "mrtcleanMAST",
+ "dest": "mrtdestMAST",
+ "fallback": null
+ },
+ "MAST-9": {
+ "id": "MAST-9",
+ "w": 970,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1,
+ "resize-to": 1
+ },
+ "enable": true,
+ "staticLayout": false,
+ "fclose": 2,
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "closeBtn": {
+ "adc": 0,
+ "mode": 2,
+ "useShow": 1
+ },
+ "metaSize": true,
+ "clean": "mrtcleanMAST-9",
+ "dest": "mrtdestMAST-9",
+ "fallback": null
+ },
+ "MFPAD": {
+ "id": "MFPAD",
+ "w": 720,
+ "h": 90,
+ "autoFetch": false,
+ "enable": true,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "metaSize": true,
+ "staticLayout": false,
+ "fdb": false,
+ "clean": "mrtcleanMFPAD",
+ "dest": "mrtdestMFPAD",
+ "fallback": null
+ },
+ "MON-1": {
+ "id": "MON-1",
+ "w": 300,
+ "h": 600,
+ "fr": "expIfr_exp",
+ "autoFetch": false,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 3,
+ "clean": "mrtcleanMON-1",
+ "dest": "mrtdestMON-1",
+ "fallback": null,
+ "metaSize": false
+ },
+ "SPL": {
+ "id": "SPL",
+ "flex": "both",
+ "enable": true,
+ "autoFetch": false,
+ "staticLayout": false,
+ "fclose": 2,
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "supports": {
+ "cmsg": 1
+ },
+ "uhslot": ".YDC-UH",
+ "meta": {
+ "type": "stream"
+ },
+ "css": ".Mags-FontA{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:300}.Mags-FontA.Size1{font-size:13px}.Mags-FontA.Size2{font-size:16px}.Mags-FontA.Size3{font-size:20px}.Mags-FontA.Size4{font-size:22px}.Mags-FontA.Size5{font-size:33px}.Mags-FontA.Size6{font-size:35px}.Mags-FontA.Size7{font-size:58px}.Mags-FontA.Size8{font-size:70px}.Mags-FontA.Size9{font-size:100px}.Mags-FontB{font-family:Georgia,Times,serif;font-weight:400}.Mags-FontB.Size1{font-size:18px}.Mags-FontC{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400}.Mags-FontC.Size1{font-size:11px}.Mags-FontC.Size2{font-size:14px}.Mags-FontC.Size3{font-size:16px}.Mags-FontC.Size4{font-size:20px}.Mags-FontC.Size5{font-size:30px}.Mags-FontC.Size6{font-size:32px}.Mags-FontC.Size7{font-size:52px}",
+ "clean": "mrtcleanSPL",
+ "dest": "mrtdestSPL",
+ "fallback": null,
+ "metaSize": false
+ },
+ "SPL-2": {
+ "id": "SPL-2",
+ "flex": "both",
+ "enable": true,
+ "autoFetch": false,
+ "staticLayout": false,
+ "fclose": 2,
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "supports": {
+ "cmsg": 1
+ },
+ "uhslot": ".YDC-UH",
+ "meta": {
+ "type": "stream"
+ },
+ "css": ".Mags-FontA{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:300}.Mags-FontA.Size1{font-size:13px}.Mags-FontA.Size2{font-size:16px}.Mags-FontA.Size3{font-size:20px}.Mags-FontA.Size4{font-size:22px}.Mags-FontA.Size5{font-size:33px}.Mags-FontA.Size6{font-size:35px}.Mags-FontA.Size7{font-size:58px}.Mags-FontA.Size8{font-size:70px}.Mags-FontA.Size9{font-size:100px}.Mags-FontB{font-family:Georgia,Times,serif;font-weight:400}.Mags-FontB.Size1{font-size:18px}.Mags-FontC{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400}.Mags-FontC.Size1{font-size:11px}.Mags-FontC.Size2{font-size:14px}.Mags-FontC.Size3{font-size:16px}.Mags-FontC.Size4{font-size:20px}.Mags-FontC.Size5{font-size:30px}.Mags-FontC.Size6{font-size:32px}.Mags-FontC.Size7{font-size:52px}",
+ "clean": "mrtcleanSPL-2",
+ "dest": "mrtdestSPL-2",
+ "fallback": null,
+ "metaSize": false
+ },
+ "SPL2": {
+ "id": "SPL2",
+ "autoFetch": false,
+ "flex": "both",
+ "enable": true,
+ "staticLayout": false,
+ "fclose": 2,
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "supports": {
+ "cmsg": 1
+ },
+ "uhslot": ".YDC-UH",
+ "meta": {
+ "stack": "ydc",
+ "type": "stream"
+ },
+ "css": ".Mags-FontA{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:300}.Mags-FontA.Size1{font-size:13px}.Mags-FontA.Size2{font-size:16px}.Mags-FontA.Size3{font-size:20px}.Mags-FontA.Size4{font-size:22px}.Mags-FontA.Size5{font-size:33px}.Mags-FontA.Size6{font-size:35px}.Mags-FontA.Size7{font-size:58px}.Mags-FontA.Size8{font-size:70px}.Mags-FontA.Size9{font-size:100px}.Mags-FontB{font-family:Georgia,Times,serif;font-weight:400}.Mags-FontB.Size1{font-size:18px}.Mags-FontC{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400}.Mags-FontC.Size1{font-size:11px}.Mags-FontC.Size2{font-size:14px}.Mags-FontC.Size3{font-size:16px}.Mags-FontC.Size4{font-size:20px}.Mags-FontC.Size5{font-size:30px}.Mags-FontC.Size6{font-size:32px}.Mags-FontC.Size7{font-size:52px}",
+ "clean": "mrtcleanSPL2",
+ "dest": "mrtdestSPL2",
+ "fallback": null,
+ "metaSize": false
+ },
+ "SPRZ": {
+ "id": "SPRZ",
+ "autoFetch": false,
+ "flex": "both",
+ "enable": true,
+ "staticLayout": false,
+ "fdb": false,
+ "supports": {
+ "cmsg": 1
+ },
+ "uhslot": ".YDC-UH",
+ "clean": "mrtcleanSPRZ",
+ "dest": "mrtdestSPRZ",
+ "fallback": null,
+ "metaSize": false
+ },
+ "SPON": {
+ "pos": "SPON",
+ "h": 1,
+ "id": "SPON",
+ "w": 1,
+ "autoFetch": false,
+ "clean": "mrtcleanSPON",
+ "dest": "mrtdestSPON",
+ "enable": true,
+ "fallback": null,
+ "metaSize": false,
+ "staticLayout": false
+ },
+ "TXTL": {
+ "id": "TXTL",
+ "w": 120,
+ "h": 170,
+ "css": "#fc_align a,#tl1_slug{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:11px}.ad-tl2b{overflow:hidden;text-align:left}p{margin:0}a{color:#020e65}a:hover{color:#0078ff}.y-fp-pg-controls{margin-top:5px;margin-bottom:5px}#tl1_slug{color:#999}a:link{text-decoration:none}",
+ "autoFetch": false,
+ "clean": "mrtcleanTXTL",
+ "dest": "mrtdestTXTL",
+ "enable": true,
+ "fallback": null,
+ "metaSize": false,
+ "staticLayout": false
+ },
+ "WFPAD": {
+ "id": "WFPAD",
+ "w": 320,
+ "h": 50,
+ "autoFetch": false,
+ "enable": true,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1,
+ "lyr": 1,
+ "resize-to": 1
+ },
+ "metaSize": true,
+ "staticLayout": false,
+ "fdb": false,
+ "clean": "mrtcleanWFPAD",
+ "dest": "mrtdestWFPAD",
+ "fallback": null
+ }
+ },
+ "rotationTimingDisabled": true,
+ "useYAC": 0,
+ "usePE": 1,
+ "servicePath": "",
+ "xservicePath": "",
+ "beaconPath": "",
+ "renderPath": "",
+ "allowFiF": false,
+ "srenderPath": "https://s.yimg.com/rq/darla/2-9-19/html/r-sf.html",
+ "renderFile": "https://s.yimg.com/rq/darla/2-9-19/html/r-sf.html",
+ "sfbrenderPath": "https://s.yimg.com/rq/darla/2-9-19/html/r-sf.html",
+ "msgPath": "https://fc.yahoo.com/sdarla/2-9-19/html/msg.html",
+ "cscPath": "https://s.yimg.com/rq/darla/2-9-19/html/r-csc.html",
+ "root": "sdarla",
+ "edgeRoot": "http://l.yimg.com/rq/darla/2-9-19",
+ "sedgeRoot": "https://s.yimg.com/rq/darla/2-9-19",
+ "version": "2-9-19",
+ "tpbURI": "",
+ "hostFile": "https://s.yimg.com/rq/darla/2-9-19/js/g-r-min.js",
+ "beaconsDisabled": true,
+ "fdb_locale": "What don't you like about this ad?|It's offensive|Something else|Thank you for helping us improve your Yahoo experience|It's not relevant|It's distracting|I don't like this ad|Send|Done|Why do I see ads?|Learn more about your feedback.",
+ "property": "",
+ "lang": "en-US",
+ "debug": false,
+ "auto_render": true
+ }
+ window.DARLA_CONFIG.servicePath = window.location.protocol + "//fc.yahoo.com/sdarla/php/fc.php";
+ window.DARLA_CONFIG.dm = 1;
+ window.DARLA_CONFIG.onStartRequest = function() {
+ window._perfMark('DARLA_REQSTART');
+ };
+ window.DARLA_CONFIG.onFinishRequest = function() {
+ window._perfMark('DARLA_REQEND');
+ };
+ window.DARLA_CONFIG.onStartParse = function() {
+ window._perfMark('DARLA_PSTART');
+ };
+ window.DARLA_CONFIG.onSuccess = function(eventName) {
+ if (eventName === 'AUTO') {
+ return;
+ }
+ if (window._DarlaEvents) {
+ window._DarlaEvents.emit("success", {
+ eventName: eventName
+ });
+ }
+ window._perfMark('DARLA_DONE_' + eventName);
+ window._darlaSuccessEvt = eventName;
+ if (window._loadEvt) {
+ window._fireAdPerfBeacon(eventName);
+ }
+ };
+ window.DARLA_CONFIG.onStartPosRender = function(posItem) {
+ var posId = posItem & amp; & amp;
+ posItem.pos;
+ window._perfMark('DARLA_ADSTART_' + posId);
+ if (window._pushAdPerfMetric) {
+ window._pushAdPerfMetric("DARLA_ADSTART_" + posId);
+ }
+ };
+ window.DARLA_CONFIG.onFinishPosRender = function(posId, reqList, posItem) {
+ var ltime;
+ window._perfMark('DARLA_ADEND_' + posId);
+ window._perfMeasure('DARLA_RENDERTIME_' + posId, 'DARLA_ADSTART_' + posId, 'DARLA_ADEND_' + posId);
+ if (window._DarlaEvents) {
+ window._DarlaEvents.emit("finishrender", {
+ pos: posId,
+ list: reqList,
+ item: posItem
+ });
+ }
+ var aboveFoldPositions = ["MAST", "LDRB", "SPRZ", "SPL", "SPL-2", "LREC", "MON-1"];
+ if (window._pushAdPerfMetric) {
+ if (window.performance & amp; & amp; window.performance.now) {
+ ltime = window.performance.now();
+ }
+ window._pushAdPerfMetric("ADEND_" + posId);
+ var adModDiv = posItem.conf.dest.replace("dest", "") + "-sizer";
+ setTimeout(function() {
+ if (window.performance & amp; & amp; window.YAFT !== undefined & amp; & amp; window.YAFT.isInitialized() & amp; & amp; - 1 !== aboveFoldPositions.indexOf(posId)) {
+ window.YAFT.triggerCustomTiming(adModDiv, "", ltime);
+ }
+ }, 300);
+ }
+ };
+ window.DARLA_CONFIG.onBeforePosMsg = function(msg, posId) {
+ var maxWidth = 970,
+ maxHeight = 600;
+ var newWidth, newHeight, pos;
+ if ("MAST" !== posId) {
+ return;
+ }
+ if (msg === "resize-to") {
+ newWidth = arguments[2];
+ newHeight = arguments[3];
+ } else if (msg === "exp-push" || msg === "exp-ovr") {
+ pos = $sf.host.get("MAST");
+ newWidth = pos.conf.w + arguments[6] + arguments[7];
+ newHeight = pos.conf.h + arguments[5] + arguments[8];
+ }
+ if (newWidth & gt; maxWidth || newHeight & gt; maxHeight) {
+ return true;
+ }
+ };
+ window.DARLA_CONFIG.onFinishParse = function(eventName, response) {
+ try {
+ window._perfMark('DARLA_PEND');
+ if (eventName === "prefetch") {
+ window._DarlaPrefetchResponse = response;
+ }
+ if (window._DarlaEvents) {
+ window._DarlaEvents.emit("finishparse", {
+ response: response,
+ eventName: eventName
+ });
+ }
+ } catch (e) {
+ console.error(e);
+ throw e;
+ }
+ };
+ window.DARLA_CONFIG.onStartPrefetchRequest = function(eventName) {
+ window._perfMark('DARLA_PFSTART');
+ };
+ window.DARLA_CONFIG.onFinishPrefetchRequest = function(eventName, status) {
+ window._perfMark('DARLA_PFEND');
+ try {
+ window._DarlaEvents.emit('finishprefetch', {
+ status: status,
+ eventName: eventName
+ });
+ } catch (e) {
+ console.error(e);
+ throw e;
+ }
+ };
+ window.DARLA_CONFIG.onPosMsg = function(cmd, pos, msg) {
+ try {
+ if (window._DarlaEvents & amp; & amp; cmd === "cmsg") {
+ var posmsg = {
+ pos: pos,
+ msg: msg
+ };
+ window._DarlaEvents.emit("splashmsg", posmsg);
+ if (window._adPosMsg) {
+ window._adPosMsg[window._adPosMsg.length] = posmsg;
+ }
+ }
+ if (window._DarlaEvents & amp; & amp;
+ (cmd === "ui-fclose-show" || cmd === "ui-fclose-close")) {
+ setTimeout(function _emitAdResize() {
+ window._DarlaEvents.emit("adresize", {
+ pos: pos
+ })
+ }, 0);
+ }
+ } catch (e) {
+ console.error(e);
+ throw e;
+ }
+ };
+ (function() {
+ var _onloadEvt = function _onloadEvtHandler() {
+ window._loadEvt = true;
+ if (window._darlaSuccessEvt) {
+ window._fireAdPerfBeacon(window._darlaSuccessEvt);
+ }
+ };
+ if (window.addEventListener) {
+ window.addEventListener("load", _onloadEvt);
+ } else if (window.attachEvent) {
+ window.attachEvent("onload", _onloadEvt);
+ }
+
+ function _onDarlaError(type) {
+ return function _darlaErrHandler(evName) {
+ try {
+ if (window._DarlaEvents) {
+ window._DarlaEvents.emit("darlaerror" + evName);
+ window._DarlaEvents.emit("darlaerror", {
+ type: type,
+ eventName: evName,
+ error: true
+ });
+ }
+ } catch (e) {
+ console.error(e);
+ throw e;
+ }
+ };
+ };
+ window.DARLA_CONFIG.onRequestTimeout = _onDarlaError("requestTimeout");
+ window.DARLA_CONFIG.onRenderTimeout = _onDarlaError("renderTimeout");
+ window.DARLA_CONFIG.onFailure = _onDarlaError("failure");
+ window.DARLA_CONFIG.onIdle = function onDarlaIdle() {
+ try {
+ window._DarlaEvents & amp; & amp;
+ window._DarlaEvents.emit("onIdle");
+ } catch (e) {
+ console.error(e);
+ throw e;
+ }
+ };
+ })();
+ window.$sf = window.sf = {};
+ window.$sf.host = {
+ onReady: function(autorender, deferrender, firstRenderPos, deferRenderDelay) {
+ window._perfMark('DARLA_ONREADY');
+ window._perfMeasure('DARLA_ONREADY');
+ window.sfready = true;
+ if (window._DarlaEvents & amp; & amp; !autorender) {
+ window._DarlaEvents.emit("darlaboot");
+ } else if (autorender) {
+ window._perfMark('DARLA_RSTART');
+ if (typeof DARLA !== "undefined" & amp; & amp; DARLA) {
+ if (deferrender & amp; & amp; firstRenderPos) {
+ var firstBatchPos = [];
+ var prefetchedPos = DARLA.prefetched();
+ if (prefetchedPos.length & lt; = 0) {
+ return;
+ }
+ var firstRender = firstRenderPos.split(',');
+ if (firstRender & amp; & amp; firstRender.length & gt; 0) {
+ for (var i = 0; i & lt; firstRender.length; i++) {
+ var position = firstRender[i];
+ var index = prefetchedPos.indexOf(position);
+ if (index & gt; = 0) {
+ firstBatchPos = firstBatchPos.concat(prefetchedPos.splice(index, 1));
+ }
+ };
+ }
+ if (firstBatchPos.length & gt; 0) {
+ var renderWithRetry = function(pos) {
+ if (DARLA.inProgress()) {
+ var waittime = 600,
+ maxwait = 100,
+ deferRetry = 0,
+ interval;
+ interval = setInterval(function() {
+ deferRetry++;
+ if (!DARLA.inProgress()) {
+ clearInterval(interval);
+ DARLA.render(pos);
+ }
+ if (deferRetry & gt; maxwait) {
+ clearInterval(interval);
+ }
+ }, waittime);
+ } else {
+ DARLA.render(pos);
+ }
+ };
+ renderWithRetry(firstBatchPos);
+ setTimeout(renderWithRetry, deferRenderDelay, prefetchedPos);
+ } else {
+ DARLA.render();
+ }
+ } else {
+ DARLA.render();
+ }
+ }
+ }
+ }
+ };
+ window.sf_host = window.$sf.host;
+ document.onreadystatechange = function() {
+ if (document.readyState == "interactive") {
+ window._perfMark('DOM_INTERACTIVE');
+ }
+ };
+ </script>
+ <script type="text/x-safeframe-processed" id="processed_fc_2_1480670951598_91" _ver="2-9-19">{"positions":[{"id":"MAST-9","html":"&lt;!-- SpaceID=1197800621 loc=MAST noad --&gt;&lt;!-- fac-gd2-noad --&gt;&lt;!-- gd2-status-2 --&gt;&lt;!--QYZ CMS_NONE_AVAIL,,;;MAST;1197800621;2--&gt;","lowHTML":"","meta":{"y":{"pos":"MAST-9","cscHTML":"&lt;scr"+"ipt language=javascr"+"ipt&gt;\nif(window.xzq_d==null)window.xzq_d=new Object();\nwindow.xzq_d['qm7_wmKLc8s-']='(as$125k356ia,aid$qm7_wmKLc8s-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=MAST)';\n&lt;\/scr"+"ipt&gt;&lt;noscr"+"ipt&gt;&lt;img width=1 height=1 alt=\"\" src=\"https:\/\/beap-bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136j94k6v(gid$EsHOqzYzLjIC8gJQWD_CEQVfMTE4LgAAAACSBvOm,st$1480670950393462,si$4464051,sp$1197800621,pv$1,v$2.0))&amp;t=J_3-D_3&amp;al=(as$125k356ia,aid$qm7_wmKLc8s-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=MAST)\"&gt;&lt;\/noscr"+"ipt&gt;","cscURI":"https:\/\/beap-bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136j94k6v(gid$EsHOqzYzLjIC8gJQWD_CEQVfMTE4LgAAAACSBvOm,st$1480670950393462,si$4464051,sp$1197800621,pv$1,v$2.0))&amp;t=J_3-D_3&amp;al=(as$125k356ia,aid$qm7_wmKLc8s-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=MAST)","behavior":"non_exp","adID":"#2","matchID":"#2","bookID":"-1","slotID":"5","serveType":"-1","err":"invalid_space","hasExternal":false,"supp_ugc":"0","placementID":-1,"fdb":"{ \\\"fdb_url\\\": \\\"http:\\\\\/\\\\\/beap-bc.yahoo.com\\\\\/af?bv=1.0.0&amp;bs=(15ir45r6b(gid$jmTVQDk4LjHHbFsHU5jMkgKkMTAuNwAAAACljpkK,st$1402537233026922,srv$1,si$13303551,adv$25941429036,ct$25,li$3239250051,exp$1402544433026922,cr$4154984551,pbid$25372728133,v$1.0))&amp;al=(type${type},cmnt${cmnt},subo${subo})&amp;r=10\\\", \\\"fdb_on\\\": \\\"1\\\", \\\"fdb_exp\\\": \\\"1402544433026\\\", \\\"fdb_intl\\\": \\\"en-us\\\" , \\\"d\\\" : \\\"1\\\" }","serveTime":1480670950393462,"impID":"","creativeID":-1,"adc":"{\\\"label\\\":\\\"AdChoices\\\",\\\"url\\\":\\\"https:\\\\\/\\\\\/info.yahoo.com\\\\\/privacy\\\\\/us\\\\\/yahoo\\\\\/relevantads.html\\\",\\\"close\\\":\\\"Close\\\",\\\"closeAd\\\":\\\"Close Ad\\\",\\\"showAd\\\":\\\"Show ad\\\",\\\"collapse\\\":\\\"Collapse\\\",\\\"fdb\\\":\\\"I don't like this ad\\\",\\\"code\\\":\\\"en-us\\\"}","is3rd":0,"facStatus":{"fedStatusCode":"31","fedStatusMessage":"Yield optimization did not run"},"userProvidedData":{},"slotData":{"pt":"0","bamt":"10000000000.000000","namt":"0.000000","isLiveAdPreview":"false","is_ad_feedback":"false","trusted_custom":"false","isCompAds":"false","pvid":"EsHOqzYzLjIC8gJQWD_CEQVfMTE4LgAAAACSBvOm"}}}},{"id":"LDRB-9","html":"&lt;scr"+"ipt type=\"text\/javascr"+"ipt\"&gt;document.write('&lt;img src=\"https:\/\/na.ads.yahoo.com\/yax\/csc?sn=96f295ebb1cd1f3111529b3b829dba930a5fe386&amp;es=phjB8prRVIOYktYAciAVgO1J27f8gkYZDQ4jkzIlcit.OAieI14PgtjvS98fFx09cw9d3x5I7aDt3O2O0t4y0wZp1D4V57R5YQOPiWyfcP8gsAAzxuoDjPHu9ybKDaxtLkHo4055QHsnj9n.UH2UOKgKuq1r24h0Q3IAImut54ezetcVrzaH1zzNVJ8qKz08dopD7uJkR8J3mdY7Kz18xVGIwULmTnGEVTzlmrCyMlfpn5iJNtLmcY0D7vRss1Un15mR_hFiNRbNm9.n3v1kp4OnveksaAye8G3vuIV6reZ_x1MTtsFC&amp;ve=2&amp;ty=0&amp;brxw=true&amp;sasc=4&amp;yredirect=\" style=\"display:none\" height=\"1\" width=\"1\" alt=\"\"&gt;');\ndocument.write('&lt;scr','ipt id=\"yax_meta\" type=\"text\/x-yax-meta\"&gt;','{\"fdb_url\": \"https:\/\/beap-bc.yahoo.com\/af\/us?bv=1.0.0&amp;bs=(156jvcri3(gid$29445025-9c92-be87-6190-8fb345072543,st$1480670950395,li$200,cr$13360307,dmn$yahoo.com,srv$4,exp$1481175983099,ct$26,v$1.0,adv$3,pbid$20459933223,seid$269358051))&amp;al=(type${type},cmnt${cmnt},subo${subo})&amp;r=90582\", \"fdb_on\": \"1\", \"fdb_exp\": \"1480675750395\", \"fdb_intl\": \"en-US\", \"error\": \"\" }&lt;\/scr', 'ipt&gt;');\ndocument.write('&lt;scr', 'ipt type=\"text\/javascr"+"ipt\"&gt;', '(function(){ var w = window, sf = (w &amp;&amp; w.$sf &amp;&amp; w.$sf.ext), di = document.getElementById(\"yax_meta\"); if (sf &amp;&amp; typeof sf.msg == \"function\" &amp;&amp; di){ sf.msg({cmd:\"fdb\", data: di}); }})(); &lt;\/scr', 'ipt&gt;');\ndocument.write('\\n&lt;scr' + 'ipt async src=\\\"\\\/\\\/pagead2.googlesyndication.com\\\/pagead\\\/js\\\/adsbygoogle.js\\\"&gt;&lt;\\\/scr' + 'ipt&gt;\\n&lt;ins class=\\\"adsbygoogle\\\"\\n style=\\\"display:inline-block;width:728px;height:90px\\\"\\n data-ad-client=\\\"ca-pub-5786243031610172\\\"\\n data-ad-slot=\\\"1098636642\\\"\\n data-language=\\\"en\\\"\\n data-page-url=\\\"http:\/\/us.yahoo.com\/news\/\\\"\\n&gt;&lt;\\\/ins&gt;\\n&lt;scr' + 'ipt&gt;\\n(adsbygoogle = window.adsbygoogle || []).push({params: {google_allow_expandable_ads: false}});\\n&lt;\\\/scr' + 'ipt&gt;');\ndocument.write('&lt;scr"+"ipt type=\"text\/javascr"+"ipt\" src=\"https:\/\/ads.yahoo.com\/get-user-id?ver=2&amp;n=23351&amp;ts=1480670950&amp;sig=eda6862cae53c607\"&gt;&lt;\\\/scr"+"ipt&gt;');document.write('&lt;!--YAXR BannerAd CrId:13360307, RmxCrId:, DspCrId:--&gt;');&lt;\/scr"+"ipt&gt;","lowHTML":"","meta":{"y":{"pos":"LDRB-9","cscHTML":"&lt;scr"+"ipt language=javascr"+"ipt&gt; if(window.xzq_d==null)window.xzq_d=new Object();window.xzq_d['8V3_wmKLc8s-']='(as$125kfapq0,aid$8V3_wmKLc8s-,cr$-1,ct$25,at$H,eob$fac2_r=1:fed_status=17:gd1_match_id=-1:pt=8:rbkid=2315855551:ud_risk=0.00:win_s=4:ypos=LDRB)';&lt;\/scr"+"ipt&gt;&lt;noscr"+"ipt&gt;&lt;img width=1 height=1 alt=\"\" src=\"https:\/\/beap-bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136v9n8e8(gid$EsHOqzYzLjIC8gJQWD_CEQVfMTE4LgAAAACSBvOm,si$4464051,sp$1197800621,pv$1,v$2.0,st$1480670950588368))&amp;t=J_3-D_3&amp;al=(as$125kfapq0,aid$8V3_wmKLc8s-,cr$-1,ct$25,at$H,eob$fac2_r=1:fed_status=17:gd1_match_id=-1:pt=8:rbkid=2315855551:ud_risk=0.00:win_s=4:ypos=LDRB)\"&gt;&lt;\/noscr"+"ipt&gt;","cscURI":"https:\/\/beap-bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136v9n8e8(gid$EsHOqzYzLjIC8gJQWD_CEQVfMTE4LgAAAACSBvOm,si$4464051,sp$1197800621,pv$1,v$2.0,st$1480670950588368))&amp;t=J_3-D_3&amp;al=(as$125kfapq0,aid$8V3_wmKLc8s-,cr$-1,ct$25,at$H,eob$fac2_r=1:fed_status=17:gd1_match_id=-1:pt=8:rbkid=2315855551:ud_risk=0.00:win_s=4:ypos=LDRB)","behavior":"non_exp","adID":"1234567","matchID":"999999.999999.999999.999999","bookID":"2315855551","slotID":"2","serveType":"-1","err":false,"hasExternal":false,"supp_ugc":"0","placementID":"3536868551","fdb":"{ \\\"fdb_url\\\": \\\"https:\\\\\\\/\\\\\\\/beap-bc.yahoo.com\\\\\\\/af\\\\\\\/us?bv=1.0.0&amp;bs=(160f6vt02(gid$EsHOqzYzLjIC8gJQWD_CEQVfMTE4LgAAAACSBvOm,st$1480670950393462,srv$1,si$4464051,ct$25,exp$1480678150393462,adv$26513753608,li$3536728551,cr$4528090051,v$1.0,pbid$20459933223,seid$269358051))&amp;al=(type${type},cmnt${cmnt},subo${subo})&amp;r=10\\\", \\\"fdb_on\\\": \\\"1\\\", \\\"fdb_exp\\\": \\\"1480678150393\\\", \\\"fdb_intl\\\": \\\"en-US\\\" }","serveTime":"1480670950393462","impID":"8V3_wmKLc8s-","creativeID":4528090051,"adc":"{\\\"label\\\":\\\"AdChoices\\\",\\\"url\\\":\\\"https:\\\\\/\\\\\/info.yahoo.com\\\\\/privacy\\\\\/us\\\\\/yahoo\\\\\/relevantads.html\\\",\\\"close\\\":\\\"Close\\\",\\\"closeAd\\\":\\\"Close Ad\\\",\\\"showAd\\\":\\\"Show ad\\\",\\\"collapse\\\":\\\"Collapse\\\",\\\"fdb\\\":\\\"I don't like this ad\\\",\\\"code\\\":\\\"en-us\\\"}","is3rd":1,"facStatus":{"fedStatusCode":"17","fedStatusMessage":"YAX\/YAM\/SAPY replaced GD2 ESOV line"},"userProvidedData":{},"slotData":{},"size":"728x90"}},"conf":{"w":728,"h":90}},{"id":"LREC-9","html":"&lt;!-- APT Vendor: Yahoo, Format: Standard Graphical --&gt;\n&lt;!-- https:\/\/beap-bc.yahoo.com\/yc\/YnY9MS4wLjAmYnM9KDE3aWVnYnVoMyhnaWQkRXNIT3F6WXpMaklDOGdKUVdEX0NFUVZmTVRFNExnQUFBQUNTQnZPbSxzdCQxNDgwNjcwOTUwMzkzNDYyLHNpJDQ0NjQwNTEsc3AkMTE5NzgwMDYyMSxjdCQyNSx5YngkbGVJSGdCWVhQbUJhakJ2SjFtTHBWUSxsbmckZW4tdXMsY3IkNDUyODc5NzA1MSx2JDIuMCxhaWQkaEdQX3dtS0xjOHMtLGJpJDIzMTY3MTUwNTEsbW1lJDk3NTU1OTEwODMwNjgzNzkwOTAsciQwLHlvbyQxLGFncCQzNTM3NjQ0MDUxLGFwJExSRUMpKQ\/2\/* \/\/--&gt;&lt;scr"+"ipt language=\"JavaScript\" type=\"text\/javascr"+"ipt\" src=\"https:\/\/global.adserver.yahoo.com\/a?f=794008165&amp;l=LREC&amp;c=r&amp;at=content=%22no_expandable%22&amp;site-country=tw&amp;t=1480670950.203220&amp;rs=guid:EsHOqzYzLjIC8gJQWD_CEQVfMTE4LgAAAACSBvOm%3Bspid:1197800621%3Bypos:LREC\"&gt;&lt;\/scr"+"ipt&gt;&lt;noscr"+"ipt&gt;&lt;iframe src=\"https:\/\/global.adserver.yahoo.com\/a?f=794008165&amp;l=LREC&amp;c=h&amp;bg=ffffff&amp;at=content=%22no_expandable%22&amp;site-country=tw&amp;t=1480670950.203220&amp;rs=guid:EsHOqzYzLjIC8gJQWD_CEQVfMTE4LgAAAACSBvOm%3Bspid:1197800621%3Bypos:LREC\" marginwidth=0 marginheight=0 width=\"300px\" height=\"250px\" hspace=0 vspace=0 frameborder=0 scrolling=no&gt;&lt;\/iframe&gt;&lt;\/noscr"+"ipt&gt;&lt;scr"+"ipt&gt;var url = \"\"; if(url &amp;&amp; url.search(\"http\") != -1){document.write('&lt;scr"+"ipt src=\"' + url + '\"&gt;&lt;\\\/scr"+"ipt&gt;');}&lt;\/scr"+"ipt&gt;&lt;!--QYZ 2316715051,4528797051,;;LREC;1197800621;1--&gt;","lowHTML":"","meta":{"y":{"pos":"LREC-9","cscHTML":"&lt;scr"+"ipt language=javascr"+"ipt&gt;\nif(window.xzq_d==null)window.xzq_d=new Object();\nwindow.xzq_d['hGP_wmKLc8s-']='(as$13a74dg8g,aid$hGP_wmKLc8s-,bi$2316715051,agp$3537644051,cr$4528797051,ct$25,at$H,eob$gd1_match_id=-1:ypos=LREC)';\n&lt;\/scr"+"ipt&gt;&lt;noscr"+"ipt&gt;&lt;img width=1 height=1 alt=\"\" src=\"https:\/\/beap-bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136j94k6v(gid$EsHOqzYzLjIC8gJQWD_CEQVfMTE4LgAAAACSBvOm,st$1480670950393462,si$4464051,sp$1197800621,pv$1,v$2.0))&amp;t=J_3-D_3&amp;al=(as$13a74dg8g,aid$hGP_wmKLc8s-,bi$2316715051,agp$3537644051,cr$4528797051,ct$25,at$H,eob$gd1_match_id=-1:ypos=LREC)\"&gt;&lt;\/noscr"+"ipt&gt;","cscURI":"https:\/\/beap-bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136j94k6v(gid$EsHOqzYzLjIC8gJQWD_CEQVfMTE4LgAAAACSBvOm,st$1480670950393462,si$4464051,sp$1197800621,pv$1,v$2.0))&amp;t=J_3-D_3&amp;al=(as$13a74dg8g,aid$hGP_wmKLc8s-,bi$2316715051,agp$3537644051,cr$4528797051,ct$25,at$H,eob$gd1_match_id=-1:ypos=LREC)","behavior":"non_exp","adID":"9755591083068379090","matchID":"999999.999999.999999.999999","bookID":"2316715051","slotID":"3","serveType":"-1","err":false,"hasExternal":true,"supp_ugc":"0","placementID":"3537644051","fdb":"{ \\\"fdb_url\\\": \\\"https:\\\\\\\/\\\\\\\/beap-bc.yahoo.com\\\\\\\/af\\\\\\\/us?bv=1.0.0&amp;bs=(160mn63a4(gid$EsHOqzYzLjIC8gJQWD_CEQVfMTE4LgAAAACSBvOm,st$1480670950393462,srv$1,si$4464051,ct$25,exp$1480678150393462,adv$26100339340,li$3537563051,cr$4528797051,v$1.0,pbid$20459933223,seid$269358051))&amp;al=(type${type},cmnt${cmnt},subo${subo})&amp;r=10\\\", \\\"fdb_on\\\": \\\"1\\\", \\\"fdb_exp\\\": \\\"1480678150393\\\", \\\"fdb_intl\\\": \\\"en-US\\\" }","serveTime":"1480670950393462","impID":"hGP_wmKLc8s-","creativeID":4528797051,"adc":"{\\\"label\\\":\\\"AdChoices\\\",\\\"url\\\":\\\"https:\\\\\/\\\\\/info.yahoo.com\\\\\/privacy\\\\\/us\\\\\/yahoo\\\\\/relevantads.html\\\",\\\"close\\\":\\\"Close\\\",\\\"closeAd\\\":\\\"Close Ad\\\",\\\"showAd\\\":\\\"Show ad\\\",\\\"collapse\\\":\\\"Collapse\\\",\\\"fdb\\\":\\\"I don't like this ad\\\",\\\"code\\\":\\\"en-us\\\"}","is3rd":0,"facStatus":{"fedStatusCode":"10","fedStatusMessage":"no replacement for exclusive contract"},"userProvidedData":{},"slotData":{"pt":"3","bamt":"10000000000.000000","namt":"0.000000","isLiveAdPreview":"false","is_ad_feedback":"false","trusted_custom":"false","isCompAds":"false","adjf":"1.000000","alpha":"1.000000","ffrac":"1.000000","pcpm":"-1.000000","fc":"false","ecpm":0,"sdate":"1474886403","edate":"1514735940","bimpr":0,"pimpr":0,"spltp":100,"frp":"false","pvid":"EsHOqzYzLjIC8gJQWD_CEQVfMTE4LgAAAACSBvOm"},"size":"300x250"}},"conf":{"w":300,"h":250}},{"id":"LREC2-9","html":"&lt;scr"+"ipt type=\"text\/javascr"+"ipt\"&gt;document.write('&lt;img src=\"https:\/\/na.ads.yahoo.com\/yax\/csc?sn=0ecf50c9ddfd9be27419dd3f5725ee019b84c609&amp;es=c75W.Q3RVIMAQ5acHBf6nLasCwBYXUchx19EYhcULow2hmSiGFB8QkQTuzGKOI2YgFz86rrecT.VnD7itSv6fOKWw62y_2lBXbMI3w7QJSa4KoA75AtPfeSm3_6AXi497SVspvinZBLuhHJPoXYV.xYfs0RBd1k6KgfBQxHAQouSMFMYEIc6M86Yn8ro3UTWdBEvo34A.F7zTshvcB8YdvrVW9q_pWU2SUWK2BlBNDRs3nmNUgSlPfKy6VM6fB97FpuHLt.AEb2ZNFCzP1jBKzHAqYQXJEOSeQuLVVxxIK9QknAKgVhk&amp;ve=2&amp;ty=0&amp;brxw=true&amp;sasc=4&amp;yredirect=\" style=\"display:none\" height=\"1\" width=\"1\" alt=\"\"&gt;');\ndocument.write('&lt;scr','ipt id=\"yax_meta\" type=\"text\/x-yax-meta\"&gt;','{\"fdb_url\": \"https:\/\/beap-bc.yahoo.com\/af\/us?bv=1.0.0&amp;bs=(1563qq0sr(gid$1c30cb1b-1260-5a17-cb34-ddf2e95595d3,st$1480670950397,li$200,cr$13360308,dmn$yahoo.com,srv$4,exp$1481175983101,ct$26,v$1.0,adv$3,pbid$20459933223,seid$269358051))&amp;al=(type${type},cmnt${cmnt},subo${subo})&amp;r=60562\", \"fdb_on\": \"1\", \"fdb_exp\": \"1480675750397\", \"fdb_intl\": \"en-US\", \"error\": \"\" }&lt;\/scr', 'ipt&gt;');\ndocument.write('&lt;scr', 'ipt type=\"text\/javascr"+"ipt\"&gt;', '(function(){ var w = window, sf = (w &amp;&amp; w.$sf &amp;&amp; w.$sf.ext), di = document.getElementById(\"yax_meta\"); if (sf &amp;&amp; typeof sf.msg == \"function\" &amp;&amp; di){ sf.msg({cmd:\"fdb\", data: di}); }})(); &lt;\/scr', 'ipt&gt;');\ndocument.write('&lt;scr' + 'ipt async src=\\\"\\\/\\\/pagead2.googlesyndication.com\\\/pagead\\\/js\\\/adsbygoogle.js\\\"&gt;&lt;\\\/scr' + 'ipt&gt;\\n&lt;ins class=\\\"adsbygoogle\\\"\\n style=\\\"display:inline-block;width:300px;height:250px\\\"\\n data-ad-client=\\\"ca-pub-5786243031610172\\\"\\n data-ad-slot=\\\"1098636642\\\"\\n data-language=\\\"en\\\"\\n data-page-url=\\\"http:\/\/us.yahoo.com\/news\/\\\"\\n&gt;&lt;\\\/ins&gt;\\n&lt;scr' + 'ipt&gt;\\n(adsbygoogle = window.adsbygoogle || []).push({params: {google_allow_expandable_ads: false}});\\n&lt;\\\/scr' + 'ipt&gt;\\n&lt;iframe height=\\\"1\\\" width=\\\"1\\\" style=\\\"display: none;\\\" scrolling=\\\"no\\\" allowtransparency=\\\"true\\\" src=\\\"https:\\\/\\\/s.yimg.com\\\/dh\\\/ap\\\/ssp_cookie_sync\\\/us.html\\\"&gt;&lt;\\\/iframe&gt;');\ndocument.write('&lt;scr"+"ipt type=\"text\/javascr"+"ipt\" src=\"https:\/\/ads.yahoo.com\/get-user-id?ver=2&amp;n=23351&amp;ts=1480670950&amp;sig=eda6862cae53c607\"&gt;&lt;\\\/scr"+"ipt&gt;');document.write('&lt;!--YAXR BannerAd CrId:13360308, RmxCrId:, DspCrId:--&gt;');&lt;\/scr"+"ipt&gt;","lowHTML":"","meta":{"y":{"pos":"LREC2-9","cscHTML":"&lt;scr"+"ipt language=javascr"+"ipt&gt; if(window.xzq_d==null)window.xzq_d=new Object();window.xzq_d['F2n_wmKLc8s-']='(as$125oirn5e,aid$F2n_wmKLc8s-,cr$-1,ct$25,at$H,eob$fac2_r=1:fed_status=17:gd1_match_id=-1:pt=8:rbkid=2315851051:ud_risk=0.00:win_s=4:ypos=LREC2)';&lt;\/scr"+"ipt&gt;&lt;noscr"+"ipt&gt;&lt;img width=1 height=1 alt=\"\" src=\"https:\/\/beap-bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136v9n8e8(gid$EsHOqzYzLjIC8gJQWD_CEQVfMTE4LgAAAACSBvOm,si$4464051,sp$1197800621,pv$1,v$2.0,st$1480670950588368))&amp;t=J_3-D_3&amp;al=(as$125oirn5e,aid$F2n_wmKLc8s-,cr$-1,ct$25,at$H,eob$fac2_r=1:fed_status=17:gd1_match_id=-1:pt=8:rbkid=2315851051:ud_risk=0.00:win_s=4:ypos=LREC2)\"&gt;&lt;\/noscr"+"ipt&gt;","cscURI":"https:\/\/beap-bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136v9n8e8(gid$EsHOqzYzLjIC8gJQWD_CEQVfMTE4LgAAAACSBvOm,si$4464051,sp$1197800621,pv$1,v$2.0,st$1480670950588368))&amp;t=J_3-D_3&amp;al=(as$125oirn5e,aid$F2n_wmKLc8s-,cr$-1,ct$25,at$H,eob$fac2_r=1:fed_status=17:gd1_match_id=-1:pt=8:rbkid=2315851051:ud_risk=0.00:win_s=4:ypos=LREC2)","behavior":"non_exp","adID":"1234567","matchID":"999999.999999.999999.999999","bookID":"2315851051","slotID":"4","serveType":"-1","err":false,"hasExternal":false,"supp_ugc":"0","placementID":"3536904551","fdb":"{ \\\"fdb_url\\\": \\\"https:\\\\\\\/\\\\\\\/beap-bc.yahoo.com\\\\\\\/af\\\\\\\/us?bv=1.0.0&amp;bs=(160sgbn69(gid$EsHOqzYzLjIC8gJQWD_CEQVfMTE4LgAAAACSBvOm,st$1480670950393462,srv$1,si$4464051,ct$25,exp$1480678150393462,adv$26513753608,li$3536764051,cr$4528075551,v$1.0,pbid$20459933223,seid$269358051))&amp;al=(type${type},cmnt${cmnt},subo${subo})&amp;r=10\\\", \\\"fdb_on\\\": \\\"1\\\", \\\"fdb_exp\\\": \\\"1480678150393\\\", \\\"fdb_intl\\\": \\\"en-US\\\" }","serveTime":"1480670950393462","impID":"F2n_wmKLc8s-","creativeID":4528075551,"adc":"{\\\"label\\\":\\\"AdChoices\\\",\\\"url\\\":\\\"https:\\\\\/\\\\\/info.yahoo.com\\\\\/privacy\\\\\/us\\\\\/yahoo\\\\\/relevantads.html\\\",\\\"close\\\":\\\"Close\\\",\\\"closeAd\\\":\\\"Close Ad\\\",\\\"showAd\\\":\\\"Show ad\\\",\\\"collapse\\\":\\\"Collapse\\\",\\\"fdb\\\":\\\"I don't like this ad\\\",\\\"code\\\":\\\"en-us\\\"}","is3rd":1,"facStatus":{"fedStatusCode":"17","fedStatusMessage":"YAX\/YAM\/SAPY replaced GD2 ESOV line"},"userProvidedData":{},"slotData":{},"size":"300x250"}},"conf":{"w":300,"h":250}},{"id":"FOOT","html":"&lt;!-- SpaceID=1197800621 loc=FOOT noad --&gt;&lt;!-- fac-gd2-noad --&gt;&lt;!-- gd2-status-2 --&gt;&lt;!--QYZ CMS_NONE_AVAIL,,;;FOOT;1197800621;2--&gt;","lowHTML":"","meta":{"y":{"pos":"FOOT","cscHTML":"&lt;scr"+"ipt language=javascr"+"ipt&gt;\nif(window.xzq_d==null)window.xzq_d=new Object();\nwindow.xzq_d['y1L_wmKLc8s-']='(as$125gk8fa1,aid$y1L_wmKLc8s-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=FOOT)';\n&lt;\/scr"+"ipt&gt;&lt;noscr"+"ipt&gt;&lt;img width=1 height=1 alt=\"\" src=\"https:\/\/beap-bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136j94k6v(gid$EsHOqzYzLjIC8gJQWD_CEQVfMTE4LgAAAACSBvOm,st$1480670950393462,si$4464051,sp$1197800621,pv$1,v$2.0))&amp;t=J_3-D_3&amp;al=(as$125gk8fa1,aid$y1L_wmKLc8s-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=FOOT)\"&gt;&lt;\/noscr"+"ipt&gt;","cscURI":"https:\/\/beap-bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136j94k6v(gid$EsHOqzYzLjIC8gJQWD_CEQVfMTE4LgAAAACSBvOm,st$1480670950393462,si$4464051,sp$1197800621,pv$1,v$2.0))&amp;t=J_3-D_3&amp;al=(as$125gk8fa1,aid$y1L_wmKLc8s-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=FOOT)","behavior":"non_exp","adID":"#2","matchID":"#2","bookID":"-1","slotID":"0","serveType":"-1","err":"invalid_space","hasExternal":false,"supp_ugc":"0","placementID":-1,"fdb":"{ \\\"fdb_url\\\": \\\"http:\\\\\/\\\\\/beap-bc.yahoo.com\\\\\/af?bv=1.0.0&amp;bs=(15ir45r6b(gid$jmTVQDk4LjHHbFsHU5jMkgKkMTAuNwAAAACljpkK,st$1402537233026922,srv$1,si$13303551,adv$25941429036,ct$25,li$3239250051,exp$1402544433026922,cr$4154984551,pbid$25372728133,v$1.0))&amp;al=(type${type},cmnt${cmnt},subo${subo})&amp;r=10\\\", \\\"fdb_on\\\": \\\"1\\\", \\\"fdb_exp\\\": \\\"1402544433026\\\", \\\"fdb_intl\\\": \\\"en-us\\\" , \\\"d\\\" : \\\"1\\\" }","serveTime":"1480670950393462","impID":"","creativeID":-1,"adc":"{\\\"label\\\":\\\"AdChoices\\\",\\\"url\\\":\\\"https:\\\\\/\\\\\/info.yahoo.com\\\\\/privacy\\\\\/us\\\\\/yahoo\\\\\/relevantads.html\\\",\\\"close\\\":\\\"Close\\\",\\\"closeAd\\\":\\\"Close Ad\\\",\\\"showAd\\\":\\\"Show ad\\\",\\\"collapse\\\":\\\"Collapse\\\",\\\"fdb\\\":\\\"I don't like this ad\\\",\\\"code\\\":\\\"en-us\\\"}","is3rd":0,"facStatus":{"fedStatusCode":"0","fedStatusMessage":"federation is not configured for ad slot"},"userProvidedData":{},"slotData":{"pt":"0","bamt":"10000000000.000000","namt":"0.000000","isLiveAdPreview":"false","is_ad_feedback":"false","trusted_custom":"false","isCompAds":"false","pvid":"EsHOqzYzLjIC8gJQWD_CEQVfMTE4LgAAAACSBvOm"}}}},{"id":"FSRVY","html":"&lt;!-- APT Vendor: Right Media, Format: Standard Graphical --&gt;\n&lt;!-- BEGIN STANDARD TAG - 1 x 1 - APT Run-of Yahoo US O&amp;O Redirects - DO NOT MODIFY --&gt;\n&lt;SCR"+"IPT TYPE=\"text\/javascr"+"ipt\" SRC=\"https:\/\/na.ads.yahoo.com\/yax\/banner?ve=1&amp;tt=1&amp;si=269358051&amp;asz=1x1&amp;u=http:\/\/us.yahoo.com\/news\/&amp;gdAdId=Xlj_wmKLc8s-&amp;gdUuid=EsHOqzYzLjIC8gJQWD_CEQVfMTE4LgAAAACSBvOm&amp;gdSt=1480670950393462&amp;publisher_blob=${RS}|EsHOqzYzLjIC8gJQWD_CEQVfMTE4LgAAAACSBvOm|1197800621|FSRVY|1480670950.203007|2-9-19:ysd:1&amp;pub_redirect=https:\/\/beap-bc.yahoo.com\/yc\/YnY9MS4wLjAmYnM9KDE3amdzYjlwbShnaWQkRXNIT3F6WXpMaklDOGdKUVdEX0NFUVZmTVRFNExnQUFBQUNTQnZPbSxzdCQxNDgwNjcwOTUwMzkzNDYyLHNpJDQ0NjQwNTEsc3AkMTE5NzgwMDYyMSxjdCQyNSx5YngkbGVJSGdCWVhQbUJhakJ2SjFtTHBWUSxsbmckZW4tdXMsY3IkNDUyODE3NzA1MSx2JDIuMCxhaWQkWGxqX3dtS0xjOHMtLGJpJDIzMTU5MzIwNTEsbW1lJDk3NTI1MTU4ODY0ODQ0NDE4NTAsciQwLHlvbyQxLGFncCQzNTM3MDA2NTUxLGFwJEZTUlZZKSk\/1\/*&amp;K=1\"&gt;&lt;\/SCR"+"IPT&gt;\n&lt;!-- END TAG --&gt;&lt;scr"+"ipt&gt;var url = \"\"; if(url &amp;&amp; url.search(\"http\") != -1){document.write('&lt;scr"+"ipt src=\"' + url + '\"&gt;&lt;\\\/scr"+"ipt&gt;');}&lt;\/scr"+"ipt&gt;&lt;!--QYZ 2315932051,4528177051,;;FSRVY;1197800621;1--&gt;","lowHTML":"","meta":{"y":{"pos":"FSRVY","cscHTML":"&lt;scr"+"ipt language=javascr"+"ipt&gt;\nif(window.xzq_d==null)window.xzq_d=new Object();\nwindow.xzq_d['Xlj_wmKLc8s-']='(as$13a4jg26r,aid$Xlj_wmKLc8s-,bi$2315932051,agp$3537006551,cr$4528177051,ct$25,at$H,eob$gd1_match_id=-1:ypos=FSRVY)';\n&lt;\/scr"+"ipt&gt;&lt;noscr"+"ipt&gt;&lt;img width=1 height=1 alt=\"\" src=\"https:\/\/beap-bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136j94k6v(gid$EsHOqzYzLjIC8gJQWD_CEQVfMTE4LgAAAACSBvOm,st$1480670950393462,si$4464051,sp$1197800621,pv$1,v$2.0))&amp;t=J_3-D_3&amp;al=(as$13a4jg26r,aid$Xlj_wmKLc8s-,bi$2315932051,agp$3537006551,cr$4528177051,ct$25,at$H,eob$gd1_match_id=-1:ypos=FSRVY)\"&gt;&lt;\/noscr"+"ipt&gt;","cscURI":"https:\/\/beap-bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136j94k6v(gid$EsHOqzYzLjIC8gJQWD_CEQVfMTE4LgAAAACSBvOm,st$1480670950393462,si$4464051,sp$1197800621,pv$1,v$2.0))&amp;t=J_3-D_3&amp;al=(as$13a4jg26r,aid$Xlj_wmKLc8s-,bi$2315932051,agp$3537006551,cr$4528177051,ct$25,at$H,eob$gd1_match_id=-1:ypos=FSRVY)","behavior":"non_exp","adID":"9752515886484441850","matchID":"999999.999999.999999.999999","bookID":"2315932051","slotID":"1","serveType":"-1","err":false,"hasExternal":false,"supp_ugc":"0","placementID":"3537006551","fdb":"{ \\\"fdb_url\\\": \\\"https:\\\\\\\/\\\\\\\/beap-bc.yahoo.com\\\\\\\/af\\\\\\\/us?bv=1.0.0&amp;bs=(1608jdljp(gid$EsHOqzYzLjIC8gJQWD_CEQVfMTE4LgAAAACSBvOm,st$1480670950393462,srv$1,si$4464051,ct$25,exp$1480678150393462,adv$26513753608,li$3536867051,cr$4528177051,v$1.0,pbid$20459933223,seid$269358051))&amp;al=(type${type},cmnt${cmnt},subo${subo})&amp;r=10\\\", \\\"fdb_on\\\": \\\"1\\\", \\\"fdb_exp\\\": \\\"1480678150393\\\", \\\"fdb_intl\\\": \\\"en-US\\\" }","serveTime":"1480670950393462","impID":"Xlj_wmKLc8s-","creativeID":4528177051,"adc":"{\\\"label\\\":\\\"AdChoices\\\",\\\"url\\\":\\\"https:\\\\\/\\\\\/info.yahoo.com\\\\\/privacy\\\\\/us\\\\\/yahoo\\\\\/relevantads.html\\\",\\\"close\\\":\\\"Close\\\",\\\"closeAd\\\":\\\"Close Ad\\\",\\\"showAd\\\":\\\"Show ad\\\",\\\"collapse\\\":\\\"Collapse\\\",\\\"fdb\\\":\\\"I don't like this ad\\\",\\\"code\\\":\\\"en-us\\\"}","is3rd":1,"facStatus":{"fedStatusCode":"0","fedStatusMessage":"federation is not configured for ad slot"},"userProvidedData":{},"slotData":{"pt":"8","bamt":"10000000000.000000","namt":"0.000000","isLiveAdPreview":"false","is_ad_feedback":"false","trusted_custom":"false","isCompAds":"false","adjf":"1.000000","alpha":"-1.000000","ffrac":"1.000000","pcpm":"-1.000000","fc":"false","sdate":"1474408390","edate":"1561953540","bimpr":82733924352,"pimpr":0,"spltp":0,"frp":"false","pvid":"EsHOqzYzLjIC8gJQWD_CEQVfMTE4LgAAAACSBvOm"},"size":"1x1"}},"conf":{"w":1,"h":1}}],"conf":{"useYAC":0,"usePE":1,"servicePath":"","xservicePath":"","beaconPath":"","renderPath":"","allowFiF":false,"srenderPath":"https:\/\/s.yimg.com\/rq\/darla\/2-9-19\/html\/r-sf.html","renderFile":"https:\/\/s.yimg.com\/rq\/darla\/2-9-19\/html\/r-sf.html","sfbrenderPath":"https:\/\/s.yimg.com\/rq\/darla\/2-9-19\/html\/r-sf.html","msgPath":"https:\/\/fc.yahoo.com\/sdarla\/2-9-19\/html\/msg.html","cscPath":"https:\/\/s.yimg.com\/rq\/darla\/2-9-19\/html\/r-csc.html","root":"sdarla","edgeRoot":"http:\/\/l.yimg.com\/rq\/darla\/2-9-19","sedgeRoot":"https:\/\/s.yimg.com\/rq\/darla\/2-9-19","version":"2-9-19","tpbURI":"","hostFile":"https:\/\/s.yimg.com\/rq\/darla\/2-9-19\/js\/g-r-min.js","property":"fp_en-US","fdb_locale":"What don't you like about this ad?|It's offensive|Something else|Thank you for helping us improve your Yahoo experience|It's not relevant|It's distracting|I don't like this ad|Send|Done|Why do I see ads?|Learn more about your feedback.","positions":{"MAST-9":{"dest":"destMAST-9","asz":"970x250","id":"MAST-9","h":"250","w":"970"},"LDRB-9":{"dest":"destLDRB-9","asz":"728x90","id":"LDRB-9","h":"90","w":"728"},"LREC-9":{"dest":"destLREC-9","asz":"300x250","id":"LREC-9","h":"250","w":"300"},"LREC2-9":{"dest":"destLREC2-9","asz":"300x250","id":"LREC2-9","h":"250","w":"300"},"FOOT":{"dest":"destFOOT","id":"FOOT"},"FSRVY":{"dest":"destFSRVY","id":"FSRVY","w":1,"h":1}},"events":{"DEFAULT":{"ult":{"pg":{"property":"fp_en-US","test":"news-d-162"}},"clw":{"LREC":{"blocked_by":"MON-1"},"MON-1":{"blocked_by":"LREC"},"MAST":{"blocked_by":"SPL,LDRB"},"LDRB":{"blocked_by":"MAST,SPL"},"SPL":{"blocked_by":"MAST,LDRB"}}}},"lang":"en-US","spaceID":"1197800621","debug":false,"asString":"{\"useYAC\":0,\"usePE\":1,\"servicePath\":\"\",\"xservicePath\":\"\",\"beaconPath\":\"\",\"renderPath\":\"\",\"allowFiF\":false,\"srenderPath\":\"https:\\\/\\\/s.yimg.com\\\/rq\\\/darla\\\/2-9-19\\\/html\\\/r-sf.html\",\"renderFile\":\"https:\\\/\\\/s.yimg.com\\\/rq\\\/darla\\\/2-9-19\\\/html\\\/r-sf.html\",\"sfbrenderPath\":\"https:\\\/\\\/s.yimg.com\\\/rq\\\/darla\\\/2-9-19\\\/html\\\/r-sf.html\",\"msgPath\":\"https:\\\/\\\/fc.yahoo.com\\\/sdarla\\\/2-9-19\\\/html\\\/msg.html\",\"cscPath\":\"https:\\\/\\\/s.yimg.com\\\/rq\\\/darla\\\/2-9-19\\\/html\\\/r-csc.html\",\"root\":\"sdarla\",\"edgeRoot\":\"http:\\\/\\\/l.yimg.com\\\/rq\\\/darla\\\/2-9-19\",\"sedgeRoot\":\"https:\\\/\\\/s.yimg.com\\\/rq\\\/darla\\\/2-9-19\",\"version\":\"2-9-19\",\"tpbURI\":\"\",\"hostFile\":\"https:\\\/\\\/s.yimg.com\\\/rq\\\/darla\\\/2-9-19\\\/js\\\/g-r-min.js\",\"property\":\"fp_en-US\",\"fdb_locale\":\"What don't you like about this ad?|It's offensive|Something else|Thank you for helping us improve your Yahoo experience|It's not relevant|It's distracting|I don't like this ad|Send|Done|Why do I see ads?|Learn more about your feedback.\",\"positions\":{\"MAST-9\":{\"dest\":\"destMAST-9\",\"asz\":\"970x250\",\"id\":\"MAST-9\",\"h\":\"250\",\"w\":\"970\"},\"LDRB-9\":{\"dest\":\"destLDRB-9\",\"asz\":\"728x90\",\"id\":\"LDRB-9\",\"h\":\"90\",\"w\":\"728\"},\"LREC-9\":{\"dest\":\"destLREC-9\",\"asz\":\"300x250\",\"id\":\"LREC-9\",\"h\":\"250\",\"w\":\"300\"},\"LREC2-9\":{\"dest\":\"destLREC2-9\",\"asz\":\"300x250\",\"id\":\"LREC2-9\",\"h\":\"250\",\"w\":\"300\"},\"FOOT\":{\"dest\":\"destFOOT\",\"id\":\"FOOT\"},\"FSRVY\":{\"dest\":\"destFSRVY\",\"id\":\"FSRVY\",\"w\":1,\"h\":1}},\"events\":{\"DEFAULT\":{\"ult\":{\"pg\":{\"property\":\"fp_en-US\",\"test\":\"news-d-162\"}},\"clw\":{\"LREC\":{\"blocked_by\":\"MON-1\"},\"MON-1\":{\"blocked_by\":\"LREC\"},\"MAST\":{\"blocked_by\":\"SPL,LDRB\"},\"LDRB\":{\"blocked_by\":\"MAST,SPL\"},\"SPL\":{\"blocked_by\":\"MAST,LDRB\"}}}},\"lang\":\"en-US\",\"spaceID\":\"1197800621\",\"debug\":false}"},"meta":{"y":{"pageEndHTML":"&lt;scr"+"ipt language=javascr"+"ipt&gt;\n(function(){window.xzq_p=function(R){M=R};window.xzq_svr=function(R){J=R};function F(S){var T=document;if(T.xzq_i==null){T.xzq_i=new Array();T.xzq_i.c=0}var R=T.xzq_i;R[++R.c]=new Image();R[R.c].src=S}window.xzq_sr=function(){var S=window;var Y=S.xzq_d;if(Y==null){return }if(J==null){return }var T=J+M;if(T.length&gt;P){C();return }var X=\"\";var U=0;var W=Math.random();var V=(Y.hasOwnProperty!=null);var R;for(R in Y){if(typeof Y[R]==\"string\"){if(V&amp;&amp;!Y.hasOwnProperty(R)){continue}if(T.length+X.length+Y[R].length&lt;=P){X+=Y[R]}else{if(T.length+Y[R].length&gt;P){}else{U++;N(T,X,U,W);X=Y[R]}}}}if(U){U++}N(T,X,U,W);C()};function N(R,U,S,T){if(U.length&gt;0){R+=\"&amp;al=\"}F(R+U+\"&amp;s=\"+S+\"&amp;r=\"+T)}function C(){window.xzq_d=null;M=null;J=null}function K(R){xzq_sr()}function B(R){xzq_sr()}function L(U,V,W){if(W){var R=W.toString();var T=U;var Y=R.match(new RegExp(\"\\\\\\\\(([^\\\\\\\\)]*)\\\\\\\\)\"));Y=(Y[1].length&gt;0?Y[1]:\"e\");T=T.replace(new RegExp(\"\\\\\\\\([^\\\\\\\\)]*\\\\\\\\)\",\"g\"),\"(\"+Y+\")\");if(R.indexOf(T)&lt;0){var X=R.indexOf(\"{\");if(X&gt;0){R=R.substring(X,R.length)}else{return W}R=R.replace(new RegExp(\"([^a-zA-Z0-9$_])this([^a-zA-Z0-9$_])\",\"g\"),\"$1xzq_this$2\");var Z=T+\";var rv = f( \"+Y+\",this);\";var S=\"{var a0 = '\"+Y+\"';var ofb = '\"+escape(R)+\"' ;var f = new Function( a0, 'xzq_this', unescape(ofb));\"+Z+\"return rv;}\";return new Function(Y,S)}else{return W}}return V}window.xzq_eh=function(){if(E||I){this.onload=L(\"xzq_onload(e)\",K,this.onload,0);if(E&amp;&amp;typeof (this.onbeforeunload)!=O){this.onbeforeunload=L(\"xzq_dobeforeunload(e)\",B,this.onbeforeunload,0)}}};window.xzq_s=function(){setTimeout(\"xzq_sr()\",1)};var J=null;var M=null;var Q=navigator.appName;var H=navigator.appVersion;var G=navigator.userAgent;var A=parseInt(H);var D=Q.indexOf(\"Microsoft\");var E=D!=-1&amp;&amp;A&gt;=4;var I=(Q.indexOf(\"Netscape\")!=-1||Q.indexOf(\"Opera\")!=-1)&amp;&amp;A&gt;=4;var O=\"undefined\";var P=2000})();\n&lt;\/scr"+"ipt&gt;&lt;scr"+"ipt language=javascr"+"ipt&gt;\nif(window.xzq_svr)xzq_svr('https:\/\/beap-bc.yahoo.com\/');\nif(window.xzq_p)xzq_p('yi?bv=1.0.0&amp;bs=(136j94k6v(gid$EsHOqzYzLjIC8gJQWD_CEQVfMTE4LgAAAACSBvOm,st$1480670950393462,si$4464051,sp$1197800621,pv$1,v$2.0))&amp;t=J_3-D_3');\nif(window.xzq_s)xzq_s();\n&lt;\/scr"+"ipt&gt;&lt;noscr"+"ipt&gt;&lt;img width=1 height=1 alt=\"\" src=\"https:\/\/beap-bc.yahoo.com\/yi?bv=1.0.0&amp;bs=(136j94k6v(gid$EsHOqzYzLjIC8gJQWD_CEQVfMTE4LgAAAACSBvOm,st$1480670950393462,si$4464051,sp$1197800621,pv$1,v$2.0))&amp;t=J_3-D_3\"&gt;&lt;\/noscr"+"ipt&gt;&lt;scr"+"ipt&gt;(function(c){var d=\"https:\/\/\",a=c&amp;&amp;c.JSON,e=\"ypcdb\",g=document,b;function j(n,q,p,o){var m,r;try{m=new Date();m.setTime(m.getTime()+o*1000);g.cookie=[n,\"=\",encodeURIComponent(q),\"; domain=\",p,\"; path=\/; max-age=\",o,\"; expires=\",m.toUTCString()].join(\"\")}catch(r){}}function k(m){return function(){i(m)}}function i(n){var m,o;try{m=new Image();m.onerror=m.onload=function(){m.onerror=m.onload=null;m=null};m.src=n}catch(o){}}function f(o){var p=\"\",n,s,r,q;if(o){try{n=o.match(\/^https?:\\\/\\\/([^\\\/\\?]*)(yahoo\\.com|yimg\\.com|flickr\\.com|yahoo\\.net|rivals\\.com)(:\\d+)?([\\\/\\?]|$)\/);if(n&amp;&amp;n[2]){p=n[2]}n=(n&amp;&amp;n[1])||null;s=n?n.length-1:-1;r=n&amp;&amp;s&gt;=0?n[s]:null;if(r&amp;&amp;r!=\".\"&amp;&amp;r!=\"\/\"){p=\"\"}}catch(q){p=\"\"}}return p}function l(B,n,q,m,p){var u,s,t,A,r,F,z,E,C,y,o,D,x,v=1000,w=v;try{b=location}catch(z){b=null}try{if(a){C=a.parse(p)}else{y=new Function(\"return \"+p);C=y()}}catch(z){C=null}if(y){y=null}try{s=b.hostname;t=b.protocol;if(t){t+=\"\/\/\"}}catch(z){s=t=\"\"}if(!s){try{A=g.URL||b.href||\"\";r=A.match(\/^((http[s]?)\\:[\\\/]+)?([^:\\\/\\s]+|[\\:\\dabcdef\\.]+)\/i);if(r&amp;&amp;r[1]&amp;&amp;r[3]){t=r[1]||\"\";s=r[3]||\"\"}}catch(z){t=s=\"\"}}if(!s||!C||!t||!q){return}A=g.URL||b.href||\"\";E=f(A);if(!E||g.cookie.indexOf(\"ypcdb=\"+n)&gt;-1){return}if(t===d){q=m}u=0;while(F=q[u++]){o=F.lastIndexOf(\"=\");if(o!=-1){D=F.substr(1+o);x=C[D];if(x){setTimeout(k(t+F+x),w);w+=v}}}u=0;while(F=B[u++]){setTimeout(k(t+F),w);w+=v}setTimeout(function(){j(e,n,E,86400)},w)}function h(){l(['ads.yahoo.com\/get-user-id?ver=2&amp;s=800000005&amp;type=redirect&amp;ts=1480670950&amp;sig=e6c5cecf39f8a1dc','ads.yahoo.com\/get-user-id?ver=2&amp;s=800000004&amp;type=redirect&amp;ts=1480670950&amp;sig=69b88a427e809825'],'eb7099b617ef3d24849c5bec6e8a8278',['csync.flickr.com\/csync?ver=2.1','csync.yahooapis.com\/csync?ver=2.1'],['csync.flickr.com\/csync?ver=2.1','csync.yahooapis.com\/csync?ver=2.1'],'{\"2.1\":\"&amp;id=23351&amp;value=05ft2n1p3ittu%26o%3d3%26f%3dof&amp;optout=&amp;timeout=1480670950&amp;sig=11g9ngenb\"}')}if(c.addEventListener){c.addEventListener(\"load\",h,false)}else{if(c.attachEvent){c.attachEvent(\"onload\",h)}else{c.onload=h}}})(window);\n&lt;\/scr"+"ipt&gt;","pos_list":["MAST-9","LDRB-9","LREC-9","LREC2-9","FOOT","FSRVY"],"transID":"darla_prefetch_1480670950392_1574048066_3","k2_uri":"","fac_rt":"39603","spaceID":"1197800621","lookupTime":198,"procTime":206,"npv":0,"pvid":"EsHOqzYzLjIC8gJQWD_CEQVfMTE4LgAAAACSBvOm","serveTime":"1480670950393462","ep":{"site-attribute":"\"type\"=\"page\" ctype=\"minihome\" can_suppress_ugc=\"1\" LREC2=\"300x250,1x1\" LREC=\"300x250,1x1\" ESPON=\"120x30\" megamodal=true Y-BUCKET=\"news-d-162\"","tgt":"_blank","secure":true,"ref":"http:\/\/us.yahoo.com\/news\/","ult":{"pg":{"property":"fp_en-US","test":"news-d-162"}},"clw":{"LREC":{"blocked_by":"MON-1"},"MON-1":{"blocked_by":"LREC"},"MAST":{"blocked_by":"SPL,LDRB"},"LDRB":{"blocked_by":"MAST,SPL"},"SPL":{"blocked_by":"MAST,LDRB"}},"lang":"en-US","filter":"no_expandable;exp_iframe_expandable;","darlaID":"darla_instance_1480670950392_1484608650_2"},"pym":{".":"v0.0.9;;-;"},"host":"","filtered":[],"pe":"CWZ1bmN0aW9uIGRwZWQoKSB7IAoJaWYod2luZG93Lnh6cV9kPT1udWxsKXdpbmRvdy54enFfZD1uZXcgT2JqZWN0KCk7CndpbmRvdy54enFfZFsncW03X3dtS0xjOHMtJ109JyhhcyQxMjVrMzU2aWEsYWlkJHFtN193bUtMYzhzLSxjciQtMSxjdCQyNSxhdCRILGVvYiRnZDFfbWF0Y2hfaWQ9LTE6eXBvcz1NQVNUKSc7CglpZih3aW5kb3cueHpxX2Q9PW51bGwpd2luZG93Lnh6cV9kPW5ldyBPYmplY3QoKTt3aW5kb3cueHpxX2RbJzhWM193bUtMYzhzLSddPScoYXMkMTI1a2ZhcHEwLGFpZCQ4VjNfd21LTGM4cy0sY3IkLTEsY3QkMjUsYXQkSCxlb2IkZmFjMl9yPTE6ZmVkX3N0YXR1cz0xNzpnZDFfbWF0Y2hfaWQ9LTE6cHQ9ODpyYmtpZD0yMzE1ODU1NTUxOnVkX3Jpc2s9MC4wMDp3aW5fcz00Onlwb3M9TERSQiknOwoJaWYod2luZG93Lnh6cV9kPT1udWxsKXdpbmRvdy54enFfZD1uZXcgT2JqZWN0KCk7CndpbmRvdy54enFfZFsnaEdQX3dtS0xjOHMtJ109JyhhcyQxM2E3NGRnOGcsYWlkJGhHUF93bUtMYzhzLSxiaSQyMzE2NzE1MDUxLGFncCQzNTM3NjQ0MDUxLGNyJDQ1Mjg3OTcwNTEsY3QkMjUsYXQkSCxlb2IkZ2QxX21hdGNoX2lkPS0xOnlwb3M9TFJFQyknOwoJaWYod2luZG93Lnh6cV9kPT1udWxsKXdpbmRvdy54enFfZD1uZXcgT2JqZWN0KCk7d2luZG93Lnh6cV9kWydGMm5fd21LTGM4cy0nXT0nKGFzJDEyNW9pcm41ZSxhaWQkRjJuX3dtS0xjOHMtLGNyJC0xLGN0JDI1LGF0JEgsZW9iJGZhYzJfcj0xOmZlZF9zdGF0dXM9MTc6Z2QxX21hdGNoX2lkPS0xOnB0PTg6cmJraWQ9MjMxNTg1MTA1MTp1ZF9yaXNrPTAuMDA6d2luX3M9NDp5cG9zPUxSRUMyKSc7CglpZih3aW5kb3cueHpxX2Q9PW51bGwpd2luZG93Lnh6cV9kPW5ldyBPYmplY3QoKTsKd2luZG93Lnh6cV9kWyd5MUxfd21LTGM4cy0nXT0nKGFzJDEyNWdrOGZhMSxhaWQkeTFMX3dtS0xjOHMtLGNyJC0xLGN0JDI1LGF0JEgsZW9iJGdkMV9tYXRjaF9pZD0tMTp5cG9zPUZPT1QpJztpZih3aW5kb3cueHpxX2Q9PW51bGwpd2luZG93Lnh6cV9kPW5ldyBPYmplY3QoKTsKd2luZG93Lnh6cV9kWydYbGpfd21LTGM4cy0nXT0nKGFzJDEzYTRqZzI2cixhaWQkWGxqX3dtS0xjOHMtLGJpJDIzMTU5MzIwNTEsYWdwJDM1MzcwMDY1NTEsY3IkNDUyODE3NzA1MSxjdCQyNSxhdCRILGVvYiRnZDFfbWF0Y2hfaWQ9LTE6eXBvcz1GU1JWWSknOwoJCSB9OwpkcGVkLnRyYW5zSUQgPSAiZGFybGFfcHJlZmV0Y2hfMTQ4MDY3MDk1MDM5Ml8xNTc0MDQ4MDY2XzMiOwoKCWZ1bmN0aW9uIGRwZXIoKSB7IAoJCmlmKHdpbmRvdy54enFfc3ZyKXh6cV9zdnIoJ2h0dHBzOi8vYmVhcC1iYy55YWhvby5jb20vJyk7CmlmKHdpbmRvdy54enFfcCl4enFfcCgneWk\/YnY9MS4wLjAmYnM9KDEzNmo5NGs2dihnaWQkRXNIT3F6WXpMaklDOGdKUVdEX0NFUVZmTVRFNExnQUFBQUNTQnZPbSxzdCQxNDgwNjcwOTUwMzkzNDYyLHNpJDQ0NjQwNTEsc3AkMTE5NzgwMDYyMSxwdiQxLHYkMi4wKSkmdD1KXzMtRF8zJyk7CmlmKHdpbmRvdy54enFfcyl4enFfcygpOwoKCgkoZnVuY3Rpb24oYyl7dmFyIGQ9Imh0dHBzOi8vIixhPWMmJmMuSlNPTixlPSJ5cGNkYiIsZz1kb2N1bWVudCxiO2Z1bmN0aW9uIGoobixxLHAsbyl7dmFyIG0scjt0cnl7bT1uZXcgRGF0ZSgpO20uc2V0VGltZShtLmdldFRpbWUoKStvKjEwMDApO2cuY29va2llPVtuLCI9IixlbmNvZGVVUklDb21wb25lbnQocSksIjsgZG9tYWluPSIscCwiOyBwYXRoPS87IG1heC1hZ2U9IixvLCI7IGV4cGlyZXM9IixtLnRvVVRDU3RyaW5nKCldLmpvaW4oIiIpfWNhdGNoKHIpe319ZnVuY3Rpb24gayhtKXtyZXR1cm4gZnVuY3Rpb24oKXtpKG0pfX1mdW5jdGlvbiBpKG4pe3ZhciBtLG87dHJ5e209bmV3IEltYWdlKCk7bS5vbmVycm9yPW0ub25sb2FkPWZ1bmN0aW9uKCl7bS5vbmVycm9yPW0ub25sb2FkPW51bGw7bT1udWxsfTttLnNyYz1ufWNhdGNoKG8pe319ZnVuY3Rpb24gZihvKXt2YXIgcD0iIixuLHMscixxO2lmKG8pe3RyeXtuPW8ubWF0Y2goL15odHRwcz86XC9cLyhbXlwvXD9dKikoeWFob29cLmNvbXx5aW1nXC5jb218ZmxpY2tyXC5jb218eWFob29cLm5ldHxyaXZhbHNcLmNvbSkoOlxkKyk\/KFtcL1w\/XXwkKS8pO2lmKG4mJm5bMl0pe3A9blsyXX1uPShuJiZuWzFdKXx8bnVsbDtzPW4\/bi5sZW5ndGgtMTotMTtyPW4mJnM+PTA\/bltzXTpudWxsO2lmKHImJnIhPSIuIiYmciE9Ii8iKXtwPSIifX1jYXRjaChxKXtwPSIifX1yZXR1cm4gcH1mdW5jdGlvbiBsKEIsbixxLG0scCl7dmFyIHUscyx0LEEscixGLHosRSxDLHksbyxELHgsdj0xMDAwLHc9djt0cnl7Yj1sb2NhdGlvbn1jYXRjaCh6KXtiPW51bGx9dHJ5e2lmKGEpe0M9YS5wYXJzZShwKX1lbHNle3k9bmV3IEZ1bmN0aW9uKCJyZXR1cm4gIitwKTtDPXkoKX19Y2F0Y2goeil7Qz1udWxsfWlmKHkpe3k9bnVsbH10cnl7cz1iLmhvc3RuYW1lO3Q9Yi5wcm90b2NvbDtpZih0KXt0Kz0iLy8ifX1jYXRjaCh6KXtzPXQ9IiJ9aWYoIXMpe3RyeXtBPWcuVVJMfHxiLmhyZWZ8fCIiO3I9QS5tYXRjaCgvXigoaHR0cFtzXT8pXDpbXC9dKyk\/KFteOlwvXHNdK3xbXDpcZGFiY2RlZlwuXSspL2kpO2lmKHImJnJbMV0mJnJbM10pe3Q9clsxXXx8IiI7cz1yWzNdfHwiIn19Y2F0Y2goeil7dD1zPSIifX1pZighc3x8IUN8fCF0fHwhcSl7cmV0dXJufUE9Zy5VUkx8fGIuaHJlZnx8IiI7RT1mKEEpO2lmKCFFfHxnLmNvb2tpZS5pbmRleE9mKCJ5cGNkYj0iK24pPi0xKXtyZXR1cm59aWYodD09PWQpe3E9bX11PTA7d2hpbGUoRj1xW3UrK10pe289Ri5sYXN0SW5kZXhPZigiPSIpO2lmKG8hPS0xKXtEPUYuc3Vic3RyKDErbyk7eD1DW0RdO2lmKHgpe3NldFRpbWVvdXQoayh0K0YreCksdyk7dys9dn19fXU9MDt3aGlsZShGPUJbdSsrXSl7c2V0VGltZW91dChrKHQrRiksdyk7dys9dn1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aihlLG4sRSw4NjQwMCl9LHcpfWZ1bmN0aW9uIGgoKXtsKFsnYWRzLnlhaG9vLmNvbS9nZXQtdXNlci1pZD92ZXI9MiZzPTgwMDAwMDAwNSZ0eXBlPXJlZGlyZWN0JnRzPTE0ODA2NzA5NTAmc2lnPWU2YzVjZWNmMzlmOGExZGMnLCdhZHMueWFob28uY29tL2dldC11c2VyLWlkP3Zlcj0yJnM9ODAwMDAwMDA0JnR5cGU9cmVkaXJlY3QmdHM9MTQ4MDY3MDk1MCZzaWc9NjliODhhNDI3ZTgwOTgyNSddLCdlYjcwOTliNjE3ZWYzZDI0ODQ5YzViZWM2ZThhODI3OCcsWydjc3luYy5mbGlja3IuY29tL2NzeW5jP3Zlcj0yLjEnLCdjc3luYy55YWhvb2FwaXMuY29tL2NzeW5jP3Zlcj0yLjEnXSxbJ2NzeW5jLmZsaWNrci5jb20vY3N5bmM\/dmVyPTIuMScsJ2NzeW5jLnlhaG9vYXBpcy5jb20vY3N5bmM\/dmVyPTIuMSddLCd7IjIuMSI6IiZpZD0yMzM1MSZ2YWx1ZT0wNWZ0Mm4xcDNpdHR1JTI2byUzZDMlMjZmJTNkb2Ymb3B0b3V0PSZ0aW1lb3V0PTE0ODA2NzA5NTAmc2lnPTExZzluZ2VuYiJ9Jyl9aWYoYy5hZGRFdmVudExpc3RlbmVyKXtjLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGgsZmFsc2UpfWVsc2V7aWYoYy5hdHRhY2hFdmVudCl7Yy5hdHRhY2hFdmVudCgib25sb2FkIixoKX1lbHNle2Mub25sb2FkPWh9fX0pKHdpbmRvdyk7CgoKCQogfTsKZHBlci50cmFuc0lEID0iZGFybGFfcHJlZmV0Y2hfMTQ4MDY3MDk1MDM5Ml8xNTc0MDQ4MDY2XzMiOwoK"}}}</script>
+ <meta
+ itemprop="metadata/x-safeframe" content="eyJwb3NpdGlvbnMiOlt7ImlkIjoiTUFTVC05IiwibG93SFRNTCI6IiIsIm1ldGEiOnsieSI6eyJwb3MiOiJNQVNULTkiLCJiZWhhdmlvciI6Im5vbl9leHAiLCJhZElEIjoiIzIiLCJtYXRjaElEIjoiIzIiLCJib29rSUQiOiItMSIsInNsb3RJRCI6IjUiLCJzZXJ2ZVR5cGUiOiItMSIsImVyciI6ImludmFsaWRfc3BhY2UiLCJoYXNFeHRlcm5hbCI6ZmFsc2UsInN1cHBfdWdjIjoiIiwicGxhY2VtZW50SUQiOi0xLCJmZGIiOiJ7IFxcXCJmZGJfdXJsXFxcIjogXFxcImh0dHA6XFxcXFwvXFxcXFwvYmVhcC1iYy55YWhvby5jb21cXFxcXC9hZj9idj0xLjAuMCZicz0oMTVpcjQ1cjZiKGdpZCRqbVRWUURrNExqSEhiRnNIVTVqTWtnS2tNVEF1TndBQUFBQ2xqcGtLLHN0JDE0MDI1MzcyMzMwMjY5MjIsc3J2JDEsc2kkMTMzMDM1NTEsYWR2JDI1OTQxNDI5MDM2LGN0JDI1LGxpJDMyMzkyNTAwNTEsZXhwJDE0MDI1NDQ0MzMwMjY5MjIsY3IkNDE1NDk4NDU1MSxwYmlkJDI1MzcyNzI4MTMzLHYkMS4wKSkmYWw9KHR5cGUke3R5cGV9LGNtbnQke2NtbnR9LHN1Ym8ke3N1Ym99KSZyPTEwXFxcIiwgXFxcImZkYl9vblxcXCI6IFxcXCIxXFxcIiwgXFxcImZkYl9leHBcXFwiOiBcXFwiMTQwMjU0NDQzMzAyNlxcXCIsIFxcXCJmZGJfaW50bFxcXCI6IFxcXCJlbi11c1xcXCIgLCBcXFwiZFxcXCIgOiBcXFwiMVxcXCIgfSIsInNlcnZlVGltZSI6MTQ4MDY3MDk1MDM5MzQ2MiwiaW1wSUQiOiIiLCJjcmVhdGl2ZUlEIjotMSwiYWRjIjoie1xcXCJsYWJlbFxcXCI6XFxcIkFkQ2hvaWNlc1xcXCIsXFxcInVybFxcXCI6XFxcImh0dHBzOlxcXFxcL1xcXFxcL2luZm8ueWFob28uY29tXFxcXFwvcHJpdmFjeVxcXFxcL3VzXFxcXFwveWFob29cXFxcXC9yZWxldmFudGFkcy5odG1sXFxcIixcXFwiY2xvc2VcXFwiOlxcXCJDbG9zZVxcXCIsXFxcImNsb3NlQWRcXFwiOlxcXCJDbG9zZSBBZFxcXCIsXFxcInNob3dBZFxcXCI6XFxcIlNob3cgYWRcXFwiLFxcXCJjb2xsYXBzZVxcXCI6XFxcIkNvbGxhcHNlXFxcIixcXFwiZmRiXFxcIjpcXFwiSSBkb24ndCBsaWtlIHRoaXMgYWRcXFwiLFxcXCJjb2RlXFxcIjpcXFwiZW4tdXNcXFwifSIsImlzM3JkIjowLCJmYWNTdGF0dXMiOnt9LCJ1c2VyUHJvdmlkZWREYXRhIjp7fSwic2xvdERhdGEiOnt9fX19LHsiaWQiOiJMRFJCLTkiLCJsb3dIVE1MIjoiIiwibWV0YSI6eyJ5Ijp7InBvcyI6IkxEUkItOSIsImJlaGF2aW9yIjoibm9uX2V4cCIsImFkSUQiOiIxMjM0NTY3IiwibWF0Y2hJRCI6Ijk5OTk5OS45OTk5OTkuOTk5OTk5Ljk5OTk5OSIsImJvb2tJRCI6IjIzMTU4NTU1NTEiLCJzbG90SUQiOiIyIiwic2VydmVUeXBlIjoiLTEiLCJlcnIiOmZhbHNlLCJoYXNFeHRlcm5hbCI6ZmFsc2UsInN1cHBfdWdjIjoiIiwicGxhY2VtZW50SUQiOiIzNTM2ODY4NTUxIiwiZmRiIjoieyBcXFwiZmRiX3VybFxcXCI6IFxcXCJodHRwczpcXFxcXFxcL1xcXFxcXFwvYmVhcC1iYy55YWhvby5jb21cXFxcXFxcL2FmXFxcXFxcXC91cz9idj0xLjAuMCZicz0oMTYwZjZ2dDAyKGdpZCRFc0hPcXpZekxqSUM4Z0pRV0RfQ0VRVmZNVEU0TGdBQUFBQ1NCdk9tLHN0JDE0ODA2NzA5NTAzOTM0NjIsc3J2JDEsc2kkNDQ2NDA1MSxjdCQyNSxleHAkMTQ4MDY3ODE1MDM5MzQ2MixhZHYkMjY1MTM3NTM2MDgsbGkkMzUzNjcyODU1MSxjciQ0NTI4MDkwMDUxLHYkMS4wLHBiaWQkMjA0NTk5MzMyMjMsc2VpZCQyNjkzNTgwNTEpKSZhbD0odHlwZSR7dHlwZX0sY21udCR7Y21udH0sc3VibyR7c3Vib30pJnI9MTBcXFwiLCBcXFwiZmRiX29uXFxcIjogXFxcIjFcXFwiLCBcXFwiZmRiX2V4cFxcXCI6IFxcXCIxNDgwNjc4MTUwMzkzXFxcIiwgXFxcImZkYl9pbnRsXFxcIjogXFxcImVuLVVTXFxcIiB9Iiwic2VydmVUaW1lIjoiMTQ4MDY3MDk1MDM5MzQ2MiIsImltcElEIjoiOFYzX3dtS0xjOHMtIiwiY3JlYXRpdmVJRCI6NDUyODA5MDA1MSwiYWRjIjoie1xcXCJsYWJlbFxcXCI6XFxcIkFkQ2hvaWNlc1xcXCIsXFxcInVybFxcXCI6XFxcImh0dHBzOlxcXFxcL1xcXFxcL2luZm8ueWFob28uY29tXFxcXFwvcHJpdmFjeVxcXFxcL3VzXFxcXFwveWFob29cXFxcXC9yZWxldmFudGFkcy5odG1sXFxcIixcXFwiY2xvc2VcXFwiOlxcXCJDbG9zZVxcXCIsXFxcImNsb3NlQWRcXFwiOlxcXCJDbG9zZSBBZFxcXCIsXFxcInNob3dBZFxcXCI6XFxcIlNob3cgYWRcXFwiLFxcXCJjb2xsYXBzZVxcXCI6XFxcIkNvbGxhcHNlXFxcIixcXFwiZmRiXFxcIjpcXFwiSSBkb24ndCBsaWtlIHRoaXMgYWRcXFwiLFxcXCJjb2RlXFxcIjpcXFwiZW4tdXNcXFwifSIsImlzM3JkIjoxLCJmYWNTdGF0dXMiOnt9LCJ1c2VyUHJvdmlkZWREYXRhIjp7fSwic2xvdERhdGEiOnt9LCJzaXplIjoiNzI4eDkwIn19LCJjb25mIjp7InciOjcyOCwiaCI6OTB9fSx7ImlkIjoiTFJFQy05IiwibG93SFRNTCI6IiIsIm1ldGEiOnsieSI6eyJwb3MiOiJMUkVDLTkiLCJiZWhhdmlvciI6Im5vbl9leHAiLCJhZElEIjoiOTc1NTU5MTA4MzA2ODM3OTA5MCIsIm1hdGNoSUQiOiI5OTk5OTkuOTk5OTk5Ljk5OTk5OS45OTk5OTkiLCJib29rSUQiOiIyMzE2NzE1MDUxIiwic2xvdElEIjoiMyIsInNlcnZlVHlwZSI6Ii0xIiwiZXJyIjpmYWxzZSwiaGFzRXh0ZXJuYWwiOnRydWUsInN1cHBfdWdjIjoiIiwicGxhY2VtZW50SUQiOiIzNTM3NjQ0MDUxIiwiZmRiIjoieyBcXFwiZmRiX3VybFxcXCI6IFxcXCJodHRwczpcXFxcXFxcL1xcXFxcXFwvYmVhcC1iYy55YWhvby5jb21cXFxcXFxcL2FmXFxcXFxcXC91cz9idj0xLjAuMCZicz0oMTYwbW42M2E0KGdpZCRFc0hPcXpZekxqSUM4Z0pRV0RfQ0VRVmZNVEU0TGdBQUFBQ1NCdk9tLHN0JDE0ODA2NzA5NTAzOTM0NjIsc3J2JDEsc2kkNDQ2NDA1MSxjdCQyNSxleHAkMTQ4MDY3ODE1MDM5MzQ2MixhZHYkMjYxMDAzMzkzNDAsbGkkMzUzNzU2MzA1MSxjciQ0NTI4Nzk3MDUxLHYkMS4wLHBiaWQkMjA0NTk5MzMyMjMsc2VpZCQyNjkzNTgwNTEpKSZhbD0odHlwZSR7dHlwZX0sY21udCR7Y21udH0sc3VibyR7c3Vib30pJnI9MTBcXFwiLCBcXFwiZmRiX29uXFxcIjogXFxcIjFcXFwiLCBcXFwiZmRiX2V4cFxcXCI6IFxcXCIxNDgwNjc4MTUwMzkzXFxcIiwgXFxcImZkYl9pbnRsXFxcIjogXFxcImVuLVVTXFxcIiB9Iiwic2VydmVUaW1lIjoiMTQ4MDY3MDk1MDM5MzQ2MiIsImltcElEIjoiaEdQX3dtS0xjOHMtIiwiY3JlYXRpdmVJRCI6NDUyODc5NzA1MSwiYWRjIjoie1xcXCJsYWJlbFxcXCI6XFxcIkFkQ2hvaWNlc1xcXCIsXFxcInVybFxcXCI6XFxcImh0dHBzOlxcXFxcL1xcXFxcL2luZm8ueWFob28uY29tXFxcXFwvcHJpdmFjeVxcXFxcL3VzXFxcXFwveWFob29cXFxcXC9yZWxldmFudGFkcy5odG1sXFxcIixcXFwiY2xvc2VcXFwiOlxcXCJDbG9zZVxcXCIsXFxcImNsb3NlQWRcXFwiOlxcXCJDbG9zZSBBZFxcXCIsXFxcInNob3dBZFxcXCI6XFxcIlNob3cgYWRcXFwiLFxcXCJjb2xsYXBzZVxcXCI6XFxcIkNvbGxhcHNlXFxcIixcXFwiZmRiXFxcIjpcXFwiSSBkb24ndCBsaWtlIHRoaXMgYWRcXFwiLFxcXCJjb2RlXFxcIjpcXFwiZW4tdXNcXFwifSIsImlzM3JkIjowLCJmYWNTdGF0dXMiOnt9LCJ1c2VyUHJvdmlkZWREYXRhIjp7fSwic2xvdERhdGEiOnt9LCJzaXplIjoiMzAweDI1MCJ9fSwiY29uZiI6eyJ3IjozMDAsImgiOjI1MH19LHsiaWQiOiJMUkVDMi05IiwibG93SFRNTCI6IiIsIm1ldGEiOnsieSI6eyJwb3MiOiJMUkVDMi05IiwiYmVoYXZpb3IiOiJub25fZXhwIiwiYWRJRCI6IjEyMzQ1NjciLCJtYXRjaElEIjoiOTk5OTk5Ljk5OTk5OS45OTk5OTkuOTk5OTk5IiwiYm9va0lEIjoiMjMxNTg1MTA1MSIsInNsb3RJRCI6IjQiLCJzZXJ2ZVR5cGUiOiItMSIsImVyciI6ZmFsc2UsImhhc0V4dGVybmFsIjpmYWxzZSwic3VwcF91Z2MiOiIiLCJwbGFjZW1lbnRJRCI6IjM1MzY5MDQ1NTEiLCJmZGIiOiJ7IFxcXCJmZGJfdXJsXFxcIjogXFxcImh0dHBzOlxcXFxcXFwvXFxcXFxcXC9iZWFwLWJjLnlhaG9vLmNvbVxcXFxcXFwvYWZcXFxcXFxcL3VzP2J2PTEuMC4wJmJzPSgxNjBzZ2JuNjkoZ2lkJEVzSE9xell6TGpJQzhnSlFXRF9DRVFWZk1URTRMZ0FBQUFDU0J2T20sc3QkMTQ4MDY3MDk1MDM5MzQ2MixzcnYkMSxzaSQ0NDY0MDUxLGN0JDI1LGV4cCQxNDgwNjc4MTUwMzkzNDYyLGFkdiQyNjUxMzc1MzYwOCxsaSQzNTM2NzY0MDUxLGNyJDQ1MjgwNzU1NTEsdiQxLjAscGJpZCQyMDQ1OTkzMzIyMyxzZWlkJDI2OTM1ODA1MSkpJmFsPSh0eXBlJHt0eXBlfSxjbW50JHtjbW50fSxzdWJvJHtzdWJvfSkmcj0xMFxcXCIsIFxcXCJmZGJfb25cXFwiOiBcXFwiMVxcXCIsIFxcXCJmZGJfZXhwXFxcIjogXFxcIjE0ODA2NzgxNTAzOTNcXFwiLCBcXFwiZmRiX2ludGxcXFwiOiBcXFwiZW4tVVNcXFwiIH0iLCJzZXJ2ZVRpbWUiOiIxNDgwNjcwOTUwMzkzNDYyIiwiaW1wSUQiOiJGMm5fd21LTGM4cy0iLCJjcmVhdGl2ZUlEIjo0NTI4MDc1NTUxLCJhZGMiOiJ7XFxcImxhYmVsXFxcIjpcXFwiQWRDaG9pY2VzXFxcIixcXFwidXJsXFxcIjpcXFwiaHR0cHM6XFxcXFwvXFxcXFwvaW5mby55YWhvby5jb21cXFxcXC9wcml2YWN5XFxcXFwvdXNcXFxcXC95YWhvb1xcXFxcL3JlbGV2YW50YWRzLmh0bWxcXFwiLFxcXCJjbG9zZVxcXCI6XFxcIkNsb3NlXFxcIixcXFwiY2xvc2VBZFxcXCI6XFxcIkNsb3NlIEFkXFxcIixcXFwic2hvd0FkXFxcIjpcXFwiU2hvdyBhZFxcXCIsXFxcImNvbGxhcHNlXFxcIjpcXFwiQ29sbGFwc2VcXFwiLFxcXCJmZGJcXFwiOlxcXCJJIGRvbid0IGxpa2UgdGhpcyBhZFxcXCIsXFxcImNvZGVcXFwiOlxcXCJlbi11c1xcXCJ9IiwiaXMzcmQiOjEsImZhY1N0YXR1cyI6e30sInVzZXJQcm92aWRlZERhdGEiOnt9LCJzbG90RGF0YSI6e30sInNpemUiOiIzMDB4MjUwIn19LCJjb25mIjp7InciOjMwMCwiaCI6MjUwfX0seyJpZCI6IkZPT1QiLCJsb3dIVE1MIjoiIiwibWV0YSI6eyJ5Ijp7InBvcyI6IkZPT1QiLCJiZWhhdmlvciI6Im5vbl9leHAiLCJhZElEIjoiIzIiLCJtYXRjaElEIjoiIzIiLCJib29rSUQiOiItMSIsInNsb3RJRCI6IjAiLCJzZXJ2ZVR5cGUiOiItMSIsImVyciI6ImludmFsaWRfc3BhY2UiLCJoYXNFeHRlcm5hbCI6ZmFsc2UsInN1cHBfdWdjIjoiIiwicGxhY2VtZW50SUQiOi0xLCJmZGIiOiJ7IFxcXCJmZGJfdXJsXFxcIjogXFxcImh0dHA6XFxcXFwvXFxcXFwvYmVhcC1iYy55YWhvby5jb21cXFxcXC9hZj9idj0xLjAuMCZicz0oMTVpcjQ1cjZiKGdpZCRqbVRWUURrNExqSEhiRnNIVTVqTWtnS2tNVEF1TndBQUFBQ2xqcGtLLHN0JDE0MDI1MzcyMzMwMjY5MjIsc3J2JDEsc2kkMTMzMDM1NTEsYWR2JDI1OTQxNDI5MDM2LGN0JDI1LGxpJDMyMzkyNTAwNTEsZXhwJDE0MDI1NDQ0MzMwMjY5MjIsY3IkNDE1NDk4NDU1MSxwYmlkJDI1MzcyNzI4MTMzLHYkMS4wKSkmYWw9KHR5cGUke3R5cGV9LGNtbnQke2NtbnR9LHN1Ym8ke3N1Ym99KSZyPTEwXFxcIiwgXFxcImZkYl9vblxcXCI6IFxcXCIxXFxcIiwgXFxcImZkYl9leHBcXFwiOiBcXFwiMTQwMjU0NDQzMzAyNlxcXCIsIFxcXCJmZGJfaW50bFxcXCI6IFxcXCJlbi11c1xcXCIgLCBcXFwiZFxcXCIgOiBcXFwiMVxcXCIgfSIsInNlcnZlVGltZSI6IjE0ODA2NzA5NTAzOTM0NjIiLCJpbXBJRCI6IiIsImNyZWF0aXZlSUQiOi0xLCJhZGMiOiJ7XFxcImxhYmVsXFxcIjpcXFwiQWRDaG9pY2VzXFxcIixcXFwidXJsXFxcIjpcXFwiaHR0cHM6XFxcXFwvXFxcXFwvaW5mby55YWhvby5jb21cXFxcXC9wcml2YWN5XFxcXFwvdXNcXFxcXC95YWhvb1xcXFxcL3JlbGV2YW50YWRzLmh0bWxcXFwiLFxcXCJjbG9zZVxcXCI6XFxcIkNsb3NlXFxcIixcXFwiY2xvc2VBZFxcXCI6XFxcIkNsb3NlIEFkXFxcIixcXFwic2hvd0FkXFxcIjpcXFwiU2hvdyBhZFxcXCIsXFxcImNvbGxhcHNlXFxcIjpcXFwiQ29sbGFwc2VcXFwiLFxcXCJmZGJcXFwiOlxcXCJJIGRvbid0IGxpa2UgdGhpcyBhZFxcXCIsXFxcImNvZGVcXFwiOlxcXCJlbi11c1xcXCJ9IiwiaXMzcmQiOjAsImZhY1N0YXR1cyI6e30sInVzZXJQcm92aWRlZERhdGEiOnt9LCJzbG90RGF0YSI6e319fX0seyJpZCI6IkZTUlZZIiwibG93SFRNTCI6IiIsIm1ldGEiOnsieSI6eyJwb3MiOiJGU1JWWSIsImJlaGF2aW9yIjoibm9uX2V4cCIsImFkSUQiOiI5NzUyNTE1ODg2NDg0NDQxODUwIiwibWF0Y2hJRCI6Ijk5OTk5OS45OTk5OTkuOTk5OTk5Ljk5OTk5OSIsImJvb2tJRCI6IjIzMTU5MzIwNTEiLCJzbG90SUQiOiIxIiwic2VydmVUeXBlIjoiLTEiLCJlcnIiOmZhbHNlLCJoYXNFeHRlcm5hbCI6ZmFsc2UsInN1cHBfdWdjIjoiIiwicGxhY2VtZW50SUQiOiIzNTM3MDA2NTUxIiwiZmRiIjoieyBcXFwiZmRiX3VybFxcXCI6IFxcXCJodHRwczpcXFxcXFxcL1xcXFxcXFwvYmVhcC1iYy55YWhvby5jb21cXFxcXFxcL2FmXFxcXFxcXC91cz9idj0xLjAuMCZicz0oMTYwOGpkbGpwKGdpZCRFc0hPcXpZekxqSUM4Z0pRV0RfQ0VRVmZNVEU0TGdBQUFBQ1NCdk9tLHN0JDE0ODA2NzA5NTAzOTM0NjIsc3J2JDEsc2kkNDQ2NDA1MSxjdCQyNSxleHAkMTQ4MDY3ODE1MDM5MzQ2MixhZHYkMjY1MTM3NTM2MDgsbGkkMzUzNjg2NzA1MSxjciQ0NTI4MTc3MDUxLHYkMS4wLHBiaWQkMjA0NTk5MzMyMjMsc2VpZCQyNjkzNTgwNTEpKSZhbD0odHlwZSR7dHlwZX0sY21udCR7Y21udH0sc3VibyR7c3Vib30pJnI9MTBcXFwiLCBcXFwiZmRiX29uXFxcIjogXFxcIjFcXFwiLCBcXFwiZmRiX2V4cFxcXCI6IFxcXCIxNDgwNjc4MTUwMzkzXFxcIiwgXFxcImZkYl9pbnRsXFxcIjogXFxcImVuLVVTXFxcIiB9Iiwic2VydmVUaW1lIjoiMTQ4MDY3MDk1MDM5MzQ2MiIsImltcElEIjoiWGxqX3dtS0xjOHMtIiwiY3JlYXRpdmVJRCI6NDUyODE3NzA1MSwiYWRjIjoie1xcXCJsYWJlbFxcXCI6XFxcIkFkQ2hvaWNlc1xcXCIsXFxcInVybFxcXCI6XFxcImh0dHBzOlxcXFxcL1xcXFxcL2luZm8ueWFob28uY29tXFxcXFwvcHJpdmFjeVxcXFxcL3VzXFxcXFwveWFob29cXFxcXC9yZWxldmFudGFkcy5odG1sXFxcIixcXFwiY2xvc2VcXFwiOlxcXCJDbG9zZVxcXCIsXFxcImNsb3NlQWRcXFwiOlxcXCJDbG9zZSBBZFxcXCIsXFxcInNob3dBZFxcXCI6XFxcIlNob3cgYWRcXFwiLFxcXCJjb2xsYXBzZVxcXCI6XFxcIkNvbGxhcHNlXFxcIixcXFwiZmRiXFxcIjpcXFwiSSBkb24ndCBsaWtlIHRoaXMgYWRcXFwiLFxcXCJjb2RlXFxcIjpcXFwiZW4tdXNcXFwifSIsImlzM3JkIjoxLCJmYWNTdGF0dXMiOnt9LCJ1c2VyUHJvdmlkZWREYXRhIjp7fSwic2xvdERhdGEiOnt9LCJzaXplIjoiMXgxIn19LCJjb25mIjp7InciOjEsImgiOjF9fV0sImNvbmYiOm51bGwsIm1ldGEiOnsieSI6eyJwb3NfbGlzdCI6WyJNQVNULTkiLCJMRFJCLTkiLCJMUkVDLTkiLCJMUkVDMi05IiwiRk9PVCIsIkZTUlZZIl0sInRyYW5zSUQiOiJkYXJsYV9wcmVmZXRjaF8xNDgwNjcwOTUwMzkyXzE1NzQwNDgwNjZfMyIsImsyX3VyaSI6IiIsImZhY19ydCI6IjM5NjAzIiwic3BhY2VJRCI6IjExOTc4MDA2MjEiLCJsb29rdXBUaW1lIjoxOTgsInByb2NUaW1lIjoyMDYsIm5wdiI6MCwicHZpZCI6IkVzSE9xell6TGpJQzhnSlFXRF9DRVFWZk1URTRMZ0FBQUFDU0J2T20iLCJzZXJ2ZVRpbWUiOiIxNDgwNjcwOTUwMzkzNDYyIiwiZXAiOnsic2l0ZS1hdHRyaWJ1dGUiOiJcInR5cGVcIj1cInBhZ2VcIiBjdHlwZT1cIm1pbmlob21lXCIgY2FuX3N1cHByZXNzX3VnYz1cIjFcIiBMUkVDMj1cIjMwMHgyNTAsMXgxXCIgTFJFQz1cIjMwMHgyNTAsMXgxXCIgRVNQT049XCIxMjB4MzBcIiBtZWdhbW9kYWw9dHJ1ZSBZLUJVQ0tFVD1cIm5ld3MtZC0xNjJcIiIsInRndCI6Il9ibGFuayIsInNlY3VyZSI6dHJ1ZSwicmVmIjoiaHR0cDpcL1wvdXMueWFob28uY29tXC9uZXdzXC8iLCJ1bHQiOnsicGciOnsicHJvcGVydHkiOiJmcF9lbi1VUyIsInRlc3QiOiJuZXdzLWQtMTYyIn19LCJjbHciOnsiTFJFQyI6eyJibG9ja2VkX2J5IjoiTU9OLTEifSwiTU9OLTEiOnsiYmxvY2tlZF9ieSI6IkxSRUMifSwiTUFTVCI6eyJibG9ja2VkX2J5IjoiU1BMLExEUkIifSwiTERSQiI6eyJibG9ja2VkX2J5IjoiTUFTVCxTUEwifSwiU1BMIjp7ImJsb2NrZWRfYnkiOiJNQVNULExEUkIifX0sImxhbmciOiJlbi1VUyIsImZpbHRlciI6Im5vX2V4cGFuZGFibGU7ZXhwX2lmcmFtZV9leHBhbmRhYmxlOyIsImRhcmxhSUQiOiJkYXJsYV9pbnN0YW5jZV8xNDgwNjcwOTUwMzkyXzE0ODQ2MDg2NTBfMiJ9LCJweW0iOnsiLiI6InYwLjAuOTs7LTsifSwiaG9zdCI6IiIsImZpbHRlcmVkIjpbXX19fQ==" />
+
+ <!-- gq1-sdarlaws-008.adx.gq1.yahoo.com Fri Dec 2 01:29:10 PST 2016 -->
+ <script type="text/javascript">
+ if (typeof DARLA !== "undefined" & amp; & amp; DARLA) {
+ DARLA.config(window.DARLA_CONFIG);
+ window.sf_host.onReady(true, true, 'MAST-9,LDRB-9,LREC-9', 3000);
+ }
+ </script>
+ </div>
+ <script>
+ (function(root) {
+ /* -- Data -- */
+ root.App || (root.App = {});
+ root.App.now = 1480670950223;
+ root.App.main = {
+ "context": {
+ "dispatcher": {
+ "stores": {
+ "PageStore": {
+ "currentPageName": "news",
+ "currentRenderTargetId": "mrt",
+ "pagesConfigRaw": {
+ "base": {
+ "news": {
+ "layout": {
+ "name": "TwoColumnLayout",
+ "config": {
+ "Side": {
+ "isSticky": true
+ },
+ "UH": {
+ "height": 96,
+ "slotHeight": 96
+ },
+ "enablePrefetchResource": true,
+ "fetchNewAttribution": true,
+ "preview_spaceids": [1197801663, 1197801672, 1197801664, 1197801665, 1197801666, 1197801667, 1197801668, 1197801669, 1197801670, 1197801671],
+ "enableSide": false,
+ "Col1": {
+ "fluidLayout": false,
+ "linkRenderTarget": "modal"
+ },
+ "Header": {
+ "height": 125,
+ "isFixed": true,
+ "navContainerClasses": "Bgc($bg-content)",
+ "uhContainerClasses": "Bgc($bg-content)"
+ },
+ "contentWrapperClasses": "Panel-postopen_D(n)",
+ "disableResponsiveGrid": false,
+ "enableHeaderCollapse": true,
+ "hanldeNavrailOnScroll": true,
+ "Col2": {
+ "linkRenderTarget": "modal"
+ }
+ },
+ "meta": {
+ "name": {
+ "msapplication-TileColor": "#6e329d",
+ "msapplication-TileImage": "https:\u002F\u002Fs.yimg.com\u002Fos\u002Fmit\u002Fmedia\u002Fp\u002Fpresentation\u002Fimages\u002Ficons\u002Fwin8-tile-1484740.png",
+ "referrer": "origin",
+ "theme-color": "#400090",
+ "twitter:dnt": "on",
+ "twitter:site": "@Yahoo",
+ "application-name": "Yahoo News - Latest News &amp; Headlines",
+ "twitter:card": "summary",
+ "keywords": "news, news headlines, daily news, current events, top headlines, breaking news, news photos, news video, full coverage, yahoo news, yahoo",
+ "apple-itunes-app": "app-id=304158842"
+ },
+ "property": {
+ "og:type": "website",
+ "fb:app_id": "90376669494",
+ "og:site_name": "Yahoo News",
+ "twitter:site": "@YahooNews"
+ }
+ },
+ "title": "Yahoo News - Latest News &amp; Headlines",
+ "image": "https:\u002F\u002Fs.yimg.com\u002Fos\u002Fmit\u002Fmedia\u002Fm\u002Fsocial\u002Fimages\u002Fsocial_default_logo-1481777.png",
+ "description": "The latest news and headlines from Yahoo! News. Get breaking news stories and in-depth coverage with videos and photos."
+ },
+ "enableSpinner": true,
+ "regions": {
+ "UH": [{
+ "bundleName": "tdv2-applet-uh",
+ "name": "Header",
+ "perfLabel": "UH",
+ "config": {
+ "uh": {
+ "actions": {
+ "loadNav": false
+ },
+ "featureSwitches": {
+ "navrailCollapse": true
+ },
+ "follow": {
+ "style": {
+ "button": {
+ "inline": {}
+ },
+ "followcount": {}
+ },
+ "data": {
+ "icon": {
+ "follow": {}
+ }
+ },
+ "count": {},
+ "prefetchContent": true,
+ "renderTarget": "modal"
+ },
+ "help": {
+ "data": {
+ "items": {
+ "help": {
+ "url": {
+ "pathname": "\u002Fl\u002Fus\u002Fyahoo\u002Fnews_global\u002F"
+ }
+ },
+ "suggestions": {
+ "url": {
+ "pathname": "\u002Fforums\u002F204992"
+ }
+ }
+ }
+ }
+ },
+ "logo": {
+ "style": {
+ "property": {},
+ "yahoo": {},
+ "container": {}
+ }
+ },
+ "mail": {
+ "data": {
+ "icon": {
+ "mail": {}
+ }
+ },
+ "style": {
+ "button": {},
+ "mailcount": {}
+ }
+ },
+ "placeHolder": {
+ "width": ""
+ },
+ "profile": {
+ "mode": "client"
+ },
+ "promotedNotification": {
+ "enabled": true,
+ "promoId": "20160606",
+ "timeToResurrect": 1814400
+ },
+ "search": {
+ "autocomplete": {
+ "gossip": {
+ "url": {
+ "query": {}
+ }
+ }
+ },
+ "instantSearch": false,
+ "icon": {},
+ "queries": {},
+ "style": {
+ "input": {},
+ "container": {},
+ "search_button": {}
+ },
+ "verticalSearchButtonText": "SEARCH_VERT_NEWS",
+ "verticalSearchAction": "https:\u002F\u002Fnews.search.yahoo.com\u002Fsearch",
+ "verticalSearchEnabled": false
+ },
+ "searchOrigin": {
+ "fr": "uh3_news_web_gs",
+ "vfr": "uh3_news_vert_gs",
+ "fr2": "p:news,m:{FRSOURCE}"
+ },
+ "style": {
+ "container": {
+ "wrapper_2": "Bdt(customBorderTop) MegaTheme Pt(12px) Pb(12px) Trstf(eo) Trsde(0s) Trsdu(0.13s) Trsp(a)"
+ }
+ },
+ "topbar": {
+ "style": {
+ "nav_main": {
+ "link": {}
+ }
+ },
+ "data": {
+ "homeSwitcher": {
+ "enabled": false
+ }
+ }
+ },
+ "ui": {
+ "back": false,
+ "help": false,
+ "mail": true,
+ "profile": true,
+ "search": true,
+ "share": false,
+ "skip_nav": true,
+ "profileNotifications": true,
+ "theme": "mega"
+ },
+ "useTopicTitle": false,
+ "backgroundColor": "Bgc(#fff)"
+ },
+ "mrt": {
+ "flush": false,
+ "cache": true,
+ "skipAlertOnChecksumMismatch": true,
+ "prioritize": false
+ }
+ },
+ "props": {
+ "key": "tgtm-UH-0-Header",
+ "id": "tgtm-UH-0-Header"
+ },
+ "isPageComposite": true
+ }],
+ "Overlay": [{
+ "bundleName": "tdv2-applet-mtfpopup",
+ "name": "MtfModal",
+ "props": {
+ "key": "tgtm-Overlay-0-MtfModal",
+ "id": "tgtm-Overlay-0-MtfModal"
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "tdv2-applet-nagbar",
+ "name": "Nagbar",
+ "props": {
+ "key": "tgtm-Overlay-1-Nagbar",
+ "id": "tgtm-Overlay-1-Nagbar"
+ },
+ "isPageComposite": true
+ }],
+ "Hero": [],
+ "Lead": [{
+ "bundleName": "td-ads",
+ "name": "Ad",
+ "props": {
+ "pos": "MAST-9",
+ "style": {
+ "marginBottom": "10px",
+ "marginTop": "0px",
+ "marginLeft": "0px",
+ "marginRight": "0px",
+ "textAlign": "center",
+ "paddingBottom": "13px",
+ "paddingTop": "13px"
+ },
+ "key": "tgtm-Lead-0-Ad",
+ "id": "tgtm-Lead-0-Ad"
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "td-ads",
+ "name": "Ad",
+ "props": {
+ "pos": "LDRB-9",
+ "style": {
+ "marginBottom": "10px",
+ "marginTop": "0px",
+ "marginLeft": "0px",
+ "marginRight": "0px",
+ "textAlign": "center",
+ "lineHeight": "0px",
+ "paddingBottom": "13px",
+ "paddingTop": "13px"
+ },
+ "key": "tgtm-Lead-1-Ad",
+ "id": "tgtm-Lead-1-Ad"
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "tdv2-applet-featurebar",
+ "name": "FeatureBar",
+ "config": {
+ "site": "news",
+ "contentSite": "news"
+ },
+ "props": {
+ "key": "tgtm-Lead-2-FeatureBar",
+ "id": "tgtm-Lead-2-FeatureBar"
+ },
+ "isPageComposite": true
+ }],
+ "Side": [],
+ "Col1": [{
+ "bundleName": "tdv2-applet-stream",
+ "name": "Stream",
+ "id": "YDC-Stream",
+ "perfLabel": "Stream",
+ "config": {
+ "ads": {
+ "enableGeminiAdFeedback": true,
+ "frequency": 3,
+ "se": 4402687,
+ "start_index": 1,
+ "useResizedImages": true,
+ "contentType": "video\u002Fmp4,application\u002Fx-shockwave-flash",
+ "inline_video": true,
+ "videoBeaconDisabled": true,
+ "enableEndCard": true,
+ "type": "STRM,STRM_CONTENT,STRM_VIDEO"
+ },
+ "cache_ttl": 300,
+ "offnet": {
+ "use_preview": true,
+ "include_lcp": true
+ },
+ "persist_category": false,
+ "ui": {
+ "follow_content": true,
+ "inline_filters_max": 0,
+ "ntk_bypassA3c": true,
+ "related_enabled": true,
+ "smart_crop": true,
+ "tumblr_reblog": false,
+ "enable_canvass_comments": true,
+ "show_comments_drawer": false,
+ "comments": true,
+ "needtoknow_template": "carousel",
+ "show_comment_count": true,
+ "thumbnail_align": "left",
+ "share_buttons": {
+ "enable": true
+ },
+ "attribution_pos": "top",
+ "button_pos": "right",
+ "breaking_news": false,
+ "comments_count": 3,
+ "follow_cluster": true,
+ "follow_content_tooltip": true,
+ "image_classes": "W(26.5%) Maw(220px)",
+ "image_quality_override": true,
+ "related_count": 5,
+ "related_endpoint": "ga-hr.slingstone.yahoo.com@score\u002Fv9\u002Fnews\u002Fen-US\u002Funified\u002Frelated_content_increased_coverage",
+ "show_label": true,
+ "storyline_enabled": true,
+ "storyline_navparam_enabled": true,
+ "view": "mega",
+ "editorial_content_count": 19,
+ "prerender": {
+ "enabled": true,
+ "renderTargetId": "modal"
+ },
+ "roundup": true,
+ "featured_count": 1,
+ "tiles": {
+ "resizeImages": true
+ }
+ },
+ "use_mags_nydc": true,
+ "use_prefetch": true,
+ "min_count_error": true,
+ "components": {
+ "StreamHeroCarousel": {
+ "ui": {
+ "enable_canvass_comments": true,
+ "show_comments_drawer": false
+ }
+ }
+ },
+ "category": "YPROP:NEWS",
+ "use_content_site": true,
+ "store": {
+ "ls_delay": 1000
+ },
+ "linkRenderTarget": "modal",
+ "no_ss_pnr_ntk": false,
+ "pnr_package_enabled": true,
+ "ss_endpoint": "ga-hr.slingstone.yahoo.com@score\u002Fv9\u002Fnews\u002Fen-US\u002Funified\u002Fmega_news_ntk",
+ "batches": {
+ "size": 10
+ },
+ "headline_test_enabled": true,
+ "service": {
+ "specRetry": {
+ "enabled": true,
+ "triggerDelayPct": 50,
+ "throttleRate": 300
+ }
+ }
+ },
+ "critical": true,
+ "props": {
+ "key": "tgtm-YDC-Stream",
+ "id": "tgtm-YDC-Stream"
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "td-ads",
+ "name": "Ad",
+ "props": {
+ "pos": "FOOT",
+ "key": "tgtm-Col1-1-Ad",
+ "id": "tgtm-Col1-1-Ad"
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "td-ads",
+ "name": "Ad",
+ "props": {
+ "pos": "FSRVY",
+ "key": "tgtm-Col1-2-Ad",
+ "id": "tgtm-Col1-2-Ad"
+ },
+ "isPageComposite": true
+ }],
+ "Col2": [{
+ "bundleName": "tdv2-applet-followauthor",
+ "name": "FollowAuthor",
+ "props": {
+ "className": "Pos(r) Ov(h) Mb(20px)",
+ "linkAttributes": {
+ "navParams": {
+ "renderTarget": "modal"
+ }
+ },
+ "headline": "Yahoo News Exclusives",
+ "headlineClassName": "Fz(15px) Fw(b) Lh(27px) Mb(10px)",
+ "nameClassName": "Fz(12px) C(#188fff) Fw(b)",
+ "linkClassName": "Fz(12px) C(#020e65) Fw(b) Lh(14px)",
+ "providerClassName": "Fz(11px) C(#959595)",
+ "itemClassName": "Mb(20px) Mih(84px) Pos(r)",
+ "contentClassName": "D(ib) Va(t) Mstart(94px) Pos(a) T(40%) TranslateY(-50%)",
+ "key": "tgtm-Col2-0-FollowAuthor",
+ "id": "tgtm-Col2-0-FollowAuthor"
+ },
+ "config": {
+ "enableContentSite": false,
+ "site": "news",
+ "showProvider": false,
+ "category": ""
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "react-adblock-promo",
+ "name": "AdBlockPromo",
+ "props": {
+ "alt": "Yahoo Fantasy Basketball: Rule the Hardwood.",
+ "className": "Mb(40px)",
+ "enabled": true,
+ "href": "http:\u002F\u002Fyhoo.it\u002F2cnaeon",
+ "src": "https:\u002F\u002Fsp.yimg.com\u002Fj\u002Fassets\u002Fipt\u002FFB.jpg",
+ "key": "tgtm-Col2-1-AdBlockPromo",
+ "id": "tgtm-Col2-1-AdBlockPromo"
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "td-ads",
+ "name": "Ad",
+ "props": {
+ "pos": "LREC-9",
+ "style": {
+ "marginBottom": "40px",
+ "height": "250px"
+ },
+ "key": "tgtm-Col2-2-Ad",
+ "id": "tgtm-Col2-2-Ad"
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "tdv2-applet-canvass",
+ "name": "CanvassSummaryView",
+ "initMode": {
+ "deferRender": true,
+ "deferInitializeAction": true
+ },
+ "config": {
+ "isSummaryView": true,
+ "ui": {
+ "seeMore": false
+ },
+ "header": {
+ "imgUrl": "",
+ "logoImg": ""
+ },
+ "subHeader": {
+ "subHeaderStyle": "Fz(15px) Fw(b)"
+ }
+ },
+ "props": {
+ "id": "tgtm-Col2-3-CanvassSummaryView",
+ "context": "98f7218c-3d65-3754-ab79-5b98a6a1e4c3",
+ "messagesPerPage": 3,
+ "sortBy": "createdAt",
+ "type": "text",
+ "oauthConsumerKey": "frontpage.oauth.noncontent.canvass",
+ "oauthConsumerSecret": "frontpage.oauth.noncontent.canvass.secret",
+ "key": "tgtm-Col2-3-CanvassSummaryView"
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "react-weather",
+ "name": "WeatherSimpleForecast",
+ "config": {
+ "dataExclude": ["forecasts.hourly", "photos", "observation", "precipitations", "sunAndMoon"],
+ "ui": {
+ "getFavoriteLocation": false
+ }
+ },
+ "props": {
+ "className": "Mb(40px)",
+ "key": "tgtm-Col2-4-WeatherSimpleForecast",
+ "id": "tgtm-Col2-4-WeatherSimpleForecast"
+ },
+ "initMode": {
+ "deferRender": true,
+ "deferInitializeAction": true
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "td-ads",
+ "name": "ComboAd",
+ "props": {
+ "adparseStyle": {
+ "marginBottom": "30px"
+ },
+ "children": [{
+ "bundleName": "td-ads",
+ "name": "Ad",
+ "props": {
+ "pos": "LREC2-9"
+ }
+ }, {
+ "bundleName": "td-ads",
+ "name": "Ad",
+ "props": {
+ "pos": "LREC3-9"
+ }
+ }],
+ "className": "ads_wrapper",
+ "disableNuke": true,
+ "finishedStyle": {
+ "marginBottom": "40px"
+ },
+ "style": {
+ "height": "250px",
+ "marginBottom": "40px"
+ },
+ "key": "tgtm-Col2-5-ComboAd",
+ "id": "tgtm-Col2-5-ComboAd"
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "tdv2-applet-channels",
+ "name": "Channels",
+ "config": {
+ "channels": {
+ "playlistAlias": "news",
+ "yvapid": "1138"
+ },
+ "container_classnames": "Mb(40px)"
+ },
+ "initMode": {
+ "deferInitializeAction": true,
+ "deferRender": true
+ },
+ "props": {
+ "dimensions": {
+ "site": "news"
+ },
+ "key": "tgtm-Col2-6-Channels",
+ "id": "tgtm-Col2-6-Channels"
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "tdv2-applet-discussion",
+ "name": "DiscussionList",
+ "perfLabel": "DiscussionList",
+ "config": {
+ "linkRenderTarget": "modal",
+ "prerender": {
+ "enabled": true,
+ "renderTargetId": "modal"
+ },
+ "ads": {
+ "enableGeminiAd": true
+ },
+ "flyoutEnabled": true,
+ "sentimentCommentsEnabled": true,
+ "ui": {
+ "enable_canvass_comments": true
+ }
+ },
+ "initMode": {
+ "deferRender": true,
+ "deferInitializeAction": true
+ },
+ "props": {
+ "key": "tgtm-Col2-7-DiscussionList",
+ "id": "tgtm-Col2-7-DiscussionList"
+ },
+ "isPageComposite": true
+ }, {
+ "bundleName": "tdv2-applet-footer",
+ "name": "Footer",
+ "config": {
+ "links": ["help", "privacy", "suggestions", "about_our_ads", "terms"],
+ "wrapperClassName": "yvpDocked_Mt(260px)"
+ },
+ "props": {
+ "key": "tgtm-Col2-8-Footer",
+ "id": "tgtm-Col2-8-Footer"
+ },
+ "isPageComposite": true
+ }],
+ "Nav": [{
+ "bundleName": "tdv2-applet-navrail",
+ "name": "NavLite",
+ "perfLabel": "Navrail",
+ "config": {
+ "enabled": ["home", "magazines", "products", "about"],
+ "renderVersion": "rc5",
+ "linkMeta": {
+ "sports_myteams": {
+ "bundles": {
+ "props": {
+ "urlPrefix": "http:\u002F\u002Fsports.yahoo.com"
+ }
+ }
+ }
+ },
+ "ui": {
+ "darkTheme": false,
+ "navCache": true,
+ "remoteAdapter": true,
+ "bgColor": "Bgc($bg-content)!",
+ "dividerClasses": "H(0)!",
+ "highlightPropertyHome": true,
+ "hoverColor": "C(lightTheme):h",
+ "linkItemClasses": "Bgc(navliteLinkUnderline):h",
+ "makeSticky": false,
+ "navLinkClassesOnHover": "H(42px) Bdw(0) Bdbs(s)! Bxz(bb) Bdbc(navliteLinkUnderline)!:h Bdbw(4px)!:h Bdbs(s)!:h Bdbc(navliteLinkUnderline)!:f Bdbw(4px)!:f Bdbs(s)!:f O(n) Bdbc(#fff)! Trstf(l) Trsde(0s) Trsdu(.18s) Trsp(border-bottom-width)",
+ "navLinkNonHoverClasses": "C(navliteLinkNonHover) Bdbs(n)",
+ "offsetHack": "Pt(2px)",
+ "overrideColor": "C(lightTheme)",
+ "propertyHomeClasses": "H(42px) Bdw(0) Bdbs(s) Bxz(bb) Bdbc(navliteLinkUnderline):h Bdbw(4px):h Bdbs(s)!:h Trstf(l) Trsde(0s) Trsdu(.18s) Trsp(border-bottom-width)",
+ "selectColor": "C(lightTheme)! H(42px) Bdw(0) Bdbs(s) Bxz(bb) Bdbc(navliteLinkUnderline) Bdbw(4px) Trstf(l) Trsde(0s) Trsdu(.18s) Trsp(border-bottom-width)",
+ "subnavLinkClasses": "C(#fff):h"
+ },
+ "featureSwitches": {
+ "navrailCollapse": false,
+ "disableDivider": true,
+ "followButtons": true,
+ "navLogoAlign": false
+ },
+ "mrt": {
+ "flush": false,
+ "static": false
+ }
+ },
+ "props": {
+ "className": "",
+ "key": "tgtm-Nav-0-NavLite",
+ "id": "tgtm-Nav-0-NavLite"
+ },
+ "isPageComposite": true
+ }]
+ },
+ "title": "Yahoo",
+ "yvapid": "145",
+ "ads": {
+ "events": {
+ "adFetch": {
+ "ps": "MAST-9,LDRB-9,LREC-9,LREC2-9,FOOT,FSRVY",
+ "dynamic": true,
+ "sa": "\"type\"=\"page\" ctype=\"minihome\" can_suppress_ugc=\"1\" LREC2=\"300x250,1x1\" LREC=\"300x250,1x1\" ESPON=\"120x30\" megamodal=true",
+ "replace": {
+ "LREC2-9": "LREC3-9"
+ },
+ "viewportOnly": "MAST-9,LDRB-9,LREC-9,LREC2-9,LREC3-9",
+ "firstRender": "MAST-9,LDRB-9,LREC-9"
+ }
+ },
+ "deferRender": true
+ },
+ "i13n": {
+ "rapid": {
+ "keys": {
+ "pt": 2
+ }
+ }
+ },
+ "initializeAction": "initializePage",
+ "mrt": {
+ "enable": true
+ },
+ "linkRenderTarget": null,
+ "renderTargets": {
+ "content": "modal",
+ "intlMagazineContent": "modal",
+ "magcontent": "modal",
+ "magpreview": "modal"
+ },
+ "_context": {
+ "site": "news",
+ "pageType": "index",
+ "renderTarget": "default"
+ }
+ }
+ },
+ "headerOverride": {},
+ "queryOverride": {}
+ },
+ "compositeConfig": {
+ "account-switch-uh": {
+ "name": "account-switch-uh",
+ "components": [{
+ "bundleName": "tdv2-applet-account-switch",
+ "name": "AccountSwitch",
+ "config": {
+ "isEnabled": true,
+ "styles": {
+ "avatar": {},
+ "secondary_accounts": {}
+ }
+ },
+ "props": {
+ "key": "tgtm-account-switch-uh-0-AccountSwitch",
+ "id": "tgtm-account-switch-uh-0-AccountSwitch"
+ }
+ }]
+ },
+ "tgtm-Nav-0-NavLite-acct-switch": {
+ "name": "tgtm-Nav-0-NavLite-acct-switch",
+ "components": [{
+ "bundleName": "tdv2-applet-account-switch",
+ "name": "AccountSwitch",
+ "config": {
+ "isEnabled": true
+ },
+ "props": {
+ "key": "tgtm-Nav-0-NavLite-acct-switch-0-AccountSwitch",
+ "id": "tgtm-Nav-0-NavLite-acct-switch-0-AccountSwitch"
+ }
+ }]
+ }
+ },
+ "compositeStatus": {
+ "account-switch-uh": 1,
+ "tgtm-Nav-0-NavLite-acct-switch": 1
+ },
+ "pageData": {
+ "title": "Yahoo News - Latest News &amp; Headlines",
+ "meta": {
+ "name": {
+ "msapplication-TileColor": "#6e329d",
+ "msapplication-TileImage": "https:\u002F\u002Fs.yimg.com\u002Fos\u002Fmit\u002Fmedia\u002Fp\u002Fpresentation\u002Fimages\u002Ficons\u002Fwin8-tile-1484740.png",
+ "referrer": "origin",
+ "theme-color": "#400090",
+ "twitter:dnt": "on",
+ "twitter:site": "@Yahoo",
+ "application-name": "Yahoo News - Latest News &amp; Headlines",
+ "twitter:card": "summary",
+ "keywords": "news, news headlines, daily news, current events, top headlines, breaking news, news photos, news video, full coverage, yahoo news, yahoo",
+ "apple-itunes-app": "app-id=304158842"
+ },
+ "property": {
+ "og:type": "website",
+ "fb:app_id": "90376669494",
+ "og:site_name": "Yahoo News",
+ "twitter:site": "@YahooNews"
+ },
+ "httpEquiv": {
+ "x-dns-prefetch-control": "on"
+ }
+ },
+ "description": "The latest news and headlines from Yahoo! News. Get breaking news stories and in-depth coverage with videos and photos.",
+ "image": "https:\u002F\u002Fs.yimg.com\u002Fos\u002Fmit\u002Fmedia\u002Fm\u002Fsocial\u002Fimages\u002Fsocial_default_logo-1481777.png",
+ "links": [{
+ "rel": "dns-prefetch",
+ "href": "\u002F\u002Fs.yimg.com"
+ }, {
+ "rel": "dns-prefetch",
+ "href": "\u002F\u002Fgeo.query.yahoo.com"
+ }, {
+ "rel": "dns-prefetch",
+ "href": "\u002F\u002Fcsc.beap.bc.yahoo.com"
+ }, {
+ "rel": "dns-prefetch",
+ "href": "\u002F\u002Fbeap.gemini.yahoo.com"
+ }, {
+ "rel": "dns-prefetch",
+ "href": "\u002F\u002Fyep.video.yahoo.com"
+ }, {
+ "rel": "dns-prefetch",
+ "href": "\u002F\u002Fvideo-api.yql.yahoo.com"
+ }, {
+ "rel": "dns-prefetch",
+ "href": "\u002F\u002Fyrtas.btrll.com"
+ }, {
+ "rel": "dns-prefetch",
+ "href": "\u002F\u002Fshim.btrll.com"
+ }, {
+ "rel": "preconnect",
+ "href": "\u002F\u002Fs.yimg.com"
+ }, {
+ "rel": "preconnect",
+ "href": "\u002F\u002Fgeo.query.yahoo.com"
+ }, {
+ "rel": "preconnect",
+ "href": "\u002F\u002Fcsc.beap.bc.yahoo.com"
+ }, {
+ "rel": "preconnect",
+ "href": "\u002F\u002Fbeap.gemini.yahoo.com"
+ }, {
+ "rel": "preconnect",
+ "href": "\u002F\u002Fyep.video.yahoo.com"
+ }, {
+ "rel": "preconnect",
+ "href": "\u002F\u002Fvideo-api.yql.yahoo.com"
+ }, {
+ "rel": "preconnect",
+ "href": "\u002F\u002Fyrtas.btrll.com"
+ }, {
+ "rel": "preconnect",
+ "href": "\u002F\u002Fshim.btrll.com"
+ }, {
+ "rel": "icon",
+ "sizes": "any",
+ "href": "https:\u002F\u002Fs.yimg.com\u002Fos\u002Fmit\u002Fmedia\u002Fp\u002Fcommon\u002Fimages\u002Ffavicon_new-7483e38.svg"
+ }, {
+ "rel": "icon",
+ "type": "image\u002Fx-icon",
+ "href": "\u002Ffavicon.ico"
+ }, {
+ "rel": "canonical",
+ "href": "\u002F\u002Fus.yahoo.com\u002Fnews\u002F"
+ }]
+ },
+ "spaceid": null,
+ "status": {
+ "code": 200,
+ "redirect": null,
+ "responseBody": null,
+ "responseHTML": null
+ },
+ "appConfig": {
+ "timeouts": {
+ "page": 3000,
+ "xhr": 3000,
+ "navigate": 6000
+ },
+ "spaceid": 2023538075,
+ "renderTargets": [{
+ "classNames": "render-target-default Pos(a) W(100%) modal-open_Op(1)",
+ "id": "default"
+ }, {
+ "classNames": "render-target-modal O(n)!:f Bdtw(1px) D(n) H(a)! Mih(100%) modal-postopen_Op(1) Pos(a) T(76px) CollapsibleUh_T(60px) Start(0) End(0) Maw(1230px) Miw(984px) Mx(a) modal-open_D(b) modal-postopen_D(b) W(100%) H(100%) Z(9)",
+ "id": "modal",
+ "initialPageKey": ":content:modal"
+ }]
+ },
+ "routeConfig": {
+ "spaceid": 1197800621
+ },
+ "renderTargets": {
+ "default": {
+ "id": "default",
+ "guid": 0,
+ "classNames": "render-target-default Pos(a) W(100%) modal-open_Op(1)",
+ "owner": "app",
+ "elementId": "render-target-default",
+ "url": ""
+ },
+ "modal": {
+ "classNames": "render-target-modal O(n)!:f Bdtw(1px) D(n) H(a)! Mih(100%) modal-postopen_Op(1) Pos(a) T(76px) CollapsibleUh_T(60px) Start(0) End(0) Maw(1230px) Miw(984px) Mx(a) modal-open_D(b) modal-postopen_D(b) W(100%) H(100%) Z(9)",
+ "id": "modal",
+ "initialPageKey": ":content:modal",
+ "guid": 1,
+ "elementId": "render-target-modal",
+ "owner": "app",
+ "url": ""
+ },
+ "mrt": {
+ "id": "mrt",
+ "guid": "m",
+ "className": "",
+ "elementId": "render-target-mrt",
+ "owner": "mrt-app",
+ "url": "\u002Fnews\u002F",
+ "originalTargetId": "default"
+ }
+ },
+ "renderTargetsInited": true
+ },
+ "MRTStore": {
+ "mrtConfigRaw": {
+ "app": {},
+ "page": {
+ "enable": true
+ },
+ "route": {}
+ },
+ "staticComponents": []
+ },
+ "RouteStore": {
+ "currentUrl": "\u002Fnews\u002F",
+ "currentNavigate": {
+ "transactionId": 4621468729735524,
+ "url": "\u002Fnews\u002F",
+ "method": "GET",
+ "body": {},
+ "externalUrl": "https:\u002F\u002Fus.yahoo.com\u002Fnews\u002F"
+ },
+ "currentNavigateError": null,
+ "isNavigateComplete": true,
+ "routes": {
+ "home": {
+ "path": "\u002F",
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "page": "home",
+ "pageType": "home",
+ "renderTarget": "default",
+ "i13n": {
+ "serverPageview": {
+ "type": "pageView"
+ },
+ "rapid": {
+ "client_only": 0
+ },
+ "pt": 1
+ }
+ },
+ "appstate": {
+ "path": "\u002F_appstate",
+ "action": "loadConfigAndPage",
+ "i13n": {
+ "rapid": {
+ "pageview_on_init": false
+ }
+ },
+ "method": "get",
+ "page": "appstate"
+ },
+ "author": {
+ "path": "\u002Fauthor\u002F:author",
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "page": "author",
+ "pageType": "author",
+ "renderTarget": "default"
+ },
+ "category": {
+ "path": "\u002Fcategory\u002F:alias",
+ "action": "loadConfigAndPage",
+ "contentType": "YCT",
+ "method": "get",
+ "page": "topic",
+ "pageType": "topic",
+ "spaceid": 81121452
+ },
+ "perfHome": {
+ "path": "\u002Fperf\u002Fhome",
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "page": "perfHome",
+ "pageType": "perfhome"
+ },
+ "section": {
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "page": "section",
+ "pageType": "section",
+ "renderTarget": "default",
+ "path": "\u002F:contentSite(news)\u002F:section(abc-news|dear-abby|odd|science|us|world)"
+ },
+ "topic": {
+ "path": "\u002Ftopic\u002F:alias",
+ "action": "loadConfigAndPage",
+ "contentType": "WIKIID",
+ "method": "get",
+ "page": "topic",
+ "pageType": "topic",
+ "renderTarget": "default",
+ "spaceid": 81121452
+ },
+ "mtfpopup": {
+ "path": "\u002Fmtfpopup",
+ "method": "get",
+ "page": "mtfpopup",
+ "action": "loadConfigAndPage",
+ "timeouts": {
+ "page": 10000,
+ "xhr": 10000
+ }
+ },
+ "blogpost": {
+ "path": "\u002F:contentSite(finance|games|gma|news|shopping|sports)\u002Fblogs\u002F:contentBlog\u002F:alias.html",
+ "method": "get",
+ "page": "content",
+ "action": "loadConfigAndPage",
+ "contentType": "blogpost",
+ "pageType": "content"
+ },
+ "cavideo": {
+ "path": "\u002F:contentSite(finance|games|gma|news|shopping|sports)\u002Fvideo\u002F:alias.html",
+ "method": "get",
+ "page": "content",
+ "action": "loadConfigAndPage",
+ "contentType": "cavideo",
+ "pageType": "content"
+ },
+ "preview": {
+ "path": "\u002F:contentSite(finance|games|gma|news|shopping|sports)(\u002Fm)?\u002F:uuid([a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12})\u002F:alias",
+ "action": "loadConfigAndPage",
+ "contentType": "story",
+ "method": "get",
+ "page": "content",
+ "pageType": "content"
+ },
+ "slideshow": {
+ "path": "\u002F:contentSite(finance|games|gma|news|shopping|sports)\u002F:type(photos|ss)\u002F:alias",
+ "method": "get",
+ "page": "content",
+ "action": "loadConfigAndPage",
+ "contentType": "slideshow",
+ "pageType": "content"
+ },
+ "slideshowPhoto": {
+ "path": "\u002F:contentSite(finance|games|gma|news|shopping|sports)\u002F:type(photos|ss)\u002F:alias\u002F:photoAlias.html",
+ "method": "get",
+ "page": "content",
+ "action": "loadConfigAndPage",
+ "contentType": "slideshow",
+ "pageType": "content"
+ },
+ "story": {
+ "path": "\u002F:contentSite(finance|games|gma|news|shopping|sports)\u002F:alias.html",
+ "method": "get",
+ "page": "content",
+ "action": "loadConfigAndPage",
+ "contentType": "story",
+ "pageType": "content"
+ },
+ "magazinesSlideshowPhoto": {
+ "path": "\u002F:contentSite(finance|games|gma|news|shopping|sports)\u002F:alias\u002Fphoto-:photoAlias.html",
+ "method": "get",
+ "page": "content",
+ "action": "loadConfigAndPage",
+ "contentType": "slideshow",
+ "pageType": "content"
+ },
+ "storyExtra": {
+ "path": "\u002F:contentSite(finance|games|gma|news|shopping|sports)\u002F:contentPath\u002F:alias.html",
+ "method": "get",
+ "page": "content",
+ "action": "loadConfigAndPage",
+ "contentType": "story",
+ "pageType": "content"
+ },
+ "everything": {
+ "path": "\u002F:contentSite(everything)",
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "page": "everything",
+ "pageType": "index",
+ "spaceid": 97211971
+ },
+ "world": {
+ "path": "\u002F:contentSite(everything)\u002Fworld",
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "page": "world",
+ "pageType": "world",
+ "spaceid": 1197520774
+ },
+ "gma": {
+ "path": "\u002F:contentSite(gma)",
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "page": "gma",
+ "pageType": "index",
+ "renderTarget": "default",
+ "spaceid": 2145905576
+ },
+ "showtimes": {
+ "path": "\u002F:contentSite(movies)\u002Fshowtimes",
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "page": "showtimes",
+ "pageType": "showtimes",
+ "spaceid": 1197756580
+ },
+ "news": {
+ "path": "\u002F:contentSite(news)",
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "page": "news",
+ "pageType": "index",
+ "renderTarget": "default",
+ "spaceid": 1197800621
+ },
+ "eolStory": {
+ "path": "\u002F:section(politics|autos|realestate)\u002F:alias.html",
+ "method": "get",
+ "page": "content",
+ "action": "loadConfigAndPage",
+ "contentSite": "news",
+ "contentType": "story",
+ "pageType": "content"
+ },
+ "sectionpolitics": {
+ "path": "\u002F:contentSite(news)\u002F:section(politics|originals)",
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "page": "magtag",
+ "pageType": "magtag",
+ "renderTarget": "default"
+ },
+ "sectionelections": {
+ "path": "\u002F:contentSite(news)\u002F:section(elections)",
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "magName": "news",
+ "page": "magtag",
+ "pageType": "elections",
+ "renderTarget": "default"
+ },
+ "sectiongovernor": {
+ "path": "\u002F:contentSite(news)\u002F:section(elections)\u002Fgovernor",
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "magName": "news",
+ "page": "magtag",
+ "pageType": "governor",
+ "renderTarget": "default"
+ },
+ "sectionhouse": {
+ "path": "\u002F:contentSite(news)\u002F:section(elections)\u002Fhouse",
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "magName": "news",
+ "page": "magtag",
+ "pageType": "house",
+ "renderTarget": "default"
+ },
+ "sectionsenate": {
+ "path": "\u002F:contentSite(news)\u002F:section(elections)\u002Fsenate",
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "magName": "news",
+ "page": "magtag",
+ "pageType": "senate",
+ "renderTarget": "default"
+ },
+ "sectionTag": {
+ "path": "\u002F:contentSite(news)\u002Ftagged\u002F:tag",
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "magName": "news",
+ "page": "magtag",
+ "pageType": "magtag",
+ "renderTarget": "default"
+ },
+ "vibe": {
+ "path": "\u002Fvibe\u002Fpost\u002F:alias",
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "contentType": "vibe",
+ "contentSite": "vibe",
+ "page": "vibe",
+ "pageType": "content"
+ },
+ "finance": {
+ "path": "\u002F:contentSite(finance)",
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "page": "finance",
+ "pageType": "index",
+ "renderTarget": "default",
+ "spaceid": 1183300002
+ },
+ "financeSection": {
+ "path": "\u002F:contentSite(finance)\u002F:section([^.\u002F]+)",
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "page": "section",
+ "pageType": "section",
+ "renderTarget": "default"
+ },
+ "financeTag": {
+ "path": "\u002F:contentSite(finance)\u002Ftagged\u002F:alias",
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "page": "magtag",
+ "pageType": "magtag",
+ "renderTarget": "default"
+ },
+ "cavideoScreen": {
+ "path": "\u002Fscreen\u002F:alias.html",
+ "method": "get",
+ "page": "content",
+ "action": "loadConfigAndPage",
+ "contentType": "cavideo",
+ "contentSite": "ivy",
+ "pageType": "content"
+ },
+ "sports": {
+ "path": "\u002F:contentSite(sports)",
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "page": "sports",
+ "pageType": "index",
+ "spaceid": 25664825
+ },
+ "weatherIndex": {
+ "path": "\u002Fnews\u002Fweather",
+ "action": "loadConfigAndPage",
+ "contentSite": "weather",
+ "i13n": {
+ "rapid": {
+ "config": {
+ "keys": {
+ "pt": "weather"
+ }
+ }
+ }
+ },
+ "method": "get",
+ "page": "weather",
+ "pageType": "index",
+ "spaceid": 16335623
+ },
+ "weather": {
+ "path": "\u002Fnews\u002Fweather\u002F:country\u002F:state\u002F:city",
+ "method": "get",
+ "action": "loadConfigAndPage",
+ "contentSite": "weather",
+ "i13n": {
+ "rapid": {
+ "config": {
+ "keys": {
+ "pt": "weather"
+ }
+ }
+ }
+ },
+ "page": "weather",
+ "pageType": "index",
+ "spaceid": 20078731
+ },
+ "forecast": {
+ "path": "\u002Fnews\u002Fweather\u002Fforecast\u002F:woeid",
+ "method": "get",
+ "action": "loadConfigAndPage",
+ "contentSite": "weather",
+ "i13n": {
+ "rapid": {
+ "config": {
+ "keys": {
+ "pt": "weather"
+ }
+ }
+ }
+ },
+ "page": "weather",
+ "pageType": "index",
+ "spaceid": 20078731
+ },
+ "letssolveit": {
+ "path": "\u002Fletssolveit",
+ "action": "loadConfigAndPage",
+ "contentSite": "letssolveit",
+ "method": "get",
+ "pageType": "intlMagazine",
+ "page": "intlMagazine"
+ },
+ "letssolveitContent": {
+ "path": "\u002Fletssolveit\u002F:alias.html",
+ "action": "loadConfigAndPage",
+ "contentSite": "letssolveit",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Fletssolveit.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "letssolveitContentPhoto": {
+ "path": "\u002Fletssolveit\u002F:alias\u002Fphoto-:photoAlias.html",
+ "action": "loadConfigAndPage",
+ "contentSite": "letssolveit",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Fletssolveit.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "letssolveitPost": {
+ "path": "\u002Fletssolveit\u002F:tumblr(post)\u002F:alias",
+ "action": "loadConfigAndPage",
+ "contentSite": "letssolveit",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Fletssolveit.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "letssolveitPostPhoto": {
+ "path": "\u002Fletssolveit\u002F:tumblr(post)\u002F:alias\u002Fphoto-:photoAlias.html",
+ "action": "loadConfigAndPage",
+ "contentSite": "letssolveit",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Fletssolveit.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "letssolveitTag": {
+ "path": "\u002Fletssolveit\u002Ftagged\u002F:alias",
+ "action": "loadConfigAndPage",
+ "contentSite": "letssolveit",
+ "method": "get",
+ "pageType": "intlMagazineTag",
+ "baseUrl": "https:\u002F\u002Fletssolveit.yahoo.com",
+ "page": "intlMagazineTag",
+ "useYqlCTopic": false
+ },
+ "kidstakeon": {
+ "path": "\u002Fkidstakeon",
+ "action": "loadConfigAndPage",
+ "contentSite": "kidstakeon",
+ "method": "get",
+ "pageType": "intlMagazine",
+ "page": "intlMagazine"
+ },
+ "kidstakeonContent": {
+ "path": "\u002Fkidstakeon\u002F:alias.html",
+ "action": "loadConfigAndPage",
+ "contentSite": "kidstakeon",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Fkidstakeon.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "kidstakeonContentPhoto": {
+ "path": "\u002Fkidstakeon\u002F:alias\u002Fphoto-:photoAlias.html",
+ "action": "loadConfigAndPage",
+ "contentSite": "kidstakeon",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Fkidstakeon.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "kidstakeonPost": {
+ "path": "\u002Fkidstakeon\u002F:tumblr(post)\u002F:alias",
+ "action": "loadConfigAndPage",
+ "contentSite": "kidstakeon",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Fkidstakeon.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "kidstakeonPostPhoto": {
+ "path": "\u002Fkidstakeon\u002F:tumblr(post)\u002F:alias\u002Fphoto-:photoAlias.html",
+ "action": "loadConfigAndPage",
+ "contentSite": "kidstakeon",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Fkidstakeon.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "kidstakeonTag": {
+ "path": "\u002Fkidstakeon\u002Ftagged\u002F:alias",
+ "action": "loadConfigAndPage",
+ "contentSite": "kidstakeon",
+ "method": "get",
+ "pageType": "intlMagazineTag",
+ "baseUrl": "https:\u002F\u002Fkidstakeon.yahoo.com",
+ "page": "intlMagazineTag",
+ "useYqlCTopic": false
+ },
+ "backstage": {
+ "path": "\u002Fbackstage",
+ "action": "loadConfigAndPage",
+ "contentSite": "backstage",
+ "method": "get",
+ "pageType": "intlMagazine",
+ "page": "intlMagazine"
+ },
+ "backstageContent": {
+ "path": "\u002Fbackstage\u002F:alias.html",
+ "action": "loadConfigAndPage",
+ "contentSite": "backstage",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Fbackstage.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "backstageContentPhoto": {
+ "path": "\u002Fbackstage\u002F:alias\u002Fphoto-:photoAlias.html",
+ "action": "loadConfigAndPage",
+ "contentSite": "backstage",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Fbackstage.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "backstagePost": {
+ "path": "\u002Fbackstage\u002F:tumblr(post)\u002F:alias",
+ "action": "loadConfigAndPage",
+ "contentSite": "backstage",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Fbackstage.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "backstagePostPhoto": {
+ "path": "\u002Fbackstage\u002F:tumblr(post)\u002F:alias\u002Fphoto-:photoAlias.html",
+ "action": "loadConfigAndPage",
+ "contentSite": "backstage",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Fbackstage.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "backstageTag": {
+ "path": "\u002Fbackstage\u002Ftagged\u002F:alias",
+ "action": "loadConfigAndPage",
+ "contentSite": "backstage",
+ "method": "get",
+ "pageType": "intlMagazineTag",
+ "baseUrl": "https:\u002F\u002Fbackstage.yahoo.com",
+ "page": "intlMagazineTag",
+ "useYqlCTopic": false
+ },
+ "mrright": {
+ "path": "\u002Fmrright",
+ "action": "loadConfigAndPage",
+ "contentSite": "mrright",
+ "method": "get",
+ "pageType": "intlMagazine",
+ "page": "intlMagazine"
+ },
+ "mrrightContent": {
+ "path": "\u002Fmrright\u002F:alias.html",
+ "action": "loadConfigAndPage",
+ "contentSite": "mrright",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Fmr-right.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "mrrightContentPhoto": {
+ "path": "\u002Fmrright\u002F:alias\u002Fphoto-:photoAlias.html",
+ "action": "loadConfigAndPage",
+ "contentSite": "mrright",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Fmr-right.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "mrrightPost": {
+ "path": "\u002Fmrright\u002F:tumblr(post)\u002F:alias",
+ "action": "loadConfigAndPage",
+ "contentSite": "mrright",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Fmr-right.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "mrrightPostPhoto": {
+ "path": "\u002Fmrright\u002F:tumblr(post)\u002F:alias\u002Fphoto-:photoAlias.html",
+ "action": "loadConfigAndPage",
+ "contentSite": "mrright",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Fmr-right.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "mrrightTag": {
+ "path": "\u002Fmrright\u002Ftagged\u002F:alias",
+ "action": "loadConfigAndPage",
+ "contentSite": "mrright",
+ "method": "get",
+ "pageType": "intlMagazineTag",
+ "baseUrl": "https:\u002F\u002Fmr-right.yahoo.com",
+ "page": "intlMagazineTag",
+ "useYqlCTopic": false
+ },
+ "livenationpresents": {
+ "path": "\u002Flivenationpresents",
+ "action": "loadConfigAndPage",
+ "contentSite": "livenationpresents",
+ "method": "get",
+ "pageType": "intlMagazine",
+ "page": "intlMagazine"
+ },
+ "livenationpresentsContent": {
+ "path": "\u002Flivenationpresents\u002F:alias.html",
+ "action": "loadConfigAndPage",
+ "contentSite": "livenationpresents",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Flivenationpresents.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "livenationpresentsContentPhoto": {
+ "path": "\u002Flivenationpresents\u002F:alias\u002Fphoto-:photoAlias.html",
+ "action": "loadConfigAndPage",
+ "contentSite": "livenationpresents",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Flivenationpresents.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "livenationpresentsPost": {
+ "path": "\u002Flivenationpresents\u002F:tumblr(post)\u002F:alias",
+ "action": "loadConfigAndPage",
+ "contentSite": "livenationpresents",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Flivenationpresents.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "livenationpresentsPostPhoto": {
+ "path": "\u002Flivenationpresents\u002F:tumblr(post)\u002F:alias\u002Fphoto-:photoAlias.html",
+ "action": "loadConfigAndPage",
+ "contentSite": "livenationpresents",
+ "method": "get",
+ "pageType": "intlMagazineContent",
+ "baseUrl": "https:\u002F\u002Flivenationpresents.yahoo.com",
+ "page": "intlMagazineContent"
+ },
+ "livenationpresentsTag": {
+ "path": "\u002Flivenationpresents\u002Ftagged\u002F:alias",
+ "action": "loadConfigAndPage",
+ "contentSite": "livenationpresents",
+ "method": "get",
+ "pageType": "intlMagazineTag",
+ "baseUrl": "https:\u002F\u002Flivenationpresents.yahoo.com",
+ "page": "intlMagazineTag",
+ "useYqlCTopic": false
+ },
+ "magazineHome": {
+ "path": "\u002F:contentSite(beauty|beautyTest|celebrity|celebrityTest|katiecouric|movies|music|style|tech|techTest|tv|hkstylemen|kidstakeon|mrright|saludbucal|saudebucal|hktravelnow|letssolveit|livenationpresents|backstage|techcast)",
+ "method": "get",
+ "page": "maghome",
+ "action": "loadConfigAndPage",
+ "pageType": "maghome",
+ "renderTarget": "default"
+ },
+ "magazinePreview": {
+ "path": "\u002F:contentSite(beauty|beautyTest|celebrity|celebrityTest|katiecouric|movies|music|style|tech|techTest|tv|hkstylemen|kidstakeon|mrright|saludbucal|saudebucal|hktravelnow|letssolveit|livenationpresents|backstage|techcast)(\u002Fm)?\u002F:uuid([a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12})\u002F:alias",
+ "action": "loadConfigAndPage",
+ "contentType": "story",
+ "method": "get",
+ "page": "magpreview",
+ "pageType": "magpreview"
+ },
+ "magazineSlideshow": {
+ "path": "\u002F:contentSite(beauty|beautyTest|celebrity|celebrityTest|katiecouric|movies|music|style|tech|techTest|tv|hkstylemen|kidstakeon|mrright|saludbucal|saudebucal|hktravelnow|letssolveit|livenationpresents|backstage|techcast)\u002F:type(photos|ss)\u002F:alias",
+ "method": "get",
+ "page": "magcontent",
+ "action": "loadConfigAndPage",
+ "pageType": "magcontent"
+ },
+ "magazineSlideshowPhoto": {
+ "path": "\u002F:contentSite(beauty|beautyTest|celebrity|celebrityTest|katiecouric|movies|music|style|tech|techTest|tv|hkstylemen|kidstakeon|mrright|saludbucal|saudebucal|hktravelnow|letssolveit|livenationpresents|backstage|techcast)\u002Fphotos\u002F:alias\u002F:photoAlias.html",
+ "method": "get",
+ "page": "magcontent",
+ "action": "loadConfigAndPage",
+ "pageType": "magcontent"
+ },
+ "magazineVideo": {
+ "path": "\u002F:contentSite(beauty|beautyTest|celebrity|celebrityTest|katiecouric|movies|music|style|tech|techTest|tv|hkstylemen|kidstakeon|mrright|saludbucal|saudebucal|hktravelnow|letssolveit|livenationpresents|backstage|techcast)\u002F:type(v|video)\u002F:alias.html",
+ "method": "get",
+ "page": "magcontent",
+ "action": "loadConfigAndPage",
+ "contentType": "cavideo",
+ "pageType": "magcontent"
+ },
+ "magazineStory": {
+ "path": "\u002F:contentSite(beauty|beautyTest|celebrity|celebrityTest|katiecouric|movies|music|style|tech|techTest|tv|hkstylemen|kidstakeon|mrright|saludbucal|saudebucal|hktravelnow|letssolveit|livenationpresents|backstage|techcast)\u002F:alias.html",
+ "method": "get",
+ "page": "magcontent",
+ "action": "loadConfigAndPage",
+ "contentType": "story",
+ "pageType": "magcontent"
+ },
+ "magazineStoryPhotos": {
+ "path": "\u002F:contentSite(beauty|beautyTest|celebrity|celebrityTest|katiecouric|movies|music|style|tech|techTest|tv|hkstylemen|kidstakeon|mrright|saludbucal|saudebucal|hktravelnow|letssolveit|livenationpresents|backstage|techcast)(\u002Fss)?\u002F:alias\u002Fphoto-:photoAlias.html",
+ "method": "get",
+ "page": "magcontent",
+ "action": "loadConfigAndPage",
+ "contentType": "story",
+ "pageType": "magcontent"
+ },
+ "magazineStoryExtra": {
+ "path": "\u002F:contentSite(beauty|beautyTest|celebrity|celebrityTest|katiecouric|movies|music|style|tech|techTest|tv|hkstylemen|kidstakeon|mrright|saludbucal|saudebucal|hktravelnow|letssolveit|livenationpresents|backstage|techcast)\u002F:contentPath\u002F:alias.html",
+ "method": "get",
+ "page": "magcontent",
+ "action": "loadConfigAndPage",
+ "contentType": "story",
+ "pageType": "magcontent"
+ },
+ "magazineBlogpost": {
+ "path": "\u002F:contentSite(beauty|beautyTest|celebrity|celebrityTest|katiecouric|movies|music|style|tech|techTest|tv|hkstylemen|kidstakeon|mrright|saludbucal|saudebucal|hktravelnow|letssolveit|livenationpresents|backstage|techcast)\u002Fblogs\u002F:contentBlog\u002F:alias.html",
+ "method": "get",
+ "page": "magcontent",
+ "action": "loadConfigAndPage",
+ "contentType": "blogpost",
+ "pageType": "magcontent"
+ },
+ "magazineTag": {
+ "path": "\u002F:contentSite(beauty|beautyTest|celebrity|celebrityTest|katiecouric|movies|music|style|tech|techTest|tv|hkstylemen|kidstakeon|mrright|saludbucal|saudebucal|hktravelnow|letssolveit|livenationpresents|backstage|techcast)\u002Ftagged\u002F:alias",
+ "method": "get",
+ "page": "magtag",
+ "action": "loadConfigAndPage",
+ "pageType": "magtag",
+ "renderTarget": "default",
+ "useYqlCTopic": true
+ },
+ "moviesTagmovie": {
+ "path": "\u002F:contentSite(movies)\u002Ffilm\u002F:alias",
+ "method": "get",
+ "page": "moviesTag",
+ "action": "loadConfigAndPage",
+ "pageType": "magtag",
+ "renderTarget": "default",
+ "tagType": "movie"
+ },
+ "moviesTagperson": {
+ "path": "\u002F:contentSite(movies)\u002Fperson\u002F:alias",
+ "method": "get",
+ "page": "moviesTag",
+ "action": "loadConfigAndPage",
+ "pageType": "magtag",
+ "renderTarget": "default",
+ "tagType": "person"
+ },
+ "tvTagperson": {
+ "path": "\u002F:contentSite(tv)\u002Fperson\u002F:alias",
+ "method": "get",
+ "page": "tvTag",
+ "action": "loadConfigAndPage",
+ "pageType": "magtag",
+ "renderTarget": "default",
+ "tagType": "person"
+ },
+ "horoscopes": {
+ "path": "\u002F:contentSite(style)\u002Fhoroscope\u002F:sign\u002F:frequency-:frequencyValue.html",
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "page": "horoscope",
+ "pageType": "horoscope",
+ "spaceid": 1197757569
+ },
+ "horoscopesHome": {
+ "path": "\u002F:contentSite(style)\u002Fhoroscope\u002F",
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "page": "horoscopes",
+ "pageType": "horoscopes",
+ "spaceid": 1197757568
+ }
+ }
+ },
+ "I13nStore": {
+ "appConfig": {
+ "base": {
+ "initComscore": true,
+ "initOmniture": false,
+ "initRapid": true,
+ "rapid": {
+ "keys": {
+ "ver": "y20",
+ "navtype": "server"
+ },
+ "compr_type": "deflate",
+ "tracked_mods_viewability": [],
+ "test_id": "",
+ "webworker_file": "\u002Flib\u002Fmetro\u002Fg\u002Fmyy\u002Frapidworker_1_2_0.0.2.js",
+ "client_only": 1,
+ "track_right_click": true,
+ "pageview_on_init": true,
+ "viewability": true,
+ "dwell_on": true
+ },
+ "rootModelData": {},
+ "navigationPageview": {
+ "enable": true
+ },
+ "serverPageview": {
+ "enable": true,
+ "type": "nonClassified"
+ }
+ }
+ },
+ "comscoreC7Keyword": "",
+ "currentUrl": "\u002Fnews\u002F",
+ "i13nConfig": {
+ "initComscore": true,
+ "initOmniture": false,
+ "initRapid": true,
+ "rapid": {
+ "keys": {
+ "ver": "y20",
+ "navtype": "server",
+ "pt": 2,
+ "layout": "y20stream",
+ "site": "news",
+ "ccode_st": "mega_news_ntk",
+ "mrkt": "us",
+ "lang": "en-US",
+ "colo": "gq1",
+ "_yrid": "1eprt2tc42fn6",
+ "_rid": "1eprt2tc42fn6"
+ },
+ "compr_type": "deflate",
+ "tracked_mods_viewability": [],
+ "test_id": "news-d-162",
+ "webworker_file": "\u002Flib\u002Fmetro\u002Fg\u002Fmyy\u002Frapidworker_1_2_0.0.2.js",
+ "client_only": 1,
+ "track_right_click": true,
+ "pageview_on_init": true,
+ "viewability": true,
+ "dwell_on": true,
+ "spaceid": 1197800621
+ },
+ "rootModelData": {},
+ "navigationPageview": {
+ "enable": true
+ },
+ "serverPageview": {
+ "enable": true,
+ "type": "nonClassified"
+ }
+ },
+ "pageConfig": {
+ "base": {
+ "rapid": {
+ "keys": {
+ "pt": 2
+ }
+ }
+ },
+ "headerOverride": null
+ },
+ "routeConfig": {},
+ "runtimeConfig": {
+ "rapid": {
+ "keys": {
+ "layout": "y20stream",
+ "site": "news",
+ "ccode_st": "mega_news_ntk"
+ }
+ }
+ }
+ },
+ "ClientStore": {
+ "currentRoute": {
+ "path": "\u002F:contentSite(news)",
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "page": "news",
+ "pageType": "index",
+ "renderTarget": "default",
+ "spaceid": 1197800621,
+ "name": "news",
+ "url": "\u002Fnews\u002F",
+ "params": {
+ "contentSite": "news"
+ },
+ "navigate": {
+ "transactionId": 4621468729735524,
+ "url": "\u002Fnews\u002F",
+ "method": "GET",
+ "body": {},
+ "externalUrl": "https:\u002F\u002Fus.yahoo.com\u002Fnews\u002F"
+ },
+ "query": {}
+ }
+ },
+ "VideoPlayerStore": {
+ "_config": {
+ "docking": {
+ "enableOnScrollDown": true,
+ "enableOnScrollUp": false,
+ "fadeInAnimation": true,
+ "position": {
+ "left": "ref",
+ "right": 0,
+ "bottom": 55
+ },
+ "ref": ".modal-open .render-target-modal .modalRight, html:not(.modal-open) .render-target-active #YDC-Col2 #Aside",
+ "width": 300,
+ "height": 168.75,
+ "threshold": 60,
+ "enableOnMuted": true,
+ "showInfoCard": true
+ },
+ "enableRestoreOnNavigate": true,
+ "enableUndockOnNavigate": true,
+ "refreshDockingOnNavigate": true,
+ "totalInactivePlayers": 10,
+ "videoClickSrc": ["video-click", "startScreen"]
+ },
+ "_playerConfig": {}
+ },
+ "QuoteAutoCompleteStore": {
+ "clear": true
+ },
+ "PageTransitionStore": {
+ "_appConfig": {
+ "pageTransition": {
+ "enabled": true,
+ "enableHandlerCallback": true,
+ "pluginName": "modal-fade"
+ }
+ },
+ "_currentRoute": {
+ "path": "\u002F:contentSite(news)",
+ "action": "loadConfigAndPage",
+ "method": "get",
+ "page": "news",
+ "pageType": "index",
+ "renderTarget": "default",
+ "spaceid": 1197800621,
+ "name": "news",
+ "url": "\u002Fnews\u002F",
+ "params": {
+ "contentSite": "news"
+ },
+ "navigate": {
+ "transactionId": 4621468729735524,
+ "url": "\u002Fnews\u002F",
+ "method": "GET",
+ "body": {},
+ "externalUrl": "https:\u002F\u002Fus.yahoo.com\u002Fnews\u002F"
+ },
+ "query": {}
+ },
+ "_currentRenderTarget": {
+ "referrer": {
+ "route": {}
+ },
+ "id": "default",
+ "guid": 0,
+ "classNames": "render-target-default",
+ "owner": "app",
+ "elementId": "render-target-default",
+ "url": ""
+ },
+ "_renderTargets": {
+ "default": {
+ "referrer": {
+ "route": {}
+ },
+ "id": "default",
+ "guid": 0,
+ "classNames": "render-target-default",
+ "owner": "app",
+ "elementId": "render-target-default",
+ "url": ""
+ }
+ }
+ },
+ "FlyoutStore": {},
+ "NavrailStore": {
+ "showNavrail": false,
+ "navTitle": "news",
+ "navSections": "",
+ "currentUrl": "\u002Fnews\u002F",
+ "pageType": "index",
+ "navSectionsDisplayTitle": {},
+ "site": "news"
+ },
+ "AppConfigStore": {
+ "config": {
+ "clientEligible": {
+ "index": ["beauty", "backstage", "celebrity", "eleccioneseeuu2016", "hkstylemen", "hktravelnow", "katiecouric", "livenationpresents", "m6info", "movies", "news", "music", "style", "saludbucal", "saudebucal", "tech", "techcast", "tv", "weather", "vibe"],
+ "content": ["beauty", "backstage", "celebrity", "eleccioneseeuu2016", "hkstylemen", "hktravelnow", "katiecouric", "livenationpresents", "m6info", "movies", "news", "music", "style", "saludbucal", "saudebucal", "tech", "techcast", "tv", "weather", "vibe"],
+ "home": ["beauty", "backstage", "celebrity", "eleccioneseeuu2016", "hkstylemen", "hktravelnow", "katiecouric", "livenationpresents", "m6info", "movies", "news", "music", "style", "saludbucal", "saudebucal", "tech", "techcast", "tv", "weather", "vibe"]
+ },
+ "enableVideoManager": false,
+ "pageTransition": {
+ "enabled": true,
+ "enableHandlerCallback": true,
+ "pluginName": "modal-fade"
+ },
+ "prefetch": {
+ "enableOnPageStoreChange": false,
+ "prerenderDelay": 1000,
+ "pageTypes": {
+ "content": ["index"],
+ "index": ["content"],
+ "intlMagazine": ["intlMagazineContent"],
+ "intlMagazineContent": ["intlMagazine"],
+ "magcontent": ["maghome", "magpreview"],
+ "magpreview": ["maghome", "magcontent"],
+ "maghome": ["magcontent", "magpreview"],
+ "magtag": ["magcontent", "magpreview"]
+ }
+ },
+ "timeouts": {
+ "page": 3000,
+ "xhr": 3000,
+ "navigate": 6000
+ },
+ "renderTargets": [{
+ "classNames": "render-target-default Pos(a) W(100%) modal-open_Op(1)",
+ "id": "default"
+ }, {
+ "classNames": "render-target-modal O(n)!:f Bdtw(1px) D(n) H(a)! Mih(100%) modal-postopen_Op(1) Pos(a) T(76px) CollapsibleUh_T(60px) Start(0) End(0) Maw(1230px) Miw(984px) Mx(a) modal-open_D(b) modal-postopen_D(b) W(100%) H(100%) Z(9)",
+ "id": "modal",
+ "initialPageKey": ":content:modal"
+ }],
+ "videoPlayer": {
+ "baseUrl": "https:\u002F\u002Fyep.video.yahoo.com\u002Fjs\u002F3\u002Fvideoplayer-min.js",
+ "device": "nextgen-desktop",
+ "docking": {
+ "enableOnScrollDown": true,
+ "enableOnScrollUp": false,
+ "fadeInAnimation": true,
+ "position": {
+ "left": "ref",
+ "right": 0,
+ "bottom": 55
+ },
+ "ref": ".modal-open .render-target-modal .modalRight, html:not(.modal-open) .render-target-active #YDC-Col2 #Aside",
+ "width": 300,
+ "height": 168.75,
+ "threshold": 60,
+ "enableOnMuted": true,
+ "showInfoCard": true
+ },
+ "enableRestoreOnNavigate": true,
+ "refreshDockingOnNavigate": true,
+ "version": null
+ }
+ }
+ },
+ "LangStore": {
+ "defaultBundle": "td-app-yahoo",
+ "baseLangs": {
+ "td-app-yahoo": {
+ "TITLE": "Articles",
+ "DEFAULT_TITLE": "Yahoo",
+ "REDIRECT_404_MSG": "Hmmm... the page you're looking for isn't here. Try searching above.",
+ "RSS_TITLE": "RSS feed for {page}",
+ "FOLLOW_MODULE_TITLE": "Follow {property}",
+ "FOLLOW_PROPERTY_TITLE_NEWS": "Yahoo News",
+ "FINANCE_UH_SEARCH_WEB": "Search for news, symbols or companies",
+ "VIDEO_TITLE": " [Video]"
+ },
+ "tdv2-applet-uh": {
+ "ABOUT_THIS_PAGE": "About this Page",
+ "ACCOUNT_INFO": "Account Info",
+ "ADVANCED_SEARCH": "Advanced Search",
+ "ADVERTISING_PROGRAMS": "Advertising Programs",
+ "ALL": "ALL",
+ "BACK": "Back",
+ "CANCEL": "Cancel",
+ "COMPOSE": "Compose",
+ "CORPMAIL": "Corp Mail",
+ "DEVELOPING_NOW": "Developing Now",
+ "FOLLOW": "Follow",
+ "FOLLOWABLE_STORYLINES": "Followable storylines",
+ "FOLLOWING": "Following",
+ "GO_TO_HELP": "Go",
+ "GO_TO_MAIL": "Go to Mail",
+ "HAVE_NO_NEW_MESSAGES": "You have no new messages.",
+ "HELP": "Help",
+ "HOME": "Home",
+ "LOADING": "Loading",
+ "MAIL": "Mail",
+ "MENU": "Menu",
+ "MORE": "More",
+ "NAV_HOME": "Home",
+ "NAV_MAIL": "Mail",
+ "NOTIFICATIONS": "Notifications",
+ "PREFERENCES": "Preferences",
+ "PROFILE": "Profile",
+ "PROPERTY_NAME_ANSWERS": "Answers",
+ "PROPERTY_NAME_AUTOS": "Autos",
+ "PROPERTY_NAME_BACKSTAGE": "Music",
+ "PROPERTY_NAME_BEAUTY": "Beauty",
+ "PROPERTY_NAME_CELEBRITY": "Celebrity",
+ "PROPERTY_NAME_CUBA": "In-Depth",
+ "PROPERTY_NAME_DAILYFANTASY": "Fantasy",
+ "PROPERTY_NAME_DECOR": "Decor",
+ "PROPERTY_NAME_ESPORTS": "Esports",
+ "PROPERTY_NAME_FANTASY": "Fantasy",
+ "PROPERTY_NAME_FINANCE": "Finance",
+ "PROPERTY_NAME_FLICKR": "Flickr",
+ "PROPERTY_NAME_FOOD": "Food",
+ "PROPERTY_NAME_GAMES": "Games",
+ "PROPERTY_NAME_GROUPS": "Groups",
+ "PROPERTY_NAME_HEALTH": "Health",
+ "PROPERTY_NAME_HOMES": "Homes",
+ "PROPERTY_NAME_HOROSCOPES": "Horoscopes",
+ "PROPERTY_NAME_KATIECOURIC": "News",
+ "PROPERTY_NAME_LIVENATIONPRESENTS": "Music",
+ "PROPERTY_NAME_MAIL": "Mail",
+ "PROPERTY_NAME_MAKERS": "Makers",
+ "PROPERTY_NAME_MOBILE": "Mobile",
+ "PROPERTY_NAME_MOVIES": "Movies",
+ "PROPERTY_NAME_MUSIC": "Music",
+ "PROPERTY_NAME_NEWS": "News",
+ "PROPERTY_NAME_OMG": "omg!",
+ "PROPERTY_NAME_PARENTING": "Parenting",
+ "PROPERTY_NAME_PEOPLE": "People",
+ "PROPERTY_NAME_POLITICS": "Politics",
+ "PROPERTY_NAME_POPEVISIT": "In-Depth",
+ "PROPERTY_NAME_REALESTATE": "Real Estate",
+ "PROPERTY_NAME_RISING": "Music",
+ "PROPERTY_NAME_SCREEN": "Screen",
+ "PROPERTY_NAME_SETTINGS": "Settings",
+ "PROPERTY_NAME_SHINE": "Shine",
+ "PROPERTY_NAME_SHOPPING": "Shopping",
+ "PROPERTY_NAME_SPORTS": "Sports",
+ "PROPERTY_NAME_STYLE": "Style",
+ "PROPERTY_NAME_TECH": "Tech",
+ "PROPERTY_NAME_TRAVEL": "Travel",
+ "PROPERTY_NAME_TV": "TV",
+ "PROPERTY_NAME_WEATHER": "Weather",
+ "SEARCH": "Search",
+ "SEARCH_EMPTY": " ",
+ "SEARCH_HISTORY": "Search History",
+ "SEARCH_VERT_NEWS": "Search News",
+ "SEARCH_WEB": "Search web",
+ "SETTINGS": "Settings",
+ "SHARE": "Share",
+ "SIGNIN": "Sign in",
+ "SIGNOUT": "Sign out",
+ "START_TYPING": "Start typing...",
+ "SUGGESTIONS": "Suggestions",
+ "TO_SAVE": "to save and get updates.",
+ "TO_VIEW_NOTIFICATIONS": "to view your notifications",
+ "UNABLE_TO_PREVIEW_MAIL": "We are unable to preview your mail.",
+ "UNFOLLOW": "Unfollow",
+ "WELCOME_BACK": "Welcome back",
+ "YAHOO": "Yahoo"
+ },
+ "tdv2-applet-mtfpopup": {
+ "YMSB_MTF_HEADER": "Email this",
+ "YMSB_MTF_FROM": "From",
+ "YMSB_MTF_LOADNG": "Loading",
+ "YMSB_MTF_TO": "To",
+ "YMSB_MTF_FB_CONTACT_IMPORT_MESG": "Don't see your Facebook contacts?",
+ "YMSB_MTF_FB_CONTACT_IMPORT": "Import them.",
+ "YMSB_MTF_SEND_ME": "Send me a copy of this email",
+ "YMSB_MTF_PMESG_PRETEXT": "Write a message, maximum 300 characters",
+ "YMSB_MTF_SEND_BTN": "Send",
+ "YMSB_MTF_CANCEL_BTN": "Cancel",
+ "YMSB_MTF_CLOSE": "Close",
+ "YMSB_MTF_SUCCESS_LABEL": "Thank You!",
+ "YMSB_MTF_SUCCESS": "Your email was sent to",
+ "YMSB_MTF_SEND_ERROR": "Error occurs, please try again later.",
+ "YMSB_MTF_ERROR_REMAIL": "Please enter valid email addresses, separated by commas.",
+ "YMSB_MTF_ERROR_REMAIL_MAX": "Maximum {num} receiver email limit exceeded.",
+ "YMSB_MTF_ERROR_SEMAIL": "Please enter a valid email address.",
+ "YMSB_MTF_ERROR_PMESG": "Please enter a message.",
+ "YMSB_MTF_INVALID_EMAIL": "Email is not valid.",
+ "YMSB_MTF_EMAIL_TEMPLATE_FOOTER_POLICY": "This email was sent to you at the request of one of our users. To learn more about Yahoo's use of personal information, including the use of \u003Ca href=\"{beaconUrl}\" target=\"_blank\"\u003E\u003Cspan style=\"color:#400090;\"\u003Eweb beacons\u003C\u002Fspan\u003E\u003C\u002Fa\u003E in HTML-based email, please read our \u003Ca href=\"{privUrl}\" target=\"_blank\"\u003E\u003Cspan style=\"color:#400090;\"\u003EPrivacy Policy\u003C\u002Fspan\u003E\u003C\u002Fa\u003E.",
+ "YMSB_MTF_EMAIL_TEMPLATE_FOOTER_ADDRESS": "Yahoo is located at 701 First Avenue, Sunnyvale, CA 94089."
+ },
+ "tdv2-applet-nagbar": {
+ "UH20_EPRIVACY_TEXT": "By using Yahoo you agree we and our {thirdPartiesLink}partners{linkEnd} may set cookies for purposes such as customizing content and advertising. See our {cookieLink}Privacy Policy{linkEnd} to learn more"
+ },
+ "td-ads": {},
+ "tdv2-applet-featurebar": {},
+ "tdv2-applet-stream": {
+ "ADFB_DONE": "Done",
+ "ADFB_FDB1": "It's offensive to me",
+ "ADFB_FDB2": "I keep seeing this",
+ "ADFB_FDB3": "It's not relevant to me",
+ "ADFB_FDB4": "Something else",
+ "ADFB_HEADING": "Why don't you like this ad?",
+ "ADFB_REVIEW": "We'll review and make changes needed.",
+ "ADFB_THANKYOU": "Thank you for your feedback",
+ "ADFB_TOOLTIP": "I don't like this ad",
+ "ADFB_UNDO": "Undo",
+ "ADFB_CLOSE": "Close",
+ "LEARN_MORE": "Learn More",
+ "EDITORS_PICK": "Editor's Pick",
+ "FEATURED": "Featured",
+ "HIDE_SOURCES": "Hide Sources",
+ "HIDE_STORIES": "Hide Stories",
+ "SHARE_MENU": "Share Menu",
+ "SHOW_SOURCES": "More Sources",
+ "SHOW_STORIES": "More Stories",
+ "THE_ROUNDUP": "Need To Know",
+ "YOU_MIGHT_ALSO_LIKE": "You might also like",
+ "FOLLOW": "Follow",
+ "FOLLOWING": "Following",
+ "LIKE_THIS_TOPIC": "Like this topic",
+ "SIGN_IN_TO_LIKE": "Sign in to like",
+ "UNFOLLOW": "Unfollow",
+ "UNDO": "Undo",
+ "STREAM_CATEGORY_AUTOS": "Autos",
+ "STREAM_CATEGORY_BUSINESS": "Business",
+ "STREAM_CATEGORY_BEAUTY": "Beauty",
+ "STREAM_CATEGORY_CELEBRITY": "Celebrity",
+ "STREAM_CATEGORY_DIY": "DIY",
+ "STREAM_CATEGORY_ENTERTAINMENT": "Entertainment",
+ "STREAM_CATEGORY_FINANCE": "Finance",
+ "STREAM_CATEGORY_FOOD": "Food",
+ "STREAM_CATEGORY_GAMES": "Games",
+ "STREAM_CATEGORY_GMA": "News",
+ "STREAM_CATEGORY_HEALTH": "Health",
+ "STREAM_CATEGORY_HOMES": "Homes",
+ "STREAM_CATEGORY_IVY": "Screen",
+ "STREAM_CATEGORY_LIFESTYLE": "Lifestyle",
+ "STREAM_CATEGORY_MAKERS": "Projects",
+ "STREAM_CATEGORY_MOVIES": "Movies",
+ "STREAM_CATEGORY_MUSIC": "Music",
+ "STREAM_CATEGORY_NEWS": "News",
+ "STREAM_CATEGORY_OMG": "Celebrity",
+ "STREAM_CATEGORY_POLITICS": "Politics",
+ "STREAM_CATEGORY_SCIENCE": "Science",
+ "STREAM_CATEGORY_SHOPPING": "Shopping",
+ "STREAM_CATEGORY_SPORTS": "Sports",
+ "STREAM_CATEGORY_STYLE": "Style",
+ "STREAM_CATEGORY_TECH": "Tech",
+ "STREAM_CATEGORY_TECHNOLOGY": "Technology",
+ "STREAM_CATEGORY_TRAVEL": "Travel",
+ "STREAM_CATEGORY_TRENDING": "Trending",
+ "STREAM_CATEGORY_TV": "TV",
+ "STREAM_CATEGORY_US": "US",
+ "STREAM_CATEGORY_WORLD": "World",
+ "APPLET_COMMENT_ARIA_VIEW_COMMENTS": "Comments. Click to view comments",
+ "APPLET_COMMENT_COMMENTS": "Comments",
+ "APPLET_COMMENT_START_CONVERSATION": "Start the conversation",
+ "REBLOG_ON_TUMBLR": "Reblog on Tumblr",
+ "FACEBOOK": "Facebook",
+ "EMAIL": "Email",
+ "SEND": "Send",
+ "PINTEREST": "Pinterest",
+ "TUMBLR": "Tumblr",
+ "TWITTER": "Twitter",
+ "WHATSAPP": "Whatsapp",
+ "CLOSE": "Close",
+ "CONTENT_ERROR": "{hasItems, select, true {We're sorry this is all we were able to find about this topic.} false {We're sorry we weren't able to find anything about this topic.}}",
+ "JOIN_THE_CONVERSATION": "Join the Conversation",
+ "MORE": "More",
+ "MORE_ON": "More on {category}",
+ "SIDEKICK_TITLE": "What to Read Next",
+ "SPONSORED": "Sponsored"
+ },
+ "tdv2-applet-followauthor": {},
+ "tdv2-applet-canvass": {
+ "CANVASS_CONVERSATIONS": "Conversations",
+ "CANVASS_SUBHEADER_TITLE": "What people are saying...",
+ "CANVASS_FOOTER_TITLE": "Join the Conversation",
+ "CANVASS_ATTRIBUTION": "By {author} on {source}",
+ "CANVASS_HEADING_WITH_ONE_MESSAGE": "1 reaction",
+ "CANVASS_HEADING_WITH_MORE_THAN_ONE_MESSAGE": "{count} reactions",
+ "CANVASS_HEADING_WITH_ONE_MESSAGE_WITH_TITLE": "1 reaction on {title}",
+ "CANVASS_HEADING_WITH_MORE_THAN_ONE_MESSAGE_WITH_TITLE": "{count} reactions on {title}",
+ "CANVASS_ON": "on",
+ "CANVASS_COMMENTS": "reactions",
+ "CANVASS_COMMENT": "reaction",
+ "CANVASS_MY_COMMENTS": "My Reactions",
+ "CANVASS_SEE_USERS_HISTORY": "See reaction history for {user}",
+ "CANVASS_SEE_MY_HISTORY": "See my reaction history",
+ "CANVASS_NO_USER_COMMENTS": "No reactions from the user.",
+ "CANVASS_BE_THE_FIRST": "Start the conversation",
+ "CANVASS_VIEW_COMMENTS": "View Reactions ({count})",
+ "CANVASS_POSTED_IN": "Posted in \u003Cspan class='Fw(600) C(#26282a)'\u003E{displayText}\u003Cspan\u003E",
+ "CANVASS_SHOW_NEW_COMMENTS": "New Reactions",
+ "CANVASS_SHOW_MORE_COMMENTS": "View more",
+ "CANVASS_SHOW_PREVIOUS_COMMENTS": "View Previous Replies",
+ "CANVASS_LOADING_MORE_COMMENTS": "Loading...",
+ "CANVASS_LOADING_GIFS": "Loading GIFs...",
+ "CANVASS_NO_GIFS_FOUND": "Sorry, we couldn't find any GIFs",
+ "CANVASS_SHOW_REPLIES": "Show Replies ({count})",
+ "CANVASS_HIDE_REPLIES": "Hide Replies",
+ "CANVASS_COMMENT_GUIDELINES": "Reactions Guidelines",
+ "CANVASS_POST_COMMENT": "Share your reaction",
+ "CANVASS_POST_COMMENT_LONG": "Share your reaction with #tags, links &amp; more!",
+ "CANVASS_POST_COMMENT_SMARTPHONE_LONG": "Post with #tags, links &amp; more!",
+ "CANVASS_FILE_SIZE_EXCEEDED": "You can only upload files upto 10mb ",
+ "CANVASS_FILE_EXTENSION_NOT_SUPPORTED": "You can upload only image files",
+ "CANVASS_NETWORK_ERROR": "Temporary Network Error. Please try again later.",
+ "CANVASS_POST_REPLY": "Leave a reply",
+ "CANVASS_SEARCH_GIF": "Search...",
+ "CANVASS_SHOW_GIFS": "Show gifs",
+ "CANVASS_SEARCH_GIFS": "Search gifs",
+ "CANVASS_POST": "Post",
+ "CANVASS_DONE": "Done",
+ "CANVASS_MISSING_COMMENT": "You forgot to enter a reaction.",
+ "CANVASS_MISSING_REPLY": "You forgot to enter a reply.",
+ "CANVASS_CANCEL": "Cancel",
+ "CANVASS_REPORT_ABUSE": "Report Abuse",
+ "CANVASS_FLAG_MESSAGE": "Report Abuse",
+ "CANVASS_MUTE_MESSAGE": "Mute {user}",
+ "CANVASS_FLAG_REASON_INAPPROPRIATE_POST": "Inappropriate post",
+ "CANVASS_FLAG_REASON_DOES_NOT_BELONG_HERE": "Does not belong here",
+ "CANVASS_FLAG_REASON_SPAM": "Looks like spam",
+ "CANVASS_FLAG_REASON_COPYRIGHT_VIOLATION": "Copyright violation",
+ "CANVASS_FLAG_REASON_ELSE": "Something else",
+ "CANVASS_FLAGGED_MESSAGE": "Done! This post has been flagged. Thank you for reporting.",
+ "CANVASS_MUTED_MESSAGE": "Done! You won't see this user's reactions again.",
+ "CANVASS_REPORTED_ABUSE": "Reported Abuse",
+ "CANVASS_REPORT_LABEL": "Why didn't you like this reaction?",
+ "CANVASS_REPORT_REASON": "Please let us know why...",
+ "CANVASS_REPORT": "Report",
+ "CANVASS_DELETE_LABEL": "Are you sure?",
+ "CANVASS_DELETE": "Delete",
+ "CANVASS_DELETE_MESSAGE": "Delete your post",
+ "CANVASS_DELETED_MESSAGE": "Done! Your post has been deleted.",
+ "CANVASS_PLEASE_SIGN_IN": "Please sign in.",
+ "CANVASS_SIGN_IN_POST_COMMENT": "Sign in to post a message.",
+ "CANVASS_SIGN_IN_POST_REPLY": "Sign in to post a reply.",
+ "CANVASS_SORT_LATEST": "Recent Reactions",
+ "CANVASS_SORT_OLDEST": "Oldest Reactions",
+ "CANVASS_SORT_MOST_REPLIED": "Most Discussed",
+ "CANVASS_SORT_HIGHEST_RATED": "Top Reactions",
+ "CANVASS_SORT_NEWEST": "Newest Reactions",
+ "CANVASS_REPLY": "Reply",
+ "CANVASS_REPLIES": "Replies",
+ "CANVASS_ANONYMOUS": "Anonymous",
+ "CANVASS_AVATAR": "Avatar",
+ "CANVASS_EDITOR_LABEL": "Editor",
+ "CANVASS_PROMOTED_COMMENTS": "We will promote constructive and witty reactions to the top, so everyone sees them!",
+ "CANVASS_KEEP_READING": "Keep reading",
+ "CANVASS_RELATED_TAGS_FILTER_MESSAGE": "Select #tags to filter the conversation",
+ "CANVASS_RELATED_TAGS_CURRENTELY_NO_TAGS_TO_FILTER_MESSAGE": "Currently, no #tags to filter. You can add #tags in your reaction to start a conversation on the topic.",
+ "CANVASS_RELATED_TAGS_NO_MORE_TAGS_TO_FILTER_MESSAGE": "No more #tags to filter.",
+ "CANVASS_RELATED_TAGS_APPLY_MESSAGE": "Select 'Apply' below or remove #tags above.",
+ "CANVASS_APPLY": "Apply",
+ "CANVASS_SELECTED_TAGS": "Selected #tags",
+ "CANVASS_SENTIMENTS_NEGATIVE": "Conversations around this lean \u003Cspan class='{className}'\u003Enegative\u003C\u002Fspan\u003E",
+ "CANVASS_SENTIMENTS_NEUTRAL": "Conversations around this are mostly \u003Cspan class='{className}'\u003Eneutral\u003C\u002Fspan\u003E",
+ "CANVASS_SENTIMENTS_POSITIVE": "Conversations around this lean \u003Cspan class='{className}'\u003Epositive\u003C\u002Fspan\u003E",
+ "CANVASS_SEE_MORE": "See More",
+ "CANVASS_SEE_LESS": "See Less",
+ "CANVASS_REACT": "React",
+ "CANVASS_REACTION_ANGRY": "Angry",
+ "CANVASS_REACTION_ARROW_DOWN": "Down",
+ "CANVASS_REACTION_ARROW_UP": "Up",
+ "CANVASS_REACTION_HAPPY": "Happy",
+ "CANVASS_REACTION_HEART": "Love",
+ "CANVASS_REACTION_LAUGH": "Haha",
+ "CANVASS_REACTION_THUMB_DOWN": "Thumbs Down",
+ "CANVASS_REACTION_THUMB_UP": "Thumbs Up",
+ "CANVASS_REACTION_UP": "Like",
+ "CANVASS_REACTION_WOW": "Wow",
+ "CANVASS_MESSAGE_BOARD_TITLE": "{displayText} Message Board",
+ "CANVASS_MESSAGE_BOARD_TOPIC": "Topic",
+ "CANVASS_MESSAGE_BOARD_NEW_TOPIC": "New Topic",
+ "CANVASS_MESSAGE_BOARD_TOPIC_TITLE": "Topic Title",
+ "CANVASS_MESSAGE_BOARD_MISSING_TOPIC": "You forgot to enter a topic.",
+ "CANVASS_MESSAGE_BOARD_LAST_ACTIVITY": "Last Activity",
+ "CANVASS_MESSAGE_BOARD_RETURN_TO_TOPIC_LIST": "Return to Topic list",
+ "CANVASS_MESSAGE_BOARD_ATTRIBUTION": "by {author}"
+ },
+ "react-weather": {
+ "CURRENT_LOCATION": "Current location",
+ "HIGH": "High",
+ "LOW": "Low",
+ "TODAY": "Today",
+ "TONIGHT": "Tonight",
+ "TOMORROW": "Tomorrow",
+ "SUNDAY": "Sunday",
+ "MONDAY": "Monday",
+ "TUESDAY": "Tuesday",
+ "WEDNESDAY": "Wednesday",
+ "THURSDAY": "Thursday",
+ "FRIDAY": "Friday",
+ "SATURDAY": "Saturday",
+ "ABBR_SUNDAY": "Sun",
+ "ABBR_MONDAY": "Mon",
+ "ABBR_TUESDAY": "Tue",
+ "ABBR_WEDNESDAY": "Wed",
+ "ABBR_THURSDAY": "Thu",
+ "ABBR_FRIDAY": "Fri",
+ "ABBR_SATURDAY": "Sat",
+ "BLOWING_SNOW": "Blowing Snow",
+ "BLUSTERY": "Blustery",
+ "CLEAR": "Clear",
+ "CLOUDY": "Cloudy",
+ "COLD": "Cold",
+ "DRIZZLE": "Drizzle",
+ "DUST": "Dust",
+ "FAIR": "Fair",
+ "FREEZING_DRIZZLE": "Freezing Drizzle",
+ "FREEZING_RAIN": "Freezing Rain",
+ "FOGGY": "Foggy",
+ "FORECAST": "Forecast",
+ "WEATHER_VIDEOS": "Weather Videos",
+ "FULL_FORECAST": "Full forecast",
+ "HAIL": "Hail",
+ "HAZE": "Haze",
+ "HEAVY_SNOW": "Heavy Snow",
+ "HOT": "Hot",
+ "HURRICANE": "Hurricane",
+ "ISOLATED_THUNDERSHOWERS": "Isolated Thundershowers",
+ "ISOLATED_THUNDERSTORMS": "Isolated Thunderstorms",
+ "LIGHT_SNOW_SHOWERS": "Light Snow Showers",
+ "MIXED_RAIN_AND_HAIL": "Mixed Rain and Hail",
+ "MIXED_RAIN_AND_SLEET": "Mixed Rain and Sleet",
+ "MIXED_RAIN_AND_SNOW": "Mixed Rain and Snow",
+ "MIXED_SNOW_AND_SLEET": "Mixed Snow and Sleet",
+ "MOSTLY_CLOUDY": "Mostly Cloudy",
+ "PARTLY_CLOUDY": "Partly Cloudy",
+ "SCATTERED_SHOWERS": "Scattered Showers",
+ "SCATTERED_SNOW_SHOWERS": "Scattered Snow Showers",
+ "SCATTERED_THUNDERSTORMS": " Scattered Thunderstorms",
+ "SEARCH_CITY": "Kindly search your city",
+ "SEVERE_THUNDERSTORMS": "Severe Thunderstorms",
+ "SHOWERS": "Showers",
+ "SLEET": "Sleet",
+ "SMOKY": "Smoky",
+ "SNOW": "Snow",
+ "SNOW_FLURRIES": "Snow Flurries",
+ "SNOW_SHOWERS": "Snow Showers",
+ "SUNNY": "Sunny",
+ "THUNDERSHOWERS": "Thundershowers",
+ "THUNDERSTORMS": "Thunderstorms",
+ "TORNADO": "Tornado",
+ "TROPICAL_STORM": "Tropical Storm",
+ "WINDY": "Windy",
+ "FIVE_DAY": "5 day",
+ "TEN_DAY": "10 day",
+ "DETAILS": "Details",
+ "FEELS_LIKE": "Feels like",
+ "HUMIDITY": "Humidity",
+ "VISIBILITY": "Visibility",
+ "UV_INDEX": "UV Index",
+ "MAP": "Map",
+ "WIND": "Wind",
+ "WIND_AND_PRESSURE": "Wind &amp; Pressure",
+ "SUN_AND_MOON": "Sun &amp; Moon",
+ "BAROMETER": "Barometer",
+ "PRECIPITATION": "Precipitation",
+ "EARLY_MORNING": "Early Morning",
+ "MORNING": "Morning",
+ "AFTERNOON": "Afternoon",
+ "EVENING": "Evening",
+ "NIGHT": "Night",
+ "OVERNIGHT": "Overnight",
+ "MILES": "{number} miles",
+ "KM": "{number} km",
+ "MPH": "{number} mph",
+ "KMH": "{number} km\u002Fh",
+ "INCHES": "{number} inches",
+ "MILLIBARS": "{number} millibars",
+ "AM": "{time} AM",
+ "PM": "{time} PM",
+ "LEAD_CREDIT": "© by {name} on {platform}",
+ "MOON_PHASE_0": "New Moon",
+ "MOON_PHASE_1": "Waxing Crescent",
+ "MOON_PHASE_2": "First Quarter",
+ "MOON_PHASE_3": "Waxing Gibbous",
+ "MOON_PHASE_4": "Full Moon",
+ "MOON_PHASE_5": "Waning Gibbous",
+ "MOON_PHASE_6": "Third Quarter",
+ "MOON_PHASE_7": "Waning Crescent",
+ "WEATHER_ALERT": "Weather Alert",
+ "WATCHES_WARNING": "Watches and Warnings",
+ "UNKNOWN": "Unknown",
+ "FAHRENHEIT": "Fahrenheit",
+ "CELSIUS": "Celsius",
+ "FLICKR": "Flickr",
+ "ADD_LOCATION_CANCEL": "Cancel",
+ "BROWSER_DENIED_PERMISSION": "Please enable location service for your browser.",
+ "BROWSER_LOCATION_NOT_FOUND": "Browser was unable to find your current location.",
+ "BROWSER_TIMEOUT_LOCATION": "Browser timed out getting your location, please try again later.",
+ "DETECT_MY_LOCATION": "Detect my location",
+ "GETTING_LOCATION": "Getting location ...",
+ "DONE": "Done",
+ "ENTER_CITY_ZIPCODE_PLACEHOLDER": "Enter City or ZIP code",
+ "FAVORATE": "favorite",
+ "MANAGE_LOCATION": "Manage locations",
+ "REMOVE_LOCATION": "Remove from favorite locations",
+ "WEATHER_META_TITLE": "{location} - Weather Forecasts | Maps | News - Yahoo Weather",
+ "WEATHER_MATA_DESCRIPTION": "View the latest weather forecasts, maps, news and alerts on Yahoo Weather. Find local weather forecasts for {location} throughout the world",
+ "WEATHER_META_KEYWORDS": "weather forecasts, weather reports, weather maps, {location} weather forecast, worldwide weather forecast, local weather forecast, 5 day forecasts, 10 day forecasts, news, weather alerts, yahoo weather, yahoo",
+ "AROUND_THE_WORLD": "Around the World",
+ "WEATHER_PROMOTE_TEXT": "The forecast is beautiful",
+ "WEATHER_GET_THE_APP": "Get the App",
+ "WEATHER_MY_LOCATIONS": "My Locations",
+ "WEATHER_CHANGE_LOCATION": "Change location",
+ "WEATHER_DATA_FROM": "Data from {provider}",
+ "WEATHER_THE_WEATHER_CHANNEL": "The Weather Channel",
+ "WEATHER_VIEW_INTERACTIVE_MAP": "View interactive map",
+ "WEATHER_SUNRISE_TIME": "Sunrise: {time}",
+ "WEATHER_SUNSET_TIME": "Sunset: {time}",
+ "WEATHER_ADD_TO_MY_LOCATIONS": "Add to my locations",
+ "WEATHER_REMOVE_FROM_MY_LOCATIONS": "Remove from my locations",
+ "WEATHER_ADD_TO_MY_LOCATIONS_PROMPT": "Click star button to save cities",
+ "WEATHER_SATELLITE_MAP": "Satellite",
+ "WEATHER_HEAT_MAP": "Heat map",
+ "WEATHER_WIND_MAP": "Wind",
+ "TEMPERATURE": "Temperature"
+ },
+ "tdv2-applet-channels": {
+ "FOLLOW": "FOLLOW",
+ "UNFOLLOW": "FOLLOWING",
+ "RECOMMEND_FOLLOW": "You may also like",
+ "MY_PLAYLIST": "My Playlist",
+ "SIGN_IN_TO_SAVE": "SIGN IN TO SAVE",
+ "SIDEKICKTV_TITLE": "Must Watch"
+ },
+ "tdv2-applet-discussion": {
+ "APPLET_COMMENT_YAHOO_READER": "A Yahoo reader",
+ "ADFB_REVIEW": "We'll review and make changes needed",
+ "ADFB_THANKYOU": "Thank you for your feedback",
+ "ADFB_TOOLTIP": "I don't like this ad",
+ "COMMUNITY_JTC": "Popular in the Community",
+ "CONVERSATION": "Conversations around this story lean {sentiment, select, positive {{positive}} negative {{negative}}}",
+ "CONVERSATION_NEUTRAL": "Conversations around this story are mostly {neutral}",
+ "JOIN_THE_CONVERSATION": "Join the Conversation",
+ "MESSAGES": "messages",
+ "NEGATIVE": "negative",
+ "NEUTRAL": "neutral",
+ "POSITIVE": "positive",
+ "SPONSORED": "Sponsored"
+ },
+ "tdv2-applet-footer": {
+ "ABOUT_OUR_ADS": "About our Ads",
+ "ADVERTISE": "Advertise",
+ "ATTRIBUTION_AUTOS": "Yahoo Autos",
+ "ATTRIBUTION_CELEBRITY": "Yahoo Celebrity",
+ "ATTRIBUTION_CELEBRITY_UK": "Yahoo Celebrity UK",
+ "ATTRIBUTION_DECOR": "Yahoo Decor and Real Estate Network",
+ "ATTRIBUTION_GMA": "Yahoo - ABC News Network",
+ "ATTRIBUTION_HOMES": "Yahoo Homes",
+ "ATTRIBUTION_LETSSOLVEIT": "Yahoo Finance",
+ "ATTRIBUTION_LIFESTYLE": "Yahoo Lifestyle Network",
+ "ATTRIBUTION_MOVIES": "Yahoo Movies",
+ "ATTRIBUTION_MUSIC": "Yahoo Music",
+ "ATTRIBUTION_NEWS": "Yahoo News Network",
+ "ATTRIBUTION_REALESTATE": "Yahoo Decor and Real Estate Network",
+ "ATTRIBUTION_STYLE": "Yahoo Style",
+ "ATTRIBUTION_STYLE_BEAUTY": "Yahoo Style and Beauty Network",
+ "ATTRIBUTION_TRAVEL": "Yahoo Travel Network",
+ "ATTRIBUTION_TV": "Yahoo TV",
+ "ATTRIBUTION_YAHOO": "Yahoo",
+ "CAREERS": "Careers",
+ "DISCLAIMER": "Data Disclaimer",
+ "FEEDBACK": "Feedback",
+ "HELP": "Help",
+ "LEGAL_ATTRIBUTION": "Brought to you by {attribution}",
+ "PRIVACY": "Privacy",
+ "SUGGESTIONS": "Suggestions",
+ "TERMS": "Terms"
+ },
+ "tdv2-applet-navrail": {
+ "ABOUT": "About",
+ "ACCOUNT_INFO": "Account Info",
+ "APPS": "Apps",
+ "APPS_ATT": "AT&amp;T Apps",
+ "BACK": "Back",
+ "FOLLOW": "Follow",
+ "FOLLOW_US": "Follow Us",
+ "MORE": "More",
+ "MORE_NAVLINKS": "More Navlinks",
+ "MORE_SITES": "More Sites",
+ "PROFILE": "Profile",
+ "PROPERTY_HOME": "{property} Home",
+ "SERVICES_ATT": "AT&amp;T Services",
+ "SETTINGS": "Settings",
+ "SHOW_LESS": "Show less",
+ "SHOW_MORE": "Show More",
+ "SHOW_X_MORE": "Show {number} More",
+ "SIGNIN": "Sign in",
+ "SIGNOUT": "Sign out",
+ "SIGNOUT_ALL": "Sign out all",
+ "STORYLINES": "Storylines",
+ "TOOLS": "Tools",
+ "VIEW_ON_INSTAGRAM": "View on Instagram",
+ "WEATHER_FORECAST": "Weather Forecast",
+ "WELCOME_BACK": "Welcome back",
+ "YAHOO": "Yahoo",
+ "YAHOO_SITES": "Yahoo Sites"
+ },
+ "tdv2-applet-account-switch": {
+ "ACCOUNT_INFO": "Account Info",
+ "ACCOUNT_MANAGEMENT": "Add or Manage accounts",
+ "ADD_ACCOUNT": "Add account",
+ "BACKYARD": "Backyard",
+ "SIGNOUT": "Sign Out",
+ "SIGNOUT_ALL": "Sign out all",
+ "WELCOME": "Welcome back"
+ },
+ "tdv2-applet-follow": {
+ "FOLLOW": "Follow",
+ "FOLLOWING": "Following",
+ "LIKE_THIS_TOPIC": "Like this topic",
+ "SIGN_IN_TO_LIKE": "Sign in to like",
+ "UNDO": "Undo",
+ "UNFOLLOW": "Unfollow"
+ },
+ "tdv2-applet-stream-hero": {
+ "MORE_TOP_HEADLINES": "More top headlines",
+ "FEATURED": "Featured",
+ "NEED_TO_KNOW": "Need to Know",
+ "READ_MORE": "Read More",
+ "LOADING_SPORTSREEL": "Loading SportsReel...",
+ "FINAL": "Final",
+ "GAME_SCORE": "{away_team} {score_away_team} vs. {score_home_team} {home_team} {game_status}",
+ "LIVE": "Live",
+ "VS": "{away_team} vs. {home_team} {start_time}",
+ "FOLLOW": "Follow",
+ "FOLLOWING": "Following",
+ "LIKE_THIS_TOPIC": "Like this topic",
+ "SIGN_IN_TO_LIKE": "Sign in to like",
+ "UNFOLLOW": "Unfollow",
+ "UNDO": "Undo",
+ "APPLET_COMMENT_ARIA_VIEW_COMMENTS": "Comments. Click to view comments",
+ "APPLET_COMMENT_COMMENTS": "Comments",
+ "APPLET_COMMENT_START_CONVERSATION": "Start the conversation",
+ "REBLOG_ON_TUMBLR": "Reblog on Tumblr",
+ "FACEBOOK": "Facebook",
+ "EMAIL": "Email",
+ "SEND": "Send",
+ "PINTEREST": "Pinterest",
+ "TUMBLR": "Tumblr",
+ "TWITTER": "Twitter",
+ "WHATSAPP": "Whatsapp",
+ "CLOSE": "Close"
+ }
+ },
+ "intlConfig": {}
+ },
+ "BeaconStore": {
+ "beaconConfig": {
+ "defaultSrc": "td-app-yahoo",
+ "beaconUncaughtJSError": true,
+ "enableBatch": false,
+ "pathPrefix": "https:\u002F\u002Fwww.yahoo.com\u002F_td_api\u002Fbeacon",
+ "sampleSize": 1,
+ "sampleSizeUncaughtJSError": 100,
+ "context": {
+ "prid": "1eprt2tc42fn6",
+ "authed": "0",
+ "ynet": "0",
+ "ssl": "1",
+ "spdy": "1",
+ "ytee": "0",
+ "mode": "normal",
+ "site": "fp",
+ "region": "US",
+ "lang": "en-US",
+ "bucket": "news-d-162",
+ "colo": "gq1",
+ "device": "desktop",
+ "bot": "0",
+ "environment": "prod",
+ "intl": "us",
+ "partner": "none",
+ "tz": "America\u002FLos_Angeles",
+ "feature": ["cacheContentCanvas", "canvass", "newContentAttribution", "livecoverage", "featurebar", "deferModalCluster", "specRetry", "canvassThumbs"]
+ }
+ }
+ },
+ "AdStore": {
+ "appConfig": {
+ "base": {
+ "aboveFoldPositions": "MAST,LDRB,SPRZ,SPL,SPL-2,LREC,MON-1",
+ "autoRotation": 10000,
+ "autoadrender": true,
+ "darlaJsAtTop": true,
+ "darlaVersion": "2-9-13",
+ "darlaAssetFetch": true,
+ "cacheDarlaAsset": true,
+ "darlaConfigFetch": true,
+ "cacheDarlaConfig": true,
+ "events": {
+ "AUTO": {
+ "name": "AUTO",
+ "autoStart": 1,
+ "autoMax": 25,
+ "autoRT": 10000,
+ "autoIV": 1,
+ "autoDDG": 1,
+ "ps": {
+ "LDRB": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LDRB-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LDRB2-1": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LDRB2-2": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC-1": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC2": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC2-1": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-4": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-5": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-6": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-7": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-8": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC3": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC3-4": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-5": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-6": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-7": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-8": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC4": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "MAST": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ },
+ "MAST-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ },
+ "MON-1": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "SPL": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ },
+ "SPL-2": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ },
+ "SPL2": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ }
+ }
+ },
+ "DEFAULT": {
+ "clw": {
+ "LREC": {
+ "blocked_by": "MON-1"
+ },
+ "MON-1": {
+ "blocked_by": "LREC"
+ },
+ "MAST-9": {
+ "blocked_by": "SPL,LDRB-9"
+ },
+ "MAST": {
+ "blocked_by": "SPL,LDRB"
+ },
+ "LDRB": {
+ "blocked_by": "MAST,SPL"
+ },
+ "LDRB-9": {
+ "blocked_by": "MAST-9,SPL"
+ },
+ "SPL": {
+ "blocked_by": "MAST,LDRB"
+ }
+ }
+ }
+ },
+ "multipleRenderTargets": true,
+ "positions": {
+ "DEFAULT": {
+ "meta": {
+ "stack": "ydc"
+ }
+ },
+ "BTN": {
+ "w": 120,
+ "h": 60,
+ "autoFetch": false
+ },
+ "BTN-1": {
+ "w": 120,
+ "h": 60,
+ "autoFetch": false
+ },
+ "BTN-2": {
+ "w": 120,
+ "h": 60,
+ "autoFetch": false
+ },
+ "BTN-3": {
+ "w": 120,
+ "h": 60,
+ "autoFetch": false
+ },
+ "FOOT": {
+ "id": "FOOT",
+ "enable": true,
+ "fr": "expIfr_exp",
+ "autoFetch": false,
+ "supports": {
+ "lyr": 1
+ }
+ },
+ "FOOT9": {
+ "id": "FOOT9",
+ "enable": true,
+ "fr": "expIfr_exp",
+ "autoFetch": false,
+ "supports": {
+ "lyr": 1
+ }
+ },
+ "FSRVY": {
+ "id": "FSRVY",
+ "enable": true,
+ "fr": "expIfr_exp",
+ "autoFetch": false,
+ "supports": {
+ "lyr": 1
+ }
+ },
+ "LREC": {
+ "id": "LREC",
+ "w": 300,
+ "h": 250,
+ "fr": "expIfr_exp",
+ "autoFetch": false,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 3,
+ "fallback": {
+ "link": "https:\u002F\u002Fbaseball.fantasysports.yahoo.com\u002Fb1\u002Fsignup",
+ "image": "https:\u002F\u002Fs.yimg.com\u002Fnn\u002Flib\u002Fmetro\u002FDailyFantasy_BN_Baseball_300x250-min.jpg"
+ }
+ },
+ "LREC-1": {
+ "id": "LREC-1",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC-2": {
+ "id": "LREC-2",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC-9": {
+ "id": "LREC-9",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC2-1": {
+ "id": "LREC2-1",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC2-2": {
+ "id": "LREC2-2",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC2-4": {
+ "id": "LREC2-4",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC2-5": {
+ "id": "LREC2-5",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC2-6": {
+ "id": "LREC2-6",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC2-7": {
+ "id": "LREC2-7",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC2-8": {
+ "id": "LREC2-8",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC2-9": {
+ "id": "LREC2-9",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC2": {
+ "id": "LREC2",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC3": {
+ "id": "LREC3",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC3-1": {
+ "id": "LREC3-1",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC3-4": {
+ "id": "LREC3-4",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC3-5": {
+ "id": "LREC3-5",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC3-6": {
+ "id": "LREC3-6",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC3-7": {
+ "id": "LREC3-7",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC3-8": {
+ "id": "LREC3-8",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC3-9": {
+ "id": "LREC3-9",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LREC4": {
+ "id": "LREC4",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9
+ },
+ "LDRB": {
+ "id": "LDRB",
+ "w": 728,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true
+ },
+ "LDRB-1": {
+ "id": "LDRB-1",
+ "w": 728,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true
+ },
+ "LDRB-9": {
+ "id": "LDRB-9",
+ "w": 728,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true
+ },
+ "LDRB2-1": {
+ "id": "LDRB2-1",
+ "w": 728,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true
+ },
+ "LDRB2-2": {
+ "id": "LDRB2-2",
+ "w": 728,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true
+ },
+ "LDRP": {
+ "id": "LDRP",
+ "w": 320,
+ "h": 50,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1,
+ "lyr": 1
+ },
+ "enable": true,
+ "metaSize": true,
+ "staticLayout": true,
+ "fdb": true
+ },
+ "MAST": {
+ "id": "MAST",
+ "w": 970,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1,
+ "resize-to": 1
+ },
+ "enable": true,
+ "staticLayout": false,
+ "fclose": 2,
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "closeBtn": {
+ "adc": 0,
+ "mode": 2,
+ "useShow": 1
+ },
+ "metaSize": true
+ },
+ "MAST-9": {
+ "id": "MAST-9",
+ "w": 970,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1,
+ "resize-to": 1
+ },
+ "enable": true,
+ "staticLayout": false,
+ "fclose": 2,
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "closeBtn": {
+ "adc": 0,
+ "mode": 2,
+ "useShow": 1
+ },
+ "metaSize": true
+ },
+ "MFPAD": {
+ "id": "MFPAD",
+ "w": 720,
+ "h": 90,
+ "autoFetch": false,
+ "enable": true,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "metaSize": true,
+ "staticLayout": false,
+ "fdb": false
+ },
+ "MON-1": {
+ "id": "MON-1",
+ "w": 300,
+ "h": 600,
+ "fr": "expIfr_exp",
+ "autoFetch": false,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 3
+ },
+ "SPL": {
+ "id": "SPL",
+ "flex": "both",
+ "enable": true,
+ "autoFetch": false,
+ "staticLayout": false,
+ "fclose": 2,
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "supports": {
+ "cmsg": 1
+ },
+ "uhslot": ".YDC-UH",
+ "meta": {
+ "type": "stream"
+ },
+ "css": ".Mags-FontA{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:300}.Mags-FontA.Size1{font-size:13px}.Mags-FontA.Size2{font-size:16px}.Mags-FontA.Size3{font-size:20px}.Mags-FontA.Size4{font-size:22px}.Mags-FontA.Size5{font-size:33px}.Mags-FontA.Size6{font-size:35px}.Mags-FontA.Size7{font-size:58px}.Mags-FontA.Size8{font-size:70px}.Mags-FontA.Size9{font-size:100px}.Mags-FontB{font-family:Georgia,Times,serif;font-weight:400}.Mags-FontB.Size1{font-size:18px}.Mags-FontC{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400}.Mags-FontC.Size1{font-size:11px}.Mags-FontC.Size2{font-size:14px}.Mags-FontC.Size3{font-size:16px}.Mags-FontC.Size4{font-size:20px}.Mags-FontC.Size5{font-size:30px}.Mags-FontC.Size6{font-size:32px}.Mags-FontC.Size7{font-size:52px}"
+ },
+ "SPL-2": {
+ "id": "SPL-2",
+ "flex": "both",
+ "enable": true,
+ "autoFetch": false,
+ "staticLayout": false,
+ "fclose": 2,
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "supports": {
+ "cmsg": 1
+ },
+ "uhslot": ".YDC-UH",
+ "meta": {
+ "type": "stream"
+ },
+ "css": ".Mags-FontA{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:300}.Mags-FontA.Size1{font-size:13px}.Mags-FontA.Size2{font-size:16px}.Mags-FontA.Size3{font-size:20px}.Mags-FontA.Size4{font-size:22px}.Mags-FontA.Size5{font-size:33px}.Mags-FontA.Size6{font-size:35px}.Mags-FontA.Size7{font-size:58px}.Mags-FontA.Size8{font-size:70px}.Mags-FontA.Size9{font-size:100px}.Mags-FontB{font-family:Georgia,Times,serif;font-weight:400}.Mags-FontB.Size1{font-size:18px}.Mags-FontC{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400}.Mags-FontC.Size1{font-size:11px}.Mags-FontC.Size2{font-size:14px}.Mags-FontC.Size3{font-size:16px}.Mags-FontC.Size4{font-size:20px}.Mags-FontC.Size5{font-size:30px}.Mags-FontC.Size6{font-size:32px}.Mags-FontC.Size7{font-size:52px}"
+ },
+ "SPL2": {
+ "id": "SPL2",
+ "autoFetch": false,
+ "flex": "both",
+ "enable": true,
+ "staticLayout": false,
+ "fclose": 2,
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "supports": {
+ "cmsg": 1
+ },
+ "uhslot": ".YDC-UH",
+ "meta": {
+ "stack": "ydc",
+ "type": "stream"
+ },
+ "css": ".Mags-FontA{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:300}.Mags-FontA.Size1{font-size:13px}.Mags-FontA.Size2{font-size:16px}.Mags-FontA.Size3{font-size:20px}.Mags-FontA.Size4{font-size:22px}.Mags-FontA.Size5{font-size:33px}.Mags-FontA.Size6{font-size:35px}.Mags-FontA.Size7{font-size:58px}.Mags-FontA.Size8{font-size:70px}.Mags-FontA.Size9{font-size:100px}.Mags-FontB{font-family:Georgia,Times,serif;font-weight:400}.Mags-FontB.Size1{font-size:18px}.Mags-FontC{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400}.Mags-FontC.Size1{font-size:11px}.Mags-FontC.Size2{font-size:14px}.Mags-FontC.Size3{font-size:16px}.Mags-FontC.Size4{font-size:20px}.Mags-FontC.Size5{font-size:30px}.Mags-FontC.Size6{font-size:32px}.Mags-FontC.Size7{font-size:52px}"
+ },
+ "SPRZ": {
+ "id": "SPRZ",
+ "autoFetch": false,
+ "flex": "both",
+ "enable": true,
+ "staticLayout": false,
+ "fdb": false,
+ "supports": {
+ "cmsg": 1
+ },
+ "uhslot": ".YDC-UH"
+ },
+ "SPON": {
+ "pos": "SPON",
+ "h": 1,
+ "id": "SPON",
+ "w": 1,
+ "autoFetch": false
+ },
+ "TXTL": {
+ "id": "TXTL",
+ "w": 120,
+ "h": 170,
+ "css": "#fc_align a,#tl1_slug{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:11px}.ad-tl2b{overflow:hidden;text-align:left}p{margin:0}a{color:#020e65}a:hover{color:#0078ff}.y-fp-pg-controls{margin-top:5px;margin-bottom:5px}#tl1_slug{color:#999}a:link{text-decoration:none}",
+ "autoFetch": false
+ },
+ "WFPAD": {
+ "id": "WFPAD",
+ "w": 320,
+ "h": 50,
+ "autoFetch": false,
+ "enable": true,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1,
+ "lyr": 1,
+ "resize-to": 1
+ },
+ "metaSize": true,
+ "staticLayout": false,
+ "fdb": false
+ }
+ },
+ "rotationTimingDisabled": false,
+ "nukeAds": "LREC,LREC2,LREC3,LREC-9,LREC2-9,LREC3-9,MAST,LDRB,LDRB2-1,LDRB2-2,MON-1,SPL"
+ }
+ },
+ "pageConfig": {
+ "base": {
+ "events": {
+ "adFetch": {
+ "ps": "MAST-9,LDRB-9,LREC-9,LREC2-9,FOOT,FSRVY",
+ "dynamic": true,
+ "sa": "\"type\"=\"page\" ctype=\"minihome\" can_suppress_ugc=\"1\" LREC2=\"300x250,1x1\" LREC=\"300x250,1x1\" ESPON=\"120x30\" megamodal=true",
+ "replace": {
+ "LREC2-9": "LREC3-9"
+ },
+ "viewportOnly": "MAST-9,LDRB-9,LREC-9,LREC2-9,LREC3-9",
+ "firstRender": "MAST-9,LDRB-9,LREC-9"
+ }
+ },
+ "deferRender": true
+ },
+ "header": null
+ },
+ "routeConfig": {},
+ "failedPositions": {
+ "positions": {
+ "FOOT": {
+ "failed": true
+ },
+ "FSRVY": {
+ "failed": true
+ }
+ }
+ },
+ "darlaConfig": {
+ "aboveFoldPositions": "MAST,LDRB,SPRZ,SPL,SPL-2,LREC,MON-1",
+ "autoRotation": 10000,
+ "events": {
+ "AUTO": {
+ "name": "AUTO",
+ "autoStart": 1,
+ "autoMax": 25,
+ "autoRT": 10000,
+ "autoIV": 1,
+ "autoDDG": 1,
+ "ps": {
+ "LDRB": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LDRB-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LDRB2-1": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LDRB2-2": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC-1": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC2": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC2-1": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-4": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-5": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-6": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-7": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-8": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC3": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC3-4": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-5": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-6": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-7": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-8": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC4": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "MAST": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ },
+ "MAST-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ },
+ "MON-1": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "SPL": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ },
+ "SPL-2": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ },
+ "SPL2": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ }
+ }
+ },
+ "DEFAULT": {
+ "clw": {
+ "LREC": {
+ "blocked_by": "MON-1"
+ },
+ "MON-1": {
+ "blocked_by": "LREC"
+ },
+ "MAST-9": {
+ "blocked_by": "SPL,LDRB-9"
+ },
+ "MAST": {
+ "blocked_by": "SPL,LDRB"
+ },
+ "LDRB": {
+ "blocked_by": "MAST,SPL"
+ },
+ "LDRB-9": {
+ "blocked_by": "MAST-9,SPL"
+ },
+ "SPL": {
+ "blocked_by": "MAST,LDRB"
+ }
+ }
+ },
+ "adFetch": {
+ "ps": "MAST-9,LDRB-9,LREC-9,LREC2-9,FOOT,FSRVY",
+ "dynamic": true,
+ "sa": "\"type\"=\"page\" ctype=\"minihome\" can_suppress_ugc=\"1\" LREC2=\"300x250,1x1\" LREC=\"300x250,1x1\" ESPON=\"120x30\" megamodal=true",
+ "replace": {
+ "LREC2-9": "LREC3-9"
+ },
+ "viewportOnly": "MAST-9,LDRB-9,LREC-9,LREC2-9,LREC3-9",
+ "firstRender": "MAST-9,LDRB-9,LREC-9"
+ }
+ },
+ "positions": {
+ "DEFAULT": {
+ "meta": {
+ "stack": "ydc"
+ },
+ "clean": "cleanDEFAULT",
+ "dest": "destDEFAULT",
+ "enable": true,
+ "fallback": null,
+ "metaSize": false,
+ "id": "DEFAULT",
+ "staticLayout": false
+ },
+ "BTN": {
+ "w": 120,
+ "h": 60,
+ "autoFetch": false,
+ "clean": "cleanBTN",
+ "dest": "destBTN",
+ "enable": true,
+ "fallback": null,
+ "metaSize": false,
+ "id": "BTN",
+ "staticLayout": false
+ },
+ "BTN-1": {
+ "w": 120,
+ "h": 60,
+ "autoFetch": false,
+ "clean": "cleanBTN-1",
+ "dest": "destBTN-1",
+ "enable": true,
+ "fallback": null,
+ "metaSize": false,
+ "id": "BTN-1",
+ "staticLayout": false
+ },
+ "BTN-2": {
+ "w": 120,
+ "h": 60,
+ "autoFetch": false,
+ "clean": "cleanBTN-2",
+ "dest": "destBTN-2",
+ "enable": true,
+ "fallback": null,
+ "metaSize": false,
+ "id": "BTN-2",
+ "staticLayout": false
+ },
+ "BTN-3": {
+ "w": 120,
+ "h": 60,
+ "autoFetch": false,
+ "clean": "cleanBTN-3",
+ "dest": "destBTN-3",
+ "enable": true,
+ "fallback": null,
+ "metaSize": false,
+ "id": "BTN-3",
+ "staticLayout": false
+ },
+ "FOOT": {
+ "id": "FOOT",
+ "enable": true,
+ "fr": "expIfr_exp",
+ "autoFetch": false,
+ "supports": {
+ "lyr": 1
+ },
+ "clean": "cleanFOOT",
+ "dest": "destFOOT",
+ "fallback": null,
+ "metaSize": false,
+ "staticLayout": false,
+ "failed": true
+ },
+ "FOOT9": {
+ "id": "FOOT9",
+ "enable": true,
+ "fr": "expIfr_exp",
+ "autoFetch": false,
+ "supports": {
+ "lyr": 1
+ },
+ "clean": "cleanFOOT9",
+ "dest": "destFOOT9",
+ "fallback": null,
+ "metaSize": false,
+ "staticLayout": false
+ },
+ "FSRVY": {
+ "id": "FSRVY",
+ "enable": true,
+ "fr": "expIfr_exp",
+ "autoFetch": false,
+ "supports": {
+ "lyr": 1
+ },
+ "clean": "cleanFSRVY",
+ "dest": "destFSRVY",
+ "fallback": null,
+ "metaSize": false,
+ "staticLayout": false,
+ "failed": true
+ },
+ "LREC": {
+ "id": "LREC",
+ "w": 300,
+ "h": 250,
+ "fr": "expIfr_exp",
+ "autoFetch": false,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 3,
+ "fallback": {
+ "link": "https:\u002F\u002Fbaseball.fantasysports.yahoo.com\u002Fb1\u002Fsignup",
+ "image": "https:\u002F\u002Fs.yimg.com\u002Fnn\u002Flib\u002Fmetro\u002FDailyFantasy_BN_Baseball_300x250-min.jpg"
+ },
+ "clean": "cleanLREC",
+ "dest": "destLREC",
+ "metaSize": false
+ },
+ "LREC-1": {
+ "id": "LREC-1",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC-1",
+ "dest": "destLREC-1",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC-2": {
+ "id": "LREC-2",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC-2",
+ "dest": "destLREC-2",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC-9": {
+ "id": "LREC-9",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC-9",
+ "dest": "destLREC-9",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC2-1": {
+ "id": "LREC2-1",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC2-1",
+ "dest": "destLREC2-1",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC2-2": {
+ "id": "LREC2-2",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC2-2",
+ "dest": "destLREC2-2",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC2-4": {
+ "id": "LREC2-4",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC2-4",
+ "dest": "destLREC2-4",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC2-5": {
+ "id": "LREC2-5",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC2-5",
+ "dest": "destLREC2-5",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC2-6": {
+ "id": "LREC2-6",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC2-6",
+ "dest": "destLREC2-6",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC2-7": {
+ "id": "LREC2-7",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC2-7",
+ "dest": "destLREC2-7",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC2-8": {
+ "id": "LREC2-8",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC2-8",
+ "dest": "destLREC2-8",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC2-9": {
+ "id": "LREC2-9",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC2-9",
+ "dest": "destLREC2-9",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC2": {
+ "id": "LREC2",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC2",
+ "dest": "destLREC2",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC3": {
+ "id": "LREC3",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC3",
+ "dest": "destLREC3",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC3-1": {
+ "id": "LREC3-1",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC3-1",
+ "dest": "destLREC3-1",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC3-4": {
+ "id": "LREC3-4",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC3-4",
+ "dest": "destLREC3-4",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC3-5": {
+ "id": "LREC3-5",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC3-5",
+ "dest": "destLREC3-5",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC3-6": {
+ "id": "LREC3-6",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC3-6",
+ "dest": "destLREC3-6",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC3-7": {
+ "id": "LREC3-7",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC3-7",
+ "dest": "destLREC3-7",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC3-8": {
+ "id": "LREC3-8",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC3-8",
+ "dest": "destLREC3-8",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC3-9": {
+ "id": "LREC3-9",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC3-9",
+ "dest": "destLREC3-9",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LREC4": {
+ "id": "LREC4",
+ "w": 300,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 9,
+ "clean": "cleanLREC4",
+ "dest": "destLREC4",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LDRB": {
+ "id": "LDRB",
+ "w": 728,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "clean": "cleanLDRB",
+ "dest": "destLDRB",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LDRB-1": {
+ "id": "LDRB-1",
+ "w": 728,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "clean": "cleanLDRB-1",
+ "dest": "destLDRB-1",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LDRB-9": {
+ "id": "LDRB-9",
+ "w": 728,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "clean": "cleanLDRB-9",
+ "dest": "destLDRB-9",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LDRB2-1": {
+ "id": "LDRB2-1",
+ "w": 728,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "clean": "cleanLDRB2-1",
+ "dest": "destLDRB2-1",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LDRB2-2": {
+ "id": "LDRB2-2",
+ "w": 728,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "clean": "cleanLDRB2-2",
+ "dest": "destLDRB2-2",
+ "fallback": null,
+ "metaSize": false
+ },
+ "LDRP": {
+ "id": "LDRP",
+ "w": 320,
+ "h": 50,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1,
+ "lyr": 1
+ },
+ "enable": true,
+ "metaSize": true,
+ "staticLayout": true,
+ "fdb": true,
+ "clean": "cleanLDRP",
+ "dest": "destLDRP",
+ "fallback": null
+ },
+ "MAST": {
+ "id": "MAST",
+ "w": 970,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1,
+ "resize-to": 1
+ },
+ "enable": true,
+ "staticLayout": false,
+ "fclose": 2,
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "closeBtn": {
+ "adc": 0,
+ "mode": 2,
+ "useShow": 1
+ },
+ "metaSize": true,
+ "clean": "cleanMAST",
+ "dest": "destMAST",
+ "fallback": null
+ },
+ "MAST-9": {
+ "id": "MAST-9",
+ "w": 970,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1,
+ "resize-to": 1
+ },
+ "enable": true,
+ "staticLayout": false,
+ "fclose": 2,
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "closeBtn": {
+ "adc": 0,
+ "mode": 2,
+ "useShow": 1
+ },
+ "metaSize": true,
+ "clean": "cleanMAST-9",
+ "dest": "destMAST-9",
+ "fallback": null
+ },
+ "MFPAD": {
+ "id": "MFPAD",
+ "w": 720,
+ "h": 90,
+ "autoFetch": false,
+ "enable": true,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "metaSize": true,
+ "staticLayout": false,
+ "fdb": false,
+ "clean": "cleanMFPAD",
+ "dest": "destMFPAD",
+ "fallback": null
+ },
+ "MON-1": {
+ "id": "MON-1",
+ "w": 300,
+ "h": 600,
+ "fr": "expIfr_exp",
+ "autoFetch": false,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "enable": true,
+ "staticLayout": true,
+ "fdb": true,
+ "z": 3,
+ "clean": "cleanMON-1",
+ "dest": "destMON-1",
+ "fallback": null,
+ "metaSize": false
+ },
+ "SPL": {
+ "id": "SPL",
+ "flex": "both",
+ "enable": true,
+ "autoFetch": false,
+ "staticLayout": false,
+ "fclose": 2,
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "supports": {
+ "cmsg": 1
+ },
+ "uhslot": ".YDC-UH",
+ "meta": {
+ "type": "stream"
+ },
+ "css": ".Mags-FontA{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:300}.Mags-FontA.Size1{font-size:13px}.Mags-FontA.Size2{font-size:16px}.Mags-FontA.Size3{font-size:20px}.Mags-FontA.Size4{font-size:22px}.Mags-FontA.Size5{font-size:33px}.Mags-FontA.Size6{font-size:35px}.Mags-FontA.Size7{font-size:58px}.Mags-FontA.Size8{font-size:70px}.Mags-FontA.Size9{font-size:100px}.Mags-FontB{font-family:Georgia,Times,serif;font-weight:400}.Mags-FontB.Size1{font-size:18px}.Mags-FontC{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400}.Mags-FontC.Size1{font-size:11px}.Mags-FontC.Size2{font-size:14px}.Mags-FontC.Size3{font-size:16px}.Mags-FontC.Size4{font-size:20px}.Mags-FontC.Size5{font-size:30px}.Mags-FontC.Size6{font-size:32px}.Mags-FontC.Size7{font-size:52px}",
+ "clean": "cleanSPL",
+ "dest": "destSPL",
+ "fallback": null,
+ "metaSize": false
+ },
+ "SPL-2": {
+ "id": "SPL-2",
+ "flex": "both",
+ "enable": true,
+ "autoFetch": false,
+ "staticLayout": false,
+ "fclose": 2,
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "supports": {
+ "cmsg": 1
+ },
+ "uhslot": ".YDC-UH",
+ "meta": {
+ "type": "stream"
+ },
+ "css": ".Mags-FontA{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:300}.Mags-FontA.Size1{font-size:13px}.Mags-FontA.Size2{font-size:16px}.Mags-FontA.Size3{font-size:20px}.Mags-FontA.Size4{font-size:22px}.Mags-FontA.Size5{font-size:33px}.Mags-FontA.Size6{font-size:35px}.Mags-FontA.Size7{font-size:58px}.Mags-FontA.Size8{font-size:70px}.Mags-FontA.Size9{font-size:100px}.Mags-FontB{font-family:Georgia,Times,serif;font-weight:400}.Mags-FontB.Size1{font-size:18px}.Mags-FontC{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400}.Mags-FontC.Size1{font-size:11px}.Mags-FontC.Size2{font-size:14px}.Mags-FontC.Size3{font-size:16px}.Mags-FontC.Size4{font-size:20px}.Mags-FontC.Size5{font-size:30px}.Mags-FontC.Size6{font-size:32px}.Mags-FontC.Size7{font-size:52px}",
+ "clean": "cleanSPL-2",
+ "dest": "destSPL-2",
+ "fallback": null,
+ "metaSize": false
+ },
+ "SPL2": {
+ "id": "SPL2",
+ "autoFetch": false,
+ "flex": "both",
+ "enable": true,
+ "staticLayout": false,
+ "fclose": 2,
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "supports": {
+ "cmsg": 1
+ },
+ "uhslot": ".YDC-UH",
+ "meta": {
+ "stack": "ydc",
+ "type": "stream"
+ },
+ "css": ".Mags-FontA{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:300}.Mags-FontA.Size1{font-size:13px}.Mags-FontA.Size2{font-size:16px}.Mags-FontA.Size3{font-size:20px}.Mags-FontA.Size4{font-size:22px}.Mags-FontA.Size5{font-size:33px}.Mags-FontA.Size6{font-size:35px}.Mags-FontA.Size7{font-size:58px}.Mags-FontA.Size8{font-size:70px}.Mags-FontA.Size9{font-size:100px}.Mags-FontB{font-family:Georgia,Times,serif;font-weight:400}.Mags-FontB.Size1{font-size:18px}.Mags-FontC{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400}.Mags-FontC.Size1{font-size:11px}.Mags-FontC.Size2{font-size:14px}.Mags-FontC.Size3{font-size:16px}.Mags-FontC.Size4{font-size:20px}.Mags-FontC.Size5{font-size:30px}.Mags-FontC.Size6{font-size:32px}.Mags-FontC.Size7{font-size:52px}",
+ "clean": "cleanSPL2",
+ "dest": "destSPL2",
+ "fallback": null,
+ "metaSize": false
+ },
+ "SPRZ": {
+ "id": "SPRZ",
+ "autoFetch": false,
+ "flex": "both",
+ "enable": true,
+ "staticLayout": false,
+ "fdb": false,
+ "supports": {
+ "cmsg": 1
+ },
+ "uhslot": ".YDC-UH",
+ "clean": "cleanSPRZ",
+ "dest": "destSPRZ",
+ "fallback": null,
+ "metaSize": false
+ },
+ "SPON": {
+ "pos": "SPON",
+ "h": 1,
+ "id": "SPON",
+ "w": 1,
+ "autoFetch": false,
+ "clean": "cleanSPON",
+ "dest": "destSPON",
+ "enable": true,
+ "fallback": null,
+ "metaSize": false,
+ "staticLayout": false
+ },
+ "TXTL": {
+ "id": "TXTL",
+ "w": 120,
+ "h": 170,
+ "css": "#fc_align a,#tl1_slug{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:11px}.ad-tl2b{overflow:hidden;text-align:left}p{margin:0}a{color:#020e65}a:hover{color:#0078ff}.y-fp-pg-controls{margin-top:5px;margin-bottom:5px}#tl1_slug{color:#999}a:link{text-decoration:none}",
+ "autoFetch": false,
+ "clean": "cleanTXTL",
+ "dest": "destTXTL",
+ "enable": true,
+ "fallback": null,
+ "metaSize": false,
+ "staticLayout": false
+ },
+ "WFPAD": {
+ "id": "WFPAD",
+ "w": 320,
+ "h": 50,
+ "autoFetch": false,
+ "enable": true,
+ "fr": "expIfr_exp",
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1,
+ "lyr": 1,
+ "resize-to": 1
+ },
+ "metaSize": true,
+ "staticLayout": false,
+ "fdb": false,
+ "clean": "cleanWFPAD",
+ "dest": "destWFPAD",
+ "fallback": null
+ }
+ },
+ "rotationTimingDisabled": false
+ },
+ "adFetchEvent": {
+ "ps": "MAST-9,LDRB-9,LREC-9,LREC2-9,FOOT,FSRVY",
+ "sp": 1197800621,
+ "sa": "\"type\"=\"page\" ctype=\"minihome\" can_suppress_ugc=\"1\" LREC2=\"300x250,1x1\" LREC=\"300x250,1x1\" ESPON=\"120x30\" megamodal=true Y-BUCKET=\"news-d-162\"",
+ "optionalps": "",
+ "site": "fp"
+ },
+ "siteAttrs": "\"type\"=\"page\" ctype=\"minihome\" can_suppress_ugc=\"1\" LREC2=\"300x250,1x1\" LREC=\"300x250,1x1\" ESPON=\"120x30\" megamodal=true Y-BUCKET=\"news-d-162\"",
+ "autoAdRender": true,
+ "supportMultipleRenderTargets": true,
+ "darlaJsAtTop": true,
+ "delayedRender": false,
+ "darlaVersion": "2-9-13",
+ "disableDarla": false,
+ "deferRender": true,
+ "keepPerfEntries": false,
+ "darlaAssetFetch": true,
+ "cacheDarlaAsset": true,
+ "darlaConfigFetch": true,
+ "cacheDarlaConfig": true,
+ "prefetchedPositions": {
+ "MAST-9": {
+ "hasError": true,
+ "error": "ns",
+ "size": "unknown"
+ },
+ "LDRB-9": {
+ "hasError": false,
+ "error": "none",
+ "size": "728x90"
+ },
+ "LREC-9": {
+ "hasError": false,
+ "error": "none",
+ "size": "300x250"
+ },
+ "LREC2-9": {
+ "hasError": false,
+ "error": "none",
+ "size": "300x250"
+ },
+ "FOOT": {
+ "hasError": true,
+ "error": "ns",
+ "size": "unknown"
+ },
+ "FSRVY": {
+ "hasError": false,
+ "error": "none",
+ "size": "1x1"
+ }
+ },
+ "_newPageRendered": false,
+ "checkForModalClose": false,
+ "nukeAds": ["LREC", "LREC2", "LREC3", "LREC-9", "LREC2-9", "LREC3-9", "MAST", "LDRB", "LDRB2-1", "LDRB2-2", "MON-1", "SPL"],
+ "adfetchTimeout": null,
+ "_childCompositeReady": {}
+ },
+ "FinanceConfigStore": {
+ "app": {
+ "base": {
+ "spaceid": 2023538075,
+ "clientEligible": {
+ "index": ["beauty", "backstage", "celebrity", "eleccioneseeuu2016", "hkstylemen", "hktravelnow", "katiecouric", "livenationpresents", "m6info", "movies", "news", "music", "style", "saludbucal", "saudebucal", "tech", "techcast", "tv", "weather", "vibe"],
+ "content": ["beauty", "backstage", "celebrity", "eleccioneseeuu2016", "hkstylemen", "hktravelnow", "katiecouric", "livenationpresents", "m6info", "movies", "news", "music", "style", "saludbucal", "saudebucal", "tech", "techcast", "tv", "weather", "vibe"],
+ "home": ["beauty", "backstage", "celebrity", "eleccioneseeuu2016", "hkstylemen", "hktravelnow", "katiecouric", "livenationpresents", "m6info", "movies", "news", "music", "style", "saludbucal", "saudebucal", "tech", "techcast", "tv", "weather", "vibe"]
+ },
+ "i13n": {
+ "initComscore": true,
+ "initOmniture": false,
+ "initRapid": true,
+ "rapid": {
+ "client_only": 1,
+ "viewability": true,
+ "pageview_on_init": true,
+ "test_id": "",
+ "webworker_file": "\u002Flib\u002Fmetro\u002Fg\u002Fmyy\u002Frapidworker_1_2_0.0.2.js",
+ "tracked_mods_viewability": [],
+ "dwell_on": true,
+ "track_right_click": true,
+ "keys": {
+ "ver": "y20",
+ "navtype": "server"
+ },
+ "compr_type": "deflate"
+ },
+ "rootModelData": {},
+ "navigationPageview": {
+ "enable": true
+ },
+ "serverPageview": {
+ "enable": true,
+ "type": "nonClassified"
+ }
+ },
+ "beacon": {
+ "defaultSrc": "td-app-yahoo",
+ "beaconUncaughtJSError": true,
+ "enableBatch": false,
+ "pathPrefix": "https:\u002F\u002Fwww.yahoo.com\u002F_td_api\u002Fbeacon",
+ "sampleSize": 1,
+ "sampleSizeUncaughtJSError": 100,
+ "context": {
+ "mode": "normal",
+ "ynet": "0",
+ "tz": "America\u002FLos_Angeles",
+ "authed": "0",
+ "bot": "0",
+ "site": "fp",
+ "partner": "none",
+ "bucket": "news-d-162",
+ "ssl": "1",
+ "lang": "en-US",
+ "colo": "gq1",
+ "spdy": "1",
+ "environment": "prod",
+ "region": "US",
+ "device": "desktop",
+ "feature": ["cacheContentCanvas", "canvass", "newContentAttribution", "livecoverage", "featurebar", "deferModalCluster", "specRetry", "canvassThumbs"],
+ "ytee": "0",
+ "intl": "us",
+ "prid": "1eprt2tc42fn6"
+ }
+ },
+ "pageTransition": {
+ "enabled": true,
+ "enableHandlerCallback": true,
+ "pluginName": "modal-fade"
+ },
+ "amp": {
+ "enabled": true
+ },
+ "renderTargets": [{
+ "classNames": "render-target-default Pos(a) W(100%) modal-open_Op(1)",
+ "id": "default"
+ }, {
+ "classNames": "render-target-modal O(n)!:f Bdtw(1px) D(n) H(a)! Mih(100%) modal-postopen_Op(1) Pos(a) T(76px) CollapsibleUh_T(60px) Start(0) End(0) Maw(1230px) Miw(984px) Mx(a) modal-open_D(b) modal-postopen_D(b) W(100%) H(100%) Z(9)",
+ "id": "modal",
+ "initialPageKey": ":content:modal"
+ }],
+ "endResponseOnError": true,
+ "ads": {
+ "rotationTimingDisabled": false,
+ "autoadrender": true,
+ "cacheDarlaAsset": true,
+ "positions": {
+ "BTN-1": {
+ "w": 120,
+ "h": 60,
+ "autoFetch": false
+ },
+ "BTN-2": {
+ "w": 120,
+ "h": 60,
+ "autoFetch": false
+ },
+ "DEFAULT": {
+ "meta": {
+ "stack": "ydc"
+ }
+ },
+ "MAST-9": {
+ "enable": true,
+ "closeBtn": {
+ "adc": 0,
+ "mode": 2,
+ "useShow": 1
+ },
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1,
+ "resize-to": 1
+ },
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "metaSize": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "fclose": 2,
+ "w": 970,
+ "staticLayout": false,
+ "id": "MAST-9"
+ },
+ "BTN-3": {
+ "w": 120,
+ "h": 60,
+ "autoFetch": false
+ },
+ "SPL2": {
+ "enable": true,
+ "css": ".Mags-FontA{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:300}.Mags-FontA.Size1{font-size:13px}.Mags-FontA.Size2{font-size:16px}.Mags-FontA.Size3{font-size:20px}.Mags-FontA.Size4{font-size:22px}.Mags-FontA.Size5{font-size:33px}.Mags-FontA.Size6{font-size:35px}.Mags-FontA.Size7{font-size:58px}.Mags-FontA.Size8{font-size:70px}.Mags-FontA.Size9{font-size:100px}.Mags-FontB{font-family:Georgia,Times,serif;font-weight:400}.Mags-FontB.Size1{font-size:18px}.Mags-FontC{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400}.Mags-FontC.Size1{font-size:11px}.Mags-FontC.Size2{font-size:14px}.Mags-FontC.Size3{font-size:16px}.Mags-FontC.Size4{font-size:20px}.Mags-FontC.Size5{font-size:30px}.Mags-FontC.Size6{font-size:32px}.Mags-FontC.Size7{font-size:52px}",
+ "supports": {
+ "cmsg": 1
+ },
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "meta": {
+ "stack": "ydc",
+ "type": "stream"
+ },
+ "autoFetch": false,
+ "uhslot": ".YDC-UH",
+ "fclose": 2,
+ "staticLayout": false,
+ "flex": "both",
+ "id": "SPL2"
+ },
+ "LREC": {
+ "fallback": {
+ "link": "https:\u002F\u002Fbaseball.fantasysports.yahoo.com\u002Fb1\u002Fsignup",
+ "image": "https:\u002F\u002Fs.yimg.com\u002Fnn\u002Flib\u002Fmetro\u002FDailyFantasy_BN_Baseball_300x250-min.jpg"
+ },
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 3,
+ "id": "LREC"
+ },
+ "WFPAD": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1,
+ "lyr": 1,
+ "resize-to": 1
+ },
+ "fdb": false,
+ "metaSize": true,
+ "h": 50,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 320,
+ "staticLayout": false,
+ "id": "WFPAD"
+ },
+ "SPRZ": {
+ "id": "SPRZ",
+ "autoFetch": false,
+ "flex": "both",
+ "enable": true,
+ "staticLayout": false,
+ "fdb": false,
+ "supports": {
+ "cmsg": 1
+ },
+ "uhslot": ".YDC-UH"
+ },
+ "LREC-1": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC-1"
+ },
+ "LDRB": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 728,
+ "staticLayout": true,
+ "id": "LDRB"
+ },
+ "FSRVY": {
+ "id": "FSRVY",
+ "enable": true,
+ "fr": "expIfr_exp",
+ "autoFetch": false,
+ "supports": {
+ "lyr": 1
+ }
+ },
+ "LREC-2": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC-2"
+ },
+ "FOOT9": {
+ "id": "FOOT9",
+ "enable": true,
+ "fr": "expIfr_exp",
+ "autoFetch": false,
+ "supports": {
+ "lyr": 1
+ }
+ },
+ "LDRB-1": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 728,
+ "staticLayout": true,
+ "id": "LDRB-1"
+ },
+ "LREC2": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC2"
+ },
+ "FOOT": {
+ "id": "FOOT",
+ "enable": true,
+ "fr": "expIfr_exp",
+ "autoFetch": false,
+ "supports": {
+ "lyr": 1
+ }
+ },
+ "LDRB2-1": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 728,
+ "staticLayout": true,
+ "id": "LDRB2-1"
+ },
+ "LREC3": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC3"
+ },
+ "SPL": {
+ "enable": true,
+ "css": ".Mags-FontA{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:300}.Mags-FontA.Size1{font-size:13px}.Mags-FontA.Size2{font-size:16px}.Mags-FontA.Size3{font-size:20px}.Mags-FontA.Size4{font-size:22px}.Mags-FontA.Size5{font-size:33px}.Mags-FontA.Size6{font-size:35px}.Mags-FontA.Size7{font-size:58px}.Mags-FontA.Size8{font-size:70px}.Mags-FontA.Size9{font-size:100px}.Mags-FontB{font-family:Georgia,Times,serif;font-weight:400}.Mags-FontB.Size1{font-size:18px}.Mags-FontC{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400}.Mags-FontC.Size1{font-size:11px}.Mags-FontC.Size2{font-size:14px}.Mags-FontC.Size3{font-size:16px}.Mags-FontC.Size4{font-size:20px}.Mags-FontC.Size5{font-size:30px}.Mags-FontC.Size6{font-size:32px}.Mags-FontC.Size7{font-size:52px}",
+ "supports": {
+ "cmsg": 1
+ },
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "meta": {
+ "type": "stream"
+ },
+ "autoFetch": false,
+ "uhslot": ".YDC-UH",
+ "fclose": 2,
+ "staticLayout": false,
+ "flex": "both",
+ "id": "SPL"
+ },
+ "LDRB2-2": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 728,
+ "staticLayout": true,
+ "id": "LDRB2-2"
+ },
+ "LREC4": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC4"
+ },
+ "LREC-9": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC-9"
+ },
+ "MON-1": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 600,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 3,
+ "id": "MON-1"
+ },
+ "LREC2-1": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC2-1"
+ },
+ "LREC3-1": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC3-1"
+ },
+ "LREC2-2": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC2-2"
+ },
+ "LDRB-9": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 728,
+ "staticLayout": true,
+ "id": "LDRB-9"
+ },
+ "SPL-2": {
+ "enable": true,
+ "css": ".Mags-FontA{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:300}.Mags-FontA.Size1{font-size:13px}.Mags-FontA.Size2{font-size:16px}.Mags-FontA.Size3{font-size:20px}.Mags-FontA.Size4{font-size:22px}.Mags-FontA.Size5{font-size:33px}.Mags-FontA.Size6{font-size:35px}.Mags-FontA.Size7{font-size:58px}.Mags-FontA.Size8{font-size:70px}.Mags-FontA.Size9{font-size:100px}.Mags-FontB{font-family:Georgia,Times,serif;font-weight:400}.Mags-FontB.Size1{font-size:18px}.Mags-FontC{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400}.Mags-FontC.Size1{font-size:11px}.Mags-FontC.Size2{font-size:14px}.Mags-FontC.Size3{font-size:16px}.Mags-FontC.Size4{font-size:20px}.Mags-FontC.Size5{font-size:30px}.Mags-FontC.Size6{font-size:32px}.Mags-FontC.Size7{font-size:52px}",
+ "supports": {
+ "cmsg": 1
+ },
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "meta": {
+ "type": "stream"
+ },
+ "autoFetch": false,
+ "uhslot": ".YDC-UH",
+ "fclose": 2,
+ "staticLayout": false,
+ "flex": "both",
+ "id": "SPL-2"
+ },
+ "LREC2-4": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC2-4"
+ },
+ "MAST": {
+ "enable": true,
+ "closeBtn": {
+ "adc": 0,
+ "mode": 2,
+ "useShow": 1
+ },
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1,
+ "resize-to": 1
+ },
+ "fdb": {
+ "on": 1,
+ "where": "inside"
+ },
+ "metaSize": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "fclose": 2,
+ "w": 970,
+ "staticLayout": false,
+ "id": "MAST"
+ },
+ "LDRP": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1,
+ "lyr": 1
+ },
+ "fdb": true,
+ "metaSize": true,
+ "h": 50,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 320,
+ "staticLayout": true,
+ "id": "LDRP"
+ },
+ "LREC3-4": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC3-4"
+ },
+ "LREC2-5": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC2-5"
+ },
+ "LREC3-5": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC3-5"
+ },
+ "LREC2-6": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC2-6"
+ },
+ "LREC3-6": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC3-6"
+ },
+ "LREC2-7": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC2-7"
+ },
+ "LREC3-7": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC3-7"
+ },
+ "LREC2-8": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC2-8"
+ },
+ "MFPAD": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": false,
+ "metaSize": true,
+ "h": 90,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 720,
+ "staticLayout": false,
+ "id": "MFPAD"
+ },
+ "LREC3-8": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC3-8"
+ },
+ "LREC2-9": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC2-9"
+ },
+ "LREC3-9": {
+ "enable": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ },
+ "fdb": true,
+ "h": 250,
+ "autoFetch": false,
+ "fr": "expIfr_exp",
+ "w": 300,
+ "staticLayout": true,
+ "z": 9,
+ "id": "LREC3-9"
+ },
+ "SPON": {
+ "pos": "SPON",
+ "h": 1,
+ "id": "SPON",
+ "w": 1,
+ "autoFetch": false
+ },
+ "BTN": {
+ "w": 120,
+ "h": 60,
+ "autoFetch": false
+ },
+ "TXTL": {
+ "id": "TXTL",
+ "w": 120,
+ "h": 170,
+ "css": "#fc_align a,#tl1_slug{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:11px}.ad-tl2b{overflow:hidden;text-align:left}p{margin:0}a{color:#020e65}a:hover{color:#0078ff}.y-fp-pg-controls{margin-top:5px;margin-bottom:5px}#tl1_slug{color:#999}a:link{text-decoration:none}",
+ "autoFetch": false
+ }
+ },
+ "cacheDarlaConfig": true,
+ "aboveFoldPositions": "MAST,LDRB,SPRZ,SPL,SPL-2,LREC,MON-1",
+ "autoRotation": 10000,
+ "darlaVersion": "2-9-13",
+ "darlaConfigFetch": true,
+ "darlaJsAtTop": true,
+ "nukeAds": "LREC,LREC2,LREC3,LREC-9,LREC2-9,LREC3-9,MAST,LDRB,LDRB2-1,LDRB2-2,MON-1,SPL",
+ "darlaAssetFetch": true,
+ "events": {
+ "AUTO": {
+ "name": "AUTO",
+ "autoStart": 1,
+ "autoMax": 25,
+ "autoRT": 10000,
+ "autoIV": 1,
+ "autoDDG": 1,
+ "ps": {
+ "MAST-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ },
+ "SPL2": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ },
+ "LREC": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC-1": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LDRB": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC2": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LDRB2-1": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC3": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "SPL": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ },
+ "LDRB2-2": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC4": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "MON-1": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-1": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LDRB-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "SPL-2": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ },
+ "LREC2-4": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "MAST": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "60000"
+ },
+ "LREC3-4": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-5": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-5": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-6": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-6": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-7": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-7": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-8": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC3-8": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "35000"
+ },
+ "LREC2-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ },
+ "LREC3-9": {
+ "autoIV": 1,
+ "autoMax": 25,
+ "autoRT": "10000"
+ }
+ }
+ },
+ "DEFAULT": {
+ "clw": {
+ "LREC": {
+ "blocked_by": "MON-1"
+ },
+ "MON-1": {
+ "blocked_by": "LREC"
+ },
+ "MAST-9": {
+ "blocked_by": "SPL,LDRB-9"
+ },
+ "MAST": {
+ "blocked_by": "SPL,LDRB"
+ },
+ "LDRB": {
+ "blocked_by": "MAST,SPL"
+ },
+ "LDRB-9": {
+ "blocked_by": "MAST-9,SPL"
+ },
+ "SPL": {
+ "blocked_by": "MAST,LDRB"
+ }
+ }
+ }
+ },
+ "multipleRenderTargets": true
+ },
+ "mrsOptions": {
+ "mrs_host": "l.yimg.com\u002Fny",
+ "key": "mrs.highlander.crumbkey",
+ "app_id": "highlander"
+ },
+ "dehydratedStateIsJSON": true,
+ "timeouts": {
+ "page": 3000,
+ "xhr": 3000,
+ "navigate": 6000
+ },
+ "enablePageStoreCache": true,
+ "enableVideoManager": false,
+ "prefetch": {
+ "enableOnPageStoreChange": false,
+ "prerenderDelay": 1000,
+ "pageTypes": {
+ "content": ["index"],
+ "index": ["content"],
+ "intlMagazine": ["intlMagazineContent"],
+ "intlMagazineContent": ["intlMagazine"],
+ "magcontent": ["maghome", "magpreview"],
+ "magpreview": ["maghome", "magcontent"],
+ "maghome": ["magcontent", "magpreview"],
+ "magtag": ["magcontent", "magpreview"]
+ }
+ },
+ "esi": {
+ "mode": "batch",
+ "batchTimeout": 3,
+ "fallbackSource": "readthru",
+ "page": {
+ "swr": 86400
+ },
+ "staticRedirectToFS": true,
+ "useStableFragmentId": true
+ },
+ "loadChildBundles": true,
+ "enableDehydratedState": true,
+ "videoPlayer": {
+ "baseUrl": "https:\u002F\u002Fyep.video.yahoo.com\u002Fjs\u002F3\u002Fvideoplayer-min.js",
+ "device": "nextgen-desktop",
+ "docking": {
+ "fadeInAnimation": true,
+ "width": 300,
+ "height": 168.75,
+ "position": {
+ "left": "ref",
+ "right": 0,
+ "bottom": 55
+ },
+ "enableOnMuted": true,
+ "enableOnScrollUp": false,
+ "threshold": 60,
+ "enableOnScrollDown": true,
+ "ref": ".modal-open .render-target-modal .modalRight, html:not(.modal-open) .render-target-active #YDC-Col2 #Aside",
+ "showInfoCard": true
+ },
+ "enableRestoreOnNavigate": true,
+ "refreshDockingOnNavigate": true,
+ "version": null
+ },
+ "appConfigStore": {
+ "fields": ["clientEligible", "enableVideoManager", "initRenderTimeBeacon", "overrideContentTypes", "pageTransition", "prefetch", "timeouts", "renderTargets", "videoPlayer"]
+ }
+ },
+ "headerOverride": {},
+ "queryOverride": {}
+ }
+ },
+ "VideoStore": {
+ "videos": {},
+ "_cdnBase": "https:\u002F\u002Fs.yimg.com"
+ },
+ "ComponentConfigStore": {
+ "configs": {
+ "tgtm-UH-0-Header": {
+ "uh": {
+ "featureSwitches": {
+ "navrailCollapse": true
+ },
+ "style": {
+ "container": {
+ "wrapper_2": "Bdt(customBorderTop) MegaTheme Pt(12px) Pb(12px) Trstf(eo) Trsde(0s) Trsdu(0.13s) Trsp(a)"
+ }
+ },
+ "backgroundColor": "Bgc(#fff)",
+ "theme": {
+ "topbarBackground": "Bgc(#2d1152)",
+ "topbarIcon": "#1d1da3",
+ "profileBackground": "Bgc(uhPurple):h C(uhPurple) Bdc(uhPurple)",
+ "profileIcon": "#400090",
+ "mailBackground": "Bgc(uhPurple)",
+ "mailNotificationBackground": "Bgc(#f0162f)",
+ "mailNotificationBorderColor": "Bdc(#fff)",
+ "followNotificationBorderColor": "Bdc(#fff)"
+ },
+ "help": {
+ "style": {
+ "container": {
+ "wrapper": "D(ib) Mstart(16px) Va(t) Mt(3px)"
+ },
+ "separator": {
+ "content": "Bgc(#e2e2e6) H(1px)"
+ },
+ "icon": {
+ "settings": {
+ "content": "D(n) Lh(2.6) Mstart(4px)",
+ "asset": {
+ "name": "CoreSettings",
+ "height": 32,
+ "width": 32,
+ "path": "M12.57 3.98c-.08.022-.16.05-.238.075-.022.004-.044.01-.07.014l-.006.008c-.907.288-1.785.685-2.62 1.188h-.004c-.698.322-1.288-.052-1.44-.164l-.515-.396c-.42-.414-1.094-.408-1.51.012L4.61 6.302c-.414.42-.41 1.096.012 1.51l.57.928c.09.22.205.652.007 1.114-.06.104-.12.207-.176.314-.036.062-.07.126-.1.19-.054.105-.106.212-.158.317-.036.078-.076.155-.11.232-.044.093-.083.188-.12.283-.044.092-.084.188-.122.283l-.09.24c-.042.112-.082.224-.123.338-.018.067-.04.132-.06.198-.04.127-.083.255-.12.387-.016.052-.026.105-.04.16-.032.122-.066.246-.094.37-.222.466-.628.657-.89.734l-.768.1c-.592.005-1.065.488-1.06 1.076l.018 2.223c.004.57.46 1.027 1.02 1.05l-.005.005s1.47.216 1.83 1c.024.087.048.176.075.264l.034.102c.046.145.094.29.145.434l.05.13c.05.133.102.265.155.396l.06.152c.055.123.11.243.168.364.026.055.053.112.076.167.06.12.122.237.185.352.062.124.13.244.2.365.048.085.096.17.147.255l.08.13c.192.486.06.907-.078 1.167l-.653.85c-.412.42-.408 1.094.01 1.507l1.584 1.56c.42.414 1.095.41 1.51-.01l1.18-.724c.267-.114.647-.19 1.073-.016.123.064.242.124.364.184v.01c.062.03.124.058.188.087.192.094.385.183.583.263.008.004.014.008.022.01.148.06.3.118.452.174.02.006.038.014.06.02.14.05.28.098.425.143.03.01.06.02.093.028.132.042.265.08.398.115.303.173.49.426.576.58l.34 1.462c-.007.59.463 1.075 1.05 1.084l.253.003c.08.02.167.032.256.03l.86-.013.852.015c.09.002.172-.012.253-.03l.257-.004c.586-.01 1.057-.494 1.05-1.083l.337-1.46c.087-.157.274-.41.576-.582.135-.034.267-.073.4-.115.032-.01.06-.02.09-.028.143-.045.285-.092.43-.144.017-.005.036-.013.056-.02.15-.055.3-.113.45-.173.007-.002.016-.006.02-.01.198-.08.39-.168.585-.262.063-.028.126-.056.187-.088v-.01c.12-.06.242-.12.363-.183.427-.174.808-.098 1.074.016l1.18.724c.414.42 1.09.424 1.51.01l1.58-1.56c.42-.412.427-1.09.013-1.507l-.65-.85c-.14-.26-.27-.68-.082-1.167.027-.042.056-.085.083-.13.05-.083.097-.17.148-.254.067-.122.135-.242.2-.365.063-.117.124-.235.182-.353.027-.055.052-.11.077-.167.057-.122.113-.242.165-.364.02-.052.042-.1.064-.152.053-.132.105-.263.156-.396.016-.044.03-.087.047-.13.05-.144.1-.29.148-.434.008-.035.02-.07.03-.103.026-.088.052-.176.076-.265.363-.784 1.83-1 1.83-1l-.005-.004c.564-.023 1.013-.482 1.017-1.05l.02-2.224c.004-.588-.468-1.07-1.06-1.076l-.77-.1c-.258-.078-.663-.27-.888-.734-.03-.125-.06-.25-.092-.372-.02-.054-.028-.107-.045-.16-.035-.13-.076-.26-.116-.386l-.06-.197c-.04-.113-.083-.225-.125-.338-.028-.078-.055-.16-.09-.24-.038-.094-.076-.19-.12-.282-.037-.094-.078-.19-.12-.283-.035-.077-.075-.154-.11-.232-.053-.106-.103-.212-.155-.317l-.104-.19c-.055-.106-.114-.21-.173-.314-.2-.46-.084-.892.005-1.114l.572-.93c.42-.412.426-1.088.013-1.508l-1.56-1.584c-.413-.42-1.09-.426-1.508-.012L23.7 5.1c-.15.112-.744.486-1.442.165h-.005c-.832-.503-1.71-.9-2.616-1.188l-.007-.01c-.026-.003-.228-.065-.31-.088l-.18-.09c-.355-.216-.53-.55-.6-.713l-.33-1.332c0-.588-.475-1.067-1.065-1.067H14.75c-.59 0-1.072.48-1.072 1.068l-.327 1.332s-.21.724-.78.802zm3.377 18.717c-3.763 0-6.81-3.05-6.81-6.808s3.046-6.81 6.81-6.81c3.76 0 6.805 3.05 6.805 6.81s-3.046 6.807-6.805 6.807z"
+ },
+ "name": "CoreSettings",
+ "size": 28,
+ "wrapper": "D(ib)"
+ }
+ },
+ "link": {
+ "content": "Td(n) Td(u):h D(b) C(#000)",
+ "wrapper": "Py(8px) Px(10px)"
+ },
+ "panel": {
+ "content": "Mx(-10px) Pos(r) My(0) P(0) C(#000)!",
+ "wrapper": "Bdrs(4px) Bgc(menuBgc) Bxsh(customShadowFlyoutMenu) D(b) End(0) Pos(a) Px(10px) T(40px) Ta(start)"
+ },
+ "button": {
+ "wrapper": "Cur(p) Bgc(#3775dd) Pt(0) Pend(3px) Fz(13px) Bdw(1px) Bds(s) Mt(2px) Mstart(3px) Whs(nw) Ta(c) C(#fff) Bdc(#182e5c)"
+ },
+ "menulist": {
+ "wrapper": "Fz(13px)"
+ }
+ },
+ "data": {
+ "items": {
+ "account_info": {
+ "order": 1,
+ "title": "Account Info",
+ "url": {
+ "protocol": "https",
+ "hostname": "login.yahoo.com",
+ "pathname": "\u002Faccount\u002Fpersonalinfo\u002F",
+ "query": {}
+ }
+ },
+ "help": {
+ "order": 2,
+ "title": "Help",
+ "url": {
+ "protocol": "https",
+ "hostname": "help.yahoo.com",
+ "pathname": "\u002Fl\u002Fus\u002Fyahoo\u002Fnews_global\u002F"
+ }
+ },
+ "separator": {
+ "order": 3
+ },
+ "suggestions": {
+ "order": 4,
+ "title": "Suggestions",
+ "url": {
+ "protocol": "https",
+ "hostname": "yahoo.uservoice.com",
+ "pathname": "\u002Fforums\u002F204992"
+ }
+ }
+ }
+ }
+ },
+ "logo": {
+ "style": {
+ "cobrand": {
+ "partner": {},
+ "yahoo": {}
+ },
+ "container": {
+ "inline": {}
+ },
+ "country_property": {},
+ "property": {},
+ "yahoo": {}
+ },
+ "isCobrand": false,
+ "logoBgSize": "Bgz(250px)",
+ "backgroundColor": null,
+ "backgroundPosX": "Bgpx(0)",
+ "backgroundPosY": "Bgpy(0)",
+ "height": 74,
+ "width": 125,
+ "defaultRetinaImage": "https:\u002F\u002Fs.yimg.com\u002Frz\u002Fd\u002Fyahoo_frontpage_en-US_s_f_pw_bestfit_frontpage_2x.png",
+ "defaultNonRetinaImage": "https:\u002F\u002Fs.yimg.com\u002Frz\u002Fd\u002Fyahoo_frontpage_en-US_s_f_pw_bestfit_frontpage.png",
+ "image": "https:\u002F\u002Fs.yimg.com\u002Frz\u002Fl\u002Fyahoo_en-US_f_pw_125x32_2x.png",
+ "nonRetinaImage": "https:\u002F\u002Fs.yimg.com\u002Frz\u002Fl\u002Fyahoo_en-US_f_pw_125x32.png"
+ },
+ "mail": {
+ "style": {
+ "button": {
+ "inline": {}
+ },
+ "mailcount": {}
+ },
+ "data": {
+ "icon": {
+ "mail": {
+ "asset": {
+ "name": "NavMail",
+ "height": 512,
+ "width": 512,
+ "path": "M460.586 91.31H51.504c-10.738 0-19.46 8.72-19.46 19.477v40.088l224 104.03 224-104.03v-40.088c0-10.757-8.702-19.478-19.458-19.478M32.046 193.426V402.96c0 10.758 8.72 19.48 19.458 19.48h409.082c10.756 0 19.46-8.722 19.46-19.48V193.428l-224 102.327-224-102.327z"
+ },
+ "name": "NavMail",
+ "height": 35,
+ "width": 30
+ }
+ },
+ "mode": "client"
+ },
+ "urls": {
+ "mail": {
+ "protocol": "https",
+ "hostname": "mail.yahoo.com",
+ "pathname": "\u002F",
+ "query": {}
+ }
+ },
+ "compose": {
+ "url": "https:\u002F\u002Fmrd.mail.yahoo.com\u002Fcompose"
+ },
+ "count": {
+ "api": {
+ "protocol": "https",
+ "host": "mg.mail.yahoo.com",
+ "path": "\u002Fmailservices\u002Fv1\u002Fnewmailcount",
+ "query": {
+ "appid": "UnivHeader",
+ "wssid": ""
+ }
+ },
+ "jsonp": {
+ "timeout": 3000,
+ "prefix": "__uhmc__"
+ },
+ "maxCountDisplay": 99,
+ "pollingDuration": 10,
+ "pollingInterval": 2,
+ "pollingWindow": 110000
+ },
+ "mailservices": {
+ "api": {
+ "host": "mail.yahoo.com",
+ "path": "\u002F",
+ "protocol": "https",
+ "query": {
+ ".src": "ym"
+ }
+ }
+ },
+ "preview": {
+ "api": {
+ "protocol": "https",
+ "host": "ucs.query.yahoo.com",
+ "path": "\u002Fv1\u002Fconsole\u002Fyql",
+ "query": {
+ "format": "json",
+ "q": "select messageInfo.receivedDate, messageInfo.mid, messageInfo.flags.isRead, messageInfo.from.name, messageInfo.subject from ymail.messages where numMid=\"3\" limit 6",
+ "crumb": ""
+ }
+ },
+ "fetchInterval": 5000,
+ "jsonp": {
+ "timeout": 3000,
+ "prefix": "__uhmp__"
+ },
+ "urls": {
+ "message": "https:\u002F\u002Fmrd.mail.yahoo.com\u002Fmsg?fid=Inbox&amp;src=hp&amp;mid="
+ }
+ },
+ "url": "https:\u002F\u002Fmail.yahoo.com\u002F",
+ "signedInUrl": "https:\u002F\u002Fmail.yahoo.com\u002F"
+ },
+ "notifications": {
+ "comet": {
+ "config": {
+ "privateHost": "https:\u002F\u002Fpr.comet.yahoo.com\u002Fcomet",
+ "subscribeMaxTries": 1,
+ "subscribeTimeout": 5000
+ },
+ "channel": "\u002FUNP\u002Falerts\u002F*"
+ },
+ "count": {
+ "maxCountDisplay": 99
+ },
+ "style": {
+ "notificationsCount": {}
+ }
+ },
+ "account_switch": {
+ "isEnabled": true,
+ "styles": {
+ "avatar": {},
+ "secondary_accounts": {}
+ }
+ },
+ "follow": {
+ "style": {
+ "button": {
+ "inline": {}
+ },
+ "followcount": {}
+ },
+ "data": {
+ "icon": {
+ "follow": {
+ "asset": {
+ "name": "nav-bell",
+ "height": 512,
+ "width": 512,
+ "path": "M294.2 428.05h-74.4c0 20.543 16.656 37.2 37.2 37.2 20.535 0 37.2-12.47 37.2-37.2zM136.1 195.55c0 62.284-53.51 94.162-55.728 95.452L71 296.352v94.498h372v-94.498l-9.373-5.35c-.562-.318-55.727-32.573-55.727-95.452 0-63.88-12.533-148.8-120.9-148.8-108.368 0-120.9 84.92-120.9 148.8z"
+ },
+ "name": "nav-bell",
+ "size": 28
+ }
+ }
+ },
+ "count": {
+ "maxCountDisplay": 99,
+ "pollingInterval": 2,
+ "pollingDuration": 10
+ },
+ "maxUpsellCount": 10,
+ "prefetchBatchSize": 10,
+ "prefetchContent": true,
+ "renderTarget": "modal"
+ },
+ "placeHolder": {
+ "width": ""
+ },
+ "promotedNotification": {
+ "body": "Set your new tab and home page to Yahoo to keep up with latest news.",
+ "buttonLabel": "Add it Now ",
+ "enabled": true,
+ "extensionName": "homepage",
+ "heading": "Stay on top of breaking news!",
+ "isExtension": true,
+ "promoId": "20160606",
+ "increaseCount": true,
+ "timeToLive": 0,
+ "timeToResurrect": 1814400
+ },
+ "profile": {
+ "style": {
+ "account_info": {},
+ "avatar": {},
+ "container": {},
+ "panel": {},
+ "button": {
+ "inline": {}
+ },
+ "signed_out": {}
+ },
+ "data": {
+ "icon": {
+ "profile": {
+ "asset": {
+ "name": "profile",
+ "height": 48,
+ "width": 48,
+ "path": "M4.095 33.61c1.092 2.7 2.607 4.937 4.562 6.696 1.94 1.766 4.23 3.072 6.847 3.922 2.632.846 5.472 1.27 8.53 1.27 3.012 0 5.837-.425 8.458-1.27 1.053-.342 2.046-.754 2.986-1.244 1.41-.732 2.705-1.617 3.87-2.678 1.948-1.76 3.472-3.996 4.558-6.697 1.092-2.7 1.636-5.903 1.636-9.614 0-3.702-.544-6.904-1.636-9.61-1.086-2.703-2.608-4.934-4.56-6.694-1.944-1.767-4.23-3.07-6.854-3.922-2.62-.847-5.445-1.27-8.457-1.27-3.06 0-5.9.423-8.53 1.27-.847.277-1.662.607-2.443.98-1.623.777-3.1 1.753-4.404 2.942-1.956 1.76-3.47 3.992-4.562 6.694-1.09 2.706-1.636 5.908-1.636 9.61-.002 3.71.545 6.914 1.635 9.613zM35.838 34.758l-23.674.002v-2.21s.017-1.425 3.123-2.716c1.538-.633 3.35-1.854 6.6-2.24-.997-.705-1.44-2.154-2.29-4.17-.02-.032-.03-.068-.043-.1-.193.032-.393.032-.537-.046-.398-.232-.636-1.48-.642-2.092-.01-.906.48-.824.48-.824s.017 0 .042-.004c-.006-.07-.01-.142-.01-.213 0-.86-.174-2.24.053-2.988.353-1.176.78-2.46 1.72-2.464.874 0 .28-1.006 1.348-1.345 1.102-.348 2.912.262 3.283.262.53 0 1.863.378 2.78 1.284.646.64.572 1.08.93 2.25.23.777.057 2.167.057 3 0 .07-.007.14-.014.213.018.007.03.007.03.007s.487-.082.478.824c-.004.612-.248 1.86-.635 2.092-.146.078-.34.078-.53.052-.01.026-.023.058-.033.09-.85 1.996-1.308 3.457-2.305 4.162 3.283.38 5.107 1.61 6.654 2.25 3.128 1.287 3.14 2.533 3.14 2.533l-.002 2.39z"
+ },
+ "name": "profile",
+ "size": 34
+ }
+ }
+ },
+ "mode": "client",
+ "authStateCheck": false,
+ "avatarSize": "36px",
+ "loginBaseUrl": "https:\u002F\u002Flogin.yahoo.com\u002Fconfig\u002Flogin",
+ "settingUrl": "https:\u002F\u002Fedit.yahoo.com\u002Fconfig\u002Feval_profile",
+ "signoutUrl": "https:\u002F\u002Flogin.yahoo.com\u002Fconfig\u002Flogin?logout=1&amp;.direct=2&amp;.done=https:\u002F\u002Fwww.yahoo.com",
+ "urls": {
+ "signed_in": {
+ "protocol": "https",
+ "hostname": "login.yahoo.com",
+ "pathname": "\u002Fconfig\u002Flogin",
+ "query": {}
+ },
+ "signed_out": {
+ "protocol": "https",
+ "hostname": "login.yahoo.com",
+ "pathname": "\u002Fconfig\u002Flogin",
+ "query": {
+ ".direct": 2,
+ "logout": 1
+ }
+ },
+ "account_info": {
+ "protocol": "https",
+ "hostname": "edit.yahoo.com",
+ "pathname": "\u002Fconfig\u002Feval_profile",
+ "query": {}
+ }
+ }
+ },
+ "search": {
+ "style": {
+ "cancel_button": {},
+ "table": {},
+ "container": {},
+ "input": {},
+ "search_button": {
+ "inline_1": {},
+ "inline_2": {}
+ },
+ "magnifying_glass": {}
+ },
+ "verticalSearchEnabled": false,
+ "verticalSearchButtonText": "SEARCH_VERT_NEWS",
+ "webSearchButtonText": "SEARCH_WEB",
+ "verticalSearchAction": "https:\u002F\u002Fnews.search.yahoo.com\u002Fsearch",
+ "autofocus": true,
+ "assistYlc": ";_ylc=X3oDMTFiaHBhMnJmBF9TAzIwMjM1MzgwNzUEaXRjAzEEc2VjA3NyY2hfcWEEc2xrA3NyY2hhc3Q-",
+ "ylc": ";_ylc=X3oDMTFiN25laTRvBF9TAzIwMjM1MzgwNzUEaXRjAzEEc2VjA3NyY2hfcWEEc2xrA3NyY2h3ZWI-",
+ "buttonText": "SEARCH",
+ "glowEnabled": false,
+ "placeholderIcon": false,
+ "placeholderText": "SEARCH",
+ "autocomplete": {
+ "gossip": {
+ "url": {
+ "host": "search.yahoo.com",
+ "path": "\u002Fsugg\u002Fgossip\u002Fgossip-us-ura\u002F",
+ "query": {
+ "appid": "yahoo.com",
+ "nresults": 10,
+ "output": "sd1"
+ }
+ }
+ }
+ },
+ "icon": {},
+ "instantSearch": false,
+ "searchHint": false,
+ "cancelBtn": false,
+ "clearBtn": false,
+ "termCompleteBtn": false,
+ "trendingNow": false,
+ "magnifyingGlass": false,
+ "useIcon": false,
+ "queries": {},
+ "showSubPartnerLogo": false
+ },
+ "searchOrigin": {
+ "fr": "uh3_news_web_gs",
+ "vfr": "uh3_news_vert_gs",
+ "fr2": "p:news,m:{FRSOURCE}"
+ },
+ "skip_nav": {
+ "style": {
+ "container": {
+ "wrapper": "Pos(a)"
+ },
+ "link": {
+ "content": "W(0) O(h) D(ib) Whs(nw) Pos(a) Bg(#500095) C(#fff) Op(0) W(a):f Op(1):f P(5px):f"
+ }
+ },
+ "data": {
+ "items": {
+ "item_1": {
+ "name": "Skip to Navigation",
+ "link": "#Navigation",
+ "order": 1
+ },
+ "item_2": {
+ "name": "Skip to Main Content",
+ "link": "#Main",
+ "order": 2
+ },
+ "item_3": {
+ "name": "Skip to Related Content",
+ "link": "#Aside",
+ "order": 3
+ }
+ }
+ }
+ },
+ "topbar": {
+ "style": {
+ "nav_home": {
+ "inline": {},
+ "link": {}
+ },
+ "nav_main": {
+ "link": {},
+ "link_home": {
+ "icon": {
+ "down_arrow": {
+ "inline": {}
+ },
+ "home": {
+ "inline": {}
+ }
+ }
+ },
+ "link_more": {
+ "icon": {
+ "down_arrow": {
+ "inline": {}
+ }
+ }
+ }
+ },
+ "nav_more": {
+ "inline": {},
+ "link": {}
+ }
+ },
+ "data": {
+ "force_absolute": {
+ "answers": false,
+ "finance": false,
+ "games": false,
+ "groups": false,
+ "home": false,
+ "mail": false,
+ "mobile": false,
+ "screen": false,
+ "search": false,
+ "shopping": false,
+ "sports": false,
+ "weather": false
+ },
+ "force_absolute_all": true,
+ "homeSwitcher": {
+ "enabled": false
+ },
+ "more": 11,
+ "more_item": {
+ "link": "https:\u002F\u002Feverything.yahoo.com",
+ "title": "More"
+ },
+ "icon": {
+ "home": {
+ "asset": {
+ "name": "home",
+ "height": 32,
+ "width": 32,
+ "path": "M16.153 3.224L0 16.962h4.314v11.814h9.87v-8.003h3.934v8.003h9.84V16.962H32"
+ },
+ "name": "home",
+ "size": 16
+ },
+ "down_arrow": {
+ "asset": {
+ "name": "CoreArrowDown",
+ "height": 512,
+ "width": 512,
+ "path": "M500.77 131.432L477.53 108.18c-14.45-14.55-40.11-14.55-54.51 0L255.845 275.363 88.582 108.124c-15.015-14.874-39.363-14.874-54.42.108L10.94 131.486c-14.58 14.44-14.58 40.11-.033 54.442l217.77 217.845c15.004 14.82 39.33 14.874 54.42-.108L500.88 185.82c14.818-14.982 14.87-39.298-.11-54.388z"
+ },
+ "name": "CoreArrowDown",
+ "size": 8
+ }
+ }
+ }
+ },
+ "data": {
+ "action": {
+ "load_nav": {
+ "cache": {
+ "enabled": true
+ }
+ },
+ "load_theme": {
+ "cache": {
+ "enabled": true
+ },
+ "client": {
+ "enabled": true
+ }
+ }
+ }
+ },
+ "navTitle": "",
+ "ui": {
+ "alphatar": true,
+ "back": false,
+ "darkTheme": false,
+ "follow": true,
+ "help": false,
+ "logo": true,
+ "mail": true,
+ "mailcount": true,
+ "mailpreview": true,
+ "menuBtn": true,
+ "notifications": false,
+ "openSearchBtn": false,
+ "profile": true,
+ "profileNotifications": true,
+ "profileCardOpen": false,
+ "profileCardAvatar": false,
+ "profileCardName": false,
+ "profileCardEmail": false,
+ "profileCardSignout": false,
+ "profileCardAcctInfo": false,
+ "search": true,
+ "share": false,
+ "skip_nav": true,
+ "theme": "mega",
+ "topbar": true,
+ "topbarFFPromo": true,
+ "topbarSticky": true,
+ "partnerTheme": false
+ },
+ "useNavTitle": false,
+ "actions": {
+ "loadNav": false
+ },
+ "useTopicTitle": false
+ },
+ "i13n": {
+ "sec": "uh"
+ },
+ "mrt": {
+ "flush": false,
+ "cache": true,
+ "skipAlertOnChecksumMismatch": true,
+ "prioritize": false
+ }
+ },
+ "tgtm-Overlay-1-Nagbar": {
+ "ui": {
+ "eprivacy": false
+ },
+ "eprivacy": {
+ "wrapper_1": "Bgc(eprivbg) Pos(f) B(0) Start(0) End(0) M(0) C(white) Ta(c) Fz(14px) Ta(c) Pt(13px) Pb(14px) Pstart(40px) Pend(20px) lightweight_Bgc(eprivlwbg)"
+ }
+ },
+ "tgtm-Lead-2-FeatureBar": {
+ "contentSite": "news",
+ "imageSize": {
+ "width": 272,
+ "height": 144
+ },
+ "ui": {
+ "container_classnames": "Miw(1007px) Maw(1260px) Bxz(bb) Bdstartc(#fff) Bdstartw(20px) Bdendc(#fff) Bdends(s) Bdendw(20px) Bdstarts(s) Mx(a) My(10px)"
+ },
+ "site": "news"
+ },
+ "tgtm-YDC-Stream": {
+ "ads": {
+ "ad_polices": true,
+ "adchoices_url": "https:\u002F\u002Finfo.yahoo.com\u002Fprivacy\u002Fus\u002Fyahoo\u002Frelevantads.html",
+ "contentType": "video\u002Fmp4,application\u002Fx-shockwave-flash",
+ "count": 25,
+ "enableGeminiAdFeedback": true,
+ "enableVideoManagerGemini": false,
+ "fallback": false,
+ "force_thumbnail_size": false,
+ "frequency": 3,
+ "inline_video": true,
+ "letterbox_thumb": true,
+ "pu": "www.yahoo.com",
+ "related_ct_se": "5454650",
+ "related_start_index": 3,
+ "se": 4402687,
+ "spaceid": 2023538075,
+ "sponsored_url": "http:\u002F\u002Fhelp.yahoo.com\u002Fkb\u002Findex?page=content&amp;y=PROD_FRONT&amp;locale=en_US&amp;id=SLN14553",
+ "start_index": 1,
+ "timeout": 0,
+ "type": "STRM,STRM_CONTENT,STRM_VIDEO",
+ "useHqImg": true,
+ "useResizedImages": true,
+ "videoExpName": "gemini",
+ "videoBeaconDisabled": true,
+ "enableEndCard": true
+ },
+ "batches": {
+ "pagination": true,
+ "size": 10,
+ "timeout": 500,
+ "total": 170
+ },
+ "cache_ads": false,
+ "cache_ttl": 300,
+ "category": "YPROP:NEWS",
+ "clear_on_navigate": false,
+ "embedComponents": [],
+ "flyout_enabled": false,
+ "forceJpg": true,
+ "headline_test_enabled": true,
+ "i13n": {
+ "sec": "strm"
+ },
+ "login": {
+ "src": "fpctx"
+ },
+ "max_dedupe_ADID_size": 50,
+ "max_dedupe_UUID_size": 250,
+ "max_exclude": 0,
+ "min_count": 3,
+ "min_count_error": true,
+ "pageload_image_count": 3,
+ "pageload_item_count": -1,
+ "perf_beacon": false,
+ "perf_label": "",
+ "offnet": {
+ "include_lcp": true,
+ "share_buttons": {
+ "buttons_to_show": ["tumblr", "twitter"]
+ },
+ "use_preview": true
+ },
+ "redisCompress": false,
+ "sentiment_comments_enabled": false,
+ "service": {
+ "specRetry": {
+ "enabled": true,
+ "triggerDelayPct": 50,
+ "throttleRate": 300
+ }
+ },
+ "sidekick_sectionid_enabled": false,
+ "store": {
+ "ls_delay": 1000,
+ "ls_ttl": 86400
+ },
+ "ui": {
+ "applet_layout": {
+ "actionFontSize": "Fz(12px)",
+ "actionColor": "#c8c8cc",
+ "actionIconSize": 15,
+ "actionWrapper": "D(ib) W(50%) Ta(end)",
+ "categoryClass": "Fz(14px) Fw(b) Tt(c) Ell Mb(5px)",
+ "headerLink": "Td(n) Fz(18px) Fw(b) LineClamp(4,91px)",
+ "linkColor": "C(#3c3c5b)",
+ "wrapper": "P(20px)"
+ },
+ "attribution_filter": false,
+ "attribution_pos": "top",
+ "breaking_news": false,
+ "breaking_news_closable": false,
+ "comments": true,
+ "comments_count": 3,
+ "comments_offnet": false,
+ "container_classnames": "",
+ "dispatch_content_store": true,
+ "editorial_content_count": 19,
+ "editorial_featured_count": 1,
+ "enable_canvass_comments": true,
+ "exclude_types": "",
+ "follow_cluster": true,
+ "follow_content": true,
+ "ad_image_fit": false,
+ "image_quality_override": true,
+ "inline_filters_article_min": 10,
+ "inline_filters_max": 0,
+ "inline_video": false,
+ "item_classnames": "",
+ "link_params": false,
+ "link_out_allowed": true,
+ "magazine_featured": true,
+ "magazine_icon": false,
+ "max_width": 900,
+ "mega_image_height": "",
+ "needtoknow_card": false,
+ "needtoknow_roundup_only": false,
+ "needtoknow_template": "carousel",
+ "ntk_bypassA3c": true,
+ "property_colors": true,
+ "pubtime_maxage": -1,
+ "related_count": 5,
+ "related_enabled": true,
+ "require_resized_image": false,
+ "related_item_width": "",
+ "related_min": 3,
+ "relative_links": true,
+ "render_video_featured": false,
+ "roundup": true,
+ "scrollbuffer": 900,
+ "share_buttons": {
+ "buttons_to_show": ["tumblr", "facebook", "twitter", "mail"],
+ "enable": true,
+ "mail_host": "www.yahoo.com"
+ },
+ "show_comment_count": true,
+ "show_error": true,
+ "show_follow_treatment": false,
+ "show_publisher_color": true,
+ "show_read": true,
+ "show_summary": true,
+ "smart_crop": true,
+ "sponsored_label": false,
+ "sponsored_label_pos": "bottom",
+ "storyline_count": 2,
+ "storyline_enabled": true,
+ "storyline_min": 2,
+ "summary": true,
+ "tiles": {
+ "allowPartialRows": true,
+ "doubleTallStart": 0,
+ "featured_label": false,
+ "gradient": false,
+ "height": 175,
+ "resizeImages": true,
+ "textOnly": [{
+ "backgroundColor": "#fff",
+ "foregroundColor": "#000"
+ }],
+ "width_max": 300,
+ "width_min": 200
+ },
+ "thumbnail": true,
+ "thumbnail_align": "left",
+ "thumbnail_size": 100,
+ "title_pos": "bottom",
+ "touch_device": false,
+ "tumblr_reblog": false,
+ "view": "mega",
+ "follow_cluster_hover_color": true,
+ "follow_content_hover_color": true,
+ "follow_content_tooltip": true,
+ "hover_on_image": true,
+ "tumblr_reblog_hover_color": true,
+ "tumblr_reblog_tooltip": true,
+ "show_comments_drawer": false,
+ "button_pos": "right",
+ "image_classes": "W(26.5%) Maw(220px)",
+ "related_endpoint": "ga-hr.slingstone.yahoo.com@score\u002Fv9\u002Fnews\u002Fen-US\u002Funified\u002Frelated_content_increased_coverage",
+ "show_label": true,
+ "storyline_navparam_enabled": true,
+ "prerender": {
+ "enabled": true,
+ "renderTargetId": "modal"
+ },
+ "featured_count": 1
+ },
+ "use_article_category": false,
+ "use_content_id": false,
+ "use_content_site": true,
+ "use_page_category": false,
+ "use_prefetch": true,
+ "use_yct_wikiids": true,
+ "video": {
+ "disable_buffer_on_pause": true,
+ "disable_title_on_hover": true,
+ "enable_ads": false,
+ "energy_saver_mode": false,
+ "enable_custom_controls": false,
+ "enable_detached_video": false,
+ "enable_docking": false,
+ "enable_expand_on_unmute": false,
+ "enable_video_enrichment": false,
+ "use_inline_video": false
+ },
+ "persist_category": false,
+ "use_mags_nydc": true,
+ "components": {
+ "StreamHeroCarousel": {
+ "ui": {
+ "enable_canvass_comments": true,
+ "show_comments_drawer": false
+ }
+ }
+ },
+ "linkRenderTarget": "modal",
+ "no_ss_pnr_ntk": false,
+ "pnr_package_enabled": true,
+ "ss_endpoint": "ga-hr.slingstone.yahoo.com@score\u002Fv9\u002Fnews\u002Fen-US\u002Funified\u002Fmega_news_ntk"
+ },
+ "tgtm-Col2-0-FollowAuthor": {
+ "site": "news",
+ "enableContentSite": false,
+ "authorCount": 3,
+ "headlineCount": 1,
+ "showProvider": false,
+ "authors": {
+ "news": [{
+ "name": "Katie Couric",
+ "imgUrl": "https:\u002F\u002Fs.yimg.com\u002Fdh\u002Fap\u002Fdefault\u002F160914\u002Fkc2.jpg",
+ "url": "#",
+ "authorUrl": "https:\u002F\u002Fwww.yahoo.com\u002Fkatiecouric\u002F",
+ "listId": "98c14b1e-8c70-46db-987f-a15041641f07"
+ }, {
+ "name": "Michael Isikoff",
+ "imgUrl": "https:\u002F\u002Fs.yimg.com\u002Fdh\u002Fap\u002Fdefault\u002F160914\u002Fmi2.jpg",
+ "url": "#",
+ "authorUrl": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Ftagged\u002Fmichael-isikoff",
+ "listId": "827f74ce-95bd-4dbc-86c4-a41ec6b4e731"
+ }, {
+ "name": "Matt Bai",
+ "imgUrl": "https:\u002F\u002Fs.yimg.com\u002Fdh\u002Fap\u002Fdefault\u002F160914\u002Fmb2.jpg",
+ "url": "#",
+ "authorUrl": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Ftagged\u002Fmatt-bai",
+ "listId": "f0462a32-6855-4ed3-b7f8-74fc942db55a"
+ }],
+ "sports": {
+ "isObject": true,
+ "tim-brown": {
+ "name": "Tim Brown",
+ "title": "Yahoo Sports MLB columnist",
+ "imgUrl": "https:\u002F\u002Fs.yimg.com\u002Fos\u002F388\u002F2012\u002F05\u002F30\u002F01-expert-feat-posts-70x70-png_005010.png",
+ "url": "http:\u002F\u002Fsports.yahoo.com\u002Fauthor\u002Ftim-brown\u002F",
+ "listId": "eda27310-8cd7-4eb3-9325-7f8ae3929fe4"
+ },
+ "jeff-passan": {
+ "name": "Jeff Passan",
+ "title": "Yahoo Sports MLB columnist",
+ "imgUrl": "https:\u002F\u002Fs.yimg.com\u002Fos\u002F388\u002F2012\u002F06\u002F01\u002F01-expert-feat-posts-70x70-png_235312.png",
+ "url": "http:\u002F\u002Fsports.yahoo.com\u002Fauthor\u002Fjeff-passan\u002F",
+ "listId": "5e55e158-edbf-4932-942a-db471bee29e8"
+ },
+ "kevin-iole": {
+ "name": "Kevin Iole",
+ "title": "Yahoo Sports columnist",
+ "imgUrl": "https:\u002F\u002Fs.yimg.com\u002Fos\u002F388\u002F2012\u002F05\u002F28\u002F01-expert-feat-posts-70x70-png_225912.png",
+ "url": "http:\u002F\u002Fsports.yahoo.com\u002Fauthor\u002Fkevin-iole\u002F",
+ "listId": "0845af66-9c6d-43a8-8636-4f6e9f8471cf"
+ },
+ "pat-forde": {
+ "name": "Pat Forde",
+ "title": "Yahoo Sports NCAA columnist",
+ "imgUrl": "https:\u002F\u002Fs.yimg.com\u002Fos\u002F388\u002F2012\u002F05\u002F30\u002F01-expert-feat-posts-70x70-png_000447.png",
+ "url": "http:\u002F\u002Fsports.yahoo.com\u002Fauthor\u002Fpat-forde\u002F",
+ "listId": "368bc7d1-f7f9-4767-802b-dd22a6955290"
+ },
+ "jeff-eisenberg": {
+ "name": "Jeff Eisenberg",
+ "title": "Yahoo Sports NCAA blogger",
+ "imgUrl": "https:\u002F\u002Fs.yimg.com\u002Fos\u002Fpublish-images\u002Fsports\u002F2015-03-18\u002F256e5f10-cdc1-11e4-88aa-7d41d3c7c804_JeffEisenberg70-jpg_202637.jpg",
+ "url": "http:\u002F\u002Fsports.yahoo.com\u002Fauthor\u002Fjeff-eisenberg\u002F",
+ "listId": "57d89a98-120e-4c44-88c0-9ea1f7b96bf2"
+ },
+ "adrian-wojnarowski": {
+ "name": "Adrian Wojnarowski",
+ "title": "Yahoo Sports NBA columnist",
+ "imgUrl": "https:\u002F\u002Fs.yimg.com\u002Fos\u002F388\u002F2012\u002F05\u002F30\u002F01-expert-feat-posts-70x70-png_005116.png",
+ "url": "http:\u002F\u002Fsports.yahoo.com\u002Fauthor\u002Fadrian-wojnarowski\u002F",
+ "listId": "da29fa5f-50ec-4a0d-be8d-8f0d482169cd"
+ },
+ "marc-j-spears": {
+ "name": "Marc J. Spears",
+ "alias": "marc-j-spears",
+ "title": "Yahoo Sports NBA reporter",
+ "imgUrl": "https:\u002F\u002Fs.yimg.com\u002Fos\u002F388\u002F2012\u002F05\u002F28\u002F01-expert-feat-posts-70x70-png_230455.png",
+ "url": "http:\u002F\u002Fsports.yahoo.com\u002Fauthor\u002Fmarc-j-spears\u002F",
+ "listId": "ee04c940-6f0b-11e1-afcc-92fb33c2be30"
+ },
+ "charles-robinson": {
+ "name": "Charles Robinson",
+ "title": "Yahoo Sports investigative reporter",
+ "imgUrl": "https:\u002F\u002Fs.yimg.com\u002Fos\u002F388\u002F2012\u002F07\u002F22\u002F01-expert-feat-posts-70x70-png_203726.png",
+ "url": "http:\u002F\u002Fsports.yahoo.com\u002Fauthor\u002Fcharles-robinson\u002F",
+ "listId": "37e1413e-5d82-4aca-a4ab-3974cb191975"
+ },
+ "eric-adelson-20120217": {
+ "name": "Eric Adelson",
+ "alias": "eric-adelson-20120217",
+ "title": "Yahoo Sports columnist",
+ "imgUrl": "https:\u002F\u002Fs.yimg.com\u002Fos\u002F388\u002F2012\u002F05\u002F10\u002F01-expert-feat-posts-70x70-png_165931.png",
+ "url": "http:\u002F\u002Fsports.yahoo.com\u002Fauthor\u002Feric-adelson-20120217\u002F",
+ "listId": "0f76ef5e-deb5-4587-8521-f0c51a06b702"
+ },
+ "dan-wetzel": {
+ "name": "Dan Wetzel",
+ "title": "Yahoo Sports columnist",
+ "imgUrl": "https:\u002F\u002Fs.yimg.com\u002Fos\u002F388\u002F2012\u002F06\u002F28\u002F01-expert-feat-posts-70x70-png_230024.png",
+ "url": "http:\u002F\u002Fsports.yahoo.com\u002Fauthor\u002Fdan-wetzel\u002F",
+ "listId": "98c2ef0b-8343-4614-9b68-620c4556f124"
+ }
+ }
+ },
+ "category": ""
+ },
+ "tgtm-Col2-3-CanvassSummaryView": {
+ "publisher": "news-en-US",
+ "guidelineUrl": "\u002F\u002Fhelp.yahoo.com\u002Fkb\u002Fnews\u002FSLN2292.html",
+ "FIXED_UH_HEIGHT": 130,
+ "ui": {
+ "sortTabs": {
+ "enabled": true,
+ "arrangement": ["popular", "createdAt", "oldest", "mostdiscussed"],
+ "defaultTab": "popular",
+ "myComments": false
+ },
+ "enableCommentsToggle": false,
+ "expanded": true,
+ "containerExtraClasses": "",
+ "reactions": {
+ "enabled": false
+ },
+ "seeMore": false,
+ "thumbs": ["up"],
+ "disclaimer": {
+ "enable": false
+ },
+ "showContextDisplayText": true
+ },
+ "i13n": {
+ "itc": "1",
+ "sec": "cmmts",
+ "subsec": "canvass"
+ },
+ "header": {
+ "imgTitle": "Elections",
+ "imgUrl": "",
+ "imgStyle": "W(100%)",
+ "imgLink": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Felections",
+ "imgFollowLink": true,
+ "forceLoad": false,
+ "logoImg": ""
+ },
+ "subHeader": {
+ "title": "CANVASS_SUBHEADER_TITLE",
+ "subHeaderStyle": "Fz(15px) Fw(b)"
+ },
+ "footer": {
+ "footerTxt": "CANVASS_FOOTER_TITLE",
+ "footerStyle": "C(#188fff)"
+ },
+ "isSummaryView": true,
+ "enable": true,
+ "enableInitAction": false
+ },
+ "tgtm-Col2-4-WeatherSimpleForecast": {
+ "assetsConfig": {
+ "image": {
+ "base": "https:\u002F\u002Fs.yimg.com\u002Fos\u002Fweather\u002F1.0.1\u002F",
+ "resource": {
+ "darkIcon": "dark_icon\u002F",
+ "flickr": "flickr\u002F",
+ "icon": "icon\u002F",
+ "moon": "moon\u002F",
+ "precipitation": "precipitation\u002F",
+ "provider": "provider\u002F",
+ "shadowIcon": "shadow_icon\u002F",
+ "sun": "sun\u002F",
+ "windmill": "windmill\u002F",
+ "map": "map\u002F"
+ }
+ },
+ "js": {
+ "map": "https:\u002F\u002Fs.yimg.com\u002Fst\u002Fymaps-ajax-v5\u002F5.0.12\u002Fymaps.min.js"
+ }
+ },
+ "location": {
+ "woeid": null
+ },
+ "ui": {
+ "blurBackground": false,
+ "displayProvider": true,
+ "enableLocationDetect": true,
+ "followRoute": false,
+ "forceLoadCondition": true,
+ "getFavoriteLocation": false,
+ "hasMargin": false,
+ "initAction": 1,
+ "providerCheck": true,
+ "separateBackground": false,
+ "seperateLocationAndTemperature": false,
+ "setSelectedAsCurrentLoc": false,
+ "showLocationHint": true,
+ "updateMetaOnInit": false
+ },
+ "unit": ["imperial", "metric"],
+ "moduleOrder": [
+ ["Forecast", "Precipitation", "Wind"],
+ ["Detail", "Sun", "Map"]
+ ],
+ "mapSwitch": {
+ "size": 50,
+ "imageHostName": "https:\u002F\u002Fweather-flickr-yql-tile.media.yahoo.com"
+ },
+ "defaultImageDimension": {
+ "width": 1024,
+ "height": 768
+ },
+ "mapLink": "http:\u002F\u002Fweather.com\u002Fweather\u002Fradar\u002Finteractive\u002Fl\u002F{locationId}",
+ "providerLink": "http:\u002F\u002Fwww.weather.com\u002Fweather\u002Fextended\u002Fl\u002F{locationId}",
+ "landingUrl": "https:\u002F\u002Fweather.yahoo.com\u002F",
+ "dataExclude": ["forecasts.hourly", "photos", "observation", "precipitations", "sunAndMoon"]
+ },
+ "tgtm-Col2-6-Channels": {
+ "channels": {
+ "enableAdOnQuickPlay": true,
+ "enableOverlayTitle": false,
+ "mode": "quickplay",
+ "parentAlias": "",
+ "sidekickConfig": {
+ "bgColor": "#fff"
+ },
+ "playlistAlias": "news",
+ "yvapid": "1138"
+ },
+ "i13n": {
+ "sec": "vid-channels-mod"
+ },
+ "container_classnames": "Mb(40px)"
+ },
+ "tgtm-Col2-7-DiscussionList": {
+ "ads": {
+ "adchoicesUrl": "https:\u002F\u002Finfo.yahoo.com\u002Fprivacy\u002Fus\u002Fyahoo\u002Frelevantads.html",
+ "adsCount": 5,
+ "enableGeminiAd": true,
+ "nativeAdDimension": ["118x61"],
+ "sponsoredUrl": "http:\u002F\u002Fhelp.yahoo.com\u002Fkb\u002Findex?page=content&amp;y=PROD_FRONT&amp;locale=en_US&amp;id=SLN14553"
+ },
+ "appendQueryParam": {
+ ".tsrc": "jtc_news_index"
+ },
+ "category": "LISTID:JTD$politics",
+ "count": 10,
+ "dispatchContentStore": true,
+ "flyoutEnabled": true,
+ "i13n": {
+ "sec": "jtd"
+ },
+ "maxCount": 5,
+ "resizeTag": ["img:150x111|2|80"],
+ "requireArticleWithComments": true,
+ "requireResizeTags": ["img:150x111"],
+ "requireResizedImage": true,
+ "sentimentCommentsEnabled": true,
+ "topRatedCommentsEnabled": true,
+ "ui": {
+ "enable_canvass_comments": true
+ },
+ "usePrefetch": true,
+ "linkRenderTarget": "modal",
+ "prerender": {
+ "enabled": true,
+ "renderTargetId": "modal"
+ }
+ },
+ "tgtm-Col2-8-Footer": {
+ "copyright": {},
+ "legalAttribution": "ATTRIBUTION_YAHOO",
+ "enableLegalAttribution": true,
+ "links": ["help", "privacy", "suggestions", "about_our_ads", "terms"],
+ "linkMeta": {
+ "about_our_ads": {
+ "title": "ABOUT_OUR_ADS",
+ "href": "https:\u002F\u002Finfo.yahoo.com\u002Fprivacy\u002Fus\u002Fyahoo\u002Frelevantads.html"
+ },
+ "advertise": {
+ "title": "ADVERTISE",
+ "href": "https:\u002F\u002Fadvertising.yahoo.com"
+ },
+ "careers": {
+ "title": "CAREERS",
+ "href": "https:\u002F\u002Fcareers.yahoo.com\u002Fus"
+ },
+ "feedback": {
+ "title": "FEEDBACK",
+ "href": "https:\u002F\u002Ffeedback.yahoo.com\u002Fforums\u002F206380-us-homepage"
+ },
+ "help": {
+ "title": "HELP",
+ "href": "https:\u002F\u002Fhelp.yahoo.com\u002Fkb\u002Fhelpcentral"
+ },
+ "privacy": {
+ "title": "PRIVACY",
+ "href": "https:\u002F\u002Fpolicies.yahoo.com\u002Fus\u002Fen\u002Fyahoo\u002Fprivacy\u002Findex.htm"
+ },
+ "suggestions": {
+ "title": "SUGGESTIONS",
+ "href": "https:\u002F\u002Fyahoo.uservoice.com\u002Fforums\u002F206380"
+ },
+ "terms": {
+ "title": "TERMS",
+ "href": "https:\u002F\u002Fpolicies.yahoo.com\u002Fus\u002Fen\u002Fyahoo\u002Fterms\u002Futos\u002Findex.htm"
+ }
+ },
+ "wrapperClassName": "yvpDocked_Mt(260px)"
+ },
+ "tgtm-Nav-0-NavLite": {
+ "account_switch": {
+ "isEnabled": true
+ },
+ "closeBtn": false,
+ "components": {
+ "home": {
+ "title": "Home",
+ "link": "https:\u002F\u002Fwww.yahoo.com",
+ "type": "home",
+ "isNavLink": true,
+ "flexibleLinks": true,
+ "i13n": {}
+ },
+ "propertyHome": {
+ "title": "PROPERTY_HOME",
+ "dragonFlyKey": "PROPERTY_HOME"
+ },
+ "megaLinks": {
+ "links": ["mail", "news", "sports", "finance", "celebrity", "shopping", "movies", "beauty", "style", "tech", "tv", "more_on_yahoo"]
+ },
+ "mail": {
+ "title": "Mail",
+ "link": "https:\u002F\u002Fmail.yahoo.com\u002F?.src=fpctx",
+ "type": "mail",
+ "i13n": {}
+ },
+ "magazines": {
+ "title": "Topics",
+ "open": true,
+ "collapse": false,
+ "type": "magazines",
+ "i13n": {},
+ "links": ["news", "sports", "finance", "movies", "tv", "music", "celebrity", "gma", "homes", "style", "beauty", "horoscopes", "tech"]
+ },
+ "apps": {
+ "title": "Apps",
+ "type": "apps",
+ "i13n": {},
+ "links": ["ios_apps_yahoo", "ios_apps_digest", "ios_apps_mail", "ios_apps_finance", "ios_apps_sports", "ios_apps_weather", "ios_apps_search"]
+ },
+ "more": {
+ "title": "More",
+ "link": "https:\u002F\u002Feverything.yahoo.com",
+ "type": "more",
+ "i13n": {},
+ "links": ["answers", "dating", "fantasy", "flickr", "groups", "homes", "jobs", "local", "mobile", "my_yahoo", "tumblr", "weather"]
+ },
+ "news": {
+ "title": "News",
+ "link": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002F",
+ "collapse": true,
+ "type": "news",
+ "i13n": {},
+ "links": ["news_us", "news_world", "news_politics", "news_tech", "news_science", "news_odd", "news_abc-news", "news_originals", "news_katie"],
+ "propertyColor": "#efefef",
+ "followButtonsConfig": [{
+ "channel": "tumblr",
+ "id": "yahoonews"
+ }, {
+ "channel": "twitter",
+ "id": "yahoonews"
+ }, {
+ "channel": "facebook",
+ "id": "YahooNews"
+ }, {
+ "channel": "instagram",
+ "id": "yahoonews"
+ }]
+ },
+ "celebrity": {
+ "title": "Celebrity",
+ "link": "https:\u002F\u002Fcelebrity.yahoo.com",
+ "collapse": true,
+ "type": "celebrity",
+ "i13n": {},
+ "links": ["celebrity_news", "celebrity_photos", "celebrity_us_interviews", "celebrity_couples", "celebrity_scandals", "celebrity_the-insider", "celebrity_social_snaps"],
+ "propertyColor": "#efefef",
+ "followButtonsConfig": [{
+ "channel": "tumblr",
+ "id": "yahooentertainment"
+ }, {
+ "channel": "twitter",
+ "id": "yahoocelebrity"
+ }, {
+ "channel": "facebook",
+ "id": "YahooCelebrity"
+ }, {
+ "channel": "instagram",
+ "id": "yahoocelebrity"
+ }]
+ },
+ "katiecouric": {
+ "title": "Katie Couric",
+ "link": "https:\u002F\u002Fwww.yahoo.com\u002Fkatiecouric",
+ "collapse": true,
+ "type": "katiecouric",
+ "i13n": {},
+ "links": ["katiecouric_newsmakers", "katiecouric_conversations", "katiecouric_nowigetit", "katiecouric_world", "katiecouric_live"],
+ "propertyColor": "#efefef",
+ "followButtonsConfig": [{
+ "channel": "tumblr",
+ "id": "katiecouric"
+ }, {
+ "channel": "facebook",
+ "id": "katiecouric"
+ }, {
+ "channel": "twitter",
+ "id": "katiecouric"
+ }, {
+ "channel": "instagram",
+ "id": "katiecouric"
+ }, {
+ "channel": "pinterest",
+ "id": "katiecouric"
+ }]
+ },
+ "style": {
+ "title": "Style",
+ "link": "https:\u002F\u002Fwww.yahoo.com\u002Fstyle",
+ "collapse": true,
+ "type": "style",
+ "i13n": {},
+ "links": ["style_decor", "style_horoscope", "style_fashion", "style_accessories", "style_popculture", "style_weddings", "style_sparkletips", "style_men", "style_exclusive", "style_fashionweek", "style_a-to-zee", "style_video", "style_redcarpet", "style_shopping", "beauty"],
+ "propertyColor": "#efefef",
+ "followButtonsConfig": [{
+ "channel": "twitter",
+ "id": "YahooStyle"
+ }, {
+ "channel": "facebook",
+ "id": "yahoostylebeauty"
+ }, {
+ "channel": "instagram",
+ "id": "Yahoostyle"
+ }, {
+ "channel": "pinterest",
+ "id": "YahooStyle"
+ }]
+ },
+ "beauty": {
+ "title": "Beauty",
+ "link": "https:\u002F\u002Fwww.yahoo.com\u002Fbeauty",
+ "collapse": true,
+ "type": "beauty",
+ "i13n": {},
+ "links": ["beauty_beauty-stories", "beauty_just-bobbi", "beauty_the-goods", "beauty_confidence", "beauty_dudes", "beauty_fall-beauty", "beauty_beauty-food", "beauty_celebrity", "beauty_news", "beauty_video", "beauty_how-to", "style"],
+ "propertyColor": "#efefef",
+ "followButtonsConfig": [{
+ "channel": "twitter",
+ "id": "YahooBeauty"
+ }, {
+ "channel": "facebook",
+ "id": "yahoostylebeauty"
+ }, {
+ "channel": "instagram",
+ "id": "YahooBeauty"
+ }, {
+ "channel": "pinterest",
+ "id": "YahooBeauty"
+ }]
+ },
+ "gma": {
+ "title": "GMA",
+ "link": "https:\u002F\u002Fwww.yahoo.com\u002Fgma",
+ "collapse": true,
+ "type": "gma",
+ "i13n": {},
+ "links": [],
+ "linksTitle": ["gma_spon5"],
+ "propertyColor": "#efefef",
+ "followButtonsConfig": [{
+ "channel": "twitter",
+ "id": "GMA"
+ }, {
+ "channel": "facebook",
+ "id": "GoodMorningAmerica"
+ }, {
+ "channel": "tumblr",
+ "id": "goodmorningamerica"
+ }]
+ },
+ "backstage": {
+ "title": "Backstage",
+ "link": "https:\u002F\u002Fbackstage.yahoo.com\u002F",
+ "links": [],
+ "linksTitle": ["backstage_spon5"]
+ },
+ "kidstakeon": {
+ "title": "Kids Take On",
+ "link": "https:\u002F\u002Fkidstakeon.yahoo.com\u002F",
+ "links": [],
+ "linksTitle": ["kidstakeon_spon5"],
+ "followButtonsConfig": [{
+ "channel": "twitter",
+ "id": "buzzlienews"
+ }, {
+ "channel": "facebook",
+ "id": "Buzzlienews"
+ }]
+ },
+ "letssolveit": {
+ "title": "Lets Solve It",
+ "link": "https:\u002F\u002Fletssolveit.yahoo.com\u002F",
+ "links": [],
+ "linksTitle": ["letssolveit_spon5"],
+ "followButtonsConfig": [{
+ "channel": "twitter",
+ "id": "jpmorganfunds"
+ }]
+ },
+ "livenationpresents": {
+ "title": "Live Nation Presents",
+ "link": "https:\u002F\u002Flivenationpresents.yahoo.com\u002F",
+ "links": [],
+ "linksTitle": ["livenationpresents_spon5"],
+ "followButtonsConfig": [{
+ "channel": "twitter",
+ "id": "YahooMusic"
+ }, {
+ "channel": "facebook",
+ "id": "yahoomusic"
+ }, {
+ "channel": "instagram",
+ "id": "yahoomusic"
+ }]
+ },
+ "mrright": {
+ "title": "mrright",
+ "link": "https:\u002F\u002Fmr-right.yahoo.com\u002F",
+ "links": [],
+ "linksTitle": ["mrright_spon5"],
+ "followButtonsConfig": [{
+ "channel": "twitter",
+ "id": "DateMrRight"
+ }, {
+ "channel": "facebook",
+ "id": "getmrright"
+ }]
+ },
+ "movies": {
+ "title": "Movies",
+ "link": "https:\u002F\u002Fwww.yahoo.com\u002Fmovies",
+ "collapse": true,
+ "type": "movies",
+ "i13n": {},
+ "links": ["movies_showtimes", "movies_trailers", "movies_starwars", "movies_hunger_games", "movies_videos", "movies_superfan"],
+ "propertyColor": "#efefef",
+ "followButtonsConfig": [{
+ "channel": "tumblr",
+ "id": "yahooentertainment"
+ }, {
+ "channel": "twitter",
+ "id": "YahooMovies"
+ }, {
+ "channel": "facebook",
+ "id": "YahooMovies"
+ }, {
+ "channel": "instagram",
+ "id": "yahoomovies"
+ }]
+ },
+ "tech": {
+ "title": "Tech",
+ "link": "https:\u002F\u002Fwww.yahoo.com\u002Ftech",
+ "collapse": true,
+ "type": "tech",
+ "i13n": {},
+ "links": ["tech_reviews", "tech_how-to", "tech_deals", "tech_pogue", "tech_apple", "tech_holiday"],
+ "propertyColor": "#efefef",
+ "followButtonsConfig": [{
+ "channel": "twitter",
+ "id": "YahooTech"
+ }, {
+ "channel": "facebook",
+ "id": "YahooTech"
+ }, {
+ "channel": "instagram",
+ "id": "yahootech"
+ }]
+ },
+ "tv": {
+ "title": "TV",
+ "link": "https:\u002F\u002Fwww.yahoo.com\u002Ftv",
+ "collapse": true,
+ "type": "tv",
+ "i13n": {},
+ "links": ["tv_reviews", "tv_emmys", "tv_superfan", "tv_interviews", "tv_recaps", "tv_videos", "tv_binge-guide", "tv_photos"],
+ "propertyColor": "#efefef",
+ "followButtonsConfig": [{
+ "channel": "twitter",
+ "id": "YahooTV"
+ }, {
+ "channel": "facebook",
+ "id": "YahooTV"
+ }, {
+ "channel": "instagram",
+ "id": "YahooTv"
+ }]
+ },
+ "music": {
+ "title": "Music",
+ "link": "https:\u002F\u002Fwww.yahoo.com\u002Fmusic",
+ "collapse": true,
+ "type": "music",
+ "i13n": {},
+ "links": ["music_live-nation-presents", "music_rising", "music_summer-festivals", "music_performances", "music_videos", "music_interviews", "music_photos", "music_reviews", "music_reality-rocks"],
+ "propertyColor": "#efefef",
+ "followButtonsConfig": [{
+ "channel": "twitter",
+ "id": "YahooMusic"
+ }, {
+ "channel": "facebook",
+ "id": "YahooMusic"
+ }, {
+ "channel": "instagram",
+ "id": "yahoomusic"
+ }]
+ },
+ "sports": {
+ "title": "Sports",
+ "link": "http:\u002F\u002Fsports.yahoo.com",
+ "collapse": true,
+ "disablePosFix": true,
+ "type": "sports",
+ "i13n": {
+ "sec": "navrail"
+ },
+ "links": ["sports_daily_fantasy", "sports_fantasy", "sports_livegames", "sports_esports", "sports_nfl", "sports_nba", "sports_woj", "sports_mlb", "sports_ncaab", "sports_ncaaf", "sports_nhl", "sports_mma", "sports_soccer", "sports_golf", "sports_nascar", "sports_rivals", "sports_shop", "sports_boxing", "sports_ten", "sports_cycling", "sports_wnba", "sports_horse_racing", "sports_ncaaw", "sports_stack"],
+ "linksRight": ["sports_myteams"],
+ "propertyColor": "#efefef"
+ },
+ "finance": {
+ "title": "Finance",
+ "link": "https:\u002F\u002Ffinance.yahoo.com",
+ "collapse": true,
+ "type": "finance",
+ "i13n": {},
+ "links": ["finance_my_portfolio", "finance_my_quote_news", "finance_market_data", "finance_yahoo_originals", "finance_business_finance", "finance_personal_finance", "finance_cnbc", "finance_contributors"],
+ "propertyColor": "#efefef"
+ },
+ "search": {
+ "title": "Search",
+ "link": "https:\u002F\u002Fsearch.yahoo.com",
+ "icon": "search",
+ "type": "search",
+ "collapse": false,
+ "style": "enhanced"
+ },
+ "fp": {
+ "title": "Home",
+ "link": "\u002F",
+ "type": "home",
+ "isNavLink": true,
+ "flexibleLinks": false,
+ "i13n": {},
+ "links": ["mail"]
+ }
+ },
+ "featureSwitches": {
+ "navLogoAlign": false,
+ "uhMagDesign": true,
+ "followButtons": true,
+ "cobrandLogo": false,
+ "navrailCollapse": false,
+ "disableDivider": true
+ },
+ "linkMeta": {
+ "home": {
+ "title": "Home",
+ "link": "https:\u002F\u002Fwww.yahoo.com\u002F"
+ },
+ "backstage": {
+ "title": "Backstage",
+ "link": "https:\u002F\u002Fbackstage.yahoo.com\u002F"
+ },
+ "backstage_spon5": {
+ "bundles": {
+ "freeForm": "\u003Ca href=\"\u002F\"\u003E\u003Cspan style=\"width:219px;height:30px;display:inline-block;background:url('https:\u002F\u002Fs.yimg.com\u002Fdh\u002Fap\u002Fdefault\u002F151124\u002Fbackstage-branded-logo-v2.png') no-repeat;background-size:contain;vertical-align:middle;\"\u003E\u003C\u002Fspan\u003E\u003C\u002Fa\u003E"
+ }
+ },
+ "beauty": {
+ "title": "Beauty",
+ "link": "https:\u002F\u002Fwww.yahoo.com\u002Fbeauty"
+ },
+ "celebrity": {
+ "title": "Celebrity",
+ "link": "https:\u002F\u002Fcelebrity.yahoo.com"
+ },
+ "dailyfantasy": {
+ "title": "Daily Fantasy",
+ "link": "https:\u002F\u002Fsports.yahoo.com\u002Fdailyfantasy\u002F"
+ },
+ "esports": {
+ "title": "Esports",
+ "link": "https:\u002F\u002Fesports.yahoo.com"
+ },
+ "finance": {
+ "title": "Finance",
+ "link": "https:\u002F\u002Ffinance.yahoo.com"
+ },
+ "kidstakeon": {
+ "title": "Kids Take On",
+ "link": "https:\u002F\u002Fkidstakeon.yahoo.com\u002F"
+ },
+ "kidstakeon_spon5": {
+ "bundles": {
+ "freeForm": "\u003Ca href=\"\u002F\"\u003E\u003Cspan style=\"width:394px;height:30px;display:inline-block;background:url('https:\u002F\u002Fs.yimg.com\u002Fdh\u002Fap\u002Fdefault\u002F160727\u002Fkidstake-on-header.jpg') no-repeat;background-size:contain;vertical-align:middle;\"\u003E\u003C\u002Fspan\u003E\u003C\u002Fa\u003E"
+ }
+ },
+ "letssolveit": {
+ "title": "Lets Solve It",
+ "link": "https:\u002F\u002Fletssolveit.yahoo.com\u002F"
+ },
+ "letssolveit_spon5": {
+ "bundles": {
+ "freeForm": "\u003Ca href=\"\u002F\"\u003E\u003Cspan style=\"width:227px;height:30px;display:inline-block;background:url('https:\u002F\u002Fs.yimg.com\u002Fdh\u002Fap\u002Fdefault\u002F160203\u002Fletssolveit-branded-logo-v3.jpg') no-repeat;background-size:contain;vertical-align:middle;\"\u003E\u003C\u002Fspan\u003E\u003C\u002Fa\u003E"
+ }
+ },
+ "livenationpresents": {
+ "title": "Live Nation Presents",
+ "link": "https:\u002F\u002Flivenationpresents.yahoo.com\u002F"
+ },
+ "livenationpresents_spon5": {
+ "bundles": {
+ "freeForm": "\u003Ca href=\"\u002F\"\u003E\u003Cspan style=\"width:224px;height:25px;display:inline-block;background:url('https:\u002F\u002Fs.yimg.com\u002Fdh\u002Fap\u002Fdefault\u002F160411\u002Flivenationpresents-logo-d.png') no-repeat;background-size:contain;vertical-align:middle;margin-left:4px;\"\u003E\u003C\u002Fspan\u003E\u003C\u002Fa\u003E"
+ }
+ },
+ "movies": {
+ "title": "Movies",
+ "link": "https:\u002F\u002Fwww.yahoo.com\u002Fmovies"
+ },
+ "mrright": {
+ "title": "mrright",
+ "link": "https:\u002F\u002Fmr-right.yahoo.com\u002F"
+ },
+ "mrright_spon5": {
+ "bundles": {
+ "freeForm": "\u003Ca href=\"\u002F\"\u003E\u003Cspan style=\"width:250px;height:30px;display:inline-block;background:url('https:\u002F\u002Fs.yimg.com\u002Fdh\u002Fap\u002Fdefault\u002F160304\u002Fmrright-desktop.jpg') no-repeat;background-size:contain;vertical-align:middle;\"\u003E\u003C\u002Fspan\u003E\u003C\u002Fa\u003E"
+ }
+ },
+ "music": {
+ "title": "Music",
+ "link": "https:\u002F\u002Fwww.yahoo.com\u002Fmusic"
+ },
+ "news": {
+ "title": "News",
+ "link": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002F"
+ },
+ "sports": {
+ "title": "Sports",
+ "link": "https:\u002F\u002Fsports.yahoo.com"
+ },
+ "sports_myteams": {
+ "bundles": {
+ "actionMethod": "loadMyTeamsAction",
+ "bundleName": "react-sports.nav",
+ "name": "FavoriteTeamsNav",
+ "props": {
+ "maxDisplayItems": 3,
+ "navrailCompatible": true,
+ "navClasses": "Fz(15px) Grid M(0) Va(t) Lh(39px) teams-nav",
+ "subNavParentClasses": "D(ib) Fz(13px) overflow",
+ "buttonClasses": "Px(8px) Py(7px) Fz(11px) Mx(10px) Td(n) C(#9ea2af)! C(#8d919d):h Bdw(1px) Bds(s) Bdc(#9ea2af) Bdc(#8d919d):h",
+ "subNavClasses": "Bgc(#fff) Pos(a) M(0) Whs(nw) Bd(bordered) sub-nav Miw(120px)",
+ "urlPrefix": "http:\u002F\u002Fsports.yahoo.com"
+ },
+ "config": {}
+ }
+ },
+ "style": {
+ "title": "Style",
+ "link": "https:\u002F\u002Fwww.yahoo.com\u002Fstyle"
+ },
+ "tech": {
+ "title": "Tech",
+ "link": "https:\u002F\u002Fwww.yahoo.com\u002Ftech"
+ },
+ "tv": {
+ "title": "TV",
+ "link": "https:\u002F\u002Fwww.yahoo.com\u002Ftv"
+ }
+ },
+ "mobileSectionMeta": {
+ "property": {},
+ "yahooSites": {
+ "listMeta": {}
+ },
+ "services": {},
+ "apps": {
+ "listMeta": {}
+ },
+ "tools": {
+ "listMeta": {}
+ }
+ },
+ "profile": {
+ "mode": "client",
+ "avatarSize": "36px",
+ "loginBaseUrl": "https:\u002F\u002Flogin.yahoo.com\u002Fconfig\u002Flogin",
+ "settingUrl": "https:\u002F\u002Fedit.yahoo.com\u002Fconfig\u002Feval_profile",
+ "urls": {
+ "signed_in": {
+ "protocol": "https",
+ "hostname": "login.yahoo.com",
+ "pathname": "\u002Fconfig\u002Flogin",
+ "query": {}
+ },
+ "signed_out": {
+ "protocol": "https",
+ "hostname": "login.yahoo.com",
+ "pathname": "\u002Fconfig\u002Flogin",
+ "query": {
+ ".direct": 2,
+ "logout": 1
+ }
+ },
+ "signed_out_as": {
+ "protocol": "https",
+ "hostname": "login.yahoo.com",
+ "pathname": "\u002Fconfig\u002Flogin",
+ "query": {
+ ".direct": 1,
+ "logout_all": 1
+ }
+ },
+ "account_info": {
+ "protocol": "https",
+ "hostname": "edit.yahoo.com",
+ "pathname": "\u002Fconfig\u002Feval_profile",
+ "query": {}
+ }
+ }
+ },
+ "renderMobileOnServer": false,
+ "renderSecondaryNav": true,
+ "theme": {
+ "mobileBgColor": "Bg(nrBgColor)!",
+ "mobileBgColorFallback": "Bg(nrBgColorFallback)",
+ "mobileIconColor": "#fff",
+ "mobileTitleColor": "C(nrSectionHeading)",
+ "mobileLinkColor": "C(#fff)",
+ "mobileSectionBorder": {
+ "top": "Bdt(nrSectionBorder)",
+ "bottom": "Bdb(nrSectionBorder)",
+ "both": "Bdy(nrSectionBorder)"
+ }
+ },
+ "ui": {
+ "bgColor": "Bgc($bg-content)!",
+ "darkTheme": false,
+ "displayGroupTitle": false,
+ "followStoryLines": false,
+ "headerTitle": null,
+ "highlightPropertyHome": true,
+ "isNavLink": false,
+ "mailBadgeClass": "Bgc(#f0162f) Bdrs(11px) Bdc(#fff) Bdw(2px)Bds(s) W(8px) H(8px) Pos(a) T(8px) Start(26px)",
+ "makeSticky": false,
+ "navCache": true,
+ "navSections": "property",
+ "relativeLinks": false,
+ "remoteAdapter": true,
+ "renderLogoNav": false,
+ "renderPropertyNav": true,
+ "sections": ["property"],
+ "showMailCount": false,
+ "showPropertyHome": true,
+ "dividerClasses": "H(0)!",
+ "hoverColor": "C(lightTheme):h",
+ "linkItemClasses": "Bgc(navliteLinkUnderline):h",
+ "navLinkClassesOnHover": "H(42px) Bdw(0) Bdbs(s)! Bxz(bb) Bdbc(navliteLinkUnderline)!:h Bdbw(4px)!:h Bdbs(s)!:h Bdbc(navliteLinkUnderline)!:f Bdbw(4px)!:f Bdbs(s)!:f O(n) Bdbc(#fff)! Trstf(l) Trsde(0s) Trsdu(.18s) Trsp(border-bottom-width)",
+ "navLinkNonHoverClasses": "C(navliteLinkNonHover) Bdbs(n)",
+ "offsetHack": "Pt(2px)",
+ "overrideColor": "C(lightTheme)",
+ "propertyHomeClasses": "H(42px) Bdw(0) Bdbs(s) Bxz(bb) Bdbc(navliteLinkUnderline):h Bdbw(4px):h Bdbs(s)!:h Trstf(l) Trsde(0s) Trsdu(.18s) Trsp(border-bottom-width)",
+ "selectColor": "C(lightTheme)! H(42px) Bdw(0) Bdbs(s) Bxz(bb) Bdbc(navliteLinkUnderline) Bdbw(4px) Trstf(l) Trsde(0s) Trsdu(.18s) Trsp(border-bottom-width)",
+ "subnavLinkClasses": "C(#fff):h"
+ },
+ "mrt": {
+ "flush": false,
+ "static": false
+ }
+ },
+ "tgtm-Nav-0-NavLite-acct-switch-0-AccountSwitch": {
+ "isEnabled": true,
+ "clientRender": true,
+ "accountListLength": 3,
+ "enableAlphatar": true,
+ "host": "login.yahoo.com",
+ "urlReplacements": {
+ "CRUMB": {
+ ".crumb": "{crumb}"
+ },
+ "DONE": {
+ ".done": "{doneUrl}"
+ },
+ "DONE_YAHOO": {
+ ".done": "{doneUrlYahoo}"
+ }
+ },
+ "urls": {
+ "accountInfo": {
+ "protocol": "https",
+ "path": "\u002Faccount\u002Fpersonalinfo\u002F",
+ "query": ["DONE", {
+ ".intl": "{intl}"
+ }, {
+ ".lang": "{lang}"
+ }, {
+ ".partner": "{partner}"
+ }, {
+ ".src": "{site}"
+ }]
+ },
+ "switchUrl": {
+ "protocol": "https",
+ "path": "\u002Fd",
+ "query": ["CRUMB", {
+ ".intl": "{intl}"
+ }, {
+ ".lang": "{lang}"
+ }, {
+ ".partner": "{partner}"
+ }, {
+ ".src": "{site}"
+ }, {
+ "login": "{alias}"
+ }, {
+ "as": "1"
+ }, "DONE"]
+ },
+ "manageUrl": {
+ "protocol": "https",
+ "path": "\u002Fmanage_account",
+ "query": ["CRUMB", {
+ ".intl": "{intl}"
+ }, {
+ ".lang": "{lang}"
+ }, {
+ ".partner": "{partner}"
+ }, {
+ ".src": "{site}"
+ }, "DONE"]
+ },
+ "logoutUrl": {
+ "protocol": "https",
+ "path": "\u002Fconfig\u002Flogin",
+ "query": ["CRUMB", {
+ ".src": "{site}"
+ }, {
+ ".intl": "{intl}"
+ }, {
+ ".lang": "{lang}"
+ }, {
+ ".partner": "{partner}"
+ }, {
+ "logout_all": "1"
+ }, {
+ ".direct": "1"
+ }, "DONE_YAHOO"]
+ },
+ "requestUrl": {
+ "protocol": "https",
+ "path": "\u002Fw\u002Fdevice_users",
+ "query": ["CRUMB"]
+ }
+ },
+ "styles": {
+ "account_switch_main": {
+ "wrapper": "Py(16px)",
+ "account_info": "C(asTextColor) C(asLinkHoverColor):h Td(n) Td(n):h D(ib) Mstart(asIconWidth) Pend(asEndPadding) Whs(nw)"
+ },
+ "signed_out": {
+ "wrapper": "Py(14px) Ta(c) Bdt(asMenuBorder)",
+ "content": "C(asTextColor) C(asLinkHoverColor):h Td(n) Td(n):h"
+ },
+ "add_accounts": {
+ "icon_wrapper": "W(asIconWidth) D(ib) Va(t) Ta(c)",
+ "icon_content": "C(asTextColor) Fz(30px) Fw(200) Lh(1.5)",
+ "text": "Pt(16px) D(ib) C(asTextColor) Zoom Fz(15px)",
+ "wrapper": "Bdt(asMenuBorder) Td(n) Td(n):h D(b) Whs(nw) Bgc(asMenuHoverBgc):h H(50px) Pend(asEndPadding)"
+ },
+ "avatar": {
+ "size": 40,
+ "color": "#400090",
+ "content": "Bdrs(100px) Bgz(cv) D(ib)",
+ "panel_content": "D(ib) Va(m) Bgz(cv) Bdrs(100px)",
+ "name": "D(n) Lh(2.6) Mstart(4px)",
+ "wrapper": "Zoom Va(t) Ta(c) Fl(start) W(asIconWidth)"
+ },
+ "main_account": {
+ "alias": "C(asLightTextColor) Ell Pt(2px)",
+ "alias_wrapper": "Ell C(#000) Fz(13px)",
+ "content": "C(asTextColor) D(ib) Fz(13px) Pt(10px)",
+ "name": "C(asTextColor) Ell Fz(15px)",
+ "name_wrapper": "Fz(15px) Ell",
+ "user_info_wrapper": "W(2\u002F3) D(ib) Zoom Lts(n) Tren(a) Va(t)",
+ "wrapper": "Cf"
+ },
+ "secondary_accounts": {
+ "list": "Pos(r) M(0) P(0) List(n)",
+ "list_item": "Bdt(asMenuBorder)",
+ "anchor": "Td(n) Td(n):h Py(16px) D(b) Cf C(#000) Bgc(asMenuHoverBgc):h"
+ }
+ }
+ },
+ "tgtm-account-switch-uh-0-AccountSwitch": {
+ "isEnabled": true,
+ "clientRender": true,
+ "accountListLength": 3,
+ "enableAlphatar": true,
+ "host": "login.yahoo.com",
+ "urlReplacements": {
+ "CRUMB": {
+ ".crumb": "{crumb}"
+ },
+ "DONE": {
+ ".done": "{doneUrl}"
+ },
+ "DONE_YAHOO": {
+ ".done": "{doneUrlYahoo}"
+ }
+ },
+ "urls": {
+ "accountInfo": {
+ "protocol": "https",
+ "path": "\u002Faccount\u002Fpersonalinfo\u002F",
+ "query": ["DONE", {
+ ".intl": "{intl}"
+ }, {
+ ".lang": "{lang}"
+ }, {
+ ".partner": "{partner}"
+ }, {
+ ".src": "{site}"
+ }]
+ },
+ "switchUrl": {
+ "protocol": "https",
+ "path": "\u002Fd",
+ "query": ["CRUMB", {
+ ".intl": "{intl}"
+ }, {
+ ".lang": "{lang}"
+ }, {
+ ".partner": "{partner}"
+ }, {
+ ".src": "{site}"
+ }, {
+ "login": "{alias}"
+ }, {
+ "as": "1"
+ }, "DONE"]
+ },
+ "manageUrl": {
+ "protocol": "https",
+ "path": "\u002Fmanage_account",
+ "query": ["CRUMB", {
+ ".intl": "{intl}"
+ }, {
+ ".lang": "{lang}"
+ }, {
+ ".partner": "{partner}"
+ }, {
+ ".src": "{site}"
+ }, "DONE"]
+ },
+ "logoutUrl": {
+ "protocol": "https",
+ "path": "\u002Fconfig\u002Flogin",
+ "query": ["CRUMB", {
+ ".src": "{site}"
+ }, {
+ ".intl": "{intl}"
+ }, {
+ ".lang": "{lang}"
+ }, {
+ ".partner": "{partner}"
+ }, {
+ "logout_all": "1"
+ }, {
+ ".direct": "1"
+ }, "DONE_YAHOO"]
+ },
+ "requestUrl": {
+ "protocol": "https",
+ "path": "\u002Fw\u002Fdevice_users",
+ "query": ["CRUMB"]
+ }
+ },
+ "styles": {
+ "account_switch_main": {
+ "wrapper": "Py(16px)",
+ "account_info": "C(asTextColor) C(asLinkHoverColor):h Td(n) Td(n):h D(ib) Mstart(asIconWidth) Pend(asEndPadding) Whs(nw)"
+ },
+ "signed_out": {
+ "wrapper": "Py(14px) Ta(c) Bdt(asMenuBorder)",
+ "content": "C(asTextColor) C(asLinkHoverColor):h Td(n) Td(n):h"
+ },
+ "add_accounts": {
+ "icon_wrapper": "W(asIconWidth) D(ib) Va(t) Ta(c)",
+ "icon_content": "C(asTextColor) Fz(30px) Fw(200) Lh(1.5)",
+ "text": "Pt(16px) D(ib) C(asTextColor) Zoom Fz(15px)",
+ "wrapper": "Bdt(asMenuBorder) Td(n) Td(n):h D(b) Whs(nw) Bgc(asMenuHoverBgc):h H(50px) Pend(asEndPadding)"
+ },
+ "avatar": {
+ "size": 40,
+ "color": "#400090",
+ "content": "Bdrs(100px) Bgz(cv) D(ib)",
+ "panel_content": "D(ib) Va(m) Bgz(cv) Bdrs(100px)",
+ "name": "D(n) Lh(2.6) Mstart(4px)",
+ "wrapper": "Zoom Va(t) Ta(c) Fl(start) W(asIconWidth)"
+ },
+ "main_account": {
+ "alias": "C(asLightTextColor) Ell Pt(2px)",
+ "alias_wrapper": "Ell C(#000) Fz(13px)",
+ "content": "C(asTextColor) D(ib) Fz(13px) Pt(10px)",
+ "name": "C(asTextColor) Ell Fz(15px)",
+ "name_wrapper": "Fz(15px) Ell",
+ "user_info_wrapper": "W(2\u002F3) D(ib) Zoom Lts(n) Tren(a) Va(t)",
+ "wrapper": "Cf"
+ },
+ "secondary_accounts": {
+ "list": "Pos(r) M(0) P(0) List(n)",
+ "list_item": "Bdt(asMenuBorder)",
+ "anchor": "Td(n) Td(n):h Py(16px) D(b) Cf C(#000) Bgc(asMenuHoverBgc):h"
+ }
+ }
+ }
+ }
+ },
+ "CompositeStore": {
+ "_instances": {
+ "tgtm-UH-0-Header": {
+ "status": "initialized"
+ },
+ "tgtm-Overlay-1-Nagbar": {
+ "status": "initialized"
+ },
+ "tgtm-Lead-2-FeatureBar": {
+ "status": "initialized"
+ },
+ "tgtm-YDC-Stream": {
+ "status": "initialized"
+ },
+ "tgtm-Col2-0-FollowAuthor": {
+ "status": "initialized"
+ },
+ "tgtm-Nav-0-NavLite": {
+ "status": "initialized"
+ },
+ "tgtm-Nav-0-NavLite-acct-switch-0-AccountSwitch": {
+ "status": "initialized"
+ },
+ "tgtm-account-switch-uh-0-AccountSwitch": {
+ "status": "initialized"
+ }
+ }
+ },
+ "StreamStore": {
+ "pageUuid": "",
+ "config": {
+ "ls_delay": 1000,
+ "ls_ttl": 86400
+ },
+ "streams": {
+ "YPROP:NEWS.mega.c": {
+ "bpos": 1,
+ "data": {
+ "stream_items": [{
+ "i13n": {
+ "bpos": 1,
+ "cpos": 1,
+ "cposy": 1
+ },
+ "summary": "The 2015 rampage may have been sparked by a training session with decorations that included a Christmas tree, authorities believe.",
+ "clusterInfo": {
+ "type": "roundup",
+ "followable": "false",
+ "userFollowing": "false"
+ },
+ "more_link_text": "New details",
+ "storyline": [{
+ "summary": "The president-elect quadrupled a spurned tax incentive the state of Indiana had offered to keep company jobs from going to Mexico.",
+ "video_enrichment": {
+ "width": "640",
+ "height": "360",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fbusiness\u002Fjust-happened-carrier-crazy-222108659.html?format=embed&amp;region=US&amp;lang=en-US&amp;site=finance&amp;player_autoplay=true",
+ "uuid": "43d07434-3209-317a-85d2-6aabb8d5d48b"
+ },
+ "more_link_text": "Yahoo analysis",
+ "cposy": 2,
+ "is_eligible": true,
+ "idPrefix": "PNR-",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Fwhat-just-happened-with-carrier-is-crazy-223106708.html",
+ "footerCopy": "Trump's Carrier deal raises red flags",
+ "experimentId": "0",
+ "title": "Trump's Carrier deal raises red flags",
+ "images": {
+ "img:412x232": {
+ "height": 232,
+ "width": 412,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002Fc_5m.q81fhiHR_OtVl4LXg--\u002FZmk9c3RyaW07aD0yMzI7cHlvZmY9MDtxPTgwO3c9NDEyO3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttps:\u002F\u002Fs.yimg.com\u002Flo\u002Fapi\u002Fres\u002F1.2\u002FKwclfh9FhnLRkXCAxyhr1A--~C\u002FZmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-12-01\u002F60b4c4f0-b821-11e6-a523-df2c277ad130_carrier3.jpg.cf.jpg"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fwhat-just-happened-with-carrier-is-crazy-223106708.html",
+ "id": "ac88f5e4-1323-3ba4-a50b-b6687a618192",
+ "aid": "0fd68d68-7de8-3f20-9870-923e6bb368d5",
+ "publisher": "Yahoo Finance",
+ "off_network": false,
+ "is_pnr": "true"
+ }, {
+ "summary": "The far-right website calls for a boycott over what the breakfast cereal maker did with its advertising.",
+ "video_enrichment": {
+ "width": "640",
+ "height": "441",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fynn\u002Ffood-fight-between-kelloggs-breitbart-163251023.html?format=embed&amp;region=US&amp;lang=en-US&amp;site=news&amp;player_autoplay=true",
+ "uuid": "970d9645-af0e-3e98-b350-c4ed07ed0406"
+ },
+ "more_link_text": "#DumpKelloggs",
+ "cposy": 3,
+ "is_eligible": true,
+ "idPrefix": "PNR-",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Fbreitbart-urges-boycott-of-kelloggs-after-cereal-maker-pulls-ads-152042623.html",
+ "footerCopy": "Breitbart vs. Kellogg’s",
+ "experimentId": "0",
+ "title": "Breitbart starts war with Kellogg's ",
+ "images": {
+ "img:412x232": {
+ "height": 232,
+ "width": 412,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FnRoupSfchK9xlLaGwfqbrQ--\u002FZmk9c3RyaW07aD0yMzI7cHlvZmY9MDtxPTgwO3c9NDEyO3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttps:\u002F\u002Fs.yimg.com\u002Flo\u002Fapi\u002Fres\u002F1.2\u002FjBk_K19QS_R2N6cv1Jo.nQ--~C\u002FZmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-12-01\u002F578a60f0-b7e1-11e6-84d7-afd41e7a457a_cereal-nh.jpg.cf.jpg"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fbreitbart-urges-boycott-of-kelloggs-after-cereal-maker-pulls-ads-152042623.html",
+ "id": "e69ab817-de45-3b46-9b84-26e58529d4e0",
+ "aid": "4a5f9895-b390-3431-9c5a-b18a166339d8",
+ "publisher": "Yahoo News",
+ "off_network": false,
+ "is_pnr": "true"
+ }, {
+ "summary": "Alan Gross spent five years in a Cuban prison after being arrested while working on a technology project there.",
+ "video_enrichment": {
+ "width": "300",
+ "height": "150",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fynn\u002Falan-gross-compares-president-elect-150430463.html?format=embed&amp;player_autoplay=false",
+ "uuid": "125b8f17-f836-3687-b3bd-0121108c1a4a"
+ },
+ "more_link_text": "One difference",
+ "cposy": 4,
+ "is_eligible": true,
+ "idPrefix": "PNR-",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Fformer-cuban-prisoner-alan-gross-compares-trump-to-castro-153752897.html",
+ "footerCopy": "Ex-prisoner on Trump, Castro",
+ "experimentId": "0",
+ "title": "Ex-Cuban prisoner likens Trump to Castro",
+ "images": {
+ "img:412x232": {
+ "height": 232,
+ "width": 412,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FlBBjVn8yZTJMYlmvXks9kg--\u002FZmk9c3RyaW07aD0yMzI7cHlvZmY9MDtxPTgwO3c9NDEyO3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttps:\u002F\u002Fs.yimg.com\u002Flo\u002Fapi\u002Fres\u002F1.2\u002F9ybaU0mkis_MEU8KEXWu_A--~C\u002FZmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-12-01\u002Fb1c4e1d0-b7e6-11e6-acc0-99cee64c4025_gross-nh.jpg.cf.jpg"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fformer-cuban-prisoner-alan-gross-compares-trump-to-castro-153752897.html",
+ "id": "c74840cf-c47b-3e5c-99c0-153dd863415a",
+ "aid": "eb2d1559-ec37-3f5f-a233-5308842f28d5",
+ "publisher": "Yahoo News",
+ "off_network": false,
+ "is_pnr": "true"
+ }, {
+ "summary": "“She was bound. ... She had a metal chain around her waist,\" Keith Papini said. \"She had a bag over her head.\"",
+ "more_link_text": "No suspects in custody",
+ "cposy": 5,
+ "is_eligible": true,
+ "idPrefix": "PNR-",
+ "url": "https:\u002F\u002Fgma.yahoo.com\u002Fhusband-super-mom-describes-moment-alleged-kidnappers-released-002808159--abc-news-topstories.html",
+ "footerCopy": "Papini talks wife's escape",
+ "experimentId": "0",
+ "title": "Husband of 'Super Mom' talks chilling release",
+ "images": {
+ "img:412x232": {
+ "height": 232,
+ "width": 412,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002Fmvvblrt5TPrXbJGw4wICFg--\u002FZmk9c3RyaW07aD0yMzI7cHlvZmY9MDtxPTgwO3c9NDEyO3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttps:\u002F\u002Fs.yimg.com\u002Flo\u002Fapi\u002Fres\u002F1.2\u002FT0TYaaPEXUYHNHelmXiDtA--~C\u002FZmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-12-01\u002F8d3461c0-b7db-11e6-8d5b-f33bfbc5e37a_papini.jpeg"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fgma\u002Fhusband-super-mom-describes-moment-alleged-kidnappers-released-002808159--abc-news-topstories.html",
+ "id": "d4781b94-258d-392d-b730-7b4d2b97a4b4",
+ "aid": "da7f3596-5719-3026-9d42-8b80f611e46f",
+ "publisher": "Good Morning America",
+ "off_network": false,
+ "is_pnr": "true"
+ }, {
+ "summary": "More than 2,300 scientists are urging the president-elect to support science and use it when shaping policy.",
+ "more_link_text": "4 crucial steps",
+ "cposy": 6,
+ "is_eligible": true,
+ "idPrefix": "PNR-",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Fnobel-laureates-urge-trump-to-respect-scientific-integrity-174803237.html",
+ "footerCopy": "Nobelists press Trump",
+ "experimentId": "0",
+ "title": "Nobelists send open letter to Trump",
+ "images": {
+ "img:412x232": {
+ "height": 232,
+ "width": 412,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FcpzruLLm4bRxs_goFjFgag--\u002FZmk9c3RyaW07aD0yMzI7cHlvZmY9MDtxPTgwO3c9NDEyO3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttps:\u002F\u002Fs.yimg.com\u002Flo\u002Fapi\u002Fres\u002F1.2\u002Fo6yR2afc_lIt7zODYEEznA--~C\u002FZmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-12-01\u002F90778330-b7f9-11e6-8883-b573f7cbf769_trump-nh.jpg.cf.jpg"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fnobel-laureates-urge-trump-to-respect-scientific-integrity-174803237.html",
+ "id": "1ffc871e-558e-3dcf-b850-8c5769214013",
+ "aid": "b4fff05d-62aa-3dd1-928f-9e0480e1c034",
+ "publisher": "Yahoo News",
+ "off_network": false,
+ "is_pnr": "true"
+ }, {
+ "summary": "The former CIA director is reportedly being vetted for secretary of state, but he'd need permission to leave his home state.",
+ "more_link_text": "Shared classified info",
+ "cposy": 7,
+ "is_eligible": true,
+ "idPrefix": "PNR-",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Fpetraeus-would-need-to-inform-his-probation-officer-if-he-joins-trumps-cabinet-172641753.html",
+ "footerCopy": "Petraeus may need PO chat",
+ "experimentId": "0",
+ "title": "General Petraeus may need to chat with PO",
+ "images": {
+ "img:412x232": {
+ "height": 232,
+ "width": 412,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FU6EahToM6GV_v_u7IMQLTA--\u002FZmk9c3RyaW07aD0yMzI7cHlvZmY9MDtxPTgwO3c9NDEyO3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttps:\u002F\u002Fs.yimg.com\u002Flo\u002Fapi\u002Fres\u002F1.2\u002FbMDj1RG6kYv1ci1TJb3hRw--~C\u002FZmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-12-01\u002F7e6aa6f0-b7f8-11e6-8713-53806c57f2fe_AP_16189675823987.jpg.cf.jpg"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fpetraeus-would-need-to-inform-his-probation-officer-if-he-joins-trumps-cabinet-172641753.html",
+ "id": "a552b3f5-f9c3-36bf-9905-0cbd3fe5ddaa",
+ "aid": "4393d0f9-869b-348a-afe2-2fbdc71f3f37",
+ "publisher": "Yahoo News",
+ "off_network": false,
+ "is_pnr": "true"
+ }, {
+ "summary": "The president-elect keeps a campaign pledge to prevent some jobs at the air conditioning firm from relocating to Mexico.",
+ "video_enrichment": {
+ "width": "640",
+ "height": "441",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fynn\u002Ftrump-tours-carrier-plant-united-210859189.html?format=embed&amp;region=US&amp;lang=en-US&amp;site=news&amp;player_autoplay=true",
+ "uuid": "27411f75-5ab8-3cab-838c-1c95c4a910b9"
+ },
+ "more_link_text": "Comes at a cost",
+ "cposy": 8,
+ "is_eligible": true,
+ "idPrefix": "PNR-",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Ftrump-returns-to-indiana-for-victory-lap-on-carrier-deal-214322278.html",
+ "footerCopy": "Trump returns to Indiana for v...",
+ "experimentId": "0",
+ "title": "Trump basks in victory over Carrier deal",
+ "images": {
+ "img:412x232": {
+ "height": 232,
+ "width": 412,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002F.ywuOEGg0vPIJ5kxVXib0Q--\u002FZmk9c3RyaW07aD0yMzI7cHlvZmY9MDtxPTgwO3c9NDEyO3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttps:\u002F\u002Fs.yimg.com\u002Flo\u002Fapi\u002Fres\u002F1.2\u002Fw4XtPBhegu11Z8jPt1b20Q--~C\u002FZmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-12-01\u002Faa784670-b812-11e6-880d-459222b4b416_trump_carrier-1404.jpg.cf.jpg"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Ftrump-returns-to-indiana-for-victory-lap-on-carrier-deal-214322278.html",
+ "id": "fc4275af-6dc9-397d-b839-45c4ec590a0f",
+ "aid": "5a587a14-b115-3af9-92ac-b622ae8b1ca3",
+ "publisher": "Yahoo News",
+ "off_network": false,
+ "is_pnr": "true"
+ }, {
+ "summary": "The president-elect said in a statement that his support for the Dakota Access pipeline “has nothing to do with his personal investments.”",
+ "more_link_text": "Ongoing protests",
+ "cposy": 9,
+ "is_eligible": true,
+ "idPrefix": "PNR-",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Ftrump-supports-completion-dakota-access-pipeline-233526810--finance.html",
+ "footerCopy": "Trump backs completion of controversial pipeline",
+ "experimentId": "0",
+ "title": "Trump backs completion of controversial pipeline",
+ "images": {
+ "img:412x232": {
+ "height": 232,
+ "width": 412,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002F07mGQG4KtGGx7QweUEJ_qA--\u002FZmk9c3RyaW07aD0yMzI7cHlvZmY9MDtxPTgwO3c9NDEyO3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttps:\u002F\u002Fs.yimg.com\u002Flo\u002Fapi\u002Fres\u002F1.2\u002FJ75RdaZJ75wsUgsxKwL0kw--~C\u002FZmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-12-02\u002F80be79d0-b82b-11e6-b5e0-6b2b9a61c907_trump-pipeline-nh.jpg.cf.jpg"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Ftrump-supports-completion-dakota-access-pipeline-233526810--finance.html",
+ "id": "fa4aa81c-9c53-3f71-aef8-b6373355ad2a",
+ "aid": "7c09b38f-b4d1-3ae5-a058-bb6642a880a0",
+ "publisher": "Reuters",
+ "off_network": false,
+ "is_pnr": "true"
+ }, {
+ "summary": "Retired Marine Gen. James Mattis formerly served as head of U.S. Central Command during the Obama administration.",
+ "video_enrichment": {
+ "width": "300",
+ "height": "150",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fynn\u002Ftrump-reportedly-picks-gen-jim-211545370.html?format=embed&amp;player_autoplay=false",
+ "uuid": "07638fb8-55b2-341c-98f2-1ece7c0fb31e"
+ },
+ "more_link_text": "Nicknamed 'Mad Dog'",
+ "cposy": 10,
+ "is_eligible": true,
+ "idPrefix": "PNR-",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Fin-gen-jim-mattis-trump-chooses-a-warrior-monk-as-secretary-of-defense-015428682.html",
+ "footerCopy": "Trump reportedly taps Mattis as defense chief",
+ "title": "Trump taps Mattis as defense chief",
+ "images": {
+ "img:412x232": {
+ "height": 232,
+ "width": 412,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002Fmuvhe__KtjJjZ91dALn16g--\u002FZmk9c3RyaW07aD0yMzI7cHlvZmY9MDtxPTgwO3c9NDEyO3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttps:\u002F\u002Fs.yimg.com\u002Flo\u002Fapi\u002Fres\u002F1.2\u002F0h3ZdIuYBxbXMkQySxYYsw--~C\u002FZmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-12-01\u002Fedc5fd00-b80d-11e6-b7cf-9932f4c0ae8b_trump_mattis-1404.jpg.cf.jpg"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fin-gen-jim-mattis-trump-chooses-a-warrior-monk-as-secretary-of-defense-015428682.html",
+ "id": "16d5c607-0080-3f77-8217-d98959f615aa",
+ "aid": "ecfd8276-a1c4-3fb7-ada4-373a7421a313",
+ "publisher": "Yahoo News",
+ "off_network": false,
+ "is_pnr": "true"
+ }, {
+ "summary": "You can try to stamp out the supply of garbage news, but the Web is a vast place, and it will always find a crack through which to seep.",
+ "more_link_text": "Matt Bai's column",
+ "cposy": 11,
+ "is_eligible": true,
+ "idPrefix": "PNR-",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Fthe-real-problem-behind-fake-news-233047332.html",
+ "footerCopy": "The real problem behind fake news",
+ "title": "The real problem behind fake news",
+ "images": {
+ "img:412x232": {
+ "height": 232,
+ "width": 412,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FmQuD4f4tGqJMNuholj7DKQ--\u002FZmk9c3RyaW07aD0yMzI7cHlvZmY9MDtxPTgwO3c9NDEyO3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttps:\u002F\u002Fs.yimg.com\u002Flo\u002Fapi\u002Fres\u002F1.2\u002FvuvCrzpY5JE5h8NJIoInuw--~C\u002FZmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen\u002Fhomerun\u002Ffeed_manager_auto_publish_494\u002F81b22090997517ac847979e73311ea5e"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fthe-real-problem-behind-fake-news-233047332.html",
+ "id": "d2f3360c-0b71-3ffc-93fd-fdbb2856551c",
+ "aid": "3c3e9851-eb0f-371c-9b9c-8f05a834b665",
+ "publisher": "Yahoo News",
+ "off_network": false,
+ "is_pnr": "true"
+ }, {
+ "summary": "Residents feared a backlash after a Muslim couple killed 14 people at a lunch meeting on Dec. 2, 2015.",
+ "more_link_text": "Why it never materialized",
+ "cposy": 12,
+ "is_eligible": true,
+ "idPrefix": "PNR-",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Fattack-san-bernardino-faithful-seek-unity-080829842.html",
+ "footerCopy": "Revisiting San Bernardino",
+ "experimentId": "0",
+ "title": "San Bernardino, one year after the attack",
+ "images": {
+ "img:412x232": {
+ "height": 232,
+ "width": 412,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FpovSdjarZd1nIgvPrRFt9A--\u002FZmk9c3RyaW07aD0yMzI7cHlvZmY9MDtxPTgwO3c9NDEyO3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttps:\u002F\u002Fs.yimg.com\u002Flo\u002Fapi\u002Fres\u002F1.2\u002FFBGVgMS_ySQa0V2Y9ggETg--~C\u002FZmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-12-01\u002F07ab8d60-b7f6-11e6-9bd0-5359df4ccd07_bern-nh.jpg.cf.jpg"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fattack-san-bernardino-faithful-seek-unity-080829842.html",
+ "id": "b6acbd35-79e3-3ac1-a21c-e09ef7d3a143",
+ "aid": "b53a72ea-73cb-3507-87b9-76a34b6719f3",
+ "publisher": "Associated Press",
+ "off_network": false,
+ "is_pnr": "true"
+ }, {
+ "summary": "The second man on the moon is \"stable\" after having to leave the tourist group due to medical reasons.",
+ "more_link_text": "Details",
+ "cposy": 13,
+ "is_eligible": true,
+ "idPrefix": "PNR-",
+ "url": "https:\u002F\u002Fgma.yahoo.com\u002Fbuzz-aldrin-medically-evacuated-south-pole-condition-deteriorated-144817115--abc-news-topstories.html",
+ "footerCopy": "Aldrin evacuated from S. Pole",
+ "experimentId": "0",
+ "title": "Buzz Aldrin, 86, evacuated from South Pole",
+ "images": {
+ "img:412x232": {
+ "height": 232,
+ "width": 412,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FLj2IMpj83r_C6sQg5S.qPA--\u002FZmk9c3RyaW07aD0yMzI7cHlvZmY9MDtxPTgwO3c9NDEyO3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttps:\u002F\u002Fs.yimg.com\u002Flo\u002Fapi\u002Fres\u002F1.2\u002FdQQdO_MqT94IoxlwG96MoQ--~C\u002FZmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-12-01\u002Fa5fface0-b7e1-11e6-b947-731778efc65d_buzzaldrin.jpeg"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fgma\u002Fbuzz-aldrin-medically-evacuated-south-pole-condition-deteriorated-144817115--abc-news-topstories.html",
+ "id": "7fd4aa01-3a4b-3d52-86c8-081aeac27b9d",
+ "aid": "e81648be-1595-3e4f-b6ea-265f78936d37",
+ "publisher": "Good Morning America",
+ "off_network": false,
+ "is_pnr": "true"
+ }, {
+ "summary": "The president-elect will face politically fraught decisions about an arsenal in need of modernizing.",
+ "more_link_text": "But he has offered few specifics",
+ "cposy": 14,
+ "is_eligible": true,
+ "idPrefix": "PNR-",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Ftrump-face-tough-questions-future-nuclear-arsenal-083854712--election.html",
+ "footerCopy": "Trump faces tough nuclear weapons questions",
+ "experimentId": "0",
+ "title": "Trump faces tough nuclear weapons questions",
+ "images": {
+ "img:412x232": {
+ "height": 232,
+ "width": 412,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FPtIx1.VmCaD0zNSZdL.dGQ--\u002FZmk9c3RyaW07aD0yMzI7cHlvZmY9MDtxPTgwO3c9NDEyO3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttps:\u002F\u002Fs.yimg.com\u002Flo\u002Fapi\u002Fres\u002F1.2\u002FtZa2wNoGh44MB2lhTGEvIw--~C\u002FZmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-12-02\u002F5e194040-b826-11e6-9b8e-e31a36c5974b_trump3.jpg.cf.jpg"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Ftrump-face-tough-questions-future-nuclear-arsenal-083854712--election.html",
+ "id": "58dc6bb4-bdcf-3358-9800-d5353e4db95d",
+ "aid": "bf0fa4d1-96d3-3750-9517-39e273d93eff",
+ "publisher": "Associated Press",
+ "off_network": false,
+ "is_pnr": "true"
+ }, {
+ "summary": "The deposed head of Donald Trump's transition team is said to be eyeing the Republican National Committee chair.",
+ "video_enrichment": {
+ "width": "640",
+ "height": "360",
+ "url": "http:\u002F\u002Fnews.yahoo.com\u002Fvideo\u002Ftrump-says-meeting-christie-went-143008496.html?format=embed&amp;player_autoplay=false",
+ "uuid": ""
+ },
+ "more_link_text": "Other possible candidates",
+ "cposy": 15,
+ "is_eligible": true,
+ "idPrefix": "PNR-",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Freport-chris-christie-looking-at-becoming-gop-chair-194506864.html",
+ "footerCopy": "Chris Christie reportedly angling for a new job",
+ "experimentId": "0",
+ "title": "Report: Chris Christie is eyeing a new position",
+ "images": {
+ "img:412x232": {
+ "height": 232,
+ "width": 412,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FTmgLqQFk9QDGbX_eSC8iwg--\u002FZmk9c3RyaW07aD0yMzI7cHlvZmY9MDtxPTgwO3c9NDEyO3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttps:\u002F\u002Fs.yimg.com\u002Flo\u002Fapi\u002Fres\u002F1.2\u002FGlwoTf.8hIv1SjSpKL_S5Q--~C\u002FZmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-12-01\u002Fb9001110-b807-11e6-9ab0-9315efad5fdd_christie3.jpg.cf.jpg"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Freport-chris-christie-looking-at-becoming-gop-chair-194506864.html",
+ "id": "7ab636e5-64e3-3f60-8bfb-aba77e4848ac",
+ "aid": "3c062c8d-daf4-31be-ac92-8bbc748ba3ec",
+ "publisher": "Yahoo News",
+ "off_network": false,
+ "is_pnr": "true"
+ }, {
+ "summary": "The Russian president gives a conciliatory state-of-the-nation address that reflects Moscow's take on Trump.",
+ "more_link_text": "Cooperation against terror",
+ "cposy": 16,
+ "is_eligible": true,
+ "idPrefix": "PNR-",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Frussian-economy-way-recovery-putin-095350018.html",
+ "footerCopy": "Putin hopeful on U.S. ties",
+ "experimentId": "0",
+ "title": "Putin voices hope on mending U.S. rift",
+ "images": {
+ "img:412x232": {
+ "height": 232,
+ "width": 412,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002Fn0NYUNW2NsM96lclo32ETA--\u002FZmk9c3RyaW07aD0yMzI7cHlvZmY9MDtxPTgwO3c9NDEyO3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttps:\u002F\u002Fs.yimg.com\u002Flo\u002Fapi\u002Fres\u002F1.2\u002Fu5bMCVVfmsTvyqmTjQkiZA--~C\u002FZmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-12-01\u002Fe182c6a0-b7d5-11e6-86ed-279a0177af5d_putin-nh.jpg.cf.jpg"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Frussian-economy-way-recovery-putin-095350018.html",
+ "id": "b56b4eb1-c7d8-3861-97a5-cf6a0e18be30",
+ "aid": "339555af-7132-3b75-9663-0fa4026f9453",
+ "publisher": "Associated Press",
+ "off_network": false,
+ "is_pnr": "true"
+ }, {
+ "summary": "In a speech to supporters in Ohio, the president-elect focused on replaying triumphs and feuds from his race against Hillary Clinton.",
+ "video_enrichment": {
+ "width": "300",
+ "height": "150",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fynn\u002Ftrump-jabs-media-during-first-023146519.html?format=embed&amp;player_autoplay=false",
+ "uuid": "6bfa4b76-fe9f-3135-84aa-7021741975ad"
+ },
+ "more_link_text": "Kickoff of 'Thank You' tour",
+ "cposy": 17,
+ "is_eligible": true,
+ "idPrefix": "PNR-",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Fdonald-trump-is-running-victory-laps-and-settling-old-scores-064424074.html",
+ "footerCopy": "Trump isn't quite done with the campaign",
+ "experimentId": "0",
+ "title": "Trump running victory laps, settling old scores",
+ "images": {
+ "img:412x232": {
+ "height": 232,
+ "width": 412,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FDs22xUj228nb1mxxewg.HA--\u002FZmk9c3RyaW07aD0yMzI7cHlvZmY9MDtxPTgwO3c9NDEyO3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttps:\u002F\u002Fs.yimg.com\u002Flo\u002Fapi\u002Fres\u002F1.2\u002FHMa__s6zoGcqvtOHdCuvug--~C\u002FZmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-12-02\u002F80e8eac0-b863-11e6-b81e-d1a488560522_trump-speech-lg.jpg.cf.jpg"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fdonald-trump-is-running-victory-laps-and-settling-old-scores-064424074.html",
+ "id": "0867cf30-6212-3862-9a83-fb89387a58b6",
+ "aid": "1c9a6221-4303-3e47-996c-1dd23cec8b20",
+ "publisher": "Yahoo News",
+ "off_network": false,
+ "is_pnr": "true"
+ }, {
+ "summary": "Howard Schultz, who joined the coffee chain in 1982 and has served two stints as chief executive, will stay on in a different capacity.",
+ "more_link_text": "His replacement",
+ "cposy": 18,
+ "is_eligible": true,
+ "idPrefix": "PNR-",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Fhoward-schultz-stepping-down-starbucks-210110034.html",
+ "footerCopy": "Starbucks CEO stepping down for a second time",
+ "experimentId": "0",
+ "title": "Howard Schultz stepping down at Starbucks",
+ "images": {
+ "img:412x232": {
+ "height": 232,
+ "width": 412,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FzZ1UXoHg9p28KyUG90uMxA--\u002FZmk9c3RyaW07aD0yMzI7cHlvZmY9MDtxPTgwO3c9NDEyO3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttps:\u002F\u002Fs.yimg.com\u002Flo\u002Fapi\u002Fres\u002F1.2\u002FqrwzZd.rM0wfOH4.9DCpnA--~C\u002FZmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-12-01\u002F9c607980-b80e-11e6-a769-a3808f15d370_schultz3.jpg.cf.jpg"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fhoward-schultz-stepping-down-starbucks-210110034.html",
+ "id": "c8aa20aa-eddc-3996-8a5a-d45e7e760c3c",
+ "aid": "51a33d02-a025-3188-806d-402cf4513a6d",
+ "publisher": "CNBC",
+ "off_network": false,
+ "is_pnr": "true"
+ }, {
+ "summary": "States that have legalized pot offer exemptions from workplace drug policies, but that doesn't mean you can't be tested or fired.",
+ "video_enrichment": {
+ "width": "512",
+ "height": "288",
+ "url": "https:\u002F\u002Fview.yahoo.com\u002Fembed?id=60809121&amp;type=clip&amp;autoplay=0&amp;mute=0&amp;utm_source=yahoo&amp;utm_medium=referral&amp;utm_campaign=news",
+ "uuid": ""
+ },
+ "more_link_text": "What HR specialists say",
+ "cposy": 19,
+ "is_eligible": true,
+ "idPrefix": "PNR-",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Ftip-sheet-workers-workplaces-where-053931548.html",
+ "footerCopy": "What you need to know about pot and your job",
+ "experimentId": "0",
+ "title": "Changing marijuana laws and the workplace",
+ "images": {
+ "img:412x232": {
+ "height": 232,
+ "width": 412,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002F0z_iXFp1UZFCcJk4cRrkiQ--\u002FZmk9c3RyaW07aD0yMzI7cHlvZmY9MDtxPTgwO3c9NDEyO3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttps:\u002F\u002Fs.yimg.com\u002Flo\u002Fapi\u002Fres\u002F1.2\u002FnMj2SMLtzOcetPa5NI9VxA--~C\u002FZmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-12-01\u002F820828c0-b7e7-11e6-9f78-d1eb43c29ed4_marijuana_smoker-1404.jpg.cf.jpg"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Ftip-sheet-workers-workplaces-where-053931548.html",
+ "id": "9bdf5b42-dfb9-384f-8dc7-73a9888ce244",
+ "aid": "04a3f631-c727-3f76-ad9c-24b089ba1638",
+ "publisher": "Associated Press",
+ "off_network": false,
+ "is_pnr": "true"
+ }],
+ "isTodayItem": "true",
+ "is_eligible": true,
+ "idPrefix": "PNR-",
+ "url": "https:\u002F\u002Fgma.yahoo.com\u002Fchristmas-party-may-triggered-san-bernardino-terror-attack-103800489--abc-news-topstories.html",
+ "commentCount": 2559,
+ "footerCopy": "Did party trigger San Bernardino attack?",
+ "property": "featured",
+ "format": "carousel",
+ "experimentId": "0",
+ "title": "Party may have been San Bernardino trigger",
+ "images": {
+ "original": {
+ "height": 756,
+ "width": 1404,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FvwemTOm_gRDeDhU5j51jfQ--\u002FaD03NTY7dz0xNDA0O3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttps:\u002F\u002Fs.yimg.com\u002Flo\u002Fapi\u002Fres\u002F1.2\u002FOsxooCBCKqU8KAJk0gF.Tg--~C\u002FZmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-12-01\u002F077ba5f0-b805-11e6-9597-bb741f194c03_Syed-Farook-nh.jpg.cf.jpg"
+ },
+ "img:672x378": {
+ "height": 378,
+ "width": 672,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002Fx_tcbZOygbxFrzTIs.Wb2w--\u002FZmk9c3RyaW07aD0zNzg7cHlvZmY9MDtxPTk1O3c9NjcyO3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttps:\u002F\u002Fs.yimg.com\u002Flo\u002Fapi\u002Fres\u002F1.2\u002FOsxooCBCKqU8KAJk0gF.Tg--~C\u002FZmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-12-01\u002F077ba5f0-b805-11e6-9597-bb741f194c03_Syed-Farook-nh.jpg.cf.jpg"
+ },
+ "medium": {
+ "height": 269,
+ "width": 500,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FI.95y2nINwrCPgyjMhN4Jg--\u002FZmk9c3RyaW07aD01Mzg7cT04MDt3PTEwMDA7c209MTthcHBpZD15dGFjaHlvbg--\u002Fhttps:\u002F\u002Fs.yimg.com\u002Flo\u002Fapi\u002Fres\u002F1.2\u002FOsxooCBCKqU8KAJk0gF.Tg--~C\u002FZmk9Zml0O3c9MTQwNDtoPTc1NjtweG9mZj0wO3B5b2ZmPTA7O2FwcGlkPXByb2Rlc2sy\u002Fhttps:\u002F\u002Fmedia.zenfs.com\u002Fcreatr-images\u002FGLB\u002F2016-12-01\u002F077ba5f0-b805-11e6-9597-bb741f194c03_Syed-Farook-nh.jpg.cf.jpg"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fgma\u002Fchristmas-party-may-triggered-san-bernardino-terror-attack-103800489--abc-news-topstories.html",
+ "id": "d6c90dee-3639-3ecd-91cf-ae7478e3f858",
+ "aid": "cf3ee864-94b5-3fc7-8c85-56c5235f79d3",
+ "publisher": "Good Morning America",
+ "off_network": false,
+ "is_pnr": "true"
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 2,
+ "cposy": 20
+ },
+ "summary": "An unmanned Russian cargo spaceship heading to the International Space Station broke up in the atmosphere over Siberia on Thursday due to an unspecified malfunction, the Russian space agency said. The Progress MS-04 cargo craft broke up at an altitude of 190 kilometers (118 miles) over the remote Russian Tuva region in Siberia that borders Mongolia, Roscosmos said in a statement. It said most of spaceship's debris burnt up as it entered the atmosphere but some fell to Earth over what it called an uninhabited area.",
+ "instrument": "4000003130S00001",
+ "clusterInfo": {
+ "title": "Science",
+ "id": "5cf92e48-a4be-4a22-b511-3f1000dc2ccd",
+ "type": "storyCluster",
+ "followable": "false",
+ "userFollowing": "false"
+ },
+ "storyline": [{
+ "cposy": 21,
+ "is_eligible": false,
+ "idPrefix": "SS-",
+ "url": "http:\u002F\u002Fwww.upi.com\u002FScience_News\u002F2016\u002F12\u002F01\u002FRussian-space-station-cargo-ship-experiences-anomaly-burns-up\u002F3951480616054",
+ "title": "Russian space station cargo ship experiences anomaly, burns up",
+ "images": {
+ "original": {
+ "height": 285,
+ "width": 600,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FsIhwhJYeliirlCLVbWh3UA--\u002FaD0yODU7dz02MDA7c209MTthcHBpZD15dGFjaHlvbg--\u002Fhttp:\u002F\u002Fslingstone.zenfs.com\u002Foffnetwork\u002F9a3eaeb44ce43eb0e6bbd26e3b0b34f3"
+ },
+ "img:72x72": {
+ "height": 72,
+ "width": 72,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FVTyRBpgI2e0bCUnxX5Rgpg--\u002FZmk9c3RyaW07aD03MjtweW9mZj0wO3E9ODA7dz03MjtzbT0xO2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fslingstone.zenfs.com\u002Foffnetwork\u002F9a3eaeb44ce43eb0e6bbd26e3b0b34f3"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fm\u002F7449993c-4a8a-35a2-a0ff-f34af3c189ca\u002Fss_russian-space-station-cargo.html",
+ "id": "7449993c-4a8a-35a2-a0ff-f34af3c189ca",
+ "publisher": "UPI",
+ "off_network": true
+ }, {
+ "cposy": 22,
+ "is_eligible": false,
+ "idPrefix": "SS-",
+ "url": "http:\u002F\u002Fwww.cbsnews.com\u002Fnews\u002Fprogress-space-station-cargo-ship-likely-lost\u002F",
+ "title": "Progress space station cargo ship malfunctions, crashes in Siberia",
+ "images": {
+ "original": {
+ "height": 630,
+ "width": 1200,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002F5oQw6B.CzCPfCQVGAqSxBQ--\u002FaD02MzA7dz0xMjAwO3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttp:\u002F\u002Fslingstone.zenfs.com\u002Foffnetwork\u002F3e956d3b2b73c0d66b383324df4e3d8c"
+ },
+ "img:72x72": {
+ "height": 72,
+ "width": 72,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FRZdz1Te.05Qfasd5Wfbp8Q--\u002FZmk9c3RyaW07aD03MjtweW9mZj0wO3E9ODA7dz03MjtzbT0xO2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fslingstone.zenfs.com\u002Foffnetwork\u002F3e956d3b2b73c0d66b383324df4e3d8c"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fm\u002F78033279-878b-3494-9324-8bb0b27694ee\u002Fss_progress-space-station-cargo.html",
+ "id": "78033279-878b-3494-9324-8bb0b27694ee",
+ "publisher": "CBS News",
+ "off_network": true
+ }],
+ "is_eligible": true,
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Frussian-supply-ship-launched-international-space-station-150638637.html",
+ "commentCount": 11,
+ "property": "news",
+ "categoryLabel": "Science",
+ "format": "storyline",
+ "title": "Russia: Space ship malfunctions, breaks up over Siberia",
+ "images": {
+ "original": {
+ "height": 1334,
+ "width": 2000,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002F3e..H3LRcEuqmW5u0GPMKA--\u002FaD0xMzM0O3c9MjAwMDtzbT0xO2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen_us\u002FNews\u002Fap_webfeeds\u002Fc9375de6acbf4c168be78ffe4ec71ea9.jpg.cf.jpg"
+ },
+ "img:220x193": {
+ "height": 193,
+ "width": 220,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FrjByh6oEyxjzJF.bBGQncw--\u002FZmk9c3RyaW07aD0xOTM7cHlvZmY9MDtxPTgwO3c9MjIwO3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen_us\u002FNews\u002Fap_webfeeds\u002Fc9375de6acbf4c168be78ffe4ec71ea9.jpg.cf.jpg"
+ },
+ "img:440x386": {
+ "height": 386,
+ "width": 440,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FBWTbbVzclNg7m6n00NA_fw--\u002FZmk9c3RyaW07aD0zODY7cHlvZmY9MDtxPTgwO3c9NDQwO3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen_us\u002FNews\u002Fap_webfeeds\u002Fc9375de6acbf4c168be78ffe4ec71ea9.jpg.cf.jpg"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Frussian-supply-ship-launched-international-space-station-150638637.html",
+ "id": "8dd27580-6b4e-3cfb-a389-5b1ab90bd0eb",
+ "publisher": "Associated Press",
+ "off_network": false
+ }, {
+ "hasHqImg": true,
+ "ad_feedback_beacon": "https:\u002F\u002Fus.af.beap.bc.yahoo.com\u002Faf?bv=1.0.0&amp;bs=(15pj017hb(gid$c7d775d8-b871-11e6-b791-dbe6e0f04c07-7fbb48a77700,st$1480670950563000,li$0,cr$32474069017,dmn$ifcmarkets.com,srv$3,exp$1480678150563000,ct$27,v$1.0,adv$1487673,pbid$1,seid$4402687))&amp;r=1480670950563&amp;al=$(AD_FEEDBACK)",
+ "i13n": {
+ "bpos": 1,
+ "cpos": 3,
+ "cposy": 23
+ },
+ "beacon": "https:\u002F\u002Fbeap.gemini.yahoo.com\u002Fmbcsc?bv=1.0.0&amp;es=1jFwCoUGIS9eBpsVjPGJh0OUuaKdwchnwb86bEQYUBBgeo6bih_8vWV0mPcKX7tXmOlB_LM4hSw6WAhXKepwI8V5K9IaaLwIhjtAo.kcXvcHl2XmLg6iHvNjij_s4BY6hyVJPZvRGUMehTsLwOnHZqSdSoAN81XYKVfPQzvw93VFxVIJNeIK_ufoxG3PLcyz4d1K2dy97is1PrWZ.xGgD6ZgT7ABMbgDRAYzM4s38sciZkUqR8AZTAzGed2rnNx8DWjcikItqyCCRvHbAeRjEUUXtbblSQoDLjqiWEEZ6KBhfD5Ja5EXMhwepnyBsx58P2IuwDRP.gFqHcUGbdic3dqRhCbUslY3oSXyz284v3ZkxqGHGok9PYAUf5Q6xBxMXtgHrn.vYRKZg3AAisy._TIF&amp;ap=3",
+ "summary": "Excellent Conditions for Professional Trading! 500+ trading instruments. 2 regulations: CySEC and BVI FSC. 100% dividend adjustment on stock CFDs.",
+ "is_eligible": false,
+ "title": "IFC Markets. Forex &amp; CFD trading",
+ "type": "ad",
+ "link": "https:\u002F\u002Fbeap.gemini.yahoo.com\u002Fmbclk?bv=1.0.0&amp;es=QB2YboQGIS_LDyLUj4tZxJgxNaT.BrcpGipmgxQaV5tHqVzBqQ1wu1MnAMJmpRAgp3wJHtuorQdt_QgnF9KKEr_NfKljpKZVw1kV5yklob7anAz9qV2FNG7.5IZSrxUwuVPGasRenbwtGhNi2vSiWHGUvWApKo7vR84cog4b0f1bQ9ar6.GpRZHVLob2tSKYZB06eSVh_nL_OmK99.DSDsGNXYcu45DmjMJisJz.4512PPSI9YMo_qimBzrjD8FDFMIXK_cV8FSR3E8jbDO3sUxSm6zsRrWnLm66UK66mSV3vT.gREatVNPE9xVaq7d_tm8QmKakFCwYIj5AXNgM4psQkWUxH1pn9C5EGBMr341T86R83EWvega1pF.lYVYCK7rIBfWbLgaaWsVt3foPPG2r3rF4TjAx_x2YmqFxJNtgBL4vXwvsGsKj703DzDF0xHs9Q9vfmYiaoHfaFENWb2ZVqGgg0yTEepWhH4OvwejT0nZfH4flCFtWlJjW.GQ7zT7lYM97OCZlAQuUydGWw9fYav6sRI7XRsloslBQcXqqcLjJqhCS7hx1oqJvRTsccGiArKloFqY4NF9s3YW2c3XnIZGnv3gTz3I800OiYWlqecxHQ2rXscbhb_dNZPsv1XrsGcI7UQ--%26lp=http%3A%2F%2Fwww.ifcmarkets.com%2Fen%2Fforex-cfd-trading%3Futm_source%3Dyahoo%26utm_medium%3Dcpc%26utm_term%3D%26utm_content%3Dexcellent_new%26utm_campaign%3Denglish_native_asia",
+ "id": "32474069017",
+ "image": {
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002F2SChHrdWdg0VIIG0njDK4g--\u002FZmk9c3RyaW07aD0xMjM7cHlvZmY9MDtxPTgwO3c9MjIwO3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fav\u002Fmoneyball\u002Fads\u002F1476367816981-4689.jpg.cf.jpg",
+ "width": "100%",
+ "height": ""
+ },
+ "publisher": "IFC Markets"
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 4,
+ "cposy": 24
+ },
+ "summary": "Fashion designer Tom Ford has announced that he would not be dressing future first lady Melania Trump when her husband officially becomes president. “I was asked to dress [Melania Trump] quite a few years ago and I declined,\" Ford said. Other designers have joined Ford in refusing to dress the former Slovakian model.",
+ "instrument": "4000014660S00001",
+ "clusterInfo": {
+ "title": "Style",
+ "id": "7a977cce-e465-4e4e-8765-853322014855",
+ "type": "storyCluster",
+ "followable": "false",
+ "userFollowing": "false"
+ },
+ "storyline": [{
+ "cposy": 25,
+ "is_eligible": true,
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Ftom-ford-says-declined-dress-131819863.html",
+ "title": "Tom Ford Says He Declined to Dress Melania Trump ‘Years Ago’: ‘She’s Not Necessarily My Image’",
+ "images": {
+ "img:72x72": {
+ "height": 72,
+ "width": 72,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002F__TdQihFmqPBav5eWGCEcg--\u002FZmk9c3RyaW07aD03MjtweW9mZj0wO3E9ODA7dz03MjtzbT0xO2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen-US\u002Fhomerun\u002Fpeople_218\u002F4dd2b3063c6e44496b9c69d3e1c54883"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Ftom-ford-says-declined-dress-131819863.html",
+ "id": "029f07dd-7b02-3240-9b84-7f5f7df06662",
+ "publisher": "People",
+ "off_network": false
+ }, {
+ "cposy": 26,
+ "is_eligible": true,
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Fdiane-von-furstenberg-dressing-melania-213132306.html",
+ "title": "Diane von Furstenberg Says Fashion Industry Shouldn’t Shun Melania Trump",
+ "images": {
+ "img:72x72": {
+ "height": 72,
+ "width": 72,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FMK46Tx1JrmKc8WJzn27pmA--\u002FZmk9c3RyaW07aD03MjtweW9mZj0wO3E9ODA7dz03MjtzbT0xO2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen-US\u002Fhomerun\u002Fpeople_218\u002Fbc00455c8724c57de05799b959b551b8"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fdiane-von-furstenberg-dressing-melania-213132306.html",
+ "id": "94951570-37a2-3d59-8d1c-8abee30f1473",
+ "publisher": "People",
+ "off_network": false
+ }],
+ "is_eligible": true,
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Fmeet-designers-happy-dress-melania-231300756.html",
+ "commentCount": 200,
+ "property": "news",
+ "categoryLabel": "Style",
+ "format": "storyline",
+ "title": "Meet the Designers Who Are Happy to Dress Melania Trump as First Lady - and the Ones Who Won't",
+ "images": {
+ "original": {
+ "height": 234,
+ "width": 416,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002F3MycVaZOlVNk7xs6u5biEA--\u002FaD0yMzQ7dz00MTY7c209MTthcHBpZD15dGFjaHlvbg--\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen-US\u002Fhomerun\u002Finside_edition\u002Ff16f4eebbcfaa1b365e3a7fe7d93672d"
+ },
+ "img:220x193": {
+ "height": 193,
+ "width": 220,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FsuS69_6DnHbDv..IcWI.Kg--\u002FZmk9c3RyaW07aD0xOTM7cHlvZmY9MDtxPTgwO3c9MjIwO3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen-US\u002Fhomerun\u002Finside_edition\u002Ff16f4eebbcfaa1b365e3a7fe7d93672d"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fmeet-designers-happy-dress-melania-231300756.html",
+ "id": "c2c84c26-69e6-398f-9117-118da69c5ca4",
+ "publisher": "Inside Edition",
+ "off_network": false
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 5,
+ "cposy": 27
+ },
+ "summary": "A California sheriff says a woman who was held captive for three weeks is unable to fully describe her two female abductors because their faces were covered. Shasta County Sheriff Tom Bosenko said Wednesday that the Spanish-speaking suspects also kept the head of 34-year-old victim Sherri Papini covered at times. A California sheriff says the abductors of a woman who was held captive for three weeks branded her with a message before she was released.",
+ "instrument": "4000017820S00001",
+ "clusterInfo": {
+ "title": "U.S.",
+ "id": "fb44cab3-300b-4762-8e6b-14342bde2419",
+ "type": "storyCluster",
+ "followable": "false",
+ "userFollowing": "false"
+ },
+ "storyline": [{
+ "cposy": 28,
+ "is_eligible": true,
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Fsherri-papini-husband-describes-agony-135214324.html",
+ "title": "Sherri Papini’s Husband Describes Agony of Wife’s Kidnapping: ‘I Thought About Her Being There Screaming My Name’",
+ "images": {
+ "img:72x72": {
+ "height": 72,
+ "width": 72,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002F_rH9hNb3WHsfKiU403JPlQ--\u002FZmk9c3RyaW07aD03MjtweW9mZj0wO3E9ODA7dz03MjtzbT0xO2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen-US\u002Fhomerun\u002Fpeople_218\u002Fd9c8c4800fec6972c274d9df0477a700"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fsherri-papini-husband-describes-agony-135214324.html",
+ "id": "440dea3f-94ec-3b14-a7ae-c329a187f079",
+ "publisher": "People",
+ "off_network": false
+ }, {
+ "cposy": 29,
+ "is_eligible": false,
+ "idPrefix": "SS-",
+ "url": "http:\u002F\u002Fwww.mercurynews.com\u002F2016\u002F12\u002F01\u002Fsouth-bay-private-investigator-helped-in-search-for-sherri-papini\u002F",
+ "title": "South Bay private investigator helped in search for Sherri Papini",
+ "images": {
+ "original": {
+ "height": 316,
+ "width": 320,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002F1AvpPA9DOj6fXKZIbwA0hw--\u002FaD0zMTY7dz0zMjA7c209MTthcHBpZD15dGFjaHlvbg--\u002Fhttp:\u002F\u002Fslingstone.zenfs.com\u002Foffnetwork\u002Fd0100a8580e0a387e5712626a6b0ca53"
+ },
+ "img:72x72": {
+ "height": 72,
+ "width": 72,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002Fz4NTKcyrmfBSl4Mb8cJO6Q--\u002FZmk9c3RyaW07aD03MjtweW9mZj0wO3E9ODA7dz03MjtzbT0xO2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fslingstone.zenfs.com\u002Foffnetwork\u002Fd0100a8580e0a387e5712626a6b0ca53"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fm\u002F1bc192e2-01b7-3791-a802-de750679a060\u002Fss_south-bay-private.html",
+ "id": "1bc192e2-01b7-3791-a802-de750679a060",
+ "publisher": "MercuryNews.com",
+ "off_network": true
+ }],
+ "is_eligible": true,
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Flatest-abductors-california-mom-kept-faces-covered-222647892.html",
+ "commentCount": 30,
+ "property": "news",
+ "categoryLabel": "U.S.",
+ "format": "storyline",
+ "title": "The Latest: Abductors of California woman hid faces",
+ "type": "article",
+ "link": "\u002Fnews\u002Flatest-abductors-california-mom-kept-faces-covered-222647892.html",
+ "id": "5ef2d105-0c90-3e5b-97bf-9176821e2743",
+ "publisher": "Associated Press",
+ "off_network": false
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 6,
+ "cposy": 30
+ },
+ "summary": "President-elect Donald Trump named Wall Street veteran Steven Mnuchin for Treasury secretary Wednesday, filling key slots on his economic team even as he announced plans to leave his businesses to avoid any conflict of interest. Mnuchin and billionaire Wilbur Ross were asked in a television interview with CNBC if they could confirm reports they had been named to lead the US Treasury and Commerce departments, respectively. Mnuchin, 53, is a former Goldman Sachs partner who was Trump's campaign chairman and Ross is an investor who has made billions turning around distressed companies.",
+ "instrument": "4000005080S00001",
+ "clusterInfo": {
+ "title": "Politics",
+ "id": "34c67bb5-8773-43d3-a822-41c3e3907ac1",
+ "type": "storyCluster",
+ "followable": "false",
+ "userFollowing": "false"
+ },
+ "storyline": [{
+ "cposy": 31,
+ "is_eligible": false,
+ "idPrefix": "SS-",
+ "url": "http:\u002F\u002Fcnsnews.com\u002Fnews\u002Farticle\u002Fsusan-jones\u002Fincoming-treasury-secretary-eyes-3-4-percent-growth-first-tax-reform",
+ "title": "Incoming Treasury Secretary Eyes 3 to 4 Percent Growth; First Up, Tax Reform",
+ "images": {
+ "original": {
+ "height": 341,
+ "width": 512,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FoQRlV5IctyztBvXcV2PtOw--\u002FaD0zNDE7dz01MTI7c209MTthcHBpZD15dGFjaHlvbg--\u002Fhttp:\u002F\u002Fslingstone.zenfs.com\u002Foffnetwork\u002F89842973b3907e6a0c42f2a9895f84b6"
+ },
+ "img:72x72": {
+ "height": 72,
+ "width": 72,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FXlgPAviFNQEKyX6WQAoWFw--\u002FZmk9c3RyaW07aD03MjtweW9mZj0wO3E9ODA7dz03MjtzbT0xO2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fslingstone.zenfs.com\u002Foffnetwork\u002F89842973b3907e6a0c42f2a9895f84b6"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fm\u002F04931954-fede-32d3-af52-4010e1c210d9\u002Fss_incoming-treasury-secretary.html",
+ "id": "04931954-fede-32d3-af52-4010e1c210d9",
+ "publisher": "CNS News",
+ "off_network": true
+ }, {
+ "cposy": 32,
+ "is_eligible": false,
+ "idPrefix": "SS-",
+ "url": "http:\u002F\u002Fwww.latimes.com\u002Fnation\u002Fpolitics\u002Ftrailguide\u002Fla-na-trailguide-updates-trump-taps-wall-street-executive-and-1480504954-htmlstory.html",
+ "title": "Trump taps Wall Street executive and Hollywood producer Steven Mnuchin for Treasury secretary",
+ "images": {
+ "original": {
+ "height": 422,
+ "width": 750,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FVqYFbYCfI4.1inTa3wKjKw--\u002FaD00MjI7dz03NTA7c209MTthcHBpZD15dGFjaHlvbg--\u002Fhttp:\u002F\u002Fslingstone.zenfs.com\u002Foffnetwork\u002F82f7c8b7a0eb9a29b9efdbf41ea15421"
+ },
+ "img:72x72": {
+ "height": 72,
+ "width": 72,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FgHqKy_nouHib387jGHw1dQ--\u002FZmk9c3RyaW07aD03MjtweW9mZj0wO3E9ODA7dz03MjtzbT0xO2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fslingstone.zenfs.com\u002Foffnetwork\u002F82f7c8b7a0eb9a29b9efdbf41ea15421"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fm\u002Fad575d3c-18a7-3683-9265-c8d93257ad72\u002Fss_trump-taps-wall-street.html",
+ "id": "ad575d3c-18a7-3683-9265-c8d93257ad72",
+ "publisher": "Los Angeles Times",
+ "off_network": true
+ }],
+ "is_eligible": true,
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Fsteven-mnuchin-says-hes-named-us-treasury-secretary-001651071.html",
+ "commentCount": 8,
+ "property": "news",
+ "categoryLabel": "Politics",
+ "format": "storyline",
+ "title": "Trump picks Treasury secretary, says he'll leave his business",
+ "images": {
+ "original": {
+ "height": 681,
+ "width": 1024,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FqjtbRrxZKLmnMhtA.eoBfw--\u002FaD02ODE7dz0xMDI0O3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen_us\u002FNews\u002Fafp.com\u002Ff36535039305b6d05ae5610fc7a562994c6650be.jpg.cf.jpg"
+ },
+ "img:220x193": {
+ "height": 193,
+ "width": 220,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002Fmzvz49PUTQK.b.__Gd9HKw--\u002FZmk9c3RyaW07aD0xOTM7cHlvZmY9MDtxPTgwO3c9MjIwO3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen_us\u002FNews\u002Fafp.com\u002Ff36535039305b6d05ae5610fc7a562994c6650be.jpg.cf.jpg"
+ },
+ "img:440x386": {
+ "height": 386,
+ "width": 440,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FBZlkDt5DLzO87oS.v_kd3g--\u002FZmk9c3RyaW07aD0zODY7cHlvZmY9MDtxPTgwO3c9NDQwO3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen_us\u002FNews\u002Fafp.com\u002Ff36535039305b6d05ae5610fc7a562994c6650be.jpg.cf.jpg"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fsteven-mnuchin-says-hes-named-us-treasury-secretary-001651071.html",
+ "id": "1ffa2b2c-3538-3c97-9111-d3072444526f",
+ "publisher": "AFP",
+ "off_network": false
+ }, {
+ "hasHqImg": true,
+ "ad_feedback_beacon": "https:\u002F\u002Fus.af.beap.bc.yahoo.com\u002Faf?bv=1.0.0&amp;bs=(15nmn182n(gid$c7d775d8-b871-11e6-b791-dbe6e0f04c07-7fbb48a77700,st$1480670950563000,li$0,cr$32483362865,dmn$c32483362865,srv$3,exp$1480678150563000,ct$27,v$1.0,adv$1512836,pbid$1,seid$4402687))&amp;r=1480670950563&amp;al=$(AD_FEEDBACK)",
+ "i13n": {
+ "bpos": 1,
+ "cpos": 7,
+ "cposy": 33
+ },
+ "beacon": "https:\u002F\u002Fbeap.gemini.yahoo.com\u002Fmbcsc?bv=1.0.0&amp;es=nqzuYHYGIS_xupGB6IyNDASyR.PXcXHJi65Aj6W4JfJ4uH65Ejv3p6ANtFsPcSYAUPfoZfOZYByMGuoc6LHWRuHAZRmGYv2iatVM5hJqA692nMODYD7vJue3XUm8bHJtH_PFD4zoe8IhHpCy6fdNRHuBH021OAt1PWuIYjSAVIdNC.8IRlq.ywHw1WsubdhFAXKN2VecRjf5ExE5fbtMlUWDmLOh7n68wFGkAEmYcAxtszuc7Bs2dIFtMfHpOUO.tQFl0_uGrc3W1VI4Q7I9hDLBA14aTq.eyQJ1YkFgvNdlHowT_axzLCjHCT9ASfecnbAzsDNh1Qhc99pXHnTbNorFS6r6dLQV2XpEBbXhEXhhL4ne1anRMMTVATgPnT0kjHZQjj3_yu_ErJeK_1mUckjT&amp;ap=7",
+ "summary": "Learn About The Over the Counter Allergy Relief That Works Directly At The Source Where You Need It Most To Help Relieve Your Outdoor &amp; Pet Allergies!",
+ "is_eligible": false,
+ "isVideo": true,
+ "video_ad_beacons": {
+ "VIDEO_SKIP": "https:\u002F\u002Fbeap.gemini.yahoo.com\u002Faction?bv=1.0.0&amp;es=8CInb3EGIS99y1FwDMhZpneqDHl.Vxktv6qoesVNJZsdcZOG7EwfX.IhhsRo8RVZzZ91JjpYhyvvPpF5u0l4spOOf2po5BaO8zrVJff.vCOmFgigh156sEI63bUnq9.icwAwqtEUqCVNiSKWOFpwkYhZgs085vzy.0IO_jGjQs77TFZiqIBrcBuCeo_oDgYRRFQZw1t4KaeDr8V1ub_sXJHJdpWE_1khSJjrb1fl3Tw6I_4y9g0A3cxPPzFE7_7eE1RR3sSfL1MMQH5awITNjrdZYzmS3Zth.sfWqfphi_9qS_LWxqHxj18EWfHdOoj6RWQ.bw--",
+ "VIDEO_VIEW": "https:\u002F\u002Fbeap.gemini.yahoo.com\u002Faction?bv=1.0.0&amp;es=MwuA7DsGIS8hEj_qWfrOthTasdbgtclsrNbbT4MxWmf2FsnQ_acJsLsFb8fZLHstrI_8wcwAvcxmeFS5WQpRQE0dy8PDh1Ay0Up0jhhBUrfBlydnssbB51lgND09TGkPYn8imRYia_G6689BqQDHangpGJ_oxBrv.B2TSrXUYXfp7u43W1geGoNjDwtH4sZWyNV5Q3sNMBXsYAlwp_ey79dGMKwg_qIeHBN4VtPCOJrP.Y1GTjM_289tmhaNzHnZblyGaI2hYZTnT6CJotk09UCdl_yep1cOi0Iop3LaB8FY6XKD0qx_3DtrZ9oH60S7Ba0RPjWk9USslWn7AA75jayqoRiHKttm&amp;vsa=$(V_SKIP_AVAIL)&amp;va=$(V_AUTOPLAYED)&amp;vph=$(V_PLAYER_HEIGHT)&amp;vpw=$(V_PLAYER_WIDTH)&amp;ve=$(V_EXPANDED)&amp;vpi=$(V_VIEW_INFO)&amp;api=$(V_AUD_INFO)&amp;atv=$(V_AUD_TIME_INVIEW_100)",
+ "VIDEO_QUARTILE_50": "https:\u002F\u002Fbeap.gemini.yahoo.com\u002Faction?bv=1.0.0&amp;es=z9qpNykGIS8ZqMHlcOUpPYDk32XDlkhTpgK_aWyJ0EgNmo76p0fDAZIzyeCuUno3ITmemApgr16HPwp_82alVbH8XxFP6wluLUZmTopSaesNDLi6RbfUSDqV3Tb2Rg0Csnez.b1s18F2vfuahmehhMzvEWJ_0wVqAKQngL_FzAHkHOPKk3W7N5dbzNVY1T9D7BlS_gAszsxUmz72tC8qg7IO4UT9ZVbDOW3bDoXWWIAmxfpL7t30lvtOgUU_5MiNeRaqlxi7Qt29cmlRPDQg8Rwt42G8qONLMMWQ5kInX01d3IUlGenKO_JnwcJJHz5KnKOf&amp;vsa=$(V_SKIP_AVAIL)&amp;va=$(V_AUTOPLAYED)&amp;vph=$(V_PLAYER_HEIGHT)&amp;vpw=$(V_PLAYER_WIDTH)&amp;ve=$(V_EXPANDED)&amp;vpi=$(V_VIEW_INFO)&amp;api=$(V_AUD_INFO)&amp;atv=$(V_AUD_TIME_INVIEW_100)",
+ "VIDEO_VIEW_3P": "https:\u002F\u002Fbeap.gemini.yahoo.com\u002Faction?bv=1.0.0&amp;es=WRBWkfYGIS8vk6FPdHIhcCd4xXj_SATELxks0L8JmUHSK918TVLvPYfqBrFVEoK8sqCHGvWt_8BDxd4s31As_2q5B2EH19mvHIw2svd594AJo2PKgv1ZVsSJo9cT2Rvkx.SjS2lspUSwEZ2T5NWbGO97M3e7bMlWfIIWVQ7vsT6fY9_OPNKEuKb8sb1ZL8NkWHBXqzAS925cQRvaAl.i1MqZUUGjO4f6FRYWcu76I_hceUNWh3lU66Ys5W.zNFLSIQyFyrY2oR2Y03PwHM5zWzK57ycNaKNSorPdjjAI2ST3mqpaozxBvsXGocG03enZafAryQ--&amp;vsa=$(V_SKIP_AVAIL)&amp;va=$(V_AUTOPLAYED)&amp;vph=$(V_PLAYER_HEIGHT)&amp;vpw=$(V_PLAYER_WIDTH)&amp;ve=$(V_EXPANDED)&amp;vpi=$(V_VIEW_INFO)&amp;api=$(V_AUD_INFO)&amp;atv=$(V_AUD_TIME_INVIEW_100)&amp;vt=$(V_VIEW_TYPE)",
+ "VIDEO_30_SEC": "https:\u002F\u002Fbeap.gemini.yahoo.com\u002Faction?bv=1.0.0&amp;es=GxwqkNYGIS9RKP3n3_JwcFDu8YPziNL.dNTNSTjLFY_KSJZYHpd0HI8ba8mWlzta71gMRqm1MfhcLlLCSzqcMs9OwnDk2MzwLJ3ZAyRjL4u0E8XPaaLUejXnlPjO5J0X_VRFst1DfhGPnt9YqCkJZB.uU4dBI6JOPjAIX0q1HzMM9HwcJ0aZnkEWIi36Z2bwuMW8qrk_GnjHALf.K0IsNpAApXLZ.zuVuhDBK_e6zZ1tJ1t5GKDV7FfJFamXlbqWemWfkEsMMB8iAfhTI5JJrmXBGenK54YZF8dCBY7n68Dgr8M0PTqm4yY1aCbH.lLLThRgqg--",
+ "VIDEO_CLOSE": "https:\u002F\u002Fbeap.gemini.yahoo.com\u002Faction?bv=1.0.0&amp;es=m6vnXx0GIS8vrS.Kczx6yvHwvJWlMy64JMh7Wwf.Owlhm_GMbRA_c20PLYaBVmLFK3o.wz3IBAIv22V4DkYEv.O3pziR9gD9XlVR22TW3O.x_4l4XWKpzUUlkE_9xFwhcbjsUcYAObylgV3PmY6eXx0DNvFd07f8JP7zKo1xXzEmcfyjy2LTbhoMBcC35JMCJU2xvqPW9q2QdZ3SEGHneB6ZDxgQi1n2g8wTPp6rMzjD434pgdkZWmRJyapfPKxMhN0zVskrF4XKhCcGQo_Zh8VU4lGffFW7S3lsPf.f.kksm8bCY36k5L0ZDt5DbEWHQkC.0g--",
+ "VIDEO_QUARTILE_75": "https:\u002F\u002Fbeap.gemini.yahoo.com\u002Faction?bv=1.0.0&amp;es=ZcrVZHYGIS.foZA_ULH7FOXwWe3Q3ATmWBb4xhodtIksxLTCUNPMLWhnLl7TkwRoawKOyvF91AiuRg__kkllLvPkD.iqT08w7RQIFM7_tZcZpSsEhuV0zzQi8Xmns.w05fBTNaZqOfBzbpufabvX6a7h.6VJWIob3aGetfEJlTdK7NN_LJ3B0hPSctHaS9xcFtKDUlZVPbWEVehxs8JohsPcq0r_bQxGirPs.DYorHakEW045I2i6s4ubC7WSAC2hj9V9J.qHwnfG_H4ovIVT8SNuIyI0MLRwxx2r0D55MZH5wBm2qFnAXe4c0.3Br8px.Vt&amp;vsa=$(V_SKIP_AVAIL)&amp;va=$(V_AUTOPLAYED)&amp;vph=$(V_PLAYER_HEIGHT)&amp;vpw=$(V_PLAYER_WIDTH)&amp;ve=$(V_EXPANDED)&amp;vpi=$(V_VIEW_INFO)&amp;api=$(V_AUD_INFO)&amp;atv=$(V_AUD_TIME_INVIEW_100)",
+ "VIDEO_QUARTILE_100": "https:\u002F\u002Fbeap.gemini.yahoo.com\u002Faction?bv=1.0.0&amp;es=RaqKW54GIS_USxsfIAYGj5PavtYpHazGe9doA97xT.iRYAIJbsTPaQdbrSxZl2OF2l7kPn.MOUY.VHTYazzShW9Al.5DKxJADgxBxxZOqM9yelIyOuQZYK2W82WTC7URm1Pg8j.uIjBHm_yEN8wzLXA91ICGjehfAJoKjTWreKDOAHJy8wywzbIU6VmrplYLlfe31nhxHLHkKCc3UwrlntbuZ0Y.ep4ocwxJO2lAT0FdVhpkerZp9Bfrec.Lx7qWkUW.5luKdk7fnx9meQI5on7AKGIVhsLoct0IYUxnrY95KkAo8lY_95TliNuc0Oc_pAwf.otvy5yRTHdL9BIVdx2ybA--&amp;vsa=$(V_SKIP_AVAIL)&amp;va=$(V_AUTOPLAYED)&amp;vph=$(V_PLAYER_HEIGHT)&amp;vpw=$(V_PLAYER_WIDTH)&amp;ve=$(V_EXPANDED)&amp;vpi=$(V_VIEW_INFO)&amp;api=$(V_AUD_INFO)&amp;atv=$(V_AUD_TIME_INVIEW_100)",
+ "VIDEO_QUARTILE_25": "https:\u002F\u002Fbeap.gemini.yahoo.com\u002Faction?bv=1.0.0&amp;es=xbRD3HUGIS.F1bI2rKCK8q5.piTIK4tE6MxEXuESNWbZw46Fbzhyp.Umgsf.7dLRBuolBuKaYZykzSIkwG9J6daJnlFIQRqVLolut2XR_vuUV8wRxh5cwMC54YWKYIVqO.hUcJFWNjmynXmOU7o2RB_qyP4PxzuzvOMX3UFKwnHgN7_RYQYQgo2wfKbManhvAI2VXoJ7PVoJsNiAYzACqBxB5RserWLpA9qaqUN0Yaj.HNQ9puuhxJYo.dUn7oyZJUDQBh6zm9WtAJYaZBC2XYpPz_uLSooxm0tk4oKjcns4Ue00pN.bOD5JhH2h3VcQC2Iq&amp;vsa=$(V_SKIP_AVAIL)&amp;va=$(V_AUTOPLAYED)&amp;vph=$(V_PLAYER_HEIGHT)&amp;vpw=$(V_PLAYER_WIDTH)&amp;ve=$(V_EXPANDED)&amp;vpi=$(V_VIEW_INFO)&amp;api=$(V_AUD_INFO)&amp;atv=$(V_AUD_TIME_INVIEW_100)",
+ "VIDEO_START": "https:\u002F\u002Fbeap.gemini.yahoo.com\u002Faction?bv=1.0.0&amp;es=zE0gjmkGIS_47Vq7veE.ttxGv7WW9n94t4z8TETCgqsaNSooPcKUXqJ9haj5j.YsxDB_e13i3bYVr1J3wf_mJsi83Yr2E6uQmVqQKiAadyXPW6Cf4TL2qQHxaiTGEOMSJFWFybRxiht7Jae.Jg5kxFmqAMysWXkBOwCMGweX.cXsoVnee4Lwz.et1H06._eP2Ao7Wi.jZUnTWidcgGbLK1LU6wKc1dXuSvHccXTlR207cp.7rp5F84vmNSb5N0hnG7fAXWf2BRpGw7WEftwlsUedKOTFo8sbgTJBzy7ozhRMpZ1C969ltpbEQBn99fZRhN8a&amp;vsa=$(V_SKIP_AVAIL)&amp;va=$(V_AUTOPLAYED)&amp;vph=$(V_PLAYER_HEIGHT)&amp;vpw=$(V_PLAYER_WIDTH)&amp;ve=$(V_EXPANDED)&amp;vpi=$(V_VIEW_INFO)&amp;api=$(V_AUD_INFO)&amp;atv=$(V_AUD_TIME_INVIEW_100)"
+ },
+ "title": "Don't Be Afraid To Get Your Hands Dirty This Year",
+ "type": "ad",
+ "link": "https:\u002F\u002Fbeap.gemini.yahoo.com\u002Fmbclk?bv=1.0.0&amp;es=EeYb.ooGIS.5.sc_wSLQpqDRiS5MJxTCV7Xzb1NwpmtCAnc9JdcvayB4UK5vtIcGLXjOAlZpLk1mzKMsUtcUOzoAeaqkjby9kpFavRgZ6SywTbVrb1eqLJ0TFqsb0K6qrwYd72_2oJ_m.DcvhA5Xu6wcGL0sEkLLBMfLycwyNUnt54tAVfA7AyYTYvW_LPaCOf4Ss5QofWfb0xDZOefMUdmRNBKF873yo3ZJ25YL57l3sJXOWE8suUVuk58HNEoqhOX.gGeLg2Sjgw6jOHr4XKURRnt2b0Rko4lkPyrau042_pOdwNGQnPKfUg93z57XD8r0YdEjKP5atWHFCCYoyyegjEiFREn4fcgGILcL1NuMB1VH_7ieuIyalDy8Sv_i.ginCcZv8ebOKfInsai3kgz.9nNCaVGzNnDolqLUmk0zf1AlLmoLzi35bx5gAtL56TVZPFqsssh8EPDhiAUMIPGUCfolntEekuY1SmuLGxFq1F5gjUN.OgT26It2hpV9sMyvhtVS0Mv3LbzPOYTHHuotZB5.qxpAI3E43jwKMvhzjAQnv8b8%26lp=http%3A%2F%2Fclickserve.dartsearch.net%2Flink%2Fclick%3Flid%3D43700013090213478%26ds_s_kwgid%3D58700001647004279%26ds_url_v%3D2",
+ "video_ad_assets": {
+ "usageType": "VIDEO_PRIMARY",
+ "mediaInfo": {
+ "url": "https:\u002F\u002Fc-dcc8aaf4ee86b1e6419fa9a769c6ee8b.http.atlas.cdn.yimg.com\u002Fgemini\u002Fpr\u002Fvideo_ZCIr01dzXpcuAAg14ls7BuBqV6xeP0N4AMdukPkJ_P1vlrDlUter6kKKnlOvYWDgIajr0FngjH0-_1.mp4?a=gemini&amp;mr=0&amp;s=29ca05558143cd51767cf8a7308a1de5",
+ "contentType": "video\u002Fmp4",
+ "height": "270",
+ "width": "480",
+ "bitrate": "466",
+ "length": "16"
+ }
+ },
+ "id": "32483362865",
+ "image": {
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FYtynaEAbpOhfQOgYxXwGDw--\u002FZmk9c3RyaW07aD0xMjM7cHlvZmY9MDtxPTgwO3c9MjIwO3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttps:\u002F\u002Fs.yimg.com\u002Fav\u002Fmoneyball\u002Fads\u002F1471893837023-4662.jpg.cf.jpg",
+ "width": "100%",
+ "height": ""
+ },
+ "publisher": "Flonase",
+ "video_ad_rules": {
+ "viewabilityDefVideo": {
+ "d": "3",
+ "p": "50"
+ }
+ }
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 8,
+ "cposy": 34
+ },
+ "summary": "A New York child is on life support after his mother's boyfriend allegedly beat him into unconsciousness, police said.\nJaden Jordan, 3, is in cricital condition and in a coma after police answered a 911 call Monday night and found the toddler unresponsive",
+ "instrument": "4000010570S00001",
+ "clusterInfo": {
+ "title": "U.S.",
+ "id": "53239c3b-4d68-4362-ba2d-2a0cb09812a1",
+ "type": "storyCluster",
+ "followable": "false",
+ "userFollowing": "false"
+ },
+ "storyline": [{
+ "cposy": 35,
+ "is_eligible": false,
+ "idPrefix": "SS-",
+ "url": "http:\u002F\u002Fnewyork.cbslocal.com\u002F2016\u002F11\u002F30\u002Fbrooklyn-boy-life-support\u002F",
+ "title": "Brooklyn Boy Remains On Life Support After Alleged Abuse",
+ "images": {
+ "original": {
+ "height": 352,
+ "width": 625,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002Fd5IP0rMDlNqueGBZVX_FxQ--\u002FaD0zNTI7dz02MjU7c209MTthcHBpZD15dGFjaHlvbg--\u002Fhttp:\u002F\u002Fslingstone.zenfs.com\u002Foffnetwork\u002Ff6d005d2b9903476d617f5334994c495"
+ },
+ "img:72x72": {
+ "height": 72,
+ "width": 72,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FahAFtiKFxn_LEExDOHz1NQ--\u002FZmk9c3RyaW07aD03MjtweW9mZj0wO3E9ODA7dz03MjtzbT0xO2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fslingstone.zenfs.com\u002Foffnetwork\u002Ff6d005d2b9903476d617f5334994c495"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fm\u002Fa4d81c9b-aab2-34a7-bd24-97bf323d315b\u002Fss_brooklyn-boy-remains-on-life.html",
+ "id": "a4d81c9b-aab2-34a7-bd24-97bf323d315b",
+ "publisher": "CBS New York",
+ "off_network": true
+ }, {
+ "cposy": 36,
+ "is_eligible": false,
+ "idPrefix": "SS-",
+ "url": "http:\u002F\u002Fnypost.com\u002F2016\u002F11\u002F30\u002Ftipster-told-acs-abused-boy-was-being-kept-in-dog-crate\u002F",
+ "title": "Tipster told ACS abused boy was being kept in dog crate",
+ "images": {
+ "original": {
+ "height": 411,
+ "width": 617,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002Fw.r0ORYkOwDlKTh_o1gWcw--\u002FaD00MTE7dz02MTc7c209MTthcHBpZD15dGFjaHlvbg--\u002Fhttp:\u002F\u002Fslingstone.zenfs.com\u002Foffnetwork\u002Fd17e8a97bc2e48d9694b996c217c47b2"
+ },
+ "img:72x72": {
+ "height": 72,
+ "width": 72,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FOkQYQfNP8HwVQ4xIznTP4A--\u002FZmk9c3RyaW07aD03MjtweW9mZj0wO3E9ODA7dz03MjtzbT0xO2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fslingstone.zenfs.com\u002Foffnetwork\u002Fd17e8a97bc2e48d9694b996c217c47b2"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fm\u002F6cb80e6a-bea3-355f-b455-4a99b3a42b6e\u002Fss_tipster-told-acs-abused-boy.html",
+ "id": "6cb80e6a-bea3-355f-b455-4a99b3a42b6e",
+ "publisher": "New York Post",
+ "off_network": true
+ }],
+ "is_eligible": true,
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Fman-charged-assault-endangerment-girlfriends-213400835.html",
+ "commentCount": 16,
+ "property": "news",
+ "categoryLabel": "U.S.",
+ "format": "storyline",
+ "title": "Man Charged With Assault, Endangerment After Girlfriend's Toddler Is Found Brain Dead: Cops",
+ "images": {
+ "original": {
+ "height": 234,
+ "width": 416,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FPIFwm.Z_Jc7_PgJSnPtDsw--\u002FaD0yMzQ7dz00MTY7c209MTthcHBpZD15dGFjaHlvbg--\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen-US\u002Fhomerun\u002Finside_edition\u002F04d1fa12b56c43046d626647c13c9aa9"
+ },
+ "img:220x193": {
+ "height": 193,
+ "width": 220,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FjcmVppAqfnBmP1zyTTaExQ--\u002FZmk9c3RyaW07aD0xOTM7cHlvZmY9MDtxPTgwO3c9MjIwO3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen-US\u002Fhomerun\u002Finside_edition\u002F04d1fa12b56c43046d626647c13c9aa9"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fman-charged-assault-endangerment-girlfriends-213400835.html",
+ "id": "7d0d28e3-c292-35fc-ab7a-e42f1a7efcf4",
+ "publisher": "Inside Edition",
+ "off_network": false
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 9,
+ "cposy": 37
+ },
+ "summary": "Ohio's prison parole board heard arguments Thursday for and against mercy for a man set to die in January for the 1993 rape and killing of his girlfriend's 3-year-old daughter. Ronald Phillips' clemency hearing concluded just before 6:30 p.m. The board did not make an immediate decision. \"Evidence of Phillips's background, history, dysfunctional upbringing, and his reformed character demonstrate that he should not be executed for the murder of Sheila Marie Evans,\" attorneys Tim Sweeney and Lisa Lagos wrote in a Nov. 25 filing.",
+ "instrument": "4000025080S00001",
+ "clusterInfo": {
+ "title": "U.S.",
+ "id": "1e6853cc-3a9f-43b2-8113-d04f5e9f3a4d",
+ "type": "storyCluster",
+ "followable": "false",
+ "userFollowing": "false"
+ },
+ "is_eligible": true,
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Flawyers-3-olds-killer-ask-ohio-board-mercy-053547321.html",
+ "commentCount": 272,
+ "property": "news",
+ "categoryLabel": "U.S.",
+ "title": "Killer of 3-year-old seeks mercy from Ohio parole board",
+ "images": {
+ "original": {
+ "height": 2000,
+ "width": 1326,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FPCOjgtSxFs0VaBpqB2l_tQ--\u002FaD0yMDAwO3c9MTMyNjtzbT0xO2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen_us\u002FNews\u002Fap_webfeeds\u002F217b21b588ac490fbb6c681e454dd4f0.jpg.cf.jpg"
+ },
+ "img:220x123": {
+ "height": 123,
+ "width": 220,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FwTn7e9Tfw3gF4fgyGvZwaA--\u002FZmk9c3RyaW07aD0xMjM7cHlvZmY9MDtxPTgwO3c9MjIwO3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen_us\u002FNews\u002Fap_webfeeds\u002F217b21b588ac490fbb6c681e454dd4f0.jpg.cf.jpg"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Flawyers-3-olds-killer-ask-ohio-board-mercy-053547321.html",
+ "id": "ddbb2ee0-86db-34d9-b89c-557d27c73409",
+ "publisher": "Associated Press",
+ "off_network": false
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 10,
+ "cposy": 38
+ },
+ "summary": "Beijing will \"seriously\" implement new United Nations sanctions imposed on North Korea over its nuclear and missile programmes, it said Thursday, with the measures set to hit Pyongyang's lucrative Chinese coal exports hard. UN Security Council resolution 2321, passed on Wednesday, caps the North's annual coal exports at little more than four months of current sales to China, Chinese government data shows. It limits North Korea's coal exports next year to 7.5 million tonnes or just over $400 million, down 62 percent on 2015.",
+ "instrument": "4000011570S00001",
+ "clusterInfo": {
+ "title": "World",
+ "id": "0f50854a-0869-4f13-89c8-c28fb46e9020",
+ "type": "storyCluster",
+ "followable": "false",
+ "userFollowing": "false"
+ },
+ "storyline": [{
+ "cposy": 39,
+ "is_eligible": true,
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Fchina-says-north-korea-sanctions-not-meant-harm-091822014.html",
+ "title": "China says new North Korea sanctions not meant to harm 'normal' trade",
+ "images": {
+ "img:72x72": {
+ "height": 72,
+ "width": 72,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FFqmXgpRbQeFUeyOFvNSGlQ--\u002FZmk9c3RyaW07aD03MjtweW9mZj0wO3E9ODA7dz03MjtzbT0xO2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen_us\u002FNews\u002FReuters\u002F2016-12-01T091822Z_1_LYNXMPECB027A_RTROPTP_2_KOREA-NORTH-USA.JPG.cf.jpg"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fchina-says-north-korea-sanctions-not-meant-harm-091822014.html",
+ "id": "7da26193-072f-325d-8842-2c8a0191d84e",
+ "publisher": "Reuters",
+ "off_network": false
+ }, {
+ "cposy": 40,
+ "is_eligible": true,
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Fun-security-council-strengthens-north-103133895.html",
+ "title": "UN Security Council strengthens North Korea sanctions",
+ "images": {
+ "img:72x72": {
+ "height": 72,
+ "width": 72,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FLou5neeIrq52Z5SKFYvzLw--\u002FZmk9c3RyaW07aD03MjtweW9mZj0wO3E9ODA7dz03MjtzbT0xO2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fd.yimg.com\u002Fhd\u002Fafpus\u002F2\u002F4\u002F19ce7942-245c-4b74-998a-881e7a64514f__1Wz8TBxC8KCxkQXSdMoBIshbTJBEOtaWP3nvpIa7CzO0i2t3oKyRsiYnZLmryU8RZkA2Sgyquk-_2_0.jpg?s=cdbf80bd3a19e34fb6cca7a7460caab0&amp;c=1d9843bde92c11fbb433931538cb85d6&amp;a=afpus&amp;mr=0"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fun-security-council-strengthens-north-103133895.html",
+ "id": "b9c24215-b9fb-3469-9554-a99ead941592",
+ "publisher": "AFP Videos",
+ "off_network": false
+ }],
+ "is_eligible": true,
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Fchina-seriously-implement-n-korea-un-sanctions-101330791.html",
+ "commentCount": 13,
+ "property": "news",
+ "categoryLabel": "World",
+ "format": "storyline",
+ "title": "China to 'seriously' implement N. Korea UN sanctions",
+ "images": {
+ "original": {
+ "height": 713,
+ "width": 1024,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FJ4wnHNkf47vrsq9YvZ_.3w--\u002FaD03MTM7dz0xMDI0O3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen_us\u002FNews\u002Fafp.com\u002FPart-HKG-Hkg9294085-1-1-0.jpg.cf.jpg"
+ },
+ "img:220x193": {
+ "height": 193,
+ "width": 220,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002F3ta3kmZHJjA.Rg6dZ8WOZw--\u002FZmk9c3RyaW07aD0xOTM7cHlvZmY9MDtxPTgwO3c9MjIwO3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen_us\u002FNews\u002Fafp.com\u002FPart-HKG-Hkg9294085-1-1-0.jpg.cf.jpg"
+ },
+ "img:440x386": {
+ "height": 386,
+ "width": 440,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FNmw6VVO9Lc4Y1Hs2CfFuMg--\u002FZmk9c3RyaW07aD0zODY7cHlvZmY9MDtxPTgwO3c9NDQwO3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen_us\u002FNews\u002Fafp.com\u002FPart-HKG-Hkg9294085-1-1-0.jpg.cf.jpg"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fchina-seriously-implement-n-korea-un-sanctions-101330791.html",
+ "id": "7c039d3f-6142-3f73-9c30-febded3e8350",
+ "publisher": "AFP",
+ "off_network": false
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 11,
+ "cposy": 41
+ },
+ "summary": "Tillamook's #RealFoodSunday is a movement that encourages people to eat more Real Food, nothing artificial, at least once a week, with an emphasis on Sunday. Tillamook invites you to join in this Sunday and—whether by shopping, cooking, or eating—share your ideas with #RealFoodSunday! There is one thing that we all have in common: the great delight we get from Real Food and the longing to share it.",
+ "instrument": "4000001230S00001",
+ "is_eligible": true,
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Fgift-idea-simple-dish-made-real-food-190144486.html",
+ "commentCount": 0,
+ "property": "news",
+ "categoryLabel": "Lifestyle",
+ "title": "Gift Idea: Simple Dish Made With Real Food",
+ "images": {
+ "original": {
+ "height": 20,
+ "width": 20,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FymwzUKJthCNZbTW0D.To0w--\u002FaD0yMDt3PTIwO3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen_us\u002FNews\u002FTakepart.com\u002Fimage_placeholder.gif"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fgift-idea-simple-dish-made-real-food-190144486.html",
+ "id": "42663747-ed56-36b1-a3fd-a950e25a9f11",
+ "publisher": "TakePart.com",
+ "off_network": false
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 12,
+ "cposy": 42
+ },
+ "summary": "The family of Trump’s pick for education secretary, Betsy DeVos, has a net worth estimated at $5.1 billion. President-elect Donald Trump, who rallied populist voters by vowing to “drain the swamp” of the Washington elite, is filling his Cabinet with people who share a familiar trait: They’re very rich. On Wednesday, Trump announced Steve Mnuchin, a former Goldman Sachs executive who served as his campaign finance chairman, as his choice for treasury secretary and Wilbur Ross, a private equity investor, as his pick for secretary of commerce.",
+ "instrument": "4000004120S00001",
+ "clusterInfo": {
+ "title": "Politics",
+ "id": "e9f30d5d-f1bd-46be-a0ce-112320f0f669",
+ "type": "storyCluster",
+ "followable": "false",
+ "userFollowing": "false"
+ },
+ "storyline": [{
+ "cposy": 43,
+ "is_eligible": true,
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Ftrumps-treasury-pick-targets-taxes-124003425.html",
+ "title": "Trump's Treasury pick targets taxes, trade reforms: media",
+ "images": {
+ "img:72x72": {
+ "height": 72,
+ "width": 72,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002F8XM7mUBfaFZco.tTMGVaTw--\u002FZmk9c3RyaW07aD03MjtweW9mZj0wO3E9ODA7dz03MjtzbT0xO2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fglobalfinance.zenfs.com\u002Fimages\u002FUS_AHTTP_REUTERS_OLUSBUS_WRAPPER_H_LIVE_NEW\u002F2016-11-30T170525Z_3_LYNXMPECAT0US_RTROPTP_3_USA-TRUMP_original.jpg.cf.jpg"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Ftrumps-treasury-pick-targets-taxes-124003425.html",
+ "id": "7ef72e1d-b019-3d00-bb9e-dc748e9f2c98",
+ "publisher": "Reuters",
+ "off_network": false
+ }, {
+ "cposy": 44,
+ "is_eligible": false,
+ "idPrefix": "SS-",
+ "url": "http:\u002F\u002Fwww.marketwatch.com\u002Fstory\u002Ftrumps-commerce-pick-ross-wants-to-fix-dumb-trade-deals-2016-11-30?siteid=yhoof2&amp;yptr=yahoo",
+ "title": "Ross, Trump’s pick for Commerce chief, wants to fix ‘dumb trade’ deals",
+ "images": {
+ "original": {
+ "height": 742,
+ "width": 1320,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002Fa9BwoUqVoqQ6LnvcO.ZJmQ--\u002FaD03NDI7dz0xMzIwO3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttp:\u002F\u002Fslingstone.zenfs.com\u002Foffnetwork\u002Ff63b0c1a967def685914cec395952194"
+ },
+ "img:72x72": {
+ "height": 72,
+ "width": 72,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FVzRwftxZGNKSbcgJdy3.oQ--\u002FZmk9c3RyaW07aD03MjtweW9mZj0wO3E9ODA7dz03MjtzbT0xO2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fslingstone.zenfs.com\u002Foffnetwork\u002Ff63b0c1a967def685914cec395952194"
+ }
+ },
+ "type": "article",
+ "link": "\u002Ffinance\u002Fm\u002F40931a8f-7766-32fb-972a-0e5cce4010b8\u002Fss_ross%2C-trump%E2%80%99s-pick-for.html",
+ "id": "40931a8f-7766-32fb-972a-0e5cce4010b8",
+ "publisher": "MarketWatch",
+ "off_network": true
+ }],
+ "is_eligible": true,
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Ftrump-fills-out-cabinet-with-millionaires-and-billionaires-195429712.html",
+ "commentCount": 4698,
+ "property": "news",
+ "categoryLabel": "Politics",
+ "format": "storyline",
+ "title": "Trump fills out Cabinet with millionaires and billionaires",
+ "images": {
+ "original": {
+ "height": 498,
+ "width": 744,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002Fs1q446NF04y_dZtc0YFHYw--\u002FaD00OTg7dz03NDQ7c209MTthcHBpZD15dGFjaHlvbg--\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen\u002Fhomerun\u002Ffeed_manager_auto_publish_494\u002F8fd4a9cd64a49401c32b71f260825423"
+ },
+ "img:220x193": {
+ "height": 193,
+ "width": 220,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FoGO0fqiXxjVPOA9wK1rQLg--\u002FZmk9c3RyaW07aD0xOTM7cHlvZmY9MDtxPTgwO3c9MjIwO3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen\u002Fhomerun\u002Ffeed_manager_auto_publish_494\u002F8fd4a9cd64a49401c32b71f260825423"
+ },
+ "img:440x386": {
+ "height": 386,
+ "width": 440,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FPTWOFOoljW.WIYLC2PP3OA--\u002FZmk9c3RyaW07aD0zODY7cHlvZmY9MDtxPTgwO3c9NDQwO3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen\u002Fhomerun\u002Ffeed_manager_auto_publish_494\u002F8fd4a9cd64a49401c32b71f260825423"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Ftrump-fills-out-cabinet-with-millionaires-and-billionaires-195429712.html",
+ "id": "56f15884-3bb3-3122-a21b-5e1e8f6185fc",
+ "publisher": "Yahoo News",
+ "off_network": false
+ }, {
+ "i13n": {
+ "bpos": 1,
+ "cpos": 13,
+ "cposy": 45
+ },
+ "summary": "An argument between two women in a parking lot in south Los Angeles turned (even more) violent when one of the people involved began throwing fists, which led to one of the ladies jumping into a Toyota RAV4 and taking aim at the other person and another car. Thanks to a video shared to the YouTube channel \"GrindFace TV,\" we can see that the fight escalated to the point that the woman took to repeatedly driving her RAV4 into a BMW X3, leaving both cars severely damaged. After leaving the parking lot, the driver in the RAV4 struck a fire hydrant causing a rather spectacular geyser of water to shoot out of the ground.",
+ "instrument": "4000012760S00001",
+ "clusterInfo": {
+ "title": "U.S.",
+ "id": "0687115b-6287-4ea1-99d8-44ef7e82a403",
+ "type": "storyCluster",
+ "followable": "false",
+ "userFollowing": "false"
+ },
+ "is_eligible": true,
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Fwatch-woman-turn-her-suv-182510048.html",
+ "commentCount": 4627,
+ "property": "news",
+ "categoryLabel": "U.S.",
+ "title": "Watch This Woman Turn Her SUV Into a Battering Ram in a Parking Lot Fight",
+ "images": {
+ "original": {
+ "height": 600,
+ "width": 800,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FdOIaz3DcePWDMHuWL6iZzA--\u002FaD02MDA7dz04MDA7c209MTthcHBpZD15dGFjaHlvbg--\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen-US\u002Fhomerun\u002Fthe_drive_165\u002Fd8b3b02b586e6f32a6b108fa7e058a7a.cf.jpg"
+ },
+ "img:220x123": {
+ "height": 123,
+ "width": 220,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FIlTIe2sWvV.uTCHYzOaU4A--\u002FZmk9c3RyaW07aD0xMjM7cHlvZmY9MDtxPTgwO3c9MjIwO3NtPTE7YXBwaWQ9eXRhY2h5b24-\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen-US\u002Fhomerun\u002Fthe_drive_165\u002Fd8b3b02b586e6f32a6b108fa7e058a7a.cf.jpg"
+ }
+ },
+ "type": "article",
+ "link": "\u002Fnews\u002Fwatch-woman-turn-her-suv-182510048.html",
+ "id": "d492a43f-ec1a-34fd-b35e-58cfb2d5d32a",
+ "publisher": "The Drive",
+ "off_network": false
+ }],
+ "view": "mega",
+ "ccode_fptoday": "mega_news_ntk",
+ "ccode": "mega_news_ntk",
+ "comscore": "pageview_candidate",
+ "more": 132,
+ "more_items": [{
+ "instrument": "4000003400S00001",
+ "id": "78bc050c-4398-3260-87ba-86c59e4da4e1",
+ "is_eligible": true
+ }, {
+ "instrument": "4000007000S00001",
+ "id": "7acd57c4-10a8-3511-b570-1e85f90f7683",
+ "is_eligible": true
+ }, {
+ "instrument": "4000003290S00001",
+ "id": "27f8af5d-1184-356d-84d3-c09d638f4f48",
+ "is_eligible": true
+ }, {
+ "instrument": "4000005030S00001",
+ "id": "5e533fd4-a6cc-35f4-bbf6-571710adbd1a",
+ "is_eligible": true
+ }, {
+ "instrument": "4000008570S00001",
+ "id": "6c1d2e32-3d0a-3510-8092-7cbead3697bc",
+ "is_eligible": true
+ }, {
+ "instrument": "4000003440S00001",
+ "id": "d2035903-a9aa-39fe-8eb6-38b6142dab52",
+ "is_eligible": true
+ }, {
+ "instrument": "4000010490S00001",
+ "id": "d3d5d1ed-bfca-387f-b7d4-feb2cdd5cfde",
+ "is_eligible": true
+ }, {
+ "instrument": "4000011070S00001",
+ "id": "bbf3eb05-75f5-39d0-a4c6-ad4ff6d24e57",
+ "is_eligible": true
+ }, {
+ "instrument": "4000016730S00004",
+ "id": "7bbca0f5-34dc-3150-8906-46520d1575e9",
+ "is_eligible": true
+ }, {
+ "instrument": "4000003440S00001",
+ "id": "2cb31d4a-6a8c-3bde-96ae-5a609463e07d",
+ "is_eligible": true
+ }, {
+ "instrument": "4000002970S00001",
+ "id": "bf4cab06-2ce6-3f70-ad52-d41e63fffbbc",
+ "is_eligible": true
+ }, {
+ "instrument": "4000014230S00001",
+ "id": "42a62c97-44c5-3bf1-b7f5-98014054409a",
+ "is_eligible": true
+ }, {
+ "instrument": "4000002090S00001",
+ "id": "b990bf57-be67-3859-9673-538c11b7ad72",
+ "is_eligible": true
+ }, {
+ "instrument": "4000001240S00001",
+ "id": "9267681e-a517-3a93-a697-e859ddcf82fa",
+ "is_eligible": true
+ }, {
+ "instrument": "4000006100S00002",
+ "id": "967b3b63-d18b-324f-a49e-43936bac1b68",
+ "is_eligible": true
+ }, {
+ "instrument": "4000001570S00001",
+ "id": "a28946aa-e1e5-3e44-9807-f4d54f91c274",
+ "is_eligible": true
+ }, {
+ "instrument": "4000010480S00001",
+ "id": "a1a3ad15-c600-36c8-bd6a-420719120c88",
+ "is_eligible": true
+ }, {
+ "instrument": "4000013670S00004",
+ "id": "7f079b8a-ae47-3038-861f-903add86d3c8",
+ "is_eligible": true
+ }, {
+ "instrument": "4000001020S00001",
+ "id": "106a5a46-cb20-3b1c-a866-11d23a9a6ffa",
+ "is_eligible": true
+ }, {
+ "instrument": "4000008980S00001",
+ "id": "8914e515-4dd4-3770-b817-2c18cc1a1d2b",
+ "is_eligible": true
+ }, {
+ "instrument": "4000012560S00001",
+ "id": "bad4d796-5800-3ef7-800f-e36f2af23b13",
+ "is_eligible": true
+ }, {
+ "instrument": "4000002360S00001",
+ "id": "b9f90258-3c9a-3496-abc3-fef26f866153",
+ "is_eligible": true
+ }, {
+ "instrument": "4000003870S00001",
+ "id": "4f961ce1-9062-3a7a-afad-68eb9cc3b59e",
+ "is_eligible": true
+ }, {
+ "instrument": "4000005360S00001",
+ "id": "aae8ae71-3a83-34ba-9cf5-cc8ebbdcfa5b",
+ "is_eligible": true
+ }, {
+ "instrument": "4000009450S00002",
+ "id": "46deb5e5-576d-3741-8277-f309915d7000",
+ "is_eligible": true
+ }, {
+ "instrument": "4000001510S00001",
+ "id": "ef7a34b1-ef7c-357e-bd2f-01d4062d8367",
+ "is_eligible": true
+ }, {
+ "instrument": "4000001150S00001",
+ "id": "73cbccd8-5c90-3305-879b-7e3f9780c6bf",
+ "is_eligible": true
+ }, {
+ "instrument": "4000017200S00001",
+ "id": "0e06ac4e-80e9-356b-863c-21ee4ae6ddd7",
+ "is_eligible": true
+ }, {
+ "instrument": "4000001380S00001",
+ "id": "8c97d42e-82aa-327d-96fc-49cbddfe3fe5",
+ "is_eligible": true
+ }, {
+ "instrument": "4000003660S00001",
+ "id": "f2770aa1-f34e-3dc4-90c3-20182e600649",
+ "is_eligible": true
+ }, {
+ "instrument": "4000000730S00001",
+ "id": "5de27645-4845-3ab4-bf94-6738bb032748",
+ "is_eligible": true
+ }, {
+ "instrument": "4000001660S00001",
+ "id": "f9f628ed-6e16-3cf0-8e64-417b019c2d5b",
+ "is_eligible": true
+ }, {
+ "instrument": "4000000870S00001",
+ "id": "30ef8647-ee0b-36dc-82c7-b46dbe705658",
+ "is_eligible": true
+ }, {
+ "instrument": "4000000810S00001",
+ "id": "81608630-fe62-301f-a8bc-3fd34f403dab",
+ "is_eligible": true
+ }, {
+ "instrument": "4000007810S00002",
+ "id": "a8dc24ea-f7ac-3580-b5cc-e89869a6d15c",
+ "is_eligible": true
+ }, {
+ "instrument": "4000003610S00001",
+ "id": "8e8e88f4-8454-30ab-9356-7b78ea739fea",
+ "is_eligible": true
+ }, {
+ "instrument": "4000008390S00001",
+ "id": "515b1b83-bc32-371e-92de-26b5c419874f",
+ "is_eligible": true
+ }, {
+ "instrument": "4000018690S00001",
+ "id": "8d1fca83-2e44-362a-b3d2-93eae06be502",
+ "is_eligible": true
+ }, {
+ "instrument": "4000001430S00001",
+ "id": "dcd575cc-f9e0-372a-98fc-58380b0205f1",
+ "is_eligible": true
+ }, {
+ "instrument": "4000000650S00001",
+ "id": "4de348d9-4173-3739-8e8e-c5e1fe4da7b5",
+ "is_eligible": true
+ }, {
+ "instrument": "4000001890S00001",
+ "id": "c2c6234c-325f-384d-9dad-39f57b87c1da",
+ "is_eligible": true
+ }, {
+ "instrument": "4000009290S00001",
+ "id": "5b943383-41d4-3060-a91e-911aedaf4f11",
+ "is_eligible": true
+ }, {
+ "instrument": "4000012880S00004",
+ "id": "00bc3fe8-55b5-3fb3-b2de-82c513c29fd3",
+ "is_eligible": true
+ }, {
+ "instrument": "4000014650S00002",
+ "id": "a42e3854-01d6-345b-87ae-e5e1fb361618",
+ "is_eligible": true
+ }, {
+ "instrument": "4000025500S00001",
+ "id": "1f4cc2ae-29c1-39b4-a326-293a2e46b752",
+ "is_eligible": true
+ }, {
+ "instrument": "4000001070S00001",
+ "id": "862a1eef-4ed4-3b5f-a876-4c3668125106",
+ "is_eligible": true
+ }, {
+ "instrument": "4000010240S00001",
+ "id": "51ae6ca8-be79-3386-8d3e-e13ffaee0ef2",
+ "is_eligible": true
+ }, {
+ "instrument": "4000001460S00001",
+ "id": "dc4206cd-5ab5-3b97-b970-75a4a702eeca",
+ "is_eligible": true
+ }, {
+ "instrument": "4000025180S00001",
+ "id": "a1cdd86a-d306-3330-a4bf-be2e83f20ede",
+ "is_eligible": true
+ }, {
+ "instrument": "4000003520S00001",
+ "id": "214807f9-0fbe-3918-9f77-5a84d3282fc5",
+ "is_eligible": true
+ }, {
+ "instrument": "4000013820S00001",
+ "id": "40b08793-0537-3588-a2d6-40b44f52e735",
+ "is_eligible": true
+ }, {
+ "instrument": "4000010830S00001",
+ "id": "5fccf088-1964-35e3-9ef8-5b775a86de1f",
+ "is_eligible": true
+ }, {
+ "instrument": "4000005860S00001",
+ "id": "5fbdbc93-b361-37e4-a3c1-1efbc4b4543c",
+ "is_eligible": true
+ }, {
+ "instrument": "4000001580S00001",
+ "id": "8aa86688-e840-33ab-85a3-0113ac222795",
+ "is_eligible": true
+ }, {
+ "instrument": "4000018180S00004",
+ "id": "b75a6b50-cd2e-38b3-aab8-e4b2bbafd839",
+ "is_eligible": true
+ }, {
+ "instrument": "4000001880S00001",
+ "id": "df41c3f7-8005-3755-86d5-506b64e3cc9d",
+ "is_eligible": true
+ }, {
+ "instrument": "4000002190S00001",
+ "id": "646be07d-b765-3b59-8d3c-5eab0bc1300b",
+ "is_eligible": true
+ }, {
+ "instrument": "4000007090S00001",
+ "id": "d78895bc-2361-398d-bdcb-5e5049793d1d",
+ "is_eligible": true
+ }, {
+ "instrument": "4000001660S00001",
+ "id": "9ed39cd1-0fca-3d21-ad84-755291ecedcd",
+ "is_eligible": true
+ }, {
+ "instrument": "4000002440S00001",
+ "id": "c4820bac-43d9-35b5-b9e8-970518ac2cd9",
+ "is_eligible": true
+ }, {
+ "instrument": "4000000980S00001",
+ "id": "d69c28e1-2155-37c7-99d4-3772eca06691",
+ "is_eligible": true
+ }, {
+ "instrument": "4000007820S00001",
+ "id": "3feefb5a-62fb-36f3-91d1-294bcf3b31ef",
+ "is_eligible": true
+ }, {
+ "instrument": "4000013010S00002",
+ "id": "d9691260-55e7-3848-b406-a6c874438a62",
+ "is_eligible": true
+ }, {
+ "instrument": "4000001620S00004",
+ "id": "e2ebeffe-b89a-38d2-97f1-178a2fe21c1d",
+ "is_eligible": true
+ }, {
+ "instrument": "4000006140S00001",
+ "id": "34a628cd-483a-374b-a311-1833fa25c663",
+ "is_eligible": true
+ }, {
+ "instrument": "4000010450S00001",
+ "id": "357f988b-674f-3b5c-85e4-16f57c0b8b33",
+ "is_eligible": true
+ }, {
+ "instrument": "4000001850S00001",
+ "id": "799fda32-72fe-3400-87c1-36bf23a41125",
+ "is_eligible": true
+ }, {
+ "instrument": "4000001790S00001",
+ "id": "add2927f-e0f2-358c-b18c-6a30320bb557",
+ "is_eligible": true
+ }, {
+ "instrument": "4000007280S00001",
+ "id": "e1bf8f96-10c7-3680-b127-c683838e04cc",
+ "is_eligible": true
+ }, {
+ "instrument": "4000001310S00001",
+ "id": "f42ad56d-913f-35d4-a4e2-a6593e5fba2a",
+ "is_eligible": true
+ }, {
+ "instrument": "4000002600S00001",
+ "id": "5e3f2f7c-15c0-3338-9fc8-bbbd0ae9371c",
+ "is_eligible": true
+ }, {
+ "instrument": "4000005030S00001",
+ "id": "1dad9fd5-0c54-3090-8b54-758088b6613e",
+ "is_eligible": true
+ }, {
+ "instrument": "4000000580S00001",
+ "id": "85493045-6a66-309d-806a-3ab2f2a57346",
+ "is_eligible": true
+ }, {
+ "instrument": "4000002570S00001",
+ "id": "81343e2a-66ad-339e-be2e-e3b3c0431bb9",
+ "is_eligible": true
+ }, {
+ "instrument": "4000023750S00001",
+ "id": "92e245ff-e6c5-324c-b22d-c5057afe760d",
+ "is_eligible": true
+ }, {
+ "instrument": "4000000830S00001",
+ "id": "6fac31ab-c7eb-3165-a133-f3e806f22f9b",
+ "is_eligible": true
+ }, {
+ "instrument": "4000002720S00001",
+ "id": "efbe59b2-cc94-3c34-97ea-23b3290dffbb",
+ "is_eligible": true
+ }, {
+ "instrument": "4000002220S00001",
+ "id": "6c891f1b-6708-3aaf-9de5-ce8971784f97",
+ "is_eligible": true
+ }, {
+ "instrument": "4000011450S00004",
+ "id": "1df5d021-e053-34af-8641-cc2a2433dbce",
+ "is_eligible": true
+ }, {
+ "instrument": "4000000840S00001",
+ "id": "65cee365-0c21-38b6-95bc-6be2ab1a6dbb",
+ "is_eligible": true
+ }, {
+ "instrument": "4000022130S00001",
+ "id": "a8fed905-f24e-3fc3-bbc2-5dfc8dad371d",
+ "is_eligible": true
+ }, {
+ "instrument": "4000001680S00001",
+ "id": "51f667a0-5a5e-3316-86e2-17902e63249f",
+ "is_eligible": true
+ }, {
+ "instrument": "4000011450S00002",
+ "id": "ccce4c73-e627-34e8-97ed-f53bf961287a",
+ "is_eligible": true
+ }, {
+ "instrument": "4000001460S00001",
+ "id": "687b44ff-cd40-3c4c-81ad-4b803d4e7adf",
+ "is_eligible": true
+ }, {
+ "instrument": "4000002110S00001",
+ "id": "e2fa5ac3-f52c-3d75-913c-2a9c1a209bb6",
+ "is_eligible": true
+ }, {
+ "instrument": "4000024610S00001",
+ "id": "88b8f783-a7a6-315c-b699-8891813e786f",
+ "is_eligible": true
+ }, {
+ "instrument": "4000014670S00002",
+ "id": "a6135ede-b775-3135-8e25-87950657299e",
+ "is_eligible": true
+ }, {
+ "instrument": "4000008040S00001",
+ "id": "afe9ca16-555b-3962-9221-38229f7897a8",
+ "is_eligible": true
+ }, {
+ "instrument": "4000010750S00001",
+ "id": "6af775cd-f409-3c5b-81d9-66e624f75c51",
+ "is_eligible": true
+ }, {
+ "instrument": "4000000920S00001",
+ "id": "bc2c4697-1a13-38dd-a6c1-78f9e0b46253",
+ "is_eligible": true
+ }, {
+ "instrument": "4000004830S00001",
+ "id": "9d71d597-5d63-3cff-ac84-2b33e15e6629",
+ "is_eligible": true
+ }, {
+ "instrument": "4000004110S00001",
+ "id": "5572b5bc-1904-343d-b1ee-0d32a3394bf3",
+ "is_eligible": true
+ }, {
+ "instrument": "4000019420S00001",
+ "id": "96ad77e9-d0fe-38a5-b884-48900ca01948",
+ "is_eligible": true
+ }, {
+ "instrument": "4000001660S00001",
+ "id": "3e5c3630-aff6-3c18-bfd3-b0c4a027ef63",
+ "is_eligible": true
+ }, {
+ "instrument": "4000007220S00001",
+ "id": "cd911e14-eb6f-3aee-ae9c-4b2334a755ab",
+ "is_eligible": true
+ }, {
+ "instrument": "4000001900S00001",
+ "id": "661b14c8-d1d7-3c47-a621-54ccfea5757a",
+ "is_eligible": true
+ }, {
+ "instrument": "4000001800S00004",
+ "id": "6cff4098-0ccb-3553-983d-2622b172ec0c",
+ "is_eligible": true
+ }, {
+ "instrument": "4000000000S00004",
+ "id": "0fa08536-4b79-353b-ac38-7441bf5aaa8f",
+ "is_eligible": true
+ }, {
+ "instrument": "4000002740S00001",
+ "id": "b5c50135-ca16-3c32-961c-002cf1f98410",
+ "is_eligible": true
+ }, {
+ "instrument": "4000000660S00001",
+ "id": "f306cd92-1274-39ec-8ea8-ca433c456e4f",
+ "is_eligible": true
+ }, {
+ "instrument": "4000002970S00001",
+ "id": "956312eb-0ac0-3ab4-9f56-83ad7d012829",
+ "is_eligible": true
+ }, {
+ "instrument": "4000002580S00001",
+ "id": "08803ed3-c420-34e9-be52-d5497e20dcb3",
+ "is_eligible": true
+ }, {
+ "instrument": "4000012040S00001",
+ "id": "0853c09f-6d49-3cfe-b312-b14fbfd9ce36",
+ "is_eligible": true
+ }, {
+ "instrument": "4000011320S00001",
+ "id": "7624ca2f-e423-3572-9b17-f640ec2d4a73",
+ "is_eligible": true
+ }, {
+ "instrument": "4000004660S00002",
+ "id": "bfa37b7a-6646-3f58-b77f-e15a9f66935d",
+ "is_eligible": true
+ }, {
+ "instrument": "4000011220S00001",
+ "id": "02c96133-bb44-37e8-b9ae-6dbc0a1d2856",
+ "is_eligible": true
+ }, {
+ "instrument": "4000002330S00001",
+ "id": "f86e6415-21b7-3cbd-9a7b-526f10f1d06f",
+ "is_eligible": true
+ }, {
+ "instrument": "4000009250S00001",
+ "id": "fef96954-ba46-3489-99ce-36088aa7083b",
+ "is_eligible": true
+ }, {
+ "instrument": "4000002870S00001",
+ "id": "80ba3b58-cbc8-3f0f-a3bb-1737a1ec43fc",
+ "is_eligible": true
+ }, {
+ "instrument": "4000003020S00001",
+ "id": "c87dc4fe-f28a-3d6d-8199-368c34132172",
+ "is_eligible": true
+ }, {
+ "instrument": "4000009140S00001",
+ "id": "84d04efc-d332-3dcb-bcfa-09577469161d",
+ "is_eligible": true
+ }, {
+ "instrument": "4000009610S00001",
+ "id": "4092fbb6-cf92-3b00-8aad-2175efb4483a",
+ "is_eligible": true
+ }, {
+ "instrument": "4000001440S00001",
+ "id": "c3d2764d-2a02-3adb-8276-908219e0c0f6",
+ "is_eligible": true
+ }, {
+ "instrument": "4000001410S00001",
+ "id": "f1c3c50a-d099-3ef3-8fd3-54ede3e6322a",
+ "is_eligible": true
+ }, {
+ "instrument": "4000015270S00001",
+ "id": "44ee4f60-56c8-31d8-aaa6-70ad2a3c7e5d",
+ "is_eligible": true
+ }, {
+ "instrument": "4000003380S00001",
+ "id": "a017da9c-db57-334a-9fd2-fdcb72ad37bf",
+ "is_eligible": true
+ }, {
+ "instrument": "4000002270S00001",
+ "id": "966fb623-3987-3be1-abf6-a7d468fd3d03",
+ "is_eligible": true
+ }, {
+ "instrument": "4000007780S00001",
+ "id": "11569f24-6ea0-35b4-9920-1b237b4b3090",
+ "is_eligible": true
+ }, {
+ "instrument": "4000004670S00001",
+ "id": "591d58b5-1303-3bf1-86df-b25bbbc2ade7",
+ "is_eligible": true
+ }, {
+ "instrument": "4000004630S00001",
+ "id": "5769a031-356d-33a2-8cee-3aaf77e2fb2c",
+ "is_eligible": true
+ }, {
+ "instrument": "4000002760S00001",
+ "id": "8d4e01d4-0558-321a-af27-1d664b2d698b",
+ "is_eligible": true
+ }, {
+ "instrument": "4000002570S00001",
+ "id": "3d71d584-8d9f-33c4-8373-e7ec578caea3",
+ "is_eligible": true
+ }, {
+ "instrument": "4000020890S00001",
+ "id": "54cce57a-ade5-3628-96b3-f2f18a83884b",
+ "is_eligible": true
+ }, {
+ "instrument": "4000003390S00001",
+ "id": "7d645806-8767-3376-9e98-baf5a0b38469",
+ "is_eligible": true
+ }, {
+ "instrument": "4000019880S00001",
+ "id": "f9d25756-7761-3d7c-8ab3-8716ced5e4d0",
+ "is_eligible": true
+ }, {
+ "instrument": "4000002820S00001",
+ "id": "c340c6d2-64ae-3c0d-b8c2-1ad029a3e929",
+ "is_eligible": true
+ }, {
+ "instrument": "4000002970S00001",
+ "id": "ab3f35bd-4a90-340b-a167-85bf87eaa7ab",
+ "is_eligible": true
+ }, {
+ "instrument": "4000005600S00001",
+ "id": "2ec0cc1c-e04b-3bed-9171-ffb5883fd35f",
+ "is_eligible": true
+ }, {
+ "instrument": "4000001090S00001",
+ "id": "2166cc45-411f-3cd6-9d5f-43da43615b99",
+ "is_eligible": true
+ }, {
+ "instrument": "4000000920S00001",
+ "id": "02208141-ac6f-3e53-bcca-03031ac0639d",
+ "is_eligible": true
+ }, {
+ "instrument": "4000009040S00001",
+ "id": "86790cec-d0ff-3843-a0f9-3a0ca04d2a08",
+ "is_eligible": true
+ }, {
+ "instrument": "4000004880S00001",
+ "id": "0e4b1085-060f-38ce-83ac-29b9c86062bd",
+ "is_eligible": true
+ }],
+ "components": [{
+ "name": "StreamHeroCarousel",
+ "bundleName": "tdv2-applet-stream-hero.carousel",
+ "props": {
+ "componentConfig": {
+ "leadDimension": "img:672x378",
+ "moreItemsModulus": 6,
+ "moreDimension": "img:412x232",
+ "resizeTag": ["img:672x378|2|80", "img:412x232|1|80"],
+ "showSummary": true,
+ "ui": {
+ "share_buttons": {
+ "buttons_to_show": ["tumblr", "facebook", "twitter", "mail"],
+ "enable": true,
+ "mail_host": "www.yahoo.com"
+ },
+ "rotationEnabled": false,
+ "rotationInterval": 6000,
+ "comments_count": 3,
+ "smart_crop": true,
+ "video_autoplay_enabled": false,
+ "follow_content": true,
+ "sports_morelink_enabled": false,
+ "comments": true,
+ "enable_canvass_comments": true,
+ "reblog": false,
+ "minMoreItems": 3,
+ "show_comments_drawer": false,
+ "lead": null,
+ "video_enabled": false
+ }
+ }
+ }
+ }, {
+ "name": "MegaItem",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "StreamAd",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "MegaItem",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "MegaItem",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "MegaItem",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "StreamAd",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "MegaItem",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "MegaItem",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "MegaItem",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "MegaItem",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "MegaItem",
+ "bundleName": "tdv2-applet-stream"
+ }, {
+ "name": "MegaItem",
+ "bundleName": "tdv2-applet-stream"
+ }],
+ "ss_id": "218f2c20-0dd7-4ed1-a25c-227d27b11eb3",
+ "category": "YPROP:NEWS"
+ },
+ "ts": 1480670950.686,
+ "cposy": 46
+ }
+ }
+ },
+ "UserStore": {
+ "guid": "",
+ "login": "",
+ "alias": "",
+ "firstName": "",
+ "comscoreC14": -1,
+ "isSignedIn": false,
+ "isRecognized": false,
+ "isLoaded": true
+ },
+ "ProfileStore": {
+ "err": null,
+ "guid": "",
+ "profileUrl": "",
+ "userProfile": {
+ "nickName": "",
+ "imageUrl": ""
+ },
+ "_isLoaded": false
+ },
+ "FollowAuthorStore": {
+ "authors": [{
+ "name": "Katie Couric",
+ "imgUrl": "https:\u002F\u002Fs.yimg.com\u002Fdh\u002Fap\u002Fdefault\u002F160914\u002Fkc2.jpg",
+ "url": "#",
+ "authorUrl": "https:\u002F\u002Fwww.yahoo.com\u002Fkatiecouric\u002F",
+ "listId": "98c14b1e-8c70-46db-987f-a15041641f07",
+ "headlines": [{
+ "externalLink": null,
+ "title": "New Yorkers post their feelings about Trump election in subway",
+ "summary": "Following the unexpected election of Donald Trump as president of the United States, New Yorkers have taken to the subway to express their feelings through Post-its. The project, started by “subway therapist” Matthew Chavez, allows strangers of all ages to share their feelings about Trump’s victory and",
+ "url": "\u002Fnews\u002Fnew-yorkers-post-their-feelings-about-trump-election-in-subway-230210113.html",
+ "imageSize": {},
+ "provider": "",
+ "type": "article",
+ "uuid": "4cd95320-4c2e-36d9-be35-9e77e2b7749a",
+ "published": "2016-11-10T23:02:10Z",
+ "entities": [{
+ "term": "WIKIID:Donald_Trump",
+ "label": "Donald Trump",
+ "capAbtScore": "0.991"
+ }, {
+ "term": "WIKIID:President_of_the_United_States",
+ "label": "president of the United States",
+ "capAbtScore": "0.846"
+ }],
+ "categories": [{
+ "term": "YCT:001000661",
+ "score": "0.961332",
+ "label": "Politics &amp; Government"
+ }, {
+ "term": "YCT:001000671",
+ "score": "0.942857",
+ "label": "Elections"
+ }],
+ "tags": null,
+ "author": "Katie Couric"
+ }]
+ }, {
+ "name": "Michael Isikoff",
+ "imgUrl": "https:\u002F\u002Fs.yimg.com\u002Fdh\u002Fap\u002Fdefault\u002F160914\u002Fmi2.jpg",
+ "url": "#",
+ "authorUrl": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Ftagged\u002Fmichael-isikoff",
+ "listId": "827f74ce-95bd-4dbc-86c4-a41ec6b4e731",
+ "headlines": [{
+ "externalLink": null,
+ "title": "Trump’s inauguration: ticket packages, $25,000 to $1 million",
+ "summary": "Want to attend a ladies luncheon with Melania Trump? Easy: Simply plunk down $1 million to the Trump inaugural committee — a gift that guarantees high-rolling donors and corporate executives special access to the new leadership about to take over in Washington. A copy of the package deals offered by",
+ "url": "\u002Fnews\u002Ftrumps-inauguration-ticket-prices-25000-to-1-million-013543267.html",
+ "image": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FEfUJ7Bja.l0vxRV7Dn2oSA--\u002FaD0xMTI0O3c9MjA0ODtzbT0xO2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen\u002Fhomerun\u002Ffeed_manager_auto_publish_494\u002Ff872e6d8729d9277046d72f95e2e7d0e",
+ "image_assets": {
+ "width": 2048,
+ "height": 1124,
+ "ratio": 1.8220640569395017,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FEfUJ7Bja.l0vxRV7Dn2oSA--\u002FaD0xMTI0O3c9MjA0ODtzbT0xO2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen\u002Fhomerun\u002Ffeed_manager_auto_publish_494\u002Ff872e6d8729d9277046d72f95e2e7d0e",
+ "tag": "size=original",
+ "image_asset_type": "tile"
+ },
+ "imageSize": {
+ "original": {
+ "width": 2048,
+ "height": 1124,
+ "ratio": 1.8220640569395017,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002FEfUJ7Bja.l0vxRV7Dn2oSA--\u002FaD0xMTI0O3c9MjA0ODtzbT0xO2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen\u002Fhomerun\u002Ffeed_manager_auto_publish_494\u002Ff872e6d8729d9277046d72f95e2e7d0e",
+ "tag": "size=original",
+ "image_asset_type": "tile"
+ }
+ },
+ "provider": "Yahoo News",
+ "type": "article",
+ "uuid": "1864f375-5428-32d3-966e-30b790fbc00a",
+ "published": "2016-11-30T01:35:43Z",
+ "entities": [{
+ "term": "WIKIID:Melania_Trump",
+ "label": "Melania Trump",
+ "capAbtScore": "0.996"
+ }, {
+ "term": "WIKIID:Mike_Pence",
+ "label": "Mike Pence",
+ "capAbtScore": "0.93"
+ }],
+ "categories": {
+ "term": "YCT:001000661",
+ "score": "0.961332",
+ "label": "Politics &amp; Government"
+ },
+ "tags": null,
+ "author": "Michael Isikoff"
+ }]
+ }, {
+ "name": "Matt Bai",
+ "imgUrl": "https:\u002F\u002Fs.yimg.com\u002Fdh\u002Fap\u002Fdefault\u002F160914\u002Fmb2.jpg",
+ "url": "#",
+ "authorUrl": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Ftagged\u002Fmatt-bai",
+ "listId": "f0462a32-6855-4ed3-b7f8-74fc942db55a",
+ "headlines": [{
+ "externalLink": null,
+ "title": "The real problem behind fake news",
+ "summary": "To the list of historic firsts that Donald Trump seems to rack up daily, we can now add this: He is the first candidate in the annals of American politics to allege massive fraud in an election he actually won. Trump took to Twitter last weekend to declare that he would have won not just the presidency",
+ "url": "\u002Fnews\u002Fthe-real-problem-behind-fake-news-233047332.html",
+ "image": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002F4C3JxA877hltgsyfIa5Tlw--\u002FaD0xMzA2O3c9MjA0ODtzbT0xO2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen\u002Fhomerun\u002Ffeed_manager_auto_publish_494\u002F81b22090997517ac847979e73311ea5e",
+ "image_assets": {
+ "width": 2048,
+ "height": 1306,
+ "ratio": 1.5681470137825422,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002F4C3JxA877hltgsyfIa5Tlw--\u002FaD0xMzA2O3c9MjA0ODtzbT0xO2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen\u002Fhomerun\u002Ffeed_manager_auto_publish_494\u002F81b22090997517ac847979e73311ea5e",
+ "tag": "size=original",
+ "image_asset_type": "tile"
+ },
+ "imageSize": {
+ "original": {
+ "width": 2048,
+ "height": 1306,
+ "ratio": 1.5681470137825422,
+ "url": "https:\u002F\u002Fs.yimg.com\u002Fuu\u002Fapi\u002Fres\u002F1.2\u002F4C3JxA877hltgsyfIa5Tlw--\u002FaD0xMzA2O3c9MjA0ODtzbT0xO2FwcGlkPXl0YWNoeW9u\u002Fhttp:\u002F\u002Fmedia.zenfs.com\u002Fen\u002Fhomerun\u002Ffeed_manager_auto_publish_494\u002F81b22090997517ac847979e73311ea5e",
+ "tag": "size=original",
+ "image_asset_type": "tile"
+ }
+ },
+ "provider": "Yahoo News",
+ "type": "article",
+ "uuid": "d2f3360c-0b71-3ffc-93fd-fdbb2856551c",
+ "published": "2016-11-30T23:30:47Z",
+ "entities": [{
+ "term": "WIKIID:Donald_Trump",
+ "label": "Donald Trump",
+ "capAbtScore": "0.985"
+ }, {
+ "term": "WIKIID:Social_media",
+ "label": "social media",
+ "capAbtScore": "0.843"
+ }],
+ "categories": null,
+ "tags": null,
+ "author": "Matt Bai"
+ }]
+ }],
+ "categories": {},
+ "headlines": {
+ "": []
+ },
+ "pageCategory": ""
+ },
+ "ThemeStore": {
+ "last_accessed_cache_key": "-588364899",
+ "data": {
+ "-588364899": {
+ "uh": {
+ "help": {
+ "style": {
+ "icon": {
+ "settings": {
+ "color": "#400090",
+ "content": "D(n) Lh(2.6) Mstart(4px)",
+ "wrapper": "D(ib)"
+ }
+ }
+ }
+ },
+ "notifications": {
+ "style": {
+ "notificationsCount": {
+ "wrapper_1": "Bgc(mailBadge) Bdrs(11px) C(#fff) Start(30px) Fz(11px) Fw(b) Pos(a) Py(4px) Ta(c) T(-8px) W(22px)"
+ }
+ }
+ },
+ "search": {
+ "style": {
+ "cancel_button": {
+ "content": "D(n)"
+ },
+ "container": {
+ "content": "M(0) P(0)",
+ "wrapper": "Mend(375px) Mstart(194px) Maw(595px) H(35px) Maw(745px)--sm1024 Trstf(eo) Trsde(0s) Trsdu(0.14s) Trsp(a)"
+ },
+ "table": {
+ "wrapper": "Bdcl(s)"
+ },
+ "input": {
+ "content": "Bdc(searchBdr) glow_Bdc(searchBtnGlow) Bdc(searchBdrFoc):f Bdrs(2px)! ie-7_H(18px) ie-7_Lh(18px) ie-8_Lh(18px) ie-7_W(92%) H(35px) scrollDown_H(35px) Px(10px) glowing_Trs(searchMegaTransition)"
+ },
+ "search_button": {
+ "inline_1": {
+ "filter": "chroma(color=#000000)",
+ "WebkitFontSmoothing": "antialiased"
+ },
+ "inline_2": {
+ "boxShadow": "inset 0 -2px 0 0 #000000"
+ },
+ "content_1": "Bdrs(3px) Bdw(0) glowing_Trs(searchMegaTransition) Bxsh(customShadowMegaSearchButton) glow_Bgc(searchBtnGlow) Bxsh(searchBtnShadow) glow_Bxsh(searchBtnShadowGlow) C(#fff) Fz(16px) two-btn_Fz(13px) H(35px) ie-7_Lh(18px) ie-8_Lh(18px) Lh(5px) Fw(500) Whs(nw) P(0)! My(0)! Mstart(5px) Mend(0)! scrollDown_H(35px) Py(0) Ta(c) Td(n) Va(t) W(140px) Zoom",
+ "content_2": "Bgc(searchBtn) Bgc(searchBtnHvr):h",
+ "content_3": "Bg(#363f80)"
+ },
+ "magnifying_glass": {
+ "color": "#000"
+ }
+ }
+ },
+ "profile": {
+ "style": {
+ "account_info": {
+ "alias": "C(textColor) Ell Maw(160px)",
+ "content": "C(#0078ff) C(#0078ff):h C(#0078ff):v D(ib) Fz(13px) My(2px)",
+ "name": "C(textColor) Ell Fw(b) Fz(13px) Maw(160px)",
+ "wrapper": "P(16px)"
+ },
+ "avatar": {
+ "content": "Lh(userNavTextLh) Bdrs(45%) Bgz(cv) C(signInBtn) Cur(p) D(ib) Fz(34px) H(34px) W(34px) ie-7_D(n)",
+ "color": "#400090",
+ "name": "Whs(nw) D(ib) Maw(100px) Ov(h) Mt(-1px) Tov(e) Lh(userNavTextLh) C(mailBtn) Pstart(8px) Fz(14px) Fw(b) Va(t) ie-7_D(n)",
+ "wrapper": "P(0) Bd(0) Pos(r) ie-8_Pb(10px) ie-9_Pb(10px)",
+ "size": 34
+ },
+ "container": {
+ "wrapper": "Fl(start) H(34px) Mx(8px)"
+ },
+ "panel": {
+ "wrapper": "Bdrs(4px) Bgc(menuBgc) Bxsh(customShadowFlyoutMenu) D(n) End(0) Pos(a) T(40px) Ta(start) uh-menu-open_D(b) W(280px)"
+ },
+ "button": {
+ "inline": {},
+ "content_1": "Bdrs(5px) Bds(s) Bdw(2px) C(#fff):h D(ib) Ell Fz(14px) Fw(b) Py(2px) Mt(3px) Ta(c) Td(n):h Miw(78px) H(18px)",
+ "content_2": "Bdc(signInBtn) Bgc(signInBtn):h C(signInBtn)",
+ "wrapper": "Fl(start) Mx(4px) Mend(9px)"
+ },
+ "signed_out": {
+ "content": "C(textColor)",
+ "wrapper": "Bdtc(#e1e1e5) Bdts(s) Bdtw(1px) Mx(16px) Py(16px) Ta(c)"
+ }
+ }
+ },
+ "logo": {
+ "style": {
+ "cobrand": {
+ "partner": {},
+ "yahoo": {},
+ "wrapper_1": "Bgr(nr) D(b) Fl(start) Mstart(10px)"
+ },
+ "container": {
+ "inline": {
+ "backgroundColor": "transparent"
+ },
+ "wrapper_1": "Pos(a)",
+ "wrapper_2": "Miw(187px) UHMR1D_Py(0)"
+ },
+ "country_property": {
+ "content_1": "Bgpx(0) Bgr(nr) Cur(p) D(b) H(48px)",
+ "content_2": "Bgz(880px) Mx(a)! W(210px)"
+ },
+ "property": {
+ "content_1": "Bgpx(0) Bgr(nr) Cur(p) D(b) H(40px)",
+ "content_2": "Bgz(702px) Mx(a)! W(94px) ie-7_Pos(r) ie-7_Start(-170px)",
+ "image_1x": "https:\u002F\u002Fs.yimg.com\u002Frz\u002Fd\u002Fyahoo_news_en-US_s_f_pw_351x40_news.png",
+ "image_2x": "https:\u002F\u002Fs.yimg.com\u002Frz\u002Fd\u002Fyahoo_news_en-US_s_f_pw_351x40_news_2x.png"
+ },
+ "yahoo": {
+ "content_1": "Bgr(nr) Cur(p) D(ib) W(160px) H(40px) Bgz(157px) Bgp(megaLogoPosBig) Mstart(12px) ie-7_Mstart(-170px)",
+ "content_2": "Bgz(90px)!--sm1024 Bgp(megaLogoPosSmall)!--sm1024 Mstart(10px)!--sm1024",
+ "image_1x": "https:\u002F\u002Fs.yimg.com\u002Frz\u002Fd\u002Fyahoo_frontpage_en-US_s_f_p_bestfit_frontpage.png",
+ "image_2x": "https:\u002F\u002Fs.yimg.com\u002Frz\u002Fd\u002Fyahoo_frontpage_en-US_s_f_p_bestfit_frontpage_2x.png"
+ },
+ "template": "property"
+ }
+ },
+ "style": {
+ "container": {
+ "right_list": "Pos(a) List(n) End(15px) T(3px) Z(2)",
+ "wrapper_1": "Miw(1024px) End(0) Start(0) Trs(shadowTransition) UH Z(10)",
+ "wrapper_2": "Bdt(customBorderTop) MegaTheme Pt(12px) Pb(12px) Trstf(eo) Trsde(0s) Trsdu(0.13s) Trsp(a) hasScrolled_Bxsh(shadowOn) Panel-open_Bxsh(shadowOn)",
+ "wrapper_3": "T(0)",
+ "wrapper_4": "T(22px)",
+ "wrapper_5": "",
+ "wrapper_6": "Pos(r)",
+ "wrapper_7": "Bgc(#fff)",
+ "content": "Pos(r) Maw(1256px) Miw(1000px) Mx(a)"
+ }
+ },
+ "follow": {
+ "style": {
+ "button": {
+ "inline": {},
+ "content_1": "Pos(r) Fl(start) D(ib) Bd(0) P(0) Mstart(14px) Mend(13px) Cur(p) ie-7_D(n) ie-8_Pb(10px) ie-9_Pb(10px)",
+ "icon_1": "#400090",
+ "text_1": "Lh(userNavTextLh) D(ib) C(mailBtn) Fz(14px) Fw(b) Va(t) Mstart(6px)",
+ "wrapper": "D(ib) Mstart(14px) Mt(-1px) ua-ie8_Pb(10px) ua-ie9_Pb(10px)"
+ },
+ "followcount": {
+ "wrapper_1": "Bgc(mailBadge) Bdrs(11px) C(#fff) Start(16px) Fz(11px) Fw(b) Pos(a) Lh(2) Ta(c) T(-11px) W(22px)"
+ }
+ }
+ },
+ "mail": {
+ "style": {
+ "button": {
+ "inline": {},
+ "content_1": "Pos(r) D(ib) Ta(s) Td(n):h",
+ "content_2": "",
+ "icon_1": "#400090",
+ "icon_2": "#400090",
+ "text_1": "Lh(userNavTextLh) D(ib) C(mailBtn) Fz(14px) Fw(b) Va(t) Mstart(6px)",
+ "text_2": "Lh(userNavTextLh) D(ib) C(mailBtn) Fz(14px) Fw(b) Va(t) Mstart(6px)",
+ "wrapper": "D(ib) Mstart(14px) Mt(-1px) ie-8_Pb(10px) ie-9_Pb(10px)"
+ },
+ "mailcount": {
+ "wrapper_1": "Bgc(mailBadge) Bdrs(11px) C(#fff) Start(18px) Fz(11px) Fw(b) Pos(a) Py(4px) Ta(c) T(-8px) W(22px)"
+ }
+ }
+ },
+ "topbar": {
+ "style": {
+ "nav_home": {
+ "inline": {
+ "boxShadow": "0 4px 7px rgba(0,0,0,.2)",
+ "border": "0px 1px 1px 1px",
+ "borderColor": "1px solid #d9d9d9"
+ },
+ "link": {
+ "content": "C(#1d1da3)! D(b) Py(3px) Td(n) Td(u):h"
+ },
+ "content": "Bgc(#fff) C(#eee) List(n) My(.55em) Pos(r) Px(10px)!",
+ "wrapper": "Bd(1px solid #d9d9d9) Bgc(#fff) D(b) Pos(a) Start(0) T(100%)"
+ },
+ "nav_main": {
+ "link": {
+ "content": "C(#fff) Td(n) Td(u):h",
+ "wrapper": "D(ib) Lh(1.7) Mend(18px) Pstart(14px) Va(t) Zoom"
+ },
+ "link_home": {
+ "icon": {
+ "down_arrow": {
+ "inline": {
+ "cursor": "pointer",
+ "marginLeft": "5px",
+ "verticalAlign": "middle"
+ },
+ "color_1": "#fff",
+ "color_2": "#1d1da3"
+ },
+ "home": {
+ "inline": {
+ "cursor": "pointer",
+ "marginRight": "6px",
+ "marginTop": "1px",
+ "verticalAlign": "top"
+ },
+ "color_1": "#fff",
+ "color_2": "#1d1da3"
+ }
+ },
+ "content_1": "C(#fff) Td(n) Pos(r) Z(1) rapidnofollow readerOpen_V(h)",
+ "content_2": "C(#1d1da3)!",
+ "text": "Fw(400) Mstart(-1px) Td(u):h",
+ "wrapper_1": "D(ib) Lh(1.7) Mend(18px) Pstart(10px) Va(t) Zoom",
+ "wrapper_2": "Bgc(#fff)!"
+ },
+ "link_more": {
+ "icon": {
+ "down_arrow": {
+ "inline": {
+ "cursor": "pointer",
+ "marginLeft": "5px",
+ "verticalAlign": "middle"
+ },
+ "color_1": "#fff",
+ "color_2": "#1d1da3"
+ }
+ },
+ "content_1": "C(#fff) Pos(r) Td(n) Z(1) yucs-leavable rapidnofollow readerOpen_V(h)",
+ "content_2": "C(#1d1da3)!",
+ "text": "Td(u):h",
+ "wrapper_1": "D(ib) Lh(1.7) Pend(6px) Pos(r) Pstart(10px) Va(t) Z(4) Zoom",
+ "wrapper_2": "Bgc(#fff)!"
+ },
+ "content_1": "H(22px) Lh(1.7) M(0) NavLinks P(0) Whs(nw) Z(11)",
+ "content_2": "Bgc(#2d1152)",
+ "content_3": "Pos(a) Start(0) End(0)",
+ "wrapper_1": "C(#fff) Fz(13px) Trsdu(0.3s) Trsp(a) hasScrolled_Mt(-19px) Panel-open_Mt(-19px) CollapsibleUh_Mt(0px)!",
+ "wrapper_2": "H(22px)"
+ },
+ "nav_more": {
+ "inline": {
+ "boxShadow": "0 4px 7px rgba(0,0,0,.2)",
+ "border": "0px 1px 1px 1px",
+ "borderColor": "1px solid #d9d9d9"
+ },
+ "link": {
+ "content": "C(#1d1da3)! D(b) Py(3px) Td(n) Td(u):h"
+ },
+ "content": "Bgc(#fff) C(#eee) Pos(r) Px(10px)! List(n) My(.55em)",
+ "wrapper": "Bgc(#fff) Bd(1px solid #d9d9d9) D(b) Pos(a) Start(0) T(100%)"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "NavServiceStore": {
+ "nav": {},
+ "news": {
+ "sections": ["property"],
+ "nav": [{
+ "statusCode": 200,
+ "message": "ok",
+ "data": {
+ "items": [{
+ "name": "US",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Fus\u002F",
+ "children": [],
+ "id": "root_1"
+ }, {
+ "name": "World",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Fworld\u002F",
+ "children": [],
+ "id": "root_2"
+ }, {
+ "name": "Politics",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Fpolitics\u002F",
+ "children": [],
+ "id": "root_3"
+ }, {
+ "name": "Tech",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Ftech",
+ "children": [],
+ "id": "root_4"
+ }, {
+ "name": "Science",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Fscience\u002F",
+ "children": [],
+ "id": "root_5"
+ }, {
+ "name": "Odd News",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Fodd\u002F",
+ "children": [],
+ "id": "root_6"
+ }, {
+ "name": "ABC News",
+ "url": "https:\u002F\u002Fgma.yahoo.com\u002F",
+ "children": [],
+ "id": "root_7"
+ }, {
+ "name": "Yahoo Originals",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002Foriginals\u002F",
+ "children": [],
+ "id": "root_8"
+ }, {
+ "name": "Katie Couric",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fkatiecouric",
+ "children": [],
+ "id": "root_9"
+ }, {
+ "name": "Matt Bai",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fauthor\u002Fmatt-bai",
+ "children": [],
+ "id": "root_10"
+ }]
+ }
+ }, null]
+ }
+ },
+ "NavStore": {
+ "data": {
+ "items": [{
+ "id": "home",
+ "name": "Home",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002F",
+ "children": []
+ }, {
+ "id": "mail",
+ "name": "Mail",
+ "url": "https:\u002F\u002Fmail.yahoo.com\u002F?.intl=us&amp;.lang=en-US",
+ "children": []
+ }, {
+ "id": "flickr",
+ "name": "Flickr",
+ "url": "https:\u002F\u002Fwww.flickr.com\u002F",
+ "children": []
+ }, {
+ "id": "tumblr",
+ "name": "Tumblr",
+ "url": "https:\u002F\u002Fwww.tumblr.com\u002F",
+ "children": []
+ }, {
+ "id": "news",
+ "name": "News",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fnews\u002F",
+ "children": []
+ }, {
+ "id": "sports",
+ "name": "Sports",
+ "url": "http:\u002F\u002Fsports.yahoo.com\u002F",
+ "children": []
+ }, {
+ "id": "finance",
+ "name": "Finance",
+ "url": "http:\u002F\u002Ffinance.yahoo.com\u002F",
+ "children": []
+ }, {
+ "id": "celebrity",
+ "name": "Celebrity",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fcelebrity\u002F",
+ "children": []
+ }, {
+ "id": "answers",
+ "name": "Answers",
+ "url": "https:\u002F\u002Fanswers.yahoo.com\u002F",
+ "children": []
+ }, {
+ "id": "groups",
+ "name": "Groups",
+ "url": "https:\u002F\u002Fgroups.yahoo.com\u002F",
+ "children": []
+ }, {
+ "id": "mobile",
+ "name": "Mobile",
+ "url": "https:\u002F\u002Fmobile.yahoo.com\u002F",
+ "children": []
+ }, {
+ "id": "movies",
+ "name": "Movies",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fmovies\u002F",
+ "children": []
+ }, {
+ "id": "music",
+ "name": "Music",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fmusic\u002F",
+ "children": []
+ }, {
+ "id": "tv",
+ "name": "TV",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Ftv\u002F",
+ "children": []
+ }, {
+ "id": "style",
+ "name": "Style",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fstyle\u002F",
+ "children": []
+ }, {
+ "id": "beauty",
+ "name": "Beauty",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Fbeauty\u002F",
+ "children": []
+ }, {
+ "id": "tech",
+ "name": "Tech",
+ "url": "https:\u002F\u002Fwww.yahoo.com\u002Ftech\u002F",
+ "children": []
+ }, {
+ "id": "shopping",
+ "name": "Shopping",
+ "url": "https:\u002F\u002Fshopping.yahoo.com\u002F",
+ "children": []
+ }]
+ }
+ },
+ "UHAccountSwitchStore": {
+ "site": "news",
+ "crumb": "r1Se6yNfgmk",
+ "sendRequest": false,
+ "isEnabled": true
+ },
+ "MobileHeaderStore": {
+ "navTitle": "news",
+ "useNavTitle": false
+ }
+ }
+ },
+ "plugins": {
+ "BundlePlugin": {
+ "loadedBundles": ["tdv2-applet-uh", "tdv2-applet-mtfpopup", "tdv2-applet-nagbar", "td-ads", "tdv2-applet-featurebar", "tdv2-applet-stream", "tdv2-applet-followauthor", "react-adblock-promo", "tdv2-applet-canvass", "react-weather", "tdv2-applet-channels", "tdv2-applet-discussion", "tdv2-applet-footer", "tdv2-applet-navrail", "tdv2-applet-account-switch", "react-share-buttons", "tdv2-applet-follow", "tdv2-applet-stream-hero.carousel", "tdv2-applet-video-modal", "react-tumblr-tile", "td-app-yahoo"],
+ "meta": {
+ "react-finance": {
+ "dependencies": ["tdv2-applet-uh"]
+ },
+ "react-sports.nav": {
+ "langBundle": "react-sports"
+ },
+ "react-sports.y20": {
+ "langBundle": "react-sports"
+ },
+ "tdv2-applet-content-canvas": {
+ "dependencies": ["tdv2-applet-canvass", "tdv2-applet-livecoverage", "tdv2-applet-slideshow", "tdv2-applet-video-modal"]
+ },
+ "tdv2-applet-stream": {
+ "dependencies": ["react-share-buttons", "react-tumblr-tile", "tdv2-applet-follow"]
+ },
+ "tdv2-applet-stream-hero.carousel": {
+ "dependencies": ["td-ads", "tdv2-applet-follow", "tdv2-applet-video-modal"],
+ "langBundle": "tdv2-applet-stream-hero"
+ },
+ "tdv2-applet-stream-hero": {
+ "dependencies": ["td-ads", "tdv2-applet-follow", "tdv2-applet-video-modal"]
+ },
+ "tdv2-applet-uh": {
+ "dependencies": ["tdv2-applet-trending", "tdv2-applet-account-switch"]
+ }
+ },
+ "reqContext": {
+ "authed": "0",
+ "ynet": "0",
+ "ssl": "1",
+ "spdy": "1",
+ "ytee": "0",
+ "mode": "normal",
+ "site": "fp",
+ "region": "US",
+ "lang": "en-US",
+ "bucket": "news-d-162",
+ "colo": "gq1",
+ "device": "desktop",
+ "bot": "0",
+ "environment": "prod",
+ "intl": "us",
+ "partner": "none",
+ "tz": "America\u002FLos_Angeles",
+ "feature": ["cacheContentCanvas", "canvass", "newContentAttribution", "livecoverage", "featurebar", "deferModalCluster", "specRetry", "canvassThumbs"]
+ },
+ "loadChildBundles": true
+ },
+ "DaggrPlugin": {
+ "daggr": {
+ "requests": {}
+ }
+ },
+ "DevToolsPlugin": {
+ "actionHistory": [],
+ "enableDebug": false
+ },
+ "FetchrPlugin": {
+ "xhrContext": {
+ "feature": "cacheContentCanvas,canvass,newContentAttribution,livecoverage,featurebar,deferModalCluster,specRetry,canvassThumbs",
+ "bkt": "news-d-162",
+ "crumb": "FRZnG5q9e5R",
+ "device": "desktop",
+ "intl": "us",
+ "lang": "en-US",
+ "partner": "none",
+ "region": "US",
+ "site": "fp",
+ "tz": "America\u002FLos_Angeles",
+ "ver": "2.0.3031004"
+ },
+ "xhrPath": "\u002Fnews\u002F_td\u002Fapi\u002Fresource",
+ "xhrTimeout": 3000,
+ "corsPath": null
+ },
+ "LoggerPlugin": {
+ "logLevel": 3
+ },
+ "RouterPlugin": {
+ "appLevelEnable": true
+ },
+ "SessionPlugin": {
+ "bucketLogString": "news-d-162",
+ "bucketMetaData": {
+ "feature": "canvassThumbs",
+ "feature.canvassThumbs": "true"
+ },
+ "dimensions": {
+ "authed": "0",
+ "ynet": "0",
+ "ssl": "1",
+ "spdy": "1",
+ "ytee": "0",
+ "mode": "normal",
+ "site": "fp",
+ "region": "US",
+ "lang": "en-US",
+ "bucket": "news-d-162",
+ "colo": "gq1",
+ "device": "desktop",
+ "bot": "0",
+ "environment": "prod",
+ "intl": "us",
+ "partner": "none",
+ "tz": "America\u002FLos_Angeles",
+ "feature": ["cacheContentCanvas", "canvass", "newContentAttribution", "livecoverage", "featurebar", "deferModalCluster", "specRetry", "canvassThumbs"]
+ },
+ "enableSpdyAssetUrls": true,
+ "enableSpdyAssetUrlsFlag": true,
+ "experimentIds": {
+ "6572": true
+ },
+ "host": "us.yahoo.com",
+ "isBot": false,
+ "isCorpUser": false,
+ "isDevInfo": false,
+ "isYnet": false,
+ "pathPrefix": "\u002Fnews\u002F_td",
+ "protocol": "https",
+ "query": {},
+ "rid": "1eprt2tc42fn6",
+ "woe": {
+ "woeid_country": "23424971",
+ "country": "TW",
+ "confidence_country": "99"
+ },
+ "sampleIds": {
+ "news-d-162": true
+ },
+ "spdyPathPrefix": "\u002Fsy",
+ "userAgent": {
+ "browserName": "firefox",
+ "browserVersion": "53.0",
+ "osName": "mac os x",
+ "osVersion": "10.11"
+ }
+ }
+ }
+ },
+ "plugins": {
+ "BundlePlugin": {
+ "mainBundle": "td-app-yahoo"
+ },
+ "ResourcePlugin": {
+ "registry": {
+ "configs": {
+ "td-app-yahoo": {
+ "ads": 1,
+ "app": 1,
+ "assets": 1,
+ "dimensions": 1,
+ "feature": 1,
+ "feedback": 1,
+ "i13n": 1,
+ "prefetch": 1,
+ "rss": 1,
+ "sections": 1
+ },
+ "react-avatar": {
+ "defaultColors": 1
+ },
+ "react-finance": {
+ "app": 1,
+ "atomize": 1,
+ "componentFooter": 1,
+ "componentMarketSummary": 1,
+ "componentSignInBtn": 1,
+ "componentUH": 1,
+ "cookies": 1,
+ "defaultViews": 1,
+ "i13n": 1,
+ "industries": 1,
+ "listConfig": 1,
+ "regal": 1,
+ "search": 1,
+ "table": 1,
+ "tableColumns": 1,
+ "tableViews": 1,
+ "yfinlists": 1,
+ "styles\u002Fbtn": 1,
+ "styles\u002Fdropbox": 1,
+ "styles\u002Finput": 1,
+ "styles\u002FreactAutoCompleteResults": 1,
+ "styles\u002Ftable": 1
+ },
+ "react-sports": {
+ "atomic-classsets": 1,
+ "componentAdBlockPromo": 1,
+ "componentBoxscore": 1,
+ "componentDraft": 1,
+ "componentDraftProspects": 1,
+ "componentDraftResults": 1,
+ "componentFantasy": 1,
+ "componentGolfTours": 1,
+ "componentGraphStats": 1,
+ "componentInterstitial": 1,
+ "componentLeaderboard": 1,
+ "componentLeaguePlayers": 1,
+ "componentLeagueRankings": 1,
+ "componentLeagueStandings": 1,
+ "componentLeagueTeams": 1,
+ "componentLeagueTracks": 1,
+ "componentLivelook": 1,
+ "componentMatchHeader": 1,
+ "componentOdds": 1,
+ "componentPlayer": 1,
+ "componentPromo": 1,
+ "componentScoreboard": 1,
+ "componentTeam": 1,
+ "componentTopPlayer": 1,
+ "intlFormats": 1
+ },
+ "react-tile": {
+ "config": 1
+ },
+ "react-video": {
+ "video-reel": 1
+ },
+ "react-weather": {
+ "componentWeather": 1,
+ "componentWeatherAppPromote": 1,
+ "componentWeatherChannelPromote": 1,
+ "componentWeatherStaticList": 1
+ },
+ "td-service-canvas": {
+ "config": 1
+ },
+ "td-service-canvass": {
+ "api": 1
+ },
+ "td-service-digest": {
+ "config": 1
+ },
+ "td-service-location": {
+ "config": 1
+ },
+ "td-stores-location": {
+ "config": 1
+ },
+ "td-stores-sports": {
+ "resources": 1,
+ "statcloud\u002Fnormalize-schema-statcloud": 1,
+ "statcloud\u002Fstatcloud": 1,
+ "sierra\u002Fnormalize-schema-sierra": 1,
+ "sierra\u002Fsierra": 1,
+ "olympics\u002Folympics": 1,
+ "graphite\u002Fgraphite": 1,
+ "fantasy\u002Ffantasy": 1,
+ "dailyfantasy\u002Fdailyfantasy": 1,
+ "dailyfantasy\u002Fnormalize-schema-dailyfantasy": 1
+ },
+ "tdv2-applet-abu-news": {
+ "componentHeadlines": 1
+ },
+ "tdv2-applet-account-switch": {
+ "componentAccountSwitch": 1,
+ "constants": 1,
+ "i13n": 1
+ },
+ "tdv2-applet-activitylist": {
+ "activitylist": 1
+ },
+ "tdv2-applet-breakingnews": {
+ "componentTDV2BreakingNews": 1
+ },
+ "tdv2-applet-canvass": {
+ "atomize": 1,
+ "componentComments": 1,
+ "constants": 1
+ },
+ "tdv2-applet-cardstrip": {
+ "config": 1
+ },
+ "tdv2-applet-channels": {
+ "componentChannels": 1,
+ "thumbnails": 1
+ },
+ "tdv2-applet-comments": {
+ "atomic-helper": 1,
+ "componentComments": 1
+ },
+ "tdv2-applet-content-canvas": {
+ "componentContentCanvas": 1,
+ "componentOneIdButtons": 1,
+ "componentStorylineItem": 1,
+ "pages": 1,
+ "routes": 1
+ },
+ "tdv2-applet-discussion": {
+ "componentDiscussionCarousel": 1,
+ "componentDiscussionList": 1
+ },
+ "tdv2-applet-everything": {
+ "Sites": 1,
+ "WorldSites": 1
+ },
+ "tdv2-applet-featurebar": {
+ "componentFeatureBar": 1
+ },
+ "tdv2-applet-finance-virgo": {
+ "componentControlSet": 1,
+ "legacyRangeMap": 1
+ },
+ "tdv2-applet-follow": {
+ "componentFollow": 1,
+ "regal": 1
+ },
+ "tdv2-applet-followauthor": {
+ "componentFollowAuthor": 1,
+ "componentFollowHeadlines": 1
+ },
+ "tdv2-applet-footer": {
+ "componentFooter": 1
+ },
+ "tdv2-applet-horoscope": {
+ "componentHoroscope": 1,
+ "config": 1
+ },
+ "tdv2-applet-livecoverage": {
+ "componentLiveCoverage": 1
+ },
+ "tdv2-applet-map": {
+ "componentElectionMap": 1,
+ "config": 1
+ },
+ "tdv2-applet-mtfpopup": {
+ "config": 1
+ },
+ "tdv2-applet-nagbar": {
+ "componentNagbar": 1
+ },
+ "tdv2-applet-navrail": {
+ "componentNavLite": 1,
+ "componentNavrail": 1,
+ "nav\u002Findex": 1,
+ "nav\u002Fmaster": 1,
+ "nav\u002Fsite\u002Findex": 1,
+ "nav\u002Fpartner\u002Findex": 1,
+ "nav\u002Flang\u002Findex": 1,
+ "nav\u002Fdevice\u002Findex": 1
+ },
+ "tdv2-applet-rawads": {
+ "componentRawAds": 1
+ },
+ "tdv2-applet-search-input": {
+ "searchassist": 1
+ },
+ "tdv2-applet-showtimes": {
+ "componentShowtimes": 1
+ },
+ "tdv2-applet-slideshow": {
+ "componentHeroSlideshow": 1
+ },
+ "tdv2-applet-stream": {
+ "componentStream": 1
+ },
+ "tdv2-applet-stream-hero": {
+ "componentStreamHero": 1,
+ "componentStreamHeroCarousel": 1,
+ "componentWideHero": 1
+ },
+ "tdv2-applet-style": {
+ "componentStyleCover": 1,
+ "config": 1
+ },
+ "tdv2-applet-trending": {
+ "componentTrending": 1,
+ "config": 1
+ },
+ "tdv2-applet-uh": {
+ "componentHeader": 1,
+ "searchOrigins": 1,
+ "components\u002Findex": 1,
+ "components\u002Fmaster": 1,
+ "components\u002Fsite\u002Findex": 1,
+ "components\u002Fpartner\u002Findex": 1,
+ "components\u002Flang\u002Findex": 1,
+ "components\u002Fenvironment\u002Findex": 1,
+ "components\u002Fdevice\u002Findex": 1
+ },
+ "tdv2-applet-video-lightbox": {
+ "componentContentLightboxVideo": 1,
+ "componentVideoLightbox": 1
+ },
+ "tdv2-applet-video-modal": {
+ "componentVideoModal": 1,
+ "keyboard-shortcuts": 1,
+ "modalShareButtons": 1,
+ "thumbnails-cover": 1,
+ "thumbnails": 1,
+ "videoModalExamples": 1
+ },
+ "tdv2-service-ads": {
+ "config": 1
+ },
+ "tdv2-service-comments": {
+ "config": 1,
+ "developers": 1,
+ "editors": 1,
+ "powerUsers": 1
+ },
+ "video-service": {
+ "channel_service_config": 1
+ }
+ },
+ "lang": {
+ "td-app-yahoo": {
+ "strings": 1
+ },
+ "react-finance": {
+ "strings": 1
+ },
+ "react-horoscope": {
+ "strings": 1
+ },
+ "react-location-widget": {
+ "strings": 1
+ },
+ "react-showtimes": {
+ "strings": 1
+ },
+ "react-sports": {
+ "strings": 1
+ },
+ "react-tumblr-tile": {
+ "strings": 1
+ },
+ "react-weather": {
+ "strings": 1
+ },
+ "td-ads": {
+ "strings": 1
+ },
+ "tdv2-applet-abu-news": {
+ "strings": 1
+ },
+ "tdv2-applet-account-switch": {
+ "strings": 1
+ },
+ "tdv2-applet-activitylist": {
+ "strings": 1
+ },
+ "tdv2-applet-breakingnews": {
+ "strings": 1
+ },
+ "tdv2-applet-canvass": {
+ "strings": 1
+ },
+ "tdv2-applet-cardstrip": {
+ "strings": 1
+ },
+ "tdv2-applet-channels": {
+ "strings": 1
+ },
+ "tdv2-applet-comments": {
+ "strings": 1
+ },
+ "tdv2-applet-content-canvas": {
+ "strings": 1
+ },
+ "tdv2-applet-discussion": {
+ "strings": 1
+ },
+ "tdv2-applet-everything": {
+ "strings": 1
+ },
+ "tdv2-applet-featurebar": {
+ "strings": 1
+ },
+ "tdv2-applet-finance-virgo": {
+ "strings": 1
+ },
+ "tdv2-applet-follow": {
+ "strings": 1
+ },
+ "tdv2-applet-followauthor": {
+ "strings": 1
+ },
+ "tdv2-applet-footer": {
+ "strings": 1
+ },
+ "tdv2-applet-horoscope": {
+ "strings": 1
+ },
+ "tdv2-applet-livecoverage": {
+ "strings": 1
+ },
+ "tdv2-applet-map": {
+ "strings": 1
+ },
+ "tdv2-applet-mtfpopup": {
+ "strings": 1
+ },
+ "tdv2-applet-nagbar": {
+ "strings": 1
+ },
+ "tdv2-applet-navrail": {
+ "strings": 1
+ },
+ "tdv2-applet-rawads": {
+ "strings": 1
+ },
+ "tdv2-applet-search-input": {
+ "strings": 1
+ },
+ "tdv2-applet-showtimes": {
+ "strings": 1
+ },
+ "tdv2-applet-slideshow": {
+ "strings": 1
+ },
+ "tdv2-applet-stream": {
+ "strings": 1
+ },
+ "tdv2-applet-stream-hero": {
+ "strings": 1
+ },
+ "tdv2-applet-style": {
+ "strings": 1
+ },
+ "tdv2-applet-swisschamp": {
+ "strings": 1
+ },
+ "tdv2-applet-trending": {
+ "strings": 1
+ },
+ "tdv2-applet-tumblr-actions": {
+ "strings": 1
+ },
+ "tdv2-applet-uh": {
+ "strings": 1
+ },
+ "tdv2-applet-video-lightbox": {
+ "strings": 1
+ },
+ "tdv2-applet-video-modal": {
+ "strings": 1
+ },
+ "yahoodotcom-layout": {
+ "strings": 1
+ }
+ }
+ },
+ "options": {
+ "defaultBundle": "td-app-yahoo"
+ }
+ }
+ }
+ };
+ }(this));
+ </script>
+ <script src="https://s.yimg.com/zz/combo?os/yaft/yaft-0.3.10.min.js&amp;os/yaft/yaft-plugin-aftnoad-0.1.3.min.js" defer="defer"></script>
+ <script src="https://s.yimg.com/os/yc/js/main.19836e536b932247a9b1.min.js" defer="defer"></script>
+ <script>
+ ! function() {
+ function a() {
+ this.init()
+ }
+ var b = document,
+ c = window;
+ if (Modernizr & amp; & amp; Modernizr.csstransitions) {
+ var d, e, f, g, h, i, j, k, l, m, n, o, p = "has-scrolled",
+ q = "Scrolling",
+ r = "UhHideSubnav",
+ s = "",
+ t = "scroll",
+ u = 50,
+ v = c.addEventListener,
+ w = b.documentElement,
+ x = 1,
+ y = !1,
+ z = void 0 !== c.pageXOffset,
+ A = "CSS1Compat" === (b.compatMode || s),
+ B = c.requestAnimationFrame || c.mozRequestAnimationFrame || c.webkitRequestAnimationFrame || c.msRequestAnimationFrame || function(a) {
+ c.setTimeout(a, u)
+ },
+ C = !1;
+ e = function() {
+ return z ? c.pageYOffset : A ? b.documentElement.scrollTop : b.body.scrollTop
+ }, f = function() {
+ C || (o(q, !0), C = !0, B(n))
+ }, g = function() {
+ o(r, !0), y = !0, l()
+ }, h = function() {
+ o(r, !1), y = !1, m()
+ }, n = function() {
+ var a = e(),
+ b = a & gt;
+ 0;
+ if (C = !1, o(p, b), 0 & gt; = a) return d = 0, void h();
+ var c = a - d;
+ c & gt;
+ x & amp; & amp;
+ !y ? g() : -x & gt;
+ c & amp; & amp;
+ y & amp; & amp;
+ h(), 0 === c ? o(q, !1) : d = a
+ }, i = function() {
+ v ? c.addEventListener(t, f, !0) : c.attachEvent("on" + t, f)
+ }, j = function() {
+ v ? c.removeEventListener(t, f) : c.detachEvent("on" + t, f)
+ }, k = function(a) {
+ y & amp; & amp;
+ h()
+ }, l = function() {
+ var a = b.getElementsByClassName("UH")[0];
+ a & amp; & amp;
+ a.addEventListener("mouseenter", k)
+ }, m = function() {
+ var a = b.getElementsByClassName("UH")[0];
+ a & amp; & amp;
+ a.removeEventListener("mouseenter", k)
+ };
+ var D = {};
+ o = function(a, b) {
+ var c = D[a];
+ if ("undefined" == typeof c || c !== b) {
+ D[a] = b;
+ var d = w.className.split(/\s+/),
+ e = d.indexOf(a);
+ b & amp; & amp;
+ 0 & gt;
+ e ? d.push(a) : !b & amp; & amp;
+ e & gt; = 0 & amp; & amp;
+ d.splice(e, 1), w.className = d.join(" ").trim()
+ }
+ }, a.prototype.init = function() {
+ b.getElementsByClassName("nr-applet-main-nav")[0] & amp; & amp;
+ !this.initialized & amp; & amp;
+ (this.initialized = !0, d = e(), i())
+ }, a.prototype.remove = function() {
+ j(), this.initialized = !1
+ }, c.ScrollHandler = new a
+ }
+ }();
+ </script>
+ <script async="" src="https://s.yimg.com/rx/builds/7.86.268.1480452935/assets/streamsense.min.js"></script>
+ <div id="fcFetch_93" style="position: absolute; z-index: -100; display: none;"></div>
+ <div style="position: static !important; visibility: inherit;" id="fdb_close_els" class="darla">
+ <div style="position: absolute; top: 2001.25px; left: 963px; z-index: 9; width: 300px; height: 20px; visibility: inherit; display: none;" id="fdb_close_LREC2" class="darla darla_fdb_close" title="I don't like this ad">
+ <div style="width:20px; height:20px; background:#fff; opacity: 0.78; -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=78)'; filter: alpha(opacity=78); position: absolute;right:0; background: #fff url('https://s.yimg.com/rq/darla/i/fdb1.gif') no-repeat right -25px;cursor:pointer;"></div>
+ </div>
+ <div style="position: absolute; top: 2692.35px; left: 354px; z-index: 10; width: 728px; height: 20px; visibility: inherit; display: none;" id="fdb_close_LDRB2-2" class="darla darla_fdb_close" title="I don't like this ad">
+ <div style="width:20px; height:20px; background:#fff; opacity: 0.78; -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=78)'; filter: alpha(opacity=78); position: absolute;right:0; background: #fff url('https://s.yimg.com/rq/darla/i/fdb1.gif') no-repeat right -25px;cursor:pointer;"></div>
+ </div>
+ <div style="position: absolute; top: 2275.95px; left: 354px; z-index: 10; width: 728px; height: 20px; visibility: inherit; display: none;" id="fdb_close_LDRB2-1" class="darla darla_fdb_close" title="I don't like this ad">
+ <div style="width:20px; height:20px; background:#fff; opacity: 0.78; -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=78)'; filter: alpha(opacity=78); position: absolute;right:0; background: #fff url('https://s.yimg.com/rq/darla/i/fdb1.gif') no-repeat right -25px;cursor:pointer;"></div>
+ </div>
+ <div style="position: absolute; top: 2315.95px; left: 963px; z-index: 9; width: 300px; height: 20px; visibility: inherit; display: none;" id="fdb_close_LREC3" class="darla darla_fdb_close" title="I don't like this ad">
+ <div style="width:20px; height:20px; background:#fff; opacity: 0.78; -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=78)'; filter: alpha(opacity=78); position: absolute;right:0; background: #fff url('https://s.yimg.com/rq/darla/i/fdb1.gif') no-repeat right -25px;cursor:pointer;"></div>
+ </div>
+ <div style="position: absolute; top: 70px; left: 354px; z-index: 10; width: 728px; height: 20px; visibility: inherit; display: none;" id="fdb_close_LDRB" class="darla darla_fdb_close" title="I don't like this ad">
+ <div style="width:20px; height:20px; background:#fff; opacity: 0.78; -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=78)'; filter: alpha(opacity=78); position: absolute;right:0; background: #fff url('https://s.yimg.com/rq/darla/i/fdb1.gif') no-repeat right -25px;cursor:pointer;"></div>
+ </div>
+ </div>
+</body>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-3/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-3/expected-images.json
new file mode 100644
index 000000000..36f5f0612
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-3/expected-images.json
@@ -0,0 +1,4 @@
+[
+ "https:\/\/s.yimg.com\/bt\/api\/res\/1.2\/qZaM9MLUOrxLg4IfXt_Niw--\/YXBwaWQ9eW5ld3NfbGVnbztxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975.cf.png",
+ "https:\/\/s3.yimg.com\/bt\/api\/res\/1.2\/GNtA09EDJWzWfpBzGYJS0Q--\/YXBwaWQ9eW5ld3NfbGVnbztxPTg1O3c9NjMw\/http:\/\/media.zenfs.com\/en_us\/gma\/us.abcnews.gma.com\/HT_flag_baby_jtm_150311_16x9_992.jpg"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-3/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-3/expected-metadata.json
new file mode 100644
index 000000000..8af68c02b
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-3/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "By GILLIAN MOHNEY\n March 11, 2015 3:46 PM",
+ "Direction": null,
+ "Excerpt": "A photographer and Navy veteran is fighting back after a photo she posted to Facebook started an online backlash. Vanessa Hicks said she had no idea her photo would be considered controversial. The photo, from a military family’s newborn photo shoot, showed a newborn infant wrapped in an American flag held by his father, who was in his military uniform. Hicks, a Navy veteran herself and the wife of an active-duty Navy member, said her intention was to honor the flag as well as her clients, who wanted to incorporate their military service in the photo shoot.",
+ "Image": "https:\/\/s.yimg.com\/bt\/api\/res\/1.2\/qZaM9MLUOrxLg4IfXt_Niw--\/YXBwaWQ9eW5ld3NfbGVnbztxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975.cf.png",
+ "Title": "Veteran Wraps Baby in American Flag, Photo Sparks Controversy",
+ "SiteName": "Yahoo"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-3/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-3/expected.html
new file mode 100644
index 000000000..c5d7e33dc
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-3/expected.html
@@ -0,0 +1,44 @@
+<div>
+ <div id="Main" role="main" tabindex="0">
+ <section data-ylk="mid:mediacontentbreakingnews;mpos:1;t1:a3;t2:mod-bkn;sec:mod-bkn;" id="mediacontentbreakingnews"><p><span>'GMA' Cookie Search:</span> </p>
+
+ </section>
+ <section data-type="story" data-uuid="4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c" data-ylk="t1:a3;t2:ct-mod;sec:ct-mod;itc:0;rspns:nav;" id="mediacontentstory"><div>
+
+
+
+
+ <div itemscope="" itemtype="https://schema.org/Article">
+
+ <meta content="2015-03-11T19:46:14Z" itemprop="datePublished"></meta><meta content="Veteran Wraps Baby in American Flag, Photo Sparks Controversy" itemprop="headline"></meta><meta content="" itemprop="alternativeHeadline"></meta><meta content="https://media.zenfs.com/en-US/video/video.abcnewsplus.com/559ecdbafdb839129816b5c79a996975" itemprop="image"></meta><meta content="A photographer and Navy veteran is fighting back after a photo she posted to Facebook started an online backlash. Vanessa Hicks said she had no idea her photo would be considered controversial. The photo, from a military family’s newborn photo shoot, showed a newborn infant wrapped in an American flag held by his father, who was in his military uniform. Hicks, a Navy veteran herself and the wife of an active-duty Navy member, said her intention was to honor the flag as well as her clients, who wanted to incorporate their military service in the photo shoot." itemprop="description"></meta><p>A photographer and Navy veteran is fighting back after a photo she posted to <a data-rapid_p="13" href="http://abcnews.go.com/topics/business/companies/facebook-inc.htm" id="ramplink_Facebook_" target="_blank">Facebook</a> started an online backlash.</p>
+ <p>Vanessa Hicks said she had no idea her photo would be considered controversial. The photo, from a military family’s newborn photo shoot, showed a newborn infant wrapped in an American flag held by his father, who was in his military uniform.</p>
+ <p>Hicks, a Navy veteran herself and the wife of an active-duty Navy member, said her intention was to honor the flag as well as her clients, who wanted to incorporate their military service in the photo shoot.</p>
+ <p><a data-rapid_p="14" href="http://abcnews.go.com/WNT/video/pizza-patriots-making-special-super-bowl-delivery-troops-28633975" target="_blank">Pizza Man Making Special Delivery Pizza Delivery to Afghanistan During Super Bowl</a></p>
+ <p><a data-rapid_p="15" href="http://abcnews.go.com/Health/superbug-scope-maker-altered-design-make-cleaning-easier/story?id=29417816" target="_blank">Redesigned Scopes Fail to Stop 'Superbug Outbreaks</a></p>
+ <p><a data-rapid_p="16" href="http://abcnews.go.com/Travel/video/antarctica-penguin-post-office-job-attracts-record-number-29247380" target="_blank">Antarctica 'Penguin Post Office' Attracts Record Number of Applicants</a></p>
+ <p>“This is what he was fighting for, his son wrapped in an American flag,” Hicks told ABC News. However, when she posted the image on her page, she started to get comments accusing her of desecrating the flag.</p>
+ <p>On one Facebook page an unidentified poster put up her picture writing and wrote they found it was “disrespectful, rude, tacky, disgusting, and against the U.S. Flag Code.”</p>
+
+ <p><span id="schemaorg"><div><figure data-orig-index="2"><a data-rapid_p="17" id="cover-c9b69c1a26e19ae9fe744763dc31e9ac" name="cover-c9b69c1a26e19ae9fe744763dc31e9ac"></a><div><p>View photo</p><p><span>.</span></p></div><img alt="Vanessa Hicks" data-preembed="image" src="https://s3.yimg.com/bt/api/res/1.2/GNtA09EDJWzWfpBzGYJS0Q--/YXBwaWQ9eW5ld3NfbGVnbztxPTg1O3c9NjMw/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/HT_flag_baby_jtm_150311_16x9_992.jpg" title="Vanessa Hicks" width="630"></img></figure><p>Vanessa Hicks</p>
+ </div>
+ </span>
+ </p><p>The Federal Flag Code has guidelines for the proper treatment of the U.S. Flag but there are no rules for punishment related to violations. In the past, the <a data-rapid_p="18" href="http://abcnews.go.com/topics/news/us/supreme-court.htm" target="_blank">Supreme Court</a> has found that people are protected from punishment under the First Amendment for manipulating or even burning the flag.
+ </p>
+ <p>Hicks said she was surprised when messages suddenly started to pop up on her Facebook page and even her own website criticizing her photos.</p>
+ <p>She said she stayed up until 4 a.m. recently to take down comments from her business and company page, even on shoots that had nothing to do with the flag.</p>
+ <p>“I know how low I felt during those first few hours,” said Hicks. “[I felt] am I not a good American or veteran or wife. It’s a train-wreck you can’t help but watch.”</p>
+ <p>As Hicks tried to stop the comments from taking over her pages, others started to take notice and her picture went viral on social media sites. After that, Hicks found that many people, both military and civilian, told her they did not find the picture offensive.</p>
+ <p>“I have seen first-hand what is desecration of the flag,” Hicks said of her time in the military. “At the end of the day I didn’t do anything that disrespected this flag.”</p>
+ <p>Hicks, whose husband is still on active duty in the Navy, said the flag is a symbol of U.S. freedoms including the First Amendment right to free speech.</p>
+ <p>“[My husband] wouldn’t die for a flag, he would die for the freedoms that this country offers,” she told ABC News.</p>
+ <p>After her story grabbed local headlines, Hicks has been inundated by requests for photos shoots, and she said she plans to give 15 percent of all profits related to these shoots to the USO.</p>
+ </div>
+ </div>
+
+ </section>
+
+
+
+
+ </div>
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-3/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-3/source.html
new file mode 100644
index 000000000..caf60e4e9
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-3/source.html
@@ -0,0 +1,14949 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" id="Stencil" xmlns:og="http://ogp.me/ns#" xmlns:fb="http://www.facebook.com/2008/fbml" class="H-100 yui3-js-enabled JsEnabled stencil-js stencil-no-touch stencil-csstransforms3d stencil-csstransitions stencil-svg stencil-fullscreen stencil-plugin-imageloader stencil-plugin-selectbox stencil-plugin-source stencil-plugin-tooltip stencil-plugin-lightbox stencil-plugin-gallery stencil-plugin-toggle stencil-plugin-fx" lang="en-US">
+<div id="yui3-css-stamp" style="position: absolute !important; visibility: hidden !important" class=""></div>
+
+<head id="yui_3_18_1_1_1481706756324_29">
+ <script>
+ var t_headstart = new Date().getTime();
+ </script>
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+ <title>Veteran Wraps Baby in American Flag, Photo Sparks Controversy - Yahoo</title>
+ <meta http-equiv="x-dns-prefetch-control" content="on" />
+ <link rel="dns-prefetch" href="https://s.yimg.com" />
+ <link rel="dns-prefetch" href="//y3.analytics.yahoo.com" />
+ <link rel="dns-prefetch" href="//geo.query.yahoo.com" />
+ <link rel="dns-prefetch" href="//geo.yahoo.com" />
+ <link rel="dns-prefetch" href="//csc.beap.bc.yahoo.com" />
+ <link rel="dns-prefetch" href="//b.scorecardresearch.com" />
+ <!--[if !IE]><!-->
+ <link rel="icon" sizes="any" mask="" href="https://s.yimg.com/os/mit/media/p/common/images/favicon_new-7483e38.svg" />
+ <meta name="theme-color" content="#400090" />
+ <!--<![endif]-->
+ <!--[if !IE]><!-->
+ <link rel="alternate icon" type="image/x-icon" href="/favicon.ico" />
+ <!--<![endif]-->
+ <meta name="description" content="From Yahoo: A photographer and Navy veteran is fighting back after a photo she posted to Facebook started an online backlash. Vanessa Hicks said she had no idea her photo would be considered controversial. The photo, from a military family’s newborn photo shoot, showed a newborn infant wrapped in an American flag held by his father, who was in his military uniform. Hicks, a Navy veteran herself and the wife of an active-duty Navy member, said her intention was to honor the flag as well as her clients, who wanted to incorporate their military service in the photo shoot." lang="en-US" />
+ <link rel="canonical" href="https://gma.yahoo.com/veteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html" />
+ <link rel="alternate" hreflang="x-default" href="https://gma.yahoo.com/veteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html" />
+ <link rel="alternate" hreflang="en-US" href="https://gma.yahoo.com/veteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html" />
+ <link rel="alternate" hreflang="en-US" href="https://gma.yahoo.com/veteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html" />
+ <link rel="syndication-source" href="http://abcnews.go.com/US/photographer-fights-backlash-baby-wrapped-american-flag-picture/story?id=29557727" />
+ <meta property="article:publisher" content="https://www.facebook.com/GoodMorningAmerica" />
+ <meta property="fb:app_id" content="90376669494" />
+ <meta property="og:description" content="A photographer and Navy veteran is fighting back after a photo she posted to Facebook started an online backlash. Vanessa Hicks said she had no idea her photo would be considered controversial. The photo, from a military family’s newborn photo shoot, showed a newborn infant wrapped in an American flag held by his father, who was in his military uniform. Hicks, a Navy veteran herself and the wife of an active-duty Navy member, said her intention was to honor the flag as well as her clients, who wanted to incorporate their military service in the photo shoot." />
+ <meta property="og:image" content="https://s.yimg.com/bt/api/res/1.2/qZaM9MLUOrxLg4IfXt_Niw--/YXBwaWQ9eW5ld3NfbGVnbztxPTc1O3c9NjAw/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/559ecdbafdb839129816b5c79a996975.cf.png" />
+ <meta property="og:site_name" content="Yahoo" />
+ <meta property="og:title" content="Veteran Wraps Baby in American Flag, Photo Sparks Controversy" />
+ <meta property="og:type" content="article" />
+ <meta property="og:url" content="https://gma.yahoo.com/veteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html" />
+ <meta name="twitter:card" content="summary_large_image" />
+ <meta name="twitter:description" content="A photographer and Navy veteran is fighting back after a photo she posted to Facebook started an online backlash. Vanessa Hicks said she had no idea her photo would be considered controversial. The photo, from a military family’s newborn photo shoot, showed a newborn infant wrapped in an American flag held by his father, who was in his military uniform. Hicks, a Navy veteran herself and the wife of an active-duty Navy member, said her intention was to honor the flag as well as her clients, who wanted to incorporate their military service in the photo shoot." />
+ <meta name="twitter:dnt" content="on" />
+ <meta name="twitter:image" content="https://s.yimg.com/bt/api/res/1.2/qZaM9MLUOrxLg4IfXt_Niw--/YXBwaWQ9eW5ld3NfbGVnbztxPTc1O3c9NjAw/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/559ecdbafdb839129816b5c79a996975.cf.png" />
+ <meta name="twitter:image:src" content="https://s.yimg.com/bt/api/res/1.2/qZaM9MLUOrxLg4IfXt_Niw--/YXBwaWQ9eW5ld3NfbGVnbztxPTc1O3c9NjAw/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/559ecdbafdb839129816b5c79a996975.cf.png" />
+ <meta name="twitter:site" content="@GMA" />
+ <meta name="twitter:title" content="Veteran Wraps Baby in American Flag, Photo Sparks Controversy" />
+ <meta name="application-name" content="Veteran Wraps Baby in American Flag, Photo Sparks Controversy" />
+ <meta name="msapplication-TileColor" content="#6e329d" />
+ <meta name="msapplication-TileImage" content="https://s1.yimg.com/os/mit/media/p/presentation/images/icons/win8-tile-1484740.png" />
+ <link rel="apple-touch-icon" href="https://s1.yimg.com/os/mit/media/p/presentation/images/icons/default-apple-touch-icon-1636137.png" />
+ <link rel="apple-touch-icon" sizes="114x114" href="https://s1.yimg.com/os/mit/media/p/presentation/images/icons/default-apple-touch-icon-high-1636137.png" />
+ <link rel="apple-touch-icon" sizes="72x72" href="https://s1.yimg.com/os/mit/media/p/presentation/images/icons/default-apple-touch-icon-tablet-1636137.png" />
+ <link rel="apple-touch-icon" sizes="144x144" href="https://s1.yimg.com/os/mit/media/p/presentation/images/icons/default-apple-touch-icon-tablet-high-1636137.png" />
+ <link rel="apple-touch-icon-precomposed" href="https://s1.yimg.com/os/mit/media/p/presentation/images/icons/default-apple-touch-icon-1636137.png" />
+
+ <meta name="apple-mobile-web-app-capable" content="yes" />
+ <meta name="apple-mobile-web-app-status-bar-style" content="black" />
+ <meta name="viewport" content="width=device-width" />
+
+ <!--[if lt IE 9]>
+ <script type="text/javascript" src="https://s.yimg.com/os/mit/media/p/presentation/html5shiv-min-a88b231.js"></script>
+ <![endif]-->
+
+ <link rel="stylesheet" type="text/css" href="https://s1.yimg.com/zz/combo?os/stencil/2.0.23/styles.css&amp;os/mit/media/p/content/other/ad-controller-desktop-min-2e496c7.css&amp;os/mit/media/p/content/base/v2-master-min-f784570.css&amp;os/mit/media/p/content/base/v2-desktop-min-8180379.css&amp;os/mit/media/p/common/stencil-fix-min-56d3a2e.css&amp;os/mit/media/p/content/grids/v2sg-desktop-min-386af90.css&amp;os/mit/media/p/content/overrides/classic-overrides-min-c644875.css&amp;os/mit/media/p/content/overrides/stencil-v2s-reset-overrides-min-863e25b.css&amp;os/mit/media/m/header/header-uh3-desktop-min-0724437.css&amp;os/mit/media/m/ads/ads-min-bcb1fc4.css&amp;os/mit/media/m/navigation/content-navigation-desktop-min-a8a04a0.css&amp;os/mit/media/m/navigation/content-navigation-stencil-desktop-min-a8a04a0.css&amp;os/mit/media/m/comments/td-applet-canvass-min-c0d8e81.css" />
+
+ <link rel="stylesheet" type="text/css" href="https://s1.yimg.com/zz/combo?os/mit/media/m/content/sfl-notifier-min-ee15495.css&amp;os/mit/media/m/content_social/media-content-follow-property-min-6f74faf.css&amp;os/mit/media/m/content_social/media-content-follow-property-desktop-min-d86f135.css&amp;os/mit/media/m/content_index/breaking-news-desktop-min-715358a.css&amp;os/mit/media/m/content/ce/media-content-min-243eedb.css&amp;os/mit/media/m/content/ce/media-content-desktop-min-01bcb1f.css&amp;os/mit/media/m/content_story/media-content-story-desktop-min-4e8e036.css&amp;os/mit/media/m/content/ce/media-content-header-min-243eedb.css&amp;os/mit/media/m/ads/moneyball-min-247cb99.css&amp;os/mit/media/m/article/video-embed-player-min-41caf31.css&amp;os/mit/media/m/content_photo/media-content-lightbox-desktop-min-4cf04ac.css&amp;os/mit/media/m/comments/media-content-comments-desktop-min-2e957f6.css&amp;os/mit/media/m/content/action-bar-min-ecbfa42.css&amp;yui:3.18.1/build/overlay/assets/skins/sam/overlay.css&amp;os/mit/media/m/content_social/media-content-share-buttons-int-min-0116754.css&amp;os/mit/media/m/content_social/media-content-share-buttons-desktop-min-1c5795a.css&amp;os/mit/media/m/content_index/generic-listings-desktop-min-da555a8.css&amp;os/mit/media/m/markup/iframe-min-158395.css" />
+
+ <link rel="stylesheet" type="text/css" href="https://s1.yimg.com/zz/combo?os/mit/media/themes/v2_base/base-min-41cfe10.css&amp;os/mit/media/themes/v2_base/base-imagery-min-bec5796.css&amp;os/mit/media/themes/v2_gmayellow/theme-min-864d3d1.css&amp;os/mit/media/themes/v2_gmayellow/theme-imagery-min-2b03118.css&amp;os/mit/media/p/news/lang/US-min-1937680.css" />
+
+
+ <style>
+ .yom-mod.yom-twittertimeline {
+ padding: 2px 0px;
+ margin-bottom: 19px;
+ }
+
+ .yom-mod.yom-twittertimeline,
+ .yom-mod.yom-twittertimeline .yom-iframe-wrap {
+ display: none\0/;
+ /*IE8 only*/
+ #display: none;
+ /*IE6, IE7*/
+ }
+
+ :root .yom-mod.yom-twittertimeline,
+ .yom-mod.yom-twittertimeline .yom-iframe-wrap {
+ display: block\0/IE9;
+ }
+ </style>
+
+
+ <script type="text/javascript" src="https://s1.yimg.com/zz/combo?yui:3.18.1/build/yui/yui-min.js&amp;os/mit/media/p/common/rmp-min-56d3a2e.js&amp;os/mit/media/m/base/viewport-loader-min-649ba6f.js&amp;ss/rapid-3.32.js&amp;os/mit/td/asset-loader-s-9178dbd1.js"></script>
+ <script>
+ if (!window.YAHOO) {
+ window.YAHOO = {};
+ }
+ if (!YAHOO.Media) {
+ YAHOO.Media = {};
+ }
+ if (!YAHOO.widget) {
+ YAHOO.widget = {};
+ }
+ </script>
+ <script>
+ if (!window.YMedia) {
+ var YMedia = YUI();
+ YMedia.includes = [];
+ YMedia.module_includes = [];
+ }
+ </script>
+ <script>
+ window.YMEDIA_REQ_ATTR = {
+ device: {
+ "os": "mac os x",
+ "osver": "10.11"
+ },
+ instr: {
+ request_id: "2o9nrnlc52333",
+ authfb: 0
+ },
+ csbeacon: function(isPjax, spaceId) {
+ if (!this._hasIssuedCsBeacon || isPjax) {
+ this._hasIssuedCsBeacon = true;
+ var spaceId = spaceId || "1197056126",
+ ssl = "1";
+ if (typeof YAHOO === "object" & amp; & amp; typeof YAHOO.i13n === "object" & amp; & amp; typeof YAHOO.i13n.sendComscoreEvent === "function") {
+ if (YAHOO.i13n.setEga) {
+ YAHOO.i13n.setEga("");
+ }
+ if (YAHOO.i13n.setLTT) {
+ YAHOO.i13n.setLTT("-1");
+ }
+ if (YAHOO.i13n.setRdg) {
+ YAHOO.i13n.setRdg("-1");
+ }
+ if (YAHOO.i13n.setSpaceid) {
+ YAHOO.i13n.setSpaceid(spaceId);
+ }
+ YAHOO.i13n.setSsl("1");
+ YAHOO.i13n.sendComscoreEvent();
+ }
+ }
+ },
+ _hasIssuedCsBeacon: false
+ };
+ </script><noscript>&lt;div&gt;&lt;img src="https://sb.scorecardresearch.com/b?c1=2&amp;c2=7241469&amp;c7=gma.yahoo.com%2Fveteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html&amp;c5=1197056126&amp;c14=-1&amp;cv=2.0&amp;cj=1" style="display:none" width="0" height="0" alt="" /&gt;&lt;/div&gt;</noscript>
+ <script>
+ window.YMEDIA_CRUMB = "HChlut9tb8N";
+ </script>
+ <!-- fe522.global.media.sg3.yahoo.com compressed/chunked Wed Dec 14 09:09:56 UTC 2016 -->
+
+ <script>
+ YUI.Env.add(window, 'unload', function() {
+ try {
+ YMEDIA_REQ_ATTR.csbeacon();
+ } catch (e) {}
+ });
+ </script>
+ <script>
+ window.YAHOO = window.YAHOO || {};
+ window.YAHOO.i13n = window.YAHOO.i13n || {};
+
+ YAHOO.i13n.beacon_server = "geo.yahoo.com";
+ YAHOO.i13n.YWA_CF_MAP = {
+ "_p": 20,
+ "ad": 58,
+ "authfb": 11,
+ "bpos": 24,
+ "camp": 54,
+ "cat": 25,
+ "code": 55,
+ "cpos": 21,
+ "ct": 23,
+ "dcl": 26,
+ "dir": 108,
+ "domContentLoadedEventEnd": 44,
+ "elm": 56,
+ "elmt": 57,
+ "f": 40,
+ "ft": 51,
+ "grpt": 109,
+ "ilc": 39,
+ "itc": 111,
+ "loadEventEnd": 45,
+ "ltxt": 17,
+ "mpos": 110,
+ "mrkt": 12,
+ "pcp": 67,
+ "pct": 48,
+ "pd": 46,
+ "pkgt": 22,
+ "pos": 20,
+ "prov": 114,
+ "psp": 72,
+ "pst": 68,
+ "pstcat": 47,
+ "pt": 13,
+ "rescode": 27,
+ "responseEnd": 43,
+ "responseStart": 41,
+ "rspns": 107,
+ "sca": 53,
+ "sec": 18,
+ "site": 42,
+ "slk": 19,
+ "sort": 28,
+ "t1": 121,
+ "t2": 122,
+ "t3": 123,
+ "t4": 124,
+ "t5": 125,
+ "t6": 126,
+ "t7": 127,
+ "t8": 128,
+ "t9": 129,
+ "tar": 113,
+ "test": 14,
+ "v": 52,
+ "ver": 49,
+ "x": 50
+ };
+ YAHOO.i13n.YWA_ACTION_MAP = {
+ "click": 12,
+ "drag": 21,
+ "drop": 106,
+ "error": 99,
+ "hover": 17,
+ "hswipe": 19,
+ "hvr": 115,
+ "key": 13,
+ "rchvw": 100,
+ "scrl": 104,
+ "scrolldown": 16,
+ "scrollup": 15,
+ "secview": 18,
+ "secvw": 116,
+ "svct": 14,
+ "swp": 103
+ };
+ YAHOO.i13n.YWA_OUTCOME_MAP = {
+ "abuse": 51,
+ "close": 34,
+ "cmmt": 128,
+ "cnct": 127,
+ "comment": 49,
+ "connect": 36,
+ "cueauthview": 43,
+ "cueconnectview": 46,
+ "cuedcl": 61,
+ "cuehpset": 50,
+ "cueinfoview": 45,
+ "cueloadview": 44,
+ "cueswipeview": 42,
+ "cuetop": 48,
+ "dclent": 101,
+ "dclitm": 102,
+ "drop": 22,
+ "dtctloc": 118,
+ "end": 31,
+ "entitydeclaration": 40,
+ "exprt": 122,
+ "favorite": 56,
+ "fetch": 30,
+ "filter": 35,
+ "flagcat": 131,
+ "flagitm": 129,
+ "follow": 52,
+ "hpset": 27,
+ "imprt": 123,
+ "insert": 28,
+ "itemdeclaration": 37,
+ "lgn": 125,
+ "lgo": 126,
+ "login": 33,
+ "msgview": 47,
+ "navigate": 25,
+ "open": 29,
+ "pa": 111,
+ "pgnt": 113,
+ "pl": 112,
+ "prnt": 124,
+ "reauthfb": 24,
+ "reply": 54,
+ "retweet": 55,
+ "rmct": 32,
+ "rmloc": 120,
+ "rmsvct": 117,
+ "sbmt": 114,
+ "setlayout": 38,
+ "sh": 107,
+ "share": 23,
+ "slct": 121,
+ "slctfltr": 133,
+ "slctloc": 119,
+ "sort": 39,
+ "srch": 134,
+ "svct": 109,
+ "top": 26,
+ "undo": 41,
+ "unflagcat": 132,
+ "unflagitm": 130,
+ "unfollow": 53,
+ "unsvct": 110
+ };
+
+ YMedia.rapid = {
+ rapidConfig: {
+ "spaceid": "1197056126",
+ "tracked_mods": ["mediacontentfollowproperty", "mediagettheapp", "mediacontentnavigation", "mediacontentbreakingnews", "mediacontentstory", "mediacontentsharebuttons", "mediacontentgenericlistings", "mediacontentgenericlistings_2", "mediatwittertimeline", "mediacontentfollowproperty_2", "mediafooterinfo", "mediacontentfollowproperty_3"],
+ "text_link_len": 8,
+ "client_only": 1,
+ "compr_type": "deflate",
+ "ult_token_capture": true,
+ "webworker_file": "\/__rapid-worker-1.2.js",
+ "test_id": "",
+ "keys": {
+ "ssl": "1",
+ "juris": "US",
+ "lang": "en-US",
+ "lpstaid": "4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c",
+ "mrkt": "US",
+ "pcp": "Good Morning America",
+ "pct": "1",
+ "pd": "",
+ "psp": "",
+ "pst": "",
+ "pstaid": "4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c",
+ "pstcat": "Flag_of_the_United_States",
+ "pt": "4",
+ "pub": "",
+ "site": "gma",
+ "test": "",
+ "ver": "grandslam"
+ },
+ "perf_navigationtime": 2,
+ "debug": false,
+ "nofollow_class": ["rapid-nf", "rapidnofollow", "w-right-arrow", "yom-weather-locations", "yom-super-hero"]
+ },
+ rapidInstance: null,
+ moduleQueue: [],
+ addModules: function(modInfo) {
+ this.moduleQueue.push(modInfo);
+ }
+ };
+ </script>
+
+ <script>
+ if (!YAHOO.ULT) {
+ YAHOO.ULT = {};
+ }
+ YAHOO.ULT.BEACON = "https://geo.yahoo.com/t";
+ </script>
+ <script>
+ (function(html) {
+ var c = html.className;
+ c += " JsEnabled";
+ c = c.replace("NoJs", "");
+ html.className = c;
+ })(document.documentElement);
+ </script>
+
+ <script language="javascript">
+ YUI.YUICfg = {
+ "gallery": "yui:gallery-2011.04.20-13-04",
+ "groups": {
+ "group0d9d821fd95f957944c70b69b28ef8dd5": {
+ "base": "https:\/\/s.yimg.com\/",
+ "comboBase": "https:\/\/s.yimg.com\/zz\/combo?",
+ "modules": {
+ "media-v2-chrome": {
+ "path": "os\/mit\/media\/p\/presentation\/v2-chrome-min-0ce369d.js"
+ },
+ "media-content-aft": {
+ "path": "os\/mit\/media\/p\/content\/content-aft-min-888106a.js"
+ },
+ "media-content-aft-report": {
+ "path": "os\/mit\/media\/p\/content\/content-aft-report-min-a202e73.js"
+ },
+ "media-yaft2-aftnoad": {
+ "path": "os\/mit\/media\/p\/content\/yaft2-aftnoad-min-e5cc02b.js"
+ },
+ "media-yaft2-harbeacon": {
+ "path": "os\/mit\/media\/p\/content\/yaft2-harbeacon-min-dabe12d.js"
+ },
+ "media-tracking": {
+ "path": "os\/mit\/media\/m\/base\/tracking-min-649ba6f.js"
+ },
+ "media-imageloader": {
+ "path": "os\/mit\/media\/m\/base\/imageloader-min-649ba6f.js"
+ },
+ "media-imageloader-bootstrap": {
+ "path": "os\/mit\/media\/m\/base\/imageloader-bootstrap-min-649ba6f.js"
+ },
+ "media-af-beacon": {
+ "path": "os\/mit\/media\/p\/common\/af-beacon-min-4e5a259.js"
+ },
+ "media-rapid-tracking": {
+ "path": "os\/mit\/media\/p\/common\/rapid-tracking-min-f0b314d.js"
+ },
+ "media-header-uh3-desktop": {
+ "path": "os\/mit\/media\/m\/header\/header-uh3-desktop-min-ba174cb.js"
+ },
+ "media-iframe": {
+ "path": "os\/mit\/media\/m\/markup\/iframe-min-274866.js"
+ },
+ "media-twitter-embed-gs": {
+ "path": "os\/mit\/media\/m\/sharing\/twitter-embed-gs-min-63c2e0c.js"
+ },
+ "media-fb-embed-gs": {
+ "path": "os\/mit\/media\/m\/sharing\/fb-embed-gs-min-bb31164.js"
+ }
+ },
+ "combine": true,
+ "filter": "min",
+ "root": "\/"
+ }
+ },
+ "combine": true,
+ "allowRollup": true,
+ "comboBase": "https:\/\/s.yimg.com\/zz\/combo?",
+ "fetchCSS": false,
+ "maxURLLength": "2000"
+ }
+ YUI.YUICfg.root = 'yui:' + YUI.version + '/build/';
+ YMedia.applyConfig(YUI.YUICfg);
+ YUI.Env[YUI.version].base = 'https://s.yimg.com/';
+ YUI.Env[YUI.version].comboBase = 'https://s.yimg.com/zz/combo?';
+ YUI.Env[YUI.version].root = 'yui:' + YUI.version + '/build/';
+ YMedia.use("media-rmp", "media-viewport-loader", "media-v2-chrome", "media-content-aft", "media-content-aft-report", "media-yaft2-aftnoad", "media-yaft2-harbeacon", "media-tracking", "node-base", "event-custom", "dom-deprecated", "node-deprecated", "substitute", "media-imageloader", "media-imageloader-bootstrap", "base-base", "node-style", "node-screen", "media-af-beacon", "json-stringify", "querystring-stringify-simple", "media-rapid-tracking", "base", "node", "media-header-uh3-desktop", "intl", "media-iframe", function(Y) {
+
+ Y.later(10, this, function() {
+ Y.applyConfig({
+ debug: false
+ });
+ });
+ Y.later(10, this, function() {
+ YUI.namespace("Media").LANGDIR = 'ltr';
+ YUI.namespace("Media").CONTENT_ID = "4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c";
+ });
+ Y.later(10, this, function() {
+ (function() {
+ function focusSearch() {
+ var a = Y.one('#mnp-search_box') || Y.one('#UHSearchBox');
+ if (Y.UA & amp; & amp;
+ (Y.UA.ios || Y.UA.android)) {
+ return;
+ }
+ if (a) {
+ a.focus();
+ } else {
+ window.setTimeout(focusSearch, 300);
+ }
+ }
+ focusSearch();
+ })();
+ });
+ Y.later(10, this, function() {
+ if (Y.Media & amp; & amp; Y.Media.Chrome) {
+ Y.Media.pageChrome = Y.Media.Chrome(Y, {
+ site: 'gma',
+ lang: 'en-US',
+ region: 'US',
+ spaceId: '1197056126',
+ contentId: '4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c',
+ gridType: 'content',
+ device: 'full',
+ deviceOS: (typeof YMEDIA_REQ_ATTR !== 'undefined' & amp; & amp; YMEDIA_REQ_ATTR.device & amp; & amp; YMEDIA_REQ_ATTR.device.os) || '',
+ deviceOSVer: (typeof YMEDIA_REQ_ATTR !== 'undefined' & amp; & amp; YMEDIA_REQ_ATTR.device & amp; & amp; YMEDIA_REQ_ATTR.device.osver) || '',
+ projectId: '10001736184279',
+ enableYwaTracking: '1',
+ enable2xImgs: '0',
+ imgItemsSelector: '.js .yog-bd img',
+ enableViewportManagement: '0',
+ viewportItemsSelector: '.js .yog-content img,.yog-smartphone.js .yog-bd img',
+ transparentImgUrl: 'https://s.yimg.com/os/mit/media/m/base/images/transparent-649ba6f.png',
+ enableRapidTracking: 1,
+ rapidConf: {
+ "spaceid": "1197056126",
+ "tracked_mods": ["mediacontentfollowproperty", "mediagettheapp", "mediacontentnavigation", "mediacontentbreakingnews", "mediacontentstory", "mediacontentsharebuttons", "mediacontentgenericlistings", "mediacontentgenericlistings_2", "mediatwittertimeline", "mediacontentfollowproperty_2", "mediafooterinfo", "mediacontentfollowproperty_3"],
+ "text_link_len": 8,
+ "client_only": 1,
+ "compr_type": "deflate",
+ "ult_token_capture": true,
+ "webworker_file": "\/__rapid-worker-1.2.js",
+ "test_id": "",
+ "keys": {
+ "ssl": "1",
+ "juris": "US",
+ "lang": "en-US",
+ "lpstaid": "4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c",
+ "mrkt": "US",
+ "pcp": "Good Morning America",
+ "pct": "1",
+ "pd": "",
+ "psp": "",
+ "pst": "",
+ "pstaid": "4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c",
+ "pstcat": "Flag_of_the_United_States",
+ "pt": "4",
+ "pub": "",
+ "site": "gma",
+ "test": "",
+ "ver": "grandslam"
+ },
+ "perf_navigationtime": 2,
+ "debug": false,
+ "nofollow_class": ["rapid-nf", "rapidnofollow", "w-right-arrow", "yom-weather-locations", "yom-super-hero"]
+ },
+ bucketId: '',
+ baseImageryFallbackCss: 'https://s.yimg.com/os/mit/media/themes/v2_base/base-imagery-fallback-min-5c5abcd.css',
+ baseImageryFallbackCssLteIe7: 'https://s.yimg.com/os/mit/media/themes/v2_base/base-imagery-fallback-lteIE7-min-5c5abcd.css',
+ enableGlassTheme: '0',
+ backgroundImageUrl: ''
+ });
+ };
+ });
+ Y.later(10, this, function() {
+ Y.namespace("Global.Media").ILBoot = new Y.ImageLoaderBootstrap(200);
+ });
+ Y.later(10, this, function() { // create RapidTracking object reusing existing moduleQueue
+ YMedia.rapid = new Y.Media.RapidTracking({
+ instance: YMedia.rapid & amp; & amp;YMedia.rapid.rapidInstance,
+ moduleQueue: YMedia.rapid & amp; & amp;YMedia.rapid.moduleQueue,
+ rapidConfig: YMedia.rapid & amp; & amp;YMedia.rapid.rapidConfig,
+ config: {
+ selectors: {
+ 'bd': 'body',
+ 'mods': '.yom-mod'
+ }
+ }
+ });
+ });
+ Y.later(10, this, function() {
+ if (Y.Media & amp; & amp; Y.Media.HeaderUH3) {
+ Y.Media.HeaderUH3(Y, {
+ version: 'v2sg'
+ });
+ };
+ });
+ Y.later(10, this, function() {
+ var jslib = 'http://yep.video.yahoo.com/js/3/videoplayer-min.js?lang=en-US';
+ if ("" !== jslib) {
+ var script = document.createElement('script');
+ var jslibovrd = '';
+ jslib = jslib.replace('http:', window.location.protocol);
+ script.type = 'text/javascript';
+ if (document.addEventListener) {
+ jslib += '&amp;r=nextgen-flash';
+ }
+ script.src = jslibovrd || jslib;
+ document.getElementsByTagName('head')[0].appendChild(script);
+ }
+ });
+ Y.later(10, this, function() {
+ Y.on("domready", function() {
+ Y.Global.Media.IFrameMgr.add({
+ "id": "yom-twittertimelineGMA_466161154243313665_400-ifr",
+ "src": "https:\/\/gma.yahoo.com\/_xhr\/social\/twitter-timeline\/?id=7w0RmYNLaFM-&amp;widget_id=466161154243313665&amp;height=400&amp;twitter_lang=en-US",
+ "width": "100%",
+ "height": "400px",
+ "scrolling": "no"
+ });
+ });
+ });
+ Y.later(10, this, function() {
+ var vplContainers = [{
+ "selector": "#mediacontentfollowproperty_3",
+ "use": ["media-tracking"],
+ "callback": function(node) {
+
+ var e = [];
+ var additionalKeys = [];
+ additionalKeys.mid = "mediacontentfollowproperty";
+ additionalKeys.act = "secvw";
+ additionalKeys.sec = "sh-fwm";
+ additionalKeys.t1 = "a4";
+ additionalKeys.t2 = "sh-fwm";
+ e = {
+ data: {
+ name: "secvw",
+ keys: additionalKeys
+ },
+ mod_id: "mediacontentfollowproperty"
+ };
+
+ Y.Global.fire('rapid-tracker:event', e);
+
+ }
+ }, {
+ "selector": "#mediacontentstory .twitter-tweet, #mediacontentstory .twitter-moment",
+ "use": ["media-twitter-embed-gs"],
+ "callback": function(node) {
+
+ new Y.Media.SharingEmbedTwitterGS({
+ "modId": "mediacontentstory"
+ });
+
+ }
+ }, {
+ "selector": "#mediacontentstory .fb-post",
+ "use": ["media-fb-embed-gs"],
+ "callback": function(node) {
+
+ new Y.Media.SharingEmbedFacebookGS({
+ "modId": "mediacontentstory"
+ });
+
+ }
+ }, {
+ "selector": "#mediacontentfollowproperty_2",
+ "use": ["media-tracking"],
+ "callback": function(node) {
+
+ var e = [];
+ var additionalKeys = [];
+ additionalKeys.mid = "mediacontentfollowproperty";
+ additionalKeys.act = "secvw";
+ additionalKeys.sec = "sh-fwm";
+ additionalKeys.t1 = "a4";
+ additionalKeys.t2 = "sh-fwm";
+ e = {
+ data: {
+ name: "secvw",
+ keys: additionalKeys
+ },
+ mod_id: "mediacontentfollowproperty"
+ };
+
+ Y.Global.fire('rapid-tracker:event', e);
+
+ }
+ }, ];
+
+ var vpl = Y.Object.getValue(Y, ['Global', 'Media', 'ViewportLoader']);
+ if (vpl) {
+ vpl.lookaheadOffset = 250;
+ vpl.addContainers(vplContainers);
+ }
+ });
+
+ });
+ </script>
+ <script charset="utf-8" id="yui_3_18_1_1_1481706756324_2" src="https://s.yimg.com/zz/combo?yui:3.18.1/build/oop/oop-min.js&amp;yui:3.18.1/build/event-custom-base/event-custom-base-min.js&amp;yui:3.18.1/build/event-base/event-base-min.js&amp;yui:3.18.1/build/dom-core/dom-core-min.js&amp;yui:3.18.1/build/dom-base/dom-base-min.js&amp;yui:3.18.1/build/selector-native/selector-native-min.js&amp;yui:3.18.1/build/selector/selector-min.js&amp;yui:3.18.1/build/node-core/node-core-min.js&amp;yui:3.18.1/build/dom-style/dom-style-min.js&amp;yui:3.18.1/build/node-base/node-base-min.js&amp;yui:3.18.1/build/event-delegate/event-delegate-min.js&amp;yui:3.18.1/build/node-event-delegate/node-event-delegate-min.js&amp;yui:3.18.1/build/pluginhost-base/pluginhost-base-min.js&amp;yui:3.18.1/build/pluginhost-config/pluginhost-config-min.js&amp;yui:3.18.1/build/node-pluginhost/node-pluginhost-min.js&amp;yui:3.18.1/build/dom-screen/dom-screen-min.js&amp;yui:3.18.1/build/node-screen/node-screen-min.js&amp;yui:3.18.1/build/node-style/node-style-min.js&amp;yui:3.18.1/build/querystring-stringify-simple/querystring-stringify-simple-min.js&amp;yui:3.18.1/build/io-base/io-base-min.js&amp;yui:3.18.1/build/event-custom-complex/event-custom-complex-min.js&amp;yui:3.18.1/build/async-queue/async-queue-min.js&amp;/os/mit/media/p/presentation/v2-chrome-min-0ce369d.js&amp;/os/mit/media/p/content/content-aft-min-888106a.js&amp;/os/mit/media/p/content/content-aft-report-min-a202e73.js&amp;/os/mit/media/p/content/yaft2-aftnoad-min-e5cc02b.js&amp;/os/mit/media/p/content/yaft2-harbeacon-min-dabe12d.js&amp;/os/mit/media/m/base/tracking-min-649ba6f.js&amp;yui:3.18.1/build/substitute/substitute-min.js&amp;/os/mit/media/m/base/imageloader-min-649ba6f.js&amp;/os/mit/media/m/base/imageloader-bootstrap-min-649ba6f.js&amp;yui:3.18.1/build/attribute-core/attribute-core-min.js&amp;yui:3.18.1/build/attribute-observable/attribute-observable-min.js&amp;yui:3.18.1/build/attribute-extras/attribute-extras-min.js&amp;yui:3.18.1/build/attribute-base/attribute-base-min.js&amp;yui:3.18.1/build/base-core/base-core-min.js&amp;yui:3.18.1/build/base-observable/base-observable-min.js&amp;yui:3.18.1/build/base-base/base-base-min.js" async=""></script>
+ <script charset="utf-8" id="yui_3_18_1_1_1481706756324_3" src="https://s.yimg.com/zz/combo?/os/mit/media/p/common/af-beacon-min-4e5a259.js&amp;yui:3.18.1/build/json-stringify/json-stringify-min.js&amp;/os/mit/media/p/common/rapid-tracking-min-f0b314d.js&amp;yui:3.18.1/build/base-pluginhost/base-pluginhost-min.js&amp;yui:3.18.1/build/base-build/base-build-min.js&amp;/os/mit/media/m/header/header-uh3-desktop-min-ba174cb.js&amp;yui:3.18.1/build/intl/intl-min.js&amp;/os/mit/media/m/markup/iframe-min-274866.js" async=""></script>
+ <script charset="utf-8" id="yui_3_18_1_1_1481706756324_9" src="https://s.yimg.com/zz/combo?yui:3.18.1/build/event-synthetic/event-synthetic-min.js&amp;yui:3.18.1/build/event-mousewheel/event-mousewheel-min.js&amp;yui:3.18.1/build/event-mouseenter/event-mouseenter-min.js&amp;yui:3.18.1/build/event-key/event-key-min.js&amp;yui:3.18.1/build/event-focus/event-focus-min.js&amp;yui:3.18.1/build/event-resize/event-resize-min.js&amp;yui:3.18.1/build/event-hover/event-hover-min.js&amp;yui:3.18.1/build/event-outside/event-outside-min.js&amp;yui:3.18.1/build/event-touch/event-touch-min.js&amp;yui:3.18.1/build/event-move/event-move-min.js&amp;yui:3.18.1/build/event-flick/event-flick-min.js&amp;yui:3.18.1/build/event-valuechange/event-valuechange-min.js&amp;yui:3.18.1/build/event-tap/event-tap-min.js" async=""></script>
+ <script charset="utf-8" id="yui_3_18_1_1_1481706756324_88" src="https://s.yimg.com/zz/combo?/os/mit/media/p/content/content-manager-min-c15b49c.js&amp;/os/mit/media/p/content/perf-timeable-min-3201e29.js&amp;/os/mit/media/p/content/beacon-manager-min-c84baae.js&amp;yui:3.18.1/build/array-extras/array-extras-min.js&amp;yui:3.18.1/build/plugin/plugin-min.js&amp;yui:3.18.1/build/node-scroll-info/node-scroll-info-min.js&amp;/os/mit/media/p/content/ad-controller-min-cc0aa40.js&amp;/os/mit/media/p/content/interest-manager-min-0527e1c.js&amp;yui:3.18.1/build/json-parse/json-parse-min.js&amp;/ss/strip_3.4.js&amp;/os/mit/media/p/content/instrumentation-min-a1c712f.js&amp;/os/mit/media/m/content_photo/content-lightbox-min-b3d9d25.js&amp;/os/mit/media/m/content_photo/content-lightbox-ib-min-ced7535.js&amp;/os/mit/media/m/content_photo/content-lightbox-endslide-min-ced7535.js&amp;/os/mit/media/m/content_photo/content-lightbox-rmx-min-6728742.js&amp;/os/mit/media/m/content_story/content-story-min-e5c79d5.js&amp;yui:3.18.1/build/attribute-complex/attribute-complex-min.js&amp;yui:3.18.1/build/classnamemanager/classnamemanager-min.js&amp;yui:3.18.1/build/widget-base/widget-base-min.js&amp;yui:3.18.1/build/widget-htmlparser/widget-htmlparser-min.js&amp;yui:3.18.1/build/widget-skin/widget-skin-min.js&amp;yui:3.18.1/build/widget-uievents/widget-uievents-min.js&amp;yui:3.18.1/build/widget-stdmod/widget-stdmod-min.js&amp;yui:3.18.1/build/widget-position/widget-position-min.js&amp;yui:3.18.1/build/widget-position-align/widget-position-align-min.js&amp;yui:3.18.1/build/widget-stack/widget-stack-min.js&amp;yui:3.18.1/build/widget-position-constrain/widget-position-constrain-min.js&amp;yui:3.18.1/build/overlay/overlay-min.js&amp;/os/mit/media/m/comments/content-comments-min-7833766.js&amp;/os/mit/media/m/videos/videoInlinePlayer-min-8cab8cc.js&amp;/os/mit/media/m/content_video/con-vid-min-43b7a7a.js&amp;yui:3.18.1/build/arraylist/arraylist-min.js&amp;yui:3.18.1/build/arraylist-add/arraylist-add-min.js&amp;yui:3.18.1/build/swfdetect/swfdetect-min.js&amp;yui:3.18.1/build/escape/escape-min.js&amp;yui:3.18.1/build/swf/swf-min.js" async=""></script>
+ <script charset="utf-8" id="yui_3_18_1_1_1481706756324_89" src="https://s.yimg.com/zz/combo?/os/mit/media/m/content_social/content-share-buttons-int-min-5e4593a.js&amp;/os/mit/media/m/content_social/content-social-base-min-f516ed2.js&amp;yui:3.18.1/build/datatype-xml-parse/datatype-xml-parse-min.js&amp;yui:3.18.1/build/io-xdr/io-xdr-min.js&amp;yui:3.18.1/build/io-form/io-form-min.js&amp;yui:3.18.1/build/io-upload-iframe/io-upload-iframe-min.js&amp;yui:3.18.1/build/queue-promote/queue-promote-min.js&amp;yui:3.18.1/build/io-queue/io-queue-min.js&amp;yui:3.18.1/build/datatype-date-parse/datatype-date-parse-min.js&amp;yui:3.18.1/build/datatype-date-format/lang/datatype-date-format_en-US.js&amp;yui:3.18.1/build/datatype-date-format/datatype-date-format-min.js&amp;yui:3.18.1/build/datatype-date-math/datatype-date-math-min.js&amp;yui:3.18.1/build/datatype-number-parse/datatype-number-parse-min.js&amp;yui:3.18.1/build/datatype-number-format/datatype-number-format-min.js&amp;yui:3.18.1/build/datatype-xml-format/datatype-xml-format-min.js&amp;yui:3.18.1/build/querystring-parse/querystring-parse-min.js&amp;yui:3.18.1/build/querystring-stringify/querystring-stringify-min.js&amp;/os/mit/media/m/content_social/content-share-buttons-min-ac7c5e1.js" async=""></script>
+ <script charset="utf-8" id="yui_3_18_1_1_1481706756324_90" src="https://s.yimg.com/zz/combo?yui:3.18.1/build/event-simulate/event-simulate-min.js&amp;yui:3.18.1/build/gesture-simulate/gesture-simulate-min.js&amp;yui:3.18.1/build/node-event-simulate/node-event-simulate-min.js&amp;yui:3.18.1/build/jsonp/jsonp-min.js&amp;yui:3.18.1/build/handlebars-base/handlebars-base-min.js&amp;yui:3.18.1/build/handlebars-compiler/handlebars-compiler-min.js&amp;yui:3.18.1/build/cookie/cookie-min.js&amp;yui:3.18.1/build/querystring-parse-simple/querystring-parse-simple-min.js&amp;os/mit/td/ape-af-0.0.330/af-utils/af-utils-min.js&amp;os/mit/td/ape-af-0.0.330/af-config/af-config-min.js&amp;os/mit/td/ape-af-0.0.330/af-dom/af-dom-min.js&amp;os/mit/td/mjata-0.4.35/mjata-rest-http/mjata-rest-http-min.js&amp;os/mit/td/ape-af-0.0.330/af-content/af-content-min.js&amp;yui:3.18.1/build/history-base/history-base-min.js&amp;yui:3.18.1/build/history-hash/history-hash-min.js&amp;yui:3.18.1/build/history-html5/history-html5-min.js&amp;yui:3.18.1/build/router/router-min.js&amp;yui:3.18.1/build/pjax-base/pjax-base-min.js&amp;yui:3.18.1/build/view/view-min.js&amp;yui:3.18.1/build/app-base/app-base-min.js&amp;yui:3.18.1/build/pjax-content/pjax-content-min.js&amp;yui:3.18.1/build/app-content/app-content-min.js&amp;yui:3.18.1/build/parallel/parallel-min.js&amp;yui:3.18.1/build/transition/transition-min.js&amp;yui:3.18.1/build/app-transitions/app-transitions-min.js&amp;yui:3.18.1/build/array-invoke/array-invoke-min.js&amp;yui:3.18.1/build/model/model-min.js&amp;yui:3.18.1/build/model-list/model-list-min.js&amp;yui:3.18.1/build/lazy-model-list/lazy-model-list-min.js&amp;yui:3.18.1/build/model-sync-rest/model-sync-rest-min.js&amp;yui:3.18.1/build/model-sync-local/model-sync-local-min.js&amp;yui:3.18.1/build/view-node-map/view-node-map-min.js&amp;os/mit/td/ape-af-0.0.330/af-trans/af-trans-min.js&amp;os/mit/td/ape-applet-0.0.210/af-applet-dom/af-applet-dom-min.js&amp;os/mit/td/ape-applet-0.0.210/af-applet-action/af-applet-action-min.js&amp;os/mit/td/ape-af-0.0.330/af-bootstrap/af-bootstrap-min.js&amp;os/mit/td/mjata-0.4.35/mjata-queue/mjata-queue-min.js&amp;os/mit/td/mjata-0.4.35/mjata-util/mjata-util-min.js" async=""></script>
+ <script charset="utf-8" id="yui_3_18_1_1_1481706756324_91" src="https://s.yimg.com/zz/combo?os/mit/td/mjata-0.4.35/mjata-store/mjata-store-min.js&amp;os/mit/td/ape-af-0.0.330/tdapi-remotestore/tdapi-remotestore-min.js&amp;os/mit/td/ape-af-0.0.330/af-transport/af-transport-min.js&amp;os/mit/td/ape-af-0.0.330/af-sync/af-sync-min.js&amp;os/mit/td/mjata-0.4.35/mjata-json/mjata-json-min.js&amp;os/mit/td/ape-applet-0.0.210/af-applet-model/af-applet-model-min.js&amp;os/mit/td/stencil-2.0.26/stencil/stencil-min.js&amp;os/mit/td/stencil-2.0.26/stencil-base/stencil-base-min.js&amp;os/mit/td/stencil-2.0.26/stencil-imageloader/stencil-imageloader-min.js&amp;os/mit/td/dust-helpers-0.0.146/moment/moment-min.js&amp;os/mit/td/dust-helpers-0.0.146/intl-messageformat/intl-messageformat-min.js&amp;os/mit/td/dust-helpers-0.0.146/dust-helper-intl/dust-helper-intl-min.js&amp;os/mit/td/dust-helpers-0.0.146/intl-helper/intl-helper-min.js&amp;os/mit/td/dust-helpers-0.0.146/dust/dust-min.js&amp;os/mit/td/ape-applet-0.0.210/af-applet-view/af-applet-view-min.js&amp;os/mit/td/stencil-2.0.26/stencil-selectbox/stencil-selectbox-min.js&amp;os/mit/td/ape-applet-0.0.210/af-applet-headerview/af-applet-headerview-min.js&amp;os/mit/td/ape-af-0.0.330/af-compositeview/af-compositeview-min.js&amp;os/mit/td/stencil-2.0.26/stencil-source/stencil-source-min.js&amp;os/mit/td/stencil-2.0.26/stencil-tooltip/stencil-tooltip-min.js&amp;os/mit/td/ape-applet-0.0.210/af-applet/af-applet-min.js&amp;os/mit/td/ape-applet-0.0.210/af-applet-init/af-applet-init-min.js&amp;yui:3.18.1/build/template-base/template-base-min.js&amp;os/mit/td/ape-af-0.0.330/ape-af-templates-message/ape-af-templates-message-min.js&amp;yui:3.18.1/build/selector-css2/selector-css2-min.js&amp;yui:3.18.1/build/selector-css3/selector-css3-min.js&amp;os/mit/td/ape-af-0.0.330/af-message/af-message-min.js&amp;os/mit/td/ape-applet-0.0.210/ape-applet-templates-reload/ape-applet-templates-reload-min.js&amp;os/mit/td/ape-applet-0.0.210/af-applet-load/af-applet-load-min.js&amp;os/mit/td/ape-applet-0.0.210/af-applet-mgr/af-applet-mgr-min.js&amp;os/mit/td/ape-applet-0.0.210/af-applet-savesettings/af-applet-savesettings-min.js" async=""></script>
+ <script charset="utf-8" id="yui_3_18_1_1_1481706756324_92" src="https://s.yimg.com/zz/combo?os/mit/td/ape-applet-0.0.210/af-applet-viewmgr/af-applet-viewmgr-min.js&amp;os/mit/td/ape-applet-0.0.210/af-applets/af-applets-min.js&amp;os/mit/td/ape-af-0.0.330/af-rapid/af-rapid-min.js&amp;os/mit/td/td-applet-ads-0.1.593/td-ads-feedback/td-ads-feedback-min.js&amp;yui:3.18.1/build/app-transitions-native/app-transitions-native-min.js" async=""></script>
+ <script charset="utf-8" id="yui_3_18_1_1_1481706756324_249" src="https://s.yimg.com/zz/combo?os/mit/td/td-applet-photoheader-0.1.314/td-photoheader-model/td-photoheader-model-min.js&amp;os/mit/td/td-applet-photoheader-0.1.314/td-photoheader-mainview/td-photoheader-mainview-min.js&amp;os/mit/td/td-applet-photoheader-0.1.314/td-applet-photoheader-templates-main/td-applet-photoheader-templates-main-min.js&amp;os/mit/td/td-applet-videoplayer-0.3.1019/td-applet-video-playlist-model/td-applet-video-playlist-model-min.js&amp;os/mit/td/td-applet-videoplayer-0.3.1019/td-applet-videoplayer-nextscroll/td-applet-videoplayer-nextscroll-min.js&amp;os/mit/td/td-applet-videoplayer-0.3.1019/td-applet-videoplayer-templates-title/td-applet-videoplayer-templates-title-min.js&amp;os/mit/td/td-applet-videoplayer-0.3.1019/td-applet-videoplayer-templates-video/td-applet-videoplayer-templates-video-min.js&amp;yui:3.18.1/build/timers/timers-min.js&amp;yui:3.18.1/build/promise/promise-min.js&amp;os/mit/td/mjata-0.4.35/mjata-model-store/mjata-model-store-min.js&amp;os/mit/td/mjata-0.4.35/mjata-template/mjata-template-min.js&amp;os/mit/td/mjata-0.4.35/mjata-bind-model2dom/mjata-bind-model2dom-min.js&amp;yui:3.18.1/build/cache-base/cache-base-min.js&amp;yui:3.18.1/build/cache-offline/cache-offline-min.js&amp;os/mit/td/td-applet-videoplayer-0.3.1019/td-videoplayer-util/td-videoplayer-util-min.js&amp;os/mit/td/td-applet-videoplayer-0.3.1019/video-applet-player-manager/video-applet-player-manager-min.js&amp;os/mit/td/td-applet-videoplayer-0.3.1019/video-applet-nextgen-manager/video-applet-nextgen-manager-min.js&amp;yui:3.18.1/build/cache-plugin/cache-plugin-min.js&amp;os/mit/td/td-applet-videoplayer-0.3.1019/video-applet-playlist-manager/video-applet-playlist-manager-min.js&amp;os/mit/td/td-applet-videoplayer-0.3.1019/video-applet-playlist-util/video-applet-playlist-util-min.js&amp;os/mit/td/td-applet-videoplayer-0.3.1019/video-player-js/video-player-js-min.js&amp;yui:3.18.1/build/shim-plugin/shim-plugin-min.js&amp;os/mit/td/stencil-2.0.26/stencil-lightbox/stencil-lightbox-min.js" async=""></script>
+ <script charset="utf-8" id="yui_3_18_1_1_1481706756324_250" src="https://s.yimg.com/zz/combo?os/mit/td/td-applet-videoplayer-0.3.1019/social-sharing-lib-temp/social-sharing-lib-temp-min.js&amp;os/mit/td/td-applet-videoplayer-0.3.1019/td-applet-videoplayer-templates-partials-cinematron-pause-thumb/td-applet-videoplayer-templates-partials-cinematron-pause-thumb-min.js&amp;os/mit/td/td-applet-videoplayer-0.3.1019/td-applet-videoplayer-templates-partials-img-helper/td-applet-videoplayer-templates-partials-img-helper-min.js&amp;os/mit/td/td-applet-videoplayer-0.3.1019/td-applet-videoplayer-templates-partials-cinematron-upnext/td-applet-videoplayer-templates-partials-cinematron-upnext-min.js&amp;os/mit/td/td-applet-videoplayer-0.3.1019/td-videoplayer-player-maestro/td-videoplayer-player-maestro-min.js&amp;os/mit/td/td-applet-videoplayer-0.3.1019/td-videoplayer-common-view/td-videoplayer-common-view-min.js&amp;os/mit/td/td-applet-videoplayer-0.3.1019/td-videoplayer-mainview/td-videoplayer-mainview-min.js&amp;os/mit/td/td-applet-videoplayer-0.3.1019/td-applet-videoplayer-templates-player-js/td-applet-videoplayer-templates-player-js-min.js&amp;os/mit/td/td-applet-videoplayer-0.3.1019/td-applet-videoplayer-templates-style-block/td-applet-videoplayer-templates-style-block-min.js&amp;os/mit/td/td-applet-videoplayer-0.3.1019/td-applet-videoplayer-templates-schema-org-meta/td-applet-videoplayer-templates-schema-org-meta-min.js&amp;os/mit/td/td-applet-videoplayer-0.3.1019/td-applet-videoplayer-templates-main/td-applet-videoplayer-templates-main-min.js&amp;os/mit/td/ape-af-0.0.330/af-event/af-event-min.js&amp;os/mit/td/td-applet-canvass-1.0.94/td-applet-canvass-templates-styles/td-applet-canvass-templates-styles-min.js&amp;os/mit/td/td-applet-canvass-1.0.94/td-applet-canvass-mainview/td-applet-canvass-mainview-min.js&amp;os/mit/td/td-applet-canvass-1.0.94/td-applet-canvass-templates-avatar/td-applet-canvass-templates-avatar-min.js&amp;os/mit/td/td-applet-canvass-1.0.94/td-applet-canvass-templates-comments-body/td-applet-canvass-templates-comments-body-min.js" async=""></script>
+ <script charset="utf-8" id="yui_3_18_1_1_1481706756324_251" src="https://s.yimg.com/zz/combo?os/mit/td/td-applet-canvass-1.0.94/td-applet-canvass-templates-activities/td-applet-canvass-templates-activities-min.js&amp;os/mit/td/td-applet-canvass-1.0.94/td-applet-canvass-templates-activity-comments/td-applet-canvass-templates-activity-comments-min.js&amp;os/mit/td/td-applet-canvass-1.0.94/td-applet-canvass-templates-replies-body/td-applet-canvass-templates-replies-body-min.js&amp;os/mit/td/td-applet-canvass-1.0.94/td-applet-canvass-templates-activity-replies/td-applet-canvass-templates-activity-replies-min.js&amp;os/mit/td/td-applet-canvass-1.0.94/td-applet-canvass-templates-form-reply/td-applet-canvass-templates-form-reply-min.js&amp;os/mit/td/td-applet-canvass-1.0.94/td-applet-canvass-templates-form-abuse/td-applet-canvass-templates-form-abuse-min.js&amp;os/mit/td/td-applet-canvass-1.0.94/td-applet-canvass-templates-form-delete/td-applet-canvass-templates-form-delete-min.js&amp;os/mit/td/td-applet-canvass-1.0.94/td-applet-canvass-templates-form-comment/td-applet-canvass-templates-form-comment-min.js&amp;os/mit/td/td-applet-canvass-1.0.94/td-applet-canvass-templates-main/td-applet-canvass-templates-main-min.js&amp;os/mit/td/td-applet-canvass-1.0.94/td-applet-canvass-templates-main-activities/td-applet-canvass-templates-main-activities-min.js&amp;os/mit/td/td-applet-canvass-1.0.94/td-applet-canvass-templates-comments/td-applet-canvass-templates-comments-min.js&amp;os/mit/td/td-applet-canvass-1.0.94/td-applet-canvass-templates-replies/td-applet-canvass-templates-replies-min.js&amp;os/mit/td/td-applet-stream-0.0.1319/td-applet-stream-model/td-applet-stream-model-min.js&amp;os/mit/td/td-applet-stream-0.0.1319/td-applet-stream-items-model/td-applet-stream-items-model-min.js&amp;os/mit/td/mjata-0.4.35/mjata-model/mjata-model-min.js&amp;os/mit/td/mjata-0.4.35/mjata-modellist/mjata-modellist-min.js&amp;os/mit/td/mjata-0.4.35/mjata-model-base/mjata-model-base-min.js&amp;os/mit/td/td-applet-stream-0.0.1319/td-applet-stream-appletmodel/td-applet-stream-appletmodel-min.js" async=""></script>
+ <script charset="utf-8" id="yui_3_18_1_1_1481706756324_252" src="https://s.yimg.com/zz/combo?os/mit/td/td-applet-stream-0.0.1319/td-applet-interest-model/td-applet-interest-model-min.js&amp;os/mit/td/ape-af-0.0.330/af-comscore/af-comscore-min.js&amp;os/mit/td/ape-af-0.0.330/af-cookie/af-cookie-min.js&amp;os/mit/td/ape-af-0.0.330/gallery-storage-lite/gallery-storage-lite-min.js&amp;os/mit/td/ape-af-0.0.330/af-cache/af-cache-min.js&amp;os/mit/td/ape-af-0.0.330/af-history/af-history-min.js&amp;os/mit/td/stencil-2.0.26/stencil-gallery/stencil-gallery-min.js&amp;os/mit/td/td-applet-stream-0.0.1319/td-applet-stream-mainview/td-applet-stream-mainview-min.js&amp;os/mit/td/mjata-0.4.35/mjata-lazy-modellist/mjata-lazy-modellist-min.js&amp;os/mit/td/ape-location-0.0.48/af-locations/af-locations-min.js&amp;os/mit/td/ape-location-0.0.48/ape-location-templates-location-list/ape-location-templates-location-list-min.js&amp;os/mit/td/ape-location-0.0.48/ape-location-templates-location-panel/ape-location-templates-location-panel-min.js&amp;os/mit/td/stencil-2.0.26/stencil-toggle/stencil-toggle-min.js&amp;os/mit/td/ape-location-0.0.48/af-location-panel/af-location-panel-min.js&amp;os/mit/td/td-applet-stream-0.0.1319/td-applet-stream-headerview/td-applet-stream-headerview-min.js&amp;os/mit/td/stencil-2.0.26/stencil-fx/stencil-fx-min.js&amp;os/mit/td/stencil-2.0.26/stencil-fx-collapse/stencil-fx-collapse-min.js&amp;os/mit/td/td-applet-stream-0.0.1319/stream-actiondrawer/stream-actiondrawer-min.js&amp;os/mit/td/td-applet-stream-0.0.1319/td-applet-stream-templates-errormsg/td-applet-stream-templates-errormsg-min.js&amp;os/mit/td/td-applet-stream-0.0.1319/td-applet-stream-templates-main/td-applet-stream-templates-main-min.js&amp;os/mit/td/td-applet-stream-0.0.1319/td-applet-stream-templates-settings/td-applet-stream-templates-settings-min.js&amp;os/mit/td/td-applet-stream-0.0.1319/td-applet-stream-templates-drawer-desktop/td-applet-stream-templates-drawer-desktop-min.js&amp;os/mit/td/td-applet-stream-0.0.1319/td-applet-stream-templates-removeditem/td-applet-stream-templates-removeditem-min.js" async=""></script>
+ <script charset="utf-8" id="yui_3_18_1_1_1481706756324_253" src="https://s.yimg.com/zz/combo?os/mit/td/td-applet-stream-0.0.1319/td-applet-stream-templates-lastvisit/td-applet-stream-templates-lastvisit-min.js&amp;os/mit/td/td-applet-stream-0.0.1319/td-applet-stream-templates-items/td-applet-stream-templates-items-min.js&amp;os/mit/td/td-applet-stream-0.0.1319/td-applet-stream-templates-item-social_sharing/td-applet-stream-templates-item-social_sharing-min.js&amp;os/mit/td/td-applet-stream-0.0.1319/td-applet-stream-templates-item-default/td-applet-stream-templates-item-default-min.js&amp;os/mit/td/td-applet-stream-0.0.1319/td-applet-stream-templates-item-ad/td-applet-stream-templates-item-ad-min.js&amp;os/mit/td/td-applet-stream-0.0.1319/td-applet-stream-templates-item-featured_ad/td-applet-stream-templates-item-featured_ad-min.js&amp;os/mit/td/td-applet-stream-0.0.1319/td-applet-stream-templates-item-featured_mobile_ad/td-applet-stream-templates-item-featured_mobile_ad-min.js&amp;os/mit/td/td-applet-stream-0.0.1319/td-applet-stream-templates-item-play_icon/td-applet-stream-templates-item-play_icon-min.js&amp;os/mit/td/td-applet-stream-0.0.1319/td-applet-stream-templates-item-inline_video/td-applet-stream-templates-item-inline_video-min.js" async=""></script>
+
+
+ <script type="text/javascript">
+ if (typeof rt_pushMoment !== 'undefined') rt_pushMoment("t1");
+ </script>
+ <script>
+ var t_headend = new Date().getTime();
+ window.__headDelta = (t_headend - t_headstart);
+ </script>
+ <script>
+ ;
+ YMedia.applyConfig({
+ "groups": {
+ "td-applet-ads": {
+ "base": "https://s1.yimg.com/os/mit/td/td-applet-ads-0.1.593/",
+ "root": "os/mit/td/td-applet-ads-0.1.593/",
+ "combine": true,
+ "filter": "min",
+ "comboBase": "https://s.yimg.com/zz/combo?",
+ "comboSep": "&amp;"
+ }
+ }
+ });;
+ window.Af = window.Af || {};
+ window.Af.bootstrap = window.Af.bootstrap || {};
+ window.Af.bootstrap["24751402369262404"] = {
+ "applet_type": "td-applet-ads",
+ "models": {
+ "applet_model": {
+ "models": ["ads"]
+ }
+ },
+ "views": {
+ "main": {
+ "yui_module": "td-ads-mainview",
+ "yui_class": "TD.Ads.MainView"
+ }
+ },
+ "templates": {
+ "leftrail": {
+ "yui_module": "td-applet-ads-templates-leftrail",
+ "template_name": "td-applet-ads-templates-leftrail"
+ },
+ "carousel": {
+ "yui_module": "td-applet-ads-templates-carousel",
+ "template_name": "td-applet-ads-templates-carousel"
+ },
+ "splash": {
+ "yui_module": "td-applet-ads-templates-splash",
+ "template_name": "td-applet-ads-templates-splash"
+ }
+ },
+ "i18n": {
+ "TITLE": "ads"
+ },
+ "transport": {
+ "xhr": "/_td_api"
+ },
+ "context": {
+ "bucket": "",
+ "crumb": "kKRPyOdAXGG",
+ "device": "desktop",
+ "lang": "en-US",
+ "region": "US",
+ "site": "gma"
+ }
+ };;
+ if (YMedia & amp; & amp; YMedia.Stencil & amp; & amp; YMedia.Stencil.initAll) {
+ YMedia.Stencil.initAll("#applet_24751402369262404");
+ };
+ if (YMedia & amp; & amp; YMedia.ApeApp & amp; & amp; YMedia.ApeApp.initApplet) {
+ YMedia.ApeApp.initApplet("24751402369262404", true);
+ }
+ </script>
+ <style type="text/css">
+ .yom-mod.yom-twittertimeline {
+ padding: 2px 0px;
+ margin-bottom: 19px;
+ }
+
+ .yom-mod.yom-twittertimeline,
+ .yom-mod.yom-twittertimeline .yom-iframe-wrap {
+ display: none\0/;
+ /*IE8 only*/
+ #display: none;
+ /*IE6, IE7*/
+ }
+
+ :root .yom-mod.yom-twittertimeline,
+ .yom-mod.yom-twittertimeline .yom-iframe-wrap {
+ display: block\0/IE9;
+ }
+ </style>
+ <script>
+ ;
+ YMedia.applyConfig({
+ "groups": {
+ "td-applet-logo": {
+ "base": "https://s1.yimg.com/os/mit/td/td-applet-logo-0.1.256/",
+ "root": "os/mit/td/td-applet-logo-0.1.256/",
+ "combine": true,
+ "filter": "min",
+ "comboBase": "https://s.yimg.com/zz/combo?",
+ "comboSep": "&amp;"
+ }
+ }
+ });;
+ window.Af = window.Af || {};
+ window.Af.bootstrap = window.Af.bootstrap || {};
+ window.Af.bootstrap["58771378193913290"] = {
+ "applet_type": "td-applet-logo",
+ "views": {
+ "main": {
+ "yui_module": "td-applet-logo-mainview",
+ "yui_class": "TD.Applet.LogoMainView"
+ }
+ },
+ "i18n": {
+ "TITLE": "logo"
+ },
+ "transport": {
+ "xhr": "/_td_api"
+ },
+ "context": {
+ "bucket": "",
+ "crumb": "kKRPyOdAXGG",
+ "device": "desktop",
+ "lang": "en-US",
+ "region": "US",
+ "site": "gma"
+ }
+ };;
+ if (YMedia & amp; & amp; YMedia.Stencil & amp; & amp; YMedia.Stencil.initAll) {
+ YMedia.Stencil.initAll("#applet_58771378193913290");
+ };
+ if (YMedia & amp; & amp; YMedia.ApeApp & amp; & amp; YMedia.ApeApp.initApplet) {
+ YMedia.ApeApp.initApplet("58771378193913290", true);
+ }
+ </script>
+ <style type="text/css">
+ #about-banner &gt;
+ div {
+ border: none;
+ margin: 0;
+ }
+
+ #about-banner a {
+ outline: none;
+ }
+
+ #about-banner &gt;
+ div div:nth-child(2) {
+ font-weight: 300;
+ }
+ </style>
+ <script>
+ ;
+ YMedia.applyConfig({
+ "groups": {
+ "td-applet-logo": {
+ "base": "https://s1.yimg.com/os/mit/td/td-applet-logo-0.1.256/",
+ "root": "os/mit/td/td-applet-logo-0.1.256/",
+ "combine": true,
+ "filter": "min",
+ "comboBase": "https://s.yimg.com/zz/combo?",
+ "comboSep": "&amp;"
+ }
+ }
+ });;
+ window.Af = window.Af || {};
+ window.Af.bootstrap = window.Af.bootstrap || {};
+ window.Af.bootstrap["24116749590382110"] = {
+ "applet_type": "td-applet-logo",
+ "views": {
+ "main": {
+ "yui_module": "td-applet-logo-mainview",
+ "yui_class": "TD.Applet.LogoMainView"
+ }
+ },
+ "i18n": {
+ "TITLE": "logo"
+ },
+ "transport": {
+ "xhr": "/_td_api"
+ },
+ "context": {
+ "bucket": "",
+ "crumb": "kKRPyOdAXGG",
+ "device": "desktop",
+ "lang": "en-US",
+ "region": "US",
+ "site": "gma"
+ }
+ };;
+ if (YMedia & amp; & amp; YMedia.Stencil & amp; & amp; YMedia.Stencil.initAll) {
+ YMedia.Stencil.initAll("#applet_24116749590382110");
+ };
+ if (YMedia & amp; & amp; YMedia.ApeApp & amp; & amp; YMedia.ApeApp.initApplet) {
+ YMedia.ApeApp.initApplet("24116749590382110", true);
+ }
+ </script>
+ <style type="text/css">
+ #about-banner &gt;
+ div {
+ border: none;
+ margin: 0;
+ }
+
+ #about-banner a {
+ outline: none;
+ }
+
+ #about-banner &gt;
+ div div:nth-child(2) {
+ font-weight: 300;
+ }
+ </style>
+ <script>
+ ;
+ YMedia.applyConfig({
+ "groups": {
+ "td-applet-photoheader": {
+ "base": "https://s1.yimg.com/os/mit/td/td-applet-photoheader-0.1.314/",
+ "root": "os/mit/td/td-applet-photoheader-0.1.314/",
+ "combine": true,
+ "filter": "min",
+ "comboBase": "https://s.yimg.com/zz/combo?",
+ "comboSep": "&amp;"
+ }
+ }
+ });;
+ window.Af = window.Af || {};
+ window.Af.bootstrap = window.Af.bootstrap || {};
+ window.Af.bootstrap["24106666317790640"] = {
+ "applet_type": "td-applet-photoheader",
+ "models": {
+ "photoheader": {
+ "yui_module": "td-photoheader-model",
+ "yui_class": "TD.Photoheader.Model"
+ },
+ "applet_model": {
+ "models": ["photoheader"],
+ "config": {
+ "asset_mode": "prod",
+ "crumbKey": "touchdown.crumbkey",
+ "mrs": {
+ "mrs_host": "l.yimg.com/bt",
+ "key": "mrs.ynews_td.crumbkey",
+ "app_id": "ynews_td"
+ },
+ "edgepipe": {
+ "enabled": true
+ },
+ "template": {
+ "main": "td-applet-photoheader:main"
+ },
+ "photoheader_attributes": {
+ "width": "731",
+ "height": "216"
+ },
+ "bootstrap": {
+ "templates": {
+ "main": {
+ "yui_module": "td-applet-photoheader-templates-main",
+ "template_name": "td-applet-photoheader-templates-main"
+ }
+ }
+ },
+ "m_id": "td-applet-photoheader",
+ "m_mode": "multipart",
+ "configId": "MediaApeAppletConfig",
+ "hide": "0",
+ "mod_units": "19",
+ "content_type": "story",
+ "is_sponsored": "0",
+ "provider_id": "us.abcnews.gma.com",
+ "provider_name": "Good Morning America",
+ "spaceid": "1197056126",
+ "mod_id": "td-applet-photoheader",
+ "content_id": "4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c",
+ "title": "Good Morning America",
+ "linkUrl": "http://gma.yahoo.com/",
+ "hideTitle": "1",
+ "disableAppClass": "1",
+ "header": 1,
+ "imgUrl": "https://s.yimg.com/os/publish-images/gma/2014-06-26/282e98f0-fd6a-11e3-b1cc-8793f4ed3e91_gma_home_062614_header.jpg",
+ "hideEspon": "1",
+ "enableFooter": "1",
+ "disableGradient": "1",
+ "nolz": "1",
+ "y_proc_embeds": "1",
+ "y_map_urn": "urn:rmp:lite",
+ "_product_version": "v2sg",
+ "r_inc": "1",
+ "c_id": "td-applet-photoheader_container",
+ "initStencil": 1,
+ "initApplet": 1,
+ "timeout": "2500",
+ "_sig": "ljdJU9LlE4AKY7EPfFlTOyEwEJI-",
+ "chrome": 1,
+ "footer": 1,
+ "toolbar": 0,
+ "isSsl": true
+ }
+ }
+ },
+ "views": {
+ "main": {
+ "yui_module": "td-photoheader-mainview",
+ "yui_class": "TD.Photoheader.MainView"
+ }
+ },
+ "templates": {
+ "main": {
+ "yui_module": "td-applet-photoheader-templates-main",
+ "template_name": "td-applet-photoheader-templates-main"
+ }
+ },
+ "i18n": {
+ "TITLE": "photoheader"
+ },
+ "transport": {
+ "xhr": "/_td_api"
+ },
+ "context": {
+ "bucket": "",
+ "crumb": "kKRPyOdAXGG",
+ "device": "desktop",
+ "lang": "en-US",
+ "region": "US",
+ "site": "gma"
+ }
+ };;
+ if (YMedia & amp; & amp; YMedia.Stencil & amp; & amp; YMedia.Stencil.initAll) {
+ YMedia.Stencil.initAll("#applet_24106666317790640");
+ };
+ if (YMedia & amp; & amp; YMedia.ApeApp & amp; & amp; YMedia.ApeApp.initApplet) {
+ YMedia.ApeApp.initApplet("24106666317790640", true);
+ }
+ </script>
+ <style type="text/css">
+ @media (max-width: 1200px) {
+ #td-photoheader .tie-title h1 {
+ font-size: 1.6em;
+ width: 80%;
+ }
+ }
+
+ @media (max-width: 1150px) {
+ #td-photoheader .tie-title h1 {
+ font-size: 1.45em;
+ width: 80%;
+ }
+ }
+
+ @media (max-width: 1100px) {
+ #td-photoheader .tie-title h1 {
+ font-size: 1.35em;
+ width: 65%;
+ }
+ }
+
+ @media (max-width: 980px) {
+ #td-photoheader .tie-title h1 {
+ font-size: 1.25em;
+ width: 60%;
+ }
+ }
+ </style>
+ <script>
+ ;
+ YMedia.applyConfig({
+ "groups": {
+ "td-applet-canvass": {
+ "base": "https://s1.yimg.com/os/mit/td/td-applet-canvass-1.0.94/",
+ "root": "os/mit/td/td-applet-canvass-1.0.94/",
+ "combine": true,
+ "filter": "min",
+ "comboBase": "https://s.yimg.com/zz/combo?",
+ "comboSep": "&amp;"
+ }
+ }
+ });;
+ window.Af = window.Af || {};
+ window.Af.bootstrap = window.Af.bootstrap || {};
+ window.Af.bootstrap["24053652936908468"] = {
+ "applet_type": "td-applet-canvass",
+ "models": {
+ "applet_model": {
+ "config": {
+ "consumerKey": "frontpage.oauth.canvassKey",
+ "consumerSecret": "frontpage.oauth.canvassSecret",
+ "uuid": "4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c",
+ "sortBy": "popular",
+ "autoShow": false,
+ "likeVoteUpKey": "up",
+ "likeVoteClearKey": "clear",
+ "enableImageComments": true,
+ "namespace": "yahoo_content",
+ "visibilityType": "PUBLIC",
+ "enableCommentsWrite": true,
+ "enableMyComments": true,
+ "avatarInline": false,
+ "canvassFullScreen": false,
+ "yahooApp": {
+ "url": "https://go.onelink.me/2184920418?pid=InProduct&amp;c=Newsroom_Oct16&amp;af_sub1=Smartbannerl&amp;af_sub2=Newsroom_YMktg_YahooApp&amp;af_sub3=InProduct_Smartbanner_1",
+ "icon": "https://s.yimg.com/cv/ae/default/161028/iPhone_6_6s_se_120x120.png"
+ }
+ },
+ "models": []
+ }
+ },
+ "views": {
+ "main": {
+ "yui_module": "td-applet-canvass-mainview",
+ "yui_class": "TD.Applet.CommentsMainView"
+ }
+ },
+ "templates": {
+ "activities": {
+ "yui_module": "td-applet-canvass-templates-activities",
+ "template_name": "td-applet-canvass-templates-activities"
+ },
+ "activity-comments": {
+ "yui_module": "td-applet-canvass-templates-activity-comments",
+ "template_name": "td-applet-canvass-templates-activity-comments"
+ },
+ "activity-replies": {
+ "yui_module": "td-applet-canvass-templates-activity-replies",
+ "template_name": "td-applet-canvass-templates-activity-replies"
+ },
+ "main": {
+ "yui_module": "td-applet-canvass-templates-main",
+ "template_name": "td-applet-canvass-templates-main"
+ },
+ "main-activities": {
+ "yui_module": "td-applet-canvass-templates-main-activities",
+ "template_name": "td-applet-canvass-templates-main-activities"
+ },
+ "comments": {
+ "yui_module": "td-applet-canvass-templates-comments",
+ "template_name": "td-applet-canvass-templates-comments"
+ },
+ "replies": {
+ "yui_module": "td-applet-canvass-templates-replies",
+ "template_name": "td-applet-canvass-templates-replies"
+ }
+ },
+ "i18n": {
+ "COMMENT_ACTIVITY": "Comment Activity",
+ "COMMENTS_FAILED": "Sorry, we can’t load comments right now. Try again.",
+ "COMMENT_ACTIVITY_FAILED": "Sorry, we can’t find your comment activity right now. Try again.",
+ "PROMOTED_COMMENTS": "We will promote constructive and witty comments to the top, so everyone sees them!",
+ "ALL_COMMENTS": "All comments",
+ "YOU": "You",
+ "ARE_YOU_SURE": "Are you sure?",
+ "SHOW_MORE_COMMENTS": "Show more comments",
+ "RETRY_SHOW_MORE_COMMENTS": "Retry show more comments",
+ "SHOW_MORE_REPLIES": "Show more replies",
+ "RETRY_SHOW_MORE_REPLIES": "Retry show more replies",
+ "RATING_FAILED_TRY_AGAIN": "Rating failed. Try again.",
+ "REQUEST_FAILED_TRY_AGAIN": "Request failed. Try again.",
+ "VIEW_COMMENTS": "Comments",
+ "REFRESH_COMMENTS": "Refresh comments",
+ "REFRESH_COMMENT_ACTIVITY": "Refresh comment activity",
+ "LOADING_COMMENTS": "Loading comments...",
+ "LOADING_REPLIES": "Loading replies...",
+ "SHOW_REPLIES": "Show replies",
+ "SHOW_REPLIES_COUNT": "Show replies ({count})",
+ "HIDE_REPLIES": "Hide replies",
+ "EDITOR_LABEL": "Editor",
+ "KEEP_READING": "Keep reading",
+ "ANONYMOUS": "A Yahoo reader",
+ "TOP": "Top",
+ "RECENT": "Latest",
+ "OLDEST": "Oldest",
+ "MOSTREPLIED": "Most Replied",
+ "RETRY_SORT": "Retry sort",
+ "ATTENTION": "Attention",
+ "LEAVE_A_COMMENT": "Leave a comment",
+ "BE_THE_FIRST": "Be the first to comment",
+ "LEAVE_A_REPLY": "Leave a reply",
+ "REPLY": "Reply",
+ "POST": "Post",
+ "MISSING_COMMENT": "You forgot to enter a comment.",
+ "MISSING_REPLY": "You forgot to enter a reply.",
+ "COMMENT_GUIDELINES": "Comment Guidelines",
+ "COMMENT_GUIDELINES_LINK": "http://help.yahoo.com/kb/index?locale=en_US&amp;page=content&amp;y=PROD_NEWS&amp;id=SLN2292&amp;actp=lorax&amp;pir=sgThvDBibUlVBwQ77qBOZu1fJICb_UIEjC14XlTbRKwcr5qZR3LfcNHy2DWcKRq.ykcYYEFeWkgOMhrsfkFQuykaqmSci9xLOy.kWkpFEtc-",
+ "SIGN_IN_POST_COMMENT": "Sign in to post a comment.",
+ "PLEASE_SIGN_IN": "Please sign in.",
+ "SIGN_IN_POST_REPLY": "Sign in to post a reply.",
+ "REPORT_INTRO": "Sorry you didn't like this comment. Please provide a reason below.",
+ "ABUSE_REPORT_SUCESS": "Report posted successfully",
+ "PROMOTE": "Promote",
+ "RESET_PROMOTION": "Reset promotion",
+ "DEMOTE": "Demote",
+ "RESET_DEMOTION": "Reset demotion",
+ "REPORT": "Report",
+ "CANCEL": "Cancel",
+ "CLOSE": "Close",
+ "DELETE": "Delete",
+ "PLEASE_EXPLAIN": "Please explain (optional)",
+ "ERROR": "An error has occurred; please try again later.",
+ "EDITOR_TOOLTIP_PROMOTE": "When you promote a comment, the entire thread is sent to the top of the 'Top' comments view. If you promote more than one comment thread, the most recent appears on top. Promoted comments appear below any thread that an editor has commented on or replied to.",
+ "EDITOR_TOOLTIP_DEMOTE": "When you demote a comment, the entire thread (including replies) is sent to the bottom of the 'Top' comments view. The most recently demoted comments appear on the bottom.",
+ "MY_COMMENTS": "My Comments",
+ "REACTIONS": "reactions",
+ "REACTION_TEASER": "What's your reaction?",
+ "JOIN_NEWSROOM": "Join the conversation on the Yahoo App.",
+ "INSTALL": "Install",
+ "NO_USER_MESSAGE": "You do not currently have any comments",
+ "REACTION_COUNT": "{commentCount} Reactions",
+ "SHARE_YOUR_REACTION": "Share your reaction",
+ "DOWNLOAD": "Download",
+ "JOIN_YAHOO": "Join the conversation on Yahoo app.",
+ "VIEW_SHARE_ACTIONS": "View all share actions (sighted users only)"
+ },
+ "transport": {
+ "xhr": "/_td_api"
+ },
+ "context": {
+ "bucket": "",
+ "crumb": "kKRPyOdAXGG",
+ "device": "desktop",
+ "lang": "en-US",
+ "region": "US",
+ "site": "gma"
+ }
+ };;
+ if (YMedia & amp; & amp; YMedia.Stencil & amp; & amp; YMedia.Stencil.initAll) {
+ YMedia.Stencil.initAll("#applet_24053652936908468");
+ };
+ if (YMedia & amp; & amp; YMedia.ApeApp & amp; & amp; YMedia.ApeApp.initApplet) {
+ YMedia.ApeApp.initApplet("24053652936908468", true);
+ }
+ </script>
+ <script>
+ ;
+ YMedia.applyConfig({
+ "groups": {
+ "td-applet-stream": {
+ "base": "https://s1.yimg.com/os/mit/td/td-applet-stream-0.0.1319/",
+ "root": "os/mit/td/td-applet-stream-0.0.1319/",
+ "combine": true,
+ "filter": "min",
+ "comboBase": "https://s.yimg.com/zz/combo?",
+ "comboSep": "&amp;"
+ }
+ }
+ });;
+ window.Af = window.Af || {};
+ window.Af.bootstrap = window.Af.bootstrap || {};
+ window.Af.bootstrap["24106666305898690"] = {
+ "applet_type": "td-applet-stream",
+ "models": {
+ "stream": {
+ "yui_module": "td-applet-stream-model",
+ "yui_class": "TD.Applet.StreamModel",
+ "data": {
+ "ccode": "",
+ "more_items": [{
+ "type": "unknown",
+ "id": "eb7ab622-5a9b-3641-888a-a4c659308e74"
+ }, {
+ "type": "unknown",
+ "id": "104435d7-badb-31e1-862d-1580be23da1b"
+ }, {
+ "type": "unknown",
+ "id": "4816afe9-bf6f-39fa-a89b-6188b5df1d79"
+ }, {
+ "type": "unknown",
+ "id": "da225003-a64b-322a-b6d8-524b798768d2"
+ }, {
+ "type": "unknown",
+ "id": "d3166eb1-5125-3056-8014-44ce879cfe55"
+ }, {
+ "type": "unknown",
+ "id": "5dd7ddfc-e040-3096-9b14-6e6d717ab456"
+ }, {
+ "type": "ad",
+ "id": "32565576379",
+ "title": "More Speed, More Devices",
+ "link": "https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=f.DmDIUGIS9E1a0V63uAg6RFP_p_IeciM2EnRAHvFBx_Oy0_JmPs6z5JHmPJi3x9URe4NADiT5vDN3XcKCSjZCJklvGDVayOYKLN4Tx22zlSs4ULtw6cRAtHWVoIgQvUVUaNpsZ918M9wiZ.SncLHO0T43AS1hSn3_YTc77i9iBD_fTZTTq3.SD4AqiOu2qxhD0tRA5Z6a9aZvku_JEyVxtvA4zLeoCR4j86E6Ebd2kT6wtnyLgjUw5EGpcx.NnjzjEuRNw.KPcCbMLjEeBYCpdY1PXP7.JO2i2eboMr8K5rjw66W8diCVgzlGdR606b9PPWUokiHIQ8.5IMHVRni93U9CBOZhG.yvPrlRsxMVSFEhx.N6tZ4CBgZsfG26kXlhlGekP4Lc8LBqhvM4P17Co78TZ25QVeZ4w2GLVlyKZNSR4n4QEtU5bcdrFPeTuwoDEc64Rp0495cZ4g2ZPksUmjM7._GExECoYXHKr_x5CDKSFg0qCAmg--%26lp=https%3A%2F%2Fad.doubleclick.net%2Fddm%2Fclk%2F310423374%3B138038743%3Bz",
+ "publisher": "Time Warner Cable® Spectrum®",
+ "beacon": "https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&amp;es=QqGnBUMGIS.qqtyniTitpVUX5Ko0MWdu34u7UuboxN1yiFO6jRBuqUaUZPzv3wt3b.c9xkgxc4Mv3AClkU4t11ylgY2NFnXZKCWDW75fXA3KtAZeBKaRAGpU.qfUKosaKHtBZ1SExmkXIXepaj2_mQClohXwGMXno8YaGXsFArOSFp4bSq2WjQlgVl.iKZGe2Kak9Tbm1pR7bwZZqWQUrKbX1RCZsayMYDTUIqZ6o6f4v9.vyGn.BXB3eZ.TZWTCWBehIsBR3jNwL8O0T59GDTikibE0N11N2mfTwwZ1Sy_gutSO9KPQMH0diU8XOEU9sQj7qoLa0JZjAzCHTJazAA7laUu5sShqfvqQy72uQEa0w2dSqjwdyMnI7KRTFtZEmpNQ35RtLUuf5jZPFwLtEQ--&amp;ap=31",
+ "imprTrackingUrl": "https://ad.doubleclick.net/ddm/ad/N7607.153730.YAHOOINC.DISPLAY/B9297688.138027025;sz=1x1;ord=1481706596;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=?",
+ "full_template": "ad",
+ "image": {
+ "url": "https://s.yimg.com/uu/api/res/1.2/E9WH2l5TLIKEpKqtKMZCBw--/YXBwaWQ9eXRhY2h5b24-/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/949fa4775409a16e5f31d75a78996f25.jpeg",
+ "height": 82,
+ "width": 82
+ },
+ "summary": "With speeds starting at 60 Mbps, choose the speed you need. Unlimited bandwidth with no data caps.",
+ "adChoicesUrl": "https://info.yahoo.com/privacy/us/yahoo/relevantads.html",
+ "i13n": {
+ "cpos": 1,
+ "bpos": 1,
+ "cat": "LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a",
+ "t1": "a3",
+ "t2": "strm",
+ "t3": "ct",
+ "ad": 1,
+ "elmt": "ad",
+ "g": "32565576379",
+ "ct": 1,
+ "pkgt": 4
+ }
+ }, {
+ "type": "unknown",
+ "id": "04f6be74-8fe5-37d9-8e22-67d48b82a600"
+ }, {
+ "type": "unknown",
+ "id": "dc5724d9-247e-38bf-80d2-ca5fe4f52fdd"
+ }, {
+ "type": "unknown",
+ "id": "0777186c-e015-361d-b61b-f3a8948a2463"
+ }, {
+ "type": "unknown",
+ "id": "b66df7ef-1bcd-36f2-a081-19cece0517f0"
+ }, {
+ "type": "unknown",
+ "id": "f89c8a18-25a1-32d5-8aec-b847b75be056"
+ }, {
+ "type": "unknown",
+ "id": "39106e51-cf78-335b-b54a-330afca900c3"
+ }, {
+ "type": "ad",
+ "id": "32561211946",
+ "title": "Living abroad? Start banking with HSBC Expat",
+ "link": "https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=koGUksQGIS_c4ETP_24_9b6w3tPtULLGqa7LZy.NCM5TdPERdwqnJb9qshnDGLhRHlSs_2owmd..yLF9qjfN.StVId5bILqOIryXDQmi4CDrPvEskYLtDzJW.mqK9OzHIz8Mv0gxi5bVNtJ5ncccoY.sOmUFvCNGXSZ7diDaOEqCqkHHGdkDfv5Jt3EgfYAQ6OByBdpxbo3Iqh6EgN.idcpPLePiMwKEulMkSUflKdUto0IFKfVCEAgjLf7DtzQ.ZMJmbbyFanzjgIMgCrjDjzH.v5_iyJdoZ_xPqKjUkD6UbSzAnAjmEUn9PacCWwxdVnmZ4_oaoSOu07Vw24.3vFuHmTPz6Fymp_.pb3leGmtdXGSaWZRlqmbSgeWI0G15E8LGzFAOmYM3unya2Wiabwau8B5QaLZLqeeVMYB.xpsFm7.pTktLmCzVZiYwFK4evhTkeKBOfANGBGiy9afpthXkFHKsqkwIA5kiMZDUt.zL68P6XmWF67zYo7.AuqSzqnA-%26lp=https%3A%2F%2Fad.doubleclick.net%2Fddm%2Fclk%2F313453516%3B141218845%3Ba",
+ "publisher": "HSBC",
+ "beacon": "https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&amp;es=tEviJpoGIS_G.MOpOojyL.KcCu8ZK_4KBL.pk73NWFk3bXwqEfmx.1h86dpm8be7bliSJnLkMJx7xCnqop4qk4JnKZJ1Sy9ZjbEL3A7rZfEx19pfqDTVV0ygynGoec6ckGpDGUmdD12_5JXxw4NQ.Gwd7irNewqTw2Rwpm62bkU23JF6ZiTxoxqDw270oj7eYYqpZa52Qo.06QkdLZpo2uU3KjJFBk5vh1dkxCZXEcDWgO7cY5R6G.fDVKE_ZbyCOMWpso4Pv3u0wJj.qf7a0ymkGvddI8qiaZ0H6mQGQcrJpuXUHwrXXX_R69CKSQCcUPyiySJEvxQCgIn8xWolDk.RBP5pJ8LH3uYrluvP4NqGMivWrIcgqxzzu1X0BJwV.OYxfJyx4y1kPHoD_DeTdQVP.0y8Dg--&amp;ap=38",
+ "imprTrackingUrl": "https://ad.doubleclick.net/ddm/ad/N1397.1933703YAHOOGEMINI/B8484393.141218580;sz=1x1;ord=1481706596;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=?",
+ "full_template": "ad",
+ "image": {
+ "url": "https://s.yimg.com/uu/api/res/1.2/N64okSB27WabUpHAoBHrvA--/YXBwaWQ9eXRhY2h5b24-/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/29443a83c3a22a963a7bdfefc45d3af9.jpeg",
+ "height": 82,
+ "width": 82
+ },
+ "summary": "For a brighter outlook, a stronger footing, and a smoother journey. Start banking with HSBC Expat. Financial and other eligibility criteria apply.",
+ "adChoicesUrl": "https://info.yahoo.com/privacy/us/yahoo/relevantads.html",
+ "i13n": {
+ "cpos": 2,
+ "bpos": 1,
+ "cat": "LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a",
+ "t1": "a3",
+ "t2": "strm",
+ "t3": "ct",
+ "ad": 1,
+ "elmt": "ad",
+ "g": "32561211946",
+ "ct": 1,
+ "pkgt": 4
+ }
+ }, {
+ "type": "unknown",
+ "id": "581fe28c-f4ea-3cc6-bc13-4d0bebcf19fc"
+ }, {
+ "type": "unknown",
+ "id": "e24bb956-b9a3-33f8-a39a-547ab8734a4f"
+ }, {
+ "type": "unknown",
+ "id": "c0cee6e9-1545-3a0d-9321-8a794d86a7c2"
+ }, {
+ "type": "unknown",
+ "id": "bf9e7a31-fa72-334e-a81a-04ac6061e1de"
+ }, {
+ "type": "unknown",
+ "id": "3b8f9e32-db1b-3790-91e2-60d1046f9f29"
+ }, {
+ "type": "unknown",
+ "id": "28aa0a71-ce91-38c8-8838-f6b07a44cfe4"
+ }, {
+ "type": "ad",
+ "id": "32520295560",
+ "title": "4 Ways to Speed Up Your Mac Without Any Investment",
+ "link": "https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=KrbMWtMGIS9sr80dDUiHYI4Jk4rlnofD.pwUsqLTdHl9bek6DkrfkwiDmj.ikfsPZnuK5PdFdb3ECUC9hJVMBpdoSfk6pTUocRM9WHFKlpecSCPXvcKwujUzhK.E29tS0vXQfFgOjNXxxXdSgjGhWDoTny5W0VOIjP7bT4t.66K35T_Cl9SlFqw5QwBoAuAEhApUnj8Rr0feQqEDwYYe2MqVNZrtyXbJSx10wV3RRk0HvQfrc9SorOxSRjS4HS_6bw6lBkTLqszq5WIBfUuGQdAOz2k2j6oszF0GkxC3fZ3rZlV1Fsv5TxtIfCbmeYYKjlvAK_9DCwpZYjUkExK_Oo21dA7X9_pEJ6IXmZnXd50NCjEcxBxPz7_4Ep5lqTobmzTK_HCYyYzfMgVSi2TyXM9iBPkCq9fnFnyTLwzt4d45q8Ox0P9Vdbo8rY3vRjyzxarmDR2iqcJJcVyL6rJNobvmJ7a7UVPnBLbpm_Ax2rgRy7oyrq1A4fOy40PLV6_UqcJ7tHucK.9uU0EmSZT56GTmyFcnxWk9XSPmK_WeVYqfw_hp6kn0h2bYIdxyqcnY495aRfdaj17k6RPrA5vaADL7eb0RwfFc9XOldVwaq9kFN7i8zbgeeYb4c7noJMkjkPkspqFAPqSh8ecuAQmz3XeckBvNYLQyWYmEE8uqEkdruWVxDOxT1NeVxFLsVM0zZGc-%26lp=http%3A%2F%2Fmackeeperapp.mackeeper.com%2Fparamss%3Dphexb1c9bcd8b5dbb1ac92989daf9b9cd2e8cb90e4dbd5cdd8daa2d1d7c4abdccec4e5e1d0dad3cdcfc0a7b291959db096ced2c0e9d7cad2dad8cfcc96a69992%26trt%3D29_31211156%26tid_ext%3Df_45-54_loading",
+ "publisher": "MacKeeper",
+ "beacon": "https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&amp;es=aks1kEEGIS9T5M1TLTEYF2YycuVjxLZgBKtPZdNRxlaPeU..3ISj6Wa.EhNr_.Nvu_DEsX45zEJeDoS_RLYl36iqJFJ5520GmeeWKS88O3ZZQ6oRUhQje8xg8KksOQzUqw.GU6Yy_UEWn97AhfVnwVn3G4scPnLCpiPgaXVZr.8DF7ogSyxz2yKM1DYmg0x_IARc90WF2sY5zzH5dk.qtePky3rDk8J61JGi_YfObggcM3z.YZtw9.56A18oyiMAycGad9wIoQSMHpZiRIjYV8i36MHk3q06y5TMT1q3wWWxVoodsAeoQBqlOW3Lh91nINZjlQZdU0zg_JxXW6yskwVi6iIXTpTpo9.d0Efp_Whz7XfKGciwQN.RFSRFT9HQy1GLWmkfheesh9ecNXWiOQ--&amp;ap=45",
+ "full_template": "ad",
+ "image": {
+ "url": "https://s.yimg.com/uu/api/res/1.2/vJew6gXRmZqdCml87_PPzQ--/YXBwaWQ9eXRhY2h5b24-/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/b88ae2c6313c327c9d097a1709a41b10.jpeg",
+ "height": 82,
+ "width": 82
+ },
+ "summary": "Did you know how to Improve Your Mac Performance with only 4 Easy Steps ?",
+ "adChoicesUrl": "https://info.yahoo.com/privacy/us/yahoo/relevantads.html",
+ "i13n": {
+ "cpos": 3,
+ "bpos": 1,
+ "cat": "LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a",
+ "t1": "a3",
+ "t2": "strm",
+ "t3": "ct",
+ "ad": 1,
+ "elmt": "ad",
+ "g": "32520295560",
+ "ct": 1,
+ "pkgt": 4
+ }
+ }, {
+ "type": "unknown",
+ "id": "0be85beb-c15d-329c-bd85-b31b66277603"
+ }, {
+ "type": "unknown",
+ "id": "fc35a2ce-3cd5-3258-a74b-733e0362f271"
+ }, {
+ "type": "unknown",
+ "id": "b119c432-abb8-3639-a2d4-8b6211e15a86"
+ }, {
+ "type": "unknown",
+ "id": "725c08fb-782d-31ec-ac1d-e088e4524eaf"
+ }, {
+ "type": "unknown",
+ "id": "42cd8607-b1e6-3238-bb99-47f2aa4ef046"
+ }, {
+ "type": "unknown",
+ "id": "0e737b4b-da64-3923-95dd-d54563851d8e"
+ }, {
+ "type": "ad",
+ "id": "32585892788",
+ "title": "Overstock Clearance: Super-Soft Bamboo Sheet Set",
+ "link": "https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=cIdFd18GIS91ydBQUg2_82XisltqwAkSxh0kvg8msrCxDN68Ci4XZBimfGqR5MlTu4rN9mJxYA1QQuDUrTMPk0.pPpyVeTtbNqdyZfcwpMIxib4TqFeTkLcyHOTNjrwzcjgexugUYmq89xcMovIr61OPh17mQMg2KWE.qZ5kOs_Gvj1R9Sg1jnZ0ilhd.zKK.QcvOLzMmXfCnHAE_PbvgIDW1fdxNEOGPrdrVEHAZVz7qChK0WIVlHUy5UpaJFu.q1Xfo0q6YhRLumNwfuvb3fCs8byUgz.ST_Q8_EO4nvJ8h9gaovICc0dL9EoJP3I3UsqG5At8cr8aYjEaL4eXkEsuhUfDJdPNKoA94d5odGWa2mcyuoIhQGhGXwWi8_SQ_qn.qY16xbDYqw62alHMgTIu8mP2WxDhCvfzaH50msB0kdcqOs96BCI7AgbYhogkBe7Lm0K4vn2oxwuqcUkbdlJX.4IhsaTfWby_eGsqtdOH4nczZXcQ0L3HAcTNzIfGwxfaUdMV_Dqdcic0jvxbiDLVtTBB7fqtOfoi_cyhrb0Oj3lDI_FkYuK.5Untii4g8V_I9Xkj10IfymeWu1dZMntCGjC4VJtOt80WoRPlJ16nVHDN5Rk6.c5r2pdXftTjASyAf95PPCZe8yV7N9fG47bumg9L337wnFAJNmImJ.TV0yW_Alqldh_gVSTC422hLF9cWplVJhyzCPdKtM8oDuoKJrRY_6s2FpXD7bFflwDPfg--%26lp=https%3A%2F%2Fjump.omnitarget.com%2Fb6fa00%3Faff_id%3D5958%26url_id%3D11916%26crid%3D32585892788%26cid%3D355587063%26src%3DOS_Sheets_1a_45%2B3P_searchBedSheets%26sub3%3D9183375565%26sub1%3DOverstock+Clearance%3A+Super-Soft+Bamboo+Sheet+Set%26sub2%3Dimage6%26sub3%3Dc%26sub4%3Dn",
+ "publisher": "OpenSky",
+ "beacon": "https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&amp;es=5BidTR8GIS9KZ.TQOlNMJEna7.8D7nZy3l3cTVBIb8X8IEdRvE6vVuOwqPqYHHLTOScJGHEzN1_E0JaB_J4ckp4a5ZPJKzvll8o8tceQUVIQLjbPcSdb9L_z_ybcPXyHjjKMeKHdDjKofXux37MQduUZiLiTaI9GJB8rMZrI16op5Ihehyr5VQdVfOeOvBVXTxZ6H6TgT5atzO4Jq6xEQiVgaG82a29E0jhydtG9mimDnYhC.IPO20VEKaMQML3mXJ23FvnjFBjubrDIohduYqK7TWw77sEOmlptWtgBJIUkR9rOzgliuG6jOoVAxKSx6Hcz2jD9iHoTIPzjVYrWdHnz6jeLhDuUPxbe4uCQOWPQW9cmaylSMA3afHyOzncqt04JLBTvgSsjfiURrg--&amp;ap=52",
+ "full_template": "ad",
+ "image": {
+ "url": "https://s.yimg.com/uu/api/res/1.2/enHfHro9U2Ucw9DxI.vxyw--/YXBwaWQ9eXRhY2h5b24-/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/6bcdd87b50cd30fffec3fd80aff3fa40.jpeg",
+ "height": 82,
+ "width": 82
+ },
+ "summary": "This 4-piece set of super-soft 1800 Series Bamboo Fiber Bed Sheets continues to attract customers who seek the best in naturally luxurious linens.",
+ "adChoicesUrl": "https://info.yahoo.com/privacy/us/yahoo/relevantads.html",
+ "i13n": {
+ "cpos": 4,
+ "bpos": 1,
+ "cat": "LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a",
+ "t1": "a3",
+ "t2": "strm",
+ "t3": "ct",
+ "ad": 1,
+ "elmt": "ad",
+ "g": "32585892788",
+ "ct": 1,
+ "pkgt": 4
+ }
+ }, {
+ "type": "unknown",
+ "id": "93da4fb0-d91e-351a-932e-8119e0af686a"
+ }, {
+ "type": "unknown",
+ "id": "70185af0-9710-3dd8-b876-2c34ad7fc91b"
+ }, {
+ "type": "unknown",
+ "id": "dcaf8152-b6eb-3a78-be84-8ccfb073dd88"
+ }, {
+ "type": "unknown",
+ "id": "16fd4ef2-3268-3e51-bb09-4706057157ed"
+ }, {
+ "type": "unknown",
+ "id": "0352721e-f85d-3672-92e7-bc097b02071a"
+ }, {
+ "type": "unknown",
+ "id": "677b2ef3-1622-3a97-8ab3-12ddeeaec2d9"
+ }, {
+ "type": "ad",
+ "id": "32515678924",
+ "title": "Stormfall: The Strategy Game Phenomenon of 2016",
+ "link": "https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=UX9aOowGIS.bHLqPIWy0071EZMeEpj2FQ2n2_yKi6AV63juyZmk2am.CUQY54rns38TnakHcEBSqn4vaHAI9l1xCJPS9_1.kvkkiLW.egKVvuEsfHKx_IS20En9aar47ZF1qSxFIOjGAT3FFuVfrY6MWDWfxDBar7NpcBazpM7ABy1aPzVzIIOeANVvh5w36RHJ..CCGMyKaf5aYRJgQmG5oOGqQc4O60nLNiL1_QjVexzoUiSoHH1idXAH.nX3Oko.mxFS8Zc8Imp4jNQHaDspDjJFtWXS5yImUPjZvb1V_8eWRzGGKsBvufydXcxpTw_L05zqb0NdUT5nsD8wRYavadQ7wTSvJ7gmNogzsDvT0oNjD_bbET8qnZasu0k_w2waIb4FTJwnmKk8CwNyGrqkss7G2.BjS2tFfdkeKB2RKgZ_0.OHFH_HYvWret_Hcl83JFhXTiLIn17soVcXaeqZYSYYvZ03sIdbrxHTgu7xm6nzgoIcxXjqaxMJDsa24Dk3OEAB2eR5FTmMNpVfQoOvkPToKO6sauN9k0pW5qkN8k1zleQh.cOff39z5Cqj_.jnQWvo8FY4B%26lp=http%3A%2F%2Fplarium.com%2Fplay%2Fen%2Fstormfall%2F004_dragon_hybrid_anim%3FadCampaign%3D97905%26adPixel%3Dyahoo%21%26publisherID%3D32515678924",
+ "publisher": "Stormfall: Age of War",
+ "beacon": "https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&amp;es=Asw9IwQGIS.vl7aZtR.BL6XC.ET8qeV3FcY.klL2yxWMRVUE0UxOJ63PJ9AZl7aMr6AEetzeMPQT_ygskM4HXVY_qrKWZEeKX4bS94aMHoZFA3ul3znj3De8awLR7Q3vcU69oID_o4vSpTx95PXRXMrdaMDpiwR_blX9EF0yGFQHxzBEhWRrPe4Q4F5VwhXnTkKQe2SP5jtOC9Z6xI117HNG3jSTcKdrIp453JjOq0EuZWx2dy8oauyo1gtn.LEcVVWFKVjFmhB63qvR.o50UcSAvetPLv1gmoSJVt4p_gzgTGr3_095YJVQ3nTZ84emVO7_bFFK3Mid3lAC3LCWBO76Wo0cXDkb4adnwb375NIIVM0iWCXW3Wf8QEKmwBMPCvxCuKEHswGv.1qGHEBVA9pMe3I-&amp;ap=59",
+ "full_template": "ad",
+ "image": {
+ "url": "https://s.yimg.com/uu/api/res/1.2/JucO90sJ85vL77Xon7dM3g--/YXBwaWQ9eXRhY2h5b24-/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/d5fdc28d94833eb07380a7fbe1e7f47b.jpeg",
+ "height": 82,
+ "width": 82
+ },
+ "summary": "14 million players and growing. The game that might just take over your life",
+ "adChoicesUrl": "https://info.yahoo.com/privacy/us/yahoo/relevantads.html",
+ "i13n": {
+ "cpos": 5,
+ "bpos": 1,
+ "cat": "LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a",
+ "t1": "a3",
+ "t2": "strm",
+ "t3": "ct",
+ "ad": 1,
+ "elmt": "ad",
+ "g": "32515678924",
+ "ct": 1,
+ "pkgt": 4
+ }
+ }, {
+ "type": "unknown",
+ "id": "941f4513-3231-3d3d-871e-e35b6951d642"
+ }, {
+ "type": "unknown",
+ "id": "0d329389-79bc-36d7-8139-0733d8ad7ef1"
+ }, {
+ "type": "unknown",
+ "id": "ab15b38c-ef72-37e6-a524-0da74371ef44"
+ }, {
+ "type": "unknown",
+ "id": "94ff5110-8f09-3dae-8001-b88498d6bec8"
+ }, {
+ "type": "unknown",
+ "id": "369bd05d-512a-3fbf-b869-47a90c6d78e1"
+ }, {
+ "type": "unknown",
+ "id": "98f8fae3-55bd-37d2-8a8b-f3fe0b5ecc1b"
+ }, {
+ "type": "ad",
+ "id": "32559487621",
+ "title": "Skechers eGift Cards",
+ "link": "https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=MWSHOboGIS9ygtSW4MUyvkkOnxJqOpyo2.pfdbtL0n6UTFwQe1aXPH76_rz5BGmLnaiW_.ksHwZyQgODUxoqm3OePIhZWV2.XtlPldyFWACmcByltTGtt5uZqPpHKEqeVtR0qMZYKC2SG3YTqb3gJqqTyUN5mm6ozOGmuIv6LH6gq6EHzD4N4WGPjsmEUuZRyZe2qygM_xvMJT4OsgyVFIUNNwoPxxNgtiVNDgBCoyo_IVPEN6ucTPK8iQXOJTG1NZCwI5_pYUPRTDhr_ABy6fwPEU2dCW522DfMJ8nfdzWGgr3AXJ1yaN2u5BQxHkFAxS0B5bhtaxU7MpxDVkTqdoQ2uG62lBAcgCtxA.SFtvbPBxtpqfNyjV..sBUZv6lUNcLsOBdZUzDyy.0DAWHIZiU9d1cPFG5Sti4t.RPGxWNGpHkwYlFZLFQz327zREWo8hRM.dB5LzL1gRyM3iStpAFGp2tcpq0tLUkzL8KW8BNYzZeQ0QOxBxIbQiXc0taQy_I8V6RdCs25wJrZ2PKqqHHN4j.C_UEtmF0GFZFaIz1kK3ERZpUm00V0JmQuI_PzsYv6ZkxjKttTVTYbF5ips9tbW_qo2HUtpDfs9n4AxLaFU9DoHlp3LUjiuMPuA9lWYKDm1vmIHU1rUy6yfsMoO4Vpwf1NhoRlRSEdA0OOMSabFK46AAR9uM3eqd.MxPiaZmpoFs9R3f_KxT1nq04R4I9ymZFTtOYEYf34_yDwYm7PvYhClVHNM89e.bWQWmYo66ghYvvcNVdiQ2S213GZYa2jXiXqXrHeRHe2TbfhsskhZoTep0dOqNQtkjrQXHIQclkF_UBMxund0gl4pElIT5saYgX0aBsGVrwwwVilj2zzOeOjmlG2cNJKYI0DsSWaFfZ7cNPWpNFfeCnMjfx96BE0dM9tmDT1JLWK17FeQVGAgzV.A_1ZCajnDCj.TQmCll6ulIeQIX1etCIfnJBvXDbYU.hG298ARqfif4.HNPA_nWzyyXEYNkZAcinrzbJ6ZEWjnAMfzEcZg9BKACWEv4TuX6iR6tZ2aHp0LHpu3wov34F9MHkBO_Y3.wkCsj4q1msdqw1pIhdrdw5.oqbZ1fQmXTM5LxvLJRYZ0eMaeISkV5B.s6C_9R.JK_XumDxP4khyXIjZr3JPLt2eXIZ54EvHZvfhTZjxgA--%26lp=http%3A%2F%2F1236.xg4ken.com%2Fmedia%2Fredir.php%3Fprof%3D713%26camp%3D44560%26affcode%3Dcr866653%26k_inner_url_encoded%3D1%26cid%3D32559487621%7C10356968%7C%26mType%3D%26queryStr%3D%26networkType%3Dn%26kdv%3Dc%26url%5B%5D%3Dhttps%253A%252F%252Fgiftcards.retailmenot.com%252Fstore%252Fskechers.com%253Futm_medium%253Dcpc%2526utm_source%253Dyahoogemini%2526utm_campaign%253D%255BPRODUCT_LAUNCH%255D_%255BGIFTCARD%255D_skechers.com_%255BY%255D_%255BEXM%255D%2526utm_content%253D%255BGIFTCARD%255D_skechers.com_Gift_Cards_%255BY%255D_%255BEXM%255D%2526utm_term%253D%2526SID%253D_kenshoo_clickid_%2526ch%253Dcpc_t",
+ "publisher": "RetailMeNot/Skechers-Gift-Cards",
+ "beacon": "https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&amp;es=BNInkYsGIS8qcYt81Ew_5iZSs6xIlA6gMKl1_q3IEZnO2_bBv6OmvkjSuDtdO9DaqX1tHmDgRj1GVsqLMI9KyekF9gkXEmRbxOPGQzSgN6a8ud7p0HIM47XIfWjUQBiq7xEgFcZ5YnFvUpvskLLe1RlakjG10GAW5M1RskzhZ1JMMx5srHN61Lc_NnhGRb64r66_lVnxZ_PWdrz5gKju1RyXfC5xPb68FSQok.iONJU6Xdas6RFm3yIhPlXs_t_YLnK_xPMOinxv1iK5Wvigwqym8RlIPmgoanOYrwLwv.ymcIhBAA7c4J5GDDZ9hhekX1v4K6WALt5EQES8SI3E8SsJubItQAK..VRYfXmZmWUd.XaNDLgnbmvJNNCkiC4zLyDNGb46a.8flurpazdeQyEz&amp;ap=66",
+ "full_template": "ad",
+ "images": {},
+ "summary": "Save 7% On Skechers eGift Cards. Shop eGift Card Deals Now!",
+ "adChoicesUrl": "https://info.yahoo.com/privacy/us/yahoo/relevantads.html",
+ "i13n": {
+ "cpos": 6,
+ "bpos": 1,
+ "cat": "LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a",
+ "t1": "a3",
+ "t2": "strm",
+ "t3": "ct",
+ "ad": 1,
+ "elmt": "ad",
+ "g": "32559487621",
+ "ct": 1,
+ "pkgt": 3
+ }
+ }, {
+ "type": "unknown",
+ "id": "300a0229-a569-3ecf-9efb-ef7d5c3a065d"
+ }, {
+ "type": "unknown",
+ "id": "fae64b07-089e-302f-9287-12aeec870133"
+ }, {
+ "type": "unknown",
+ "id": "b91f7bd3-a286-38b4-97da-869f0fef1d6d"
+ }, {
+ "type": "unknown",
+ "id": "ddf816c8-73d3-39d9-bb96-05a118d3ddec"
+ }, {
+ "type": "unknown",
+ "id": "1c7110e3-31e5-346a-acf9-4d7dad91f6a7"
+ }, {
+ "type": "unknown",
+ "id": "b771c20c-0423-301d-af26-869b1759d02f"
+ }, {
+ "type": "unknown",
+ "id": "f47bd8a4-6c26-3142-a4eb-5e3bfa644625"
+ }, {
+ "type": "unknown",
+ "id": "399003a3-0604-3ca5-80a4-48a79051aca8"
+ }, {
+ "type": "unknown",
+ "id": "31b2af5e-04be-3f64-bcd9-f595f5748c25"
+ }, {
+ "type": "unknown",
+ "id": "c8ab1c68-d2da-3c68-9d55-1390b48738bd"
+ }, {
+ "type": "unknown",
+ "id": "c18462c1-e1d8-39c5-a5f2-44c4a525cf91"
+ }, {
+ "type": "unknown",
+ "id": "44db57fc-fb58-30f2-9301-631f6d903506"
+ }, {
+ "type": "unknown",
+ "id": "087bcfb5-0949-32fa-b172-fa54e62126c8"
+ }, {
+ "type": "unknown",
+ "id": "fbb9a63b-689c-33d0-abeb-c5a9b2ad08da"
+ }, {
+ "type": "unknown",
+ "id": "25a3faac-497a-3b0e-982f-c3dd72d11cdb"
+ }, {
+ "type": "unknown",
+ "id": "0c5b34b2-f52d-3942-a62c-4fbde5178546"
+ }, {
+ "type": "unknown",
+ "id": "9c67a907-fd1c-3d3c-92b7-86beb10e055c"
+ }, {
+ "type": "unknown",
+ "id": "41b99b34-a6fb-3f0d-a1e6-b6f16eab793f"
+ }, {
+ "type": "unknown",
+ "id": "ca5b7596-5bb4-3931-82cc-91d6cb336f73"
+ }, {
+ "type": "unknown",
+ "id": "c0bd81b5-9846-3437-a2d9-5205f300c9f0"
+ }, {
+ "type": "unknown",
+ "id": "50f94c0b-01d8-3d80-a26a-f89f0c7c36a9"
+ }, {
+ "type": "unknown",
+ "id": "c81315db-7dec-3a8b-84f5-58bb59217a17"
+ }, {
+ "type": "unknown",
+ "id": "2c472fe8-5011-3ea8-87c0-3d91988f1eac"
+ }, {
+ "type": "unknown",
+ "id": "647722d5-f1c1-3c2c-8813-6371b3ee9320"
+ }, {
+ "type": "unknown",
+ "id": "282b6444-b0f0-3461-8ea3-df3bcf64309f"
+ }, {
+ "type": "unknown",
+ "id": "baa13091-0c21-3aa1-8c0b-ef2c89f4c4ab"
+ }, {
+ "type": "unknown",
+ "id": "220aab81-ec06-3f78-ba96-2452460c9971"
+ }, {
+ "type": "unknown",
+ "id": "87a14bd5-f4e0-39d2-81c0-dcf0f834040c"
+ }, {
+ "type": "unknown",
+ "id": "8a5ee802-457a-3a66-b568-e8b75f2bf10e"
+ }, {
+ "type": "unknown",
+ "id": "b86ea197-d640-3d2a-a071-575f8f06717d"
+ }, {
+ "type": "unknown",
+ "id": "3b5d8b66-29a0-3e89-88ca-969fe32c50d1"
+ }, {
+ "type": "unknown",
+ "id": "f96ce5ce-c32f-37d9-9796-07ea4d9f122d"
+ }, {
+ "type": "unknown",
+ "id": "e3a93745-0e58-397d-8bfb-ce2ac76fa9c8"
+ }, {
+ "type": "unknown",
+ "id": "a0c582ba-57b5-394d-875f-78c2f80286c3"
+ }, {
+ "type": "unknown",
+ "id": "33bed671-eb4e-3a55-a5b6-06afa95886c4"
+ }, {
+ "type": "unknown",
+ "id": "8aebd18a-b372-30ec-8aa6-ce81c7778a22"
+ }, {
+ "type": "unknown",
+ "id": "7f548721-1b3a-302f-8019-6588db38c1b4"
+ }, {
+ "type": "unknown",
+ "id": "d4381a3a-8758-3bcd-8eda-0d6123a0266e"
+ }, {
+ "type": "unknown",
+ "id": "502d484d-9fde-3e03-acc3-5945db2453c7"
+ }, {
+ "type": "unknown",
+ "id": "47c949c5-44c0-33e3-8b60-aef80637d21f"
+ }, {
+ "type": "unknown",
+ "id": "88419db3-e03a-3fe0-8c13-1273a445e1a2"
+ }, {
+ "type": "unknown",
+ "id": "65193091-483d-3852-967a-b94f8b82a646"
+ }, {
+ "type": "unknown",
+ "id": "b2083bcb-225f-35ee-a03f-50ec0b2b595a"
+ }, {
+ "type": "unknown",
+ "id": "cc71a808-2153-3bc8-8537-190921abc289"
+ }],
+ "continuation": "",
+ "more": 86,
+ "enrichment_ids": [],
+ "fetched": 24,
+ "stream_items": [{
+ "type": "article",
+ "id": "16f9f18d-d40a-313b-a0cd-070c86f36465",
+ "title": "&amp;#39;Growing Pains&amp;#39; Star Alan Thicke Dead at 69",
+ "link": "https://gma.yahoo.com/growing-pains-star-alan-thicke-dead-69-033106505--abc-news-topstories.html",
+ "publisher": "Good Morning America",
+ "images": {
+ "square": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/sCg_Njmwgxk4FoyfmJyosg--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/gty-alan-thicke-er-161213_16x9_992.jpg",
+ "defer": 1
+ }
+ },
+ "image": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/sCg_Njmwgxk4FoyfmJyosg--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/gty-alan-thicke-er-161213_16x9_992.jpg",
+ "defer": 1
+ },
+ "summary": "Alan Thicke, the actor best-known for his starring role in the 1980s sitcom &amp;quot;Growing Pains,&amp;quot; died Tuesday at age 69. A publicist for Thicke&amp;#39;s son, Robin, said the actor suffered a heart attack in Los Angeles. Born in Canada, Thicke enjoyed a successful career as a writer, producer and",
+ "interestString": "WIKIID:Alan_Thicke|WIKIID:Growing_Pains|YCT:001000031|YCT:001000069|YCT:001000075|YCT:001000291",
+ "i13n": {
+ "cpos": 1,
+ "bpos": 1,
+ "cat": "LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a",
+ "t1": "a3",
+ "t2": "strm",
+ "t3": "ct",
+ "g": "16f9f18d-d40a-313b-a0cd-070c86f36465",
+ "ct": 1,
+ "pkgt": 4
+ },
+ "template": "default"
+ }, {
+ "type": "article",
+ "id": "ada486f6-2ab7-3c6c-ad90-0c1bfe85c059",
+ "title": "Trump Picks Rep. Ryan Zinke for Interior Secretary",
+ "link": "https://gma.yahoo.com/trump-picks-rep-ryan-zinke-interior-secretary-033106503--abc-news-topstories.html",
+ "publisher": "Good Morning America",
+ "summary": "President-elect Donald Trump today offered Rep. Ryan Zinke of Montana the job of secretary of the interior in his administration, senior Trump adviser Kellyanne Conway said on Fox News tonight.When reached by ABC News, a spokeswoman for Zinke declined to comment on whether he has accepted the position",
+ "interestString": "WIKIID:Donald_Trump|WIKIID:Ryan_Zinke|WIKIID:Kellyanne_Conway|WIKIID:United_States_Secretary_of_the_Interior|YCT:001000661",
+ "i13n": {
+ "cpos": 2,
+ "bpos": 1,
+ "cat": "LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a",
+ "t1": "a3",
+ "t2": "strm",
+ "t3": "ct",
+ "g": "ada486f6-2ab7-3c6c-ad90-0c1bfe85c059",
+ "ct": 1,
+ "pkgt": 3
+ },
+ "template": "default"
+ }, {
+ "type": "ad",
+ "id": "32474069017",
+ "title": "IFC Markets. Forex &amp; CFD trading",
+ "link": "https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=_EyQATMGIS8JBPPVxp2hqZgyzs_01BpGtKX98b0BOXU67G4QpKxsgMsqA2wXXjzyf5QcUtnFvTwKfyDIgir2mMNxxFevzUTSjSd5W7V52uQJkEdOA7WPPTHXGdJfz3JuS2oEAXMezQ4DUlNT3EQohO0sENVDcRABda0CP70rfLiBc3N3o_3tAZK7j4oTkbVSZXECyJB9W_g_P2m8u4qPKqXyChjt8J1717PN83H5Ig1FsSR6XGCMTJQCRtKuR1r4h4.4FnTy2gL5UBbTdNN8owlSSuy9b3rMLCyJewIzqj_lPHqbxmTQuxHdZURQGsmsUjAINUY_7K.tAo0WQFvSK.6he4as5O8d.S0Ja5qdPkN3_T21MVycgPUntTVFNqBdDBCjEocCrk_02Afph6Ey7W6Hk1MdzstgG2sI0PQbGq6ApN1EdrOk2hpgC3jbABrZnsG4oTxbPjDB2OTz_93vOm8aYVEWI54E2gRWGwzRh_oNvX2eMBvQ6ScMdmn3jGyFkUsYicv9QwcRT5r0lxM_6Mgu.4VRMA59G6hHw9K1HcY8HPZdE84ZLEOHk2Jy2Jq._wNAApOp9_kt4c1qHBdQHO3B.cr29vczq0N2b0Lj5pmDQvHrUP3cuBn1hNMJtaG0wUeYXI0Ftw--%26lp=http%3A%2F%2Fwww.ifcmarkets.com%2Fen%2Fforex-cfd-trading%3Futm_source%3Dyahoo%26utm_medium%3Dcpc%26utm_term%3D%26utm_content%3Dexcellent_new%26utm_campaign%3Denglish_native_asia",
+ "publisher": "IFC Markets",
+ "beacon": "https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&amp;es=Zv7NRTwGIS9PlEDKmbZLuAyhnT_wOWxOvDc4UBcVLuBExQRZaXHv9Z_oIPzknzLPmTGCXnV3wmYYWEVJhUoFdEc2tGARbxdHvmOtAwUAmDG_nWE688ii8ZGs.CPhh0bzpZVIsqDiBE9dwz2PID5B6Xnxc_2eHpH6hHs5XpPVuygW.egEacfNgWn1_r5lKcS.2_5WP2OCRN6mFF522og1en7zpySl9LDc5oa8V7i1Mq5Lx_Ysp9aQc_s1NiJUqwRBkTz4VYKKQOmn4kyd93v3yTo0.dYBlVzTfUczkwQPGuMD8RyFSkhmhmSoNn4lObLCvcHySZAjv69j3ewOng73dudP.ut_BNJwHSWbb5_vV_qkA4IuUnw59mhRZHCvZGsWzAicFEoFman_ObiT8RVFe4MM&amp;ap=3",
+ "full_template": "ad",
+ "image": {
+ "url": "https://s.yimg.com/uu/api/res/1.2/NKp6SzyjFLstHsK_F3XPng--/YXBwaWQ9eXRhY2h5b24-/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/a7e2aee2ff701ba5de82f3b1f5180f46.jpeg",
+ "height": 82,
+ "width": 82
+ },
+ "summary": "Excellent Conditions for Professional Trading! 500+ trading instruments. 2 regulations: CySEC and BVI FSC. 100% dividend adjustment on stock CFDs.",
+ "adChoicesUrl": "https://info.yahoo.com/privacy/us/yahoo/relevantads.html",
+ "i13n": {
+ "cpos": 3,
+ "bpos": 1,
+ "cat": "LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a",
+ "t1": "a3",
+ "t2": "strm",
+ "t3": "ct",
+ "ad": 1,
+ "elmt": "ad",
+ "g": "32474069017",
+ "ct": 1,
+ "pkgt": 4
+ }
+ }, {
+ "type": "article",
+ "id": "f19aca0b-c4b8-3be7-8ce8-a23789fb7b96",
+ "title": "Syrian Government Reportedly Kills Dozens of Civilians in Aleppo, Some &amp;#39;on the Spot,&amp;#39; UN Says",
+ "link": "https://gma.yahoo.com/syrian-government-reportedly-kills-dozens-civilians-aleppo-spot-122713123--abc-news-topstories.html",
+ "publisher": "Good Morning America",
+ "images": {
+ "square": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/zC1RIM0_sKKcJCXxKiG9eg--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/f0f8fa7a03e5920e4ca30b8ebb91481e",
+ "defer": 1
+ }
+ },
+ "image": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/zC1RIM0_sKKcJCXxKiG9eg--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/f0f8fa7a03e5920e4ca30b8ebb91481e",
+ "defer": 1
+ },
+ "summary": "Eastern Aleppo has fallen, and military activities there have stopped, according to Russia&amp;#39;s United Nations ambassador. &amp;quot;The Syrian government has re-established control over eastern Aleppo,&amp;quot; Vitaly Churkin told the U.N. Security Council on Tuesday. Residents of eastern Aleppo told ABC",
+ "interestString": "WIKIID:Aleppo|WIKIID:Council_of_Ministers_%28Syria%29|YCT:001000713|YCT:001000661",
+ "i13n": {
+ "cpos": 4,
+ "bpos": 1,
+ "cat": "LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a",
+ "t1": "a3",
+ "t2": "strm",
+ "t3": "ct",
+ "g": "f19aca0b-c4b8-3be7-8ce8-a23789fb7b96",
+ "ct": 1,
+ "pkgt": 4
+ },
+ "template": "default"
+ }, {
+ "type": "article",
+ "id": "da0a1fba-50dc-3111-b6f6-70dd528f4257",
+ "title": "Founder of CorePower Yoga Trevor Tice Found Dead Under &amp;#39;Suspicious Circumstances&amp;#39; in California, Police Say",
+ "link": "https://gma.yahoo.com/founder-corepower-yoga-trevor-tice-found-dead-under-021223966--abc-news-topstories.html",
+ "publisher": "Good Morning America",
+ "images": {
+ "square": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/AT3Vo19rKmTTy1XMTa93Tg--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/HT-san-diego-death-scene-jt-161213_16x9_992.jpg",
+ "defer": 1
+ }
+ },
+ "image": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/AT3Vo19rKmTTy1XMTa93Tg--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/HT-san-diego-death-scene-jt-161213_16x9_992.jpg",
+ "defer": 1
+ },
+ "summary": "The founder of CorePower Yoga was found dead under &amp;quot;suspicious circumstances&amp;quot; in a San Diego, Calif., home. The San Diego Police Department said it received a call for a welfare check at a home on Monday at about 12:15 p.m. Responding officers found a man identified as Trevor Tice dead inside",
+ "interestString": "WIKIID:CorePower_Yoga|WIKIID:San_Diego_Police_Department|WIKIID:San_Diego|YCT:001000291|YCT:001000667|YCT:001000780|YCT:001000288",
+ "i13n": {
+ "cpos": 5,
+ "bpos": 1,
+ "cat": "LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a",
+ "t1": "a3",
+ "t2": "strm",
+ "t3": "ct",
+ "g": "da0a1fba-50dc-3111-b6f6-70dd528f4257",
+ "ct": 1,
+ "pkgt": 4
+ },
+ "template": "default"
+ }, {
+ "type": "article",
+ "id": "6470aced-4402-3388-b298-eb5e7fe6ea74",
+ "title": "Woman Shares Her Journey From Fitness Competitor to Cancer Fighter: &amp;#39;I&amp;#39;m Learning to Love Myself Again&amp;#39;",
+ "link": "https://gma.yahoo.com/woman-shares-her-journey-fitness-competitor-cancer-fighter-003315567--abc-news-topstories.html",
+ "publisher": "Good Morning America",
+ "images": {
+ "square": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/frVBZVk9xOJiteGalRep8w--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/HT-cheyenne-clark-jt-161213_v4x3_16x9_992.jpg",
+ "defer": 1
+ }
+ },
+ "image": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/frVBZVk9xOJiteGalRep8w--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/HT-cheyenne-clark-jt-161213_v4x3_16x9_992.jpg",
+ "defer": 1
+ },
+ "summary": "Cheyann Shaw, 23, has been documenting her journey from bikini fitness competitor to cancer fighter on social media to help raise awareness about the disease and to inspire others facing their own difficult battles. A photo recently posted to Instagram -- showing what Shaw&amp;#39;s body looked like before",
+ "interestString": "YCT:001000395|YCT:001000427|YCT:001000441",
+ "i13n": {
+ "cpos": 6,
+ "bpos": 1,
+ "cat": "LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a",
+ "t1": "a3",
+ "t2": "strm",
+ "t3": "ct",
+ "g": "6470aced-4402-3388-b298-eb5e7fe6ea74",
+ "ct": 1,
+ "pkgt": 4
+ },
+ "template": "default"
+ }, {
+ "type": "article",
+ "id": "f113e675-474d-3951-9431-569dd45eb537",
+ "title": "What Critics Are Saying About &amp;#39;Rogue One: A Star Wars Story&amp;#39;",
+ "link": "https://gma.yahoo.com/critics-saying-rogue-one-star-wars-story-182413846--abc-news-celebrities.html",
+ "publisher": "Good Morning America",
+ "images": {
+ "square": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/Rq7h_w4vZwH7jSc00hOMjw--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/27ec846c4c5aaa4323c702ed050d291a",
+ "defer": 1
+ }
+ },
+ "image": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/Rq7h_w4vZwH7jSc00hOMjw--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/27ec846c4c5aaa4323c702ed050d291a",
+ "defer": 1
+ },
+ "summary": "&amp;quot;For sheer scene-stealing wow, though, you can&amp;#39;t beat Donnie Yen as Chirrut Imwe, a blind warrior monk, and Riz Ahmed as Bodhi Rook, a nutjob Imperial pilot now siding with the rebels. Best of all is Alan Tudyk as the voice of K-2S0, a security droid with a mouth on him,&amp;quot; he added. Vanity",
+ "interestString": "WIKIID:Peter_Travers|WIKIID:Star_Wars|WIKIID:Rolling_Stone|YCT:001000031|YCT:001000076|YCT:001000075|YCT:001000079",
+ "i13n": {
+ "cpos": 7,
+ "bpos": 1,
+ "cat": "LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a",
+ "t1": "a3",
+ "t2": "strm",
+ "t3": "ct",
+ "g": "f113e675-474d-3951-9431-569dd45eb537",
+ "ct": 1,
+ "pkgt": 4
+ },
+ "template": "default"
+ }, {
+ "type": "article",
+ "id": "fb3d831c-9dab-36e1-9fe8-ca328b6d3041",
+ "title": "Evangelical Leader Tony Perkins Blasts Rex Tillerson as Trump&amp;#39;s Pick for Secretary of State",
+ "link": "https://gma.yahoo.com/evangelical-leader-tony-perkins-blasts-rex-tillerson-trumps-210816203--abc-news-topstories.html",
+ "publisher": "Good Morning America",
+ "images": {
+ "square": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/AqmTwaPXfpyxvEePvI73qw--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/GTY-tony-perkins-01-as-161213_16x9_992.jpg",
+ "defer": 1
+ }
+ },
+ "image": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/AqmTwaPXfpyxvEePvI73qw--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/GTY-tony-perkins-01-as-161213_16x9_992.jpg",
+ "defer": 1
+ },
+ "summary": "Perkins wrote in a blog post published Monday, “To hear that Donald Trump may be appointing a man who not only led the charge to open the Boy Scouts to gay troop leaders but whose company directly gives to Planned Parenthood is upsetting, at best.",
+ "interestString": "WIKIID:Donald_Trump|WIKIID:Boy_Scouts_of_America|WIKIID:Rex_Tillerson|WIKIID:Tony_Perkins_%28politician%29|WIKIID:Planned_Parenthood|WIKIID:ExxonMobil|YCT:001000661",
+ "i13n": {
+ "cpos": 8,
+ "bpos": 1,
+ "cat": "LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a",
+ "t1": "a3",
+ "t2": "strm",
+ "t3": "ct",
+ "g": "fb3d831c-9dab-36e1-9fe8-ca328b6d3041",
+ "ct": 1,
+ "pkgt": 4
+ },
+ "template": "default"
+ }, {
+ "type": "article",
+ "id": "3ca4dab5-bb07-3a9b-a538-401da333f694",
+ "title": "Kanye West Says He Discussed &amp;#39;Multicultural Issues,&amp;#39; Chicago Violence With Trump",
+ "link": "https://gma.yahoo.com/kanye-west-meets-donald-trump-york-150850439--abc-news-topstories.html",
+ "publisher": "Good Morning America",
+ "images": {
+ "square": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/lkAOQAcPGFRkIpuSQydxYQ--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/d9bc62c444ad53f08a514cee770a9862",
+ "defer": 1
+ }
+ },
+ "image": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/lkAOQAcPGFRkIpuSQydxYQ--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/d9bc62c444ad53f08a514cee770a9862",
+ "defer": 1
+ },
+ "summary": "President-Elect Donald Trump met with rapper Kanye West at Trump Tower today, discussing &amp;quot;multicultural issues,&amp;quot; bullying and violence in Chicago, according to the rapper.Trump appeared to have a slightly different take on the meeting, saying the men &amp;quot;discussed life.&amp;quot;&amp;quot;We’ve been",
+ "interestString": "WIKIID:Trump_Tower_%28New_York_City%29|YCT:001000661",
+ "i13n": {
+ "cpos": 9,
+ "bpos": 1,
+ "cat": "LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a",
+ "t1": "a3",
+ "t2": "strm",
+ "t3": "ct",
+ "g": "3ca4dab5-bb07-3a9b-a538-401da333f694",
+ "ct": 1,
+ "pkgt": 4
+ },
+ "template": "default"
+ }, {
+ "type": "ad",
+ "id": "32588460847",
+ "title": "Apply for the 2017 US Green Card Lottery",
+ "link": "https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=KM6PMZQGIS_d7tLRcAGm2SfAmkfgz_VFgJxeAhqA6c7Obp4g26tCZgIkylW2cJIvqP59JNT1I9.ooT8Z06wHYwXA38o2luemXMHyvykcaaxZuEPLFhP4JYrjWc.gsDbVBQeC1BnLTRGGHIIq4vL3gihT2Gty4zxwHAJNOgKEjWsqC3Wwyb6l8CtBy3lquirYoKN0q0H.UzEWr4iIRjzSTzHuZ42sc.rcfNhPw.rEYqCDV42lFyH_ILlVHfGtxI9iQv.bK8hkaW4khKiVkBSIVk03_9jzkBVHqLHq3ZF5YCuFBP9SO6GIYOECWmj3Ik8ItOJVP9caZshYlvfDTwobXMRsm5a4j33oQrYkrj6uazgvGfYkHptP6.sIrnISf2l0KafBuej27dgWlfe8Rt.k0vOdv_iZ9Lba5W4WDy3Zbj0U4ZrKUyMjPekc8QOnYVuLypaw1ScRYmq8HNUOYa12znlheghAqFOAl9bG0L0bxLnQQghx3dcu5rUSaqYBKZK_s2ZMqhVtIGgtfhPgSIGVRTvxYRFyxMyLliqY7bhVgqIep_FP6L0rj9CcfbG6Yd.gu2Mety.e39B1xWJBsu7fs1vFKzfFn5qnCRxTB8Jima0xbZJK%26lp=https%3A%2F%2Fwww.globalusagreencard.org%2Flanding_page%2Fv3%2F%3Futm_source%3Dyahoo_gemini%26utm_medium%3Dcontent%26lang%3Den-EN%26r%3DYG%26c%3Deast%26adg_id%3D32588460847",
+ "publisher": "Global USA Green Card",
+ "beacon": "https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&amp;es=uYfVWIsGIS93x286R7DeIk1ISkOlZdozdC1hQViI5Za.ImCfoSNpADpTc_Uv1dQVDlyAo3J9_4DtL5Z5qn.CbMKeGlv0dEMS4qXUGXiLzmNMBH34RAuLS80S8jWlOZcVYX2p9B37mnJNf91FVIGTUHvIau2v5FZaMkgagKug9xtFvbmtRezj_hL2aJ1IZ8y9IjKNcet4Ndggk6u6tUmmcgSkh0IZx8ZjMgGCtBX8hswt5xhChoiVu.f.TT187nj0trCCultodT4fH8Gg3JTEPS3z_Gr_EFvTfglRTYZDyrE0MS2My4hLzOfFV2G514.WxXF2hYlW0PAa6J50PxukCqIqvgiwjphciHvfjzm7K5k9EAvgULgkwEuMnMCB9kiQV92n9vRQhuXih9xMutWweizJ1AI-&amp;ap=10",
+ "full_template": "ad",
+ "image": {
+ "url": "https://s.yimg.com/uu/api/res/1.2/GF1FscDQnXczQKoNSUFZYg--/YXBwaWQ9eXRhY2h5b24-/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/8a5b4113cc4325cb8be827aab4bba1aa.jpeg",
+ "height": 82,
+ "width": 82
+ },
+ "summary": "A US Green Card could be yours!",
+ "adChoicesUrl": "https://info.yahoo.com/privacy/us/yahoo/relevantads.html",
+ "i13n": {
+ "cpos": 10,
+ "bpos": 1,
+ "cat": "LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a",
+ "t1": "a3",
+ "t2": "strm",
+ "t3": "ct",
+ "ad": 1,
+ "elmt": "ad",
+ "g": "32588460847",
+ "ct": 1,
+ "pkgt": 4
+ }
+ }, {
+ "type": "article",
+ "id": "48897845-e806-3216-b2ae-4213132dbf4e",
+ "title": "Man Who Says Relatives Were Killed by US Drone Strike Heads to Federal Court",
+ "link": "https://gma.yahoo.com/man-says-relatives-were-killed-us-drone-strike-164206896--abc-news-topstories.html",
+ "publisher": "Good Morning America",
+ "images": {
+ "square": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/lsSVyqvn7P.UlvhuWHAlGA--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/gty-yemen-drone-faisal-bin-ali-jaber-jc-161212_16x9_992.jpg",
+ "defer": 1
+ }
+ },
+ "image": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/lsSVyqvn7P.UlvhuWHAlGA--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/gty-yemen-drone-faisal-bin-ali-jaber-jc-161212_16x9_992.jpg",
+ "defer": 1
+ },
+ "summary": "Faisal bin Ali Jaber, a Yemeni man who claims he lost members of his family in a U.S. drone strike, was set to attend a U.S. appellate court hearing today regarding the alleged incident in what could become a landmark case. Jaber, an engineer, spoke to ABC News about the alleged drone strike, which",
+ "interestString": "WIKIID:Barack_Obama|WIKIID:Ali_Jaber|WIKIID:Drone_strikes_in_Pakistan|YCT:001000661|YCT:001000713|YCT:001000780|YCT:001000720",
+ "i13n": {
+ "cpos": 11,
+ "bpos": 1,
+ "cat": "LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a",
+ "t1": "a3",
+ "t2": "strm",
+ "t3": "ct",
+ "g": "48897845-e806-3216-b2ae-4213132dbf4e",
+ "ct": 1,
+ "pkgt": 4
+ },
+ "template": "default"
+ }, {
+ "type": "article",
+ "id": "a5b99a73-2049-31d8-8698-d763766cc1f4",
+ "title": "Veteran Who Received Life-Changing Double-Arm Transplant Shows Off Progress",
+ "link": "https://gma.yahoo.com/veteran-received-life-changing-double-arm-transplant-shows-205806453--abc-news-topstories.html",
+ "publisher": "Good Morning America",
+ "images": {
+ "square": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/Seiaq_unMwSR3jFTOwKZbQ--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/HT_arm_transplant_02_as_161005_16x9_992.jpg",
+ "defer": 1
+ }
+ },
+ "image": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/Seiaq_unMwSR3jFTOwKZbQ--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/HT_arm_transplant_02_as_161005_16x9_992.jpg",
+ "defer": 1
+ },
+ "summary": "Just four months after undergoing a life-changing double-arm transplant, John Peck shared how far he has come by releasing a video of him being able to control his elbow. Peck shared a video on Monday in which -- with the help of a therapist -- he slowly and carefully practices moving his right elbow",
+ "interestString": "WIKIID:John_Peck_%28Australian_rules_footballer%29|YCT:001000545",
+ "i13n": {
+ "cpos": 12,
+ "bpos": 1,
+ "cat": "LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a",
+ "t1": "a3",
+ "t2": "strm",
+ "t3": "ct",
+ "g": "a5b99a73-2049-31d8-8698-d763766cc1f4",
+ "ct": 1,
+ "pkgt": 4
+ },
+ "template": "default"
+ }, {
+ "type": "article",
+ "id": "e8961efb-8186-3082-ba8a-5b6154092ee3",
+ "title": "Deck the Halls With These Awkward Family Holiday Photos",
+ "link": "https://gma.yahoo.com/deck-halls-awkward-family-holiday-photos-195305687--abc-news-topstories.html",
+ "publisher": "Good Morning America",
+ "images": {
+ "square": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/3yUy9V1KP5MOjyFABbF1Eg--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/2943a3aa244127daf2794fb1f63ec3a0",
+ "defer": 1
+ }
+ },
+ "image": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/3yUy9V1KP5MOjyFABbF1Eg--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/2943a3aa244127daf2794fb1f63ec3a0",
+ "defer": 1
+ },
+ "summary": "Gathering together for holiday family photos can be fun, or it can be disaster. Perhaps Uncle Larry had too much eggnog, or Aunt Sally insisted on everyone wearing her hand-knit Christmas sweaters, or maybe the little kids just couldn’t handle smiling for a single shot. And if you haven’t giggled enough",
+ "interestString": "WIKIID:Aunt_Sally|YCT:001000031|YCT:001000780|YCT:001000071",
+ "i13n": {
+ "cpos": 13,
+ "bpos": 1,
+ "cat": "LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a",
+ "t1": "a3",
+ "t2": "strm",
+ "t3": "ct",
+ "g": "e8961efb-8186-3082-ba8a-5b6154092ee3",
+ "ct": 1,
+ "pkgt": 4
+ },
+ "template": "default"
+ }, {
+ "type": "article",
+ "id": "fea9ada4-c1b7-3c58-bbea-8da308640f57",
+ "title": "Hospital Cafeteria Worker Saves Thousands of Dollars to Buy Toys for Kids at Christmas",
+ "link": "https://gma.yahoo.com/hospital-cafeteria-worker-saves-thousands-dollars-buy-toys-154543711--abc-news-topstories.html",
+ "publisher": "Good Morning America",
+ "images": {
+ "square": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/NQZt7ctmogRo_g6ugUUKGw--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/c7aeb63563dc1722f6c98e3262acb445",
+ "defer": 1
+ }
+ },
+ "image": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/NQZt7ctmogRo_g6ugUUKGw--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/c7aeb63563dc1722f6c98e3262acb445",
+ "defer": 1
+ },
+ "summary": "Jessie Tenyani has no children of her own, but for each of the past eight years, she has put away thousands of dollars from her paycheck as a hospital cafeteria worker to buy toys for kids for Christmas. Tenyani, 55, of Chicago, hand-picks the toys, as many as 1,000 each Christmas, and donates them",
+ "interestString": "WIKIID:Christmas_club|WIKIID:Christmas|YCT:001000780|YCT:001000395|YCT:001000560|YCT:001001060|YCT:001001062|YCT:001000295",
+ "i13n": {
+ "cpos": 14,
+ "bpos": 1,
+ "cat": "LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a",
+ "t1": "a3",
+ "t2": "strm",
+ "t3": "ct",
+ "g": "fea9ada4-c1b7-3c58-bbea-8da308640f57",
+ "ct": 1,
+ "pkgt": 4
+ },
+ "template": "default"
+ }, {
+ "type": "article",
+ "id": "5a111841-a550-38c2-baa6-a719288d4a29",
+ "title": "Video Captures Moment Police Drag Uncooperative Passenger off Delta Flight",
+ "link": "https://gma.yahoo.com/video-shows-police-dragging-woman-off-delta-flight-193904310--abc-news-topstories.html",
+ "publisher": "Good Morning America",
+ "images": {
+ "square": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/0TVxONSnPzpWrgwJ700.Ew--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/HT-Woman-Off-Delta-Flight-MEM-161213_16x9_992.jpg",
+ "defer": 1
+ }
+ },
+ "image": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/0TVxONSnPzpWrgwJ700.Ew--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/HT-Woman-Off-Delta-Flight-MEM-161213_16x9_992.jpg",
+ "defer": 1
+ },
+ "summary": "A video has surfaced showing an airport police officer dragging a passenger by her wrists face-up along a carpeted aisle to the front of a plane. The video then shows a second officer grabbing the passenger by the ankles to help lift her to the exit.The passenger was removed from the flight for failing",
+ "interestString": "WIKIID:Delta_Air_Lines|WIKIID:Airport_police|YCT:001000667|YCT:001000992",
+ "i13n": {
+ "cpos": 15,
+ "bpos": 1,
+ "cat": "LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a",
+ "t1": "a3",
+ "t2": "strm",
+ "t3": "ct",
+ "g": "5a111841-a550-38c2-baa6-a719288d4a29",
+ "ct": 1,
+ "pkgt": 4
+ },
+ "template": "default"
+ }, {
+ "type": "article",
+ "id": "3c72182d-1f31-31f6-8fda-6916938be05f",
+ "title": "Wife Creatively Includes Deployed Air Force Husband in Family Christmas Card",
+ "link": "https://gma.yahoo.com/wife-creatively-includes-deployed-air-force-husband-family-183904735--abc-news-topstories.html",
+ "publisher": "Good Morning America",
+ "images": {
+ "square": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/y9wkR2ZsvhhQzjh91lRgRA--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/c67e407fc84680e75ba8dcd4af3c2e55",
+ "defer": 1
+ }
+ },
+ "image": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/y9wkR2ZsvhhQzjh91lRgRA--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/c67e407fc84680e75ba8dcd4af3c2e55",
+ "defer": 1
+ },
+ "summary": "Ain’t no mountain high enough, ain’t no valley low enough, ain’t no river wide enough to keep this military wife from including her deployed husband in their family Christmas card. Ashley Sistrunk was feeling a bit down after seeing all her friends’ family holiday photos on Facebook, so she came up",
+ "interestString": "WIKIID:Christmas_card|WIKIID:Christmas|WIKIID:Facebook|YCT:001000780|YCT:001001062",
+ "i13n": {
+ "cpos": 16,
+ "bpos": 1,
+ "cat": "LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a",
+ "t1": "a3",
+ "t2": "strm",
+ "t3": "ct",
+ "g": "3c72182d-1f31-31f6-8fda-6916938be05f",
+ "ct": 1,
+ "pkgt": 4
+ },
+ "template": "default"
+ }, {
+ "type": "ad",
+ "id": "32572483510",
+ "title": "Cyber LG Stylo 2 Deal",
+ "link": "https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=1Vg_vM8GIS_jYbYOgkZwvFcEzB9pYLoQHDL4ZHqI.C9U4KSUiJIz5WAZWJ21cEn9R5MRZ77c2A_YsTspV1WODtvJY2wjlAFCuaNwUw5QjzcgCOo71IkkFQsbr.UaQLOID5DzN3eqhX9UhOme.BWfoyWYMmiLAhpoOYMdUbFUHYdGhSDeWNLfz3mQNg8KUUHy.DMrRqMAf9tMwawHwabEL9dsMG4zG__W0NAhtQ7M9iygHtRVNyYgkeoNqwDKi2O4aq_4dq_s2xVmSq30FEeaJ2BBxLD9mFJdkColTLJSi8Qv7FXkHdgERIeHh8D4s4x1vSybJycTqwVS4Kd0gyj4RjGC7TQGEqZJ4QjX8WudfdrgAvY934zbe3_uec9rKPD6WhPqBXObktwzO0uBqy6ukKCeaI5dZ.P3D7cEZhYfSznK0Rjr_eo3kp13rOVYi.tDzFbfRvEi_02PLSN9bjdlnnlkhMJvsSs0rS_6u0aDhuUDjE_0Tv9BzsAVx8iFYE6psri5G7aOCQuiwOW0ohNiec9qM08q_LufKVYHh8yauT3mpPyd16yQXt_EedFjE0q6Nx3VoECkd4l7_IxlbvvpW2cRJ5f0XZZcYPNAAx2ZnHusfv_D.s76TFqHaA8raOvijxnGbTPG1vaqYH_08Mjij8bRzZ1ybameGnDclan37cKQTCvLjrXa0zGBZ1ROkwanmFqlLr5nNQ2LV.ey3nzUq0DTDZ2fB7572R65FcuOUoIY74sABMqSqCLubeBfD2SR7fFl6BuPvwEJDQ5AWU58as6YG_iICUXdB_y4QROTmbK9Yx0vAnPq4aABb3ALRn49rU0.ex2REO5GfZAqgbybwkvNmVM9MoUNWCfaWGkJ9bsoDamiGRINy6MtsBOD7yBlGaD7BJyir7Exn5a1fnnd06i.wG1G3Ee4_R.T2gSFwegVkAIsBmVj9ukYh3.8hi2E2jwoI0u7NctdBeTI3Mgi3xyPZKNMVxDuj6j6gVkU08IDtRgIKL94eOJr351fMk3fTtDw40SIo3O4i2vfu_LfOyRgP_gku0dVSJcgNxzCgg0FIg8gTkeTDdI1TdNM9Pei0sPOiInzU5mxoUwFi6NRPlqpYyaMBx7CuBuGrLZIJo4nWLiyBgrEJEtvpLpbWMK4KpFOw4n8YIxSp35Wcn8vEmTAsDoZH1ArNWBiNiFL2QvlNSzBvWHMLiosv4zETWMC3H5RTyc6ISnPYyP.0U_5TLG77eokuxnxgXk3fegWJBA-%26lp=http%3A%2F%2Fbs.serving-sys.com%2FServing%2F%3Fcn%3Dsearch%26semdid%3D7_353219189_9113774098_lfrv2jCE%26semid%3D1%26seid%3D7%26semuserid%3D%26advid%3D108226%26mmx%3D%24%24sekwid%3D%26seadid%3D32572483510%26sekwtxt%3D%26matchtype%3D%24%24%26semdata%3D%24%24mkwid%3Dlfrv2jCE_32572483510___c%26mtid%3D744he937470%24%24%26urtu%3Dhttp%253A%252F%252Fd.agkn.com%252Fpixel%252F7636%252F%253Fatr%253D%2526col%253D37470%252C103%252C103353219189%252C%252C%252C%2526l0%253Dhttps%253A%252F%252Fwww.cricketwireless.com%252Flg-cyber-deals.html%253Fwoo_campaign%253DSEM%2526woo_source%253DYAHGEM_PPC%2526woo_medium%253Dkeyword%2526woo_content%253DQ4%252BHeavy-Up_TMobile%252BCustomers%2526woo_term%253D",
+ "publisher": "Cricketwireless.Com/LGG2",
+ "beacon": "https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&amp;es=aVA0ALEGIS.2IGI6Mye0PdVFiCieLGgTjhXdf314JNtY_uhF1ag5aqnDFuvyJ0pHgrjBm7p0__mTpHzF2NK6M29l3rxhySqz6PuhUYFW1H7gVXs.tqRSTpkjOFaC32XasHxNwV1oC0wKHT4KhmkqME8RYFAppdIrDg0SWFzgAdRh6VJkae8yHbWffOKjHl3N6GdOEpljtzrv8whA856peHnxcViukLyIGGChTyBymXbTqEB67DcXJudhqbV6MrFEU.cZmSasO7wo_FxgzV5OFCqw3RKdDQNTzC5ces8L63_cGn0uGdp2fPWhTEg5vikPJwqN0L7Ac1jZ3FJ8uuErI0IZ0U_xw9L6mKgwD6sls_kjxDJ.WBC5m409.qATpP3hUQgHpjyxhwC6flzjbkU-&amp;ap=17",
+ "full_template": "ad",
+ "image": {
+ "url": "https://s.yimg.com/uu/api/res/1.2/m_UyoICU1famxwC5nvD6LA--/YXBwaWQ9eXRhY2h5b24-/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/9807f365e14c7964db0ac90a6a8b4899.jpeg",
+ "height": 82,
+ "width": 82
+ },
+ "summary": "$49.99 Limited Time. Req’s New Line of Svc w/ Qual. Plan. See Details.",
+ "adChoicesUrl": "https://info.yahoo.com/privacy/us/yahoo/relevantads.html",
+ "i13n": {
+ "cpos": 17,
+ "bpos": 1,
+ "cat": "LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a",
+ "t1": "a3",
+ "t2": "strm",
+ "t3": "ct",
+ "ad": 1,
+ "elmt": "ad",
+ "g": "32572483510",
+ "ct": 1,
+ "pkgt": 4
+ }
+ }, {
+ "type": "article",
+ "id": "2394698c-069b-3ef9-8e2b-7a14e5100aaa",
+ "title": "How a Single Senate Republican Could Tank Rex Tillerson&amp;#39;s Nomination",
+ "link": "https://gma.yahoo.com/single-senate-republican-could-tank-rex-tillersons-nomination-175313186--abc-news-topstories.html",
+ "publisher": "Good Morning America",
+ "images": {
+ "square": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/9H79BlxjP4W46wnZg8ujkQ--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/498a37e3439ddb9a9f714dbb49f67656",
+ "defer": 1
+ }
+ },
+ "image": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/9H79BlxjP4W46wnZg8ujkQ--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/498a37e3439ddb9a9f714dbb49f67656",
+ "defer": 1
+ },
+ "summary": "Marco Rubio is not the only Republican senator to express concerns about President-elect Donald Trump’s pick for secretary of state, Rex Tillerson, over his connections to Russian President Vladimir Putin. If all nine Democrats on the panel vote against Tillerson, they would need only one of the committee",
+ "interestString": "WIKIID:United_States_Secretary_of_State|WIKIID:United_States_Senate_Committee_on_Foreign_Relations|WIKIID:United_States_Senate|YCT:001000661",
+ "i13n": {
+ "cpos": 18,
+ "bpos": 1,
+ "cat": "LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a",
+ "t1": "a3",
+ "t2": "strm",
+ "t3": "ct",
+ "g": "2394698c-069b-3ef9-8e2b-7a14e5100aaa",
+ "ct": 1,
+ "pkgt": 4
+ },
+ "template": "default"
+ }, {
+ "type": "article",
+ "id": "14c217dd-6b60-33df-b94d-5ffe857ccf54",
+ "title": "Frito-Lay Drops Doritos Super Bowl TV Advertisements",
+ "link": "https://gma.yahoo.com/frito-lay-drops-doritos-super-bowl-tv-advertisements-145007590--abc-news-topstories.html",
+ "publisher": "Good Morning America",
+ "images": {
+ "square": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/x21gttFHX..Ch3MxLkSlvA--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/0dbce825690bb482e81a8a91c43e3842",
+ "defer": 1
+ }
+ },
+ "image": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/x21gttFHX..Ch3MxLkSlvA--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/0dbce825690bb482e81a8a91c43e3842",
+ "defer": 1
+ },
+ "summary": "Frito-Lay is closing the bag on its popular Doritos commercials for Super Bowl 2017. GoDaddy stepped out of 2016&amp;#39;s advertisements and Toyota has announced it will not run commercials during Super Bowl 51 on Feb. 5, also citing a marketing strategy.",
+ "interestString": "WIKIID:Frito-Lay|WIKIID:Super_Bowl|YCT:001001126|YCT:001000002|YCT:001000001",
+ "i13n": {
+ "cpos": 19,
+ "bpos": 1,
+ "cat": "LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a",
+ "t1": "a3",
+ "t2": "strm",
+ "t3": "ct",
+ "g": "14c217dd-6b60-33df-b94d-5ffe857ccf54",
+ "ct": 1,
+ "pkgt": 4
+ },
+ "template": "default"
+ }, {
+ "type": "article",
+ "id": "48b9bac6-44bb-3433-80e3-5b1d3594e625",
+ "title": "LeBron James &amp;#39;Humbled&amp;#39; by SI Sportsperson of the Year Award",
+ "link": "https://gma.yahoo.com/lebron-james-humbled-si-sportsperson-award-172406720--abc-news-celebrities.html",
+ "publisher": "Good Morning America",
+ "images": {
+ "square": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/rXzfDI6FRQC5bHBRohF0iQ--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/2057633e69d5e076b25a8a4c5f2ce4ef",
+ "defer": 1
+ }
+ },
+ "image": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/rXzfDI6FRQC5bHBRohF0iQ--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/2057633e69d5e076b25a8a4c5f2ce4ef",
+ "defer": 1
+ },
+ "summary": "LeBron James was honored Monday night in Brooklyn, New York, at the annual Sports Illustrated sportsperson of the year event, which celebrated his commitment to his team, his sport and the city of Cleveland. Robin Roberts of &amp;quot;Good Morning America&amp;quot; caught up with James at the ceremony to discuss",
+ "interestString": "WIKIID:LeBron_James|YCT:001000001|YCT:001000012",
+ "i13n": {
+ "cpos": 20,
+ "bpos": 1,
+ "cat": "LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a",
+ "t1": "a3",
+ "t2": "strm",
+ "t3": "ct",
+ "g": "48b9bac6-44bb-3433-80e3-5b1d3594e625",
+ "ct": 1,
+ "pkgt": 4
+ },
+ "template": "default"
+ }, {
+ "type": "article",
+ "id": "0faf9f17-96c0-368f-9bbc-5baf33074cee",
+ "title": "Illinois Woman and Her Dog Rescued After Falling Into Frozen Pond",
+ "link": "https://gma.yahoo.com/illinois-woman-her-dog-rescued-falling-frozen-pond-141908648--abc-news-lifestyle.html",
+ "publisher": "Good Morning America",
+ "images": {
+ "square": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/RxhLmJql_Z5GEZvpiQ1BhA--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/19c07daff025df71f8202f8d13e0c238",
+ "defer": 1
+ }
+ },
+ "image": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/RxhLmJql_Z5GEZvpiQ1BhA--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/19c07daff025df71f8202f8d13e0c238",
+ "defer": 1
+ },
+ "summary": "An 8-year-old boy has been credited with saving his mother and his dog&amp;#39;s life after he called 911 when the two fell into an icy pond in Illinois this past weekend.Cathy Medernach, 48, told ABC News that she and her son Caden, 8, were taking their Labrador retriever, Bailey, out for a walk behind",
+ "interestString": "YCT:001000560|YCT:001000611|YCT:001000637",
+ "i13n": {
+ "cpos": 21,
+ "bpos": 1,
+ "cat": "LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a",
+ "t1": "a3",
+ "t2": "strm",
+ "t3": "ct",
+ "g": "0faf9f17-96c0-368f-9bbc-5baf33074cee",
+ "ct": 1,
+ "pkgt": 4
+ },
+ "template": "default"
+ }, {
+ "type": "article",
+ "id": "3cbee4b7-2568-3903-a977-24db6d8347bb",
+ "title": "5 Major Foreign Policy Challenges Facing President-Elect Donald Trump",
+ "link": "https://gma.yahoo.com/5-major-foreign-policy-challenges-facing-president-elect-201105415--abc-news-topstories.html",
+ "publisher": "Good Morning America",
+ "images": {
+ "square": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/FQvHaYiTkzJ6OCASS_dY7g--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/ddb938bd2b3017e5920963e2ffd2559e",
+ "defer": 1
+ }
+ },
+ "image": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/FQvHaYiTkzJ6OCASS_dY7g--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/ddb938bd2b3017e5920963e2ffd2559e",
+ "defer": 1
+ },
+ "summary": "In January, President-elect Donald Trump will have to turn his attention to governing domestically and shaping his vision for U.S. foreign policy – and he will do so with the help of his secretary of state. On Tuesday, Trump nominated ExxonMobil CEO Rex Tillerson to help him navigate America&amp;#39;s biggest",
+ "interestString": "WIKIID:Donald_Trump|WIKIID:Rex_Tillerson|WIKIID:Syria|WIKIID:Russia|WIKIID:Turkey|WIKIID:Vladimir_Putin|YCT:001000661|YCT:001000680",
+ "i13n": {
+ "cpos": 22,
+ "bpos": 1,
+ "cat": "LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a",
+ "t1": "a3",
+ "t2": "strm",
+ "t3": "ct",
+ "g": "3cbee4b7-2568-3903-a977-24db6d8347bb",
+ "ct": 1,
+ "pkgt": 4
+ },
+ "template": "default"
+ }, {
+ "type": "article",
+ "id": "bd3edcb9-cd20-3482-a5a5-308d8cc217f4",
+ "title": "Arctic Assault This Week With Possible Record-Breaking Cold, Chicago to New York",
+ "link": "https://gma.yahoo.com/arctic-assault-week-possible-record-breaking-cold-chicago-181307998--abc-news-topstories.html",
+ "publisher": "Good Morning America",
+ "images": {
+ "square": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/o9N89Reu8J3us55f_Bdq4Q--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/fe802fc2ef9b5fd433eca3131e12ae7f",
+ "defer": 1
+ }
+ },
+ "image": {
+ "height": 82,
+ "width": 82,
+ "url": "https://s.yimg.com/uu/api/res/1.2/o9N89Reu8J3us55f_Bdq4Q--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/fe802fc2ef9b5fd433eca3131e12ae7f",
+ "defer": 1
+ },
+ "summary": "This week, the displacement of a polar vortex will bring the coldest air this early in the season in more than a decade to a wide swath of the country, from Chicago to New York City. If Chicago stays in the single digits for highs on Thursday, this will be the coldest late fall weather since 1995.",
+ "interestString": "WIKIID:New_York_City|WIKIID:Polar_vortex|YCT:001000637|YCT:001000659",
+ "i13n": {
+ "cpos": 23,
+ "bpos": 1,
+ "cat": "LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a",
+ "t1": "a3",
+ "t2": "strm",
+ "t3": "ct",
+ "g": "bd3edcb9-cd20-3482-a5a5-308d8cc217f4",
+ "ct": 1,
+ "pkgt": 4
+ },
+ "template": "default"
+ }, {
+ "type": "ad",
+ "id": "32573871566",
+ "title": "How To Budget Your Money with One Simple Rule",
+ "link": "https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=Wxo.YS4GIS9wMGM7igB1Zk9dp0XWciRRPl6._XxuRj3TjSHCiQmWk5CmrKmS56ieIjZtpdxnPuxlAUpef9LIiuX3RAQCuTkRCYXDRvWgdy30taH.r58.vSJZhHowP00ey.A5qY3Jk840sfboj1NUQZ0qRrHolchs6Jwz_5tLp1uBMWTW2KjQQyL8vhtJrt04IOhlDCUik.CY9x2URV7ihb4XZ2qL_.q6G_K2ydQ72PLdDvIoi7ZV.vNsy8hIwFMPdo9n.NKL2DBVs2YsD8pWDqJgztTY90hzzVyBooUxShqNKcHHHReT82MZAQwuYr6c1E3C9NS7sPEJuxu.d5x0m7KvKzSbO6VejrFkN1J7fqHRWMNsU__2vLGzZGYyH47Jns2T3EM_z2MJSiXm7QmrELPg2P6eGWaXJQ0CgMugL46gmtXKZ1lIM9sn32YbUVHABtbn8drdMibTxQ3RqXoNQgWOJxeSdV3Kz73YORJXnE2t0tQKDfNpLQTDT1l63wg4S3Yz7e_l_QaP_eK1A9oSKE5pKLHgTIcQCJAaWCIBoVlUASpqFlzJKT.jKnywHsSE8TwZ4ekMJ97uQy.u53AkNxP7uGsGfhB4ARzE7tfKmUaACLMO_3muHQDFiIB.xGWXlIQl2R7zEpGGirnxCAxZkJAcmw--%26lp=https%3A%2F%2Fwww.learnvest.com%2Flp%2Fhow-to-budget-your-money-with-the-502030-guideline%2F%3Futm_source%3Dyahoo%26utm_medium%3Dpaidcontent%26utm_campaign%3DYahoo_Custom_Audience%3A_Personal_Finance",
+ "publisher": "LearnVest",
+ "beacon": "https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&amp;es=ysl3cA8GIS_Ce8UN3J1O5G_Dz28vS6.XFEPlNzo5g32_gQz8eRLtDD6LoB2kZpQAy5B6LXNjYjdR3G4eqs0HI2vWRWbpiIBhw6vzaO1X0U5tVsCLbOLFjH24.XY6SXy1x3XPkLHEtBU2HwJfq1UKL0JiGbeRy1sPVWTv0Xv5hpPv0o2qKU0c8QULwqEdD6xo57so2Rgpr4cly3ZJi17kPu6b46h.ULIj9qY.y.u.dkRWQm1MmOIyh46k9sljX.KMRJp0.T1H9_7Cz4yMng89MbMYsNxTtSZEzFfXtlHAZBuIMp2UUXUZ59eB6eaR8qFajDyzSZR8eW1RwomyXvmf23RvOSvlbwgAV9Cw8N4SuYemLTY9Q9VekwVhGLUCNvK1Hhpi.yYjlfn0JHHopadyiv_X&amp;ap=24",
+ "full_template": "ad",
+ "image": {
+ "url": "https://s.yimg.com/uu/api/res/1.2/9lbnTRUMz5bKMixhcKXeJw--/YXBwaWQ9eXRhY2h5b24-/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/d8727e410ab45d1349297efacfd4ad17.jpeg",
+ "height": 82,
+ "width": 82
+ },
+ "summary": "Whether you're a new parent or a new grad, our guideline can help you assess your budget so you know exactly where your money in going. Find out how.",
+ "adChoicesUrl": "https://info.yahoo.com/privacy/us/yahoo/relevantads.html",
+ "i13n": {
+ "cpos": 24,
+ "bpos": 1,
+ "cat": "LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a",
+ "t1": "a3",
+ "t2": "strm",
+ "t3": "ct",
+ "ad": 1,
+ "elmt": "ad",
+ "g": "32573871566",
+ "ct": 1,
+ "pkgt": 4
+ }
+ }],
+ "interest_data": {
+ "WIKIID:Alan_Thicke": {
+ "name": "Alan Thicke",
+ "type": "WIKIID"
+ },
+ "WIKIID:Growing_Pains": {
+ "name": "Growing Pains",
+ "type": "WIKIID"
+ },
+ "YCT:001000031": {
+ "name": "Arts &amp; Entertainment",
+ "type": "YCT"
+ },
+ "YCT:001000069": {
+ "name": "Celebrities",
+ "type": "YCT"
+ },
+ "YCT:001000075": {
+ "name": "Media",
+ "type": "YCT"
+ },
+ "YCT:001000291": {
+ "name": "Death &amp; Funeral",
+ "type": "YCT"
+ },
+ "WIKIID:Donald_Trump": {
+ "name": "Donald Trump",
+ "type": "WIKIID"
+ },
+ "WIKIID:Ryan_Zinke": {
+ "name": "Ryan Zinke",
+ "type": "WIKIID"
+ },
+ "WIKIID:Kellyanne_Conway": {
+ "name": "Kellyanne Conway",
+ "type": "WIKIID"
+ },
+ "WIKIID:United_States_Secretary_of_the_Interior": {
+ "name": "secretary of the interior",
+ "type": "WIKIID"
+ },
+ "YCT:001000661": {
+ "name": "Politics &amp; Government",
+ "type": "YCT"
+ },
+ "WIKIID:Aleppo": {
+ "name": "Aleppo",
+ "type": "WIKIID"
+ },
+ "WIKIID:Council_of_Ministers_%28Syria%29": {
+ "name": "Syrian government",
+ "type": "WIKIID"
+ },
+ "YCT:001000713": {
+ "name": "Unrest, Conflicts &amp; War",
+ "type": "YCT"
+ },
+ "WIKIID:CorePower_Yoga": {
+ "name": "CorePower Yoga",
+ "type": "WIKIID"
+ },
+ "WIKIID:San_Diego_Police_Department": {
+ "name": "San Diego Police Department",
+ "type": "WIKIID"
+ },
+ "WIKIID:San_Diego": {
+ "name": "San Diego",
+ "type": "WIKIID"
+ },
+ "YCT:001000667": {
+ "name": "Crime &amp; Justice",
+ "type": "YCT"
+ },
+ "YCT:001000780": {
+ "name": "Society &amp; Culture",
+ "type": "YCT"
+ },
+ "YCT:001000288": {
+ "name": "Family &amp; Relationships",
+ "type": "YCT"
+ },
+ "YCT:001000395": {
+ "name": "Health",
+ "type": "YCT"
+ },
+ "YCT:001000427": {
+ "name": "Disease &amp; Medical Conditions",
+ "type": "YCT"
+ },
+ "YCT:001000441": {
+ "name": "Cancer",
+ "type": "YCT"
+ },
+ "WIKIID:Peter_Travers": {
+ "name": "Peter Travers",
+ "type": "WIKIID"
+ },
+ "WIKIID:Star_Wars": {
+ "name": "Star Wars",
+ "type": "WIKIID"
+ },
+ "WIKIID:Rolling_Stone": {
+ "name": "Rolling Stone",
+ "type": "WIKIID"
+ },
+ "YCT:001000076": {
+ "name": "Movies",
+ "type": "YCT"
+ },
+ "YCT:001000079": {
+ "name": "Movie Reviews",
+ "type": "YCT"
+ },
+ "WIKIID:Boy_Scouts_of_America": {
+ "name": "Boy Scouts",
+ "type": "WIKIID"
+ },
+ "WIKIID:Rex_Tillerson": {
+ "name": "Rex Tillerson",
+ "type": "WIKIID"
+ },
+ "WIKIID:Tony_Perkins_%28politician%29": {
+ "name": "Tony Perkins",
+ "type": "WIKIID"
+ },
+ "WIKIID:Planned_Parenthood": {
+ "name": "Planned Parenthood",
+ "type": "WIKIID"
+ },
+ "WIKIID:ExxonMobil": {
+ "name": "ExxonMobil",
+ "type": "WIKIID"
+ },
+ "WIKIID:Trump_Tower_%28New_York_City%29": {
+ "name": "Trump Tower",
+ "type": "WIKIID"
+ },
+ "WIKIID:Barack_Obama": {
+ "name": "Obama",
+ "type": "WIKIID"
+ },
+ "WIKIID:Ali_Jaber": {
+ "name": "Ali Jaber",
+ "type": "WIKIID"
+ },
+ "WIKIID:Drone_strikes_in_Pakistan": {
+ "name": "drone strike",
+ "type": "WIKIID"
+ },
+ "YCT:001000720": {
+ "name": "War",
+ "type": "YCT"
+ },
+ "WIKIID:John_Peck_%28Australian_rules_footballer%29": {
+ "name": "John Peck",
+ "type": "WIKIID"
+ },
+ "YCT:001000545": {
+ "name": "Tests &amp; Procedures",
+ "type": "YCT"
+ },
+ "WIKIID:Aunt_Sally": {
+ "name": "Aunt Sally",
+ "type": "WIKIID"
+ },
+ "YCT:001000071": {
+ "name": "Books &amp; Publishing",
+ "type": "YCT"
+ },
+ "WIKIID:Christmas_club": {
+ "name": "Christmas",
+ "type": "WIKIID"
+ },
+ "WIKIID:Christmas": {
+ "name": "Christmas",
+ "type": "WIKIID"
+ },
+ "YCT:001000560": {
+ "name": "Hobbies &amp; Personal Activities",
+ "type": "YCT"
+ },
+ "YCT:001001060": {
+ "name": "Holidays &amp; Celebrations",
+ "type": "YCT"
+ },
+ "YCT:001001062": {
+ "name": "Christmas",
+ "type": "YCT"
+ },
+ "YCT:001000295": {
+ "name": "Parenting",
+ "type": "YCT"
+ },
+ "WIKIID:Delta_Air_Lines": {
+ "name": "Delta",
+ "type": "WIKIID"
+ },
+ "WIKIID:Airport_police": {
+ "name": "airport police",
+ "type": "WIKIID"
+ },
+ "YCT:001000992": {
+ "name": "Transportation",
+ "type": "YCT"
+ },
+ "WIKIID:Christmas_card": {
+ "name": "Christmas cards",
+ "type": "WIKIID"
+ },
+ "WIKIID:Facebook": {
+ "name": "Facebook",
+ "type": "WIKIID"
+ },
+ "WIKIID:United_States_Secretary_of_State": {
+ "name": "secretary of state",
+ "type": "WIKIID"
+ },
+ "WIKIID:United_States_Senate_Committee_on_Foreign_Relations": {
+ "name": "Foreign Relations Committee",
+ "type": "WIKIID"
+ },
+ "WIKIID:United_States_Senate": {
+ "name": "Senate",
+ "type": "WIKIID"
+ },
+ "WIKIID:Frito-Lay": {
+ "name": "Frito-Lay",
+ "type": "WIKIID"
+ },
+ "WIKIID:Super_Bowl": {
+ "name": "Super Bowl",
+ "type": "WIKIID"
+ },
+ "YCT:001001126": {
+ "name": "National Football League",
+ "type": "YCT"
+ },
+ "YCT:001000002": {
+ "name": "American Football",
+ "type": "YCT"
+ },
+ "YCT:001000001": {
+ "name": "Sports &amp; Recreation",
+ "type": "YCT"
+ },
+ "WIKIID:LeBron_James": {
+ "name": "LeBron James",
+ "type": "WIKIID"
+ },
+ "YCT:001000012": {
+ "name": "Basketball",
+ "type": "YCT"
+ },
+ "YCT:001000611": {
+ "name": "Pets",
+ "type": "YCT"
+ },
+ "YCT:001000637": {
+ "name": "Nature &amp; Environment",
+ "type": "YCT"
+ },
+ "WIKIID:Syria": {
+ "name": "Syria",
+ "type": "WIKIID"
+ },
+ "WIKIID:Russia": {
+ "name": "RUSSIA",
+ "type": "WIKIID"
+ },
+ "WIKIID:Turkey": {
+ "name": "Turkey",
+ "type": "WIKIID"
+ },
+ "WIKIID:Vladimir_Putin": {
+ "name": "President Vladimir Putin",
+ "type": "WIKIID"
+ },
+ "YCT:001000680": {
+ "name": "Foreign Policy",
+ "type": "YCT"
+ },
+ "WIKIID:New_York_City": {
+ "name": "New York City",
+ "type": "WIKIID"
+ },
+ "WIKIID:Polar_vortex": {
+ "name": "polar vortex",
+ "type": "WIKIID"
+ },
+ "YCT:001000659": {
+ "name": "Weather",
+ "type": "YCT"
+ }
+ }
+ }
+ },
+ "items": {
+ "yui_module": "td-applet-stream-items-model",
+ "yui_class": "TD.Applet.StreamItemsModel"
+ },
+ "applet_model": {
+ "yui_module": "td-applet-stream-appletmodel",
+ "yui_class": "TD.Applet.StreamAppletModel",
+ "config": {
+ "ads": {
+ "adblock": false,
+ "adchoices_text": true,
+ "adchoices_url": "https://info.yahoo.com/privacy/us/yahoo/relevantads.html",
+ "ad_polices": true,
+ "count": 15,
+ "contentType": "",
+ "creative": "",
+ "darla_content": "",
+ "darla_frequency": 0,
+ "darla_max": 0,
+ "darla_start": 0,
+ "enable_large_gif": false,
+ "enable_mobile_splash": false,
+ "enable_mobile_splash_banner_img": false,
+ "enable_mobile_splash_check_player_ready": true,
+ "enable_mobile_splash_countdown": true,
+ "enable_mobile_splash_docking": false,
+ "enable_mobile_splash_docking_delay": false,
+ "enable_mobile_splash_dynamic_slot": true,
+ "enable_mobile_splash_dynamic_slot_init": true,
+ "enable_mobile_splash_dynamic_slot_init_top": true,
+ "enable_mobile_splash_dynamic_slot_scroll": true,
+ "enable_mobile_splash_dynamic_slot_select_node": false,
+ "enable_mobile_splash_dynamic_slot_viewer_close": true,
+ "enable_mobile_splash_hide_search": true,
+ "enable_mobile_splash_nav_remain": true,
+ "enable_mobile_splash_nuke": true,
+ "fallback": 0,
+ "feedback": false,
+ "frequency": 6,
+ "hq_image_size": "phone:size=hq_medium",
+ "low_res_image": true,
+ "multibeacons": false,
+ "preview": {},
+ "ratings": false,
+ "spaceid": "1197056126",
+ "splash_countdown": 5,
+ "splash_start": 4,
+ "splash_anchor_node": "spl-sticky-anchor",
+ "splash_convert_video_ad_to_vast": false,
+ "splash_convert_video_ad_to_vast_only_ogg": false,
+ "splash_docking_delay": 50,
+ "splash_node": "ad_spl-wrap",
+ "splash_pos": "MSPL",
+ "splash_search_node": "uh-big-search-button",
+ "splash_track_elm": "splashtop",
+ "splash_track_elmt": "dslot",
+ "splash_uh_node": "MobileUH",
+ "sponsored_url": "http://help.yahoo.com/kb/index?page=content&amp;y=PROD_FRONT&amp;locale=en_US&amp;id=SLN14553",
+ "start_index": 2,
+ "timeout": 0,
+ "type": "STRM,STRM_CONTENT",
+ "version": 2,
+ "pu": "gma.yahoo.com",
+ "se": "5417407"
+ },
+ "category": "LISTID:8d64a97a-a34e-4ab8-bac1-f8a95616142a",
+ "signed_in": false,
+ "locdrop_crumb": "",
+ "js": {
+ "click_context": true,
+ "content_events": false,
+ "darla_beacons": false,
+ "full_content_event": false,
+ "filters": false,
+ "restore_filter": false,
+ "restore_state": true,
+ "restore_state_storage": "ls",
+ "show_read": true,
+ "sticker": false,
+ "sticker_toptarget": "",
+ "swipe_filters": false,
+ "track_impr_beacons": false,
+ "login_url": "https://login.yahoo.com/config/login?.intl=us&amp;.lang=en-US&amp;.done="
+ },
+ "pagetype": "contentb",
+ "partner": "",
+ "pagination": true,
+ "search_tags": {
+ "action": "https://uk.search.yahoo.com/search",
+ "frcode": "fp-cx-421"
+ },
+ "timeout": 500,
+ "total": 170,
+ "ui": {
+ "big_click_target": false,
+ "bleed": true,
+ "breaking_news": false,
+ "dislike": true,
+ "embeded_action_buttons": false,
+ "endcard_cta": false,
+ "enrichment": {
+ "inferred": "",
+ "types": "",
+ "unique": false
+ },
+ "entity_max": 9,
+ "exclude_types": "",
+ "exclude_bnb_enabled": 0,
+ "disable_tweet_image": false,
+ "featured_finance_width_oldIE": 228,
+ "featured_width": 300,
+ "featured_height": 169,
+ "featured_width_portrait": 200,
+ "featured_height_portrait": 200,
+ "fptoday_blend": false,
+ "fptoday_blend_start_index": 5,
+ "fptoday_blend_interval": 4,
+ "fptoday_blend_pkg_offset": 1,
+ "hq_ad_template": "",
+ "incremental_count": 0,
+ "incremental_delay": 300,
+ "incremental_history": 100,
+ "hq_cm_ad": false,
+ "host": "",
+ "inline_filters": false,
+ "inline_video": false,
+ "inline_video_ad_template": "feature",
+ "inline_video_template": "default",
+ "item_template": "items",
+ "like": true,
+ "limit_height": true,
+ "link_to_finance": false,
+ "listId_mixin_enabled": false,
+ "listId_mixin_start": 9,
+ "listId_mixin_interval": 10,
+ "listId_mixin_count": 17,
+ "listId_mixin_freshness_window": 48,
+ "listId_mixin_id": "a8b3e8e1-78a2-466e-85e8-91c61d22ca60",
+ "location": true,
+ "off_network_tab": true,
+ "open_in_tab": false,
+ "pcsExclusions": false,
+ "previewUrl_enabled": false,
+ "pubtime_format": "ONE_UNIT_ABBREVIATED",
+ "pubtime_maxage": 3600,
+ "search_tags": false,
+ "sfl": true,
+ "sfl_get_started_string": "SFL_LINK",
+ "sfl_get_started_title": "SFL_TITLE_ONE",
+ "scrollbuffer": 900,
+ "show_lastvist": true,
+ "social_sharing": {
+ "enabled": false,
+ "tumblr": false,
+ "facebook": false,
+ "twitter": false,
+ "mail": false
+ },
+ "stream_actions": true,
+ "summary": true,
+ "templates": {
+ "featured_ad": {
+ "batch_max": 20,
+ "max": 170,
+ "start": 0,
+ "batch": 0,
+ "total": 0
+ },
+ "featured_mobile_ad": {
+ "batch_max": 20,
+ "max": 170,
+ "start": 0,
+ "batch": 0,
+ "total": 0
+ },
+ "all": {
+ "batch_max": 20,
+ "gap": 1,
+ "max": 170,
+ "start": 5,
+ "batch": 0,
+ "total": 0,
+ "last": 23
+ },
+ "inline_video": {
+ "batch_max": 20,
+ "gap": 0,
+ "max": 170,
+ "start": 0,
+ "batch": 0,
+ "total": 0
+ }
+ },
+ "thumbnail": true,
+ "thumbnail_align": "left",
+ "thumbnail_hover": true,
+ "thumbnail_fix_width": false,
+ "thumbnail_size": 82,
+ "tweet_action": true,
+ "video_autoplay": false,
+ "viewer": false,
+ "viewer_include_all": false,
+ "viewer_off_network": true,
+ "viewer_prefetch_lcp": false,
+ "viewer_preview_card": true,
+ "disable_medium": false
+ },
+ "header_enabled": true,
+ "slim_heading": true,
+ "pageload_image_count": 0,
+ "allow_empty_response": 0
+ },
+ "settings": {
+ "size": 20,
+ "woeid": "2459115"
+ },
+ "models": ["stream", "items"]
+ },
+ "interest": {
+ "yui_module": "td-applet-interest-model",
+ "yui_class": "TD.Applet.InterestModel"
+ }
+ },
+ "views": {
+ "main": {
+ "yui_module": "td-applet-stream-mainview",
+ "yui_class": "TD.Applet.StreamMainView"
+ },
+ "header": {
+ "yui_module": "td-applet-stream-headerview",
+ "yui_class": "TD.Applet.StreamHeaderView"
+ },
+ "drawer": {
+ "yui_module": "stream-actiondrawer"
+ }
+ },
+ "templates": {
+ "main": {
+ "yui_module": "td-applet-stream-templates-main",
+ "template_name": "td-applet-stream-templates-main"
+ },
+ "settings": {
+ "yui_module": "td-applet-stream-templates-settings",
+ "template_name": "td-applet-stream-templates-settings"
+ },
+ "errormsg": {
+ "yui_module": "td-applet-stream-templates-errormsg",
+ "template_name": "td-applet-stream-templates-errormsg"
+ },
+ "drawer": {
+ "yui_module": "td-applet-stream-templates-drawer-desktop",
+ "template_name": "td-applet-stream-templates-drawer-desktop"
+ },
+ "removedItem": {
+ "yui_module": "td-applet-stream-templates-removeditem",
+ "template_name": "td-applet-stream-templates-removeditem"
+ },
+ "items": {
+ "yui_module": "td-applet-stream-templates-items",
+ "template_name": "td-applet-stream-templates-items"
+ },
+ "item_default": {
+ "yui_module": "td-applet-stream-templates-item-default",
+ "template_name": "td-applet-stream-templates-item-default"
+ },
+ "item_ad": {
+ "yui_module": "td-applet-stream-templates-item-ad",
+ "template_name": "td-applet-stream-templates-item-ad"
+ },
+ "item_featured_ad": {
+ "yui_module": "td-applet-stream-templates-item-featured_ad",
+ "template_name": "td-applet-stream-templates-item-featured_ad"
+ },
+ "item_featured_mobile_ad": {
+ "yui_module": "td-applet-stream-templates-item-featured_mobile_ad",
+ "template_name": "td-applet-stream-templates-item-featured_mobile_ad"
+ },
+ "item_inline_video": {
+ "yui_module": "td-applet-stream-templates-item-inline_video",
+ "template_name": "td-applet-stream-templates-item-inline_video"
+ }
+ },
+ "i18n": {
+ "ABCLOGO": "ABC",
+ "ACTION_MORE_LIKE_THIS": "Got it. We'll show you more stories like this.",
+ "ACTION_FEWER_LIKE_THIS": "Got it. We'll show you fewer stories like this.",
+ "ACTION_STORY_REMOVED": "Story removed",
+ "ACTION_SEE_LESS": "Great, you'll see less like this.",
+ "ACTION_SIGN_IN_TO_SAVE": "{linkstart}Sign-in{linkend} to save this story to read later.",
+ "ACTION_SIGN_IN_TO_LIKE": "{linkstart}Sign-in{linkend} and we'll show you more like this in the future.",
+ "ACTION_SIGN_IN_TO_DISLIKE": "{linkstart}Sign-in{linkend} and we'll show you less like this in the future.",
+ "ACTION_SIGN_IN_TO_VIEW": "{linkstart}Sign-in{linkend} to view my saves.",
+ "ACTION_TELL_LIKE": "Tell us more about what you like:",
+ "ACTION_TELL_DISLIKE": "Tell us more about what you dislike:",
+ "ADCHOICES": "AdChoices",
+ "AD_FDB1": "It is offensive to me",
+ "AD_FDB2": "I keep seeing this",
+ "AD_FDB3": "It is not relevant to me",
+ "AD_FDB4": "Something else",
+ "AD_FDB_HEADING": "Why don't you like this ad?",
+ "AD_REVIEW": "We'll review and make the changes needed.",
+ "AD_THANKYOU": "Thank you for your feedback",
+ "AD_SUBMIT": "Submit",
+ "ALL_ARTICLES": "All Articles",
+ "ALL_CELEBRITY": "All Celebrity News",
+ "ALL_FINANCE": "All Finance",
+ "ALL_MOVIES": "All Movies News",
+ "ALL_MUSIC": "All Music News",
+ "ALL_NEWS": "All News",
+ "ALL_SPORTS": "All Sports",
+ "ALL_STORIES": "All Stories",
+ "ALL_TRAVEL": "All Travel Ideas",
+ "ALL_TV": "All TV News",
+ "AUCTION": "Action",
+ "AUTHOR_AT_PUBLISHER": "{author} at {publisher}",
+ "BREAKING_NEWS": "BREAKING NEWS",
+ "CAROUSEL_TITLE": "You Might Like",
+ "CNBCLOGO": "",
+ "COMMERCE_OFF": "OFF",
+ "CONTENT_PREF": "Content preferences",
+ "DISLIKE": "Fewer like this",
+ "DONE": "Done",
+ "DONT_LIKE_AD": "I don't like this ad",
+ "DYNAMIC_FILTERS": "You Might Like",
+ "EC_ON_SALE": "On Sale",
+ "FOLLOW_GAME": "Follow Game",
+ "GAME_RECAP": "Game Recap",
+ "INSTALL_APP": "Install now",
+ "LIKE": "More like this",
+ "LIVE_GAME": "Live",
+ "LOAD_MORE": "Load more stories",
+ "MORE": "More",
+ "MYQUOTES_ADD_MORE": "Add more investments to your {0}Portfolio{1} to stay up to date whenever you visit Yahoo Finance.",
+ "MYQUOTES_LOGIN": "{0}Sign-in{1} to see the latest news from the investments in your portfolio.",
+ "MYTEAMS_ADD_TEAMS": "{0}Add your favorite teams{1} to start getting news about them today.",
+ "MYTEAMS_LOGIN": "{0}Sign-in{1} to get news for your favorite teams.",
+ "MYTEAMS_NO_CONTENT": "We can't find recent news for your teams. {0}Edit your teams{1} or visit the {2}All Sports news{3}",
+ "MYSAVES": "My Saves",
+ "NEXT": "Next",
+ "NO_STORIES_HEADER": "We couldn't find any new stories for you.",
+ "NO_STORIES_BODY": "Please check back later or {0}try again{1}",
+ "OFF": "OFF",
+ "PLAY": "Play",
+ "PLAY_VIDEO": "Play Video",
+ "PREVIEW_GAME": "Preview Game",
+ "PREVIOUS": "Previous",
+ "PREVIOUSLY_VIEWED": "From your last visit",
+ "READ_MORE": "Read More",
+ "REMOVE": "Remove",
+ "SAVE": "Save",
+ "SEE_ALL_STORIES": "See all stories »",
+ "SEE_MORE_STORIES": "See more stories »",
+ "SFL_HEADER": "Hi {0}, you have no saves. Here's how to get started:",
+ "SFL_LINK": "Get started now on the {0}Yahoo Homepage{1}.",
+ "SFL_LINK_ATT": "Get started now on the {0}att.net Homepage{1}.",
+ "SFL_LINK_FRONTIER": "Get started now on the {0}Frontier Yahoo Homepage{1}.",
+ "SFL_LINK_ROGERS": "Get started now on the {0}Rogers Yahoo Homepage{1}.",
+ "SFL_LINK_VERIZON": "Get started now on the {0}Verizon Yahoo Homepage{1}.",
+ "SFL_LINK_TATA": "Get started now on the {0}Tata Docomo - Yahoo Homepage{1}.",
+ "SFL_LINK_MTS": "Get started now on the {0}MTS - Yahoo Homepage{1}.",
+ "SFL_LINK_IDEANETSETTER": "Get started now on the {0}Idea Netsetter - Yahoo Homepage{1}.",
+ "SFL_LINK_TIKONA": "Get started now on the {0}Tikona - Yahoo Homepage{1}.",
+ "SFL_LINK_SMARTFREN": "Get started now on the {0}Smartfren - Yahoo Homepage{1}.",
+ "SFL_STEP_ONE": "Step 1",
+ "SFL_STEP_TWO": "Step 2",
+ "SFL_TITLE_ONE": "Click on {0} in the stream and on articles across Yahoo to save stories for later.",
+ "SFL_TITLE_TWO": "Access your saves from the profile menu {0} on desktop &amp; tablet or menu {1} on your smartphone.",
+ "SFL_TITLE_ONE_ATT": "Click on {0} in the stream and on articles across Yahoo to save stories for later.",
+ "SHOPPING": "Shopping",
+ "SLIDESHOW_COUNT": "({0} photos)",
+ "SPONSORED": "Sponsored",
+ "STORE": "Store",
+ "STORIES": "Stories:",
+ "STORIES_ABOUT": "Stories about:",
+ "TITLE": "Recommended for You",
+ "TITLE_LOCAL": "{city} News",
+ "UNDO": "Undo",
+ "VIEW": "View",
+ "VIEW_SLIDESHOW": "View Slideshow",
+ "YAHOO_ORIGINALS": "Yahoo Originals",
+ "YCT:001000931": "Technology",
+ "YCUSTOM:COMMERCE": "Commerce",
+ "YCUSTOM:MYQUOTES": "My Quotes",
+ "YCUSTOM:MYTEAMS": "My Teams",
+ "YCUSTOM:TOPSTORIES": "All Stories",
+ "YPROP:FINANCE": "Business",
+ "YPROP:TOPSTORIES": "All Stories",
+ "YPROP:LOCAL": "Local",
+ "YPROP:NEWS": "News",
+ "YPROP:OMG": "Entertainment",
+ "YPROP:SCIENCE": "Science",
+ "YPROP:SPORTS": "Sports",
+ "YPROV:ABCNEWS": "News",
+ "YPROV:ap.org": "AP",
+ "YPROV:CNBC": "CNBC",
+ "YPROV:NBCSPORT": "NBC Sports",
+ "YPROV:reuters.com": "Reuters",
+ "YPROV:ROLLINGSTONES": "Rolling Stone",
+ "YPROV:us.sports.yahoo.com": "Experts",
+ "YTYPE:VIDEO": "Video",
+ "YPROP:STYLE": "Style",
+ "YMAG:food": "Food",
+ "YMAG:tech": "Tech"
+ },
+ "i13n": {
+ "pv": 2
+ },
+ "transport": {
+ "xhr": "/_td_api"
+ },
+ "context": {
+ "bucket": "",
+ "crumb": "kKRPyOdAXGG",
+ "device": "desktop",
+ "lang": "en-US",
+ "region": "US",
+ "site": "gma"
+ }
+ };
+ </script>
+ <style type="text/css">
+ #Stream .crosshatch {
+ background-image: url(https://s.yimg.com/dh/ap/default/130509/tech_pattern1.png);
+ }
+
+ #Stream .js-stream-drawer,
+ #Stream .js-remove-msg {
+ background-color: #321C59;
+ color: #A298C2;
+ }
+
+ .stream-sfl-header {
+ background-image: url('https://s.yimg.com/dh/ap/default/130908/SFL_Purple_reg.png');
+ background-size: 100%;
+ height: 100px;
+ }
+
+ #Stream .DarkOverlayGradient a:hover {
+ border-bottom: solid 1px #fff;
+ border-bottom: solid 1px rgba(255, 255, 255, 0.5);
+ }
+
+ #Stream .DarkOverlayGradient .adlink:hover {
+ border-bottom: none;
+ }
+
+ #Stream .DarkOverlayGradient-start {
+ color: #fff;
+ background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3RvcC1vcGFjaXR5PSIwLjY1Ii8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMwMDAwMDAiIHN0b3Atb3BhY2l0eT0iMCIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
+ background: -moz-linear-gradient(left, rgba(0, 0, 0, 0.65) 0%, rgba(0, 0, 0, 0) 100%);
+ background: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(0, 0, 0, 0.65)), color-stop(100%, rgba(0, 0, 0, 0)));
+ background: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.65) 0%, rgba(0, 0, 0, 0) 100%);
+ background: -o-linear-gradient(left, rgba(0, 0, 0, 0.65) 0%, rgba(0, 0, 0, 0) 100%);
+ background: -ms-linear-gradient(left, rgba(0, 0, 0, 0.65) 0%, rgba(0, 0, 0, 0) 100%);
+ background: linear-gradient(to right, rgba(0, 0, 0, 0.65) 0%, rgba(0, 0, 0, 0) 100%);
+ filter: progid: DXImageTransform.Microsoft.gradient( startColorstr='#a6000000', endColorstr='#00000000', GradientType=1);
+ }
+
+ #Stream .DarkOverlayGradient-end {
+ color: #fff;
+ background: -moz-linear-gradient(left, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.65) 100%);
+ background: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(0, 0, 0, 0)), color-stop(100%, rgba(0, 0, 0, 0.65)));
+ background: -webkit-linear-gradient(left, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.65) 100%);
+ background: -o-linear-gradient(left, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.65) 100%);
+ background: -ms-linear-gradient(left, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.65) 100%);
+ background: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.65) 100%);
+ filter: progid: DXImageTransform.Microsoft.gradient( startColorstr='#00000000', endColorstr='#a6000000', GradientType=1);
+ }
+
+ #Stream .Lh-115 {
+ line-height: 1.15;
+ }
+
+ #Stream .js-stream-carousel ul {
+ word-wrap: normal \9;
+ }
+
+ #Stream .js-stream-disliked .js-stream-ad-buttons,
+ #Stream .js-stream-fdb-undo {
+ display: none;
+ }
+
+ #Stream li:hover .social-sharing-container {
+ display: inline-block;
+ }
+
+ #Stream .social-sharing-container {
+ top: 5px;
+ }
+
+ #Stream .social-sharing-container .Icon {
+ background-color: #abaeb7;
+ }
+
+ #Stream .social-sharing-container .tumblr-button:hover {
+ background-color: #3c5a77;
+ }
+
+ #Stream .social-sharing-container .facebook-button:hover {
+ background-color: #4761a6;
+ }
+
+ #Stream .social-sharing-container .twitter-button:hover {
+ background-color: #55acee;
+ }
+
+ #Stream .social-sharing-container .mail-button:hover {
+ background-color: #6d329c;
+ }
+
+ #Stream #splCloseBtn {
+ display: none;
+ position: absolute;
+ bottom: -28px;
+ right: 0px;
+ font-family: 'Helevetica Neue', Arial, sans-serif;
+ color: rgb(255, 255, 255);
+ height: 28px;
+ border: 0;
+ border-radius: 3px;
+ width: auto;
+ min-width: 70px;
+ white-space: nowrap;
+ cursor: pointer;
+ z-index: 10000;
+ -webkit-user-select: none;
+ background-color: rgb(192, 192, 192);
+ opacity: 50;
+ font-size: 14px;
+ font-weight: bold;
+ -webkit-backface-visibility: hidden;
+ }
+
+ #Stream .splash-placeholder {
+ -moz-transition: height .3s ease;
+ -webkit-transition: height .3s ease;
+ -ms-transition: height .3s ease;
+ -o-transition: height .3s ease;
+ transition: height .3s ease;
+ }
+
+ #Stream .splashtop {
+ line-height: 0;
+ }
+
+ #Stream .js-cstm-end-screen {
+ background: rgba(0, 0, 0, 0.7);
+ z-index: 30;
+ }
+
+ #Stream .js-cstm-end-screen a {
+ margin-top: 22%;
+ border: thin solid #fff;
+ border-radius: 2px;
+ }
+ /* to allow ad click through */
+
+ #Stream .js-stream-featured-ad .yvp-playing-item-title {
+ z-index: 0;
+ }
+ /* minize control bar to enlarge ad click area and adjust button pos accordingly */
+
+ #Stream .js-stream-featured-ad .yvp-bottom-bar {
+ height: 38px;
+ }
+
+ #Stream .js-stream-featured-ad .yvp-bottom-container {
+ top: 8px;
+ }
+
+ #Stream .js-stream-featured-ad .yvp-state-fullscreen .yvp-bottom-container {
+ top: 2px;
+ }
+
+ @media screen and (orientation:portrait) {
+ #Stream .splashtopsticky {
+ margin-top: 0 !important;
+ position: fixed;
+ top: 47px;
+ z-index: 10000;
+ -webkit-transform: translateZ(0);
+ -moz-transform: translateZ(0);
+ -ms-transform: translateZ(0);
+ -o-transform: translateZ(0);
+ transform: translateZ(0);
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-transition: -webkit-transform .3s ease
+ }
+ #Stream .splashtopsticky #splCloseBtn {
+ display: block;
+ }
+ .uh-scroll #Stream .splashtopsticky {
+ -webkit-transform: translateY(-42px);
+ -moz-transform: translateY(-42px);
+ -ms-transform: translateY(-42px);
+ transform: translateY(-42px);
+ }
+ #Stream .splashtopsticky #splCloseBtn.countdown {
+ display: block;
+ right: 12px;
+ border-radius: 14px;
+ width: 28px;
+ min-width: 28px;
+ }
+ .uh-scroll.uh-splash #Stream .splashtopsticky,
+ .uh-scroll.uh-splash #MobileUH {
+ -webkit-transform: translateY(-97px);
+ -moz-transform: translateY(-97px);
+ -ms-transform: translateY(-97px);
+ transform: translateY(-97px);
+ }
+ }
+
+ @media all and (orientation:landscape) {
+ #Stream #spl-sticky-anchor {
+ height: 0px !important;
+ }
+ }
+ </style>
+ <script type="text/javascript" src="https://yep.video.yahoo.com/js/3/videoplayer-min.js?lang=en-US&amp;r=nextgen-flash"></script>
+ <style type="text/css">
+ .cc-element {
+ position: absolute;
+ bottom: 16%;
+ width: 95%;
+ left: 2.5%;
+ text-align: center;
+ z-index: 6;
+ -webkit-transition-property: bottom;
+ -webkit-transition-duration: .5s;
+ -webkit-transition-delay: 0s;
+ transition-property: bottom;
+ transition-duration: .5s;
+ transition-delay: 0s;
+ }
+
+ .cc-element.bottom.float {
+ bottom: 10%
+ }
+
+ .cc-element.top.float {
+ top: 10%;
+ bottom: initial
+ }
+
+ .cc-element.top {
+ top: 5%;
+ bottom: initial
+ }
+
+ .cc-element.bottom {
+ bottom: 16%
+ }
+
+ .cc-element.yvp-show {
+ display: block
+ }
+
+ .cc-element.yvp-hide {
+ display: none
+ }
+
+ .cc-element.yvp-live-cc {
+ text-align: left;
+ width: 90%;
+ left: 5%
+ }
+
+ .yvp-cc-options-main,
+ .yvp-cc-options-more {
+ min-width: 496px;
+ max-height: 212px;
+ color: #fff;
+ }
+
+ .yvp-cc-options-main.open,
+ .yvp-cc-options-more.open {
+ display: block
+ }
+
+ .yvp-cc-options-main.close,
+ .yvp-cc-options-more.close {
+ display: none
+ }
+
+ .yvp-cc-options-main .yvp-ddm-wrapper,
+ .yvp-cc-options-more .yvp-ddm-wrapper {
+ margin-left: 0;
+ padding: 0;
+ width: 150px;
+ color: #fff;
+ display: inline-block;
+ position: relative;
+ z-index: 1;
+ vertical-align: middle
+ }
+
+ .yvp-cc-options-main .yvp-ddm-availability,
+ .yvp-cc-options-more .yvp-ddm-availability {
+ display: none;
+ background-color: #3db224;
+ width: 6px;
+ height: 6px;
+ border-radius: 8px;
+ position: relative;
+ top: -9px;
+ left: 3px;
+ }
+
+ .yvp-cc-options-main .yvp-ddm-availability.not-available,
+ .yvp-cc-options-more .yvp-ddm-availability.not-available {
+ background-color: #ccc
+ }
+
+ .yvp-cc-options-main .yvp-ddm-selected,
+ .yvp-cc-options-more .yvp-ddm-selected {
+ text-align: left;
+ padding-left: 5px;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ height: 20px;
+ line-height: 20px
+ }
+
+ .yvp-cc-options-main .yvp-ddm-selected-wrapper,
+ .yvp-cc-options-more .yvp-ddm-selected-wrapper {
+ width: 100%;
+ border: 1px solid #5f5f5f;
+ border-radius: 3px;
+ }
+
+ .yvp-cc-options-main .yvp-ddm-selected-wrapper:hover,
+ .yvp-cc-options-more .yvp-ddm-selected-wrapper:hover {
+ cursor: pointer;
+ }
+
+ .yvp-cc-options-main .yvp-ddm-selected-wrapper:hover .yvp-ddm-chevron,
+ .yvp-cc-options-more .yvp-ddm-selected-wrapper:hover .yvp-ddm-chevron {
+ opacity: .9
+ }
+
+ .yvp-cc-options-main .yvp-ddm-chevron,
+ .yvp-cc-options-more .yvp-ddm-chevron {
+ background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbG5zOnNrZXRjaD0iaHR0cDovL3d3dy5ib2hlbWlhbmNvZGluZy5jb20vc2tldGNoL25zIj4KICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHNrZXRjaDp0eXBlPSJNU1BhZ2UiPgogICAgICAgIDxnIGlkPSJjY19jYXJyb3QtIiBza2V0Y2g6dHlwZT0iTVNBcnRib2FyZEdyb3VwIiBmaWxsPSIjRkZGRkZGIj4KICAgICAgICAgICAgPHBhdGggZD0iTTEyLjcyNSw3LjQyMTgzNzc3IEw5LDExLjk5ODgzNzggTDEyLjcyNSwxNi41NzQ4Mzc4IEMxMi45NSwxNi44NTI4Mzc4IDEzLjI4NywxNi45OTc4Mzc4IDEzLjYyNiwxNi45OTc4Mzc4IEMxMy44NzMsMTYuOTk3ODM3OCAxNC4xMjIsMTYuOTIwODM3OCAxNC4zMzEsMTYuNzYxODM3OCBDMTQuODI4LDE2LjM4NjgzNzggMTQuOTE2LDE1LjY5MjgzNzggMTQuNTI1LDE1LjIxMzgzNzggTDExLjkwOSwxMS45OTg4Mzc4IEwxNC41MjUsOC43ODM4Mzc3NyBDMTQuOTE2LDguMzA0ODM3NzcgMTQuODI4LDcuNjEwODM3NzcgMTQuMzMxLDcuMjM0ODM3NzcgQzEzLjgzNSw2Ljg1ODgzNzc3IDEzLjExNSw2Ljk0MzgzNzc3IDEyLjcyNSw3LjQyMTgzNzc3IFoiIGlkPSJGaWxsLTMiIHNrZXRjaDp0eXBlPSJNU1NoYXBlR3JvdXAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyLjAwMDAwMCwgMTIuMDAwMDAwKSByb3RhdGUoLTkwLjAwMDAwMCkgdHJhbnNsYXRlKC0xMi4wMDAwMDAsIC0xMi4wMDAwMDApICI+PC9wYXRoPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+Cg==");
+ position: absolute;
+ padding-left: 11px;
+ padding-right: 7px;
+ top: 0;
+ height: 19px;
+ width: 5px;
+ right: 1.5%;
+ opacity: .7;
+ }
+
+ .yvp-cc-options-main .yvp-ddm-list,
+ .yvp-cc-options-more .yvp-ddm-list {
+ position: absolute;
+ background-color: rgba(0, 0, 0, 0.8);
+ max-height: 120px;
+ display: none;
+ padding: 0;
+ min-width: 100%;
+ overflow-x: hidden;
+ overflow-y: auto;
+ border: 1px solid rgba(255, 255, 255, 0.2);
+ border-top: none;
+ box-sizing: border-box;
+ width: 101%;
+ }
+
+ .yvp-cc-options-main .yvp-ddm-list.open,
+ .yvp-cc-options-more .yvp-ddm-list.open {
+ cursor: pointer;
+ display: block
+ }
+
+ .yvp-cc-options-main .yvp-ddm-item,
+ .yvp-cc-options-more .yvp-ddm-item {
+ text-align: left;
+ padding: 7px 5px;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
+ background: rgba(0, 0, 0, 0);
+ }
+
+ .yvp-cc-options-main .yvp-ddm-item:first-child,
+ .yvp-cc-options-more .yvp-ddm-item:first-child {
+ padding-top: 9px
+ }
+
+ .yvp-cc-options-main .yvp-ddm-item:last-child,
+ .yvp-cc-options-more .yvp-ddm-item:last-child {
+ border-bottom: none
+ }
+
+ .yvp-cc-options-main .yvp-ddm-item:hover,
+ .yvp-cc-options-more .yvp-ddm-item:hover {
+ cursor: pointer;
+ background: rgba(0, 0, 0, 0.4)
+ }
+
+ .yvp-cc-options-main .yvp-cc-header,
+ .yvp-cc-options-more .yvp-cc-header {
+ color: rgba(255, 255, 255, 0.6);
+ font-weight: normal
+ }
+
+ .yvp-cc-options-more .yvp-tab-container {
+ padding: 0;
+ width: 100%;
+ border: 0;
+ position: relative;
+ margin-top: 16px;
+ max-height: 100px;
+ }
+
+ .yvp-cc-options-more .yvp-tab-container .yvp-tabs-nav {
+ width: 100%;
+ padding-bottom: 0;
+ margin-bottom: 0;
+ height: 32px;
+ display: block;
+ background-color: transparent;
+ text-align: center;
+ overflow: hidden;
+ box-sizing: border-box;
+ }
+
+ .yvp-cc-options-more .yvp-tab-container .yvp-tabs-nav .yvp-tab {
+ display: block;
+ float: left;
+ width: 25%;
+ color: rgba(255, 255, 255, 0.6);
+ margin: 0;
+ padding: 0;
+ border-bottom: 1px solid rgba(255, 255, 255, 0.2);
+ background-color: transparent;
+ box-sizing: border-box;
+ text-transform: capitalize;
+ cursor: pointer;
+ height: 32px;
+ line-height: 24px;
+ }
+
+ .yvp-cc-options-more .yvp-tab-container .yvp-tabs-nav .yvp-tab:hover {
+ color: rgba(255, 255, 255, 0.8);
+ border-bottom: 3px solid rgba(255, 255, 255, 0.3)
+ }
+
+ .yvp-cc-options-more .yvp-tab-container .yvp-tabs-nav .yvp-tab:last-child {
+ border-right: none
+ }
+
+ .yvp-cc-options-more .yvp-tab-container .yvp-tabs-nav .yvp-tab.tab-selected {
+ border-bottom: 3px solid #0087ff;
+ color: #fff
+ }
+
+ .yvp-cc-options-more .yvp-tab-container .yvp-tabs-content .yvp-tabcontent {
+ display: none;
+ background-color: transparent;
+ padding: 16px 0;
+ height: 40px;
+ position: relative;
+ }
+
+ .yvp-cc-options-more .yvp-tab-container .yvp-tabs-content .yvp-tabcontent.tab-show {
+ display: block
+ }
+
+ .yvp-cc-options-more .yvp-tab-container .yvp-tabs-content .yvp-ddm-wrapper {
+ display: inline-block;
+ width: 150px;
+ margin: 0 0 43px 75px;
+ border-radius: 3px
+ }
+
+ .yvp-cc-options-more .yvp-tab-container .yvp-tabs-content .yvp-ddm-availability {
+ display: none
+ }
+
+ .yvp-cc-options-more .yvp-tab-container .yvp-tabs-content .yvp-ddm-list {
+ width: auto;
+ max-height: 108px
+ }
+
+ .yvp-cc-options-more .yvp-tab-container .yvp-tabs-content .yvp-ddm-selected-wrapper {
+ width: auto;
+ }
+
+ .yvp-cc-options-more .yvp-tab-container .yvp-tabs-content .yvp-ddm-selected-wrapper.hide {
+ display: none
+ }
+
+ .yvp-cc-options-more .yvp-colorpicker {
+ margin-left: auto;
+ margin-right: auto;
+ padding: 0;
+ width: 100%;
+ margin-left: -4px;
+ margin-top: 1px;
+ display: inline-block;
+ white-space: normal;
+ }
+
+ .yvp-cc-options-more .yvp-colorpicker .color-option {
+ border: 1px solid rgba(255, 255, 255, 0.2);
+ border-radius: 2px;
+ width: 16px;
+ height: 16px;
+ display: inline-block;
+ margin: 3px;
+ cursor: pointer;
+ }
+
+ .yvp-cc-options-more .yvp-colorpicker .color-option:hover {
+ border: 1px solid rgba(255, 255, 255, 0.6)
+ }
+
+ .yvp-cc-options-more .yvp-colorpicker .color-option.nocolor::before {
+ content: " ";
+ position: absolute;
+ border-bottom: 1px solid #f00;
+ width: 26px;
+ transform: rotate(135deg) translate(9px, -3px);
+ -ms-transform: rotate(135deg) translate(9px, -3px);
+ }
+
+ .yvp-cc-options-more .yvp-colorpicker .color-option.color-selected {
+ border: 1px solid #fff
+ }
+
+ .yvp-cc-options-more .fontcolorpicker {
+ display: inline-block;
+ width: 100px;
+ margin-left: 65px
+ }
+
+ .yvp-cc-options-more .bgcolorpicker {
+ display: inline-block;
+ width: 144px;
+ margin-left: 65px
+ }
+
+ .yvp-cc-options-more .effects {
+ margin-left: 75px
+ }
+
+ .yvp-cc-options-more .yvp-effect {
+ display: inline-block;
+ position: relative;
+ width: 54px;
+ height: 32px;
+ font-size: 18px;
+ line-height: 30px;
+ background-color: rgba(102, 102, 102, 0.5);
+ border: 1px solid rgba(255, 255, 255, 0.2);
+ border-radius: 4px;
+ margin-left: 2%;
+ box-sizing: border-box;
+ background-repeat: no-repeat;
+ background-position: center;
+ text-align: center;
+ cursor: pointer;
+ }
+
+ .yvp-cc-options-more .yvp-effect:hover {
+ border: 1px solid rgba(255, 255, 255, 0.6)
+ }
+
+ .yvp-cc-options-more .yvp-effect.none {
+ margin-left: 5px
+ }
+
+ .yvp-cc-options-more .yvp-effect.dropshadow {
+ text-shadow: 2px 1px 1px #000
+ }
+
+ .yvp-cc-options-more .yvp-effect.raised {
+ text-shadow: 3px 3px 4px rgba(0, 0, 0, 0.75)
+ }
+
+ .yvp-cc-options-more .yvp-effect.depressed {
+ text-shadow: 0 -4px 4px rgba(0, 0, 0, 0.54)
+ }
+
+ .yvp-cc-options-more .yvp-effect.uniform {
+ text-shadow: -2px -2px 0 #000, -2px 2px 0 #000, -2px 0 0 #000, 2px -2px 0 #000, 2px 2px 0 #000, 2px 0 0 #000, 0 -2px 0 #000, 0 2px 0 #000
+ }
+
+ .yvp-cc-options-more .yvp-effect.effect-selected {
+ border: 1px solid #fff;
+ }
+
+ .yvp-cc-options-more .yvp-effect.effect-selected .yvp-cc-effect-header {
+ color: #fff
+ }
+
+ .yvp-cc-options-more .yvp-effect .yvp-cc-effect-header {
+ font-size: 11px;
+ text-transform: capitalize;
+ color: rgba(255, 255, 255, 0.6);
+ text-shadow: none
+ }
+
+ .yvp-cc-options-more .preset-container {
+ width: 100%;
+ height: 100px;
+ position: relative;
+ max-height: 100px;
+ display: inline-block
+ }
+
+ .yvp-cc-options-more .yvp-cc-preset {
+ display: inline-block;
+ width: 53px;
+ height: 32px;
+ line-height: 30px;
+ border: 1px solid rgba(255, 255, 255, 0.2);
+ border-radius: 3px;
+ font-size: 1.3em;
+ box-sizing: border-box;
+ text-align: center;
+ margin: 3px;
+ cursor: pointer;
+ }
+
+ .yvp-cc-options-more .yvp-cc-preset:hover {
+ border: 1px solid rgba(255, 255, 255, 0.6);
+ margin: 3px
+ }
+
+ .yvp-cc-options-more .preset-separator {
+ clear: both;
+ width: 100%;
+ height: 9%
+ }
+
+ .yvp-cc-options-more .yvp-cc-back {
+ max-width: 65px;
+ background-color: transparent;
+ color: inherit;
+ font-size: 11px;
+ position: relative;
+ outline: none;
+ cursor: pointer
+ }
+
+ .yvp-cc-options-more .yvp-cc-back-header {
+ display: inline-block;
+ margin-left: 3px;
+ color: rgba(255, 255, 255, 0.6);
+ }
+
+ .yvp-cc-options-more .yvp-cc-back-header:hover {
+ color: #fff
+ }
+
+ .yvp-cc-options-more .yvp-cc-style-preview {
+ margin: 40px 0 20px 85px;
+ display: block;
+ position: relative;
+ font-size: 20px;
+ line-height: 20px;
+ max-width: 260px;
+ }
+
+ .yvp-cc-options-more .yvp-cc-style-preview .yvp-cc-options-message {
+ margin-left: 18px
+ }
+
+ .yvp-cc-options-main .yvp-cc-back-to-settings {
+ max-width: 65px
+ }
+
+ .yvp-cc-options-main .yvp-back-to-settings {
+ display: inline-block;
+ cursor: pointer;
+ margin-left: 3px;
+ color: rgba(255, 255, 255, 0.6);
+ }
+
+ .yvp-cc-options-main .yvp-back-to-settings:hover {
+ color: #fff
+ }
+
+ .yvp-cc-options-main .yvp-cc-box {
+ display: block;
+ margin-top: 16px;
+ clear: both
+ }
+
+ .yvp-cc-options-main .yvp-cc-item {
+ display: inline-block
+ }
+
+ .yvp-cc-options-main .yvp-cc-divider {
+ display: block;
+ height: 1px;
+ margin: 16px 0 16px 0;
+ background: rgba(255, 255, 255, 0.2)
+ }
+
+ .yvp-cc-options-main .yvp-cc-toggle {
+ display: inline-block;
+ margin: 0 20px
+ }
+
+ .yvp-cc-options-main .yvp-cc-language {
+ margin-left: 20px
+ }
+
+ .yvp-cc-options-main .yvp-cc-position {
+ max-width: 175px
+ }
+
+ .yvp-cc-options-main .yvp-cc-size {
+ margin-left: 20px
+ }
+
+ .yvp-cc-options-main .yvp-cc-toggle-selection,
+ .yvp-cc-options-main .yvp-cc-pos-selection,
+ .yvp-cc-options-main .yvp-cc-style-preview,
+ .yvp-cc-options-main .yvp-cc-size-selector {
+ display: inline-block;
+ margin-left: 56px;
+ padding-bottom: 18px
+ }
+
+ .yvp-cc-options-main .yvp-cc-style {
+ padding-bottom: 5px
+ }
+
+ .yvp-cc-options-main .yvp-cc-toggle-selection,
+ .yvp-cc-options-main .yvp-cc-pos-selection {
+ margin-left: 0;
+ }
+
+ .yvp-cc-options-main .yvp-cc-toggle-selection .yvp-cc-position-top,
+ .yvp-cc-options-main .yvp-cc-pos-selection .yvp-cc-position-top {
+ margin-bottom: 6px
+ }
+
+ .yvp-cc-options-main .yvp-cc-pos-selection {
+ padding-bottom: 0;
+ vertical-align: middle
+ }
+
+ .yvp-cc-options-main .yvp-cc-size-selector {
+ margin: 0;
+ padding: 0
+ }
+
+ .yvp-cc-options-main .yvp-cc-indicator {
+ display: inline-block;
+ margin-left: 19px;
+ padding: 0 4px;
+ cursor: pointer;
+ border: 1px solid transparent;
+ border-radius: 3px;
+ vertical-align: middle;
+ color: #fff;
+ }
+
+ .yvp-cc-options-main .yvp-cc-indicator:hover {
+ background-color: rgba(255, 255, 255, 0.2)
+ }
+
+ .yvp-cc-options-main .yvp-cc-indicator.size-active {
+ background-color: rgba(255, 255, 255, 0.4);
+ }
+
+ .yvp-cc-options-main .yvp-cc-indicator.size-active:hover {
+ background-color: rgba(255, 255, 255, 0.4)
+ }
+
+ .yvp-cc-options-main .yvp-cc-indicator-0 {
+ font-size: 15px
+ }
+
+ .yvp-cc-options-main .yvp-cc-indicator-25 {
+ font-size: 18px
+ }
+
+ .yvp-cc-options-main .yvp-cc-indicator-50 {
+ font-size: 24px
+ }
+
+ .yvp-cc-options-main .yvp-cc-indicator-75 {
+ font-size: 28px
+ }
+
+ .yvp-cc-options-main .yvp-cc-indicator-100 {
+ font-size: 32px
+ }
+
+ .yvp-cc-options-main .yvp-slider-wrapper {
+ margin-top: 1px;
+ width: 213px;
+ color: #ccc;
+ border-top: 1px solid #646464;
+ display: none
+ }
+
+ .yvp-cc-options-main .yvp-slider-track {
+ display: block;
+ width: 100%;
+ position: relative;
+ margin-top: -3px;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ }
+
+ .yvp-cc-options-main .yvp-slider-track:active {
+ cursor: pointer
+ }
+
+ .yvp-cc-options-main .yvp-slider-track .yvp-slider-handle {
+ position: absolute;
+ display: inline-block;
+ border-radius: 50%;
+ height: 5px;
+ width: 5px;
+ margin: 0;
+ background-color: #fff;
+ border: 1px solid #fff;
+ }
+
+ .yvp-cc-options-main .yvp-slider-track .yvp-slider-handle:hover {
+ background-color: #fff;
+ border-width: 1px solid #fff;
+ border-radius: 50%;
+ width: 10px;
+ height: 10px;
+ margin-left: -2px;
+ margin-top: -2px;
+ cursor: pointer;
+ }
+
+ .yvp-cc-options-main .yvp-slider-track .yvp-slider-anchor {
+ position: absolute;
+ margin-right: 0;
+ display: inline-block;
+ border-radius: 50%;
+ background-color: rgba(255, 255, 255, 0.6);
+ height: 5px;
+ width: 5px;
+ top: 0;
+ }
+
+ .yvp-cc-options-main .yvp-slider-track .yvp-slider-anchor:hover {
+ background-color: #fff;
+ height: 10px;
+ width: 10px;
+ margin-right: 5px;
+ top: -1px;
+ margin-left: -2px;
+ cursor: pointer
+ }
+
+ .yvp-cc-options-main .yvp-cc-feedback-link {
+ font-size: 11px;
+ float: right;
+ }
+
+ .yvp-cc-options-main .yvp-cc-feedback-link a:link {
+ color: #fff
+ }
+
+ .yvp-cc-options-main .yvp-cc-feedback-link a:visited {
+ color: #fff
+ }
+
+ .yvp-cc-options-main .yvp-cc-feedback-link a:hover {
+ color: #fff
+ }
+
+ .yvp-cc-options-main .yvp-cc-feedback-link a:active {
+ color: #fff
+ }
+
+ .yvp-cc-options-main .yvp-cc-feedback-link a {
+ text-decoration: none
+ }
+
+ .yvp-cc-options-main .yvp-cc-style-more {
+ display: inline-block;
+ font-size: 11px;
+ background-color: transparent;
+ color: inherit;
+ outline: none;
+ overflow: visible;
+ cursor: pointer
+ }
+
+ .yvp-cc-options-main .yvp-cc-style-preview {
+ display: none;
+ border: 1px solid rgba(255, 255, 255, 0.2);
+ border-radius: 3px;
+ color: #fff;
+ min-width: 54px;
+ max-width: 80px;
+ font-size: 1.5em;
+ height: 32px;
+ line-height: 32px;
+ text-align: center;
+ padding: 1px 2px;
+ margin: 0 0 0 20px;
+ }
+
+ .yvp-cc-options-main .yvp-cc-style-preview .yvp-cc-style-preview-label {
+ font-size: 11px;
+ position: absolute;
+ top: -35px;
+ left: -10px;
+ color: #ccc;
+ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4);
+ font-family: Helvetica Neue Regular, Helvetica Neue, helvetica, arial, sans-serif
+ }
+
+ .yvp-cc-options-main .yvp-cc-pos-wrapper {
+ position: relative;
+ display: inline-block;
+ vertical-align: middle;
+ margin: 5px 20px 0 20px
+ }
+
+ .yvp-cc-options-main .yvp-cc-position-top,
+ .yvp-cc-options-main .yvp-cc-position-bottom {
+ display: inline;
+ margin-right: 20px;
+ cursor: pointer;
+ color: rgba(255, 255, 255, 0.5);
+ }
+
+ .yvp-cc-options-main .yvp-cc-position-top:hover,
+ .yvp-cc-options-main .yvp-cc-position-bottom:hover {
+ color: #fff
+ }
+
+ .yvp-cc-preview {
+ position: absolute;
+ z-index: 4;
+ text-align: center;
+ left: 65px;
+ bottom: auto;
+ top: auto;
+ font-size: 20px;
+ font-weight: bold;
+ opacity: 0;
+ pointer-events: none;
+ }
+
+ .yvp-cc-preview.yvp-cc-preview-activated {
+ opacity: 1
+ }
+
+ .yvp-cc-preview.yvp-cc-preview-top {
+ top: 4px;
+ bottom: auto
+ }
+
+ .yvp-cc-preview.yvp-cc-preview-bottom {
+ bottom: 4px;
+ top: auto
+ }
+
+ .yvp-cc-preview-message {
+ display: inline-block;
+ padding: 5px 15px;
+ margin: 0 auto
+ }
+
+ .yvp-content.yvp-state-fullscreen .yvp-cc-preview-message,
+ .yvp-content.yvp-state-fullscreen .yvp-cc-options-message {
+ display: none
+ }
+ </style>
+ <style type="text/css">
+ .yvp-bottom-bar .yvp-settings-container {
+ position: absolute;
+ z-index: 4;
+ width: auto;
+ background: rgba(18, 23, 23, 0.8);
+ padding: 16px;
+ display: none;
+ bottom: 40px;
+ border-radius: 4px;
+ right: 0;
+ font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
+ font-size: 11px;
+ -webkit-font-smoothing: subpixel-antialiased;
+ color: #fff;
+ cursor: default;
+ pointer-events: auto;
+ -webkit-animation-name: fadeIn;
+ animation-name: fadeIn;
+ -webkit-animation-duration: .4s;
+ -moz-animation-duration: .4s;
+ animation-duration: .4s;
+ }
+
+ .yvp-bottom-bar .yvp-settings-container.open {
+ display: block
+ }
+
+ .yvp-bottom-bar .yvp-settings-container.hide {
+ display: none
+ }
+
+ .yvp-bottom-bar .yvp-settings-container .yvp-settings-header {
+ color: rgba(255, 255, 255, 0.6);
+ margin-bottom: 12px;
+ }
+
+ .yvp-bottom-bar .yvp-settings-container .yvp-settings-header.last-item {
+ margin-bottom: 0;
+ }
+
+ .yvp-bottom-bar .yvp-settings-container .yvp-settings-header.last-item:hover {
+ color: #fff
+ }
+
+ .yvp-bottom-bar .yvp-settings-container .yvp-settings-caret-icon {
+ position: relative;
+ display: inline-block;
+ width: 6px;
+ height: 10px;
+ margin: 0;
+ background-size: 100%;
+ background-repeat: no-repeat;
+ cursor: pointer;
+ opacity: 1;
+ }
+
+ .yvp-bottom-bar .yvp-settings-container .yvp-settings-caret-icon.right {
+ top: 2px;
+ left: 2px;
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNiIgaGVpZ2h0PSIxMCIgdmlld0JveD0iMCAwIDYgMTAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMuNzU1IDQuNjk3bC0zLjU2IDMuNTZjLS4yNi4yNi0uMjYuNjgyIDAgLjk0Mi4yNi4yNi42ODMuMjYuOTQzIDBMNS42NCA0LjY5NiAxLjEzOC4xOTVDMS4wMDguMDY1LjgzOCAwIC42NjggMCAuNDk1IDAgLjMyNS4wNjUuMTk1LjE5NWMtLjI2LjI2LS4yNi42ODMgMCAuOTQzbDMuNTYgMy41NiIgZmlsbD0iI0ZGRiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+Cg==")
+ }
+
+ .yvp-bottom-bar .yvp-settings-container .yvp-settings-caret-icon.left {
+ top: 1px;
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNiIgaGVpZ2h0PSIxMCIgdmlld0JveD0iMCAwIDYgMTAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHRpdGxlPmljb24tY2FyZXQtbGVmdC1mcG88L3RpdGxlPjxwYXRoIGQ9Ik0yLjI0NSA1LjMwM2wzLjU2LTMuNTZjLjI2LS4yNi4yNi0uNjgyIDAtLjk0Mi0uMjYtLjI2LS42ODMtLjI2LS45NDMgMEwuMzYgNS4zMDRsNC41MDIgNC41MDJjLjEzLjEzLjMuMTk1LjQ3LjE5NS4xNzIgMCAuMzQyLS4wNjUuNDcyLS4xOTUuMjYtLjI2LjI2LS42ODMgMC0uOTQzbC0zLjU2LTMuNTYiIGZpbGw9IiNGRkYiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==")
+ }
+
+ .yvp-bottom-bar .yvp-settings-container .yvp-settings-item {
+ display: inline-block;
+ margin-right: 6px;
+ cursor: pointer;
+ color: #fff;
+ padding: 4px;
+ border: 0;
+ }
+
+ .yvp-bottom-bar .yvp-settings-container .yvp-settings-item:hover {
+ background-color: rgba(255, 255, 255, 0.2);
+ border-radius: 3px
+ }
+
+ .yvp-bottom-bar .yvp-settings-container .yvp-settings-item.last-item {
+ margin-right: 0
+ }
+
+ .yvp-bottom-bar .yvp-settings-container .yvp-settings-item.yvp-disabled {
+ display: none;
+ pointer-events: none
+ }
+
+ .yvp-bottom-bar .yvp-settings-container .yvp-settings-activated {
+ color: #fff;
+ font-weight: normal;
+ border-radius: 3px;
+ background-color: rgba(255, 255, 255, 0.4);
+ }
+
+ .yvp-bottom-bar .yvp-settings-container .yvp-settings-activated:hover {
+ background-color: rgba(255, 255, 255, 0.4)
+ }
+
+ .yvp-main-settings.open {
+ display: block
+ }
+
+ .yvp-main-settings.close {
+ display: none
+ }
+
+ .yvp-main-settings .yvp-settings-divider {
+ display: block;
+ height: 1px;
+ margin: 16px 0 16px 0;
+ background: rgba(255, 255, 255, 0.2)
+ }
+
+ .yvp-main-settings .yvp-settings-embed.close {
+ display: none
+ }
+
+ .yvp-main-settings .yvp-settings-embed.open {
+ display: block
+ }
+
+ .yvp-main-settings .yvp-input-container {
+ height: 20px;
+ border: 1px solid rgba(255, 255, 255, 0.2);
+ border-radius: 4px
+ }
+
+ .yvp-main-settings .yvp-embed-input {
+ display: block;
+ min-width: 178px;
+ padding: 3px 10px;
+ font-size: 11px;
+ color: rgba(255, 255, 255, 0.6);
+ background: transparent;
+ outline: none;
+ box-shadow: none;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ }
+
+ .yvp-main-settings .yvp-embed-input:hover {
+ color: #fff;
+ cursor: pointer
+ }
+
+ .yvp-main-settings .yvp-settings-quality {
+ min-width: 200px;
+ display: none;
+ }
+
+ .yvp-main-settings .yvp-settings-quality.yvp-quality-enabled {
+ display: block
+ }
+
+ .yvp-main-settings .yvp-settings-cc {
+ min-width: 115px;
+ max-width: 145px;
+ cursor: pointer;
+ }
+
+ .yvp-main-settings .yvp-settings-cc .yvp-settings-header {
+ display: inline-block;
+ }
+
+ .yvp-main-settings .yvp-settings-cc .yvp-settings-header:hover {
+ color: rgba(255, 255, 255, 0.6);
+ opacity: 1
+ }
+ </style>
+ <style type="text/css">
+ .yvp-content.yvp-browser-desktop.yvp-docked .yvp-docked-close-button {
+ visibility: visible;
+ opacity: 1
+ }
+
+ .yvp-content.yvp-browser-desktop.yvp-docked .yvp-playing-item-title.yvp-title-standard {
+ padding: 5px 24px 5px 8px;
+ font-weight: 500;
+ font-size: 16px;
+ line-height: 20px;
+ z-index: 29;
+ }
+
+ .yvp-content.yvp-browser-desktop.yvp-docked .yvp-playing-item-title.yvp-title-standard.yvp-live {
+ padding: 35px 24px 5px 8px
+ }
+
+ .yvp-content.yvp-browser-desktop.yvp-docked .yvp-content-type {
+ left: 8px;
+ top: 8px
+ }
+
+ .yvp-content.yvp-browser-desktop.yvp-state-video.yvp-hide-controls .yvp-bottom-bar {
+ opacity: 0;
+ -webkit-transition: opacity .3s ease-in-out .1s;
+ -moz-transition: opacity .3s ease-in-out .1s;
+ -o-transition: opacity .3s ease-in-out .1s;
+ transition: opacity .3s ease-in-out .1s
+ }
+
+ .yvp-content.yvp-browser-desktop.yvp-state-video.yvp-hide-controls .yvp-bottom-bar:hover {
+ opacity: 1
+ }
+
+ .yvp-content.yvp-browser-desktop.yvp-state-video.yvp-hide-controls.yvp-muted .yvp-mute-indicator {
+ opacity: 1;
+ visibility: visible;
+ -webkit-transition: visibility .3s linear .3s, opacity .1s ease-out .5s;
+ -moz-transition: visibility .3s linear .3s, opacity .1s ease-out .5s;
+ -o-transition: visibility .3s linear .3s, opacity .1s ease-out .5s;
+ transition: visibility .3s linear .3s, opacity .1s ease-out .5s
+ }
+
+ .yvp-content.yvp-browser-desktop.yvp-state-video.yvp-hide-controls .yvp-top-bar .yvp-content-type {
+ opacity: 0;
+ -webkit-transition: opacity .3s ease-in-out .1s;
+ -moz-transition: opacity .3s ease-in-out .1s;
+ -o-transition: opacity .3s ease-in-out .1s;
+ transition: opacity .3s ease-in-out .1s
+ }
+
+ .yvp-content:hover .yvp-bottom-bar {
+ opacity: 1;
+ -webkit-transition: opacity .3s ease-in-out .1s;
+ -moz-transition: opacity .3s ease-in-out .1s;
+ -o-transition: opacity .3s ease-in-out .1s;
+ transition: opacity .3s ease-in-out .1s
+ }
+
+ .yvp-content:hover .yvp-ads-overlay {
+ -webkit-transition: height 0s;
+ -moz-transition: height 0s;
+ -o-transition: height 0s;
+ transition: height 0s
+ }
+
+ .yvp-content:hover.yvp-muted .yvp-mute-indicator {
+ opacity: 0;
+ visibility: hidden
+ }
+
+ .yvp-content.yvp-flag-paused.yvp-browser-desktop.yvp-state-video.yvp-hide-controls .yvp-bottom-bar {
+ opacity: 0;
+ -webkit-transition: opacity .3s ease-in-out .1s;
+ -moz-transition: opacity .3s ease-in-out .1s;
+ -o-transition: opacity .3s ease-in-out .1s;
+ transition: opacity .3s ease-in-out .1s
+ }
+
+ .yvp-content.yvp-flag-paused.yvp-browser-desktop.yvp-state-video.yvp-hide-controls .yvp-bottom-bar:hover {
+ opacity: 1
+ }
+
+ .yvp-content.yvp-flag-paused.yvp-browser-desktop.yvp-state-video.yvp-hide-controls .yvp-top-bar .yvp-content-type {
+ opacity: 0;
+ -webkit-transition: opacity .3s ease-in-out .1s;
+ -moz-transition: opacity .3s ease-in-out .1s;
+ -o-transition: opacity .3s ease-in-out .1s;
+ transition: opacity .3s ease-in-out .1s
+ }
+
+ .yvp-content.yvp-flag-paused.yvp-browser-desktop.yvp-state-video.yvp-hide-controls.yvp-muted .yvp-mute-indicator {
+ opacity: 0;
+ visibility: hidden
+ }
+
+ .yvp-content.yvp-flag-paused:hover .yvp-bottom-bar {
+ opacity: 1;
+ -webkit-transition: none;
+ -moz-transition: none;
+ -o-transition: none;
+ transition: none
+ }
+
+ .yvp-content.yvp-flag-paused:hover .yvp-top-bar .yvp-content-type {
+ opacity: 1;
+ -webkit-transition: none;
+ -moz-transition: none;
+ -o-transition: none;
+ transition: none
+ }
+
+ .yvp-content.yvp-user-inactive div.yvp-bottom-bar {
+ cursor: none;
+ }
+
+ .yvp-content.yvp-user-inactive div.yvp-bottom-bar .yvp-slider,
+ .yvp-content.yvp-user-inactive div.yvp-bottom-bar .yvp-buffer-bar,
+ .yvp-content.yvp-user-inactive div.yvp-bottom-bar .yvp-playback-bar {
+ height: 3px;
+ bottom: 2px;
+ direction: ltr;
+ -webkit-transition: height .5s linear 0s, bottom .5s linear 0s;
+ -moz-transition: height .5s linear 0s, bottom .5s linear 0s;
+ -o-transition: height .5s linear 0s, bottom .5s linear 0s;
+ transition: height .5s linear 0s, bottom .5s linear 0s;
+ -moz-transition: none
+ }
+
+ .yvp-content.yvp-user-inactive div.yvp-bottom-bar .yvp-handle {
+ -webkit-transform: scale(0);
+ -moz-transform: scale(0);
+ -ms-transform: scale(0);
+ -o-transform: scale(0);
+ transform: scale(0);
+ margin-top: -4px;
+ -webkit-transition: all .51s linear 0s;
+ -moz-transition: all .51s linear 0s;
+ -o-transition: all .51s linear 0s;
+ transition: all .51s linear 0s
+ }
+
+ .yvp-content.yvp-browser-desktop.yvp-state-video.yvp-disable-controls .yvp-bottom-bar {
+ opacity: 0 !important
+ }
+
+ .yvp-top-bar {
+ position: absolute;
+ z-index: 28;
+ width: 100%;
+ top: 0;
+ }
+
+ .yvp-top-bar.hide {
+ display: none
+ }
+
+ .yvp-top-bar .yvp-provider-logo {
+ position: absolute;
+ right: 0;
+ display: block;
+ height: 20px;
+ width: 55px;
+ margin-top: 20px;
+ margin-right: 10px;
+ border: 0;
+ background-repeat: no-repeat;
+ cursor: pointer;
+ }
+
+ .yvp-top-bar .yvp-provider-logo.yvp-hide {
+ display: none
+ }
+
+ .yvp-top-bar .yvp-ad-count-container {
+ display: none;
+ position: absolute;
+ left: 16px;
+ top: 12px
+ }
+
+ .yvp-top-bar .yvp-ad-count,
+ .yvp-top-bar .yvp-ad-countdowntimer {
+ display: inline-block;
+ color: #fff;
+ position: relative;
+ text-shadow: 0 1px #000;
+ font-size: 11px;
+ font-weight: normal
+ }
+
+ .yvp-top-bar .yvp-ad-countdowntimer {
+ padding-left: 5px;
+ text-align: right
+ }
+
+ .yvp-bottom-bar {
+ position: absolute;
+ background-color: transparent;
+ background-image: -webkit-linear-gradient(-180deg, rgba(255, 255, 255, 0) 0%, rgba(18, 23, 23, 0.2) 50%, rgba(18, 23, 23, 0.8) 100%);
+ background-image: -o-linear-gradient(-180deg, rgba(255, 255, 255, 0) 0%, rgba(18, 23, 23, 0.2) 50%, rgba(18, 23, 23, 0.8) 100%);
+ background-image: linear-gradient(-180deg, rgba(255, 255, 255, 0) 0%, rgba(18, 23, 23, 0.2) 50%, rgba(18, 23, 23, 0.8) 100%);
+ left: 0;
+ right: 0;
+ bottom: 0;
+ width: 100%;
+ height: 100px;
+ z-index: 30;
+ cursor: auto;
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container {
+ display: block;
+ position: relative;
+ top: 56px;
+ height: 44px;
+ margin: 0 10px 0 10px;
+ cursor: auto;
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-volume-btn {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODgiIGhlaWdodD0iODgiIHZpZXdCb3g9IjAgMCA4OCA4OCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+dm9sdW1lPC90aXRsZT48ZyBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yNS42ODIgNTUuMDE2SDE2LjUzYy0uNDk1IDAtLjk0NC0uMTk0LTEuMjczLS41MTItLjM2My0uMzM0LS41OS0uODE0LS41OS0xLjM0OHYtMTguMjRjMC0uMTcuMDIyLS4zMzIuMDY0LS40ODcuMi0uNzkzLjkyLTEuMzc4IDEuNzc1LTEuMzc4aDkuMTYyVjMzbDE0LjY2Ni0xNC42Njd2NTEuMzM0bC0xNC42NS0xNC42NXpNNTIuNDQgNzAuMjQ1Yy0xLjY0NiAwLTIuOTI2LTEuMzQyLTMuMjkzLTIuNjAzLS41NS0xLjg4LjQ4OC0zLjg4IDIuMzEzLTQuNDYgOC4wMzMtMi41NiAxMy42NDQtMTAuNDEgMTMuNjQ0LTE5LjA5IDAtOC42NjMtNS42MS0xNi41MDYtMTMuNjQ2LTE5LjA3Mi0xLjgyNC0uNTgtMi44Ni0yLjU4My0yLjMxLTQuNDY0QzQ5LjU5IDE5LjA1IDUwLjk2NyAxOCA1Mi41IDE4Yy4zNTIgMCAuNzAyLjA1NSAxLjA0LjE2NCAxMC45MjUgMy40ODggMTguNTU4IDE0LjE1IDE4LjU1OCAyNS45MjggMCAxMS4xMzYtNy4wNjcgMjEuMDYtMTguNDQ0IDI1LjktLjM5My4xNy0uOC4yNTMtMS4yMTUuMjUzem0uMDk3LTE1LjQ4NGMtMS4wMDYgMC0xLjk2OC0uNDI3LTIuNjQtMS4xNzUtMS4yOTUtMS40Ni0xLjE2OC0zLjcuMjgtNC45OTcgMS4zMzgtMS4xOTMgMi4xMDUtMi45MDIgMi4xMDUtNC42OTQgMC0xLjgxOC0uNzYyLTMuNTM2LTIuMDktNC43MTItMS40NTYtMS4yOTctMS41OS0zLjUzNS0uMy00Ljk5Mi42NzUtLjc1OCAxLjY0LTEuMTkgMi42NS0xLjE5Ljg2NCAwIDEuNjk3LjMxNiAyLjM0NS44OSAyLjg0IDIuNTIzIDQuNDY3IDYuMTcgNC40NjcgMTAuMDA0IDAgMy44MDMtMS42MjYgNy40MzctNC40NjIgOS45Ny0uNjUuNTgtMS40ODYuODk3LTIuMzU1Ljg5N3oiLz48L2c+PC9zdmc+");
+ background-size: 100%;
+ left: 0;
+ top: 0;
+ opacity: .8;
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-volume-btn:hover,
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-volume-btn:active {
+ opacity: 1
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-volume-btn.muted {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODgiIGhlaWdodD0iODgiIHZpZXdCb3g9IjAgMCA4OCA4OCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+dm9sdW1lLW11dGU8L3RpdGxlPjxnIGZpbGw9IiNGRkYiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHBhdGggZD0iTTI1LjY4MiA1NS4wMTZIMTYuNTNjLS40OTUgMC0uOTQ0LS4xOTQtMS4yNzMtLjUxMi0uMzYzLS4zMzQtLjU5LS44MTQtLjU5LTEuMzQ4di0xOC4yNGMwLS4xNy4wMjItLjMzMi4wNjQtLjQ4Ny4yLS43OTMuOTItMS4zNzggMS43NzUtMS4zNzhoOS4xNjJWMzNsMTQuNjY2LTE0LjY2N3Y1MS4zMzRsLTE0LjY1LTE0LjY1ek01OC45MDQgMzkuMDUybC00Ljk2OC00Ljk2OGMtMS40MjgtMS40MjgtMy43NTQtMS40MzItNS4xODYgMC0xLjQzIDEuNDMtMS40MzIgMy43NTMgMCA1LjE4NWw0Ljk2OCA0Ljk2Ny00Ljk2OCA0Ljk2OGMtMS40MjggMS40MjgtMS40MyAzLjc1MyAwIDUuMTg1IDEuNDMgMS40MyAzLjc1NCAxLjQzMiA1LjE4NiAwbDQuOTY4LTQuOTY4IDQuOTY4IDQuOTdjMS40MjcgMS40MjYgMy43NTMgMS40MyA1LjE4NS0uMDAyIDEuNDMtMS40MyAxLjQzMi0zLjc1MyAwLTUuMTg1bC00Ljk2OC00Ljk2OCA0Ljk2Ny00Ljk2OGMxLjQyOC0xLjQzIDEuNDMyLTMuNzU0IDAtNS4xODYtMS40My0xLjQzLTMuNzUzLTEuNDMyLTUuMTg1IDBsLTQuOTY4IDQuOTY4eiIvPjwvZz48L3N2Zz4=")
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-setting-btn {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODgiIGhlaWdodD0iODgiIHZpZXdCb3g9IjAgMCA4OCA4OCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+c2V0dGluZ3M8L3RpdGxlPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHBhdGggZD0iTTU1LjczNyA0NC4zMTRjLS4wMDQtNi4yMTUtNS4xMDQtMTEuMzM4LTExLjMyLTExLjM1Ni02LjI3LS4wMjItMTEuNDIgNS4xMDgtMTEuNDE3IDExLjM3NC4wMDQgNi4yMTUgNS4xMDQgMTEuMzM0IDExLjMxNSAxMS4zNiA2LjI3NC4wMiAxMS40MjYtNS4xMTIgMTEuNDIyLTExLjM3OHptMTAuMjc4IDQuNDAzYy0zLjE0IDEuMTg4LTQuNDc0IDQuMzgyLTMuMDg4IDcuNDMuNDQuOTY3Ljk1NCAxLjkxIDEuMzQyIDIuOTAzLjExMy4zLjAyLjg1LS4yIDEuMDg1LTEuMjU2IDEuMzQtMi41NSAyLjYzNy0zLjg5IDMuODktLjIzNC4yMi0uNzg0LjMxMi0xLjA4NC4xOTUtLjk5NC0uMzgtMS45MzYtLjg5OC0yLjkwNC0xLjMzOC0zLjAzNi0xLjM4Ni02LjI0LS4wNTItNy40MyAzLjA4Ny0uNDU3IDEuMjE2LS45IDEuNzk4LTEuMzUyIDMuMDE2aC02LjgxNmMtLjQ1LTEuMjE4LS45LTEuOC0xLjM1My0zLjAxNy0xLjE4NC0zLjE0LTQuMzg1LTQuNDc0LTcuNDI4LTMuMDg4LS45NjguNDQtMS45MS45NTMtMi45MDQgMS4zMzgtLjMuMTE3LS44NS4wMjYtMS4wODUtLjE5NC0xLjM0LTEuMjU0LTIuNi0yLjU5My0zLjkyNC0zLjg2NS0uNDMtLjQwNi0uNDA4LS43NDMtLjE2Mi0xLjIyLjQ5LS45NDYuOTUtMS45MSAxLjM4LTIuODg2IDEuMzItMi45NTUtLjAxNi02LjE0LTMuMDM3LTcuMy0xLjI0Mi0uNDc3LTIuNDk2LS45MjgtMy43NDctMS4zOXYtNi44MTZjMS4yMi0uNDUgMi40NC0uODk4IDMuNjU2LTEuMzUzIDMuMTM4LTEuMTggNC40NzItNC4zODIgMy4wODYtNy40My0uNDQtLjk2Ny0uOTUzLTEuOTEtMS4zNDItMi45MDMtLjExMy0uMy0uMDIyLS44NS4xOTgtMS4wODUgMS4yNTgtMS4zMzggMi41NTItMi42MzYgMy44OS0zLjg5LjIzNS0uMjIuNzg1LS4zMTIgMS4wODYtLjE5NS45OTQuMzgyIDEuOTM2LjkgMi45MDQgMS4zNCAzLjA0MyAxLjM4IDYuMjQ4LjA0NiA3LjQzLTMuMDkuNDUzLTEuMjE2LjktMS44NDUgMS4zNTItMy4wNmg2LjgxNmMuNDUgMS4yMTUuODk4IDEuODQ4IDEuMzUzIDMuMDYgMS4xODQgMy4xNCA0LjM4NSA0LjQ3NSA3LjQzIDMuMDkuOTY3LS40NCAxLjkxLS45NTggMi45MDMtMS4zNC4zLS4xMTcuODUtLjAyNSAxLjA4NS4xOTUgMS4zNCAxLjI1NCAyLjYgMi41OTIgMy45MjQgMy44NjQuNDMuNDA4LjQwNy43NDYuMTYyIDEuMjIyLS40OTIuOTQ2LS45NSAxLjkxLTEuMzggMi44OS0xLjMyIDIuOTUuMDE2IDYuMTQ1IDMuMDM3IDcuMjk2IDEuMjQ3LjQ3NyAyLjQ5Ny45MjggMy43NDQgMS4zOXY2LjgxNmMtMS4yMTguNDUtMi40MzUuOS0zLjY1MiAxLjM1M3oiIGZpbGw9IiNGRkYiLz48cGF0aCBkPSJNNTUuNzM3IDQ0LjI4Yy0uMDA0LTYuMjE2LTUuMTA0LTExLjMzOC0xMS4zMi0xMS4zNTYtNi4yNy0uMDIyLTExLjQyIDUuMTA3LTExLjQxNyAxMS4zNzQuMDA0IDYuMjE1IDUuMTA0IDExLjMzMyAxMS4zMTUgMTEuMzYgNi4yNzQuMDIgMTEuNDI2LTUuMTEyIDExLjQyMi0xMS4zOHptMTAuMjc4IDQuNDAzYy0zLjE0IDEuMTg4LTQuNDc0IDQuMzgyLTMuMDg4IDcuNDMuNDQuOTY3Ljk1NCAxLjkxIDEuMzQyIDIuOTAzLjExMy4zLjAyLjg1LS4yIDEuMDg1LTEuMjU2IDEuMzQtMi41NSAyLjYzNy0zLjg5IDMuODktLjIzNC4yMi0uNzg0LjMxMy0xLjA4NC4xOTYtLjk5NC0uMzgyLTEuOTM2LS45LTIuOTA0LTEuMzQtMy4wMzYtMS4zODUtNi4yNC0uMDUtNy40MyAzLjA5LS40NTcgMS4yMTYtLjkgMS44Ni0xLjM1MiAzLjA4aC02LjgxNmMtLjQ1LTEuMjItLjktMS44NjQtMS4zNTMtMy4wOC0xLjE4NC0zLjE0LTQuMzg1LTQuNDc1LTcuNDI4LTMuMDktLjk2OC40NC0xLjkxLjk1NS0yLjkwNCAxLjM0LS4zLjExNy0uODUuMDI1LTEuMDg1LS4xOTUtMS4zNC0xLjI1My0yLjYtMi41OS0zLjkyNC0zLjg2My0uNDMtLjQwNy0uNDA4LS43NDUtLjE2Mi0xLjIyLjQ5LS45NDcuOTUtMS45MTIgMS4zOC0yLjg4NyAxLjMyLTIuOTU1LS4wMTYtNi4xNDItMy4wMzctNy4zLTEuMjQyLS40NzctMi40OTYtLjkyOC0zLjc0Ny0xLjM5di02LjgxNmMxLjIyLS40NSAyLjQ0LS45IDMuNjU2LTEuMzUzIDMuMTM4LTEuMTggNC40NzItNC4zOCAzLjA4Ni03LjQyOC0uNDQtLjk2OC0uOTUzLTEuOTEtMS4zNDItMi45MDQtLjExMy0uMy0uMDIyLS44NS4xOTgtMS4wODUgMS4yNTgtMS4zNCAyLjU1Mi0yLjYzNyAzLjg5LTMuODkuMjM1LS4yMi43ODUtLjMxMiAxLjA4Ni0uMTk1Ljk5NC4zOCAxLjkzNi44OTggMi45MDQgMS4zMzggMy4wNDMgMS4zODMgNi4yNDguMDQ4IDcuNDMtMy4wODcuNDUzLTEuMjE4LjktMS44MTMgMS4zNTItMy4wMjdoNi44MTZjLjQ1IDEuMjE0Ljg5OCAxLjgxMiAxLjM1MyAzLjAyNiAxLjE4NCAzLjEzOCA0LjM4NSA0LjQ3MiA3LjQzIDMuMDg2Ljk2Ny0uNDQgMS45MS0uOTU3IDIuOTAzLTEuMzM4LjMtLjExNy44NS0uMDI2IDEuMDg1LjE5NCAxLjM0IDEuMjU0IDIuNiAyLjU5MyAzLjkyNCAzLjg2NS40My40MDcuNDA3Ljc0NC4xNjIgMS4yMi0uNDkyLjk0Ny0uOTUgMS45MS0xLjM4IDIuODktMS4zMiAyLjk1Mi4wMTYgNi4xNDYgMy4wMzcgNy4yOTcgMS4yNDcuNDc3IDIuNDk3LjkyOCAzLjc0NCAxLjM5djYuODE2Yy0xLjIxOC40NS0yLjQzNS44OTgtMy42NTIgMS4zNTN6IiBzdHJva2U9IiNGRkYiIHN0cm9rZS13aWR0aD0iLjIiLz48L2c+PC9zdmc+");
+ background-size: 100%;
+ left: 0;
+ opacity: .8;
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-setting-btn.hide {
+ display: none
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-setting-btn:hover {
+ opacity: 1
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-setting-pointer {
+ position: relative;
+ display: none;
+ width: 1px;
+ border: solid;
+ border-color: rgba(38, 40, 42, 0.95) transparent;
+ border-width: 6px 5px 0;
+ top: -6px;
+ bottom: 0;
+ left: 6px;
+ content: '';
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-setting-pointer.open {
+ display: block
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-setting-pointer.hide {
+ display: none
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-cc-btn {
+ background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCAzLjguMyAoMjk4MDIpIC0gaHR0cDovL3d3dy5ib2hlbWlhbmNvZGluZy5jb20vc2tldGNoIC0tPgogICAgPHRpdGxlPmNjLW9mZjwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxkZWZzPjwvZGVmcz4KICAgIDxnIGlkPSJkZXNrdG9wIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8ZyBpZD0iY2Mtb2ZmIiBmaWxsPSIjRkZGRkZGIj4KICAgICAgICAgICAgPHBhdGggZD0iTTExLjI0NTI5MjcsMTMuMjY3OTEyMiBDMTEuMDAwNzE0NCwxMy4wMjc0OTE3IDEwLjYxMDU2NTQsMTIuOTUzMjkzOCAxMC4zMjI4NTUsMTMuMTQxNjc5NCBDMTAuMTAyMjkzNCwxMy4yODY3MDI2IDkuODM3MTI5MzUsMTMuMzcxNTAwMiA5LjU1MTg2OTY2LDEzLjM3MTUwMDIgQzguNzgxMzc0NDMsMTMuMzcxNTAwMiA4LjE1Njk0LDEyLjc1NzE5OTMgOC4xNTY5NCwxMS45OTk4MDIzIEM4LjE1Njk0LDExLjI0MjQwNTQgOC43ODEzNzQ0MywxMC42Mjg1ODYyIDkuNTUxODY5NjYsMTAuNjI4NTg2MiBDOS43Nzk3ODMzMywxMC42Mjg1ODYyIDkuOTkzOTczMTYsMTAuNjgyNTQ4NCAxMC4xODMxNjYsMTAuNzc4NDI3NSBDMTAuNTQwOTY2LDEwLjk1OTU4NiAxMC45NzIyODY0LDEwLjkwMzIxNDkgMTEuMjU5NTA2NywxMC42MjYxNzcyIEMxMS42MTI4OTU0LDEwLjI4NDU3NzcgMTEuNTUzMDk4Nyw5LjcwMTU5NDA1IDExLjEzMjU2MTIsOS40NDM4Mjg1NSBDMTAuNTE1NDc4OCw5LjA2NjA5MzY5IDkuNzUxODQ1NTIsOC45MDEzMTY0OSA4LjkzNTI3NzQyLDkuMDYwMzEyMDMgQzcuNzQ2Njk1NCw5LjI5MTU3ODI4IDYuNzgwNjM1NTMsMTAuMjQ1NTUxNSA2LjU1NjE1MjgyLDExLjQxNTM3MzMgQzYuMTg5MDQwMjcsMTMuMzI5MTAxNCA3LjY3MTcwNDQ1LDE1IDkuNTUxODY5NjYsMTUgQzEwLjEyNTMyOTksMTUgMTAuNjU3NjE4NSwxNC44NDE5NjgxIDExLjExMjQ2NTYsMTQuNTY4Nzg0OCBDMTEuNTc0NjY0NywxNC4yOTA3ODM1IDExLjYyOTA2OTksMTMuNjQ0NjgzNSAxMS4yNDUyOTI3LDEzLjI2NzkxMjIiIGlkPSJGaWxsLTEiPjwvcGF0aD4KICAgICAgICAgICAgPHBhdGggZD0iTTE3LjI0NTQ4NCwxMy4yNjc5MTIyIEMxNy4wMDA4OTU5LDEzLjAyNzQ5MTcgMTYuNjEwNzMxMSwxMi45NTMyOTM4IDE2LjMyMzAwOTIsMTMuMTQxNjc5NCBDMTYuMTAyNDM4NywxMy4yODY3MDI2IDE1LjgzNzI2MzksMTMuMzcxNTAwMiAxNS41NTE5OTI3LDEzLjM3MTUwMDIgQzE0Ljc4MTQ2NjQsMTMuMzcxNTAwMiAxNC4xNTcwMDY4LDEyLjc1NzE5OTMgMTQuMTU3MDA2OCwxMS45OTk4MDIzIEMxNC4xNTcwMDY4LDExLjI0MjQwNTQgMTQuNzgxNDY2NCwxMC42Mjg1ODYyIDE1LjU1MTk5MjcsMTAuNjI4NTg2MiBDMTUuNzc5OTE1NiwxMC42Mjg1ODYyIDE1Ljk5NDExNCwxMC42ODI1NDg0IDE2LjE4MzMxNDUsMTAuNzc4NDI3NSBDMTYuNTQxMTI4OSwxMC45NTk1ODYgMTYuOTcyNDY2OCwxMC45MDMyMTQ5IDE3LjI1OTIwODQsMTAuNjI2MTc3MiBDMTcuNjEzMTAxNiwxMC4yODQ1Nzc3IDE3LjU1MzMwMjQsOS43MDE1OTQwNSAxNy4xMzI3NDgsOS40NDM4Mjg1NSBDMTYuNTE1NjQwNyw5LjA2NjA5MzY5IDE1Ljc1MTk3NjYsOC45MDEzMTY0OSAxNC45MzQ4ODU1LDkuMDYwMzEyMDMgQzEzLjc0Njc0NTcsOS4yOTE1NzgyOCAxMi43ODA2NDY4LDEwLjI0NTU1MTUgMTIuNTU2MTU1MSwxMS40MTUzNzMzIEMxMi4xODkwMjc3LDEzLjMyOTEwMTQgMTMuNjcxNzUxNywxNSAxNS41NTE5OTI3LDE1IEMxNi4xMjU0NzYsMTUgMTYuNjU3Nzg2MiwxNC44NDE5NjgxIDE3LjExMjY1MTYsMTQuNTY4Nzg0OCBDMTcuNTc0ODY5MywxNC4yOTA3ODM1IDE3LjYyODc4NjYsMTMuNjQ0NjgzNSAxNy4yNDU0ODQsMTMuMjY3OTEyMiIgaWQ9IkZpbGwtMyI+PC9wYXRoPgogICAgICAgICAgICA8cGF0aCBkPSJNMjEsMTcgTDMsMTcgTDMsNyBMMjEsNyBMMjEsMTcgWiBNMSwxOC4wODE0MjA5IEMxLDE4LjU4ODczODEgMS40MTk4MzQzOCwxOSAxLjkxNzMwMzQxLDE5IEwyMi4wODI2OTY2LDE5IEMyMi41ODkzMDkzLDE5IDIzLDE4LjU5NjEwNTYgMjMsMTguMDgxNDIwOSBMMjMsNS45MTg1NzkxIEMyMyw1LjQxMTI2MTg3IDIyLjU4MDE2NTYsNSAyMi4wODI2OTY2LDUgTDEuOTE3MzAzNDEsNSBDMS40MTA2OTA3Myw1IDEsNS40MDM4OTQ0MiAxLDUuOTE4NTc5MSBMMSwxOC4wODE0MjA5IFoiIGlkPSJGaWxsLTUiPjwvcGF0aD4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==");
+ background-size: 100%;
+ top: 0;
+ left: 0;
+ opacity: .8;
+ margin-right: 4px;
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-cc-btn.hide {
+ opacity: .35
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-cc-btn.hide:hover {
+ opacity: .35
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-cc-btn:hover {
+ opacity: 1
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-cc-btn.on {
+ background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCAzLjguMyAoMjk4MDIpIC0gaHR0cDovL3d3dy5ib2hlbWlhbmNvZGluZy5jb20vc2tldGNoIC0tPgogICAgPHRpdGxlPmNjLW9uPC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+PC9kZWZzPgogICAgPGcgaWQ9ImRlc2t0b3AiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJjYy1vbiIgZmlsbD0iI0ZGRkZGRiI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xLDE4LjA4MTQyMDkgQzEsMTguNTg4NzM4MSAxLjQxOTgzNDM4LDE5IDEuOTE3MzAzNDEsMTkgTDIyLjA4MjY5NjYsMTkgQzIyLjU4OTMwOTMsMTkgMjMsMTguNTk2MTA1NiAyMywxOC4wODE0MjA5IEwyMyw1LjkxODU3OTEgQzIzLDUuNDExMjYxODcgMjIuNTgwMTY1Niw1IDIyLjA4MjY5NjYsNSBMMS45MTczMDM0MSw1IEMxLjQxMDY5MDczLDUgMSw1LjQwMzg5NDQyIDEsNS45MTg1NzkxIEwxLDE4LjA4MTQyMDkgWiBNMTEuMjQ1MjkyNywxMy4yNjc5MTIyIEMxMS4wMDA3MTQ0LDEzLjAyNzQ5MTcgMTAuNjEwNTY1NCwxMi45NTMyOTM4IDEwLjMyMjg1NSwxMy4xNDE2Nzk0IEMxMC4xMDIyOTM0LDEzLjI4NjcwMjYgOS44MzcxMjkzNSwxMy4zNzE1MDAyIDkuNTUxODY5NjYsMTMuMzcxNTAwMiBDOC43ODEzNzQ0MywxMy4zNzE1MDAyIDguMTU2OTQsMTIuNzU3MTk5MyA4LjE1Njk0LDExLjk5OTgwMjMgQzguMTU2OTQsMTEuMjQyNDA1NCA4Ljc4MTM3NDQzLDEwLjYyODU4NjIgOS41NTE4Njk2NiwxMC42Mjg1ODYyIEM5Ljc3OTc4MzMzLDEwLjYyODU4NjIgOS45OTM5NzMxNiwxMC42ODI1NDg0IDEwLjE4MzE2NiwxMC43Nzg0Mjc1IEMxMC41NDA5NjYsMTAuOTU5NTg2IDEwLjk3MjI4NjQsMTAuOTAzMjE0OSAxMS4yNTk1MDY3LDEwLjYyNjE3NzIgQzExLjYxMjg5NTQsMTAuMjg0NTc3NyAxMS41NTMwOTg3LDkuNzAxNTk0MDUgMTEuMTMyNTYxMiw5LjQ0MzgyODU1IEMxMC41MTU0Nzg4LDkuMDY2MDkzNjkgOS43NTE4NDU1Miw4LjkwMTMxNjQ5IDguOTM1Mjc3NDIsOS4wNjAzMTIwMyBDNy43NDY2OTU0LDkuMjkxNTc4MjggNi43ODA2MzU1MywxMC4yNDU1NTE1IDYuNTU2MTUyODIsMTEuNDE1MzczMyBDNi4xODkwNDAyNywxMy4zMjkxMDE0IDcuNjcxNzA0NDUsMTUgOS41NTE4Njk2NiwxNSBDMTAuMTI1MzI5OSwxNSAxMC42NTc2MTg1LDE0Ljg0MTk2ODEgMTEuMTEyNDY1NiwxNC41Njg3ODQ4IEMxMS41NzQ2NjQ3LDE0LjI5MDc4MzUgMTEuNjI5MDY5OSwxMy42NDQ2ODM1IDExLjI0NTI5MjcsMTMuMjY3OTEyMiBaIE0xNy4yNDU0ODQsMTMuMjY3OTEyMiBDMTcuMDAwODk1OSwxMy4wMjc0OTE3IDE2LjYxMDczMTEsMTIuOTUzMjkzOCAxNi4zMjMwMDkyLDEzLjE0MTY3OTQgQzE2LjEwMjQzODcsMTMuMjg2NzAyNiAxNS44MzcyNjM5LDEzLjM3MTUwMDIgMTUuNTUxOTkyNywxMy4zNzE1MDAyIEMxNC43ODE0NjY0LDEzLjM3MTUwMDIgMTQuMTU3MDA2OCwxMi43NTcxOTkzIDE0LjE1NzAwNjgsMTEuOTk5ODAyMyBDMTQuMTU3MDA2OCwxMS4yNDI0MDU0IDE0Ljc4MTQ2NjQsMTAuNjI4NTg2MiAxNS41NTE5OTI3LDEwLjYyODU4NjIgQzE1Ljc3OTkxNTYsMTAuNjI4NTg2MiAxNS45OTQxMTQsMTAuNjgyNTQ4NCAxNi4xODMzMTQ1LDEwLjc3ODQyNzUgQzE2LjU0MTEyODksMTAuOTU5NTg2IDE2Ljk3MjQ2NjgsMTAuOTAzMjE0OSAxNy4yNTkyMDg0LDEwLjYyNjE3NzIgQzE3LjYxMzEwMTYsMTAuMjg0NTc3NyAxNy41NTMzMDI0LDkuNzAxNTk0MDUgMTcuMTMyNzQ4LDkuNDQzODI4NTUgQzE2LjUxNTY0MDcsOS4wNjYwOTM2OSAxNS43NTE5NzY2LDguOTAxMzE2NDkgMTQuOTM0ODg1NSw5LjA2MDMxMjAzIEMxMy43NDY3NDU3LDkuMjkxNTc4MjggMTIuNzgwNjQ2OCwxMC4yNDU1NTE1IDEyLjU1NjE1NTEsMTEuNDE1MzczMyBDMTIuMTg5MDI3NywxMy4zMjkxMDE0IDEzLjY3MTc1MTcsMTUgMTUuNTUxOTkyNywxNSBDMTYuMTI1NDc2LDE1IDE2LjY1Nzc4NjIsMTQuODQxOTY4MSAxNy4xMTI2NTE2LDE0LjU2ODc4NDggQzE3LjU3NDg2OTMsMTQuMjkwNzgzNSAxNy42Mjg3ODY2LDEzLjY0NDY4MzUgMTcuMjQ1NDg0LDEzLjI2NzkxMjIgWiIgaWQ9IkNvbWJpbmVkLVNoYXBlIj48L3BhdGg+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4=");
+ opacity: 1
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-cc-btn.on.hide {
+ opacity: .35
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-cc-btn.on.hide:hover {
+ opacity: .35
+ }
+
+ .yvp-bottom-bar .yvp-volume-bar-container {
+ display: block;
+ position: relative;
+ bottom: 95px;
+ left: -1px;
+ width: 24px;
+ height: 72px;
+ padding: 7px 0;
+ background: rgba(18, 23, 23, 0.8);
+ border-radius: 4px;
+ z-index: 1;
+ visibility: hidden;
+ -webkit-animation-name: none;
+ animation-name: none;
+ -webkit-animation-duration: 0s;
+ -moz-animation-duration: 0s;
+ animation-duration: 0s;
+ }
+
+ .yvp-bottom-bar .yvp-volume-bar-container:after {
+ display: block;
+ border: solid;
+ border-color: rgba(18, 23, 23, 0.8) transparent;
+ border-width: 6px 5px 0;
+ position: absolute;
+ top: 100%;
+ bottom: 0;
+ left: 7px;
+ content: ''
+ }
+
+ .yvp-bottom-bar .yvp-volume-bar-container.open {
+ visibility: visible
+ }
+
+ .yvp-bottom-bar .yvp-volume-bar-container .yvp-volume-level,
+ .yvp-bottom-bar .yvp-volume-bar-container .yvp-volume-bar {
+ margin-top: 0;
+ height: 100%
+ }
+
+ .yvp-bottom-bar .yvp-volume-bar-container .yvp-volume-bar {
+ background: rgba(255, 255, 255, 0.1);
+ border-radius: 2px
+ }
+
+ .yvp-bottom-bar .yvp-volume-bar-container .yvp-volume-level {
+ background: rgba(255, 255, 255, 0.4);
+ width: 4px;
+ margin-left: 10px;
+ margin-top: 0;
+ border-radius: 2px
+ }
+
+ .yvp-bottom-bar .yvp-volume-bar-container .yvp-volume-handle {
+ position: relative;
+ width: 12px;
+ height: 12px;
+ background: #fff;
+ border: 0;
+ border-radius: 50%;
+ margin-left: -4px;
+ z-index: 2;
+ opacity: 0;
+ }
+
+ .yvp-bottom-bar .yvp-volume-bar-container .yvp-volume-handle.show {
+ opacity: 1
+ }
+
+ .yvp-bottom-bar .yvp-volume-bar-container .yvp-volume-value {
+ background: rgba(255, 255, 255, 0.8);
+ border: 0;
+ border-radius: 2px
+ }
+
+ .yvp-main .yvp-tooltip {
+ display: inline-block;
+ position: absolute;
+ }
+
+ .yvp-main .yvp-tooltip:hover {
+ text-decoration: none;
+ }
+
+ .yvp-main .yvp-tooltip:hover .yvp-tooltip-wrapper .yvp-tooltip-content {
+ display: table
+ }
+
+ .yvp-main .yvp-tooltip .yvp-tooltip-wrapper {
+ bottom: 34px;
+ margin: auto;
+ position: absolute;
+ display: block;
+ z-index: 5;
+ text-align: center;
+ left: -1000px;
+ right: -1000px;
+ }
+
+ .yvp-main .yvp-tooltip .yvp-tooltip-wrapper .yvp-tooltip-content {
+ display: none;
+ background: rgba(25, 26, 27, 0.8);
+ color: #fff;
+ font-size: 11px;
+ margin: auto;
+ padding: 5px 11px;
+ white-space: nowrap;
+ text-align: center;
+ pointer-events: none;
+ border-radius: 3px;
+ }
+
+ .yvp-main .yvp-tooltip .yvp-tooltip-wrapper .yvp-tooltip-content:before {
+ border: solid;
+ border-color: rgba(38, 40, 42, 0.95) transparent;
+ border-width: 5px 3px 0;
+ bottom: -5px;
+ content: '';
+ display: block;
+ left: 50%;
+ margin-left: -3px;
+ position: absolute;
+ z-index: 5
+ }
+
+ .yvp-main .yvp-tooltip .yvp-tooltip-wrapper.yvp-tooltip-pos-bottom {
+ top: 30px;
+ bottom: 0;
+ }
+
+ .yvp-main .yvp-tooltip .yvp-tooltip-wrapper.yvp-tooltip-pos-bottom .yvp-tooltip-content:before {
+ border-width: 0 3px 5px;
+ top: -5px;
+ bottom: 0
+ }
+
+ .yvp-main .yvp-tooltip.yvp-tooltip-hidden .yvp-tooltip-wrapper {
+ display: none
+ }
+
+ .yvp-main .yvp-tooltip.yvp-fullscreen-btn .yvp-tooltip-wrapper {
+ margin-right: 60px;
+ }
+
+ .yvp-main .yvp-tooltip.yvp-fullscreen-btn .yvp-tooltip-wrapper .yvp-tooltip-content:before {
+ margin-left: 25px
+ }
+
+ .yvp-mode-ad .yvp-top-bar .yvp-ad-count-container,
+ .yvp-mode-vpaid .yvp-top-bar .yvp-ad-count-container {
+ display: block
+ }
+
+ .yvp-state-video .yvp-top-bar {
+ display: block
+ }
+
+ .yvp-state-start-screen .yvp-top-bar,
+ .yvp-state-error .yvp-top-bar,
+ .yvp-state-end-screen .yvp-top-bar,
+ .yvp-state-loading .yvp-top-bar {
+ display: none
+ }
+
+ .yvp-mode-ad .yvp-top-bar .yvp-provider-logo,
+ .yvp-mode-vpaid .yvp-top-bar .yvp-provider-logo {
+ display: none
+ }
+
+ .yvp-mode-ad .yvp-playing-item-title.yvp-title-standard,
+ .yvp-mode-vpaid .yvp-playing-item-title.yvp-title-standard {
+ opacity: 0;
+ z-index: 0
+ }
+
+ .yvp-settings-on .yvp-bottom-bar .yvp-upnext-playlist {
+ display: none
+ }
+
+ .yvp-settings-on .yvp-bottom-bar .yvp-volume-bar-container {
+ visibility: hidden
+ }
+
+ .yvp-content .yvp-main .yvp-mute-indicator {
+ position: absolute;
+ bottom: 0;
+ right: 0;
+ width: 10px;
+ height: 10px;
+ margin: 0 8px 8px 0;
+ float: right;
+ opacity: 0;
+ visibility: hidden;
+ z-index: 32;
+ background-image: url("data:image/gif;base64,R0lGODlhCgAKAIABAP///wAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBOEQ3QkM1NDcyNDQxMUU2QTVFRDg5Q0IwRUY3QjFDQyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBOEQ3QkM1NTcyNDQxMUU2QTVFRDg5Q0IwRUY3QjFDQyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkE4RDdCQzUyNzI0NDExRTZBNUVEODlDQjBFRjdCMUNDIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkE4RDdCQzUzNzI0NDExRTZBNUVEODlDQjBFRjdCMUNDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEBQMAAQAsAAAAAAoACgAAAhCMj6nLnQAYNPPUC2PAmIICACH5BAUDAAEALAAABAAKAAMAAAIHBIKpaOthCgAh+QQFAwABACwIAAUAAgABAAACAgQKACH5BAUDAAEALAAAAwAKAAIAAAIGBIKpaAkFACH5BAUDAAEALAAAAgAJAAMAAAIHBIKpYetQAAAh+QQFAwABACwEAAIABgACAAACBASCiVYAIfkEBQMAAQAsAAABAAoAAgAAAgUEgqkbVgAh+QQJAwABACwAAAAABgACAAACBASCiVYAIfkEBQMAAQAsAAAAAAoACgAAAg2MA3CobLminLTai2kBACH5BAkDAAEALAAAAAAKAAIAAAIFjG8AyFEAIfkECQMAAQAsAAAAAAoACgAAAgyMbwCouQijnLTaKwsAIfkECQMAAQAsAAAAAAoACgAAAhSMjwkGe82ag0HOS7OMUff7cRVQAAAh+QQJAwABACwAAAAACgAKAAACFIyPqQdgHVyUDc5XMbY839lt1FgAACH5BAkDAAEALAAAAAAKAAoAAAITjI+pB2CNYGiy0ufm1dj2bHlaAQAh+QQJAwABACwAAAAACgAKAAACEoyPqasA5lAMbtoKH8U7X69dBQAh+QQJAwABACwAAAAACgAKAAACEYyPqbvA4AJEU8JYL96ZbwMVACH5BAkDAAEALAAAAAAKAAoAAAIRjI+pywxgHpLh0WsjrJlrrBUAIfkECQMAAQAsAAAAAAoACgAAAhCMj6nLDOBgeIjOJy3OXPMCACH5BAkDAAEALAAAAAAKAAoAAAIRjI+py90ADEQzwIqvjFb3XQAAIfkEBQMAAQAsAAAAAAoACgAAAhGMj6nL3QAQNDPAii+NVvddAAAh+QQFAwABACwEAAQAAgABAAACAgQKACH5BAUDAAEALAEABQABAAEAAAICRAEAIfkEBQMAAQAsAAADAAoAAwAAAgeMA3DLpo0KACH5BAUDAAEALAQAAgAFAAQAAAIFBIKpi1AAIfkEBQMAAQAsAAAEAAIAAQAAAgIECgAh+QQFAwABACwEAAEAAgABAAACAgQKACH5BAUDAAEALAAAAwACAAEAAAICBAoAIfkECQMAAQAsAAAAAAoABQAAAgiMA3DL7Q9TAQAh+QQJAwABACwAAAAACgAKAAACD4wDcIvKlh50szaJs96sAAAh+QQJAwABACwAAAAACgAKAAACFIyPCJC3bZ5jQS5Lb944Xu91FVAAACH5BAkDAAEALAAAAAAKAAoAAAITjI+pB7DRkoOzRWps3bfbzG1gAQAh+QQJAwABACwAAAAACgAKAAACEoyPqQew0V5kDtY2MzZa8219BQAh+QQJAwABACwAAAAACgAKAAACEYyPqasA7FAM09VHrbl36+wVACH5BAUDAAEALAAAAAAKAAoAAAIRjI+pywzgYHjP1EmtpLvfDxQAIfkECQMAAQAsBAAEAAYAAgAAAgOMj1YAIfkECQMAAQAsAAAAAAoACgAAAgqMj6nL3QCcnLIAACH5BAkDAAEALAAAAAAKAAoAAAIQjI+py+0NgIlxykBvxdTaAgAh+QQFAwABACwAAAAACgAKAAACD4yPqcvtjwAwksoZar7WFgAh+QQFAwABACwAAAYAAgABAAACAgQKACH5BAUDAAEALAAABQAGAAIAAAIEBIKJVgAh+QQFAwABACwAAAQACgADAAACBgSCqctrBQAh+QQFAwABACwEAAUABgABAAACAwQSVgAh+QQFAwABACwAAAMACgACAAACBQSCqYtQACH5BAUDAAEALAAAAgAJAAMAAAIHBIKpu4ZQAAAh+QQFAwABACwIAAMAAgABAAACAgQKACH5BAUDAAEALAAAAQAKAAMAAAIHBIKpG6aeCgAh+QQJAwABACwAAAAAAgABAAACAgQKACH5BAUDAAEALAAAAAAKAAoAAAILjI95AMgKo5y00gIAIfkECQMAAQAsAAAAAAoAAgAAAgWMbwDIUQAh+QQJAwABACwAAAAACgAKAAACC4xvAIjKD6OctNYCACH5BAkDAAEALAAAAAAKAAoAAAIUjI95AGrMXgtwRgqlvDzjbYWdVAAAIfkECQMAAQAsAAAAAAoACgAAAhSMj3kAahxalAzOVzG2PN/ZbdRYAAAh+QQJAwABACwAAAAACgAKAAACE4yPqQuAbRoMUzp6bcxy78qBWwEAIfkECQMAAQAsAAAAAAoACgAAAhOMj6kLgG3gkY26UK+1sfbOYUABACH5BAkDAAEALAAAAAAKAAoAAAITjI+pC4Bt4JEyutDozbtr+2FAAQAh+QQJAwABACwAAAAACgAKAAACEYyPqcsGgJ6DR4ZnM55Td6oVACH5BAkDAAEALAAAAAAKAAoAAAIRjI+pywaAnoNHBjun3Y9yPhUAIfkEBQMAAQAsAAAAAAoACgAAAhGMj6nLDGAekoFGWB+menvuFQAh+QQFAwABACwAAAAAAQABAAACAkwBACH5BAUDAAEALAEAAwAFAAQAAAIGjAGmG6kFACH5BAUDAAEALAAAAwAKAAQAAAIIjG8AyM3rQgEAIfkEBQMAAQAsBAACAAIAAQAAAgIECgAh+QQFAwABACwJAAIAAQABAAACAkQBACH5BAUDAAEALAgAAgABAAEAAAICRAEAIfkEBQMAAQAsAAABAAYABQAAAgeMA3DLnVsAACH5BAUDAAEALAkAAQABAAEAAAICRAEAIfkEBQMAAQAsCAABAAEAAQAAAgJEAQAh+QQFAwABACwEAAAAAgABAAACAgQKACH5BAkDAAEALAAAAAAKAAYAAAIIjG8AyO0PYygAIfkECQMAAQAsAAAAAAoACgAAAhGMjwhgqxzckbLBGi9MvPt/FAAh+QQJAwABACwAAAAACgAKAAACFIyPeQDI9lYLEc5KL9M2+m11XFYAACH5BAkDAAEALAAAAAAKAAoAAAITjI+pC4Bt4JEyutDozbtr+2FAAQAh+QQJAwABACwAAAAACgAKAAACEoyPqasA5lAMEz7q7sy6b99ZBQAh+QQJAwABACwAAAAACgAKAAACEYyPqcsGgJ6DR4ZnM55Td6oVACH5BAkDAAEALAAAAAAKAAoAAAIRjI+py30AEDTzxQCrzvRmDxYAIfkECQMAAQAsAAAAAAoACgAAAhGMj6nL3QAMRDPAiq+MVvddAAAh+QQJAwABACwAAAAACgAKAAACEIyPqcvtDYCJccpAb8XU2gIAIfkECQMAAQAsAAAAAAoACgAAAhGMj6nL7QmAitHUQCXW2XJQAAAh+QQFAwABACwAAAAACgAKAAACEIyPqcudABg8kdYZIN7a8AIAIfkEBQMAAQAsBAAGAAYAAQAAAgNEDlAAIfkEBQMAAQAsAAAEAAYAAgAAAgQEgolWACH5BAUDAAEALAAAAwAKAAMAAAIHBIKpaOthCgAh+QQFAwABACwEAAMABgACAAACBASCiVYAIfkEBQMAAQAsAAACAAoAAgAAAgUEgqkbVgAh+QQFAwABACwAAAEABgACAAACBASCiVYAIfkEBQMAAQAsAAAAAAoAAwAAAgcEgqlo62EKACH5BAkDAAEALAAAAAAKAAIAAAIFjI95AAUAIfkECQMAAQAsAAAAAAoACgAAAg2MA3CobLminLTai2kBACH5BAkDAAEALAAAAAAKAAoAAAITjG8AqKkbWnzOyUunhRjvOnlTAQAh+QQJAwABACwAAAAACgAKAAACFIyPeQDR/hgzE9YracxQY7+BmlYAACH5BAkDAAEALAAAAAAKAAoAAAIUjI+pB2DdngtwRgqlvDzjbYWdVAAAIfkECQMAAQAsAAAAAAoACgAAAhOMj6kLgG0aDFM6em3Mcu/KgVsBACH5BAkDAAEALAAAAAAKAAoAAAISjI+pywaAnnswSEvnvDzjXXUFACH5BAkDAAEALAAAAAAKAAoAAAISjI+pyw0G4gsRSmsrnZJ7DQIFACH5BAkDAAEALAAAAAAKAAoAAAISjI+py30AEDRwBlvj1Zny6nkFACH5BAkDAAEALAAAAAAKAAoAAAIRjI+py+0HAIom0nCtxFvXDhQAIfkECQMAAQAsAAAAAAoACgAAAhCMj6nL7W+ABJGGaWXVN4MCACH5BAUDAAEALAAAAAAKAAoAAAIQjI+py+0JAIuGhmgzrvKCAgA7");
+ }
+
+ .yvp-content .yvp-main .yvp-mute-indicator:hover {
+ cursor: pointer
+ }
+
+ .yvp-content .yvp-main .yvp-docked-close-button {
+ position: absolute;
+ opacity: 0;
+ visibility: hidden;
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+YnV0dG9uLWNsb3NlPC90aXRsZT48ZGVmcz48ZmlsdGVyIHg9Ii01MCUiIHk9Ii01MCUiIHdpZHRoPSIyMDAlIiBoZWlnaHQ9IjIwMCUiIGZpbHRlclVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgaWQ9ImEiPjxmZU9mZnNldCBkeD0iMSIgZHk9IjEiIGluPSJTb3VyY2VBbHBoYSIgcmVzdWx0PSJzaGFkb3dPZmZzZXRPdXRlcjEiLz48ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIuNSIgaW49InNoYWRvd09mZnNldE91dGVyMSIgcmVzdWx0PSJzaGFkb3dCbHVyT3V0ZXIxIi8+PGZlQ29sb3JNYXRyaXggdmFsdWVzPSIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwLjM1IDAiIGluPSJzaGFkb3dCbHVyT3V0ZXIxIiByZXN1bHQ9InNoYWRvd01hdHJpeE91dGVyMSIvPjxmZU1lcmdlPjxmZU1lcmdlTm9kZSBpbj0ic2hhZG93TWF0cml4T3V0ZXIxIi8+PGZlTWVyZ2VOb2RlIGluPSJTb3VyY2VHcmFwaGljIi8+PC9mZU1lcmdlPjwvZmlsdGVyPjwvZGVmcz48cGF0aCBkPSJNMTIuMDI1IDEwLjYxTDYuNzE4IDUuMzAzYy0uMzg1LS4zODQtMS4wMi0uMzg2LTEuNDEuMDA0LS4zOTQuMzkzLS4zOTMgMS4wMjItLjAwNSAxLjQxbDUuMzA3IDUuMzA4LTUuMzA3IDUuMzA3Yy0uMzg0LjM4NC0uMzg2IDEuMDIuMDA0IDEuNDEuMzkzLjM5MyAxLjAyMi4zOTIgMS40MS4wMDRsNS4zMDgtNS4zMDcgNS4zMDcgNS4zMDZjLjM4NC4zODQgMS4wMi4zODcgMS40MS0uMDA0LjM5My0uMzkzLjM5Mi0xLjAyMi4wMDQtMS40MWwtNS4zMDctNS4zMDcgNS4zMDYtNS4zMDdjLjM4NC0uMzg1LjM4Ny0xLjAyLS4wMDQtMS40MS0uMzkzLS4zOTQtMS4wMjItLjM5My0xLjQxLS4wMDVsLTUuMzA3IDUuMzA3eiIgZmlsdGVyPSJ1cmwoI2EpIiBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=");
+ background-size: 100%;
+ background-color: transparent;
+ z-index: 32;
+ width: 24px;
+ height: 24px;
+ background-repeat: no-repeat;
+ background-position: 50% 50%;
+ border-radius: 0;
+ right: -3px;
+ cursor: pointer
+ }
+
+ .yvp-content.yvp-state-fullscreen .yvp-main .yvp-mute-indicator {
+ margin: 0 15px 15px 0
+ }
+
+ .yvp-content.yvp-state-fullscreen .yvp-main .yvp-docked-close-button {
+ visibility: hidden
+ }
+
+ .yvp-overlay-hide-cursor {
+ position: absolute;
+ display: block;
+ z-index: 30;
+ cursor: none;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0
+ }
+
+ .yvp-custom-controls {
+ position: absolute;
+ z-index: 29;
+ display: none;
+ height: 100%;
+ width: 100%
+ }
+
+ #Stencil .channel-applet-wrap.mode-embedtron .yvp-content {
+ z-index: 5
+ }
+
+ html[dir='rtl'] .yvp-settings-caret-icon.right {
+ -webkit-transform: rotate(180deg);
+ -moz-transform: rotate(180deg);
+ -ms-transform: rotate(180deg);
+ -o-transform: rotate(180deg);
+ transform: rotate(180deg);
+ left: 0;
+ right: 2px
+ }
+
+ html[dir='rtl'] .yvp-settings-caret-icon.left {
+ -webkit-transform: rotate(180deg);
+ -moz-transform: rotate(180deg);
+ -ms-transform: rotate(180deg);
+ -o-transform: rotate(180deg);
+ transform: rotate(180deg)
+ }
+
+ html[dir='rtl'] .yvp-cc-feedback-link {
+ float: left
+ }
+
+ html[dir='rtl'] .yvp-cc-options-more .effects {
+ margin-left: 0;
+ margin-right: 90px
+ }
+
+ html[dir='rtl'] .yvp-cc-options-more .bgcolorpicker {
+ margin-left: 0;
+ margin-right: 65px
+ }
+
+ html[dir='rtl'] .yvp-cc-options-more .fontcolorpicker {
+ margin-left: 0;
+ margin-right: 65px
+ }
+
+ html[dir='rtl'] .yvp-cc-options-more .yvp-cc-style-preview {
+ margin: 40px 85px 20px 0
+ }
+
+ @-moz-keyframes flash-button {
+ 0%,
+ 100% {
+ background-color: transparent
+ }
+ 50% {
+ background-color: #5f32fb
+ }
+ }
+
+ @-webkit-keyframes flash-button {
+ 0%,
+ 100% {
+ background-color: transparent
+ }
+ 50% {
+ background-color: #5f32fb
+ }
+ }
+
+ @-o-keyframes flash-button {
+ 0%,
+ 100% {
+ background-color: transparent
+ }
+ 50% {
+ background-color: #5f32fb
+ }
+ }
+
+ @-ms-keyframes flash-button {
+ 0%,
+ 100% {
+ background-color: transparent
+ }
+ 50% {
+ background-color: #5f32fb
+ }
+ }
+
+ @keyframes flash-button {
+ 0%,
+ 100% {
+ background-color: transparent
+ }
+ 50% {
+ background-color: #5f32fb
+ }
+ }
+
+ @-moz-keyframes fadeIn {
+ 0% {
+ opacity: 0
+ }
+ 100% {
+ opacity: 1
+ }
+ }
+
+ @-webkit-keyframes fadeIn {
+ 0% {
+ opacity: 0
+ }
+ 100% {
+ opacity: 1
+ }
+ }
+
+ @-o-keyframes fadeIn {
+ 0% {
+ opacity: 0
+ }
+ 100% {
+ opacity: 1
+ }
+ }
+
+ @-ms-keyframes fadeIn {
+ 0% {
+ opacity: 0
+ }
+ 100% {
+ opacity: 1
+ }
+ }
+
+ @keyframes fadeIn {
+ 0% {
+ opacity: 0
+ }
+ 100% {
+ opacity: 1
+ }
+ }
+ </style>
+ <style type="text/css">
+ .yvp-flag-casting .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-chromecast-btn {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+aWNvbi1jaHJvbWVjYXN0LW9uPC90aXRsZT48ZyBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yMC4wMDMgMGgtMTZjLTEuMTA1IDAtMiAuODk1LTIgMnYxLjMwM2MuNjg3LjE0IDEuMzUuMzQyIDIgLjU3MlYyaDE2djEwaC03LjI2Yy4yOC42NDQuNTEgMS4zMTQuNzAyIDJoNi41NThjMS4xMDQgMCAyLS44OTUgMi0yVjJjMC0xLjEwNS0uODk2LTItMi0yIi8+PHBhdGggZD0iTTExLjY5IDEwSDE4VjRINnYuNzNjMi4zMjcgMS4yMyA0LjI5IDMuMDU0IDUuNjkgNS4yN3pNNi40MSAxNmMtLjM5NSAwLS43NjgtLjIzMy0uOTI3LS42Mi0uODUtMi4wNzMtMi42MTYtMy42My00LjcyNi00LjE2Ni0uNTM1LS4xMzctLjg2LS42OC0uNzIzLTEuMjE2LjEzNS0uNTM1LjY4LS44NTUgMS4yMTUtLjcyNCAyLjcyLjY5MiA0Ljk5NSAyLjY5IDYuMDg0IDUuMzQ3LjIxLjUxMi0uMDM2IDEuMDk2LS41NDYgMS4zMDYtLjEyNS4wNS0uMjUzLjA3NC0uMzguMDc0Ii8+PHBhdGggZD0iTTEwLjYxNyAxNmMtLjQ0NSAwLS44NS0uMjk4LS45NjctLjc0OC0xLjEtNC4yMi00LjU1Ny03LjQwMi04LjgxLTguMTA1LS41NDUtLjA5LS45MTQtLjYwNS0uODI0LTEuMTUuMDktLjU0NS42MDQtLjkyNCAxLjE1LS44MjMgNS4wMzIuODMgOS4xMiA0LjU5IDEwLjQyIDkuNTc0LjEzOC41MzQtLjE4MiAxLjA4LS43MTcgMS4yMi0uMDg1LjAyLS4xNy4wMzItLjI1My4wMzJNMi40NDYgMTQuNDljLjAwNC4wMDQuMDA3LjAxLjAxLjAxNS4wOTcuMTcyLjE0LjM2LjEzLjU0NC0uMDEuMTgtLjA2Ny4zNi0uMTc1LjUxNy0uMDgyLjEyLS4xOTIuMjI1LS4zMjguMzAyLS4xNTguMDktLjMyNy4xMTQtLjQ5Ni4xMTRILjAydi0xLjQ2NmMtLjAwMi0uMTcuMDI1LS4zMzguMTE0LS40OTYuMjc0LS40OC44ODQtLjY0NiAxLjM2NC0uMzc0LjI1LjE0My40NC4zMi41OTMuNDZsLjE0LjEyN2MuMDg4LjA3NC4xNi4xNi4yMTYuMjU0eiIvPjwvZz48L3N2Zz4=")
+ }
+
+ .yvp-drag .yvp-handle,
+ .yvp-drag .yvp-playback-bar {
+ -webkit-transition: none !important;
+ -moz-transition: none !important;
+ -o-transition: none !important;
+ transition: none !important
+ }
+
+ .yvp-mode-ad .yvp-top-bar .yvp-ad,
+ .yvp-mode-vpaid .yvp-top-bar .yvp-ad {
+ display: block
+ }
+
+ .yvp-mode-ad .yvp-bottom-bar,
+ .yvp-mode-vpaid .yvp-bottom-bar {
+ height: 44px;
+ background-image: -webkit-linear-gradient(-180deg, rgba(255, 255, 255, 0) 0%, rgba(18, 23, 23, 0.1) 25%, rgba(18, 23, 23, 0.5) 100%);
+ background-image: -o-linear-gradient(-180deg, rgba(255, 255, 255, 0) 0%, rgba(18, 23, 23, 0.1) 25%, rgba(18, 23, 23, 0.5) 100%);
+ background-image: linear-gradient(-180deg, rgba(255, 255, 255, 0) 0%, rgba(18, 23, 23, 0.1) 25%, rgba(18, 23, 23, 0.5) 100%);
+ }
+
+ .yvp-mode-ad .yvp-bottom-bar .yvp-bottom-container,
+ .yvp-mode-vpaid .yvp-bottom-bar .yvp-bottom-container {
+ top: 0
+ }
+
+ .yvp-mode-ad .yvp-playing-item-title.yvp-title-standard,
+ .yvp-mode-vpaid .yvp-playing-item-title.yvp-title-standard {
+ opacity: 0;
+ z-index: 0
+ }
+
+ .yvp-playing-item-title {
+ display: block;
+ position: absolute;
+ opacity: 0;
+ }
+
+ .yvp-playing-item-title.yvp-title-standard {
+ left: 0;
+ top: 0;
+ box-sizing: border-box;
+ width: 100%;
+ padding: 10px 0 0 16px;
+ color: #fff;
+ background-image: -webkit-linear-gradient(-180deg, rgba(18, 23, 23, 0.8) 0%, rgba(18, 23, 23, 0.2) 50%, rgba(255, 255, 255, 0) 100%);
+ background-image: -o-linear-gradient(-180deg, rgba(18, 23, 23, 0.8) 0%, rgba(18, 23, 23, 0.2) 50%, rgba(255, 255, 255, 0) 100%);
+ background-image: linear-gradient(-180deg, rgba(18, 23, 23, 0.8) 0%, rgba(18, 23, 23, 0.2) 50%, rgba(255, 255, 255, 0) 100%);
+ font-weight: 500;
+ font-size: 22px;
+ text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5);
+ line-height: 24px;
+ z-index: 30;
+ opacity: 1;
+ -webkit-transition: opacity .6s ease-out .1s;
+ -moz-transition: opacity .6s ease-out .1s;
+ -o-transition: opacity .6s ease-out .1s;
+ transition: opacity .6s ease-out .1s;
+ }
+
+ .yvp-playing-item-title.yvp-title-standard.yvp-live {
+ padding: 48px 0 0 16px
+ }
+
+ .yvp-playing-item-title.yvp-title-standard.yvp-hide {
+ opacity: 0;
+ z-index: 0;
+ -webkit-transition: all .3s ease-out .1s;
+ -moz-transition: all .3s ease-out .1s;
+ -o-transition: all .3s ease-out .1s;
+ transition: all .3s ease-out .1s
+ }
+
+ .yvp-top-bar {
+ position: absolute;
+ z-index: 31;
+ width: 100%;
+ top: 0;
+ height: 0;
+ }
+
+ .yvp-top-bar .yvp-ad {
+ display: none;
+ position: absolute;
+ top: 14px;
+ left: 24px;
+ color: #fff;
+ font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
+ font-size: 14px
+ }
+
+ .yvp-top-bar .yvp-content-type {
+ display: block;
+ opacity: 1;
+ height: auto;
+ left: 16px;
+ top: 16px;
+ position: absolute;
+ padding: 5px 10px 5px 10px;
+ border-radius: 2px;
+ background-color: #7300ff;
+ background-image: -webkit-linear-gradient(45deg, #ff3541 0%, #ff6230 100%);
+ background-image: -o-linear-gradient(45deg, #ff3541 0%, #ff6230 100%);
+ background-image: linear-gradient(45deg, #ff3541 0%, #ff6230 100%);
+ font-family: 'HelveticaNeue-Bold', Helvetica, Arial, sans-serif;
+ color: #fff;
+ text-shadow: none;
+ text-transform: uppercase;
+ letter-spacing: .6px;
+ font-weight: normal;
+ font-size: 10px;
+ }
+
+ .yvp-top-bar .yvp-content-type.hide {
+ display: none
+ }
+
+ .yvp-bottom-bar {
+ position: absolute;
+ background-color: transparent;
+ background-image: -webkit-linear-gradient(-180deg, rgba(255, 255, 255, 0) 0%, rgba(18, 23, 23, 0.2) 50%, rgba(18, 23, 23, 0.8) 100%);
+ background-image: -o-linear-gradient(-180deg, rgba(255, 255, 255, 0) 0%, rgba(18, 23, 23, 0.2) 50%, rgba(18, 23, 23, 0.8) 100%);
+ background-image: linear-gradient(-180deg, rgba(255, 255, 255, 0) 0%, rgba(18, 23, 23, 0.2) 50%, rgba(18, 23, 23, 0.8) 100%);
+ left: 0;
+ right: 0;
+ bottom: 0;
+ width: 100%;
+ height: 100px;
+ z-index: 30;
+ cursor: auto;
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container {
+ display: block;
+ position: relative;
+ top: 56px;
+ height: 44px;
+ margin: 0 10px 0 10px;
+ cursor: auto;
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls {
+ display: inline-block;
+ margin-top: 10px;
+ position: absolute;
+ right: 0;
+ top: 0;
+ float: right;
+ opacity: 1;
+ -webkit-transition: opacity .4s linear;
+ -moz-transition: opacity .4s linear;
+ -o-transition: opacity .4s linear;
+ transition: opacity .4s linear;
+ direction: ltr;
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .button {
+ height: 24px;
+ width: 24px;
+ bottom: 0;
+ background-position: center;
+ background-repeat: no-repeat;
+ float: none;
+ display: inline-block;
+ position: relative;
+ margin-left: 4px;
+ cursor: pointer
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-fullscreen-btn {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODgiIGhlaWdodD0iODgiIHZpZXdCb3g9IjAgMCA4OCA4OCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+ZnVsbHNjcmVlbjwvdGl0bGU+PGcgZmlsbD0iI0ZGRiIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNNzAuNzg1IDUwLjYyMmMtLjExLTEuOTYtMS43MzYtMy40NjYtMy44NC0zLjQzaC0uMDAzYy0yIC4xMTQtMy41NDIgMS44NC0zLjQzMyAzLjgxNGwuMjEyIDYuNDEtMTEuMTA3LTEwLjcyNy01LjA2IDUuMjQ0IDExLjEwMyAxMC43MjItNi41My4wMTNjLTEuOTU3LjAzMy0zLjUzIDEuNTk4LTMuNTc4IDMuNTcyLS4wMiAxLjAwNC4zOSAxLjk5IDEuMTIyIDIuNjk2LjY2LjYzIDEuNTI0Ljk5NiAyLjQ2IDEuMDE3bDE5LjUxMi4xNzQtLjg2LTE5LjUwOE00Mi4yMjQgMzYuNzQ1bC0xMS4xMS0xMC43MyA2LjUzMi0uMDFjMS45NTgtLjAzMyAzLjUyNy0xLjU5NyAzLjU4LTMuNTY4LjAxOC0xLjAxLS4zOS0xLjk5My0xLjExNS0yLjY5Ni0uNjYzLS42MzctMS41My0xLTIuNDY4LTEuMDJsLTE5LjUxLS4xNzQuODU4IDE5LjUxYy4xMSAxLjk1OCAxLjczNiAzLjQ2MyAzLjgzNiAzLjQyNmguMDAzYy45NzItLjA1NCAxLjg2Ny0uNDg0IDIuNTE1LTEuMjEuNjUtLjczLjk3OC0xLjY2Ny45Mi0yLjZsLS4yMTItNi40MTJMMzcuMTYgNDEuOTg2bDUuMDY0LTUuMjQiLz48L2c+PC9zdmc+");
+ background-size: 100%;
+ left: 0;
+ opacity: .8;
+ cursor: pointer;
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-fullscreen-btn.fullscreen {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODgiIGhlaWdodD0iODgiIHZpZXdCb3g9IjAgMCA4OCA4OCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+ZXhpdC1mdWxsc2NyZWVuPC90aXRsZT48ZyBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik00Ny4xOTMgNjUuNzUyYy4wNzMgMS45MTcgMS42MzYgMy40MTQgMy42OSAzLjQxNGguMDA0YzEuOTU3LS4wNzYgMy40OS0xLjczNCAzLjQxOC0zLjY2NWwtLjEtNi4yNjIgMTAuNjY2IDEwLjY2NCA1LjAzMi01LjAzNS0xMC42Ni0xMC42NiA2LjM3NS4wOThjMS45MTMgMCAzLjQ3Ni0xLjUgMy41NTYtMy40My4wMzctLjk4LS4zNDYtMS45NDgtMS4wNS0yLjY1LS42MzMtLjYyOC0xLjQ3LTEtMi4zODUtMS4wMzZsLTE5LjA1Mi0uNTA0LjUwNyAxOS4wNjZNMTcuNTQgMjIuNTdsMTAuNjY3IDEwLjY3LTYuMzgtLjEwM2MtMS45MTIgMC0zLjQ3MiAxLjUtMy41NTUgMy40MjQtLjAzNy45OS4zNDYgMS45NTQgMS4wNDIgMi42NTQuNjM3LjYzNCAxLjQ4IDEuMDAyIDIuMzkzIDEuMDM4bDE5LjA1Mi41MDMtLjUwOC0xOS4wN2MtLjA3My0xLjkxMi0xLjYzNi0zLjQxLTMuNjg3LTMuNDFoLS4wMDRjLS45NS4wMzctMS44My40NC0yLjQ3NiAxLjE0LS42NS43LS45ODQgMS42MS0uOTQ0IDIuNTIybC4xIDYuMjY2TDIyLjU3MyAxNy41NGwtNS4wMzUgNS4wMyIvPjwvZz48L3N2Zz4=");
+ background-size: 100%
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-fullscreen-btn:hover {
+ opacity: 1
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-chromecast-btn {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+aWNvbi1jaHJvbWVjYXN0PC90aXRsZT48ZyBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yMC4wMDMgMGgtMTZjLTEuMTA1IDAtMiAuODk1LTIgMnYxLjMwM2MuNjg3LjE0IDEuMzUuMzQyIDIgLjU3MlYyaDE2djEwaC03LjI2Yy4yOC42NDQuNTEgMS4zMTQuNzAyIDJoNi41NThjMS4xMDQgMCAyLS44OTUgMi0yVjJjMC0xLjEwNS0uODk2LTItMi0yTTYuNDEgMTZjLS4zOTUgMC0uNzY4LS4yMzMtLjkyNy0uNjItLjg1LTIuMDczLTIuNjE2LTMuNjMtNC43MjYtNC4xNjYtLjUzNS0uMTM3LS44Ni0uNjgtLjcyMy0xLjIxNi4xMzUtLjUzNS42OC0uODU1IDEuMjE1LS43MjQgMi43Mi42OTIgNC45OTUgMi42OSA2LjA4NCA1LjM0Ny4yMS41MTItLjAzNiAxLjA5Ni0uNTQ2IDEuMzA2LS4xMjUuMDUtLjI1My4wNzQtLjM4LjA3NCIvPjxwYXRoIGQ9Ik0xMC42MTcgMTZjLS40NDUgMC0uODUtLjI5OC0uOTY3LS43NDgtMS4xLTQuMjItNC41NTctNy40MDItOC44MS04LjEwNS0uNTQ1LS4wOS0uOTE0LS42MDUtLjgyNC0xLjE1LjA5LS41NDUuNjA0LS45MjQgMS4xNS0uODIzIDUuMDMyLjgzIDkuMTIgNC41OSAxMC40MiA5LjU3NC4xMzguNTM0LS4xODIgMS4wOC0uNzE3IDEuMjItLjA4NS4wMi0uMTcuMDMyLS4yNTMuMDMyTTIuNDQ2IDE0LjQ5Yy4wMDQuMDA0LjAwNy4wMS4wMS4wMTUuMDk3LjE3Mi4xNC4zNi4xMy41NDQtLjAxLjE4LS4wNjcuMzYtLjE3NS41MTctLjA4Mi4xMi0uMTkyLjIyNS0uMzI4LjMwMi0uMTU4LjA5LS4zMjcuMTE0LS40OTYuMTE0SC4wMnYtMS40NjZjLS4wMDItLjE3LjAyNS0uMzM4LjExNC0uNDk2LjI3NC0uNDguODg0LS42NDYgMS4zNjQtLjM3NC4yNS4xNDMuNDQuMzIuNTkzLjQ2bC4xNC4xMjdjLjA4OC4wNzQuMTYuMTYuMjE2LjI1NHoiLz48L2c+PC9zdmc+");
+ background-size: 100%;
+ opacity: .8;
+ }
+
+ .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-chromecast-btn:hover {
+ opacity: 1
+ }
+
+ .yvp-bottom-bar .yvp-play-controls {
+ display: block;
+ top: 0;
+ left: 0;
+ padding-top: 10px;
+ opacity: 1;
+ -webkit-transition: opacity .4s linear;
+ -moz-transition: opacity .4s linear;
+ -o-transition: opacity .4s linear;
+ transition: opacity .4s linear;
+ direction: ltr
+ }
+
+ .yvp-bottom-bar .yvp-play-btn {
+ position: relative;
+ display: inline-block;
+ background-position: 50% 50%;
+ background-size: 100%;
+ bottom: 0;
+ left: 0;
+ margin-top: 0;
+ margin-left: -4px;
+ width: 24px;
+ height: 24px;
+ cursor: pointer
+ }
+
+ .yvp-bottom-bar .yvp-upnext-container {
+ bottom: 0;
+ left: 0;
+ margin-left: 4px;
+ width: 24px;
+ height: 24px;
+ display: inline-block;
+ }
+
+ .yvp-bottom-bar .yvp-upnext-container.hide {
+ display: none
+ }
+
+ .yvp-bottom-bar .yvp-upnext-container.disabled {
+ opacity: .25;
+ pointer-events: none
+ }
+
+ .yvp-bottom-bar .yvp-upnext-container .yvp-upnext-btn {
+ position: relative;
+ background-position: 50% 50%;
+ background-size: 100%;
+ top: 0;
+ left: 0;
+ width: 24px;
+ height: 24px;
+ z-index: 2;
+ }
+
+ .yvp-bottom-bar .yvp-upnext-container .yvp-upnext-btn:hover {
+ cursor: pointer
+ }
+
+ .yvp-bottom-bar .yvp-upnext-container .yvp-upnext-playlist {
+ z-index: 1;
+ }
+
+ .yvp-bottom-bar .yvp-upnext-container .yvp-upnext-playlist.hide {
+ display: none
+ }
+
+ .yvp-bottom-bar .yvp-time-container {
+ display: inline-block;
+ position: relative;
+ left: 0;
+ top: -8px;
+ font-size: 11px;
+ margin-left: 4px;
+ }
+
+ .yvp-bottom-bar .yvp-time-container.yvp-hide {
+ display: none
+ }
+
+ .yvp-bottom-bar .yvp-current-time,
+ .yvp-bottom-bar .yvp-vs-time,
+ .yvp-bottom-bar .yvp-total-time {
+ font-size: 11px;
+ display: inline-block;
+ }
+
+ .yvp-bottom-bar .yvp-current-time.yvp-hide,
+ .yvp-bottom-bar .yvp-vs-time.yvp-hide,
+ .yvp-bottom-bar .yvp-total-time.yvp-hide {
+ display: none
+ }
+
+ .yvp-bottom-bar .yvp-current-time,
+ .yvp-bottom-bar .yvp-total-time {
+ position: relative;
+ top: 0;
+ left: 0 !important;
+ margin-left: 0;
+ padding: 0;
+ width: auto;
+ background-color: transparent;
+ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.3)
+ }
+
+ .yvp-bottom-bar .yvp-current-time,
+ .yvp-bottom-bar .yvp-total-time {
+ color: rgba(255, 255, 255, 0.8);
+ }
+
+ .yvp-bottom-bar .yvp-current-time:hover,
+ .yvp-bottom-bar .yvp-total-time:hover {
+ color: rgba(255, 255, 255, 0.8)
+ }
+
+ .yvp-bottom-bar .yvp-vs-time {
+ position: absolute;
+ bottom: 3px;
+ left: 34px;
+ width: 44px;
+ background-color: rgba(0, 0, 0, 0.3);
+ color: #fff;
+ text-shadow: 1px 1px 2px #000;
+ border-radius: 2px;
+ padding: 3px 0;
+ font-size: 11px;
+ text-align: center
+ }
+
+ .yvp-bottom-bar .yvp-slider.yvp-disable {
+ display: none;
+ pointer-events: none
+ }
+
+ .yvp-bottom-bar .yvp-slider,
+ .yvp-bottom-bar .yvp-handle,
+ .yvp-bottom-bar .yvp-buffer-bar,
+ .yvp-bottom-bar .yvp-playback-bar {
+ position: absolute;
+ height: 4px;
+ bottom: 44px;
+ border: 0;
+ border-radius: 3px;
+ opacity: 1;
+ direction: ltr;
+ max-width: 100%
+ }
+
+ .yvp-bottom-bar .yvp-slider.yvp-thick-slider {
+ height: 6px;
+ bottom: 43px;
+ }
+
+ .yvp-bottom-bar .yvp-slider.yvp-thick-slider .yvp-buffer-bar,
+ .yvp-bottom-bar .yvp-slider.yvp-thick-slider .yvp-playback-bar {
+ height: 6px;
+ bottom: 43px
+ }
+
+ .yvp-bottom-bar .yvp-slider.yvp-thick-slider .yvp-handle {
+ margin-top: -3px
+ }
+
+ .yvp-bottom-bar .yvp-playback-bar {
+ top: 0;
+ background-color: #7300ff;
+ background-image: -webkit-linear-gradient(to right, #7300ff 0%, #188fff 100%);
+ background-image: -o-linear-gradient(to right, #7300ff 0%, #188fff 100%);
+ background-image: linear-gradient(to right, #7300ff 0%, #188fff 100%);
+ opacity: .8
+ }
+
+ .yvp-bottom-bar .yvp-slider {
+ width: 100%;
+ position: absolute;
+ background: rgba(255, 255, 255, 0.2);
+ border-radius: 3px;
+ border-color: transparent;
+ cursor: pointer;
+ }
+
+ .yvp-bottom-bar .yvp-slider .yvp-slider-extension {
+ position: absolute;
+ width: 100%;
+ height: 16px;
+ top: -6px
+ }
+
+ .yvp-bottom-bar .yvp-buffer-bar {
+ top: 0;
+ background: rgba(255, 255, 255, 0.2)
+ }
+
+ .yvp-bottom-bar .yvp-visual-seek {
+ display: none;
+ position: absolute;
+ top: -71px;
+ width: 112px;
+ height: 63px;
+ margin-left: -57px;
+ background-color: #000;
+ border: 0;
+ z-index: 2;
+ pointer-events: none;
+ text-align: center
+ }
+
+ .yvp-bottom-bar .yvp-handle {
+ position: absolute;
+ top: 0;
+ width: 12px;
+ height: 12px;
+ border: 0;
+ border-radius: 50%;
+ background-color: #fff;
+ margin-top: -4px;
+ margin-left: -6px;
+ background-image: none;
+ display: none;
+ z-index: 3;
+ }
+
+ .yvp-bottom-bar .yvp-handle.active {
+ display: block
+ }
+
+ .yvp-bottom-bar .yvp-ad-break {
+ background-color: rgba(204, 204, 204, 0.5);
+ position: absolute;
+ top: 0;
+ width: 3px;
+ height: 100%;
+ }
+
+ .yvp-bottom-bar .yvp-ad-break:hover {
+ background-color: rgba(255, 255, 255, 0.5)
+ }
+
+ .yvp-bottom-bar .yvp-ad-break.occurred {
+ background-color: rgba(0, 0, 0, 0.25)
+ }
+
+ .yvp-bottom-bar .yvp-fullscreen-btn-replacement {
+ width: 9px;
+ height: 30px;
+ position: relative;
+ float: right
+ }
+
+ .yvp-bottom-bar.yvp-bottom-upnext {
+ height: 100%;
+ opacity: .55;
+ -webkit-transition: opacity 200ms linear;
+ -moz-transition: opacity 200ms linear;
+ -o-transition: opacity 200ms linear;
+ transition: opacity 200ms linear;
+ background: rgba(18, 23, 23, 0.55);
+ }
+
+ .yvp-bottom-bar.yvp-bottom-upnext .yvp-bottom-container .yvp-slider {
+ opacity: 0;
+ -webkit-transition: opacity 200ms linear;
+ -moz-transition: opacity 200ms linear;
+ -o-transition: opacity 200ms linear;
+ transition: opacity 200ms linear;
+ display: none;
+ pointer-events: none
+ }
+
+ .yvp-bottom-bar.yvp-bottom-upnext .yvp-playlist-item {
+ -webkit-transform: translateX(0) scale(1, 1);
+ -moz-transform: translateX(0) scale(1, 1);
+ -ms-transform: translateX(0) scale(1, 1);
+ -o-transform: translateX(0) scale(1, 1);
+ transform: translateX(0) scale(1, 1);
+ -webkit-transition: transform 420ms cubic-bezier(0, .4, .1, 1);
+ -moz-transition: transform 420ms cubic-bezier(0, .4, .1, 1);
+ -o-transition: transform 420ms cubic-bezier(0, .4, .1, 1);
+ transition: transform 420ms cubic-bezier(0, .4, .1, 1)
+ }
+
+ .yvp-bottom-bar.yvp-drag .yvp-play-controls,
+ .yvp-bottom-bar.yvp-drag .yvp-menu-controls {
+ opacity: 0;
+ -webkit-transition: opacity 200ms linear;
+ -moz-transition: opacity 200ms linear;
+ -o-transition: opacity 200ms linear;
+ transition: opacity 200ms linear
+ }
+
+ .yvp-ie9 .yvp-playback-bar {
+ filter: progid: DXImageTransform.Microsoft.gradient(gradientType: 1, startColorStr=#AA7300FF, endColorStr=#FF0087FF)
+ }
+
+ .yvp-bottom-bar.yvp-bottom-upnext .yvp-bottom-container .yvp-menu-controls .button,
+ .yvp-bottom-bar.yvp-bottom-upnext .yvp-bottom-container .yvp-menu-controls .yvp-cc-btn,
+ .yvp-bottom-bar.yvp-bottom-upnext .yvp-bottom-container .yvp-menu-controls .yvp-chromecast-btn,
+ .yvp-bottom-bar.yvp-bottom-upnext .yvp-bottom-container .yvp-menu-controls .yvp-fullscreen-btn {
+ opacity: .2;
+ -webkit-transition: opacity 200ms linear;
+ -moz-transition: opacity 200ms linear;
+ -o-transition: opacity 200ms linear;
+ transition: opacity 200ms linear;
+ pointer-events: none
+ }
+
+ .yvp-state-video .yvp-bottom-bar .yvp-play-btn,
+ .yvp-flag-casting .yvp-bottom-bar .yvp-play-btn {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNi43ODYgMTguOTkzSDYuNzRjLS40MTQgMC0uNzUtLjM0NC0uNzUtLjc1VjUuNzczYzAtLjQxNS4zMzMtLjc1Ljc1LS43NS4xNjYgMCAuMzIuMDU0LjQ0My4xNDZsMTAuNTEgNi4wNjdjLjM2LjIxLjQ5LjY2Ny4yOCAxLjAyOC0uMDU0LjA5My0uMTI0LjE3LS4yMDYuMjMtLjAzNi4wMzItLjA3Ni4wNjItLjEyLjA4OGwtMTAuNDg1IDYuM2MtLjExOC4wNy0uMjQ3LjEwNy0uMzc2LjExeiIgZmlsbD0iI0ZGRiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+");
+ opacity: .8;
+ }
+
+ .yvp-state-video .yvp-bottom-bar .yvp-play-btn:hover,
+ .yvp-flag-casting .yvp-bottom-bar .yvp-play-btn:hover {
+ opacity: 1
+ }
+
+ .yvp-state-video.yvp-flag-playing .yvp-bottom-bar .yvp-play-btn,
+ .yvp-flag-casting.yvp-cast-playing .yvp-bottom-bar .yvp-play-btn {
+ background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCAzLjguMyAoMjk4MDIpIC0gaHR0cDovL3d3dy5ib2hlbWlhbmNvZGluZy5jb20vc2tldGNoIC0tPgogICAgPHRpdGxlPnBhdXNlPC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+PC9kZWZzPgogICAgPGcgaWQ9ImRlc2t0b3AiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJwYXVzZSIgZmlsbD0iI0ZGRkZGRiI+CiAgICAgICAgICAgIDxnIGlkPSJSZWN0YW5nbGUtMTMxLSstUmVjdGFuZ2xlLTEzMS1Db3B5IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2LjAwMDAwMCwgNS4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxyZWN0IGlkPSJSZWN0YW5nbGUtMTMxLUNvcHkiIHg9IjguNSIgeT0iMCIgd2lkdGg9IjMiIGhlaWdodD0iMTQiIHJ4PSIxLjUiPjwvcmVjdD4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0wLjUsMS40OTgyNDUyNCBDMC41LDAuNjcwNzg3MjQyIDEuMTY1Nzk3MjMsMCAyLDAgTDIsMCBDMi44Mjg0MjcxMiwwIDMuNSwwLjY3NTI0OTEgMy41LDEuNDk4MjQ1MjQgTDMuNSwxMi41MDE3NTQ4IEMzLjUsMTMuMzI5MjEyOCAyLjgzNDIwMjc3LDE0IDIsMTQgTDIsMTQgQzEuMTcxNTcyODgsMTQgMC41LDEzLjMyNDc1MDkgMC41LDEyLjUwMTc1NDggTDAuNSwxLjQ5ODI0NTI0IFoiIGlkPSJSZWN0YW5nbGUtMTMxLUNvcHkiPjwvcGF0aD4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+");
+ opacity: .8;
+ }
+
+ .yvp-state-video.yvp-flag-playing .yvp-bottom-bar .yvp-play-btn:hover,
+ .yvp-flag-casting.yvp-cast-playing .yvp-bottom-bar .yvp-play-btn:hover {
+ opacity: 1
+ }
+
+ .yvp-state-end-screen .yvp-bottom-bar .yvp-play-btn {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0xNi44NyAxNS41NDVjLS4xMS0uMTk3LS4yNzQtLjM0NS0uNDctLjQyNS0uMjA0LS4wOS0uNDUtLjA5LS42MS0uMDQtLjEwNy4wMjUtLjIwNS4wNjgtLjMyNy4xNDctLjA3Mi4wNS0uMTcyLjE1LS4yMTYuMjA0LS43NzYgMS4wMTgtMS45OTcgMS42MjctMy4yNjYgMS42MjctMi4yNDQgMC00LjA3LTEuODItNC4wNy00LjA1MyAwLTIuMTMzIDEuNzg3LTMuOTQ3IDMuOTgtNC4wNDNsLjUyLS4wMTNWN2wtLjU1Mi4wMTNDOC41NzMgNy4xMyA2IDkuNzYgNiAxMy4wMDNjMCAzLjMxMiAyLjY5MyA2LjAwNCA2LjAwNSA2LjAwNCAxLjg2NCAwIDMuNTktLjg0NSA0LjctMi4yOGwuMDctLjA5Yy4wMy0uMDQyLjA1My0uMDgyLjA3LS4xMDguMTA0LS4xNjguMTU1LS4zMzQuMTU1LS41MSAwLS4xNi0uMDQzLS4zMi0uMTMtLjQ3NSIvPjxwYXRoIGQ9Ik0xMi4zMTIgMTEuMDA4Yy0uMTcyIDAtLjMxMi0uMTUtLjMxMi0uMzIzVjUuMzIzYzAtLjE4LjEzOC0uMzIzLjMxMi0uMzIzLjA2OCAwIC4xMzIuMDI0LjE4NC4wNjNsNC4zNjUgMi42MWMuMTUyLjA5LjIwNC4yODYuMTE4LjQ0LS4wMjIuMDQtLjA1Mi4wNzUtLjA4Ni4xLS4wMTUuMDE0LS4wMzIuMDI3LS4wNS4wMzhsLTQuMzU1IDIuNzFjLS4wNS4wMy0uMTAzLjA0Ni0uMTU2LjA0OGgtLjAxOHoiLz48L2c+PC9zdmc+");
+ opacity: .8;
+ background-size: 95%;
+ }
+
+ .yvp-state-end-screen .yvp-bottom-bar .yvp-play-btn:hover {
+ opacity: 1
+ }
+
+ .yvp-state-video .yvp-bottom-bar .yvp-upnext-container .yvp-upnext-btn {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODgiIGhlaWdodD0iODgiIHZpZXdCb3g9IjAgMCA4OCA4OCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+dXBuZXh0PC90aXRsZT48ZyBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yMi4wOTIgNjYuMDIzbC0uMTMuMDAyYy0yLjAyNCAwLTMuNjY1LTEuNjQ1LTMuNjY1LTMuNjc2VjI1LjdjMC0xLjU1NS45NjYtMi44ODQgMi4zMjYtMy40MiAxLjA1OC0uNDY2IDIuMzE0LS40NCAzLjM4Ny4xOGwzMS42MDggMTguMjVjLjQ2LjI2NS44NDIuNjEzIDEuMTM4IDEuMDE1LjEuMTMyLjE5NS4yNzIuMjguNDIgMS4wNjMgMS44NC40MzQgNC4xOTUtMS40MTcgNS4yNjRMMjQuMjYgNjUuNTFjLS42ODMuMzk1LTEuNDM4LjU1Ny0yLjE3LjUxek02Mi4zMzMgMjIuMDA0YzAtMi4wMjcgMS42NDYtMy42NyAzLjY2Ny0zLjY3IDIuMDI1IDAgMy42NjcgMS42NSAzLjY2NyAzLjY3djQzLjk5MmMwIDIuMDI3LTEuNjQ2IDMuNjctMy42NjcgMy42Ny0yLjAyNSAwLTMuNjY3LTEuNjUtMy42NjctMy42N1YyMi4wMDR6Ii8+PC9nPjwvc3ZnPg==");
+ opacity: .8;
+ display: inline-block;
+ }
+
+ .yvp-state-video .yvp-bottom-bar .yvp-upnext-container .yvp-upnext-btn:hover {
+ opacity: 1
+ }
+
+ .yvp-state-start-screen .yvp-top-bar .yvp-content-type {
+ display: none
+ }
+
+ .yvp-state-end-screen .yvp-bottom-bar .yvp-visual-seek {
+ display: none !important
+ }
+
+ .yvp-state-end-screen .yvp-bottom-bar .yvp-slider {
+ pointer-events: none
+ }
+
+ .yvp-state-end-screen .yvp-playing-item-title.yvp-title-standard {
+ opacity: 0;
+ z-index: 0
+ }
+
+ .yvp-browser-mobile .yvp-bottom-bar .yvp-play-controls {
+ padding-top: 7px
+ }
+
+ .yvp-browser-mobile .yvp-bottom-bar .yvp-play-btn {
+ opacity: 1;
+ width: 30px;
+ height: 30px
+ }
+
+ .yvp-browser-mobile .yvp-bottom-bar .yvp-upnext-container .yvp-upnext-btn {
+ opacity: 1
+ }
+
+ .yvp-browser-mobile .yvp-bottom-bar .yvp-time-container {
+ top: -10px
+ }
+
+ .yvp-browser-mobile .yvp-bottom-bar .yvp-current-time,
+ .yvp-browser-mobile .yvp-bottom-bar .yvp-vs-time,
+ .yvp-browser-mobile .yvp-bottom-bar .yvp-total-time {
+ font-size: 14px
+ }
+
+ .yvp-browser-mobile .yvp-bottom-bar .yvp-handle {
+ width: 14px;
+ height: 14px;
+ margin-top: -5px;
+ display: block
+ }
+
+ .yvp-browser-mobile .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls {
+ margin-top: 7px;
+ }
+
+ .yvp-browser-mobile .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .button {
+ width: 30px;
+ height: 30px
+ }
+
+ .yvp-browser-mobile .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-fullscreen-btn {
+ opacity: 1;
+ margin-bottom: 0;
+ margin-right: 0
+ }
+
+ .yvp-state-video .yvp-bottom-bar {
+ display: block
+ }
+
+ .yvp-state-start-screen .yvp-bottom-bar,
+ .yvp-state-error .yvp-bottom-bar,
+ .yvp-state-end-screen .yvp-bottom-bar,
+ .yvp-state-loading .yvp-bottom-bar {
+ display: none
+ }
+
+ .yvp-mode-ad .yvp-bottom-bar .yvp-slider,
+ .yvp-mode-vpaid .yvp-bottom-bar .yvp-slider,
+ .yvp-mode-ad .yvp-bottom-bar .yvp-handle,
+ .yvp-mode-vpaid .yvp-bottom-bar .yvp-handle,
+ .yvp-mode-ad .yvp-bottom-bar .yvp-buffer-bar,
+ .yvp-mode-vpaid .yvp-bottom-bar .yvp-buffer-bar,
+ .yvp-mode-ad .yvp-bottom-bar .yvp-playback-bar,
+ .yvp-mode-vpaid .yvp-bottom-bar .yvp-playback-bar {
+ pointer-events: none;
+ height: 4px !important;
+ bottom: 0 !important;
+ display: none
+ }
+
+ .yvp-mode-ad .yvp-bottom-bar .yvp-handle,
+ .yvp-mode-vpaid .yvp-bottom-bar .yvp-handle,
+ .yvp-mode-ad .yvp-bottom-bar .yvp-buffer-bar,
+ .yvp-mode-vpaid .yvp-bottom-bar .yvp-buffer-bar {
+ display: none
+ }
+
+ .yvp-mode-ad .yvp-bottom-bar .yvp-content-type,
+ .yvp-mode-vpaid .yvp-bottom-bar .yvp-content-type {
+ display: block
+ }
+
+ .yvp-mode-ad .yvp-bottom-bar .yvp-ad-break,
+ .yvp-mode-vpaid .yvp-bottom-bar .yvp-ad-break {
+ display: none
+ }
+
+ .yvp-cast-overlay {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ background-color: #000;
+ z-index: 50;
+ display: none;
+ color: #fff;
+ background-repeat: no-repeat;
+ background-size: cover;
+ }
+
+ .yvp-cast-overlay:after {
+ content: '';
+ background-color: rgba(0, 0, 0, 0.85);
+ display: block;
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ top: 0;
+ z-index: -1
+ }
+
+ .yvp-cast-overlay &gt;
+ div {
+ position: relative;
+ height: calc(100% - 70px);
+ }
+
+ .yvp-cast-overlay &gt;
+ div .cast-overlay-header {
+ height: 25%;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ border-bottom: 1px solid #777
+ }
+
+ .yvp-cast-overlay &gt;
+ div .cast-device-info {
+ margin-left: 50px;
+ }
+
+ .yvp-cast-overlay &gt;
+ div .cast-device-info:before {
+ content: '';
+ float: left;
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+aWNvbi1jaHJvbWVjYXN0LW9uPC90aXRsZT48ZyBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yMC4wMDMgMGgtMTZjLTEuMTA1IDAtMiAuODk1LTIgMnYxLjMwM2MuNjg3LjE0IDEuMzUuMzQyIDIgLjU3MlYyaDE2djEwaC03LjI2Yy4yOC42NDQuNTEgMS4zMTQuNzAyIDJoNi41NThjMS4xMDQgMCAyLS44OTUgMi0yVjJjMC0xLjEwNS0uODk2LTItMi0yIi8+PHBhdGggZD0iTTExLjY5IDEwSDE4VjRINnYuNzNjMi4zMjcgMS4yMyA0LjI5IDMuMDU0IDUuNjkgNS4yN3pNNi40MSAxNmMtLjM5NSAwLS43NjgtLjIzMy0uOTI3LS42Mi0uODUtMi4wNzMtMi42MTYtMy42My00LjcyNi00LjE2Ni0uNTM1LS4xMzctLjg2LS42OC0uNzIzLTEuMjE2LjEzNS0uNTM1LjY4LS44NTUgMS4yMTUtLjcyNCAyLjcyLjY5MiA0Ljk5NSAyLjY5IDYuMDg0IDUuMzQ3LjIxLjUxMi0uMDM2IDEuMDk2LS41NDYgMS4zMDYtLjEyNS4wNS0uMjUzLjA3NC0uMzguMDc0Ii8+PHBhdGggZD0iTTEwLjYxNyAxNmMtLjQ0NSAwLS44NS0uMjk4LS45NjctLjc0OC0xLjEtNC4yMi00LjU1Ny03LjQwMi04LjgxLTguMTA1LS41NDUtLjA5LS45MTQtLjYwNS0uODI0LTEuMTUuMDktLjU0NS42MDQtLjkyNCAxLjE1LS44MjMgNS4wMzIuODMgOS4xMiA0LjU5IDEwLjQyIDkuNTc0LjEzOC41MzQtLjE4MiAxLjA4LS43MTcgMS4yMi0uMDg1LjAyLS4xNy4wMzItLjI1My4wMzJNMi40NDYgMTQuNDljLjAwNC4wMDQuMDA3LjAxLjAxLjAxNS4wOTcuMTcyLjE0LjM2LjEzLjU0NC0uMDEuMTgtLjA2Ny4zNi0uMTc1LjUxNy0uMDgyLjEyLS4xOTIuMjI1LS4zMjguMzAyLS4xNTguMDktLjMyNy4xMTQtLjQ5Ni4xMTRILjAydi0xLjQ2NmMtLjAwMi0uMTcuMDI1LS4zMzguMTE0LS40OTYuMjc0LS40OC44ODQtLjY0NiAxLjM2NC0uMzc0LjI1LjE0My40NC4zMi41OTMuNDZsLjE0LjEyN2MuMDg4LjA3NC4xNi4xNi4yMTYuMjU0eiIvPjwvZz48L3N2Zz4=");
+ background-repeat: no-repeat;
+ background-size: 90%;
+ background-position: 50%;
+ margin-right: 10px;
+ width: 36px;
+ height: 36px
+ }
+
+ .yvp-cast-overlay &gt;
+ div .cast-device-name {
+ font-size: .9em;
+ position: relative;
+ top: 3px
+ }
+
+ .yvp-cast-overlay &gt;
+ div .cast-device-type {
+ font-size: .7em;
+ color: #999
+ }
+
+ .yvp-cast-overlay &gt;
+ div .cast-overlay-content {
+ position: relative;
+ height: 50%;
+ left: 0;
+ right: 0;
+ cursor: pointer;
+ opacity: .6;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ }
+
+ .yvp-cast-overlay &gt;
+ div .cast-overlay-content:hover {
+ opacity: 1
+ }
+
+ .yvp-cast-overlay &gt;
+ div .cast-overlay-content:after {
+ content: '';
+ display: block;
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNi43ODYgMTguOTkzSDYuNzRjLS40MTQgMC0uNzUtLjM0NC0uNzUtLjc1VjUuNzczYzAtLjQxNS4zMzMtLjc1Ljc1LS43NS4xNjYgMCAuMzIuMDU0LjQ0My4xNDZsMTAuNTEgNi4wNjdjLjM2LjIxLjQ5LjY2Ny4yOCAxLjAyOC0uMDU0LjA5My0uMTI0LjE3LS4yMDYuMjMtLjAzNi4wMzItLjA3Ni4wNjItLjEyLjA4OGwtMTAuNDg1IDYuM2MtLjExOC4wNy0uMjQ3LjEwNy0uMzc2LjExeiIgZmlsbD0iI0ZGRiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+");
+ background-repeat: no-repeat;
+ background-size: 80%;
+ background-position: 50%;
+ width: 10%;
+ height: 0;
+ padding-bottom: 10%;
+ }
+
+ .yvp-cast-playing .yvp-cast-overlay &gt;
+ div .cast-overlay-content:after {
+ background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCAzLjguMyAoMjk4MDIpIC0gaHR0cDovL3d3dy5ib2hlbWlhbmNvZGluZy5jb20vc2tldGNoIC0tPgogICAgPHRpdGxlPnBhdXNlPC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+PC9kZWZzPgogICAgPGcgaWQ9ImRlc2t0b3AiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJwYXVzZSIgZmlsbD0iI0ZGRkZGRiI+CiAgICAgICAgICAgIDxnIGlkPSJSZWN0YW5nbGUtMTMxLSstUmVjdGFuZ2xlLTEzMS1Db3B5IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2LjAwMDAwMCwgNS4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxyZWN0IGlkPSJSZWN0YW5nbGUtMTMxLUNvcHkiIHg9IjguNSIgeT0iMCIgd2lkdGg9IjMiIGhlaWdodD0iMTQiIHJ4PSIxLjUiPjwvcmVjdD4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0wLjUsMS40OTgyNDUyNCBDMC41LDAuNjcwNzg3MjQyIDEuMTY1Nzk3MjMsMCAyLDAgTDIsMCBDMi44Mjg0MjcxMiwwIDMuNSwwLjY3NTI0OTEgMy41LDEuNDk4MjQ1MjQgTDMuNSwxMi41MDE3NTQ4IEMzLjUsMTMuMzI5MjEyOCAyLjgzNDIwMjc3LDE0IDIsMTQgTDIsMTQgQzEuMTcxNTcyODgsMTQgMC41LDEzLjMyNDc1MDkgMC41LDEyLjUwMTc1NDggTDAuNSwxLjQ5ODI0NTI0IFoiIGlkPSJSZWN0YW5nbGUtMTMxLUNvcHkiPjwvcGF0aD4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+")
+ }
+
+ .yvp-cast-overlay &gt;
+ div .cast-overlay-footer {
+ height: 25%;
+ text-align: center;
+ border-top: 1px solid #777
+ }
+
+ .yvp-cast-overlay &gt;
+ div .cast-disconnect-btn {
+ position: relative;
+ top: 8px;
+ cursor: pointer;
+ padding: 2px 5px;
+ color: #999;
+ }
+
+ .yvp-cast-overlay &gt;
+ div .cast-disconnect-btn:hover {
+ color: #fff
+ }
+
+ .yvp-flag-casting .yvp-cast-overlay {
+ display: block
+ }
+
+ .yvp-flag-casting .yvp-bottom-bar {
+ z-index: 75;
+ opacity: 1 !important;
+ -webkit-transition: none !important;
+ -moz-transition: none !important;
+ -o-transition: none !important;
+ transition: none !important;
+ display: block !important
+ }
+
+ body.yvp-lightbox {
+ overflow: hidden !important;
+ }
+
+ body.yvp-lightbox .yvp-lightbox-ancestor {
+ z-index: 2147483647 !important;
+ }
+
+ body.yvp-lightbox .yvp-lightbox-ancestor .yvp-content.yvp-browser-desktop {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100% !important;
+ height: 100% !important;
+ z-index: 2147483647
+ }
+
+ .yvp-stream .yvp-bottom-bar {
+ height: 60px;
+ }
+
+ .yvp-stream .yvp-bottom-bar .yvp-volume-bar-container {
+ z-index: 30
+ }
+
+ .yvp-stream .yvp-bottom-bar .yvp-bottom-container {
+ top: 26px;
+ margin: 0 8px;
+ }
+
+ .yvp-stream .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls {
+ margin-top: 0;
+ }
+
+ .yvp-stream .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-setting-btn,
+ .yvp-stream .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-cc-btn {
+ display: none
+ }
+
+ .yvp-stream .yvp-bottom-bar .yvp-play-controls {
+ padding-top: 0
+ }
+
+ .yvp-stream .yvp-bottom-bar .yvp-visual-seek {
+ display: none !important
+ }
+
+ .yvp-stream .yvp-bottom-bar .yvp-slider {
+ display: none;
+ pointer-events: none
+ }
+
+ .yvp-stream .yvp-bottom-bar .yvp-upnext-container,
+ .yvp-stream .yvp-bottom-bar .yvp-time-container {
+ display: none
+ }
+
+ .yvp-content.yvp-stream .yvp-playing-item-title.yvp-title-standard {
+ padding: 8px 10px 8px 10px;
+ font-weight: 500;
+ font-size: 16px;
+ line-height: 20px;
+ z-index: 29
+ }
+
+ .yvp-ministream .yvp-bottom-bar {
+ height: 25px;
+ }
+
+ .yvp-ministream .yvp-bottom-bar .yvp-volume-bar-container {
+ bottom: 85px;
+ padding: 6px 0;
+ width: 20px;
+ left: 2px;
+ }
+
+ .yvp-ministream .yvp-bottom-bar .yvp-volume-bar-container:after {
+ left: 5px
+ }
+
+ .yvp-ministream .yvp-bottom-bar .yvp-volume-level {
+ margin-left: 7px
+ }
+
+ .yvp-ministream .yvp-bottom-bar .yvp-bottom-container {
+ top: 0;
+ margin: 0 4px;
+ }
+
+ .yvp-ministream .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls {
+ margin-top: 0;
+ }
+
+ .yvp-ministream .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .button {
+ margin-left: 0
+ }
+
+ .yvp-ministream .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-setting-btn,
+ .yvp-ministream .yvp-bottom-bar .yvp-bottom-container .yvp-menu-controls .yvp-cc-btn {
+ display: none
+ }
+
+ .yvp-ministream .yvp-bottom-bar .yvp-play-controls {
+ padding-top: 0
+ }
+
+ .yvp-ministream .yvp-bottom-bar .yvp-visual-seek {
+ display: none !important
+ }
+
+ .yvp-ministream .yvp-bottom-bar .yvp-slider {
+ display: none;
+ pointer-events: none
+ }
+
+ .yvp-ministream .yvp-bottom-bar .yvp-upnext-container,
+ .yvp-ministream .yvp-bottom-bar .yvp-time-container {
+ display: none
+ }
+
+ .yvp-content.yvp-ministream .yvp-playing-item-title.yvp-title-standard {
+ opacity: 0;
+ z-index: 0
+ }
+
+ .yvp-ministream .yvp-start-screen .yvp-start-screen-button,
+ .yvp-stream .yvp-start-screen .yvp-start-screen-button {
+ width: 50px;
+ height: 50px;
+ margin: -25px 0 0 -25px
+ }
+
+ .yvp-ministream.yvp-state-end-screen .yvp-bottom-bar {
+ height: 30px;
+ }
+
+ .yvp-ministream.yvp-state-end-screen .yvp-bottom-bar .yvp-bottom-container {
+ top: 5px
+ }
+
+ .yvp-state-end-screen .yvp-bottom-bar {
+ display: block
+ }
+ </style>
+ <style type="text/css">
+ .yvp-spinner-icon {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSItMjUgLTI1IDEwMCAxMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGc+PHBhdGggZD0iTTI1IDBhMjUgMjUgMCAwIDAgMCA1MCIgc3Ryb2tlLWRhc2hhcnJheT0iNzkiIHN0cm9rZT0iI2FhYSIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiIGZpbGw9Im5vbmUiPjxhbmltYXRlIGlkPSJhMSIgYXR0cmlidXRlVHlwZT0iWE1MIiBhdHRyaWJ1dGVOYW1lPSJzdHJva2UtZGFzaG9mZnNldCIgZnJvbT0iOSIgdG89Ijc2IiBkdXI9Ijc1MG1zIiBiZWdpbj0iMHM7IGEyLmVuZCIgZmlsbD0iZnJlZXplIiBjYWxjTW9kZT0ic3BsaW5lIiBrZXlUaW1lcz0iMDsxIiBrZXlTcGxpbmVzPSIwLjIxNSwgMC42MSwgMC4zNTUsIDEiLz48YW5pbWF0ZSBpZD0iYTIiIGF0dHJpYnV0ZVR5cGU9IlhNTCIgYXR0cmlidXRlTmFtZT0ic3Ryb2tlLWRhc2hvZmZzZXQiIGZyb209Ijc2IiB0bz0iOSIgZHVyPSI3NTBtcyIgYmVnaW49ImExLmVuZCIgZmlsbD0iZnJlZXplIiBjYWxjTW9kZT0ic3BsaW5lIiBrZXlUaW1lcz0iMDsxIiBrZXlTcGxpbmVzPSIwLjIxNSwgMC42MSwgMC4zNTUsIDEiLz48YW5pbWF0ZSBpZD0iYTMiIGF0dHJpYnV0ZVR5cGU9IlhNTCIgYXR0cmlidXRlTmFtZT0ic3Ryb2tlLXdpZHRoIiBmcm9tPSI0IiB0bz0iOCIgZHVyPSI3NTBtcyIgYmVnaW49IjBzOyBhNC5lbmQiIGZpbGw9ImZyZWV6ZSIgY2FsY01vZGU9InNwbGluZSIga2V5VGltZXM9IjA7MSIga2V5U3BsaW5lcz0iMC4yMTUsIDAuNjEsIDAuMzU1LCAxIi8+PGFuaW1hdGUgaWQ9ImE0IiBhdHRyaWJ1dGVUeXBlPSJYTUwiIGF0dHJpYnV0ZU5hbWU9InN0cm9rZS13aWR0aCIgZnJvbT0iOCIgdG89IjQiIGR1cj0iNzUwbXMiIGJlZ2luPSJhMy5lbmQiIGZpbGw9ImZyZWV6ZSIgY2FsY01vZGU9InNwbGluZSIga2V5VGltZXM9IjA7MSIga2V5U3BsaW5lcz0iMC4yMTUsIDAuNjEsIDAuMzU1LCAxIi8+PGFuaW1hdGVUcmFuc2Zvcm0gaWQ9ImE1IiBhdHRyaWJ1dGVUeXBlPSJYTUwiIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiBmcm9tPSIwIDI1IDI1IiB0bz0iMCAyNSAyNSIgZHVyPSI3NTBtcyIgYmVnaW49IjA7IGE4LmVuZCIgY2FsY01vZGU9InNwbGluZSIga2V5VGltZXM9IjA7MSIga2V5U3BsaW5lcz0iMC4yMTUsIDAuNjEsIDAuMzU1LCAxIi8+PGFuaW1hdGVUcmFuc2Zvcm0gaWQ9ImE2IiBhdHRyaWJ1dGVUeXBlPSJYTUwiIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiBmcm9tPSIwIDI1IDI1IiB0bz0iMTgwIDI1IDI1IiBkdXI9Ijc1MG1zIiBiZWdpbj0iYTUuZW5kIiBjYWxjTW9kZT0ic3BsaW5lIiBrZXlUaW1lcz0iMDsxIiBrZXlTcGxpbmVzPSIwLjIxNSwgMC42MSwgMC4zNTUsIDEiLz48YW5pbWF0ZVRyYW5zZm9ybSBpZD0iYTciIGF0dHJpYnV0ZVR5cGU9IlhNTCIgYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIGZyb209IjE4MCAyNSAyNSIgdG89IjE4MCAyNSAyNSIgZHVyPSI3NTBtcyIgYmVnaW49ImE2LmVuZCIgY2FsY01vZGU9InNwbGluZSIga2V5VGltZXM9IjA7MSIga2V5U3BsaW5lcz0iMC4yMTUsIDAuNjEsIDAuMzU1LCAxIi8+PGFuaW1hdGVUcmFuc2Zvcm0gaWQ9ImE4IiBhdHRyaWJ1dGVUeXBlPSJYTUwiIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiBmcm9tPSIxODAgMjUgMjUiIHRvPSIzNjAgMjUgMjUiIGR1cj0iNzUwbXMiIGJlZ2luPSJhNy5lbmQiIGNhbGNNb2RlPSJzcGxpbmUiIGtleVRpbWVzPSIwOzEiIGtleVNwbGluZXM9IjAuMjE1LCAwLjYxLCAwLjM1NSwgMSIvPjwvcGF0aD48cGF0aCBkPSJNMjUgNTBhMjUgMjUgMCAxIDAgMC01MCIgc3Ryb2tlLWRhc2hhcnJheT0iNzkiIHN0cm9rZT0iI2FhYSIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiIGZpbGw9Im5vbmUiPjxhbmltYXRlIGF0dHJpYnV0ZVR5cGU9IlhNTCIgYXR0cmlidXRlTmFtZT0ic3Ryb2tlLWRhc2hvZmZzZXQiIGZyb209IjkiIHRvPSI3NiIgZHVyPSI3NTBtcyIgYmVnaW49IjBzOyBhMi5lbmQiIGZpbGw9ImZyZWV6ZSIgY2FsY01vZGU9InNwbGluZSIga2V5VGltZXM9IjA7MSIga2V5U3BsaW5lcz0iMC4yMTUsIDAuNjEsIDAuMzU1LCAxIi8+PGFuaW1hdGUgYXR0cmlidXRlVHlwZT0iWE1MIiBhdHRyaWJ1dGVOYW1lPSJzdHJva2UtZGFzaG9mZnNldCIgZnJvbT0iNzYiIHRvPSI5IiBkdXI9Ijc1MG1zIiBiZWdpbj0iYTEuZW5kIiBmaWxsPSJmcmVlemUiIGNhbGNNb2RlPSJzcGxpbmUiIGtleVRpbWVzPSIwOzEiIGtleVNwbGluZXM9IjAuMjE1LCAwLjYxLCAwLjM1NSwgMSIvPjxhbmltYXRlIGF0dHJpYnV0ZVR5cGU9IlhNTCIgYXR0cmlidXRlTmFtZT0ic3Ryb2tlLXdpZHRoIiBmcm9tPSI0IiB0bz0iOCIgZHVyPSI3NTBtcyIgYmVnaW49IjBzOyBhNC5lbmQiIGZpbGw9ImZyZWV6ZSIgY2FsY01vZGU9InNwbGluZSIga2V5VGltZXM9IjA7MSIga2V5U3BsaW5lcz0iMC4yMTUsIDAuNjEsIDAuMzU1LCAxIi8+PGFuaW1hdGUgYXR0cmlidXRlVHlwZT0iWE1MIiBhdHRyaWJ1dGVOYW1lPSJzdHJva2Utd2lkdGgiIGZyb209IjgiIHRvPSI0IiBkdXI9Ijc1MG1zIiBiZWdpbj0iYTMuZW5kIiBmaWxsPSJmcmVlemUiIGNhbGNNb2RlPSJzcGxpbmUiIGtleVRpbWVzPSIwOzEiIGtleVNwbGluZXM9IjAuMjE1LCAwLjYxLCAwLjM1NSwgMSIvPjxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZVR5cGU9IlhNTCIgYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIGZyb209IjAgMjUgMjUiIHRvPSIwIDI1IDI1IiBkdXI9Ijc1MG1zIiBiZWdpbj0iMDsgYTguZW5kIiBjYWxjTW9kZT0ic3BsaW5lIiBrZXlUaW1lcz0iMDsxIiBrZXlTcGxpbmVzPSIwLjIxNSwgMC42MSwgMC4zNTUsIDEiLz48YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVUeXBlPSJYTUwiIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiBmcm9tPSIwIDI1IDI1IiB0bz0iMTgwIDI1IDI1IiBkdXI9Ijc1MG1zIiBiZWdpbj0iYTUuZW5kIiBjYWxjTW9kZT0ic3BsaW5lIiBrZXlUaW1lcz0iMDsxIiBrZXlTcGxpbmVzPSIwLjIxNSwgMC42MSwgMC4zNTUsIDEiLz48YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVUeXBlPSJYTUwiIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiBmcm9tPSIxODAgMjUgMjUiIHRvPSIxODAgMjUgMjUiIGR1cj0iNzUwbXMiIGJlZ2luPSJhNi5lbmQiIGNhbGNNb2RlPSJzcGxpbmUiIGtleVRpbWVzPSIwOzEiIGtleVNwbGluZXM9IjAuMjE1LCAwLjYxLCAwLjM1NSwgMSIvPjxhbmltYXRlVHJhbnNmb3JtIGlkPSJhOCIgYXR0cmlidXRlVHlwZT0iWE1MIiBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIHR5cGU9InJvdGF0ZSIgZnJvbT0iMTgwIDI1IDI1IiB0bz0iMzYwIDI1IDI1IiBkdXI9Ijc1MG1zIiBiZWdpbj0iYTcuZW5kIiBjYWxjTW9kZT0ic3BsaW5lIiBrZXlUaW1lcz0iMDsxIiBrZXlTcGxpbmVzPSIwLjIxNSwgMC42MSwgMC4zNTUsIDEiLz48L3BhdGg+PGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlVHlwZT0iWE1MIiBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIHR5cGU9InJvdGF0ZSIgZnJvbT0iMCAyNSAyNSIgdG89IjM2MCAyNSAyNSIgZHVyPSI2NzUwbXMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIi8+PC9nPjwvc3ZnPg==")
+ }
+
+ .yvp-loading-screen {
+ display: none;
+ }
+
+ .yvp-loading-screen .yvp-loading-spinner {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ background-size: 100% 100%;
+ max-width: 60px;
+ max-height: 60px;
+ width: 60px;
+ height: 60px;
+ margin-top: -30px;
+ margin-left: -30px;
+ visibility: hidden;
+ transition: visibility 0s linear 500ms;
+ z-index: 20
+ }
+
+ .yvp-loading-screen.yvp-show-spinner .yvp-loading-spinner {
+ visibility: visible
+ }
+
+ .yvp-flag-loading .yvp-loading-screen,
+ .yvp-flag-switching .yvp-loading-screen {
+ display: block
+ }
+
+ .yvp-state-blocked .yvp-loading-screen {
+ display: none
+ }
+ </style>
+ <style type="text/css">
+ .strip-animate {
+ -webkit-transition: left 420ms cubic-bezier(0, .2, .1, 1);
+ -moz-transition: left 420ms cubic-bezier(0, .2, .1, 1);
+ -o-transition: left 420ms cubic-bezier(0, .2, .1, 1);
+ transition: left 420ms cubic-bezier(0, .2, .1, 1)
+ }
+
+ .yvp-pl-loader {
+ display: none;
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ margin: auto;
+ width: 32px;
+ height: 32px;
+ background-size: 100%
+ }
+
+ .yvp-pl-loader-bg {
+ background-color: rgba(0, 0, 0, 0.3);
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ top: 0;
+ width: 100%;
+ display: none
+ }
+
+ .yvp-pl-loading .yvp-pl-loader,
+ .yvp-pl-loading .yvp-pl-loader-bg {
+ display: block
+ }
+
+ .yvp-playlist-pg-btn {
+ width: 24px;
+ height: 24px;
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODgiIGhlaWdodD0iODgiIHZpZXdCb3g9IjAgMCA4OCA4OCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+cGFnZS1iYWNrPC90aXRsZT48cGF0aCBkPSJNMzkuNDY1IDQzLjk1NmwxOS4xNS0xOS41MmMxLjQ0LTEuNDcgMS40NC0zLjg2IDAtNS4zMzItLjctLjcxMi0xLjYyOC0xLjEwNC0yLjYxNi0xLjEwNC0uOTkgMC0xLjkyLjM5Mi0yLjYxOCAxLjEwNGwtMjQuMzEgMjQuNzgtLjA3Mi4wNzIgMjQuMzggMjQuODVjLjcuNzEyIDEuNjMgMS4xMDQgMi42MTcgMS4xMDQuOTg1IDAgMS45MTUtLjM5MiAyLjYxNi0xLjEwNCAxLjQ0LTEuNDcgMS40NC0zLjg2MyAwLTUuMzMzTDM5LjQ2NSA0My45NTYiIGZpbGw9IiNGRkYiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==");
+ background-position: center;
+ background-repeat: no-repeat;
+ background-size: 100%;
+ position: absolute;
+ top: 55px;
+ cursor: pointer;
+ z-index: 10;
+ opacity: .8;
+ left: 21px;
+ }
+
+ .yvp-playlist-pg-btn:hover {
+ opacity: 1
+ }
+
+ .yvp-playlist-pg-btn.disabled {
+ opacity: .4;
+ cursor: default
+ }
+
+ .yvp-playlist-pg-btn.yvp-playlist-pg-btn-next {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODgiIGhlaWdodD0iODgiIHZpZXdCb3g9IjAgMCA4OCA4OCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+cGFnZS1uZXh0PC90aXRsZT48cGF0aCBkPSJNNDkuMDE4IDQ0LjExOGwtMTkuMTUgMTkuNTE4Yy0xLjQ0IDEuNDctMS40NCAzLjg2MyAwIDUuMzMzLjcuNzEgMS42MjggMS4xMDMgMi42MTYgMS4xMDMuOTkgMCAxLjkxOC0uMzkyIDIuNjE3LTEuMTA0bDI0LjMxLTI0Ljc4LjA3My0uMDcyLTI0LjM4LTI0Ljg1Yy0uNy0uNzEzLTEuNjMtMS4xMDUtMi42MTctMS4xMDUtLjk4NSAwLTEuOTE1LjM5Mi0yLjYxNiAxLjEwNS0xLjQ0IDEuNDctMS40NCAzLjg2MyAwIDUuMzMybDE5LjE0OCAxOS41MTgiIGZpbGw9IiNGRkYiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==");
+ right: 21px;
+ left: auto
+ }
+
+ .yvp-playlist-strip {
+ position: absolute;
+ left: 38px;
+ right: 24px;
+ overflow: hidden
+ }
+
+ .yvp-playlist-strip-list {
+ list-style-type: none;
+ position: relative;
+ left: 0;
+ white-space: nowrap
+ }
+
+ .yvp-pl-meta {
+ opacity: 0;
+ position: absolute;
+ left: 8px;
+ right: 8px;
+ color: #fff;
+ bottom: 6px;
+ overflow: hidden
+ }
+
+ .yvp-pl-title {
+ overflow: hidden;
+ line-height: 16px;
+ -webkit-line-clamp: 2;
+ text-overflow: ellipsis;
+ max-height: 32px;
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ font-size: 13px;
+ vertical-align: bottom;
+ white-space: normal
+ }
+
+ .yvp-pl-provider {
+ display: none
+ }
+
+ .yvp-playlist-item-watched {
+ display: none;
+ width: 126px;
+ top: 0;
+ position: absolute;
+ height: 70px;
+ text-align: center;
+ vertical-align: center;
+ background: rgba(18, 23, 23, 0.75);
+ }
+
+ .yvp-playlist-item-watched.yvp-show {
+ display: block
+ }
+
+ .yvp-playlist-item-watched.yvp-hide {
+ display: none
+ }
+
+ .yvp-watched {
+ font-size: 11px;
+ overflow: hidden;
+ color: #9ea2af;
+ font-style: italic;
+ font-family: Helvetica Neue, Helvetica, helvetica, arial, sans-serif;
+ line-height: 16px;
+ white-space: normal;
+ text-overflow: ellipsis;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ -webkit-transform: translate(-50%, -50%);
+ -moz-transform: translate(-50%, -50%);
+ -ms-transform: translate(-50%, -50%);
+ -o-transform: translate(-50%, -50%);
+ transform: translate(-50%, -50%)
+ }
+
+ .yvp-playlist-icon {
+ display: inline-block;
+ vertical-align: top;
+ width: 14px;
+ height: 14px;
+ }
+
+ .yvp-playlist-icon.item {
+ opacity: 1;
+ margin-right: 5px
+ }
+
+ .yvp-playlist-icon.section {
+ opacity: .6;
+ margin-right: 8px
+ }
+
+ .yvp-playlist-mode-hidden {
+ position: absolute;
+ left: -16px;
+ right: -16px;
+ height: auto;
+ bottom: 3000px;
+ opacity: 0;
+ z-index: -20;
+ -webkit-transition: opacity .3s ease-in-out;
+ -moz-transition: opacity .3s ease-in-out;
+ -o-transition: opacity .3s ease-in-out;
+ transition: opacity .3s ease-in-out;
+ }
+
+ .yvp-playlist-mode-hidden .yvp-upnext-title {
+ position: absolute;
+ left: 34px;
+ font-family: Helvetica, helvetica, arial, sans-serif;
+ font-size: 10px;
+ letter-spacing: .3px;
+ line-height: 15px;
+ text-transform: uppercase;
+ color: #fff
+ }
+
+ .yvp-playlist-mode-hidden .yvp-playlist-strip {
+ top: 20px;
+ left: 34px;
+ right: 34px
+ }
+
+ .yvp-playlist-mode-hidden .yvp-playlist-pg-btn {
+ top: 43px;
+ left: 10px;
+ }
+
+ .yvp-playlist-mode-hidden .yvp-playlist-pg-btn.yvp-playlist-pg-btn-next {
+ right: 10px;
+ left: auto
+ }
+
+ .yvp-playlist-mode-hidden .yvp-pl-loader {
+ top: 36px;
+ left: 50%
+ }
+
+ .yvp-playlist-mode-hidden .yvp-playlist-item {
+ width: 126px;
+ height: 70px;
+ display: inline-block;
+ margin-right: 14px;
+ position: relative;
+ cursor: pointer;
+ overflow: hidden;
+ -webkit-transform: translateX(24px) scale(.9, .9);
+ -moz-transform: translateX(24px) scale(.9, .9);
+ -ms-transform: translateX(24px) scale(.9, .9);
+ -o-transform: translateX(24px) scale(.9, .9);
+ transform: translateX(24px) scale(.9, .9);
+ -webkit-transition: transform 420ms cubic-bezier(0, .4, .1, 1);
+ -moz-transition: transform 420ms cubic-bezier(0, .4, .1, 1);
+ -o-transition: transform 420ms cubic-bezier(0, .4, .1, 1);
+ transition: transform 420ms cubic-bezier(0, .4, .1, 1);
+ }
+
+ .yvp-playlist-mode-hidden .yvp-playlist-item.yvp-hide {
+ display: none
+ }
+
+ .yvp-playlist-mode-hidden .yvp-playlist-item .yvp-playlist-item-gradient {
+ height: 100%;
+ top: 0;
+ background-image: -webkit-linear-gradient(180deg, rgba(18, 23, 23, 0) 0%, rgba(18, 23, 23, 0.2) 80%, rgba(18, 23, 23, 0.8) 100%);
+ background-image: -o-linear-gradient(180deg, rgba(18, 23, 23, 0) 0%, rgba(18, 23, 23, 0.2) 80%, rgba(18, 23, 23, 0.8) 100%);
+ background-image: linear-gradient(180deg, rgba(18, 23, 23, 0) 0%, rgba(18, 23, 23, 0.2) 80%, rgba(18, 23, 23, 0.8) 100%)
+ }
+
+ .yvp-playlist-mode-hidden .yvp-playlist-item .yvp-pl-meta {
+ top: 0
+ }
+
+ .yvp-playlist-mode-hidden .yvp-playlist-item .yvp-playlist-item-image {
+ width: 126px;
+ height: 70px;
+ overflow: hidden
+ }
+
+ .yvp-playlist-mode-hidden .yvp-playlist-item .yvp-pl-title,
+ .yvp-playlist-mode-hidden .yvp-playlist-item .yvp-now-playing {
+ display: none;
+ font-size: 12px;
+ color: #fff;
+ letter-spacing: 0;
+ max-height: 48px;
+ line-height: 16px;
+ margin-left: 8px;
+ margin-right: 8px;
+ margin-top: 10px;
+ opacity: 0;
+ }
+
+ .yvp-playlist-mode-hidden .yvp-playlist-item .yvp-pl-title.yvp-show,
+ .yvp-playlist-mode-hidden .yvp-playlist-item .yvp-now-playing.yvp-show {
+ opacity: 1;
+ display: block
+ }
+
+ .yvp-playlist-mode-hidden .yvp-playlist-item .yvp-playlist-border {
+ display: none;
+ height: 70px;
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 5px;
+ background-color: #188fff
+ }
+
+ .yvp-playlist-mode-hidden .yvp-playlist-item.yvp-currently-playing .yvp-playlist-border {
+ display: block
+ }
+
+ .yvp-playlist-mode-hidden .yvp-playlist-item-gradient {
+ position: absolute;
+ height: 22px;
+ width: 100%;
+ bottom: 0;
+ opacity: 1;
+ background-image: -webkit-linear-gradient(180deg, rgba(18, 23, 23, 0) 0%, rgba(18, 23, 23, 0.2) 35%, rgba(18, 23, 23, 0.8) 100%);
+ background-image: -o-linear-gradient(180deg, rgba(18, 23, 23, 0) 0%, rgba(18, 23, 23, 0.2) 35%, rgba(18, 23, 23, 0.8) 100%);
+ background-image: linear-gradient(180deg, rgba(18, 23, 23, 0) 0%, rgba(18, 23, 23, 0.2) 35%, rgba(18, 23, 23, 0.8) 100%)
+ }
+
+ .yvp-playlist-mode-hidden .yvp-pl-section-label {
+ display: none
+ }
+
+ .yvp-playlist-mode-hidden .yvp-pl-meta {
+ position: absolute;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ opacity: 1;
+ color: #fff;
+ overflow: hidden
+ }
+
+ .yvp-playlist-mode-hidden .yvp-pl-dur {
+ display: block;
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ padding: 4px 7px;
+ background: rgba(18, 23, 23, 0.5);
+ color: #fff;
+ text-shadow: 0 0 2px rgba(0, 0, 0, 0);
+ font-size: 12px;
+ font-weight: 400;
+ line-height: 14px
+ }
+
+ .yvp-playlist-mode-hidden .yvp-playlist-item-gradient-duration {
+ height: 50px
+ }
+
+ .yvp-playlist-mode-hidden.yvp-hide-playlist {
+ visibility: hidden
+ }
+
+ .yvp-playlist-mode-bottom {
+ position: relative;
+ height: 83px;
+ border: 1px solid rgba(255, 255, 255, 0.2);
+ -webkit-transition: opacity .3s ease-in-out;
+ -moz-transition: opacity .3s ease-in-out;
+ -o-transition: opacity .3s ease-in-out;
+ transition: opacity .3s ease-in-out;
+ }
+
+ .yvp-playlist-mode-bottom .yvp-playlist-strip {
+ position: relative;
+ height: 83px;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ margin: 0 24px 5px 24px
+ }
+
+ .yvp-playlist-mode-bottom .yvp-playlist-pg-btn {
+ top: 30px;
+ left: 0;
+ }
+
+ .yvp-playlist-mode-bottom .yvp-playlist-pg-btn.yvp-playlist-pg-btn-next {
+ right: 0;
+ left: auto
+ }
+
+ .yvp-playlist-mode-bottom .yvp-pl-loader {
+ top: 30px;
+ left: 50%
+ }
+
+ .yvp-playlist-mode-bottom .yvp-playlist-strip-list {
+ margin-top: 5px
+ }
+
+ .yvp-playlist-mode-bottom .yvp-playlist-item {
+ width: 130px;
+ height: 73px;
+ display: inline-block;
+ margin-right: 14px;
+ position: relative;
+ cursor: pointer;
+ overflow: hidden;
+ border-bottom: 5px solid transparent;
+ }
+
+ .yvp-playlist-mode-bottom .yvp-playlist-item.yvp-currently-playing {
+ border-bottom: 5px solid #188fff
+ }
+
+ .yvp-playlist-mode-bottom .yvp-playlist-item .yvp-playlist-item-image {
+ width: 130px;
+ height: 73px
+ }
+
+ .yvp-playlist-mode-bottom .yvp-playlist-item-gradient {
+ position: absolute;
+ height: 22px;
+ width: 100%;
+ bottom: 0;
+ opacity: 1;
+ background-image: -webkit-linear-gradient(180deg, rgba(18, 23, 23, 0) 0%, rgba(18, 23, 23, 0.2) 35%, rgba(18, 23, 23, 0.8) 100%);
+ background-image: -o-linear-gradient(180deg, rgba(18, 23, 23, 0) 0%, rgba(18, 23, 23, 0.2) 35%, rgba(18, 23, 23, 0.8) 100%);
+ background-image: linear-gradient(180deg, rgba(18, 23, 23, 0) 0%, rgba(18, 23, 23, 0.2) 35%, rgba(18, 23, 23, 0.8) 100%)
+ }
+
+ .yvp-playlist-mode-bottom .yvp-pl-meta {
+ position: absolute;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ opacity: 1;
+ color: #fff;
+ overflow: hidden
+ }
+
+ .yvp-playlist-mode-bottom .yvp-pl-title,
+ .yvp-playlist-mode-bottom .yvp-now-playing {
+ display: none;
+ max-height: 32px;
+ font-size: 13px;
+ margin-left: 6px;
+ margin-right: 5px;
+ margin-bottom: 5px;
+ overflow: hidden;
+ line-height: 16px;
+ vertical-align: bottom;
+ white-space: normal;
+ text-overflow: ellipsis;
+ -webkit-line-clamp: 2;
+ -webkit-box-orient: vertical;
+ opacity: 0;
+ }
+
+ .yvp-playlist-mode-bottom .yvp-pl-title.yvp-show,
+ .yvp-playlist-mode-bottom .yvp-now-playing.yvp-show {
+ opacity: 1;
+ display: block
+ }
+
+ .yvp-playlist-mode-bottom .yvp-pl-dur {
+ display: block;
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ padding: 4px 7px;
+ background: rgba(18, 23, 23, 0.5);
+ color: #fff;
+ text-shadow: 0 0 2px rgba(0, 0, 0, 0);
+ font-size: 12px;
+ font-weight: 400;
+ line-height: 14px
+ }
+
+ .yvp-playlist-mode-bottom .yvp-playlist-item-gradient-duration {
+ height: 50px
+ }
+
+ .yvp-playlist-mode-bottom.yvp-hide-playlist {
+ visibility: hidden
+ }
+
+ .yvp-playlist-mode-right {
+ display: block;
+ height: 100%;
+ width: 318px;
+ position: absolute;
+ top: 0;
+ right: 0;
+ border: 1px solid rgba(255, 255, 255, 0.2);
+ -webkit-transition: opacity .3s ease-in-out;
+ -moz-transition: opacity .3s ease-in-out;
+ -o-transition: opacity .3s ease-in-out;
+ transition: opacity .3s ease-in-out;
+ }
+
+ .yvp-playlist-mode-right ::-webkit-scrollbar-track {
+ -webkit-box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.3);
+ border-radius: 5px;
+ background-color: transparent
+ }
+
+ .yvp-playlist-mode-right ::-webkit-scrollbar {
+ background-color: transparent;
+ width: 5px
+ }
+
+ .yvp-playlist-mode-right ::-webkit-scrollbar-thumb {
+ border-radius: 5px;
+ -webkit-box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.3)
+ }
+
+ .yvp-playlist-mode-right .yvp-playlist-strip {
+ position: relative;
+ height: 100%;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0
+ }
+
+ .yvp-playlist-mode-right .yvp-playlist-pg-btn {
+ display: none
+ }
+
+ .yvp-playlist-mode-right .yvp-pl-loader {
+ top: 49%;
+ left: 49%
+ }
+
+ .yvp-playlist-mode-right .yvp-playlist-strip-list {
+ height: 100%;
+ margin-left: 18px;
+ overflow-y: scroll
+ }
+
+ .yvp-playlist-mode-right .yvp-playlist-item:first-child {
+ border-top: 0 solid transparent
+ }
+
+ .yvp-playlist-mode-right .yvp-playlist-item:last-child {
+ border-bottom: 0 solid transparent
+ }
+
+ .yvp-playlist-mode-right .yvp-playlist-item {
+ height: 70px;
+ display: block;
+ margin-bottom: 18px;
+ position: relative;
+ cursor: pointer;
+ overflow-x: visible;
+ border-bottom: 0 solid transparent;
+ }
+
+ .yvp-playlist-mode-right .yvp-playlist-item.yvp-currently-playing .yvp-pl-meta {
+ color: #fff;
+ background-color: rgba(255, 255, 255, 0.06)
+ }
+
+ .yvp-playlist-mode-right .yvp-playlist-item.yvp-currently-playing .yvp-playlist-border {
+ display: block
+ }
+
+ .yvp-playlist-mode-right .yvp-playlist-item.yvp-currently-playing .yvp-playlist-item-watched {
+ display: none
+ }
+
+ .yvp-playlist-mode-right .yvp-playlist-item:hover .yvp-pl-meta {
+ color: #fff;
+ background-color: rgba(255, 255, 255, 0.06)
+ }
+
+ .yvp-playlist-mode-right .yvp-playlist-item:hover .yvp-playlist-item-watched {
+ display: none
+ }
+
+ .yvp-playlist-mode-right .yvp-playlist-item-image {
+ display: block;
+ width: 126px;
+ height: 70px
+ }
+
+ .yvp-playlist-mode-right .yvp-playlist-border {
+ display: none;
+ height: 70px;
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 5px;
+ background-color: #188fff
+ }
+
+ .yvp-playlist-mode-right .yvp-pl-meta {
+ color: #fff;
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 126px;
+ padding: 4px 12px 0 12px;
+ font-size: 12px;
+ line-height: 16px;
+ overflow: hidden;
+ opacity: 1
+ }
+
+ .yvp-playlist-mode-right .yvp-pl-title {
+ display: block;
+ display: -webkit-box;
+ color: #fff;
+ margin-left: 6px;
+ margin-right: 5px;
+ margin-bottom: 5px;
+ margin-top: 0;
+ line-height: 16px;
+ overflow: hidden;
+ max-height: 32px;
+ opacity: 1;
+ font-size: 13px;
+ font-weight: 500;
+ -webkit-line-clamp: 3;
+ -webkit-box-orient: vertical;
+ vertical-align: bottom;
+ white-space: normal;
+ text-overflow: ellipsis;
+ }
+
+ .yvp-playlist-mode-right .yvp-pl-title.yvp-show {
+ opacity: 1;
+ display: block
+ }
+
+ .yvp-playlist-mode-right .yvp-now-playing {
+ display: none
+ }
+
+ .yvp-playlist-mode-right .yvp-pl-section-label {
+ display: none;
+ color: #9ea2af;
+ margin: 16px 8px 14px 0;
+ line-height: 16px;
+ overflow: hidden;
+ max-height: 16px;
+ opacity: 0;
+ font-size: 13px;
+ font-weight: 500;
+ -webkit-line-clamp: 3;
+ -webkit-box-orient: vertical;
+ vertical-align: bottom;
+ white-space: normal;
+ text-overflow: ellipsis;
+ }
+
+ .yvp-playlist-mode-right .yvp-pl-section-label.yvp-show {
+ opacity: 1;
+ display: block
+ }
+
+ .yvp-playlist-mode-right .yvp-pl-section-label:not(:first-child) {
+ width: 100%;
+ padding-top: 16px;
+ border-top: 1px solid #26282a
+ }
+
+ .yvp-playlist-mode-right .yvp-pl-provider {
+ display: block;
+ color: #9ea2af;
+ font-size: 11px;
+ margin: 0;
+ text-overflow: ellipsis;
+ overflow: hidden
+ }
+
+ .yvp-playlist-mode-right .yvp-playlist-item-gradient {
+ position: absolute;
+ height: 22px;
+ width: 100%;
+ bottom: 0;
+ opacity: 1;
+ background-image: -webkit-linear-gradient(180deg, rgba(18, 23, 23, 0) 0%, rgba(18, 23, 23, 0.2) 35%, rgba(18, 23, 23, 0.8) 100%);
+ background-image: -o-linear-gradient(180deg, rgba(18, 23, 23, 0) 0%, rgba(18, 23, 23, 0.2) 35%, rgba(18, 23, 23, 0.8) 100%);
+ background-image: linear-gradient(180deg, rgba(18, 23, 23, 0) 0%, rgba(18, 23, 23, 0.2) 35%, rgba(18, 23, 23, 0.8) 100%)
+ }
+
+ .yvp-playlist-mode-right .yvp-pl-dur {
+ display: block;
+ position: absolute;
+ right: 169px;
+ bottom: 0;
+ padding: 4px 7px;
+ background: rgba(18, 23, 23, 0.5);
+ color: #fff;
+ text-shadow: 0 0 2px rgba(0, 0, 0, 0);
+ font-size: 12px;
+ font-weight: 400;
+ line-height: 14px
+ }
+
+ .yvp-playlist-mode-right .yvp-playlist-item-gradient-duration {
+ height: 50px
+ }
+
+ .yvp-playlist-mode-right.yvp-hide-playlist {
+ visibility: hidden
+ }
+
+ .yvp-playlist-mode-right.yvp-playlist-theme-light .yvp-pl-meta {
+ color: #000
+ }
+
+ .yvp-playlist-mode-right.yvp-playlist-theme-light .yvp-pl-title {
+ color: #000667
+ }
+
+ .yvp-playlist-mode-right.yvp-playlist-theme-light ::-webkit-scrollbar-thumb {
+ background-color: #ccc
+ }
+
+ .yvp-playlist-mode-right.yvp-playlist-theme-dark ::-webkit-scrollbar-thumb {
+ background-color: #464e56
+ }
+
+ .yvp-playlist-in-stream.yvp-playlist-theme-light ::-webkit-scrollbar-thumb,
+ .yvp-playlist-in-stream.yvp-playlist-theme-dark ::-webkit-scrollbar-thumb {
+ background-color: #ccc
+ }
+
+ .yvp-playlist-mode-bottom.yvp-playlist-theme-light,
+ .yvp-playlist-mode-right.yvp-playlist-theme-light {
+ background-color: #fff;
+ }
+
+ .yvp-playlist-mode-bottom.yvp-playlist-theme-light .yvp-playlist-pg-btn,
+ .yvp-playlist-mode-right.yvp-playlist-theme-light .yvp-playlist-pg-btn {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+cGFnZS1iYWNrLWJsYWNrPC90aXRsZT48cGF0aCBkPSJNMTUuNzE3IDYuNzM2Yy4zNzctLjM5Ny4zNzctMS4wNDIgMC0xLjQzOC0uMTgyLS4xOTItLjQyNS0uMjk4LS42ODMtLjI5OC0uMjU4IDAtLjUuMTA2LS42ODMuMjk4TDggMTEuOThsNi4zNSA2LjcyMmMuMTgzLjE5Mi40MjYuMjk4LjY4NC4yOTguMjU3IDAgLjUtLjEwNi42ODMtLjI5OC4zNzctLjM5Ny4zNzctMS4wNDIgMC0xLjQzOEwxMC43MTUgMTJsNS4wMDItNS4yNjR6IiBmaWxsPSIjMDAwIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=");
+ }
+
+ .yvp-playlist-mode-bottom.yvp-playlist-theme-light .yvp-playlist-pg-btn.yvp-playlist-pg-btn-next,
+ .yvp-playlist-mode-right.yvp-playlist-theme-light .yvp-playlist-pg-btn.yvp-playlist-pg-btn-next {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+cGFnZS1uZXh0PC90aXRsZT48cGF0aCBkPSJNOC4yODMgMTcuMjY0Yy0uMzc3LjM5Ny0uMzc3IDEuMDQyIDAgMS40MzguMTgyLjE5Mi40MjUuMjk4LjY4My4yOTguMjU4IDAgLjUtLjEwNi42ODMtLjI5OEwxNiAxMi4wMiA5LjY1IDUuMjk3QzkuNDY3IDUuMTA2IDkuMjI0IDUgOC45NjYgNWMtLjI1NyAwLS41LjEwNi0uNjgzLjI5OC0uMzc3LjM5Ny0uMzc3IDEuMDQyIDAgMS40MzhMMTMuMjg1IDEybC01LjAwMiA1LjI2NHoiIGZpbGw9IiMwMDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==")
+ }
+
+ .yvp-playlist-mode-bottom.yvp-playlist-theme-light .yvp-pl-loader-bg,
+ .yvp-playlist-mode-right.yvp-playlist-theme-light .yvp-pl-loader-bg {
+ background-color: rgba(0, 0, 0, 0.7)
+ }
+
+ .yvp-playlist-mode-bottom.yvp-playlist-theme-light .yvp-pl-meta,
+ .yvp-playlist-mode-right.yvp-playlist-theme-light .yvp-pl-meta {
+ color: #fff
+ }
+
+ .yvp-playlist-mode-bottom.yvp-playlist-theme-dark,
+ .yvp-playlist-mode-right.yvp-playlist-theme-dark {
+ background-color: #121717
+ }
+
+ .yvp-browser-desktop .yvp-hover-elem {
+ display: none;
+ opacity: .1;
+ position: absolute;
+ bottom: 28px;
+ width: 100%;
+ height: 100px;
+ left: 0
+ }
+
+ .yvp-browser-desktop .yvp-upnext-container:hover .yvp-hover-elem {
+ display: block;
+ background-color: rgba(0, 0, 0, 0)
+ }
+
+ .yvp-browser-desktop .yvp-upnext-container:hover .yvp-playlist-mode-hidden {
+ opacity: 1;
+ z-index: 10;
+ bottom: 140px
+ }
+
+ .yvp-browser-desktop .yvp-playlist-item .yvp-playlist-item-gradient {
+ opacity: 0
+ }
+
+ .yvp-browser-desktop .yvp-playlist-item:hover .yvp-playlist-item-gradient {
+ opacity: 1
+ }
+
+ .yvp-browser-desktop .yvp-playlist-item:hover .yvp-pl-meta {
+ opacity: 1
+ }
+
+ .yvp-browser-desktop .yvp-overlay-fuji {
+ opacity: 0;
+ }
+
+ .yvp-browser-desktop .yvp-overlay-fuji:hover {
+ opacity: 1;
+ }
+
+ .yvp-browser-desktop .yvp-overlay-fuji:hover .yvp-pl-meta {
+ opacity: 1
+ }
+
+ .yvp-browser-desktop .yvp-playlist-mode-hidden .yvp-playlist-item .yvp-playlist-item-gradient,
+ .yvp-browser-desktop .yvp-playlist-mode-bottom .yvp-playlist-item .yvp-playlist-item-gradient {
+ opacity: 1
+ }
+
+ .yvp-browser-desktop .yvp-playlist-mode-hidden .yvp-playlist-item.yvp-currently-playing .yvp-pl-dur,
+ .yvp-browser-desktop .yvp-playlist-mode-bottom .yvp-playlist-item.yvp-currently-playing .yvp-pl-dur {
+ opacity: 0
+ }
+
+ .yvp-browser-desktop .yvp-playlist-mode-hidden .yvp-playlist-item.yvp-currently-playing .yvp-playlist-item-watched,
+ .yvp-browser-desktop .yvp-playlist-mode-bottom .yvp-playlist-item.yvp-currently-playing .yvp-playlist-item-watched {
+ display: none
+ }
+
+ .yvp-browser-desktop .yvp-playlist-mode-hidden .yvp-playlist-item:hover .yvp-playlist-item-gradient,
+ .yvp-browser-desktop .yvp-playlist-mode-bottom .yvp-playlist-item:hover .yvp-playlist-item-gradient {
+ height: 100%;
+ -webkit-transition: opacity 200ms linear;
+ -moz-transition: opacity 200ms linear;
+ -o-transition: opacity 200ms linear;
+ transition: opacity 200ms linear;
+ background-image: -webkit-linear-gradient(180deg, rgba(18, 23, 23, 0.55) 0%, rgba(18, 23, 23, 0.55) 100%);
+ background-image: -o-linear-gradient(180deg, rgba(18, 23, 23, 0.55) 0%, rgba(18, 23, 23, 0.55) 100%);
+ background-image: linear-gradient(180deg, rgba(18, 23, 23, 0.55) 0%, rgba(18, 23, 23, 0.55) 100%)
+ }
+
+ .yvp-browser-desktop .yvp-playlist-mode-hidden .yvp-playlist-item:hover .yvp-playlist-item-image,
+ .yvp-browser-desktop .yvp-playlist-mode-bottom .yvp-playlist-item:hover .yvp-playlist-item-image {
+ -webkit-transform: scale(1.2, 1.2);
+ -moz-transform: scale(1.2, 1.2);
+ -ms-transform: scale(1.2, 1.2);
+ -o-transform: scale(1.2, 1.2);
+ transform: scale(1.2, 1.2);
+ -webkit-transition: transform 2.5s cubic-bezier(.1, .2, .6, 1);
+ -moz-transition: transform 2.5s cubic-bezier(.1, .2, .6, 1);
+ -o-transition: transform 2.5s cubic-bezier(.1, .2, .6, 1);
+ transition: transform 2.5s cubic-bezier(.1, .2, .6, 1)
+ }
+
+ .yvp-browser-desktop .yvp-playlist-mode-hidden .yvp-playlist-item:hover .yvp-pl-title,
+ .yvp-browser-desktop .yvp-playlist-mode-bottom .yvp-playlist-item:hover .yvp-pl-title {
+ display: block;
+ display: -webkit-box;
+ -webkit-line-clamp: 3;
+ -webkit-box-orient: vertical;
+ opacity: 1;
+ -webkit-transition: opacity 200ms linear;
+ -moz-transition: opacity 200ms linear;
+ -o-transition: opacity 200ms linear;
+ transition: opacity 200ms linear
+ }
+
+ .yvp-browser-desktop .yvp-playlist-mode-hidden .yvp-playlist-item:hover .yvp-pl-dur,
+ .yvp-browser-desktop .yvp-playlist-mode-bottom .yvp-playlist-item:hover .yvp-pl-dur {
+ opacity: 0
+ }
+
+ .yvp-browser-desktop .yvp-playlist-mode-hidden .yvp-playlist-item:hover .yvp-playlist-item-watched,
+ .yvp-browser-desktop .yvp-playlist-mode-bottom .yvp-playlist-item:hover .yvp-playlist-item-watched {
+ display: none
+ }
+
+ .yvp-browser-desktop .yvp-playlist-mode-hidden .yvp-playlist-item.yvp-currently-playing .yvp-pl-title,
+ .yvp-browser-desktop .yvp-playlist-mode-bottom .yvp-playlist-item.yvp-currently-playing .yvp-pl-title {
+ display: none
+ }
+
+ .yvp-browser-desktop .yvp-playlist-mode-hidden .yvp-playlist-item.yvp-currently-playing .yvp-playlist-item-gradient {
+ width: calc(100% - 5px);
+ width: -moz-calc(100% - 5px);
+ width: -webkit-calc(100% - 5px);
+ width: -o-calc(100% - 5px);
+ left: 5px;
+ background-image: -webkit-linear-gradient(180deg, rgba(18, 23, 23, 0.55) 0%, rgba(18, 23, 23, 0.55) 100%);
+ background-image: -o-linear-gradient(180deg, rgba(18, 23, 23, 0.55) 0%, rgba(18, 23, 23, 0.55) 100%);
+ background-image: linear-gradient(180deg, rgba(18, 23, 23, 0.55) 0%, rgba(18, 23, 23, 0.55) 100%)
+ }
+
+ .yvp-browser-desktop .yvp-playlist-mode-right .yvp-playlist-item .yvp-playlist-item-gradient {
+ position: static;
+ opacity: 1;
+ width: 0
+ }
+
+ .yvp-browser-desktop.yvp-ie9 .yvp-upnext-container:hover .yvp-playlist-mode-hidden {
+ opacity: 1;
+ z-index: 10;
+ bottom: 140px;
+ background-color: rgba(0, 0, 0, 0)
+ }
+
+ .yvp-browser-desktop.yvp-ie9 .yvp-upnext-container:hover .yvp-playlist-item-gradient {
+ filter: progid: DXImageTransform.Microsoft.gradient(startColorStr=#00000000, endColorStr=#FF000000)
+ }
+
+ .yvp-browser-mobile .yvp-hover-elem {
+ display: none
+ }
+
+ .yvp-browser-mobile .yvp-upnext-playlist.open .yvp-hover-elem {
+ display: none
+ }
+
+ .yvp-browser-mobile .yvp-upnext-playlist.open .yvp-playlist-mode-hidden {
+ opacity: 1;
+ z-index: 10;
+ bottom: 45px
+ }
+
+ .yvp-browser-mobile .yvp-playlist-item-gradient {
+ opacity: 1
+ }
+
+ .yvp-browser-mobile .yvp-pl-meta {
+ opacity: 1
+ }
+
+ .yvp-browser-mobile .yvp-playlist-strip {
+ overyflow-y: hidden;
+ overflow-x: scroll;
+ -webkit-overflow-scrolling: touch
+ }
+
+ .yvp-browser-mobile .yvp-playlist-pg-btn {
+ display: none
+ }
+
+ .yvp-state-end-screen .yvp-start-screen {
+ display: block
+ }
+
+ .yvp-state-end-screen .yvp-start-screen-bar-wrapper {
+ display: none
+ }
+
+ .yvp-state-end-screen .yvp-start-screen-button {
+ display: none
+ }
+
+ .yvp-state-end-screen .yvp-end-screen {
+ z-index: 22;
+ background-color: rgba(0, 0, 0, 0.85);
+ }
+
+ .yvp-state-end-screen .yvp-end-screen.yvp-end-replay {
+ background-color: rgba(18, 23, 23, 0.6)
+ }
+
+ .yvp-state-end-screen .yvp-end-rep-icon {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0xNi44NyAxNS41NDVjLS4xMS0uMTk3LS4yNzQtLjM0NS0uNDctLjQyNS0uMjA0LS4wOS0uNDUtLjA5LS42MS0uMDQtLjEwNy4wMjUtLjIwNS4wNjgtLjMyNy4xNDctLjA3Mi4wNS0uMTcyLjE1LS4yMTYuMjA0LS43NzYgMS4wMTgtMS45OTcgMS42MjctMy4yNjYgMS42MjctMi4yNDQgMC00LjA3LTEuODItNC4wNy00LjA1MyAwLTIuMTMzIDEuNzg3LTMuOTQ3IDMuOTgtNC4wNDNsLjUyLS4wMTNWN2wtLjU1Mi4wMTNDOC41NzMgNy4xMyA2IDkuNzYgNiAxMy4wMDNjMCAzLjMxMiAyLjY5MyA2LjAwNCA2LjAwNSA2LjAwNCAxLjg2NCAwIDMuNTktLjg0NSA0LjctMi4yOGwuMDctLjA5Yy4wMy0uMDQyLjA1My0uMDgyLjA3LS4xMDguMTA0LS4xNjguMTU1LS4zMzQuMTU1LS41MSAwLS4xNi0uMDQzLS4zMi0uMTMtLjQ3NSIvPjxwYXRoIGQ9Ik0xMi4zMTIgMTEuMDA4Yy0uMTcyIDAtLjMxMi0uMTUtLjMxMi0uMzIzVjUuMzIzYzAtLjE4LjEzOC0uMzIzLjMxMi0uMzIzLjA2OCAwIC4xMzIuMDI0LjE4NC4wNjNsNC4zNjUgMi42MWMuMTUyLjA5LjIwNC4yODYuMTE4LjQ0LS4wMjIuMDQtLjA1Mi4wNzUtLjA4Ni4xLS4wMTUuMDE0LS4wMzIuMDI3LS4wNS4wMzhsLTQuMzU1IDIuNzFjLS4wNS4wMy0uMTAzLjA0Ni0uMTU2LjA0OGgtLjAxOHoiLz48L2c+PC9zdmc+");
+ background-size: 100%;
+ opacity: .6;
+ width: 80px;
+ height: 98px;
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ margin: auto;
+ cursor: pointer
+ }
+
+ .yvp-state-end-screen.yvp-stream .yvp-end-rep-icon,
+ .yvp-state-end-screen.yvp-ministream .yvp-end-rep-icon {
+ display: none
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen {
+ position: absolute;
+ margin: auto;
+ left: 0;
+ right: 0;
+ height: 184px;
+ width: 512px;
+ top: 0;
+ bottom: 50px;
+ z-index: 10;
+ opacity: 1;
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen .yvp-playlist-pg-btn {
+ top: 74px;
+ left: -19px;
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen .yvp-playlist-pg-btn.yvp-playlist-pg-btn-next {
+ right: 0;
+ left: auto;
+ right: -15px
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen .yvp-playlist-strip {
+ position: absolute;
+ left: 18px;
+ right: 14px;
+ height: 100%;
+ bottom: 0
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen .yvp-playlist-strip-list {
+ height: 100%;
+ margin-right: 0;
+ width: 500px
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen .yvp-playlist-item {
+ width: 100%;
+ display: inline-block;
+ position: relative;
+ height: 100%
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen .yvp-pl-loader {
+ top: 35px;
+ left: 50%
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen .yvp-end-screen-fuji-grid {
+ width: 100%;
+ height: 100%;
+ list-style-type: none;
+ white-space: normal;
+ text-align: left;
+ overflow: hidden
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen .yvp-end-screen-fuji-tile {
+ position: relative;
+ width: 150px;
+ height: 84px;
+ cursor: pointer;
+ float: left;
+ margin-right: 10px;
+ overflow: hidden;
+ margin-bottom: 10px;
+ padding: 0
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen .yvp-end-screen-fuji-tile-image {
+ width: 151px
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen .yvp-overlay-fuji {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ color: #fff;
+ font-size: 13px;
+ line-height: 14px;
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen .yvp-overlay-fuji.yvp-overlay-fuji-up-next {
+ background-color: rgba(0, 0, 0, 0.6);
+ opacity: 1
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen .yvp-metadata-fuji {
+ position: absolute;
+ top: 30px;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.8))
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen .yvp-end-screen-up-next-box {
+ position: absolute;
+ top: 8px;
+ left: 8px;
+ font-size: 13px;
+ line-height: 14px;
+ text-align: left;
+ width: 80px
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen .yvp-end-screen-up-next-time {
+ position: relative;
+ margin-top: 6px;
+ display: inline-block;
+ left: 8px
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen .yvp-end-screen-up-next-text {
+ position: relative;
+ margin-top: 5px;
+ display: inline-block;
+ left: 19px
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen .yvp-end-screen-up-close {
+ position: relative;
+ left: 57px;
+ font-weight: 500;
+ font-size: 19px;
+ opacity: .6;
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen .yvp-end-screen-up-close:hover {
+ opacity: 1
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen.yvp-pl-two-col {
+ height: 84px;
+ width: 347px;
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen.yvp-pl-two-col .yvp-playlist-pg-btn {
+ top: 35px
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen.yvp-pl-two-col .yvp-playlist-strip-list {
+ width: 332px
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen.yvp-pl-one-col {
+ height: 84px;
+ width: 178px;
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen.yvp-pl-one-col .yvp-playlist-pg-btn {
+ top: 35px
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen.yvp-pl-one-col .yvp-playlist-strip-list {
+ width: 158px
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen.yvp-pl-three-col {
+ height: 284px;
+ width: 678px;
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen.yvp-pl-three-col .yvp-playlist-pg-btn {
+ top: 135px
+ }
+
+ .yvp-state-end-screen .yvp-playlist-mode-endscreen.yvp-pl-three-col .yvp-playlist-strip-list {
+ width: 666px
+ }
+
+ .yvp-browser-mobile.yvp-browser-playsinline .yvp-end-rep-icon {
+ display: block
+ }
+
+ .yvp-content div.yvp-end-screen-up-next-circle {
+ width: 20px;
+ height: 20px;
+ -moz-border-radius: 20px;
+ -webkit-border-radius: 20px;
+ border-radius: 20px;
+ border: 2px solid rgba(255, 255, 255, 0.9);
+ display: block;
+ position: absolute;
+ top: 0;
+ left: 0
+ }
+
+ .yvp-content div.yvp-end-screen-arc {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100px;
+ height: 100px;
+ border-radius: 100%;
+ border: 1px solid;
+ display: none
+ }
+
+ .yvp-playlist-in-stream.yvp-playlist-mode-right.yvp-playlist-theme-dark,
+ .yvp-playlist-in-stream.yvp-playlist-mode-right.yvp-playlist-theme-light {
+ background-color: #fff
+ }
+
+ .yvp-playlist-in-stream.yvp-playlist-mode-right {
+ width: 276px;
+ }
+
+ .yvp-playlist-in-stream.yvp-playlist-mode-right .yvp-playlist-strip-list {
+ margin-left: 16px
+ }
+
+ .yvp-playlist-in-stream.yvp-playlist-mode-right .yvp-playlist-item {
+ height: 72px;
+ margin-bottom: 20px;
+ }
+
+ .yvp-playlist-in-stream.yvp-playlist-mode-right .yvp-playlist-item .yvp-playlist-item-image {
+ width: 130px;
+ height: 73px
+ }
+
+ .yvp-playlist-in-stream.yvp-playlist-mode-right .yvp-playlist-item .yvp-pl-meta {
+ left: 130px
+ }
+
+ .yvp-playlist-in-stream.yvp-playlist-mode-right .yvp-playlist-item .yvp-pl-title {
+ color: #000667
+ }
+
+ .yvp-playlist-in-stream.yvp-playlist-mode-right .yvp-playlist-item .yvp-playlist-border {
+ height: 72px
+ }
+
+ .yvp-playlist-in-stream.yvp-playlist-mode-right .yvp-playlist-item .yvp-pl-dur {
+ right: 125px;
+ padding: 2px 6px;
+ color: #fff
+ }
+
+ .yvp-playlist-in-stream.yvp-playlist-mode-right .yvp-playlist-item .yvp-pl-provider {
+ display: none
+ }
+ </style>
+ <style type="text/css">
+ .yvp-content {
+ position: relative;
+ width: 100%;
+ height: 100%;
+ overflow: visible;
+ font-family: Helvetica Neue Regular, Helvetica Neue, helvetica, arial, sans-serif;
+ font-size: 16px;
+ text-align: initial;
+ cursor: default;
+ background-color: #000;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none
+ }
+
+ .yvp-content .yvp-main,
+ .yvp-content .yvp-playlist-container {
+ outline: none;
+ }
+
+ .yvp-content .yvp-main [tabindex],
+ .yvp-content .yvp-playlist-container [tabindex] {
+ outline: none
+ }
+
+ .yvp-content h3,
+ .yvp-content h4,
+ .yvp-content p,
+ .yvp-content label,
+ .yvp-content input,
+ .yvp-content div,
+ .yvp-content button,
+ .yvp-content img,
+ .yvp-content li,
+ .yvp-content ul {
+ margin: 0;
+ padding: 0;
+ border: 0
+ }
+
+ .yvp-main {
+ position: relative;
+ width: 100%;
+ height: 100%
+ }
+
+ .yvp-state-error .yvp-error-screen {
+ -webkit-user-select: text;
+ -moz-user-select: text;
+ -ms-user-select: text;
+ user-select: text;
+ display: block
+ }
+
+ .yvp-state-error .yvp-start-screen,
+ .yvp-state-error .yvp-end-screen,
+ .yvp-state-error .yvp-html5-video,
+ .yvp-state-error .yvp-end-screen-fuji {
+ display: none
+ }
+
+ .yvp-state-end-screen .yvp-end-screen,
+ .yvp-state-end-screen .yvp-end-screen-fuji {
+ display: block
+ }
+
+ .yvp-state-end-screen .yvp-error-screen,
+ .yvp-state-end-screen .yvp-html5-video {
+ display: none
+ }
+
+ .yvp-state-video .yvp-html5-video,
+ .yvp-state-blocked .yvp-html5-video,
+ .yvp-flag-playing.yvp-state-video.yvp-browser-iphone .yvp-html5-video {
+ display: block
+ }
+
+ .yvp-state-video .yvp-start-screen,
+ .yvp-state-blocked .yvp-start-screen,
+ .yvp-flag-playing.yvp-state-video.yvp-browser-iphone .yvp-start-screen,
+ .yvp-state-video .yvp-end-screen,
+ .yvp-state-blocked .yvp-end-screen,
+ .yvp-flag-playing.yvp-state-video.yvp-browser-iphone .yvp-end-screen,
+ .yvp-state-video .yvp-error-screen,
+ .yvp-state-blocked .yvp-error-screen,
+ .yvp-flag-playing.yvp-state-video.yvp-browser-iphone .yvp-error-screen,
+ .yvp-state-video .yvp-end-screen-fuji,
+ .yvp-state-blocked .yvp-end-screen-fuji,
+ .yvp-flag-playing.yvp-state-video.yvp-browser-iphone .yvp-end-screen-fuji {
+ display: none
+ }
+
+ .yvp-flag-casting .yvp-start-screen,
+ .yvp-flag-casting .yvp-end-screen,
+ .yvp-flag-casting .yvp-end-screen-fuji {
+ display: none
+ }
+
+ .yvp-state-start-screen .yvp-start-screen,
+ .yvp-state-video.yvp-browser-iphone .yvp-start-screen {
+ display: block
+ }
+
+ .yvp-state-start-screen .yvp-end-screen,
+ .yvp-state-video.yvp-browser-iphone .yvp-end-screen,
+ .yvp-state-start-screen .yvp-error-screen,
+ .yvp-state-video.yvp-browser-iphone .yvp-error-screen,
+ .yvp-state-start-screen .yvp-html5-video:not([playsinline]),
+ .yvp-state-video.yvp-browser-iphone .yvp-html5-video:not([playsinline]),
+ .yvp-state-start-screen .yvp-end-screen-fuji,
+ .yvp-state-video.yvp-browser-iphone .yvp-end-screen-fuji {
+ display: none
+ }
+
+ .yvp-state-start-screen .yvp-html5-video:not([playsinline]),
+ .yvp-state-video.yvp-browser-iphone .yvp-html5-video:not([playsinline]) {
+ top: -2000px
+ }
+
+ object.yvp-swf-not-ready.yvp-flash-video {
+ opacity: 0
+ }
+
+ .yvp-state-video {
+ z-index: 5
+ }
+
+ .yvp-content {
+ z-index: 0
+ }
+
+ .yvp-html5-video {
+ z-index: 5
+ }
+
+ .yvp-switching-canvas {
+ z-index: 15
+ }
+
+ .yvp-loading-screen .yvp-spinner-outer,
+ .yvp-loading-screen .yvp-spinner-inner {
+ z-index: 20
+ }
+
+ .yvp-flash-video {
+ position: absolute;
+ left: 0;
+ visibility: visible
+ }
+
+ .yvp-html5-video {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ top: 0;
+ cursor: pointer;
+ visibility: hidden
+ }
+
+ .yvp-flash-video.yvp-renderer-active,
+ .yvp-html5-video.yvp-renderer-active {
+ visibility: visible
+ }
+
+ .yvp-switching-canvas {
+ position: absolute
+ }
+
+ .yvp-start-screen,
+ .yvp-end-screen {
+ position: absolute;
+ height: 100%;
+ width: 100%;
+ background-color: #000;
+ cursor: pointer;
+ overflow: hidden
+ }
+
+ .yvp-nfl-branding-container {
+ width: 100%;
+ height: 36px;
+ position: relative;
+ z-index: 22;
+ background: #011832;
+ background: -moz-linear-gradient(left, #011832 0%, #103155 40%, #011832 100%);
+ background-image: -webkit-linear-gradient(left, #011832 0%, #103155 40%, #011832 100%);
+ background-image: -o-linear-gradient(left, #011832 0%, #103155 40%, #011832 100%);
+ background-image: linear-gradient(left, #011832 0%, #103155 40%, #011832 100%);
+ *background: #011832;
+ white-space: nowrap
+ }
+
+ .yvp-browser-mobile .yvp-nfl-branding-container {
+ height: 52px
+ }
+
+ .yvp-nfl-branding {
+ position: relative;
+ margin: 10px auto;
+ vertical-align: middle;
+ display: inline-block;
+ zoom: 1;
+ width: 30%
+ }
+
+ .yvp-browser-mobile .yvp-nfl-branding {
+ margin: 15px auto
+ }
+
+ .yvp-nfl-branding-container .yvp-nfl-brand-span {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCI+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTkuOTgzIDE5LjM4cy40MTctLjcyLjgyNC0xLjExMmMuNTc0LS41NSAxLjM5LS44OTcgMi40OS0xLjA1NiAxLjM4Mi0uMiAyLjM4NS0uNjcgMi45NzYtMS4zODIuNDc4LS41OC41NS0xLjE2Mi41NS0xLjQ1NlYyLjcyN2gtLjQ1NGMtLjU5LjQyLTEuNzE1Ljk5Ni0zLjE2LjY0QzEwLjcgMi43NSA5Ljk4Mi41ODggOS45ODIuNTg4UzkuMjY4IDIuNzUgNi43NiAzLjM2NWMtMS40NS4zNTctMi41NzQtLjIyLTMuMTYyLS42NGgtLjQ1MnYxMS42NDhjMCAuMjkzLjA3Mi44NzUuNTUgMS40NTYuNTkuNzEzIDEuNTkgMS4xOCAyLjk3NCAxLjM4MiAxLjEwMy4xNTggMS45MTcuNTA1IDIuNDkyIDEuMDU4LjQyMi40MDYuODIgMS4xMS44MiAxLjExIi8+PHBhdGggZmlsbD0iIzAxMzc2OSIgZD0iTTE2LjQxMyAzLjE4MnMtMS4zNzMgMS4wNjYtMy4zMDMuNTgzYy0yLjI1Mi0uNTYyLTMuMTI3LTIuMjUtMy4xMjctMi4yNXMtLjg3NCAxLjY4OC0zLjEyNSAyLjI1Yy0xLjkzLjQ4My0zLjMwMi0uNTgzLTMuMzAyLS41ODN2MTEuMTkyYzAgLjM4LjE2IDEuOTk1IDMuMTcyIDIuNDMyIDEuMTkuMTcyIDIuMDguNTU1IDIuNzIgMS4xNy4yMjguMjE4LjQwMy40NC41MzYuNjUuMTMzLS4yMS4zMDgtLjQzMi41NC0uNjUuNjM2LS42MTUgMS41MjUtLjk5OCAyLjcxNC0xLjE3IDMuMDE1LS40MzYgMy4xNzQtMi4wNSAzLjE3NC0yLjQzMlYzLjE4MnoiLz48cGF0aCBmaWxsPSIjRkZGIiBkPSJNOS45ODMgMTcuNDg2cy44NzUtMS4wOCAzLjE0Ni0xLjQzMmMyLjYwMy0uNCAyLjUyNi0xLjYyMiAyLjUyNi0xLjY4M1Y4LjUxTDQuMzEgOC41MXY1Ljg2YzAgLjA2My0uMDc1IDEuMjg1IDIuNTI3IDEuNjg1IDIuMjcyLjM1IDMuMTQ2IDEuNDMgMy4xNDYgMS40MyIvPjxwYXRoIGZpbGw9IiNENTBBMEEiIGQ9Ik03LjMzOCAxMi43OTN2LTIuNzg2bC0uMzUtLjE5N3YtLjcyNWgxLjU5NHYuNzI1bC0uMzMzLjE5N3Y1LjY4NmwtLjg1My0uMjU1LTEuMjMtMy42MzN2Mi4zOTNsLjM5LjN2Ljc0bC0xLjcxLS40MzZ2LS42MjdsLjM5LS4xNTZ2LTQuMDFsLS40LS4ydi0uNzI1aDEuMjk1TTEwLjI3MyAxNS4zNDRsLjM0LjQwN3YuNzI1bC0xLjY5My0uNjMzdi0uNjEzbC4zNzUtLjE1NnYtNS4wNjdsLS4zNzItLjE5di0uNzMyaDIuOTR2MS40NzNoLS42NDdsLS4xOTUtLjYwNGgtLjc0N3YxLjdoLjU2bC4yMi0uMzJoLjQ1MnYxLjUxaC0uNDVsLS4yMTQtLjMwNmgtLjU2N00xMi4xNDMgMTUuNTk4di0uNzIzbC40Mi0uMzQ1di00LjUyM2wtLjM2LS4xOXYtLjczMmgxLjY5M3YuNzMzbC0uMzMuMTl2NC4yNDJsLjcyOC0uMTk2LjEzNy0xLjExMmguN3YxLjg2Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTQuNjA1IDcuMzA4bC0uNTEyLS4zODVoLjYyOGwuMjA3LS41OTMuMjA4LjU5M2guNjI2bC0uNTEuMzg1LjE4Ny42MDUtLjUxLS4zNTgtLjUxLjM1OE02LjgzMyA3LjMwOGwtLjUxNS0uMzg1aC42MjhsLjIwNy0uNTkzLjIwOC41OTNoLjYyN2wtLjUxMy4zODUuMTkuNjA1LS41MS0uMzU4LS41MS4zNThNNC42MDUgNS4zbC0uNTEyLS4zODRoLjYyOGwuMjA3LS41OTQuMjA4LjU5NGguNjI2bC0uNTEuMzg1LjE4Ny42MDQtLjUxLS4zNi0uNTEuMzZNNi44MzMgNS4zbC0uNTE1LS4zODRoLjYyOGwuMjA3LS41OTQuMjA4LjU5NGguNjI3bC0uNTEzLjM4NS4xOS42MDQtLjUxLS4zNi0uNTEuMzZNMTUuNTUgNy45MTNsLS41MS0uMzU4LS41MS4zNTguMTktLjYwNS0uNTEyLS4zODVoLjYyNmwuMjA2LS41OTMuMjEuNTkzaC42MjZsLS41MTUuMzg1TTEzLjMyNiA3LjkxM2wtLjUxLS4zNTgtLjUxLjM1OC4xODctLjYwNS0uNTE0LS4zODVoLjYyNmwuMjEtLjU5My4yMDYuNTkzaC42MjdsLS41MTUuMzg1TTE1LjU1IDUuOTA0bC0uNTEtLjM2LS41MS4zNi4xOS0uNjAzLS41MTItLjM4NGguNjI2bC4yMDYtLjU5NC4yMS41OTRoLjYyNmwtLjUxNS4zODVNMTMuMzI2IDUuOTA0bC0uNTEtLjM2LS41MS4zNi4xODctLjYwMy0uNTE0LS4zODRoLjYyNmwuMjEtLjU5NC4yMDYuNTk0aC42MjdsLS41MTUuMzg1TTEwLjQ3MiA0Ljg2M2MtLjIyOC0uMTg3LS40ODUtLjMxLS43NTctLjM2OC4wNjUtLjA2My4xMzQtLjExNS4xOTItLjE2NC4zNC4wOC41Ny4yMzQuNzI1LjM2NS0uMDU1LjA1NS0uMTEuMTEyLS4xNi4xNjhtLS4zMy40Yy0uMjE3LS4xODctLjQ4LS4zMi0uNzgzLS4zOC4wNDUtLjA2LjEtLjEyNC4xNS0uMTguMjMuMDQuNTIyLjE2Ljc4LjM3LS4wNTMuMDY0LS4xMDIuMTI2LS4xNDguMTltLS4yOTYuNDE1Yy0uMjM1LS4xOTctLjUwOC0uMzE3LS43NzgtLjM3IDAgMCAuMDgyLS4xMzMuMTI4LS4yMDIuMzMuMDY1LjU5Ny4yMTguNzgyLjM3Ny0uMDQ3LjA2Ny0uMDkyLjEzMi0uMTMyLjE5NW0xLjU1Mi0xLjk5cy0uMjY3LjE0LS42MzcuNTAyYy4wODQuMDUuMTc4LjExNS4yMzIuMTYtLjA1Ny4wNS0uMTEzLjEwNC0uMTY3LjE1NC0uMjQtLjE5OC0uNDkyLS4zLS42ODUtLjM0OC4wNjQtLjA0NS4xMzMtLjA5Mi4yLS4xMzMuMTA0LjAyNC4yMDcuMDY3LjIwNy4wNjcuNDE4LS4zMi43OC0uNDU3Ljc4LS40NTdzLS4wNDItLjAyLS4xNTMtLjAyYy0xLjY0OC4wMjItMy4xNjUgMS4yNS0yLjg4IDMuMzU2LjAzNC4yMi4xMi42MjguMjMuODA1LjAzOC0uMzUuMTctMS4xMjQuNTYtMS45NTYtLjEzNy0uMDUtLjI1LS4wNy0uMjUtLjA3LjA0LS4wODMuMDk2LS4xOS4wOTYtLjE5LjI4OC4wNTUuNTQyLjE3Ny43NjQuMzUtLjA1Mi4wODYtLjA4OC4xNC0uMTE0LjE4OC0uMDgtLjA2My0uMTU3LS4xMTQtLjI0Mi0uMTYzLS40NC43NjctLjY0NCAxLjQ5My0uNzI4IDEuODcyLjAwNi4wMjIuMDUzLjAzNi4wOTMuMDMgMS44MDQtLjIzNSAyLjY1LTEuMTU0IDIuOTA1LTIuMTUyLjE3LS42NTQuMTE0LTEuMzM3LS4xMTItMS44OTYtLjAxNi0uMDQtLjA0Ni0uMTA1LS4wOTgtLjEiLz48L3N2Zz4=");
+ background-repeat: no-repeat;
+ position: absolute;
+ width: 20px;
+ height: 20px;
+ margin: -2px 0 0 10px
+ }
+
+ .yvp-browser-mobile .yvp-nfl-branding-container .yvp-nfl-brand-span {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCI+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTE1IDI5LjA5MnMuNjI0LTEuMDggMS4yMzQtMS42NjhjLjg2Mi0uODI3IDIuMDg0LTEuMzQ2IDMuNzM2LTEuNTg0IDIuMDczLS4zIDMuNTc2LTEgNC40NjMtMi4wNzIuNzE1LS44NzIuODIzLTEuNzQuODI1LTIuMTg0VjQuMTE0aC0uNjgzYy0uODguNjMtMi41NjggMS40OTMtNC43MzguOTU4QzE2LjA3NSA0LjE0OCAxNSAuOTA2IDE1IC45MDZzLTEuMDc2IDMuMjQtNC44MzcgNC4xNjZjLTIuMTczLjUzNS0zLjg2LS4zMy00Ljc0Mi0uOTZoLS42Nzh2MTcuNDcyYzAgLjQ0LjEwOCAxLjMxMi44MjUgMi4xODQuODg1IDEuMDcyIDIuMzg2IDEuNzcgNC40NiAyLjA3MiAxLjY1NS4yMzggMi44NzYuNzU3IDMuNzM4IDEuNTg4LjYzMy42MDggMS4yMzQgMS42NjQgMS4yMzQgMS42NjQiLz48cGF0aCBmaWxsPSIjMDEzNzY5IiBkPSJNMjQuNjQgNC43OTZzLTIuMDU2IDEuNi00Ljk1Ljg3NUMxNi4zMSA0LjgzIDE1IDIuMjk4IDE1IDIuMjk4cy0xLjMxMiAyLjUzLTQuNjkgMy4zNzRjLTIuODk3LjcyNS00Ljk1My0uODc0LTQuOTUzLS44NzR2MTYuNzg4YzAgLjU3LjI0IDIuOTkzIDQuNzU4IDMuNjQ2IDEuNzg2LjI2IDMuMTIuODMyIDQuMDc4IDEuNzU0LjM0NC4zMy42MDYuNjY2LjgwNS45NzguMi0uMzEyLjQ2LS42NDguODA4LS45NzguOTU2LS45MjIgMi4yOS0xLjQ5NCA0LjA3NC0xLjc1NCA0LjUyLS42NTIgNC43Ni0zLjA3NiA0Ljc2LTMuNjQ2VjQuNzk2eiIvPjxwYXRoIGZpbGw9IiNGRkYiIGQ9Ik0xNSAyNi4yNTNzMS4zMS0xLjYyMiA0LjcyLTIuMTQ3YzMuOTAzLS42IDMuNzg4LTIuNDMzIDMuNzg4LTIuNTI1di04Ljc5NGwtMTcuMDIuMDAydjguNzkyYzAgLjA5My0uMTEyIDEuOTI1IDMuNzkgMi41MjUgMy40MS41MjYgNC43MiAyLjE0OCA0LjcyIDIuMTQ4Ii8+PHBhdGggZmlsbD0iI0Q1MEEwQSIgZD0iTTExLjAzIDE5LjIxM3YtNC4xOGwtLjUyMy0uMjk1VjEzLjY1aDIuMzl2MS4wODhsLS41LjI5NXY4LjUzbC0xLjI3OC0uMzg0LTEuODQ3LTUuNDV2My41OWwuNTg2LjQ1MnYxLjExbC0yLjU2NS0uNjU3di0uOTRsLjU4Ni0uMjMydi02LjAxNWwtLjYtLjNWMTMuNjVoMS45NE0xNS40MzIgMjMuMDM4bC41MS42MXYxLjA4NmwtMi41MzgtLjk0OHYtLjkybC41Ni0uMjN2LTcuNjAzbC0uNTU2LS4yODN2LTEuMWg0LjQwOHYyLjIxaC0uOTY4bC0uMjk1LS45MDdoLTEuMTJ2Mi41NTJoLjg0bC4zMy0uNDg0aC42Nzd2Mi4yN2gtLjY3NmwtLjMyLS40NmgtLjg1Mk0xOC4yMzYgMjMuNDJ2LTEuMDg1bC42My0uNTE3di02Ljc4NWwtLjU0LS4yODN2LTEuMWgyLjU0MnYxLjFsLS40OTcuMjgzdjYuMzY0bDEuMDkzLS4yOTMuMjA3LTEuNjdoMS4wNXYyLjc5Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTYuOTMyIDEwLjk4NmwtLjc3LS41OGguOTQybC4zMS0uODg4LjMxMi44OWguOTRsLS43Ny41NzguMjgzLjkwNy0uNzY3LS41MzctLjc2NC41MzdNMTAuMjcyIDEwLjk4NmwtLjc3LS41OGguOTRsLjMxLS44ODguMzEyLjg5aC45NGwtLjc3LjU3OC4yODUuOTA3LS43NjctLjUzNy0uNzY0LjUzN002LjkzMiA3Ljk3NWwtLjc3LS41NzhoLjk0MmwuMzEtLjg5LjMxMi44OWguOTRsLS43Ny41NzguMjgzLjkwNS0uNzY3LS41NC0uNzY0LjU0TTEwLjI3MiA3Ljk3NWwtLjc3LS41NzhoLjk0bC4zMS0uODkuMzEyLjg5aC45NGwtLjc3LjU3OC4yODUuOTA1LS43NjctLjU0LS43NjQuNTRNMjMuMzQ4IDExLjg5M2wtLjc2NC0uNTM4LS43NjYuNTM4LjI4NC0uOTA3LS43Ny0uNTc4aC45NGwuMzEyLS44OS4zMS44OWguOTQybC0uNzcuNTc4TTIwLjAxIDExLjg5M2wtLjc2NC0uNTM4LS43NjcuNTM4LjI4NC0uOTA3LS43NzItLjU3OGguOTRsLjMxNC0uODkuMzEuODloLjk0bC0uNzcuNTc4TTIzLjM0OCA4Ljg4bC0uNzY0LS41NC0uNzY2LjU0LjI4NC0uOTA1LS43Ny0uNTc4aC45NGwuMzEyLS44OS4zMS44OWguOTQybC0uNzcuNTc4TTIwLjAxIDguODhsLS43NjQtLjU0LS43NjcuNTQuMjg0LS45MDUtLjc3Mi0uNTc4aC45NGwuMzE0LS44OS4zMS44OWguOTRsLS43Ny41NzhNMTUuNzMgNy4zMThjLS4zNDItLjI4LS43MjctLjQ2NC0xLjEzNS0uNTUyLjEtLjA5NC4yMDItLjE3Mi4yODgtLjI0Ny41MS4xMi44NTQuMzUgMS4wODguNTQ1LS4wOC4wODQtLjE2My4xNy0uMjQuMjUzbS0uNDkzLjU5OGMtLjMyNy0uMjgtLjcyNC0uNDgtMS4xNzUtLjU3LjA3LS4wODguMTUtLjE4NS4yMjgtLjI3LjM0My4wNi43ODIuMjQgMS4xNjcuNTU3LS4wOC4wOTYtLjE1Mi4xOS0uMjIuMjgzbS0uNDQ1LjYyNGMtLjM1My0uMjk1LS43NjMtLjQ3NS0xLjE2Ni0uNTUzIDAgMCAuMTIyLS4yMDIuMTkzLS4zMDQuNDkuMDk2Ljg5My4zMjcgMS4xNy41NjQtLjA3LjEtLjEzOC4yLS4xOTguMjkzbTIuMzI4LTIuOTgzcy0uNC4yMDgtLjk1Ni43NTNjLjEyNi4wNzQuMjY4LjE3LjM0OC4yNC0uMDg1LjA3Mi0uMTcuMTU0LS4yNS4yMy0uMzYtLjMtLjczOC0uNDUtMS4wMy0uNTIzLjA5Ny0uMDY3LjItLjEzOC4zMDItLjIuMTU2LjAzNy4zMS4xLjMxLjEuNjI3LS40NzggMS4xNy0uNjg2IDEuMTctLjY4NnMtLjA2Mi0uMDMtLjIzLS4wMjhjLTIuNDcuMDMzLTQuNzQ2IDEuODc2LTQuMzE4IDUuMDM0LjA0OC4zMzQuMTc2Ljk0NC4zNDMgMS4yMS4wNTQtLjUyNi4yNTItMS42ODcuODM4LTIuOTM0LS4yMDUtLjA3My0uMzc1LS4xMDMtLjM3NS0uMTAzLjA2Mi0uMTI3LjE0NS0uMjg2LjE0NS0uMjg2LjQzMy4wODIuODE0LjI2NSAxLjE0Ni41MjUtLjA3OC4xMjctLjEzMy4yMS0uMTcuMjgtLjExOC0uMDk0LS4yMzYtLjE3LS4zNjQtLjI0NC0uNjYgMS4xNS0uOTY1IDIuMjQtMS4wOSAyLjgwOC4wMDguMDM0LjA3OC4wNTMuMTM4LjA0NSAyLjcwNi0uMzUzIDMuOTczLTEuNzMgNC4zNTgtMy4yMy4yNTMtLjk4LjE3Mi0yLjAwNS0uMTY4LTIuODQ0LS4wMjQtLjA1Ny0uMDctLjE1Ni0uMTQ4LS4xNSIvPjwvc3ZnPg==");
+ background-repeat: no-repeat;
+ width: 30px;
+ height: 30px
+ }
+
+ .yvp-nfl-branding-container .yvp-nfl-brand-logo {
+ background-image: url("data:image/svg+xml;base64,PCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIiBbCgk8IUVOVElUWSBuc19leHRlbmQgImh0dHA6Ly9ucy5hZG9iZS5jb20vRXh0ZW5zaWJpbGl0eS8xLjAvIj4KCTwhRU5USVRZIG5zX2FpICJodHRwOi8vbnMuYWRvYmUuY29tL0Fkb2JlSWxsdXN0cmF0b3IvMTAuMC8iPgoJPCFFTlRJVFkgbnNfZ3JhcGhzICJodHRwOi8vbnMuYWRvYmUuY29tL0dyYXBocy8xLjAvIj4KCTwhRU5USVRZIG5zX3ZhcnMgImh0dHA6Ly9ucy5hZG9iZS5jb20vVmFyaWFibGVzLzEuMC8iPgoJPCFFTlRJVFkgbnNfaW1yZXAgImh0dHA6Ly9ucy5hZG9iZS5jb20vSW1hZ2VSZXBsYWNlbWVudC8xLjAvIj4KCTwhRU5USVRZIG5zX3NmdyAiaHR0cDovL25zLmFkb2JlLmNvbS9TYXZlRm9yV2ViLzEuMC8iPgoJPCFFTlRJVFkgbnNfY3VzdG9tICJodHRwOi8vbnMuYWRvYmUuY29tL0dlbmVyaWNDdXN0b21OYW1lc3BhY2UvMS4wLyI+Cgk8IUVOVElUWSBuc19hZG9iZV94cGF0aCAiaHR0cDovL25zLmFkb2JlLmNvbS9YUGF0aC8xLjAvIj4KXT48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwOS44OTYiIGhlaWdodD0iMTMuOTc4Ij48c3dpdGNoPjxmb3JlaWduT2JqZWN0IHJlcXVpcmVkRXh0ZW5zaW9ucz0iaHR0cDovL25zLmFkb2JlLmNvbS9BZG9iZUlsbHVzdHJhdG9yLzEwLjAvIiB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9IiNmZmYiIGQ9Ik0xMDkuODk2IDEuMDI1bC0zLjY3OCAxMi45NWgtNS41OThsMS41NC01LjQ0Ny0zLjgyMyA0Ljc0MmgtMS44MjJsLTIuMTgtOC4zNWgtNC4zNmwuODktMy44OTZoOC4zMmwuODggNS4xMzggNC4yMzQtNS4xMzV2LS4wMDNoNS41OTV6TTg3LjEzIDEwLjIyYy0uNTY2IDEuODItMi41NTMgMy43NTUtNC40MTQgMy43NTVINzQuNDFjLTEuODYgMC0yLjkyLTEuOTM0LTIuMzU0LTMuNzU1bDEuMzI3LTQuMjc3aDUuODk0TDc3Ljk3IDkuODM3aDMuMjNsMS42Ni00Ljg4NmgtOS4xMmMuNjctMS42OSAyLjYyOC0zLjkyNSA0LjM5NC0zLjkyNWg4LjMwNmMxLjg2IDAgMi44NCAyLjI3IDIuMjc0IDQuMDlMODcuMTMgMTAuMjJ6TTcxLjM1MiA2LjY0Nkg2Ni4yNGwuNTY1LTEuNjc0aC0yLjczbC0xLjY1MyA0Ljg1aDIuNzNsLjQxMi0uOTI0aDUuMDg0bC0uNzYgMi40MjZjLS41NjYgMS44Mi0yLjIxNSAyLjY1LTQuMDc2IDIuNjVoLTYuNDdjLTEuODYgMC0yLjkyLTEuOTMzLTIuMzU0LTMuNzU0bDEuNTg0LTUuMTA1Yy41NjYtMS44MiAyLjA0LTQuMDkgNC43MTctNC4wOWg2LjA1NWMyLjAyNyAwIDMuMDQ1IDIuNDYgMi40OTYgNC4xODhsLS40OSAxLjQzM3ptLTIxLjY2IDcuMzNsMS4xNTUtNC45OThoNC41MUw1NC4yIDEzLjk3NmgtNC41MDh6bS01LjE3NS00Ljk5OGg0LjUwOGwtMS4xNTYgNC45OThoLS4zNDd2LjAwMmgtOC40OXYtLjAwNEgzNS4wM0wzOC4zNzYgMi42NWgtMS4zNGwuODEtMi42M2gxLjM0Vi4wMTZoNi40N0w0Mi4yNzYgMTFoMS43M2wuNTEyLTIuMDIyem0tOS4zNC00LjMxN2gtNC41OWwuNDIzLTEuNjYzaC0xMEwyMS42NDUuMDJoMTQuNjZsLS4wMS4wNDJoLjA0M2wtMS4xNiA0LjZ6TTEyLjI1IDEzLjk3Nkg3LjUwNEw2LjIxNiAyLjY1aC00LjE5bC44MS0yLjYzaDMuMDdWLjAxNmg2LjE0TDEzLjI2IDEwLjI2IDE2LjQwOC4wMTVoMy44MzhsLTQuMTU4IDEzLjk2SDEyLjI1ek01LjI5MyAzLjY3TDUuNiA2LjgzNGwtMi4xMjYgNy4xNEguMDJMMy4xMzUgMy42NjhoMi4xNTh6bTIyLjQ4LjMyNmwtLjY0MiAyLjQ2aDUuMThMMzEuNyA4Ljk5aC01LjM2bC0xLjUzMiA0Ljk4NWgtNi4wNDNsMy4wMS05Ljk4aDUuOTk4em02NS40OCAxLjg3N2wxLjAyIDQuMzg1LTEuMDAyIDMuNzE4aC00LjczNWwyLjM1Mi04LjEwM2gyLjM2NXoiLz48L3N3aXRjaD48L3N2Zz4=");
+ background-repeat: no-repeat;
+ width: 110px;
+ height: 14px;
+ display: block;
+ position: absolute;
+ margin-left: 40px;
+ margin-top: 2px
+ }
+
+ .yvp-browser-mobile .yvp-nfl-branding-container .yvp-nfl-brand-logo {
+ background-image: url("data:image/svg+xml;base64,PCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIiBbCgk8IUVOVElUWSBuc19leHRlbmQgImh0dHA6Ly9ucy5hZG9iZS5jb20vRXh0ZW5zaWJpbGl0eS8xLjAvIj4KCTwhRU5USVRZIG5zX2FpICJodHRwOi8vbnMuYWRvYmUuY29tL0Fkb2JlSWxsdXN0cmF0b3IvMTAuMC8iPgoJPCFFTlRJVFkgbnNfZ3JhcGhzICJodHRwOi8vbnMuYWRvYmUuY29tL0dyYXBocy8xLjAvIj4KCTwhRU5USVRZIG5zX3ZhcnMgImh0dHA6Ly9ucy5hZG9iZS5jb20vVmFyaWFibGVzLzEuMC8iPgoJPCFFTlRJVFkgbnNfaW1yZXAgImh0dHA6Ly9ucy5hZG9iZS5jb20vSW1hZ2VSZXBsYWNlbWVudC8xLjAvIj4KCTwhRU5USVRZIG5zX3NmdyAiaHR0cDovL25zLmFkb2JlLmNvbS9TYXZlRm9yV2ViLzEuMC8iPgoJPCFFTlRJVFkgbnNfY3VzdG9tICJodHRwOi8vbnMuYWRvYmUuY29tL0dlbmVyaWNDdXN0b21OYW1lc3BhY2UvMS4wLyI+Cgk8IUVOVElUWSBuc19hZG9iZV94cGF0aCAiaHR0cDovL25zLmFkb2JlLmNvbS9YUGF0aC8xLjAvIj4KXT48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjE1Ny4wNDIiIGhlaWdodD0iMjAuMDE1Ij48c3dpdGNoPjxmb3JlaWduT2JqZWN0IHJlcXVpcmVkRXh0ZW5zaW9ucz0iaHR0cDovL25zLmFkb2JlLmNvbS9BZG9iZUlsbHVzdHJhdG9yLzEwLjAvIiB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9IiNmZmYiIGQ9Ik0xNTYuOTYgMS44NzdsLTUuMjU1IDE4LjEyNmgtNy45OTJsMi4xOTgtNy4zODQtNS40NiA2LjM0aC0yLjZsLTMuMTE0LTExLjgzaC02LjIyN2wxLjI3LTUuMjUyaDExLjg4bDEuMjU3IDcuMjUgNi4wNDctNy4yNDZ2LS4wMDVoNy45OTV6bS0zMi41MTMgMTMuMjRjLS44MDggMi42ODgtMy42NDUgNC44ODctNi4zMDIgNC44ODdoLTExLjg2Yy0yLjY2IDAtNC4xNzItMi4yLTMuMzY0LTQuODg3bDEuODk4LTYuMzEyaDguNDE2bC0xLjg2NiA1Ljc0N2g0LjYxbDIuMzc1LTcuMzc2aC0xMy4wMjZjLjk1OC0yLjUgMy43NTItNS4yOTggNi4yNzUtNS4yOThoMTEuODZjMi42NTcgMCA0LjA1NiAzLjAxOCAzLjI0NyA1LjcwNWwtMi4yNjQgNy41MzR6bS0yMi41My01LjI3NmgtNy4zMDJsLjgwOC0yLjYzMmgtMy45bC0yLjM2IDcuMzIyaDMuOWwuNTg3LTEuMzY1aDcuMjZsLTEuMDg0IDMuNThjLS44MSAyLjY4OC0zLjE2MyAzLjI1OC01LjgyIDMuMjU4aC05LjI0Yy0yLjY1NiAwLTQuMTctMi4yLTMuMzYyLTQuODg3bDIuMjY0LTcuNTMzYy44MDgtMi42ODggMi45MS01LjcwNSA2LjczNS01LjcwNWg4LjY1YzIuODkzIDAgNC4zNDggMy4zIDMuNTYyIDUuODVsLS42OTggMi4xMTN6TTcwLjk4NSAyMC4wMDdsMS42NS02LjcyMmg2LjQ0bC0xLjY1MiA2LjcyMmgtNi40Mzh6bS03LjM5LTYuNzJoNi40MzhsLTEuNjUgNi43MmgtLjQ5NXYuMDAzSDU1Ljc2NnYtLjAwN2gtNS43Mmw0Ljc4LTE2LjA1OGgtMS45MTJMNTQuMDcuMDY1aDEuOTFsLjAwNC0uMDFoOS4yMzhMNjAuMzk2IDE2LjI3aDIuNDY3bC43MzItMi45ODR6TTUwLjI1OCA2LjkxMkg0My43bC43MjQtMi45N2gtMTQuNjVMMzAuOTMuMDY3aDIwLjkzNmwtLjAxNC4wNmguMDZMNTAuMjYgNi45MTR6TTE3LjUxOCAyMGgtNi43ODJMOC45IDMuOTQ1SDIuOTE1TDQuMDcuMDY1aDQuMzg2di0uMDFoOC43N2wxLjcyOCAxNS4xMiA0LjUtMTUuMTJoNS40OGwtNS45NCAxOS45NDZoLTUuNDc3ek03LjU3OCA1LjQ1bC40NCA0LjY3My0zLjAzNyA5Ljg4SC4wNTNMNC40OTYgNS40NUg3LjU4em0zMi4zNDYtLjI3OGwtMS4yMTcgNC4wMzJoNy4zOTdsLS44NzMgMy43NGgtNy42NUwzNS40NSAyMGgtOC42M2w0LjQ3Ni0xNC44MjhoOC42M3ptOTMuMjY0IDMuNTNsMS40NTcgNi40Ny0xLjQzIDQuODMyaC02Ljc2NEwxMjkuODEgOC43aDMuMzh6Ii8+PC9zd2l0Y2g+PC9zdmc+");
+ background-repeat: no-repeat;
+ margin-left: 50px;
+ margin-top: 2px;
+ width: 157px;
+ height: 20px
+ }
+
+ div.yvp-agegate-container {
+ width: 100%;
+ height: 100%;
+ color: #fff;
+ font-family: 'Helvetica Neue Regular', 'Helvetica Neue', helvetica, arial, sans-serif;
+ position: absolute;
+ background-color: #000;
+ z-index: 25
+ }
+
+ .yvp-agegate-container .yvp-agegate-info-wrapper {
+ padding: 17% 25% 0 25%;
+ text-align: center;
+ position: absolute;
+ top: 0;
+ }
+
+ .yvp-stream .yvp-agegate-container .yvp-agegate-info-wrapper {
+ padding: 14% 15% 0 15%
+ }
+
+ .yvp-agegate-container .yvp-agegate-title {
+ font-size: 20px;
+ line-height: 24px;
+ font-weight: normal;
+ margin-bottom: 2%
+ }
+
+ .yvp-agegate-container .yvp-agegate-desc {
+ font-size: 12px;
+ line-height: 20px;
+ color: rgba(255, 255, 255, 0.6)
+ }
+
+ .yvp-stream .yvp-agegate-container.yvp-agegate-birthday .yvp-agegate-info-wrapper {
+ padding: 8% 10% 0 10%
+ }
+
+ .yvp-stream .yvp-agegate-container.yvp-agegate-birthday .yvp-agegate-desc {
+ line-height: 14px
+ }
+
+ .yvp-stream .yvp-agegate-container.yvp-agegate-birthday .yvp-agegate-action-wrapper {
+ margin-top: 5.2%
+ }
+
+ .yvp-stream .yvp-agegate-container.yvp-agegate-birthday .yvp-agegate-btn {
+ display: block;
+ margin: 5% auto 0 auto
+ }
+
+ .yvp-agegate-container .yvp-agegate-action-wrapper {
+ margin-top: 9.2%
+ }
+
+ .yvp-agegate-container .yvp-agegate-date-input,
+ p.yvp-agegate-input {
+ display: inline
+ }
+
+ .yvp-agegate-container .yvp-agegate-date-input
+ /*input*/
+
+ {
+ width: 56px;
+ height: 33px;
+ margin: 0 5px 0 0;
+ border: none;
+ border-radius: 2px;
+ color: #fff;
+ text-align: center;
+ background-color: rgba(255, 255, 255, 0.15)
+ }
+
+ input.yvp-agegate-date-input.validate-error {
+ border: 1px solid #cc4a4a
+ }
+
+ .yvp-agegate-container .yvp-agegate-btn {
+ padding: 10px 22px 9px 22px;
+ background-color: #188fff;
+ border: none;
+ outline: none;
+ border-radius: 2px;
+ color: #fff;
+ font-family: 'Helvetica Neue Regular', 'Helvetica Neue', helvetica, arial, sans-serif;
+ font-size: 12px;
+ line-height: 13px;
+ cursor: pointer
+ }
+
+ .yvp-agegate-container .yvp-agegate-btn.disable {
+ display: none
+ }
+
+ .yvp-agegate-container .yvp-agegate-icon {
+ position: absolute;
+ right: 20px;
+ bottom: 20px;
+ background-size: 100%;
+ display: none;
+ zoom: 1
+ }
+
+ .yvp-agegate-back-image {
+ opacity: .3;
+ display: block;
+ width: 100%;
+ height: auto
+ }
+
+ .yvp-start-screen {
+ z-index: 21;
+ }
+
+ .yvp-start-screen .yvp-start-screen-image {
+ display: block;
+ width: 100%;
+ height: auto
+ }
+
+ .yvp-start-screen .yvp-start-screen-provider {
+ font-size: 91%;
+ font-weight: normal;
+ margin-bottom: 5px
+ }
+
+ .yvp-start-screen .yvp-start-screen-title {
+ font-weight: bold;
+ font-size: 100%;
+ margin-bottom: 3px;
+ width: 100%;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis
+ }
+
+ .yvp-start-screen .yvp-start-screen-description {
+ -webkit-font-smoothing: antialiased;
+ font-weight: 200;
+ font-size: 85%;
+ letter-spacing: .07em;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis
+ }
+
+ .yvp-start-screen .yvp-start-screen-bar-wrapper {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background-color: transparent;
+ -webkit-transition: all .3s ease-in-out;
+ -moz-transition: all .3s ease-in-out;
+ -o-transition: all .3s ease-in-out;
+ transition: all .3s ease-in-out
+ }
+
+ .yvp-start-screen:hover .yvp-start-screen-bar-wrapper {
+ background-color: rgba(0, 0, 0, 0.4)
+ }
+
+ .yvp-start-screen .yvp-start-screen-bar {
+ position: absolute;
+ width: 96%;
+ min-height: 30px;
+ max-height: 70px;
+ bottom: 0;
+ color: #fff;
+ overflow: hidden;
+ padding: 10px 2%;
+ text-shadow: #000 0 1px 3px;
+ background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.7));
+ background-image: -o-linear-gradient(top, transparent, rgba(0, 0, 0, 0.7));
+ background-image: linear-gradient(top, transparent, rgba(0, 0, 0, 0.7))
+ }
+
+ .yvp-start-screen .yvp-start-screen-button {
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ width: 90px;
+ height: 90px;
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODgiIGhlaWdodD0iODgiIHZpZXdCb3g9IjAgMCA4OCA4OCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZGVmcz48bGluZWFyR3JhZGllbnQgeDE9IjIuMDY2JSIgeTE9Ijk2Ljc1MSUiIHgyPSI5NS42NTklIiB5Mj0iMi45NjklIiBpZD0iYSI+PHN0b3Agc3RvcC1jb2xvcj0iIzZEMDBGNiIgb2Zmc2V0PSIwJSIvPjxzdG9wIHN0b3AtY29sb3I9IiMwMDNBQkMiIG9mZnNldD0iMTAwJSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHBhdGggZD0iTTEyLjY3NiA3Ny4zNzZjMy45ODMgMy42MDggOC42NjcgNi4yOCAxNC4wMjcgOC4wMTdDMzIuMDc4IDg3LjEyNSAzNy44OSA4OCA0NC4xNjMgODhjNi4xNjQgMCAxMS45MzQtLjg3NSAxNy4yOTYtMi42MDcgMi4xNTQtLjY5NCA0LjE4Ni0xLjU0NyA2LjExNi0yLjU0MyAyLjg4NC0xLjQ5IDUuNTMtMy4zMTIgNy45MTYtNS40NzQgMy45OS0zLjYwNyA3LjA5Ny04LjE4MyA5LjMzLTEzLjcwN0M4Ny4wNSA1OC4xMzYgODguMTY4IDUxLjU4IDg4LjE2OCA0NGMwLTcuNTg2LTEuMTE4LTE0LjE0LTMuMzQ2LTE5LjY3LTIuMjMzLTUuNTMtNS4zNC0xMC4xLTkuMzMtMTMuNzA1LTMuOTg1LTMuNjE3LTguNjYtNi4yODUtMTQuMDMzLTguMDJDNTYuMDk2Ljg3IDUwLjMyNiAwIDQ0LjE2MiAwYy02LjI3MyAwLTEyLjA4NS44NjgtMTcuNDYgMi42MDYtMS43NDMuNTYtMy40MTIgMS4yMzYtNS4wMSAyLjAwNS0zLjMyIDEuNTgzLTYuMzMgMy41NzgtOS4wMTcgNi4wMTVDOC42ODggMTQuMjMgNS41NzggMTguOCAzLjM0NiAyNC4zMyAxLjExNiAyOS44NiAwIDM2LjQxNCAwIDQ0YzAgNy41ODIgMS4xMTcgMTQuMTM3IDMuMzQ2IDE5LjY3IDIuMjMyIDUuNTIzIDUuMzQyIDEwLjEgOS4zMyAxMy43MDZ6IiBmaWxsLW9wYWNpdHk9Ii42NSIgZmlsbD0idXJsKCNhKSIvPjxwYXRoIGQ9Ik0zNi43MyA1OWgtLjA2NmMtLjkyIDAtMS42NjQtLjc0Mi0xLjY2NC0xLjY1NlYzMC42NTZjMC0uOTE1Ljc0LTEuNjU2IDEuNjY0LTEuNjU2LjAzIDAgLjA2IDAgLjA5LjAwMi4zOC0uMDczLjc4OC0uMDE0IDEuMTUyLjE5NmwyMi42MjIgMTMuMDZjLjc5OC40NiAxLjA3NSAxLjQ3NC42MTMgMi4yNzYtLjAyMy4wNC0uMDQ4LjA4LS4wNzUuMTE4LS4xMzcuMjctLjM1LjUwMy0uNjMuNjdsLTIyLjQ0IDEzLjQ4NGMtLjM5NS4yNC0uODUuMjk1LTEuMjY1LjE5M3oiIGZpbGw9IiNGRkYiLz48L2c+PC9zdmc+");
+ background-color: transparent;
+ background-position: 50% 50%;
+ background-repeat: no-repeat;
+ background-size: 100%;
+ border-radius: 0;
+ margin: -45px 0 0 -45px
+ }
+
+ div.yvp-feedback-btn {
+ position: absolute;
+ background: #7f6af6;
+ color: #188fff;
+ font-size: 10px;
+ padding: 3px;
+ overflow: hidden;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ opacity: .8;
+ }
+
+ div.yvp-feedback-btn:hover {
+ opacity: 1
+ }
+
+ .yvp-browser-mobile div.yvp-feedback-btn {
+ font-size: 10px
+ }
+
+ .yvp-end-screen {
+ position: absolute;
+ font-family: HelveticaNeue, Helvetica, Arial, sans-serif;
+ color: #fff;
+ text-align: center;
+ box-sizing: border-box;
+ }
+
+ .yvp-end-screen.yvp-replay-only .yvp-metadata {
+ display: none
+ }
+
+ .yvp-error-screen {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
+ font-weight: normal;
+ }
+
+ .yvp-error-screen .yvp-error-screen-image {
+ position: absolute;
+ display: block;
+ width: 100%;
+ height: 100%
+ }
+
+ .yvp-error-screen .yvp-error-screen-background {
+ position: absolute;
+ height: 100%;
+ width: 100%;
+ background-image: -webkit-linear-gradient(210deg, rgba(0, 0, 0, 0.4), #000);
+ background-image: -o-linear-gradient(210deg, rgba(0, 0, 0, 0.4), #000);
+ background-image: linear-gradient(210deg, rgba(0, 0, 0, 0.4), #000)
+ }
+
+ .yvp-error-screen .yvp-error-title {
+ position: relative;
+ display: block;
+ top: 35%;
+ width: 100%;
+ margin: 0 auto;
+ font-size: 20px;
+ line-height: 24px;
+ text-align: center;
+ color: #fff;
+ overflow: hidden;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+
+ .yvp-stream .yvp-error-screen .yvp-error-title {
+ top: 22%
+ }
+
+ .yvp-ministream .yvp-error-screen .yvp-error-title {
+ top: 30%;
+ font-size: 16px;
+ line-height: 18px
+ }
+
+ .yvp-error-screen .yvp-error-desc {
+ position: relative;
+ width: 288px;
+ top: 37%;
+ margin: 0 auto;
+ font-size: 16px;
+ line-height: 20px;
+ letter-spacing: 0;
+ text-align: center;
+ color: rgba(255, 255, 255, 0.6);
+ }
+
+ .yvp-error-screen .yvp-error-desc a:link {
+ color: rgba(255, 255, 255, 0.6)
+ }
+
+ .yvp-error-screen .yvp-error-desc a:visited {
+ color: rgba(255, 255, 255, 0.6)
+ }
+
+ .yvp-error-screen .yvp-error-desc a:active {
+ color: rgba(115, 0, 255, 0.8)
+ }
+
+ .yvp-stream .yvp-error-screen .yvp-error-desc {
+ top: 25%;
+ width: 85%
+ }
+
+ .yvp-ministream .yvp-error-screen .yvp-error-desc {
+ display: none;
+ top: 25%;
+ width: 85%
+ }
+
+ .yvp-error-screen .yvp-error-desc .yvp-browser-refresh {
+ display: block;
+ padding-top: 10px
+ }
+
+ .yvp-error-screen .yvp-error-desc .yvp-error-flash-download-wrapper {
+ display: block;
+ padding-top: 10px;
+ background-color: transparent;
+ cursor: pointer
+ }
+
+ .yvp-error-screen .yvp-error-desc .yvp-error-flash-download-icon {
+ display: block;
+ width: 30%;
+ height: 25%;
+ margin-top: 10px;
+ background-repeat: no-repeat;
+ }
+
+ .yvp-browser-mobile .yvp-error-screen .yvp-error-desc .yvp-error-flash-download-icon {
+ visibility: hidden
+ }
+
+ .yvp-error-screen .yvp-error-code {
+ position: relative;
+ top: 40%;
+ width: 100%;
+ display: block;
+ color: rgba(255, 255, 255, 0.3);
+ margin: 0 auto;
+ font-size: 12px;
+ line-height: 16px;
+ font-weight: normal;
+ text-align: center;
+ overflow: hidden;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+
+ .yvp-stream .yvp-error-screen .yvp-error-code {
+ top: 30%
+ }
+
+ .yvp-ministream .yvp-error-screen .yvp-error-code {
+ font-size: 12px;
+ line-height: 16px
+ }
+
+ .yvp-browser-mobile .yvp-error-screen .yvp-error-code {
+ font-size: 10px
+ }
+
+ .yvp-error-screen .yvp-error-feedback-btn {
+ bottom: 12%;
+ right: 5%;
+ }
+
+ .yvp-ministream .yvp-error-screen .yvp-error-feedback-btn {
+ display: none
+ }
+
+ .yvp-opensimsim {
+ display: none;
+ position: absolute;
+ z-index: 100;
+ background-color: rgba(0, 0, 0, 0.6);
+ width: 100%;
+ height: 100%;
+ color: rgba(255, 255, 255, 0.8);
+ overflow-x: scroll;
+ -webkit-user-select: text;
+ -moz-user-select: text;
+ -ms-user-select: text;
+ user-select: text;
+ }
+
+ .yvp-opensimsim .yvp-close-btn {
+ display: block;
+ position: absolute;
+ top: 10px;
+ right: 10px;
+ width: 27px;
+ height: 27px;
+ background: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKICAgIHdpZHRoPSIxMHB4IiBoZWlnaHQ9IjEwcHgiIHZpZXdCb3g9IjAgMCAxMCAxMCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMTAgMTAiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8cG9seWdvbiBmaWxsPSIjQ0NDQ0NDIiBwb2ludHM9IjEwLDEuNTAyIDguNDk4LDAgNSwzLjQ5OSAxLjUwMiwwLjAwMSAwLDEuNTAzIDMuNDk4LDUgMCw4LjQ5OCAxLjUwMiwxMCA1LDYuNTAyIDguNDk4LDEwIDEwLDguNDk4IAogICAgNi41MDIsNSAiLz4KPC9zdmc+Cg==") no-repeat center center;
+ cursor: pointer;
+ z-index: 10;
+ opacity: .8;
+ }
+
+ .yvp-opensimsim .yvp-close-btn:hover {
+ opacity: 1
+ }
+
+ .yvp-opensimsim .yvp-opensimsim-feedback-btn {
+ top: 12px;
+ color: #188fff;
+ right: 6%;
+ z-index: 1;
+ padding: 1px;
+ text-align: center;
+ cursor: pointer;
+ text-decoration: underline
+ }
+
+ .yvp-opensimsim .yvp-opensimsim-profile {
+ margin: 0
+ }
+
+ .yvp-opensimsim .yvp-opensimsim-info {
+ font-size: 10px;
+ margin-left: 20px;
+ margin-right: 20px;
+ position: relative;
+ color: #d8dade;
+ }
+
+ .yvp-opensimsim .yvp-opensimsim-info .yvp-opensimsim-title {
+ color: #8e80ff;
+ padding-top: 16px;
+ padding-bottom: 1px
+ }
+
+ .yvp-opensimsim .yvp-opensimsim-info .yvp-opensimsim-lmsid {
+ padding-bottom: 5px
+ }
+
+ .yvp-opensimsim .yvp-opensimsim-info .yvp-opensimsim-graphs {
+ width: 100%;
+ height: 80px;
+ margin-bottom: 25px;
+ }
+
+ .yvp-opensimsim .yvp-opensimsim-info .yvp-opensimsim-graphs .yvp-opensimsim-graph {
+ float: left;
+ width: 150px;
+ }
+
+ .yvp-opensimsim .yvp-opensimsim-info .yvp-opensimsim-graphs .yvp-opensimsim-graph div {
+ margin-bottom: 5px
+ }
+
+ .yvp-opensimsim .yvp-opensimsim-info .yvp-profile-btn {
+ padding-top: 20px;
+ color: #188fff;
+ margin-bottom: 20px;
+ font-size: 10px;
+ cursor: pointer;
+ text-decoration: underline;
+ margin-left: 1px
+ }
+
+ .yvp-opensimsim .yvp-opensimsim-info .yvp-opensimsim-detail {
+ padding-bottom: 1px
+ }
+
+ .yvp-opensimsim .yvp-opensimsim-info .yvp-profilelink {
+ color: #fff;
+ font-size: 12px;
+ cursor: pointer;
+ }
+
+ .yvp-opensimsim .yvp-opensimsim-info .yvp-profilelink:hover {
+ text-decoration: underline
+ }
+
+ .yvp-opensimsim-info .yvp-midrollcache-data {
+ display: inline-block;
+ line-height: 7px;
+ }
+
+ .yvp-opensimsim-info .yvp-midrollcache-data::after {
+ display: table;
+ content: '';
+ clear: both
+ }
+
+ .yvp-opensimsim-info .floated-item {
+ float: left;
+ padding: 0 8px;
+ border-right: 2px solid #ddd
+ }
+
+ .yvp-opensimsim-info .yvp-table {
+ display: table;
+ color: #d8dade;
+ width: 100%;
+ margin-bottom: 25px;
+ }
+
+ .yvp-opensimsim-info .yvp-table &gt;
+ div:first-child {
+ display: table-caption;
+ background-color: transparent;
+ text-align: left;
+ line-height: 15px
+ }
+
+ .yvp-opensimsim-info .yvp-table header.yvp-tablerow {
+ font-weight: bold;
+ background-color: transparent
+ }
+
+ .yvp-opensimsim-info .yvp-tablerow {
+ display: table-row;
+ background-color: transparent
+ }
+
+ .yvp-opensimsim-info .yvp-tablecell {
+ display: table-cell;
+ padding: 2px;
+ border-style: solid;
+ border: 0;
+ }
+
+ .yvp-opensimsim-info .yvp-tablecell.yvp-tablecell-header {
+ color: #878c91;
+ border-bottom: 1px solid #878c91
+ }
+
+ .yvp-opensimsim-info .yvp-details {
+ color: #878c91
+ }
+
+ .yvp-opensimsim-info .yvp-opensimsim-pipe {
+ color: #878c91;
+ font-weight: bold
+ }
+
+ .yvp-opensimsim-info .yvp-nav {
+ padding-top: 8px;
+ padding-bottom: 0
+ }
+
+ .yvp-opensimsim-info .linkbtn {
+ background: none !important;
+ border: none;
+ padding: 0 !important;
+ border-bottom: 1px solid #444;
+ cursor: pointer;
+ color: #d8dade
+ }
+
+ .yvp-opensimsim-info .yvp-opensimsim-adinfo-uuid {
+ color: #878c91
+ }
+
+ .yvp-tablecell.st-error {
+ color: #f00
+ }
+
+ .yvp-tablecell.st-playing {
+ color: #0f0
+ }
+
+ .yvp-tablecell.st-unplayed {
+ color: #786f78
+ }
+
+ .yvp-tablecell.st-cancelled {
+ color: #f9cc9d
+ }
+
+ .emptyrow .yvp-tablecell {
+ border-width: 1px 0 0 0;
+ }
+
+ .emptyrow .yvp-tablecell * {
+ visibility: hidden
+ }
+
+ .yvp-browser-tv .yvp-opensimsim-config {
+ position: absolute;
+ top: 0;
+ right: 0
+ }
+
+ .yvp-feedback-screen {
+ display: none;
+ position: absolute;
+ z-index: 150;
+ background-color: #000;
+ width: 100%;
+ height: 100%;
+ color: #ccc;
+ overflow-x: scroll;
+ -webkit-user-select: text;
+ -moz-user-select: text;
+ -ms-user-select: text;
+ user-select: text;
+ }
+
+ .yvp-feedback-screen .yvp-feedback-screen-close-btn {
+ display: block;
+ position: absolute;
+ top: 10px;
+ right: 10px;
+ width: 27px;
+ height: 27px;
+ background: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKICAgIHdpZHRoPSIxMHB4IiBoZWlnaHQ9IjEwcHgiIHZpZXdCb3g9IjAgMCAxMCAxMCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMTAgMTAiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8cG9seWdvbiBmaWxsPSIjQ0NDQ0NDIiBwb2ludHM9IjEwLDEuNTAyIDguNDk4LDAgNSwzLjQ5OSAxLjUwMiwwLjAwMSAwLDEuNTAzIDMuNDk4LDUgMCw4LjQ5OCAxLjUwMiwxMCA1LDYuNTAyIDguNDk4LDEwIDEwLDguNDk4IAogICAgNi41MDIsNSAiLz4KPC9zdmc+Cg==") no-repeat center center;
+ cursor: pointer;
+ z-index: 10;
+ opacity: .8;
+ }
+
+ .yvp-feedback-screen .yvp-feedback-screen-close-btn:hover {
+ opacity: 1
+ }
+
+ .yvp-feedback-screen .yvp-feedback-screen-info {
+ font-size: 10px;
+ margin-top: 0;
+ margin-right: 20px;
+ margin-left: 20px;
+ height: 100%;
+ }
+
+ .yvp-feedback-screen .yvp-feedback-screen-info .yvp-feedback-screen-title {
+ font-size: 18px;
+ color: #ccc;
+ display: inline-block;
+ padding-top: 10px;
+ padding-bottom: 7px
+ }
+
+ .yvp-feedback-screen .yvp-feedback-screen-info .yvp-feedback-screen-response {
+ color: #ccc;
+ padding-top: 20px;
+ padding-bottom: 5px;
+ font-size: 14px;
+ margin-left: 0
+ }
+
+ .yvp-feedback-screen .yvp-feedback-screen-info .yvp-feedback-screen-refid {
+ color: #ccc;
+ padding-top: 0;
+ padding-bottom: 0;
+ margin-left: 0;
+ font-size: 10px
+ }
+
+ .yvp-feedback-screen .yvp-feedback-screen-info .yvp-feedback-screen-text {
+ box-sizing: border-box;
+ margin-top: 10px;
+ margin-bottom: 10px;
+ overflow: auto;
+ resize: none;
+ width: 100%;
+ height: 105px;
+ border: 1px solid #ccc;
+ opacity: .8;
+ padding: 5px;
+ color: #000
+ }
+
+ .yvp-feedback-screen .yvp-feedback-screen-info .yvp-feedback-screen-button-container {
+ text-align: right
+ }
+
+ .yvp-feedback-screen .yvp-feedback-screen-info .yvp-feedback-screen-btn {
+ display: inline-block;
+ background-color: #7f6af6;
+ color: #ccc;
+ cursor: pointer;
+ font-size: 12px;
+ text-align: center;
+ padding: 5px;
+ opacity: .8;
+ }
+
+ .yvp-feedback-screen .yvp-feedback-screen-info .yvp-feedback-screen-btn:hover {
+ opacity: 1
+ }
+
+ .yvp-feedback-screen .yvp-feedback-screen-info .yvp-feedback-screen-disclaimer {
+ position: absolute;
+ bottom: 10px;
+ padding-right: 10px
+ }
+
+ .yvp-ads-overlay {
+ position: absolute;
+ height: 100%;
+ width: 100%;
+ display: none;
+ -webkit-transition: height .2s ease-in-out 2s;
+ -moz-transition: height .2s ease-in-out 2s;
+ -o-transition: height .2s ease-in-out 2s;
+ transition: height .2s ease-in-out 2s
+ }
+
+ .yvp-docked-fadein {
+ -webkit-animation-name: fade_in;
+ animation-name: fade_in;
+ -webkit-animation-duration: .247s;
+ -moz-animation-duration: .247s;
+ animation-duration: .247s;
+ animation-timing-function: ease-in-out
+ }
+
+ .yvp-docked-animated {
+ -webkit-transition: all .2s ease-in-out;
+ -moz-transition: all .2s ease-in-out;
+ -o-transition: all .2s ease-in-out;
+ transition: all .2s ease-in-out
+ }
+
+ .yvp-docked {
+ position: fixed !important;
+ z-index: 9999;
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.2)
+ }
+
+ .yvp-content.yvp-browser-desktop .yvp-docked-meta {
+ position: relative;
+ opacity: 0;
+ visibility: hidden;
+ display: none;
+ height: 68px;
+ font-size: 16px;
+ color: #121717;
+ background: #fff;
+ line-height: 20px;
+ padding-top: 16px;
+ left: 0;
+ right: 0;
+ Box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.5);
+ }
+
+ .yvp-content.yvp-browser-desktop .yvp-docked-meta .yvp-docked-title {
+ position: relative;
+ margin: 0 16px 5px 16px;
+ max-height: 40px;
+ overflow: hidden;
+ -webkit-line-clamp: 2;
+ text-overflow: ellipsis;
+ display: -webkit-box;
+ -webkit-box-orient: vertical
+ }
+
+ .yvp-content.yvp-browser-desktop .yvp-docked-meta .yvp-docked-provider {
+ position: relative;
+ margin: 0 16px 16px 16px;
+ opacity: .8;
+ line-height: 16px;
+ font-size: 11px
+ }
+
+ .yvp-content.yvp-browser-desktop.yvp-docked-show-meta .yvp-docked-meta {
+ visibility: visible;
+ opacity: 1;
+ display: block
+ }
+
+ .yvp-content.yvp-browser-desktop.yvp-docked-show-meta.yvp-state-fullscreen .yvp-docked-meta {
+ visibility: hidden;
+ opacity: 0;
+ display: none
+ }
+
+ .yvp-docked-bg {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ z-index: 10;
+ }
+
+ .yvp-docked-bg .yvp-docked-img {
+ position: relative
+ }
+
+ .yvp-docked-bg .yvp-docked-overlay {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background-color: rgba(0, 0, 0, 0.75);
+ }
+
+ .yvp-docked-bg .yvp-docked-overlay .yvp-docked-overlay-text {
+ position: absolute;
+ width: 100%;
+ text-align: center;
+ bottom: 34px;
+ color: #fff;
+ font-size: 13px;
+ line-height: 16px
+ }
+
+ @-moz-keyframes fadeInOut {
+ 0% {
+ opacity: 0
+ }
+ 45% {
+ opacity: 1
+ }
+ 55% {
+ opacity: 1
+ }
+ 100% {
+ opacity: 0
+ }
+ }
+
+ @-webkit-keyframes fadeInOut {
+ 0% {
+ opacity: 0
+ }
+ 45% {
+ opacity: 1
+ }
+ 55% {
+ opacity: 1
+ }
+ 100% {
+ opacity: 0
+ }
+ }
+
+ @-o-keyframes fadeInOut {
+ 0% {
+ opacity: 0
+ }
+ 45% {
+ opacity: 1
+ }
+ 55% {
+ opacity: 1
+ }
+ 100% {
+ opacity: 0
+ }
+ }
+
+ @-ms-keyframes fadeInOut {
+ 0% {
+ opacity: 0
+ }
+ 45% {
+ opacity: 1
+ }
+ 55% {
+ opacity: 1
+ }
+ 100% {
+ opacity: 0
+ }
+ }
+
+ @keyframes fadeInOut {
+ 0% {
+ opacity: 0
+ }
+ 45% {
+ opacity: 1
+ }
+ 55% {
+ opacity: 1
+ }
+ 100% {
+ opacity: 0
+ }
+ }
+
+ @-moz-keyframes fade_in {
+ 0% {
+ opacity: 0
+ }
+ 100% {
+ opacity: 1
+ }
+ }
+
+ @-webkit-keyframes fade_in {
+ 0% {
+ opacity: 0
+ }
+ 100% {
+ opacity: 1
+ }
+ }
+
+ @-o-keyframes fade_in {
+ 0% {
+ opacity: 0
+ }
+ 100% {
+ opacity: 1
+ }
+ }
+
+ @-ms-keyframes fade_in {
+ 0% {
+ opacity: 0
+ }
+ 100% {
+ opacity: 1
+ }
+ }
+
+ @keyframes fade_in {
+ 0% {
+ opacity: 0
+ }
+ 100% {
+ opacity: 1
+ }
+ }
+ </style>
+ <link rel="preconnect" id="preConnector" href="//video-api.yql.yahoo.com" />
+</head>
+
+<body dir="ltr" class="Bxz-bb H-100 js yog-type-content yog-full yog-version-v2sg yog-ltr Col1-expand widegrid-0 yog-gma yog-US yog-gma-US-en-US-u -1-1 stage-sibling-1 yuac-fixedpos-1 yuac-svg-1 StencilRoot yog-ad-leaderboard" id="yui_3_18_1_1_1481706756324_164">
+ <div id="yui_3_18_1_1_1481706756324_443" class="yui3-widget yui3-overlay yui3-widget-positioned yui3-widget-stacked yui3-overlay-hidden" style="left: 0px; top: 0px; z-index: 100001000;">
+ <div class="sharebuttons-tooltip yui3-overlay-content yui3-widget-stdmod" id="yui_3_18_1_1_1481706756324_444">
+ <div class="yui3-widget-bd">bd</div>
+ <div class="yui3-widget-ft"></div>
+ </div>
+ </div>
+ <div id="yui_3_18_1_1_1481706756324_315" class="yui3-widget yui3-overlay yui3-widget-positioned yui3-widget-stacked yui3-overlay-hidden" style="left: 0px; top: 0px; z-index: 100001000;">
+ <div class="sharebuttons-tooltip yui3-overlay-content yui3-widget-stdmod" id="yui_3_18_1_1_1481706756324_316">
+ <div class="yui3-widget-bd">bd</div>
+ <div class="yui3-widget-ft"></div>
+ </div>
+ </div>
+ <script type="text/javascript">
+ document.body.className = document.body.className.replace('no-js', 'js');
+ </script>
+ <div id="MasterWrap">
+ <div class="Row Pos-r Start-0 T-0 End-0 Z-10 yog-hd" id="GS-UH">
+
+ <section id="header" class="yom-header yom-header-property-0 UHStencil">
+ <link rel="stylesheet" type="text/css" href="https://s.yimg.com/zz/combo?kx/yucs/uh3s/atomic/88/css/atomic-min.css&amp;kx/yucs/uh_common/meta/3/css/meta-min.css&amp;kx/yucs/uhc/yset-search/133/css/generic_yset_search-min.css&amp;kx/yucs/uhc/skip-links/4/css/skip-min.css&amp;kx/yucs/uh3s/trending-now/53/css/trending_now-min.css&amp;kx/yucs/uh3s/uh/410/css/uh-gs-grid-min.css" />
+
+ <style type="text/css">
+ @font-face {
+ font-family: uh;
+ src: url(https://s.yimg.com/os/uh-icons/0.1.16/uh/fonts/uh.eot?);
+ src: url(https://s.yimg.com/os/uh-icons/0.1.16/uh/fonts/uh.eot?#iefix) format('embedded-opentype'), url(https://s.yimg.com/os/uh-icons/0.1.16/uh/fonts/uh.woff2?) format('woff2'), url(https://s.yimg.com/os/uh-icons/0.1.16/uh/fonts/uh.woff?) format('woff'), url(https://s.yimg.com/os/uh-icons/0.1.16/uh/fonts/uh.ttf?) format('truetype'), url(https://s.yimg.com/os/uh-icons/0.1.16/uh/fonts/uh.svg?#uh) format('svg');
+ font-weight: 400;
+ font-style: normal
+ }
+
+ [class^=Ycon],
+ [class*=" Ycon"] {
+ font-family: uh;
+ speak: none;
+ font-style: normal;
+ font-weight: 400;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale
+ }
+ </style>
+ <!-- empty -->
+ <!-- meta -->
+ <div id="yucs-meta" data-authstate="signedout" data-cobrand="standard" data-crumb="JQNioL4HmbN" data-mc-crumb="2Vh6eAGdmtb" data-gta="Cabp7SyDwKp" data-device="desktop" data-experience="stencil-gs-grid" data-firstname="" data-style="" data-flight="1481706596" data-forcecobrand="standard" data-guid="" data-host="gma.yahoo.com" data-https="1" data-languagetag="en-us" data-property="news" data-protocol="https" data-shortfirstname="" data-shortuserid="" data-status="active" data-spaceid="1197056126" data-test_id="" data-userid="" data-stickyheader="true" data-headercollapse="" data-uh-test="acctswitch"></div>
+ <!-- /meta -->
+ <div id="yucs-comet" style="display:none;"></div>
+ <div id="UH" class="Row Pos(r) Start(0) T(0) End(0) Z(10) yucs " role="banner" data-protocol="https" data-property="news" data-spaceid="1197056126" data-stencil="true">
+ <style>
+ #yucs-profile {
+ padding-left: 0!important;
+ }
+
+ .yucs-trigger .Icon,
+ .yucs-trigger b {
+ line-height: 22px !important;
+ height: 22px !important;
+ }
+
+ .yucs-trigger .Icon {
+ font-size: 22px !important;
+ }
+
+ .yucs-trigger .AlertBadge,
+ .yucs-trigger .MailBadge {
+ line-height: 13px !important;
+ height: 13px !important;
+ }
+
+ .yucs-mail_link_att.yucs-property-frontpage #yucs-mail_link_id i.Icon {
+ text-indent: -9999em;
+ }
+ /* mail badge */
+
+ .AlertBadge,
+ .MailBadge {
+ padding: 3px 6px 2px 6px;
+ min-width: 6px;
+ max-width: 16px;
+ margin-left: -13px;
+ }
+ /* search box */
+
+ #UHSearchBox {
+ border: 1px solid #ceced6 !important;
+ border-radius: 2px;
+ height: 34px;
+ *height: 18px;
+ }
+
+ #UHSearchBox:focus {
+ border: 1px solid #7590f5 !important;
+ box-shadow: none !important;
+ }
+ /* buttons */
+
+ #UHSearchWeb,
+ #UHSearchProperty {
+ height: 32px !important;
+ line-height: 34px !important;
+ -webkit-appearance: none;
+ }
+
+ #Stencil #UHSearchWeb,
+ #Stencil #UHSearchProperty {
+ height: 30px;
+ box-sizing: content-box;
+ min-width: 92px;
+ padding-left: 14px;
+ padding-right: 14px;
+ *width: 100%;
+ }
+
+ #Stencil .UHCol1 {
+ z-index: 150;
+ }
+
+ body {
+ margin-top: 0px !important;
+ }
+
+ .DarkTheme .yucs-trigger .Ycon {
+ color: #fff;
+ }
+
+ #UH[data-property=groups] #uhWrapper {
+ max-width: 1210px;
+ margin: 0;
+ min-width: 995px;
+ }
+ /*
+#UH[data-property=answers] #uhWrapper {
+max-width: 1260px;
+margin: 0;
+min-width: 1024px;
+}
+*/
+
+ #UH[data-property=groups] .UHCol2 {
+ border-left: 190px solid transparent;
+ padding-right: 335px;
+ }
+ /*
+#UH[data-property=answers] .UHCol2{
+border-left: 190px solid transparent;
+padding-right: 310px;
+}
+*/
+ /*#UH[data-property=answers] .UHCol1,*/
+
+ #UH[data-property=groups] .UHCol1 {
+ width: 190px;
+ }
+ </style>
+ <div id="yucs-disclaimer" class="yucs-disclaimer yucs-activate yucs-hide yucs-property-news yucs-fcb- " data-cobrand="standard" data-cu="0" data-dsstext="Want a better search experience? {dssLink}Set your Search to Yahoo{linkEnd}" data-dsstext-mobile="Search Less, Find More" data-dsstext-mobile-ok="OK" data-dsstext-mobile-set-search="Set Search to Yahoo" data-dssstbtext="Yahoo is the preferred search engine for Firefox. Switch now." data-dssstb-ok="Yes" data-dssstb-no="Not Now" data-ylt-link="https://search.yahoo.com/searchset;_ylt=Ao06EENl6Z7BIKiqM7fS6hp.oFlH;_ylu=X3oDMTBvMTBzaDN1BHNlYwNVSCAzIERlc2t0b3AgRFNTIEJhcg--;_ylg=X3oDMTBsN2ZkdDVwBGxhbmcDZW4tVVMEcHQDNAR0ZXN0Aw--;_ylv=3?pn=" data-ylt-dssbarclose="/;_ylt=AuX6z5qSpNukvSF5BoCQq61.oFlH;_ylu=X3oDMTBvMTBzaDN1BHNlYwNVSCAzIERlc2t0b3AgRFNTIEJhcg--;_ylg=X3oDMTBsN2ZkdDVwBGxhbmcDZW4tVVMEcHQDNAR0ZXN0Aw--;_ylv=3" data-ylt-dssbaropen="/;_ylt=Auhwa6B_7sgWBnrFBnuJICt.oFlH;_ylu=X3oDMTBvMTBzaDN1BHNlYwNVSCAzIERlc2t0b3AgRFNTIEJhcg--;_ylg=X3oDMTBsN2ZkdDVwBGxhbmcDZW4tVVMEcHQDNAR0ZXN0Aw--;_ylv=3" data-ylt-dssstb-link="https://downloads.yahoo.com/sp-firefox;_ylt=Ag5TXdUrh8Vbxl6hnMDeOEF.oFlH;_ylu=X3oDMTBzczgxOHZ0BHNlYwNVSCAzIERlc2t0b3AgRFNTIFNUQiBCYXI-;_ylg=X3oDMTBsN2ZkdDVwBGxhbmcDZW4tVVMEcHQDNAR0ZXN0Aw--;_ylv=3" data-ylt-dssstbbarclose="/;_ylt=AqTBi0PhFhJ0mmiA_FY8zg1.oFlH;_ylu=X3oDMTBzczgxOHZ0BHNlYwNVSCAzIERlc2t0b3AgRFNTIFNUQiBCYXI-;_ylg=X3oDMTBsN2ZkdDVwBGxhbmcDZW4tVVMEcHQDNAR0ZXN0Aw--;_ylv=3" data-ylt-dssstbbaropen="/;_ylt=AhJdz0KMSAWuSxPH640Zkcd.oFlH;_ylu=X3oDMTBzczgxOHZ0BHNlYwNVSCAzIERlc2t0b3AgRFNTIFNUQiBCYXI-;_ylg=X3oDMTBsN2ZkdDVwBGxhbmcDZW4tVVMEcHQDNAR0ZXN0Aw--;_ylv=3" data-ylt-dsscookiecleanedsuccess="/;_ylt=Aiy4HcqMoXAjQXXzaAQ6i85.oFlH;_ylu=X3oDMTExNTIzZTdlBHNlYwNVSCAzIERlc2t0b3AgRFNTIENvb2tpZSBDbGVhbg--;_ylg=X3oDMTBsN2ZkdDVwBGxhbmcDZW4tVVMEcHQDNAR0ZXN0Aw--;_ylv=3" data-ylt-dsscookiecleanedfailed="/;_ylt=Ah5HIOFTfgGZKc3sXhB2_j5.oFlH;_ylu=X3oDMTExNTIzZTdlBHNlYwNVSCAzIERlc2t0b3AgRFNTIENvb2tpZSBDbGVhbg--;_ylg=X3oDMTBsN2ZkdDVwBGxhbmcDZW4tVVMEcHQDNAR0ZXN0Aw--;_ylv=3" data-linktarget="_top" data-lang="en-us" data-property="news" data-device="Desktop" data-close-txt="Close this window" data-maybelater-txt="Maybe Later" data-killswitch="0" data-host="gma.yahoo.com" data-spaceid="1197056126" data-pn="BdGC/FpAJjY" data-dss-cookie-cleanup="CoPi7TydfWB" data-pn-en-ca-mobile-frontpage="LzacAmZxAT8" data-pn-de-de-mobile-frontpage="MKkn82ykUHg" data-pn-es-es-mobile-frontpage="MEbyFbRAX3E" data-pn-fr-fr-mobile-frontpage="0pLNQDV8cyv" data-pn-en-in-mobile-frontpage="DAY/MfTP/68" data-pn-it-it-mobile-frontpage="EwgpYSx29QL" data-pn-en-us-mobile-frontpage="BdGC/FpAJjY" data-pn-en-sg-mobile-frontpage="tI/Zr2BleVI" data-pn-en-gb-mobile-frontpage="X5dWP6IEiHr" data-pn-en-us-mobile-mail="a80dzL4auX." data-pn-en-ca-mobile-mail="5seY39huwaJ" data-pn-de-de-mobile-mail="Y1vc7BsT5ak" data-pn-es-es-mobile-mail="Pku3SX88gzG" data-pn-fr-fr-mobile-mail="3Sj03vETzxa" data-pn-en-in-mobile-mail="2eAO7Nl000R" data-pn-it-it-mobile-mail="s7dziWNqrOW" data-pn-en-sg-mobile-mail="cCt1R3RXxnV" data-pn-en-gb-mobile-mail="UpfEFCJamTY" data-pn-pt-br-mobile-mail="Cx4XcEkdOoc" data-pn-en-us-tablet-frontpage="a1IQzQYfF/B" data-pn-en-us-tablet-mail="vRFxLh8GCkN" data-pn-en-ca-tablet-mail=".uvzkNTd6jQ" data-pn-de-de-tablet-mail="EBkipFehECq" data-pn-es-es-tablet-mail="i2aKET.EpQa" data-pn-fr-fr-tablet-mail="qNwa7JJAVLe" data-pn-en-in-tablet-mail="0pZYMXC6hBf" data-pn-it-it-tablet-mail="iQ.WzWgfnvM" data-pn-en-sg-tablet-mail="9rJMX/Gl0TQ" data-pn-en-gb-tablet-mail="nyYqOSSpVpV" data-pn-pt-br-tablet-mail="DD.iutQGmpQ" data-news-search-yahoo-com="Bg8AcwUwV/5" data-answers-search-yahoo-com="qn8gasoIqRC" data-finance-search-yahoo-com="K.1onpbuqrR" data-images-search-yahoo-com="IxMJzuRYm.." data-video-search-yahoo-com="D0kmzGJnmIA" data-sports-search-yahoo-com="4g62qmRwgzh" data-shopping-search-yahoo-com="Dsa2f94A6EM" data-shopping-yahoo-com="Dsa2f94A6EM" data-us-qa-trunk-news-search-yahoo-com="Bg8AcwUwV/5" data-dss="0"></div>
+ <script charset="utf-8" type="text/javascript" src="https://s.yimg.com/zz/kx/yucs/uhc/yset-search/133/js/generic_yset_search-min.js" async=""></script>
+ <div id="masterNav" class="yucs-ps Bg(#2d1152)" data-ylk="rspns:nav;act:click;t1:a1;t2:uh-d;t3:tb;t5:pty;slk:pty;elm:itm;elmt:pty;itc:0;">
+ <ul id="Eyebrow" class="Mb(12px)! Mx(0)! Mt(0)! Lh(1.7) NavLinks Z(3) H(22px) Pos(r) P(0) Whs(nw)" role="navigation">
+ <li id="yucs-top-home" class="D(ib) Zoom Va(t) Lh(1.7) Mend(18px) Pstart(10px)"><a href="https://www.yahoo.com/" data-ylk="t5:home;slk:home;" class="Td(n)! Td(u)!:h Fz(13px) C(#fff)!"><i id="my-home" class="Fl(start) NavLinks_Lh(1.7) Mend(6px) Ycon YconHome Fz(13px) Mt(-1px) Td(n)! Td(n)!:h C(#fff)!">⌂</i><b class="Mstart(-1px) Fw(400) C(#fff)!">Home</b></a></li>
+ <li id="yucs-top-mail" class="D(ib) Zoom Va(t) Lh(1.7) Mend(18px) Pstart(14px)"><a href="https://mail.yahoo.com/?.intl=us&amp;.lang=en-US&amp;.src=ym" data-ylk="t5:mail;slk:mail;" class="Td(n)! Td(u)!:h Fz(13px) C(#fff)!">Mail</a></li>
+ <li id="yucs-top-search" class="D(ib) Zoom Va(t) Lh(1.7) Mend(18px) Pstart(14px)"><a href="https://search.yahoo.com/search" data-ylk="t5:search;slk:search;" class="Td(n)! Td(u)!:h Fz(13px) C(#fff)!">Search</a></li>
+ <li id="yucs-top-news" class="D(ib) Zoom Va(t) Lh(1.7) Mend(18px) Pstart(14px)"><a href="https://www.yahoo.com/news" data-ylk="t5:news;slk:news;" class="Td(n)! Td(u)!:h Fz(13px) C(#fff)!">News</a></li>
+ <li id="yucs-top-sports" class="D(ib) Zoom Va(t) Lh(1.7) Mend(18px) Pstart(14px)"><a href="http://sports.yahoo.com/" data-ylk="t5:sports;slk:sports;" class="Td(n)! Td(u)!:h Fz(13px) C(#fff)!">Sports</a></li>
+ <li id="yucs-top-finance" class="D(ib) Zoom Va(t) Lh(1.7) Mend(18px) Pstart(14px)"><a href="http://finance.yahoo.com/" data-ylk="t5:finance;slk:finance;" class="Td(n)! Td(u)!:h Fz(13px) C(#fff)!">Finance</a></li>
+ <li id="yucs-top-celebrity" class="D(ib) Zoom Va(t) Lh(1.7) Mend(18px) Pstart(14px)"><a href="https://celebrity.yahoo.com/" data-ylk="t5:celebrity;slk:celebrity;" class="Td(n)! Td(u)!:h Fz(13px) C(#fff)!">Celebrity</a></li>
+ <li id="yucs-top-weather" class="D(ib) Zoom Va(t) Lh(1.7) Mend(18px) Pstart(14px)"><a href="https://www.yahoo.com/news/weather" data-ylk="t5:weather;slk:weather;" class="Td(n)! Td(u)!:h Fz(13px) C(#fff)!">Weather</a></li>
+ <li id="yucs-top-answers" class="D(ib) Zoom Va(t) Lh(1.7) Mend(18px) Pstart(14px)"><a href="https://answers.yahoo.com/" data-ylk="t5:answers;slk:answers;" class="Td(n)! Td(u)!:h Fz(13px) C(#fff)!">Answers</a></li>
+ <li id="yucs-top-flickr" class="D(ib) Zoom Va(t) Lh(1.7) Mend(18px) Pstart(14px)"><a href="https://www.flickr.com/" data-ylk="t5:flickr;slk:flickr;" class="Td(n)! Td(u)!:h Fz(13px) C(#fff)!">Flickr</a></li>
+ <li id="yucs-top-mobile" class="D(ib) Zoom Va(t) Lh(1.7) Mend(18px) Pstart(14px)"><a href="https://mobile.yahoo.com/" data-ylk="t5:mobile;slk:mobile;" class="Td(n)! Td(u)!:h Fz(13px) C(#fff)!">Mobile</a></li>
+ <li id="yucs-more" class="D(ib) Zoom Va(t) Pos(r) Z(1) Pstart(10px) Pend(6px) MoreDropDown yucs-menu yucs-more-activate" data-ylt=""><a href="http://everything.yahoo.com/" role="button" id="yucs-more-link" class="Pos(r) Z(1) rapidnofollow D(b) Cf P(0)!" data-ylk="rspns:op;t5:more;slk:more;elmt:mu;itc:1;"><b class="Fl(start) Lh(1.7) Td(u):h MoreDropDown_C(#fff) MoreDropDown-on_C(#1d1da3)!">More</b><i class="Fz(15px) Va(m) Lh(1) C(#fff) Mstart(2px) Ycon YconArrowDown Ta(c) Td(n) Td(n):h Fl(end) Mt(4px) MoreDropDown-on_C(#1d1da3)!">⋁</i></a>
+ <div id="yucs-top-menu">
+ <div class="Pos(a) Start(0) T(100%) MoreDropDown-Box Bdbc(#d9d9d9) Bdbs(s) Bdbw(1px) Miw(6em) Mstart(-1px) Bg(#fff) Bdstartc(#d9d9d9) Bdstarts(s) Bdstartw(1px) Bdendc(#d9d9d9) Bdends(s) Bdendw(1px) Bxsh(moresh) D(n) yui3-menu-content"><iframe class="Pos(a) Start(0) W(100%) H(100%) Bd(0)" src="https://s.yimg.com/os/mit/media/m/base/images/transparent-95031.png" frameborder="0"></iframe>
+ <ul class="yucs-leavable Pos(r) Px(10px)! My(.55em)">
+ <li id="yucs-top-politics"><a href="https://www.yahoo.com/politics" data-ylk="t5:politics;slk:politics;" class="Td(n)! Td(u)!:h Fz(13px) D(b) Zoom Py(6px) Lh(1.25) C(#1d1da3)!">Politics</a></li>
+ <li id="yucs-top-movies"><a href="https://www.yahoo.com/movies" data-ylk="t5:movies;slk:movies;" class="Td(n)! Td(u)!:h Fz(13px) D(b) Zoom Py(6px) Lh(1.25) C(#1d1da3)!">Movies</a></li>
+ <li id="yucs-top-music"><a href="https://www.yahoo.com/music" data-ylk="t5:music;slk:music;" class="Td(n)! Td(u)!:h Fz(13px) D(b) Zoom Py(6px) Lh(1.25) C(#1d1da3)!">Music</a></li>
+ <li id="yucs-top-tv"><a href="https://www.yahoo.com/tv" data-ylk="t5:tv;slk:tv;" class="Td(n)! Td(u)!:h Fz(13px) D(b) Zoom Py(6px) Lh(1.25) C(#1d1da3)!">TV</a></li>
+ <li id="yucs-top-groups"><a href="https://groups.yahoo.com/" data-ylk="t5:groups;slk:groups;" class="Td(n)! Td(u)!:h Fz(13px) D(b) Zoom Py(6px) Lh(1.25) C(#1d1da3)!">Groups</a></li>
+ <li id="yucs-top-style"><a href="https://www.yahoo.com/style" data-ylk="t5:style;slk:style;" class="Td(n)! Td(u)!:h Fz(13px) D(b) Zoom Py(6px) Lh(1.25) C(#1d1da3)!">Style</a></li>
+ <li id="yucs-top-beauty"><a href="https://www.yahoo.com/beauty" data-ylk="t5:beauty;slk:beauty;" class="Td(n)! Td(u)!:h Fz(13px) D(b) Zoom Py(6px) Lh(1.25) C(#1d1da3)!">Beauty</a></li>
+ <li id="yucs-top-tech"><a href="https://www.yahoo.com/tech" data-ylk="t5:tech;slk:tech;" class="Td(n)! Td(u)!:h Fz(13px) D(b) Zoom Py(6px) Lh(1.25) C(#1d1da3)!">Tech</a></li>
+ <li id="yucs-top-shopping"><a href="http://shopping.yahoo.com/" data-ylk="t5:shopping;slk:shopping;" class="Td(n)! Td(u)!:h Fz(13px) D(b) Zoom Py(6px) Lh(1.25) C(#1d1da3)!">Shopping</a></li>
+ </ul>
+ </div>
+ </div>
+ </li>
+ <style>
+ #yucs-top-ff-promo {
+ position: absolute;
+ right: 0;
+ right: auto\9;
+ left: 950px\9;
+ right: 0\9\0;
+ left: auto\9\0;
+ margin-left: 18px;
+ }
+
+ #yucs-top-ff-promo a span {
+ text-decoration: none;
+ display: inline-block;
+ }
+
+ @media screen and (max-width: 1124px) {
+ #UH.yucs-mail #yucs-top-ff-promo {
+ display: none;
+ }
+ }
+
+ @media screen and (max-width:1150px) {
+ #yucs-top-ff-promo {
+ right: auto;
+ }
+ }
+ </style>
+ <li id="yucs-top-ff-promo" class="D(ib) Zoom Va(t) Mend(18px) Pstart(14px) D(n)">
+ <a class="D(b) C(#fff)! Pstart(4px) Td(n)! Td(u)!:h Fz(13px)" href="https://www.mozilla.org/firefox/new/?utm_source=yahoo&amp;utm_medium=referral&amp;utm_campaign=y-uh&amp;utm_content=y-news-try" data-ylk="t5:ff-promo;slk:ff-promo;t4:pty-mu;" target="_blank"><img id="yucs-ff-img" class="Pend(4px) yucs_Va(m)" src="https://s.yimg.com/kx/yucs/uh3s/promo-ff/1/images/ff_icon-compressed.png" alt="Firefox" height="15" width="15" />Try Yahoo News on Firefox<span> »</span></a>
+ </li>
+ <script>
+ var s = false,
+ ts, re2, sdts, v2 = null,
+ cookies = "; " + document.cookie,
+ dss = cookies.split("; DSS="),
+ m, ua = window.navigator.userAgent.toLowerCase();
+ m = ua.match(/firefox\/(\d+)/);
+ if (!m || (m & amp; & amp; m[1] & amp; & amp; parseInt(m[1]) & lt; 34)) {
+ if (ua.indexOf('version') & gt; = 0 & amp; & amp; ua.indexOf('crios') & lt; 0) {
+ s = true;
+ }
+ if (!!window.opera || navigator.userAgent.indexOf(' OPR/') & gt; = 0) {
+ s = true;
+ }
+ if (dss & amp; & amp; dss.length === 2) {
+ re2 = new RegExp('sdts=(\\d+)');
+ v2 = re2.exec(dss[1]);
+ if (v2 & amp; & amp; v2.length === 2) {
+ sdts = v2[1];
+ }
+ if (sdts & amp; & amp;
+ (parseInt(new Date().getTime() / 1000) - sdts) & lt; 604800) {
+ s = true;
+ }
+ }
+ if (!s) {
+ m = document.getElementById('yucs-top-ff-promo');
+ m.className = m.className.replace(/D\(n\)/g, '');
+ }
+ }
+ </script>
+ </ul>
+ </div>
+ <div id="uhWrapper" class="Mx(a) Z(1) Pos(r) Zoom" data-ylk="rspns:nav;act:click;t1:a1;t2:uh-d;itc:0;">
+ <div class="UHCol1 Pos(a) Start(0)" role="presentation">
+ <style>
+ /** * IE7+ and non-retina display */
+
+ .YLogoMY {
+ background-repeat: no-repeat;
+ background-image: url(https://s.yimg.com/rz/d/yahoo_news_en-US_s_f_pw_351x40_news.png);
+ _background-image: url(https://s.yimg.com/rz/d/yahoo_news_en-US_s_f_pw_351x40_news.gif);
+ /* IE6 */
+ width: 94px !important;
+ }
+
+ .DarkTheme .YLogoMY {
+ background-position: -352px 0px !important;
+ }
+ /** * For 'retina' display */
+
+ @media only screen and (-webkit-min-device-pixel-ratio: 2),
+ only screen and ( min--moz-device-pixel-ratio: 2),
+ only screen and ( -o-min-device-pixel-ratio: 2/1),
+ only screen and ( min-device-pixel-ratio: 2),
+ only screen and ( min-resolution: 192dpi),
+ only screen and ( min-resolution: 2dppx) {
+ .YLogoMY {
+ background-image: url(https://s.yimg.com/rz/d/yahoo_news_en-US_s_f_pw_351x40_news_2x.png) !important;
+ background-size: 702px 40px !important;
+ }
+ }
+ </style>
+ <a class="YLogoMY D(b) Ov(h) Ti(-20em) Zoom Darktheme_Bgp(b_t) W(137px) H(34px) Mx(a)! " data-ylk="slk:logo;t3:logo;t5:logo;elm:img;elmt:logo;" href="https://news.yahoo.com" target="_top"></a>
+ </div>
+ <div class="UHCol2 Pos(a) Bxz(bb)" role="presentation">
+ <form id="UHSearch" target="_top" autocomplete="off" data-vfr="uh3_news_vert_gs" data-webaction="https://search.yahoo.com/search" action="https://search.yahoo.com/search" data-webaction-tar="" data-verticalaction-tar="" method="get" class="M(0) P(0) UHSearch-Init">
+ <table class="W(100%) M(0)! P(0) H(100%)">
+ <tbody>
+ <tr>
+ <td class="W(100%) W-100 Va(t) Px(0)"><input id="UHSearchBox" class="yucs_W(100%) Ff(ss)! Fz(18px)! O(n):f Fw(200)! Bxz(bb) M(0)! Py(4px)! Bdrs(0)! Bxsh(n) yucs-clear-padding_Pend(35px)" style="border-color:#7590f5;" name="p" aria-describedby="UHSearchBox" data-ylk="slk:srchinpt-hddn;itc:1;" data-yltvsearch="" data-yltvsearchsugg="/" data-satype="mini" data-gosurl="https://search.yahoo.com/sugg/ss/gossip-us_ss-ura/" data-pubid="104" data-appid="" data-maxresults="10" data-resize=" " type="text" />
+ <div id="yucs-satray" class="sa-tray D(n) Fz(13px) uhFancyBox Bg(#fff) Bd(ttbd) Bxsh(ttsh) Bdrs(3px) Bdrstend(0) Bdrststart(0) Lh(1.5) C(#000) Td(n) Td(n):h" data-wstext="Search Web for: " data-wsearch="https://search.yahoo.com/search" data-vfr="uh3_news_vert_gs" data-vsearch="" data-vstext="Search News for: "> </div>
+ </td>
+ <!-- ".Grid' is used here to kill white-space -->
+ <td class="Va(t) Tren(os) W(10%) Whs(nw) fp-default_Pstart(5px) Pstart(4px) Pend(0) Bdcl(s)"><input id="UHSearchWeb" class="D(ib) Py(0) Zoom Va(t) uhBtn Ff(ss)! Fw(40) Bxz(bb) Td(n) D(ib) Zoom Va(m) Ta(c) Bgr(rx) Bdrs(3px) Bdw(1px) M(0)! C(#fff) uh-ignore-rapid Cur(p)" value="Search" data-ylk="t3:srch;t5:srchweb;slk:srchweb;elm:btn;elmt:srch;itc=0;tar:;" type="submit" /></td>
+ <style type="text/css">
+ #UHSearchWeb {
+ font-size: 15px !important;
+ border-radius: 4px!important;
+ }
+
+ #UHSearchWeb,
+ #UHSearchProperty {
+ height: 30px;
+ }
+
+ .ua-ie8 #UHSearchWeb,
+ .ua-ie8 #UHSearchProperty,
+ .ua-ie9 #UHSearchWeb,
+ .ua-ie9 #UHSearchProperty {
+ height: 32px;
+ }
+
+ #UHSearchWeb,
+ .Themable .ThemeReset #UHSearchWeb {
+ background: #3775dd;
+ border: 0;
+ box-shadow: 0 2px #21487f;
+ }
+ </style>
+ </tr>
+ </tbody>
+ </table> <input data-sa="0" id="fr" name="fr" data-ylk="slk:frcode-hddn;itc:1;" value="uh3_news_web_gs" type="hidden" /> <input id="yucs-fr2" name="fr2" value="p:news,m:sb" data-ylk="slk:fr2code-hddn;itc:1;" type="hidden" /> </form>
+ <ul id="Skip-links" class="Z-1">
+ <li><a href="#Navigation">Skip to Navigation</a></li>
+ <li><a href="#Main">Skip to Main content</a></li>
+ <li><a href="#Aside">Skip to Right rail</a></li>
+ </ul>
+ <!-- /#uhSearchForm -->
+ <div id="yucs-trending-now" class="Ov(h) Fw(b) Fz(11px) Mt(6px) Op(0)" style="height: 15px; line-height: 14px;" data-fr-code="news-tts-ticker" data-fr2-code="p:nws,m:tn,ct:news,pg:1,stl:tckr" data-yql-env="" data-title-override="Trending" data-hsimp="" data-hspart="" data-type=""></div>
+ </div>
+ <div class="UHCol3 Pos(a) End(0)" role="presentation" id="uhNavWrapper">
+ <ul class="Fl(end) Mend(10px)! My(6px)! Lts(-0.31em) Tren(os) Whs(nw)">
+ <li class="D(ib) Zoom Va(t) Pos(r) Pstart(4px) Mend(20px) Lts(n)" id="yucs-profile" data-yltmenushown="/;_ylt=Ap.su2UQbUUVpeTJo1bYovZ.oFlH;_ylu=X3oDMTBodGludGRoBHNlYwNVSCAzIFByb2ZpbGUg;_ylg=X3oDMTBsN2ZkdDVwBGxhbmcDZW4tVVMEcHQDNAR0ZXN0Aw--;_ylv=3">
+ <a class="D(b) MouseOver Td(n) Td(n)!:h signin yucs-trigger Lh(1) Lts($ws)" href="https://login.yahoo.com/config/login?.src=yn&amp;.intl=us&amp;.lang=en-US&amp;.done=https://gma.yahoo.com/veteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html" target="_top" rel="nofollow" aria-label="Profile" aria-haspopup="true" role="button" data-ylk="t3:tl-lst;t5:usersigni;slk:usersigni;elm:tl;elmt:lgi;"> <i class="Va(m) W(a) yucs-avatar Ycon YconProfile Fz(22px) Lh(1) C(#32007f) Mend(7px) Lts(n)">👤</i> <b class="Va(m) yucs-trigger:h_Td(u) Lts(n) Fz(13px)" title="Sign in">Sign in</b></a>
+ </li>
+ <li class="D(ib) Zoom Va(t) Mend(20px) Pos(r) yucs-mail_link yucs-mailpreview-ancestor" id="yucs-mail">
+ <a id="yucs-mail_link_id" class="D(ib) sp yltasis yucs-fc Pos(r) MouseOver Td(n) Td(n)!:h yucs-menu-link yucs-trigger Lh(1) Lts($ws) Mx(-10px) My(-10px) Px(10px) Py(10px)" href="https://mail.yahoo.com/?.intl=us&amp;.lang=en-US&amp;.src=ym" data-ylk="t3:tl-lst;t5:mailsignost;slk:mailsignost;elm:tl;elmt:mail;"> <i class="Va(m) W(a) Mend(7px) Ycon YconMail Lh(1) Fz(22px) Lts(n)">✉</i> <b class="Va(m) yucs-trigger:h_Td(u) Lts(n) Fz(13px)" title="Mail">Mail</b> </a>
+ </li>
+ <li id="yucs-help" class=" yucs-activate yucs-help yucs-menu_nav D(ib) Zoom Va(t) Pos(r)">
+ <a id="yucs-help_button" class="D(ib) yltasis yucs-trigger Lh(1) Td(n) Td(n):h" href="#" title="Help" aria-haspopup="true" role="button" data-ylk="rspns:op;t3:tl-lst;t4:cog-mu;t5:cogop;slk:cogop;elm:tl;elmt:cog;itc:1;"> <i class="Va(m) W(a)! Fz(22px) Ycon YconSettings C(#32007f) Lts(n) M(-10px) P(10px)">⚙</i> <b class="Hidden">Help</b> </a>
+ <div id="yucs-help_inner" class="uhFancyBox Bg(#fff) Bd(ttbd) Bxsh(ttsh) Bdrs(3px) uhArrow Mt(10px) Px(10px) Pos(a) Lh(1.4) End(0) Mend(-8px) Whs(nw) D(n) yucs-menu yucs-hm-activate" data-yltmenushown="/" aria-hidden="true">
+ <ul id="yuhead-help-panel" class="Mx(-10px)! Pos(r) My(0)! P(0) C(#000)!">
+ <li class="Py(8px) Px(10px)"><a class="yucs-acct-link Td(n)! Td(u)!:h D(b) C(#000)!" href="https://login.yahoo.com/account/personalinfo?.intl=us&amp;.lang=en-US&amp;.done=https://gma.yahoo.com/veteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html&amp;.src=yn" target="_top" data-ylk="t3:tl-lst;t4:cog-mu;t5:acctinfo;slk:acctinfo;elm:itm;elmt:acctinfo;">Account Info</a></li>
+ <li class="Pb(8px) Px(10px)"><a id="yhelp-link" data-inproducthelp="news" class="D(b) C(#000)! Td(n)! Td(u)!:h Fz(13px)" href="https://help.yahoo.com/l/us/yahoo/news_global/" rel="nofollow" data-ylk="t3:tl-lst;t4:cog-mu;t5:hlp;slk:hlp;elm:itm;elmt:hlp;">Help</a></li>
+ <li class="Px(10px) Py(8px) Bdw(0) Bdtw(1px) Bds(s) Bdc(#e2e2e6)"><a class="D(b) C(#000)! Td(n)! Td(u)!:h Fz(13px)" href="http://feedback.yahoo.com/forums/204992" rel="nofollow" data-ylk="t3:tl-lst;t4:cog-mu;t5:sggstn;slk:sggstn;elm:itm;elmt:sggstn;">Suggestions</a></li>
+ </ul>
+ </div>
+ </li>
+ </ul>
+ </div>
+ </div>
+ <div id="yhelp_container" class="yui3-skin-sam"> </div>
+ <!-- /#UH -->
+ </div>
+ <!-- alert -->
+ <!-- /alert -->
+ <!-- polyfills -->
+ <!-- /polyfills -->
+ <div id="yucs-location-js" class="yucs-hide yucs-offscreen yucs-location-activate" data-appid="yahoo.locdrop.ucs.desktop" data-crumb="3uUCZ70m5wT">
+ <!-- empty for ie -->
+ </div>
+ <script>
+ YMedia.use("event", "get", function(Y) {
+ Y.once("load", function() {
+ Y.Get.js("https://s.yimg.com/zz/combo?kx/yucs/uh3s/uh/414/js/uh-min.js&amp;kx/yucs/uh2/common/145/js/jsonp-super-cached-min.js&amp;kx/yucs/uh3s/uh/379/js/escregex-min.js&amp;kx/yucs/uh3s/uh/376/js/persistence-min.js&amp;kx/yucs/uh3s/uh/401/js/menu_group_plugin-min.js&amp;kx/yucs/uh3s/uh/430/js/menu-plugin-min.js&amp;kx/yucs/uh3s/uh/463/js/menu_handler_v2-min.js&amp;kx/yucs/uh3s/uh/376/js/gallery-jsonp-min.js&amp;kx/yucs/uh3s/uh/408/js/logo_debug-min.js&amp;kx/yucs/uh3/uh/js/958/localeDateFormat-min.js&amp;kx/yucs/uh3s/uh/409/js/timestamp_library-min.js&amp;kx/yucs/uh3s/uh/376/js/usermenu_v2-min.js&amp;kx/yucs/uh3/signout-link/10/js/signout-min.js&amp;kx/yucs/uhc/rapid/50/js/uh_rapid-min.js&amp;kx/yucs/uhc/meta/66/js/meta-min.js&amp;kx/yucs/uh_common/beacon/18/js/beacon-min.js&amp;kx/yucs/uh2/comet/84/js/cometd-yui3-min.js&amp;kx/yucs/uh2/comet/84/js/conn-min.js&amp;kx/yucs/uh2/comet/84/js/dark-test-min.js&amp;kx/yucs/uh3/disclaimer/388/js/disclaimer_seed-min.js&amp;kx/yucs/uh3s/top-bar/137/js/top_bar_v2-min.js&amp;kx/yucs/uh3s/top-bar/139/js/home_menu-min.js&amp;kx/yucs/uh3s/search/379/js/search-min.js&amp;kx/yucs/uh3/search/611/js/search_plugin-min.js&amp;kx/yucs/uh3s/trending-now/43/js/trending_news-min.js&amp;kx/yucs/uh3s/help/70/js/help_menu_v4-min.js&amp;kx/yucs/uh3/location/10/js/uh_locdrop-min.js");
+ });
+ });
+ </script>
+ </section>
+ <!-- fe532.global.media.sg3.yahoo.com compressed/chunked Wed Dec 14 09:09:56 UTC 2016 -->
+
+
+ </div>
+ <div class="Splash">
+
+ </div>
+
+ <!-- START full -->
+
+ <!-- START N_C_R -->
+ <div class="Stage yog-sp Stack Pos-r Z-7">
+ <div class="ad-wrap clearfix">
+ <div id="yom-ad-LDRB" class="yom-ad yom-ad-LDRB" style="visibility: hidden;">
+ <div id="sb_rel_yom-ad-LDRB-iframe" class="darla" style="position: relative; z-index: 19; width: 728px; height: 90px; visibility: inherit; display: inline-block; font-size: 0px;"><iframe name="pos=LDRB&amp;id=yom-ad-LDRB-iframe&amp;html=%253Cstyle%2520type%253D%2522text/css%2522%253E%250A.CAN_ad%2520.yadslug%2520%257B%250A%2520%2520%2520%2520position%253A%2520absolute%2520%2521important%253B%2520right%253A%25201px%253B%2520top%253A1px%253B%2520display%253Ainline-block%250A%2521important%253B%2520z-index%2520%253A%2520999%253B%250A%2520%2520%2520%2520color%253A%2523999%2520%2521important%253Btext-decoration%253Anone%253Bbackground%253A%2523fff%250Aurl%2528%2527https%253A//secure.footprint.net/yieldmanager/apex/mediastore/adchoice_1.png%2527%2529%2520no-repeat%2520100%2525%25200%250A%2521important%253Bcursor%253Ahand%2520%2521important%253Bheight%253A12px%2520%2521important%253Bpadding%253A0px%252014px%25200px%250A1px%2520%2521important%253Bdisplay%253Ainline-block%2520%2521important%253B%250A%257D%250A.CAN_ad%2520.yadslug%2520span%2520%257Bdisplay%253Anone%2520%2521important%253B%257D%250A.CAN_ad%2520.yadslug%253Ahover%2520%257Bzoom%253A%25201%253B%257D%250A.CAN_ad%2520.yadslug%253Ahover%2520span%2520%257Bdisplay%253Ainline-block%2520%2521important%253Bcolor%253A%2523999%250A%2521important%253B%257D%250A.CAN_ad%2520.yadslug%253Ahover%2520span%252C%2520.CAN_ad%2520.yadslug%253Ahover%2520%257Bfont%253A11px%2520arial%250A%2521important%253B%257D%250A%253C/style%253E%2520%2520%2520%2520%250A%253Cdiv%2520class%253D%2522CAN_ad%2522%2520style%253D%2522display%253Ainline-block%253Bposition%253A%2520relative%253B%2522%253E%250A%253Ca%2520class%253D%2522yadslug%2522%250Ahref%253D%2522http%253A//info.yahoo.com/relevantads/%2522%250Atarget%253D%2522_blank%2522%253E%253Cspan%253EAdChoices%253C/span%253E%253C/a%253E%253C%2521--%2520APT%2520Vendor%253A%2520FreeWheel%2520Media%2520--%253E%250A%253C%2521--https%253A//beap-bc.yahoo.com/yc/YnY9MS4wLjAmYnM9KDE3aWpicmdvcShnaWQkU2I3SHFERXdOaTdGSDd2YVdGRU1Zd0ZUTVRFNExsaFJER1RfbmV1byxzdCQxNDgxNzA2NTk2NDI1ODgxLHNpJDQ0NjQwNTEsc3AkMTE5NzA1NjEyNixjdCQyNSx5YngkSTV5TUFLZFRLQkpWRjh0UndyanJtdyxsbmckZW4tdXMsY3IkNDQ5NDczNTA1MSx2JDIuMCxhaWQkbEcyRUR3cndFM2ctLGJpJDIyODEwODYwNTEsbW1lJDk2MTY4NDY0NTk1MzgzMjY1NjAsciQwLHlvbyQxLGFncCQzNDg0ODY5MDUxLGFwJExEUkIpKQ/2/*//--%253E%253Cscript%2520type%253D%2522text/javascript%2522%2520src%253D%2522https%253A//2912a.v.fwmrm.net/ad/g/1%253Fflag%253D-ptil%2526nw%253D168234%2526csid%253D1197056126%2526pvrn%253D1481706596.643921%2526resp%253Dad%2526prof%253D168234%253AABC_Live_HTTPS_Display%253B%253Bptgt%253Ds%2526envp%253D%2526slid%253Dleaderboard%2526slau%253DLeaderboard%252520728x90%2526w%253D728%2526h%253D90%2526cd%253D728%252C90%2522%253E%253C/script%253E%253Cnoscript%253E%253Ciframe%2520src%253D%2522https%253A//2912a.v.fwmrm.net/ad/g/1%253Fflag%253D-ptil%2526nw%253D168234%2526csid%253D1197056126%2526pvrn%253D1481706596.643921%2526resp%253Dad%2526prof%253D168234%253AABC_Live_HTTPS_Display_iframe%253B%253Bptgt%253Ds%2526envp%253D%2526slid%253Dleaderboard%2526slau%253DLeaderboard%252520728x90%2526w%253D728%2526h%253D90%2526cd%253D728%252C90%2522%2520width%253D%2522728%2522%2520height%253D%252290%2522%2520border%253D%25220%2522%2520/%253E%253C/noscript%253E%253Cscript%253Evar%2520url%2520%253D%2520%2522https%253A//sb.voicefive.com/c2/18904046/rs.js%2523c1%253D3%2526c3%253Dapt-630480051%2526c4%253D4494735051%2526c5%253D3484869051_gma.yahoo.com%257C-1%2526c6%253D%2526c10%253D1%2526c11%253D%2526c13%253D%2526c16%253Dyho%257Ccbt%2526rn%253D1481706596425881%2522%253B%2520if%2528url%2520%2526%2526%2520url.search%2528%2522http%2522%2529%2520%2521%253D%2520-1%2529%257Bdocument.write%2528%2527%253Cscript%2520src%253D%2522%2527%2520+%2520url%2520+%2520%2527%2522%253E%253C%255C/script%253E%2527%2529%253B%257D%253C/script%253E%253C%2521--QYZ%25202281086051%252C4494735051%252C%253B%253BLDRB%253B1197056126%253B1--%253E%253C/div%253E&amp;src=https%3A//s.yimg.com/rq/darla/2-9-9/html/r-sf.html&amp;cscHTML=&amp;cscURI=&amp;behavior=non_exp&amp;hasErr=&amp;hasError=&amp;adID=999999&amp;matchID=&amp;bookID=2281086051&amp;serveType=-1&amp;slotID=2&amp;size=728x90&amp;hasExternal=&amp;hasRMX=&amp;ioID=999999&amp;lineID=999999&amp;creativeID=4494735051&amp;placementID=3484869051&amp;impID=lG2EDwrwE3g-&amp;supp_ugc=0&amp;fdb=fdb_url%3Dhttps%253A//beap-bc.yahoo.com/af/sg3%253Fbv%253D1.0.0%2526bs%253D%252816jcu4mho%2528gid%2524Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo%252Cst%25241481706596425881%252Csrv%25241%252Csi%25244464051%252Cct%252425%252Cexp%25241481713796425881%252Cadv%252426429045973%252Cli%25243483659051%252Ccr%25244494735051%252Cdmn%2524www.zyrtec.com%252Cv%25241.0%252Cpbid%252420459933223%252Cseid%2524125022551%2529%2529%2526al%253D%2528type%2524%257Btype%257D%252Ccmnt%2524%257Bcmnt%257D%252Csubo%2524%257Bsubo%257D%2529%2526r%253D10%26fdb_on%3D1%26fdb_exp%3D1481713796425%26fdb_intl%3Den-US&amp;adc=label%3DAdChoices%26url%3Dhttps%253A//info.yahoo.com/privacy/us/yahoo/relevantads.html%26close%3DClose%26closeAd%3DClose%2520Ad%26showAd%3DShow%2520ad%26collapse%3DCollapse%26fdb%3DI%2520don%2527t%2520like%2520this%2520ad%26code%3Den-us&amp;closeBtn=&amp;serveTime=1481706596425881&amp;is3rd=0&amp;meta=ownerKey%253Dy%2526title%253DVeteran%252520Wraps%252520Baby%252520in%252520American%252520Flag%25252C%252520Photo%252520Sparks%252520Controversy%252520-%252520Yahoo%2526url%253Dhttps%25253A//gma.yahoo.com/veteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html%252523%2526urlref%253D%2526y%253DcscHTML%25253D%252526cscURI%25253D%252526impID%25253DlG2EDwrwE3g-%252526supp_ugc%25253D0%252526placementID%25253D3484869051%252526creativeID%25253D4494735051%252526serveTime%25253D1481706596425881%252526behavior%25253Dnon_exp%252526adID%25253D9616846459538326560%252526matchID%25253D999999.999999.999999.999999%252526err%25253D%252526facStatus%25253D%252526hasExternal%25253D0%252526size%25253D728x90%252526bookID%25253D2281086051%252526serveType%25253D-1%252526slotID%25253D2%252526fdb%25253D%2525257B%25252520%25252522fdb_url%25252522%2525253A%25252520%25252522https%2525253A%2525255C/%2525255C/beap-bc.yahoo.com%2525255C/af%2525255C/sg3%2525253Fbv%2525253D1.0.0%25252526bs%2525253D%2525252816jcu4mho%25252528gid%25252524Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo%2525252Cst%252525241481706596425881%2525252Csrv%252525241%2525252Csi%252525244464051%2525252Cct%2525252425%2525252Cexp%252525241481713796425881%2525252Cadv%2525252426429045973%2525252Cli%252525243483659051%2525252Ccr%252525244494735051%2525252Cdmn%25252524www.zyrtec.com%2525252Cv%252525241.0%2525252Cpbid%2525252420459933223%2525252Cseid%25252524125022551%25252529%25252529%25252526al%2525253D%25252528type%25252524%2525257Btype%2525257D%2525252Ccmnt%25252524%2525257Bcmnt%2525257D%2525252Csubo%25252524%2525257Bsubo%2525257D%25252529%25252526r%2525253D10%25252522%2525252C%25252520%25252522fdb_on%25252522%2525253A%25252520%252525221%25252522%2525252C%25252520%25252522fdb_exp%25252522%2525253A%25252520%252525221481713796425%25252522%2525252C%25252520%25252522fdb_intl%25252522%2525253A%25252520%25252522en-US%25252522%25252520%2525257D%252526slotData%25253Dpt%2525253D1%25252526bamt%2525253D10000000000.000000%25252526namt%2525253D0.000000%25252526isLiveAdPreview%2525253Dfalse%25252526is_ad_feedback%2525253Dfalse%25252526trusted_custom%2525253Dfalse%25252526isCompAds%2525253Dfalse%25252526adjf%2525253D1.000000%25252526alpha%2525253D-1.000000%25252526ffrac%2525253D1.000000%25252526pcpm%2525253D-1.000000%25252526fc%2525253Dfalse%25252526ecpm%2525253D0%25252526sdate%2525253D1450211400%25252526edate%2525253D1483246799%25252526bimpr%2525253D0%25252526pimpr%2525253D-274020896%25252526spltp%2525253D0%25252526frp%2525253Dfalse%25252526pvid%2525253DSb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo%252526adc%25253D%2525257B%25252522label%25252522%2525253A%25252522AdChoices%25252522%2525252C%25252522url%25252522%2525253A%25252522https%2525253A%2525255C/%2525255C/info.yahoo.com%2525255C/privacy%2525255C/us%2525255C/yahoo%2525255C/relevantads.html%25252522%2525252C%25252522close%25252522%2525253A%25252522Close%25252522%2525252C%25252522closeAd%25252522%2525253A%25252522Close%25252520Ad%25252522%2525252C%25252522showAd%25252522%2525253A%25252522Show%25252520ad%25252522%2525252C%25252522collapse%25252522%2525253A%25252522Collapse%25252522%2525252C%25252522fdb%25252522%2525253A%25252522I%25252520don%25252527t%25252520like%25252520this%25252520ad%25252522%2525252C%25252522code%25252522%2525253A%25252522en-us%25252522%2525257D%252526is3rd%25253D0%252526userProvidedData%25253D&amp;conf=pos%3DLDRB%26id%3DLDRB%26w%3D728%26h%3D90%26dest%3Dyom-ad-LDRB-iframe%26fr%3DexpIfr_exp%26clean%3Dyom-ad-LDRB%26rmxp%3D0%26z%3D20%26metaSize%3Dtrue%26supports%3Dexp-ovr%253D1%2526exp-push%253D1%26wcpx%3D1%26hcpx%3D1%26async%3Dfalse%26css%3D%26size%3D728x90%26bg%3Dtransparent%26tgt%3D_blank%26timeout%3Dfalse%26lowHTML%3D%26fdb%3Don%253D0%2526where%253Doutside%26meta%3Dtitle%253DVeteran%252520Wraps%252520Baby%252520in%252520American%252520Flag%25252C%252520Photo%252520Sparks%252520Controversy%252520-%252520Yahoo%2526url%253Dhttps%25253A//gma.yahoo.com/veteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html%252523%2526urlref%253D%26flex%3Dfalse&amp;bindOnly=false&amp;expanded=false&amp;viewSent=false&amp;loadSent=false&amp;nochrome=false&amp;ownsBG=false&amp;ownsLYR=false&amp;exP=false&amp;animating=false&amp;ckOn=true&amp;flexW=false&amp;flexH=false&amp;hf=true&amp;isFallback=-1&amp;fallbackSource=-1&amp;mouseover=0&amp;fbkTimer=0&amp;loadedAt=0&amp;nested=-1&amp;origX=197&amp;origY=105&amp;exW=-1&amp;exH=-1&amp;exT=-1&amp;exL=-1&amp;geom=id%253Dyom-ad-LDRB-iframe%2526orph%253Dfalse%2526synched%253D2%2526rect%253Dt%25253D105%252526l%25253D197%252526b%25253D195%252526r%25253D925%252526w%25253D728%252526h%25253D90%2526self%253Dt%25253D105%252526l%25253D197%252526b%25253D195%252526r%25253D925%252526w%25253D728%252526h%25253D90%252526iv%25253D1%252526riv%25253D1%252526xiv%25253D1%252526yiv%25253D1%252526civ%25253D0%252526pact%25253Dtrue%252526pvis%25253Dtrue%252526ts%25253D1481706756799%252526ivts%25253D1481706756795%252526ovts%25253D0%252526vr%25253D-1%252526vage%25253D4%252526vthresh%25253D50%252526rts%25253D1481706756791%252526age%25253D8%252526actage%25253D0%2526par%253Dt%25253D0%252526l%25253D0%252526b%25253D710%252526r%25253D1280%252526w%25253D1280%252526h%25253D710%2526exp%253Dt%25253D105%252526l%25253D197%252526b%25253D515%252526r%25253D355%252526w%25253D158%252526h%25253D410%252526iv%25253D1%252526riv%25253D1%252526xiv%25253D1%252526yiv%25253D1%252526civ%25253D0%2526fixed%253Dnull%2526scrollAdjust%253Dfalse%2526scroll%253Dtrue%2526root%253Dtrue%2526win%253Dt%25253D0%252526l%25253D0%252526b%25253D710%252526r%25253D1280%252526w%25253D1280%252526h%25253D710%2526doc%253Dt%25253D0%252526l%25253D0%252526b%25253D2518%252526r%25253D1280%252526w%25253D1280%252526h%25253D2518&amp;chrome=null&amp;flexInf=false&amp;dm=&amp;fpaint=null&amp;renderClass=expIfr_exp&amp;guid=dr__1_1481706756743_89&amp;ert=0&amp;eicf=0&amp;eff=0&amp;fbl=&amp;bbl=&amp;bv=53&amp;srcHost=https%3A//s.yimg.com&amp;host=https%3A//gma.yahoo.com&amp;hostURL=https%253A//gma.yahoo.com/veteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html&amp;fromURL=&amp;proxyID=&amp;html5=1&amp;proxyPath=" style="position: absolute; z-index: 20; width: 728px; height: 90px; top: 0px; left: 0px; visibility: hidden; display: none;" id="yom-ad-LDRB-iframe" src="https://s.yimg.com/rq/darla/2-9-9/html/r-sf.html" async="" scrolling="no" allowtransparency="true" hidefocus="true" tabindex="-1" marginwidth="0" marginheight="0" frameborder="no"></iframe></div>
+ </div>
+ <section id="mediacontentfollowproperty_3_wrapper">
+ <div id="mediacontentfollowproperty_3" class="yom-mod yom-app yom-follow-property tiny" data-ylk="mid:mediacontentfollowproperty_3;mpos:1;sec:mod-sh-fwm;test:;itc:1;">
+ <div class="hd">
+ <h3 class="Grid-U App-Title Mend-0 follow-text">Follow GMA</h3>
+ </div>
+ <div class="bd">
+ <ul>
+ <li class="follow-property-facebook clearfix">
+ <div class="follow-icon small">
+ <a class="Mt-2" href="https://www.facebook.com/GoodMorningAmerica" rel="publisher" role="link" target="_blank" title="on Facebook" data-ylk="t1:a4;t2:sh-fwm;t3:tp;sec:sh-fwm;elm:icn;cpos:1;_p:1;itc:0;tar:www.facebook.com;test:;act:click;rspns:nav;slk:btn-sh-fb;elmt:sh-fb;" data-action-outcome="sh" data-rapid_p="1">
+ <i class="Icon"></i>
+ </a>
+ </div>
+ <div class="follow-title"><a href="https://www.facebook.com/GoodMorningAmerica" rel="publisher" role="link" target="_blank" title="on Facebook" data-ylk="t1:a4;t2:sh-fwm;t3:tp;sec:sh-fwm;elm:itm;cpos:1;_p:1;itc:0;tar:www.facebook.com;test:;act:click;rspns:nav;slk:btn-sh-fb;elmt:sh-fb;" data-action-outcome="sh" data-rapid_p="2">on Facebook</a></div>
+ </li>
+ <li class="follow-property-twitter clearfix">
+ <div class="follow-icon small">
+ <a class="Mt-2" href="https://twitter.com/GMA" rel="publisher" role="link" target="_blank" title="on Twitter" data-ylk="t1:a4;t2:sh-fwm;t3:tp;sec:sh-fwm;elm:icn;cpos:1;_p:2;itc:0;tar:twitter.com;test:;act:click;rspns:nav;slk:btn-sh-tw;elmt:sh-tw;" data-action-outcome="sh" data-rapid_p="3">
+ <i class="Icon"></i>
+ </a>
+ </div>
+ <div class="follow-title"><a href="https://twitter.com/GMA" rel="publisher" role="link" target="_blank" title="on Twitter" data-ylk="t1:a4;t2:sh-fwm;t3:tp;sec:sh-fwm;elm:itm;cpos:1;_p:2;itc:0;tar:twitter.com;test:;act:click;rspns:nav;slk:btn-sh-tw;elmt:sh-tw;" data-action-outcome="sh" data-rapid_p="4">on Twitter</a></div>
+ </li>
+ <li class="follow-property-tumblr clearfix">
+ <div class="follow-icon small">
+ <a class="Mt-2" href="http://goodmorningamerica.tumblr.com" rel="publisher" role="link" target="_blank" title="on Tumblr" data-ylk="t1:a4;t2:sh-fwm;t3:tp;sec:sh-fwm;elm:icn;cpos:1;_p:3;itc:0;tar:goodmorningamerica.tumblr.com;test:;act:click;rspns:nav;slk:btn-sh-tu;elmt:sh-tu;" data-action-outcome="sh" data-rapid_p="5">
+ <i class="Icon"></i>
+ </a>
+ </div>
+ <div class="follow-title"><a href="http://goodmorningamerica.tumblr.com" rel="publisher" role="link" target="_blank" title="on Tumblr" data-ylk="t1:a4;t2:sh-fwm;t3:tp;sec:sh-fwm;elm:itm;cpos:1;_p:3;itc:0;tar:goodmorningamerica.tumblr.com;test:;act:click;rspns:nav;slk:btn-sh-tu;elmt:sh-tu;" data-action-outcome="sh" data-rapid_p="6">on Tumblr</a></div>
+ </li>
+ <li class="follow-property-gplus clearfix">
+ <div class="follow-icon small">
+ <a class="Mt-2" href="https://plus.google.com/+GMA" rel="publisher" role="link" target="_blank" title="on Google+" data-ylk="t1:a4;t2:sh-fwm;t3:tp;sec:sh-fwm;elm:icn;cpos:1;_p:4;itc:0;tar:plus.google.com;test:;act:click;rspns:nav;slk:btn-sh-gp;elmt:sh-gp;" data-action-outcome="sh" data-rapid_p="7">
+ <i class="Icon"></i>
+ </a>
+ </div>
+ <div class="follow-title"><a href="https://plus.google.com/+GMA" rel="publisher" role="link" target="_blank" title="on Google+" data-ylk="t1:a4;t2:sh-fwm;t3:tp;sec:sh-fwm;elm:itm;cpos:1;_p:4;itc:0;tar:plus.google.com;test:;act:click;rspns:nav;slk:btn-sh-gp;elmt:sh-gp;" data-action-outcome="sh" data-rapid_p="8">on Google+</a></div>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </section>
+ </div>
+ <div id="yom-ad-MAST" class="yom-ad yom-ad-MAST" style="visibility: inherit; display: none;">
+ <center>
+ <div id="yom-ad-MAST-iframe" class="yom-ad">
+ <center>
+ <script>
+ var MAST_noadPos = document.getElementById("yom-ad-MAST");
+ if (MAST_noadPos) {
+ MAST_noadPos.style.display = "none";
+ }
+ </script>
+ <script>
+ (function() {
+ var wrap = document.getElementById("yom-ad-MAST");
+ if (null == wrap) {
+ wrap = document.getElementById("yom-ad-MAST-iframe") || {};
+ }
+ var content = wrap.innerHTML || "";
+ if (content & amp; & amp; content.substr(0, content.lastIndexOf("&lt;script&gt;")).indexOf("loc=MAST noad") !== -1) {
+ wrap.style.display = "none";
+ }
+ }())
+ </script>
+ </center>
+ </div>
+ </center>
+ </div>
+ </div>
+ <div class="Col1 yog-np Pos-a Start-0 Z-5 Stack Pstart-10">
+ <div id="Navigation" class="Row" tabindex="0" role="navigation" data-plugin="sticker" data-sticker-toptarget="#GS-UH">
+ <a id="Hamburger" class="D-n" role="button" href="#0">
+ <i class="Icon Fz-xl Mt-4"></i>
+ </a>
+ <div class="Row yog-nav">
+
+
+
+ <div id="mediacontentnavigation" class="yom-mod navigation subnav-overlays" role="navigation" data-ylk="t1:a2;t2:lnav;sec:lnav;">
+ <nav>
+ <ul id="navlist" class="navlist">
+ <li>
+ <a href="/" class="selected Fw-b" data-tags="ynews:mark=home, iptc:subject=01026000, ynews:category=topstories, membership:list=6cc0a18b-2601-43b4-b11a-e4386457eab6" data-cpos="1" data-ylk="itc:0;tar:gma.yahoo.com;ct:naventry;rspns:nav;t1:a2;t2:lnav;t3:st;t4:m-1;sec:lnav;elm:itm;elmt:cat;cpos:1;" data-action-outcome="navigate" data-rapid_p="1">GMA Home</a>
+ <ul class="subnav static">
+ <li>
+ <a href="/video/" data-ylk="itc:0;tar:gma.yahoo.com;ct:naventry;rspns:nav;t1:a2;t2:lnav;t3:st;t4:m-2;sec:lnav;elm:itm;elmt:cat;cpos:1;cat:GMA Home;" data-rapid_p="2">Video</a>
+ </li>
+ <li>
+ <a href="/photos/" data-tags="ynews:mark=photos" data-cpos="2" data-ylk="itc:0;tar:gma.yahoo.com;ct:naventry;rspns:nav;t1:a2;t2:lnav;t3:st;t4:m-2;sec:lnav;elm:itm;elmt:cat;cpos:2;cat:GMA Home;" data-rapid_p="3">Photos</a>
+ </li>
+ <li>
+ <a href="http://abcnews.go.com/" data-ylk="itc:0;tar:gma.yahoo.com;ct:naventry;rspns:nav;t1:a2;t2:lnav;t3:st;t4:m-2;sec:lnav;elm:itm;elmt:cat;cpos:3;cat:GMA Home;" data-rapid_p="4">ABC News</a>
+ </li>
+ <li>
+ <a href="http://news.yahoo.com/" data-ylk="itc:0;tar:gma.yahoo.com;ct:naventry;rspns:nav;t1:a2;t2:lnav;t3:st;t4:m-2;sec:lnav;elm:itm;elmt:cat;cpos:4;cat:GMA Home;" data-rapid_p="5">Yahoo News</a>
+ </li>
+ <li>
+ <a href="/goodnews/" data-tags="membership:list=849a4516-6046-4197-9506-290962f2d566" data-cpos="5" data-ylk="itc:0;tar:gma.yahoo.com;ct:naventry;rspns:nav;t1:a2;t2:lnav;t3:st;t4:m-2;sec:lnav;elm:itm;elmt:cat;cpos:5;cat:GMA Home;" data-rapid_p="6">Good News</a>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <a href="/money/" data-tags="ynews:mark=money, membership:list=1ce76b53-3b85-4fec-9b35-40dbeffc034c" data-cpos="2" data-ylk="itc:0;tar:gma.yahoo.com;ct:naventry;rspns:nav;t1:a2;t2:lnav;t3:st;t4:m-1;sec:lnav;elm:itm;elmt:cat;cpos:2;" data-action-outcome="navigate" data-rapid_p="7">Money</a>
+ </li>
+ <li>
+ <a href="/health/" data-tags="ynews:mark=health, membership:list=fd320886-36a6-45a5-9349-f1c92ee2a34b" data-cpos="3" data-ylk="itc:0;tar:gma.yahoo.com;ct:naventry;rspns:nav;t1:a2;t2:lnav;t3:st;t4:m-1;sec:lnav;elm:itm;elmt:cat;cpos:3;" data-action-outcome="navigate" data-rapid_p="8">Health</a>
+ </li>
+ <li>
+ <a href="/life-and-style/" data-tags="ynews:mark=life-and-style, membership:list=b1fd4ec4-8347-49c9-ace2-b629cace0ce4" data-cpos="4" data-ylk="itc:0;tar:gma.yahoo.com;ct:naventry;rspns:nav;t1:a2;t2:lnav;t3:st;t4:m-1;sec:lnav;elm:itm;elmt:cat;cpos:4;" data-action-outcome="navigate" data-rapid_p="9">Life and Style</a>
+ </li>
+ <li>
+ <a href="/entertainment/" data-tags="ynews:mark=entertainment, membership:list=84a95871-3a9c-4231-8dae-97b309e319da" data-cpos="5" data-ylk="itc:0;tar:gma.yahoo.com;ct:naventry;rspns:nav;t1:a2;t2:lnav;t3:st;t4:m-1;sec:lnav;elm:itm;elmt:cat;cpos:5;" data-action-outcome="navigate" data-rapid_p="10">Entertainment</a>
+ </li>
+ <li>
+ <a href="/recipes/" data-tags="ynews:mark=recipes, membership:list=8e244d4b-ca6c-43ee-a3a0-a0fe5e7c0dee" data-cpos="6" data-ylk="itc:0;tar:gma.yahoo.com;ct:naventry;rspns:nav;t1:a2;t2:lnav;t3:st;t4:m-1;sec:lnav;elm:itm;elmt:cat;cpos:6;" data-action-outcome="navigate" data-rapid_p="11">Recipes</a>
+ </li>
+ <li>
+ <a href="/gma-insider-054105220.html" data-tags="ynews:mark=gma-insider" data-cpos="7" data-ylk="itc:0;tar:gma.yahoo.com;ct:naventry;rspns:nav;t1:a2;t2:lnav;t3:st;t4:m-1;sec:lnav;elm:itm;elmt:cat;cpos:7;" data-action-outcome="navigate" data-rapid_p="12">GMA Insider</a>
+ </li>
+ <li>
+ <a href="http://1iota.com/Show/379/Good-Morning-America" data-ylk="itc:0;tar:gma.yahoo.com;ct:naventry;rspns:nav;t1:a2;t2:lnav;t3:st;t4:m-1;sec:lnav;elm:itm;elmt:cat;cpos:8;" data-action-outcome="navigate" data-rapid_p="13">GMA Tickets</a>
+ </li>
+ </ul>
+ </nav>
+ </div>
+ <div id="yom-ad-LN2" class="yom-ad yom-ad-LN2" style="visibility: inherit; display: none;">
+ <center>
+ <div id="yom-ad-LN2-iframe" class="yom-ad">
+ <center>
+ <script>
+ var LN2_noadPos = document.getElementById("yom-ad-LN2");
+ if (LN2_noadPos) {
+ LN2_noadPos.style.display = "none";
+ }
+ </script>
+ <script>
+ (function() {
+ var wrap = document.getElementById("yom-ad-LN2");
+ if (null == wrap) {
+ wrap = document.getElementById("yom-ad-LN2-iframe") || {};
+ }
+ var content = wrap.innerHTML || "";
+ if (content & amp; & amp; content.substr(0, content.lastIndexOf("&lt;script&gt;")).indexOf("loc=LN2 noad") !== -1) {
+ wrap.style.display = "none";
+ }
+ }())
+ </script>
+ </center>
+ </div>
+ </center>
+ </div>
+ <div class="yom-remote">
+ <div class="" id="td-applet-ads_container"></div>
+ </div>
+ <div id="yom-ad-ESPON" class="yom-ad yom-ad-ESPON" style="visibility: inherit; display: none;">
+ <center>
+ <div id="yom-ad-ESPON-iframe" class="yom-ad">
+ <center>
+ <script>
+ var ESPON_noadPos = document.getElementById("yom-ad-ESPON");
+ if (ESPON_noadPos) {
+ ESPON_noadPos.style.display = "none";
+ }
+ </script>
+ <script>
+ (function() {
+ var wrap = document.getElementById("yom-ad-ESPON");
+ if (null == wrap) {
+ wrap = document.getElementById("yom-ad-ESPON-iframe") || {};
+ }
+ var content = wrap.innerHTML || "";
+ if (content & amp; & amp; content.substr(0, content.lastIndexOf("&lt;script&gt;")).indexOf("loc=ESPON noad") !== -1) {
+ wrap.style.display = "none";
+ }
+ }())
+ </script>
+ </center>
+ </div>
+ </center>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="Col2 yog-cp Pos-a Bxz-bb">
+ <div id="Main" tabindex="0" class="Pos-r Z-3 Stack yog-card yog-content" role="main">
+ <section class="yom-mod yom-breaking-news level2" id="mediacontentbreakingnews" data-ylk="mid:mediacontentbreakingnews;mpos:1;t1:a3;t2:mod-bkn;sec:mod-bkn;">
+ <div class="hd"> <span>'GMA' Cookie Search:</span> </div>
+ <div class="bd"> <a href="https://gma.yahoo.com/gma-cookie-search-favorite-holiday-cookie-recipes-183203594--abc-news-Recipes.html" data-ylk="rspns:nav;t1:a3;t2:mod-bkn;sec:mod-bkn;itc:0;cat:bkn;cpos:1;pos:1;elm:hdln;elmt:ct;g:4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c;pkgt:2;tar:gma.yahoo.com;prov:;test:;" data-rapid_p="1">Share Your Recipe</a> </div>
+ </section>
+ <div class="yom-remote">
+ <div class="" id="td-applet-photoheader_container">
+ <div id="applet_24106666317790640" class="js-applet" data-applet-guid="24106666317790640" data-applet-type="td-applet-photoheader">
+ <div class="App-Bd">
+ <div class="App-Main yui3-app-views" data-region="main" id="yui_3_18_1_1_1481706756324_569">
+ <div class="js-applet-view-container-main">
+ <div id="td-photoheader" class="SlowTrans Pos-r Z-3 Cf Ov-h">
+ <a href="http://gma.yahoo.com/" title="Good Morning America" class="NoLinkColor" data-ylk="rspns:nav;t1:a3;t2:photoheader;sec:photoheader;itc:0;sp:0;slk:Good Morning America;elm:img;cat:false;tar:http://gma.yahoo.com/;" data-rapid_p="1">
+ <div class="W-100 Pos-a tie-title">
+
+
+ <h1 class="Fz-2xl Fw-b D-ib Pstart-10 My-10 H-n Hidden">Good Morning America</h1>
+
+
+ </div>
+
+
+ <img src="https://s.yimg.com/bt/api/res/1.2/wKqr1Cy7iSKnJwJF_EoD3g--/YXBwaWQ9eW5ld3NfdGQ7dz03MzE-/http://l.yimg.com/os/publish-images/gma/2014-06-26/282e98f0-fd6a-11e3-b1cc-8793f4ed3e91_gma_home_062614_header.jpg" class="W-100" alt="Good Morning America" onerror="this.style.width='0'" />
+
+
+
+ </a>
+ </div>
+ <style>
+ @media (max-width: 1200px) {
+ #td-photoheader .tie-title h1 {
+ font-size: 1.6em;
+ width: 80%;
+ }
+ }
+
+ @media (max-width: 1150px) {
+ #td-photoheader .tie-title h1 {
+ font-size: 1.45em;
+ width: 80%;
+ }
+ }
+
+ @media (max-width: 1100px) {
+ #td-photoheader .tie-title h1 {
+ font-size: 1.35em;
+ width: 65%;
+ }
+ }
+
+ @media (max-width: 980px) {
+ #td-photoheader .tie-title h1 {
+ font-size: 1.25em;
+ width: 60%;
+ }
+ }
+ </style>
+ </div>
+ </div>
+ </div>
+ <div class="App-Ft Row"> </div>
+ </div>
+ </div>
+ </div>
+ <section id="mediacontentstory" class="yom-mod yom-card-main yom-article" data-uuid="4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c" data-type="story" data-ylk="t1:a3;t2:ct-mod;sec:ct-mod;itc:0;rspns:nav;">
+ <div class="book clearfix">
+ <header class="header">
+ <h1 class="headline">Veteran Wraps Baby in American Flag, Photo Sparks Controversy</h1>
+ </header>
+
+ <div class="credit-bar clearfix ">
+ <div class="credit-bar-inner">
+
+ <div class="credit">
+ <div class="credit-text">
+ <cite class="byline vcard top-line">
+ <span>By </span><span class="fn">GILLIAN MOHNEY</span>
+ <abbr>March 11, 2015 3:46 PM</abbr>
+ </cite>
+ <span class="bottom-line">
+ <a href="http://abcnews.go.com/GMA/" data-ylk="sec:content;slk:provider;itc:0;tar:abcnews.go.com;ltxt:GoodMorningAmeri;" data-rapid_p="1"><span class="provider-name">Good Morning America</span></a>
+ </span>
+ </div>
+ </div>
+ </div>
+ <div class="interest-bar">
+ <div class="action-bar">
+ <div class="action-bar-wrapper">
+ <div class="yom-share-btns-container light" id="mediacontentsharebuttons-light">
+ <div class="share-btns-int-container">
+ <div class="share-btns" role="menu">
+ <ul>
+ <li class="share-btn tumblr"><a href="https://www.tumblr.com/share/photo?clickthru=https%3A%2F%2Fgma.yahoo.com%2Fveteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html%3Fsoc_src%3Dmediacontentstory%26soc_trk%3Dtu&amp;caption=A%20photographer%20and%20Navy%20veteran%20is%20fighting%20back%20after%20a%20photo%20she%20posted%20to%20Facebook%20started%20an%20online%20backlash.%20%20Vanessa%20Hicks%20said%20she%20had%20no%20idea%20her%20photo%20would%20be%20considered%20controversial.%20%20The%20photo%2C%20from%20a%20military%20family%E2%80%99s%20newborn%20photo%20shoot%2C%20showed%20a%20newborn%20infant%20wrapped%20in%20an%20American%20flag%20held%20by%20his%20father%2C%20who%20was%20in%20his%20military%20uniform.%20%20Hicks%2C%20a%20Navy%20veteran%20herself%20and%20the%20wife%20of%20an%20active-duty%20Navy%20member%2C%20said%20her%20intention%20was%20to%20honor%20the%20flag%20as%20well%20as%20her%20clients%2C%20who%20wanted%20to%20incorporate%20their%20military%20service%20in%20the%20photo%20shoot.&amp;source=https%3A%2F%2Fs.yimg.com%2Fbt%2Fapi%2Fres%2F1.2%2FqZaM9MLUOrxLg4IfXt_Niw--%2FYXBwaWQ9eW5ld3NfbGVnbztxPTc1O3c9NjAw%2Fhttp%3A%2F%2Fmedia.zenfs.com%2Fen-US%2Fvideo%2Fvideo.abcnewsplus.com%2F559ecdbafdb839129816b5c79a996975.cf.png" role="link" title="Share on Tumblr" data-share-key="tumblr" target="_blank" data-share-pos="top" data-share-sec="sh-lt"><span class="Icon btn-icon btn-tumblr small"></span></a></li>
+ <li class="share-btn facebook"><a href="https://www.facebook.com/dialog/feed?app_id=90376669494&amp;redirect_uri=https%3A%2F%2Fgma.yahoo.com%2F_xhr%2Fmediacontentsharebuttons%2Fpostshare%2F%3Fsrc%3Dfb&amp;link=https%3A%2F%2Fgma.yahoo.com%2Fveteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html%3Fsoc_src%3Dmediacontentstory%26soc_trk%3Dfb&amp;picture=https%3A%2F%2Fs.yimg.com%2Fbt%2Fapi%2Fres%2F1.2%2FqZaM9MLUOrxLg4IfXt_Niw--%2FYXBwaWQ9eW5ld3NfbGVnbztxPTc1O3c9NjAw%2Fhttp%3A%2F%2Fmedia.zenfs.com%2Fen-US%2Fvideo%2Fvideo.abcnewsplus.com%2F559ecdbafdb839129816b5c79a996975.cf.png&amp;name=Veteran+Wraps+Baby+in+American+Flag%2C+Photo+Sparks+Controversy&amp;description=A+photographer+and+Navy+veteran+is+fighting+back+after+a+photo+she+posted+to+Facebook+started+an+online+backlash.++Vanessa+Hicks+said+she+had+no+idea+her+photo+would+be+considered+controversial.++The+photo%2C+from+a+military+family%E2%80%99s+newborn+photo+shoot%2C+showed+a+newborn+infant+wrapped+in+an+American+flag+held+by+his+father%2C+who+was+in+his+military+uniform.++Hicks%2C+a+Navy+veteran+herself+and+the+wife+of+an+active-duty+Navy+member%2C+said+her+intention+was+to+honor+the+flag+as+well+as+her+clients%2C+who+wanted+to+incorporate+their+military+service+in+the+photo+shoot.&amp;display=popup&amp;show_error=yes" role="link" title="Share on Facebook" data-share-key="facebook" target="_blank" data-share-pos="top" data-share-sec="sh-lt"><span class="Icon btn-icon btn-facebook small"></span></a></li>
+ <li class="share-btn twitter"><a href="https://twitter.com/share?text=Veteran+Wraps+Baby+in+American+Flag%2C+Photo+Sparks+Controversy&amp;url=https%3A%2F%2Fgma.yahoo.com%2Fveteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html%3Fsoc_src%3Dmediacontentstory%26soc_trk%3Dtw&amp;via=GMA" role="link" title="Share on Twitter" data-share-key="twitter" target="_blank" data-share-pos="top" data-share-sec="sh-lt"><span class="Icon btn-icon btn-twitter small"></span></a></li>
+ <li class="share-btn mail"><a href="https://gma.yahoo.com/_xhr/mtf_popup/?url=https%3A%2F%2Fgma.yahoo.com%2Fveteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html%3Fsoc_src%3Dmediacontentstory%26soc_trk%3Dma&amp;site=gma&amp;region=US&amp;lang=en-US&amp;content_id=4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c&amp;alias_id=story%3Dveteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories" class="rapid-noclick-resp" role="link" title="Email to friends" data-share-key="mail" target="_blank" data-share-pos="top" data-share-sec="sh-lt"><span class="Icon btn-icon btn-mail small"></span></a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div class="actions clearfix">
+ <ul>
+ <li class="save-action icon-y-small first" title="Save">
+ <i class="GSIcon IconYahoo"></i>
+ </li>
+ <li class="like-action icon-like-small" title="More like this">
+ <i class="GSIcon IconAdd add-action"></i>
+ <i class="GSIcon IconCheck check-action"></i>
+ </li>
+ <li class="dislike-action icon-dislike-small" title="Fewer like this">
+ <i class="GSIcon IconDelete"></i>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="topic-bar clearfix disabled">
+ <div class="topic-bar-header-wrapper clearfix">
+ <a class="pref-link" href="https://settings.yahoo.com/interests" target="_blank" data-ylk="sec:actn-bar;itc:0;t2:actn-bar;t3:drwr;elm:itm;elmt:pref" data-rapid_p="6">Content preferences</a>
+ <h3 class="topic-bar-header"></h3>
+ </div>
+ <ul class="topics clearfix"></ul>
+ <div class="topic-bar-footer-wrapper clearfix">
+ <button class="done-btn" data-rapid_p="7">Done</button>
+ </div>
+ </div>
+
+ <div class="clearfix"></div>
+ </div>
+
+ <div class="cover-wrap ">
+ <div class="Ta-start">
+ <a href="#" data-ylk="rspns:;t1:a3;t2:ct-mod;t3:ld;sec:ct-mod;slk:autoplay;elm:img;elmt:ct;itc:1;grpt:;edtr_vos:8b91dafc-92a9-323d-a154-acdd72111b2a;g:4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c;aid:8ea6cae9-52c8-3c54-9b51-a4111390fd49;ct:3;cpos:1;" data-rapid_p="8"></a>
+ <style>
+ #Stencil .channel-applet-wrap .vp-container {
+ position: relative;
+ padding-bottom: 56.25%;
+ height: 0;
+ }
+
+ #Stencil .channel-applet-wrap #ym-player {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ }
+
+ #Stencil .channel-applet-wrap .current.pl-marker {
+ background-color: #f80e5d;
+ }
+
+ #Stencil .channel-applet-wrap .next.pl-marker {
+ background-color: #5f33ff;
+ }
+
+ #Stencil .channel-applet-wrap .Bgc-screen {
+ background-color: #5f33ff;
+ background-color: rgba(95, 51, 255, 0.8);
+ }
+
+ #Stencil .channel-applet-wrap .smooth {
+ -webkit-font-smoothing: subpixel-antialiased;
+ }
+
+ #Stencil .channel-applet-wrap .lspace {
+ letter-spacing: 0.6px;
+ }
+
+ #Stencil .channel-applet-wrap .flat {
+ background: transparent;
+ border: none;
+ color: inherit;
+ margin: 0;
+ outline: none;
+ padding: 0;
+ }
+
+ #Stencil .channel-applet-wrap .sound-buttons {
+ -moz-transition: all 0.48s ease;
+ -o-transition: all 0.48s ease;
+ -webkit-transition: all 0.48s ease;
+ transition: all 0.48s ease;
+ background-color: black;
+ background-color: rgba(0, 0, 0, 0.7);
+ opacity: 1;
+ visibility: visible;
+ z-index: 2;
+ border-radius: 2px;
+ bottom: 50px;
+ left: 16px;
+ }
+
+ #Stencil .channel-applet-wrap .sound-buttons.trans-hide {
+ opacity: 0;
+ visibility: hidden;
+ }
+
+ #Stencil .channel-applet-wrap .sound-buttons:hover {
+ background-color: #0d0d0d;
+ }
+
+ #Stencil .channel-applet-wrap .sound-buttons .sound-off {
+ display: none;
+ background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNi4wLjQsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iNTBweCIgaGVpZ2h0PSI1MHB4IiB2aWV3Qm94PSIwIDAgNTAgNTAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDUwIDUwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxwb2x5Z29uIGZpbGw9IiNGRkZGRkYiIHBvaW50cz0iMTIuNDY2LDE5Ljk3OSA3LjQ4NiwxOS45NzkgNy40ODYsMjkuOTA4IDEyLjUsMjkuOTA4IDIyLjM4NiwzOS44MDUgMjIuMzg2LDEwLjAyNyAxMi40NjYsMTkuOTYzIA0KCSIvPg0KPHBvbHlnb24gZmlsbD0iI0ZGRkZGRiIgcG9pbnRzPSI0Mi45MjksMjAuNjU5IDQwLjEyMywxNy44NTMgMzUuMzI3LDIyLjY0OCAzMC41MjksMTcuODUzIDI3LjcyMywyMC42NiAzMi41MjEsMjUuNDU1IA0KCTI3LjcyOSwzMC4yNDcgMzAuNTM1LDMzLjA1NCAzNS4zMjcsMjguMjYxIDQwLjEyMywzMy4wNTQgNDIuOTI5LDMwLjI0NiAzOC4xMzUsMjUuNDU0ICIvPg0KPC9zdmc+DQo=);
+ background-image: url("https://s.yimg.com/dh/ap/default/140922/sound_off_large.png") \9;
+ }
+
+ #Stencil .channel-applet-wrap .sound-buttons .sound-on {
+ display: block;
+ background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNi4wLjQsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iNTBweCIgaGVpZ2h0PSI1MHB4IiB2aWV3Qm94PSIwIDAgNTAgNTAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDUwIDUwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwb2x5Z29uIGZpbGw9IiNGRkZGRkYiIHBvaW50cz0iMTQuMzM5LDE5Ljk3OSA5LjM1OSwxOS45NzkgOS4zNTksMjkuOTA4IDE0LjM3NCwyOS45MDggMjQuMjU5LDM5LjgwNSAyNC4yNTksMTAuMDI3IA0KCQkxNC4zMzksMTkuOTYzIAkiLz4NCgk8cGF0aCBmaWxsPSIjRkZGRkZGIiBkPSJNMjkuOTA4LDE4LjY1bC0xLjQ5NCwyLjk0MXYwLjA3YzAuOTM4LDAuNzY0LDEuNTQ5LDEuOTEsMS41NDksMy4yMTVzLTAuNjExLDIuNDQ5LTEuNTQ5LDMuMjE5djAuMDA4DQoJCWwxLjUxOCwyLjk4NGMyLjAwNC0xLjMzOCwzLjMzNi0zLjYyMSwzLjMzNi02LjIxMUMzMy4yNjgsMjIuMjcxLDMxLjkzNiwxOS45ODYsMjkuOTA4LDE4LjY1eiIvPg0KCTxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik00MC44NTksMjQuODc3YzAtNS41NDMtMy4wNDctMTAuMzU5LTcuNTUzLTEyLjkwMkwzMS44MywxNC44N3YwLjA3OGMzLjQyMiwxLjk5Niw1LjcyNSw1LjY5MSw1LjcyNSw5LjkzDQoJCXMtMi4zMDMsNy45MzQtNS43MjUsOS45MzR2MC4wMDhsMS41MDYsMi45NDVDMzcuODI0LDM1LjIyMSw0MC44NTksMzAuNDA0LDQwLjg1OSwyNC44Nzd6Ii8+DQo8L2c+DQo8L3N2Zz4NCg==);
+ background-image: url("https://s.yimg.com/dh/ap/default/140922/sound_on_large.png") \9;
+ }
+
+ #Stencil .channel-applet-wrap .sound-buttons.muted .sound-on {
+ display: none;
+ }
+
+ #Stencil .channel-applet-wrap .sound-buttons.muted .sound-off {
+ display: block;
+ }
+
+ #Stencil .channel-applet-wrap .sound-buttons button {
+ background-size: 100%;
+ background-repeat: no-repeat;
+ width: 30px;
+ height: 30px;
+ }
+
+ #Stencil [data-applet-type="td-applet-videoplayer"] {
+ padding: 0 !important;
+ border: 0 !important;
+ margin-bottom: 0;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap {
+ *position: relative;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap #channel-header img {
+ vertical-align: middle;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap #channel-header p {
+ max-width: 260px;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .playlist-wrap {
+ background-color: black;
+ background-color: black;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .playlist-wrap .duration {
+ font-size: 10px;
+ font-size: 1.0rem;
+ background-color: black;
+ background-color: rgba(0, 0, 0, 0.8);
+ color: #cccccc;
+ opacity: 1;
+ -moz-transition: opacity 0.32s ease;
+ -o-transition: opacity 0.32s ease;
+ -webkit-transition: opacity 0.32s ease;
+ transition: opacity 0.32s ease;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .playlist-wrap li {
+ background-color: none;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .playlist-wrap li:hover {
+ background-color: #5f33ff;
+ background-color: rgba(95, 51, 255, 0.2);
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .playlist-wrap li.selected:hover {
+ background-color: none;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .playlist-wrap li .pl-marker {
+ visibility: hidden;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .playlist-wrap li.selected .duration {
+ opacity: 0;
+ display: none\9;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .playlist-wrap li.selected .current {
+ visibility: visible;
+ padding-top: 25%;
+ font-size: 10px;
+ font-size: 1.0rem;
+ background-color: #5f33ff;
+ background-color: rgba(95, 51, 255, 0.8);
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .playlist-wrap li .pl-title {
+ font-size: 12px;
+ font-size: 1.2rem;
+ color: #cccccc;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .playlist-wrap .pl-order p,
+ #Stencil .mode-embedtron.channel-applet-wrap .playlist-wrap li.selected .pl-order i {
+ display: inline-block;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .playlist-wrap .pl-order i,
+ #Stencil .mode-embedtron.channel-applet-wrap .playlist-wrap li.selected .pl-order p,
+ #Stencil .mode-embedtron.channel-applet-wrap .playlist-wrap li .current,
+ #Stencil .mode-embedtron.channel-applet-wrap .playlist-wrap li .next {
+ display: none;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .playlist-wrap li.selected .current,
+ #Stencil .mode-embedtron.channel-applet-wrap .playlist-wrap li.up-next .next {
+ display: block;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .playlist-wrap .pl-order {
+ color: #666;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .playlist-wrap .thumb {
+ background: #525358;
+ border-radius: 5px;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .scroll-content {
+ background-color: transparent;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .yui-nextscroll .bar {
+ background: #27282c;
+ opacity: 0;
+ -webkit-transition-property: opacity;
+ -moz-transition-property: opacity;
+ -o-transition-property: opacity;
+ transition-property: opacity;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .yui-nextscroll .bar.bar-v {
+ opacity: 1;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .vp-meta .desc a {
+ font-size: inherit;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .vp-meta .show a,
+ #Stencil .mode-embedtron.channel-applet-wrap .vp-meta .show a:visited {
+ color: #324FE1;
+ text-decoration: none;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .pl-meta {
+ z-index: 10;
+ position: relative;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .vp-wrap {
+ height: 0;
+ padding-bottom: 56.25%;
+ background-color: #000;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .vp-wrap .playlist-grip.show .Icon {
+ opacity: 0;
+ visibility: hidden;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .vp-wrap .playlist-grip.tease .Icon {
+ opacity: 1;
+ visibility: visible;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .vp-wrap:hover .playlist-grip.show .Icon {
+ opacity: 1;
+ visibility: visible;
+ -moz-transition-delay: 0.01s;
+ -o-transition-delay: 0.01s;
+ -webkit-transition-delay: 0.01s;
+ transition-delay: 0.01s;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap #ym-player {
+ background-color: #000;
+ position: absolute;
+ top: 0;
+ left: 0;
+ height: 100%;
+ width: 100%;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .playlist-wrap,
+ #Stencil .mode-embedtron.channel-applet-wrap .playlist-wrap .scroll-bound {
+ width: 270px;
+ background-color: transparent;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .yui-nextscroll .bar {
+ background-color: transparent;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .pl-list {
+ right: 0px;
+ top: 0;
+ -moz-transition: right 0.36s linear;
+ -o-transition: right 0.36s linear;
+ -webkit-transition: right 0.36s linear;
+ transition: right 0.36s linear;
+ background-color: rgba(0, 0, 0, 0.8);
+ z-index: 20;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .pl-list.skinny {
+ position: absolute;
+ right: -150px;
+ top: 0;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .pl-list.collapsed {
+ position: absolute;
+ right: -271px;
+ /* border width + playlist wrap width */
+ top: 0;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .pl-list #channel-header img {
+ width: 8.72%;
+ height: auto;
+ min-width: 28px;
+ margin: 6px 0 6px 24px;
+ background-color: #23202d;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .pl-list .pl-info {
+ width: 43%;
+ width: 40% \9;
+ vertical-align: top;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .pl-list .pl-img {
+ width: 110px;
+ height: 0;
+ background-color: #17151D;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .pl-list .intrinsic-ratio {
+ padding-bottom: 25.25%;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap #channel-header {
+ background-color: #17151D;
+ background-image: none !important;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap #channel-header p {
+ max-width: 195px;
+ font-size: 15px;
+ font-size: 1.5rem;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .playlist-wrap .pl-order,
+ #Stencil .mode-embedtron.channel-applet-wrap .playlist-wrap .pl-vc {
+ color: #888;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .playlist-wrap {
+ border: none;
+ border-left: 1px solid rgba(65, 64, 66, 0.5);
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .skinny #channel-header p {
+ display: none;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .skinny .pl-order {
+ display: none;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .skinny .pl-img {
+ margin-left: 5px;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .skinny #channel-header img {
+ margin-left: 45px;
+ width: 30px;
+ height: 30px;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .skinny .playlist-grip .Icon img {
+ width: 20px;
+ height: 40px;
+ margin-left: 5px;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .playlist-grip {
+ cursor: pointer;
+ position: absolute;
+ height: 50px;
+ width: 25px;
+ top: 50%;
+ margin-top: -25px;
+ margin-left: -24px;
+ border-top-left-radius: 10px;
+ border-bottom-left-radius: 10px;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .playlist-grip .Icon {
+ position: absolute;
+ width: 25px;
+ height: 50px;
+ opacity: 0;
+ visibility: hidden;
+ -moz-transition: opacity 0.2s ease-in-out 0.8s, visibility 0.2s ease-in-out 0.8s;
+ -o-transition: opacity 0.2s ease-in-out 0.8s, visibility 0.2s ease-in-out 0.8s;
+ -webkit-transition: opacity 0.2s ease-in-out, visibility 0.2s ease-in-out;
+ -webkit-transition-delay: 0.8s, 0.8s;
+ transition: opacity 0.2s ease-in-out 0.8s, visibility 0.2s ease-in-out 0.8s;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .playlist-grip .Icon img {
+ width: 25px;
+ height: 50px;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .applet-startscreen {
+ z-index: 10;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .applet-startscreen .dim,
+ #Stencil .mode-embedtron.channel-applet-wrap .applet-startscreen .yui3-videoplayer-startscreen-title-wrapper,
+ #Stencil .mode-embedtron.channel-applet-wrap .yui3-videoplayer-startscreen-container .yui3-videoplayer-startscreen-title-wrapper {
+ -webkit-transition: opacity 0.24s linear;
+ -moz-transition: opacity 0.24s linear;
+ -o-transition: opacity 0.24s linear;
+ transition: opacity 0.24s linear;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .applet-startscreen .applet-startscreen-wrapper {
+ background-color: #000;
+ opacity: 0;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .applet-startscreen .applet-startscreen-wrapper:hover {
+ opacity: 0.4;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .applet-startscreen .yui3-videoplayer-startscreen-title-wrapper {
+ font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .applet-startscreen .yui3-videoplayer-startscreen-title-wrapper,
+ #Stencil .mode-embedtron.channel-applet-wrap .yui3-videoplayer-startscreen-container .yui3-videoplayer-startscreen-title-wrapper {
+ opacity: 0;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .applet-startscreen:hover .yui3-videoplayer-startscreen-title-wrapper,
+ #Stencil .mode-embedtron.channel-applet-wrap .yui3-videoplayer-startscreen-container:hover .yui3-videoplayer-startscreen-title-wrapper {
+ opacity: 1;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .applet-startscreen .Overlay.yui3-videoplayer-startscreen-title-wrapper h3,
+ #Stencil .mode-embedtron.channel-applet-wrap .applet-startscreen .Overlay.yui3-videoplayer-startscreen-title-wrapper h4 {
+ margin: .55em 0px;
+ font-weight: 200;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .applet-startscreen .yvp-start-screen-button {
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ width: 90px;
+ height: 90px;
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODgiIGhlaWdodD0iODgiIHZpZXdCb3g9IjAgMCA4OCA4OCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZGVmcz48bGluZWFyR3JhZGllbnQgeDE9IjIuMDY2JSIgeTE9Ijk2Ljc1MSUiIHgyPSI5NS42NTklIiB5Mj0iMi45NjklIiBpZD0iYSI+PHN0b3Agc3RvcC1jb2xvcj0iIzZEMDBGNiIgb2Zmc2V0PSIwJSIvPjxzdG9wIHN0b3AtY29sb3I9IiMwMDNBQkMiIG9mZnNldD0iMTAwJSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHBhdGggZD0iTTEyLjY3NiA3Ny4zNzZjMy45ODMgMy42MDggOC42NjcgNi4yOCAxNC4wMjcgOC4wMTdDMzIuMDc4IDg3LjEyNSAzNy44OSA4OCA0NC4xNjMgODhjNi4xNjQgMCAxMS45MzQtLjg3NSAxNy4yOTYtMi42MDcgMi4xNTQtLjY5NCA0LjE4Ni0xLjU0NyA2LjExNi0yLjU0MyAyLjg4NC0xLjQ5IDUuNTMtMy4zMTIgNy45MTYtNS40NzQgMy45OS0zLjYwNyA3LjA5Ny04LjE4MyA5LjMzLTEzLjcwN0M4Ny4wNSA1OC4xMzYgODguMTY4IDUxLjU4IDg4LjE2OCA0NGMwLTcuNTg2LTEuMTE4LTE0LjE0LTMuMzQ2LTE5LjY3LTIuMjMzLTUuNTMtNS4zNC0xMC4xLTkuMzMtMTMuNzA1LTMuOTg1LTMuNjE3LTguNjYtNi4yODUtMTQuMDMzLTguMDJDNTYuMDk2Ljg3IDUwLjMyNiAwIDQ0LjE2MiAwYy02LjI3MyAwLTEyLjA4NS44NjgtMTcuNDYgMi42MDYtMS43NDMuNTYtMy40MTIgMS4yMzYtNS4wMSAyLjAwNS0zLjMyIDEuNTgzLTYuMzMgMy41NzgtOS4wMTcgNi4wMTVDOC42ODggMTQuMjMgNS41NzggMTguOCAzLjM0NiAyNC4zMyAxLjExNiAyOS44NiAwIDM2LjQxNCAwIDQ0YzAgNy41ODIgMS4xMTcgMTQuMTM3IDMuMzQ2IDE5LjY3IDIuMjMyIDUuNTIzIDUuMzQyIDEwLjEgOS4zMyAxMy43MDZ6IiBmaWxsLW9wYWNpdHk9Ii42NSIgZmlsbD0idXJsKCNhKSIvPjxwYXRoIGQ9Ik0zNi43MyA1OWgtLjA2NmMtLjkyIDAtMS42NjQtLjc0Mi0xLjY2NC0xLjY1NlYzMC42NTZjMC0uOTE1Ljc0LTEuNjU2IDEuNjY0LTEuNjU2LjAzIDAgLjA2IDAgLjA5LjAwMi4zOC0uMDczLjc4OC0uMDE0IDEuMTUyLjE5NmwyMi42MjIgMTMuMDZjLjc5OC40NiAxLjA3NSAxLjQ3NC42MTMgMi4yNzYtLjAyMy4wNC0uMDQ4LjA4LS4wNzUuMTE4LS4xMzcuMjctLjM1LjUwMy0uNjMuNjdsLTIyLjQ0IDEzLjQ4NGMtLjM5NS4yNC0uODUuMjk1LTEuMjY1LjE5M3oiIGZpbGw9IiNGRkYiLz48L2c+PC9zdmc+");
+ background-color: transparent;
+ background-position: 50% 50%;
+ background-repeat: no-repeat;
+ background-size: 100%;
+ border-radius: 0;
+ margin: -45px 0 0 -45px;
+ cursor: pointer;
+ outline: none;
+ }
+
+ #Stencil .mode-embedtron.channel-applet-wrap .player-maestro.maestro-medium .upnext-tease {
+ display: none !important;
+ }
+ </style>
+ <style>
+ @-webkit-keyframes explosion {
+ 0% {
+ opacity: 0;
+ -webkit-transform: scale(1);
+ }
+ 20% {
+ opacity: 1;
+ -webkit-transform: scale(1.2);
+ }
+ 100% {
+ opacity: 0;
+ -webkit-transform: scale(1.5);
+ }
+ }
+
+ @-moz-keyframes explosion {
+ 0% {
+ opacity: 0;
+ -moz-transform: scale(1);
+ }
+ 20% {
+ opacity: 1;
+ -moz-transform: scale(1.2);
+ }
+ 100% {
+ opacity: 0;
+ -moz-transform: scale(1.5);
+ }
+ }
+
+ @-o-keyframes explosion {
+ 0% {
+ opacity: 0;
+ -o-transform: scale(1);
+ }
+ 20% {
+ opacity: 1;
+ -o-transform: scale(1.2);
+ }
+ 100% {
+ opacity: 0;
+ -o-transform: scale(1.5);
+ }
+ }
+
+ @keyframes explosion {
+ 0% {
+ opacity: 0;
+ transform: scale(1);
+ }
+ 20% {
+ opacity: 1;
+ transform: scale(1.2);
+ }
+ 100% {
+ opacity: 0;
+ transform: scale(1.5);
+ }
+ }
+
+ #Stencil .channel-applet-wrap {
+ /* intermezzo */
+ }
+
+ #Stencil .channel-applet-wrap .Ratio-16-9 {
+ padding-bottom: 56.25%;
+ }
+
+ #Stencil .channel-applet-wrap .vp-wrap .vp-container .yui3-videoplayer-startscreen-button,
+ #Stencil .channel-applet-wrap .vp-wrap .vp-container .yvp-start-screen .yvp-start-screen-button {
+ border-radius: 100%;
+ width: 80px;
+ height: 80px;
+ margin-left: -40px;
+ margin-top: -40px;
+ background-color: rgba(19, 19, 19, 0.7);
+ }
+
+ #Stencil .channel-applet-wrap .vp-wrap .player-maestro {
+ z-index: 1;
+ }
+
+ #Stencil .channel-applet-wrap .pl-paused.show-ps .yui3-videoplayer-controls .bar {
+ z-index: 10;
+ }
+
+ #Stencil .channel-applet-wrap .pl-paused.show-ps:hover .yui3-videoplayer-controls .bar {
+ display: block;
+ opacity: 1;
+ }
+
+ #Stencil .channel-applet-wrap .pause-screen {
+ background: rgba(0, 0, 0, 0.7);
+ color: #ececec;
+ z-index: 2;
+ }
+
+ #Stencil .channel-applet-wrap .pause-screen .maestro-bgimg {
+ width: 100%;
+ height: 100%;
+ z-index: 1;
+ }
+
+ #Stencil .channel-applet-wrap .pause-screen .maestro-bgimg-ov {
+ background-color: black;
+ opacity: 0.6;
+ z-index: 2;
+ }
+
+ #Stencil .channel-applet-wrap .pause-screen .maestro-text {
+ z-index: 3;
+ padding: 25px;
+ }
+
+ #Stencil .channel-applet-wrap .splash-screen,
+ #Stencil .channel-applet-wrap .subscription-screen,
+ #Stencil .channel-applet-wrap .payment-screen {
+ background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3RvcC1vcGFjaXR5PSIwLjciLz48c3RvcCBvZmZzZXQ9IjkwJSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3RvcC1vcGFjaXR5PSIwLjAiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSJ1cmwoI2dyYWQpIiAvPjwvc3ZnPiA=');
+ background-size: 100%;
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, rgba(0, 0, 0, 0.7)), color-stop(90%, rgba(0, 0, 0, 0)));
+ background-image: -moz-linear-gradient(top, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0) 90%);
+ background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0) 90%);
+ background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0) 90%);
+ color: #ececec;
+ padding: 25px;
+ z-index: 2;
+ }
+
+ #Stencil .channel-applet-wrap .splash-screen,
+ #Stencil .channel-applet-wrap .pause-screen,
+ #Stencil .channel-applet-wrap .subscription-screen,
+ #Stencil .channel-applet-wrap .upnext-tease,
+ #Stencil .channel-applet-wrap .upnext-pause,
+ #Stencil .channel-applet-wrap .vp-wrap .vp-container .yui3-videoplayer-startscreen-button {
+ -moz-transition: visibility 0.54s, opacity 0.54s;
+ -o-transition: visibility 0.54s, opacity 0.54s;
+ -webkit-transition: visibility 0.54s, opacity 0.54s;
+ transition: visibility 0.54s, opacity 0.54s;
+ }
+
+ #Stencil .channel-applet-wrap .splash-screen,
+ #Stencil .channel-applet-wrap .upnext-tease,
+ #Stencil .channel-applet-wrap .upnext-pause {
+ visibility: visible;
+ opacity: 1;
+ }
+
+ #Stencil .channel-applet-wrap .pause-screen .upnext-pause.ps-elm {
+ display: none;
+ }
+
+ #Stencil .channel-applet-wrap .show-ps .pause-screen .upnext-pause.ps-elm {
+ display: block;
+ }
+
+ #Stencil .channel-applet-wrap .upnext-tease {
+ z-index: 2;
+ }
+
+ #Stencil .channel-applet-wrap .upnext-tease .thumb-ov {
+ width: 180px;
+ }
+
+ #Stencil .channel-applet-wrap .upnext-tease .thumb-ov.ss-item {
+ box-shadow: 0px 0px 4px 2px #313131;
+ padding: 0;
+ }
+
+ #Stencil .channel-applet-wrap .upnext-tease .thumb-ov.ss-item .pl-marker {
+ display: block;
+ background-color: #5f33ff;
+ letter-spacing: 0.08em;
+ }
+
+ #Stencil .channel-applet-wrap .pause-screen .upnext-pause {
+ margin-right: 25px;
+ background-color: black;
+ background-color: rgba(0, 0, 0, 0.8);
+ width: 55%;
+ max-width: 380px;
+ box-shadow: 0px 0px 5px #636363;
+ border-right: 8px solid #5f33ff;
+ font-size: 0;
+ text-align: right;
+ }
+
+ #Stencil .channel-applet-wrap .pause-screen .upnext-pause .ss-item .pl-title {
+ display: block;
+ }
+
+ #Stencil .channel-applet-wrap .pause-screen .upnext-pause .ss-item {
+ width: 100%;
+ }
+
+ #Stencil .channel-applet-wrap .pause-screen .upnext-pause .ss-item .marker {
+ background-color: #5f33ff;
+ }
+
+ #Stencil .channel-applet-wrap .pause-screen .upnext-pause .ss-item .pl-img {
+ height: 0;
+ padding-bottom: 22.5%;
+ background-color: #17151D;
+ }
+
+ #Stencil .channel-applet-wrap .upnext-pause .hover-overlay,
+ #Stencil .channel-applet-wrap .upnext-tease .hover-overlay {
+ display: none\9;
+ opacity: 0;
+ -moz-transition: opacity 0.32s;
+ -o-transition: opacity 0.32s;
+ -webkit-transition: opacity 0.32s;
+ transition: opacity 0.32s;
+ background-color: black;
+ background-color: rgba(0, 0, 0, 0.7);
+ }
+
+ #Stencil .channel-applet-wrap .upnext-pause:hover .hover-overlay,
+ #Stencil .channel-applet-wrap .upnext-tease:hover .hover-overlay {
+ display: block\9;
+ opacity: 1;
+ }
+
+ #Stencil .channel-applet-wrap .upnext-tease.hide-tease,
+ #Stencil .channel-applet-wrap .hide-ss .splash-screen {
+ visibility: hidden;
+ opacity: 0;
+ }
+
+ #Stencil .channel-applet-wrap .splash-screen .title,
+ #Stencil .channel-applet-wrap .pause-screen .title,
+ #Stencil .channel-applet-wrap .subscription-screen .title,
+ #Stencil .channel-applet-wrap .payment-screen .title {
+ text-shadow: 0px 2px #181818;
+ font-family: "Helvetica Neue", Helvetica, Arial, serif;
+ font-size: 32px;
+ -webkit-line-clamp: 2;
+ max-height: 80px;
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ overflow: hidden;
+ font-weight: lighter;
+ }
+
+ #Stencil .channel-applet-wrap .payment-screen .desc {
+ font-weight: lighter;
+ font-size: 20px;
+ }
+
+ #Stencil .channel-applet-wrap .subscription-screen {
+ -moz-transition: height 1s;
+ -o-transition: height 1s;
+ -webkit-transition: height 1s;
+ transition: height 1s;
+ -moz-transition: padding 1s;
+ -o-transition: padding 1s;
+ -webkit-transition: padding 1s;
+ transition: padding 1s;
+ -moz-transition: top 1s;
+ -o-transition: top 1s;
+ -webkit-transition: top 1s;
+ transition: top 1s;
+ }
+
+ #Stencil .channel-applet-wrap .subscription-screen .desc {
+ font-weight: lighter;
+ font-size: 20px;
+ -moz-transition: display 1s;
+ -o-transition: display 1s;
+ -webkit-transition: display 1s;
+ transition: display 1s;
+ }
+
+ #Stencil .channel-applet-wrap .subscription-screen .Btn {
+ font-family: "Helvetica Neue", Helvetica, Arial, serif;
+ font-size: 16px;
+ }
+
+ #Stencil .channel-applet-wrap .subscription-screen .options {
+ -moz-transition: margin 1s;
+ -o-transition: margin 1s;
+ -webkit-transition: margin 1s;
+ transition: margin 1s;
+ }
+
+ #Stencil .channel-applet-wrap .subscription-screen .title,
+ #Stencil .channel-applet-wrap .subscription-screen .play-preview-btn {
+ -moz-transition: opacity 1s;
+ -o-transition: opacity 1s;
+ -webkit-transition: opacity 1s;
+ transition: opacity 1s;
+ -moz-transition: height 1s;
+ -o-transition: height 1s;
+ -webkit-transition: height 1s;
+ transition: height 1s;
+ }
+
+ #Stencil .channel-applet-wrap .subscription-screen .preview-info {
+ display: none;
+ }
+
+ #Stencil .channel-applet-wrap .subscription-screen.small {
+ height: 60px;
+ padding: 10px 20px;
+ top: 320px;
+ }
+
+ #Stencil .channel-applet-wrap .subscription-screen.small .title {
+ opacity: 0;
+ height: 0;
+ }
+
+ #Stencil .channel-applet-wrap .subscription-screen.small .play-preview-btn {
+ opacity: 0;
+ height: 0;
+ }
+
+ #Stencil .channel-applet-wrap .subscription-screen.small .options {
+ display: inline-block;
+ margin-left: 20px;
+ margin-top: 0;
+ }
+
+ #Stencil .channel-applet-wrap .subscription-screen.small .desc {
+ display: inline-block;
+ margin: 0;
+ }
+
+ #Stencil .channel-applet-wrap .subscription-screen.small .preview-info {
+ display: block;
+ }
+
+ #Stencil .channel-applet-wrap #sub-mask {
+ width: 100%;
+ top: 0;
+ left: 0;
+ height: 100%;
+ z-index: 149;
+ background-color: rgba(0, 0, 0, 0.5);
+ }
+
+ #Stencil .channel-applet-wrap .sub-iframe-container {
+ top: 150px;
+ width: 50%;
+ margin: 0 0 0 -25%;
+ height: 445px;
+ left: 50%;
+ background-color: #FFFFFF;
+ }
+
+ #Stencil .channel-applet-wrap .sub-iframe-container .close-btn {
+ right: 10px;
+ top: 10px;
+ background: none;
+ border: none;
+ font-size: 20px;
+ }
+
+ #Stencil .channel-applet-wrap .payment-loader-screen {
+ color: #333;
+ font-size: 20px;
+ top: 45%;
+ left: 33%;
+ }
+
+ #Stencil .channel-applet-wrap #subscription-iframe {
+ border: none;
+ height: 445px;
+ width: 100%;
+ }
+
+ #Stencil .channel-applet-wrap .vp-container.show-ps .pause-screen {
+ visibility: visible;
+ opacity: 1;
+ }
+
+ #Stencil .channel-applet-wrap.tiny-player .vp-container.show-ps .pause-screen {
+ visibility: hidden;
+ opacity: 0;
+ }
+
+ #Stencil .channel-applet-wrap.tiny-player .vp-container .player-maestro {
+ z-index: 1;
+ }
+
+ #Stencil .channel-applet-wrap.tiny-player .vp-overlay.opened {
+ z-index: 2;
+ }
+
+ #Stencil .channel-applet-wrap.tiny-player .control-panel-tt {
+ z-index: 100;
+ position: relative;
+ }
+
+ #Stencil .channel-applet-wrap .pause-screen .play-btn {
+ -moz-transition: opacity 0.54s;
+ -o-transition: opacity 0.54s;
+ -webkit-transition: opacity 0.54s;
+ transition: opacity 0.54s;
+ }
+
+ #Stencil .channel-applet-wrap .vp-container.hide-ps .pause-screen .play-btn,
+ #Stencil .channel-applet-wrap .vp-container.show-ps .pause-btn {
+ display: block;
+ -webkit-animation: explosion 0.54s;
+ -moz-animation: explosion 0.54s;
+ -o-animation: explosion 0.54s;
+ animation: explosion 0.54s;
+ }
+
+ #Stencil .channel-applet-wrap .pause-screen .play-btn .Icon {
+ margin-left: 8px;
+ }
+
+ #Stencil .channel-applet-wrap .pause-screen .thumb-ov .current-thumb-container {
+ border: solid 2px #ccc;
+ border-right-width: 3px;
+ }
+
+ #Stencil .channel-applet-wrap .pause-screen {
+ visibility: hidden;
+ opacity: 0;
+ }
+
+ #Stencil .channel-applet-wrap .pause-screen.intermezzo .embed-link {
+ display: none;
+ }
+
+ #Stencil .channel-applet-wrap .pause-screen .play-btn,
+ #Stencil .channel-applet-wrap .pause-screen .pause-btn {
+ width: 80px;
+ height: 80px;
+ margin-left: -40px;
+ margin-top: -40px;
+ border-radius: 100%;
+ background-color: #131313;
+ background-color: rgba(19, 19, 19, 0.7);
+ display: none;
+ opacity: 0;
+ }
+
+ #Stencil .channel-applet-wrap .pause-screen .share-url-container {
+ font-size: 12px;
+ font-size: 1.2rem;
+ margin-top: 10px;
+ opacity: 1;
+ -moz-transition: opacity 0.32s ease;
+ -o-transition: opacity 0.32s ease;
+ -webkit-transition: opacity 0.32s ease;
+ transition: opacity 0.32s ease;
+ }
+
+ #Stencil .channel-applet-wrap .pause-screen .share-url-container.collapsed {
+ visibility: hidden;
+ opacity: 0;
+ }
+
+ #Stencil .channel-applet-wrap .pause-screen .share-url-container label {
+ width: 50px;
+ font-size: 12px;
+ font-size: 1.2rem;
+ }
+
+ #Stencil .channel-applet-wrap .pause-screen .share-url-container input {
+ cursor: pointer;
+ width: 200px;
+ font-size: 12px;
+ font-size: 1.2rem;
+ background-color: #000;
+ color: #ececec;
+ border-color: #333;
+ border-radius: 2px;
+ }
+
+ #Stencil .channel-applet-wrap .pause-screen .share-btn-container {
+ font-size: 0;
+ border-radius: 1px;
+ box-shadow: 0px 0px 2px #555;
+ background-color: black;
+ background-color: rgba(0, 0, 0, 0.4);
+ }
+
+ #Stencil .channel-applet-wrap .pause-screen .share-btn-container li .Icon {
+ -moz-transition: background-color 0.24s;
+ -o-transition: background-color 0.24s;
+ -webkit-transition: background-color 0.24s;
+ transition: background-color 0.24s;
+ background-color: transparent;
+ font-size: 22px;
+ font-size: 2.2rem;
+ padding: 4px;
+ }
+
+ #Stencil .channel-applet-wrap .pause-screen .share-btn-container .Btn-embed-link {
+ cursor: pointer;
+ color: #fff;
+ min-width: 0;
+ border: 0;
+ border-radius: 0;
+ vertical-align: middle;
+ text-decoration: none;
+ }
+
+ #Stencil .channel-applet-wrap .pause-screen .share-btn-container li:hover .Btn-tumblr {
+ background-color: #3E5A70;
+ }
+
+ #Stencil .channel-applet-wrap .pause-screen .share-btn-container li:hover .Btn-fb {
+ background-color: #2D62AD;
+ }
+
+ #Stencil .channel-applet-wrap .pause-screen .share-btn-container li:hover .Btn-t {
+ background-color: #2CA9E5;
+ }
+
+ #Stencil .channel-applet-wrap .pause-screen .share-btn-container li:hover .Btn-y {
+ background-color: #6D329C;
+ }
+
+ #Stencil .channel-applet-wrap .pause-screen .share-btn-container li:hover .Btn-embed-link {
+ background-color: #333;
+ }
+
+ #Stencil .channel-applet-wrap .pause-screen.show-ps .share-btn-container li .Icon {
+ opacity: 1;
+ }
+
+ #Stencil .channel-applet-wrap .pause-screen .cur-pause &gt;
+ .msg,
+ #Stencil .channel-applet-wrap .pause-screen .upnext-pause &gt;
+ .msg {
+ padding-left: 6px;
+ }
+
+ #Stencil .channel-applet-wrap .pause-screen .thumb-wrapper .ss-item {
+ padding-right: 0;
+ margin-right: 0;
+ }
+
+ #Stencil .channel-applet-wrap .vp-container.pl-paused .nextgen-player .pause-screen .play-btn {
+ opacity: 1;
+ }
+
+ #Stencil .channel-applet-wrap .intermezzo .pause-countdown,
+ #Stencil .channel-applet-wrap .intermezzo .play-countdown {
+ padding: 6px 8px 4px 6px;
+ background-color: #5f33ff;
+ border-radius: 2px;
+ margin-right: 6px;
+ }
+
+ #Stencil .channel-applet-wrap .intermezzo .play-countdown .Icon {
+ position: relative;
+ left: 2px;
+ }
+
+ #Stencil .channel-applet-wrap .intermezzo .th-sh-wrap {
+ position: absolute;
+ left: 20px;
+ bottom: 25px;
+ box-shadow: 0 0 5px #555;
+ }
+
+ #Stencil .channel-applet-wrap .intermezzo .th-sh-wrap .cur-pause {
+ position: relative;
+ margin: 0;
+ padding: 0;
+ }
+
+ #Stencil .channel-applet-wrap .intermezzo .th-sh-wrap .cur-pause .overlay {
+ opacity: 0.9;
+ background-color: rgba(0, 0, 0, 0.7);
+ visibility: visible;
+ }
+
+ #Stencil .channel-applet-wrap .intermezzo .th-sh-wrap .cur-pause .overlay .Icon {
+ font-size: 20px;
+ }
+
+ #Stencil .channel-applet-wrap .intermezzo .th-sh-wrap .cur-pause .overlay .replay-cont {
+ margin-top: -35px;
+ }
+
+ #Stencil .channel-applet-wrap .intermezzo .th-sh-wrap .share-btn-container {
+ position: absolute;
+ right: 0px;
+ bottom: 0px;
+ left: 0px;
+ margin-top: 0;
+ white-space: nowrap;
+ box-shadow: none;
+ z-index: 2;
+ }
+
+ #Stencil .channel-applet-wrap .intermezzo .th-sh-wrap .share-btn-container li {
+ width: 25%;
+ }
+
+ #Stencil .channel-applet-wrap .intermezzo .th-sh-wrap .share-btn-container li .Icon {
+ font-size: 20px;
+ font-size: 2.0rem;
+ padding: 4px 0;
+ width: 100%;
+ }
+
+ #Stencil .channel-applet-wrap .yvp-state-start-screen .yvp-controls {
+ display: block;
+ }
+
+ #Stencil .channel-applet-wrap .yvp-state-start-screen .yvp-bottom-bar,
+ #Stencil .channel-applet-wrap .yvp-state-start-screen .yvp-top-bar,
+ #Stencil .channel-applet-wrap .yvp-state-start-screen .yvp-sharing-panel-box {
+ display: none;
+ }
+
+ #Stencil .channel-applet-wrap .intermezzo .play-countdown,
+ #Stencil .channel-applet-wrap .intermezzo .next-message {
+ display: none;
+ }
+
+ #Stencil .channel-applet-wrap .intermezzo.countdown-paused .play-countdown,
+ #Stencil .channel-applet-wrap .intermezzo.countdown-paused .next-message {
+ display: inline-block;
+ }
+
+ #Stencil .channel-applet-wrap .intermezzo.countdown-paused .pause-countdown,
+ #Stencil .channel-applet-wrap .intermezzo.countdown-paused .start-message {
+ display: none;
+ }
+
+ #Stencil .channel-applet-wrap .pause-screen.intermezzo .ps-elm.play-btn.ctrl {
+ opacity: 1;
+ display: block;
+ }
+
+ #Stencil .channel-applet-wrap .pause-screen.intermezzo .im-elm,
+ #Stencil .channel-applet-wrap .pause-screen .ps-elm {
+ display: block;
+ }
+
+ #Stencil .channel-applet-wrap .pause-screen .im-elm,
+ #Stencil .channel-applet-wrap .show-ps .pause-screen.intermezzo .ps-elm {
+ display: none;
+ }
+
+ #Stencil .channel-applet-wrap .player-maestro .ss-item .overlay {
+ opacity: 0;
+ background-color: #5f33ff;
+ background-color: rgba(95, 51, 255, 0.8);
+ -moz-transition: opacity 0.32s ease;
+ -o-transition: opacity 0.32s ease;
+ -webkit-transition: opacity 0.32s ease;
+ transition: opacity 0.32s ease;
+ }
+
+ #Stencil .channel-applet-wrap .player-maestro .ss-item:hover .overlay {
+ opacity: 1;
+ }
+
+ #Stencil .channel-applet-wrap .player-maestro .ss-item:hover .overlay-text {
+ opacity: 0;
+ }
+
+ #Stencil .channel-applet-wrap .player-maestro .ss-item .pl-button {
+ position: absolute;
+ margin: -14px 0 0 -14px;
+ color: white;
+ border: 2px solid white;
+ border-radius: 100%;
+ padding: 2px 0px 1px 3px;
+ top: 50%;
+ left: 50%;
+ }
+
+ #Stencil .channel-applet-wrap .player-maestro .overlay-text {
+ text-shadow: 0 1px #000;
+ color: #FFF;
+ font-size: 12px;
+ background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjEuMCIgeDI9IjAuNSIgeTI9IjAuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3RvcC1vcGFjaXR5PSIwLjgiLz48c3RvcCBvZmZzZXQ9IjI1JSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3RvcC1vcGFjaXR5PSIwLjgiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMwMDAwMDAiIHN0b3Atb3BhY2l0eT0iMC4wIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0idXJsKCNncmFkKSIgLz48L3N2Zz4g');
+ background-size: 100%;
+ background-image: -webkit-gradient(linear, 50% 100%, 50% 0%, color-stop(0%, rgba(0, 0, 0, 0.8)), color-stop(25%, rgba(0, 0, 0, 0.8)), color-stop(100%, rgba(0, 0, 0, 0)));
+ background-image: -moz-linear-gradient(bottom, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.8) 25%, rgba(0, 0, 0, 0) 100%);
+ background-image: -webkit-linear-gradient(bottom, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.8) 25%, rgba(0, 0, 0, 0) 100%);
+ background-image: linear-gradient(to top, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.8) 25%, rgba(0, 0, 0, 0) 100%);
+ -moz-transition: opacity 0.32s ease;
+ -o-transition: opacity 0.32s ease;
+ -webkit-transition: opacity 0.32s ease;
+ transition: opacity 0.32s ease;
+ padding-top: 20px;
+ opacity: 1;
+ }
+
+ #Stencil .channel-applet-wrap .player-maestro .overlay-text .pl-title {
+ display: block;
+ }
+
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-tiny .share-url-container,
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-small .share-url-container {
+ opacity: 0;
+ visibility: hidden;
+ }
+
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-tiny .share-btn-container .embed-link,
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-small .share-btn-container .embed-link {
+ display: none;
+ }
+
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-tiny .Fz-m {
+ font-size: 12px;
+ }
+
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-tiny .Fz-l {
+ font-size: 14px;
+ }
+
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-tiny .title {
+ font-size: 18px;
+ }
+
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-tiny .th-sh-wrap {
+ position: absolute;
+ top: 50%;
+ margin-top: -16px;
+ left: 50%;
+ margin-left: -70px;
+ }
+
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-tiny .intermezzo .title {
+ display: block;
+ }
+
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-tiny .title,
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-tiny .ps-elm,
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-tiny .intermezzo .th-sh-wrap,
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-tiny .upnext-tease {
+ display: none;
+ }
+
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-tiny .starts-in button .Icon {
+ font-size: 10px;
+ }
+
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-small .Fz-m {
+ font-size: 13px;
+ }
+
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-small .Fz-l {
+ font-size: 15px;
+ }
+
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-small .title {
+ font-size: 21px;
+ max-height: 55px;
+ }
+
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-small .th-sh-wrap .Icon.Mini {
+ font-size: 16px;
+ }
+
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-small .upnext-pause.ps-elm,
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-small .intermezzo .th-sh-wrap,
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-small .upnext-tease {
+ display: none;
+ }
+
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-small .starts-in button .Icon {
+ font-size: 10px;
+ }
+
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-medium .maestro-text {
+ padding: 20px;
+ }
+
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-medium .Fz-m,
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-medium .Fz-l {
+ font-size: 14px;
+ }
+
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-medium .title {
+ font-size: 24px;
+ max-height: 60px;
+ }
+
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-medium .starts-in button .Icon {
+ font-size: 10px;
+ }
+
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-medium .th-sh-wrap .Icon.Mini {
+ font-size: 16px;
+ }
+
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-medium .cur-pause .replay-cont {
+ margin-top: -30px;
+ }
+
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-medium .cur-pause .ss-item {
+ width: 185px;
+ }
+
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-medium .upnext-pause .pl-title {
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ max-width: 100%;
+ display: block;
+ }
+
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-medium .play-btn,
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-medium .pause-btn,
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-small .play-btn,
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-small .pause-btn,
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-tiny .play-btn,
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-tiny .pause-btn {
+ width: 60px;
+ height: 60px;
+ margin-left: -30px;
+ margin-top: -30px;
+ }
+
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-medium .play-btn .Icon,
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-medium .pause-btn .Icon,
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-small .play-btn .Icon,
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-small .pause-btn .Icon,
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-tiny .play-btn .Icon,
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-tiny .pause-btn .Icon {
+ font-size: 18px;
+ }
+
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-medium .play-btn .Icon,
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-small .play-btn .Icon,
+ #Stencil .channel-applet-wrap .vp-container .player-maestro.maestro-tiny .play-btn .Icon {
+ margin-left: 6px;
+ }
+ </style>
+ <div id="applet_24330366287688580" class="js-applet" data-applet-guid="24330366287688580" data-applet-type="td-applet-videoplayer">
+ <div class="App-Bd">
+ <div class="App-Main yui3-app-views" data-region="main" id="yui_3_18_1_1_1481706756324_623">
+ <div class="js-applet-view-container-main" id="yui_3_18_1_1_1481706756324_633">
+
+
+
+
+
+ <style>
+
+ </style>
+
+ <div class="channel-applet-wrap mode-embedtron Ov-h W-100" id="yui_3_18_1_1_1481706756324_648">
+ <div class="vp-wrap Pos-r embed" id="yui_3_18_1_1_1481706756324_651">
+
+ <div class="vp-container smooth">
+ <div id="ym-player">
+ <div tabindex="0" class="yvp-content yvp-hide-controls normal yvp-browser-ua yvp-browser-firefox yvp-browser-desktop yvp-browser-macintosh yvp-state-error" aria-label="Yahoo Video Player" id="yvp-content-node-6305">
+ <div class="yvp-main" tabindex="0" style="height: 100%;">
+ <div class="yvp-loading-screen">
+ <div class="yvp-loading-spinner yvp-spinner-icon" style="width: 60px; height: 60px; margin-left: -30px; margin-top: -30px;"></div>
+ <div class="yvp-feedback-btn yvp-error-feedback" style="display: none;">
+ <p>Report issue</p>
+ </div>
+ </div>
+ <div class="yvp-bottom-bar">
+ <div class="yvp-bottom-container">
+ <div class="yvp-slider" role="slider" tabindex="0" aria-label="Seek slider" aria-valuemin="0">
+ <div class="yvp-slider-extension" aria-hidden="true"></div>
+ <div class="yvp-handle"></div>
+ <div class="yvp-buffer-bar"></div>
+ <div class="yvp-playback-bar"></div>
+ <div class="yvp-visual-seek">
+ <div class="yvp-vs-thumbnail"></div>
+ <div class="yvp-vs-time"></div>
+ </div>
+ </div>
+ <div class="yvp-play-controls">
+ <div class="yvp-play-btn" role="button" tabindex="0" aria-label="Pause Video"></div>
+ <div class="yvp-upnext-container hide">
+ <div class="yvp-upnext-btn" role="button">
+ </div>
+ <div class="yvp-upnext-playlist" role="dialog">
+ <div class="yvp-hover-elem"></div>
+ </div>
+ </div>
+ <div class="yvp-time-container" tabindex="-1" aria-hidden="true">
+ <div class="yvp-current-time"></div>
+ <div class="yvp-total-time"></div>
+ </div>
+ </div>
+ <div class="yvp-menu-controls">
+ <div class="yvp-cc-btn button hide yvp-tooltip" role="button" tabindex="0" aria-label="Closed Captions">
+ <div class="yvp-tooltip-wrapper">
+ <div class="yvp-tooltip-content">Captions Not Available</div>
+ </div>
+ </div>
+ <div class="yvp-volume-btn button" role="button" tabindex="0" aria-label="Mute">
+ <div class="yvp-volume-bar-container">
+ <div class="yvp-volume-level">
+ <div class="yvp-volume-bar">
+ <div class="yvp-volume-handle"></div>
+ </div>
+ <div class="yvp-volume-value"></div>
+ </div>
+ </div>
+ </div>
+ <div class="yvp-setting-btn button yvp-tooltip" role="button" tabindex="0" aria-label="Settings">
+ <div class="yvp-setting-pointer" aria-hidden="true"></div>
+ <div class="yvp-tooltip-wrapper">
+ <div class="yvp-tooltip-content">
+ Settings
+ </div>
+ </div>
+ </div>
+
+ <div class="yvp-fullscreen-btn button yvp-tooltip" role="button" tabindex="0" aria-label="Go to full screen">
+ <div class="yvp-tooltip-wrapper">
+ <div class="yvp-tooltip-content">
+ Full Screen
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="yvp-settings-container" tabindex="0">
+ <div class="yvp-main-settings open">
+ <div class="yvp-settings-embed close">
+ <div class="yvp-settings-header" tabindex="0" aria-label="Embed">Embed</div>
+ <div class="yvp-input-container yvp-embed-input-container">
+ <input class="yvp-embed-input" value="" data-link-type="emb" readonly="readonly" data-rapid_p="5" type="text" />
+ </div>
+ <div class="yvp-settings-divider"></div>
+ </div>
+ <div class="yvp-settings-quality">
+ <div class="yvp-settings-header" tabindex="0" aria-label="Video Quality">Video Quality</div>
+ <div class="yvp-settings-item yvp-quality-auto yvp-settings-activated" tabindex="1">Auto</div>
+ <div class="yvp-settings-item yvp-quality-high yvp-disabled" tabindex="2">High (HD)</div>
+ <div class="yvp-settings-item yvp-quality-medium yvp-disabled" tabindex="3">Medium</div>
+ <div class="yvp-settings-item last-item yvp-quality-low yvp-disabled" tabindex="4">Low</div>
+ <div class="yvp-settings-divider"></div>
+ </div>
+ <div class="yvp-settings-cc">
+ <div class="yvp-settings-header last-item" tabindex="0" aria-label="Closed Caption Settings">Closed Caption Settings</div>
+ <div class="yvp-settings-caret-icon right"></div>
+ </div>
+ </div>
+ <div class="yvp-cc-options-main close">
+ <div class="yvp-cc-back-to-settings">
+ <div class="yvp-settings-caret-icon left"></div>
+ <div class="yvp-back-to-settings">Back</div>
+ </div>
+
+ <div class="yvp-cc-box">
+ <div class="yvp-cc-header yvp-cc-item">Closed Captions</div>
+ <div class="yvp-cc-toggle">
+ <div data-cc-state="on" class="yvp-settings-item yvp-cc-on"></div>
+ <div data-cc-state="off" class="yvp-settings-item yvp-cc-off yvp-settings-activated"></div>
+ </div>
+ <div class="yvp-cc-header yvp-cc-item">Language</div>
+ <div class="yvp-cc-language yvp-cc-item">
+ <div class="yvp-ddm-wrapper">
+ <div class="yvp-ddm-selected-wrapper">
+ <div class="yvp-ddm-selected">English<span class="yvp-ddm-availability not-available"></span></div><span class="yvp-ddm-chevron"></span></div>
+ <ul class="yvp-ddm-list">
+ <li class="yvp-ddm-item">No item available</li>
+ </ul>
+ </div>
+ </div>
+ </div>
+
+ <div class="yvp-cc-divider"></div>
+ <div class="yvp-cc-box">
+ <div class="yvp-cc-position yvp-cc-item">
+ <div class="yvp-cc-header yvp-cc-item">Position</div>
+ <div class="yvp-cc-pos-wrapper">
+ <ul class="yvp-cc-pos-selection">
+ <li class="yvp-settings-item yvp-cc-position-bottom yvp-settings-activated" cc-pos-data="bottom">Bottom</li>
+ <li class="yvp-settings-item yvp-cc-position-top" cc-pos-data="top">Top</li>
+ </ul>
+ </div>
+ </div>
+ <div class="yvp-cc-size yvp-cc-item">
+ <div class="yvp-cc-header yvp-cc-item">Type Size</div>
+ <div class="yvp-cc-size-selector">
+ <div class="yvp-cc-size-indicators">
+ <div class="yvp-cc-indicator yvp-cc-indicator-0" data-size-value="0">A</div>
+ <div class="yvp-cc-indicator yvp-cc-indicator-25" data-size-value="25">A</div>
+ <div class="yvp-cc-indicator yvp-cc-indicator-50" data-size-value="50">A</div>
+ <div class="yvp-cc-indicator yvp-cc-indicator-75" data-size-value="75">A</div>
+ <div class="yvp-cc-indicator yvp-cc-indicator-100" data-size-value="100">A</div>
+ </div>
+ <div class="yvp-slider-wrapper">
+ <div class="yvp-slider-track">
+ <div class="yvp-slider-anchor" style="left: 0%"></div>
+ <div class="yvp-slider-anchor" style="left: 25%"></div>
+ <div class="yvp-slider-anchor" style="left: 50%"></div>
+ <div class="yvp-slider-anchor" style="left: 75%"></div>
+ <div class="yvp-slider-anchor" style="left: 100%"></div>
+ <div class="yvp-slider-handle" style="left: 24%"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div class="yvp-cc-divider"></div>
+ <div class="yvp-cc-box">
+ <div class="yvp-cc-style yvp-cc-item">
+ <div class="yvp-cc-style-preview" style="font-family: Arial,Helvetica,sans-serif; color: rgb(255, 255, 255); background-color: rgba(0, 0, 0, 0.75);">Aa</div>
+ <div class="yvp-cc-style-more">
+ <div class="yvp-cc-item">Style Options</div>
+ <div class="yvp-settings-caret-icon right"></div>
+ </div>
+ </div>
+
+ <div class="yvp-cc-feedback-link yvp-cc-item">
+ <a href="http://info.yahoo.com/legal/us/yahoo/cc/en-us/" target="_blank" data-rapid_p="6">
+ <div class="yvp-cc-item"></div>
+ </a>
+ </div>
+ <div class="yvp-cc-preview">
+ <div class="yvp-cc-preview-message">Captions will look like this</div>
+ </div>
+ </div>
+ </div>
+ <div class="yvp-cc-options-more close">
+ <div class="yvp-cc-back">
+ <div class="yvp-settings-caret-icon left"></div>
+ <div class="yvp-cc-back-header">Back</div>
+ </div>
+ <div class="yvp-tab-container">
+ <ul class="yvp-tabs-nav">
+ <li class="yvp-tab tab-selected">Presets</li>
+ <li class="yvp-tab">Text</li>
+ <li class="yvp-tab">background</li>
+ <li class="yvp-tab">effects</li>
+ </ul>
+ <div class="yvp-tabs-content">
+ <div class="yvp-tabcontent preset-container tab-show">
+ <div class="yvp-cc-preset" style="color: rgb(205, 205, 205); background-color: rgb(6, 6, 6);">Aa</div>
+ <div class="yvp-cc-preset" style="color: rgb(40, 40, 40); background-color: rgb(200, 200, 200);">Aa</div>
+ <div class="yvp-cc-preset" style="color: rgb(254, 241, 73); background-color: rgb(10, 9, 8);">Aa</div>
+ <div class="yvp-cc-preset" style="color: rgb(205, 205, 205); background-color: transparent;">Aa</div>
+ <div class="yvp-cc-preset" style="color: rgb(41, 253, 47); background-color: rgb(10, 9, 8);">Aa</div>
+ <div class="yvp-cc-preset" style="color: rgb(236, 54, 156); background-color: rgb(10, 10, 9);">Aa</div>
+ <div class="yvp-cc-preset" style="color: rgb(44, 254, 254); background-color: rgb(10, 10, 9);">Aa</div>
+ <div class="yvp-cc-preset" style="color: rgb(41, 253, 47); background-color: transparent;">Aa</div>
+ </div>
+ <div class="yvp-tabcontent font-list">
+ <div class="yvp-ddm-wrapper">
+ <div class="yvp-ddm-selected-wrapper">
+ <div class="yvp-ddm-selected">Arial<span class="yvp-ddm-availability"></span></div><span class="yvp-ddm-chevron"></span></div>
+ <ul class="yvp-ddm-list">
+ <li class="yvp-ddm-item">Georgia<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">Palatino Linotype<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">Times New Roman<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">Arial<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">Arial Black<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">Comic Sans MS<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">Impact<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">Lucida Sans Unicode<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">Tahoma<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">Trebuchet MS<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">Verdana<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">Courier New<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">Lucida Console<span class="yvp-ddm-availability"></span></li>
+ </ul>
+ </div>
+ <div class="yvp-colorpicker fontcolorpicker">
+ <div class="color-option" style="background-color: rgb(231, 231, 231);"></div>
+ <div class="color-option" style="background-color: rgb(0, 0, 0);"></div>
+ <div class="color-option" style="background-color: rgb(252, 37, 37);"></div>
+ <div class="color-option" style="background-color: rgb(41, 253, 47);"></div>
+ <div class="color-option" style="background-color: rgb(44, 254, 254);"></div>
+ <div class="color-option" style="background-color: rgb(236, 54, 156);"></div>
+ <div class="color-option" style="background-color: rgb(254, 241, 73);"></div>
+ <div class="color-option" style="background-color: rgb(37, 36, 251);"></div>
+ </div>
+ </div>
+ <div class="yvp-tabcontent bg-opacity-list">
+ <div class="yvp-ddm-wrapper">
+ <div class="yvp-ddm-selected-wrapper">
+ <div class="yvp-ddm-selected">75% (transparency)<span class="yvp-ddm-availability"></span></div><span class="yvp-ddm-chevron"></span></div>
+ <ul class="yvp-ddm-list">
+ <li class="yvp-ddm-item">100% (opaque)<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">75% (transparency)<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">50% (transparency)<span class="yvp-ddm-availability"></span></li>
+ <li class="yvp-ddm-item">25% (transparency)<span class="yvp-ddm-availability"></span></li>
+ </ul>
+ </div>
+ <div class="yvp-colorpicker bgcolorpicker">
+ <div class="color-option nocolor" style="background-color: transparent;"></div>
+ <div class="color-option" style="background-color: rgb(234, 234, 234);"></div>
+ <div class="color-option" style="background-color: rgb(199, 199, 199);"></div>
+ <div class="color-option" style="background-color: rgb(145, 145, 145);"></div>
+ <div class="color-option" style="background-color: rgb(91, 91, 91);"></div>
+ <div class="color-option" style="background-color: rgb(0, 0, 0);"></div>
+ <div class="color-option" style="background-color: rgb(41, 253, 47);"></div>
+ <div class="color-option" style="background-color: rgb(36, 36, 251);"></div>
+ <div class="color-option" style="background-color: rgb(44, 253, 253);"></div>
+ <div class="color-option" style="background-color: rgb(236, 53, 155);"></div>
+ <div class="color-option" style="background-color: rgb(253, 240, 72);"></div>
+ <div class="color-option" style="background-color: rgb(252, 36, 36);"></div>
+ </div>
+ </div>
+ <div class="yvp-tabcontent effects">
+ <div class="yvp-effect none">
+ <p>Aa</p>
+ <div class="yvp-cc-effect-header">Plain</div>
+ </div>
+ <div class="yvp-effect dropshadow">
+ <p>Aa</p>
+ <div class="yvp-cc-effect-header">Shadow</div>
+ </div>
+ <div class="yvp-effect raised">
+ <p>Aa</p>
+ <div class="yvp-cc-effect-header">raised</div>
+ </div>
+ <div class="yvp-effect depressed">
+ <p>Aa</p>
+ <div class="yvp-cc-effect-header">Lowered</div>
+ </div>
+ <div class="yvp-effect uniform">
+ <p>Aa</p>
+ <div class="yvp-cc-effect-header">Outline</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="yvp-cc-style-preview" style="font-family: Arial,Helvetica,sans-serif; color: rgb(255, 255, 255); background-color: rgba(0, 0, 0, 0.75);">
+ <div class="yvp-cc-options-message">Captions will look like this</div>
+ </div>
+ </div>
+ </div>
+ <div class="yvp-docked-close-button"></div>
+ </div>
+ </div>
+ <div class="yvp-top-bar">
+ <a class="yvp-provider-logo" target="_blank" aria-hidden="true" data-rapid_p="7"></a>
+ <div class="yvp-content-type hide" tabindex="0" aria-label=""></div>
+ </div>
+ <div class="yvp-playing-item-title"></div>
+ <div class="yvp-custom-controls"></div>
+ <div class="yvp-object-overlay"></div>
+ <div class="yvp-mute-indicator"></div>
+ <div class="yvp-ads-overlay"></div>
+ <div class="cc-element yvp-hide" style="font-family: Arial,Helvetica,sans-serif; font-size: 20px; color: rgb(255, 255, 255);"><span style="background-color: rgba(0, 0, 0, 0.75); line-height: 0; padding: 0px;"></span></div>
+ <div class="yvp-error-screen">
+ <img class="yvp-error-screen-image" src="" />
+ <div class="yvp-error-screen-background"></div>
+ <div class="yvp-error-title">Video Not Available</div>
+ <div class="yvp-error-desc" id="yvp-error-message">Unfortunately, this video is not available in your region.</div>
+ <div class="yvp-error-code">SS-100-202</div>
+
+ </div>
+ </div>
+ <div class="yvp-docked-meta">
+ <div class="yvp-docked-title"></div>
+ <div class="yvp-docked-provider"></div>
+ </div>
+ </div>
+ </div>
+
+
+ <div class="player-maestro hide-ss nextgen-player">
+ <div class="splash-screen Pos-a T-0 B-0 Start-0 End-0">
+
+
+ <p class="title M-0">Photo of Baby Wrapped in US Flag Seen as Unpatriotic</p>
+
+ </div>
+
+ <div class="pause-screen Pos-a T-0 B-0 Start-0 End-0" data-uuid="8ea6cae9-52c8-3c54-9b51-a4111390fd49" id="yui_3_18_1_1_1481706756324_672">
+
+
+
+ <div class="maestro-text Pos-a Start-0 End-0 T-0 B-0">
+ <span class="Fz-l Mt-0 Mb-10 now-watching ps-elm Pos-r">Now watching</span>
+
+ <p class="starts-in Fz-l Mt-0 im-elm">
+ <button class="flat pause-countdown Cur-p" data-rapid_p="1"><i class="Icon Fz-s"></i></button>
+ <button class="flat play-countdown Cur-p" data-rapid_p="2"><i class="Icon Fz-s"></i></button>
+ <span class="start-message">Next video starts in : <span class="countdown">7</span></span>
+ <span class="next-message">Play</span>
+ </p>
+ <p class="title Mt-0 Mb-10">Photo of Baby Wrapped in US Flag Seen as Unpatriotic</p>
+
+ <div class="th-sh-wrap">
+
+ <div class="cur-pause Pos-a End-0 Mend-20 B-0 Mb-40 Z-0 P-10 Cur-P im-elm">
+ <div class="thumb-wrapper">
+
+ </div>
+ </div>
+ </div>
+
+
+
+ <div class="upnext-pause Pos-a End-0 B-0 Mb-50 Z-0 P-0 Cur-P ps-elm">
+ <div class="thumb-wrapper">
+
+ </div>
+ </div>
+
+ <button class="flat Pos-a T-50 Start-50 play-btn ctrl ps-elm" data-rapid_p="3"><i class="Icon Fz-2xl"></i></button>
+ <button class="flat Pos-a T-50 Start-50 pause-btn ctrl ps-elm" data-rapid_p="4"><i class="Icon Fz-2xl"></i></button>
+ </div>
+
+
+ </div>
+
+
+ <div class="upnext-tease Pos-a B-0 End-0 Mend-20 Mb-40 hide-tease">
+
+ </div>
+
+ </div>
+
+
+
+
+
+ </div>
+
+
+ <div class="pl-list Pos-a">
+
+
+ </div>
+
+
+ </div>
+
+ </div>
+
+
+
+
+ <!-- Schema.org Microdata -->
+ <div class="D-n" itemprop="video" itemscope="" itemtype="https://schema.org/VideoObject" data-model="VideoMetadata@VideoMetadata">
+ <meta itemprop="name" content="Photo of Baby Wrapped in US Flag Seen as Unpatriotic" />
+ <meta itemprop="description" content="Critics say the photo of little Landon wrapped in a flag is disrespectful to Old Glory." />
+
+
+
+ <meta itemprop="url" content="https://gma.yahoo.com/video/photo-baby-wrapped-us-flag-122124162.html" />
+ <meta itemprop="embedURL" content="https://gma.yahoo.com/video/photo-baby-wrapped-us-flag-122124162.html?format=embed" />
+
+
+ <meta itemprop="thumbnailUrl" content="https://s1.yimg.com/uu/api/res/1.2/O5gmnj40BHRCF42sS8HkTA--/Zmk9ZmlsbDtweW9mZj0wO3c9MjA4O2g9MTE3O3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/559ecdbafdb839129816b5c79a996975" />
+
+ <meta itemprop="videoQuality" content="hd" />
+ <meta itemprop="duration" content="PY0M0D0TH0M2S20" />
+
+
+ <meta itemprop="userInteraction" content="UserPlays:124,700" />
+
+
+ <meta itemprop="datePublished" content="2015-03-12T13:11:07Z" />
+
+
+ <meta itemprop="dateCreated" content="2015-03-12T12:21:24Z" />
+
+
+ <span itemprop="provider" itemscope="" itemtype="https://schema.org/Organization">
+ <meta itemprop="name" content="ABC News Videos" />
+ <meta itemprop="url" content="http://www.abc.com" />
+
+ </span>
+
+
+ <span itemprop="isPartOf" itemscope="" itemtype="https://schema.org/Series">
+ <meta itemprop="name" content="Good Morning America" />
+ </span>
+
+
+ </div>
+ <!-- Schema.org Microdata -->
+
+
+
+
+ </div>
+ </div>
+ </div>
+ </div>
+ <script>
+ YMedia.applyConfig({
+ "groups": {
+ "td-applet-videoplayer": {
+ "base": "https://s.yimg.com/os/mit/td/td-applet-videoplayer-0.3.1019/",
+ "root": "os/mit/td/td-applet-videoplayer-0.3.1019/",
+ "combine": true,
+ "filter": "min",
+ "comboBase": "https://s.yimg.com/zz/combo?",
+ "comboSep": "&amp;"
+ }
+ }
+ });
+ </script>
+ <script>
+ window.Af = window.Af || {};
+ window.Af.bootstrap = window.Af.bootstrap || {};
+ window.Af.bootstrap["24330366287688580"] = {
+ "applet_type": "td-applet-videoplayer",
+ "models": {
+ "video-playlist": {
+ "yui_module": "td-applet-video-playlist-model",
+ "yui_class": "TD.Applet.VideoPlaylistModel"
+ },
+ "applet_model": {
+ "models": ["video-playlist"],
+ "data": {
+ "sapi": {
+ "id": "8ea6cae9-52c8-3c54-9b51-a4111390fd49"
+ },
+ "player_config": {
+ "autoplay": true,
+ "carousel": false,
+ "comscoreC4": "News",
+ "continuousPlay": true,
+ "chromeless": false,
+ "disable_vp_beacons": "0",
+ "enableSnapItAPI": false,
+ "endscreen": false,
+ "expBucket": "",
+ "expName": "grandslam",
+ "expType": "story",
+ "lang": "en-US",
+ "loop": false,
+ "mute": false,
+ "newNFLBranding": false,
+ "pageSpaceId": "1197056126",
+ "pausescreen": false,
+ "playinlinevideos": true,
+ "playlist": {},
+ "region": "US",
+ "site": "gma",
+ "startscreen": {
+ "showTitle": 1,
+ "showProvider": 1,
+ "showDesc": 0
+ },
+ "startTime": 0,
+ "synd": false,
+ "showFujiUI": false,
+ "CMS": {
+ "env": "prod",
+ "suppressAdContext": false
+ },
+ "YVAP": {
+ "accountId": "145",
+ "playContext": "gma",
+ "timeout": 3
+ }
+ },
+ "switches": {
+ "enableClientOverride": false,
+ "enableDarlaRefresh": true,
+ "enableDeferredInit": true,
+ "enableDeferredPrefetch": false,
+ "enableHashControls": true,
+ "enableHTML5": false,
+ "enableJsUrlOnly": true,
+ "enableNFLNow": false,
+ "enableMockDarla": false,
+ "enableNSEvents": true,
+ "enableChat": false,
+ "enableChatTabFirst": false,
+ "enableFindTicketTop": false,
+ "enablePlaylistUI": false,
+ "isPlaylistEnabled": true,
+ "isUpdateUrlEnabled": false,
+ "isUpdateCommentsEnabled": false,
+ "isCachePosition": false,
+ "isSharebarEnabled": false,
+ "isMobileShareBar": false,
+ "isProviderLogosEnabled": false,
+ "isMoreChannelsEnabled": false,
+ "isLargeSharebarEnabled": false,
+ "isGripEnabled": true,
+ "isTeaser": false,
+ "isThisRapidEnabled": true,
+ "isMetadataEnabled": false,
+ "isIntermezzoEnabled": true,
+ "isPlayerMaestroEnabled": true,
+ "isMaestroPauseEnabled": true,
+ "isPauseEmbedCodeEnabled": false,
+ "isUpnextTeaseEnabled": true,
+ "isPremiumTeaseEnabled": false,
+ "isTestModeEnabled": false,
+ "isUseH1": false,
+ "isLocalShareXHREnabled": false,
+ "isStickyEnabled": false,
+ "isAutoPlay": true
+ },
+ "first_videoid": "",
+ "first_videometa": {
+ "id": "8ea6cae9-52c8-3c54-9b51-a4111390fd49",
+ "title": "Photo of Baby Wrapped in US Flag Seen as Unpatriotic",
+ "show_name": "Good Morning America",
+ "preview_video_uuid": null,
+ "duration": 140,
+ "alias_name": "cavideo=photo-baby-wrapped-us-flag-122124162",
+ "provider_name": "ABC News Videos",
+ "provider_id": "video.abcnewsplus.com",
+ "provider_object_ref": "7de8a6c2-ed71-345d-b8d7-ef4ce86f24fd",
+ "publish_time": "2015-03-12T13:11:07Z",
+ "provider_publish_time": "2015-03-12T12:21:24Z",
+ "streaming_url": "https://video.media.yql.yahoo.com/v1/hls/8ea6cae9-52c8-3c54-9b51-a4111390fd49?region=US",
+ "description": "Critics say the photo of little Landon wrapped in a flag is disrespectful to Old Glory.",
+ "share_link": "https://screen.yahoo.com/photo-baby-wrapped-us-flag-122124162.html",
+ "thumbnails": [{
+ "tag": "original",
+ "url": "https://s1.yimg.com/uu/api/res/1.2/2A.0kNTXEsXzhrPJV_0jUg--/dz0xMjgwO2g9NzIwO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/559ecdbafdb839129816b5c79a996975",
+ "width": 1280,
+ "height": 720
+ }, {
+ "tag": "208x117",
+ "url": "https://s1.yimg.com/uu/api/res/1.2/O5gmnj40BHRCF42sS8HkTA--/Zmk9ZmlsbDtweW9mZj0wO3c9MjA4O2g9MTE3O3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/559ecdbafdb839129816b5c79a996975",
+ "width": 208,
+ "height": 117
+ }, {
+ "tag": "640x360",
+ "url": "https://s1.yimg.com/uu/api/res/1.2/PYkmu.4aokTzBJ3y.Sp9FA--/Zmk9ZmlsbDtweW9mZj0wO3c9NjQwO2g9MzYwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/559ecdbafdb839129816b5c79a996975",
+ "width": 640,
+ "height": 360
+ }, {
+ "tag": "956x538",
+ "url": "https://s1.yimg.com/uu/api/res/1.2/EWFzf3HS_WkdUsVs6ikztQ--/Zmk9ZmlsbDtweW9mZj0wO3c9OTU2O2g9NTM4O3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/559ecdbafdb839129816b5c79a996975",
+ "width": 956,
+ "height": 538
+ }, {
+ "tag": "original_raw",
+ "url": "https://media.zenfs.com/en-US/video/video.abcnewsplus.com/559ecdbafdb839129816b5c79a996975",
+ "width": 1280,
+ "height": 720
+ }],
+ "channels": [{
+ "id": "c5930bb0-e192-11e3-b7f7-34e3a4d896fb",
+ "name": "ABC News Videos",
+ "alias_name": "abcnews",
+ "brand_logo": null,
+ "dock_logo": null,
+ "lang": null,
+ "region": null,
+ "homerun_logo": null,
+ "is_category": false,
+ "is_featured": false,
+ "is_visible": false,
+ "is_logical": null,
+ "displayShowName": false,
+ "nav_badge_new": false,
+ "default_parent_channel": null,
+ "videos": null,
+ "brand_logo_new": null,
+ "brand_name": null,
+ "brand_banner": null,
+ "instrument": null,
+ "follow_count": null,
+ "list_query_rules": null,
+ "space_id": "",
+ "ads_types": [],
+ "source_type": null,
+ "description": null,
+ "last_modified": null,
+ "sort_options": ["popular", "editorial"],
+ "tags": ["ymedia:device=full", "ymedia:type=collection", "ymedia:index=1", "ygma:region=US", "ymedia:list_type=static", "ymedia:type=list", "ymedia:collection_is_hidden", "ymedia:collection_type=playlist", "ymedia:collection_video_channel"],
+ "cast_crew": null,
+ "series_info": null,
+ "canonical_url": null
+ }],
+ "view_count": "124,700",
+ "concurrent_view_count": 1,
+ "concurrent_viewer_count": 1,
+ "create_date": "2015-03-12T12:21:24Z",
+ "copyright": "",
+ "credits": [],
+ "instrument": null,
+ "playcontext": {
+ "playcontext_node": {
+ "id": "gma",
+ "path": "gma",
+ "tags": ["ymedia:provider_id=GMA", "ymedia:provider_id=video.abcnewsplus.com"],
+ "weight": 99
+ }
+ },
+ "ads": {
+ "hotlist_path": "/site/news/gma/lifestyle/parenting",
+ "site_hierarchy_path": "lifestyle/parenting",
+ "spaceid": "2145689530"
+ },
+ "canonical_url": "https://gma.yahoo.com/video/photo-baby-wrapped-us-flag-122124162.html",
+ "source_canonical_url": "https://gma.yahoo.com/video/photo-baby-wrapped-us-flag-122124162.html",
+ "clickthrough_url": "https://gma.yahoo.com/video/photo-baby-wrapped-us-flag-122124162.html",
+ "hrefLang": null,
+ "beacon_urls": [],
+ "tags": ["ymedia:index=video", "video:quality=hd", "dev_build:1.0.0.18_001", "ymedia:type=cavideo", "transcoding-system:yip", "ComscoreC6=gma", "ymedia:provider_id=GMA", "ad-targeting:category=yParenting", "ymedia:provider_id=video.abcnewsplus.com", "iptc:subject=14006001", "ymedia:hosted=yes", "ymedia:series_name=Good Morning America", "ygma:region=us", "ymedia:provider_category=GMA/LifeStyle/Parenting", "yct:001000295", "ymovies:region=us", "ymedia:provider_channel=Lifestyle", "yfinance:Tier=10", "ynews:region=us", "membership:list=f5647e39-8ba6-4b80-8b46-9e50bc621447", "yct:001000288"],
+ "provider": {
+ "provider_id": "video.abcnewsplus.com",
+ "provider_object_ref": "7de8a6c2-ed71-345d-b8d7-ef4ce86f24fd",
+ "name": "ABC News Videos",
+ "atlas_account_name": null,
+ "secure_interval": null,
+ "secure_key": null,
+ "serving_protocol": null,
+ "provider_url": "http://www.abc.com",
+ "provider_guid": "29a257c9-58a2-3382-8212-2f916e65c4b8"
+ },
+ "tumblrpost": null,
+ "nflplayers": [],
+ "nflteams": [],
+ "isEmbeddable": false,
+ "yctInfo": null,
+ "finance_ticker": null,
+ "event_start": 0,
+ "event_end": 0,
+ "live_state": null,
+ "ts_update": 1426169765275,
+ "fairplay_content_key": null,
+ "series_info": null,
+ "cur_channel_alias": "gma",
+ "short_description": "",
+ "url_alias": "photo-baby-wrapped-us-flag-122124162",
+ "formatted_credits": {},
+ "vanity_url": "/gma/photo-baby-wrapped-us-flag-122124162.html",
+ "channel": {
+ "id": "c5930bb0-e192-11e3-b7f7-34e3a4d896fb",
+ "name": "ABC News Videos",
+ "alias_name": "abcnews",
+ "brand_logo": null,
+ "dock_logo": null,
+ "lang": null,
+ "region": null,
+ "homerun_logo": null,
+ "is_category": false,
+ "is_featured": false,
+ "is_visible": false,
+ "is_logical": null,
+ "displayShowName": false,
+ "nav_badge_new": false,
+ "default_parent_channel": null,
+ "videos": null,
+ "brand_logo_new": null,
+ "brand_name": null,
+ "brand_banner": null,
+ "instrument": null,
+ "follow_count": null,
+ "list_query_rules": null,
+ "space_id": "",
+ "ads_types": [],
+ "source_type": null,
+ "description": null,
+ "last_modified": null,
+ "sort_options": ["popular", "editorial"],
+ "tags": ["ymedia:device=full", "ymedia:type=collection", "ymedia:index=1", "ygma:region=US", "ymedia:list_type=static", "ymedia:type=list", "ymedia:collection_is_hidden", "ymedia:collection_type=playlist", "ymedia:collection_video_channel"],
+ "cast_crew": null,
+ "series_info": null,
+ "canonical_url": null
+ }
+ },
+ "channel_alias": "gma",
+ "parent_alias": null,
+ "channel_id": "c5930bb0-e192-11e3-b7f7-34e3a4d896fb",
+ "vanity_path": false,
+ "mode": "embedtron",
+ "submode": "",
+ "playlist_data": {
+ "video-playlist": false,
+ "playlist-grouped": {
+ "videos": []
+ }
+ },
+ "apiURL": "/_td_api",
+ "playlist_count": 10,
+ "exposed_config": {
+ "embedded": false,
+ "fbAppId": "90376669494",
+ "twitterAppId": "Yahoo",
+ "blankImg": "https://s.yimg.com/g/images/spaceball.gif",
+ "useVanityPath": false,
+ "vanityPath": false,
+ "useLiveVanityPath": false,
+ "haltLinkClicks": true,
+ "features": {},
+ "cometUrl": {},
+ "xhrBatches": 1,
+ "bestList": [],
+ "pageDirection": "ltr",
+ "imageSizes": "208x117,640x360,956x538",
+ "enableMagazines": false,
+ "currentUrl": "https://gma.yahoo.comundefined/_remote/?m_id=td-applet-videoplayer&amp;m_mode=fragment&amp;default_appletinit=critical&amp;mode=embedtron&amp;contentType=article&amp;enable_ns_events=1&amp;expName=grandslam&amp;expType=story&amp;content_id=4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c&amp;bucket=&amp;spaceid=1197056126&amp;site=gma&amp;region=US&amp;lang=en-US&amp;videoId=8ea6cae9-52c8-3c54-9b51-a4111390fd49&amp;mod_id=td-applet-videoplayer-lead&amp;enable_vp_js=0&amp;includeVpJs=0&amp;relatedSource=related&amp;channelAlias=gma&amp;vp=1&amp;nolz=1&amp;y_proc_embeds=1&amp;y_map_urn=urn%3Armp%3Alite&amp;_product_version=v2sg&amp;r_inc=1&amp;y_embed_blob_hdr=0&amp;_sig=k9BpALc.QvHESlwcaA7zduCIcQU-",
+ "useCanonicalShareUrl": false,
+ "controlsObject": {}
+ },
+ "query": {
+ "m_id": "td-applet-videoplayer",
+ "m_mode": "fragment",
+ "default_appletinit": "critical",
+ "mode": "embedtron",
+ "contentType": "article",
+ "enable_ns_events": "1",
+ "expName": "grandslam",
+ "expType": "story",
+ "content_id": "4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c",
+ "bucket": "",
+ "spaceid": "1197056126",
+ "site": "gma",
+ "region": "US",
+ "lang": "en-US",
+ "videoId": "8ea6cae9-52c8-3c54-9b51-a4111390fd49",
+ "mod_id": "td-applet-videoplayer-lead",
+ "enable_vp_js": "0",
+ "includeVpJs": "0",
+ "relatedSource": "related",
+ "channelAlias": "gma",
+ "vp": "1",
+ "nolz": "1",
+ "y_proc_embeds": "1",
+ "y_map_urn": "urn:rmp:lite",
+ "_product_version": "v2sg",
+ "r_inc": "1",
+ "y_embed_blob_hdr": "0",
+ "_sig": "k9BpALc.QvHESlwcaA7zduCIcQU-",
+ "chrome": 1,
+ "header": false,
+ "footer": false,
+ "toolbar": 0,
+ "initStencil": 0,
+ "initApplet": 0,
+ "disableAppClass": true
+ },
+ "mode_config": {
+ "switches": {
+ "enable_deferred_init": "1",
+ "enable_grip": "1",
+ "enable_hashcontrols": "1",
+ "enable_inline_assets": "1",
+ "enable_sharebar": "0",
+ "enable_startscreen": "1",
+ "enable_intermezzo": "1",
+ "enable_maestro": "1",
+ "enable_ns_events": "1",
+ "enable_upnexttease": "1",
+ "_enable_playerjs_url_only": "1",
+ "vp": "0",
+ "tasks": {
+ "enable_serverside_video": "1"
+ }
+ },
+ "inline_assets": {
+ "css": ["embedtron-desktop", "maestro-desktop"]
+ }
+ },
+ "channel_params": {},
+ "device": "desktop",
+ "sharing_url": null,
+ "render_timeout": false,
+ "subscribe": false,
+ "signedIn": false
+ }
+ }
+ },
+ "views": {
+ "main": {
+ "yui_module": "td-videoplayer-mainview",
+ "yui_class": "TD.Applet.VideoPlayer.MainView"
+ }
+ },
+ "templates": {
+ "main": {
+ "yui_module": "td-applet-videoplayer-templates-main",
+ "template_name": "td-applet-videoplayer-templates-main"
+ }
+ },
+ "i18n": {
+ "ADD_TO_WATCH_LATER": "Add To Watch Later",
+ "ADDED_TO_WATCH_LATER": "Added To Watch Later",
+ "ALL": "All",
+ "ALL_VIDEOS": "All Videos",
+ "BACK_TO_SWIPING": "Back to swiping",
+ "BY": "by",
+ "CHANNEL_INFO": "Channel info",
+ "CLIPS": "Clips",
+ "CLOSE": "Close",
+ "COMMENTS": "Comments",
+ "EMBED": "Embed",
+ "EPISODES": "Episodes",
+ "FOLLOW": "Follow",
+ "GENERIC_VIDEO_ERROR": "Sorry, video currently not available",
+ "GUIDE": "Guide",
+ "INFO": "info",
+ "LESS": "Less",
+ "LIKE": "Like",
+ "LINK": "Link",
+ "LOAD_MORE": "Load More",
+ "LOADING_PAYMENT_FORM": "Loading Payment Form...",
+ "LOGIN": "login",
+ "MORE": "More",
+ "MORE_FROM": "More From",
+ "MORE_VIDEOS": "More Videos",
+ "MINS": "mins",
+ "MUST_WATCH": "Must Watch",
+ "NFL": "NFL",
+ "NFL_SIGN_IN": "NFL",
+ "NFL_TRACKER": "Tracker",
+ "NFL_PLAYERS": "Players",
+ "NFL_TEAMS": "Teams",
+ "NFL_SIGN_IN_TOOLTIP": "Unlock your personal NFL Now stream by signing in to NFL.com",
+ "NFL_SIGN_IN_TOOLTIP_BUTTON": "START",
+ "NFL_SIGN_OUT_TOOLTIP": "Sign out of NFL Now",
+ "NFL_TRACKER_TOOLTIP": "Follow your favorite NFL teams and players",
+ "NO_EMBED_RIGHTS": "This video cannot be embedded due to provider license restrictions.",
+ "NOW_PLAYING_FULL_VIDEO": "Now playing the full video",
+ "NOW_WATCHING": "Now watching",
+ "PAUSED": "Paused",
+ "PAY": "Pay",
+ "PAYMENT_SUCCESS_MSG": "Payment Successful",
+ "PLAY": "Play",
+ "PLAYING_PREVIEW": "Playing Preview",
+ "PREMIUM": "Premium",
+ "PREMIUM_VIDEO": "Premium Video",
+ "REBLOG": "Reblog",
+ "REMOVE": "Remove",
+ "REMOVE_FROM_WATCH_LATER": "Remove From Watch Later",
+ "REMOVED_FROM_WATCH_LATER": "Removed From Watch Later",
+ "REMOVE_FROM_WATCH_HISTORY": "Remove From Watch History",
+ "REMOVED_FROM_WATCH_HISTORY": "Removed From Watch History",
+ "REPLAY_VIDEO": "Replay video",
+ "RESUME_VIDEO": "Resume video",
+ "SHARE": "Share",
+ "SHARE_THIS": "Share this",
+ "SHOW_MORE": "Show more",
+ "SHOW_LESS": "Show less",
+ "SIGN_IN": "Sign in",
+ "SIGN_IN_TO_FOLLOW": "Sign in to follow",
+ "STARTS_IN": "Next video starts in",
+ "SWIPE_FOR_MORE_VIDEOS": "Swipe for more videos",
+ "TITLE": "video-player",
+ "UP_NEXT": "Up next",
+ "WATCH_LATER": "Watch Later",
+ "WATCH_PREVIEW": "Watch Preview",
+ "V_4_U": "Videos for You",
+ "V_AVAIL_4_PURCHASE": "This full-length video is available for purchase"
+ },
+ "transport": {
+ "xhr": "/_td_api"
+ },
+ "context": {
+ "bucket": "",
+ "crumb": "kKRPyOdAXGG",
+ "device": "desktop",
+ "lang": "en-US",
+ "region": "US",
+ "site": "gma"
+ }
+ };
+ </script>
+ </div>
+ </div>
+
+ <div class="body yom-art-content clearfix" itemscope="" itemtype="https://schema.org/Article">
+ <!-- google_ad_section_start -->
+ <meta itemprop="datePublished" content="2015-03-11T19:46:14Z" />
+ <meta itemprop="headline" content="Veteran Wraps Baby in American Flag, Photo Sparks Controversy" />
+ <meta itemprop="alternativeHeadline" content="" />
+ <meta itemprop="image" content="https://media.zenfs.com/en-US/video/video.abcnewsplus.com/559ecdbafdb839129816b5c79a996975" />
+ <meta itemprop="description" content="A photographer and Navy veteran is fighting back after a photo she posted to Facebook started an online backlash. Vanessa Hicks said she had no idea her photo would be considered controversial. The photo, from a military family’s newborn photo shoot, showed a newborn infant wrapped in an American flag held by his father, who was in his military uniform. Hicks, a Navy veteran herself and the wife of an active-duty Navy member, said her intention was to honor the flag as well as her clients, who wanted to incorporate their military service in the photo shoot." />
+ <p>A photographer and Navy veteran is fighting back after a photo she posted to <a id="ramplink_Facebook_" href="http://abcnews.go.com/topics/business/companies/facebook-inc.htm" target="_blank" data-rapid_p="13">Facebook</a> started an online backlash.</p>
+ <p>Vanessa Hicks said she had no idea her photo would be considered controversial. The photo, from a military family’s newborn photo shoot, showed a newborn infant wrapped in an American flag held by his father, who was in his military uniform.</p>
+ <p>Hicks, a Navy veteran herself and the wife of an active-duty Navy member, said her intention was to honor the flag as well as her clients, who wanted to incorporate their military service in the photo shoot.</p>
+ <p><a href="http://abcnews.go.com/WNT/video/pizza-patriots-making-special-super-bowl-delivery-troops-28633975" target="_blank" data-rapid_p="14">Pizza Man Making Special Delivery Pizza Delivery to Afghanistan During Super Bowl</a></p>
+ <p><a href="http://abcnews.go.com/Health/superbug-scope-maker-altered-design-make-cleaning-easier/story?id=29417816" target="_blank" data-rapid_p="15">Redesigned Scopes Fail to Stop 'Superbug Outbreaks</a></p>
+ <p><a href="http://abcnews.go.com/Travel/video/antarctica-penguin-post-office-job-attracts-record-number-29247380" target="_blank" data-rapid_p="16">Antarctica 'Penguin Post Office' Attracts Record Number of Applicants</a></p>
+ <p>“This is what he was fighting for, his son wrapped in an American flag,” Hicks told ABC News. However, when she posted the image on her page, she started to get comments accusing her of desecrating the flag.</p>
+ <p>On one Facebook page an unidentified poster put up her picture writing and wrote they found it was “disrespectful, rude, tacky, disgusting, and against the U.S. Flag Code.”</p>
+ <p><span id="yui_3_0_0-2-1426169001600" class="yui-editorial-embed"></span></p>
+ <div class="yom-fig-frame" style="width:100%;text-align:center;margin:auto;"><span id="schemaorg"><div class="yom-figure yom-fig-middle" style="width:630px;"><figure class="cover get-lbdata-from-dom go-to-slideshow-lightbox" data-orig-index="2"> <a class="cover-anchor" name="cover-c9b69c1a26e19ae9fe744763dc31e9ac" id="cover-c9b69c1a26e19ae9fe744763dc31e9ac" data-rapid_p="17"></a><div class="cta-overlay"><span class="clearfix title cta-text medium"></span>
+ <p class="cta-text large">View photo</p><span class="icon-slideshow icon-white-slideshow">.</span></div><img alt="Vanessa Hicks" class="editorial lzbg" data-preembed="image" src="https://s3.yimg.com/bt/api/res/1.2/GNtA09EDJWzWfpBzGYJS0Q--/YXBwaWQ9eW5ld3NfbGVnbztxPTg1O3c9NjMw/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/HT_flag_baby_jtm_150311_16x9_992.jpg" style="background-image:url('https://s3.yimg.com/bt/api/res/1.2/GNtA09EDJWzWfpBzGYJS0Q--/YXBwaWQ9eW5ld3NfbGVnbztxPTg1O3c9NjMw/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/HT_flag_baby_jtm_150311_16x9_992.jpg'); " title="Vanessa Hicks" width="630" /></figure>
+ <p class="legend">Vanessa Hicks</p>
+ </div>
+ </span>
+ </div>The Federal Flag Code has guidelines for the proper treatment of the U.S. Flag but there are no rules for punishment related to violations. In the past, the <a href="http://abcnews.go.com/topics/news/us/supreme-court.htm" target="_blank" data-rapid_p="18">Supreme Court</a> has found that people are protected from punishment under the First Amendment for manipulating or even burning the flag.
+ <p></p>
+ <p>Hicks said she was surprised when messages suddenly started to pop up on her Facebook page and even her own website criticizing her photos.</p>
+ <p>She said she stayed up until 4 a.m. recently to take down comments from her business and company page, even on shoots that had nothing to do with the flag.</p>
+ <p>“I know how low I felt during those first few hours,” said Hicks. “[I felt] am I not a good American or veteran or wife. It’s a train-wreck you can’t help but watch.”</p>
+ <p>As Hicks tried to stop the comments from taking over her pages, others started to take notice and her picture went viral on social media sites. After that, Hicks found that many people, both military and civilian, told her they did not find the picture offensive.</p>
+ <p>“I have seen first-hand what is desecration of the flag,” Hicks said of her time in the military. “At the end of the day I didn’t do anything that disrespected this flag.”</p>
+ <p>Hicks, whose husband is still on active duty in the Navy, said the flag is a symbol of U.S. freedoms including the First Amendment right to free speech.</p>
+ <p>“[My husband] wouldn’t die for a flag, he would die for the freedoms that this country offers,” she told ABC News.</p>
+ <p>After her story grabbed local headlines, Hicks has been inundated by requests for photos shoots, and she said she plans to give 15 percent of all profits related to these shoots to the USO.</p>
+ <ul id="topics" class="hidden">
+ <li data-id="YCT:001000661">Politics &amp; Government</li>
+ <li data-id="YCT:001000031">Arts &amp; Entertainment</li>
+ <li data-id="WIKIID:Flag_of_the_United_States">American flag</li>
+ </ul>
+ <!-- google_ad_section_end -->
+ </div>
+ </div>
+
+ </section>
+ <div class="yom-remote">
+ <div class="" id="mediaapeappletcanvass_container">
+ <div id="applet_24053652936908468" class="App_v2 js-applet" data-i13n="auto:true;sec:cmmts" data-i13n-sec="cmmts" data-applet-guid="24053652936908468" data-applet-type="td-applet-canvass">
+ <div class="App-Bd">
+ <div class="App-Main" data-region="main">
+ <div class="js-applet-view-container-main">
+
+
+
+ <form id="reply-form" class="reply-form Dn">
+
+ <div class="login-cta"><a href="#comments" class="login-link rapidnofollow" data-ylk="itc:1;elm:btn;outcm:sign-in;">Sign in to post a reply.</a></div>
+
+ </form>
+
+ <form class="abuse-form Dn">
+ <div class="abuse-caret"></div>
+ <div class="intro">Sorry you didn't like this comment. Please provide a reason below.</div>
+ <div class="container">
+ <label class="placeholder-label Dn">Please explain (optional)</label>
+ <div class="expandingArea active Pos-r">
+ <pre class="M-0 P-6 Bgc-t"><span name="reason-mirror"></span><br /></pre>
+ <textarea rows="1" name="reason" class="M-0 P-6 Bgc-t Bxz-bb Bxsh-n W-100 Bdrs-0" placeholder="Please explain (optional)"></textarea>
+ </div>
+ <div class="alert-list error-box P-10 Dn"></div>
+ <div class="new-abuse-controls">
+ <button type="button" class="report-btn Btn Fz-m Primary Fl-end Mt-0 Mb-0 C-button">Report</button>
+ <button type="button" class="show-abuse-form cancel-btn Btn Fz-m Primary Fl-end Mend-4 Mt-0 Mb-0 C-button">Cancel</button>
+ <button type="button" class="show-abuse-form close-btn Btn Fz-m Primary Fl-end Mend-4 Mt-0 Mb-0 Dn">Close</button>
+ <div class="Cl-b"></div>
+ </div>
+ <div class="Cl-b"></div>
+ </div>
+ </form>
+
+ <form class="delete-form Dn">
+ <div class="abuse-caret"></div>
+ <div class="intro">Are you sure?</div>
+ <div class="container">
+ <div class="alert-list error-box P-10 Dn"></div>
+ <button type="button" class="delete-btn Btn Fz-m Primary Fl-end Mt-0 Mb-0 C-button">Delete</button>
+ <button type="button" class="show-delete-form Btn Fz-m Primary Fl-end Mend-4 Mt-0 Mb-0 C-button">Cancel</button>
+ <div class="Cl-b"></div>
+ </div>
+ </form>
+
+
+ <div id="tooltip-login" class="Dn">
+ <div class="P-20"><a href="#comments" class="login-link rapidnofollow">Please sign in.</a></div>
+ </div>
+ <div id="tooltip-rating-failed" class="Dn">
+ <div class="P-20">Rating failed. Try again.</div>
+ </div>
+ <div id="tooltip-request-failed" class="Dn">
+ <div class="P-20">Request failed. Try again.</div>
+ </div>
+ <div id="tooltip-promoted-comment" class="Dn">
+ <div class="P-10">We will promote constructive and witty comments to the top, so everyone sees them!</div>
+ </div>
+
+ <div id="all-comments-view" class="td-applet-canvass desktop top-border Pos-r My-20 C-line">
+ <div class="comments-failed error-box P-10 Dn">Sorry, we can’t load comments right now. Try again.</div>
+ <button class="view-comments Btn Ta-start Mt-10 Bdtrrs-0 Bdtlrs-0 Dn C-news rapid-noclick-resp" data-ylk="slk:Comments;"><i class="Icon-Fp2 IconComments Va-tt Mend-6 text-bubble"></i><span class="label">Comments</span> <span class="comment-count-label">(10580)</span></button>
+ <form class="comment-form Pt-8 Dn">
+
+ <div class="login-cta"><a href="#comments" class="login-link rapidnofollow" data-ylk="itc:1;elm:btn;outcm:sign-in;">Sign in to post a comment.</a></div>
+
+ </form>
+
+ <div class="applet-container Dn Pos-r Pt-8">
+
+ <div class="all-comments Pos-r ">
+
+ <ul class="sorting-tabs">
+ <li class="selected C-line">
+ <a href="#comments" class="sort-option rapidnofollow" data-sort-type="popular" data-ylk="elm:cmmt_sort;itc:1;">Top</a>
+ </li>
+ <li class="C-line">
+ <a href="#comments" class="sort-option rapidnofollow" data-sort-type="createdAt" data-ylk="elm:cmmt_sort;itc:1;">Latest</a>
+ </li>
+ <li class="sort-fail Dimmed Fl-end Dn">
+ Retry sort
+ </li>
+ </ul>
+
+
+ <ul class="comments-container" data-context-id="4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c"></ul>
+ </div>
+ </div>
+
+
+ <button class="refresh-comments Btn Ta-start Mt-0 W-100 Bdtrrs-0 Bdtlrs-0 Dn"><div class="refresh-bubble D-ib P-10 Bdrs-100"><span class="sprite refresh-bubble Pos-r"></span></div> <span class="label">Refresh comments</span></button>
+ <button class="refresh-comment-activity Btn Ta-start Mt-0 W-100 Bdtrrs-0 Bdtlrs-0 Dn"><div class="refresh-bubble D-ib P-10 Bdrs-100"><span class="sprite refresh-bubble Pos-r"></span></div> <span class="label">Refresh comment activity</span></button>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="App-Ft Row"> </div>
+ </div>
+ </div>
+ </div>
+ <div id="mediacontentsharebuttons" class="yom-share-btns-container" style="background-color:#FFFFFF">
+ <div class="share-btns" role="menu">
+ <div class="share-btns-wrap">
+ <div class="share-link-label" style="color:#000000">Share this</div>
+ <div class="share-link-container">
+ <form><input class="share-link" value="https://gma.yahoo.com/veteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html?soc_src=copy" role="textbox" data-rapid_p="1" type="text" /> </form>
+ <a class="share-link-icon hidden" role="button" data-rapid_p="2"><span class="share-link-btn"></span></a>
+ </div>
+ <div class="share-btns-int-container">
+ <div class="share-btns" role="menu">
+ <ul>
+ <li class="share-btn tumblr"><a href="https://www.tumblr.com/share/photo?clickthru=https%3A%2F%2Fgma.yahoo.com%2Fveteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html%3Fsoc_src%3Dmediacontentsharebuttons%26soc_trk%3Dtu&amp;caption=A%20photographer%20and%20Navy%20veteran%20is%20fighting%20back%20after%20a%20photo%20she%20posted%20to%20Facebook%20started%20an%20online%20backlash.%20%20Vanessa%20Hicks%20said%20she%20had%20no%20idea%20her%20photo%20would%20be%20considered%20controversial.%20%20The%20photo%2C%20from%20a%20military%20family%E2%80%99s%20newborn%20photo%20shoot%2C%20showed%20a%20newborn%20infant%20wrapped%20in%20an%20American%20flag%20held%20by%20his%20father%2C%20who%20was%20in%20his%20military%20uniform.%20%20Hicks%2C%20a%20Navy%20veteran%20herself%20and%20the%20wife%20of%20an%20active-duty%20Navy%20member%2C%20said%20her%20intention%20was%20to%20honor%20the%20flag%20as%20well%20as%20her%20clients%2C%20who%20wanted%20to%20incorporate%20their%20military%20service%20in%20the%20photo%20shoot.&amp;source=https%3A%2F%2Fs.yimg.com%2Fbt%2Fapi%2Fres%2F1.2%2FqZaM9MLUOrxLg4IfXt_Niw--%2FYXBwaWQ9eW5ld3NfbGVnbztxPTc1O3c9NjAw%2Fhttp%3A%2F%2Fmedia.zenfs.com%2Fen-US%2Fvideo%2Fvideo.abcnewsplus.com%2F559ecdbafdb839129816b5c79a996975.cf.png" role="link" title="Share on Tumblr" data-share-key="tumblr" target="_blank" data-rapid_p="3" data-share-sec="sh" data-share-pos="bottom"><span class="Icon btn-icon btn-tumblr small"></span></a></li>
+ <li class="share-btn facebook"><a href="https://www.facebook.com/dialog/feed?app_id=90376669494&amp;redirect_uri=https%3A%2F%2Fgma.yahoo.com%2F_xhr%2Fmediacontentsharebuttons%2Fpostshare%2F%3Fsrc%3Dfb&amp;link=https%3A%2F%2Fgma.yahoo.com%2Fveteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html%3Fsoc_src%3Dmediacontentsharebuttons%26soc_trk%3Dfb&amp;picture=https%3A%2F%2Fs.yimg.com%2Fbt%2Fapi%2Fres%2F1.2%2FqZaM9MLUOrxLg4IfXt_Niw--%2FYXBwaWQ9eW5ld3NfbGVnbztxPTc1O3c9NjAw%2Fhttp%3A%2F%2Fmedia.zenfs.com%2Fen-US%2Fvideo%2Fvideo.abcnewsplus.com%2F559ecdbafdb839129816b5c79a996975.cf.png&amp;name=Veteran+Wraps+Baby+in+American+Flag%2C+Photo+Sparks+Controversy&amp;description=A+photographer+and+Navy+veteran+is+fighting+back+after+a+photo+she+posted+to+Facebook+started+an+online+backlash.++Vanessa+Hicks+said+she+had+no+idea+her+photo+would+be+considered+controversial.++The+photo%2C+from+a+military+family%E2%80%99s+newborn+photo+shoot%2C+showed+a+newborn+infant+wrapped+in+an+American+flag+held+by+his+father%2C+who+was+in+his+military+uniform.++Hicks%2C+a+Navy+veteran+herself+and+the+wife+of+an+active-duty+Navy+member%2C+said+her+intention+was+to+honor+the+flag+as+well+as+her+clients%2C+who+wanted+to+incorporate+their+military+service+in+the+photo+shoot.&amp;display=popup&amp;show_error=yes" role="link" title="Share on Facebook" data-share-key="facebook" target="_blank" data-rapid_p="4" data-share-sec="sh" data-share-pos="bottom"><span class="Icon btn-icon btn-facebook small"></span></a></li>
+ <li class="share-btn twitter"><a href="https://twitter.com/share?text=Veteran+Wraps+Baby+in+American+Flag%2C+Photo+Sparks+Controversy&amp;url=https%3A%2F%2Fgma.yahoo.com%2Fveteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html%3Fsoc_src%3Dmediacontentsharebuttons%26soc_trk%3Dtw&amp;via=GMA" role="link" title="Share on Twitter" data-share-key="twitter" target="_blank" data-rapid_p="5" data-share-sec="sh" data-share-pos="bottom"><span class="Icon btn-icon btn-twitter small"></span></a></li>
+ <li class="share-btn mail"><a href="https://gma.yahoo.com/_xhr/mtf_popup/?url=https%3A%2F%2Fgma.yahoo.com%2Fveteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html%3Fsoc_src%3Dmediacontentsharebuttons%26soc_trk%3Dma&amp;site=gma&amp;region=US&amp;lang=en-US&amp;content_id=4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c&amp;alias_id=story%3Dveteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories" class="rapid-noclick-resp" role="link" title="Email to friends" data-share-key="mail" target="_blank" data-rapid_p="6" data-share-sec="sh" data-share-pos="bottom"><span class="Icon btn-icon btn-mail small"></span></a></li>
+ </ul>
+ </div>
+ </div>
+
+ <div class="clearfix"></div>
+ </div>
+ </div>
+ </div>
+
+ <div class="yom-remote">
+ <div class="" id="td-applet-stream_container">
+ <style>
+ #Stream .crosshatch {
+ background-image: url(https://s.yimg.com/dh/ap/default/130509/tech_pattern1.png);
+ }
+
+ #Stream .js-stream-drawer,
+ #Stream .js-remove-msg {
+ background-color: #321C59;
+ color: #A298C2;
+ }
+
+ .stream-sfl-header {
+ background-image: url('https://s.yimg.com/dh/ap/default/130908/SFL_Purple_reg.png');
+ background-size: 100%;
+ height: 100px;
+ }
+
+ #Stream .DarkOverlayGradient a:hover {
+ border-bottom: solid 1px #fff;
+ border-bottom: solid 1px rgba(255, 255, 255, 0.5);
+ }
+
+ #Stream .DarkOverlayGradient .adlink:hover {
+ border-bottom: none;
+ }
+
+ #Stream .DarkOverlayGradient-start {
+ color: #fff;
+ background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3RvcC1vcGFjaXR5PSIwLjY1Ii8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMwMDAwMDAiIHN0b3Atb3BhY2l0eT0iMCIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
+ background: -moz-linear-gradient(left, rgba(0, 0, 0, 0.65) 0%, rgba(0, 0, 0, 0) 100%);
+ background: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(0, 0, 0, 0.65)), color-stop(100%, rgba(0, 0, 0, 0)));
+ background: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.65) 0%, rgba(0, 0, 0, 0) 100%);
+ background: -o-linear-gradient(left, rgba(0, 0, 0, 0.65) 0%, rgba(0, 0, 0, 0) 100%);
+ background: -ms-linear-gradient(left, rgba(0, 0, 0, 0.65) 0%, rgba(0, 0, 0, 0) 100%);
+ background: linear-gradient(to right, rgba(0, 0, 0, 0.65) 0%, rgba(0, 0, 0, 0) 100%);
+ filter: progid: DXImageTransform.Microsoft.gradient( startColorstr='#a6000000', endColorstr='#00000000', GradientType=1);
+ }
+
+ #Stream .DarkOverlayGradient-end {
+ color: #fff;
+ background: -moz-linear-gradient(left, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.65) 100%);
+ background: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(0, 0, 0, 0)), color-stop(100%, rgba(0, 0, 0, 0.65)));
+ background: -webkit-linear-gradient(left, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.65) 100%);
+ background: -o-linear-gradient(left, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.65) 100%);
+ background: -ms-linear-gradient(left, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.65) 100%);
+ background: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.65) 100%);
+ filter: progid: DXImageTransform.Microsoft.gradient( startColorstr='#00000000', endColorstr='#a6000000', GradientType=1);
+ }
+
+ #Stream .Lh-115 {
+ line-height: 1.15;
+ }
+
+ #Stream .js-stream-carousel ul {
+ word-wrap: normal \9;
+ }
+
+ #Stream .js-stream-disliked .js-stream-ad-buttons,
+ #Stream .js-stream-fdb-undo {
+ display: none;
+ }
+
+ #Stream li:hover .social-sharing-container {
+ display: inline-block;
+ }
+
+ #Stream .social-sharing-container {
+ top: 5px;
+ }
+
+ #Stream .social-sharing-container .Icon {
+ background-color: #abaeb7;
+ }
+
+ #Stream .social-sharing-container .tumblr-button:hover {
+ background-color: #3c5a77;
+ }
+
+ #Stream .social-sharing-container .facebook-button:hover {
+ background-color: #4761a6;
+ }
+
+ #Stream .social-sharing-container .twitter-button:hover {
+ background-color: #55acee;
+ }
+
+ #Stream .social-sharing-container .mail-button:hover {
+ background-color: #6d329c;
+ }
+
+ #Stream #splCloseBtn {
+ display: none;
+ position: absolute;
+ bottom: -28px;
+ right: 0px;
+ font-family: 'Helevetica Neue', Arial, sans-serif;
+ color: rgb(255, 255, 255);
+ height: 28px;
+ border: 0;
+ border-radius: 3px;
+ width: auto;
+ min-width: 70px;
+ white-space: nowrap;
+ cursor: pointer;
+ z-index: 10000;
+ -webkit-user-select: none;
+ background-color: rgb(192, 192, 192);
+ opacity: 50;
+ font-size: 14px;
+ font-weight: bold;
+ -webkit-backface-visibility: hidden;
+ }
+
+ #Stream .splash-placeholder {
+ -moz-transition: height .3s ease;
+ -webkit-transition: height .3s ease;
+ -ms-transition: height .3s ease;
+ -o-transition: height .3s ease;
+ transition: height .3s ease;
+ }
+
+ #Stream .splashtop {
+ line-height: 0;
+ }
+
+ #Stream .js-cstm-end-screen {
+ background: rgba(0, 0, 0, 0.7);
+ z-index: 30;
+ }
+
+ #Stream .js-cstm-end-screen a {
+ margin-top: 22%;
+ border: thin solid #fff;
+ border-radius: 2px;
+ }
+ /* to allow ad click through */
+
+ #Stream .js-stream-featured-ad .yvp-playing-item-title {
+ z-index: 0;
+ }
+ /* minize control bar to enlarge ad click area and adjust button pos accordingly */
+
+ #Stream .js-stream-featured-ad .yvp-bottom-bar {
+ height: 38px;
+ }
+
+ #Stream .js-stream-featured-ad .yvp-bottom-container {
+ top: 8px;
+ }
+
+ #Stream .js-stream-featured-ad .yvp-state-fullscreen .yvp-bottom-container {
+ top: 2px;
+ }
+
+ @media screen and (orientation:portrait) {
+ #Stream .splashtopsticky {
+ margin-top: 0 !important;
+ position: fixed;
+ top: 47px;
+ z-index: 10000;
+ -webkit-transform: translateZ(0);
+ -moz-transform: translateZ(0);
+ -ms-transform: translateZ(0);
+ -o-transform: translateZ(0);
+ transform: translateZ(0);
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-transition: -webkit-transform .3s ease
+ }
+ #Stream .splashtopsticky #splCloseBtn {
+ display: block;
+ }
+ .uh-scroll #Stream .splashtopsticky {
+ -webkit-transform: translateY(-42px);
+ -moz-transform: translateY(-42px);
+ -ms-transform: translateY(-42px);
+ transform: translateY(-42px);
+ }
+ #Stream .splashtopsticky #splCloseBtn.countdown {
+ display: block;
+ right: 12px;
+ border-radius: 14px;
+ width: 28px;
+ min-width: 28px;
+ }
+ .uh-scroll.uh-splash #Stream .splashtopsticky,
+ .uh-scroll.uh-splash #MobileUH {
+ -webkit-transform: translateY(-97px);
+ -moz-transform: translateY(-97px);
+ -ms-transform: translateY(-97px);
+ transform: translateY(-97px);
+ }
+ }
+
+ @media all and (orientation:landscape) {
+ #Stream #spl-sticky-anchor {
+ height: 0px !important;
+ }
+ }
+ </style>
+ <div id="applet_24106666305898690" class="App_v2 js-applet" data-i13n="auto:true;sec:strm" data-i13n-sec="strm" data-applet-guid="24106666305898690" data-applet-type="td-applet-stream">
+ <div class="App-Hd" data-region="header">
+ <div class="js-applet-view-container-header">
+
+
+
+ <h2 class="HeaderBar Reset Bleed Fz-m Py-8 Px-10 Mt-neg-10" style="*position:absolute;left:0;right:0;*margin-left:0;*margin-right:0;_width:100%">Recommended for You</h2>
+
+
+
+
+ </div>
+ </div>
+ <div class="App-Bd">
+ <div class="App-Main" data-region="main">
+ <div class="js-applet-view-container-main">
+
+ <ul class="Bleed Mt-neg-10 Mb-0 ResetChildren Wow-bw Divided-h" id="Stream">
+
+
+
+
+ <li class="js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 " data-interests="WIKIID:Alan_Thicke|WIKIID:Growing_Pains|YCT:001000031|YCT:001000069|YCT:001000075|YCT:001000291" data-uuid="16f9f18d-d40a-313b-a0cd-070c86f36465">
+
+ <a href="https://gma.yahoo.com/growing-pains-star-alan-thicke-dead-69-033106505--abc-news-topstories.html" tabindex="-1" aria-hidden="true" data-ylk="cpos:1;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:16f9f18d-d40a-313b-a0cd-070c86f36465;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h">
+ <img src="https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif" alt="&amp;#39;Growing Pains&amp;#39; Star Alan Thicke Dead at 69" class="ImageLoader" style="background-image:url('https://s.yimg.com/uu/api/res/1.2/sCg_Njmwgxk4FoyfmJyosg--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/gty-alan-thicke-er-161213_16x9_992.jpg')" height="82" width="82" />
+
+
+ </a>
+
+ <div class="Bfc">
+ <div class="Ov-h Mt-neg-1" style="max-height:5.308em;">
+
+ <h3 class="Fw-b Fz-m Mb-2 Lh-115">
+
+ <a href="https://gma.yahoo.com/growing-pains-star-alan-thicke-dead-69-033106505--abc-news-topstories.html" data-ylk="cpos:1;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:16f9f18d-d40a-313b-a0cd-070c86f36465;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="js-stream-content-link Mend-4">'Growing Pains' Star Alan Thicke Dead at 69</a>
+ </h3>
+
+ <p class="Mb-2">Alan Thicke, the actor best-known for his starring role in the 1980s sitcom "Growing Pains," died Tuesday at age 69. A publicist for Thicke's son, Robin, said the actor suffered a heart attack in Los Angeles. Born in Canada, Thicke enjoyed a successful career as a writer, producer and</p>
+ </div>
+
+ <div class="Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h ">
+ <span class="Source Whs-nw Mend-6">Good Morning America</span>
+
+ </div>
+
+
+
+
+ </div>
+ <ul aria-label="Actions menu" role="toolbar" class="js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4" style="*display:none">
+ <li class="ActionSave Ta-c Mstart-1"><a class="js-stream-save-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Save</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionLike Ta-c Mstart-1"><a class="js-stream-like-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">More like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionDislike Ta-c Mstart-1"><a class="js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp" href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Fewer like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ </ul>
+ </li>
+
+
+
+ <li class="js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 " data-interests="WIKIID:Donald_Trump|WIKIID:Ryan_Zinke|WIKIID:Kellyanne_Conway|WIKIID:United_States_Secretary_of_the_Interior|YCT:001000661" data-uuid="ada486f6-2ab7-3c6c-ad90-0c1bfe85c059">
+
+ <div class="Bfc">
+ <div class="Ov-h Mt-neg-1" style="max-height:4.077em;;">
+
+ <h3 class="Fw-b Fz-m Mb-2 Lh-115">
+
+ <a href="https://gma.yahoo.com/trump-picks-rep-ryan-zinke-interior-secretary-033106503--abc-news-topstories.html" data-ylk="cpos:2;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:ada486f6-2ab7-3c6c-ad90-0c1bfe85c059;ct:1;pkgt:3;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="js-stream-content-link Mend-4">Trump Picks Rep. Ryan Zinke for Interior Secretary</a>
+ </h3>
+
+ <p class="Mb-2">President-elect Donald Trump today offered Rep. Ryan Zinke of Montana the job of secretary of the interior in his administration, senior Trump adviser Kellyanne Conway said on Fox News tonight.When reached by ABC News, a spokeswoman for Zinke declined to comment on whether he has accepted the position</p>
+ </div>
+
+ <div class="Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h ">
+ <span class="Source Whs-nw Mend-6">Good Morning America</span>
+
+ </div>
+
+
+
+
+ </div>
+ <ul aria-label="Actions menu" role="toolbar" class="js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4" style="*display:none">
+ <li class="ActionSave Ta-c Mstart-1"><a class="js-stream-save-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Save</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionLike Ta-c Mstart-1"><a class="js-stream-like-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">More like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionDislike Ta-c Mstart-1"><a class="js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp" href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Fewer like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ </ul>
+ </li>
+
+
+
+ <li id="ad-32474069017" class=" js-stream-ad-noview Mb-content Bgc-c Cf Pos-r Px-12 Pt-10 Pb-8 " data-beacon="https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&amp;es=Zv7NRTwGIS9PlEDKmbZLuAyhnT_wOWxOvDc4UBcVLuBExQRZaXHv9Z_oIPzknzLPmTGCXnV3wmYYWEVJhUoFdEc2tGARbxdHvmOtAwUAmDG_nWE688ii8ZGs.CPhh0bzpZVIsqDiBE9dwz2PID5B6Xnxc_2eHpH6hHs5XpPVuygW.egEacfNgWn1_r5lKcS.2_5WP2OCRN6mFF522og1en7zpySl9LDc5oa8V7i1Mq5Lx_Ysp9aQc_s1NiJUqwRBkTz4VYKKQOmn4kyd93v3yTo0.dYBlVzTfUczkwQPGuMD8RyFSkhmhmSoNn4lObLCvcHySZAjv69j3ewOng73dudP.ut_BNJwHSWbb5_vV_qkA4IuUnw59mhRZHCvZGsWzAicFEoFman_ObiT8RVFe4MM&amp;ap=3">
+
+ <a href="https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=_EyQATMGIS8JBPPVxp2hqZgyzs_01BpGtKX98b0BOXU67G4QpKxsgMsqA2wXXjzyf5QcUtnFvTwKfyDIgir2mMNxxFevzUTSjSd5W7V52uQJkEdOA7WPPTHXGdJfz3JuS2oEAXMezQ4DUlNT3EQohO0sENVDcRABda0CP70rfLiBc3N3o_3tAZK7j4oTkbVSZXECyJB9W_g_P2m8u4qPKqXyChjt8J1717PN83H5Ig1FsSR6XGCMTJQCRtKuR1r4h4.4FnTy2gL5UBbTdNN8owlSSuy9b3rMLCyJewIzqj_lPHqbxmTQuxHdZURQGsmsUjAINUY_7K.tAo0WQFvSK.6he4as5O8d.S0Ja5qdPkN3_T21MVycgPUntTVFNqBdDBCjEocCrk_02Afph6Ey7W6Hk1MdzstgG2sI0PQbGq6ApN1EdrOk2hpgC3jbABrZnsG4oTxbPjDB2OTz_93vOm8aYVEWI54E2gRWGwzRh_oNvX2eMBvQ6ScMdmn3jGyFkUsYicv9QwcRT5r0lxM_6Mgu.4VRMA59G6hHw9K1HcY8HPZdE84ZLEOHk2Jy2Jq._wNAApOp9_kt4c1qHBdQHO3B.cr29vczq0N2b0Lj5pmDQvHrUP3cuBn1hNMJtaG0wUeYXI0Ftw--%26lp=http%3A%2F%2Fwww.ifcmarkets.com%2Fen%2Fforex-cfd-trading%3Futm_source%3Dyahoo%26utm_medium%3Dcpc%26utm_term%3D%26utm_content%3Dexcellent_new%26utm_campaign%3Denglish_native_asia" target="_blank" tabindex="-1" aria-hidden="true" data-ylk="cpos:3;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:ad;g:32474069017;ct:1;pkgt:4;elm:img;rspns:nav;itc:0;r:false;ccode:false;" class="Fl-start Mend-10 My-2 Ta-end" style="width:82px;">
+ <img src="https://s.yimg.com/uu/api/res/1.2/NKp6SzyjFLstHsK_F3XPng--/YXBwaWQ9eXRhY2h5b24-/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/a7e2aee2ff701ba5de82f3b1f5180f46.jpeg" alt="IFC Markets. Forex &amp; CFD trading" height="82" width="82" />
+ </a>
+
+ <div class="Bfc">
+
+ <h3 class="Fw-b Fz-m Lh-115 Mb-2 Mt-neg-1 Mend-70">
+ <a href="https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=_EyQATMGIS8JBPPVxp2hqZgyzs_01BpGtKX98b0BOXU67G4QpKxsgMsqA2wXXjzyf5QcUtnFvTwKfyDIgir2mMNxxFevzUTSjSd5W7V52uQJkEdOA7WPPTHXGdJfz3JuS2oEAXMezQ4DUlNT3EQohO0sENVDcRABda0CP70rfLiBc3N3o_3tAZK7j4oTkbVSZXECyJB9W_g_P2m8u4qPKqXyChjt8J1717PN83H5Ig1FsSR6XGCMTJQCRtKuR1r4h4.4FnTy2gL5UBbTdNN8owlSSuy9b3rMLCyJewIzqj_lPHqbxmTQuxHdZURQGsmsUjAINUY_7K.tAo0WQFvSK.6he4as5O8d.S0Ja5qdPkN3_T21MVycgPUntTVFNqBdDBCjEocCrk_02Afph6Ey7W6Hk1MdzstgG2sI0PQbGq6ApN1EdrOk2hpgC3jbABrZnsG4oTxbPjDB2OTz_93vOm8aYVEWI54E2gRWGwzRh_oNvX2eMBvQ6ScMdmn3jGyFkUsYicv9QwcRT5r0lxM_6Mgu.4VRMA59G6hHw9K1HcY8HPZdE84ZLEOHk2Jy2Jq._wNAApOp9_kt4c1qHBdQHO3B.cr29vczq0N2b0Lj5pmDQvHrUP3cuBn1hNMJtaG0wUeYXI0Ftw--%26lp=http%3A%2F%2Fwww.ifcmarkets.com%2Fen%2Fforex-cfd-trading%3Futm_source%3Dyahoo%26utm_medium%3Dcpc%26utm_term%3D%26utm_content%3Dexcellent_new%26utm_campaign%3Denglish_native_asia" target="_blank" data-ylk="cpos:3;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:ad;g:32474069017;ct:1;pkgt:4;elm:hdln;rspns:nav;itc:0;r:false;ccode:false;">IFC Markets. Forex &amp; CFD trading</a>
+ </h3>
+
+
+
+ <a class="Pos-a Mt-10 Mend-10 T-0 End-0 Fz-xs NoLinkColor NoTextDecoration adlink" href="https://info.yahoo.com/privacy/us/yahoo/relevantads.html" target="_blank" data-ylk="cpos:3;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:info;g:32474069017;ct:1;pkgt:4;rspns:nav;elm:itm;itc:0;r:false;ccode:false;">AdChoices<i class="C-f Icon"></i></a>
+
+
+
+ <p class="Mb-2">Excellent Conditions for Professional Trading! 500+ trading instruments. 2 regulations: CySEC and BVI FSC. 100% dividend adjustment on stock CFDs.</p>
+ <div class="Fz-xs Pos-r NoTextDecoration ">
+ <a class="Source Whs-nw Mend-6 " href="https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=_EyQATMGIS8JBPPVxp2hqZgyzs_01BpGtKX98b0BOXU67G4QpKxsgMsqA2wXXjzyf5QcUtnFvTwKfyDIgir2mMNxxFevzUTSjSd5W7V52uQJkEdOA7WPPTHXGdJfz3JuS2oEAXMezQ4DUlNT3EQohO0sENVDcRABda0CP70rfLiBc3N3o_3tAZK7j4oTkbVSZXECyJB9W_g_P2m8u4qPKqXyChjt8J1717PN83H5Ig1FsSR6XGCMTJQCRtKuR1r4h4.4FnTy2gL5UBbTdNN8owlSSuy9b3rMLCyJewIzqj_lPHqbxmTQuxHdZURQGsmsUjAINUY_7K.tAo0WQFvSK.6he4as5O8d.S0Ja5qdPkN3_T21MVycgPUntTVFNqBdDBCjEocCrk_02Afph6Ey7W6Hk1MdzstgG2sI0PQbGq6ApN1EdrOk2hpgC3jbABrZnsG4oTxbPjDB2OTz_93vOm8aYVEWI54E2gRWGwzRh_oNvX2eMBvQ6ScMdmn3jGyFkUsYicv9QwcRT5r0lxM_6Mgu.4VRMA59G6hHw9K1HcY8HPZdE84ZLEOHk2Jy2Jq._wNAApOp9_kt4c1qHBdQHO3B.cr29vczq0N2b0Lj5pmDQvHrUP3cuBn1hNMJtaG0wUeYXI0Ftw--%26lp=http%3A%2F%2Fwww.ifcmarkets.com%2Fen%2Fforex-cfd-trading%3Futm_source%3Dyahoo%26utm_medium%3Dcpc%26utm_term%3D%26utm_content%3Dexcellent_new%26utm_campaign%3Denglish_native_asia" target="_blank" data-ylk="cpos:3;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:adv;g:32474069017;ct:1;pkgt:4;rspns:nav;elm:itm;itc:0;r:false;ccode:false;">IFC Markets</a>
+ <a class="Dimmed " href="http://help.yahoo.com/kb/index?page=content&amp;y=PROD_FRONT&amp;locale=en_US&amp;id=SLN14553" target="_blank" data-ylk="cpos:3;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:sp;g:32474069017;ct:1;pkgt:4;rspns:nav;elm:itm;itc:0;r:false;ccode:false;">Sponsored</a>
+
+ </div>
+
+ </div>
+
+
+ </li>
+
+
+
+
+
+ <li class="js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 " data-interests="WIKIID:Aleppo|WIKIID:Council_of_Ministers_%28Syria%29|YCT:001000713|YCT:001000661" data-uuid="f19aca0b-c4b8-3be7-8ce8-a23789fb7b96">
+
+ <a href="https://gma.yahoo.com/syrian-government-reportedly-kills-dozens-civilians-aleppo-spot-122713123--abc-news-topstories.html" tabindex="-1" aria-hidden="true" data-ylk="cpos:4;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:f19aca0b-c4b8-3be7-8ce8-a23789fb7b96;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h">
+ <img src="https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif" alt="Syrian Government Reportedly Kills Dozens of Civilians in Aleppo, Some &amp;#39;on the Spot,&amp;#39; UN Says" class="ImageLoader" style="background-image:url('https://s.yimg.com/uu/api/res/1.2/zC1RIM0_sKKcJCXxKiG9eg--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/f0f8fa7a03e5920e4ca30b8ebb91481e')" height="82" width="82" />
+
+
+ </a>
+
+ <div class="Bfc">
+ <div class="Ov-h Mt-neg-1" style="max-height:5.308em;">
+
+ <h3 class="Fw-b Fz-m Mb-2 Lh-115">
+
+ <a href="https://gma.yahoo.com/syrian-government-reportedly-kills-dozens-civilians-aleppo-spot-122713123--abc-news-topstories.html" data-ylk="cpos:4;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:f19aca0b-c4b8-3be7-8ce8-a23789fb7b96;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="js-stream-content-link Mend-4">Syrian Government Reportedly Kills Dozens of Civilians in Aleppo, Some 'on the Spot,' UN Says</a>
+ </h3>
+
+ <p class="Mb-2">Eastern Aleppo has fallen, and military activities there have stopped, according to Russia's United Nations ambassador. "The Syrian government has re-established control over eastern Aleppo," Vitaly Churkin told the U.N. Security Council on Tuesday. Residents of eastern Aleppo told ABC</p>
+ </div>
+
+ <div class="Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h ">
+ <span class="Source Whs-nw Mend-6">Good Morning America</span>
+
+ </div>
+
+
+
+
+ </div>
+ <ul aria-label="Actions menu" role="toolbar" class="js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4" style="*display:none">
+ <li class="ActionSave Ta-c Mstart-1"><a class="js-stream-save-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Save</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionLike Ta-c Mstart-1"><a class="js-stream-like-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">More like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionDislike Ta-c Mstart-1"><a class="js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp" href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Fewer like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ </ul>
+ </li>
+
+
+
+ <li class="js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 " data-interests="WIKIID:CorePower_Yoga|WIKIID:San_Diego_Police_Department|WIKIID:San_Diego|YCT:001000291|YCT:001000667|YCT:001000780|YCT:001000288" data-uuid="da0a1fba-50dc-3111-b6f6-70dd528f4257">
+
+ <a href="https://gma.yahoo.com/founder-corepower-yoga-trevor-tice-found-dead-under-021223966--abc-news-topstories.html" tabindex="-1" aria-hidden="true" data-ylk="cpos:5;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:da0a1fba-50dc-3111-b6f6-70dd528f4257;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h">
+ <img src="https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif" alt="Founder of CorePower Yoga Trevor Tice Found Dead Under &amp;#39;Suspicious Circumstances&amp;#39; in California, Police Say" class="ImageLoader" style="background-image:url('https://s.yimg.com/uu/api/res/1.2/AT3Vo19rKmTTy1XMTa93Tg--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/HT-san-diego-death-scene-jt-161213_16x9_992.jpg')" height="82" width="82" />
+
+
+ </a>
+
+ <div class="Bfc">
+ <div class="Ov-h Mt-neg-1" style="max-height:5.308em;">
+
+ <h3 class="Fw-b Fz-m Mb-2 Lh-115">
+
+ <a href="https://gma.yahoo.com/founder-corepower-yoga-trevor-tice-found-dead-under-021223966--abc-news-topstories.html" data-ylk="cpos:5;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:da0a1fba-50dc-3111-b6f6-70dd528f4257;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="js-stream-content-link Mend-4">Founder of CorePower Yoga Trevor Tice Found Dead Under 'Suspicious Circumstances' in California, Police Say</a>
+ </h3>
+
+ <p class="Mb-2">The founder of CorePower Yoga was found dead under "suspicious circumstances" in a San Diego, Calif., home. The San Diego Police Department said it received a call for a welfare check at a home on Monday at about 12:15 p.m. Responding officers found a man identified as Trevor Tice dead inside</p>
+ </div>
+
+ <div class="Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h ">
+ <span class="Source Whs-nw Mend-6">Good Morning America</span>
+
+ </div>
+
+
+
+
+ </div>
+ <ul aria-label="Actions menu" role="toolbar" class="js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4" style="*display:none">
+ <li class="ActionSave Ta-c Mstart-1"><a class="js-stream-save-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Save</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionLike Ta-c Mstart-1"><a class="js-stream-like-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">More like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionDislike Ta-c Mstart-1"><a class="js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp" href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Fewer like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ </ul>
+ </li>
+
+
+
+ <li class="js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 " data-interests="YCT:001000395|YCT:001000427|YCT:001000441" data-uuid="6470aced-4402-3388-b298-eb5e7fe6ea74">
+
+ <a href="https://gma.yahoo.com/woman-shares-her-journey-fitness-competitor-cancer-fighter-003315567--abc-news-topstories.html" tabindex="-1" aria-hidden="true" data-ylk="cpos:6;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:6470aced-4402-3388-b298-eb5e7fe6ea74;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h">
+ <img src="https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif" alt="Woman Shares Her Journey From Fitness Competitor to Cancer Fighter: &amp;#39;I&amp;#39;m Learning to Love Myself Again&amp;#39;" class="ImageLoader" style="background-image:url('https://s.yimg.com/uu/api/res/1.2/frVBZVk9xOJiteGalRep8w--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/HT-cheyenne-clark-jt-161213_v4x3_16x9_992.jpg')" height="82" width="82" />
+
+
+ </a>
+
+ <div class="Bfc">
+ <div class="Ov-h Mt-neg-1" style="max-height:5.308em;">
+
+ <h3 class="Fw-b Fz-m Mb-2 Lh-115">
+
+ <a href="https://gma.yahoo.com/woman-shares-her-journey-fitness-competitor-cancer-fighter-003315567--abc-news-topstories.html" data-ylk="cpos:6;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:6470aced-4402-3388-b298-eb5e7fe6ea74;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="js-stream-content-link Mend-4">Woman Shares Her Journey From Fitness Competitor to Cancer Fighter: 'I'm Learning to Love Myself Again'</a>
+ </h3>
+
+ <p class="Mb-2">Cheyann Shaw, 23, has been documenting her journey from bikini fitness competitor to cancer fighter on social media to help raise awareness about the disease and to inspire others facing their own difficult battles. A photo recently posted to Instagram -- showing what Shaw's body looked like before</p>
+ </div>
+
+ <div class="Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h ">
+ <span class="Source Whs-nw Mend-6">Good Morning America</span>
+
+ </div>
+
+
+
+
+ </div>
+ <ul aria-label="Actions menu" role="toolbar" class="js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4" style="*display:none">
+ <li class="ActionSave Ta-c Mstart-1"><a class="js-stream-save-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Save</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionLike Ta-c Mstart-1"><a class="js-stream-like-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">More like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionDislike Ta-c Mstart-1"><a class="js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp" href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Fewer like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ </ul>
+ </li>
+
+
+
+ <li class="js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 " data-interests="WIKIID:Peter_Travers|WIKIID:Star_Wars|WIKIID:Rolling_Stone|YCT:001000031|YCT:001000076|YCT:001000075|YCT:001000079" data-uuid="f113e675-474d-3951-9431-569dd45eb537">
+
+ <a href="https://gma.yahoo.com/critics-saying-rogue-one-star-wars-story-182413846--abc-news-celebrities.html" tabindex="-1" aria-hidden="true" data-ylk="cpos:7;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:f113e675-474d-3951-9431-569dd45eb537;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h">
+ <img src="https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif" alt="What Critics Are Saying About &amp;#39;Rogue One: A Star Wars Story&amp;#39;" class="ImageLoader" style="background-image:url('https://s.yimg.com/uu/api/res/1.2/Rq7h_w4vZwH7jSc00hOMjw--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/27ec846c4c5aaa4323c702ed050d291a')" height="82" width="82" />
+
+
+ </a>
+
+ <div class="Bfc">
+ <div class="Ov-h Mt-neg-1" style="max-height:5.308em;">
+
+ <h3 class="Fw-b Fz-m Mb-2 Lh-115">
+
+ <a href="https://gma.yahoo.com/critics-saying-rogue-one-star-wars-story-182413846--abc-news-celebrities.html" data-ylk="cpos:7;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:f113e675-474d-3951-9431-569dd45eb537;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="js-stream-content-link Mend-4">What Critics Are Saying About 'Rogue One: A Star Wars Story'</a>
+ </h3>
+
+ <p class="Mb-2">"For sheer scene-stealing wow, though, you can't beat Donnie Yen as Chirrut Imwe, a blind warrior monk, and Riz Ahmed as Bodhi Rook, a nutjob Imperial pilot now siding with the rebels. Best of all is Alan Tudyk as the voice of K-2S0, a security droid with a mouth on him," he added. Vanity</p>
+ </div>
+
+ <div class="Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h ">
+ <span class="Source Whs-nw Mend-6">Good Morning America</span>
+
+ </div>
+
+
+
+
+ </div>
+ <ul aria-label="Actions menu" role="toolbar" class="js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4" style="*display:none">
+ <li class="ActionSave Ta-c Mstart-1"><a class="js-stream-save-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Save</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionLike Ta-c Mstart-1"><a class="js-stream-like-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">More like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionDislike Ta-c Mstart-1"><a class="js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp" href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Fewer like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ </ul>
+ </li>
+
+
+
+ <li class="js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 " data-interests="WIKIID:Donald_Trump|WIKIID:Boy_Scouts_of_America|WIKIID:Rex_Tillerson|WIKIID:Tony_Perkins_%28politician%29|WIKIID:Planned_Parenthood|WIKIID:ExxonMobil|YCT:001000661" data-uuid="fb3d831c-9dab-36e1-9fe8-ca328b6d3041">
+
+ <a href="https://gma.yahoo.com/evangelical-leader-tony-perkins-blasts-rex-tillerson-trumps-210816203--abc-news-topstories.html" tabindex="-1" aria-hidden="true" data-ylk="cpos:8;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:fb3d831c-9dab-36e1-9fe8-ca328b6d3041;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h">
+ <img src="https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif" alt="Evangelical Leader Tony Perkins Blasts Rex Tillerson as Trump&amp;#39;s Pick for Secretary of State" class="ImageLoader" style="background-image:url('https://s.yimg.com/uu/api/res/1.2/AqmTwaPXfpyxvEePvI73qw--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/GTY-tony-perkins-01-as-161213_16x9_992.jpg')" height="82" width="82" />
+
+
+ </a>
+
+ <div class="Bfc">
+ <div class="Ov-h Mt-neg-1" style="max-height:5.308em;">
+
+ <h3 class="Fw-b Fz-m Mb-2 Lh-115">
+
+ <a href="https://gma.yahoo.com/evangelical-leader-tony-perkins-blasts-rex-tillerson-trumps-210816203--abc-news-topstories.html" data-ylk="cpos:8;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:fb3d831c-9dab-36e1-9fe8-ca328b6d3041;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="js-stream-content-link Mend-4">Evangelical Leader Tony Perkins Blasts Rex Tillerson as Trump's Pick for Secretary of State</a>
+ </h3>
+
+ <p class="Mb-2">Perkins wrote in a blog post published Monday, “To hear that Donald Trump may be appointing a man who not only led the charge to open the Boy Scouts to gay troop leaders but whose company directly gives to Planned Parenthood is upsetting, at best.</p>
+ </div>
+
+ <div class="Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h ">
+ <span class="Source Whs-nw Mend-6">Good Morning America</span>
+
+ </div>
+
+
+
+
+ </div>
+ <ul aria-label="Actions menu" role="toolbar" class="js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4" style="*display:none">
+ <li class="ActionSave Ta-c Mstart-1"><a class="js-stream-save-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Save</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionLike Ta-c Mstart-1"><a class="js-stream-like-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">More like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionDislike Ta-c Mstart-1"><a class="js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp" href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Fewer like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ </ul>
+ </li>
+
+
+
+ <li class="js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 " data-interests="WIKIID:Trump_Tower_%28New_York_City%29|YCT:001000661" data-uuid="3ca4dab5-bb07-3a9b-a538-401da333f694">
+
+ <a href="https://gma.yahoo.com/kanye-west-meets-donald-trump-york-150850439--abc-news-topstories.html" tabindex="-1" aria-hidden="true" data-ylk="cpos:9;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:3ca4dab5-bb07-3a9b-a538-401da333f694;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h">
+ <img src="https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif" alt="Kanye West Says He Discussed &amp;#39;Multicultural Issues,&amp;#39; Chicago Violence With Trump" class="ImageLoader" style="background-image:url('https://s.yimg.com/uu/api/res/1.2/lkAOQAcPGFRkIpuSQydxYQ--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/d9bc62c444ad53f08a514cee770a9862')" height="82" width="82" />
+
+
+ </a>
+
+ <div class="Bfc">
+ <div class="Ov-h Mt-neg-1" style="max-height:5.308em;">
+
+ <h3 class="Fw-b Fz-m Mb-2 Lh-115">
+
+ <a href="https://gma.yahoo.com/kanye-west-meets-donald-trump-york-150850439--abc-news-topstories.html" data-ylk="cpos:9;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:3ca4dab5-bb07-3a9b-a538-401da333f694;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="js-stream-content-link Mend-4">Kanye West Says He Discussed 'Multicultural Issues,' Chicago Violence With Trump</a>
+ </h3>
+
+ <p class="Mb-2">President-Elect Donald Trump met with rapper Kanye West at Trump Tower today, discussing "multicultural issues," bullying and violence in Chicago, according to the rapper.Trump appeared to have a slightly different take on the meeting, saying the men "discussed life.""We’ve been</p>
+ </div>
+
+ <div class="Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h ">
+ <span class="Source Whs-nw Mend-6">Good Morning America</span>
+
+ </div>
+
+
+
+
+ </div>
+ <ul aria-label="Actions menu" role="toolbar" class="js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4" style="*display:none">
+ <li class="ActionSave Ta-c Mstart-1"><a class="js-stream-save-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Save</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionLike Ta-c Mstart-1"><a class="js-stream-like-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">More like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionDislike Ta-c Mstart-1"><a class="js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp" href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Fewer like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ </ul>
+ </li>
+
+
+
+ <li id="ad-32588460847" class=" js-stream-ad-noview Mb-content Bgc-c Cf Pos-r Px-12 Pt-10 Pb-8 " data-beacon="https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&amp;es=uYfVWIsGIS93x286R7DeIk1ISkOlZdozdC1hQViI5Za.ImCfoSNpADpTc_Uv1dQVDlyAo3J9_4DtL5Z5qn.CbMKeGlv0dEMS4qXUGXiLzmNMBH34RAuLS80S8jWlOZcVYX2p9B37mnJNf91FVIGTUHvIau2v5FZaMkgagKug9xtFvbmtRezj_hL2aJ1IZ8y9IjKNcet4Ndggk6u6tUmmcgSkh0IZx8ZjMgGCtBX8hswt5xhChoiVu.f.TT187nj0trCCultodT4fH8Gg3JTEPS3z_Gr_EFvTfglRTYZDyrE0MS2My4hLzOfFV2G514.WxXF2hYlW0PAa6J50PxukCqIqvgiwjphciHvfjzm7K5k9EAvgULgkwEuMnMCB9kiQV92n9vRQhuXih9xMutWweizJ1AI-&amp;ap=10">
+
+ <a href="https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=KM6PMZQGIS_d7tLRcAGm2SfAmkfgz_VFgJxeAhqA6c7Obp4g26tCZgIkylW2cJIvqP59JNT1I9.ooT8Z06wHYwXA38o2luemXMHyvykcaaxZuEPLFhP4JYrjWc.gsDbVBQeC1BnLTRGGHIIq4vL3gihT2Gty4zxwHAJNOgKEjWsqC3Wwyb6l8CtBy3lquirYoKN0q0H.UzEWr4iIRjzSTzHuZ42sc.rcfNhPw.rEYqCDV42lFyH_ILlVHfGtxI9iQv.bK8hkaW4khKiVkBSIVk03_9jzkBVHqLHq3ZF5YCuFBP9SO6GIYOECWmj3Ik8ItOJVP9caZshYlvfDTwobXMRsm5a4j33oQrYkrj6uazgvGfYkHptP6.sIrnISf2l0KafBuej27dgWlfe8Rt.k0vOdv_iZ9Lba5W4WDy3Zbj0U4ZrKUyMjPekc8QOnYVuLypaw1ScRYmq8HNUOYa12znlheghAqFOAl9bG0L0bxLnQQghx3dcu5rUSaqYBKZK_s2ZMqhVtIGgtfhPgSIGVRTvxYRFyxMyLliqY7bhVgqIep_FP6L0rj9CcfbG6Yd.gu2Mety.e39B1xWJBsu7fs1vFKzfFn5qnCRxTB8Jima0xbZJK%26lp=https%3A%2F%2Fwww.globalusagreencard.org%2Flanding_page%2Fv3%2F%3Futm_source%3Dyahoo_gemini%26utm_medium%3Dcontent%26lang%3Den-EN%26r%3DYG%26c%3Deast%26adg_id%3D32588460847" target="_blank" tabindex="-1" aria-hidden="true" data-ylk="cpos:10;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:ad;g:32588460847;ct:1;pkgt:4;elm:img;rspns:nav;itc:0;r:false;ccode:false;" class="Fl-start Mend-10 My-2 Ta-end" style="width:82px;">
+ <img src="https://s.yimg.com/uu/api/res/1.2/GF1FscDQnXczQKoNSUFZYg--/YXBwaWQ9eXRhY2h5b24-/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/8a5b4113cc4325cb8be827aab4bba1aa.jpeg" alt="Apply for the 2017 US Green Card Lottery" height="82" width="82" />
+ </a>
+
+ <div class="Bfc">
+
+ <h3 class="Fw-b Fz-m Lh-115 Mb-2 Mt-neg-1 Mend-70">
+ <a href="https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=KM6PMZQGIS_d7tLRcAGm2SfAmkfgz_VFgJxeAhqA6c7Obp4g26tCZgIkylW2cJIvqP59JNT1I9.ooT8Z06wHYwXA38o2luemXMHyvykcaaxZuEPLFhP4JYrjWc.gsDbVBQeC1BnLTRGGHIIq4vL3gihT2Gty4zxwHAJNOgKEjWsqC3Wwyb6l8CtBy3lquirYoKN0q0H.UzEWr4iIRjzSTzHuZ42sc.rcfNhPw.rEYqCDV42lFyH_ILlVHfGtxI9iQv.bK8hkaW4khKiVkBSIVk03_9jzkBVHqLHq3ZF5YCuFBP9SO6GIYOECWmj3Ik8ItOJVP9caZshYlvfDTwobXMRsm5a4j33oQrYkrj6uazgvGfYkHptP6.sIrnISf2l0KafBuej27dgWlfe8Rt.k0vOdv_iZ9Lba5W4WDy3Zbj0U4ZrKUyMjPekc8QOnYVuLypaw1ScRYmq8HNUOYa12znlheghAqFOAl9bG0L0bxLnQQghx3dcu5rUSaqYBKZK_s2ZMqhVtIGgtfhPgSIGVRTvxYRFyxMyLliqY7bhVgqIep_FP6L0rj9CcfbG6Yd.gu2Mety.e39B1xWJBsu7fs1vFKzfFn5qnCRxTB8Jima0xbZJK%26lp=https%3A%2F%2Fwww.globalusagreencard.org%2Flanding_page%2Fv3%2F%3Futm_source%3Dyahoo_gemini%26utm_medium%3Dcontent%26lang%3Den-EN%26r%3DYG%26c%3Deast%26adg_id%3D32588460847" target="_blank" data-ylk="cpos:10;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:ad;g:32588460847;ct:1;pkgt:4;elm:hdln;rspns:nav;itc:0;r:false;ccode:false;">Apply for the 2017 US Green Card Lottery</a>
+ </h3>
+
+
+
+ <a class="Pos-a Mt-10 Mend-10 T-0 End-0 Fz-xs NoLinkColor NoTextDecoration adlink" href="https://info.yahoo.com/privacy/us/yahoo/relevantads.html" target="_blank" data-ylk="cpos:10;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:info;g:32588460847;ct:1;pkgt:4;rspns:nav;elm:itm;itc:0;r:false;ccode:false;">AdChoices<i class="C-f Icon"></i></a>
+
+
+
+ <p class="Mb-2">A US Green Card could be yours!</p>
+ <div class="Fz-xs Pos-r NoTextDecoration ">
+ <a class="Source Whs-nw Mend-6 " href="https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=KM6PMZQGIS_d7tLRcAGm2SfAmkfgz_VFgJxeAhqA6c7Obp4g26tCZgIkylW2cJIvqP59JNT1I9.ooT8Z06wHYwXA38o2luemXMHyvykcaaxZuEPLFhP4JYrjWc.gsDbVBQeC1BnLTRGGHIIq4vL3gihT2Gty4zxwHAJNOgKEjWsqC3Wwyb6l8CtBy3lquirYoKN0q0H.UzEWr4iIRjzSTzHuZ42sc.rcfNhPw.rEYqCDV42lFyH_ILlVHfGtxI9iQv.bK8hkaW4khKiVkBSIVk03_9jzkBVHqLHq3ZF5YCuFBP9SO6GIYOECWmj3Ik8ItOJVP9caZshYlvfDTwobXMRsm5a4j33oQrYkrj6uazgvGfYkHptP6.sIrnISf2l0KafBuej27dgWlfe8Rt.k0vOdv_iZ9Lba5W4WDy3Zbj0U4ZrKUyMjPekc8QOnYVuLypaw1ScRYmq8HNUOYa12znlheghAqFOAl9bG0L0bxLnQQghx3dcu5rUSaqYBKZK_s2ZMqhVtIGgtfhPgSIGVRTvxYRFyxMyLliqY7bhVgqIep_FP6L0rj9CcfbG6Yd.gu2Mety.e39B1xWJBsu7fs1vFKzfFn5qnCRxTB8Jima0xbZJK%26lp=https%3A%2F%2Fwww.globalusagreencard.org%2Flanding_page%2Fv3%2F%3Futm_source%3Dyahoo_gemini%26utm_medium%3Dcontent%26lang%3Den-EN%26r%3DYG%26c%3Deast%26adg_id%3D32588460847" target="_blank" data-ylk="cpos:10;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:adv;g:32588460847;ct:1;pkgt:4;rspns:nav;elm:itm;itc:0;r:false;ccode:false;">Global USA Green Card</a>
+ <a class="Dimmed " href="http://help.yahoo.com/kb/index?page=content&amp;y=PROD_FRONT&amp;locale=en_US&amp;id=SLN14553" target="_blank" data-ylk="cpos:10;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:sp;g:32588460847;ct:1;pkgt:4;rspns:nav;elm:itm;itc:0;r:false;ccode:false;">Sponsored</a>
+
+ </div>
+
+ </div>
+
+
+ </li>
+
+
+
+
+
+ <li class="js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 " data-interests="WIKIID:Barack_Obama|WIKIID:Ali_Jaber|WIKIID:Drone_strikes_in_Pakistan|YCT:001000661|YCT:001000713|YCT:001000780|YCT:001000720" data-uuid="48897845-e806-3216-b2ae-4213132dbf4e">
+
+ <a href="https://gma.yahoo.com/man-says-relatives-were-killed-us-drone-strike-164206896--abc-news-topstories.html" tabindex="-1" aria-hidden="true" data-ylk="cpos:11;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:48897845-e806-3216-b2ae-4213132dbf4e;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h">
+ <img src="https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif" alt="Man Who Says Relatives Were Killed by US Drone Strike Heads to Federal Court" class="ImageLoader" style="background-image:url('https://s.yimg.com/uu/api/res/1.2/lsSVyqvn7P.UlvhuWHAlGA--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/gty-yemen-drone-faisal-bin-ali-jaber-jc-161212_16x9_992.jpg')" height="82" width="82" />
+
+
+ </a>
+
+ <div class="Bfc">
+ <div class="Ov-h Mt-neg-1" style="max-height:5.308em;">
+
+ <h3 class="Fw-b Fz-m Mb-2 Lh-115">
+
+ <a href="https://gma.yahoo.com/man-says-relatives-were-killed-us-drone-strike-164206896--abc-news-topstories.html" data-ylk="cpos:11;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:48897845-e806-3216-b2ae-4213132dbf4e;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="js-stream-content-link Mend-4">Man Who Says Relatives Were Killed by US Drone Strike Heads to Federal Court</a>
+ </h3>
+
+ <p class="Mb-2">Faisal bin Ali Jaber, a Yemeni man who claims he lost members of his family in a U.S. drone strike, was set to attend a U.S. appellate court hearing today regarding the alleged incident in what could become a landmark case. Jaber, an engineer, spoke to ABC News about the alleged drone strike, which</p>
+ </div>
+
+ <div class="Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h ">
+ <span class="Source Whs-nw Mend-6">Good Morning America</span>
+
+ </div>
+
+
+
+
+ </div>
+ <ul aria-label="Actions menu" role="toolbar" class="js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4" style="*display:none">
+ <li class="ActionSave Ta-c Mstart-1"><a class="js-stream-save-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Save</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionLike Ta-c Mstart-1"><a class="js-stream-like-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">More like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionDislike Ta-c Mstart-1"><a class="js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp" href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Fewer like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ </ul>
+ </li>
+
+
+
+ <li class="js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 " data-interests="WIKIID:John_Peck_%28Australian_rules_footballer%29|YCT:001000545" data-uuid="a5b99a73-2049-31d8-8698-d763766cc1f4">
+
+ <a href="https://gma.yahoo.com/veteran-received-life-changing-double-arm-transplant-shows-205806453--abc-news-topstories.html" tabindex="-1" aria-hidden="true" data-ylk="cpos:12;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:a5b99a73-2049-31d8-8698-d763766cc1f4;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h">
+ <img src="https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif" alt="Veteran Who Received Life-Changing Double-Arm Transplant Shows Off Progress" class="ImageLoader" style="background-image:url('https://s.yimg.com/uu/api/res/1.2/Seiaq_unMwSR3jFTOwKZbQ--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/HT_arm_transplant_02_as_161005_16x9_992.jpg')" height="82" width="82" />
+
+
+ </a>
+
+ <div class="Bfc">
+ <div class="Ov-h Mt-neg-1" style="max-height:5.308em;">
+
+ <h3 class="Fw-b Fz-m Mb-2 Lh-115">
+
+ <a href="https://gma.yahoo.com/veteran-received-life-changing-double-arm-transplant-shows-205806453--abc-news-topstories.html" data-ylk="cpos:12;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:a5b99a73-2049-31d8-8698-d763766cc1f4;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="js-stream-content-link Mend-4">Veteran Who Received Life-Changing Double-Arm Transplant Shows Off Progress</a>
+ </h3>
+
+ <p class="Mb-2">Just four months after undergoing a life-changing double-arm transplant, John Peck shared how far he has come by releasing a video of him being able to control his elbow. Peck shared a video on Monday in which -- with the help of a therapist -- he slowly and carefully practices moving his right elbow</p>
+ </div>
+
+ <div class="Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h ">
+ <span class="Source Whs-nw Mend-6">Good Morning America</span>
+
+ </div>
+
+
+
+
+ </div>
+ <ul aria-label="Actions menu" role="toolbar" class="js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4" style="*display:none">
+ <li class="ActionSave Ta-c Mstart-1"><a class="js-stream-save-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Save</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionLike Ta-c Mstart-1"><a class="js-stream-like-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">More like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionDislike Ta-c Mstart-1"><a class="js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp" href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Fewer like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ </ul>
+ </li>
+
+
+
+ <li class="js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 " data-interests="WIKIID:Aunt_Sally|YCT:001000031|YCT:001000780|YCT:001000071" data-uuid="e8961efb-8186-3082-ba8a-5b6154092ee3">
+
+ <a href="https://gma.yahoo.com/deck-halls-awkward-family-holiday-photos-195305687--abc-news-topstories.html" tabindex="-1" aria-hidden="true" data-ylk="cpos:13;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:e8961efb-8186-3082-ba8a-5b6154092ee3;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h">
+ <img src="https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif" alt="Deck the Halls With These Awkward Family Holiday Photos" class="ImageLoader" style="background-image:url('https://s.yimg.com/uu/api/res/1.2/3yUy9V1KP5MOjyFABbF1Eg--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/2943a3aa244127daf2794fb1f63ec3a0')" height="82" width="82" />
+
+
+ </a>
+
+ <div class="Bfc">
+ <div class="Ov-h Mt-neg-1" style="max-height:5.308em;">
+
+ <h3 class="Fw-b Fz-m Mb-2 Lh-115">
+
+ <a href="https://gma.yahoo.com/deck-halls-awkward-family-holiday-photos-195305687--abc-news-topstories.html" data-ylk="cpos:13;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:e8961efb-8186-3082-ba8a-5b6154092ee3;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="js-stream-content-link Mend-4">Deck the Halls With These Awkward Family Holiday Photos</a>
+ </h3>
+
+ <p class="Mb-2">Gathering together for holiday family photos can be fun, or it can be disaster. Perhaps Uncle Larry had too much eggnog, or Aunt Sally insisted on everyone wearing her hand-knit Christmas sweaters, or maybe the little kids just couldn’t handle smiling for a single shot. And if you haven’t giggled enough</p>
+ </div>
+
+ <div class="Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h ">
+ <span class="Source Whs-nw Mend-6">Good Morning America</span>
+
+ </div>
+
+
+
+
+ </div>
+ <ul aria-label="Actions menu" role="toolbar" class="js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4" style="*display:none">
+ <li class="ActionSave Ta-c Mstart-1"><a class="js-stream-save-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Save</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionLike Ta-c Mstart-1"><a class="js-stream-like-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">More like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionDislike Ta-c Mstart-1"><a class="js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp" href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Fewer like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ </ul>
+ </li>
+
+
+
+ <li class="js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 " data-interests="WIKIID:Christmas_club|WIKIID:Christmas|YCT:001000780|YCT:001000395|YCT:001000560|YCT:001001060|YCT:001001062|YCT:001000295" data-uuid="fea9ada4-c1b7-3c58-bbea-8da308640f57">
+
+ <a href="https://gma.yahoo.com/hospital-cafeteria-worker-saves-thousands-dollars-buy-toys-154543711--abc-news-topstories.html" tabindex="-1" aria-hidden="true" data-ylk="cpos:14;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:fea9ada4-c1b7-3c58-bbea-8da308640f57;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h">
+ <img src="https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif" alt="Hospital Cafeteria Worker Saves Thousands of Dollars to Buy Toys for Kids at Christmas" class="ImageLoader" style="background-image:url('https://s.yimg.com/uu/api/res/1.2/NQZt7ctmogRo_g6ugUUKGw--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/c7aeb63563dc1722f6c98e3262acb445')" height="82" width="82" />
+
+
+ </a>
+
+ <div class="Bfc">
+ <div class="Ov-h Mt-neg-1" style="max-height:5.308em;">
+
+ <h3 class="Fw-b Fz-m Mb-2 Lh-115">
+
+ <a href="https://gma.yahoo.com/hospital-cafeteria-worker-saves-thousands-dollars-buy-toys-154543711--abc-news-topstories.html" data-ylk="cpos:14;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:fea9ada4-c1b7-3c58-bbea-8da308640f57;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="js-stream-content-link Mend-4">Hospital Cafeteria Worker Saves Thousands of Dollars to Buy Toys for Kids at Christmas</a>
+ </h3>
+
+ <p class="Mb-2">Jessie Tenyani has no children of her own, but for each of the past eight years, she has put away thousands of dollars from her paycheck as a hospital cafeteria worker to buy toys for kids for Christmas. Tenyani, 55, of Chicago, hand-picks the toys, as many as 1,000 each Christmas, and donates them</p>
+ </div>
+
+ <div class="Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h ">
+ <span class="Source Whs-nw Mend-6">Good Morning America</span>
+
+ </div>
+
+
+
+
+ </div>
+ <ul aria-label="Actions menu" role="toolbar" class="js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4" style="*display:none">
+ <li class="ActionSave Ta-c Mstart-1"><a class="js-stream-save-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Save</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionLike Ta-c Mstart-1"><a class="js-stream-like-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">More like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionDislike Ta-c Mstart-1"><a class="js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp" href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Fewer like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ </ul>
+ </li>
+
+
+
+ <li class="js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 " data-interests="WIKIID:Delta_Air_Lines|WIKIID:Airport_police|YCT:001000667|YCT:001000992" data-uuid="5a111841-a550-38c2-baa6-a719288d4a29">
+
+ <a href="https://gma.yahoo.com/video-shows-police-dragging-woman-off-delta-flight-193904310--abc-news-topstories.html" tabindex="-1" aria-hidden="true" data-ylk="cpos:15;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:5a111841-a550-38c2-baa6-a719288d4a29;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h">
+ <img src="https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif" alt="Video Captures Moment Police Drag Uncooperative Passenger off Delta Flight" class="ImageLoader" style="background-image:url('https://s.yimg.com/uu/api/res/1.2/0TVxONSnPzpWrgwJ700.Ew--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/HT-Woman-Off-Delta-Flight-MEM-161213_16x9_992.jpg')" height="82" width="82" />
+
+
+ </a>
+
+ <div class="Bfc">
+ <div class="Ov-h Mt-neg-1" style="max-height:5.308em;">
+
+ <h3 class="Fw-b Fz-m Mb-2 Lh-115">
+
+ <a href="https://gma.yahoo.com/video-shows-police-dragging-woman-off-delta-flight-193904310--abc-news-topstories.html" data-ylk="cpos:15;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:5a111841-a550-38c2-baa6-a719288d4a29;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="js-stream-content-link Mend-4">Video Captures Moment Police Drag Uncooperative Passenger off Delta Flight</a>
+ </h3>
+
+ <p class="Mb-2">A video has surfaced showing an airport police officer dragging a passenger by her wrists face-up along a carpeted aisle to the front of a plane. The video then shows a second officer grabbing the passenger by the ankles to help lift her to the exit.The passenger was removed from the flight for failing</p>
+ </div>
+
+ <div class="Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h ">
+ <span class="Source Whs-nw Mend-6">Good Morning America</span>
+
+ </div>
+
+
+
+
+ </div>
+ <ul aria-label="Actions menu" role="toolbar" class="js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4" style="*display:none">
+ <li class="ActionSave Ta-c Mstart-1"><a class="js-stream-save-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Save</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionLike Ta-c Mstart-1"><a class="js-stream-like-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">More like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionDislike Ta-c Mstart-1"><a class="js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp" href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Fewer like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ </ul>
+ </li>
+
+
+
+ <li class="js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 " data-interests="WIKIID:Christmas_card|WIKIID:Christmas|WIKIID:Facebook|YCT:001000780|YCT:001001062" data-uuid="3c72182d-1f31-31f6-8fda-6916938be05f">
+
+ <a href="https://gma.yahoo.com/wife-creatively-includes-deployed-air-force-husband-family-183904735--abc-news-topstories.html" tabindex="-1" aria-hidden="true" data-ylk="cpos:16;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:3c72182d-1f31-31f6-8fda-6916938be05f;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h">
+ <img src="https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif" alt="Wife Creatively Includes Deployed Air Force Husband in Family Christmas Card" class="ImageLoader" style="background-image:url('https://s.yimg.com/uu/api/res/1.2/y9wkR2ZsvhhQzjh91lRgRA--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/c67e407fc84680e75ba8dcd4af3c2e55')" height="82" width="82" />
+
+
+ </a>
+
+ <div class="Bfc">
+ <div class="Ov-h Mt-neg-1" style="max-height:5.308em;">
+
+ <h3 class="Fw-b Fz-m Mb-2 Lh-115">
+
+ <a href="https://gma.yahoo.com/wife-creatively-includes-deployed-air-force-husband-family-183904735--abc-news-topstories.html" data-ylk="cpos:16;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:3c72182d-1f31-31f6-8fda-6916938be05f;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="js-stream-content-link Mend-4">Wife Creatively Includes Deployed Air Force Husband in Family Christmas Card</a>
+ </h3>
+
+ <p class="Mb-2">Ain’t no mountain high enough, ain’t no valley low enough, ain’t no river wide enough to keep this military wife from including her deployed husband in their family Christmas card. Ashley Sistrunk was feeling a bit down after seeing all her friends’ family holiday photos on Facebook, so she came up</p>
+ </div>
+
+ <div class="Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h ">
+ <span class="Source Whs-nw Mend-6">Good Morning America</span>
+
+ </div>
+
+
+
+
+ </div>
+ <ul aria-label="Actions menu" role="toolbar" class="js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4" style="*display:none">
+ <li class="ActionSave Ta-c Mstart-1"><a class="js-stream-save-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Save</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionLike Ta-c Mstart-1"><a class="js-stream-like-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">More like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionDislike Ta-c Mstart-1"><a class="js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp" href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Fewer like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ </ul>
+ </li>
+
+
+
+ <li id="ad-32572483510" class=" js-stream-ad-noview Mb-content Bgc-c Cf Pos-r Px-12 Pt-10 Pb-8 " data-beacon="https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&amp;es=aVA0ALEGIS.2IGI6Mye0PdVFiCieLGgTjhXdf314JNtY_uhF1ag5aqnDFuvyJ0pHgrjBm7p0__mTpHzF2NK6M29l3rxhySqz6PuhUYFW1H7gVXs.tqRSTpkjOFaC32XasHxNwV1oC0wKHT4KhmkqME8RYFAppdIrDg0SWFzgAdRh6VJkae8yHbWffOKjHl3N6GdOEpljtzrv8whA856peHnxcViukLyIGGChTyBymXbTqEB67DcXJudhqbV6MrFEU.cZmSasO7wo_FxgzV5OFCqw3RKdDQNTzC5ces8L63_cGn0uGdp2fPWhTEg5vikPJwqN0L7Ac1jZ3FJ8uuErI0IZ0U_xw9L6mKgwD6sls_kjxDJ.WBC5m409.qATpP3hUQgHpjyxhwC6flzjbkU-&amp;ap=17">
+
+ <a href="https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=1Vg_vM8GIS_jYbYOgkZwvFcEzB9pYLoQHDL4ZHqI.C9U4KSUiJIz5WAZWJ21cEn9R5MRZ77c2A_YsTspV1WODtvJY2wjlAFCuaNwUw5QjzcgCOo71IkkFQsbr.UaQLOID5DzN3eqhX9UhOme.BWfoyWYMmiLAhpoOYMdUbFUHYdGhSDeWNLfz3mQNg8KUUHy.DMrRqMAf9tMwawHwabEL9dsMG4zG__W0NAhtQ7M9iygHtRVNyYgkeoNqwDKi2O4aq_4dq_s2xVmSq30FEeaJ2BBxLD9mFJdkColTLJSi8Qv7FXkHdgERIeHh8D4s4x1vSybJycTqwVS4Kd0gyj4RjGC7TQGEqZJ4QjX8WudfdrgAvY934zbe3_uec9rKPD6WhPqBXObktwzO0uBqy6ukKCeaI5dZ.P3D7cEZhYfSznK0Rjr_eo3kp13rOVYi.tDzFbfRvEi_02PLSN9bjdlnnlkhMJvsSs0rS_6u0aDhuUDjE_0Tv9BzsAVx8iFYE6psri5G7aOCQuiwOW0ohNiec9qM08q_LufKVYHh8yauT3mpPyd16yQXt_EedFjE0q6Nx3VoECkd4l7_IxlbvvpW2cRJ5f0XZZcYPNAAx2ZnHusfv_D.s76TFqHaA8raOvijxnGbTPG1vaqYH_08Mjij8bRzZ1ybameGnDclan37cKQTCvLjrXa0zGBZ1ROkwanmFqlLr5nNQ2LV.ey3nzUq0DTDZ2fB7572R65FcuOUoIY74sABMqSqCLubeBfD2SR7fFl6BuPvwEJDQ5AWU58as6YG_iICUXdB_y4QROTmbK9Yx0vAnPq4aABb3ALRn49rU0.ex2REO5GfZAqgbybwkvNmVM9MoUNWCfaWGkJ9bsoDamiGRINy6MtsBOD7yBlGaD7BJyir7Exn5a1fnnd06i.wG1G3Ee4_R.T2gSFwegVkAIsBmVj9ukYh3.8hi2E2jwoI0u7NctdBeTI3Mgi3xyPZKNMVxDuj6j6gVkU08IDtRgIKL94eOJr351fMk3fTtDw40SIo3O4i2vfu_LfOyRgP_gku0dVSJcgNxzCgg0FIg8gTkeTDdI1TdNM9Pei0sPOiInzU5mxoUwFi6NRPlqpYyaMBx7CuBuGrLZIJo4nWLiyBgrEJEtvpLpbWMK4KpFOw4n8YIxSp35Wcn8vEmTAsDoZH1ArNWBiNiFL2QvlNSzBvWHMLiosv4zETWMC3H5RTyc6ISnPYyP.0U_5TLG77eokuxnxgXk3fegWJBA-%26lp=http%3A%2F%2Fbs.serving-sys.com%2FServing%2F%3Fcn%3Dsearch%26semdid%3D7_353219189_9113774098_lfrv2jCE%26semid%3D1%26seid%3D7%26semuserid%3D%26advid%3D108226%26mmx%3D%24%24sekwid%3D%26seadid%3D32572483510%26sekwtxt%3D%26matchtype%3D%24%24%26semdata%3D%24%24mkwid%3Dlfrv2jCE_32572483510___c%26mtid%3D744he937470%24%24%26urtu%3Dhttp%253A%252F%252Fd.agkn.com%252Fpixel%252F7636%252F%253Fatr%253D%2526col%253D37470%252C103%252C103353219189%252C%252C%252C%2526l0%253Dhttps%253A%252F%252Fwww.cricketwireless.com%252Flg-cyber-deals.html%253Fwoo_campaign%253DSEM%2526woo_source%253DYAHGEM_PPC%2526woo_medium%253Dkeyword%2526woo_content%253DQ4%252BHeavy-Up_TMobile%252BCustomers%2526woo_term%253D" target="_blank" tabindex="-1" aria-hidden="true" data-ylk="cpos:17;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:ad;g:32572483510;ct:1;pkgt:4;elm:img;rspns:nav;itc:0;r:false;ccode:false;" class="Fl-start Mend-10 My-2 Ta-end" style="width:82px;">
+ <img src="https://s.yimg.com/uu/api/res/1.2/m_UyoICU1famxwC5nvD6LA--/YXBwaWQ9eXRhY2h5b24-/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/9807f365e14c7964db0ac90a6a8b4899.jpeg" alt="Cyber LG Stylo 2 Deal" height="82" width="82" />
+ </a>
+
+ <div class="Bfc">
+
+ <h3 class="Fw-b Fz-m Lh-115 Mb-2 Mt-neg-1 Mend-70">
+ <a href="https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=1Vg_vM8GIS_jYbYOgkZwvFcEzB9pYLoQHDL4ZHqI.C9U4KSUiJIz5WAZWJ21cEn9R5MRZ77c2A_YsTspV1WODtvJY2wjlAFCuaNwUw5QjzcgCOo71IkkFQsbr.UaQLOID5DzN3eqhX9UhOme.BWfoyWYMmiLAhpoOYMdUbFUHYdGhSDeWNLfz3mQNg8KUUHy.DMrRqMAf9tMwawHwabEL9dsMG4zG__W0NAhtQ7M9iygHtRVNyYgkeoNqwDKi2O4aq_4dq_s2xVmSq30FEeaJ2BBxLD9mFJdkColTLJSi8Qv7FXkHdgERIeHh8D4s4x1vSybJycTqwVS4Kd0gyj4RjGC7TQGEqZJ4QjX8WudfdrgAvY934zbe3_uec9rKPD6WhPqBXObktwzO0uBqy6ukKCeaI5dZ.P3D7cEZhYfSznK0Rjr_eo3kp13rOVYi.tDzFbfRvEi_02PLSN9bjdlnnlkhMJvsSs0rS_6u0aDhuUDjE_0Tv9BzsAVx8iFYE6psri5G7aOCQuiwOW0ohNiec9qM08q_LufKVYHh8yauT3mpPyd16yQXt_EedFjE0q6Nx3VoECkd4l7_IxlbvvpW2cRJ5f0XZZcYPNAAx2ZnHusfv_D.s76TFqHaA8raOvijxnGbTPG1vaqYH_08Mjij8bRzZ1ybameGnDclan37cKQTCvLjrXa0zGBZ1ROkwanmFqlLr5nNQ2LV.ey3nzUq0DTDZ2fB7572R65FcuOUoIY74sABMqSqCLubeBfD2SR7fFl6BuPvwEJDQ5AWU58as6YG_iICUXdB_y4QROTmbK9Yx0vAnPq4aABb3ALRn49rU0.ex2REO5GfZAqgbybwkvNmVM9MoUNWCfaWGkJ9bsoDamiGRINy6MtsBOD7yBlGaD7BJyir7Exn5a1fnnd06i.wG1G3Ee4_R.T2gSFwegVkAIsBmVj9ukYh3.8hi2E2jwoI0u7NctdBeTI3Mgi3xyPZKNMVxDuj6j6gVkU08IDtRgIKL94eOJr351fMk3fTtDw40SIo3O4i2vfu_LfOyRgP_gku0dVSJcgNxzCgg0FIg8gTkeTDdI1TdNM9Pei0sPOiInzU5mxoUwFi6NRPlqpYyaMBx7CuBuGrLZIJo4nWLiyBgrEJEtvpLpbWMK4KpFOw4n8YIxSp35Wcn8vEmTAsDoZH1ArNWBiNiFL2QvlNSzBvWHMLiosv4zETWMC3H5RTyc6ISnPYyP.0U_5TLG77eokuxnxgXk3fegWJBA-%26lp=http%3A%2F%2Fbs.serving-sys.com%2FServing%2F%3Fcn%3Dsearch%26semdid%3D7_353219189_9113774098_lfrv2jCE%26semid%3D1%26seid%3D7%26semuserid%3D%26advid%3D108226%26mmx%3D%24%24sekwid%3D%26seadid%3D32572483510%26sekwtxt%3D%26matchtype%3D%24%24%26semdata%3D%24%24mkwid%3Dlfrv2jCE_32572483510___c%26mtid%3D744he937470%24%24%26urtu%3Dhttp%253A%252F%252Fd.agkn.com%252Fpixel%252F7636%252F%253Fatr%253D%2526col%253D37470%252C103%252C103353219189%252C%252C%252C%2526l0%253Dhttps%253A%252F%252Fwww.cricketwireless.com%252Flg-cyber-deals.html%253Fwoo_campaign%253DSEM%2526woo_source%253DYAHGEM_PPC%2526woo_medium%253Dkeyword%2526woo_content%253DQ4%252BHeavy-Up_TMobile%252BCustomers%2526woo_term%253D" target="_blank" data-ylk="cpos:17;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:ad;g:32572483510;ct:1;pkgt:4;elm:hdln;rspns:nav;itc:0;r:false;ccode:false;">Cyber LG Stylo 2 Deal</a>
+ </h3>
+
+
+
+ <a class="Pos-a Mt-10 Mend-10 T-0 End-0 Fz-xs NoLinkColor NoTextDecoration adlink" href="https://info.yahoo.com/privacy/us/yahoo/relevantads.html" target="_blank" data-ylk="cpos:17;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:info;g:32572483510;ct:1;pkgt:4;rspns:nav;elm:itm;itc:0;r:false;ccode:false;">AdChoices<i class="C-f Icon"></i></a>
+
+
+
+ <p class="Mb-2">$49.99 Limited Time. Req’s New Line of Svc w/ Qual. Plan. See Details.</p>
+ <div class="Fz-xs Pos-r NoTextDecoration ">
+ <a class="Source Whs-nw Mend-6 " href="https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=1Vg_vM8GIS_jYbYOgkZwvFcEzB9pYLoQHDL4ZHqI.C9U4KSUiJIz5WAZWJ21cEn9R5MRZ77c2A_YsTspV1WODtvJY2wjlAFCuaNwUw5QjzcgCOo71IkkFQsbr.UaQLOID5DzN3eqhX9UhOme.BWfoyWYMmiLAhpoOYMdUbFUHYdGhSDeWNLfz3mQNg8KUUHy.DMrRqMAf9tMwawHwabEL9dsMG4zG__W0NAhtQ7M9iygHtRVNyYgkeoNqwDKi2O4aq_4dq_s2xVmSq30FEeaJ2BBxLD9mFJdkColTLJSi8Qv7FXkHdgERIeHh8D4s4x1vSybJycTqwVS4Kd0gyj4RjGC7TQGEqZJ4QjX8WudfdrgAvY934zbe3_uec9rKPD6WhPqBXObktwzO0uBqy6ukKCeaI5dZ.P3D7cEZhYfSznK0Rjr_eo3kp13rOVYi.tDzFbfRvEi_02PLSN9bjdlnnlkhMJvsSs0rS_6u0aDhuUDjE_0Tv9BzsAVx8iFYE6psri5G7aOCQuiwOW0ohNiec9qM08q_LufKVYHh8yauT3mpPyd16yQXt_EedFjE0q6Nx3VoECkd4l7_IxlbvvpW2cRJ5f0XZZcYPNAAx2ZnHusfv_D.s76TFqHaA8raOvijxnGbTPG1vaqYH_08Mjij8bRzZ1ybameGnDclan37cKQTCvLjrXa0zGBZ1ROkwanmFqlLr5nNQ2LV.ey3nzUq0DTDZ2fB7572R65FcuOUoIY74sABMqSqCLubeBfD2SR7fFl6BuPvwEJDQ5AWU58as6YG_iICUXdB_y4QROTmbK9Yx0vAnPq4aABb3ALRn49rU0.ex2REO5GfZAqgbybwkvNmVM9MoUNWCfaWGkJ9bsoDamiGRINy6MtsBOD7yBlGaD7BJyir7Exn5a1fnnd06i.wG1G3Ee4_R.T2gSFwegVkAIsBmVj9ukYh3.8hi2E2jwoI0u7NctdBeTI3Mgi3xyPZKNMVxDuj6j6gVkU08IDtRgIKL94eOJr351fMk3fTtDw40SIo3O4i2vfu_LfOyRgP_gku0dVSJcgNxzCgg0FIg8gTkeTDdI1TdNM9Pei0sPOiInzU5mxoUwFi6NRPlqpYyaMBx7CuBuGrLZIJo4nWLiyBgrEJEtvpLpbWMK4KpFOw4n8YIxSp35Wcn8vEmTAsDoZH1ArNWBiNiFL2QvlNSzBvWHMLiosv4zETWMC3H5RTyc6ISnPYyP.0U_5TLG77eokuxnxgXk3fegWJBA-%26lp=http%3A%2F%2Fbs.serving-sys.com%2FServing%2F%3Fcn%3Dsearch%26semdid%3D7_353219189_9113774098_lfrv2jCE%26semid%3D1%26seid%3D7%26semuserid%3D%26advid%3D108226%26mmx%3D%24%24sekwid%3D%26seadid%3D32572483510%26sekwtxt%3D%26matchtype%3D%24%24%26semdata%3D%24%24mkwid%3Dlfrv2jCE_32572483510___c%26mtid%3D744he937470%24%24%26urtu%3Dhttp%253A%252F%252Fd.agkn.com%252Fpixel%252F7636%252F%253Fatr%253D%2526col%253D37470%252C103%252C103353219189%252C%252C%252C%2526l0%253Dhttps%253A%252F%252Fwww.cricketwireless.com%252Flg-cyber-deals.html%253Fwoo_campaign%253DSEM%2526woo_source%253DYAHGEM_PPC%2526woo_medium%253Dkeyword%2526woo_content%253DQ4%252BHeavy-Up_TMobile%252BCustomers%2526woo_term%253D" target="_blank" data-ylk="cpos:17;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:adv;g:32572483510;ct:1;pkgt:4;rspns:nav;elm:itm;itc:0;r:false;ccode:false;">Cricketwireless.Com/LGG2</a>
+ <a class="Dimmed " href="http://help.yahoo.com/kb/index?page=content&amp;y=PROD_FRONT&amp;locale=en_US&amp;id=SLN14553" target="_blank" data-ylk="cpos:17;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:sp;g:32572483510;ct:1;pkgt:4;rspns:nav;elm:itm;itc:0;r:false;ccode:false;">Sponsored</a>
+
+ </div>
+
+ </div>
+
+
+ </li>
+
+
+
+
+
+ <li class="js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 " data-interests="WIKIID:United_States_Secretary_of_State|WIKIID:United_States_Senate_Committee_on_Foreign_Relations|WIKIID:United_States_Senate|YCT:001000661" data-uuid="2394698c-069b-3ef9-8e2b-7a14e5100aaa">
+
+ <a href="https://gma.yahoo.com/single-senate-republican-could-tank-rex-tillersons-nomination-175313186--abc-news-topstories.html" tabindex="-1" aria-hidden="true" data-ylk="cpos:18;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:2394698c-069b-3ef9-8e2b-7a14e5100aaa;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h">
+ <img src="https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif" alt="How a Single Senate Republican Could Tank Rex Tillerson&amp;#39;s Nomination" class="ImageLoader" style="background-image:url('https://s.yimg.com/uu/api/res/1.2/9H79BlxjP4W46wnZg8ujkQ--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/498a37e3439ddb9a9f714dbb49f67656')" height="82" width="82" />
+
+
+ </a>
+
+ <div class="Bfc">
+ <div class="Ov-h Mt-neg-1" style="max-height:5.308em;">
+
+ <h3 class="Fw-b Fz-m Mb-2 Lh-115">
+
+ <a href="https://gma.yahoo.com/single-senate-republican-could-tank-rex-tillersons-nomination-175313186--abc-news-topstories.html" data-ylk="cpos:18;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:2394698c-069b-3ef9-8e2b-7a14e5100aaa;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="js-stream-content-link Mend-4">How a Single Senate Republican Could Tank Rex Tillerson's Nomination</a>
+ </h3>
+
+ <p class="Mb-2">Marco Rubio is not the only Republican senator to express concerns about President-elect Donald Trump’s pick for secretary of state, Rex Tillerson, over his connections to Russian President Vladimir Putin. If all nine Democrats on the panel vote against Tillerson, they would need only one of the committee</p>
+ </div>
+
+ <div class="Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h ">
+ <span class="Source Whs-nw Mend-6">Good Morning America</span>
+
+ </div>
+
+
+
+
+ </div>
+ <ul aria-label="Actions menu" role="toolbar" class="js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4" style="*display:none">
+ <li class="ActionSave Ta-c Mstart-1"><a class="js-stream-save-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Save</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionLike Ta-c Mstart-1"><a class="js-stream-like-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">More like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionDislike Ta-c Mstart-1"><a class="js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp" href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Fewer like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ </ul>
+ </li>
+
+
+
+ <li class="js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 " data-interests="WIKIID:Frito-Lay|WIKIID:Super_Bowl|YCT:001001126|YCT:001000002|YCT:001000001" data-uuid="14c217dd-6b60-33df-b94d-5ffe857ccf54">
+
+ <a href="https://gma.yahoo.com/frito-lay-drops-doritos-super-bowl-tv-advertisements-145007590--abc-news-topstories.html" tabindex="-1" aria-hidden="true" data-ylk="cpos:19;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:14c217dd-6b60-33df-b94d-5ffe857ccf54;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h">
+ <img src="https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif" alt="Frito-Lay Drops Doritos Super Bowl TV Advertisements" class="ImageLoader" style="background-image:url('https://s.yimg.com/uu/api/res/1.2/x21gttFHX..Ch3MxLkSlvA--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/0dbce825690bb482e81a8a91c43e3842')" height="82" width="82" />
+
+
+ </a>
+
+ <div class="Bfc">
+ <div class="Ov-h Mt-neg-1" style="max-height:5.308em;">
+
+ <h3 class="Fw-b Fz-m Mb-2 Lh-115">
+
+ <a href="https://gma.yahoo.com/frito-lay-drops-doritos-super-bowl-tv-advertisements-145007590--abc-news-topstories.html" data-ylk="cpos:19;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:14c217dd-6b60-33df-b94d-5ffe857ccf54;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="js-stream-content-link Mend-4">Frito-Lay Drops Doritos Super Bowl TV Advertisements</a>
+ </h3>
+
+ <p class="Mb-2">Frito-Lay is closing the bag on its popular Doritos commercials for Super Bowl 2017. GoDaddy stepped out of 2016's advertisements and Toyota has announced it will not run commercials during Super Bowl 51 on Feb. 5, also citing a marketing strategy.</p>
+ </div>
+
+ <div class="Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h ">
+ <span class="Source Whs-nw Mend-6">Good Morning America</span>
+
+ </div>
+
+
+
+
+ </div>
+ <ul aria-label="Actions menu" role="toolbar" class="js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4" style="*display:none">
+ <li class="ActionSave Ta-c Mstart-1"><a class="js-stream-save-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Save</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionLike Ta-c Mstart-1"><a class="js-stream-like-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">More like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionDislike Ta-c Mstart-1"><a class="js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp" href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Fewer like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ </ul>
+ </li>
+
+
+
+ <li class="js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 " data-interests="WIKIID:LeBron_James|YCT:001000001|YCT:001000012" data-uuid="48b9bac6-44bb-3433-80e3-5b1d3594e625">
+
+ <a href="https://gma.yahoo.com/lebron-james-humbled-si-sportsperson-award-172406720--abc-news-celebrities.html" tabindex="-1" aria-hidden="true" data-ylk="cpos:20;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:48b9bac6-44bb-3433-80e3-5b1d3594e625;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h">
+ <img src="https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif" alt="LeBron James &amp;#39;Humbled&amp;#39; by SI Sportsperson of the Year Award" class="ImageLoader" style="background-image:url('https://s.yimg.com/uu/api/res/1.2/rXzfDI6FRQC5bHBRohF0iQ--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/2057633e69d5e076b25a8a4c5f2ce4ef')" height="82" width="82" />
+
+
+ </a>
+
+ <div class="Bfc">
+ <div class="Ov-h Mt-neg-1" style="max-height:5.308em;">
+
+ <h3 class="Fw-b Fz-m Mb-2 Lh-115">
+
+ <a href="https://gma.yahoo.com/lebron-james-humbled-si-sportsperson-award-172406720--abc-news-celebrities.html" data-ylk="cpos:20;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:48b9bac6-44bb-3433-80e3-5b1d3594e625;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="js-stream-content-link Mend-4">LeBron James 'Humbled' by SI Sportsperson of the Year Award</a>
+ </h3>
+
+ <p class="Mb-2">LeBron James was honored Monday night in Brooklyn, New York, at the annual Sports Illustrated sportsperson of the year event, which celebrated his commitment to his team, his sport and the city of Cleveland. Robin Roberts of "Good Morning America" caught up with James at the ceremony to discuss</p>
+ </div>
+
+ <div class="Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h ">
+ <span class="Source Whs-nw Mend-6">Good Morning America</span>
+
+ </div>
+
+
+
+
+ </div>
+ <ul aria-label="Actions menu" role="toolbar" class="js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4" style="*display:none">
+ <li class="ActionSave Ta-c Mstart-1"><a class="js-stream-save-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Save</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionLike Ta-c Mstart-1"><a class="js-stream-like-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">More like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionDislike Ta-c Mstart-1"><a class="js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp" href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Fewer like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ </ul>
+ </li>
+
+
+
+ <li class="js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 " data-interests="YCT:001000560|YCT:001000611|YCT:001000637" data-uuid="0faf9f17-96c0-368f-9bbc-5baf33074cee">
+
+ <a href="https://gma.yahoo.com/illinois-woman-her-dog-rescued-falling-frozen-pond-141908648--abc-news-lifestyle.html" tabindex="-1" aria-hidden="true" data-ylk="cpos:21;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:0faf9f17-96c0-368f-9bbc-5baf33074cee;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h">
+ <img src="https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif" alt="Illinois Woman and Her Dog Rescued After Falling Into Frozen Pond" class="ImageLoader" style="background-image:url('https://s.yimg.com/uu/api/res/1.2/RxhLmJql_Z5GEZvpiQ1BhA--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/19c07daff025df71f8202f8d13e0c238')" height="82" width="82" />
+
+
+ </a>
+
+ <div class="Bfc">
+ <div class="Ov-h Mt-neg-1" style="max-height:5.308em;">
+
+ <h3 class="Fw-b Fz-m Mb-2 Lh-115">
+
+ <a href="https://gma.yahoo.com/illinois-woman-her-dog-rescued-falling-frozen-pond-141908648--abc-news-lifestyle.html" data-ylk="cpos:21;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:0faf9f17-96c0-368f-9bbc-5baf33074cee;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="js-stream-content-link Mend-4">Illinois Woman and Her Dog Rescued After Falling Into Frozen Pond</a>
+ </h3>
+
+ <p class="Mb-2">An 8-year-old boy has been credited with saving his mother and his dog's life after he called 911 when the two fell into an icy pond in Illinois this past weekend.Cathy Medernach, 48, told ABC News that she and her son Caden, 8, were taking their Labrador retriever, Bailey, out for a walk behind</p>
+ </div>
+
+ <div class="Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h ">
+ <span class="Source Whs-nw Mend-6">Good Morning America</span>
+
+ </div>
+
+
+
+
+ </div>
+ <ul aria-label="Actions menu" role="toolbar" class="js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4" style="*display:none">
+ <li class="ActionSave Ta-c Mstart-1"><a class="js-stream-save-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Save</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionLike Ta-c Mstart-1"><a class="js-stream-like-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">More like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionDislike Ta-c Mstart-1"><a class="js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp" href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Fewer like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ </ul>
+ </li>
+
+
+
+ <li class="js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 " data-interests="WIKIID:Donald_Trump|WIKIID:Rex_Tillerson|WIKIID:Syria|WIKIID:Russia|WIKIID:Turkey|WIKIID:Vladimir_Putin|YCT:001000661|YCT:001000680" data-uuid="3cbee4b7-2568-3903-a977-24db6d8347bb">
+
+ <a href="https://gma.yahoo.com/5-major-foreign-policy-challenges-facing-president-elect-201105415--abc-news-topstories.html" tabindex="-1" aria-hidden="true" data-ylk="cpos:22;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:3cbee4b7-2568-3903-a977-24db6d8347bb;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h">
+ <img src="https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif" alt="5 Major Foreign Policy Challenges Facing President-Elect Donald Trump" class="ImageLoader" style="background-image:url('https://s.yimg.com/uu/api/res/1.2/FQvHaYiTkzJ6OCASS_dY7g--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/ddb938bd2b3017e5920963e2ffd2559e')" height="82" width="82" />
+
+
+ </a>
+
+ <div class="Bfc">
+ <div class="Ov-h Mt-neg-1" style="max-height:5.308em;">
+
+ <h3 class="Fw-b Fz-m Mb-2 Lh-115">
+
+ <a href="https://gma.yahoo.com/5-major-foreign-policy-challenges-facing-president-elect-201105415--abc-news-topstories.html" data-ylk="cpos:22;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:3cbee4b7-2568-3903-a977-24db6d8347bb;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="js-stream-content-link Mend-4">5 Major Foreign Policy Challenges Facing President-Elect Donald Trump</a>
+ </h3>
+
+ <p class="Mb-2">In January, President-elect Donald Trump will have to turn his attention to governing domestically and shaping his vision for U.S. foreign policy – and he will do so with the help of his secretary of state. On Tuesday, Trump nominated ExxonMobil CEO Rex Tillerson to help him navigate America's biggest</p>
+ </div>
+
+ <div class="Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h ">
+ <span class="Source Whs-nw Mend-6">Good Morning America</span>
+
+ </div>
+
+
+
+
+ </div>
+ <ul aria-label="Actions menu" role="toolbar" class="js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4" style="*display:none">
+ <li class="ActionSave Ta-c Mstart-1"><a class="js-stream-save-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Save</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionLike Ta-c Mstart-1"><a class="js-stream-like-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">More like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionDislike Ta-c Mstart-1"><a class="js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp" href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Fewer like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ </ul>
+ </li>
+
+
+
+ <li class="js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 " data-interests="WIKIID:New_York_City|WIKIID:Polar_vortex|YCT:001000637|YCT:001000659" data-uuid="bd3edcb9-cd20-3482-a5a5-308d8cc217f4">
+
+ <a href="https://gma.yahoo.com/arctic-assault-week-possible-record-breaking-cold-chicago-181307998--abc-news-topstories.html" tabindex="-1" aria-hidden="true" data-ylk="cpos:23;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:bd3edcb9-cd20-3482-a5a5-308d8cc217f4;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h">
+ <img src="https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif" alt="Arctic Assault This Week With Possible Record-Breaking Cold, Chicago to New York" class="ImageLoader" style="background-image:url('https://s.yimg.com/uu/api/res/1.2/o9N89Reu8J3us55f_Bdq4Q--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/fe802fc2ef9b5fd433eca3131e12ae7f')" height="82" width="82" />
+
+
+ </a>
+
+ <div class="Bfc">
+ <div class="Ov-h Mt-neg-1" style="max-height:5.308em;">
+
+ <h3 class="Fw-b Fz-m Mb-2 Lh-115">
+
+ <a href="https://gma.yahoo.com/arctic-assault-week-possible-record-breaking-cold-chicago-181307998--abc-news-topstories.html" data-ylk="cpos:23;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:bd3edcb9-cd20-3482-a5a5-308d8cc217f4;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;" class="js-stream-content-link Mend-4">Arctic Assault This Week With Possible Record-Breaking Cold, Chicago to New York</a>
+ </h3>
+
+ <p class="Mb-2">This week, the displacement of a polar vortex will bring the coldest air this early in the season in more than a decade to a wide swath of the country, from Chicago to New York City. If Chicago stays in the single digits for highs on Thursday, this will be the coldest late fall weather since 1995.</p>
+ </div>
+
+ <div class="Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h ">
+ <span class="Source Whs-nw Mend-6">Good Morning America</span>
+
+ </div>
+
+
+
+
+ </div>
+ <ul aria-label="Actions menu" role="toolbar" class="js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4" style="*display:none">
+ <li class="ActionSave Ta-c Mstart-1"><a class="js-stream-save-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Save</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionLike Ta-c Mstart-1"><a class="js-stream-like-button D-ib NestedHidden rapid-noclick-resp " href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">More like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ <li class="ActionDislike Ta-c Mstart-1"><a class="js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp" href="#0" role="button" style="margin-left:0"><b aria-live="polite" class="ActionTooltip">Fewer like this</b><i aria-hidden="true" class="Icon W-a"></i></a></li>
+ </ul>
+ </li>
+
+
+
+ <li id="ad-32573871566" class=" js-stream-ad-noview Mb-content Bgc-c Cf Pos-r Px-12 Pt-10 Pb-8 " data-beacon="https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&amp;es=ysl3cA8GIS_Ce8UN3J1O5G_Dz28vS6.XFEPlNzo5g32_gQz8eRLtDD6LoB2kZpQAy5B6LXNjYjdR3G4eqs0HI2vWRWbpiIBhw6vzaO1X0U5tVsCLbOLFjH24.XY6SXy1x3XPkLHEtBU2HwJfq1UKL0JiGbeRy1sPVWTv0Xv5hpPv0o2qKU0c8QULwqEdD6xo57so2Rgpr4cly3ZJi17kPu6b46h.ULIj9qY.y.u.dkRWQm1MmOIyh46k9sljX.KMRJp0.T1H9_7Cz4yMng89MbMYsNxTtSZEzFfXtlHAZBuIMp2UUXUZ59eB6eaR8qFajDyzSZR8eW1RwomyXvmf23RvOSvlbwgAV9Cw8N4SuYemLTY9Q9VekwVhGLUCNvK1Hhpi.yYjlfn0JHHopadyiv_X&amp;ap=24">
+
+ <a href="https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=Wxo.YS4GIS9wMGM7igB1Zk9dp0XWciRRPl6._XxuRj3TjSHCiQmWk5CmrKmS56ieIjZtpdxnPuxlAUpef9LIiuX3RAQCuTkRCYXDRvWgdy30taH.r58.vSJZhHowP00ey.A5qY3Jk840sfboj1NUQZ0qRrHolchs6Jwz_5tLp1uBMWTW2KjQQyL8vhtJrt04IOhlDCUik.CY9x2URV7ihb4XZ2qL_.q6G_K2ydQ72PLdDvIoi7ZV.vNsy8hIwFMPdo9n.NKL2DBVs2YsD8pWDqJgztTY90hzzVyBooUxShqNKcHHHReT82MZAQwuYr6c1E3C9NS7sPEJuxu.d5x0m7KvKzSbO6VejrFkN1J7fqHRWMNsU__2vLGzZGYyH47Jns2T3EM_z2MJSiXm7QmrELPg2P6eGWaXJQ0CgMugL46gmtXKZ1lIM9sn32YbUVHABtbn8drdMibTxQ3RqXoNQgWOJxeSdV3Kz73YORJXnE2t0tQKDfNpLQTDT1l63wg4S3Yz7e_l_QaP_eK1A9oSKE5pKLHgTIcQCJAaWCIBoVlUASpqFlzJKT.jKnywHsSE8TwZ4ekMJ97uQy.u53AkNxP7uGsGfhB4ARzE7tfKmUaACLMO_3muHQDFiIB.xGWXlIQl2R7zEpGGirnxCAxZkJAcmw--%26lp=https%3A%2F%2Fwww.learnvest.com%2Flp%2Fhow-to-budget-your-money-with-the-502030-guideline%2F%3Futm_source%3Dyahoo%26utm_medium%3Dpaidcontent%26utm_campaign%3DYahoo_Custom_Audience%3A_Personal_Finance" target="_blank" tabindex="-1" aria-hidden="true" data-ylk="cpos:24;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:ad;g:32573871566;ct:1;pkgt:4;elm:img;rspns:nav;itc:0;r:false;ccode:false;" class="Fl-start Mend-10 My-2 Ta-end" style="width:82px;">
+ <img src="https://s.yimg.com/uu/api/res/1.2/9lbnTRUMz5bKMixhcKXeJw--/YXBwaWQ9eXRhY2h5b24-/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/d8727e410ab45d1349297efacfd4ad17.jpeg" alt="How To Budget Your Money with One Simple Rule" height="82" width="82" />
+ </a>
+
+ <div class="Bfc">
+
+ <h3 class="Fw-b Fz-m Lh-115 Mb-2 Mt-neg-1 Mend-70">
+ <a href="https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=Wxo.YS4GIS9wMGM7igB1Zk9dp0XWciRRPl6._XxuRj3TjSHCiQmWk5CmrKmS56ieIjZtpdxnPuxlAUpef9LIiuX3RAQCuTkRCYXDRvWgdy30taH.r58.vSJZhHowP00ey.A5qY3Jk840sfboj1NUQZ0qRrHolchs6Jwz_5tLp1uBMWTW2KjQQyL8vhtJrt04IOhlDCUik.CY9x2URV7ihb4XZ2qL_.q6G_K2ydQ72PLdDvIoi7ZV.vNsy8hIwFMPdo9n.NKL2DBVs2YsD8pWDqJgztTY90hzzVyBooUxShqNKcHHHReT82MZAQwuYr6c1E3C9NS7sPEJuxu.d5x0m7KvKzSbO6VejrFkN1J7fqHRWMNsU__2vLGzZGYyH47Jns2T3EM_z2MJSiXm7QmrELPg2P6eGWaXJQ0CgMugL46gmtXKZ1lIM9sn32YbUVHABtbn8drdMibTxQ3RqXoNQgWOJxeSdV3Kz73YORJXnE2t0tQKDfNpLQTDT1l63wg4S3Yz7e_l_QaP_eK1A9oSKE5pKLHgTIcQCJAaWCIBoVlUASpqFlzJKT.jKnywHsSE8TwZ4ekMJ97uQy.u53AkNxP7uGsGfhB4ARzE7tfKmUaACLMO_3muHQDFiIB.xGWXlIQl2R7zEpGGirnxCAxZkJAcmw--%26lp=https%3A%2F%2Fwww.learnvest.com%2Flp%2Fhow-to-budget-your-money-with-the-502030-guideline%2F%3Futm_source%3Dyahoo%26utm_medium%3Dpaidcontent%26utm_campaign%3DYahoo_Custom_Audience%3A_Personal_Finance" target="_blank" data-ylk="cpos:24;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:ad;g:32573871566;ct:1;pkgt:4;elm:hdln;rspns:nav;itc:0;r:false;ccode:false;">How To Budget Your Money with One Simple Rule</a>
+ </h3>
+
+
+
+ <a class="Pos-a Mt-10 Mend-10 T-0 End-0 Fz-xs NoLinkColor NoTextDecoration adlink" href="https://info.yahoo.com/privacy/us/yahoo/relevantads.html" target="_blank" data-ylk="cpos:24;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:info;g:32573871566;ct:1;pkgt:4;rspns:nav;elm:itm;itc:0;r:false;ccode:false;">AdChoices<i class="C-f Icon"></i></a>
+
+
+
+ <p class="Mb-2">Whether you're a new parent or a new grad, our guideline can help you assess your budget so you know exactly where your money in going. Find out how.</p>
+ <div class="Fz-xs Pos-r NoTextDecoration ">
+ <a class="Source Whs-nw Mend-6 " href="https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=Wxo.YS4GIS9wMGM7igB1Zk9dp0XWciRRPl6._XxuRj3TjSHCiQmWk5CmrKmS56ieIjZtpdxnPuxlAUpef9LIiuX3RAQCuTkRCYXDRvWgdy30taH.r58.vSJZhHowP00ey.A5qY3Jk840sfboj1NUQZ0qRrHolchs6Jwz_5tLp1uBMWTW2KjQQyL8vhtJrt04IOhlDCUik.CY9x2URV7ihb4XZ2qL_.q6G_K2ydQ72PLdDvIoi7ZV.vNsy8hIwFMPdo9n.NKL2DBVs2YsD8pWDqJgztTY90hzzVyBooUxShqNKcHHHReT82MZAQwuYr6c1E3C9NS7sPEJuxu.d5x0m7KvKzSbO6VejrFkN1J7fqHRWMNsU__2vLGzZGYyH47Jns2T3EM_z2MJSiXm7QmrELPg2P6eGWaXJQ0CgMugL46gmtXKZ1lIM9sn32YbUVHABtbn8drdMibTxQ3RqXoNQgWOJxeSdV3Kz73YORJXnE2t0tQKDfNpLQTDT1l63wg4S3Yz7e_l_QaP_eK1A9oSKE5pKLHgTIcQCJAaWCIBoVlUASpqFlzJKT.jKnywHsSE8TwZ4ekMJ97uQy.u53AkNxP7uGsGfhB4ARzE7tfKmUaACLMO_3muHQDFiIB.xGWXlIQl2R7zEpGGirnxCAxZkJAcmw--%26lp=https%3A%2F%2Fwww.learnvest.com%2Flp%2Fhow-to-budget-your-money-with-the-502030-guideline%2F%3Futm_source%3Dyahoo%26utm_medium%3Dpaidcontent%26utm_campaign%3DYahoo_Custom_Audience%3A_Personal_Finance" target="_blank" data-ylk="cpos:24;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:adv;g:32573871566;ct:1;pkgt:4;rspns:nav;elm:itm;itc:0;r:false;ccode:false;">LearnVest</a>
+ <a class="Dimmed " href="http://help.yahoo.com/kb/index?page=content&amp;y=PROD_FRONT&amp;locale=en_US&amp;id=SLN14553" target="_blank" data-ylk="cpos:24;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:sp;g:32573871566;ct:1;pkgt:4;rspns:nav;elm:itm;itc:0;r:false;ccode:false;">Sponsored</a>
+
+ </div>
+
+ </div>
+
+
+ </li>
+
+
+
+
+
+ </ul>
+
+ <img src="https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif" class="D-b Dn Mx-a My-12 js-stream-load-more ImageLoader" style="background-image:url('https://s.yimg.com/zz/nn/lib/metro/g/my/anim_loading_sm.gif')" alt="" height="16" width="16" />
+
+
+
+ </div>
+ </div>
+ </div>
+ <div class="App-Ft Row"> </div>
+ </div>
+ </div>
+ </div>
+ <div id="yom-ad-FOOT9" class="yom-ad yom-ad-FOOT9" style="visibility: inherit;">
+ <center></center>
+ </div>
+ </div>
+ </div>
+ <div class="Col3 yog-rp yog-rw Pos-a End-0 Z-1 Stack CoversMainContent">
+ <div class="ColWrap" data-plugin="sticker" data-sticker-toptarget="#GS-UH">
+ <div role="complementary" class="Row" id="Aside" tabindex="0">
+
+ <section class="yom-mod " id="mediacontentgenericlistings" data-ylk="mid:mediacontentgenericlistings;mpos:2;cat:ABC+News+Top+Stories;t1:a4;t2:lst-ct;sec:lst-ct;">
+ <div class="yom-generic-listings-module yom-app no_thumbs">
+ <div class="hd">
+ <h2>ABC News Top Stories</h2>
+ </div>
+ <div class="bd">
+ <div class="latest-content-inline ">
+ <ul>
+ <li class="generic-list-item story" data-uuid="888f87fc-1b66-3051-89bb-5be8b4aebca6"> <a href="http://abcnews.go.com/International/wireStory/china-warns-trump-ignoring-china-policy-hurt-peace-44180890" data-rapid_p="1"> China Warns Trump Ignoring One-China Policy Could Hurt Peace </a> </li>
+ <li class="generic-list-item story" data-uuid="0728c219-a058-3b60-8179-02466d191f0a"> <a href="http://abcnews.go.com/Entertainment/wireStory/cosby-shows-wit-mental-agility-court-hearing-44180569" data-rapid_p="2"> Cosby Shows Wit, Mental Agility at Court Hearing </a> </li>
+ <li class="generic-list-item story" data-uuid="65d97479-bcf6-353a-a1c0-794a81ee44c6"> <a href="http://abcnews.go.com/Politics/trump-faces-conflicts-interest-children-running-business-ethics/story?id=44175335" data-rapid_p="3"> Trump 'Princelings' No Shield for Business Conflicts, Ethics Expert Says </a> </li>
+ <li class="generic-list-item story" data-uuid="e5540bc8-50ac-34ac-9908-2b9634fa9e0d"> <a href="http://abcnews.go.com/Health/wireStory/ohio-governor-20-week-abortion-ban-heartbeat-bills-44171009" data-rapid_p="4"> Ohio Governor OKs 20-Week Abortion Ban, Nixes Heartbeat Bill </a> </li>
+ <li class="generic-list-item story" data-uuid="583e9a65-5a5b-356d-83c4-adbf832a1a99"> <a href="http://abcnews.go.com/US/trump-picks-rep-ryan-zinke-interior-secretary/story?id=44176860" data-rapid_p="5"> Trump Picks Rep. Ryan Zinke for Interior Secretary </a> </li>
+ <li class="generic-list-item story" data-uuid="c8cf9639-4a74-3d70-8ef6-eddc9af06bc2"> <a href="http://abcnews.go.com/US/growing-pains-star-alan-thicke-dead-69/story?id=44177748" data-rapid_p="6"> 'Growing Pains' Star Alan Thicke Dead at 69 </a> </li>
+ <li class="generic-list-item story" data-uuid="e5260adc-f294-3d01-ab57-7410f965ce7d"> <a href="http://abcnews.go.com/WNT/video/stunning-details-trial-accused-church-shooter-dylann-roof-44176803" data-rapid_p="7"> Stunning New Details From the Trial of Accused Church Shooter Dylann Roof </a> </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </section>
+ <div id="yom-ad-LREC" class="yom-ad yom-ad-LREC" style="visibility: hidden; height: 250px;">
+ <div id="sb_rel_yom-ad-LREC-iframe" class="darla" style="position: relative; z-index: 9; width: 300px; height: 250px; visibility: inherit; display: inline-block; font-size: 0px;"><iframe name="pos=LREC&amp;id=yom-ad-LREC-iframe&amp;html=%253Cstyle%2520type%253D%2522text/css%2522%253E%250A.CAN_ad%2520.yadslug%2520%257B%250A%2520%2520%2520%2520position%253A%2520absolute%2520%2521important%253B%2520right%253A%25201px%253B%2520top%253A1px%253B%2520display%253Ainline-block%250A%2521important%253B%2520z-index%2520%253A%2520999%253B%250A%2520%2520%2520%2520color%253A%2523999%2520%2521important%253Btext-decoration%253Anone%253Bbackground%253A%2523fff%250Aurl%2528%2527https%253A//secure.footprint.net/yieldmanager/apex/mediastore/adchoice_1.png%2527%2529%2520no-repeat%2520100%2525%25200%250A%2521important%253Bcursor%253Ahand%2520%2521important%253Bheight%253A12px%2520%2521important%253Bpadding%253A0px%252014px%25200px%250A1px%2520%2521important%253Bdisplay%253Ainline-block%2520%2521important%253B%250A%257D%250A.CAN_ad%2520.yadslug%2520span%2520%257Bdisplay%253Anone%2520%2521important%253B%257D%250A.CAN_ad%2520.yadslug%253Ahover%2520%257Bzoom%253A%25201%253B%257D%250A.CAN_ad%2520.yadslug%253Ahover%2520span%2520%257Bdisplay%253Ainline-block%2520%2521important%253Bcolor%253A%2523999%250A%2521important%253B%257D%250A.CAN_ad%2520.yadslug%253Ahover%2520span%252C%2520.CAN_ad%2520.yadslug%253Ahover%2520%257Bfont%253A11px%2520arial%250A%2521important%253B%257D%250A%253C/style%253E%2520%2520%2520%2520%250A%253Cdiv%2520class%253D%2522CAN_ad%2522%2520style%253D%2522display%253Ainline-block%253Bposition%253A%2520relative%253B%2522%253E%250A%253Ca%2520class%253D%2522yadslug%2522%250Ahref%253D%2522http%253A//info.yahoo.com/relevantads/%2522%250Atarget%253D%2522_blank%2522%253E%253Cspan%253EAdChoices%253C/span%253E%253C/a%253E%253C%2521--%2520APT%2520Vendor%253A%2520FreeWheel%2520Media%2520--%253E%250A%253C%2521--https%253A//beap-bc.yahoo.com/yc/YnY9MS4wLjAmYnM9KDE3aTJmdnYzYShnaWQkU2I3SHFERXdOaTdGSDd2YVdGRU1Zd0ZUTVRFNExsaFJER1RfbmV1byxzdCQxNDgxNzA2NTk2NDI1ODgxLHNpJDQ0NjQwNTEsc3AkMTE5NzA1NjEyNixjdCQyNSx5YngkSTV5TUFLZFRLQkpWRjh0UndyanJtdyxsbmckZW4tdXMsY3IkNDQ5MTgxMjA1MSx2JDIuMCxhaWQkd0MuRkR3cndFM2ctLGJpJDIyODEwNzgwNTEsbW1lJDk2MTY4NjE0OTE5MjM4MjcxMDUsciQwLHlvbyQxLGFncCQzNDg0ODY4NTUxLGFwJExSRUMpKQ/2/*//--%253E%253Cscript%2520type%253D%2522text/javascript%2522%2520src%253D%2522https%253A//2912a.v.fwmrm.net/ad/g/1%253Fflag%253D-ptil%2526nw%253D168234%2526csid%253D1197056126%2526pvrn%253D1481706596.644086%2526resp%253Dad%2526prof%253D168234%253AABC_Live_HTTPS_Display%253B%253Bptgt%253Ds%2526envp%253Dg_js%2526slid%253Drectangle%2526slau%253DRectangle%252520300x250%257CRectangle%252520300x600%2526w%253D300%2526h%253D250%2522%2520width%253D%2522300%2522%2520height%253D%2522250%2522%253E%253C/script%253E%250A%253Cnoscript%253E%253Ciframe%2520src%253D%2522https%253A//2912a.v.fwmrm.net/ad/g/1%253Fnw%253D168234%2526csid%253D1197056126%2526pvrn%253D1481706596.644086%2526resp%253Dad%2526prof%253D168234%253AABC_Live_HTTPS_Display_iframe%253B%253Bptgt%253Ds%2526envp%253Dg_iframe%2526slid%253Drectangle%2526slau%253DRectangle%252520300x250%257CRectangle%252520300x600%2526w%253D300%2526h%253D250%2522%2520width%253D%2522300%2522%2520height%253D%2522250%2522%2520/%253E%253C/noscript%253E%253Cscript%253Evar%2520url%2520%253D%2520%2522https%253A//sb.voicefive.com/c2/18904046/rs.js%2523c1%253D3%2526c3%253Dapt-630480051%2526c4%253D4491812051%2526c5%253D3484868551_gma.yahoo.com%257C-1%2526c6%253D%2526c10%253D1%2526c11%253D%2526c13%253D%2526c16%253Dyho%257Ccbt%2526rn%253D1481706596425881%2522%253B%2520if%2528url%2520%2526%2526%2520url.search%2528%2522http%2522%2529%2520%2521%253D%2520-1%2529%257Bdocument.write%2528%2527%253Cscript%2520src%253D%2522%2527%2520+%2520url%2520+%2520%2527%2522%253E%253C%255C/script%253E%2527%2529%253B%257D%253C/script%253E%253C%2521--QYZ%25202281078051%252C4491812051%252C%253B%253BLREC%253B1197056126%253B1--%253E%253C/div%253E&amp;src=https%3A//s.yimg.com/rq/darla/2-9-9/html/r-sf.html&amp;cscHTML=&amp;cscURI=&amp;behavior=non_exp&amp;hasErr=&amp;hasError=&amp;adID=999999&amp;matchID=&amp;bookID=2281078051&amp;serveType=-1&amp;slotID=4&amp;size=300x250&amp;hasExternal=&amp;hasRMX=&amp;ioID=999999&amp;lineID=999999&amp;creativeID=4491812051&amp;placementID=3484868551&amp;impID=wC.FDwrwE3g-&amp;supp_ugc=0&amp;fdb=fdb_url%3Dhttps%253A//beap-bc.yahoo.com/af/sg3%253Fbv%253D1.0.0%2526bs%253D%2528160t3g6os%2528gid%2524Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo%252Cst%25241481706596425881%252Csrv%25241%252Csi%25244464051%252Cct%252425%252Cexp%25241481713796425881%252Cadv%252426429045973%252Cli%25243483658551%252Ccr%25244491812051%252Cv%25241.0%252Cpbid%252420459933223%252Cseid%2524125022551%2529%2529%2526al%253D%2528type%2524%257Btype%257D%252Ccmnt%2524%257Bcmnt%257D%252Csubo%2524%257Bsubo%257D%2529%2526r%253D10%26fdb_on%3D1%26fdb_exp%3D1481713796425%26fdb_intl%3Den-US&amp;adc=label%3DAdChoices%26url%3Dhttps%253A//info.yahoo.com/privacy/us/yahoo/relevantads.html%26close%3DClose%26closeAd%3DClose%2520Ad%26showAd%3DShow%2520ad%26collapse%3DCollapse%26fdb%3DI%2520don%2527t%2520like%2520this%2520ad%26code%3Den-us&amp;closeBtn=&amp;serveTime=1481706596425881&amp;is3rd=0&amp;meta=ownerKey%253Dy%2526title%253DVeteran%252520Wraps%252520Baby%252520in%252520American%252520Flag%25252C%252520Photo%252520Sparks%252520Controversy%252520-%252520Yahoo%2526url%253Dhttps%25253A//gma.yahoo.com/veteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html%252523%2526urlref%253D%2526y%253DcscHTML%25253D%252526cscURI%25253D%252526impID%25253DwC.FDwrwE3g-%252526supp_ugc%25253D0%252526placementID%25253D3484868551%252526creativeID%25253D4491812051%252526serveTime%25253D1481706596425881%252526behavior%25253Dnon_exp%252526adID%25253D9616861491923827105%252526matchID%25253D999999.999999.999999.999999%252526err%25253D%252526facStatus%25253D%252526hasExternal%25253D0%252526size%25253D300x250%252526bookID%25253D2281078051%252526serveType%25253D-1%252526slotID%25253D4%252526fdb%25253D%2525257B%25252520%25252522fdb_url%25252522%2525253A%25252520%25252522https%2525253A%2525255C/%2525255C/beap-bc.yahoo.com%2525255C/af%2525255C/sg3%2525253Fbv%2525253D1.0.0%25252526bs%2525253D%25252528160t3g6os%25252528gid%25252524Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo%2525252Cst%252525241481706596425881%2525252Csrv%252525241%2525252Csi%252525244464051%2525252Cct%2525252425%2525252Cexp%252525241481713796425881%2525252Cadv%2525252426429045973%2525252Cli%252525243483658551%2525252Ccr%252525244491812051%2525252Cv%252525241.0%2525252Cpbid%2525252420459933223%2525252Cseid%25252524125022551%25252529%25252529%25252526al%2525253D%25252528type%25252524%2525257Btype%2525257D%2525252Ccmnt%25252524%2525257Bcmnt%2525257D%2525252Csubo%25252524%2525257Bsubo%2525257D%25252529%25252526r%2525253D10%25252522%2525252C%25252520%25252522fdb_on%25252522%2525253A%25252520%252525221%25252522%2525252C%25252520%25252522fdb_exp%25252522%2525253A%25252520%252525221481713796425%25252522%2525252C%25252520%25252522fdb_intl%25252522%2525253A%25252520%25252522en-US%25252522%25252520%2525257D%252526slotData%25253Dpt%2525253D1%25252526bamt%2525253D10000000000.000000%25252526namt%2525253D0.000000%25252526isLiveAdPreview%2525253Dfalse%25252526is_ad_feedback%2525253Dfalse%25252526trusted_custom%2525253Dfalse%25252526isCompAds%2525253Dfalse%25252526adjf%2525253D1.000000%25252526alpha%2525253D-1.000000%25252526ffrac%2525253D1.000000%25252526pcpm%2525253D-1.000000%25252526fc%2525253Dfalse%25252526ecpm%2525253D0%25252526sdate%2525253D1450211435%25252526edate%2525253D1483246799%25252526bimpr%2525253D0%25252526pimpr%2525253D-473546912%25252526spltp%2525253D0%25252526frp%2525253Dfalse%25252526pvid%2525253DSb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo%252526adc%25253D%2525257B%25252522label%25252522%2525253A%25252522AdChoices%25252522%2525252C%25252522url%25252522%2525253A%25252522https%2525253A%2525255C/%2525255C/info.yahoo.com%2525255C/privacy%2525255C/us%2525255C/yahoo%2525255C/relevantads.html%25252522%2525252C%25252522close%25252522%2525253A%25252522Close%25252522%2525252C%25252522closeAd%25252522%2525253A%25252522Close%25252520Ad%25252522%2525252C%25252522showAd%25252522%2525253A%25252522Show%25252520ad%25252522%2525252C%25252522collapse%25252522%2525253A%25252522Collapse%25252522%2525252C%25252522fdb%25252522%2525253A%25252522I%25252520don%25252527t%25252520like%25252520this%25252520ad%25252522%2525252C%25252522code%25252522%2525253A%25252522en-us%25252522%2525257D%252526is3rd%25253D0%252526userProvidedData%25253D&amp;conf=pos%3DLREC%26id%3DLREC%26w%3D300%26h%3D250%26dest%3Dyom-ad-LREC-iframe%26fr%3DexpIfr_exp%26clean%3Dyom-ad-LREC%26rmxp%3D0%26metaSize%3Dtrue%26supports%3Dexp-ovr%253D1%2526lyr%253D1%26z%3D10%26wcpx%3D1%26hcpx%3D1%26async%3Dfalse%26css%3D%26size%3D300x250%26bg%3Dtransparent%26tgt%3D_blank%26timeout%3Dfalse%26lowHTML%3D%26fdb%3Don%253D0%2526where%253Doutside%26meta%3Dtitle%253DVeteran%252520Wraps%252520Baby%252520in%252520American%252520Flag%25252C%252520Photo%252520Sparks%252520Controversy%252520-%252520Yahoo%2526url%253Dhttps%25253A//gma.yahoo.com/veteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html%252523%2526urlref%253D%26flex%3Dfalse&amp;bindOnly=false&amp;expanded=false&amp;viewSent=false&amp;loadSent=false&amp;nochrome=false&amp;ownsBG=false&amp;ownsLYR=false&amp;exP=false&amp;animating=false&amp;ckOn=true&amp;flexW=false&amp;flexH=false&amp;hf=true&amp;isFallback=-1&amp;fallbackSource=-1&amp;mouseover=0&amp;fbkTimer=0&amp;loadedAt=0&amp;nested=-1&amp;origX=900&amp;origY=530.1666870117188&amp;exW=-1&amp;exH=-1&amp;exT=-1&amp;exL=-1&amp;geom=id%253Dyom-ad-LREC-iframe%2526orph%253Dfalse%2526synched%253D2%2526rect%253Dt%25253D530.1666870117188%252526l%25253D900%252526b%25253D780.1666870117188%252526r%25253D1200%252526w%25253D300%252526h%25253D250%2526self%253Dt%25253D530.1666870117188%252526l%25253D900%252526b%25253D780.1666870117188%252526r%25253D1200%252526w%25253D300%252526h%25253D250%252526iv%25253D0.72%252526riv%25253D0.72%252526xiv%25253D1%252526yiv%25253D0.72%252526civ%25253D0%252526pact%25253Dtrue%252526pvis%25253Dtrue%252526ts%25253D1481706756808%252526ivts%25253D1481706756802%252526ovts%25253D0%252526vr%25253D-1%252526vage%25253D5%252526vthresh%25253D50%252526rts%25253D1481706756803%252526age%25253D4%252526actage%25253D0%2526par%253Dt%25253D0%252526l%25253D0%252526b%25253D710%252526r%25253D1280%252526w%25253D1280%252526h%25253D710%2526exp%253Dt%25253D530.1666870117188%252526l%25253D900%252526b%25253D0%252526r%25253D80%252526w%25253D0%252526h%25253D0%252526iv%25253D0.72%252526riv%25253D0.72%252526xiv%25253D1%252526yiv%25253D0.72%252526civ%25253D0%2526fixed%253Dnull%2526scrollAdjust%253Dfalse%2526scroll%253Dtrue%2526root%253Dtrue%2526win%253Dt%25253D0%252526l%25253D0%252526b%25253D710%252526r%25253D1280%252526w%25253D1280%252526h%25253D710%2526doc%253Dt%25253D0%252526l%25253D0%252526b%25253D2518%252526r%25253D1280%252526w%25253D1280%252526h%25253D2518&amp;chrome=null&amp;flexInf=false&amp;dm=&amp;fpaint=null&amp;renderClass=expIfr_exp&amp;guid=dr__1_1481706756743_89&amp;ert=0&amp;eicf=0&amp;eff=0&amp;fbl=&amp;bbl=&amp;bv=53&amp;srcHost=https%3A//s.yimg.com&amp;host=https%3A//gma.yahoo.com&amp;hostURL=https%253A//gma.yahoo.com/veteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html&amp;fromURL=&amp;proxyID=&amp;html5=1&amp;proxyPath=" style="position: absolute; z-index: 10; width: 300px; height: 250px; top: 0px; left: 0px; visibility: hidden; display: none;" id="yom-ad-LREC-iframe" src="https://s.yimg.com/rq/darla/2-9-9/html/r-sf.html" async="" scrolling="no" allowtransparency="true" hidefocus="true" tabindex="-1" marginwidth="0" marginheight="0" frameborder="no"></iframe></div>
+ </div>
+ <section class="yom-mod " id="mediacontentgenericlistings_2" data-ylk="mid:mediacontentgenericlistings_2;mpos:3;cat:Featured;t1:a4;t2:lst-ct;sec:lst-ct;">
+ <div class="yom-generic-listings-module yom-app ">
+ <div class="hd">
+ <h2>Featured</h2>
+ </div>
+ <div class="bd">
+ <div class="latest-content-inline ">
+ <ul>
+ <li class="generic-list-item story" data-uuid="16f9f18d-d40a-313b-a0cd-070c86f36465">
+ <a class="thumb-link" href="/growing-pains-star-alan-thicke-dead-69-033106505--abc-news-topstories.html" data-ylk="itc:0;tar:gma.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:img;ad:;elmt:ct;cat:Featured;cpos:1;test:;g:16f9f18d-d40a-313b-a0cd-070c86f36465;aid:;prov:Good Morning America;pkgt:15;" data-rapid_p="1"> <img src="https://s.yimg.com/os/mit/media/m/base/images/transparent-1093278.png" class="thumb-img lzbg" style="background-image:url('https://s.yimg.com/bt/api/res/1.2/yP11lodET6LNmMz201fYLg--/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9ODQ7cHlvZmY9MzA7cT03NTt3PTE0OQ--/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/gty-alan-thicke-er-161213_16x9_992.jpg.cf.jpg')" height="84" width="149" /> </a>
+ <div class="listing-title"> <a href="/growing-pains-star-alan-thicke-dead-69-033106505--abc-news-topstories.html" data-ylk="itc:0;tar:gma.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:hdln;ad:;elmt:ct;cat:Featured;cpos:1;test:;g:16f9f18d-d40a-313b-a0cd-070c86f36465;aid:;prov:Good Morning America;pkgt:15;" data-rapid_p="2">'Growing Pains' Star Alan Thicke Dead at 6 …</a> </div>
+ </li>
+ <li class="generic-list-item story" data-uuid="f19aca0b-c4b8-3be7-8ce8-a23789fb7b96">
+ <a class="thumb-link" href="/syrian-government-reportedly-kills-dozens-civilians-aleppo-spot-122713123--abc-news-topstories.html" data-ylk="itc:0;tar:gma.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:img;ad:;elmt:ct;cat:Featured;cpos:2;test:;g:f19aca0b-c4b8-3be7-8ce8-a23789fb7b96;aid:;prov:Good Morning America;pkgt:15;" data-rapid_p="3"> <img src="https://s.yimg.com/os/mit/media/m/base/images/transparent-1093278.png" class="thumb-img lzbg" style="background-image:url('https://s.yimg.com/bt/api/res/1.2/DwsnklBD5nt4XLDpxBtjjw--/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9ODQ7cHlvZmY9MzA7cT03NTt3PTE0OQ--/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/GTY-aleppo_01_as_161213_16x9_992.jpg.cf.jpg')" height="84" width="149" /> </a>
+ <div class="listing-title"> <a href="/syrian-government-reportedly-kills-dozens-civilians-aleppo-spot-122713123--abc-news-topstories.html" data-ylk="itc:0;tar:gma.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:hdln;ad:;elmt:ct;cat:Featured;cpos:2;test:;g:f19aca0b-c4b8-3be7-8ce8-a23789fb7b96;aid:;prov:Good Morning America;pkgt:15;" data-rapid_p="4">Syrian Government Reportedly Kills Dozens of Civilians …</a> </div>
+ </li>
+ <li class="generic-list-item story" data-uuid="da0a1fba-50dc-3111-b6f6-70dd528f4257">
+ <a class="thumb-link" href="/founder-corepower-yoga-trevor-tice-found-dead-under-021223966--abc-news-topstories.html" data-ylk="itc:0;tar:gma.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:img;ad:;elmt:ct;cat:Featured;cpos:3;test:;g:da0a1fba-50dc-3111-b6f6-70dd528f4257;aid:;prov:Good Morning America;pkgt:15;" data-rapid_p="5"> <img src="https://s.yimg.com/os/mit/media/m/base/images/transparent-1093278.png" class="thumb-img lzbg" style="background-image:url('https://s1.yimg.com/bt/api/res/1.2/mf.rBOikm5maS3pSOJySNQ--/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9ODQ7cHlvZmY9MzA7cT03NTt3PTE0OQ--/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/HT-san-diego-death-scene-jt-161213_16x9_992.jpg.cf.jpg')" height="84" width="149" /> </a>
+ <div class="listing-title"> <a href="/founder-corepower-yoga-trevor-tice-found-dead-under-021223966--abc-news-topstories.html" data-ylk="itc:0;tar:gma.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:hdln;ad:;elmt:ct;cat:Featured;cpos:3;test:;g:da0a1fba-50dc-3111-b6f6-70dd528f4257;aid:;prov:Good Morning America;pkgt:15;" data-rapid_p="6">Founder of CorePower Yoga Trevor Tice Found Dead Under …</a> </div>
+ </li>
+ <li class="generic-list-item story" data-uuid="6470aced-4402-3388-b298-eb5e7fe6ea74">
+ <a class="thumb-link" href="/woman-shares-her-journey-fitness-competitor-cancer-fighter-003315567--abc-news-topstories.html" data-ylk="itc:0;tar:gma.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:img;ad:;elmt:ct;cat:Featured;cpos:4;test:;g:6470aced-4402-3388-b298-eb5e7fe6ea74;aid:;prov:Good Morning America;pkgt:15;" data-rapid_p="7"> <img src="https://s.yimg.com/os/mit/media/m/base/images/transparent-1093278.png" class="thumb-img lzbg" style="background-image:url('https://s.yimg.com/bt/api/res/1.2/xP526VTC0mvU1.06CVV3qA--/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9ODQ7cHlvZmY9MzA7cT03NTt3PTE0OQ--/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/HT-cheyenne-clark-jt-161213_v4x3_16x9_992.jpg.cf.jpg')" height="84" width="149" /> </a>
+ <div class="listing-title"> <a href="/woman-shares-her-journey-fitness-competitor-cancer-fighter-003315567--abc-news-topstories.html" data-ylk="itc:0;tar:gma.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:hdln;ad:;elmt:ct;cat:Featured;cpos:4;test:;g:6470aced-4402-3388-b298-eb5e7fe6ea74;aid:;prov:Good Morning America;pkgt:15;" data-rapid_p="8">Woman Shares Her Journey From Fitness Competitor to …</a> </div>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </section>
+ <div class="yom-remote">
+ <div class="" id="td-applet-logo_container">
+ <div id="applet_24116749590382110" class="App_v2 js-applet" data-applet-guid="24116749590382110" data-applet-type="td-applet-logo">
+ <div class="App-Bd">
+ <div class="App-Main" data-region="main">
+ <div class="js-applet-view-container-main">
+
+ <div id="about-banner" class="P-0 Mt-10 Ta-c">
+
+
+ <a href="http://abcnews.go.com/GMA/fullpage/warm-coats-warm-hearts-coat-drive-34507397" title="Fall Concert Series" target="_blank" data-ylk="rspns:nav;t1:a4;t2:logo;sec:logo;itc:0;sp:1;cid:false;slk:Fall Concert Series;elm:img;elmt:logo;cat:false;tar:http://abcnews.go.com/GMA/fullpage/warm-coats-warm-hearts-coat-drive-34507397;"><img src="https://s1.yimg.com/bt/api/res/1.2/hKyjW43m0l4.kBals8086A--/YXBwaWQ9eW5ld3NfdGQ7dz0zMDA-/http://l.yimg.com/os/publish-images/gma/2016-11-11/64ff5020-a82c-11e6-b057-9b0ebc47e0e8_burlngton-warmest-day-ever-300x100_2-1-.jpg" alt="Fall Concert Series" /></a>
+
+ </div>
+ <style type="text/css">
+ #about-banner &gt;
+ div {
+ border: none;
+ margin: 0;
+ }
+
+ #about-banner a {
+ outline: none;
+ }
+
+ #about-banner &gt;
+ div div:nth-child(2) {
+ font-weight: 300;
+ }
+ </style>
+
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="yom-remote">
+ <div class="" id="td-applet-logo_2_container">
+ <div id="applet_58771378193913290" class="App_v2 js-applet" data-applet-guid="58771378193913290" data-applet-type="td-applet-logo">
+ <div class="App-Bd">
+ <div class="App-Main" data-region="main">
+ <div class="js-applet-view-container-main">
+
+ <div id="about-banner" class="P-0 Mt-10 Ta-c">
+
+
+ <a href="http://abcnews.go.com/US/macys-campaign-encourages-kids-mail-letters-santa-benefit/story?id=17667442" title="Burlington" target="_blank" data-ylk="rspns:nav;t1:a4;t2:logo;sec:logo;itc:0;sp:1;cid:false;slk:Burlington;elm:img;elmt:logo;cat:false;tar:http://abcnews.go.com/US/macys-campaign-encourages-kids-mail-letters-santa-benefit/story?id=17667442;"><img src="https://s1.yimg.com/bt/api/res/1.2/XnqS7qMlmcUzu0UhsCcVMQ--/YXBwaWQ9eW5ld3NfdGQ7dz0zMDA-/http://l.yimg.com/os/publish-images/gma/2016-11-08/128c7a80-a5ec-11e6-8f6d-950a85831b23_Macys_Believe_300x100_2.jpg" alt="Burlington" /></a>
+
+ </div>
+ <style type="text/css">
+ #about-banner &gt;
+ div {
+ border: none;
+ margin: 0;
+ }
+
+ #about-banner a {
+ outline: none;
+ }
+
+ #about-banner &gt;
+ div div:nth-child(2) {
+ font-weight: 300;
+ }
+ </style>
+
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div class="yom-mod yom-twittertimeline" id="yom-twittertimelineGMA_466161154243313665_400">
+ <div class="bd">
+ <div class="yom-iframe-wrap" id="yom-twittertimelineGMA_466161154243313665_400-ifr" style="width:100%;height:400px;"><noscript>&lt;iframe src="https://gma.yahoo.com/_xhr/social/twitter-timeline/?id=7w0RmYNLaFM-&amp;widget_id=466161154243313665&amp;height=400&amp;twitter_lang=en-US" frameborder="0" scrolling="no" style="width:100%;height:400px;"&gt; &lt;/iframe&gt;</noscript></div>
+ </div>
+ </div>
+ <div id="yom-ad-LREC2" class="yom-ad yom-ad-LREC2" style="visibility: hidden;">
+ <div id="sb_rel_yom-ad-LREC2-iframe" class="darla" style="position: relative; z-index: 9; width: 300px; height: 250px; visibility: inherit; display: inline-block; font-size: 0px;"><iframe name="pos=LREC2&amp;id=yom-ad-LREC2-iframe&amp;html=%253Cstyle%2520type%253D%2522text/css%2522%253E%250A.CAN_ad%2520.yadslug%2520%257B%250A%2520%2520%2520%2520position%253A%2520absolute%2520%2521important%253B%2520right%253A%25201px%253B%2520top%253A1px%253B%2520display%253Ainline-block%250A%2521important%253B%2520z-index%2520%253A%2520999%253B%250A%2520%2520%2520%2520color%253A%2523999%2520%2521important%253Btext-decoration%253Anone%253Bbackground%253A%2523fff%250Aurl%2528%2527https%253A//secure.footprint.net/yieldmanager/apex/mediastore/adchoice_1.png%2527%2529%2520no-repeat%2520100%2525%25200%250A%2521important%253Bcursor%253Ahand%2520%2521important%253Bheight%253A12px%2520%2521important%253Bpadding%253A0px%252014px%25200px%250A1px%2520%2521important%253Bdisplay%253Ainline-block%2520%2521important%253B%250A%257D%250A.CAN_ad%2520.yadslug%2520span%2520%257Bdisplay%253Anone%2520%2521important%253B%257D%250A.CAN_ad%2520.yadslug%253Ahover%2520%257Bzoom%253A%25201%253B%257D%250A.CAN_ad%2520.yadslug%253Ahover%2520span%2520%257Bdisplay%253Ainline-block%2520%2521important%253Bcolor%253A%2523999%250A%2521important%253B%257D%250A.CAN_ad%2520.yadslug%253Ahover%2520span%252C%2520.CAN_ad%2520.yadslug%253Ahover%2520%257Bfont%253A11px%2520arial%250A%2521important%253B%257D%250A%253C/style%253E%2520%2520%2520%2520%250A%253Cdiv%2520class%253D%2522CAN_ad%2522%2520style%253D%2522display%253Ainline-block%253Bposition%253A%2520relative%253B%2522%253E%250A%253Ca%2520class%253D%2522yadslug%2522%250Ahref%253D%2522http%253A//info.yahoo.com/relevantads/%2522%250Atarget%253D%2522_blank%2522%253E%253Cspan%253EAdChoices%253C/span%253E%253C/a%253E%253C%2521--%2520APT%2520Vendor%253A%2520FreeWheel%2520Media%2520--%253E%250A%253C%2521--https%253A//beap-bc.yahoo.com/yc/YnY9MS4wLjAmYnM9KDE3amdwaWdpNShnaWQkU2I3SHFERXdOaTdGSDd2YVdGRU1Zd0ZUTVRFNExsaFJER1RfbmV1byxzdCQxNDgxNzA2NTk2NDI1ODgxLHNpJDQ0NjQwNTEsc3AkMTE5NzA1NjEyNixjdCQyNSx5YngkSTV5TUFLZFRLQkpWRjh0UndyanJtdyxsbmckZW4tdXMsY3IkNDQ2NTI2MTA1MSx2JDIuMCxhaWQkMXBDRkR3cndFM2ctLGJpJDIyODEwODcwNTEsbW1lJDk2MTY4NTUwNDk0NzI4MDc2MjAsciQwLHlvbyQxLGFncCQzNDg0OTk4NTUxLGFwJExSRUMyKSk/1/*//--%253E%253Cscript%2520type%253D%2522text/javascript%2522%2520src%253D%2522https%253A//2912a.v.fwmrm.net/ad/g/1%253Fflag%253D-ptil%2526nw%253D168234%2526csid%253D1197056126%2526pvrn%253D1481706596.644210%2526resp%253Dad%2526prof%253D168234%253AABC_Live_HTTPS_Display%253B%253Bptgt%253Ds%2526envp%253D%2526slid%253Drectangle2%2526slau%253DRectangle2%252520300x250%257CRectangle2%252520300x600%2526w%253D300%2526h%253D250%2526cd%253D300%252C250%257C300%252C600%2522%253E%253C/script%253E%253Cnoscript%253E%253Ciframe%2520src%253D%2522https%253A//2912a.v.fwmrm.net/ad/g/1%253Fflag%253D-ptil%2526nw%253D168234%2526csid%253D1197056126%2526pvrn%253D1481706596.644210%2526resp%253Dad%2526prof%253D168234%253AABC_Live_HTTPS_Display_iframe%253B%253Bptgt%253Ds%2526envp%253D%2526slid%253Drectangle2%2526slau%253DRectangle2%252520300x250%257CRectangle2%252520300x600%2526w%253D300%2526h%253D250%2526cd%253D300%252C250%257C300%252C600%2522%2520width%253D%2522300%2522%2520height%253D%2522250%2522%2520border%253D%25220%2522%2520/%253E%253C/noscript%253E%253Cscript%253Evar%2520url%2520%253D%2520%2522https%253A//sb.voicefive.com/c2/18904046/rs.js%2523c1%253D3%2526c3%253Dapt-630480051%2526c4%253D4465261051%2526c5%253D3484998551_gma.yahoo.com%257C-1%2526c6%253D%2526c10%253D1%2526c11%253D%2526c13%253D%2526c16%253Dyho%257Ccbt%2526rn%253D1481706596425881%2522%253B%2520if%2528url%2520%2526%2526%2520url.search%2528%2522http%2522%2529%2520%2521%253D%2520-1%2529%257Bdocument.write%2528%2527%253Cscript%2520src%253D%2522%2527%2520+%2520url%2520+%2520%2527%2522%253E%253C%255C/script%253E%2527%2529%253B%257D%253C/script%253E%253C%2521--QYZ%25202281087051%252C4465261051%252C%253B%253BLREC2%253B1197056126%253B1--%253E%253C/div%253E&amp;src=https%3A//s.yimg.com/rq/darla/2-9-9/html/r-sf.html&amp;cscHTML=&amp;cscURI=&amp;behavior=expIfr_exp&amp;hasErr=&amp;hasError=&amp;adID=999999&amp;matchID=&amp;bookID=2281087051&amp;serveType=-1&amp;slotID=5&amp;size=300x250&amp;hasExternal=&amp;hasRMX=&amp;ioID=999999&amp;lineID=999999&amp;creativeID=4465261051&amp;placementID=3484998551&amp;impID=1pCFDwrwE3g-&amp;supp_ugc=0&amp;fdb=fdb_url%3Dhttps%253A//beap-bc.yahoo.com/af/sg3%253Fbv%253D1.0.0%2526bs%253D%25281602h96k2%2528gid%2524Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo%252Cst%25241481706596425881%252Csrv%25241%252Csi%25244464051%252Cct%252425%252Cexp%25241481713796425881%252Cadv%252426429045973%252Cli%25243483788551%252Ccr%25244465261051%252Cv%25241.0%252Cpbid%252420459933223%252Cseid%2524125022551%2529%2529%2526al%253D%2528type%2524%257Btype%257D%252Ccmnt%2524%257Bcmnt%257D%252Csubo%2524%257Bsubo%257D%2529%2526r%253D10%26fdb_on%3D1%26fdb_exp%3D1481713796425%26fdb_intl%3Den-US&amp;adc=label%3DAdChoices%26url%3Dhttps%253A//info.yahoo.com/privacy/us/yahoo/relevantads.html%26close%3DClose%26closeAd%3DClose%2520Ad%26showAd%3DShow%2520ad%26collapse%3DCollapse%26fdb%3DI%2520don%2527t%2520like%2520this%2520ad%26code%3Den-us&amp;closeBtn=&amp;serveTime=1481706596425881&amp;is3rd=0&amp;meta=ownerKey%253Dy%2526title%253DVeteran%252520Wraps%252520Baby%252520in%252520American%252520Flag%25252C%252520Photo%252520Sparks%252520Controversy%252520-%252520Yahoo%2526url%253Dhttps%25253A//gma.yahoo.com/veteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html%252523%2526urlref%253D%2526y%253DcscHTML%25253D%252526cscURI%25253D%252526impID%25253D1pCFDwrwE3g-%252526supp_ugc%25253D0%252526placementID%25253D3484998551%252526creativeID%25253D4465261051%252526serveTime%25253D1481706596425881%252526behavior%25253DexpIfr_exp%252526adID%25253D9616855049472807620%252526matchID%25253D999999.999999.999999.999999%252526err%25253D%252526facStatus%25253D%252526hasExternal%25253D0%252526size%25253D300x250%252526bookID%25253D2281087051%252526serveType%25253D-1%252526slotID%25253D5%252526fdb%25253D%2525257B%25252520%25252522fdb_url%25252522%2525253A%25252520%25252522https%2525253A%2525255C/%2525255C/beap-bc.yahoo.com%2525255C/af%2525255C/sg3%2525253Fbv%2525253D1.0.0%25252526bs%2525253D%252525281602h96k2%25252528gid%25252524Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo%2525252Cst%252525241481706596425881%2525252Csrv%252525241%2525252Csi%252525244464051%2525252Cct%2525252425%2525252Cexp%252525241481713796425881%2525252Cadv%2525252426429045973%2525252Cli%252525243483788551%2525252Ccr%252525244465261051%2525252Cv%252525241.0%2525252Cpbid%2525252420459933223%2525252Cseid%25252524125022551%25252529%25252529%25252526al%2525253D%25252528type%25252524%2525257Btype%2525257D%2525252Ccmnt%25252524%2525257Bcmnt%2525257D%2525252Csubo%25252524%2525257Bsubo%2525257D%25252529%25252526r%2525253D10%25252522%2525252C%25252520%25252522fdb_on%25252522%2525253A%25252520%252525221%25252522%2525252C%25252520%25252522fdb_exp%25252522%2525253A%25252520%252525221481713796425%25252522%2525252C%25252520%25252522fdb_intl%25252522%2525253A%25252520%25252522en-US%25252522%25252520%2525257D%252526slotData%25253Dpt%2525253D1%25252526bamt%2525253D10000000000.000000%25252526namt%2525253D0.000000%25252526isLiveAdPreview%2525253Dfalse%25252526is_ad_feedback%2525253Dfalse%25252526trusted_custom%2525253Dfalse%25252526isCompAds%2525253Dfalse%25252526adjf%2525253D1.000000%25252526alpha%2525253D-1.000000%25252526ffrac%2525253D1.000000%25252526pcpm%2525253D-1.000000%25252526fc%2525253Dfalse%25252526ecpm%2525253D0%25252526sdate%2525253D1450211421%25252526edate%2525253D1483246799%25252526bimpr%2525253D0%25252526pimpr%2525253D-476877856%25252526spltp%2525253D0%25252526frp%2525253Dfalse%25252526pvid%2525253DSb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo%252526adc%25253D%2525257B%25252522label%25252522%2525253A%25252522AdChoices%25252522%2525252C%25252522url%25252522%2525253A%25252522https%2525253A%2525255C/%2525255C/info.yahoo.com%2525255C/privacy%2525255C/us%2525255C/yahoo%2525255C/relevantads.html%25252522%2525252C%25252522close%25252522%2525253A%25252522Close%25252522%2525252C%25252522closeAd%25252522%2525253A%25252522Close%25252520Ad%25252522%2525252C%25252522showAd%25252522%2525253A%25252522Show%25252520ad%25252522%2525252C%25252522collapse%25252522%2525253A%25252522Collapse%25252522%2525252C%25252522fdb%25252522%2525253A%25252522I%25252520don%25252527t%25252520like%25252520this%25252520ad%25252522%2525252C%25252522code%25252522%2525253A%25252522en-us%25252522%2525257D%252526is3rd%25253D0%252526userProvidedData%25253D&amp;conf=pos%3DLREC2%26id%3DLREC2%26w%3D300%26h%3D250%26dest%3Dyom-ad-LREC2-iframe%26fr%3DexpIfr_exp%26clean%3Dyom-ad-LREC2%26rmxp%3D0%26metaSize%3Dtrue%26supports%3Dexp-ovr%253D1%26z%3D10%26wcpx%3D1%26hcpx%3D1%26async%3Dfalse%26css%3D%26size%3D300x250%26bg%3Dtransparent%26tgt%3D_blank%26timeout%3Dfalse%26lowHTML%3D%26fdb%3Don%253D0%2526where%253Doutside%26meta%3Dtitle%253DVeteran%252520Wraps%252520Baby%252520in%252520American%252520Flag%25252C%252520Photo%252520Sparks%252520Controversy%252520-%252520Yahoo%2526url%253Dhttps%25253A//gma.yahoo.com/veteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html%252523%2526urlref%253D%26flex%3Dfalse&amp;bindOnly=false&amp;expanded=false&amp;viewSent=false&amp;loadSent=false&amp;nochrome=false&amp;ownsBG=false&amp;ownsLYR=false&amp;exP=false&amp;animating=false&amp;ckOn=true&amp;flexW=false&amp;flexH=false&amp;hf=true&amp;isFallback=-1&amp;fallbackSource=-1&amp;mouseover=0&amp;fbkTimer=0&amp;loadedAt=0&amp;nested=-1&amp;origX=900&amp;origY=1673.9666748046875&amp;exW=-1&amp;exH=-1&amp;exT=-1&amp;exL=-1&amp;geom=id%253Dyom-ad-LREC2-iframe%2526orph%253Dfalse%2526synched%253D2%2526rect%253Dt%25253D1673.9666748046875%252526l%25253D900%252526b%25253D1923.9666748046875%252526r%25253D1200%252526w%25253D300%252526h%25253D250%2526self%253Dt%25253D1673.9666748046875%252526l%25253D900%252526b%25253D1923.9666748046875%252526r%25253D1200%252526w%25253D300%252526h%25253D250%252526iv%25253D0%252526riv%25253D0%252526xiv%25253D1%252526yiv%25253D0%252526civ%25253D0%252526pact%25253Dtrue%252526pvis%25253Dtrue%252526ts%25253D1481706756815%252526ivts%25253D0%252526ovts%25253D1481706756810%252526vr%25253D0%252526vage%25253D0%252526vthresh%25253D50%252526rts%25253D1481706756811%252526age%25253D4%252526actage%25253D0%2526par%253Dt%25253D0%252526l%25253D0%252526b%25253D710%252526r%25253D1280%252526w%25253D1280%252526h%25253D710%2526exp%253Dt%25253D1673.9666748046875%252526l%25253D900%252526b%25253D0%252526r%25253D0%252526w%25253D0%252526h%25253D0%252526iv%25253D0%252526riv%25253D0%252526xiv%25253D1%252526yiv%25253D0%252526civ%25253D0%2526fixed%253Dnull%2526scrollAdjust%253Dtrue%2526scroll%253Dtrue%2526root%253Dtrue%2526win%253Dt%25253D0%252526l%25253D0%252526b%25253D710%252526r%25253D1280%252526w%25253D1280%252526h%25253D710%2526doc%253Dt%25253D0%252526l%25253D0%252526b%25253D2518%252526r%25253D1280%252526w%25253D1280%252526h%25253D2518&amp;chrome=null&amp;flexInf=false&amp;dm=&amp;fpaint=null&amp;renderClass=expIfr_exp&amp;guid=dr__1_1481706756743_89&amp;ert=0&amp;eicf=0&amp;eff=0&amp;fbl=&amp;bbl=&amp;bv=53&amp;srcHost=https%3A//s.yimg.com&amp;host=https%3A//gma.yahoo.com&amp;hostURL=https%253A//gma.yahoo.com/veteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html&amp;fromURL=&amp;proxyID=&amp;html5=1&amp;proxyPath=" style="position: absolute; z-index: 10; width: 300px; height: 250px; top: 0px; left: 0px; visibility: hidden; display: none;" id="yom-ad-LREC2-iframe" src="https://s.yimg.com/rq/darla/2-9-9/html/r-sf.html" async="" scrolling="no" allowtransparency="true" hidefocus="true" tabindex="-1" marginwidth="0" marginheight="0" frameborder="no"></iframe></div>
+ </div>
+ <section id="mediacontentfollowproperty_2_wrapper">
+ <div id="mediacontentfollowproperty_2" class="yom-mod yom-app yom-follow-property tiny" data-ylk="mid:mediacontentfollowproperty_2;mpos:2;sec:mod-sh-fwm;test:;itc:1;">
+ <div class="hd">
+ <h3 class="Grid-U App-Title Mend-0 follow-text">Follow GMA</h3>
+ </div>
+ <div class="bd">
+ <ul>
+ <li class="follow-property-facebook clearfix">
+ <div class="follow-icon small">
+ <a class="Mt-2" href="https://www.facebook.com/GoodMorningAmerica" rel="publisher" role="link" target="_blank" title="on Facebook" data-ylk="t1:a4;t2:sh-fwm;t3:btm;sec:sh-fwm;elm:icn;cpos:1;_p:1;itc:0;tar:www.facebook.com;test:;act:click;rspns:nav;slk:btn-sh-fb;elmt:sh-fb;" data-action-outcome="sh" data-rapid_p="1">
+ <i class="Icon"></i>
+ </a>
+ </div>
+ <div class="follow-title"><a href="https://www.facebook.com/GoodMorningAmerica" rel="publisher" role="link" target="_blank" title="on Facebook" data-ylk="t1:a4;t2:sh-fwm;t3:btm;sec:sh-fwm;elm:itm;cpos:1;_p:1;itc:0;tar:www.facebook.com;test:;act:click;rspns:nav;slk:btn-sh-fb;elmt:sh-fb;" data-action-outcome="sh" data-rapid_p="2">on Facebook</a></div>
+ </li>
+ <li class="follow-property-twitter clearfix">
+ <div class="follow-icon small">
+ <a class="Mt-2" href="https://twitter.com/GMA" rel="publisher" role="link" target="_blank" title="on Twitter" data-ylk="t1:a4;t2:sh-fwm;t3:btm;sec:sh-fwm;elm:icn;cpos:1;_p:2;itc:0;tar:twitter.com;test:;act:click;rspns:nav;slk:btn-sh-tw;elmt:sh-tw;" data-action-outcome="sh" data-rapid_p="3">
+ <i class="Icon"></i>
+ </a>
+ </div>
+ <div class="follow-title"><a href="https://twitter.com/GMA" rel="publisher" role="link" target="_blank" title="on Twitter" data-ylk="t1:a4;t2:sh-fwm;t3:btm;sec:sh-fwm;elm:itm;cpos:1;_p:2;itc:0;tar:twitter.com;test:;act:click;rspns:nav;slk:btn-sh-tw;elmt:sh-tw;" data-action-outcome="sh" data-rapid_p="4">on Twitter</a></div>
+ </li>
+ <li class="follow-property-tumblr clearfix">
+ <div class="follow-icon small">
+ <a class="Mt-2" href="http://goodmorningamerica.tumblr.com" rel="publisher" role="link" target="_blank" title="on Tumblr" data-ylk="t1:a4;t2:sh-fwm;t3:btm;sec:sh-fwm;elm:icn;cpos:1;_p:3;itc:0;tar:goodmorningamerica.tumblr.com;test:;act:click;rspns:nav;slk:btn-sh-tu;elmt:sh-tu;" data-action-outcome="sh" data-rapid_p="5">
+ <i class="Icon"></i>
+ </a>
+ </div>
+ <div class="follow-title"><a href="http://goodmorningamerica.tumblr.com" rel="publisher" role="link" target="_blank" title="on Tumblr" data-ylk="t1:a4;t2:sh-fwm;t3:btm;sec:sh-fwm;elm:itm;cpos:1;_p:3;itc:0;tar:goodmorningamerica.tumblr.com;test:;act:click;rspns:nav;slk:btn-sh-tu;elmt:sh-tu;" data-action-outcome="sh" data-rapid_p="6">on Tumblr</a></div>
+ </li>
+ <li class="follow-property-gplus clearfix">
+ <div class="follow-icon small">
+ <a class="Mt-2" href="https://plus.google.com/+GMA" rel="publisher" role="link" target="_blank" title="on Google+" data-ylk="t1:a4;t2:sh-fwm;t3:btm;sec:sh-fwm;elm:icn;cpos:1;_p:4;itc:0;tar:plus.google.com;test:;act:click;rspns:nav;slk:btn-sh-gp;elmt:sh-gp;" data-action-outcome="sh" data-rapid_p="7">
+ <i class="Icon"></i>
+ </a>
+ </div>
+ <div class="follow-title"><a href="https://plus.google.com/+GMA" rel="publisher" role="link" target="_blank" title="on Google+" data-ylk="t1:a4;t2:sh-fwm;t3:btm;sec:sh-fwm;elm:itm;cpos:1;_p:4;itc:0;tar:plus.google.com;test:;act:click;rspns:nav;slk:btn-sh-gp;elmt:sh-gp;" data-action-outcome="sh" data-rapid_p="8">on Google+</a></div>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </section>
+ <div id="mediafooterinfo" class="yom-mod yom-footer-info Pb-10 Ta-c Bd-t App_v2" role="contentinfo">
+ <div class="bd Lh-12 M-0 P-0 Fz-xs">
+ <div class="copyright-providers Mb-10 Mt-0 P-0">
+ <cite></cite>
+ </div>
+ <div class="disclaimer Mb-10 Mt-0 P-0 Fz-s">
+ <cite></cite>
+ </div>
+ <div class="copyright Fz-xs Ta-c">
+ <span class="Fz-xs Mx-4 D-b">Yahoo - ABC News Network</span>
+ <ul class="D-ib M-0 P-0">
+ <li class="first D-i Fz-xs Mx-4 My-0 P-0">
+ <a href="http://help.yahoo.com/l/us/yahoo/" data-rapid_p="1">Help</a> / <a href="http://feedback.yahoo.com/forums/168859-news" data-rapid_p="2">Suggestions</a>
+ </li>
+ <li class="D-i Fz-xs Mx-4 My-0 P-0">
+ <a href="http://info.yahoo.com/privacy/us/yahoo/" data-rapid_p="3">Privacy</a>
+ </li>
+ <li class="D-i Fz-xs Mx-4 My-0 P-0">
+ <a href="http://info.yahoo.com/relevantads/" data-rapid_p="4">About Our Ads</a>
+ </li>
+ <li class="last D-i Fz-xs Mx-4 My-0 P-0">
+ <a href="http://info.yahoo.com/legal/us/yahoo/utos/utos-173.html" data-rapid_p="5">Terms</a>
+ </li>
+ </ul>
+ </div>
+
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+
+ <!-- END N_C_R -->
+
+ <!-- START wrap -->
+ <div class="yog-wrap yog-full">
+
+ <iframe id="yom-ad-darla-callframe-darla" style="display:none;"></iframe>
+ </div>
+
+
+ <!-- END wrap -->
+
+
+ <!-- END full -->
+ <!-- Social Events -->
+
+ <!-- Feedback -->
+
+ </div>
+
+ <script type="text/javascript">
+ if (typeof rt_pushMoment !== 'undefined') rt_pushMoment("t3");
+ </script>
+ <div id="yom-ad-FOOT9" class="yom-ad yom-ad-FOOT9" style="visibility: inherit;">
+ <center></center>
+ </div>
+
+ <!-- SpaceID=1197056126 loc=WPFP noad -->
+ <!-- fac-gd2-noad -->
+ <!-- gd2-status-2 -->
+ <!--QYZ CMS_NONE_AVAIL,,;;WPFP;1197056126;2-->
+ <div id="yom-ad-FSRVY-0" class="yom-ad yom-ad-FSRVY-0" style="visibility: hidden;">
+ <div id="sb_rel_yom-ad-FSRVY-0-iframe" class="darla" style="position: relative; z-index: 9; width: 0px; height: 0px; visibility: inherit; display: inline-block; font-size: 0px;"><iframe name="pos=FSRVY-0&amp;id=yom-ad-FSRVY-0-iframe&amp;html=%253C%2521--%2520APT%2520Vendor%253A%2520Right%2520Media%252C%2520Format%253A%2520Standard%2520Graphical%2520--%253E%250A%253C%2521--%2520BEGIN%2520STANDARD%2520TAG%2520-%25201%2520x%25201%2520-%2520APT%2520Run-of%2520Yahoo%2520US%2520O%2526O%2520Redirects%2520-%2520DO%2520NOT%2520MODIFY%2520--%253E%250A%253CSCRIPT%2520TYPE%253D%2522text/javascript%2522%2520SRC%253D%2522https%253A//na.ads.yahoo.com/yax/banner%253Fve%253D1%2526tt%253D1%2526si%253D125022551%2526asz%253D1x1%2526u%253Dhttp%253A//gma.yahoo.com/veteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html%2526gdAdId%253DfgyEDwrwE3g-%2526gdUuid%253DSb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo%2526gdSt%253D1481706596425881%2526publisher_blob%253Dlmsid%253Aa0ad0000008A5ApAAK%253Brevsp%253Aus.abcnews.gma.com%253Blpstaid%253A4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c%257CSb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo%257C1197056126%257CFSRVY%257C1481706596.643748%257C2-9-9%253Aysd%253A1%2526pub_redirect%253Dhttps%253A//beap-bc.yahoo.com/yc/YnY9MS4wLjAmYnM9KDE3anFlazAxNShnaWQkU2I3SHFERXdOaTdGSDd2YVdGRU1Zd0ZUTVRFNExsaFJER1RfbmV1byxzdCQxNDgxNzA2NTk2NDI1ODgxLHNpJDQ0NjQwNTEsc3AkMTE5NzA1NjEyNixjdCQyNSx5YngkSTV5TUFLZFRLQkpWRjh0UndyanJtdyxsbmckZW4tdXMsY3IkNDUyODE3NzA1MSx2JDIuMCxhaWQkZmd5RUR3cndFM2ctLGJpJDIzMTU5MzIwNTEsbW1lJDk3NTI1MTU4ODY0ODQ0NDE4NTAsciQwLHlvbyQxLGFncCQzNTM3MDA2NTUxLGFwJEZTUlZZKSk/1/*%2526K%253D1%2522%253E%253C/SCRIPT%253E%250A%253C%2521--%2520END%2520TAG%2520--%253E%253Cscript%253Evar%2520url%2520%253D%2520%2522https%253A//sb.voicefive.com/c2/18904046/rs.js%2523c1%253D3%2526c3%253Dapt-636749551%2526c4%253D4528177051%2526c5%253D3537006551_gma.yahoo.com%257C-1%2526c6%253D%2526c10%253D1%2526c11%253D%2526c13%253D%2526c16%253Dyho%257Ccbt%2526rn%253D1481706596425881%2522%253B%2520if%2528url%2520%2526%2526%2520url.search%2528%2522http%2522%2529%2520%2521%253D%2520-1%2529%257Bdocument.write%2528%2527%253Cscript%2520src%253D%2522%2527%2520+%2520url%2520+%2520%2527%2522%253E%253C%255C/script%253E%2527%2529%253B%257D%253C/script%253E%253C%2521--QYZ%25202315932051%252C4528177051%252C%253B%253BFSRVY%253B1197056126%253B1--%253E&amp;src=https%3A//s.yimg.com/rq/darla/2-9-9/html/r-sf.html&amp;cscHTML=&amp;cscURI=&amp;behavior=non_exp&amp;hasErr=&amp;hasError=&amp;adID=999999&amp;matchID=&amp;bookID=2315932051&amp;serveType=-1&amp;slotID=1&amp;size=1x1&amp;hasExternal=&amp;hasRMX=&amp;ioID=999999&amp;lineID=999999&amp;creativeID=4528177051&amp;placementID=3537006551&amp;impID=fgyEDwrwE3g-&amp;supp_ugc=0&amp;fdb=fdb_url%3Dhttps%253A//beap-bc.yahoo.com/af/sg3%253Fbv%253D1.0.0%2526bs%253D%2528160p31s53%2528gid%2524Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo%252Cst%25241481706596425881%252Csrv%25241%252Csi%25244464051%252Cct%252425%252Cexp%25241481713796425881%252Cadv%252426513753608%252Cli%25243536867051%252Ccr%25244528177051%252Cv%25241.0%252Cpbid%252420459933223%252Cseid%2524125022551%2529%2529%2526al%253D%2528type%2524%257Btype%257D%252Ccmnt%2524%257Bcmnt%257D%252Csubo%2524%257Bsubo%257D%2529%2526r%253D10%26fdb_on%3D1%26fdb_exp%3D1481713796425%26fdb_intl%3Den-US&amp;adc=label%3DAdChoices%26url%3Dhttps%253A//info.yahoo.com/privacy/us/yahoo/relevantads.html%26close%3DClose%26closeAd%3DClose%2520Ad%26showAd%3DShow%2520ad%26collapse%3DCollapse%26fdb%3DI%2520don%2527t%2520like%2520this%2520ad%26code%3Den-us&amp;closeBtn=&amp;serveTime=1481706596425881&amp;is3rd=1&amp;meta=ownerKey%253Dy%2526title%253DVeteran%252520Wraps%252520Baby%252520in%252520American%252520Flag%25252C%252520Photo%252520Sparks%252520Controversy%252520-%252520Yahoo%2526url%253Dhttps%25253A//gma.yahoo.com/veteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html%252523%2526urlref%253D%2526y%253DcscHTML%25253D%252526cscURI%25253D%252526impID%25253DfgyEDwrwE3g-%252526supp_ugc%25253D0%252526placementID%25253D3537006551%252526creativeID%25253D4528177051%252526serveTime%25253D1481706596425881%252526behavior%25253Dnon_exp%252526adID%25253D9752515886484441850%252526matchID%25253D999999.999999.999999.999999%252526err%25253D%252526facStatus%25253D%252526hasExternal%25253D0%252526size%25253D1x1%252526bookID%25253D2315932051%252526serveType%25253D-1%252526slotID%25253D1%252526fdb%25253D%2525257B%25252520%25252522fdb_url%25252522%2525253A%25252520%25252522https%2525253A%2525255C/%2525255C/beap-bc.yahoo.com%2525255C/af%2525255C/sg3%2525253Fbv%2525253D1.0.0%25252526bs%2525253D%25252528160p31s53%25252528gid%25252524Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo%2525252Cst%252525241481706596425881%2525252Csrv%252525241%2525252Csi%252525244464051%2525252Cct%2525252425%2525252Cexp%252525241481713796425881%2525252Cadv%2525252426513753608%2525252Cli%252525243536867051%2525252Ccr%252525244528177051%2525252Cv%252525241.0%2525252Cpbid%2525252420459933223%2525252Cseid%25252524125022551%25252529%25252529%25252526al%2525253D%25252528type%25252524%2525257Btype%2525257D%2525252Ccmnt%25252524%2525257Bcmnt%2525257D%2525252Csubo%25252524%2525257Bsubo%2525257D%25252529%25252526r%2525253D10%25252522%2525252C%25252520%25252522fdb_on%25252522%2525253A%25252520%252525221%25252522%2525252C%25252520%25252522fdb_exp%25252522%2525253A%25252520%252525221481713796425%25252522%2525252C%25252520%25252522fdb_intl%25252522%2525253A%25252520%25252522en-US%25252522%25252520%2525257D%252526slotData%25253Dpt%2525253D8%25252526bamt%2525253D10000000000.000000%25252526namt%2525253D0.000000%25252526isLiveAdPreview%2525253Dfalse%25252526is_ad_feedback%2525253Dfalse%25252526trusted_custom%2525253Dfalse%25252526isCompAds%2525253Dfalse%25252526adjf%2525253D1.000000%25252526alpha%2525253D-1.000000%25252526ffrac%2525253D1.000000%25252526pcpm%2525253D-1.000000%25252526fc%2525253Dfalse%25252526sdate%2525253D1474408390%25252526edate%2525253D1561953540%25252526bimpr%2525253D82733924352%25252526pimpr%2525253D0%25252526spltp%2525253D0%25252526frp%2525253Dfalse%25252526pvid%2525253DSb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo%252526adc%25253D%2525257B%25252522label%25252522%2525253A%25252522AdChoices%25252522%2525252C%25252522url%25252522%2525253A%25252522https%2525253A%2525255C/%2525255C/info.yahoo.com%2525255C/privacy%2525255C/us%2525255C/yahoo%2525255C/relevantads.html%25252522%2525252C%25252522close%25252522%2525253A%25252522Close%25252522%2525252C%25252522closeAd%25252522%2525253A%25252522Close%25252520Ad%25252522%2525252C%25252522showAd%25252522%2525253A%25252522Show%25252520ad%25252522%2525252C%25252522collapse%25252522%2525253A%25252522Collapse%25252522%2525252C%25252522fdb%25252522%2525253A%25252522I%25252520don%25252527t%25252520like%25252520this%25252520ad%25252522%2525252C%25252522code%25252522%2525253A%25252522en-us%25252522%2525257D%252526is3rd%25253D1%252526userProvidedData%25253D&amp;conf=pos%3DFSRVY-0%26id%3DFSRVY-0%26w%3D1%26h%3D1%26dest%3Dyom-ad-FSRVY-0-iframe%26fr%3DexpIfr_exp%26clean%3Dyom-ad-FSRVY-0%26rmxp%3D0%26supports%3Dexp-ovr%253D1%2526lyr%253D1%26z%3D10%26wcpx%3D1%26hcpx%3D1%26async%3Dfalse%26css%3D%26metaSize%3Dfalse%26size%3D1x1%26bg%3Dtransparent%26tgt%3D_blank%26timeout%3Dfalse%26lowHTML%3D%26fdb%3Don%253D0%2526where%253Doutside%26meta%3Dtitle%253DVeteran%252520Wraps%252520Baby%252520in%252520American%252520Flag%25252C%252520Photo%252520Sparks%252520Controversy%252520-%252520Yahoo%2526url%253Dhttps%25253A//gma.yahoo.com/veteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html%252523%2526urlref%253D%26flex%3Dfalse&amp;bindOnly=false&amp;expanded=false&amp;viewSent=false&amp;loadSent=false&amp;nochrome=false&amp;ownsBG=false&amp;ownsLYR=false&amp;exP=false&amp;animating=false&amp;ckOn=true&amp;flexW=false&amp;flexH=false&amp;hf=true&amp;isFallback=-1&amp;fallbackSource=-1&amp;mouseover=0&amp;fbkTimer=0&amp;loadedAt=0&amp;nested=-1&amp;origX=0&amp;origY=0&amp;exW=-1&amp;exH=-1&amp;exT=-1&amp;exL=-1&amp;geom=id%253Dyom-ad-FSRVY-0-iframe%2526orph%253Dtrue%2526synched%253D2%2526rect%253Dt%25253D0%252526l%25253D0%252526b%25253D0%252526r%25253D0%252526w%25253D0%252526h%25253D0%2526self%253Dt%25253D0%252526l%25253D0%252526b%25253D0%252526r%25253D0%252526w%25253D0%252526h%25253D0%252526iv%25253D0%252526riv%25253D0%252526xiv%25253D0%252526yiv%25253D0%252526civ%25253D0%252526pact%25253Dtrue%252526pvis%25253Dtrue%252526ts%25253D1481706756786%252526ivts%25253D0%252526ovts%25253D1481706756779%252526vr%25253D0%252526vage%25253D0%252526vthresh%25253D0%252526rts%25253D1481706756779%252526age%25253D7%252526actage%25253D0%2526par%253Dt%25253D0%252526l%25253D0%252526b%25253D2518%252526r%25253D1280%252526w%25253D1280%252526h%25253D2518%2526exp%253Dt%25253D0%252526l%25253D0%252526b%25253D0%252526r%25253D0%252526w%25253D0%252526h%25253D0%252526iv%25253D0%252526riv%25253D0%252526xiv%25253D0%252526yiv%25253D0%252526civ%25253D0%2526fixed%253Dnull%2526scrollAdjust%253Dfalse%2526scroll%253Dtrue%2526root%253Dtrue%2526win%253Dt%25253D23%252526l%25253D4%252526b%25253D733%252526r%25253D1284%252526w%25253D1280%252526h%25253D710%2526doc%253Dt%25253D0%252526l%25253D0%252526b%25253D2518%252526r%25253D1280%252526w%25253D1280%252526h%25253D2518&amp;chrome=null&amp;flexInf=false&amp;dm=&amp;fpaint=null&amp;renderClass=expIfr_exp&amp;guid=dr__1_1481706756743_89&amp;ert=0&amp;eicf=0&amp;eff=0&amp;fbl=&amp;bbl=&amp;bv=53&amp;srcHost=https%3A//s.yimg.com&amp;host=https%3A//gma.yahoo.com&amp;hostURL=https%253A//gma.yahoo.com/veteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html&amp;fromURL=&amp;proxyID=&amp;html5=1&amp;proxyPath=" style="position: absolute; z-index: 10; width: 0px; height: 0px; top: 0px; left: 0px; visibility: hidden; display: none;" id="yom-ad-FSRVY-0-iframe" src="https://s.yimg.com/rq/darla/2-9-9/html/r-sf.html" async="" scrolling="no" allowtransparency="true" hidefocus="true" tabindex="-1" marginwidth="0" marginheight="0" frameborder="no"></iframe></div>
+ </div>
+
+ <script type="text/javascript">
+ if (typeof rt_pushMoment !== 'undefined') rt_pushMoment("t4");
+ </script>
+
+
+
+ <script>
+ YMedia.use("media-rmp", function(Y) {
+ Y.Media.RMP.load({
+ srcNode: "#td-applet-ads_container",
+ continueOnError: true,
+ response: "\r\n--dali-response-split\r\nContent-Type: text/plain\r\nRMP-Embed-Location: inline-bottom\r\n\r\n&lt;script&gt;YMedia.applyConfig({\"groups\":{\"td-applet-ads\":{\"base\":\"https://s1.yimg.com/os/mit/td/td-applet-ads-0.1.593/\",\"root\":\"os/mit/td/td-applet-ads-0.1.593/\",\"combine\":true,\"filter\":\"min\",\"comboBase\":\"https://s.yimg.com/zz/combo?\",\"comboSep\":\"&amp;\"}}});&lt;\/script&gt;&lt;script&gt;window.Af=window.Af||{};window.Af.bootstrap=window.Af.bootstrap||{};window.Af.bootstrap[\"24751402369262404\"] = {\"applet_type\":\"td-applet-ads\",\"models\":{\"applet_model\":{\"models\":[\"ads\"]}},\"views\":{\"main\":{\"yui_module\":\"td-ads-mainview\",\"yui_class\":\"TD.Ads.MainView\"}},\"templates\":{\"leftrail\":{\"yui_module\":\"td-applet-ads-templates-leftrail\",\"template_name\":\"td-applet-ads-templates-leftrail\"},\"carousel\":{\"yui_module\":\"td-applet-ads-templates-carousel\",\"template_name\":\"td-applet-ads-templates-carousel\"},\"splash\":{\"yui_module\":\"td-applet-ads-templates-splash\",\"template_name\":\"td-applet-ads-templates-splash\"}},\"i18n\":{\"TITLE\":\"ads\"},\"transport\":{\"xhr\":\"/_td_api\"},\"context\":{\"bucket\":\"\",\"crumb\":\"kKRPyOdAXGG\",\"device\":\"desktop\",\"lang\":\"en-US\",\"region\":\"US\",\"site\":\"gma\"}};&lt;\/script&gt;&lt;script&gt;if (YMedia &amp;&amp; YMedia.Stencil &amp;&amp; YMedia.Stencil.initAll) {YMedia.Stencil.initAll(\"#applet_24751402369262404\");}&lt;\/script&gt;&lt;script&gt;if (YMedia &amp;&amp; YMedia.ApeApp &amp;&amp; YMedia.ApeApp.initApplet) {YMedia.ApeApp.initApplet(\"24751402369262404\",true);}&lt;\/script&gt;\r\n--dali-response-split--\r\n"
+ });
+ });
+ </script>
+ <script>
+ YMedia.use("media-rmp", function(Y) {
+ Y.Media.RMP.load({
+ srcNode: "#td-applet-logo_2_container",
+ continueOnError: true,
+ response: "\r\n--dali-response-split\r\nContent-Type: text/plain\r\nRMP-Embed-Location: inline-bottom\r\n\r\n&lt;script&gt;YMedia.applyConfig({\"groups\":{\"td-applet-logo\":{\"base\":\"https://s1.yimg.com/os/mit/td/td-applet-logo-0.1.256/\",\"root\":\"os/mit/td/td-applet-logo-0.1.256/\",\"combine\":true,\"filter\":\"min\",\"comboBase\":\"https://s.yimg.com/zz/combo?\",\"comboSep\":\"&amp;\"}}});&lt;\/script&gt;&lt;script&gt;window.Af=window.Af||{};window.Af.bootstrap=window.Af.bootstrap||{};window.Af.bootstrap[\"58771378193913290\"] = {\"applet_type\":\"td-applet-logo\",\"views\":{\"main\":{\"yui_module\":\"td-applet-logo-mainview\",\"yui_class\":\"TD.Applet.LogoMainView\"}},\"i18n\":{\"TITLE\":\"logo\"},\"transport\":{\"xhr\":\"/_td_api\"},\"context\":{\"bucket\":\"\",\"crumb\":\"kKRPyOdAXGG\",\"device\":\"desktop\",\"lang\":\"en-US\",\"region\":\"US\",\"site\":\"gma\"}};&lt;\/script&gt;&lt;script&gt;if (YMedia &amp;&amp; YMedia.Stencil &amp;&amp; YMedia.Stencil.initAll) {YMedia.Stencil.initAll(\"#applet_58771378193913290\");}&lt;\/script&gt;&lt;script&gt;if (YMedia &amp;&amp; YMedia.ApeApp &amp;&amp; YMedia.ApeApp.initApplet) {YMedia.ApeApp.initApplet(\"58771378193913290\",true);}&lt;\/script&gt;\r\n--dali-response-split\r\nContent-Type: text/html; charset=utf-8\r\n\r\n&lt;div id=\"applet_58771378193913290\" class=\"App_v2 js-applet\" data-applet-guid=\"58771378193913290\" data-applet-type=\"td-applet-logo\"&gt; &lt;div class=\"App-Bd\"&gt; &lt;div class=\"App-Main\" data-region=\"main\"&gt; &lt;div class=\"js-applet-view-container-main\"&gt; \n\n&lt;div id=\"about-banner\" class=\"P-0 Mt-10 Ta-c\"&gt;\n \n \n &lt;a href=\"http://abcnews.go.com/US/macys-campaign-encourages-kids-mail-letters-santa-benefit/story?id=17667442\" title=\"Burlington\" target=\"_blank\" data-ylk=\"rspns:nav;t1:a4;t2:logo;sec:logo;itc:0;sp:1;cid:false;slk:Burlington;elm:img;elmt:logo;cat:false;tar:http://abcnews.go.com/US/macys-campaign-encourages-kids-mail-letters-santa-benefit/story?id=17667442;\"&gt;&lt;img src=\"https://s1.yimg.com/bt/api/res/1.2/XnqS7qMlmcUzu0UhsCcVMQ--/YXBwaWQ9eW5ld3NfdGQ7dz0zMDA-/http://l.yimg.com/os/publish-images/gma/2016-11-08/128c7a80-a5ec-11e6-8f6d-950a85831b23_Macys_Believe_300x100_2.jpg\" alt=\"Burlington\"&gt;&lt;/a&gt;\n \n&lt;/div&gt;\n&lt;style type=\"text/css\"&gt;\n #about-banner &gt; div {\n border: none;\n margin: 0;\n }\n #about-banner a {\n outline:none;\n }\n #about-banner &gt; div div:nth-child(2) {\n font-weight: 300;\n }\n&lt;/style&gt;\n\n &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;\r\n--dali-response-split--\r\n"
+ });
+ });
+ </script>
+ <script>
+ YMedia.use("media-rmp", function(Y) {
+ Y.Media.RMP.load({
+ srcNode: "#td-applet-logo_container",
+ continueOnError: true,
+ response: "\r\n--dali-response-split\r\nContent-Type: text/plain\r\nRMP-Embed-Location: inline-bottom\r\n\r\n&lt;script&gt;YMedia.applyConfig({\"groups\":{\"td-applet-logo\":{\"base\":\"https://s1.yimg.com/os/mit/td/td-applet-logo-0.1.256/\",\"root\":\"os/mit/td/td-applet-logo-0.1.256/\",\"combine\":true,\"filter\":\"min\",\"comboBase\":\"https://s.yimg.com/zz/combo?\",\"comboSep\":\"&amp;\"}}});&lt;\/script&gt;&lt;script&gt;window.Af=window.Af||{};window.Af.bootstrap=window.Af.bootstrap||{};window.Af.bootstrap[\"24116749590382110\"] = {\"applet_type\":\"td-applet-logo\",\"views\":{\"main\":{\"yui_module\":\"td-applet-logo-mainview\",\"yui_class\":\"TD.Applet.LogoMainView\"}},\"i18n\":{\"TITLE\":\"logo\"},\"transport\":{\"xhr\":\"/_td_api\"},\"context\":{\"bucket\":\"\",\"crumb\":\"kKRPyOdAXGG\",\"device\":\"desktop\",\"lang\":\"en-US\",\"region\":\"US\",\"site\":\"gma\"}};&lt;\/script&gt;&lt;script&gt;if (YMedia &amp;&amp; YMedia.Stencil &amp;&amp; YMedia.Stencil.initAll) {YMedia.Stencil.initAll(\"#applet_24116749590382110\");}&lt;\/script&gt;&lt;script&gt;if (YMedia &amp;&amp; YMedia.ApeApp &amp;&amp; YMedia.ApeApp.initApplet) {YMedia.ApeApp.initApplet(\"24116749590382110\",true);}&lt;\/script&gt;\r\n--dali-response-split\r\nContent-Type: text/html; charset=utf-8\r\n\r\n&lt;div id=\"applet_24116749590382110\" class=\"App_v2 js-applet\" data-applet-guid=\"24116749590382110\" data-applet-type=\"td-applet-logo\"&gt; &lt;div class=\"App-Bd\"&gt; &lt;div class=\"App-Main\" data-region=\"main\"&gt; &lt;div class=\"js-applet-view-container-main\"&gt; \n\n&lt;div id=\"about-banner\" class=\"P-0 Mt-10 Ta-c\"&gt;\n \n \n &lt;a href=\"http://abcnews.go.com/GMA/fullpage/warm-coats-warm-hearts-coat-drive-34507397\" title=\"Fall Concert Series\" target=\"_blank\" data-ylk=\"rspns:nav;t1:a4;t2:logo;sec:logo;itc:0;sp:1;cid:false;slk:Fall Concert Series;elm:img;elmt:logo;cat:false;tar:http://abcnews.go.com/GMA/fullpage/warm-coats-warm-hearts-coat-drive-34507397;\"&gt;&lt;img src=\"https://s1.yimg.com/bt/api/res/1.2/hKyjW43m0l4.kBals8086A--/YXBwaWQ9eW5ld3NfdGQ7dz0zMDA-/http://l.yimg.com/os/publish-images/gma/2016-11-11/64ff5020-a82c-11e6-b057-9b0ebc47e0e8_burlngton-warmest-day-ever-300x100_2-1-.jpg\" alt=\"Fall Concert Series\"&gt;&lt;/a&gt;\n \n&lt;/div&gt;\n&lt;style type=\"text/css\"&gt;\n #about-banner &gt; div {\n border: none;\n margin: 0;\n }\n #about-banner a {\n outline:none;\n }\n #about-banner &gt; div div:nth-child(2) {\n font-weight: 300;\n }\n&lt;/style&gt;\n\n &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;\r\n--dali-response-split--\r\n"
+ });
+ });
+ </script>
+ <script>
+ YMedia.use("media-rmp", function(Y) {
+ Y.Media.RMP.load({
+ srcNode: "#td-applet-photoheader_container",
+ continueOnError: true,
+ response: "\r\n--dali-response-split\r\nContent-Type: text/plain\r\nRMP-Embed-Location: inline-bottom\r\n\r\n&lt;script&gt;YMedia.applyConfig({\"groups\":{\"td-applet-photoheader\":{\"base\":\"https://s1.yimg.com/os/mit/td/td-applet-photoheader-0.1.314/\",\"root\":\"os/mit/td/td-applet-photoheader-0.1.314/\",\"combine\":true,\"filter\":\"min\",\"comboBase\":\"https://s.yimg.com/zz/combo?\",\"comboSep\":\"&amp;\"}}});&lt;\/script&gt;&lt;script&gt;window.Af=window.Af||{};window.Af.bootstrap=window.Af.bootstrap||{};window.Af.bootstrap[\"24106666317790640\"] = {\"applet_type\":\"td-applet-photoheader\",\"models\":{\"photoheader\":{\"yui_module\":\"td-photoheader-model\",\"yui_class\":\"TD.Photoheader.Model\"},\"applet_model\":{\"models\":[\"photoheader\"],\"config\":{\"asset_mode\":\"prod\",\"crumbKey\":\"touchdown.crumbkey\",\"mrs\":{\"mrs_host\":\"l.yimg.com/bt\",\"key\":\"mrs.ynews_td.crumbkey\",\"app_id\":\"ynews_td\"},\"edgepipe\":{\"enabled\":true},\"template\":{\"main\":\"td-applet-photoheader:main\"},\"photoheader_attributes\":{\"width\":\"731\",\"height\":\"216\"},\"bootstrap\":{\"templates\":{\"main\":{\"yui_module\":\"td-applet-photoheader-templates-main\",\"template_name\":\"td-applet-photoheader-templates-main\"}}},\"m_id\":\"td-applet-photoheader\",\"m_mode\":\"multipart\",\"configId\":\"MediaApeAppletConfig\",\"hide\":\"0\",\"mod_units\":\"19\",\"content_type\":\"story\",\"is_sponsored\":\"0\",\"provider_id\":\"us.abcnews.gma.com\",\"provider_name\":\"Good Morning America\",\"spaceid\":\"1197056126\",\"mod_id\":\"td-applet-photoheader\",\"content_id\":\"4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c\",\"title\":\"Good Morning America\",\"linkUrl\":\"http://gma.yahoo.com/\",\"hideTitle\":\"1\",\"disableAppClass\":\"1\",\"header\":1,\"imgUrl\":\"https://s.yimg.com/os/publish-images/gma/2014-06-26/282e98f0-fd6a-11e3-b1cc-8793f4ed3e91_gma_home_062614_header.jpg\",\"hideEspon\":\"1\",\"enableFooter\":\"1\",\"disableGradient\":\"1\",\"nolz\":\"1\",\"y_proc_embeds\":\"1\",\"y_map_urn\":\"urn:rmp:lite\",\"_product_version\":\"v2sg\",\"r_inc\":\"1\",\"c_id\":\"td-applet-photoheader_container\",\"initStencil\":1,\"initApplet\":1,\"timeout\":\"2500\",\"_sig\":\"ljdJU9LlE4AKY7EPfFlTOyEwEJI-\",\"chrome\":1,\"footer\":1,\"toolbar\":0,\"isSsl\":true}}},\"views\":{\"main\":{\"yui_module\":\"td-photoheader-mainview\",\"yui_class\":\"TD.Photoheader.MainView\"}},\"templates\":{\"main\":{\"yui_module\":\"td-applet-photoheader-templates-main\",\"template_name\":\"td-applet-photoheader-templates-main\"}},\"i18n\":{\"TITLE\":\"photoheader\"},\"transport\":{\"xhr\":\"/_td_api\"},\"context\":{\"bucket\":\"\",\"crumb\":\"kKRPyOdAXGG\",\"device\":\"desktop\",\"lang\":\"en-US\",\"region\":\"US\",\"site\":\"gma\"}};&lt;\/script&gt;&lt;script&gt;if (YMedia &amp;&amp; YMedia.Stencil &amp;&amp; YMedia.Stencil.initAll) {YMedia.Stencil.initAll(\"#applet_24106666317790640\");}&lt;\/script&gt;&lt;script&gt;if (YMedia &amp;&amp; YMedia.ApeApp &amp;&amp; YMedia.ApeApp.initApplet) {YMedia.ApeApp.initApplet(\"24106666317790640\",true);}&lt;\/script&gt;\r\n--dali-response-split\r\nContent-Type: text/html; charset=utf-8\r\n\r\n&lt;div id=\"applet_24106666317790640\" class=\"js-applet\" data-applet-guid=\"24106666317790640\" data-applet-type=\"td-applet-photoheader\"&gt; &lt;div class=\"App-Bd\"&gt; &lt;div class=\"App-Main\" data-region=\"main\"&gt; &lt;div class=\"js-applet-view-container-main\"&gt; &lt;div id=\"td-photoheader\" class=\"SlowTrans Pos-r Z-3 Cf Ov-h\"&gt;\n &lt;a href=\"http://gma.yahoo.com/\" title=\"Good Morning America\" class=\"NoLinkColor\" data-ylk=\"rspns:nav;t1:a3;t2:photoheader;sec:photoheader;itc:0;sp:0;slk:Good Morning America;elm:img;cat:false;tar:http://gma.yahoo.com/;\"&gt;\n &lt;div class='W-100 Pos-a tie-title'&gt;\n \n \n &lt;h1 class='Fz-2xl Fw-b D-ib Pstart-10 My-10 H-n Hidden'&gt;Good Morning America&lt;/h1&gt;\n \n \n &lt;/div&gt;\n \n \n &lt;img src=\"https://s.yimg.com/bt/api/res/1.2/wKqr1Cy7iSKnJwJF_EoD3g--/YXBwaWQ9eW5ld3NfdGQ7dz03MzE-/http://l.yimg.com/os/publish-images/gma/2014-06-26/282e98f0-fd6a-11e3-b1cc-8793f4ed3e91_gma_home_062614_header.jpg\" class=\"W-100\" alt=\"Good Morning America\" onerror=\"this.style.width='0'\"&gt;\n \n \n \n &lt;/a&gt;\n&lt;/div&gt;\n&lt;style&gt;\n@media (max-width: 1200px) {\n #td-photoheader .tie-title h1 {\n font-size: 1.6em;\n width: 80%;\n }\n}\n@media (max-width: 1150px) {\n #td-photoheader .tie-title h1 {\n font-size: 1.45em;\n width: 80%;\n }\n}\n@media (max-width: 1100px) {\n #td-photoheader .tie-title h1 {\n font-size: 1.35em;\n width: 65%;\n }\n}\n@media (max-width: 980px) {\n #td-photoheader .tie-title h1 {\n font-size: 1.25em;\n width: 60%;\n }\n}\n&lt;/style&gt;\n &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class=\"App-Ft Row\"&gt; &lt;/div&gt;&lt;/div&gt;\r\n--dali-response-split--\r\n"
+ });
+ });
+ </script>
+ <script>
+ YMedia.use("media-rmp", function(Y) {
+ Y.Media.RMP.load({
+ srcNode: "#mediaapeappletcanvass_container",
+ continueOnError: true,
+ response: "\r\n--dali-response-split\r\nContent-Type: text/plain\r\nRMP-Embed-Location: inline-bottom\r\n\r\n&lt;script&gt;YMedia.applyConfig({\"groups\":{\"td-applet-canvass\":{\"base\":\"https://s1.yimg.com/os/mit/td/td-applet-canvass-1.0.94/\",\"root\":\"os/mit/td/td-applet-canvass-1.0.94/\",\"combine\":true,\"filter\":\"min\",\"comboBase\":\"https://s.yimg.com/zz/combo?\",\"comboSep\":\"&amp;\"}}});&lt;\/script&gt;&lt;script&gt;window.Af=window.Af||{};window.Af.bootstrap=window.Af.bootstrap||{};window.Af.bootstrap[\"24053652936908468\"] = {\"applet_type\":\"td-applet-canvass\",\"models\":{\"applet_model\":{\"config\":{\"consumerKey\":\"frontpage.oauth.canvassKey\",\"consumerSecret\":\"frontpage.oauth.canvassSecret\",\"uuid\":\"4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c\",\"sortBy\":\"popular\",\"autoShow\":false,\"likeVoteUpKey\":\"up\",\"likeVoteClearKey\":\"clear\",\"enableImageComments\":true,\"namespace\":\"yahoo_content\",\"visibilityType\":\"PUBLIC\",\"enableCommentsWrite\":true,\"enableMyComments\":true,\"avatarInline\":false,\"canvassFullScreen\":false,\"yahooApp\":{\"url\":\"https://go.onelink.me/2184920418?pid=InProduct&amp;c=Newsroom_Oct16&amp;af_sub1=Smartbannerl&amp;af_sub2=Newsroom_YMktg_YahooApp&amp;af_sub3=InProduct_Smartbanner_1\",\"icon\":\"https://s.yimg.com/cv/ae/default/161028/iPhone_6_6s_se_120x120.png\"}},\"models\":[]}},\"views\":{\"main\":{\"yui_module\":\"td-applet-canvass-mainview\",\"yui_class\":\"TD.Applet.CommentsMainView\"}},\"templates\":{\"activities\":{\"yui_module\":\"td-applet-canvass-templates-activities\",\"template_name\":\"td-applet-canvass-templates-activities\"},\"activity-comments\":{\"yui_module\":\"td-applet-canvass-templates-activity-comments\",\"template_name\":\"td-applet-canvass-templates-activity-comments\"},\"activity-replies\":{\"yui_module\":\"td-applet-canvass-templates-activity-replies\",\"template_name\":\"td-applet-canvass-templates-activity-replies\"},\"main\":{\"yui_module\":\"td-applet-canvass-templates-main\",\"template_name\":\"td-applet-canvass-templates-main\"},\"main-activities\":{\"yui_module\":\"td-applet-canvass-templates-main-activities\",\"template_name\":\"td-applet-canvass-templates-main-activities\"},\"comments\":{\"yui_module\":\"td-applet-canvass-templates-comments\",\"template_name\":\"td-applet-canvass-templates-comments\"},\"replies\":{\"yui_module\":\"td-applet-canvass-templates-replies\",\"template_name\":\"td-applet-canvass-templates-replies\"}},\"i18n\":{\"COMMENT_ACTIVITY\":\"Comment Activity\",\"COMMENTS_FAILED\":\"Sorry, we can’t load comments right now. Try again.\",\"COMMENT_ACTIVITY_FAILED\":\"Sorry, we can’t find your comment activity right now. Try again.\",\"PROMOTED_COMMENTS\":\"We will promote constructive and witty comments to the top, so everyone sees them!\",\"ALL_COMMENTS\":\"All comments\",\"YOU\":\"You\",\"ARE_YOU_SURE\":\"Are you sure?\",\"SHOW_MORE_COMMENTS\":\"Show more comments\",\"RETRY_SHOW_MORE_COMMENTS\":\"Retry show more comments\",\"SHOW_MORE_REPLIES\":\"Show more replies\",\"RETRY_SHOW_MORE_REPLIES\":\"Retry show more replies\",\"RATING_FAILED_TRY_AGAIN\":\"Rating failed. Try again.\",\"REQUEST_FAILED_TRY_AGAIN\":\"Request failed. Try again.\",\"VIEW_COMMENTS\":\"Comments\",\"REFRESH_COMMENTS\":\"Refresh comments\",\"REFRESH_COMMENT_ACTIVITY\":\"Refresh comment activity\",\"LOADING_COMMENTS\":\"Loading comments...\",\"LOADING_REPLIES\":\"Loading replies...\",\"SHOW_REPLIES\":\"Show replies\",\"SHOW_REPLIES_COUNT\":\"Show replies ({count})\",\"HIDE_REPLIES\":\"Hide replies\",\"EDITOR_LABEL\":\"Editor\",\"KEEP_READING\":\"Keep reading\",\"ANONYMOUS\":\"A Yahoo reader\",\"TOP\":\"Top\",\"RECENT\":\"Latest\",\"OLDEST\":\"Oldest\",\"MOSTREPLIED\":\"Most Replied\",\"RETRY_SORT\":\"Retry sort\",\"ATTENTION\":\"Attention\",\"LEAVE_A_COMMENT\":\"Leave a comment\",\"BE_THE_FIRST\":\"Be the first to comment\",\"LEAVE_A_REPLY\":\"Leave a reply\",\"REPLY\":\"Reply\",\"POST\":\"Post\",\"MISSING_COMMENT\":\"You forgot to enter a comment.\",\"MISSING_REPLY\":\"You forgot to enter a reply.\",\"COMMENT_GUIDELINES\":\"Comment Guidelines\",\"COMMENT_GUIDELINES_LINK\":\"http://help.yahoo.com/kb/index?locale=en_US&amp;page=content&amp;y=PROD_NEWS&amp;id=SLN2292&amp;actp=lorax&amp;pir=sgThvDBibUlVBwQ77qBOZu1fJICb_UIEjC14XlTbRKwcr5qZR3LfcNHy2DWcKRq.ykcYYEFeWkgOMhrsfkFQuykaqmSci9xLOy.kWkpFEtc-\",\"SIGN_IN_POST_COMMENT\":\"Sign in to post a comment.\",\"PLEASE_SIGN_IN\":\"Please sign in.\",\"SIGN_IN_POST_REPLY\":\"Sign in to post a reply.\",\"REPORT_INTRO\":\"Sorry you didn't like this comment. Please provide a reason below.\",\"ABUSE_REPORT_SUCESS\":\"Report posted successfully\",\"PROMOTE\":\"Promote\",\"RESET_PROMOTION\":\"Reset promotion\",\"DEMOTE\":\"Demote\",\"RESET_DEMOTION\":\"Reset demotion\",\"REPORT\":\"Report\",\"CANCEL\":\"Cancel\",\"CLOSE\":\"Close\",\"DELETE\":\"Delete\",\"PLEASE_EXPLAIN\":\"Please explain (optional)\",\"ERROR\":\"An error has occurred; please try again later.\",\"EDITOR_TOOLTIP_PROMOTE\":\"When you promote a comment, the entire thread is sent to the top of the 'Top' comments view. If you promote more than one comment thread, the most recent appears on top. Promoted comments appear below any thread that an editor has commented on or replied to.\",\"EDITOR_TOOLTIP_DEMOTE\":\"When you demote a comment, the entire thread (including replies) is sent to the bottom of the 'Top' comments view. The most recently demoted comments appear on the bottom.\",\"MY_COMMENTS\":\"My Comments\",\"REACTIONS\":\"reactions\",\"REACTION_TEASER\":\"What's your reaction?\",\"JOIN_NEWSROOM\":\"Join the conversation on the Yahoo App.\",\"INSTALL\":\"Install\",\"NO_USER_MESSAGE\":\"You do not currently have any comments\",\"REACTION_COUNT\":\"{commentCount} Reactions\",\"SHARE_YOUR_REACTION\":\"Share your reaction\",\"DOWNLOAD\":\"Download\",\"JOIN_YAHOO\":\"Join the conversation on Yahoo app.\",\"VIEW_SHARE_ACTIONS\":\"View all share actions (sighted users only)\"},\"transport\":{\"xhr\":\"/_td_api\"},\"context\":{\"bucket\":\"\",\"crumb\":\"kKRPyOdAXGG\",\"device\":\"desktop\",\"lang\":\"en-US\",\"region\":\"US\",\"site\":\"gma\"}};&lt;\/script&gt;&lt;script&gt;if (YMedia &amp;&amp; YMedia.Stencil &amp;&amp; YMedia.Stencil.initAll) {YMedia.Stencil.initAll(\"#applet_24053652936908468\");}&lt;\/script&gt;&lt;script&gt;if (YMedia &amp;&amp; YMedia.ApeApp &amp;&amp; YMedia.ApeApp.initApplet) {YMedia.ApeApp.initApplet(\"24053652936908468\",true);}&lt;\/script&gt;\r\n--dali-response-split\r\nContent-Type: text/html; charset=utf-8\r\n\r\n&lt;div id=\"applet_24053652936908468\" class=\"App_v2 js-applet\" data-i13n=\"auto:true;sec:cmmts\" data-i13n-sec=\"cmmts\" data-applet-guid=\"24053652936908468\" data-applet-type=\"td-applet-canvass\"&gt; &lt;div class=\"App-Bd\"&gt; &lt;div class=\"App-Main\" data-region=\"main\"&gt; &lt;div class=\"js-applet-view-container-main\"&gt; \n \n \n \n &lt;form id=\"reply-form\" class=\"reply-form Dn\"&gt;\n \n &lt;div class=\"login-cta\"&gt;&lt;a href=\"#comments\" class=\"login-link rapidnofollow\" data-ylk=\"itc:1;elm:btn;outcm:sign-in;\"&gt;Sign in to post a reply.&lt;/a&gt;&lt;/div&gt;\n \n&lt;/form&gt;\n\n &lt;form class=\"abuse-form Dn\"&gt;\n &lt;div class=\"abuse-caret\"&gt;&lt;/div&gt;\n &lt;div class=\"intro\"&gt;Sorry you didn't like this comment. Please provide a reason below.&lt;/div&gt;\n &lt;div class=\"container\"&gt;\n &lt;label class=\"placeholder-label Dn\"&gt;Please explain (optional)&lt;/label&gt;\n &lt;div class=\"expandingArea active Pos-r\"&gt;\n &lt;pre class=\"M-0 P-6 Bgc-t\"&gt;&lt;span name=\"reason-mirror\"&gt;&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;\n &lt;textarea rows=\"1\" name=\"reason\" class=\"M-0 P-6 Bgc-t Bxz-bb Bxsh-n W-100 Bdrs-0\" placeholder=\"Please explain (optional)\"&gt;&lt;/textarea&gt;\n &lt;/div&gt;\n &lt;div class=\"alert-list error-box P-10 Dn\"&gt;&lt;/div&gt;\n &lt;div class=\"new-abuse-controls\"&gt;\n &lt;button type=\"button\" class=\"report-btn Btn Fz-m Primary Fl-end Mt-0 Mb-0 C-button\"&gt;Report&lt;/button&gt;\n &lt;button type=\"button\" class=\"show-abuse-form cancel-btn Btn Fz-m Primary Fl-end Mend-4 Mt-0 Mb-0 C-button\"&gt;Cancel&lt;/button&gt;\n &lt;button type=\"button\" class=\"show-abuse-form close-btn Btn Fz-m Primary Fl-end Mend-4 Mt-0 Mb-0 Dn\"&gt;Close&lt;/button&gt;\n &lt;div class=\"Cl-b\"&gt;&lt;/div&gt;\n &lt;/div&gt;\n &lt;div class=\"Cl-b\"&gt;&lt;/div&gt;\n &lt;/div&gt;\n&lt;/form&gt;\n\n &lt;form class=\"delete-form Dn\"&gt;\n &lt;div class=\"abuse-caret\"&gt;&lt;/div&gt;\n &lt;div class=\"intro\"&gt;Are you sure?&lt;/div&gt;\n &lt;div class=\"container\"&gt;\n &lt;div class=\"alert-list error-box P-10 Dn\"&gt;&lt;/div&gt;\n &lt;button type=\"button\" class=\"delete-btn Btn Fz-m Primary Fl-end Mt-0 Mb-0 C-button\"&gt;Delete&lt;/button&gt;\n &lt;button type=\"button\" class=\"show-delete-form Btn Fz-m Primary Fl-end Mend-4 Mt-0 Mb-0 C-button\"&gt;Cancel&lt;/button&gt;\n &lt;div class=\"Cl-b\"&gt;&lt;/div&gt;\n &lt;/div&gt;\n&lt;/form&gt;\n\n \n &lt;div id=\"tooltip-login\" class=\"Dn\"&gt;&lt;div class=\"P-20\"&gt;&lt;a href=\"#comments\" class=\"login-link rapidnofollow\"&gt;Please sign in.&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;\n &lt;div id=\"tooltip-rating-failed\" class=\"Dn\"&gt;&lt;div class=\"P-20\"&gt;Rating failed. Try again.&lt;/div&gt;&lt;/div&gt;\n &lt;div id=\"tooltip-request-failed\" class=\"Dn\"&gt;&lt;div class=\"P-20\"&gt;Request failed. Try again.&lt;/div&gt;&lt;/div&gt;\n &lt;div id=\"tooltip-promoted-comment\" class=\"Dn\"&gt;&lt;div class=\"P-10\"&gt;We will promote constructive and witty comments to the top, so everyone sees them!&lt;/div&gt;&lt;/div&gt;\n \n&lt;div id=\"all-comments-view\" class=\"td-applet-canvass desktop top-border Pos-r My-20 C-line\"&gt;\n &lt;div class=\"comments-failed error-box P-10 Dn\"&gt;Sorry, we can’t load comments right now. Try again.&lt;/div&gt;\n &lt;button class=\"view-comments Btn Ta-start Mt-10 Bdtrrs-0 Bdtlrs-0 Dn C-news rapid-noclick-resp\" data-ylk=\"slk:Comments;\"&gt;&lt;i class=\"Icon-Fp2 IconComments Va-tt Mend-6 text-bubble\"&gt;&lt;/i&gt;&lt;span class=\"label\"&gt;Comments&lt;/span&gt; &lt;span class=\"comment-count-label\"&gt;(10580)&lt;/span&gt;&lt;/button&gt;\n &lt;form class=\"comment-form Pt-8 Dn\"&gt;\n \n &lt;div class=\"login-cta\"&gt;&lt;a href=\"#comments\" class=\"login-link rapidnofollow\" data-ylk=\"itc:1;elm:btn;outcm:sign-in;\"&gt;Sign in to post a comment.&lt;/a&gt;&lt;/div&gt;\n \n&lt;/form&gt;\n\n &lt;div class=\"applet-container Dn Pos-r Pt-8\"&gt;\n\n &lt;div class=\"all-comments Pos-r \"&gt;\n \n &lt;ul class=\"sorting-tabs\"&gt;\n &lt;li class=\"selected C-line\"&gt;\n &lt;a href=\"#comments\" class=\"sort-option rapidnofollow\" data-sort-type=\"popular\" data-ylk=\"elm:cmmt_sort;itc:1;\"&gt;Top&lt;/a&gt;\n &lt;/li&gt;\n &lt;li class=\"C-line\"&gt;\n &lt;a href=\"#comments\" class=\"sort-option rapidnofollow\" data-sort-type=\"createdAt\" data-ylk=\"elm:cmmt_sort;itc:1;\"&gt;Latest&lt;/a&gt;\n &lt;/li&gt;\n &lt;li class=\"sort-fail Dimmed Fl-end Dn\"&gt;\n Retry sort\n &lt;/li&gt;\n &lt;/ul&gt;\n \n \n &lt;ul class=\"comments-container\" data-context-id=\"4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c\"&gt;&lt;/ul&gt;\n &lt;/div&gt;\n &lt;/div&gt;\n\n \n &lt;button class=\"refresh-comments Btn Ta-start Mt-0 W-100 Bdtrrs-0 Bdtlrs-0 Dn\"&gt;&lt;div class=\"refresh-bubble D-ib P-10 Bdrs-100\"&gt;&lt;span class=\"sprite refresh-bubble Pos-r\"&gt;&lt;/span&gt;&lt;/div&gt; &lt;span class=\"label\"&gt;Refresh comments&lt;/span&gt;&lt;/button&gt;\n &lt;button class=\"refresh-comment-activity Btn Ta-start Mt-0 W-100 Bdtrrs-0 Bdtlrs-0 Dn\"&gt;&lt;div class=\"refresh-bubble D-ib P-10 Bdrs-100\"&gt;&lt;span class=\"sprite refresh-bubble Pos-r\"&gt;&lt;/span&gt;&lt;/div&gt; &lt;span class=\"label\"&gt;Refresh comment activity&lt;/span&gt;&lt;/button&gt;\n&lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class=\"App-Ft Row\"&gt; &lt;/div&gt;&lt;/div&gt;\r\n--dali-response-split--\r\n"
+ });
+ });
+ </script>
+ <script>
+ YMedia.use("media-rmp", function(Y) {
+ Y.Media.RMP.load({
+ srcNode: "#td-applet-stream_container",
+ continueOnError: true,
+ response: "\r\n--dali-response-split\r\nContent-Type: text/plain\r\nRMP-Embed-Location: inline-bottom\r\n\r\n&lt;script&gt;YMedia.applyConfig({\"groups\":{\"td-applet-stream\":{\"base\":\"https://s1.yimg.com/os/mit/td/td-applet-stream-0.0.1319/\",\"root\":\"os/mit/td/td-applet-stream-0.0.1319/\",\"combine\":true,\"filter\":\"min\",\"comboBase\":\"https://s.yimg.com/zz/combo?\",\"comboSep\":\"&amp;\"}}});&lt;\/script&gt;&lt;script&gt;window.Af=window.Af||{};window.Af.bootstrap=window.Af.bootstrap||{};window.Af.bootstrap[\"24106666305898690\"] = {\"applet_type\":\"td-applet-stream\",\"models\":{\"stream\":{\"yui_module\":\"td-applet-stream-model\",\"yui_class\":\"TD.Applet.StreamModel\",\"data\":{\"ccode\":\"\",\"more_items\":[{\"type\":\"unknown\",\"id\":\"eb7ab622-5a9b-3641-888a-a4c659308e74\"},{\"type\":\"unknown\",\"id\":\"104435d7-badb-31e1-862d-1580be23da1b\"},{\"type\":\"unknown\",\"id\":\"4816afe9-bf6f-39fa-a89b-6188b5df1d79\"},{\"type\":\"unknown\",\"id\":\"da225003-a64b-322a-b6d8-524b798768d2\"},{\"type\":\"unknown\",\"id\":\"d3166eb1-5125-3056-8014-44ce879cfe55\"},{\"type\":\"unknown\",\"id\":\"5dd7ddfc-e040-3096-9b14-6e6d717ab456\"},{\"type\":\"ad\",\"id\":\"32565576379\",\"title\":\"More Speed, More Devices\",\"link\":\"https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=f.DmDIUGIS9E1a0V63uAg6RFP_p_IeciM2EnRAHvFBx_Oy0_JmPs6z5JHmPJi3x9URe4NADiT5vDN3XcKCSjZCJklvGDVayOYKLN4Tx22zlSs4ULtw6cRAtHWVoIgQvUVUaNpsZ918M9wiZ.SncLHO0T43AS1hSn3_YTc77i9iBD_fTZTTq3.SD4AqiOu2qxhD0tRA5Z6a9aZvku_JEyVxtvA4zLeoCR4j86E6Ebd2kT6wtnyLgjUw5EGpcx.NnjzjEuRNw.KPcCbMLjEeBYCpdY1PXP7.JO2i2eboMr8K5rjw66W8diCVgzlGdR606b9PPWUokiHIQ8.5IMHVRni93U9CBOZhG.yvPrlRsxMVSFEhx.N6tZ4CBgZsfG26kXlhlGekP4Lc8LBqhvM4P17Co78TZ25QVeZ4w2GLVlyKZNSR4n4QEtU5bcdrFPeTuwoDEc64Rp0495cZ4g2ZPksUmjM7._GExECoYXHKr_x5CDKSFg0qCAmg--%26lp=https%3A%2F%2Fad.doubleclick.net%2Fddm%2Fclk%2F310423374%3B138038743%3Bz\",\"publisher\":\"Time Warner Cable® Spectrum®\",\"beacon\":\"https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&amp;es=QqGnBUMGIS.qqtyniTitpVUX5Ko0MWdu34u7UuboxN1yiFO6jRBuqUaUZPzv3wt3b.c9xkgxc4Mv3AClkU4t11ylgY2NFnXZKCWDW75fXA3KtAZeBKaRAGpU.qfUKosaKHtBZ1SExmkXIXepaj2_mQClohXwGMXno8YaGXsFArOSFp4bSq2WjQlgVl.iKZGe2Kak9Tbm1pR7bwZZqWQUrKbX1RCZsayMYDTUIqZ6o6f4v9.vyGn.BXB3eZ.TZWTCWBehIsBR3jNwL8O0T59GDTikibE0N11N2mfTwwZ1Sy_gutSO9KPQMH0diU8XOEU9sQj7qoLa0JZjAzCHTJazAA7laUu5sShqfvqQy72uQEa0w2dSqjwdyMnI7KRTFtZEmpNQ35RtLUuf5jZPFwLtEQ--&amp;ap=31\",\"imprTrackingUrl\":\"https://ad.doubleclick.net/ddm/ad/N7607.153730.YAHOOINC.DISPLAY/B9297688.138027025;sz=1x1;ord=1481706596;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=?\",\"full_template\":\"ad\",\"image\":{\"url\":\"https://s.yimg.com/uu/api/res/1.2/E9WH2l5TLIKEpKqtKMZCBw--/YXBwaWQ9eXRhY2h5b24-/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/949fa4775409a16e5f31d75a78996f25.jpeg\",\"height\":82,\"width\":82},\"summary\":\"With speeds starting at 60 Mbps, choose the speed you need. Unlimited bandwidth with no data caps.\",\"adChoicesUrl\":\"https://info.yahoo.com/privacy/us/yahoo/relevantads.html\",\"i13n\":{\"cpos\":1,\"bpos\":1,\"cat\":\"LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a\",\"t1\":\"a3\",\"t2\":\"strm\",\"t3\":\"ct\",\"ad\":1,\"elmt\":\"ad\",\"g\":\"32565576379\",\"ct\":1,\"pkgt\":4}},{\"type\":\"unknown\",\"id\":\"04f6be74-8fe5-37d9-8e22-67d48b82a600\"},{\"type\":\"unknown\",\"id\":\"dc5724d9-247e-38bf-80d2-ca5fe4f52fdd\"},{\"type\":\"unknown\",\"id\":\"0777186c-e015-361d-b61b-f3a8948a2463\"},{\"type\":\"unknown\",\"id\":\"b66df7ef-1bcd-36f2-a081-19cece0517f0\"},{\"type\":\"unknown\",\"id\":\"f89c8a18-25a1-32d5-8aec-b847b75be056\"},{\"type\":\"unknown\",\"id\":\"39106e51-cf78-335b-b54a-330afca900c3\"},{\"type\":\"ad\",\"id\":\"32561211946\",\"title\":\"Living abroad? Start banking with HSBC Expat\",\"link\":\"https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=koGUksQGIS_c4ETP_24_9b6w3tPtULLGqa7LZy.NCM5TdPERdwqnJb9qshnDGLhRHlSs_2owmd..yLF9qjfN.StVId5bILqOIryXDQmi4CDrPvEskYLtDzJW.mqK9OzHIz8Mv0gxi5bVNtJ5ncccoY.sOmUFvCNGXSZ7diDaOEqCqkHHGdkDfv5Jt3EgfYAQ6OByBdpxbo3Iqh6EgN.idcpPLePiMwKEulMkSUflKdUto0IFKfVCEAgjLf7DtzQ.ZMJmbbyFanzjgIMgCrjDjzH.v5_iyJdoZ_xPqKjUkD6UbSzAnAjmEUn9PacCWwxdVnmZ4_oaoSOu07Vw24.3vFuHmTPz6Fymp_.pb3leGmtdXGSaWZRlqmbSgeWI0G15E8LGzFAOmYM3unya2Wiabwau8B5QaLZLqeeVMYB.xpsFm7.pTktLmCzVZiYwFK4evhTkeKBOfANGBGiy9afpthXkFHKsqkwIA5kiMZDUt.zL68P6XmWF67zYo7.AuqSzqnA-%26lp=https%3A%2F%2Fad.doubleclick.net%2Fddm%2Fclk%2F313453516%3B141218845%3Ba\",\"publisher\":\"HSBC\",\"beacon\":\"https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&amp;es=tEviJpoGIS_G.MOpOojyL.KcCu8ZK_4KBL.pk73NWFk3bXwqEfmx.1h86dpm8be7bliSJnLkMJx7xCnqop4qk4JnKZJ1Sy9ZjbEL3A7rZfEx19pfqDTVV0ygynGoec6ckGpDGUmdD12_5JXxw4NQ.Gwd7irNewqTw2Rwpm62bkU23JF6ZiTxoxqDw270oj7eYYqpZa52Qo.06QkdLZpo2uU3KjJFBk5vh1dkxCZXEcDWgO7cY5R6G.fDVKE_ZbyCOMWpso4Pv3u0wJj.qf7a0ymkGvddI8qiaZ0H6mQGQcrJpuXUHwrXXX_R69CKSQCcUPyiySJEvxQCgIn8xWolDk.RBP5pJ8LH3uYrluvP4NqGMivWrIcgqxzzu1X0BJwV.OYxfJyx4y1kPHoD_DeTdQVP.0y8Dg--&amp;ap=38\",\"imprTrackingUrl\":\"https://ad.doubleclick.net/ddm/ad/N1397.1933703YAHOOGEMINI/B8484393.141218580;sz=1x1;ord=1481706596;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=?\",\"full_template\":\"ad\",\"image\":{\"url\":\"https://s.yimg.com/uu/api/res/1.2/N64okSB27WabUpHAoBHrvA--/YXBwaWQ9eXRhY2h5b24-/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/29443a83c3a22a963a7bdfefc45d3af9.jpeg\",\"height\":82,\"width\":82},\"summary\":\"For a brighter outlook, a stronger footing, and a smoother journey. Start banking with HSBC Expat. Financial and other eligibility criteria apply.\",\"adChoicesUrl\":\"https://info.yahoo.com/privacy/us/yahoo/relevantads.html\",\"i13n\":{\"cpos\":2,\"bpos\":1,\"cat\":\"LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a\",\"t1\":\"a3\",\"t2\":\"strm\",\"t3\":\"ct\",\"ad\":1,\"elmt\":\"ad\",\"g\":\"32561211946\",\"ct\":1,\"pkgt\":4}},{\"type\":\"unknown\",\"id\":\"581fe28c-f4ea-3cc6-bc13-4d0bebcf19fc\"},{\"type\":\"unknown\",\"id\":\"e24bb956-b9a3-33f8-a39a-547ab8734a4f\"},{\"type\":\"unknown\",\"id\":\"c0cee6e9-1545-3a0d-9321-8a794d86a7c2\"},{\"type\":\"unknown\",\"id\":\"bf9e7a31-fa72-334e-a81a-04ac6061e1de\"},{\"type\":\"unknown\",\"id\":\"3b8f9e32-db1b-3790-91e2-60d1046f9f29\"},{\"type\":\"unknown\",\"id\":\"28aa0a71-ce91-38c8-8838-f6b07a44cfe4\"},{\"type\":\"ad\",\"id\":\"32520295560\",\"title\":\"4 Ways to Speed Up Your Mac Without Any Investment\",\"link\":\"https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=KrbMWtMGIS9sr80dDUiHYI4Jk4rlnofD.pwUsqLTdHl9bek6DkrfkwiDmj.ikfsPZnuK5PdFdb3ECUC9hJVMBpdoSfk6pTUocRM9WHFKlpecSCPXvcKwujUzhK.E29tS0vXQfFgOjNXxxXdSgjGhWDoTny5W0VOIjP7bT4t.66K35T_Cl9SlFqw5QwBoAuAEhApUnj8Rr0feQqEDwYYe2MqVNZrtyXbJSx10wV3RRk0HvQfrc9SorOxSRjS4HS_6bw6lBkTLqszq5WIBfUuGQdAOz2k2j6oszF0GkxC3fZ3rZlV1Fsv5TxtIfCbmeYYKjlvAK_9DCwpZYjUkExK_Oo21dA7X9_pEJ6IXmZnXd50NCjEcxBxPz7_4Ep5lqTobmzTK_HCYyYzfMgVSi2TyXM9iBPkCq9fnFnyTLwzt4d45q8Ox0P9Vdbo8rY3vRjyzxarmDR2iqcJJcVyL6rJNobvmJ7a7UVPnBLbpm_Ax2rgRy7oyrq1A4fOy40PLV6_UqcJ7tHucK.9uU0EmSZT56GTmyFcnxWk9XSPmK_WeVYqfw_hp6kn0h2bYIdxyqcnY495aRfdaj17k6RPrA5vaADL7eb0RwfFc9XOldVwaq9kFN7i8zbgeeYb4c7noJMkjkPkspqFAPqSh8ecuAQmz3XeckBvNYLQyWYmEE8uqEkdruWVxDOxT1NeVxFLsVM0zZGc-%26lp=http%3A%2F%2Fmackeeperapp.mackeeper.com%2Fparamss%3Dphexb1c9bcd8b5dbb1ac92989daf9b9cd2e8cb90e4dbd5cdd8daa2d1d7c4abdccec4e5e1d0dad3cdcfc0a7b291959db096ced2c0e9d7cad2dad8cfcc96a69992%26trt%3D29_31211156%26tid_ext%3Df_45-54_loading\",\"publisher\":\"MacKeeper\",\"beacon\":\"https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&amp;es=aks1kEEGIS9T5M1TLTEYF2YycuVjxLZgBKtPZdNRxlaPeU..3ISj6Wa.EhNr_.Nvu_DEsX45zEJeDoS_RLYl36iqJFJ5520GmeeWKS88O3ZZQ6oRUhQje8xg8KksOQzUqw.GU6Yy_UEWn97AhfVnwVn3G4scPnLCpiPgaXVZr.8DF7ogSyxz2yKM1DYmg0x_IARc90WF2sY5zzH5dk.qtePky3rDk8J61JGi_YfObggcM3z.YZtw9.56A18oyiMAycGad9wIoQSMHpZiRIjYV8i36MHk3q06y5TMT1q3wWWxVoodsAeoQBqlOW3Lh91nINZjlQZdU0zg_JxXW6yskwVi6iIXTpTpo9.d0Efp_Whz7XfKGciwQN.RFSRFT9HQy1GLWmkfheesh9ecNXWiOQ--&amp;ap=45\",\"full_template\":\"ad\",\"image\":{\"url\":\"https://s.yimg.com/uu/api/res/1.2/vJew6gXRmZqdCml87_PPzQ--/YXBwaWQ9eXRhY2h5b24-/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/b88ae2c6313c327c9d097a1709a41b10.jpeg\",\"height\":82,\"width\":82},\"summary\":\"Did you know how to Improve Your Mac Performance with only 4 Easy Steps ?\",\"adChoicesUrl\":\"https://info.yahoo.com/privacy/us/yahoo/relevantads.html\",\"i13n\":{\"cpos\":3,\"bpos\":1,\"cat\":\"LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a\",\"t1\":\"a3\",\"t2\":\"strm\",\"t3\":\"ct\",\"ad\":1,\"elmt\":\"ad\",\"g\":\"32520295560\",\"ct\":1,\"pkgt\":4}},{\"type\":\"unknown\",\"id\":\"0be85beb-c15d-329c-bd85-b31b66277603\"},{\"type\":\"unknown\",\"id\":\"fc35a2ce-3cd5-3258-a74b-733e0362f271\"},{\"type\":\"unknown\",\"id\":\"b119c432-abb8-3639-a2d4-8b6211e15a86\"},{\"type\":\"unknown\",\"id\":\"725c08fb-782d-31ec-ac1d-e088e4524eaf\"},{\"type\":\"unknown\",\"id\":\"42cd8607-b1e6-3238-bb99-47f2aa4ef046\"},{\"type\":\"unknown\",\"id\":\"0e737b4b-da64-3923-95dd-d54563851d8e\"},{\"type\":\"ad\",\"id\":\"32585892788\",\"title\":\"Overstock Clearance: Super-Soft Bamboo Sheet Set\",\"link\":\"https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=cIdFd18GIS91ydBQUg2_82XisltqwAkSxh0kvg8msrCxDN68Ci4XZBimfGqR5MlTu4rN9mJxYA1QQuDUrTMPk0.pPpyVeTtbNqdyZfcwpMIxib4TqFeTkLcyHOTNjrwzcjgexugUYmq89xcMovIr61OPh17mQMg2KWE.qZ5kOs_Gvj1R9Sg1jnZ0ilhd.zKK.QcvOLzMmXfCnHAE_PbvgIDW1fdxNEOGPrdrVEHAZVz7qChK0WIVlHUy5UpaJFu.q1Xfo0q6YhRLumNwfuvb3fCs8byUgz.ST_Q8_EO4nvJ8h9gaovICc0dL9EoJP3I3UsqG5At8cr8aYjEaL4eXkEsuhUfDJdPNKoA94d5odGWa2mcyuoIhQGhGXwWi8_SQ_qn.qY16xbDYqw62alHMgTIu8mP2WxDhCvfzaH50msB0kdcqOs96BCI7AgbYhogkBe7Lm0K4vn2oxwuqcUkbdlJX.4IhsaTfWby_eGsqtdOH4nczZXcQ0L3HAcTNzIfGwxfaUdMV_Dqdcic0jvxbiDLVtTBB7fqtOfoi_cyhrb0Oj3lDI_FkYuK.5Untii4g8V_I9Xkj10IfymeWu1dZMntCGjC4VJtOt80WoRPlJ16nVHDN5Rk6.c5r2pdXftTjASyAf95PPCZe8yV7N9fG47bumg9L337wnFAJNmImJ.TV0yW_Alqldh_gVSTC422hLF9cWplVJhyzCPdKtM8oDuoKJrRY_6s2FpXD7bFflwDPfg--%26lp=https%3A%2F%2Fjump.omnitarget.com%2Fb6fa00%3Faff_id%3D5958%26url_id%3D11916%26crid%3D32585892788%26cid%3D355587063%26src%3DOS_Sheets_1a_45%2B3P_searchBedSheets%26sub3%3D9183375565%26sub1%3DOverstock+Clearance%3A+Super-Soft+Bamboo+Sheet+Set%26sub2%3Dimage6%26sub3%3Dc%26sub4%3Dn\",\"publisher\":\"OpenSky\",\"beacon\":\"https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&amp;es=5BidTR8GIS9KZ.TQOlNMJEna7.8D7nZy3l3cTVBIb8X8IEdRvE6vVuOwqPqYHHLTOScJGHEzN1_E0JaB_J4ckp4a5ZPJKzvll8o8tceQUVIQLjbPcSdb9L_z_ybcPXyHjjKMeKHdDjKofXux37MQduUZiLiTaI9GJB8rMZrI16op5Ihehyr5VQdVfOeOvBVXTxZ6H6TgT5atzO4Jq6xEQiVgaG82a29E0jhydtG9mimDnYhC.IPO20VEKaMQML3mXJ23FvnjFBjubrDIohduYqK7TWw77sEOmlptWtgBJIUkR9rOzgliuG6jOoVAxKSx6Hcz2jD9iHoTIPzjVYrWdHnz6jeLhDuUPxbe4uCQOWPQW9cmaylSMA3afHyOzncqt04JLBTvgSsjfiURrg--&amp;ap=52\",\"full_template\":\"ad\",\"image\":{\"url\":\"https://s.yimg.com/uu/api/res/1.2/enHfHro9U2Ucw9DxI.vxyw--/YXBwaWQ9eXRhY2h5b24-/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/6bcdd87b50cd30fffec3fd80aff3fa40.jpeg\",\"height\":82,\"width\":82},\"summary\":\"This 4-piece set of super-soft 1800 Series Bamboo Fiber Bed Sheets continues to attract customers who seek the best in naturally luxurious linens.\",\"adChoicesUrl\":\"https://info.yahoo.com/privacy/us/yahoo/relevantads.html\",\"i13n\":{\"cpos\":4,\"bpos\":1,\"cat\":\"LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a\",\"t1\":\"a3\",\"t2\":\"strm\",\"t3\":\"ct\",\"ad\":1,\"elmt\":\"ad\",\"g\":\"32585892788\",\"ct\":1,\"pkgt\":4}},{\"type\":\"unknown\",\"id\":\"93da4fb0-d91e-351a-932e-8119e0af686a\"},{\"type\":\"unknown\",\"id\":\"70185af0-9710-3dd8-b876-2c34ad7fc91b\"},{\"type\":\"unknown\",\"id\":\"dcaf8152-b6eb-3a78-be84-8ccfb073dd88\"},{\"type\":\"unknown\",\"id\":\"16fd4ef2-3268-3e51-bb09-4706057157ed\"},{\"type\":\"unknown\",\"id\":\"0352721e-f85d-3672-92e7-bc097b02071a\"},{\"type\":\"unknown\",\"id\":\"677b2ef3-1622-3a97-8ab3-12ddeeaec2d9\"},{\"type\":\"ad\",\"id\":\"32515678924\",\"title\":\"Stormfall: The Strategy Game Phenomenon of 2016\",\"link\":\"https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=UX9aOowGIS.bHLqPIWy0071EZMeEpj2FQ2n2_yKi6AV63juyZmk2am.CUQY54rns38TnakHcEBSqn4vaHAI9l1xCJPS9_1.kvkkiLW.egKVvuEsfHKx_IS20En9aar47ZF1qSxFIOjGAT3FFuVfrY6MWDWfxDBar7NpcBazpM7ABy1aPzVzIIOeANVvh5w36RHJ..CCGMyKaf5aYRJgQmG5oOGqQc4O60nLNiL1_QjVexzoUiSoHH1idXAH.nX3Oko.mxFS8Zc8Imp4jNQHaDspDjJFtWXS5yImUPjZvb1V_8eWRzGGKsBvufydXcxpTw_L05zqb0NdUT5nsD8wRYavadQ7wTSvJ7gmNogzsDvT0oNjD_bbET8qnZasu0k_w2waIb4FTJwnmKk8CwNyGrqkss7G2.BjS2tFfdkeKB2RKgZ_0.OHFH_HYvWret_Hcl83JFhXTiLIn17soVcXaeqZYSYYvZ03sIdbrxHTgu7xm6nzgoIcxXjqaxMJDsa24Dk3OEAB2eR5FTmMNpVfQoOvkPToKO6sauN9k0pW5qkN8k1zleQh.cOff39z5Cqj_.jnQWvo8FY4B%26lp=http%3A%2F%2Fplarium.com%2Fplay%2Fen%2Fstormfall%2F004_dragon_hybrid_anim%3FadCampaign%3D97905%26adPixel%3Dyahoo%21%26publisherID%3D32515678924\",\"publisher\":\"Stormfall: Age of War\",\"beacon\":\"https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&amp;es=Asw9IwQGIS.vl7aZtR.BL6XC.ET8qeV3FcY.klL2yxWMRVUE0UxOJ63PJ9AZl7aMr6AEetzeMPQT_ygskM4HXVY_qrKWZEeKX4bS94aMHoZFA3ul3znj3De8awLR7Q3vcU69oID_o4vSpTx95PXRXMrdaMDpiwR_blX9EF0yGFQHxzBEhWRrPe4Q4F5VwhXnTkKQe2SP5jtOC9Z6xI117HNG3jSTcKdrIp453JjOq0EuZWx2dy8oauyo1gtn.LEcVVWFKVjFmhB63qvR.o50UcSAvetPLv1gmoSJVt4p_gzgTGr3_095YJVQ3nTZ84emVO7_bFFK3Mid3lAC3LCWBO76Wo0cXDkb4adnwb375NIIVM0iWCXW3Wf8QEKmwBMPCvxCuKEHswGv.1qGHEBVA9pMe3I-&amp;ap=59\",\"full_template\":\"ad\",\"image\":{\"url\":\"https://s.yimg.com/uu/api/res/1.2/JucO90sJ85vL77Xon7dM3g--/YXBwaWQ9eXRhY2h5b24-/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/d5fdc28d94833eb07380a7fbe1e7f47b.jpeg\",\"height\":82,\"width\":82},\"summary\":\"14 million players and growing. The game that might just take over your life\",\"adChoicesUrl\":\"https://info.yahoo.com/privacy/us/yahoo/relevantads.html\",\"i13n\":{\"cpos\":5,\"bpos\":1,\"cat\":\"LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a\",\"t1\":\"a3\",\"t2\":\"strm\",\"t3\":\"ct\",\"ad\":1,\"elmt\":\"ad\",\"g\":\"32515678924\",\"ct\":1,\"pkgt\":4}},{\"type\":\"unknown\",\"id\":\"941f4513-3231-3d3d-871e-e35b6951d642\"},{\"type\":\"unknown\",\"id\":\"0d329389-79bc-36d7-8139-0733d8ad7ef1\"},{\"type\":\"unknown\",\"id\":\"ab15b38c-ef72-37e6-a524-0da74371ef44\"},{\"type\":\"unknown\",\"id\":\"94ff5110-8f09-3dae-8001-b88498d6bec8\"},{\"type\":\"unknown\",\"id\":\"369bd05d-512a-3fbf-b869-47a90c6d78e1\"},{\"type\":\"unknown\",\"id\":\"98f8fae3-55bd-37d2-8a8b-f3fe0b5ecc1b\"},{\"type\":\"ad\",\"id\":\"32559487621\",\"title\":\"Skechers eGift Cards\",\"link\":\"https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=MWSHOboGIS9ygtSW4MUyvkkOnxJqOpyo2.pfdbtL0n6UTFwQe1aXPH76_rz5BGmLnaiW_.ksHwZyQgODUxoqm3OePIhZWV2.XtlPldyFWACmcByltTGtt5uZqPpHKEqeVtR0qMZYKC2SG3YTqb3gJqqTyUN5mm6ozOGmuIv6LH6gq6EHzD4N4WGPjsmEUuZRyZe2qygM_xvMJT4OsgyVFIUNNwoPxxNgtiVNDgBCoyo_IVPEN6ucTPK8iQXOJTG1NZCwI5_pYUPRTDhr_ABy6fwPEU2dCW522DfMJ8nfdzWGgr3AXJ1yaN2u5BQxHkFAxS0B5bhtaxU7MpxDVkTqdoQ2uG62lBAcgCtxA.SFtvbPBxtpqfNyjV..sBUZv6lUNcLsOBdZUzDyy.0DAWHIZiU9d1cPFG5Sti4t.RPGxWNGpHkwYlFZLFQz327zREWo8hRM.dB5LzL1gRyM3iStpAFGp2tcpq0tLUkzL8KW8BNYzZeQ0QOxBxIbQiXc0taQy_I8V6RdCs25wJrZ2PKqqHHN4j.C_UEtmF0GFZFaIz1kK3ERZpUm00V0JmQuI_PzsYv6ZkxjKttTVTYbF5ips9tbW_qo2HUtpDfs9n4AxLaFU9DoHlp3LUjiuMPuA9lWYKDm1vmIHU1rUy6yfsMoO4Vpwf1NhoRlRSEdA0OOMSabFK46AAR9uM3eqd.MxPiaZmpoFs9R3f_KxT1nq04R4I9ymZFTtOYEYf34_yDwYm7PvYhClVHNM89e.bWQWmYo66ghYvvcNVdiQ2S213GZYa2jXiXqXrHeRHe2TbfhsskhZoTep0dOqNQtkjrQXHIQclkF_UBMxund0gl4pElIT5saYgX0aBsGVrwwwVilj2zzOeOjmlG2cNJKYI0DsSWaFfZ7cNPWpNFfeCnMjfx96BE0dM9tmDT1JLWK17FeQVGAgzV.A_1ZCajnDCj.TQmCll6ulIeQIX1etCIfnJBvXDbYU.hG298ARqfif4.HNPA_nWzyyXEYNkZAcinrzbJ6ZEWjnAMfzEcZg9BKACWEv4TuX6iR6tZ2aHp0LHpu3wov34F9MHkBO_Y3.wkCsj4q1msdqw1pIhdrdw5.oqbZ1fQmXTM5LxvLJRYZ0eMaeISkV5B.s6C_9R.JK_XumDxP4khyXIjZr3JPLt2eXIZ54EvHZvfhTZjxgA--%26lp=http%3A%2F%2F1236.xg4ken.com%2Fmedia%2Fredir.php%3Fprof%3D713%26camp%3D44560%26affcode%3Dcr866653%26k_inner_url_encoded%3D1%26cid%3D32559487621%7C10356968%7C%26mType%3D%26queryStr%3D%26networkType%3Dn%26kdv%3Dc%26url%5B%5D%3Dhttps%253A%252F%252Fgiftcards.retailmenot.com%252Fstore%252Fskechers.com%253Futm_medium%253Dcpc%2526utm_source%253Dyahoogemini%2526utm_campaign%253D%255BPRODUCT_LAUNCH%255D_%255BGIFTCARD%255D_skechers.com_%255BY%255D_%255BEXM%255D%2526utm_content%253D%255BGIFTCARD%255D_skechers.com_Gift_Cards_%255BY%255D_%255BEXM%255D%2526utm_term%253D%2526SID%253D_kenshoo_clickid_%2526ch%253Dcpc_t\",\"publisher\":\"RetailMeNot/Skechers-Gift-Cards\",\"beacon\":\"https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&amp;es=BNInkYsGIS8qcYt81Ew_5iZSs6xIlA6gMKl1_q3IEZnO2_bBv6OmvkjSuDtdO9DaqX1tHmDgRj1GVsqLMI9KyekF9gkXEmRbxOPGQzSgN6a8ud7p0HIM47XIfWjUQBiq7xEgFcZ5YnFvUpvskLLe1RlakjG10GAW5M1RskzhZ1JMMx5srHN61Lc_NnhGRb64r66_lVnxZ_PWdrz5gKju1RyXfC5xPb68FSQok.iONJU6Xdas6RFm3yIhPlXs_t_YLnK_xPMOinxv1iK5Wvigwqym8RlIPmgoanOYrwLwv.ymcIhBAA7c4J5GDDZ9hhekX1v4K6WALt5EQES8SI3E8SsJubItQAK..VRYfXmZmWUd.XaNDLgnbmvJNNCkiC4zLyDNGb46a.8flurpazdeQyEz&amp;ap=66\",\"full_template\":\"ad\",\"images\":{},\"summary\":\"Save 7% On Skechers eGift Cards. Shop eGift Card Deals Now!\",\"adChoicesUrl\":\"https://info.yahoo.com/privacy/us/yahoo/relevantads.html\",\"i13n\":{\"cpos\":6,\"bpos\":1,\"cat\":\"LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a\",\"t1\":\"a3\",\"t2\":\"strm\",\"t3\":\"ct\",\"ad\":1,\"elmt\":\"ad\",\"g\":\"32559487621\",\"ct\":1,\"pkgt\":3}},{\"type\":\"unknown\",\"id\":\"300a0229-a569-3ecf-9efb-ef7d5c3a065d\"},{\"type\":\"unknown\",\"id\":\"fae64b07-089e-302f-9287-12aeec870133\"},{\"type\":\"unknown\",\"id\":\"b91f7bd3-a286-38b4-97da-869f0fef1d6d\"},{\"type\":\"unknown\",\"id\":\"ddf816c8-73d3-39d9-bb96-05a118d3ddec\"},{\"type\":\"unknown\",\"id\":\"1c7110e3-31e5-346a-acf9-4d7dad91f6a7\"},{\"type\":\"unknown\",\"id\":\"b771c20c-0423-301d-af26-869b1759d02f\"},{\"type\":\"unknown\",\"id\":\"f47bd8a4-6c26-3142-a4eb-5e3bfa644625\"},{\"type\":\"unknown\",\"id\":\"399003a3-0604-3ca5-80a4-48a79051aca8\"},{\"type\":\"unknown\",\"id\":\"31b2af5e-04be-3f64-bcd9-f595f5748c25\"},{\"type\":\"unknown\",\"id\":\"c8ab1c68-d2da-3c68-9d55-1390b48738bd\"},{\"type\":\"unknown\",\"id\":\"c18462c1-e1d8-39c5-a5f2-44c4a525cf91\"},{\"type\":\"unknown\",\"id\":\"44db57fc-fb58-30f2-9301-631f6d903506\"},{\"type\":\"unknown\",\"id\":\"087bcfb5-0949-32fa-b172-fa54e62126c8\"},{\"type\":\"unknown\",\"id\":\"fbb9a63b-689c-33d0-abeb-c5a9b2ad08da\"},{\"type\":\"unknown\",\"id\":\"25a3faac-497a-3b0e-982f-c3dd72d11cdb\"},{\"type\":\"unknown\",\"id\":\"0c5b34b2-f52d-3942-a62c-4fbde5178546\"},{\"type\":\"unknown\",\"id\":\"9c67a907-fd1c-3d3c-92b7-86beb10e055c\"},{\"type\":\"unknown\",\"id\":\"41b99b34-a6fb-3f0d-a1e6-b6f16eab793f\"},{\"type\":\"unknown\",\"id\":\"ca5b7596-5bb4-3931-82cc-91d6cb336f73\"},{\"type\":\"unknown\",\"id\":\"c0bd81b5-9846-3437-a2d9-5205f300c9f0\"},{\"type\":\"unknown\",\"id\":\"50f94c0b-01d8-3d80-a26a-f89f0c7c36a9\"},{\"type\":\"unknown\",\"id\":\"c81315db-7dec-3a8b-84f5-58bb59217a17\"},{\"type\":\"unknown\",\"id\":\"2c472fe8-5011-3ea8-87c0-3d91988f1eac\"},{\"type\":\"unknown\",\"id\":\"647722d5-f1c1-3c2c-8813-6371b3ee9320\"},{\"type\":\"unknown\",\"id\":\"282b6444-b0f0-3461-8ea3-df3bcf64309f\"},{\"type\":\"unknown\",\"id\":\"baa13091-0c21-3aa1-8c0b-ef2c89f4c4ab\"},{\"type\":\"unknown\",\"id\":\"220aab81-ec06-3f78-ba96-2452460c9971\"},{\"type\":\"unknown\",\"id\":\"87a14bd5-f4e0-39d2-81c0-dcf0f834040c\"},{\"type\":\"unknown\",\"id\":\"8a5ee802-457a-3a66-b568-e8b75f2bf10e\"},{\"type\":\"unknown\",\"id\":\"b86ea197-d640-3d2a-a071-575f8f06717d\"},{\"type\":\"unknown\",\"id\":\"3b5d8b66-29a0-3e89-88ca-969fe32c50d1\"},{\"type\":\"unknown\",\"id\":\"f96ce5ce-c32f-37d9-9796-07ea4d9f122d\"},{\"type\":\"unknown\",\"id\":\"e3a93745-0e58-397d-8bfb-ce2ac76fa9c8\"},{\"type\":\"unknown\",\"id\":\"a0c582ba-57b5-394d-875f-78c2f80286c3\"},{\"type\":\"unknown\",\"id\":\"33bed671-eb4e-3a55-a5b6-06afa95886c4\"},{\"type\":\"unknown\",\"id\":\"8aebd18a-b372-30ec-8aa6-ce81c7778a22\"},{\"type\":\"unknown\",\"id\":\"7f548721-1b3a-302f-8019-6588db38c1b4\"},{\"type\":\"unknown\",\"id\":\"d4381a3a-8758-3bcd-8eda-0d6123a0266e\"},{\"type\":\"unknown\",\"id\":\"502d484d-9fde-3e03-acc3-5945db2453c7\"},{\"type\":\"unknown\",\"id\":\"47c949c5-44c0-33e3-8b60-aef80637d21f\"},{\"type\":\"unknown\",\"id\":\"88419db3-e03a-3fe0-8c13-1273a445e1a2\"},{\"type\":\"unknown\",\"id\":\"65193091-483d-3852-967a-b94f8b82a646\"},{\"type\":\"unknown\",\"id\":\"b2083bcb-225f-35ee-a03f-50ec0b2b595a\"},{\"type\":\"unknown\",\"id\":\"cc71a808-2153-3bc8-8537-190921abc289\"}],\"continuation\":\"\",\"more\":86,\"enrichment_ids\":[],\"fetched\":24,\"stream_items\":[{\"type\":\"article\",\"id\":\"16f9f18d-d40a-313b-a0cd-070c86f36465\",\"title\":\"&amp;#39;Growing Pains&amp;#39; Star Alan Thicke Dead at 69\",\"link\":\"https://gma.yahoo.com/growing-pains-star-alan-thicke-dead-69-033106505--abc-news-topstories.html\",\"publisher\":\"Good Morning America\",\"images\":{\"square\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/sCg_Njmwgxk4FoyfmJyosg--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/gty-alan-thicke-er-161213_16x9_992.jpg\",\"defer\":1}},\"image\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/sCg_Njmwgxk4FoyfmJyosg--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/gty-alan-thicke-er-161213_16x9_992.jpg\",\"defer\":1},\"summary\":\"Alan Thicke, the actor best-known for his starring role in the 1980s sitcom &amp;quot;Growing Pains,&amp;quot; died Tuesday at age 69. A publicist for Thicke&amp;#39;s son, Robin, said the actor suffered a heart attack in Los Angeles. Born in Canada, Thicke enjoyed a successful career as a writer, producer and\",\"interestString\":\"WIKIID:Alan_Thicke|WIKIID:Growing_Pains|YCT:001000031|YCT:001000069|YCT:001000075|YCT:001000291\",\"i13n\":{\"cpos\":1,\"bpos\":1,\"cat\":\"LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a\",\"t1\":\"a3\",\"t2\":\"strm\",\"t3\":\"ct\",\"g\":\"16f9f18d-d40a-313b-a0cd-070c86f36465\",\"ct\":1,\"pkgt\":4},\"template\":\"default\"},{\"type\":\"article\",\"id\":\"ada486f6-2ab7-3c6c-ad90-0c1bfe85c059\",\"title\":\"Trump Picks Rep. Ryan Zinke for Interior Secretary\",\"link\":\"https://gma.yahoo.com/trump-picks-rep-ryan-zinke-interior-secretary-033106503--abc-news-topstories.html\",\"publisher\":\"Good Morning America\",\"summary\":\"President-elect Donald Trump today offered Rep. Ryan Zinke of Montana the job of secretary of the interior in his administration, senior Trump adviser Kellyanne Conway said on Fox News tonight.When reached by ABC News, a spokeswoman for Zinke declined to comment on whether he has accepted the position\",\"interestString\":\"WIKIID:Donald_Trump|WIKIID:Ryan_Zinke|WIKIID:Kellyanne_Conway|WIKIID:United_States_Secretary_of_the_Interior|YCT:001000661\",\"i13n\":{\"cpos\":2,\"bpos\":1,\"cat\":\"LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a\",\"t1\":\"a3\",\"t2\":\"strm\",\"t3\":\"ct\",\"g\":\"ada486f6-2ab7-3c6c-ad90-0c1bfe85c059\",\"ct\":1,\"pkgt\":3},\"template\":\"default\"},{\"type\":\"ad\",\"id\":\"32474069017\",\"title\":\"IFC Markets. Forex &amp; CFD trading\",\"link\":\"https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=_EyQATMGIS8JBPPVxp2hqZgyzs_01BpGtKX98b0BOXU67G4QpKxsgMsqA2wXXjzyf5QcUtnFvTwKfyDIgir2mMNxxFevzUTSjSd5W7V52uQJkEdOA7WPPTHXGdJfz3JuS2oEAXMezQ4DUlNT3EQohO0sENVDcRABda0CP70rfLiBc3N3o_3tAZK7j4oTkbVSZXECyJB9W_g_P2m8u4qPKqXyChjt8J1717PN83H5Ig1FsSR6XGCMTJQCRtKuR1r4h4.4FnTy2gL5UBbTdNN8owlSSuy9b3rMLCyJewIzqj_lPHqbxmTQuxHdZURQGsmsUjAINUY_7K.tAo0WQFvSK.6he4as5O8d.S0Ja5qdPkN3_T21MVycgPUntTVFNqBdDBCjEocCrk_02Afph6Ey7W6Hk1MdzstgG2sI0PQbGq6ApN1EdrOk2hpgC3jbABrZnsG4oTxbPjDB2OTz_93vOm8aYVEWI54E2gRWGwzRh_oNvX2eMBvQ6ScMdmn3jGyFkUsYicv9QwcRT5r0lxM_6Mgu.4VRMA59G6hHw9K1HcY8HPZdE84ZLEOHk2Jy2Jq._wNAApOp9_kt4c1qHBdQHO3B.cr29vczq0N2b0Lj5pmDQvHrUP3cuBn1hNMJtaG0wUeYXI0Ftw--%26lp=http%3A%2F%2Fwww.ifcmarkets.com%2Fen%2Fforex-cfd-trading%3Futm_source%3Dyahoo%26utm_medium%3Dcpc%26utm_term%3D%26utm_content%3Dexcellent_new%26utm_campaign%3Denglish_native_asia\",\"publisher\":\"IFC Markets\",\"beacon\":\"https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&amp;es=Zv7NRTwGIS9PlEDKmbZLuAyhnT_wOWxOvDc4UBcVLuBExQRZaXHv9Z_oIPzknzLPmTGCXnV3wmYYWEVJhUoFdEc2tGARbxdHvmOtAwUAmDG_nWE688ii8ZGs.CPhh0bzpZVIsqDiBE9dwz2PID5B6Xnxc_2eHpH6hHs5XpPVuygW.egEacfNgWn1_r5lKcS.2_5WP2OCRN6mFF522og1en7zpySl9LDc5oa8V7i1Mq5Lx_Ysp9aQc_s1NiJUqwRBkTz4VYKKQOmn4kyd93v3yTo0.dYBlVzTfUczkwQPGuMD8RyFSkhmhmSoNn4lObLCvcHySZAjv69j3ewOng73dudP.ut_BNJwHSWbb5_vV_qkA4IuUnw59mhRZHCvZGsWzAicFEoFman_ObiT8RVFe4MM&amp;ap=3\",\"full_template\":\"ad\",\"image\":{\"url\":\"https://s.yimg.com/uu/api/res/1.2/NKp6SzyjFLstHsK_F3XPng--/YXBwaWQ9eXRhY2h5b24-/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/a7e2aee2ff701ba5de82f3b1f5180f46.jpeg\",\"height\":82,\"width\":82},\"summary\":\"Excellent Conditions for Professional Trading! 500+ trading instruments. 2 regulations: CySEC and BVI FSC. 100% dividend adjustment on stock CFDs.\",\"adChoicesUrl\":\"https://info.yahoo.com/privacy/us/yahoo/relevantads.html\",\"i13n\":{\"cpos\":3,\"bpos\":1,\"cat\":\"LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a\",\"t1\":\"a3\",\"t2\":\"strm\",\"t3\":\"ct\",\"ad\":1,\"elmt\":\"ad\",\"g\":\"32474069017\",\"ct\":1,\"pkgt\":4}},{\"type\":\"article\",\"id\":\"f19aca0b-c4b8-3be7-8ce8-a23789fb7b96\",\"title\":\"Syrian Government Reportedly Kills Dozens of Civilians in Aleppo, Some &amp;#39;on the Spot,&amp;#39; UN Says\",\"link\":\"https://gma.yahoo.com/syrian-government-reportedly-kills-dozens-civilians-aleppo-spot-122713123--abc-news-topstories.html\",\"publisher\":\"Good Morning America\",\"images\":{\"square\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/zC1RIM0_sKKcJCXxKiG9eg--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/f0f8fa7a03e5920e4ca30b8ebb91481e\",\"defer\":1}},\"image\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/zC1RIM0_sKKcJCXxKiG9eg--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/f0f8fa7a03e5920e4ca30b8ebb91481e\",\"defer\":1},\"summary\":\"Eastern Aleppo has fallen, and military activities there have stopped, according to Russia&amp;#39;s United Nations ambassador. &amp;quot;The Syrian government has re-established control over eastern Aleppo,&amp;quot; Vitaly Churkin told the U.N. Security Council on Tuesday. Residents of eastern Aleppo told ABC\",\"interestString\":\"WIKIID:Aleppo|WIKIID:Council_of_Ministers_%28Syria%29|YCT:001000713|YCT:001000661\",\"i13n\":{\"cpos\":4,\"bpos\":1,\"cat\":\"LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a\",\"t1\":\"a3\",\"t2\":\"strm\",\"t3\":\"ct\",\"g\":\"f19aca0b-c4b8-3be7-8ce8-a23789fb7b96\",\"ct\":1,\"pkgt\":4},\"template\":\"default\"},{\"type\":\"article\",\"id\":\"da0a1fba-50dc-3111-b6f6-70dd528f4257\",\"title\":\"Founder of CorePower Yoga Trevor Tice Found Dead Under &amp;#39;Suspicious Circumstances&amp;#39; in California, Police Say\",\"link\":\"https://gma.yahoo.com/founder-corepower-yoga-trevor-tice-found-dead-under-021223966--abc-news-topstories.html\",\"publisher\":\"Good Morning America\",\"images\":{\"square\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/AT3Vo19rKmTTy1XMTa93Tg--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/HT-san-diego-death-scene-jt-161213_16x9_992.jpg\",\"defer\":1}},\"image\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/AT3Vo19rKmTTy1XMTa93Tg--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/HT-san-diego-death-scene-jt-161213_16x9_992.jpg\",\"defer\":1},\"summary\":\"The founder of CorePower Yoga was found dead under &amp;quot;suspicious circumstances&amp;quot; in a San Diego, Calif., home. The San Diego Police Department said it received a call for a welfare check at a home on Monday at about 12:15 p.m. Responding officers found a man identified as Trevor Tice dead inside\",\"interestString\":\"WIKIID:CorePower_Yoga|WIKIID:San_Diego_Police_Department|WIKIID:San_Diego|YCT:001000291|YCT:001000667|YCT:001000780|YCT:001000288\",\"i13n\":{\"cpos\":5,\"bpos\":1,\"cat\":\"LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a\",\"t1\":\"a3\",\"t2\":\"strm\",\"t3\":\"ct\",\"g\":\"da0a1fba-50dc-3111-b6f6-70dd528f4257\",\"ct\":1,\"pkgt\":4},\"template\":\"default\"},{\"type\":\"article\",\"id\":\"6470aced-4402-3388-b298-eb5e7fe6ea74\",\"title\":\"Woman Shares Her Journey From Fitness Competitor to Cancer Fighter: &amp;#39;I&amp;#39;m Learning to Love Myself Again&amp;#39;\",\"link\":\"https://gma.yahoo.com/woman-shares-her-journey-fitness-competitor-cancer-fighter-003315567--abc-news-topstories.html\",\"publisher\":\"Good Morning America\",\"images\":{\"square\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/frVBZVk9xOJiteGalRep8w--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/HT-cheyenne-clark-jt-161213_v4x3_16x9_992.jpg\",\"defer\":1}},\"image\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/frVBZVk9xOJiteGalRep8w--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/HT-cheyenne-clark-jt-161213_v4x3_16x9_992.jpg\",\"defer\":1},\"summary\":\"Cheyann Shaw, 23, has been documenting her journey from bikini fitness competitor to cancer fighter on social media to help raise awareness about the disease and to inspire others facing their own difficult battles. A photo recently posted to Instagram -- showing what Shaw&amp;#39;s body looked like before\",\"interestString\":\"YCT:001000395|YCT:001000427|YCT:001000441\",\"i13n\":{\"cpos\":6,\"bpos\":1,\"cat\":\"LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a\",\"t1\":\"a3\",\"t2\":\"strm\",\"t3\":\"ct\",\"g\":\"6470aced-4402-3388-b298-eb5e7fe6ea74\",\"ct\":1,\"pkgt\":4},\"template\":\"default\"},{\"type\":\"article\",\"id\":\"f113e675-474d-3951-9431-569dd45eb537\",\"title\":\"What Critics Are Saying About &amp;#39;Rogue One: A Star Wars Story&amp;#39;\",\"link\":\"https://gma.yahoo.com/critics-saying-rogue-one-star-wars-story-182413846--abc-news-celebrities.html\",\"publisher\":\"Good Morning America\",\"images\":{\"square\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/Rq7h_w4vZwH7jSc00hOMjw--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/27ec846c4c5aaa4323c702ed050d291a\",\"defer\":1}},\"image\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/Rq7h_w4vZwH7jSc00hOMjw--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/27ec846c4c5aaa4323c702ed050d291a\",\"defer\":1},\"summary\":\"&amp;quot;For sheer scene-stealing wow, though, you can&amp;#39;t beat Donnie Yen as Chirrut Imwe, a blind warrior monk, and Riz Ahmed as Bodhi Rook, a nutjob Imperial pilot now siding with the rebels. Best of all is Alan Tudyk as the voice of K-2S0, a security droid with a mouth on him,&amp;quot; he added. Vanity\",\"interestString\":\"WIKIID:Peter_Travers|WIKIID:Star_Wars|WIKIID:Rolling_Stone|YCT:001000031|YCT:001000076|YCT:001000075|YCT:001000079\",\"i13n\":{\"cpos\":7,\"bpos\":1,\"cat\":\"LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a\",\"t1\":\"a3\",\"t2\":\"strm\",\"t3\":\"ct\",\"g\":\"f113e675-474d-3951-9431-569dd45eb537\",\"ct\":1,\"pkgt\":4},\"template\":\"default\"},{\"type\":\"article\",\"id\":\"fb3d831c-9dab-36e1-9fe8-ca328b6d3041\",\"title\":\"Evangelical Leader Tony Perkins Blasts Rex Tillerson as Trump&amp;#39;s Pick for Secretary of State\",\"link\":\"https://gma.yahoo.com/evangelical-leader-tony-perkins-blasts-rex-tillerson-trumps-210816203--abc-news-topstories.html\",\"publisher\":\"Good Morning America\",\"images\":{\"square\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/AqmTwaPXfpyxvEePvI73qw--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/GTY-tony-perkins-01-as-161213_16x9_992.jpg\",\"defer\":1}},\"image\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/AqmTwaPXfpyxvEePvI73qw--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/GTY-tony-perkins-01-as-161213_16x9_992.jpg\",\"defer\":1},\"summary\":\"Perkins wrote in a blog post published Monday, “To hear that Donald Trump may be appointing a man who not only led the charge to open the Boy Scouts to gay troop leaders but whose company directly gives to Planned Parenthood is upsetting, at best.\",\"interestString\":\"WIKIID:Donald_Trump|WIKIID:Boy_Scouts_of_America|WIKIID:Rex_Tillerson|WIKIID:Tony_Perkins_%28politician%29|WIKIID:Planned_Parenthood|WIKIID:ExxonMobil|YCT:001000661\",\"i13n\":{\"cpos\":8,\"bpos\":1,\"cat\":\"LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a\",\"t1\":\"a3\",\"t2\":\"strm\",\"t3\":\"ct\",\"g\":\"fb3d831c-9dab-36e1-9fe8-ca328b6d3041\",\"ct\":1,\"pkgt\":4},\"template\":\"default\"},{\"type\":\"article\",\"id\":\"3ca4dab5-bb07-3a9b-a538-401da333f694\",\"title\":\"Kanye West Says He Discussed &amp;#39;Multicultural Issues,&amp;#39; Chicago Violence With Trump\",\"link\":\"https://gma.yahoo.com/kanye-west-meets-donald-trump-york-150850439--abc-news-topstories.html\",\"publisher\":\"Good Morning America\",\"images\":{\"square\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/lkAOQAcPGFRkIpuSQydxYQ--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/d9bc62c444ad53f08a514cee770a9862\",\"defer\":1}},\"image\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/lkAOQAcPGFRkIpuSQydxYQ--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/d9bc62c444ad53f08a514cee770a9862\",\"defer\":1},\"summary\":\"President-Elect Donald Trump met with rapper Kanye West at Trump Tower today, discussing &amp;quot;multicultural issues,&amp;quot; bullying and violence in Chicago, according to the rapper.Trump appeared to have a slightly different take on the meeting, saying the men &amp;quot;discussed life.&amp;quot;&amp;quot;We’ve been\",\"interestString\":\"WIKIID:Trump_Tower_%28New_York_City%29|YCT:001000661\",\"i13n\":{\"cpos\":9,\"bpos\":1,\"cat\":\"LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a\",\"t1\":\"a3\",\"t2\":\"strm\",\"t3\":\"ct\",\"g\":\"3ca4dab5-bb07-3a9b-a538-401da333f694\",\"ct\":1,\"pkgt\":4},\"template\":\"default\"},{\"type\":\"ad\",\"id\":\"32588460847\",\"title\":\"Apply for the 2017 US Green Card Lottery\",\"link\":\"https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=KM6PMZQGIS_d7tLRcAGm2SfAmkfgz_VFgJxeAhqA6c7Obp4g26tCZgIkylW2cJIvqP59JNT1I9.ooT8Z06wHYwXA38o2luemXMHyvykcaaxZuEPLFhP4JYrjWc.gsDbVBQeC1BnLTRGGHIIq4vL3gihT2Gty4zxwHAJNOgKEjWsqC3Wwyb6l8CtBy3lquirYoKN0q0H.UzEWr4iIRjzSTzHuZ42sc.rcfNhPw.rEYqCDV42lFyH_ILlVHfGtxI9iQv.bK8hkaW4khKiVkBSIVk03_9jzkBVHqLHq3ZF5YCuFBP9SO6GIYOECWmj3Ik8ItOJVP9caZshYlvfDTwobXMRsm5a4j33oQrYkrj6uazgvGfYkHptP6.sIrnISf2l0KafBuej27dgWlfe8Rt.k0vOdv_iZ9Lba5W4WDy3Zbj0U4ZrKUyMjPekc8QOnYVuLypaw1ScRYmq8HNUOYa12znlheghAqFOAl9bG0L0bxLnQQghx3dcu5rUSaqYBKZK_s2ZMqhVtIGgtfhPgSIGVRTvxYRFyxMyLliqY7bhVgqIep_FP6L0rj9CcfbG6Yd.gu2Mety.e39B1xWJBsu7fs1vFKzfFn5qnCRxTB8Jima0xbZJK%26lp=https%3A%2F%2Fwww.globalusagreencard.org%2Flanding_page%2Fv3%2F%3Futm_source%3Dyahoo_gemini%26utm_medium%3Dcontent%26lang%3Den-EN%26r%3DYG%26c%3Deast%26adg_id%3D32588460847\",\"publisher\":\"Global USA Green Card\",\"beacon\":\"https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&amp;es=uYfVWIsGIS93x286R7DeIk1ISkOlZdozdC1hQViI5Za.ImCfoSNpADpTc_Uv1dQVDlyAo3J9_4DtL5Z5qn.CbMKeGlv0dEMS4qXUGXiLzmNMBH34RAuLS80S8jWlOZcVYX2p9B37mnJNf91FVIGTUHvIau2v5FZaMkgagKug9xtFvbmtRezj_hL2aJ1IZ8y9IjKNcet4Ndggk6u6tUmmcgSkh0IZx8ZjMgGCtBX8hswt5xhChoiVu.f.TT187nj0trCCultodT4fH8Gg3JTEPS3z_Gr_EFvTfglRTYZDyrE0MS2My4hLzOfFV2G514.WxXF2hYlW0PAa6J50PxukCqIqvgiwjphciHvfjzm7K5k9EAvgULgkwEuMnMCB9kiQV92n9vRQhuXih9xMutWweizJ1AI-&amp;ap=10\",\"full_template\":\"ad\",\"image\":{\"url\":\"https://s.yimg.com/uu/api/res/1.2/GF1FscDQnXczQKoNSUFZYg--/YXBwaWQ9eXRhY2h5b24-/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/8a5b4113cc4325cb8be827aab4bba1aa.jpeg\",\"height\":82,\"width\":82},\"summary\":\"A US Green Card could be yours!\",\"adChoicesUrl\":\"https://info.yahoo.com/privacy/us/yahoo/relevantads.html\",\"i13n\":{\"cpos\":10,\"bpos\":1,\"cat\":\"LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a\",\"t1\":\"a3\",\"t2\":\"strm\",\"t3\":\"ct\",\"ad\":1,\"elmt\":\"ad\",\"g\":\"32588460847\",\"ct\":1,\"pkgt\":4}},{\"type\":\"article\",\"id\":\"48897845-e806-3216-b2ae-4213132dbf4e\",\"title\":\"Man Who Says Relatives Were Killed by US Drone Strike Heads to Federal Court\",\"link\":\"https://gma.yahoo.com/man-says-relatives-were-killed-us-drone-strike-164206896--abc-news-topstories.html\",\"publisher\":\"Good Morning America\",\"images\":{\"square\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/lsSVyqvn7P.UlvhuWHAlGA--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/gty-yemen-drone-faisal-bin-ali-jaber-jc-161212_16x9_992.jpg\",\"defer\":1}},\"image\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/lsSVyqvn7P.UlvhuWHAlGA--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/gty-yemen-drone-faisal-bin-ali-jaber-jc-161212_16x9_992.jpg\",\"defer\":1},\"summary\":\"Faisal bin Ali Jaber, a Yemeni man who claims he lost members of his family in a U.S. drone strike, was set to attend a U.S. appellate court hearing today regarding the alleged incident in what could become a landmark case. Jaber, an engineer, spoke to ABC News about the alleged drone strike, which\",\"interestString\":\"WIKIID:Barack_Obama|WIKIID:Ali_Jaber|WIKIID:Drone_strikes_in_Pakistan|YCT:001000661|YCT:001000713|YCT:001000780|YCT:001000720\",\"i13n\":{\"cpos\":11,\"bpos\":1,\"cat\":\"LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a\",\"t1\":\"a3\",\"t2\":\"strm\",\"t3\":\"ct\",\"g\":\"48897845-e806-3216-b2ae-4213132dbf4e\",\"ct\":1,\"pkgt\":4},\"template\":\"default\"},{\"type\":\"article\",\"id\":\"a5b99a73-2049-31d8-8698-d763766cc1f4\",\"title\":\"Veteran Who Received Life-Changing Double-Arm Transplant Shows Off Progress\",\"link\":\"https://gma.yahoo.com/veteran-received-life-changing-double-arm-transplant-shows-205806453--abc-news-topstories.html\",\"publisher\":\"Good Morning America\",\"images\":{\"square\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/Seiaq_unMwSR3jFTOwKZbQ--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/HT_arm_transplant_02_as_161005_16x9_992.jpg\",\"defer\":1}},\"image\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/Seiaq_unMwSR3jFTOwKZbQ--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/HT_arm_transplant_02_as_161005_16x9_992.jpg\",\"defer\":1},\"summary\":\"Just four months after undergoing a life-changing double-arm transplant, John Peck shared how far he has come by releasing a video of him being able to control his elbow. Peck shared a video on Monday in which -- with the help of a therapist -- he slowly and carefully practices moving his right elbow\",\"interestString\":\"WIKIID:John_Peck_%28Australian_rules_footballer%29|YCT:001000545\",\"i13n\":{\"cpos\":12,\"bpos\":1,\"cat\":\"LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a\",\"t1\":\"a3\",\"t2\":\"strm\",\"t3\":\"ct\",\"g\":\"a5b99a73-2049-31d8-8698-d763766cc1f4\",\"ct\":1,\"pkgt\":4},\"template\":\"default\"},{\"type\":\"article\",\"id\":\"e8961efb-8186-3082-ba8a-5b6154092ee3\",\"title\":\"Deck the Halls With These Awkward Family Holiday Photos\",\"link\":\"https://gma.yahoo.com/deck-halls-awkward-family-holiday-photos-195305687--abc-news-topstories.html\",\"publisher\":\"Good Morning America\",\"images\":{\"square\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/3yUy9V1KP5MOjyFABbF1Eg--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/2943a3aa244127daf2794fb1f63ec3a0\",\"defer\":1}},\"image\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/3yUy9V1KP5MOjyFABbF1Eg--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/2943a3aa244127daf2794fb1f63ec3a0\",\"defer\":1},\"summary\":\"Gathering together for holiday family photos can be fun, or it can be disaster. Perhaps Uncle Larry had too much eggnog, or Aunt Sally insisted on everyone wearing her hand-knit Christmas sweaters, or maybe the little kids just couldn’t handle smiling for a single shot. And if you haven’t giggled enough\",\"interestString\":\"WIKIID:Aunt_Sally|YCT:001000031|YCT:001000780|YCT:001000071\",\"i13n\":{\"cpos\":13,\"bpos\":1,\"cat\":\"LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a\",\"t1\":\"a3\",\"t2\":\"strm\",\"t3\":\"ct\",\"g\":\"e8961efb-8186-3082-ba8a-5b6154092ee3\",\"ct\":1,\"pkgt\":4},\"template\":\"default\"},{\"type\":\"article\",\"id\":\"fea9ada4-c1b7-3c58-bbea-8da308640f57\",\"title\":\"Hospital Cafeteria Worker Saves Thousands of Dollars to Buy Toys for Kids at Christmas\",\"link\":\"https://gma.yahoo.com/hospital-cafeteria-worker-saves-thousands-dollars-buy-toys-154543711--abc-news-topstories.html\",\"publisher\":\"Good Morning America\",\"images\":{\"square\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/NQZt7ctmogRo_g6ugUUKGw--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/c7aeb63563dc1722f6c98e3262acb445\",\"defer\":1}},\"image\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/NQZt7ctmogRo_g6ugUUKGw--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/c7aeb63563dc1722f6c98e3262acb445\",\"defer\":1},\"summary\":\"Jessie Tenyani has no children of her own, but for each of the past eight years, she has put away thousands of dollars from her paycheck as a hospital cafeteria worker to buy toys for kids for Christmas. Tenyani, 55, of Chicago, hand-picks the toys, as many as 1,000 each Christmas, and donates them\",\"interestString\":\"WIKIID:Christmas_club|WIKIID:Christmas|YCT:001000780|YCT:001000395|YCT:001000560|YCT:001001060|YCT:001001062|YCT:001000295\",\"i13n\":{\"cpos\":14,\"bpos\":1,\"cat\":\"LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a\",\"t1\":\"a3\",\"t2\":\"strm\",\"t3\":\"ct\",\"g\":\"fea9ada4-c1b7-3c58-bbea-8da308640f57\",\"ct\":1,\"pkgt\":4},\"template\":\"default\"},{\"type\":\"article\",\"id\":\"5a111841-a550-38c2-baa6-a719288d4a29\",\"title\":\"Video Captures Moment Police Drag Uncooperative Passenger off Delta Flight\",\"link\":\"https://gma.yahoo.com/video-shows-police-dragging-woman-off-delta-flight-193904310--abc-news-topstories.html\",\"publisher\":\"Good Morning America\",\"images\":{\"square\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/0TVxONSnPzpWrgwJ700.Ew--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/HT-Woman-Off-Delta-Flight-MEM-161213_16x9_992.jpg\",\"defer\":1}},\"image\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/0TVxONSnPzpWrgwJ700.Ew--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/HT-Woman-Off-Delta-Flight-MEM-161213_16x9_992.jpg\",\"defer\":1},\"summary\":\"A video has surfaced showing an airport police officer dragging a passenger by her wrists face-up along a carpeted aisle to the front of a plane. The video then shows a second officer grabbing the passenger by the ankles to help lift her to the exit.The passenger was removed from the flight for failing\",\"interestString\":\"WIKIID:Delta_Air_Lines|WIKIID:Airport_police|YCT:001000667|YCT:001000992\",\"i13n\":{\"cpos\":15,\"bpos\":1,\"cat\":\"LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a\",\"t1\":\"a3\",\"t2\":\"strm\",\"t3\":\"ct\",\"g\":\"5a111841-a550-38c2-baa6-a719288d4a29\",\"ct\":1,\"pkgt\":4},\"template\":\"default\"},{\"type\":\"article\",\"id\":\"3c72182d-1f31-31f6-8fda-6916938be05f\",\"title\":\"Wife Creatively Includes Deployed Air Force Husband in Family Christmas Card\",\"link\":\"https://gma.yahoo.com/wife-creatively-includes-deployed-air-force-husband-family-183904735--abc-news-topstories.html\",\"publisher\":\"Good Morning America\",\"images\":{\"square\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/y9wkR2ZsvhhQzjh91lRgRA--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/c67e407fc84680e75ba8dcd4af3c2e55\",\"defer\":1}},\"image\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/y9wkR2ZsvhhQzjh91lRgRA--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/c67e407fc84680e75ba8dcd4af3c2e55\",\"defer\":1},\"summary\":\"Ain’t no mountain high enough, ain’t no valley low enough, ain’t no river wide enough to keep this military wife from including her deployed husband in their family Christmas card. Ashley Sistrunk was feeling a bit down after seeing all her friends’ family holiday photos on Facebook, so she came up\",\"interestString\":\"WIKIID:Christmas_card|WIKIID:Christmas|WIKIID:Facebook|YCT:001000780|YCT:001001062\",\"i13n\":{\"cpos\":16,\"bpos\":1,\"cat\":\"LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a\",\"t1\":\"a3\",\"t2\":\"strm\",\"t3\":\"ct\",\"g\":\"3c72182d-1f31-31f6-8fda-6916938be05f\",\"ct\":1,\"pkgt\":4},\"template\":\"default\"},{\"type\":\"ad\",\"id\":\"32572483510\",\"title\":\"Cyber LG Stylo 2 Deal\",\"link\":\"https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=1Vg_vM8GIS_jYbYOgkZwvFcEzB9pYLoQHDL4ZHqI.C9U4KSUiJIz5WAZWJ21cEn9R5MRZ77c2A_YsTspV1WODtvJY2wjlAFCuaNwUw5QjzcgCOo71IkkFQsbr.UaQLOID5DzN3eqhX9UhOme.BWfoyWYMmiLAhpoOYMdUbFUHYdGhSDeWNLfz3mQNg8KUUHy.DMrRqMAf9tMwawHwabEL9dsMG4zG__W0NAhtQ7M9iygHtRVNyYgkeoNqwDKi2O4aq_4dq_s2xVmSq30FEeaJ2BBxLD9mFJdkColTLJSi8Qv7FXkHdgERIeHh8D4s4x1vSybJycTqwVS4Kd0gyj4RjGC7TQGEqZJ4QjX8WudfdrgAvY934zbe3_uec9rKPD6WhPqBXObktwzO0uBqy6ukKCeaI5dZ.P3D7cEZhYfSznK0Rjr_eo3kp13rOVYi.tDzFbfRvEi_02PLSN9bjdlnnlkhMJvsSs0rS_6u0aDhuUDjE_0Tv9BzsAVx8iFYE6psri5G7aOCQuiwOW0ohNiec9qM08q_LufKVYHh8yauT3mpPyd16yQXt_EedFjE0q6Nx3VoECkd4l7_IxlbvvpW2cRJ5f0XZZcYPNAAx2ZnHusfv_D.s76TFqHaA8raOvijxnGbTPG1vaqYH_08Mjij8bRzZ1ybameGnDclan37cKQTCvLjrXa0zGBZ1ROkwanmFqlLr5nNQ2LV.ey3nzUq0DTDZ2fB7572R65FcuOUoIY74sABMqSqCLubeBfD2SR7fFl6BuPvwEJDQ5AWU58as6YG_iICUXdB_y4QROTmbK9Yx0vAnPq4aABb3ALRn49rU0.ex2REO5GfZAqgbybwkvNmVM9MoUNWCfaWGkJ9bsoDamiGRINy6MtsBOD7yBlGaD7BJyir7Exn5a1fnnd06i.wG1G3Ee4_R.T2gSFwegVkAIsBmVj9ukYh3.8hi2E2jwoI0u7NctdBeTI3Mgi3xyPZKNMVxDuj6j6gVkU08IDtRgIKL94eOJr351fMk3fTtDw40SIo3O4i2vfu_LfOyRgP_gku0dVSJcgNxzCgg0FIg8gTkeTDdI1TdNM9Pei0sPOiInzU5mxoUwFi6NRPlqpYyaMBx7CuBuGrLZIJo4nWLiyBgrEJEtvpLpbWMK4KpFOw4n8YIxSp35Wcn8vEmTAsDoZH1ArNWBiNiFL2QvlNSzBvWHMLiosv4zETWMC3H5RTyc6ISnPYyP.0U_5TLG77eokuxnxgXk3fegWJBA-%26lp=http%3A%2F%2Fbs.serving-sys.com%2FServing%2F%3Fcn%3Dsearch%26semdid%3D7_353219189_9113774098_lfrv2jCE%26semid%3D1%26seid%3D7%26semuserid%3D%26advid%3D108226%26mmx%3D%24%24sekwid%3D%26seadid%3D32572483510%26sekwtxt%3D%26matchtype%3D%24%24%26semdata%3D%24%24mkwid%3Dlfrv2jCE_32572483510___c%26mtid%3D744he937470%24%24%26urtu%3Dhttp%253A%252F%252Fd.agkn.com%252Fpixel%252F7636%252F%253Fatr%253D%2526col%253D37470%252C103%252C103353219189%252C%252C%252C%2526l0%253Dhttps%253A%252F%252Fwww.cricketwireless.com%252Flg-cyber-deals.html%253Fwoo_campaign%253DSEM%2526woo_source%253DYAHGEM_PPC%2526woo_medium%253Dkeyword%2526woo_content%253DQ4%252BHeavy-Up_TMobile%252BCustomers%2526woo_term%253D\",\"publisher\":\"Cricketwireless.Com/LGG2\",\"beacon\":\"https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&amp;es=aVA0ALEGIS.2IGI6Mye0PdVFiCieLGgTjhXdf314JNtY_uhF1ag5aqnDFuvyJ0pHgrjBm7p0__mTpHzF2NK6M29l3rxhySqz6PuhUYFW1H7gVXs.tqRSTpkjOFaC32XasHxNwV1oC0wKHT4KhmkqME8RYFAppdIrDg0SWFzgAdRh6VJkae8yHbWffOKjHl3N6GdOEpljtzrv8whA856peHnxcViukLyIGGChTyBymXbTqEB67DcXJudhqbV6MrFEU.cZmSasO7wo_FxgzV5OFCqw3RKdDQNTzC5ces8L63_cGn0uGdp2fPWhTEg5vikPJwqN0L7Ac1jZ3FJ8uuErI0IZ0U_xw9L6mKgwD6sls_kjxDJ.WBC5m409.qATpP3hUQgHpjyxhwC6flzjbkU-&amp;ap=17\",\"full_template\":\"ad\",\"image\":{\"url\":\"https://s.yimg.com/uu/api/res/1.2/m_UyoICU1famxwC5nvD6LA--/YXBwaWQ9eXRhY2h5b24-/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/9807f365e14c7964db0ac90a6a8b4899.jpeg\",\"height\":82,\"width\":82},\"summary\":\"$49.99 Limited Time. Req’s New Line of Svc w/ Qual. Plan. See Details.\",\"adChoicesUrl\":\"https://info.yahoo.com/privacy/us/yahoo/relevantads.html\",\"i13n\":{\"cpos\":17,\"bpos\":1,\"cat\":\"LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a\",\"t1\":\"a3\",\"t2\":\"strm\",\"t3\":\"ct\",\"ad\":1,\"elmt\":\"ad\",\"g\":\"32572483510\",\"ct\":1,\"pkgt\":4}},{\"type\":\"article\",\"id\":\"2394698c-069b-3ef9-8e2b-7a14e5100aaa\",\"title\":\"How a Single Senate Republican Could Tank Rex Tillerson&amp;#39;s Nomination\",\"link\":\"https://gma.yahoo.com/single-senate-republican-could-tank-rex-tillersons-nomination-175313186--abc-news-topstories.html\",\"publisher\":\"Good Morning America\",\"images\":{\"square\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/9H79BlxjP4W46wnZg8ujkQ--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/498a37e3439ddb9a9f714dbb49f67656\",\"defer\":1}},\"image\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/9H79BlxjP4W46wnZg8ujkQ--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/498a37e3439ddb9a9f714dbb49f67656\",\"defer\":1},\"summary\":\"Marco Rubio is not the only Republican senator to express concerns about President-elect Donald Trump’s pick for secretary of state, Rex Tillerson, over his connections to Russian President Vladimir Putin. If all nine Democrats on the panel vote against Tillerson, they would need only one of the committee\",\"interestString\":\"WIKIID:United_States_Secretary_of_State|WIKIID:United_States_Senate_Committee_on_Foreign_Relations|WIKIID:United_States_Senate|YCT:001000661\",\"i13n\":{\"cpos\":18,\"bpos\":1,\"cat\":\"LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a\",\"t1\":\"a3\",\"t2\":\"strm\",\"t3\":\"ct\",\"g\":\"2394698c-069b-3ef9-8e2b-7a14e5100aaa\",\"ct\":1,\"pkgt\":4},\"template\":\"default\"},{\"type\":\"article\",\"id\":\"14c217dd-6b60-33df-b94d-5ffe857ccf54\",\"title\":\"Frito-Lay Drops Doritos Super Bowl TV Advertisements\",\"link\":\"https://gma.yahoo.com/frito-lay-drops-doritos-super-bowl-tv-advertisements-145007590--abc-news-topstories.html\",\"publisher\":\"Good Morning America\",\"images\":{\"square\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/x21gttFHX..Ch3MxLkSlvA--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/0dbce825690bb482e81a8a91c43e3842\",\"defer\":1}},\"image\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/x21gttFHX..Ch3MxLkSlvA--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/0dbce825690bb482e81a8a91c43e3842\",\"defer\":1},\"summary\":\"Frito-Lay is closing the bag on its popular Doritos commercials for Super Bowl 2017. GoDaddy stepped out of 2016&amp;#39;s advertisements and Toyota has announced it will not run commercials during Super Bowl 51 on Feb. 5, also citing a marketing strategy.\",\"interestString\":\"WIKIID:Frito-Lay|WIKIID:Super_Bowl|YCT:001001126|YCT:001000002|YCT:001000001\",\"i13n\":{\"cpos\":19,\"bpos\":1,\"cat\":\"LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a\",\"t1\":\"a3\",\"t2\":\"strm\",\"t3\":\"ct\",\"g\":\"14c217dd-6b60-33df-b94d-5ffe857ccf54\",\"ct\":1,\"pkgt\":4},\"template\":\"default\"},{\"type\":\"article\",\"id\":\"48b9bac6-44bb-3433-80e3-5b1d3594e625\",\"title\":\"LeBron James &amp;#39;Humbled&amp;#39; by SI Sportsperson of the Year Award\",\"link\":\"https://gma.yahoo.com/lebron-james-humbled-si-sportsperson-award-172406720--abc-news-celebrities.html\",\"publisher\":\"Good Morning America\",\"images\":{\"square\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/rXzfDI6FRQC5bHBRohF0iQ--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/2057633e69d5e076b25a8a4c5f2ce4ef\",\"defer\":1}},\"image\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/rXzfDI6FRQC5bHBRohF0iQ--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/2057633e69d5e076b25a8a4c5f2ce4ef\",\"defer\":1},\"summary\":\"LeBron James was honored Monday night in Brooklyn, New York, at the annual Sports Illustrated sportsperson of the year event, which celebrated his commitment to his team, his sport and the city of Cleveland. Robin Roberts of &amp;quot;Good Morning America&amp;quot; caught up with James at the ceremony to discuss\",\"interestString\":\"WIKIID:LeBron_James|YCT:001000001|YCT:001000012\",\"i13n\":{\"cpos\":20,\"bpos\":1,\"cat\":\"LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a\",\"t1\":\"a3\",\"t2\":\"strm\",\"t3\":\"ct\",\"g\":\"48b9bac6-44bb-3433-80e3-5b1d3594e625\",\"ct\":1,\"pkgt\":4},\"template\":\"default\"},{\"type\":\"article\",\"id\":\"0faf9f17-96c0-368f-9bbc-5baf33074cee\",\"title\":\"Illinois Woman and Her Dog Rescued After Falling Into Frozen Pond\",\"link\":\"https://gma.yahoo.com/illinois-woman-her-dog-rescued-falling-frozen-pond-141908648--abc-news-lifestyle.html\",\"publisher\":\"Good Morning America\",\"images\":{\"square\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/RxhLmJql_Z5GEZvpiQ1BhA--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/19c07daff025df71f8202f8d13e0c238\",\"defer\":1}},\"image\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/RxhLmJql_Z5GEZvpiQ1BhA--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/19c07daff025df71f8202f8d13e0c238\",\"defer\":1},\"summary\":\"An 8-year-old boy has been credited with saving his mother and his dog&amp;#39;s life after he called 911 when the two fell into an icy pond in Illinois this past weekend.Cathy Medernach, 48, told ABC News that she and her son Caden, 8, were taking their Labrador retriever, Bailey, out for a walk behind\",\"interestString\":\"YCT:001000560|YCT:001000611|YCT:001000637\",\"i13n\":{\"cpos\":21,\"bpos\":1,\"cat\":\"LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a\",\"t1\":\"a3\",\"t2\":\"strm\",\"t3\":\"ct\",\"g\":\"0faf9f17-96c0-368f-9bbc-5baf33074cee\",\"ct\":1,\"pkgt\":4},\"template\":\"default\"},{\"type\":\"article\",\"id\":\"3cbee4b7-2568-3903-a977-24db6d8347bb\",\"title\":\"5 Major Foreign Policy Challenges Facing President-Elect Donald Trump\",\"link\":\"https://gma.yahoo.com/5-major-foreign-policy-challenges-facing-president-elect-201105415--abc-news-topstories.html\",\"publisher\":\"Good Morning America\",\"images\":{\"square\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/FQvHaYiTkzJ6OCASS_dY7g--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/ddb938bd2b3017e5920963e2ffd2559e\",\"defer\":1}},\"image\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/FQvHaYiTkzJ6OCASS_dY7g--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/ddb938bd2b3017e5920963e2ffd2559e\",\"defer\":1},\"summary\":\"In January, President-elect Donald Trump will have to turn his attention to governing domestically and shaping his vision for U.S. foreign policy – and he will do so with the help of his secretary of state. On Tuesday, Trump nominated ExxonMobil CEO Rex Tillerson to help him navigate America&amp;#39;s biggest\",\"interestString\":\"WIKIID:Donald_Trump|WIKIID:Rex_Tillerson|WIKIID:Syria|WIKIID:Russia|WIKIID:Turkey|WIKIID:Vladimir_Putin|YCT:001000661|YCT:001000680\",\"i13n\":{\"cpos\":22,\"bpos\":1,\"cat\":\"LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a\",\"t1\":\"a3\",\"t2\":\"strm\",\"t3\":\"ct\",\"g\":\"3cbee4b7-2568-3903-a977-24db6d8347bb\",\"ct\":1,\"pkgt\":4},\"template\":\"default\"},{\"type\":\"article\",\"id\":\"bd3edcb9-cd20-3482-a5a5-308d8cc217f4\",\"title\":\"Arctic Assault This Week With Possible Record-Breaking Cold, Chicago to New York\",\"link\":\"https://gma.yahoo.com/arctic-assault-week-possible-record-breaking-cold-chicago-181307998--abc-news-topstories.html\",\"publisher\":\"Good Morning America\",\"images\":{\"square\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/o9N89Reu8J3us55f_Bdq4Q--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/fe802fc2ef9b5fd433eca3131e12ae7f\",\"defer\":1}},\"image\":{\"height\":82,\"width\":82,\"url\":\"https://s.yimg.com/uu/api/res/1.2/o9N89Reu8J3us55f_Bdq4Q--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/fe802fc2ef9b5fd433eca3131e12ae7f\",\"defer\":1},\"summary\":\"This week, the displacement of a polar vortex will bring the coldest air this early in the season in more than a decade to a wide swath of the country, from Chicago to New York City. If Chicago stays in the single digits for highs on Thursday, this will be the coldest late fall weather since 1995.\",\"interestString\":\"WIKIID:New_York_City|WIKIID:Polar_vortex|YCT:001000637|YCT:001000659\",\"i13n\":{\"cpos\":23,\"bpos\":1,\"cat\":\"LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a\",\"t1\":\"a3\",\"t2\":\"strm\",\"t3\":\"ct\",\"g\":\"bd3edcb9-cd20-3482-a5a5-308d8cc217f4\",\"ct\":1,\"pkgt\":4},\"template\":\"default\"},{\"type\":\"ad\",\"id\":\"32573871566\",\"title\":\"How To Budget Your Money with One Simple Rule\",\"link\":\"https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=Wxo.YS4GIS9wMGM7igB1Zk9dp0XWciRRPl6._XxuRj3TjSHCiQmWk5CmrKmS56ieIjZtpdxnPuxlAUpef9LIiuX3RAQCuTkRCYXDRvWgdy30taH.r58.vSJZhHowP00ey.A5qY3Jk840sfboj1NUQZ0qRrHolchs6Jwz_5tLp1uBMWTW2KjQQyL8vhtJrt04IOhlDCUik.CY9x2URV7ihb4XZ2qL_.q6G_K2ydQ72PLdDvIoi7ZV.vNsy8hIwFMPdo9n.NKL2DBVs2YsD8pWDqJgztTY90hzzVyBooUxShqNKcHHHReT82MZAQwuYr6c1E3C9NS7sPEJuxu.d5x0m7KvKzSbO6VejrFkN1J7fqHRWMNsU__2vLGzZGYyH47Jns2T3EM_z2MJSiXm7QmrELPg2P6eGWaXJQ0CgMugL46gmtXKZ1lIM9sn32YbUVHABtbn8drdMibTxQ3RqXoNQgWOJxeSdV3Kz73YORJXnE2t0tQKDfNpLQTDT1l63wg4S3Yz7e_l_QaP_eK1A9oSKE5pKLHgTIcQCJAaWCIBoVlUASpqFlzJKT.jKnywHsSE8TwZ4ekMJ97uQy.u53AkNxP7uGsGfhB4ARzE7tfKmUaACLMO_3muHQDFiIB.xGWXlIQl2R7zEpGGirnxCAxZkJAcmw--%26lp=https%3A%2F%2Fwww.learnvest.com%2Flp%2Fhow-to-budget-your-money-with-the-502030-guideline%2F%3Futm_source%3Dyahoo%26utm_medium%3Dpaidcontent%26utm_campaign%3DYahoo_Custom_Audience%3A_Personal_Finance\",\"publisher\":\"LearnVest\",\"beacon\":\"https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&amp;es=ysl3cA8GIS_Ce8UN3J1O5G_Dz28vS6.XFEPlNzo5g32_gQz8eRLtDD6LoB2kZpQAy5B6LXNjYjdR3G4eqs0HI2vWRWbpiIBhw6vzaO1X0U5tVsCLbOLFjH24.XY6SXy1x3XPkLHEtBU2HwJfq1UKL0JiGbeRy1sPVWTv0Xv5hpPv0o2qKU0c8QULwqEdD6xo57so2Rgpr4cly3ZJi17kPu6b46h.ULIj9qY.y.u.dkRWQm1MmOIyh46k9sljX.KMRJp0.T1H9_7Cz4yMng89MbMYsNxTtSZEzFfXtlHAZBuIMp2UUXUZ59eB6eaR8qFajDyzSZR8eW1RwomyXvmf23RvOSvlbwgAV9Cw8N4SuYemLTY9Q9VekwVhGLUCNvK1Hhpi.yYjlfn0JHHopadyiv_X&amp;ap=24\",\"full_template\":\"ad\",\"image\":{\"url\":\"https://s.yimg.com/uu/api/res/1.2/9lbnTRUMz5bKMixhcKXeJw--/YXBwaWQ9eXRhY2h5b24-/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/d8727e410ab45d1349297efacfd4ad17.jpeg\",\"height\":82,\"width\":82},\"summary\":\"Whether you're a new parent or a new grad, our guideline can help you assess your budget so you know exactly where your money in going. Find out how.\",\"adChoicesUrl\":\"https://info.yahoo.com/privacy/us/yahoo/relevantads.html\",\"i13n\":{\"cpos\":24,\"bpos\":1,\"cat\":\"LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a\",\"t1\":\"a3\",\"t2\":\"strm\",\"t3\":\"ct\",\"ad\":1,\"elmt\":\"ad\",\"g\":\"32573871566\",\"ct\":1,\"pkgt\":4}}],\"interest_data\":{\"WIKIID:Alan_Thicke\":{\"name\":\"Alan Thicke\",\"type\":\"WIKIID\"},\"WIKIID:Growing_Pains\":{\"name\":\"Growing Pains\",\"type\":\"WIKIID\"},\"YCT:001000031\":{\"name\":\"Arts &amp; Entertainment\",\"type\":\"YCT\"},\"YCT:001000069\":{\"name\":\"Celebrities\",\"type\":\"YCT\"},\"YCT:001000075\":{\"name\":\"Media\",\"type\":\"YCT\"},\"YCT:001000291\":{\"name\":\"Death &amp; Funeral\",\"type\":\"YCT\"},\"WIKIID:Donald_Trump\":{\"name\":\"Donald Trump\",\"type\":\"WIKIID\"},\"WIKIID:Ryan_Zinke\":{\"name\":\"Ryan Zinke\",\"type\":\"WIKIID\"},\"WIKIID:Kellyanne_Conway\":{\"name\":\"Kellyanne Conway\",\"type\":\"WIKIID\"},\"WIKIID:United_States_Secretary_of_the_Interior\":{\"name\":\"secretary of the interior\",\"type\":\"WIKIID\"},\"YCT:001000661\":{\"name\":\"Politics &amp; Government\",\"type\":\"YCT\"},\"WIKIID:Aleppo\":{\"name\":\"Aleppo\",\"type\":\"WIKIID\"},\"WIKIID:Council_of_Ministers_%28Syria%29\":{\"name\":\"Syrian government\",\"type\":\"WIKIID\"},\"YCT:001000713\":{\"name\":\"Unrest, Conflicts &amp; War\",\"type\":\"YCT\"},\"WIKIID:CorePower_Yoga\":{\"name\":\"CorePower Yoga\",\"type\":\"WIKIID\"},\"WIKIID:San_Diego_Police_Department\":{\"name\":\"San Diego Police Department\",\"type\":\"WIKIID\"},\"WIKIID:San_Diego\":{\"name\":\"San Diego\",\"type\":\"WIKIID\"},\"YCT:001000667\":{\"name\":\"Crime &amp; Justice\",\"type\":\"YCT\"},\"YCT:001000780\":{\"name\":\"Society &amp; Culture\",\"type\":\"YCT\"},\"YCT:001000288\":{\"name\":\"Family &amp; Relationships\",\"type\":\"YCT\"},\"YCT:001000395\":{\"name\":\"Health\",\"type\":\"YCT\"},\"YCT:001000427\":{\"name\":\"Disease &amp; Medical Conditions\",\"type\":\"YCT\"},\"YCT:001000441\":{\"name\":\"Cancer\",\"type\":\"YCT\"},\"WIKIID:Peter_Travers\":{\"name\":\"Peter Travers\",\"type\":\"WIKIID\"},\"WIKIID:Star_Wars\":{\"name\":\"Star Wars\",\"type\":\"WIKIID\"},\"WIKIID:Rolling_Stone\":{\"name\":\"Rolling Stone\",\"type\":\"WIKIID\"},\"YCT:001000076\":{\"name\":\"Movies\",\"type\":\"YCT\"},\"YCT:001000079\":{\"name\":\"Movie Reviews\",\"type\":\"YCT\"},\"WIKIID:Boy_Scouts_of_America\":{\"name\":\"Boy Scouts\",\"type\":\"WIKIID\"},\"WIKIID:Rex_Tillerson\":{\"name\":\"Rex Tillerson\",\"type\":\"WIKIID\"},\"WIKIID:Tony_Perkins_%28politician%29\":{\"name\":\"Tony Perkins\",\"type\":\"WIKIID\"},\"WIKIID:Planned_Parenthood\":{\"name\":\"Planned Parenthood\",\"type\":\"WIKIID\"},\"WIKIID:ExxonMobil\":{\"name\":\"ExxonMobil\",\"type\":\"WIKIID\"},\"WIKIID:Trump_Tower_%28New_York_City%29\":{\"name\":\"Trump Tower\",\"type\":\"WIKIID\"},\"WIKIID:Barack_Obama\":{\"name\":\"Obama\",\"type\":\"WIKIID\"},\"WIKIID:Ali_Jaber\":{\"name\":\"Ali Jaber\",\"type\":\"WIKIID\"},\"WIKIID:Drone_strikes_in_Pakistan\":{\"name\":\"drone strike\",\"type\":\"WIKIID\"},\"YCT:001000720\":{\"name\":\"War\",\"type\":\"YCT\"},\"WIKIID:John_Peck_%28Australian_rules_footballer%29\":{\"name\":\"John Peck\",\"type\":\"WIKIID\"},\"YCT:001000545\":{\"name\":\"Tests &amp; Procedures\",\"type\":\"YCT\"},\"WIKIID:Aunt_Sally\":{\"name\":\"Aunt Sally\",\"type\":\"WIKIID\"},\"YCT:001000071\":{\"name\":\"Books &amp; Publishing\",\"type\":\"YCT\"},\"WIKIID:Christmas_club\":{\"name\":\"Christmas\",\"type\":\"WIKIID\"},\"WIKIID:Christmas\":{\"name\":\"Christmas\",\"type\":\"WIKIID\"},\"YCT:001000560\":{\"name\":\"Hobbies &amp; Personal Activities\",\"type\":\"YCT\"},\"YCT:001001060\":{\"name\":\"Holidays &amp; Celebrations\",\"type\":\"YCT\"},\"YCT:001001062\":{\"name\":\"Christmas\",\"type\":\"YCT\"},\"YCT:001000295\":{\"name\":\"Parenting\",\"type\":\"YCT\"},\"WIKIID:Delta_Air_Lines\":{\"name\":\"Delta\",\"type\":\"WIKIID\"},\"WIKIID:Airport_police\":{\"name\":\"airport police\",\"type\":\"WIKIID\"},\"YCT:001000992\":{\"name\":\"Transportation\",\"type\":\"YCT\"},\"WIKIID:Christmas_card\":{\"name\":\"Christmas cards\",\"type\":\"WIKIID\"},\"WIKIID:Facebook\":{\"name\":\"Facebook\",\"type\":\"WIKIID\"},\"WIKIID:United_States_Secretary_of_State\":{\"name\":\"secretary of state\",\"type\":\"WIKIID\"},\"WIKIID:United_States_Senate_Committee_on_Foreign_Relations\":{\"name\":\"Foreign Relations Committee\",\"type\":\"WIKIID\"},\"WIKIID:United_States_Senate\":{\"name\":\"Senate\",\"type\":\"WIKIID\"},\"WIKIID:Frito-Lay\":{\"name\":\"Frito-Lay\",\"type\":\"WIKIID\"},\"WIKIID:Super_Bowl\":{\"name\":\"Super Bowl\",\"type\":\"WIKIID\"},\"YCT:001001126\":{\"name\":\"National Football League\",\"type\":\"YCT\"},\"YCT:001000002\":{\"name\":\"American Football\",\"type\":\"YCT\"},\"YCT:001000001\":{\"name\":\"Sports &amp; Recreation\",\"type\":\"YCT\"},\"WIKIID:LeBron_James\":{\"name\":\"LeBron James\",\"type\":\"WIKIID\"},\"YCT:001000012\":{\"name\":\"Basketball\",\"type\":\"YCT\"},\"YCT:001000611\":{\"name\":\"Pets\",\"type\":\"YCT\"},\"YCT:001000637\":{\"name\":\"Nature &amp; Environment\",\"type\":\"YCT\"},\"WIKIID:Syria\":{\"name\":\"Syria\",\"type\":\"WIKIID\"},\"WIKIID:Russia\":{\"name\":\"RUSSIA\",\"type\":\"WIKIID\"},\"WIKIID:Turkey\":{\"name\":\"Turkey\",\"type\":\"WIKIID\"},\"WIKIID:Vladimir_Putin\":{\"name\":\"President Vladimir Putin\",\"type\":\"WIKIID\"},\"YCT:001000680\":{\"name\":\"Foreign Policy\",\"type\":\"YCT\"},\"WIKIID:New_York_City\":{\"name\":\"New York City\",\"type\":\"WIKIID\"},\"WIKIID:Polar_vortex\":{\"name\":\"polar vortex\",\"type\":\"WIKIID\"},\"YCT:001000659\":{\"name\":\"Weather\",\"type\":\"YCT\"}}}},\"items\":{\"yui_module\":\"td-applet-stream-items-model\",\"yui_class\":\"TD.Applet.StreamItemsModel\"},\"applet_model\":{\"yui_module\":\"td-applet-stream-appletmodel\",\"yui_class\":\"TD.Applet.StreamAppletModel\",\"config\":{\"ads\":{\"adblock\":false,\"adchoices_text\":true,\"adchoices_url\":\"https://info.yahoo.com/privacy/us/yahoo/relevantads.html\",\"ad_polices\":true,\"count\":15,\"contentType\":\"\",\"creative\":\"\",\"darla_content\":\"\",\"darla_frequency\":0,\"darla_max\":0,\"darla_start\":0,\"enable_large_gif\":false,\"enable_mobile_splash\":false,\"enable_mobile_splash_banner_img\":false,\"enable_mobile_splash_check_player_ready\":true,\"enable_mobile_splash_countdown\":true,\"enable_mobile_splash_docking\":false,\"enable_mobile_splash_docking_delay\":false,\"enable_mobile_splash_dynamic_slot\":true,\"enable_mobile_splash_dynamic_slot_init\":true,\"enable_mobile_splash_dynamic_slot_init_top\":true,\"enable_mobile_splash_dynamic_slot_scroll\":true,\"enable_mobile_splash_dynamic_slot_select_node\":false,\"enable_mobile_splash_dynamic_slot_viewer_close\":true,\"enable_mobile_splash_hide_search\":true,\"enable_mobile_splash_nav_remain\":true,\"enable_mobile_splash_nuke\":true,\"fallback\":0,\"feedback\":false,\"frequency\":6,\"hq_image_size\":\"phone:size=hq_medium\",\"low_res_image\":true,\"multibeacons\":false,\"preview\":{},\"ratings\":false,\"spaceid\":\"1197056126\",\"splash_countdown\":5,\"splash_start\":4,\"splash_anchor_node\":\"spl-sticky-anchor\",\"splash_convert_video_ad_to_vast\":false,\"splash_convert_video_ad_to_vast_only_ogg\":false,\"splash_docking_delay\":50,\"splash_node\":\"ad_spl-wrap\",\"splash_pos\":\"MSPL\",\"splash_search_node\":\"uh-big-search-button\",\"splash_track_elm\":\"splashtop\",\"splash_track_elmt\":\"dslot\",\"splash_uh_node\":\"MobileUH\",\"sponsored_url\":\"http://help.yahoo.com/kb/index?page=content&amp;y=PROD_FRONT&amp;locale=en_US&amp;id=SLN14553\",\"start_index\":2,\"timeout\":0,\"type\":\"STRM,STRM_CONTENT\",\"version\":2,\"pu\":\"gma.yahoo.com\",\"se\":\"5417407\"},\"category\":\"LISTID:8d64a97a-a34e-4ab8-bac1-f8a95616142a\",\"signed_in\":false,\"locdrop_crumb\":\"\",\"js\":{\"click_context\":true,\"content_events\":false,\"darla_beacons\":false,\"full_content_event\":false,\"filters\":false,\"restore_filter\":false,\"restore_state\":true,\"restore_state_storage\":\"ls\",\"show_read\":true,\"sticker\":false,\"sticker_toptarget\":\"\",\"swipe_filters\":false,\"track_impr_beacons\":false,\"login_url\":\"https://login.yahoo.com/config/login?.intl=us&amp;.lang=en-US&amp;.done=\"},\"pagetype\":\"contentb\",\"partner\":\"\",\"pagination\":true,\"search_tags\":{\"action\":\"https://uk.search.yahoo.com/search\",\"frcode\":\"fp-cx-421\"},\"timeout\":500,\"total\":170,\"ui\":{\"big_click_target\":false,\"bleed\":true,\"breaking_news\":false,\"dislike\":true,\"embeded_action_buttons\":false,\"endcard_cta\":false,\"enrichment\":{\"inferred\":\"\",\"types\":\"\",\"unique\":false},\"entity_max\":9,\"exclude_types\":\"\",\"exclude_bnb_enabled\":0,\"disable_tweet_image\":false,\"featured_finance_width_oldIE\":228,\"featured_width\":300,\"featured_height\":169,\"featured_width_portrait\":200,\"featured_height_portrait\":200,\"fptoday_blend\":false,\"fptoday_blend_start_index\":5,\"fptoday_blend_interval\":4,\"fptoday_blend_pkg_offset\":1,\"hq_ad_template\":\"\",\"incremental_count\":0,\"incremental_delay\":300,\"incremental_history\":100,\"hq_cm_ad\":false,\"host\":\"\",\"inline_filters\":false,\"inline_video\":false,\"inline_video_ad_template\":\"feature\",\"inline_video_template\":\"default\",\"item_template\":\"items\",\"like\":true,\"limit_height\":true,\"link_to_finance\":false,\"listId_mixin_enabled\":false,\"listId_mixin_start\":9,\"listId_mixin_interval\":10,\"listId_mixin_count\":17,\"listId_mixin_freshness_window\":48,\"listId_mixin_id\":\"a8b3e8e1-78a2-466e-85e8-91c61d22ca60\",\"location\":true,\"off_network_tab\":true,\"open_in_tab\":false,\"pcsExclusions\":false,\"previewUrl_enabled\":false,\"pubtime_format\":\"ONE_UNIT_ABBREVIATED\",\"pubtime_maxage\":3600,\"search_tags\":false,\"sfl\":true,\"sfl_get_started_string\":\"SFL_LINK\",\"sfl_get_started_title\":\"SFL_TITLE_ONE\",\"scrollbuffer\":900,\"show_lastvist\":true,\"social_sharing\":{\"enabled\":false,\"tumblr\":false,\"facebook\":false,\"twitter\":false,\"mail\":false},\"stream_actions\":true,\"summary\":true,\"templates\":{\"featured_ad\":{\"batch_max\":20,\"max\":170,\"start\":0,\"batch\":0,\"total\":0},\"featured_mobile_ad\":{\"batch_max\":20,\"max\":170,\"start\":0,\"batch\":0,\"total\":0},\"all\":{\"batch_max\":20,\"gap\":1,\"max\":170,\"start\":5,\"batch\":0,\"total\":0,\"last\":23},\"inline_video\":{\"batch_max\":20,\"gap\":0,\"max\":170,\"start\":0,\"batch\":0,\"total\":0}},\"thumbnail\":true,\"thumbnail_align\":\"left\",\"thumbnail_hover\":true,\"thumbnail_fix_width\":false,\"thumbnail_size\":82,\"tweet_action\":true,\"video_autoplay\":false,\"viewer\":false,\"viewer_include_all\":false,\"viewer_off_network\":true,\"viewer_prefetch_lcp\":false,\"viewer_preview_card\":true,\"disable_medium\":false},\"header_enabled\":true,\"slim_heading\":true,\"pageload_image_count\":0,\"allow_empty_response\":0},\"settings\":{\"size\":20,\"woeid\":\"2459115\"},\"models\":[\"stream\",\"items\"]},\"interest\":{\"yui_module\":\"td-applet-interest-model\",\"yui_class\":\"TD.Applet.InterestModel\"}},\"views\":{\"main\":{\"yui_module\":\"td-applet-stream-mainview\",\"yui_class\":\"TD.Applet.StreamMainView\"},\"header\":{\"yui_module\":\"td-applet-stream-headerview\",\"yui_class\":\"TD.Applet.StreamHeaderView\"},\"drawer\":{\"yui_module\":\"stream-actiondrawer\"}},\"templates\":{\"main\":{\"yui_module\":\"td-applet-stream-templates-main\",\"template_name\":\"td-applet-stream-templates-main\"},\"settings\":{\"yui_module\":\"td-applet-stream-templates-settings\",\"template_name\":\"td-applet-stream-templates-settings\"},\"errormsg\":{\"yui_module\":\"td-applet-stream-templates-errormsg\",\"template_name\":\"td-applet-stream-templates-errormsg\"},\"drawer\":{\"yui_module\":\"td-applet-stream-templates-drawer-desktop\",\"template_name\":\"td-applet-stream-templates-drawer-desktop\"},\"removedItem\":{\"yui_module\":\"td-applet-stream-templates-removeditem\",\"template_name\":\"td-applet-stream-templates-removeditem\"},\"items\":{\"yui_module\":\"td-applet-stream-templates-items\",\"template_name\":\"td-applet-stream-templates-items\"},\"item_default\":{\"yui_module\":\"td-applet-stream-templates-item-default\",\"template_name\":\"td-applet-stream-templates-item-default\"},\"item_ad\":{\"yui_module\":\"td-applet-stream-templates-item-ad\",\"template_name\":\"td-applet-stream-templates-item-ad\"},\"item_featured_ad\":{\"yui_module\":\"td-applet-stream-templates-item-featured_ad\",\"template_name\":\"td-applet-stream-templates-item-featured_ad\"},\"item_featured_mobile_ad\":{\"yui_module\":\"td-applet-stream-templates-item-featured_mobile_ad\",\"template_name\":\"td-applet-stream-templates-item-featured_mobile_ad\"},\"item_inline_video\":{\"yui_module\":\"td-applet-stream-templates-item-inline_video\",\"template_name\":\"td-applet-stream-templates-item-inline_video\"}},\"i18n\":{\"ABCLOGO\":\"ABC\",\"ACTION_MORE_LIKE_THIS\":\"Got it. We'll show you more stories like this.\",\"ACTION_FEWER_LIKE_THIS\":\"Got it. We'll show you fewer stories like this.\",\"ACTION_STORY_REMOVED\":\"Story removed\",\"ACTION_SEE_LESS\":\"Great, you'll see less like this.\",\"ACTION_SIGN_IN_TO_SAVE\":\"{linkstart}Sign-in{linkend} to save this story to read later.\",\"ACTION_SIGN_IN_TO_LIKE\":\"{linkstart}Sign-in{linkend} and we'll show you more like this in the future.\",\"ACTION_SIGN_IN_TO_DISLIKE\":\"{linkstart}Sign-in{linkend} and we'll show you less like this in the future.\",\"ACTION_SIGN_IN_TO_VIEW\":\"{linkstart}Sign-in{linkend} to view my saves.\",\"ACTION_TELL_LIKE\":\"Tell us more about what you like:\",\"ACTION_TELL_DISLIKE\":\"Tell us more about what you dislike:\",\"ADCHOICES\":\"AdChoices\",\"AD_FDB1\":\"It is offensive to me\",\"AD_FDB2\":\"I keep seeing this\",\"AD_FDB3\":\"It is not relevant to me\",\"AD_FDB4\":\"Something else\",\"AD_FDB_HEADING\":\"Why don't you like this ad?\",\"AD_REVIEW\":\"We'll review and make the changes needed.\",\"AD_THANKYOU\":\"Thank you for your feedback\",\"AD_SUBMIT\":\"Submit\",\"ALL_ARTICLES\":\"All Articles\",\"ALL_CELEBRITY\":\"All Celebrity News\",\"ALL_FINANCE\":\"All Finance\",\"ALL_MOVIES\":\"All Movies News\",\"ALL_MUSIC\":\"All Music News\",\"ALL_NEWS\":\"All News\",\"ALL_SPORTS\":\"All Sports\",\"ALL_STORIES\":\"All Stories\",\"ALL_TRAVEL\":\"All Travel Ideas\",\"ALL_TV\":\"All TV News\",\"AUCTION\":\"Action\",\"AUTHOR_AT_PUBLISHER\":\"{author} at {publisher}\",\"BREAKING_NEWS\":\"BREAKING NEWS\",\"CAROUSEL_TITLE\":\"You Might Like\",\"CNBCLOGO\":\"\",\"COMMERCE_OFF\":\"OFF\",\"CONTENT_PREF\":\"Content preferences\",\"DISLIKE\":\"Fewer like this\",\"DONE\":\"Done\",\"DONT_LIKE_AD\":\"I don't like this ad\",\"DYNAMIC_FILTERS\":\"You Might Like\",\"EC_ON_SALE\":\"On Sale\",\"FOLLOW_GAME\":\"Follow Game\",\"GAME_RECAP\":\"Game Recap\",\"INSTALL_APP\":\"Install now\",\"LIKE\":\"More like this\",\"LIVE_GAME\":\"Live\",\"LOAD_MORE\":\"Load more stories\",\"MORE\":\"More\",\"MYQUOTES_ADD_MORE\":\"Add more investments to your {0}Portfolio{1} to stay up to date whenever you visit Yahoo Finance.\",\"MYQUOTES_LOGIN\":\"{0}Sign-in{1} to see the latest news from the investments in your portfolio.\",\"MYTEAMS_ADD_TEAMS\":\"{0}Add your favorite teams{1} to start getting news about them today.\",\"MYTEAMS_LOGIN\":\"{0}Sign-in{1} to get news for your favorite teams.\",\"MYTEAMS_NO_CONTENT\":\"We can't find recent news for your teams. {0}Edit your teams{1} or visit the {2}All Sports news{3}\",\"MYSAVES\":\"My Saves\",\"NEXT\":\"Next\",\"NO_STORIES_HEADER\":\"We couldn't find any new stories for you.\",\"NO_STORIES_BODY\":\"Please check back later or {0}try again{1}\",\"OFF\":\"OFF\",\"PLAY\":\"Play\",\"PLAY_VIDEO\":\"Play Video\",\"PREVIEW_GAME\":\"Preview Game\",\"PREVIOUS\":\"Previous\",\"PREVIOUSLY_VIEWED\":\"From your last visit\",\"READ_MORE\":\"Read More\",\"REMOVE\":\"Remove\",\"SAVE\":\"Save\",\"SEE_ALL_STORIES\":\"See all stories »\",\"SEE_MORE_STORIES\":\"See more stories »\",\"SFL_HEADER\":\"Hi {0}, you have no saves. Here's how to get started:\",\"SFL_LINK\":\"Get started now on the {0}Yahoo Homepage{1}.\",\"SFL_LINK_ATT\":\"Get started now on the {0}att.net Homepage{1}.\",\"SFL_LINK_FRONTIER\":\"Get started now on the {0}Frontier Yahoo Homepage{1}.\",\"SFL_LINK_ROGERS\":\"Get started now on the {0}Rogers Yahoo Homepage{1}.\",\"SFL_LINK_VERIZON\":\"Get started now on the {0}Verizon Yahoo Homepage{1}.\",\"SFL_LINK_TATA\":\"Get started now on the {0}Tata Docomo - Yahoo Homepage{1}.\",\"SFL_LINK_MTS\":\"Get started now on the {0}MTS - Yahoo Homepage{1}.\",\"SFL_LINK_IDEANETSETTER\":\"Get started now on the {0}Idea Netsetter - Yahoo Homepage{1}.\",\"SFL_LINK_TIKONA\":\"Get started now on the {0}Tikona - Yahoo Homepage{1}.\",\"SFL_LINK_SMARTFREN\":\"Get started now on the {0}Smartfren - Yahoo Homepage{1}.\",\"SFL_STEP_ONE\":\"Step 1\",\"SFL_STEP_TWO\":\"Step 2\",\"SFL_TITLE_ONE\":\"Click on {0} in the stream and on articles across Yahoo to save stories for later.\",\"SFL_TITLE_TWO\":\"Access your saves from the profile menu {0} on desktop &amp; tablet or menu {1} on your smartphone.\",\"SFL_TITLE_ONE_ATT\":\"Click on {0} in the stream and on articles across Yahoo to save stories for later.\",\"SHOPPING\":\"Shopping\",\"SLIDESHOW_COUNT\":\"({0} photos)\",\"SPONSORED\":\"Sponsored\",\"STORE\":\"Store\",\"STORIES\":\"Stories:\",\"STORIES_ABOUT\":\"Stories about:\",\"TITLE\":\"Recommended for You\",\"TITLE_LOCAL\":\"{city} News\",\"UNDO\":\"Undo\",\"VIEW\":\"View\",\"VIEW_SLIDESHOW\":\"View Slideshow\",\"YAHOO_ORIGINALS\":\"Yahoo Originals\",\"YCT:001000931\":\"Technology\",\"YCUSTOM:COMMERCE\":\"Commerce\",\"YCUSTOM:MYQUOTES\":\"My Quotes\",\"YCUSTOM:MYTEAMS\":\"My Teams\",\"YCUSTOM:TOPSTORIES\":\"All Stories\",\"YPROP:FINANCE\":\"Business\",\"YPROP:TOPSTORIES\":\"All Stories\",\"YPROP:LOCAL\":\"Local\",\"YPROP:NEWS\":\"News\",\"YPROP:OMG\":\"Entertainment\",\"YPROP:SCIENCE\":\"Science\",\"YPROP:SPORTS\":\"Sports\",\"YPROV:ABCNEWS\":\"News\",\"YPROV:ap.org\":\"AP\",\"YPROV:CNBC\":\"CNBC\",\"YPROV:NBCSPORT\":\"NBC Sports\",\"YPROV:reuters.com\":\"Reuters\",\"YPROV:ROLLINGSTONES\":\"Rolling Stone\",\"YPROV:us.sports.yahoo.com\":\"Experts\",\"YTYPE:VIDEO\":\"Video\",\"YPROP:STYLE\":\"Style\",\"YMAG:food\":\"Food\",\"YMAG:tech\":\"Tech\"},\"i13n\":{\"pv\":2},\"transport\":{\"xhr\":\"/_td_api\"},\"context\":{\"bucket\":\"\",\"crumb\":\"kKRPyOdAXGG\",\"device\":\"desktop\",\"lang\":\"en-US\",\"region\":\"US\",\"site\":\"gma\"}};&lt;\/script&gt;\r\n--dali-response-split\r\nContent-Type: text/html; charset=utf-8\r\n\r\n&lt;style&gt;\n#Stream .crosshatch {\n background-image:url(https://s.yimg.com/dh/ap/default/130509/tech_pattern1.png);\n}\n\n#Stream .js-stream-drawer,\n#Stream .js-remove-msg {\n background-color:#321C59;\n color:#A298C2;\n}\n\n.stream-sfl-header {\n background-image:url('https://s.yimg.com/dh/ap/default/130908/SFL_Purple_reg.png');\n background-size:100%;\n height:100px;\n}\n#Stream .DarkOverlayGradient a:hover {\n border-bottom: solid 1px #fff;\n border-bottom: solid 1px rgba(255,255,255,0.5);\n}\n#Stream .DarkOverlayGradient .adlink:hover {\n border-bottom: none;\n}\n#Stream .DarkOverlayGradient-start {\n color: #fff;\n background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3RvcC1vcGFjaXR5PSIwLjY1Ii8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMwMDAwMDAiIHN0b3Atb3BhY2l0eT0iMCIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);\n background: -moz-linear-gradient(left, rgba(0,0,0,0.65) 0%, rgba(0,0,0,0) 100%);\n background: -webkit-gradient(linear, left top, right top, color-stop(0%,rgba(0,0,0,0.65)), color-stop(100%,rgba(0,0,0,0)));\n background: -webkit-linear-gradient(left, rgba(0,0,0,0.65) 0%,rgba(0,0,0,0) 100%);\n background: -o-linear-gradient(left, rgba(0,0,0,0.65) 0%,rgba(0,0,0,0) 100%);\n background: -ms-linear-gradient(left, rgba(0,0,0,0.65) 0%,rgba(0,0,0,0) 100%);\n background: linear-gradient(to right, rgba(0,0,0,0.65) 0%,rgba(0,0,0,0) 100%);\n filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#a6000000', endColorstr='#00000000',GradientType=1 );\n}\n#Stream .DarkOverlayGradient-end {\n color: #fff;\n background: -moz-linear-gradient(left, rgba(0,0,0,0) 0%, rgba(0,0,0,0.65) 100%);\n background: -webkit-gradient(linear, left top, right top, color-stop(0%,rgba(0,0,0,0)), color-stop(100%,rgba(0,0,0,0.65)));\n background: -webkit-linear-gradient(left, rgba(0,0,0,0) 0%,rgba(0,0,0,0.65) 100%);\n background: -o-linear-gradient(left, rgba(0,0,0,0) 0%,rgba(0,0,0,0.65) 100%);\n background: -ms-linear-gradient(left, rgba(0,0,0,0) 0%,rgba(0,0,0,0.65) 100%);\n background: linear-gradient(to right, rgba(0,0,0,0) 0%,rgba(0,0,0,0.65) 100%);\n filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00000000', endColorstr='#a6000000',GradientType=1 );\n}\n#Stream .Lh-115 {\n line-height: 1.15;\n}\n\n#Stream .js-stream-carousel ul {\n word-wrap: normal \\9;\n}\n\n#Stream .js-stream-disliked .js-stream-ad-buttons,\n#Stream .js-stream-fdb-undo {\n display: none;\n}\n\n#Stream li:hover .social-sharing-container {\n display: inline-block;\n}\n#Stream .social-sharing-container {\n top: 5px;\n}\n#Stream .social-sharing-container .Icon {\n background-color: #abaeb7;\n}\n#Stream .social-sharing-container .tumblr-button:hover {\n background-color: #3c5a77;\n}\n#Stream .social-sharing-container .facebook-button:hover {\n background-color: #4761a6;\n}\n#Stream .social-sharing-container .twitter-button:hover {\n background-color: #55acee;\n}\n#Stream .social-sharing-container .mail-button:hover {\n background-color: #6d329c;\n}\n\n#Stream #splCloseBtn{\n display: none;\n position: absolute;\n bottom: -28px;\n right: 0px;\n font-family: 'Helevetica Neue', Arial, sans-serif;\n color: rgb(255, 255, 255);\n height: 28px;\n border: 0;\n border-radius: 3px;\n width: auto;\n min-width: 70px;\n white-space: nowrap;\n cursor: pointer;\n z-index: 10000;\n -webkit-user-select: none;\n background-color: rgb(192, 192, 192);\n opacity: 50;\n font-size: 14px;\n font-weight: bold;\n -webkit-backface-visibility: hidden;\n}\n\n#Stream .splash-placeholder {\n -moz-transition: height .3s ease;\n -webkit-transition: height .3s ease;\n -ms-transition: height .3s ease;\n -o-transition: height .3s ease;\n transition: height .3s ease;\n}\n\n#Stream .splashtop {\n line-height: 0;\n}\n\n#Stream .js-cstm-end-screen {\n background: rgba(0,0,0,0.7);\n z-index: 30;\n}\n\n#Stream .js-cstm-end-screen a {\n margin-top: 22%;\n border: thin solid #fff;\n border-radius: 2px;\n}\n\n/* to allow ad click through */\n#Stream .js-stream-featured-ad .yvp-playing-item-title {\n z-index: 0;\n}\n\n/* minize control bar to enlarge ad click area and adjust button pos accordingly */\n#Stream .js-stream-featured-ad .yvp-bottom-bar {\n height: 38px;\n}\n\n#Stream .js-stream-featured-ad .yvp-bottom-container {\n top: 8px;\n}\n\n#Stream .js-stream-featured-ad .yvp-state-fullscreen .yvp-bottom-container {\n top: 2px;\n}\n\n@media screen and (orientation:portrait) {\n\t#Stream .splashtopsticky {\n\t margin-top: 0 !important;\n\t position: fixed;\n\t top: 47px;\n\t z-index: 10000;\n\n -webkit-transform: translateZ(0);\n -moz-transform: translateZ(0);\n -ms-transform: translateZ(0);\n -o-transform: translateZ(0);\n transform: translateZ(0);\n\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n\n -webkit-transition:-webkit-transform .3s ease\n\t}\n\n #Stream .splashtopsticky #splCloseBtn{\n display: block;\n }\n\n .uh-scroll #Stream .splashtopsticky {\n -webkit-transform: translateY(-42px);\n -moz-transform: translateY(-42px);\n -ms-transform: translateY(-42px);\n transform: translateY(-42px);\n }\n\n #Stream .splashtopsticky #splCloseBtn.countdown {\n\t display: block;\n\t right: 12px;\n\t border-radius: 14px;\n\t width: 28px;\n\t min-width: 28px;\n\t}\n\n\t.uh-scroll.uh-splash #Stream .splashtopsticky,\n\t.uh-scroll.uh-splash #MobileUH {\n -webkit-transform: translateY(-97px);\n -moz-transform: translateY(-97px);\n -ms-transform: translateY(-97px);\n transform: translateY(-97px);\n }\n}\n\n@media all and (orientation:landscape) {\n #Stream #spl-sticky-anchor{\n height: 0px !important;\n }\n}\n&lt;/style&gt;&lt;div id=\"applet_24106666305898690\" class=\"App_v2 js-applet\" data-i13n=\"auto:true;sec:strm\" data-i13n-sec=\"strm\" data-applet-guid=\"24106666305898690\" data-applet-type=\"td-applet-stream\"&gt; &lt;div class=\"App-Hd\" data-region=\"header\"&gt; &lt;div class=\"js-applet-view-container-header\"&gt; \n \n \n \n &lt;h2 class=\"HeaderBar Reset Bleed Fz-m Py-8 Px-10 Mt-neg-10\" style=\"*position:absolute;left:0;right:0;*margin-left:0;*margin-right:0;_width:100%\"&gt;Recommended for You&lt;/h2&gt;\n \n \n \n\n &lt;/div&gt; &lt;/div&gt; &lt;div class=\"App-Bd\"&gt; &lt;div class=\"App-Main\" data-region=\"main\"&gt; &lt;div class=\"js-applet-view-container-main\"&gt; \n\n&lt;ul class=\"Bleed Mt-neg-10 Mb-0 ResetChildren Wow-bw Divided-h\" id=\"Stream\"&gt;\n\n \n \n \n &lt;li class=\"js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 \" data-interests=\"WIKIID:Alan_Thicke|WIKIID:Growing_Pains|YCT:001000031|YCT:001000069|YCT:001000075|YCT:001000291\" data-uuid=\"16f9f18d-d40a-313b-a0cd-070c86f36465\" &gt;\n\n&lt;a href=\"https://gma.yahoo.com/growing-pains-star-alan-thicke-dead-69-033106505--abc-news-topstories.html\" tabindex=\"-1\" aria-hidden=\"true\" data-ylk=\"cpos:1;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:16f9f18d-d40a-313b-a0cd-070c86f36465;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h\"&gt;\n &lt;img src=\"https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif\" width=\"82\" height=\"82\" alt=\"&amp;amp;#39;Growing Pains&amp;amp;#39; Star Alan Thicke Dead at 69\" class=\"ImageLoader\" style=\"background-image:url('https://s.yimg.com/uu/api/res/1.2/sCg_Njmwgxk4FoyfmJyosg--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/gty-alan-thicke-er-161213_16x9_992.jpg')\"&gt;\n\n\n&lt;/a&gt;\n\n&lt;div class=\"Bfc\"&gt;\n &lt;div class=\"Ov-h Mt-neg-1\" style=\"max-height:5.308em;\"&gt;\n \n &lt;h3 class=\"Fw-b Fz-m Mb-2 Lh-115\"&gt;\n \n &lt;a href=\"https://gma.yahoo.com/growing-pains-star-alan-thicke-dead-69-033106505--abc-news-topstories.html\" data-ylk=\"cpos:1;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:16f9f18d-d40a-313b-a0cd-070c86f36465;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"js-stream-content-link Mend-4\"&gt;&amp;#39;Growing Pains&amp;#39; Star Alan Thicke Dead at 69&lt;/a&gt;\n &lt;/h3&gt;\n \n &lt;p class=\"Mb-2\"&gt;Alan Thicke, the actor best-known for his starring role in the 1980s sitcom &amp;quot;Growing Pains,&amp;quot; died Tuesday at age 69. A publicist for Thicke&amp;#39;s son, Robin, said the actor suffered a heart attack in Los Angeles. Born in Canada, Thicke enjoyed a successful career as a writer, producer and&lt;/p&gt;\n &lt;/div&gt;\n \n &lt;div class=\"Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h \"&gt;\n &lt;span class=\"Source Whs-nw Mend-6\"&gt;Good Morning America&lt;/span&gt;\n \n &lt;/div&gt;\n \n \n \n \n&lt;/div&gt;\n&lt;ul aria-label=\"Actions menu\" role=\"toolbar\" class=\"js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4\" style=\"*display:none\"&gt;&lt;li class=\"ActionSave Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-save-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Save&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe051;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionLike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-like-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;More like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe066;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionDislike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp\" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Fewer like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe009;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;\n\n \n \n &lt;li class=\"js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 \" data-interests=\"WIKIID:Donald_Trump|WIKIID:Ryan_Zinke|WIKIID:Kellyanne_Conway|WIKIID:United_States_Secretary_of_the_Interior|YCT:001000661\" data-uuid=\"ada486f6-2ab7-3c6c-ad90-0c1bfe85c059\" &gt;\n\n&lt;div class=\"Bfc\"&gt;\n &lt;div class=\"Ov-h Mt-neg-1\" style=\"max-height:4.077em;;\"&gt;\n \n &lt;h3 class=\"Fw-b Fz-m Mb-2 Lh-115\"&gt;\n \n &lt;a href=\"https://gma.yahoo.com/trump-picks-rep-ryan-zinke-interior-secretary-033106503--abc-news-topstories.html\" data-ylk=\"cpos:2;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:ada486f6-2ab7-3c6c-ad90-0c1bfe85c059;ct:1;pkgt:3;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"js-stream-content-link Mend-4\"&gt;Trump Picks Rep. Ryan Zinke for Interior Secretary&lt;/a&gt;\n &lt;/h3&gt;\n \n &lt;p class=\"Mb-2\"&gt;President-elect Donald Trump today offered Rep. Ryan Zinke of Montana the job of secretary of the interior in his administration, senior Trump adviser Kellyanne Conway said on Fox News tonight.When reached by ABC News, a spokeswoman for Zinke declined to comment on whether he has accepted the position&lt;/p&gt;\n &lt;/div&gt;\n \n &lt;div class=\"Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h \"&gt;\n &lt;span class=\"Source Whs-nw Mend-6\"&gt;Good Morning America&lt;/span&gt;\n \n &lt;/div&gt;\n \n \n \n \n&lt;/div&gt;\n&lt;ul aria-label=\"Actions menu\" role=\"toolbar\" class=\"js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4\" style=\"*display:none\"&gt;&lt;li class=\"ActionSave Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-save-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Save&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe051;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionLike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-like-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;More like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe066;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionDislike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp\" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Fewer like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe009;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;\n\n \n \n &lt;li id=\"ad-32474069017\" class=\" js-stream-ad-noview Mb-content Bgc-c Cf Pos-r Px-12 Pt-10 Pb-8 \" data-beacon=\"https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&amp;amp;es=Zv7NRTwGIS9PlEDKmbZLuAyhnT_wOWxOvDc4UBcVLuBExQRZaXHv9Z_oIPzknzLPmTGCXnV3wmYYWEVJhUoFdEc2tGARbxdHvmOtAwUAmDG_nWE688ii8ZGs.CPhh0bzpZVIsqDiBE9dwz2PID5B6Xnxc_2eHpH6hHs5XpPVuygW.egEacfNgWn1_r5lKcS.2_5WP2OCRN6mFF522og1en7zpySl9LDc5oa8V7i1Mq5Lx_Ysp9aQc_s1NiJUqwRBkTz4VYKKQOmn4kyd93v3yTo0.dYBlVzTfUczkwQPGuMD8RyFSkhmhmSoNn4lObLCvcHySZAjv69j3ewOng73dudP.ut_BNJwHSWbb5_vV_qkA4IuUnw59mhRZHCvZGsWzAicFEoFman_ObiT8RVFe4MM&amp;amp;ap=3\"&gt;\n \n &lt;a href=\"https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;amp;es=_EyQATMGIS8JBPPVxp2hqZgyzs_01BpGtKX98b0BOXU67G4QpKxsgMsqA2wXXjzyf5QcUtnFvTwKfyDIgir2mMNxxFevzUTSjSd5W7V52uQJkEdOA7WPPTHXGdJfz3JuS2oEAXMezQ4DUlNT3EQohO0sENVDcRABda0CP70rfLiBc3N3o_3tAZK7j4oTkbVSZXECyJB9W_g_P2m8u4qPKqXyChjt8J1717PN83H5Ig1FsSR6XGCMTJQCRtKuR1r4h4.4FnTy2gL5UBbTdNN8owlSSuy9b3rMLCyJewIzqj_lPHqbxmTQuxHdZURQGsmsUjAINUY_7K.tAo0WQFvSK.6he4as5O8d.S0Ja5qdPkN3_T21MVycgPUntTVFNqBdDBCjEocCrk_02Afph6Ey7W6Hk1MdzstgG2sI0PQbGq6ApN1EdrOk2hpgC3jbABrZnsG4oTxbPjDB2OTz_93vOm8aYVEWI54E2gRWGwzRh_oNvX2eMBvQ6ScMdmn3jGyFkUsYicv9QwcRT5r0lxM_6Mgu.4VRMA59G6hHw9K1HcY8HPZdE84ZLEOHk2Jy2Jq._wNAApOp9_kt4c1qHBdQHO3B.cr29vczq0N2b0Lj5pmDQvHrUP3cuBn1hNMJtaG0wUeYXI0Ftw--%26lp=http%3A%2F%2Fwww.ifcmarkets.com%2Fen%2Fforex-cfd-trading%3Futm_source%3Dyahoo%26utm_medium%3Dcpc%26utm_term%3D%26utm_content%3Dexcellent_new%26utm_campaign%3Denglish_native_asia\" target=\"_blank\" tabindex=\"-1\" aria-hidden=\"true\" data-ylk=\"cpos:3;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:ad;g:32474069017;ct:1;pkgt:4;elm:img;rspns:nav;itc:0;r:false;ccode:false;\" class=\"Fl-start Mend-10 My-2 Ta-end\" style=\"width:82px;\"&gt;\n &lt;img src=\"https://s.yimg.com/uu/api/res/1.2/NKp6SzyjFLstHsK_F3XPng--/YXBwaWQ9eXRhY2h5b24-/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/a7e2aee2ff701ba5de82f3b1f5180f46.jpeg\" width=\"82\" height=\"82\" alt=\"IFC Markets. Forex &amp;amp; CFD trading\"&gt;\n &lt;/a&gt;\n \n &lt;div class=\"Bfc\"&gt;\n \n &lt;h3 class=\"Fw-b Fz-m Lh-115 Mb-2 Mt-neg-1 Mend-70\"&gt;\n &lt;a href=\"https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;amp;es=_EyQATMGIS8JBPPVxp2hqZgyzs_01BpGtKX98b0BOXU67G4QpKxsgMsqA2wXXjzyf5QcUtnFvTwKfyDIgir2mMNxxFevzUTSjSd5W7V52uQJkEdOA7WPPTHXGdJfz3JuS2oEAXMezQ4DUlNT3EQohO0sENVDcRABda0CP70rfLiBc3N3o_3tAZK7j4oTkbVSZXECyJB9W_g_P2m8u4qPKqXyChjt8J1717PN83H5Ig1FsSR6XGCMTJQCRtKuR1r4h4.4FnTy2gL5UBbTdNN8owlSSuy9b3rMLCyJewIzqj_lPHqbxmTQuxHdZURQGsmsUjAINUY_7K.tAo0WQFvSK.6he4as5O8d.S0Ja5qdPkN3_T21MVycgPUntTVFNqBdDBCjEocCrk_02Afph6Ey7W6Hk1MdzstgG2sI0PQbGq6ApN1EdrOk2hpgC3jbABrZnsG4oTxbPjDB2OTz_93vOm8aYVEWI54E2gRWGwzRh_oNvX2eMBvQ6ScMdmn3jGyFkUsYicv9QwcRT5r0lxM_6Mgu.4VRMA59G6hHw9K1HcY8HPZdE84ZLEOHk2Jy2Jq._wNAApOp9_kt4c1qHBdQHO3B.cr29vczq0N2b0Lj5pmDQvHrUP3cuBn1hNMJtaG0wUeYXI0Ftw--%26lp=http%3A%2F%2Fwww.ifcmarkets.com%2Fen%2Fforex-cfd-trading%3Futm_source%3Dyahoo%26utm_medium%3Dcpc%26utm_term%3D%26utm_content%3Dexcellent_new%26utm_campaign%3Denglish_native_asia\" target=\"_blank\" data-ylk=\"cpos:3;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:ad;g:32474069017;ct:1;pkgt:4;elm:hdln;rspns:nav;itc:0;r:false;ccode:false;\"&gt;IFC Markets. Forex &amp; CFD trading&lt;/a&gt;\n &lt;/h3&gt;\n \n \n \n &lt;a class=\"Pos-a Mt-10 Mend-10 T-0 End-0 Fz-xs NoLinkColor NoTextDecoration adlink\" href=\"https://info.yahoo.com/privacy/us/yahoo/relevantads.html\" target=\"_blank\" data-ylk=\"cpos:3;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:info;g:32474069017;ct:1;pkgt:4;rspns:nav;elm:itm;itc:0;r:false;ccode:false;\"&gt;AdChoices&lt;i class=\"C-f Icon\"&gt;&amp;#xe05a;&lt;/i&gt;&lt;/a&gt;\n \n \n \n &lt;p class=\"Mb-2\"&gt;Excellent Conditions for Professional Trading! 500+ trading instruments. 2 regulations: CySEC and BVI FSC. 100% dividend adjustment on stock CFDs.&lt;/p&gt;\n &lt;div class=\"Fz-xs Pos-r NoTextDecoration \"&gt;\n &lt;a class=\"Source Whs-nw Mend-6 \" href=\"https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;amp;es=_EyQATMGIS8JBPPVxp2hqZgyzs_01BpGtKX98b0BOXU67G4QpKxsgMsqA2wXXjzyf5QcUtnFvTwKfyDIgir2mMNxxFevzUTSjSd5W7V52uQJkEdOA7WPPTHXGdJfz3JuS2oEAXMezQ4DUlNT3EQohO0sENVDcRABda0CP70rfLiBc3N3o_3tAZK7j4oTkbVSZXECyJB9W_g_P2m8u4qPKqXyChjt8J1717PN83H5Ig1FsSR6XGCMTJQCRtKuR1r4h4.4FnTy2gL5UBbTdNN8owlSSuy9b3rMLCyJewIzqj_lPHqbxmTQuxHdZURQGsmsUjAINUY_7K.tAo0WQFvSK.6he4as5O8d.S0Ja5qdPkN3_T21MVycgPUntTVFNqBdDBCjEocCrk_02Afph6Ey7W6Hk1MdzstgG2sI0PQbGq6ApN1EdrOk2hpgC3jbABrZnsG4oTxbPjDB2OTz_93vOm8aYVEWI54E2gRWGwzRh_oNvX2eMBvQ6ScMdmn3jGyFkUsYicv9QwcRT5r0lxM_6Mgu.4VRMA59G6hHw9K1HcY8HPZdE84ZLEOHk2Jy2Jq._wNAApOp9_kt4c1qHBdQHO3B.cr29vczq0N2b0Lj5pmDQvHrUP3cuBn1hNMJtaG0wUeYXI0Ftw--%26lp=http%3A%2F%2Fwww.ifcmarkets.com%2Fen%2Fforex-cfd-trading%3Futm_source%3Dyahoo%26utm_medium%3Dcpc%26utm_term%3D%26utm_content%3Dexcellent_new%26utm_campaign%3Denglish_native_asia\" target=\"_blank\" data-ylk=\"cpos:3;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:adv;g:32474069017;ct:1;pkgt:4;rspns:nav;elm:itm;itc:0;r:false;ccode:false;\"&gt;IFC Markets&lt;/a&gt;\n &lt;a class=\"Dimmed \" href=\"http://help.yahoo.com/kb/index?page=content&amp;amp;y=PROD_FRONT&amp;amp;locale=en_US&amp;amp;id=SLN14553\" target=\"_blank\" data-ylk=\"cpos:3;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:sp;g:32474069017;ct:1;pkgt:4;rspns:nav;elm:itm;itc:0;r:false;ccode:false;\"&gt;Sponsored&lt;/a&gt;\n \n &lt;/div&gt;\n \n &lt;/div&gt;\n \n \n&lt;/li&gt;\n\n\n \n\n \n \n &lt;li class=\"js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 \" data-interests=\"WIKIID:Aleppo|WIKIID:Council_of_Ministers_%28Syria%29|YCT:001000713|YCT:001000661\" data-uuid=\"f19aca0b-c4b8-3be7-8ce8-a23789fb7b96\" &gt;\n\n&lt;a href=\"https://gma.yahoo.com/syrian-government-reportedly-kills-dozens-civilians-aleppo-spot-122713123--abc-news-topstories.html\" tabindex=\"-1\" aria-hidden=\"true\" data-ylk=\"cpos:4;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:f19aca0b-c4b8-3be7-8ce8-a23789fb7b96;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h\"&gt;\n &lt;img src=\"https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif\" width=\"82\" height=\"82\" alt=\"Syrian Government Reportedly Kills Dozens of Civilians in Aleppo, Some &amp;amp;#39;on the Spot,&amp;amp;#39; UN Says\" class=\"ImageLoader\" style=\"background-image:url('https://s.yimg.com/uu/api/res/1.2/zC1RIM0_sKKcJCXxKiG9eg--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/f0f8fa7a03e5920e4ca30b8ebb91481e')\"&gt;\n\n\n&lt;/a&gt;\n\n&lt;div class=\"Bfc\"&gt;\n &lt;div class=\"Ov-h Mt-neg-1\" style=\"max-height:5.308em;\"&gt;\n \n &lt;h3 class=\"Fw-b Fz-m Mb-2 Lh-115\"&gt;\n \n &lt;a href=\"https://gma.yahoo.com/syrian-government-reportedly-kills-dozens-civilians-aleppo-spot-122713123--abc-news-topstories.html\" data-ylk=\"cpos:4;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:f19aca0b-c4b8-3be7-8ce8-a23789fb7b96;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"js-stream-content-link Mend-4\"&gt;Syrian Government Reportedly Kills Dozens of Civilians in Aleppo, Some &amp;#39;on the Spot,&amp;#39; UN Says&lt;/a&gt;\n &lt;/h3&gt;\n \n &lt;p class=\"Mb-2\"&gt;Eastern Aleppo has fallen, and military activities there have stopped, according to Russia&amp;#39;s United Nations ambassador. &amp;quot;The Syrian government has re-established control over eastern Aleppo,&amp;quot; Vitaly Churkin told the U.N. Security Council on Tuesday. Residents of eastern Aleppo told ABC&lt;/p&gt;\n &lt;/div&gt;\n \n &lt;div class=\"Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h \"&gt;\n &lt;span class=\"Source Whs-nw Mend-6\"&gt;Good Morning America&lt;/span&gt;\n \n &lt;/div&gt;\n \n \n \n \n&lt;/div&gt;\n&lt;ul aria-label=\"Actions menu\" role=\"toolbar\" class=\"js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4\" style=\"*display:none\"&gt;&lt;li class=\"ActionSave Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-save-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Save&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe051;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionLike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-like-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;More like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe066;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionDislike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp\" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Fewer like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe009;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;\n\n \n \n &lt;li class=\"js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 \" data-interests=\"WIKIID:CorePower_Yoga|WIKIID:San_Diego_Police_Department|WIKIID:San_Diego|YCT:001000291|YCT:001000667|YCT:001000780|YCT:001000288\" data-uuid=\"da0a1fba-50dc-3111-b6f6-70dd528f4257\" &gt;\n\n&lt;a href=\"https://gma.yahoo.com/founder-corepower-yoga-trevor-tice-found-dead-under-021223966--abc-news-topstories.html\" tabindex=\"-1\" aria-hidden=\"true\" data-ylk=\"cpos:5;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:da0a1fba-50dc-3111-b6f6-70dd528f4257;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h\"&gt;\n &lt;img src=\"https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif\" width=\"82\" height=\"82\" alt=\"Founder of CorePower Yoga Trevor Tice Found Dead Under &amp;amp;#39;Suspicious Circumstances&amp;amp;#39; in California, Police Say\" class=\"ImageLoader\" style=\"background-image:url('https://s.yimg.com/uu/api/res/1.2/AT3Vo19rKmTTy1XMTa93Tg--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/HT-san-diego-death-scene-jt-161213_16x9_992.jpg')\"&gt;\n\n\n&lt;/a&gt;\n\n&lt;div class=\"Bfc\"&gt;\n &lt;div class=\"Ov-h Mt-neg-1\" style=\"max-height:5.308em;\"&gt;\n \n &lt;h3 class=\"Fw-b Fz-m Mb-2 Lh-115\"&gt;\n \n &lt;a href=\"https://gma.yahoo.com/founder-corepower-yoga-trevor-tice-found-dead-under-021223966--abc-news-topstories.html\" data-ylk=\"cpos:5;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:da0a1fba-50dc-3111-b6f6-70dd528f4257;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"js-stream-content-link Mend-4\"&gt;Founder of CorePower Yoga Trevor Tice Found Dead Under &amp;#39;Suspicious Circumstances&amp;#39; in California, Police Say&lt;/a&gt;\n &lt;/h3&gt;\n \n &lt;p class=\"Mb-2\"&gt;The founder of CorePower Yoga was found dead under &amp;quot;suspicious circumstances&amp;quot; in a San Diego, Calif., home. The San Diego Police Department said it received a call for a welfare check at a home on Monday at about 12:15 p.m. Responding officers found a man identified as Trevor Tice dead inside&lt;/p&gt;\n &lt;/div&gt;\n \n &lt;div class=\"Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h \"&gt;\n &lt;span class=\"Source Whs-nw Mend-6\"&gt;Good Morning America&lt;/span&gt;\n \n &lt;/div&gt;\n \n \n \n \n&lt;/div&gt;\n&lt;ul aria-label=\"Actions menu\" role=\"toolbar\" class=\"js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4\" style=\"*display:none\"&gt;&lt;li class=\"ActionSave Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-save-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Save&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe051;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionLike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-like-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;More like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe066;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionDislike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp\" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Fewer like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe009;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;\n\n \n \n &lt;li class=\"js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 \" data-interests=\"YCT:001000395|YCT:001000427|YCT:001000441\" data-uuid=\"6470aced-4402-3388-b298-eb5e7fe6ea74\" &gt;\n\n&lt;a href=\"https://gma.yahoo.com/woman-shares-her-journey-fitness-competitor-cancer-fighter-003315567--abc-news-topstories.html\" tabindex=\"-1\" aria-hidden=\"true\" data-ylk=\"cpos:6;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:6470aced-4402-3388-b298-eb5e7fe6ea74;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h\"&gt;\n &lt;img src=\"https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif\" width=\"82\" height=\"82\" alt=\"Woman Shares Her Journey From Fitness Competitor to Cancer Fighter: &amp;amp;#39;I&amp;amp;#39;m Learning to Love Myself Again&amp;amp;#39;\" class=\"ImageLoader\" style=\"background-image:url('https://s.yimg.com/uu/api/res/1.2/frVBZVk9xOJiteGalRep8w--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/HT-cheyenne-clark-jt-161213_v4x3_16x9_992.jpg')\"&gt;\n\n\n&lt;/a&gt;\n\n&lt;div class=\"Bfc\"&gt;\n &lt;div class=\"Ov-h Mt-neg-1\" style=\"max-height:5.308em;\"&gt;\n \n &lt;h3 class=\"Fw-b Fz-m Mb-2 Lh-115\"&gt;\n \n &lt;a href=\"https://gma.yahoo.com/woman-shares-her-journey-fitness-competitor-cancer-fighter-003315567--abc-news-topstories.html\" data-ylk=\"cpos:6;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:6470aced-4402-3388-b298-eb5e7fe6ea74;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"js-stream-content-link Mend-4\"&gt;Woman Shares Her Journey From Fitness Competitor to Cancer Fighter: &amp;#39;I&amp;#39;m Learning to Love Myself Again&amp;#39;&lt;/a&gt;\n &lt;/h3&gt;\n \n &lt;p class=\"Mb-2\"&gt;Cheyann Shaw, 23, has been documenting her journey from bikini fitness competitor to cancer fighter on social media to help raise awareness about the disease and to inspire others facing their own difficult battles. A photo recently posted to Instagram -- showing what Shaw&amp;#39;s body looked like before&lt;/p&gt;\n &lt;/div&gt;\n \n &lt;div class=\"Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h \"&gt;\n &lt;span class=\"Source Whs-nw Mend-6\"&gt;Good Morning America&lt;/span&gt;\n \n &lt;/div&gt;\n \n \n \n \n&lt;/div&gt;\n&lt;ul aria-label=\"Actions menu\" role=\"toolbar\" class=\"js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4\" style=\"*display:none\"&gt;&lt;li class=\"ActionSave Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-save-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Save&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe051;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionLike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-like-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;More like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe066;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionDislike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp\" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Fewer like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe009;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;\n\n \n \n &lt;li class=\"js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 \" data-interests=\"WIKIID:Peter_Travers|WIKIID:Star_Wars|WIKIID:Rolling_Stone|YCT:001000031|YCT:001000076|YCT:001000075|YCT:001000079\" data-uuid=\"f113e675-474d-3951-9431-569dd45eb537\" &gt;\n\n&lt;a href=\"https://gma.yahoo.com/critics-saying-rogue-one-star-wars-story-182413846--abc-news-celebrities.html\" tabindex=\"-1\" aria-hidden=\"true\" data-ylk=\"cpos:7;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:f113e675-474d-3951-9431-569dd45eb537;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h\"&gt;\n &lt;img src=\"https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif\" width=\"82\" height=\"82\" alt=\"What Critics Are Saying About &amp;amp;#39;Rogue One: A Star Wars Story&amp;amp;#39;\" class=\"ImageLoader\" style=\"background-image:url('https://s.yimg.com/uu/api/res/1.2/Rq7h_w4vZwH7jSc00hOMjw--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/27ec846c4c5aaa4323c702ed050d291a')\"&gt;\n\n\n&lt;/a&gt;\n\n&lt;div class=\"Bfc\"&gt;\n &lt;div class=\"Ov-h Mt-neg-1\" style=\"max-height:5.308em;\"&gt;\n \n &lt;h3 class=\"Fw-b Fz-m Mb-2 Lh-115\"&gt;\n \n &lt;a href=\"https://gma.yahoo.com/critics-saying-rogue-one-star-wars-story-182413846--abc-news-celebrities.html\" data-ylk=\"cpos:7;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:f113e675-474d-3951-9431-569dd45eb537;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"js-stream-content-link Mend-4\"&gt;What Critics Are Saying About &amp;#39;Rogue One: A Star Wars Story&amp;#39;&lt;/a&gt;\n &lt;/h3&gt;\n \n &lt;p class=\"Mb-2\"&gt;&amp;quot;For sheer scene-stealing wow, though, you can&amp;#39;t beat Donnie Yen as Chirrut Imwe, a blind warrior monk, and Riz Ahmed as Bodhi Rook, a nutjob Imperial pilot now siding with the rebels. Best of all is Alan Tudyk as the voice of K-2S0, a security droid with a mouth on him,&amp;quot; he added. Vanity&lt;/p&gt;\n &lt;/div&gt;\n \n &lt;div class=\"Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h \"&gt;\n &lt;span class=\"Source Whs-nw Mend-6\"&gt;Good Morning America&lt;/span&gt;\n \n &lt;/div&gt;\n \n \n \n \n&lt;/div&gt;\n&lt;ul aria-label=\"Actions menu\" role=\"toolbar\" class=\"js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4\" style=\"*display:none\"&gt;&lt;li class=\"ActionSave Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-save-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Save&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe051;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionLike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-like-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;More like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe066;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionDislike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp\" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Fewer like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe009;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;\n\n \n \n &lt;li class=\"js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 \" data-interests=\"WIKIID:Donald_Trump|WIKIID:Boy_Scouts_of_America|WIKIID:Rex_Tillerson|WIKIID:Tony_Perkins_%28politician%29|WIKIID:Planned_Parenthood|WIKIID:ExxonMobil|YCT:001000661\" data-uuid=\"fb3d831c-9dab-36e1-9fe8-ca328b6d3041\" &gt;\n\n&lt;a href=\"https://gma.yahoo.com/evangelical-leader-tony-perkins-blasts-rex-tillerson-trumps-210816203--abc-news-topstories.html\" tabindex=\"-1\" aria-hidden=\"true\" data-ylk=\"cpos:8;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:fb3d831c-9dab-36e1-9fe8-ca328b6d3041;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h\"&gt;\n &lt;img src=\"https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif\" width=\"82\" height=\"82\" alt=\"Evangelical Leader Tony Perkins Blasts Rex Tillerson as Trump&amp;amp;#39;s Pick for Secretary of State\" class=\"ImageLoader\" style=\"background-image:url('https://s.yimg.com/uu/api/res/1.2/AqmTwaPXfpyxvEePvI73qw--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/GTY-tony-perkins-01-as-161213_16x9_992.jpg')\"&gt;\n\n\n&lt;/a&gt;\n\n&lt;div class=\"Bfc\"&gt;\n &lt;div class=\"Ov-h Mt-neg-1\" style=\"max-height:5.308em;\"&gt;\n \n &lt;h3 class=\"Fw-b Fz-m Mb-2 Lh-115\"&gt;\n \n &lt;a href=\"https://gma.yahoo.com/evangelical-leader-tony-perkins-blasts-rex-tillerson-trumps-210816203--abc-news-topstories.html\" data-ylk=\"cpos:8;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:fb3d831c-9dab-36e1-9fe8-ca328b6d3041;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"js-stream-content-link Mend-4\"&gt;Evangelical Leader Tony Perkins Blasts Rex Tillerson as Trump&amp;#39;s Pick for Secretary of State&lt;/a&gt;\n &lt;/h3&gt;\n \n &lt;p class=\"Mb-2\"&gt;Perkins wrote in a blog post published Monday, “To hear that Donald Trump may be appointing a man who not only led the charge to open the Boy Scouts to gay troop leaders but whose company directly gives to Planned Parenthood is upsetting, at best.&lt;/p&gt;\n &lt;/div&gt;\n \n &lt;div class=\"Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h \"&gt;\n &lt;span class=\"Source Whs-nw Mend-6\"&gt;Good Morning America&lt;/span&gt;\n \n &lt;/div&gt;\n \n \n \n \n&lt;/div&gt;\n&lt;ul aria-label=\"Actions menu\" role=\"toolbar\" class=\"js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4\" style=\"*display:none\"&gt;&lt;li class=\"ActionSave Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-save-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Save&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe051;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionLike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-like-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;More like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe066;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionDislike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp\" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Fewer like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe009;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;\n\n \n \n &lt;li class=\"js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 \" data-interests=\"WIKIID:Trump_Tower_%28New_York_City%29|YCT:001000661\" data-uuid=\"3ca4dab5-bb07-3a9b-a538-401da333f694\" &gt;\n\n&lt;a href=\"https://gma.yahoo.com/kanye-west-meets-donald-trump-york-150850439--abc-news-topstories.html\" tabindex=\"-1\" aria-hidden=\"true\" data-ylk=\"cpos:9;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:3ca4dab5-bb07-3a9b-a538-401da333f694;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h\"&gt;\n &lt;img src=\"https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif\" width=\"82\" height=\"82\" alt=\"Kanye West Says He Discussed &amp;amp;#39;Multicultural Issues,&amp;amp;#39; Chicago Violence With Trump\" class=\"ImageLoader\" style=\"background-image:url('https://s.yimg.com/uu/api/res/1.2/lkAOQAcPGFRkIpuSQydxYQ--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/d9bc62c444ad53f08a514cee770a9862')\"&gt;\n\n\n&lt;/a&gt;\n\n&lt;div class=\"Bfc\"&gt;\n &lt;div class=\"Ov-h Mt-neg-1\" style=\"max-height:5.308em;\"&gt;\n \n &lt;h3 class=\"Fw-b Fz-m Mb-2 Lh-115\"&gt;\n \n &lt;a href=\"https://gma.yahoo.com/kanye-west-meets-donald-trump-york-150850439--abc-news-topstories.html\" data-ylk=\"cpos:9;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:3ca4dab5-bb07-3a9b-a538-401da333f694;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"js-stream-content-link Mend-4\"&gt;Kanye West Says He Discussed &amp;#39;Multicultural Issues,&amp;#39; Chicago Violence With Trump&lt;/a&gt;\n &lt;/h3&gt;\n \n &lt;p class=\"Mb-2\"&gt;President-Elect Donald Trump met with rapper Kanye West at Trump Tower today, discussing &amp;quot;multicultural issues,&amp;quot; bullying and violence in Chicago, according to the rapper.Trump appeared to have a slightly different take on the meeting, saying the men &amp;quot;discussed life.&amp;quot;&amp;quot;We’ve been&lt;/p&gt;\n &lt;/div&gt;\n \n &lt;div class=\"Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h \"&gt;\n &lt;span class=\"Source Whs-nw Mend-6\"&gt;Good Morning America&lt;/span&gt;\n \n &lt;/div&gt;\n \n \n \n \n&lt;/div&gt;\n&lt;ul aria-label=\"Actions menu\" role=\"toolbar\" class=\"js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4\" style=\"*display:none\"&gt;&lt;li class=\"ActionSave Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-save-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Save&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe051;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionLike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-like-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;More like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe066;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionDislike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp\" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Fewer like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe009;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;\n\n \n \n &lt;li id=\"ad-32588460847\" class=\" js-stream-ad-noview Mb-content Bgc-c Cf Pos-r Px-12 Pt-10 Pb-8 \" data-beacon=\"https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&amp;amp;es=uYfVWIsGIS93x286R7DeIk1ISkOlZdozdC1hQViI5Za.ImCfoSNpADpTc_Uv1dQVDlyAo3J9_4DtL5Z5qn.CbMKeGlv0dEMS4qXUGXiLzmNMBH34RAuLS80S8jWlOZcVYX2p9B37mnJNf91FVIGTUHvIau2v5FZaMkgagKug9xtFvbmtRezj_hL2aJ1IZ8y9IjKNcet4Ndggk6u6tUmmcgSkh0IZx8ZjMgGCtBX8hswt5xhChoiVu.f.TT187nj0trCCultodT4fH8Gg3JTEPS3z_Gr_EFvTfglRTYZDyrE0MS2My4hLzOfFV2G514.WxXF2hYlW0PAa6J50PxukCqIqvgiwjphciHvfjzm7K5k9EAvgULgkwEuMnMCB9kiQV92n9vRQhuXih9xMutWweizJ1AI-&amp;amp;ap=10\"&gt;\n \n &lt;a href=\"https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;amp;es=KM6PMZQGIS_d7tLRcAGm2SfAmkfgz_VFgJxeAhqA6c7Obp4g26tCZgIkylW2cJIvqP59JNT1I9.ooT8Z06wHYwXA38o2luemXMHyvykcaaxZuEPLFhP4JYrjWc.gsDbVBQeC1BnLTRGGHIIq4vL3gihT2Gty4zxwHAJNOgKEjWsqC3Wwyb6l8CtBy3lquirYoKN0q0H.UzEWr4iIRjzSTzHuZ42sc.rcfNhPw.rEYqCDV42lFyH_ILlVHfGtxI9iQv.bK8hkaW4khKiVkBSIVk03_9jzkBVHqLHq3ZF5YCuFBP9SO6GIYOECWmj3Ik8ItOJVP9caZshYlvfDTwobXMRsm5a4j33oQrYkrj6uazgvGfYkHptP6.sIrnISf2l0KafBuej27dgWlfe8Rt.k0vOdv_iZ9Lba5W4WDy3Zbj0U4ZrKUyMjPekc8QOnYVuLypaw1ScRYmq8HNUOYa12znlheghAqFOAl9bG0L0bxLnQQghx3dcu5rUSaqYBKZK_s2ZMqhVtIGgtfhPgSIGVRTvxYRFyxMyLliqY7bhVgqIep_FP6L0rj9CcfbG6Yd.gu2Mety.e39B1xWJBsu7fs1vFKzfFn5qnCRxTB8Jima0xbZJK%26lp=https%3A%2F%2Fwww.globalusagreencard.org%2Flanding_page%2Fv3%2F%3Futm_source%3Dyahoo_gemini%26utm_medium%3Dcontent%26lang%3Den-EN%26r%3DYG%26c%3Deast%26adg_id%3D32588460847\" target=\"_blank\" tabindex=\"-1\" aria-hidden=\"true\" data-ylk=\"cpos:10;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:ad;g:32588460847;ct:1;pkgt:4;elm:img;rspns:nav;itc:0;r:false;ccode:false;\" class=\"Fl-start Mend-10 My-2 Ta-end\" style=\"width:82px;\"&gt;\n &lt;img src=\"https://s.yimg.com/uu/api/res/1.2/GF1FscDQnXczQKoNSUFZYg--/YXBwaWQ9eXRhY2h5b24-/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/8a5b4113cc4325cb8be827aab4bba1aa.jpeg\" width=\"82\" height=\"82\" alt=\"Apply for the 2017 US Green Card Lottery\"&gt;\n &lt;/a&gt;\n \n &lt;div class=\"Bfc\"&gt;\n \n &lt;h3 class=\"Fw-b Fz-m Lh-115 Mb-2 Mt-neg-1 Mend-70\"&gt;\n &lt;a href=\"https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;amp;es=KM6PMZQGIS_d7tLRcAGm2SfAmkfgz_VFgJxeAhqA6c7Obp4g26tCZgIkylW2cJIvqP59JNT1I9.ooT8Z06wHYwXA38o2luemXMHyvykcaaxZuEPLFhP4JYrjWc.gsDbVBQeC1BnLTRGGHIIq4vL3gihT2Gty4zxwHAJNOgKEjWsqC3Wwyb6l8CtBy3lquirYoKN0q0H.UzEWr4iIRjzSTzHuZ42sc.rcfNhPw.rEYqCDV42lFyH_ILlVHfGtxI9iQv.bK8hkaW4khKiVkBSIVk03_9jzkBVHqLHq3ZF5YCuFBP9SO6GIYOECWmj3Ik8ItOJVP9caZshYlvfDTwobXMRsm5a4j33oQrYkrj6uazgvGfYkHptP6.sIrnISf2l0KafBuej27dgWlfe8Rt.k0vOdv_iZ9Lba5W4WDy3Zbj0U4ZrKUyMjPekc8QOnYVuLypaw1ScRYmq8HNUOYa12znlheghAqFOAl9bG0L0bxLnQQghx3dcu5rUSaqYBKZK_s2ZMqhVtIGgtfhPgSIGVRTvxYRFyxMyLliqY7bhVgqIep_FP6L0rj9CcfbG6Yd.gu2Mety.e39B1xWJBsu7fs1vFKzfFn5qnCRxTB8Jima0xbZJK%26lp=https%3A%2F%2Fwww.globalusagreencard.org%2Flanding_page%2Fv3%2F%3Futm_source%3Dyahoo_gemini%26utm_medium%3Dcontent%26lang%3Den-EN%26r%3DYG%26c%3Deast%26adg_id%3D32588460847\" target=\"_blank\" data-ylk=\"cpos:10;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:ad;g:32588460847;ct:1;pkgt:4;elm:hdln;rspns:nav;itc:0;r:false;ccode:false;\"&gt;Apply for the 2017 US Green Card Lottery&lt;/a&gt;\n &lt;/h3&gt;\n \n \n \n &lt;a class=\"Pos-a Mt-10 Mend-10 T-0 End-0 Fz-xs NoLinkColor NoTextDecoration adlink\" href=\"https://info.yahoo.com/privacy/us/yahoo/relevantads.html\" target=\"_blank\" data-ylk=\"cpos:10;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:info;g:32588460847;ct:1;pkgt:4;rspns:nav;elm:itm;itc:0;r:false;ccode:false;\"&gt;AdChoices&lt;i class=\"C-f Icon\"&gt;&amp;#xe05a;&lt;/i&gt;&lt;/a&gt;\n \n \n \n &lt;p class=\"Mb-2\"&gt;A US Green Card could be yours!&lt;/p&gt;\n &lt;div class=\"Fz-xs Pos-r NoTextDecoration \"&gt;\n &lt;a class=\"Source Whs-nw Mend-6 \" href=\"https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;amp;es=KM6PMZQGIS_d7tLRcAGm2SfAmkfgz_VFgJxeAhqA6c7Obp4g26tCZgIkylW2cJIvqP59JNT1I9.ooT8Z06wHYwXA38o2luemXMHyvykcaaxZuEPLFhP4JYrjWc.gsDbVBQeC1BnLTRGGHIIq4vL3gihT2Gty4zxwHAJNOgKEjWsqC3Wwyb6l8CtBy3lquirYoKN0q0H.UzEWr4iIRjzSTzHuZ42sc.rcfNhPw.rEYqCDV42lFyH_ILlVHfGtxI9iQv.bK8hkaW4khKiVkBSIVk03_9jzkBVHqLHq3ZF5YCuFBP9SO6GIYOECWmj3Ik8ItOJVP9caZshYlvfDTwobXMRsm5a4j33oQrYkrj6uazgvGfYkHptP6.sIrnISf2l0KafBuej27dgWlfe8Rt.k0vOdv_iZ9Lba5W4WDy3Zbj0U4ZrKUyMjPekc8QOnYVuLypaw1ScRYmq8HNUOYa12znlheghAqFOAl9bG0L0bxLnQQghx3dcu5rUSaqYBKZK_s2ZMqhVtIGgtfhPgSIGVRTvxYRFyxMyLliqY7bhVgqIep_FP6L0rj9CcfbG6Yd.gu2Mety.e39B1xWJBsu7fs1vFKzfFn5qnCRxTB8Jima0xbZJK%26lp=https%3A%2F%2Fwww.globalusagreencard.org%2Flanding_page%2Fv3%2F%3Futm_source%3Dyahoo_gemini%26utm_medium%3Dcontent%26lang%3Den-EN%26r%3DYG%26c%3Deast%26adg_id%3D32588460847\" target=\"_blank\" data-ylk=\"cpos:10;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:adv;g:32588460847;ct:1;pkgt:4;rspns:nav;elm:itm;itc:0;r:false;ccode:false;\"&gt;Global USA Green Card&lt;/a&gt;\n &lt;a class=\"Dimmed \" href=\"http://help.yahoo.com/kb/index?page=content&amp;amp;y=PROD_FRONT&amp;amp;locale=en_US&amp;amp;id=SLN14553\" target=\"_blank\" data-ylk=\"cpos:10;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:sp;g:32588460847;ct:1;pkgt:4;rspns:nav;elm:itm;itc:0;r:false;ccode:false;\"&gt;Sponsored&lt;/a&gt;\n \n &lt;/div&gt;\n \n &lt;/div&gt;\n \n \n&lt;/li&gt;\n\n\n \n\n \n \n &lt;li class=\"js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 \" data-interests=\"WIKIID:Barack_Obama|WIKIID:Ali_Jaber|WIKIID:Drone_strikes_in_Pakistan|YCT:001000661|YCT:001000713|YCT:001000780|YCT:001000720\" data-uuid=\"48897845-e806-3216-b2ae-4213132dbf4e\" &gt;\n\n&lt;a href=\"https://gma.yahoo.com/man-says-relatives-were-killed-us-drone-strike-164206896--abc-news-topstories.html\" tabindex=\"-1\" aria-hidden=\"true\" data-ylk=\"cpos:11;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:48897845-e806-3216-b2ae-4213132dbf4e;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h\"&gt;\n &lt;img src=\"https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif\" width=\"82\" height=\"82\" alt=\"Man Who Says Relatives Were Killed by US Drone Strike Heads to Federal Court\" class=\"ImageLoader\" style=\"background-image:url('https://s.yimg.com/uu/api/res/1.2/lsSVyqvn7P.UlvhuWHAlGA--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/gty-yemen-drone-faisal-bin-ali-jaber-jc-161212_16x9_992.jpg')\"&gt;\n\n\n&lt;/a&gt;\n\n&lt;div class=\"Bfc\"&gt;\n &lt;div class=\"Ov-h Mt-neg-1\" style=\"max-height:5.308em;\"&gt;\n \n &lt;h3 class=\"Fw-b Fz-m Mb-2 Lh-115\"&gt;\n \n &lt;a href=\"https://gma.yahoo.com/man-says-relatives-were-killed-us-drone-strike-164206896--abc-news-topstories.html\" data-ylk=\"cpos:11;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:48897845-e806-3216-b2ae-4213132dbf4e;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"js-stream-content-link Mend-4\"&gt;Man Who Says Relatives Were Killed by US Drone Strike Heads to Federal Court&lt;/a&gt;\n &lt;/h3&gt;\n \n &lt;p class=\"Mb-2\"&gt;Faisal bin Ali Jaber, a Yemeni man who claims he lost members of his family in a U.S. drone strike, was set to attend a U.S. appellate court hearing today regarding the alleged incident in what could become a landmark case. Jaber, an engineer, spoke to ABC News about the alleged drone strike, which&lt;/p&gt;\n &lt;/div&gt;\n \n &lt;div class=\"Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h \"&gt;\n &lt;span class=\"Source Whs-nw Mend-6\"&gt;Good Morning America&lt;/span&gt;\n \n &lt;/div&gt;\n \n \n \n \n&lt;/div&gt;\n&lt;ul aria-label=\"Actions menu\" role=\"toolbar\" class=\"js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4\" style=\"*display:none\"&gt;&lt;li class=\"ActionSave Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-save-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Save&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe051;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionLike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-like-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;More like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe066;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionDislike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp\" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Fewer like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe009;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;\n\n \n \n &lt;li class=\"js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 \" data-interests=\"WIKIID:John_Peck_%28Australian_rules_footballer%29|YCT:001000545\" data-uuid=\"a5b99a73-2049-31d8-8698-d763766cc1f4\" &gt;\n\n&lt;a href=\"https://gma.yahoo.com/veteran-received-life-changing-double-arm-transplant-shows-205806453--abc-news-topstories.html\" tabindex=\"-1\" aria-hidden=\"true\" data-ylk=\"cpos:12;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:a5b99a73-2049-31d8-8698-d763766cc1f4;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h\"&gt;\n &lt;img src=\"https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif\" width=\"82\" height=\"82\" alt=\"Veteran Who Received Life-Changing Double-Arm Transplant Shows Off Progress\" class=\"ImageLoader\" style=\"background-image:url('https://s.yimg.com/uu/api/res/1.2/Seiaq_unMwSR3jFTOwKZbQ--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/HT_arm_transplant_02_as_161005_16x9_992.jpg')\"&gt;\n\n\n&lt;/a&gt;\n\n&lt;div class=\"Bfc\"&gt;\n &lt;div class=\"Ov-h Mt-neg-1\" style=\"max-height:5.308em;\"&gt;\n \n &lt;h3 class=\"Fw-b Fz-m Mb-2 Lh-115\"&gt;\n \n &lt;a href=\"https://gma.yahoo.com/veteran-received-life-changing-double-arm-transplant-shows-205806453--abc-news-topstories.html\" data-ylk=\"cpos:12;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:a5b99a73-2049-31d8-8698-d763766cc1f4;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"js-stream-content-link Mend-4\"&gt;Veteran Who Received Life-Changing Double-Arm Transplant Shows Off Progress&lt;/a&gt;\n &lt;/h3&gt;\n \n &lt;p class=\"Mb-2\"&gt;Just four months after undergoing a life-changing double-arm transplant, John Peck shared how far he has come by releasing a video of him being able to control his elbow. Peck shared a video on Monday in which -- with the help of a therapist -- he slowly and carefully practices moving his right elbow&lt;/p&gt;\n &lt;/div&gt;\n \n &lt;div class=\"Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h \"&gt;\n &lt;span class=\"Source Whs-nw Mend-6\"&gt;Good Morning America&lt;/span&gt;\n \n &lt;/div&gt;\n \n \n \n \n&lt;/div&gt;\n&lt;ul aria-label=\"Actions menu\" role=\"toolbar\" class=\"js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4\" style=\"*display:none\"&gt;&lt;li class=\"ActionSave Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-save-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Save&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe051;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionLike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-like-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;More like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe066;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionDislike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp\" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Fewer like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe009;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;\n\n \n \n &lt;li class=\"js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 \" data-interests=\"WIKIID:Aunt_Sally|YCT:001000031|YCT:001000780|YCT:001000071\" data-uuid=\"e8961efb-8186-3082-ba8a-5b6154092ee3\" &gt;\n\n&lt;a href=\"https://gma.yahoo.com/deck-halls-awkward-family-holiday-photos-195305687--abc-news-topstories.html\" tabindex=\"-1\" aria-hidden=\"true\" data-ylk=\"cpos:13;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:e8961efb-8186-3082-ba8a-5b6154092ee3;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h\"&gt;\n &lt;img src=\"https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif\" width=\"82\" height=\"82\" alt=\"Deck the Halls With These Awkward Family Holiday Photos\" class=\"ImageLoader\" style=\"background-image:url('https://s.yimg.com/uu/api/res/1.2/3yUy9V1KP5MOjyFABbF1Eg--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/2943a3aa244127daf2794fb1f63ec3a0')\"&gt;\n\n\n&lt;/a&gt;\n\n&lt;div class=\"Bfc\"&gt;\n &lt;div class=\"Ov-h Mt-neg-1\" style=\"max-height:5.308em;\"&gt;\n \n &lt;h3 class=\"Fw-b Fz-m Mb-2 Lh-115\"&gt;\n \n &lt;a href=\"https://gma.yahoo.com/deck-halls-awkward-family-holiday-photos-195305687--abc-news-topstories.html\" data-ylk=\"cpos:13;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:e8961efb-8186-3082-ba8a-5b6154092ee3;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"js-stream-content-link Mend-4\"&gt;Deck the Halls With These Awkward Family Holiday Photos&lt;/a&gt;\n &lt;/h3&gt;\n \n &lt;p class=\"Mb-2\"&gt;Gathering together for holiday family photos can be fun, or it can be disaster. Perhaps Uncle Larry had too much eggnog, or Aunt Sally insisted on everyone wearing her hand-knit Christmas sweaters, or maybe the little kids just couldn’t handle smiling for a single shot. And if you haven’t giggled enough&lt;/p&gt;\n &lt;/div&gt;\n \n &lt;div class=\"Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h \"&gt;\n &lt;span class=\"Source Whs-nw Mend-6\"&gt;Good Morning America&lt;/span&gt;\n \n &lt;/div&gt;\n \n \n \n \n&lt;/div&gt;\n&lt;ul aria-label=\"Actions menu\" role=\"toolbar\" class=\"js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4\" style=\"*display:none\"&gt;&lt;li class=\"ActionSave Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-save-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Save&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe051;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionLike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-like-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;More like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe066;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionDislike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp\" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Fewer like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe009;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;\n\n \n \n &lt;li class=\"js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 \" data-interests=\"WIKIID:Christmas_club|WIKIID:Christmas|YCT:001000780|YCT:001000395|YCT:001000560|YCT:001001060|YCT:001001062|YCT:001000295\" data-uuid=\"fea9ada4-c1b7-3c58-bbea-8da308640f57\" &gt;\n\n&lt;a href=\"https://gma.yahoo.com/hospital-cafeteria-worker-saves-thousands-dollars-buy-toys-154543711--abc-news-topstories.html\" tabindex=\"-1\" aria-hidden=\"true\" data-ylk=\"cpos:14;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:fea9ada4-c1b7-3c58-bbea-8da308640f57;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h\"&gt;\n &lt;img src=\"https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif\" width=\"82\" height=\"82\" alt=\"Hospital Cafeteria Worker Saves Thousands of Dollars to Buy Toys for Kids at Christmas\" class=\"ImageLoader\" style=\"background-image:url('https://s.yimg.com/uu/api/res/1.2/NQZt7ctmogRo_g6ugUUKGw--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/c7aeb63563dc1722f6c98e3262acb445')\"&gt;\n\n\n&lt;/a&gt;\n\n&lt;div class=\"Bfc\"&gt;\n &lt;div class=\"Ov-h Mt-neg-1\" style=\"max-height:5.308em;\"&gt;\n \n &lt;h3 class=\"Fw-b Fz-m Mb-2 Lh-115\"&gt;\n \n &lt;a href=\"https://gma.yahoo.com/hospital-cafeteria-worker-saves-thousands-dollars-buy-toys-154543711--abc-news-topstories.html\" data-ylk=\"cpos:14;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:fea9ada4-c1b7-3c58-bbea-8da308640f57;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"js-stream-content-link Mend-4\"&gt;Hospital Cafeteria Worker Saves Thousands of Dollars to Buy Toys for Kids at Christmas&lt;/a&gt;\n &lt;/h3&gt;\n \n &lt;p class=\"Mb-2\"&gt;Jessie Tenyani has no children of her own, but for each of the past eight years, she has put away thousands of dollars from her paycheck as a hospital cafeteria worker to buy toys for kids for Christmas. Tenyani, 55, of Chicago, hand-picks the toys, as many as 1,000 each Christmas, and donates them&lt;/p&gt;\n &lt;/div&gt;\n \n &lt;div class=\"Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h \"&gt;\n &lt;span class=\"Source Whs-nw Mend-6\"&gt;Good Morning America&lt;/span&gt;\n \n &lt;/div&gt;\n \n \n \n \n&lt;/div&gt;\n&lt;ul aria-label=\"Actions menu\" role=\"toolbar\" class=\"js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4\" style=\"*display:none\"&gt;&lt;li class=\"ActionSave Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-save-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Save&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe051;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionLike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-like-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;More like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe066;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionDislike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp\" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Fewer like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe009;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;\n\n \n \n &lt;li class=\"js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 \" data-interests=\"WIKIID:Delta_Air_Lines|WIKIID:Airport_police|YCT:001000667|YCT:001000992\" data-uuid=\"5a111841-a550-38c2-baa6-a719288d4a29\" &gt;\n\n&lt;a href=\"https://gma.yahoo.com/video-shows-police-dragging-woman-off-delta-flight-193904310--abc-news-topstories.html\" tabindex=\"-1\" aria-hidden=\"true\" data-ylk=\"cpos:15;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:5a111841-a550-38c2-baa6-a719288d4a29;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h\"&gt;\n &lt;img src=\"https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif\" width=\"82\" height=\"82\" alt=\"Video Captures Moment Police Drag Uncooperative Passenger off Delta Flight\" class=\"ImageLoader\" style=\"background-image:url('https://s.yimg.com/uu/api/res/1.2/0TVxONSnPzpWrgwJ700.Ew--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en_us/gma/us.abcnews.gma.com/HT-Woman-Off-Delta-Flight-MEM-161213_16x9_992.jpg')\"&gt;\n\n\n&lt;/a&gt;\n\n&lt;div class=\"Bfc\"&gt;\n &lt;div class=\"Ov-h Mt-neg-1\" style=\"max-height:5.308em;\"&gt;\n \n &lt;h3 class=\"Fw-b Fz-m Mb-2 Lh-115\"&gt;\n \n &lt;a href=\"https://gma.yahoo.com/video-shows-police-dragging-woman-off-delta-flight-193904310--abc-news-topstories.html\" data-ylk=\"cpos:15;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:5a111841-a550-38c2-baa6-a719288d4a29;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"js-stream-content-link Mend-4\"&gt;Video Captures Moment Police Drag Uncooperative Passenger off Delta Flight&lt;/a&gt;\n &lt;/h3&gt;\n \n &lt;p class=\"Mb-2\"&gt;A video has surfaced showing an airport police officer dragging a passenger by her wrists face-up along a carpeted aisle to the front of a plane. The video then shows a second officer grabbing the passenger by the ankles to help lift her to the exit.The passenger was removed from the flight for failing&lt;/p&gt;\n &lt;/div&gt;\n \n &lt;div class=\"Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h \"&gt;\n &lt;span class=\"Source Whs-nw Mend-6\"&gt;Good Morning America&lt;/span&gt;\n \n &lt;/div&gt;\n \n \n \n \n&lt;/div&gt;\n&lt;ul aria-label=\"Actions menu\" role=\"toolbar\" class=\"js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4\" style=\"*display:none\"&gt;&lt;li class=\"ActionSave Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-save-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Save&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe051;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionLike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-like-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;More like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe066;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionDislike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp\" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Fewer like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe009;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;\n\n \n \n &lt;li class=\"js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 \" data-interests=\"WIKIID:Christmas_card|WIKIID:Christmas|WIKIID:Facebook|YCT:001000780|YCT:001001062\" data-uuid=\"3c72182d-1f31-31f6-8fda-6916938be05f\" &gt;\n\n&lt;a href=\"https://gma.yahoo.com/wife-creatively-includes-deployed-air-force-husband-family-183904735--abc-news-topstories.html\" tabindex=\"-1\" aria-hidden=\"true\" data-ylk=\"cpos:16;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:3c72182d-1f31-31f6-8fda-6916938be05f;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h\"&gt;\n &lt;img src=\"https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif\" width=\"82\" height=\"82\" alt=\"Wife Creatively Includes Deployed Air Force Husband in Family Christmas Card\" class=\"ImageLoader\" style=\"background-image:url('https://s.yimg.com/uu/api/res/1.2/y9wkR2ZsvhhQzjh91lRgRA--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/c67e407fc84680e75ba8dcd4af3c2e55')\"&gt;\n\n\n&lt;/a&gt;\n\n&lt;div class=\"Bfc\"&gt;\n &lt;div class=\"Ov-h Mt-neg-1\" style=\"max-height:5.308em;\"&gt;\n \n &lt;h3 class=\"Fw-b Fz-m Mb-2 Lh-115\"&gt;\n \n &lt;a href=\"https://gma.yahoo.com/wife-creatively-includes-deployed-air-force-husband-family-183904735--abc-news-topstories.html\" data-ylk=\"cpos:16;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:3c72182d-1f31-31f6-8fda-6916938be05f;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"js-stream-content-link Mend-4\"&gt;Wife Creatively Includes Deployed Air Force Husband in Family Christmas Card&lt;/a&gt;\n &lt;/h3&gt;\n \n &lt;p class=\"Mb-2\"&gt;Ain’t no mountain high enough, ain’t no valley low enough, ain’t no river wide enough to keep this military wife from including her deployed husband in their family Christmas card. Ashley Sistrunk was feeling a bit down after seeing all her friends’ family holiday photos on Facebook, so she came up&lt;/p&gt;\n &lt;/div&gt;\n \n &lt;div class=\"Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h \"&gt;\n &lt;span class=\"Source Whs-nw Mend-6\"&gt;Good Morning America&lt;/span&gt;\n \n &lt;/div&gt;\n \n \n \n \n&lt;/div&gt;\n&lt;ul aria-label=\"Actions menu\" role=\"toolbar\" class=\"js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4\" style=\"*display:none\"&gt;&lt;li class=\"ActionSave Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-save-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Save&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe051;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionLike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-like-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;More like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe066;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionDislike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp\" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Fewer like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe009;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;\n\n \n \n &lt;li id=\"ad-32572483510\" class=\" js-stream-ad-noview Mb-content Bgc-c Cf Pos-r Px-12 Pt-10 Pb-8 \" data-beacon=\"https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&amp;amp;es=aVA0ALEGIS.2IGI6Mye0PdVFiCieLGgTjhXdf314JNtY_uhF1ag5aqnDFuvyJ0pHgrjBm7p0__mTpHzF2NK6M29l3rxhySqz6PuhUYFW1H7gVXs.tqRSTpkjOFaC32XasHxNwV1oC0wKHT4KhmkqME8RYFAppdIrDg0SWFzgAdRh6VJkae8yHbWffOKjHl3N6GdOEpljtzrv8whA856peHnxcViukLyIGGChTyBymXbTqEB67DcXJudhqbV6MrFEU.cZmSasO7wo_FxgzV5OFCqw3RKdDQNTzC5ces8L63_cGn0uGdp2fPWhTEg5vikPJwqN0L7Ac1jZ3FJ8uuErI0IZ0U_xw9L6mKgwD6sls_kjxDJ.WBC5m409.qATpP3hUQgHpjyxhwC6flzjbkU-&amp;amp;ap=17\"&gt;\n \n &lt;a href=\"https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;amp;es=1Vg_vM8GIS_jYbYOgkZwvFcEzB9pYLoQHDL4ZHqI.C9U4KSUiJIz5WAZWJ21cEn9R5MRZ77c2A_YsTspV1WODtvJY2wjlAFCuaNwUw5QjzcgCOo71IkkFQsbr.UaQLOID5DzN3eqhX9UhOme.BWfoyWYMmiLAhpoOYMdUbFUHYdGhSDeWNLfz3mQNg8KUUHy.DMrRqMAf9tMwawHwabEL9dsMG4zG__W0NAhtQ7M9iygHtRVNyYgkeoNqwDKi2O4aq_4dq_s2xVmSq30FEeaJ2BBxLD9mFJdkColTLJSi8Qv7FXkHdgERIeHh8D4s4x1vSybJycTqwVS4Kd0gyj4RjGC7TQGEqZJ4QjX8WudfdrgAvY934zbe3_uec9rKPD6WhPqBXObktwzO0uBqy6ukKCeaI5dZ.P3D7cEZhYfSznK0Rjr_eo3kp13rOVYi.tDzFbfRvEi_02PLSN9bjdlnnlkhMJvsSs0rS_6u0aDhuUDjE_0Tv9BzsAVx8iFYE6psri5G7aOCQuiwOW0ohNiec9qM08q_LufKVYHh8yauT3mpPyd16yQXt_EedFjE0q6Nx3VoECkd4l7_IxlbvvpW2cRJ5f0XZZcYPNAAx2ZnHusfv_D.s76TFqHaA8raOvijxnGbTPG1vaqYH_08Mjij8bRzZ1ybameGnDclan37cKQTCvLjrXa0zGBZ1ROkwanmFqlLr5nNQ2LV.ey3nzUq0DTDZ2fB7572R65FcuOUoIY74sABMqSqCLubeBfD2SR7fFl6BuPvwEJDQ5AWU58as6YG_iICUXdB_y4QROTmbK9Yx0vAnPq4aABb3ALRn49rU0.ex2REO5GfZAqgbybwkvNmVM9MoUNWCfaWGkJ9bsoDamiGRINy6MtsBOD7yBlGaD7BJyir7Exn5a1fnnd06i.wG1G3Ee4_R.T2gSFwegVkAIsBmVj9ukYh3.8hi2E2jwoI0u7NctdBeTI3Mgi3xyPZKNMVxDuj6j6gVkU08IDtRgIKL94eOJr351fMk3fTtDw40SIo3O4i2vfu_LfOyRgP_gku0dVSJcgNxzCgg0FIg8gTkeTDdI1TdNM9Pei0sPOiInzU5mxoUwFi6NRPlqpYyaMBx7CuBuGrLZIJo4nWLiyBgrEJEtvpLpbWMK4KpFOw4n8YIxSp35Wcn8vEmTAsDoZH1ArNWBiNiFL2QvlNSzBvWHMLiosv4zETWMC3H5RTyc6ISnPYyP.0U_5TLG77eokuxnxgXk3fegWJBA-%26lp=http%3A%2F%2Fbs.serving-sys.com%2FServing%2F%3Fcn%3Dsearch%26semdid%3D7_353219189_9113774098_lfrv2jCE%26semid%3D1%26seid%3D7%26semuserid%3D%26advid%3D108226%26mmx%3D%24%24sekwid%3D%26seadid%3D32572483510%26sekwtxt%3D%26matchtype%3D%24%24%26semdata%3D%24%24mkwid%3Dlfrv2jCE_32572483510___c%26mtid%3D744he937470%24%24%26urtu%3Dhttp%253A%252F%252Fd.agkn.com%252Fpixel%252F7636%252F%253Fatr%253D%2526col%253D37470%252C103%252C103353219189%252C%252C%252C%2526l0%253Dhttps%253A%252F%252Fwww.cricketwireless.com%252Flg-cyber-deals.html%253Fwoo_campaign%253DSEM%2526woo_source%253DYAHGEM_PPC%2526woo_medium%253Dkeyword%2526woo_content%253DQ4%252BHeavy-Up_TMobile%252BCustomers%2526woo_term%253D\" target=\"_blank\" tabindex=\"-1\" aria-hidden=\"true\" data-ylk=\"cpos:17;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:ad;g:32572483510;ct:1;pkgt:4;elm:img;rspns:nav;itc:0;r:false;ccode:false;\" class=\"Fl-start Mend-10 My-2 Ta-end\" style=\"width:82px;\"&gt;\n &lt;img src=\"https://s.yimg.com/uu/api/res/1.2/m_UyoICU1famxwC5nvD6LA--/YXBwaWQ9eXRhY2h5b24-/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/9807f365e14c7964db0ac90a6a8b4899.jpeg\" width=\"82\" height=\"82\" alt=\"Cyber LG Stylo 2 Deal\"&gt;\n &lt;/a&gt;\n \n &lt;div class=\"Bfc\"&gt;\n \n &lt;h3 class=\"Fw-b Fz-m Lh-115 Mb-2 Mt-neg-1 Mend-70\"&gt;\n &lt;a href=\"https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;amp;es=1Vg_vM8GIS_jYbYOgkZwvFcEzB9pYLoQHDL4ZHqI.C9U4KSUiJIz5WAZWJ21cEn9R5MRZ77c2A_YsTspV1WODtvJY2wjlAFCuaNwUw5QjzcgCOo71IkkFQsbr.UaQLOID5DzN3eqhX9UhOme.BWfoyWYMmiLAhpoOYMdUbFUHYdGhSDeWNLfz3mQNg8KUUHy.DMrRqMAf9tMwawHwabEL9dsMG4zG__W0NAhtQ7M9iygHtRVNyYgkeoNqwDKi2O4aq_4dq_s2xVmSq30FEeaJ2BBxLD9mFJdkColTLJSi8Qv7FXkHdgERIeHh8D4s4x1vSybJycTqwVS4Kd0gyj4RjGC7TQGEqZJ4QjX8WudfdrgAvY934zbe3_uec9rKPD6WhPqBXObktwzO0uBqy6ukKCeaI5dZ.P3D7cEZhYfSznK0Rjr_eo3kp13rOVYi.tDzFbfRvEi_02PLSN9bjdlnnlkhMJvsSs0rS_6u0aDhuUDjE_0Tv9BzsAVx8iFYE6psri5G7aOCQuiwOW0ohNiec9qM08q_LufKVYHh8yauT3mpPyd16yQXt_EedFjE0q6Nx3VoECkd4l7_IxlbvvpW2cRJ5f0XZZcYPNAAx2ZnHusfv_D.s76TFqHaA8raOvijxnGbTPG1vaqYH_08Mjij8bRzZ1ybameGnDclan37cKQTCvLjrXa0zGBZ1ROkwanmFqlLr5nNQ2LV.ey3nzUq0DTDZ2fB7572R65FcuOUoIY74sABMqSqCLubeBfD2SR7fFl6BuPvwEJDQ5AWU58as6YG_iICUXdB_y4QROTmbK9Yx0vAnPq4aABb3ALRn49rU0.ex2REO5GfZAqgbybwkvNmVM9MoUNWCfaWGkJ9bsoDamiGRINy6MtsBOD7yBlGaD7BJyir7Exn5a1fnnd06i.wG1G3Ee4_R.T2gSFwegVkAIsBmVj9ukYh3.8hi2E2jwoI0u7NctdBeTI3Mgi3xyPZKNMVxDuj6j6gVkU08IDtRgIKL94eOJr351fMk3fTtDw40SIo3O4i2vfu_LfOyRgP_gku0dVSJcgNxzCgg0FIg8gTkeTDdI1TdNM9Pei0sPOiInzU5mxoUwFi6NRPlqpYyaMBx7CuBuGrLZIJo4nWLiyBgrEJEtvpLpbWMK4KpFOw4n8YIxSp35Wcn8vEmTAsDoZH1ArNWBiNiFL2QvlNSzBvWHMLiosv4zETWMC3H5RTyc6ISnPYyP.0U_5TLG77eokuxnxgXk3fegWJBA-%26lp=http%3A%2F%2Fbs.serving-sys.com%2FServing%2F%3Fcn%3Dsearch%26semdid%3D7_353219189_9113774098_lfrv2jCE%26semid%3D1%26seid%3D7%26semuserid%3D%26advid%3D108226%26mmx%3D%24%24sekwid%3D%26seadid%3D32572483510%26sekwtxt%3D%26matchtype%3D%24%24%26semdata%3D%24%24mkwid%3Dlfrv2jCE_32572483510___c%26mtid%3D744he937470%24%24%26urtu%3Dhttp%253A%252F%252Fd.agkn.com%252Fpixel%252F7636%252F%253Fatr%253D%2526col%253D37470%252C103%252C103353219189%252C%252C%252C%2526l0%253Dhttps%253A%252F%252Fwww.cricketwireless.com%252Flg-cyber-deals.html%253Fwoo_campaign%253DSEM%2526woo_source%253DYAHGEM_PPC%2526woo_medium%253Dkeyword%2526woo_content%253DQ4%252BHeavy-Up_TMobile%252BCustomers%2526woo_term%253D\" target=\"_blank\" data-ylk=\"cpos:17;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:ad;g:32572483510;ct:1;pkgt:4;elm:hdln;rspns:nav;itc:0;r:false;ccode:false;\"&gt;Cyber LG Stylo 2 Deal&lt;/a&gt;\n &lt;/h3&gt;\n \n \n \n &lt;a class=\"Pos-a Mt-10 Mend-10 T-0 End-0 Fz-xs NoLinkColor NoTextDecoration adlink\" href=\"https://info.yahoo.com/privacy/us/yahoo/relevantads.html\" target=\"_blank\" data-ylk=\"cpos:17;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:info;g:32572483510;ct:1;pkgt:4;rspns:nav;elm:itm;itc:0;r:false;ccode:false;\"&gt;AdChoices&lt;i class=\"C-f Icon\"&gt;&amp;#xe05a;&lt;/i&gt;&lt;/a&gt;\n \n \n \n &lt;p class=\"Mb-2\"&gt;$49.99 Limited Time. Req’s New Line of Svc w/ Qual. Plan. See Details.&lt;/p&gt;\n &lt;div class=\"Fz-xs Pos-r NoTextDecoration \"&gt;\n &lt;a class=\"Source Whs-nw Mend-6 \" href=\"https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;amp;es=1Vg_vM8GIS_jYbYOgkZwvFcEzB9pYLoQHDL4ZHqI.C9U4KSUiJIz5WAZWJ21cEn9R5MRZ77c2A_YsTspV1WODtvJY2wjlAFCuaNwUw5QjzcgCOo71IkkFQsbr.UaQLOID5DzN3eqhX9UhOme.BWfoyWYMmiLAhpoOYMdUbFUHYdGhSDeWNLfz3mQNg8KUUHy.DMrRqMAf9tMwawHwabEL9dsMG4zG__W0NAhtQ7M9iygHtRVNyYgkeoNqwDKi2O4aq_4dq_s2xVmSq30FEeaJ2BBxLD9mFJdkColTLJSi8Qv7FXkHdgERIeHh8D4s4x1vSybJycTqwVS4Kd0gyj4RjGC7TQGEqZJ4QjX8WudfdrgAvY934zbe3_uec9rKPD6WhPqBXObktwzO0uBqy6ukKCeaI5dZ.P3D7cEZhYfSznK0Rjr_eo3kp13rOVYi.tDzFbfRvEi_02PLSN9bjdlnnlkhMJvsSs0rS_6u0aDhuUDjE_0Tv9BzsAVx8iFYE6psri5G7aOCQuiwOW0ohNiec9qM08q_LufKVYHh8yauT3mpPyd16yQXt_EedFjE0q6Nx3VoECkd4l7_IxlbvvpW2cRJ5f0XZZcYPNAAx2ZnHusfv_D.s76TFqHaA8raOvijxnGbTPG1vaqYH_08Mjij8bRzZ1ybameGnDclan37cKQTCvLjrXa0zGBZ1ROkwanmFqlLr5nNQ2LV.ey3nzUq0DTDZ2fB7572R65FcuOUoIY74sABMqSqCLubeBfD2SR7fFl6BuPvwEJDQ5AWU58as6YG_iICUXdB_y4QROTmbK9Yx0vAnPq4aABb3ALRn49rU0.ex2REO5GfZAqgbybwkvNmVM9MoUNWCfaWGkJ9bsoDamiGRINy6MtsBOD7yBlGaD7BJyir7Exn5a1fnnd06i.wG1G3Ee4_R.T2gSFwegVkAIsBmVj9ukYh3.8hi2E2jwoI0u7NctdBeTI3Mgi3xyPZKNMVxDuj6j6gVkU08IDtRgIKL94eOJr351fMk3fTtDw40SIo3O4i2vfu_LfOyRgP_gku0dVSJcgNxzCgg0FIg8gTkeTDdI1TdNM9Pei0sPOiInzU5mxoUwFi6NRPlqpYyaMBx7CuBuGrLZIJo4nWLiyBgrEJEtvpLpbWMK4KpFOw4n8YIxSp35Wcn8vEmTAsDoZH1ArNWBiNiFL2QvlNSzBvWHMLiosv4zETWMC3H5RTyc6ISnPYyP.0U_5TLG77eokuxnxgXk3fegWJBA-%26lp=http%3A%2F%2Fbs.serving-sys.com%2FServing%2F%3Fcn%3Dsearch%26semdid%3D7_353219189_9113774098_lfrv2jCE%26semid%3D1%26seid%3D7%26semuserid%3D%26advid%3D108226%26mmx%3D%24%24sekwid%3D%26seadid%3D32572483510%26sekwtxt%3D%26matchtype%3D%24%24%26semdata%3D%24%24mkwid%3Dlfrv2jCE_32572483510___c%26mtid%3D744he937470%24%24%26urtu%3Dhttp%253A%252F%252Fd.agkn.com%252Fpixel%252F7636%252F%253Fatr%253D%2526col%253D37470%252C103%252C103353219189%252C%252C%252C%2526l0%253Dhttps%253A%252F%252Fwww.cricketwireless.com%252Flg-cyber-deals.html%253Fwoo_campaign%253DSEM%2526woo_source%253DYAHGEM_PPC%2526woo_medium%253Dkeyword%2526woo_content%253DQ4%252BHeavy-Up_TMobile%252BCustomers%2526woo_term%253D\" target=\"_blank\" data-ylk=\"cpos:17;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:adv;g:32572483510;ct:1;pkgt:4;rspns:nav;elm:itm;itc:0;r:false;ccode:false;\"&gt;Cricketwireless.Com/LGG2&lt;/a&gt;\n &lt;a class=\"Dimmed \" href=\"http://help.yahoo.com/kb/index?page=content&amp;amp;y=PROD_FRONT&amp;amp;locale=en_US&amp;amp;id=SLN14553\" target=\"_blank\" data-ylk=\"cpos:17;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:sp;g:32572483510;ct:1;pkgt:4;rspns:nav;elm:itm;itc:0;r:false;ccode:false;\"&gt;Sponsored&lt;/a&gt;\n \n &lt;/div&gt;\n \n &lt;/div&gt;\n \n \n&lt;/li&gt;\n\n\n \n\n \n \n &lt;li class=\"js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 \" data-interests=\"WIKIID:United_States_Secretary_of_State|WIKIID:United_States_Senate_Committee_on_Foreign_Relations|WIKIID:United_States_Senate|YCT:001000661\" data-uuid=\"2394698c-069b-3ef9-8e2b-7a14e5100aaa\" &gt;\n\n&lt;a href=\"https://gma.yahoo.com/single-senate-republican-could-tank-rex-tillersons-nomination-175313186--abc-news-topstories.html\" tabindex=\"-1\" aria-hidden=\"true\" data-ylk=\"cpos:18;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:2394698c-069b-3ef9-8e2b-7a14e5100aaa;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h\"&gt;\n &lt;img src=\"https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif\" width=\"82\" height=\"82\" alt=\"How a Single Senate Republican Could Tank Rex Tillerson&amp;amp;#39;s Nomination\" class=\"ImageLoader\" style=\"background-image:url('https://s.yimg.com/uu/api/res/1.2/9H79BlxjP4W46wnZg8ujkQ--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/498a37e3439ddb9a9f714dbb49f67656')\"&gt;\n\n\n&lt;/a&gt;\n\n&lt;div class=\"Bfc\"&gt;\n &lt;div class=\"Ov-h Mt-neg-1\" style=\"max-height:5.308em;\"&gt;\n \n &lt;h3 class=\"Fw-b Fz-m Mb-2 Lh-115\"&gt;\n \n &lt;a href=\"https://gma.yahoo.com/single-senate-republican-could-tank-rex-tillersons-nomination-175313186--abc-news-topstories.html\" data-ylk=\"cpos:18;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:2394698c-069b-3ef9-8e2b-7a14e5100aaa;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"js-stream-content-link Mend-4\"&gt;How a Single Senate Republican Could Tank Rex Tillerson&amp;#39;s Nomination&lt;/a&gt;\n &lt;/h3&gt;\n \n &lt;p class=\"Mb-2\"&gt;Marco Rubio is not the only Republican senator to express concerns about President-elect Donald Trump’s pick for secretary of state, Rex Tillerson, over his connections to Russian President Vladimir Putin. If all nine Democrats on the panel vote against Tillerson, they would need only one of the committee&lt;/p&gt;\n &lt;/div&gt;\n \n &lt;div class=\"Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h \"&gt;\n &lt;span class=\"Source Whs-nw Mend-6\"&gt;Good Morning America&lt;/span&gt;\n \n &lt;/div&gt;\n \n \n \n \n&lt;/div&gt;\n&lt;ul aria-label=\"Actions menu\" role=\"toolbar\" class=\"js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4\" style=\"*display:none\"&gt;&lt;li class=\"ActionSave Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-save-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Save&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe051;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionLike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-like-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;More like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe066;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionDislike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp\" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Fewer like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe009;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;\n\n \n \n &lt;li class=\"js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 \" data-interests=\"WIKIID:Frito-Lay|WIKIID:Super_Bowl|YCT:001001126|YCT:001000002|YCT:001000001\" data-uuid=\"14c217dd-6b60-33df-b94d-5ffe857ccf54\" &gt;\n\n&lt;a href=\"https://gma.yahoo.com/frito-lay-drops-doritos-super-bowl-tv-advertisements-145007590--abc-news-topstories.html\" tabindex=\"-1\" aria-hidden=\"true\" data-ylk=\"cpos:19;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:14c217dd-6b60-33df-b94d-5ffe857ccf54;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h\"&gt;\n &lt;img src=\"https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif\" width=\"82\" height=\"82\" alt=\"Frito-Lay Drops Doritos Super Bowl TV Advertisements\" class=\"ImageLoader\" style=\"background-image:url('https://s.yimg.com/uu/api/res/1.2/x21gttFHX..Ch3MxLkSlvA--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/0dbce825690bb482e81a8a91c43e3842')\"&gt;\n\n\n&lt;/a&gt;\n\n&lt;div class=\"Bfc\"&gt;\n &lt;div class=\"Ov-h Mt-neg-1\" style=\"max-height:5.308em;\"&gt;\n \n &lt;h3 class=\"Fw-b Fz-m Mb-2 Lh-115\"&gt;\n \n &lt;a href=\"https://gma.yahoo.com/frito-lay-drops-doritos-super-bowl-tv-advertisements-145007590--abc-news-topstories.html\" data-ylk=\"cpos:19;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:14c217dd-6b60-33df-b94d-5ffe857ccf54;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"js-stream-content-link Mend-4\"&gt;Frito-Lay Drops Doritos Super Bowl TV Advertisements&lt;/a&gt;\n &lt;/h3&gt;\n \n &lt;p class=\"Mb-2\"&gt;Frito-Lay is closing the bag on its popular Doritos commercials for Super Bowl 2017. GoDaddy stepped out of 2016&amp;#39;s advertisements and Toyota has announced it will not run commercials during Super Bowl 51 on Feb. 5, also citing a marketing strategy.&lt;/p&gt;\n &lt;/div&gt;\n \n &lt;div class=\"Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h \"&gt;\n &lt;span class=\"Source Whs-nw Mend-6\"&gt;Good Morning America&lt;/span&gt;\n \n &lt;/div&gt;\n \n \n \n \n&lt;/div&gt;\n&lt;ul aria-label=\"Actions menu\" role=\"toolbar\" class=\"js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4\" style=\"*display:none\"&gt;&lt;li class=\"ActionSave Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-save-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Save&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe051;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionLike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-like-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;More like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe066;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionDislike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp\" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Fewer like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe009;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;\n\n \n \n &lt;li class=\"js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 \" data-interests=\"WIKIID:LeBron_James|YCT:001000001|YCT:001000012\" data-uuid=\"48b9bac6-44bb-3433-80e3-5b1d3594e625\" &gt;\n\n&lt;a href=\"https://gma.yahoo.com/lebron-james-humbled-si-sportsperson-award-172406720--abc-news-celebrities.html\" tabindex=\"-1\" aria-hidden=\"true\" data-ylk=\"cpos:20;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:48b9bac6-44bb-3433-80e3-5b1d3594e625;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h\"&gt;\n &lt;img src=\"https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif\" width=\"82\" height=\"82\" alt=\"LeBron James &amp;amp;#39;Humbled&amp;amp;#39; by SI Sportsperson of the Year Award\" class=\"ImageLoader\" style=\"background-image:url('https://s.yimg.com/uu/api/res/1.2/rXzfDI6FRQC5bHBRohF0iQ--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/2057633e69d5e076b25a8a4c5f2ce4ef')\"&gt;\n\n\n&lt;/a&gt;\n\n&lt;div class=\"Bfc\"&gt;\n &lt;div class=\"Ov-h Mt-neg-1\" style=\"max-height:5.308em;\"&gt;\n \n &lt;h3 class=\"Fw-b Fz-m Mb-2 Lh-115\"&gt;\n \n &lt;a href=\"https://gma.yahoo.com/lebron-james-humbled-si-sportsperson-award-172406720--abc-news-celebrities.html\" data-ylk=\"cpos:20;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:48b9bac6-44bb-3433-80e3-5b1d3594e625;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"js-stream-content-link Mend-4\"&gt;LeBron James &amp;#39;Humbled&amp;#39; by SI Sportsperson of the Year Award&lt;/a&gt;\n &lt;/h3&gt;\n \n &lt;p class=\"Mb-2\"&gt;LeBron James was honored Monday night in Brooklyn, New York, at the annual Sports Illustrated sportsperson of the year event, which celebrated his commitment to his team, his sport and the city of Cleveland. Robin Roberts of &amp;quot;Good Morning America&amp;quot; caught up with James at the ceremony to discuss&lt;/p&gt;\n &lt;/div&gt;\n \n &lt;div class=\"Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h \"&gt;\n &lt;span class=\"Source Whs-nw Mend-6\"&gt;Good Morning America&lt;/span&gt;\n \n &lt;/div&gt;\n \n \n \n \n&lt;/div&gt;\n&lt;ul aria-label=\"Actions menu\" role=\"toolbar\" class=\"js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4\" style=\"*display:none\"&gt;&lt;li class=\"ActionSave Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-save-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Save&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe051;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionLike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-like-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;More like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe066;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionDislike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp\" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Fewer like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe009;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;\n\n \n \n &lt;li class=\"js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 \" data-interests=\"YCT:001000560|YCT:001000611|YCT:001000637\" data-uuid=\"0faf9f17-96c0-368f-9bbc-5baf33074cee\" &gt;\n\n&lt;a href=\"https://gma.yahoo.com/illinois-woman-her-dog-rescued-falling-frozen-pond-141908648--abc-news-lifestyle.html\" tabindex=\"-1\" aria-hidden=\"true\" data-ylk=\"cpos:21;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:0faf9f17-96c0-368f-9bbc-5baf33074cee;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h\"&gt;\n &lt;img src=\"https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif\" width=\"82\" height=\"82\" alt=\"Illinois Woman and Her Dog Rescued After Falling Into Frozen Pond\" class=\"ImageLoader\" style=\"background-image:url('https://s.yimg.com/uu/api/res/1.2/RxhLmJql_Z5GEZvpiQ1BhA--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/19c07daff025df71f8202f8d13e0c238')\"&gt;\n\n\n&lt;/a&gt;\n\n&lt;div class=\"Bfc\"&gt;\n &lt;div class=\"Ov-h Mt-neg-1\" style=\"max-height:5.308em;\"&gt;\n \n &lt;h3 class=\"Fw-b Fz-m Mb-2 Lh-115\"&gt;\n \n &lt;a href=\"https://gma.yahoo.com/illinois-woman-her-dog-rescued-falling-frozen-pond-141908648--abc-news-lifestyle.html\" data-ylk=\"cpos:21;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:0faf9f17-96c0-368f-9bbc-5baf33074cee;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"js-stream-content-link Mend-4\"&gt;Illinois Woman and Her Dog Rescued After Falling Into Frozen Pond&lt;/a&gt;\n &lt;/h3&gt;\n \n &lt;p class=\"Mb-2\"&gt;An 8-year-old boy has been credited with saving his mother and his dog&amp;#39;s life after he called 911 when the two fell into an icy pond in Illinois this past weekend.Cathy Medernach, 48, told ABC News that she and her son Caden, 8, were taking their Labrador retriever, Bailey, out for a walk behind&lt;/p&gt;\n &lt;/div&gt;\n \n &lt;div class=\"Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h \"&gt;\n &lt;span class=\"Source Whs-nw Mend-6\"&gt;Good Morning America&lt;/span&gt;\n \n &lt;/div&gt;\n \n \n \n \n&lt;/div&gt;\n&lt;ul aria-label=\"Actions menu\" role=\"toolbar\" class=\"js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4\" style=\"*display:none\"&gt;&lt;li class=\"ActionSave Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-save-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Save&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe051;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionLike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-like-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;More like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe066;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionDislike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp\" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Fewer like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe009;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;\n\n \n \n &lt;li class=\"js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 \" data-interests=\"WIKIID:Donald_Trump|WIKIID:Rex_Tillerson|WIKIID:Syria|WIKIID:Russia|WIKIID:Turkey|WIKIID:Vladimir_Putin|YCT:001000661|YCT:001000680\" data-uuid=\"3cbee4b7-2568-3903-a977-24db6d8347bb\" &gt;\n\n&lt;a href=\"https://gma.yahoo.com/5-major-foreign-policy-challenges-facing-president-elect-201105415--abc-news-topstories.html\" tabindex=\"-1\" aria-hidden=\"true\" data-ylk=\"cpos:22;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:3cbee4b7-2568-3903-a977-24db6d8347bb;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h\"&gt;\n &lt;img src=\"https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif\" width=\"82\" height=\"82\" alt=\"5 Major Foreign Policy Challenges Facing President-Elect Donald Trump\" class=\"ImageLoader\" style=\"background-image:url('https://s.yimg.com/uu/api/res/1.2/FQvHaYiTkzJ6OCASS_dY7g--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/ddb938bd2b3017e5920963e2ffd2559e')\"&gt;\n\n\n&lt;/a&gt;\n\n&lt;div class=\"Bfc\"&gt;\n &lt;div class=\"Ov-h Mt-neg-1\" style=\"max-height:5.308em;\"&gt;\n \n &lt;h3 class=\"Fw-b Fz-m Mb-2 Lh-115\"&gt;\n \n &lt;a href=\"https://gma.yahoo.com/5-major-foreign-policy-challenges-facing-president-elect-201105415--abc-news-topstories.html\" data-ylk=\"cpos:22;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:3cbee4b7-2568-3903-a977-24db6d8347bb;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"js-stream-content-link Mend-4\"&gt;5 Major Foreign Policy Challenges Facing President-Elect Donald Trump&lt;/a&gt;\n &lt;/h3&gt;\n \n &lt;p class=\"Mb-2\"&gt;In January, President-elect Donald Trump will have to turn his attention to governing domestically and shaping his vision for U.S. foreign policy – and he will do so with the help of his secretary of state. On Tuesday, Trump nominated ExxonMobil CEO Rex Tillerson to help him navigate America&amp;#39;s biggest&lt;/p&gt;\n &lt;/div&gt;\n \n &lt;div class=\"Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h \"&gt;\n &lt;span class=\"Source Whs-nw Mend-6\"&gt;Good Morning America&lt;/span&gt;\n \n &lt;/div&gt;\n \n \n \n \n&lt;/div&gt;\n&lt;ul aria-label=\"Actions menu\" role=\"toolbar\" class=\"js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4\" style=\"*display:none\"&gt;&lt;li class=\"ActionSave Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-save-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Save&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe051;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionLike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-like-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;More like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe066;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionDislike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp\" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Fewer like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe009;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;\n\n \n \n &lt;li class=\"js-stream-content Cf Pos-r RevealNested Px-12 Pt-10 Pb-8 \" data-interests=\"WIKIID:New_York_City|WIKIID:Polar_vortex|YCT:001000637|YCT:001000659\" data-uuid=\"bd3edcb9-cd20-3482-a5a5-308d8cc217f4\" &gt;\n\n&lt;a href=\"https://gma.yahoo.com/arctic-assault-week-possible-record-breaking-cold-chicago-181307998--abc-news-topstories.html\" tabindex=\"-1\" aria-hidden=\"true\" data-ylk=\"cpos:23;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:bd3edcb9-cd20-3482-a5a5-308d8cc217f4;ct:1;pkgt:4;elm:img;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"Fl-start Mend-10 My-2 Pos-r js-stream-content-link js-stream-content-img NoTextDecoration Ov-h\"&gt;\n &lt;img src=\"https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif\" width=\"82\" height=\"82\" alt=\"Arctic Assault This Week With Possible Record-Breaking Cold, Chicago to New York\" class=\"ImageLoader\" style=\"background-image:url('https://s.yimg.com/uu/api/res/1.2/o9N89Reu8J3us55f_Bdq4Q--/Zmk9c3RyaW07aD0xMDA7cHlvZmY9MDt3PTEwMDtzbT0xO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.abcnewsplus.com/fe802fc2ef9b5fd433eca3131e12ae7f')\"&gt;\n\n\n&lt;/a&gt;\n\n&lt;div class=\"Bfc\"&gt;\n &lt;div class=\"Ov-h Mt-neg-1\" style=\"max-height:5.308em;\"&gt;\n \n &lt;h3 class=\"Fw-b Fz-m Mb-2 Lh-115\"&gt;\n \n &lt;a href=\"https://gma.yahoo.com/arctic-assault-week-possible-record-breaking-cold-chicago-181307998--abc-news-topstories.html\" data-ylk=\"cpos:23;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;g:bd3edcb9-cd20-3482-a5a5-308d8cc217f4;ct:1;pkgt:4;elm:hdln;elmt:ct;rspns:nav;itc:0;r:false;ccode:false;\" class=\"js-stream-content-link Mend-4\"&gt;Arctic Assault This Week With Possible Record-Breaking Cold, Chicago to New York&lt;/a&gt;\n &lt;/h3&gt;\n \n &lt;p class=\"Mb-2\"&gt;This week, the displacement of a polar vortex will bring the coldest air this early in the season in more than a decade to a wide swath of the country, from Chicago to New York City. If Chicago stays in the single digits for highs on Thursday, this will be the coldest late fall weather since 1995.&lt;/p&gt;\n &lt;/div&gt;\n \n &lt;div class=\"Fz-xs js-stream-attribution Lhh-13 D-ib Ov-h \"&gt;\n &lt;span class=\"Source Whs-nw Mend-6\"&gt;Good Morning America&lt;/span&gt;\n \n &lt;/div&gt;\n \n \n \n \n&lt;/div&gt;\n&lt;ul aria-label=\"Actions menu\" role=\"toolbar\" class=\"js-stream-side-buttons Actions ChildrenToBeGrid-U Mt-4\" style=\"*display:none\"&gt;&lt;li class=\"ActionSave Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-save-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Save&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe051;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionLike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-like-button D-ib NestedHidden rapid-noclick-resp \" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;More like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe066;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;li class=\"ActionDislike Ta-c Mstart-1\"&gt;&lt;a class=\"js-stream-dislike-button D-ib NestedHidden rapid-noclick-resp\" href=\"#0\" role=\"button\" style=\"margin-left:0\"&gt;&lt;b aria-live=\"polite\" class=\"ActionTooltip\"&gt;Fewer like this&lt;/b&gt;&lt;i aria-hidden=\"true\" class=\"Icon W-a\"&gt;&amp;#xe009;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;\n\n \n \n &lt;li id=\"ad-32573871566\" class=\" js-stream-ad-noview Mb-content Bgc-c Cf Pos-r Px-12 Pt-10 Pb-8 \" data-beacon=\"https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&amp;amp;es=ysl3cA8GIS_Ce8UN3J1O5G_Dz28vS6.XFEPlNzo5g32_gQz8eRLtDD6LoB2kZpQAy5B6LXNjYjdR3G4eqs0HI2vWRWbpiIBhw6vzaO1X0U5tVsCLbOLFjH24.XY6SXy1x3XPkLHEtBU2HwJfq1UKL0JiGbeRy1sPVWTv0Xv5hpPv0o2qKU0c8QULwqEdD6xo57so2Rgpr4cly3ZJi17kPu6b46h.ULIj9qY.y.u.dkRWQm1MmOIyh46k9sljX.KMRJp0.T1H9_7Cz4yMng89MbMYsNxTtSZEzFfXtlHAZBuIMp2UUXUZ59eB6eaR8qFajDyzSZR8eW1RwomyXvmf23RvOSvlbwgAV9Cw8N4SuYemLTY9Q9VekwVhGLUCNvK1Hhpi.yYjlfn0JHHopadyiv_X&amp;amp;ap=24\"&gt;\n \n &lt;a href=\"https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;amp;es=Wxo.YS4GIS9wMGM7igB1Zk9dp0XWciRRPl6._XxuRj3TjSHCiQmWk5CmrKmS56ieIjZtpdxnPuxlAUpef9LIiuX3RAQCuTkRCYXDRvWgdy30taH.r58.vSJZhHowP00ey.A5qY3Jk840sfboj1NUQZ0qRrHolchs6Jwz_5tLp1uBMWTW2KjQQyL8vhtJrt04IOhlDCUik.CY9x2URV7ihb4XZ2qL_.q6G_K2ydQ72PLdDvIoi7ZV.vNsy8hIwFMPdo9n.NKL2DBVs2YsD8pWDqJgztTY90hzzVyBooUxShqNKcHHHReT82MZAQwuYr6c1E3C9NS7sPEJuxu.d5x0m7KvKzSbO6VejrFkN1J7fqHRWMNsU__2vLGzZGYyH47Jns2T3EM_z2MJSiXm7QmrELPg2P6eGWaXJQ0CgMugL46gmtXKZ1lIM9sn32YbUVHABtbn8drdMibTxQ3RqXoNQgWOJxeSdV3Kz73YORJXnE2t0tQKDfNpLQTDT1l63wg4S3Yz7e_l_QaP_eK1A9oSKE5pKLHgTIcQCJAaWCIBoVlUASpqFlzJKT.jKnywHsSE8TwZ4ekMJ97uQy.u53AkNxP7uGsGfhB4ARzE7tfKmUaACLMO_3muHQDFiIB.xGWXlIQl2R7zEpGGirnxCAxZkJAcmw--%26lp=https%3A%2F%2Fwww.learnvest.com%2Flp%2Fhow-to-budget-your-money-with-the-502030-guideline%2F%3Futm_source%3Dyahoo%26utm_medium%3Dpaidcontent%26utm_campaign%3DYahoo_Custom_Audience%3A_Personal_Finance\" target=\"_blank\" tabindex=\"-1\" aria-hidden=\"true\" data-ylk=\"cpos:24;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:ad;g:32573871566;ct:1;pkgt:4;elm:img;rspns:nav;itc:0;r:false;ccode:false;\" class=\"Fl-start Mend-10 My-2 Ta-end\" style=\"width:82px;\"&gt;\n &lt;img src=\"https://s.yimg.com/uu/api/res/1.2/9lbnTRUMz5bKMixhcKXeJw--/YXBwaWQ9eXRhY2h5b24-/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/d8727e410ab45d1349297efacfd4ad17.jpeg\" width=\"82\" height=\"82\" alt=\"How To Budget Your Money with One Simple Rule\"&gt;\n &lt;/a&gt;\n \n &lt;div class=\"Bfc\"&gt;\n \n &lt;h3 class=\"Fw-b Fz-m Lh-115 Mb-2 Mt-neg-1 Mend-70\"&gt;\n &lt;a href=\"https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;amp;es=Wxo.YS4GIS9wMGM7igB1Zk9dp0XWciRRPl6._XxuRj3TjSHCiQmWk5CmrKmS56ieIjZtpdxnPuxlAUpef9LIiuX3RAQCuTkRCYXDRvWgdy30taH.r58.vSJZhHowP00ey.A5qY3Jk840sfboj1NUQZ0qRrHolchs6Jwz_5tLp1uBMWTW2KjQQyL8vhtJrt04IOhlDCUik.CY9x2URV7ihb4XZ2qL_.q6G_K2ydQ72PLdDvIoi7ZV.vNsy8hIwFMPdo9n.NKL2DBVs2YsD8pWDqJgztTY90hzzVyBooUxShqNKcHHHReT82MZAQwuYr6c1E3C9NS7sPEJuxu.d5x0m7KvKzSbO6VejrFkN1J7fqHRWMNsU__2vLGzZGYyH47Jns2T3EM_z2MJSiXm7QmrELPg2P6eGWaXJQ0CgMugL46gmtXKZ1lIM9sn32YbUVHABtbn8drdMibTxQ3RqXoNQgWOJxeSdV3Kz73YORJXnE2t0tQKDfNpLQTDT1l63wg4S3Yz7e_l_QaP_eK1A9oSKE5pKLHgTIcQCJAaWCIBoVlUASpqFlzJKT.jKnywHsSE8TwZ4ekMJ97uQy.u53AkNxP7uGsGfhB4ARzE7tfKmUaACLMO_3muHQDFiIB.xGWXlIQl2R7zEpGGirnxCAxZkJAcmw--%26lp=https%3A%2F%2Fwww.learnvest.com%2Flp%2Fhow-to-budget-your-money-with-the-502030-guideline%2F%3Futm_source%3Dyahoo%26utm_medium%3Dpaidcontent%26utm_campaign%3DYahoo_Custom_Audience%3A_Personal_Finance\" target=\"_blank\" data-ylk=\"cpos:24;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:ad;g:32573871566;ct:1;pkgt:4;elm:hdln;rspns:nav;itc:0;r:false;ccode:false;\"&gt;How To Budget Your Money with One Simple Rule&lt;/a&gt;\n &lt;/h3&gt;\n \n \n \n &lt;a class=\"Pos-a Mt-10 Mend-10 T-0 End-0 Fz-xs NoLinkColor NoTextDecoration adlink\" href=\"https://info.yahoo.com/privacy/us/yahoo/relevantads.html\" target=\"_blank\" data-ylk=\"cpos:24;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:info;g:32573871566;ct:1;pkgt:4;rspns:nav;elm:itm;itc:0;r:false;ccode:false;\"&gt;AdChoices&lt;i class=\"C-f Icon\"&gt;&amp;#xe05a;&lt;/i&gt;&lt;/a&gt;\n \n \n \n &lt;p class=\"Mb-2\"&gt;Whether you're a new parent or a new grad, our guideline can help you assess your budget so you know exactly where your money in going. Find out how.&lt;/p&gt;\n &lt;div class=\"Fz-xs Pos-r NoTextDecoration \"&gt;\n &lt;a class=\"Source Whs-nw Mend-6 \" href=\"https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;amp;es=Wxo.YS4GIS9wMGM7igB1Zk9dp0XWciRRPl6._XxuRj3TjSHCiQmWk5CmrKmS56ieIjZtpdxnPuxlAUpef9LIiuX3RAQCuTkRCYXDRvWgdy30taH.r58.vSJZhHowP00ey.A5qY3Jk840sfboj1NUQZ0qRrHolchs6Jwz_5tLp1uBMWTW2KjQQyL8vhtJrt04IOhlDCUik.CY9x2URV7ihb4XZ2qL_.q6G_K2ydQ72PLdDvIoi7ZV.vNsy8hIwFMPdo9n.NKL2DBVs2YsD8pWDqJgztTY90hzzVyBooUxShqNKcHHHReT82MZAQwuYr6c1E3C9NS7sPEJuxu.d5x0m7KvKzSbO6VejrFkN1J7fqHRWMNsU__2vLGzZGYyH47Jns2T3EM_z2MJSiXm7QmrELPg2P6eGWaXJQ0CgMugL46gmtXKZ1lIM9sn32YbUVHABtbn8drdMibTxQ3RqXoNQgWOJxeSdV3Kz73YORJXnE2t0tQKDfNpLQTDT1l63wg4S3Yz7e_l_QaP_eK1A9oSKE5pKLHgTIcQCJAaWCIBoVlUASpqFlzJKT.jKnywHsSE8TwZ4ekMJ97uQy.u53AkNxP7uGsGfhB4ARzE7tfKmUaACLMO_3muHQDFiIB.xGWXlIQl2R7zEpGGirnxCAxZkJAcmw--%26lp=https%3A%2F%2Fwww.learnvest.com%2Flp%2Fhow-to-budget-your-money-with-the-502030-guideline%2F%3Futm_source%3Dyahoo%26utm_medium%3Dpaidcontent%26utm_campaign%3DYahoo_Custom_Audience%3A_Personal_Finance\" target=\"_blank\" data-ylk=\"cpos:24;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:adv;g:32573871566;ct:1;pkgt:4;rspns:nav;elm:itm;itc:0;r:false;ccode:false;\"&gt;LearnVest&lt;/a&gt;\n &lt;a class=\"Dimmed \" href=\"http://help.yahoo.com/kb/index?page=content&amp;amp;y=PROD_FRONT&amp;amp;locale=en_US&amp;amp;id=SLN14553\" target=\"_blank\" data-ylk=\"cpos:24;bpos:1;cat:LISTID%3A8d64a97a-a34e-4ab8-bac1-f8a95616142a;t1:a3;t2:strm;t3:ct;ad:1;elmt:sp;g:32573871566;ct:1;pkgt:4;rspns:nav;elm:itm;itc:0;r:false;ccode:false;\"&gt;Sponsored&lt;/a&gt;\n \n &lt;/div&gt;\n \n &lt;/div&gt;\n \n \n&lt;/li&gt;\n\n\n \n\n\n\n&lt;/ul&gt;\n\n&lt;img src=\"https://s.yimg.com/os/mit/ape/m/81f43c2/t.gif\" width=\"16\" height=\"16\" class=\"D-b Dn Mx-a My-12 js-stream-load-more ImageLoader\" style=\"background-image:url('https://s.yimg.com/zz/nn/lib/metro/g/my/anim_loading_sm.gif')\" alt=\"\"&gt;\n\n\n\n &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class=\"App-Ft Row\"&gt; &lt;/div&gt;&lt;/div&gt;\r\n--dali-response-split--\r\n"
+ });
+ });
+ </script>
+
+ <script language="javascript">
+ YUI.YUICfg = {
+ "gallery": "yui:gallery-2011.04.20-13-04",
+ "groups": {
+ "group0d9d821fd95f957944c70b69b28ef8dd5": {
+ "base": "https:\/\/s.yimg.com\/",
+ "comboBase": "https:\/\/s.yimg.com\/zz\/combo?",
+ "modules": {
+ "media-content-manager": {
+ "path": "os\/mit\/media\/p\/content\/content-manager-min-c15b49c.js"
+ },
+ "media-perf-timeable": {
+ "path": "os\/mit\/media\/p\/content\/perf-timeable-min-3201e29.js"
+ },
+ "media-beacon-manager": {
+ "path": "os\/mit\/media\/p\/content\/beacon-manager-min-c84baae.js"
+ },
+ "media-ad-controller": {
+ "path": "os\/mit\/media\/p\/content\/ad-controller-min-cc0aa40.js"
+ },
+ "media-interest-manager": {
+ "path": "os\/mit\/media\/p\/content\/interest-manager-min-0527e1c.js"
+ },
+ "ylt-strip": {
+ "path": "ss\/strip_3.4.js"
+ },
+ "media-instrumentation": {
+ "path": "os\/mit\/media\/p\/content\/instrumentation-min-a1c712f.js"
+ },
+ "media-content-lightbox": {
+ "path": "os\/mit\/media\/m\/content_photo\/content-lightbox-min-b3d9d25.js"
+ },
+ "media-content-lightbox-ib": {
+ "path": "os\/mit\/media\/m\/content_photo\/content-lightbox-ib-min-ced7535.js"
+ },
+ "media-content-lightbox-endslide": {
+ "path": "os\/mit\/media\/m\/content_photo\/content-lightbox-endslide-min-ced7535.js"
+ },
+ "media-content-lightbox-rmx": {
+ "path": "os\/mit\/media\/m\/content_photo\/content-lightbox-rmx-min-6728742.js"
+ },
+ "media-content-story": {
+ "path": "os\/mit\/media\/m\/content_story\/content-story-min-e5c79d5.js"
+ },
+ "media-content-comments": {
+ "path": "os\/mit\/media\/m\/comments\/content-comments-min-7833766.js"
+ },
+ "media-videoInlinePlayer": {
+ "path": "os\/mit\/media\/m\/videos\/videoInlinePlayer-min-8cab8cc.js"
+ },
+ "media-con-vid": {
+ "path": "os\/mit\/media\/m\/content_video\/con-vid-min-43b7a7a.js"
+ },
+ "media-content-share-buttons-int": {
+ "path": "os\/mit\/media\/m\/content_social\/content-share-buttons-int-min-5e4593a.js"
+ },
+ "media-content-social-base": {
+ "path": "os\/mit\/media\/m\/content_social\/content-social-base-min-f516ed2.js"
+ },
+ "media-content-share-buttons": {
+ "path": "os\/mit\/media\/m\/content_social\/content-share-buttons-min-ac7c5e1.js"
+ },
+ "media-trfsm": {
+ "path": "os\/mit\/media\/p\/common\/trfsm-min-56d3a2e.js"
+ },
+ "media-i13n": {
+ "path": "os\/mit\/media\/p\/common\/i13n-min-56d3a2e.js"
+ },
+ "media-dwell-time": {
+ "path": "os\/mit\/media\/p\/common\/dwell-time-min-56d3a2e.js"
+ },
+ "media-ywa-tracking": {
+ "path": "os\/mit\/media\/p\/common\/ywa-tracking-min-56d3a2e.js"
+ },
+ "media-content-follow-property": {
+ "path": "os\/mit\/media\/m\/content_social\/content-follow-property-min-f7473b3.js"
+ },
+ "media-content-navigation-desktop": {
+ "path": "os\/mit\/media\/m\/navigation\/content-navigation-desktop-min-990c8d3.js"
+ },
+ "media-content-common": {
+ "path": "os\/mit\/media\/m\/content\/content-common-min-12430b8.js"
+ },
+ "media-video-embed-player": {
+ "path": "os\/mit\/media\/m\/content_video\/video-embed-player-min-fcbf69d.js"
+ },
+ "media-action-bar": {
+ "path": "os\/mit\/media\/m\/content\/action-bar-min-a715314.js"
+ },
+ "media-preview-default": {
+ "path": "os\/mit\/media\/m\/content_index\/preview-default-min-e0e1d50.js"
+ },
+ "media-footer": {
+ "path": "os\/mit\/media\/m\/footer\/footer-min-1adbfba.js"
+ },
+ "media-share-buttons-builder": {
+ "path": "os\/mit\/media\/m\/content_social\/share-buttons-builder-min-02674e5.js"
+ }
+ },
+ "combine": true,
+ "filter": "min",
+ "root": "\/"
+ }
+ },
+ "combine": true,
+ "allowRollup": true,
+ "comboBase": "https:\/\/s.yimg.com\/zz\/combo?",
+ "fetchCSS": false,
+ "maxURLLength": "2000"
+ }
+ YUI.YUICfg.root = 'yui:' + YUI.version + '/build/';
+ YMedia.applyConfig(YUI.YUICfg);
+ YUI.Env[YUI.version].base = 'https://s.yimg.com/';
+ YUI.Env[YUI.version].comboBase = 'https://s.yimg.com/zz/combo?';
+ YUI.Env[YUI.version].root = 'yui:' + YUI.version + '/build/';
+ YMedia.use("media-content-manager", "media-perf-timeable", "media-beacon-manager", "event-custom", "node-scroll-info", "media-ad-controller", "media-interest-manager", "io-base", "json-parse", "json-stringify", "node-base", "ylt-strip", "media-instrumentation", "media-content-lightbox", "media-content-lightbox-ib", "media-content-lightbox-endslide", "media-content-lightbox-rmx", "media-content-story", "node-base", "node-simulate", "overlay", "event-mouseenter", "media-content-comments", "media-videoInlinePlayer", "media-con-vid", "arraylist", "arraylist-add", "swf", "swfdetect", "media-inlinevideoplayer", "media-content-share-buttons-int", "media-content-social-base", "base-base", "base-build", "event-base", "event-custom", "node-core", "io", "json", "querystring-stringify-simple", "dom-screen", "base", "datatype", "querystring", "media-content-share-buttons", function(Y) {
+
+ Y.later(10, this, function() {
+ var ___aftMaxWaitTime___ = 4500,
+ ___yaftConfig___;
+
+ if (window.YAFT !== undefined) {
+ ___yaftConfig___ = {
+ generateHAR: true,
+ modules: ['yom-ad-', 'mediacontent', 'applet_', 'GS-UH', 'p_30345786_container', 'mediasports', 'mediafinance', 'mediastation', 'mediaautos', 'mediaweather', 'mediahomes', 'mediatumblr', 'mediascore', 'mediagettheapp'],
+ modulesExclude: ['/*[A-Za-z]_container', '_wrapper', 'yom-ad-FOOT', 'yom-ad-SDARLAEXTRA'],
+ useNativeStartRender: 0 ? true : false,
+ canShowVisualReport: 0 ? true : false,
+ maxWaitTime: ___aftMaxWaitTime___,
+ plugins: [{
+ name: 'aftnoad',
+ isPre: true,
+ config: {
+ useNormalizeCoverage: true,
+ adModules: ['yom-ad-']
+ }
+ }]
+ };
+ if (0) {
+ ___yaftConfig___.plugins.push({
+ name: 'har',
+ config: {
+ sec: 'har',
+ rapid: (YMedia & amp; & amp; YMedia.rapid) ? YMedia.rapid : null,
+ aftThreshold: 10000 ? 10000 : 15000
+ }
+ });
+ }
+
+ window.YAFT.init(___yaftConfig___, function(data, error) {
+ if (!error) {
+ if (YMedia & amp; & amp; YMedia.rapid & amp; & amp; YMedia.rapid.beaconPerformanceDataByYAFT) {
+ YMedia.rapid.beaconPerformanceDataByYAFT(data);
+ }
+ }
+ });
+ }
+ });
+ Y.later(10, this, function() {
+ new Y.Media.BeaconManager({
+ chrome: Y.Media.pageChrome
+ });
+ });
+ Y.later(10, this, function() {
+ Y.Media.adController = new Y.Media.AdController({
+ env: 'production',
+ hideOnFailure: false,
+ fetchOnPjaxOnly: true,
+ preserveLRECContainer: false
+ });
+ });
+ Y.later(10, this, function() {
+ new Y.Media.ContentManager({
+
+ nodePaths: {
+ content: '#yog-content',
+ navigation: '#yog-nav',
+ related: '#yog-related',
+ superlead: '#yog-stage'
+ },
+ transition: {
+ style: 'none'
+ },
+ refreshRightRailContent: '1',
+ enablePersistentMods: '1'
+
+ });
+ });
+ Y.later(10, this, function() {
+ new Y.Media.InterestManager({});
+ });
+ Y.later(10, this, function() {
+ new Y.Media.Instrumentation();
+ });
+ Y.later(10, this, function() {
+ if (Y.Media & amp; & amp; !Y.Media.pageContentLightbox) {
+ Y.Media.pageContentLightbox = new Y.Media.ContentLightbox({
+ chrome: Y.Media.pageChrome,
+ config: {
+ modId: 'mediacontentstory',
+ disableComments: '0',
+ enableEndSlideRel: '0',
+ enableEndSlideMP: '1',
+ endSlideImgRatio: '6x4',
+ endSlideImgWidth: '400',
+ enableIBSlideshow: '0',
+ enableRMXAds: '0',
+ enableSponsoredRMXAds: '0',
+ enableNativeAds: '1',
+ enableTrendingModule: '0',
+ enableFilmAd: '1',
+ nativeAdsThreshold: '500',
+ rmxAdsSectionId: '0',
+ enableViewportRotation: '0',
+ enableViewportRotationDuration: '30000',
+ overrideViewportRotationSpaceid: '',
+ enableTimeBasedRotation: '0',
+ timeBasedRotationInterval: '30000',
+ fetchIBThreshold: Infinity,
+ fetchIBCount: 24,
+ IBmtype: 'photo,video',
+ IBImageThreshold: 75000,
+ IBVideoThreshold: 75000,
+ IBMetalen10_filter: '0',
+ enableLBOnPageLoad: '0',
+ enableVideoPrefetch: 0,
+ todayInstanceId: 'caf1ba2a-c17f-3c49-a7ff-5c297712b205',
+ slideshowInstanceId: '8ae97a90-4096-3758-86ab-3444d3e62b46',
+ trendingInstanceId: '91246927-f853-3daa-b2a7-2fd2ecab95d3',
+ rmpModuleTimeout: '2000',
+ enableLDRBads: '0',
+ strm_cc: 'STRM',
+ enableSidekick: 0,
+ embed_slots: {
+ 'one': {},
+ 'two': {},
+ 'three': {},
+ 'south': {}
+ },
+ sidekick_mods: {
+ 'top': '2064894c-d7b1-32bb-be76-38333782b680',
+ 'mid': '',
+ 'bot': ''
+ },
+ strings: {
+ 'relatedSearchString': 'Related search results',
+ 'moreString': 'more',
+ 'lessString': 'less'
+ },
+ isSponsored: '0',
+ enableSponsoredLightbox: '0',
+ tdRmpUri: '/_td_api/remote'
+ }
+ });
+ }
+ });
+ Y.later(10, this, function() {
+ YMedia.add("media-event-queue", function(Y) {
+ Y.namespace("Media.Event.Queue");
+ var _event_queue;
+ Y.Media.Event.Queue = {
+ "init": function() {
+ Y.on("domready", function(e) {
+ var _now = new Date().getTime();
+ _event_queue = new Array();
+ _event_queue.push({
+ "domready": _now
+ });
+ }, window);
+ },
+ "push": function(obj) {
+ _event_queue.push(obj);
+ },
+ "length": function() {
+ return _event_queue.length;
+ },
+ "dump": function() {
+ return _event_queue;
+ }
+ };
+ }, '1.0.0', {
+ requires: ['node', 'event']
+ });
+ YMedia.use("media-event-queue", function(Y) {
+ Y.Media.Event.Queue.init();
+ });
+ });
+ Y.later(10, this, function() {
+ Y.Array.each(YMedia.module_includes, function(inc, i, ar) {
+ if (Y.Lang.isFunction(inc)) {
+ inc(Y);
+ ar[i] = null;
+ }
+ });
+ });
+ Y.later(10, this, function() { // Temporary hack for triggering UH animation for Save It Later
+ Y.Global.detach('saveforlater|*');
+ Y.Global.on('saveforlater|saveforlater:newsaved', function() {
+ var tabIcon = Y.one('#yucsHead .yucs-avatar.yucs-menu_anchor'),
+ sflIcon = tabIcon & amp; & amp;
+ tabIcon.one('.sfl-icon');
+
+ if (tabIcon & amp; & amp; !sflIcon) {
+ var repeats = 0,
+ callback = null;
+
+ sflIcon = Y.Node.create('&lt;i class="icon-y-xsmall selected sfl-icon"&gt;&lt;/i&gt;');
+ sflIcon.setStyles({
+ 'opacity': 0,
+ 'boxShadow': '0px 0px 20px #400090'
+ });
+ tabIcon.prepend(sflIcon);
+
+ callback = function() {
+ sflIcon.transition({
+ duration: 0.6,
+ opacity: (repeats + 1) % 2
+ });
+ repeats++;
+ if (repeats & lt; 4)
+ Y.later(600, this, callback); // the animation duration for each is 600ms
+ else
+ Y.later(600, this, function() {
+ sflIcon.remove();
+ });
+ };
+ Y.later(10, this, callback);
+ }
+ });
+ });
+ Y.later(10, this, function() {
+ (function() {
+ var a = window.Af = window.Af || {};
+ var c = a.config = a.config || {};
+ c.spaceid = '1197056126';
+ c.transport = {
+ xhr: '/_td_api',
+ timeout: 3000
+ };
+ c.beacon = {
+ pathPrefix: '/_td_api/beacon',
+ sampleSize: 1
+ };
+ a.context = {
+ crumb: window.YMEDIA_CRUMB,
+ rid: window.YMEDIA_REQ_ATTR ? window.YMEDIA_REQ_ATTR.instr.request_id : "",
+ site: 'gma',
+ lang: 'en-US',
+ region: 'US'
+ };
+ YMedia.use('base', 'af-applets', 'af-rapid', function(Y) {
+ var ApeApp = Y.Base.create('apeApp', Y.Base, [Y.Af.Applets, Y.Af.Rapid], {
+ initializer: function() {
+ Y.log('ApeApp.initializer()');
+ }
+ }, {});
+ YMedia.ApeApp = new ApeApp({});
+ });
+ }());
+ });
+ Y.later(10, this, function() {
+ Y.Media.pageContentStory = new Y.Media.ContentStory({
+ config: {
+ enableRapidTracking: 1,
+ modId: 'mediacontentstory',
+ contentType: 'story'
+ },
+ chrome: Y.Media.pageChrome
+ });
+ Y.Media.lbData = {
+ "content": {
+ "items": [{
+ "img": {
+ "url": "https:\/\/s1.yimg.com\/bt\/api\/res\/1.2\/1pNh__cWwaaBzgXO31LGHg--\/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9NDE0O3B4b2ZmPTUwO3B5b2ZmPTA7cT03NTt3PTczNg--\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975",
+ "width": 736,
+ "height": 414
+ },
+ "date": "1 year ago",
+ "uuid": "8ea6cae9-52c8-3c54-9b51-a4111390fd49",
+ "isVideo": true,
+ "url": "\/video\/photo-baby-wrapped-us-flag-122124162.html",
+ "orig_index": 0,
+ "type": "video",
+ "title": "Photo of Baby Wrapped in US Flag Seen as Unpatriotic",
+ "caption": "Critics say the photo of little Landon wrapped in a flag is disrespectful to Old Glory.",
+ "provider": "ABC News Videos",
+ "attribution": [],
+ "coverId": "cover-c9f378c27a326e7393f976fb643c348a"
+ }, {
+ "credit": null,
+ "img": {
+ "url": "https:\/\/s1.yimg.com\/bt\/api\/res\/1.2\/n.HTYNcU1XQP_N9z8nmHGg--\/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9NTQwO2lsPXBsYW5lO3B5b2ZmPTA7cT03NTt3PTk2MA--\/http:\/\/media.zenfs.com\/en_us\/gma\/us.abcnews.gma.com\/HT_flag_baby_jtm_150311_16x9_992.jpg",
+ "width": 960,
+ "height": 540
+ },
+ "date": "",
+ "uuid": "bfb9f6df-a7d6-37b4-8f49-087d2a579eae",
+ "isVideo": false,
+ "url": "\/photos\/veteran-wraps-baby-american-flag-photo-sparks-controversy-photo-175203647--abc-news-topstories.html",
+ "orig_index": 1,
+ "type": "image",
+ "title": "",
+ "caption": "Veteran Wraps Baby in American Flag, Photo Sparks Controversy (ABC News)",
+ "provider": "Good Morning America",
+ "attribution": [],
+ "coverId": "cover-8e12611c76a856856bc8ac55de8c4de1"
+ }, {
+ "img": {
+ "url": "https:\/\/s1.yimg.com\/bt\/api\/res\/1.2\/MIB33lCWoARyU6uaY9tHqQ--\/YXBwaWQ9eW5ld3NfbGVnbztxPTg1\/http:\/\/media.zenfs.com\/en_us\/gma\/us.abcnews.gma.com\/HT_flag_baby_jtm_150311_16x9_992.jpg",
+ "width": "630"
+ },
+ "isVideo": false,
+ "url": "",
+ "type": "image",
+ "title": "Vanessa Hicks",
+ "caption": "Vanessa Hicks",
+ "uuid": "4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c",
+ "orig_index": 2,
+ "coverId": "cover-fe6f7735a1e88b8cfde15e95b71583f7"
+ }],
+ "playlist": [{
+ "player_type": "yep",
+ "video_config": {
+ "autoplay": true,
+ "continuousPlay": true,
+ "mute": false,
+ "volume": "0.90",
+ "lang": "en-US",
+ "site": "gma",
+ "region": "US",
+ "jurisdiction": "US",
+ "YVAP": {
+ "accountId": "145",
+ "playContext": null
+ },
+ "pageSpaceId": "1197056126",
+ "comscoreC4": "News",
+ "comscoreC6": "gma",
+ "showEmbedCode": true,
+ "showShareUrl": true,
+ "expBucket": "",
+ "expName": "grandslam",
+ "expType": "lead_vp",
+ "apiEnv": "prod",
+ "CMS": {
+ "env": "prod",
+ "suppressAdContext": true
+ },
+ "playlist": [{
+ "id": "8ea6cae9-52c8-3c54-9b51-a4111390fd49",
+ "title": "Photo of Baby Wrapped in US Flag Seen as Unpatriotic",
+ "embedCode": "",
+ "shareUrl": "https:\/\/gma.yahoo.com\/video\/photo-baby-wrapped-us-flag-122124162.html",
+ "licenseId": "a077000000HNMFwAAP",
+ "duration": "140",
+ "images": {
+ "large": "https:\/\/s.yimg.com\/bt\/api\/res\/1.2\/fc29k.mZesoPfKOg8jkx7g--\/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9NzIwO3E9NzU7dz0xMjgw\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975",
+ "medium": "https:\/\/s1.yimg.com\/bt\/api\/res\/1.2\/GBNamw_IyQA3hvBPyxUR2w--\/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MjIwO3E9NzU7dz0yMzA-\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975"
+ },
+ "description": "Critics say the photo of little Landon wrapped in a flag is disrespectful to Old Glory.",
+ "embeddable": false
+ }]
+ },
+ "id": "8ea6cae9-52c8-3c54-9b51-a4111390fd49",
+ "title": "Photo of Baby Wrapped in US Flag Seen as Unpatriotic",
+ "embedCode": "",
+ "shareUrl": "https:\/\/gma.yahoo.com\/video\/photo-baby-wrapped-us-flag-122124162.html",
+ "licenseId": "a077000000HNMFwAAP",
+ "duration": "140",
+ "images": {
+ "large": "https:\/\/s.yimg.com\/bt\/api\/res\/1.2\/fc29k.mZesoPfKOg8jkx7g--\/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9NzIwO3E9NzU7dz0xMjgw\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975",
+ "medium": "https:\/\/s1.yimg.com\/bt\/api\/res\/1.2\/GBNamw_IyQA3hvBPyxUR2w--\/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MjIwO3E9NzU7dz0yMzA-\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975"
+ },
+ "description": "Critics say the photo of little Landon wrapped in a flag is disrespectful to Old Glory.",
+ "embedable": true,
+ "inline_js_url": "https:\/\/s1.yimg.com\/os\/mit\/media\/m\/videos\/yepcainlineplayer-min-5fa7b8e.js",
+ "js_url": "https:\/\/yep.video.yahoo.com\/js\/3\/videoplayer-min.js?lang=en-US"
+ }]
+ },
+ "total": 3,
+ "templates": {
+ "structure": "&lt;div id=\"content-lightbox\" class=\"yom-lb yom-lb-bg {{ieClass}} overlay-tracker\" data-uuid=\"{{slideshowId}}\"&gt;\n &lt;div class=\"lb-content clearfix\"&gt;\n &lt;div id=\"lb-rp\" class=\"lb-rp\"&gt;\n {{#slideshowDesc}}\n &lt;div id=\"lb-info\" class=\"lb-info truncate\"&gt;\n &lt;div id=\"lb-ss-desc\" class=\"lb-ss-desc \"&gt;\n &lt;div class=\"lb-ss-title\"&gt;{{{..\/slideshowTitle}}}&lt;\/div&gt;\n &lt;div class=\"lb-byline\"&gt;{{slideshowByline}}&lt;\/div&gt;\n &lt;p class=\"lb-desc\"&gt;{{{slideshowDesc}}}&lt;\/p&gt;\n &lt;div class=\"more-ss-desc-button\"&gt;{{..\/moreString}}&lt;\/div&gt;\n &lt;div class=\"less-ss-desc-button hidden\"&gt;{{..\/lessString}}&lt;\/div&gt;\n &lt;\/div&gt;\n &lt;\/div&gt;\n {{\/slideshowDesc}}\n {{#embedSlotOne}}\n &lt;div id=\"{{..\/embedSlotOne}}\" class=\"{{..\/embedSlotOne}} hidden\"&gt;\n &lt;center&gt;\n &lt;\/center&gt;\n &lt;\/div&gt;\n {{\/embedSlotOne}}\n {{#enableTrendingModule}}\n &lt;div id=\"{{trendingModuleId}}\" class=\"lb-module\"&gt;\n &lt;center&gt;\n &lt;\/center&gt;\n &lt;\/div&gt;\n {{\/enableTrendingModule}}\n &lt;div id=\"yom-ad-LREC-lb\" class=\"yom-ad-LREC lb-lrec\"&gt;\n &lt;center&gt;\n &lt;div id=\"yom-ad-LREC-iframe-lb\" class=\"yom-ad-iframe\" marginwidth=\"0\" marginheight=\"0\" hspace=\"0\" vspace=\"0\" frameborder=\"0\" scrolling=\"no\" style=\"display:none;width:300px;height:250px;\"&gt;\n &lt;\/div&gt;\n &lt;\/center&gt;\n &lt;\/div&gt;\n &lt;div id=\"yom-ad-FILM-lb\" class=\"yom-ad-FILM lb-film\"&gt;\n &lt;center&gt;\n &lt;div id=\"yom-ad-FILM-iframe-lb\" class=\"yom-ad-iframe\" marginwidth=\"0\" marginheight=\"0\" hspace=\"0\" vspace=\"0\" frameborder=\"0\" scrolling=\"no\" style=\"display:none;width:300px;height:600px;\"&gt;\n &lt;\/div&gt;\n &lt;\/center&gt;\n &lt;\/div&gt;\n {{#embedSlotTwo}}\n &lt;div id=\"{{..\/embedSlotTwo}}\" class=\"{{..\/embedSlotTwo}} hidden\"&gt;\n &lt;center&gt;\n &lt;\/center&gt;\n &lt;\/div&gt;\n {{\/embedSlotTwo}}\n &lt;div id=\"{{todayModuleId}}\" class=\"lb-module\"&gt;\n &lt;center&gt;\n &lt;\/center&gt;\n &lt;\/div&gt;\n &lt;div id=\"yom-ad-LREC2-lb\" class=\"yom-ad-LREC2 lb-lrec\"&gt;\n &lt;center&gt;\n &lt;div id=\"yom-ad-LREC2-iframe-lb\" class=\"yom-ad-iframe\" marginwidth=\"0\" marginheight=\"0\" hspace=\"0\" vspace=\"0\" frameborder=\"0\" scrolling=\"no\" style=\"display:none;width:300px;height:250px;\"&gt;\n &lt;\/div&gt;\n &lt;\/center&gt;\n &lt;\/div&gt;\n {{#embedSlotThree}}\n &lt;div id=\"{{..\/embedSlotThree}}\" class=\"{{..\/embedSlotThree}} hidden\"&gt;\n &lt;center&gt;\n &lt;\/center&gt;\n &lt;\/div&gt;\n {{\/embedSlotThree}}\n &lt;div id=\"{{slideshowModuleId}}\" class=\"lb-module\"&gt;\n &lt;center&gt;\n &lt;\/center&gt;\n &lt;\/div&gt;\n &lt;i class=\"close-btn Icon\"&gt;&amp;#xe009;&lt;\/i&gt;\n &lt;\/div&gt;\n &lt;div id=\"lb-cp\" class=\"lb-cp\"&gt;\n &lt;div class=\"lb-cp-hd clearfix\"&gt;\n &lt;div class=\"lb-hd-rp\"&gt;\n &lt;div id=\"lb-share-btns\" class=\"lb-share-btns\"&gt;\n &lt;\/div&gt;\n &lt;\/div&gt;\n &lt;div id=\"lb-hd\" class=\"lb-hd\"&gt;\n &lt;span&gt;{{{slideshowTitle}}}&lt;\/span&gt;\n &lt;\/div&gt;\n &lt;\/div&gt;\n &lt;div id=\"lb-viewport\" class=\"lb-viewport\"&gt;\n &lt;ul id=\"lb-viewport-list\" class=\"lb-viewport-list\"&gt;\n &lt;\/ul&gt;\n &lt;span class=\"lb-nav-left-panel\"&gt;\n &lt;span id=\"lb-btn-prev\" class=\"lb-btn\"&gt;\n &lt;span class=\"lb-prev\"&gt;&lt;\/span&gt;\n &lt;\/span&gt;\n &lt;\/span&gt;\n &lt;span class=\"lb-nav-right-panel\"&gt;\n &lt;span id=\"lb-btn-next\" class=\"lb-btn\"&gt;\n &lt;span class=\"lb-next\"&gt;&lt;\/span&gt;\n &lt;\/span&gt;\n &lt;\/span&gt;\n &lt;\/div&gt;\n &lt;div id=\"lb-meta\" class=\"lb-meta clearfix\"&gt;\n &lt;\/div&gt;\n {{#embedSlotSouth}}\n &lt;div id=\"{{..\/embedSlotSouth}}\" class=\"{{..\/embedSlotSouth}} hidden\"&gt;\n &lt;center&gt;\n &lt;\/center&gt;\n &lt;\/div&gt;\n {{\/embedSlotSouth}}\n {{#enableLDRBads}}\n &lt;div id=\"yom-ad-LDRB-lb\" class=\"yom-ad-LDRB lb-ldrb\"&gt;\n &lt;div id=\"yom-ad-LDRB-iframe-lb\" class=\"yom-ad-iframe\" marginwidth=\"0\" marginheight=\"0\" hspace=\"0\" vspace=\"0\" frameborder=\"0\" scrolling=\"no\" style=\"display:none;width:728px;height:90px;\"&gt;\n &lt;\/div&gt;\n &lt;\/div&gt;\n {{\/enableLDRBads}}\n {{^disableComments}}\n &lt;div class=\"lb-comments\"&gt;\n &lt;div id=\"{{commentsModuleId}}\" class=\"yom-comments yom-mod\"&gt;\n &lt;\/div&gt;\n &lt;\/div&gt;\n {{\/disableComments}}\n &lt;\/div&gt;\n &lt;\/div&gt;\n &lt;div id=\"lb-preload\" class=\"lb-preload\"&gt;\n &lt;\/div&gt;\n&lt;\/div&gt;\n",
+ "metaStructure": "&lt;div class=\"lb-meta-rp clearfix\"&gt;\n &lt;div class=\"lb-meta-controls\"&gt;\n &lt;span class=\"lb-meta-btn lb-prev\"&gt;&lt;\/span&gt;\n &lt;span class=\"lb-meta-count\"&gt;{{current}}\/{{total}}&lt;\/span&gt;\n &lt;span class=\"lb-meta-btn lb-next\"&gt;&lt;\/span&gt;\n &lt;\/div&gt;\n&lt;\/div&gt;\n{{#tumblrAttribution}}\n&lt;span class=\"tumblr-attribution-wrapper\"&gt;\n &lt;span class=\"tumblr-info lightbg\"&gt;\n {{#provider}}\n &lt;span class=\"tumblr-provider\"&gt;\n {{#logo}}\n &lt;a href=\"{{..\/..\/postUrl}}\" target=\"_blank\"&gt;\n &lt;img src=\"{{url}}\" class=\"avatar not-figure\"\/&gt;\n &lt;\/a&gt;\n {{\/logo}}\n &lt;a href=\"{{..\/postUrl}}\" target=\"_blank\" class=\"name\"&gt;{{name}}&lt;\/a&gt;&lt;!-- remove the space and put 4px via CSS\n --&gt;&lt;a href=\"http:\/\/www.tumblr.com\/follow\/{{id}}\" target=\"_blank\" class=\"tumblr-follow tumblr-btn\" \n data-ylk=\"t1:a3;t2:sh-lt;t5:{{location}};sec:sh-lt;slk:sh;elm:icn;elmt:sh-tu-flw;itc:1;ct:{{ct}}\"&gt;\n &lt;span class=\"tip\" style=\"left: -50px\"&gt;\n &lt;span class=\"text\"&gt;Follow on Tumblr&lt;\/span&gt;\n &lt;span class=\"arrow\"&gt;&lt;\/span&gt;\n &lt;\/span&gt;\n &lt;\/a&gt;&lt;br\/&gt;\n &lt;span class=\"tumblr-logo\"&gt;&lt;\/span&gt;\n &lt;\/span&gt;\n {{\/provider}}\n &lt;span class=\"tumblr-attribution\"&gt;\n {{#noteCount}}\n &lt;a href=\"{{postUrl}}\" target=\"_blank\" class=\"tumblr-notes\"&gt;{{.}} notes&lt;\/a&gt;\n {{\/noteCount}}\n &lt;a href=\"http:\/\/www.tumblr.com\/reblog\/{{id}}\/{{reblogKey}}?source=iframe\" target=\"_blank\" \n class=\"tumblr-reblog tumblr-btn\"\n data-ylk=\"t1:a3;t2:sh-lt;t5:{{location}};sec:sh-lt;slk:sh;elm:icn;elmt:sh-tu-rb;itc:1;ct:{{ct}}\"&gt;\n &lt;span class=\"tip\"&gt;\n &lt;span class=\"text\"&gt;Reblog on Tumblr&lt;\/span&gt;\n &lt;span class=\"arrow\"&gt;&lt;\/span&gt;\n &lt;\/span&gt;\n &lt;\/a&gt;\n {{#enableTumblrLike}}\n &lt;span class=\"tumblr-like\"&gt;\n &lt;iframe src=\"https:\/\/assets.tumblr.com\/assets\/html\/tumblr_like_iframe.html#name={{provider.name}}&amp;amp;post_id={{id}}\" scrolling=\"no\" width=\"20\" height=\"20\" frameborder=\"0\" class=\"like_toggle\" allowTransparency=\"true\"&gt;\n &lt;\/iframe&gt;\n &lt;\/span&gt;\n {{\/enableTumblrLike}}\n &lt;\/span&gt;\n &lt;\/span&gt;\n&lt;\/span&gt;\n{{\/tumblrAttribution}}\n{{^tumblrAttribution}}\n &lt;span class=\"lb-meta-credit\"&gt;\n {{#attribution}}\n {{attributionDivider}}{{#if attributionUrl}}&lt;a href=\"{{attributionUrl}}\" target=\"_blank\"&gt;{{\/if}}{{#if attributionSrc}}&lt;img src=\"{{attributionSrc}}\" class style=\"max-height:1em\"&gt;{{\/if}}{{{attributionText}}}{{#if attributionUrl}}&lt;\/a&gt;{{\/if}}\n {{\/attribution}}\n &lt;\/span&gt;\n{{\/tumblrAttribution}}\n&lt;div class=\"lb-meta-cp {{^ad}}{{#if captionToggled}} {{else}}truncate{{\/if}}{{\/ad}}\"&gt;\n &lt;div id=\"lb-meta-content\" class=\"lb-meta-content\"&gt;\n {{#ibItem}}\n &lt;div class=\"lb-ib-notice\"&gt;{{relatedString}}&lt;\/div&gt;\n {{\/ibItem}}\n {{#isSponsored}}\n &lt;a href=\"{{sponsor_url}}\"&gt;\n &lt;div class=\"lb-meta-nfl-spons-logo\"&gt;&lt;\/div&gt;\n &lt;\/a&gt;\n {{\/isSponsored}}\n {{#ad}}\n &lt;div&gt;\n &lt;p class=\"lb-meta-title\"&gt;\n &lt;a href=\"{{adUrl}}\" target=\"_blank\"&gt;{{{adTitle}}}&lt;\/a&gt;\n &lt;a target=\"_blank\" href=\"http:\/\/info.yahoo.com\/privacy\/us\/yahoo\/relevantads.html\" class=\"lb-adlink\"&gt;\n AdChoices\n &lt;i class=\"adchoice-logo\"&gt;\n &lt;\/i&gt;\n &lt;\/a&gt;\n &lt;\/p&gt;\n &lt;\/div&gt;\n {{\/ad}}\n {{^ad}}\n &lt;div&gt;\n &lt;p class=\"lb-meta-title\"&gt;\n {{{title}}}\n &lt;\/p&gt;\n &lt;\/div&gt;\n {{\/ad}}\n &lt;div&gt;\n &lt;p class=\"lb-meta-ts\"&gt;\n {{#video}}\n {{#if attributionUrl}}&lt;span class=\"lb-meta-duration\"&gt;{{duration}}&lt;\/span&gt;{{\/if}}\n {{\/video}}\n {{timestamp}}\n &lt;\/p&gt;\n &lt;\/div&gt;\n &lt;div class=\"lb-meta-txt-container\"&gt;\n &lt;p class=\"lb-meta-txt\"&gt;\n {{{description}}}\n &lt;\/p&gt;\n &lt;\/div&gt;\n {{#ad}}\n &lt;div&gt;\n &lt;p class=\"lb-ad-source\"&gt;\n &lt;a href=\"{{adUrl}}\" target=\"_blank\"&gt;{{{adSource}}}&lt;\/a&gt;\n &lt;span&gt;Sponsored&lt;\/span&gt;\n &lt;\/p&gt;\n &lt;\/div&gt;\n {{\/ad}}\n {{^ad}}\n &lt;div class=\"more-caption-button {{#if captionToggled}}hidden{{else}} {{\/if}}\"&gt;{{more}}&lt;\/div&gt;\n &lt;div class=\"less-caption-button {{#if captionToggled}} {{else}}hidden{{\/if}}\"&gt;{{less}}&lt;\/div&gt;\n {{\/ad}}\n &lt;\/div&gt;\n&lt;\/div&gt;\n",
+ "rmxStructure": "\n&lt;li id=\"{{id}}\" class=\"lb-img-container\"&gt;\n &lt;a href=\"{{url}}\" target=\"_blank\"&gt;\n &lt;img class=\"lb-img\" src=\"{{imgSrc}}\" style=\"max-height: {{viewportHeight}}px;\"&gt;\n &lt;\/a&gt;\n&lt;\/li&gt;\n",
+ "rmxCtaStructure": "\n&lt;div id=\"rmx-ad-cta-box\"&gt;\n &lt;a href=\"{{clickurl}}\" target=\"_blank\"&gt;\n &lt;div id=\"rmx-ad-cta\"&gt;\n &lt;p&gt;Learn more at&lt;br&gt;&lt;span class=\"source\"&gt;{{source}}&lt;\/span&gt;&lt;\/p&gt;\n &lt;img src=\"{{brandimage}}\" width=\"{{brandimagewidth}}px\" height=\"{{brandimageheight}}px\" alt=\"{{source}}\"&gt;\n &lt;\/div&gt;\n &lt;\/a&gt;\n&lt;\/div&gt;\n",
+ "photoStructure": "&lt;li id=\"{{id}}\" class=\"lb-img-container\" style=\"left: {{leftPosition}} ;\"&gt;\n {{#isTumblrVideo}}\n &lt;div class=\"tumblr-video\" style=\"text-align: center;\"&gt;{{{player.body}}}&lt;\/div&gt;\n {{\/isTumblrVideo}}\n {{^isTumblrVideo}}\n {{#isEmbed}}\n &lt;embed src=\"{{..\/embed.embed_src}}\" width=\"{{..\/embed.width}}\" height=\"{{..\/embed.height}}\"&gt;\n {{\/isEmbed}}\n {{^isEmbed}}\n &lt;img class=\"lb-img {{#isVideo}}lb-video-thumbnail{{\/isVideo}}\" src=\"{{imgSrc}}\" alt=\"{{imgTitle}}\" style=\"max-height: {{viewportHeight}}px; {{#isVideo}}max-width: 100%;{{\/isVideo}}\"&gt;&lt;\/img&gt;\n {{#isVideo}}\n &lt;div id=\"lb-video-container\" class=\"lb-video-container hidden\"&gt;&lt;\/div&gt;\n &lt;span class=\"lb-video-cta icon-white-play\"&gt;&lt;\/span&gt;\n {{\/isVideo}}\n {{\/isEmbed}}\n {{\/isTumblrVideo}}\n &lt;div class=\"lb-img-holder\"&gt;&lt;\/div&gt;\n&lt;\/li&gt;\n"
+ },
+ "coverPhotoURL": "https:\/\/s1.yimg.com\/bt\/api\/res\/1.2\/s3u6wLv_5ZUxAoedmTam2Q--\/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MjY2LjY2NjY2NjY2NjY3O3B4b2ZmPTUwO3B5b2ZmPTA7cT03NTt3PTQwMA--\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975"
+ };
+ });
+ Y.later(10, this, function() {
+ var defaultConfig = {
+ config: {
+ modId: 'mediacontentstory',
+ enableCacheControl: 1,
+ enableInfiniteScroll: 0 || 0,
+ enableMuteCommenter: 1,
+ enableViewOthers: 1,
+ enableCommentLightbox: 0,
+ enableCollapsedComment: 1 || 0,
+ spaceid: '1197056126',
+ location: 'body',
+ mobileLoginUrl: 'https://www.yahoo.com',
+ desktopLoginUrl: 'https://www.yahoo.com',
+ deeplinkId: '',
+ cache: '',
+ initialCommentsCount: 10,
+ XHR: {
+ 'GET_COMMENTS': '/_xhr/contentcomments/get_comments/',
+ 'GET_ALL': '/_xhr/contentcomments/get_all/',
+ 'GET_REPLIES': '/_xhr/contentcomments/get_replies/',
+ 'GET_CONTEXT': '/_xhr/contentcomments/get_context/',
+ 'REPORT_ABUSE': '/_xhr/contentcomments/report_abuse/',
+ 'MUTE_USER': '/_xhr/contentcomments/mute_user/',
+ 'RATE_COMMENTS': '/_xhr/contentcomments/rating/',
+ 'POST_COMMENTS': '/_xhr/contentcomments/post_comment_v2/',
+ 'POST_REPLIES': '/_xhr/contentcomments/post_reply/',
+ 'GET_DEEPLINK': '/_xhr/contentcomments/get_deeplink/',
+ 'GET_USER_COMMENTS': '/_xhr/contentcomments/get_user_comments/',
+ 'DELETE_COMMENT': '/_xhr/contentcomments/delete_comment/',
+ 'DELETE_REPLY': '/_xhr/contentcomments/delete_reply/'
+ },
+ strings: {
+ 'errorGeneric': 'Sorry, we are having trouble connecting right now. Please try again.',
+ 'collapseReplies': 'Collapse Replies',
+ 'errorAlreadyRated': 'You have already rated',
+ 'errorCommentEmpty': 'Please type a comment above.',
+ 'errorCommentTooLong': 'Comments are limited to 30000 characters. Please remove %N characters to post your comment.',
+ 'errorCommentRevalidate': '',
+ 'errorReplyEmpty': 'Please type a reply above.',
+ 'errorReplyTooLong': 'Comments are limited to 30000 characters. Please remove %N characters to post your reply.',
+ 'errorReplyRevalidate': '',
+ 'errorReportOtherEmpty': 'Please enter a reason for this abuse report.',
+ 'errorReportSelectViolation': 'Please select the type of violation above.',
+ 'errorReportRevalidate': '',
+ 'msg_report': "Thank you for reporting abuse.",
+ 'post_reply': 'Post Reply',
+ 'reply': 'Reply',
+ 'beTheFirst': 'Be the first to post a comment',
+ 'commentRemoved': 'Comment removed',
+ 'replyRemoved': 'Reply removed',
+ 'offensiveNoReasonMsg': 'You have reported this comment as offensive.',
+ 'offensiveReasonMsg': "A customer care agent will assess your feedback.",
+ 'allComments': 'All Comments',
+ 'myComments': 'My Comments',
+ 'usersComments': "%N's Comments",
+ 'areYouSure': 'Are you sure?',
+ 'yes': 'Yes',
+ 'no': 'No',
+ 'feature': 'Feature',
+ 'unfeature': 'Unfeature',
+ 'featured': 'Featured'
+ },
+ contentMetadata: {
+ 'title': "Veteran Wraps Baby in American Flag, Photo Sparks Controversy - Yahoo"
+ },
+ infinite: {
+ 'yOffset': '900',
+ 'timerDelay': 300
+ }
+ },
+ chrome: Y.Media.pageChrome
+ };
+ Y.Media.pageContentCommentsDefaultConfig = defaultConfig;
+ if (!Y.Media.lbData) {
+
+ }
+ });
+ Y.later(10, this, function() {
+ new Y.Media.ContentVideo({
+ config: {
+ modId: 'mediacontentstory',
+ playlist: [{
+ "player_type": "yep",
+ "video_config": {
+ "autoplay": true,
+ "continuousPlay": true,
+ "mute": false,
+ "volume": "0.90",
+ "lang": "en-US",
+ "site": "gma",
+ "region": "US",
+ "jurisdiction": "US",
+ "YVAP": {
+ "accountId": "145",
+ "playContext": null
+ },
+ "pageSpaceId": "1197056126",
+ "comscoreC4": "News",
+ "comscoreC6": "gma",
+ "showEmbedCode": true,
+ "showShareUrl": true,
+ "expBucket": "",
+ "expName": "grandslam",
+ "expType": "lead_vp",
+ "apiEnv": "prod",
+ "CMS": {
+ "env": "prod",
+ "suppressAdContext": true
+ },
+ "playlist": [{
+ "id": "8ea6cae9-52c8-3c54-9b51-a4111390fd49",
+ "title": "Photo of Baby Wrapped in US Flag Seen as Unpatriotic",
+ "embedCode": "",
+ "shareUrl": "https:\/\/gma.yahoo.com\/video\/photo-baby-wrapped-us-flag-122124162.html",
+ "licenseId": "a077000000HNMFwAAP",
+ "duration": "140",
+ "images": {
+ "large": "https:\/\/s.yimg.com\/bt\/api\/res\/1.2\/fc29k.mZesoPfKOg8jkx7g--\/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9NzIwO3E9NzU7dz0xMjgw\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975",
+ "medium": "https:\/\/s1.yimg.com\/bt\/api\/res\/1.2\/GBNamw_IyQA3hvBPyxUR2w--\/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MjIwO3E9NzU7dz0yMzA-\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975"
+ },
+ "description": "Critics say the photo of little Landon wrapped in a flag is disrespectful to Old Glory.",
+ "embeddable": false
+ }]
+ },
+ "id": "8ea6cae9-52c8-3c54-9b51-a4111390fd49",
+ "title": "Photo of Baby Wrapped in US Flag Seen as Unpatriotic",
+ "embedCode": "",
+ "shareUrl": "https:\/\/gma.yahoo.com\/video\/photo-baby-wrapped-us-flag-122124162.html",
+ "licenseId": "a077000000HNMFwAAP",
+ "duration": "140",
+ "images": {
+ "large": "https:\/\/s.yimg.com\/bt\/api\/res\/1.2\/fc29k.mZesoPfKOg8jkx7g--\/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9NzIwO3E9NzU7dz0xMjgw\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975",
+ "medium": "https:\/\/s1.yimg.com\/bt\/api\/res\/1.2\/GBNamw_IyQA3hvBPyxUR2w--\/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MjIwO3E9NzU7dz0yMzA-\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975"
+ },
+ "description": "Critics say the photo of little Landon wrapped in a flag is disrespectful to Old Glory.",
+ "embedable": true,
+ "inline_js_url": "https:\/\/s1.yimg.com\/os\/mit\/media\/m\/videos\/yepcainlineplayer-min-5fa7b8e.js",
+ "js_url": "https:\/\/yep.video.yahoo.com\/js\/3\/videoplayer-min.js?lang=en-US"
+ }]
+ },
+ chrome: Y.Media.pageChrome
+ });
+ });
+ Y.later(10, this, function() {
+ var mediacontentstory_share_btn_int = new Y.Media.ContentShareButtonsInt({
+ "modId": "mediacontentstory",
+ "container": "#mediacontentstory",
+ "btns": ["tumblr", "facebook", "twitter", "whatsapp", "mail"],
+ "overlayBlob": "",
+ "device": "full"
+ });
+ if (Y & amp; & amp; Y.Media) {
+ Y.Media.mediacontentstory_share_btn_int = mediacontentstory_share_btn_int;
+ }
+ Y.Media.shareButtonsInt = new Y.Media.ContentShareButtonsInt({
+ "modId": "mediacontentstory",
+ "isForBeacon": "1"
+ });
+ });
+ Y.later(10, this, function() {
+ Y.Media.shareButtons = new Y.Media.ContentShareButtons({
+ "modNode": "#mediacontentsharebuttons.yom-share-btns-container",
+ "switches": {
+ "cmt": false,
+ "rumble": false,
+ "shortenLink": false,
+ "featureStory": false,
+ "hideRumble": false
+ },
+ "loginStat": {
+ "yahoo": 0
+ },
+ "data": {
+ "mtfRedirUrl": "http%3A%2F%2Fgma.yahoo.com%2F_xhr%2Fmediacontentsharebuttons%2Fpostshare%2F%3Fsrc%3Dmail"
+ },
+ "pageData": {
+ "crumb": "",
+ "title": "Veteran Wraps Baby in American Flag, Photo Sparks Controversy",
+ "summary": "A photographer and Navy veteran is fighting back after a photo she posted to Facebook started an online backlash. Vanessa Hicks said she had no idea her photo would be considered controversial. The photo, from a military family\u2019s newborn photo shoot, showed a newborn infant wrapped in an American flag held by his father, who was in his military uniform. Hicks, a Navy veteran herself and the wife of an active-duty Navy member, said her intention was to honor the flag as well as her clients, who wanted to incorporate their military service in the photo shoot.",
+ "thumbnail": "https:\/\/s.yimg.com\/bt\/api\/res\/1.2\/qZaM9MLUOrxLg4IfXt_Niw--\/YXBwaWQ9eW5ld3NfbGVnbztxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975.cf.png",
+ "url": "https:\/\/gma.yahoo.com\/veteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html",
+ "type": "article",
+ "locale": "US",
+ "prop": "gma",
+ "content_id": "4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c",
+ "ult__S": "1197056126",
+ "ult_ct": "a",
+ "ult_pkg": "4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c",
+ "ult_test": "",
+ "ult_csrcpvid": "F36jJTEwNi5pgDceruQKbQDcMTE4LlhRDGP_wMhI",
+ "ult_sec": "mod-sh-mail",
+ "ult_slk": "mail",
+ "ult_mpos": 1,
+ "ult_lang": "en-US",
+ "ult_act": "mail",
+ "ult_pstaid": "4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c"
+ },
+ "contentMetaData": {
+ "id": "4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c",
+ "url_orig": "https:\/\/gma.yahoo.com\/veteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html",
+ "title_orig": "Veteran Wraps Baby in American Flag, Photo Sparks Controversy",
+ "summary": "A photographer and Navy veteran is fighting back after a photo she posted to Facebook started an online backlash. Vanessa Hicks said she had no idea her photo would be considered controversial. The photo, from a military family\u2019s newborn photo shoot, showed a newborn infant wrapped in an American flag held by his father, who was in his military uniform. Hicks, a Navy veteran herself and the wife of an active-duty Navy member, said her intention was to honor the flag as well as her clients, who wanted to incorporate their military service in the photo shoot.",
+ "type": "story"
+ },
+ "config": {
+ "site": "gma",
+ "lang": "en-US",
+ "region": "US",
+ "scrumb": ""
+ }
+ });
+ });
+ Y.later(10, this, function() {
+ var mediacontentsharebuttons_share_btn_int = new Y.Media.ContentShareButtonsInt({
+ "modId": "mediacontentsharebuttons",
+ "container": "#mediacontentsharebuttons",
+ "btns": ["tumblr", "facebook", "twitter", "whatsapp", "mail"],
+ "overlayBlob": "",
+ "device": "full"
+ });
+ if (Y & amp; & amp; Y.Media) {
+ Y.Media.mediacontentsharebuttons_share_btn_int = mediacontentsharebuttons_share_btn_int;
+ }
+ Y.Media.shareButtonsInt = new Y.Media.ContentShareButtonsInt({
+ "modId": "mediacontentsharebuttons",
+ "isForBeacon": "1"
+ });;
+ });
+
+ });
+
+ YUI.Env.add(window, "load", function() {
+ YMedia.use("media-rmp", "media-trfsm", "base", "jsonp", "media-i13n", "media-dwell-time", "node", "event", "json-stringify", "node-event-html5", "media-event-queue", "media-ywa-tracking", "node-base", "event-base", "media-content-follow-property", "media-content-social-base", "media-content-navigation-desktop", "node-event-delegate", "overlay", "stencil-tooltip", "media-content-common", "event-tap", "event-custom", "node-core", "node-data", "node-screen", "json-parse", "media-video-embed-player", "media-action-bar", "attribute-core", "cookie", "querystring-parse", "io-base", "media-preview-default", "media-footer", "json", "querystring", "media-content-share-buttons-int", "media-share-buttons-builder", function(Y) {
+
+ Y.later(10, this, function() {
+ Y.Array.each(YMedia.includes, function(inc, i, ar) {
+ if (Y.Lang.isFunction(inc)) {
+ inc(Y);
+ ar[i] = null;
+ }
+ });
+ });
+ Y.later(10, this, function() {
+ Y.Global.Media.ILBoot.initImageLoader(true);
+ });
+ Y.later(10, this, function() {
+ (function() {
+ var configUrl = 'https://s.yimg.com/os/assets/globalmedia/traffic/traffic-simulation.js',
+ simulator = new Y.Media.TrafficSimulator({
+ 'dataUrl': configUrl
+ });
+ simulator.load();
+ })();
+ });
+ Y.later(10, this, function() {
+ try {
+ YMEDIA_REQ_ATTR.csbeacon();
+ } catch (e) {}
+ });
+ Y.later(10, this, function() {
+ new Y.Media.MediaContentFollowProperty({
+ "item_facebook": {
+ "article:publisher": "https:\/\/www.facebook.com\/GoodMorningAmerica",
+ "fb:app_id": "90376669494",
+ "fb:page_id": "",
+ "og:description": "A photographer and Navy veteran is fighting back after a photo she posted to Facebook started an online backlash. Vanessa Hicks said she had no idea her photo would be considered controversial. The photo, from a military family\u2019s newborn photo shoot, showed a newborn infant wrapped in an American flag held by his father, who was in his military uniform. Hicks, a Navy veteran herself and the wife of an active-duty Navy member, said her intention was to honor the flag as well as her clients, who wanted to incorporate their military service in the photo shoot.",
+ "og:image": "https:\/\/s.yimg.com\/bt\/api\/res\/1.2\/qZaM9MLUOrxLg4IfXt_Niw--\/YXBwaWQ9eW5ld3NfbGVnbztxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975.cf.png",
+ "og:site_name": "Yahoo",
+ "og:title": "Veteran Wraps Baby in American Flag, Photo Sparks Controversy",
+ "og:type": "article",
+ "og:url": "https:\/\/gma.yahoo.com\/veteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html",
+ "twitter:card": "summary_large_image",
+ "twitter:description": "A photographer and Navy veteran is fighting back after a photo she posted to Facebook started an online backlash. Vanessa Hicks said she had no idea her photo would be considered controversial. The photo, from a military family\u2019s newborn photo shoot, showed a newborn infant wrapped in an American flag held by his father, who was in his military uniform. Hicks, a Navy veteran herself and the wife of an active-duty Navy member, said her intention was to honor the flag as well as her clients, who wanted to incorporate their military service in the photo shoot.",
+ "twitter:dnt": "on",
+ "twitter:image": "https:\/\/s.yimg.com\/bt\/api\/res\/1.2\/qZaM9MLUOrxLg4IfXt_Niw--\/YXBwaWQ9eW5ld3NfbGVnbztxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975.cf.png",
+ "twitter:image:src": "https:\/\/s.yimg.com\/bt\/api\/res\/1.2\/qZaM9MLUOrxLg4IfXt_Niw--\/YXBwaWQ9eW5ld3NfbGVnbztxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975.cf.png",
+ "twitter:site": "@GMA",
+ "twitter:title": "Veteran Wraps Baby in American Flag, Photo Sparks Controversy",
+ "follow_url": "www.facebook.com",
+ "follow_site": "facebook",
+ "follow_id": "GoodMorningAmerica",
+ "follow_title": "on Facebook",
+ "lang": "en_US",
+ "trackingIcon": "data-ylk= t1:a4;t2:sh-fwm;t3:tp;sec:sh-fwm;elm:icn;cpos:1;_p:1;itc:0;tar:www.facebook.com;test:;act:click;rspns:nav;slk:btn-sh-fb;elmt:sh-fb;",
+ "tracking": "data-ylk= t1:a4;t2:sh-fwm;t3:tp;sec:sh-fwm;elm:itm;cpos:1;_p:1;itc:0;tar:www.facebook.com;test:;act:click;rspns:nav;slk:btn-sh-fb;elmt:sh-fb;",
+ "outcome": "sh",
+ "rel": "publisher",
+ "gicon": "&amp;#xe000;",
+ "is_tumblr": ""
+ },
+ "item_twitter": {
+ "article:publisher": "https:\/\/www.facebook.com\/GoodMorningAmerica",
+ "fb:app_id": "90376669494",
+ "fb:page_id": "",
+ "og:description": "A photographer and Navy veteran is fighting back after a photo she posted to Facebook started an online backlash. Vanessa Hicks said she had no idea her photo would be considered controversial. The photo, from a military family\u2019s newborn photo shoot, showed a newborn infant wrapped in an American flag held by his father, who was in his military uniform. Hicks, a Navy veteran herself and the wife of an active-duty Navy member, said her intention was to honor the flag as well as her clients, who wanted to incorporate their military service in the photo shoot.",
+ "og:image": "https:\/\/s.yimg.com\/bt\/api\/res\/1.2\/qZaM9MLUOrxLg4IfXt_Niw--\/YXBwaWQ9eW5ld3NfbGVnbztxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975.cf.png",
+ "og:site_name": "Yahoo",
+ "og:title": "Veteran Wraps Baby in American Flag, Photo Sparks Controversy",
+ "og:type": "article",
+ "og:url": "https:\/\/gma.yahoo.com\/veteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html",
+ "twitter:card": "summary_large_image",
+ "twitter:description": "A photographer and Navy veteran is fighting back after a photo she posted to Facebook started an online backlash. Vanessa Hicks said she had no idea her photo would be considered controversial. The photo, from a military family\u2019s newborn photo shoot, showed a newborn infant wrapped in an American flag held by his father, who was in his military uniform. Hicks, a Navy veteran herself and the wife of an active-duty Navy member, said her intention was to honor the flag as well as her clients, who wanted to incorporate their military service in the photo shoot.",
+ "twitter:dnt": "on",
+ "twitter:image": "https:\/\/s.yimg.com\/bt\/api\/res\/1.2\/qZaM9MLUOrxLg4IfXt_Niw--\/YXBwaWQ9eW5ld3NfbGVnbztxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975.cf.png",
+ "twitter:image:src": "https:\/\/s.yimg.com\/bt\/api\/res\/1.2\/qZaM9MLUOrxLg4IfXt_Niw--\/YXBwaWQ9eW5ld3NfbGVnbztxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975.cf.png",
+ "twitter:site": "@GMA",
+ "twitter:title": "Veteran Wraps Baby in American Flag, Photo Sparks Controversy",
+ "follow_url": "twitter.com",
+ "follow_site": "twitter",
+ "follow_id": "GMA",
+ "follow_title": "on Twitter",
+ "lang": "en_US",
+ "trackingIcon": "data-ylk= t1:a4;t2:sh-fwm;t3:tp;sec:sh-fwm;elm:icn;cpos:1;_p:2;itc:0;tar:twitter.com;test:;act:click;rspns:nav;slk:btn-sh-tw;elmt:sh-tw;",
+ "tracking": "data-ylk= t1:a4;t2:sh-fwm;t3:tp;sec:sh-fwm;elm:itm;cpos:1;_p:2;itc:0;tar:twitter.com;test:;act:click;rspns:nav;slk:btn-sh-tw;elmt:sh-tw;",
+ "outcome": "sh",
+ "rel": "publisher",
+ "gicon": "&amp;#xe001;",
+ "is_tumblr": ""
+ },
+ "item_tumblr": {
+ "article:publisher": "https:\/\/www.facebook.com\/GoodMorningAmerica",
+ "fb:app_id": "90376669494",
+ "fb:page_id": "",
+ "og:description": "A photographer and Navy veteran is fighting back after a photo she posted to Facebook started an online backlash. Vanessa Hicks said she had no idea her photo would be considered controversial. The photo, from a military family\u2019s newborn photo shoot, showed a newborn infant wrapped in an American flag held by his father, who was in his military uniform. Hicks, a Navy veteran herself and the wife of an active-duty Navy member, said her intention was to honor the flag as well as her clients, who wanted to incorporate their military service in the photo shoot.",
+ "og:image": "https:\/\/s.yimg.com\/bt\/api\/res\/1.2\/qZaM9MLUOrxLg4IfXt_Niw--\/YXBwaWQ9eW5ld3NfbGVnbztxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975.cf.png",
+ "og:site_name": "Yahoo",
+ "og:title": "Veteran Wraps Baby in American Flag, Photo Sparks Controversy",
+ "og:type": "article",
+ "og:url": "https:\/\/gma.yahoo.com\/veteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html",
+ "twitter:card": "summary_large_image",
+ "twitter:description": "A photographer and Navy veteran is fighting back after a photo she posted to Facebook started an online backlash. Vanessa Hicks said she had no idea her photo would be considered controversial. The photo, from a military family\u2019s newborn photo shoot, showed a newborn infant wrapped in an American flag held by his father, who was in his military uniform. Hicks, a Navy veteran herself and the wife of an active-duty Navy member, said her intention was to honor the flag as well as her clients, who wanted to incorporate their military service in the photo shoot.",
+ "twitter:dnt": "on",
+ "twitter:image": "https:\/\/s.yimg.com\/bt\/api\/res\/1.2\/qZaM9MLUOrxLg4IfXt_Niw--\/YXBwaWQ9eW5ld3NfbGVnbztxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975.cf.png",
+ "twitter:image:src": "https:\/\/s.yimg.com\/bt\/api\/res\/1.2\/qZaM9MLUOrxLg4IfXt_Niw--\/YXBwaWQ9eW5ld3NfbGVnbztxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975.cf.png",
+ "twitter:site": "@GMA",
+ "twitter:title": "Veteran Wraps Baby in American Flag, Photo Sparks Controversy",
+ "follow_url": "tumblr.com",
+ "follow_site": "tumblr",
+ "follow_id": "goodmorningamerica",
+ "follow_title": "on Tumblr",
+ "lang": "en_US",
+ "trackingIcon": "data-ylk= t1:a4;t2:sh-fwm;t3:tp;sec:sh-fwm;elm:icn;cpos:1;_p:3;itc:0;tar:goodmorningamerica.tumblr.com;test:;act:click;rspns:nav;slk:btn-sh-tu;elmt:sh-tu;",
+ "tracking": "data-ylk= t1:a4;t2:sh-fwm;t3:tp;sec:sh-fwm;elm:itm;cpos:1;_p:3;itc:0;tar:goodmorningamerica.tumblr.com;test:;act:click;rspns:nav;slk:btn-sh-tu;elmt:sh-tu;",
+ "outcome": "sh",
+ "rel": "publisher",
+ "gicon": "&amp;#xe071;",
+ "is_tumblr": "1"
+ },
+ "item_gplus": {
+ "article:publisher": "https:\/\/www.facebook.com\/GoodMorningAmerica",
+ "fb:app_id": "90376669494",
+ "fb:page_id": "",
+ "og:description": "A photographer and Navy veteran is fighting back after a photo she posted to Facebook started an online backlash. Vanessa Hicks said she had no idea her photo would be considered controversial. The photo, from a military family\u2019s newborn photo shoot, showed a newborn infant wrapped in an American flag held by his father, who was in his military uniform. Hicks, a Navy veteran herself and the wife of an active-duty Navy member, said her intention was to honor the flag as well as her clients, who wanted to incorporate their military service in the photo shoot.",
+ "og:image": "https:\/\/s.yimg.com\/bt\/api\/res\/1.2\/qZaM9MLUOrxLg4IfXt_Niw--\/YXBwaWQ9eW5ld3NfbGVnbztxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975.cf.png",
+ "og:site_name": "Yahoo",
+ "og:title": "Veteran Wraps Baby in American Flag, Photo Sparks Controversy",
+ "og:type": "article",
+ "og:url": "https:\/\/gma.yahoo.com\/veteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html",
+ "twitter:card": "summary_large_image",
+ "twitter:description": "A photographer and Navy veteran is fighting back after a photo she posted to Facebook started an online backlash. Vanessa Hicks said she had no idea her photo would be considered controversial. The photo, from a military family\u2019s newborn photo shoot, showed a newborn infant wrapped in an American flag held by his father, who was in his military uniform. Hicks, a Navy veteran herself and the wife of an active-duty Navy member, said her intention was to honor the flag as well as her clients, who wanted to incorporate their military service in the photo shoot.",
+ "twitter:dnt": "on",
+ "twitter:image": "https:\/\/s.yimg.com\/bt\/api\/res\/1.2\/qZaM9MLUOrxLg4IfXt_Niw--\/YXBwaWQ9eW5ld3NfbGVnbztxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975.cf.png",
+ "twitter:image:src": "https:\/\/s.yimg.com\/bt\/api\/res\/1.2\/qZaM9MLUOrxLg4IfXt_Niw--\/YXBwaWQ9eW5ld3NfbGVnbztxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975.cf.png",
+ "twitter:site": "@GMA",
+ "twitter:title": "Veteran Wraps Baby in American Flag, Photo Sparks Controversy",
+ "follow_url": "plus.google.com",
+ "follow_site": "gplus",
+ "follow_id": "+GMA",
+ "follow_title": "on Google+",
+ "lang": "en_US",
+ "trackingIcon": "data-ylk= t1:a4;t2:sh-fwm;t3:tp;sec:sh-fwm;elm:icn;cpos:1;_p:4;itc:0;tar:plus.google.com;test:;act:click;rspns:nav;slk:btn-sh-gp;elmt:sh-gp;",
+ "tracking": "data-ylk= t1:a4;t2:sh-fwm;t3:tp;sec:sh-fwm;elm:itm;cpos:1;_p:4;itc:0;tar:plus.google.com;test:;act:click;rspns:nav;slk:btn-sh-gp;elmt:sh-gp;",
+ "outcome": "sh",
+ "rel": "publisher",
+ "gicon": "&amp;#xe07e;",
+ "is_tumblr": ""
+ },
+ "mod_id": "mediacontentfollowproperty_3",
+ "mixer": {
+ "site": "gma",
+ "region": "US",
+ "lang": "en-US",
+ "scrumb": "",
+ "content_id": "4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c",
+ "title_orig": "Veteran Wraps Baby in American Flag, Photo Sparks Controversy - Yahoo",
+ "url_orig": "https:\/\/gma.yahoo.com\/veteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html"
+ }
+ });
+ });
+ Y.later(10, this, function() {
+ var vpl = Y.Object.getValue(Y, ['Global', 'Media', 'ViewportLoader']);
+ if (vpl) {
+ vpl.loadModules();
+ }
+ });
+ Y.later(10, this, function() {
+ new Y.Media.ContentNavigation({
+ config: {
+ modId: 'mediacontentnavigation',
+ disableSubnavOverlay: 0,
+ rapidTimer: 748,
+ enableStencilNav: 0
+ },
+ chrome: Y.Media.pageChrome
+ });
+ });
+ Y.later(10, this, function() {
+ Y.Media.pageContentCommon = new Y.Media.ContentCommon({
+ config: {
+ metadata: {
+ "title": "Veteran Wraps Baby in American Flag, Photo Sparks Controversy",
+ "attribution": "Good Morning America",
+ "uuid": "4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c",
+ "description": "A photographer and Navy veteran is fighting back after a photo she posted to Facebook started an online backlash. Vanessa Hicks said she had no idea her photo would be considered controversial. The photo, from a military family\u2019s newborn photo shoot, showed a newborn infant wrapped in an American flag held by his father, who was in his military uniform. Hicks, a Navy veteran herself and the wife of an active-duty Navy member, said her intention was to honor the flag as well as her clients, who wanted to incorporate their military service in the photo shoot."
+ },
+ modId: 'mediacontentstory'
+ },
+ chrome: Y.Media.pageChrome
+ });
+ });
+ Y.later(10, this, function() {
+ new Y.Media.ActionBar({
+ 'modId': 'mediacontentstory',
+ 'text': {
+ saveUnselected: 'Save',
+ saveSelected: 'Saved',
+ likeUnselected: 'Like',
+ likeSelected: 'Liked',
+ dislikeUnselected: 'Dislike',
+ dislikeSelected: 'Disliked',
+ topicShowMore: "Got it. We'll show you more stories like this.&lt;br /&gt;Tell us more about what you like:",
+ topicShowLess: "Got it, We'll show you fewer stories like this.&lt;br /&gt;Tell us more about what you dislike:",
+ undo: 'Undo',
+ signin: {
+ like: "Sign-in and we'll show you more like this in the future.",
+ dislike: "Sign-in and we'll show you less like this in the future.",
+ save: "Sign-in to save this story to read later."
+ }
+ },
+ 'yahooSignInUrl': 'https://login.yahoo.com/config/login?.src=yn&amp;.intl=US&amp;.lang=en-US&amp;.done=',
+ 'enableTopicBar': 1,
+ 'actionbarDrawerPtn': 'https://s.yimg.com/os/mit/media/m/content/images/actionbar_drawer_ptn-b49899b.png',
+ 'contentType': 'story',
+ 'sig': '5b5682d7d70301809cf73f10d3587ee49a1bc888'
+ });
+ });
+ Y.later(10, this, function() {
+ new Y.Media.ContentPreview({
+ "no_preview_text": "No Preview Available",
+ "video_preview_audio": "",
+ "mod_id": "mediacontentgenericlistings",
+ "video_preview_loading_icon": "https:\/\/s.yimg.com\/os\/mit\/media\/m\/content_index\/images\/purple_loader-d46f515.png"
+ });
+ });
+ Y.later(10, this, function() {
+ new Y.Media.ContentPreview({
+ "no_preview_text": "No Preview Available",
+ "video_preview_audio": "",
+ "mod_id": "mediacontentgenericlistings_2",
+ "video_preview_loading_icon": "https:\/\/s.yimg.com\/os\/mit\/media\/m\/content_index\/images\/purple_loader-d46f515.png"
+ });
+ });
+ Y.later(10, this, function() {
+ new Y.Media.MediaContentFollowProperty({
+ "item_facebook": {
+ "article:publisher": "https:\/\/www.facebook.com\/GoodMorningAmerica",
+ "fb:app_id": "90376669494",
+ "fb:page_id": "",
+ "og:description": "A photographer and Navy veteran is fighting back after a photo she posted to Facebook started an online backlash. Vanessa Hicks said she had no idea her photo would be considered controversial. The photo, from a military family\u2019s newborn photo shoot, showed a newborn infant wrapped in an American flag held by his father, who was in his military uniform. Hicks, a Navy veteran herself and the wife of an active-duty Navy member, said her intention was to honor the flag as well as her clients, who wanted to incorporate their military service in the photo shoot.",
+ "og:image": "https:\/\/s.yimg.com\/bt\/api\/res\/1.2\/qZaM9MLUOrxLg4IfXt_Niw--\/YXBwaWQ9eW5ld3NfbGVnbztxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975.cf.png",
+ "og:site_name": "Yahoo",
+ "og:title": "Veteran Wraps Baby in American Flag, Photo Sparks Controversy",
+ "og:type": "article",
+ "og:url": "https:\/\/gma.yahoo.com\/veteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html",
+ "twitter:card": "summary_large_image",
+ "twitter:description": "A photographer and Navy veteran is fighting back after a photo she posted to Facebook started an online backlash. Vanessa Hicks said she had no idea her photo would be considered controversial. The photo, from a military family\u2019s newborn photo shoot, showed a newborn infant wrapped in an American flag held by his father, who was in his military uniform. Hicks, a Navy veteran herself and the wife of an active-duty Navy member, said her intention was to honor the flag as well as her clients, who wanted to incorporate their military service in the photo shoot.",
+ "twitter:dnt": "on",
+ "twitter:image": "https:\/\/s.yimg.com\/bt\/api\/res\/1.2\/qZaM9MLUOrxLg4IfXt_Niw--\/YXBwaWQ9eW5ld3NfbGVnbztxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975.cf.png",
+ "twitter:image:src": "https:\/\/s.yimg.com\/bt\/api\/res\/1.2\/qZaM9MLUOrxLg4IfXt_Niw--\/YXBwaWQ9eW5ld3NfbGVnbztxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975.cf.png",
+ "twitter:site": "@GMA",
+ "twitter:title": "Veteran Wraps Baby in American Flag, Photo Sparks Controversy",
+ "follow_url": "www.facebook.com",
+ "follow_site": "facebook",
+ "follow_id": "GoodMorningAmerica",
+ "follow_title": "on Facebook",
+ "lang": "en_US",
+ "trackingIcon": "data-ylk= t1:a4;t2:sh-fwm;t3:btm;sec:sh-fwm;elm:icn;cpos:1;_p:1;itc:0;tar:www.facebook.com;test:;act:click;rspns:nav;slk:btn-sh-fb;elmt:sh-fb;",
+ "tracking": "data-ylk= t1:a4;t2:sh-fwm;t3:btm;sec:sh-fwm;elm:itm;cpos:1;_p:1;itc:0;tar:www.facebook.com;test:;act:click;rspns:nav;slk:btn-sh-fb;elmt:sh-fb;",
+ "outcome": "sh",
+ "rel": "publisher",
+ "gicon": "&amp;#xe000;",
+ "is_tumblr": ""
+ },
+ "item_twitter": {
+ "article:publisher": "https:\/\/www.facebook.com\/GoodMorningAmerica",
+ "fb:app_id": "90376669494",
+ "fb:page_id": "",
+ "og:description": "A photographer and Navy veteran is fighting back after a photo she posted to Facebook started an online backlash. Vanessa Hicks said she had no idea her photo would be considered controversial. The photo, from a military family\u2019s newborn photo shoot, showed a newborn infant wrapped in an American flag held by his father, who was in his military uniform. Hicks, a Navy veteran herself and the wife of an active-duty Navy member, said her intention was to honor the flag as well as her clients, who wanted to incorporate their military service in the photo shoot.",
+ "og:image": "https:\/\/s.yimg.com\/bt\/api\/res\/1.2\/qZaM9MLUOrxLg4IfXt_Niw--\/YXBwaWQ9eW5ld3NfbGVnbztxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975.cf.png",
+ "og:site_name": "Yahoo",
+ "og:title": "Veteran Wraps Baby in American Flag, Photo Sparks Controversy",
+ "og:type": "article",
+ "og:url": "https:\/\/gma.yahoo.com\/veteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html",
+ "twitter:card": "summary_large_image",
+ "twitter:description": "A photographer and Navy veteran is fighting back after a photo she posted to Facebook started an online backlash. Vanessa Hicks said she had no idea her photo would be considered controversial. The photo, from a military family\u2019s newborn photo shoot, showed a newborn infant wrapped in an American flag held by his father, who was in his military uniform. Hicks, a Navy veteran herself and the wife of an active-duty Navy member, said her intention was to honor the flag as well as her clients, who wanted to incorporate their military service in the photo shoot.",
+ "twitter:dnt": "on",
+ "twitter:image": "https:\/\/s.yimg.com\/bt\/api\/res\/1.2\/qZaM9MLUOrxLg4IfXt_Niw--\/YXBwaWQ9eW5ld3NfbGVnbztxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975.cf.png",
+ "twitter:image:src": "https:\/\/s.yimg.com\/bt\/api\/res\/1.2\/qZaM9MLUOrxLg4IfXt_Niw--\/YXBwaWQ9eW5ld3NfbGVnbztxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975.cf.png",
+ "twitter:site": "@GMA",
+ "twitter:title": "Veteran Wraps Baby in American Flag, Photo Sparks Controversy",
+ "follow_url": "twitter.com",
+ "follow_site": "twitter",
+ "follow_id": "GMA",
+ "follow_title": "on Twitter",
+ "lang": "en_US",
+ "trackingIcon": "data-ylk= t1:a4;t2:sh-fwm;t3:btm;sec:sh-fwm;elm:icn;cpos:1;_p:2;itc:0;tar:twitter.com;test:;act:click;rspns:nav;slk:btn-sh-tw;elmt:sh-tw;",
+ "tracking": "data-ylk= t1:a4;t2:sh-fwm;t3:btm;sec:sh-fwm;elm:itm;cpos:1;_p:2;itc:0;tar:twitter.com;test:;act:click;rspns:nav;slk:btn-sh-tw;elmt:sh-tw;",
+ "outcome": "sh",
+ "rel": "publisher",
+ "gicon": "&amp;#xe001;",
+ "is_tumblr": ""
+ },
+ "item_tumblr": {
+ "article:publisher": "https:\/\/www.facebook.com\/GoodMorningAmerica",
+ "fb:app_id": "90376669494",
+ "fb:page_id": "",
+ "og:description": "A photographer and Navy veteran is fighting back after a photo she posted to Facebook started an online backlash. Vanessa Hicks said she had no idea her photo would be considered controversial. The photo, from a military family\u2019s newborn photo shoot, showed a newborn infant wrapped in an American flag held by his father, who was in his military uniform. Hicks, a Navy veteran herself and the wife of an active-duty Navy member, said her intention was to honor the flag as well as her clients, who wanted to incorporate their military service in the photo shoot.",
+ "og:image": "https:\/\/s.yimg.com\/bt\/api\/res\/1.2\/qZaM9MLUOrxLg4IfXt_Niw--\/YXBwaWQ9eW5ld3NfbGVnbztxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975.cf.png",
+ "og:site_name": "Yahoo",
+ "og:title": "Veteran Wraps Baby in American Flag, Photo Sparks Controversy",
+ "og:type": "article",
+ "og:url": "https:\/\/gma.yahoo.com\/veteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html",
+ "twitter:card": "summary_large_image",
+ "twitter:description": "A photographer and Navy veteran is fighting back after a photo she posted to Facebook started an online backlash. Vanessa Hicks said she had no idea her photo would be considered controversial. The photo, from a military family\u2019s newborn photo shoot, showed a newborn infant wrapped in an American flag held by his father, who was in his military uniform. Hicks, a Navy veteran herself and the wife of an active-duty Navy member, said her intention was to honor the flag as well as her clients, who wanted to incorporate their military service in the photo shoot.",
+ "twitter:dnt": "on",
+ "twitter:image": "https:\/\/s.yimg.com\/bt\/api\/res\/1.2\/qZaM9MLUOrxLg4IfXt_Niw--\/YXBwaWQ9eW5ld3NfbGVnbztxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975.cf.png",
+ "twitter:image:src": "https:\/\/s.yimg.com\/bt\/api\/res\/1.2\/qZaM9MLUOrxLg4IfXt_Niw--\/YXBwaWQ9eW5ld3NfbGVnbztxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975.cf.png",
+ "twitter:site": "@GMA",
+ "twitter:title": "Veteran Wraps Baby in American Flag, Photo Sparks Controversy",
+ "follow_url": "tumblr.com",
+ "follow_site": "tumblr",
+ "follow_id": "goodmorningamerica",
+ "follow_title": "on Tumblr",
+ "lang": "en_US",
+ "trackingIcon": "data-ylk= t1:a4;t2:sh-fwm;t3:btm;sec:sh-fwm;elm:icn;cpos:1;_p:3;itc:0;tar:goodmorningamerica.tumblr.com;test:;act:click;rspns:nav;slk:btn-sh-tu;elmt:sh-tu;",
+ "tracking": "data-ylk= t1:a4;t2:sh-fwm;t3:btm;sec:sh-fwm;elm:itm;cpos:1;_p:3;itc:0;tar:goodmorningamerica.tumblr.com;test:;act:click;rspns:nav;slk:btn-sh-tu;elmt:sh-tu;",
+ "outcome": "sh",
+ "rel": "publisher",
+ "gicon": "&amp;#xe071;",
+ "is_tumblr": "1"
+ },
+ "item_gplus": {
+ "article:publisher": "https:\/\/www.facebook.com\/GoodMorningAmerica",
+ "fb:app_id": "90376669494",
+ "fb:page_id": "",
+ "og:description": "A photographer and Navy veteran is fighting back after a photo she posted to Facebook started an online backlash. Vanessa Hicks said she had no idea her photo would be considered controversial. The photo, from a military family\u2019s newborn photo shoot, showed a newborn infant wrapped in an American flag held by his father, who was in his military uniform. Hicks, a Navy veteran herself and the wife of an active-duty Navy member, said her intention was to honor the flag as well as her clients, who wanted to incorporate their military service in the photo shoot.",
+ "og:image": "https:\/\/s.yimg.com\/bt\/api\/res\/1.2\/qZaM9MLUOrxLg4IfXt_Niw--\/YXBwaWQ9eW5ld3NfbGVnbztxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975.cf.png",
+ "og:site_name": "Yahoo",
+ "og:title": "Veteran Wraps Baby in American Flag, Photo Sparks Controversy",
+ "og:type": "article",
+ "og:url": "https:\/\/gma.yahoo.com\/veteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html",
+ "twitter:card": "summary_large_image",
+ "twitter:description": "A photographer and Navy veteran is fighting back after a photo she posted to Facebook started an online backlash. Vanessa Hicks said she had no idea her photo would be considered controversial. The photo, from a military family\u2019s newborn photo shoot, showed a newborn infant wrapped in an American flag held by his father, who was in his military uniform. Hicks, a Navy veteran herself and the wife of an active-duty Navy member, said her intention was to honor the flag as well as her clients, who wanted to incorporate their military service in the photo shoot.",
+ "twitter:dnt": "on",
+ "twitter:image": "https:\/\/s.yimg.com\/bt\/api\/res\/1.2\/qZaM9MLUOrxLg4IfXt_Niw--\/YXBwaWQ9eW5ld3NfbGVnbztxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975.cf.png",
+ "twitter:image:src": "https:\/\/s.yimg.com\/bt\/api\/res\/1.2\/qZaM9MLUOrxLg4IfXt_Niw--\/YXBwaWQ9eW5ld3NfbGVnbztxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.abcnewsplus.com\/559ecdbafdb839129816b5c79a996975.cf.png",
+ "twitter:site": "@GMA",
+ "twitter:title": "Veteran Wraps Baby in American Flag, Photo Sparks Controversy",
+ "follow_url": "plus.google.com",
+ "follow_site": "gplus",
+ "follow_id": "+GMA",
+ "follow_title": "on Google+",
+ "lang": "en_US",
+ "trackingIcon": "data-ylk= t1:a4;t2:sh-fwm;t3:btm;sec:sh-fwm;elm:icn;cpos:1;_p:4;itc:0;tar:plus.google.com;test:;act:click;rspns:nav;slk:btn-sh-gp;elmt:sh-gp;",
+ "tracking": "data-ylk= t1:a4;t2:sh-fwm;t3:btm;sec:sh-fwm;elm:itm;cpos:1;_p:4;itc:0;tar:plus.google.com;test:;act:click;rspns:nav;slk:btn-sh-gp;elmt:sh-gp;",
+ "outcome": "sh",
+ "rel": "publisher",
+ "gicon": "&amp;#xe07e;",
+ "is_tumblr": ""
+ },
+ "mod_id": "mediacontentfollowproperty_2",
+ "mixer": {
+ "site": "gma",
+ "region": "US",
+ "lang": "en-US",
+ "scrumb": "",
+ "content_id": "4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c",
+ "title_orig": "Veteran Wraps Baby in American Flag, Photo Sparks Controversy - Yahoo",
+ "url_orig": "https:\/\/gma.yahoo.com\/veteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html"
+ }
+ });
+ });
+ Y.later(10, this, function() {
+ if (Y.Media.Footer) var footer = Y.Media.Footer(Y, {
+ footerInfoSelector: "#mediafooterinfo",
+ currentDeviceType: "full",
+ projectId: "10001736184279",
+ enableYwaTracking: "1"
+ });
+ });
+ Y.later(10, this, function() {
+ Y.Media.shareButtonsBuilder = new Y.Media.ShareButtonsBuilder({
+ "modId": "",
+ "container": "#",
+ "btns": ["tumblr", "facebook", "twitter", "whatsapp", "gplus", "linkedin", "mail"],
+ "overlayBlob": "",
+ "device": "full",
+ "template": "&lt;div class=\"share-btns-int-container\"&gt;\n &lt;div class=\"share-btns\" role=\"menu\"&gt;\n &lt;ul&gt;&lt;li class=\"share-btn tumblr\"&gt;&lt;a href=\"https:\/\/www.tumblr.com\/share\/photo?clickthru=https%3A%2F%2Fgma.yahoo.com%2Fveteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html%3Fsoc_src%3D%26soc_trk%3Dtu&amp;amp;caption=A%20photographer%20and%20Navy%20veteran%20is%20fighting%20back%20after%20a%20photo%20she%20posted%20to%20Facebook%20started%20an%20online%20backlash.%20%20Vanessa%20Hicks%20said%20she%20had%20no%20idea%20her%20photo%20would%20be%20considered%20controversial.%20%20The%20photo%2C%20from%20a%20military%20family%E2%80%99s%20newborn%20photo%20shoot%2C%20showed%20a%20newborn%20infant%20wrapped%20in%20an%20American%20flag%20held%20by%20his%20father%2C%20who%20was%20in%20his%20military%20uniform.%20%20Hicks%2C%20a%20Navy%20veteran%20herself%20and%20the%20wife%20of%20an%20active-duty%20Navy%20member%2C%20said%20her%20intention%20was%20to%20honor%20the%20flag%20as%20well%20as%20her%20clients%2C%20who%20wanted%20to%20incorporate%20their%20military%20service%20in%20the%20photo%20shoot.&amp;amp;source=https%3A%2F%2Fs1.yimg.com%2Fbt%2Fapi%2Fres%2F1.2%2FrJa2c1tWMiTS.uIWeBsS8w--%2FYXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9NjAwO3E9NzU7dz02MDA-%2Fhttp%3A%2F%2Fmedia.zenfs.com%2Fen-US%2Fvideo%2Fvideo.abcnewsplus.com%2F559ecdbafdb839129816b5c79a996975.cf.png\" role=\"link\" title=\"Share on Tumblr\" data-share-key=\"tumblr\" target=\"_blank\"&gt;&lt;span class=\"Icon btn-icon btn-tumblr small\"&gt;&amp;#xe071;&lt;\/span&gt;&lt;\/a&gt;&lt;\/li&gt;&lt;li class=\"share-btn facebook\"&gt;&lt;a href=\"https:\/\/www.facebook.com\/dialog\/feed?app_id=90376669494&amp;amp;redirect_uri=https%3A%2F%2Fgma.yahoo.com%2F_xhr%2Fmediacontentsharebuttons%2Fpostshare%2F%3Fsrc%3Dfb&amp;amp;link=https%3A%2F%2Fgma.yahoo.com%2Fveteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html%3Fsoc_src%3D%26soc_trk%3Dfb&amp;amp;picture=https%3A%2F%2Fs1.yimg.com%2Fbt%2Fapi%2Fres%2F1.2%2FrJa2c1tWMiTS.uIWeBsS8w--%2FYXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9NjAwO3E9NzU7dz02MDA-%2Fhttp%3A%2F%2Fmedia.zenfs.com%2Fen-US%2Fvideo%2Fvideo.abcnewsplus.com%2F559ecdbafdb839129816b5c79a996975.cf.png&amp;amp;name=Veteran+Wraps+Baby+in+American+Flag%2C+Photo+Sparks+Controversy&amp;amp;description=A+photographer+and+Navy+veteran+is+fighting+back+after+a+photo+she+posted+to+Facebook+started+an+online+backlash.++Vanessa+Hicks+said+she+had+no+idea+her+photo+would+be+considered+controversial.++The+photo%2C+from+a+military+family%E2%80%99s+newborn+photo+shoot%2C+showed+a+newborn+infant+wrapped+in+an+American+flag+held+by+his+father%2C+who+was+in+his+military+uniform.++Hicks%2C+a+Navy+veteran+herself+and+the+wife+of+an+active-duty+Navy+member%2C+said+her+intention+was+to+honor+the+flag+as+well+as+her+clients%2C+who+wanted+to+incorporate+their+military+service+in+the+photo+shoot.&amp;amp;display=popup&amp;amp;show_error=yes\" role=\"link\" title=\"Share on Facebook\" data-share-key=\"facebook\" target=\"_blank\"&gt;&lt;span class=\"Icon btn-icon btn-facebook small\"&gt;&amp;#xe000;&lt;\/span&gt;&lt;\/a&gt;&lt;\/li&gt;&lt;li class=\"share-btn twitter\"&gt;&lt;a href=\"https:\/\/twitter.com\/share?text=Veteran+Wraps+Baby+in+American+Flag%2C+Photo+Sparks+Controversy&amp;amp;url=https%3A%2F%2Fgma.yahoo.com%2Fveteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html%3Fsoc_src%3D%26soc_trk%3Dtw&amp;amp;via=GMA\" role=\"link\" title=\"Share on Twitter\" data-share-key=\"twitter\" target=\"_blank\"&gt;&lt;span class=\"Icon btn-icon btn-twitter small\"&gt;&amp;#xe001;&lt;\/span&gt;&lt;\/a&gt;&lt;\/li&gt;&lt;li class=\"share-btn gplus\"&gt;&lt;a href=\"https:\/\/plus.google.com\/share?url=https%3A%2F%2Fgma.yahoo.com%2Fveteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html%3Fsoc_src%3D%26soc_trk%3Dgp&amp;amp;hl=en-US\" role=\"link\" title=\"Share on Google+\" data-share-key=\"gplus\" target=\"_blank\"&gt;&lt;span class=\"Icon btn-icon btn-gplus small\"&gt;&amp;#xe07e;&lt;\/span&gt;&lt;\/a&gt;&lt;\/li&gt;&lt;li class=\"share-btn more\"&gt;&lt;a href=\"#\" role=\"menu\" title=\"\" data-share-key=\"more\" &gt;&lt;span class=\"Icon btn-icon btn-more\"&gt;&amp;#x22ef;&lt;\/span&gt;&lt;\/a&gt;&lt;\/li&gt;&lt;\/ul&gt;\n &lt;div class=\"moreBox hidden\"&gt;\n &lt;div class=\"moreBoxPointer\"&gt;&lt;\/div&gt;\n &lt;div class=\"moreBoxPointerSmall\"&gt;&lt;\/div&gt;\n &lt;div class=\"moreBoxInner\"&gt;\n &lt;ul&gt;&lt;li class=\"share-btn linkedin\"&gt;&lt;a href=\"https:\/\/www.linkedin.com\/shareArticle?mini=true&amp;amp;url=https%3A%2F%2Fgma.yahoo.com%2Fveteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html%3Fsoc_src%3D%26soc_trk%3Dli&amp;amp;title=Veteran+Wraps+Baby+in+American+Flag%2C+Photo+Sparks+Controversy&amp;amp;summary=A+photographer+and+Navy+veteran+is+fighting+back+after+a+photo+she+posted+to+Facebook+started+an+online+backlash.++Vanessa+Hicks+said+she+had+no+idea+her+photo+would+be+considered+controversial.++The+photo%2C+from+a+military+family%E2%80%99s+newborn+photo+shoot%2C+showed+&amp;amp;source=GMA\" role=\"link\" title=\"Share on Linkedin\" data-share-key=\"linkedin\" target=\"_blank\"&gt;&lt;span class=\"Icon btn-icon btn-linkedin small\"&gt;&amp;#xe601;&lt;\/span&gt;&lt;\/a&gt;&lt;\/li&gt;&lt;li class=\"share-btn mail\"&gt;&lt;a href=\"https:\/\/gma.yahoo.com\/_xhr\/mtf_popup\/?url=https%3A%2F%2Fgma.yahoo.com%2Fveteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html%3Fsoc_src%3D%26soc_trk%3Dma&amp;amp;site=gma&amp;amp;region=US&amp;amp;lang=en-US&amp;amp;content_id=4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c&amp;amp;alias_id=story%3Dveteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories\" class=\"rapid-noclick-resp\" role=\"link\" title=\"Email to friends\" data-share-key=\"mail\" target=\"_blank\"&gt;&lt;span class=\"Icon btn-icon btn-mail small\"&gt;&amp;#xe07d;&lt;\/span&gt;&lt;\/a&gt;&lt;\/li&gt;&lt;\/ul&gt;\n &lt;\/div&gt;\n &lt;\/div&gt;\n &lt;\/div&gt;\n&lt;\/div&gt;\n",
+ "defaultButtons": "tumblr,facebook,twitter,whatsapp,mail",
+ "shortenLink": false
+ });
+ if (!Y.Media.shareButtonsInt) {
+ Y.Media.shareButtonsInt = new Y.Media.ContentShareButtonsInt({
+ "modId": "social-events",
+ "isForBeacon": "1"
+ });
+ }
+ });
+ Y.later(10, this, function() {
+ Y.Media.Dwell.Time.init({
+ "spaceid": "1197056126",
+ "uuid": "4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c",
+ "pt": "4"
+ });
+ });
+ Y.later(10, this, function() {
+ (function(Y) {
+ var videoEmbedPlayer = new Y.Media.VideoEmbedHandler(Y, Y.Media.pageChrome, {
+ modId: 'mediacontentstory',
+ contentId: '4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c',
+ site: 'gma',
+ lang: 'en-US',
+ region: 'US',
+ spaceid: '1197056126',
+ autoPlay: '0',
+ ybang: false
+ });
+ })(Y);
+ });
+ });
+ });
+ </script>
+
+
+
+ <script>
+ (function(r) {
+ if (!r) {
+ return;
+ }
+
+ if (typeof YMEDIA_REQ_ATTR === 'object' & amp; & amp; typeof YMEDIA_REQ_ATTR.instr === 'object') {
+ r.rapidConfig.keys = r.rapidConfig.keys || {};
+ r.rapidConfig.keys.authfb = YMEDIA_REQ_ATTR.instr.authfb;
+ r.rapidConfig.keys.rid = YMEDIA_REQ_ATTR.instr.request_id;
+ }
+
+ if (typeof r.initRapid === 'function') {
+ r.initRapid();
+ } else if (YAHOO & amp; & amp; YAHOO.i13n & amp; & amp; YAHOO.i13n.Rapid) {
+ // media-rapid-tracking not ready, init Rapid adhoc
+ r.rapidConfig.tracked_mods = typeof r.rapidConfig.tracked_mods === 'object' & amp; & amp;
+ r.rapidConfig.tracked_mods.concat(r.moduleQueue) || r.moduleQueue;
+ r.moduleQueue = [];
+ r.rapidInstance = new YAHOO.i13n.Rapid(r.rapidConfig);
+ YAHOO.i13n.currentSID = typeof r.rapidInstance.getCurrentSID === 'function' ? r.rapidInstance.getCurrentSID() : null;
+ }
+
+ }(YMedia.rapid));
+ </script>
+
+ <div id="yom-ad-SDARLA" class="yom-ad yom-ad-SDARLA" style="visibility: inherit;">
+ <center>
+ <div id="yom-ad-SDARLA-iframe" class="yom-ad">
+ <center>
+ <script type="text/javascript" src="https://s.yimg.com/rq/darla/2-9-9/js/g-r-min.js"></script>
+ <script type="text/x-safeframe-processed" id="processed_fc_2_1481706756748_81" _ver="2-9-9">{ "positions": [ { "html": "&lt;!-- SpaceID=1197056126 loc=ESPON noad --&gt;&lt;!-- fac-gd2-noad --&gt;&lt;!-- gd2-status-2 --&gt;&lt;!--QYZ CMS_NONE_AVAIL,,;;ESPON;1197056126;2--&gt;", "id": "ESPON", "meta": { "y": { "cscHTML": "&lt;scr"+"ipt language=javascr"+"ipt&gt;\nif(window.xzq_d==null)window.xzq_d=new Object();\nwindow.xzq_d['aKuDDwrwE3g-']='(as$125h74tbe,aid$aKuDDwrwE3g-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=ESPON)';\n&lt;/scr"+"ipt&gt;&lt;noscr"+"ipt&gt;&lt;img width=1 height=1 alt=\"\" src=\"https://beap-bc.yahoo.com/yi?bv=1.0.0&amp;bs=(136tejvh0(gid$Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo,st$1481706596425881,si$4464051,sp$1197056126,pv$0,v$2.0))&amp;t=J_3-D_3&amp;al=(as$125h74tbe,aid$aKuDDwrwE3g-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=ESPON)\"&gt;&lt;/noscr"+"ipt&gt;", "cscURI": "https://beap-bc.yahoo.com/yi?bv=1.0.0&amp;bs=(136tejvh0(gid$Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo,st$1481706596425881,si$4464051,sp$1197056126,pv$0,v$2.0))&amp;t=J_3-D_3&amp;al=(as$125h74tbe,aid$aKuDDwrwE3g-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=ESPON)", "impID": "", "supp_ugc": "0", "placementID": "-1", "creativeID": "-1", "serveTime": "1.4817065964259E+15", "behavior": "non_exp", "adID": "#2", "matchID": "#2", "err": "invalid_space", "facStatus": {}, "hasExternal": 0, "size": "", "bookID": "-1", "serveType": "-1", "slotID": "0", "fdb": "{ \"fdb_url\": \"http:\\/\\/beap-bc.yahoo.com\\/af?bv=1.0.0&amp;bs=(15ir45r6b(gid$jmTVQDk4LjHHbFsHU5jMkgKkMTAuNwAAAACljpkK,st$1402537233026922,srv$1,si$13303551,adv$25941429036,ct$25,li$3239250051,exp$1402544433026922,cr$4154984551,pbid$25372728133,v$1.0))&amp;al=(type${type},cmnt${cmnt},subo${subo})&amp;r=10\", \"fdb_on\": \"1\", \"fdb_exp\": \"1402544433026\", \"fdb_intl\": \"en-us\" , \"d\" : \"1\" }", "slotData": {"pt":"0","bamt":"10000000000.000000","namt":"0.000000","isLiveAdPreview":"false","is_ad_feedback":"false","trusted_custom":"false","isCompAds":"false","pvid":"Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo"}, "adc": "{\"label\":\"AdChoices\",\"url\":\"https:\\/\\/info.yahoo.com\\/privacy\\/us\\/yahoo\\/relevantads.html\",\"close\":\"Close\",\"closeAd\":\"Close Ad\",\"showAd\":\"Show ad\",\"collapse\":\"Collapse\",\"fdb\":\"I don't like this ad\",\"code\":\"en-us\"}", "is3rd": "0", "userProvidedData": {} } } },{ "html": "&lt;!-- APT Vendor: Right Media, Format: Standard Graphical --&gt;\n&lt;!-- BEGIN STANDARD TAG - 1 x 1 - APT Run-of Yahoo US O&amp;O Redirects - DO NOT MODIFY --&gt;\n&lt;SCR"+"IPT TYPE=\"text/javascr"+"ipt\" SRC=\"https://na.ads.yahoo.com/yax/banner?ve=1&amp;tt=1&amp;si=125022551&amp;asz=1x1&amp;u=http://gma.yahoo.com/veteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html&amp;gdAdId=fgyEDwrwE3g-&amp;gdUuid=Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo&amp;gdSt=1481706596425881&amp;publisher_blob=lmsid:a0ad0000008A5ApAAK;revsp:us.abcnews.gma.com;lpstaid:4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c|Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo|1197056126|FSRVY|1481706596.643748|2-9-9:ysd:1&amp;pub_redirect=https://beap-bc.yahoo.com/yc/YnY9MS4wLjAmYnM9KDE3anFlazAxNShnaWQkU2I3SHFERXdOaTdGSDd2YVdGRU1Zd0ZUTVRFNExsaFJER1RfbmV1byxzdCQxNDgxNzA2NTk2NDI1ODgxLHNpJDQ0NjQwNTEsc3AkMTE5NzA1NjEyNixjdCQyNSx5YngkSTV5TUFLZFRLQkpWRjh0UndyanJtdyxsbmckZW4tdXMsY3IkNDUyODE3NzA1MSx2JDIuMCxhaWQkZmd5RUR3cndFM2ctLGJpJDIzMTU5MzIwNTEsbW1lJDk3NTI1MTU4ODY0ODQ0NDE4NTAsciQwLHlvbyQxLGFncCQzNTM3MDA2NTUxLGFwJEZTUlZZKSk/1/*&amp;K=1\"&gt;&lt;/SCR"+"IPT&gt;\n&lt;!-- END TAG --&gt;&lt;scr"+"ipt&gt;var url = \"https://sb.voicefive.com/c2/18904046/rs.js#c1=3&amp;c3=apt-636749551&amp;c4=4528177051&amp;c5=3537006551_gma.yahoo.com|-1&amp;c6=&amp;c10=1&amp;c11=&amp;c13=&amp;c16=yho|cbt&amp;rn=1481706596425881\"; if(url &amp;&amp; url.search(\"http\") != -1){document.write('&lt;scr"+"ipt src=\"' + url + '\"&gt;&lt;\\/scr"+"ipt&gt;');}&lt;/scr"+"ipt&gt;&lt;!--QYZ 2315932051,4528177051,;;FSRVY;1197056126;1--&gt;", "id": "FSRVY-0", "meta": { "y": { "cscHTML": "&lt;scr"+"ipt language=javascr"+"ipt&gt;\nif(window.xzq_d==null)window.xzq_d=new Object();\nwindow.xzq_d['fgyEDwrwE3g-']='(as$13auafkpa,aid$fgyEDwrwE3g-,bi$2315932051,agp$3537006551,cr$4528177051,ct$25,at$H,eob$gd1_match_id=-1:ypos=FSRVY)';\n&lt;/scr"+"ipt&gt;&lt;noscr"+"ipt&gt;&lt;img width=1 height=1 alt=\"\" src=\"https://beap-bc.yahoo.com/yi?bv=1.0.0&amp;bs=(136tejvh0(gid$Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo,st$1481706596425881,si$4464051,sp$1197056126,pv$0,v$2.0))&amp;t=J_3-D_3&amp;al=(as$13auafkpa,aid$fgyEDwrwE3g-,bi$2315932051,agp$3537006551,cr$4528177051,ct$25,at$H,eob$gd1_match_id=-1:ypos=FSRVY)\"&gt;&lt;/noscr"+"ipt&gt;", "cscURI": "https://beap-bc.yahoo.com/yi?bv=1.0.0&amp;bs=(136tejvh0(gid$Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo,st$1481706596425881,si$4464051,sp$1197056126,pv$0,v$2.0))&amp;t=J_3-D_3&amp;al=(as$13auafkpa,aid$fgyEDwrwE3g-,bi$2315932051,agp$3537006551,cr$4528177051,ct$25,at$H,eob$gd1_match_id=-1:ypos=FSRVY)", "impID": "fgyEDwrwE3g-", "supp_ugc": "0", "placementID": "3537006551", "creativeID": "4528177051", "serveTime": "1481706596425881", "behavior": "non_exp", "adID": "9752515886484441850", "matchID": "999999.999999.999999.999999", "err": "", "facStatus": {}, "hasExternal": 0, "size": "1x1", "bookID": "2315932051", "serveType": "-1", "slotID": "1", "fdb": "{ \"fdb_url\": \"https:\\\/\\\/beap-bc.yahoo.com\\\/af\\\/sg3?bv=1.0.0&amp;bs=(160p31s53(gid$Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo,st$1481706596425881,srv$1,si$4464051,ct$25,exp$1481713796425881,adv$26513753608,li$3536867051,cr$4528177051,v$1.0,pbid$20459933223,seid$125022551))&amp;al=(type${type},cmnt${cmnt},subo${subo})&amp;r=10\", \"fdb_on\": \"1\", \"fdb_exp\": \"1481713796425\", \"fdb_intl\": \"en-US\" }", "slotData": {"pt":"8","bamt":"10000000000.000000","namt":"0.000000","isLiveAdPreview":"false","is_ad_feedback":"false","trusted_custom":"false","isCompAds":"false","adjf":"1.000000","alpha":"-1.000000","ffrac":"1.000000","pcpm":"-1.000000","fc":"false","sdate":"1474408390","edate":"1561953540","bimpr":82733924352.000000,"pimpr":0.000000,"spltp":0.000000,"frp":"false","pvid":"Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo"}, "adc": "{\"label\":\"AdChoices\",\"url\":\"https:\\/\\/info.yahoo.com\\/privacy\\/us\\/yahoo\\/relevantads.html\",\"close\":\"Close\",\"closeAd\":\"Close Ad\",\"showAd\":\"Show ad\",\"collapse\":\"Collapse\",\"fdb\":\"I don't like this ad\",\"code\":\"en-us\"}", "is3rd": "1", "userProvidedData": {} } } },{ "html": "&lt;style type=\"text/css\"&gt;\n.CAN_ad .yadslug {\n position: absolute !important; right: 1px; top:1px; display:inline-block\n!important; z-index : 999;\n color:#999 !important;text-decoration:none;background:#fff\nurl('https://secure.footprint.net/yieldmanager/apex/mediastore/adchoice_1.png') no-repeat 100% 0\n!important;cursor:hand !important;height:12px !important;padding:0px 14px 0px\n1px !important;display:inline-block !important;\n}\n.CAN_ad .yadslug span {display:none !important;}\n.CAN_ad .yadslug:hover {zoom: 1;}\n.CAN_ad .yadslug:hover span {display:inline-block !important;color:#999\n!important;}\n.CAN_ad .yadslug:hover span, .CAN_ad .yadslug:hover {font:11px arial\n!important;}\n&lt;/style&gt; \n&lt;div class=\"CAN_ad\" style=\"display:inline-block;position: relative;\"&gt;\n&lt;a class=\"yadslug\"\nhref=\"http://info.yahoo.com/relevantads/\"\ntarget=\"_blank\"&gt;&lt;span&gt;AdChoices&lt;/span&gt;&lt;/a&gt;&lt;!-- APT Vendor: FreeWheel Media --&gt;\n&lt;!--https://beap-bc.yahoo.com/yc/YnY9MS4wLjAmYnM9KDE3aWpicmdvcShnaWQkU2I3SHFERXdOaTdGSDd2YVdGRU1Zd0ZUTVRFNExsaFJER1RfbmV1byxzdCQxNDgxNzA2NTk2NDI1ODgxLHNpJDQ0NjQwNTEsc3AkMTE5NzA1NjEyNixjdCQyNSx5YngkSTV5TUFLZFRLQkpWRjh0UndyanJtdyxsbmckZW4tdXMsY3IkNDQ5NDczNTA1MSx2JDIuMCxhaWQkbEcyRUR3cndFM2ctLGJpJDIyODEwODYwNTEsbW1lJDk2MTY4NDY0NTk1MzgzMjY1NjAsciQwLHlvbyQxLGFncCQzNDg0ODY5MDUxLGFwJExEUkIpKQ/2/*//--&gt;&lt;scr"+"ipt type=\"text/javascr"+"ipt\" src=\"https://2912a.v.fwmrm.net/ad/g/1?flag=-ptil&amp;nw=168234&amp;csid=1197056126&amp;pvrn=1481706596.643921&amp;resp=ad&amp;prof=168234:ABC_Live_HTTPS_Display;;ptgt=s&amp;envp=&amp;slid=leaderboard&amp;slau=Leaderboard%20728x90&amp;w=728&amp;h=90&amp;cd=728,90\"&gt;&lt;/scr"+"ipt&gt;&lt;noscr"+"ipt&gt;&lt;iframe src=\"https://2912a.v.fwmrm.net/ad/g/1?flag=-ptil&amp;nw=168234&amp;csid=1197056126&amp;pvrn=1481706596.643921&amp;resp=ad&amp;prof=168234:ABC_Live_HTTPS_Display_iframe;;ptgt=s&amp;envp=&amp;slid=leaderboard&amp;slau=Leaderboard%20728x90&amp;w=728&amp;h=90&amp;cd=728,90\" width=\"728\" height=\"90\" border=\"0\" /&gt;&lt;/noscr"+"ipt&gt;&lt;scr"+"ipt&gt;var url = \"https://sb.voicefive.com/c2/18904046/rs.js#c1=3&amp;c3=apt-630480051&amp;c4=4494735051&amp;c5=3484869051_gma.yahoo.com|-1&amp;c6=&amp;c10=1&amp;c11=&amp;c13=&amp;c16=yho|cbt&amp;rn=1481706596425881\"; if(url &amp;&amp; url.search(\"http\") != -1){document.write('&lt;scr"+"ipt src=\"' + url + '\"&gt;&lt;\\/scr"+"ipt&gt;');}&lt;/scr"+"ipt&gt;&lt;!--QYZ 2281086051,4494735051,;;LDRB;1197056126;1--&gt;&lt;/div&gt;", "id": "LDRB", "meta": { "y": { "cscHTML": "&lt;scr"+"ipt language=javascr"+"ipt&gt;\nif(window.xzq_d==null)window.xzq_d=new Object();\nwindow.xzq_d['lG2EDwrwE3g-']='(as$13agre5uf,aid$lG2EDwrwE3g-,bi$2281086051,agp$3484869051,cr$4494735051,ct$25,at$H,eob$gd1_match_id=-1:ypos=LDRB)';\n&lt;/scr"+"ipt&gt;&lt;noscr"+"ipt&gt;&lt;img width=1 height=1 alt=\"\" src=\"https://beap-bc.yahoo.com/yi?bv=1.0.0&amp;bs=(136tejvh0(gid$Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo,st$1481706596425881,si$4464051,sp$1197056126,pv$0,v$2.0))&amp;t=J_3-D_3&amp;al=(as$13agre5uf,aid$lG2EDwrwE3g-,bi$2281086051,agp$3484869051,cr$4494735051,ct$25,at$H,eob$gd1_match_id=-1:ypos=LDRB)\"&gt;&lt;/noscr"+"ipt&gt;", "cscURI": "https://beap-bc.yahoo.com/yi?bv=1.0.0&amp;bs=(136tejvh0(gid$Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo,st$1481706596425881,si$4464051,sp$1197056126,pv$0,v$2.0))&amp;t=J_3-D_3&amp;al=(as$13agre5uf,aid$lG2EDwrwE3g-,bi$2281086051,agp$3484869051,cr$4494735051,ct$25,at$H,eob$gd1_match_id=-1:ypos=LDRB)", "impID": "lG2EDwrwE3g-", "supp_ugc": "0", "placementID": "3484869051", "creativeID": "4494735051", "serveTime": "1481706596425881", "behavior": "non_exp", "adID": "9616846459538326560", "matchID": "999999.999999.999999.999999", "err": "", "facStatus": {}, "hasExternal": 0, "size": "728x90", "bookID": "2281086051", "serveType": "-1", "slotID": "2", "fdb": "{ \"fdb_url\": \"https:\\\/\\\/beap-bc.yahoo.com\\\/af\\\/sg3?bv=1.0.0&amp;bs=(16jcu4mho(gid$Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo,st$1481706596425881,srv$1,si$4464051,ct$25,exp$1481713796425881,adv$26429045973,li$3483659051,cr$4494735051,dmn$www.zyrtec.com,v$1.0,pbid$20459933223,seid$125022551))&amp;al=(type${type},cmnt${cmnt},subo${subo})&amp;r=10\", \"fdb_on\": \"1\", \"fdb_exp\": \"1481713796425\", \"fdb_intl\": \"en-US\" }", "slotData": {"pt":"1","bamt":"10000000000.000000","namt":"0.000000","isLiveAdPreview":"false","is_ad_feedback":"false","trusted_custom":"false","isCompAds":"false","adjf":"1.000000","alpha":"-1.000000","ffrac":"1.000000","pcpm":"-1.000000","fc":"false","ecpm":0.000000,"sdate":"1450211400","edate":"1483246799","bimpr":0.000000,"pimpr":-274020896.000000,"spltp":0.000000,"frp":"false","pvid":"Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo"}, "adc": "{\"label\":\"AdChoices\",\"url\":\"https:\\/\\/info.yahoo.com\\/privacy\\/us\\/yahoo\\/relevantads.html\",\"close\":\"Close\",\"closeAd\":\"Close Ad\",\"showAd\":\"Show ad\",\"collapse\":\"Collapse\",\"fdb\":\"I don't like this ad\",\"code\":\"en-us\"}", "is3rd": "0", "userProvidedData": {} } } },{ "html": "&lt;!-- SpaceID=1197056126 loc=LN2 noad --&gt;&lt;!-- fac-gd2-noad --&gt;&lt;!-- gd2-status-2 --&gt;&lt;!--QYZ CMS_NONE_AVAIL,,;;LN2;1197056126;2--&gt;", "id": "LN2", "meta": { "y": { "cscHTML": "&lt;scr"+"ipt language=javascr"+"ipt&gt;\nif(window.xzq_d==null)window.xzq_d=new Object();\nwindow.xzq_d['qs6EDwrwE3g-']='(as$125l1k17r,aid$qs6EDwrwE3g-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=LN2)';\n&lt;/scr"+"ipt&gt;&lt;noscr"+"ipt&gt;&lt;img width=1 height=1 alt=\"\" src=\"https://beap-bc.yahoo.com/yi?bv=1.0.0&amp;bs=(136tejvh0(gid$Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo,st$1481706596425881,si$4464051,sp$1197056126,pv$0,v$2.0))&amp;t=J_3-D_3&amp;al=(as$125l1k17r,aid$qs6EDwrwE3g-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=LN2)\"&gt;&lt;/noscr"+"ipt&gt;", "cscURI": "https://beap-bc.yahoo.com/yi?bv=1.0.0&amp;bs=(136tejvh0(gid$Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo,st$1481706596425881,si$4464051,sp$1197056126,pv$0,v$2.0))&amp;t=J_3-D_3&amp;al=(as$125l1k17r,aid$qs6EDwrwE3g-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=LN2)", "impID": "", "supp_ugc": "0", "placementID": "-1", "creativeID": "-1", "serveTime": "1481706596425881", "behavior": "non_exp", "adID": "#2", "matchID": "#2", "err": "invalid_space", "facStatus": {}, "hasExternal": 0, "size": "", "bookID": "-1", "serveType": "-1", "slotID": "3", "fdb": "{ \"fdb_url\": \"http:\\/\\/beap-bc.yahoo.com\\/af?bv=1.0.0&amp;bs=(15ir45r6b(gid$jmTVQDk4LjHHbFsHU5jMkgKkMTAuNwAAAACljpkK,st$1402537233026922,srv$1,si$13303551,adv$25941429036,ct$25,li$3239250051,exp$1402544433026922,cr$4154984551,pbid$25372728133,v$1.0))&amp;al=(type${type},cmnt${cmnt},subo${subo})&amp;r=10\", \"fdb_on\": \"1\", \"fdb_exp\": \"1402544433026\", \"fdb_intl\": \"en-us\" , \"d\" : \"1\" }", "slotData": {"pt":"0","bamt":"10000000000.000000","namt":"0.000000","isLiveAdPreview":"false","is_ad_feedback":"false","trusted_custom":"false","isCompAds":"false","pvid":"Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo"}, "adc": "{\"label\":\"AdChoices\",\"url\":\"https:\\/\\/info.yahoo.com\\/privacy\\/us\\/yahoo\\/relevantads.html\",\"close\":\"Close\",\"closeAd\":\"Close Ad\",\"showAd\":\"Show ad\",\"collapse\":\"Collapse\",\"fdb\":\"I don't like this ad\",\"code\":\"en-us\"}", "is3rd": "0", "userProvidedData": {} } } },{ "html": "&lt;style type=\"text/css\"&gt;\n.CAN_ad .yadslug {\n position: absolute !important; right: 1px; top:1px; display:inline-block\n!important; z-index : 999;\n color:#999 !important;text-decoration:none;background:#fff\nurl('https://secure.footprint.net/yieldmanager/apex/mediastore/adchoice_1.png') no-repeat 100% 0\n!important;cursor:hand !important;height:12px !important;padding:0px 14px 0px\n1px !important;display:inline-block !important;\n}\n.CAN_ad .yadslug span {display:none !important;}\n.CAN_ad .yadslug:hover {zoom: 1;}\n.CAN_ad .yadslug:hover span {display:inline-block !important;color:#999\n!important;}\n.CAN_ad .yadslug:hover span, .CAN_ad .yadslug:hover {font:11px arial\n!important;}\n&lt;/style&gt; \n&lt;div class=\"CAN_ad\" style=\"display:inline-block;position: relative;\"&gt;\n&lt;a class=\"yadslug\"\nhref=\"http://info.yahoo.com/relevantads/\"\ntarget=\"_blank\"&gt;&lt;span&gt;AdChoices&lt;/span&gt;&lt;/a&gt;&lt;!-- APT Vendor: FreeWheel Media --&gt;\n&lt;!--https://beap-bc.yahoo.com/yc/YnY9MS4wLjAmYnM9KDE3aTJmdnYzYShnaWQkU2I3SHFERXdOaTdGSDd2YVdGRU1Zd0ZUTVRFNExsaFJER1RfbmV1byxzdCQxNDgxNzA2NTk2NDI1ODgxLHNpJDQ0NjQwNTEsc3AkMTE5NzA1NjEyNixjdCQyNSx5YngkSTV5TUFLZFRLQkpWRjh0UndyanJtdyxsbmckZW4tdXMsY3IkNDQ5MTgxMjA1MSx2JDIuMCxhaWQkd0MuRkR3cndFM2ctLGJpJDIyODEwNzgwNTEsbW1lJDk2MTY4NjE0OTE5MjM4MjcxMDUsciQwLHlvbyQxLGFncCQzNDg0ODY4NTUxLGFwJExSRUMpKQ/2/*//--&gt;&lt;scr"+"ipt type=\"text/javascr"+"ipt\" src=\"https://2912a.v.fwmrm.net/ad/g/1?flag=-ptil&amp;nw=168234&amp;csid=1197056126&amp;pvrn=1481706596.644086&amp;resp=ad&amp;prof=168234:ABC_Live_HTTPS_Display;;ptgt=s&amp;envp=g_js&amp;slid=rectangle&amp;slau=Rectangle%20300x250|Rectangle%20300x600&amp;w=300&amp;h=250\" width=\"300\" height=\"250\"&gt;&lt;/scr"+"ipt&gt;\n&lt;noscr"+"ipt&gt;&lt;iframe src=\"https://2912a.v.fwmrm.net/ad/g/1?nw=168234&amp;csid=1197056126&amp;pvrn=1481706596.644086&amp;resp=ad&amp;prof=168234:ABC_Live_HTTPS_Display_iframe;;ptgt=s&amp;envp=g_iframe&amp;slid=rectangle&amp;slau=Rectangle%20300x250|Rectangle%20300x600&amp;w=300&amp;h=250\" width=\"300\" height=\"250\" /&gt;&lt;/noscr"+"ipt&gt;&lt;scr"+"ipt&gt;var url = \"https://sb.voicefive.com/c2/18904046/rs.js#c1=3&amp;c3=apt-630480051&amp;c4=4491812051&amp;c5=3484868551_gma.yahoo.com|-1&amp;c6=&amp;c10=1&amp;c11=&amp;c13=&amp;c16=yho|cbt&amp;rn=1481706596425881\"; if(url &amp;&amp; url.search(\"http\") != -1){document.write('&lt;scr"+"ipt src=\"' + url + '\"&gt;&lt;\\/scr"+"ipt&gt;');}&lt;/scr"+"ipt&gt;&lt;!--QYZ 2281078051,4491812051,;;LREC;1197056126;1--&gt;&lt;/div&gt;", "id": "LREC", "meta": { "y": { "cscHTML": "&lt;scr"+"ipt language=javascr"+"ipt&gt;\nif(window.xzq_d==null)window.xzq_d=new Object();\nwindow.xzq_d['wC.FDwrwE3g-']='(as$13a7n01mq,aid$wC.FDwrwE3g-,bi$2281078051,agp$3484868551,cr$4491812051,ct$25,at$H,eob$gd1_match_id=-1:ypos=LREC)';\n&lt;/scr"+"ipt&gt;&lt;noscr"+"ipt&gt;&lt;img width=1 height=1 alt=\"\" src=\"https://beap-bc.yahoo.com/yi?bv=1.0.0&amp;bs=(136tejvh0(gid$Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo,st$1481706596425881,si$4464051,sp$1197056126,pv$0,v$2.0))&amp;t=J_3-D_3&amp;al=(as$13a7n01mq,aid$wC.FDwrwE3g-,bi$2281078051,agp$3484868551,cr$4491812051,ct$25,at$H,eob$gd1_match_id=-1:ypos=LREC)\"&gt;&lt;/noscr"+"ipt&gt;", "cscURI": "https://beap-bc.yahoo.com/yi?bv=1.0.0&amp;bs=(136tejvh0(gid$Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo,st$1481706596425881,si$4464051,sp$1197056126,pv$0,v$2.0))&amp;t=J_3-D_3&amp;al=(as$13a7n01mq,aid$wC.FDwrwE3g-,bi$2281078051,agp$3484868551,cr$4491812051,ct$25,at$H,eob$gd1_match_id=-1:ypos=LREC)", "impID": "wC.FDwrwE3g-", "supp_ugc": "0", "placementID": "3484868551", "creativeID": "4491812051", "serveTime": "1481706596425881", "behavior": "non_exp", "adID": "9616861491923827105", "matchID": "999999.999999.999999.999999", "err": "", "facStatus": {}, "hasExternal": 0, "size": "300x250", "bookID": "2281078051", "serveType": "-1", "slotID": "4", "fdb": "{ \"fdb_url\": \"https:\\\/\\\/beap-bc.yahoo.com\\\/af\\\/sg3?bv=1.0.0&amp;bs=(160t3g6os(gid$Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo,st$1481706596425881,srv$1,si$4464051,ct$25,exp$1481713796425881,adv$26429045973,li$3483658551,cr$4491812051,v$1.0,pbid$20459933223,seid$125022551))&amp;al=(type${type},cmnt${cmnt},subo${subo})&amp;r=10\", \"fdb_on\": \"1\", \"fdb_exp\": \"1481713796425\", \"fdb_intl\": \"en-US\" }", "slotData": {"pt":"1","bamt":"10000000000.000000","namt":"0.000000","isLiveAdPreview":"false","is_ad_feedback":"false","trusted_custom":"false","isCompAds":"false","adjf":"1.000000","alpha":"-1.000000","ffrac":"1.000000","pcpm":"-1.000000","fc":"false","ecpm":0.000000,"sdate":"1450211435","edate":"1483246799","bimpr":0.000000,"pimpr":-473546912.000000,"spltp":0.000000,"frp":"false","pvid":"Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo"}, "adc": "{\"label\":\"AdChoices\",\"url\":\"https:\\/\\/info.yahoo.com\\/privacy\\/us\\/yahoo\\/relevantads.html\",\"close\":\"Close\",\"closeAd\":\"Close Ad\",\"showAd\":\"Show ad\",\"collapse\":\"Collapse\",\"fdb\":\"I don't like this ad\",\"code\":\"en-us\"}", "is3rd": "0", "userProvidedData": {} } } },{ "html": "&lt;style type=\"text/css\"&gt;\n.CAN_ad .yadslug {\n position: absolute !important; right: 1px; top:1px; display:inline-block\n!important; z-index : 999;\n color:#999 !important;text-decoration:none;background:#fff\nurl('https://secure.footprint.net/yieldmanager/apex/mediastore/adchoice_1.png') no-repeat 100% 0\n!important;cursor:hand !important;height:12px !important;padding:0px 14px 0px\n1px !important;display:inline-block !important;\n}\n.CAN_ad .yadslug span {display:none !important;}\n.CAN_ad .yadslug:hover {zoom: 1;}\n.CAN_ad .yadslug:hover span {display:inline-block !important;color:#999\n!important;}\n.CAN_ad .yadslug:hover span, .CAN_ad .yadslug:hover {font:11px arial\n!important;}\n&lt;/style&gt; \n&lt;div class=\"CAN_ad\" style=\"display:inline-block;position: relative;\"&gt;\n&lt;a class=\"yadslug\"\nhref=\"http://info.yahoo.com/relevantads/\"\ntarget=\"_blank\"&gt;&lt;span&gt;AdChoices&lt;/span&gt;&lt;/a&gt;&lt;!-- APT Vendor: FreeWheel Media --&gt;\n&lt;!--https://beap-bc.yahoo.com/yc/YnY9MS4wLjAmYnM9KDE3amdwaWdpNShnaWQkU2I3SHFERXdOaTdGSDd2YVdGRU1Zd0ZUTVRFNExsaFJER1RfbmV1byxzdCQxNDgxNzA2NTk2NDI1ODgxLHNpJDQ0NjQwNTEsc3AkMTE5NzA1NjEyNixjdCQyNSx5YngkSTV5TUFLZFRLQkpWRjh0UndyanJtdyxsbmckZW4tdXMsY3IkNDQ2NTI2MTA1MSx2JDIuMCxhaWQkMXBDRkR3cndFM2ctLGJpJDIyODEwODcwNTEsbW1lJDk2MTY4NTUwNDk0NzI4MDc2MjAsciQwLHlvbyQxLGFncCQzNDg0OTk4NTUxLGFwJExSRUMyKSk/1/*//--&gt;&lt;scr"+"ipt type=\"text/javascr"+"ipt\" src=\"https://2912a.v.fwmrm.net/ad/g/1?flag=-ptil&amp;nw=168234&amp;csid=1197056126&amp;pvrn=1481706596.644210&amp;resp=ad&amp;prof=168234:ABC_Live_HTTPS_Display;;ptgt=s&amp;envp=&amp;slid=rectangle2&amp;slau=Rectangle2%20300x250|Rectangle2%20300x600&amp;w=300&amp;h=250&amp;cd=300,250|300,600\"&gt;&lt;/scr"+"ipt&gt;&lt;noscr"+"ipt&gt;&lt;iframe src=\"https://2912a.v.fwmrm.net/ad/g/1?flag=-ptil&amp;nw=168234&amp;csid=1197056126&amp;pvrn=1481706596.644210&amp;resp=ad&amp;prof=168234:ABC_Live_HTTPS_Display_iframe;;ptgt=s&amp;envp=&amp;slid=rectangle2&amp;slau=Rectangle2%20300x250|Rectangle2%20300x600&amp;w=300&amp;h=250&amp;cd=300,250|300,600\" width=\"300\" height=\"250\" border=\"0\" /&gt;&lt;/noscr"+"ipt&gt;&lt;scr"+"ipt&gt;var url = \"https://sb.voicefive.com/c2/18904046/rs.js#c1=3&amp;c3=apt-630480051&amp;c4=4465261051&amp;c5=3484998551_gma.yahoo.com|-1&amp;c6=&amp;c10=1&amp;c11=&amp;c13=&amp;c16=yho|cbt&amp;rn=1481706596425881\"; if(url &amp;&amp; url.search(\"http\") != -1){document.write('&lt;scr"+"ipt src=\"' + url + '\"&gt;&lt;\\/scr"+"ipt&gt;');}&lt;/scr"+"ipt&gt;&lt;!--QYZ 2281087051,4465261051,;;LREC2;1197056126;1--&gt;&lt;/div&gt;", "id": "LREC2", "meta": { "y": { "cscHTML": "&lt;scr"+"ipt language=javascr"+"ipt&gt;\nif(window.xzq_d==null)window.xzq_d=new Object();\nwindow.xzq_d['1pCFDwrwE3g-']='(as$13a5k7mbc,aid$1pCFDwrwE3g-,bi$2281087051,agp$3484998551,cr$4465261051,ct$25,at$H,eob$gd1_match_id=-1:ypos=LREC2)';\n&lt;/scr"+"ipt&gt;&lt;noscr"+"ipt&gt;&lt;img width=1 height=1 alt=\"\" src=\"https://beap-bc.yahoo.com/yi?bv=1.0.0&amp;bs=(136tejvh0(gid$Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo,st$1481706596425881,si$4464051,sp$1197056126,pv$0,v$2.0))&amp;t=J_3-D_3&amp;al=(as$13a5k7mbc,aid$1pCFDwrwE3g-,bi$2281087051,agp$3484998551,cr$4465261051,ct$25,at$H,eob$gd1_match_id=-1:ypos=LREC2)\"&gt;&lt;/noscr"+"ipt&gt;", "cscURI": "https://beap-bc.yahoo.com/yi?bv=1.0.0&amp;bs=(136tejvh0(gid$Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo,st$1481706596425881,si$4464051,sp$1197056126,pv$0,v$2.0))&amp;t=J_3-D_3&amp;al=(as$13a5k7mbc,aid$1pCFDwrwE3g-,bi$2281087051,agp$3484998551,cr$4465261051,ct$25,at$H,eob$gd1_match_id=-1:ypos=LREC2)", "impID": "1pCFDwrwE3g-", "supp_ugc": "0", "placementID": "3484998551", "creativeID": "4465261051", "serveTime": "1481706596425881", "behavior": "expIfr_exp", "adID": "9616855049472807620", "matchID": "999999.999999.999999.999999", "err": "", "facStatus": {}, "hasExternal": 0, "size": "300x250", "bookID": "2281087051", "serveType": "-1", "slotID": "5", "fdb": "{ \"fdb_url\": \"https:\\\/\\\/beap-bc.yahoo.com\\\/af\\\/sg3?bv=1.0.0&amp;bs=(1602h96k2(gid$Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo,st$1481706596425881,srv$1,si$4464051,ct$25,exp$1481713796425881,adv$26429045973,li$3483788551,cr$4465261051,v$1.0,pbid$20459933223,seid$125022551))&amp;al=(type${type},cmnt${cmnt},subo${subo})&amp;r=10\", \"fdb_on\": \"1\", \"fdb_exp\": \"1481713796425\", \"fdb_intl\": \"en-US\" }", "slotData": {"pt":"1","bamt":"10000000000.000000","namt":"0.000000","isLiveAdPreview":"false","is_ad_feedback":"false","trusted_custom":"false","isCompAds":"false","adjf":"1.000000","alpha":"-1.000000","ffrac":"1.000000","pcpm":"-1.000000","fc":"false","ecpm":0.000000,"sdate":"1450211421","edate":"1483246799","bimpr":0.000000,"pimpr":-476877856.000000,"spltp":0.000000,"frp":"false","pvid":"Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo"}, "adc": "{\"label\":\"AdChoices\",\"url\":\"https:\\/\\/info.yahoo.com\\/privacy\\/us\\/yahoo\\/relevantads.html\",\"close\":\"Close\",\"closeAd\":\"Close Ad\",\"showAd\":\"Show ad\",\"collapse\":\"Collapse\",\"fdb\":\"I don't like this ad\",\"code\":\"en-us\"}", "is3rd": "0", "userProvidedData": {} } } },{ "html": "&lt;!-- SpaceID=1197056126 loc=MAST noad --&gt;&lt;!-- fac-gd2-noad --&gt;&lt;!-- gd2-status-2 --&gt;&lt;!--QYZ CMS_NONE_AVAIL,,;;MAST;1197056126;2--&gt;", "id": "MAST", "meta": { "y": { "cscHTML": "&lt;scr"+"ipt language=javascr"+"ipt&gt;\nif(window.xzq_d==null)window.xzq_d=new Object();\nwindow.xzq_d['7PGFDwrwE3g-']='(as$12540n1bt,aid$7PGFDwrwE3g-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=MAST)';\n&lt;/scr"+"ipt&gt;&lt;noscr"+"ipt&gt;&lt;img width=1 height=1 alt=\"\" src=\"https://beap-bc.yahoo.com/yi?bv=1.0.0&amp;bs=(136tejvh0(gid$Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo,st$1481706596425881,si$4464051,sp$1197056126,pv$0,v$2.0))&amp;t=J_3-D_3&amp;al=(as$12540n1bt,aid$7PGFDwrwE3g-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=MAST)\"&gt;&lt;/noscr"+"ipt&gt;", "cscURI": "https://beap-bc.yahoo.com/yi?bv=1.0.0&amp;bs=(136tejvh0(gid$Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo,st$1481706596425881,si$4464051,sp$1197056126,pv$0,v$2.0))&amp;t=J_3-D_3&amp;al=(as$12540n1bt,aid$7PGFDwrwE3g-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=MAST)", "impID": "", "supp_ugc": "0", "placementID": "-1", "creativeID": "-1", "serveTime": "1481706596425881", "behavior": "non_exp", "adID": "#2", "matchID": "#2", "err": "invalid_space", "facStatus": {}, "hasExternal": 0, "size": "", "bookID": "-1", "serveType": "-1", "slotID": "6", "fdb": "{ \"fdb_url\": \"http:\\/\\/beap-bc.yahoo.com\\/af?bv=1.0.0&amp;bs=(15ir45r6b(gid$jmTVQDk4LjHHbFsHU5jMkgKkMTAuNwAAAACljpkK,st$1402537233026922,srv$1,si$13303551,adv$25941429036,ct$25,li$3239250051,exp$1402544433026922,cr$4154984551,pbid$25372728133,v$1.0))&amp;al=(type${type},cmnt${cmnt},subo${subo})&amp;r=10\", \"fdb_on\": \"1\", \"fdb_exp\": \"1402544433026\", \"fdb_intl\": \"en-us\" , \"d\" : \"1\" }", "slotData": {"pt":"0","bamt":"10000000000.000000","namt":"0.000000","isLiveAdPreview":"false","is_ad_feedback":"false","trusted_custom":"false","isCompAds":"false","pvid":"Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo"}, "adc": "{\"label\":\"AdChoices\",\"url\":\"https:\\/\\/info.yahoo.com\\/privacy\\/us\\/yahoo\\/relevantads.html\",\"close\":\"Close\",\"closeAd\":\"Close Ad\",\"showAd\":\"Show ad\",\"collapse\":\"Collapse\",\"fdb\":\"I don't like this ad\",\"code\":\"en-us\"}", "is3rd": "0", "userProvidedData": {} } } } ], "meta": { "y": { "pageEndHTML": "&lt;scr"+"ipt language=javascr"+"ipt&gt;\nif(window.xzq_d==null)window.xzq_d=new Object();\nwindow.xzq_d['AlOGDwrwE3g-']='(as$1259eitb0,aid$AlOGDwrwE3g-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=WPFP)';\n&lt;/scr"+"ipt&gt;&lt;noscr"+"ipt&gt;&lt;img width=1 height=1 alt=\"\" src=\"https://beap-bc.yahoo.com/yi?bv=1.0.0&amp;bs=(136tejvh0(gid$Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo,st$1481706596425881,si$4464051,sp$1197056126,pv$0,v$2.0))&amp;t=J_3-D_3&amp;al=(as$1259eitb0,aid$AlOGDwrwE3g-,cr$-1,ct$25,at$H,eob$gd1_match_id=-1:ypos=WPFP)\"&gt;&lt;/noscr"+"ipt&gt;&lt;scr"+"ipt language=javascr"+"ipt&gt;\n(function(){window.xzq_p=function(R){M=R};window.xzq_svr=function(R){J=R};function F(S){var T=document;if(T.xzq_i==null){T.xzq_i=new Array();T.xzq_i.c=0}var R=T.xzq_i;R[++R.c]=new Image();R[R.c].src=S}window.xzq_sr=function(){var S=window;var Y=S.xzq_d;if(Y==null){return }if(J==null){return }var T=J+M;if(T.length&gt;P){C();return }var X=\"\";var U=0;var W=Math.random();var V=(Y.hasOwnProperty!=null);var R;for(R in Y){if(typeof Y[R]==\"string\"){if(V&amp;&amp;!Y.hasOwnProperty(R)){continue}if(T.length+X.length+Y[R].length&lt;=P){X+=Y[R]}else{if(T.length+Y[R].length&gt;P){}else{U++;N(T,X,U,W);X=Y[R]}}}}if(U){U++}N(T,X,U,W);C()};function N(R,U,S,T){if(U.length&gt;0){R+=\"&amp;al=\"}F(R+U+\"&amp;s=\"+S+\"&amp;r=\"+T)}function C(){window.xzq_d=null;M=null;J=null}function K(R){xzq_sr()}function B(R){xzq_sr()}function L(U,V,W){if(W){var R=W.toString();var T=U;var Y=R.match(new RegExp(\"\\\\\\\\(([^\\\\\\\\)]*)\\\\\\\\)\"));Y=(Y[1].length&gt;0?Y[1]:\"e\");T=T.replace(new RegExp(\"\\\\\\\\([^\\\\\\\\)]*\\\\\\\\)\",\"g\"),\"(\"+Y+\")\");if(R.indexOf(T)&lt;0){var X=R.indexOf(\"{\");if(X&gt;0){R=R.substring(X,R.length)}else{return W}R=R.replace(new RegExp(\"([^a-zA-Z0-9$_])this([^a-zA-Z0-9$_])\",\"g\"),\"$1xzq_this$2\");var Z=T+\";var rv = f( \"+Y+\",this);\";var S=\"{var a0 = '\"+Y+\"';var ofb = '\"+escape(R)+\"' ;var f = new Function( a0, 'xzq_this', unescape(ofb));\"+Z+\"return rv;}\";return new Function(Y,S)}else{return W}}return V}window.xzq_eh=function(){if(E||I){this.onload=L(\"xzq_onload(e)\",K,this.onload,0);if(E&amp;&amp;typeof (this.onbeforeunload)!=O){this.onbeforeunload=L(\"xzq_dobeforeunload(e)\",B,this.onbeforeunload,0)}}};window.xzq_s=function(){setTimeout(\"xzq_sr()\",1)};var J=null;var M=null;var Q=navigator.appName;var H=navigator.appVersion;var G=navigator.userAgent;var A=parseInt(H);var D=Q.indexOf(\"Microsoft\");var E=D!=-1&amp;&amp;A&gt;=4;var I=(Q.indexOf(\"Netscape\")!=-1||Q.indexOf(\"Opera\")!=-1)&amp;&amp;A&gt;=4;var O=\"undefined\";var P=2000})();\n&lt;/scr"+"ipt&gt;&lt;scr"+"ipt language=javascr"+"ipt&gt;\nif(window.xzq_svr)xzq_svr('https://beap-bc.yahoo.com/');\nif(window.xzq_p)xzq_p('yi?bv=1.0.0&amp;bs=(136tejvh0(gid$Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo,st$1481706596425881,si$4464051,sp$1197056126,pv$0,v$2.0))&amp;t=J_3-D_3');\nif(window.xzq_s)xzq_s();\n&lt;/scr"+"ipt&gt;&lt;noscr"+"ipt&gt;&lt;img width=1 height=1 alt=\"\" src=\"https://beap-bc.yahoo.com/yi?bv=1.0.0&amp;bs=(136tejvh0(gid$Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo,st$1481706596425881,si$4464051,sp$1197056126,pv$0,v$2.0))&amp;t=J_3-D_3\"&gt;&lt;/noscr"+"ipt&gt;&lt;scr"+"ipt&gt;(function(c){var d=\"https://\",a=c&amp;&amp;c.JSON,e=\"ypcdb\",g=document,b;function j(n,q,p,o){var m,r;try{m=new Date();m.setTime(m.getTime()+o*1000);g.cookie=[n,\"=\",encodeURIComponent(q),\"; domain=\",p,\"; path=/; max-age=\",o,\"; expires=\",m.toUTCString()].join(\"\")}catch(r){}}function k(m){return function(){i(m)}}function i(n){var m,o;try{m=new Image();m.onerror=m.onload=function(){m.onerror=m.onload=null;m=null};m.src=n}catch(o){}}function f(o){var p=\"\",n,s,r,q;if(o){try{n=o.match(/^https?:\\/\\/([^\\/\\?]*)(yahoo\\.com|yimg\\.com|flickr\\.com|yahoo\\.net|rivals\\.com)(:\\d+)?([\\/\\?]|$)/);if(n&amp;&amp;n[2]){p=n[2]}n=(n&amp;&amp;n[1])||null;s=n?n.length-1:-1;r=n&amp;&amp;s&gt;=0?n[s]:null;if(r&amp;&amp;r!=\".\"&amp;&amp;r!=\"/\"){p=\"\"}}catch(q){p=\"\"}}return p}function l(B,n,q,m,p){var u,s,t,A,r,F,z,E,C,y,o,D,x,v=1000,w=v;try{b=location}catch(z){b=null}try{if(a){C=a.parse(p)}else{y=new Function(\"return \"+p);C=y()}}catch(z){C=null}if(y){y=null}try{s=b.hostname;t=b.protocol;if(t){t+=\"//\"}}catch(z){s=t=\"\"}if(!s){try{A=g.URL||b.href||\"\";r=A.match(/^((http[s]?)\\:[\\/]+)?([^:\\/\\s]+|[\\:\\dabcdef\\.]+)/i);if(r&amp;&amp;r[1]&amp;&amp;r[3]){t=r[1]||\"\";s=r[3]||\"\"}}catch(z){t=s=\"\"}}if(!s||!C||!t||!q){return}A=g.URL||b.href||\"\";E=f(A);if(!E||g.cookie.indexOf(\"ypcdb=\"+n)&gt;-1){return}if(t===d){q=m}u=0;while(F=q[u++]){o=F.lastIndexOf(\"=\");if(o!=-1){D=F.substr(1+o);x=C[D];if(x){setTimeout(k(t+F+x),w);w+=v}}}u=0;while(F=B[u++]){setTimeout(k(t+F),w);w+=v}setTimeout(function(){j(e,n,E,86400)},w)}function h(){l(['ads.yahoo.com/get-user-id?ver=2&amp;s=800000007&amp;type=redirect&amp;ts=1481706596&amp;sig=5c20433f6bf66b7c'],'79e6d8c177586b95ba9618446b71d0f6',['csync.flickr.com/csync?ver=2.1','csync.yahooapis.com/csync?ver=2.1'],['csync.flickr.com/csync?ver=2.1','csync.yahooapis.com/csync?ver=2.1'],'{\"2.1\":\"&amp;id=23351&amp;value=pn7gee9p52333%26o%3d3%26f%3d0v&amp;optout=&amp;timeout=1481706596&amp;sig=11gstq2od\"}')}if(c.addEventListener){c.addEventListener(\"load\",h,false)}else{if(c.attachEvent){c.attachEvent(\"onload\",h)}else{c.onload=h}}})(window);\n&lt;/scr"+"ipt&gt;", "pos_list": [ "ESPON","FSRVY-0","LDRB","LN2","LREC","LREC2","MAST","WPFP" ], "filtered": [ "WPFP" ], "spaceID": "1197056126", "host": "gma.yahoo.com", "lookupTime": "176", "k2_uri": "", "fac_rt": "37611", "serveTime":"1481706596425881", "pvid": "Sb7HqDEwNi7FH7vaWFEMYwFTMTE4LlhRDGT_neuo", "tID": "darla_prefetch_1481706596424_1770017071_1", "npv": "1", "ep": "{\"site-attribute\":\"Keyword_Id=\\\"Flag_of_the_United_States;Photo_shoot\\\" \\\"type\\\"=\\\"story\\\" ctopid=\\\"1878000;1035500;10610989;1996000\\\" ctype=\\\"fn_news;article\\\" lang=\\\"en-US\\\" rs=\\\"lmsid:a0ad0000008A5ApAAK;revsp:us.abcnews.gma.com;lpstaid:4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c\\\" wiki_topics=\\\"Flag_of_the_United_States;Photo_shoot\\\" can_suppress_ugc=\\\"1\\\" FSRVY-0=\\\"1x1\\\" LREC2=\\\"300x250,1x1\\\" LREC=\\\"300x250,1x1\\\" ESPON=\\\"120x30\\\"\",\"ult\":{\"ln\":{\"slk\":\"ads\"}},\"nopageview\":true,\"ref\":\"http:\\/\\/gma.yahoo.com\\/veteran-wraps-baby-american-flag-photo-sparks-controversy-175203890--abc-news-topstories.html\",\"secure\":true,\"filter\":\"no_expandable;exp_iframe_expandable;\",\"darlaID\":\"darla_instance_1481706596424_1300733976_0\"}", "pe": "CWZ1bmN0aW9uIGRwZWQoKSB7IAoJaWYod2luZG93Lnh6cV9kPT1udWxsKXdpbmRvdy54enFfZD1uZXcgT2JqZWN0KCk7CndpbmRvdy54enFfZFsnYUt1RER3cndFM2ctJ109JyhhcyQxMjVoNzR0YmUsYWlkJGFLdUREd3J3RTNnLSxjciQtMSxjdCQyNSxhdCRILGVvYiRnZDFfbWF0Y2hfaWQ9LTE6eXBvcz1FU1BPTiknOwoJaWYod2luZG93Lnh6cV9kPT1udWxsKXdpbmRvdy54enFfZD1uZXcgT2JqZWN0KCk7CndpbmRvdy54enFfZFsnZmd5RUR3cndFM2ctJ109JyhhcyQxM2F1YWZrcGEsYWlkJGZneUVEd3J3RTNnLSxiaSQyMzE1OTMyMDUxLGFncCQzNTM3MDA2NTUxLGNyJDQ1MjgxNzcwNTEsY3QkMjUsYXQkSCxlb2IkZ2QxX21hdGNoX2lkPS0xOnlwb3M9RlNSVlkpJzsKCWlmKHdpbmRvdy54enFfZD09bnVsbCl3aW5kb3cueHpxX2Q9bmV3IE9iamVjdCgpOwp3aW5kb3cueHpxX2RbJ2xHMkVEd3J3RTNnLSddPScoYXMkMTNhZ3JlNXVmLGFpZCRsRzJFRHdyd0UzZy0sYmkkMjI4MTA4NjA1MSxhZ3AkMzQ4NDg2OTA1MSxjciQ0NDk0NzM1MDUxLGN0JDI1LGF0JEgsZW9iJGdkMV9tYXRjaF9pZD0tMTp5cG9zPUxEUkIpJzsKCWlmKHdpbmRvdy54enFfZD09bnVsbCl3aW5kb3cueHpxX2Q9bmV3IE9iamVjdCgpOwp3aW5kb3cueHpxX2RbJ3FzNkVEd3J3RTNnLSddPScoYXMkMTI1bDFrMTdyLGFpZCRxczZFRHdyd0UzZy0sY3IkLTEsY3QkMjUsYXQkSCxlb2IkZ2QxX21hdGNoX2lkPS0xOnlwb3M9TE4yKSc7CglpZih3aW5kb3cueHpxX2Q9PW51bGwpd2luZG93Lnh6cV9kPW5ldyBPYmplY3QoKTsKd2luZG93Lnh6cV9kWyd3Qy5GRHdyd0UzZy0nXT0nKGFzJDEzYTduMDFtcSxhaWQkd0MuRkR3cndFM2ctLGJpJDIyODEwNzgwNTEsYWdwJDM0ODQ4Njg1NTEsY3IkNDQ5MTgxMjA1MSxjdCQyNSxhdCRILGVvYiRnZDFfbWF0Y2hfaWQ9LTE6eXBvcz1MUkVDKSc7CglpZih3aW5kb3cueHpxX2Q9PW51bGwpd2luZG93Lnh6cV9kPW5ldyBPYmplY3QoKTsKd2luZG93Lnh6cV9kWycxcENGRHdyd0UzZy0nXT0nKGFzJDEzYTVrN21iYyxhaWQkMXBDRkR3cndFM2ctLGJpJDIyODEwODcwNTEsYWdwJDM0ODQ5OTg1NTEsY3IkNDQ2NTI2MTA1MSxjdCQyNSxhdCRILGVvYiRnZDFfbWF0Y2hfaWQ9LTE6eXBvcz1MUkVDMiknOwoJaWYod2luZG93Lnh6cV9kPT1udWxsKXdpbmRvdy54enFfZD1uZXcgT2JqZWN0KCk7CndpbmRvdy54enFfZFsnN1BHRkR3cndFM2ctJ109JyhhcyQxMjU0MG4xYnQsYWlkJDdQR0ZEd3J3RTNnLSxjciQtMSxjdCQyNSxhdCRILGVvYiRnZDFfbWF0Y2hfaWQ9LTE6eXBvcz1NQVNUKSc7aWYod2luZG93Lnh6cV9kPT1udWxsKXdpbmRvdy54enFfZD1uZXcgT2JqZWN0KCk7CndpbmRvdy54enFfZFsnQWxPR0R3cndFM2ctJ109JyhhcyQxMjU5ZWl0YjAsYWlkJEFsT0dEd3J3RTNnLSxjciQtMSxjdCQyNSxhdCRILGVvYiRnZDFfbWF0Y2hfaWQ9LTE6eXBvcz1XUEZQKSc7CgkJIH07CmRwZWQudHJhbnNJRCA9ICJkYXJsYV9wcmVmZXRjaF8xNDgxNzA2NTk2NDI0XzE3NzAwMTcwNzFfMSI7CgoJZnVuY3Rpb24gZHBlcigpIHsgCgkKaWYod2luZG93Lnh6cV9zdnIpeHpxX3N2cignaHR0cHM6Ly9iZWFwLWJjLnlhaG9vLmNvbS8nKTsKaWYod2luZG93Lnh6cV9wKXh6cV9wKCd5aT9idj0xLjAuMCZicz0oMTM2dGVqdmgwKGdpZCRTYjdIcURFd05pN0ZIN3ZhV0ZFTVl3RlRNVEU0TGxoUkRHVF9uZXVvLHN0JDE0ODE3MDY1OTY0MjU4ODEsc2kkNDQ2NDA1MSxzcCQxMTk3MDU2MTI2LHB2JDAsdiQyLjApKSZ0PUpfMy1EXzMnKTsKaWYod2luZG93Lnh6cV9zKXh6cV9zKCk7CgoKCShmdW5jdGlvbihjKXt2YXIgZD0iaHR0cHM6Ly8iLGE9YyYmYy5KU09OLGU9InlwY2RiIixnPWRvY3VtZW50LGI7ZnVuY3Rpb24gaihuLHEscCxvKXt2YXIgbSxyO3RyeXttPW5ldyBEYXRlKCk7bS5zZXRUaW1lKG0uZ2V0VGltZSgpK28qMTAwMCk7Zy5jb29raWU9W24sIj0iLGVuY29kZVVSSUNvbXBvbmVudChxKSwiOyBkb21haW49IixwLCI7IHBhdGg9LzsgbWF4LWFnZT0iLG8sIjsgZXhwaXJlcz0iLG0udG9VVENTdHJpbmcoKV0uam9pbigiIil9Y2F0Y2gocil7fX1mdW5jdGlvbiBrKG0pe3JldHVybiBmdW5jdGlvbigpe2kobSl9fWZ1bmN0aW9uIGkobil7dmFyIG0sbzt0cnl7bT1uZXcgSW1hZ2UoKTttLm9uZXJyb3I9bS5vbmxvYWQ9ZnVuY3Rpb24oKXttLm9uZXJyb3I9bS5vbmxvYWQ9bnVsbDttPW51bGx9O20uc3JjPW59Y2F0Y2gobyl7fX1mdW5jdGlvbiBmKG8pe3ZhciBwPSIiLG4scyxyLHE7aWYobyl7dHJ5e249by5tYXRjaCgvXmh0dHBzPzpcL1wvKFteXC9cP10qKSh5YWhvb1wuY29tfHlpbWdcLmNvbXxmbGlja3JcLmNvbXx5YWhvb1wubmV0fHJpdmFsc1wuY29tKSg6XGQrKT8oW1wvXD9dfCQpLyk7aWYobiYmblsyXSl7cD1uWzJdfW49KG4mJm5bMV0pfHxudWxsO3M9bj9uLmxlbmd0aC0xOi0xO3I9biYmcz49MD9uW3NdOm51bGw7aWYociYmciE9Ii4iJiZyIT0iLyIpe3A9IiJ9fWNhdGNoKHEpe3A9IiJ9fXJldHVybiBwfWZ1bmN0aW9uIGwoQixuLHEsbSxwKXt2YXIgdSxzLHQsQSxyLEYseixFLEMseSxvLEQseCx2PTEwMDAsdz12O3RyeXtiPWxvY2F0aW9ufWNhdGNoKHope2I9bnVsbH10cnl7aWYoYSl7Qz1hLnBhcnNlKHApfWVsc2V7eT1uZXcgRnVuY3Rpb24oInJldHVybiAiK3ApO0M9eSgpfX1jYXRjaCh6KXtDPW51bGx9aWYoeSl7eT1udWxsfXRyeXtzPWIuaG9zdG5hbWU7dD1iLnByb3RvY29sO2lmKHQpe3QrPSIvLyJ9fWNhdGNoKHope3M9dD0iIn1pZighcyl7dHJ5e0E9Zy5VUkx8fGIuaHJlZnx8IiI7cj1BLm1hdGNoKC9eKChodHRwW3NdPylcOltcL10rKT8oW146XC9cc10rfFtcOlxkYWJjZGVmXC5dKykvaSk7aWYociYmclsxXSYmclszXSl7dD1yWzFdfHwiIjtzPXJbM118fCIifX1jYXRjaCh6KXt0PXM9IiJ9fWlmKCFzfHwhQ3x8IXR8fCFxKXtyZXR1cm59QT1nLlVSTHx8Yi5ocmVmfHwiIjtFPWYoQSk7aWYoIUV8fGcuY29va2llLmluZGV4T2YoInlwY2RiPSIrbik+LTEpe3JldHVybn1pZih0PT09ZCl7cT1tfXU9MDt3aGlsZShGPXFbdSsrXSl7bz1GLmxhc3RJbmRleE9mKCI9Iik7aWYobyE9LTEpe0Q9Ri5zdWJzdHIoMStvKTt4PUNbRF07aWYoeCl7c2V0VGltZW91dChrKHQrRit4KSx3KTt3Kz12fX19dT0wO3doaWxlKEY9Qlt1KytdKXtzZXRUaW1lb3V0KGsodCtGKSx3KTt3Kz12fXNldFRpbWVvdXQoZnVuY3Rpb24oKXtqKGUsbixFLDg2NDAwKX0sdyl9ZnVuY3Rpb24gaCgpe2woWydhZHMueWFob28uY29tL2dldC11c2VyLWlkP3Zlcj0yJnM9ODAwMDAwMDA3JnR5cGU9cmVkaXJlY3QmdHM9MTQ4MTcwNjU5NiZzaWc9NWMyMDQzM2Y2YmY2NmI3YyddLCc3OWU2ZDhjMTc3NTg2Yjk1YmE5NjE4NDQ2YjcxZDBmNicsWydjc3luYy5mbGlja3IuY29tL2NzeW5jP3Zlcj0yLjEnLCdjc3luYy55YWhvb2FwaXMuY29tL2NzeW5jP3Zlcj0yLjEnXSxbJ2NzeW5jLmZsaWNrci5jb20vY3N5bmM/dmVyPTIuMScsJ2NzeW5jLnlhaG9vYXBpcy5jb20vY3N5bmM/dmVyPTIuMSddLCd7IjIuMSI6IiZpZD0yMzM1MSZ2YWx1ZT1wbjdnZWU5cDUyMzMzJTI2byUzZDMlMjZmJTNkMHYmb3B0b3V0PSZ0aW1lb3V0PTE0ODE3MDY1OTYmc2lnPTExZ3N0cTJvZCJ9Jyl9aWYoYy5hZGRFdmVudExpc3RlbmVyKXtjLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGgsZmFsc2UpfWVsc2V7aWYoYy5hdHRhY2hFdmVudCl7Yy5hdHRhY2hFdmVudCgib25sb2FkIixoKX1lbHNle2Mub25sb2FkPWh9fX0pKHdpbmRvdyk7CgoKCQogfTsKZHBlci50cmFuc0lEID0iZGFybGFfcHJlZmV0Y2hfMTQ4MTcwNjU5NjQyNF8xNzcwMDE3MDcxXzEiOwoK",
+ "pym": "" } } } </script>
+ </center>
+ </div>
+ </center>
+ </div>
+ <div id="yom-ad-SDARLAEXTRA" class="yom-ad yom-ad-SDARLAEXTRA" style="visibility: inherit;">
+ <center>
+ <div id="yom-ad-SDARLAEXTRA-iframe" class="yom-ad">
+ <center>
+ <script type="text/javascript">
+ DARLA_CONFIG = {
+ "useYAC": 0,
+ "usePE": 0,
+ "servicePath": "https:\/\/gma.yahoo.com\/__darla\/php\/fc.php",
+ "xservicePath": "",
+ "beaconPath": "https:\/\/gma.yahoo.com\/__darla\/php\/b.php",
+ "renderPath": "",
+ "allowFiF": false,
+ "srenderPath": "https:\/\/s.yimg.com\/rq\/darla\/2-9-9\/html\/r-sf.html",
+ "renderFile": "https:\/\/s.yimg.com\/rq\/darla\/2-9-9\/html\/r-sf.html",
+ "sfbrenderPath": "https:\/\/s.yimg.com\/rq\/darla\/2-9-9\/html\/r-sf.html",
+ "msgPath": "https:\/\/gma.yahoo.com\/__darla\/2-9-9\/html\/msg.html",
+ "cscPath": "https:\/\/s.yimg.com\/rq\/darla\/2-9-9\/html\/r-csc.html",
+ "root": "__darla",
+ "edgeRoot": "http:\/\/l.yimg.com\/rq\/darla\/2-9-9",
+ "sedgeRoot": "https:\/\/s.yimg.com\/rq\/darla\/2-9-9",
+ "version": "2-9-9",
+ "tpbURI": "",
+ "hostFile": "https:\/\/s.yimg.com\/rq\/darla\/2-9-9\/js\/g-r-min.js",
+ "fdb_locale": "What don't you like about this ad?|It's offensive|Something else|Thank you for helping us improve your Yahoo experience|It's not relevant|It's distracting|I don't like this ad|Send|Done|Why do I see ads?|Learn more about your feedback.",
+ "positions": {
+ "ESPON": [],
+ "FSRVY-0": {
+ "w": 1,
+ "h": 1
+ },
+ "LDRB": {
+ "w": 728,
+ "h": 90
+ },
+ "LN2": [],
+ "LREC": {
+ "w": 300,
+ "h": 250
+ },
+ "LREC2": {
+ "w": 300,
+ "h": 250
+ },
+ "MAST": [],
+ "WPFP": []
+ },
+ "lang": "en-US"
+ };
+ DARLA_CONFIG.servicePath = DARLA_CONFIG.servicePath.replace(/\:8033/g, "");
+ DARLA_CONFIG.msgPath = DARLA_CONFIG.msgPath.replace(/\:8033/g, "");
+ DARLA_CONFIG.k2E2ERate = 2;
+ DARLA_CONFIG.positions = {
+ "ESPON": {
+ "w": "120",
+ "h": "30",
+ "dest": "yom-ad-ESPON-iframe",
+ "fr": "expIfr_exp",
+ "pos": "ESPON",
+ "id": "ESPON",
+ "clean": "yom-ad-ESPON",
+ "rmxp": 0
+ },
+ "LREC": {
+ "w": "300",
+ "h": "250",
+ "dest": "yom-ad-LREC-iframe",
+ "fr": "expIfr_exp",
+ "pos": "LREC",
+ "id": "LREC",
+ "clean": "yom-ad-LREC",
+ "rmxp": 0,
+ "metaSize": true,
+ "supports": {
+ "exp-ovr": 1,
+ "lyr": 1
+ }
+ },
+ "LREC-1": {
+ "w": "300",
+ "h": "250",
+ "dest": "yom-ad-LREC-iframe-lb",
+ "fr": "expIfr_exp",
+ "pos": "LREC",
+ "id": "LREC-1",
+ "clean": "yom-ad-LREC-lb",
+ "rmxp": 0,
+ "metaSize": true,
+ "supports": {
+ "exp-ovr": 1,
+ "lyr": 1
+ }
+ },
+ "LN2": {
+ "w": "120",
+ "h": "55",
+ "dest": "yom-ad-LN2-iframe",
+ "fr": "expIfr_exp",
+ "pos": "LN2",
+ "id": "LN2",
+ "clean": "yom-ad-LN2",
+ "rmxp": 0,
+ "metaSize": true
+ },
+ "MAST": {
+ "w": "970",
+ "h": "250",
+ "dest": "yom-ad-MAST-iframe",
+ "fr": "expIfr_exp",
+ "pos": "MAST",
+ "id": "MAST",
+ "clean": "yom-ad-MAST",
+ "rmxp": 0,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1,
+ "resize-to": 1
+ },
+ "metaSize": true,
+ "closeBtn": {
+ "mode": 2,
+ "useShow": 1,
+ "adc": 0
+ }
+ },
+ "LREC2": {
+ "w": "300",
+ "h": "250",
+ "dest": "yom-ad-LREC2-iframe",
+ "fr": "expIfr_exp",
+ "pos": "LREC2",
+ "id": "LREC2",
+ "clean": "yom-ad-LREC2",
+ "rmxp": 0,
+ "metaSize": true,
+ "supports": {
+ "exp-ovr": 1
+ }
+ },
+ "LREC2-1": {
+ "w": "300",
+ "h": "250",
+ "dest": "yom-ad-LREC2-iframe-lb",
+ "fr": "expIfr_exp",
+ "pos": "LREC2",
+ "id": "LREC2-1",
+ "clean": "yom-ad-LREC2-lb",
+ "rmxp": 0,
+ "metaSize": true,
+ "supports": {
+ "exp-ovr": 1
+ }
+ },
+ "FSRVY-0": {
+ "w": "1",
+ "h": "1",
+ "dest": "yom-ad-FSRVY-0-iframe",
+ "fr": "expIfr_exp",
+ "pos": "FSRVY-0",
+ "id": "FSRVY-0",
+ "clean": "yom-ad-FSRVY-0",
+ "rmxp": 0,
+ "supports": {
+ "exp-ovr": 1,
+ "lyr": 1
+ }
+ },
+ "LDRB": {
+ "w": "728",
+ "h": "90",
+ "dest": "yom-ad-LDRB-iframe",
+ "fr": "expIfr_exp",
+ "pos": "LDRB",
+ "id": "LDRB",
+ "clean": "yom-ad-LDRB",
+ "rmxp": 0,
+ "z": 20,
+ "metaSize": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ }
+ },
+ "LDRB-1": {
+ "w": "728",
+ "h": "90",
+ "dest": "yom-ad-LDRB-iframe-lb",
+ "fr": "expIfr_exp",
+ "pos": "LDRB",
+ "id": "LDRB-1",
+ "clean": "yom-ad-LDRB-lb",
+ "rmxp": 0,
+ "z": 20,
+ "metaSize": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1
+ }
+ },
+ "FOOT": {
+ "w": "1",
+ "h": "1",
+ "dest": "yom-ad-FOOT-iframe",
+ "fr": "expIfr_exp",
+ "pos": "FOOT",
+ "id": "FOOT",
+ "clean": "yom-ad-FOOT",
+ "rmxp": 0
+ },
+ "LN1": {
+ "w": "120",
+ "h": "42",
+ "dest": "yom-ad-LN1-iframe",
+ "fr": "expIfr_exp",
+ "pos": "LN1",
+ "id": "LN1",
+ "clean": "yom-ad-LN1",
+ "rmxp": 0
+ },
+ "FILM": {
+ "w": "300",
+ "h": "600",
+ "dest": "yom-ad-FILM-iframe",
+ "fr": "expIfr_exp",
+ "pos": "FILM",
+ "id": "FILM",
+ "clean": "yom-ad-FILM",
+ "rmxp": 0
+ },
+ "FILM-1": {
+ "w": "300",
+ "h": "600",
+ "dest": "yom-ad-FILM-iframe-lb",
+ "fr": "expIfr_exp",
+ "pos": "FILM",
+ "id": "FILM-1",
+ "clean": "yom-ad-FILM-lb",
+ "rmxp": 0
+ },
+ "TL1": {
+ "w": "120",
+ "h": "250",
+ "dest": "yom-ad-TL1-iframe",
+ "fr": "expIfr_exp",
+ "pos": "TL1",
+ "id": "TL1",
+ "clean": "yom-ad-TL1",
+ "rmxp": 0
+ },
+ "SBTN-1": {
+ "w": "120",
+ "h": "30",
+ "dest": "yom-ad-SBTN-1-iframe",
+ "fr": "expIfr_exp",
+ "pos": "SBTN-1",
+ "id": "SBTN-1",
+ "clean": "yom-ad-SBTN-1",
+ "rmxp": 0
+ },
+ "SBTN-0": {
+ "w": "120",
+ "h": "30",
+ "dest": "yom-ad-SBTN-0-iframe",
+ "fr": "expIfr_exp",
+ "pos": "SBTN-0",
+ "id": "SBTN-0",
+ "clean": "yom-ad-SBTN-0",
+ "rmxp": 0
+ },
+ "WBTN-1": {
+ "w": "120",
+ "h": "60",
+ "dest": "yom-ad-WBTN-1-iframe",
+ "fr": "expIfr_exp",
+ "pos": "WBTN-1",
+ "id": "WBTN-1",
+ "clean": "yom-ad-WBTN-1",
+ "rmxp": 0
+ },
+ "WBTN-0": {
+ "w": "120",
+ "h": "60",
+ "dest": "yom-ad-WBTN-0-iframe",
+ "fr": "expIfr_exp",
+ "pos": "WBTN-0",
+ "id": "WBTN-0",
+ "clean": "yom-ad-WBTN-0",
+ "rmxp": 0
+ },
+ "BTN3": {
+ "w": "120",
+ "h": "60",
+ "dest": "yom-ad-BTN3-iframe",
+ "fr": "expIfr_exp",
+ "pos": "BTN3",
+ "id": "BTN3",
+ "clean": "yom-ad-BTN3",
+ "rmxp": 0
+ },
+ "BTN2": {
+ "w": "120",
+ "h": "60",
+ "dest": "yom-ad-BTN2-iframe",
+ "fr": "expIfr_exp",
+ "pos": "BTN2",
+ "id": "BTN2",
+ "clean": "yom-ad-BTN2",
+ "rmxp": 0
+ },
+ "BTN1": {
+ "w": "120",
+ "h": "60",
+ "dest": "yom-ad-BTN1-iframe",
+ "fr": "expIfr_exp",
+ "pos": "BTN1",
+ "id": "BTN1",
+ "clean": "yom-ad-BTN1",
+ "rmxp": 0
+ },
+ "NE3-3": {
+ "w": "120",
+ "h": "60",
+ "dest": "yom-ad-NE3-3-iframe",
+ "fr": "expIfr_exp",
+ "pos": "NE3-3",
+ "id": "NE3-3",
+ "clean": "yom-ad-NE3-3",
+ "rmxp": 0
+ },
+ "NE3-2": {
+ "w": "120",
+ "h": "60",
+ "dest": "yom-ad-NE3-2-iframe",
+ "fr": "expIfr_exp",
+ "pos": "NE3-2",
+ "id": "NE3-2",
+ "clean": "yom-ad-NE3-2",
+ "rmxp": 0
+ },
+ "NE3-1": {
+ "w": "120",
+ "h": "60",
+ "dest": "yom-ad-NE3-1-iframe",
+ "fr": "expIfr_exp",
+ "pos": "NE3-1",
+ "id": "NE3-1",
+ "clean": "yom-ad-NE3-1",
+ "rmxp": 0
+ },
+ "NE3-0": {
+ "w": "120",
+ "h": "60",
+ "dest": "yom-ad-NE3-0-iframe",
+ "fr": "expIfr_exp",
+ "pos": "NE3-0",
+ "id": "NE3-0",
+ "clean": "yom-ad-NE3-0",
+ "rmxp": 0
+ },
+ "WPS": {
+ "w": "320",
+ "h": "50",
+ "dest": "yom-ad-WPS-iframe",
+ "fr": "expIfr_exp",
+ "pos": "WPS",
+ "id": "WPS",
+ "clean": "yom-ad-WPS",
+ "rmxp": 0,
+ "metaSize": true,
+ "supports": {
+ "exp-ovr": 1,
+ "exp-push": 1,
+ "lyr": 1
+ },
+ "z": 20000
+ },
+ "LDRB2": {
+ "w": "728",
+ "h": "90",
+ "dest": "yom-ad-LDRB2-iframe",
+ "fr": "expIfr_exp",
+ "pos": "LDRB2",
+ "id": "LDRB2",
+ "clean": "yom-ad-LDRB2",
+ "rmxp": 0,
+ "metaSize": true
+ },
+ "LREC3": {
+ "w": "300",
+ "h": "250",
+ "dest": "yom-ad-LREC3-iframe",
+ "fr": "expIfr_exp",
+ "pos": "LREC3",
+ "id": "LREC3",
+ "clean": "yom-ad-LREC3",
+ "rmxp": 0,
+ "metaSize": true,
+ "supports": {
+ "exp-ovr": 1
+ }
+ }
+ };
+ DARLA_CONFIG.positions['DEFAULT'] = {
+ meta: {
+ title: document.title,
+ url: document.URL || location.href,
+ urlref: document.referrer
+ }
+ };
+ DARLA_CONFIG.events = {
+ "darla": {
+ "lvl": "2",
+ "sp": "1197056126",
+ "npv": "1",
+ "bg": "FFFFFF",
+ "sa": "Keyword_Id=\"Flag_of_the_United_States;Photo_shoot\" \"type\"=\"story\" ctopid=\"1878000;1035500;10610989;1996000\" ctype=\"fn_news;article\" lang=\"en-US\" rs=\"lmsid:a0ad0000008A5ApAAK;revsp:us.abcnews.gma.com;lpstaid:4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c\" wiki_topics=\"Flag_of_the_United_States;Photo_shoot\" can_suppress_ugc=\"1\" FSRVY-0=\"1x1\" LREC2=\"300x250,1x1\" LREC=\"300x250,1x1\" ESPON=\"120x30\"",
+ "sa_orig": "Keyword_Id=\"Flag_of_the_United_States;Photo_shoot\" \"type\"=\"story\" ctopid=\"1878000;1035500;10610989;1996000\" ctype=\"fn_news;article\" lang=\"en-US\" rs=\"lmsid:a0ad0000008A5ApAAK;revsp:us.abcnews.gma.com;lpstaid:4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c\" wiki_topics=\"Flag_of_the_United_States;Photo_shoot\" can_suppress_ugc=\"1\" FSRVY-0=\"1x1\" LREC2=\"300x250,1x1\" LREC=\"300x250,1x1\" ESPON=\"120x30\"",
+ "filter": "no_expandable;exp_iframe_expandable;",
+ "mpid": "692",
+ "mpnm": "yahoo_mobile_us_web",
+ "locale": "US",
+ "ps": "LREC,LREC2,LREC3,LDRB,LDRB2,MAST,WPS,NE3-0,NE3-1,NE3-2,NE3-3,BTN1,BTN2,BTN3,WBTN-0,WBTN-1,SBTN-0,SBTN-1,TL1,ESPON,FILM,LN1,LN2,FOOT,FSRVY",
+ "ml": "",
+ "mps": "",
+ "ssl": "1"
+ }
+ };
+ DARLA_CONFIG.viewRate = 100;
+ YMedia.later(10, this, function() {
+ YMedia.use("node-base", function(Y) {
+
+ /* YUI Ads Darla begins... */
+ YUI.AdsDarla = (function() {
+
+ var NAME = 'AdsDarla',
+ LB_EVENT = 'lightbox',
+ AUTO_EVENT = 'AUTO',
+ LREC3_EVENT = 'lrec3Event',
+ MUTEX_ADS = {
+ 'FILM': ['LREC', 'LREC2'],
+ 'FILM-1': ['LREC-1', 'LREC2-1'],
+ 'MAST': ['LDRB', 'LREC']
+ },
+ AD_PERF_COMP = ['LREC', 'LREC2'];
+
+ if (DARLA_CONFIG.positions & amp; & amp; DARLA_CONFIG.positions['TL1']) {
+ var navlink = Y.one('ul.navlist li&gt;a'),
+ linkcolor;
+ if (navlink) {
+ linkcolor = navlink.getStyle('color');
+ DARLA_CONFIG.positions['TL1'].css = ".ad-tl2b {overflow:hidden; text-align:left;} p {margin:0px;} .y-fp-pg-controls {margin-top:5px; margin-bottom:5px;} #tl1_slug { font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; font-size:12px; color:" + linkcolor + ";} #fc_align a {font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; font-size:11px; color:" + linkcolor + ";} a:link {text-decoration:none;} a:hover {color: " + linkcolor + ";}";
+ }
+ }
+ DARLA_CONFIG.autoRotation = 35000;
+ DARLA_CONFIG.events.AUTO = {
+ "name": "AUTO",
+ "sp": "1197056126",
+ "ps": {
+ "FILM": {
+ "autoMax": 25,
+ "autoIV": 1,
+ "autoRT": "35000"
+ },
+ "ESPON": {
+ "autoMax": 25,
+ "autoIV": 1,
+ "autoRT": "35000"
+ },
+ "TL1": {
+ "autoMax": 25,
+ "autoIV": 1,
+ "autoRT": "35000"
+ },
+ "SBTN-1": {
+ "autoMax": 25,
+ "autoIV": 1,
+ "autoRT": "35000"
+ },
+ "SBTN-0": {
+ "autoMax": 25,
+ "autoIV": 1,
+ "autoRT": "35000"
+ },
+ "WBTN-1": {
+ "autoMax": 25,
+ "autoIV": 1,
+ "autoRT": "35000"
+ },
+ "WBTN-0": {
+ "autoMax": 25,
+ "autoIV": 1,
+ "autoRT": "35000"
+ },
+ "BTN3": {
+ "autoMax": 25,
+ "autoIV": 1,
+ "autoRT": "35000"
+ },
+ "BTN2": {
+ "autoMax": 25,
+ "autoIV": 1,
+ "autoRT": "35000"
+ },
+ "BTN1": {
+ "autoMax": 25,
+ "autoIV": 1,
+ "autoRT": "35000"
+ },
+ "NE3-3": {
+ "autoMax": 25,
+ "autoIV": 1,
+ "autoRT": "35000"
+ },
+ "NE3-2": {
+ "autoMax": 25,
+ "autoIV": 1,
+ "autoRT": "35000"
+ },
+ "NE3-1": {
+ "autoMax": 25,
+ "autoIV": 1,
+ "autoRT": "35000"
+ },
+ "NE3-0": {
+ "autoMax": 25,
+ "autoIV": 1,
+ "autoRT": "35000"
+ },
+ "WPS": {
+ "autoMax": 25,
+ "autoIV": 1,
+ "autoRT": "35000"
+ },
+ "LDRB2": {
+ "autoMax": 25,
+ "autoIV": 1,
+ "autoRT": "35000"
+ },
+ "LREC3": {
+ "autoMax": 25,
+ "autoIV": 1,
+ "autoRT": "35000"
+ },
+ "LREC2": {
+ "autoMax": 25,
+ "autoIV": 1,
+ "autoRT": "35000"
+ },
+ "LREC": {
+ "autoMax": 25,
+ "autoIV": 1,
+ "autoRT": "35000"
+ }
+ },
+ "sa": "Keyword_Id=\"Flag_of_the_United_States;Photo_shoot\" \"type\"=\"story\" ctopid=\"1878000;1035500;10610989;1996000\" ctype=\"fn_news;article\" lang=\"en-US\" rs=\"lmsid:a0ad0000008A5ApAAK;revsp:us.abcnews.gma.com;lpstaid:4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c\" wiki_topics=\"Flag_of_the_United_States;Photo_shoot\" can_suppress_ugc=\"1\" FSRVY-0=\"1x1\" LREC2=\"300x250,1x1\" LREC=\"300x250,1x1\" ESPON=\"120x30\"",
+ "sa_orig": "Keyword_Id=\"Flag_of_the_United_States;Photo_shoot\" \"type\"=\"story\" ctopid=\"1878000;1035500;10610989;1996000\" ctype=\"fn_news;article\" lang=\"en-US\" rs=\"lmsid:a0ad0000008A5ApAAK;revsp:us.abcnews.gma.com;lpstaid:4250eebf-bbb0-3c95-8fd0-3cb4d3daf93c\" wiki_topics=\"Flag_of_the_United_States;Photo_shoot\" can_suppress_ugc=\"1\" FSRVY-0=\"1x1\" LREC2=\"300x250,1x1\" LREC=\"300x250,1x1\" ESPON=\"120x30\"",
+ "npv": 1,
+ "lvl": -3,
+ "autoStart": 1,
+ "autoRT": "10000",
+ "ddd": 1,
+ "autoddg": 1,
+ "autoDDG": 1,
+ "ssl": "1"
+ };
+ DARLA_CONFIG.beaconsDisabled = true;
+ var priorityPosBatch = [],
+ deferredPosBatch = [],
+ aboveTheFold = [],
+ perf_pos_set = false;
+
+ DARLA_CONFIG.onSuccess = function(act_evt_name, rendered_pos_ids) {
+ var cnt = (rendered_pos_ids & amp; & amp; rendered_pos_ids.length) || 0,
+ pos_id, pos_list = ['LREC', 'LREC2', 'LREC3'],
+ adContainer, adModule, reactSidekick;
+
+ reactSidekick = Y.one('#td-applet-react-sidekick_container');
+
+ for (var k in pos_list) {
+ pos_id = pos_list[k];
+ adModule = Y.one('.yog-rp #yom-ad-' + pos_id);
+ if (!adModule) {
+ continue;
+ }
+ if ('LREC' === pos_id) {
+ adModule.addClass('yom-app');
+ continue;
+ }
+ adContainer = adModule.one('div');
+ if (!adContainer ||
+ (adContainer.getComputedStyle('width') === '1px' &
+ amp; & amp; adContainer.getComputedStyle('height') === '1px') ||
+ adContainer.getComputedStyle('width') === '0px' ||
+ adContainer.getComputedStyle('height') === '0px') {
+ adModule.setStyle('display', 'none');
+ Y.log(pos_id + ' is hidden because either it has no container, it is 1x1 blank ads or it is not rendered', 'info', 'darla');
+ continue;
+ } else if (reactSidekick & amp; & amp; pos_id === 'LREC3' & amp; & amp; adModule.getStyle('display') === 'none') {
+ adModule.show();
+ }
+
+ if (!reactSidekick) {
+ adModule.addClass('yom-app');
+ }
+ }
+ if (!cnt) {
+ return;
+ }
+ Y.Global.fire('darla:success', {
+ positions: rendered_pos_ids
+ });
+ Y.log('fetch ad success: ' + rendered_pos_ids.join(', '), 'info', 'darla');
+ };
+
+ DARLA_CONFIG.onFailure = function(eventId) {
+ var positions = null;
+ try {
+ positions = DARLA_CONFIG.events[eventId].ps.split(',');
+ } catch (e) {}
+
+ Y.Global.fire('darla:failure', {
+ positions: positions
+ });
+ Y.log('fetch ad failure ' + eventId + (positions ? (': ' + positions.join(', ')) : ''), 'warn', 'darla');
+ };
+
+ DARLA_CONFIG.onFinishParse = function(eventId, result) {
+ if (___adLT___ & amp; & amp; window.performance !== undefined & amp; & amp; window.performance.now !== undefined) {
+ var ltime = window.performance.now();
+ ___adLT___.push(['DARLA_PEND', Math.round(ltime)]);
+ }
+
+ var noads = [],
+ ps = result.ps(),
+ i, l, position, posObj, mutexPos, posName, container, display, mast, set_ad_perf = false,
+ renderedPos = [],
+ re = /([A-Z0-9]+)(-[0-9]+)*/;
+
+
+ if (AD_PERF_COMP.length & gt; 0) {
+ set_ad_perf = true;
+ }
+
+ for (i = 0, l = ps.length; i & lt; l; i++) {
+ position = ps[i];
+ posObj = result.item(position);
+
+
+ if (!posObj || posObj.hasErr) {
+ noads.push(position);
+ // noad should be included in the selective rendering 2nd batch as well
+ deferredPosBatch.push(position);
+ } else {
+ // for selective rendering
+ if (aboveTheFold.indexOf(position) & gt; = 0) {
+ priorityPosBatch.push(position);
+ } else {
+ deferredPosBatch.push(position);
+ }
+
+ // for xAFT
+ if (posObj.size + '' !== '1x1') {
+ renderedPos.push(position);
+ }
+ }
+ }
+
+ if (set_ad_perf & amp; & amp; !perf_pos_set) {
+ Y.log('set ___allAdsPos___', 'info', 'darla');
+ window.___allAdsPos___ = renderedPos;
+ perf_pos_set = true;
+ } else {
+ Y.log('No need to set ___allAdsPos___', 'info', 'darla');
+ }
+
+ /* MAST position is not part of AUTO rotate
+ * so check MAST is already present &amp; visible on the page
+ * If yes, then add it to ps, so that MUTEX Ad containers are as it is.
+ */
+ mast = Y.one('#yom-ad-MAST');
+ if (mast & amp; & amp; parseInt(mast.getStyle('height')) & gt; 1 & amp; & amp; mast.getStyle('display') !== 'none' & amp; & amp; ps.indexOf('MAST') === -1) {
+ ps.push('MAST');
+ }
+
+ // handle mutual exclusion for client side fetched ads only for lightbox
+ if (eventId === LB_EVENT) {
+ for (position in MUTEX_ADS) {
+ if (MUTEX_ADS.hasOwnProperty(position) & amp; & amp; ps.indexOf(position) & gt; = 0 & amp; & amp; noads.indexOf(position) === -1) {
+ for (i = 0, l = MUTEX_ADS[position].length; i & lt; l; i++) {
+ mutexPos = MUTEX_ADS[position][i];
+ if (ps.indexOf(mutexPos) & gt; = 0 & amp; & amp; noads.indexOf(mutexPos) === -1) {
+
+ /** For FILM-1 (on lightbox) , if either LREC or LREC2 is returned with proper Ads (not 1x1 pixel)
+ * then hide FILM-1 &amp; show LRECs.
+ */
+ if (position === 'FILM-1' & amp; & amp; result.item(mutexPos).size + '' !== '1x1') {
+ noads.push(position);
+ } else {
+ noads.push(mutexPos);
+ }
+ }
+ }
+ }
+ }
+
+ // handle LREC 1x1 blank ad from client side
+ if (ps.indexOf('LREC') & gt; = 0 & amp; & amp; noads.indexOf('LREC') === -1) {
+ if (result.item('LREC').size + '' === '1x1') {
+ noads.push('LREC');
+ }
+ }
+
+ for (i = 0, l = ps.length; i & lt; l; i++) {
+ position = ps[i];
+ posName = re.exec(position)[1];
+ container = Y.one('.yom-ad-' + posName);
+ if (container) {
+ display = container.getStyle('display');
+ if (display === 'none' & amp; & amp; noads.indexOf(position) === -1) {
+ container.show();
+ } else if (display !== 'none' & amp; & amp; noads.indexOf(position) & gt; = 0) {
+ container.hide();
+ }
+ }
+ }
+ }
+
+ // reset the hight of the LDRB container
+ if (ps.indexOf('LDRB') & gt; = 0 & amp; & amp; result.item('LDRB')) {
+
+ if (noads.indexOf('LDRB') & lt; = 0) {
+ var clearAdModule = Y.one('#yom-ad-LDRB');
+ if (result.item('LDRB').size + '' !== '1x1') {
+ clearAdModule.setStyle('height', '');
+ Y.log('LDRB height is reset to blank.', 'info', 'darla');
+ } else {
+ clearAdModule.setStyle('height', '5px');
+ Y.log('LDRB height is reset to 5px.', 'info', 'darla');
+ }
+ } else {
+ Y.log('LDRB is noad or size is 1x1', 'info', 'darla');
+ }
+ }
+
+ // reset the hight of the MAST container
+ var clearAdModule = Y.one('#yom-ad-MAST');
+ clearAdModule.setStyle('height', '');
+
+ // LREC3 React Sidekick C1Backfill
+ if (eventId === LREC3_EVENT & amp; & amp; typeof SidekickAdsHandlerInstance !== "undefined" & amp; & amp; noads.indexOf('LREC3') !== -1) {
+ YMedia.Global.fire("sidekick:backfill");
+ }
+
+ };
+ DARLA_CONFIG.onBeforePosMsg = function(msg_name, position) {
+ // Make these configurable for INTLS
+ var maxWidth = 970,
+ maxHeight = 600,
+ newWidth,
+ newHeight,
+ origWidth,
+ origHeight,
+ pos,
+ posName = 'MAST';
+
+ if ('LDRB' === position) {
+ maxWidth = 728;
+ maxHeight = 500;
+ posName = 'LDRB';
+ } else if ('MAST' !== position) {
+ return;
+ }
+
+ if (msg_name === 'resize-to') {
+ newWidth = arguments[2];
+ newHeight = arguments[3];
+ } else if (msg_name === 'exp-push' || msg_name === 'exp-ovr') {
+ pos = $sf.host.get(posName);
+
+ origWidth = pos.conf.w;
+ origHeight = pos.conf.h;
+ //"exp-ovr" or "exp-push", position id, delta X, delta Y, push (true /false), top increase, left increase, right increase, bottom increase
+ newWidth = origWidth + arguments[6] + arguments[7];
+ newHeight = origHeight + arguments[5] + arguments[8];
+ }
+ if (newWidth & gt; maxWidth || newHeight & gt; maxHeight) {
+ return true;
+ }
+ };
+
+ /* setting up DARLA events */
+ var w = window,
+ D = w.DARLA,
+ C = w.DARLA_CONFIG,
+ DM = w.DOC_DOMAIN_SET || 0,
+ ltime = 0;
+ if (D) {
+ if (D & amp; & amp; C) {
+ C.dm = DM;
+ }
+
+
+ /* setting DARLA configuration */
+ DARLA.config(C);
+
+ /* prefetch Ads if applicable */
+ DARLA.prefetched("fc");
+
+ /* rendering prefetched Ad */
+
+ if (___adLT___ !== undefined & amp; & amp; window.performance !== undefined & amp; & amp; window.performance.now !== undefined) {
+ ltime = window.performance.now();
+ ___adLT___.push(['DARLA_RSTART', Math.round(ltime)]);
+ }
+ DARLA.render();
+
+
+ if (___adLT___ !== undefined & amp; & amp; window.performance !== undefined & amp; & amp; window.performance.now !== undefined) {
+ ltime = window.performance.now();
+ ___adLT___.push(['DARLA_REND', Math.round(ltime)]);
+ }
+ }
+
+ return {
+ event: function(eventId, spaceId, adsSa) {
+ if (window.DARLA & amp; & amp; eventId) {
+ var eventConfig = {};
+ if (!isNaN(spaceId)) {
+ eventConfig.sp = spaceId;
+ }
+ /* Site attributes */
+ adsSa = (typeof adsSa !== "undefined" & amp; & amp; adsSa !== null) ? adsSa : "";
+ eventConfig.sa = DARLA_CONFIG.events[eventId].sa_orig.replace ? DARLA_CONFIG.events[eventId].sa_orig.replace("ADSSA", adsSa) : "";
+ DARLA.event(eventId, eventConfig);
+ }
+ },
+ render: function() {
+ if (!!(Y.one('#yom-slideshow-lightbox') || Y.one('#content-lightbox') || false)) {
+ /* skip configuring DARLA in case of lightbox being triggered */
+ } else {
+ // abort current darla action
+ if (DARLA & amp; & amp; DARLA.abort) {
+ DARLA.abort();
+ }
+
+ /* setting DARLA configuration */
+ DARLA.config(DARLA_CONFIG);
+
+ /* prefetch Ads if applicable */
+ DARLA.prefetched("fc");
+
+ /* rendering prefetched Ad */
+ DARLA.render();
+ }
+ }
+ };
+
+ })(); /* End of YUI.AdsDarla */
+
+ YUI.AdsDarla.darla = {
+ fetch: (Y.bind(YUI.AdsDarla.event, YUI.AdsDarla, 'darla'))
+ };
+ YUI.AdsDarla.fetch = YUI.AdsDarla.darla.fetch;
+ Y.Global.fire('darla:ready');
+ }); /* End of YMedia */
+ }); /* End of YMedia.later */
+ var ___adLT___ = [];
+
+ function onDarlaStartParse() {
+ if (window.performance !== undefined & amp; & amp; window.performance.now !== undefined) {
+ var ltime = window.performance.now();
+ ___adLT___.push(['DARLA_PSTART', Math.round(ltime)]);
+ }
+ }
+
+ function onDarlaStartPosRender(position) {
+ if (window.performance !== undefined & amp; & amp; window.performance.now !== undefined) {
+ var ltime = window.performance.now();
+ ___adLT___.push(['ADSTART_' + position.pos, Math.round(ltime)]);
+ }
+ }
+
+ function onDarlaFinishPosRender(position) {
+ if (window.performance !== undefined & amp; & amp; window.performance.now !== undefined) {
+ var ltime = window.performance.now();
+ ___adLT___.push(['ADEND_' + position, Math.round(ltime)]);
+ setTimeout(function() {
+ if (window.LH !== undefined & amp; & amp; window.YAFT !== undefined & amp; & amp; window.YAFT.isInitialized()) {
+ window.YAFT.triggerCustomTiming('yom-ad-' + position, '', ltime);
+ }
+ }, 1000);
+ }
+ }
+
+ if ((DARLA & amp; & amp; DARLA.config) || DARLA_CONFIG) {
+ var oldConf = DARLA.config() || DARLA_CONFIG || null;
+ if (oldConf) {
+ if (oldConf.onStartParse) {
+ (function() {
+ var oldVersion = oldConf.onStartParse;
+ oldConf.onStartParse = function(eventName) {
+ onDarlaStartParse(eventName);
+ return oldVersion.apply(me, arguments);
+ };
+ })();
+ } else {
+ oldConf.onStartParse = onDarlaStartParse;
+ }
+ if (oldConf.onStartPosRender) {
+ (function() {
+ var oldVersion = oldConf.onStartPosRender;
+ oldConf.onStartPosRender = function(position) {
+ onDarlaStartPosRender(position);
+ return oldVersion.apply(me, arguments);
+ };
+ })();
+ } else {
+ oldConf.onStartPosRender = onDarlaStartPosRender;
+ }
+ if (oldConf.onFinishPosRender) {
+ (function() {
+ var oldVersion = oldConf.onFinishPosRender;
+ oldConf.onFinishPosRender = function(position) {
+ onDarlaFinishPosRender(position);
+ return oldVersion.apply(me, arguments);
+ };
+ })();
+ } else {
+ oldConf.onFinishPosRender = onDarlaFinishPosRender;
+ }
+ DARLA.config(oldConf);
+ }
+ }
+ </script>
+ <script type="text/javascript">
+ if ('undefined' !== typeof(YMedia)) {
+ YMedia.use('event-custom', function(Y) {
+ Y.log('ads:dmros listening for fallbacks');
+ Y.Global.on('ads:dmros:fallbacks', function(e) {
+ if (!YUI.namespace('Media').dmros_serverside) {
+ Y.log('ads:dmros inside fallbacks event handler');
+ var fallbacks = YUI.namespace('Media').ads_dmros_fallbacks || {};
+ var noad = ['LN2', 'ESPON'];
+ for (var pos in fallbacks) {
+ if (fallbacks.hasOwnProperty(pos)) {
+ if (-1 === noad.indexOf(pos) || 'function' !== typeof(fallbacks[pos])) {
+ continue;
+ }
+ fallbacks[pos]();
+ }
+ }
+ YUI.namespace('Media').dmros_serverside = true;
+ }
+ });
+ });
+ }
+ </script>
+ </center>
+ </div>
+ </center>
+ </div>
+
+
+
+
+
+ <div id="darla_csc_holder" class="darla" style="display: none;"><iframe style="display: none;" id="darla_csc_writer_0" class="darla" src="https://s.yimg.com/rq/darla/2-9-9/html/r-csc.html" scrolling="no" allowtransparency="true" hidefocus="true" tabindex="-1" marginwidth="0" marginheight="0" frameborder="no"></iframe></div>
+ <script async="" src="https://s.yimg.com/rx/builds/7.86.297.1481334086/assets/streamsense.min.js"></script>
+</body>
+
+</html>
+<!-- fe93.global.media.sg3.yahoo.com uncompressed/chunked Wed Dec 14 09:09:55 UTC 2016 -->
+<!-- ncache5.global.media.sg3.yahoo.com compressed/chunked Wed Dec 14 09:09:55 UTC 2016 -->
+<!-- ad prefetch pagecsc setting -->
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-4/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-4/expected-images.json
new file mode 100644
index 000000000..36a35281a
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-4/expected-images.json
@@ -0,0 +1,3 @@
+[
+ "http:\/\/i.yimg.jp\/images\/jpnews\/cre\/common\/all\/images\/fbico_ogp_600x600.png"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-4/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-4/expected-metadata.json
new file mode 100644
index 000000000..c8459ad79
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-4/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": null,
+ "Direction": null,
+ "Excerpt": "トレンドマイクロは3月9日、Wi-Fi利用時の通信を暗号化し保護するスマホ・タブレット - Yahoo!ニュース(CNET Japan)",
+ "Image": "http:\/\/i.yimg.jp\/images\/jpnews\/cre\/common\/all\/images\/fbico_ogp_600x600.png",
+ "Title": "トレンドマイクロ、公衆無線LANを安全に使うためのアプリ「フリーWi-Fiプロテクション」(CNET Japan) - Yahoo!ニュース",
+ "SiteName": "Yahoo!ニュース"
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-4/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-4/expected.html
new file mode 100644
index 000000000..db7694ab3
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-4/expected.html
@@ -0,0 +1,9 @@
+<div>
+ <div><p>
+ トレンドマイクロは3月9日、Wi-Fi利用時の通信を暗号化し保護するスマホ・タブレット向けのセキュリティアプリ「フリーWi-Fiプロテクション」(iOS/Android)の発売を開始すると発表した。1年版ライセンスは2900円(税込)で、2年版ライセンスは5000円(税込)。</p><p>  フリーWi-Fiプロテクションは、App Storeおよび、Google Playにて販売され、既に提供しているスマホ・タブレット向け総合セキュリティ対策アプリ「ウイルスバスター モバイル」と併用することで、不正アプリや危険なウェブサイトからの保護に加え、通信の盗み見を防ぐことができる。</p><p>  2020年の東京オリンピック・パラリンピックの開催などを見据え、フリーWi-Fi(公衆無線LAN)の設置が促進され、フリーWi-Fiの利用者も増加している。
+ </p><p>  一方で、脆弱な設定のフリーWi-Fiや攻撃者が設置した偽のフリーWi-Fiへの接続などによる情報漏えい、通信の盗み見などのセキュリティリスクが危惧されているという。
+ </p><p>  正規事業者が提供する安全性の高いフリーWi-Fiのほかにも、通信を暗号化していない安全性の低いフリーWi-Fi、さらにはサイバー犯罪者が設置したフリーWi-Fiなどさまざまなものが混在している。また、利用者は、接続する前にひとつひとつ安全性を確認するのは難しい状況だとしている。
+ </p><p>  トレンドマイクロがスマートフォン保持者でフリーWi-Fiの利用経験がある人に実施した調査では、回答者の約85%が安全なフリーWi-Fiと危険なフリーWi-Fiは「見分けられない」と回答。さらに、約65%がフリーWi-Fiの利用に不安を感じていると回答している。
+ </p><p>  こうした環境の変化やユーザの状況を鑑み、フリーWi-Fiプロテクションの提供を開始する。同アプリをインストールすることで利用者は、万が一安全性の低いフリーWi-Fiのアクセスポイントに接続してしまった場合でも、その通信を暗号化でき、通信の盗み見やそれによる情報漏えいのリスクを低減できるようになる。
+ </p><p>  具体的には、フリーWi-Fi利用時に、スマートフォンがフリーWi-Fiプロテクションインフラに接続することにより、フリーWi-Fiのアクセスポイントを介した通信がVPN(Virtual Private Network)で暗号化される。これにより利用者は、第三者から通信を傍受されることやデータの情報漏えいを防ぐことが可能。さらに、かんたん自動接続の機能により、通信を暗号化していない安全性が低いフリーWi-Fi接続時や利用者が指定したWi-Fiへ接続する際に、自動的に通信を暗号化し、利用者の通信を保護する。</p><p>  また、フリーWi-Fiプロテクションインフラと、莫大なセキュリティ情報のビッグデータを保有するクラウド型セキュリティ技術基盤「Trend Micro Smart Protection Network」(SPN)が連携することで、フリーWi-Fiプロテクションインフラを経由してインターネットを利用する際に、利用者がフィッシング詐欺サイトや偽サイトなどへの不正サイトへアクセスすることをブロックできるという。</p></div>
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-4/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-4/source.html
new file mode 100644
index 000000000..8d3510886
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/yahoo-4/source.html
@@ -0,0 +1,1234 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#" xmlns:fb="http://ogp.me/ns/fb#" lang="ja">
+
+<head prefix="article: http://ogp.me/ns/article#">
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta http-equiv="Content-Style-Type" content="text/css" />
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
+ <title>トレンドマイクロ、公衆無線LANを安全に使うためのアプリ「フリーWi-Fiプロテクション」 (CNET Japan) - Yahoo!ニュース</title>
+ <meta name="description" content=" トレンドマイクロは3月9日、Wi-Fi利用時の通信を暗号化し保護するスマホ・タブレッ" />
+ <meta name="keywords" content="ニュース,IT・科学,IT総合" />
+ <meta name="robots" content="noarchive" />
+ <link href="http://i.yimg.jp/images/news/v1/css/yj2.css?v2" rel="stylesheet" type="text/css" media="screen, print" id="yjFsCss" />
+ <link type="text/css" rel="stylesheet" href="http://i.yimg.jp/images/jpnews/cre/common/pc/css/common_pc_v2.css?20150804" media="all" />
+ <link rel="stylesheet" href="http://i.yimg.jp/images/jpnews/cre/article/pc/css/1.0.2/article_pc.css" type="text/css" media="all" />
+ <script id="msthdScript" src="http://ai.yimg.jp/yui/jp/mh/pc/1.6.3/js/std-min.js" data-s="" data-c=""></script>
+ <script type="text/javascript" src="http://i.yimg.jp/images/ds/rapid/1.5.0/ult.inc.js"></script>
+ <meta property="al:ios:app_name" content="Yahoo!ニュース" />
+ <meta property="al:ios:app_store_id" content="407906756" />
+ <meta property="al:ios:url" content="yjtrend://d/hdl/20170309-35097838-cnetj-sci" />
+ <meta property="al:android:app_name" content="Yahoo!ニュース" />
+ <meta property="al:android:package" content="jp.co.yahoo.android.news" />
+ <meta property="al:android:url" content="yjnews://d/hdl/20170309-35097838-cnetj-sci" />
+ <meta property="og:type" content="article" />
+ <meta property="og:title" content="トレンドマイクロ、公衆無線LANを安全に使うためのアプリ「フリーWi-Fiプロテクション」(CNET Japan) - Yahoo!ニュース" />
+ <meta property="og:description" content="トレンドマイクロは3月9日、Wi-Fi利用時の通信を暗号化し保護するスマホ・タブレット - Yahoo!ニュース(CNET Japan)" />
+ <meta property="og:image" content="http://i.yimg.jp/images/jpnews/cre/common/all/images/fbico_ogp_600x600.png" />
+ <meta property="og:image:width" content="600" />
+ <meta property="og:image:height" content="600" />
+ <meta property="og:url" content="http://headlines.yahoo.co.jp/hl?a=20170309-35097838-cnetj-sci" />
+ <meta property="og:site_name" content="Yahoo!ニュース" />
+ <meta property="og:locale" content="ja_JP" />
+ <meta property="fb:app_id" content="276725822409153" />
+ <meta name="twitter:card" content="summary_large_image" />
+ <meta name="twitter:title" content="トレンドマイクロ、公衆無線LANを安全に使うためのアプリ「フリーWi-Fiプロテクション」(CNET Japan) - Yahoo!ニュース" />
+ <meta name="twitter:description" content="トレンドマイクロは3月9日、Wi-Fi利用時の通信を暗号化し保護するスマホ・タブレット - Yahoo!ニュース(CNET Japan)" />
+ <meta name="twitter:image" content="http://i.yimg.jp/images/jpnews/cre/common/all/images/fbico_ogp_600x600.png" />
+ <meta name="twitter:image:width" content="600" />
+ <meta name="twitter:image:height" content="600" />
+ <meta name="twitter:site" content="@YahooNewsTopics" />
+ <meta name="twitter:app:country" content="jp" />
+ <meta name="twitter:app:name:iphone" content="Yahoo!ニュース" />
+ <meta name="twitter:app:id:iphone" content="407906756" />
+ <meta name="twitter:app:url:iphone" content="yjtrend://d/hdl/20170309-35097838-cnetj-sci" />
+ <meta name="twitter:app:name:googleplay" content="Yahoo!ニュース" />
+ <meta name="twitter:app:id:googleplay" content="jp.co.yahoo.android.news" />
+ <meta name="twitter:app:url:googleplay" content="yjnews://d/hdl/20170309-35097838-cnetj-sci" />
+ <script type="text/javascript" src="http://i.yimg.jp/images/jpnews/js/libs/jquery/1.10.2/jquery.min.js"></script>
+ <script type="text/javascript" src="http://i.yimg.jp/images/jpnews/js/libs/json/2.0.0/json.min.js"></script>
+ <script type="text/javascript" src="http://i.yimg.jp/images/ycd/lib/ycdloader/3.0.0/ycdloader.min.js"></script>
+ <script type="text/javascript">
+ YAHOO.JP.Ycd.recommend.loader.configure({
+ useYcdn: true,
+ url: 'http://headlines.yahoo.co.jp/hl?a=20170309-35097838-cnetj-sci',
+ article: '20170309-35097838-cnetj',
+ rapid: {
+ "keys": {
+ "rpdprop": "news",
+ "origin": "cnetj"
+ },
+ "spaceId": 2078709551
+ }
+ });
+ </script>
+
+ <link href="http://ai.yimg.jp/yui/jp/mh/pc/1.4.2/css/std.css" rel="stylesheet" type="text/css" media="all" />
+ <link href="https://s.yimg.jp/images/search/slink/1/css/cmn/content_cmn.css" rel="stylesheet" type="text/css" />
+ <link href="https://s.yimg.jp/images/search/slink/1/css/pc/content_pc.css" rel="stylesheet" type="text/css" />
+ <script async="true" src="http://slink.west.edge.storage-yahoo.jp/highlight/optout_v1.json"></script>
+ <link type="text/css" rel="stylesheet" href="http://i.yimg.jp/images/search/slink/popup/pc/1.0.0/css/yjSearchPop.min.css" />
+ <script type="text/javascript" src="http://im.ov.yahoo.co.jp/tag/?adprodset=99604_135693-153783-167798&amp;p_elem=yads_ad_position_99604_135693&amp;vimps_mode=3&amp;enc=UTF-8&amp;pvId=27533e7c3e3321f1d5d5babd3a6060c1&amp;sid=2078709551&amp;u=http%3a%2f%2fheadlines.yahoo.co.jp%2fhl%3fa%3d20170309-35097838-cnetj-sci&amp;yads_ds=99604_135693"></script>
+</head>
+
+<body class="yj950-2">
+
+ <div id="wrapper">
+ <div id="main_cnt_wrapper">
+ <div id="header">
+ <span class="yj-guid"><a name="pagetop" id="pagetop"></a><img src="http://i.yimg.jp/images/clear.gif" alt="このページの先頭です" width="1" height="1" /></span>
+ <span class="yj-skip"><a href="#contents-start"><img src="http://i.yimg.jp/images/clear.gif" alt="このページの本文へ" width="1" height="1" /></a></span>
+ <script type="text/javascript">
+ miffy_bucket_id = '';
+ </script>
+ <div id="msthd">
+ <div>
+ <div id="msthdtp">
+ <div id="msthdUhd">
+ <div class="compo">
+ <p class="txt"><a href="http://ard.yahoo.co.jp/SIG=15b5pe2bl/M=300956521.301824798.303459529.308131643/D=jp_hdln_te/S=2078709551:MHUHD/Y=jp/EXP=1489060388/L=oI9TLjE4Mi66RLpAorxEdAVuMTE4LgAAAAA2TzUA/B=sDR_ALYWOUA-/J=1489053188005996/SIG=12d3nj36l/A=302157550/R=0/*http://promotion.yahoo.co.jp/news/social_contribution/1608/">「子どもの貧困」に取り組む25歳。母を自殺で失ってからの軌跡</a></p>
+ </div>
+ <script language="javascript">
+ if (window.yzq_d == null) window.yzq_d = new Object();
+ window.yzq_d['sDR_ALYWOUA-'] = '&amp;U=13l8ooocs%2fN%3dsDR_ALYWOUA-%2fC%3d300956521.301824798.303459529.308131643%2fD%3dMHUHD%2fB%3d302157550';
+ </script><noscript>&lt;div style="position:absolute;"&gt;&lt;img width=1 height=1 alt="" src="http://b5.yahoo.co.jp/b?P=oI9TLjE4Mi66RLpAorxEdAVuMTE4LgAAAAA2TzUA&amp;T=16lu7dcl9%2fX%3d1489053188%2fE%3d2078709551%2fR%3djp_hdln_te%2fK%3d5%2fV%3d2.1%2fW%3dH%2fY%3djp%2fF%3d779653832%2fH%3dbWgtbG9naW4tc3JjPSJ5biIgcG9wc2VhcmNoLXNlcnZpY2UtY29kZT0ibndzIiBhZGN2ZXI9Ni44LjE-%2fQ%3d-1%2fS%3d1%2fJ%3d58C12604&amp;U=13l8ooocs%2fN%3dsDR_ALYWOUA-%2fC%3d300956521.301824798.303459529.308131643%2fD%3dMHUHD%2fB%3d302157550"&gt;&lt;/div&gt;</noscript></div>
+ <div id="msthdShpPr">
+ <div class="compo"><a href="#" data-ylk="slk:h_promo;pos:0" id="msthdUhdPrLink" class="rapid-noclick-resp"><span></span></a></div>
+ </div>
+ <div id="msthdsb">
+ <div id="msthdsrch" style="display: block;">
+ <form action="http://ard.yahoo.co.jp/SIG=158shlqof/M=300973493.301843397.303471478.308131609/D=jp_hdln_te/S=2078709551:MH/Y=jp/EXP=1489060388/L=oI9TLjE4Mi66RLpAorxEdAVuMTE4LgAAAAA2TzUA/B=gzR_ALYWOUA-/J=1489053188005996/SIG=11iuefjhl/A=302195946/R=0/*http://search.yahoo.co.jp/search" name="p">
+ <p> <label id="msthdslb" for="msthdsbox" title="キーワード:" class="offLeft">キーワード:</label> <input id="msthdsbox" name="p" value="" placeholder="ウェブ検索" type="text" /> <button id="msthdsbt" type="submit" title="検索">検索</button> <input name="ei" value="UTF-8" id="msthdei" type="hidden" /> <input name="fr" value="ush" type="hidden" /> </p>
+ </form>
+ </div>
+ </div>
+ </div>
+ <div class="logo">
+ <a href="http://rdsig.yahoo.co.jp/mh/click/logo/RV=1/RU=aHR0cDovL25ld3MueWFob28uY28uanAv" data-ylk="slk:h_srvtop;pos:0" id="msthdLogo"><img src="http://ai.yimg.jp/c/logo/f/2.0/news_r_34_2x.png" alt="Yahoo!ニュース" width="206" height="34" /></a>
+ </div>
+ <div class="msthdtxt">
+ <p>IDでもっと便利に<a href="http://rdsig.yahoo.co.jp/mh/click/reg/RV=1/RU=aHR0cHM6Ly9hY2NvdW50LmVkaXQueWFob28uY28uanAvcmVnaXN0cmF0aW9uPy5pbnRsPWpwJi5kb25lPWh0dHAlM2ElMmYlMmZoZWFkbGluZXMueWFob28uY28uanAlMmZobCUzZmElM2QyMDE3MDMwOS0zNTA5NzgzOC1jbmV0ai1zY2kmLnNyYz15bg--" class="b" data-ylk="slk:h_regyid;pos:0" id="msthdReg">新規取得</a></p>
+ <p><a href="http://rdsig.yahoo.co.jp/mh/click/logn/RV=1/RU=aHR0cHM6Ly9sb2dpbi55YWhvby5jby5qcC9jb25maWcvbG9naW4_LnNyYz15biZsZz1qcCYuaW50bD1qcCYuZG9uZT1odHRwJTNhJTJmJTJmaGVhZGxpbmVzLnlhaG9vLmNvLmpwJTJmaGwlM2ZhJTNkMjAxNzAzMDktMzUwOTc4MzgtY25ldGotc2Np" class="b" data-ylk="slk:h_login;pos:0" id="msthdLogin">ログイン</a><span id="msthdPrBox"><a href="http://r.ca-mpr.jp/s/104/?i4a=945217" id="msthdPrLink" class="">今なら5,000ポイントもらえるチャンス! YJFX!</a></span></p>
+ </div>
+ <div class="msthdlink">
+ <ul>
+ <li class="ytop"><a href="http://rdsig.yahoo.co.jp/mh/click/ytop/RV=1/RU=aHR0cDovL3d3dy55YWhvby5jby5qcC8-" data-ylk="slk:h_ytop;pos:0">Yahoo! JAPAN</a></li>
+ <li class="help"><a href="http://rdsig.yahoo.co.jp/mh/click/help/RV=1/RU=aHR0cHM6Ly93d3cueWFob28taGVscC5qcC9hcHAvaG9tZS9zZXJ2aWNlL2hlYWRsaW5lcy8-" data-ylk="slk:h_hlp;pos:0" id="msthdHelp">ヘルプ</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <script type="text/javascript" src="http://ai.yimg.jp/images/ds/rapid/ult.js"></script>
+ <script type="text/javascript" src="http://ai.yimg.jp/images/security/pf/pcore-1.0.1.min.js"></script>
+ <script type="text/javascript" src="http://ai.yimg.jp/images/security/pf/yjsecure.js"></script>
+ <script type="text/javascript">
+ window.msthdPromo = function() {
+ var rand = (Math.random() * 5) ^ 0;
+ var SxmSh0Text = [{
+ clsName: 'msthdPrShpIcon',
+ word: 'スマホグッズの人気商品をチェック',
+ url: 'http://rdsig.yahoo.co.jp/shopping/mhd/ma1_1/RV=1/RU=aHR0cDovL3Nob3BwaW5nLnlhaG9vLmNvLmpwL2NhdGVnb3J5LzI1MDIvMzgzNDYvcmFua2luZy9wZXJpb2Rfd2Vla2x5L2dlbmRlcl9tYWxlLz9zY19lPXl5bGtfbWhkX3N0bF90X21hMV8x'
+ }, {
+ clsName: 'msthdPrShpIcon',
+ word: 'いま売れているメンズシューズ',
+ url: 'http://rdsig.yahoo.co.jp/shopping/mhd/ma1_2/RV=1/RU=aHR0cDovL3Nob3BwaW5nLnlhaG9vLmNvLmpwL2NhdGVnb3J5LzEzNDU3LzI0OTUvMTc0MC9yYW5raW5nL3BlcmlvZF93ZWVrbHkvZ2VuZGVyX21hbGUvP3NjX2U9eXlsa19taGRfc3RsX3RfbWExXzI-'
+ }, {
+ clsName: 'msthdPrShpIcon',
+ word: '財布、ファッション小物 人気トップ20',
+ url: 'http://rdsig.yahoo.co.jp/shopping/mhd/ma1_3/RV=1/RU=aHR0cDovL3Nob3BwaW5nLnlhaG9vLmNvLmpwL2NhdGVnb3J5LzEzNDU3LzI0OTUvMTY5NS9yYW5raW5nL3BlcmlvZF93ZWVrbHkvZ2VuZGVyX21hbGUvP3NjX2U9eXlsa19taGRfc3RsX3RfbWExXzM-'
+ }, {
+ clsName: 'msthdPrShpIcon',
+ word: '注目の人気売れ筋商品ランキング',
+ url: 'http://rdsig.yahoo.co.jp/shopping/mhd/ma1_4/RV=1/RU=aHR0cDovL3Nob3BwaW5nLnlhaG9vLmNvLmpwL3JhbmtpbmcvcGVyaW9kX3dlZWtseS9nZW5kZXJfbWFsZS8_c2NfZT15eWxrX21oZF9zdGxfdF9tYTFfNA--'
+ }, {
+ clsName: 'msthdPrShpIcon',
+ word: '送料込み1,000円 目玉商品セール中',
+ url: 'http://rdsig.yahoo.co.jp/shopping/mhd/ma1_5/RV=1/RU=aHR0cDovL3RvcGljcy5zaG9wcGluZy55YWhvby5jby5qcC9zYWxlL3RpbWVzYWxlLz9zY19lPXl5bGtfbWhkX3N0bF90X21hMV81'
+ }, ];
+ var sxmSh0TextCls = SxmSh0Text[rand].clsName;
+ var sxmSh0TextWord = SxmSh0Text[rand].word;
+ var sxmSh0TextUrl = SxmSh0Text[rand].url;
+ YAHOO.JP.msthd.Promo.init({
+ uhd: {},
+ txt: {
+ 'sb1_pr1': {
+ clsName: 'msthdPrShpIcon',
+ word: 'ソフトバンクのスマホ利用でポイント14倍',
+ url: 'http://rdsig.yahoo.co.jp/shopping/mhd/sb1/RV=1/RU=aHR0cDovL3RvcGljcy5zaG9wcGluZy55YWhvby5jby5qcC9jYW1wYWlnbi9wb2ludHMvc2IvP3NjX2U9eXlsa19taGRfc3RsX3Rfc2I-'
+ },
+ 'sb1_pr0': {
+ clsName: 'msthdPrShpIcon',
+ word: 'ソフトバンクのスマホ利用でポイント10倍',
+ url: 'http://rdsig.yahoo.co.jp/shopping/mhd/sb2/RV=1/RU=aHR0cDovL3RvcGljcy5zaG9wcGluZy55YWhvby5jby5qcC9jYW1wYWlnbi9wb2ludHMvc2IvP3NjX2U9eXlsa19taGRfc3RsX3Rfc2I-'
+ },
+ 'sxm_sh0': {
+ clsName: sxmSh0TextCls,
+ word: sxmSh0TextWord,
+ url: sxmSh0TextUrl
+ },
+ 'pr1_sh0': {
+ clsName: 'msthdPrShpIcon',
+ word: '送料込み1,000円 目玉商品セール中',
+ url: 'http://rdsig.yahoo.co.jp/shopping/mhd/1/RV=1/RU=aHR0cDovL3RvcGljcy5zaG9wcGluZy55YWhvby5jby5qcC9zYWxlL3RpbWVzYWxlLz9zY19lPXl5bGtfbWhkX3N0bF90cG4jYW5jLXByaWNlQVBJ'
+ },
+ 'pr1_sh1': {
+ clsName: 'msthdPrShpIcon',
+ word: '送料込み1,000円 目玉商品セール中',
+ url: 'http://rdsig.yahoo.co.jp/shopping/mhd/2/RV=1/RU=aHR0cDovL3RvcGljcy5zaG9wcGluZy55YWhvby5jby5qcC9zYWxlL3RpbWVzYWxlLz9zY19lPXl5bGtfbWhkX3N0bF90cHIjYW5jLXByaWNlQVBJ'
+ },
+ 'pr0_sh0': {
+ clsName: 'msthdPrShpIcon',
+ word: '送料込み1,000円 目玉商品セール中',
+ url: 'http://rdsig.yahoo.co.jp/shopping/mhd/3/RV=1/RU=aHR0cDovL3RvcGljcy5zaG9wcGluZy55YWhvby5jby5qcC9zYWxlL3RpbWVzYWxlLz9zY19lPXl5bGtfbWhkX3N0bF90bm4jYW5jLXByaWNlQVBJ'
+ },
+ 'pr0_sh1': {
+ clsName: 'msthdPrShpIcon',
+ word: '送料込み1,000円 目玉商品セール中',
+ url: 'http://rdsig.yahoo.co.jp/shopping/mhd/4/RV=1/RU=aHR0cDovL3RvcGljcy5zaG9wcGluZy55YWhvby5jby5qcC9zYWxlL3RpbWVzYWxlLz9zY19lPXl5bGtfbWhkX3N0bF90bnIjYW5jLXByaWNlQVBJ'
+ },
+ 'default': {
+ clsName: '',
+ word: '今なら5,000ポイントもらえるチャンス! YJFX!',
+ url: 'http://r.ca-mpr.jp/s/104/?i4a=945217'
+ }
+ }
+ });
+ };
+ </script>
+ <script type="text/javascript">
+ (function(d, t) {
+ var s = d.getElementsByTagName(t)[0],
+ n = d.createElement(t);
+ n.id = 'msthdScript';
+ n.src = 'http://ai.yimg.jp/yui/jp/mh/pc/1.6.3/js/std-min.js';
+ n.setAttribute('data-s', '');
+ n.setAttribute('data-c', '');
+ s.parentNode.insertBefore(n, s);
+ }(document, 'script'));
+ </script>
+ <!-- SpaceID=2078709551 loc=EMG3 noad-spid -->
+ <!-- SpaceID=2078709551 loc=EMG2 noad-spid -->
+ <!-- SpaceID=2078709551 loc=EMG noad-spid -->
+ </div>
+
+ <hr class="separation" />
+ <div id="rma-pdv"></div>
+ <!--PushDownVision Ad-->
+
+ <!--contents start-->
+ <div id="contents">
+ <div id="contentsHeader">
+
+ <div id="headerSearch">
+
+ <div class="searchWrapper">
+ <!-- ニュース -->
+ <form action="http://news.search.yahoo.co.jp/search" method="get" id="searchNewsForm" class="current">
+
+ <div class="inputWrapper">
+ <input class="searchInput" name="p" placeholder="キーワードを入力" type="text" />
+ <input value="UTF-8" name="ei" type="hidden" />
+ <input value="news_sw" name="fr" type="hidden" />
+ </div>
+ <!-- /.inputWrapper -->
+ <p class="currentSearch"><a href="#">ニュース</a></p>
+ <span class="searchButton"><input value="検索" type="submit" /></span>
+
+ <!-- 条件指定ボタン -->
+ <p class="advanced"><a href="http://news.search.yahoo.co.jp/advanced">条件指定</a></p>
+ </form>
+
+ <!-- トピ -->
+ <form action="http://search.yahoo.co.jp/search" method="get" id="searchTopicsForm">
+
+ <div class="inputWrapper">
+ <input class="searchInput" name="p" placeholder="キーワードを入力" type="text" />
+ <input value="UTF-8" name="ei" type="hidden" />
+ <input value="news_sw" name="fr" type="hidden" />
+ <input value="news.yahoo.co.jp/list/" name="vs" type="hidden" />
+ <input value="1" name="rkf" type="hidden" />
+ </div>
+ <!-- /.inputWrapper -->
+ <p class="currentSearch"><a href="#">トピックス</a></p>
+ <span class="searchButton"><input value="検索" type="submit" /></span>
+
+ </form>
+
+ <!-- Buzz -->
+ <form action="http://news.yahoo.co.jp/theme/search/" method="get" id="searchThemeForm">
+
+ <div class="inputWrapper">
+ <input class="searchInput" name="key" placeholder="キーワードを入力" type="text" />
+ </div>
+ <!-- /.inputWrapper -->
+
+ <p class="currentSearch"><a href="#">テーマ</a></p>
+ <span class="searchButton"><input value="検索" type="submit" /></span>
+ </form>
+
+ <!-- 意識調査 -->
+ <form action="http://polls.dailynews.yahoo.co.jp/list" method="get" id="SearchSurveyForm">
+
+ <div class="inputWrapper">
+ <input class="searchInput" name="q" placeholder="キーワードを入力" type="text" />
+ <input value="UTF-8" name="ei" type="hidden" />
+ </div>
+ <!-- /.inputWrapper -->
+
+ <p class="currentSearch"><a href="#">意識調査</a></p>
+ <span class="searchButton"><input value="検索" type="submit" /></span>
+ </form>
+
+ <!-- GSR -->
+ <form action="http://gsearch.news.yahoo.co.jp/gs?" name="s" method="get" id="searchGSRForm">
+
+ <div class="inputWrapper">
+ <input class="searchInput" name="key" placeholder="キーワードを入力" type="text" />
+ <input value="l" name="ty" type="hidden" />
+ <input value="" name="dbty" type="hidden" />
+ </div>
+ <!-- /.inputWrapper -->
+ <p class="currentSearch"><a href="#">全国紙パック</a></p>
+ <span class="searchButton"><input value="検索" type="submit" /></span>
+ </form>
+
+ <!--検索カテゴリのセレクト -->
+ <ul class="searchSelect hide">
+ <!--
+-->
+ <li id="searchNews"><a href="#" class="current"><span>ニュース</span></a></li>
+ <li id="searchTopics"><a href="#"><span>トピックス</span></a></li>
+ <li id="searchTheme"><a href="#"><span>テーマ</span></a></li>
+ <li id="SearchSurvey"><a href="#"><span>意識調査</span></a></li>
+ <li id="searchGSR"><a href="#"><span>全国紙パック</span></a></li>
+ </ul>
+ <div class="bubble hide"></div>
+
+ </div>
+ <!-- /.searchWrapper -->
+
+ <ul class="personalInfo">
+ <li class="myPage"><a href="http://person.news.yahoo.co.jp/u/login" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL3BlcnNvbi5uZXdzLnlhaG9vLmNvLmpwL3UvbG9naW4-/RS=^ADAKqgBEJEB_jAglzmLzLlR2HAjG9M-;_ylt=A7YWOgEDJsFY.TUA8LAvl.Z7'"><span class="myThumb"><img src="http://i.yimg.jp/images/bloom/v201212/anonymous_24.png" width="24" height="24" /></span></a><a href="http://person.news.yahoo.co.jp/u/login" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL3BlcnNvbi5uZXdzLnlhaG9vLmNvLmpwL3UvbG9naW4-/RS=^ADAKqgBEJEB_jAglzmLzLlR2HAjG9M-;_ylt=A7YWOgEDJsFY.TUA8bAvl.Z7'"><span class="myName">ユーザーページ</span></a>
+ </li>
+ <li class="purchase"><a href="http://headlines.yahoo.co.jp/purchase/" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL2hlYWRsaW5lcy55YWhvby5jby5qcC9wdXJjaGFzZS8-/RS=^ADA4LnIVJJC.OnP7hxl51hon8DlBQ4-;_ylt=A7YWOgEDJsFY.TUA8rAvl.Z7'">購読一覧</a></li>
+ <li class="setting"><a href="http://person.news.yahoo.co.jp/settings/profile/" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL3BlcnNvbi5uZXdzLnlhaG9vLmNvLmpwL3NldHRpbmdzL3Byb2ZpbGUv/RS=^ADAyuPlpBEWlsq2u0eKG8Mi19tcTMo-;_ylt=A7YWOgEDJsFY.TUA87Avl.Z7'">設定</a></li>
+ </ul>
+ <!-- /.personalInfo -->
+
+ </div>
+ <!-- /#search -->
+ <!--グローバルナビ-->
+ <div id="globalNav">
+ <ul id="gnPri">
+ <!-- global nav primary -->
+ <li id="gnPriHeadlines"><a href="http://news.yahoo.co.jp" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL25ld3MueWFob28uY28uanA-/RS=^ADAdTdnzilw2wJNN2bs5pl037o02Ro-;_ylt=A7YWOgEDJsFY.TUA9LAvl.Z7'">トップ</a></li>
+ <li id="gnPriFlash"><a href="http://news.yahoo.co.jp/flash" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL25ld3MueWFob28uY28uanAvZmxhc2g-/RS=^ADAdG5WQ6iawsAaeWXgMXIhpeXQ1qE-;_ylt=A7YWOgEDJsFY.TUA9bAvl.Z7'">速報</a></li>
+ <li id="gnPriPhoto"><a href="http://news.yahoo.co.jp/photo" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL25ld3MueWFob28uY28uanAvcGhvdG8-/RS=^ADAPpKeZY_cEO3TJ8aZfR.m0MbjuN4-;_ylt=A7YWOgEDJsFY.TUA9rAvl.Z7'">写真</a></li>
+ <li id="gnPriVideo"><a href="http://headlines.yahoo.co.jp/videonews/" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL2hlYWRsaW5lcy55YWhvby5jby5qcC92aWRlb25ld3Mv/RS=^ADA8kkojVYRbvCni40MAO6sw5BDlfg-;_ylt=A7YWOgEDJsFY.TUA97Avl.Z7'">映像</a></li>
+ <li id="gnPriZasshi"><a href="http://news.yahoo.co.jp/zasshi" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL25ld3MueWFob28uY28uanAvemFzc2hp/RS=^ADA3W5hJfcSA0WHl90pXcthYiykh3M-;_ylt=A7YWOgEDJsFY.TUA.LAvl.Z7'">雑誌</a></li>
+ <li id="gnPriBylines"><a href="http://bylines.news.yahoo.co.jp/" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL2J5bGluZXMubmV3cy55YWhvby5jby5qcC8-/RS=^ADAQzNqpa02Lm180rVv3DibuXD5J3g-;_ylt=A7YWOgEDJsFY.TUA.bAvl.Z7'">個人</a></li>
+ <li id="gnPriBusiness" class="current"><a href="http://news.yahoo.co.jp/biz" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL25ld3MueWFob28uY28uanAvYml6/RS=^ADAiYPdBYDdyhIqj7B_tX2RNHkeYlc-;_ylt=A7YWOgEDJsFY.TUA.rAvl.Z7'">ビジネス</a></li>
+ <li id="gnPriFeature"><a href="http://news.yahoo.co.jp/feature" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL25ld3MueWFob28uY28uanAvZmVhdHVyZQ--/RS=^ADAQPCFE_SyIYw9O4Z8hnk4yhJ8eLQ-;_ylt=A7YWOgEDJsFY.TUA.7Avl.Z7'">特集</a></li>
+ <li id="gnPriResearch"><a href="http://polls.dailynews.yahoo.co.jp/" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL3BvbGxzLmRhaWx5bmV3cy55YWhvby5jby5qcC8-/RS=^ADAAdTKiyrY5YNeCjVbz1gJ9n6jJWk-;_ylt=A7YWOgEDJsFY.TUA_LAvl.Z7'">意識調査</a></li>
+ <li id="gnPriRanking"><a href="http://news.yahoo.co.jp/ranking" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL25ld3MueWFob28uY28uanAvcmFua2luZw--/RS=^ADATNs2bG1S_AG0Ua1H0X_zS88WL1w-;_ylt=A7YWOgEDJsFY.TUA_bAvl.Z7'">ランキング</a></li>
+ </ul>
+
+ <div class="gnSecWrap">
+ <ul id="gnSec">
+ <!-- global nav secondaly -->
+ <li><a href="http://news.yahoo.co.jp/biz">ビジネストップ</a></li>
+ <li><a href="http://news.yahoo.co.jp/biz/category/economy">経済</a></li>
+ <li><a href="http://news.yahoo.co.jp/biz/category/enterprise">企業</a></li>
+ <li><a href="http://news.yahoo.co.jp/biz/category/global">グローバル</a></li>
+ <li><a href="http://news.yahoo.co.jp/biz/category/market">マーケット</a></li>
+ <li><a href="http://news.yahoo.co.jp/biz/category/career">キャリア</a></li>
+ <li><a href="http://news.yahoo.co.jp/biz/category/technology">テクノロジー</a></li>
+ </ul>
+ </div>
+ </div>
+ <!-- /.globalNav -->
+ <!--/グローバルナビ-->
+ <div id="cat-pass"></div>
+ <!--/#cat-pass-->
+ </div>
+ <!--/#contentsHeader-->
+
+ <div id="contentsBody">
+ <span class="yj-guid"><a name="contents-start" id="contents-start"></a><img src="http://i.yimg.jp/images/clear.gif" alt="ここから本文です" width="1" height="1" /></span>
+
+ <!--main start-->
+ <div id="main">
+ <div class="mainBox">
+
+ <noscript>
+&lt;div class="alertBox"&gt;
+&lt;div class="alert"&gt;
+&lt;i&gt;&lt;/i&gt;&lt;p&gt;現在&lt;em&gt;JavaScriptが無効&lt;/em&gt;になっています。Yahoo!ニュースのすべての機能を利用するためには、JavaScriptの設定を有効にしてください。&lt;br&gt;JavaScriptの設定を変更する方法は&lt;a href="http://help.yahoo.co.jp/help/jp/common/sys/sys-07.html"&gt;こちら&lt;/a&gt;。&lt;/p&gt;
+&lt;/div&gt;
+&lt;/div&gt;
+</noscript>
+ <script type="text/javascript" language="JavaScript">
+ yads_ad_ds = '55033_33065';
+ yads_bucket_id = miffy_bucket_id;
+ </script>
+ <div class="adTtlYdn">
+ <script type="text/javascript" language="JavaScript" src="http://yads.c.yimg.jp/js/yads.js"></script>
+ <script type="text/javascript" language="JavaScript" src="http://s.yimg.jp/images/listing/tool/yads/uadf/yads_vimps-1.5.0.js?2017030901"></script><span></span>
+ <script src="http://yads.yjtag.yahoo.co.jp/tag?s=55033_33065&amp;t=j&amp;ssl=0&amp;fr_id=yads_6980208-0&amp;xd_support=1&amp;fl_support=21&amp;fr_support=1&amp;enc=UTF-8&amp;pv_ts=1489053189613-4417024&amp;page=1&amp;sid=2078709551&amp;u=http%3A%2F%2Fheadlines.yahoo.co.jp%2Fhl%3Fa%3D20170309-35097838-cnetj-sci&amp;tagpos=244x211"></script>
+ </div>
+
+ <div class="article">
+ <div id="ym_newsarticle">
+ <!--- interest_match_relevant_zone_start --->
+ <div class="hd">
+ <h1>トレンドマイクロ、公衆無線LANを安全に使うためのアプリ「フリーWi-Fiプロテクション」</h1>
+ <p class="source"><a href="http://headlines.yahoo.co.jp/list/?m=cnetj" onmousedown="this.href='http://rdsig.yahoo.co.jp/media/news/medianame/articles/RV=1/RU=aHR0cDovL2hlYWRsaW5lcy55YWhvby5jby5qcC9saXN0Lz9tPWNuZXRq;_ylt=A7YWOgEDJsFY.TUAv7Avl.Z7'">CNET Japan</a> 3/9(木) 18:45配信
+ </p>
+ <div class="snsButton">
+ <ul>
+ <li class="yjnSnsBtn">
+ <a href="http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cHM6Ly90d2l0dGVyLmNvbS9pbnRlbnQvdHdlZXQ_aGFzaHRhZ3M9WWFob28lRTMlODMlOEIlRTMlODMlQTUlRTMlODMlQkMlRTMlODIlQjkmb3JpZ2luYWxfcmVmZXJlcj1odHRwJTNBJTJGJTJGaGVhZGxpbmVzLnlhaG9vLmNvLmpwJTJGaGwlM0ZhJTNEMjAxNzAzMDktMzUwOTc4MzgtY25ldGotc2NpJnRleHQ9JUUzJTgzJTg4JUUzJTgzJUFDJUUzJTgzJUIzJUUzJTgzJTg5JUUzJTgzJTlFJUUzJTgyJUE0JUUzJTgyJUFGJUUzJTgzJUFEJUUzJTgwJTgxJUU1JTg1JUFDJUU4JUExJTg2JUU3JTg0JUExJUU3JUI3JTlBTEFOJUUzJTgyJTkyJUU1JUFFJTg5JUU1JTg1JUE4JUUzJTgxJUFCJUU0JUJEJUJGJUUzJTgxJTg2JUUzJTgxJTlGJUUzJTgyJTgxJUUzJTgxJUFFJUUzJTgyJUEyJUUzJTgzJTk3JUUzJTgzJUFBJUUzJTgwJThDJUUzJTgzJTk1JUUzJTgzJUFBJUUzJTgzJUJDV2ktRmklRTMlODMlOTclRTMlODMlQUQlRTMlODMlODYlRTMlODIlQUYlRTMlODIlQjclRTMlODMlQTclRTMlODMlQjMlRTMlODAlOEQlRUYlQkMlODhDTkVUJTIwSmFwYW4lRUYlQkMlODklMjAtJTIwWWFob28lMjElRTMlODMlOEIlRTMlODMlQTUlRTMlODMlQkMlRTMlODIlQjkmdHdfcD10d2VldGJ1dHRvbiZ1cmw9aHR0cCUzQSUyRiUyRmhlYWRsaW5lcy55YWhvby5jby5qcCUyRmhsJTNGYSUzRDIwMTcwMzA5LTM1MDk3ODM4LWNuZXRqLXNjaQ--/RS=%5EADA0hVu6aGxiaIKUWpENbe6eNNKa.I-;_ylt=A7YWOgEDJsFY.TUA0rAvl.Z7" target="_blank">
+ <div class="twBtn"><span>ツイート</span></div>
+ </a>
+ </li>
+ <li class="yjnSnsBtn">
+ <a href="http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL3NoYXJlci9zaGFyZXIucGhwP3U9aHR0cDovL2hlYWRsaW5lcy55YWhvby5jby5qcC9obD9hPTIwMTcwMzA5LTM1MDk3ODM4LWNuZXRqLXNjaQ--/RS=%5EADAWIDPx9Ml7C55R8Gy8MiskPhYYmQ-;_ylt=A7YWOgEDJsFY.TUA1LAvl.Z7" onclick="window.open(this.href, 'FBwindow', 'width=650, height=450, menubar=no, toolbar=no, scrollbars=yes'); return false;">
+ <div class="fbBtn"><span>シェアする</span></div>
+ </a>
+ </li>
+ </ul>
+ </div>
+ </div>
+
+ <div class="articleMain">
+ <div class="paragraph">
+ <p class="ynDetailText">
+ トレンドマイクロは3月9日、Wi-Fi利用時の通信を暗号化し保護するスマホ・タブレット向けのセキュリティアプリ「フリーWi-Fiプロテクション」(iOS/Android)の発売を開始すると発表した。1年版ライセンスは2900円(税込)で、2年版ライセンスは5000円(税込)。<br />
+ <br />  フリーWi-Fiプロテクションは、App Storeおよび、Google Playにて販売され、既に提供しているスマホ・タブレット向け総合セキュリティ対策アプリ「ウイルスバスター モバイル」と併用することで、不正アプリや危険なウェブサイトからの保護に加え、通信の盗み見を防ぐことができる。<br />
+ <br />  2020年の東京オリンピック・パラリンピックの開催などを見据え、フリーWi-Fi(公衆無線LAN)の設置が促進され、フリーWi-Fiの利用者も増加している。
+ <br />
+ <br />  一方で、脆弱な設定のフリーWi-Fiや攻撃者が設置した偽のフリーWi-Fiへの接続などによる情報漏えい、通信の盗み見などのセキュリティリスクが危惧されているという。
+ <br />
+ <br />  正規事業者が提供する安全性の高いフリーWi-Fiのほかにも、通信を暗号化していない安全性の低いフリーWi-Fi、さらにはサイバー犯罪者が設置したフリーWi-Fiなどさまざまなものが混在している。また、利用者は、接続する前にひとつひとつ安全性を確認するのは難しい状況だとしている。
+ <br />
+ <br />  トレンドマイクロがスマートフォン保持者でフリーWi-Fiの利用経験がある人に実施した調査では、回答者の約85%が安全なフリーWi-Fiと危険なフリーWi-Fiは「見分けられない」と回答。さらに、約65%がフリーWi-Fiの利用に不安を感じていると回答している。
+ <br />
+ <br />  こうした環境の変化やユーザの状況を鑑み、フリーWi-Fiプロテクションの提供を開始する。同アプリをインストールすることで利用者は、万が一安全性の低いフリーWi-Fiのアクセスポイントに接続してしまった場合でも、その通信を暗号化でき、通信の盗み見やそれによる情報漏えいのリスクを低減できるようになる。
+ <br />
+ <br />  具体的には、フリーWi-Fi利用時に、スマートフォンがフリーWi-Fiプロテクションインフラに接続することにより、フリーWi-Fiのアクセスポイントを介した通信がVPN(Virtual Private Network)で暗号化される。これにより利用者は、第三者から通信を傍受されることやデータの情報漏えいを防ぐことが可能。さらに、かんたん自動接続の機能により、通信を暗号化していない安全性が低いフリーWi-Fi接続時や利用者が指定したWi-Fiへ接続する際に、自動的に通信を暗号化し、利用者の通信を保護する。<br />
+ <br />  また、フリーWi-Fiプロテクションインフラと、莫大なセキュリティ情報のビッグデータを保有するクラウド型セキュリティ技術基盤「Trend Micro Smart Protection Network」(SPN)が連携することで、フリーWi-Fiプロテクションインフラを経由してインターネットを利用する際に、利用者がフィッシング詐欺サイトや偽サイトなどへの不正サイトへアクセスすることをブロックできるという。</p>
+ </div>
+ <!-- /.paragraph -->
+
+
+
+ <div class="ynDetailRelArticle">
+ <div class="listTitle">【関連記事】</div>
+ <ul>
+ <li><a href="http://rdsig.yahoo.co.jp/media/news/rd_tool/cnetj/articles/sci/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cHM6Ly9qYXBhbi5jbmV0LmNvbS9uZXdzL3NlcnZpY2UvMzUwOTUyNjMvP3JlZj15ag--/RS=%5EADAyThplohjh_otBDigxUMD2uwNpcY-;_ylt=A7YWOgEDJsFY.TUAwbAvl.Z7;_ylu=X3oDMWM0MGdiajZ0BHBvcwMxBHJsX3RpdGxlA05FWENPM.ekvuOAgemrmOmAn.mBk.i3r1NB44KEUEHjga7lhazooYbnhKHnt5pMQU7jgqLjgqvjgqbjg7Pjg4jjgpLlhbHpgJrljJYtLeWIqeeUqOWItumZkOOBruaSpOW7g.OCggRybF91cmwDaHR0cHM6Ly9qYXBhbi5jbmV0LmNvbS9uZXdzL3NlcnZpY2UvMzUwOTUyNjMvP3JlZj15agRzZWMDcmVsYXRlZARzbGsDcGMEdGl0bGUD44OI44Os44Oz44OJ44Oe44Kk44Kv44Ot44CB5YWs6KGG54Sh57eaTEFO44KS5a6J5YWo44Gr5L2_44GG44Gf44KB44Gu44Ki44OX44Oq44CM44OV44Oq44O8V2ktRmnjg5fjg63jg4bjgq_jgrfjg6fjg7PjgI0EdXJsA2h0dHA6Ly9oZWFkbGluZXMueWFob28uY28uanAvaGw_YT0yMDE3MDMwOS0zNTA5NzgzOC1jbmV0ai1zY2k-"> NEXCO3社、高速道路SAやPAの公衆無線LANアカウントを共通化--利用制限の撤廃も </a></li>
+ <li><a href="http://rdsig.yahoo.co.jp/media/news/rd_tool/cnetj/articles/sci/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cHM6Ly9qYXBhbi5jbmV0LmNvbS9uZXdzL3NlcnZpY2UvMzUwNzM2MjkvP3JlZj15ag--/RS=%5EADALotaP7ytzm7b3WHCZWShVoMemRU-;_ylt=A7YWOgEDJsFY.TUAwrAvl.Z7;_ylu=X3oDMWMwOGNtMmcwBHBvcwMyBHJsX3RpdGxlA.ODiOODrOODs.ODieODnuOCpOOCr.ODreOAgeOCu.OCreODpeODquODhuOCo.OCteODvOODk.OCueOAjOOBguOCk.OBl.OCk.ODleODquODvFdpLUZp44CN44KS5o.Q5L6bBHJsX3VybANodHRwczovL2phcGFuLmNuZXQuY29tL25ld3Mvc2VydmljZS8zNTA3MzYyOS8_cmVmPXlqBHNlYwNyZWxhdGVkBHNsawNwYwR0aXRsZQPjg4jjg6zjg7Pjg4njg57jgqTjgq_jg63jgIHlhazooYbnhKHnt5pMQU7jgpLlronlhajjgavkvb_jgYbjgZ_jgoHjga7jgqLjg5fjg6rjgIzjg5Xjg6rjg7xXaS1GaeODl.ODreODhuOCr.OCt.ODp.ODs.OAjQR1cmwDaHR0cDovL2hlYWRsaW5lcy55YWhvby5jby5qcC9obD9hPTIwMTcwMzA5LTM1MDk3ODM4LWNuZXRqLXNjaQ--"> トレンドマイクロ、セキュリティサービス「あんしんフリーWi-Fi」を提供 </a></li>
+ <li><a href="http://rdsig.yahoo.co.jp/media/news/rd_tool/cnetj/articles/sci/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cHM6Ly9qYXBhbi5jbmV0LmNvbS9uZXdzL3NlcnZpY2UvMzUwNzYzNzYvP3JlZj15ag--/RS=%5EADA3sjSiznu0CEKG6CRS7jBQj6ggiE-;_ylt=A7YWOgEDJsFY.TUAw7Avl.Z7;_ylu=X3oDMWJvMmdiM3YxBHBvcwMzBHJsX3RpdGxlA.ODk.ODg.OCsOODreODvOODluOAgeWFrOihhueEoee3mkxBTuOCteODvOODk.OCueOAjEJJR0xPQkUgV2ktRmnjgI3jgpIy5pyIMeaXpeOBi.OCieaPkOS.mwRybF91cmwDaHR0cHM6Ly9qYXBhbi5jbmV0LmNvbS9uZXdzL3NlcnZpY2UvMzUwNzYzNzYvP3JlZj15agRzZWMDcmVsYXRlZARzbGsDcGMEdGl0bGUD44OI44Os44Oz44OJ44Oe44Kk44Kv44Ot44CB5YWs6KGG54Sh57eaTEFO44KS5a6J5YWo44Gr5L2_44GG44Gf44KB44Gu44Ki44OX44Oq44CM44OV44Oq44O8V2ktRmnjg5fjg63jg4bjgq_jgrfjg6fjg7PjgI0EdXJsA2h0dHA6Ly9oZWFkbGluZXMueWFob28uY28uanAvaGw_YT0yMDE3MDMwOS0zNTA5NzgzOC1jbmV0ai1zY2k-"> ビッグローブ、公衆無線LANサービス「BIGLOBE Wi-Fi」を2月1日から提供 </a></li>
+ <li><a href="http://rdsig.yahoo.co.jp/media/news/rd_tool/cnetj/articles/sci/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cHM6Ly9qYXBhbi50ZWNocmVwdWJsaWMuY29tL2FydGljbGUvMzUwOTc0MTguaHRtP3JlZj15ag--/RS=%5EADAMw3haQxfjZL3fK.TQM18xAwPlrE-;_ylt=A7YWOgEDJsFY.TUAxLAvl.Z7;_ylu=X3oDMWJudGlpMnFzBHBvcwM0BHJsX3RpdGxlA.OAjFJhc3BiZXJyeSBQaSBaZXJvIFfjgI3jgpLlhpnnnJ_jgafopovjgostLVdpLUZp5qmf6IO944KS5pCt6LyJ44GX44Gf5paw44Oi44OH44OrBHJsX3VybANodHRwczovL2phcGFuLnRlY2hyZXB1YmxpYy5jb20vYXJ0aWNsZS8zNTA5NzQxOC5odG0_cmVmPXlqBHNlYwNyZWxhdGVkBHNsawNwYwR0aXRsZQPjg4jjg6zjg7Pjg4njg57jgqTjgq_jg63jgIHlhazooYbnhKHnt5pMQU7jgpLlronlhajjgavkvb_jgYbjgZ_jgoHjga7jgqLjg5fjg6rjgIzjg5Xjg6rjg7xXaS1GaeODl.ODreODhuOCr.OCt.ODp.ODs.OAjQR1cmwDaHR0cDovL2hlYWRsaW5lcy55YWhvby5jby5qcC9obD9hPTIwMTcwMzA5LTM1MDk3ODM4LWNuZXRqLXNjaQ--"> 「Raspberry Pi Zero W」を写真で見る--Wi-Fi機能を搭載した新モデル </a></li>
+ <li><a href="http://rdsig.yahoo.co.jp/media/news/rd_tool/cnetj/articles/sci/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cHM6Ly9qYXBhbi56ZG5ldC5jb20vYXJ0aWNsZS8zNTA4NzE1MS8_cmVmPXlq/RS=%5EADAllqIQVGX4zEXv2jxDy2ZG_0TnyY-;_ylt=A7YWOgEDJsFY.TUAxbAvl.Z7;_ylu=X3oDMWFnc3U1dGFlBHBvcwM1BHJsX3RpdGxlA.e1tuWvvuOBq.OCruODvOOCr.OBl.OBi.iyt.OCj.OBquOBhDMy5p6a44GuVOOCt.ODo.ODhARybF91cmwDaHR0cHM6Ly9qYXBhbi56ZG5ldC5jb20vYXJ0aWNsZS8zNTA4NzE1MS8_cmVmPXlqBHNlYwNyZWxhdGVkBHNsawNwYwR0aXRsZQPjg4jjg6zjg7Pjg4njg57jgqTjgq_jg63jgIHlhazooYbnhKHnt5pMQU7jgpLlronlhajjgavkvb_jgYbjgZ_jgoHjga7jgqLjg5fjg6rjgIzjg5Xjg6rjg7xXaS1GaeODl.ODreODhuOCr.OCt.ODp.ODs.OAjQR1cmwDaHR0cDovL2hlYWRsaW5lcy55YWhvby5jby5qcC9obD9hPTIwMTcwMzA5LTM1MDk3ODM4LWNuZXRqLXNjaQ--"> 絶対にギークしか買わない32枚のTシャツ </a></li>
+ </ul>
+ </div>
+ <!--- interest_match_relevant_zone_end --->
+ </div>
+ <div class="ft">
+ <p class="ynLastEditDate yjSt">最終更新:3/9(木) 18:45</p>
+ <p class="ynCobrandBanner">
+ <a href="http://rdsig.yahoo.co.jp/media/news/cobrand/cnetj/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL2phcGFuLmNuZXQuY29tLw--/RS=%5EADA5fhlOeGBp9LaG3IS9duiOkz7zFc-;_ylt=A7YWOgEDJsFY.TUAwLAvl.Z7"><img src="https://s.yimg.jp/images/news/cobranding/cnetj.gif" alt="CNET Japan" width="170" height="40" /></a>
+ </p>
+ </div>
+ <!-- /.ft -->
+
+
+ <div class="snsButton">
+ <ul>
+ <li class="yjnSnsBtn">
+ <a href="http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cHM6Ly90d2l0dGVyLmNvbS9pbnRlbnQvdHdlZXQ_aGFzaHRhZ3M9WWFob28lRTMlODMlOEIlRTMlODMlQTUlRTMlODMlQkMlRTMlODIlQjkmb3JpZ2luYWxfcmVmZXJlcj1odHRwJTNBJTJGJTJGaGVhZGxpbmVzLnlhaG9vLmNvLmpwJTJGaGwlM0ZhJTNEMjAxNzAzMDktMzUwOTc4MzgtY25ldGotc2NpJnRleHQ9JUUzJTgzJTg4JUUzJTgzJUFDJUUzJTgzJUIzJUUzJTgzJTg5JUUzJTgzJTlFJUUzJTgyJUE0JUUzJTgyJUFGJUUzJTgzJUFEJUUzJTgwJTgxJUU1JTg1JUFDJUU4JUExJTg2JUU3JTg0JUExJUU3JUI3JTlBTEFOJUUzJTgyJTkyJUU1JUFFJTg5JUU1JTg1JUE4JUUzJTgxJUFCJUU0JUJEJUJGJUUzJTgxJTg2JUUzJTgxJTlGJUUzJTgyJTgxJUUzJTgxJUFFJUUzJTgyJUEyJUUzJTgzJTk3JUUzJTgzJUFBJUUzJTgwJThDJUUzJTgzJTk1JUUzJTgzJUFBJUUzJTgzJUJDV2ktRmklRTMlODMlOTclRTMlODMlQUQlRTMlODMlODYlRTMlODIlQUYlRTMlODIlQjclRTMlODMlQTclRTMlODMlQjMlRTMlODAlOEQlRUYlQkMlODhDTkVUJTIwSmFwYW4lRUYlQkMlODklMjAtJTIwWWFob28lMjElRTMlODMlOEIlRTMlODMlQTUlRTMlODMlQkMlRTMlODIlQjkmdHdfcD10d2VldGJ1dHRvbiZ1cmw9aHR0cCUzQSUyRiUyRmhlYWRsaW5lcy55YWhvby5jby5qcCUyRmhsJTNGYSUzRDIwMTcwMzA5LTM1MDk3ODM4LWNuZXRqLXNjaQ--/RS=%5EADA0hVu6aGxiaIKUWpENbe6eNNKa.I-;_ylt=A7YWOgEDJsFY.TUA07Avl.Z7" target="_blank">
+ <div class="twBtn"><span>ツイート</span></div>
+ </a>
+ </li>
+ <li class="yjnSnsBtn">
+ <a href="http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL3NoYXJlci9zaGFyZXIucGhwP3U9aHR0cDovL2hlYWRsaW5lcy55YWhvby5jby5qcC9obD9hPTIwMTcwMzA5LTM1MDk3ODM4LWNuZXRqLXNjaQ--/RS=%5EADAWIDPx9Ml7C55R8Gy8MiskPhYYmQ-;_ylt=A7YWOgEDJsFY.TUA1bAvl.Z7" onclick="window.open(this.href, 'FBwindow', 'width=650, height=450, menubar=no, toolbar=no, scrollbars=yes'); return false;">
+ <div class="fbBtn"><span>シェアする</span></div>
+ </a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ <!-- /#ym_newsarticle -->
+ </div>
+ <!-- /.article -->
+
+
+
+ <script type="text/javascript" language="JavaScript">
+ yads_ad_ds = '38649_31304';
+ yads_bucket_id = miffy_bucket_id;
+ </script>
+ <div class="adTextYdn">
+ <script type="text/javascript" language="JavaScript" src="http://yads.c.yimg.jp/js/yads.js"></script>
+ <script type="text/javascript" language="JavaScript" src="http://s.yimg.jp/images/listing/tool/yads/uadf/yads_vimps-1.5.0.js?2017030901"></script><span></span>
+ <script src="http://yads.yjtag.yahoo.co.jp/tag?s=38649_31304&amp;t=j&amp;ssl=0&amp;fr_id=yads_8339067-1&amp;xd_support=1&amp;fl_support=21&amp;fr_support=1&amp;enc=UTF-8&amp;pv_ts=1489053189613-4417024&amp;page=1&amp;sid=2078709551&amp;u=http%3A%2F%2Fheadlines.yahoo.co.jp%2Fhl%3Fa%3D20170309-35097838-cnetj-sci&amp;tagpos=237x1948"></script>
+ </div>
+ <div id="themeSticker" class="follow yjxTheme" data-article-id="20170309-35097838-cnetj" data-destination-type="news_theme" data-ult-sid="2078709551" data-ult-sec="tm_mod" data-newsui="1" style="height:0"><iframe id="themeSticker_frame" scrolling="no" allowtransparency="true" style="vertical-align: bottom;" src="https://follow.yahoo.co.jp/plugin/cache/sticker/list/?tids=&amp;tname=&amp;aid=20170309-35097838-cnetj&amp;dtype=news_theme&amp;size=wide&amp;sid=2078709551&amp;sec=tm_mod&amp;results=3&amp;vtestid=&amp;v_pkjp=&amp;frameid=themeSticker_frame&amp;alternative=&amp;newsui=1&amp;bucket=" width="632" height="0" frameborder="0"></iframe></div>
+
+ <script type="text/javascript" language="JavaScript" src="https://s.yimg.jp/images/follow/website/plugin/external/js/sticker-1.0.0.min.js"></script>
+
+ <script type="text/javascript">
+ & lt;
+ !--
+ (function($) {
+ $(document).ready(function() {
+ YAHOO.JP.Follow.Sticker.init({
+ 'stckrClass': 'yjxTheme',
+ 'stckrSize': 'wide',
+ 'isCache': true,
+ 'stckrType': 'list',
+ 'frameWidth': 632
+ });
+
+ YAHOO.JP.Follow.Sticker.bind();
+ });
+ })(jQuery);
+ //--&gt;
+ </script>
+
+
+ <div id="ycd-p4"><iframe src="http://s.yimg.jp/images/ycd/lib/ycdloader/3.0.0/ycdproxy.html?placeholder=ycd-p4&amp;origin=http%3A%2F%2Fheadlines.yahoo.co.jp" scrolling="no" marginheight="0" marginwidth="0" style="overflow: hidden; border: 0px none; margin-top: 0px; margin-left: 0px; margin-right: 0px; height: 800px;" width="100%" height="0" frameborder="0"></iframe></div>
+ <script type="text/javascript">
+ YAHOO.JP.Ycd.recommend.loader.showModule({
+ into: 'ycd-p4',
+ dirName: 'yahoojp-p4-c2-leiis',
+ mode: 'organic-thumbnails-C2-PC2-Org',
+ placement: 'Below Article Thumbnails-p4',
+ container: 'taboola-below-article-thumbnails-p4',
+ rapid: {
+ "sec": "smlr",
+ "slk": "title"
+ }
+ });
+ </script>
+ <script type="text/javascript">
+ YAHOO.JP.Ycd.recommend.loader.showModule({
+ into: 'ycd-p4',
+ dirName: 'yahoojp-p4-c2-leiis',
+ mode: 'thumbnails-C2-PC3-SC',
+ placement: 'Below Article Thumbnails-p4-sc',
+ container: 'taboola-below-article-thumbnails-p4-sc',
+ rapid: {
+ "sec": "sc",
+ "slk": "title"
+ },
+ sponsored_contents: true
+ });
+ </script>
+
+ <div class="mainYdn">
+ <script type="text/javascript" language="JavaScript">
+ & lt;
+ !--
+ yads_ad_ds = '20806_10381';
+ yads_bucket_id = miffy_bucket_id;
+ //--&gt;
+ </script>
+ <script type="text/javascript" language="JavaScript" src="http://yads.c.yimg.jp/js/yads.js"></script>
+ <script type="text/javascript" language="JavaScript" src="http://s.yimg.jp/images/listing/tool/yads/uadf/yads_vimps-1.5.0.js?2017030901"></script><span></span>
+ <script src="http://yads.yjtag.yahoo.co.jp/tag?s=20806_10381&amp;t=j&amp;ssl=0&amp;fr_id=yads_7398503-2&amp;xd_support=1&amp;fl_support=21&amp;fr_support=1&amp;enc=UTF-8&amp;pv_ts=1489053189613-4417024&amp;page=1&amp;sid=2078709551&amp;u=http%3A%2F%2Fheadlines.yahoo.co.jp%2Fhl%3Fa%3D20170309-35097838-cnetj-sci&amp;tagpos=237x1964"></script>
+ <div style="text-align:center;"><iframe src="http://i.yimg.jp/images/listing/tool/yads/yads-iframe.html?s=20806_10381-131359&amp;t=f&amp;ssl=0&amp;fr_id=yads_7398503-2&amp;xd_support=1&amp;fl_support=21&amp;fr_support=1&amp;enc=UTF-8&amp;pv_ts=1489053189613-4417024&amp;tag_path=http%3a%2f%2fyads.yjtag.yahoo.co.jp%2ftag&amp;page=1&amp;sid=2078709551&amp;u=http%3a%2f%2fheadlines.yahoo.co.jp%2fhl%3fa%3d20170309-35097838-cnetj-sci&amp;tagpos=237x1964" style="border: medium none; clear: both; display: none; margin: auto; overflow: hidden;" allowtransparency="true" id="yads_7398503-2" name="yads_7398503-2" scrolling="no" width="632" height="250" frameborder="0"></iframe></div>
+ </div>
+
+ <div id="yjSLink"></div>
+ <script type="text/javascript" src="https://s.yimg.jp/images/search/slink/1/slink.js"></script>
+ <script type="text/javascript">
+ YAHOO.JP.srch.slink.onLoad(function(sl) {
+ sl.setParams({
+ serviceCode: 'nws',
+ appID: 'dj0zaiZpPWx1NTNzY1hnbUVoRCZzPWNvbnN1bWVyc2VjcmV0Jng9NGI-',
+ articleID: '20170309-35097838-cnetj',
+ spaceID: '2078709551',
+ linkCount: 5
+ });
+ });
+ </script>
+
+
+ <script type="text/javascript" src="http://i.yimg.jp/lib/news/json/jsr_class_1_1.js"></script>
+ <script type="text/javascript">
+ //&lt;!--
+ if (typeof YJNEWS == "undefined" || !YJNEWS) {
+ YJNEWS = {}
+ }
+ if (typeof YJNEWS.FB == "undefined" || !YJNEWS.FB) {
+ YJNEWS.FB = {}
+ }
+ YJNEWS.FB.spaceId = "2078709551";
+ YJNEWS.FB.url = "http://headlines.yahoo.co.jp/hl?a=20170309-35097838-cnetj-sci";
+ YJNEWS.FB.commentLoaded = false;
+ YJNEWS.FB.numPosts = '5';
+ YJNEWS.FB.initSetting = {
+ dispArticleNum: 5,
+ flag: false,
+ deviceFlag: 'pc'
+ };
+ //--&gt;
+ </script>
+ <script type="text/javascript" src="http://i.yimg.jp/lib/news/socialModule/facebook_1_13-min.js">
+ </script>
+ <script type="text/javascript" src="http://i.yimg.jp/lib/news/socialModule/tab_1_8-min.js"></script>
+ <div class="ynCtsSelectNav" style="">
+ <div id="commentTab" class="current"></div>
+ </div>
+ <div class="commentBox" id="commentTabContents" style="">
+ <script type="text/javascript" src="http://i.yimg.jp/images/news/v2/comment/js/commentloader/commentloader-5.1.0.min.js" charset="UTF-8"></script>
+
+ <div class="news-comment-plugin" data-defer="" data-page-type="short" data-device-type="pc" data-keys="UvlyA82DKGCMnkPKGXlZAWnSotAW79g7838O.CmP.3PARO8L2rHOAcPKsH6mM.GGnt0coWjG6Bj_kcE5OevIb8iuRVap_laMre66nbLqdsdORKPBqn8lOIw-" data-full-page-url="http://headlines.yahoo.co.jp/cm/main?d=20170309-35097838-cnetj-sci" data-reply-num="0" data-comment-num="3">
+
+ <iframe class="news-comment-plguin-iframe" style="width: 100%; height: 186px; border: medium none;" scrolling="no" src="http://plugin.news.yahoo.co.jp/v1/comment/short/?origin=http%3A%2F%2Fheadlines.yahoo.co.jp&amp;keys=UvlyA82DKGCMnkPKGXlZAWnSotAW79g7838O.CmP.3PARO8L2rHOAcPKsH6mM.GGnt0coWjG6Bj_kcE5OevIb8iuRVap_laMre66nbLqdsdORKPBqn8lOIw-&amp;full_page_url=http%3A%2F%2Fheadlines.yahoo.co.jp%2Fcm%2Fmain%3Fd%3D20170309-35097838-cnetj-sci&amp;comment_num=3&amp;ref=&amp;bkt=&amp;flt=&amp;disable_total_count=&amp;device=pc&amp;ua=Mozilla%2F5.0+%28Macintosh%3B+Intel+Mac+OS+X+10.11%3B+rv%3A55.0%29+Gecko%2F20100101+Firefox%2F55.0" frameborder="0"></iframe></div>
+ <ul class="commentNotice">
+ <li class="notice">※コメントは個人の見解であり、記事提供社と関係はありません。</li>
+ <li class="hidden"><input id="commentChk" type="checkbox" /><label for="commentChk">コメント非表示</label></li>
+ </ul>
+ <script type="text/javascript" src="http://i.yimg.jp/lib/news/socialModule/comment-3_0-min.js"></script>
+ </div>
+
+ <script type="text/javascript">
+ if (YJNEWS & amp; & amp; YJNEWS.TAB) {
+ YJNEWS.TAB.setTabProperty({
+ 'tabId': 'commentTab',
+ 'contentsId': 'commentTabContents',
+ 'prefunc': getComment,
+ 'owner': window,
+ 'rdLabelCngTab': '/media/news/tab/click/comment/pc/textnews/',
+ 'rdLabelImp': '/media/news/tab/imp/comment/pc/textnews/'
+ });
+ }
+ </script>
+
+
+ </div>
+ <!-- /#mainBox-->
+
+ <script type="text/javascript" language="JavaScript">
+ var msc_sqb_type = 'news_sqb_reserved';
+ </script>
+ <div id="pos-sqb" class="ymuiContainerNopad">
+ <script type="text/javascript">
+ yads_ad_ds = '54396_12741';
+ yads_ad_space = '2078709551';
+ yads_bucket_id = window.miffy_bucket_id || '';
+ if (typeof msc_sqb_type !== 'undefined' & amp; & amp; msc_sqb_type !== null) {
+ yads_type_tag = msc_sqb_type;
+ }
+ </script>
+ <script type="text/javascript" src="//yads.c.yimg.jp/js/yads.js"></script>
+ <script type="text/javascript" language="JavaScript" src="http://s.yimg.jp/images/listing/tool/yads/uadf/yads_vimps-1.5.0.js?2017030901"></script>
+ <script src="http://yads.yjtag.yahoo.co.jp/tag?s=54396_12741&amp;t=j&amp;ssl=0&amp;fr_id=yads_3196971-3&amp;xd_support=1&amp;fl_support=21&amp;fr_support=1&amp;enc=UTF-8&amp;pv_ts=1489053189613-4417024&amp;type=news_sqb_reserved&amp;page=1&amp;sid=2078709551&amp;u=http%3A%2F%2Fheadlines.yahoo.co.jp%2Fhl%3Fa%3D20170309-35097838-cnetj-sci&amp;tagpos=711x2190"></script>
+ <div style="text-align:center;"><iframe src="http://i.yimg.jp/images/listing/tool/yads/yads-iframe.html?s=54396_12741-122008&amp;t=f&amp;ssl=0&amp;fr_id=yads_3196971-3&amp;xd_support=1&amp;fl_support=21&amp;fr_support=1&amp;enc=UTF-8&amp;pv_ts=1489053189613-4417024&amp;tag_path=http%3a%2f%2fyads.yjtag.yahoo.co.jp%2ftag&amp;type=news_sqb_reserved&amp;page=1&amp;sid=2078709551&amp;u=http%3a%2f%2fheadlines.yahoo.co.jp%2fhl%3fa%3d20170309-35097838-cnetj-sci&amp;tagpos=711x2190" style="border: medium none; clear: both; display: none; margin: auto; overflow: hidden;" allowtransparency="true" id="yads_3196971-3" name="yads_3196971-3" scrolling="no" width="100%" height="250" frameborder="0"></iframe></div>
+ <!-- http://ard.yahoo.co.jp/SIG=1590026qr/M=300834580.301686286.303471505.314573040/D=jp_hdln_te/S=2078709551:SQB/Y=jp/EXP=1489060388/L=oI9TLjE4Mi66RLpAorxEdAVuMTE4LgAAAAA2TzUA/B=jDR_ALYWOUA-/J=1489053188005996/SIG=1197piifn/A=302195969/R=0/?http://www.yahoo.co.jp/ -->
+ <img src="//yjtag.yahoo.co.jp/csx?tp=8FzrfRY" width="1" height="1" />
+ <img src="//yjtag.yahoo.co.jp/csx?tp=vGtt1zQG" width="1" height="1" />
+ <img src="//yj.adnxs.com/seg?add=7103556&amp;t=2" width="1" height="1" />
+ <img src="//ib.adnxs.com/seg?add=7103559&amp;t=2" width="1" height="1" />
+ <img src="https://ib.adnxs.com/getuid?https%3A%2F%2Fcm.g.doubleclick.net%2Fpixel%3Fgoogle_nid%3Dappnexus1%26google_sc%26google_hm%3D%24%7BBASE64_UID_ENC%7D%26google_cm" style="position:absolute;left:-10000px;" width="1" height="1" />
+ <script language="javascript">
+ if (window.yzq_d == null) window.yzq_d = new Object();
+ window.yzq_d['jDR_ALYWOUA-'] = '&amp;U=13j3eal5r%2fN%3djDR_ALYWOUA-%2fC%3d300834580.301686286.303471505.314573040%2fD%3dSQB%2fB%3d302195969';
+ </script><noscript>&lt;div style="position:absolute;"&gt;&lt;img width=1 height=1 alt="" src="http://b5.yahoo.co.jp/b?P=oI9TLjE4Mi66RLpAorxEdAVuMTE4LgAAAAA2TzUA&amp;T=16mar804m%2fX%3d1489053188%2fE%3d2078709551%2fR%3djp_hdln_te%2fK%3d5%2fV%3d2.1%2fW%3dH%2fY%3djp%2fF%3d2204578554%2fH%3dbWgtbG9naW4tc3JjPSJ5biIgcG9wc2VhcmNoLXNlcnZpY2UtY29kZT0ibndzIiBhZGN2ZXI9Ni44LjE-%2fQ%3d-1%2fS%3d1%2fJ%3d58C12604&amp;U=13j3eal5r%2fN%3djDR_ALYWOUA-%2fC%3d300834580.301686286.303471505.314573040%2fD%3dSQB%2fB%3d302195969"&gt;&lt;/div&gt;</noscript></div>
+ </div>
+ <!--/#main-->
+ <!--main end-->
+
+ <!--sub start-->
+ <div id="sub">
+
+ <script type="text/javascript" language="JavaScript">
+ var msc_lrec_type = 'news_lrec_reserved';
+ </script>
+ <div id="lrec">
+ <script type="text/javascript" language="JavaScript">
+ yads_ad_ds = '15511_2245';
+ yads_bucket_id = window.miffy_bucket_id || '';
+ yads_type_tag = window.miffy_bucket_id || '';
+ </script>
+ <script type="text/javascript" language="JavaScript" src="//yads.c.yimg.jp/js/yads.js"></script>
+ <script type="text/javascript" language="JavaScript" src="http://s.yimg.jp/images/listing/tool/yads/uadf/yads_vimps-1.5.0.js?2017030901"></script>
+ <script src="http://yads.yjtag.yahoo.co.jp/tag?s=15511_2245&amp;t=j&amp;ssl=0&amp;fr_id=yads_2742050-4&amp;xd_support=1&amp;fl_support=21&amp;fr_support=1&amp;enc=UTF-8&amp;pv_ts=1489053189613-4417024&amp;page=1&amp;sid=2078709551&amp;u=http%3A%2F%2Fheadlines.yahoo.co.jp%2Fhl%3Fa%3D20170309-35097838-cnetj-sci&amp;tagpos=711x2441"></script>
+ <div style="text-align:center;"><iframe src="http://i.yimg.jp/images/listing/tool/yads/yads-iframe.html?s=15511_2245-130633&amp;t=f&amp;ssl=0&amp;fr_id=yads_2742050-4&amp;xd_support=1&amp;fl_support=21&amp;fr_support=1&amp;enc=UTF-8&amp;pv_ts=1489053189613-4417024&amp;tag_path=http%3a%2f%2fyads.yjtag.yahoo.co.jp%2ftag&amp;page=1&amp;sid=2078709551&amp;u=http%3a%2f%2fheadlines.yahoo.co.jp%2fhl%3fa%3d20170309-35097838-cnetj-sci&amp;tagpos=711x2441" style="border:none; clear:both; display:block; margin:auto; overflow:hidden; " allowtransparency="true" id="yads_2742050-4" name="yads_2742050-4" scrolling="no" width="300" height="250" frameborder="0"></iframe></div>
+ <script language="javascript">
+ if (window.yzq_d == null) window.yzq_d = new Object();
+ window.yzq_d['hzR_ALYWOUA-'] = '&amp;U=13kpf5ouu%2fN%3dhzR_ALYWOUA-%2fC%3d300963762.301832608.303458300.317962756%2fD%3dLREC%2fB%3d302171865';
+ </script><noscript>&lt;div style="position:absolute;"&gt;&lt;img width=1 height=1 alt="" src="http://b5.yahoo.co.jp/b?P=oI9TLjE4Mi66RLpAorxEdAVuMTE4LgAAAAA2TzUA&amp;T=16mb6raih%2fX%3d1489053188%2fE%3d2078709551%2fR%3djp_hdln_te%2fK%3d5%2fV%3d2.1%2fW%3dH%2fY%3djp%2fF%3d3809629289%2fH%3dbWgtbG9naW4tc3JjPSJ5biIgcG9wc2VhcmNoLXNlcnZpY2UtY29kZT0ibndzIiBhZGN2ZXI9Ni44LjE-%2fQ%3d-1%2fS%3d1%2fJ%3d58C12604&amp;U=13kpf5ouu%2fN%3dhzR_ALYWOUA-%2fC%3d300963762.301832608.303458300.317962756%2fD%3dLREC%2fB%3d302171865"&gt;&lt;/div&gt;</noscript></div>
+ <!-- SpaceID=2078709551 loc=NSC noad -->
+ <script language="javascript">
+ if (window.yzq_d == null) window.yzq_d = new Object();
+ window.yzq_d['qzR_ALYWOUA-'] = '&amp;U=12755ir75%2fN%3dqzR_ALYWOUA-%2fC%3d-1%2fD%3dNSC%2fB%3d-1';
+ </script><noscript>&lt;div style="position:absolute;"&gt;&lt;img width=1 height=1 alt="" src="http://b5.yahoo.co.jp/b?P=oI9TLjE4Mi66RLpAorxEdAVuMTE4LgAAAAA2TzUA&amp;T=16ltg3fpn%2fX%3d1489053188%2fE%3d2078709551%2fR%3djp_hdln_te%2fK%3d5%2fV%3d2.1%2fW%3dH%2fY%3djp%2fF%3d876554074%2fH%3dbWgtbG9naW4tc3JjPSJ5biIgcG9wc2VhcmNoLXNlcnZpY2UtY29kZT0ibndzIiBhZGN2ZXI9Ni44LjE-%2fQ%3d-1%2fS%3d1%2fJ%3d58C12604&amp;U=12755ir75%2fN%3dqzR_ALYWOUA-%2fC%3d-1%2fD%3dNSC%2fB%3d-1"&gt;&lt;/div&gt;</noscript>
+ <div class="tmplNews002-1 rkgYdn">
+ <div class="subMod subRanking rc">
+ <div class="hd">
+ <h3 class="ttl">
+ <a href="http://news.yahoo.co.jp/biz" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL25ld3MueWFob28uY28uanAvYml6/RS=^ADAiYPdBYDdyhIqj7B_tX2RNHkeYlc-;_ylt=A7YWOgEDJsFY.TUAvrAvl.Z7'">
+ 注目のビジネスニュース
+ </a>
+ </h3>
+ </div>
+ <ul class="bd">
+ <li>
+ <a href="http://zasshi.news.yahoo.co.jp/article?a=20170309-00051174-gendaibiz-bus_all" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL3phc3NoaS5uZXdzLnlhaG9vLmNvLmpwL2FydGljbGU_YT0yMDE3MDMwOS0wMDA1MTE3NC1nZW5kYWliaXotYnVzX2FsbA--/RS=^ADA37vn73p8mF6MRgjLSQniMOpfqq8-;_ylt=A7YWOgEDJsFY.TUAubAvl.Z7'">
+ <span class="cap">
+ <span class="thumbnail"><img src="https://amd.c.yimg.jp/im_siggGHp0PtHcrZGu5Iq67PQa7w---x175-y200-q90/amd/20170309-00051174-gendaibiz-000-1-view.jpg" alt="ソフトバンクの「個人向け社債」買うべきか、やめておくべきか その金利は定期預金の200倍だが…" /></span>
+ <span class="ttl">ソフトバンクの「個人向け社債」買うべきか、やめておくべきか その金利は定期預金の200倍だが…</span>
+ <span class="source">現代ビジネス</span>
+ <span class="date">3/9(木) 18:01</span>
+ </span>
+ </a>
+ </li>
+ <li>
+ <a href="http://headlines.yahoo.co.jp/hl?a=20170309-00000070-reut-bus_all" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL2hlYWRsaW5lcy55YWhvby5jby5qcC9obD9hPTIwMTcwMzA5LTAwMDAwMDcwLXJldXQtYnVzX2FsbA--/RS=^ADANm9aRckk9lrftFroRrcq0Lo_H1U-;_ylt=A7YWOgEDJsFY.TUAurAvl.Z7'">
+ <span class="cap">
+ <span class="thumbnail"><img src="https://amd.c.yimg.jp/im_siggtrspYBymXhUeVMDgTDKNdQ---x200-y143-q90/amd/20170309-00000070-reut-000-2-view.jpg" alt="日経平均は5日ぶり反発、円安で大型外需株に買い戻し" /></span>
+ <span class="ttl">日経平均は5日ぶり反発、円安で大型外需株に買い戻し</span>
+ <span class="source">ロイター</span>
+ <span class="date">3/9(木) 15:47</span>
+ </span>
+ </a>
+ </li>
+ <li>
+ <a href="http://zasshi.news.yahoo.co.jp/article?a=20170309-00051119-gendaibiz-bus_all" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL3phc3NoaS5uZXdzLnlhaG9vLmNvLmpwL2FydGljbGU_YT0yMDE3MDMwOS0wMDA1MTExOS1nZW5kYWliaXotYnVzX2FsbA--/RS=^ADAjTVE2ZN3G0CzCts2gMPmAd1I7E0-;_ylt=A7YWOgEDJsFY.TUAu7Avl.Z7'">
+ <span class="cap">
+ <span class="thumbnail"><img src="https://amd.c.yimg.jp/im_siggabcSvIDl9lXYdh8WSP9KAQ---x175-y200-q90/amd/20170309-00051119-gendaibiz-000-1-view.png" alt="人生で本当に価値があるのは「履歴書」か「追悼文」か デイヴィッド・ブルックスの憂鬱" /></span>
+ <span class="ttl">人生で本当に価値があるのは「履歴書」か「追悼文」か デイヴィッド・ブルックスの憂鬱</span>
+ <span class="source">現代ビジネス</span>
+ <span class="date">3/9(木) 18:01</span>
+ </span>
+ </a>
+ </li>
+ <li>
+ <a href="http://headlines.yahoo.co.jp/hl?a=20170309-00000004-wordleaf-bus_all" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL2hlYWRsaW5lcy55YWhvby5jby5qcC9obD9hPTIwMTcwMzA5LTAwMDAwMDA0LXdvcmRsZWFmLWJ1c19hbGw-/RS=^ADATJgU3Jfr6ZI2PT0y9G_KkBFdibo-;_ylt=A7YWOgEDJsFY.TUAvLAvl.Z7'">
+ <span class="cap">
+ <span class="thumbnail"><img src="https://amd.c.yimg.jp/im_siggDN4l56rbYkDHeOjFb4gq8Q---x200-y133-q90/amd/20170309-00000004-wordleaf-000-3-view.jpg" alt="もやしと株価の意外な関係 もやしの消費額で読み解く日本の景気" /></span>
+ <span class="ttl">もやしと株価の意外な関係 もやしの消費額で読み解く日本の景気</span>
+ <span class="source">THE PAGE</span>
+ <span class="date">3/9(木) 17:20</span>
+ </span>
+ </a>
+ </li>
+ <li>
+ <a href="http://headlines.yahoo.co.jp/hl?a=20170309-00010009-newswitch-ind" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL2hlYWRsaW5lcy55YWhvby5jby5qcC9obD9hPTIwMTcwMzA5LTAwMDEwMDA5LW5ld3N3aXRjaC1pbmQ-/RS=^ADAm3Jpn.qb0tjhzB7NV02F.OM0fTc-;_ylt=A7YWOgEDJsFY.TUAvbAvl.Z7'">
+ <span class="cap">
+ <span class="thumbnail"><img src="https://amd.c.yimg.jp/im_siggCyDjV0LRxxIcICnxJ7fHTQ---x200-y133-q90/amd/20170309-00010009-newswitch-000-1-view.jpg" alt="日立グループとホンダが手を組んだEV用中核部品の今後" /></span>
+ <span class="ttl">日立グループとホンダが手を組んだEV用中核部品の今後</span>
+ <span class="source">ニュースイッチ</span>
+ <span class="date">3/9(木) 18:11</span>
+ </span>
+ </a>
+ </li>
+ </ul>
+ </div>
+ <script type="text/javascript" language="JavaScript">
+ yads_ad_ds = '76342_90080';
+ yads_bucket_id = miffy_bucket_id;
+ </script>
+ <script type="text/javascript" language="JavaScript" src="http://yads.c.yimg.jp/js/yads.js"></script>
+ <script type="text/javascript" language="JavaScript" src="http://s.yimg.jp/images/listing/tool/yads/uadf/yads_vimps-1.5.0.js?2017030901"></script>
+ <script src="http://yads.yjtag.yahoo.co.jp/tag?s=76342_90080&amp;t=j&amp;ssl=0&amp;fr_id=yads_5203864-5&amp;xd_support=1&amp;fl_support=21&amp;fr_support=1&amp;enc=UTF-8&amp;pv_ts=1489053189613-4417024&amp;page=1&amp;sid=2078709551&amp;u=http%3A%2F%2Fheadlines.yahoo.co.jp%2Fhl%3Fa%3D20170309-35097838-cnetj-sci"></script>
+ <script src="http://im.ov.yahoo.co.jp/tag/?adprodset=76342_90080-105356-113198&amp;vimps_mode=3&amp;enc=UTF-8&amp;pvId=27533e7c3e3321f1d5d5babd3a6060c1&amp;sid=2078709551&amp;u=http%3a%2f%2fheadlines.yahoo.co.jp%2fhl%3fa%3d20170309-35097838-cnetj-sci&amp;yads_ds=76342_90080" type="text/javascript"></script>
+ </div>
+
+ <div class="tmplNews002-1 rkgYdn">
+ <div class="subMod subRanking fb">
+ <div class="hd">
+ <h3 class="ttl"><a href="http://news.yahoo.co.jp/ranking/access?ty=t&amp;c=c_sci" onmousedown="this.href='http://rdsig.yahoo.co.jp/media/news/accr/article/headlines/more/RV=1/RU=aHR0cDovL25ld3MueWFob28uY28uanAvcmFua2luZy9hY2Nlc3M_dHk9dCZjPWNfc2Np;_ylt=A7YWOgEDJsFY.TUAy7Avl.Z7'">アクセスランキング(IT総合)</a></h3>
+ </div>
+ <ol class="bd">
+ <li>
+ <a href="http://headlines.yahoo.co.jp/hl?a=20170303-00000047-zdn_n-sci" onmousedown="this.href='http://rdsig.yahoo.co.jp/media/news/accr/article/headlines/RV=1/RU=aHR0cDovL2hlYWRsaW5lcy55YWhvby5jby5qcC9obD9hPTIwMTcwMzAzLTAwMDAwMDQ3LXpkbl9uLXNjaQ--;_ylt=A7YWOgEDJsFY.TUAxrAvl.Z7'">
+ <span class="rankNum">1</span>
+ <span class="cap">
+ <span class="thumbnail"><img src="https://amd.c.yimg.jp/im_siggoPOTrACscYfQWlmVkm5jIg---x57-y60-q90/amd/20170303-00000047-zdn_n-000-2-thumb.jpg" alt="" /></span>
+ <span class="ttl">「テレビで話題になってしまった茶碗」奈良大が分析 「実物を見ず真贋云々に疑問」</span> <span class="source">ITmedia NEWS</span>
+ <span class="date">3/3(金) 11:32</span>
+ </span>
+ </a>
+ </li>
+ <li>
+ <a href="http://headlines.yahoo.co.jp/hl?a=20170303-00000059-it_nlab-sci" onmousedown="this.href='http://rdsig.yahoo.co.jp/media/news/accr/article/headlines/RV=1/RU=aHR0cDovL2hlYWRsaW5lcy55YWhvby5jby5qcC9obD9hPTIwMTcwMzAzLTAwMDAwMDU5LWl0X25sYWItc2Np;_ylt=A7YWOgEDJsFY.TUAx7Avl.Z7'">
+ <span class="rankNum">2</span>
+ <span class="cap">
+ <span class="thumbnail"><img src="https://amd.c.yimg.jp/im_siggxwb8h68bfwnwHnnqc45Ddg---x45-y60-q90/amd/20170303-00000059-it_nlab-000-4-thumb.jpg" alt="" /></span>
+ <span class="ttl">稚内のスーパーが240個のはずのケーキを2400個誤発注 → Twitterで助けを求める → 2時間で完売</span> <span class="source">ねとらぼ</span>
+ <span class="date">3/3(金) 13:23</span>
+ </span>
+ </a>
+ </li>
+ <li>
+ <a href="http://headlines.yahoo.co.jp/hl?a=20170306-00000007-withnews-sci" onmousedown="this.href='http://rdsig.yahoo.co.jp/media/news/accr/article/headlines/RV=1/RU=aHR0cDovL2hlYWRsaW5lcy55YWhvby5jby5qcC9obD9hPTIwMTcwMzA2LTAwMDAwMDA3LXdpdGhuZXdzLXNjaQ--;_ylt=A7YWOgEDJsFY.TUAyLAvl.Z7'">
+ <span class="rankNum">3</span>
+ <span class="cap">
+ <span class="thumbnail"><img src="https://amd.c.yimg.jp/im_sigg.RW1SnJzB1NId78lzy3KZQ---x60-y45-q90/amd/20170306-00000007-withnews-000-2-view.jpg" alt="" /></span>
+ <span class="ttl">就活生のヒール、ぶっちゃけ気になる? 金融・メーカー…企業に聞いたら、同じ答えがずらり</span> <span class="source">withnews</span>
+ <span class="date">3/8(水) 7:01</span>
+ </span>
+ </a>
+ </li>
+ <li>
+ <a href="http://headlines.yahoo.co.jp/hl?a=20170306-00000006-withnews-sci" onmousedown="this.href='http://rdsig.yahoo.co.jp/media/news/accr/article/headlines/RV=1/RU=aHR0cDovL2hlYWRsaW5lcy55YWhvby5jby5qcC9obD9hPTIwMTcwMzA2LTAwMDAwMDA2LXdpdGhuZXdzLXNjaQ--;_ylt=A7YWOgEDJsFY.TUAybAvl.Z7'">
+ <span class="rankNum">4</span>
+ <span class="cap">
+ <span class="thumbnail"><img src="https://amd.c.yimg.jp/im_siggwg1MNZPMYtSM03H.lwUo_g---x60-y60-q90/amd/20170306-00000006-withnews-000-1-view.jpg" alt="" /></span>
+ <span class="ttl">稚内でケーキ2400個誤発注…でも2時間で完売 常連の支えと従業員に感謝 人口3万5千人、最北の市で</span> <span class="source">withnews</span>
+ <span class="date">3/7(火) 7:00</span>
+ </span>
+ </a>
+ </li>
+ <li>
+ <a href="http://headlines.yahoo.co.jp/hl?a=20170304-00010003-binsider-sci" onmousedown="this.href='http://rdsig.yahoo.co.jp/media/news/accr/article/headlines/RV=1/RU=aHR0cDovL2hlYWRsaW5lcy55YWhvby5jby5qcC9obD9hPTIwMTcwMzA0LTAwMDEwMDAzLWJpbnNpZGVyLXNjaQ--;_ylt=A7YWOgEDJsFY.TUAyrAvl.Z7'">
+ <span class="rankNum">5</span>
+ <span class="cap">
+ <span class="thumbnail"><img src="https://amd.c.yimg.jp/im_siggXQLPPIJsTaiR1fwcOQ.zKA---x60-y30-q90/amd/20170304-00010003-binsider-000-2-view.jpg" alt="" /></span>
+ <span class="ttl">客室乗務員による「空の旅の知られざる真実」</span> <span class="source">BUSINESS INSIDER JAPAN</span>
+ <span class="date">3/4(土) 20:10</span>
+ </span>
+ </a>
+ </li>
+ </ol>
+ <!-- /.rankingContents -->
+ </div>
+ <script type="text/javascript" language="JavaScript">
+ yads_ad_ds = '99604_135693';
+ yads_parent_element = 'yads_ad_position_99604_135693';
+ yads_bucket_id = miffy_bucket_id;
+ </script>
+ <script type="text/javascript" language="JavaScript" src="//yads.c.yimg.jp/js/yads.js"></script>
+ <script type="text/javascript" language="JavaScript" src="http://s.yimg.jp/images/listing/tool/yads/uadf/yads_vimps-1.5.0.js?2017030901"></script>
+ <script src="http://yads.yjtag.yahoo.co.jp/tag?s=99604_135693&amp;t=j&amp;ssl=0&amp;fr_id=yads_6878609-6&amp;p_elem=yads_ad_position_99604_135693&amp;xd_support=1&amp;fl_support=21&amp;fr_support=1&amp;enc=UTF-8&amp;pv_ts=1489053189613-4417024&amp;page=1&amp;sid=2078709551&amp;u=http%3A%2F%2Fheadlines.yahoo.co.jp%2Fhl%3Fa%3D20170309-35097838-cnetj-sci"></script>
+ <div id="yads_ad_position_99604_135693"></div>
+ </div>
+ <!-- SpaceID=2078709551 loc=SQM noad-spid -->
+ <script language="javascript">
+ if (window.yzq_d == null) window.yzq_d = new Object();
+ window.yzq_d['ijR_ALYWOUA-'] = '&amp;U=127ue3tjk%2fN%3dijR_ALYWOUA-%2fC%3d-2%2fD%3dSQM%2fB%3d-2';
+ </script><noscript>&lt;div style="position:absolute;"&gt;&lt;img width=1 height=1 alt="" src="http://b5.yahoo.co.jp/b?P=oI9TLjE4Mi66RLpAorxEdAVuMTE4LgAAAAA2TzUA&amp;T=16mt0j1l8%2fX%3d1489053188%2fE%3d2078709551%2fR%3djp_hdln_te%2fK%3d5%2fV%3d2.1%2fW%3dH%2fY%3djp%2fF%3d2235351601%2fH%3dbWgtbG9naW4tc3JjPSJ5biIgcG9wc2VhcmNoLXNlcnZpY2UtY29kZT0ibndzIiBhZGN2ZXI9Ni44LjE-%2fQ%3d-1%2fS%3d1%2fJ%3d58C12604&amp;U=127ue3tjk%2fN%3dijR_ALYWOUA-%2fC%3d-2%2fD%3dSQM%2fB%3d-2"&gt;&lt;/div&gt;</noscript>
+ <div id="ycd-module"><iframe src="http://s.yimg.jp/images/ycd/lib/ycdloader/3.0.0/ycdproxy.html?placeholder=ycd-module&amp;origin=http%3A%2F%2Fheadlines.yahoo.co.jp" scrolling="no" marginheight="0" marginwidth="0" style="overflow: hidden; border: 0px none; margin-top: 0px; margin-left: 0px; margin-right: 0px; height: 178px;" width="100%" height="0" frameborder="0"></iframe></div>
+ <script type="text/javascript">
+ YAHOO.JP.Ycd.recommend.loader.showModule({
+ into: 'ycd-module',
+ dirName: 'yahoojp-p4-c3-dl',
+ mode: 'organic-thumbnails-purchase',
+ placement: 'Below Article Thumbnails-rc-purchase',
+ container: 'taboola-below-article-thumbnails-rc-purchase',
+ rapid: {
+ "sec": "ycd_pay",
+ "slk": "title"
+ },
+ sponsored_contents: true
+ });
+ </script>
+ <script type="text/javascript" language="JavaScript">
+ & lt;
+ !--
+ yads_ad_ds = '26744_15363';
+ yads_bucket_id = miffy_bucket_id;
+ //--&gt;
+ </script>
+ <div class="textCenter marB10">
+ <script type="text/javascript" language="JavaScript" src="http://yads.c.yimg.jp/js/yads.js"></script>
+ <script type="text/javascript" language="JavaScript" src="http://s.yimg.jp/images/listing/tool/yads/uadf/yads_vimps-1.5.0.js?2017030901"></script>
+ <script src="http://yads.yjtag.yahoo.co.jp/tag?s=26744_15363&amp;t=j&amp;ssl=0&amp;fr_id=yads_1278415-7&amp;xd_support=1&amp;fl_support=21&amp;fr_support=1&amp;enc=UTF-8&amp;pv_ts=1489053189613-4417024&amp;page=1&amp;sid=2078709551&amp;u=http%3A%2F%2Fheadlines.yahoo.co.jp%2Fhl%3Fa%3D20170309-35097838-cnetj-sci"></script>
+ <div style="text-align:center;"><iframe src="http://i.yimg.jp/images/listing/tool/yads/yads-iframe.html?s=26744_15363-152905&amp;t=f&amp;ssl=0&amp;fr_id=yads_1278415-7&amp;xd_support=1&amp;fl_support=21&amp;fr_support=1&amp;enc=UTF-8&amp;pv_ts=1489053189613-4417024&amp;tag_path=http%3a%2f%2fyads.yjtag.yahoo.co.jp%2ftag&amp;page=1&amp;sid=2078709551&amp;u=http%3a%2f%2fheadlines.yahoo.co.jp%2fhl%3fa%3d20170309-35097838-cnetj-sci" style="border:none; clear:both; display:block; margin:auto; overflow:hidden; " allowtransparency="true" id="yads_1278415-7" name="yads_1278415-7" scrolling="no" width="300" height="250" frameborder="0"></iframe></div>
+ </div>
+ <div class="rkgYdn">
+ </div>
+ <div class="tmplNews002-2 rkgYdn">
+ <div class="subMod subRanking fb">
+ <div class="hd">
+ <h3 class="ttl"><a href="http://news.yahoo.co.jp/ranking/access?ty=z&amp;c=c_sci" onmousedown="this.href='http://rdsig.yahoo.co.jp/media/news/zasshi/news/m/accr/a/more/RV=1/RU=aHR0cDovL25ld3MueWFob28uY28uanAvcmFua2luZy9hY2Nlc3M_dHk9eiZjPWNfc2Np;_ylt=A7YWOgEDJsFY.TUA0bAvl.Z7'">雑誌アクセスランキング (IT・科学)
+ </a></h3>
+ </div>
+ <ol class="bd">
+ <li>
+ <a href="http://zasshi.news.yahoo.co.jp/article?a=20170309-00010000-nknatiogeo-sctch" onmousedown="this.href='http://rdsig.yahoo.co.jp/media/news/zasshi/news/m/accr/a/RV=1/RU=aHR0cDovL3phc3NoaS5uZXdzLnlhaG9vLmNvLmpwL2FydGljbGU_YT0yMDE3MDMwOS0wMDAxMDAwMC1ua25hdGlvZ2VvLXNjdGNo;_ylt=A7YWOgEDJsFY.TUAzLAvl.Z7'">
+ <span class="rankNum">1</span>
+ <span class="cap">
+ <span class="thumbnail"><img src="https://amd.c.yimg.jp/im_siggSZupUpIc2KL3I43aGZh7rw---x60-y34-q90/amd/20170309-00010000-nknatiogeo-000-6-view.jpg" alt="" /></span>
+ <span class="ttl"><発覚>巣立ち後も親のすねをかじるペンギン</span> <span class="source">ナショナル ジオグラフィック日本版</span>
+ <span class="date">3/9(木) 7:20</span>
+ </span>
+ </a>
+ </li>
+ <li>
+ <a href="http://zasshi.news.yahoo.co.jp/article?a=20170305-00010000-dime-sci" onmousedown="this.href='http://rdsig.yahoo.co.jp/media/news/zasshi/news/m/accr/a/RV=1/RU=aHR0cDovL3phc3NoaS5uZXdzLnlhaG9vLmNvLmpwL2FydGljbGU_YT0yMDE3MDMwNS0wMDAxMDAwMC1kaW1lLXNjaQ--;_ylt=A7YWOgEDJsFY.TUAzbAvl.Z7'">
+ <span class="rankNum">2</span>
+ <span class="cap">
+ <span class="thumbnail"><img src="https://amd.c.yimg.jp/im_siggdLlvwNn._mN8jQ1BLyUUgQ---x60-y60-q90/amd/20170305-00010000-dime-000-1-view.jpg" alt="" /></span>
+ <span class="ttl">100均で見つけた意外と便利なスマホグッズ大図鑑</span> <span class="source">@DIME</span>
+ <span class="date">3/5(日) 8:10</span>
+ </span>
+ </a>
+ </li>
+ <li>
+ <a href="http://zasshi.news.yahoo.co.jp/article?a=20170307-00010003-wired-sctch" onmousedown="this.href='http://rdsig.yahoo.co.jp/media/news/zasshi/news/m/accr/a/RV=1/RU=aHR0cDovL3phc3NoaS5uZXdzLnlhaG9vLmNvLmpwL2FydGljbGU_YT0yMDE3MDMwNy0wMDAxMDAwMy13aXJlZC1zY3RjaA--;_ylt=A7YWOgEDJsFY.TUAzrAvl.Z7'">
+ <span class="rankNum">3</span>
+ <span class="cap">
+ <span class="thumbnail"><img src="https://amd.c.yimg.jp/im_siggfN8Wv5Th6v9ZQVX5PT70qw---x60-y40-q90/amd/20170307-00010003-wired-000-2-view.jpg" alt="" /></span>
+ <span class="ttl">コロンビアでジカウイルスによる小頭症患者が少ない「恐ろしい理由」</span> <span class="source">WIRED.jp</span>
+ <span class="date">3/7(火) 18:20</span>
+ </span>
+ </a>
+ </li>
+ <li>
+ <a href="http://zasshi.news.yahoo.co.jp/article?a=20170308-00010003-biz_lifeh-sci" onmousedown="this.href='http://rdsig.yahoo.co.jp/media/news/zasshi/news/m/accr/a/RV=1/RU=aHR0cDovL3phc3NoaS5uZXdzLnlhaG9vLmNvLmpwL2FydGljbGU_YT0yMDE3MDMwOC0wMDAxMDAwMy1iaXpfbGlmZWgtc2Np;_ylt=A7YWOgEDJsFY.TUAz7Avl.Z7'">
+ <span class="rankNum">4</span>
+ <span class="cap">
+ <span class="thumbnail"><img src="https://amd.c.yimg.jp/im_siggl0OOhW0N1WPJiUT2SQT9ZQ---x60-y34-q90/amd/20170308-00010003-biz_lifeh-000-1-view.jpg" alt="" /></span>
+ <span class="ttl">パジャマはもういらない。裸で寝るとこんなにもいいことが</span> <span class="source">ライフハッカー[日本版]</span>
+ <span class="date">3/8(水) 13:30</span>
+ </span>
+ </a>
+ </li>
+ <li>
+ <a href="http://zasshi.news.yahoo.co.jp/article?a=20170309-00010000-dime-sci" onmousedown="this.href='http://rdsig.yahoo.co.jp/media/news/zasshi/news/m/accr/a/RV=1/RU=aHR0cDovL3phc3NoaS5uZXdzLnlhaG9vLmNvLmpwL2FydGljbGU_YT0yMDE3MDMwOS0wMDAxMDAwMC1kaW1lLXNjaQ--;_ylt=A7YWOgEDJsFY.TUA0LAvl.Z7'">
+ <span class="rankNum">5</span>
+ <span class="cap">
+ <span class="thumbnail"><img src="https://amd.c.yimg.jp/im_siggUq4yrxVQZTHvlwp5E22ucQ---x60-y42-q90/amd/20170309-00010000-dime-000-1-view.jpg" alt="" /></span>
+ <span class="ttl">キッズケータイより安価に子どもを見守ることができるMeitrackのSIMフリーGPSトラッカー</span> <span class="source">@DIME</span>
+ <span class="date">3/9(木) 7:10</span>
+ </span>
+ </a>
+ </li>
+ </ol>
+ <!-- /.rankingContents -->
+ </div>
+ <script type="text/javascript" language="JavaScript">
+ yads_ad_ds = '54879_45284';
+ yads_bucket_id = miffy_bucket_id;
+ </script>
+ <script type="text/javascript" language="JavaScript" src="http://yads.c.yimg.jp/js/yads.js"></script>
+ <script type="text/javascript" language="JavaScript" src="http://s.yimg.jp/images/listing/tool/yads/uadf/yads_vimps-1.5.0.js?2017030901"></script>
+ <script src="http://yads.yjtag.yahoo.co.jp/tag?s=54879_45284&amp;t=j&amp;ssl=0&amp;fr_id=yads_5616411-8&amp;xd_support=1&amp;fl_support=21&amp;fr_support=1&amp;enc=UTF-8&amp;pv_ts=1489053189613-4417024&amp;page=1&amp;sid=2078709551&amp;u=http%3A%2F%2Fheadlines.yahoo.co.jp%2Fhl%3Fa%3D20170309-35097838-cnetj-sci"></script>
+ <script src="http://im.ov.yahoo.co.jp/tag/?adprodset=54879_45284-57249-61169&amp;vimps_mode=3&amp;enc=UTF-8&amp;pvId=27533e7c3e3321f1d5d5babd3a6060c1&amp;sid=2078709551&amp;u=http%3a%2f%2fheadlines.yahoo.co.jp%2fhl%3fa%3d20170309-35097838-cnetj-sci&amp;yads_ds=54879_45284" type="text/javascript"></script>
+ </div>
+ <!-- SpaceID=2078709551 loc=TUT noad-spid -->
+ <script language="javascript">
+ if (window.yzq_d == null) window.yzq_d = new Object();
+ window.yzq_d['kjR_ALYWOUA-'] = '&amp;U=1279p20p7%2fN%3dkjR_ALYWOUA-%2fC%3d-2%2fD%3dTUT%2fB%3d-2';
+ </script><noscript>&lt;div style="position:absolute;"&gt;&lt;img width=1 height=1 alt="" src="http://b5.yahoo.co.jp/b?P=oI9TLjE4Mi66RLpAorxEdAVuMTE4LgAAAAA2TzUA&amp;T=16mncrita%2fX%3d1489053188%2fE%3d2078709551%2fR%3djp_hdln_te%2fK%3d5%2fV%3d2.1%2fW%3dH%2fY%3djp%2fF%3d2238182345%2fH%3dbWgtbG9naW4tc3JjPSJ5biIgcG9wc2VhcmNoLXNlcnZpY2UtY29kZT0ibndzIiBhZGN2ZXI9Ni44LjE-%2fQ%3d-1%2fS%3d1%2fJ%3d58C12604&amp;U=1279p20p7%2fN%3dkjR_ALYWOUA-%2fC%3d-2%2fD%3dTUT%2fB%3d-2"&gt;&lt;/div&gt;</noscript>
+ <!-- SpaceID=2078709551 loc=TUT2 noad-spid -->
+ <script language="javascript">
+ if (window.yzq_d == null) window.yzq_d = new Object();
+ window.yzq_d['lDR_ALYWOUA-'] = '&amp;U=128dkt9dv%2fN%3dlDR_ALYWOUA-%2fC%3d-2%2fD%3dTUT2%2fB%3d-2';
+ </script><noscript>&lt;div style="position:absolute;"&gt;&lt;img width=1 height=1 alt="" src="http://b5.yahoo.co.jp/b?P=oI9TLjE4Mi66RLpAorxEdAVuMTE4LgAAAAA2TzUA&amp;T=16mihacud%2fX%3d1489053188%2fE%3d2078709551%2fR%3djp_hdln_te%2fK%3d5%2fV%3d2.1%2fW%3dH%2fY%3djp%2fF%3d3386069044%2fH%3dbWgtbG9naW4tc3JjPSJ5biIgcG9wc2VhcmNoLXNlcnZpY2UtY29kZT0ibndzIiBhZGN2ZXI9Ni44LjE-%2fQ%3d-1%2fS%3d1%2fJ%3d58C12604&amp;U=128dkt9dv%2fN%3dlDR_ALYWOUA-%2fC%3d-2%2fD%3dTUT2%2fB%3d-2"&gt;&lt;/div&gt;</noscript>
+
+ <!-- SpaceID=2078709551 loc=RP noad-spid -->
+ <script language="javascript">
+ if (window.yzq_d == null) window.yzq_d = new Object();
+ window.yzq_d['jjR_ALYWOUA-'] = '&amp;U=126bbpl41%2fN%3djjR_ALYWOUA-%2fC%3d-2%2fD%3dRP%2fB%3d-2';
+ </script><noscript>&lt;div style="position:absolute;"&gt;&lt;img width=1 height=1 alt="" src="http://b5.yahoo.co.jp/b?P=oI9TLjE4Mi66RLpAorxEdAVuMTE4LgAAAAA2TzUA&amp;T=16mum6fto%2fX%3d1489053188%2fE%3d2078709551%2fR%3djp_hdln_te%2fK%3d5%2fV%3d2.1%2fW%3dH%2fY%3djp%2fF%3d1472536434%2fH%3dbWgtbG9naW4tc3JjPSJ5biIgcG9wc2VhcmNoLXNlcnZpY2UtY29kZT0ibndzIiBhZGN2ZXI9Ni44LjE-%2fQ%3d-1%2fS%3d1%2fJ%3d58C12604&amp;U=126bbpl41%2fN%3djjR_ALYWOUA-%2fC%3d-2%2fD%3dRP%2fB%3d-2"&gt;&lt;/div&gt;</noscript>
+
+ <script type="text/javascript" language="JavaScript">
+ yads_ad_ds = '57876_31261';
+ yads_bucket_id = miffy_bucket_id;
+ </script>
+ <div class="textCenter marB10">
+ <script type="text/javascript" language="JavaScript" src="http://yads.c.yimg.jp/js/yads.js"></script>
+ <script type="text/javascript" language="JavaScript" src="http://s.yimg.jp/images/listing/tool/yads/uadf/yads_vimps-1.5.0.js?2017030901"></script>
+ <script src="http://yads.yjtag.yahoo.co.jp/tag?s=57876_31261&amp;t=j&amp;ssl=0&amp;fr_id=yads_6973049-9&amp;xd_support=1&amp;fl_support=21&amp;fr_support=1&amp;enc=UTF-8&amp;pv_ts=1489053189613-4417024&amp;page=1&amp;sid=2078709551&amp;u=http%3A%2F%2Fheadlines.yahoo.co.jp%2Fhl%3Fa%3D20170309-35097838-cnetj-sci"></script>
+ <div style="text-align:center;"><iframe src="http://i.yimg.jp/images/listing/tool/yads/yads-iframe.html?s=57876_31261-200664&amp;t=f&amp;ssl=0&amp;fr_id=yads_6973049-9&amp;xd_support=1&amp;fl_support=21&amp;fr_support=1&amp;enc=UTF-8&amp;pv_ts=1489053189613-4417024&amp;tag_path=http%3a%2f%2fyads.yjtag.yahoo.co.jp%2ftag&amp;page=1&amp;sid=2078709551&amp;u=http%3a%2f%2fheadlines.yahoo.co.jp%2fhl%3fa%3d20170309-35097838-cnetj-sci" style="border:none; clear:both; display:block; margin:auto; overflow:hidden; " allowtransparency="true" id="yads_6973049-9" name="yads_6973049-9" scrolling="no" width="300" height="250" frameborder="0"></iframe></div>
+ </div>
+
+ </div>
+ <!--/#sub-->
+ <!--sub end-->
+
+ </div>
+ <!--/#contentsBody-->
+
+ <div id="contentsFooter">
+ <span class="yj-guid"><img src="http://i.yimg.jp/images/clear.gif" alt="本文はここまでです" width="1" height="1" /></span>
+ <span class="yj-skip">
+<a href="#pagetop"><img src="http://i.yimg.jp/images/clear.gif" alt="このページの先頭へ" width="1" height="1" /></a></span>
+
+ <div class="adUltra">
+ <div class="adUltraTitle">
+ <p>お得情報</p>
+ </div>
+ <div class="adUltraBody">
+ <script type="text/javascript" language="JavaScript">
+ yads_ad_ds = '98755_59180';
+ yads_ad_space = '2078709551';
+ </script>
+ <script type="text/javascript" language="JavaScript" src="//yads.c.yimg.jp/js/yads.js"></script>
+ <script type="text/javascript" language="JavaScript" src="http://s.yimg.jp/images/listing/tool/yads/uadf/yads_vimps-1.5.0.js?2017030901"></script>
+ <script src="http://yads.yjtag.yahoo.co.jp/tag?s=98755_59180&amp;t=j&amp;ssl=0&amp;fr_id=yads_6174567-10&amp;xd_support=1&amp;fl_support=21&amp;fr_support=1&amp;enc=UTF-8&amp;pv_ts=1489053189613-4417024&amp;page=1&amp;sid=2078709551&amp;u=http%3A%2F%2Fheadlines.yahoo.co.jp%2Fhl%3Fa%3D20170309-35097838-cnetj-sci"></script>
+ <script src="http://im.ov.yahoo.co.jp/tag/?adprodset=98755_59180-73240-79483&amp;vimps_mode=3&amp;enc=UTF-8&amp;pvId=27533e7c3e3321f1d5d5babd3a6060c1&amp;sid=2078709551&amp;u=http%3a%2f%2fheadlines.yahoo.co.jp%2fhl%3fa%3d20170309-35097838-cnetj-sci&amp;yads_ds=98755_59180" type="text/javascript"></script>
+ <!-- http://ard.yahoo.co.jp/SIG=159v2cob3/M=300973573.301843483.303471518.311556217/D=jp_hdln_te/S=2078709551:ULT/Y=jp/EXP=1489060388/L=oI9TLjE4Mi66RLpAorxEdAVuMTE4LgAAAAA2TzUA/B=lzR_ALYWOUA-/J=1489053188005996/SIG=119s6m82h/A=302195979/R=0/?http://www.yahoo.co.jp/ -->
+ <script language="javascript">
+ if (window.yzq_d == null) window.yzq_d = new Object();
+ window.yzq_d['lzR_ALYWOUA-'] = '&amp;U=13jlvmavl%2fN%3dlzR_ALYWOUA-%2fC%3d300973573.301843483.303471518.311556217%2fD%3dULT%2fB%3d302195979';
+ </script><noscript>&lt;div style="position:absolute;"&gt;&lt;img width=1 height=1 alt="" src="http://b5.yahoo.co.jp/b?P=oI9TLjE4Mi66RLpAorxEdAVuMTE4LgAAAAA2TzUA&amp;T=16mddo9qo%2fX%3d1489053188%2fE%3d2078709551%2fR%3djp_hdln_te%2fK%3d5%2fV%3d2.1%2fW%3dH%2fY%3djp%2fF%3d2379965117%2fH%3dbWgtbG9naW4tc3JjPSJ5biIgcG9wc2VhcmNoLXNlcnZpY2UtY29kZT0ibndzIiBhZGN2ZXI9Ni44LjE-%2fQ%3d-1%2fS%3d1%2fJ%3d58C12604&amp;U=13jlvmavl%2fN%3dlzR_ALYWOUA-%2fC%3d300973573.301843483.303471518.311556217%2fD%3dULT%2fB%3d302195979"&gt;&lt;/div&gt;</noscript>
+ <!--
+ -->
+ <div style="display:-moz-inline-box;padding:10px 3px 10px 13px;display:inline-block;margin:0px;* height:1%;overflow:hidden;vertical-align:top;/display:inline;/zoom:1;">
+ <a style="width:290px;cursor:pointer;color:#0000de;background-color:#fff;" href="http://ard.yahoo.co.jp/SIG=159lgniqh/M=300972296.301842118.303470583.311556217/D=jp_hdln_te/S=2078709551:ULT/Y=jp/EXP=1489060388/L=oI9TLjE4Mi66RLpAorxEdAVuMTE4LgAAAAA2TzUA/B=mTR_ALYWOUA-/J=1489053188005996/SIG=11660mlf9/A=302194535/R=0/*http://goo.gl/Oa5u7E" target="_top" onmouseout="this.style.backgroundColor='#fff';this.getElementsByTagName('span')[0].style.color='#0000de';" onmouseover="this.style.backgroundColor='#fff';this.getElementsByTagName('span')[0].style.color='#CC3434';"><img style="vertical-align:bottom;border:0px none;float:left;margin-right:10px; padding:0;" src="http://ai.yimg.jp/bdv/prem/o0grbcmnhjfvvatvfuka/_m_kp6femfykraj7gvkd/jlaql0uik61hkgwm6h00/t_v_d_c_x63qvaxk9mhj-a.jpg" width="50" height="50" /><span style="font-size:12px;float:left;margin:0; padding:0;line-height:1.4em;font-weight:normal;text-decoration:underline;width:236px; word-wrap:normal;word-break:break-all;height:auto;letter-spacing:0.04em;">こどもちゃれんじ4月号好評受付中!<br />しまじろうと一緒に、できた!<br />今ならお得な特典付き!詳しくはこちら</span></a>
+ </div>
+ <script language="javascript">
+ if (window.yzq_d == null) window.yzq_d = new Object();
+ window.yzq_d['mTR_ALYWOUA-'] = '&amp;U=13jqjbnu2%2fN%3dmTR_ALYWOUA-%2fC%3d300972296.301842118.303470583.311556217%2fD%3dULT%2fB%3d302194535';
+ </script><noscript>&lt;div style="position:absolute;"&gt;&lt;img width=1 height=1 alt="" src="http://b5.yahoo.co.jp/b?P=oI9TLjE4Mi66RLpAorxEdAVuMTE4LgAAAAA2TzUA&amp;T=16mfuird0%2fX%3d1489053188%2fE%3d2078709551%2fR%3djp_hdln_te%2fK%3d5%2fV%3d2.1%2fW%3dH%2fY%3djp%2fF%3d2093354114%2fH%3dbWgtbG9naW4tc3JjPSJ5biIgcG9wc2VhcmNoLXNlcnZpY2UtY29kZT0ibndzIiBhZGN2ZXI9Ni44LjE-%2fQ%3d-1%2fS%3d1%2fJ%3d58C12604&amp;U=13jqjbnu2%2fN%3dmTR_ALYWOUA-%2fC%3d300972296.301842118.303470583.311556217%2fD%3dULT%2fB%3d302194535"&gt;&lt;/div&gt;</noscript>
+ <!--
+ -->
+ <div style="display:-moz-inline-box;padding:10px 3px 10px 13px;display:inline-block;margin:0px;* height:1%;overflow:hidden;vertical-align:top;/display:inline;/zoom:1;">
+ <a style="width:290px;cursor:pointer;color:#0000de;background-color:#fff;" href="http://ard.yahoo.co.jp/SIG=159pd95bh/M=300969761.301839297.303470714.311556217/D=jp_hdln_te/S=2078709551:ULT/Y=jp/EXP=1489060388/L=oI9TLjE4Mi66RLpAorxEdAVuMTE4LgAAAAA2TzUA/B=mzR_ALYWOUA-/J=1489053188005996/SIG=12q5vguu8/A=302194748/R=0/*https://premono.yahoo.co.jp/campaign/present/97856?sc_e=prbx_pu2_cp97856" target="_top" onmouseout="this.style.backgroundColor='#fff';this.getElementsByTagName('span')[0].style.color='#0000de';" onmouseover="this.style.backgroundColor='#fff';this.getElementsByTagName('span')[0].style.color='#CC3434';"><img style="vertical-align:bottom;border:0px none;float:left;margin-right:10px; padding:0;" src="http://ai.yimg.jp/bdv/prem/fv25fgum01bhiwxej7r4/qrchxzbkg_s9mppkrxuy/w_lhztkfqbrhrmrv3oeb/_ah8dfpypn09sftkh8wq-a.jpg" width="50" height="50" /><span style="font-size:12px;float:left;margin:0; padding:0;line-height:1.4em;font-weight:normal;text-decoration:underline;width:236px; word-wrap:normal;word-break:break-all;height:auto;letter-spacing:0.04em;">春キャンペーン♪<br />カネボウメディアのアイブロウが<br />抽選で20,000様に当たる!</span></a>
+ </div>
+ <script language="javascript">
+ if (window.yzq_d == null) window.yzq_d = new Object();
+ window.yzq_d['mzR_ALYWOUA-'] = '&amp;U=13j47u63b%2fN%3dmzR_ALYWOUA-%2fC%3d300969761.301839297.303470714.311556217%2fD%3dULT%2fB%3d302194748';
+ </script><noscript>&lt;div style="position:absolute;"&gt;&lt;img width=1 height=1 alt="" src="http://b5.yahoo.co.jp/b?P=oI9TLjE4Mi66RLpAorxEdAVuMTE4LgAAAAA2TzUA&amp;T=16m0cr0nb%2fX%3d1489053188%2fE%3d2078709551%2fR%3djp_hdln_te%2fK%3d5%2fV%3d2.1%2fW%3dH%2fY%3djp%2fF%3d1558811576%2fH%3dbWgtbG9naW4tc3JjPSJ5biIgcG9wc2VhcmNoLXNlcnZpY2UtY29kZT0ibndzIiBhZGN2ZXI9Ni44LjE-%2fQ%3d-1%2fS%3d1%2fJ%3d58C12604&amp;U=13j47u63b%2fN%3dmzR_ALYWOUA-%2fC%3d300969761.301839297.303470714.311556217%2fD%3dULT%2fB%3d302194748"&gt;&lt;/div&gt;</noscript>
+ <!--
+ -->
+ <div style="display:-moz-inline-box;padding:10px 3px 10px 13px;display:inline-block;margin:0px;* height:1%;overflow:hidden;vertical-align:top;/display:inline;/zoom:1;">
+ <a style="width:290px;cursor:pointer;color:#0000de;background-color:#fff;" href="http://ard.yahoo.co.jp/SIG=159or4vdk/M=300972289.301842111.303470607.311556217/D=jp_hdln_te/S=2078709551:ULT/Y=jp/EXP=1489060388/L=oI9TLjE4Mi66RLpAorxEdAVuMTE4LgAAAAA2TzUA/B=nTR_ALYWOUA-/J=1489053188005996/SIG=116d6p8u0/A=302194580/R=0/*http://goo.gl/GLzPw8" target="_top" onmouseout="this.style.backgroundColor='#fff';this.getElementsByTagName('span')[0].style.color='#0000de';" onmouseover="this.style.backgroundColor='#fff';this.getElementsByTagName('span')[0].style.color='#CC3434';"><img style="vertical-align:bottom;border:0px none;float:left;margin-right:10px; padding:0;" src="http://ai.yimg.jp/bdv/prem/o0grbcmnhjfvvatvfuka/by2aurgo2fxt6nbb0sls/kxw5nzeufxvem4keo2_h/0ucd21hctfva8tvapymg-a.jpg" width="50" height="50" /><span style="font-size:12px;float:left;margin:0; padding:0;line-height:1.4em;font-weight:normal;text-decoration:underline;width:236px; word-wrap:normal;word-break:break-all;height:auto;letter-spacing:0.04em;">今なら、4月開講号受付中<br />1回15分勉強法で部活と両立しながら<br />志望高校合格を勝ち取れる!</span></a>
+ </div>
+ <script language="javascript">
+ if (window.yzq_d == null) window.yzq_d = new Object();
+ window.yzq_d['nTR_ALYWOUA-'] = '&amp;U=13jvq9m42%2fN%3dnTR_ALYWOUA-%2fC%3d300972289.301842111.303470607.311556217%2fD%3dULT%2fB%3d302194580';
+ </script><noscript>&lt;div style="position:absolute;"&gt;&lt;img width=1 height=1 alt="" src="http://b5.yahoo.co.jp/b?P=oI9TLjE4Mi66RLpAorxEdAVuMTE4LgAAAAA2TzUA&amp;T=16mm95o82%2fX%3d1489053188%2fE%3d2078709551%2fR%3djp_hdln_te%2fK%3d5%2fV%3d2.1%2fW%3dH%2fY%3djp%2fF%3d4108300775%2fH%3dbWgtbG9naW4tc3JjPSJ5biIgcG9wc2VhcmNoLXNlcnZpY2UtY29kZT0ibndzIiBhZGN2ZXI9Ni44LjE-%2fQ%3d-1%2fS%3d1%2fJ%3d58C12604&amp;U=13jvq9m42%2fN%3dnTR_ALYWOUA-%2fC%3d300972289.301842111.303470607.311556217%2fD%3dULT%2fB%3d302194580"&gt;&lt;/div&gt;</noscript>
+ <!--
+ -->
+ <div style="display:-moz-inline-box;padding:10px 3px 10px 13px;display:inline-block;margin:0px;* height:1%;overflow:hidden;vertical-align:top;/display:inline;/zoom:1;">
+ <a style="width:290px;cursor:pointer;color:#0000de;background-color:#fff;" href="http://ard.yahoo.co.jp/SIG=1593theu0/M=300969909.301839466.303470972.311556217/D=jp_hdln_te/S=2078709551:ULT/Y=jp/EXP=1489060388/L=oI9TLjE4Mi66RLpAorxEdAVuMTE4LgAAAAA2TzUA/B=njR_ALYWOUA-/J=1489053188005996/SIG=12q4qnudc/A=302195168/R=0/*https://premono.yahoo.co.jp/campaign/present/97855?sc_e=prbx_pu3_cp97855" target="_top" onmouseout="this.style.backgroundColor='#fff';this.getElementsByTagName('span')[0].style.color='#0000de';" onmouseover="this.style.backgroundColor='#fff';this.getElementsByTagName('span')[0].style.color='#CC3434';"><img style="vertical-align:bottom;border:0px none;float:left;margin-right:10px; padding:0;" src="http://ai.yimg.jp/bdv/prem/sbo5zc31y9aqlwez1yd6/dkvkptx5d6tai1jtfb3w/0oogo_athgjkcl5rarou/2aqtrqb5s31kytyo5gxg-a.jpg" width="50" height="50" /><span style="font-size:12px;float:left;margin:0; padding:0;line-height:1.4em;font-weight:normal;text-decoration:underline;width:236px; word-wrap:normal;word-break:break-all;height:auto;letter-spacing:0.04em;">洗って乾かすだけで<br />「朝スタイルさっと整う」<br />エッセンシャル新製品プレゼント!</span></a>
+ </div>
+ <script language="javascript">
+ if (window.yzq_d == null) window.yzq_d = new Object();
+ window.yzq_d['njR_ALYWOUA-'] = '&amp;U=13jfa6tr4%2fN%3dnjR_ALYWOUA-%2fC%3d300969909.301839466.303470972.311556217%2fD%3dULT%2fB%3d302195168';
+ </script><noscript>&lt;div style="position:absolute;"&gt;&lt;img width=1 height=1 alt="" src="http://b5.yahoo.co.jp/b?P=oI9TLjE4Mi66RLpAorxEdAVuMTE4LgAAAAA2TzUA&amp;T=16ltp1dsk%2fX%3d1489053188%2fE%3d2078709551%2fR%3djp_hdln_te%2fK%3d5%2fV%3d2.1%2fW%3dH%2fY%3djp%2fF%3d683870070%2fH%3dbWgtbG9naW4tc3JjPSJ5biIgcG9wc2VhcmNoLXNlcnZpY2UtY29kZT0ibndzIiBhZGN2ZXI9Ni44LjE-%2fQ%3d-1%2fS%3d1%2fJ%3d58C12604&amp;U=13jfa6tr4%2fN%3dnjR_ALYWOUA-%2fC%3d300969909.301839466.303470972.311556217%2fD%3dULT%2fB%3d302195168"&gt;&lt;/div&gt;</noscript>
+ <!--
+ -->
+ <div style="display:-moz-inline-box;padding:10px 3px 10px 13px;display:inline-block;margin:0px;* height:1%;overflow:hidden;vertical-align:top;/display:inline;/zoom:1;">
+ <a style="width:290px;cursor:pointer;color:#0000de;background-color:#fff;" href="http://ard.yahoo.co.jp/SIG=159seh7s1/M=300970419.301839996.303467877.311556217/D=jp_hdln_te/S=2078709551:ULT/Y=jp/EXP=1489060388/L=oI9TLjE4Mi66RLpAorxEdAVuMTE4LgAAAAA2TzUA/B=nzR_ALYWOUA-/J=1489053188005996/SIG=1408c4mrd/A=302189461/R=0/*http://rdsig.yahoo.co.jp/yjcard/pc/ultra/promo/evt=126256/RV=1/RU=aHR0cDovL2NhcmQueWFob28uY28uanAvY2FtcGFpZ24v" target="_top" onmouseout="this.style.backgroundColor='#fff';this.getElementsByTagName('span')[0].style.color='#0000de';" onmouseover="this.style.backgroundColor='#fff';this.getElementsByTagName('span')[0].style.color='#CC3434';"><img style="vertical-align:bottom;border:0px none;float:left;margin-right:10px; padding:0;" src="http://ai.yimg.jp/bdv/prem/zlerzdeibubkujxahahd/mtocxzz8l7_5ojmtrh5v/ionabxobzx0vc9o241lq/iropkayjpfkirbmjapca-a.png" width="50" height="50" /><span style="font-size:12px;float:left;margin:0; padding:0;line-height:1.4em;font-weight:normal;text-decoration:underline;width:236px; word-wrap:normal;word-break:break-all;height:auto;letter-spacing:0.04em;">Tポイントをためるなら、この1枚!<br />「年会費無料」でポイント「ザクザク」<br />Yahoo! JAPANカード≪詳しくはコチラ≫</span></a>
+ </div>
+ <script language="javascript">
+ if (window.yzq_d == null) window.yzq_d = new Object();
+ window.yzq_d['nzR_ALYWOUA-'] = '&amp;U=13jqj2n40%2fN%3dnzR_ALYWOUA-%2fC%3d300970419.301839996.303467877.311556217%2fD%3dULT%2fB%3d302189461';
+ </script><noscript>&lt;div style="position:absolute;"&gt;&lt;img width=1 height=1 alt="" src="http://b5.yahoo.co.jp/b?P=oI9TLjE4Mi66RLpAorxEdAVuMTE4LgAAAAA2TzUA&amp;T=16mls9fbi%2fX%3d1489053188%2fE%3d2078709551%2fR%3djp_hdln_te%2fK%3d5%2fV%3d2.1%2fW%3dH%2fY%3djp%2fF%3d2273315778%2fH%3dbWgtbG9naW4tc3JjPSJ5biIgcG9wc2VhcmNoLXNlcnZpY2UtY29kZT0ibndzIiBhZGN2ZXI9Ni44LjE-%2fQ%3d-1%2fS%3d1%2fJ%3d58C12604&amp;U=13jqj2n40%2fN%3dnzR_ALYWOUA-%2fC%3d300970419.301839996.303467877.311556217%2fD%3dULT%2fB%3d302189461"&gt;&lt;/div&gt;</noscript>
+ <!--
+ -->
+ <div style="display:-moz-inline-box;padding:10px 3px 10px 13px;display:inline-block;margin:0px;* height:1%;overflow:hidden;vertical-align:top;/display:inline;/zoom:1;">
+ <a style="width:290px;cursor:pointer;color:#0000de;background-color:#fff;" href="http://ard.yahoo.co.jp/SIG=159f33rja/M=300969756.301839292.303467310.311556217/D=jp_hdln_te/S=2078709551:ULT/Y=jp/EXP=1489060388/L=oI9TLjE4Mi66RLpAorxEdAVuMTE4LgAAAAA2TzUA/B=oTR_ALYWOUA-/J=1489053188005996/SIG=11jjkk011/A=302188660/R=0/*http://v6.advg.jp/adpv6/r/85A_1EH" target="_top" onmouseout="this.style.backgroundColor='#fff';this.getElementsByTagName('span')[0].style.color='#0000de';" onmouseover="this.style.backgroundColor='#fff';this.getElementsByTagName('span')[0].style.color='#CC3434';"><img style="vertical-align:bottom;border:0px none;float:left;margin-right:10px; padding:0;" src="http://ai.yimg.jp/bdv/prem/mpbdgiqzphvhq318nyhn/yqoc8fmgoku4dbvw8faq/pxw8vageklqgvfuyfiv5/aze24s5dtwd0jxlzemkr-a.gif" width="50" height="50" /><span style="font-size:12px;float:left;margin:0; padding:0;line-height:1.4em;font-weight:normal;text-decoration:underline;width:236px; word-wrap:normal;word-break:break-all;height:auto;letter-spacing:0.04em;">ソフトバンクの学割キャンペーン<br />通話もデータもコミコミ税抜2,980円~<br />最新のiPhoneも対象!</span></a>
+ </div>
+ <script language="javascript">
+ if (window.yzq_d == null) window.yzq_d = new Object();
+ window.yzq_d['oTR_ALYWOUA-'] = '&amp;U=13jpk7rbe%2fN%3doTR_ALYWOUA-%2fC%3d300969756.301839292.303467310.311556217%2fD%3dULT%2fB%3d302188660';
+ </script><noscript>&lt;div style="position:absolute;"&gt;&lt;img width=1 height=1 alt="" src="http://b5.yahoo.co.jp/b?P=oI9TLjE4Mi66RLpAorxEdAVuMTE4LgAAAAA2TzUA&amp;T=16mhu9bhi%2fX%3d1489053188%2fE%3d2078709551%2fR%3djp_hdln_te%2fK%3d5%2fV%3d2.1%2fW%3dH%2fY%3djp%2fF%3d1404667530%2fH%3dbWgtbG9naW4tc3JjPSJ5biIgcG9wc2VhcmNoLXNlcnZpY2UtY29kZT0ibndzIiBhZGN2ZXI9Ni44LjE-%2fQ%3d-1%2fS%3d1%2fJ%3d58C12604&amp;U=13jpk7rbe%2fN%3doTR_ALYWOUA-%2fC%3d300969756.301839292.303467310.311556217%2fD%3dULT%2fB%3d302188660"&gt;&lt;/div&gt;</noscript>
+ <!--
+ -->
+ <div style="display:-moz-inline-box;padding:10px 3px 10px 13px;display:inline-block;margin:0px;* height:1%;overflow:hidden;vertical-align:top;/display:inline;/zoom:1;">
+ <a style="width:290px;cursor:pointer;color:#0000de;background-color:#fff;" href="http://ard.yahoo.co.jp/SIG=159ojlham/M=300970416.301839994.303469960.311556217/D=jp_hdln_te/S=2078709551:ULT/Y=jp/EXP=1489060388/L=oI9TLjE4Mi66RLpAorxEdAVuMTE4LgAAAAA2TzUA/B=ojR_ALYWOUA-/J=1489053188005996/SIG=125g6hetg/A=302193516/R=0/*http://tokupure.jp/lp/shops.php?sc_e=box_pc_fujiya2" target="_top" onmouseout="this.style.backgroundColor='#fff';this.getElementsByTagName('span')[0].style.color='#0000de';" onmouseover="this.style.backgroundColor='#fff';this.getElementsByTagName('span')[0].style.color='#CC3434';"><img style="vertical-align:bottom;border:0px none;float:left;margin-right:10px; padding:0;" src="http://ai.yimg.jp/bdv/prem/zwjevjrlvrqj8usn_nxb/mtocxzz8l7_5ojmtrh5v/awe9tqfk2zc8xynszxex/dfcxnak_mugb9xugd7zg-a.jpg" width="50" height="50" /><span style="font-size:12px;float:left;margin:0; padding:0;line-height:1.4em;font-weight:normal;text-decoration:underline;width:236px; word-wrap:normal;word-break:break-all;height:auto;letter-spacing:0.04em;">期間限定100ポイント進呈中!<br />不二家洋菓子店、各種Whitedayギフトを<br />ご用意しております<トクプレbyGMO></span></a>
+ </div>
+ <script language="javascript">
+ if (window.yzq_d == null) window.yzq_d = new Object();
+ window.yzq_d['ojR_ALYWOUA-'] = '&amp;U=13jcqe9v7%2fN%3dojR_ALYWOUA-%2fC%3d300970416.301839994.303469960.311556217%2fD%3dULT%2fB%3d302193516';
+ </script><noscript>&lt;div style="position:absolute;"&gt;&lt;img width=1 height=1 alt="" src="http://b5.yahoo.co.jp/b?P=oI9TLjE4Mi66RLpAorxEdAVuMTE4LgAAAAA2TzUA&amp;T=16lh53jj1%2fX%3d1489053188%2fE%3d2078709551%2fR%3djp_hdln_te%2fK%3d5%2fV%3d2.1%2fW%3dH%2fY%3djp%2fF%3d719638003%2fH%3dbWgtbG9naW4tc3JjPSJ5biIgcG9wc2VhcmNoLXNlcnZpY2UtY29kZT0ibndzIiBhZGN2ZXI9Ni44LjE-%2fQ%3d-1%2fS%3d1%2fJ%3d58C12604&amp;U=13jcqe9v7%2fN%3dojR_ALYWOUA-%2fC%3d300970416.301839994.303469960.311556217%2fD%3dULT%2fB%3d302193516"&gt;&lt;/div&gt;</noscript>
+ <!--
+ -->
+ <div style="display:-moz-inline-box;padding:10px 3px 10px 13px;display:inline-block;margin:0px;* height:1%;overflow:hidden;vertical-align:top;/display:inline;/zoom:1;">
+ <a style="width:290px;cursor:pointer;color:#0000de;background-color:#fff;" href="http://ard.yahoo.co.jp/SIG=159klbi92/M=300971351.301841071.303470973.311556217/D=jp_hdln_te/S=2078709551:ULT/Y=jp/EXP=1489060388/L=oI9TLjE4Mi66RLpAorxEdAVuMTE4LgAAAAA2TzUA/B=ozR_ALYWOUA-/J=1489053188005996/SIG=12ruj37lh/A=302195172/R=0/*https://sbg.jp/c/special/newlife-cp?utm_source=yahoo&amp;utm_campaign=newlife" target="_top" onmouseout="this.style.backgroundColor='#fff';this.getElementsByTagName('span')[0].style.color='#0000de';" onmouseover="this.style.backgroundColor='#fff';this.getElementsByTagName('span')[0].style.color='#CC3434';"><img style="vertical-align:bottom;border:0px none;float:left;margin-right:10px; padding:0;" src="http://ai.yimg.jp/bdv/prem/irue5tfmr3n0vts6doib/zmjtq43_pxt80n19qgsf/kdeplcsyxwaa4afwzusa/n_x9uxtgiyb3ucjxisxe-a.jpg" width="50" height="50" /><span style="font-size:12px;float:left;margin:0; padding:0;line-height:1.4em;font-weight:normal;text-decoration:underline;width:236px; word-wrap:normal;word-break:break-all;height:auto;letter-spacing:0.04em;">メールLINEで贈れる「ポチッとギフト」<br />今ならケンタッキーのチキンが当たる<br />キャンペーン実施中!</span></a>
+ </div>
+ <script language="javascript">
+ if (window.yzq_d == null) window.yzq_d = new Object();
+ window.yzq_d['ozR_ALYWOUA-'] = '&amp;U=13jkls71h%2fN%3dozR_ALYWOUA-%2fC%3d300971351.301841071.303470973.311556217%2fD%3dULT%2fB%3d302195172';
+ </script><noscript>&lt;div style="position:absolute;"&gt;&lt;img width=1 height=1 alt="" src="http://b5.yahoo.co.jp/b?P=oI9TLjE4Mi66RLpAorxEdAVuMTE4LgAAAAA2TzUA&amp;T=16m7daf09%2fX%3d1489053188%2fE%3d2078709551%2fR%3djp_hdln_te%2fK%3d5%2fV%3d2.1%2fW%3dH%2fY%3djp%2fF%3d3734567915%2fH%3dbWgtbG9naW4tc3JjPSJ5biIgcG9wc2VhcmNoLXNlcnZpY2UtY29kZT0ibndzIiBhZGN2ZXI9Ni44LjE-%2fQ%3d-1%2fS%3d1%2fJ%3d58C12604&amp;U=13jkls71h%2fN%3dozR_ALYWOUA-%2fC%3d300971351.301841071.303470973.311556217%2fD%3dULT%2fB%3d302195172"&gt;&lt;/div&gt;</noscript>
+ <p style="text-align:right;line-height:1;clear:both;padding:5px 15px 15px 0px;margin:0px;">
+ <span style="display:inline-block;margin-left:5px;minheight:12px;padding-left:16px;">
+<a href="http://s.sample.yahoo.co.jp/" target="new" style="font-size:14px;color:#584325;">その他のキャンペーン</a>
+</span>
+ </p>
+ </div>
+ </div>
+
+ <div id="cfInner">
+ <div class="cfNavColumn">
+ <ul>
+ <li>
+ <a href="http://promo.news.yahoo.co.jp/app/yjnews/" onmousedown="this.href='http://rdsig.yahoo.co.jp/media/news/app/promo/pc_news/bigfooter/RV=1/RU=aHR0cDovL3Byb21vLm5ld3MueWFob28uY28uanAvYXBwL3lqbmV3cy8-;_ylt=A7YWOgEDJsFY.TUA1rAvl.Z7'" rel="nofollow">
+ <div class="iconAPP"><span>アプリ</span></div>
+ <p><em>アプリ</em><span>データ先読みで、電車でもサクサク</span></p>
+ </a>
+ </li>
+ <li>
+ <a href="http://www.facebook.com/yjnews" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL3d3dy5mYWNlYm9vay5jb20veWpuZXdz/RS=^ADALWjY5vTqtCTI.muXBkioXRjWX9Y-;_ylt=A7YWOgEDJsFY.TUA17Avl.Z7'" rel="nofollow">
+ <div class="iconFB"><span>Facebook</span></div>
+ <p><em>Facebook</em><span>編集部による厳選記事を毎日配信</span></p>
+ </a>
+ </li>
+ <li>
+ <a href="https://twitter.com/YahooNewsTopics" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cHM6Ly90d2l0dGVyLmNvbS9ZYWhvb05ld3NUb3BpY3M-/RS=^ADAidTDG6H4cen37B0nve0AI4o5XKA-;_ylt=A7YWOgEDJsFY.TUA2LAvl.Z7'" rel="nofollow">
+ <div class="iconTW"><span>Twitter</span></div>
+ <p><em>Twitter</em><span>リアルタイムでニュースを配信</span></p>
+ </a>
+ </li>
+ <li>
+ <a href="http://news.yahoo.co.jp/staffblog/" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL25ld3MueWFob28uY28uanAvc3RhZmZibG9nLw--/RS=^ADA.sYui3bWm9C94mZZHYo67ojeE0w-;_ylt=A7YWOgEDJsFY.TUA2bAvl.Z7'">
+ <div class="iconSB"><span>スタッフブログ</span></div>
+ <p><em>スタッフブログ</em><span>Yahoo!ニュースの裏側をご紹介</span></p>
+ </a>
+ </li>
+ </ul>
+ </div>
+ <!-- /.cfNavColumn -->
+ <div class="cfNavList">
+ <ul>
+ <li><a href="http://news.yahoo.co.jp" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL25ld3MueWFob28uY28uanA-/RS=^ADAdTdnzilw2wJNN2bs5pl037o02Ro-;_ylt=A7YWOgEDJsFY.TUA27Avl.Z7'">トップ</a></li>
+ <li><a href="http://news.yahoo.co.jp/flash" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL25ld3MueWFob28uY28uanAvZmxhc2g-/RS=^ADAdG5WQ6iawsAaeWXgMXIhpeXQ1qE-;_ylt=A7YWOgEDJsFY.TUA3LAvl.Z7'">速報</a></li>
+ <li><a href="http://news.yahoo.co.jp/photo" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL25ld3MueWFob28uY28uanAvcGhvdG8-/RS=^ADAPpKeZY_cEO3TJ8aZfR.m0MbjuN4-;_ylt=A7YWOgEDJsFY.TUA3bAvl.Z7'">写真</a></li>
+ <li><a href="http://headlines.yahoo.co.jp/videonews/" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL2hlYWRsaW5lcy55YWhvby5jby5qcC92aWRlb25ld3Mv/RS=^ADA8kkojVYRbvCni40MAO6sw5BDlfg-;_ylt=A7YWOgEDJsFY.TUA3rAvl.Z7'">映像</a></li>
+ <li><a href="http://news.yahoo.co.jp/zasshi" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL25ld3MueWFob28uY28uanAvemFzc2hp/RS=^ADA3W5hJfcSA0WHl90pXcthYiykh3M-;_ylt=A7YWOgEDJsFY.TUA37Avl.Z7'">雑誌</a></li>
+ <li><a href="http://bylines.news.yahoo.co.jp/" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL2J5bGluZXMubmV3cy55YWhvby5jby5qcC8-/RS=^ADAQzNqpa02Lm180rVv3DibuXD5J3g-;_ylt=A7YWOgEDJsFY.TUA4LAvl.Z7'">個人</a></li>
+ <li><a href="http://news.yahoo.co.jp/biz" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL25ld3MueWFob28uY28uanAvYml6/RS=^ADAiYPdBYDdyhIqj7B_tX2RNHkeYlc-;_ylt=A7YWOgEDJsFY.TUA4bAvl.Z7'">ビジネス</a></li>
+ <li><a href="http://news.yahoo.co.jp/feature" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL25ld3MueWFob28uY28uanAvZmVhdHVyZQ--/RS=^ADAQPCFE_SyIYw9O4Z8hnk4yhJ8eLQ-;_ylt=A7YWOgEDJsFY.TUA4rAvl.Z7'">特集</a></li>
+ <li><a href="http://polls.dailynews.yahoo.co.jp/" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL3BvbGxzLmRhaWx5bmV3cy55YWhvby5jby5qcC8-/RS=^ADAAdTKiyrY5YNeCjVbz1gJ9n6jJWk-;_ylt=A7YWOgEDJsFY.TUA47Avl.Z7'">意識調査</a></li>
+ <li class="last"><a href="http://news.yahoo.co.jp/ranking" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL25ld3MueWFob28uY28uanAvcmFua2luZw--/RS=^ADATNs2bG1S_AG0Ua1H0X_zS88WL1w-;_ylt=A7YWOgEDJsFY.TUA5LAvl.Z7'">ランキング</a></li>
+ </ul>
+ </div>
+ <!-- /.cfNavList -->
+ <div class="cfSubNavList">
+ <dl class="subNavL">
+ <dt>ニュースカテゴリ:</dt>
+ <dd><a href="http://news.yahoo.co.jp/hl?c=dom" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL25ld3MueWFob28uY28uanAvaGw_Yz1kb20-/RS=^ADA1u5Nmvq.3DDgFXRTi0p7BSWHo1I-;_ylt=A7YWOgEDJsFY.TUA5bAvl.Z7'">国内</a></dd>
+ <dd><a href="http://news.yahoo.co.jp/hl?c=c_int" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL25ld3MueWFob28uY28uanAvaGw_Yz1jX2ludA--/RS=^ADALVv.75fe0TvTSBHVhdlSBPMUtq0-;_ylt=A7YWOgEDJsFY.TUA5rAvl.Z7'">国際</a></dd>
+ <dd><a href="http://news.yahoo.co.jp/hl?c=bus" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL25ld3MueWFob28uY28uanAvaGw_Yz1idXM-/RS=^ADA7_oWCL9uOudrCCPsW0Ls4r08aLA-;_ylt=A7YWOgEDJsFY.TUA57Avl.Z7'">経済</a></dd>
+ <dd><a href="http://news.yahoo.co.jp/hl?c=c_ent" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL25ld3MueWFob28uY28uanAvaGw_Yz1jX2VudA--/RS=^ADAZMtoRPnlIwsjRGCaBLjDdqU.pxA-;_ylt=A7YWOgEDJsFY.TUA6LAvl.Z7'">エンタメ</a></dd>
+ <dd><a href="http://news.yahoo.co.jp/hl?c=c_spo" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL25ld3MueWFob28uY28uanAvaGw_Yz1jX3Nwbw--/RS=^ADA52FkJ2wQTZa4ZNqEcyKMuEnwT7g-;_ylt=A7YWOgEDJsFY.TUA6bAvl.Z7'">スポーツ</a></dd>
+ <dd><a href="http://news.yahoo.co.jp/hl?c=c_sci" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL25ld3MueWFob28uY28uanAvaGw_Yz1jX3NjaQ--/RS=^ADAM.YMbqwznnTFQVDu3RF3CWKmRKA-;_ylt=A7YWOgEDJsFY.TUA6rAvl.Z7'">IT・科学</a></dd>
+ <dd><a href="http://news.yahoo.co.jp/hl?c=c_life" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL25ld3MueWFob28uY28uanAvaGw_Yz1jX2xpZmU-/RS=^ADAYKXfIUk4UQ._Ts0FjXXZWJpu44E-;_ylt=A7YWOgEDJsFY.TUA67Avl.Z7'">ライフ</a></dd>
+ <dd><a href="http://news.yahoo.co.jp/hl?c=loc" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL25ld3MueWFob28uY28uanAvaGw_Yz1sb2M-/RS=^ADAwO72159aEuzvU3tuaKCCPVc9yyM-;_ylt=A7YWOgEDJsFY.TUA7LAvl.Z7'">地域</a></dd>
+ </dl>
+ <dl class="subNavR">
+ <dt>その他:</dt>
+ <dd><a href="http://news.yahoo.co.jp/theme/" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL25ld3MueWFob28uY28uanAvdGhlbWUv/RS=^ADAIY34aNH_GUzkyn.H7177DoV3n6I-;_ylt=A7YWOgEDJsFY.TUA7bAvl.Z7'">テーマを探す</a></dd>
+ <dd><a href="http://headlines.yahoo.co.jp/rss/list" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL2hlYWRsaW5lcy55YWhvby5jby5qcC9yc3MvbGlzdA--/RS=^ADA881WevR4Sts.N9JE96KOol3YIz4-;_ylt=A7YWOgEDJsFY.TUA2rAvl.Z7'">RSS</a></dd>
+ <dd><a href="http://headlines.yahoo.co.jp/docs/copyright.html" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL2hlYWRsaW5lcy55YWhvby5jby5qcC9kb2NzL2NvcHlyaWdodC5odG1s/RS=^ADATePnND5mTUinUdA7YfdCsN8IIxU-;_ylt=A7YWOgEDJsFY.TUA7rAvl.Z7'">ニュース提供社</a></dd>
+ <dd><a href="http://gsearch.news.yahoo.co.jp/gs?ty=g" onmousedown="this.href='http://rdsig.yahoo.co.jp/RV=1/RE=1490262788/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cDovL2dzZWFyY2gubmV3cy55YWhvby5jby5qcC9ncz90eT1n/RS=^ADAgYmWTWmYleqT.74eKPKA2ZiIraA-;_ylt=A7YWOgEDJsFY.TUA77Avl.Z7'">新聞記事横断検索</a></dd>
+ </dl>
+ </div>
+ <!-- /.cfSubNavList -->
+ </div>
+ <!-- /#cfWrap -->
+
+ </div>
+ <!--/#contentsFooter-->
+
+ </div>
+ <!--/#contents-->
+ <!--contents end-->
+
+ <!--<hr class="separation">-->
+
+ <!--footer start-->
+ <div id="footer">
+
+ <style type="text/css">
+ #uftMain,
+ #uftMain * {
+ float: none;
+ clear: none;
+ margin: 0;
+ padding: 0;
+ border: 0 solid;
+ border-radius: 0;
+ font-size: 100%;
+ font-weight: normal;
+ font-style: normal;
+ text-indent: 0;
+ letter-spacing: 0;
+ word-spacing: 0;
+ text-transform: none;
+ vertical-align: baseline;
+ }
+
+ #uftMain div {
+ background-image: url(https://s.yimg.jp/yui/jp/uft/2.0.1/img/uftChnk.png);
+ background-repeat: no-repeat;
+ }
+
+ @media only screen and (-webkit-min-device-pixel-ratio:1.1),
+ only screen and (min-device-pixel-ratio:1.1) {
+ #uftMain div {
+ background-image: url(https://s.yimg.jp/yui/jp/uft/2.0.1/img/uftChnk_x2.png);
+ -webkit-background-size: 728px 28px;
+ background-size: 728px 28px;
+ }
+ }
+ </style>
+ <div id="uftMain" style="width:100%;text-align:center;height:34px;padding:3px 0 0 0;">
+ <div style="position:relative;margin:0 auto;width:728px;height:28px;">
+ <form action="https://search.yahoo.co.jp/search" name="p" target="uhd">
+ <p style="position:absolute;top:0;left:54px;"><a href="http://rdsig.yahoo.co.jp/search/uft/ytop/RV=1/RU=aHR0cDovL3d3dy55YWhvby5jby5qcC8-" title="Yahoo! JAPAN" style="display:block;width:43px;height:28px;text-indent:-9999px;">Yahoo!Japan</a></p><input id="uftSBox" name="p" value="" style="position:absolute;top:6px;left:112px;width:385px;height:18px;background-color:#fff;font-size:13px;line-height:17px;vertical-align:bottom;outline:none;" type="text" /><button type="submit" title="ウェブ検索" style="position:absolute;top:0;left:506px;width:110px;height:28px;background-color:transparent;text-indent:-9999px;cursor:pointer;">ウェブ検索</button><input name="ei" value="UTF-8" type="hidden" /><input name="fr" value="usf" type="hidden" /></form>
+ <p style="position:absolute;top:0;left:622px;"><a href="http://rdsig.yahoo.co.jp/search/uft/krank/RV=1/RU=aHR0cDovL3NlYXJjaHJhbmtpbmcueWFob28uY28uanAvcnRfYnVyc3Qv" title="Yahoo!検索データ 急上昇ワード" style="display:block;width:106px;height:28px;text-indent:-9999px;">Yahoo!検索データ 急上昇ワード</a></p>
+ </div>
+ </div>
+ <!-- http://ard.yahoo.co.jp/SIG=1586tdrvj/M=300951180.301818803.303441908.302953375/D=jp_hdln_te/S=2078709551:S8/Y=jp/EXP=1489060388/L=oI9TLjE4Mi66RLpAorxEdAVuMTE4LgAAAAA2TzUA/B=kDR_ALYWOUA-/J=1489053188005996/SIG=1199007lk/A=302141184/R=0/?http://www.yahoo.co.jp/ -->
+ <script language="javascript">
+ if (window.yzq_d == null) window.yzq_d = new Object();
+ window.yzq_d['kDR_ALYWOUA-'] = '&amp;U=13i75ena1%2fN%3dkDR_ALYWOUA-%2fC%3d300951180.301818803.303441908.302953375%2fD%3dS8%2fB%3d302141184';
+ </script><noscript>&lt;div style="position:absolute;"&gt;&lt;img width=1 height=1 alt="" src="http://b5.yahoo.co.jp/b?P=oI9TLjE4Mi66RLpAorxEdAVuMTE4LgAAAAA2TzUA&amp;T=16mq9pnki%2fX%3d1489053188%2fE%3d2078709551%2fR%3djp_hdln_te%2fK%3d5%2fV%3d2.1%2fW%3dH%2fY%3djp%2fF%3d1205750035%2fH%3dbWgtbG9naW4tc3JjPSJ5biIgcG9wc2VhcmNoLXNlcnZpY2UtY29kZT0ibndzIiBhZGN2ZXI9Ni44LjE-%2fQ%3d-1%2fS%3d1%2fJ%3d58C12604&amp;U=13i75ena1%2fN%3dkDR_ALYWOUA-%2fC%3d300951180.301818803.303441908.302953375%2fD%3dS8%2fB%3d302141184"&gt;&lt;/div&gt;</noscript>
+ <address>
+<a href="http://docs.yahoo.co.jp/docs/info/terms/chapter1.html#cf2nd" rel="nofollow">プライバシーポリシー</a> - <a href="http://docs.yahoo.co.jp/docs/info/terms/" rel="nofollow">利用規約</a> - <a href="http://docs.yahoo.co.jp/info/mediastatement/" rel="nofollow">メディアステートメント</a> -
+<a href="http://headlines.yahoo.co.jp/docs/copyright.html" rel="nofollow">著作権</a> -
+<a href="http://headlines.yahoo.co.jp/docs/tokuteisho.html" rel="nofollow">特定商取引法の表示</a> - <a href="http://rdsig.yahoo.co.jp/media/news/footer/feedback/RV=1/RU=aHR0cHM6Ly9mZWVkYmFjay5tcy55YWhvby5jby5qcC92b2MvbmV3cy12b2MvaW5wdXQ-" rel="nofollow">ご意見・ご要望</a> - <a href="http://help.yahoo.co.jp/help/jp/news/" rel="nofollow">ヘルプ・お問い合わせ</a>
+<br />
+Copyright (C) 2017 ASAHI INTERACTIVE, Inc. All rights reserved. No reproduction or republication without written permission. 無断転載を禁じます。 <br />
+Copyright (C) 2017 Yahoo Japan Corporation. All Rights Reserved.
+</address>
+ </div>
+ <!--/#footer-->
+ <!--footer end-->
+ <!-- SpaceID=2078709551 loc=GYJ noad -->
+ <script language="javascript">
+ if (window.yzq_d == null) window.yzq_d = new Object();
+ window.yzq_d['pzR_ALYWOUA-'] = '&amp;U=127f95lcj%2fN%3dpzR_ALYWOUA-%2fC%3d-1%2fD%3dGYJ%2fB%3d-1';
+ </script><noscript>&lt;div style="position:absolute;"&gt;&lt;img width=1 height=1 alt="" src="http://b5.yahoo.co.jp/b?P=oI9TLjE4Mi66RLpAorxEdAVuMTE4LgAAAAA2TzUA&amp;T=16mqr6s3l%2fX%3d1489053188%2fE%3d2078709551%2fR%3djp_hdln_te%2fK%3d5%2fV%3d2.1%2fW%3dH%2fY%3djp%2fF%3d1742340653%2fH%3dbWgtbG9naW4tc3JjPSJ5biIgcG9wc2VhcmNoLXNlcnZpY2UtY29kZT0ibndzIiBhZGN2ZXI9Ni44LjE-%2fQ%3d-1%2fS%3d1%2fJ%3d58C12604&amp;U=127f95lcj%2fN%3dpzR_ALYWOUA-%2fC%3d-1%2fD%3dGYJ%2fB%3d-1"&gt;&lt;/div&gt;</noscript></div>
+ <!-- /#main_cnt_wrapper-->
+
+ </div>
+ <script type="text/javascript" src="http://i.yimg.jp/images/search/slink/1/main.js?1489051800000" class="yjslinkScriptLoaded" async=""></script><span></span>
+ <script type="text/javascript" src="http://entrypoint.search.yahooapis.jp/v1/link/related_item?callback=YAHOO.JP.srch.slink.create&amp;output=json&amp;.src=nws&amp;appid=dj0zaiZpPWx1NTNzY1hnbUVoRCZzPWNvbnN1bWVyc2VjcmV0Jng9NGI-&amp;article_id=20170309-35097838-cnetj"></script><span></span><iframe src="http://s.yimg.jp/images/listing/tool/yads/ast.html#%7B%22command%22%3A%22AST_callAds%22%2C%22params%22%3A%7B%22tagId%22%3A%229390543%22%2C%22position%22%3A%22below%22%2C%22member%22%3A%223663%22%2C%22user%22%3A%7B%22age%22%3A%22%22%2C%22externalUid%22%3A%2234ff7be9-9290-40cb-b000-d46baf8a6ba3%22%2C%22gender%22%3A%220%22%7D%7D%7D" style="display: none;" name="9390543-4977274909" id="9390543-4977274909" width="0" height="0"></iframe><iframe src="http://s.yimg.jp/images/listing/tool/yads/criteo_api.html#%7B%22command%22%3A%22callAds%22%2C%22params%22%3A%7B%22zoneid%22%3A%22455899%22%7D%7D" style="display: none;" name="455899-9493178265" id="455899-9493178265" width="0" height="0"></iframe>
+ <!--/#wrapper-->
+ <div id="fb-root"></div>
+ <script type="text/javascript" src="http://i.yimg.jp/images/security/pf/pcore-1.0.1.min.js"></script>
+ <script type="text/javascript" src="http://i.yimg.jp/lib/news/common_1_2-min.js"></script>
+
+ <script type="text/javascript" src="http://i.yimg.jp/lib/news/widgets/widgets_1_2.js" charset="utf-8"></script>
+ <script type="text/javascript" language="javascript" src="http://i.yimg.jp/lib/news/top/common_pc-1.0.0.min.js"></script>
+ <script type="text/javascript" language="javascript">
+ & lt;
+ !--
+ $(function() {
+ // グロナビ
+ YAHOO.JP.News.globalNav.init();
+ });
+ //--&gt;
+ </script>
+ <script>
+ YAHOO = window.YAHOO || {};
+ YAHOO.JP = YAHOO.JP || {};
+ YAHOO.JP.srch = YAHOO.JP.srch || {};
+ YAHOO.JP.srch.popSearchSetting = {
+ service_code: 'nws',
+ space_id: '2078709551'
+ };
+ </script>
+ <script src="http://ai.yimg.jp/images/search/slink/popup/pc/1.0.0/js/popsearch.min.js" charset="utf-8" async=""></script>
+
+ <script language="javascript">
+ if (window.yzq_p == null) document.write("&lt;scr" + "ipt language=javascript src=http://ai.yimg.jp/bdv/yahoo/javascript/csc/20060824/lib2obf_b5.js&gt;&lt;/scr" + "ipt&gt;");
+ </script>
+ <script language="javascript" src="http://ai.yimg.jp/bdv/yahoo/javascript/csc/20060824/lib2obf_b5.js"></script>
+ <script language="javascript">
+ if (window.yzq_p) yzq_p('P=oI9TLjE4Mi66RLpAorxEdAVuMTE4LgAAAAA2TzUA&amp;T=16hkm36hi%2fX%3d1489053188%2fE%3d2078709551%2fR%3djp_hdln_te%2fK%3d5%2fV%3d1.1%2fW%3dJ%2fY%3djp%2fF%3d1129028365%2fH%3dbWgtbG9naW4tc3JjPSJ5biIgcG9wc2VhcmNoLXNlcnZpY2UtY29kZT0ibndzIiBhZGN2ZXI9Ni44LjE-%2fS%3d1%2fJ%3d58C12604');
+ if (window.yzq_s) yzq_s();
+ </script><noscript>&lt;div style="position:absolute;"&gt;&lt;img width=1 height=1 alt="" src="http://b5.yahoo.co.jp/b?P=oI9TLjE4Mi66RLpAorxEdAVuMTE4LgAAAAA2TzUA&amp;T=16m44v4i9%2fX%3d1489053188%2fE%3d2078709551%2fR%3djp_hdln_te%2fK%3d5%2fV%3d3.1%2fW%3dJ%2fY%3djp%2fF%3d1673834183%2fH%3dbWgtbG9naW4tc3JjPSJ5biIgcG9wc2VhcmNoLXNlcnZpY2UtY29kZT0ibndzIiBhZGN2ZXI9Ni44LjE-%2fQ%3d-1%2fS%3d1%2fJ%3d58C12604"&gt;&lt;/div&gt;</noscript></body>
+
+</html>
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/youth/expected-images.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/youth/expected-images.json
new file mode 100644
index 000000000..72627e0ec
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/youth/expected-images.json
@@ -0,0 +1,5 @@
+[
+ "http:\/\/fakehost\/test\/W020170310313653868929.jpg",
+ "http:\/\/fakehost\/test\/W020170310313654043127.jpg",
+ "http:\/\/fakehost\/test\/W020170310313654453091.jpg"
+] \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/youth/expected-metadata.json b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/youth/expected-metadata.json
new file mode 100644
index 000000000..f84c6ecd6
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/youth/expected-metadata.json
@@ -0,0 +1,8 @@
+{
+ "Author": "青网校园崔宁宁",
+ "Direction": null,
+ "Excerpt": "图为马素湘在澳大利亚悉尼游玩时的近影。出国前后关注点大不同出国前:政治科目会出啥考题?出国后:国家未来将如何发展?在采访中,我们了解到不少学子在出国前就每年守在电脑前观看两会直播。但是,随着年龄和阅历的增长,学子对两会的关注点在出国前后发生了很大的变化。在法国里昂国立应用科学院留学的卢宇表示,他还是个中学生时,就开始关注两会了。“我高中毕业后就出国留学了。",
+ "Image": null,
+ "Title": "海外留学生看两会:出国前后关注点大不同_教育频道_中国青年网",
+ "SiteName": null
+}
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/youth/expected.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/youth/expected.html
new file mode 100644
index 000000000..f4ae9daac
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/youth/expected.html
@@ -0,0 +1,36 @@
+<div>
+ <div id="content">
+ <div id="container">
+ <div>
+ <p><img alt="海外留学生看两会:出国前后关注点大不同" height="269" oldsrc="W020170310313653868929.jpg" src="http://fakehost/test/W020170310313653868929.jpg" title="海外留学生看两会:出国前后关注点大不同" width="400"></img></p>
+ <p>图为马素湘在澳大利亚悉尼游玩时的近影。</p>
+ <p>  <strong>出国前后关注点大不同</strong></p>
+ <p>  <strong>出国前:政治科目会出啥考题?</strong></p>
+ <p>  <strong>出国后:国家未来将如何发展?</strong></p>
+ <p>   在采访中,我们了解到不少学子在出国前就每年守在电脑前观看两会直播。但是,随着年龄和阅历的增长,学子对两会的关注点在出国前后发生了很大的变化。</p>
+ <p>   在法国里昂国立应用科学院留学的卢宇表示,他还是个中学生时,就开始关注两会了。“我高中毕业后就出国留学了。当我还在国内读高中时,对两会的主要关注点落在民生和教育问题上。根据这些内容预测今年政治考点会有哪些变化。”卢宇说,“在国外学习生活了将近10年,我愈发感觉到祖国这些年发生的日新月异的变化;关注点也转移到国家‘一带一路’建设,高端人才引进,中外合作等方面。”</p>
+ <p>   无独有偶,英国剑桥大学的李博灏也有着类似的经历。他表示,在国内读本科时,虽然关注过两会,但并不像现在这样,将关注点放在国家社会经济迫切需要解决的难题与问题上。“出国前更关心与我们学生的实际问题以及切身利益相关的议题,比如奖学金、助学金的发放与申请;相关工作行业就业前景等。”</p>
+ <p>   在英国求学6年后,李博灏希望能够学有所用,为国家发展过程中遇到的难题寻求解决办法。因此随着课题研究的深入,他更加关注国家和社会目前所面临的挑战,比如中等收入陷阱、供给侧改革、创意创新产业的发展等议题。</p>
+ <p>   还有一些学子表示,出国前对两会不太了解,出国后反而对两会热点多了些思考。在澳大利亚墨尔本留学的马素湘说:“想不关注都难啊!刷微博看新闻到处都是两会的消息。而且我现在学的是新闻专业,对世界发生的大小事都会留意。随着年龄、阅历增长,家国情怀也渐长,会关心国家发展的各方面问题。”</p>
+ <p><img alt="" oldsrc="W020170310313654043127.jpg" src="http://fakehost/test/W020170310313654043127.jpg"></img></p>
+ <p>图为李博灏在瑞士日内日瓦联合国欧洲总部的近影。</p>
+ <p>  <strong>关注点多与所学专业相关</strong></p>
+ <p>  <strong>法学专业热议法定婚龄</strong> <strong>很多人关心供给侧改革</strong></p>
+ <p>   在谈及对两会的哪些话题比较感兴趣时,卢宇表示:“近几年,国内雾霾现象时有发生。而我本身是学习能源环境专业的,所以每年都对两会上政府工作报告和代表提案中有关环保和新能源政策的部分很感兴趣。今年两会提案中有几份关于大力发展清洁能源汽车的。我认为这对节能减排和防治雾霾都有积极作用,但也要注意加强电池和电动机等关键技术的研发。”</p>
+ <p>   对此提案,卢宇有着自己的看法,“百花齐放的局面固然可喜,但也不能一哄而上,国家应该提高行业准入门槛,完善新能源汽车准入管理规则,从源头上进行制度创新,将一些不具备新能源汽车生产资质的厂家淘汰出局,并高度关注电池系统安全问题,严格执行充电桩生产的国际标准。”</p>
+ <p>   马素湘表示,“出国读研之前,我在国内学习法学,因此对相关的问题比较感兴趣。今年两会上人大代表黄细花提出把法定婚龄降低到18岁的提案;而在微博的热搜榜上,一本儿童性教育读物引起了极大的争议。我认为降低婚龄并不适合我国国情。因为性教育的缺乏导致我国大部分人在18岁之前没有接受过完整的性教育,思想行动上也不够成熟,如何能够对自己的人生和自己的另一半负责?所以我希望能有人大代表提议在国民儿童阶段完善我国的性教育,而不是为了鼓励生育将法定婚龄提前。”</p>
+ <p>   李博灏是英国剑桥大学制造业研究所创新设计管理中心的一名博士。他格外关注的话题是供给侧结构性改革,知识产权保护,消费升级等议题。“我的博士研究课题是关于推动创新设计密集型产业的发展从而帮助中等收入国家克服中等收入陷阱的探索,因此一直十分关注国内关于供给侧改革的相关议题。通过本届两会对于该议题的进一步关注,我希望可以有效地帮助我了解供给侧改革与中等收入陷阱问题目前的发展状况以及解决情况;也希望可以与更多的机构取得联系,并帮助他们了解该议题最前沿的研究与解决方案。”</p>
+ <p><img alt="" oldsrc="W020170310313654453091.jpg" src="http://fakehost/test/W020170310313654453091.jpg"></img></p>
+ <p>图为卢宇与祖国五星红旗和联合国会旗的合影。</p>
+ <p>  <strong> 两会成为了解国情的窗口</strong></p>
+ <p>  <strong> 盼准确把握国家发展需求 愿寻求机遇回国有所作为</strong></p>
+ <p>   不少学子时刻关注着国内动态,寻找回国发展的契机,而两会正是一个提供最新最全面信息的窗口。</p>
+ <p>   “对两会的关注使我能够准确把握国家目前迫切需要解决的难题,从而使我的研究具有更多的社会价值。把理论和现实结合起来,将学到的知识、理念与技术有效地融入到国家社会经济发展的实践中去,为国家和社会解决这些问题提供理论与实践依据。”李博灏说。</p>
+ <p>   知识产权也是近些年来两会的热门话题。在李博灏看来,知识产权是经济可持续增长和创意创新产业发展的灵魂所在。完善的、与国际接轨的知识产权保护法能够很好地促进国民经济的发展。“如何将欧洲和英国先进的知识产权以及创意产业保护发展经验带回祖国,帮助我们国家推动创意创新驱动的经济发展一直是我在关注与思考的。因此我也会十分关注两会关于国内知识产权的保护,知识产权综合管理改革试点工作,知识产权国际合作,知识产权大数据等的发展现状等问题。”</p>
+ <p>   在两会上,全国政协委员张近东提出“当前中国经济的发展正在从数量型向质量型转变,消费升级将成为企业新一轮创新发展的动力。”对此,李博灏认为这也是他关注的问题。他认为:“在消费市场持续扩大的大环境下,如何能够通过促进创新设计产业的发展以及消费品品质的提升,推动国内消费增长并促进其在可持续经济增长中的作用,是一个迫切需要解决的问题。在当前供给侧改革的大环境下,消费升级的重要性越发突显。”</p>
+ <p>   作为两会的资深粉,卢宇聊起两会话题充满了期待。“今年是国家‘十三五’规划的关键时期,‘一带一路’建设也在如火如荼地进行中。作为一名中国留学生,我一直都关注着能在哪些领域为国家、为中外合作共赢做出贡献。‘大众创业、万众创新’提出有几年了。全国各省市在吸引留学人才归国创业就业方面纷纷提出了各种优惠政策,但目前大都集中在沿海发达省份,而且主要惠及理工科博士,政策覆盖面还不够广。期待从国家层面设立工作组加强留学人才的统筹协调,完善顶层设计。人文社科类留学人才是未来国家智库的重要后备力量,也应该适当加强对他们的政策鼓励,更好地服务于‘一带一路’国家战略。”</p>
+ <p>   卢宇还认为两会应该增设学子代表,列席旁听两会,拓展留学生参政议政渠道。“我相信优秀留学生的国际化视野必将为家乡建设带来新的思路,增添新的活力。”卢宇恳切地说。</p>
+ </div>
+ </div>
+ </div>
+ </div> \ No newline at end of file
diff --git a/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/youth/source.html b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/youth/source.html
new file mode 100644
index 000000000..22a3bb571
--- /dev/null
+++ b/plugins/af_readability/vendor/andreskrey/readability.php/test/test-pages/youth/source.html
@@ -0,0 +1,10982 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+ <script type="text/javascript" async="" src="https://d31qbv1cthcecs.cloudfront.net/atrk.js"></script>
+ <script src="http://ope.tanx.com/ex?i=mm_34618856_4222645_14288433&amp;cb=jsonp_callback_86491&amp;callback=&amp;userid=&amp;o=&amp;f=&amp;n=&amp;r=&amp;cg=a4eb238b02b30a84f4729b6f0e8ad8ec&amp;pvid=faf417fd741b7fdca851ae4852761ca0&amp;u=http%3A%2F%2Fedu.youth.cn%2Fjyzx%2Fjyxw%2F201703%2Ft20170310_9260562.htm&amp;psl=0&amp;fp=1.H5y6p0lhAmEZHX2lQj0R3Sf-b4v5eegHnGffUpztc1p_FeejiO-gIz.UTF-8.u62jRNSaroZtqPiujQ7oJHKCx5QWP-C_FQv2qFklQcCqGdFQFzaCdDoOSagsHKAwKgPqCapoE0BgiRmDKCRYLRyagSumAueoIr-QA.Q.13ny9ma" async=""></script>
+ <script charset="utf-8" async="" src="http://atanx.alicdn.com/t/tanxssp.js?_v=12"></script>
+ <script type="text/javascript" charset="gbk" id="tanx-s-mm_34618856_4222645_14288433" async="" src="//p.tanx.com/ex?i=mm_34618856_4222645_14288433"></script>
+ <script src="http://push.zhanzhang.baidu.com/push.js"></script>
+ <script>
+ var _hmt = _hmt || [];
+ </script>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta http-equiv="Cache-Control" content="no-siteapp" />
+ <meta http-equiv="Cache-Control" content="no-transform " />
+
+ <meta name="keywords" content="关注点;国家;发展;两会;关注;出国;问题;卢宇;知识产权;李博灏" />
+ <meta name="Description" content="图为马素湘在澳大利亚悉尼游玩时的近影。出国前后关注点大不同出国前:政治科目会出啥考题?出国后:国家未来将如何发展?在采访中,我们了解到不少学子在出国前就每年守在电脑前观看两会直播。但是,随着年龄和阅历的增长,学子对两会的关注点在出国前后发生了很大的变化。在法国里昂国立应用科学院留学的卢宇表示,他还是个中学生时,就开始关注两会了。“我高中毕业后就出国留学了。" />
+ <meta name="filetype" content="0" />
+ <meta name="publishedtype" content="1" />
+ <meta name="pagetype" content="1" />
+ <meta name="catalogs" content="y_112572" />
+ <meta name="contentid" content="9260562" />
+ <meta name="publishdate" content="2017-03-10" />
+
+
+ <meta name="author" content="青网校园崔宁宁" />
+
+ <meta name="source" content="人民日报海外版" />
+ <title>海外留学生看两会:出国前后关注点大不同_教育频道_中国青年网</title>
+
+ <link rel="stylesheet" type="text/css" href="../../../images/cmstop-article08.css" />
+ <!--1064-->
+ <!-- 公共三级页 HEAD公共部分_alexa -->
+ <meta http-equiv="Cache-Control" content="no-siteapp" />
+ <meta http-equiv="Cache-Control" content="no-transform " />
+ <link rel="stylesheet" type="text/css" href="../../../images/youth_sjy_20140527_v2.css" />
+ <style>
+ .l_time {
+ width: 651px;
+ height: 30px;
+ margin: 0px auto 10px;
+ padding: 5px 0 0 0;
+ border-bottom: 1px dotted #ccc;
+ text-align: center;
+ }
+
+ .l_time span {
+ height: 21px;
+ margin: 0 7px;
+ padding: 0;
+ display: inline;
+ float: none;
+ }
+
+ .l_time span a {
+ height: 21px;
+ margin: 0;
+ padding: 0;
+ display: inline;
+ float: none;
+ }
+
+ .menu0 li.hover {
+ background: url(http://news.youth.cn/images/rotation1_bg.png) no-repeat center;
+ }
+
+ .nav_serch_right {
+ width: 280px;
+ height: 37px;
+ background: url(http://news.youth.cn/images/youth_sjy_19.jpg) no-repeat left center;
+ margin-top: 20px;
+ }
+
+ .nav_text {
+ width: 180px;
+ height: 37px;
+ line-height: 37px;
+ background: url(http://news.youth.cn/images/youth_sjy_25.jpg) no-repeat left center;
+ margin-left: 6px;
+ }
+
+ .nav_button {
+ background: url(http://news.youth.cn/images/youth_sjy_22.jpg) no-repeat;
+ width: 79px;
+ height: 37px;
+ border: 0 none;
+ cursor: pointer;
+ }
+ </style>
+ <style>
+ .hd_top1 {
+ background: url(http://news.youth.cn/images/youth_sjy_01.jpg) no-repeat;
+ }
+ </style>
+ <script type="text/javascript" src="../../../images/jquery.js"></script>
+ <script>
+ $(document).ready(function() {
+ $(".page a").attr("target", "_self");
+ });
+ </script>
+ <!--1064-->
+ <script type="text/javascript" src="../../../images/youth_sjy_20140427.js"></script>
+ <script type="text/javascript" src="../../../images/jquery.js"></script>
+ <script type="text/javascript" src="../../../images/jquery.cookie.js"></script>
+
+ <script type="text/javascript" src="../../../images/config.js"></script>
+ <style type="text/css">
+ .jctj_nav {
+ background: url(http://news.youth.cn/images/youth_sjy_bj_03.jpg) repeat-x;
+ }
+
+ .tj3 li {
+ background: url(http://news.youth.cn/images/icon_point2.jpg) no-repeat center left;
+ }
+
+ .foot {
+ width: 100%;
+ background: url(http://news.youth.cn/images/youth_sjy_64.jpg) repeat-x;
+ }
+
+ .yytj_nav {
+ background: url(http://news.youth.cn/images/youth_sjy_bj_03.jpg) repeat-x;
+ }
+
+ .yytjs_nav {
+ background: url(http://news.youth.cn/images/youth_sjy_bj_03.jpg) repeat-x;
+ }
+
+ .yytjj_nav {
+ background: url(http://news.youth.cn/images/youth_sjy_bj_03.jpg) repeat-x;
+ }
+
+ .yytj1_nav {
+ background: url(http://news.youth.cn/images/youth_sjy_bj_03.jpg) repeat-x;
+ }
+
+ .yytj2_nav {
+ background: url(http://news.youth.cn/images/youth_sjy_bj_03.jpg) repeat-x;
+ }
+ /*page start*/
+
+ .about_news a {
+ color: #059;
+ }
+
+ .about_news a:hover {
+ text-decoration: underline;
+ color: red;
+ }
+
+ .page_current {
+ display: inline-block;
+ width: 25px;
+ height: 25px;
+ border: 1px solid #CCCCCC;
+ background: #113C8C;
+ color: #FFFFFF;
+ line-height: 25px;
+ }
+
+ .page_sytle {
+ display: inline-block;
+ width: 25px;
+ height: 25px;
+ border: 1px solid #CCCCCC;
+ color: #000000;
+ line-height: 25px;
+ }
+
+ .page_sytle:hover {
+ text-decoration: none;
+ background: #113C8C;
+ color: #FFFFFF;
+ }
+ /* 360hot Document */
+
+ table,
+ td,
+ tr {
+ margin: 0px;
+ padding: 0px;
+ line-height: 22px;
+ font-size: 14px;
+ }
+
+ .hot360 {
+ margin: 5px 0px;
+ height: 130px;
+ overflow: hidden;
+ }
+
+ .more {
+ float: right;
+ padding-right: 10px;
+ font-weight: normal;
+ color: #999999;
+ font-size: 12px;
+ }
+
+ .hot360 ul {
+ padding: 0px 10px;
+ margin: 8px 0px;
+ }
+
+ .hot360 li {
+ width: 50%;
+ float: left;
+ }
+
+ .hot360 a:link {
+ color: #666666;
+ text-decoration: none;
+ }
+
+ .hot360 a:visited {
+ color: #666666;
+ text-decoration: none;
+ }
+
+ .hot360 a:active {
+ color: #666666;
+ text-decoration: none;
+ }
+
+ .hot360 a:hover {
+ color: #309;
+ text-decoration: underline;
+ }
+
+ .hot360 li {
+ list-style-position: inside;
+ list-style-type: disc;
+ margin: 0px;
+ padding: 0px;
+ }
+
+ .article-content img {
+ width: auto;
+ max-width: 500px;
+ }
+
+ .article-page .page a {
+ height: 20px
+ }
+
+ p {
+ overflow-y: hidden;
+ }
+ </style>
+ <script type="text/javascript">
+ var contentid = '{$contentid}'; // 文章ID
+ var topicid = '{$topicid}'; // 评论主题
+ var _IMG_URL = '../cssjs';
+ </script>
+ <!--{if ! $pages || $page == 1 || $page == count($pages)}-->
+ <!--{addon_resource($contentid)}-->
+ <!--{/if}-->
+
+ <script src="//bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion=413720"></script>
+ <script type="text/javascript" charset="UTF-8" src="http://changyan.itc.cn/upload/version-v3.js?14893978158330.3078753860224086"></script>
+ <script type="text/javascript" charset="UTF-8" src="http://changyan.sohu.com/debug/cookie?callback=changyan455388509"></script>
+ <script type="text/javascript" charset="UTF-8" src="http://changyan.itc.cn/v3/v20170310852/src/adapter.min.js"></script>
+ <script type="text/javascript" charset="UTF-8" src="http://changyan.sohu.com/api/2/config/get/cyrqcP276?callback=changyan309135734"></script>
+ <script type="text/javascript" charset="UTF-8" src="http://changyan.itc.cn/v3/v20170310852/src/start.min.js"></script>
+ <style type="text/css">
+ #SOHUCS {
+ clear: both
+ }
+
+ #SOHUCS #SOHU_MAIN * {
+ box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box
+ }
+
+ #SOHUCS,
+ #SOHUCS #SOHU_MAIN {
+ margin: 0;
+ margin-left: auto;
+ margin-right: auto;
+ padding: 0;
+ border: 0;
+ font-weight: 400;
+ text-align: left;
+ width: 100%;
+ height: auto;
+ overflow: visible;
+ font-size: 12px;
+ color: #333;
+ background-color: transparent;
+ line-height: 1
+ }
+
+ #SOHUCS #SOHU_MAIN a,
+ #SOHUCS #SOHU_MAIN abbr,
+ #SOHUCS #SOHU_MAIN acronym,
+ #SOHUCS #SOHU_MAIN address,
+ #SOHUCS #SOHU_MAIN applet,
+ #SOHUCS #SOHU_MAIN article,
+ #SOHUCS #SOHU_MAIN aside,
+ #SOHUCS #SOHU_MAIN audio,
+ #SOHUCS #SOHU_MAIN b,
+ #SOHUCS #SOHU_MAIN big,
+ #SOHUCS #SOHU_MAIN blockquote,
+ #SOHUCS #SOHU_MAIN canvas,
+ #SOHUCS #SOHU_MAIN caption,
+ #SOHUCS #SOHU_MAIN center,
+ #SOHUCS #SOHU_MAIN cite,
+ #SOHUCS #SOHU_MAIN code,
+ #SOHUCS #SOHU_MAIN dd,
+ #SOHUCS #SOHU_MAIN del,
+ #SOHUCS #SOHU_MAIN details,
+ #SOHUCS #SOHU_MAIN dfn,
+ #SOHUCS #SOHU_MAIN dialog,
+ #SOHUCS #SOHU_MAIN div,
+ #SOHUCS #SOHU_MAIN dl,
+ #SOHUCS #SOHU_MAIN dt,
+ #SOHUCS #SOHU_MAIN em,
+ #SOHUCS #SOHU_MAIN embed,
+ #SOHUCS #SOHU_MAIN fieldset,
+ #SOHUCS #SOHU_MAIN figcaption,
+ #SOHUCS #SOHU_MAIN figure,
+ #SOHUCS #SOHU_MAIN font,
+ #SOHUCS #SOHU_MAIN footer,
+ #SOHUCS #SOHU_MAIN form,
+ #SOHUCS #SOHU_MAIN h1,
+ #SOHUCS #SOHU_MAIN h2,
+ #SOHUCS #SOHU_MAIN h3,
+ #SOHUCS #SOHU_MAIN h4,
+ #SOHUCS #SOHU_MAIN h5,
+ #SOHUCS #SOHU_MAIN h6,
+ #SOHUCS #SOHU_MAIN header,
+ #SOHUCS #SOHU_MAIN hgroup,
+ #SOHUCS #SOHU_MAIN hr,
+ #SOHUCS #SOHU_MAIN i,
+ #SOHUCS #SOHU_MAIN iframe,
+ #SOHUCS #SOHU_MAIN img,
+ #SOHUCS #SOHU_MAIN ins,
+ #SOHUCS #SOHU_MAIN kbd,
+ #SOHUCS #SOHU_MAIN label,
+ #SOHUCS #SOHU_MAIN legend,
+ #SOHUCS #SOHU_MAIN li,
+ #SOHUCS #SOHU_MAIN mark,
+ #SOHUCS #SOHU_MAIN menu,
+ #SOHUCS #SOHU_MAIN meter,
+ #SOHUCS #SOHU_MAIN nav,
+ #SOHUCS #SOHU_MAIN object,
+ #SOHUCS #SOHU_MAIN ol,
+ #SOHUCS #SOHU_MAIN output,
+ #SOHUCS #SOHU_MAIN p,
+ #SOHUCS #SOHU_MAIN pre,
+ #SOHUCS #SOHU_MAIN progress,
+ #SOHUCS #SOHU_MAIN q,
+ #SOHUCS #SOHU_MAIN rp,
+ #SOHUCS #SOHU_MAIN rt,
+ #SOHUCS #SOHU_MAIN ruby,
+ #SOHUCS #SOHU_MAIN s,
+ #SOHUCS #SOHU_MAIN samp,
+ #SOHUCS #SOHU_MAIN section,
+ #SOHUCS #SOHU_MAIN small,
+ #SOHUCS #SOHU_MAIN span,
+ #SOHUCS #SOHU_MAIN strike,
+ #SOHUCS #SOHU_MAIN strong,
+ #SOHUCS #SOHU_MAIN sub,
+ #SOHUCS #SOHU_MAIN summary,
+ #SOHUCS #SOHU_MAIN sup,
+ #SOHUCS #SOHU_MAIN table,
+ #SOHUCS #SOHU_MAIN tbody,
+ #SOHUCS #SOHU_MAIN td,
+ #SOHUCS #SOHU_MAIN tfoot,
+ #SOHUCS #SOHU_MAIN th,
+ #SOHUCS #SOHU_MAIN thead,
+ #SOHUCS #SOHU_MAIN time,
+ #SOHUCS #SOHU_MAIN tr,
+ #SOHUCS #SOHU_MAIN tt,
+ #SOHUCS #SOHU_MAIN u,
+ #SOHUCS #SOHU_MAIN ul,
+ #SOHUCS #SOHU_MAIN var,
+ #SOHUCS #SOHU_MAIN video,
+ #SOHUCS #SOHU_MAIN xmp {
+ border: 0;
+ margin: 0;
+ padding: 0;
+ font-size: 100%;
+ text-align: left;
+ vertical-align: baseline;
+ background-image: none;
+ background-position: 0 0;
+ width: auto;
+ float: none;
+ overflow: visible;
+ text-indent: 0
+ }
+
+ #SOHUCS #SOHU_MAIN article,
+ #SOHUCS #SOHU_MAIN aside,
+ #SOHUCS #SOHU_MAIN details,
+ #SOHUCS #SOHU_MAIN figcaption,
+ #SOHUCS #SOHU_MAIN figure,
+ #SOHUCS #SOHU_MAIN footer,
+ #SOHUCS #SOHU_MAIN header,
+ #SOHUCS #SOHU_MAIN hgroup,
+ #SOHUCS #SOHU_MAIN menu,
+ #SOHUCS #SOHU_MAIN nav,
+ #SOHUCS #SOHU_MAIN section {
+ display: block
+ }
+
+ #SOHUCS #SOHU_MAIN b,
+ #SOHUCS #SOHU_MAIN h1,
+ #SOHUCS #SOHU_MAIN h2,
+ #SOHUCS #SOHU_MAIN h3,
+ #SOHUCS #SOHU_MAIN h4,
+ #SOHUCS #SOHU_MAIN h5,
+ #SOHUCS #SOHU_MAIN h6,
+ #SOHUCS #SOHU_MAIN strong {
+ font-weight: 400
+ }
+
+ #SOHUCS #SOHU_MAIN img {
+ color: transparent;
+ font-size: 0;
+ vertical-align: middle;
+ -ms-interpolation-mode: bicubic
+ }
+
+ #SOHUCS #SOHU_MAIN li,
+ #SOHUCS #SOHU_MAIN ol,
+ #SOHUCS #SOHU_MAIN ul {
+ list-style: none
+ }
+
+ #SOHUCS #SOHU_MAIN li {
+ display: list-item
+ }
+
+ #SOHUCS #SOHU_MAIN table {
+ border-collapse: collapse;
+ border-spacing: 0
+ }
+
+ #SOHUCS #SOHU_MAIN caption,
+ #SOHUCS #SOHU_MAIN td,
+ #SOHUCS #SOHU_MAIN th {
+ font-weight: 400;
+ vertical-align: top;
+ text-align: left
+ }
+
+ #SOHUCS #SOHU_MAIN q {
+ quotes: none
+ }
+
+ #SOHUCS #SOHU_MAIN q:after,
+ #SOHUCS #SOHU_MAIN q:before {
+ content: '';
+ content: none
+ }
+
+ #SOHUCS #SOHU_MAIN small,
+ #SOHUCS #SOHU_MAIN sub,
+ #SOHUCS #SOHU_MAIN sup {
+ font-size: 75%
+ }
+
+ #SOHUCS #SOHU_MAIN sub,
+ #SOHUCS #SOHU_MAIN sup {
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline
+ }
+
+ #SOHUCS #SOHU_MAIN sub {
+ bottom: -.25em
+ }
+
+ #SOHUCS #SOHU_MAIN sup {
+ top: -.5em
+ }
+
+ #SOHUCS #SOHU_MAIN svg {
+ overflow: hidden
+ }
+
+ #SOHUCS #SOHU_MAIN del,
+ #SOHUCS #SOHU_MAIN ins,
+ #SOHUCS #SOHU_MAIN s,
+ #SOHUCS #SOHU_MAIN u {
+ text-decoration: none
+ }
+
+ #SOHUCS #SOHU_MAIN p {
+ word-wrap: break-word;
+ break-word: break-all
+ }
+
+ #SOHUCS #SOHU_MAIN em,
+ #SOHUCS #SOHU_MAIN i {
+ font-style: normal
+ }
+
+ #SOHUCS #SOHU_MAIN a,
+ #SOHUCS #SOHU_MAIN b,
+ #SOHUCS #SOHU_MAIN em,
+ #SOHUCS #SOHU_MAIN i,
+ #SOHUCS #SOHU_MAIN img,
+ #SOHUCS #SOHU_MAIN input,
+ #SOHUCS #SOHU_MAIN label,
+ #SOHUCS #SOHU_MAIN s,
+ #SOHUCS #SOHU_MAIN span,
+ #SOHUCS #SOHU_MAIN strong,
+ #SOHUCS #SOHU_MAIN sub,
+ #SOHUCS #SOHU_MAIN sup,
+ #SOHUCS #SOHU_MAIN textarea,
+ #SOHUCS #SOHU_MAIN u {
+ display: inline
+ }
+
+ #SOHUCS #SOHU_MAIN input,
+ #SOHUCS #SOHU_MAIN select,
+ #SOHUCS #SOHU_MAIN select option,
+ #SOHUCS #SOHU_MAIN textarea {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ outline: 0
+ }
+
+ #SOHUCS #SOHU_MAIN a:focus,
+ #SOHUCS #SOHU_MAIN input:focus,
+ #SOHUCS #SOHU_MAIN textarea:focus {
+ outline: 0
+ }
+
+ #SOHUCS #SOHU_MAIN button,
+ #SOHUCS #SOHU_MAIN input,
+ #SOHUCS #SOHU_MAIN select,
+ #SOHUCS #SOHU_MAIN textarea {
+ background-attachment: scroll
+ }
+
+ #SOHUCS #SOHU_MAIN li {
+ clear: none
+ }
+
+ #SOHUCS #SOHU_MAIN a {
+ color: #44708e;
+ text-decoration: none
+ }
+
+ #SOHUCS #SOHU_MAIN a:hover {
+ color: #ee542a;
+ text-decoration: underline
+ }
+
+ #SOHUCS #SOHU_MAIN .clear-g {
+ zoom: 1
+ }
+
+ #SOHUCS #SOHU_MAIN .clear-g:after {
+ content: ".";
+ display: block;
+ visibility: hidden;
+ height: 0;
+ clear: both
+ }
+
+ #SOHUCS #SOHU_MAIN .global-clear-spacing {
+ letter-spacing: -6px
+ }
+
+ #SOHUCS #SOHU_MAIN .global-clear-spacing * {
+ letter-spacing: normal
+ }
+ </style>
+ <style type="text/css">
+ .module-cy-user-page * {
+ box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box
+ }
+
+ .module-cy-user-page {
+ margin: 0;
+ margin-left: auto;
+ margin-right: auto;
+ padding: 0;
+ border: 0;
+ font-weight: 400;
+ text-align: left;
+ width: 100%;
+ height: auto;
+ overflow: visible;
+ font-size: 12px;
+ color: #333;
+ background-color: transparent;
+ line-height: 1
+ }
+
+ .module-cy-user-page a,
+ .module-cy-user-page abbr,
+ .module-cy-user-page acronym,
+ .module-cy-user-page address,
+ .module-cy-user-page applet,
+ .module-cy-user-page article,
+ .module-cy-user-page aside,
+ .module-cy-user-page audio,
+ .module-cy-user-page b,
+ .module-cy-user-page big,
+ .module-cy-user-page blockquote,
+ .module-cy-user-page canvas,
+ .module-cy-user-page caption,
+ .module-cy-user-page center,
+ .module-cy-user-page cite,
+ .module-cy-user-page code,
+ .module-cy-user-page dd,
+ .module-cy-user-page del,
+ .module-cy-user-page details,
+ .module-cy-user-page dfn,
+ .module-cy-user-page dialog,
+ .module-cy-user-page div,
+ .module-cy-user-page dl,
+ .module-cy-user-page dt,
+ .module-cy-user-page em,
+ .module-cy-user-page embed,
+ .module-cy-user-page fieldset,
+ .module-cy-user-page figcaption,
+ .module-cy-user-page figure,
+ .module-cy-user-page font,
+ .module-cy-user-page footer,
+ .module-cy-user-page form,
+ .module-cy-user-page h1,
+ .module-cy-user-page h2,
+ .module-cy-user-page h3,
+ .module-cy-user-page h4,
+ .module-cy-user-page h5,
+ .module-cy-user-page h6,
+ .module-cy-user-page header,
+ .module-cy-user-page hgroup,
+ .module-cy-user-page hr,
+ .module-cy-user-page i,
+ .module-cy-user-page iframe,
+ .module-cy-user-page img,
+ .module-cy-user-page ins,
+ .module-cy-user-page kbd,
+ .module-cy-user-page label,
+ .module-cy-user-page legend,
+ .module-cy-user-page li,
+ .module-cy-user-page mark,
+ .module-cy-user-page menu,
+ .module-cy-user-page meter,
+ .module-cy-user-page nav,
+ .module-cy-user-page object,
+ .module-cy-user-page ol,
+ .module-cy-user-page output,
+ .module-cy-user-page p,
+ .module-cy-user-page pre,
+ .module-cy-user-page progress,
+ .module-cy-user-page q,
+ .module-cy-user-page rp,
+ .module-cy-user-page rt,
+ .module-cy-user-page ruby,
+ .module-cy-user-page s,
+ .module-cy-user-page samp,
+ .module-cy-user-page section,
+ .module-cy-user-page small,
+ .module-cy-user-page span,
+ .module-cy-user-page strike,
+ .module-cy-user-page strong,
+ .module-cy-user-page sub,
+ .module-cy-user-page summary,
+ .module-cy-user-page sup,
+ .module-cy-user-page table,
+ .module-cy-user-page tbody,
+ .module-cy-user-page td,
+ .module-cy-user-page tfoot,
+ .module-cy-user-page th,
+ .module-cy-user-page thead,
+ .module-cy-user-page time,
+ .module-cy-user-page tr,
+ .module-cy-user-page tt,
+ .module-cy-user-page u,
+ .module-cy-user-page ul,
+ .module-cy-user-page var,
+ .module-cy-user-page video,
+ .module-cy-user-page xmp {
+ border: 0;
+ margin: 0;
+ padding: 0;
+ font-size: 100%;
+ text-align: left;
+ vertical-align: baseline;
+ background-image: none;
+ background-position: 0 0;
+ width: auto;
+ float: none;
+ overflow: visible;
+ text-indent: 0
+ }
+
+ .module-cy-user-page article,
+ .module-cy-user-page aside,
+ .module-cy-user-page details,
+ .module-cy-user-page figcaption,
+ .module-cy-user-page figure,
+ .module-cy-user-page footer,
+ .module-cy-user-page header,
+ .module-cy-user-page hgroup,
+ .module-cy-user-page menu,
+ .module-cy-user-page nav,
+ .module-cy-user-page section {
+ display: block
+ }
+
+ .module-cy-user-page b,
+ .module-cy-user-page h1,
+ .module-cy-user-page h2,
+ .module-cy-user-page h3,
+ .module-cy-user-page h4,
+ .module-cy-user-page h5,
+ .module-cy-user-page h6,
+ .module-cy-user-page strong {
+ font-weight: 400
+ }
+
+ .module-cy-user-page img {
+ color: transparent;
+ font-size: 0;
+ vertical-align: middle;
+ -ms-interpolation-mode: bicubic
+ }
+
+ .module-cy-user-page li,
+ .module-cy-user-page ol,
+ .module-cy-user-page ul {
+ list-style: none
+ }
+
+ .module-cy-user-page li {
+ display: list-item
+ }
+
+ .module-cy-user-page table {
+ border-collapse: collapse;
+ border-spacing: 0
+ }
+
+ .module-cy-user-page caption,
+ .module-cy-user-page td,
+ .module-cy-user-page th {
+ font-weight: 400;
+ vertical-align: top;
+ text-align: left
+ }
+
+ .module-cy-user-page q {
+ quotes: none
+ }
+
+ .module-cy-user-page q:after,
+ .module-cy-user-page q:before {
+ content: '';
+ content: none
+ }
+
+ .module-cy-user-page small,
+ .module-cy-user-page sub,
+ .module-cy-user-page sup {
+ font-size: 75%
+ }
+
+ .module-cy-user-page sub,
+ .module-cy-user-page sup {
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline
+ }
+
+ .module-cy-user-page sub {
+ bottom: -.25em
+ }
+
+ .module-cy-user-page sup {
+ top: -.5em
+ }
+
+ .module-cy-user-page svg {
+ overflow: hidden
+ }
+
+ .module-cy-user-page del,
+ .module-cy-user-page ins,
+ .module-cy-user-page s,
+ .module-cy-user-page u {
+ text-decoration: none
+ }
+
+ .module-cy-user-page p {
+ word-wrap: break-word;
+ break-word: break-all
+ }
+
+ .module-cy-user-page em,
+ .module-cy-user-page i {
+ font-style: normal
+ }
+
+ .module-cy-user-page a,
+ .module-cy-user-page b,
+ .module-cy-user-page em,
+ .module-cy-user-page i,
+ .module-cy-user-page img,
+ .module-cy-user-page input,
+ .module-cy-user-page label,
+ .module-cy-user-page s,
+ .module-cy-user-page span,
+ .module-cy-user-page strong,
+ .module-cy-user-page sub,
+ .module-cy-user-page sup,
+ .module-cy-user-page textarea,
+ .module-cy-user-page u {
+ display: inline
+ }
+
+ .module-cy-user-page input,
+ .module-cy-user-page select,
+ .module-cy-user-page select option,
+ .module-cy-user-page textarea {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ outline: 0
+ }
+
+ .module-cy-user-page a:focus,
+ .module-cy-user-page input:focus,
+ .module-cy-user-page textarea:focus {
+ outline: 0
+ }
+
+ .module-cy-user-page button,
+ .module-cy-user-page input,
+ .module-cy-user-page select,
+ .module-cy-user-page textarea {
+ background-attachment: scroll
+ }
+
+ .module-cy-user-page li {
+ clear: none
+ }
+
+ .module-cy-user-page a {
+ color: #44708e;
+ text-decoration: none
+ }
+
+ .module-cy-user-page a:hover {
+ color: #ee542a;
+ text-decoration: underline
+ }
+
+ .module-cy-user-page .clear-g {
+ zoom: 1
+ }
+
+ .module-cy-user-page .clear-g:after {
+ content: ".";
+ display: block;
+ visibility: hidden;
+ height: 0;
+ clear: both
+ }
+
+ .module-cy-user-page .global-clear-spacing {
+ letter-spacing: -6px
+ }
+
+ .module-cy-user-page .global-clear-spacing * {
+ letter-spacing: normal
+ }
+ </style>
+ <style type="text/css">
+ .changyan-overlay-lock {
+ overflow: hidden!important;
+ width: auto
+ }
+
+ .changyan-overlay-lock .changyan-overlay {
+ overflow: auto;
+ overflow-y: scroll
+ }
+
+ .changyan-overlay {
+ position: absolute;
+ top: 0;
+ left: 0;
+ overflow: hidden;
+ z-index: 8010;
+ background: #000;
+ filter: alpha(opacity=50);
+ opacity: .5;
+ width: auto;
+ height: auto;
+ display: block
+ }
+
+ .changyan-overlay-fixed {
+ position: fixed;
+ bottom: 0;
+ right: 0
+ }
+
+ .changyan-overlay-outer {
+ position: fixed;
+ z-index: 8030;
+ top: 0;
+ left: 0;
+ filter: alpha(opacity=1);
+ opacity: .01
+ }
+ </style>
+ <link rel="stylesheet" href="http://bdimg.share.baidu.com/static/api/css/share_style0_16.css?v=6aba13f0.css" />
+ <script type="text/javascript" charset="UTF-8" src="http://changyan.itc.cn/mdevp/extensions/icp-tips/017/icp-tips.js"></script>
+ <script type="text/javascript" charset="UTF-8" src="http://changyan.itc.cn/mdevp/extensions/cy-skin/027/cy-skin.js"></script>
+ <style id="seaJs-css" type="text/css">
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .cbox-prompt-w span.prompt-empty-w,
+ #SOHUCS #SOHU_MAIN .module-cmt-float-bar .wrap-cont-w .cont-form-w .form-text-w span.text-null,
+ #SOHUCS #SOHU_MAIN .module-cmt-float-bar .wrap-cont-w .cont-minwidth-w div.cont-comment-w a.comment-link-w,
+ #SOHUCS #SOHU_MAIN .module-cmt-float-bar .wrap-cont-w .cont-minwidth-w div.cont-comment-w span.comment-text-w,
+ #SOHUCS #SOHU_MAIN .module-cmt-footer .section-service-w div.service-wrap-w a:hover,
+ #SOHUCS #SOHU_MAIN .module-cmt-header .section-cbox-w .block-head-w div.header-login,
+ #SOHUCS #SOHU_MAIN .module-cmt-header .section-title-w .title-user-w .user-wrap-w span.wrap-name-w,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw span.click-disable-eg a em.icon-name-bg,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .block-title-gw ul li div.title-name-gw,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .cmt-list-type .cmt-list-number .comment-number span.number,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .cmt-list-type .cmt-list-number span.comment-number,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .cmt-list-type .type-lists li.active,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .msg-wrap-gw .wrap-action-gw .action-click-gw span a:hover,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .picture-box-gw div.box-action-gw a:hover,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-action-gw .action-click-gw span a:hover em.icon-name-bg,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-user-gw span.user-name-gw a {
+ color: #e74851
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .uploading-wrapper-dw div.wrapper-image-dw,
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w div.post-wrap-main,
+ #SOHUCS #SOHU_MAIN .module-cmt-float-bar .wrap-cont-w .cont-form-w div.form-text-w,
+ #SOHUCS #SOHU_MAIN .module-cmt-header .section-cbox-w .block-head-w div.header-login,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .module-cmt-box .post-wrap-w div.post-wrap-main {
+ border-color: #e74851
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-header .section-cbox-w .block-head-w div.header-login-ie {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/photo-mask.png)!important
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .cmt-list-type div.cmt-list-border {
+ background-color: #e74851
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .block-title-gw ul li .title-name-gw div.title-name-gw-tag {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/title-tag.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .picture-box-gw .box-action-gw ul li.action-hide-gw:hover i.area-icon-gw {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/pack-up-active.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .picture-box-gw .box-action-gw ul li.action-look-gw:hover i.area-icon-gw {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/look-img-active.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-action-gw .action-click-gw span.click-prop-gw .prop-span a {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/prop-ico.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-issue-w .issue-btn-w a button.btn-fw {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/post-btn.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-issue-w .issue-btn-w a button.btn-fw:hover {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/post-btn-hover.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .cmt-list-type .type-lists li.active {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/cmtlist-bg-active.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w div.post-wrap-border-r {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/border-r.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w div.post-wrap-border-l {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/border-l.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w div.post-wrap-border-t .post-wrap-border-t-l {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/border-t.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .post-wrap-border-t div.post-wrap-border-t-r {
+ border-top: 1px solid #e74851
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w div.face-wrapper-dw {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/face-bg.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-float-bar .wrap-cont-w .cont-minwidth-w .cont-comment-w a.comment-link-w .comment-link-num span.comment-link-numtext {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/cmt-num-bg2.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-float-bar .wrap-cont-w .cont-minwidth-w .cont-comment-w a.comment-link-w span.comment-link-num {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/cmt-num-bg1.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-float-bar .wrap-cont-w .cont-minwidth-w div.hidden-corner {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/cmt-box-bg1.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-float-bar .wrap-cont-w .cont-form-w .form-text-w a.button-w,
+ #SOHUCS #SOHU_MAIN .module-cmt-float-bar .wrap-cont-w .cont-form-w div.form-text-w .btn-load-bf {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/bt-changyan.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-float-bar .wrap-cont-w .cont-form-w .form-text-w a.button-w:hover {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/bt-changyan-hover.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .uploading-wrapper-dw div.uploading-wrapper-dw-t {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/pic-bg-t.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .uploading-wrapper-dw div.uploading-wrapper-dw-b {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/pic-bg-b.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-header .section-cbox-w .block-head-w div.head-img-ie-mask {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/photo-mask.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .isSubmit .post-wrap-w .wrap-action-w .action-issue-w .issue-btn-w a button.btn-fw {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/loading.gif)
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-footer .section-page-w div.cmt-more-wrap-gw:hover {
+ background: #fef6f6!important;
+ color: #e74851!important
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-footer .section-page-w div.cmt-more-wrap-gw:hover .more-arrow-ico {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/arrow-hover.png)!important
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-notice ul.nt-list li.nt-item {
+ border: 1px solid #e74851!important
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-notice ul.nt-list li.nt-item .nt-logo {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/notice-logo.png)!important;
+ background-repeat: no-repeat
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-notice ul.nt-list li.nt-item a.nt-text,
+ #SOHUCS #SOHU_MAIN .module-cmt-notice ul.nt-list li.nt-item a.nt-text i {
+ color: #e74851!important
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-build-gw div.block-cont-hover-e {
+ background-color: #fef6f6
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .msg-wrap-gw .wrap-action-gw .action-click-gw .cy-prop-win .cy-bean-unuseable:hover {
+ color: #fff
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw .click-disable-eg a i.icon-ding-bg,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw .click-disable-eg a:hover i.icon-ding-bg,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw a:hover i.icon-ding-bg {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/ding-active.png);
+ background-position: center;
+ background-repeat: no-repeat
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw .click-disable-eg a i.icon-cai-bg,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw .click-disable-eg a:hover i.icon-cai-bg,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw a:hover i.icon-cai-bg {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/cai-active.png);
+ background-position: center;
+ background-repeat: no-repeat
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w div.action-function-w ul li.function-face-w {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/face.png);
+ background-position: center;
+ background-repeat: no-repeat
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w div.action-function-w ul li.function-face-w:hover {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/face-active.png);
+ background-position: center;
+ background-repeat: no-repeat
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w div.action-function-w ul li.function-uploading-w .effect-w .uploading-b {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/image.png)!important;
+ background-position: center;
+ background-repeat: no-repeat
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w div.action-function-w ul li.function-e .effect-w .uploading-b,
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w div.action-function-w ul li.function-uploading-w:hover .effect-w .uploading-b {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/image-active.png)!important;
+ background-position: center;
+ background-repeat: no-repeat
+ }
+
+ @media (-webkit-min-device-pixel-ratio:1.5),
+ (min--moz-device-pixel-ratio:1.5),
+ (min-resolution:1.5dppx),
+ (min-resolution:144dpi) {
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw .click-disable-eg a i.icon-ding-bg,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw .click-disable-eg a:hover i.icon-ding-bg,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw a:hover i.icon-ding-bg {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/ding-active-1.5x.png);
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 100% 100%
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw .click-disable-eg a i.icon-cai-bg,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw .click-disable-eg a:hover i.icon-cai-bg,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw a:hover i.icon-cai-bg {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/cai-active-1.5x.png);
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 100% 100%
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w div.action-function-w ul li.function-face-w {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/face-1.5x.png);
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 100% 100%
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w div.action-function-w ul li.function-face-w:hover {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/face-active-1.5x.png);
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 100% 100%
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w div.action-function-w ul li.function-uploading-w .effect-w .uploading-b {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/image-1.5x.png)!important;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 100% 100%
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w div.action-function-w ul li.function-e .effect-w .uploading-b,
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w div.action-function-w ul li.function-uploading-w:hover .effect-w .uploading-b {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/image-active-1.5x.png)!important;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 100% 100%
+ }
+ }
+
+ @media (-webkit-min-device-pixel-ratio:2),
+ (min--moz-device-pixel-ratio:2),
+ (min-resolution:2dppx),
+ (min-resolution:192dpi) {
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw .click-disable-eg a i.icon-ding-bg,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw .click-disable-eg a:hover i.icon-ding-bg,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw a:hover i.icon-ding-bg {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/ding-active-2x.png);
+ background-size: 100% 100%;
+ background-position: center
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw .click-disable-eg a i.icon-cai-bg,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw .click-disable-eg a:hover i.icon-cai-bg,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw a:hover i.icon-cai-bg {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/cai-active-2x.png);
+ background-size: 100% 100%;
+ background-position: center
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w div.action-function-w ul li.function-face-w {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/face-2x.png);
+ background-size: 100% 100%;
+ background-position: center
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w div.action-function-w ul li.function-face-w:hover {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/face-active-2x.png);
+ background-size: 100% 100%;
+ background-position: center
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w div.action-function-w ul li.function-uploading-w .effect-w .uploading-b {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/image-2x.png)!important;
+ background-size: 100% 100%;
+ background-position: center
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w div.action-function-w ul li.function-e .effect-w .uploading-b,
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w div.action-function-w ul li.function-uploading-w:hover .effect-w .uploading-b {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/image-active-2x.png)!important;
+ background-size: 100% 100%;
+ background-position: center
+ }
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-footer .cy-redirect-btn:hover {
+ background-color: #f18a91!important;
+ box-shadow: 0 0 8px #f18a91!important;
+ color: #fff!important
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-footer .cy-redirect-btn {
+ background-color: #fef8f8!important;
+ border: 1px solid #f18a91!important;
+ color: #e74851!important
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-footer .cy-redirect-btn i {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/right-arrow.png)!important
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-footer .cy-redirect-btn:hover i {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/right-arrow-hover.png)!important
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-to-shequ-float {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/shequ-icon.png)!important
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-board-enter,
+ #SOHUCS #SOHU_MAIN .cy-to-shequ-head,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .cy-see-more {
+ color: #e74851!important
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .cy-see-more:hover {
+ background-color: #f9e5e6!important
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-collection-btn.collected {
+ border: 1px solid #e74851!important;
+ color: #e74851!important
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-collection-btn.collected i {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/collected-star.png)!important
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-collection-btn:hover {
+ border: 1px solid #e74851!important;
+ color: #e74851!important
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-collection-btn:hover i {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-skin/027/skin-red/images/collected-star.png)!important
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-hidden {
+ display: none
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-header .section-cbox-w .block-head-w {
+ position: relative;
+ width: 100%;
+ height: 60px;
+ z-index: 10
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-header .section-cbox-w .block-head-w div.cy-skin {
+ float: right
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-header .section-cbox-w .block-head-w .head-img-w {
+ width: 42px;
+ height: 42px;
+ position: absolute;
+ left: 9px;
+ top: 22px;
+ display: none;
+ z-index: 11
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-header .section-cbox-w .block-head-w .head-img-w .cy-logout-btn {
+ width: 42px;
+ height: 42px;
+ position: absolute;
+ top: 0;
+ left: 0;
+ font-size: 14px;
+ color: #4398ed;
+ text-align: center;
+ line-height: 42px;
+ font-family: "Microsoft YaHei";
+ display: none;
+ cursor: pointer;
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-header/076/images/logout-mask.png);
+ background-repeat: no-repeat;
+ background-position: center
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-header .section-cbox-w .block-head-w .head-img-w:hover .cy-logout-btn {
+ display: block
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-header .section-cbox-w .block-head-w .head-img-ie-mask {
+ width: 42px;
+ height: 46px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-header/076/images/photo-mask.png);
+ position: absolute;
+ z-index: 2;
+ top: 0;
+ left: 0;
+ display: none
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-header .section-cbox-w .block-head-login .head-img-w {
+ display: block
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-header .section-cbox-w .block-head-w .head-img-w img {
+ border-radius: 42px;
+ display: block;
+ width: 42px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-header .section-cbox-w .block-head-w .header-login {
+ width: 40px;
+ height: 40px;
+ border-radius: 42px;
+ border: 1px solid #4398ed;
+ position: absolute;
+ top: 22px;
+ left: 9px;
+ font-size: 14px;
+ color: #4398ed;
+ text-align: center;
+ line-height: 42px!important;
+ font-family: "Microsoft YaHei";
+ cursor: pointer;
+ background: 0 0
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-header .section-cbox-w .block-head-w .header-login-ie {
+ width: 42px;
+ height: 46px;
+ border: 0;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-header/076/images/photo-mask.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-header .section-cbox-w .block-head-login .header-login {
+ display: none
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-header .section-title-w .title-user-w .user-wrap-w {
+ position: absolute;
+ top: 52px;
+ left: 55px;
+ text-indent: 11px;
+ z-index: 10;
+ padding-right: 10px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-header .section-title-w .title-user-w .user-wrap-w-ie {
+ background: #fff
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-header .section-title-w .title-user-w .user-wrap-w .wrap-name-w {
+ font-size: 16px;
+ color: #4398ed;
+ font-family: "Microsoft YaHei";
+ position: relative;
+ z-index: 2;
+ *text-indent: 11px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-header .section-title-w {
+ position: relative;
+ z-index: 12
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-header .section-cbox-w .list-comment-empty-w .empty-prompt-w {
+ margin-top: 20px;
+ height: 30px;
+ background: #f0f0f0;
+ text-align: center;
+ opacity: .5;
+ filter: alpha(opacity=50)
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-header .section-cbox-w .list-comment-empty-w .empty-prompt-w .prompt-null-w {
+ line-height: 30px;
+ font-size: 12px;
+ color: #999;
+ text-align: center
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-header .section-cbox-w .list-comment-kuaizhan-w .kuaizhan-prompt-w {
+ cursor: pointer;
+ display: none;
+ margin-top: 20px;
+ height: 30px;
+ background: #f0f0f0;
+ text-align: center;
+ opacity: .5;
+ filter: alpha(opacity=50)
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-header .section-cbox-w .list-comment-kuaizhan-w .kuanzhan-prompt-w .prompt-text-w {
+ line-height: 30px;
+ font-size: 12px;
+ color: #999;
+ text-align: center
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-header .section-cbox-w .list-close-comment-w .close-comment-prompt-w {
+ margin-top: 20px;
+ height: 30px;
+ text-align: center;
+ background: #fdeced;
+ opacity: .5;
+ filter: alpha(opacity=50)
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-header .section-cbox-w .list-close-comment-w .close-comment-prompt-w .close-comment-prompt {
+ line-height: 30px;
+ text-align: center;
+ font-size: 12px;
+ color: #e74851
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-to-shequ-head {
+ color: #4398ed;
+ cursor: pointer;
+ display: none;
+ font-size: 14px;
+ height: 36px;
+ line-height: 36px;
+ margin: 24px 10px 0 20px;
+ float: right
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-avatar-notice-node {
+ background: #e74851;
+ border-radius: 4px;
+ box-shadow: 0 0 3px 3px #fff;
+ cursor: pointer;
+ display: none;
+ height: 8px;
+ position: absolute;
+ right: 0;
+ top: 0;
+ width: 8px
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-collection-btn {
+ border: 1px solid #dfdfdf;
+ border-radius: 24px;
+ color: #666;
+ cursor: pointer;
+ display: none;
+ font-size: 16px;
+ height: 48px;
+ line-height: 48px;
+ margin: auto;
+ text-align: center;
+ width: 144px
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-collection-btn i {
+ display: inline-block;
+ width: 14px;
+ height: 14px;
+ margin-right: 5px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-header/076/images/collect-star.png) no-repeat center;
+ background-size: 100%
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-collection-btn.collected {
+ border: 1px solid #4398ed;
+ color: #4398ed
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-collection-btn.collected i {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-header/076/images/collected-star.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-collection-btn:hover {
+ border: 1px solid #4398ed;
+ color: #4398ed
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-collection-btn:hover i {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-header/076/images/collected-star.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-header .cy-hot-words {
+ position: absolute;
+ right: 0;
+ bottom: 5px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-header .cy-hot-words-container {
+ overflow: hidden
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-header .cy-hot-words-container:after {
+ clear: both;
+ content: "";
+ display: block;
+ height: 0;
+ visibility: hidden
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-header .cy-hot-words-tag {
+ border: 1px solid #f44;
+ border-radius: 2px;
+ box-sizing: border-box;
+ color: #f44;
+ float: left;
+ font-size: 12px;
+ height: 16px;
+ line-height: 14px;
+ text-align: center;
+ width: 28px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-header .cy-hot-words-body {
+ float: left;
+ width: 250px;
+ height: 16px;
+ margin-left: 8px;
+ position: relative
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-header .cy-hot-words-body span {
+ display: block;
+ line-height: 16px;
+ height: 16px;
+ text-overflow: ellipsis;
+ width: 100%;
+ overflow: hidden;
+ white-space: nowrap
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-header .cy-hot-words-body a {
+ color: #333;
+ font-size: 14px;
+ letter-spacing: .5px;
+ text-decoration: underline
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w {
+ display: block;
+ position: relative;
+ zoom: 1;
+ z-index: 2
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .post-wrap-border-l {
+ width: 8px;
+ height: 97px;
+ position: absolute;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/border-l.png);
+ top: 0;
+ left: 0
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .post-wrap-border-r {
+ width: 8px;
+ height: 97px;
+ position: absolute;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/border-r.png);
+ top: 0;
+ right: 0
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .post-wrap-border-t {
+ height: 8px;
+ position: relative
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .post-wrap-border-t .post-wrap-border-t-l {
+ width: 46px;
+ height: 8px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/border-t.png);
+ overflow: hidden;
+ position: absolute;
+ left: 0;
+ top: 0
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .post-wrap-border-t .post-wrap-border-t-r {
+ height: 7px;
+ border-top: 1px solid #4398ed;
+ margin-left: 46px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .module-cmt-box .post-wrap-w .post-wrap-border-t {
+ visibility: hidden;
+ height: 7px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .post-wrap-main {
+ margin: 0 8px;
+ height: 96px;
+ border-bottom: 1px solid #4398ed;
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/cy-logo.png);
+ background-repeat: no-repeat;
+ background-position: center
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .post-wrap-main-focus {
+ background-image: none!important
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .module-cmt-box .post-wrap-w .post-wrap-main {
+ border-top: 1px solid #4398ed
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .post-wrap-main .wrap-area-w {
+ padding: 13px 10px 0
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .post-wrap-main .wrap-area-w .textarea-fw {
+ width: 100%;
+ height: 70px;
+ background: 0 0;
+ overflow-x: hidden;
+ overflow-y: auto;
+ border: 0;
+ font-size: 14px;
+ color: #bfbfbf;
+ resize: none;
+ line-height: normal;
+ text-align: left
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .post-wrap-main .area-textarea-e .textarea-fw {
+ color: #333;
+ background-color: transparent
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w {
+ position: relative;
+ z-index: 12
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w {
+ margin: 15px 0 0 10px;
+ position: relative;
+ float: left
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w ul li {
+ width: 20px;
+ height: 20px;
+ float: left;
+ margin-right: 21px;
+ cursor: pointer
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w ul li.function-face-w {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/face.png);
+ background-repeat: no-repeat;
+ background-position: center
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w ul li.function-face-w:hover {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/face-active.png);
+ background-repeat: no-repeat;
+ background-position: center
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w ul li.function-uploading-w .effect-w,
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w ul li.function-uploading-w .effect-w .uploading-b {
+ display: block;
+ width: 20px;
+ height: 20px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w ul li.function-uploading-w .effect-w .uploading-b {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/image.png);
+ background-repeat: no-repeat;
+ background-position: center
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w ul li.function-e .effect-w .uploading-b,
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w ul li.function-uploading-w:hover .effect-w .uploading-b {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/image-active.png);
+ background-repeat: no-repeat;
+ background-position: center
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw {
+ top: 24px;
+ left: -10px;
+ display: none;
+ width: 300px;
+ height: 145px;
+ position: absolute;
+ z-index: 2;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/face-bg.png);
+ overflow: hidden
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-cont-dw {
+ width: 288px;
+ height: 107px;
+ margin-top: 6px;
+ margin-left: 1px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-cont-dw ul {
+ border-top: 1px dashed #e5e5e5
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-cont-dw ul:first-child {
+ border-top: 0
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-cont-dw ul li {
+ border-left: 1px dashed #e5e5e5;
+ width: 35px;
+ height: 35px;
+ float: left;
+ margin: 0
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-cont-dw ul li:hover {
+ background: #f2f2f2
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-cont-dw ul li:first-child {
+ border-left: 0
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-cont-dw ul:first-child li:first-child {
+ border-top-left-radius: 8px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-cont-dw ul:first-child li:last-child {
+ border-top-right-radius: 8px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-cont-dw ul:last-child li:first-child {
+ border-bottom-left-radius: 8px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-cont-dw ul:last-child li:last-child {
+ border-bottom-right-radius: 8px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-cont-dw ul li a {
+ width: 35px;
+ height: 24px;
+ display: inline-block;
+ text-align: center;
+ overflow: hidden;
+ padding: 8px 0 0
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-user-face-dw {
+ width: 296px;
+ height: 105px;
+ margin-top: 8px;
+ display: none;
+ overflow-y: auto;
+ margin-left: 3px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-user-face-dw ul {
+ margin-left: 1px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-user-face-dw ul li {
+ background-position: center;
+ background-repeat: no-repeat;
+ background-size: 100% 100%;
+ border-radius: 5px;
+ height: 47px;
+ margin-right: 0;
+ width: 47px;
+ box-sizing: border-box;
+ border-bottom: 1px dotted #e5e5e5;
+ position: relative
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-user-face-dw ul li.user-face-image.managing:after {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/del-btn.png);
+ content: "";
+ position: absolute;
+ display: block;
+ right: 0;
+ width: 20px;
+ height: 20px;
+ background-position: center;
+ background-repeat: no-repeat
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-user-face-dw ul li.user-face-image.managing:hover:after {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/del-btn-hover.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-user-face-dw ul .upload-face-btn {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/add.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-user-face-dw li.cancel-face-btn:hover,
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-user-face-dw li.manage-face-btn:hover,
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-user-face-dw li.upload-face-btn:hover {
+ background-color: #f2f2f2
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-user-face-dw ul .manage-face-btn {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/manage-btn.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-user-face-dw ul .cancel-face-btn {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/cancel-manage-btn.png);
+ display: none
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .action-face-tab-dw {
+ width: 298px;
+ height: 30px;
+ background: #f2f2f2;
+ margin-left: 1px;
+ border-bottom-left-radius: 9px;
+ border-bottom-right-radius: 9px;
+ border-top: 1px solid #e5e5e5
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .action-face-tab-dw ul li {
+ height: 31px;
+ width: 41px;
+ float: left;
+ margin-top: -1px;
+ margin-right: 0;
+ background-position: center;
+ background-repeat: no-repeat
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .action-face-tab-dw ul li.active,
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .action-face-tab-dw ul li:hover {
+ background-color: #fff;
+ border-left: 1px solid #e5e5e5;
+ border-right: 1px solid #e5e5e5
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .action-face-tab-dw ul li.official-face-btn {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/face-ico-grey.png);
+ margin-left: 10px;
+ box-sizing: border-box
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .action-face-tab-dw ul li.user-face-btn {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/heart.png);
+ box-sizing: border-box
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .cy-confirm-box {
+ width: 298px;
+ height: 137px;
+ background: #fff;
+ position: absolute;
+ top: 6px;
+ left: 1px;
+ border-radius: 9px;
+ display: none
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .cy-confirm-text {
+ width: 100%;
+ height: 40px;
+ margin-top: 20px;
+ text-align: center
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .cy-confirm-text span {
+ line-height: 40px;
+ font-size: 16px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .cy-confirm-btn-row {
+ width: 100%;
+ height: 28px;
+ position: relative;
+ margin-top: 15px;
+ text-align: center
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .cy-confirm-btn-cancel {
+ border: 1px solid #4398ed;
+ border-radius: 6px;
+ color: #4398ed;
+ cursor: pointer;
+ display: inline-block;
+ height: 28px;
+ line-height: 28px;
+ text-align: center;
+ width: 96px;
+ margin-right: 16px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .cy-confirm-btn-confirm {
+ background-color: #4398ed;
+ border: 1px solid #4398ed;
+ border-radius: 6px;
+ color: #fff;
+ cursor: pointer;
+ display: inline-block;
+ height: 28px;
+ line-height: 28px;
+ text-align: center;
+ width: 96px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .uploading-wrapper-dw {
+ top: 24px;
+ position: absolute;
+ left: -10px;
+ display: none;
+ width: 200px;
+ padding-bottom: 8px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .uploading-wrapper-dw .uploading-wrapper-dw-t {
+ width: 200px;
+ height: 14px;
+ position: absolute;
+ top: 0;
+ left: 0;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/pic-bg-t.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .uploading-wrapper-dw .uploading-wrapper-dw-b {
+ width: 200px;
+ height: 8px;
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/pic-bg-b.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .uploading-wrapper-dw .wrapper-loading-dw {
+ width: 198px;
+ height: 198px;
+ margin-top: 5px;
+ padding: 1px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .uploading-wrapper-dw .wrapper-image-dw {
+ margin-top: 13px;
+ border-left: 1px solid #4398ed;
+ border-right: 1px solid #4398ed;
+ background: #FFF
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .uploading-wrapper-dw .wrapper-image-dw .image-close-dw {
+ height: 18px;
+ width: 100%
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .uploading-wrapper-dw .wrapper-image-dw .image-close-dw a {
+ float: right;
+ width: 18px;
+ height: 18px;
+ overflow: hidden;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/b17.png) no-repeat;
+ margin-right: 8px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .uploading-wrapper-dw .wrapper-image-dw .image-close-dw a:hover {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/b18.png) no-repeat
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .uploading-wrapper-dw .wrapper-image-dw .image-pic-dw {
+ padding: 7px 0 16px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .uploading-wrapper-dw .wrapper-image-dw .image-pic-dw img {
+ display: block;
+ margin: 0 auto;
+ min-height: 60px;
+ max-height: 150px;
+ min-width: 60px;
+ max-width: 150px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .uploading-efw .wrapper-loading-dw {
+ padding: 53px 0 50px;
+ background-color: #fff;
+ border: 2px solid #ccd4d9;
+ border-top: 0;
+ width: 190px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .uploading-efw .wrapper-loading-dw .loading-word-dw {
+ height: 22px;
+ text-align: center;
+ color: #999
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .uploading-efw .wrapper-loading-dw .loading-word-dw .word-icon-dw {
+ display: inline-block;
+ width: 22px;
+ height: 22px;
+ margin: 0 5px 0 0;
+ vertical-align: -6px;
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/loading.gif);
+ background-repeat: no-repeat
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .uploading-efw .wrapper-loading-dw .loading-btn-dw {
+ padding: 20px 0 0;
+ height: 25px;
+ text-align: center
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .uploading-efw .wrapper-loading-dw .loading-btn-dw a {
+ display: inline-block;
+ width: 65px;
+ line-height: 16px;
+ padding: 5px 0 4px;
+ text-align: center;
+ font-size: 12px;
+ background-color: #699ec3;
+ color: #fff
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .uploading-efw .wrapper-loading-dw .loading-btn-dw a:hover {
+ text-decoration: none;
+ background-color: #5788aa
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-issue-w {
+ float: right;
+ height: 30px;
+ margin-top: 10px;
+ *width: 102px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-issue-w .issue-btn-w,
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-issue-w .issue-btn-w a {
+ text-decoration: none!important;
+ display: block;
+ float: right;
+ *width: 102px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-issue-w .issue-btn-w a .btn-fw {
+ width: 102px;
+ height: 30px;
+ overflow: hidden;
+ border: 0;
+ padding: 0;
+ margin: 0;
+ cursor: pointer;
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/post-btn.png);
+ background-repeat: no-repeat;
+ background-color: transparent
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-issue-w .issue-btn-w a .btn-fw:hover {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/post-btn-hover.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .isSubmit .post-wrap-w .wrap-action-w .action-issue-w .issue-btn-w a .btn-fw {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/loading.gif)
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .cbox-prompt-w {
+ float: right;
+ height: 30px;
+ line-height: 30px;
+ margin-right: 20px;
+ margin-top: 10px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .cbox-prompt-w .prompt-empty-w {
+ color: #4398ed;
+ font-size: 12px;
+ display: none
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .post-wrap-main .wrap-area-w .textarea-fw {
+ box-shadow: none;
+ -webkit-box-shadow: none;
+ -moz-box-shadow: none
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-cont-dw ul li span {
+ display: inline-block;
+ width: 22px;
+ height: 22px;
+ margin: 8px 9px;
+ overflow: hidden
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/face-map.png) no-repeat center
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_01 {
+ background-position: -2px -2px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_02 {
+ background-position: -2px -24px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_03 {
+ background-position: -1px -49px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_04 {
+ background-position: -2px -73px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_05 {
+ background-position: -2px -97px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_06 {
+ background-position: -2px -121px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_07 {
+ background-position: -2px -145px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_08 {
+ background-position: -2px -168px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_09 {
+ background-position: -2px -192px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_10 {
+ background-position: -2px -215px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_11 {
+ background-position: -2px -238px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_12 {
+ background-position: -2px -260px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_13 {
+ background-position: -2px -284px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_14 {
+ background-position: -2px -307px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_15 {
+ background-position: -2px -331px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_16 {
+ background-position: -2px -355px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_17 {
+ background-position: -2px -378px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_18 {
+ background-position: -2px -401px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_19 {
+ background-position: -2px -425px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_20 {
+ background-position: -2px -445px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_21 {
+ background-position: -2px -465px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_22 {
+ background-position: -2px -488px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_23 {
+ background-position: -2px -511px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_24 {
+ background-position: -2px -535px
+ }
+
+ @media (-webkit-min-device-pixel-ratio:2),
+ (min--moz-device-pixel-ratio:2),
+ (min-resolution:2dppx),
+ (min-resolution:192dpi) {
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/face-map-2x.png) no-repeat center;
+ background-size: 44px auto
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_01 {
+ background-position: 0 -176px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_02 {
+ background-position: -22px -66px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_03 {
+ background-position: 0 -44px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_04 {
+ background-position: -22px -154px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_05 {
+ background-position: 0 -88px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_06 {
+ background-position: -22px 0
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_07 {
+ background-position: 0 -110px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_08 {
+ background-position: 0 -66px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_09 {
+ background-position: 0 0
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_10 {
+ background-position: 0 -22px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_11 {
+ background-position: -22px -44px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_12 {
+ background-position: 0 -132px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_13 {
+ background-position: -22px -88px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_14 {
+ background-position: -22px -22px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_15 {
+ background-position: 0 -154px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_16 {
+ background-position: -22px -132px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_17 {
+ background-position: -22px -110px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_18 {
+ background-position: 0 -220px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_19 {
+ background-position: 0 -198px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_20 {
+ background-position: -22px -198px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_21 {
+ background-position: -22px -220px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_22 {
+ background-position: -22px -244px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_23 {
+ background-position: 0 -132px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .face-item.face_24 {
+ background-position: -22px -176px
+ }
+ }
+
+ @media (-webkit-min-device-pixel-ratio:1.5),
+ (min--moz-device-pixel-ratio:1.5),
+ (min-resolution:1.5dppx),
+ (min-resolution:144dpi) {
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w ul li.function-face-w {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/face-1.5x.png);
+ background-repeat: no-repeat;
+ background-size: 100% 100%
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w ul li.function-face-w:hover {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/face-active-1.5x.png);
+ background-repeat: no-repeat;
+ background-size: 100% 100%
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w ul li.function-uploading-w .effect-w .uploading-b {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/image-1.5x.png);
+ background-repeat: no-repeat;
+ background-size: 100% 100%
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w ul li.function-e .effect-w .uploading-b,
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w ul li.function-uploading-w:hover .effect-w .uploading-b {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/image-active-1.5x.png);
+ background-repeat: no-repeat;
+ background-size: 100% 100%
+ }
+ }
+
+ @media (-webkit-min-device-pixel-ratio:2),
+ (min--moz-device-pixel-ratio:2),
+ (min-resolution:2dppx),
+ (min-resolution:192dpi) {
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w ul li.function-face-w {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/face-2x.png);
+ background-repeat: no-repeat;
+ background-size: 100% 100%
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w ul li.function-face-w:hover {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/face-active-2x.png);
+ background-repeat: no-repeat;
+ background-size: 100% 100%
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w ul li.function-uploading-w .effect-w .uploading-b {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/image-2x.png);
+ background-repeat: no-repeat;
+ background-size: 100% 100%
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w ul li.function-e .effect-w .uploading-b,
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w ul li.function-uploading-w:hover .effect-w .uploading-b {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/image-active-2x.png);
+ background-repeat: no-repeat;
+ background-size: 100% 100%
+ }
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w {
+ display: block;
+ position: relative;
+ zoom: 1
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .post-wrap-border-l {
+ width: 8px;
+ height: 97px;
+ position: absolute;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/border-l.png);
+ top: 0;
+ left: 0
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .post-wrap-border-r {
+ width: 8px;
+ height: 97px;
+ position: absolute;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/border-r.png);
+ top: 0;
+ right: 0
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .post-wrap-border-t {
+ position: relative
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .post-wrap-border-t .post-wrap-border-t-l {
+ width: 46px;
+ height: 8px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/border-t.png);
+ overflow: hidden;
+ position: absolute;
+ left: 0;
+ top: 0
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .post-wrap-border-t .post-wrap-border-t-r {
+ height: 7px;
+ border-top: 1px solid #4398ed;
+ margin-left: 46px
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .post-wrap-border-t {
+ visibility: hidden;
+ height: 7px
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .post-wrap-main {
+ margin: 0 8px;
+ height: 96px;
+ border-bottom: 1px solid #4398ed;
+ border-top: 1px solid #4398ed;
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/cy-logo.png);
+ background-repeat: no-repeat;
+ background-position: center
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .post-wrap-main-focus {
+ background-image: none!important
+ }
+
+ .module-cy-user-page .module-cmt-list .module-cmt-box .post-wrap-w .post-wrap-main {
+ border-top: 1px solid #4398ed
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .post-wrap-main .wrap-area-w {
+ padding: 13px 10px 0
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .post-wrap-main .wrap-area-w .textarea-fw {
+ width: 100%;
+ height: 70px;
+ background: 0 0;
+ overflow-x: hidden;
+ overflow-y: auto;
+ border: 0;
+ font-size: 14px;
+ color: #bfbfbf;
+ resize: none;
+ line-height: normal;
+ text-align: left
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .post-wrap-main .area-textarea-e .textarea-fw {
+ color: #333;
+ background-color: transparent
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w {
+ position: relative;
+ z-index: 12
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w {
+ margin: 15px 0 0 10px;
+ position: relative;
+ float: left
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w ul li {
+ width: 20px;
+ height: 20px;
+ float: left;
+ margin-right: 21px;
+ cursor: pointer
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w ul li.function-face-w {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/face-ico.png)
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w ul li.function-e,
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w ul li.function-face-w:hover {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/face-ico-hover.png)
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w ul li.function-uploading-w {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/pic-ico.png)
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w ul li.function-uploading-w:hover {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/pic-ico-hover.png)
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw {
+ top: 24px;
+ left: -10px;
+ display: none;
+ width: 290px;
+ height: 115px;
+ position: absolute;
+ z-index: 2;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/face-bg.png)
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-cont-dw {
+ width: 288px;
+ height: 108px;
+ margin-top: 5px;
+ padding: 1px
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-cont-dw ul {
+ border-top: 1px dashed #e5e5e5
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-cont-dw ul:first-child {
+ border-top: 0
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-cont-dw ul li {
+ border-left: 1px dashed #e5e5e5;
+ width: 35px;
+ height: 35px;
+ float: left;
+ margin: 0
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-cont-dw ul li:hover {
+ background: #f2f2f2
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-cont-dw ul li:first-child {
+ border-left: 0
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-cont-dw ul:first-child li:first-child {
+ border-top-left-radius: 8px
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-cont-dw ul:first-child li:last-child {
+ border-top-right-radius: 8px
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-cont-dw ul:last-child li:first-child {
+ border-bottom-left-radius: 8px
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-cont-dw ul:last-child li:last-child {
+ border-bottom-right-radius: 8px
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-cont-dw ul li a {
+ width: 35px;
+ height: 24px;
+ display: inline-block;
+ text-align: center;
+ overflow: hidden;
+ padding: 8px 0 0
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .uploading-wrapper-dw {
+ top: 24px;
+ position: absolute;
+ left: -10px;
+ display: none;
+ width: 200px;
+ padding-bottom: 8px
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .uploading-wrapper-dw .uploading-wrapper-dw-t {
+ width: 200px;
+ height: 14px;
+ position: absolute;
+ top: 0;
+ left: 0;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/pic-bg-t.png)
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .uploading-wrapper-dw .uploading-wrapper-dw-b {
+ width: 200px;
+ height: 8px;
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/pic-bg-b.png)
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .uploading-wrapper-dw .wrapper-loading-dw {
+ width: 198px;
+ height: 198px;
+ margin-top: 5px;
+ padding: 1px
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .uploading-wrapper-dw .wrapper-image-dw {
+ margin-top: 13px;
+ border-left: 1px solid #4398ed;
+ border-right: 1px solid #4398ed;
+ background: #FFF
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .uploading-wrapper-dw .wrapper-image-dw .image-close-dw {
+ height: 18px;
+ width: 100%
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .uploading-wrapper-dw .wrapper-image-dw .image-close-dw a {
+ float: right;
+ width: 18px;
+ height: 18px;
+ overflow: hidden;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/b17.png) no-repeat;
+ margin-right: 8px
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .uploading-wrapper-dw .wrapper-image-dw .image-close-dw a:hover {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/b18.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .uploading-wrapper-dw .wrapper-image-dw .image-pic-dw {
+ padding: 7px 0 16px
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .uploading-wrapper-dw .wrapper-image-dw .image-pic-dw img {
+ display: block;
+ margin: 0 auto;
+ min-height: 60px;
+ max-height: 150px;
+ min-width: 60px;
+ max-width: 150px
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .uploading-efw .wrapper-loading-dw {
+ padding: 53px 0 50px;
+ background-color: #fff;
+ border: 2px solid #ccd4d9;
+ border-top: 0;
+ width: 190px
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .uploading-efw .wrapper-loading-dw .loading-word-dw {
+ height: 22px;
+ text-align: center;
+ color: #999
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .uploading-efw .wrapper-loading-dw .loading-word-dw .word-icon-dw {
+ display: inline-block;
+ width: 22px;
+ height: 22px;
+ margin: 0 5px 0 0;
+ vertical-align: -6px;
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/loading.gif);
+ background-repeat: no-repeat
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .uploading-efw .wrapper-loading-dw .loading-btn-dw {
+ padding: 20px 0 0;
+ height: 25px;
+ text-align: center
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .uploading-efw .wrapper-loading-dw .loading-btn-dw a {
+ display: inline-block;
+ width: 65px;
+ line-height: 16px;
+ padding: 5px 0 4px;
+ text-align: center;
+ font-size: 12px;
+ background-color: #699ec3;
+ color: #fff
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .uploading-efw .wrapper-loading-dw .loading-btn-dw a:hover {
+ text-decoration: none;
+ background-color: #5788aa
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-issue-w {
+ float: right;
+ height: 30px;
+ margin-top: 10px
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-issue-w .issue-btn-w,
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-issue-w .issue-btn-w a {
+ text-decoration: none!important;
+ display: block;
+ float: right;
+ *width: 102px
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-issue-w .issue-btn-w a .btn-fw {
+ width: 102px;
+ height: 30px;
+ overflow: hidden;
+ border: 0;
+ padding: 0;
+ margin: 0;
+ cursor: pointer;
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/post-btn.png);
+ background-repeat: no-repeat;
+ background-color: transparent
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .action-issue-w .issue-btn-w a .btn-fw:hover {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/post-btn-hover.png)
+ }
+
+ .module-cy-user-page .isSubmit .post-wrap-w .wrap-action-w .action-issue-w .issue-btn-w a .btn-fw {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-box/054/images/loading.gif)
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .cbox-prompt-w {
+ float: right;
+ height: 30px;
+ line-height: 30px;
+ margin-right: 20px;
+ margin-top: 10px
+ }
+
+ .module-cy-user-page .module-cmt-box .post-wrap-w .wrap-action-w .cbox-prompt-w .prompt-empty-w {
+ color: #4398ed;
+ font-size: 12px;
+ display: none
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-user-face-dw.nano {
+ position: relative;
+ overflow: hidden
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-user-face-dw.nano&gt;
+ .nano-content {
+ position: absolute;
+ overflow: scroll;
+ overflow-x: hidden;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ height: 100%
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-user-face-dw.nano&gt;
+ .nano-content:focus {
+ outline: thin dotted
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-user-face-dw.nano&gt;
+ .nano-content::-webkit-scrollbar {
+ display: none
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-user-face-dw.has-scrollbar&gt;
+ .nano-content::-webkit-scrollbar {
+ display: block
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-user-face-dw.nano&gt;
+ .nano-pane {
+ background: #fff;
+ position: absolute;
+ width: 4px;
+ right: 0;
+ top: 0;
+ bottom: 0;
+ visibility: hidden\9;
+ opacity: .01;
+ margin-right: 3px;
+ margin-top: 2px;
+ float: right;
+ -webkit-transition: .2s;
+ -moz-transition: .2s;
+ -o-transition: .2s;
+ transition: .2s;
+ -moz-border-radius: 2px;
+ -webkit-border-radius: 2px;
+ border-radius: 2px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-user-face-dw.nano&gt;
+ .nano-pane&gt;
+ .nano-slider {
+ background: #e5e5e5;
+ position: relative;
+ -moz-border-radius: 2px;
+ -webkit-border-radius: 2px;
+ border-radius: 2px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-box .post-wrap-w .wrap-action-w .action-function-w .face-wrapper-dw .wrapper-user-face-dw.nano:hover&gt;
+ .nano-pane,
+ .nano-pane.active,
+ .nano-pane.flashed {
+ visibility: visible\9;
+ opacity: .99
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .cmt-list-type {
+ line-height: 30px;
+ height: 30px;
+ position: relative;
+ margin-top: 50px;
+ overflow: hidden
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .cmt-list-type .type-lists .type-list {
+ float: left;
+ width: 66px;
+ height: 29px;
+ text-align: center;
+ color: #4398ed;
+ font-size: 16px;
+ border-bottom: 1px solid #4398ed;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-list/055/images/cmtlist-bg.png) no-repeat;
+ background-position: top left;
+ font-family: "Microsoft Yahei"
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .cmt-list-type .type-lists .active {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-list/055/images/cmtlist-bg-active.png) no-repeat;
+ position: relative;
+ bottom: -1px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .cmt-list-type .cmt-list-border {
+ position: relative;
+ bottom: 1px;
+ left: 66px;
+ height: 1px;
+ background-color: #4398ed
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .cmt-list-type .cmt-list-number {
+ position: absolute;
+ right: 0;
+ bottom: 0
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .cmt-list-type .cmt-list-number .comment-number {
+ color: #4398ed;
+ font-size: 14px;
+ font-family: "Microsoft YaHei"
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .cmt-list-type .cmt-list-number .comment-number .number {
+ color: #4398ed;
+ font-size: 20px;
+ margin: 0 5px;
+ font-family: Impact
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .block-title-gw {
+ padding: 18px 0 0
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .block-title-gw ul li {
+ float: left;
+ line-height: 18px;
+ padding: 0 0 10px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .block-title-gw ul li .title-name-gw {
+ font-size: 16px;
+ font-family: "Microsoft YaHei";
+ color: #4398ed
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .block-title-gw ul li .title-name-gw .title-name-gw-tag {
+ float: left;
+ width: 5px;
+ height: 18px;
+ margin-right: 13px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-list/055/images/title-tag.png) no-repeat
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .block-cont-gw {
+ padding: 13px 0 11px;
+ border-bottom: 1px dashed #e5e5e5
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .block-cont-gw .cont-head-gw {
+ float: left;
+ position: relative;
+ width: 42px;
+ z-index: 1
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .block-cont-gw .cont-head-gw .head-img-gw {
+ padding: 7px 0 0;
+ width: 42px;
+ height: 42px;
+ overflow: hidden
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .block-cont-gw .cont-head-gw .head-img-gw .img-corner {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-list/055/images/img-corner.png) no-repeat;
+ position: absolute;
+ width: 42px;
+ height: 42px;
+ top: 7px;
+ left: 0;
+ display: none
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .block-cont-gw .cont-head-gw .head-img-gw img {
+ width: 42px;
+ height: 42px;
+ border-radius: 42px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .block-cont-gw .msg-wrap-gw {
+ padding: 0 0 0 62px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .block-cont-gw .wrap-user-gw {
+ height: 24px;
+ line-height: 16px;
+ padding: 1px 0 0
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-user-gw .user-address-gw,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-user-gw .user-name-gw {
+ display: inline-block;
+ padding: 5px 7px 0 0;
+ cursor: default
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-user-gw .user-name-gw a {
+ color: #4398ed
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-user-gw .user-address-gw {
+ color: #dbdbdb
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-user-gw .user-spread-gw,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-user-gw .user-top-gw {
+ float: right;
+ padding: 4px 0 0 9px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-user-gw .user-spread-gw i,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-user-gw .user-top-gw i {
+ display: block;
+ width: 31px;
+ height: 18px;
+ overflow: hidden;
+ line-height: 500px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-user-gw .user-top-gw i {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-list/055/images/b01.png);
+ background-position: 0 0
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-user-gw .user-spread-gw i {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-list/055/images/b02.png);
+ background-position: 0 0
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-user-gw .user-time-gw {
+ float: right;
+ padding: 5px 0 0;
+ font-family: Arial;
+ color: silver
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-issue-gw {
+ padding: 12px 0 0
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .cy-see-more {
+ color: #666;
+ cursor: pointer;
+ display: none;
+ height: 20px;
+ line-height: 20px;
+ position: relative;
+ text-align: center;
+ border-radius: 5px;
+ width: 100%
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .cy-see-more:hover {
+ background-color: #ecf4fd
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .cy-see-more span {
+ font-size: 14px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .cy-see-more i {
+ display: inline-block;
+ width: 20px;
+ height: 20px;
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-list/055/images/icon2.png);
+ background-size: 100% 100%
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-issue-gw .issue-wrap-gw {
+ line-height: 22px;
+ font-size: 14px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-issue-gw .issue-wrap-gw .wrap-word-gw img {
+ margin: 1px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-blocked-gw {
+ padding: 12px 0 0
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-blocked-gw .wrap-blocked-title {
+ color: #8a8a8a;
+ line-height: 20px;
+ vertical-align: middle;
+ font-size: 14px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-blocked-gw .wrap-blocked-icon {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-list/055/images/appeal-reject.png) no-repeat;
+ width: 20px;
+ height: 20px;
+ vertical-align: middle;
+ display: inline-block;
+ margin-right: 10px;
+ opacity: .8
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-action-gw {
+ line-height: 16px;
+ margin: 11px 0 0
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-action-gw .action-from-gw {
+ float: left;
+ line-height: 16px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-from-gw,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-from-gw a {
+ color: #b8b8b8
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-from-gw a:hover {
+ color: #EE542A;
+ text-decoration: underline
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-action-gw .action-click-gw {
+ text-align: right
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-action-gw .action-click-gw span a {
+ color: #999;
+ cursor: pointer
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-action-gw .action-click-gw span a .icon-name-bg {
+ color: #999
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-action-gw .action-click-gw span a:hover,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-action-gw .action-click-gw span a:hover .icon-name-bg {
+ color: #ff4e00;
+ text-decoration: none
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-action-gw .action-click-gw span a.reported:hover,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-action-gw .action-click-gw span a.reported:hover .icon-name-bg {
+ color: #999;
+ cursor: default
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-action-gw .action-click-gw span a .icon-flag {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-list/055/images/flag.png);
+ background-position: 0 0;
+ margin-right: 4px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-action-gw .action-click-gw span a:hover .icon-flag {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-list/055/images/flag-hover.png);
+ background-position: 0 0;
+ margin-right: 4px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-action-gw .action-click-gw span a.reported:hover .icon-flag {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-list/055/images/flag.png);
+ background-position: 0 0;
+ margin-right: 4px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-action-gw .action-click-gw .icon-gw {
+ display: inline-block;
+ width: 16px;
+ height: 15px;
+ overflow: hidden;
+ vertical-align: -4px;
+ *vertical-align: 0
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-action-gw .action-click-gw .icon-name-bg {
+ padding: 0 0 0 4px;
+ font-family: Arial;
+ *position: relative;
+ *top: 3px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-action-gw .action-click-gw .click-cai-gw a,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-action-gw .action-click-gw .click-ding-gw a {
+ text-decoration: none
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw a .icon-ding-bg {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-list/055/images/ding.png);
+ background-position: 0 0
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw a:hover .icon-ding-bg {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-list/055/images/ding-active.png);
+ background-position: 0 0
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw a .icon-cai-bg {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-list/055/images/cai.png);
+ background-position: 0 0
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw a:hover .icon-cai-bg {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-list/055/images/cai-active.png);
+ background-position: 0 0
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw .click-disable-eg a .icon-ding-bg,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw .click-disable-eg a:hover .icon-ding-bg {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-list/055/images/ding-active.png);
+ background-position: 0 0;
+ cursor: default
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw .click-disable-eg a .icon-cai-bg,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw .click-disable-eg a:hover .icon-cai-bg {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-list/055/images/cai-active.png);
+ background-position: 0 0;
+ cursor: default
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw .click-disable-eg a em.icon-name-bg {
+ color: #4398ed
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw .click-disable-eg a:hover,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw .click-disable-eg a:hover em.icon-name-bg {
+ text-decoration: none;
+ cursor: default
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-action-gw .action-click-gw .click-report-gw {
+ display: none
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .block-cont-gw:hover .wrap-action-gw .action-click-gw .click-report-gw {
+ display: inline
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .module-cmt-box {
+ margin: 10px 0 0
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .module-cmt-box .textarea-fw {
+ height: 44px!important
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-action-gw .action-click-gw .gap-gw {
+ width: 1px;
+ height: 11px;
+ display: inline-block;
+ overflow: hidden;
+ margin: 0 9px -1px 9px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-action-gw .action-click-gw .gap-line-gw {
+ background-color: #e5e5e5
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-build-gw {
+ margin: 9px 0 6px;
+ position: relative;
+ z-index: 0
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-build-gw .build-floor-gw {
+ padding: 4px 4px 6px;
+ border: 1px solid #dee4e9;
+ background-color: #fff;
+ position: relative;
+ z-index: 2
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-build-gw .build-first-floor-gw {
+ padding: 0 5px 7px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-build-gw .build-msg-gw {
+ padding: 8px 10px 0;
+ position: relative;
+ z-index: 1
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .build-msg-gw .user-floor-gw {
+ font-size: 14px;
+ font-family: Arial
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .build-msg-gw .wrap-action-gw {
+ margin: 8px 0 0;
+ visibility: hidden
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .build-msg-gw .wrap-action-gw-hover {
+ visibility: visible
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .build-msg-gw .wrap-action-gw-hover span a {
+ color: #ccc
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .build-middle-floor-dw .wrap-action-gw {
+ margin: 3px 0 0;
+ visibility: hidden
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .build-middle-floor-dw .wrap-action-gw-hover {
+ visibility: visible
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .build-middle-floor-dw .wrap-action-gw-hover span a {
+ color: #ccc
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-build-gw .build-middle-floor-dw {
+ padding: 8px 10px 10px;
+ border: 1px solid #f6f6f6;
+ border-top: 0
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-build-gw .bulid-middle-hide-floor-dw {
+ padding: 5px;
+ border: 1px solid #f6f6f6;
+ border-top: 0
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-build-gw .bulid-middle-hide-floor-dw a {
+ display: block;
+ text-align: center;
+ line-height: 16px;
+ font-size: 12px;
+ padding: 5px 0 4px;
+ background-color: #e5e5e5;
+ color: #b2b2b2
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-build-gw .block-cont-hover-e {
+ background-color: #f5fafe;
+ border: 1px solid #e5e5e5
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-user-gw .user-admin-gw {
+ display: inline-block;
+ height: 21px;
+ padding: 0 0 0 24px;
+ overflow: hidden;
+ margin: 0 5px 0 -1px;
+ vertical-align: -6px;
+ cursor: pointer;
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-list/055/images/p-lvAdmin.png);
+ background-position: left 0;
+ background-repeat: no-repeat
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-user-gw .user-admin-gw i {
+ display: inline-block;
+ height: 21px;
+ line-height: 23px;
+ padding: 0 5px 0 0;
+ font-size: 12px;
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-list/055/images/p-lvAdminbg.png);
+ background-position: right 0;
+ background-repeat: no-repeat;
+ color: #fff
+ }
+
+ @media (-webkit-min-device-pixel-ratio:1.5),
+ (min--moz-device-pixel-ratio:1.5),
+ (min-resolution:1.5dppx),
+ (min-resolution:144dpi) {
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw a .icon-ding-bg {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-list/055/images/ding-1.5x.png);
+ background-size: 100% 100%
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw .click-disable-eg a .icon-ding-bg,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw .click-disable-eg a:hover .icon-ding-bg,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw a:hover .icon-ding-bg {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-list/055/images/ding-active-1.5x.png);
+ background-size: 100% 100%
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw a .icon-cai-bg {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-list/055/images/cai-1.5x.png);
+ background-position: 0 0;
+ background-size: 100% 100%
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw a:hover .icon-cai-bg {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-list/055/images/cai-active-1.5x.png);
+ background-position: 0 0;
+ background-size: 100% 100%
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw .click-disable-eg a .icon-cai-bg,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw .click-disable-eg a:hover .icon-cai-bg {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-list/055/images/cai-active-1.5x.png);
+ background-position: 0 0;
+ background-size: 100% 100%;
+ cursor: default
+ }
+ }
+
+ @media (-webkit-min-device-pixel-ratio:2),
+ (min--moz-device-pixel-ratio:2),
+ (min-resolution:2dppx),
+ (min-resolution:192dpi) {
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw a .icon-ding-bg {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-list/055/images/ding-2x.png);
+ background-size: 100% 100%
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw .click-disable-eg a .icon-ding-bg,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw .click-disable-eg a:hover .icon-ding-bg,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw a:hover .icon-ding-bg {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-list/055/images/ding-active-2x.png);
+ background-size: 100% 100%
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw a .icon-cai-bg {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-list/055/images/cai-2x.png);
+ background-size: 100% 100%;
+ background-position: 0 0
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw a:hover .icon-cai-bg {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-list/055/images/cai-active-2x.png);
+ background-size: 100% 100%;
+ background-position: 0 0
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw .click-disable-eg a .icon-cai-bg,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .action-click-gw .click-disable-eg a:hover .icon-cai-bg {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-list/055/images/cai-active-2x.png);
+ background-size: 100% 100%;
+ background-position: 0 0;
+ cursor: default
+ }
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .picture-show-bg {
+ background-color: #f5f5f5
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .picture-box-gw {
+ margin: 13px 0 0;
+ padding: 18px 20px 30px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .picture-box-gw .box-action-gw {
+ line-height: 16px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .picture-box-gw .box-action-gw ul li {
+ float: left
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .picture-box-gw .box-action-gw ul li .gap-gw {
+ width: 1px;
+ height: 11px;
+ margin: 0 7px;
+ vertical-align: -1px;
+ display: inline-block;
+ overflow: hidden
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .picture-box-gw .box-action-gw ul li.action-area-gw .area-icon-gw {
+ display: inline-block;
+ overflow: hidden
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .picture-box-gw .box-action-gw ul li.action-hide-gw .area-icon-gw {
+ width: 12px;
+ height: 12px;
+ margin: 0 6px 0 0;
+ vertical-align: -2px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-list/055/images/pack-up.png) no-repeat
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .picture-box-gw .box-action-gw ul li.action-hide-gw:hover .area-icon-gw {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-list/055/images/pack-up-active.png) no-repeat
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .picture-box-gw .box-action-gw ul li.action-look-gw .area-icon-gw {
+ width: 12px;
+ height: 12px;
+ margin: 0 7px 0 0;
+ vertical-align: -2px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-list/055/images/look-img.png) no-repeat
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .picture-box-gw .box-action-gw ul li.action-look-gw:hover .area-icon-gw {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-list/055/images/look-img-active.png) no-repeat
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .picture-box-gw .box-action-gw ul li.action-left-gw .area-icon-gw,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .picture-box-gw .box-action-gw ul li.action-right-gw .area-icon-gw {
+ width: 7px;
+ height: 8px;
+ margin: 0 7px 0 0;
+ vertical-align: 0
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .picture-box-gw .box-area-gw .area-image-gw {
+ text-align: center;
+ margin: 9px auto 0
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .picture-box-gw .box-area-gw .area-image-gw img {
+ display: block;
+ margin: 0 auto;
+ max-width: 400px;
+ max-height: 400px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-picture-hide-e .picture-box-gw {
+ padding: 0;
+ margin: 0
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-picture-hide-e .picture-box-gw .box-area-gw .area-image-gw {
+ margin: 9px 0 0
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-picture-hide-e .picture-box-gw .box-area-gw .area-image-gw img {
+ margin: 0;
+ max-width: 150px;
+ max-height: 150px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-picture-hide-e .picture-box-gw .box-action-gw {
+ display: none
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-build-gw .wrap-picture-hide-e .picture-box-gw {
+ margin: 10px 0 0
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-build-gw .wrap-picture-hide-e .picture-box-gw .box-area-gw .area-image-gw {
+ padding: 0;
+ text-align: left;
+ zoom: 1
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-build-gw .wrap-picture-show-gw {
+ padding: 0 0 4px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-build-gw .picture-box-gw {
+ margin: 13px 0 0;
+ padding: 0 0 10px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .picture-box-gw .box-action-gw a {
+ color: #999
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .picture-box-gw .box-action-gw a:hover {
+ color: #4398ed
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .picture-box-gw .box-action-gw ul li .gap-bg {
+ background-color: #d6d6d6
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .picture-box-gw .box-action-gw ul li.action-left-gw i.area-icon-gw {
+ background-position: -175px -50px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .picture-box-gw .box-action-gw ul li.action-right-gw i.area-icon-gw {
+ background-position: -175px -75px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-picture-hide-e .area-image-gw img {
+ cursor: url(https://changyan.itc.cn/mdevp/extensions/cmt-list/055/images/big.cur), auto!important
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .area-image-e img {
+ cursor: url(https://changyan.itc.cn/mdevp/extensions/cmt-list/055/images/small.cur), auto!important
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-build-gw .picture-box-gw,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-picture-hide-e .picture-box-gw {
+ border: 0;
+ background-color: transparent
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-user-gw .cy-feed-tag {
+ box-sizing: border-box;
+ border: 1px solid #f44;
+ border-radius: 2px;
+ color: #f44;
+ display: inline-block;
+ font-size: 12px;
+ height: 18px;
+ line-height: 16px;
+ text-align: center;
+ width: 36px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-user-gw .cy-feed-time {
+ color: silver;
+ float: right;
+ font-size: 12px;
+ padding-top: 5px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-word-gw.cy-feed-title {
+ color: #333;
+ cursor: pointer
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list a.cy-feed-link:hover {
+ text-decoration: none
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .picture-box-gw.cy-feed-picture-box .cy-feed-img-link {
+ display: block
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .picture-box-gw.cy-feed-picture-box .cy-feed-img-link:after {
+ clear: both;
+ content: "";
+ display: block;
+ height: 0;
+ visibility: hidden
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .picture-box-gw.cy-feed-picture-box img {
+ box-sizing: border-box;
+ width: 33%;
+ padding-left: 6px;
+ max-height: 182px;
+ float: left
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .picture-box-gw.cy-feed-picture-box .box-area-gw a {
+ display: block;
+ position: relative
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-action-gw .action-from-gw.cy-feed-msg {
+ float: right
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-action-gw .action-from-gw.cy-feed-msg i {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-list/055/sohu-feed/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2NDYwRDRGOUY1ODIxMUU2ODc1MEM4OTc0NTlBRTJGNiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2NDYwRDRGQUY1ODIxMUU2ODc1MEM4OTc0NTlBRTJGNiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjY0NjBENEY3RjU4MjExRTY4NzUwQzg5NzQ1OUFFMkY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjY0NjBENEY4RjU4MjExRTY4NzUwQzg5NzQ1OUFFMkY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8++2QOVgAAAKhJREFUeNpiXL16NQMlgAmIFwHxXyD+TyIG6VnIAiSigZgDiH+TaDkrEP9ggrriNxmuB+lhYmKgEFDdgKNAfBiNfxyJfxwqhtMARlJdwILGt0LjW6PxLWkeBmQZ8A+I2cnQywXSCzJgIRB/RUumICAJxJfxJOWPQDwHZEASNDAZkWJBBRpdS5DE0TEoKaez4HDeASBuBOLZpEYjiP8CiPOBeC0xAQEQYAB0zzBcbdqnVQAAAABJRU5ErkJggg==);
+ display: inline-block;
+ height: 16px;
+ width: 16px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-action-gw .action-from-gw.cy-feed-msg span {
+ color: silver;
+ display: inline-block;
+ height: 16px;
+ width: 16px;
+ line-height: 16px;
+ margin-left: 6px;
+ vertical-align: top
+ }
+
+ #SOHUCS .cy-ad-float-container {
+ position: fixed;
+ bottom: 0;
+ right: 0;
+ z-index: 9999999
+ }
+
+ #SOHUCS .cy-ad-float-close {
+ position: absolute;
+ top: 0;
+ right: 0;
+ cursor: pointer;
+ width: 65px;
+ height: 17px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-av/024/image/close.png)
+ }
+
+ #SOHUCS .cy-ad-float-main {
+ max-width: 300px;
+ max-height: 250px;
+ min-width: 250px;
+ min-height: 250px;
+ display: block;
+ border: 0
+ }
+
+ #SOHUCS .cy-ad-banner-container {
+ width: 100%;
+ text-align: center
+ }
+
+ #SOHUCS .cy-ad-banner-close {
+ width: 65px;
+ height: 17px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-av/024/image/close.png);
+ position: absolute;
+ top: 0;
+ right: 0;
+ cursor: pointer
+ }
+
+ #SOHUCS .cy-ad-banner-main {
+ width: 100%;
+ max-width: 728px;
+ max-height: 90px;
+ display: block;
+ border: 0
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-ad-skin-container {
+ width: 390px;
+ height: 40px;
+ display: block;
+ border: 0;
+ float: right;
+ position: absolute;
+ right: 5px;
+ bottom: 0;
+ z-index: 0
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-ad-skin-main {
+ width: 100%;
+ height: 100%
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-ad-skin-bottom-container {
+ width: 390px;
+ height: 40px;
+ display: block;
+ border: 0;
+ float: right;
+ position: absolute;
+ right: 8px;
+ bottom: 41px;
+ z-index: -1
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-ad-skin-bottom-main {
+ width: 100%;
+ height: 100%
+ }
+
+ #SOHUCS .cy-ad-banner-container a {
+ margin: 0 auto;
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+ position: relative
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-ad-feed-image {
+ display: block;
+ margin: auto;
+ width: 100%
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-user-gw .cy-feed-sign a {
+ background: #9dceff;
+ color: #fff;
+ margin-left: 2px;
+ border-radius: 3px;
+ padding: 0 2px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-user-gw .cy-feed-sign a:hover {
+ text-decoration: none
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .picture-box-gw.cy-feed-picture-box {
+ padding: 0
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .picture-box-gw.cy-feed-picture-box .box-area-gw a {
+ display: block;
+ position: relative
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-action-gw .action-from-gw.cy-feed-show-detail {
+ float: right
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .picture-box-gw .cy-ad-feed-close {
+ width: 65px;
+ height: 17px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-av/024/image/close.png);
+ position: absolute;
+ top: 0;
+ right: 0;
+ cursor: pointer
+ }
+
+ #SOHUCS .cy-banner-iframe {
+ border: 0;
+ margin: auto;
+ display: block
+ }
+
+ #SOHUCS .cy-banner-iframe-wrapper {
+ border: 0;
+ margin: auto;
+ display: block;
+ position: relative
+ }
+
+ #SOHUCS .cy-iframe-close-btn {
+ background: grey;
+ cursor: pointer;
+ color: #fff;
+ height: 20px;
+ line-height: 19px;
+ position: absolute;
+ padding-left: 3px;
+ right: 0;
+ text-align: center;
+ top: 0;
+ width: 63px;
+ z-index: 1
+ }
+
+ #SOHUCS .cy-float-iframe-right {
+ border: 0;
+ margin: auto;
+ display: block;
+ right: 0;
+ bottom: 0;
+ position: fixed
+ }
+
+ #SOHUCS .cy-float-iframe-right-wrapper {
+ border: 0;
+ margin: auto;
+ display: block;
+ right: 0;
+ bottom: 0;
+ position: fixed;
+ z-index: 2147483647
+ }
+
+ #SOHUCS .cy-float-iframe-left {
+ border: 0;
+ margin: auto;
+ display: block;
+ left: 0;
+ bottom: 0;
+ position: fixed
+ }
+
+ #SOHUCS .cy-float-iframe-left-wrapper {
+ border: 0;
+ margin: auto;
+ display: block;
+ left: 0;
+ bottom: 0;
+ position: fixed;
+ z-index: 2147483647
+ }
+
+ #SOHUCS .cy-feed-iframe,
+ #SOHUCS .cy-feed-iframe-wrapper {
+ margin: auto
+ }
+
+ #SOHUCS .cy-feed-iframe-adaptive,
+ #SOHUCS .cy-feed-iframe-adaptive-wrapper {
+ width: 100%
+ }
+
+ #SOHUCS .cy-ad-pc-chain-container,
+ #SOHUCS .cy-ad-pc-chain-wrapper ul.cy-ad-pc-chain-list {
+ width: 100%;
+ height: 120px
+ }
+
+ #SOHUCS .cy-ad-pc-chain-wrapper ul.cy-ad-pc-chain-list:after {
+ clear: both;
+ content: "";
+ display: block;
+ height: 0;
+ visibility: hidden
+ }
+
+ #SOHUCS .cy-ad-pc-chain-wrapper li.cy-ad-pc-chain-list-item {
+ font-size: 16px;
+ float: left;
+ height: 120px;
+ line-height: 50px;
+ width: 50%
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-footer {
+ padding: 17px 0;
+ position: relative
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-footer .list-more-comment-w {
+ margin: 20px 0 0;
+ display: none
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-footer .list-more-comment-w .more-wrap-w {
+ margin: -1px 0 0;
+ background-color: #fff
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-footer .list-more-comment-w .more-wrap-w a {
+ display: block;
+ text-align: center;
+ line-height: 18px;
+ font-size: 12px;
+ padding: 7px 0 5px;
+ zoom: 1;
+ color: #4398ed;
+ background-color: #f5f5f5
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-footer .list-more-comment-w .more-wrap-w a:hover {
+ color: #ee542a
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-footer .list-more-comment-w .more-wrap-w a em.wrap-strong-w {
+ font-family: Georgia;
+ font-size: 18px;
+ color: #ee542a
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-footer .list-comment-close-w {
+ display: none
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-footer .list-comment-close-w .close-wrap-w {
+ display: block;
+ text-align: center;
+ line-height: 18px;
+ font-size: 14px;
+ padding: 12px 0 9px;
+ zoom: 1;
+ margin: -1px 0 0;
+ border-top: 1px solid #dee4e9;
+ background-color: #f5f5f5;
+ color: #333
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-footer .section-page-w {
+ text-align: center;
+ font-size: 0;
+ padding-bottom: 10px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-footer .section-page-w .cmt-more-wrap-gw {
+ text-align: center;
+ font-size: 12px;
+ height: 30px;
+ line-height: 30px;
+ color: #999;
+ background: #f0f0f0;
+ cursor: pointer
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-footer .section-page-w .cmt-more-wrap-gw .more-arrow-ico {
+ display: inline-block;
+ width: 12px;
+ height: 12px;
+ vertical-align: -2px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-footer/048/image/arrow.png);
+ margin-left: 6px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-footer .section-page-w .cmt-more-wrap-gw:hover {
+ background: #d9eafb;
+ color: #4398ed
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-footer .section-page-w .cmt-more-wrap-gw:hover .more-arrow-ico {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cmt-footer/048/image/arrow-hover.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-footer .section-service-w .service-wrap-w {
+ line-height: 16px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-footer .section-service-w,
+ #SOHUCS #SOHU_MAIN .module-cmt-footer .section-service-w .service-wrap-w,
+ #SOHUCS #SOHU_MAIN .module-cmt-footer .section-service-w .service-wrap-w a {
+ display: block!important;
+ text-align: right!important
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-footer .section-service-w .service-wrap-w a {
+ display: inline-block!important;
+ color: #999
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-footer .section-service-w .service-wrap-w a:hover {
+ color: #4398ed
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-footer .cy-redirect-btn {
+ background-color: #ecf4fd;
+ border: 1px solid #a0cbf6;
+ border-radius: 5px;
+ box-sizing: border-box;
+ color: #4398ed;
+ cursor: pointer;
+ display: none;
+ font-size: 14px;
+ height: 44px;
+ line-height: 44px;
+ margin-top: 20px;
+ text-align: center;
+ width: 100%
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-footer .cy-redirect-btn:hover {
+ background-color: #97cafc;
+ box-shadow: 0 0 8px #a0cbf6;
+ color: #fff
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-footer .cy-redirect-btn i {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-footer/048/image/right-arrow.png);
+ display: inline-block;
+ height: 16px;
+ margin-top: -1px;
+ vertical-align: middle;
+ width: 16px;
+ margin-left: 5px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-footer .cy-redirect-btn:hover i {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-footer/048/image/right-arrow-hover.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-to-shequ-float {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cmt-footer/048/image/shequ-icon.png);
+ bottom: 45px;
+ cursor: pointer;
+ display: none;
+ height: 84px;
+ position: fixed;
+ right: 5px;
+ width: 84px;
+ z-index: 2147483647
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item,
+ .module-cy-user-page .face-item {
+ background: url(https://changyan.itc.cn/mdevp/extensions/face/015/images/face-map.png) no-repeat center;
+ display: inline-block;
+ width: 22px;
+ height: 22px;
+ vertical-align: bottom
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_01,
+ .module-cy-user-page .face-item.face_01 {
+ background-position: -2px -2px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_02,
+ .module-cy-user-page .face-item.face_02 {
+ background-position: -2px -25px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_03,
+ .module-cy-user-page .face-item.face_03 {
+ background-position: -1px -49px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_04,
+ .module-cy-user-page .face-item.face_04 {
+ background-position: -2px -73px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_05,
+ .module-cy-user-page .face-item.face_05 {
+ background-position: -2px -97px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_06,
+ .module-cy-user-page .face-item.face_06 {
+ background-position: -2px -121px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_07,
+ .module-cy-user-page .face-item.face_07 {
+ background-position: -2px -145px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_08,
+ .module-cy-user-page .face-item.face_08 {
+ background-position: -2px -168px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_09,
+ .module-cy-user-page .face-item.face_09 {
+ background-position: -2px -192px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_10,
+ .module-cy-user-page .face-item.face_10 {
+ background-position: -2px -215px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_11,
+ .module-cy-user-page .face-item.face_11 {
+ background-position: -2px -238px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_12,
+ .module-cy-user-page .face-item.face_12 {
+ background-position: -2px -260px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_13,
+ .module-cy-user-page .face-item.face_13 {
+ background-position: -2px -284px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_14,
+ .module-cy-user-page .face-item.face_14 {
+ background-position: -2px -307px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_15,
+ .module-cy-user-page .face-item.face_15 {
+ background-position: -2px -331px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_16,
+ .module-cy-user-page .face-item.face_16 {
+ background-position: -2px -355px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_17,
+ .module-cy-user-page .face-item.face_17 {
+ background-position: -2px -378px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_18,
+ .module-cy-user-page .face-item.face_18 {
+ background-position: -2px -401px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_19,
+ .module-cy-user-page .face-item.face_19 {
+ background-position: -2px -425px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_20,
+ .module-cy-user-page .face-item.face_20 {
+ background-position: -2px -445px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_21,
+ .module-cy-user-page .face-item.face_21 {
+ background-position: -2px -465px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_22,
+ .module-cy-user-page .face-item.face_22 {
+ background-position: -2px -488px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_23,
+ .module-cy-user-page .face-item.face_23 {
+ background-position: -2px -511px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_24,
+ .module-cy-user-page .face-item.face_24 {
+ background-position: -2px -535px
+ }
+
+ @media (-webkit-min-device-pixel-ratio:2),
+ (min--moz-device-pixel-ratio:2),
+ (min-resolution:2dppx),
+ (min-resolution:192dpi) {
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item,
+ .module-cy-user-page .face-item {
+ background: url(https://changyan.itc.cn/mdevp/extensions/face/015/images/face-map-2x.png) no-repeat center;
+ background-size: 44px auto
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_01,
+ .module-cy-user-page .face-item.face_01 {
+ background-position: 0 -176px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_02,
+ .module-cy-user-page .face-item.face_02 {
+ background-position: -22px -66px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_03,
+ .module-cy-user-page .face-item.face_03 {
+ background-position: 0 -44px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_04,
+ .module-cy-user-page .face-item.face_04 {
+ background-position: -22px -154px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_05,
+ .module-cy-user-page .face-item.face_05 {
+ background-position: 0 -88px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_06,
+ .module-cy-user-page .face-item.face_06 {
+ background-position: -22px 0
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_07,
+ .module-cy-user-page .face-item.face_07 {
+ background-position: 0 -110px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_08,
+ .module-cy-user-page .face-item.face_08 {
+ background-position: 0 -66px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_09,
+ .module-cy-user-page .face-item.face_09 {
+ background-position: 0 0
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_10,
+ .module-cy-user-page .face-item.face_10 {
+ background-position: 0 -22px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_11,
+ .module-cy-user-page .face-item.face_11 {
+ background-position: -22px -44px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_12,
+ .module-cy-user-page .face-item.face_12 {
+ background-position: 0 -132px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_13,
+ .module-cy-user-page .face-item.face_13 {
+ background-position: -22px -88px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_14,
+ .module-cy-user-page .face-item.face_14 {
+ background-position: -22px -22px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_15,
+ .module-cy-user-page .face-item.face_15 {
+ background-position: 0 -154px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_16,
+ .module-cy-user-page .face-item.face_16 {
+ background-position: -22px -132px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_17,
+ .module-cy-user-page .face-item.face_17 {
+ background-position: -22px -110px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_18,
+ .module-cy-user-page .face-item.face_18 {
+ background-position: 0 -220px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_19,
+ .module-cy-user-page .face-item.face_19 {
+ background-position: 0 -198px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_20,
+ .module-cy-user-page .face-item.face_20 {
+ background-position: -22px -198px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_21,
+ .module-cy-user-page .face-item.face_21 {
+ background-position: -22px -220px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_22,
+ .module-cy-user-page .face-item.face_22 {
+ background-position: -22px -244px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_23,
+ .module-cy-user-page .face-item.face_23 {
+ background-position: 0 -132px
+ }
+ #SOHUCS #SOHU_MAIN .module-cmt-list .face-item.face_24,
+ .module-cy-user-page .face-item.face_24 {
+ background-position: -22px -176px
+ }
+ }
+
+ .module-cy-user-page {
+ width: 710px;
+ position: fixed;
+ z-index: 2147483647;
+ top: 0;
+ zoom: 1;
+ font-family: "Microsoft YaHei"
+ }
+
+ .module-cy-user-page:after {
+ content: ".";
+ display: block;
+ visibility: hidden;
+ height: 0;
+ clear: both
+ }
+
+ .cy-mask {
+ width: 100%;
+ background: #000;
+ opacity: .6;
+ filter: alpha(opacity=60);
+ position: fixed;
+ z-index: 2147483646;
+ top: 0;
+ left: 0
+ }
+
+ .module-cy-user-page * {
+ color: #333
+ }
+
+ .module-cy-user-page .cy-user-page-close-btn {
+ cursor: pointer;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-page/034/image/close-btn.png);
+ width: 20px;
+ height: 20px;
+ float: left;
+ margin-top: 15px
+ }
+
+ .module-cy-user-page .cy-user-page-return-btn {
+ cursor: pointer;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-page/034/image/close-btn.png);
+ width: 20px;
+ height: 20px;
+ float: left;
+ margin-top: 15px;
+ display: none
+ }
+
+ .module-cy-user-page .cy-user-page-tab {
+ width: 43px;
+ background: #111;
+ height: 100%;
+ float: right;
+ position: relative
+ }
+
+ .module-cy-user-page .cy-tab-list {
+ margin-top: 7px;
+ overflow: hidden
+ }
+
+ .module-cy-user-page .cy-tab-list li {
+ width: 100%;
+ cursor: pointer;
+ margin-top: 23px
+ }
+
+ .module-cy-user-page .cy-tab-list li .cy-tab-icon {
+ width: 22px;
+ height: 22px;
+ margin: 0 auto;
+ display: block
+ }
+
+ .module-cy-user-page .cy-tab-list li .cy-my-ico {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-page/034/image/tab-list-icon1.png)
+ }
+
+ .module-cy-user-page .cy-tab-list li i {
+ width: 100%;
+ display: block;
+ margin-top: 2px;
+ font-size: 12px;
+ color: #666;
+ text-align: center;
+ font-style: normal
+ }
+
+ .module-cy-user-page .cy-tab-list li.active .cy-my-ico {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-page/034/image/tab-list-icon-active1.png)
+ }
+
+ .module-cy-user-page .cy-tab-list li.active i {
+ color: #38a3fd
+ }
+
+ .module-cy-user-page .cy-tab-list li.info-li:hover .cy-my-ico {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-page/034/image/tab-list-icon-active1.png)
+ }
+
+ .module-cy-user-page .cy-tab-list li.info-li:hover i {
+ color: #38a3fd
+ }
+
+ .module-cy-user-page .cy-tab-list li .cy-return-ico {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-page/034/image/tab-list-return.png)
+ }
+
+ .module-cy-user-page .cy-tab-list li.info-return-li:hover .cy-return-ico {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-page/034/image/tab-list-return-active.png)
+ }
+
+ .module-cy-user-page .cy-tab-list li.info-return-li:hover i {
+ color: #38a3fd
+ }
+
+ .module-cy-user-page .cy-user-page-tab .power-by-cy {
+ width: 26px;
+ height: 12px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-page/034/image/logo.png);
+ position: absolute;
+ bottom: 12px;
+ left: 8px
+ }
+
+ .module-cy-user-page .cy-user-page-main {
+ float: right;
+ background: #FFF;
+ width: 630px;
+ height: 100%;
+ position: relative
+ }
+
+ .module-cy-user-page .cy-user-page-main .loading-data {
+ position: relative;
+ height: 100%
+ }
+
+ .module-cy-user-page .cy-user-page-main .loading-pic {
+ width: 90px;
+ height: 90px;
+ display: block;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-page/034/image/loading-01.gif);
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ margin: -45px 0 0 -45px
+ }
+
+ .module-cy-user-page .module-cy-user-info .module-user-info-qr-code {
+ height: 100%;
+ width: 100%;
+ position: absolute;
+ top: 0
+ }
+
+ .module-cy-user-page .module-cy-user-info .module-user-info-qr-code .qr-code-mask {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ background: #000;
+ opacity: .6;
+ filter: alpha(opacity=60);
+ top: 0;
+ left: 0;
+ display: inline;
+ z-index: 1000
+ }
+
+ .module-cy-user-page .module-cy-user-info .module-user-info-qr-code .qr-code-wrapper {
+ width: 300px;
+ height: 375px;
+ position: absolute;
+ top: 36%;
+ left: 50%;
+ margin: -187.5px 0 0 -150px;
+ background-color: #fff;
+ border-radius: 10px;
+ z-index: 1001
+ }
+
+ .module-cy-user-page .module-cy-user-info .module-user-info-qr-code .qr-code-wrapper .qr-code-logo-wrapper {
+ width: 100%;
+ height: 38px;
+ margin: 28px 0 0;
+ text-align: center
+ }
+
+ .module-cy-user-page .module-cy-user-info .module-user-info-qr-code .qr-code-wrapper .qr-code-logo-wrapper .qr-code-logo {
+ width: 56px;
+ height: 38px;
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/logo.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-info .module-user-info-qr-code .qr-code-wrapper .qr-code-type-wrapper {
+ width: 100%;
+ margin: 28px 0 0;
+ text-align: center
+ }
+
+ .module-cy-user-page .module-cy-user-info .module-user-info-qr-code .qr-code-wrapper .qr-code-first-support {
+ margin: 44px 0 0
+ }
+
+ .module-cy-user-page .module-cy-user-info .module-user-info-qr-code .qr-code-wrapper .qr-code-type-wrapper .qr-code-type-big {
+ font-size: 18px;
+ font-family: microsoft yahei;
+ text-align: center
+ }
+
+ .module-cy-user-page .module-cy-user-info .module-user-info-qr-code .qr-code-wrapper .qr-code-first-support .qr-code-type-big {
+ margin: 6px 0 0
+ }
+
+ .module-cy-user-page .module-cy-user-info .module-user-info-qr-code .qr-code-wrapper .qr-code-type-wrapper .qr-code-type-small {
+ font-size: 12px;
+ margin: 6px 0 0;
+ font-family: microsoft yahei;
+ text-align: center
+ }
+
+ .module-cy-user-page .module-cy-user-info .module-user-info-qr-code .qr-code-wrapper .qr-code-first-support .qr-code-type-small {
+ margin: 20px 0 0
+ }
+
+ .module-cy-user-page .module-cy-user-info .module-user-info-qr-code .qr-code-wrapper .qr-code-type-wrapper .qr-code-img {
+ width: 165px;
+ height: 165px;
+ margin: 10px 0 0
+ }
+
+ .module-cy-user-page .module-cy-user-info .module-user-info-qr-code .qr-code-wrapper .qr-code-type-wrapper .qr-code-text {
+ font-size: 14px;
+ font-family: microsoft yahei;
+ margin: 20px 0 0;
+ text-align: center;
+ color: #dedede
+ }
+
+ .module-cy-user-page .module-cy-user-info .module-user-info-qr-code .qr-code-wrapper .qr-code-close {
+ width: 12px;
+ height: 12px;
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/close.png) no-repeat;
+ cursor: pointer;
+ position: absolute;
+ right: 16px;
+ top: 16px
+ }
+
+ .module-cy-user-page .module-cy-user-info .avatar-upload-btn {
+ text-align: center;
+ display: block;
+ font-size: 12px;
+ color: #bababa;
+ text-decoration: underline;
+ margin: 20px auto;
+ cursor: pointer;
+ width: 80px
+ }
+
+ .module-cy-user-page .module-cy-user-info .avatar-upload-wrapper {
+ position: relative;
+ display: none
+ }
+
+ .module-cy-user-page .module-cy-user-info .avatar-preview-text {
+ font-size: 18px;
+ margin-left: 30px
+ }
+
+ .module-cy-user-page .module-cy-user-info .avatar-preview {
+ width: 165px;
+ height: 165px;
+ display: block;
+ margin: 36px auto 12px
+ }
+
+ .module-cy-user-page .module-cy-user-info .avatar-upload-warning {
+ color: #f44;
+ font-size: 12px;
+ text-align: center;
+ position: absolute;
+ display: none;
+ margin: auto;
+ left: 40px
+ }
+
+ .module-cy-user-page .module-cy-user-info .avatar-reload {
+ display: block;
+ text-decoration: underline;
+ font-size: 14px;
+ color: #4398ed;
+ float: right;
+ margin-right: 15px;
+ margin-top: 30px;
+ cursor: pointer;
+ width: 60px;
+ height: 32px;
+ line-height: 32px
+ }
+
+ .module-cy-user-page .module-cy-user-info .avatar-upload-confirm {
+ display: inline-block;
+ *display: inline;
+ width: 88px;
+ height: 32px;
+ color: #fff;
+ background-color: #4398ed;
+ float: right;
+ text-align: center;
+ line-height: 32px;
+ margin-right: 28px;
+ margin-top: 30px;
+ border-radius: 5px;
+ cursor: pointer
+ }
+
+ .module-cy-user-page .module-cy-user-info .avatar-finish-wrapper {
+ display: none
+ }
+
+ .module-cy-user-page .module-cy-user-info .finish-icon {
+ margin: 60px auto 40px;
+ width: 48px;
+ height: 48px;
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/finish.png)
+ }
+
+ .module-cy-user-page .module-cy-user-info .avatar-finish-text {
+ line-height: 24px;
+ font-size: 18px;
+ margin-top: 5px;
+ display: block;
+ text-align: center
+ }
+
+ .module-cy-user-page .module-cy-user-info .avatar-bind-text {
+ color: #bababa;
+ font-size: 14px;
+ text-align: center;
+ margin-top: 70px
+ }
+
+ .module-cy-user-page .module-cy-user-info .qr-code-no-phone {
+ display: block;
+ text-align: center;
+ margin: 20px auto 0;
+ font-size: 12px;
+ color: #bababa;
+ text-decoration: underline;
+ cursor: pointer
+ }
+
+ .module-cy-user-page .module-cy-user-info .qr-code-bind-wechat .qr-code-type-big-first {
+ margin-top: 20px;
+ margin-bottom: 10px
+ }
+
+ .module-cy-user-page .module-cy-user-info .module-user-info-qr-code .module-qrcode-result {
+ width: 300px;
+ height: 110px;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ margin: -55px 0 0 -150px;
+ background-color: #fff;
+ border-radius: 10px;
+ z-index: 1001
+ }
+
+ .module-cy-user-page .module-cy-user-info .module-user-info-qr-code .module-qrcode-result .cy-result-icon-wrapper {
+ width: 100%;
+ text-align: center
+ }
+
+ .module-cy-user-page .module-cy-user-info .module-user-info-qr-code .module-qrcode-result .cy-result-icon-wrapper .cy-result-icon {
+ width: 40px;
+ height: 40px;
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+ margin: 19px 0 0
+ }
+
+ .module-cy-user-page .module-cy-user-info .module-user-info-qr-code .module-qrcode-result .cy-result-icon-wrapper .result-icon-delete-ok {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/delete-ok.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-info .module-user-info-qr-code .module-qrcode-result .cy-result-icon-wrapper .result-icon-appeal-submit {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/appeal-submit.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-info .module-user-info-qr-code .module-qrcode-result .cy-result-icon-wrapper .result-icon-appeal-reject {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/appeal-reject.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-info .module-user-info-qr-code .module-qrcode-result .cy-result-text {
+ font-size: 16px;
+ font-family: microsoft yahei;
+ margin: 16px 0 0;
+ text-align: center
+ }
+
+ .module-cy-user-page .module-cy-user-info .module-user-info-qr-code .qr-first-background-wrapper {
+ width: 410px;
+ height: 445px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/first-weixin.png);
+ position: absolute;
+ top: 40%;
+ left: 50%;
+ margin: -222.5px 0 0 -175px;
+ z-index: 1001
+ }
+
+ .module-cy-user-page .module-cy-user-info .module-user-info-qr-code .qr-first-background-wrapper .qr-code-wrapper {
+ background: 0 0;
+ margin: -188.5px 0 0 -182px;
+ top: 50%
+ }
+
+ .module-cy-user-page .module-cy-user-info .module-user-info-qr-code .qr-first-background-wrapper .qr-code-wrapper .qr-code-close {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/first-close.png)
+ }
+
+ .module-cy-user-page .module-cy-user-info .module-user-info-qr-code .qr-first-background-wrapper .qr-code-wrapper .qr-code-close:hover {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/first-close-hover.png)
+ }
+
+ .module-cy-user-page .module-cy-user-info .module-user-info-qr-code .qr-first-background-wrapper .qr-code-wrapper .qr-code-type-wrapper .qr-code-text {
+ color: #cd9904
+ }
+
+ .module-cy-user-page .module-cy-user-info .module-user-info-qr-code .qr-first-background-wrapper .qr-code-wrapper .qr-code-ignore {
+ margin: 18px 10px 0 0;
+ float: right
+ }
+
+ .module-cy-user-page .module-cy-user-info .module-user-info-qr-code .qr-first-background-wrapper .qr-code-wrapper .qr-code-ignore .qr-code-ignore-text {
+ font-size: 12px;
+ font-family: microsoft yahei;
+ color: #cd9904;
+ margin: 0 4px 0 0
+ }
+
+ .module-cy-user-page .module-cy-user-info .module-user-info-qr-code .qr-first-background-wrapper .qr-code-wrapper .qr-code-ignore .qr-code-ignore-select {
+ width: 14px;
+ height: 14px;
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/select.png) no-repeat;
+ vertical-align: -2px;
+ *vertical-align: 0;
+ cursor: pointer
+ }
+
+ .module-cy-user-page .module-cy-user-info .module-user-info-qr-code .qr-first-background-wrapper .qr-code-wrapper .qr-code-ignore .qr-code-ignore-select .qr-code-ignore-select-checked {
+ display: block;
+ width: 14px;
+ height: 14px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/select-checked.png) no-repeat;
+ cursor: pointer
+ }
+
+ .module-cy-user-page .cy-prompt-mask {
+ background: rgba(0, 0, 0, .5);
+ height: 100%;
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ z-index: 2147483647
+ }
+
+ .module-cy-user-page .cy-alert {
+ background: #fff;
+ border-radius: 3px;
+ bottom: 0;
+ height: 218px;
+ left: 0;
+ margin: auto;
+ padding: 25px;
+ position: absolute;
+ right: 0;
+ top: 0;
+ width: 400px;
+ z-index: 2147483647
+ }
+
+ .module-cy-user-page .cy-alert-logo {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/prompt/alert-logo.png) no-repeat center;
+ background-size: 100%;
+ height: 32px;
+ margin: 24px auto;
+ width: 32px
+ }
+
+ .module-cy-user-page .cy-alert-text {
+ padding-top: 16px;
+ font-size: 16px;
+ line-height: 24px;
+ text-align: center
+ }
+
+ .module-cy-user-page .cy-alert-btn {
+ border: 1px solid #bababa;
+ border-radius: 3px;
+ bottom: 40px;
+ cursor: pointer;
+ height: 32px;
+ line-height: 32px;
+ margin-left: 167px;
+ position: absolute;
+ text-align: center;
+ width: 80px
+ }
+
+ .module-cy-user-page .cy-confirm {
+ background: #fff;
+ border-radius: 3px;
+ bottom: 0;
+ box-sizing: border-box;
+ height: 158px;
+ left: 0;
+ margin: auto;
+ padding: 25px;
+ position: absolute;
+ right: 0;
+ top: 0;
+ width: 400px;
+ z-index: 2147483647
+ }
+
+ .module-cy-user-page .cy-confirm-text {
+ font-size: 16px;
+ line-height: 24px;
+ text-align: center
+ }
+
+ .module-cy-user-page .cy-confirm-btns {
+ bottom: 32px;
+ font-size: 14px;
+ position: absolute;
+ text-align: center
+ }
+
+ .module-cy-user-page .cy-confirm-yes {
+ border: 1px solid #4398ed;
+ border-radius: 3px;
+ box-sizing: border-box;
+ color: #4398ed;
+ cursor: pointer;
+ display: inline-block;
+ height: 32px;
+ line-height: 30px;
+ margin: 0 64px 0 63px;
+ text-align: center;
+ width: 80px
+ }
+
+ .module-cy-user-page .cy-confirm-no {
+ background: #4398ed;
+ border-radius: 3px;
+ box-shadow: 0 4px 10px 0 #4398ed;
+ box-sizing: border-box;
+ color: #fff;
+ cursor: pointer;
+ display: inline-block;
+ height: 32px;
+ line-height: 32px;
+ text-align: center;
+ width: 80px
+ }
+
+ .module-cy-user-page .cy-toast {
+ background: #fff;
+ border-radius: 3px;
+ bottom: 0;
+ height: 88px;
+ left: 0;
+ margin: auto;
+ padding: 25px;
+ position: absolute;
+ right: 0;
+ top: 0;
+ width: 300px;
+ z-index: 2147483647
+ }
+
+ .module-cy-user-page .cy-toast-logo {
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 100%;
+ height: 32px;
+ margin: 4px auto;
+ width: 32px
+ }
+
+ .module-cy-user-page .cy-toast-icon-reject {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/prompt/images/appeal-reject.png)
+ }
+
+ .module-cy-user-page .cy-toast-icon-submit {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/prompt/images/appeal-submit.png)
+ }
+
+ .module-cy-user-page .cy-toast-icon-search {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/prompt/images/searching.png)
+ }
+
+ .module-cy-user-page .cy-toast-icon-success {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/prompt/images/delete-ok.png)
+ }
+
+ .module-cy-user-page .cy-toast-text {
+ padding-top: 16px;
+ font-size: 16px;
+ line-height: 24px;
+ text-align: center
+ }
+
+ .module-cy-user-page .module-cy-user-info {
+ height: 100%
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-info-header {
+ padding: 20px;
+ height: 84px
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-info-header .cy-user-photo-container {
+ position: relative;
+ width: 84px;
+ height: 84px;
+ float: left
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-info-header .cy-user-photo {
+ width: 84px;
+ height: 84px;
+ display: block;
+ float: left;
+ border-radius: 3px
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-info-header .avatar-mask {
+ width: 84px;
+ height: 84px;
+ background: #000;
+ opacity: .6;
+ filter: alpha(opacity=60);
+ position: absolute;
+ border-radius: 3px;
+ top: 0;
+ left: 0;
+ display: none;
+ line-height: 84px;
+ font-size: 16px;
+ text-align: center;
+ color: #FFF;
+ font-family: "Microsoft YaHei";
+ cursor: pointer
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-info-header .cy-user-photo-container:hover .avatar-mask {
+ display: block
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-info-header .cy-user-info {
+ float: left;
+ width: 505px;
+ height: 84px;
+ position: relative
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-info-header .cy-user-info .cy-user-info-txt {
+ margin-left: 21px;
+ margin-top: 14px
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-info-header .cy-user-info .cy-user-info-txt .cy-user-name {
+ color: #111;
+ font-size: 20px;
+ font-family: "Microsoft YaHei";
+ font-style: normal;
+ letter-spacing: 1px
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-info-header .cy-user-info .cy-user-info-txt .cy-user-name-input {
+ color: #111;
+ border: 1px solid #d5d5d5;
+ border-radius: 7px;
+ font-size: 16px;
+ height: 28px;
+ line-height: 28px;
+ font-family: "Microsoft YaHei";
+ font-style: normal;
+ letter-spacing: 1px;
+ text-indent: 8px;
+ width: 150px;
+ display: none
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-info-header .cy-user-info .cy-user-info-txt .cy-user-edit {
+ width: 20px;
+ height: 20px;
+ display: inline-block;
+ *dispaly: inline;
+ *zoom: 1;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/edit.png) no-repeat;
+ vertical-align: -2px;
+ margin: 0 0 0 12px;
+ cursor: pointer
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-info-header .cy-user-info .cy-user-info-txt .cy-user-edit-btn {
+ width: 50px;
+ height: 28px;
+ line-height: 28px;
+ border-radius: 5px;
+ text-align: center;
+ vertical-align: 2px;
+ display: none;
+ *zoom: 1;
+ background-color: #51acf9;
+ color: #fff;
+ margin: 0 0 0 12px;
+ cursor: pointer
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my {
+ position: relative
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-tab-active-bar {
+ position: absolute;
+ background: #38a3fd;
+ width: 84px;
+ height: 2px;
+ margin-left: 63px;
+ margin-top: -2px
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-label {
+ border-bottom: 1px solid #c3cad4
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-label li {
+ width: 210px;
+ float: left
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-label li .cy-my-label-item {
+ width: 84px;
+ margin: 0 auto;
+ height: 28px;
+ font-family: "Microsoft YaHei";
+ font-size: 14px;
+ color: #333;
+ text-align: center;
+ cursor: pointer;
+ line-height: 15px
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-label li.active .cy-my-label-item {
+ color: #38a3fd
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-label li .cy-my-label-item .cy-num {
+ font-family: "Microsoft YaHei";
+ font-size: 14px;
+ color: #333;
+ font-style: normal
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-label li.active .cy-my-label-item .cy-num {
+ color: #38a3fd
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page-container {
+ position: relative
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 630px;
+ overflow: hidden;
+ overflow-y: auto;
+ display: none
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page-container .active {
+ display: block
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list {
+ width: 575px;
+ margin: 20px 0 0 20px
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .comment-list-i {
+ margin-top: 20px
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .comment-list-i:first-child {
+ margin-top: 0
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .comment-list-i .cy-my-photo {
+ width: 40px;
+ float: left
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .comment-list-i .cy-my-photo img {
+ width: 40px;
+ height: 40px;
+ display: block;
+ border-radius: 3px;
+ cursor: pointer
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .comment-list-i .cy-my-comment-container .module-cmt-box {
+ margin: 12px 0 0
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .comment-list-i .cy-my-comment-container .module-cmt-box .textarea-fw {
+ height: 44px
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .comment-list-i .cy-my-comment-container {
+ float: left;
+ width: 518px;
+ margin-left: 15px;
+ padding-bottom: 17px;
+ border-bottom: 1px solid #e9f0f5;
+ position: relative
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .comment-list-i .cy-my-comment-container .cy-my-user-name {
+ font-size: 14px;
+ font-family: "Microsoft YaHei";
+ color: #38a3fd;
+ line-height: 14px;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .comment-list-i .cy-my-comment-container .cy-my-user-name .cy-comment-appeal,
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .comment-list-i .cy-my-comment-container .cy-my-user-name .cy-comment-delete {
+ width: 46px;
+ height: 18px;
+ margin: 0 0 0 4px;
+ float: right;
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+ font-size: 12px;
+ font-family: microsoft yahei;
+ line-height: 16px;
+ color: #b6b6b6;
+ cursor: pointer
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .comment-list-i .cy-my-comment-container .cy-my-user-name .cy-comment-appeal .cy-comment-appeal-icon,
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .comment-list-i .cy-my-comment-container .cy-my-user-name .cy-comment-delete .cy-comment-delete-icon {
+ width: 15px;
+ height: 16px;
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+ vertical-align: -3px;
+ *vertical-align: 0
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .comment-list-i .cy-my-comment-container .cy-my-user-name .cy-comment-has-apply-tip {
+ width: 200px;
+ height: 100px;
+ position: absolute;
+ right: 35px;
+ top: -80px;
+ cursor: pointer;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/has-apply-tip.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .comment-list-i .cy-my-comment-container .cy-my-user-name .cy-comment-appeal .cy-comment-appeal-icon {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/appeal.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .comment-list-i .cy-my-comment-container .cy-my-user-name .cy-comment-delete .cy-comment-delete-icon {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/delete.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .comment-list-i .cy-my-comment-container .cy-my-user-name .cy-comment-appeal:hover,
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .comment-list-i .cy-my-comment-container .cy-my-user-name .cy-comment-delete:hover {
+ color: #f05858
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .comment-list-i .cy-my-comment-container .cy-my-user-name .cy-comment-appeal:hover .cy-comment-appeal-icon {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/appeal-hover.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .comment-list-i .cy-my-comment-container .cy-my-user-name .cy-comment-delete:hover .cy-comment-delete-icon {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/delete-hover.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .comment-list-i .cy-my-comment-container .cy-my-comment {
+ font-family: "Microsoft YaHei";
+ font-size: 16px;
+ color: #111;
+ margin-top: 15px;
+ line-height: 21px
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .comment-list-i .cy-my-comment-container .cy-my-comment img {
+ vertical-align: -2px;
+ *vertical-align: 0
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .comment-list-i .cy-my-comment-container .cy-my-comment-other {
+ background: #fdefef
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .comment-list-i .cy-my-comment-container .cy-auditing-status {
+ font-size: 14px;
+ color: #f05858;
+ margin-left: 10px
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .comment-list-i .cy-my-comment-container .cy-warning-ico {
+ display: inline-block;
+ width: 13px;
+ height: 13px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/warning-ico.png);
+ vertical-align: -1px;
+ *vertical-align: 3px;
+ margin-right: 4px
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .comment-list-i .cy-my-comment-container .cy-my-comment-source {
+ font-family: "Microsoft YaHei";
+ font-size: 14px;
+ color: #465e72;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ margin-top: 14px;
+ display: inline-block;
+ max-width: 100%
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .comment-list-i .cy-my-comment-container .no-icp-txt {
+ font-family: "Microsoft YaHei";
+ font-size: 12px;
+ color: #f05858;
+ margin-top: 6px;
+ float: left
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .comment-list-i .cy-my-comment-container .no-icp-txt .cy-warning-ico {
+ vertical-align: -2px;
+ *vertical-align: 0
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .comment-list-i .cy-my-comment-container .cy-my-comment-site-from {
+ font-family: "Microsoft YaHei";
+ float: left;
+ font-size: 12px;
+ color: #999;
+ margin-top: 6px
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .comment-list-i .cy-my-comment-container .cy-my-comment-time {
+ float: right;
+ font-family: "Microsoft YaHei";
+ margin-top: 3px
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .comment-list-i .cy-my-comment-container .cy-my-comment-time em {
+ display: inline-block;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/time-ico.png);
+ width: 12px;
+ height: 12px;
+ vertical-align: -2px;
+ *vertical-align: 2px;
+ margin-top: 4px;
+ *margin-left: 4px
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .comment-list-i .cy-my-comment-container .cy-my-comment-time i {
+ font-style: normal;
+ font-size: 12px;
+ color: #999;
+ font-family: "Microsoft YaHei"
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page-reply .cy-my-comment-list .comment-list-i .cy-my-comment-container .cy-my-user-name {
+ line-height: 15px
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page-reply .cy-reply-ico {
+ width: 13px;
+ height: 9px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/reply-ico.png);
+ display: inline-block;
+ margin: 0 4px 0 2px;
+ *vertical-align: 3px
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page-reply .cy-my-user-name em {
+ font-style: normal;
+ color: #333;
+ margin-left: 4px
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page-reply .cy-my-user-name em img {
+ vertical-align: -2px;
+ *vertical-align: 0
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page-reply .cy-comment-handle {
+ margin-top: 18px
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page-reply .cy-comment-handle .cy-support-group {
+ float: left
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page-reply .cy-comment-handle .cy-support-group .cy-nonsupport-ico,
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page-reply .cy-comment-handle .cy-support-group .cy-support-ico {
+ display: inline-block;
+ width: 13px;
+ height: 14px;
+ margin-right: 4px;
+ vertical-align: -2px;
+ *vertical-align: 2px;
+ cursor: pointer;
+ float: left
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page-reply .cy-comment-handle .cy-support-group .cy-support-ico {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/support-ico.png)
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page-reply .cy-comment-handle .cy-support-group .cy-support-ico:hover {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/support-ico-hover.png)
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page-reply .cy-comment-handle .cy-support-group .cy-support-ico-disabled,
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page-reply .cy-comment-handle .cy-support-group .cy-support-ico-disabled:hover {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/support-ico-disabled.png)
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page-reply .cy-comment-handle .cy-support-group .cy-nonsupport-ico {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/nonsupport-ico.png)
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page-reply .cy-comment-handle .cy-support-group .cy-nonsupport-ico:hover {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/nonsupport-ico-hover.png)
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page-reply .cy-comment-handle .cy-support-group .cy-nonsupport-ico-disabled,
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page-reply .cy-comment-handle .cy-support-group .cy-nonsupport-ico-disabled:hover {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/nonsupport-ico-disabled.png)
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page-reply .cy-comment-handle .cy-support-group em {
+ color: #f05858;
+ font-size: 12px;
+ font-style: normal;
+ font-family: Arial;
+ float: left
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page-reply .cy-comment-handle .cy-support-group i {
+ margin: 0 9px 0 7px;
+ float: left;
+ display: block;
+ height: 12px;
+ width: 1px;
+ border-left: 1px solid #cdcdcd
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page-reply .cy-comment-handle .cy-reply-btn {
+ color: #999;
+ font-size: 12px;
+ margin-left: 22px;
+ font-style: normal;
+ cursor: pointer;
+ float: left
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page-support .cy-support-list {
+ background: #f2f2f2;
+ padding: 12px 7px;
+ margin-top: 16px
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page-support .cy-support-list .cy-arrow-ico {
+ display: block;
+ width: 20px;
+ height: 10px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/arrow-ico.png);
+ margin: -22px 0 0 33px;
+ *position: absolute;
+ *margin: -22px 0 0 23px
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page-support .cy-support-list p {
+ margin-top: 12px;
+ *margin-top: 0;
+ font-family: "Microsoft YaHei";
+ font-size: 14px;
+ padding: 0 5px
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page-support .cy-support-list p em {
+ color: #51acf9;
+ font-size: 14px;
+ font-style: normal;
+ margin: 0 6px
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page-support .cy-support-list ul {
+ margin-top: 3px
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page-support .cy-support-list ul .cy-user-item {
+ float: left;
+ margin: 6px 5px 0
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page-support .cy-support-list ul .cy-user-item img {
+ width: 40px;
+ height: 40px;
+ display: block;
+ border-radius: 3px;
+ cursor: pointer
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .empty-hold-place {
+ display: block;
+ text-align: center;
+ line-height: 16px;
+ font-size: 16px;
+ font-family: "Microsoft YaHei";
+ width: 345px;
+ margin: 0 auto;
+ padding-bottom: 50px
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .empty-hold-place .pet-pic {
+ margin-top: 100px;
+ width: 345px;
+ height: 293px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/notice-empty.png);
+ background-repeat: no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .empty-hold-place .empty-txt {
+ width: 345px;
+ height: 22px;
+ margin-top: 70px;
+ background-repeat: no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .empty-hold-place .comment-empty-txt {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/title-nocomment.png)
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .empty-hold-place .replay-empty-txt {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/title-noreply.png)
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .empty-hold-place .support-empty-txt {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/title-nosupport.png)
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-my .cy-my-page .cy-my-comment-list .empty-hold-place .power-by-cy-txt {
+ width: 345px;
+ height: 16px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/power-by.png);
+ background-repeat: no-repeat;
+ margin-top: 30px
+ }
+
+ .module-cy-user-page .module-sex {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ top: 0;
+ display: none;
+ *zoom: 1
+ }
+
+ .module-cy-user-page .module-sex .sex-mask {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ background: #000;
+ opacity: .6;
+ filter: alpha(opacity=60);
+ top: 0;
+ left: 0;
+ *zoom: 1;
+ display: inline
+ }
+
+ .module-cy-user-page .module-sex .sex-config {
+ width: 420px;
+ height: 320px;
+ background-color: #fff;
+ margin: -160px auto 0;
+ position: relative;
+ top: 50%;
+ border-radius: 4px
+ }
+
+ .module-cy-user-page .module-sex .first-come {
+ width: 500px;
+ height: 198px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/info-update.png) no-repeat;
+ z-index: 10;
+ display: inline;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ margin: -300px 0 0 -250px;
+ visibility: hidden;
+ *zoom: 1
+ }
+
+ .module-cy-user-page .module-sex .sex-config .sex-title {
+ height: 40px;
+ line-height: 40px;
+ font-size: 16px;
+ color: #000;
+ text-align: center;
+ border: 1px solid #bfbfbf;
+ border-width: 0 0 1px
+ }
+
+ .module-cy-user-page .module-sex .sex-config .sex-center .sex-select .i-am {
+ width: 377px;
+ margin: 24px auto 0
+ }
+
+ .module-cy-user-page .module-sex .sex-config .sex-center .sex-select .i-also-am .text,
+ .module-cy-user-page .module-sex .sex-config .sex-center .sex-select .i-am .text {
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+ font-size: 14px;
+ line-height: 35px
+ }
+
+ .module-cy-user-page .module-sex .sex-config .sex-center .sex-select .i-am .boy,
+ .module-cy-user-page .module-sex .sex-config .sex-center .sex-select .i-am .girl {
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+ height: 33px;
+ line-height: 33px;
+ padding: 0 12px;
+ cursor: pointer;
+ border: solid 1px #fff
+ }
+
+ .module-cy-user-page .module-sex .sex-config .sex-center .sex-select .i-am .boy {
+ margin: 0 18px 0 10px
+ }
+
+ .module-cy-user-page .module-sex .sex-config .sex-center .sex-select .i-am .select {
+ border: 1px dashed #38a3fd;
+ border-radius: 4px
+ }
+
+ .module-cy-user-page .module-sex .sex-config .sex-center .sex-select .i-am .boy .icon-boy,
+ .module-cy-user-page .module-sex .sex-config .sex-center .sex-select .i-am .girl .icon-girl {
+ width: 20px;
+ height: 20px;
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+ vertical-align: -5px;
+ margin: 0 4px 0 0;
+ font-size: 14px
+ }
+
+ .module-cy-user-page .module-sex .sex-config .sex-center .sex-select .i-am .boy .icon-boy {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/boy.png) no-repeat
+ }
+
+ .module-cy-user-page .module-sex .sex-config .sex-center .sex-select .i-am .girl .icon-girl {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/girl.png) no-repeat
+ }
+
+ .module-cy-user-page .module-sex .sex-config .sex-center .sex-select .i-also-am {
+ width: 377px;
+ margin: 10px auto 0
+ }
+
+ .module-cy-user-page .module-sex .sex-config .sex-center .sex-select .i-also-am .text {
+ line-height: 68px
+ }
+
+ .module-cy-user-page .module-sex .sex-config .sex-center .sex-select .i-also-am .icon {
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+ height: 68px;
+ width: 50px;
+ vertical-align: middle;
+ text-align: center;
+ cursor: pointer;
+ border: solid 1px #fff
+ }
+
+ .module-cy-user-page .module-sex .sex-config .sex-center .sex-select .i-also-am .select {
+ border: 1px dashed #38a3fd;
+ border-radius: 4px
+ }
+
+ .module-cy-user-page .module-sex .sex-config .sex-center .sex-select .i-also-am .icon .age-icon {
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+ width: 34px;
+ height: 32px;
+ margin: 8px auto 0
+ }
+
+ .module-cy-user-page .module-sex .sex-config .sex-center .sex-select .i-also-am .icon .icon-text {
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+ margin: 8px auto 0;
+ font-size: 12px;
+ color: #8a8a8a
+ }
+
+ .module-cy-user-page .module-sex .sex-config .sex-center .sex-select .icon-man .icon .icon-00 {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/boy-00.png) no-repeat
+ }
+
+ .module-cy-user-page .module-sex .sex-config .sex-center .sex-select .icon-man .icon .icon-90 {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/boy-90.png) no-repeat
+ }
+
+ .module-cy-user-page .module-sex .sex-config .sex-center .sex-select .icon-man .icon .icon-80 {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/boy-80.png) no-repeat
+ }
+
+ .module-cy-user-page .module-sex .sex-config .sex-center .sex-select .icon-man .icon .icon-70 {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/boy-70.png) no-repeat
+ }
+
+ .module-cy-user-page .module-sex .sex-config .sex-center .sex-select .icon-man .icon .icon-60 {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/boy-60.png) no-repeat
+ }
+
+ .module-cy-user-page .module-sex .sex-config .sex-center .sex-select .icon-man .icon .icon-50 {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/boy-50.png) no-repeat
+ }
+
+ .module-cy-user-page .module-sex .sex-config .sex-center .sex-select .icon-woman .icon .icon-00 {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/girl-00.png) no-repeat
+ }
+
+ .module-cy-user-page .module-sex .sex-config .sex-center .sex-select .icon-woman .icon .icon-90 {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/girl-90.png) no-repeat
+ }
+
+ .module-cy-user-page .module-sex .sex-config .sex-center .sex-select .icon-woman .icon .icon-80 {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/girl-80.png) no-repeat
+ }
+
+ .module-cy-user-page .module-sex .sex-config .sex-center .sex-select .icon-woman .icon .icon-70 {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/girl-70.png) no-repeat
+ }
+
+ .module-cy-user-page .module-sex .sex-config .sex-center .sex-select .icon-woman .icon .icon-60 {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/girl-60.png) no-repeat
+ }
+
+ .module-cy-user-page .module-sex .sex-config .sex-center .sex-select .icon-woman .icon .icon-50 {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/girl-50.png) no-repeat
+ }
+
+ .module-cy-user-page .module-sex .sex-config .sex-center .sex-select .alldown {
+ text-align: center;
+ margin: 40px 0 0
+ }
+
+ .module-cy-user-page .module-sex .sex-config .sex-center .sex-select .alldown .down-button {
+ color: #38a3fd;
+ background-color: #fff;
+ border: 2px solid #38a3fd;
+ border-radius: 20px;
+ cursor: pointer;
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+ width: 106px;
+ height: 32px;
+ line-height: 32px;
+ font-size: 16px;
+ text-align: center
+ }
+
+ .module-cy-user-page .module-sex .sex-config .sex-center .sex-select .alldown .down-button:hover {
+ color: #fff;
+ background-color: #38a3fd
+ }
+
+ .module-cy-user-page .module-sex .sex-config .sex-center .sex-select .otherword {
+ margin: 25px 0 0;
+ font-size: 14px;
+ text-align: center;
+ color: #c3c3c3
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-sex {
+ width: 100px;
+ text-align: center;
+ display: inline;
+ position: absolute;
+ top: 11px;
+ right: 0;
+ *zoom: 1
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-sex-hide,
+ .module-cy-user-page .module-cy-user-info .cy-user-sex:hover .cy-user-sex-age,
+ .module-cy-user-page .module-cy-user-info .cy-user-sex:hover .cy-user-sex-gender {
+ display: none
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-sex:hover .cy-user-sex-update {
+ display: inline-block
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-sex .cy-user-sex-gender {
+ width: 32px;
+ height: 32px;
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+ vertical-align: middle
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-sex .cy-user-sex-gender-0-age-1950 {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/girl-50.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-sex .cy-user-sex-gender-0-age-1960 {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/girl-60.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-sex .cy-user-sex-gender-0-age-1970 {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/girl-70.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-sex .cy-user-sex-gender-0-age-1980 {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/girl-80.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-sex .cy-user-sex-gender-0-age-1990 {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/girl-90.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-sex .cy-user-sex-gender-0-age-2000 {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/girl-00.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-sex .cy-user-sex-gender-1-age-1950 {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/boy-50.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-sex .cy-user-sex-gender-1-age-1960 {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/boy-60.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-sex .cy-user-sex-gender-1-age-1970 {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/boy-70.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-sex .cy-user-sex-gender-1-age-1980 {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/boy-80.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-sex .cy-user-sex-gender-1-age-1990 {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/boy-90.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-sex .cy-user-sex-gender-1-age-2000 {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/boy-00.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-sex .cy-user-sex-age {
+ margin: 0 0 8px;
+ font-size: 12px;
+ font-family: microsoft yahei;
+ color: #999;
+ vertical-align: middle
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-sex .cy-user-sex-update {
+ width: 100px;
+ height: 34px;
+ line-height: 34px;
+ text-align: center;
+ vertical-align: middle;
+ border: 2px solid #38a3fd;
+ border-radius: 20px;
+ color: #38a3fd;
+ font-size: 16px;
+ *display: inline;
+ *zoom: 1;
+ display: none;
+ cursor: pointer
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-sex .cy-user-sex-update:hover1 {
+ background-color: #38a3fd;
+ color: #fff
+ }
+
+ .module-cy-user-page .module-cy-user-info .module-delete-dialog .dialog-button {
+ background: #fff;
+ border: solid 1px #616161;
+ border-radius: 3px;
+ width: 70px;
+ height: 20px;
+ cursor: pointer
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-collection-wrapper {
+ width: 100%;
+ padding-bottom: 17px;
+ border-bottom: 1px solid #e9f0f5;
+ box-sizing: border-box
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-collection-body {
+ margin-right: -10px;
+ box-sizing: border-box;
+ display: inline-block;
+ padding-right: 20px;
+ vertical-align: middle;
+ width: 387px
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-collection-title {
+ font-size: 18px;
+ font-weight: 600;
+ max-height: 56px;
+ line-height: 28px;
+ overflow: hidden
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-collection-panel {
+ width: 100%;
+ height: 32px;
+ line-height: 32px;
+ font-size: 12px;
+ padding-top: 10px
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-collection-from {
+ color: #999
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-collection-del {
+ float: right;
+ margin-right: 12px;
+ color: #999;
+ cursor: pointer
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-collection-del i {
+ display: inline-block;
+ width: 12px;
+ height: 12px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/del.png) no-repeat center;
+ vertical-align: middle;
+ margin-right: 3px
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-collection-time {
+ float: right;
+ margin-right: 5px;
+ color: #999
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-collection-time i {
+ display: inline-block;
+ width: 12px;
+ height: 12px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-info/063/image/time.png) no-repeat center;
+ vertical-align: middle;
+ margin-right: 3px
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-collection-pic {
+ width: 188px;
+ height: 112px;
+ float: right;
+ background-size: cover
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-info-supports ul {
+ padding: 16px 0 0
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-info-supports ul:after {
+ clear: both;
+ content: "";
+ display: block;
+ height: 0;
+ visibility: hidden
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-info-supports li.cy-info-supports-avatar {
+ float: right;
+ width: 36px;
+ height: 36px;
+ border-radius: 4px;
+ margin: 0 5px;
+ background-size: 100% 100%;
+ background-repeat: no-repeat;
+ background-position: center;
+ cursor: pointer
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-info-supports li.cy-info-supports-count {
+ font-size: 16px;
+ float: right;
+ height: 36px;
+ padding: 0 10px;
+ text-align: center;
+ line-height: 36px;
+ color: #ababab
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-info-supports li.cy-info-supports-count em {
+ margin-left: 4px;
+ font-size: 16px;
+ color: #4398ed
+ }
+
+ .module-cy-user-page .module-cy-user-view .module-user-info-qr-code {
+ height: 100%;
+ width: 100%;
+ position: absolute;
+ top: 0
+ }
+
+ .module-cy-user-page .module-cy-user-view .module-user-info-qr-code .qr-code-mask {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ background: #000;
+ opacity: .6;
+ filter: alpha(opacity=60);
+ top: 0;
+ left: 0;
+ display: inline;
+ z-index: 1000
+ }
+
+ .module-cy-user-page .module-cy-user-view .module-user-info-qr-code .qr-code-wrapper {
+ width: 300px;
+ height: 375px;
+ position: absolute;
+ top: 36%;
+ left: 50%;
+ margin: -187.5px 0 0 -150px;
+ background-color: #fff;
+ border-radius: 10px;
+ z-index: 1001
+ }
+
+ .module-cy-user-page .module-cy-user-view .module-user-info-qr-code .qr-code-wrapper .qr-code-logo-wrapper {
+ width: 100%;
+ height: 38px;
+ margin: 28px 0 0;
+ text-align: center
+ }
+
+ .module-cy-user-page .module-cy-user-view .module-user-info-qr-code .qr-code-wrapper .qr-code-logo-wrapper .qr-code-logo {
+ width: 56px;
+ height: 38px;
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/small-dialog/image/logo.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-view .module-user-info-qr-code .qr-code-wrapper .qr-code-type-wrapper {
+ width: 100%;
+ margin: 28px 0 0;
+ text-align: center
+ }
+
+ .module-cy-user-page .module-cy-user-view .module-user-info-qr-code .qr-code-wrapper .qr-code-first-support {
+ margin: 44px 0 0
+ }
+
+ .module-cy-user-page .module-cy-user-view .module-user-info-qr-code .qr-code-wrapper .qr-code-type-wrapper .qr-code-type-big {
+ font-size: 18px;
+ font-family: microsoft yahei;
+ text-align: center
+ }
+
+ .module-cy-user-page .module-cy-user-view .module-user-info-qr-code .qr-code-wrapper .qr-code-first-support .qr-code-type-big {
+ margin: 6px 0 0
+ }
+
+ .module-cy-user-page .module-cy-user-view .module-user-info-qr-code .qr-code-wrapper .qr-code-type-wrapper .qr-code-type-small {
+ font-size: 12px;
+ margin: 6px 0 0;
+ font-family: microsoft yahei;
+ text-align: center
+ }
+
+ .module-cy-user-page .module-cy-user-view .module-user-info-qr-code .qr-code-wrapper .qr-code-first-support .qr-code-type-small {
+ margin: 20px 0 0
+ }
+
+ .module-cy-user-page .module-cy-user-view .module-user-info-qr-code .qr-code-wrapper .qr-code-type-wrapper .qr-code-img {
+ width: 165px;
+ height: 165px;
+ margin: 20px 0 0
+ }
+
+ .module-cy-user-page .module-cy-user-view .module-user-info-qr-code .qr-code-wrapper .qr-code-type-wrapper .qr-code-text {
+ font-size: 14px;
+ font-family: microsoft yahei;
+ margin: 20px 0 0;
+ text-align: center;
+ color: #dedede
+ }
+
+ .module-cy-user-page .module-cy-user-view .module-user-info-qr-code .qr-code-wrapper .qr-code-close {
+ width: 12px;
+ height: 12px;
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/small-dialog/image/close.png) no-repeat;
+ cursor: pointer;
+ position: absolute;
+ right: 16px;
+ top: 16px
+ }
+
+ .module-cy-user-page .module-cy-user-view .module-user-info-qr-code .module-qrcode-result {
+ width: 300px;
+ height: 125px;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ margin: -55px 0 0 -150px;
+ background-color: #fff;
+ border-radius: 3px;
+ z-index: 1001
+ }
+
+ .module-cy-user-page .module-cy-user-view .module-user-info-qr-code .module-qrcode-result .cy-result-icon-wrapper {
+ width: 100%;
+ text-align: center
+ }
+
+ .module-cy-user-page .module-cy-user-view .module-user-info-qr-code .module-qrcode-result .cy-result-icon-wrapper .cy-result-icon {
+ width: 40px;
+ height: 40px;
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+ margin: 19px 0 0
+ }
+
+ .module-cy-user-page .module-cy-user-view .module-user-info-qr-code .module-qrcode-result .cy-result-icon-wrapper .result-icon-delete-ok {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/small-dialog/image/delete-ok.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-view .module-user-info-qr-code .module-qrcode-result .cy-result-icon-wrapper .result-icon-appeal-submit {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/small-dialog/image/appeal-submit.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-view .module-user-info-qr-code .module-qrcode-result .cy-result-icon-wrapper .result-icon-appeal-reject {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/small-dialog/image/appeal-reject.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-view .module-user-info-qr-code .module-qrcode-result .cy-result-icon-wrapper .result-icon-searching {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/small-dialog/image/searching.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-view .module-user-info-qr-code .module-qrcode-result .cy-result-text {
+ font-size: 16px;
+ font-family: microsoft yahei;
+ text-align: center
+ }
+
+ .module-cy-user-page .module-cy-user-view .module-user-info-qr-code .qr-first-background-wrapper {
+ width: 410px;
+ height: 445px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/small-dialog/image/first-weixin.png);
+ position: absolute;
+ top: 40%;
+ left: 50%;
+ margin: -222.5px 0 0 -175px;
+ z-index: 1001
+ }
+
+ .module-cy-user-page .module-cy-user-view .module-user-info-qr-code .qr-first-background-wrapper .qr-code-wrapper {
+ background: 0 0;
+ margin: -188.5px 0 0 -182px;
+ top: 50%
+ }
+
+ .module-cy-user-page .module-cy-user-view .module-user-info-qr-code .qr-first-background-wrapper .qr-code-wrapper .qr-code-close {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/small-dialog/image/first-close.png)
+ }
+
+ .module-cy-user-page .module-cy-user-view .module-user-info-qr-code .qr-first-background-wrapper .qr-code-wrapper .qr-code-close:hover {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/small-dialog/image/first-close-hover.png)
+ }
+
+ .module-cy-user-page .module-cy-user-view .module-user-info-qr-code .qr-first-background-wrapper .qr-code-wrapper .qr-code-type-wrapper .qr-code-text {
+ color: #cd9904
+ }
+
+ .module-cy-user-page .module-cy-user-view .module-user-info-qr-code .qr-first-background-wrapper .qr-code-wrapper .qr-code-ignore {
+ margin: 18px 10px 0 0;
+ float: right
+ }
+
+ .module-cy-user-page .module-cy-user-view .module-user-info-qr-code .qr-first-background-wrapper .qr-code-wrapper .qr-code-ignore .qr-code-ignore-text {
+ font-size: 12px;
+ font-family: microsoft yahei;
+ color: #cd9904;
+ margin: 0 4px 0 0
+ }
+
+ .module-cy-user-page .module-cy-user-view .module-user-info-qr-code .qr-first-background-wrapper .qr-code-wrapper .qr-code-ignore .qr-code-ignore-select {
+ width: 14px;
+ height: 14px;
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/small-dialog/image/select.png) no-repeat;
+ vertical-align: -2px;
+ *vertical-align: 0;
+ cursor: pointer
+ }
+
+ .module-cy-user-page .module-cy-user-view .module-user-info-qr-code .qr-first-background-wrapper .qr-code-wrapper .qr-code-ignore .qr-code-ignore-select .qr-code-ignore-select-checked {
+ display: block;
+ width: 14px;
+ height: 14px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/small-dialog/image/select-checked.png) no-repeat;
+ cursor: pointer
+ }
+
+ .module-cy-user-page .module-cy-user-view .module-user-info-qr-code .dialog-button {
+ background: #fff;
+ border: solid 1px #3b9bf5;
+ color: #3b9bf5;
+ border-radius: 3px;
+ width: 55px;
+ height: 20px;
+ cursor: pointer
+ }
+
+ .module-cy-user-page .module-cy-user-view .module-user-info-qr-code .dialog-button.active {
+ background: #3b9bf5;
+ border: 0;
+ color: #fff
+ }
+
+ .module-cy-user-view .cy-user-view-header {
+ padding: 20px;
+ height: 84px
+ }
+
+ .module-cy-user-view .cy-user-view-header .cy-user-photo-container {
+ position: relative;
+ width: 84px;
+ height: 84px;
+ float: left
+ }
+
+ .module-cy-user-view .cy-user-view-header .cy-user-photo {
+ width: 84px;
+ height: 84px;
+ display: block;
+ float: left;
+ border-radius: 3px
+ }
+
+ .module-cy-user-view .cy-user-view-header .cy-user-view {
+ float: left;
+ width: 505px;
+ height: 84px;
+ position: relative
+ }
+
+ .module-cy-user-view .cy-user-view-header .cy-user-view .cy-user-view-txt {
+ margin-left: 21px;
+ margin-top: 12px
+ }
+
+ .module-cy-user-view .cy-user-view-header .cy-user-view .cy-user-view-txt .cy-user-name {
+ color: #111;
+ font-size: 20px;
+ font-family: "Microsoft YaHei";
+ font-style: normal;
+ letter-spacing: 1px;
+ vertical-align: middle
+ }
+
+ .module-cy-user-view .cy-user-view-header .cy-user-view .cy-user-option-area {
+ display: inline-block;
+ position: relative
+ }
+
+ .module-cy-user-view .cy-user-view-header .cy-user-view .cy-user-view-txt .cy-user-option {
+ display: inline-block;
+ vertical-align: middle;
+ width: 25px;
+ height: 25px;
+ margin-left: 6px;
+ cursor: pointer;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/image/options-icon.png)
+ }
+
+ .module-cy-user-view .cy-user-view-header .cy-user-view .cy-user-view-txt .cy-user-option:hover {
+ color: #43a9d0
+ }
+
+ .module-cy-user-view .cy-user-view-header .cy-user-view .cy-other-info {
+ margin-left: 21px;
+ margin-top: 17px
+ }
+
+ .module-cy-user-view .cy-user-view-header .cy-user-view .cy-other-info li {
+ width: 89px;
+ height: 22px;
+ float: left
+ }
+
+ .module-cy-user-view .cy-user-view-header .cy-user-view .cy-other-info li .other-info-ico {
+ width: 20px;
+ height: 22px;
+ display: block;
+ float: left
+ }
+
+ .module-cy-user-view .cy-user-view-header .cy-user-view .cy-other-info li .comment-info-ico {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/image/comments.png)
+ }
+
+ .module-cy-user-view .cy-user-view-header .cy-user-view .cy-other-info li .reply-info-ico {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/image/reply.png)
+ }
+
+ .module-cy-user-view .cy-user-view-header .cy-user-view .cy-other-info li .support-info-ico {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/image/support.png)
+ }
+
+ .module-cy-user-view .cy-user-view-header .cy-user-view .cy-other-info li .other-info-txt {
+ float: left;
+ font-size: 14px;
+ font-family: "Microsoft YaHei";
+ margin-left: 6px;
+ margin-top: 5px
+ }
+
+ .module-cy-user-view .cy-other-page .cy-other-comment-list .empty-hold-place {
+ display: block;
+ text-align: center;
+ line-height: 16px;
+ font-size: 16px;
+ font-family: "Microsoft YaHei";
+ width: 345px;
+ margin: 0 auto;
+ padding-bottom: 50px
+ }
+
+ .module-cy-user-view .cy-other-page .cy-other-comment-list .empty-hold-place .pet-pic {
+ margin-top: 100px;
+ width: 345px;
+ height: 293px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/image/notice-empty.png);
+ background-repeat: no-repeat
+ }
+
+ .module-cy-user-view .cy-other-page .cy-other-comment-list .empty-hold-place .empty-txt {
+ width: 345px;
+ height: 22px;
+ margin-top: 70px;
+ background-repeat: no-repeat
+ }
+
+ .module-cy-user-view .cy-other-page .cy-other-comment-list .empty-hold-place .comment-empty-txt {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/image/title-nocomment.png)
+ }
+
+ .module-cy-user-view .cy-other-page .cy-other-comment-list .empty-hold-place .power-by-cy-txt {
+ width: 345px;
+ height: 16px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/image/power-by.png);
+ background-repeat: no-repeat;
+ margin-top: 30px
+ }
+
+ .module-cy-user-view .cy-user-other {
+ position: relative
+ }
+
+ .module-cy-user-view .cy-user-other .cy-tab-active-bar {
+ position: absolute;
+ background: #38a3fd;
+ width: 84px;
+ height: 2px;
+ margin-left: 63px;
+ margin-top: -2px
+ }
+
+ .module-cy-user-view .cy-user-other .cy-other-label {
+ border-bottom: 1px solid #c3cad4
+ }
+
+ .module-cy-user-view .cy-user-other .cy-other-label li {
+ width: 210px;
+ float: left
+ }
+
+ .module-cy-user-view .cy-user-other .cy-other-label li .cy-other-label-item {
+ width: 84px;
+ margin: 0 auto;
+ height: 28px;
+ font-family: "Microsoft YaHei";
+ font-size: 14px;
+ color: #333;
+ text-align: center;
+ cursor: pointer;
+ line-height: 15px
+ }
+
+ .module-cy-user-view .cy-user-other .cy-other-label li.active .cy-other-label-item {
+ color: #38a3fd
+ }
+
+ .module-cy-user-view .cy-user-other .cy-other-label li .cy-other-label-item .cy-num {
+ font-family: "Microsoft YaHei";
+ font-size: 14px;
+ color: #333;
+ font-style: normal
+ }
+
+ .module-cy-user-view .cy-user-other .cy-other-label li.active .cy-other-label-item .cy-num {
+ color: #38a3fd
+ }
+
+ .module-cy-user-page .module-cy-user-view .cy-user-other .cy-other-page {
+ width: 630px;
+ overflow: hidden;
+ overflow-y: auto;
+ display: none
+ }
+
+ .module-cy-user-page .module-cy-user-view .cy-user-other .cy-other-page-container .active {
+ display: block
+ }
+
+ .module-cy-user-page .module-cy-user-view .cy-user-other .cy-other-page .cy-other-comment-list {
+ width: 575px;
+ margin: 20px 0 0 20px
+ }
+
+ .module-cy-user-page .module-cy-user-view .cy-user-other .cy-other-page .cy-other-comment-list li {
+ margin-top: 20px
+ }
+
+ .module-cy-user-page .module-cy-user-view .cy-user-other .cy-other-page .cy-other-comment-list li:first-child {
+ margin-top: 0
+ }
+
+ .module-cy-user-page .module-cy-user-view .cy-user-other .cy-other-page .cy-other-comment-list li .cy-other-photo {
+ width: 40px;
+ float: left
+ }
+
+ .module-cy-user-page .module-cy-user-view .cy-user-other .cy-other-page .cy-other-comment-list li .cy-other-photo img {
+ width: 40px;
+ height: 40px;
+ display: block;
+ border-radius: 3px
+ }
+
+ .module-cy-user-page .module-cy-user-view .cy-user-other .cy-other-page .cy-other-comment-list li .cy-other-comment-container {
+ float: left;
+ width: 518px;
+ margin-left: 15px;
+ padding-bottom: 17px;
+ border-bottom: 1px solid #e9f0f5
+ }
+
+ .module-cy-user-page .module-cy-user-view .cy-user-other .cy-other-page .cy-other-comment-list li .cy-other-comment-container .cy-other-user-name {
+ font-size: 14px;
+ font-family: "Microsoft YaHei";
+ color: #38a3fd;
+ line-height: 14px;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis
+ }
+
+ .module-cy-user-page .module-cy-user-view .cy-user-other .cy-other-page .cy-other-comment-list li .cy-other-comment-container .cy-other-comment {
+ font-family: "Microsoft YaHei";
+ font-size: 16px;
+ color: #111;
+ margin-top: 15px;
+ line-height: 21px
+ }
+
+ .module-cy-user-page .module-cy-user-view .cy-user-other .cy-other-page .cy-other-comment-list li .cy-other-comment-container .cy-other-comment img {
+ vertical-align: -2px;
+ *vertical-align: 0
+ }
+
+ .module-cy-user-page .module-cy-user-view .cy-user-other .cy-other-page .cy-other-comment-list li .cy-other-comment-container .cy-other-comment-other {
+ background: #fdefef
+ }
+
+ .module-cy-user-page .module-cy-user-view .cy-user-other .cy-other-page .cy-other-comment-list li .cy-other-comment-container .cy-auditing-status {
+ font-size: 14px;
+ color: #f05858;
+ padding: 4px 0 4px 10px;
+ background: #fdefef;
+ display: block
+ }
+
+ .module-cy-user-page .module-cy-user-view .cy-user-other .cy-other-page .cy-other-comment-list li .cy-other-comment-container .cy-warning-ico {
+ display: inline-block;
+ width: 13px;
+ height: 13px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/image/warning-ico.png);
+ vertical-align: -1px;
+ *vertical-align: 3px;
+ margin-right: 4px
+ }
+
+ .module-cy-user-page .module-cy-user-view .cy-user-other .cy-other-page .cy-other-comment-list li .cy-other-comment-container .cy-other-comment-source {
+ font-family: "Microsoft YaHei";
+ font-size: 14px;
+ color: #465e72;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ margin-top: 14px;
+ display: inline-block
+ }
+
+ .module-cy-user-page .module-cy-user-view .cy-user-other .cy-other-page .cy-other-comment-list li .cy-other-comment-container .no-icp-txt {
+ font-family: "Microsoft YaHei";
+ font-size: 14px;
+ color: #f05858;
+ margin-top: 14px;
+ display: block
+ }
+
+ .module-cy-user-page .module-cy-user-view .cy-user-other .cy-other-page .cy-other-comment-list li .cy-other-comment-container .cy-other-comment-site-from {
+ font-family: "Microsoft YaHei";
+ float: left;
+ font-size: 12px;
+ color: #999;
+ margin-top: 4px
+ }
+
+ .module-cy-user-page .module-cy-user-view .cy-user-other .cy-other-page .cy-other-comment-list li .cy-other-comment-container .cy-other-comment-time {
+ float: right;
+ font-family: "Microsoft YaHei"
+ }
+
+ .module-cy-user-page .module-cy-user-view .cy-user-other .cy-other-page .cy-other-comment-list li .cy-other-comment-container .cy-other-comment-time em {
+ display: inline-block;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/image/time-ico.png);
+ width: 12px;
+ height: 12px;
+ vertical-align: -2px;
+ *vertical-align: 3px;
+ margin-top: 4px;
+ *margin-left: 4px
+ }
+
+ .module-cy-user-page .module-cy-user-view .cy-user-other .cy-other-page .cy-other-comment-list li .cy-other-comment-container .cy-other-comment-time i {
+ font-style: normal;
+ font-size: 12px;
+ color: #999;
+ font-family: "Microsoft YaHei"
+ }
+
+ .module-cy-user-page .module-cy-user-view .cy-user-other .cy-other-page .cy-blocked-icon {
+ display: inline-block;
+ width: 40px;
+ height: 40px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/image/appeal-reject.png) no-repeat;
+ margin-right: 40px;
+ vertical-align: middle
+ }
+
+ .module-cy-user-page .module-cy-user-view .cy-user-sex {
+ width: 100px;
+ text-align: center;
+ display: inline;
+ position: absolute;
+ top: 11px;
+ right: 0;
+ *zoom: 1
+ }
+
+ .module-cy-user-page .module-cy-user-view .cy-user-sex-hide {
+ display: none
+ }
+
+ .module-cy-user-page .module-cy-user-view .cy-user-sex .cy-user-sex-gender {
+ width: 32px;
+ height: 32px;
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+ vertical-align: middle
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-sex .cy-user-sex-gender-0-age-1950 {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/image/girl-50.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-view .cy-user-sex .cy-user-sex-gender-0-age-1960 {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/image/girl-60.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-view .cy-user-sex .cy-user-sex-gender-0-age-1970 {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/image/girl-70.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-view .cy-user-sex .cy-user-sex-gender-0-age-1980 {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/image/girl-80.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-view .cy-user-sex .cy-user-sex-gender-0-age-1990 {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/image/girl-90.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-view .cy-user-sex .cy-user-sex-gender-0-age-2000 {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/image/girl-00.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-info .cy-user-sex .cy-user-sex-gender-1-age-1950 {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/image/boy-50.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-view .cy-user-sex .cy-user-sex-gender-1-age-1960 {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/image/boy-60.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-view .cy-user-sex .cy-user-sex-gender-1-age-1970 {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/image/boy-70.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-view .cy-user-sex .cy-user-sex-gender-1-age-1980 {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/image/boy-80.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-view .cy-user-sex .cy-user-sex-gender-1-age-1990 {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/image/boy-90.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-view .cy-user-sex .cy-user-sex-gender-1-age-2000 {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/image/boy-00.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-view .cy-user-sex .cy-user-sex-age {
+ margin: 0 0 8px;
+ font-size: 12px;
+ font-family: microsoft yahei;
+ color: #999;
+ vertical-align: middle
+ }
+
+ .module-cy-user-page .module-cy-user-view .cy-user-sex .cy-user-sex-update {
+ width: 100px;
+ height: 34px;
+ line-height: 34px;
+ text-align: center;
+ vertical-align: middle;
+ border: 2px solid #38a3fd;
+ border-radius: 20px;
+ color: #38a3fd;
+ font-size: 16px;
+ *display: inline;
+ *zoom: 1;
+ display: none;
+ cursor: pointer
+ }
+
+ .module-cy-user-view .cy-user-option-dialog {
+ display: inline-block;
+ position: absolute;
+ width: 218px;
+ height: 218px;
+ top: 20px;
+ left: -186px;
+ z-index: 10
+ }
+
+ .module-cy-user-view .cy-user-option-dialog .cy-user-option-pop {
+ display: inline-block;
+ width: 12px;
+ height: 8px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/image/dialog-pop.png) no-repeat;
+ position: absolute;
+ right: 8px;
+ top: 1px
+ }
+
+ .module-cy-user-view .cy-user-option-dialog .cy-user-option-list {
+ margin-top: 7px;
+ background: #fff;
+ border: solid 2px #d6d6d6;
+ border-radius: 5px
+ }
+
+ .module-cy-user-view .cy-user-option-dialog .cy-user-option-list li {
+ padding: 15px;
+ cursor: pointer
+ }
+
+ .module-cy-user-view .cy-user-option-dialog .cy-user-option-list li:hover {
+ background: #cbcbcb
+ }
+
+ .module-cy-user-view .cy-user-option-dialog .cy-user-option-list .cy-option-title {
+ color: #e6312d;
+ margin-bottom: 5px;
+ font-size: 13px;
+ font-weight: 600;
+ display: inline-block;
+ line-height: 22px
+ }
+
+ .module-cy-user-view .cy-user-option-dialog .cy-user-option-list .cy-option-content {
+ color: #5da6c6;
+ margin-left: 10px;
+ line-height: 18px
+ }
+
+ .module-cy-user-view .cy-user-option-dialog .cy-option-icon {
+ display: inline-block;
+ width: 22px;
+ height: 22px;
+ vertical-align: top
+ }
+
+ .module-cy-user-view .cy-user-option-dialog .cy-user-option-blocked .cy-option-icon {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/image/blocked-icon.png) no-repeat
+ }
+
+ .module-cy-user-view .cy-user-option-dialog .cy-user-option-reported .cy-option-icon {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/image/reported-icon.png) no-repeat
+ }
+
+ .module-cy-user-page .cy-prompt-mask {
+ background: rgba(0, 0, 0, .5);
+ height: 100%;
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ z-index: 2147483647
+ }
+
+ .module-cy-user-page .cy-alert {
+ background: #fff;
+ border-radius: 3px;
+ bottom: 0;
+ height: 218px;
+ left: 0;
+ margin: auto;
+ padding: 25px;
+ position: absolute;
+ right: 0;
+ top: 0;
+ width: 400px;
+ z-index: 2147483647
+ }
+
+ .module-cy-user-page .cy-alert-logo {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/prompt/alert-logo.png) no-repeat center;
+ background-size: 100%;
+ height: 32px;
+ margin: 24px auto;
+ width: 32px
+ }
+
+ .module-cy-user-page .cy-alert-text {
+ padding-top: 16px;
+ font-size: 16px;
+ line-height: 24px;
+ text-align: center
+ }
+
+ .module-cy-user-page .cy-alert-btn {
+ border: 1px solid #bababa;
+ border-radius: 3px;
+ bottom: 40px;
+ cursor: pointer;
+ height: 32px;
+ line-height: 32px;
+ margin-left: 167px;
+ position: absolute;
+ text-align: center;
+ width: 80px
+ }
+
+ .module-cy-user-page .cy-confirm {
+ background: #fff;
+ border-radius: 3px;
+ bottom: 0;
+ box-sizing: border-box;
+ height: 158px;
+ left: 0;
+ margin: auto;
+ padding: 25px;
+ position: absolute;
+ right: 0;
+ top: 0;
+ width: 400px;
+ z-index: 2147483647
+ }
+
+ .module-cy-user-page .cy-confirm-text {
+ font-size: 16px;
+ line-height: 24px;
+ text-align: center
+ }
+
+ .module-cy-user-page .cy-confirm-btns {
+ bottom: 32px;
+ font-size: 14px;
+ position: absolute;
+ text-align: center
+ }
+
+ .module-cy-user-page .cy-confirm-yes {
+ border: 1px solid #4398ed;
+ border-radius: 3px;
+ box-sizing: border-box;
+ color: #4398ed;
+ cursor: pointer;
+ display: inline-block;
+ height: 32px;
+ line-height: 30px;
+ margin: 0 64px 0 63px;
+ text-align: center;
+ width: 80px
+ }
+
+ .module-cy-user-page .cy-confirm-no {
+ background: #4398ed;
+ border-radius: 3px;
+ box-shadow: 0 4px 10px 0 #4398ed;
+ box-sizing: border-box;
+ color: #fff;
+ cursor: pointer;
+ display: inline-block;
+ height: 32px;
+ line-height: 32px;
+ text-align: center;
+ width: 80px
+ }
+
+ .module-cy-user-page .cy-toast {
+ background: #fff;
+ border-radius: 3px;
+ bottom: 0;
+ height: 88px;
+ left: 0;
+ margin: auto;
+ padding: 25px;
+ position: absolute;
+ right: 0;
+ top: 0;
+ width: 300px;
+ z-index: 2147483647
+ }
+
+ .module-cy-user-page .cy-toast-logo {
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 100%;
+ height: 32px;
+ margin: 4px auto;
+ width: 32px
+ }
+
+ .module-cy-user-page .cy-toast-icon-reject {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/prompt/images/appeal-reject.png)
+ }
+
+ .module-cy-user-page .cy-toast-icon-submit {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/prompt/images/appeal-submit.png)
+ }
+
+ .module-cy-user-page .cy-toast-icon-search {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/prompt/images/searching.png)
+ }
+
+ .module-cy-user-page .cy-toast-icon-success {
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-user-view/031/prompt/images/delete-ok.png)
+ }
+
+ .module-cy-user-page .cy-toast-text {
+ padding-top: 16px;
+ font-size: 16px;
+ line-height: 24px;
+ text-align: center
+ }
+
+ .module-cy-user-hots {
+ width: 100%!important;
+ height: 100%!important;
+ overflow: auto!important
+ }
+
+ .module-cy-user-page .cy-hots-nav {
+ background: #fff;
+ border-bottom: 1px solid rgba(0, 0, 0, .4);
+ height: 60px;
+ top: 0;
+ position: absolute;
+ width: 100%;
+ z-index: 100
+ }
+
+ .module-cy-user-page .cy-hots-nav ul:after {
+ clear: both;
+ content: "";
+ display: block;
+ height: 0;
+ visibility: hidden
+ }
+
+ .module-cy-user-page .cy-hots-nav ul li {
+ box-sizing: border-box;
+ color: rgba(0, 0, 0, .4);
+ cursor: pointer;
+ float: left;
+ font-size: 20px;
+ height: 100%;
+ line-height: 59px;
+ text-align: center;
+ width: 126px
+ }
+
+ .module-cy-user-page .cy-hots-nav ul li.active {
+ color: #000;
+ border-bottom: 2px solid #4398ed
+ }
+
+ .module-cy-user-page .cy-tab-list li .cy-hots-ico {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-hots/009/module-hots/images/hots_ico.png) no-repeat
+ }
+
+ .module-cy-user-page .cy-tab-list .hots-li:hover .cy-hots-ico {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-hots/009/module-hots/images/hots_ico_active.png) no-repeat
+ }
+
+ .module-cy-user-page .cy-tab-list .hots-li:hover .hots-text {
+ color: #38a3fd
+ }
+
+ .module-cy-user-page .cy-tab-list li.active .cy-hots-ico {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-hots/009/module-hots/images/hots_ico_active.png) no-repeat
+ }
+
+ .module-cy-user-page .cy-tab-list li.active .hots-text {
+ color: #38a3fd
+ }
+
+ .module-cy-user-page .cy-hots-container {
+ padding-top: 60px;
+ background: rgba(0, 0, 0, .04)
+ }
+
+ .module-cy-user-page .cy-hots-container .cy-hots-column {
+ margin: 5px auto;
+ float: left
+ }
+
+ .module-cy-user-page .cy-hots-container .cy-hots-loading {
+ background: rgba(0, 0, 0, .05);
+ color: rgba(0, 0, 0, .2);
+ display: none;
+ font-size: 14px;
+ height: 35px;
+ line-height: 35px;
+ margin-bottom: 50px;
+ text-align: center;
+ width: 100%
+ }
+
+ .module-cy-user-page .cy-hots-container .cy-hots-column .cy-hots-article {
+ background: #fff;
+ box-shadow: 0 2px 4px 0 rgba(0, 0, 0, .1);
+ border: 1px solid #ebebeb;
+ border-top: 0;
+ margin: 14px 5px;
+ width: 292px
+ }
+
+ .module-cy-user-page .cy-hots-container .cy-hots-column .cy-hots-article-title {
+ color: #405c77;
+ font-size: 16px;
+ letter-spacing: .5px;
+ line-height: 24px;
+ padding: 8px 12px 0
+ }
+
+ .module-cy-user-page .cy-hots-container .cy-hots-column .cy-hots-article-count {
+ line-height: 30px;
+ margin-bottom: 8px
+ }
+
+ .module-cy-user-page .cy-hots-container .cy-hots-column .cy-hots-article-tag {
+ color: rgba(0, 0, 0, .4);
+ font-size: 12px;
+ margin: 12px
+ }
+
+ .module-cy-user-page .cy-hots-container .cy-hots-column .cy-hots-article-tag em {
+ color: rgba(0, 0, 0, .4);
+ font-size: 12px
+ }
+
+ .module-cy-user-page .cy-hots-container .cy-hots-column .cy-hots-cmt {
+ border-top: 1px solid #ebebeb;
+ padding-bottom: 8px
+ }
+
+ .module-cy-user-page .cy-hots-container .cy-hots-column .cy-hots-see-more {
+ background: #f3f3f3 url(https://changyan.itc.cn/mdevp/extensions/cy-hots/009/module-hots/images/seemore.gif) no-repeat center 5px;
+ cursor: pointer;
+ height: 18px;
+ width: 100%;
+ zoom: 1
+ }
+
+ .module-cy-user-page .cy-hots-container .cy-hots-column .cy-hots-see-more:hover {
+ background-color: #e2e2e2
+ }
+
+ .module-cy-user-page .cy-hots-container .cy-hots-column .cy-hots-see-more span {
+ display: none
+ }
+
+ .module-cy-user-page .cy-hots-container .cy-hots-column .cy-hots-cmt-body {
+ line-height: 22px;
+ padding: 12px 12px 0;
+ word-wrap: break-word;
+ word-break: break-all
+ }
+
+ .module-cy-user-page .cy-hots-container .cy-hots-column .cy-hots-cmt-avatar {
+ background-position: center;
+ background-size: 100%;
+ background-repeat: no-repeat;
+ border-radius: 11px;
+ cursor: pointer;
+ display: inline-block;
+ height: 22px;
+ margin: 0 5px;
+ vertical-align: middle;
+ width: 22px
+ }
+
+ .module-cy-user-page .cy-hots-container .cy-hots-column .cy-hots-cmt-nickname {
+ color: #4398ed;
+ cursor: pointer;
+ display: inline;
+ font-size: 12px;
+ word-wrap: break-word;
+ word-break: break-all
+ }
+
+ .module-cy-user-page .cy-hots-container .cy-hots-column .cy-hots-cmt-text {
+ color: rgba(0, 0, 0, .8);
+ display: inline;
+ font-size: 12px
+ }
+
+ .module-cy-user-page .cy-hots-container .cy-hots-column .cy-hots-cmt-panel {
+ line-height: 30px
+ }
+
+ .module-cy-user-page .cy-hots-container .cy-hots-column .cy-hots-cmt-support {
+ color: rgba(0, 0, 0, .4);
+ cursor: pointer;
+ font-size: 12px;
+ margin-left: 12px;
+ margin-right: 8px
+ }
+
+ .module-cy-user-page .cy-hots-container .cy-hots-column .cy-hots-cmt-support em {
+ color: rgba(0, 0, 0, .4);
+ font-size: 12px
+ }
+
+ .module-cy-user-page .cy-hots-container .cy-hots-column .cy-hots-cmt-reply {
+ cursor: pointer;
+ color: rgba(0, 0, 0, .4);
+ font-size: 12px;
+ margin: 0 12px
+ }
+
+ .module-cy-user-page .cy-hots-container .cy-hots-column .cy-hots-cmt-reply em {
+ color: rgba(0, 0, 0, .4);
+ font-size: 12px
+ }
+
+ .module-cy-user-page .cy-hots-container .cy-hots-column .cy-hots-cmt-time {
+ color: rgba(0, 0, 0, .4);
+ font-size: 12px;
+ float: right;
+ margin-right: 15px
+ }
+
+ .module-cy-user-page .cy-hots-container .cy-hots-column .cy-hots-cmt-time em {
+ color: rgba(0, 0, 0, .4);
+ font-size: 12px
+ }
+
+ .module-cy-user-page .cy-hots-container .cy-hots-column .cy-hots-cmt-box {
+ background: #fafafa;
+ border-top: 1px solid #ebebeb;
+ display: none;
+ padding-top: 10px
+ }
+
+ .module-cy-user-page .cy-hots-container .cy-hots-column .cy-hots-cmt-box:after {
+ clear: both;
+ content: "";
+ display: block;
+ height: 0;
+ visibility: hidden
+ }
+
+ .module-cy-user-page .cy-hots-container .cy-hots-column .cy-hots-textarea {
+ background: #fff url(https://changyan.itc.cn/mdevp/extensions/cy-hots/009/module-hots/images/cy-logo-small.png) no-repeat center;
+ border: 1px solid #4398ed;
+ border-radius: 4px;
+ cursor: pointer;
+ height: 60px;
+ margin: auto;
+ width: 280px
+ }
+
+ .module-cy-user-page .cy-hots-container .cy-hots-column .cy-hots-textarea textarea {
+ background: 0 0;
+ border: 0;
+ border-radius: 4px;
+ box-sizing: border-box;
+ height: 100%;
+ outline: 0;
+ overflow-y: auto;
+ padding: 8px;
+ resize: none;
+ width: 100%
+ }
+
+ .module-cy-user-page .cy-hots-container .cy-hots-column .cy-hots-warning {
+ color: #4398ed;
+ display: none;
+ float: right;
+ font-size: 12px;
+ height: 30px;
+ letter-spacing: 1px;
+ line-height: 30px;
+ margin: 10px 10px 15px;
+ text-align: center;
+ width: 130px
+ }
+
+ .module-cy-user-page .cy-hots-container .cy-hots-column .cy-hots-submit {
+ background: #4398ed;
+ border-radius: 4px;
+ color: #fff;
+ cursor: pointer;
+ float: right;
+ font-size: 14px;
+ height: 30px;
+ letter-spacing: 1px;
+ line-height: 30px;
+ margin: 10px 10px 15px;
+ text-align: center;
+ width: 88px
+ }
+
+ .module-cy-user-page .cy-hots-container .cy-hots-column .cy-hots-reply-cmt {
+ padding: 0 12px
+ }
+
+ .module-cy-user-page .cy-hots-container .cy-hots-column .cy-hots-reply-cmt-body {
+ background: #f7f7f7;
+ border: 1px solid #e7e6e8;
+ box-sizing: border-box;
+ line-height: 22px;
+ padding: 10px 8px;
+ width: 100%
+ }
+
+ .module-cy-user-page .cy-hots-container .cy-hots-column .cy-hots-reply-cmt-avatar {
+ background-position: center;
+ background-size: 100%;
+ background-repeat: no-repeat;
+ border-radius: 11px;
+ cursor: pointer;
+ display: inline-block;
+ height: 22px;
+ margin: 0 5px;
+ vertical-align: middle;
+ width: 22px
+ }
+
+ .module-cy-user-page .cy-hots-container .cy-hots-column .cy-hots-reply-cmt-span {
+ color: #999;
+ display: inline;
+ font-size: 12px
+ }
+
+ .module-cy-user-page .cy-hots-container .cy-hots-column .cy-hots-reply-cmt-nickname {
+ color: #4398ed;
+ cursor: pointer;
+ display: inline;
+ font-size: 12px;
+ word-wrap: break-word;
+ word-break: break-all
+ }
+
+ .module-cy-user-page .cy-hots-container .cy-hots-column .cy-hots-reply-cmt-text {
+ color: rgba(0, 0, 0, .8);
+ display: inline;
+ font-size: 12px
+ }
+
+ .module-cy-user-page .cy-tab-list li .cy-footprint-ico {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-hots/009/module-footprints/images/footprint-ico.png) no-repeat
+ }
+
+ .module-cy-user-page .cy-tab-list .footprint-li:hover .cy-footprint-ico {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-hots/009/module-footprints/images/footprint-ico-active.png) no-repeat
+ }
+
+ .module-cy-user-page .cy-tab-list .footprint-li:hover .footprint-text {
+ color: #38a3fd
+ }
+
+ .module-cy-user-page .cy-tab-list li.active .cy-footprint-ico {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-hots/009/module-footprints/images/footprint-ico-active.png) no-repeat
+ }
+
+ .module-cy-user-page .cy-tab-list li.active .footprint-text {
+ color: #38a3fd
+ }
+
+ .module-cy-user-page .cy-footprint-container {
+ padding-top: 80px
+ }
+
+ .module-cy-user-page .module-cy-user-footprint {
+ display: none;
+ height: 100%;
+ position: relative;
+ overflow-x: hidden;
+ overflow-y: auto
+ }
+
+ .module-cy-user-page .module-cy-user-footprint .cy-clearfix:after {
+ content: ".";
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden
+ }
+
+ .module-cy-user-page .module-cy-user-footprint .cy-clearfix {
+ zoom: 1;
+ visibility: visible
+ }
+
+ .module-cy-user-page .footprint-header {
+ border-bottom: 1px solid #c3cad4
+ }
+
+ .module-cy-user-page .footprint-header .footprint-title {
+ padding: 22px 0 20px;
+ font-size: 22px;
+ font-weight: 700
+ }
+
+ .module-cy-user-page .footprint-header .footprint-title-intro {
+ height: 20px;
+ padding-bottom: 17px
+ }
+
+ .module-cy-user-page .footprint-header .footprint-title-intro .footprint-detail {
+ font-size: 16px;
+ line-height: 20px;
+ vertical-align: middle
+ }
+
+ .module-cy-user-page .footprint-header .footprint-title-intro .help-ico {
+ cursor: pointer;
+ display: inline-block;
+ width: 20px;
+ height: 20px;
+ margin-left: 11px;
+ vertical-align: middle;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-hots/009/module-footprints/images/help.png) no-repeat;
+ background-position: top left;
+ background-size: 100%;
+ position: relative
+ }
+
+ .module-cy-user-page .footprint-header .footprint-title-intro .help-ico .help-pop {
+ width: 330px;
+ border: 1px solid #e9eff5;
+ background-color: #FFF;
+ color: #000;
+ font-size: 14px;
+ line-height: 20px;
+ position: absolute;
+ top: -16px;
+ left: 30px;
+ box-shadow: 0 0 5px #3b5161;
+ padding: 14px 20px 13px;
+ z-index: 2;
+ display: none
+ }
+
+ .module-cy-user-page .footprint-header .footprint-title-intro .help-ico:hover {
+ background-position: bottom left
+ }
+
+ .module-cy-user-page .footprint-header .footprint-title-intro .help-ico:hover .help-pop {
+ display: block
+ }
+
+ .module-cy-user-page .chest-process {
+ position: relative;
+ padding: 30px 36px 0 20px
+ }
+
+ .module-cy-user-page .chest-process .chest-text {
+ position: absolute;
+ top: -55px;
+ left: -11px;
+ width: 90px;
+ height: 50px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-hots/009/module-footprints/images/text-hover-small.png) no-repeat
+ }
+
+ .module-cy-user-page .chest-process .chest-text p {
+ text-align: center;
+ line-height: 18px;
+ font-size: 12px;
+ padding: 4px 20px;
+ vertical-align: middle;
+ color: #fff
+ }
+
+ .module-cy-user-page .chest-process .chestlists .chestlist {
+ float: left;
+ padding-left: 8px;
+ padding-bottom: 10px;
+ position: relative
+ }
+
+ .module-cy-user-page .chest-process .chestlists .chestlist:first-child {
+ padding-left: 0
+ }
+
+ .module-cy-user-page .chest-process .chestlists .chestlist:first-child .chest-text {
+ left: -19px
+ }
+
+ .module-cy-user-page .chest-process .chestlists .chestlist .chest-box {
+ width: 30px;
+ height: 26px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-hots/009/module-footprints/images/chest-box-open.png) no-repeat;
+ background-size: 100%;
+ cursor: pointer
+ }
+
+ .module-cy-user-page .chest-process .process-state {
+ position: relative
+ }
+
+ .module-cy-user-page .chest-process .process-state .state-null {
+ float: left;
+ width: 520px;
+ height: 20px;
+ margin-top: 3px;
+ border-radius: 10px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-hots/009/module-footprints/images/state.png) no-repeat;
+ position: relative
+ }
+
+ .module-cy-user-page .chest-process .process-state .state-null .state-null-toast {
+ position: absolute;
+ right: 8px;
+ font-size: 14px;
+ line-height: 20px;
+ vertical-align: middle;
+ color: #aeaeae
+ }
+
+ .module-cy-user-page .chest-process .process-state .state-null .state-null-toast span {
+ font-size: 14px;
+ color: #aeaeae
+ }
+
+ .module-cy-user-page .chest-process .process-state .state-null .state-paddingleft {
+ float: left;
+ position: absolute;
+ width: 6px;
+ height: 12px;
+ margin: 4px 0 4px 4px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-hots/009/module-footprints/images/state-paddingleft.png) no-repeat
+ }
+
+ .module-cy-user-page .chest-process .process-state .state-null .state-has {
+ float: left;
+ width: 230px;
+ height: 12px;
+ margin: 4px 4px 4px 10px;
+ background-color: #4398ed;
+ position: absolute;
+ z-index: 1
+ }
+
+ .module-cy-user-page .chest-process .process-state .state-has .state-tag {
+ position: absolute;
+ top: -15px;
+ right: -1px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-hots/009/module-footprints/images/state-tag-left.png) no-repeat;
+ background-position: top left;
+ padding-left: 20px;
+ z-index: 1
+ }
+
+ .module-cy-user-page .chest-process .process-state .state-has .state-tag .has-num {
+ display: block;
+ color: #4398ed;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-hots/009/module-footprints/images/state-tag-right.png) no-repeat;
+ background-position: top right;
+ padding-right: 20px;
+ line-height: 40px;
+ vertical-align: middle;
+ text-align: center;
+ font-size: 22px
+ }
+
+ .module-cy-user-page .chest-process .process-state .chest-ico {
+ float: right;
+ width: 30px;
+ height: 26px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-hots/009/module-footprints/images/chest-box.png) no-repeat;
+ position: relative;
+ cursor: pointer
+ }
+
+ .module-cy-user-page .chest-process .process-state .active {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-hots/009/module-footprints/images/chest-box-open.png) no-repeat
+ }
+
+ .module-cy-user-page .chest-process .process-state .chest-ico .chest-ico-hover {
+ position: absolute;
+ top: -55px;
+ right: 0;
+ width: 128px;
+ height: 50px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-hots/009/module-footprints/images/text-hover.png) no-repeat;
+ display: none
+ }
+
+ .module-cy-user-page .chest-process .process-state .chest-ico .open-hover {
+ width: 90px;
+ height: 50px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-hots/009/module-footprints/images/text-hover-open.png) no-repeat;
+ display: block
+ }
+
+ .module-cy-user-page .chest-process .process-state .chest-ico .chest-ico-hover span {
+ color: #fff;
+ font-size: 12px
+ }
+
+ .module-cy-user-page .chest-process .process-state .chest-ico .chest-ico-hover p {
+ color: #fff;
+ line-height: 18px;
+ font-size: 12px;
+ padding: 4px 15px;
+ vertical-align: middle;
+ text-align: center
+ }
+
+ .module-cy-user-page .chest-process .process-state .chest-ico:hover .chest-ico-hover {
+ display: block
+ }
+
+ .module-cy-user-page .stamp-container {
+ margin-top: 40px;
+ padding-left: 20px
+ }
+
+ .module-cy-user-page .stamp-container .stamplists .stamplist {
+ float: left;
+ width: 124px;
+ height: 137px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-hots/009/module-footprints/images/stamp-bg.png) no-repeat;
+ margin-right: 20px;
+ padding-bottom: 25px;
+ position: relative
+ }
+
+ .module-cy-user-page .stamp-container .stamplists .stamplist:hover {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-hots/009/module-footprints/images/stamp-bg-active.png) no-repeat
+ }
+
+ .module-cy-user-page .stamp-container .stamplists .stamplist:nth-child(4n) {
+ margin-right: 0
+ }
+
+ .module-cy-user-page .stamp-container .stamplists .stamplist .list-link {
+ width: 124px;
+ height: 137px;
+ position: absolute
+ }
+
+ .module-cy-user-page .stamp-container .stamplists .stamplist .stamp-new {
+ position: absolute;
+ top: 0;
+ right: 0;
+ width: 45px;
+ height: 45px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-hots/009/module-footprints/images/new.png) no-repeat
+ }
+
+ .module-cy-user-page .stamp-container .stamplists .stamplist .stamp-logo {
+ width: 94px;
+ height: 60px;
+ position: absolute;
+ background: #fff;
+ top: 30px;
+ left: 15px
+ }
+
+ .module-cy-user-page .stamp-container .stamplists .stamplist .stamp-loading {
+ width: 30px;
+ height: 30px;
+ margin: 53.5px 47px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-hots/009/module-footprints/images/img_loading.gif)
+ }
+
+ .module-cy-user-page .footprint-popup {
+ min-height: 434px;
+ display: none;
+ z-index: 5
+ }
+
+ .module-cy-user-page .footprint-popup .popup-mask {
+ background: #000;
+ opacity: .6;
+ filter: alpha(opacity=60);
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 3
+ }
+
+ .module-cy-user-page .footprint-popup .popup-main {
+ width: 300px;
+ height: 434px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-hots/009/module-footprints/images/popup-bg.png);
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ margin-top: -217px;
+ margin-left: -150px;
+ z-index: 5
+ }
+
+ .module-cy-user-page .footprint-popup .popup-main .popup-main-text {
+ margin-top: 35px;
+ color: #821515
+ }
+
+ .module-cy-user-page .footprint-popup .popup-main .popup-main-text .main-text-title {
+ font-size: 28px;
+ margin-bottom: 20px;
+ text-align: center;
+ color: #821515
+ }
+
+ .module-cy-user-page .footprint-popup .popup-main .popup-main-text .main-text-text {
+ font-size: 16px;
+ line-height: 26px;
+ vertical-align: middle;
+ text-align: center;
+ color: #821515
+ }
+
+ .module-cy-user-page .footprint-popup .popup-main .popup-main-text .main-text-text span {
+ font-size: 16px;
+ color: #821515
+ }
+
+ .module-cy-user-page .footprint-popup .popup-main .popup-main-rank {
+ width: 164px;
+ height: 164px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-hots/009/module-footprints/images/rankpic.png) no-repeat;
+ margin: 30px auto;
+ position: relative
+ }
+
+ .module-cy-user-page .footprint-popup .popup-main .popup-main-rank .rank-text {
+ position: absolute;
+ width: 56px;
+ font-size: 20px;
+ font-weight: bolder;
+ color: #de780a;
+ left: 50%;
+ margin-left: -28px;
+ bottom: 30px;
+ text-align: center
+ }
+
+ .module-cy-user-page .footprint-popup .popup-main .popup-main-reward {
+ width: 200px;
+ height: 40px;
+ margin: 0 auto;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-hots/009/module-footprints/images/reward-text-bg.png) no-repeat;
+ position: relative
+ }
+
+ .module-cy-user-page .footprint-popup .popup-main .popup-main-reward .reward-text {
+ line-height: 40px;
+ vertical-align: middle;
+ color: #fff;
+ float: left;
+ font-size: 15px;
+ margin-left: 26px
+ }
+
+ .module-cy-user-page .footprint-popup .popup-main .popup-main-reward .reward-text span {
+ color: #fff
+ }
+
+ .module-cy-user-page .footprint-popup .popup-main .popup-main-reward .bean-ico {
+ float: right;
+ position: absolute;
+ width: 16px;
+ height: 20px;
+ top: 10px;
+ right: 26px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-hots/009/module-footprints/images/bean.png) no-repeat
+ }
+
+ .module-cy-user-page .footprint-popup .popup-main .popup-close {
+ width: 16px;
+ height: 16px;
+ position: absolute;
+ top: 15px;
+ right: 15px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-hots/009/module-footprints/images/popup-close.png) no-repeat;
+ cursor: pointer
+ }
+
+ .module-cy-user-page .footprint-header {
+ position: relative;
+ padding: 0 36px 0 20px
+ }
+
+ .module-cy-user-page .footprint-header .stamp-num {
+ float: right;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-hots/009/module-footprints/images/state-tag-left.png) no-repeat;
+ background-position: top left;
+ padding-left: 20px;
+ position: absolute;
+ bottom: 8px;
+ right: 20px
+ }
+
+ .module-cy-user-page .footprint-header .stamp-num .has-num {
+ display: block;
+ color: #4398ed;
+ line-height: 40px;
+ vertical-align: middle;
+ text-align: center;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-hots/009/module-footprints/images/state-tag-right.png) no-repeat;
+ background-position: top right;
+ padding-right: 20px;
+ font-size: 22px
+ }
+
+ .module-cy-user-page .stamp-container .stamp-empty {
+ width: 339px;
+ height: 431px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-hots/009/module-footprints/images/stamp-empty.png) no-repeat;
+ margin: 95px auto 45px
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-report {
+ position: relative;
+ *overflow: hidden;
+ width: 404px;
+ height: 178px;
+ background: #fff
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-report .rpt-title {
+ text-align: left;
+ padding-left: 20px;
+ background-color: #fafafa;
+ border-bottom: 1px solid #cfd6dc
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-report .rpt-title span {
+ height: 44px;
+ line-height: 44px;
+ font-weight: 700;
+ font-size: 14px
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-report .rpt-close {
+ position: absolute;
+ top: 16px;
+ right: 16px;
+ background-image: url(https://changyan.itc.cn/mdevp/extensions/cy-report/022/images/close.png);
+ background-repeat: no-repeat;
+ width: 12px;
+ height: 12px
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-report .rpt-close:hover {
+ cursor: pointer
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-report .rpt-reason-item {
+ list-style: none;
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+ margin-right: 80px;
+ width: 80px;
+ text-align: left;
+ margin-top: 14px
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-report .rpt-hint {
+ display: none;
+ padding-top: 48px
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-report .rpt-hint-image {
+ display: inline-block;
+ width: 40px;
+ height: 40px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-report/022/images/ok.png) no-repeat;
+ margin-bottom: 24px;
+ margin-left: 182px
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-report .rpt-hint-text {
+ font-size: 15px;
+ font-weight: 600;
+ text-align: center
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-report ul {
+ font-size: 0;
+ margin-left: 80px;
+ line-height: 1
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-report .rpt-reason-item .rpt-list-style {
+ display: inline-block;
+ width: 10px;
+ height: 10px;
+ border: 1px solid #a9aeb1;
+ border-radius: 50%;
+ margin-right: 10px
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-report .rpt-reason-item .rpt-text {
+ font-size: 14px
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-report .rpt-submit {
+ display: inline-block;
+ text-align: center;
+ margin-left: 152px
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-report .rpt-submit a {
+ display: inline-block;
+ height: 28px;
+ width: 100px;
+ border: 2px solid #50acf9;
+ line-height: 28px;
+ border-radius: 14px;
+ margin-top: 18px;
+ font-size: 16px;
+ color: #000;
+ text-align: center
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-report .rpt-submit:hover {
+ cursor: default
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-report .rpt-submit a:hover {
+ color: #000;
+ text-decoration: none
+ }
+
+ #SOHUCS #SOHU_MAIN .cy-report .rpt-item-selected .rpt-list-style {
+ background-color: #51adfa
+ }
+
+ .module-cy-user-notice {
+ display: none;
+ position: relative
+ }
+
+ .module-cy-user-notice .notice-title {
+ padding-left: 24px;
+ height: 60px;
+ border-bottom: 1px solid #c3cad4;
+ line-height: 60px;
+ font-size: 20px;
+ font-family: "Microsoft YaHei";
+ position: relative;
+ top: 0;
+ left: 0
+ }
+
+ .module-cy-user-notice .notice-info {
+ overflow-x: hidden;
+ overflow-y: auto;
+ position: relative;
+ top: 0;
+ left: 0
+ }
+
+ .module-cy-user-notice .notice-info ul {
+ margin-bottom: 20px
+ }
+
+ .module-cy-user-notice .notice-info .notice-empty {
+ background-image: url(//changyan.sohu.com/mdevp/extensions/cy-user-notice/045/image/notice-empty.png);
+ width: 339px;
+ height: 431px;
+ margin: 145px auto 50px
+ }
+
+ .module-cy-user-notice .notice-info ul.noticeinfo-list {
+ position: relative;
+ top: 0;
+ left: 0
+ }
+
+ .module-cy-user-notice .notice-info .noticeinfo-list li {
+ border-bottom: solid 1px #e9f0f5;
+ padding: 16px 20px 19px;
+ position: relative;
+ cursor: pointer
+ }
+
+ .module-cy-user-notice .notice-info .noticeinfo-list li:hover {
+ background-color: #f3faff
+ }
+
+ .module-cy-user-notice .notice-info .noticeinfo-list li .info-header {
+ margin-bottom: 9px;
+ height: 18px;
+ line-height: 18px
+ }
+
+ .module-cy-user-notice .notice-info .noticeinfo-list li .info-header .info-type {
+ float: left;
+ font-size: 12px;
+ color: #999;
+ font-family: "Microsoft YaHei"
+ }
+
+ .module-cy-user-notice .notice-info .noticeinfo-list li .info-header .kz-name {
+ float: left;
+ font-size: 12px;
+ color: #4398ed;
+ font-family: "Microsoft YaHei"
+ }
+
+ .module-cy-user-notice .notice-info .noticeinfo-list li .info-header .notice-time {
+ float: right
+ }
+
+ .module-cy-user-notice .notice-info .noticeinfo-list li .info-header .notice-time em {
+ display: inline-block;
+ background: url(//changyan.sohu.com/mdevp/extensions/cy-user-notice/045/image/time-ico.png);
+ width: 12px;
+ height: 12px;
+ vertical-align: -1px;
+ *vertical-align: 3px
+ }
+
+ .module-cy-user-notice .notice-info .noticeinfo-list li .info-header .notice-time i {
+ margin-left: 4px;
+ font-style: normal;
+ font-size: 12px;
+ color: #999;
+ font-family: "Microsoft YaHei"
+ }
+
+ .module-cy-user-notice .notice-info .noticeinfo-list li .notice-content {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ font-family: "Microsoft YaHei";
+ padding-right: 120px
+ }
+
+ .module-cy-user-notice .notice-info .noticeinfo-list li .indicator-unread {
+ display: inline-block;
+ width: 6px;
+ height: 6px;
+ border-radius: 50%;
+ background-color: red;
+ position: absolute;
+ bottom: 25px;
+ right: 20px
+ }
+
+ .module-cy-user-notice .notice-info .noticeinfo-list li .notice-content span {
+ font-size: 16px;
+ line-height: 21px;
+ font-family: "Microsoft YaHei"
+ }
+
+ .module-cy-user-notice .notice-info .noticeinfo-list li .notice-content a {
+ font-size: 16px;
+ line-height: 21px;
+ font-family: "Microsoft YaHei";
+ color: #4398ed;
+ text-decoration: none
+ }
+
+ .module-cy-user-notice .notice-info .noticeinfo-list li .notice-content a.link-mall,
+ .module-cy-user-notice .notice-info .noticeinfo-list li .notice-content a.link-paper {
+ font-size: 14px;
+ text-decoration: underline;
+ cursor: pointer;
+ font-family: "Microsoft YaHei"
+ }
+
+ .module-cy-user-notice .notice-info .noticeinfo-list li .notice-content a.link-mall {
+ color: #38a3fd
+ }
+
+ .module-cy-user-notice .notice-info .noticeinfo-list li .notice-content a.link-paper {
+ color: #465e72
+ }
+
+ .module-cy-user-notice .notice-info .noticeinfo-list li .notice-content a.notice-user {
+ font-size: 16px;
+ color: #38a3fd;
+ font-family: "Microsoft YaHei";
+ text-decoration: none;
+ cursor: pointer
+ }
+
+ .module-cy-user-page .cy-tab-list li .cy-notice-ico {
+ background: url(//changyan.sohu.com/mdevp/extensions/cy-user-notice/045/image/tab-list-notice.png)
+ }
+
+ .module-cy-user-page .cy-tab-list li.active .cy-notice-ico,
+ .module-cy-user-page .cy-tab-list li.notice-li:hover .cy-notice-ico {
+ background: url(//changyan.sohu.com/mdevp/extensions/cy-user-notice/045/image/tab-list-icon-active-notice.png)
+ }
+
+ .module-cy-user-page .cy-tab-list li.notice-li:hover i {
+ color: #38a3fd
+ }
+
+ .module-cy-user-notice .noticeinfo-detail {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ overflow-y: auto;
+ overflow-x: hidden;
+ background-color: #fff;
+ top: 0;
+ left: 0;
+ padding: 0 0 10px;
+ font-family: "Microsoft YaHei"
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .notice-detail-title {
+ padding-left: 24px;
+ height: 60px;
+ border-bottom: 1px solid #c3cad4;
+ line-height: 60px;
+ font-size: 20px;
+ font-family: "Microsoft YaHei";
+ width: 100%;
+ background-color: #fff;
+ position: relative;
+ top: 0;
+ left: 0
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .notice-content-wrap {
+ position: relative;
+ left: 0;
+ top: 0;
+ min-height: 300px
+ }
+
+ .module-cy-user-notice .noticeinfo-detail a.notice-back {
+ display: inline-block;
+ width: 40px;
+ height: 100%;
+ background-image: url(//changyan.sohu.com/mdevp/extensions/cy-user-notice/045/image/back.png);
+ background-repeat: no-repeat;
+ background-position: 0 16px;
+ cursor: pointer
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .comment-desc {
+ font-size: 16px;
+ padding: 18px 18px 8px
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .comment-desc span {
+ font-weight: 700
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .comment-detail-wrap {
+ padding: 8px 18px;
+ position: relative;
+ left: 0;
+ top: 0
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .comment-detail {
+ position: relative;
+ left: 0;
+ top: 0;
+ margin: 8px 0;
+ font-size: 16px;
+ background-color: #FAFAFA;
+ border: 1px solid #F2F2F2;
+ padding: 10px 0 10px 75px
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .comment-detail .comment-user-figure {
+ position: absolute;
+ top: 18px;
+ left: 18px;
+ width: 40px;
+ height: 40px;
+ border-radius: 3px;
+ overflow: hidden
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .comment-detail .comment-user-figure img {
+ width: 100%;
+ height: 100%
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .comment-detail .comment-user-name {
+ padding: 8px 0;
+ margin: 0;
+ position: relative
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .comment-detail .comment-user-name a {
+ color: #38a3fd;
+ text-decoration: none
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .comment-detail .comment-content {
+ padding: 8px 0;
+ margin-right: 20px;
+ line-height: 20px
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .comment-detail a.comment-subhead {
+ font-size: 14px;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ display: block;
+ margin-right: 20px;
+ padding: 8px 0;
+ text-decoration: none
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .comment-detail .comment-attrs {
+ padding-right: 20px;
+ height: 16px
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .comment-attrs .comment-site {
+ font-size: 12px;
+ text-decoration: none;
+ color: #aaa;
+ float: left;
+ line-height: 16px;
+ display: inline-block;
+ height: 16px;
+ vertical-align: bottom;
+ *zoom: 1;
+ _zoom: 1;
+ *display: inline;
+ _display: inline
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .comment-attrs .comment-time {
+ float: right;
+ display: inline-block;
+ line-height: 16px;
+ height: 16px;
+ vertical-align: bottom;
+ *zoom: 1;
+ _zoom: 1;
+ *display: inline;
+ _display: inline
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .comment-attrs .comment-time em {
+ display: inline-block;
+ background: url(//changyan.sohu.com/mdevp/extensions/cy-user-notice/045/image/time-ico.png);
+ width: 12px;
+ height: 12px;
+ vertical-align: -1px;
+ *vertical-align: 3px
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .comment-attrs .comment-time i {
+ margin-left: 4px;
+ font-style: normal;
+ font-size: 12px;
+ color: #aaa;
+ font-family: "Microsoft YaHei"
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .comment-attrs .clear-f {
+ float: none;
+ display: none
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .comment-remark-header-wrap {
+ height: 24px;
+ background-image: url(//changyan.sohu.com/mdevp/extensions/cy-user-notice/045/image/remark-bg.gif);
+ background-position: 0 6px;
+ background-repeat-x: none;
+ background-repeat-y: no-repeat;
+ margin: 0 40px;
+ text-align: center
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .comment-remark-header {
+ border-right: 12px solid #fff;
+ display: inline-block;
+ background-color: #fff;
+ font-size: 16px;
+ color: #ffb026;
+ border-left: 12px solid #fff;
+ line-height: 24px;
+ *zoom: 1;
+ _zoom: 1;
+ *display: inline;
+ _display: inline
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .comment-remark-content {
+ text-align: center;
+ padding: 15px 20px;
+ font-size: 20px;
+ line-height: 24px
+ }
+
+ .module-cy-user-notice .noticeinfo-detail ul.comment-props {
+ padding-top: 32px;
+ position: relative;
+ left: 0;
+ top: 0
+ }
+
+ .module-cy-user-notice .noticeinfo-detail ul.comment-props li.comment-prop {
+ height: 60px;
+ padding: 0 40px;
+ position: relative;
+ left: 0;
+ top: 0;
+ margin-bottom: 40px
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .prop-bar {
+ border: 28px 0;
+ border-top: 28px solid #fff;
+ border-bottom: 28px solid #fff;
+ height: 4px;
+ display: inline-block;
+ position: absolute;
+ width: 0
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .prop-bar-bg {
+ border-top: 28px solid #fff;
+ border-bottom: 28px solid #fff;
+ height: 4px;
+ width: auto;
+ margin: auto
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .prop-bar-bg-1 {
+ background-color: #fee2e2
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .prop-bar-bg-2 {
+ background-color: #d7edff
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .prop-bar-bg-3 {
+ background-color: #f9e9d1
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .prop-bar-bg-4 {
+ background-color: #d9e5fc
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .prop-bar-bg-5 {
+ background-color: #ffdcdc
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .prop-bar-bg-6 {
+ background-color: #d9e5fc
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .prop-bar-bg-7 {
+ background-color: #d7edff
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .prop-label {
+ position: absolute;
+ top: 3px;
+ left: 0;
+ width: 54px;
+ height: 54px;
+ text-align: center;
+ color: #fff;
+ background-repeat: no-repeat;
+ background-size: 100% 100%
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .prop-label-1 {
+ background-image: url(//changyan.sohu.com/mdevp/extensions/cy-user-notice/045/image/prop-bar-1.png)
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .prop-label-2 {
+ background-image: url(//changyan.sohu.com/mdevp/extensions/cy-user-notice/045/image/prop-bar-2.png)
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .prop-label-3 {
+ background-image: url(//changyan.sohu.com/mdevp/extensions/cy-user-notice/045/image/prop-bar-3.png)
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .prop-label-4 {
+ background-image: url(//changyan.sohu.com/mdevp/extensions/cy-user-notice/045/image/prop-bar-4.png)
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .prop-label-5 {
+ background-image: url(//changyan.sohu.com/mdevp/extensions/cy-user-notice/045/image/prop-bar-5.png)
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .prop-label-6 {
+ background-image: url(//changyan.sohu.com/mdevp/extensions/cy-user-notice/045/image/prop-bar-6.png)
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .prop-label-7 {
+ background-image: url(//changyan.sohu.com/mdevp/extensions/cy-user-notice/045/image/prop-bar-7.png)
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .prop-label .prop-label-text {
+ position: absolute;
+ top: -32px;
+ left: -27px;
+ height: 32px;
+ width: 108px;
+ line-height: 32px;
+ text-align: center;
+ font-size: 16px;
+ border-radius: 3px
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .prop-label .prop-label-text i {
+ padding: 0 4px;
+ font-size: 12px
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .prop-label .prop-label-arrow {
+ position: absolute;
+ width: 0;
+ height: 0;
+ border-left: 6px solid transparent;
+ border-right: 6px solid transparent;
+ top: 0;
+ left: 21px
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .prop-bar-1,
+ .module-cy-user-notice .noticeinfo-detail .prop-label-1 .prop-label-text {
+ background-color: #eb6d6d
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .prop-bar-2,
+ .module-cy-user-notice .noticeinfo-detail .prop-label-2 .prop-label-text {
+ background-color: #6db1eb
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .prop-bar-3,
+ .module-cy-user-notice .noticeinfo-detail .prop-label-3 .prop-label-text {
+ background-color: #ff9c00
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .prop-bar-4,
+ .module-cy-user-notice .noticeinfo-detail .prop-label-4 .prop-label-text {
+ background-color: #3e82ff
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .prop-bar-5,
+ .module-cy-user-notice .noticeinfo-detail .prop-label-5 .prop-label-text {
+ background-color: #fd3838
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .prop-bar-6,
+ .module-cy-user-notice .noticeinfo-detail .prop-label-6 .prop-label-text {
+ background-color: #3e82ff
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .prop-bar-7,
+ .module-cy-user-notice .noticeinfo-detail .prop-label-7 .prop-label-text {
+ background-color: #6db1eb
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .prop-label-1 .prop-label-arrow {
+ border-top: 4px solid #eb6d6d
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .prop-label-2 .prop-label-arrow {
+ border-top: 4px solid #6db1eb
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .prop-label-3 .prop-label-arrow {
+ border-top: 4px solid #ff9c00
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .prop-label-4 .prop-label-arrow {
+ border-top: 4px solid #3e82ff
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .prop-label-5 .prop-label-arrow {
+ border-top: 4px solid #fd3838
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .prop-label-6 .prop-label-arrow {
+ border-top: 4px solid #3e82ff
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .prop-label-7 .prop-label-arrow {
+ border-top: 4px solid #6db1eb
+ }
+
+ .module-cy-user-notice .notice-info .noticeinfo-list li .notice-content .feedback-content-wrap {
+ display: inline-block;
+ font-size: 100%;
+ line-height: 1
+ }
+
+ .module-cy-user-notice .notice-info .noticeinfo-list li .notice-content .feedback-content-wrap span {
+ font-size: 14px
+ }
+
+ .module-cy-user-notice .notice-info .noticeinfo-list li .notice-content .feedback-content {
+ display: inline-block;
+ max-width: 168px;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ line-height: 1;
+ color: #4398ed
+ }
+
+ .module-cy-user-notice .notice-info .noticeinfo-list li .notice-content .feedback-result-content {
+ font-size: 14px;
+ line-height: 21px;
+ color: #b0b0b0
+ }
+
+ .module-cy-user-notice .notice-info .noticeinfo-list li .notice-content .feedback-content img {
+ vertical-align: -1px;
+ *vertical-align: 0
+ }
+
+ .module-cy-user-notice .notice-info .noticeinfo-list li .notice-content .feedback-note {
+ color: #38a3fd
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .notice-content-wrap .official-reply-wrap {
+ margin: 18px 18px 2px;
+ font-size: 16px
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .notice-content-wrap .official-reply-wrap .feedback-title {
+ display: block
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .notice-content-wrap .official-reply-wrap .official-reply {
+ display: block;
+ margin-top: 20px;
+ line-height: 20px
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .feedback-content-warp .comment-detail {
+ padding: 0
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .feedback-content-warp .comment-detail .reply-content {
+ padding: 10px 25px 10px 10px;
+ line-height: 20px;
+ color: #a6a6a6;
+ margin-bottom: 25px
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .feedback-content-warp .comment-detail .feedback-time {
+ position: absolute;
+ right: 25px;
+ bottom: 10px
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .feedback-content-warp .comment-detail .feedback-time em {
+ display: inline-block;
+ background: url(//changyan.sohu.com/mdevp/extensions/cy-user-notice/045/image/time-ico.png);
+ width: 12px;
+ height: 12px;
+ vertical-align: -1px;
+ *vertical-align: 3px
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .feedback-content-warp .comment-detail .feedback-time i {
+ margin-left: 4px;
+ font-style: normal;
+ font-size: 12px;
+ color: #999;
+ font-family: "Microsoft YaHei"
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .notice-content-wrap .feedback-extra {
+ font-size: 16px;
+ margin: 0 18px 0 30px
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .notice-content-wrap .feedback-qrcode-wrap {
+ margin-top: 24px;
+ text-align: center
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .notice-content-wrap .feedback-qrcode-wrap .feedback-qrcode {
+ display: block;
+ background: url(//changyan.sohu.com/mdevp/extensions/cy-user-notice/045/image/qrcode.jpg);
+ width: 258px;
+ height: 258px;
+ margin: 0 auto
+ }
+
+ .module-cy-user-notice .noticeinfo-detail .notice-content-wrap .feedback-qrcode-wrap .feedback-qrnote {
+ display: inline-block;
+ font-size: 16px;
+ margin: 10px 0
+ }
+
+ .module-cy-user-page .cy-tab-list li .cy-feedback-ico {
+ background: url(//changyan.sohu.com/mdevp/extensions/cy-user-feedback/047/image/tab-list-icon5.png) no-repeat
+ }
+
+ .module-cy-user-page .cy-tab-list .feedback-li:hover .cy-feedback-ico {
+ background: url(//changyan.sohu.com/mdevp/extensions/cy-user-feedback/047/image/tab-list-icon-active5.png) no-repeat
+ }
+
+ .module-cy-user-page .cy-tab-list .feedback-li:hover .feedback-text {
+ color: #38a3fd
+ }
+
+ .module-cy-user-page .cy-tab-list li.active .cy-feedback-ico {
+ background: url(//changyan.sohu.com/mdevp/extensions/cy-user-feedback/047/image/tab-list-icon-active5.png) no-repeat
+ }
+
+ .module-cy-user-page .cy-tab-list li.active .feedback-text {
+ color: #38a3fd
+ }
+
+ .module-cy-user-page .module-cy-user-feedback {
+ height: 100%;
+ overflow-x: hidden;
+ overflow-y: auto;
+ display: none;
+ position: relative
+ }
+
+ .module-cy-user-page .module-cy-user-feedback input:hover {
+ cursor: text
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .main {
+ width: 100%;
+ height: 100%;
+ font-family: "microsoft yahei";
+ position: relative;
+ min-height: 640px;
+ overflow-y: auto;
+ overflow-x: hidden
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .title {
+ width: 100%;
+ height: 60px;
+ line-height: 60px;
+ padding: 0 0 0 25px;
+ font-size: 20px;
+ font-family: "microsoft yahei";
+ margin-bottom: -60px
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .form {
+ width: 100%;
+ margin: 60px 0 0;
+ border: solid #ccc 1px;
+ border-width: 1px 0 0;
+ padding: 40px 0 0 25px
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .form .faq {
+ font-size: 16px;
+ font-family: "microsoft yahei"
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .form .faq-questions {
+ margin: 10px 0 0;
+ font-size: 16px;
+ font-family: "microsoft yahei";
+ overflow: hidden
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .form .faq-questions .faq-question {
+ float: left;
+ width: 278px;
+ margin: 10px 0 0;
+ font-family: "microsoft yahei";
+ font-size: 14px;
+ color: #666;
+ cursor: pointer;
+ line-height: 1
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .form .faq-questions .faq-question:hover {
+ color: #5eb0fd
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .form .faq-questions .faq-question .point {
+ background: url(//changyan.sohu.com/mdevp/extensions/cy-user-feedback/047/image/point.png) no-repeat;
+ width: 4px;
+ height: 4px;
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+ vertical-align: middle;
+ position: static;
+ margin: 0 6px 0 0
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .form .faq-questions .faq-question:hover .point {
+ background: url(//changyan.sohu.com/mdevp/extensions/cy-user-feedback/047/image/point-hover.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .form .question {
+ font-size: 16px;
+ font-family: "microsoft yahei";
+ margin: 40px 0 0
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .form .questionCon {
+ margin-top: 20px;
+ padding: 10px 0 10px 10px;
+ width: 560px;
+ height: 140px;
+ border-radius: 3px;
+ resize: none;
+ font-family: "microsoft yahei";
+ border: solid #ccc 1px;
+ overflow: auto;
+ font-size: 14px;
+ text-align: left;
+ line-height: normal
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .link {
+ width: 560px;
+ margin: 40px 0 0;
+ font-family: "microsoft yahei";
+ line-height: 1;
+ background-color: #fff
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .link .phone {
+ font-size: 16px
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .link .select {
+ float: right;
+ color: #ccc
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .link .text {
+ width: 100%;
+ height: 38px;
+ line-height: 38px;
+ margin: 20px 0 0;
+ padding-left: 10px;
+ border: solid #ccc 1px;
+ border-radius: 3px;
+ font-size: 14px;
+ font-family: microsoft yahei
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .tip {
+ height: 36px;
+ line-height: 36px;
+ background-color: #e9eef1;
+ font-size: 14px;
+ bottom: 70px;
+ display: none
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .tip .ok {
+ width: 14px;
+ height: 14px;
+ background: url(//changyan.sohu.com/mdevp/extensions/cy-user-feedback/047/image/ok.png) no-repeat;
+ vertical-align: middle;
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+ margin: 0 0 0 10px
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .tip .error {
+ background: url(//changyan.sohu.com/mdevp/extensions/cy-user-feedback/047/image/error.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .tip .tipText {
+ margin: 0 10px 0 0
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .button {
+ width: 100%;
+ height: 50px;
+ line-height: 50px;
+ bottom: 0;
+ border: solid #ccc 1px;
+ border-width: 1px 0 0;
+ padding: 0 0 0 25px
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .button .confirm {
+ width: 84px;
+ height: 32px;
+ line-height: 32px;
+ color: #51acf9;
+ background: url(//changyan.sohu.com/mdevp/extensions/cy-user-feedback/047/image/btn.png) no-repeat;
+ vertical-align: top;
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+ font-size: 16px;
+ font-weight: 500;
+ text-align: center;
+ cursor: pointer;
+ margin: 9px 0 0
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .button .confirm:hover {
+ background: url(//changyan.sohu.com/mdevp/extensions/cy-user-feedback/047/image/btn-hover.png) no-repeat;
+ color: #fff
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .button .confirm-click,
+ .module-cy-user-page .module-cy-user-feedback .button .confirm-click:hover {
+ background: url(//changyan.sohu.com/mdevp/extensions/cy-user-feedback/047/image/btn-already.png) no-repeat;
+ color: #9fa8b3
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .feedback-second {
+ width: 100%
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .feedback-second .feedback-detail-title {
+ width: 100%;
+ height: 59px;
+ line-height: 54px;
+ border: 1px solid #c3cad4;
+ border-width: 0 0 1px
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .feedback-second .feedback-detail-title .feedback-back {
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+ background: url(//changyan.sohu.com/mdevp/extensions/cy-user-feedback/047/image/back.png) no-repeat;
+ width: 35px;
+ height: 28px;
+ margin: 0 0 0 24px;
+ vertical-align: middle;
+ cursor: pointer
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .feedback-second .faq-lists {
+ margin: 0 0 0 30px
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .feedback-second .faq-lists .faq {
+ margin: 16px 0 0;
+ width: 550px;
+ padding-bottom: 21px;
+ border-bottom: 1px solid #e9f0f5
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .feedback-second .faq-lists .faq .faq-title {
+ font-size: 16px;
+ height: 20px;
+ line-height: 20px
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .feedback-second .faq-lists .faq .faq-title .title-bar {
+ width: 3px;
+ height: 20px;
+ background-color: #38a3fd;
+ border-radius: 2px;
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+ vertical-align: middle
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .feedback-second .faq-lists .faq .faq-title .title-text {
+ margin: 0 0 0 7px;
+ font-family: microsoft yahei
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .feedback-second .faq-lists .faq .faq-detail {
+ margin: 19px 0 0;
+ font-size: 14px;
+ color: #959595;
+ line-height: 21px
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .photo {
+ width: 560px;
+ margin: 40px 0 0;
+ font-family: "microsoft yahei";
+ line-height: 1;
+ background-color: #fff
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .photo .add-img {
+ font-size: 16px
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .photo .select {
+ float: right;
+ color: #ccc
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .photo .img-container {
+ margin-top: 20px
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .photo .img-preview-content {
+ display: inline-block;
+ position: relative;
+ *display: inline;
+ *zoom: 1
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .photo .img-preview-content:hover .remove-img {
+ display: inline-block;
+ *display: inline;
+ *zoom: 1
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .photo .img-preview-content .remove-img {
+ position: absolute;
+ top: 0;
+ left: 0;
+ font-size: 16px;
+ width: 80px;
+ height: 80px;
+ line-height: 80px;
+ text-align: center;
+ background-color: rgba(0, 0, 0, .6);
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+ color: #fff;
+ cursor: pointer;
+ display: none
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .photo .img-preview {
+ margin-right: 16px;
+ width: 80px;
+ height: 80px
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .photo .upload-img {
+ background: url(//changyan.sohu.com/mdevp/extensions/cy-user-feedback/047/image/add-img.png) no-repeat;
+ width: 80px;
+ height: 80px;
+ cursor: pointer;
+ vertical-align: middle;
+ display: inline-block;
+ *display: inline;
+ *zoom: 1
+ }
+
+ .module-cy-user-page .module-cy-user-feedback .photo .img-upload-tip {
+ line-height: 28px;
+ height: 28px;
+ font-size: 14px;
+ color: #ccc
+ }
+
+ .module-cy-user-page .cy-tab-list li .cy-set-ico {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-set/008/images/set-icon.png) no-repeat
+ }
+
+ .module-cy-user-page .cy-tab-list .set-li:hover .cy-set-ico {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-set/008/images/set-icon-active.png) no-repeat
+ }
+
+ .module-cy-user-page .cy-tab-list .set-li:hover .set-text {
+ color: #38a3fd
+ }
+
+ .module-cy-user-page .cy-tab-list li.active .cy-set-ico {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-set/008/images/set-icon-active.png) no-repeat
+ }
+
+ .module-cy-user-page .cy-tab-list li.active .set-text {
+ color: #38a3fd
+ }
+
+ .module-cy-user-page .module-cy-user-set {
+ display: none;
+ height: 100%;
+ position: relative;
+ overflow-x: hidden;
+ overflow-y: auto
+ }
+
+ .cy-clearfix:after {
+ content: ".";
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden
+ }
+
+ .cy-clearfix {
+ zoom: 1
+ }
+
+ .module-cy-user-page .module-cy-user-set .set-header-s {
+ width: 100%;
+ height: 60px;
+ padding: 0 0 0 25px;
+ font-family: "microsoft yahei";
+ margin-bottom: 40px;
+ border-bottom: 1px solid #c3cad4
+ }
+
+ .module-cy-user-page .module-cy-user-set .set-header-s .set-title-s {
+ display: inline;
+ line-height: 60px;
+ font-size: 20px;
+ color: #111
+ }
+
+ .module-cy-user-page .module-cy-user-set .set-header-s .set-logout-s {
+ float: right;
+ margin: 21px 35px 0 0;
+ line-height: 18px;
+ font-size: 16px;
+ color: #999;
+ cursor: pointer
+ }
+
+ .module-cy-user-page .module-cy-user-set .set-header-s .set-logout-s .logout-ico {
+ width: 15px;
+ height: 18px;
+ float: left;
+ margin-right: 7px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-set/008/images/logout.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-set .set-header-s .set-logout-s:hover {
+ color: #e74851
+ }
+
+ .module-cy-user-page .module-cy-user-set .set-header-s .set-logout-s:hover .logout-ico {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-set/008/images/logout-hover.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-set .set-container-s .set-remind {
+ float: left;
+ width: 160px;
+ text-align: center;
+ margin-top: 10px;
+ font-size: 15px
+ }
+
+ .module-cy-user-page .module-cy-user-set .set-container-s .setlists {
+ margin-left: 160px;
+ overflow: hidden
+ }
+
+ .module-cy-user-page .module-cy-user-set .set-container-s .setlists .setlist {
+ line-height: 36px!important;
+ vertical-align: middle;
+ font-size: 15px
+ }
+
+ .module-cy-user-page .module-cy-user-set .set-container-s .setlists .setlist .remind-ico {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-set/008/images/btn.png) no-repeat;
+ width: 16px;
+ height: 16px;
+ float: left;
+ margin: 10px;
+ color: #000
+ }
+
+ .module-cy-user-page .module-cy-user-set .set-container-s .setlists .setlist .remind-hover-ico {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-set/008/images/btn-hover.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-set .set-container-s .setlists .setlist .remind-click-ico {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-set/008/images/btn-click.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cy-user-set .set-container-s .set-tip {
+ height: 36px;
+ line-height: 36px;
+ background-color: #e9eef1;
+ font-size: 14px;
+ position: absolute;
+ bottom: 65px;
+ left: 25px;
+ display: none
+ }
+
+ .module-cy-user-page .module-cy-user-set .set-container-s .set-tip .ok {
+ width: 14px;
+ height: 14px;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-set/008/images/ok.png) no-repeat;
+ vertical-align: middle;
+ display: inline-block;
+ margin: 0 0 0 10px
+ }
+
+ .module-cy-user-page .module-cy-user-set .set-container-s .set-tip .tipText {
+ margin: 0 10px 0 0
+ }
+
+ .module-cy-user-page .module-cy-user-set .set-bottom-s {
+ width: 100%;
+ height: 50px;
+ line-height: 50px;
+ position: absolute;
+ bottom: 0;
+ border: solid #ccc 1px;
+ border-width: 1px 0 0;
+ padding: 0 0 0 25px
+ }
+
+ .module-cy-user-page .module-cy-user-set .set-bottom-s .set-submit {
+ width: 84px;
+ height: 32px;
+ line-height: 32px;
+ color: #51acf9;
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-set/008/images/sumbit-btn.png) no-repeat;
+ vertical-align: top;
+ display: inline-block;
+ font-size: 16px;
+ font-weight: 500;
+ text-align: center;
+ cursor: pointer;
+ margin: 9px 0 0
+ }
+
+ .module-cy-user-page .module-cy-user-set .set-bottom-s .set-submit:hover {
+ background: url(https://changyan.itc.cn/mdevp/extensions/cy-user-set/008/images/sumbit-btn-hover.png) no-repeat;
+ color: #fff
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-notice-dot,
+ .module-cmt-notice-dot {
+ z-index: 1000;
+ display: block;
+ width: 4px;
+ height: 4px;
+ background-color: #F74F4F;
+ border-radius: 2px;
+ cursor: pointer
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-notice-bubble,
+ .module-cmt-notice-bubble {
+ z-index: 1000;
+ display: block;
+ min-width: 12px;
+ height: 16px;
+ line-height: 16px;
+ padding: 0 2px;
+ text-align: center;
+ font-size: 12px;
+ font-style: normal;
+ font-family: arial;
+ color: #FFF;
+ background-color: #F74F4F;
+ border-radius: 8px;
+ cursor: pointer
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-notice {
+ position: fixed;
+ right: 0;
+ bottom: 0;
+ padding: 38px 0;
+ font-family: "Microsoft YaHei";
+ z-index: 999999
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-notice ul.nt-list {
+ max-width: 300px;
+ text-align: right;
+ overflow: visible;
+ position: relative
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-notice ul.nt-list li.nt-item {
+ position: relative;
+ display: inline-block;
+ max-width: 260px;
+ min-width: 200px;
+ height: 38px;
+ line-height: 38px;
+ background-color: #fff;
+ color: #000!important;
+ margin: 5px 0 5px 10px;
+ padding-left: 36px;
+ padding-right: 30px;
+ border: 1px solid #4398ed;
+ border-right: 0;
+ text-decoration: none;
+ cursor: pointer;
+ font-size: 15px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-notice ul.nt-list li.nt-item .nt-logo {
+ position: absolute;
+ top: -1px;
+ left: -20px;
+ width: 40px;
+ height: 40px;
+ background: url(//changyan.sohu.com/mdevp/extensions/cmt-notice-no-task-msg/007/images/notice-logo.png) no-repeat
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-notice ul.nt-list li.nt-item .nt-text {
+ color: #4398ed!important;
+ text-decoration: none
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-notice ul.nt-list li.nt-item .nt-text i {
+ color: #4398ed!important;
+ padding: 0 4px;
+ font-weight: bolder;
+ font-size: 17px;
+ font-family: "Microsoft YaHei"
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-notice .nt-close {
+ display: inline-block;
+ position: absolute;
+ right: 11px;
+ top: 11px;
+ width: 16px;
+ height: 16px;
+ background: transparent url(//changyan.sohu.com/mdevp/extensions/cmt-notice-no-task-msg/007/images/notice-close.png) no-repeat
+ }
+
+ .module-cy-user-page .module-cmt-notice-dot {
+ position: absolute;
+ top: 0;
+ right: 6px;
+ width: 6px;
+ height: 6px;
+ background-color: #F74F4F;
+ border-radius: 6px
+ }
+
+ .module-cy-user-page .module-cmt-notice-bubble {
+ display: inline-block;
+ position: absolute;
+ min-width: 12px;
+ height: 16px;
+ line-height: 16px;
+ padding: 0 2px;
+ text-align: center;
+ font-size: 12px;
+ font-style: normal;
+ font-family: arial;
+ color: #FFF;
+ background-color: #F74F4F;
+ border-radius: 16px;
+ margin-left: 4px
+ }
+
+ .module-cmt-float-bar .module-cmt-notice-bubble {
+ position: absolute;
+ top: -8px;
+ *top: -4px;
+ left: 20px;
+ min-width: 12px;
+ height: 16px;
+ line-height: 16px;
+ padding: 0 2px;
+ text-align: center;
+ font-size: 12px;
+ font-style: normal;
+ font-family: arial;
+ color: #FFF;
+ background-color: #F74F4F;
+ border-radius: 8px
+ }
+
+ #SOHUCS #SOHU_MAIN .section-list-w .wrap-user-gw .user-level-gw {
+ display: inline-block;
+ height: 24px;
+ padding: 0 0 0 25px;
+ overflow: hidden;
+ margin: 0 5px 0 -1px;
+ vertical-align: -6px;
+ *vertical-align: 0
+ }
+
+ #SOHUCS #SOHU_MAIN .section-list-w .wrap-user-gw .user-level-gw i {
+ display: inline-block;
+ height: 18px;
+ line-height: 18px;
+ padding: 0 8px 0 0;
+ font-size: 12px;
+ position: relative;
+ top: 3px;
+ left: 0
+ }
+
+ #SOHUCS #SOHU_MAIN .section-list-w .wrap-user-gw .notitle-1-gw {
+ background-image: url(//changyan.sohu.com/mdevp/extensions/cy-grade/008/imgs/p-lv01.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .section-list-w .wrap-user-gw .notitle-2-gw {
+ background-image: url(//changyan.sohu.com/mdevp/extensions/cy-grade/008/imgs/p-lv02.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .section-list-w .wrap-user-gw .notitle-3-gw {
+ background-image: url(//changyan.sohu.com/mdevp/extensions/cy-grade/008/imgs/p-lv03.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .section-list-w .wrap-user-gw .notitle-4-gw {
+ background-image: url(//changyan.sohu.com/mdevp/extensions/cy-grade/008/imgs/p-lv04.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .section-list-w .wrap-user-gw .notitle-5-gw {
+ background-image: url(//changyan.sohu.com/mdevp/extensions/cy-grade/008/imgs/p-lv05.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .section-list-w .wrap-user-gw .notitle-6-gw {
+ background-image: url(//changyan.sohu.com/mdevp/extensions/cy-grade/008/imgs/p-lv06.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .section-list-w .wrap-user-gw .notitle-7-gw {
+ background-image: url(//changyan.sohu.com/mdevp/extensions/cy-grade/008/imgs/p-lv07.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .section-list-w .wrap-user-gw .notitle-8-gw {
+ background-image: url(//changyan.sohu.com/mdevp/extensions/cy-grade/008/imgs/p-lv08.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .section-list-w .wrap-user-gw .notitle-9-gw {
+ background-image: url(//changyan.sohu.com/mdevp/extensions/cy-grade/008/imgs/p-lv09.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .section-list-w .wrap-user-gw .notitle-10-gw {
+ background-image: url(//changyan.sohu.com/mdevp/extensions/cy-grade/008/imgs/p-lv10.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .section-list-w .wrap-user-gw .user-1-gw {
+ background-image: url(//changyan.sohu.com/mdevp/extensions/cy-grade/008/imgs/p-lv001.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .section-list-w .wrap-user-gw .user-2-gw {
+ background-image: url(//changyan.sohu.com/mdevp/extensions/cy-grade/008/imgs/p-lv002.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .section-list-w .wrap-user-gw .user-3-gw {
+ background-image: url(//changyan.sohu.com/mdevp/extensions/cy-grade/008/imgs/p-lv003.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .section-list-w .wrap-user-gw .user-4-gw {
+ background-image: url(//changyan.sohu.com/mdevp/extensions/cy-grade/008/imgs/p-lv004.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .section-list-w .wrap-user-gw .user-1-4-gw {
+ background-position: left 0;
+ background-repeat: no-repeat
+ }
+
+ #SOHUCS #SOHU_MAIN .section-list-w .wrap-user-gw .user-1-4-gw i {
+ background-image: url(//changyan.sohu.com/mdevp/extensions/cy-grade/008/imgs/p-lv01-04.png);
+ background-position: right 0;
+ background-repeat: no-repeat;
+ color: #4398ed
+ }
+
+ #SOHUCS #SOHU_MAIN .section-list-w .wrap-user-gw .user-5-gw {
+ background-image: url(//changyan.sohu.com/mdevp/extensions/cy-grade/008/imgs/p-lv005.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .section-list-w .wrap-user-gw .user-6-gw {
+ background-image: url(//changyan.sohu.com/mdevp/extensions/cy-grade/008/imgs/p-lv006.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .section-list-w .wrap-user-gw .user-5-6-gw {
+ background-position: left 0;
+ background-repeat: no-repeat
+ }
+
+ #SOHUCS #SOHU_MAIN .section-list-w .wrap-user-gw .user-5-6-gw i {
+ background-image: url(//changyan.sohu.com/mdevp/extensions/cy-grade/008/imgs/p-lv05-06.png);
+ background-position: right 0;
+ background-repeat: no-repeat;
+ color: #5fbf5e
+ }
+
+ #SOHUCS #SOHU_MAIN .section-list-w .wrap-user-gw .user-7-gw {
+ background-image: url(//changyan.sohu.com/mdevp/extensions/cy-grade/008/imgs/p-lv007.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .section-list-w .wrap-user-gw .user-8-gw {
+ background-image: url(//changyan.sohu.com/mdevp/extensions/cy-grade/008/imgs/p-lv008.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .section-list-w .wrap-user-gw .user-7-8-gw {
+ background-position: left 0;
+ background-repeat: no-repeat
+ }
+
+ #SOHUCS #SOHU_MAIN .section-list-w .wrap-user-gw .user-7-8-gw i {
+ background-image: url(//changyan.sohu.com/mdevp/extensions/cy-grade/008/imgs/p-lv07-08.png);
+ background-position: right 0;
+ background-repeat: no-repeat;
+ color: #fba222
+ }
+
+ #SOHUCS #SOHU_MAIN .section-list-w .wrap-user-gw .user-9-gw {
+ background-image: url(//changyan.sohu.com/mdevp/extensions/cy-grade/008/imgs/p-lv009.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .section-list-w .wrap-user-gw .user-10-gw {
+ background-image: url(//changyan.sohu.com/mdevp/extensions/cy-grade/008/imgs/p-lv010.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .section-list-w .wrap-user-gw .user-9-10-gw {
+ background-position: left 0;
+ background-repeat: no-repeat
+ }
+
+ #SOHUCS #SOHU_MAIN .section-list-w .wrap-user-gw .user-9-10-gw i {
+ background-image: url(//changyan.sohu.com/mdevp/extensions/cy-grade/008/imgs/p-lv09-10.png);
+ background-position: right 0;
+ background-repeat: no-repeat;
+ color: #e7485e;
+ top: 5px
+ }
+
+ #SOHUCS #SOHU_MAIN .more-comment {
+ padding: 0 0 17px
+ }
+
+ #SOHUCS #SOHU_MAIN .more-comment a {
+ color: #95c0f3;
+ background-color: #ecf4fd;
+ padding: 5px 0;
+ line-height: 18px;
+ display: block;
+ text-align: center;
+ font-family: "宋体"
+ }
+
+ #SOHUCS #SOHU_MAIN .more-comment a:hover {
+ text-decoration: none
+ }
+
+ #SOHUCS #SOHU_MAIN .more-comment a em {
+ font-family: Impact;
+ font-size: 20px;
+ color: #95c0f3;
+ margin: 0 6px;
+ vertical-align: -2px;
+ *vertical-align: 0
+ }
+
+ #SOHUCS #SOHU_MAIN .module-sohu-treaty .title-link-w {
+ padding: 18px 0 0;
+ font-size: 12px;
+ color: #ccd3d9;
+ text-align: right
+ }
+
+ #SOHUCS #SOHU_MAIN .module-sohu-treaty .title-link-w a {
+ display: inline-block;
+ line-height: 16px;
+ color: #c9c9c9
+ }
+
+ #SOHUCS #SOHU_MAIN .module-sohu-treaty .title-link-w a:hover {
+ text-decoration: underline
+ }
+
+ #SOHUCS #SOHU_MAIN .bind-phone-wrapper-dw {
+ width: 400px;
+ height: 254px;
+ border: 1px solid #ccd4d9;
+ background-color: #fff;
+ font-size: 12px
+ }
+
+ #SOHUCS #SOHU_MAIN .bind-phone-wrapper-dw .cont-title-dw {
+ height: 30px;
+ line-height: 18px;
+ padding: 14px 0 0;
+ background-color: #fafafa;
+ border-bottom: 1px solid #ccd4d9
+ }
+
+ #SOHUCS #SOHU_MAIN .bind-phone-wrapper-dw .cont-title-dw .title-close-dw {
+ float: right;
+ width: 18px;
+ height: 18px;
+ overflow: hidden;
+ margin: 0 12px 0 0;
+ background: url(//changyan.sohu.com/mdevp/extensions/phone-verify/004/image/b17.png);
+ cursor: pointer
+ }
+
+ #SOHUCS #SOHU_MAIN .bind-phone-wrapper-dw .cont-title-dw .title-close-dw:hover {
+ background: url(//changyan.sohu.com/mdevp/extensions/phone-verify/004/image/b18.png)
+ }
+
+ #SOHUCS #SOHU_MAIN .bind-phone-wrapper-dw .cont-title-dw .title-name-dw {
+ font-size: 14px;
+ font-weight: 700;
+ display: inline-block;
+ padding: 0 0 0 20px;
+ color: #333
+ }
+
+ #SOHUCS #SOHU_MAIN .bind-phone-wrapper-dw .cont-form-dw {
+ padding: 30px 0 0;
+ height: 33px;
+ overflow: hidden
+ }
+
+ #SOHUCS #SOHU_MAIN .bind-phone-wrapper-dw .cont-form-dw .form-name-dw {
+ float: left;
+ line-height: 16px;
+ padding: 9px 12px 0 0;
+ width: 90px;
+ text-align: right;
+ font-size: 14px;
+ color: #333
+ }
+
+ #SOHUCS #SOHU_MAIN .bind-phone-wrapper-dw .cont-form-dw .form-action-dw .action-text-dfw {
+ width: 254px;
+ height: 31px;
+ line-height: 31px;
+ padding: 0 0 0 8px;
+ font-size: 14px;
+ float: left;
+ vertical-align: -4px;
+ border: 1px solid #ccd4d9;
+ color: #333
+ }
+
+ #SOHUCS #SOHU_MAIN .bind-phone-wrapper-dw .cont-prompt-dw {
+ height: 16px;
+ line-height: 16px;
+ overflow: hidden;
+ padding: 0 0 0 102px!important;
+ margin: 5px 0 4px;
+ color: #ee542a
+ }
+
+ #SOHUCS #SOHU_MAIN .bind-phone-wrapper-dw .cont-verify-dw {
+ height: 33px;
+ overflow: hidden
+ }
+
+ #SOHUCS #SOHU_MAIN .bind-phone-wrapper-dw .cont-verify-dw .verify-name-dw {
+ float: left;
+ font-size: 14px;
+ line-height: 16px;
+ padding: 9px 12px 0 0;
+ text-align: right;
+ width: 90px;
+ color: #333
+ }
+
+ #SOHUCS #SOHU_MAIN .bind-phone-wrapper-dw .cont-verify-dw .verify-action-dw .action-text-dfw {
+ float: left;
+ font-size: 14px;
+ height: 31px;
+ line-height: 31px;
+ padding: 0 0 0 8px;
+ width: 98px;
+ border: 1px solid #ccd4d9;
+ color: #333
+ }
+
+ #SOHUCS #SOHU_MAIN .bind-phone-wrapper-dw .cont-verify-dw .verify-action-dw .verify-btn-dw {
+ float: left;
+ width: 146px;
+ height: 33px;
+ overflow: hidden;
+ line-height: 34px;
+ margin-left: 10px;
+ text-align: center;
+ color: #fff;
+ background-color: #5488af;
+ font-size: 14px;
+ cursor: pointer
+ }
+
+ #SOHUCS #SOHU_MAIN .bind-phone-wrapper-dw .cont-verify-dw .verify-action-dw .verify-time-dw {
+ display: none;
+ float: left;
+ width: 134px;
+ height: 31px;
+ overflow: hidden;
+ line-height: 32px;
+ margin-left: 10px;
+ padding: 0 5px;
+ border: 1px solid #d1d2d4;
+ color: #9a9a9a;
+ background-color: #f5f6f8
+ }
+
+ #SOHUCS #SOHU_MAIN .bind-phone-wrapper-dw .cont-btn-dw {
+ height: 33px;
+ overflow: hidden;
+ padding: 0 0 0 102px
+ }
+
+ div.windows-define-dg a {
+ color: #44708e;
+ text-decoration: none
+ }
+
+ #SOHUCS #SOHU_MAIN .bind-phone-wrapper-dw .cont-btn-dw .btn-dfw {
+ width: 78px;
+ height: 33px;
+ padding: 0;
+ cursor: pointer;
+ border: 0;
+ background-image: url(//changyan.sohu.com/mdevp/extensions/phone-verify/004/image/bg11.gif)
+ }
+
+ #SOHUCS #SOHU_MAIN .bind-phone-wrapper-dw .cont-btn-dw .btn-dfw:hover {
+ background-image: url(//changyan.sohu.com/mdevp/extensions/phone-verify/004/image/bg12.gif)
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-action-gw .action-click-gw .module-prop-prompt {
+ width: 181px;
+ height: 80px;
+ background: url(//changyan.sohu.com/mdevp/extensions/first-login-prompt/003/image/prompt-prop.png);
+ position: absolute;
+ right: 10px;
+ top: -84px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-header .section-cbox-w .block-head-w .module-person-page-prompt {
+ width: 193px;
+ height: 80px;
+ background: url(//changyan.sohu.com/mdevp/extensions/first-login-prompt/003/image/prompt-person-page.png);
+ position: absolute;
+ top: 40px;
+ left: 56px
+ }
+
+ #SOHUCS #SOHU_MAIN .module-cmt-header .section-cbox-w .block-head-w .module-person-page-prompt .prompt-close-btn,
+ #SOHUCS #SOHU_MAIN .module-cmt-list .wrap-action-gw .action-click-gw .module-prop-prompt .prompt-close-btn {
+ width: 14px;
+ height: 14px;
+ display: block;
+ position: absolute;
+ right: 0;
+ top: 0;
+ cursor: pointer
+ }
+ </style>
+ <script type="text/javascript" charset="UTF-8" src="http://changyan.itc.cn/mdevp/extensions/cmt-header/076/cmt-header.js"></script>
+ <script type="text/javascript" charset="UTF-8" src="http://changyan.itc.cn/mdevp/extensions/cmt-box/054/cmt-box.js"></script>
+ <script type="text/javascript" charset="UTF-8" src="http://changyan.itc.cn/mdevp/extensions/cmt-list/055/cmt-list.js"></script>
+ <script type="text/javascript" charset="UTF-8" src="http://changyan.itc.cn/mdevp/extensions/cy-av/024/cy-av.js"></script>
+ <script type="text/javascript" charset="UTF-8" src="http://changyan.itc.cn/mdevp/extensions/cmt-footer/048/cmt-footer.js"></script>
+ <script type="text/javascript" charset="UTF-8" src="http://changyan.itc.cn/mdevp/extensions/hot-topic/021/hot-topic.js"></script>
+ <script type="text/javascript" charset="UTF-8" src="http://changyan.itc.cn/mdevp/extensions/face/015/face.js"></script>
+ <script type="text/javascript" charset="UTF-8" src="http://changyan.itc.cn/mdevp/extensions/cmt-float-bar/029/cmt-float-bar.js"></script>
+ <script type="text/javascript" charset="UTF-8" src="http://changyan.itc.cn/mdevp/extensions/cy-user-page/034/cy-user-page.js"></script>
+ <script type="text/javascript" charset="UTF-8" src="http://changyan.itc.cn/mdevp/extensions/cy-user-info/063/cy-user-info.js"></script>
+ <script type="text/javascript" charset="UTF-8" src="http://changyan.itc.cn/mdevp/extensions/cy-user-avatar/014/cy-user-avatar.js"></script>
+ <script type="text/javascript" charset="UTF-8" src="http://changyan.itc.cn/mdevp/extensions/cy-user-view/031/cy-user-view.js"></script>
+ <script type="text/javascript" charset="UTF-8" src="http://changyan.itc.cn/mdevp/extensions/cy-hots/009/cy-hots.js"></script>
+ <script type="text/javascript" charset="UTF-8" src="http://changyan.itc.cn/mdevp/extensions/cy-report/022/cy-report.js"></script>
+ <script type="text/javascript" charset="UTF-8" src="http://changyan.itc.cn/mdevp/extensions/cy-user-notice/045/cy-user-notice.js"></script>
+ <script type="text/javascript" charset="UTF-8" src="http://changyan.itc.cn/mdevp/extensions/cy-user-feedback/047/cy-user-feedback.js"></script>
+ <script type="text/javascript" charset="UTF-8" src="http://changyan.itc.cn/mdevp/extensions/cy-user-set/008/cy-user-set.js"></script>
+ <script type="text/javascript" charset="UTF-8" src="http://changyan.itc.cn/mdevp/extensions/cmt-notice-no-task-msg/007/cmt-notice-no-task-msg.js"></script>
+ <script type="text/javascript" charset="UTF-8" src="http://changyan.itc.cn/mdevp/extensions/cy-grade/008/cy-grade.js"></script>
+ <script type="text/javascript" charset="UTF-8" src="http://changyan.itc.cn/mdevp/extensions/cy-score/006/cy-score.js"></script>
+ <script type="text/javascript" charset="UTF-8" src="http://changyan.itc.cn/mdevp/extensions/jump-url/008/jump-url.js"></script>
+ <script type="text/javascript" charset="UTF-8" src="http://changyan.itc.cn/mdevp/extensions/disable-user-photo/007/disable-user-photo.js"></script>
+ <script type="text/javascript" charset="UTF-8" src="http://changyan.itc.cn/mdevp/extensions/sohu-treaty/007/sohu-treaty.js"></script>
+ <script type="text/javascript" charset="UTF-8" src="http://changyan.itc.cn/mdevp/extensions/cy-auto-recommand/005/cy-auto-recommand.js"></script>
+ <script type="text/javascript" charset="UTF-8" src="http://changyan.itc.cn/mdevp/extensions/phone-verify/004/phone-verify.js"></script>
+ <script type="text/javascript" charset="UTF-8" src="http://changyan.itc.cn/mdevp/extensions/first-login-prompt/003/first-login-prompt.js"></script>
+</head>
+
+<body>
+ <div id="BAIDU_DUP_fp_wrapper" style="position: absolute; left: -1px; bottom: -1px; z-index: 0; width: 0px; height: 0px; overflow: hidden; visibility: hidden; display: none;"><iframe id="BAIDU_DUP_fp_iframe" src="https://pos.baidu.com/wh/o.htm?ltr=" style="width: 0px; height: 0px; visibility: hidden; display: none;"></iframe></div><iframe style="width: 0px; height: 0px; display: none;" src="http://cdn.tanx.com/t/acookie/acbeacon2.html#mm_34618856_4222645_14288433"></iframe>
+ <!--百度自动推送 start-->
+ <script>
+ (function() {
+ var bp = document.createElement('script');
+ var curProtocol = window.location.protocol.split(':')[0];
+ if (curProtocol === 'https') {
+ bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
+ } else {
+ bp.src = 'http://push.zhanzhang.baidu.com/push.js';
+ }
+ var s = document.getElementsByTagName("script")[0];
+ s.parentNode.insertBefore(bp, s);
+ })();
+ </script>
+ <!--百度自动推送 end-->
+ <!--top start-->
+ <!--top置顶-->
+ <!--1065-->
+ <!-- 公共三级页 页头(公共) -->
+ <div class="hd_top">
+ <div class="hd_top1"></div>
+ <!--top置顶-->
+ <div class="hd_top_box">
+ <a href="http://www.youth.cn/" target="_blank">首页</a>|<a href="http://news.youth.cn/" target="_blank">新闻</a>|<a href="http://picture.youth.cn/" target="_blank">图片</a>|<a href="http://pinglun.youth.cn/" target="_blank">评论</a>|<a href="http://www.gqt.org.cn/" target="_blank">共青团</a>|<a href="http://fun.youth.cn/" target="_blank">娱乐</a>|<a href="http://style.youth.cn/" target="_blank">时尚</a>|<a href="http://finance.youth.cn/" target="_blank">财经</a>|<a href="http://mil.youth.cn/" target="_blank">军事</a>|<a href="http://sports.youth.cn/" target="_blank">体育</a>|<a href="http://career.youth.cn/" target="_blank">创业就业</a>|<a href="http://school.youth.cn/" target="_blank">高校</a>|<a href="http://tour.youth.cn/" target="_blank">旅游</a>|<a href="http://d.youth.cn/" target="_blank">发现</a>|<a href="http://v.youth.cn" target="_blank">视频</a>|<a href="http://youxi.youth.cn/" target="_blank">游戏</a>|<a href="http://auto.youth.cn/" target="_blank">汽车</a>|<a href="http://qclz.youth.cn/gw/" target="_blank">青春励志</a>
+ </div>
+ <!--top置顶-->
+ </div>
+ <!--1065-->
+ <!--top置顶-->
+ <!--1807-->
+ <!-- 公共三级页 页头广告(拷贝) -->
+ <div class="header">
+ <div class="hd_pic">
+ <div class="hd_pic2">
+ <!-- AdSame ShowCode: 中国青年网 / 教育频道 / 信息页旗帜 Begin -->
+ <!-- <script type="text/javascript" src="http://publish.ad.youth.cn/s?z=youth&c=431" charset="gbk"></script> -->
+ <!-- AdSame ShowCode: 中国青年网 / 教育频道 / 信息页旗帜 End -->
+ </div>
+ <div class="hd_pic1">
+ <!-- AdSame ShowCode: 中国青年网 / 教育频道 / 信息页顶部按钮1 Begin -->
+ <!-- <script type="text/javascript" src="http://publish.ad.youth.cn/s?z=youth&c=432" charset="gbk"></script> -->
+ <!-- AdSame ShowCode: 中国青年网 / 教育频道 / 信息页顶部按钮1 End -->
+ </div>
+ </div>
+ </div>
+ <!--1807-->
+ <!--top end-->
+ <div class="hd_bottom_logo">
+ <div class="hd_bottom_left fl">
+ <a href="http://www.youth.cn/" target="_blank"><img src="../../../images/youth_sjy_logo.png" alt="中国青年网" class="fl" width="90" /></a>
+ <div class="hd_meun fr">
+ <span class="hd_meun_jk1">
+ <a href="../../../" target="_blank" title="首页" class="CurrChnlCls">首页</a> &gt;&gt; <a href="../../" target="_blank" title="教育资讯" class="CurrChnlCls">教育资讯</a> &gt;&gt; <a href="../" target="_blank" title="教育新闻" class="CurrChnlCls">教育新闻</a> &gt;&gt; 正文
+ </span>
+ </div>
+ </div>
+ <!--1808-->
+ <!-- 公共三级页 搜索(拷贝) -->
+ <form id="search_form" name="search_form" target="_blank">
+ <div class="fr nav_serch_right">
+ <div class="nav_text fl">
+ <input name="s" value="6006151520371175686" type="hidden" />
+ <input name="ie" value="gbk" type="hidden" />
+ <input name="q" id="s" maxlength="200" class="nav_ser_text" placeholder="" type="text" />
+ </div>
+ <input class="nav_button fr" id="go" onclick="bsubmit();" type="button" />
+ </div>
+ <script type="text/javascript">
+ function bsubmit() {
+ search_form.action = "//search.youth.cn/cse/search";
+ search_form.submit();
+ }
+ </script>
+ </form>
+ <!--1808-->
+ </div>
+
+ <!--详细页主题部分-->
+ <div class="main">
+ <div class="main_l">
+ <!--content start-->
+ <div class="l_tit">海外留学生看两会:出国前后关注点大不同</div>
+ <!--{if $subtitle}-->
+ <h3 style="font-family:'宋体'; font-weight:normal;font-size:14px;margin-bottom:5px;margin-top:5px;" align="center"></h3>
+ <!--{/if}-->
+ <div class="l_time">
+ 发稿时间:<span id="pubtime_baidu" style="margin-left:0px;">2017-03-10 08:42:00</span>
+ <!--{if $source_name}-->
+ <span id="source_baidu">
+
+来源:
+
+<a href="http://lx.huanqiu.com/lxnews/2017-03/10279070.html">人民日报海外版</a>
+
+
+
+
+</span>
+ <!--{/if}--><span><a href="http://www.youth.cn" target="_blank">中国青年网</a></span>
+ </div>
+ <div class="article">
+ <div id="content">
+ <div id="container" class="article-content">
+ <div class="TRS_Editor">
+ <p align="center"><img title="海外留学生看两会:出国前后关注点大不同" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-top-width: 0px" alt="海外留学生看两会:出国前后关注点大不同" src="./W020170310313653868929.jpg" oldsrc="W020170310313653868929.jpg" height="269" width="400" /></p>
+ <p align="center">图为马素湘在澳大利亚悉尼游玩时的近影。</p>
+ <p>  <strong>出国前后关注点大不同</strong></p>
+ <p>  <strong>出国前:政治科目会出啥考题?</strong></p>
+ <p>  <strong>出国后:国家未来将如何发展?</strong></p>
+ <p>   在采访中,我们了解到不少学子在出国前就每年守在电脑前观看两会直播。但是,随着年龄和阅历的增长,学子对两会的关注点在出国前后发生了很大的变化。</p>
+ <p>   在法国里昂国立应用科学院留学的卢宇表示,他还是个中学生时,就开始关注两会了。“我高中毕业后就出国留学了。当我还在国内读高中时,对两会的主要关注点落在民生和教育问题上。根据这些内容预测今年政治考点会有哪些变化。”卢宇说,“在国外学习生活了将近10年,我愈发感觉到祖国这些年发生的日新月异的变化;关注点也转移到国家‘一带一路’建设,高端人才引进,中外合作等方面。”</p>
+ <p>   无独有偶,英国剑桥大学的李博灏也有着类似的经历。他表示,在国内读本科时,虽然关注过两会,但并不像现在这样,将关注点放在国家社会经济迫切需要解决的难题与问题上。“出国前更关心与我们学生的实际问题以及切身利益相关的议题,比如奖学金、助学金的发放与申请;相关工作行业就业前景等。”</p>
+ <p>   在英国求学6年后,李博灏希望能够学有所用,为国家发展过程中遇到的难题寻求解决办法。因此随着课题研究的深入,他更加关注国家和社会目前所面临的挑战,比如中等收入陷阱、供给侧改革、创意创新产业的发展等议题。</p>
+ <p>   还有一些学子表示,出国前对两会不太了解,出国后反而对两会热点多了些思考。在澳大利亚墨尔本留学的马素湘说:“想不关注都难啊!刷微博看新闻到处都是两会的消息。而且我现在学的是新闻专业,对世界发生的大小事都会留意。随着年龄、阅历增长,家国情怀也渐长,会关心国家发展的各方面问题。”</p>
+ <p align="center"><img src="./W020170310313654043127.jpg" alt="" oldsrc="W020170310313654043127.jpg" /></p>
+ <p align="center">图为李博灏在瑞士日内日瓦联合国欧洲总部的近影。</p>
+ <p>  <strong>关注点多与所学专业相关</strong></p>
+ <p>  <strong>法学专业热议法定婚龄</strong> <strong>很多人关心供给侧改革</strong></p>
+ <p>   在谈及对两会的哪些话题比较感兴趣时,卢宇表示:“近几年,国内雾霾现象时有发生。而我本身是学习能源环境专业的,所以每年都对两会上政府工作报告和代表提案中有关环保和新能源政策的部分很感兴趣。今年两会提案中有几份关于大力发展清洁能源汽车的。我认为这对节能减排和防治雾霾都有积极作用,但也要注意加强电池和电动机等关键技术的研发。”</p>
+ <p>   对此提案,卢宇有着自己的看法,“百花齐放的局面固然可喜,但也不能一哄而上,国家应该提高行业准入门槛,完善新能源汽车准入管理规则,从源头上进行制度创新,将一些不具备新能源汽车生产资质的厂家淘汰出局,并高度关注电池系统安全问题,严格执行充电桩生产的国际标准。”</p>
+ <p>   马素湘表示,“出国读研之前,我在国内学习法学,因此对相关的问题比较感兴趣。今年两会上人大代表黄细花提出把法定婚龄降低到18岁的提案;而在微博的热搜榜上,一本儿童性教育读物引起了极大的争议。我认为降低婚龄并不适合我国国情。因为性教育的缺乏导致我国大部分人在18岁之前没有接受过完整的性教育,思想行动上也不够成熟,如何能够对自己的人生和自己的另一半负责?所以我希望能有人大代表提议在国民儿童阶段完善我国的性教育,而不是为了鼓励生育将法定婚龄提前。”</p>
+ <p>   李博灏是英国剑桥大学制造业研究所创新设计管理中心的一名博士。他格外关注的话题是供给侧结构性改革,知识产权保护,消费升级等议题。“我的博士研究课题是关于推动创新设计密集型产业的发展从而帮助中等收入国家克服中等收入陷阱的探索,因此一直十分关注国内关于供给侧改革的相关议题。通过本届两会对于该议题的进一步关注,我希望可以有效地帮助我了解供给侧改革与中等收入陷阱问题目前的发展状况以及解决情况;也希望可以与更多的机构取得联系,并帮助他们了解该议题最前沿的研究与解决方案。”</p>
+ <p align="center"><img src="./W020170310313654453091.jpg" alt="" oldsrc="W020170310313654453091.jpg" /></p>
+ <p align="center">图为卢宇与祖国五星红旗和联合国会旗的合影。</p>
+ <p>  <strong> 两会成为了解国情的窗口</strong></p>
+ <p>  <strong> 盼准确把握国家发展需求 愿寻求机遇回国有所作为</strong></p>
+ <p>   不少学子时刻关注着国内动态,寻找回国发展的契机,而两会正是一个提供最新最全面信息的窗口。</p>
+ <p>   “对两会的关注使我能够准确把握国家目前迫切需要解决的难题,从而使我的研究具有更多的社会价值。把理论和现实结合起来,将学到的知识、理念与技术有效地融入到国家社会经济发展的实践中去,为国家和社会解决这些问题提供理论与实践依据。”李博灏说。</p>
+ <p>   知识产权也是近些年来两会的热门话题。在李博灏看来,知识产权是经济可持续增长和创意创新产业发展的灵魂所在。完善的、与国际接轨的知识产权保护法能够很好地促进国民经济的发展。“如何将欧洲和英国先进的知识产权以及创意产业保护发展经验带回祖国,帮助我们国家推动创意创新驱动的经济发展一直是我在关注与思考的。因此我也会十分关注两会关于国内知识产权的保护,知识产权综合管理改革试点工作,知识产权国际合作,知识产权大数据等的发展现状等问题。”</p>
+ <p>   在两会上,全国政协委员张近东提出“当前中国经济的发展正在从数量型向质量型转变,消费升级将成为企业新一轮创新发展的动力。”对此,李博灏认为这也是他关注的问题。他认为:“在消费市场持续扩大的大环境下,如何能够通过促进创新设计产业的发展以及消费品品质的提升,推动国内消费增长并促进其在可持续经济增长中的作用,是一个迫切需要解决的问题。在当前供给侧改革的大环境下,消费升级的重要性越发突显。”</p>
+ <p>   作为两会的资深粉,卢宇聊起两会话题充满了期待。“今年是国家‘十三五’规划的关键时期,‘一带一路’建设也在如火如荼地进行中。作为一名中国留学生,我一直都关注着能在哪些领域为国家、为中外合作共赢做出贡献。‘大众创业、万众创新’提出有几年了。全国各省市在吸引留学人才归国创业就业方面纷纷提出了各种优惠政策,但目前大都集中在沿海发达省份,而且主要惠及理工科博士,政策覆盖面还不够广。期待从国家层面设立工作组加强留学人才的统筹协调,完善顶层设计。人文社科类留学人才是未来国家智库的重要后备力量,也应该适当加强对他们的政策鼓励,更好地服务于‘一带一路’国家战略。”</p>
+ <p>   卢宇还认为两会应该增设学子代表,列席旁听两会,拓展留学生参政议政渠道。“我相信优秀留学生的国际化视野必将为家乡建设带来新的思路,增添新的活力。”卢宇恳切地说。</p>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="rdwz">
+ <!--{if ($source_title)}-->
+ <div class="rdwz_nav"></div>
+ <!--{/if}-->
+ <div class="rdwz_fh"><span id="editor_baidu">责任编辑:崔宁宁</span></div>
+ <div class="rdwz_fh"><span><a href="http://www.youth.cn">返回首页&gt;&gt;</a></span><span><wb:follow-button uid="2748597475" type="red_3"></wb:follow-button></span><span><div class="bdsharebuttonbox bdshare-button-style0-16" data-bd-bind="1489397816999"><a href="#" class="bds_more" data-cmd="more"></a><a href="#" class="bds_qzone" data-cmd="qzone" title="分享到QQ空间"></a><a href="#" class="bds_tsina" data-cmd="tsina" title="分享到新浪微博"></a><a href="#" class="bds_tqq" data-cmd="tqq" title="分享到腾讯微博"></a><a href="#" class="bds_renren" data-cmd="renren" title="分享到人人网"></a><a href="#" class="bds_weixin" data-cmd="weixin" title="分享到微信"></a></div>
+<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='//bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script></span></div>
+
+ <!--分页-->
+ <div class="laiyuan" style="width:auto; line-height:70px; text-align:center; margin:0 auto; padding:0; font-size:14px;" align="center">
+ <script language="JavaScript">
+ & lt;
+ !--
+ function createPageHTML(_nPageCount, _nCurrIndex, _sPageName, _sPageExt) {
+ if (_nPageCount == null || _nPageCount & lt; = 1 || _nCurrIndex & lt; 0 || _nCurrIndex & gt; = _nPageCount) {
+ return;
+ }
+ //var fyn;
+ var nStep = 5
+ var nCurrIndex = _nCurrIndex + 1; //修正当前页从1开始
+ //首页和上一页的代码
+ document.write('&lt;font style="font-size:14px; color:#000000"&gt;共【&lt;/font&gt;&lt;font color="#FF0000"&gt;');
+ document.write(_nPageCount);
+ document.write('&lt;/font&gt;');
+ document.write('&lt;font style="font-size:14px; color:#000000"&gt;】页&lt;/font&gt;&amp;nbsp;');
+
+
+
+ if (nCurrIndex == 1) {
+ document.write('首 页&amp;nbsp;&amp;nbsp;');
+ document.write('上一页&amp;nbsp;&amp;nbsp;');
+ } else {
+ document.write('&lt;a href="' + _sPageName + '.' + _sPageExt + '" target=_top&gt;首 页&lt;/a&gt;&amp;nbsp;');
+ }
+ if (nCurrIndex == 2) document.write('&lt;a href="' + _sPageName + '.' + _sPageExt + '" target=_top&gt;上一页&lt;/a&gt;&amp;nbsp;&amp;nbsp;');
+ if (nCurrIndex & gt; = 3) document.write('&lt;a href="' + _sPageName + '_' + (nCurrIndex - 2) + '.' + _sPageExt + '" target=_top&gt;上一页&lt;/a&gt;&amp;nbsp;&amp;nbsp;');
+
+ //首页和上一页的代码
+
+
+ if (_nPageCount & lt; = nStep) { //_nPageCount小于等于显示限制的情况
+ if (nCurrIndex == 1)
+ document.write('&lt;font class=\'page_current\'&gt;' + 1 + '&lt;/font&gt;&amp;nbsp;');
+ else
+ document.write('&lt;a href="' + _sPageName + '.' + _sPageExt + '" class=page_sytle target=_top&gt;1&lt;/a&gt;&amp;nbsp;');
+ for (var i = 2; i & lt; = _nPageCount; i++) {
+ if (nCurrIndex == i)
+ document.write('&lt;font class=\'page_current\'&gt;' + i + '&lt;/font&gt;&amp;nbsp;');
+ else
+ document.write('&lt;a href="' + _sPageName + '_' + (i - 1) + '.' + _sPageExt + '" class=page_sytle target=_top&gt;' + i + '&lt;/a&gt;&amp;nbsp;');
+ }
+ //_nPageCount小于等于显示限制的情况
+ } else {
+ //下面这个IF是判断是小于步长的一半的情况的;
+ if (nCurrIndex & lt; Math.ceil(nStep / 2)) {
+ if (nCurrIndex == 1)
+ document.write('&lt;font class=\'page_current\'&gt;' + 1 + '&lt;/font&gt;&amp;nbsp;');
+ else
+ document.write('&lt;a href="' + _sPageName + '.' + _sPageExt + '" class=page_sytle target=_top&gt;1&lt;/a&gt;&amp;nbsp;');
+ for (i = 2; i & lt; = nStep; i++) {
+ if (nCurrIndex == i)
+ document.write('&lt;font class=\'page_current\'&gt;' + i + '&lt;/font&gt;&amp;nbsp;');
+ else
+ document.write('&lt;a href="' + _sPageName + '_' + (i - 1) + '.' + _sPageExt + '" class=page_sytle target=_top&gt;' + i + '&lt;/a&gt;&amp;nbsp;');
+ }
+ } else {
+ st = Math.ceil(nCurrIndex - nStep / 2);
+ ed = Math.ceil(nCurrIndex + nStep / 2);
+ if (nCurrIndex & gt; _nPageCount - nStep / 2) {
+ st = _nPageCount - nStep + 1;
+ ed = _nPageCount + 1;
+ }
+ for (i = st; i & lt; ed; i++) {
+ if (i & gt; 0 & amp; & amp; i & lt; = _nPageCount) {
+ if (i == nCurrIndex)
+ document.write('&lt;font class=\'page_current\'&gt;' + i + '&lt;/font&gt;&amp;nbsp;&amp;nbsp;');
+ else {
+ pn = '_' + (i - 1);
+ if (i - 1 == 0) pn = '';
+ document.write('&lt;a href="' + _sPageName + pn + '.' + _sPageExt + '" class=page_sytle target=_top&gt;' + i + '&lt;/a&gt;&amp;nbsp;&amp;nbsp;');
+ }
+ }
+ }
+ }
+ }
+
+ //下一页和末页的设置
+ if (nCurrIndex & lt; _nPageCount) {
+ document.write('&lt;a href="' + _sPageName + '_' + nCurrIndex + '.' + _sPageExt + '" target=_top&gt;下一页&lt;/a&gt;&amp;nbsp;&amp;nbsp;');
+ document.write('&lt;a href="' + _sPageName + '_' + (_nPageCount - 1) + '.' + _sPageExt + '" target=_top&gt;末 页&lt;/a&gt;&amp;nbsp;&amp;nbsp;');
+ } else {
+ document.write('下一页&amp;nbsp;&amp;nbsp;');
+ document.write('末 页');
+ }
+ //下一页和末页的设置
+ }
+ //函数结束符
+ //WCM置标
+
+ createPageHTML(1, 0, "t20170310_9260562", "htm");
+
+ //--&gt;
+ </script>
+ </div>
+ <script type="text/javascript">
+ //判断分页有无,及其上下页的url
+ var global_fenye = {
+ has: false,
+ l: "#",
+ r: "#"
+ }
+ //two专用初始化函数
+ function init_fenye() {
+ /*通过div 的class = laiyuan 来找到这个分页的层,然后根据"上一页"、"下一页"字样来获得上下页的链接*/
+ var ldy_divs = document.getElementsByTagName("div");
+ var ldy_thediv = null;
+ for (var i = ldy_divs.length - 1; i & gt; - 1; i--) {
+ if (ldy_divs[i].className == "laiyuan") {
+ ldy_thediv = ldy_divs[i];
+ break;
+ }
+ }
+ if (ldy_thediv) {
+ var ldy_as = ldy_thediv.getElementsByTagName("a");
+ for (var i = 0; i & lt; ldy_as.length; i++) {
+ if (ldy_as[i].innerHTML == "上一页") {
+ global_fenye.l = ldy_as[i].href;
+ global_fenye.has = true;
+ }
+ if (ldy_as[i].innerHTML == "下一页") {
+ global_fenye.r = ldy_as[i].href;
+ global_fenye.has = true;
+ }
+ }
+ }
+ }
+
+ //全局变量:记录所选中的那个图片的一些参数
+ var global_jump_img = {
+ w: 0,
+ h: 0,
+ x: 0,
+ y: 0,
+ t: 0,
+ l: 0,
+ is_left: false,
+ where: 0, //0为图片外,1为图片左半边,2为图片右半边
+ needset: true,
+ hasup: false,
+ hasdown: false,
+ isFF: false,
+ lkup: "",
+ lkdown: "",
+ dm: null
+ }
+ //全局变量:鼠标跟随层的位置
+ var global_mouse_div = {
+ w: 0,
+ h: 0,
+ x: 0,
+ y: 0,
+ t: 0,
+ l: 0,
+ lock: false,
+ isshow: false,
+ iel: "&amp;nbsp;&amp;nbsp;上一页 &amp;lt;&amp;lt;",
+ ier: "&amp;nbsp;&amp;nbsp;&amp;gt;&amp;gt; 下一页",
+ ffl: "上一页 &amp;lt;&amp;lt;&amp;lt;&amp;lt;",
+ ffr: "&amp;gt;&amp;gt;&amp;gt;&amp;gt; 下一页"
+ }
+ //初始化鼠标跟随层的位置
+ function init_global_mouse_div() {
+ if (!global_mouse_div.lock) {
+ var dmdiv = document.getElementById("mouse_move_div_ldy");
+ if (dmdiv) {
+ var xyxy = getBoundingClientRect2(dmdiv);
+ global_mouse_div.x = parseInt(xyxy.left);
+ global_mouse_div.y = parseInt(xyxy.top);
+ global_mouse_div.w = parseInt(dmdiv.width);
+ global_mouse_div.h = parseInt(dmdiv.height);
+ }
+ }
+ //定位层的数据
+
+ var dmdiv2 = document.getElementById("mouse_move_div_ldy2");
+ if (dmdiv2) {
+ global_mouse_div.t = parseInt(getElementTop2(dmdiv2));
+ global_mouse_div.l = parseInt(getElementLeft2(dmdiv2));
+ }
+ //document.title = "x:" +global_mouse_div.x+ " y:" +global_mouse_div.y+ " l:" +global_mouse_div.l+ " t:" + global_mouse_div.t;
+ }
+ //设置鼠标跟随层
+ function set_global_mouse_div(top, left, isff, isleft) {
+ var dmdiv = document.getElementById("mouse_move_div_ldy");
+ if (dmdiv) {
+ global_mouse_div.lock = true;
+ if (global_mouse_div.isshow) {
+ dmdiv.style.display = "block";
+ } else {
+ dmdiv.style.display = "none";
+ }
+ if (isff) {
+ if (isleft) {
+ dmdiv.innerHTML = global_mouse_div.ffl;
+ } else {
+ dmdiv.innerHTML = global_mouse_div.ffr;
+ }
+ } else {
+ if (isleft) {
+ dmdiv.innerHTML = global_mouse_div.iel;
+ } else {
+ dmdiv.innerHTML = global_mouse_div.ier;
+ }
+ }
+ if (isleft) {
+ top = top + 2;
+ left = left - 80 - 10; //这里的80是div的宽度,若修改宽度,需要跟着修改
+ dmdiv.style.top = top + "px";
+ dmdiv.style.left = left + "px";
+ } else {
+ top = top + 2;
+ left = left + 25;
+ dmdiv.style.top = top + "px";
+ dmdiv.style.left = left + "px";
+ }
+ }
+ }
+ //初始化鼠标跟随层、预加载右侧图标
+ function init_runNav_pic_div_ldy() {
+ var str = "";
+ str += '&lt;div id="mouse_move_div_ldy" style="position:absolute; display:none; top:0px; left:0px; width:80px; height:22px; overflow:hidden; border:1px solid #113c8c; background-color:#FFF; color:#000; line-height:22px;"&gt;下一页&lt;/div&gt;';
+ str += '&lt;div id="mouse_move_div_ldy2" style="position:absolute; display:none; top:0px; left:0px; width:80px; height:22px; overflow:hidden; border:1px solid #113c8c; background-color:#FFF; color:#000; line-height:22px;"&gt;定位用&lt;/div&gt;';
+ //str += '&lt;div style="width:200px; height:200px; overflow:hidden;"&gt;&lt;img src="http://picture.youth.cn/images/ina_left.cur" /&gt;&lt;img src="http://picture.youth.cn/images/ina_right.cur" /&gt;&lt;/div&gt;';
+ //alert(str);
+ document.write(str);
+ }
+ //222获取元素距页面顶部偏移量
+ function getElementTop2(element) {
+ var actualTop = element.offsetTop;
+ var current = element.offsetParent;
+ while (current !== null) {
+ actualTop += current.offsetTop;
+ current = current.offsetParent;
+ }
+ return actualTop;
+ }
+ //222获取元素距页面左侧偏移量
+ function getElementLeft2(element) {
+ var actualLeft = element.offsetLeft;
+ var current = element.offsetParent;
+ while (current !== null) {
+ actualLeft += current.offsetLeft;
+ current = current.offsetParent;
+ }
+ return actualLeft;
+ }
+ //222兼容所有浏览器,取得元素矩阵,返回元素左上角坐标距视窗口的left,top,right,bottom值
+ function getBoundingClientRect2(element) {
+ var scrollTop = document.documentElement.scrollTop;
+ var scrollLeft = document.documentElement.scrollLeft;
+ if (element.getBoundingClientRect) {
+ if (typeof arguments.callee.offset != "number") {
+ var temp = document.createElement("div");
+ temp.style.cssText = "position:absolute;left:0;top:0;";
+ document.body.appendChild(temp);
+ arguments.callee.offset = -temp.getBoundingClientRect().top - scrollTop;
+ document.body.removeChild(temp);
+ temp = null;
+ }
+ var rect = element.getBoundingClientRect();
+ var offset = arguments.callee.offset;
+ return {
+ left: rect.left + offset,
+ right: rect.right + offset,
+ top: rect.top + offset,
+ bottom: rect.bottom + offset
+ };
+ } else {
+ var actualLeft = getElementLeft(element);
+ var actualTop = getElementTop(element);
+ return {
+ left: actualLeft - scrollLeft,
+ right: actualLeft + element.offsetWidth - scrollLeft,
+ top: actualTop - scrollTop,
+ bottom: actualTop + element.offsetHeight - scrollTop
+ }
+ }
+ }
+ //鼠标移动到图片上时,初始化
+ function runNav_picidldyzxy_init() {
+ var dom_article = document.getElementById("articleText");
+ if (dom_article) {
+ var dom_all_img = dom_article.getElementsByTagName("img");
+ var dom_last_index = parseInt(dom_all_img.length) - 1;
+ if (dom_last_index & gt; - 1) {
+ var dom_last = dom_all_img[dom_last_index];
+ var xyxy = getBoundingClientRect2(dom_last);
+ global_jump_img.x = parseInt(xyxy.left);
+ global_jump_img.y = parseInt(xyxy.top);
+ global_jump_img.w = parseInt(dom_last.width);
+ global_jump_img.h = parseInt(dom_last.height);
+ global_jump_img.t = parseInt(getElementTop2(dom_last));
+ global_jump_img.l = parseInt(getElementLeft2(dom_last));
+ }
+ }
+ //document.title = "x:" +global_jump_img.x+ " y:" +global_jump_img.y+ " l:" +global_jump_img.l+ " t:" + global_jump_img.t;
+ }
+ //设置图片,点击查看下一页
+ function runNav_picidldyzxy() {
+
+ //判断浏览器种类
+ var Sys = {};
+ var ua = navigator.userAgent.toLowerCase();
+ var s;
+ (s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1]:
+ (s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :
+ (s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :
+ (s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] :
+ (s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;
+
+ var isFF = false;
+ if (Sys.firefox) {
+ isFF = true;
+ global_jump_img.isFF = true;
+ }
+
+ //有上一页时
+ if (global_fenye.l != "#") {
+ global_jump_img.lkup = global_fenye.l;
+ global_jump_img.hasup = true;
+ } else {
+ global_jump_img.lkup = "#";
+ global_jump_img.hasup = false;
+ }
+ //有下一页时
+ if (global_fenye.r != "#") {
+ global_jump_img.lkdown = global_fenye.r;
+ global_jump_img.hasdown = true;
+ } else {
+ global_jump_img.lkdown = "#";
+ global_jump_img.hasdown = false;
+ }
+ //添加img的事件
+ var dom_article = document.getElementById("articleText");
+ if (dom_article) {
+ var dom_all_img = dom_article.getElementsByTagName("img");
+ var dom_last_index = parseInt(dom_all_img.length) - 1;
+ if (dom_last_index & gt; - 1) {
+ var dom_last = dom_all_img[dom_last_index];
+ runNav_picidldyzxy_init(); //不知道为啥,有这句,才能兼容火狐
+ init_global_mouse_div();
+ //绑定事件
+ dom_last.onmouseover = function() {
+ runNav_picidldyzxy_init();
+ init_global_mouse_div();
+ global_mouse_div.isshow = true;
+ }
+ dom_last.onmouseout = function() {
+ global_mouse_div.isshow = false;
+ set_global_mouse_div(0, 0, false, false); //隐藏
+ global_jump_img.where = 0;
+ }
+ dom_last.onclick = function() {
+ if (global_jump_img.is_left) {
+ if (global_jump_img.hasup) {
+ window.location.href = global_jump_img.lkup;
+ } else { /*alert("是第一页,没有上一页");*/
+ window.location.href = "http://edu.youth.cn";
+ }
+ } else {
+ if (global_jump_img.hasdown) {
+ window.location.href = global_jump_img.lkdown;
+ } else { /*alert("已经是最后一页,没有下一页");*/
+ document.getElementById("zf").style.display = "block";
+ }
+ }
+ }
+ dom_last.onmousemove = function() {
+ //var menu_x = event.x ? event.x : event.pageX;
+ //var menu_y = event.y ? event.y : event.pageY;
+ var menu_x = event.clientX;
+ var menu_y = event.clientY;
+ //计算跟随层的位置
+ var div_l = menu_x - global_jump_img.x + global_jump_img.l - global_mouse_div.l;
+ var div_t = menu_y - global_jump_img.y + global_jump_img.t - global_mouse_div.t;
+ //document.title = "" +menu_y +" "+ global_jump_img.y +" "+ global_jump_img.t +" "+ global_mouse_div.t;
+ var whereold = global_jump_img.where;
+ //判断左半边还是右半边
+ if (parseInt(menu_x) & lt; global_jump_img.w / 2 + global_jump_img.x) {
+ global_jump_img.is_left = true;
+ global_jump_img.where = 1;
+ } else {
+ global_jump_img.is_left = false;
+ global_jump_img.where = 2;
+ }
+
+ //如果位置发生变化,需要设置鼠标
+ if (whereold != global_jump_img.where) {
+ global_jump_img.needset = true;
+ }
+
+ //设置鼠标
+ if (global_jump_img.needset) {
+ if (global_jump_img.isFF) {
+ dom_last.style.cursor = "pointer";
+ } else {
+ if (global_jump_img.is_left) {
+ dom_last.style.cursor = "url('http://www.ce.cn/inc/dd_mouse_left.cur')";
+ } else {
+ dom_last.style.cursor = "url('http://www.ce.cn/inc/dd_mouse_right.cur')";
+ }
+ }
+ global_jump_img.needset = false;
+ }
+
+ //设置跟随
+ set_global_mouse_div(div_t, div_l, global_jump_img.isFF, global_jump_img.is_left);
+ //document.title = "w:" +global_jump_img.w+" x:"+global_jump_img.x+" y:"+global_jump_img.y+" 哈"+ menu_x+"左:" +global_jump_img.is_left;
+
+ }
+ }
+ }
+
+ }
+ //兼容火狐所用的加载event对象
+ function loadEvent() {
+ if (!document.all) {
+ window.constructor.prototype
+ .__defineGetter__(
+ "event",
+ function() {
+ var func = arguments.callee.caller;
+ while (func != null) {
+ var arg0 = func.arguments[0];
+ if (arg0 &
+ amp; & amp;
+ (arg0.constructor == Event || arg0.constructor == MouseEvent)) {
+ return arg0;
+ }
+ func = func.caller;
+ }
+ return null;
+ });
+ }
+ }
+ //开始
+ init_fenye(); //先初始化
+ if (global_fenye.has) {
+ loadEvent(); //兼容火狐所用的加载event对象
+ init_runNav_pic_div_ldy();
+ runNav_picidldyzxy();
+ //绑定滚动条事件,维持定位准确
+ if (document.all) {
+ window.attachEvent("onscroll", runNav_picidldyzxy_init);
+ } else {
+ window.addEventListener('scroll', function() {
+ runNav_picidldyzxy_init();
+ }, true);
+ }
+ if (document.all) {
+ window.attachEvent("onscroll", init_global_mouse_div);
+ } else {
+ window.addEventListener('scroll', function() {
+ init_global_mouse_div();
+ }, true);
+ }
+ }
+ //设置推荐窗口位置
+ //$(document).load(function() {
+ var zf_left = (Math.floor(($('#articleText').width() - $('#zf').width()) / 2) + $('#articleText').offset().left) + 'px';
+ var img1_h = $('#articleText').find('img')[0].height;
+ var zf_top = Math.floor((img1_h - 250) / 2 + $('#articleText').offset().top) + 'px';
+ $('#zf').css('top', zf_top);
+ $('#zf').css('left', zf_left);
+ $('#zf').css('right', zf_left);
+ // });
+ </script>
+ <!--分页-->
+ <div style="clear:both;"></div>
+ </div>
+ <!--content end-->
+
+ <!--1809-->
+ <!-- 公共三级页 左下猜你喜欢1&AD(拷贝) -->
+ <div style="float: left; margin: 10px 10px 10px 0px; display: none;" id="article_ad0">
+ <script type="text/javascript">
+ var sti;
+ var resize = function(temp, ad) {
+ var timer, count = 0,
+ limit = 50;
+ timer = setInterval(function() {
+ var tempOffset = temp.offset();
+ var adOffset = ad.offset();
+
+ count += 1;
+ ad.css({
+ left: tempOffset.left,
+ top: tempOffset.top
+ });
+ if (count & gt; = limit || adOffset.top === tempOffset.top) {
+ clearInterval(timer)
+ }
+ }, 100);
+ };
+
+ function check_show(container, caid, order) {
+ var ad = $('#' + caid);
+ var offset;
+ var temp = $('&lt;div&gt;').css({
+ 'float': 'left',
+ width: ad.width(),
+ height: ad.height(),
+ margin: '10px 10px 10px 0'
+ });
+ if (ad.height() & gt; 10) {
+ $("#" + container + " p").eq(order).after(temp);
+ offset = temp.offset();
+ ad.css({
+ position: 'absolute',
+ left: offset.left,
+ top: offset.top
+ }).show();
+ resize(temp, ad);
+ clearInterval(sti);
+ }
+ }
+
+ function weneiAd(container, aid) {
+ var p = $("#" + container).find("p").size();
+ var img = $("#" + container).find("img").size();
+ var caid = 'article_ad0';
+ var order = 0;
+ if (img & gt; 1 & amp; & amp; p & lt; = 3) {} else if (img == 1 & amp; & amp; p & gt; 3) {
+ order = 1;
+ } else if (img == 0 & amp; & amp; p & gt; 3) {
+ order = 1;
+ } else if (img & gt; 1 & amp; & amp; p & gt; 5) {
+ order = 4;
+ }
+ if (order & gt; 0) {
+ //document.write("&lt;div style=\"float:left;margin:10px 10px 10px 0;display:none\" id=\""+caid+"\"&gt;");
+ // document.write("&lt;!-- AdSame ShowCode: 中国青年网 / 信息页文内画中画 Begin --&gt;");
+ // document.write("&lt;script type='text/javascript' src='http://publish.ad.youth.cn/s?z=youth&amp;c="+aid+"' charset='gbk'&gt;&lt;\/script&gt;");
+ // document.write("&lt;!-- AdSame ShowCode: 中国青年网 / 信息页文内画中画 End --&gt;");
+ //document.write("&lt;\/div&gt;");
+ //document.write("&lt;div style='clear:both'&gt;&lt;\/div&gt;");
+ sti = setInterval(function() {
+ check_show(container, caid, order);
+ }, 500);
+ }
+ }
+ weneiAd('container', 433);
+ </script>
+ </div>
+ <div style="clear:both"></div>
+ <!--1809-->
+ <!--keywords sta-->
+ <ul class="tj2_1">
+
+ <li><a href="../201701/t20170103_9005167.htm">49990名大学生获2015—2016国家奖学金</a></li>
+
+ <li><a href="../201701/t20170119_9050160.htm">国家开放大学2016年度十大新闻权威发布</a></li>
+
+ <li><a href="../201612/t20161219_8963724.htm">9岁跨性别儿童登上《国家地理》:4岁起称自...</a></li>
+
+ <li><a href="../201611/t20161130_8898999.htm">江苏最大规模作弊案27人获刑 涉案考生达50...</a></li>
+
+ <li><a href="../201612/t20161212_8938628.htm">教育部:中国教育对外交流走上“快车道”</a></li>
+
+ <li><a href="./t20170302_9200166.htm">教育部:中国成为世界最大的留学输出国</a></li>
+
+ </ul>
+ <div class="clear"></div>
+ <!--keywords end-->
+
+ <!--1810-->
+ <!-- 公共三级页 左下猜你喜欢2&AD&评论(拷贝) -->
+ <div style="padding-bottom:10px; border:1px solid #ccc;text-align:center;float:left;">
+ <!-- AdSame ShowCode: 中国青年网 / 教育频道 / 信息页左侧通栏1 Begin -->
+ <!-- <script type="text/javascript" src="http://publish.ad.youth.cn/s?z=youth&c=751" charset="gbk"></script> -->
+ <!-- AdSame ShowCode: 中国青年网 / 教育频道 / 信息页左侧通栏1 End -->
+ </div>
+ <!--2378-->
+ <script type="text/javascript">
+ cache_time = 1000 * 60 * 5;
+ query = Math.floor(Date.parse(new Date()) / cache_time);
+ document.write('&lt;script type="text/javascript" src="//d.youth.cn/qwtf2015/qwtf_js.js?' + query + '" charset="gbk"&gt;&lt;\/script&gt;');
+ </script>
+ <script type="text/javascript" src="//d.youth.cn/qwtf2015/qwtf_js.js?4964659" charset="gbk"></script>
+
+ <!--div class="tj2" style="display:block;">
+<div class="tj2_nav"><strong>猜你喜欢</strong></div>
+<ul class="tj2_pic" id="lb-cnxh1">
+<script>get_cnxhnews_byref();</script>
+</ul>
+</div>
+<div class="clear"></div-->
+ <!--2378-->
+ <div class="clear"></div>
+
+ <div style="padding-top:10px;text-align: center;">
+ <!-- AdSame ShowCode: 中国青年网 / 教育频道 / 信息页左侧通栏2 Begin -->
+ <!-- <script type="text/javascript" src="http://publish.ad.youth.cn/s?z=youth&c=439" charset="gbk"></script> -->
+ <!-- AdSame ShowCode: 中国青年网 / 教育频道 / 信息页左侧通栏2 End -->
+ </div>
+ <!--2381-->
+
+ <div style="text-align:center">
+ <!-- AdSame ShowCode: 中国青年网 / 教育频道 / 信息页左侧通栏3 Begin -->
+ <!-- <script type="text/javascript" src="http://publish.ad.youth.cn/s?z=youth&c=752" charset="gbk"></script> -->
+ <!-- AdSame ShowCode: 中国青年网 / 教育频道 / 信息页左侧通栏3 End -->
+ </div>
+
+
+ <!--评论-->
+ <div style="margin-top:10px">
+ <div class="box" id="show_ucomments"></div>
+ <div id="SOHUCS" sid="c9260562">
+ <div id="SOHU_MAIN">
+ <div node-type="cy-collection-btn" class="cy-collection-btn"><i></i><span>收藏文章</span></div>
+ <div class="module-cmt-header">
+ <div class="cy-hidden">
+ <button id="jump-to-kz"></button>
+ </div>
+ <div class="clear-g section-title-w">
+ <div class="title-user-w">
+ <div node-type="user" class="clear-g user-wrap-w">
+ <span node-type="user-name" class="wrap-name-w"></span>
+ </div>
+ </div>
+ </div>
+ <div class="section-cbox-w">
+ <div class="cbox-block-w clear-g">
+ <div node-type="block-head-w" class="block-head-w">
+ <div node-type="avatar" class="head-img-w">
+ <a href="javascript:void(0);">
+ <img node-type="user-head" src="https://changyan.sohu.com/upload/asset/scs/images/pic/pic42_null.gif" alt="" height="42" width="42" />
+ <div node-type="head-img-ie-mask" class="head-img-ie-mask"></div>
+ </a>
+ <div node-type="notice-node" style="display: none" class="cy-avatar-notice-node"></div>
+ </div>
+ <div node-type="header-login" class="header-login">登录</div>
+ <div class="cy-to-shequ-head">
+ <span>我的社区</span>
+ </div>
+ <div node-type="cy-hot-words" class="cy-hot-words"></div>
+ </div>
+ <div node-type="login-select" class="block-post-w">
+ <!-- 放置cbox初始状态 -->
+ <div class="module-cmt-box">
+ <!-- 展开状态 -->
+ <div class="post-wrap-w">
+ <div class="post-wrap-border-l"></div>
+ <div class="post-wrap-border-r"></div>
+ <div node-type="post-wrap-main" class="post-wrap-main">
+ <div class="post-wrap-border-t">
+ <div node-type="post-wrap-border-t-l" class="post-wrap-border-t-l"></div>
+ <div node-type="post-wrap-border-t-r" class="post-wrap-border-t-r"></div>
+ </div>
+ <div class="wrap-area-w">
+ <div class="area-textarea-w">
+ <textarea node-type="textarea" name="" class="textarea-fw textarea-bf">有事没事说两句...</textarea>
+ </div>
+ </div>
+ </div>
+ <div class="clear-g wrap-action-w">
+ <div class="action-function-w">
+ <ul class="clear-g">
+ <li node-type="function-face" class="function-face-w">
+ <a class="effect-w" href="javascript:void(0)">
+ <i class="face-b"></i>
+ </a>
+ </li>
+ <li node-type="function-uploading" class="function-uploading-w" style="display: none;">
+ <a class="effect-w" href="javascript:void(0)" title="上传图片">
+ <i class="uploading-b"></i>
+ </a>
+ <div class="uploading-file-w">
+ <a href="javascript:void(0);" name="" class="file-fw"></a>
+ </div>
+ <form style="display: none;"><input name="file" accept="image/jpg,image/jpeg,image/png" type="file" /></form>
+ </li>
+ </ul>
+ <!-- 表情 -->
+ <div node-type="face-box" class="face-wrapper-dw">
+ <div node-type="face-cont" class="wrapper-cont-dw">
+ <ul class="clear-g">
+ <li>
+ <span title="流汗" data_path="base" data-ubb="/流汗" class="face-item face_01"></span>
+ </li>
+ <li>
+ <span title="钱" data_path="base" data-ubb="/钱" class="face-item face_02"></span>
+ </li>
+ <li>
+ <span title="发怒" data_path="base" data-ubb="/发怒" class="face-item face_03"></span>
+ </li>
+ <li>
+ <span title="浮云" data_path="base" data-ubb="/浮云" class="face-item face_04"></span>
+ </li>
+ <li>
+ <span title="给力" data_path="base" data-ubb="/给力" class="face-item face_05"></span>
+ </li>
+ <li>
+ <span title="大哭" data_path="base" data-ubb="/大哭" class="face-item face_06"></span>
+ </li>
+ <li>
+ <span title="憨笑" data_path="base" data-ubb="/憨笑" class="face-item face_07"></span>
+ </li>
+ <li>
+ <span title="色" data_path="base" data-ubb="/色" class="face-item face_08"></span>
+ </li>
+ </ul>
+ <ul class="clear-g">
+ <li>
+ <span title="奋斗" data_path="base" data-ubb="/奋斗" class="face-item face_09"></span>
+ </li>
+ <li>
+ <span title="鼓掌" data_path="base" data-ubb="/鼓掌" class="face-item face_10"></span>
+ </li>
+ <li>
+ <span title="鄙视" data_path="base" data-ubb="/鄙视" class="face-item face_11"></span>
+ </li>
+ <li>
+ <span title="可爱" data_path="base" data-ubb="/可爱" class="face-item face_12"></span>
+ </li>
+ <li>
+ <span title="闭嘴" data_path="base" data-ubb="/闭嘴" class="face-item face_13"></span>
+ </li>
+ <li>
+ <span title="疑问" data_path="base" data-ubb="/疑问" class="face-item face_14"></span>
+ </li>
+ <li>
+ <span title="抓狂" data_path="base" data-ubb="/抓狂" class="face-item face_15"></span>
+ </li>
+ <li>
+ <span title="惊讶" data_path="base" data-ubb="/惊讶" class="face-item face_16"></span>
+ </li>
+ </ul>
+ <ul class="clear-g">
+ <li>
+ <span title="可怜" data_path="base" data-ubb="/可怜" class="face-item face_17"></span>
+ </li>
+ <li>
+ <span title="弱" data_path="base" data-ubb="/弱" class="face-item face_18"></span>
+ </li>
+ <li>
+ <span title="强" data_path="base" data-ubb="/强" class="face-item face_19"></span>
+ </li>
+ <li>
+ <span title="握手" data_path="base" data-ubb="/握手" class="face-item face_20"></span>
+ </li>
+ <li>
+ <span title="拳头" data_path="base" data-ubb="/拳头" class="face-item face_21"></span>
+ </li>
+ <li>
+ <span title="酒" data_path="base" data-ubb="/酒" class="face-item face_22"></span>
+ </li>
+ <li>
+ <span title="玫瑰" data_path="base" data-ubb="/玫瑰" class="face-item face_23"></span>
+ </li>
+ <li>
+ <span title="打酱油" data_path="base" data-ubb="/打酱油" class="face-item face_24"></span>
+ </li>
+ </ul>
+ </div>
+ <div node-type="user-face-cont" class="wrapper-user-face-dw nano">
+ <div class="nano-content">
+ <ul class="clear-g">
+ <li class="upload-face-btn"></li>
+ <li class="manage-face-btn"></li>
+ <li class="cancel-face-btn"></li>
+ </ul>
+ </div>
+ </div>
+ <div node-type="face-tab" class="action-face-tab-dw">
+ <ul class="clear-g">
+ <li node-type="official-face" class="official-face-btn active"></li>
+ <li node-type="user-face" class="user-face-btn" style="display: none;"></li>
+ </ul>
+ </div>
+ <div node-type="confirm-box" class="cy-confirm-box">
+ <div class="cy-confirm-text">
+ <span>表情删除后不可恢复,是否删除</span>
+ </div>
+ <div class="cy-confirm-btn-row">
+ <div class="cy-confirm-btn-cancel">取消</div>
+ <div class="cy-confirm-btn-confirm">确定</div>
+ </div>
+ </div>
+ </div>
+ <!-- 上传图片 -->
+ <!-- uploading-efw -->
+ <div node-type="uploading-wrapper" class="uploading-wrapper-dw uploading-efw ">
+ <div class="uploading-wrapper-dw-t"></div>
+ <div class="uploading-wrapper-dw-b"></div>
+ <div node-type="image-uploading" class="wrapper-loading-dw">
+ <div class="loading-word-dw"><span class="word-icon-dw"></span>图片正在上传,请稍后...</div>
+ <div class="loading-btn-dw">
+ <a href="javascript:void(0)">取消上传</a>
+ </div>
+ </div>
+ <div node-type="image-uploaded" class="wrapper-image-dw">
+ <div class="image-close-dw">
+ <a href="javascript:void(0)"></a>
+ </div>
+ <div class="image-pic-dw">
+ <img node-type="image-pic" alt="" src="" />
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="clear-g action-issue-w">
+ <div class="issue-btn-w">
+ <a href="javascript:void(0)">
+ <button node-type="issue" class="btn-fw"></button>
+ </a>
+ </div>
+ <!--
+ <div class="issue-icon-w" node-type="share-icons">
+ </div>
+ -->
+ </div>
+ <div class="cbox-prompt-w" node-type="error-tips">
+ <span node-type="prompt-empty" class="prompt-empty-w">评论内容为空!</span>
+ </div>
+ </div>
+ </div>
+ </div>
+ <!-- 放置cbox发布状态 -->
+ <!-- 提示条 -->
+ <!-- 零评论提示条 -->
+ <div class="list-comment-empty-w">
+ <div node-type="empty-prompt" class="empty-prompt-w">
+ <span class="prompt-null-w">还没有评论,快来抢沙发吧!</span>
+ </div>
+ </div>
+ <!-- 提示连接到快站社区 -->
+ <!-- <div class="list-comment-kuaizhan-w">
+ <div node-type="kuaizhan-prompt" class="kuaizhan-prompt-w">
+ <span class="prompt-text-w">点击查看更多精彩内容</span>
+ </div>
+ </div> -->
+ <!--关闭评论-->
+ <div class="list-close-comment-w">
+
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <!-- 评论列表 S -->
+ <div node-type="module-cmt-list" class="module-cmt-list section-list-w">
+ <!-- 最新评论 -->
+ <div class="list-block-gw list-newest-w">
+ <div node-type="cmt-list-title" class="block-title-gw" style="display: none;">
+ <ul class="clear-g">
+ <li>
+ <div class="title-name-gw title-name-bg">
+ <div class="title-name-gw-tag"></div>最新评论</div>
+ </li>
+ </ul>
+ </div>
+ <div node-type="cmt-list" id="cy-cmt-list"></div>
+ </div>
+ </div>
+ <!-- 评论列表 E -->
+ <div class="module-cmt-footer">
+ <!-- 评论关闭 -->
+ <div class="list-comment-close-w">
+ <div class="close-wrap-w close-wrap-b">该评论已关闭!</div>
+ </div>
+ <!-- 翻页 -->
+ <div class="section-page-w">
+ </div>
+ <!-- 某站正在使用畅言 -->
+ <div class="section-service-w">
+ <div class="service-wrap-w">
+ <a href="http://changyan.kuaizhan.com/" target="_blank">
+
+ 畅言
+ </a>
+ </div>
+ </div>
+ <div node-type="cy-to-shequ" class="cy-redirect-btn">
+ <span class="cy-redirect-text">去社区看看吧</span><i class="cy-right-arrow"></i>
+ </div>
+ <div node-type="cy-to-hots" class="cy-redirect-btn">
+ <span class="cy-redirect-text">去热评看看吧</span><i class="cy-right-arrow"></i>
+ </div>
+ <div class="cy-to-shequ-float"></div>
+ </div>
+ <div class="module-cmt-notice" style="bottom: 598px;">
+ <ul class="nt-list">
+
+ <li node-type="notice-message" data-alias="message" data-type="message" data-static="static" class="nt-item" style=" display: none ">
+ <div class="nt-logo"></div>
+ <a node-type="notice-content" class="nt-text" href="javascript:void(0);">你收到<i>0</i>条新通知</a>
+ <a class="nt-close" href="javascript:void(0);"></a>
+ </li>
+
+ <li node-type="notice-support" data-alias="support" data-type="support" data-static="static" class="nt-item" style=" display: none ">
+ <div class="nt-logo"></div>
+ <a node-type="notice-content" class="nt-text" href="javascript:void(0);">你有<i>0</i>条评论收到赞同</a>
+ <a class="nt-close" href="javascript:void(0);"></a>
+ </li>
+
+ <li node-type="notice-reply" data-alias="reply" data-type="reply" data-static="static" class="nt-item" style=" display: none ">
+ <div class="nt-logo"></div>
+ <a node-type="notice-content" class="nt-text" href="javascript:void(0);">你有<i>0</i>条新回复</a>
+ <a class="nt-close" href="javascript:void(0);"></a>
+ </li>
+
+ <li node-type="notice-task" data-alias="task" data-type="task" data-static="static" class="nt-item" style=" display: none ">
+ <div class="nt-logo"></div>
+ <a node-type="notice-content" class="nt-text" href="javascript:void(0);">你有<i>0</i>个任务已完成</a>
+ <a class="nt-close" href="javascript:void(0);"></a>
+ </li>
+
+ <li node-type="notice-history" data-alias="history" data-type="history" data-static="static" class="nt-item" style=" display: none ">
+ <div class="nt-logo"></div>
+ <a node-type="notice-content" class="nt-text" href="javascript:void(0);">你收获<i>0</i>个畅言足迹</a>
+ <a class="nt-close" href="javascript:void(0);"></a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <script charset="utf-8" type="text/javascript" src="//changyan.sohu.com/upload/changyan.js"></script>
+ <script type="text/javascript">
+ var topicid = $('#ucomments_id').html();
+ if (topicid == null) {
+ if ($("meta[name='contentid']").attr("content") != null) {
+ topicid = 'c' + $("meta[name='contentid']").attr("content");
+ } else {
+ topicid = 'cl' + $("meta[name='catalogs']").attr("content");
+ }
+ }
+ $('#SOHUCS').attr('sid', topicid);
+ var _config = {
+ categoryId: 'edu.youth.cn'
+ };
+ window.changyan.api.config({
+ appid: 'cyrqcP276',
+ conf: 'prod_a12dadb8024fd2ddc5a86120ebf50c27'
+ });
+ </script>
+ </div>
+ <!--评论 end -->
+ <!--AD-->
+ <div style=" padding:10px 0;text-align:center;">
+ <!-- AdSame ShowCode: 中国青年网 / 教育频道 / 信息页左侧通栏4 Begin -->
+ <!-- <script type="text/javascript" src="http://publish.ad.youth.cn/s?z=youth&c=753" charset="gbk"></script> -->
+ <!-- AdSame ShowCode: 中国青年网 / 教育频道 / 信息页左侧通栏4 End -->
+ </div>
+ <!--淘宝Start-->
+ <!--<div style=" padding:10px 0;text-align:center;">-->
+ <!-- AdSame ShowCode: 中国青年网 / 教育频道 / 信息页左侧图文 Begin -->
+ <!--<script type="text/javascript" src="http://publish.ad.youth.cn/s?z=youth&c=440" charset="gbk"></script>-->
+ <!-- AdSame ShowCode: 中国青年网 / 教育频道 / 信息页左侧图文 End -->
+ <!--</div>-->
+ <!--淘宝End-->
+
+ <!--1810-->
+
+
+ <div style="padding:10px 0" align="center">
+ <div style="float:left; width:300px;">
+ <!-- AdSame ShowCode: 中国青年网 / 教育频道 / 信息页左侧画中画1(原图文) Begin -->
+ <!-- <script type="text/javascript" src="http://publish.ad.youth.cn/s?z=youth&c=787" charset="gbk"></script> -->
+ <!-- AdSame ShowCode: 中国青年网 / 教育频道 / 信息页左侧画中画1(原图文) End -->
+ </div>
+ <div style="float:right; width:300px;">
+ <!-- AdSame ShowCode: 中国青年网 / 教育频道 / 信息页左侧画中画2(原图文) Begin -->
+ <!-- <script type="text/javascript" src="http://publish.ad.youth.cn/s?z=youth&c=788" charset="gbk"></script> -->
+ <!-- AdSame ShowCode: 中国青年网 / 教育频道 / 信息页左侧画中画2(原图文) End -->
+ </div>
+ <div class="clear"></div>
+ </div>
+
+ <!--AD-->
+ <div style="padding-top:10px;text-align:center">
+ <!-- AdSame ShowCode: 中国青年网 / 教育频道 / 信息页左侧通栏5 Begin -->
+ <!-- <script type="text/javascript" src="http://publish.ad.youth.cn/s?z=youth&c=754" charset="gbk"></script> -->
+ <!-- AdSame ShowCode: 中国青年网 / 教育频道 / 信息页左侧通栏5 End -->
+ </div>
+
+ <!--AD-->
+ <!--1811-->
+ </div>
+
+ <!--right start-->
+ <div class="main_r">
+ <!--1073-->
+ <!-- 公共三级页 右侧热图排行(公共) -->
+ <div class="yytj" style="display:block;">
+ <div class="yytj_nav"><span class="bk">热图</span>
+ <p>排行</p>
+ </div>
+ <ul id="rt-wz_rtph">
+ <script type="text/javascript">
+ getnewsbyref("wenzhang");
+ </script>
+ <li>
+ <a onclick="_hmt.push(['_trackEvent', 'FZC_pic_3601', 'click', 'literature'])" href="http://news.d.youth.cn/news/201607/t20160713_8277676.htm" title="这个萌妹纸竟然是个男的"><img src="http://d.youth.cn/qwtf2015/wzy/rtph360/201506/W020160714572680467502.jpg" alt="这个萌妹纸竟然是个男的" height="100" width="140" /></a>
+ <p><a onclick="_hmt.push(['_trackEvent', 'FZC_pic_3601', 'click', 'literature'])" href="http://news.d.youth.cn/news/201607/t20160713_8277676.htm" title="这个萌妹纸竟然是个男的">这个萌妹纸竟然是个男的</a></p>
+ </li>
+ <li>
+ <a onclick="_hmt.push(['_trackEvent', 'FZC_pic_3602', 'click', 'literature'])" href="http://news.d.youth.cn/news/201607/t20160714_8282379.htm" title="95后女孩进联合国实习"><img src="http://d.youth.cn/qwtf2015/wzy/rtph360/201506/W020160714571929707734.jpg" alt="95后女孩进联合国实习" height="100" width="140" /></a>
+ <p><a onclick="_hmt.push(['_trackEvent', 'FZC_pic_3602', 'click', 'literature'])" href="http://news.d.youth.cn/news/201607/t20160714_8282379.htm" title="95后女孩进联合国实习">95后女孩进联合国实习</a></p>
+ </li>
+ <li>
+ <a onclick="_hmt.push(['_trackEvent', 'FZC_pic_3603', 'click', 'literature'])" href="http://news.youth.cn/gj/201607/t20160714_8284254.htm" title="国人镜头下真实菲律宾"><img src="http://d.youth.cn/qwtf2015/wzy/rtph360/201506/W020160715537222104338.jpg" alt="国人镜头下真实菲律宾" height="100" width="140" /></a>
+ <p><a onclick="_hmt.push(['_trackEvent', 'FZC_pic_3603', 'click', 'literature'])" href="http://news.youth.cn/gj/201607/t20160714_8284254.htm" title="国人镜头下真实菲律宾">国人镜头下真实菲律宾</a></p>
+ </li>
+ <li>
+ <a onclick="_hmt.push(['_trackEvent', 'FZC_pic_3604', 'click', 'literature'])" href="http://news.youth.cn/sh/201607/t20160714_8284263.htm" title="实拍变性手术全过程"><img src="http://d.youth.cn/qwtf2015/wzy/rtph360/201506/W020160715538060041700.jpg" alt="实拍变性手术全过程" height="100" width="140" /></a>
+ <p><a onclick="_hmt.push(['_trackEvent', 'FZC_pic_3604', 'click', 'literature'])" href="http://news.youth.cn/sh/201607/t20160714_8284263.htm" title="实拍变性手术全过程">实拍变性手术全过程</a></p>
+ </li>
+ </ul>
+ <div class="clear"></div>
+ </div>
+ <div class="clear"></div>
+ <!--1073-->
+ <!--1812-->
+ <!-- 公共三级页 右侧热图排行(自有)&AD(拷贝) -->
+ <div class="clear"></div>
+ <div class="ad005">
+ <script type="text/javascript">
+ document.write('&lt;a style="display:none!important" id="tanx-a-mm_34618856_4222645_14288433"&gt;&lt;/a&gt;');
+ tanx_s = document.createElement("script");
+ tanx_s.type = "text/javascript";
+ tanx_s.charset = "gbk";
+ tanx_s.id = "tanx-s-mm_34618856_4222645_14288433";
+ tanx_s.async = true;
+ tanx_s.src = "//p.tanx.com/ex?i=mm_34618856_4222645_14288433";
+ tanx_h = document.getElementsByTagName("head")[0];
+ if (tanx_h) tanx_h.insertBefore(tanx_s, tanx_h.firstChild);
+ </script><ins style="display:inline-block;padding:0;margin:0;width:300px;height:250px;*zoom:1;*display:inline; position:relative;" id="tanxssp-outer-conmm_34618856_4222645_14288433"><div id="tanxssp_con_mm_34618856_4222645_14288433" style="overflow:hidden;display:inline-block;position:relative;width:300px;height:250px;*display:inline;*zoom:1;font:12px/1.5 tahoma,'Hiragino Sans GB','microsoft yahei',sans-serif;"><iframe id="tanxssp-tuwen-iframemm_34618856_4222645_14288433" src="https://a1.alicdn.com/creation/html/2016/06/20/creation-245057E3sJ6U0UZ8D-2830683.html?tanxdspv=http%3a%2f%2frdstat.tanx.com%2ftrd%3ff%3d%26k%3da09e279ad7f7a12a%26p%3dmm_34618856_4222645_14288433%26pvid%3d0bfbf7ce000058c66838795200615331%26s%3d300x250%26d%3d0%26t%3d1489397816&amp;pid=mm_34618856_4222645_14288433&amp;tp=5&amp;tsid=0bfbf7ce000058c66838795200615331&amp;pid=mm_34618856_4222645_14288433" style="width:300px;height:250px" border="0" marginwidth="0" marginheight="0" scrolling="no" allowtransparency="true" frameborder="0"></iframe><a id="sxmm_34618856_4222645_14288433" href="javascript:;" style="width:20px;height:13px;right:0px;bottom:0px;display:block;position:absolute;cursor:pointer;z-index:250;margin:0;"> <span id="sx1mm_34618856_4222645_14288433" style="float:none;width:20px;display:block;height:13px;"><img src="//atanx.alicdn.com/t/img/TB1tWvVJFXXXXc_aXXXXXXXXXXX-40-26.png" style="width:20px;height:13px;margin:auto;display:block;min-height:13px;" border="0/" /></span><div id="sxtipmm_34618856_4222645_14288433" style="display:none;position:absolute;left:-38px;bottom:13px;"><img src="//atanx.alicdn.com/t/img/TB1upAiJXXXXXa5aXXXXXXXXXXX-116-30.png" style="width:58px;height:15px;margin:auto;display:block;min-height:15px;" border="0" /></div></a></div></ins>
+ <a style="display:none!important" id="tanx-a-mm_34618856_4222645_14288433"></a>
+ </div>
+ <div class="clear"></div>
+ <!--1812-->
+ <!--1813-->
+ <!-- 公共三级页 右侧热点推荐(文)&AD(拷贝) -->
+ <!--2387-->
+ <div class="yytj">
+ <ul style="width:300px;margin-bottom:0px;border-top:1px solid #d3d3d3;">
+ <script type="text/javascript">
+ get_wz_rtph2()
+ </script>
+ <li>
+ <a target="_blank" href="http://news.d.youth.cn/news/201607/t20160714_8282347.htm" onclick="_hmt.push(['_trackEvent', 'hl_3Jyc1', 'click', 'literature'])"><img src="http://d.youth.cn/qwtf2015/wzy/rtph2/201506/W020160714573239657025.jpg" alt="美国孕妇河中分娩走红" height="100" width="140" /></a>
+ <p><a href="http://news.d.youth.cn/news/201607/t20160714_8282347.htm" onclick="_hmt.push(['_trackEvent', 'hl_3Jyc1', 'click', 'literature'])">美国孕妇河中分娩走红</a></p>
+ </li>
+ <li>
+ <a target="_blank" href="http://news.d.youth.cn/news/201607/t20160714_8282337.htm" onclick="_hmt.push(['_trackEvent', 'hl_3Jyc2', 'click', 'literature'])"><img src="http://d.youth.cn/qwtf2015/wzy/rtph2/201506/W020160714573440760368.jpg" alt="抢尽风头的最美伴娘" height="100" width="140" /></a>
+ <p><a href="http://news.d.youth.cn/news/201607/t20160714_8282337.htm" onclick="_hmt.push(['_trackEvent', 'hl_3Jyc2', 'click', 'literature'])">抢尽风头的最美伴娘</a></p>
+ </li>
+ <li>
+ <a target="_blank" href="http://news.d.youth.cn/news/201607/t20160714_8282327.htm" onclick="_hmt.push(['_trackEvent', 'hl_3Jyc3', 'click', 'literature'])"><img src="http://d.youth.cn/qwtf2015/wzy/rtph2/201506/W020160714573625412280.jpg" alt="郑州男子入室盗窃强奸" height="100" width="140" /></a>
+ <p><a href="http://news.d.youth.cn/news/201607/t20160714_8282327.htm" onclick="_hmt.push(['_trackEvent', 'hl_3Jyc3', 'click', 'literature'])">郑州男子入室盗窃强奸</a></p>
+ </li>
+ <li>
+ <a target="_blank" href="http://news.d.youth.cn/news/201607/t20160714_8282329.htm" onclick="_hmt.push(['_trackEvent', 'hl_3Jyc4', 'click', 'literature'])"><img src="http://d.youth.cn/qwtf2015/wzy/rtph2/201506/W020160714573823818109.jpg" alt="湖南飞天山惊现千年悬棺" height="100" width="140" /></a>
+ <p><a href="http://news.d.youth.cn/news/201607/t20160714_8282329.htm" onclick="_hmt.push(['_trackEvent', 'hl_3Jyc4', 'click', 'literature'])">湖南飞天山惊现千年悬棺</a></p>
+ </li>
+ </ul>
+ </div>
+ <div class="clear"></div>
+ <!--2387-->
+ <div class="clear"></div>
+ <div class="yytj1">
+ <div class="yytj1_nav"><span class="bk">热点</span>
+ <p>推荐</p>
+ </div>
+ <ul class="tj3">
+ <li><a href="http://photo.youth.cn/2013/0422/44034.shtml" title="篮球宝贝海边拍比基尼写真 大秀火辣身材">篮球宝贝海边拍比基尼写真 大秀火辣...</a></li>
+ <li><a href="http://photo.youth.cn/2013/0422/44033.shtml" title="篮球寄托希望!灾难后,用体育抚慰伤口">篮球寄托希望!灾难后,用体育抚慰伤口</a></li>
+ <li><a href="http://school.youth.cn/photo/sjjl/2013/0422/44028.shtml" title="西华师范大学社庆祈福 雅安加油">西华师范大学社庆祈福 雅安加油</a></li>
+ <li><a href="http://school.youth.cn/photo/sjjl/2013/0421/44008.shtml" title="高校学生祈福灾区 四川挺住雅安不哭">高校学生祈福灾区 四川挺住雅安不哭</a></li>
+ <li><a href="http://photo.youth.cn/2013/0419/43862.shtml" title="皇帝的新衣:全裸人体彩绘COS艺术家">皇帝的新衣:全裸人体彩绘COS艺术家</a></li>
+ <li><a href="http://photo.youth.cn/2013/0419/43861.shtml" title="皇马元老再聚首 齐祖菲戈元老慈善赛">皇马元老再聚首 齐祖菲戈元老慈善赛</a></li>
+ <li><a href="http://photo.youth.cn/2013/0419/43494.shtml" title="比基尼美女惹火大片 演绎海边极致曲线诱惑">比基尼美女惹火大片 演绎海边极致曲...</a></li>
+ <div class="clear"></div>
+ </ul>
+ </div>
+ <div class="clear"></div>
+ <div class="ad003">
+ <!-- AdSame ShowCode: 中国青年网 / 教育频道 / 信息页右画中画2 Begin -->
+ <!-- <script type="text/javascript" src="http://publish.ad.youth.cn/s?z=youth&c=434" charset="gbk"></script> -->
+ <!-- AdSame ShowCode: 中国青年网 / 教育频道 / 信息页右画中画2 End -->
+ </div>
+ <div class="clear"></div>
+ <div class="ad003" style="margin-top:10px;">
+ <!-- AdSame ShowCode: 中国青年网 / 教育频道 / 信息页画中画9 Begin -->
+ <!-- <script type="text/javascript" src="http://publish.ad.youth.cn/s?z=youth&c=449" charset="gbk"></script> -->
+ <!-- AdSame ShowCode: 中国青年网 / 教育频道 / 信息页画中画9 End -->
+ </div>
+ <div class="clear"></div>
+ <!--1813-->
+ <!--1814-->
+ <!-- 公共三级页 右侧热搜排行(拷贝) -->
+ <!--2390-->
+ <div class="yytj">
+ <div class="yytjs_nav"><span class="bk">热搜</span>
+ <p>排行</p>
+ </div>
+ <ul>
+ <script type="text/javascript">
+ get_wz_rsph()
+ </script>
+ <li>
+ <a target="_blank" href="http://news.d.youth.cn/news/201607/t20160714_8280541.htm" onclick="_hmt.push(['_trackEvent', 'hl_rsph1', 'click', 'literature'])"><img src="http://d.youth.cn/qwtf2015/wzy/rsph/201506/W020160714574130058490.jpg" alt="女子遭裸杀前夫被捕微笑" height="100" width="140" /></a>
+ <p><a href="http://news.d.youth.cn/news/201607/t20160714_8280541.htm" onclick="_hmt.push(['_trackEvent', 'hl_rsph1', 'click', 'literature'])">女子遭裸杀前夫被捕微笑</a></p>
+ </li>
+ <li>
+ <a target="_blank" href="http://news.d.youth.cn/news/201607/t20160714_8282533.htm" onclick="_hmt.push(['_trackEvent', 'hl_rsph2', 'click', 'literature'])"><img src="http://d.youth.cn/qwtf2015/wzy/rsph/201506/W020160714574684855114.jpg" alt="沈阳现“3D稻田画”" height="100" width="140" /></a>
+ <p><a href="http://news.d.youth.cn/news/201607/t20160714_8282533.htm" onclick="_hmt.push(['_trackEvent', 'hl_rsph2', 'click', 'literature'])">沈阳现“3D稻田画”</a></p>
+ </li>
+ <li>
+ <a target="_blank" href="http://news.d.youth.cn/news/201607/t20160714_8282534.htm" onclick="_hmt.push(['_trackEvent', 'hl_rsph3', 'click', 'literature'])"><img src="http://d.youth.cn/qwtf2015/wzy/rsph/201506/W020160714574904869909.jpg" alt="郭晶晶情歌示爱霍启刚" height="100" width="140" /></a>
+ <p><a href="http://news.d.youth.cn/news/201607/t20160714_8282534.htm" onclick="_hmt.push(['_trackEvent', 'hl_rsph3', 'click', 'literature'])">郭晶晶情歌示爱霍启刚</a></p>
+ </li>
+ <li>
+ <a target="_blank" href="http://news.d.youth.cn/news/201607/t20160714_8282562.htm" onclick="_hmt.push(['_trackEvent', 'hl_rsph4', 'click', 'literature'])"><img src="http://d.youth.cn/qwtf2015/wzy/rsph/201506/W020160714575330896977.jpg" alt="美女水下与鲨鱼共舞" height="100" width="140" /></a>
+ <p><a href="http://news.d.youth.cn/news/201607/t20160714_8282562.htm" onclick="_hmt.push(['_trackEvent', 'hl_rsph4', 'click', 'literature'])">美女水下与鲨鱼共舞</a></p>
+ </li>
+ </ul>
+ <div class="clear"></div>
+ </div>
+ <div class="clear"></div>
+ <!--2390-->
+ <div class="clear"></div>
+ <!--1814-->
+ <!--1075-->
+ <!-- 公共三级页 右侧新闻热搜词(公共) -->
+ <style>
+ .gulike360_newsLi {
+ text-align: left;
+ }
+
+ .gulike360_wrapper_news {
+ text-align: left;
+ font: 14px "宋体", "Arial", sans-serif;
+ color: #003366;
+ padding: 0 0 10px 10px;
+ }
+
+ .gulike360_wrapper_news h3.gulike360_title {
+ font-size: 20px;
+ color: #333;
+ height: 35px;
+ line-height: 35px;
+ .gulike360_wrapper_news ul.gulike360_newsUl {
+ border-top: 1px solid #d6d6d6;
+ padding-top: 13px;
+ list-style: none;
+ }
+ .gulike360_wrapper_news li.gulike360_newsLi {
+ height: 30px;
+ line-height: 30px;
+ padding-left: 14px;
+ background: url(http://p2.qhimg.com/d/inn/c366a750/disc.png) no-repeat 0 13px;
+ }
+ .gulike360_wrapper_news li a.gulike360_newsLink {
+ color: #333;
+ display: block;
+ width: 100%;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+ .gulike360_wrapper_news li a.gulike360_newsLink:hover {
+ color: #333;
+ text-decoration: underline;
+ }
+ </style>
+ <!--1075-->
+ <!--1815-->
+ <!-- 公共三级页 右侧视觉焦点&上下AD(拷贝) -->
+ <div class="ad005" style="margin-top:10px">
+ <!-- AdSame ShowCode: 中国青年网 / 教育频道 / 信息页画中画4 Begin -->
+ <!-- <script type="text/javascript" src="http://publish.ad.youth.cn/s?z=youth&c=435" charset="gbk"></script> -->
+ <!-- AdSame ShowCode: 中国青年网 / 教育频道 / 信息页画中画4 End -->
+ </div>
+ <div class="clear"></div>
+
+ <div class="yytj">
+ <div class="yytjj_nav"><span class="bk">视觉</span>
+ <p>焦点</p>
+ </div>
+ <ul>
+ <li>
+ <a href="http://youxi.youth.cn/2011/1114/69765.shtml" title="Activision《使命召唤9》将2012年第四季发售"><img src="../../../images/thumb_140_100_7_11141036306491.jpg" alt="Activision《使命召唤9》将2012年第四季发售" height="100" width="140" /></a>
+ <p><a href="http://youxi.youth.cn/2011/1114/69765.shtml" title="Activision《使命召唤9》将2012年第四季发售">Activision《使命召唤9...</a></p>
+ </li>
+ <li>
+ <a href="http://youxi.youth.cn/2011/1114/69758.shtml" title="文化部批评迅雷风行 网游低俗营销屡禁不止"><img src="../../../images/thumb_140_100_7_1114095IH418.jpg" alt="文化部批评迅雷风行 网游低俗营销屡禁不止" height="100" width="140" /></a>
+ <p><a href="http://youxi.youth.cn/2011/1114/69758.shtml" title="文化部批评迅雷风行 网游低俗营销屡禁不止">文化部批评迅雷风行 网...</a></p>
+ </li>
+ </ul>
+ </div>
+ <div class="clear"></div>
+ <div class="ad005">
+ <!-- AdSame ShowCode: 中国青年网 / 教育频道 / 信息页文字链/画中画5 Begin -->
+ <!-- <script type="text/javascript" src="http://publish.ad.youth.cn/s?z=youth&c=436" charset="gbk"></script> -->
+ <!-- AdSame ShowCode: 中国青年网 / 教育频道 / 信息页文字链/画中画5 End -->
+ </div>
+ <div class="clear"></div>
+ <div class="ad005" style="margin-top:10px">
+ <!-- AdSame ShowCode: 中国青年网 / 教育频道 / 信息页画中画6 Begin -->
+ <!-- <script type="text/javascript" src="http://publish.ad.youth.cn/s?z=youth&c=437" charset="gbk"></script> -->
+ <!-- AdSame ShowCode: 中国青年网 / 教育频道 / 信息页画中画6 End -->
+ </div>
+ <div class="clear"></div>
+ <script>
+ get_bjnrtjnews_byref();
+ </script>
+ <div class="clear"></div>
+ <!--1815-->
+ <!--1816-->
+ <!-- 公共三级页 右侧48小时点击排行&AD(拷贝) -->
+ <div class="zt_tab">
+ <div id="tabs0">
+ <ul class="menu0" id="menu0">
+ <li onclick="setTab(0,0)" class="hover">48小时点击排行</li>
+ </ul>
+ <div class="main0" id="main0">
+ <ul class="block">
+ <li><span class="mun01">1</span>
+
+ <a href="http://edu.youth.cn/2015/1123/2882433.shtml" target="_blank">关注农村娃成长:部分孩子在城市中因贫困自</a>
+ </li>
+ <li><span class="mun01">2</span>
+
+ <a href="http://edu.youth.cn/2015/1123/2882481.shtml" target="_blank">艺考生扎堆高校旁忙“冲刺” 短租房现一房</a>
+ </li>
+ <li><span class="mun01">3</span>
+
+ <a href="http://edu.youth.cn/2015/1124/2888737.shtml" target="_blank">上海一幼儿园班主任私自招生:班里多出21名</a>
+ </li>
+ <li><span class="mun01">4</span>
+
+ <a href="http://edu.youth.cn/2015/1124/2888583.shtml" target="_blank">南京19岁女大学生宿舍猝死:亲属质疑 死因成</a>
+ </li>
+ <li><span class="mun01">5</span>
+
+ <a href="http://edu.youth.cn/2015/1124/2887701.shtml" target="_blank">中传学生发起“阅读量调查”反对贴标签</a>
+ </li>
+ <li><span class="mun01">6</span>
+
+ <a href="http://edu.youth.cn/2015/1124/2887707.shtml" target="_blank">高校求职“待定族”增多 求职服务能否“包</a>
+ </li>
+ <li><span class="mun01">7</span>
+
+ <a href="http://edu.youth.cn/2015/1124/2889973.shtml" target="_blank">“网红”圈的台前幕后:顶尖女主播身价数千</a>
+ </li>
+ <div style="clear:both"></div>
+ </ul>
+ </div>
+ </div>
+ <div style="clear:both"></div>
+ </div>
+ <div class="clear"></div>
+ <div class="ad005">
+ <!-- AdSame ShowCode: 中国青年网 / 教育频道 / 信息页画中画7 Begin -->
+ <!-- <script type="text/javascript" src="http://publish.ad.youth.cn/s?z=youth&c=438" charset="gbk"></script> -->
+ <!-- AdSame ShowCode: 中国青年网 / 教育频道 / 信息页画中画7 End -->
+ </div>
+ <div class="clear"></div>
+ <!--1816-->
+ <!--1817-->
+ <!-- 公共三级页 右侧精华推荐&AD(拷贝) -->
+ <div class="jctj" style="height:455px;">
+ <div class="jctj_nav"><span class="bk">精华</span>
+ <p>推荐</p>
+ </div>
+ <div class="jctj_l">
+ <a href="http://school.youth.cn/tx/news/2013/0630/97785.shtml" title="女性养生:女人最易老的身体禁区 男人千万别看"><img src="../../../images/thumb_100_70_1372553783760.jpg" alt="女性养生:女人最易老的身体禁区 男人千万别看" height="70" width="100" /></a>
+ </div>
+ <div class="jctj_r"><a href="http://school.youth.cn/tx/news/2013/0630/97785.shtml" title="女性养生:女人最易老的身体禁区 男人千万别看">女性养生:女人最易老的身体...</a></div>
+ <div class="jctj_l">
+ <a href="http://school.youth.cn/tx/news/2013/0630/97764.shtml" title="会是神器吗?口香糖大小设备可运行iOS游戏"><img src="../../../images/thumb_100_70_1372548043500.jpg" alt="会是神器吗?口香糖大小设备可运行iOS游戏" height="70" width="100" /></a>
+ </div>
+ <div class="jctj_r"><a href="http://school.youth.cn/tx/news/2013/0630/97764.shtml" title="会是神器吗?口香糖大小设备可运行iOS游戏">会是神器吗?口香糖大小设备...</a></div>
+ <div class="jctj_l">
+ <a href="http://school.youth.cn/tx/news/2013/0629/97752.shtml" title="盘点NBA5大选秀日操作影响 谁是最大赢家"><img src="../../../images/thumb_100_70_1372496480745.jpg" alt="盘点NBA5大选秀日操作影响 谁是最大赢家" height="70" width="100" /></a>
+ </div>
+ <div class="jctj_r"><a href="http://school.youth.cn/tx/news/2013/0629/97752.shtml" title="盘点NBA5大选秀日操作影响 谁是最大赢家">盘点NBA5大选秀日操作影响 ...</a></div>
+ <div class="jctj_l">
+ <a href="http://photo.youth.cn/2013/0629/96639.shtml" title="“英超女神”墨西哥戏水 双峰全裸尺度惊人"><img src="../../../images/thumb_100_70_1372045720214.jpg" alt="“英超女神”墨西哥戏水 双峰全裸尺度惊人" height="70" width="100" /></a>
+ </div>
+ <div class="jctj_r"><a href="http://photo.youth.cn/2013/0629/96639.shtml" title="“英超女神”墨西哥戏水 双峰全裸尺度惊人">“英超女神”墨西哥戏水 双...</a></div>
+ <div class="jctj_l">
+ <a href="http://school.youth.cn/tx/news/2013/0629/97689.shtml" title="杨幂石天琦刘诗诗柳岩 六月银幕御姐齐发力"><img src="../../../images/thumb_100_70_1372468067229.jpg" alt="杨幂石天琦刘诗诗柳岩 六月银幕御姐齐发力" height="70" width="100" /></a>
+ </div>
+ <div class="jctj_r"><a href="http://school.youth.cn/tx/news/2013/0629/97689.shtml" title="杨幂石天琦刘诗诗柳岩 六月银幕御姐齐发力">杨幂石天琦刘诗诗柳岩 六月...</a></div>
+ <div class="clear"></div>
+ </div>
+
+
+ <div class="clear"></div>
+ <div class="ad005">
+ <!-- AdSame ShowCode: 中国青年网 / 教育频道 / 信息页画中画8 Begin -->
+ <!-- <script type="text/javascript" src="http://publish.ad.youth.cn/s?z=youth&c=447" charset="gbk"></script> -->
+ <!-- AdSame ShowCode: 中国青年网 / 教育频道 / 信息页画中画8 End -->
+ </div>
+ <div class="clear"></div>
+
+ <!--底部通栏start-->
+ </div>
+ </div>
+ <div class="clear"></div>
+ <div style="width:960px;margin:0 auto;">
+ <!-- 广告位:教育频道信息页底部通栏1 -->
+ <script type="text/javascript">
+ BAIDU_CLB_SLOT_ID = "1060215";
+ </script>
+ <script type="text/javascript" src="//cbjs.baidu.com/js/o.js"></script>
+ <div id="BAIDU_SSP__wrapper_1060215_0"></div>
+ <script charset="utf-8" src="http://pos.baidu.com/tcnm?di=1060215&amp;dri=0&amp;dis=0&amp;dai=1&amp;ps=3354x238&amp;dcb=___adblockplus&amp;dtm=SSP_JSONP&amp;dvi=0.0&amp;dci=-1&amp;dpt=none&amp;tsr=0&amp;tpr=1489397815909&amp;ti=%E6%B5%B7%E5%A4%96%E7%95%99%E5%AD%A6%E7%94%9F%E7%9C%8B%E4%B8%A4%E4%BC%9A%EF%BC%9A%E5%87%BA%E5%9B%BD%E5%89%8D%E5%90%8E%E5%85%B3%E6%B3%A8%E7%82%B9%E5%A4%A7%E4%B8%8D%E5%90%8C_%E6%95%99%E8%82%B2%E9%A2%91%E9%81%93_%E4%B8%AD%E5%9B%BD%E9%9D%92%E5%B9%B4%E7%BD%91&amp;ari=2&amp;dbv=0&amp;drs=1&amp;pcs=1436x798&amp;pss=1436x3354&amp;cfv=21&amp;cpl=1&amp;chi=2&amp;cce=true&amp;cec=UTF-8&amp;tlm=1489397815&amp;rw=798&amp;ltu=http%3A%2F%2Fedu.youth.cn%2Fjyzx%2Fjyxw%2F201703%2Ft20170310_9260562.htm&amp;ecd=1&amp;uc=1436x877&amp;pis=-1x-1&amp;ccd=24&amp;cja=false&amp;cmi=2&amp;col=en-US&amp;cdo=-1&amp;sr=1440x900&amp;tcn=1489397816"></script>
+ <!-- 广告位:教育频道信息页底部通栏1 -->
+ </div>
+ <div style="width:960px;margin:5px auto;">
+ <!-- 广告位:教育频道信息页底部通栏2 -->
+ <script type="text/javascript">
+ BAIDU_CLB_SLOT_ID = "1060217";
+ </script>
+ <script type="text/javascript" src="//cbjs.baidu.com/js/o.js"></script>
+ <div id="BAIDU_SSP__wrapper_1060217_0"></div>
+ <script charset="utf-8" src="http://pos.baidu.com/tcnm?di=1060217&amp;dri=0&amp;dis=0&amp;dai=2&amp;ps=3602x238&amp;dcb=___adblockplus&amp;dtm=SSP_JSONP&amp;dvi=0.0&amp;dci=-1&amp;dpt=none&amp;tsr=0&amp;tpr=1489397815909&amp;ti=%E6%B5%B7%E5%A4%96%E7%95%99%E5%AD%A6%E7%94%9F%E7%9C%8B%E4%B8%A4%E4%BC%9A%EF%BC%9A%E5%87%BA%E5%9B%BD%E5%89%8D%E5%90%8E%E5%85%B3%E6%B3%A8%E7%82%B9%E5%A4%A7%E4%B8%8D%E5%90%8C_%E6%95%99%E8%82%B2%E9%A2%91%E9%81%93_%E4%B8%AD%E5%9B%BD%E9%9D%92%E5%B9%B4%E7%BD%91&amp;ari=2&amp;dbv=0&amp;drs=1&amp;pcs=1436x798&amp;pss=1436x3602&amp;cfv=21&amp;cpl=1&amp;chi=2&amp;cce=true&amp;cec=UTF-8&amp;tlm=1489397816&amp;rw=798&amp;ltu=http%3A%2F%2Fedu.youth.cn%2Fjyzx%2Fjyxw%2F201703%2Ft20170310_9260562.htm&amp;ecd=1&amp;uc=1436x877&amp;pis=-1x-1&amp;ccd=24&amp;cja=false&amp;cmi=2&amp;col=en-US&amp;cdo=-1&amp;sr=1440x900&amp;tcn=1489397816"></script>
+ <!-- 广告位:教育频道信息页底部通栏2 -->
+ </div>
+ <div>
+ <div>
+ <!--底部通栏end-->
+
+ <script src="../../../images/public_20140527.js" type="text/javascript" charset="utf-8"></script>
+
+ <!-- 广告位:教育频道信息页弹窗 begin-->
+ <script type="text/javascript">
+ BAIDU_CLB_SLOT_ID = "1052042";
+ </script>
+ <script type="text/javascript" src="../../../images/o.js"></script>
+ <div id="BAIDU_SSP__wrapper_1052042_0"></div>
+ <script charset="utf-8" src="http://pos.baidu.com/tcnm?di=1052042&amp;dri=0&amp;dis=0&amp;dai=3&amp;ps=3602x0&amp;dcb=___adblockplus&amp;dtm=SSP_JSONP&amp;dvi=0.0&amp;dci=-1&amp;dpt=none&amp;tsr=0&amp;tpr=1489397815909&amp;ti=%E6%B5%B7%E5%A4%96%E7%95%99%E5%AD%A6%E7%94%9F%E7%9C%8B%E4%B8%A4%E4%BC%9A%EF%BC%9A%E5%87%BA%E5%9B%BD%E5%89%8D%E5%90%8E%E5%85%B3%E6%B3%A8%E7%82%B9%E5%A4%A7%E4%B8%8D%E5%90%8C_%E6%95%99%E8%82%B2%E9%A2%91%E9%81%93_%E4%B8%AD%E5%9B%BD%E9%9D%92%E5%B9%B4%E7%BD%91&amp;ari=2&amp;dbv=0&amp;drs=1&amp;pcs=1436x798&amp;pss=1436x3602&amp;cfv=21&amp;cpl=1&amp;chi=2&amp;cce=true&amp;cec=UTF-8&amp;tlm=1489397816&amp;rw=798&amp;ltu=http%3A%2F%2Fedu.youth.cn%2Fjyzx%2Fjyxw%2F201703%2Ft20170310_9260562.htm&amp;ecd=1&amp;uc=1436x877&amp;pis=-1x-1&amp;ccd=24&amp;cja=false&amp;cmi=2&amp;col=en-US&amp;cdo=-1&amp;sr=1440x900&amp;tcn=1489397816"></script>
+ <!-- 广告位:教育频道信息页弹窗 end-->
+
+ <!-- AdSame ShowCode: 中国青年网 / 教育频道 / 信息页悬浮 Begin -->
+ <!-- <script type="text/javascript" src="http://publish.ad.youth.cn/s?z=youth&c=442" charset="gbk"></script> -->
+ <!-- AdSame ShowCode: 中国青年网 / 教育频道 / 信息页悬浮 End -->
+
+ <!--1817-->
+ </div>
+ <!--right end-->
+ </div>
+ <!--bottom-->
+ <!--1079-->
+ <!-- 公共三级页 页脚(公共) -->
+ <div style="clear:both;"></div>
+ <div class="foot" style="width:100%">
+ <p><a href="http://ad.youth.cn/gyqw/200803/t20080325_672610.htm">关于我们</a>|<a href="http://www.youth.cn/lxwm/201305/t20130521_3254715.htm">联系我们</a>|<a href="http://ad.youth.cn/">广告服务</a>|<a href="http://news.youth.cn/gn/201202/t20120229_1987294.htm">人才招聘</a>|<a href="http://net.china.cn/">中国互联网举报中心</a> Youth.cn. 请发送qnb至10658000 订阅手机青年报</p>
+ <div class="foot_cxwz">
+ <div style="float:right;">
+ <!--可信网站图片LOGO安装开始-->
+ <script src="//kxlogo.knet.cn/seallogo.dll?sn=e12050911010020690307708&amp;size=0"></script><span style="display:inline-block;position:relative;width:auto;"><a href="https://ss.knet.cn/verifyseal.dll?sn=e12050911010020690307708&amp;ct=df&amp;a=1&amp;pa=0.14167892191596865" id="kx_verify" tabindex="-1" target="_blank" kx_type="图标式" style="display:inline-block;"><img src="http://rr.knet.cn/static/images/logo/cnnic_en.png" style="border:none;" oncontextmenu="return false;" alt="可信网站" /></a></span>
+ <!--可信网站图片LOGO安装结束-->
+ </div>共青团中央主办 共青团中央网络影视中心承办 版权所有:中国青年网</div>
+ <div class="foot_cxwz">信息网络传播视听节目许可证0105108号 京|ICP备11020872号-17 京公网安备110105007246</div>
+ </div>
+ <script src="../../../images/wb.js" type="text/javascript" charset="utf-8"></script>
+ <!-- Start Alexa Certify Javascript -->
+ <script type="text/javascript">
+ _atrk_opts = {
+ atrk_acct: "r+FMm1a4KM+2uW",
+ domain: "youth.cn",
+ dynamic: true
+ };
+ (function() {
+ var as = document.createElement('script');
+ as.type = 'text/javascript';
+ as.async = true;
+ as.src = "https://d31qbv1cthcecs.cloudfront.net/atrk.js";
+ var s = document.getElementsByTagName('script')[0];
+ s.parentNode.insertBefore(as, s);
+ })();
+ </script>
+ <noscript>&lt;img src="https://d5nxst8fruw4z.cloudfront.net/atrk.gif?account=r+FMm1a4KM+2uW" style="display:none" height="1" width="1" alt="" /&gt;</noscript>
+ <!-- End Alexa Certify Javascript -->
+ <div style="display:none;">
+ <script type="text/javascript">
+ var _bdhmProtocol = (("https:" == document.location.protocol) ? " https://" : " http://");
+ document.write(unescape("%3Cscript src='" + _bdhmProtocol + "hm.baidu.com/h.js%3F969516094b342230ceaf065c844d82f3' type='text/javascript'%3E%3C/script%3E"));
+ </script>
+ <script src="%20http://hm.baidu.com/h.js?969516094b342230ceaf065c844d82f3" type="text/javascript"></script>
+ </div>
+ <!--漂浮二维码---->
+ <style>
+ #identifier-pannel {
+ position: fixed;
+ left: 50%;
+ bottom: 0;
+ z-index: 9999;
+ width: 150px;
+ margin-left: 519px;
+ top: 200px;
+ }
+
+ #identifier-pannel a:link,
+ #identifier-pannel a:visited {
+ display: block;
+ padding: 10px;
+ line-height: 18px;
+ font-size: 12px;
+ color: #333;
+ text-decoration: none;
+ white-space: nowrap;
+ text-align: center;
+ background: #f9f9f9;
+ }
+
+ #identifier-pannel a:hover {
+ background: #ccd8db;
+ color: #000;
+ }
+
+ #identifier-pannel img {
+ display: block;
+ margin: 5px auto;
+ border: none;
+ }
+ </style>
+
+ <div id="identifier-pannel" style="color:#000;">
+ <div id="J_swim">
+ <!--<a href="http://www.youth.cn/mobile/?from=qrc" target="_blank">
+ <img style="border:none;" src="http://www.youth.cn/images/1434166218642.png" width="110" height="110" />
+ <p style="width:136px; text-align:center;">扫描二维码进入</p>
+ <p style="width:136px; text-align:center;">“青年之声”移动版</p>
+ <img style="border:none;" src="http://news.youth.cn/images/20151112144331.jpg" width="110" height="110" />
+ <p style="width:136px; text-align:center;">扫描二维码进入</p>
+ <p style="width:136px; text-align:center;">中国青年网公众号</p>
+ </a>-->
+ <!-- <a href="http://edu.youth.cn/2016/0203/3817769.shtml?from=qrc" target="_blank">
+ <img style="border:none;" src="../../../images/1454661965347.jpg" />
+ </a>-->
+ <a id="J_close" href="javascript:void(document.getElementById('identifier-pannel').style.display='none')" target="_self" style="display:inline-block;opacity:0.6;font-family:tahoma,microsoft yahei;position:absolute;top:-2px;right:-1px;width:16px;height:16px;line-height:16px;text-decoration:none;text-align:center;background:#fff;color:#000;filter:Alpha(opacity=60);">x</a>
+ </div>
+ </div>
+
+
+ <!--漂浮二维码-->
+
+ <!--天润绩效-->
+ <div style="display:none">
+ <script type="text/javascript">
+ document.write(unescape("%3Cscript src='//cl5.webterren.com/webdig.js?z=36' type='text/javascript'%3E%3C/script%3E"));
+ </script>
+ <script src="//cl5.webterren.com/webdig.js?z=36" type="text/javascript"></script>
+ <script type="text/javascript">
+ wd_paramtracker("_wdxid=000000000000000000000000000000000000000000")
+ </script>
+ </div>
+ <!--天润绩效-->
+ <!-- START WRating v1.0 -->
+ <script type="text/javascript" src="../../../images/a1.js">
+ </script>
+
+ <!-- END WRating v1.0 -->
+ <!--1079-->
+
+
+</body>
+
+</html>
diff --git a/plugins/af_readability/vendor/autoload.php b/plugins/af_readability/vendor/autoload.php
new file mode 100644
index 000000000..8b491f395
--- /dev/null
+++ b/plugins/af_readability/vendor/autoload.php
@@ -0,0 +1,7 @@
+<?php
+
+// autoload.php @generated by Composer
+
+require_once __DIR__ . '/composer/autoload_real.php';
+
+return ComposerAutoloaderInitb44cc79a0eaef9cd9c2f2ac697cbe9c0::getLoader();
diff --git a/plugins/af_readability/vendor/composer/ClassLoader.php b/plugins/af_readability/vendor/composer/ClassLoader.php
new file mode 100644
index 000000000..247294d66
--- /dev/null
+++ b/plugins/af_readability/vendor/composer/ClassLoader.php
@@ -0,0 +1,479 @@
+<?php
+
+/*
+ * This file is part of Composer.
+ *
+ * (c) Nils Adermann <[email protected]>
+ * Jordi Boggiano <[email protected]>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Composer\Autoload;
+
+/**
+ * ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
+ *
+ * $loader = new \Composer\Autoload\ClassLoader();
+ *
+ * // register classes with namespaces
+ * $loader->add('Symfony\Component', __DIR__.'/component');
+ * $loader->add('Symfony', __DIR__.'/framework');
+ *
+ * // activate the autoloader
+ * $loader->register();
+ *
+ * // to enable searching the include path (eg. for PEAR packages)
+ * $loader->setUseIncludePath(true);
+ *
+ * In this example, if you try to use a class in the Symfony\Component
+ * namespace or one of its children (Symfony\Component\Console for instance),
+ * the autoloader will first look for the class under the component/
+ * directory, and it will then fallback to the framework/ directory if not
+ * found before giving up.
+ *
+ * This class is loosely based on the Symfony UniversalClassLoader.
+ *
+ * @author Fabien Potencier <[email protected]>
+ * @author Jordi Boggiano <[email protected]>
+ * @see https://www.php-fig.org/psr/psr-0/
+ * @see https://www.php-fig.org/psr/psr-4/
+ */
+class ClassLoader
+{
+ private $vendorDir;
+
+ // PSR-4
+ private $prefixLengthsPsr4 = array();
+ private $prefixDirsPsr4 = array();
+ private $fallbackDirsPsr4 = array();
+
+ // PSR-0
+ private $prefixesPsr0 = array();
+ private $fallbackDirsPsr0 = array();
+
+ private $useIncludePath = false;
+ private $classMap = array();
+ private $classMapAuthoritative = false;
+ private $missingClasses = array();
+ private $apcuPrefix;
+
+ private static $registeredLoaders = array();
+
+ public function __construct($vendorDir = null)
+ {
+ $this->vendorDir = $vendorDir;
+ }
+
+ public function getPrefixes()
+ {
+ if (!empty($this->prefixesPsr0)) {
+ return call_user_func_array('array_merge', array_values($this->prefixesPsr0));
+ }
+
+ return array();
+ }
+
+ public function getPrefixesPsr4()
+ {
+ return $this->prefixDirsPsr4;
+ }
+
+ public function getFallbackDirs()
+ {
+ return $this->fallbackDirsPsr0;
+ }
+
+ public function getFallbackDirsPsr4()
+ {
+ return $this->fallbackDirsPsr4;
+ }
+
+ public function getClassMap()
+ {
+ return $this->classMap;
+ }
+
+ /**
+ * @param array $classMap Class to filename map
+ */
+ public function addClassMap(array $classMap)
+ {
+ if ($this->classMap) {
+ $this->classMap = array_merge($this->classMap, $classMap);
+ } else {
+ $this->classMap = $classMap;
+ }
+ }
+
+ /**
+ * Registers a set of PSR-0 directories for a given prefix, either
+ * appending or prepending to the ones previously set for this prefix.
+ *
+ * @param string $prefix The prefix
+ * @param array|string $paths The PSR-0 root directories
+ * @param bool $prepend Whether to prepend the directories
+ */
+ public function add($prefix, $paths, $prepend = false)
+ {
+ if (!$prefix) {
+ if ($prepend) {
+ $this->fallbackDirsPsr0 = array_merge(
+ (array) $paths,
+ $this->fallbackDirsPsr0
+ );
+ } else {
+ $this->fallbackDirsPsr0 = array_merge(
+ $this->fallbackDirsPsr0,
+ (array) $paths
+ );
+ }
+
+ return;
+ }
+
+ $first = $prefix[0];
+ if (!isset($this->prefixesPsr0[$first][$prefix])) {
+ $this->prefixesPsr0[$first][$prefix] = (array) $paths;
+
+ return;
+ }
+ if ($prepend) {
+ $this->prefixesPsr0[$first][$prefix] = array_merge(
+ (array) $paths,
+ $this->prefixesPsr0[$first][$prefix]
+ );
+ } else {
+ $this->prefixesPsr0[$first][$prefix] = array_merge(
+ $this->prefixesPsr0[$first][$prefix],
+ (array) $paths
+ );
+ }
+ }
+
+ /**
+ * Registers a set of PSR-4 directories for a given namespace, either
+ * appending or prepending to the ones previously set for this namespace.
+ *
+ * @param string $prefix The prefix/namespace, with trailing '\\'
+ * @param array|string $paths The PSR-4 base directories
+ * @param bool $prepend Whether to prepend the directories
+ *
+ * @throws \InvalidArgumentException
+ */
+ public function addPsr4($prefix, $paths, $prepend = false)
+ {
+ if (!$prefix) {
+ // Register directories for the root namespace.
+ if ($prepend) {
+ $this->fallbackDirsPsr4 = array_merge(
+ (array) $paths,
+ $this->fallbackDirsPsr4
+ );
+ } else {
+ $this->fallbackDirsPsr4 = array_merge(
+ $this->fallbackDirsPsr4,
+ (array) $paths
+ );
+ }
+ } elseif (!isset($this->prefixDirsPsr4[$prefix])) {
+ // Register directories for a new namespace.
+ $length = strlen($prefix);
+ if ('\\' !== $prefix[$length - 1]) {
+ throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
+ }
+ $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
+ $this->prefixDirsPsr4[$prefix] = (array) $paths;
+ } elseif ($prepend) {
+ // Prepend directories for an already registered namespace.
+ $this->prefixDirsPsr4[$prefix] = array_merge(
+ (array) $paths,
+ $this->prefixDirsPsr4[$prefix]
+ );
+ } else {
+ // Append directories for an already registered namespace.
+ $this->prefixDirsPsr4[$prefix] = array_merge(
+ $this->prefixDirsPsr4[$prefix],
+ (array) $paths
+ );
+ }
+ }
+
+ /**
+ * Registers a set of PSR-0 directories for a given prefix,
+ * replacing any others previously set for this prefix.
+ *
+ * @param string $prefix The prefix
+ * @param array|string $paths The PSR-0 base directories
+ */
+ public function set($prefix, $paths)
+ {
+ if (!$prefix) {
+ $this->fallbackDirsPsr0 = (array) $paths;
+ } else {
+ $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
+ }
+ }
+
+ /**
+ * Registers a set of PSR-4 directories for a given namespace,
+ * replacing any others previously set for this namespace.
+ *
+ * @param string $prefix The prefix/namespace, with trailing '\\'
+ * @param array|string $paths The PSR-4 base directories
+ *
+ * @throws \InvalidArgumentException
+ */
+ public function setPsr4($prefix, $paths)
+ {
+ if (!$prefix) {
+ $this->fallbackDirsPsr4 = (array) $paths;
+ } else {
+ $length = strlen($prefix);
+ if ('\\' !== $prefix[$length - 1]) {
+ throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
+ }
+ $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
+ $this->prefixDirsPsr4[$prefix] = (array) $paths;
+ }
+ }
+
+ /**
+ * Turns on searching the include path for class files.
+ *
+ * @param bool $useIncludePath
+ */
+ public function setUseIncludePath($useIncludePath)
+ {
+ $this->useIncludePath = $useIncludePath;
+ }
+
+ /**
+ * Can be used to check if the autoloader uses the include path to check
+ * for classes.
+ *
+ * @return bool
+ */
+ public function getUseIncludePath()
+ {
+ return $this->useIncludePath;
+ }
+
+ /**
+ * Turns off searching the prefix and fallback directories for classes
+ * that have not been registered with the class map.
+ *
+ * @param bool $classMapAuthoritative
+ */
+ public function setClassMapAuthoritative($classMapAuthoritative)
+ {
+ $this->classMapAuthoritative = $classMapAuthoritative;
+ }
+
+ /**
+ * Should class lookup fail if not found in the current class map?
+ *
+ * @return bool
+ */
+ public function isClassMapAuthoritative()
+ {
+ return $this->classMapAuthoritative;
+ }
+
+ /**
+ * APCu prefix to use to cache found/not-found classes, if the extension is enabled.
+ *
+ * @param string|null $apcuPrefix
+ */
+ public function setApcuPrefix($apcuPrefix)
+ {
+ $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
+ }
+
+ /**
+ * The APCu prefix in use, or null if APCu caching is not enabled.
+ *
+ * @return string|null
+ */
+ public function getApcuPrefix()
+ {
+ return $this->apcuPrefix;
+ }
+
+ /**
+ * Registers this instance as an autoloader.
+ *
+ * @param bool $prepend Whether to prepend the autoloader or not
+ */
+ public function register($prepend = false)
+ {
+ spl_autoload_register(array($this, 'loadClass'), true, $prepend);
+
+ if (null === $this->vendorDir) {
+ return;
+ }
+
+ if ($prepend) {
+ self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
+ } else {
+ unset(self::$registeredLoaders[$this->vendorDir]);
+ self::$registeredLoaders[$this->vendorDir] = $this;
+ }
+ }
+
+ /**
+ * Unregisters this instance as an autoloader.
+ */
+ public function unregister()
+ {
+ spl_autoload_unregister(array($this, 'loadClass'));
+
+ if (null !== $this->vendorDir) {
+ unset(self::$registeredLoaders[$this->vendorDir]);
+ }
+ }
+
+ /**
+ * Loads the given class or interface.
+ *
+ * @param string $class The name of the class
+ * @return bool|null True if loaded, null otherwise
+ */
+ public function loadClass($class)
+ {
+ if ($file = $this->findFile($class)) {
+ includeFile($file);
+
+ return true;
+ }
+ }
+
+ /**
+ * Finds the path to the file where the class is defined.
+ *
+ * @param string $class The name of the class
+ *
+ * @return string|false The path if found, false otherwise
+ */
+ public function findFile($class)
+ {
+ // class map lookup
+ if (isset($this->classMap[$class])) {
+ return $this->classMap[$class];
+ }
+ if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
+ return false;
+ }
+ if (null !== $this->apcuPrefix) {
+ $file = apcu_fetch($this->apcuPrefix.$class, $hit);
+ if ($hit) {
+ return $file;
+ }
+ }
+
+ $file = $this->findFileWithExtension($class, '.php');
+
+ // Search for Hack files if we are running on HHVM
+ if (false === $file && defined('HHVM_VERSION')) {
+ $file = $this->findFileWithExtension($class, '.hh');
+ }
+
+ if (null !== $this->apcuPrefix) {
+ apcu_add($this->apcuPrefix.$class, $file);
+ }
+
+ if (false === $file) {
+ // Remember that this class does not exist.
+ $this->missingClasses[$class] = true;
+ }
+
+ return $file;
+ }
+
+ /**
+ * Returns the currently registered loaders indexed by their corresponding vendor directories.
+ *
+ * @return self[]
+ */
+ public static function getRegisteredLoaders()
+ {
+ return self::$registeredLoaders;
+ }
+
+ private function findFileWithExtension($class, $ext)
+ {
+ // PSR-4 lookup
+ $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
+
+ $first = $class[0];
+ if (isset($this->prefixLengthsPsr4[$first])) {
+ $subPath = $class;
+ while (false !== $lastPos = strrpos($subPath, '\\')) {
+ $subPath = substr($subPath, 0, $lastPos);
+ $search = $subPath . '\\';
+ if (isset($this->prefixDirsPsr4[$search])) {
+ $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
+ foreach ($this->prefixDirsPsr4[$search] as $dir) {
+ if (file_exists($file = $dir . $pathEnd)) {
+ return $file;
+ }
+ }
+ }
+ }
+ }
+
+ // PSR-4 fallback dirs
+ foreach ($this->fallbackDirsPsr4 as $dir) {
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
+ return $file;
+ }
+ }
+
+ // PSR-0 lookup
+ if (false !== $pos = strrpos($class, '\\')) {
+ // namespaced class name
+ $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
+ . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
+ } else {
+ // PEAR-like class name
+ $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
+ }
+
+ if (isset($this->prefixesPsr0[$first])) {
+ foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
+ if (0 === strpos($class, $prefix)) {
+ foreach ($dirs as $dir) {
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
+ return $file;
+ }
+ }
+ }
+ }
+ }
+
+ // PSR-0 fallback dirs
+ foreach ($this->fallbackDirsPsr0 as $dir) {
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
+ return $file;
+ }
+ }
+
+ // PSR-0 include paths.
+ if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
+ return $file;
+ }
+
+ return false;
+ }
+}
+
+/**
+ * Scope isolated include.
+ *
+ * Prevents access to $this/self from included files.
+ */
+function includeFile($file)
+{
+ include $file;
+}
diff --git a/plugins/af_readability/vendor/composer/InstalledVersions.php b/plugins/af_readability/vendor/composer/InstalledVersions.php
new file mode 100644
index 000000000..5fe76426f
--- /dev/null
+++ b/plugins/af_readability/vendor/composer/InstalledVersions.php
@@ -0,0 +1,301 @@
+<?php
+
+
+
+
+
+
+
+
+
+
+
+namespace Composer;
+
+use Composer\Autoload\ClassLoader;
+use Composer\Semver\VersionParser;
+
+
+
+
+
+
+class InstalledVersions
+{
+private static $installed = array (
+ 'root' =>
+ array (
+ 'pretty_version' => 'dev-master',
+ 'version' => 'dev-master',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '1baf8c521785ab4dc8f474fdd772280737c7e254',
+ 'name' => '__root__',
+ ),
+ 'versions' =>
+ array (
+ '__root__' =>
+ array (
+ 'pretty_version' => 'dev-master',
+ 'version' => 'dev-master',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '1baf8c521785ab4dc8f474fdd772280737c7e254',
+ ),
+ 'andreskrey/readability.php' =>
+ array (
+ 'pretty_version' => 'v2.1.0',
+ 'version' => '2.1.0.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '7617a912b6c527909168f5d41d263792f171c42a',
+ ),
+ 'psr/log' =>
+ array (
+ 'pretty_version' => '1.1.3',
+ 'version' => '1.1.3.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '0f73288fd15629204f9d42b7055f72dacbe811fc',
+ ),
+ ),
+);
+private static $canGetVendors;
+private static $installedByVendor = array();
+
+
+
+
+
+
+
+public static function getInstalledPackages()
+{
+$packages = array();
+foreach (self::getInstalled() as $installed) {
+$packages[] = array_keys($installed['versions']);
+}
+
+
+if (1 === \count($packages)) {
+return $packages[0];
+}
+
+return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
+}
+
+
+
+
+
+
+
+
+
+public static function isInstalled($packageName)
+{
+foreach (self::getInstalled() as $installed) {
+if (isset($installed['versions'][$packageName])) {
+return true;
+}
+}
+
+return false;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+public static function satisfies(VersionParser $parser, $packageName, $constraint)
+{
+$constraint = $parser->parseConstraints($constraint);
+$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
+
+return $provided->matches($constraint);
+}
+
+
+
+
+
+
+
+
+
+
+public static function getVersionRanges($packageName)
+{
+foreach (self::getInstalled() as $installed) {
+if (!isset($installed['versions'][$packageName])) {
+continue;
+}
+
+$ranges = array();
+if (isset($installed['versions'][$packageName]['pretty_version'])) {
+$ranges[] = $installed['versions'][$packageName]['pretty_version'];
+}
+if (array_key_exists('aliases', $installed['versions'][$packageName])) {
+$ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
+}
+if (array_key_exists('replaced', $installed['versions'][$packageName])) {
+$ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
+}
+if (array_key_exists('provided', $installed['versions'][$packageName])) {
+$ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
+}
+
+return implode(' || ', $ranges);
+}
+
+throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+}
+
+
+
+
+
+public static function getVersion($packageName)
+{
+foreach (self::getInstalled() as $installed) {
+if (!isset($installed['versions'][$packageName])) {
+continue;
+}
+
+if (!isset($installed['versions'][$packageName]['version'])) {
+return null;
+}
+
+return $installed['versions'][$packageName]['version'];
+}
+
+throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+}
+
+
+
+
+
+public static function getPrettyVersion($packageName)
+{
+foreach (self::getInstalled() as $installed) {
+if (!isset($installed['versions'][$packageName])) {
+continue;
+}
+
+if (!isset($installed['versions'][$packageName]['pretty_version'])) {
+return null;
+}
+
+return $installed['versions'][$packageName]['pretty_version'];
+}
+
+throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+}
+
+
+
+
+
+public static function getReference($packageName)
+{
+foreach (self::getInstalled() as $installed) {
+if (!isset($installed['versions'][$packageName])) {
+continue;
+}
+
+if (!isset($installed['versions'][$packageName]['reference'])) {
+return null;
+}
+
+return $installed['versions'][$packageName]['reference'];
+}
+
+throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+}
+
+
+
+
+
+public static function getRootPackage()
+{
+$installed = self::getInstalled();
+
+return $installed[0]['root'];
+}
+
+
+
+
+
+
+
+public static function getRawData()
+{
+return self::$installed;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+public static function reload($data)
+{
+self::$installed = $data;
+self::$installedByVendor = array();
+}
+
+
+
+
+private static function getInstalled()
+{
+if (null === self::$canGetVendors) {
+self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
+}
+
+$installed = array();
+
+if (self::$canGetVendors) {
+foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
+if (isset(self::$installedByVendor[$vendorDir])) {
+$installed[] = self::$installedByVendor[$vendorDir];
+} elseif (is_file($vendorDir.'/composer/installed.php')) {
+$installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
+}
+}
+}
+
+$installed[] = self::$installed;
+
+return $installed;
+}
+}
diff --git a/plugins/af_readability/vendor/composer/LICENSE b/plugins/af_readability/vendor/composer/LICENSE
new file mode 100644
index 000000000..f27399a04
--- /dev/null
+++ b/plugins/af_readability/vendor/composer/LICENSE
@@ -0,0 +1,21 @@
+
+Copyright (c) Nils Adermann, Jordi Boggiano
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
diff --git a/plugins/af_readability/vendor/composer/autoload_classmap.php b/plugins/af_readability/vendor/composer/autoload_classmap.php
new file mode 100644
index 000000000..b26f1b13b
--- /dev/null
+++ b/plugins/af_readability/vendor/composer/autoload_classmap.php
@@ -0,0 +1,10 @@
+<?php
+
+// autoload_classmap.php @generated by Composer
+
+$vendorDir = dirname(dirname(__FILE__));
+$baseDir = dirname($vendorDir);
+
+return array(
+ 'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
+);
diff --git a/plugins/af_readability/vendor/composer/autoload_namespaces.php b/plugins/af_readability/vendor/composer/autoload_namespaces.php
new file mode 100644
index 000000000..b7fc0125d
--- /dev/null
+++ b/plugins/af_readability/vendor/composer/autoload_namespaces.php
@@ -0,0 +1,9 @@
+<?php
+
+// autoload_namespaces.php @generated by Composer
+
+$vendorDir = dirname(dirname(__FILE__));
+$baseDir = dirname($vendorDir);
+
+return array(
+);
diff --git a/plugins/af_readability/vendor/composer/autoload_psr4.php b/plugins/af_readability/vendor/composer/autoload_psr4.php
new file mode 100644
index 000000000..ea111d957
--- /dev/null
+++ b/plugins/af_readability/vendor/composer/autoload_psr4.php
@@ -0,0 +1,11 @@
+<?php
+
+// autoload_psr4.php @generated by Composer
+
+$vendorDir = dirname(dirname(__FILE__));
+$baseDir = dirname($vendorDir);
+
+return array(
+ 'andreskrey\\Readability\\' => array($vendorDir . '/andreskrey/readability.php/src'),
+ 'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'),
+);
diff --git a/plugins/af_readability/vendor/composer/autoload_real.php b/plugins/af_readability/vendor/composer/autoload_real.php
new file mode 100644
index 000000000..74fc577de
--- /dev/null
+++ b/plugins/af_readability/vendor/composer/autoload_real.php
@@ -0,0 +1,57 @@
+<?php
+
+// autoload_real.php @generated by Composer
+
+class ComposerAutoloaderInitb44cc79a0eaef9cd9c2f2ac697cbe9c0
+{
+ private static $loader;
+
+ public static function loadClassLoader($class)
+ {
+ if ('Composer\Autoload\ClassLoader' === $class) {
+ require __DIR__ . '/ClassLoader.php';
+ }
+ }
+
+ /**
+ * @return \Composer\Autoload\ClassLoader
+ */
+ public static function getLoader()
+ {
+ if (null !== self::$loader) {
+ return self::$loader;
+ }
+
+ require __DIR__ . '/platform_check.php';
+
+ spl_autoload_register(array('ComposerAutoloaderInitb44cc79a0eaef9cd9c2f2ac697cbe9c0', 'loadClassLoader'), true, true);
+ self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
+ spl_autoload_unregister(array('ComposerAutoloaderInitb44cc79a0eaef9cd9c2f2ac697cbe9c0', 'loadClassLoader'));
+
+ $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
+ if ($useStaticLoader) {
+ require __DIR__ . '/autoload_static.php';
+
+ call_user_func(\Composer\Autoload\ComposerStaticInitb44cc79a0eaef9cd9c2f2ac697cbe9c0::getInitializer($loader));
+ } else {
+ $map = require __DIR__ . '/autoload_namespaces.php';
+ foreach ($map as $namespace => $path) {
+ $loader->set($namespace, $path);
+ }
+
+ $map = require __DIR__ . '/autoload_psr4.php';
+ foreach ($map as $namespace => $path) {
+ $loader->setPsr4($namespace, $path);
+ }
+
+ $classMap = require __DIR__ . '/autoload_classmap.php';
+ if ($classMap) {
+ $loader->addClassMap($classMap);
+ }
+ }
+
+ $loader->register(true);
+
+ return $loader;
+ }
+}
diff --git a/plugins/af_readability/vendor/composer/autoload_static.php b/plugins/af_readability/vendor/composer/autoload_static.php
new file mode 100644
index 000000000..3c6721045
--- /dev/null
+++ b/plugins/af_readability/vendor/composer/autoload_static.php
@@ -0,0 +1,44 @@
+<?php
+
+// autoload_static.php @generated by Composer
+
+namespace Composer\Autoload;
+
+class ComposerStaticInitb44cc79a0eaef9cd9c2f2ac697cbe9c0
+{
+ public static $prefixLengthsPsr4 = array (
+ 'a' =>
+ array (
+ 'andreskrey\\Readability\\' => 23,
+ ),
+ 'P' =>
+ array (
+ 'Psr\\Log\\' => 8,
+ ),
+ );
+
+ public static $prefixDirsPsr4 = array (
+ 'andreskrey\\Readability\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/andreskrey/readability.php/src',
+ ),
+ 'Psr\\Log\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/psr/log/Psr/Log',
+ ),
+ );
+
+ public static $classMap = array (
+ 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
+ );
+
+ public static function getInitializer(ClassLoader $loader)
+ {
+ return \Closure::bind(function () use ($loader) {
+ $loader->prefixLengthsPsr4 = ComposerStaticInitb44cc79a0eaef9cd9c2f2ac697cbe9c0::$prefixLengthsPsr4;
+ $loader->prefixDirsPsr4 = ComposerStaticInitb44cc79a0eaef9cd9c2f2ac697cbe9c0::$prefixDirsPsr4;
+ $loader->classMap = ComposerStaticInitb44cc79a0eaef9cd9c2f2ac697cbe9c0::$classMap;
+
+ }, null, ClassLoader::class);
+ }
+}
diff --git a/plugins/af_readability/vendor/composer/installed.json b/plugins/af_readability/vendor/composer/installed.json
new file mode 100644
index 000000000..32d088d27
--- /dev/null
+++ b/plugins/af_readability/vendor/composer/installed.json
@@ -0,0 +1,119 @@
+{
+ "packages": [
+ {
+ "name": "andreskrey/readability.php",
+ "version": "v2.1.0",
+ "version_normalized": "2.1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/andreskrey/readability.php.git",
+ "reference": "7617a912b6c527909168f5d41d263792f171c42a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/andreskrey/readability.php/zipball/7617a912b6c527909168f5d41d263792f171c42a",
+ "reference": "7617a912b6c527909168f5d41d263792f171c42a",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-mbstring": "*",
+ "ext-xml": "*",
+ "php": ">=7.0.0",
+ "psr/log": "^1.0"
+ },
+ "require-dev": {
+ "monolog/monolog": "^1.24",
+ "phpunit/phpunit": "^6.5"
+ },
+ "suggest": {
+ "monolog/monolog": "Allow logging debug information"
+ },
+ "time": "2019-07-22T21:42:25+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "andreskrey\\Readability\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "Andres Rey",
+ "email": "[email protected]",
+ "role": "Lead Developer"
+ }
+ ],
+ "description": "A PHP port of Readability.js",
+ "homepage": "https://github.com/andreskrey/readability",
+ "keywords": [
+ "html",
+ "readability"
+ ],
+ "support": {
+ "issues": "https://github.com/andreskrey/readability.php/issues",
+ "source": "https://github.com/andreskrey/readability.php/tree/v2.1.0"
+ },
+ "install-path": "../andreskrey/readability.php"
+ },
+ {
+ "name": "psr/log",
+ "version": "1.1.3",
+ "version_normalized": "1.1.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/log.git",
+ "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc",
+ "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "time": "2020-03-23T09:12:05+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.1.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Psr\\Log\\": "Psr/Log/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for logging libraries",
+ "homepage": "https://github.com/php-fig/log",
+ "keywords": [
+ "log",
+ "psr",
+ "psr-3"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/log/tree/1.1.3"
+ },
+ "install-path": "../psr/log"
+ }
+ ],
+ "dev": true,
+ "dev-package-names": []
+}
diff --git a/plugins/af_readability/vendor/composer/installed.php b/plugins/af_readability/vendor/composer/installed.php
new file mode 100644
index 000000000..4e25c896e
--- /dev/null
+++ b/plugins/af_readability/vendor/composer/installed.php
@@ -0,0 +1,42 @@
+<?php return array (
+ 'root' =>
+ array (
+ 'pretty_version' => 'dev-master',
+ 'version' => 'dev-master',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '1baf8c521785ab4dc8f474fdd772280737c7e254',
+ 'name' => '__root__',
+ ),
+ 'versions' =>
+ array (
+ '__root__' =>
+ array (
+ 'pretty_version' => 'dev-master',
+ 'version' => 'dev-master',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '1baf8c521785ab4dc8f474fdd772280737c7e254',
+ ),
+ 'andreskrey/readability.php' =>
+ array (
+ 'pretty_version' => 'v2.1.0',
+ 'version' => '2.1.0.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '7617a912b6c527909168f5d41d263792f171c42a',
+ ),
+ 'psr/log' =>
+ array (
+ 'pretty_version' => '1.1.3',
+ 'version' => '1.1.3.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '0f73288fd15629204f9d42b7055f72dacbe811fc',
+ ),
+ ),
+);
diff --git a/plugins/af_readability/vendor/composer/platform_check.php b/plugins/af_readability/vendor/composer/platform_check.php
new file mode 100644
index 000000000..f79e574be
--- /dev/null
+++ b/plugins/af_readability/vendor/composer/platform_check.php
@@ -0,0 +1,26 @@
+<?php
+
+// platform_check.php @generated by Composer
+
+$issues = array();
+
+if (!(PHP_VERSION_ID >= 70000)) {
+ $issues[] = 'Your Composer dependencies require a PHP version ">= 7.0.0". You are running ' . PHP_VERSION . '.';
+}
+
+if ($issues) {
+ if (!headers_sent()) {
+ header('HTTP/1.1 500 Internal Server Error');
+ }
+ if (!ini_get('display_errors')) {
+ if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
+ fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL);
+ } elseif (!headers_sent()) {
+ echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL;
+ }
+ }
+ trigger_error(
+ 'Composer detected issues in your platform: ' . implode(' ', $issues),
+ E_USER_ERROR
+ );
+}
diff --git a/plugins/af_readability/vendor/psr/log/LICENSE b/plugins/af_readability/vendor/psr/log/LICENSE
new file mode 100644
index 000000000..474c952b4
--- /dev/null
+++ b/plugins/af_readability/vendor/psr/log/LICENSE
@@ -0,0 +1,19 @@
+Copyright (c) 2012 PHP Framework Interoperability Group
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/vendor/Psr/Log/AbstractLogger.php b/plugins/af_readability/vendor/psr/log/Psr/Log/AbstractLogger.php
index 90e721af2..90e721af2 100644
--- a/vendor/Psr/Log/AbstractLogger.php
+++ b/plugins/af_readability/vendor/psr/log/Psr/Log/AbstractLogger.php
diff --git a/vendor/Psr/Log/InvalidArgumentException.php b/plugins/af_readability/vendor/psr/log/Psr/Log/InvalidArgumentException.php
index 67f852d1d..67f852d1d 100644
--- a/vendor/Psr/Log/InvalidArgumentException.php
+++ b/plugins/af_readability/vendor/psr/log/Psr/Log/InvalidArgumentException.php
diff --git a/vendor/Psr/Log/LogLevel.php b/plugins/af_readability/vendor/psr/log/Psr/Log/LogLevel.php
index 9cebcace6..9cebcace6 100644
--- a/vendor/Psr/Log/LogLevel.php
+++ b/plugins/af_readability/vendor/psr/log/Psr/Log/LogLevel.php
diff --git a/vendor/Psr/Log/LoggerAwareInterface.php b/plugins/af_readability/vendor/psr/log/Psr/Log/LoggerAwareInterface.php
index 4d64f4786..4d64f4786 100644
--- a/vendor/Psr/Log/LoggerAwareInterface.php
+++ b/plugins/af_readability/vendor/psr/log/Psr/Log/LoggerAwareInterface.php
diff --git a/vendor/Psr/Log/LoggerAwareTrait.php b/plugins/af_readability/vendor/psr/log/Psr/Log/LoggerAwareTrait.php
index 639f79bda..639f79bda 100644
--- a/vendor/Psr/Log/LoggerAwareTrait.php
+++ b/plugins/af_readability/vendor/psr/log/Psr/Log/LoggerAwareTrait.php
diff --git a/plugins/af_readability/vendor/psr/log/Psr/Log/LoggerInterface.php b/plugins/af_readability/vendor/psr/log/Psr/Log/LoggerInterface.php
new file mode 100644
index 000000000..2206cfde4
--- /dev/null
+++ b/plugins/af_readability/vendor/psr/log/Psr/Log/LoggerInterface.php
@@ -0,0 +1,125 @@
+<?php
+
+namespace Psr\Log;
+
+/**
+ * Describes a logger instance.
+ *
+ * The message MUST be a string or object implementing __toString().
+ *
+ * The message MAY contain placeholders in the form: {foo} where foo
+ * will be replaced by the context data in key "foo".
+ *
+ * The context array can contain arbitrary data. The only assumption that
+ * can be made by implementors is that if an Exception instance is given
+ * to produce a stack trace, it MUST be in a key named "exception".
+ *
+ * See https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md
+ * for the full interface specification.
+ */
+interface LoggerInterface
+{
+ /**
+ * System is unusable.
+ *
+ * @param string $message
+ * @param mixed[] $context
+ *
+ * @return void
+ */
+ public function emergency($message, array $context = array());
+
+ /**
+ * Action must be taken immediately.
+ *
+ * Example: Entire website down, database unavailable, etc. This should
+ * trigger the SMS alerts and wake you up.
+ *
+ * @param string $message
+ * @param mixed[] $context
+ *
+ * @return void
+ */
+ public function alert($message, array $context = array());
+
+ /**
+ * Critical conditions.
+ *
+ * Example: Application component unavailable, unexpected exception.
+ *
+ * @param string $message
+ * @param mixed[] $context
+ *
+ * @return void
+ */
+ public function critical($message, array $context = array());
+
+ /**
+ * Runtime errors that do not require immediate action but should typically
+ * be logged and monitored.
+ *
+ * @param string $message
+ * @param mixed[] $context
+ *
+ * @return void
+ */
+ public function error($message, array $context = array());
+
+ /**
+ * Exceptional occurrences that are not errors.
+ *
+ * Example: Use of deprecated APIs, poor use of an API, undesirable things
+ * that are not necessarily wrong.
+ *
+ * @param string $message
+ * @param mixed[] $context
+ *
+ * @return void
+ */
+ public function warning($message, array $context = array());
+
+ /**
+ * Normal but significant events.
+ *
+ * @param string $message
+ * @param mixed[] $context
+ *
+ * @return void
+ */
+ public function notice($message, array $context = array());
+
+ /**
+ * Interesting events.
+ *
+ * Example: User logs in, SQL logs.
+ *
+ * @param string $message
+ * @param mixed[] $context
+ *
+ * @return void
+ */
+ public function info($message, array $context = array());
+
+ /**
+ * Detailed debug information.
+ *
+ * @param string $message
+ * @param mixed[] $context
+ *
+ * @return void
+ */
+ public function debug($message, array $context = array());
+
+ /**
+ * Logs with an arbitrary level.
+ *
+ * @param mixed $level
+ * @param string $message
+ * @param mixed[] $context
+ *
+ * @return void
+ *
+ * @throws \Psr\Log\InvalidArgumentException
+ */
+ public function log($level, $message, array $context = array());
+}
diff --git a/plugins/af_readability/vendor/psr/log/Psr/Log/LoggerTrait.php b/plugins/af_readability/vendor/psr/log/Psr/Log/LoggerTrait.php
new file mode 100644
index 000000000..e392fef0a
--- /dev/null
+++ b/plugins/af_readability/vendor/psr/log/Psr/Log/LoggerTrait.php
@@ -0,0 +1,142 @@
+<?php
+
+namespace Psr\Log;
+
+/**
+ * This is a simple Logger trait that classes unable to extend AbstractLogger
+ * (because they extend another class, etc) can include.
+ *
+ * It simply delegates all log-level-specific methods to the `log` method to
+ * reduce boilerplate code that a simple Logger that does the same thing with
+ * messages regardless of the error level has to implement.
+ */
+trait LoggerTrait
+{
+ /**
+ * System is unusable.
+ *
+ * @param string $message
+ * @param array $context
+ *
+ * @return void
+ */
+ public function emergency($message, array $context = array())
+ {
+ $this->log(LogLevel::EMERGENCY, $message, $context);
+ }
+
+ /**
+ * Action must be taken immediately.
+ *
+ * Example: Entire website down, database unavailable, etc. This should
+ * trigger the SMS alerts and wake you up.
+ *
+ * @param string $message
+ * @param array $context
+ *
+ * @return void
+ */
+ public function alert($message, array $context = array())
+ {
+ $this->log(LogLevel::ALERT, $message, $context);
+ }
+
+ /**
+ * Critical conditions.
+ *
+ * Example: Application component unavailable, unexpected exception.
+ *
+ * @param string $message
+ * @param array $context
+ *
+ * @return void
+ */
+ public function critical($message, array $context = array())
+ {
+ $this->log(LogLevel::CRITICAL, $message, $context);
+ }
+
+ /**
+ * Runtime errors that do not require immediate action but should typically
+ * be logged and monitored.
+ *
+ * @param string $message
+ * @param array $context
+ *
+ * @return void
+ */
+ public function error($message, array $context = array())
+ {
+ $this->log(LogLevel::ERROR, $message, $context);
+ }
+
+ /**
+ * Exceptional occurrences that are not errors.
+ *
+ * Example: Use of deprecated APIs, poor use of an API, undesirable things
+ * that are not necessarily wrong.
+ *
+ * @param string $message
+ * @param array $context
+ *
+ * @return void
+ */
+ public function warning($message, array $context = array())
+ {
+ $this->log(LogLevel::WARNING, $message, $context);
+ }
+
+ /**
+ * Normal but significant events.
+ *
+ * @param string $message
+ * @param array $context
+ *
+ * @return void
+ */
+ public function notice($message, array $context = array())
+ {
+ $this->log(LogLevel::NOTICE, $message, $context);
+ }
+
+ /**
+ * Interesting events.
+ *
+ * Example: User logs in, SQL logs.
+ *
+ * @param string $message
+ * @param array $context
+ *
+ * @return void
+ */
+ public function info($message, array $context = array())
+ {
+ $this->log(LogLevel::INFO, $message, $context);
+ }
+
+ /**
+ * Detailed debug information.
+ *
+ * @param string $message
+ * @param array $context
+ *
+ * @return void
+ */
+ public function debug($message, array $context = array())
+ {
+ $this->log(LogLevel::DEBUG, $message, $context);
+ }
+
+ /**
+ * Logs with an arbitrary level.
+ *
+ * @param mixed $level
+ * @param string $message
+ * @param array $context
+ *
+ * @return void
+ *
+ * @throws \Psr\Log\InvalidArgumentException
+ */
+ abstract public function log($level, $message, array $context = array());
+}
diff --git a/plugins/af_readability/vendor/psr/log/Psr/Log/NullLogger.php b/plugins/af_readability/vendor/psr/log/Psr/Log/NullLogger.php
new file mode 100644
index 000000000..c8f7293b1
--- /dev/null
+++ b/plugins/af_readability/vendor/psr/log/Psr/Log/NullLogger.php
@@ -0,0 +1,30 @@
+<?php
+
+namespace Psr\Log;
+
+/**
+ * This Logger can be used to avoid conditional log calls.
+ *
+ * Logging should always be optional, and if no logger is provided to your
+ * library creating a NullLogger instance to have something to throw logs at
+ * is a good way to avoid littering your code with `if ($this->logger) { }`
+ * blocks.
+ */
+class NullLogger extends AbstractLogger
+{
+ /**
+ * Logs with an arbitrary level.
+ *
+ * @param mixed $level
+ * @param string $message
+ * @param array $context
+ *
+ * @return void
+ *
+ * @throws \Psr\Log\InvalidArgumentException
+ */
+ public function log($level, $message, array $context = array())
+ {
+ // noop
+ }
+}
diff --git a/plugins/af_readability/vendor/psr/log/Psr/Log/Test/DummyTest.php b/plugins/af_readability/vendor/psr/log/Psr/Log/Test/DummyTest.php
new file mode 100644
index 000000000..9638c1101
--- /dev/null
+++ b/plugins/af_readability/vendor/psr/log/Psr/Log/Test/DummyTest.php
@@ -0,0 +1,18 @@
+<?php
+
+namespace Psr\Log\Test;
+
+/**
+ * This class is internal and does not follow the BC promise.
+ *
+ * Do NOT use this class in any way.
+ *
+ * @internal
+ */
+class DummyTest
+{
+ public function __toString()
+ {
+ return 'DummyTest';
+ }
+}
diff --git a/plugins/af_readability/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php b/plugins/af_readability/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php
new file mode 100644
index 000000000..e1e5354d2
--- /dev/null
+++ b/plugins/af_readability/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php
@@ -0,0 +1,138 @@
+<?php
+
+namespace Psr\Log\Test;
+
+use Psr\Log\LoggerInterface;
+use Psr\Log\LogLevel;
+use PHPUnit\Framework\TestCase;
+
+/**
+ * Provides a base test class for ensuring compliance with the LoggerInterface.
+ *
+ * Implementors can extend the class and implement abstract methods to run this
+ * as part of their test suite.
+ */
+abstract class LoggerInterfaceTest extends TestCase
+{
+ /**
+ * @return LoggerInterface
+ */
+ abstract public function getLogger();
+
+ /**
+ * This must return the log messages in order.
+ *
+ * The simple formatting of the messages is: "<LOG LEVEL> <MESSAGE>".
+ *
+ * Example ->error('Foo') would yield "error Foo".
+ *
+ * @return string[]
+ */
+ abstract public function getLogs();
+
+ public function testImplements()
+ {
+ $this->assertInstanceOf('Psr\Log\LoggerInterface', $this->getLogger());
+ }
+
+ /**
+ * @dataProvider provideLevelsAndMessages
+ */
+ public function testLogsAtAllLevels($level, $message)
+ {
+ $logger = $this->getLogger();
+ $logger->{$level}($message, array('user' => 'Bob'));
+ $logger->log($level, $message, array('user' => 'Bob'));
+
+ $expected = array(
+ $level.' message of level '.$level.' with context: Bob',
+ $level.' message of level '.$level.' with context: Bob',
+ );
+ $this->assertEquals($expected, $this->getLogs());
+ }
+
+ public function provideLevelsAndMessages()
+ {
+ return array(
+ LogLevel::EMERGENCY => array(LogLevel::EMERGENCY, 'message of level emergency with context: {user}'),
+ LogLevel::ALERT => array(LogLevel::ALERT, 'message of level alert with context: {user}'),
+ LogLevel::CRITICAL => array(LogLevel::CRITICAL, 'message of level critical with context: {user}'),
+ LogLevel::ERROR => array(LogLevel::ERROR, 'message of level error with context: {user}'),
+ LogLevel::WARNING => array(LogLevel::WARNING, 'message of level warning with context: {user}'),
+ LogLevel::NOTICE => array(LogLevel::NOTICE, 'message of level notice with context: {user}'),
+ LogLevel::INFO => array(LogLevel::INFO, 'message of level info with context: {user}'),
+ LogLevel::DEBUG => array(LogLevel::DEBUG, 'message of level debug with context: {user}'),
+ );
+ }
+
+ /**
+ * @expectedException \Psr\Log\InvalidArgumentException
+ */
+ public function testThrowsOnInvalidLevel()
+ {
+ $logger = $this->getLogger();
+ $logger->log('invalid level', 'Foo');
+ }
+
+ public function testContextReplacement()
+ {
+ $logger = $this->getLogger();
+ $logger->info('{Message {nothing} {user} {foo.bar} a}', array('user' => 'Bob', 'foo.bar' => 'Bar'));
+
+ $expected = array('info {Message {nothing} Bob Bar a}');
+ $this->assertEquals($expected, $this->getLogs());
+ }
+
+ public function testObjectCastToString()
+ {
+ if (method_exists($this, 'createPartialMock')) {
+ $dummy = $this->createPartialMock('Psr\Log\Test\DummyTest', array('__toString'));
+ } else {
+ $dummy = $this->getMock('Psr\Log\Test\DummyTest', array('__toString'));
+ }
+ $dummy->expects($this->once())
+ ->method('__toString')
+ ->will($this->returnValue('DUMMY'));
+
+ $this->getLogger()->warning($dummy);
+
+ $expected = array('warning DUMMY');
+ $this->assertEquals($expected, $this->getLogs());
+ }
+
+ public function testContextCanContainAnything()
+ {
+ $closed = fopen('php://memory', 'r');
+ fclose($closed);
+
+ $context = array(
+ 'bool' => true,
+ 'null' => null,
+ 'string' => 'Foo',
+ 'int' => 0,
+ 'float' => 0.5,
+ 'nested' => array('with object' => new DummyTest),
+ 'object' => new \DateTime,
+ 'resource' => fopen('php://memory', 'r'),
+ 'closed' => $closed,
+ );
+
+ $this->getLogger()->warning('Crazy context data', $context);
+
+ $expected = array('warning Crazy context data');
+ $this->assertEquals($expected, $this->getLogs());
+ }
+
+ public function testContextExceptionKeyCanBeExceptionOrOtherValues()
+ {
+ $logger = $this->getLogger();
+ $logger->warning('Random message', array('exception' => 'oops'));
+ $logger->critical('Uncaught Exception!', array('exception' => new \LogicException('Fail')));
+
+ $expected = array(
+ 'warning Random message',
+ 'critical Uncaught Exception!'
+ );
+ $this->assertEquals($expected, $this->getLogs());
+ }
+}
diff --git a/plugins/af_readability/vendor/psr/log/Psr/Log/Test/TestLogger.php b/plugins/af_readability/vendor/psr/log/Psr/Log/Test/TestLogger.php
new file mode 100644
index 000000000..1be323049
--- /dev/null
+++ b/plugins/af_readability/vendor/psr/log/Psr/Log/Test/TestLogger.php
@@ -0,0 +1,147 @@
+<?php
+
+namespace Psr\Log\Test;
+
+use Psr\Log\AbstractLogger;
+
+/**
+ * Used for testing purposes.
+ *
+ * It records all records and gives you access to them for verification.
+ *
+ * @method bool hasEmergency($record)
+ * @method bool hasAlert($record)
+ * @method bool hasCritical($record)
+ * @method bool hasError($record)
+ * @method bool hasWarning($record)
+ * @method bool hasNotice($record)
+ * @method bool hasInfo($record)
+ * @method bool hasDebug($record)
+ *
+ * @method bool hasEmergencyRecords()
+ * @method bool hasAlertRecords()
+ * @method bool hasCriticalRecords()
+ * @method bool hasErrorRecords()
+ * @method bool hasWarningRecords()
+ * @method bool hasNoticeRecords()
+ * @method bool hasInfoRecords()
+ * @method bool hasDebugRecords()
+ *
+ * @method bool hasEmergencyThatContains($message)
+ * @method bool hasAlertThatContains($message)
+ * @method bool hasCriticalThatContains($message)
+ * @method bool hasErrorThatContains($message)
+ * @method bool hasWarningThatContains($message)
+ * @method bool hasNoticeThatContains($message)
+ * @method bool hasInfoThatContains($message)
+ * @method bool hasDebugThatContains($message)
+ *
+ * @method bool hasEmergencyThatMatches($message)
+ * @method bool hasAlertThatMatches($message)
+ * @method bool hasCriticalThatMatches($message)
+ * @method bool hasErrorThatMatches($message)
+ * @method bool hasWarningThatMatches($message)
+ * @method bool hasNoticeThatMatches($message)
+ * @method bool hasInfoThatMatches($message)
+ * @method bool hasDebugThatMatches($message)
+ *
+ * @method bool hasEmergencyThatPasses($message)
+ * @method bool hasAlertThatPasses($message)
+ * @method bool hasCriticalThatPasses($message)
+ * @method bool hasErrorThatPasses($message)
+ * @method bool hasWarningThatPasses($message)
+ * @method bool hasNoticeThatPasses($message)
+ * @method bool hasInfoThatPasses($message)
+ * @method bool hasDebugThatPasses($message)
+ */
+class TestLogger extends AbstractLogger
+{
+ /**
+ * @var array
+ */
+ public $records = [];
+
+ public $recordsByLevel = [];
+
+ /**
+ * @inheritdoc
+ */
+ public function log($level, $message, array $context = [])
+ {
+ $record = [
+ 'level' => $level,
+ 'message' => $message,
+ 'context' => $context,
+ ];
+
+ $this->recordsByLevel[$record['level']][] = $record;
+ $this->records[] = $record;
+ }
+
+ public function hasRecords($level)
+ {
+ return isset($this->recordsByLevel[$level]);
+ }
+
+ public function hasRecord($record, $level)
+ {
+ if (is_string($record)) {
+ $record = ['message' => $record];
+ }
+ return $this->hasRecordThatPasses(function ($rec) use ($record) {
+ if ($rec['message'] !== $record['message']) {
+ return false;
+ }
+ if (isset($record['context']) && $rec['context'] !== $record['context']) {
+ return false;
+ }
+ return true;
+ }, $level);
+ }
+
+ public function hasRecordThatContains($message, $level)
+ {
+ return $this->hasRecordThatPasses(function ($rec) use ($message) {
+ return strpos($rec['message'], $message) !== false;
+ }, $level);
+ }
+
+ public function hasRecordThatMatches($regex, $level)
+ {
+ return $this->hasRecordThatPasses(function ($rec) use ($regex) {
+ return preg_match($regex, $rec['message']) > 0;
+ }, $level);
+ }
+
+ public function hasRecordThatPasses(callable $predicate, $level)
+ {
+ if (!isset($this->recordsByLevel[$level])) {
+ return false;
+ }
+ foreach ($this->recordsByLevel[$level] as $i => $rec) {
+ if (call_user_func($predicate, $rec, $i)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public function __call($method, $args)
+ {
+ if (preg_match('/(.*)(Debug|Info|Notice|Warning|Error|Critical|Alert|Emergency)(.*)/', $method, $matches) > 0) {
+ $genericMethod = $matches[1] . ('Records' !== $matches[3] ? 'Record' : '') . $matches[3];
+ $level = strtolower($matches[2]);
+ if (method_exists($this, $genericMethod)) {
+ $args[] = $level;
+ return call_user_func_array([$this, $genericMethod], $args);
+ }
+ }
+ throw new \BadMethodCallException('Call to undefined method ' . get_class($this) . '::' . $method . '()');
+ }
+
+ public function reset()
+ {
+ $this->records = [];
+ $this->recordsByLevel = [];
+ }
+}
diff --git a/plugins/af_readability/vendor/psr/log/README.md b/plugins/af_readability/vendor/psr/log/README.md
new file mode 100644
index 000000000..a9f20c437
--- /dev/null
+++ b/plugins/af_readability/vendor/psr/log/README.md
@@ -0,0 +1,58 @@
+PSR Log
+=======
+
+This repository holds all interfaces/classes/traits related to
+[PSR-3](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md).
+
+Note that this is not a logger of its own. It is merely an interface that
+describes a logger. See the specification for more details.
+
+Installation
+------------
+
+```bash
+composer require psr/log
+```
+
+Usage
+-----
+
+If you need a logger, you can use the interface like this:
+
+```php
+<?php
+
+use Psr\Log\LoggerInterface;
+
+class Foo
+{
+ private $logger;
+
+ public function __construct(LoggerInterface $logger = null)
+ {
+ $this->logger = $logger;
+ }
+
+ public function doSomething()
+ {
+ if ($this->logger) {
+ $this->logger->info('Doing work');
+ }
+
+ try {
+ $this->doSomethingElse();
+ } catch (Exception $exception) {
+ $this->logger->error('Oh no!', array('exception' => $exception));
+ }
+
+ // do something useful
+ }
+}
+```
+
+You can then pick one of the implementations of the interface to get a logger.
+
+If you want to implement the interface, you can require this package and
+implement `Psr\Log\LoggerInterface` in your code. Please read the
+[specification text](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md)
+for details.
diff --git a/plugins/af_readability/vendor/psr/log/composer.json b/plugins/af_readability/vendor/psr/log/composer.json
new file mode 100644
index 000000000..3f6d4eea4
--- /dev/null
+++ b/plugins/af_readability/vendor/psr/log/composer.json
@@ -0,0 +1,26 @@
+{
+ "name": "psr/log",
+ "description": "Common interface for logging libraries",
+ "keywords": ["psr", "psr-3", "log"],
+ "homepage": "https://github.com/php-fig/log",
+ "license": "MIT",
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Log\\": "Psr/Log/"
+ }
+ },
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.1.x-dev"
+ }
+ }
+}
diff --git a/plugins/af_redditimgur/init.php b/plugins/af_redditimgur/init.php
index 1aa4793ea..9fd93dde4 100755
--- a/plugins/af_redditimgur/init.php
+++ b/plugins/af_redditimgur/init.php
@@ -1,14 +1,15 @@
<?php
class Af_RedditImgur extends Plugin {
- /* @var PluginHost $host */
+ /** @var PluginHost $host */
private $host;
private $domain_blacklist = [ "github.com" ];
private $dump_json_data = false;
private $fallback_preview_urls = [];
+ private $default_max_score = 100;
function about() {
- return array(1.0,
+ return array(null,
"Inline images (and other content) in Reddit RSS feeds",
"fox");
}
@@ -34,6 +35,9 @@ class Af_RedditImgur extends Plugin {
$enable_readability = $this->host->get($this, "enable_readability");
$enable_content_dupcheck = $this->host->get($this, "enable_content_dupcheck");
$reddit_to_teddit = $this->host->get($this, "reddit_to_teddit");
+ $apply_nsfw_tags = $this->host->get_array($this, "apply_nsfw_tags");
+ $max_score = $this->host->get($this, "max_score", $this->default_max_score);
+ $import_score = $this->host->get($this, "import_score");
?>
<div dojoType="dijit.layout.AccordionPane"
@@ -54,6 +58,14 @@ class Af_RedditImgur extends Plugin {
</script>
<fieldset class='narrow'>
+ <label>
+ <?= __("Apply tags to NSFW posts (comma-separated list):") ?>
+ </label>
+ <input dojoType="dijit.form.TextBox" name="apply_nsfw_tags" size="20"
+ value="<?= htmlspecialchars(implode(", ", $apply_nsfw_tags)) ?>">
+ </fieldset>
+
+ <fieldset class='narrow'>
<label class='checkbox'>
<?= \Controls\checkbox_tag("enable_readability", $enable_readability) ?>
<?= __("Extract missing content using Readability (requires af_readability)") ?>
@@ -75,6 +87,15 @@ class Af_RedditImgur extends Plugin {
</label>
</fieldset>
+ <fieldset class='narrow'>
+ <label class='checkbox'>
+ <?= \Controls\checkbox_tag("import_score", $import_score) ?>
+ <?= __("Import score, limit maximum to:") ?>
+ <input dojoType="dijit.form.TextBox" name="max_score" size="20"
+ placeholder="<?= $this->default_max_score ?>" value="<?= $max_score ?>">
+ </label>
+ </fieldset>
+
<hr/>
<?= \Controls\submit_tag(__("Save")) ?>
</form>
@@ -87,10 +108,18 @@ class Af_RedditImgur extends Plugin {
$enable_readability = checkbox_to_sql_bool($_POST["enable_readability"] ?? "");
$enable_content_dupcheck = checkbox_to_sql_bool($_POST["enable_content_dupcheck"] ?? "");
$reddit_to_teddit = checkbox_to_sql_bool($_POST["reddit_to_teddit"] ?? "");
-
- $this->host->set($this, "enable_readability", $enable_readability, false);
- $this->host->set($this, "reddit_to_teddit", $reddit_to_teddit, false);
- $this->host->set($this, "enable_content_dupcheck", $enable_content_dupcheck);
+ $apply_nsfw_tags = FeedItem_Common::normalize_categories(explode(",", $_POST["apply_nsfw_tags"] ?? ""));
+ $import_score = checkbox_to_sql_bool($_POST["import_score"] ?? "");
+ $max_score = (int) $_POST['max_score'];
+
+ $this->host->set_array($this, [
+ "enable_readability" => $enable_readability,
+ "reddit_to_teddit" => $reddit_to_teddit,
+ "enable_content_dupcheck" => $enable_content_dupcheck,
+ "apply_nsfw_tags" => $apply_nsfw_tags,
+ "import_score" => $import_score,
+ "max_score" => $max_score
+ ]);
echo __("Configuration saved");
}
@@ -202,9 +231,20 @@ class Af_RedditImgur extends Plugin {
return $found;
}
- private function inline_stuff($article, &$doc, $xpath) {
+ /* function score_convert(int $value, int $from1, int $from2, int $to1, int $to2) {
+ return ($value - $from1) / ($from2 - $from1) * ($to2 - $to1) + $to1;
+ } */
+
+ private function inline_stuff(&$article, &$doc, $xpath) {
+
+ $max_score = (int) $this->host->get($this, "max_score", $this->default_max_score);
+ $import_score = (bool) $this->host->get($this, "import_score", $this->default_max_score);
$found = false;
+ $post_is_nsfw = false;
+ $num_comments = 0;
+ $score = 0;
+ $apply_nsfw_tags = FeedItem_Common::normalize_categories($this->host->get_array($this, "apply_nsfw_tags", []));
// embed before reddit <table> post layout
$anchor = $xpath->query('//body/*')->item(0);
@@ -230,6 +270,15 @@ class Af_RedditImgur extends Plugin {
foreach ($listing["data"]["children"] as $child) {
$data = $child["data"];
+ $over_18 = $data["over_18"] ?? 0 == 1;
+
+ $score += $data['score'] ?? 0;
+ $num_comments += $data["num_comments"] ?? 0;
+
+ if ($over_18) {
+ Debug::log("JSON: post is NSFW", Debug::$LOG_EXTENDED);
+ $post_is_nsfw = true;
+ }
if (isset($data["crosspost_parent_list"])) {
Debug::log("JSON: processing child crosspost_parent_list", Debug::$LOG_EXTENDED);
@@ -257,14 +306,22 @@ class Af_RedditImgur extends Plugin {
}
} else {
if (!$tmp) {
- global $fetch_last_error;
- Debug::log("JSON: failed to fetch post:" . $fetch_last_error, Debug::$LOG_EXTENDED);
+ Debug::log("JSON: failed to fetch post:" . UrlHelper::$fetch_last_error, Debug::$LOG_EXTENDED);
}
}
} else if (!$anchor) {
Debug::log("JSON: anchor element not found, unable to embed", Debug::$LOG_EXTENDED);
}
+ if ($post_is_nsfw && count($apply_nsfw_tags) > 0) {
+ $article["tags"] = array_merge($article["tags"], $apply_nsfw_tags);
+ }
+
+ $article["num_comments"] = $num_comments;
+
+ if ($import_score && $score > 0)
+ $article["score_modifier"] = ($article["score_modifier"] ?? 0) + ($score > $max_score ? $max_score : $score);
+
if ($found) {
Debug::log("JSON: found media data, skipping further processing of content", Debug::$LOG_VERBOSE);
$this->remove_post_thumbnail($doc, $xpath);
@@ -680,7 +737,9 @@ class Af_RedditImgur extends Plugin {
@$doc->loadHTML("<html><body><table><tr><td><a href=\"$url\">[link]</a></td></tr></table></body>");
$xpath = new DOMXPath($doc);
- $found = $this->inline_stuff(["link" => $article_url], $doc, $xpath);
+ $article = ["link" => $article_url, "tags" => []];
+
+ $found = $this->inline_stuff($article, $doc, $xpath);
Debug::log("Inline result: $found", Debug::$LOG_VERBOSE);
diff --git a/plugins/af_unburn/init.php b/plugins/af_unburn/init.php
deleted file mode 100755
index 386b6387f..000000000
--- a/plugins/af_unburn/init.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-class Af_Unburn extends Plugin {
- private $host;
-
- function about() {
- return array(1.0,
- "Resolves feedburner and similar feed redirector URLs (requires CURL)",
- "fox");
- }
-
- function flags() {
- return array("needs_curl" => true);
- }
-
- function init($host) {
- $this->host = $host;
-
- $host->add_hook($host::HOOK_ARTICLE_FILTER, $this);
- }
-
- function hook_article_filter($article) {
- $owner_uid = $article["owner_uid"];
-
- if (!function_exists("curl_init") || ini_get("open_basedir"))
- return $article;
-
- if ((strpos($article["link"], "feedproxy.google.com") !== false ||
- strpos($article["link"], "/~r/") !== false ||
- strpos($article["link"], "feedsportal.com") !== false)) {
-
- $ch = curl_init($article["link"]);
-
- curl_setopt($ch, CURLOPT_TIMEOUT, 5);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($ch, CURLOPT_HEADER, true);
- curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
- curl_setopt($ch, CURLOPT_NOBODY, true);
- curl_setopt($ch, CURLOPT_USERAGENT, SELF_USER_AGENT);
-
- if (Config::get(Config::HTTP_PROXY)) {
- curl_setopt($ch, CURLOPT_PROXY, Config::get(Config::HTTP_PROXY));
- }
-
- @curl_exec($ch);
-
- $real_url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
-
- curl_close($ch);
-
- if ($real_url) {
- /* remove the rest of it */
-
- $query = parse_url($real_url, PHP_URL_QUERY);
-
- if ($query && strpos($query, "utm_source") !== false) {
- $args = array();
- parse_str($query, $args);
-
- foreach (array("utm_source", "utm_medium", "utm_campaign") as $param) {
- if (isset($args[$param])) unset($args[$param]);
- }
-
- $new_query = http_build_query($args);
-
- if ($new_query != $query) {
- $real_url = str_replace("?$query", "?$new_query", $real_url);
- }
- }
-
- $real_url = preg_replace("/\?$/", "", $real_url);
-
- $article["link"] = $real_url;
- }
- }
-
- return $article;
- }
-
- function api_version() {
- return 2;
- }
-
-}
diff --git a/plugins/af_youtube_embed/init.php b/plugins/af_youtube_embed/init.php
index 6309aac02..b53a92f0e 100644
--- a/plugins/af_youtube_embed/init.php
+++ b/plugins/af_youtube_embed/init.php
@@ -3,7 +3,7 @@ class Af_Youtube_Embed extends Plugin {
private $host;
function about() {
- return array(1.0,
+ return array(null,
"Embed videos in Youtube RSS feeds (and whitelist Youtube iframes)",
"fox");
}
diff --git a/plugins/af_zz_noautoplay/init.js b/plugins/af_zz_noautoplay/init.js
deleted file mode 100644
index 28e7ec787..000000000
--- a/plugins/af_zz_noautoplay/init.js
+++ /dev/null
@@ -1,41 +0,0 @@
-require(['dojo/_base/kernel', 'dojo/ready'], function (dojo, ready) {
- ready(function () {
- PluginHost.register(PluginHost.HOOK_ARTICLE_RENDERED_CDM, function (row) {
- if (row) {
- console.log("af_zz_noautoplay!");
- console.log(row);
-
- const videos = row.getElementsByTagName("video");
- console.log(row.innerHTML);
-
- for (i = 0; i < videos.length; i++) {
-
- videos[i].removeAttribute("autoplay");
- videos[i].pause();
- videos[i].onclick = function () {
- this.paused ? this.play() : this.pause();
- }
- }
- }
-
- return true;
- });
-
- PluginHost.register(PluginHost.HOOK_ARTICLE_RENDERED, function (row) {
- if (row) {
- const videos = row.getElementsByTagName("video");
-
- for (i = 0; i < videos.length; i++) {
- videos[i].removeAttribute("autoplay");
- videos[i].pause();
- videos[i].onclick = function () {
- this.paused ? this.play() : this.pause();
- }
- }
-
- }
-
- return true;
- });
- });
-});
diff --git a/plugins/af_zz_noautoplay/init.php b/plugins/af_zz_noautoplay/init.php
deleted file mode 100644
index 491800708..000000000
--- a/plugins/af_zz_noautoplay/init.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-class Af_Zz_NoAutoPlay extends Plugin {
- private $host;
-
- function about() {
- return array(1.0,
- "Don't autoplay HTML5 videos",
- "fox");
- }
-
- function init($host) {
- $this->host = $host;
- }
-
- function get_js() {
- return file_get_contents(__DIR__ . "/init.js");
- }
-
- function api_version() {
- return 2;
- }
-
-} \ No newline at end of file
diff --git a/plugins/af_zz_vidmute/init.php b/plugins/af_zz_vidmute/init.php
index 48efff5ad..30eced5e7 100644
--- a/plugins/af_zz_vidmute/init.php
+++ b/plugins/af_zz_vidmute/init.php
@@ -3,7 +3,7 @@ class Af_Zz_VidMute extends Plugin {
private $host;
function about() {
- return array(1.0,
+ return array(null,
"Mute audio in HTML5 videos",
"fox");
}
diff --git a/plugins/auth_internal/init.php b/plugins/auth_internal/init.php
index 13a7bc969..9155f8165 100644
--- a/plugins/auth_internal/init.php
+++ b/plugins/auth_internal/init.php
@@ -4,7 +4,7 @@ class Auth_Internal extends Auth_Base {
private $host;
function about() {
- return array(1.0,
+ return array(null,
"Authenticates against internal tt-rss database",
"fox",
true);
@@ -19,200 +19,162 @@ class Auth_Internal extends Auth_Base {
function authenticate($login, $password, $service = '') {
- $pwd_hash1 = encrypt_password($password);
- $pwd_hash2 = encrypt_password($password, $login);
$otp = (int) ($_REQUEST["otp"] ?? 0);
- if (get_schema_version() > 96) {
+ // don't bother with null/null logins for auth_external etc
+ if ($login && get_schema_version() > 96) {
- $sth = $this->pdo->prepare("SELECT otp_enabled,salt FROM ttrss_users WHERE
- LOWER(login) = LOWER(?)");
- $sth->execute([$login]);
+ $user_id = UserHelper::find_user_by_login($login);
- if ($row = $sth->fetch()) {
- $otp_enabled = $row['otp_enabled'];
+ if ($user_id && UserHelper::is_otp_enabled($user_id)) {
- if ($otp_enabled) {
-
- // only allow app password checking if OTP is enabled
- if ($service && get_schema_version() > 138) {
- return $this->check_app_password($login, $password, $service);
- }
-
- if ($otp) {
- $base32 = new \OTPHP\Base32();
-
- $secret = $base32->encode(mb_substr(sha1($row["salt"]), 0, 12), false);
- $secret_legacy = $base32->encode(sha1($row["salt"]));
-
- $totp = new \OTPHP\TOTP($secret);
- $otp_check = $totp->now();
-
- $totp_legacy = new \OTPHP\TOTP($secret_legacy);
- $otp_check_legacy = $totp_legacy->now();
-
- if ($otp !== $otp_check && $otp !== $otp_check_legacy) {
- return false;
- }
- } else {
- $return = urlencode($_REQUEST["return"]);
- ?>
- <!DOCTYPE html>
- <html>
- <head>
- <title>Tiny Tiny RSS</title>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- </head>
- <?= stylesheet_tag("themes/light.css") ?>
- <body class="ttrss_utility otp">
- <h1><?= __("Authentication") ?></h1>
- <div class="content">
- <form action="public.php?return=<?= $return ?>"
- method="POST" class="otpform">
- <input type="hidden" name="op" value="login">
- <input type="hidden" name="login" value="<?= htmlspecialchars($login) ?>">
- <input type="hidden" name="password" value="<?= htmlspecialchars($password) ?>">
- <input type="hidden" name="bw_limit" value="<?= htmlspecialchars($_POST["bw_limit"]) ?>">
- <input type="hidden" name="remember_me" value="<?= htmlspecialchars($_POST["remember_me"]) ?>">
- <input type="hidden" name="profile" value="<?= htmlspecialchars($_POST["profile"]) ?>">
-
- <fieldset>
- <label><?= __("Please enter your one time password:") ?></label>
- <input autocomplete="off" size="6" name="otp" value=""/>
- <input type="submit" value="Continue"/>
- </fieldset>
- </form></div>
- <script type="text/javascript">
- document.forms[0].otp.focus();
- </script>
- <?php
- exit;
- }
+ // only allow app passwords for service logins if OTP is enabled
+ if ($service && get_schema_version() > 138) {
+ return $this->check_app_password($login, $password, $service);
}
- }
- }
- // check app passwords first but allow regular password as a fallback for the time being
- // if OTP is not enabled
+ if ($otp) {
- if ($service && get_schema_version() > 138) {
- $user_id = $this->check_app_password($login, $password, $service);
-
- if ($user_id)
- return $user_id;
- }
+ /*$base32 = new \OTPHP\Base32();
- if (get_schema_version() > 87) {
+ $secret = $base32->encode(mb_substr(sha1($row["salt"]), 0, 12), false);
+ $secret_legacy = $base32->encode(sha1($row["salt"]));
- $sth = $this->pdo->prepare("SELECT salt FROM ttrss_users WHERE LOWER(login) = LOWER(?)");
- $sth->execute([$login]);
+ $totp = new \OTPHP\TOTP($secret);
+ $otp_check = $totp->now();
- if ($row = $sth->fetch()) {
- $salt = $row['salt'];
+ $totp_legacy = new \OTPHP\TOTP($secret_legacy);
+ $otp_check_legacy = $totp_legacy->now();
- if ($salt == "") {
-
- $sth = $this->pdo->prepare("SELECT id FROM ttrss_users WHERE
- LOWER(login) = LOWER(?) AND (pwd_hash = ? OR pwd_hash = ?)");
-
- $sth->execute([$login, $pwd_hash1, $pwd_hash2]);
-
- // verify and upgrade password to new salt base
-
- if ($row = $sth->fetch()) {
- // upgrade password to MODE2
-
- $user_id = $row['id'];
-
- $salt = substr(bin2hex(get_random_bytes(125)), 0, 250);
- $pwd_hash = encrypt_password($password, $salt, true);
-
- $sth = $this->pdo->prepare("UPDATE ttrss_users SET
- pwd_hash = ?, salt = ? WHERE LOWER(login) = LOWER(?)");
-
- $sth->execute([$pwd_hash, $salt, $login]);
+ if ($otp !== $otp_check && $otp !== $otp_check_legacy) {
+ return false;
+ } */
+ if (UserHelper::check_otp($user_id, $otp))
return $user_id;
-
- } else {
+ else
return false;
- }
} else {
- $pwd_hash = encrypt_password($password, $salt, true);
-
- $sth = $this->pdo->prepare("SELECT id
- FROM ttrss_users WHERE
- LOWER(login) = LOWER(?) AND pwd_hash = ?");
- $sth->execute([$login, $pwd_hash]);
-
- if ($row = $sth->fetch()) {
- return $row['id'];
- }
+ $return = urlencode($_REQUEST["return"]);
+ ?>
+ <!DOCTYPE html>
+ <html>
+ <head>
+ <title>Tiny Tiny RSS</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <?php foreach (["lib/dojo/dojo.js",
+ "lib/dojo/tt-rss-layer.js",
+ "js/common.js",
+ "js/utility.js"] as $jsfile) {
+ echo javascript_tag($jsfile);
+ } ?>
+ <style type="text/css">
+ @media (prefers-color-scheme: dark) {
+ body {
+ background : #303030;
+ }
+ }
+
+ body.css_loading * {
+ display : none;
+ }
+ </style>
+
+ <script type="text/javascript">
+ require({cache:{}});
+
+ const UtilityApp = {
+ init: function() {
+ require(['dojo/parser', "dojo/ready", 'dijit/form/Button', 'dijit/form/Form',
+ 'dijit/form/TextBox','dijit/form/ValidationTextBox'],function(parser, ready){
+ ready(function() {
+ parser.parse();
+ dijit.byId("otp").focus();
+ });
+ });
+ },
+ };
+ </script>
+ </head>
+ <body class="flat ttrss_utility otp css_loading">
+ <h1><?= __("Authentication") ?></h1>
+ <div class="content">
+ <form dojoType="dijit.form.Form" action="public.php?return=<?= urlencode(with_trailing_slash($return)) ?>" method="post" class="otpform">
+
+ <?php foreach (["login", "password", "bw_limit", "safe_mode", "remember_me", "profile"] as $key) {
+ print \Controls\hidden_tag($key, $_POST[$key] ?? "");
+ } ?>
+
+ <?= \Controls\hidden_tag("op", "login") ?>
+
+ <fieldset>
+ <label><?= __("Please enter your one time password:") ?></label>
+ <input id="otp" dojoType="dijit.form.ValidationTextBox" required="1" autocomplete="off" size="6" name="otp" value=""/>
+ <?= \Controls\submit_tag(__("Continue")) ?>
+ </fieldset>
+ </form>
+ </div>
+ </body>
+ </html>
+ <?php
+ exit;
}
+ }
+ }
- } else {
- $sth = $this->pdo->prepare("SELECT id
- FROM ttrss_users WHERE
- LOWER(login) = LOWER(?) AND (pwd_hash = ? OR pwd_hash = ?)");
+ // service logins: check app passwords first but allow regular password
+ // as a fallback if OTP is not enabled
- $sth->execute([$login, $pwd_hash1, $pwd_hash2]);
+ if ($service && get_schema_version() > 138) {
+ $user_id = $this->check_app_password($login, $password, $service);
- if ($row = $sth->fetch()) {
- return $row['id'];
- }
- }
- } else {
- $sth = $this->pdo->prepare("SELECT id
- FROM ttrss_users WHERE
- LOWER(login) = LOWER(?) AND (pwd_hash = ? OR pwd_hash = ?)");
+ if ($user_id)
+ return $user_id;
+ }
- $sth->execute([$login, $pwd_hash1, $pwd_hash2]);
+ if ($login) {
+ $try_user_id = $this->find_user_by_login($login);
- if ($row = $sth->fetch()) {
- return $row['id'];
+ if ($try_user_id) {
+ return $this->check_password($try_user_id, $password);
}
}
return false;
}
- function check_password($owner_uid, $password, $service = '') {
+ function check_password(int $owner_uid, string $password, string $service = '') {
- $sth = $this->pdo->prepare("SELECT salt,login,otp_enabled FROM ttrss_users WHERE
- id = ?");
- $sth->execute([$owner_uid]);
+ $user = ORM::for_table('ttrss_users')->find_one($owner_uid);
- if ($row = $sth->fetch()) {
+ if ($user) {
- $salt = $row['salt'];
- $login = $row['login'];
+ $salt = $user['salt'] ?? "";
+ $login = $user['login'];
+ $pwd_hash = $user['pwd_hash'];
+
+ list ($pwd_algo, $raw_hash) = explode(":", $pwd_hash, 2);
// check app password only if service is specified
if ($service && get_schema_version() > 138) {
return $this->check_app_password($login, $password, $service);
}
- if (!$salt) {
- $password_hash1 = encrypt_password($password);
- $password_hash2 = encrypt_password($password, $login);
-
- $sth = $this->pdo->prepare("SELECT id FROM ttrss_users WHERE
- id = ? AND (pwd_hash = ? OR pwd_hash = ?)");
-
- $sth->execute([$owner_uid, $password_hash1, $password_hash2]);
+ $test_hash = UserHelper::hash_password($password, $salt, $pwd_algo);
- return $sth->fetch();
+ if (hash_equals($pwd_hash, $test_hash)) {
+ if ($pwd_algo != UserHelper::HASH_ALGOS[0]) {
+ Logger::log(E_USER_NOTICE, "Upgrading password of user $login to " . UserHelper::HASH_ALGOS[0]);
- } else {
- $password_hash = encrypt_password($password, $salt, true);
+ $new_hash = UserHelper::hash_password($password, $salt, UserHelper::HASH_ALGOS[0]);
- $sth = $this->pdo->prepare("SELECT id FROM ttrss_users WHERE
- id = ? AND pwd_hash = ?");
-
- $sth->execute([$owner_uid, $password_hash]);
-
- return $sth->fetch();
+ if ($new_hash) {
+ $usth = $this->pdo->prepare("UPDATE ttrss_users SET pwd_hash = ? WHERE id = ?");
+ $usth->execute([$new_hash, $owner_uid]);
+ }
+ }
+ return $owner_uid;
}
}
@@ -223,35 +185,34 @@ class Auth_Internal extends Auth_Base {
if ($this->check_password($owner_uid, $old_password)) {
- $new_salt = substr(bin2hex(get_random_bytes(125)), 0, 250);
- $new_password_hash = encrypt_password($new_password, $new_salt, true);
+ $new_salt = UserHelper::get_salt();
+ $new_password_hash = UserHelper::hash_password($new_password, $new_salt, UserHelper::HASH_ALGOS[0]);
- $sth = $this->pdo->prepare("UPDATE ttrss_users SET
- pwd_hash = ?, salt = ?, otp_enabled = false
- WHERE id = ?");
- $sth->execute([$new_password_hash, $new_salt, $owner_uid]);
+ $user = ORM::for_table('ttrss_users')->find_one($owner_uid);
- $_SESSION["pwd_hash"] = $new_password_hash;
+ $user->salt = $new_salt;
+ $user->pwd_hash = $new_password_hash;
+ $user->save();
- $sth = $this->pdo->prepare("SELECT email, login FROM ttrss_users WHERE id = ?");
- $sth->execute([$owner_uid]);
+ if ($_SESSION["uid"] ?? 0 == $owner_uid)
+ $_SESSION["pwd_hash"] = $new_password_hash;
- if ($row = $sth->fetch()) {
+ if ($user->email) {
$mailer = new Mailer();
$tpl = new Templator();
$tpl->readTemplateFromFile("password_change_template.txt");
- $tpl->setVariable('LOGIN', $row["login"]);
+ $tpl->setVariable('LOGIN', $user->login);
$tpl->setVariable('TTRSS_HOST', Config::get(Config::SELF_URL_PATH));
$tpl->addBlock('message');
$tpl->generateOutputToString($message);
- $mailer->mail(["to_name" => $row["login"],
- "to_address" => $row["email"],
+ $mailer->mail(["to_name" => $user->login,
+ "to_address" => $user->email,
"subject" => "[tt-rss] Password change notification",
"message" => $message]);
@@ -270,19 +231,28 @@ class Auth_Internal extends Auth_Base {
$sth->execute([$login, $service]);
while ($row = $sth->fetch()) {
- list ($algo, $hash, $salt) = explode(":", $row["pwd_hash"]);
+ list ($pwd_algo, $raw_hash, $salt) = explode(":", $row["pwd_hash"]);
+
+ $test_hash = UserHelper::hash_password($password, $salt, $pwd_algo);
+
+ if (hash_equals("$pwd_algo:$raw_hash", $test_hash)) {
+ $pass = ORM::for_table('ttrss_app_passwords')->find_one($row["id"]);
+ $pass->last_used = Db::NOW();
- if ($algo == "SSHA-512") {
- $test_hash = hash('sha512', $salt . $password);
+ if ($pwd_algo != UserHelper::HASH_ALGOS[0]) {
+ // upgrade password to current algo
+ Logger::log(E_USER_NOTICE, "Upgrading app password of user $login to " . UserHelper::HASH_ALGOS[0]);
- if ($test_hash == $hash) {
- $usth = $this->pdo->prepare("UPDATE ttrss_app_passwords SET last_used = NOW() WHERE id = ?");
- $usth->execute([$row['id']]);
+ $new_hash = UserHelper::hash_password($password, $salt);
- return $row['uid'];
+ if ($new_hash) {
+ $pass->pwd_hash = "$new_hash:$salt";
+ }
}
- } else {
- user_error("Got unknown algo of app password for user $login: $algo");
+
+ $pass->save();
+
+ return $row['uid'];
}
}
diff --git a/plugins/auth_remote/init.php b/plugins/auth_remote/init.php
index f24364ffd..3be7aa26e 100644
--- a/plugins/auth_remote/init.php
+++ b/plugins/auth_remote/init.php
@@ -4,7 +4,7 @@ class Auth_Remote extends Auth_Base {
private $host;
function about() {
- return array(1.0,
+ return array(null,
"Authenticates against remote password (e.g. supplied by Apache)",
"fox",
true);
@@ -18,7 +18,7 @@ class Auth_Remote extends Auth_Base {
}
function get_login_by_ssl_certificate() {
- $cert_serial = get_ssl_certificate_id();
+ $cert_serial = Pref_Prefs::_get_ssl_certificate_id();
if ($cert_serial) {
$sth = $this->pdo->prepare("SELECT login FROM ttrss_user_prefs2, ttrss_users
diff --git a/plugins/auto_assign_labels/init.php b/plugins/auto_assign_labels/init.php
index 341895cef..786720d95 100755
--- a/plugins/auto_assign_labels/init.php
+++ b/plugins/auto_assign_labels/init.php
@@ -5,7 +5,7 @@ class Auto_Assign_Labels extends Plugin {
private $host;
function about() {
- return array(1.0,
+ return array(null,
"Assign labels automatically based on article title, content, and tags",
"fox");
}
diff --git a/plugins/bookmarklets/init.php b/plugins/bookmarklets/init.php
index 967918823..4bd527623 100644
--- a/plugins/bookmarklets/init.php
+++ b/plugins/bookmarklets/init.php
@@ -3,7 +3,7 @@ class Bookmarklets extends Plugin {
private $host;
function about() {
- return array(1.0,
+ return array(null,
"Easy feed subscription and web page sharing using bookmarklets",
"fox",
false,
@@ -146,7 +146,7 @@ class Bookmarklets extends Plugin {
if ($feed_id) {
?>
- <form method='GET' action="<?= htmlspecialchars(get_self_url_prefix() . "/prefs.php") ?>">
+ <form method='GET' action="<?= htmlspecialchars(Config::get_self_url() . "/prefs.php") ?>">
<input type='hidden' name='tab' value='feeds'>
<input type='hidden' name='method' value='editfeed'>
<input type='hidden' name='methodparam' value="<?= $feed_id ?>">
@@ -154,7 +154,7 @@ class Bookmarklets extends Plugin {
<a href='index.php'><?= __("Return to Tiny Tiny RSS") ?></a>
</form>
<?php
- } else {
+ } else if (!$feed_urls) {
?>
<a href='index.php'><?= __("Return to Tiny Tiny RSS") ?></a>
<?php
@@ -167,7 +167,7 @@ class Bookmarklets extends Plugin {
</html>
<?php
} else {
- Handler_Public::_render_login_form();
+ Handler_Public::_render_login_form($this->host->get_public_method_url($this, "subscribe"));
}
}
@@ -289,10 +289,12 @@ class Bookmarklets extends Plugin {
}
} else {
- print_error("Not logged in");
+ $return_to = $this->host->get_public_method_url($this, "sharepopup");
?>
- <form action="public.php?return=<?= urlencode(make_self_url()) ?>" method="post">
+ <?= format_error("Not logged in") ?>
+
+ <form action="public.php?return=<?= urlencode($return_to) ?>" method="post">
<input type="hidden" name="op" value="login">
diff --git a/plugins/cache_starred_images/init.php b/plugins/cache_starred_images/init.php
index 2dbdb99cc..d94e60504 100755
--- a/plugins/cache_starred_images/init.php
+++ b/plugins/cache_starred_images/init.php
@@ -8,7 +8,7 @@ class Cache_Starred_Images extends Plugin {
private $max_cache_attempts = 5; // per-article
function about() {
- return array(1.0,
+ return array(null,
"Automatically cache media files in Starred articles",
"fox");
}
diff --git a/plugins/close_button/init.php b/plugins/close_button/init.php
deleted file mode 100644
index 2a5025cf6..000000000
--- a/plugins/close_button/init.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-class Close_Button extends Plugin {
- private $host;
-
- function init($host) {
- $this->host = $host;
-
- $host->add_hook($host::HOOK_ARTICLE_BUTTON, $this);
- }
-
- function about() {
- return array(1.0,
- "Adds a button to close article panel",
- "fox");
- }
-
- function get_css() {
- return ".post .header .buttons i.material-icons.icon-close-article { color : red; }";
- }
-
- function hook_article_button($line) {
- if (!get_pref(Prefs::COMBINED_DISPLAY_MODE)) {
- return "<i class='material-icons icon-close-article'
- style='cursor : pointer' onclick='Article.close()'
- title='".__('Close article')."'>close</i>";
- }
- }
-
- function api_version() {
- return 2;
- }
-
-}
diff --git a/plugins/hotkeys_force_top/init.php b/plugins/hotkeys_force_top/init.php
index faddc9148..9c17307bd 100644
--- a/plugins/hotkeys_force_top/init.php
+++ b/plugins/hotkeys_force_top/init.php
@@ -3,7 +3,7 @@ class Hotkeys_Force_Top extends Plugin {
private $host;
function about() {
- return array(1.0,
+ return array(null,
"Force open article to the top",
"itsamenathan");
}
diff --git a/plugins/hotkeys_noscroll/init.php b/plugins/hotkeys_noscroll/init.php
index b31ee92ae..320847827 100644
--- a/plugins/hotkeys_noscroll/init.php
+++ b/plugins/hotkeys_noscroll/init.php
@@ -3,7 +3,7 @@ class Hotkeys_Noscroll extends Plugin {
private $host;
function about() {
- return array(1.0,
+ return array(null,
"n/p (and up/down) hotkeys move between articles without scrolling",
"fox");
}
diff --git a/plugins/hotkeys_swap_jk/init.php b/plugins/hotkeys_swap_jk/init.php
index b1e3dbe04..19a3ab60a 100644
--- a/plugins/hotkeys_swap_jk/init.php
+++ b/plugins/hotkeys_swap_jk/init.php
@@ -4,7 +4,7 @@ class Hotkeys_Swap_JK extends Plugin {
private $host;
function about() {
- return array(1.0,
+ return array(null,
"Swap j and k hotkeys (for vi brethren)",
"fox");
}
diff --git a/plugins/mail/init.php b/plugins/mail/init.php
deleted file mode 100644
index 467f8294a..000000000
--- a/plugins/mail/init.php
+++ /dev/null
@@ -1,235 +0,0 @@
-<?php
-class Mail extends Plugin {
-
- /* @var PluginHost $host */
- private $host;
-
- function about() {
- return array(1.0,
- "Share article via email",
- "fox");
- }
-
- function init($host) {
- $this->host = $host;
-
- $host->add_hook($host::HOOK_ARTICLE_BUTTON, $this);
- $host->add_hook($host::HOOK_PREFS_TAB, $this);
- $host->add_hook($host::HOOK_HEADLINE_TOOLBAR_SELECT_MENU_ITEM, $this);
- }
-
- function get_js() {
- return file_get_contents(__DIR__ . "/mail.js");
- }
-
- function hook_headline_toolbar_select_menu_item($feed_id, $is_cat) {
- return "<div dojoType='dijit.MenuItem' onclick='Plugins.Mail.send()'>".__('Forward by email')."</div>";
- }
-
- function save() {
- $addresslist = $_POST["addresslist"];
-
- $this->host->set($this, "addresslist", $addresslist);
-
- echo __("Mail addresses saved.");
- }
-
- function hook_prefs_tab($args) {
- if ($args != "prefPrefs") return;
-
- $addresslist = $this->host->get($this, "addresslist");
-
- ?>
-
- <div dojoType="dijit.layout.AccordionPane"
- title="<i class='material-icons'>mail</i> <?= __('Mail plugin') ?>">
-
- <form dojoType="dijit.form.Form">
- <?= \Controls\pluginhandler_tags($this, "save") ?>
-
- <script type="dojo/method" event="onSubmit" args="evt">
- evt.preventDefault();
- if (this.validate()) {
- Notify.progress('Saving data...', true);
- xhr.post("backend.php", this.getValues(), (reply) => {
- Notify.info(reply);
- })
- }
- </script>
-
- <header><?= __("You can set predefined email addressed here (comma-separated list):") ?></header>
-
- <textarea dojoType="dijit.form.SimpleTextarea" style='font-size : 12px; width : 50%' rows="3"
- name='addresslist'><?= $addresslist ?></textarea>
-
- <hr/>
-
- <?= \Controls\submit_tag(__("Save")) ?>
-
- </form>
- </div>
- <?php
- }
-
- function hook_article_button($line) {
- return "<i class='material-icons' style=\"cursor : pointer\"
- onclick=\"Plugins.Mail.send(".$line["id"].")\"
- title='".__('Forward by email')."'>mail</i>";
- }
-
- function emailArticle() {
-
- $ids = explode(",", clean($_REQUEST['ids']));
- $ids_qmarks = arr_qmarks($ids);
-
-
- $sth = $this->pdo->prepare("SELECT email, full_name FROM ttrss_users WHERE
- id = ?");
- $sth->execute([$_SESSION['uid']]);
-
- if ($row = $sth->fetch()) {
- $user_email = htmlspecialchars($row['email']);
- $user_name = htmlspecialchars($row['full_name']);
- } else {
- $user_name = "";
- $user_email = "";
- }
-
- if (!$user_name)
- $user_name = $_SESSION['name'];
-
- $tpl = new Templator();
-
- $tpl->readTemplateFromFile("email_article_template.txt");
-
- $tpl->setVariable('USER_NAME', $_SESSION["name"], true);
- $tpl->setVariable('USER_EMAIL', $user_email, true);
- $tpl->setVariable('TTRSS_HOST', $_SERVER["HTTP_HOST"], true);
-
- $sth = $this->pdo->prepare("SELECT DISTINCT link, content, title, note
- FROM ttrss_user_entries, ttrss_entries WHERE id = ref_id AND
- id IN ($ids_qmarks) AND owner_uid = ?");
- $sth->execute(array_merge($ids, [$_SESSION['uid']]));
-
- if (count($ids) > 1) {
- $subject = __("[Forwarded]") . " " . __("Multiple articles");
- } else {
- $subject = "";
- }
-
- while ($line = $sth->fetch()) {
-
- if (!$subject)
- $subject = __("[Forwarded]") . " " . htmlspecialchars($line["title"]);
-
- $tpl->setVariable('ARTICLE_TITLE', strip_tags($line["title"]));
- $tnote = strip_tags($line["note"]);
- if( $tnote != ''){
- $tpl->setVariable('ARTICLE_NOTE', $tnote, true);
- $tpl->addBlock('note');
- }
- $tpl->setVariable('ARTICLE_URL', strip_tags($line["link"]));
-
- $tpl->addBlock('article');
- }
-
- $tpl->addBlock('email');
-
- $content = "";
- $tpl->generateOutputToString($content);
-
- $addresslist = explode(",", $this->host->get($this, "addresslist"));
-
- ?>
-
- <form dojoType='dijit.form.Form'>
-
- <?= \Controls\pluginhandler_tags($this, "sendemail") ?>
-
- <?= \Controls\hidden_tag("from_email", $user_email) ?>
- <?= \Controls\hidden_tag("from_name", $user_name) ?>
-
- <script type='dojo/method' event='onSubmit' args='evt'>
- evt.preventDefault();
- if (this.validate()) {
- xhr.json("backend.php", this.getValues(), (reply) => {
- if (reply && reply.error)
- Notify.error(reply.error);
- else
- this.hide();
- });
- }
- </script>
-
- <section>
- <fieldset class='narrow'>
- <label><?= __('To:') ?></label>
- <?= \Controls\select_tag("destination", "", $addresslist,
- ["style" => "width: 380px", "required" => 1, "dojoType" => "dijit.form.ComboBox"]) ?>
- </fieldset>
- </section>
-
- <section>
- <fieldset class='narrow'>
- <label><?= __('Subject:') ?></label>
- <input dojoType='dijit.form.ValidationTextBox' required='true'
- style='width : 380px' name='subject' value="<?= htmlspecialchars($subject) ?>" id='subject'>
- </fieldset>
- </section>
-
- <textarea dojoType='dijit.form.SimpleTextarea'
- style='height : 200px; font-size : 12px; width : 98%' rows="20"
- name='content'><?= $content ?></textarea>
-
- <footer>
- <?= \Controls\submit_tag(__('Send email')) ?>
- <?= \Controls\cancel_dialog_tag(__('Cancel')) ?>
- </footer>
-
- </form>
- <?php
- }
-
- function sendEmail() {
- $reply = array();
-
- /*$mail->AddReplyTo(strip_tags($_REQUEST['from_email']),
- strip_tags($_REQUEST['from_name']));
- //$mail->AddAddress($_REQUEST['destination']);
- $addresses = explode(';', $_REQUEST['destination']);
- foreach($addresses as $nextaddr)
- $mail->AddAddress($nextaddr);
-
- $mail->IsHTML(false);
- $mail->Subject = $_REQUEST['subject'];
- $mail->Body = $_REQUEST['content'];
-
- $rc = $mail->Send(); */
-
- $to = $_REQUEST["destination"];
- $subject = strip_tags($_REQUEST["subject"]);
- $message = strip_tags($_REQUEST["content"]);
- $from = strip_tags($_REQUEST["from_email"]);
-
- $mailer = new Mailer();
-
- $rc = $mailer->mail(["to_address" => $to,
- "headers" => ["Reply-To: $from"],
- "subject" => $subject,
- "message" => $message]);
-
- if (!$rc) {
- $reply['error'] = $mailer->error();
- } else {
- //save_email_address($destination);
- $reply['message'] = "UPDATE_COUNTERS";
- }
-
- print json_encode($reply);
- }
-
- function api_version() {
- return 2;
- }
-
-}
diff --git a/plugins/mail/mail.js b/plugins/mail/mail.js
deleted file mode 100644
index d2bafe0e9..000000000
--- a/plugins/mail/mail.js
+++ /dev/null
@@ -1,51 +0,0 @@
-/* global Plugins, Headlines, dojo, App, xhr, Notify, fox, __ */
-
-Plugins.Mail = {
- send: function(id) {
- if (!id) {
- const ids = Headlines.getSelected();
-
- if (ids.length == 0) {
- alert(__("No articles selected."));
- return;
- }
-
- id = ids.toString();
- }
-
- const dialog = new fox.SingleUseDialog({
- title: __("Forward article by email"),
- execute: function () {
- if (this.validate()) {
- xhr.json("backend.php", this.attr('value'), (reply) => {
- if (reply) {
- const error = reply['error'];
-
- if (error) {
- alert(__('Error sending email:') + ' ' + error);
- } else {
- Notify.info('Your message has been sent.');
- dialog.hide();
- }
-
- }
- });
- }
- },
- content: __("Loading, please wait...")
- });
-
- const tmph = dojo.connect(dialog, 'onShow', function () {
- dojo.disconnect(tmph);
-
- xhr.post("backend.php", App.getPhArgs("mail", "emailArticle", {ids: id}), (reply) => {
- dialog.attr('content', reply);
- });
- });
-
- dialog.show();
- },
- onHotkey: function(id) {
- Plugins.Mail.send(id);
- }
-};
diff --git a/plugins/mailto/init.js b/plugins/mailto/init.js
deleted file mode 100644
index 4a9557249..000000000
--- a/plugins/mailto/init.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/* global Plugins, Headlines, xhr, dojo, fox, __ */
-
-Plugins.Mailto = {
- send: function (id) {
- if (!id) {
- const ids = Headlines.getSelected();
-
- if (ids.length == 0) {
- alert(__("No articles selected."));
- return;
- }
-
- id = ids.toString();
- }
-
- const dialog = new fox.SingleUseDialog({
- title: __("Forward article by email (mailto:)"),
- content: __("Loading, please wait...")
- });
-
- const tmph = dojo.connect(dialog, 'onShow', function () {
- dojo.disconnect(tmph);
-
- xhr.post("backend.php", App.getPhArgs("mailto", "emailArticle", {ids: id}), (reply) => {
- dialog.attr('content', reply);
- });
- });
-
-
- dialog.show();
- }
-};
-
-// override default hotkey action if enabled
-Plugins.Mail = Plugins.Mail || {};
-
-Plugins.Mail.onHotkey = function(id) {
- Plugins.Mailto.send(id);
-};
diff --git a/plugins/mailto/init.php b/plugins/mailto/init.php
deleted file mode 100644
index c34b400ce..000000000
--- a/plugins/mailto/init.php
+++ /dev/null
@@ -1,95 +0,0 @@
-<?php
-class MailTo extends Plugin {
- private $host;
-
- function about() {
- return array(1.0,
- "Share article via email (using mailto: links, invoking your mail client)",
- "fox");
- }
-
- function init($host) {
- $this->host = $host;
-
- $host->add_hook($host::HOOK_ARTICLE_BUTTON, $this);
- $host->add_hook($host::HOOK_HEADLINE_TOOLBAR_SELECT_MENU_ITEM, $this);
- }
-
- function hook_headline_toolbar_select_menu_item($feed_id, $is_cat) {
- return "<div dojoType='dijit.MenuItem' onclick='Plugins.Mailto.send()'>".__('Forward by email (mailto:)')."</div>";
- }
-
- function get_js() {
- return file_get_contents(__DIR__ . "/init.js");
- }
-
- function hook_article_button($line) {
- return "<i class='material-icons' style=\"cursor : pointer\"
- onclick=\"Plugins.Mailto.send(".$line["id"].")\"
- title='".__('Forward by email (mailto:)')."'>mail_outline</i>";
- }
-
- function emailArticle() {
-
- $ids = explode(",", clean($_REQUEST['ids']));
- $ids_qmarks = arr_qmarks($ids);
-
- $tpl = new Templator();
-
- $tpl->readTemplateFromFile("email_article_template.txt");
-
- $tpl->setVariable('USER_NAME', $_SESSION["name"], true);
- //$tpl->setVariable('USER_EMAIL', $user_email, true);
- $tpl->setVariable('TTRSS_HOST', $_SERVER["HTTP_HOST"], true);
-
- $sth = $this->pdo->prepare("SELECT DISTINCT link, content, title
- FROM ttrss_user_entries, ttrss_entries WHERE id = ref_id AND
- id IN ($ids_qmarks) AND owner_uid = ?");
- $sth->execute(array_merge($ids, [$_SESSION['uid']]));
-
- if (count($ids) > 1) {
- $subject = __("[Forwarded]") . " " . __("Multiple articles");
- } else {
- $subject = "";
- }
-
- while ($line = $sth->fetch()) {
-
- if (!$subject)
- $subject = __("[Forwarded]") . " " . htmlspecialchars($line["title"]);
-
- $tpl->setVariable('ARTICLE_TITLE', strip_tags($line["title"]));
- $tpl->setVariable('ARTICLE_URL', strip_tags($line["link"]));
-
- $tpl->addBlock('article');
- }
-
- $tpl->addBlock('email');
-
- $content = "";
- $tpl->generateOutputToString($content);
-
- $mailto_link = "mailto:?subject=".rawurlencode($subject)."&body=".rawurlencode($content);
-
- ?>
-
- <section>
- <div class='panel text-center'>
- <a target="_blank" href="<?= htmlspecialchars($mailto_link) ?>">
- <?= __("Click to open your mail client") ?>
- </a>
- </div>
- </section>
-
- <footer class='text-center'>
- <?= \Controls\submit_tag(__('Close this dialog')) ?>
- </footer>
-
- <?php
- }
-
- function api_version() {
- return 2;
- }
-
-}
diff --git a/plugins/no_iframes/init.php b/plugins/no_iframes/init.php
index dd3502cbd..a8cef74ee 100644
--- a/plugins/no_iframes/init.php
+++ b/plugins/no_iframes/init.php
@@ -3,7 +3,7 @@ class No_Iframes extends Plugin {
private $host;
function about() {
- return array(1.0,
+ return array(null,
"Remove embedded iframes (unless whitelisted)",
"fox");
}
diff --git a/plugins/no_title_counters/init.js b/plugins/no_title_counters/init.js
deleted file mode 100644
index 6c0cb38e2..000000000
--- a/plugins/no_title_counters/init.js
+++ /dev/null
@@ -1,9 +0,0 @@
-require(['dojo/_base/kernel', 'dojo/ready'], function (dojo, ready) {
- ready(function () {
- PluginHost.register(PluginHost.HOOK_INIT_COMPLETE, () => {
- App.updateTitle = function () {
- document.title = "Tiny Tiny RSS";
- };
- });
- });
-});
diff --git a/plugins/no_title_counters/init.php b/plugins/no_title_counters/init.php
deleted file mode 100644
index 86d2bdfc3..000000000
--- a/plugins/no_title_counters/init.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-class No_Title_Counters extends Plugin {
- private $host;
-
- function about() {
- return array(1.0,
- "Remove counters from window title (prevents tab flashing on new articles)",
- "fox");
- }
-
- function init($host) {
- $this->host = $host;
-
- }
-
- function get_js() {
- return file_get_contents(__DIR__ . "/init.js");
- }
-
- function api_version() {
- return 2;
- }
-
-} \ No newline at end of file
diff --git a/plugins/no_url_hashes/init.js b/plugins/no_url_hashes/init.js
deleted file mode 100644
index fc4596724..000000000
--- a/plugins/no_url_hashes/init.js
+++ /dev/null
@@ -1,9 +0,0 @@
-require(['dojo/_base/kernel', 'dojo/ready'], function (dojo, ready) {
- ready(function () {
- hash_set = function () {
- };
- hash_get = function () {
- };
- });
-});
-
diff --git a/plugins/no_url_hashes/init.php b/plugins/no_url_hashes/init.php
deleted file mode 100644
index 54d6f4285..000000000
--- a/plugins/no_url_hashes/init.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-class No_URL_Hashes extends Plugin {
- private $host;
-
- function about() {
- return array(1.0,
- "Disable URL hash usage (e.g. #f=10, etc)",
- "fox");
- }
-
- function init($host) {
- $this->host = $host;
-
- }
-
- function get_js() {
- return file_get_contents(__DIR__ . "/init.js");
- }
-
- function api_version() {
- return 2;
- }
-
-} \ No newline at end of file
diff --git a/plugins/note/init.php b/plugins/note/init.php
index 52f7be3eb..f95ba9fa8 100644
--- a/plugins/note/init.php
+++ b/plugins/note/init.php
@@ -5,7 +5,7 @@ class Note extends Plugin {
private $host;
function about() {
- return array(1.0,
+ return array(null,
"Adds support for setting article notes",
"fox");
}
diff --git a/plugins/nsfw/init.js b/plugins/nsfw/init.js
index 4bc2443e8..71fe4747b 100644
--- a/plugins/nsfw/init.js
+++ b/plugins/nsfw/init.js
@@ -2,11 +2,17 @@
Plugins.NSFW = {
toggle: function(elem) {
- const content = elem.domNode.parentNode.querySelector(".nswf.content");
+ elem = elem.domNode || elem;
- if (content) {
- Element.toggle(content);
- }
+ const content = elem.closest(".nsfw-wrapper").querySelector('.nsfw-content');
+
+ // we can't use .toggle() here because this script could be invoked by the api client
+ // so it's back to vanilla js
+
+ if (content.style.display == 'none')
+ content.style.display = '';
+ else
+ content.style.display = 'none';
}
}
diff --git a/plugins/nsfw/init.php b/plugins/nsfw/init.php
index 7c5b8d00f..8ace94b51 100644
--- a/plugins/nsfw/init.php
+++ b/plugins/nsfw/init.php
@@ -3,7 +3,7 @@ class NSFW extends Plugin {
private $host;
function about() {
- return array(1.0,
+ return array(null,
"Hide article content based on tags",
"fox",
false);
@@ -12,9 +12,11 @@ class NSFW extends Plugin {
function init($host) {
$this->host = $host;
- $host->add_hook($host::HOOK_RENDER_ARTICLE, $this);
- $host->add_hook($host::HOOK_RENDER_ARTICLE_CDM, $this);
- $host->add_hook($host::HOOK_PREFS_TAB, $this);
+ $host->add_hook(PluginHost::HOOK_RENDER_ARTICLE, $this);
+ $host->add_hook(PluginHost::HOOK_RENDER_ARTICLE_CDM, $this);
+ $host->add_hook(PluginHost::HOOK_RENDER_ARTICLE_API, $this);
+ $host->add_hook(PluginHost::HOOK_ARTICLE_IMAGE, $this);
+ $host->add_hook(PluginHost::HOOK_PREFS_TAB, $this);
}
@@ -22,22 +24,46 @@ class NSFW extends Plugin {
return file_get_contents(__DIR__ . "/init.js");
}
- function hook_render_article($article) {
- $tags = array_map("trim", explode(",", $this->host->get($this, "tags")));
- $a_tags = array_map("trim", explode(",", $article["tag_cache"]));
+ function hook_article_image($enclosures, $content, $site_url, $article) {
+ $tags = explode(",", $this->host->get($this, "tags"));
+ $article_tags = $article["tags"];
+
+ if (count(array_intersect($tags, $article_tags)) > 0) {
+ return [Config::get_self_url() . "/plugins/nsfw/nsfw.png", "", "nsfw"];
+ } else {
+ return ["", "", $content];
+ }
+ }
+
+ private function rewrite_contents($article, bool $add_api_js = false) {
+ $tags = explode(",", $this->host->get($this, "tags"));
+ $article_tags = $article["tags"];
- if (count(array_intersect($tags, $a_tags)) > 0) {
- $article["content"] = "<div class='nswf wrapper'>".
+ if (count(array_intersect($tags, $article_tags)) > 0) {
+ $article["content"] = "<div class='nsfw-wrapper'>".
\Controls\button_tag(__("Not work safe (click to toggle)"), '', ['onclick' => 'Plugins.NSFW.toggle(this)']).
- "<div class='nswf content' style='display : none'>".$article["content"]."</div>
+ "<div class='nsfw-content' style='display : none'>".$article["content"]."</div>
</div>";
+
+ if ($add_api_js) {
+ $article["content"] .= "<script type='text/javascript'>const Plugins = {}; " . $this->get_js() . "</script>";
+ }
}
return $article;
}
+ function hook_render_article_api($row) {
+ $article = isset($row['headline']) ? $row['headline'] : $row['article'];
+ return $this->rewrite_contents($article, true);
+ }
+
+ function hook_render_article($article) {
+ return $this->rewrite_contents($article);
+ }
+
function hook_render_article_cdm($article) {
- return $this->hook_render_article($article);
+ return $this->rewrite_contents($article);
}
function hook_prefs_tab($args) {
@@ -90,5 +116,5 @@ class NSFW extends Plugin {
function api_version() {
return 2;
}
+}
-} \ No newline at end of file
diff --git a/plugins/nsfw/nsfw.png b/plugins/nsfw/nsfw.png
new file mode 100644
index 000000000..b735c24a9
--- /dev/null
+++ b/plugins/nsfw/nsfw.png
Binary files differ
diff --git a/plugins/scored_oldest_first/init.php b/plugins/scored_oldest_first/init.php
deleted file mode 100644
index fc3b1f8db..000000000
--- a/plugins/scored_oldest_first/init.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-class Scored_Oldest_First extends Plugin {
-
- function init($host) {
- $host->add_hook($host::HOOK_HEADLINES_CUSTOM_SORT_MAP, $this);
- $host->add_hook($host::HOOK_HEADLINES_CUSTOM_SORT_OVERRIDE, $this);
- }
-
- function hook_headlines_custom_sort_map() {
- return [
- "dates_reverse_scored" => "Oldest first (with score)"
- ];
- }
-
- function hook_headlines_custom_sort_override($order) {
- if ($order == "dates_reverse_scored") {
- return [ "score DESC, updated", true ];
- } else {
- return [ "", false ];
- }
- }
-
- function about() {
- return array(1.0,
- "Consider article score while sorting by oldest first",
- "fox",
- false,
- "");
- }
-
- function api_version() {
- return 2;
- }
-
-}
diff --git a/plugins/share/init.php b/plugins/share/init.php
index 37799fba6..64a9054eb 100644
--- a/plugins/share/init.php
+++ b/plugins/share/init.php
@@ -3,7 +3,7 @@ class Share extends Plugin {
private $host;
function about() {
- return array(1.0,
+ return array(null,
"Share article by unique URL",
"fox");
}
@@ -47,9 +47,10 @@ class Share extends Plugin {
?>
<hr/>
- <h2><?= __("You can disable all articles shared by unique URLs here.") ?></h2>
+ <?= format_notice("You can disable all articles shared by unique URLs here.") ?></h2>
<button class='alt-danger' dojoType='dijit.form.Button' onclick="return Plugins.Share.clearKeys()">
+ <?= \Controls\icon('delete') ?>
<?= __('Unshare all articles') ?></button>
<?php
}
@@ -141,7 +142,7 @@ class Share extends Plugin {
$line);
$enclosures = Article::_get_enclosures($line["id"]);
- list ($og_image, $og_stream) = Article::_get_image($enclosures, $line['content'], $line["site_url"]);
+ list ($og_image, $og_stream) = Article::_get_image($enclosures, $line['content'], $line["site_url"], $line);
$content_decoded = html_entity_decode($line["title"], ENT_NOQUOTES | ENT_HTML401);
$parsed_updated = TimeHelper::make_local_datetime($line["updated"], true, $owner_uid, true);
diff --git a/plugins/shorten_expanded/init.php b/plugins/shorten_expanded/init.php
index f816a838d..9673f581b 100644
--- a/plugins/shorten_expanded/init.php
+++ b/plugins/shorten_expanded/init.php
@@ -3,7 +3,7 @@ class Shorten_Expanded extends Plugin {
private $host;
function about() {
- return array(1.0,
+ return array(null,
"Shorten overly long articles in CDM/expanded",
"fox");
}
diff --git a/plugins/toggle_sidebar/init.php b/plugins/toggle_sidebar/init.php
index 19ca960e2..a6c919e03 100644
--- a/plugins/toggle_sidebar/init.php
+++ b/plugins/toggle_sidebar/init.php
@@ -4,7 +4,7 @@ class Toggle_Sidebar extends Plugin {
private $host;
function about() {
- return array(1.0,
+ return array(null,
"Adds a main toolbar button to toggle sidebar",
"fox");
}
diff --git a/plugins/vf_shared/init.php b/plugins/vf_shared/init.php
deleted file mode 100644
index 1112f6f2f..000000000
--- a/plugins/vf_shared/init.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-class VF_Shared extends Plugin {
-
- /* @var PluginHost $host */
- private $host;
-
- function about() {
- return array(1.0,
- "Feed for all articles actively shared by URL",
- "fox",
- false);
- }
-
- function init($host) {
- $this->host = $host;
-
- $host->add_feed(-1, __("Shared articles"), 'link', $this);
- }
-
- function api_version() {
- return 2;
- }
-
- function get_unread($feed_id) {
- $sth = $this->pdo->prepare("select count(int_id) AS count
- from ttrss_user_entries where owner_uid = ? and unread = true and uuid != ''");
- $sth->execute([$_SESSION['uid']]);
-
- if ($row = $sth->fetch()) {
- return $row['count'];
- }
-
- return 0;
- }
-
- function get_total($feed_id) {
- $sth = $this->pdo->prepare("select count(int_id) AS count
- from ttrss_user_entries where owner_uid = ? and uuid != ''");
- $sth->execute([$_SESSION['uid']]);
-
- if ($row = $sth->fetch()) {
- return $row['count'];
- }
-
- return 0;
- }
-
- function get_headlines($feed_id, $options) {
- $params = array(
- "feed" => -4,
- "limit" => $options["limit"],
- "view_mode" => $this->get_unread(-1) > 0 ? "adaptive" : "all_articles",
- "search" => $options['search'],
- "override_order" => $options['override_order'],
- "offset" => $options["offset"],
- "filter" => $options["filter"],
- "since_id" => $options["since_id"],
- "include_children" => $options["include_children"],
- "override_strategy" => "uuid != ''",
- "override_vfeed" => "ttrss_feeds.title AS feed_title,"
- );
-
- $qfh_ret = Feeds::_get_headlines($params);
- $qfh_ret[1] = __("Shared articles");
-
- return $qfh_ret;
- }
-
-}
diff --git a/prefs.php b/prefs.php
index a6cbfd886..3f6eb47c6 100644
--- a/prefs.php
+++ b/prefs.php
@@ -5,7 +5,8 @@
require_once "autoload.php";
require_once "sessions.php";
require_once "functions.php";
- require_once "sanity_check.php";
+
+ Config::sanity_check();
if (!init_plugins()) return;
@@ -22,7 +23,7 @@
<?php if ($_SESSION["uid"] && empty($_SESSION["safe_mode"])) {
$theme = get_pref(Prefs::USER_CSS_THEME);
if ($theme && theme_exists("$theme")) {
- echo stylesheet_tag(get_theme_path($theme), 'theme_css');
+ echo stylesheet_tag(get_theme_path($theme), ['id' => 'theme_css']);
}
} ?>
@@ -117,6 +118,7 @@
title="<?= __("Communication problem with server.") ?>">error_outline</i>
<i class="material-icons log-alert" style="display : none" onclick="App.openPreferences('system')"
title="<?= __("Recent entries found in event log.") ?>">warning</i>
+ <i id="updates-available" class="material-icons icon-new-version" style="display : none">new_releases</i>
<a href="#" onclick="document.location.href = 'index.php'"><?= __('Exit preferences') ?></a>
</div>
@@ -149,14 +151,12 @@
PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_TABS);
?>
</div>
- <?php $version = get_version($git_commit, $git_timestamp, $last_error); ?>
<div id="footer" dojoType="dijit.layout.ContentPane" region="bottom">
- <a class="text-muted" target="_blank" href="https://tt-rss.org/">Tiny Tiny RSS</a>
- <span title="<?= htmlspecialchars($last_error) ?>">v<?= $version ?></span>
- &copy; 2005-<?= date('Y') ?>
- <a class="text-muted" target="_blank"
- href="https://fakecake.org/">Andrew Dolgov</a>
- </div> <!-- footer -->
+ <a class="text-muted" target="_blank" href="https://tt-rss.org/">Tiny Tiny RSS</a>
+ <span>v<?= Config::get_version() ?></span>
+ &copy; 2005-<?= date('Y') ?>
+ <a class="text-muted" target="_blank" href="https://fakecake.org/">Andrew Dolgov</a>
+ </div>
</div>
</body>
diff --git a/public.php b/public.php
index 28f95d0a9..f44a94c01 100644
--- a/public.php
+++ b/public.php
@@ -5,7 +5,8 @@
require_once "autoload.php";
require_once "sessions.php";
require_once "functions.php";
- require_once "sanity_check.php";
+
+ Config::sanity_check();
startup_gettext();
diff --git a/schema/ttrss_schema_mysql.sql b/schema/ttrss_schema_mysql.sql
index 90b07e116..e69de29bb 100644
--- a/schema/ttrss_schema_mysql.sql
+++ b/schema/ttrss_schema_mysql.sql
@@ -1,418 +0,0 @@
-SET NAMES utf8;
-SET CHARACTER SET utf8;
-
-drop table if exists ttrss_error_log;
-drop table if exists ttrss_plugin_storage;
-drop table if exists ttrss_linked_feeds;
-drop table if exists ttrss_linked_instances;
-drop table if exists ttrss_access_keys;
-drop table if exists ttrss_user_labels2;
-drop table if exists ttrss_labels2;
-drop table if exists ttrss_feedbrowser_cache;
-drop table if exists ttrss_version;
-drop table if exists ttrss_labels;
-drop table if exists ttrss_filters2_actions;
-drop table if exists ttrss_filters2_rules;
-drop table if exists ttrss_filters2;
-drop table if exists ttrss_filters;
-drop table if exists ttrss_filter_types;
-drop table if exists ttrss_filter_actions;
-drop table if exists ttrss_user_prefs;
-drop table if exists ttrss_user_prefs2;
-drop table if exists ttrss_prefs;
-drop table if exists ttrss_prefs_types;
-drop table if exists ttrss_prefs_sections;
-drop table if exists ttrss_tags;
-drop table if exists ttrss_enclosures;
-drop table if exists ttrss_settings_profiles;
-drop table if exists ttrss_entry_comments;
-drop table if exists ttrss_user_entries;
-drop table if exists ttrss_entries;
-drop table if exists ttrss_scheduled_updates;
-drop table if exists ttrss_counters_cache;
-drop table if exists ttrss_cat_counters_cache;
-drop table if exists ttrss_feeds;
-drop table if exists ttrss_archived_feeds;
-drop table if exists ttrss_feed_categories;
-drop table if exists ttrss_app_passwords;
-drop table if exists ttrss_users;
-drop table if exists ttrss_themes;
-drop table if exists ttrss_sessions;
-
-begin;
-
-create table ttrss_users (id integer primary key not null auto_increment,
- login varchar(120) not null unique,
- pwd_hash varchar(250) not null,
- last_login datetime default null,
- access_level integer not null default 0,
- email varchar(250) not null default '',
- full_name varchar(250) not null default '',
- email_digest bool not null default false,
- last_digest_sent datetime default null,
- salt varchar(250) not null default '',
- created datetime default null,
- twitter_oauth longtext default null,
- otp_enabled boolean not null default false,
- resetpass_token varchar(250) default null) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
-
-insert into ttrss_users (login,pwd_hash,access_level) values ('admin',
- 'SHA1:5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8', 10);
-
-create table ttrss_app_passwords (id integer not null primary key auto_increment,
- title varchar(250) not null,
- pwd_hash text not null,
- service varchar(100) not null,
- created datetime not null,
- last_used datetime default null,
- owner_uid integer not null references ttrss_users(id) on delete cascade) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
-
-create table ttrss_feed_categories(id integer not null primary key auto_increment,
- owner_uid integer not null,
- title varchar(200) not null,
- collapsed bool not null default false,
- order_id integer not null default 0,
- parent_cat integer,
- view_settings varchar(250) not null default '',
- foreign key (parent_cat) references ttrss_feed_categories(id) ON DELETE SET NULL,
- foreign key (owner_uid) references ttrss_users(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
-
-create table ttrss_archived_feeds (id integer not null primary key,
- owner_uid integer not null,
- created datetime not null,
- title varchar(200) not null,
- feed_url text not null,
- site_url varchar(250) not null default '',
- foreign key (owner_uid) references ttrss_users(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
-
-create table ttrss_counters_cache (
- feed_id integer not null,
- owner_uid integer not null,
- value integer not null default 0,
- updated datetime not null,
- foreign key (owner_uid) references ttrss_users(id) ON DELETE CASCADE
-) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
-
-create index ttrss_counters_cache_feed_id_idx on ttrss_counters_cache(feed_id);
-create index ttrss_counters_cache_value_idx on ttrss_counters_cache(value);
-
-create table ttrss_cat_counters_cache (
- feed_id integer not null,
- owner_uid integer not null,
- value integer not null default 0,
- updated datetime not null,
- foreign key (owner_uid) references ttrss_users(id) ON DELETE CASCADE
-) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
-
-create table ttrss_feeds (id integer not null auto_increment primary key,
- owner_uid integer not null,
- title varchar(200) not null,
- cat_id integer default null,
- feed_url text not null,
- icon_url varchar(250) not null default '',
- update_interval integer not null default 0,
- purge_interval integer not null default 0,
- last_updated datetime default null,
- last_unconditional datetime default null,
- last_error varchar(250) not null default '',
- last_modified varchar(250) not null default '',
- favicon_avg_color varchar(11) default null,
- site_url varchar(250) not null default '',
- auth_login varchar(250) not null default '',
- auth_pass varchar(250) not null default '',
- parent_feed integer default null,
- private bool not null default false,
- rtl_content bool not null default false,
- hidden bool not null default false,
- include_in_digest boolean not null default true,
- cache_images boolean not null default false,
- hide_images boolean not null default false,
- cache_content boolean not null default false,
- auth_pass_encrypted boolean not null default false,
- last_viewed datetime default null,
- last_update_started datetime default null,
- last_successful_update datetime default null,
- always_display_enclosures boolean not null default false,
- update_method integer not null default 0,
- order_id integer not null default 0,
- mark_unread_on_update boolean not null default false,
- update_on_checksum_change boolean not null default false,
- strip_images boolean not null default false,
- view_settings varchar(250) not null default '',
- pubsub_state integer not null default 0,
- favicon_last_checked datetime default null,
- feed_language varchar(100) not null default '',
- foreign key (owner_uid) references ttrss_users(id) ON DELETE CASCADE,
- foreign key (cat_id) references ttrss_feed_categories(id) ON DELETE SET NULL,
- foreign key (parent_feed) references ttrss_feeds(id) ON DELETE SET NULL,
- unique(feed_url(255), owner_uid)) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
-
-insert into ttrss_feeds (owner_uid, title, feed_url) values
- ((select id from ttrss_users where login = 'admin'), 'Tiny Tiny RSS: Forum', 'https://tt-rss.org/forum/rss.php');
-
-create table ttrss_entries (id integer not null primary key auto_increment,
- title text not null,
- guid varchar(255) not null unique,
- link text not null,
- updated datetime not null,
- content longtext not null,
- content_hash varchar(250) not null,
- cached_content longtext,
- no_orig_date bool not null default 0,
- date_entered datetime not null,
- date_updated datetime not null,
- num_comments integer not null default 0,
- plugin_data longtext,
- lang varchar(2),
- comments varchar(250) not null default '',
- author varchar(250) not null default '') ENGINE=InnoDB DEFAULT CHARSET=UTF8;
-
-create index ttrss_entries_date_entered_index on ttrss_entries(date_entered);
-create index ttrss_entries_updated_idx on ttrss_entries(updated);
-
-create table ttrss_user_entries (
- int_id integer not null primary key auto_increment,
- ref_id integer not null,
- uuid varchar(200) not null,
- feed_id int,
- orig_feed_id int,
- owner_uid integer not null,
- marked bool not null default 0,
- published bool not null default 0,
- tag_cache text not null,
- label_cache text not null,
- last_read datetime,
- score int not null default 0,
- note longtext,
- last_marked datetime,
- last_published datetime,
- unread bool not null default 1,
- foreign key (ref_id) references ttrss_entries(id) ON DELETE CASCADE,
- foreign key (feed_id) references ttrss_feeds(id) ON DELETE CASCADE,
- foreign key (orig_feed_id) references ttrss_archived_feeds(id) ON DELETE SET NULL,
- foreign key (owner_uid) references ttrss_users(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
-
-create index ttrss_user_entries_unread_idx on ttrss_user_entries(unread);
-
-create table ttrss_entry_comments (id integer not null primary key,
- ref_id integer not null,
- owner_uid integer not null,
- private bool not null default 0,
- date_entered datetime not null,
- index (ref_id),
- foreign key (ref_id) references ttrss_entries(id) ON DELETE CASCADE,
- index (owner_uid),
- foreign key (owner_uid) references ttrss_users(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
-
-create table ttrss_filter_types (id integer primary key,
- name varchar(120) unique not null,
- description varchar(250) not null unique) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
-
-insert into ttrss_filter_types (id,name,description) values (1, 'title', 'Title');
-insert into ttrss_filter_types (id,name,description) values (2, 'content', 'Content');
-insert into ttrss_filter_types (id,name,description) values (3, 'both',
- 'Title or Content');
-insert into ttrss_filter_types (id,name,description) values (4, 'link',
- 'Link');
-insert into ttrss_filter_types (id,name,description) values (5, 'date',
- 'Article Date');
-insert into ttrss_filter_types (id,name,description) values (6, 'author', 'Author');
-insert into ttrss_filter_types (id,name,description) values (7, 'tag', 'Article Tags');
-
-create table ttrss_filter_actions (id integer not null primary key,
- name varchar(120) unique not null,
- description varchar(250) not null unique) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
-
-insert into ttrss_filter_actions (id,name,description) values (1, 'filter',
- 'Delete article');
-
-insert into ttrss_filter_actions (id,name,description) values (2, 'catchup',
- 'Mark as read');
-
-insert into ttrss_filter_actions (id,name,description) values (3, 'mark',
- 'Set starred');
-
-insert into ttrss_filter_actions (id,name,description) values (4, 'tag',
- 'Assign tags');
-
-insert into ttrss_filter_actions (id,name,description) values (5, 'publish',
- 'Publish article');
-
-insert into ttrss_filter_actions (id,name,description) values (6, 'score',
- 'Modify score');
-
-insert into ttrss_filter_actions (id,name,description) values (7, 'label',
- 'Assign label');
-
-insert into ttrss_filter_actions (id,name,description) values (8, 'stop',
- 'Stop / Do nothing');
-
-insert into ttrss_filter_actions (id,name,description) values (9, 'plugin',
- 'Invoke plugin');
-
-create table ttrss_filters2(id integer primary key auto_increment,
- owner_uid integer not null,
- match_any_rule boolean not null default false,
- enabled boolean not null default true,
- inverse bool not null default false,
- title varchar(250) not null default '',
- order_id integer not null default 0,
- last_triggered datetime default null,
- foreign key (owner_uid) references ttrss_users(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
-
-create table ttrss_filters2_rules(id integer primary key auto_increment,
- filter_id integer not null references ttrss_filters2(id) on delete cascade,
- reg_exp text not null,
- inverse bool not null default false,
- filter_type integer not null,
- feed_id integer default null,
- cat_id integer default null,
- cat_filter boolean not null default false,
- match_on text,
- index (filter_id),
- foreign key (filter_id) references ttrss_filters2(id) on delete cascade,
- index (filter_type),
- foreign key (filter_type) references ttrss_filter_types(id) ON DELETE CASCADE,
- index (feed_id),
- foreign key (feed_id) references ttrss_feeds(id) ON DELETE CASCADE,
- index (cat_id),
- foreign key (cat_id) references ttrss_feed_categories(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
-
-create table ttrss_filters2_actions(id integer primary key auto_increment,
- filter_id integer not null,
- action_id integer not null default 1 references ttrss_filter_actions(id) on delete cascade,
- action_param varchar(250) not null default '',
- index (filter_id),
- foreign key (filter_id) references ttrss_filters2(id) on delete cascade,
- index (action_id),
- foreign key (action_id) references ttrss_filter_actions(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
-
-create table ttrss_tags (id integer primary key auto_increment,
- owner_uid integer not null,
- tag_name varchar(250) not null,
- post_int_id integer not null,
- index (post_int_id),
- foreign key (post_int_id) references ttrss_user_entries(int_id) ON DELETE CASCADE,
- index (owner_uid),
- foreign key (owner_uid) references ttrss_users(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
-
-create table ttrss_version (schema_version int not null) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
-
-insert into ttrss_version values (141);
-
-create table ttrss_enclosures (id integer primary key auto_increment,
- content_url text not null,
- content_type varchar(250) not null,
- post_id integer not null,
- title text not null,
- duration text not null,
- width integer not null default 0,
- height integer not null default 0,
- foreign key (post_id) references ttrss_entries(id) ON DELETE cascade) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
-
-create table ttrss_settings_profiles(id integer primary key auto_increment,
- title varchar(250) not null,
- owner_uid integer not null,
- index (owner_uid),
- foreign key (owner_uid) references ttrss_users(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
-
-create table ttrss_prefs_types (id integer not null primary key,
- type_name varchar(100) not null) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
-
-create table ttrss_prefs_sections (id integer not null primary key,
- order_id integer not null) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
-
-create table ttrss_prefs (pref_name varchar(250) not null primary key,
- type_id integer not null,
- section_id integer not null default 1,
- access_level integer not null default 0,
- def_value text not null,
- foreign key (type_id) references ttrss_prefs_types(id),
- foreign key (section_id) references ttrss_prefs_sections(id)) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
-
-create table ttrss_user_prefs (
- owner_uid integer not null,
- pref_name varchar(250),
- value longtext not null,
- profile integer,
- index (profile),
- foreign key (profile) references ttrss_settings_profiles(id) ON DELETE CASCADE,
- foreign key (owner_uid) references ttrss_users(id) ON DELETE CASCADE,
- foreign key (pref_name) references ttrss_prefs(pref_name) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
-
-create table ttrss_user_prefs2 (
- owner_uid integer not null,
- pref_name varchar(250),
- profile integer null,
- value longtext not null,
- foreign key (profile) references ttrss_settings_profiles(id) ON DELETE CASCADE,
- foreign key (owner_uid) references ttrss_users(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
-
-create table ttrss_sessions (id varchar(250) not null primary key,
- data text,
- expire integer not null,
- index (expire)) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
-
-create table ttrss_feedbrowser_cache (
- feed_url text not null,
- site_url text not null,
- title text not null,
- subscribers integer not null) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
-
-create table ttrss_labels2 (id integer not null primary key auto_increment,
- owner_uid integer not null,
- caption varchar(250) not null,
- fg_color varchar(15) not null default '',
- bg_color varchar(15) not null default '',
- foreign key (owner_uid) references ttrss_users(id) ON DELETE CASCADE
-) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
-
-create table ttrss_user_labels2 (label_id integer not null,
- article_id integer not null,
- foreign key (label_id) references ttrss_labels2(id) ON DELETE CASCADE,
- foreign key (article_id) references ttrss_entries(id) ON DELETE CASCADE
-) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
-
-create table ttrss_access_keys (id integer not null primary key auto_increment,
- access_key varchar(250) not null,
- feed_id varchar(250) not null,
- is_cat bool not null default false,
- owner_uid integer not null,
- foreign key (owner_uid) references ttrss_users(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
-
-create table ttrss_linked_instances (id integer not null primary key auto_increment,
- last_connected datetime not null,
- last_status_in integer not null,
- last_status_out integer not null,
- access_key varchar(250) not null unique,
- access_url text not null) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
-
-create table ttrss_linked_feeds (
- feed_url text not null,
- site_url text not null,
- title text not null,
- created datetime not null,
- updated datetime not null,
- instance_id integer not null,
- subscribers integer not null,
- foreign key (instance_id) references ttrss_linked_instances(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
-
-create table ttrss_plugin_storage (
- id integer not null auto_increment primary key,
- name varchar(100) not null,
- owner_uid integer not null,
- content longtext not null,
- foreign key (owner_uid) references ttrss_users(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
-
-create table ttrss_error_log(
- id integer not null auto_increment primary key,
- owner_uid integer,
- errno integer not null,
- errstr text not null,
- filename text not null,
- lineno integer not null,
- context text not null,
- created_at datetime not null,
- foreign key (owner_uid) references ttrss_users(id) ON DELETE SET NULL) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
-
-commit;
diff --git a/schema/ttrss_schema_pgsql.sql b/schema/ttrss_schema_pgsql.sql
index d7200264a..e69de29bb 100644
--- a/schema/ttrss_schema_pgsql.sql
+++ b/schema/ttrss_schema_pgsql.sql
@@ -1,396 +0,0 @@
-drop table if exists ttrss_error_log;
-drop table if exists ttrss_plugin_storage;
-drop table if exists ttrss_linked_feeds;
-drop table if exists ttrss_linked_instances;
-drop table if exists ttrss_access_keys;
-drop table if exists ttrss_user_labels2;
-drop table if exists ttrss_labels2;
-drop table if exists ttrss_feedbrowser_cache;
-drop table if exists ttrss_version;
-drop table if exists ttrss_labels;
-drop table if exists ttrss_filters2_rules;
-drop table if exists ttrss_filters2_actions;
-drop table if exists ttrss_filters2;
-drop table if exists ttrss_filters;
-drop table if exists ttrss_filter_types;
-drop table if exists ttrss_filter_actions;
-drop table if exists ttrss_user_prefs;
-drop table if exists ttrss_user_prefs2;
-drop table if exists ttrss_prefs;
-drop table if exists ttrss_prefs_types;
-drop table if exists ttrss_prefs_sections;
-drop table if exists ttrss_tags;
-drop table if exists ttrss_enclosures;
-drop table if exists ttrss_settings_profiles;
-drop table if exists ttrss_entry_comments;
-drop table if exists ttrss_user_entries;
-drop table if exists ttrss_entries;
-drop table if exists ttrss_scheduled_updates;
-drop table if exists ttrss_counters_cache;
-drop table if exists ttrss_cat_counters_cache;
-drop table if exists ttrss_archived_feeds;
-drop table if exists ttrss_feeds;
-drop table if exists ttrss_feed_categories;
-drop table if exists ttrss_app_passwords;
-drop table if exists ttrss_users;
-drop table if exists ttrss_themes;
-drop table if exists ttrss_sessions;
-drop function if exists SUBSTRING_FOR_DATE(timestamp, int, int);
-
-begin;
-
-create table ttrss_users (id serial not null primary key,
- login varchar(120) not null unique,
- pwd_hash varchar(250) not null,
- last_login timestamp default null,
- access_level integer not null default 0,
- email varchar(250) not null default '',
- full_name varchar(250) not null default '',
- email_digest boolean not null default false,
- last_digest_sent timestamp default null,
- salt varchar(250) not null default '',
- twitter_oauth text default null,
- otp_enabled boolean not null default false,
- resetpass_token varchar(250) default null,
- created timestamp default null);
-
-insert into ttrss_users (login,pwd_hash,access_level) values ('admin',
- 'SHA1:5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8', 10);
-
-create table ttrss_app_passwords (id serial not null primary key,
- title varchar(250) not null,
- pwd_hash text not null,
- service varchar(100) not null,
- created timestamp not null,
- last_used timestamp default null,
- owner_uid integer not null references ttrss_users(id) on delete cascade);
-
-create table ttrss_feed_categories(id serial not null primary key,
- owner_uid integer not null references ttrss_users(id) on delete cascade,
- collapsed boolean not null default false,
- order_id integer not null default 0,
- view_settings varchar(250) not null default '',
- parent_cat integer references ttrss_feed_categories(id) on delete set null,
- title varchar(200) not null);
-
-create table ttrss_feeds (id serial not null primary key,
- owner_uid integer not null references ttrss_users(id) on delete cascade,
- title varchar(200) not null,
- cat_id integer default null references ttrss_feed_categories(id) on delete set null,
- feed_url text not null,
- icon_url varchar(250) not null default '',
- update_interval integer not null default 0,
- purge_interval integer not null default 0,
- last_updated timestamp default null,
- last_unconditional timestamp default null,
- last_error text not null default '',
- last_modified text not null default '',
- favicon_avg_color varchar(11) default null,
- site_url varchar(250) not null default '',
- auth_login varchar(250) not null default '',
- parent_feed integer default null references ttrss_feeds(id) on delete set null,
- private boolean not null default false,
- auth_pass varchar(250) not null default '',
- hidden boolean not null default false,
- include_in_digest boolean not null default true,
- rtl_content boolean not null default false,
- cache_images boolean not null default false,
- hide_images boolean not null default false,
- cache_content boolean not null default false,
- last_viewed timestamp default null,
- last_update_started timestamp default null,
- last_successful_update timestamp default null,
- update_method integer not null default 0,
- always_display_enclosures boolean not null default false,
- order_id integer not null default 0,
- mark_unread_on_update boolean not null default false,
- update_on_checksum_change boolean not null default false,
- strip_images boolean not null default false,
- view_settings varchar(250) not null default '',
- pubsub_state integer not null default 0,
- favicon_last_checked timestamp default null,
- feed_language varchar(100) not null default '',
- auth_pass_encrypted boolean not null default false,
- unique(feed_url, owner_uid));
-
-create index ttrss_feeds_owner_uid_index on ttrss_feeds(owner_uid);
-create index ttrss_feeds_cat_id_idx on ttrss_feeds(cat_id);
-
-insert into ttrss_feeds (owner_uid, title, feed_url) values
- ((select id from ttrss_users where login = 'admin'), 'Tiny Tiny RSS: Forum', 'https://tt-rss.org/forum/rss.php');
-
-create table ttrss_archived_feeds (id integer not null primary key,
- owner_uid integer not null references ttrss_users(id) on delete cascade,
- created timestamp not null,
- title varchar(200) not null,
- feed_url text not null,
- site_url varchar(250) not null default '');
-
-create table ttrss_counters_cache (
- feed_id integer not null,
- owner_uid integer not null references ttrss_users(id) ON DELETE CASCADE,
- updated timestamp not null,
- value integer not null default 0);
-
-create index ttrss_counters_cache_feed_id_idx on ttrss_counters_cache(feed_id);
-create index ttrss_counters_cache_owner_uid_idx on ttrss_counters_cache(owner_uid);
-create index ttrss_counters_cache_value_idx on ttrss_counters_cache(value);
-
-create table ttrss_cat_counters_cache (
- feed_id integer not null,
- owner_uid integer not null references ttrss_users(id) ON DELETE CASCADE,
- updated timestamp not null,
- value integer not null default 0);
-
-create index ttrss_cat_counters_cache_owner_uid_idx on ttrss_cat_counters_cache(owner_uid);
-
-create table ttrss_entries (id serial not null primary key,
- title text not null,
- guid text not null unique,
- link text not null,
- updated timestamp not null,
- content text not null,
- content_hash varchar(250) not null,
- cached_content text,
- no_orig_date boolean not null default false,
- date_entered timestamp not null,
- date_updated timestamp not null,
- num_comments integer not null default 0,
- comments varchar(250) not null default '',
- plugin_data text,
- tsvector_combined tsvector,
- lang varchar(2),
- author varchar(250) not null default '');
-
--- create index ttrss_entries_title_index on ttrss_entries(title);
-create index ttrss_entries_date_entered_index on ttrss_entries(date_entered);
-create index ttrss_entries_updated_idx on ttrss_entries(updated);
-create index ttrss_entries_tsvector_combined_idx on ttrss_entries using gin(tsvector_combined);
-
-create table ttrss_user_entries (
- int_id serial not null primary key,
- ref_id integer not null references ttrss_entries(id) ON DELETE CASCADE,
- uuid varchar(200) not null,
- feed_id int references ttrss_feeds(id) ON DELETE CASCADE,
- orig_feed_id integer references ttrss_archived_feeds(id) ON DELETE SET NULL,
- owner_uid integer not null references ttrss_users(id) ON DELETE CASCADE,
- marked boolean not null default false,
- published boolean not null default false,
- tag_cache text not null,
- label_cache text not null,
- last_read timestamp,
- score int not null default 0,
- last_marked timestamp,
- last_published timestamp,
- note text,
- unread boolean not null default true);
-
--- create index ttrss_user_entries_feed_id_index on ttrss_user_entries(feed_id);
-create index ttrss_user_entries_owner_uid_index on ttrss_user_entries(owner_uid);
-create index ttrss_user_entries_ref_id_index on ttrss_user_entries(ref_id);
-create index ttrss_user_entries_feed_id on ttrss_user_entries(feed_id);
-create index ttrss_user_entries_unread_idx on ttrss_user_entries(unread);
-
-create table ttrss_entry_comments (id serial not null primary key,
- ref_id integer not null references ttrss_entries(id) ON DELETE CASCADE,
- owner_uid integer not null references ttrss_users(id) ON DELETE CASCADE,
- private boolean not null default false,
- date_entered timestamp not null);
-
-create index ttrss_entry_comments_ref_id_index on ttrss_entry_comments(ref_id);
--- create index ttrss_entry_comments_owner_uid_index on ttrss_entry_comments(owner_uid);
-
-create table ttrss_filter_types (id integer not null primary key,
- name varchar(120) unique not null,
- description varchar(250) not null unique);
-
-insert into ttrss_filter_types (id,name,description) values (1, 'title', 'Title');
-insert into ttrss_filter_types (id,name,description) values (2, 'content', 'Content');
-insert into ttrss_filter_types (id,name,description) values (3, 'both',
- 'Title or Content');
-insert into ttrss_filter_types (id,name,description) values (4, 'link',
- 'Link');
-insert into ttrss_filter_types (id,name,description) values (5, 'date',
- 'Article Date');
-insert into ttrss_filter_types (id,name,description) values (6, 'author', 'Author');
-insert into ttrss_filter_types (id,name,description) values (7, 'tag', 'Article Tags');
-
-create table ttrss_filter_actions (id integer not null primary key,
- name varchar(120) unique not null,
- description varchar(250) not null unique);
-
-insert into ttrss_filter_actions (id,name,description) values (1, 'filter',
- 'Delete article');
-
-insert into ttrss_filter_actions (id,name,description) values (2, 'catchup',
- 'Mark as read');
-
-insert into ttrss_filter_actions (id,name,description) values (3, 'mark',
- 'Set starred');
-
-insert into ttrss_filter_actions (id,name,description) values (4, 'tag',
- 'Assign tags');
-
-insert into ttrss_filter_actions (id,name,description) values (5, 'publish',
- 'Publish article');
-
-insert into ttrss_filter_actions (id,name,description) values (6, 'score',
- 'Modify score');
-
-insert into ttrss_filter_actions (id,name,description) values (7, 'label',
- 'Assign label');
-
-insert into ttrss_filter_actions (id,name,description) values (8, 'stop',
- 'Stop / Do nothing');
-
-insert into ttrss_filter_actions (id,name,description) values (9, 'plugin',
- 'Invoke plugin');
-
-create table ttrss_filters2(id serial not null primary key,
- owner_uid integer not null references ttrss_users(id) on delete cascade,
- match_any_rule boolean not null default false,
- inverse boolean not null default false,
- title varchar(250) not null default '',
- order_id integer not null default 0,
- last_triggered timestamp default null,
- enabled boolean not null default true);
-
-create table ttrss_filters2_rules(id serial not null primary key,
- filter_id integer not null references ttrss_filters2(id) on delete cascade,
- reg_exp text not null,
- inverse boolean not null default false,
- filter_type integer not null references ttrss_filter_types(id),
- feed_id integer references ttrss_feeds(id) on delete cascade default null,
- cat_id integer references ttrss_feed_categories(id) on delete cascade default null,
- match_on text,
- cat_filter boolean not null default false);
-
-create table ttrss_filters2_actions(id serial not null primary key,
- filter_id integer not null references ttrss_filters2(id) on delete cascade,
- action_id integer not null default 1 references ttrss_filter_actions(id) on delete cascade,
- action_param varchar(250) not null default '');
-
-create table ttrss_tags (id serial not null primary key,
- tag_name varchar(250) not null,
- owner_uid integer not null references ttrss_users(id) on delete cascade,
- post_int_id integer references ttrss_user_entries(int_id) ON DELETE CASCADE not null);
-
-create index ttrss_tags_owner_uid_index on ttrss_tags(owner_uid);
-create index ttrss_tags_post_int_id_idx on ttrss_tags(post_int_id);
-
-create table ttrss_version (schema_version int not null);
-
-insert into ttrss_version values (141);
-
-create table ttrss_enclosures (id serial not null primary key,
- content_url text not null,
- content_type varchar(250) not null,
- title text not null,
- duration text not null,
- width integer not null default 0,
- height integer not null default 0,
- post_id integer references ttrss_entries(id) ON DELETE cascade NOT NULL);
-
-create index ttrss_enclosures_post_id_idx on ttrss_enclosures(post_id);
-
-create table ttrss_settings_profiles(id serial not null primary key,
- title varchar(250) not null,
- owner_uid integer not null references ttrss_users(id) on delete cascade);
-
-create table ttrss_prefs_types (id integer not null primary key,
- type_name varchar(100) not null);
-
-create table ttrss_prefs_sections (id integer not null primary key,
- order_id integer not null,
- section_name varchar(100) not null);
-
-create table ttrss_prefs (pref_name varchar(250) not null primary key,
- type_id integer not null references ttrss_prefs_types(id),
- section_id integer not null default 1 references ttrss_prefs_sections(id),
- access_level integer not null default 0,
- def_value text not null);
-
-create table ttrss_user_prefs (
- owner_uid integer not null references ttrss_users(id) ON DELETE CASCADE,
- pref_name varchar(250) not null references ttrss_prefs(pref_name) ON DELETE CASCADE,
- profile integer references ttrss_settings_profiles(id) ON DELETE CASCADE,
- value text not null);
-
-create index ttrss_user_prefs_owner_uid_index on ttrss_user_prefs(owner_uid);
-create index ttrss_user_prefs_pref_name_idx on ttrss_user_prefs(pref_name);
-
-create table ttrss_user_prefs2 (
- owner_uid integer not null references ttrss_users(id) ON DELETE CASCADE,
- pref_name varchar(250) not null,
- profile integer references ttrss_settings_profiles(id) ON DELETE CASCADE,
- value text not null);
-
-create index ttrss_user_prefs2_owner_uid_index on ttrss_user_prefs2(owner_uid);
-create index ttrss_user_prefs2_pref_name_idx on ttrss_user_prefs2(pref_name);
-create unique index ttrss_user_prefs2_composite_idx on ttrss_user_prefs2(pref_name, owner_uid, coalesce(profile, -1));
-
-create table ttrss_sessions (id varchar(250) not null primary key,
- data text,
- expire integer not null);
-
-create index ttrss_sessions_expire_index on ttrss_sessions(expire);
-
-create function SUBSTRING_FOR_DATE(timestamp, int, int) RETURNS text AS 'SELECT SUBSTRING(CAST($1 AS text), $2, $3)' LANGUAGE 'sql';
-
-create table ttrss_feedbrowser_cache (
- feed_url text not null primary key,
- title text not null,
- site_url text not null,
- subscribers integer not null);
-
-create table ttrss_labels2 (id serial not null primary key,
- owner_uid integer not null references ttrss_users(id) ON DELETE CASCADE,
- fg_color varchar(15) not null default '',
- bg_color varchar(15) not null default '',
- caption varchar(250) not null
-);
-
-create table ttrss_user_labels2 (
- label_id integer not null references ttrss_labels2(id) ON DELETE CASCADE,
- article_id integer not null references ttrss_entries(id) ON DELETE CASCADE
-);
-
-create table ttrss_access_keys (id serial not null primary key,
- access_key varchar(250) not null,
- feed_id varchar(250) not null,
- is_cat boolean not null default false,
- owner_uid integer not null references ttrss_users(id) on delete cascade);
-
-create table ttrss_linked_instances (id serial not null primary key,
- last_connected timestamp not null,
- last_status_in integer not null,
- last_status_out integer not null,
- access_key varchar(250) not null unique,
- access_url text not null);
-
-create table ttrss_linked_feeds (
- feed_url text not null,
- site_url text not null,
- title text not null,
- created timestamp not null,
- updated timestamp not null,
- instance_id integer not null references ttrss_linked_instances(id) ON DELETE CASCADE,
- subscribers integer not null);
-
-create table ttrss_plugin_storage (
- id serial not null primary key,
- name varchar(100) not null,
- owner_uid integer not null references ttrss_users(id) ON DELETE CASCADE,
- content text not null);
-
-create table ttrss_error_log(
- id serial not null primary key,
- owner_uid integer references ttrss_users(id) ON DELETE SET NULL,
- errno integer not null,
- errstr text not null,
- filename text not null,
- lineno integer not null,
- context text not null,
- created_at timestamp not null);
-
-commit;
diff --git a/schema/versions/mysql/10.sql b/sql/mysql/migrations/10.sql
index e951f482f..e951f482f 100644
--- a/schema/versions/mysql/10.sql
+++ b/sql/mysql/migrations/10.sql
diff --git a/schema/versions/mysql/100.sql b/sql/mysql/migrations/100.sql
index a360dab6c..a360dab6c 100644
--- a/schema/versions/mysql/100.sql
+++ b/sql/mysql/migrations/100.sql
diff --git a/schema/versions/mysql/101.sql b/sql/mysql/migrations/101.sql
index 47ff26522..47ff26522 100644
--- a/schema/versions/mysql/101.sql
+++ b/sql/mysql/migrations/101.sql
diff --git a/schema/versions/mysql/102.sql b/sql/mysql/migrations/102.sql
index ccf5ef3b3..ccf5ef3b3 100644
--- a/schema/versions/mysql/102.sql
+++ b/sql/mysql/migrations/102.sql
diff --git a/schema/versions/mysql/103.sql b/sql/mysql/migrations/103.sql
index 6a93b80b8..6a93b80b8 100644
--- a/schema/versions/mysql/103.sql
+++ b/sql/mysql/migrations/103.sql
diff --git a/schema/versions/mysql/104.sql b/sql/mysql/migrations/104.sql
index 104e4b917..104e4b917 100644
--- a/schema/versions/mysql/104.sql
+++ b/sql/mysql/migrations/104.sql
diff --git a/schema/versions/mysql/105.sql b/sql/mysql/migrations/105.sql
index a96101784..a96101784 100644
--- a/schema/versions/mysql/105.sql
+++ b/sql/mysql/migrations/105.sql
diff --git a/schema/versions/mysql/106.sql b/sql/mysql/migrations/106.sql
index b819416b9..b819416b9 100644
--- a/schema/versions/mysql/106.sql
+++ b/sql/mysql/migrations/106.sql
diff --git a/schema/versions/mysql/107.sql b/sql/mysql/migrations/107.sql
index 9283d40d9..9283d40d9 100644
--- a/schema/versions/mysql/107.sql
+++ b/sql/mysql/migrations/107.sql
diff --git a/schema/versions/mysql/108.sql b/sql/mysql/migrations/108.sql
index 899be8bb4..899be8bb4 100644
--- a/schema/versions/mysql/108.sql
+++ b/sql/mysql/migrations/108.sql
diff --git a/schema/versions/mysql/109.sql b/sql/mysql/migrations/109.sql
index 77e883c3b..77e883c3b 100644
--- a/schema/versions/mysql/109.sql
+++ b/sql/mysql/migrations/109.sql
diff --git a/schema/versions/mysql/11.sql b/sql/mysql/migrations/11.sql
index 690b978eb..690b978eb 100644
--- a/schema/versions/mysql/11.sql
+++ b/sql/mysql/migrations/11.sql
diff --git a/schema/versions/mysql/110.sql b/sql/mysql/migrations/110.sql
index 859f7d6dc..859f7d6dc 100644
--- a/schema/versions/mysql/110.sql
+++ b/sql/mysql/migrations/110.sql
diff --git a/schema/versions/mysql/111.sql b/sql/mysql/migrations/111.sql
index 27f287d1a..27f287d1a 100644
--- a/schema/versions/mysql/111.sql
+++ b/sql/mysql/migrations/111.sql
diff --git a/schema/versions/mysql/112.sql b/sql/mysql/migrations/112.sql
index a6f0b200b..a6f0b200b 100644
--- a/schema/versions/mysql/112.sql
+++ b/sql/mysql/migrations/112.sql
diff --git a/schema/versions/mysql/113.sql b/sql/mysql/migrations/113.sql
index 3c0d00563..3c0d00563 100644
--- a/schema/versions/mysql/113.sql
+++ b/sql/mysql/migrations/113.sql
diff --git a/schema/versions/mysql/114.sql b/sql/mysql/migrations/114.sql
index fd7ce5d2b..fd7ce5d2b 100644
--- a/schema/versions/mysql/114.sql
+++ b/sql/mysql/migrations/114.sql
diff --git a/schema/versions/mysql/115.sql b/sql/mysql/migrations/115.sql
index e23f0533a..e23f0533a 100644
--- a/schema/versions/mysql/115.sql
+++ b/sql/mysql/migrations/115.sql
diff --git a/schema/versions/mysql/116.sql b/sql/mysql/migrations/116.sql
index 252ba0e3a..252ba0e3a 100644
--- a/schema/versions/mysql/116.sql
+++ b/sql/mysql/migrations/116.sql
diff --git a/schema/versions/mysql/117.sql b/sql/mysql/migrations/117.sql
index da3d056cc..da3d056cc 100644
--- a/schema/versions/mysql/117.sql
+++ b/sql/mysql/migrations/117.sql
diff --git a/schema/versions/mysql/118.sql b/sql/mysql/migrations/118.sql
index add2b0c1f..add2b0c1f 100644
--- a/schema/versions/mysql/118.sql
+++ b/sql/mysql/migrations/118.sql
diff --git a/schema/versions/mysql/119.sql b/sql/mysql/migrations/119.sql
index ddb7d64de..ddb7d64de 100644
--- a/schema/versions/mysql/119.sql
+++ b/sql/mysql/migrations/119.sql
diff --git a/schema/versions/mysql/12.sql b/sql/mysql/migrations/12.sql
index 73af4e375..73af4e375 100644
--- a/schema/versions/mysql/12.sql
+++ b/sql/mysql/migrations/12.sql
diff --git a/schema/versions/mysql/120.sql b/sql/mysql/migrations/120.sql
index 34971146e..34971146e 100644
--- a/schema/versions/mysql/120.sql
+++ b/sql/mysql/migrations/120.sql
diff --git a/schema/versions/mysql/121.sql b/sql/mysql/migrations/121.sql
index d9cf51184..d9cf51184 100644
--- a/schema/versions/mysql/121.sql
+++ b/sql/mysql/migrations/121.sql
diff --git a/schema/versions/mysql/122.sql b/sql/mysql/migrations/122.sql
index 397b97bfc..397b97bfc 100644
--- a/schema/versions/mysql/122.sql
+++ b/sql/mysql/migrations/122.sql
diff --git a/schema/versions/mysql/123.sql b/sql/mysql/migrations/123.sql
index f311d060b..f311d060b 100644
--- a/schema/versions/mysql/123.sql
+++ b/sql/mysql/migrations/123.sql
diff --git a/schema/versions/mysql/124.sql b/sql/mysql/migrations/124.sql
index 96ae46341..96ae46341 100644
--- a/schema/versions/mysql/124.sql
+++ b/sql/mysql/migrations/124.sql
diff --git a/schema/versions/mysql/125.sql b/sql/mysql/migrations/125.sql
index 9f004d963..9f004d963 100644
--- a/schema/versions/mysql/125.sql
+++ b/sql/mysql/migrations/125.sql
diff --git a/schema/versions/mysql/126.sql b/sql/mysql/migrations/126.sql
index 6ff661e71..6ff661e71 100644
--- a/schema/versions/mysql/126.sql
+++ b/sql/mysql/migrations/126.sql
diff --git a/schema/versions/mysql/127.sql b/sql/mysql/migrations/127.sql
index 2c521d86c..2c521d86c 100644
--- a/schema/versions/mysql/127.sql
+++ b/sql/mysql/migrations/127.sql
diff --git a/schema/versions/mysql/128.sql b/sql/mysql/migrations/128.sql
index 281379bb0..281379bb0 100644
--- a/schema/versions/mysql/128.sql
+++ b/sql/mysql/migrations/128.sql
diff --git a/schema/versions/mysql/129.sql b/sql/mysql/migrations/129.sql
index 2ebec0dc9..2ebec0dc9 100644
--- a/schema/versions/mysql/129.sql
+++ b/sql/mysql/migrations/129.sql
diff --git a/schema/versions/mysql/13.sql b/sql/mysql/migrations/13.sql
index ad068c8a2..ad068c8a2 100644
--- a/schema/versions/mysql/13.sql
+++ b/sql/mysql/migrations/13.sql
diff --git a/schema/versions/mysql/130.sql b/sql/mysql/migrations/130.sql
index 7b90d4d2c..7b90d4d2c 100644
--- a/schema/versions/mysql/130.sql
+++ b/sql/mysql/migrations/130.sql
diff --git a/schema/versions/mysql/131.sql b/sql/mysql/migrations/131.sql
index 9316b7f41..9316b7f41 100644
--- a/schema/versions/mysql/131.sql
+++ b/sql/mysql/migrations/131.sql
diff --git a/schema/versions/mysql/132.sql b/sql/mysql/migrations/132.sql
index 1f1fb5901..1f1fb5901 100644
--- a/schema/versions/mysql/132.sql
+++ b/sql/mysql/migrations/132.sql
diff --git a/schema/versions/mysql/133.sql b/sql/mysql/migrations/133.sql
index e1693a9cb..e1693a9cb 100644
--- a/schema/versions/mysql/133.sql
+++ b/sql/mysql/migrations/133.sql
diff --git a/schema/versions/mysql/134.sql b/sql/mysql/migrations/134.sql
index 7bbd7662d..7bbd7662d 100644
--- a/schema/versions/mysql/134.sql
+++ b/sql/mysql/migrations/134.sql
diff --git a/schema/versions/mysql/135.sql b/sql/mysql/migrations/135.sql
index 6d9d41ba6..6d9d41ba6 100644
--- a/schema/versions/mysql/135.sql
+++ b/sql/mysql/migrations/135.sql
diff --git a/schema/versions/mysql/136.sql b/sql/mysql/migrations/136.sql
index 05506a568..05506a568 100644
--- a/schema/versions/mysql/136.sql
+++ b/sql/mysql/migrations/136.sql
diff --git a/schema/versions/mysql/137.sql b/sql/mysql/migrations/137.sql
index 45e4de02f..45e4de02f 100644
--- a/schema/versions/mysql/137.sql
+++ b/sql/mysql/migrations/137.sql
diff --git a/schema/versions/mysql/138.sql b/sql/mysql/migrations/138.sql
index 6bfc5bcd5..6bfc5bcd5 100644
--- a/schema/versions/mysql/138.sql
+++ b/sql/mysql/migrations/138.sql
diff --git a/schema/versions/mysql/139.sql b/sql/mysql/migrations/139.sql
index 88dfb69c7..88dfb69c7 100644
--- a/schema/versions/mysql/139.sql
+++ b/sql/mysql/migrations/139.sql
diff --git a/schema/versions/mysql/14.sql b/sql/mysql/migrations/14.sql
index 8e7cc4dd5..8e7cc4dd5 100644
--- a/schema/versions/mysql/14.sql
+++ b/sql/mysql/migrations/14.sql
diff --git a/schema/versions/mysql/140.sql b/sql/mysql/migrations/140.sql
index 91215eff1..91215eff1 100644
--- a/schema/versions/mysql/140.sql
+++ b/sql/mysql/migrations/140.sql
diff --git a/schema/versions/mysql/141.sql b/sql/mysql/migrations/141.sql
index 03caf23d0..03caf23d0 100644
--- a/schema/versions/mysql/141.sql
+++ b/sql/mysql/migrations/141.sql
diff --git a/sql/mysql/migrations/142.sql b/sql/mysql/migrations/142.sql
new file mode 100644
index 000000000..7a75f3f52
--- /dev/null
+++ b/sql/mysql/migrations/142.sql
@@ -0,0 +1,4 @@
+create index ttrss_user_labels2_article_id_idx on ttrss_user_labels2(article_id);
+create index ttrss_user_labels2_label_id_idx on ttrss_user_labels2(label_id);
+
+update ttrss_version set schema_version = 142;
diff --git a/sql/mysql/migrations/143.sql b/sql/mysql/migrations/143.sql
new file mode 100644
index 000000000..6fb7226b5
--- /dev/null
+++ b/sql/mysql/migrations/143.sql
@@ -0,0 +1,2 @@
+alter table ttrss_users add column otp_secret varchar(250);
+alter table ttrss_users alter column otp_secret set default null;
diff --git a/sql/mysql/migrations/144.sql b/sql/mysql/migrations/144.sql
new file mode 100644
index 000000000..c1932f12b
--- /dev/null
+++ b/sql/mysql/migrations/144.sql
@@ -0,0 +1,2 @@
+alter table ttrss_feeds add column favicon_is_custom boolean;
+alter table ttrss_feeds alter column favicon_is_custom set default null;
diff --git a/schema/versions/mysql/15.sql b/sql/mysql/migrations/15.sql
index 9fa183a09..9fa183a09 100644
--- a/schema/versions/mysql/15.sql
+++ b/sql/mysql/migrations/15.sql
diff --git a/schema/versions/mysql/16.sql b/sql/mysql/migrations/16.sql
index 00034df33..00034df33 100644
--- a/schema/versions/mysql/16.sql
+++ b/sql/mysql/migrations/16.sql
diff --git a/schema/versions/mysql/17.sql b/sql/mysql/migrations/17.sql
index f5d39f33d..f5d39f33d 100644
--- a/schema/versions/mysql/17.sql
+++ b/sql/mysql/migrations/17.sql
diff --git a/schema/versions/mysql/18.sql b/sql/mysql/migrations/18.sql
index e03c96fd0..e03c96fd0 100644
--- a/schema/versions/mysql/18.sql
+++ b/sql/mysql/migrations/18.sql
diff --git a/schema/versions/mysql/19.sql b/sql/mysql/migrations/19.sql
index ce727174b..ce727174b 100644
--- a/schema/versions/mysql/19.sql
+++ b/sql/mysql/migrations/19.sql
diff --git a/schema/versions/mysql/20.sql b/sql/mysql/migrations/20.sql
index 347654512..347654512 100644
--- a/schema/versions/mysql/20.sql
+++ b/sql/mysql/migrations/20.sql
diff --git a/schema/versions/mysql/21.sql b/sql/mysql/migrations/21.sql
index f64d82228..f64d82228 100644
--- a/schema/versions/mysql/21.sql
+++ b/sql/mysql/migrations/21.sql
diff --git a/schema/versions/mysql/22.sql b/sql/mysql/migrations/22.sql
index 7b4457887..7b4457887 100644
--- a/schema/versions/mysql/22.sql
+++ b/sql/mysql/migrations/22.sql
diff --git a/schema/versions/mysql/23.sql b/sql/mysql/migrations/23.sql
index fe54e757d..fe54e757d 100644
--- a/schema/versions/mysql/23.sql
+++ b/sql/mysql/migrations/23.sql
diff --git a/schema/versions/mysql/24.sql b/sql/mysql/migrations/24.sql
index f24e34062..f24e34062 100644
--- a/schema/versions/mysql/24.sql
+++ b/sql/mysql/migrations/24.sql
diff --git a/schema/versions/mysql/25.sql b/sql/mysql/migrations/25.sql
index c3f3d5ea4..c3f3d5ea4 100644
--- a/schema/versions/mysql/25.sql
+++ b/sql/mysql/migrations/25.sql
diff --git a/schema/versions/mysql/26.sql b/sql/mysql/migrations/26.sql
index 14d62b8c0..14d62b8c0 100644
--- a/schema/versions/mysql/26.sql
+++ b/sql/mysql/migrations/26.sql
diff --git a/schema/versions/mysql/27.sql b/sql/mysql/migrations/27.sql
index fcd6e8509..fcd6e8509 100644
--- a/schema/versions/mysql/27.sql
+++ b/sql/mysql/migrations/27.sql
diff --git a/schema/versions/mysql/28.sql b/sql/mysql/migrations/28.sql
index ffdf8448e..ffdf8448e 100644
--- a/schema/versions/mysql/28.sql
+++ b/sql/mysql/migrations/28.sql
diff --git a/schema/versions/mysql/29.sql b/sql/mysql/migrations/29.sql
index 89b5e94a0..89b5e94a0 100644
--- a/schema/versions/mysql/29.sql
+++ b/sql/mysql/migrations/29.sql
diff --git a/schema/versions/mysql/3.sql b/sql/mysql/migrations/3.sql
index 79860a29c..79860a29c 100644
--- a/schema/versions/mysql/3.sql
+++ b/sql/mysql/migrations/3.sql
diff --git a/schema/versions/mysql/30.sql b/sql/mysql/migrations/30.sql
index 0cff2018a..0cff2018a 100644
--- a/schema/versions/mysql/30.sql
+++ b/sql/mysql/migrations/30.sql
diff --git a/schema/versions/mysql/31.sql b/sql/mysql/migrations/31.sql
index 94cfc14d8..94cfc14d8 100644
--- a/schema/versions/mysql/31.sql
+++ b/sql/mysql/migrations/31.sql
diff --git a/schema/versions/mysql/32.sql b/sql/mysql/migrations/32.sql
index 689e5072c..689e5072c 100644
--- a/schema/versions/mysql/32.sql
+++ b/sql/mysql/migrations/32.sql
diff --git a/schema/versions/mysql/33.sql b/sql/mysql/migrations/33.sql
index 8317dc2de..8317dc2de 100644
--- a/schema/versions/mysql/33.sql
+++ b/sql/mysql/migrations/33.sql
diff --git a/schema/versions/mysql/34.sql b/sql/mysql/migrations/34.sql
index e591a7a96..e591a7a96 100644
--- a/schema/versions/mysql/34.sql
+++ b/sql/mysql/migrations/34.sql
diff --git a/schema/versions/mysql/35.sql b/sql/mysql/migrations/35.sql
index ad112a021..ad112a021 100644
--- a/schema/versions/mysql/35.sql
+++ b/sql/mysql/migrations/35.sql
diff --git a/schema/versions/mysql/36.sql b/sql/mysql/migrations/36.sql
index d92da2880..d92da2880 100644
--- a/schema/versions/mysql/36.sql
+++ b/sql/mysql/migrations/36.sql
diff --git a/schema/versions/mysql/37.sql b/sql/mysql/migrations/37.sql
index 4e764d7ee..4e764d7ee 100644
--- a/schema/versions/mysql/37.sql
+++ b/sql/mysql/migrations/37.sql
diff --git a/schema/versions/mysql/38.sql b/sql/mysql/migrations/38.sql
index df544d03b..df544d03b 100644
--- a/schema/versions/mysql/38.sql
+++ b/sql/mysql/migrations/38.sql
diff --git a/schema/versions/mysql/39.sql b/sql/mysql/migrations/39.sql
index f27db09d6..f27db09d6 100644
--- a/schema/versions/mysql/39.sql
+++ b/sql/mysql/migrations/39.sql
diff --git a/schema/versions/mysql/4.sql b/sql/mysql/migrations/4.sql
index 6dfc5f82f..6dfc5f82f 100644
--- a/schema/versions/mysql/4.sql
+++ b/sql/mysql/migrations/4.sql
diff --git a/schema/versions/mysql/40.sql b/sql/mysql/migrations/40.sql
index 5a506cea6..5a506cea6 100644
--- a/schema/versions/mysql/40.sql
+++ b/sql/mysql/migrations/40.sql
diff --git a/schema/versions/mysql/41.sql b/sql/mysql/migrations/41.sql
index bf5887336..bf5887336 100644
--- a/schema/versions/mysql/41.sql
+++ b/sql/mysql/migrations/41.sql
diff --git a/schema/versions/mysql/42.sql b/sql/mysql/migrations/42.sql
index 3ae211d07..3ae211d07 100644
--- a/schema/versions/mysql/42.sql
+++ b/sql/mysql/migrations/42.sql
diff --git a/schema/versions/mysql/43.sql b/sql/mysql/migrations/43.sql
index f1344b203..f1344b203 100644
--- a/schema/versions/mysql/43.sql
+++ b/sql/mysql/migrations/43.sql
diff --git a/schema/versions/mysql/44.sql b/sql/mysql/migrations/44.sql
index c17bcc38f..c17bcc38f 100644
--- a/schema/versions/mysql/44.sql
+++ b/sql/mysql/migrations/44.sql
diff --git a/schema/versions/mysql/45.sql b/sql/mysql/migrations/45.sql
index c4b91cf48..c4b91cf48 100644
--- a/schema/versions/mysql/45.sql
+++ b/sql/mysql/migrations/45.sql
diff --git a/schema/versions/mysql/46.sql b/sql/mysql/migrations/46.sql
index 8bf25629a..8bf25629a 100644
--- a/schema/versions/mysql/46.sql
+++ b/sql/mysql/migrations/46.sql
diff --git a/schema/versions/mysql/47.sql b/sql/mysql/migrations/47.sql
index a3afd94c5..a3afd94c5 100644
--- a/schema/versions/mysql/47.sql
+++ b/sql/mysql/migrations/47.sql
diff --git a/schema/versions/mysql/48.sql b/sql/mysql/migrations/48.sql
index 8c42f6e27..8c42f6e27 100644
--- a/schema/versions/mysql/48.sql
+++ b/sql/mysql/migrations/48.sql
diff --git a/schema/versions/mysql/49.sql b/sql/mysql/migrations/49.sql
index 812f3e65b..812f3e65b 100644
--- a/schema/versions/mysql/49.sql
+++ b/sql/mysql/migrations/49.sql
diff --git a/schema/versions/mysql/5.sql b/sql/mysql/migrations/5.sql
index 1d8b8537b..1d8b8537b 100644
--- a/schema/versions/mysql/5.sql
+++ b/sql/mysql/migrations/5.sql
diff --git a/schema/versions/mysql/50.sql b/sql/mysql/migrations/50.sql
index 6f49742f4..6f49742f4 100644
--- a/schema/versions/mysql/50.sql
+++ b/sql/mysql/migrations/50.sql
diff --git a/schema/versions/mysql/51.sql b/sql/mysql/migrations/51.sql
index e8fe4c7b8..e8fe4c7b8 100644
--- a/schema/versions/mysql/51.sql
+++ b/sql/mysql/migrations/51.sql
diff --git a/schema/versions/mysql/52.sql b/sql/mysql/migrations/52.sql
index 4d9b64eb1..4d9b64eb1 100644
--- a/schema/versions/mysql/52.sql
+++ b/sql/mysql/migrations/52.sql
diff --git a/schema/versions/mysql/53.sql b/sql/mysql/migrations/53.sql
index 3db0cbd81..3db0cbd81 100644
--- a/schema/versions/mysql/53.sql
+++ b/sql/mysql/migrations/53.sql
diff --git a/schema/versions/mysql/54.sql b/sql/mysql/migrations/54.sql
index 28d3f8ee4..28d3f8ee4 100644
--- a/schema/versions/mysql/54.sql
+++ b/sql/mysql/migrations/54.sql
diff --git a/schema/versions/mysql/55.sql b/sql/mysql/migrations/55.sql
index 75f55b3c3..75f55b3c3 100644
--- a/schema/versions/mysql/55.sql
+++ b/sql/mysql/migrations/55.sql
diff --git a/schema/versions/mysql/56.sql b/sql/mysql/migrations/56.sql
index 11cd3069c..11cd3069c 100644
--- a/schema/versions/mysql/56.sql
+++ b/sql/mysql/migrations/56.sql
diff --git a/schema/versions/mysql/57.sql b/sql/mysql/migrations/57.sql
index 27a66d5b7..27a66d5b7 100644
--- a/schema/versions/mysql/57.sql
+++ b/sql/mysql/migrations/57.sql
diff --git a/schema/versions/mysql/58.sql b/sql/mysql/migrations/58.sql
index 61173c1d5..61173c1d5 100644
--- a/schema/versions/mysql/58.sql
+++ b/sql/mysql/migrations/58.sql
diff --git a/schema/versions/mysql/59.sql b/sql/mysql/migrations/59.sql
index d51fe8f65..d51fe8f65 100644
--- a/schema/versions/mysql/59.sql
+++ b/sql/mysql/migrations/59.sql
diff --git a/schema/versions/mysql/6.sql b/sql/mysql/migrations/6.sql
index b7ee97ccc..b7ee97ccc 100644
--- a/schema/versions/mysql/6.sql
+++ b/sql/mysql/migrations/6.sql
diff --git a/schema/versions/mysql/60.sql b/sql/mysql/migrations/60.sql
index 6b33e6c87..6b33e6c87 100644
--- a/schema/versions/mysql/60.sql
+++ b/sql/mysql/migrations/60.sql
diff --git a/schema/versions/mysql/61.sql b/sql/mysql/migrations/61.sql
index 209a7ba55..209a7ba55 100644
--- a/schema/versions/mysql/61.sql
+++ b/sql/mysql/migrations/61.sql
diff --git a/schema/versions/mysql/62.sql b/sql/mysql/migrations/62.sql
index 4cc904b0a..4cc904b0a 100644
--- a/schema/versions/mysql/62.sql
+++ b/sql/mysql/migrations/62.sql
diff --git a/schema/versions/mysql/63.sql b/sql/mysql/migrations/63.sql
index 26b7126e7..26b7126e7 100644
--- a/schema/versions/mysql/63.sql
+++ b/sql/mysql/migrations/63.sql
diff --git a/schema/versions/mysql/64.sql b/sql/mysql/migrations/64.sql
index 51f0be7e2..51f0be7e2 100644
--- a/schema/versions/mysql/64.sql
+++ b/sql/mysql/migrations/64.sql
diff --git a/schema/versions/mysql/65.sql b/sql/mysql/migrations/65.sql
index ce21de898..ce21de898 100644
--- a/schema/versions/mysql/65.sql
+++ b/sql/mysql/migrations/65.sql
diff --git a/schema/versions/mysql/66.sql b/sql/mysql/migrations/66.sql
index f90c0a157..f90c0a157 100644
--- a/schema/versions/mysql/66.sql
+++ b/sql/mysql/migrations/66.sql
diff --git a/schema/versions/mysql/67.sql b/sql/mysql/migrations/67.sql
index b501bf4c3..b501bf4c3 100644
--- a/schema/versions/mysql/67.sql
+++ b/sql/mysql/migrations/67.sql
diff --git a/schema/versions/mysql/68.sql b/sql/mysql/migrations/68.sql
index 6d56df0f9..6d56df0f9 100644
--- a/schema/versions/mysql/68.sql
+++ b/sql/mysql/migrations/68.sql
diff --git a/schema/versions/mysql/69.sql b/sql/mysql/migrations/69.sql
index 3e42fd3fb..3e42fd3fb 100644
--- a/schema/versions/mysql/69.sql
+++ b/sql/mysql/migrations/69.sql
diff --git a/schema/versions/mysql/7.sql b/sql/mysql/migrations/7.sql
index bee135989..bee135989 100644
--- a/schema/versions/mysql/7.sql
+++ b/sql/mysql/migrations/7.sql
diff --git a/schema/versions/mysql/70.sql b/sql/mysql/migrations/70.sql
index 0c64336d4..0c64336d4 100644
--- a/schema/versions/mysql/70.sql
+++ b/sql/mysql/migrations/70.sql
diff --git a/schema/versions/mysql/71.sql b/sql/mysql/migrations/71.sql
index 2061ada2b..2061ada2b 100644
--- a/schema/versions/mysql/71.sql
+++ b/sql/mysql/migrations/71.sql
diff --git a/schema/versions/mysql/72.sql b/sql/mysql/migrations/72.sql
index 2995afda3..2995afda3 100644
--- a/schema/versions/mysql/72.sql
+++ b/sql/mysql/migrations/72.sql
diff --git a/schema/versions/mysql/73.sql b/sql/mysql/migrations/73.sql
index 051578d22..051578d22 100644
--- a/schema/versions/mysql/73.sql
+++ b/sql/mysql/migrations/73.sql
diff --git a/schema/versions/mysql/74.sql b/sql/mysql/migrations/74.sql
index d13856ea9..d13856ea9 100644
--- a/schema/versions/mysql/74.sql
+++ b/sql/mysql/migrations/74.sql
diff --git a/schema/versions/mysql/75.sql b/sql/mysql/migrations/75.sql
index c9017b9e9..c9017b9e9 100644
--- a/schema/versions/mysql/75.sql
+++ b/sql/mysql/migrations/75.sql
diff --git a/schema/versions/mysql/76.sql b/sql/mysql/migrations/76.sql
index 95c352b45..95c352b45 100644
--- a/schema/versions/mysql/76.sql
+++ b/sql/mysql/migrations/76.sql
diff --git a/schema/versions/mysql/77.sql b/sql/mysql/migrations/77.sql
index 944f31d84..944f31d84 100644
--- a/schema/versions/mysql/77.sql
+++ b/sql/mysql/migrations/77.sql
diff --git a/schema/versions/mysql/78.sql b/sql/mysql/migrations/78.sql
index 80e9e782a..80e9e782a 100644
--- a/schema/versions/mysql/78.sql
+++ b/sql/mysql/migrations/78.sql
diff --git a/schema/versions/mysql/79.sql b/sql/mysql/migrations/79.sql
index 7e8c31d49..7e8c31d49 100644
--- a/schema/versions/mysql/79.sql
+++ b/sql/mysql/migrations/79.sql
diff --git a/schema/versions/mysql/8.sql b/sql/mysql/migrations/8.sql
index 39100450b..39100450b 100644
--- a/schema/versions/mysql/8.sql
+++ b/sql/mysql/migrations/8.sql
diff --git a/schema/versions/mysql/80.sql b/sql/mysql/migrations/80.sql
index df2295c42..df2295c42 100644
--- a/schema/versions/mysql/80.sql
+++ b/sql/mysql/migrations/80.sql
diff --git a/schema/versions/mysql/81.sql b/sql/mysql/migrations/81.sql
index 800ceede0..800ceede0 100644
--- a/schema/versions/mysql/81.sql
+++ b/sql/mysql/migrations/81.sql
diff --git a/schema/versions/mysql/82.sql b/sql/mysql/migrations/82.sql
index 80ca24e72..80ca24e72 100644
--- a/schema/versions/mysql/82.sql
+++ b/sql/mysql/migrations/82.sql
diff --git a/schema/versions/mysql/83.sql b/sql/mysql/migrations/83.sql
index e6f9a2a7f..e6f9a2a7f 100644
--- a/schema/versions/mysql/83.sql
+++ b/sql/mysql/migrations/83.sql
diff --git a/schema/versions/mysql/84.sql b/sql/mysql/migrations/84.sql
index cc28b7574..cc28b7574 100644
--- a/schema/versions/mysql/84.sql
+++ b/sql/mysql/migrations/84.sql
diff --git a/schema/versions/mysql/85.sql b/sql/mysql/migrations/85.sql
index 70cab0297..70cab0297 100644
--- a/schema/versions/mysql/85.sql
+++ b/sql/mysql/migrations/85.sql
diff --git a/schema/versions/mysql/86.sql b/sql/mysql/migrations/86.sql
index c8979b2af..c8979b2af 100644
--- a/schema/versions/mysql/86.sql
+++ b/sql/mysql/migrations/86.sql
diff --git a/schema/versions/mysql/87.sql b/sql/mysql/migrations/87.sql
index 7ef4630d5..7ef4630d5 100644
--- a/schema/versions/mysql/87.sql
+++ b/sql/mysql/migrations/87.sql
diff --git a/schema/versions/mysql/88.sql b/sql/mysql/migrations/88.sql
index 0abb2ab33..0abb2ab33 100644
--- a/schema/versions/mysql/88.sql
+++ b/sql/mysql/migrations/88.sql
diff --git a/schema/versions/mysql/89.sql b/sql/mysql/migrations/89.sql
index 9727a9c42..9727a9c42 100644
--- a/schema/versions/mysql/89.sql
+++ b/sql/mysql/migrations/89.sql
diff --git a/schema/versions/mysql/9.sql b/sql/mysql/migrations/9.sql
index 546adc2d7..546adc2d7 100644
--- a/schema/versions/mysql/9.sql
+++ b/sql/mysql/migrations/9.sql
diff --git a/schema/versions/mysql/90.sql b/sql/mysql/migrations/90.sql
index b7935535e..b7935535e 100644
--- a/schema/versions/mysql/90.sql
+++ b/sql/mysql/migrations/90.sql
diff --git a/schema/versions/mysql/91.sql b/sql/mysql/migrations/91.sql
index 791d43063..791d43063 100644
--- a/schema/versions/mysql/91.sql
+++ b/sql/mysql/migrations/91.sql
diff --git a/schema/versions/mysql/92.sql b/sql/mysql/migrations/92.sql
index 8ebe81fe0..8ebe81fe0 100644
--- a/schema/versions/mysql/92.sql
+++ b/sql/mysql/migrations/92.sql
diff --git a/schema/versions/mysql/93.sql b/sql/mysql/migrations/93.sql
index 56b96e3b5..56b96e3b5 100644
--- a/schema/versions/mysql/93.sql
+++ b/sql/mysql/migrations/93.sql
diff --git a/schema/versions/mysql/94.sql b/sql/mysql/migrations/94.sql
index 0f76c4c5f..0f76c4c5f 100644
--- a/schema/versions/mysql/94.sql
+++ b/sql/mysql/migrations/94.sql
diff --git a/schema/versions/mysql/95.sql b/sql/mysql/migrations/95.sql
index 234acd495..234acd495 100644
--- a/schema/versions/mysql/95.sql
+++ b/sql/mysql/migrations/95.sql
diff --git a/schema/versions/mysql/96.sql b/sql/mysql/migrations/96.sql
index 4d4e2445c..4d4e2445c 100644
--- a/schema/versions/mysql/96.sql
+++ b/sql/mysql/migrations/96.sql
diff --git a/schema/versions/mysql/97.sql b/sql/mysql/migrations/97.sql
index c555b86dc..c555b86dc 100644
--- a/schema/versions/mysql/97.sql
+++ b/sql/mysql/migrations/97.sql
diff --git a/schema/versions/mysql/98.sql b/sql/mysql/migrations/98.sql
index 1984a4325..1984a4325 100644
--- a/schema/versions/mysql/98.sql
+++ b/sql/mysql/migrations/98.sql
diff --git a/schema/versions/mysql/99.sql b/sql/mysql/migrations/99.sql
index d7f9e0230..d7f9e0230 100644
--- a/schema/versions/mysql/99.sql
+++ b/sql/mysql/migrations/99.sql
diff --git a/sql/mysql/schema.sql b/sql/mysql/schema.sql
new file mode 100644
index 000000000..7ecaff32b
--- /dev/null
+++ b/sql/mysql/schema.sql
@@ -0,0 +1,418 @@
+SET NAMES utf8;
+SET CHARACTER SET utf8;
+
+drop table if exists ttrss_error_log;
+drop table if exists ttrss_plugin_storage;
+drop table if exists ttrss_linked_feeds;
+drop table if exists ttrss_linked_instances;
+drop table if exists ttrss_access_keys;
+drop table if exists ttrss_user_labels2;
+drop table if exists ttrss_labels2;
+drop table if exists ttrss_feedbrowser_cache;
+drop table if exists ttrss_labels;
+drop table if exists ttrss_filters2_actions;
+drop table if exists ttrss_filters2_rules;
+drop table if exists ttrss_filters2;
+drop table if exists ttrss_filters;
+drop table if exists ttrss_filter_types;
+drop table if exists ttrss_filter_actions;
+drop table if exists ttrss_user_prefs;
+drop table if exists ttrss_user_prefs2;
+drop table if exists ttrss_prefs;
+drop table if exists ttrss_prefs_types;
+drop table if exists ttrss_prefs_sections;
+drop table if exists ttrss_tags;
+drop table if exists ttrss_enclosures;
+drop table if exists ttrss_settings_profiles;
+drop table if exists ttrss_entry_comments;
+drop table if exists ttrss_user_entries;
+drop table if exists ttrss_entries;
+drop table if exists ttrss_scheduled_updates;
+drop table if exists ttrss_counters_cache;
+drop table if exists ttrss_cat_counters_cache;
+drop table if exists ttrss_feeds;
+drop table if exists ttrss_archived_feeds;
+drop table if exists ttrss_feed_categories;
+drop table if exists ttrss_app_passwords;
+drop table if exists ttrss_users;
+drop table if exists ttrss_themes;
+drop table if exists ttrss_sessions;
+
+begin;
+
+create table ttrss_users (id integer primary key not null auto_increment,
+ login varchar(120) not null unique,
+ pwd_hash varchar(250) not null,
+ last_login datetime default null,
+ access_level integer not null default 0,
+ email varchar(250) not null default '',
+ full_name varchar(250) not null default '',
+ email_digest bool not null default false,
+ last_digest_sent datetime default null,
+ salt varchar(250) not null default '',
+ created datetime default null,
+ twitter_oauth longtext default null,
+ otp_enabled boolean not null default false,
+ otp_secret varchar(250) default null,
+ resetpass_token varchar(250) default null) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
+
+insert into ttrss_users (login,pwd_hash,access_level) values ('admin',
+ 'SHA1:5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8', 10);
+
+create table ttrss_app_passwords (id integer not null primary key auto_increment,
+ title varchar(250) not null,
+ pwd_hash text not null,
+ service varchar(100) not null,
+ created datetime not null,
+ last_used datetime default null,
+ owner_uid integer not null references ttrss_users(id) on delete cascade) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
+
+create table ttrss_feed_categories(id integer not null primary key auto_increment,
+ owner_uid integer not null,
+ title varchar(200) not null,
+ collapsed bool not null default false,
+ order_id integer not null default 0,
+ parent_cat integer,
+ view_settings varchar(250) not null default '',
+ foreign key (parent_cat) references ttrss_feed_categories(id) ON DELETE SET NULL,
+ foreign key (owner_uid) references ttrss_users(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
+
+create table ttrss_archived_feeds (id integer not null primary key,
+ owner_uid integer not null,
+ created datetime not null,
+ title varchar(200) not null,
+ feed_url text not null,
+ site_url varchar(250) not null default '',
+ foreign key (owner_uid) references ttrss_users(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
+
+create table ttrss_counters_cache (
+ feed_id integer not null,
+ owner_uid integer not null,
+ value integer not null default 0,
+ updated datetime not null,
+ foreign key (owner_uid) references ttrss_users(id) ON DELETE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
+
+create index ttrss_counters_cache_feed_id_idx on ttrss_counters_cache(feed_id);
+create index ttrss_counters_cache_value_idx on ttrss_counters_cache(value);
+
+create table ttrss_cat_counters_cache (
+ feed_id integer not null,
+ owner_uid integer not null,
+ value integer not null default 0,
+ updated datetime not null,
+ foreign key (owner_uid) references ttrss_users(id) ON DELETE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
+
+create table ttrss_feeds (id integer not null auto_increment primary key,
+ owner_uid integer not null,
+ title varchar(200) not null,
+ cat_id integer default null,
+ feed_url text not null,
+ icon_url varchar(250) not null default '',
+ update_interval integer not null default 0,
+ purge_interval integer not null default 0,
+ last_updated datetime default null,
+ last_unconditional datetime default null,
+ last_error varchar(250) not null default '',
+ last_modified varchar(250) not null default '',
+ favicon_avg_color varchar(11) default null,
+ favicon_is_custom boolean default null,
+ site_url varchar(250) not null default '',
+ auth_login varchar(250) not null default '',
+ auth_pass varchar(250) not null default '',
+ parent_feed integer default null,
+ private bool not null default false,
+ rtl_content bool not null default false,
+ hidden bool not null default false,
+ include_in_digest boolean not null default true,
+ cache_images boolean not null default false,
+ hide_images boolean not null default false,
+ cache_content boolean not null default false,
+ auth_pass_encrypted boolean not null default false,
+ last_viewed datetime default null,
+ last_update_started datetime default null,
+ last_successful_update datetime default null,
+ always_display_enclosures boolean not null default false,
+ update_method integer not null default 0,
+ order_id integer not null default 0,
+ mark_unread_on_update boolean not null default false,
+ update_on_checksum_change boolean not null default false,
+ strip_images boolean not null default false,
+ view_settings varchar(250) not null default '',
+ pubsub_state integer not null default 0,
+ favicon_last_checked datetime default null,
+ feed_language varchar(100) not null default '',
+ foreign key (owner_uid) references ttrss_users(id) ON DELETE CASCADE,
+ foreign key (cat_id) references ttrss_feed_categories(id) ON DELETE SET NULL,
+ foreign key (parent_feed) references ttrss_feeds(id) ON DELETE SET NULL,
+ unique(feed_url(255), owner_uid)) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
+
+insert into ttrss_feeds (owner_uid, title, feed_url) values
+ ((select id from ttrss_users where login = 'admin'), 'Tiny Tiny RSS: Forum', 'https://tt-rss.org/forum/rss.php');
+
+create table ttrss_entries (id integer not null primary key auto_increment,
+ title text not null,
+ guid varchar(255) not null unique,
+ link text not null,
+ updated datetime not null,
+ content longtext not null,
+ content_hash varchar(250) not null,
+ cached_content longtext,
+ no_orig_date bool not null default 0,
+ date_entered datetime not null,
+ date_updated datetime not null,
+ num_comments integer not null default 0,
+ plugin_data longtext,
+ lang varchar(2),
+ comments varchar(250) not null default '',
+ author varchar(250) not null default '') ENGINE=InnoDB DEFAULT CHARSET=UTF8;
+
+create index ttrss_entries_date_entered_index on ttrss_entries(date_entered);
+create index ttrss_entries_updated_idx on ttrss_entries(updated);
+
+create table ttrss_user_entries (
+ int_id integer not null primary key auto_increment,
+ ref_id integer not null,
+ uuid varchar(200) not null,
+ feed_id int,
+ orig_feed_id int,
+ owner_uid integer not null,
+ marked bool not null default 0,
+ published bool not null default 0,
+ tag_cache text not null,
+ label_cache text not null,
+ last_read datetime,
+ score int not null default 0,
+ note longtext,
+ last_marked datetime,
+ last_published datetime,
+ unread bool not null default 1,
+ foreign key (ref_id) references ttrss_entries(id) ON DELETE CASCADE,
+ foreign key (feed_id) references ttrss_feeds(id) ON DELETE CASCADE,
+ foreign key (orig_feed_id) references ttrss_archived_feeds(id) ON DELETE SET NULL,
+ foreign key (owner_uid) references ttrss_users(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
+
+create index ttrss_user_entries_unread_idx on ttrss_user_entries(unread);
+
+create table ttrss_entry_comments (id integer not null primary key,
+ ref_id integer not null,
+ owner_uid integer not null,
+ private bool not null default 0,
+ date_entered datetime not null,
+ index (ref_id),
+ foreign key (ref_id) references ttrss_entries(id) ON DELETE CASCADE,
+ index (owner_uid),
+ foreign key (owner_uid) references ttrss_users(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
+
+create table ttrss_filter_types (id integer primary key,
+ name varchar(120) unique not null,
+ description varchar(250) not null unique) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
+
+insert into ttrss_filter_types (id,name,description) values (1, 'title', 'Title');
+insert into ttrss_filter_types (id,name,description) values (2, 'content', 'Content');
+insert into ttrss_filter_types (id,name,description) values (3, 'both',
+ 'Title or Content');
+insert into ttrss_filter_types (id,name,description) values (4, 'link',
+ 'Link');
+insert into ttrss_filter_types (id,name,description) values (5, 'date',
+ 'Article Date');
+insert into ttrss_filter_types (id,name,description) values (6, 'author', 'Author');
+insert into ttrss_filter_types (id,name,description) values (7, 'tag', 'Article Tags');
+
+create table ttrss_filter_actions (id integer not null primary key,
+ name varchar(120) unique not null,
+ description varchar(250) not null unique) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
+
+insert into ttrss_filter_actions (id,name,description) values (1, 'filter',
+ 'Delete article');
+
+insert into ttrss_filter_actions (id,name,description) values (2, 'catchup',
+ 'Mark as read');
+
+insert into ttrss_filter_actions (id,name,description) values (3, 'mark',
+ 'Set starred');
+
+insert into ttrss_filter_actions (id,name,description) values (4, 'tag',
+ 'Assign tags');
+
+insert into ttrss_filter_actions (id,name,description) values (5, 'publish',
+ 'Publish article');
+
+insert into ttrss_filter_actions (id,name,description) values (6, 'score',
+ 'Modify score');
+
+insert into ttrss_filter_actions (id,name,description) values (7, 'label',
+ 'Assign label');
+
+insert into ttrss_filter_actions (id,name,description) values (8, 'stop',
+ 'Stop / Do nothing');
+
+insert into ttrss_filter_actions (id,name,description) values (9, 'plugin',
+ 'Invoke plugin');
+
+create table ttrss_filters2(id integer primary key auto_increment,
+ owner_uid integer not null,
+ match_any_rule boolean not null default false,
+ enabled boolean not null default true,
+ inverse bool not null default false,
+ title varchar(250) not null default '',
+ order_id integer not null default 0,
+ last_triggered datetime default null,
+ foreign key (owner_uid) references ttrss_users(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
+
+create table ttrss_filters2_rules(id integer primary key auto_increment,
+ filter_id integer not null references ttrss_filters2(id) on delete cascade,
+ reg_exp text not null,
+ inverse bool not null default false,
+ filter_type integer not null,
+ feed_id integer default null,
+ cat_id integer default null,
+ cat_filter boolean not null default false,
+ match_on text,
+ index (filter_id),
+ foreign key (filter_id) references ttrss_filters2(id) on delete cascade,
+ index (filter_type),
+ foreign key (filter_type) references ttrss_filter_types(id) ON DELETE CASCADE,
+ index (feed_id),
+ foreign key (feed_id) references ttrss_feeds(id) ON DELETE CASCADE,
+ index (cat_id),
+ foreign key (cat_id) references ttrss_feed_categories(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
+
+create table ttrss_filters2_actions(id integer primary key auto_increment,
+ filter_id integer not null,
+ action_id integer not null default 1 references ttrss_filter_actions(id) on delete cascade,
+ action_param varchar(250) not null default '',
+ index (filter_id),
+ foreign key (filter_id) references ttrss_filters2(id) on delete cascade,
+ index (action_id),
+ foreign key (action_id) references ttrss_filter_actions(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
+
+create table ttrss_tags (id integer primary key auto_increment,
+ owner_uid integer not null,
+ tag_name varchar(250) not null,
+ post_int_id integer not null,
+ index (post_int_id),
+ foreign key (post_int_id) references ttrss_user_entries(int_id) ON DELETE CASCADE,
+ index (owner_uid),
+ foreign key (owner_uid) references ttrss_users(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
+
+create table ttrss_enclosures (id integer primary key auto_increment,
+ content_url text not null,
+ content_type varchar(250) not null,
+ post_id integer not null,
+ title text not null,
+ duration text not null,
+ width integer not null default 0,
+ height integer not null default 0,
+ foreign key (post_id) references ttrss_entries(id) ON DELETE cascade) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
+
+create table ttrss_settings_profiles(id integer primary key auto_increment,
+ title varchar(250) not null,
+ owner_uid integer not null,
+ index (owner_uid),
+ foreign key (owner_uid) references ttrss_users(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
+
+create table ttrss_prefs_types (id integer not null primary key,
+ type_name varchar(100) not null) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
+
+create table ttrss_prefs_sections (id integer not null primary key,
+ order_id integer not null) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
+
+create table ttrss_prefs (pref_name varchar(250) not null primary key,
+ type_id integer not null,
+ section_id integer not null default 1,
+ access_level integer not null default 0,
+ def_value text not null,
+ foreign key (type_id) references ttrss_prefs_types(id),
+ foreign key (section_id) references ttrss_prefs_sections(id)) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
+
+create table ttrss_user_prefs (
+ owner_uid integer not null,
+ pref_name varchar(250),
+ value longtext not null,
+ profile integer,
+ index (profile),
+ foreign key (profile) references ttrss_settings_profiles(id) ON DELETE CASCADE,
+ foreign key (owner_uid) references ttrss_users(id) ON DELETE CASCADE,
+ foreign key (pref_name) references ttrss_prefs(pref_name) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
+
+create table ttrss_user_prefs2 (
+ owner_uid integer not null,
+ pref_name varchar(250),
+ profile integer null,
+ value longtext not null,
+ foreign key (profile) references ttrss_settings_profiles(id) ON DELETE CASCADE,
+ foreign key (owner_uid) references ttrss_users(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
+
+create table ttrss_sessions (id varchar(250) not null primary key,
+ data text,
+ expire integer not null,
+ index (expire)) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
+
+create table ttrss_feedbrowser_cache (
+ feed_url text not null,
+ site_url text not null,
+ title text not null,
+ subscribers integer not null) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
+
+create table ttrss_labels2 (id integer not null primary key auto_increment,
+ owner_uid integer not null,
+ caption varchar(250) not null,
+ fg_color varchar(15) not null default '',
+ bg_color varchar(15) not null default '',
+ foreign key (owner_uid) references ttrss_users(id) ON DELETE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
+
+create table ttrss_user_labels2 (label_id integer not null,
+ article_id integer not null,
+ foreign key (label_id) references ttrss_labels2(id) ON DELETE CASCADE,
+ foreign key (article_id) references ttrss_entries(id) ON DELETE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
+
+create index ttrss_user_labels2_article_id_idx on ttrss_user_labels2(article_id);
+create index ttrss_user_labels2_label_id_idx on ttrss_user_labels2(label_id);
+
+create table ttrss_access_keys (id integer not null primary key auto_increment,
+ access_key varchar(250) not null,
+ feed_id varchar(250) not null,
+ is_cat bool not null default false,
+ owner_uid integer not null,
+ foreign key (owner_uid) references ttrss_users(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
+
+create table ttrss_linked_instances (id integer not null primary key auto_increment,
+ last_connected datetime not null,
+ last_status_in integer not null,
+ last_status_out integer not null,
+ access_key varchar(250) not null unique,
+ access_url text not null) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
+
+create table ttrss_linked_feeds (
+ feed_url text not null,
+ site_url text not null,
+ title text not null,
+ created datetime not null,
+ updated datetime not null,
+ instance_id integer not null,
+ subscribers integer not null,
+ foreign key (instance_id) references ttrss_linked_instances(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
+
+create table ttrss_plugin_storage (
+ id integer not null auto_increment primary key,
+ name varchar(100) not null,
+ owner_uid integer not null,
+ content longtext not null,
+ foreign key (owner_uid) references ttrss_users(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
+
+create table ttrss_error_log(
+ id integer not null auto_increment primary key,
+ owner_uid integer,
+ errno integer not null,
+ errstr text not null,
+ filename text not null,
+ lineno integer not null,
+ context text not null,
+ created_at datetime not null,
+ foreign key (owner_uid) references ttrss_users(id) ON DELETE SET NULL) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
+
+commit;
diff --git a/schema/versions/pgsql/10.sql b/sql/pgsql/migrations/10.sql
index 764b4b763..764b4b763 100644
--- a/schema/versions/pgsql/10.sql
+++ b/sql/pgsql/migrations/10.sql
diff --git a/schema/versions/pgsql/100.sql b/sql/pgsql/migrations/100.sql
index a360dab6c..a360dab6c 100644
--- a/schema/versions/pgsql/100.sql
+++ b/sql/pgsql/migrations/100.sql
diff --git a/schema/versions/pgsql/101.sql b/sql/pgsql/migrations/101.sql
index 5be859002..5be859002 100644
--- a/schema/versions/pgsql/101.sql
+++ b/sql/pgsql/migrations/101.sql
diff --git a/schema/versions/pgsql/102.sql b/sql/pgsql/migrations/102.sql
index ccf5ef3b3..ccf5ef3b3 100644
--- a/schema/versions/pgsql/102.sql
+++ b/sql/pgsql/migrations/102.sql
diff --git a/schema/versions/pgsql/103.sql b/sql/pgsql/migrations/103.sql
index cb91fd871..cb91fd871 100644
--- a/schema/versions/pgsql/103.sql
+++ b/sql/pgsql/migrations/103.sql
diff --git a/schema/versions/pgsql/104.sql b/sql/pgsql/migrations/104.sql
index 104e4b917..104e4b917 100644
--- a/schema/versions/pgsql/104.sql
+++ b/sql/pgsql/migrations/104.sql
diff --git a/schema/versions/pgsql/105.sql b/sql/pgsql/migrations/105.sql
index 11ef679f1..11ef679f1 100644
--- a/schema/versions/pgsql/105.sql
+++ b/sql/pgsql/migrations/105.sql
diff --git a/schema/versions/pgsql/106.sql b/sql/pgsql/migrations/106.sql
index 6e3dee2c9..6e3dee2c9 100644
--- a/schema/versions/pgsql/106.sql
+++ b/sql/pgsql/migrations/106.sql
diff --git a/schema/versions/pgsql/107.sql b/sql/pgsql/migrations/107.sql
index a4a537c2f..a4a537c2f 100644
--- a/schema/versions/pgsql/107.sql
+++ b/sql/pgsql/migrations/107.sql
diff --git a/schema/versions/pgsql/108.sql b/sql/pgsql/migrations/108.sql
index 899be8bb4..899be8bb4 100644
--- a/schema/versions/pgsql/108.sql
+++ b/sql/pgsql/migrations/108.sql
diff --git a/schema/versions/pgsql/109.sql b/sql/pgsql/migrations/109.sql
index 77e883c3b..77e883c3b 100644
--- a/schema/versions/pgsql/109.sql
+++ b/sql/pgsql/migrations/109.sql
diff --git a/schema/versions/pgsql/11.sql b/sql/pgsql/migrations/11.sql
index 690b978eb..690b978eb 100644
--- a/schema/versions/pgsql/11.sql
+++ b/sql/pgsql/migrations/11.sql
diff --git a/schema/versions/pgsql/110.sql b/sql/pgsql/migrations/110.sql
index 859f7d6dc..859f7d6dc 100644
--- a/schema/versions/pgsql/110.sql
+++ b/sql/pgsql/migrations/110.sql
diff --git a/schema/versions/pgsql/111.sql b/sql/pgsql/migrations/111.sql
index 27f287d1a..27f287d1a 100644
--- a/schema/versions/pgsql/111.sql
+++ b/sql/pgsql/migrations/111.sql
diff --git a/schema/versions/pgsql/112.sql b/sql/pgsql/migrations/112.sql
index a9d90d6d4..a9d90d6d4 100644
--- a/schema/versions/pgsql/112.sql
+++ b/sql/pgsql/migrations/112.sql
diff --git a/schema/versions/pgsql/113.sql b/sql/pgsql/migrations/113.sql
index 3c0d00563..3c0d00563 100644
--- a/schema/versions/pgsql/113.sql
+++ b/sql/pgsql/migrations/113.sql
diff --git a/schema/versions/pgsql/114.sql b/sql/pgsql/migrations/114.sql
index d317ea794..d317ea794 100644
--- a/schema/versions/pgsql/114.sql
+++ b/sql/pgsql/migrations/114.sql
diff --git a/schema/versions/pgsql/115.sql b/sql/pgsql/migrations/115.sql
index e23f0533a..e23f0533a 100644
--- a/schema/versions/pgsql/115.sql
+++ b/sql/pgsql/migrations/115.sql
diff --git a/schema/versions/pgsql/116.sql b/sql/pgsql/migrations/116.sql
index 252ba0e3a..252ba0e3a 100644
--- a/schema/versions/pgsql/116.sql
+++ b/sql/pgsql/migrations/116.sql
diff --git a/schema/versions/pgsql/117.sql b/sql/pgsql/migrations/117.sql
index da3d056cc..da3d056cc 100644
--- a/schema/versions/pgsql/117.sql
+++ b/sql/pgsql/migrations/117.sql
diff --git a/schema/versions/pgsql/118.sql b/sql/pgsql/migrations/118.sql
index 161cf4e3c..161cf4e3c 100644
--- a/schema/versions/pgsql/118.sql
+++ b/sql/pgsql/migrations/118.sql
diff --git a/schema/versions/pgsql/119.sql b/sql/pgsql/migrations/119.sql
index ddb7d64de..ddb7d64de 100644
--- a/schema/versions/pgsql/119.sql
+++ b/sql/pgsql/migrations/119.sql
diff --git a/schema/versions/pgsql/12.sql b/sql/pgsql/migrations/12.sql
index 6de90f1ab..6de90f1ab 100644
--- a/schema/versions/pgsql/12.sql
+++ b/sql/pgsql/migrations/12.sql
diff --git a/schema/versions/pgsql/120.sql b/sql/pgsql/migrations/120.sql
index 34971146e..34971146e 100644
--- a/schema/versions/pgsql/120.sql
+++ b/sql/pgsql/migrations/120.sql
diff --git a/schema/versions/pgsql/121.sql b/sql/pgsql/migrations/121.sql
index d9cf51184..d9cf51184 100644
--- a/schema/versions/pgsql/121.sql
+++ b/sql/pgsql/migrations/121.sql
diff --git a/schema/versions/pgsql/122.sql b/sql/pgsql/migrations/122.sql
index 397b97bfc..397b97bfc 100644
--- a/schema/versions/pgsql/122.sql
+++ b/sql/pgsql/migrations/122.sql
diff --git a/schema/versions/pgsql/123.sql b/sql/pgsql/migrations/123.sql
index 999d48bf7..999d48bf7 100644
--- a/schema/versions/pgsql/123.sql
+++ b/sql/pgsql/migrations/123.sql
diff --git a/schema/versions/pgsql/124.sql b/sql/pgsql/migrations/124.sql
index 96ae46341..96ae46341 100644
--- a/schema/versions/pgsql/124.sql
+++ b/sql/pgsql/migrations/124.sql
diff --git a/schema/versions/pgsql/125.sql b/sql/pgsql/migrations/125.sql
index e56e0299a..e56e0299a 100644
--- a/schema/versions/pgsql/125.sql
+++ b/sql/pgsql/migrations/125.sql
diff --git a/schema/versions/pgsql/126.sql b/sql/pgsql/migrations/126.sql
index 46f391aa5..46f391aa5 100644
--- a/schema/versions/pgsql/126.sql
+++ b/sql/pgsql/migrations/126.sql
diff --git a/schema/versions/pgsql/127.sql b/sql/pgsql/migrations/127.sql
index 7895aacc0..7895aacc0 100644
--- a/schema/versions/pgsql/127.sql
+++ b/sql/pgsql/migrations/127.sql
diff --git a/schema/versions/pgsql/128.sql b/sql/pgsql/migrations/128.sql
index 3aba67220..3aba67220 100644
--- a/schema/versions/pgsql/128.sql
+++ b/sql/pgsql/migrations/128.sql
diff --git a/schema/versions/pgsql/129.sql b/sql/pgsql/migrations/129.sql
index 2ebec0dc9..2ebec0dc9 100644
--- a/schema/versions/pgsql/129.sql
+++ b/sql/pgsql/migrations/129.sql
diff --git a/schema/versions/pgsql/13.sql b/sql/pgsql/migrations/13.sql
index bf2a2b438..bf2a2b438 100644
--- a/schema/versions/pgsql/13.sql
+++ b/sql/pgsql/migrations/13.sql
diff --git a/schema/versions/pgsql/130.sql b/sql/pgsql/migrations/130.sql
index 820f0b6a8..820f0b6a8 100644
--- a/schema/versions/pgsql/130.sql
+++ b/sql/pgsql/migrations/130.sql
diff --git a/schema/versions/pgsql/131.sql b/sql/pgsql/migrations/131.sql
index 9b3001221..9b3001221 100644
--- a/schema/versions/pgsql/131.sql
+++ b/sql/pgsql/migrations/131.sql
diff --git a/schema/versions/pgsql/132.sql b/sql/pgsql/migrations/132.sql
index e6b4bd13f..e6b4bd13f 100644
--- a/schema/versions/pgsql/132.sql
+++ b/sql/pgsql/migrations/132.sql
diff --git a/schema/versions/pgsql/133.sql b/sql/pgsql/migrations/133.sql
index 7bf2f9fa6..7bf2f9fa6 100644
--- a/schema/versions/pgsql/133.sql
+++ b/sql/pgsql/migrations/133.sql
diff --git a/schema/versions/pgsql/134.sql b/sql/pgsql/migrations/134.sql
index 036abb126..036abb126 100644
--- a/schema/versions/pgsql/134.sql
+++ b/sql/pgsql/migrations/134.sql
diff --git a/schema/versions/pgsql/135.sql b/sql/pgsql/migrations/135.sql
index b1ec70505..b1ec70505 100644
--- a/schema/versions/pgsql/135.sql
+++ b/sql/pgsql/migrations/135.sql
diff --git a/schema/versions/pgsql/136.sql b/sql/pgsql/migrations/136.sql
index d74136537..d74136537 100644
--- a/schema/versions/pgsql/136.sql
+++ b/sql/pgsql/migrations/136.sql
diff --git a/schema/versions/pgsql/137.sql b/sql/pgsql/migrations/137.sql
index 71b67327e..71b67327e 100644
--- a/schema/versions/pgsql/137.sql
+++ b/sql/pgsql/migrations/137.sql
diff --git a/schema/versions/pgsql/138.sql b/sql/pgsql/migrations/138.sql
index 6bfc5bcd5..6bfc5bcd5 100644
--- a/schema/versions/pgsql/138.sql
+++ b/sql/pgsql/migrations/138.sql
diff --git a/schema/versions/pgsql/139.sql b/sql/pgsql/migrations/139.sql
index b2617390c..b2617390c 100644
--- a/schema/versions/pgsql/139.sql
+++ b/sql/pgsql/migrations/139.sql
diff --git a/schema/versions/pgsql/14.sql b/sql/pgsql/migrations/14.sql
index 8e7cc4dd5..8e7cc4dd5 100644
--- a/schema/versions/pgsql/14.sql
+++ b/sql/pgsql/migrations/14.sql
diff --git a/schema/versions/pgsql/140.sql b/sql/pgsql/migrations/140.sql
index 985e30241..985e30241 100644
--- a/schema/versions/pgsql/140.sql
+++ b/sql/pgsql/migrations/140.sql
diff --git a/schema/versions/pgsql/141.sql b/sql/pgsql/migrations/141.sql
index 679ca9498..679ca9498 100644
--- a/schema/versions/pgsql/141.sql
+++ b/sql/pgsql/migrations/141.sql
diff --git a/sql/pgsql/migrations/142.sql b/sql/pgsql/migrations/142.sql
new file mode 100644
index 000000000..7a75f3f52
--- /dev/null
+++ b/sql/pgsql/migrations/142.sql
@@ -0,0 +1,4 @@
+create index ttrss_user_labels2_article_id_idx on ttrss_user_labels2(article_id);
+create index ttrss_user_labels2_label_id_idx on ttrss_user_labels2(label_id);
+
+update ttrss_version set schema_version = 142;
diff --git a/sql/pgsql/migrations/143.sql b/sql/pgsql/migrations/143.sql
new file mode 100644
index 000000000..6fb7226b5
--- /dev/null
+++ b/sql/pgsql/migrations/143.sql
@@ -0,0 +1,2 @@
+alter table ttrss_users add column otp_secret varchar(250);
+alter table ttrss_users alter column otp_secret set default null;
diff --git a/sql/pgsql/migrations/144.sql b/sql/pgsql/migrations/144.sql
new file mode 100644
index 000000000..c1932f12b
--- /dev/null
+++ b/sql/pgsql/migrations/144.sql
@@ -0,0 +1,2 @@
+alter table ttrss_feeds add column favicon_is_custom boolean;
+alter table ttrss_feeds alter column favicon_is_custom set default null;
diff --git a/schema/versions/pgsql/15.sql b/sql/pgsql/migrations/15.sql
index 9fa183a09..9fa183a09 100644
--- a/schema/versions/pgsql/15.sql
+++ b/sql/pgsql/migrations/15.sql
diff --git a/schema/versions/pgsql/16.sql b/sql/pgsql/migrations/16.sql
index 996e9a5dd..996e9a5dd 100644
--- a/schema/versions/pgsql/16.sql
+++ b/sql/pgsql/migrations/16.sql
diff --git a/schema/versions/pgsql/17.sql b/sql/pgsql/migrations/17.sql
index f5d39f33d..f5d39f33d 100644
--- a/schema/versions/pgsql/17.sql
+++ b/sql/pgsql/migrations/17.sql
diff --git a/schema/versions/pgsql/18.sql b/sql/pgsql/migrations/18.sql
index e03c96fd0..e03c96fd0 100644
--- a/schema/versions/pgsql/18.sql
+++ b/sql/pgsql/migrations/18.sql
diff --git a/schema/versions/pgsql/19.sql b/sql/pgsql/migrations/19.sql
index 15c12ca33..15c12ca33 100644
--- a/schema/versions/pgsql/19.sql
+++ b/sql/pgsql/migrations/19.sql
diff --git a/schema/versions/pgsql/20.sql b/sql/pgsql/migrations/20.sql
index 347654512..347654512 100644
--- a/schema/versions/pgsql/20.sql
+++ b/sql/pgsql/migrations/20.sql
diff --git a/schema/versions/pgsql/21.sql b/sql/pgsql/migrations/21.sql
index f64d82228..f64d82228 100644
--- a/schema/versions/pgsql/21.sql
+++ b/sql/pgsql/migrations/21.sql
diff --git a/schema/versions/pgsql/22.sql b/sql/pgsql/migrations/22.sql
index 96e67e4a0..96e67e4a0 100644
--- a/schema/versions/pgsql/22.sql
+++ b/sql/pgsql/migrations/22.sql
diff --git a/schema/versions/pgsql/23.sql b/sql/pgsql/migrations/23.sql
index fe54e757d..fe54e757d 100644
--- a/schema/versions/pgsql/23.sql
+++ b/sql/pgsql/migrations/23.sql
diff --git a/schema/versions/pgsql/24.sql b/sql/pgsql/migrations/24.sql
index f24e34062..f24e34062 100644
--- a/schema/versions/pgsql/24.sql
+++ b/sql/pgsql/migrations/24.sql
diff --git a/schema/versions/pgsql/25.sql b/sql/pgsql/migrations/25.sql
index c3f3d5ea4..c3f3d5ea4 100644
--- a/schema/versions/pgsql/25.sql
+++ b/sql/pgsql/migrations/25.sql
diff --git a/schema/versions/pgsql/26.sql b/sql/pgsql/migrations/26.sql
index c7c1be691..c7c1be691 100644
--- a/schema/versions/pgsql/26.sql
+++ b/sql/pgsql/migrations/26.sql
diff --git a/schema/versions/pgsql/27.sql b/sql/pgsql/migrations/27.sql
index d0baaebc0..d0baaebc0 100644
--- a/schema/versions/pgsql/27.sql
+++ b/sql/pgsql/migrations/27.sql
diff --git a/schema/versions/pgsql/28.sql b/sql/pgsql/migrations/28.sql
index ffdf8448e..ffdf8448e 100644
--- a/schema/versions/pgsql/28.sql
+++ b/sql/pgsql/migrations/28.sql
diff --git a/schema/versions/pgsql/29.sql b/sql/pgsql/migrations/29.sql
index 89b5e94a0..89b5e94a0 100644
--- a/schema/versions/pgsql/29.sql
+++ b/sql/pgsql/migrations/29.sql
diff --git a/schema/versions/pgsql/3.sql b/sql/pgsql/migrations/3.sql
index 5b23f3366..5b23f3366 100644
--- a/schema/versions/pgsql/3.sql
+++ b/sql/pgsql/migrations/3.sql
diff --git a/schema/versions/pgsql/30.sql b/sql/pgsql/migrations/30.sql
index d83eee1f1..d83eee1f1 100644
--- a/schema/versions/pgsql/30.sql
+++ b/sql/pgsql/migrations/30.sql
diff --git a/schema/versions/pgsql/31.sql b/sql/pgsql/migrations/31.sql
index e8d6bdb4a..e8d6bdb4a 100644
--- a/schema/versions/pgsql/31.sql
+++ b/sql/pgsql/migrations/31.sql
diff --git a/schema/versions/pgsql/32.sql b/sql/pgsql/migrations/32.sql
index 30565555e..30565555e 100644
--- a/schema/versions/pgsql/32.sql
+++ b/sql/pgsql/migrations/32.sql
diff --git a/schema/versions/pgsql/33.sql b/sql/pgsql/migrations/33.sql
index 8317dc2de..8317dc2de 100644
--- a/schema/versions/pgsql/33.sql
+++ b/sql/pgsql/migrations/33.sql
diff --git a/schema/versions/pgsql/34.sql b/sql/pgsql/migrations/34.sql
index c8733d430..c8733d430 100644
--- a/schema/versions/pgsql/34.sql
+++ b/sql/pgsql/migrations/34.sql
diff --git a/schema/versions/pgsql/35.sql b/sql/pgsql/migrations/35.sql
index e624d66b3..e624d66b3 100644
--- a/schema/versions/pgsql/35.sql
+++ b/sql/pgsql/migrations/35.sql
diff --git a/schema/versions/pgsql/36.sql b/sql/pgsql/migrations/36.sql
index 1e4a460ee..1e4a460ee 100644
--- a/schema/versions/pgsql/36.sql
+++ b/sql/pgsql/migrations/36.sql
diff --git a/schema/versions/pgsql/37.sql b/sql/pgsql/migrations/37.sql
index 4e764d7ee..4e764d7ee 100644
--- a/schema/versions/pgsql/37.sql
+++ b/sql/pgsql/migrations/37.sql
diff --git a/schema/versions/pgsql/38.sql b/sql/pgsql/migrations/38.sql
index df544d03b..df544d03b 100644
--- a/schema/versions/pgsql/38.sql
+++ b/sql/pgsql/migrations/38.sql
diff --git a/schema/versions/pgsql/39.sql b/sql/pgsql/migrations/39.sql
index f27db09d6..f27db09d6 100644
--- a/schema/versions/pgsql/39.sql
+++ b/sql/pgsql/migrations/39.sql
diff --git a/schema/versions/pgsql/4.sql b/sql/pgsql/migrations/4.sql
index 1f926eaeb..1f926eaeb 100644
--- a/schema/versions/pgsql/4.sql
+++ b/sql/pgsql/migrations/4.sql
diff --git a/schema/versions/pgsql/40.sql b/sql/pgsql/migrations/40.sql
index 5a506cea6..5a506cea6 100644
--- a/schema/versions/pgsql/40.sql
+++ b/sql/pgsql/migrations/40.sql
diff --git a/schema/versions/pgsql/41.sql b/sql/pgsql/migrations/41.sql
index bdb87239b..bdb87239b 100644
--- a/schema/versions/pgsql/41.sql
+++ b/sql/pgsql/migrations/41.sql
diff --git a/schema/versions/pgsql/42.sql b/sql/pgsql/migrations/42.sql
index 3ae211d07..3ae211d07 100644
--- a/schema/versions/pgsql/42.sql
+++ b/sql/pgsql/migrations/42.sql
diff --git a/schema/versions/pgsql/43.sql b/sql/pgsql/migrations/43.sql
index 52bc365cc..52bc365cc 100644
--- a/schema/versions/pgsql/43.sql
+++ b/sql/pgsql/migrations/43.sql
diff --git a/schema/versions/pgsql/44.sql b/sql/pgsql/migrations/44.sql
index a88bfede6..a88bfede6 100644
--- a/schema/versions/pgsql/44.sql
+++ b/sql/pgsql/migrations/44.sql
diff --git a/schema/versions/pgsql/45.sql b/sql/pgsql/migrations/45.sql
index c4b91cf48..c4b91cf48 100644
--- a/schema/versions/pgsql/45.sql
+++ b/sql/pgsql/migrations/45.sql
diff --git a/schema/versions/pgsql/46.sql b/sql/pgsql/migrations/46.sql
index 007824f7a..007824f7a 100644
--- a/schema/versions/pgsql/46.sql
+++ b/sql/pgsql/migrations/46.sql
diff --git a/schema/versions/pgsql/47.sql b/sql/pgsql/migrations/47.sql
index 5dbd6e07e..5dbd6e07e 100644
--- a/schema/versions/pgsql/47.sql
+++ b/sql/pgsql/migrations/47.sql
diff --git a/schema/versions/pgsql/48.sql b/sql/pgsql/migrations/48.sql
index e3a742ace..e3a742ace 100644
--- a/schema/versions/pgsql/48.sql
+++ b/sql/pgsql/migrations/48.sql
diff --git a/schema/versions/pgsql/49.sql b/sql/pgsql/migrations/49.sql
index 6efd91925..6efd91925 100644
--- a/schema/versions/pgsql/49.sql
+++ b/sql/pgsql/migrations/49.sql
diff --git a/schema/versions/pgsql/5.sql b/sql/pgsql/migrations/5.sql
index 1292daa3c..1292daa3c 100644
--- a/schema/versions/pgsql/5.sql
+++ b/sql/pgsql/migrations/5.sql
diff --git a/schema/versions/pgsql/50.sql b/sql/pgsql/migrations/50.sql
index 86846242c..86846242c 100644
--- a/schema/versions/pgsql/50.sql
+++ b/sql/pgsql/migrations/50.sql
diff --git a/schema/versions/pgsql/51.sql b/sql/pgsql/migrations/51.sql
index dd566072b..dd566072b 100644
--- a/schema/versions/pgsql/51.sql
+++ b/sql/pgsql/migrations/51.sql
diff --git a/schema/versions/pgsql/52.sql b/sql/pgsql/migrations/52.sql
index f7165e795..f7165e795 100644
--- a/schema/versions/pgsql/52.sql
+++ b/sql/pgsql/migrations/52.sql
diff --git a/schema/versions/pgsql/53.sql b/sql/pgsql/migrations/53.sql
index adcf6fdec..adcf6fdec 100644
--- a/schema/versions/pgsql/53.sql
+++ b/sql/pgsql/migrations/53.sql
diff --git a/schema/versions/pgsql/54.sql b/sql/pgsql/migrations/54.sql
index 28d3f8ee4..28d3f8ee4 100644
--- a/schema/versions/pgsql/54.sql
+++ b/sql/pgsql/migrations/54.sql
diff --git a/schema/versions/pgsql/55.sql b/sql/pgsql/migrations/55.sql
index 75f55b3c3..75f55b3c3 100644
--- a/schema/versions/pgsql/55.sql
+++ b/sql/pgsql/migrations/55.sql
diff --git a/schema/versions/pgsql/56.sql b/sql/pgsql/migrations/56.sql
index d6d57f03a..d6d57f03a 100644
--- a/schema/versions/pgsql/56.sql
+++ b/sql/pgsql/migrations/56.sql
diff --git a/schema/versions/pgsql/57.sql b/sql/pgsql/migrations/57.sql
index 3dd7898b9..3dd7898b9 100644
--- a/schema/versions/pgsql/57.sql
+++ b/sql/pgsql/migrations/57.sql
diff --git a/schema/versions/pgsql/58.sql b/sql/pgsql/migrations/58.sql
index 61173c1d5..61173c1d5 100644
--- a/schema/versions/pgsql/58.sql
+++ b/sql/pgsql/migrations/58.sql
diff --git a/schema/versions/pgsql/59.sql b/sql/pgsql/migrations/59.sql
index d51fe8f65..d51fe8f65 100644
--- a/schema/versions/pgsql/59.sql
+++ b/sql/pgsql/migrations/59.sql
diff --git a/schema/versions/pgsql/6.sql b/sql/pgsql/migrations/6.sql
index 6c406495d..6c406495d 100644
--- a/schema/versions/pgsql/6.sql
+++ b/sql/pgsql/migrations/6.sql
diff --git a/schema/versions/pgsql/60.sql b/sql/pgsql/migrations/60.sql
index bcf2fdefb..bcf2fdefb 100644
--- a/schema/versions/pgsql/60.sql
+++ b/sql/pgsql/migrations/60.sql
diff --git a/schema/versions/pgsql/61.sql b/sql/pgsql/migrations/61.sql
index 209a7ba55..209a7ba55 100644
--- a/schema/versions/pgsql/61.sql
+++ b/sql/pgsql/migrations/61.sql
diff --git a/schema/versions/pgsql/62.sql b/sql/pgsql/migrations/62.sql
index 4cc904b0a..4cc904b0a 100644
--- a/schema/versions/pgsql/62.sql
+++ b/sql/pgsql/migrations/62.sql
diff --git a/schema/versions/pgsql/63.sql b/sql/pgsql/migrations/63.sql
index 90bde3154..90bde3154 100644
--- a/schema/versions/pgsql/63.sql
+++ b/sql/pgsql/migrations/63.sql
diff --git a/schema/versions/pgsql/64.sql b/sql/pgsql/migrations/64.sql
index 51f0be7e2..51f0be7e2 100644
--- a/schema/versions/pgsql/64.sql
+++ b/sql/pgsql/migrations/64.sql
diff --git a/schema/versions/pgsql/65.sql b/sql/pgsql/migrations/65.sql
index ce21de898..ce21de898 100644
--- a/schema/versions/pgsql/65.sql
+++ b/sql/pgsql/migrations/65.sql
diff --git a/schema/versions/pgsql/66.sql b/sql/pgsql/migrations/66.sql
index f90c0a157..f90c0a157 100644
--- a/schema/versions/pgsql/66.sql
+++ b/sql/pgsql/migrations/66.sql
diff --git a/schema/versions/pgsql/67.sql b/sql/pgsql/migrations/67.sql
index 1e2aa4429..1e2aa4429 100644
--- a/schema/versions/pgsql/67.sql
+++ b/sql/pgsql/migrations/67.sql
diff --git a/schema/versions/pgsql/68.sql b/sql/pgsql/migrations/68.sql
index 6d56df0f9..6d56df0f9 100644
--- a/schema/versions/pgsql/68.sql
+++ b/sql/pgsql/migrations/68.sql
diff --git a/schema/versions/pgsql/69.sql b/sql/pgsql/migrations/69.sql
index cae0ff50f..cae0ff50f 100644
--- a/schema/versions/pgsql/69.sql
+++ b/sql/pgsql/migrations/69.sql
diff --git a/schema/versions/pgsql/7.sql b/sql/pgsql/migrations/7.sql
index 51437e4fa..51437e4fa 100644
--- a/schema/versions/pgsql/7.sql
+++ b/sql/pgsql/migrations/7.sql
diff --git a/schema/versions/pgsql/70.sql b/sql/pgsql/migrations/70.sql
index b970a861c..b970a861c 100644
--- a/schema/versions/pgsql/70.sql
+++ b/sql/pgsql/migrations/70.sql
diff --git a/schema/versions/pgsql/71.sql b/sql/pgsql/migrations/71.sql
index 2061ada2b..2061ada2b 100644
--- a/schema/versions/pgsql/71.sql
+++ b/sql/pgsql/migrations/71.sql
diff --git a/schema/versions/pgsql/72.sql b/sql/pgsql/migrations/72.sql
index 65e4d2e0a..65e4d2e0a 100644
--- a/schema/versions/pgsql/72.sql
+++ b/sql/pgsql/migrations/72.sql
diff --git a/schema/versions/pgsql/73.sql b/sql/pgsql/migrations/73.sql
index 051578d22..051578d22 100644
--- a/schema/versions/pgsql/73.sql
+++ b/sql/pgsql/migrations/73.sql
diff --git a/schema/versions/pgsql/74.sql b/sql/pgsql/migrations/74.sql
index 22c95c5d3..22c95c5d3 100644
--- a/schema/versions/pgsql/74.sql
+++ b/sql/pgsql/migrations/74.sql
diff --git a/schema/versions/pgsql/75.sql b/sql/pgsql/migrations/75.sql
index 3291d652c..3291d652c 100644
--- a/schema/versions/pgsql/75.sql
+++ b/sql/pgsql/migrations/75.sql
diff --git a/schema/versions/pgsql/76.sql b/sql/pgsql/migrations/76.sql
index b7cc12c7a..b7cc12c7a 100644
--- a/schema/versions/pgsql/76.sql
+++ b/sql/pgsql/migrations/76.sql
diff --git a/schema/versions/pgsql/77.sql b/sql/pgsql/migrations/77.sql
index 944f31d84..944f31d84 100644
--- a/schema/versions/pgsql/77.sql
+++ b/sql/pgsql/migrations/77.sql
diff --git a/schema/versions/pgsql/78.sql b/sql/pgsql/migrations/78.sql
index 80e9e782a..80e9e782a 100644
--- a/schema/versions/pgsql/78.sql
+++ b/sql/pgsql/migrations/78.sql
diff --git a/schema/versions/pgsql/79.sql b/sql/pgsql/migrations/79.sql
index 7e8c31d49..7e8c31d49 100644
--- a/schema/versions/pgsql/79.sql
+++ b/sql/pgsql/migrations/79.sql
diff --git a/schema/versions/pgsql/8.sql b/sql/pgsql/migrations/8.sql
index ab7a7df33..ab7a7df33 100644
--- a/schema/versions/pgsql/8.sql
+++ b/sql/pgsql/migrations/8.sql
diff --git a/schema/versions/pgsql/80.sql b/sql/pgsql/migrations/80.sql
index df2295c42..df2295c42 100644
--- a/schema/versions/pgsql/80.sql
+++ b/sql/pgsql/migrations/80.sql
diff --git a/schema/versions/pgsql/81.sql b/sql/pgsql/migrations/81.sql
index 800ceede0..800ceede0 100644
--- a/schema/versions/pgsql/81.sql
+++ b/sql/pgsql/migrations/81.sql
diff --git a/schema/versions/pgsql/82.sql b/sql/pgsql/migrations/82.sql
index 80ca24e72..80ca24e72 100644
--- a/schema/versions/pgsql/82.sql
+++ b/sql/pgsql/migrations/82.sql
diff --git a/schema/versions/pgsql/83.sql b/sql/pgsql/migrations/83.sql
index a89086551..a89086551 100644
--- a/schema/versions/pgsql/83.sql
+++ b/sql/pgsql/migrations/83.sql
diff --git a/schema/versions/pgsql/84.sql b/sql/pgsql/migrations/84.sql
index 55a7caf71..55a7caf71 100644
--- a/schema/versions/pgsql/84.sql
+++ b/sql/pgsql/migrations/84.sql
diff --git a/schema/versions/pgsql/85.sql b/sql/pgsql/migrations/85.sql
index a0a782280..a0a782280 100644
--- a/schema/versions/pgsql/85.sql
+++ b/sql/pgsql/migrations/85.sql
diff --git a/schema/versions/pgsql/86.sql b/sql/pgsql/migrations/86.sql
index 1f311b6d7..1f311b6d7 100644
--- a/schema/versions/pgsql/86.sql
+++ b/sql/pgsql/migrations/86.sql
diff --git a/schema/versions/pgsql/87.sql b/sql/pgsql/migrations/87.sql
index 86d0c4f61..86d0c4f61 100644
--- a/schema/versions/pgsql/87.sql
+++ b/sql/pgsql/migrations/87.sql
diff --git a/schema/versions/pgsql/88.sql b/sql/pgsql/migrations/88.sql
index df6ec8fb7..df6ec8fb7 100644
--- a/schema/versions/pgsql/88.sql
+++ b/sql/pgsql/migrations/88.sql
diff --git a/schema/versions/pgsql/89.sql b/sql/pgsql/migrations/89.sql
index 9727a9c42..9727a9c42 100644
--- a/schema/versions/pgsql/89.sql
+++ b/sql/pgsql/migrations/89.sql
diff --git a/schema/versions/pgsql/9.sql b/sql/pgsql/migrations/9.sql
index 9624403aa..9624403aa 100644
--- a/schema/versions/pgsql/9.sql
+++ b/sql/pgsql/migrations/9.sql
diff --git a/schema/versions/pgsql/90.sql b/sql/pgsql/migrations/90.sql
index b7935535e..b7935535e 100644
--- a/schema/versions/pgsql/90.sql
+++ b/sql/pgsql/migrations/90.sql
diff --git a/schema/versions/pgsql/91.sql b/sql/pgsql/migrations/91.sql
index 791d43063..791d43063 100644
--- a/schema/versions/pgsql/91.sql
+++ b/sql/pgsql/migrations/91.sql
diff --git a/schema/versions/pgsql/92.sql b/sql/pgsql/migrations/92.sql
index b683d514d..b683d514d 100644
--- a/schema/versions/pgsql/92.sql
+++ b/sql/pgsql/migrations/92.sql
diff --git a/schema/versions/pgsql/93.sql b/sql/pgsql/migrations/93.sql
index 0374c0b0a..0374c0b0a 100644
--- a/schema/versions/pgsql/93.sql
+++ b/sql/pgsql/migrations/93.sql
diff --git a/schema/versions/pgsql/94.sql b/sql/pgsql/migrations/94.sql
index 0f76c4c5f..0f76c4c5f 100644
--- a/schema/versions/pgsql/94.sql
+++ b/sql/pgsql/migrations/94.sql
diff --git a/schema/versions/pgsql/95.sql b/sql/pgsql/migrations/95.sql
index 014463a85..014463a85 100644
--- a/schema/versions/pgsql/95.sql
+++ b/sql/pgsql/migrations/95.sql
diff --git a/schema/versions/pgsql/96.sql b/sql/pgsql/migrations/96.sql
index e3cdc06be..e3cdc06be 100644
--- a/schema/versions/pgsql/96.sql
+++ b/sql/pgsql/migrations/96.sql
diff --git a/schema/versions/pgsql/97.sql b/sql/pgsql/migrations/97.sql
index f458ee910..f458ee910 100644
--- a/schema/versions/pgsql/97.sql
+++ b/sql/pgsql/migrations/97.sql
diff --git a/schema/versions/pgsql/98.sql b/sql/pgsql/migrations/98.sql
index 1984a4325..1984a4325 100644
--- a/schema/versions/pgsql/98.sql
+++ b/sql/pgsql/migrations/98.sql
diff --git a/schema/versions/pgsql/99.sql b/sql/pgsql/migrations/99.sql
index 846056cd6..846056cd6 100644
--- a/schema/versions/pgsql/99.sql
+++ b/sql/pgsql/migrations/99.sql
diff --git a/sql/pgsql/schema.sql b/sql/pgsql/schema.sql
new file mode 100644
index 000000000..6130b633c
--- /dev/null
+++ b/sql/pgsql/schema.sql
@@ -0,0 +1,396 @@
+drop table if exists ttrss_error_log;
+drop table if exists ttrss_plugin_storage;
+drop table if exists ttrss_linked_feeds;
+drop table if exists ttrss_linked_instances;
+drop table if exists ttrss_access_keys;
+drop table if exists ttrss_user_labels2;
+drop table if exists ttrss_labels2;
+drop table if exists ttrss_feedbrowser_cache;
+drop table if exists ttrss_labels;
+drop table if exists ttrss_filters2_rules;
+drop table if exists ttrss_filters2_actions;
+drop table if exists ttrss_filters2;
+drop table if exists ttrss_filters;
+drop table if exists ttrss_filter_types;
+drop table if exists ttrss_filter_actions;
+drop table if exists ttrss_user_prefs;
+drop table if exists ttrss_user_prefs2;
+drop table if exists ttrss_prefs;
+drop table if exists ttrss_prefs_types;
+drop table if exists ttrss_prefs_sections;
+drop table if exists ttrss_tags;
+drop table if exists ttrss_enclosures;
+drop table if exists ttrss_settings_profiles;
+drop table if exists ttrss_entry_comments;
+drop table if exists ttrss_user_entries;
+drop table if exists ttrss_entries;
+drop table if exists ttrss_scheduled_updates;
+drop table if exists ttrss_counters_cache;
+drop table if exists ttrss_cat_counters_cache;
+drop table if exists ttrss_archived_feeds;
+drop table if exists ttrss_feeds;
+drop table if exists ttrss_feed_categories;
+drop table if exists ttrss_app_passwords;
+drop table if exists ttrss_users;
+drop table if exists ttrss_themes;
+drop table if exists ttrss_sessions;
+drop function if exists SUBSTRING_FOR_DATE(timestamp, int, int);
+
+begin;
+
+create table ttrss_users (id serial not null primary key,
+ login varchar(120) not null unique,
+ pwd_hash varchar(250) not null,
+ last_login timestamp default null,
+ access_level integer not null default 0,
+ email varchar(250) not null default '',
+ full_name varchar(250) not null default '',
+ email_digest boolean not null default false,
+ last_digest_sent timestamp default null,
+ salt varchar(250) not null default '',
+ twitter_oauth text default null,
+ otp_enabled boolean not null default false,
+ otp_secret varchar(250) default null,
+ resetpass_token varchar(250) default null,
+ created timestamp default null);
+
+insert into ttrss_users (login,pwd_hash,access_level) values ('admin',
+ 'SHA1:5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8', 10);
+
+create table ttrss_app_passwords (id serial not null primary key,
+ title varchar(250) not null,
+ pwd_hash text not null,
+ service varchar(100) not null,
+ created timestamp not null,
+ last_used timestamp default null,
+ owner_uid integer not null references ttrss_users(id) on delete cascade);
+
+create table ttrss_feed_categories(id serial not null primary key,
+ owner_uid integer not null references ttrss_users(id) on delete cascade,
+ collapsed boolean not null default false,
+ order_id integer not null default 0,
+ view_settings varchar(250) not null default '',
+ parent_cat integer references ttrss_feed_categories(id) on delete set null,
+ title varchar(200) not null);
+
+create table ttrss_feeds (id serial not null primary key,
+ owner_uid integer not null references ttrss_users(id) on delete cascade,
+ title varchar(200) not null,
+ cat_id integer default null references ttrss_feed_categories(id) on delete set null,
+ feed_url text not null,
+ icon_url varchar(250) not null default '',
+ update_interval integer not null default 0,
+ purge_interval integer not null default 0,
+ last_updated timestamp default null,
+ last_unconditional timestamp default null,
+ last_error text not null default '',
+ last_modified text not null default '',
+ favicon_avg_color varchar(11) default null,
+ favicon_is_custom boolean default null,
+ site_url varchar(250) not null default '',
+ auth_login varchar(250) not null default '',
+ parent_feed integer default null references ttrss_feeds(id) on delete set null,
+ private boolean not null default false,
+ auth_pass varchar(250) not null default '',
+ hidden boolean not null default false,
+ include_in_digest boolean not null default true,
+ rtl_content boolean not null default false,
+ cache_images boolean not null default false,
+ hide_images boolean not null default false,
+ cache_content boolean not null default false,
+ last_viewed timestamp default null,
+ last_update_started timestamp default null,
+ last_successful_update timestamp default null,
+ update_method integer not null default 0,
+ always_display_enclosures boolean not null default false,
+ order_id integer not null default 0,
+ mark_unread_on_update boolean not null default false,
+ update_on_checksum_change boolean not null default false,
+ strip_images boolean not null default false,
+ view_settings varchar(250) not null default '',
+ pubsub_state integer not null default 0,
+ favicon_last_checked timestamp default null,
+ feed_language varchar(100) not null default '',
+ auth_pass_encrypted boolean not null default false,
+ unique(feed_url, owner_uid));
+
+create index ttrss_feeds_owner_uid_index on ttrss_feeds(owner_uid);
+create index ttrss_feeds_cat_id_idx on ttrss_feeds(cat_id);
+
+insert into ttrss_feeds (owner_uid, title, feed_url) values
+ ((select id from ttrss_users where login = 'admin'), 'Tiny Tiny RSS: Forum', 'https://tt-rss.org/forum/rss.php');
+
+create table ttrss_archived_feeds (id integer not null primary key,
+ owner_uid integer not null references ttrss_users(id) on delete cascade,
+ created timestamp not null,
+ title varchar(200) not null,
+ feed_url text not null,
+ site_url varchar(250) not null default '');
+
+create table ttrss_counters_cache (
+ feed_id integer not null,
+ owner_uid integer not null references ttrss_users(id) ON DELETE CASCADE,
+ updated timestamp not null,
+ value integer not null default 0);
+
+create index ttrss_counters_cache_feed_id_idx on ttrss_counters_cache(feed_id);
+create index ttrss_counters_cache_owner_uid_idx on ttrss_counters_cache(owner_uid);
+create index ttrss_counters_cache_value_idx on ttrss_counters_cache(value);
+
+create table ttrss_cat_counters_cache (
+ feed_id integer not null,
+ owner_uid integer not null references ttrss_users(id) ON DELETE CASCADE,
+ updated timestamp not null,
+ value integer not null default 0);
+
+create index ttrss_cat_counters_cache_owner_uid_idx on ttrss_cat_counters_cache(owner_uid);
+
+create table ttrss_entries (id serial not null primary key,
+ title text not null,
+ guid text not null unique,
+ link text not null,
+ updated timestamp not null,
+ content text not null,
+ content_hash varchar(250) not null,
+ cached_content text,
+ no_orig_date boolean not null default false,
+ date_entered timestamp not null,
+ date_updated timestamp not null,
+ num_comments integer not null default 0,
+ comments varchar(250) not null default '',
+ plugin_data text,
+ tsvector_combined tsvector,
+ lang varchar(2),
+ author varchar(250) not null default '');
+
+-- create index ttrss_entries_title_index on ttrss_entries(title);
+create index ttrss_entries_date_entered_index on ttrss_entries(date_entered);
+create index ttrss_entries_updated_idx on ttrss_entries(updated);
+create index ttrss_entries_tsvector_combined_idx on ttrss_entries using gin(tsvector_combined);
+
+create table ttrss_user_entries (
+ int_id serial not null primary key,
+ ref_id integer not null references ttrss_entries(id) ON DELETE CASCADE,
+ uuid varchar(200) not null,
+ feed_id int references ttrss_feeds(id) ON DELETE CASCADE,
+ orig_feed_id integer references ttrss_archived_feeds(id) ON DELETE SET NULL,
+ owner_uid integer not null references ttrss_users(id) ON DELETE CASCADE,
+ marked boolean not null default false,
+ published boolean not null default false,
+ tag_cache text not null,
+ label_cache text not null,
+ last_read timestamp,
+ score int not null default 0,
+ last_marked timestamp,
+ last_published timestamp,
+ note text,
+ unread boolean not null default true);
+
+-- create index ttrss_user_entries_feed_id_index on ttrss_user_entries(feed_id);
+create index ttrss_user_entries_owner_uid_index on ttrss_user_entries(owner_uid);
+create index ttrss_user_entries_ref_id_index on ttrss_user_entries(ref_id);
+create index ttrss_user_entries_feed_id on ttrss_user_entries(feed_id);
+create index ttrss_user_entries_unread_idx on ttrss_user_entries(unread);
+
+create table ttrss_entry_comments (id serial not null primary key,
+ ref_id integer not null references ttrss_entries(id) ON DELETE CASCADE,
+ owner_uid integer not null references ttrss_users(id) ON DELETE CASCADE,
+ private boolean not null default false,
+ date_entered timestamp not null);
+
+create index ttrss_entry_comments_ref_id_index on ttrss_entry_comments(ref_id);
+-- create index ttrss_entry_comments_owner_uid_index on ttrss_entry_comments(owner_uid);
+
+create table ttrss_filter_types (id integer not null primary key,
+ name varchar(120) unique not null,
+ description varchar(250) not null unique);
+
+insert into ttrss_filter_types (id,name,description) values (1, 'title', 'Title');
+insert into ttrss_filter_types (id,name,description) values (2, 'content', 'Content');
+insert into ttrss_filter_types (id,name,description) values (3, 'both',
+ 'Title or Content');
+insert into ttrss_filter_types (id,name,description) values (4, 'link',
+ 'Link');
+insert into ttrss_filter_types (id,name,description) values (5, 'date',
+ 'Article Date');
+insert into ttrss_filter_types (id,name,description) values (6, 'author', 'Author');
+insert into ttrss_filter_types (id,name,description) values (7, 'tag', 'Article Tags');
+
+create table ttrss_filter_actions (id integer not null primary key,
+ name varchar(120) unique not null,
+ description varchar(250) not null unique);
+
+insert into ttrss_filter_actions (id,name,description) values (1, 'filter',
+ 'Delete article');
+
+insert into ttrss_filter_actions (id,name,description) values (2, 'catchup',
+ 'Mark as read');
+
+insert into ttrss_filter_actions (id,name,description) values (3, 'mark',
+ 'Set starred');
+
+insert into ttrss_filter_actions (id,name,description) values (4, 'tag',
+ 'Assign tags');
+
+insert into ttrss_filter_actions (id,name,description) values (5, 'publish',
+ 'Publish article');
+
+insert into ttrss_filter_actions (id,name,description) values (6, 'score',
+ 'Modify score');
+
+insert into ttrss_filter_actions (id,name,description) values (7, 'label',
+ 'Assign label');
+
+insert into ttrss_filter_actions (id,name,description) values (8, 'stop',
+ 'Stop / Do nothing');
+
+insert into ttrss_filter_actions (id,name,description) values (9, 'plugin',
+ 'Invoke plugin');
+
+create table ttrss_filters2(id serial not null primary key,
+ owner_uid integer not null references ttrss_users(id) on delete cascade,
+ match_any_rule boolean not null default false,
+ inverse boolean not null default false,
+ title varchar(250) not null default '',
+ order_id integer not null default 0,
+ last_triggered timestamp default null,
+ enabled boolean not null default true);
+
+create table ttrss_filters2_rules(id serial not null primary key,
+ filter_id integer not null references ttrss_filters2(id) on delete cascade,
+ reg_exp text not null,
+ inverse boolean not null default false,
+ filter_type integer not null references ttrss_filter_types(id),
+ feed_id integer references ttrss_feeds(id) on delete cascade default null,
+ cat_id integer references ttrss_feed_categories(id) on delete cascade default null,
+ match_on text,
+ cat_filter boolean not null default false);
+
+create table ttrss_filters2_actions(id serial not null primary key,
+ filter_id integer not null references ttrss_filters2(id) on delete cascade,
+ action_id integer not null default 1 references ttrss_filter_actions(id) on delete cascade,
+ action_param varchar(250) not null default '');
+
+create table ttrss_tags (id serial not null primary key,
+ tag_name varchar(250) not null,
+ owner_uid integer not null references ttrss_users(id) on delete cascade,
+ post_int_id integer references ttrss_user_entries(int_id) ON DELETE CASCADE not null);
+
+create index ttrss_tags_owner_uid_index on ttrss_tags(owner_uid);
+create index ttrss_tags_post_int_id_idx on ttrss_tags(post_int_id);
+
+create table ttrss_enclosures (id serial not null primary key,
+ content_url text not null,
+ content_type varchar(250) not null,
+ title text not null,
+ duration text not null,
+ width integer not null default 0,
+ height integer not null default 0,
+ post_id integer references ttrss_entries(id) ON DELETE cascade NOT NULL);
+
+create index ttrss_enclosures_post_id_idx on ttrss_enclosures(post_id);
+
+create table ttrss_settings_profiles(id serial not null primary key,
+ title varchar(250) not null,
+ owner_uid integer not null references ttrss_users(id) on delete cascade);
+
+create table ttrss_prefs_types (id integer not null primary key,
+ type_name varchar(100) not null);
+
+create table ttrss_prefs_sections (id integer not null primary key,
+ order_id integer not null,
+ section_name varchar(100) not null);
+
+create table ttrss_prefs (pref_name varchar(250) not null primary key,
+ type_id integer not null references ttrss_prefs_types(id),
+ section_id integer not null default 1 references ttrss_prefs_sections(id),
+ access_level integer not null default 0,
+ def_value text not null);
+
+create table ttrss_user_prefs (
+ owner_uid integer not null references ttrss_users(id) ON DELETE CASCADE,
+ pref_name varchar(250) not null references ttrss_prefs(pref_name) ON DELETE CASCADE,
+ profile integer references ttrss_settings_profiles(id) ON DELETE CASCADE,
+ value text not null);
+
+create index ttrss_user_prefs_owner_uid_index on ttrss_user_prefs(owner_uid);
+create index ttrss_user_prefs_pref_name_idx on ttrss_user_prefs(pref_name);
+
+create table ttrss_user_prefs2 (
+ owner_uid integer not null references ttrss_users(id) ON DELETE CASCADE,
+ pref_name varchar(250) not null,
+ profile integer references ttrss_settings_profiles(id) ON DELETE CASCADE,
+ value text not null);
+
+create index ttrss_user_prefs2_owner_uid_index on ttrss_user_prefs2(owner_uid);
+create index ttrss_user_prefs2_pref_name_idx on ttrss_user_prefs2(pref_name);
+create unique index ttrss_user_prefs2_composite_idx on ttrss_user_prefs2(pref_name, owner_uid, coalesce(profile, -1));
+
+create table ttrss_sessions (id varchar(250) not null primary key,
+ data text,
+ expire integer not null);
+
+create index ttrss_sessions_expire_index on ttrss_sessions(expire);
+
+create function SUBSTRING_FOR_DATE(timestamp, int, int) RETURNS text AS 'SELECT SUBSTRING(CAST($1 AS text), $2, $3)' LANGUAGE 'sql';
+
+create table ttrss_feedbrowser_cache (
+ feed_url text not null primary key,
+ title text not null,
+ site_url text not null,
+ subscribers integer not null);
+
+create table ttrss_labels2 (id serial not null primary key,
+ owner_uid integer not null references ttrss_users(id) ON DELETE CASCADE,
+ fg_color varchar(15) not null default '',
+ bg_color varchar(15) not null default '',
+ caption varchar(250) not null
+);
+
+create table ttrss_user_labels2 (
+ label_id integer not null references ttrss_labels2(id) ON DELETE CASCADE,
+ article_id integer not null references ttrss_entries(id) ON DELETE CASCADE
+);
+
+create index ttrss_user_labels2_article_id_idx on ttrss_user_labels2(article_id);
+create index ttrss_user_labels2_label_id_idx on ttrss_user_labels2(label_id);
+
+create table ttrss_access_keys (id serial not null primary key,
+ access_key varchar(250) not null,
+ feed_id varchar(250) not null,
+ is_cat boolean not null default false,
+ owner_uid integer not null references ttrss_users(id) on delete cascade);
+
+create table ttrss_linked_instances (id serial not null primary key,
+ last_connected timestamp not null,
+ last_status_in integer not null,
+ last_status_out integer not null,
+ access_key varchar(250) not null unique,
+ access_url text not null);
+
+create table ttrss_linked_feeds (
+ feed_url text not null,
+ site_url text not null,
+ title text not null,
+ created timestamp not null,
+ updated timestamp not null,
+ instance_id integer not null references ttrss_linked_instances(id) ON DELETE CASCADE,
+ subscribers integer not null);
+
+create table ttrss_plugin_storage (
+ id serial not null primary key,
+ name varchar(100) not null,
+ owner_uid integer not null references ttrss_users(id) ON DELETE CASCADE,
+ content text not null);
+
+create table ttrss_error_log(
+ id serial not null primary key,
+ owner_uid integer references ttrss_users(id) ON DELETE SET NULL,
+ errno integer not null,
+ errstr text not null,
+ filename text not null,
+ lineno integer not null,
+ context text not null,
+ created_at timestamp not null);
+
+commit;
diff --git a/templates/digest_template_html.txt b/templates/digest_template_html.txt
index f38d98a21..f82294896 100644
--- a/templates/digest_template_html.txt
+++ b/templates/digest_template_html.txt
@@ -1,20 +1,20 @@
<!-- $BeginBlock digest -->
-<h1 style='font-size : x-large'>New headlines for last 24 hours, as of ${CUR_DATE} ${CUR_TIME}</h1>
+<h1>New headlines for last 24 hours, as of ${CUR_DATE} ${CUR_TIME}</h1>
<hr/>
<!-- $BeginBlock feed -->
-<h2 style='font-size : large'>${FEED_TITLE}</h2>
+<h2>${FEED_TITLE}</h2>
<ul>
<!-- $BeginBlock article -->
<li><a href="${ARTICLE_LINK}">${ARTICLE_TITLE}</a> &mdash; <strong>${ARTICLE_UPDATED}</strong>
-<div style='font-style : italic'>${ARTICLE_LABELS}</div>
-<div style='color : gray'>${ARTICLE_EXCERPT}</div>
+<div><em>${ARTICLE_LABELS}</em></div>
+<div>${ARTICLE_EXCERPT}</div>
<!-- $EndBlock article -->
</ul>
<!-- $EndBlock feed -->
-
+
<hr>
-<em>To unsubscribe, visit your configuration options or contact instance owner.</em><br/>
-<em>Sent by tt-rss mailer daemon at ${TTRSS_HOST}.</em>
+<em style='color : gray'>To unsubscribe, visit your configuration options or contact instance owner.<br/>
+Sent by tt-rss mailer daemon at ${TTRSS_HOST}.</em>
<!-- $EndBlock digest -->
diff --git a/themes/compact.css b/themes/compact.css
index 16058309f..5a3a00cfe 100644
--- a/themes/compact.css
+++ b/themes/compact.css
@@ -763,6 +763,10 @@ body.ttrss_main #header i.log-alert {
color: #ddba1c;
cursor: pointer;
}
+body.ttrss_main #header #updates-available {
+ color: #69C671;
+ padding-right: 4px;
+}
body.ttrss_main #header i {
margin: 0 4px;
}
@@ -984,6 +988,10 @@ body.ttrss_main .panel-scrollable {
overflow: auto;
height: 200px;
}
+body.ttrss_main .panel-scrollable-400px {
+ overflow: auto;
+ height: 400px;
+}
body.ttrss_main ul.list li {
padding: 2px;
}
@@ -1030,6 +1038,10 @@ body.ttrss_main .pull-left,
body.ttrss_utility .pull-left {
float: left;
}
+body.ttrss_main .pre-wrap,
+body.ttrss_utility .pre-wrap {
+ white-space: pre-wrap;
+}
body.ttrss_main .text-error,
body.ttrss_utility .text-error {
color: #b94a48;
@@ -1415,13 +1427,6 @@ body.ttrss_prefs {
background-color: #f5f5f5;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 14px;
- /*.dijitContentPane {
- h1:first-of-type,
- h2:first-of-type,
- h3:first-of-type {
- margin-top: 0px;
- }
- }*/
}
body.ttrss_prefs h1,
body.ttrss_prefs h2,
@@ -1431,6 +1436,11 @@ body.ttrss_prefs h4 {
font-weight: 600;
color: #555;
}
+body.ttrss_prefs .dijitContentPane > h1:first-of-type,
+body.ttrss_prefs .dijitContentPane > h2:first-of-type,
+body.ttrss_prefs .dijitContentPane > h3:first-of-type {
+ margin-top: 0;
+}
body.ttrss_prefs #footer,
body.ttrss_prefs #header {
padding: 8px;
@@ -1494,23 +1504,95 @@ body.ttrss_prefs fieldset.prefs .help-text-bottom {
margin-top: 10px;
}
body.ttrss_prefs fieldset.plugin label.description {
- width: 600px;
+ width: 550px;
margin-right: 150px;
display: inline-block;
}
body.ttrss_prefs fieldset.plugin label.description .dijitCheckBox {
margin-right: 10px;
}
-body.ttrss_prefs .users-list td {
+body.ttrss_prefs table th {
+ text-align: left;
+}
+body.ttrss_prefs table td.checkbox {
+ text-align: center;
+ width: 32px;
+}
+body.ttrss_prefs ul.prefs-plugin-list {
+ margin: 0;
+ padding: 0;
+}
+body.ttrss_prefs ul.prefs-plugin-list li {
+ display: flex;
+ align-items: center;
+ border-bottom: #ddd 1px solid;
+ line-height: 30px;
+}
+body.ttrss_prefs ul.prefs-plugin-list li.text-center {
+ border: 0;
+ display: block;
+}
+body.ttrss_prefs ul.prefs-plugin-list li > * {
+ padding: 8px;
+}
+body.ttrss_prefs ul.prefs-plugin-list li label.checkbox {
+ display: flex;
+ align-items: center;
+ min-width: 300px;
cursor: pointer;
}
-body.ttrss_prefs .event-log tr td {
- font-size: 10px;
+body.ttrss_prefs ul.prefs-plugin-list li label.checkbox.system {
+ cursor: auto;
+}
+body.ttrss_prefs ul.prefs-plugin-list li label.checkbox .name {
+ flex-grow: 2;
+ display: inline-block;
+ text-align: right;
+ font-weight: bold;
+}
+body.ttrss_prefs ul.prefs-plugin-list li .actions {
+ flex-grow: 2;
+ text-align: right;
+}
+body.ttrss_prefs ul.prefs-plugin-list li .version {
+ min-width: 200px;
+ text-align: right;
+}
+body.ttrss_prefs .plugin-installer-list li,
+body.ttrss_prefs .plugin-updater-list li {
+ border-bottom: #ddd 1px solid;
+}
+body.ttrss_prefs .plugin-installer-list li > *,
+body.ttrss_prefs .plugin-updater-list li > * {
+ padding: 8px 4px;
+}
+body.ttrss_prefs .plugin-installer-list li > pre,
+body.ttrss_prefs .plugin-updater-list li > pre {
+ margin: 0;
+}
+body.ttrss_prefs .plugin-installer-list li h3,
+body.ttrss_prefs .plugin-updater-list li h3 {
+ margin: 0;
+}
+body.ttrss_prefs .plugin-installer-list li.text-center,
+body.ttrss_prefs .plugin-updater-list li.text-center {
+ border: 0;
+}
+body.ttrss_prefs .plugin-installer-list .plugin-installed > *,
+body.ttrss_prefs .plugin-updater-list .plugin-installed > * {
+ opacity: 0.5;
+}
+body.ttrss_prefs .users-list td,
+body.ttrss_prefs .event-log td,
+body.ttrss_prefs .users-list th,
+body.ttrss_prefs .event-log th {
+ cursor: pointer;
padding: 8px;
+ border-bottom: #ddd 1px solid;
+}
+body.ttrss_prefs .event-log tr td,
+body.ttrss_prefs .event-log tr th {
vertical-align: top;
- border-width: 0 0 1px 0;
- border-style: solid;
- border-color: #ddd;
}
body.ttrss_prefs .event-log tr .errno {
font-style: italic;
@@ -1707,9 +1789,13 @@ body.ttrss_utility.share_popup .content {
font-size: 13px;
padding: 0px;
}
-.flat .dijitToolbar .dijitTextBox .dijitInputInner {
+.flat .dijitToolbar .dijitTextBox .dijitInputContainer .dijitInputInner {
line-height: 10px;
}
+.flat .dijitToolbar .dijitTextBox .dijitInputContainer .dijitPlaceHolder {
+ line-height: 15px;
+ margin-left: 0;
+}
.flat .dijitToolbar label {
position: relative;
top: 2px;
@@ -1813,9 +1899,9 @@ body.ttrss_utility.share_popup .content {
font-family: 'Material Icons';
font-style: normal;
font-weight: 400;
- src: url(../lib/iconfont/MaterialIcons-Regular.eot);
+ src: url(../vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.eot);
/* For IE6-8 */
- src: local('Material Icons'), local('MaterialIcons-Regular'), url(../lib/iconfont/MaterialIcons-Regular.woff2) format('woff2'), url(../lib/iconfont/MaterialIcons-Regular.woff) format('woff'), url(../lib/iconfont/MaterialIcons-Regular.ttf) format('truetype');
+ src: local('Material Icons'), local('MaterialIcons-Regular'), url(../vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.woff2) format('woff2'), url(../vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.woff) format('woff'), url(../vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.ttf) format('truetype');
}
.material-icons {
font-family: 'Material Icons';
diff --git a/themes/compact_night.css b/themes/compact_night.css
index f1894f4de..c9f9b12a8 100644
--- a/themes/compact_night.css
+++ b/themes/compact_night.css
@@ -763,6 +763,10 @@ body.ttrss_main #header i.log-alert {
color: #ddba1c;
cursor: pointer;
}
+body.ttrss_main #header #updates-available {
+ color: #69C671;
+ padding-right: 4px;
+}
body.ttrss_main #header i {
margin: 0 4px;
}
@@ -984,6 +988,10 @@ body.ttrss_main .panel-scrollable {
overflow: auto;
height: 200px;
}
+body.ttrss_main .panel-scrollable-400px {
+ overflow: auto;
+ height: 400px;
+}
body.ttrss_main ul.list li {
padding: 2px;
}
@@ -1030,6 +1038,10 @@ body.ttrss_main .pull-left,
body.ttrss_utility .pull-left {
float: left;
}
+body.ttrss_main .pre-wrap,
+body.ttrss_utility .pre-wrap {
+ white-space: pre-wrap;
+}
body.ttrss_main .text-error,
body.ttrss_utility .text-error {
color: #b94a48;
@@ -1415,13 +1427,6 @@ body.ttrss_prefs {
background-color: #222;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 14px;
- /*.dijitContentPane {
- h1:first-of-type,
- h2:first-of-type,
- h3:first-of-type {
- margin-top: 0px;
- }
- }*/
}
body.ttrss_prefs h1,
body.ttrss_prefs h2,
@@ -1431,6 +1436,11 @@ body.ttrss_prefs h4 {
font-weight: 600;
color: #ccc;
}
+body.ttrss_prefs .dijitContentPane > h1:first-of-type,
+body.ttrss_prefs .dijitContentPane > h2:first-of-type,
+body.ttrss_prefs .dijitContentPane > h3:first-of-type {
+ margin-top: 0;
+}
body.ttrss_prefs #footer,
body.ttrss_prefs #header {
padding: 8px;
@@ -1494,23 +1504,95 @@ body.ttrss_prefs fieldset.prefs .help-text-bottom {
margin-top: 10px;
}
body.ttrss_prefs fieldset.plugin label.description {
- width: 600px;
+ width: 550px;
margin-right: 150px;
display: inline-block;
}
body.ttrss_prefs fieldset.plugin label.description .dijitCheckBox {
margin-right: 10px;
}
-body.ttrss_prefs .users-list td {
+body.ttrss_prefs table th {
+ text-align: left;
+}
+body.ttrss_prefs table td.checkbox {
+ text-align: center;
+ width: 32px;
+}
+body.ttrss_prefs ul.prefs-plugin-list {
+ margin: 0;
+ padding: 0;
+}
+body.ttrss_prefs ul.prefs-plugin-list li {
+ display: flex;
+ align-items: center;
+ border-bottom: #222 1px solid;
+ line-height: 30px;
+}
+body.ttrss_prefs ul.prefs-plugin-list li.text-center {
+ border: 0;
+ display: block;
+}
+body.ttrss_prefs ul.prefs-plugin-list li > * {
+ padding: 8px;
+}
+body.ttrss_prefs ul.prefs-plugin-list li label.checkbox {
+ display: flex;
+ align-items: center;
+ min-width: 300px;
cursor: pointer;
}
-body.ttrss_prefs .event-log tr td {
- font-size: 10px;
+body.ttrss_prefs ul.prefs-plugin-list li label.checkbox.system {
+ cursor: auto;
+}
+body.ttrss_prefs ul.prefs-plugin-list li label.checkbox .name {
+ flex-grow: 2;
+ display: inline-block;
+ text-align: right;
+ font-weight: bold;
+}
+body.ttrss_prefs ul.prefs-plugin-list li .actions {
+ flex-grow: 2;
+ text-align: right;
+}
+body.ttrss_prefs ul.prefs-plugin-list li .version {
+ min-width: 200px;
+ text-align: right;
+}
+body.ttrss_prefs .plugin-installer-list li,
+body.ttrss_prefs .plugin-updater-list li {
+ border-bottom: #222 1px solid;
+}
+body.ttrss_prefs .plugin-installer-list li > *,
+body.ttrss_prefs .plugin-updater-list li > * {
+ padding: 8px 4px;
+}
+body.ttrss_prefs .plugin-installer-list li > pre,
+body.ttrss_prefs .plugin-updater-list li > pre {
+ margin: 0;
+}
+body.ttrss_prefs .plugin-installer-list li h3,
+body.ttrss_prefs .plugin-updater-list li h3 {
+ margin: 0;
+}
+body.ttrss_prefs .plugin-installer-list li.text-center,
+body.ttrss_prefs .plugin-updater-list li.text-center {
+ border: 0;
+}
+body.ttrss_prefs .plugin-installer-list .plugin-installed > *,
+body.ttrss_prefs .plugin-updater-list .plugin-installed > * {
+ opacity: 0.5;
+}
+body.ttrss_prefs .users-list td,
+body.ttrss_prefs .event-log td,
+body.ttrss_prefs .users-list th,
+body.ttrss_prefs .event-log th {
+ cursor: pointer;
padding: 8px;
+ border-bottom: #222 1px solid;
+}
+body.ttrss_prefs .event-log tr td,
+body.ttrss_prefs .event-log tr th {
vertical-align: top;
- border-width: 0 0 1px 0;
- border-style: solid;
- border-color: #222;
}
body.ttrss_prefs .event-log tr .errno {
font-style: italic;
@@ -1609,9 +1691,13 @@ body.ttrss_utility fieldset > label.checkbox {
font-size: 13px;
padding: 0px;
}
-.flat .dijitToolbar .dijitTextBox .dijitInputInner {
+.flat .dijitToolbar .dijitTextBox .dijitInputContainer .dijitInputInner {
line-height: 10px;
}
+.flat .dijitToolbar .dijitTextBox .dijitInputContainer .dijitPlaceHolder {
+ line-height: 15px;
+ margin-left: 0;
+}
.flat .dijitToolbar label {
position: relative;
top: 2px;
@@ -1715,9 +1801,9 @@ body.ttrss_utility fieldset > label.checkbox {
font-family: 'Material Icons';
font-style: normal;
font-weight: 400;
- src: url(../lib/iconfont/MaterialIcons-Regular.eot);
+ src: url(../vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.eot);
/* For IE6-8 */
- src: local('Material Icons'), local('MaterialIcons-Regular'), url(../lib/iconfont/MaterialIcons-Regular.woff2) format('woff2'), url(../lib/iconfont/MaterialIcons-Regular.woff) format('woff'), url(../lib/iconfont/MaterialIcons-Regular.ttf) format('truetype');
+ src: local('Material Icons'), local('MaterialIcons-Regular'), url(../vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.woff2) format('woff2'), url(../vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.woff) format('woff'), url(../vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.ttf) format('truetype');
}
.material-icons {
font-family: 'Material Icons';
diff --git a/themes/light.css b/themes/light.css
index c014858ef..9a4ac98c0 100644
--- a/themes/light.css
+++ b/themes/light.css
@@ -763,6 +763,10 @@ body.ttrss_main #header i.log-alert {
color: #ddba1c;
cursor: pointer;
}
+body.ttrss_main #header #updates-available {
+ color: #69C671;
+ padding-right: 4px;
+}
body.ttrss_main #header i {
margin: 0 4px;
}
@@ -984,6 +988,10 @@ body.ttrss_main .panel-scrollable {
overflow: auto;
height: 200px;
}
+body.ttrss_main .panel-scrollable-400px {
+ overflow: auto;
+ height: 400px;
+}
body.ttrss_main ul.list li {
padding: 2px;
}
@@ -1030,6 +1038,10 @@ body.ttrss_main .pull-left,
body.ttrss_utility .pull-left {
float: left;
}
+body.ttrss_main .pre-wrap,
+body.ttrss_utility .pre-wrap {
+ white-space: pre-wrap;
+}
body.ttrss_main .text-error,
body.ttrss_utility .text-error {
color: #b94a48;
@@ -1415,13 +1427,6 @@ body.ttrss_prefs {
background-color: #f5f5f5;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 14px;
- /*.dijitContentPane {
- h1:first-of-type,
- h2:first-of-type,
- h3:first-of-type {
- margin-top: 0px;
- }
- }*/
}
body.ttrss_prefs h1,
body.ttrss_prefs h2,
@@ -1431,6 +1436,11 @@ body.ttrss_prefs h4 {
font-weight: 600;
color: #555;
}
+body.ttrss_prefs .dijitContentPane > h1:first-of-type,
+body.ttrss_prefs .dijitContentPane > h2:first-of-type,
+body.ttrss_prefs .dijitContentPane > h3:first-of-type {
+ margin-top: 0;
+}
body.ttrss_prefs #footer,
body.ttrss_prefs #header {
padding: 8px;
@@ -1494,23 +1504,95 @@ body.ttrss_prefs fieldset.prefs .help-text-bottom {
margin-top: 10px;
}
body.ttrss_prefs fieldset.plugin label.description {
- width: 600px;
+ width: 550px;
margin-right: 150px;
display: inline-block;
}
body.ttrss_prefs fieldset.plugin label.description .dijitCheckBox {
margin-right: 10px;
}
-body.ttrss_prefs .users-list td {
+body.ttrss_prefs table th {
+ text-align: left;
+}
+body.ttrss_prefs table td.checkbox {
+ text-align: center;
+ width: 32px;
+}
+body.ttrss_prefs ul.prefs-plugin-list {
+ margin: 0;
+ padding: 0;
+}
+body.ttrss_prefs ul.prefs-plugin-list li {
+ display: flex;
+ align-items: center;
+ border-bottom: #ddd 1px solid;
+ line-height: 30px;
+}
+body.ttrss_prefs ul.prefs-plugin-list li.text-center {
+ border: 0;
+ display: block;
+}
+body.ttrss_prefs ul.prefs-plugin-list li > * {
+ padding: 8px;
+}
+body.ttrss_prefs ul.prefs-plugin-list li label.checkbox {
+ display: flex;
+ align-items: center;
+ min-width: 300px;
cursor: pointer;
}
-body.ttrss_prefs .event-log tr td {
- font-size: 10px;
+body.ttrss_prefs ul.prefs-plugin-list li label.checkbox.system {
+ cursor: auto;
+}
+body.ttrss_prefs ul.prefs-plugin-list li label.checkbox .name {
+ flex-grow: 2;
+ display: inline-block;
+ text-align: right;
+ font-weight: bold;
+}
+body.ttrss_prefs ul.prefs-plugin-list li .actions {
+ flex-grow: 2;
+ text-align: right;
+}
+body.ttrss_prefs ul.prefs-plugin-list li .version {
+ min-width: 200px;
+ text-align: right;
+}
+body.ttrss_prefs .plugin-installer-list li,
+body.ttrss_prefs .plugin-updater-list li {
+ border-bottom: #ddd 1px solid;
+}
+body.ttrss_prefs .plugin-installer-list li > *,
+body.ttrss_prefs .plugin-updater-list li > * {
+ padding: 8px 4px;
+}
+body.ttrss_prefs .plugin-installer-list li > pre,
+body.ttrss_prefs .plugin-updater-list li > pre {
+ margin: 0;
+}
+body.ttrss_prefs .plugin-installer-list li h3,
+body.ttrss_prefs .plugin-updater-list li h3 {
+ margin: 0;
+}
+body.ttrss_prefs .plugin-installer-list li.text-center,
+body.ttrss_prefs .plugin-updater-list li.text-center {
+ border: 0;
+}
+body.ttrss_prefs .plugin-installer-list .plugin-installed > *,
+body.ttrss_prefs .plugin-updater-list .plugin-installed > * {
+ opacity: 0.5;
+}
+body.ttrss_prefs .users-list td,
+body.ttrss_prefs .event-log td,
+body.ttrss_prefs .users-list th,
+body.ttrss_prefs .event-log th {
+ cursor: pointer;
padding: 8px;
+ border-bottom: #ddd 1px solid;
+}
+body.ttrss_prefs .event-log tr td,
+body.ttrss_prefs .event-log tr th {
vertical-align: top;
- border-width: 0 0 1px 0;
- border-style: solid;
- border-color: #ddd;
}
body.ttrss_prefs .event-log tr .errno {
font-style: italic;
@@ -1707,9 +1789,13 @@ body.ttrss_utility.share_popup .content {
font-size: 13px;
padding: 0px;
}
-.flat .dijitToolbar .dijitTextBox .dijitInputInner {
+.flat .dijitToolbar .dijitTextBox .dijitInputContainer .dijitInputInner {
line-height: 10px;
}
+.flat .dijitToolbar .dijitTextBox .dijitInputContainer .dijitPlaceHolder {
+ line-height: 15px;
+ margin-left: 0;
+}
.flat .dijitToolbar label {
position: relative;
top: 2px;
@@ -1813,9 +1899,9 @@ body.ttrss_utility.share_popup .content {
font-family: 'Material Icons';
font-style: normal;
font-weight: 400;
- src: url(../lib/iconfont/MaterialIcons-Regular.eot);
+ src: url(../vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.eot);
/* For IE6-8 */
- src: local('Material Icons'), local('MaterialIcons-Regular'), url(../lib/iconfont/MaterialIcons-Regular.woff2) format('woff2'), url(../lib/iconfont/MaterialIcons-Regular.woff) format('woff'), url(../lib/iconfont/MaterialIcons-Regular.ttf) format('truetype');
+ src: local('Material Icons'), local('MaterialIcons-Regular'), url(../vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.woff2) format('woff2'), url(../vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.woff) format('woff'), url(../vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.ttf) format('truetype');
}
.material-icons {
font-family: 'Material Icons';
diff --git a/themes/light/defines.less b/themes/light/defines.less
index 7de7a7686..dd3f62251 100644
--- a/themes/light/defines.less
+++ b/themes/light/defines.less
@@ -40,12 +40,12 @@ body.ttrss_prefs,
font-family: 'Material Icons';
font-style: normal;
font-weight: 400;
- src: url(../lib/iconfont/MaterialIcons-Regular.eot); /* For IE6-8 */
+ src: url(../vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.eot); /* For IE6-8 */
src: local('Material Icons'),
local('MaterialIcons-Regular'),
- url(../lib/iconfont/MaterialIcons-Regular.woff2) format('woff2'),
- url(../lib/iconfont/MaterialIcons-Regular.woff) format('woff'),
- url(../lib/iconfont/MaterialIcons-Regular.ttf) format('truetype');
+ url(../vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.woff2) format('woff2'),
+ url(../vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.woff) format('woff'),
+ url(../vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.ttf) format('truetype');
}
.material-icons {
diff --git a/themes/light/dijit_basic.less b/themes/light/dijit_basic.less
index 0582ddc5c..da1138986 100644
--- a/themes/light/dijit_basic.less
+++ b/themes/light/dijit_basic.less
@@ -41,8 +41,15 @@
font-size: 13px;
padding: 0px;
- .dijitTextBox .dijitInputInner {
- line-height : 10px;
+ .dijitTextBox .dijitInputContainer {
+ .dijitInputInner {
+ line-height : 10px;
+ }
+
+ .dijitPlaceHolder {
+ line-height : 15px;
+ margin-left : 0;
+ }
}
label {
diff --git a/themes/light/prefs.less b/themes/light/prefs.less
index 510388391..15345bcb4 100644
--- a/themes/light/prefs.less
+++ b/themes/light/prefs.less
@@ -9,13 +9,13 @@ body.ttrss_prefs {
color : @default-text;
}
- /*.dijitContentPane {
- h1:first-of-type,
- h2:first-of-type,
- h3:first-of-type {
- margin-top: 0px;
+ .dijitContentPane {
+ > h1:first-of-type,
+ > h2:first-of-type,
+ > h3:first-of-type {
+ margin-top: 0;
}
- }*/
+ }
#footer, #header {
padding : 8px;
@@ -96,7 +96,7 @@ body.ttrss_prefs {
fieldset.plugin {
label.description {
- width : 600px;
+ width : 550px;
margin-right : 150px;
display : inline-block;
@@ -106,21 +106,106 @@ body.ttrss_prefs {
}
}
- .users-list {
- td {
+ table {
+ th {
+ text-align : left;
+ }
+
+ td.checkbox {
+ text-align : center;
+ width : 32px;
+ }
+
+ }
+
+ ul.prefs-plugin-list {
+ margin : 0;
+ padding : 0;
+
+ li {
+ display : flex;
+ align-items : center;
+ border-bottom: @border-default 1px solid;
+ line-height : 30px;
+
+ &.text-center {
+ border : 0;
+ display : block;
+ }
+
+ > * {
+ padding : 8px;
+ }
+
+ label.checkbox {
+ display : flex;
+ align-items : center;
+ min-width : 300px;
+ cursor : pointer;
+
+ &.system {
+ cursor : auto;
+ }
+
+ .name {
+ flex-grow: 2;
+ display: inline-block;
+ text-align: right;
+ font-weight : bold;
+ }
+ }
+
+ .actions {
+ flex-grow : 2;
+ text-align: right;
+ }
+
+ .version {
+ min-width: 200px;
+ text-align: right;
+ }
+ }
+ }
+
+ .plugin-installer-list, .plugin-updater-list {
+ li {
+ border-bottom: @border-default 1px solid;
+
+ > * {
+ padding : 8px 4px;
+ }
+
+ > pre {
+ margin : 0;
+ }
+
+ h3 {
+ margin : 0;
+ }
+
+ &.text-center {
+ border : 0;
+ }
+ }
+
+ .plugin-installed > * {
+ opacity : 0.5;
+ }
+ }
+
+ .users-list,
+ .event-log {
+ td, th {
cursor : pointer;
+ padding : 8px;
+ border-bottom: @border-default 1px solid;
}
}
.event-log {
tr {
- td {
- font-size: 10px;
- padding : 8px;
+ td, th {
vertical-align : top;
- border-width : 0 0 1px 0;
- border-style : solid;
- border-color : @border-default;
}
.errno {
diff --git a/themes/light/tt-rss.less b/themes/light/tt-rss.less
index 35eec3e48..36b73b4f4 100644
--- a/themes/light/tt-rss.less
+++ b/themes/light/tt-rss.less
@@ -888,6 +888,11 @@ body.ttrss_main {
cursor : pointer;
}
+ #updates-available {
+ color : @color-checked;
+ padding-right : 4px;
+ }
+
i {
margin : 0 4px;
}
@@ -1166,6 +1171,11 @@ body.ttrss_main {
height : 200px;
}
+ .panel-scrollable-400px {
+ overflow : auto;
+ height : 400px;
+ }
+
ul.list li {
padding : 2px;
}
@@ -1224,6 +1234,10 @@ body.ttrss_main, body.ttrss_utility {
float : left;
}
+ .pre-wrap {
+ white-space : pre-wrap;
+ }
+
.text-error {
color: #b94a48;
}
diff --git a/themes/night.css b/themes/night.css
index 1e397ee74..22eb17e9f 100644
--- a/themes/night.css
+++ b/themes/night.css
@@ -764,6 +764,10 @@ body.ttrss_main #header i.log-alert {
color: #ddba1c;
cursor: pointer;
}
+body.ttrss_main #header #updates-available {
+ color: #69C671;
+ padding-right: 4px;
+}
body.ttrss_main #header i {
margin: 0 4px;
}
@@ -985,6 +989,10 @@ body.ttrss_main .panel-scrollable {
overflow: auto;
height: 200px;
}
+body.ttrss_main .panel-scrollable-400px {
+ overflow: auto;
+ height: 400px;
+}
body.ttrss_main ul.list li {
padding: 2px;
}
@@ -1031,6 +1039,10 @@ body.ttrss_main .pull-left,
body.ttrss_utility .pull-left {
float: left;
}
+body.ttrss_main .pre-wrap,
+body.ttrss_utility .pre-wrap {
+ white-space: pre-wrap;
+}
body.ttrss_main .text-error,
body.ttrss_utility .text-error {
color: #b94a48;
@@ -1416,13 +1428,6 @@ body.ttrss_prefs {
background-color: #222;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 14px;
- /*.dijitContentPane {
- h1:first-of-type,
- h2:first-of-type,
- h3:first-of-type {
- margin-top: 0px;
- }
- }*/
}
body.ttrss_prefs h1,
body.ttrss_prefs h2,
@@ -1432,6 +1437,11 @@ body.ttrss_prefs h4 {
font-weight: 600;
color: #ccc;
}
+body.ttrss_prefs .dijitContentPane > h1:first-of-type,
+body.ttrss_prefs .dijitContentPane > h2:first-of-type,
+body.ttrss_prefs .dijitContentPane > h3:first-of-type {
+ margin-top: 0;
+}
body.ttrss_prefs #footer,
body.ttrss_prefs #header {
padding: 8px;
@@ -1495,23 +1505,95 @@ body.ttrss_prefs fieldset.prefs .help-text-bottom {
margin-top: 10px;
}
body.ttrss_prefs fieldset.plugin label.description {
- width: 600px;
+ width: 550px;
margin-right: 150px;
display: inline-block;
}
body.ttrss_prefs fieldset.plugin label.description .dijitCheckBox {
margin-right: 10px;
}
-body.ttrss_prefs .users-list td {
+body.ttrss_prefs table th {
+ text-align: left;
+}
+body.ttrss_prefs table td.checkbox {
+ text-align: center;
+ width: 32px;
+}
+body.ttrss_prefs ul.prefs-plugin-list {
+ margin: 0;
+ padding: 0;
+}
+body.ttrss_prefs ul.prefs-plugin-list li {
+ display: flex;
+ align-items: center;
+ border-bottom: #222 1px solid;
+ line-height: 30px;
+}
+body.ttrss_prefs ul.prefs-plugin-list li.text-center {
+ border: 0;
+ display: block;
+}
+body.ttrss_prefs ul.prefs-plugin-list li > * {
+ padding: 8px;
+}
+body.ttrss_prefs ul.prefs-plugin-list li label.checkbox {
+ display: flex;
+ align-items: center;
+ min-width: 300px;
cursor: pointer;
}
-body.ttrss_prefs .event-log tr td {
- font-size: 10px;
+body.ttrss_prefs ul.prefs-plugin-list li label.checkbox.system {
+ cursor: auto;
+}
+body.ttrss_prefs ul.prefs-plugin-list li label.checkbox .name {
+ flex-grow: 2;
+ display: inline-block;
+ text-align: right;
+ font-weight: bold;
+}
+body.ttrss_prefs ul.prefs-plugin-list li .actions {
+ flex-grow: 2;
+ text-align: right;
+}
+body.ttrss_prefs ul.prefs-plugin-list li .version {
+ min-width: 200px;
+ text-align: right;
+}
+body.ttrss_prefs .plugin-installer-list li,
+body.ttrss_prefs .plugin-updater-list li {
+ border-bottom: #222 1px solid;
+}
+body.ttrss_prefs .plugin-installer-list li > *,
+body.ttrss_prefs .plugin-updater-list li > * {
+ padding: 8px 4px;
+}
+body.ttrss_prefs .plugin-installer-list li > pre,
+body.ttrss_prefs .plugin-updater-list li > pre {
+ margin: 0;
+}
+body.ttrss_prefs .plugin-installer-list li h3,
+body.ttrss_prefs .plugin-updater-list li h3 {
+ margin: 0;
+}
+body.ttrss_prefs .plugin-installer-list li.text-center,
+body.ttrss_prefs .plugin-updater-list li.text-center {
+ border: 0;
+}
+body.ttrss_prefs .plugin-installer-list .plugin-installed > *,
+body.ttrss_prefs .plugin-updater-list .plugin-installed > * {
+ opacity: 0.5;
+}
+body.ttrss_prefs .users-list td,
+body.ttrss_prefs .event-log td,
+body.ttrss_prefs .users-list th,
+body.ttrss_prefs .event-log th {
+ cursor: pointer;
padding: 8px;
+ border-bottom: #222 1px solid;
+}
+body.ttrss_prefs .event-log tr td,
+body.ttrss_prefs .event-log tr th {
vertical-align: top;
- border-width: 0 0 1px 0;
- border-style: solid;
- border-color: #222;
}
body.ttrss_prefs .event-log tr .errno {
font-style: italic;
@@ -1610,9 +1692,13 @@ body.ttrss_utility fieldset > label.checkbox {
font-size: 13px;
padding: 0px;
}
-.flat .dijitToolbar .dijitTextBox .dijitInputInner {
+.flat .dijitToolbar .dijitTextBox .dijitInputContainer .dijitInputInner {
line-height: 10px;
}
+.flat .dijitToolbar .dijitTextBox .dijitInputContainer .dijitPlaceHolder {
+ line-height: 15px;
+ margin-left: 0;
+}
.flat .dijitToolbar label {
position: relative;
top: 2px;
@@ -1716,9 +1802,9 @@ body.ttrss_utility fieldset > label.checkbox {
font-family: 'Material Icons';
font-style: normal;
font-weight: 400;
- src: url(../lib/iconfont/MaterialIcons-Regular.eot);
+ src: url(../vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.eot);
/* For IE6-8 */
- src: local('Material Icons'), local('MaterialIcons-Regular'), url(../lib/iconfont/MaterialIcons-Regular.woff2) format('woff2'), url(../lib/iconfont/MaterialIcons-Regular.woff) format('woff'), url(../lib/iconfont/MaterialIcons-Regular.ttf) format('truetype');
+ src: local('Material Icons'), local('MaterialIcons-Regular'), url(../vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.woff2) format('woff2'), url(../vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.woff) format('woff'), url(../vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.ttf) format('truetype');
}
.material-icons {
font-family: 'Material Icons';
diff --git a/themes/night_blue.css b/themes/night_blue.css
index 361cd4fbf..8a3d7f8a5 100644
--- a/themes/night_blue.css
+++ b/themes/night_blue.css
@@ -764,6 +764,10 @@ body.ttrss_main #header i.log-alert {
color: #ddba1c;
cursor: pointer;
}
+body.ttrss_main #header #updates-available {
+ color: #69C671;
+ padding-right: 4px;
+}
body.ttrss_main #header i {
margin: 0 4px;
}
@@ -985,6 +989,10 @@ body.ttrss_main .panel-scrollable {
overflow: auto;
height: 200px;
}
+body.ttrss_main .panel-scrollable-400px {
+ overflow: auto;
+ height: 400px;
+}
body.ttrss_main ul.list li {
padding: 2px;
}
@@ -1031,6 +1039,10 @@ body.ttrss_main .pull-left,
body.ttrss_utility .pull-left {
float: left;
}
+body.ttrss_main .pre-wrap,
+body.ttrss_utility .pre-wrap {
+ white-space: pre-wrap;
+}
body.ttrss_main .text-error,
body.ttrss_utility .text-error {
color: #b94a48;
@@ -1416,13 +1428,6 @@ body.ttrss_prefs {
background-color: #222;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 14px;
- /*.dijitContentPane {
- h1:first-of-type,
- h2:first-of-type,
- h3:first-of-type {
- margin-top: 0px;
- }
- }*/
}
body.ttrss_prefs h1,
body.ttrss_prefs h2,
@@ -1432,6 +1437,11 @@ body.ttrss_prefs h4 {
font-weight: 600;
color: #ccc;
}
+body.ttrss_prefs .dijitContentPane > h1:first-of-type,
+body.ttrss_prefs .dijitContentPane > h2:first-of-type,
+body.ttrss_prefs .dijitContentPane > h3:first-of-type {
+ margin-top: 0;
+}
body.ttrss_prefs #footer,
body.ttrss_prefs #header {
padding: 8px;
@@ -1495,23 +1505,95 @@ body.ttrss_prefs fieldset.prefs .help-text-bottom {
margin-top: 10px;
}
body.ttrss_prefs fieldset.plugin label.description {
- width: 600px;
+ width: 550px;
margin-right: 150px;
display: inline-block;
}
body.ttrss_prefs fieldset.plugin label.description .dijitCheckBox {
margin-right: 10px;
}
-body.ttrss_prefs .users-list td {
+body.ttrss_prefs table th {
+ text-align: left;
+}
+body.ttrss_prefs table td.checkbox {
+ text-align: center;
+ width: 32px;
+}
+body.ttrss_prefs ul.prefs-plugin-list {
+ margin: 0;
+ padding: 0;
+}
+body.ttrss_prefs ul.prefs-plugin-list li {
+ display: flex;
+ align-items: center;
+ border-bottom: #222 1px solid;
+ line-height: 30px;
+}
+body.ttrss_prefs ul.prefs-plugin-list li.text-center {
+ border: 0;
+ display: block;
+}
+body.ttrss_prefs ul.prefs-plugin-list li > * {
+ padding: 8px;
+}
+body.ttrss_prefs ul.prefs-plugin-list li label.checkbox {
+ display: flex;
+ align-items: center;
+ min-width: 300px;
cursor: pointer;
}
-body.ttrss_prefs .event-log tr td {
- font-size: 10px;
+body.ttrss_prefs ul.prefs-plugin-list li label.checkbox.system {
+ cursor: auto;
+}
+body.ttrss_prefs ul.prefs-plugin-list li label.checkbox .name {
+ flex-grow: 2;
+ display: inline-block;
+ text-align: right;
+ font-weight: bold;
+}
+body.ttrss_prefs ul.prefs-plugin-list li .actions {
+ flex-grow: 2;
+ text-align: right;
+}
+body.ttrss_prefs ul.prefs-plugin-list li .version {
+ min-width: 200px;
+ text-align: right;
+}
+body.ttrss_prefs .plugin-installer-list li,
+body.ttrss_prefs .plugin-updater-list li {
+ border-bottom: #222 1px solid;
+}
+body.ttrss_prefs .plugin-installer-list li > *,
+body.ttrss_prefs .plugin-updater-list li > * {
+ padding: 8px 4px;
+}
+body.ttrss_prefs .plugin-installer-list li > pre,
+body.ttrss_prefs .plugin-updater-list li > pre {
+ margin: 0;
+}
+body.ttrss_prefs .plugin-installer-list li h3,
+body.ttrss_prefs .plugin-updater-list li h3 {
+ margin: 0;
+}
+body.ttrss_prefs .plugin-installer-list li.text-center,
+body.ttrss_prefs .plugin-updater-list li.text-center {
+ border: 0;
+}
+body.ttrss_prefs .plugin-installer-list .plugin-installed > *,
+body.ttrss_prefs .plugin-updater-list .plugin-installed > * {
+ opacity: 0.5;
+}
+body.ttrss_prefs .users-list td,
+body.ttrss_prefs .event-log td,
+body.ttrss_prefs .users-list th,
+body.ttrss_prefs .event-log th {
+ cursor: pointer;
padding: 8px;
+ border-bottom: #222 1px solid;
+}
+body.ttrss_prefs .event-log tr td,
+body.ttrss_prefs .event-log tr th {
vertical-align: top;
- border-width: 0 0 1px 0;
- border-style: solid;
- border-color: #222;
}
body.ttrss_prefs .event-log tr .errno {
font-style: italic;
@@ -1610,9 +1692,13 @@ body.ttrss_utility fieldset > label.checkbox {
font-size: 13px;
padding: 0px;
}
-.flat .dijitToolbar .dijitTextBox .dijitInputInner {
+.flat .dijitToolbar .dijitTextBox .dijitInputContainer .dijitInputInner {
line-height: 10px;
}
+.flat .dijitToolbar .dijitTextBox .dijitInputContainer .dijitPlaceHolder {
+ line-height: 15px;
+ margin-left: 0;
+}
.flat .dijitToolbar label {
position: relative;
top: 2px;
@@ -1716,9 +1802,9 @@ body.ttrss_utility fieldset > label.checkbox {
font-family: 'Material Icons';
font-style: normal;
font-weight: 400;
- src: url(../lib/iconfont/MaterialIcons-Regular.eot);
+ src: url(../vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.eot);
/* For IE6-8 */
- src: local('Material Icons'), local('MaterialIcons-Regular'), url(../lib/iconfont/MaterialIcons-Regular.woff2) format('woff2'), url(../lib/iconfont/MaterialIcons-Regular.woff) format('woff'), url(../lib/iconfont/MaterialIcons-Regular.ttf) format('truetype');
+ src: local('Material Icons'), local('MaterialIcons-Regular'), url(../vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.woff2) format('woff2'), url(../vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.woff) format('woff'), url(../vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.ttf) format('truetype');
}
.material-icons {
font-family: 'Material Icons';
diff --git a/update.php b/update.php
index aab84bfdb..956aa8548 100755
--- a/update.php
+++ b/update.php
@@ -9,7 +9,8 @@
require_once "autoload.php";
require_once "functions.php";
- require_once "sanity_check.php";
+
+ Config::sanity_check();
function make_stampfile($filename) {
$fp = fopen(Config::get(Config::LOCK_DIRECTORY) . "/$filename", "w");
@@ -144,10 +145,8 @@
require_once "errorhandler.php";
}
- if (!isset($options['update-schema'])) {
- if (get_schema_version() != SCHEMA_VERSION) {
- die("Schema version is wrong, please upgrade the database (--update-schema).\n");
- }
+ if (!isset($options['update-schema']) && Config::is_migration_needed()) {
+ die("Schema version is wrong, please upgrade the database (--update-schema).\n");
}
Debug::set_enabled(true);
@@ -233,7 +232,7 @@
if (isset($options["update-feed"])) {
try {
- if (!RSSUtils::update_rss_feed($options["update-feed"], true))
+ if (!RSSUtils::update_rss_feed((int)$options["update-feed"], true))
exit(100);
} catch (PDOException $e) {
@@ -253,7 +252,7 @@
RSSUtils::update_daemon_common(isset($options["pidlock"]) ? 50 : Config::get(Config::DAEMON_FEED_LIMIT), $options);
- if (!isset($options["pidlock"]) || $options["task"] == 0)
+ if (!isset($options["pidlock"]) || $options["task"] == "0")
RSSUtils::housekeeping_common();
PluginHost::getInstance()->run_hooks(PluginHost::HOOK_UPDATE_TASK, $options);
@@ -371,18 +370,7 @@
}
if (isset($options["update-schema"])) {
- Debug::log("Checking for updates (" . Config::get(Config::DB_TYPE) . ")...");
-
- $updater = new DbUpdater(Db::pdo(), Config::get(Config::DB_TYPE), SCHEMA_VERSION);
-
- if ($updater->is_update_required()) {
- Debug::log("Schema update required, version " . $updater->get_schema_version() . " to " . SCHEMA_VERSION);
-
- if (Config::get(Config::DB_TYPE) == "mysql")
- Debug::Log("READ THIS: Due to MySQL limitations, your database is not completely protected while updating.\n".
- "Errors may put it in an inconsistent state requiring manual rollback.\nBACKUP YOUR DATABASE BEFORE CONTINUING.");
- else
- Debug::log("WARNING: please backup your database before continuing.");
+ if (Config::is_migration_needed()) {
if ($options["update-schema"] != "force-yes") {
Debug::log("Type 'yes' to continue.");
@@ -390,29 +378,19 @@
if (read_stdin() != 'yes')
exit;
} else {
- Debug::log("Proceeding to update without confirmation...");
+ Debug::log("Proceeding to update without confirmation.");
}
- Debug::log("Performing updates to version " . SCHEMA_VERSION . "...");
-
- for ($i = $updater->get_schema_version() + 1; $i <= SCHEMA_VERSION; $i++) {
- Debug::log("* Updating to version $i...");
-
- $result = $updater->update_to($i, false);
-
- if ($result) {
- Debug::log("* Completed.");
- } else {
- Debug::log("One of the updates failed. Either retry the process or perform updates manually.");
- return;
- }
+ if (!isset($options["log-level"])) {
+ Debug::set_loglevel(Debug::$LOG_VERBOSE);
}
- Debug::log("All done.");
+ $migrations = Config::get_migrations();
+ $migrations->migrate();
+
} else {
Debug::log("Database schema is already at latest version.");
}
-
}
if (isset($options["gen-search-idx"])) {
@@ -476,7 +454,7 @@
}
if (isset($options["debug-feed"])) {
- $feed = $options["debug-feed"];
+ $feed = (int) $options["debug-feed"];
if (isset($options["force-refetch"])) $_REQUEST["force_refetch"] = true;
if (isset($options["force-rehash"])) $_REQUEST["force_rehash"] = true;
diff --git a/update_daemon2.php b/update_daemon2.php
index 1e8b1d072..8931813ff 100755
--- a/update_daemon2.php
+++ b/update_daemon2.php
@@ -10,7 +10,8 @@
require_once "autoload.php";
require_once "functions.php";
- require_once "sanity_check.php";
+
+ Config::sanity_check();
if (!function_exists('pcntl_fork')) {
die("error: This script requires PHP compiled with PCNTL module.\n");
@@ -188,7 +189,7 @@
"Maybe another daemon is already running.\n");
}
- if (get_schema_version() != SCHEMA_VERSION) {
+ if (Config::is_migration_needed()) {
die("Schema version is wrong, please upgrade the database.\n");
}
diff --git a/utils/rebase-translations.sh b/utils/rebase-translations.sh
index 564267ab8..2bc42c7eb 100755
--- a/utils/rebase-translations.sh
+++ b/utils/rebase-translations.sh
@@ -10,7 +10,8 @@ xgettext --from-code utf-8 -k__ -kNotify.info -kNotify.error -kNotify.progress \
xgettext --from-code utf-8 -k__ -kNotify.info -kNotify.error -kNotify.progress \
-kngettext:1,2 -L JavaScript -j -o $TEMPLATE `find js plugins -iname '*.js'`
-exit
+# leave weblate to deal with .po/.mo files
+exit 0
update_lang() {
if [ -f $1.po ]; then
@@ -21,10 +22,14 @@ update_lang() {
fi
}
+compile_po() {
+ msgfmt --statistics $1.po -o $1.mo
+}
+
LANGS=`find locale -name 'messages.po'`
for lang in $LANGS; do
echo Updating $lang...
PO_BASENAME=`echo $lang | sed s/.po//`
- update_lang $PO_BASENAME
+ compile_po $PO_BASENAME
done
diff --git a/vendor/OTPHP/Base32.php b/vendor/OTPHP/Base32.php
deleted file mode 100644
index f0dc2f16b..000000000
--- a/vendor/OTPHP/Base32.php
+++ /dev/null
@@ -1,85 +0,0 @@
-<?php
-
-namespace OTPHP;
-
-/**
- * Encode in Base32 based on RFC 4648.
- * Requires 20% more space than base64
- * Great for case-insensitive filesystems like Windows and URL's (except for = char which can be excluded using the pad option for urls)
- *
- * @package default
- * @author Bryan Ruiz
- **/
-class Base32 {
-
- private static $map = array(
- 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', // 7
- 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', // 15
- 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', // 23
- 'Y', 'Z', '2', '3', '4', '5', '6', '7', // 31
- '=' // padding char
- );
-
- private static $flippedMap = array(
- 'A'=>'0', 'B'=>'1', 'C'=>'2', 'D'=>'3', 'E'=>'4', 'F'=>'5', 'G'=>'6', 'H'=>'7',
- 'I'=>'8', 'J'=>'9', 'K'=>'10', 'L'=>'11', 'M'=>'12', 'N'=>'13', 'O'=>'14', 'P'=>'15',
- 'Q'=>'16', 'R'=>'17', 'S'=>'18', 'T'=>'19', 'U'=>'20', 'V'=>'21', 'W'=>'22', 'X'=>'23',
- 'Y'=>'24', 'Z'=>'25', '2'=>'26', '3'=>'27', '4'=>'28', '5'=>'29', '6'=>'30', '7'=>'31'
- );
-
- /**
- * Use padding false when encoding for urls
- *
- * @return base32 encoded string
- * @author Bryan Ruiz
- **/
- public static function encode($input, $padding = true) {
- if(empty($input)) return "";
- $input = str_split($input);
- $binaryString = "";
- for($i = 0; $i < count($input); $i++) {
- $binaryString .= str_pad(base_convert(ord($input[$i]), 10, 2), 8, '0', STR_PAD_LEFT);
- }
- $fiveBitBinaryArray = str_split($binaryString, 5);
- $base32 = "";
- $i=0;
- while($i < count($fiveBitBinaryArray)) {
- $base32 .= self::$map[base_convert(str_pad($fiveBitBinaryArray[$i], 5,'0'), 2, 10)];
- $i++;
- }
- if($padding && ($x = strlen($binaryString) % 40) != 0) {
- if($x == 8) $base32 .= str_repeat(self::$map[32], 6);
- else if($x == 16) $base32 .= str_repeat(self::$map[32], 4);
- else if($x == 24) $base32 .= str_repeat(self::$map[32], 3);
- else if($x == 32) $base32 .= self::$map[32];
- }
- return $base32;
- }
-
- public static function decode($input) {
- if(empty($input)) return;
- $paddingCharCount = substr_count($input, self::$map[32]);
- $allowedValues = array(6,4,3,1,0);
- if(!in_array($paddingCharCount, $allowedValues)) return false;
- for($i=0; $i<4; $i++){
- if($paddingCharCount == $allowedValues[$i] &&
- substr($input, -($allowedValues[$i])) != str_repeat(self::$map[32], $allowedValues[$i])) return false;
- }
- $input = str_replace('=','', $input);
- $input = str_split($input);
- $binaryString = "";
- for($i=0; $i < count($input); $i = $i+8) {
- $x = "";
- if(!in_array($input[$i], self::$map)) return false;
- for($j=0; $j < 8; $j++) {
- $x .= str_pad(base_convert(@self::$flippedMap[@$input[$i + $j]], 10, 2), 5, '0', STR_PAD_LEFT);
- }
- $eightBits = str_split($x, 8);
- for($z = 0; $z < count($eightBits); $z++) {
- $binaryString .= ( ($y = chr(base_convert($eightBits[$z], 2, 10))) || ord($y) == 48 ) ? $y:"";
- }
- }
- return $binaryString;
- }
-}
-
diff --git a/vendor/OTPHP/HOTP.php b/vendor/OTPHP/HOTP.php
deleted file mode 100644
index 7092fd9ff..000000000
--- a/vendor/OTPHP/HOTP.php
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-/*
- * Copyright (c) 2011 Le Lag
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
-
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-namespace OTPHP {
- /**
- * HOTP - One time password generator
- *
- * The HOTP class allow for the generation
- * and verification of one-time password using
- * the HOTP specified algorithm.
- *
- * This class is meant to be compatible with
- * Google Authenticator
- *
- * This class was originally ported from the rotp
- * ruby library available at https://github.com/mdp/rotp
- */
- class HOTP extends OTP {
- /**
- * Get the password for a specific counter value
- * @param integer $count the counter which is used to
- * seed the hmac hash function.
- * @return integer the One Time Password
- */
- public function at($count) {
- return $this->generateOTP($count);
- }
-
-
- /**
- * Verify if a password is valid for a specific counter value
- *
- * @param integer $otp the one-time password
- * @param integer $counter the counter value
- * @return bool true if the counter is valid, false otherwise
- */
- public function verify($otp, $counter) {
- return ($otp == $this->at($counter));
- }
-
- /**
- * Returns the uri for a specific secret for hotp method.
- * Can be encoded as a image for simple configuration in
- * Google Authenticator.
- *
- * @param string $name the name of the account / profile
- * @param integer $initial_count the initial counter
- * @return string the uri for the hmac secret
- */
- public function provisioning_uri($name, $initial_count) {
- return "otpauth://hotp/".urlencode($name)."?secret={$this->secret}&counter=$initial_count";
- }
- }
-
-}
diff --git a/vendor/OTPHP/LICENCE b/vendor/OTPHP/LICENCE
deleted file mode 100644
index d14cbc23c..000000000
--- a/vendor/OTPHP/LICENCE
+++ /dev/null
@@ -1,20 +0,0 @@
-Copyright (c) 2011 Le Lag
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
diff --git a/vendor/OTPHP/OTP.php b/vendor/OTPHP/OTP.php
deleted file mode 100644
index d1995ef99..000000000
--- a/vendor/OTPHP/OTP.php
+++ /dev/null
@@ -1,120 +0,0 @@
-<?php
-/*
- * Copyright (c) 2011 Le Lag
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
-
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-namespace OTPHP {
-/**
- * One Time Password Generator
- *
- * The OTP class allow the generation of one-time
- * password that is described in rfc 4xxx.
- *
- * This is class is meant to be compatible with
- * Google Authenticator.
- *
- * This class was originally ported from the rotp
- * ruby library available at https://github.com/mdp/rotp
- */
-class OTP {
- /**
- * The base32 encoded secret key
- * @var string
- */
- public $secret;
-
- /**
- * The algorithm used for the hmac hash function
- * @var string
- */
- public $digest;
-
- /**
- * The number of digits in the one-time password
- * @var integer
- */
- public $digits;
-
- /**
- * Constructor for the OTP class
- * @param string $secret the secret key
- * @param array $opt options array can contain the
- * following keys :
- * @param integer digits : the number of digits in the one time password
- * Currently Google Authenticator only support 6. Defaults to 6.
- * @param string digest : the algorithm used for the hmac hash function
- * Google Authenticator only support sha1. Defaults to sha1
- *
- * @return new OTP class.
- */
- public function __construct($secret, $opt = Array()) {
- $this->digits = isset($opt['digits']) ? $opt['digits'] : 6;
- $this->digest = isset($opt['digest']) ? $opt['digest'] : 'sha1';
- $this->secret = $secret;
- }
-
- /**
- * Generate a one-time password
- *
- * @param integer $input : number used to seed the hmac hash function.
- * This number is usually a counter (HOTP) or calculated based on the current
- * timestamp (see TOTP class).
- * @return integer the one-time password
- */
- public function generateOTP($input) {
- $hash = hash_hmac($this->digest, $this->intToBytestring($input), $this->byteSecret());
- foreach(str_split($hash, 2) as $hex) { // stupid PHP has bin2hex but no hex2bin WTF
- $hmac[] = hexdec($hex);
- }
- $offset = $hmac[19] & 0xf;
- $code = ($hmac[$offset+0] & 0x7F) << 24 |
- ($hmac[$offset + 1] & 0xFF) << 16 |
- ($hmac[$offset + 2] & 0xFF) << 8 |
- ($hmac[$offset + 3] & 0xFF);
- return $code % pow(10, $this->digits);
- }
-
- /**
- * Returns the binary value of the base32 encoded secret
- * @access private
- * This method should be private but was left public for
- * phpunit tests to work.
- * @return binary secret key
- */
- public function byteSecret() {
- return Base32::decode($this->secret);
- }
-
- /**
- * Turns an integer in a OATH bytestring
- * @param integer $int
- * @access private
- * @return string bytestring
- */
- public function intToBytestring($int) {
- $result = Array();
- while($int != 0) {
- $result[] = chr($int & 0xFF);
- $int >>= 8;
- }
- return str_pad(join(array_reverse($result)), 8, "\000", STR_PAD_LEFT);
- }
- }
-}
diff --git a/vendor/OTPHP/OTPHP.php b/vendor/OTPHP/OTPHP.php
deleted file mode 100644
index a6c6f8d66..000000000
--- a/vendor/OTPHP/OTPHP.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/*
- * Copyright (c) 2011 Le Lag
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
-
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-require_once dirname(__FILE__).'/../vendor/libs.php';
-require_once dirname(__FILE__).'/otp.php';
-require_once dirname(__FILE__).'/hotp.php';
-require_once dirname(__FILE__).'/totp.php';
-
diff --git a/vendor/OTPHP/TOTP.php b/vendor/OTPHP/TOTP.php
deleted file mode 100644
index 10a1f42f3..000000000
--- a/vendor/OTPHP/TOTP.php
+++ /dev/null
@@ -1,106 +0,0 @@
-<?php
-/*
- * Copyright (c) 2011 Le Lag
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
-
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-namespace OTPHP {
- /**
- * TOTP - One time password generator
- *
- * The TOTP class allow for the generation
- * and verification of one-time password using
- * the TOTP specified algorithm.
- *
- * This class is meant to be compatible with
- * Google Authenticator
- *
- * This class was originally ported from the rotp
- * ruby library available at https://github.com/mdp/rotp
- */
- class TOTP extends OTP {
- /**
- * The interval in seconds for a one-time password timeframe
- * Defaults to 30
- * @var integer
- */
- public $interval;
-
- public function __construct($s, $opt = Array()) {
- $this->interval = isset($opt['interval']) ? $opt['interval'] : 30;
- parent::__construct($s, $opt);
- }
-
- /**
- * Get the password for a specific timestamp value
- *
- * @param integer $timestamp the timestamp which is timecoded and
- * used to seed the hmac hash function.
- * @return integer the One Time Password
- */
- public function at($timestamp) {
- return $this->generateOTP($this->timecode($timestamp));
- }
-
- /**
- * Get the password for the current timestamp value
- *
- * @return integer the current One Time Password
- */
- public function now() {
- return $this->generateOTP($this->timecode(time()));
- }
-
- /**
- * Verify if a password is valid for a specific counter value
- *
- * @param integer $otp the one-time password
- * @param integer $timestamp the timestamp for the a given time, defaults to current time.
- * @return bool true if the counter is valid, false otherwise
- */
- public function verify($otp, $timestamp = null) {
- if($timestamp === null)
- $timestamp = time();
- return ($otp == $this->at($timestamp));
- }
-
- /**
- * Returns the uri for a specific secret for totp method.
- * Can be encoded as a image for simple configuration in
- * Google Authenticator.
- *
- * @param string $name the name of the account / profile
- * @return string the uri for the hmac secret
- */
- public function provisioning_uri($name) {
- return "otpauth://totp/".urlencode($name)."?secret={$this->secret}";
- }
-
- /**
- * Transform a timestamp in a counter based on specified internal
- *
- * @param integer $timestamp
- * @return integer the timecode
- */
- protected function timecode($timestamp) {
- return (int)( (((int)$timestamp * 1000) / ($this->interval * 1000)));
- }
- }
-
-}
diff --git a/vendor/Psr/Log/LoggerInterface.php b/vendor/Psr/Log/LoggerInterface.php
deleted file mode 100644
index 5ea72438b..000000000
--- a/vendor/Psr/Log/LoggerInterface.php
+++ /dev/null
@@ -1,123 +0,0 @@
-<?php
-
-namespace Psr\Log;
-
-/**
- * Describes a logger instance.
- *
- * The message MUST be a string or object implementing __toString().
- *
- * The message MAY contain placeholders in the form: {foo} where foo
- * will be replaced by the context data in key "foo".
- *
- * The context array can contain arbitrary data. The only assumption that
- * can be made by implementors is that if an Exception instance is given
- * to produce a stack trace, it MUST be in a key named "exception".
- *
- * See https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md
- * for the full interface specification.
- */
-interface LoggerInterface
-{
- /**
- * System is unusable.
- *
- * @param string $message
- * @param array $context
- *
- * @return void
- */
- public function emergency($message, array $context = array());
-
- /**
- * Action must be taken immediately.
- *
- * Example: Entire website down, database unavailable, etc. This should
- * trigger the SMS alerts and wake you up.
- *
- * @param string $message
- * @param array $context
- *
- * @return void
- */
- public function alert($message, array $context = array());
-
- /**
- * Critical conditions.
- *
- * Example: Application component unavailable, unexpected exception.
- *
- * @param string $message
- * @param array $context
- *
- * @return void
- */
- public function critical($message, array $context = array());
-
- /**
- * Runtime errors that do not require immediate action but should typically
- * be logged and monitored.
- *
- * @param string $message
- * @param array $context
- *
- * @return void
- */
- public function error($message, array $context = array());
-
- /**
- * Exceptional occurrences that are not errors.
- *
- * Example: Use of deprecated APIs, poor use of an API, undesirable things
- * that are not necessarily wrong.
- *
- * @param string $message
- * @param array $context
- *
- * @return void
- */
- public function warning($message, array $context = array());
-
- /**
- * Normal but significant events.
- *
- * @param string $message
- * @param array $context
- *
- * @return void
- */
- public function notice($message, array $context = array());
-
- /**
- * Interesting events.
- *
- * Example: User logs in, SQL logs.
- *
- * @param string $message
- * @param array $context
- *
- * @return void
- */
- public function info($message, array $context = array());
-
- /**
- * Detailed debug information.
- *
- * @param string $message
- * @param array $context
- *
- * @return void
- */
- public function debug($message, array $context = array());
-
- /**
- * Logs with an arbitrary level.
- *
- * @param mixed $level
- * @param string $message
- * @param array $context
- *
- * @return void
- */
- public function log($level, $message, array $context = array());
-}
diff --git a/vendor/Psr/Log/LoggerTrait.php b/vendor/Psr/Log/LoggerTrait.php
deleted file mode 100644
index 867225df1..000000000
--- a/vendor/Psr/Log/LoggerTrait.php
+++ /dev/null
@@ -1,140 +0,0 @@
-<?php
-
-namespace Psr\Log;
-
-/**
- * This is a simple Logger trait that classes unable to extend AbstractLogger
- * (because they extend another class, etc) can include.
- *
- * It simply delegates all log-level-specific methods to the `log` method to
- * reduce boilerplate code that a simple Logger that does the same thing with
- * messages regardless of the error level has to implement.
- */
-trait LoggerTrait
-{
- /**
- * System is unusable.
- *
- * @param string $message
- * @param array $context
- *
- * @return void
- */
- public function emergency($message, array $context = array())
- {
- $this->log(LogLevel::EMERGENCY, $message, $context);
- }
-
- /**
- * Action must be taken immediately.
- *
- * Example: Entire website down, database unavailable, etc. This should
- * trigger the SMS alerts and wake you up.
- *
- * @param string $message
- * @param array $context
- *
- * @return void
- */
- public function alert($message, array $context = array())
- {
- $this->log(LogLevel::ALERT, $message, $context);
- }
-
- /**
- * Critical conditions.
- *
- * Example: Application component unavailable, unexpected exception.
- *
- * @param string $message
- * @param array $context
- *
- * @return void
- */
- public function critical($message, array $context = array())
- {
- $this->log(LogLevel::CRITICAL, $message, $context);
- }
-
- /**
- * Runtime errors that do not require immediate action but should typically
- * be logged and monitored.
- *
- * @param string $message
- * @param array $context
- *
- * @return void
- */
- public function error($message, array $context = array())
- {
- $this->log(LogLevel::ERROR, $message, $context);
- }
-
- /**
- * Exceptional occurrences that are not errors.
- *
- * Example: Use of deprecated APIs, poor use of an API, undesirable things
- * that are not necessarily wrong.
- *
- * @param string $message
- * @param array $context
- *
- * @return void
- */
- public function warning($message, array $context = array())
- {
- $this->log(LogLevel::WARNING, $message, $context);
- }
-
- /**
- * Normal but significant events.
- *
- * @param string $message
- * @param array $context
- *
- * @return void
- */
- public function notice($message, array $context = array())
- {
- $this->log(LogLevel::NOTICE, $message, $context);
- }
-
- /**
- * Interesting events.
- *
- * Example: User logs in, SQL logs.
- *
- * @param string $message
- * @param array $context
- *
- * @return void
- */
- public function info($message, array $context = array())
- {
- $this->log(LogLevel::INFO, $message, $context);
- }
-
- /**
- * Detailed debug information.
- *
- * @param string $message
- * @param array $context
- *
- * @return void
- */
- public function debug($message, array $context = array())
- {
- $this->log(LogLevel::DEBUG, $message, $context);
- }
-
- /**
- * Logs with an arbitrary level.
- *
- * @param mixed $level
- * @param string $message
- * @param array $context
- *
- * @return void
- */
- abstract public function log($level, $message, array $context = array());
-}
diff --git a/vendor/Psr/Log/NullLogger.php b/vendor/Psr/Log/NullLogger.php
deleted file mode 100644
index d8cd682c8..000000000
--- a/vendor/Psr/Log/NullLogger.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-namespace Psr\Log;
-
-/**
- * This Logger can be used to avoid conditional log calls.
- *
- * Logging should always be optional, and if no logger is provided to your
- * library creating a NullLogger instance to have something to throw logs at
- * is a good way to avoid littering your code with `if ($this->logger) { }`
- * blocks.
- */
-class NullLogger extends AbstractLogger
-{
- /**
- * Logs with an arbitrary level.
- *
- * @param mixed $level
- * @param string $message
- * @param array $context
- *
- * @return void
- */
- public function log($level, $message, array $context = array())
- {
- // noop
- }
-}
diff --git a/vendor/Psr/Log/Test/LoggerInterfaceTest.php b/vendor/Psr/Log/Test/LoggerInterfaceTest.php
deleted file mode 100644
index a0391a52b..000000000
--- a/vendor/Psr/Log/Test/LoggerInterfaceTest.php
+++ /dev/null
@@ -1,140 +0,0 @@
-<?php
-
-namespace Psr\Log\Test;
-
-use Psr\Log\LoggerInterface;
-use Psr\Log\LogLevel;
-
-/**
- * Provides a base test class for ensuring compliance with the LoggerInterface.
- *
- * Implementors can extend the class and implement abstract methods to run this
- * as part of their test suite.
- */
-abstract class LoggerInterfaceTest extends \PHPUnit_Framework_TestCase
-{
- /**
- * @return LoggerInterface
- */
- abstract public function getLogger();
-
- /**
- * This must return the log messages in order.
- *
- * The simple formatting of the messages is: "<LOG LEVEL> <MESSAGE>".
- *
- * Example ->error('Foo') would yield "error Foo".
- *
- * @return string[]
- */
- abstract public function getLogs();
-
- public function testImplements()
- {
- $this->assertInstanceOf('Psr\Log\LoggerInterface', $this->getLogger());
- }
-
- /**
- * @dataProvider provideLevelsAndMessages
- */
- public function testLogsAtAllLevels($level, $message)
- {
- $logger = $this->getLogger();
- $logger->{$level}($message, array('user' => 'Bob'));
- $logger->log($level, $message, array('user' => 'Bob'));
-
- $expected = array(
- $level.' message of level '.$level.' with context: Bob',
- $level.' message of level '.$level.' with context: Bob',
- );
- $this->assertEquals($expected, $this->getLogs());
- }
-
- public function provideLevelsAndMessages()
- {
- return array(
- LogLevel::EMERGENCY => array(LogLevel::EMERGENCY, 'message of level emergency with context: {user}'),
- LogLevel::ALERT => array(LogLevel::ALERT, 'message of level alert with context: {user}'),
- LogLevel::CRITICAL => array(LogLevel::CRITICAL, 'message of level critical with context: {user}'),
- LogLevel::ERROR => array(LogLevel::ERROR, 'message of level error with context: {user}'),
- LogLevel::WARNING => array(LogLevel::WARNING, 'message of level warning with context: {user}'),
- LogLevel::NOTICE => array(LogLevel::NOTICE, 'message of level notice with context: {user}'),
- LogLevel::INFO => array(LogLevel::INFO, 'message of level info with context: {user}'),
- LogLevel::DEBUG => array(LogLevel::DEBUG, 'message of level debug with context: {user}'),
- );
- }
-
- /**
- * @expectedException \Psr\Log\InvalidArgumentException
- */
- public function testThrowsOnInvalidLevel()
- {
- $logger = $this->getLogger();
- $logger->log('invalid level', 'Foo');
- }
-
- public function testContextReplacement()
- {
- $logger = $this->getLogger();
- $logger->info('{Message {nothing} {user} {foo.bar} a}', array('user' => 'Bob', 'foo.bar' => 'Bar'));
-
- $expected = array('info {Message {nothing} Bob Bar a}');
- $this->assertEquals($expected, $this->getLogs());
- }
-
- public function testObjectCastToString()
- {
- if (method_exists($this, 'createPartialMock')) {
- $dummy = $this->createPartialMock('Psr\Log\Test\DummyTest', array('__toString'));
- } else {
- $dummy = $this->getMock('Psr\Log\Test\DummyTest', array('__toString'));
- }
- $dummy->expects($this->once())
- ->method('__toString')
- ->will($this->returnValue('DUMMY'));
-
- $this->getLogger()->warning($dummy);
-
- $expected = array('warning DUMMY');
- $this->assertEquals($expected, $this->getLogs());
- }
-
- public function testContextCanContainAnything()
- {
- $context = array(
- 'bool' => true,
- 'null' => null,
- 'string' => 'Foo',
- 'int' => 0,
- 'float' => 0.5,
- 'nested' => array('with object' => new DummyTest),
- 'object' => new \DateTime,
- 'resource' => fopen('php://memory', 'r'),
- );
-
- $this->getLogger()->warning('Crazy context data', $context);
-
- $expected = array('warning Crazy context data');
- $this->assertEquals($expected, $this->getLogs());
- }
-
- public function testContextExceptionKeyCanBeExceptionOrOtherValues()
- {
- $logger = $this->getLogger();
- $logger->warning('Random message', array('exception' => 'oops'));
- $logger->critical('Uncaught Exception!', array('exception' => new \LogicException('Fail')));
-
- $expected = array(
- 'warning Random message',
- 'critical Uncaught Exception!'
- );
- $this->assertEquals($expected, $this->getLogs());
- }
-}
-
-class DummyTest
-{
- public function __toString()
- {
- }
-}
diff --git a/vendor/autoload.php b/vendor/autoload.php
new file mode 100644
index 000000000..e6e3ad736
--- /dev/null
+++ b/vendor/autoload.php
@@ -0,0 +1,7 @@
+<?php
+
+// autoload.php @generated by Composer
+
+require_once __DIR__ . '/composer/autoload_real.php';
+
+return ComposerAutoloaderInit19fc2ff1c0f9a92279c7979386bb2056::getLoader();
diff --git a/vendor/beberlei/assert/LICENSE b/vendor/beberlei/assert/LICENSE
new file mode 100644
index 000000000..43672e7e6
--- /dev/null
+++ b/vendor/beberlei/assert/LICENSE
@@ -0,0 +1,11 @@
+Copyright (c) 2011-2013, Benjamin Eberlei
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+- Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
diff --git a/vendor/beberlei/assert/composer.json b/vendor/beberlei/assert/composer.json
new file mode 100644
index 000000000..e11870470
--- /dev/null
+++ b/vendor/beberlei/assert/composer.json
@@ -0,0 +1,63 @@
+{
+ "name": "beberlei/assert",
+ "description": "Thin assertion library for input validation in business models.",
+ "authors": [
+ {
+ "name": "Benjamin Eberlei",
+ "email": "[email protected]",
+ "role": "Lead Developer"
+ },
+ {
+ "name": "Richard Quadling",
+ "email": "[email protected]",
+ "role": "Collaborator"
+ }
+ ],
+ "license": "BSD-2-Clause",
+ "keywords": [
+ "assert",
+ "assertion",
+ "validation"
+ ],
+ "autoload": {
+ "psr-4": {
+ "Assert\\": "lib/Assert"
+ },
+ "files": [
+ "lib/Assert/functions.php"
+ ]
+ },
+ "autoload-dev": {
+ "psr-4": {
+ "Assert\\Tests\\": "tests/Assert/Tests"
+ },
+ "files": [
+ "tests/Assert/Tests/Fixtures/functions.php"
+ ]
+ },
+ "config": {
+ "sort-packages": true
+ },
+ "require": {
+ "php": "^7",
+ "ext-simplexml": "*",
+ "ext-mbstring": "*",
+ "ext-ctype": "*",
+ "ext-json": "*"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "*",
+ "phpstan/phpstan-shim": "*",
+ "phpunit/phpunit": ">=6.0.0 <8"
+ },
+ "scripts": {
+ "assert:generate-docs": "php bin/generate_method_docs.php",
+ "assert:cs-lint": "php-cs-fixer fix --diff -vvv --dry-run",
+ "assert:cs-fix": "php-cs-fixer fix . -vvv || true",
+ "assert:sa-code": "vendor/bin/phpstan analyse --configuration=phpstan-code.neon --no-progress --ansi -l 7 bin lib",
+ "assert:sa-tests": "vendor/bin/phpstan analyse --configuration=phpstan-tests.neon --no-progress --ansi -l 7 tests"
+ },
+ "suggest": {
+ "ext-intl": "Needed to allow Assertion::count(), Assertion::isCountable(), Assertion::minCount(), and Assertion::maxCount() to operate on ResourceBundles"
+ }
+}
diff --git a/vendor/beberlei/assert/lib/Assert/Assert.php b/vendor/beberlei/assert/lib/Assert/Assert.php
new file mode 100644
index 000000000..6910258d6
--- /dev/null
+++ b/vendor/beberlei/assert/lib/Assert/Assert.php
@@ -0,0 +1,96 @@
+<?php
+
+/**
+ * Assert
+ *
+ * LICENSE
+ *
+ * This source file is subject to the MIT license that is bundled
+ * with this package in the file LICENSE.txt.
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to [email protected] so I can send you a copy immediately.
+ */
+
+namespace Assert;
+
+/**
+ * AssertionChain factory.
+ */
+abstract class Assert
+{
+ /** @var string */
+ protected static $lazyAssertionExceptionClass = LazyAssertionException::class;
+
+ /** @var string */
+ protected static $assertionClass = Assertion::class;
+
+ /**
+ * Start validation on a value, returns {@link AssertionChain}.
+ *
+ * The invocation of this method starts an assertion chain
+ * that is happening on the passed value.
+ *
+ * @param mixed $value
+ * @param string|callable|null $defaultMessage
+ * @param string|null $defaultPropertyPath
+ *
+ * @return AssertionChain
+ *
+ * @example
+ *
+ * Assert::that($value)->notEmpty()->integer();
+ * Assert::that($value)->nullOr()->string()->startsWith("Foo");
+ *
+ * The assertion chain can be stateful, that means be careful when you reuse
+ * it. You should never pass around the chain.
+ */
+ public static function that($value, $defaultMessage = null, string $defaultPropertyPath = null): AssertionChain
+ {
+ $assertionChain = new AssertionChain($value, $defaultMessage, $defaultPropertyPath);
+
+ return $assertionChain->setAssertionClassName(static::$assertionClass);
+ }
+
+ /**
+ * Start validation on a set of values, returns {@link AssertionChain}.
+ *
+ * @param mixed $values
+ * @param string|callable|null $defaultMessage
+ * @param string|null $defaultPropertyPath
+ *
+ * @return AssertionChain
+ */
+ public static function thatAll($values, $defaultMessage = null, string $defaultPropertyPath = null): AssertionChain
+ {
+ return static::that($values, $defaultMessage, $defaultPropertyPath)->all();
+ }
+
+ /**
+ * Start validation and allow NULL, returns {@link AssertionChain}.
+ *
+ * @param mixed $value
+ * @param string|callable|null $defaultMessage
+ * @param string|null $defaultPropertyPath
+ *
+ * @return AssertionChain
+ */
+ public static function thatNullOr($value, $defaultMessage = null, string $defaultPropertyPath = null): AssertionChain
+ {
+ return static::that($value, $defaultMessage, $defaultPropertyPath)->nullOr();
+ }
+
+ /**
+ * Create a lazy assertion object.
+ *
+ * @return LazyAssertion
+ */
+ public static function lazy(): LazyAssertion
+ {
+ $lazyAssertion = new LazyAssertion();
+
+ return $lazyAssertion
+ ->setAssertClass(\get_called_class())
+ ->setExceptionClass(static::$lazyAssertionExceptionClass);
+ }
+}
diff --git a/vendor/beberlei/assert/lib/Assert/Assertion.php b/vendor/beberlei/assert/lib/Assert/Assertion.php
new file mode 100644
index 000000000..a8b04e529
--- /dev/null
+++ b/vendor/beberlei/assert/lib/Assert/Assertion.php
@@ -0,0 +1,2825 @@
+<?php
+
+/**
+ * Assert
+ *
+ * LICENSE
+ *
+ * This source file is subject to the MIT license that is bundled
+ * with this package in the file LICENSE.txt.
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to [email protected] so I can send you a copy immediately.
+ */
+
+namespace Assert;
+
+use ArrayAccess;
+use BadMethodCallException;
+use Countable;
+use DateTime;
+use ReflectionClass;
+use ReflectionException;
+use ResourceBundle;
+use SimpleXMLElement;
+use Throwable;
+use Traversable;
+
+/**
+ * Assert library.
+ *
+ * @author Benjamin Eberlei <[email protected]>
+ *
+ * @method static bool allAlnum(mixed[] $value, string|callable $message = null, string $propertyPath = null) Assert that value is alphanumeric for all values.
+ * @method static bool allBase64(string[] $value, string|callable $message = null, string $propertyPath = null) Assert that a constant is defined for all values.
+ * @method static bool allBetween(mixed[] $value, mixed $lowerLimit, mixed $upperLimit, string|callable $message = null, string $propertyPath = null) Assert that a value is greater or equal than a lower limit, and less than or equal to an upper limit for all values.
+ * @method static bool allBetweenExclusive(mixed[] $value, mixed $lowerLimit, mixed $upperLimit, string|callable $message = null, string $propertyPath = null) Assert that a value is greater than a lower limit, and less than an upper limit for all values.
+ * @method static bool allBetweenLength(mixed[] $value, int $minLength, int $maxLength, string|callable $message = null, string $propertyPath = null, string $encoding = 'utf8') Assert that string length is between min and max lengths for all values.
+ * @method static bool allBoolean(mixed[] $value, string|callable $message = null, string $propertyPath = null) Assert that value is php boolean for all values.
+ * @method static bool allChoice(mixed[] $value, array $choices, string|callable $message = null, string $propertyPath = null) Assert that value is in array of choices for all values.
+ * @method static bool allChoicesNotEmpty(array[] $values, array $choices, string|callable $message = null, string $propertyPath = null) Determines if the values array has every choice as key and that this choice has content for all values.
+ * @method static bool allClassExists(mixed[] $value, string|callable $message = null, string $propertyPath = null) Assert that the class exists for all values.
+ * @method static bool allContains(mixed[] $string, string $needle, string|callable $message = null, string $propertyPath = null, string $encoding = 'utf8') Assert that string contains a sequence of chars for all values.
+ * @method static bool allCount(array[]|Countable[]|ResourceBundle[]|SimpleXMLElement[] $countable, int $count, string|callable $message = null, string $propertyPath = null) Assert that the count of countable is equal to count for all values.
+ * @method static bool allDate(string[] $value, string $format, string|callable $message = null, string $propertyPath = null) Assert that date is valid and corresponds to the given format for all values.
+ * @method static bool allDefined(mixed[] $constant, string|callable $message = null, string $propertyPath = null) Assert that a constant is defined for all values.
+ * @method static bool allDigit(mixed[] $value, string|callable $message = null, string $propertyPath = null) Validates if an integer or integerish is a digit for all values.
+ * @method static bool allDirectory(string[] $value, string|callable $message = null, string $propertyPath = null) Assert that a directory exists for all values.
+ * @method static bool allE164(string[] $value, string|callable $message = null, string $propertyPath = null) Assert that the given string is a valid E164 Phone Number for all values.
+ * @method static bool allEmail(mixed[] $value, string|callable $message = null, string $propertyPath = null) Assert that value is an email address (using input_filter/FILTER_VALIDATE_EMAIL) for all values.
+ * @method static bool allEndsWith(mixed[] $string, string $needle, string|callable $message = null, string $propertyPath = null, string $encoding = 'utf8') Assert that string ends with a sequence of chars for all values.
+ * @method static bool allEq(mixed[] $value, mixed $value2, string|callable $message = null, string $propertyPath = null) Assert that two values are equal (using ==) for all values.
+ * @method static bool allEqArraySubset(mixed[] $value, mixed $value2, string|callable $message = null, string $propertyPath = null) Assert that the array contains the subset for all values.
+ * @method static bool allExtensionLoaded(mixed[] $value, string|callable $message = null, string $propertyPath = null) Assert that extension is loaded for all values.
+ * @method static bool allExtensionVersion(string[] $extension, string $operator, mixed $version, string|callable $message = null, string $propertyPath = null) Assert that extension is loaded and a specific version is installed for all values.
+ * @method static bool allFalse(mixed[] $value, string|callable $message = null, string $propertyPath = null) Assert that the value is boolean False for all values.
+ * @method static bool allFile(string[] $value, string|callable $message = null, string $propertyPath = null) Assert that a file exists for all values.
+ * @method static bool allFloat(mixed[] $value, string|callable $message = null, string $propertyPath = null) Assert that value is a php float for all values.
+ * @method static bool allGreaterOrEqualThan(mixed[] $value, mixed $limit, string|callable $message = null, string $propertyPath = null) Determines if the value is greater or equal than given limit for all values.
+ * @method static bool allGreaterThan(mixed[] $value, mixed $limit, string|callable $message = null, string $propertyPath = null) Determines if the value is greater than given limit for all values.
+ * @method static bool allImplementsInterface(mixed[] $class, string $interfaceName, string|callable $message = null, string $propertyPath = null) Assert that the class implements the interface for all values.
+ * @method static bool allInArray(mixed[] $value, array $choices, string|callable $message = null, string $propertyPath = null) Assert that value is in array of choices. This is an alias of Assertion::choice() for all values.
+ * @method static bool allInteger(mixed[] $value, string|callable $message = null, string $propertyPath = null) Assert that value is a php integer for all values.
+ * @method static bool allIntegerish(mixed[] $value, string|callable $message = null, string $propertyPath = null) Assert that value is a php integer'ish for all values.
+ * @method static bool allInterfaceExists(mixed[] $value, string|callable $message = null, string $propertyPath = null) Assert that the interface exists for all values.
+ * @method static bool allIp(string[] $value, int $flag = null, string|callable $message = null, string $propertyPath = null) Assert that value is an IPv4 or IPv6 address for all values.
+ * @method static bool allIpv4(string[] $value, int $flag = null, string|callable $message = null, string $propertyPath = null) Assert that value is an IPv4 address for all values.
+ * @method static bool allIpv6(string[] $value, int $flag = null, string|callable $message = null, string $propertyPath = null) Assert that value is an IPv6 address for all values.
+ * @method static bool allIsArray(mixed[] $value, string|callable $message = null, string $propertyPath = null) Assert that value is an array for all values.
+ * @method static bool allIsArrayAccessible(mixed[] $value, string|callable $message = null, string $propertyPath = null) Assert that value is an array or an array-accessible object for all values.
+ * @method static bool allIsCallable(mixed[] $value, string|callable $message = null, string $propertyPath = null) Determines that the provided value is callable for all values.
+ * @method static bool allIsCountable(array[]|Countable[]|ResourceBundle[]|SimpleXMLElement[] $value, string|callable $message = null, string $propertyPath = null) Assert that value is countable for all values.
+ * @method static bool allIsInstanceOf(mixed[] $value, string $className, string|callable $message = null, string $propertyPath = null) Assert that value is instance of given class-name for all values.
+ * @method static bool allIsJsonString(mixed[] $value, string|callable $message = null, string $propertyPath = null) Assert that the given string is a valid json string for all values.
+ * @method static bool allIsObject(mixed[] $value, string|callable $message = null, string $propertyPath = null) Determines that the provided value is an object for all values.
+ * @method static bool allIsResource(mixed[] $value, string|callable $message = null, string $propertyPath = null) Assert that value is a resource for all values.
+ * @method static bool allIsTraversable(mixed[] $value, string|callable $message = null, string $propertyPath = null) Assert that value is an array or a traversable object for all values.
+ * @method static bool allKeyExists(mixed[] $value, string|int $key, string|callable $message = null, string $propertyPath = null) Assert that key exists in an array for all values.
+ * @method static bool allKeyIsset(mixed[] $value, string|int $key, string|callable $message = null, string $propertyPath = null) Assert that key exists in an array/array-accessible object using isset() for all values.
+ * @method static bool allKeyNotExists(mixed[] $value, string|int $key, string|callable $message = null, string $propertyPath = null) Assert that key does not exist in an array for all values.
+ * @method static bool allLength(mixed[] $value, int $length, string|callable $message = null, string $propertyPath = null, string $encoding = 'utf8') Assert that string has a given length for all values.
+ * @method static bool allLessOrEqualThan(mixed[] $value, mixed $limit, string|callable $message = null, string $propertyPath = null) Determines if the value is less or equal than given limit for all values.
+ * @method static bool allLessThan(mixed[] $value, mixed $limit, string|callable $message = null, string $propertyPath = null) Determines if the value is less than given limit for all values.
+ * @method static bool allMax(mixed[] $value, mixed $maxValue, string|callable $message = null, string $propertyPath = null) Assert that a number is smaller as a given limit for all values.
+ * @method static bool allMaxCount(array[]|Countable[]|ResourceBundle[]|SimpleXMLElement[] $countable, int $count, string|callable $message = null, string $propertyPath = null) Assert that the countable have at most $count elements for all values.
+ * @method static bool allMaxLength(mixed[] $value, int $maxLength, string|callable $message = null, string $propertyPath = null, string $encoding = 'utf8') Assert that string value is not longer than $maxLength chars for all values.
+ * @method static bool allMethodExists(string[] $value, mixed $object, string|callable $message = null, string $propertyPath = null) Determines that the named method is defined in the provided object for all values.
+ * @method static bool allMin(mixed[] $value, mixed $minValue, string|callable $message = null, string $propertyPath = null) Assert that a value is at least as big as a given limit for all values.
+ * @method static bool allMinCount(array[]|Countable[]|ResourceBundle[]|SimpleXMLElement[] $countable, int $count, string|callable $message = null, string $propertyPath = null) Assert that the countable have at least $count elements for all values.
+ * @method static bool allMinLength(mixed[] $value, int $minLength, string|callable $message = null, string $propertyPath = null, string $encoding = 'utf8') Assert that a string is at least $minLength chars long for all values.
+ * @method static bool allNoContent(mixed[] $value, string|callable $message = null, string $propertyPath = null) Assert that value is empty for all values.
+ * @method static bool allNotBlank(mixed[] $value, string|callable $message = null, string $propertyPath = null) Assert that value is not blank for all values.
+ * @method static bool allNotContains(mixed[] $string, string $needle, string|callable $message = null, string $propertyPath = null, string $encoding = 'utf8') Assert that string does not contains a sequence of chars for all values.
+ * @method static bool allNotEmpty(mixed[] $value, string|callable $message = null, string $propertyPath = null) Assert that value is not empty for all values.
+ * @method static bool allNotEmptyKey(mixed[] $value, string|int $key, string|callable $message = null, string $propertyPath = null) Assert that key exists in an array/array-accessible object and its value is not empty for all values.
+ * @method static bool allNotEq(mixed[] $value1, mixed $value2, string|callable $message = null, string $propertyPath = null) Assert that two values are not equal (using ==) for all values.
+ * @method static bool allNotInArray(mixed[] $value, array $choices, string|callable $message = null, string $propertyPath = null) Assert that value is not in array of choices for all values.
+ * @method static bool allNotIsInstanceOf(mixed[] $value, string $className, string|callable $message = null, string $propertyPath = null) Assert that value is not instance of given class-name for all values.
+ * @method static bool allNotNull(mixed[] $value, string|callable $message = null, string $propertyPath = null) Assert that value is not null for all values.
+ * @method static bool allNotRegex(mixed[] $value, string $pattern, string|callable $message = null, string $propertyPath = null) Assert that value does not match a regex for all values.
+ * @method static bool allNotSame(mixed[] $value1, mixed $value2, string|callable $message = null, string $propertyPath = null) Assert that two values are not the same (using ===) for all values.
+ * @method static bool allNull(mixed[] $value, string|callable $message = null, string $propertyPath = null) Assert that value is null for all values.
+ * @method static bool allNumeric(mixed[] $value, string|callable $message = null, string $propertyPath = null) Assert that value is numeric for all values.
+ * @method static bool allObjectOrClass(mixed[] $value, string|callable $message = null, string $propertyPath = null) Assert that the value is an object, or a class that exists for all values.
+ * @method static bool allPhpVersion(string[] $operator, mixed $version, string|callable $message = null, string $propertyPath = null) Assert on PHP version for all values.
+ * @method static bool allPropertiesExist(mixed[] $value, array $properties, string|callable $message = null, string $propertyPath = null) Assert that the value is an object or class, and that the properties all exist for all values.
+ * @method static bool allPropertyExists(mixed[] $value, string $property, string|callable $message = null, string $propertyPath = null) Assert that the value is an object or class, and that the property exists for all values.
+ * @method static bool allRange(mixed[] $value, mixed $minValue, mixed $maxValue, string|callable $message = null, string $propertyPath = null) Assert that value is in range of numbers for all values.
+ * @method static bool allReadable(string[] $value, string|callable $message = null, string $propertyPath = null) Assert that the value is something readable for all values.
+ * @method static bool allRegex(mixed[] $value, string $pattern, string|callable $message = null, string $propertyPath = null) Assert that value matches a regex for all values.
+ * @method static bool allSame(mixed[] $value, mixed $value2, string|callable $message = null, string $propertyPath = null) Assert that two values are the same (using ===) for all values.
+ * @method static bool allSatisfy(mixed[] $value, callable $callback, string|callable $message = null, string $propertyPath = null) Assert that the provided value is valid according to a callback for all values.
+ * @method static bool allScalar(mixed[] $value, string|callable $message = null, string $propertyPath = null) Assert that value is a PHP scalar for all values.
+ * @method static bool allStartsWith(mixed[] $string, string $needle, string|callable $message = null, string $propertyPath = null, string $encoding = 'utf8') Assert that string starts with a sequence of chars for all values.
+ * @method static bool allString(mixed[] $value, string|callable $message = null, string $propertyPath = null) Assert that value is a string for all values.
+ * @method static bool allSubclassOf(mixed[] $value, string $className, string|callable $message = null, string $propertyPath = null) Assert that value is subclass of given class-name for all values.
+ * @method static bool allTrue(mixed[] $value, string|callable $message = null, string $propertyPath = null) Assert that the value is boolean True for all values.
+ * @method static bool allUrl(mixed[] $value, string|callable $message = null, string $propertyPath = null) Assert that value is an URL for all values.
+ * @method static bool allUuid(string[] $value, string|callable $message = null, string $propertyPath = null) Assert that the given string is a valid UUID for all values.
+ * @method static bool allVersion(string[] $version1, string $operator, string $version2, string|callable $message = null, string $propertyPath = null) Assert comparison of two versions for all values.
+ * @method static bool allWriteable(string[] $value, string|callable $message = null, string $propertyPath = null) Assert that the value is something writeable for all values.
+ * @method static bool nullOrAlnum(mixed|null $value, string|callable $message = null, string $propertyPath = null) Assert that value is alphanumeric or that the value is null.
+ * @method static bool nullOrBase64(string|null $value, string|callable $message = null, string $propertyPath = null) Assert that a constant is defined or that the value is null.
+ * @method static bool nullOrBetween(mixed|null $value, mixed $lowerLimit, mixed $upperLimit, string|callable $message = null, string $propertyPath = null) Assert that a value is greater or equal than a lower limit, and less than or equal to an upper limit or that the value is null.
+ * @method static bool nullOrBetweenExclusive(mixed|null $value, mixed $lowerLimit, mixed $upperLimit, string|callable $message = null, string $propertyPath = null) Assert that a value is greater than a lower limit, and less than an upper limit or that the value is null.
+ * @method static bool nullOrBetweenLength(mixed|null $value, int $minLength, int $maxLength, string|callable $message = null, string $propertyPath = null, string $encoding = 'utf8') Assert that string length is between min and max lengths or that the value is null.
+ * @method static bool nullOrBoolean(mixed|null $value, string|callable $message = null, string $propertyPath = null) Assert that value is php boolean or that the value is null.
+ * @method static bool nullOrChoice(mixed|null $value, array $choices, string|callable $message = null, string $propertyPath = null) Assert that value is in array of choices or that the value is null.
+ * @method static bool nullOrChoicesNotEmpty(array|null $values, array $choices, string|callable $message = null, string $propertyPath = null) Determines if the values array has every choice as key and that this choice has content or that the value is null.
+ * @method static bool nullOrClassExists(mixed|null $value, string|callable $message = null, string $propertyPath = null) Assert that the class exists or that the value is null.
+ * @method static bool nullOrContains(mixed|null $string, string $needle, string|callable $message = null, string $propertyPath = null, string $encoding = 'utf8') Assert that string contains a sequence of chars or that the value is null.
+ * @method static bool nullOrCount(array|Countable|ResourceBundle|SimpleXMLElement|null $countable, int $count, string|callable $message = null, string $propertyPath = null) Assert that the count of countable is equal to count or that the value is null.
+ * @method static bool nullOrDate(string|null $value, string $format, string|callable $message = null, string $propertyPath = null) Assert that date is valid and corresponds to the given format or that the value is null.
+ * @method static bool nullOrDefined(mixed|null $constant, string|callable $message = null, string $propertyPath = null) Assert that a constant is defined or that the value is null.
+ * @method static bool nullOrDigit(mixed|null $value, string|callable $message = null, string $propertyPath = null) Validates if an integer or integerish is a digit or that the value is null.
+ * @method static bool nullOrDirectory(string|null $value, string|callable $message = null, string $propertyPath = null) Assert that a directory exists or that the value is null.
+ * @method static bool nullOrE164(string|null $value, string|callable $message = null, string $propertyPath = null) Assert that the given string is a valid E164 Phone Number or that the value is null.
+ * @method static bool nullOrEmail(mixed|null $value, string|callable $message = null, string $propertyPath = null) Assert that value is an email address (using input_filter/FILTER_VALIDATE_EMAIL) or that the value is null.
+ * @method static bool nullOrEndsWith(mixed|null $string, string $needle, string|callable $message = null, string $propertyPath = null, string $encoding = 'utf8') Assert that string ends with a sequence of chars or that the value is null.
+ * @method static bool nullOrEq(mixed|null $value, mixed $value2, string|callable $message = null, string $propertyPath = null) Assert that two values are equal (using ==) or that the value is null.
+ * @method static bool nullOrEqArraySubset(mixed|null $value, mixed $value2, string|callable $message = null, string $propertyPath = null) Assert that the array contains the subset or that the value is null.
+ * @method static bool nullOrExtensionLoaded(mixed|null $value, string|callable $message = null, string $propertyPath = null) Assert that extension is loaded or that the value is null.
+ * @method static bool nullOrExtensionVersion(string|null $extension, string $operator, mixed $version, string|callable $message = null, string $propertyPath = null) Assert that extension is loaded and a specific version is installed or that the value is null.
+ * @method static bool nullOrFalse(mixed|null $value, string|callable $message = null, string $propertyPath = null) Assert that the value is boolean False or that the value is null.
+ * @method static bool nullOrFile(string|null $value, string|callable $message = null, string $propertyPath = null) Assert that a file exists or that the value is null.
+ * @method static bool nullOrFloat(mixed|null $value, string|callable $message = null, string $propertyPath = null) Assert that value is a php float or that the value is null.
+ * @method static bool nullOrGreaterOrEqualThan(mixed|null $value, mixed $limit, string|callable $message = null, string $propertyPath = null) Determines if the value is greater or equal than given limit or that the value is null.
+ * @method static bool nullOrGreaterThan(mixed|null $value, mixed $limit, string|callable $message = null, string $propertyPath = null) Determines if the value is greater than given limit or that the value is null.
+ * @method static bool nullOrImplementsInterface(mixed|null $class, string $interfaceName, string|callable $message = null, string $propertyPath = null) Assert that the class implements the interface or that the value is null.
+ * @method static bool nullOrInArray(mixed|null $value, array $choices, string|callable $message = null, string $propertyPath = null) Assert that value is in array of choices. This is an alias of Assertion::choice() or that the value is null.
+ * @method static bool nullOrInteger(mixed|null $value, string|callable $message = null, string $propertyPath = null) Assert that value is a php integer or that the value is null.
+ * @method static bool nullOrIntegerish(mixed|null $value, string|callable $message = null, string $propertyPath = null) Assert that value is a php integer'ish or that the value is null.
+ * @method static bool nullOrInterfaceExists(mixed|null $value, string|callable $message = null, string $propertyPath = null) Assert that the interface exists or that the value is null.
+ * @method static bool nullOrIp(string|null $value, int $flag = null, string|callable $message = null, string $propertyPath = null) Assert that value is an IPv4 or IPv6 address or that the value is null.
+ * @method static bool nullOrIpv4(string|null $value, int $flag = null, string|callable $message = null, string $propertyPath = null) Assert that value is an IPv4 address or that the value is null.
+ * @method static bool nullOrIpv6(string|null $value, int $flag = null, string|callable $message = null, string $propertyPath = null) Assert that value is an IPv6 address or that the value is null.
+ * @method static bool nullOrIsArray(mixed|null $value, string|callable $message = null, string $propertyPath = null) Assert that value is an array or that the value is null.
+ * @method static bool nullOrIsArrayAccessible(mixed|null $value, string|callable $message = null, string $propertyPath = null) Assert that value is an array or an array-accessible object or that the value is null.
+ * @method static bool nullOrIsCallable(mixed|null $value, string|callable $message = null, string $propertyPath = null) Determines that the provided value is callable or that the value is null.
+ * @method static bool nullOrIsCountable(array|Countable|ResourceBundle|SimpleXMLElement|null $value, string|callable $message = null, string $propertyPath = null) Assert that value is countable or that the value is null.
+ * @method static bool nullOrIsInstanceOf(mixed|null $value, string $className, string|callable $message = null, string $propertyPath = null) Assert that value is instance of given class-name or that the value is null.
+ * @method static bool nullOrIsJsonString(mixed|null $value, string|callable $message = null, string $propertyPath = null) Assert that the given string is a valid json string or that the value is null.
+ * @method static bool nullOrIsObject(mixed|null $value, string|callable $message = null, string $propertyPath = null) Determines that the provided value is an object or that the value is null.
+ * @method static bool nullOrIsResource(mixed|null $value, string|callable $message = null, string $propertyPath = null) Assert that value is a resource or that the value is null.
+ * @method static bool nullOrIsTraversable(mixed|null $value, string|callable $message = null, string $propertyPath = null) Assert that value is an array or a traversable object or that the value is null.
+ * @method static bool nullOrKeyExists(mixed|null $value, string|int $key, string|callable $message = null, string $propertyPath = null) Assert that key exists in an array or that the value is null.
+ * @method static bool nullOrKeyIsset(mixed|null $value, string|int $key, string|callable $message = null, string $propertyPath = null) Assert that key exists in an array/array-accessible object using isset() or that the value is null.
+ * @method static bool nullOrKeyNotExists(mixed|null $value, string|int $key, string|callable $message = null, string $propertyPath = null) Assert that key does not exist in an array or that the value is null.
+ * @method static bool nullOrLength(mixed|null $value, int $length, string|callable $message = null, string $propertyPath = null, string $encoding = 'utf8') Assert that string has a given length or that the value is null.
+ * @method static bool nullOrLessOrEqualThan(mixed|null $value, mixed $limit, string|callable $message = null, string $propertyPath = null) Determines if the value is less or equal than given limit or that the value is null.
+ * @method static bool nullOrLessThan(mixed|null $value, mixed $limit, string|callable $message = null, string $propertyPath = null) Determines if the value is less than given limit or that the value is null.
+ * @method static bool nullOrMax(mixed|null $value, mixed $maxValue, string|callable $message = null, string $propertyPath = null) Assert that a number is smaller as a given limit or that the value is null.
+ * @method static bool nullOrMaxCount(array|Countable|ResourceBundle|SimpleXMLElement|null $countable, int $count, string|callable $message = null, string $propertyPath = null) Assert that the countable have at most $count elements or that the value is null.
+ * @method static bool nullOrMaxLength(mixed|null $value, int $maxLength, string|callable $message = null, string $propertyPath = null, string $encoding = 'utf8') Assert that string value is not longer than $maxLength chars or that the value is null.
+ * @method static bool nullOrMethodExists(string|null $value, mixed $object, string|callable $message = null, string $propertyPath = null) Determines that the named method is defined in the provided object or that the value is null.
+ * @method static bool nullOrMin(mixed|null $value, mixed $minValue, string|callable $message = null, string $propertyPath = null) Assert that a value is at least as big as a given limit or that the value is null.
+ * @method static bool nullOrMinCount(array|Countable|ResourceBundle|SimpleXMLElement|null $countable, int $count, string|callable $message = null, string $propertyPath = null) Assert that the countable have at least $count elements or that the value is null.
+ * @method static bool nullOrMinLength(mixed|null $value, int $minLength, string|callable $message = null, string $propertyPath = null, string $encoding = 'utf8') Assert that a string is at least $minLength chars long or that the value is null.
+ * @method static bool nullOrNoContent(mixed|null $value, string|callable $message = null, string $propertyPath = null) Assert that value is empty or that the value is null.
+ * @method static bool nullOrNotBlank(mixed|null $value, string|callable $message = null, string $propertyPath = null) Assert that value is not blank or that the value is null.
+ * @method static bool nullOrNotContains(mixed|null $string, string $needle, string|callable $message = null, string $propertyPath = null, string $encoding = 'utf8') Assert that string does not contains a sequence of chars or that the value is null.
+ * @method static bool nullOrNotEmpty(mixed|null $value, string|callable $message = null, string $propertyPath = null) Assert that value is not empty or that the value is null.
+ * @method static bool nullOrNotEmptyKey(mixed|null $value, string|int $key, string|callable $message = null, string $propertyPath = null) Assert that key exists in an array/array-accessible object and its value is not empty or that the value is null.
+ * @method static bool nullOrNotEq(mixed|null $value1, mixed $value2, string|callable $message = null, string $propertyPath = null) Assert that two values are not equal (using ==) or that the value is null.
+ * @method static bool nullOrNotInArray(mixed|null $value, array $choices, string|callable $message = null, string $propertyPath = null) Assert that value is not in array of choices or that the value is null.
+ * @method static bool nullOrNotIsInstanceOf(mixed|null $value, string $className, string|callable $message = null, string $propertyPath = null) Assert that value is not instance of given class-name or that the value is null.
+ * @method static bool nullOrNotNull(mixed|null $value, string|callable $message = null, string $propertyPath = null) Assert that value is not null or that the value is null.
+ * @method static bool nullOrNotRegex(mixed|null $value, string $pattern, string|callable $message = null, string $propertyPath = null) Assert that value does not match a regex or that the value is null.
+ * @method static bool nullOrNotSame(mixed|null $value1, mixed $value2, string|callable $message = null, string $propertyPath = null) Assert that two values are not the same (using ===) or that the value is null.
+ * @method static bool nullOrNull(mixed|null $value, string|callable $message = null, string $propertyPath = null) Assert that value is null or that the value is null.
+ * @method static bool nullOrNumeric(mixed|null $value, string|callable $message = null, string $propertyPath = null) Assert that value is numeric or that the value is null.
+ * @method static bool nullOrObjectOrClass(mixed|null $value, string|callable $message = null, string $propertyPath = null) Assert that the value is an object, or a class that exists or that the value is null.
+ * @method static bool nullOrPhpVersion(string|null $operator, mixed $version, string|callable $message = null, string $propertyPath = null) Assert on PHP version or that the value is null.
+ * @method static bool nullOrPropertiesExist(mixed|null $value, array $properties, string|callable $message = null, string $propertyPath = null) Assert that the value is an object or class, and that the properties all exist or that the value is null.
+ * @method static bool nullOrPropertyExists(mixed|null $value, string $property, string|callable $message = null, string $propertyPath = null) Assert that the value is an object or class, and that the property exists or that the value is null.
+ * @method static bool nullOrRange(mixed|null $value, mixed $minValue, mixed $maxValue, string|callable $message = null, string $propertyPath = null) Assert that value is in range of numbers or that the value is null.
+ * @method static bool nullOrReadable(string|null $value, string|callable $message = null, string $propertyPath = null) Assert that the value is something readable or that the value is null.
+ * @method static bool nullOrRegex(mixed|null $value, string $pattern, string|callable $message = null, string $propertyPath = null) Assert that value matches a regex or that the value is null.
+ * @method static bool nullOrSame(mixed|null $value, mixed $value2, string|callable $message = null, string $propertyPath = null) Assert that two values are the same (using ===) or that the value is null.
+ * @method static bool nullOrSatisfy(mixed|null $value, callable $callback, string|callable $message = null, string $propertyPath = null) Assert that the provided value is valid according to a callback or that the value is null.
+ * @method static bool nullOrScalar(mixed|null $value, string|callable $message = null, string $propertyPath = null) Assert that value is a PHP scalar or that the value is null.
+ * @method static bool nullOrStartsWith(mixed|null $string, string $needle, string|callable $message = null, string $propertyPath = null, string $encoding = 'utf8') Assert that string starts with a sequence of chars or that the value is null.
+ * @method static bool nullOrString(mixed|null $value, string|callable $message = null, string $propertyPath = null) Assert that value is a string or that the value is null.
+ * @method static bool nullOrSubclassOf(mixed|null $value, string $className, string|callable $message = null, string $propertyPath = null) Assert that value is subclass of given class-name or that the value is null.
+ * @method static bool nullOrTrue(mixed|null $value, string|callable $message = null, string $propertyPath = null) Assert that the value is boolean True or that the value is null.
+ * @method static bool nullOrUrl(mixed|null $value, string|callable $message = null, string $propertyPath = null) Assert that value is an URL or that the value is null.
+ * @method static bool nullOrUuid(string|null $value, string|callable $message = null, string $propertyPath = null) Assert that the given string is a valid UUID or that the value is null.
+ * @method static bool nullOrVersion(string|null $version1, string $operator, string $version2, string|callable $message = null, string $propertyPath = null) Assert comparison of two versions or that the value is null.
+ * @method static bool nullOrWriteable(string|null $value, string|callable $message = null, string $propertyPath = null) Assert that the value is something writeable or that the value is null.
+ */
+class Assertion
+{
+ const INVALID_FLOAT = 9;
+ const INVALID_INTEGER = 10;
+ const INVALID_DIGIT = 11;
+ const INVALID_INTEGERISH = 12;
+ const INVALID_BOOLEAN = 13;
+ const VALUE_EMPTY = 14;
+ const VALUE_NULL = 15;
+ const VALUE_NOT_NULL = 25;
+ const INVALID_STRING = 16;
+ const INVALID_REGEX = 17;
+ const INVALID_MIN_LENGTH = 18;
+ const INVALID_MAX_LENGTH = 19;
+ const INVALID_STRING_START = 20;
+ const INVALID_STRING_CONTAINS = 21;
+ const INVALID_CHOICE = 22;
+ const INVALID_NUMERIC = 23;
+ const INVALID_ARRAY = 24;
+ const INVALID_KEY_EXISTS = 26;
+ const INVALID_NOT_BLANK = 27;
+ const INVALID_INSTANCE_OF = 28;
+ const INVALID_SUBCLASS_OF = 29;
+ const INVALID_RANGE = 30;
+ const INVALID_ALNUM = 31;
+ const INVALID_TRUE = 32;
+ const INVALID_EQ = 33;
+ const INVALID_SAME = 34;
+ const INVALID_MIN = 35;
+ const INVALID_MAX = 36;
+ const INVALID_LENGTH = 37;
+ const INVALID_FALSE = 38;
+ const INVALID_STRING_END = 39;
+ const INVALID_UUID = 40;
+ const INVALID_COUNT = 41;
+ const INVALID_NOT_EQ = 42;
+ const INVALID_NOT_SAME = 43;
+ const INVALID_TRAVERSABLE = 44;
+ const INVALID_ARRAY_ACCESSIBLE = 45;
+ const INVALID_KEY_ISSET = 46;
+ const INVALID_VALUE_IN_ARRAY = 47;
+ const INVALID_E164 = 48;
+ const INVALID_BASE64 = 49;
+ const INVALID_NOT_REGEX = 50;
+ const INVALID_DIRECTORY = 101;
+ const INVALID_FILE = 102;
+ const INVALID_READABLE = 103;
+ const INVALID_WRITEABLE = 104;
+ const INVALID_CLASS = 105;
+ const INVALID_INTERFACE = 106;
+ const INVALID_FILE_NOT_EXISTS = 107;
+ const INVALID_EMAIL = 201;
+ const INTERFACE_NOT_IMPLEMENTED = 202;
+ const INVALID_URL = 203;
+ const INVALID_NOT_INSTANCE_OF = 204;
+ const VALUE_NOT_EMPTY = 205;
+ const INVALID_JSON_STRING = 206;
+ const INVALID_OBJECT = 207;
+ const INVALID_METHOD = 208;
+ const INVALID_SCALAR = 209;
+ const INVALID_LESS = 210;
+ const INVALID_LESS_OR_EQUAL = 211;
+ const INVALID_GREATER = 212;
+ const INVALID_GREATER_OR_EQUAL = 213;
+ const INVALID_DATE = 214;
+ const INVALID_CALLABLE = 215;
+ const INVALID_KEY_NOT_EXISTS = 216;
+ const INVALID_SATISFY = 217;
+ const INVALID_IP = 218;
+ const INVALID_BETWEEN = 219;
+ const INVALID_BETWEEN_EXCLUSIVE = 220;
+ const INVALID_EXTENSION = 222;
+ const INVALID_CONSTANT = 221;
+ const INVALID_VERSION = 223;
+ const INVALID_PROPERTY = 224;
+ const INVALID_RESOURCE = 225;
+ const INVALID_COUNTABLE = 226;
+ const INVALID_MIN_COUNT = 227;
+ const INVALID_MAX_COUNT = 228;
+ const INVALID_STRING_NOT_CONTAINS = 229;
+
+ /**
+ * Exception to throw when an assertion failed.
+ *
+ * @var string
+ */
+ protected static $exceptionClass = InvalidArgumentException::class;
+
+ /**
+ * Assert that two values are equal (using ==).
+ *
+ * @param mixed $value
+ * @param mixed $value2
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function eq($value, $value2, $message = null, string $propertyPath = null): bool
+ {
+ if ($value != $value2) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" does not equal expected value "%s".'),
+ static::stringify($value),
+ static::stringify($value2)
+ );
+
+ throw static::createException($value, $message, static::INVALID_EQ, $propertyPath, ['expected' => $value2]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that the array contains the subset.
+ *
+ * @param mixed $value
+ * @param mixed $value2
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function eqArraySubset($value, $value2, $message = null, string $propertyPath = null): bool
+ {
+ static::isArray($value, $message, $propertyPath);
+ static::isArray($value2, $message, $propertyPath);
+
+ $patched = \array_replace_recursive($value, $value2);
+ static::eq($patched, $value, $message, $propertyPath);
+
+ return true;
+ }
+
+ /**
+ * Assert that two values are the same (using ===).
+ *
+ * @param mixed $value
+ * @param mixed $value2
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function same($value, $value2, $message = null, string $propertyPath = null): bool
+ {
+ if ($value !== $value2) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" is not the same as expected value "%s".'),
+ static::stringify($value),
+ static::stringify($value2)
+ );
+
+ throw static::createException($value, $message, static::INVALID_SAME, $propertyPath, ['expected' => $value2]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that two values are not equal (using ==).
+ *
+ * @param mixed $value1
+ * @param mixed $value2
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function notEq($value1, $value2, $message = null, string $propertyPath = null): bool
+ {
+ if ($value1 == $value2) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" was not expected to be equal to value "%s".'),
+ static::stringify($value1),
+ static::stringify($value2)
+ );
+ throw static::createException($value1, $message, static::INVALID_NOT_EQ, $propertyPath, ['expected' => $value2]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that two values are not the same (using ===).
+ *
+ * @param mixed $value1
+ * @param mixed $value2
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function notSame($value1, $value2, $message = null, string $propertyPath = null): bool
+ {
+ if ($value1 === $value2) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" was not expected to be the same as value "%s".'),
+ static::stringify($value1),
+ static::stringify($value2)
+ );
+ throw static::createException($value1, $message, static::INVALID_NOT_SAME, $propertyPath, ['expected' => $value2]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that value is not in array of choices.
+ *
+ * @param mixed $value
+ * @param array $choices
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function notInArray($value, array $choices, $message = null, string $propertyPath = null): bool
+ {
+ if (true === \in_array($value, $choices)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" was not expected to be an element of the values: %s'),
+ static::stringify($value),
+ static::stringify($choices)
+ );
+ throw static::createException($value, $message, static::INVALID_VALUE_IN_ARRAY, $propertyPath, ['choices' => $choices]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that value is a php integer.
+ *
+ * @param mixed $value
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function integer($value, $message = null, string $propertyPath = null): bool
+ {
+ if (!\is_int($value)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" is not an integer.'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::INVALID_INTEGER, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that value is a php float.
+ *
+ * @param mixed $value
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function float($value, $message = null, string $propertyPath = null): bool
+ {
+ if (!\is_float($value)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" is not a float.'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::INVALID_FLOAT, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Validates if an integer or integerish is a digit.
+ *
+ * @param mixed $value
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function digit($value, $message = null, string $propertyPath = null): bool
+ {
+ if (!\ctype_digit((string)$value)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" is not a digit.'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::INVALID_DIGIT, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that value is a php integer'ish.
+ *
+ * @param mixed $value
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function integerish($value, $message = null, string $propertyPath = null): bool
+ {
+ if (
+ \is_resource($value) ||
+ \is_object($value) ||
+ \is_bool($value) ||
+ \is_null($value) ||
+ \is_array($value) ||
+ (\is_string($value) && '' == $value) ||
+ (
+ \strval(\intval($value)) !== \strval($value) &&
+ \strval(\intval($value)) !== \strval(\ltrim($value, '0')) &&
+ '' !== \strval(\intval($value)) &&
+ '' !== \strval(\ltrim($value, '0'))
+ )
+ ) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" is not an integer or a number castable to integer.'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::INVALID_INTEGERISH, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that value is php boolean.
+ *
+ * @param mixed $value
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function boolean($value, $message = null, string $propertyPath = null): bool
+ {
+ if (!\is_bool($value)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" is not a boolean.'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::INVALID_BOOLEAN, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that value is a PHP scalar.
+ *
+ * @param mixed $value
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function scalar($value, $message = null, string $propertyPath = null): bool
+ {
+ if (!\is_scalar($value)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" is not a scalar.'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::INVALID_SCALAR, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that value is not empty.
+ *
+ * @param mixed $value
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function notEmpty($value, $message = null, string $propertyPath = null): bool
+ {
+ if (empty($value)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" is empty, but non empty value was expected.'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::VALUE_EMPTY, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that value is empty.
+ *
+ * @param mixed $value
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function noContent($value, $message = null, string $propertyPath = null): bool
+ {
+ if (!empty($value)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" is not empty, but empty value was expected.'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::VALUE_NOT_EMPTY, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that value is null.
+ *
+ * @param mixed $value
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ */
+ public static function null($value, $message = null, string $propertyPath = null): bool
+ {
+ if (null !== $value) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" is not null, but null value was expected.'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::VALUE_NOT_NULL, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that value is not null.
+ *
+ * @param mixed $value
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function notNull($value, $message = null, string $propertyPath = null): bool
+ {
+ if (null === $value) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" is null, but non null value was expected.'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::VALUE_NULL, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that value is a string.
+ *
+ * @param mixed $value
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function string($value, $message = null, string $propertyPath = null)
+ {
+ if (!\is_string($value)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" expected to be string, type %s given.'),
+ static::stringify($value),
+ \gettype($value)
+ );
+
+ throw static::createException($value, $message, static::INVALID_STRING, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that value matches a regex.
+ *
+ * @param mixed $value
+ * @param string $pattern
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function regex($value, $pattern, $message = null, string $propertyPath = null): bool
+ {
+ static::string($value, $message, $propertyPath);
+
+ if (!\preg_match($pattern, $value)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" does not match expression.'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::INVALID_REGEX, $propertyPath, ['pattern' => $pattern]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that value does not match a regex.
+ *
+ * @param mixed $value
+ * @param string $pattern
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function notRegex($value, $pattern, $message = null, string $propertyPath = null): bool
+ {
+ static::string($value, $message, $propertyPath);
+
+ if (\preg_match($pattern, $value)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" matches expression.'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::INVALID_NOT_REGEX, $propertyPath, ['pattern' => $pattern]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that string has a given length.
+ *
+ * @param mixed $value
+ * @param int $length
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ * @param string $encoding
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function length($value, $length, $message = null, string $propertyPath = null, $encoding = 'utf8'): bool
+ {
+ static::string($value, $message, $propertyPath);
+
+ if (\mb_strlen($value, $encoding) !== $length) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" has to be %d exactly characters long, but length is %d.'),
+ static::stringify($value),
+ $length,
+ \mb_strlen($value, $encoding)
+ );
+
+ throw static::createException($value, $message, static::INVALID_LENGTH, $propertyPath, ['length' => $length, 'encoding' => $encoding]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that a string is at least $minLength chars long.
+ *
+ * @param mixed $value
+ * @param int $minLength
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ * @param string $encoding
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function minLength($value, $minLength, $message = null, string $propertyPath = null, $encoding = 'utf8'): bool
+ {
+ static::string($value, $message, $propertyPath);
+
+ if (\mb_strlen($value, $encoding) < $minLength) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" is too short, it should have at least %d characters, but only has %d characters.'),
+ static::stringify($value),
+ $minLength,
+ \mb_strlen($value, $encoding)
+ );
+
+ throw static::createException($value, $message, static::INVALID_MIN_LENGTH, $propertyPath, ['min_length' => $minLength, 'encoding' => $encoding]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that string value is not longer than $maxLength chars.
+ *
+ * @param mixed $value
+ * @param int $maxLength
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ * @param string $encoding
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function maxLength($value, $maxLength, $message = null, string $propertyPath = null, $encoding = 'utf8'): bool
+ {
+ static::string($value, $message, $propertyPath);
+
+ if (\mb_strlen($value, $encoding) > $maxLength) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" is too long, it should have no more than %d characters, but has %d characters.'),
+ static::stringify($value),
+ $maxLength,
+ \mb_strlen($value, $encoding)
+ );
+
+ throw static::createException($value, $message, static::INVALID_MAX_LENGTH, $propertyPath, ['max_length' => $maxLength, 'encoding' => $encoding]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that string length is between min and max lengths.
+ *
+ * @param mixed $value
+ * @param int $minLength
+ * @param int $maxLength
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ * @param string $encoding
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function betweenLength($value, $minLength, $maxLength, $message = null, string $propertyPath = null, $encoding = 'utf8'): bool
+ {
+ static::string($value, $message, $propertyPath);
+ static::minLength($value, $minLength, $message, $propertyPath, $encoding);
+ static::maxLength($value, $maxLength, $message, $propertyPath, $encoding);
+
+ return true;
+ }
+
+ /**
+ * Assert that string starts with a sequence of chars.
+ *
+ * @param mixed $string
+ * @param string $needle
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ * @param string $encoding
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function startsWith($string, $needle, $message = null, string $propertyPath = null, $encoding = 'utf8'): bool
+ {
+ static::string($string, $message, $propertyPath);
+
+ if (0 !== \mb_strpos($string, $needle, null, $encoding)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" does not start with "%s".'),
+ static::stringify($string),
+ static::stringify($needle)
+ );
+
+ throw static::createException($string, $message, static::INVALID_STRING_START, $propertyPath, ['needle' => $needle, 'encoding' => $encoding]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that string ends with a sequence of chars.
+ *
+ * @param mixed $string
+ * @param string $needle
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ * @param string $encoding
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function endsWith($string, $needle, $message = null, string $propertyPath = null, $encoding = 'utf8'): bool
+ {
+ static::string($string, $message, $propertyPath);
+
+ $stringPosition = \mb_strlen($string, $encoding) - \mb_strlen($needle, $encoding);
+
+ if (\mb_strripos($string, $needle, null, $encoding) !== $stringPosition) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" does not end with "%s".'),
+ static::stringify($string),
+ static::stringify($needle)
+ );
+
+ throw static::createException($string, $message, static::INVALID_STRING_END, $propertyPath, ['needle' => $needle, 'encoding' => $encoding]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that string contains a sequence of chars.
+ *
+ * @param mixed $string
+ * @param string $needle
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ * @param string $encoding
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function contains($string, $needle, $message = null, string $propertyPath = null, $encoding = 'utf8'): bool
+ {
+ static::string($string, $message, $propertyPath);
+
+ if (false === \mb_strpos($string, $needle, null, $encoding)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" does not contain "%s".'),
+ static::stringify($string),
+ static::stringify($needle)
+ );
+
+ throw static::createException($string, $message, static::INVALID_STRING_CONTAINS, $propertyPath, ['needle' => $needle, 'encoding' => $encoding]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that string does not contains a sequence of chars.
+ *
+ * @param mixed $string
+ * @param string $needle
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ * @param string $encoding
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function notContains($string, $needle, $message = null, string $propertyPath = null, $encoding = 'utf8'): bool
+ {
+ static::string($string, $message, $propertyPath);
+
+ if (false !== \mb_strpos($string, $needle, null, $encoding)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" contains "%s".'),
+ static::stringify($string),
+ static::stringify($needle)
+ );
+
+ throw static::createException($string, $message, static::INVALID_STRING_NOT_CONTAINS, $propertyPath, ['needle' => $needle, 'encoding' => $encoding]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that value is in array of choices.
+ *
+ * @param mixed $value
+ * @param array $choices
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function choice($value, array $choices, $message = null, string $propertyPath = null): bool
+ {
+ if (!\in_array($value, $choices, true)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" is not an element of the valid values: %s'),
+ static::stringify($value),
+ \implode(', ', \array_map([\get_called_class(), 'stringify'], $choices))
+ );
+
+ throw static::createException($value, $message, static::INVALID_CHOICE, $propertyPath, ['choices' => $choices]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that value is in array of choices.
+ *
+ * This is an alias of {@see choice()}.
+ *
+ * @param mixed $value
+ * @param array $choices
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function inArray($value, array $choices, $message = null, string $propertyPath = null): bool
+ {
+ return static::choice($value, $choices, $message, $propertyPath);
+ }
+
+ /**
+ * Assert that value is numeric.
+ *
+ * @param mixed $value
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function numeric($value, $message = null, string $propertyPath = null): bool
+ {
+ if (!\is_numeric($value)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" is not numeric.'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::INVALID_NUMERIC, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that value is a resource.
+ *
+ * @param mixed $value
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ */
+ public static function isResource($value, $message = null, string $propertyPath = null): bool
+ {
+ if (!\is_resource($value)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" is not a resource.'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::INVALID_RESOURCE, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that value is an array.
+ *
+ * @param mixed $value
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function isArray($value, $message = null, string $propertyPath = null): bool
+ {
+ if (!\is_array($value)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" is not an array.'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::INVALID_ARRAY, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that value is an array or a traversable object.
+ *
+ * @param mixed $value
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function isTraversable($value, $message = null, string $propertyPath = null): bool
+ {
+ if (!\is_array($value) && !$value instanceof Traversable) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" is not an array and does not implement Traversable.'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::INVALID_TRAVERSABLE, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that value is an array or an array-accessible object.
+ *
+ * @param mixed $value
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function isArrayAccessible($value, $message = null, string $propertyPath = null): bool
+ {
+ if (!\is_array($value) && !$value instanceof ArrayAccess) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" is not an array and does not implement ArrayAccess.'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::INVALID_ARRAY_ACCESSIBLE, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that value is countable.
+ *
+ * @param array|Countable|ResourceBundle|SimpleXMLElement $value
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function isCountable($value, $message = null, string $propertyPath = null): bool
+ {
+ if (\function_exists('is_countable')) {
+ $assert = \is_countable($value);
+ } else {
+ $assert = \is_array($value) || $value instanceof Countable || $value instanceof ResourceBundle || $value instanceof SimpleXMLElement;
+ }
+
+ if (!$assert) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" is not an array and does not implement Countable.'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::INVALID_COUNTABLE, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that key exists in an array.
+ *
+ * @param mixed $value
+ * @param string|int $key
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function keyExists($value, $key, $message = null, string $propertyPath = null): bool
+ {
+ static::isArray($value, $message, $propertyPath);
+
+ if (!\array_key_exists($key, $value)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Array does not contain an element with key "%s"'),
+ static::stringify($key)
+ );
+
+ throw static::createException($value, $message, static::INVALID_KEY_EXISTS, $propertyPath, ['key' => $key]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that key does not exist in an array.
+ *
+ * @param mixed $value
+ * @param string|int $key
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function keyNotExists($value, $key, $message = null, string $propertyPath = null): bool
+ {
+ static::isArray($value, $message, $propertyPath);
+
+ if (\array_key_exists($key, $value)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Array contains an element with key "%s"'),
+ static::stringify($key)
+ );
+
+ throw static::createException($value, $message, static::INVALID_KEY_NOT_EXISTS, $propertyPath, ['key' => $key]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that key exists in an array/array-accessible object using isset().
+ *
+ * @param mixed $value
+ * @param string|int $key
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function keyIsset($value, $key, $message = null, string $propertyPath = null): bool
+ {
+ static::isArrayAccessible($value, $message, $propertyPath);
+
+ if (!isset($value[$key])) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'The element with key "%s" was not found'),
+ static::stringify($key)
+ );
+
+ throw static::createException($value, $message, static::INVALID_KEY_ISSET, $propertyPath, ['key' => $key]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that key exists in an array/array-accessible object and its value is not empty.
+ *
+ * @param mixed $value
+ * @param string|int $key
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function notEmptyKey($value, $key, $message = null, string $propertyPath = null): bool
+ {
+ static::keyIsset($value, $key, $message, $propertyPath);
+ static::notEmpty($value[$key], $message, $propertyPath);
+
+ return true;
+ }
+
+ /**
+ * Assert that value is not blank.
+ *
+ * @param mixed $value
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function notBlank($value, $message = null, string $propertyPath = null): bool
+ {
+ if (false === $value || (empty($value) && '0' != $value) || (\is_string($value) && '' === \trim($value))) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" is blank, but was expected to contain a value.'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::INVALID_NOT_BLANK, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that value is instance of given class-name.
+ *
+ * @param mixed $value
+ * @param string $className
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function isInstanceOf($value, $className, $message = null, string $propertyPath = null): bool
+ {
+ if (!($value instanceof $className)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Class "%s" was expected to be instanceof of "%s" but is not.'),
+ static::stringify($value),
+ $className
+ );
+
+ throw static::createException($value, $message, static::INVALID_INSTANCE_OF, $propertyPath, ['class' => $className]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that value is not instance of given class-name.
+ *
+ * @param mixed $value
+ * @param string $className
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function notIsInstanceOf($value, $className, $message = null, string $propertyPath = null): bool
+ {
+ if ($value instanceof $className) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Class "%s" was not expected to be instanceof of "%s".'),
+ static::stringify($value),
+ $className
+ );
+
+ throw static::createException($value, $message, static::INVALID_NOT_INSTANCE_OF, $propertyPath, ['class' => $className]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that value is subclass of given class-name.
+ *
+ * @param mixed $value
+ * @param string $className
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function subclassOf($value, $className, $message = null, string $propertyPath = null): bool
+ {
+ if (!\is_subclass_of($value, $className)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Class "%s" was expected to be subclass of "%s".'),
+ static::stringify($value),
+ $className
+ );
+
+ throw static::createException($value, $message, static::INVALID_SUBCLASS_OF, $propertyPath, ['class' => $className]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that value is in range of numbers.
+ *
+ * @param mixed $value
+ * @param mixed $minValue
+ * @param mixed $maxValue
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function range($value, $minValue, $maxValue, $message = null, string $propertyPath = null): bool
+ {
+ static::numeric($value, $message, $propertyPath);
+
+ if ($value < $minValue || $value > $maxValue) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Number "%s" was expected to be at least "%d" and at most "%d".'),
+ static::stringify($value),
+ static::stringify($minValue),
+ static::stringify($maxValue)
+ );
+
+ throw static::createException($value, $message, static::INVALID_RANGE, $propertyPath, ['min' => $minValue, 'max' => $maxValue]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that a value is at least as big as a given limit.
+ *
+ * @param mixed $value
+ * @param mixed $minValue
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function min($value, $minValue, $message = null, string $propertyPath = null): bool
+ {
+ static::numeric($value, $message, $propertyPath);
+
+ if ($value < $minValue) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Number "%s" was expected to be at least "%s".'),
+ static::stringify($value),
+ static::stringify($minValue)
+ );
+
+ throw static::createException($value, $message, static::INVALID_MIN, $propertyPath, ['min' => $minValue]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that a number is smaller as a given limit.
+ *
+ * @param mixed $value
+ * @param mixed $maxValue
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function max($value, $maxValue, $message = null, string $propertyPath = null): bool
+ {
+ static::numeric($value, $message, $propertyPath);
+
+ if ($value > $maxValue) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Number "%s" was expected to be at most "%s".'),
+ static::stringify($value),
+ static::stringify($maxValue)
+ );
+
+ throw static::createException($value, $message, static::INVALID_MAX, $propertyPath, ['max' => $maxValue]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that a file exists.
+ *
+ * @param string $value
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function file($value, $message = null, string $propertyPath = null): bool
+ {
+ static::string($value, $message, $propertyPath);
+ static::notEmpty($value, $message, $propertyPath);
+
+ if (!\is_file($value)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'File "%s" was expected to exist.'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::INVALID_FILE, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that a directory exists.
+ *
+ * @param string $value
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function directory($value, $message = null, string $propertyPath = null): bool
+ {
+ static::string($value, $message, $propertyPath);
+
+ if (!\is_dir($value)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Path "%s" was expected to be a directory.'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::INVALID_DIRECTORY, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that the value is something readable.
+ *
+ * @param string $value
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function readable($value, $message = null, string $propertyPath = null): bool
+ {
+ static::string($value, $message, $propertyPath);
+
+ if (!\is_readable($value)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Path "%s" was expected to be readable.'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::INVALID_READABLE, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that the value is something writeable.
+ *
+ * @param string $value
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function writeable($value, $message = null, string $propertyPath = null): bool
+ {
+ static::string($value, $message, $propertyPath);
+
+ if (!\is_writable($value)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Path "%s" was expected to be writeable.'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::INVALID_WRITEABLE, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that value is an email address (using input_filter/FILTER_VALIDATE_EMAIL).
+ *
+ * @param mixed $value
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function email($value, $message = null, string $propertyPath = null): bool
+ {
+ static::string($value, $message, $propertyPath);
+
+ if (!\filter_var($value, FILTER_VALIDATE_EMAIL)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" was expected to be a valid e-mail address.'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::INVALID_EMAIL, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that value is an URL.
+ *
+ * This code snipped was taken from the Symfony project and modified to the special demands of this method.
+ *
+ * @param mixed $value
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ *
+ * @see https://github.com/symfony/Validator/blob/master/Constraints/UrlValidator.php
+ * @see https://github.com/symfony/Validator/blob/master/Constraints/Url.php
+ */
+ public static function url($value, $message = null, string $propertyPath = null): bool
+ {
+ static::string($value, $message, $propertyPath);
+
+ $protocols = ['http', 'https'];
+
+ $pattern = '~^
+ (%s):// # protocol
+ (([\.\pL\pN-]+:)?([\.\pL\pN-]+)@)? # basic auth
+ (
+ ([\pL\pN\pS\-\.])+(\.?([\pL\pN]|xn\-\-[\pL\pN-]+)+\.?) # a domain name
+ | # or
+ \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} # an IP address
+ | # or
+ \[
+ (?:(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){6})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:::(?:(?:(?:[0-9a-f]{1,4})):){5})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:[0-9a-f]{1,4})))?::(?:(?:(?:[0-9a-f]{1,4})):){4})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,1}(?:(?:[0-9a-f]{1,4})))?::(?:(?:(?:[0-9a-f]{1,4})):){3})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,2}(?:(?:[0-9a-f]{1,4})))?::(?:(?:(?:[0-9a-f]{1,4})):){2})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,3}(?:(?:[0-9a-f]{1,4})))?::(?:(?:[0-9a-f]{1,4})):)(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,4}(?:(?:[0-9a-f]{1,4})))?::)(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,5}(?:(?:[0-9a-f]{1,4})))?::)(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,6}(?:(?:[0-9a-f]{1,4})))?::))))
+ \] # an IPv6 address
+ )
+ (:[0-9]+)? # a port (optional)
+ (?:/ (?:[\pL\pN\-._\~!$&\'()*+,;=:@]|%%[0-9A-Fa-f]{2})* )* # a path
+ (?:\? (?:[\pL\pN\-._\~!$&\'\[\]()*+,;=:@/?]|%%[0-9A-Fa-f]{2})* )? # a query (optional)
+ (?:\# (?:[\pL\pN\-._\~!$&\'()*+,;=:@/?]|%%[0-9A-Fa-f]{2})* )? # a fragment (optional)
+ $~ixu';
+
+ $pattern = \sprintf($pattern, \implode('|', $protocols));
+
+ if (!\preg_match($pattern, $value)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" was expected to be a valid URL starting with http or https'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::INVALID_URL, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that value is alphanumeric.
+ *
+ * @param mixed $value
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function alnum($value, $message = null, string $propertyPath = null): bool
+ {
+ try {
+ static::regex($value, '(^([a-zA-Z]{1}[a-zA-Z0-9]*)$)', $message, $propertyPath);
+ } catch (Throwable $e) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" is not alphanumeric, starting with letters and containing only letters and numbers.'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::INVALID_ALNUM, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that the value is boolean True.
+ *
+ * @param mixed $value
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function true($value, $message = null, string $propertyPath = null): bool
+ {
+ if (true !== $value) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" is not TRUE.'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::INVALID_TRUE, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that the value is boolean False.
+ *
+ * @param mixed $value
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function false($value, $message = null, string $propertyPath = null): bool
+ {
+ if (false !== $value) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" is not FALSE.'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::INVALID_FALSE, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that the class exists.
+ *
+ * @param mixed $value
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function classExists($value, $message = null, string $propertyPath = null): bool
+ {
+ if (!\class_exists($value)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Class "%s" does not exist.'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::INVALID_CLASS, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that the interface exists.
+ *
+ * @param mixed $value
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function interfaceExists($value, $message = null, string $propertyPath = null): bool
+ {
+ if (!\interface_exists($value)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Interface "%s" does not exist.'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::INVALID_INTERFACE, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that the class implements the interface.
+ *
+ * @param mixed $class
+ * @param string $interfaceName
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function implementsInterface($class, $interfaceName, $message = null, string $propertyPath = null): bool
+ {
+ try {
+ $reflection = new ReflectionClass($class);
+ if (!$reflection->implementsInterface($interfaceName)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Class "%s" does not implement interface "%s".'),
+ static::stringify($class),
+ static::stringify($interfaceName)
+ );
+
+ throw static::createException($class, $message, static::INTERFACE_NOT_IMPLEMENTED, $propertyPath, ['interface' => $interfaceName]);
+ }
+ } catch (ReflectionException $e) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Class "%s" failed reflection.'),
+ static::stringify($class)
+ );
+ throw static::createException($class, $message, static::INTERFACE_NOT_IMPLEMENTED, $propertyPath, ['interface' => $interfaceName]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that the given string is a valid json string.
+ *
+ * NOTICE:
+ * Since this does a json_decode to determine its validity
+ * you probably should consider, when using the variable
+ * content afterwards, just to decode and check for yourself instead
+ * of using this assertion.
+ *
+ * @param mixed $value
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function isJsonString($value, $message = null, string $propertyPath = null): bool
+ {
+ if (null === \json_decode($value) && JSON_ERROR_NONE !== \json_last_error()) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" is not a valid JSON string.'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::INVALID_JSON_STRING, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that the given string is a valid UUID.
+ *
+ * Uses code from {@link https://github.com/ramsey/uuid} that is MIT licensed.
+ *
+ * @param string $value
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function uuid($value, $message = null, string $propertyPath = null): bool
+ {
+ $value = \str_replace(['urn:', 'uuid:', '{', '}'], '', $value);
+
+ if ('00000000-0000-0000-0000-000000000000' === $value) {
+ return true;
+ }
+
+ if (!\preg_match('/^[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}$/', $value)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" is not a valid UUID.'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::INVALID_UUID, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that the given string is a valid E164 Phone Number.
+ *
+ * @see https://en.wikipedia.org/wiki/E.164
+ *
+ * @param string $value
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function e164($value, $message = null, string $propertyPath = null): bool
+ {
+ if (!\preg_match('/^\+?[1-9]\d{1,14}$/', $value)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" is not a valid E164.'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::INVALID_E164, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that the count of countable is equal to count.
+ *
+ * @param array|Countable|ResourceBundle|SimpleXMLElement $countable
+ * @param int $count
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function count($countable, $count, $message = null, string $propertyPath = null): bool
+ {
+ if ($count !== \count($countable)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'List does not contain exactly %d elements (%d given).'),
+ static::stringify($count),
+ static::stringify(\count($countable))
+ );
+
+ throw static::createException($countable, $message, static::INVALID_COUNT, $propertyPath, ['count' => $count]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that the countable have at least $count elements.
+ *
+ * @param array|Countable|ResourceBundle|SimpleXMLElement $countable
+ * @param int $count
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function minCount($countable, $count, $message = null, string $propertyPath = null): bool
+ {
+ if ($count > \count($countable)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'List should have at least %d elements, but has %d elements.'),
+ static::stringify($count),
+ static::stringify(\count($countable))
+ );
+
+ throw static::createException($countable, $message, static::INVALID_MIN_COUNT, $propertyPath, ['count' => $count]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that the countable have at most $count elements.
+ *
+ * @param array|Countable|ResourceBundle|SimpleXMLElement $countable
+ * @param int $count
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function maxCount($countable, $count, $message = null, string $propertyPath = null): bool
+ {
+ if ($count < \count($countable)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'List should have at most %d elements, but has %d elements.'),
+ static::stringify($count),
+ static::stringify(\count($countable))
+ );
+
+ throw static::createException($countable, $message, static::INVALID_MAX_COUNT, $propertyPath, ['count' => $count]);
+ }
+
+ return true;
+ }
+
+ /**
+ * static call handler to implement:
+ * - "null or assertion" delegation
+ * - "all" delegation.
+ *
+ * @param string $method
+ * @param array $args
+ *
+ * @return bool|mixed
+ *
+ * @throws AssertionFailedException
+ */
+ public static function __callStatic($method, $args)
+ {
+ if (0 === \strpos($method, 'nullOr')) {
+ if (!\array_key_exists(0, $args)) {
+ throw new BadMethodCallException('Missing the first argument.');
+ }
+
+ if (null === $args[0]) {
+ return true;
+ }
+
+ $method = \substr($method, 6);
+
+ return \call_user_func_array([\get_called_class(), $method], $args);
+ }
+
+ if (0 === \strpos($method, 'all')) {
+ if (!\array_key_exists(0, $args)) {
+ throw new BadMethodCallException('Missing the first argument.');
+ }
+
+ static::isTraversable($args[0]);
+
+ $method = \substr($method, 3);
+ $values = \array_shift($args);
+ $calledClass = \get_called_class();
+
+ foreach ($values as $value) {
+ \call_user_func_array([$calledClass, $method], \array_merge([$value], $args));
+ }
+
+ return true;
+ }
+
+ throw new BadMethodCallException('No assertion Assertion#'.$method.' exists.');
+ }
+
+ /**
+ * Determines if the values array has every choice as key and that this choice has content.
+ *
+ * @param array $values
+ * @param array $choices
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function choicesNotEmpty(array $values, array $choices, $message = null, string $propertyPath = null): bool
+ {
+ static::notEmpty($values, $message, $propertyPath);
+
+ foreach ($choices as $choice) {
+ static::notEmptyKey($values, $choice, $message, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Determines that the named method is defined in the provided object.
+ *
+ * @param string $value
+ * @param mixed $object
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function methodExists($value, $object, $message = null, string $propertyPath = null): bool
+ {
+ static::isObject($object, $message, $propertyPath);
+
+ if (!\method_exists($object, $value)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Expected "%s" does not exist in provided object.'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::INVALID_METHOD, $propertyPath, ['object' => \get_class($object)]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Determines that the provided value is an object.
+ *
+ * @param mixed $value
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function isObject($value, $message = null, string $propertyPath = null): bool
+ {
+ if (!\is_object($value)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Provided "%s" is not a valid object.'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::INVALID_OBJECT, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Determines if the value is less than given limit.
+ *
+ * @param mixed $value
+ * @param mixed $limit
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function lessThan($value, $limit, $message = null, string $propertyPath = null): bool
+ {
+ if ($value >= $limit) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Provided "%s" is not less than "%s".'),
+ static::stringify($value),
+ static::stringify($limit)
+ );
+
+ throw static::createException($value, $message, static::INVALID_LESS, $propertyPath, ['limit' => $limit]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Determines if the value is less or equal than given limit.
+ *
+ * @param mixed $value
+ * @param mixed $limit
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function lessOrEqualThan($value, $limit, $message = null, string $propertyPath = null): bool
+ {
+ if ($value > $limit) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Provided "%s" is not less or equal than "%s".'),
+ static::stringify($value),
+ static::stringify($limit)
+ );
+
+ throw static::createException($value, $message, static::INVALID_LESS_OR_EQUAL, $propertyPath, ['limit' => $limit]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Determines if the value is greater than given limit.
+ *
+ * @param mixed $value
+ * @param mixed $limit
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function greaterThan($value, $limit, $message = null, string $propertyPath = null): bool
+ {
+ if ($value <= $limit) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Provided "%s" is not greater than "%s".'),
+ static::stringify($value),
+ static::stringify($limit)
+ );
+
+ throw static::createException($value, $message, static::INVALID_GREATER, $propertyPath, ['limit' => $limit]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Determines if the value is greater or equal than given limit.
+ *
+ * @param mixed $value
+ * @param mixed $limit
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function greaterOrEqualThan($value, $limit, $message = null, string $propertyPath = null): bool
+ {
+ if ($value < $limit) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Provided "%s" is not greater or equal than "%s".'),
+ static::stringify($value),
+ static::stringify($limit)
+ );
+
+ throw static::createException($value, $message, static::INVALID_GREATER_OR_EQUAL, $propertyPath, ['limit' => $limit]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that a value is greater or equal than a lower limit, and less than or equal to an upper limit.
+ *
+ * @param mixed $value
+ * @param mixed $lowerLimit
+ * @param mixed $upperLimit
+ * @param string|callable|null $message
+ * @param string $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function between($value, $lowerLimit, $upperLimit, $message = null, string $propertyPath = null): bool
+ {
+ if ($lowerLimit > $value || $value > $upperLimit) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Provided "%s" is neither greater than or equal to "%s" nor less than or equal to "%s".'),
+ static::stringify($value),
+ static::stringify($lowerLimit),
+ static::stringify($upperLimit)
+ );
+
+ throw static::createException($value, $message, static::INVALID_BETWEEN, $propertyPath, ['lower' => $lowerLimit, 'upper' => $upperLimit]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that a value is greater than a lower limit, and less than an upper limit.
+ *
+ * @param mixed $value
+ * @param mixed $lowerLimit
+ * @param mixed $upperLimit
+ * @param string|callable|null $message
+ * @param string $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function betweenExclusive($value, $lowerLimit, $upperLimit, $message = null, string $propertyPath = null): bool
+ {
+ if ($lowerLimit >= $value || $value >= $upperLimit) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Provided "%s" is neither greater than "%s" nor less than "%s".'),
+ static::stringify($value),
+ static::stringify($lowerLimit),
+ static::stringify($upperLimit)
+ );
+
+ throw static::createException($value, $message, static::INVALID_BETWEEN_EXCLUSIVE, $propertyPath, ['lower' => $lowerLimit, 'upper' => $upperLimit]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that extension is loaded.
+ *
+ * @param mixed $value
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function extensionLoaded($value, $message = null, string $propertyPath = null): bool
+ {
+ if (!\extension_loaded($value)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Extension "%s" is required.'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::INVALID_EXTENSION, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that date is valid and corresponds to the given format.
+ *
+ * @param string $value
+ * @param string $format supports all of the options date(), except for the following:
+ * N, w, W, t, L, o, B, a, A, g, h, I, O, P, Z, c, r
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ *
+ * @see http://php.net/manual/function.date.php#refsect1-function.date-parameters
+ */
+ public static function date($value, $format, $message = null, string $propertyPath = null): bool
+ {
+ static::string($value, $message, $propertyPath);
+ static::string($format, $message, $propertyPath);
+
+ $dateTime = DateTime::createFromFormat('!'.$format, $value);
+
+ if (false === $dateTime || $value !== $dateTime->format($format)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Date "%s" is invalid or does not match format "%s".'),
+ static::stringify($value),
+ static::stringify($format)
+ );
+
+ throw static::createException($value, $message, static::INVALID_DATE, $propertyPath, ['format' => $format]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that the value is an object, or a class that exists.
+ *
+ * @param mixed $value
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function objectOrClass($value, $message = null, string $propertyPath = null): bool
+ {
+ if (!\is_object($value)) {
+ static::classExists($value, $message, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that the value is an object or class, and that the property exists.
+ *
+ * @param mixed $value
+ * @param string $property
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function propertyExists($value, $property, $message = null, string $propertyPath = null): bool
+ {
+ static::objectOrClass($value);
+
+ if (!\property_exists($value, $property)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Class "%s" does not have property "%s".'),
+ static::stringify($value),
+ static::stringify($property)
+ );
+
+ throw static::createException($value, $message, static::INVALID_PROPERTY, $propertyPath, ['property' => $property]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that the value is an object or class, and that the properties all exist.
+ *
+ * @param mixed $value
+ * @param array $properties
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function propertiesExist($value, array $properties, $message = null, string $propertyPath = null): bool
+ {
+ static::objectOrClass($value);
+ static::allString($properties, $message, $propertyPath);
+
+ $invalidProperties = [];
+ foreach ($properties as $property) {
+ if (!\property_exists($value, $property)) {
+ $invalidProperties[] = $property;
+ }
+ }
+
+ if ($invalidProperties) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Class "%s" does not have these properties: %s.'),
+ static::stringify($value),
+ static::stringify(\implode(', ', $invalidProperties))
+ );
+
+ throw static::createException($value, $message, static::INVALID_PROPERTY, $propertyPath, ['properties' => $properties]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert comparison of two versions.
+ *
+ * @param string $version1
+ * @param string $operator
+ * @param string $version2
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function version($version1, $operator, $version2, $message = null, string $propertyPath = null): bool
+ {
+ static::notEmpty($operator, 'versionCompare operator is required and cannot be empty.');
+
+ if (true !== \version_compare($version1, $version2, $operator)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Version "%s" is not "%s" version "%s".'),
+ static::stringify($version1),
+ static::stringify($operator),
+ static::stringify($version2)
+ );
+
+ throw static::createException($version1, $message, static::INVALID_VERSION, $propertyPath, ['operator' => $operator, 'version' => $version2]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert on PHP version.
+ *
+ * @param string $operator
+ * @param mixed $version
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function phpVersion($operator, $version, $message = null, string $propertyPath = null): bool
+ {
+ static::defined('PHP_VERSION');
+
+ return static::version(PHP_VERSION, $operator, $version, $message, $propertyPath);
+ }
+
+ /**
+ * Assert that extension is loaded and a specific version is installed.
+ *
+ * @param string $extension
+ * @param string $operator
+ * @param mixed $version
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function extensionVersion($extension, $operator, $version, $message = null, string $propertyPath = null): bool
+ {
+ static::extensionLoaded($extension, $message, $propertyPath);
+
+ return static::version(\phpversion($extension), $operator, $version, $message, $propertyPath);
+ }
+
+ /**
+ * Determines that the provided value is callable.
+ *
+ * @param mixed $value
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function isCallable($value, $message = null, string $propertyPath = null): bool
+ {
+ if (!\is_callable($value)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Provided "%s" is not a callable.'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::INVALID_CALLABLE, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that the provided value is valid according to a callback.
+ *
+ * If the callback returns `false` the assertion will fail.
+ *
+ * @param mixed $value
+ * @param callable $callback
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function satisfy($value, $callback, $message = null, string $propertyPath = null): bool
+ {
+ static::isCallable($callback);
+
+ if (false === \call_user_func($callback, $value)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Provided "%s" is invalid according to custom rule.'),
+ static::stringify($value)
+ );
+
+ throw static::createException($value, $message, static::INVALID_SATISFY, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that value is an IPv4 or IPv6 address
+ * (using input_filter/FILTER_VALIDATE_IP).
+ *
+ * @param string $value
+ * @param int|null $flag
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ *
+ * @see http://php.net/manual/filter.filters.flags.php
+ */
+ public static function ip($value, $flag = null, $message = null, string $propertyPath = null): bool
+ {
+ static::string($value, $message, $propertyPath);
+ if (!\filter_var($value, FILTER_VALIDATE_IP, $flag)) {
+ $message = \sprintf(
+ static::generateMessage($message ?: 'Value "%s" was expected to be a valid IP address.'),
+ static::stringify($value)
+ );
+ throw static::createException($value, $message, static::INVALID_IP, $propertyPath, ['flag' => $flag]);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that value is an IPv4 address
+ * (using input_filter/FILTER_VALIDATE_IP).
+ *
+ * @param string $value
+ * @param int|null $flag
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ *
+ * @see http://php.net/manual/filter.filters.flags.php
+ */
+ public static function ipv4($value, $flag = null, $message = null, string $propertyPath = null): bool
+ {
+ static::ip($value, $flag | FILTER_FLAG_IPV4, static::generateMessage($message ?: 'Value "%s" was expected to be a valid IPv4 address.'), $propertyPath);
+
+ return true;
+ }
+
+ /**
+ * Assert that value is an IPv6 address
+ * (using input_filter/FILTER_VALIDATE_IP).
+ *
+ * @param string $value
+ * @param int|null $flag
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ *
+ * @see http://php.net/manual/filter.filters.flags.php
+ */
+ public static function ipv6($value, $flag = null, $message = null, string $propertyPath = null): bool
+ {
+ static::ip($value, $flag | FILTER_FLAG_IPV6, static::generateMessage($message ?: 'Value "%s" was expected to be a valid IPv6 address.'), $propertyPath);
+
+ return true;
+ }
+
+ /**
+ * Assert that a constant is defined.
+ *
+ * @param mixed $constant
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ */
+ public static function defined($constant, $message = null, string $propertyPath = null): bool
+ {
+ if (!\defined($constant)) {
+ $message = \sprintf(static::generateMessage($message ?: 'Value "%s" expected to be a defined constant.'), $constant);
+
+ throw static::createException($constant, $message, static::INVALID_CONSTANT, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Assert that a constant is defined.
+ *
+ * @param string $value
+ * @param string|callable|null $message
+ * @param string|null $propertyPath
+ *
+ * @return bool
+ *
+ * @throws AssertionFailedException
+ */
+ public static function base64($value, $message = null, string $propertyPath = null): bool
+ {
+ if (false === \base64_decode($value, true)) {
+ $message = \sprintf(static::generateMessage($message ?: 'Value "%s" is not a valid base64 string.'), $value);
+
+ throw static::createException($value, $message, static::INVALID_BASE64, $propertyPath);
+ }
+
+ return true;
+ }
+
+ /**
+ * Helper method that handles building the assertion failure exceptions.
+ * They are returned from this method so that the stack trace still shows
+ * the assertions method.
+ *
+ * @param mixed $value
+ * @param string|callable|null $message
+ * @param int $code
+ * @param string|null $propertyPath
+ * @param array $constraints
+ *
+ * @return mixed
+ */
+ protected static function createException($value, $message, $code, $propertyPath = null, array $constraints = [])
+ {
+ $exceptionClass = static::$exceptionClass;
+
+ return new $exceptionClass($message, $code, $propertyPath, $value, $constraints);
+ }
+
+ /**
+ * Make a string version of a value.
+ *
+ * @param mixed $value
+ *
+ * @return string
+ */
+ protected static function stringify($value): string
+ {
+ $result = \gettype($value);
+
+ if (\is_bool($value)) {
+ $result = $value ? '<TRUE>' : '<FALSE>';
+ } elseif (\is_scalar($value)) {
+ $val = (string)$value;
+
+ if (\mb_strlen($val) > 100) {
+ $val = \mb_substr($val, 0, 97).'...';
+ }
+
+ $result = $val;
+ } elseif (\is_array($value)) {
+ $result = '<ARRAY>';
+ } elseif (\is_object($value)) {
+ $result = \get_class($value);
+ } elseif (\is_resource($value)) {
+ $result = \get_resource_type($value);
+ } elseif (null === $value) {
+ $result = '<NULL>';
+ }
+
+ return $result;
+ }
+
+ /**
+ * Generate the message.
+ *
+ * @param string|callable|null $message
+ *
+ * @return string
+ */
+ protected static function generateMessage($message): string
+ {
+ if (\is_callable($message)) {
+ $traces = \debug_backtrace(0);
+
+ $parameters = [];
+
+ try {
+ $reflection = new ReflectionClass($traces[1]['class']);
+ $method = $reflection->getMethod($traces[1]['function']);
+ foreach ($method->getParameters() as $index => $parameter) {
+ if ('message' !== $parameter->getName()) {
+ $parameters[$parameter->getName()] = \array_key_exists($index, $traces[1]['args'])
+ ? $traces[1]['args'][$index]
+ : $parameter->getDefaultValue();
+ }
+ }
+
+ $parameters['::assertion'] = \sprintf('%s%s%s', $traces[1]['class'], $traces[1]['type'], $traces[1]['function']);
+
+ $message = \call_user_func_array($message, [$parameters]);
+ } // @codeCoverageIgnoreStart
+ catch (Throwable $exception) {
+ $message = \sprintf('Unable to generate message : %s', $exception->getMessage());
+ } // @codeCoverageIgnoreEnd
+ }
+
+ return (string)$message;
+ }
+}
diff --git a/vendor/beberlei/assert/lib/Assert/AssertionChain.php b/vendor/beberlei/assert/lib/Assert/AssertionChain.php
new file mode 100644
index 000000000..dbb6e839b
--- /dev/null
+++ b/vendor/beberlei/assert/lib/Assert/AssertionChain.php
@@ -0,0 +1,254 @@
+<?php
+
+/**
+ * Assert
+ *
+ * LICENSE
+ *
+ * This source file is subject to the MIT license that is bundled
+ * with this package in the file LICENSE.txt.
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to [email protected] so I can send you a copy immediately.
+ */
+
+namespace Assert;
+
+use LogicException;
+use ReflectionClass;
+
+/**
+ * Chaining builder for assertions.
+ *
+ * @author Benjamin Eberlei <[email protected]>
+ *
+ * @method AssertionChain alnum(string|callable $message = null, string $propertyPath = null) Assert that value is alphanumeric.
+ * @method AssertionChain base64(string|callable $message = null, string $propertyPath = null) Assert that a constant is defined.
+ * @method AssertionChain between(mixed $lowerLimit, mixed $upperLimit, string|callable $message = null, string $propertyPath = null) Assert that a value is greater or equal than a lower limit, and less than or equal to an upper limit.
+ * @method AssertionChain betweenExclusive(mixed $lowerLimit, mixed $upperLimit, string|callable $message = null, string $propertyPath = null) Assert that a value is greater than a lower limit, and less than an upper limit.
+ * @method AssertionChain betweenLength(int $minLength, int $maxLength, string|callable $message = null, string $propertyPath = null, string $encoding = 'utf8') Assert that string length is between min and max lengths.
+ * @method AssertionChain boolean(string|callable $message = null, string $propertyPath = null) Assert that value is php boolean.
+ * @method AssertionChain choice(array $choices, string|callable $message = null, string $propertyPath = null) Assert that value is in array of choices.
+ * @method AssertionChain choicesNotEmpty(array $choices, string|callable $message = null, string $propertyPath = null) Determines if the values array has every choice as key and that this choice has content.
+ * @method AssertionChain classExists(string|callable $message = null, string $propertyPath = null) Assert that the class exists.
+ * @method AssertionChain contains(string $needle, string|callable $message = null, string $propertyPath = null, string $encoding = 'utf8') Assert that string contains a sequence of chars.
+ * @method AssertionChain count(int $count, string|callable $message = null, string $propertyPath = null) Assert that the count of countable is equal to count.
+ * @method AssertionChain date(string $format, string|callable $message = null, string $propertyPath = null) Assert that date is valid and corresponds to the given format.
+ * @method AssertionChain defined(string|callable $message = null, string $propertyPath = null) Assert that a constant is defined.
+ * @method AssertionChain digit(string|callable $message = null, string $propertyPath = null) Validates if an integer or integerish is a digit.
+ * @method AssertionChain directory(string|callable $message = null, string $propertyPath = null) Assert that a directory exists.
+ * @method AssertionChain e164(string|callable $message = null, string $propertyPath = null) Assert that the given string is a valid E164 Phone Number.
+ * @method AssertionChain email(string|callable $message = null, string $propertyPath = null) Assert that value is an email address (using input_filter/FILTER_VALIDATE_EMAIL).
+ * @method AssertionChain endsWith(string $needle, string|callable $message = null, string $propertyPath = null, string $encoding = 'utf8') Assert that string ends with a sequence of chars.
+ * @method AssertionChain eq(mixed $value2, string|callable $message = null, string $propertyPath = null) Assert that two values are equal (using ==).
+ * @method AssertionChain eqArraySubset(mixed $value2, string|callable $message = null, string $propertyPath = null) Assert that the array contains the subset.
+ * @method AssertionChain extensionLoaded(string|callable $message = null, string $propertyPath = null) Assert that extension is loaded.
+ * @method AssertionChain extensionVersion(string $operator, mixed $version, string|callable $message = null, string $propertyPath = null) Assert that extension is loaded and a specific version is installed.
+ * @method AssertionChain false(string|callable $message = null, string $propertyPath = null) Assert that the value is boolean False.
+ * @method AssertionChain file(string|callable $message = null, string $propertyPath = null) Assert that a file exists.
+ * @method AssertionChain float(string|callable $message = null, string $propertyPath = null) Assert that value is a php float.
+ * @method AssertionChain greaterOrEqualThan(mixed $limit, string|callable $message = null, string $propertyPath = null) Determines if the value is greater or equal than given limit.
+ * @method AssertionChain greaterThan(mixed $limit, string|callable $message = null, string $propertyPath = null) Determines if the value is greater than given limit.
+ * @method AssertionChain implementsInterface(string $interfaceName, string|callable $message = null, string $propertyPath = null) Assert that the class implements the interface.
+ * @method AssertionChain inArray(array $choices, string|callable $message = null, string $propertyPath = null) Assert that value is in array of choices. This is an alias of Assertion::choice().
+ * @method AssertionChain integer(string|callable $message = null, string $propertyPath = null) Assert that value is a php integer.
+ * @method AssertionChain integerish(string|callable $message = null, string $propertyPath = null) Assert that value is a php integer'ish.
+ * @method AssertionChain interfaceExists(string|callable $message = null, string $propertyPath = null) Assert that the interface exists.
+ * @method AssertionChain ip(int $flag = null, string|callable $message = null, string $propertyPath = null) Assert that value is an IPv4 or IPv6 address.
+ * @method AssertionChain ipv4(int $flag = null, string|callable $message = null, string $propertyPath = null) Assert that value is an IPv4 address.
+ * @method AssertionChain ipv6(int $flag = null, string|callable $message = null, string $propertyPath = null) Assert that value is an IPv6 address.
+ * @method AssertionChain isArray(string|callable $message = null, string $propertyPath = null) Assert that value is an array.
+ * @method AssertionChain isArrayAccessible(string|callable $message = null, string $propertyPath = null) Assert that value is an array or an array-accessible object.
+ * @method AssertionChain isCallable(string|callable $message = null, string $propertyPath = null) Determines that the provided value is callable.
+ * @method AssertionChain isCountable(string|callable $message = null, string $propertyPath = null) Assert that value is countable.
+ * @method AssertionChain isInstanceOf(string $className, string|callable $message = null, string $propertyPath = null) Assert that value is instance of given class-name.
+ * @method AssertionChain isJsonString(string|callable $message = null, string $propertyPath = null) Assert that the given string is a valid json string.
+ * @method AssertionChain isObject(string|callable $message = null, string $propertyPath = null) Determines that the provided value is an object.
+ * @method AssertionChain isResource(string|callable $message = null, string $propertyPath = null) Assert that value is a resource.
+ * @method AssertionChain isTraversable(string|callable $message = null, string $propertyPath = null) Assert that value is an array or a traversable object.
+ * @method AssertionChain keyExists(string|int $key, string|callable $message = null, string $propertyPath = null) Assert that key exists in an array.
+ * @method AssertionChain keyIsset(string|int $key, string|callable $message = null, string $propertyPath = null) Assert that key exists in an array/array-accessible object using isset().
+ * @method AssertionChain keyNotExists(string|int $key, string|callable $message = null, string $propertyPath = null) Assert that key does not exist in an array.
+ * @method AssertionChain length(int $length, string|callable $message = null, string $propertyPath = null, string $encoding = 'utf8') Assert that string has a given length.
+ * @method AssertionChain lessOrEqualThan(mixed $limit, string|callable $message = null, string $propertyPath = null) Determines if the value is less or equal than given limit.
+ * @method AssertionChain lessThan(mixed $limit, string|callable $message = null, string $propertyPath = null) Determines if the value is less than given limit.
+ * @method AssertionChain max(mixed $maxValue, string|callable $message = null, string $propertyPath = null) Assert that a number is smaller as a given limit.
+ * @method AssertionChain maxCount(int $count, string|callable $message = null, string $propertyPath = null) Assert that the countable have at most $count elements.
+ * @method AssertionChain maxLength(int $maxLength, string|callable $message = null, string $propertyPath = null, string $encoding = 'utf8') Assert that string value is not longer than $maxLength chars.
+ * @method AssertionChain methodExists(mixed $object, string|callable $message = null, string $propertyPath = null) Determines that the named method is defined in the provided object.
+ * @method AssertionChain min(mixed $minValue, string|callable $message = null, string $propertyPath = null) Assert that a value is at least as big as a given limit.
+ * @method AssertionChain minCount(int $count, string|callable $message = null, string $propertyPath = null) Assert that the countable have at least $count elements.
+ * @method AssertionChain minLength(int $minLength, string|callable $message = null, string $propertyPath = null, string $encoding = 'utf8') Assert that a string is at least $minLength chars long.
+ * @method AssertionChain noContent(string|callable $message = null, string $propertyPath = null) Assert that value is empty.
+ * @method AssertionChain notBlank(string|callable $message = null, string $propertyPath = null) Assert that value is not blank.
+ * @method AssertionChain notContains(string $needle, string|callable $message = null, string $propertyPath = null, string $encoding = 'utf8') Assert that string does not contains a sequence of chars.
+ * @method AssertionChain notEmpty(string|callable $message = null, string $propertyPath = null) Assert that value is not empty.
+ * @method AssertionChain notEmptyKey(string|int $key, string|callable $message = null, string $propertyPath = null) Assert that key exists in an array/array-accessible object and its value is not empty.
+ * @method AssertionChain notEq(mixed $value2, string|callable $message = null, string $propertyPath = null) Assert that two values are not equal (using ==).
+ * @method AssertionChain notInArray(array $choices, string|callable $message = null, string $propertyPath = null) Assert that value is not in array of choices.
+ * @method AssertionChain notIsInstanceOf(string $className, string|callable $message = null, string $propertyPath = null) Assert that value is not instance of given class-name.
+ * @method AssertionChain notNull(string|callable $message = null, string $propertyPath = null) Assert that value is not null.
+ * @method AssertionChain notRegex(string $pattern, string|callable $message = null, string $propertyPath = null) Assert that value does not match a regex.
+ * @method AssertionChain notSame(mixed $value2, string|callable $message = null, string $propertyPath = null) Assert that two values are not the same (using ===).
+ * @method AssertionChain null(string|callable $message = null, string $propertyPath = null) Assert that value is null.
+ * @method AssertionChain numeric(string|callable $message = null, string $propertyPath = null) Assert that value is numeric.
+ * @method AssertionChain objectOrClass(string|callable $message = null, string $propertyPath = null) Assert that the value is an object, or a class that exists.
+ * @method AssertionChain phpVersion(mixed $version, string|callable $message = null, string $propertyPath = null) Assert on PHP version.
+ * @method AssertionChain propertiesExist(array $properties, string|callable $message = null, string $propertyPath = null) Assert that the value is an object or class, and that the properties all exist.
+ * @method AssertionChain propertyExists(string $property, string|callable $message = null, string $propertyPath = null) Assert that the value is an object or class, and that the property exists.
+ * @method AssertionChain range(mixed $minValue, mixed $maxValue, string|callable $message = null, string $propertyPath = null) Assert that value is in range of numbers.
+ * @method AssertionChain readable(string|callable $message = null, string $propertyPath = null) Assert that the value is something readable.
+ * @method AssertionChain regex(string $pattern, string|callable $message = null, string $propertyPath = null) Assert that value matches a regex.
+ * @method AssertionChain same(mixed $value2, string|callable $message = null, string $propertyPath = null) Assert that two values are the same (using ===).
+ * @method AssertionChain satisfy(callable $callback, string|callable $message = null, string $propertyPath = null) Assert that the provided value is valid according to a callback.
+ * @method AssertionChain scalar(string|callable $message = null, string $propertyPath = null) Assert that value is a PHP scalar.
+ * @method AssertionChain startsWith(string $needle, string|callable $message = null, string $propertyPath = null, string $encoding = 'utf8') Assert that string starts with a sequence of chars.
+ * @method AssertionChain string(string|callable $message = null, string $propertyPath = null) Assert that value is a string.
+ * @method AssertionChain subclassOf(string $className, string|callable $message = null, string $propertyPath = null) Assert that value is subclass of given class-name.
+ * @method AssertionChain true(string|callable $message = null, string $propertyPath = null) Assert that the value is boolean True.
+ * @method AssertionChain url(string|callable $message = null, string $propertyPath = null) Assert that value is an URL.
+ * @method AssertionChain uuid(string|callable $message = null, string $propertyPath = null) Assert that the given string is a valid UUID.
+ * @method AssertionChain version(string $operator, string $version2, string|callable $message = null, string $propertyPath = null) Assert comparison of two versions.
+ * @method AssertionChain writeable(string|callable $message = null, string $propertyPath = null) Assert that the value is something writeable.
+ */
+class AssertionChain
+{
+ /**
+ * @var mixed
+ */
+ private $value;
+
+ /**
+ * @var string|callable|null
+ */
+ private $defaultMessage;
+
+ /**
+ * @var string|null
+ */
+ private $defaultPropertyPath;
+
+ /**
+ * Return each assertion as always valid.
+ *
+ * @var bool
+ */
+ private $alwaysValid = false;
+
+ /**
+ * Perform assertion on every element of array or traversable.
+ *
+ * @var bool
+ */
+ private $all = false;
+
+ /** @var string|Assertion Class to use for assertion calls */
+ private $assertionClassName = 'Assert\Assertion';
+
+ /**
+ * AssertionChain constructor.
+ *
+ * @param mixed $value
+ * @param string|callable|null $defaultMessage
+ * @param string|null $defaultPropertyPath
+ */
+ public function __construct($value, $defaultMessage = null, string $defaultPropertyPath = null)
+ {
+ $this->value = $value;
+ $this->defaultMessage = $defaultMessage;
+ $this->defaultPropertyPath = $defaultPropertyPath;
+ }
+
+ /**
+ * Call assertion on the current value in the chain.
+ *
+ * @param string $methodName
+ * @param array $args
+ *
+ * @return AssertionChain
+ */
+ public function __call($methodName, $args): AssertionChain
+ {
+ if (true === $this->alwaysValid) {
+ return $this;
+ }
+
+ if (!\method_exists($this->assertionClassName, $methodName)) {
+ throw new \RuntimeException("Assertion '".$methodName."' does not exist.");
+ }
+
+ $reflClass = new ReflectionClass($this->assertionClassName);
+ $method = $reflClass->getMethod($methodName);
+
+ \array_unshift($args, $this->value);
+ $params = $method->getParameters();
+
+ foreach ($params as $idx => $param) {
+ if (isset($args[$idx])) {
+ continue;
+ }
+
+ if ('message' == $param->getName()) {
+ $args[$idx] = $this->defaultMessage;
+ }
+
+ if ('propertyPath' == $param->getName()) {
+ $args[$idx] = $this->defaultPropertyPath;
+ }
+ }
+
+ if ($this->all) {
+ $methodName = 'all'.$methodName;
+ }
+
+ \call_user_func_array([$this->assertionClassName, $methodName], $args);
+
+ return $this;
+ }
+
+ /**
+ * Switch chain into validation mode for an array of values.
+ *
+ * @return AssertionChain
+ */
+ public function all(): AssertionChain
+ {
+ $this->all = true;
+
+ return $this;
+ }
+
+ /**
+ * Switch chain into mode allowing nulls, ignoring further assertions.
+ *
+ * @return AssertionChain
+ */
+ public function nullOr(): AssertionChain
+ {
+ if (null === $this->value) {
+ $this->alwaysValid = true;
+ }
+
+ return $this;
+ }
+
+ /**
+ * @param string $className
+ *
+ * @return $this
+ */
+ public function setAssertionClassName($className): AssertionChain
+ {
+ if (!\is_string($className)) {
+ throw new LogicException('Exception class name must be passed as a string');
+ }
+
+ if (Assertion::class !== $className && !\is_subclass_of($className, Assertion::class)) {
+ throw new LogicException($className.' is not (a subclass of) '.Assertion::class);
+ }
+
+ $this->assertionClassName = $className;
+
+ return $this;
+ }
+}
diff --git a/vendor/beberlei/assert/lib/Assert/AssertionFailedException.php b/vendor/beberlei/assert/lib/Assert/AssertionFailedException.php
new file mode 100644
index 000000000..c18483884
--- /dev/null
+++ b/vendor/beberlei/assert/lib/Assert/AssertionFailedException.php
@@ -0,0 +1,35 @@
+<?php
+
+/**
+ * Assert
+ *
+ * LICENSE
+ *
+ * This source file is subject to the MIT license that is bundled
+ * with this package in the file LICENSE.txt.
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to [email protected] so I can send you a copy immediately.
+ */
+
+namespace Assert;
+
+use Throwable;
+
+interface AssertionFailedException extends Throwable
+{
+ /**
+ * @return string|null
+ */
+ public function getPropertyPath();
+
+ /**
+ * @return mixed
+ */
+ public function getValue();
+
+ /**
+ * @return array
+ */
+ public function getConstraints(): array;
+}
diff --git a/vendor/beberlei/assert/lib/Assert/InvalidArgumentException.php b/vendor/beberlei/assert/lib/Assert/InvalidArgumentException.php
new file mode 100644
index 000000000..acd966544
--- /dev/null
+++ b/vendor/beberlei/assert/lib/Assert/InvalidArgumentException.php
@@ -0,0 +1,76 @@
+<?php
+
+/**
+ * Assert
+ *
+ * LICENSE
+ *
+ * This source file is subject to the MIT license that is bundled
+ * with this package in the file LICENSE.txt.
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to [email protected] so I can send you a copy immediately.
+ */
+
+namespace Assert;
+
+class InvalidArgumentException extends \InvalidArgumentException implements AssertionFailedException
+{
+ /**
+ * @var string|null
+ */
+ private $propertyPath;
+
+ /**
+ * @var mixed
+ */
+ private $value;
+
+ /**
+ * @var array
+ */
+ private $constraints;
+
+ public function __construct($message, $code, string $propertyPath = null, $value = null, array $constraints = [])
+ {
+ parent::__construct($message, $code);
+
+ $this->propertyPath = $propertyPath;
+ $this->value = $value;
+ $this->constraints = $constraints;
+ }
+
+ /**
+ * User controlled way to define a sub-property causing
+ * the failure of a currently asserted objects.
+ *
+ * Useful to transport information about the nature of the error
+ * back to higher layers.
+ *
+ * @return string|null
+ */
+ public function getPropertyPath()
+ {
+ return $this->propertyPath;
+ }
+
+ /**
+ * Get the value that caused the assertion to fail.
+ *
+ * @return mixed
+ */
+ public function getValue()
+ {
+ return $this->value;
+ }
+
+ /**
+ * Get the constraints that applied to the failed assertion.
+ *
+ * @return array
+ */
+ public function getConstraints(): array
+ {
+ return $this->constraints;
+ }
+}
diff --git a/vendor/beberlei/assert/lib/Assert/LazyAssertion.php b/vendor/beberlei/assert/lib/Assert/LazyAssertion.php
new file mode 100644
index 000000000..6ccd64236
--- /dev/null
+++ b/vendor/beberlei/assert/lib/Assert/LazyAssertion.php
@@ -0,0 +1,230 @@
+<?php
+
+/**
+ * Assert
+ *
+ * LICENSE
+ *
+ * This source file is subject to the MIT license that is bundled
+ * with this package in the file LICENSE.txt.
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to [email protected] so I can send you a copy immediately.
+ */
+
+namespace Assert;
+
+use LogicException;
+
+/**
+ * Chaining builder for lazy assertions.
+ *
+ * @author Benjamin Eberlei <[email protected]>
+ *
+ * @method LazyAssertion alnum(string|callable $message = null, string $propertyPath = null) Assert that value is alphanumeric.
+ * @method LazyAssertion base64(string|callable $message = null, string $propertyPath = null) Assert that a constant is defined.
+ * @method LazyAssertion between(mixed $lowerLimit, mixed $upperLimit, string|callable $message = null, string $propertyPath = null) Assert that a value is greater or equal than a lower limit, and less than or equal to an upper limit.
+ * @method LazyAssertion betweenExclusive(mixed $lowerLimit, mixed $upperLimit, string|callable $message = null, string $propertyPath = null) Assert that a value is greater than a lower limit, and less than an upper limit.
+ * @method LazyAssertion betweenLength(int $minLength, int $maxLength, string|callable $message = null, string $propertyPath = null, string $encoding = 'utf8') Assert that string length is between min and max lengths.
+ * @method LazyAssertion boolean(string|callable $message = null, string $propertyPath = null) Assert that value is php boolean.
+ * @method LazyAssertion choice(array $choices, string|callable $message = null, string $propertyPath = null) Assert that value is in array of choices.
+ * @method LazyAssertion choicesNotEmpty(array $choices, string|callable $message = null, string $propertyPath = null) Determines if the values array has every choice as key and that this choice has content.
+ * @method LazyAssertion classExists(string|callable $message = null, string $propertyPath = null) Assert that the class exists.
+ * @method LazyAssertion contains(string $needle, string|callable $message = null, string $propertyPath = null, string $encoding = 'utf8') Assert that string contains a sequence of chars.
+ * @method LazyAssertion count(int $count, string|callable $message = null, string $propertyPath = null) Assert that the count of countable is equal to count.
+ * @method LazyAssertion date(string $format, string|callable $message = null, string $propertyPath = null) Assert that date is valid and corresponds to the given format.
+ * @method LazyAssertion defined(string|callable $message = null, string $propertyPath = null) Assert that a constant is defined.
+ * @method LazyAssertion digit(string|callable $message = null, string $propertyPath = null) Validates if an integer or integerish is a digit.
+ * @method LazyAssertion directory(string|callable $message = null, string $propertyPath = null) Assert that a directory exists.
+ * @method LazyAssertion e164(string|callable $message = null, string $propertyPath = null) Assert that the given string is a valid E164 Phone Number.
+ * @method LazyAssertion email(string|callable $message = null, string $propertyPath = null) Assert that value is an email address (using input_filter/FILTER_VALIDATE_EMAIL).
+ * @method LazyAssertion endsWith(string $needle, string|callable $message = null, string $propertyPath = null, string $encoding = 'utf8') Assert that string ends with a sequence of chars.
+ * @method LazyAssertion eq(mixed $value2, string|callable $message = null, string $propertyPath = null) Assert that two values are equal (using ==).
+ * @method LazyAssertion eqArraySubset(mixed $value2, string|callable $message = null, string $propertyPath = null) Assert that the array contains the subset.
+ * @method LazyAssertion extensionLoaded(string|callable $message = null, string $propertyPath = null) Assert that extension is loaded.
+ * @method LazyAssertion extensionVersion(string $operator, mixed $version, string|callable $message = null, string $propertyPath = null) Assert that extension is loaded and a specific version is installed.
+ * @method LazyAssertion false(string|callable $message = null, string $propertyPath = null) Assert that the value is boolean False.
+ * @method LazyAssertion file(string|callable $message = null, string $propertyPath = null) Assert that a file exists.
+ * @method LazyAssertion float(string|callable $message = null, string $propertyPath = null) Assert that value is a php float.
+ * @method LazyAssertion greaterOrEqualThan(mixed $limit, string|callable $message = null, string $propertyPath = null) Determines if the value is greater or equal than given limit.
+ * @method LazyAssertion greaterThan(mixed $limit, string|callable $message = null, string $propertyPath = null) Determines if the value is greater than given limit.
+ * @method LazyAssertion implementsInterface(string $interfaceName, string|callable $message = null, string $propertyPath = null) Assert that the class implements the interface.
+ * @method LazyAssertion inArray(array $choices, string|callable $message = null, string $propertyPath = null) Assert that value is in array of choices. This is an alias of Assertion::choice().
+ * @method LazyAssertion integer(string|callable $message = null, string $propertyPath = null) Assert that value is a php integer.
+ * @method LazyAssertion integerish(string|callable $message = null, string $propertyPath = null) Assert that value is a php integer'ish.
+ * @method LazyAssertion interfaceExists(string|callable $message = null, string $propertyPath = null) Assert that the interface exists.
+ * @method LazyAssertion ip(int $flag = null, string|callable $message = null, string $propertyPath = null) Assert that value is an IPv4 or IPv6 address.
+ * @method LazyAssertion ipv4(int $flag = null, string|callable $message = null, string $propertyPath = null) Assert that value is an IPv4 address.
+ * @method LazyAssertion ipv6(int $flag = null, string|callable $message = null, string $propertyPath = null) Assert that value is an IPv6 address.
+ * @method LazyAssertion isArray(string|callable $message = null, string $propertyPath = null) Assert that value is an array.
+ * @method LazyAssertion isArrayAccessible(string|callable $message = null, string $propertyPath = null) Assert that value is an array or an array-accessible object.
+ * @method LazyAssertion isCallable(string|callable $message = null, string $propertyPath = null) Determines that the provided value is callable.
+ * @method LazyAssertion isCountable(string|callable $message = null, string $propertyPath = null) Assert that value is countable.
+ * @method LazyAssertion isInstanceOf(string $className, string|callable $message = null, string $propertyPath = null) Assert that value is instance of given class-name.
+ * @method LazyAssertion isJsonString(string|callable $message = null, string $propertyPath = null) Assert that the given string is a valid json string.
+ * @method LazyAssertion isObject(string|callable $message = null, string $propertyPath = null) Determines that the provided value is an object.
+ * @method LazyAssertion isResource(string|callable $message = null, string $propertyPath = null) Assert that value is a resource.
+ * @method LazyAssertion isTraversable(string|callable $message = null, string $propertyPath = null) Assert that value is an array or a traversable object.
+ * @method LazyAssertion keyExists(string|int $key, string|callable $message = null, string $propertyPath = null) Assert that key exists in an array.
+ * @method LazyAssertion keyIsset(string|int $key, string|callable $message = null, string $propertyPath = null) Assert that key exists in an array/array-accessible object using isset().
+ * @method LazyAssertion keyNotExists(string|int $key, string|callable $message = null, string $propertyPath = null) Assert that key does not exist in an array.
+ * @method LazyAssertion length(int $length, string|callable $message = null, string $propertyPath = null, string $encoding = 'utf8') Assert that string has a given length.
+ * @method LazyAssertion lessOrEqualThan(mixed $limit, string|callable $message = null, string $propertyPath = null) Determines if the value is less or equal than given limit.
+ * @method LazyAssertion lessThan(mixed $limit, string|callable $message = null, string $propertyPath = null) Determines if the value is less than given limit.
+ * @method LazyAssertion max(mixed $maxValue, string|callable $message = null, string $propertyPath = null) Assert that a number is smaller as a given limit.
+ * @method LazyAssertion maxCount(int $count, string|callable $message = null, string $propertyPath = null) Assert that the countable have at most $count elements.
+ * @method LazyAssertion maxLength(int $maxLength, string|callable $message = null, string $propertyPath = null, string $encoding = 'utf8') Assert that string value is not longer than $maxLength chars.
+ * @method LazyAssertion methodExists(mixed $object, string|callable $message = null, string $propertyPath = null) Determines that the named method is defined in the provided object.
+ * @method LazyAssertion min(mixed $minValue, string|callable $message = null, string $propertyPath = null) Assert that a value is at least as big as a given limit.
+ * @method LazyAssertion minCount(int $count, string|callable $message = null, string $propertyPath = null) Assert that the countable have at least $count elements.
+ * @method LazyAssertion minLength(int $minLength, string|callable $message = null, string $propertyPath = null, string $encoding = 'utf8') Assert that a string is at least $minLength chars long.
+ * @method LazyAssertion noContent(string|callable $message = null, string $propertyPath = null) Assert that value is empty.
+ * @method LazyAssertion notBlank(string|callable $message = null, string $propertyPath = null) Assert that value is not blank.
+ * @method LazyAssertion notContains(string $needle, string|callable $message = null, string $propertyPath = null, string $encoding = 'utf8') Assert that string does not contains a sequence of chars.
+ * @method LazyAssertion notEmpty(string|callable $message = null, string $propertyPath = null) Assert that value is not empty.
+ * @method LazyAssertion notEmptyKey(string|int $key, string|callable $message = null, string $propertyPath = null) Assert that key exists in an array/array-accessible object and its value is not empty.
+ * @method LazyAssertion notEq(mixed $value2, string|callable $message = null, string $propertyPath = null) Assert that two values are not equal (using ==).
+ * @method LazyAssertion notInArray(array $choices, string|callable $message = null, string $propertyPath = null) Assert that value is not in array of choices.
+ * @method LazyAssertion notIsInstanceOf(string $className, string|callable $message = null, string $propertyPath = null) Assert that value is not instance of given class-name.
+ * @method LazyAssertion notNull(string|callable $message = null, string $propertyPath = null) Assert that value is not null.
+ * @method LazyAssertion notRegex(string $pattern, string|callable $message = null, string $propertyPath = null) Assert that value does not match a regex.
+ * @method LazyAssertion notSame(mixed $value2, string|callable $message = null, string $propertyPath = null) Assert that two values are not the same (using ===).
+ * @method LazyAssertion null(string|callable $message = null, string $propertyPath = null) Assert that value is null.
+ * @method LazyAssertion numeric(string|callable $message = null, string $propertyPath = null) Assert that value is numeric.
+ * @method LazyAssertion objectOrClass(string|callable $message = null, string $propertyPath = null) Assert that the value is an object, or a class that exists.
+ * @method LazyAssertion phpVersion(mixed $version, string|callable $message = null, string $propertyPath = null) Assert on PHP version.
+ * @method LazyAssertion propertiesExist(array $properties, string|callable $message = null, string $propertyPath = null) Assert that the value is an object or class, and that the properties all exist.
+ * @method LazyAssertion propertyExists(string $property, string|callable $message = null, string $propertyPath = null) Assert that the value is an object or class, and that the property exists.
+ * @method LazyAssertion range(mixed $minValue, mixed $maxValue, string|callable $message = null, string $propertyPath = null) Assert that value is in range of numbers.
+ * @method LazyAssertion readable(string|callable $message = null, string $propertyPath = null) Assert that the value is something readable.
+ * @method LazyAssertion regex(string $pattern, string|callable $message = null, string $propertyPath = null) Assert that value matches a regex.
+ * @method LazyAssertion same(mixed $value2, string|callable $message = null, string $propertyPath = null) Assert that two values are the same (using ===).
+ * @method LazyAssertion satisfy(callable $callback, string|callable $message = null, string $propertyPath = null) Assert that the provided value is valid according to a callback.
+ * @method LazyAssertion scalar(string|callable $message = null, string $propertyPath = null) Assert that value is a PHP scalar.
+ * @method LazyAssertion startsWith(string $needle, string|callable $message = null, string $propertyPath = null, string $encoding = 'utf8') Assert that string starts with a sequence of chars.
+ * @method LazyAssertion string(string|callable $message = null, string $propertyPath = null) Assert that value is a string.
+ * @method LazyAssertion subclassOf(string $className, string|callable $message = null, string $propertyPath = null) Assert that value is subclass of given class-name.
+ * @method LazyAssertion true(string|callable $message = null, string $propertyPath = null) Assert that the value is boolean True.
+ * @method LazyAssertion url(string|callable $message = null, string $propertyPath = null) Assert that value is an URL.
+ * @method LazyAssertion uuid(string|callable $message = null, string $propertyPath = null) Assert that the given string is a valid UUID.
+ * @method LazyAssertion version(string $operator, string $version2, string|callable $message = null, string $propertyPath = null) Assert comparison of two versions.
+ * @method LazyAssertion writeable(string|callable $message = null, string $propertyPath = null) Assert that the value is something writeable.
+ * @method LazyAssertion all() Switch chain into validation mode for an array of values.
+ * @method LazyAssertion nullOr() Switch chain into mode allowing nulls, ignoring further assertions.
+ */
+class LazyAssertion
+{
+ private $currentChainFailed = false;
+ private $alwaysTryAll = false;
+ private $thisChainTryAll = false;
+ private $currentChain;
+ private $errors = [];
+
+ /** @var string The class to use as AssertionChain factory */
+ private $assertClass = Assert::class;
+
+ /** @var string|LazyAssertionException The class to use for exceptions */
+ private $exceptionClass = LazyAssertionException::class;
+
+ /**
+ * @param mixed $value
+ * @param string|null $propertyPath
+ * @param string|callable|null $defaultMessage
+ *
+ * @return static
+ */
+ public function that($value, string $propertyPath = null, $defaultMessage = null)
+ {
+ $this->currentChainFailed = false;
+ $this->thisChainTryAll = false;
+ $assertClass = $this->assertClass;
+ $this->currentChain = $assertClass::that($value, $defaultMessage, $propertyPath);
+
+ return $this;
+ }
+
+ /**
+ * @return static
+ */
+ public function tryAll()
+ {
+ if (!$this->currentChain) {
+ $this->alwaysTryAll = true;
+ }
+
+ $this->thisChainTryAll = true;
+
+ return $this;
+ }
+
+ /**
+ * @param string $method
+ * @param array $args
+ *
+ * @return static
+ */
+ public function __call($method, $args)
+ {
+ if (false === $this->alwaysTryAll
+ && false === $this->thisChainTryAll
+ && true === $this->currentChainFailed
+ ) {
+ return $this;
+ }
+
+ try {
+ \call_user_func_array([$this->currentChain, $method], $args);
+ } catch (AssertionFailedException $e) {
+ $this->errors[] = $e;
+ $this->currentChainFailed = true;
+ }
+
+ return $this;
+ }
+
+ /**
+ * @return bool
+ *
+ * @throws LazyAssertionException
+ */
+ public function verifyNow(): bool
+ {
+ if ($this->errors) {
+ throw \call_user_func([$this->exceptionClass, 'fromErrors'], $this->errors);
+ }
+
+ return true;
+ }
+
+ /**
+ * @param string $className
+ *
+ * @return static
+ */
+ public function setAssertClass(string $className)
+ {
+ if (Assert::class !== $className && !\is_subclass_of($className, Assert::class)) {
+ throw new LogicException($className.' is not (a subclass of) '.Assert::class);
+ }
+
+ $this->assertClass = $className;
+
+ return $this;
+ }
+
+ /**
+ * @param string $className
+ *
+ * @return static
+ */
+ public function setExceptionClass(string $className)
+ {
+ if (LazyAssertionException::class !== $className && !\is_subclass_of($className, LazyAssertionException::class)) {
+ throw new LogicException($className.' is not (a subclass of) '.LazyAssertionException::class);
+ }
+
+ $this->exceptionClass = $className;
+
+ return $this;
+ }
+}
diff --git a/vendor/beberlei/assert/lib/Assert/LazyAssertionException.php b/vendor/beberlei/assert/lib/Assert/LazyAssertionException.php
new file mode 100644
index 000000000..f76ecc699
--- /dev/null
+++ b/vendor/beberlei/assert/lib/Assert/LazyAssertionException.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * Assert
+ *
+ * LICENSE
+ *
+ * This source file is subject to the MIT license that is bundled
+ * with this package in the file LICENSE.txt.
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to [email protected] so I can send you a copy immediately.
+ */
+
+namespace Assert;
+
+class LazyAssertionException extends InvalidArgumentException
+{
+ /**
+ * @var InvalidArgumentException[]
+ */
+ private $errors = [];
+
+ /**
+ * @param InvalidArgumentException[] $errors
+ *
+ * @return self
+ */
+ public static function fromErrors(array $errors): self
+ {
+ $message = \sprintf('The following %d assertions failed:', \count($errors))."\n";
+
+ $i = 1;
+ foreach ($errors as $error) {
+ $message .= \sprintf("%d) %s: %s\n", $i++, $error->getPropertyPath(), $error->getMessage());
+ }
+
+ return new static($message, $errors);
+ }
+
+ public function __construct($message, array $errors)
+ {
+ parent::__construct($message, 0, null, null);
+
+ $this->errors = $errors;
+ }
+
+ /**
+ * @return InvalidArgumentException[]
+ */
+ public function getErrorExceptions(): array
+ {
+ return $this->errors;
+ }
+}
diff --git a/vendor/beberlei/assert/lib/Assert/functions.php b/vendor/beberlei/assert/lib/Assert/functions.php
new file mode 100644
index 000000000..e0ccbd7d9
--- /dev/null
+++ b/vendor/beberlei/assert/lib/Assert/functions.php
@@ -0,0 +1,80 @@
+<?php
+
+/**
+ * Assert
+ *
+ * LICENSE
+ *
+ * This source file is subject to the MIT license that is bundled
+ * with this package in the file LICENSE.txt.
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to [email protected] so I can send you a copy immediately.
+ */
+
+namespace Assert;
+
+/**
+ * Start validation on a value, returns {@link AssertionChain}.
+ *
+ * The invocation of this method starts an assertion chain
+ * that is happening on the passed value.
+ *
+ * @param mixed $value
+ * @param string|callable|null $defaultMessage
+ * @param string $defaultPropertyPath
+ *
+ * @return AssertionChain
+ *
+ * @example
+ *
+ * \Assert\that($value)->notEmpty()->integer();
+ * \Assert\that($value)->nullOr()->string()->startsWith("Foo");
+ *
+ * The assertion chain can be stateful, that means be careful when you reuse
+ * it. You should never pass around the chain.
+ */
+function that($value, $defaultMessage = null, string $defaultPropertyPath = null): AssertionChain
+{
+ return Assert::that($value, $defaultMessage, $defaultPropertyPath);
+}
+
+/**
+ * Start validation on a set of values, returns {@link AssertionChain}.
+ *
+ * @param mixed $values
+ * @param string|callable|null $defaultMessage
+ * @param string $defaultPropertyPath
+ *
+ * @return AssertionChain
+ */
+function thatAll($values, $defaultMessage = null, string $defaultPropertyPath = null): AssertionChain
+{
+ return Assert::thatAll($values, $defaultMessage, $defaultPropertyPath);
+}
+
+/**
+ * Start validation and allow NULL, returns {@link AssertionChain}.
+ *
+ * @param mixed $value
+ * @param string|callable|null $defaultMessage
+ * @param string $defaultPropertyPath
+ *
+ * @return AssertionChain
+ *
+ * @deprecated In favour of Assert::thatNullOr($value, $defaultMessage = null, $defaultPropertyPath = null)
+ */
+function thatNullOr($value, $defaultMessage = null, string $defaultPropertyPath = null): AssertionChain
+{
+ return Assert::thatNullOr($value, $defaultMessage, $defaultPropertyPath);
+}
+
+/**
+ * Create a lazy assertion object.
+ *
+ * @return LazyAssertion
+ */
+function lazy(): LazyAssertion
+{
+ return Assert::lazy();
+}
diff --git a/vendor/beberlei/assert/phpstan-code.neon b/vendor/beberlei/assert/phpstan-code.neon
new file mode 100644
index 000000000..49aa5723f
--- /dev/null
+++ b/vendor/beberlei/assert/phpstan-code.neon
@@ -0,0 +1,10 @@
+parameters:
+ autoload_files:
+ - bin/MethodDocGenerator.php
+ ignoreErrors:
+ # is_countable() is available only in PHP 7.3+
+ - '#Function is_countable not found#'
+
+ # Calling count() on ResourceBundle and SimpleXMLElement is valid from PHP 7.0+, but does not correctly advertise
+ # the fact, and so PHPStan has an issue with this. This will be fixed in PHP 7.4+
+ - '#Call to function count\(\) with argument type array|Countable|ResourceBundle|SimpleXMLElement will always result in number 1#'
diff --git a/vendor/beberlei/assert/phpstan-tests.neon b/vendor/beberlei/assert/phpstan-tests.neon
new file mode 100644
index 000000000..e9ab0bcf9
--- /dev/null
+++ b/vendor/beberlei/assert/phpstan-tests.neon
@@ -0,0 +1,10 @@
+parameters:
+ ignoreErrors:
+ # The following errors are ignored as they are testing for errors and exceptions that static analysis correctly identifies as problems.
+ - '#Call to an undefined method Assert\\AssertionChain::unknownAssertion\(\)#'
+ - '#Call to an undefined static method Assert\\Assertion::nullOrAssertionDoesNotExist\(\)#'
+ - '#Class Foo not found#'
+ - '#Parameter \#1 $value of static method Assert\\Assertion::isCountable\(\) expects array|Countable|ResourceBundle|SimpleXMLElement, string given#'
+ - '#Parameter \#2 \$operator of static method Assert\\Assertion::version\(\) expects string, null given#'
+ - '#Static method Assert\\Assertion::allTrue\(\) invoked with 0 parameters, 1-3 required#'
+ - '#Static method Assert\\Assertion::nullOrMax\(\) invoked with 0 parameters, 2-4 required#'
diff --git a/vendor/chillerlan/php-qrcode/.github/FUNDING.yml b/vendor/chillerlan/php-qrcode/.github/FUNDING.yml
new file mode 100644
index 000000000..fc89a6739
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/.github/FUNDING.yml
@@ -0,0 +1 @@
+ko_fi: codemasher
diff --git a/vendor/chillerlan/php-qrcode/.github/workflows/tests.yml b/vendor/chillerlan/php-qrcode/.github/workflows/tests.yml
new file mode 100644
index 000000000..5dd343abd
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/.github/workflows/tests.yml
@@ -0,0 +1,55 @@
+# https://help.github.com/en/categories/automating-your-workflow-with-github-actions
+# https://github.com/localheinz/php-library-template/blob/master/.github/workflows/continuous-integration.yml
+# https://github.com/sebastianbergmann/phpunit/blob/master/.github/workflows/ci.yml
+
+on:
+ - pull_request
+ - push
+
+name: "Continuous Integration"
+
+jobs:
+
+ tests:
+ name: "Unit Tests"
+ runs-on: ubuntu-latest
+
+ strategy:
+ matrix:
+ php-binary:
+ - php7.2
+ - php7.3
+ - php7.4
+
+ steps:
+ - name: "Checkout"
+ uses: actions/[email protected]
+
+ - name: "Install dependencies with composer"
+ run: ${{ matrix.php-binary }} $(which composer) update --no-interaction --no-progress --no-suggest
+
+ - name: "Run unit tests with phpunit"
+ run: ${{ matrix.php-binary }} vendor/bin/phpunit --configuration=phpunit.xml --no-coverage
+
+
+ code-coverage:
+ name: "Code Coverage"
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: "Checkout"
+ uses: actions/[email protected]
+
+ - name: "Install locked dependencies with composer"
+ run: php7.4 $(which composer) install --no-interaction --no-progress --no-suggest
+
+ - name: "Dump Xdebug filter with phpunit/phpunit"
+ run: php7.4 vendor/bin/phpunit --configuration=phpunit.xml --dump-xdebug-filter=.build/phpunit/xdebug-filter.php
+
+ - name: "Collect code coverage with Xdebug and phpunit/phpunit"
+ run: php7.4 vendor/bin/phpunit --configuration=phpunit.xml --prepend=.build/phpunit/xdebug-filter.php
+
+ - name: "Send code coverage report to Codecov.io"
+ env:
+ CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
+ run: bash <(curl -s https://codecov.io/bash)
diff --git a/vendor/chillerlan/php-qrcode/.gitignore b/vendor/chillerlan/php-qrcode/.gitignore
new file mode 100644
index 000000000..ecebb9964
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/.gitignore
@@ -0,0 +1,5 @@
+.build/*
+.idea/*
+vendor/*
+composer.lock
+*.phpunit.result.cache
diff --git a/vendor/chillerlan/php-qrcode/.scrutinizer.yml b/vendor/chillerlan/php-qrcode/.scrutinizer.yml
new file mode 100644
index 000000000..7fdd2a4dc
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/.scrutinizer.yml
@@ -0,0 +1,5 @@
+filter:
+ excluded_paths:
+ - examples/*
+ - tests/*
+ - vendor/*
diff --git a/vendor/chillerlan/php-qrcode/.travis.yml b/vendor/chillerlan/php-qrcode/.travis.yml
new file mode 100644
index 000000000..78b8d79e9
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/.travis.yml
@@ -0,0 +1,19 @@
+addons:
+ apt:
+ packages:
+ - imagemagick
+
+language: php
+
+matrix:
+ include:
+ - php: 7.2
+ - php: 7.3
+ - php: 7.4
+
+before_install:
+ - pecl channel-update pecl.php.net
+ - printf "\n" | pecl install imagick
+install: travis_retry composer install --no-interaction --prefer-source
+script: vendor/bin/phpunit --configuration phpunit.xml --coverage-clover clover.xml
+after_script: bash <(curl -s https://codecov.io/bash)
diff --git a/vendor/chillerlan/php-qrcode/LICENSE b/vendor/chillerlan/php-qrcode/LICENSE
new file mode 100644
index 000000000..dac852818
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 Smiley <[email protected]>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/vendor/chillerlan/php-qrcode/README.md b/vendor/chillerlan/php-qrcode/README.md
new file mode 100644
index 000000000..075b2a376
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/README.md
@@ -0,0 +1,392 @@
+# chillerlan/php-qrcode
+
+A PHP7.2+ QR Code library based on the [implementation](https://github.com/kazuhikoarase/qrcode-generator) by [Kazuhiko Arase](https://github.com/kazuhikoarase),
+namespaced, cleaned up, improved and other stuff.
+
+[![Packagist version][packagist-badge]][packagist]
+[![License][license-badge]][license]
+[![Travis CI][travis-badge]][travis]
+[![CodeCov][coverage-badge]][coverage]
+[![Scrunitizer CI][scrutinizer-badge]][scrutinizer]
+[![Packagist downloads][downloads-badge]][downloads]
+[![PayPal donate][donate-badge]][donate]
+
+[![Continuous Integration][gh-action-badge]][gh-action]
+
+[packagist-badge]: https://img.shields.io/packagist/v/chillerlan/php-qrcode.svg?style=flat-square
+[packagist]: https://packagist.org/packages/chillerlan/php-qrcode
+[license-badge]: https://img.shields.io/github/license/chillerlan/php-qrcode.svg?style=flat-square
+[license]: https://github.com/chillerlan/php-qrcode/blob/main/LICENSE
+[travis-badge]: https://img.shields.io/travis/chillerlan/php-qrcode.svg?style=flat-square
+[travis]: https://travis-ci.org/chillerlan/php-qrcode
+[coverage-badge]: https://img.shields.io/codecov/c/github/chillerlan/php-qrcode.svg?style=flat-square
+[coverage]: https://codecov.io/github/chillerlan/php-qrcode
+[scrutinizer-badge]: https://img.shields.io/scrutinizer/g/chillerlan/php-qrcode.svg?style=flat-square
+[scrutinizer]: https://scrutinizer-ci.com/g/chillerlan/php-qrcode
+[downloads-badge]: https://img.shields.io/packagist/dt/chillerlan/php-qrcode.svg?style=flat-square
+[downloads]: https://packagist.org/packages/chillerlan/php-qrcode/stats
+[donate-badge]: https://img.shields.io/badge/donate-paypal-ff33aa.svg?style=flat-square
+[donate]: https://www.paypal.com/donate?hosted_button_id=WLYUNAT9ZTJZ4
+[gh-action-badge]: https://github.com/chillerlan/php-qrcode/workflows/Continuous%20Integration/badge.svg
+[gh-action]: https://github.com/chillerlan/php-qrcode/actions
+
+## Documentation
+
+### Requirements
+- PHP 7.2+
+ - `ext-mbstring`
+ - optional:
+ - `ext-json`, `ext-gd`
+ - `ext-imagick` with [ImageMagick](https://imagemagick.org) installed
+ - [`setasign/fpdf`](https://github.com/setasign/fpdf) for the PDF output module
+
+### Installation
+**requires [composer](https://getcomposer.org)**
+
+via terminal: `composer require chillerlan/php-qrcode`
+
+*composer.json* (note: replace `dev-master` with a [version boundary](https://getcomposer.org/doc/articles/versions.md), e.g. `^3.2`)
+```json
+{
+ "require": {
+ "php": "^7.2",
+ "chillerlan/php-qrcode": "^3.4"
+ }
+}
+```
+
+### Usage
+We want to encode this URI for a mobile authenticator into a QRcode image:
+```php
+$data = 'otpauth://totp/test?secret=B3JX4VCVJDVNXNZ5&issuer=chillerlan.net';
+
+//quick and simple:
+echo '<img src="'.(new QRCode)->render($data).'" alt="QR Code" />';
+```
+
+<p align="center">
+ <img alt="QR codes are awesome!" src="https://raw.githubusercontent.com/chillerlan/php-qrcode/main/examples/example_image.png">
+ <img alt="QR codes are awesome!" src="https://raw.githubusercontent.com/chillerlan/php-qrcode/main/examples/example_svg.png">
+</p>
+
+Wait, what was that? Please again, slower!
+
+### Advanced usage
+
+Ok, step by step. First you'll need a `QRCode` instance, which can be optionally invoked with a `QROptions` (or a [`SettingsContainerInterface`](https://github.com/chillerlan/php-settings-container/blob/master/src/SettingsContainerInterface.php), respectively) object as the only parameter.
+
+```php
+$options = new QROptions([
+ 'version' => 5,
+ 'outputType' => QRCode::OUTPUT_MARKUP_SVG,
+ 'eccLevel' => QRCode::ECC_L,
+]);
+
+// invoke a fresh QRCode instance
+$qrcode = new QRCode($options);
+
+// and dump the output
+$qrcode->render($data);
+
+// ...with additional cache file
+$qrcode->render($data, '/path/to/file.svg');
+```
+
+In case you just want the raw QR code matrix, call `QRCode::getMatrix()` - this method is also called internally from `QRCode::render()`. See also [Custom output modules](#custom-qroutputinterface).
+
+```php
+$matrix = $qrcode->getMatrix($data);
+
+foreach($matrix->matrix() as $y => $row){
+ foreach($row as $x => $module){
+
+ // get a module's value
+ $value = $module;
+ $value = $matrix->get($x, $y);
+
+ // boolean check a module
+ if($matrix->check($x, $y)){ // if($module >> 8 > 0)
+ // do stuff, the module is dark
+ }
+ else{
+ // do other stuff, the module is light
+ }
+
+ }
+}
+```
+
+Have a look [in this folder](https://github.com/chillerlan/php-qrcode/tree/master/examples) for some more usage examples.
+
+#### Custom module values
+Previous versions of `QRCode` held only boolean matrix values that only allowed to determine whether a module was dark or not. Now you can distinguish between different parts of the matrix, namely the several required patterns from the QR Code specification, and use them in different ways.
+
+The dark value is the module (light) value shifted by 8 bits to the left: `$value = $M_TYPE << ($bool ? 8 : 0);`, where `$M_TYPE` is one of the `QRMatrix::M_*` constants.
+You can check the value for a type explicitly like...
+```php
+// for true (dark)
+$value >> 8 === $M_TYPE;
+
+//for false (light)
+$value === $M_TYPE;
+```
+...or you can perform a loose check, ignoring the module value
+```php
+// for true
+$value >> 8 > 0;
+
+// for false
+$value >> 8 === 0
+```
+
+See also `QRMatrix::set()`, `QRMatrix::check()` and [`QRMatrix` constants](#qrmatrix-constants).
+
+To map the values and properly render the modules for the given `QROutputInterface`, it's necessary to overwrite the default values:
+```php
+$options = new QROptions;
+
+// for HTML, SVG and ImageMagick
+$options->moduleValues = [
+ // finder
+ 1536 => '#A71111', // dark (true)
+ 6 => '#FFBFBF', // light (false)
+ // alignment
+ 2560 => '#A70364',
+ 10 => '#FFC9C9',
+ // timing
+ 3072 => '#98005D',
+ 12 => '#FFB8E9',
+ // format
+ 3584 => '#003804',
+ 14 => '#00FB12',
+ // version
+ 4096 => '#650098',
+ 16 => '#E0B8FF',
+ // data
+ 1024 => '#4A6000',
+ 4 => '#ECF9BE',
+ // darkmodule
+ 512 => '#080063',
+ // separator
+ 8 => '#AFBFBF',
+ // quietzone
+ 18 => '#FFFFFF',
+];
+
+// for the image output types
+$options->moduleValues = [
+ 512 => [0, 0, 0],
+ // ...
+];
+
+// for string/text output
+$options->moduleValues = [
+ 512 => '#',
+ // ...
+];
+```
+
+#### Custom `QROutputInterface`
+Instead of bloating your code you can simply create your own output interface by extending `QROutputAbstract`. Have a look at the [built-in output modules](https://github.com/chillerlan/php-qrcode/tree/master/src/Output).
+
+```php
+class MyCustomOutput extends QROutputAbstract{
+
+ // inherited from QROutputAbstract
+ protected $matrix; // QRMatrix
+ protected $moduleCount; // modules QRMatrix::size()
+ protected $options; // MyCustomOptions or QROptions
+ protected $scale; // scale factor from options
+ protected $length; // length of the matrix ($moduleCount * $scale)
+
+ // ...check/set default module values (abstract method, called by the constructor)
+ protected function setModuleValues():void{
+ // $this->moduleValues = ...
+ }
+
+ // QROutputInterface::dump()
+ public function dump(string $file = null):string{
+ $output = '';
+
+ for($row = 0; $row < $this->moduleCount; $row++){
+ for($col = 0; $col < $this->moduleCount; $col++){
+ $output .= (int)$this->matrix->check($col, $row);
+ }
+ }
+
+ return $output;
+ }
+
+}
+```
+
+In case you need additional settings for your output module, just extend `QROptions`...
+```
+class MyCustomOptions extends QROptions{
+ protected $myParam = 'defaultValue';
+
+ // ...
+}
+```
+...or use the [`SettingsContainerInterface`](https://github.com/chillerlan/php-settings-container/blob/master/src/SettingsContainerInterface.php), which is the more flexible approach.
+
+```php
+trait MyCustomOptionsTrait{
+ protected $myParam = 'defaultValue';
+
+ // ...
+}
+```
+set the options:
+```php
+$myOptions = [
+ 'version' => 5,
+ 'eccLevel' => QRCode::ECC_L,
+ 'outputType' => QRCode::OUTPUT_CUSTOM,
+ 'outputInterface' => MyCustomOutput::class,
+ // your custom settings
+ 'myParam' => 'whatever value',
+ ];
+
+// extends QROptions
+$myCustomOptions = new MyCustomOptions($myOptions);
+
+// using the SettingsContainerInterface
+$myCustomOptions = new class($myOptions) extends SettingsContainerAbstract{
+ use QROptionsTrait, MyCustomOptionsTrait;
+};
+
+```
+
+You can then call `QRCode` with the custom modules...
+```php
+(new QRCode($myCustomOptions))->render($data);
+```
+...or invoke the `QROutputInterface` manually.
+```php
+$qrOutputInterface = new MyCustomOutput($myCustomOptions, (new QRCode($myCustomOptions))->getMatrix($data));
+
+//dump the output, which is equivalent to QRCode::render()
+$qrOutputInterface->dump();
+```
+
+### API
+
+#### `QRCode` methods
+method | return | description
+------ | ------ | -----------
+`__construct(QROptions $options = null)` | - | see [`SettingsContainerInterface`](https://github.com/chillerlan/php-settings-container/blob/master/src/SettingsContainerInterface.php)
+`render(string $data, string $file = null)` | mixed, `QROutputInterface::dump()` | renders a QR Code for the given `$data` and `QROptions`, saves `$file` optional
+`getMatrix(string $data)` | `QRMatrix` | returns a `QRMatrix` object for the given `$data` and current `QROptions`
+`initDataInterface(string $data)` | `QRDataInterface` | returns a fresh `QRDataInterface` for the given `$data`
+`isNumber(string $string)` | bool | checks if a string qualifies for `Number`
+`isAlphaNum(string $string)` | bool | checks if a string qualifies for `AlphaNum`
+`isKanji(string $string)` | bool | checks if a string qualifies for `Kanji`
+
+#### `QRCode` constants
+name | description
+---- | -----------
+`VERSION_AUTO` | `QROptions::$version`
+`MASK_PATTERN_AUTO` | `QROptions::$maskPattern`
+`OUTPUT_MARKUP_SVG`, `OUTPUT_MARKUP_HTML` | `QROptions::$outputType` markup
+`OUTPUT_IMAGE_PNG`, `OUTPUT_IMAGE_JPG`, `OUTPUT_IMAGE_GIF` | `QROptions::$outputType` image
+`OUTPUT_STRING_JSON`, `OUTPUT_STRING_TEXT` | `QROptions::$outputType` string
+`OUTPUT_IMAGICK` | `QROptions::$outputType` ImageMagick
+`OUTPUT_FPDF` | `QROptions::$outputType` PDF, using [FPDF](https://github.com/setasign/fpdf)
+`OUTPUT_CUSTOM` | `QROptions::$outputType`, requires `QROptions::$outputInterface`
+`ECC_L`, `ECC_M`, `ECC_Q`, `ECC_H`, | ECC-Level: 7%, 15%, 25%, 30% in `QROptions::$eccLevel`
+`DATA_NUMBER`, `DATA_ALPHANUM`, `DATA_BYTE`, `DATA_KANJI` | `QRDataInterface::$datamode`
+
+#### `QROptions` properties
+property | type | default | allowed | description
+-------- | ---- | ------- | ------- | -----------
+`$version` | int | `QRCode::VERSION_AUTO` | 1...40 | the [QR Code version number](http://www.qrcode.com/en/about/version.html)
+`$versionMin` | int | 1 | 1...40 | Minimum QR version (if `$version = QRCode::VERSION_AUTO`)
+`$versionMax` | int | 40 | 1...40 | Maximum QR version (if `$version = QRCode::VERSION_AUTO`)
+`$eccLevel` | int | `QRCode::ECC_L` | `QRCode::ECC_X` | Error correct level, where X = L (7%), M (15%), Q (25%), H (30%)
+`$maskPattern` | int | `QRCode::MASK_PATTERN_AUTO` | 0...7 | Mask Pattern to use
+`$addQuietzone` | bool | `true` | - | Add a "quiet zone" (margin) according to the QR code spec
+`$quietzoneSize` | int | 4 | clamped to 0 ... `$matrixSize / 2` | Size of the quiet zone
+`$dataMode` | string | `null` | `Number`, `AlphaNum`, `Kanji`, `Byte` | allows overriding the data type detection
+`$outputType` | string | `QRCode::OUTPUT_IMAGE_PNG` | `QRCode::OUTPUT_*` | built-in output type
+`$outputInterface` | string | `null` | * | FQCN of the custom `QROutputInterface` if `QROptions::$outputType` is set to `QRCode::OUTPUT_CUSTOM`
+`$cachefile` | string | `null` | * | optional cache file path
+`$eol` | string | `PHP_EOL` | * | newline string (HTML, SVG, TEXT)
+`$scale` | int | 5 | * | size of a QR code pixel (SVG, IMAGE_*), HTML -> via CSS
+`$cssClass` | string | `null` | * | a common css class
+`$svgOpacity` | float | 1.0 | 0...1 |
+`$svgDefs` | string | * | * | anything between [`<defs>`](https://developer.mozilla.org/docs/Web/SVG/Element/defs)
+`$svgViewBoxSize` | int | `null` | * | a positive integer which defines width/height of the [viewBox attribute](https://css-tricks.com/scale-svg/#article-header-id-3)
+`$textDark` | string | '🔴' | * | string substitute for dark
+`$textLight` | string | '⭕' | * | string substitute for light
+`$markupDark` | string | '#000' | * | markup substitute for dark (CSS value)
+`$markupLight` | string | '#fff' | * | markup substitute for light (CSS value)
+`$imageBase64` | bool | `true` | - | whether to return the image data as base64 or raw like from `file_get_contents()`
+`$imageTransparent` | bool | `true` | - | toggle transparency (no jpeg support)
+`$imageTransparencyBG` | array | `[255, 255, 255]` | `[R, G, B]` | the RGB values for the transparent color, see [`imagecolortransparent()`](http://php.net/manual/function.imagecolortransparent.php)
+`$pngCompression` | int | -1 | -1 ... 9 | `imagepng()` compression level, -1 = auto
+`$jpegQuality` | int | 85 | 0 - 100 | `imagejpeg()` quality
+`$imagickFormat` | string | 'png' | * | ImageMagick output type, see `Imagick::setType()`
+`$imagickBG` | string | `null` | * | ImageMagick background color, see `ImagickPixel::__construct()`
+`$moduleValues` | array | `null` | * | Module values map, see [Custom output modules](#custom-qroutputinterface) and `QROutputInterface::DEFAULT_MODULE_VALUES`
+
+#### `QRMatrix` methods
+method | return | description
+------ | ------ | -----------
+`__construct(int $version, int $eclevel)` | - | -
+`matrix()` | array | the internal matrix representation as a 2 dimensional array
+`version()` | int | the current QR Code version
+`eccLevel()` | int | current ECC level
+`maskPattern()` | int | the used mask pattern
+`size()` | int | the absoulute size of the matrix, including quiet zone (if set). `$version * 4 + 17 + 2 * $quietzone`
+`get(int $x, int $y)` | int | returns the value of the module
+`set(int $x, int $y, bool $value, int $M_TYPE)` | `QRMatrix` | sets the `$M_TYPE` value for the module
+`check(int $x, int $y)` | bool | checks whether a module is true (dark) or false (light)
+`setLogoSpace(int $width, int $height, int $startX = null, int $startY = null)` | `QRMatrix` | creates a logo space in the matrix
+
+#### `QRMatrix` constants
+name | light (false) | dark (true) | description
+---- | ------------- | ----------- | -----------
+`M_NULL` | 0 | - | module not set (should never appear. if so, there's an error)
+`M_DARKMODULE` | - | 512 | once per matrix at `$xy = [8, 4 * $version + 9]`
+`M_DATA` | 4 | 1024 | the actual encoded data
+`M_FINDER` | 6 | 1536 | the 7x7 finder patterns
+`M_SEPARATOR` | 8 | - | separator lines around the finder patterns
+`M_ALIGNMENT` | 10 | 2560 | the 5x5 alignment patterns
+`M_TIMING` | 12 | 3072 | the timing pattern lines
+`M_FORMAT` | 14 | 3584 | format information pattern
+`M_VERSION` | 16 | 4096 | version information pattern
+`M_QUIETZONE` | 18 | - | margin around the QR Code
+`M_LOGO` | 20 | - | space for a logo image (not used yet)
+`M_TEST` | 255 | 65280 | test value
+
+
+### Notes
+The QR encoder, especially the subroutines for mask pattern testing, can cause high CPU load on increased matrix size.
+You can avoid a part of this load by choosing a fast output module, like `OUTPUT_IMAGE_*` and setting the mask pattern manually (which may result in unreadable QR Codes).
+Oh hey and don't forget to sanitize any user input!
+
+### Disclaimer!
+I don't take responsibility for molten CPUs, misled applications, failed log-ins etc.. Use at your own risk!
+
+#### Trademark Notice
+
+The word "QR Code" is registered trademark of *DENSO WAVE INCORPORATED*<br>
+http://www.denso-wave.com/qrcode/faqpatent-e.html
+
+### Framework Integration
+- Drupal [Google Authenticator Login `ga_login`](https://www.drupal.org/project/ga_login)
+- WordPress [`wp-two-factor-auth`](https://github.com/sjinks/wp-two-factor-auth)
+- WordPress [Simple 2FA `simple-2fa`](https://wordpress.org/plugins/simple-2fa/)
+- WoltLab Suite [two-step-verification](http://pluginstore.woltlab.com/file/3007-two-step-verification/)
+- [Cachet](https://github.com/CachetHQ/Cachet)
+- [Appwrite](https://github.com/appwrite/appwrite)
+- other uses: [dependents](https://github.com/chillerlan/php-qrcode/network/dependents) / [packages](https://github.com/chillerlan/php-qrcode/network/dependents?dependent_type=PACKAGE)
+
+
+Hi, please check out my other projects that are way cooler than qrcodes!
+
+- [php-oauth-core](https://github.com/chillerlan/php-oauth-core) - an OAuth 1/2 client library along with a bunch of [providers](https://github.com/chillerlan/php-oauth-providers)
+- [php-httpinterface](https://github.com/chillerlan/php-httpinterface) - a PSR-7/15/17/18 implemetation
+- [php-database](https://github.com/chillerlan/php-database) - a database client & querybuilder for MySQL, Postgres, SQLite, MSSQL, Firebird
+
diff --git a/vendor/chillerlan/php-qrcode/composer.json b/vendor/chillerlan/php-qrcode/composer.json
new file mode 100644
index 000000000..c2299a350
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/composer.json
@@ -0,0 +1,51 @@
+{
+ "name": "chillerlan/php-qrcode",
+ "description": "A QR code generator. PHP 7.2+",
+ "homepage": "https://github.com/chillerlan/php-qrcode",
+ "license": "MIT",
+ "minimum-stability": "stable",
+ "type": "library",
+ "keywords": [
+ "QR code", "qrcode", "qr", "qrcode-generator", "phpqrcode"
+ ],
+ "authors": [
+ {
+ "name": "Kazuhiko Arase",
+ "homepage": "https://github.com/kazuhikoarase"
+ },
+ {
+ "name": "Smiley",
+ "email": "[email protected]",
+ "homepage": "https://github.com/codemasher"
+ },
+ {
+ "name": "Contributors",
+ "homepage":"https://github.com/chillerlan/php-qrcode/graphs/contributors"
+ }
+ ],
+ "require": {
+ "php": "^7.2",
+ "ext-mbstring": "*",
+ "chillerlan/php-settings-container": "^1.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.5",
+ "setasign/fpdf": "^1.8.2"
+ },
+ "suggest": {
+ "chillerlan/php-authenticator": "Yet another Google authenticator! Also creates URIs for mobile apps.",
+ "setasign/fpdf": "Required to use the QR FPDF output."
+ },
+ "autoload": {
+ "psr-4": {
+ "chillerlan\\QRCode\\": "src/"
+ }
+ },
+ "autoload-dev": {
+ "psr-4": {
+ "chillerlan\\QRCodePublic\\": "public/",
+ "chillerlan\\QRCodeTest\\": "tests/",
+ "chillerlan\\QRCodeExamples\\": "examples/"
+ }
+ }
+}
diff --git a/vendor/chillerlan/php-qrcode/examples/MyCustomOutput.php b/vendor/chillerlan/php-qrcode/examples/MyCustomOutput.php
new file mode 100644
index 000000000..3c01f8646
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/examples/MyCustomOutput.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * Class MyCustomOutput
+ *
+ * @filesource MyCustomOutput.php
+ * @created 24.12.2017
+ * @package chillerlan\QRCodeExamples
+ * @author Smiley <[email protected]>
+ * @copyright 2017 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCodeExamples;
+
+use chillerlan\QRCode\Output\QROutputAbstract;
+
+class MyCustomOutput extends QROutputAbstract{
+
+ protected function setModuleValues():void{
+ // TODO: Implement setModuleValues() method.
+ }
+
+ public function dump(string $file = null){
+
+ $output = '';
+
+ for($row = 0; $row < $this->moduleCount; $row++){
+ for($col = 0; $col < $this->moduleCount; $col++){
+ $output .= (int)$this->matrix->check($col, $row);
+ }
+ }
+
+ return $output;
+ }
+
+}
diff --git a/vendor/chillerlan/php-qrcode/examples/QRImageWithLogo.php b/vendor/chillerlan/php-qrcode/examples/QRImageWithLogo.php
new file mode 100644
index 000000000..f9d94ae34
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/examples/QRImageWithLogo.php
@@ -0,0 +1,81 @@
+<?php
+/**
+ * Class QRImageWithLogo
+ *
+ * @filesource QRImageWithLogo.php
+ * @created 18.11.2020
+ * @package chillerlan\QRCodeExamples
+ * @author smiley <[email protected]>
+ * @copyright 2020 smiley
+ * @license MIT
+ *
+ * @noinspection PhpComposerExtensionStubsInspection
+ */
+
+namespace chillerlan\QRCodeExamples;
+
+use chillerlan\QRCode\Output\{QRCodeOutputException, QRImage};
+
+use function imagecopyresampled, imagecreatefrompng, imagesx, imagesy, is_file, is_readable;
+
+/**
+ * @property \chillerlan\QRCodeExamples\LogoOptions $options
+ */
+class QRImageWithLogo extends QRImage{
+
+ /**
+ * @param string|null $file
+ * @param string|null $logo
+ *
+ * @return string
+ * @throws \chillerlan\QRCode\Output\QRCodeOutputException
+ */
+ public function dump(string $file = null, string $logo = null):string{
+ // set returnResource to true to skip further processing for now
+ $this->options->returnResource = true;
+
+ // of course you could accept other formats too (such as resource or Imagick)
+ // i'm not checking for the file type either for simplicity reasons (assuming PNG)
+ if(!is_file($logo) || !is_readable($logo)){
+ throw new QRCodeOutputException('invalid logo');
+ }
+
+ $this->matrix->setLogoSpace(
+ $this->options->logoWidth,
+ $this->options->logoHeight
+ // not utilizing the position here
+ );
+
+ // there's no need to save the result of dump() into $this->image here
+ parent::dump($file);
+
+ $im = imagecreatefrompng($logo);
+
+ // get logo image size
+ $w = imagesx($im);
+ $h = imagesy($im);
+
+ // set new logo size, leave a border of 1 module
+ $lw = ($this->options->logoWidth - 2) * $this->options->scale;
+ $lh = ($this->options->logoHeight - 2) * $this->options->scale;
+
+ // get the qrcode size
+ $ql = $this->matrix->size() * $this->options->scale;
+
+ // scale the logo and copy it over. done!
+ imagecopyresampled($this->image, $im, ($ql - $lw) / 2, ($ql - $lh) / 2, 0, 0, $lw, $lh, $w, $h);
+
+ $imageData = $this->dumpImage();
+
+ if($file !== null){
+ $this->saveToFile($imageData, $file);
+ }
+
+ if($this->options->imageBase64){
+ $imageData = 'data:image/'.$this->options->outputType.';base64,'.base64_encode($imageData);
+ }
+
+ return $imageData;
+ }
+
+}
diff --git a/vendor/chillerlan/php-qrcode/examples/QRImageWithText.php b/vendor/chillerlan/php-qrcode/examples/QRImageWithText.php
new file mode 100644
index 000000000..5ca572f30
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/examples/QRImageWithText.php
@@ -0,0 +1,104 @@
+<?php
+/**
+ * Class QRImageWithText
+ *
+ * example for additional text
+ *
+ * @link https://github.com/chillerlan/php-qrcode/issues/35
+ *
+ * @filesource QRImageWithText.php
+ * @created 22.06.2019
+ * @package chillerlan\QRCodeExamples
+ * @author smiley <[email protected]>
+ * @copyright 2019 smiley
+ * @license MIT
+ *
+ * @noinspection PhpComposerExtensionStubsInspection
+ */
+
+namespace chillerlan\QRCodeExamples;
+
+use chillerlan\QRCode\Output\QRImage;
+use function base64_encode, imagechar, imagecolorallocate, imagecolortransparent, imagecopymerge, imagecreatetruecolor,
+ imagedestroy, imagefilledrectangle, imagefontwidth, in_array, round, str_split, strlen;
+
+class QRImageWithText extends QRImage{
+
+ /**
+ * @param string|null $file
+ * @param string|null $text
+ *
+ * @return string
+ */
+ public function dump(string $file = null, string $text = null):string{
+ $this->image = imagecreatetruecolor($this->length, $this->length);
+ $background = imagecolorallocate($this->image, ...$this->options->imageTransparencyBG);
+
+ if((bool)$this->options->imageTransparent && in_array($this->options->outputType, $this::TRANSPARENCY_TYPES, true)){
+ imagecolortransparent($this->image, $background);
+ }
+
+ imagefilledrectangle($this->image, 0, 0, $this->length, $this->length, $background);
+
+ foreach($this->matrix->matrix() as $y => $row){
+ foreach($row as $x => $M_TYPE){
+ $this->setPixel($x, $y, $this->moduleValues[$M_TYPE]);
+ }
+ }
+
+ // render text output if a string is given
+ if($text !== null){
+ $this->addText($text);
+ }
+
+ $imageData = $this->dumpImage($file);
+
+ if((bool)$this->options->imageBase64){
+ $imageData = 'data:image/'.$this->options->outputType.';base64,'.base64_encode($imageData);
+ }
+
+ return $imageData;
+ }
+
+ /**
+ * @param string $text
+ */
+ protected function addText(string $text):void{
+ // save the qrcode image
+ $qrcode = $this->image;
+
+ // options things
+ $textSize = 3; // see imagefontheight() and imagefontwidth()
+ $textBG = [200, 200, 200];
+ $textColor = [50, 50, 50];
+
+ $bgWidth = $this->length;
+ $bgHeight = $bgWidth + 20; // 20px extra space
+
+ // create a new image with additional space
+ $this->image = imagecreatetruecolor($bgWidth, $bgHeight);
+ $background = imagecolorallocate($this->image, ...$textBG);
+
+ // allow transparency
+ if((bool)$this->options->imageTransparent && in_array($this->options->outputType, $this::TRANSPARENCY_TYPES, true)){
+ imagecolortransparent($this->image, $background);
+ }
+
+ // fill the background
+ imagefilledrectangle($this->image, 0, 0, $bgWidth, $bgHeight, $background);
+
+ // copy over the qrcode
+ imagecopymerge($this->image, $qrcode, 0, 0, 0, 0, $this->length, $this->length, 100);
+ imagedestroy($qrcode);
+
+ $fontColor = imagecolorallocate($this->image, ...$textColor);
+ $w = imagefontwidth($textSize);
+ $x = round(($bgWidth - strlen($text) * $w) / 2);
+
+ // loop through the string and draw the letters
+ foreach(str_split($text) as $i => $chr){
+ imagechar($this->image, $textSize, $i * $w + $x, $this->length, $chr, $fontColor);
+ }
+ }
+
+}
diff --git a/vendor/chillerlan/php-qrcode/examples/custom_output.php b/vendor/chillerlan/php-qrcode/examples/custom_output.php
new file mode 100644
index 000000000..71ea62682
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/examples/custom_output.php
@@ -0,0 +1,38 @@
+<?php
+/**
+ *
+ * @filesource custom_output.php
+ * @created 24.12.2017
+ * @author Smiley <[email protected]>
+ * @copyright 2017 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCodeExamples;
+
+use chillerlan\QRCode\{QRCode, QROptions};
+
+require_once __DIR__.'/../vendor/autoload.php';
+
+$data = 'https://www.youtube.com/watch?v=DLzxrzFCyOs&t=43s';
+
+// invoke the QROutputInterface manually
+$options = new QROptions([
+ 'version' => 5,
+ 'eccLevel' => QRCode::ECC_L,
+]);
+
+$qrOutputInterface = new MyCustomOutput($options, (new QRCode($options))->getMatrix($data));
+
+var_dump($qrOutputInterface->dump());
+
+
+// or just
+$options = new QROptions([
+ 'version' => 5,
+ 'eccLevel' => QRCode::ECC_L,
+ 'outputType' => QRCode::OUTPUT_CUSTOM,
+ 'outputInterface' => MyCustomOutput::class,
+]);
+
+var_dump((new QRCode($options))->render($data));
diff --git a/vendor/chillerlan/php-qrcode/examples/example_image.png b/vendor/chillerlan/php-qrcode/examples/example_image.png
new file mode 100644
index 000000000..b4a80f2ab
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/examples/example_image.png
Binary files differ
diff --git a/vendor/chillerlan/php-qrcode/examples/example_svg.png b/vendor/chillerlan/php-qrcode/examples/example_svg.png
new file mode 100644
index 000000000..f1e7b32f7
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/examples/example_svg.png
Binary files differ
diff --git a/vendor/chillerlan/php-qrcode/examples/fpdf.php b/vendor/chillerlan/php-qrcode/examples/fpdf.php
new file mode 100644
index 000000000..9c690a7f7
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/examples/fpdf.php
@@ -0,0 +1,47 @@
+<?php
+
+namespace chillerlan\QRCodeExamples;
+
+use chillerlan\QRCode\{QRCode, QROptions};
+
+require_once __DIR__ . '/../vendor/autoload.php';
+
+$data = 'https://www.youtube.com/watch?v=DLzxrzFCyOs&t=43s';
+
+$options = new QROptions([
+ 'version' => 7,
+ 'outputType' => QRCode::OUTPUT_FPDF,
+ 'eccLevel' => QRCode::ECC_L,
+ 'scale' => 5,
+ 'imageBase64' => false,
+ 'moduleValues' => [
+ // finder
+ 1536 => [0, 63, 255], // dark (true)
+ 6 => [255, 255, 255], // light (false), white is the transparency color and is enabled by default
+ // alignment
+ 2560 => [255, 0, 255],
+ 10 => [255, 255, 255],
+ // timing
+ 3072 => [255, 0, 0],
+ 12 => [255, 255, 255],
+ // format
+ 3584 => [67, 191, 84],
+ 14 => [255, 255, 255],
+ // version
+ 4096 => [62, 174, 190],
+ 16 => [255, 255, 255],
+ // data
+ 1024 => [0, 0, 0],
+ 4 => [255, 255, 255],
+ // darkmodule
+ 512 => [0, 0, 0],
+ // separator
+ 8 => [255, 255, 255],
+ // quietzone
+ 18 => [255, 255, 255],
+ ],
+]);
+
+\header('Content-type: application/pdf');
+
+echo (new QRCode($options))->render($data);
diff --git a/vendor/chillerlan/php-qrcode/examples/html.php b/vendor/chillerlan/php-qrcode/examples/html.php
new file mode 100644
index 000000000..aa5305d24
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/examples/html.php
@@ -0,0 +1,102 @@
+<?php
+/**
+ *
+ * @filesource html.php
+ * @created 21.12.2017
+ * @author Smiley <[email protected]>
+ * @copyright 2017 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCodeExamples;
+
+use chillerlan\QRCode\{QRCode, QROptions};
+
+require_once '../vendor/autoload.php';
+
+header('Content-Type: text/html; charset=utf-8');
+
+?>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8"/>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <title>QRCode test</title>
+ <style>
+ body{
+ margin: 5em;
+ padding: 0;
+ }
+
+ div.qrcode{
+ margin: 0;
+ padding: 0;
+ }
+
+ /* rows */
+ div.qrcode > div {
+ margin: 0;
+ padding: 0;
+ height: 10px;
+ }
+
+ /* modules */
+ div.qrcode > div > span {
+ display: inline-block;
+ width: 10px;
+ height: 10px;
+ }
+
+ div.qrcode > div > span {
+ background-color: #ccc;
+ }
+ </style>
+</head>
+<body>
+ <div class="qrcode">
+<?php
+
+ $data = 'https://www.youtube.com/watch?v=DLzxrzFCyOs&t=43s';
+
+ $options = new QROptions([
+ 'version' => 5,
+ 'outputType' => QRCode::OUTPUT_MARKUP_HTML,
+ 'eccLevel' => QRCode::ECC_L,
+ 'moduleValues' => [
+ // finder
+ 1536 => '#A71111', // dark (true)
+ 6 => '#FFBFBF', // light (false)
+ // alignment
+ 2560 => '#A70364',
+ 10 => '#FFC9C9',
+ // timing
+ 3072 => '#98005D',
+ 12 => '#FFB8E9',
+ // format
+ 3584 => '#003804',
+ 14 => '#00FB12',
+ // version
+ 4096 => '#650098',
+ 16 => '#E0B8FF',
+ // data
+ 1024 => '#4A6000',
+ 4 => '#ECF9BE',
+ // darkmodule
+ 512 => '#080063',
+ // separator
+ 8 => '#AFBFBF',
+ // quietzone
+ 18 => '#FFFFFF',
+ ],
+ ]);
+
+ echo (new QRCode($options))->render($data);
+
+?>
+ </div>
+</body>
+</html>
+
+
+
diff --git a/vendor/chillerlan/php-qrcode/examples/image.php b/vendor/chillerlan/php-qrcode/examples/image.php
new file mode 100644
index 000000000..89ba2a9a8
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/examples/image.php
@@ -0,0 +1,60 @@
+<?php
+/**
+ *
+ * @filesource image.php
+ * @created 24.12.2017
+ * @author Smiley <[email protected]>
+ * @copyright 2017 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCodeExamples;
+
+use chillerlan\QRCode\{QRCode, QROptions};
+
+require_once __DIR__.'/../vendor/autoload.php';
+
+$data = 'https://www.youtube.com/watch?v=DLzxrzFCyOs&t=43s';
+
+$options = new QROptions([
+ 'version' => 7,
+ 'outputType' => QRCode::OUTPUT_IMAGE_PNG,
+ 'eccLevel' => QRCode::ECC_L,
+ 'scale' => 5,
+ 'imageBase64' => false,
+ 'moduleValues' => [
+ // finder
+ 1536 => [0, 63, 255], // dark (true)
+ 6 => [255, 255, 255], // light (false), white is the transparency color and is enabled by default
+ // alignment
+ 2560 => [255, 0, 255],
+ 10 => [255, 255, 255],
+ // timing
+ 3072 => [255, 0, 0],
+ 12 => [255, 255, 255],
+ // format
+ 3584 => [67, 191, 84],
+ 14 => [255, 255, 255],
+ // version
+ 4096 => [62, 174, 190],
+ 16 => [255, 255, 255],
+ // data
+ 1024 => [0, 0, 0],
+ 4 => [255, 255, 255],
+ // darkmodule
+ 512 => [0, 0, 0],
+ // separator
+ 8 => [255, 255, 255],
+ // quietzone
+ 18 => [255, 255, 255],
+ ],
+]);
+
+header('Content-type: image/png');
+
+echo (new QRCode($options))->render($data);
+
+
+
+
+
diff --git a/vendor/chillerlan/php-qrcode/examples/imageWithLogo.php b/vendor/chillerlan/php-qrcode/examples/imageWithLogo.php
new file mode 100644
index 000000000..987e10c11
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/examples/imageWithLogo.php
@@ -0,0 +1,44 @@
+<?php
+/**
+ *
+ * @filesource imageWithLogo.php
+ * @created 18.11.2020
+ * @author smiley <[email protected]>
+ * @copyright 2020 smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCodeExamples;
+
+use chillerlan\QRCode\{QRCode, QROptions};
+
+require_once __DIR__.'/../vendor/autoload.php';
+
+$data = 'https://www.youtube.com/watch?v=DLzxrzFCyOs&t=43s';
+/**
+ * @property int $logoWidth
+ * @property int $logoHeight
+ *
+ * @noinspection PhpIllegalPsrClassPathInspection
+ */
+class LogoOptions extends QROptions{
+ protected $logoWidth;
+ protected $logoHeight;
+}
+
+$options = new LogoOptions;
+
+$options->version = 7;
+$options->eccLevel = QRCode::ECC_H;
+$options->imageBase64 = false;
+$options->logoWidth = 13;
+$options->logoHeight = 13;
+$options->scale = 5;
+$options->imageTransparent = false;
+
+header('Content-type: image/png');
+
+$qrOutputInterface = new QRImageWithLogo($options, (new QRCode($options))->getMatrix($data));
+
+// dump the output, with an additional logo
+echo $qrOutputInterface->dump(null, __DIR__.'/octocat.png');
diff --git a/vendor/chillerlan/php-qrcode/examples/imageWithText.php b/vendor/chillerlan/php-qrcode/examples/imageWithText.php
new file mode 100644
index 000000000..050781cba
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/examples/imageWithText.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * example for additional text
+ * @link https://github.com/chillerlan/php-qrcode/issues/35
+ *
+ * @filesource imageWithText.php
+ * @created 22.06.2019
+ * @author Smiley <[email protected]>
+ * @copyright 2019 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCodeExamples;
+
+use chillerlan\QRCode\{QRCode, QROptions};
+
+require_once __DIR__.'/../vendor/autoload.php';
+
+$data = 'https://www.youtube.com/watch?v=DLzxrzFCyOs&t=43s';
+
+$options = new QROptions([
+ 'version' => 7,
+ 'outputType' => QRCode::OUTPUT_IMAGE_PNG,
+ 'scale' => 3,
+ 'imageBase64' => false,
+]);
+
+header('Content-type: image/png');
+
+$qrOutputInterface = new QRImageWithText($options, (new QRCode($options))->getMatrix($data));
+
+// dump the output, with additional text
+echo $qrOutputInterface->dump(null, 'example text');
diff --git a/vendor/chillerlan/php-qrcode/examples/imagick.php b/vendor/chillerlan/php-qrcode/examples/imagick.php
new file mode 100644
index 000000000..6bec4d02e
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/examples/imagick.php
@@ -0,0 +1,59 @@
+<?php
+/**
+ *
+ * @filesource image.php
+ * @created 24.12.2017
+ * @author Smiley <[email protected]>
+ * @copyright 2017 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCodeExamples;
+
+use chillerlan\QRCode\{QRCode, QROptions};
+
+require_once __DIR__.'/../vendor/autoload.php';
+
+$data = 'https://www.youtube.com/watch?v=DLzxrzFCyOs&t=43s';
+
+$options = new QROptions([
+ 'version' => 7,
+ 'outputType' => QRCode::OUTPUT_IMAGICK,
+ 'eccLevel' => QRCode::ECC_L,
+ 'scale' => 5,
+ 'moduleValues' => [
+ // finder
+ 1536 => '#A71111', // dark (true)
+ 6 => '#FFBFBF', // light (false)
+ // alignment
+ 2560 => '#A70364',
+ 10 => '#FFC9C9',
+ // timing
+ 3072 => '#98005D',
+ 12 => '#FFB8E9',
+ // format
+ 3584 => '#003804',
+ 14 => '#00FB12',
+ // version
+ 4096 => '#650098',
+ 16 => '#E0B8FF',
+ // data
+ 1024 => '#4A6000',
+ 4 => '#ECF9BE',
+ // darkmodule
+ 512 => '#080063',
+ // separator
+ 8 => '#DDDDDD',
+ // quietzone
+ 18 => '#DDDDDD',
+ ],
+]);
+
+header('Content-type: image/png');
+
+echo (new QRCode($options))->render($data);
+
+
+
+
+
diff --git a/vendor/chillerlan/php-qrcode/examples/octocat.png b/vendor/chillerlan/php-qrcode/examples/octocat.png
new file mode 100644
index 000000000..f9050b935
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/examples/octocat.png
Binary files differ
diff --git a/vendor/chillerlan/php-qrcode/examples/svg.php b/vendor/chillerlan/php-qrcode/examples/svg.php
new file mode 100644
index 000000000..a7a159d70
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/examples/svg.php
@@ -0,0 +1,77 @@
+<?php
+/**
+ *
+ * @filesource svg.php
+ * @created 21.12.2017
+ * @author Smiley <[email protected]>
+ * @copyright 2017 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCodeExamples;
+
+use chillerlan\QRCode\{QRCode, QROptions};
+
+require_once __DIR__.'/../vendor/autoload.php';
+
+$data = 'https://www.youtube.com/watch?v=DLzxrzFCyOs&t=43s';
+$gzip = true;
+
+$options = new QROptions([
+ 'version' => 7,
+ 'outputType' => QRCode::OUTPUT_MARKUP_SVG,
+ 'eccLevel' => QRCode::ECC_L,
+ 'svgViewBoxSize' => 530,
+ 'addQuietzone' => true,
+ 'cssClass' => 'my-css-class',
+ 'svgOpacity' => 1.0,
+ 'svgDefs' => '
+ <linearGradient id="g2">
+ <stop offset="0%" stop-color="#39F" />
+ <stop offset="100%" stop-color="#F3F" />
+ </linearGradient>
+ <linearGradient id="g1">
+ <stop offset="0%" stop-color="#F3F" />
+ <stop offset="100%" stop-color="#39F" />
+ </linearGradient>
+ <style>rect{shape-rendering:crispEdges}</style>',
+ 'moduleValues' => [
+ // finder
+ 1536 => 'url(#g1)', // dark (true)
+ 6 => '#fff', // light (false)
+ // alignment
+ 2560 => 'url(#g1)',
+ 10 => '#fff',
+ // timing
+ 3072 => 'url(#g1)',
+ 12 => '#fff',
+ // format
+ 3584 => 'url(#g1)',
+ 14 => '#fff',
+ // version
+ 4096 => 'url(#g1)',
+ 16 => '#fff',
+ // data
+ 1024 => 'url(#g2)',
+ 4 => '#fff',
+ // darkmodule
+ 512 => 'url(#g1)',
+ // separator
+ 8 => '#fff',
+ // quietzone
+ 18 => '#fff',
+ ],
+]);
+
+$qrcode = (new QRCode($options))->render($data);
+
+header('Content-type: image/svg+xml');
+
+if($gzip === true){
+ header('Vary: Accept-Encoding');
+ header('Content-Encoding: gzip');
+ $qrcode = gzencode($qrcode ,9);
+}
+echo $qrcode;
+
+
diff --git a/vendor/chillerlan/php-qrcode/examples/text.php b/vendor/chillerlan/php-qrcode/examples/text.php
new file mode 100644
index 000000000..9bdf154f0
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/examples/text.php
@@ -0,0 +1,68 @@
+<?php
+/**
+ *
+ * @filesource text.php
+ * @created 21.12.2017
+ * @author Smiley <[email protected]>
+ * @copyright 2017 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCodeExamples;
+
+use chillerlan\QRCode\{QRCode, QROptions};
+
+require_once __DIR__.'/../vendor/autoload.php';
+
+$data = 'https://www.youtube.com/watch?v=DLzxrzFCyOs&t=43s';
+
+$options = new QROptions([
+ 'version' => 5,
+ 'outputType' => QRCode::OUTPUT_STRING_TEXT,
+ 'eccLevel' => QRCode::ECC_L,
+]);
+
+// <pre> to view it in a browser
+echo '<pre style="font-size: 75%; line-height: 1;">'.(new QRCode($options))->render($data).'</pre>';
+
+
+// custom values
+$options = new QROptions([
+ 'version' => 5,
+ 'outputType' => QRCode::OUTPUT_STRING_TEXT,
+ 'eccLevel' => QRCode::ECC_L,
+ 'moduleValues' => [
+ // finder
+ 1536 => 'A', // dark (true)
+ 6 => 'a', // light (false)
+ // alignment
+ 2560 => 'B',
+ 10 => 'b',
+ // timing
+ 3072 => 'C',
+ 12 => 'c',
+ // format
+ 3584 => 'D',
+ 14 => 'd',
+ // version
+ 4096 => 'E',
+ 16 => 'e',
+ // data
+ 1024 => 'F',
+ 4 => 'f',
+ // darkmodule
+ 512 => 'G',
+ // separator
+ 8 => 'h',
+ // quietzone
+ 18 => 'i',
+ ],
+]);
+
+// <pre> to view it in a browser
+echo '<pre style="font-size: 75%; line-height: 1;">'.(new QRCode($options))->render($data).'</pre>';
+
+
+
+
+
diff --git a/vendor/chillerlan/php-qrcode/phpdoc.xml b/vendor/chillerlan/php-qrcode/phpdoc.xml
new file mode 100644
index 000000000..d191e98ee
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/phpdoc.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<phpdoc>
+ <parser>
+ <target>public/docs</target>
+ </parser>
+ <transformer>
+ <target>public/docs</target>
+ </transformer>
+ <files>
+ <directory>src</directory>
+ </files>
+ <transformations>
+ <template name="responsive-twig"/>
+ </transformations>
+</phpdoc> \ No newline at end of file
diff --git a/vendor/chillerlan/php-qrcode/phpmd.xml b/vendor/chillerlan/php-qrcode/phpmd.xml
new file mode 100644
index 000000000..a70f7e3a1
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/phpmd.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0"?>
+<ruleset name="codemasher/php-qrcode PMD ruleset"
+ xmlns="http://pmd.sf.net/ruleset/1.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
+ xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
+ <description>codemasher/php-qrcode PMD ruleset</description>
+ <exclude-pattern>*/examples/*</exclude-pattern>
+ <exclude-pattern>*/tests/*</exclude-pattern>
+ <rule ref="rulesets/cleancode.xml">
+ <exclude name="BooleanArgumentFlag"/>
+ </rule>
+ <rule ref="rulesets/codesize.xml/CyclomaticComplexity">
+ <priority>1</priority>
+ <properties>
+ <property name="maximum" value="200" />
+ </properties>
+ </rule>
+ <rule ref="rulesets/controversial.xml">
+ <exclude name="CamelCaseMethodName"/>
+ <exclude name="CamelCasePropertyName"/>
+ <exclude name="CamelCaseParameterName"/>
+ <exclude name="CamelCaseVariableName"/>
+ </rule>
+ <rule ref="rulesets/design.xml">
+ </rule>
+ <rule ref="rulesets/naming.xml">
+ <exclude name="LongVariable"/>
+ <exclude name="ShortVariable"/>
+ </rule>
+ <rule ref="rulesets/unusedcode.xml">
+ <exclude name="UnusedFormalParameter"/>
+ </rule>
+</ruleset>
diff --git a/vendor/chillerlan/php-qrcode/phpunit.xml b/vendor/chillerlan/php-qrcode/phpunit.xml
new file mode 100644
index 000000000..3a9b678d2
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/phpunit.xml
@@ -0,0 +1,23 @@
+<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd"
+ bootstrap="vendor/autoload.php"
+ cacheResultFile=".build/phpunit.result.cache"
+ colors="true"
+ verbose="true"
+>
+ <filter>
+ <whitelist processUncoveredFilesFromWhitelist="true">
+ <directory suffix=".php">./src</directory>
+ </whitelist>
+ </filter>
+ <testsuites>
+ <testsuite name="php-qrcode test suite">
+ <directory suffix=".php">./tests/</directory>
+ </testsuite>
+ </testsuites>
+ <logging>
+ <log type="coverage-clover" target=".build/coverage/clover.xml"/>
+ <log type="coverage-xml" target=".build/coverage/coverage-xml"/>
+ <log type="junit" target=".build/logs/junit.xml"/>
+ </logging>
+</phpunit>
diff --git a/vendor/chillerlan/php-qrcode/public/index.html b/vendor/chillerlan/php-qrcode/public/index.html
new file mode 100644
index 000000000..d7bf6c891
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/public/index.html
@@ -0,0 +1,163 @@
+<!DOCTYPE html>
+<html lang="en" >
+<head >
+ <meta charset="UTF-8" >
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ <title >QR Code Generator</title >
+ <style >
+ body{ font-size: 20px; line-height: 1.4em; font-family: "Trebuchet MS", sans-serif; color: #000;}
+ input, textarea, select{font-family: Consolas, "Liberation Mono", Courier, monospace; font-size: 75%; line-height: 1.25em; border: 1px solid #aaa; }
+ input:focus, textarea:focus, select:focus{ border: 1px solid #ccc; }
+ label{ cursor: pointer; }
+ #qrcode-settings, div#qrcode-output{ text-align: center; }
+ div#qrcode-output > div {margin: 0;padding: 0;height: 3px;}
+ div#qrcode-output > div > span {display: inline-block;width: 3px;height: 3px;}
+ div#qrcode-output > div > span {background-color: lightgrey;}
+ </style >
+</head >
+<body >
+
+<form id="qrcode-settings" >
+
+ <label for="inputstring" >Input String</label ><br /><textarea name="inputstring" id="inputstring" cols="80" rows="3" autocomplete="off" spellcheck="false"></textarea ><br />
+
+ <label for="version" >Version</label >
+ <input id="version" name="version" class="options" type="number" min="1" max="40" value="5" placeholder="version" />
+
+ <label for="maskpattern" >Mask Pattern</label >
+ <input id="maskpattern" name="maskpattern" class="options" type="number" min="-1" max="7" value="-1" placeholder="mask pattern" />
+
+ <label for="ecc" >ECC</label >
+ <select class="options" id="ecc" name="ecc" >
+ <option value="L" selected="selected" >L - 7%</option >
+ <option value="M" >M - 15%</option >
+ <option value="Q" >Q - 25%</option >
+ <option value="H" >H - 30%</option >
+ </select >
+
+ <br />
+
+ <label for="quietzone" >Quiet Zone
+ <input id="quietzone" name="quietzone" class="options" type="checkbox" value="true" />
+ </label >
+
+ <label for="quietzonesize" >size</label >
+ <input id="quietzonesize" name="quietzonesize" class="options" type="number" min="0" max="100" value="4" placeholder="quiet zone" />
+
+ <br />
+
+ <label for="output_type" >Output</label >
+ <select class="options" id="output_type" name="output_type" >
+ <option value="html" >Markup - HTML</option >
+ <option value="svg" selected="selected" >Markup - SVG</option >
+ <option value="png">Image - png</option >
+ <option value="jpg" >Image - jpg</option >
+ <option value="gif" >Image - gif</option >
+ <option value="text" >String - text</option >
+ <option value="json" >String - json</option >
+ </select >
+
+ <label for="scale" >scale</label >
+ <input id="scale" name="scale" class="options" type="number" min="1" max="10" value="5" placeholder="scale" />
+
+ <div>Finder</div>
+ <label for="m_finder_light" >
+ <input type="text" id="m_finder_light" name="m_finder_light" class="jscolor options" value="ffffff" autocomplete="off" spellcheck="false" minlength="6" maxlength="6" />
+ </label >
+ <label for="m_finder_dark" >
+ <input type="text" id="m_finder_dark" name="m_finder_dark" class="jscolor options" value="000000" autocomplete="off" spellcheck="false" minlength="6" maxlength="6" />
+ </label >
+
+ <div>Alignment</div>
+ <label for="m_alignment_light" >
+ <input type="text" id="m_alignment_light" name="m_alignment_light" class="jscolor options" value="ffffff" autocomplete="off" spellcheck="false" minlength="6" maxlength="6" />
+ </label >
+ <label for="m_alignment_dark" >
+ <input type="text" id="m_alignment_dark" name="m_alignment_dark" class="jscolor options" value="000000" autocomplete="off" spellcheck="false" minlength="6" maxlength="6" />
+ </label >
+
+ <div>Timing</div>
+ <label for="m_timing_light" >
+ <input type="text" id="m_timing_light" name="m_timing_light" class="jscolor options" value="ffffff" autocomplete="off" spellcheck="false" minlength="6" maxlength="6" />
+ </label >
+ <label for="m_timing_dark" >
+ <input type="text" id="m_timing_dark" name="m_timing_dark" class="jscolor options" value="000000" autocomplete="off" spellcheck="false" minlength="6" maxlength="6" />
+ </label >
+
+ <div>Format</div>
+ <label for="m_format_light" >
+ <input type="text" id="m_format_light" name="m_format_light" class="jscolor options" value="ffffff" autocomplete="off" spellcheck="false" minlength="6" maxlength="6" />
+ </label >
+ <label for="m_format_dark" >
+ <input type="text" id="m_format_dark" name="m_format_dark" class="jscolor options" value="000000" autocomplete="off" spellcheck="false" minlength="6" maxlength="6" />
+ </label >
+
+ <div>Version</div>
+ <label for="m_version_light" >
+ <input type="text" id="m_version_light" name="m_version_light" class="jscolor options" value="ffffff" autocomplete="off" spellcheck="false" minlength="6" maxlength="6" />
+ </label >
+ <label for="m_version_dark" >
+ <input type="text" id="m_version_dark" name="m_version_dark" class="jscolor options" value="000000" autocomplete="off" spellcheck="false" minlength="6" maxlength="6" />
+ </label >
+
+ <div>Data</div>
+ <label for="m_data_light" >
+ <input type="text" id="m_data_light" name="m_data_light" class="jscolor options" value="ffffff" autocomplete="off" spellcheck="false" minlength="6" maxlength="6" />
+ </label >
+ <label for="m_data_dark" >
+ <input type="text" id="m_data_dark" name="m_data_dark" class="jscolor options" value="000000" autocomplete="off" spellcheck="false" minlength="6" maxlength="6" />
+ </label >
+
+ <div>Dark Module</div>
+ <label for="m_darkmodule_light" >
+ <input disabled="disabled" type="text" id="m_darkmodule_light" class="options" value="" autocomplete="off" spellcheck="false" />
+ </label >
+ <label for="m_darkmodule_dark" >
+ <input type="text" id="m_darkmodule_dark" name="m_darkmodule_dark" class="jscolor options" value="000000" autocomplete="off" spellcheck="false" minlength="6" maxlength="6" />
+ </label >
+
+ <div>Separator</div>
+ <label for="m_separator_light" >
+ <input type="text" id="m_separator_light" name="m_separator_light" class="jscolor options" value="ffffff" autocomplete="off" spellcheck="false" minlength="6" maxlength="6" />
+ </label >
+ <label for="m_separator_dark" >
+ <input disabled="disabled" type="text" id="m_separator_dark" class="options" value="" autocomplete="off" spellcheck="false" />
+ </label >
+
+ <div>Quiet Zone</div>
+ <label for="m_quietzone_light" >
+ <input type="text" id="m_quietzone_light" name="m_quietzone_light" class="jscolor options" value="ffffff" autocomplete="off" spellcheck="false" minlength="6" maxlength="6" />
+ </label >
+ <label for="m_quietzone_dark" >
+ <input disabled="disabled" type="text" id="m_quietzone_dark" class="options" value="" autocomplete="off" spellcheck="false" />
+ </label >
+
+ <br />
+ <button type="submit" >generate</button >
+</form >
+<div id="qrcode-output" ></div >
+
+<div><a href="https://play.google.com/store/apps/details?id=com.google.zxing.client.android" >ZXing Barcode Scanner</a ></div>
+<script src="https://cdnjs.cloudflare.com/ajax/libs/prototype/1.7.3/prototype.js" ></script >
+<script src="https://cdnjs.cloudflare.com/ajax/libs/jscolor/2.0.4/jscolor.js" ></script >
+<script >
+ ((form, output, url) => {
+
+ $(form).observe('submit', ev => {
+ Event.stop(ev);
+
+ new Ajax.Request(url, {
+ method: 'post',
+ parameters: ev.target.serialize(true),
+ onUninitialized: $(output).update(),
+ onLoading: $(output).update('[portlandia_screaming.gif]'),
+ onFailure: response => $(output).update(response.responseJSON.error),
+ onSuccess: response => $(output).update(response.responseJSON.qrcode),
+ });
+
+ });
+ })('qrcode-settings', 'qrcode-output', './qrcode.php');
+</script >
+
+</body >
+</html > \ No newline at end of file
diff --git a/vendor/chillerlan/php-qrcode/public/qrcode.php b/vendor/chillerlan/php-qrcode/public/qrcode.php
new file mode 100644
index 000000000..1f8427c7e
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/public/qrcode.php
@@ -0,0 +1,97 @@
+<?php
+/**
+ * @filesource qrcode.php
+ * @created 18.11.2017
+ * @author Smiley <[email protected]>
+ * @copyright 2017 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCodePublic;
+
+use chillerlan\QRCode\QRCode;
+use chillerlan\QRCode\QROptions;
+
+require_once '../vendor/autoload.php';
+
+try{
+
+ $moduleValues = [
+ // finder
+ 1536 => $_POST['m_finder_dark'],
+ 6 => $_POST['m_finder_light'],
+ // alignment
+ 2560 => $_POST['m_alignment_dark'],
+ 10 => $_POST['m_alignment_light'],
+ // timing
+ 3072 => $_POST['m_timing_dark'],
+ 12 => $_POST['m_timing_light'],
+ // format
+ 3584 => $_POST['m_format_dark'],
+ 14 => $_POST['m_format_light'],
+ // version
+ 4096 => $_POST['m_version_dark'],
+ 16 => $_POST['m_version_light'],
+ // data
+ 1024 => $_POST['m_data_dark'],
+ 4 => $_POST['m_data_light'],
+ // darkmodule
+ 512 => $_POST['m_darkmodule_dark'],
+ // separator
+ 8 => $_POST['m_separator_light'],
+ // quietzone
+ 18 => $_POST['m_quietzone_light'],
+ ];
+
+ $moduleValues = array_map(function($v){
+ if(preg_match('/[a-f\d]{6}/i', $v) === 1){
+ return in_array($_POST['output_type'], ['png', 'jpg', 'gif'])
+ ? array_map('hexdec', str_split($v, 2))
+ : '#'.$v ;
+ }
+ return null;
+ }, $moduleValues);
+
+
+ $ecc = in_array($_POST['ecc'], ['L', 'M', 'Q', 'H'], true) ? $_POST['ecc'] : 'L';
+
+ $qro = new QROptions;
+
+ $qro->version = (int)$_POST['version'];
+ $qro->eccLevel = constant('chillerlan\\QRCode\\QRCode::ECC_'.$ecc);
+ $qro->maskPattern = (int)$_POST['maskpattern'];
+ $qro->addQuietzone = isset($_POST['quietzone']);
+ $qro->quietzoneSize = (int)$_POST['quietzonesize'];
+ $qro->moduleValues = $moduleValues;
+ $qro->outputType = $_POST['output_type'];
+ $qro->scale = (int)$_POST['scale'];
+ $qro->imageTransparent = false;
+
+ $qrcode = (new QRCode($qro))->render($_POST['inputstring']);
+
+ if(in_array($_POST['output_type'], ['png', 'jpg', 'gif'])){
+ $qrcode = '<img src="'.$qrcode.'" />';
+ }
+ elseif($_POST['output_type'] === 'text'){
+ $qrcode = '<pre style="font-size: 75%; line-height: 1;">'.$qrcode.'</pre>';
+ }
+ elseif($_POST['output_type'] === 'json'){
+ $qrcode = '<pre style="font-size: 75%; overflow-x: auto;">'.$qrcode.'</pre>';
+ }
+
+ send_response(['qrcode' => $qrcode]);
+}
+// Pokémon exception handler
+catch(\Exception $e){
+ header('HTTP/1.1 500 Internal Server Error');
+ send_response(['error' => $e->getMessage()]);
+}
+
+/**
+ * @param array $response
+ */
+function send_response(array $response){
+ header('Content-type: application/json;charset=utf-8;');
+ echo json_encode($response);
+ exit;
+}
diff --git a/vendor/chillerlan/php-qrcode/src/Data/AlphaNum.php b/vendor/chillerlan/php-qrcode/src/Data/AlphaNum.php
new file mode 100644
index 000000000..c6d34e76f
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/src/Data/AlphaNum.php
@@ -0,0 +1,65 @@
+<?php
+/**
+ * Class AlphaNum
+ *
+ * @filesource AlphaNum.php
+ * @created 25.11.2015
+ * @package chillerlan\QRCode\Data
+ * @author Smiley <[email protected]>
+ * @copyright 2015 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCode\Data;
+
+use chillerlan\QRCode\QRCode;
+
+use function array_search, ord, sprintf;
+
+/**
+ * Alphanumeric mode: 0 to 9, A to Z, space, $ % * + - . / :
+ */
+class AlphaNum extends QRDataAbstract{
+
+ /**
+ * @inheritdoc
+ */
+ protected $datamode = QRCode::DATA_ALPHANUM;
+
+ /**
+ * @inheritdoc
+ */
+ protected $lengthBits = [9, 11, 13];
+
+ /**
+ * @inheritdoc
+ */
+ protected function write(string $data):void{
+
+ for($i = 0; $i + 1 < $this->strlen; $i += 2){
+ $this->bitBuffer->put($this->getCharCode($data[$i]) * 45 + $this->getCharCode($data[$i + 1]), 11);
+ }
+
+ if($i < $this->strlen){
+ $this->bitBuffer->put($this->getCharCode($data[$i]), 6);
+ }
+
+ }
+
+ /**
+ * @param string $chr
+ *
+ * @return int
+ * @throws \chillerlan\QRCode\Data\QRCodeDataException
+ */
+ protected function getCharCode(string $chr):int{
+ $i = array_search($chr, $this::ALPHANUM_CHAR_MAP);
+
+ if($i !== false){
+ return $i;
+ }
+
+ throw new QRCodeDataException(sprintf('illegal char: "%s" [%d]', $chr, ord($chr)));
+ }
+
+}
diff --git a/vendor/chillerlan/php-qrcode/src/Data/Byte.php b/vendor/chillerlan/php-qrcode/src/Data/Byte.php
new file mode 100644
index 000000000..f1955645a
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/src/Data/Byte.php
@@ -0,0 +1,47 @@
+<?php
+/**
+ * Class Byte
+ *
+ * @filesource Byte.php
+ * @created 25.11.2015
+ * @package chillerlan\QRCode\Data
+ * @author Smiley <[email protected]>
+ * @copyright 2015 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCode\Data;
+
+use chillerlan\QRCode\QRCode;
+
+use function ord;
+
+/**
+ * Byte mode, ISO-8859-1 or UTF-8
+ */
+class Byte extends QRDataAbstract{
+
+ /**
+ * @inheritdoc
+ */
+ protected $datamode = QRCode::DATA_BYTE;
+
+ /**
+ * @inheritdoc
+ */
+ protected $lengthBits = [8, 16, 16];
+
+ /**
+ * @inheritdoc
+ */
+ protected function write(string $data):void{
+ $i = 0;
+
+ while($i < $this->strlen){
+ $this->bitBuffer->put(ord($data[$i]), 8);
+ $i++;
+ }
+
+ }
+
+}
diff --git a/vendor/chillerlan/php-qrcode/src/Data/Kanji.php b/vendor/chillerlan/php-qrcode/src/Data/Kanji.php
new file mode 100644
index 000000000..ce600d4ff
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/src/Data/Kanji.php
@@ -0,0 +1,70 @@
+<?php
+/**
+ * Class Kanji
+ *
+ * @filesource Kanji.php
+ * @created 25.11.2015
+ * @package chillerlan\QRCode\Data
+ * @author Smiley <[email protected]>
+ * @copyright 2015 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCode\Data;
+
+use chillerlan\QRCode\QRCode;
+
+use function mb_strlen, ord, sprintf, strlen;
+
+/**
+ * Kanji mode: double-byte characters from the Shift JIS character set
+ */
+class Kanji extends QRDataAbstract{
+
+ /**
+ * @inheritdoc
+ */
+ protected $datamode = QRCode::DATA_KANJI;
+
+ /**
+ * @inheritdoc
+ */
+ protected $lengthBits = [8, 10, 12];
+
+ /**
+ * @inheritdoc
+ */
+ protected function getLength(string $data):int{
+ return mb_strlen($data, 'SJIS');
+ }
+
+ /**
+ * @inheritdoc
+ */
+ protected function write(string $data):void{
+ $len = strlen($data);
+
+ for($i = 0; $i + 1 < $len; $i += 2){
+ $c = ((0xff & ord($data[$i])) << 8) | (0xff & ord($data[$i + 1]));
+
+ if(0x8140 <= $c && $c <= 0x9FFC){
+ $c -= 0x8140;
+ }
+ elseif(0xE040 <= $c && $c <= 0xEBBF){
+ $c -= 0xC140;
+ }
+ else{
+ throw new QRCodeDataException(sprintf('illegal char at %d [%d]', $i + 1, $c));
+ }
+
+ $this->bitBuffer->put((($c >> 8) & 0xff) * 0xC0 + ($c & 0xff), 13);
+
+ }
+
+ if($i < $len){
+ throw new QRCodeDataException(sprintf('illegal char at %d', $i + 1));
+ }
+
+ }
+
+}
diff --git a/vendor/chillerlan/php-qrcode/src/Data/MaskPatternTester.php b/vendor/chillerlan/php-qrcode/src/Data/MaskPatternTester.php
new file mode 100644
index 000000000..8dfd24180
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/src/Data/MaskPatternTester.php
@@ -0,0 +1,203 @@
+<?php
+/**
+ * Class MaskPatternTester
+ *
+ * @filesource MaskPatternTester.php
+ * @created 22.11.2017
+ * @package chillerlan\QRCode\Data
+ * @author Smiley <[email protected]>
+ * @copyright 2017 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCode\Data;
+
+use function abs, call_user_func_array;
+
+/**
+ * The sole purpose of this class is to receive a QRMatrix object and run the pattern tests on it.
+ *
+ * @link http://www.thonky.com/qr-code-tutorial/data-masking
+ */
+class MaskPatternTester{
+
+ /**
+ * @var \chillerlan\QRCode\Data\QRMatrix
+ */
+ protected $matrix;
+
+ /**
+ * @var int
+ */
+ protected $moduleCount;
+
+ /**
+ * Receives the matrix an sets the module count
+ *
+ * @see \chillerlan\QRCode\QROptions::$maskPattern
+ * @see \chillerlan\QRCode\Data\QRMatrix::$maskPattern
+ * @see \chillerlan\QRCode\QRCode::getBestMaskPattern()
+ *
+ * @param \chillerlan\QRCode\Data\QRMatrix $matrix
+ */
+ public function __construct(QRMatrix $matrix){
+ $this->matrix = $matrix;
+ $this->moduleCount = $this->matrix->size();
+ }
+
+ /**
+ * Returns the penalty for the given mask pattern
+ *
+ * @see \chillerlan\QRCode\QROptions::$maskPattern
+ * @see \chillerlan\QRCode\Data\QRMatrix::$maskPattern
+ * @see \chillerlan\QRCode\QRCode::getBestMaskPattern()
+ *
+ * @return int
+ */
+ public function testPattern():int{
+ $penalty = 0;
+
+ for($level = 1; $level <= 4; $level++){
+ $penalty += call_user_func_array([$this, 'testLevel'.$level], [$this->matrix->matrix(true)]);
+ }
+
+ return (int)$penalty;
+ }
+
+ /**
+ * Checks for each group of five or more same-colored modules in a row (or column)
+ *
+ * @return int
+ */
+ protected function testLevel1(array $m):int{
+ $penalty = 0;
+
+ foreach($m as $y => $row){
+ foreach($row as $x => $val){
+ $count = 0;
+
+ for($ry = -1; $ry <= 1; $ry++){
+
+ if($y + $ry < 0 || $this->moduleCount <= $y + $ry){
+ continue;
+ }
+
+ for($rx = -1; $rx <= 1; $rx++){
+
+ if(($ry === 0 && $rx === 0) || (($x + $rx) < 0 || $this->moduleCount <= ($x + $rx))){
+ continue;
+ }
+
+ if($m[$y + $ry][$x + $rx] === $val){
+ $count++;
+ }
+
+ }
+ }
+
+ if($count > 5){
+ $penalty += (3 + $count - 5);
+ }
+
+ }
+ }
+
+ return $penalty;
+ }
+
+ /**
+ * Checks for each 2x2 area of same-colored modules in the matrix
+ *
+ * @return int
+ */
+ protected function testLevel2(array $m):int{
+ $penalty = 0;
+
+ foreach($m as $y => $row){
+
+ if($y > ($this->moduleCount - 2)){
+ break;
+ }
+
+ foreach($row as $x => $val){
+
+ if($x > ($this->moduleCount - 2)){
+ break;
+ }
+
+ if(
+ $val === $m[$y][$x + 1]
+ && $val === $m[$y + 1][$x]
+ && $val === $m[$y + 1][$x + 1]
+ ){
+ $penalty++;
+ }
+ }
+ }
+
+ return 3 * $penalty;
+ }
+
+ /**
+ * Checks if there are patterns that look similar to the finder patterns (1:1:3:1:1 ratio)
+ *
+ * @return int
+ */
+ protected function testLevel3(array $m):int{
+ $penalties = 0;
+
+ foreach($m as $y => $row){
+ foreach($row as $x => $val){
+
+ if(
+ ($x + 6) < $this->moduleCount
+ && $val
+ && !$m[$y][$x + 1]
+ && $m[$y][$x + 2]
+ && $m[$y][$x + 3]
+ && $m[$y][$x + 4]
+ && !$m[$y][$x + 5]
+ && $m[$y][$x + 6]
+ ){
+ $penalties++;
+ }
+
+ if(
+ ($y + 6) < $this->moduleCount
+ && $val
+ && !$m[$y + 1][$x]
+ && $m[$y + 2][$x]
+ && $m[$y + 3][$x]
+ && $m[$y + 4][$x]
+ && !$m[$y + 5][$x]
+ && $m[$y + 6][$x]
+ ){
+ $penalties++;
+ }
+
+ }
+ }
+
+ return $penalties * 40;
+ }
+
+ /**
+ * Checks if more than half of the modules are dark or light, with a larger penalty for a larger difference
+ *
+ * @return float
+ */
+ protected function testLevel4(array $m):float{
+ $count = 0;
+
+ foreach($m as $y => $row){
+ foreach($row as $x => $val){
+ if($val){
+ $count++;
+ }
+ }
+ }
+
+ return (abs(100 * $count / $this->moduleCount / $this->moduleCount - 50) / 5) * 10;
+ }
+
+}
diff --git a/vendor/chillerlan/php-qrcode/src/Data/Number.php b/vendor/chillerlan/php-qrcode/src/Data/Number.php
new file mode 100644
index 000000000..3936d12c3
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/src/Data/Number.php
@@ -0,0 +1,82 @@
+<?php
+/**
+ * Class Number
+ *
+ * @filesource Number.php
+ * @created 26.11.2015
+ * @package QRCode
+ * @author Smiley <[email protected]>
+ * @copyright 2015 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCode\Data;
+
+use chillerlan\QRCode\QRCode;
+
+use function ord, sprintf, substr;
+
+/**
+ * Numeric mode: decimal digits 0 through 9
+ */
+class Number extends QRDataAbstract{
+
+ /**
+ * @inheritdoc
+ */
+ protected $datamode = QRCode::DATA_NUMBER;
+
+ /**
+ * @inheritdoc
+ */
+ protected $lengthBits = [10, 12, 14];
+
+ /**
+ * @inheritdoc
+ */
+ protected function write(string $data):void{
+ $i = 0;
+
+ while($i + 2 < $this->strlen){
+ $this->bitBuffer->put($this->parseInt(substr($data, $i, 3)), 10);
+ $i += 3;
+ }
+
+ if($i < $this->strlen){
+
+ if($this->strlen - $i === 1){
+ $this->bitBuffer->put($this->parseInt(substr($data, $i, $i + 1)), 4);
+ }
+ elseif($this->strlen - $i === 2){
+ $this->bitBuffer->put($this->parseInt(substr($data, $i, $i + 2)), 7);
+ }
+
+ }
+
+ }
+
+ /**
+ * @param string $string
+ *
+ * @return int
+ * @throws \chillerlan\QRCode\Data\QRCodeDataException
+ */
+ protected function parseInt(string $string):int{
+ $num = 0;
+
+ $len = strlen($string);
+ for($i = 0; $i < $len; $i++){
+ $c = ord($string[$i]);
+
+ if(!in_array($string[$i], $this::NUMBER_CHAR_MAP, true)){
+ throw new QRCodeDataException(sprintf('illegal char: "%s" [%d]', $string[$i], $c));
+ }
+
+ $c = $c - 48; // ord('0')
+ $num = $num * 10 + $c;
+ }
+
+ return $num;
+ }
+
+}
diff --git a/vendor/chillerlan/php-qrcode/src/Data/QRCodeDataException.php b/vendor/chillerlan/php-qrcode/src/Data/QRCodeDataException.php
new file mode 100644
index 000000000..862f57ba0
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/src/Data/QRCodeDataException.php
@@ -0,0 +1,17 @@
+<?php
+/**
+ * Class QRCodeDataException
+ *
+ * @filesource QRCodeDataException.php
+ * @created 09.12.2015
+ * @package chillerlan\QRCode\Data
+ * @author Smiley <[email protected]>
+ * @copyright 2015 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCode\Data;
+
+use chillerlan\QRCode\QRCodeException;
+
+class QRCodeDataException extends QRCodeException{}
diff --git a/vendor/chillerlan/php-qrcode/src/Data/QRDataAbstract.php b/vendor/chillerlan/php-qrcode/src/Data/QRDataAbstract.php
new file mode 100644
index 000000000..f52767e38
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/src/Data/QRDataAbstract.php
@@ -0,0 +1,351 @@
+<?php
+/**
+ * Class QRDataAbstract
+ *
+ * @filesource QRDataAbstract.php
+ * @created 25.11.2015
+ * @package chillerlan\QRCode\Data
+ * @author Smiley <[email protected]>
+ * @copyright 2015 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCode\Data;
+
+use chillerlan\QRCode\{QRCode, QRCodeException};
+use chillerlan\QRCode\Helpers\{BitBuffer, Polynomial};
+use chillerlan\Settings\SettingsContainerInterface;
+
+use function array_fill, array_merge, count, max, mb_convert_encoding, mb_detect_encoding, range, sprintf, strlen;
+
+/**
+ * Processes the binary data and maps it on a matrix which is then being returned
+ */
+abstract class QRDataAbstract implements QRDataInterface{
+
+ /**
+ * the string byte count
+ *
+ * @var int
+ */
+ protected $strlen;
+
+ /**
+ * the current data mode: Num, Alphanum, Kanji, Byte
+ *
+ * @var int
+ */
+ protected $datamode;
+
+ /**
+ * mode length bits for the version breakpoints 1-9, 10-26 and 27-40
+ *
+ * @var array
+ */
+ protected $lengthBits = [0, 0, 0];
+
+ /**
+ * current QR Code version
+ *
+ * @var int
+ */
+ protected $version;
+
+ /**
+ * the raw data that's being passed to QRMatrix::mapData()
+ *
+ * @var array
+ */
+ protected $matrixdata;
+
+ /**
+ * ECC temp data
+ *
+ * @var array
+ */
+ protected $ecdata;
+
+ /**
+ * ECC temp data
+ *
+ * @var array
+ */
+ protected $dcdata;
+
+ /**
+ * @var \chillerlan\QRCode\QROptions
+ */
+ protected $options;
+
+ /**
+ * @var \chillerlan\QRCode\Helpers\BitBuffer
+ */
+ protected $bitBuffer;
+
+ /**
+ * QRDataInterface constructor.
+ *
+ * @param \chillerlan\Settings\SettingsContainerInterface $options
+ * @param string|null $data
+ */
+ public function __construct(SettingsContainerInterface $options, string $data = null){
+ $this->options = $options;
+
+ if($data !== null){
+ $this->setData($data);
+ }
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function setData(string $data):QRDataInterface{
+
+ if($this->datamode === QRCode::DATA_KANJI){
+ $data = mb_convert_encoding($data, 'SJIS', mb_detect_encoding($data));
+ }
+
+ $this->strlen = $this->getLength($data);
+ $this->version = $this->options->version === QRCode::VERSION_AUTO
+ ? $this->getMinimumVersion()
+ : $this->options->version;
+
+ $this->matrixdata = $this
+ ->writeBitBuffer($data)
+ ->maskECC()
+ ;
+
+ return $this;
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function initMatrix(int $maskPattern, bool $test = null):QRMatrix{
+ return (new QRMatrix($this->version, $this->options->eccLevel))
+ ->setFinderPattern()
+ ->setSeparators()
+ ->setAlignmentPattern()
+ ->setTimingPattern()
+ ->setVersionNumber($test)
+ ->setFormatInfo($maskPattern, $test)
+ ->setDarkModule()
+ ->mapData($this->matrixdata, $maskPattern)
+ ;
+ }
+
+ /**
+ * returns the length bits for the version breakpoints 1-9, 10-26 and 27-40
+ *
+ * @return int
+ * @throws \chillerlan\QRCode\Data\QRCodeDataException
+ * @codeCoverageIgnore
+ */
+ protected function getLengthBits():int{
+
+ foreach([9, 26, 40] as $key => $breakpoint){
+ if($this->version <= $breakpoint){
+ return $this->lengthBits[$key];
+ }
+ }
+
+ throw new QRCodeDataException(sprintf('invalid version number: %d', $this->version));
+ }
+
+ /**
+ * returns the byte count of the $data string
+ *
+ * @param string $data
+ *
+ * @return int
+ */
+ protected function getLength(string $data):int{
+ return strlen($data);
+ }
+
+ /**
+ * returns the minimum version number for the given string
+ *
+ * @return int
+ * @throws \chillerlan\QRCode\Data\QRCodeDataException
+ */
+ protected function getMinimumVersion():int{
+ $maxlength = 0;
+
+ // guess the version number within the given range
+ foreach(range($this->options->versionMin, $this->options->versionMax) as $version){
+ $maxlength = $this::MAX_LENGTH[$version][QRCode::DATA_MODES[$this->datamode]][QRCode::ECC_MODES[$this->options->eccLevel]];
+
+ if($this->strlen <= $maxlength){
+ return $version;
+ }
+ }
+
+ throw new QRCodeDataException(sprintf('data exceeds %d characters', $maxlength));
+ }
+
+ /**
+ * writes the actual data string to the BitBuffer
+ *
+ * @see \chillerlan\QRCode\Data\QRDataAbstract::writeBitBuffer()
+ *
+ * @param string $data
+ *
+ * @return void
+ */
+ abstract protected function write(string $data):void;
+
+ /**
+ * creates a BitBuffer and writes the string data to it
+ *
+ * @param string $data
+ *
+ * @return \chillerlan\QRCode\Data\QRDataAbstract
+ * @throws \chillerlan\QRCode\QRCodeException
+ */
+ protected function writeBitBuffer(string $data):QRDataInterface{
+ $this->bitBuffer = new BitBuffer;
+
+ $MAX_BITS = $this::MAX_BITS[$this->version][QRCode::ECC_MODES[$this->options->eccLevel]];
+
+ $this->bitBuffer
+ ->clear()
+ ->put($this->datamode, 4)
+ ->put($this->strlen, $this->getLengthBits())
+ ;
+
+ $this->write($data);
+
+ // there was an error writing the BitBuffer data, which is... unlikely.
+ if($this->bitBuffer->length > $MAX_BITS){
+ throw new QRCodeException(sprintf('code length overflow. (%d > %d bit)', $this->bitBuffer->length, $MAX_BITS)); // @codeCoverageIgnore
+ }
+
+ // end code.
+ if($this->bitBuffer->length + 4 <= $MAX_BITS){
+ $this->bitBuffer->put(0, 4);
+ }
+
+ // padding
+ while($this->bitBuffer->length % 8 !== 0){
+ $this->bitBuffer->putBit(false);
+ }
+
+ // padding
+ while(true){
+
+ if($this->bitBuffer->length >= $MAX_BITS){
+ break;
+ }
+
+ $this->bitBuffer->put(0xEC, 8);
+
+ if($this->bitBuffer->length >= $MAX_BITS){
+ break;
+ }
+
+ $this->bitBuffer->put(0x11, 8);
+ }
+
+ return $this;
+ }
+
+ /**
+ * ECC masking
+ *
+ * @link http://www.thonky.com/qr-code-tutorial/error-correction-coding
+ *
+ * @return array
+ */
+ protected function maskECC():array{
+ [$l1, $l2, $b1, $b2] = $this::RSBLOCKS[$this->version][QRCode::ECC_MODES[$this->options->eccLevel]];
+
+ $rsBlocks = array_fill(0, $l1, [$b1, $b2]);
+ $rsCount = $l1 + $l2;
+ $this->ecdata = array_fill(0, $rsCount, null);
+ $this->dcdata = $this->ecdata;
+
+ if($l2 > 0){
+ $rsBlocks = array_merge($rsBlocks, array_fill(0, $l2, [$b1 + 1, $b2 + 1]));
+ }
+
+ $totalCodeCount = 0;
+ $maxDcCount = 0;
+ $maxEcCount = 0;
+ $offset = 0;
+
+ foreach($rsBlocks as $key => $block){
+ [$rsBlockTotal, $dcCount] = $block;
+
+ $ecCount = $rsBlockTotal - $dcCount;
+ $maxDcCount = max($maxDcCount, $dcCount);
+ $maxEcCount = max($maxEcCount, $ecCount);
+ $this->dcdata[$key] = array_fill(0, $dcCount, null);
+
+ foreach($this->dcdata[$key] as $a => $_z){
+ $this->dcdata[$key][$a] = 0xff & $this->bitBuffer->buffer[$a + $offset];
+ }
+
+ [$num, $add] = $this->poly($key, $ecCount);
+
+ foreach($this->ecdata[$key] as $c => $_z){
+ $modIndex = $c + $add;
+ $this->ecdata[$key][$c] = $modIndex >= 0 ? $num[$modIndex] : 0;
+ }
+
+ $offset += $dcCount;
+ $totalCodeCount += $rsBlockTotal;
+ }
+
+ $data = array_fill(0, $totalCodeCount, null);
+ $index = 0;
+
+ $mask = function($arr, $count) use (&$data, &$index, $rsCount){
+ for($x = 0; $x < $count; $x++){
+ for($y = 0; $y < $rsCount; $y++){
+ if($x < count($arr[$y])){
+ $data[$index] = $arr[$y][$x];
+ $index++;
+ }
+ }
+ }
+ };
+
+ $mask($this->dcdata, $maxDcCount);
+ $mask($this->ecdata, $maxEcCount);
+
+ return $data;
+ }
+
+ /**
+ * @param int $key
+ * @param int $count
+ *
+ * @return int[]
+ */
+ protected function poly(int $key, int $count):array{
+ $rsPoly = new Polynomial;
+ $modPoly = new Polynomial;
+
+ for($i = 0; $i < $count; $i++){
+ $modPoly->setNum([1, $modPoly->gexp($i)]);
+ $rsPoly->multiply($modPoly->getNum());
+ }
+
+ $rsPolyCount = count($rsPoly->getNum());
+
+ $modPoly
+ ->setNum($this->dcdata[$key], $rsPolyCount - 1)
+ ->mod($rsPoly->getNum())
+ ;
+
+ $this->ecdata[$key] = array_fill(0, $rsPolyCount - 1, null);
+ $num = $modPoly->getNum();
+
+ return [
+ $num,
+ count($num) - count($this->ecdata[$key]),
+ ];
+ }
+
+}
diff --git a/vendor/chillerlan/php-qrcode/src/Data/QRDataInterface.php b/vendor/chillerlan/php-qrcode/src/Data/QRDataInterface.php
new file mode 100644
index 000000000..653386222
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/src/Data/QRDataInterface.php
@@ -0,0 +1,187 @@
+<?php
+/**
+ * Interface QRDataInterface
+ *
+ * @filesource QRDataInterface.php
+ * @created 01.12.2015
+ * @package chillerlan\QRCode\Data
+ * @author Smiley <[email protected]>
+ * @copyright 2015 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCode\Data;
+
+/**
+ *
+ */
+interface QRDataInterface{
+
+ const NUMBER_CHAR_MAP = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
+
+ const ALPHANUM_CHAR_MAP = [
+ '0', '1', '2', '3', '4', '5', '6', '7',
+ '8', '9', 'A', 'B', 'C', 'D', 'E', 'F',
+ 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N',
+ 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V',
+ 'W', 'X', 'Y', 'Z', ' ', '$', '%', '*',
+ '+', '-', '.', '/', ':',
+ ];
+
+ /**
+ * @link http://www.qrcode.com/en/about/version.html
+ */
+ const MAX_LENGTH =[
+ // v => [NUMERIC => [L, M, Q, H ], ALPHANUM => [L, M, Q, H], BINARY => [L, M, Q, H ], KANJI => [L, M, Q, H ]] // modules
+ 1 => [[ 41, 34, 27, 17], [ 25, 20, 16, 10], [ 17, 14, 11, 7], [ 10, 8, 7, 4]], // 21
+ 2 => [[ 77, 63, 48, 34], [ 47, 38, 29, 20], [ 32, 26, 20, 14], [ 20, 16, 12, 8]], // 25
+ 3 => [[ 127, 101, 77, 58], [ 77, 61, 47, 35], [ 53, 42, 32, 24], [ 32, 26, 20, 15]], // 29
+ 4 => [[ 187, 149, 111, 82], [ 114, 90, 67, 50], [ 78, 62, 46, 34], [ 48, 38, 28, 21]], // 33
+ 5 => [[ 255, 202, 144, 106], [ 154, 122, 87, 64], [ 106, 84, 60, 44], [ 65, 52, 37, 27]], // 37
+ 6 => [[ 322, 255, 178, 139], [ 195, 154, 108, 84], [ 134, 106, 74, 58], [ 82, 65, 45, 36]], // 41
+ 7 => [[ 370, 293, 207, 154], [ 224, 178, 125, 93], [ 154, 122, 86, 64], [ 95, 75, 53, 39]], // 45
+ 8 => [[ 461, 365, 259, 202], [ 279, 221, 157, 122], [ 192, 152, 108, 84], [ 118, 93, 66, 52]], // 49
+ 9 => [[ 552, 432, 312, 235], [ 335, 262, 189, 143], [ 230, 180, 130, 98], [ 141, 111, 80, 60]], // 53
+ 10 => [[ 652, 513, 364, 288], [ 395, 311, 221, 174], [ 271, 213, 151, 119], [ 167, 131, 93, 74]], // 57
+ 11 => [[ 772, 604, 427, 331], [ 468, 366, 259, 200], [ 321, 251, 177, 137], [ 198, 155, 109, 85]], // 61
+ 12 => [[ 883, 691, 489, 374], [ 535, 419, 296, 227], [ 367, 287, 203, 155], [ 226, 177, 125, 96]], // 65
+ 13 => [[1022, 796, 580, 427], [ 619, 483, 352, 259], [ 425, 331, 241, 177], [ 262, 204, 149, 109]], // 69 NICE!
+ 14 => [[1101, 871, 621, 468], [ 667, 528, 376, 283], [ 458, 362, 258, 194], [ 282, 223, 159, 120]], // 73
+ 15 => [[1250, 991, 703, 530], [ 758, 600, 426, 321], [ 520, 412, 292, 220], [ 320, 254, 180, 136]], // 77
+ 16 => [[1408, 1082, 775, 602], [ 854, 656, 470, 365], [ 586, 450, 322, 250], [ 361, 277, 198, 154]], // 81
+ 17 => [[1548, 1212, 876, 674], [ 938, 734, 531, 408], [ 644, 504, 364, 280], [ 397, 310, 224, 173]], // 85
+ 18 => [[1725, 1346, 948, 746], [1046, 816, 574, 452], [ 718, 560, 394, 310], [ 442, 345, 243, 191]], // 89
+ 19 => [[1903, 1500, 1063, 813], [1153, 909, 644, 493], [ 792, 624, 442, 338], [ 488, 384, 272, 208]], // 93
+ 20 => [[2061, 1600, 1159, 919], [1249, 970, 702, 557], [ 858, 666, 482, 382], [ 528, 410, 297, 235]], // 97
+ 21 => [[2232, 1708, 1224, 969], [1352, 1035, 742, 587], [ 929, 711, 509, 403], [ 572, 438, 314, 248]], // 101
+ 22 => [[2409, 1872, 1358, 1056], [1460, 1134, 823, 640], [1003, 779, 565, 439], [ 618, 480, 348, 270]], // 105
+ 23 => [[2620, 2059, 1468, 1108], [1588, 1248, 890, 672], [1091, 857, 611, 461], [ 672, 528, 376, 284]], // 109
+ 24 => [[2812, 2188, 1588, 1228], [1704, 1326, 963, 744], [1171, 911, 661, 511], [ 721, 561, 407, 315]], // 113
+ 25 => [[3057, 2395, 1718, 1286], [1853, 1451, 1041, 779], [1273, 997, 715, 535], [ 784, 614, 440, 330]], // 117
+ 26 => [[3283, 2544, 1804, 1425], [1990, 1542, 1094, 864], [1367, 1059, 751, 593], [ 842, 652, 462, 365]], // 121
+ 27 => [[3517, 2701, 1933, 1501], [2132, 1637, 1172, 910], [1465, 1125, 805, 625], [ 902, 692, 496, 385]], // 125
+ 28 => [[3669, 2857, 2085, 1581], [2223, 1732, 1263, 958], [1528, 1190, 868, 658], [ 940, 732, 534, 405]], // 129
+ 29 => [[3909, 3035, 2181, 1677], [2369, 1839, 1322, 1016], [1628, 1264, 908, 698], [1002, 778, 559, 430]], // 133
+ 30 => [[4158, 3289, 2358, 1782], [2520, 1994, 1429, 1080], [1732, 1370, 982, 742], [1066, 843, 604, 457]], // 137
+ 31 => [[4417, 3486, 2473, 1897], [2677, 2113, 1499, 1150], [1840, 1452, 1030, 790], [1132, 894, 634, 486]], // 141
+ 32 => [[4686, 3693, 2670, 2022], [2840, 2238, 1618, 1226], [1952, 1538, 1112, 842], [1201, 947, 684, 518]], // 145
+ 33 => [[4965, 3909, 2805, 2157], [3009, 2369, 1700, 1307], [2068, 1628, 1168, 898], [1273, 1002, 719, 553]], // 149
+ 34 => [[5253, 4134, 2949, 2301], [3183, 2506, 1787, 1394], [2188, 1722, 1228, 958], [1347, 1060, 756, 590]], // 153
+ 35 => [[5529, 4343, 3081, 2361], [3351, 2632, 1867, 1431], [2303, 1809, 1283, 983], [1417, 1113, 790, 605]], // 157
+ 36 => [[5836, 4588, 3244, 2524], [3537, 2780, 1966, 1530], [2431, 1911, 1351, 1051], [1496, 1176, 832, 647]], // 161
+ 37 => [[6153, 4775, 3417, 2625], [3729, 2894, 2071, 1591], [2563, 1989, 1423, 1093], [1577, 1224, 876, 673]], // 165
+ 38 => [[6479, 5039, 3599, 2735], [3927, 3054, 2181, 1658], [2699, 2099, 1499, 1139], [1661, 1292, 923, 701]], // 169
+ 39 => [[6743, 5313, 3791, 2927], [4087, 3220, 2298, 1774], [2809, 2213, 1579, 1219], [1729, 1362, 972, 750]], // 173
+ 40 => [[7089, 5596, 3993, 3057], [4296, 3391, 2420, 1852], [2953, 2331, 1663, 1273], [1817, 1435, 1024, 784]], // 177
+ ];
+
+ const MAX_BITS = [
+ // version => [L, M, Q, H ]
+ 1 => [ 152, 128, 104, 72],
+ 2 => [ 272, 224, 176, 128],
+ 3 => [ 440, 352, 272, 208],
+ 4 => [ 640, 512, 384, 288],
+ 5 => [ 864, 688, 496, 368],
+ 6 => [ 1088, 864, 608, 480],
+ 7 => [ 1248, 992, 704, 528],
+ 8 => [ 1552, 1232, 880, 688],
+ 9 => [ 1856, 1456, 1056, 800],
+ 10 => [ 2192, 1728, 1232, 976],
+ 11 => [ 2592, 2032, 1440, 1120],
+ 12 => [ 2960, 2320, 1648, 1264],
+ 13 => [ 3424, 2672, 1952, 1440],
+ 14 => [ 3688, 2920, 2088, 1576],
+ 15 => [ 4184, 3320, 2360, 1784],
+ 16 => [ 4712, 3624, 2600, 2024],
+ 17 => [ 5176, 4056, 2936, 2264],
+ 18 => [ 5768, 4504, 3176, 2504],
+ 19 => [ 6360, 5016, 3560, 2728],
+ 20 => [ 6888, 5352, 3880, 3080],
+ 21 => [ 7456, 5712, 4096, 3248],
+ 22 => [ 8048, 6256, 4544, 3536],
+ 23 => [ 8752, 6880, 4912, 3712],
+ 24 => [ 9392, 7312, 5312, 4112],
+ 25 => [10208, 8000, 5744, 4304],
+ 26 => [10960, 8496, 6032, 4768],
+ 27 => [11744, 9024, 6464, 5024],
+ 28 => [12248, 9544, 6968, 5288],
+ 29 => [13048, 10136, 7288, 5608],
+ 30 => [13880, 10984, 7880, 5960],
+ 31 => [14744, 11640, 8264, 6344],
+ 32 => [15640, 12328, 8920, 6760],
+ 33 => [16568, 13048, 9368, 7208],
+ 34 => [17528, 13800, 9848, 7688],
+ 35 => [18448, 14496, 10288, 7888],
+ 36 => [19472, 15312, 10832, 8432],
+ 37 => [20528, 15936, 11408, 8768],
+ 38 => [21616, 16816, 12016, 9136],
+ 39 => [22496, 17728, 12656, 9776],
+ 40 => [23648, 18672, 13328, 10208],
+ ];
+
+ /**
+ * @link http://www.thonky.com/qr-code-tutorial/error-correction-table
+ */
+ const RSBLOCKS = [
+ 1 => [[ 1, 0, 26, 19], [ 1, 0, 26, 16], [ 1, 0, 26, 13], [ 1, 0, 26, 9]],
+ 2 => [[ 1, 0, 44, 34], [ 1, 0, 44, 28], [ 1, 0, 44, 22], [ 1, 0, 44, 16]],
+ 3 => [[ 1, 0, 70, 55], [ 1, 0, 70, 44], [ 2, 0, 35, 17], [ 2, 0, 35, 13]],
+ 4 => [[ 1, 0, 100, 80], [ 2, 0, 50, 32], [ 2, 0, 50, 24], [ 4, 0, 25, 9]],
+ 5 => [[ 1, 0, 134, 108], [ 2, 0, 67, 43], [ 2, 2, 33, 15], [ 2, 2, 33, 11]],
+ 6 => [[ 2, 0, 86, 68], [ 4, 0, 43, 27], [ 4, 0, 43, 19], [ 4, 0, 43, 15]],
+ 7 => [[ 2, 0, 98, 78], [ 4, 0, 49, 31], [ 2, 4, 32, 14], [ 4, 1, 39, 13]],
+ 8 => [[ 2, 0, 121, 97], [ 2, 2, 60, 38], [ 4, 2, 40, 18], [ 4, 2, 40, 14]],
+ 9 => [[ 2, 0, 146, 116], [ 3, 2, 58, 36], [ 4, 4, 36, 16], [ 4, 4, 36, 12]],
+ 10 => [[ 2, 2, 86, 68], [ 4, 1, 69, 43], [ 6, 2, 43, 19], [ 6, 2, 43, 15]],
+ 11 => [[ 4, 0, 101, 81], [ 1, 4, 80, 50], [ 4, 4, 50, 22], [ 3, 8, 36, 12]],
+ 12 => [[ 2, 2, 116, 92], [ 6, 2, 58, 36], [ 4, 6, 46, 20], [ 7, 4, 42, 14]],
+ 13 => [[ 4, 0, 133, 107], [ 8, 1, 59, 37], [ 8, 4, 44, 20], [12, 4, 33, 11]],
+ 14 => [[ 3, 1, 145, 115], [ 4, 5, 64, 40], [11, 5, 36, 16], [11, 5, 36, 12]],
+ 15 => [[ 5, 1, 109, 87], [ 5, 5, 65, 41], [ 5, 7, 54, 24], [11, 7, 36, 12]],
+ 16 => [[ 5, 1, 122, 98], [ 7, 3, 73, 45], [15, 2, 43, 19], [ 3, 13, 45, 15]],
+ 17 => [[ 1, 5, 135, 107], [10, 1, 74, 46], [ 1, 15, 50, 22], [ 2, 17, 42, 14]],
+ 18 => [[ 5, 1, 150, 120], [ 9, 4, 69, 43], [17, 1, 50, 22], [ 2, 19, 42, 14]],
+ 19 => [[ 3, 4, 141, 113], [ 3, 11, 70, 44], [17, 4, 47, 21], [ 9, 16, 39, 13]],
+ 20 => [[ 3, 5, 135, 107], [ 3, 13, 67, 41], [15, 5, 54, 24], [15, 10, 43, 15]],
+ 21 => [[ 4, 4, 144, 116], [17, 0, 68, 42], [17, 6, 50, 22], [19, 6, 46, 16]],
+ 22 => [[ 2, 7, 139, 111], [17, 0, 74, 46], [ 7, 16, 54, 24], [34, 0, 37, 13]],
+ 23 => [[ 4, 5, 151, 121], [ 4, 14, 75, 47], [11, 14, 54, 24], [16, 14, 45, 15]],
+ 24 => [[ 6, 4, 147, 117], [ 6, 14, 73, 45], [11, 16, 54, 24], [30, 2, 46, 16]],
+ 25 => [[ 8, 4, 132, 106], [ 8, 13, 75, 47], [ 7, 22, 54, 24], [22, 13, 45, 15]],
+ 26 => [[10, 2, 142, 114], [19, 4, 74, 46], [28, 6, 50, 22], [33, 4, 46, 16]],
+ 27 => [[ 8, 4, 152, 122], [22, 3, 73, 45], [ 8, 26, 53, 23], [12, 28, 45, 15]],
+ 28 => [[ 3, 10, 147, 117], [ 3, 23, 73, 45], [ 4, 31, 54, 24], [11, 31, 45, 15]],
+ 29 => [[ 7, 7, 146, 116], [21, 7, 73, 45], [ 1, 37, 53, 23], [19, 26, 45, 15]],
+ 30 => [[ 5, 10, 145, 115], [19, 10, 75, 47], [15, 25, 54, 24], [23, 25, 45, 15]],
+ 31 => [[13, 3, 145, 115], [ 2, 29, 74, 46], [42, 1, 54, 24], [23, 28, 45, 15]],
+ 32 => [[17, 0, 145, 115], [10, 23, 74, 46], [10, 35, 54, 24], [19, 35, 45, 15]],
+ 33 => [[17, 1, 145, 115], [14, 21, 74, 46], [29, 19, 54, 24], [11, 46, 45, 15]],
+ 34 => [[13, 6, 145, 115], [14, 23, 74, 46], [44, 7, 54, 24], [59, 1, 46, 16]],
+ 35 => [[12, 7, 151, 121], [12, 26, 75, 47], [39, 14, 54, 24], [22, 41, 45, 15]],
+ 36 => [[ 6, 14, 151, 121], [ 6, 34, 75, 47], [46, 10, 54, 24], [ 2, 64, 45, 15]],
+ 37 => [[17, 4, 152, 122], [29, 14, 74, 46], [49, 10, 54, 24], [24, 46, 45, 15]],
+ 38 => [[ 4, 18, 152, 122], [13, 32, 74, 46], [48, 14, 54, 24], [42, 32, 45, 15]],
+ 39 => [[20, 4, 147, 117], [40, 7, 75, 47], [43, 22, 54, 24], [10, 67, 45, 15]],
+ 40 => [[19, 6, 148, 118], [18, 31, 75, 47], [34, 34, 54, 24], [20, 61, 45, 15]],
+ ];
+
+ /**
+ * Sets the data string (internally called by the constructor)
+ *
+ * @param string $data
+ *
+ * @return \chillerlan\QRCode\Data\QRDataInterface
+ */
+ public function setData(string $data):QRDataInterface;
+
+ /**
+ * returns a fresh matrix object with the data written for the given $maskPattern
+ *
+ * @param int $maskPattern
+ * @param bool|null $test
+ *
+ * @return \chillerlan\QRCode\Data\QRMatrix
+ */
+ public function initMatrix(int $maskPattern, bool $test = null):QRMatrix;
+
+}
diff --git a/vendor/chillerlan/php-qrcode/src/Data/QRMatrix.php b/vendor/chillerlan/php-qrcode/src/Data/QRMatrix.php
new file mode 100644
index 000000000..a6d8b09e2
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/src/Data/QRMatrix.php
@@ -0,0 +1,733 @@
+<?php
+/**
+ * Class QRMatrix
+ *
+ * @filesource QRMatrix.php
+ * @created 15.11.2017
+ * @package chillerlan\QRCode\Data
+ * @author Smiley <[email protected]>
+ * @copyright 2017 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCode\Data;
+
+use chillerlan\QRCode\QRCode;
+use Closure;
+
+use function array_fill, array_key_exists, array_push, array_unshift, count, floor, in_array, max, min, range;
+
+/**
+ * @link http://www.thonky.com/qr-code-tutorial/format-version-information
+ */
+class QRMatrix{
+
+ public const M_NULL = 0x00;
+ public const M_DARKMODULE = 0x02;
+ public const M_DATA = 0x04;
+ public const M_FINDER = 0x06;
+ public const M_SEPARATOR = 0x08;
+ public const M_ALIGNMENT = 0x0a;
+ public const M_TIMING = 0x0c;
+ public const M_FORMAT = 0x0e;
+ public const M_VERSION = 0x10;
+ public const M_QUIETZONE = 0x12;
+ public const M_LOGO = 0x14;
+ public const M_FINDER_DOT = 0x16;
+
+ public const M_TEST = 0xff;
+
+ /**
+ * @link http://www.thonky.com/qr-code-tutorial/alignment-pattern-locations
+ *
+ * version -> pattern
+ */
+ protected const alignmentPattern = [
+ 1 => [],
+ 2 => [6, 18],
+ 3 => [6, 22],
+ 4 => [6, 26],
+ 5 => [6, 30],
+ 6 => [6, 34],
+ 7 => [6, 22, 38],
+ 8 => [6, 24, 42],
+ 9 => [6, 26, 46],
+ 10 => [6, 28, 50],
+ 11 => [6, 30, 54],
+ 12 => [6, 32, 58],
+ 13 => [6, 34, 62],
+ 14 => [6, 26, 46, 66],
+ 15 => [6, 26, 48, 70],
+ 16 => [6, 26, 50, 74],
+ 17 => [6, 30, 54, 78],
+ 18 => [6, 30, 56, 82],
+ 19 => [6, 30, 58, 86],
+ 20 => [6, 34, 62, 90],
+ 21 => [6, 28, 50, 72, 94],
+ 22 => [6, 26, 50, 74, 98],
+ 23 => [6, 30, 54, 78, 102],
+ 24 => [6, 28, 54, 80, 106],
+ 25 => [6, 32, 58, 84, 110],
+ 26 => [6, 30, 58, 86, 114],
+ 27 => [6, 34, 62, 90, 118],
+ 28 => [6, 26, 50, 74, 98, 122],
+ 29 => [6, 30, 54, 78, 102, 126],
+ 30 => [6, 26, 52, 78, 104, 130],
+ 31 => [6, 30, 56, 82, 108, 134],
+ 32 => [6, 34, 60, 86, 112, 138],
+ 33 => [6, 30, 58, 86, 114, 142],
+ 34 => [6, 34, 62, 90, 118, 146],
+ 35 => [6, 30, 54, 78, 102, 126, 150],
+ 36 => [6, 24, 50, 76, 102, 128, 154],
+ 37 => [6, 28, 54, 80, 106, 132, 158],
+ 38 => [6, 32, 58, 84, 110, 136, 162],
+ 39 => [6, 26, 54, 82, 110, 138, 166],
+ 40 => [6, 30, 58, 86, 114, 142, 170],
+ ];
+
+ /**
+ * @link http://www.thonky.com/qr-code-tutorial/format-version-tables
+ *
+ * no version pattern for QR Codes < 7
+ */
+ protected const versionPattern = [
+ 7 => 0b000111110010010100,
+ 8 => 0b001000010110111100,
+ 9 => 0b001001101010011001,
+ 10 => 0b001010010011010011,
+ 11 => 0b001011101111110110,
+ 12 => 0b001100011101100010,
+ 13 => 0b001101100001000111,
+ 14 => 0b001110011000001101,
+ 15 => 0b001111100100101000,
+ 16 => 0b010000101101111000,
+ 17 => 0b010001010001011101,
+ 18 => 0b010010101000010111,
+ 19 => 0b010011010100110010,
+ 20 => 0b010100100110100110,
+ 21 => 0b010101011010000011,
+ 22 => 0b010110100011001001,
+ 23 => 0b010111011111101100,
+ 24 => 0b011000111011000100,
+ 25 => 0b011001000111100001,
+ 26 => 0b011010111110101011,
+ 27 => 0b011011000010001110,
+ 28 => 0b011100110000011010,
+ 29 => 0b011101001100111111,
+ 30 => 0b011110110101110101,
+ 31 => 0b011111001001010000,
+ 32 => 0b100000100111010101,
+ 33 => 0b100001011011110000,
+ 34 => 0b100010100010111010,
+ 35 => 0b100011011110011111,
+ 36 => 0b100100101100001011,
+ 37 => 0b100101010000101110,
+ 38 => 0b100110101001100100,
+ 39 => 0b100111010101000001,
+ 40 => 0b101000110001101001,
+ ];
+
+ // ECC level -> mask pattern
+ protected const formatPattern = [
+ [ // L
+ 0b111011111000100,
+ 0b111001011110011,
+ 0b111110110101010,
+ 0b111100010011101,
+ 0b110011000101111,
+ 0b110001100011000,
+ 0b110110001000001,
+ 0b110100101110110,
+ ],
+ [ // M
+ 0b101010000010010,
+ 0b101000100100101,
+ 0b101111001111100,
+ 0b101101101001011,
+ 0b100010111111001,
+ 0b100000011001110,
+ 0b100111110010111,
+ 0b100101010100000,
+ ],
+ [ // Q
+ 0b011010101011111,
+ 0b011000001101000,
+ 0b011111100110001,
+ 0b011101000000110,
+ 0b010010010110100,
+ 0b010000110000011,
+ 0b010111011011010,
+ 0b010101111101101,
+ ],
+ [ // H
+ 0b001011010001001,
+ 0b001001110111110,
+ 0b001110011100111,
+ 0b001100111010000,
+ 0b000011101100010,
+ 0b000001001010101,
+ 0b000110100001100,
+ 0b000100000111011,
+ ],
+ ];
+
+ /**
+ * @var int
+ */
+ protected $version;
+
+ /**
+ * @var int
+ */
+ protected $eclevel;
+
+ /**
+ * @var int
+ */
+ protected $maskPattern = QRCode::MASK_PATTERN_AUTO;
+
+ /**
+ * @var int
+ */
+ protected $moduleCount;
+
+ /**
+ * @var mixed[]
+ */
+ protected $matrix;
+
+ /**
+ * QRMatrix constructor.
+ *
+ * @param int $version
+ * @param int $eclevel
+ *
+ * @throws \chillerlan\QRCode\Data\QRCodeDataException
+ */
+ public function __construct(int $version, int $eclevel){
+
+ if(!in_array($version, range(1, 40), true)){
+ throw new QRCodeDataException('invalid QR Code version');
+ }
+
+ if(!array_key_exists($eclevel, QRCode::ECC_MODES)){
+ throw new QRCodeDataException('invalid ecc level');
+ }
+
+ $this->version = $version;
+ $this->eclevel = $eclevel;
+ $this->moduleCount = $this->version * 4 + 17;
+ $this->matrix = array_fill(0, $this->moduleCount, array_fill(0, $this->moduleCount, $this::M_NULL));
+ }
+
+ /**
+ * Returns the data matrix, returns a pure boolean representation if $boolean is set to true
+ *
+ * @return int[][]|bool[][]
+ */
+ public function matrix(bool $boolean = false):array{
+
+ if(!$boolean){
+ return $this->matrix;
+ }
+
+ $matrix = [];
+
+ foreach($this->matrix as $y => $row){
+ $matrix[$y] = [];
+
+ foreach($row as $x => $val){
+ $matrix[$y][$x] = ($val >> 8) > 0;
+ }
+ }
+
+ return $matrix;
+ }
+
+ /**
+ * @return int
+ */
+ public function version():int{
+ return $this->version;
+ }
+
+ /**
+ * @return int
+ */
+ public function eccLevel():int{
+ return $this->eclevel;
+ }
+
+ /**
+ * @return int
+ */
+ public function maskPattern():int{
+ return $this->maskPattern;
+ }
+
+ /**
+ * Returns the absoulute size of the matrix, including quiet zone (after setting it).
+ *
+ * size = version * 4 + 17 [ + 2 * quietzone size]
+ *
+ * @return int
+ */
+ public function size():int{
+ return $this->moduleCount;
+ }
+
+ /**
+ * Returns the value of the module at position [$x, $y]
+ *
+ * @param int $x
+ * @param int $y
+ *
+ * @return int
+ */
+ public function get(int $x, int $y):int{
+ return $this->matrix[$y][$x];
+ }
+
+ /**
+ * Sets the $M_TYPE value for the module at position [$x, $y]
+ *
+ * true => $M_TYPE << 8
+ * false => $M_TYPE
+ *
+ * @param int $x
+ * @param int $y
+ * @param int $M_TYPE
+ * @param bool $value
+ *
+ * @return \chillerlan\QRCode\Data\QRMatrix
+ */
+ public function set(int $x, int $y, bool $value, int $M_TYPE):QRMatrix{
+ $this->matrix[$y][$x] = $M_TYPE << ($value ? 8 : 0);
+
+ return $this;
+ }
+
+ /**
+ * Checks whether a module is true (dark) or false (light)
+ *
+ * true => $value >> 8 === $M_TYPE
+ * $value >> 8 > 0
+ *
+ * false => $value === $M_TYPE
+ * $value >> 8 === 0
+ *
+ * @param int $x
+ * @param int $y
+ *
+ * @return bool
+ */
+ public function check(int $x, int $y):bool{
+ return $this->matrix[$y][$x] >> 8 > 0;
+ }
+
+
+ /**
+ * Sets the "dark module", that is always on the same position 1x1px away from the bottom left finder
+ *
+ * @return \chillerlan\QRCode\Data\QRMatrix
+ */
+ public function setDarkModule():QRMatrix{
+ $this->set(8, 4 * $this->version + 9, true, $this::M_DARKMODULE);
+
+ return $this;
+ }
+
+ /**
+ * Draws the 7x7 finder patterns in the corners top left/right and bottom left
+ *
+ * @return \chillerlan\QRCode\Data\QRMatrix
+ */
+ public function setFinderPattern():QRMatrix{
+
+ $pos = [
+ [0, 0], // top left
+ [$this->moduleCount - 7, 0], // bottom left
+ [0, $this->moduleCount - 7], // top right
+ ];
+
+ foreach($pos as $c){
+ for($y = 0; $y < 7; $y++){
+ for($x = 0; $x < 7; $x++){
+ // outer (dark) 7*7 square
+ if($x === 0 || $x === 6 || $y === 0 || $y === 6){
+ $this->set($c[0] + $y, $c[1] + $x, true, $this::M_FINDER);
+ }
+ // inner (light) 5*5 square
+ elseif($x === 1 || $x === 5 || $y === 1 || $y === 5){
+ $this->set($c[0] + $y, $c[1] + $x, false, $this::M_FINDER);
+ }
+ // 3*3 dot
+ else{
+ $this->set($c[0] + $y, $c[1] + $x, true, $this::M_FINDER_DOT);
+ }
+ }
+ }
+ }
+
+ return $this;
+ }
+
+ /**
+ * Draws the separator lines around the finder patterns
+ *
+ * @return \chillerlan\QRCode\Data\QRMatrix
+ */
+ public function setSeparators():QRMatrix{
+
+ $h = [
+ [7, 0],
+ [$this->moduleCount - 8, 0],
+ [7, $this->moduleCount - 8],
+ ];
+
+ $v = [
+ [7, 7],
+ [$this->moduleCount - 1, 7],
+ [7, $this->moduleCount - 8],
+ ];
+
+ for($c = 0; $c < 3; $c++){
+ for($i = 0; $i < 8; $i++){
+ $this->set($h[$c][0] , $h[$c][1] + $i, false, $this::M_SEPARATOR);
+ $this->set($v[$c][0] - $i, $v[$c][1] , false, $this::M_SEPARATOR);
+ }
+ }
+
+ return $this;
+ }
+
+
+ /**
+ * Draws the 5x5 alignment patterns
+ *
+ * @return \chillerlan\QRCode\Data\QRMatrix
+ */
+ public function setAlignmentPattern():QRMatrix{
+
+ foreach($this::alignmentPattern[$this->version] as $y){
+ foreach($this::alignmentPattern[$this->version] as $x){
+
+ // skip existing patterns
+ if($this->matrix[$y][$x] !== $this::M_NULL){
+ continue;
+ }
+
+ for($ry = -2; $ry <= 2; $ry++){
+ for($rx = -2; $rx <= 2; $rx++){
+ $v = ($ry === 0 && $rx === 0) || $ry === 2 || $ry === -2 || $rx === 2 || $rx === -2;
+
+ $this->set($x + $rx, $y + $ry, $v, $this::M_ALIGNMENT);
+ }
+ }
+
+ }
+ }
+
+ return $this;
+ }
+
+
+ /**
+ * Draws the timing pattern (h/v checkered line between the finder patterns)
+ *
+ * @return \chillerlan\QRCode\Data\QRMatrix
+ */
+ public function setTimingPattern():QRMatrix{
+
+ foreach(range(8, $this->moduleCount - 8 - 1) as $i){
+
+ if($this->matrix[6][$i] !== $this::M_NULL || $this->matrix[$i][6] !== $this::M_NULL){
+ continue;
+ }
+
+ $v = $i % 2 === 0;
+
+ $this->set($i, 6, $v, $this::M_TIMING); // h
+ $this->set(6, $i, $v, $this::M_TIMING); // v
+ }
+
+ return $this;
+ }
+
+ /**
+ * Draws the version information, 2x 3x6 pixel
+ *
+ * @param bool|null $test
+ *
+ * @return \chillerlan\QRCode\Data\QRMatrix
+ */
+ public function setVersionNumber(bool $test = null):QRMatrix{
+ $bits = $this::versionPattern[$this->version] ?? false;
+
+ if($bits !== false){
+
+ for($i = 0; $i < 18; $i++){
+ $a = (int)floor($i / 3);
+ $b = $i % 3 + $this->moduleCount - 8 - 3;
+ $v = !$test && (($bits >> $i) & 1) === 1;
+
+ $this->set($b, $a, $v, $this::M_VERSION); // ne
+ $this->set($a, $b, $v, $this::M_VERSION); // sw
+ }
+
+ }
+
+ return $this;
+ }
+
+ /**
+ * Draws the format info along the finder patterns
+ *
+ * @param int $maskPattern
+ * @param bool|null $test
+ *
+ * @return \chillerlan\QRCode\Data\QRMatrix
+ */
+ public function setFormatInfo(int $maskPattern, bool $test = null):QRMatrix{
+ $bits = $this::formatPattern[QRCode::ECC_MODES[$this->eclevel]][$maskPattern] ?? 0;
+
+ for($i = 0; $i < 15; $i++){
+ $v = !$test && (($bits >> $i) & 1) === 1;
+
+ if($i < 6){
+ $this->set(8, $i, $v, $this::M_FORMAT);
+ }
+ elseif($i < 8){
+ $this->set(8, $i + 1, $v, $this::M_FORMAT);
+ }
+ else{
+ $this->set(8, $this->moduleCount - 15 + $i, $v, $this::M_FORMAT);
+ }
+
+ if($i < 8){
+ $this->set($this->moduleCount - $i - 1, 8, $v, $this::M_FORMAT);
+ }
+ elseif($i < 9){
+ $this->set(15 - $i, 8, $v, $this::M_FORMAT);
+ }
+ else{
+ $this->set(15 - $i - 1, 8, $v, $this::M_FORMAT);
+ }
+
+ }
+
+ $this->set(8, $this->moduleCount - 8, !$test, $this::M_FORMAT);
+
+ return $this;
+ }
+
+ /**
+ * Draws the "quiet zone" of $size around the matrix
+ *
+ * @param int|null $size
+ *
+ * @return \chillerlan\QRCode\Data\QRMatrix
+ * @throws \chillerlan\QRCode\Data\QRCodeDataException
+ */
+ public function setQuietZone(int $size = null):QRMatrix{
+
+ if($this->matrix[$this->moduleCount - 1][$this->moduleCount - 1] === $this::M_NULL){
+ throw new QRCodeDataException('use only after writing data');
+ }
+
+ $size = $size !== null
+ ? max(0, min($size, floor($this->moduleCount / 2)))
+ : 4;
+
+ for($y = 0; $y < $this->moduleCount; $y++){
+ for($i = 0; $i < $size; $i++){
+ array_unshift($this->matrix[$y], $this::M_QUIETZONE);
+ array_push($this->matrix[$y], $this::M_QUIETZONE);
+ }
+ }
+
+ $this->moduleCount += ($size * 2);
+
+ $r = array_fill(0, $this->moduleCount, $this::M_QUIETZONE);
+
+ for($i = 0; $i < $size; $i++){
+ array_unshift($this->matrix, $r);
+ array_push($this->matrix, $r);
+ }
+
+ return $this;
+ }
+
+ /**
+ * Clears a space of $width * $height in order to add a logo or text.
+ *
+ * Additionally, the logo space can be positioned within the QR Code - respecting the main functional patterns -
+ * using $startX and $startY. If either of these are null, the logo space will be centered in that direction.
+ * ECC level "H" (30%) is required.
+ *
+ * Please note that adding a logo space minimizes the error correction capacity of the QR Code and
+ * created images may become unreadable, especially when printed with a chance to receive damage.
+ * Please test thoroughly before using this feature in production.
+ *
+ * This method should be called from within an output module (after the matrix has been filled with data).
+ * Note that there is no restiction on how many times this method could be called on the same matrix instance.
+ *
+ * @link https://github.com/chillerlan/php-qrcode/issues/52
+ *
+ * @param int $width
+ * @param int $height
+ * @param int|null $startX
+ * @param int|null $startY
+ *
+ * @return \chillerlan\QRCode\Data\QRMatrix
+ * @throws \chillerlan\QRCode\Data\QRCodeDataException
+ */
+ public function setLogoSpace(int $width, int $height, int $startX = null, int $startY = null):QRMatrix{
+
+ // for logos we operate in ECC H (30%) only
+ if($this->eclevel !== 0b10){
+ throw new QRCodeDataException('ECC level "H" required to add logo space');
+ }
+
+ // we need uneven sizes, adjust if needed
+ if(($width % 2) === 0){
+ $width++;
+ }
+
+ if(($height % 2) === 0){
+ $height++;
+ }
+
+ // $this->moduleCount includes the quiet zone (if created), we need the QR size here
+ $length = $this->version * 4 + 17;
+
+ // throw if the logo space exceeds the maximum error correction capacity
+ if($width * $height > floor($length * $length * 0.2)){
+ throw new QRCodeDataException('logo space exceeds the maximum error correction capacity');
+ }
+
+ // quiet zone size
+ $qz = ($this->moduleCount - $length) / 2;
+ // skip quiet zone and the first 9 rows/columns (finder-, mode-, version- and timing patterns)
+ $start = $qz + 9;
+ // skip quiet zone
+ $end = $this->moduleCount - $qz;
+
+ // determine start coordinates
+ $startX = ($startX !== null ? $startX : ($length - $width) / 2) + $qz;
+ $startY = ($startY !== null ? $startY : ($length - $height) / 2) + $qz;
+
+ // clear the space
+ foreach($this->matrix as $y => $row){
+ foreach($row as $x => $val){
+ // out of bounds, skip
+ if($x < $start || $y < $start ||$x >= $end || $y >= $end){
+ continue;
+ }
+ // a match
+ if($x >= $startX && $x < ($startX + $width) && $y >= $startY && $y < ($startY + $height)){
+ $this->set($x, $y, false, $this::M_LOGO);
+ }
+ }
+ }
+
+ return $this;
+ }
+
+ /**
+ * Maps the binary $data array from QRDataInterface::maskECC() on the matrix, using $maskPattern
+ *
+ * @see \chillerlan\QRCode\Data\QRDataAbstract::maskECC()
+ *
+ * @param int[] $data
+ * @param int $maskPattern
+ *
+ * @return \chillerlan\QRCode\Data\QRMatrix
+ */
+ public function mapData(array $data, int $maskPattern):QRMatrix{
+ $this->maskPattern = $maskPattern;
+ $byteCount = count($data);
+ $size = $this->moduleCount - 1;
+ $mask = $this->getMask($this->maskPattern);
+
+ for($i = $size, $y = $size, $inc = -1, $byteIndex = 0, $bitIndex = 7; $i > 0; $i -= 2){
+
+ if($i === 6){
+ $i--;
+ }
+
+ while(true){
+ for($c = 0; $c < 2; $c++){
+ $x = $i - $c;
+
+ if($this->matrix[$y][$x] === $this::M_NULL){
+ $v = false;
+
+ if($byteIndex < $byteCount){
+ $v = (($data[$byteIndex] >> $bitIndex) & 1) === 1;
+ }
+
+ if($mask($x, $y) === 0){
+ $v = !$v;
+ }
+
+ $this->matrix[$y][$x] = $this::M_DATA << ($v ? 8 : 0);
+ $bitIndex--;
+
+ if($bitIndex === -1){
+ $byteIndex++;
+ $bitIndex = 7;
+ }
+
+ }
+ }
+
+ $y += $inc;
+
+ if($y < 0 || $this->moduleCount <= $y){
+ $y -= $inc;
+ $inc = -$inc;
+
+ break;
+ }
+
+ }
+ }
+
+ return $this;
+ }
+
+ /**
+ * ISO/IEC 18004:2000 Section 8.8.1
+ *
+ * Note that some versions of the QR code standard have had errors in the section about mask patterns.
+ * The information below has been corrected. (https://www.thonky.com/qr-code-tutorial/mask-patterns)
+ *
+ * @see \chillerlan\QRCode\QRMatrix::mapData()
+ *
+ * @internal
+ *
+ * @param int $maskPattern
+ *
+ * @return \Closure
+ * @throws \chillerlan\QRCode\Data\QRCodeDataException
+ */
+ protected function getMask(int $maskPattern):Closure{
+
+ if((0b111 & $maskPattern) !== $maskPattern){
+ throw new QRCodeDataException('invalid mask pattern'); // @codeCoverageIgnore
+ }
+
+ return [
+ 0b000 => function($x, $y):int{ return ($x + $y) % 2; },
+ 0b001 => function($x, $y):int{ return $y % 2; },
+ 0b010 => function($x, $y):int{ return $x % 3; },
+ 0b011 => function($x, $y):int{ return ($x + $y) % 3; },
+ 0b100 => function($x, $y):int{ return ((int)($y / 2) + (int)($x / 3)) % 2; },
+ 0b101 => function($x, $y):int{ return (($x * $y) % 2) + (($x * $y) % 3); },
+ 0b110 => function($x, $y):int{ return ((($x * $y) % 2) + (($x * $y) % 3)) % 2; },
+ 0b111 => function($x, $y):int{ return ((($x * $y) % 3) + (($x + $y) % 2)) % 2; },
+ ][$maskPattern];
+ }
+
+}
diff --git a/vendor/chillerlan/php-qrcode/src/Helpers/BitBuffer.php b/vendor/chillerlan/php-qrcode/src/Helpers/BitBuffer.php
new file mode 100644
index 000000000..0b4ff6a77
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/src/Helpers/BitBuffer.php
@@ -0,0 +1,75 @@
+<?php
+/**
+ * Class BitBuffer
+ *
+ * @filesource BitBuffer.php
+ * @created 25.11.2015
+ * @package chillerlan\QRCode\Helpers
+ * @author Smiley <[email protected]>
+ * @copyright 2015 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCode\Helpers;
+
+use function count, floor;
+
+class BitBuffer{
+
+ /**
+ * @var int[]
+ */
+ public $buffer = [];
+
+ /**
+ * @var int
+ */
+ public $length = 0;
+
+ /**
+ * @return \chillerlan\QRCode\Helpers\BitBuffer
+ */
+ public function clear():BitBuffer{
+ $this->buffer = [];
+ $this->length = 0;
+
+ return $this;
+ }
+
+ /**
+ * @param int $num
+ * @param int $length
+ *
+ * @return \chillerlan\QRCode\Helpers\BitBuffer
+ */
+ public function put(int $num, int $length):BitBuffer{
+
+ for($i = 0; $i < $length; $i++){
+ $this->putBit((($num >> ($length - $i - 1)) & 1) === 1);
+ }
+
+ return $this;
+ }
+
+ /**
+ * @param bool $bit
+ *
+ * @return \chillerlan\QRCode\Helpers\BitBuffer
+ */
+ public function putBit(bool $bit):BitBuffer{
+ $bufIndex = floor($this->length / 8);
+
+ if(count($this->buffer) <= $bufIndex){
+ $this->buffer[] = 0;
+ }
+
+ if($bit === true){
+ $this->buffer[(int)$bufIndex] |= (0x80 >> ($this->length % 8));
+ }
+
+ $this->length++;
+
+ return $this;
+ }
+
+}
diff --git a/vendor/chillerlan/php-qrcode/src/Helpers/Polynomial.php b/vendor/chillerlan/php-qrcode/src/Helpers/Polynomial.php
new file mode 100644
index 000000000..abe11d0cc
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/src/Helpers/Polynomial.php
@@ -0,0 +1,184 @@
+<?php
+/**
+ * Class Polynomial
+ *
+ * @filesource Polynomial.php
+ * @created 25.11.2015
+ * @package chillerlan\QRCode\Helpers
+ * @author Smiley <[email protected]>
+ * @copyright 2015 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCode\Helpers;
+
+use chillerlan\QRCode\QRCodeException;
+
+use function array_fill, count, sprintf;
+
+/**
+ * @link http://www.thonky.com/qr-code-tutorial/error-correction-coding
+ */
+class Polynomial{
+
+ /**
+ * @link http://www.thonky.com/qr-code-tutorial/log-antilog-table
+ */
+ protected const table = [
+ [ 1, 0], [ 2, 0], [ 4, 1], [ 8, 25], [ 16, 2], [ 32, 50], [ 64, 26], [128, 198],
+ [ 29, 3], [ 58, 223], [116, 51], [232, 238], [205, 27], [135, 104], [ 19, 199], [ 38, 75],
+ [ 76, 4], [152, 100], [ 45, 224], [ 90, 14], [180, 52], [117, 141], [234, 239], [201, 129],
+ [143, 28], [ 3, 193], [ 6, 105], [ 12, 248], [ 24, 200], [ 48, 8], [ 96, 76], [192, 113],
+ [157, 5], [ 39, 138], [ 78, 101], [156, 47], [ 37, 225], [ 74, 36], [148, 15], [ 53, 33],
+ [106, 53], [212, 147], [181, 142], [119, 218], [238, 240], [193, 18], [159, 130], [ 35, 69],
+ [ 70, 29], [140, 181], [ 5, 194], [ 10, 125], [ 20, 106], [ 40, 39], [ 80, 249], [160, 185],
+ [ 93, 201], [186, 154], [105, 9], [210, 120], [185, 77], [111, 228], [222, 114], [161, 166],
+ [ 95, 6], [190, 191], [ 97, 139], [194, 98], [153, 102], [ 47, 221], [ 94, 48], [188, 253],
+ [101, 226], [202, 152], [137, 37], [ 15, 179], [ 30, 16], [ 60, 145], [120, 34], [240, 136],
+ [253, 54], [231, 208], [211, 148], [187, 206], [107, 143], [214, 150], [177, 219], [127, 189],
+ [254, 241], [225, 210], [223, 19], [163, 92], [ 91, 131], [182, 56], [113, 70], [226, 64],
+ [217, 30], [175, 66], [ 67, 182], [134, 163], [ 17, 195], [ 34, 72], [ 68, 126], [136, 110],
+ [ 13, 107], [ 26, 58], [ 52, 40], [104, 84], [208, 250], [189, 133], [103, 186], [206, 61],
+ [129, 202], [ 31, 94], [ 62, 155], [124, 159], [248, 10], [237, 21], [199, 121], [147, 43],
+ [ 59, 78], [118, 212], [236, 229], [197, 172], [151, 115], [ 51, 243], [102, 167], [204, 87],
+ [133, 7], [ 23, 112], [ 46, 192], [ 92, 247], [184, 140], [109, 128], [218, 99], [169, 13],
+ [ 79, 103], [158, 74], [ 33, 222], [ 66, 237], [132, 49], [ 21, 197], [ 42, 254], [ 84, 24],
+ [168, 227], [ 77, 165], [154, 153], [ 41, 119], [ 82, 38], [164, 184], [ 85, 180], [170, 124],
+ [ 73, 17], [146, 68], [ 57, 146], [114, 217], [228, 35], [213, 32], [183, 137], [115, 46],
+ [230, 55], [209, 63], [191, 209], [ 99, 91], [198, 149], [145, 188], [ 63, 207], [126, 205],
+ [252, 144], [229, 135], [215, 151], [179, 178], [123, 220], [246, 252], [241, 190], [255, 97],
+ [227, 242], [219, 86], [171, 211], [ 75, 171], [150, 20], [ 49, 42], [ 98, 93], [196, 158],
+ [149, 132], [ 55, 60], [110, 57], [220, 83], [165, 71], [ 87, 109], [174, 65], [ 65, 162],
+ [130, 31], [ 25, 45], [ 50, 67], [100, 216], [200, 183], [141, 123], [ 7, 164], [ 14, 118],
+ [ 28, 196], [ 56, 23], [112, 73], [224, 236], [221, 127], [167, 12], [ 83, 111], [166, 246],
+ [ 81, 108], [162, 161], [ 89, 59], [178, 82], [121, 41], [242, 157], [249, 85], [239, 170],
+ [195, 251], [155, 96], [ 43, 134], [ 86, 177], [172, 187], [ 69, 204], [138, 62], [ 9, 90],
+ [ 18, 203], [ 36, 89], [ 72, 95], [144, 176], [ 61, 156], [122, 169], [244, 160], [245, 81],
+ [247, 11], [243, 245], [251, 22], [235, 235], [203, 122], [139, 117], [ 11, 44], [ 22, 215],
+ [ 44, 79], [ 88, 174], [176, 213], [125, 233], [250, 230], [233, 231], [207, 173], [131, 232],
+ [ 27, 116], [ 54, 214], [108, 244], [216, 234], [173, 168], [ 71, 80], [142, 88], [ 1, 175],
+ ];
+
+ /**
+ * @var array
+ */
+ protected $num = [];
+
+ /**
+ * Polynomial constructor.
+ *
+ * @param array|null $num
+ * @param int|null $shift
+ */
+ public function __construct(array $num = null, int $shift = null){
+ $this->setNum($num ?? [1], $shift);
+ }
+
+ /**
+ * @return array
+ */
+ public function getNum():array{
+ return $this->num;
+ }
+
+ /**
+ * @param array $num
+ * @param int|null $shift
+ *
+ * @return \chillerlan\QRCode\Helpers\Polynomial
+ */
+ public function setNum(array $num, int $shift = null):Polynomial{
+ $offset = 0;
+ $numCount = count($num);
+
+ while($offset < $numCount && $num[$offset] === 0){
+ $offset++;
+ }
+
+ $this->num = array_fill(0, $numCount - $offset + ($shift ?? 0), 0);
+
+ for($i = 0; $i < $numCount - $offset; $i++){
+ $this->num[$i] = $num[$i + $offset];
+ }
+
+ return $this;
+ }
+
+ /**
+ * @param array $e
+ *
+ * @return \chillerlan\QRCode\Helpers\Polynomial
+ */
+ public function multiply(array $e):Polynomial{
+ $n = array_fill(0, count($this->num) + count($e) - 1, 0);
+
+ foreach($this->num as $i => $vi){
+ $vi = $this->glog($vi);
+
+ foreach($e as $j => $vj){
+ $n[$i + $j] ^= $this->gexp($vi + $this->glog($vj));
+ }
+
+ }
+
+ $this->setNum($n);
+
+ return $this;
+ }
+
+ /**
+ * @param array $e
+ *
+ * @return \chillerlan\QRCode\Helpers\Polynomial
+ */
+ public function mod(array $e):Polynomial{
+ $n = $this->num;
+
+ if(count($n) - count($e) < 0){
+ return $this;
+ }
+
+ $ratio = $this->glog($n[0]) - $this->glog($e[0]);
+
+ foreach($e as $i => $v){
+ $n[$i] ^= $this->gexp($this->glog($v) + $ratio);
+ }
+
+ $this->setNum($n)->mod($e);
+
+ return $this;
+ }
+
+ /**
+ * @param int $n
+ *
+ * @return int
+ * @throws \chillerlan\QRCode\QRCodeException
+ */
+ public function glog(int $n):int{
+
+ if($n < 1){
+ throw new QRCodeException(sprintf('log(%s)', $n));
+ }
+
+ return Polynomial::table[$n][1];
+ }
+
+ /**
+ * @param int $n
+ *
+ * @return int
+ */
+ public function gexp(int $n):int{
+
+ if($n < 0){
+ $n += 255;
+ }
+ elseif($n >= 256){
+ $n -= 255;
+ }
+
+ return Polynomial::table[$n][0];
+ }
+
+}
diff --git a/vendor/chillerlan/php-qrcode/src/Output/QRCodeOutputException.php b/vendor/chillerlan/php-qrcode/src/Output/QRCodeOutputException.php
new file mode 100644
index 000000000..639bdd111
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/src/Output/QRCodeOutputException.php
@@ -0,0 +1,17 @@
+<?php
+/**
+ * Class QRCodeOutputException
+ *
+ * @filesource QRCodeOutputException.php
+ * @created 09.12.2015
+ * @package chillerlan\QRCode\Output
+ * @author Smiley <[email protected]>
+ * @copyright 2015 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCode\Output;
+
+use chillerlan\QRCode\QRCodeException;
+
+class QRCodeOutputException extends QRCodeException{}
diff --git a/vendor/chillerlan/php-qrcode/src/Output/QRFpdf.php b/vendor/chillerlan/php-qrcode/src/Output/QRFpdf.php
new file mode 100644
index 000000000..a706685af
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/src/Output/QRFpdf.php
@@ -0,0 +1,112 @@
+<?php
+/**
+ * Class QRFpdf
+ *
+ * https://github.com/chillerlan/php-qrcode/pull/49
+ *
+ * @filesource QRFpdf.php
+ * @created 03.06.2020
+ * @package chillerlan\QRCode\Output
+ * @author Maximilian Kresse
+ *
+ * @license MIT
+ */
+
+namespace chillerlan\QRCode\Output;
+
+use chillerlan\QRCode\Data\QRMatrix;
+use chillerlan\QRCode\QRCodeException;
+use chillerlan\Settings\SettingsContainerInterface;
+use FPDF;
+
+use function array_values, class_exists, count, is_array;
+
+/**
+ * QRFpdf output module (requires fpdf)
+ *
+ * @see https://github.com/Setasign/FPDF
+ * @see http://www.fpdf.org/
+ */
+class QRFpdf extends QROutputAbstract{
+
+ public function __construct(SettingsContainerInterface $options, QRMatrix $matrix){
+
+ if(!class_exists(FPDF::class)){
+ // @codeCoverageIgnoreStart
+ throw new QRCodeException(
+ 'The QRFpdf output requires FPDF as dependency but the class "\FPDF" couldn\'t be found.'
+ );
+ // @codeCoverageIgnoreEnd
+ }
+
+ parent::__construct($options, $matrix);
+ }
+
+ /**
+ * @inheritDoc
+ */
+ protected function setModuleValues():void{
+
+ foreach($this::DEFAULT_MODULE_VALUES as $M_TYPE => $defaultValue){
+ $v = $this->options->moduleValues[$M_TYPE] ?? null;
+
+ if(!is_array($v) || count($v) < 3){
+ $this->moduleValues[$M_TYPE] = $defaultValue
+ ? [0, 0, 0]
+ : [255, 255, 255];
+ }
+ else{
+ $this->moduleValues[$M_TYPE] = array_values($v);
+ }
+
+ }
+
+ }
+
+ /**
+ * @inheritDoc
+ *
+ * @return string|\FPDF
+ */
+ public function dump(string $file = null){
+ $file = $file ?? $this->options->cachefile;
+
+ $fpdf = new FPDF('P', $this->options->fpdfMeasureUnit, [$this->length, $this->length]);
+ $fpdf->AddPage();
+
+ $prevColor = null;
+
+ foreach($this->matrix->matrix() as $y => $row){
+
+ foreach($row as $x => $M_TYPE){
+ /** @var int $M_TYPE */
+ $color = $this->moduleValues[$M_TYPE];
+
+ if($prevColor === null || $prevColor !== $color){
+ $fpdf->SetFillColor(...$color);
+ $prevColor = $color;
+ }
+
+ $fpdf->Rect($x * $this->scale, $y * $this->scale, 1 * $this->scale, 1 * $this->scale, 'F');
+ }
+
+ }
+
+ if($this->options->returnResource){
+ return $fpdf;
+ }
+
+ $pdfData = $fpdf->Output('S');
+
+ if($file !== null){
+ $this->saveToFile($pdfData, $file);
+ }
+
+ if($this->options->imageBase64){
+ $pdfData = sprintf('data:application/pdf;base64,%s', base64_encode($pdfData));
+ }
+
+ return $pdfData;
+ }
+
+}
diff --git a/vendor/chillerlan/php-qrcode/src/Output/QRImage.php b/vendor/chillerlan/php-qrcode/src/Output/QRImage.php
new file mode 100644
index 000000000..598948c94
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/src/Output/QRImage.php
@@ -0,0 +1,208 @@
+<?php
+/**
+ * Class QRImage
+ *
+ * @filesource QRImage.php
+ * @created 05.12.2015
+ * @package chillerlan\QRCode\Output
+ * @author Smiley <[email protected]>
+ * @copyright 2015 Smiley
+ * @license MIT
+ *
+ * @noinspection PhpComposerExtensionStubsInspection
+ */
+
+namespace chillerlan\QRCode\Output;
+
+use chillerlan\QRCode\Data\QRMatrix;
+use chillerlan\QRCode\{QRCode, QRCodeException};
+use chillerlan\Settings\SettingsContainerInterface;
+use Exception;
+
+use function array_values, base64_encode, call_user_func, count, imagecolorallocate, imagecolortransparent,
+ imagecreatetruecolor, imagedestroy, imagefilledrectangle, imagegif, imagejpeg, imagepng, in_array,
+ is_array, ob_end_clean, ob_get_contents, ob_start, range, sprintf;
+
+/**
+ * Converts the matrix into GD images, raw or base64 output
+ * requires ext-gd
+ * @link http://php.net/manual/book.image.php
+ */
+class QRImage extends QROutputAbstract{
+
+ protected const TRANSPARENCY_TYPES = [
+ QRCode::OUTPUT_IMAGE_PNG,
+ QRCode::OUTPUT_IMAGE_GIF,
+ ];
+
+ /**
+ * @var string
+ */
+ protected $defaultMode = QRCode::OUTPUT_IMAGE_PNG;
+
+ /**
+ * @see imagecreatetruecolor()
+ * @var resource
+ */
+ protected $image;
+
+ /**
+ * @inheritDoc
+ *
+ * @throws \chillerlan\QRCode\QRCodeException
+ */
+ public function __construct(SettingsContainerInterface $options, QRMatrix $matrix){
+
+ if(!extension_loaded('gd')){
+ throw new QRCodeException('ext-gd not loaded'); // @codeCoverageIgnore
+ }
+
+ parent::__construct($options, $matrix);
+ }
+
+ /**
+ * @inheritDoc
+ */
+ protected function setModuleValues():void{
+
+ foreach($this::DEFAULT_MODULE_VALUES as $M_TYPE => $defaultValue){
+ $v = $this->options->moduleValues[$M_TYPE] ?? null;
+
+ if(!is_array($v) || count($v) < 3){
+ $this->moduleValues[$M_TYPE] = $defaultValue
+ ? [0, 0, 0]
+ : [255, 255, 255];
+ }
+ else{
+ $this->moduleValues[$M_TYPE] = array_values($v);
+ }
+
+ }
+
+ }
+
+ /**
+ * @inheritDoc
+ *
+ * @return string|resource
+ */
+ public function dump(string $file = null){
+ $this->image = imagecreatetruecolor($this->length, $this->length);
+
+ // avoid: Indirect modification of overloaded property $imageTransparencyBG has no effect
+ // https://stackoverflow.com/a/10455217
+ $tbg = $this->options->imageTransparencyBG;
+ $background = imagecolorallocate($this->image, ...$tbg);
+
+ if((bool)$this->options->imageTransparent && in_array($this->options->outputType, $this::TRANSPARENCY_TYPES, true)){
+ imagecolortransparent($this->image, $background);
+ }
+
+ imagefilledrectangle($this->image, 0, 0, $this->length, $this->length, $background);
+
+ foreach($this->matrix->matrix() as $y => $row){
+ foreach($row as $x => $M_TYPE){
+ $this->setPixel($x, $y, $this->moduleValues[$M_TYPE]);
+ }
+ }
+
+ if($this->options->returnResource){
+ return $this->image;
+ }
+
+ $imageData = $this->dumpImage($file);
+
+ if($this->options->imageBase64){
+ $imageData = sprintf('data:image/%s;base64,%s', $this->options->outputType, base64_encode($imageData));
+ }
+
+ return $imageData;
+ }
+
+ /**
+ * @param int $x
+ * @param int $y
+ * @param array $rgb
+ *
+ * @return void
+ */
+ protected function setPixel(int $x, int $y, array $rgb):void{
+ imagefilledrectangle(
+ $this->image,
+ $x * $this->scale,
+ $y * $this->scale,
+ ($x + 1) * $this->scale,
+ ($y + 1) * $this->scale,
+ imagecolorallocate($this->image, ...$rgb)
+ );
+ }
+
+ /**
+ * @param string|null $file
+ *
+ * @return string
+
+ * @throws \chillerlan\QRCode\Output\QRCodeOutputException
+ */
+ protected function dumpImage(string $file = null):string{
+ $file = $file ?? $this->options->cachefile;
+
+ ob_start();
+
+ try{
+ call_user_func([$this, $this->outputMode ?? $this->defaultMode]);
+ }
+ // not going to cover edge cases
+ // @codeCoverageIgnoreStart
+ catch(Exception $e){
+ throw new QRCodeOutputException($e->getMessage());
+ }
+ // @codeCoverageIgnoreEnd
+
+ $imageData = ob_get_contents();
+ imagedestroy($this->image);
+
+ ob_end_clean();
+
+ if($file !== null){
+ $this->saveToFile($imageData, $file);
+ }
+
+ return $imageData;
+ }
+
+ /**
+ * @return void
+ */
+ protected function png():void{
+ imagepng(
+ $this->image,
+ null,
+ in_array($this->options->pngCompression, range(-1, 9), true)
+ ? $this->options->pngCompression
+ : -1
+ );
+ }
+
+ /**
+ * Jiff - like... JitHub!
+ * @return void
+ */
+ protected function gif():void{
+ imagegif($this->image);
+ }
+
+ /**
+ * @return void
+ */
+ protected function jpg():void{
+ imagejpeg(
+ $this->image,
+ null,
+ in_array($this->options->jpegQuality, range(0, 100), true)
+ ? $this->options->jpegQuality
+ : 85
+ );
+ }
+
+}
diff --git a/vendor/chillerlan/php-qrcode/src/Output/QRImagick.php b/vendor/chillerlan/php-qrcode/src/Output/QRImagick.php
new file mode 100644
index 000000000..03886cf3b
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/src/Output/QRImagick.php
@@ -0,0 +1,123 @@
+<?php
+/**
+ * Class QRImagick
+ *
+ * @filesource QRImagick.php
+ * @created 04.07.2018
+ * @package chillerlan\QRCode\Output
+ * @author smiley <[email protected]>
+ * @copyright 2018 smiley
+ * @license MIT
+ *
+ * @noinspection PhpComposerExtensionStubsInspection
+ */
+
+namespace chillerlan\QRCode\Output;
+
+use chillerlan\QRCode\Data\QRMatrix;
+use chillerlan\QRCode\QRCodeException;
+use chillerlan\Settings\SettingsContainerInterface;
+use Imagick, ImagickDraw, ImagickPixel;
+
+use function is_string;
+
+/**
+ * ImageMagick output module
+ * requires ext-imagick
+ * @link http://php.net/manual/book.imagick.php
+ * @link http://phpimagick.com
+ */
+class QRImagick extends QROutputAbstract{
+
+ /**
+ * @var \Imagick
+ */
+ protected $imagick;
+
+ /**
+ * @inheritDoc
+ * @throws \chillerlan\QRCode\QRCodeException
+ */
+ public function __construct(SettingsContainerInterface $options, QRMatrix $matrix){
+
+ if(!extension_loaded('imagick')){
+ throw new QRCodeException('ext-imagick not loaded'); // @codeCoverageIgnore
+ }
+
+ parent::__construct($options, $matrix);
+ }
+
+ /**
+ * @inheritDoc
+ */
+ protected function setModuleValues():void{
+
+ foreach($this::DEFAULT_MODULE_VALUES as $type => $defaultValue){
+ $v = $this->options->moduleValues[$type] ?? null;
+
+ if(!is_string($v)){
+ $this->moduleValues[$type] = $defaultValue
+ ? new ImagickPixel($this->options->markupDark)
+ : new ImagickPixel($this->options->markupLight);
+ }
+ else{
+ $this->moduleValues[$type] = new ImagickPixel($v);
+ }
+ }
+ }
+
+ /**
+ * @inheritDoc
+ *
+ * @return string|\Imagick
+ */
+ public function dump(string $file = null){
+ $file = $file ?? $this->options->cachefile;
+ $this->imagick = new Imagick;
+
+ $this->imagick->newImage(
+ $this->length,
+ $this->length,
+ new ImagickPixel($this->options->imagickBG ?? 'transparent'),
+ $this->options->imagickFormat
+ );
+
+ $this->drawImage();
+
+ if($this->options->returnResource){
+ return $this->imagick;
+ }
+
+ $imageData = $this->imagick->getImageBlob();
+
+ if($file !== null){
+ $this->saveToFile($imageData, $file);
+ }
+
+ return $imageData;
+ }
+
+ /**
+ * @return void
+ */
+ protected function drawImage():void{
+ $draw = new ImagickDraw;
+
+ foreach($this->matrix->matrix() as $y => $row){
+ foreach($row as $x => $M_TYPE){
+ $draw->setStrokeColor($this->moduleValues[$M_TYPE]);
+ $draw->setFillColor($this->moduleValues[$M_TYPE]);
+ $draw->rectangle(
+ $x * $this->scale,
+ $y * $this->scale,
+ ($x + 1) * $this->scale,
+ ($y + 1) * $this->scale
+ );
+
+ }
+ }
+
+ $this->imagick->drawImage($draw);
+ }
+
+}
diff --git a/vendor/chillerlan/php-qrcode/src/Output/QRMarkup.php b/vendor/chillerlan/php-qrcode/src/Output/QRMarkup.php
new file mode 100644
index 000000000..15559dae0
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/src/Output/QRMarkup.php
@@ -0,0 +1,151 @@
+<?php
+/**
+ * Class QRMarkup
+ *
+ * @filesource QRMarkup.php
+ * @created 17.12.2016
+ * @package chillerlan\QRCode\Output
+ * @author Smiley <[email protected]>
+ * @copyright 2016 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCode\Output;
+
+use chillerlan\QRCode\QRCode;
+
+use function is_string, sprintf, strip_tags, trim;
+
+/**
+ * Converts the matrix into markup types: HTML, SVG, ...
+ */
+class QRMarkup extends QROutputAbstract{
+
+ /**
+ * @var string
+ */
+ protected $defaultMode = QRCode::OUTPUT_MARKUP_SVG;
+
+ /**
+ * @see \sprintf()
+ *
+ * @var string
+ */
+ protected $svgHeader = '<svg xmlns="http://www.w3.org/2000/svg" version="1.1" class="qr-svg %1$s" style="width: 100%%; height: auto;" viewBox="0 0 %2$d %2$d">';
+
+ /**
+ * @inheritDoc
+ */
+ protected function setModuleValues():void{
+
+ foreach($this::DEFAULT_MODULE_VALUES as $M_TYPE => $defaultValue){
+ $v = $this->options->moduleValues[$M_TYPE] ?? null;
+
+ if(!is_string($v)){
+ $this->moduleValues[$M_TYPE] = $defaultValue
+ ? $this->options->markupDark
+ : $this->options->markupLight;
+ }
+ else{
+ $this->moduleValues[$M_TYPE] = trim(strip_tags($v), '\'"');
+ }
+
+ }
+
+ }
+
+ /**
+ * @return string
+ */
+ protected function html():string{
+ $html = '<div class="'.$this->options->cssClass.'">'.$this->options->eol;
+
+ foreach($this->matrix->matrix() as $row){
+ $html .= '<div>';
+
+ foreach($row as $M_TYPE){
+ $html .= '<span style="background: '.$this->moduleValues[$M_TYPE].';"></span>';
+ }
+
+ $html .= '</div>'.$this->options->eol;
+ }
+
+ $html .= '</div>'.$this->options->eol;
+
+ if($this->options->cachefile){
+ return '<!DOCTYPE html><head><meta charset="UTF-8"></head><body>'.$this->options->eol.$html.'</body>';
+ }
+
+ return $html;
+ }
+
+ /**
+ * @link https://github.com/codemasher/php-qrcode/pull/5
+ *
+ * @return string
+ */
+ protected function svg():string{
+ $matrix = $this->matrix->matrix();
+
+ $svg = sprintf($this->svgHeader, $this->options->cssClass, $this->options->svgViewBoxSize ?? $this->moduleCount)
+ .$this->options->eol
+ .'<defs>'.$this->options->svgDefs.'</defs>'
+ .$this->options->eol;
+
+ foreach($this->moduleValues as $M_TYPE => $value){
+ $path = '';
+
+ foreach($matrix as $y => $row){
+ //we'll combine active blocks within a single row as a lightweight compression technique
+ $start = null;
+ $count = 0;
+
+ foreach($row as $x => $module){
+
+ if($module === $M_TYPE){
+ $count++;
+
+ if($start === null){
+ $start = $x;
+ }
+
+ if(isset($row[$x + 1])){
+ continue;
+ }
+ }
+
+ if($count > 0){
+ $len = $count;
+ $path .= sprintf('M%s %s h%s v1 h-%sZ ', $start, $y, $len, $len);
+
+ // reset count
+ $count = 0;
+ $start = null;
+ }
+
+ }
+
+ }
+
+ if(!empty($path)){
+ $svg .= sprintf('<path class="qr-%s %s" stroke="transparent" fill="%s" fill-opacity="%s" d="%s" />', $M_TYPE, $this->options->cssClass, $value, $this->options->svgOpacity, $path);
+ }
+
+ }
+
+ // close svg
+ $svg .= '</svg>'.$this->options->eol;
+
+ // if saving to file, append the correct headers
+ if($this->options->cachefile){
+ return '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">'.$this->options->eol.$svg;
+ }
+
+ if($this->options->imageBase64){
+ $svg = sprintf('data:image/svg+xml;base64,%s', base64_encode($svg));
+ }
+
+ return $svg;
+ }
+
+}
diff --git a/vendor/chillerlan/php-qrcode/src/Output/QROutputAbstract.php b/vendor/chillerlan/php-qrcode/src/Output/QROutputAbstract.php
new file mode 100644
index 000000000..4ec47de24
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/src/Output/QROutputAbstract.php
@@ -0,0 +1,130 @@
+<?php
+/**
+ * Class QROutputAbstract
+ *
+ * @filesource QROutputAbstract.php
+ * @created 09.12.2015
+ * @package chillerlan\QRCode\Output
+ * @author Smiley <[email protected]>
+ * @copyright 2015 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCode\Output;
+
+use chillerlan\QRCode\{Data\QRMatrix, QRCode};
+use chillerlan\Settings\SettingsContainerInterface;
+
+use function call_user_func, dirname, file_put_contents, get_called_class, in_array, is_writable, sprintf;
+
+/**
+ * common output abstract
+ */
+abstract class QROutputAbstract implements QROutputInterface{
+
+ /**
+ * @var int
+ */
+ protected $moduleCount;
+
+ /**
+ * @param \chillerlan\QRCode\Data\QRMatrix $matrix
+ */
+ protected $matrix;
+
+ /**
+ * @var \chillerlan\QRCode\QROptions
+ */
+ protected $options;
+
+ /**
+ * @var string
+ */
+ protected $outputMode;
+
+ /**
+ * @var string;
+ */
+ protected $defaultMode;
+
+ /**
+ * @var int
+ */
+ protected $scale;
+
+ /**
+ * @var int
+ */
+ protected $length;
+
+ /**
+ * @var array
+ */
+ protected $moduleValues;
+
+ /**
+ * QROutputAbstract constructor.
+ *
+ * @param \chillerlan\Settings\SettingsContainerInterface $options
+ * @param \chillerlan\QRCode\Data\QRMatrix $matrix
+ */
+ public function __construct(SettingsContainerInterface $options, QRMatrix $matrix){
+ $this->options = $options;
+ $this->matrix = $matrix;
+ $this->moduleCount = $this->matrix->size();
+ $this->scale = $this->options->scale;
+ $this->length = $this->moduleCount * $this->scale;
+
+ $class = get_called_class();
+
+ if(isset(QRCode::OUTPUT_MODES[$class]) && in_array($this->options->outputType, QRCode::OUTPUT_MODES[$class])){
+ $this->outputMode = $this->options->outputType;
+ }
+
+ $this->setModuleValues();
+ }
+
+ /**
+ * Sets the initial module values (clean-up & defaults)
+ *
+ * @return void
+ */
+ abstract protected function setModuleValues():void;
+
+ /**
+ * saves the qr data to a file
+ *
+ * @see file_put_contents()
+ * @see \chillerlan\QRCode\QROptions::cachefile
+ *
+ * @param string $data
+ * @param string $file
+ *
+ * @return bool
+ * @throws \chillerlan\QRCode\Output\QRCodeOutputException
+ */
+ protected function saveToFile(string $data, string $file):bool{
+
+ if(!is_writable(dirname($file))){
+ throw new QRCodeOutputException(sprintf('Could not write data to cache file: %s', $file));
+ }
+
+ return (bool)file_put_contents($file, $data);
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function dump(string $file = null){
+ // call the built-in output method
+ $data = call_user_func([$this, $this->outputMode ?? $this->defaultMode]);
+ $file = $file ?? $this->options->cachefile;
+
+ if($file !== null){
+ $this->saveToFile($data, $file);
+ }
+
+ return $data;
+ }
+
+}
diff --git a/vendor/chillerlan/php-qrcode/src/Output/QROutputInterface.php b/vendor/chillerlan/php-qrcode/src/Output/QROutputInterface.php
new file mode 100644
index 000000000..d9149b0f7
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/src/Output/QROutputInterface.php
@@ -0,0 +1,55 @@
+<?php
+/**
+ * Interface QROutputInterface,
+ *
+ * @filesource QROutputInterface.php
+ * @created 02.12.2015
+ * @package chillerlan\QRCode\Output
+ * @author Smiley <[email protected]>
+ * @copyright 2015 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCode\Output;
+
+use chillerlan\QRCode\Data\QRMatrix;
+
+/**
+ * Converts the data matrix into readable output
+ */
+interface QROutputInterface{
+
+ const DEFAULT_MODULE_VALUES = [
+ // light
+ QRMatrix::M_DATA => false, // 4
+ QRMatrix::M_FINDER => false, // 6
+ QRMatrix::M_SEPARATOR => false, // 8
+ QRMatrix::M_ALIGNMENT => false, // 10
+ QRMatrix::M_TIMING => false, // 12
+ QRMatrix::M_FORMAT => false, // 14
+ QRMatrix::M_VERSION => false, // 16
+ QRMatrix::M_QUIETZONE => false, // 18
+ QRMatrix::M_LOGO => false, // 20
+ QRMatrix::M_TEST => false, // 255
+ // dark
+ QRMatrix::M_DARKMODULE << 8 => true, // 512
+ QRMatrix::M_DATA << 8 => true, // 1024
+ QRMatrix::M_FINDER << 8 => true, // 1536
+ QRMatrix::M_ALIGNMENT << 8 => true, // 2560
+ QRMatrix::M_TIMING << 8 => true, // 3072
+ QRMatrix::M_FORMAT << 8 => true, // 3584
+ QRMatrix::M_VERSION << 8 => true, // 4096
+ QRMatrix::M_FINDER_DOT << 8 => true, // 5632
+ QRMatrix::M_TEST << 8 => true, // 65280
+ ];
+
+ /**
+ * generates the output, optionally dumps it to a file, and returns it
+ *
+ * @param string|null $file
+ *
+ * @return mixed
+ */
+ public function dump(string $file = null);
+
+}
diff --git a/vendor/chillerlan/php-qrcode/src/Output/QRString.php b/vendor/chillerlan/php-qrcode/src/Output/QRString.php
new file mode 100644
index 000000000..ba8d83675
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/src/Output/QRString.php
@@ -0,0 +1,76 @@
+<?php
+/**
+ * Class QRString
+ *
+ * @filesource QRString.php
+ * @created 05.12.2015
+ * @package chillerlan\QRCode\Output
+ * @author Smiley <[email protected]>
+ * @copyright 2015 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCode\Output;
+
+use chillerlan\QRCode\QRCode;
+
+use function implode, is_string, json_encode;
+
+/**
+ * Converts the matrix data into string types
+ */
+class QRString extends QROutputAbstract{
+
+ /**
+ * @var string
+ */
+ protected $defaultMode = QRCode::OUTPUT_STRING_TEXT;
+
+ /**
+ * @inheritDoc
+ */
+ protected function setModuleValues():void{
+
+ foreach($this::DEFAULT_MODULE_VALUES as $M_TYPE => $defaultValue){
+ $v = $this->options->moduleValues[$M_TYPE] ?? null;
+
+ if(!is_string($v)){
+ $this->moduleValues[$M_TYPE] = $defaultValue
+ ? $this->options->textDark
+ : $this->options->textLight;
+ }
+ else{
+ $this->moduleValues[$M_TYPE] = $v;
+ }
+
+ }
+
+ }
+
+ /**
+ * @return string
+ */
+ protected function text():string{
+ $str = [];
+
+ foreach($this->matrix->matrix() as $row){
+ $r = [];
+
+ foreach($row as $M_TYPE){
+ $r[] = $this->moduleValues[$M_TYPE];
+ }
+
+ $str[] = implode('', $r);
+ }
+
+ return implode($this->options->eol, $str);
+ }
+
+ /**
+ * @return string
+ */
+ protected function json():string{
+ return json_encode($this->matrix->matrix());
+ }
+
+}
diff --git a/vendor/chillerlan/php-qrcode/src/QRCode.php b/vendor/chillerlan/php-qrcode/src/QRCode.php
new file mode 100644
index 000000000..91f7aa0eb
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/src/QRCode.php
@@ -0,0 +1,310 @@
+<?php
+/**
+ * Class QRCode
+ *
+ * @filesource QRCode.php
+ * @created 26.11.2015
+ * @package chillerlan\QRCode
+ * @author Smiley <[email protected]>
+ * @copyright 2015 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCode;
+
+use chillerlan\QRCode\Data\{
+ MaskPatternTester, QRCodeDataException, QRDataInterface, QRMatrix
+};
+use chillerlan\QRCode\Output\{
+ QRCodeOutputException, QRFpdf, QRImage, QRImagick, QRMarkup, QROutputInterface, QRString
+};
+use chillerlan\Settings\SettingsContainerInterface;
+
+use function array_search, call_user_func_array, class_exists, in_array, min, ord, strlen;
+
+/**
+ * Turns a text string into a Model 2 QR Code
+ *
+ * @link https://github.com/kazuhikoarase/qrcode-generator/tree/master/php
+ * @link http://www.qrcode.com/en/codes/model12.html
+ * @link http://www.thonky.com/qr-code-tutorial/
+ */
+class QRCode{
+
+ /**
+ * API constants
+ */
+ public const OUTPUT_MARKUP_HTML = 'html';
+ public const OUTPUT_MARKUP_SVG = 'svg';
+ public const OUTPUT_IMAGE_PNG = 'png';
+ public const OUTPUT_IMAGE_JPG = 'jpg';
+ public const OUTPUT_IMAGE_GIF = 'gif';
+ public const OUTPUT_STRING_JSON = 'json';
+ public const OUTPUT_STRING_TEXT = 'text';
+ public const OUTPUT_IMAGICK = 'imagick';
+ public const OUTPUT_FPDF = 'fpdf';
+ public const OUTPUT_CUSTOM = 'custom';
+
+ public const VERSION_AUTO = -1;
+ public const MASK_PATTERN_AUTO = -1;
+
+ public const ECC_L = 0b01; // 7%.
+ public const ECC_M = 0b00; // 15%.
+ public const ECC_Q = 0b11; // 25%.
+ public const ECC_H = 0b10; // 30%.
+
+ public const DATA_NUMBER = 0b0001;
+ public const DATA_ALPHANUM = 0b0010;
+ public const DATA_BYTE = 0b0100;
+ public const DATA_KANJI = 0b1000;
+
+ public const ECC_MODES = [
+ self::ECC_L => 0,
+ self::ECC_M => 1,
+ self::ECC_Q => 2,
+ self::ECC_H => 3,
+ ];
+
+ public const DATA_MODES = [
+ self::DATA_NUMBER => 0,
+ self::DATA_ALPHANUM => 1,
+ self::DATA_BYTE => 2,
+ self::DATA_KANJI => 3,
+ ];
+
+ public const OUTPUT_MODES = [
+ QRMarkup::class => [
+ self::OUTPUT_MARKUP_SVG,
+ self::OUTPUT_MARKUP_HTML,
+ ],
+ QRImage::class => [
+ self::OUTPUT_IMAGE_PNG,
+ self::OUTPUT_IMAGE_GIF,
+ self::OUTPUT_IMAGE_JPG,
+ ],
+ QRString::class => [
+ self::OUTPUT_STRING_JSON,
+ self::OUTPUT_STRING_TEXT,
+ ],
+ QRImagick::class => [
+ self::OUTPUT_IMAGICK,
+ ],
+ QRFpdf::class => [
+ self::OUTPUT_FPDF
+ ]
+ ];
+
+ /**
+ * @var \chillerlan\QRCode\QROptions|\chillerlan\Settings\SettingsContainerInterface
+ */
+ protected $options;
+
+ /**
+ * @var \chillerlan\QRCode\Data\QRDataInterface
+ */
+ protected $dataInterface;
+
+ /**
+ * QRCode constructor.
+ *
+ * @param \chillerlan\Settings\SettingsContainerInterface|null $options
+ */
+ public function __construct(SettingsContainerInterface $options = null){
+ $this->options = $options ?? new QROptions;
+ }
+
+ /**
+ * Renders a QR Code for the given $data and QROptions
+ *
+ * @param string $data
+ * @param string|null $file
+ *
+ * @return mixed
+ */
+ public function render(string $data, string $file = null){
+ return $this->initOutputInterface($data)->dump($file);
+ }
+
+ /**
+ * Returns a QRMatrix object for the given $data and current QROptions
+ *
+ * @param string $data
+ *
+ * @return \chillerlan\QRCode\Data\QRMatrix
+ * @throws \chillerlan\QRCode\Data\QRCodeDataException
+ */
+ public function getMatrix(string $data):QRMatrix{
+
+ if(empty($data)){
+ throw new QRCodeDataException('QRCode::getMatrix() No data given.');
+ }
+
+ $this->dataInterface = $this->initDataInterface($data);
+
+ $maskPattern = $this->options->maskPattern === $this::MASK_PATTERN_AUTO
+ ? $this->getBestMaskPattern()
+ : $this->options->maskPattern;
+
+ $matrix = $this->dataInterface->initMatrix($maskPattern);
+
+ if((bool)$this->options->addQuietzone){
+ $matrix->setQuietZone($this->options->quietzoneSize);
+ }
+
+ return $matrix;
+ }
+
+ /**
+ * shoves a QRMatrix through the MaskPatternTester to find the lowest penalty mask pattern
+ *
+ * @see \chillerlan\QRCode\Data\MaskPatternTester
+ *
+ * @return int
+ */
+ protected function getBestMaskPattern():int{
+ $penalties = [];
+
+ for($pattern = 0; $pattern < 8; $pattern++){
+ $tester = new MaskPatternTester($this->dataInterface->initMatrix($pattern, true));
+
+ $penalties[$pattern] = $tester->testPattern();
+ }
+
+ return array_search(min($penalties), $penalties, true);
+ }
+
+ /**
+ * returns a fresh QRDataInterface for the given $data
+ *
+ * @param string $data
+ *
+ * @return \chillerlan\QRCode\Data\QRDataInterface
+ * @throws \chillerlan\QRCode\Data\QRCodeDataException
+ */
+ public function initDataInterface(string $data):QRDataInterface{
+ $dataModes = ['Number', 'AlphaNum', 'Kanji', 'Byte'];
+ $dataNamespace = __NAMESPACE__.'\\Data\\';
+
+ // allow forcing the data mode
+ // see https://github.com/chillerlan/php-qrcode/issues/39
+ if(in_array($this->options->dataMode, $dataModes, true)){
+ $dataInterface = $dataNamespace.$this->options->dataMode;
+
+ return new $dataInterface($this->options, $data);
+ }
+
+ foreach($dataModes as $mode){
+ $dataInterface = $dataNamespace.$mode;
+
+ if(call_user_func_array([$this, 'is'.$mode], [$data]) && class_exists($dataInterface)){
+ return new $dataInterface($this->options, $data);
+ }
+
+ }
+
+ throw new QRCodeDataException('invalid data type'); // @codeCoverageIgnore
+ }
+
+ /**
+ * returns a fresh (built-in) QROutputInterface
+ *
+ * @param string $data
+ *
+ * @return \chillerlan\QRCode\Output\QROutputInterface
+ * @throws \chillerlan\QRCode\Output\QRCodeOutputException
+ */
+ protected function initOutputInterface(string $data):QROutputInterface{
+
+ if($this->options->outputType === $this::OUTPUT_CUSTOM && class_exists($this->options->outputInterface)){
+ return new $this->options->outputInterface($this->options, $this->getMatrix($data));
+ }
+
+ foreach($this::OUTPUT_MODES as $outputInterface => $modes){
+
+ if(in_array($this->options->outputType, $modes, true) && class_exists($outputInterface)){
+ return new $outputInterface($this->options, $this->getMatrix($data));
+ }
+
+ }
+
+ throw new QRCodeOutputException('invalid output type');
+ }
+
+ /**
+ * checks if a string qualifies as numeric
+ *
+ * @param string $string
+ *
+ * @return bool
+ */
+ public function isNumber(string $string):bool{
+ return $this->checkString($string, QRDataInterface::NUMBER_CHAR_MAP);
+ }
+
+ /**
+ * checks if a string qualifies as alphanumeric
+ *
+ * @param string $string
+ *
+ * @return bool
+ */
+ public function isAlphaNum(string $string):bool{
+ return $this->checkString($string, QRDataInterface::ALPHANUM_CHAR_MAP);
+ }
+
+ /**
+ * checks is a given $string matches the characters of a given $charmap, returns false on the first invalid occurence.
+ *
+ * @param string $string
+ * @param array $charmap
+ *
+ * @return bool
+ */
+ protected function checkString(string $string, array $charmap):bool{
+ $len = strlen($string);
+
+ for($i = 0; $i < $len; $i++){
+ if(!in_array($string[$i], $charmap, true)){
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ /**
+ * checks if a string qualifies as Kanji
+ *
+ * @param string $string
+ *
+ * @return bool
+ */
+ public function isKanji(string $string):bool{
+ $i = 0;
+ $len = strlen($string);
+
+ while($i + 1 < $len){
+ $c = ((0xff & ord($string[$i])) << 8) | (0xff & ord($string[$i + 1]));
+
+ if(!($c >= 0x8140 && $c <= 0x9FFC) && !($c >= 0xE040 && $c <= 0xEBBF)){
+ return false;
+ }
+
+ $i += 2;
+ }
+
+ return $i >= $len;
+ }
+
+ /**
+ * a dummy
+ *
+ * @param $data
+ *
+ * @return bool
+ */
+ protected function isByte(string $data):bool{
+ return !empty($data);
+ }
+
+}
diff --git a/vendor/chillerlan/php-qrcode/src/QRCodeException.php b/vendor/chillerlan/php-qrcode/src/QRCodeException.php
new file mode 100644
index 000000000..68af380ff
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/src/QRCodeException.php
@@ -0,0 +1,15 @@
+<?php
+/**
+ * Class QRCodeException
+ *
+ * @filesource QRCodeException.php
+ * @created 27.11.2015
+ * @package chillerlan\QRCode
+ * @author Smiley <[email protected]>
+ * @copyright 2015 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCode;
+
+class QRCodeException extends \Exception{}
diff --git a/vendor/chillerlan/php-qrcode/src/QROptions.php b/vendor/chillerlan/php-qrcode/src/QROptions.php
new file mode 100644
index 000000000..778ae0407
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/src/QROptions.php
@@ -0,0 +1,61 @@
+<?php
+/**
+ * Class QROptions
+ *
+ * @filesource QROptions.php
+ * @created 08.12.2015
+ * @package chillerlan\QRCode
+ * @author Smiley <[email protected]>
+ * @copyright 2015 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCode;
+
+use chillerlan\Settings\SettingsContainerAbstract;
+
+/**
+ * @property int $version
+ * @property int $versionMin
+ * @property int $versionMax
+ * @property int $eccLevel
+ * @property int $maskPattern
+ * @property bool $addQuietzone
+ * @property bool $quietzoneSize
+ *
+ * @property string $dataMode
+ * @property string $outputType
+ * @property string $outputInterface
+ * @property string $cachefile
+ *
+ * @property string $eol
+ * @property int $scale
+ *
+ * @property string $cssClass
+ * @property string $svgOpacity
+ * @property string $svgDefs
+ * @property int $svgViewBoxSize
+ *
+ * @property string $textDark
+ * @property string $textLight
+ *
+ * @property string $markupDark
+ * @property string $markupLight
+ *
+ * @property bool $returnResource
+ * @property bool $imageBase64
+ * @property bool $imageTransparent
+ * @property array $imageTransparencyBG
+ * @property int $pngCompression
+ * @property int $jpegQuality
+ *
+ * @property string $imagickFormat
+ * @property string $imagickBG
+ *
+ * @property string $fpdfMeasureUnit
+ *
+ * @property array $moduleValues
+ */
+class QROptions extends SettingsContainerAbstract{
+ use QROptionsTrait;
+}
diff --git a/vendor/chillerlan/php-qrcode/src/QROptionsTrait.php b/vendor/chillerlan/php-qrcode/src/QROptionsTrait.php
new file mode 100644
index 000000000..45d4cb415
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/src/QROptionsTrait.php
@@ -0,0 +1,408 @@
+<?php
+/**
+ * Trait QROptionsTrait
+ *
+ * @filesource QROptionsTrait.php
+ * @created 10.03.2018
+ * @package chillerlan\QRCode
+ * @author smiley <[email protected]>
+ * @copyright 2018 smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCode;
+
+use function array_values, count, in_array, is_array, is_numeric, max, min, sprintf, strtolower;
+
+trait QROptionsTrait{
+
+ /**
+ * QR Code version number
+ *
+ * [1 ... 40] or QRCode::VERSION_AUTO
+ *
+ * @var int
+ */
+ protected $version = QRCode::VERSION_AUTO;
+
+ /**
+ * Minimum QR version (if $version = QRCode::VERSION_AUTO)
+ *
+ * @var int
+ */
+ protected $versionMin = 1;
+
+ /**
+ * Maximum QR version
+ *
+ * @var int
+ */
+ protected $versionMax = 40;
+
+ /**
+ * Error correct level
+ *
+ * QRCode::ECC_X where X is
+ * L => 7%
+ * M => 15%
+ * Q => 25%
+ * H => 30%
+ *
+ * @var int
+ */
+ protected $eccLevel = QRCode::ECC_L;
+
+ /**
+ * Mask Pattern to use
+ *
+ * [0...7] or QRCode::MASK_PATTERN_AUTO
+ *
+ * @var int
+ */
+ protected $maskPattern = QRCode::MASK_PATTERN_AUTO;
+
+ /**
+ * Add a "quiet zone" (margin) according to the QR code spec
+ *
+ * @var bool
+ */
+ protected $addQuietzone = true;
+
+ /**
+ * Size of the quiet zone
+ *
+ * internally clamped to [0 ... $moduleCount / 2], defaults to 4 modules
+ *
+ * @var int
+ */
+ protected $quietzoneSize = 4;
+
+ /**
+ * Use this to circumvent the data mode detection and force the usage of the given mode.
+ * valid modes are: Number, AlphaNum, Kanji, Byte
+ *
+ * @see https://github.com/chillerlan/php-qrcode/issues/39
+ *
+ * @var string|null
+ */
+ protected $dataMode = null;
+
+ /**
+ * QRCode::OUTPUT_MARKUP_XXXX where XXXX = HTML, SVG
+ * QRCode::OUTPUT_IMAGE_XXX where XXX = PNG, GIF, JPG
+ * QRCode::OUTPUT_STRING_XXXX where XXXX = TEXT, JSON
+ * QRCode::OUTPUT_CUSTOM
+ *
+ * @var string
+ */
+ protected $outputType = QRCode::OUTPUT_IMAGE_PNG;
+
+ /**
+ * the FQCN of the custom QROutputInterface if $outputType is set to QRCode::OUTPUT_CUSTOM
+ *
+ * @var string|null
+ */
+ protected $outputInterface = null;
+
+ /**
+ * /path/to/cache.file
+ *
+ * @var string|null
+ */
+ protected $cachefile = null;
+
+ /**
+ * newline string [HTML, SVG, TEXT]
+ *
+ * @var string
+ */
+ protected $eol = PHP_EOL;
+
+ /**
+ * size of a QR code pixel [SVG, IMAGE_*]
+ * HTML -> via CSS
+ *
+ * @var int
+ */
+ protected $scale = 5;
+
+ /**
+ * a common css class
+ *
+ * @var string
+ */
+ protected $cssClass = '';
+
+ /**
+ * SVG opacity
+ *
+ * @var float
+ */
+ protected $svgOpacity = 1.0;
+
+ /**
+ * anything between <defs>
+ *
+ * @see https://developer.mozilla.org/docs/Web/SVG/Element/defs
+ *
+ * @var string
+ */
+ protected $svgDefs = '<style>rect{shape-rendering:crispEdges}</style>';
+
+ /**
+ * SVG viewBox size. a single integer number which defines width/height of the viewBox attribute.
+ *
+ * viewBox="0 0 x x"
+ *
+ * @see https://css-tricks.com/scale-svg/#article-header-id-3
+ *
+ * @var int|null
+ */
+ protected $svgViewBoxSize = null;
+
+ /**
+ * string substitute for dark
+ *
+ * @var string
+ */
+ protected $textDark = '🔴';
+
+ /**
+ * string substitute for light
+ *
+ * @var string
+ */
+ protected $textLight = '⭕';
+
+ /**
+ * markup substitute for dark (CSS value)
+ *
+ * @var string
+ */
+ protected $markupDark = '#000';
+
+ /**
+ * markup substitute for light (CSS value)
+ *
+ * @var string
+ */
+ protected $markupLight = '#fff';
+
+ /**
+ * Return the image resource instead of a render if applicable.
+ * This option overrides other output options, such as $cachefile and $imageBase64.
+ *
+ * Supported by the following modules:
+ *
+ * - QRImage: resource
+ * - QRImagick: Imagick
+ * - QRFpdf: FPDF
+ *
+ * @see \chillerlan\QRCode\Output\QROutputInterface::dump()
+ *
+ * @var bool
+ */
+ protected $returnResource = false;
+
+ /**
+ * toggle base64 or raw image data
+ *
+ * @var bool
+ */
+ protected $imageBase64 = true;
+
+ /**
+ * toggle transparency, not supported by jpg
+ *
+ * @var bool
+ */
+ protected $imageTransparent = true;
+
+ /**
+ * @see imagecolortransparent()
+ *
+ * @var array [R, G, B]
+ */
+ protected $imageTransparencyBG = [255, 255, 255];
+
+ /**
+ * @see imagepng()
+ *
+ * @var int
+ */
+ protected $pngCompression = -1;
+
+ /**
+ * @see imagejpeg()
+ *
+ * @var int
+ */
+ protected $jpegQuality = 85;
+
+ /**
+ * Imagick output format
+ *
+ * @see Imagick::setType()
+ *
+ * @var string
+ */
+ protected $imagickFormat = 'png';
+
+ /**
+ * Imagick background color (defaults to "transparent")
+ *
+ * @see \ImagickPixel::__construct()
+ *
+ * @var string|null
+ */
+ protected $imagickBG = null;
+
+ /**
+ * Measurement unit for FPDF output: pt, mm, cm, in (defaults to "pt")
+ *
+ * @see \FPDF::__construct()
+ */
+ protected $fpdfMeasureUnit = 'pt';
+
+ /**
+ * Module values map
+ *
+ * HTML, IMAGICK: #ABCDEF, cssname, rgb(), rgba()...
+ * IMAGE: [63, 127, 255] // R, G, B
+ *
+ * @var array|null
+ */
+ protected $moduleValues = null;
+
+ /**
+ * clamp min/max version number
+ *
+ * @param int $versionMin
+ * @param int $versionMax
+ *
+ * @return void
+ */
+ protected function setMinMaxVersion(int $versionMin, int $versionMax):void{
+ $min = max(1, min(40, $versionMin));
+ $max = max(1, min(40, $versionMax));
+
+ $this->versionMin = min($min, $max);
+ $this->versionMax = max($min, $max);
+ }
+
+ /**
+ * sets the minimum version number
+ *
+ * @param int $version
+ *
+ * @return void
+ */
+ protected function set_versionMin(int $version):void{
+ $this->setMinMaxVersion($version, $this->versionMax);
+ }
+
+ /**
+ * sets the maximum version number
+ *
+ * @param int $version
+ *
+ * @return void
+ */
+ protected function set_versionMax(int $version):void{
+ $this->setMinMaxVersion($this->versionMin, $version);
+ }
+
+ /**
+ * sets the error correction level
+ *
+ * @param int $eccLevel
+ *
+ * @return void
+ * @throws \chillerlan\QRCode\QRCodeException
+ */
+ protected function set_eccLevel(int $eccLevel):void{
+
+ if(!isset(QRCode::ECC_MODES[$eccLevel])){
+ throw new QRCodeException(sprintf('Invalid error correct level: %s', $eccLevel));
+ }
+
+ $this->eccLevel = $eccLevel;
+ }
+
+ /**
+ * sets/clamps the mask pattern
+ *
+ * @param int $maskPattern
+ *
+ * @return void
+ */
+ protected function set_maskPattern(int $maskPattern):void{
+
+ if($maskPattern !== QRCode::MASK_PATTERN_AUTO){
+ $this->maskPattern = max(0, min(7, $maskPattern));
+ }
+
+ }
+
+ /**
+ * sets the transparency background color
+ *
+ * @param mixed $imageTransparencyBG
+ *
+ * @return void
+ * @throws \chillerlan\QRCode\QRCodeException
+ */
+ protected function set_imageTransparencyBG($imageTransparencyBG):void{
+
+ // invalid value - set to white as default
+ if(!is_array($imageTransparencyBG) || count($imageTransparencyBG) < 3){
+ $this->imageTransparencyBG = [255, 255, 255];
+
+ return;
+ }
+
+ foreach($imageTransparencyBG as $k => $v){
+
+ if(!is_numeric($v)){
+ throw new QRCodeException('Invalid RGB value.');
+ }
+
+ // clamp the values
+ $this->imageTransparencyBG[$k] = max(0, min(255, (int)$v));
+ }
+
+ // use the array values to not run into errors with the spread operator (...$arr)
+ $this->imageTransparencyBG = array_values($this->imageTransparencyBG);
+ }
+
+ /**
+ * sets/clamps the version number
+ *
+ * @param int $version
+ *
+ * @return void
+ */
+ protected function set_version(int $version):void{
+
+ if($version !== QRCode::VERSION_AUTO){
+ $this->version = max(1, min(40, $version));
+ }
+
+ }
+
+ /**
+ * sets the FPDF measurement unit
+ *
+ * @codeCoverageIgnore
+ */
+ protected function set_fpdfMeasureUnit(string $unit):void{
+ $unit = strtolower($unit);
+
+ if(in_array($unit, ['cm', 'in', 'mm', 'pt'], true)){
+ $this->fpdfMeasureUnit = $unit;
+ }
+
+ // @todo throw or ignore silently?
+ }
+
+}
diff --git a/vendor/chillerlan/php-qrcode/tests/Data/AlphaNumTest.php b/vendor/chillerlan/php-qrcode/tests/Data/AlphaNumTest.php
new file mode 100644
index 000000000..c29b1f639
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/tests/Data/AlphaNumTest.php
@@ -0,0 +1,44 @@
+<?php
+/**
+ * Class AlphaNumTest
+ *
+ * @filesource AlphaNumTest.php
+ * @created 24.11.2017
+ * @package chillerlan\QRCodeTest\Data
+ * @author Smiley <[email protected]>
+ * @copyright 2017 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCodeTest\Data;
+
+use chillerlan\QRCode\Data\{AlphaNum, QRCodeDataException};
+
+class AlphaNumTest extends DatainterfaceTestAbstract{
+
+ protected $FQCN = AlphaNum::class;
+ protected $testdata = '0 $%*+-./:';
+ protected $expected = [
+ 32, 80, 36, 212, 252, 15, 175, 251,
+ 176, 236, 17, 236, 17, 236, 17, 236,
+ 17, 236, 17, 236, 17, 236, 17, 236,
+ 17, 236, 17, 236, 17, 236, 17, 236,
+ 17, 236, 17, 236, 17, 236, 17, 236,
+ 17, 236, 17, 236, 17, 236, 17, 236,
+ 17, 236, 17, 236, 17, 236, 17, 236,
+ 17, 236, 17, 236, 17, 236, 17, 236,
+ 17, 236, 17, 236, 17, 236, 17, 236,
+ 17, 236, 17, 236, 17, 236, 17, 236,
+ 112, 43, 9, 248, 200, 194, 75, 25,
+ 205, 173, 154, 68, 191, 16, 128,
+ 92, 112, 20, 198, 27
+ ];
+
+ public function testGetCharCodeException(){
+ $this->expectException(QRCodeDataException::class);
+ $this->expectExceptionMessage('illegal char: "#" [35]');
+
+ $this->dataInterface->setData('#');
+ }
+
+}
diff --git a/vendor/chillerlan/php-qrcode/tests/Data/ByteTest.php b/vendor/chillerlan/php-qrcode/tests/Data/ByteTest.php
new file mode 100644
index 000000000..cbfe1fab2
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/tests/Data/ByteTest.php
@@ -0,0 +1,38 @@
+<?php
+/**
+ * Class ByteTest
+ *
+ * @filesource ByteTest.php
+ * @created 24.11.2017
+ * @package chillerlan\QRCodeTest\Data
+ * @author Smiley <[email protected]>
+ * @copyright 2017 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCodeTest\Data;
+
+use chillerlan\QRCode\Data\Byte;
+
+class ByteTest extends DatainterfaceTestAbstract{
+
+ protected $FQCN = Byte::class;
+ protected $testdata = '[¯\_(ツ)_/¯]';
+ protected $expected = [
+ 64, 245, 188, 42, 245, 197, 242, 142,
+ 56, 56, 66, 149, 242, 252, 42, 245,
+ 208, 236, 17, 236, 17, 236, 17, 236,
+ 17, 236, 17, 236, 17, 236, 17, 236,
+ 17, 236, 17, 236, 17, 236, 17, 236,
+ 17, 236, 17, 236, 17, 236, 17, 236,
+ 17, 236, 17, 236, 17, 236, 17, 236,
+ 17, 236, 17, 236, 17, 236, 17, 236,
+ 17, 236, 17, 236, 17, 236, 17, 236,
+ 17, 236, 17, 236, 17, 236, 17, 236,
+ 79, 89, 226, 48, 209, 89, 151, 1,
+ 12, 73, 42, 163, 11, 34, 255, 205,
+ 21, 47, 250, 101
+ ];
+
+
+}
diff --git a/vendor/chillerlan/php-qrcode/tests/Data/DatainterfaceTestAbstract.php b/vendor/chillerlan/php-qrcode/tests/Data/DatainterfaceTestAbstract.php
new file mode 100644
index 000000000..19d74617a
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/tests/Data/DatainterfaceTestAbstract.php
@@ -0,0 +1,65 @@
+<?php
+/**
+ * Class DatainterfaceTestAbstract
+ *
+ * @filesource DatainterfaceTestAbstract.php
+ * @created 24.11.2017
+ * @package chillerlan\QRCodeTest\Data
+ * @author Smiley <[email protected]>
+ * @copyright 2017 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCodeTest\Data;
+
+use chillerlan\QRCode\QROptions;
+use chillerlan\QRCode\Data\{QRCodeDataException, QRDataInterface, QRMatrix};
+use chillerlan\QRCodeTest\QRTestAbstract;
+
+abstract class DatainterfaceTestAbstract extends QRTestAbstract{
+
+ /**
+ * @var \chillerlan\QRCode\Data\QRDataAbstract
+ */
+ protected $dataInterface;
+
+ protected $testdata;
+ protected $expected;
+
+ protected function setUp():void{
+ parent::setUp();
+
+ $this->dataInterface = $this->reflection->newInstanceArgs([new QROptions(['version' => 4])]);
+ }
+
+ public function testInstance(){
+ $this->dataInterface = $this->reflection->newInstanceArgs([new QROptions, $this->testdata]);
+
+ $this->assertInstanceOf(QRDataInterface::class, $this->dataInterface);
+ }
+
+ public function testSetData(){
+ $this->dataInterface->setData($this->testdata);
+
+ $this->assertSame($this->expected, $this->getProperty('matrixdata')->getValue($this->dataInterface));
+ }
+
+ public function testInitMatrix(){
+ $m = $this->dataInterface->setData($this->testdata)->initMatrix(0);
+
+ $this->assertInstanceOf(QRMatrix::class, $m);
+ }
+
+ public function testGetMinimumVersion(){
+ $this->assertSame(1, $this->getMethod('getMinimumVersion')->invoke($this->dataInterface));
+ }
+
+ public function testGetMinimumVersionException(){
+ $this->expectException(QRCodeDataException::class);
+ $this->expectExceptionMessage('data exceeds');
+
+ $this->getProperty('strlen')->setValue($this->dataInterface, 13370);
+ $this->getMethod('getMinimumVersion')->invoke($this->dataInterface);
+ }
+
+}
diff --git a/vendor/chillerlan/php-qrcode/tests/Data/KanjiTest.php b/vendor/chillerlan/php-qrcode/tests/Data/KanjiTest.php
new file mode 100644
index 000000000..108b8fed7
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/tests/Data/KanjiTest.php
@@ -0,0 +1,50 @@
+<?php
+/**
+ * Class KanjiTest
+ *
+ * @filesource KanjiTest.php
+ * @created 24.11.2017
+ * @package chillerlan\QRCodeTest\Data
+ * @author Smiley <[email protected]>
+ * @copyright 2017 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCodeTest\Data;
+
+use chillerlan\QRCode\Data\{Kanji, QRCodeDataException};
+
+class KanjiTest extends DatainterfaceTestAbstract{
+
+ protected $FQCN = Kanji::class;
+ protected $testdata = '茗荷茗荷茗荷茗荷茗荷';
+ protected $expected = [
+ 128, 173, 85, 26, 95, 85, 70, 151,
+ 213, 81, 165, 245, 84, 105, 125, 85,
+ 26, 92, 0, 236, 17, 236, 17, 236,
+ 17, 236, 17, 236, 17, 236, 17, 236,
+ 17, 236, 17, 236, 17, 236, 17, 236,
+ 17, 236, 17, 236, 17, 236, 17, 236,
+ 17, 236, 17, 236, 17, 236, 17, 236,
+ 17, 236, 17, 236, 17, 236, 17, 236,
+ 17, 236, 17, 236, 17, 236, 17, 236,
+ 17, 236, 17, 236, 17, 236, 17, 236,
+ 195, 11, 221, 91, 141, 220, 163, 46,
+ 165, 37, 163, 176, 79, 0, 64, 68,
+ 96, 113, 54, 191
+ ];
+
+ public function testIllegalCharException1(){
+ $this->expectException(QRCodeDataException::class);
+ $this->expectExceptionMessage('illegal char at 1 [16191]');
+
+ $this->dataInterface->setData('ÃÃ');
+ }
+
+ public function testIllegalCharException2(){
+ $this->expectException(QRCodeDataException::class);
+ $this->expectExceptionMessage('illegal char at 1');
+
+ $this->dataInterface->setData('Ã');
+ }
+}
diff --git a/vendor/chillerlan/php-qrcode/tests/Data/MaskPatternTesterTest.php b/vendor/chillerlan/php-qrcode/tests/Data/MaskPatternTesterTest.php
new file mode 100644
index 000000000..ae4af9f29
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/tests/Data/MaskPatternTesterTest.php
@@ -0,0 +1,29 @@
+<?php
+/**
+ * Class MaskPatternTesterTest
+ *
+ * @filesource MaskPatternTesterTest.php
+ * @created 24.11.2017
+ * @package chillerlan\QRCodeTest\Data
+ * @author Smiley <[email protected]>
+ * @copyright 2017 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCodeTest\Data;
+
+use chillerlan\QRCode\{QROptions, Data\Byte, Data\MaskPatternTester};
+use chillerlan\QRCodeTest\QRTestAbstract;
+
+class MaskPatternTesterTest extends QRTestAbstract{
+
+ protected $FQCN = MaskPatternTester::class;
+
+ // coverage
+ public function testMaskpattern(){
+ $matrix = (new Byte(new QROptions(['version' => 10]), 'test'))->initMatrix(3, true);
+
+ $this->assertSame(4243, (new MaskPatternTester($matrix))->testPattern());
+ }
+
+}
diff --git a/vendor/chillerlan/php-qrcode/tests/Data/NumberTest.php b/vendor/chillerlan/php-qrcode/tests/Data/NumberTest.php
new file mode 100644
index 000000000..983346a34
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/tests/Data/NumberTest.php
@@ -0,0 +1,44 @@
+<?php
+/**
+ * Class NumberTest
+ *
+ * @filesource NumberTest.php
+ * @created 24.11.2017
+ * @package chillerlan\QRCodeTest\Data
+ * @author Smiley <[email protected]>
+ * @copyright 2017 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCodeTest\Data;
+
+use chillerlan\QRCode\Data\{Number, QRCodeDataException};
+
+class NumberTest extends DatainterfaceTestAbstract{
+
+ protected $FQCN = Number::class;
+ protected $testdata = '0123456789';
+ protected $expected = [
+ 16, 40, 12, 86, 106, 105, 0, 236,
+ 17, 236, 17, 236, 17, 236, 17, 236,
+ 17, 236, 17, 236, 17, 236, 17, 236,
+ 17, 236, 17, 236, 17, 236, 17, 236,
+ 17, 236, 17, 236, 17, 236, 17, 236,
+ 17, 236, 17, 236, 17, 236, 17, 236,
+ 17, 236, 17, 236, 17, 236, 17, 236,
+ 17, 236, 17, 236, 17, 236, 17, 236,
+ 17, 236, 17, 236, 17, 236, 17, 236,
+ 17, 236, 17, 236, 17, 236, 17, 236,
+ 201, 141, 102, 116, 238, 162, 239, 230,
+ 222, 37, 79, 192, 42, 109, 188, 72,
+ 89, 63, 168, 151
+ ];
+
+ public function testGetCharCodeException(){
+ $this->expectException(QRCodeDataException::class);
+ $this->expectExceptionMessage('illegal char: "#" [35]');
+
+ $this->dataInterface->setData('#');
+ }
+
+}
diff --git a/vendor/chillerlan/php-qrcode/tests/Data/QRMatrixTest.php b/vendor/chillerlan/php-qrcode/tests/Data/QRMatrixTest.php
new file mode 100644
index 000000000..531c82eb2
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/tests/Data/QRMatrixTest.php
@@ -0,0 +1,260 @@
+<?php
+/**
+ * Class QRMatrixTest
+ *
+ * @filesource QRMatrixTest.php
+ * @created 17.11.2017
+ * @package chillerlan\QRCodeTest\Data
+ * @author Smiley <[email protected]>
+ * @copyright 2017 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCodeTest\Data;
+
+use chillerlan\QRCode\QRCode;
+use chillerlan\QRCode\QROptions;
+use chillerlan\QRCode\Data\{QRCodeDataException, QRMatrix};
+use chillerlan\QRCodeTest\QRTestAbstract;
+use ReflectionClass;
+
+class QRMatrixTest extends QRTestAbstract{
+
+ protected $FQCN = QRMatrix::class;
+
+ protected $version = 7;
+
+ /**
+ * @var \chillerlan\QRCode\Data\QRMatrix
+ */
+ protected $matrix;
+
+ protected function setUp():void{
+ parent::setUp();
+
+ $this->matrix = $this->reflection->newInstanceArgs([$this->version, QRCode::ECC_L]);
+ }
+
+ public function testInvalidVersionException(){
+ $this->expectException(QRCodeDataException::class);
+ $this->expectExceptionMessage('invalid QR Code version');
+
+ $this->reflection->newInstanceArgs([42, 0]);
+ }
+
+ public function testInvalidEccException(){
+ $this->expectException(QRCodeDataException::class);
+ $this->expectExceptionMessage('invalid ecc level');
+
+ $this->reflection->newInstanceArgs([1, 42]);
+ }
+
+ public function testInstance(){
+ $this->assertInstanceOf($this->FQCN, $this->matrix);
+ }
+
+ public function testSize(){
+ $this->assertCount($this->matrix->size(), $this->matrix->matrix());
+ }
+
+ public function testVersion(){
+ $this->assertSame($this->version, $this->matrix->version());
+ }
+
+ public function testECC(){
+ $this->assertSame(QRCode::ECC_L, $this->matrix->eccLevel());
+ }
+
+ public function testMaskPattern(){
+ $this->assertSame(-1, $this->matrix->maskPattern());
+ }
+
+ public function testGetSetCheck(){
+ $this->matrix->set(10, 10, true, QRMatrix::M_TEST);
+ $this->assertSame(65280, $this->matrix->get(10, 10));
+ $this->assertTrue($this->matrix->check(10, 10));
+
+ $this->matrix->set(20, 20, false, QRMatrix::M_TEST);
+ $this->assertSame(255, $this->matrix->get(20, 20));
+ $this->assertFalse($this->matrix->check(20, 20));
+ }
+
+ public function testSetDarkModule(){
+ $this->matrix->setDarkModule();
+
+ $this->assertSame(QRMatrix::M_DARKMODULE << 8, $this->matrix->get(8, $this->matrix->size() - 8));
+ }
+
+ public function testSetFinderPattern(){
+ $this->matrix->setFinderPattern();
+
+ $this->assertSame(QRMatrix::M_FINDER << 8, $this->matrix->get(0, 0));
+ $this->assertSame(QRMatrix::M_FINDER << 8, $this->matrix->get(0, $this->matrix->size() - 1));
+ $this->assertSame(QRMatrix::M_FINDER << 8, $this->matrix->get($this->matrix->size() - 1, 0));
+ }
+
+ public function testSetSeparators(){
+ $this->matrix->setSeparators();
+
+ $this->assertSame(QRMatrix::M_SEPARATOR, $this->matrix->get(7, 0));
+ $this->assertSame(QRMatrix::M_SEPARATOR, $this->matrix->get(0, 7));
+ $this->assertSame(QRMatrix::M_SEPARATOR, $this->matrix->get(0, $this->matrix->size() - 8));
+ $this->assertSame(QRMatrix::M_SEPARATOR, $this->matrix->get($this->matrix->size() - 8, 0));
+ }
+
+ public function testSetAlignmentPattern(){
+ $this->matrix
+ ->setFinderPattern()
+ ->setAlignmentPattern()
+ ;
+
+ $alignmentPattern = (new ReflectionClass(QRMatrix::class))->getConstant('alignmentPattern')[$this->version];
+
+ foreach($alignmentPattern as $py){
+ foreach($alignmentPattern as $px){
+
+ if($this->matrix->get($px, $py) === QRMatrix::M_FINDER << 8){
+ $this->assertSame(QRMatrix::M_FINDER << 8, $this->matrix->get($px, $py), 'skipped finder pattern');
+ continue;
+ }
+
+ $this->assertSame(QRMatrix::M_ALIGNMENT << 8, $this->matrix->get($px, $py));
+ }
+ }
+
+ }
+
+ public function testSetTimingPattern(){
+ $this->matrix
+ ->setAlignmentPattern()
+ ->setTimingPattern()
+ ;
+
+ $size = $this->matrix->size();
+
+ for($i = 7; $i < $size - 7; $i++){
+ if($i % 2 === 0){
+ $p1 = $this->matrix->get(6, $i);
+
+ if($p1 === QRMatrix::M_ALIGNMENT << 8){
+ $this->assertSame(QRMatrix::M_ALIGNMENT << 8, $p1, 'skipped alignment pattern');
+ continue;
+ }
+
+ $this->assertSame(QRMatrix::M_TIMING << 8, $p1);
+ $this->assertSame(QRMatrix::M_TIMING << 8, $this->matrix->get($i, 6));
+ }
+ }
+ }
+
+ public function testSetVersionNumber(){
+ $this->matrix->setVersionNumber(true);
+
+ $this->assertSame(QRMatrix::M_VERSION, $this->matrix->get($this->matrix->size() - 9, 0));
+ $this->assertSame(QRMatrix::M_VERSION, $this->matrix->get($this->matrix->size() - 11, 5));
+ $this->assertSame(QRMatrix::M_VERSION, $this->matrix->get(0, $this->matrix->size() - 9));
+ $this->assertSame(QRMatrix::M_VERSION, $this->matrix->get(5, $this->matrix->size() - 11));
+ }
+
+ public function testSetFormatInfo(){
+ $this->matrix->setFormatInfo(0, true);
+
+ $this->assertSame(QRMatrix::M_FORMAT, $this->matrix->get(8, 0));
+ $this->assertSame(QRMatrix::M_FORMAT, $this->matrix->get(0, 8));
+ $this->assertSame(QRMatrix::M_FORMAT, $this->matrix->get($this->matrix->size() - 1, 8));
+ $this->assertSame(QRMatrix::M_FORMAT, $this->matrix->get($this->matrix->size() - 8, 8));
+ }
+
+ public function testSetQuietZone(){
+ $size = $this->matrix->size();
+ $q = 5;
+
+ $this->matrix->set(0, 0, true, QRMatrix::M_TEST);
+ $this->matrix->set($size - 1, $size - 1, true, QRMatrix::M_TEST);
+
+ $this->matrix->setQuietZone($q);
+
+ $this->assertCount($size + 2 * $q, $this->matrix->matrix());
+ $this->assertCount($size + 2 * $q, $this->matrix->matrix()[$size - 1]);
+
+ $size = $this->matrix->size();
+ $this->assertSame(QRMatrix::M_QUIETZONE, $this->matrix->get(0, 0));
+ $this->assertSame(QRMatrix::M_QUIETZONE, $this->matrix->get($size - 1, $size - 1));
+
+ $this->assertSame(QRMatrix::M_TEST << 8, $this->matrix->get($q, $q));
+ $this->assertSame(QRMatrix::M_TEST << 8, $this->matrix->get($size - 1 - $q, $size - 1 - $q));
+ }
+
+ public function testSetQuietZoneException(){
+ $this->expectException(QRCodeDataException::class);
+ $this->expectExceptionMessage('use only after writing data');
+
+ $this->matrix->setQuietZone();
+ }
+
+ public function testSetLogoSpaceOrientation():void{
+ $o = new QROptions;
+ $o->version = 10;
+ $o->eccLevel = QRCode::ECC_H;
+ $o->addQuietzone = false;
+
+ $matrix = (new QRCode($o))->getMatrix('testdata');
+ // also testing size adjustment to uneven numbers
+ $matrix->setLogoSpace(20, 14);
+
+ // NW corner
+ $this::assertNotSame(QRMatrix::M_LOGO, $matrix->get(17, 20));
+ $this::assertSame(QRMatrix::M_LOGO, $matrix->get(18, 21));
+
+ // SE corner
+ $this::assertSame(QRMatrix::M_LOGO, $matrix->get(38, 35));
+ $this::assertNotSame(QRMatrix::M_LOGO, $matrix->get(39, 36));
+ }
+
+ public function testSetLogoSpacePosition():void{
+ $o = new QROptions;
+ $o->version = 10;
+ $o->eccLevel = QRCode::ECC_H;
+ $o->addQuietzone = true;
+ $o->quietzoneSize = 10;
+
+ $m = (new QRCode($o))->getMatrix('testdata');
+
+ // logo space should not overwrite quiet zone & function patterns
+ $m->setLogoSpace(21, 21, -10, -10);
+ $this::assertSame(QRMatrix::M_QUIETZONE, $m->get(9, 9));
+ $this::assertSame(QRMatrix::M_FINDER << 8, $m->get(10, 10));
+ $this::assertSame(QRMatrix::M_FINDER << 8, $m->get(16, 16));
+ $this::assertSame(QRMatrix::M_SEPARATOR, $m->get(17, 17));
+ $this::assertSame(QRMatrix::M_FORMAT << 8, $m->get(18, 18));
+ $this::assertSame(QRMatrix::M_LOGO, $m->get(19, 19));
+ $this::assertSame(QRMatrix::M_LOGO, $m->get(20, 20));
+ $this::assertNotSame(QRMatrix::M_LOGO, $m->get(21, 21));
+
+ // i just realized that setLogoSpace() could be called multiple times
+ // on the same instance and i'm not going to do anything about it :P
+ $m->setLogoSpace(21, 21, 45, 45);
+ $this::assertNotSame(QRMatrix::M_LOGO, $m->get(54, 54));
+ $this::assertSame(QRMatrix::M_LOGO, $m->get(55, 55));
+ $this::assertSame(QRMatrix::M_QUIETZONE, $m->get(67, 67));
+ }
+
+ public function testSetLogoSpaceInvalidEccException():void{
+ $this->expectException(QRCodeDataException::class);
+ $this->expectExceptionMessage('ECC level "H" required to add logo space');
+
+ (new QRCode)->getMatrix('testdata')->setLogoSpace(50, 50);
+ }
+
+ public function testSetLogoSpaceMaxSizeException():void{
+ $this->expectException(QRCodeDataException::class);
+ $this->expectExceptionMessage('logo space exceeds the maximum error correction capacity');
+
+ $o = new QROptions;
+ $o->version = 5;
+ $o->eccLevel = QRCode::ECC_H;
+
+ (new QRCode($o))->getMatrix('testdata')->setLogoSpace(50, 50);
+ }
+
+}
diff --git a/vendor/chillerlan/php-qrcode/tests/Helpers/BitBufferTest.php b/vendor/chillerlan/php-qrcode/tests/Helpers/BitBufferTest.php
new file mode 100644
index 000000000..25d1c3504
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/tests/Helpers/BitBufferTest.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * Class BitBufferTest
+ *
+ * @filesource BitBufferTest.php
+ * @created 08.02.2016
+ * @package chillerlan\QRCodeTest\Helpers
+ * @author Smiley <[email protected]>
+ * @copyright 2015 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCodeTest\Helpers;
+
+use chillerlan\QRCode\{QRCode, Helpers\BitBuffer};
+use chillerlan\QRCodeTest\QRTestAbstract;
+
+class BitBufferTest extends QRTestAbstract{
+
+ /**
+ * @var \chillerlan\QRCode\Helpers\BitBuffer
+ */
+ protected $bitBuffer;
+
+ protected function setUp():void{
+ $this->bitBuffer = new BitBuffer;
+ }
+
+ public function bitProvider(){
+ return [
+ 'number' => [QRCode::DATA_NUMBER, 16],
+ 'alphanum' => [QRCode::DATA_ALPHANUM, 32],
+ 'byte' => [QRCode::DATA_BYTE, 64],
+ 'kanji' => [QRCode::DATA_KANJI, 128],
+ ];
+ }
+
+ /**
+ * @dataProvider bitProvider
+ */
+ public function testPut($data, $value){
+ $this->bitBuffer->put($data, 4);
+ $this->assertSame($value, $this->bitBuffer->buffer[0]);
+ $this->assertSame(4, $this->bitBuffer->length);
+ }
+
+ public function testClear(){
+ $this->bitBuffer->clear();
+ $this->assertSame([], $this->bitBuffer->buffer);
+ $this->assertSame(0, $this->bitBuffer->length);
+ }
+
+}
diff --git a/vendor/chillerlan/php-qrcode/tests/Helpers/PolynomialTest.php b/vendor/chillerlan/php-qrcode/tests/Helpers/PolynomialTest.php
new file mode 100644
index 000000000..7f6da303c
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/tests/Helpers/PolynomialTest.php
@@ -0,0 +1,42 @@
+<?php
+/**
+ * Class PolynomialTest
+ *
+ * @filesource PolynomialTest.php
+ * @created 09.02.2016
+ * @package chillerlan\QRCodeTest\Helpers
+ * @author Smiley <[email protected]>
+ * @copyright 2015 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCodeTest\Helpers;
+
+use chillerlan\QRCode\Helpers\Polynomial;
+use chillerlan\QRCode\QRCodeException;
+use chillerlan\QRCodeTest\QRTestAbstract;
+
+class PolynomialTest extends QRTestAbstract{
+
+ /**
+ * @var \chillerlan\QRCode\Helpers\Polynomial
+ */
+ protected $polynomial;
+
+ protected function setUp():void{
+ $this->polynomial = new Polynomial;
+ }
+
+ public function testGexp(){
+ $this->assertSame(142, $this->polynomial->gexp(-1));
+ $this->assertSame(133, $this->polynomial->gexp(128));
+ $this->assertSame(2, $this->polynomial->gexp(256));
+ }
+
+ public function testGlogException(){
+ $this->expectException(QRCodeException::class);
+ $this->expectExceptionMessage('log(0)');
+
+ $this->polynomial->glog(0);
+ }
+}
diff --git a/vendor/chillerlan/php-qrcode/tests/Output/QRFpdfTest.php b/vendor/chillerlan/php-qrcode/tests/Output/QRFpdfTest.php
new file mode 100644
index 000000000..1b49182d2
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/tests/Output/QRFpdfTest.php
@@ -0,0 +1,83 @@
+<?php
+/**
+ * Class QRFpdfTest
+ *
+ * @filesource QRFpdfTest.php
+ * @created 03.06.2020
+ * @package chillerlan\QRCodeTest\Output
+ * @author smiley <[email protected]>
+ * @copyright 2020 smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCodeTest\Output;
+
+use FPDF;
+use chillerlan\QRCode\Output\{QRFpdf, QROutputInterface};
+use chillerlan\QRCode\{QRCode, QROptions};
+
+use function class_exists, substr;
+
+/**
+ * Tests the QRFpdf output module
+ */
+class QRFpdfTest extends QROutputTestAbstract{
+
+ protected $FQCN = QRFpdf::class;
+
+ /**
+ * @inheritDoc
+ * @internal
+ */
+ public function setUp():void{
+
+ if(!class_exists(FPDF::class)){
+ $this->markTestSkipped('FPDF not available');
+ return;
+ }
+
+ parent::setUp();
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function testSetModuleValues():void{
+
+ $this->options->moduleValues = [
+ // data
+ 1024 => [0, 0, 0],
+ 4 => [255, 255, 255],
+ ];
+
+ $this->outputInterface->dump();
+
+ $this::assertTrue(true); // tricking the code coverage
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function testRenderImage():void{
+ $type = QRCode::OUTPUT_FPDF;
+
+ $this->options->outputType = $type;
+ $this->options->imageBase64 = false;
+ $this->outputInterface->dump($this::cachefile.$type);
+
+ // substr() to avoid CreationDate
+ $expected = substr(file_get_contents($this::cachefile.$type), 0, 2000);
+ $actual = substr($this->outputInterface->dump(), 0, 2000);
+
+ $this::assertSame($expected, $actual);
+ }
+
+ public function testOutputGetResource():void{
+ $this->options->returnResource = true;
+
+ $this->setOutputInterface();
+
+ $this::assertInstanceOf(FPDF::class, $this->outputInterface->dump());
+ }
+
+}
diff --git a/vendor/chillerlan/php-qrcode/tests/Output/QRImageTest.php b/vendor/chillerlan/php-qrcode/tests/Output/QRImageTest.php
new file mode 100644
index 000000000..34ecf4f91
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/tests/Output/QRImageTest.php
@@ -0,0 +1,69 @@
+<?php
+/**
+ * Class QRImageTest
+ *
+ * @filesource QRImageTest.php
+ * @created 24.12.2017
+ * @package chillerlan\QRCodeTest\Output
+ * @author Smiley <[email protected]>
+ * @copyright 2017 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCodeTest\Output;
+
+use chillerlan\QRCode\{QRCode, Output\QRImage};
+
+class QRImageTest extends QROutputTestAbstract{
+
+ protected $FQCN = QRImage::class;
+
+ public function types(){
+ return [
+ 'png' => [QRCode::OUTPUT_IMAGE_PNG],
+ 'gif' => [QRCode::OUTPUT_IMAGE_GIF],
+ 'jpg' => [QRCode::OUTPUT_IMAGE_JPG],
+ ];
+ }
+
+ /**
+ * @dataProvider types
+ * @param $type
+ */
+ public function testImageOutput($type){
+ $this->options->outputType = $type;
+ $this->options->imageBase64 = false;
+
+ $this->setOutputInterface();
+ $this->outputInterface->dump($this::cachefile.$type);
+ $img = $this->outputInterface->dump();
+
+ if($type === QRCode::OUTPUT_IMAGE_JPG){ // jpeg encoding may cause different results
+ $this->markAsRisky();
+ }
+
+ $this->assertSame($img, file_get_contents($this::cachefile.$type));
+ }
+
+ public function testSetModuleValues(){
+
+ $this->options->moduleValues = [
+ // data
+ 1024 => [0, 0, 0],
+ 4 => [255, 255, 255],
+ ];
+
+ $this->setOutputInterface()->dump();
+
+ $this->assertTrue(true); // tricking the code coverage
+ }
+
+ public function testOutputGetResource():void{
+ $this->options->returnResource = true;
+
+ $this->setOutputInterface();
+
+ $this::assertIsResource($this->outputInterface->dump());
+ }
+
+}
diff --git a/vendor/chillerlan/php-qrcode/tests/Output/QRImagickTest.php b/vendor/chillerlan/php-qrcode/tests/Output/QRImagickTest.php
new file mode 100644
index 000000000..c927cc64e
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/tests/Output/QRImagickTest.php
@@ -0,0 +1,66 @@
+<?php
+/**
+ * Class QRImagickTest
+ *
+ * @filesource QRImagickTest.php
+ * @created 04.07.2018
+ * @package chillerlan\QRCodeTest\Output
+ * @author smiley <[email protected]>
+ * @copyright 2018 smiley
+ * @license MIT
+ *
+ * @noinspection PhpComposerExtensionStubsInspection
+ */
+
+namespace chillerlan\QRCodeTest\Output;
+
+use Imagick;
+use chillerlan\QRCode\{QRCode, Output\QRImagick};
+
+class QRImagickTest extends QROutputTestAbstract{
+
+ protected $FQCN = QRImagick::class;
+
+ public function setUp():void{
+
+ if(!extension_loaded('imagick')){
+ $this->markTestSkipped('ext-imagick not loaded');
+ return;
+ }
+
+ parent::setUp();
+ }
+
+ public function testImageOutput(){
+ $type = QRCode::OUTPUT_IMAGICK;
+
+ $this->options->outputType = $type;
+ $this->setOutputInterface();
+ $this->outputInterface->dump($this::cachefile.$type);
+ $img = $this->outputInterface->dump();
+
+ $this->assertSame($img, file_get_contents($this::cachefile.$type));
+ }
+
+ public function testSetModuleValues(){
+
+ $this->options->moduleValues = [
+ // data
+ 1024 => '#4A6000',
+ 4 => '#ECF9BE',
+ ];
+
+ $this->setOutputInterface()->dump();
+
+ $this->assertTrue(true); // tricking the code coverage
+ }
+
+ public function testOutputGetResource():void{
+ $this->options->returnResource = true;
+
+ $this->setOutputInterface();
+
+ $this::assertInstanceOf(Imagick::class, $this->outputInterface->dump());
+ }
+
+}
diff --git a/vendor/chillerlan/php-qrcode/tests/Output/QRMarkupTest.php b/vendor/chillerlan/php-qrcode/tests/Output/QRMarkupTest.php
new file mode 100644
index 000000000..24fdc3ce6
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/tests/Output/QRMarkupTest.php
@@ -0,0 +1,79 @@
+<?php
+/**
+ * Class QRMarkupTest
+ *
+ * @filesource QRMarkupTest.php
+ * @created 24.12.2017
+ * @package chillerlan\QRCodeTest\Output
+ * @author Smiley <[email protected]>
+ * @copyright 2017 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCodeTest\Output;
+
+use chillerlan\QRCode\{QRCode, Output\QRMarkup};
+
+class QRMarkupTest extends QROutputTestAbstract{
+
+ protected $FQCN = QRMarkup::class;
+
+ public function types(){
+ return [
+ 'html' => [QRCode::OUTPUT_MARKUP_HTML],
+ 'svg' => [QRCode::OUTPUT_MARKUP_SVG],
+ ];
+ }
+
+ /**
+ * @dataProvider types
+ * @param $type
+ */
+ public function testMarkupOutputFile($type){
+ $this->options->outputType = $type;
+ $this->options->cachefile = $this::cachefile.$type;
+ $this->setOutputInterface();
+ $data = $this->outputInterface->dump();
+
+ $this->assertSame($data, file_get_contents($this->options->cachefile));
+ }
+
+ /**
+ * @dataProvider types
+ * @param $type
+ */
+ public function testMarkupOutput($type){
+ $this->options->imageBase64 = false;
+ $this->options->outputType = $type;
+ $this->setOutputInterface();
+
+ $expected = explode($this->options->eol, file_get_contents($this::cachefile.$type));
+ // cut off the doctype & head
+ array_shift($expected);
+
+ if($type === QRCode::OUTPUT_MARKUP_HTML){
+ // cut off the </body> tag
+ array_pop($expected);
+ }
+
+ $expected = implode($this->options->eol, $expected);
+
+ $this->assertSame(trim($expected), trim($this->outputInterface->dump()));
+ }
+
+ public function testSetModuleValues(){
+
+ $this->options->imageBase64 = false;
+ $this->options->moduleValues = [
+ // data
+ 1024 => '#4A6000',
+ 4 => '#ECF9BE',
+ ];
+
+ $this->setOutputInterface();
+ $data = $this->outputInterface->dump();
+ $this->assertStringContainsString('#4A6000', $data);
+ $this->assertStringContainsString('#ECF9BE', $data);
+ }
+
+}
diff --git a/vendor/chillerlan/php-qrcode/tests/Output/QROutputTestAbstract.php b/vendor/chillerlan/php-qrcode/tests/Output/QROutputTestAbstract.php
new file mode 100644
index 000000000..6cd95d080
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/tests/Output/QROutputTestAbstract.php
@@ -0,0 +1,71 @@
+<?php
+/**
+ * Class QROutputTestAbstract
+ *
+ * @filesource QROutputTestAbstract.php
+ * @created 24.12.2017
+ * @package chillerlan\QRCodeTest\Output
+ * @author Smiley <[email protected]>
+ * @copyright 2017 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCodeTest\Output;
+
+use chillerlan\QRCode\QROptions;
+use chillerlan\QRCode\Data\Byte;
+use chillerlan\QRCode\Output\{QRCodeOutputException, QROutputInterface};
+use chillerlan\QRCodeTest\QRTestAbstract;
+
+use function dirname, file_exists, mkdir;
+
+abstract class QROutputTestAbstract extends QRTestAbstract{
+
+ const cachefile = __DIR__.'/../../.build/output_test/test.';
+
+ /**
+ * @var \chillerlan\QRCode\Output\QROutputInterface
+ */
+ protected $outputInterface;
+
+ /**
+ * @var \chillerlan\QRCode\QROptions
+ */
+ protected $options;
+
+ /**
+ * @var \chillerlan\QRCode\Data\QRMatrix
+ */
+ protected $matrix;
+
+ protected function setUp():void{
+ parent::setUp();
+
+ $buildDir = dirname($this::cachefile);
+ if(!file_exists($buildDir)){
+ mkdir($buildDir, 0777, true);
+ }
+
+ $this->options = new QROptions;
+ $this->setOutputInterface();
+ }
+
+ protected function setOutputInterface(){
+ $this->outputInterface = $this->reflection->newInstanceArgs([$this->options, (new Byte($this->options, 'testdata'))->initMatrix(0)]);
+ return $this->outputInterface;
+ }
+
+ public function testInstance(){
+ $this->assertInstanceOf(QROutputInterface::class, $this->outputInterface);
+ }
+
+ public function testSaveException(){
+ $this->expectException(QRCodeOutputException::class);
+ $this->expectExceptionMessage('Could not write data to cache file: /foo');
+
+ $this->options->cachefile = '/foo';
+ $this->setOutputInterface();
+ $this->outputInterface->dump();
+ }
+
+}
diff --git a/vendor/chillerlan/php-qrcode/tests/Output/QRStringTest.php b/vendor/chillerlan/php-qrcode/tests/Output/QRStringTest.php
new file mode 100644
index 000000000..5dbd34010
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/tests/Output/QRStringTest.php
@@ -0,0 +1,56 @@
+<?php
+/**
+ * Class QRStringTest
+ *
+ * @filesource QRStringTest.php
+ * @created 24.12.2017
+ * @package chillerlan\QRCodeTest\Output
+ * @author Smiley <[email protected]>
+ * @copyright 2017 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCodeTest\Output;
+
+use chillerlan\QRCode\{QRCode, Output\QRString};
+
+class QRStringTest extends QROutputTestAbstract{
+
+ protected $FQCN = QRString::class;
+
+ public function types(){
+ return [
+ 'json' => [QRCode::OUTPUT_STRING_JSON],
+ 'text' => [QRCode::OUTPUT_STRING_TEXT],
+ ];
+ }
+
+ /**
+ * @dataProvider types
+ * @param $type
+ */
+ public function testStringOutput($type){
+ $this->options->outputType = $type;
+ $this->options->cachefile = $this::cachefile.$type;
+ $this->setOutputInterface();
+ $data = $this->outputInterface->dump();
+
+ $this->assertSame($data, file_get_contents($this->options->cachefile));
+ }
+
+ public function testSetModuleValues(){
+
+ $this->options->moduleValues = [
+ // data
+ 1024 => 'A',
+ 4 => 'B',
+ ];
+
+ $this->setOutputInterface();
+ $data = $this->outputInterface->dump();
+
+ $this->assertStringContainsString('A', $data);
+ $this->assertStringContainsString('B', $data);
+ }
+
+}
diff --git a/vendor/chillerlan/php-qrcode/tests/QRCodeTest.php b/vendor/chillerlan/php-qrcode/tests/QRCodeTest.php
new file mode 100644
index 000000000..8613c961f
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/tests/QRCodeTest.php
@@ -0,0 +1,140 @@
+<?php
+/**
+ * Class QRCodeTest
+ *
+ * @filesource QRCodeTest.php
+ * @created 17.11.2017
+ * @package chillerlan\QRCodeTest
+ * @author Smiley <[email protected]>
+ * @copyright 2017 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCodeTest;
+
+use chillerlan\QRCode\{QROptions, QRCode};
+use chillerlan\QRCode\Data\{AlphaNum, Byte, Number, QRCodeDataException};
+use chillerlan\QRCode\Output\QRCodeOutputException;
+use chillerlan\QRCodeExamples\MyCustomOutput;
+
+use function random_bytes;
+
+class QRCodeTest extends QRTestAbstract{
+
+ protected $FQCN = QRCode::class;
+
+ /**
+ * @var \chillerlan\QRCode\QRCode
+ */
+ protected $qrcode;
+
+ protected function setUp():void{
+ parent::setUp();
+
+ $this->qrcode = $this->reflection->newInstance();
+ }
+
+ public function testIsNumber(){
+ $this->assertTrue($this->qrcode->isNumber('0123456789'));
+ $this->assertFalse($this->qrcode->isNumber('ABC'));
+ }
+
+ public function testIsAlphaNum(){
+ $this->assertTrue($this->qrcode->isAlphaNum('ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 $%*+-./:'));
+ $this->assertFalse($this->qrcode->isAlphaNum('abc'));
+ }
+
+ public function testIsKanji(){
+ $this->assertTrue($this->qrcode->isKanji('茗荷'));
+ $this->assertFalse($this->qrcode->isKanji('Ã'));
+ }
+
+ // coverage
+
+ public function typeDataProvider(){
+ return [
+ 'png' => [QRCode::OUTPUT_IMAGE_PNG, 'data:image/png;base64,'],
+ 'gif' => [QRCode::OUTPUT_IMAGE_GIF, 'data:image/gif;base64,'],
+ 'jpg' => [QRCode::OUTPUT_IMAGE_JPG, 'data:image/jpg;base64,'],
+ 'svg' => [QRCode::OUTPUT_MARKUP_SVG, 'data:image/svg+xml;base64,'],
+ 'html' => [QRCode::OUTPUT_MARKUP_HTML, '<div><span style="background:'],
+ 'text' => [QRCode::OUTPUT_STRING_TEXT, '⭕⭕⭕⭕⭕⭕⭕⭕⭕⭕⭕⭕⭕⭕⭕⭕⭕⭕⭕⭕⭕⭕⭕⭕⭕⭕⭕⭕⭕'.PHP_EOL],
+ 'json' => [QRCode::OUTPUT_STRING_JSON, '[[18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18],'],
+ ];
+ }
+
+ /**
+ * @dataProvider typeDataProvider
+ * @param $type
+ */
+ public function testRenderImage($type, $expected){
+ $this->qrcode = $this->reflection->newInstanceArgs([new QROptions(['outputType' => $type])]);
+
+ $this->assertStringContainsString($expected, $this->qrcode->render('test'));
+ }
+
+ public function testInitDataInterfaceException(){
+ $this->expectException(QRCodeOutputException::class);
+ $this->expectExceptionMessage('invalid output type');
+
+ (new QRCode(new QROptions(['outputType' => 'foo'])))->render('test');
+ }
+
+ public function testGetMatrixException(){
+ $this->expectException(QRCodeDataException::class);
+ $this->expectExceptionMessage('QRCode::getMatrix() No data given.');
+
+ $this->qrcode->getMatrix('');
+ }
+
+ public function testTrim() {
+ $m1 = $this->qrcode->getMatrix('hello');
+ $m2 = $this->qrcode->getMatrix('hello '); // added space
+
+ $this->assertNotEquals($m1, $m2);
+ }
+
+ public function testImageTransparencyBGDefault(){
+ $this->qrcode = $this->reflection->newInstanceArgs([new QROptions(['imageTransparencyBG' => 'foo'])]);
+
+ $this->assertSame([255,255,255], $this->getProperty('options')->getValue($this->qrcode)->imageTransparencyBG);
+ }
+
+ public function testCustomOutput(){
+
+ $options = new QROptions([
+ 'version' => 5,
+ 'eccLevel' => QRCode::ECC_L,
+ 'outputType' => QRCode::OUTPUT_CUSTOM,
+ 'outputInterface' => MyCustomOutput::class,
+ ]);
+
+ $expected = '000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111110111010000101111010000011111110000000010000010111000001101011000001010000010000000010111010101101011000001101011010111010000000010111010110100111110010100111010111010000000010111010000001101011000001101010111010000000010000010100111110010100111110010000010000000011111110101010101010101010101011111110000000000000000010010100111110010100000000000000000011001110000101111010000101111001011110000000000000000111010000101111010000111100010000000001011010100111110010100111110011001010000000010000101111101011000001101011110011110000000000011010100011000001101011000101110100000000011001100001001101011000001101010011010000000010110111110000001101011000001100110100000000010000100100010100111110010100001100100000000011111110111101111010000101111010100110000000011010000111010000101111010000111100100000000010101111111111110010100111110011001000000000010110001110101011000001101011110011010000000001001111100011000001101011000101110010000000011000100110001101011000001101010011100000000001000011001000001101011000001100110000000000011101001011010100111110010100001100000000000010111010001101111010000101111010100110000000011100000001010000101111010000111100000000000000001110110111110010100111110011001000000000000011001011101011000001101011110011100000000011111110101011000001101011001111110110000000000000000110001101011000001101000111100000000011111110001000001101011000011010110000000000010000010101010100111110010101000100100000000010111010111101111010000101111111100110000000010111010011010000101111010001101100010000000010111010000111110010100111100101101100000000010000010101101011000001101001100111100000000011111110101011000001101011000110010110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000';
+
+ $this->assertSame($expected, $this->reflection->newInstanceArgs([$options])->render('test'));
+ }
+
+ public function testDataModeOverride(){
+ $this->qrcode = $this->reflection->newInstance();
+
+ $this->assertInstanceOf(Number::class, $this->qrcode->initDataInterface('123'));
+ $this->assertInstanceOf(AlphaNum::class, $this->qrcode->initDataInterface('ABC123'));
+ $this->assertInstanceOf(Byte::class, $this->qrcode->initDataInterface(random_bytes(32)));
+
+ $this->qrcode = $this->reflection->newInstanceArgs([new QROptions(['dataMode' => 'Byte'])]);
+
+ $this->assertInstanceOf(Byte::class, $this->qrcode->initDataInterface('123'));
+ $this->assertInstanceOf(Byte::class, $this->qrcode->initDataInterface('ABC123'));
+ $this->assertInstanceOf(Byte::class, $this->qrcode->initDataInterface(random_bytes(32)));
+ }
+
+ public function testDataModeOverrideError(){
+ $this->expectException(QRCodeDataException::class);
+ $this->expectExceptionMessage('illegal char:');
+
+ $this->qrcode = $this->reflection->newInstanceArgs([new QROptions(['dataMode' => 'AlphaNum'])]);
+
+ $this->qrcode->initDataInterface(random_bytes(32));
+ }
+
+}
diff --git a/vendor/chillerlan/php-qrcode/tests/QROptionsTest.php b/vendor/chillerlan/php-qrcode/tests/QROptionsTest.php
new file mode 100644
index 000000000..41bf69ced
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/tests/QROptionsTest.php
@@ -0,0 +1,80 @@
+<?php
+/**
+ * Class QROptionsTest
+ *
+ * @filesource QROptionsTest.php
+ * @created 08.11.2018
+ * @package chillerlan\QRCodeTest
+ * @author smiley <[email protected]>
+ * @copyright 2018 smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCodeTest;
+
+use chillerlan\QRCode\{QRCode, QRCodeException, QROptions};
+use PHPUnit\Framework\TestCase;
+
+class QROptionsTest extends TestCase{
+
+ /**
+ * @var \chillerlan\QRCode\QROptions
+ */
+ protected $options;
+
+ public function testVersionClamp(){
+ $this->assertSame(40, (new QROptions(['version' => 42]))->version);
+ $this->assertSame(1, (new QROptions(['version' => -42]))->version);
+ $this->assertSame(21, (new QROptions(['version' => 21]))->version);
+ $this->assertSame(QRCode::VERSION_AUTO, (new QROptions)->version); // QRCode::VERSION_AUTO = -1, default
+ }
+
+ public function testVersionMinMaxClamp(){
+ // normal clamp
+ $o = new QROptions(['versionMin' => 5, 'versionMax' => 10]);
+ $this->assertSame(5, $o->versionMin);
+ $this->assertSame(10, $o->versionMax);
+
+ // exceeding values
+ $o = new QROptions(['versionMin' => -42, 'versionMax' => 42]);
+ $this->assertSame(1, $o->versionMin);
+ $this->assertSame(40, $o->versionMax);
+
+ // min > max
+ $o = new QROptions(['versionMin' => 10, 'versionMax' => 5]);
+ $this->assertSame(5, $o->versionMin);
+ $this->assertSame(10, $o->versionMax);
+
+ $o = new QROptions(['versionMin' => 42, 'versionMax' => -42]);
+ $this->assertSame(1, $o->versionMin);
+ $this->assertSame(40, $o->versionMax);
+ }
+
+ public function testMaskPatternClamp(){
+ $this->assertSame(7, (new QROptions(['maskPattern' => 42]))->maskPattern);
+ $this->assertSame(0, (new QROptions(['maskPattern' => -42]))->maskPattern);
+ $this->assertSame(QRCode::MASK_PATTERN_AUTO, (new QROptions)->maskPattern); // QRCode::MASK_PATTERN_AUTO = -1, default
+ }
+
+ public function testInvalidEccLevelException(){
+ $this->expectException(QRCodeException::class);
+ $this->expectExceptionMessage('Invalid error correct level: 42');
+
+ new QROptions(['eccLevel' => 42]);
+ }
+
+ public function testClampRGBValues(){
+ $o = new QROptions(['imageTransparencyBG' => [-1, 0, 999]]);
+
+ $this->assertSame(0, $o->imageTransparencyBG[0]);
+ $this->assertSame(0, $o->imageTransparencyBG[1]);
+ $this->assertSame(255, $o->imageTransparencyBG[2]);
+ }
+
+ public function testInvalidRGBValueException(){
+ $this->expectException(QRCodeException::class);
+ $this->expectExceptionMessage('Invalid RGB value.');
+
+ new QROptions(['imageTransparencyBG' => ['r', 'g', 'b']]);
+ }
+}
diff --git a/vendor/chillerlan/php-qrcode/tests/QRTestAbstract.php b/vendor/chillerlan/php-qrcode/tests/QRTestAbstract.php
new file mode 100644
index 000000000..7b9eb8049
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/tests/QRTestAbstract.php
@@ -0,0 +1,72 @@
+<?php
+/**
+ * Class QRTestAbstract
+ *
+ * @filesource QRTestAbstract.php
+ * @created 17.11.2017
+ * @package chillerlan\QRCodeTest
+ * @author Smiley <[email protected]>
+ * @copyright 2017 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\QRCodeTest;
+
+use PHPUnit\Framework\TestCase;
+use ReflectionClass, ReflectionMethod, ReflectionProperty;
+
+abstract class QRTestAbstract extends TestCase{
+
+ /**
+ * @var \ReflectionClass
+ */
+ protected $reflection;
+
+ /**
+ * @var string
+ */
+ protected $FQCN;
+
+ protected function setUp():void{
+ $this->reflection = new ReflectionClass($this->FQCN);
+ }
+
+ /**
+ * @param string $method
+ *
+ * @return \ReflectionMethod
+ */
+ protected function getMethod(string $method):ReflectionMethod {
+ $method = $this->reflection->getMethod($method);
+ $method->setAccessible(true);
+
+ return $method;
+ }
+
+ /**
+ * @param string $property
+ *
+ * @return \ReflectionProperty
+ */
+ protected function getProperty(string $property):ReflectionProperty{
+ $property = $this->reflection->getProperty($property);
+ $property->setAccessible(true);
+
+ return $property;
+ }
+
+ /**
+ * @param $object
+ * @param string $property
+ * @param $value
+ *
+ * @return void
+ */
+ protected function setProperty($object, string $property, $value){
+ $property = $this->getProperty($property);
+ $property->setAccessible(true);
+ $property->setValue($object, $value);
+ }
+
+
+}
diff --git a/vendor/chillerlan/php-settings-container/.gitignore b/vendor/chillerlan/php-settings-container/.gitignore
new file mode 100644
index 000000000..e313cba45
--- /dev/null
+++ b/vendor/chillerlan/php-settings-container/.gitignore
@@ -0,0 +1,4 @@
+.idea
+.vendor
+composer.lock
+*.phpunit.result.cache
diff --git a/vendor/chillerlan/php-settings-container/.scrutinizer.yml b/vendor/chillerlan/php-settings-container/.scrutinizer.yml
new file mode 100644
index 000000000..7fdd2a4dc
--- /dev/null
+++ b/vendor/chillerlan/php-settings-container/.scrutinizer.yml
@@ -0,0 +1,5 @@
+filter:
+ excluded_paths:
+ - examples/*
+ - tests/*
+ - vendor/*
diff --git a/vendor/chillerlan/php-settings-container/.travis.yml b/vendor/chillerlan/php-settings-container/.travis.yml
new file mode 100644
index 000000000..208cdeb6a
--- /dev/null
+++ b/vendor/chillerlan/php-settings-container/.travis.yml
@@ -0,0 +1,18 @@
+language: php
+
+matrix:
+ include:
+ - php: 7.2
+ - php: 7.3
+ - php: 7.4snapshot
+ - php: nightly
+ allow_failures:
+ - php: 7.4snapshot
+ - php: nightly
+
+
+before_script: travis_retry composer install --no-interaction --prefer-source
+
+script: vendor/bin/phpunit --configuration phpunit.xml --coverage-clover clover.xml
+
+after_script: bash <(curl -s https://codecov.io/bash)
diff --git a/vendor/chillerlan/php-settings-container/LICENSE b/vendor/chillerlan/php-settings-container/LICENSE
new file mode 100644
index 000000000..25d371fc3
--- /dev/null
+++ b/vendor/chillerlan/php-settings-container/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2018 Smiley <[email protected]>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/vendor/chillerlan/php-settings-container/README.md b/vendor/chillerlan/php-settings-container/README.md
new file mode 100644
index 000000000..7d0ccf09d
--- /dev/null
+++ b/vendor/chillerlan/php-settings-container/README.md
@@ -0,0 +1,153 @@
+# chillerlan/php-settings-container
+
+A container class for immutable settings objects. Not a DI container. PHP 7.2+
+- [`SettingsContainerInterface`](https://github.com/chillerlan/php-settings-container/blob/master/src/SettingsContainerInterface.php) provides immutable properties with magic getter & setter and some fancy
+
+[![version][packagist-badge]][packagist]
+[![license][license-badge]][license]
+[![Travis][travis-badge]][travis]
+[![Coverage][coverage-badge]][coverage]
+[![Scrunitizer][scrutinizer-badge]][scrutinizer]
+[![Packagist downloads][downloads-badge]][downloads]
+[![PayPal donate][donate-badge]][donate]
+
+[packagist-badge]: https://img.shields.io/packagist/v/chillerlan/php-settings-container.svg?style=flat-square
+[packagist]: https://packagist.org/packages/chillerlan/php-settings-container
+[license-badge]: https://img.shields.io/github/license/chillerlan/php-settings-container.svg?style=flat-square
+[license]: https://github.com/chillerlan/php-settings-container/blob/master/LICENSE
+[travis-badge]: https://img.shields.io/travis/chillerlan/php-settings-container.svg?style=flat-square
+[travis]: https://travis-ci.org/chillerlan/php-settings-container
+[coverage-badge]: https://img.shields.io/codecov/c/github/chillerlan/php-settings-container.svg?style=flat-square
+[coverage]: https://codecov.io/github/chillerlan/php-settings-container
+[scrutinizer-badge]: https://img.shields.io/scrutinizer/g/chillerlan/php-settings-container.svg?style=flat-square
+[scrutinizer]: https://scrutinizer-ci.com/g/chillerlan/php-settings-container
+[downloads-badge]: https://img.shields.io/packagist/dt/chillerlan/php-settings-container.svg?style=flat-square
+[downloads]: https://packagist.org/packages/chillerlan/php-settings-container/stats
+[donate-badge]: https://img.shields.io/badge/donate-paypal-ff33aa.svg?style=flat-square
+[donate]: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=WLYUNAT9ZTJZ4
+
+## Documentation
+
+### Installation
+**requires [composer](https://getcomposer.org)**
+
+*composer.json* (note: replace `dev-master` with a version boundary)
+```json
+{
+ "require": {
+ "php": "^7.2",
+ "chillerlan/php-settings-container": "^1.0"
+ }
+}
+```
+
+### Manual installation
+Download the desired version of the package from [master](https://github.com/chillerlan/php-settings-container/archive/master.zip) or
+[release](https://github.com/chillerlan/php-settings-container/releases) and extract the contents to your project folder. After that:
+- run `composer install` to install the required dependencies and generate `/vendor/autoload.php`.
+- if you use a custom autoloader, point the namespace `chillerlan\Settings` to the folder `src` of the package
+
+Profit!
+
+## Usage
+
+The `SettingsContainerInterface` (wrapped in`SettingsContainerAbstract` ) provides plug-in functionality for immutable object variables and adds some fancy, like loading/saving JSON, arrays etc.
+It takes iterable as the only constructor argument and calls a method with the trait's name on invocation (`MyTrait::MyTrait()`) for each used trait.
+
+### Simple usage
+```php
+class MyContainer extends SettingsContainerAbstract{
+ protected $foo;
+ protected $bar;
+}
+```
+
+```php
+// use it just like a \stdClass
+$container = new MyContainer;
+$container->foo = 'what';
+$container->bar = 'foo';
+
+// which is equivalent to
+$container = new MyContainer(['bar' => 'foo', 'foo' => 'what']);
+// ...or try
+$container->fromJSON('{"foo": "what", "bar": "foo"}');
+
+
+// fetch all properties as array
+$container->toArray(); // -> ['foo' => 'what', 'bar' => 'foo']
+// or JSON
+$container->toJSON(); // -> {"foo": "what", "bar": "foo"}
+
+//non-existing properties will be ignored:
+$container->nope = 'what';
+
+var_dump($container->nope); // -> null
+```
+
+### Advanced usage
+```php
+trait SomeOptions{
+ protected $foo;
+ protected $what;
+
+ // this method will be called in SettingsContainerAbstract::construct()
+ // after the properties have been set
+ protected function SomeOptions(){
+ // just some constructor stuff...
+ $this->foo = strtoupper($this->foo);
+ }
+
+ // this method will be called from __set() when property $what is set
+ protected function set_what(string $value){
+ $this->what = md5($value);
+ }
+}
+
+trait MoreOptions{
+ protected $bar = 'whatever'; // provide default values
+}
+```
+
+```php
+$commonOptions = [
+ // SomeOptions
+ 'foo' => 'whatever',
+ // MoreOptions
+ 'bar' => 'nothing',
+];
+
+// now plug the several library options together to a single object
+$container = new class ($commonOptions) extends SettingsContainerAbstract{
+ use SomeOptions, MoreOptions;
+};
+
+var_dump($container->foo); // -> WHATEVER (constructor ran strtoupper on the value)
+var_dump($container->bar); // -> nothing
+
+$container->what = 'some value';
+var_dump($container->what); // -> md5 hash of "some value"
+```
+
+### API
+
+#### [`SettingsContainerAbstract`](https://github.com/chillerlan/php-settings-container/blob/master/src/SettingsContainerAbstract.php)
+
+method | return | info
+-------- | ---- | -----------
+`__construct(iterable $properties = null)` | - | calls `construct()` internally after the properties have been set
+(protected) `construct()` | void | calls a method with trait name as replacement constructor for each used trait
+`__get(string $property)` | mixed | calls `$this->{'get_'.$property}()` if such a method exists
+`__set(string $property, $value)` | void | calls `$this->{'set_'.$property}($value)` if such a method exists
+`__isset(string $property)` | bool |
+`__unset(string $property)` | void |
+`__toString()` | string | a JSON string
+`toArray()` | array |
+`fromIterable(iterable $properties)` | `SettingsContainerInterface` |
+`toJSON(int $jsonOptions = null)` | string | accepts [JSON options constants](http://php.net/manual/json.constants.php)
+`fromJSON(string $json)` | `SettingsContainerInterface` |
+`jsonSerialize()` | mixed | implements the [`JsonSerializable`](https://www.php.net/manual/en/jsonserializable.jsonserialize.php) interface
+
+## Disclaimer
+This might be either an utterly genius or completely stupid idea - you decide. However, i like it and it works.
+Also, this is not a dependency injection container. Stop using DI containers FFS.
diff --git a/vendor/chillerlan/php-settings-container/composer.json b/vendor/chillerlan/php-settings-container/composer.json
new file mode 100644
index 000000000..4dc758665
--- /dev/null
+++ b/vendor/chillerlan/php-settings-container/composer.json
@@ -0,0 +1,40 @@
+{
+ "name": "chillerlan/php-settings-container",
+ "description": "A container class for immutable settings objects. Not a DI container. PHP 7.2+",
+ "homepage": "https://github.com/chillerlan/php-settings-container",
+ "license": "MIT",
+ "type": "library",
+ "minimum-stability": "stable",
+ "keywords": [
+ "php7", "helper", "container", "settings"
+ ],
+ "authors": [
+ {
+ "name": "Smiley",
+ "email": "[email protected]",
+ "homepage": "https://github.com/codemasher"
+ }
+ ],
+ "support": {
+ "issues": "https://github.com/chillerlan/php-settings-container/issues",
+ "source": "https://github.com/chillerlan/php-settings-container"
+ },
+ "require": {
+ "php": "^7.2",
+ "ext-json": "*"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.3"
+ },
+ "autoload": {
+ "psr-4": {
+ "chillerlan\\Settings\\": "src/"
+ }
+ },
+ "autoload-dev": {
+ "psr-4": {
+ "chillerlan\\SettingsTest\\": "tests/",
+ "chillerlan\\SettingsExamples\\": "examples/"
+ }
+ }
+}
diff --git a/vendor/chillerlan/php-settings-container/examples/advanced.php b/vendor/chillerlan/php-settings-container/examples/advanced.php
new file mode 100644
index 000000000..1030b0a29
--- /dev/null
+++ b/vendor/chillerlan/php-settings-container/examples/advanced.php
@@ -0,0 +1,46 @@
+<?php
+/**
+ * @filesource advanced.php
+ * @created 28.08.2018
+ * @author smiley <[email protected]>
+ * @copyright 2018 smiley
+ * @license MIT
+ */
+
+namespace chillerlan\SettingsExamples;
+
+use chillerlan\Settings\SettingsContainerAbstract;
+
+require_once __DIR__.'/../vendor/autoload.php';
+
+// from library #1
+trait SomeOptions{
+ protected $foo;
+
+ // this method will be called in SettingsContainerAbstract::__construct() after the properties have been set
+ protected function SomeOptions(){
+ // just some constructor stuff...
+ $this->foo = strtoupper($this->foo);
+ }
+}
+
+// from library #2
+trait MoreOptions{
+ protected $bar = 'whatever'; // provide default values
+}
+
+$commonOptions = [
+ // SomeOptions
+ 'foo' => 'whatever',
+ // MoreOptions
+ 'bar' => 'nothing',
+];
+
+// now plug the several library options together to a single object
+/** @var \chillerlan\Settings\SettingsContainerInterface $container */
+$container = new class ($commonOptions) extends SettingsContainerAbstract{
+ use SomeOptions, MoreOptions; // ...
+};
+
+var_dump($container->foo); // -> WHATEVER (constructor ran strtoupper on the value)
+var_dump($container->bar); // -> nothing
diff --git a/vendor/chillerlan/php-settings-container/examples/simple.php b/vendor/chillerlan/php-settings-container/examples/simple.php
new file mode 100644
index 000000000..d8d81095b
--- /dev/null
+++ b/vendor/chillerlan/php-settings-container/examples/simple.php
@@ -0,0 +1,30 @@
+<?php
+/**
+ * @filesource simple.php
+ * @created 28.08.2018
+ * @author smiley <[email protected]>
+ * @copyright 2018 smiley
+ * @license MIT
+ */
+
+namespace chillerlan\SettingsExamples;
+
+use chillerlan\Settings\SettingsContainerAbstract;
+
+require_once __DIR__.'/../vendor/autoload.php';
+
+class MyContainer extends SettingsContainerAbstract{
+ protected $foo;
+ protected $bar;
+}
+
+/** @var \chillerlan\Settings\SettingsContainerInterface $container */
+$container = new MyContainer(['foo' => 'what']);
+$container->bar = 'foo';
+
+var_dump($container->toJSON()); // -> {"foo":"what","bar":"foo"}
+
+// non-existing properties will be ignored:
+$container->nope = 'what';
+
+var_dump($container->nope); // -> NULL
diff --git a/vendor/chillerlan/php-settings-container/phpmd.xml b/vendor/chillerlan/php-settings-container/phpmd.xml
new file mode 100644
index 000000000..3ba7e11b7
--- /dev/null
+++ b/vendor/chillerlan/php-settings-container/phpmd.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<ruleset name="codemasher/php-settings-container PMD ruleset"
+ xmlns="http://pmd.sf.net/ruleset/1.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
+ xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
+ <description>codemasher/php-settings-container PMD ruleset</description>
+ <exclude-pattern>*/examples/*</exclude-pattern>
+ <exclude-pattern>*/tests/*</exclude-pattern>
+ <exclude-pattern>*/vendor/*</exclude-pattern>
+ <rule ref="rulesets/cleancode.xml">
+ <exclude name="BooleanArgumentFlag"/>
+ </rule>
+ <rule ref="rulesets/codesize.xml/CyclomaticComplexity">
+ <priority>1</priority>
+ <properties>
+ <property name="maximum" value="150" />
+ </properties>
+ </rule>
+ <rule ref="rulesets/controversial.xml">
+ <exclude name="CamelCaseMethodName"/>
+ <exclude name="CamelCasePropertyName"/>
+ <exclude name="CamelCaseParameterName"/>
+ <exclude name="CamelCaseVariableName"/>
+ </rule>
+ <rule ref="rulesets/design.xml">
+ </rule>
+ <rule ref="rulesets/naming.xml">
+ <exclude name="LongVariable"/>
+ <exclude name="ShortVariable"/>
+ </rule>
+ <rule ref="rulesets/unusedcode.xml">
+ <exclude name="UnusedFormalParameter"/>
+ </rule>
+</ruleset>
diff --git a/vendor/chillerlan/php-settings-container/phpunit.xml b/vendor/chillerlan/php-settings-container/phpunit.xml
new file mode 100644
index 000000000..bb05d1289
--- /dev/null
+++ b/vendor/chillerlan/php-settings-container/phpunit.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<phpunit backupGlobals="false"
+ backupStaticAttributes="false"
+ bootstrap="vendor/autoload.php"
+ colors="true"
+ convertErrorsToExceptions="true"
+ convertNoticesToExceptions="true"
+ convertWarningsToExceptions="true"
+ processIsolation="false"
+ stopOnFailure="false"
+>
+ <filter>
+ <whitelist processUncoveredFilesFromWhitelist="true">
+ <directory suffix=".php">./src</directory>
+ </whitelist>
+ </filter>
+ <testsuites>
+ <testsuite name="php-settings-container test suite">
+ <directory suffix=".php">./tests/</directory>
+ </testsuite>
+ </testsuites>
+</phpunit>
diff --git a/vendor/chillerlan/php-settings-container/src/SettingsContainerAbstract.php b/vendor/chillerlan/php-settings-container/src/SettingsContainerAbstract.php
new file mode 100644
index 000000000..1ccc1a0e2
--- /dev/null
+++ b/vendor/chillerlan/php-settings-container/src/SettingsContainerAbstract.php
@@ -0,0 +1,172 @@
+<?php
+/**
+ * Class SettingsContainerAbstract
+ *
+ * @filesource SettingsContainerAbstract.php
+ * @created 28.08.2018
+ * @package chillerlan\Settings
+ * @author Smiley <[email protected]>
+ * @copyright 2018 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\Settings;
+
+use Exception, ReflectionClass, ReflectionProperty;
+
+use function call_user_func, call_user_func_array, get_object_vars, json_decode, json_encode, method_exists, property_exists;
+
+abstract class SettingsContainerAbstract implements SettingsContainerInterface{
+
+ /**
+ * SettingsContainerAbstract constructor.
+ *
+ * @param iterable|null $properties
+ */
+ public function __construct(iterable $properties = null){
+
+ if(!empty($properties)){
+ $this->fromIterable($properties);
+ }
+
+ $this->construct();
+ }
+
+ /**
+ * calls a method with trait name as replacement constructor for each used trait
+ * (remember pre-php5 classname constructors? yeah, basically this.)
+ *
+ * @return void
+ */
+ protected function construct():void{
+ $traits = (new ReflectionClass($this))->getTraits();
+
+ foreach($traits as $trait){
+ $method = $trait->getShortName();
+
+ if(method_exists($this, $method)){
+ call_user_func([$this, $method]);
+ }
+ }
+
+ }
+
+ /**
+ * @inheritdoc
+ */
+ public function __get(string $property){
+
+ if(property_exists($this, $property) && !$this->isPrivate($property)){
+
+ if(method_exists($this, 'get_'.$property)){
+ return call_user_func([$this, 'get_'.$property]);
+ }
+
+ return $this->{$property};
+ }
+
+ return null;
+ }
+
+ /**
+ * @inheritdoc
+ */
+ public function __set(string $property, $value):void{
+
+ if(!property_exists($this, $property) || $this->isPrivate($property)){
+ return;
+ }
+
+ if(method_exists($this, 'set_'.$property)){
+ call_user_func_array([$this, 'set_'.$property], [$value]);
+
+ return;
+ }
+
+ $this->{$property} = $value;
+ }
+
+ /**
+ * @inheritdoc
+ */
+ public function __isset(string $property):bool{
+ return isset($this->{$property}) && !$this->isPrivate($property);
+ }
+
+ /**
+ * @internal Checks if a property is private
+ *
+ * @param string $property
+ *
+ * @return bool
+ */
+ protected function isPrivate(string $property):bool{
+ return (new ReflectionProperty($this, $property))->isPrivate();
+ }
+
+ /**
+ * @inheritdoc
+ */
+ public function __unset(string $property):void{
+
+ if($this->__isset($property)){
+ unset($this->{$property});
+ }
+
+ }
+
+ /**
+ * @inheritdoc
+ */
+ public function __toString():string{
+ return $this->toJSON();
+ }
+
+ /**
+ * @inheritdoc
+ */
+ public function toArray():array{
+ return get_object_vars($this);
+ }
+
+ /**
+ * @inheritdoc
+ */
+ public function fromIterable(iterable $properties):SettingsContainerInterface{
+
+ foreach($properties as $key => $value){
+ $this->__set($key, $value);
+ }
+
+ return $this;
+ }
+
+ /**
+ * @inheritdoc
+ */
+ public function toJSON(int $jsonOptions = null):string{
+ return json_encode($this, $jsonOptions ?? 0);
+ }
+
+ /**
+ * @inheritdoc
+ */
+ public function fromJSON(string $json):SettingsContainerInterface{
+
+ $data = json_decode($json, true); // as of PHP 7.3: JSON_THROW_ON_ERROR
+
+ if($data === false || $data === null){
+ throw new Exception('error while decoding JSON');
+ }
+
+ return $this->fromIterable($data);
+ }
+
+ /**
+ * @inheritdoc
+ */
+ public function jsonSerialize(){
+ return $this->toArray();
+ }
+
+}
diff --git a/vendor/chillerlan/php-settings-container/src/SettingsContainerInterface.php b/vendor/chillerlan/php-settings-container/src/SettingsContainerInterface.php
new file mode 100644
index 000000000..59cef6232
--- /dev/null
+++ b/vendor/chillerlan/php-settings-container/src/SettingsContainerInterface.php
@@ -0,0 +1,104 @@
+<?php
+/**
+ * Interface SettingsContainerInterface
+ *
+ * @filesource SettingsContainerInterface.php
+ * @created 28.08.2018
+ * @package chillerlan\Settings
+ * @author Smiley <[email protected]>
+ * @copyright 2018 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\Settings;
+
+use JsonSerializable;
+
+/**
+ * a generic container with magic getter and setter
+ */
+interface SettingsContainerInterface extends JsonSerializable{
+
+ /**
+ * Retrieve the value of $property
+ *
+ * @param string $property
+ *
+ * @return mixed
+ */
+ public function __get(string $property);
+
+ /**
+ * Set $property to $value while avoiding private and non-existing properties
+ *
+ * @param string $property
+ * @param mixed $value
+ *
+ * @return void
+ */
+ public function __set(string $property, $value):void;
+
+ /**
+ * Checks if $property is set (aka. not null), excluding private properties
+ *
+ * @param string $property
+ *
+ * @return bool
+ */
+ public function __isset(string $property):bool;
+
+ /**
+ * Unsets $property while avoiding private and non-existing properties
+ *
+ * @param string $property
+ *
+ * @return void
+ */
+ public function __unset(string $property):void;
+
+ /**
+ * @see SettingsContainerInterface::toJSON()
+ *
+ * @return string
+ */
+ public function __toString():string;
+
+ /**
+ * Returns an array representation of the settings object
+ *
+ * @return array
+ */
+ public function toArray():array;
+
+ /**
+ * Sets properties from a given iterable
+ *
+ * @param iterable $properties
+ *
+ * @return \chillerlan\Settings\SettingsContainerInterface
+ */
+ public function fromIterable(iterable $properties):SettingsContainerInterface;
+
+ /**
+ * Returns a JSON representation of the settings object
+ * @see \json_encode()
+ *
+ * @param int|null $jsonOptions
+ *
+ * @return string
+ */
+ public function toJSON(int $jsonOptions = null):string;
+
+ /**
+ * Sets properties from a given JSON string
+ *
+ * @param string $json
+ *
+ * @return \chillerlan\Settings\SettingsContainerInterface
+ *
+ * @throws \Exception
+ * @throws \JsonException
+ */
+ public function fromJSON(string $json):SettingsContainerInterface;
+
+}
diff --git a/vendor/chillerlan/php-settings-container/tests/ContainerTest.php b/vendor/chillerlan/php-settings-container/tests/ContainerTest.php
new file mode 100644
index 000000000..ddae538f3
--- /dev/null
+++ b/vendor/chillerlan/php-settings-container/tests/ContainerTest.php
@@ -0,0 +1,105 @@
+<?php
+/**
+ * Class ContainerTraitTest
+ *
+ * @filesource ContainerTraitTest.php
+ * @created 28.08.2018
+ * @package chillerlan\SettingsTest
+ * @author Smiley <[email protected]>
+ * @copyright 2018 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\SettingsTest;
+
+use PHPUnit\Framework\TestCase;
+use Exception, TypeError;
+
+class ContainerTraitTest extends TestCase{
+
+ public function testConstruct(){
+ $container = new TestContainer([
+ 'test1' => 'test1',
+ 'test2' => 'test2',
+ 'test3' => 'test3',
+ 'test4' => 'test4',
+ ]);
+
+ $this->assertSame('test1', $container->test1);
+ $this->assertSame('test2', $container->test2);
+ $this->assertNull($container->test3);
+ $this->assertSame('test4', $container->test4);
+
+ $this->assertSame('success', $container->testConstruct);
+ }
+
+ public function testGet(){
+ $container = new TestContainer;
+
+ $this->assertSame('foo', $container->test1);
+ $this->assertNull($container->test2);
+ $this->assertNull($container->test3);
+ $this->assertNull($container->test4);
+ $this->assertNull($container->foo);
+
+ // isset test
+ $this->assertTrue(isset($container->test1));
+ $this->assertFalse(isset($container->test2));
+ $this->assertFalse(isset($container->test3));
+ $this->assertFalse(isset($container->test4));
+ $this->assertFalse(isset($container->foo));
+
+ // custom getter
+ $container->test6 = 'foo';
+ $this->assertSame(sha1('foo'), $container->test6);
+ // nullable/isset test
+ $container->test6 = null;
+ $this->assertFalse(isset($container->test6));
+ $this->assertSame('null', $container->test6);
+ }
+
+ public function testSet(){
+ $container = new TestContainer;
+ $container->test1 = 'bar';
+ $container->test2 = 'what';
+ $container->test3 = 'nope';
+
+ $this->assertSame('bar', $container->test1);
+ $this->assertSame('what', $container->test2);
+ $this->assertNull($container->test3);
+
+ // unset
+ unset($container->test1);
+ $this->assertFalse(isset($container->test1));
+
+ // custom setter
+ $container->test5 = 'bar';
+ $this->assertSame('bar_test5', $container->test5);
+ }
+
+ public function testToArray(){
+ $container = new TestContainer(['test1' => 'no', 'test2' => true, 'testConstruct' => 'success']);
+
+ $this->assertSame(['test1' => 'no', 'test2' => true, 'testConstruct' => 'success', 'test4' => null, 'test5' => null, 'test6' => null], $container->toArray());
+ }
+
+ public function testToJSON(){
+ $container = (new TestContainer)->fromJSON('{"test1":"no","test2":true,"testConstruct":"success"}');
+
+ $expected = '{"test1":"no","test2":true,"testConstruct":"success","test4":null,"test5":null,"test6":null}';
+
+ $this->assertSame($expected, $container->toJSON());
+ $this->assertSame($expected, (string)$container);
+ }
+
+ public function testFromJsonException(){
+ $this->expectException(Exception::class);
+ (new TestContainer)->fromJSON('-');
+
+ }
+ public function testFromJsonTypeError(){
+ $this->expectException(TypeError::class);
+ (new TestContainer)->fromJSON('2');
+ }
+
+}
diff --git a/vendor/chillerlan/php-settings-container/tests/TestContainer.php b/vendor/chillerlan/php-settings-container/tests/TestContainer.php
new file mode 100644
index 000000000..a35f75277
--- /dev/null
+++ b/vendor/chillerlan/php-settings-container/tests/TestContainer.php
@@ -0,0 +1,29 @@
+<?php
+/**
+ * Class TestContainer
+ *
+ * @filesource TestContainer.php
+ * @created 28.08.2018
+ * @package chillerlan\SettingsTest
+ * @author Smiley <[email protected]>
+ * @copyright 2018 Smiley
+ * @license MIT
+ */
+
+namespace chillerlan\SettingsTest;
+
+use chillerlan\Settings\SettingsContainerAbstract;
+
+/**
+ * @property $test1
+ * @property $test2
+ * @property $test3
+ * @property $test4
+ * @property $test5
+ * @property $test6
+ */
+class TestContainer extends SettingsContainerAbstract{
+ use TestOptionsTrait;
+
+ private $test3 = 'what';
+}
diff --git a/vendor/chillerlan/php-settings-container/tests/TestOptionsTrait.php b/vendor/chillerlan/php-settings-container/tests/TestOptionsTrait.php
new file mode 100644
index 000000000..261f533ac
--- /dev/null
+++ b/vendor/chillerlan/php-settings-container/tests/TestOptionsTrait.php
@@ -0,0 +1,42 @@
+<?php
+/**
+ * Trait TestOptionsTrait
+ *
+ * @filesource TestOptionsTrait.php
+ * @created 28.08.2018
+ * @package chillerlan\SettingsTest
+ * @author smiley <[email protected]>
+ * @copyright 2018 smiley
+ * @license MIT
+ */
+
+namespace chillerlan\SettingsTest;
+
+trait TestOptionsTrait{
+
+ protected $test1 = 'foo';
+
+ protected $test2;
+
+ protected $testConstruct;
+
+ protected $test4;
+
+ protected $test5;
+
+ protected $test6;
+
+ protected function TestOptionsTrait(){
+ $this->testConstruct = 'success';
+ }
+
+ protected function set_test5($value){
+ $this->test5 = $value.'_test5';
+ }
+
+ protected function get_test6(){
+ return $this->test6 === null
+ ? 'null'
+ : sha1($this->test6);
+ }
+}
diff --git a/vendor/composer/ClassLoader.php b/vendor/composer/ClassLoader.php
new file mode 100644
index 000000000..247294d66
--- /dev/null
+++ b/vendor/composer/ClassLoader.php
@@ -0,0 +1,479 @@
+<?php
+
+/*
+ * This file is part of Composer.
+ *
+ * (c) Nils Adermann <[email protected]>
+ * Jordi Boggiano <[email protected]>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Composer\Autoload;
+
+/**
+ * ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
+ *
+ * $loader = new \Composer\Autoload\ClassLoader();
+ *
+ * // register classes with namespaces
+ * $loader->add('Symfony\Component', __DIR__.'/component');
+ * $loader->add('Symfony', __DIR__.'/framework');
+ *
+ * // activate the autoloader
+ * $loader->register();
+ *
+ * // to enable searching the include path (eg. for PEAR packages)
+ * $loader->setUseIncludePath(true);
+ *
+ * In this example, if you try to use a class in the Symfony\Component
+ * namespace or one of its children (Symfony\Component\Console for instance),
+ * the autoloader will first look for the class under the component/
+ * directory, and it will then fallback to the framework/ directory if not
+ * found before giving up.
+ *
+ * This class is loosely based on the Symfony UniversalClassLoader.
+ *
+ * @author Fabien Potencier <[email protected]>
+ * @author Jordi Boggiano <[email protected]>
+ * @see https://www.php-fig.org/psr/psr-0/
+ * @see https://www.php-fig.org/psr/psr-4/
+ */
+class ClassLoader
+{
+ private $vendorDir;
+
+ // PSR-4
+ private $prefixLengthsPsr4 = array();
+ private $prefixDirsPsr4 = array();
+ private $fallbackDirsPsr4 = array();
+
+ // PSR-0
+ private $prefixesPsr0 = array();
+ private $fallbackDirsPsr0 = array();
+
+ private $useIncludePath = false;
+ private $classMap = array();
+ private $classMapAuthoritative = false;
+ private $missingClasses = array();
+ private $apcuPrefix;
+
+ private static $registeredLoaders = array();
+
+ public function __construct($vendorDir = null)
+ {
+ $this->vendorDir = $vendorDir;
+ }
+
+ public function getPrefixes()
+ {
+ if (!empty($this->prefixesPsr0)) {
+ return call_user_func_array('array_merge', array_values($this->prefixesPsr0));
+ }
+
+ return array();
+ }
+
+ public function getPrefixesPsr4()
+ {
+ return $this->prefixDirsPsr4;
+ }
+
+ public function getFallbackDirs()
+ {
+ return $this->fallbackDirsPsr0;
+ }
+
+ public function getFallbackDirsPsr4()
+ {
+ return $this->fallbackDirsPsr4;
+ }
+
+ public function getClassMap()
+ {
+ return $this->classMap;
+ }
+
+ /**
+ * @param array $classMap Class to filename map
+ */
+ public function addClassMap(array $classMap)
+ {
+ if ($this->classMap) {
+ $this->classMap = array_merge($this->classMap, $classMap);
+ } else {
+ $this->classMap = $classMap;
+ }
+ }
+
+ /**
+ * Registers a set of PSR-0 directories for a given prefix, either
+ * appending or prepending to the ones previously set for this prefix.
+ *
+ * @param string $prefix The prefix
+ * @param array|string $paths The PSR-0 root directories
+ * @param bool $prepend Whether to prepend the directories
+ */
+ public function add($prefix, $paths, $prepend = false)
+ {
+ if (!$prefix) {
+ if ($prepend) {
+ $this->fallbackDirsPsr0 = array_merge(
+ (array) $paths,
+ $this->fallbackDirsPsr0
+ );
+ } else {
+ $this->fallbackDirsPsr0 = array_merge(
+ $this->fallbackDirsPsr0,
+ (array) $paths
+ );
+ }
+
+ return;
+ }
+
+ $first = $prefix[0];
+ if (!isset($this->prefixesPsr0[$first][$prefix])) {
+ $this->prefixesPsr0[$first][$prefix] = (array) $paths;
+
+ return;
+ }
+ if ($prepend) {
+ $this->prefixesPsr0[$first][$prefix] = array_merge(
+ (array) $paths,
+ $this->prefixesPsr0[$first][$prefix]
+ );
+ } else {
+ $this->prefixesPsr0[$first][$prefix] = array_merge(
+ $this->prefixesPsr0[$first][$prefix],
+ (array) $paths
+ );
+ }
+ }
+
+ /**
+ * Registers a set of PSR-4 directories for a given namespace, either
+ * appending or prepending to the ones previously set for this namespace.
+ *
+ * @param string $prefix The prefix/namespace, with trailing '\\'
+ * @param array|string $paths The PSR-4 base directories
+ * @param bool $prepend Whether to prepend the directories
+ *
+ * @throws \InvalidArgumentException
+ */
+ public function addPsr4($prefix, $paths, $prepend = false)
+ {
+ if (!$prefix) {
+ // Register directories for the root namespace.
+ if ($prepend) {
+ $this->fallbackDirsPsr4 = array_merge(
+ (array) $paths,
+ $this->fallbackDirsPsr4
+ );
+ } else {
+ $this->fallbackDirsPsr4 = array_merge(
+ $this->fallbackDirsPsr4,
+ (array) $paths
+ );
+ }
+ } elseif (!isset($this->prefixDirsPsr4[$prefix])) {
+ // Register directories for a new namespace.
+ $length = strlen($prefix);
+ if ('\\' !== $prefix[$length - 1]) {
+ throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
+ }
+ $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
+ $this->prefixDirsPsr4[$prefix] = (array) $paths;
+ } elseif ($prepend) {
+ // Prepend directories for an already registered namespace.
+ $this->prefixDirsPsr4[$prefix] = array_merge(
+ (array) $paths,
+ $this->prefixDirsPsr4[$prefix]
+ );
+ } else {
+ // Append directories for an already registered namespace.
+ $this->prefixDirsPsr4[$prefix] = array_merge(
+ $this->prefixDirsPsr4[$prefix],
+ (array) $paths
+ );
+ }
+ }
+
+ /**
+ * Registers a set of PSR-0 directories for a given prefix,
+ * replacing any others previously set for this prefix.
+ *
+ * @param string $prefix The prefix
+ * @param array|string $paths The PSR-0 base directories
+ */
+ public function set($prefix, $paths)
+ {
+ if (!$prefix) {
+ $this->fallbackDirsPsr0 = (array) $paths;
+ } else {
+ $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
+ }
+ }
+
+ /**
+ * Registers a set of PSR-4 directories for a given namespace,
+ * replacing any others previously set for this namespace.
+ *
+ * @param string $prefix The prefix/namespace, with trailing '\\'
+ * @param array|string $paths The PSR-4 base directories
+ *
+ * @throws \InvalidArgumentException
+ */
+ public function setPsr4($prefix, $paths)
+ {
+ if (!$prefix) {
+ $this->fallbackDirsPsr4 = (array) $paths;
+ } else {
+ $length = strlen($prefix);
+ if ('\\' !== $prefix[$length - 1]) {
+ throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
+ }
+ $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
+ $this->prefixDirsPsr4[$prefix] = (array) $paths;
+ }
+ }
+
+ /**
+ * Turns on searching the include path for class files.
+ *
+ * @param bool $useIncludePath
+ */
+ public function setUseIncludePath($useIncludePath)
+ {
+ $this->useIncludePath = $useIncludePath;
+ }
+
+ /**
+ * Can be used to check if the autoloader uses the include path to check
+ * for classes.
+ *
+ * @return bool
+ */
+ public function getUseIncludePath()
+ {
+ return $this->useIncludePath;
+ }
+
+ /**
+ * Turns off searching the prefix and fallback directories for classes
+ * that have not been registered with the class map.
+ *
+ * @param bool $classMapAuthoritative
+ */
+ public function setClassMapAuthoritative($classMapAuthoritative)
+ {
+ $this->classMapAuthoritative = $classMapAuthoritative;
+ }
+
+ /**
+ * Should class lookup fail if not found in the current class map?
+ *
+ * @return bool
+ */
+ public function isClassMapAuthoritative()
+ {
+ return $this->classMapAuthoritative;
+ }
+
+ /**
+ * APCu prefix to use to cache found/not-found classes, if the extension is enabled.
+ *
+ * @param string|null $apcuPrefix
+ */
+ public function setApcuPrefix($apcuPrefix)
+ {
+ $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
+ }
+
+ /**
+ * The APCu prefix in use, or null if APCu caching is not enabled.
+ *
+ * @return string|null
+ */
+ public function getApcuPrefix()
+ {
+ return $this->apcuPrefix;
+ }
+
+ /**
+ * Registers this instance as an autoloader.
+ *
+ * @param bool $prepend Whether to prepend the autoloader or not
+ */
+ public function register($prepend = false)
+ {
+ spl_autoload_register(array($this, 'loadClass'), true, $prepend);
+
+ if (null === $this->vendorDir) {
+ return;
+ }
+
+ if ($prepend) {
+ self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
+ } else {
+ unset(self::$registeredLoaders[$this->vendorDir]);
+ self::$registeredLoaders[$this->vendorDir] = $this;
+ }
+ }
+
+ /**
+ * Unregisters this instance as an autoloader.
+ */
+ public function unregister()
+ {
+ spl_autoload_unregister(array($this, 'loadClass'));
+
+ if (null !== $this->vendorDir) {
+ unset(self::$registeredLoaders[$this->vendorDir]);
+ }
+ }
+
+ /**
+ * Loads the given class or interface.
+ *
+ * @param string $class The name of the class
+ * @return bool|null True if loaded, null otherwise
+ */
+ public function loadClass($class)
+ {
+ if ($file = $this->findFile($class)) {
+ includeFile($file);
+
+ return true;
+ }
+ }
+
+ /**
+ * Finds the path to the file where the class is defined.
+ *
+ * @param string $class The name of the class
+ *
+ * @return string|false The path if found, false otherwise
+ */
+ public function findFile($class)
+ {
+ // class map lookup
+ if (isset($this->classMap[$class])) {
+ return $this->classMap[$class];
+ }
+ if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
+ return false;
+ }
+ if (null !== $this->apcuPrefix) {
+ $file = apcu_fetch($this->apcuPrefix.$class, $hit);
+ if ($hit) {
+ return $file;
+ }
+ }
+
+ $file = $this->findFileWithExtension($class, '.php');
+
+ // Search for Hack files if we are running on HHVM
+ if (false === $file && defined('HHVM_VERSION')) {
+ $file = $this->findFileWithExtension($class, '.hh');
+ }
+
+ if (null !== $this->apcuPrefix) {
+ apcu_add($this->apcuPrefix.$class, $file);
+ }
+
+ if (false === $file) {
+ // Remember that this class does not exist.
+ $this->missingClasses[$class] = true;
+ }
+
+ return $file;
+ }
+
+ /**
+ * Returns the currently registered loaders indexed by their corresponding vendor directories.
+ *
+ * @return self[]
+ */
+ public static function getRegisteredLoaders()
+ {
+ return self::$registeredLoaders;
+ }
+
+ private function findFileWithExtension($class, $ext)
+ {
+ // PSR-4 lookup
+ $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
+
+ $first = $class[0];
+ if (isset($this->prefixLengthsPsr4[$first])) {
+ $subPath = $class;
+ while (false !== $lastPos = strrpos($subPath, '\\')) {
+ $subPath = substr($subPath, 0, $lastPos);
+ $search = $subPath . '\\';
+ if (isset($this->prefixDirsPsr4[$search])) {
+ $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
+ foreach ($this->prefixDirsPsr4[$search] as $dir) {
+ if (file_exists($file = $dir . $pathEnd)) {
+ return $file;
+ }
+ }
+ }
+ }
+ }
+
+ // PSR-4 fallback dirs
+ foreach ($this->fallbackDirsPsr4 as $dir) {
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
+ return $file;
+ }
+ }
+
+ // PSR-0 lookup
+ if (false !== $pos = strrpos($class, '\\')) {
+ // namespaced class name
+ $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
+ . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
+ } else {
+ // PEAR-like class name
+ $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
+ }
+
+ if (isset($this->prefixesPsr0[$first])) {
+ foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
+ if (0 === strpos($class, $prefix)) {
+ foreach ($dirs as $dir) {
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
+ return $file;
+ }
+ }
+ }
+ }
+ }
+
+ // PSR-0 fallback dirs
+ foreach ($this->fallbackDirsPsr0 as $dir) {
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
+ return $file;
+ }
+ }
+
+ // PSR-0 include paths.
+ if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
+ return $file;
+ }
+
+ return false;
+ }
+}
+
+/**
+ * Scope isolated include.
+ *
+ * Prevents access to $this/self from included files.
+ */
+function includeFile($file)
+{
+ include $file;
+}
diff --git a/vendor/composer/InstalledVersions.php b/vendor/composer/InstalledVersions.php
new file mode 100644
index 000000000..e17d3b0a7
--- /dev/null
+++ b/vendor/composer/InstalledVersions.php
@@ -0,0 +1,364 @@
+<?php
+
+
+
+
+
+
+
+
+
+
+
+namespace Composer;
+
+use Composer\Autoload\ClassLoader;
+use Composer\Semver\VersionParser;
+
+
+
+
+
+
+class InstalledVersions
+{
+private static $installed = array (
+ 'root' =>
+ array (
+ 'pretty_version' => 'dev-master',
+ 'version' => 'dev-master',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => 'f96abd2b52b9de5eac3651594ca32c6a4023c3e3',
+ 'dev-requirement' => true,
+ 'name' => '__root__',
+ ),
+ 'versions' =>
+ array (
+ '__root__' =>
+ array (
+ 'pretty_version' => 'dev-master',
+ 'version' => 'dev-master',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => 'f96abd2b52b9de5eac3651594ca32c6a4023c3e3',
+ 'dev-requirement' => false,
+ ),
+ 'beberlei/assert' =>
+ array (
+ 'pretty_version' => 'v3.2.7',
+ 'version' => '3.2.7.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => 'd63a6943fc4fd1a2aedb65994e3548715105abcf',
+ 'dev-requirement' => false,
+ ),
+ 'chillerlan/php-qrcode' =>
+ array (
+ 'pretty_version' => '3.4.0',
+ 'version' => '3.4.0.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => 'd8bf297e6843a53aeaa8f3285ce04fc349d133d6',
+ 'dev-requirement' => false,
+ ),
+ 'chillerlan/php-settings-container' =>
+ array (
+ 'pretty_version' => '1.2.1',
+ 'version' => '1.2.1.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => 'b9b0431dffd74102ee92348a63b4c33fc8ba639b',
+ 'dev-requirement' => false,
+ ),
+ 'j4mie/idiorm' =>
+ array (
+ 'pretty_version' => 'v1.5.7',
+ 'version' => '1.5.7.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => 'd23f97053ef5d0b988a02c6a71eb5c6118b2f5b4',
+ 'dev-requirement' => false,
+ ),
+ 'mervick/material-design-icons' =>
+ array (
+ 'pretty_version' => '2.2.0',
+ 'version' => '2.2.0.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '635435c8d3df3a6da3241648caf8a65d1c07cc1a',
+ 'dev-requirement' => false,
+ ),
+ 'paragonie/constant_time_encoding' =>
+ array (
+ 'pretty_version' => 'v2.4.0',
+ 'version' => '2.4.0.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => 'f34c2b11eb9d2c9318e13540a1dbc2a3afbd939c',
+ 'dev-requirement' => false,
+ ),
+ 'spomky-labs/otphp' =>
+ array (
+ 'pretty_version' => 'v10.0.1',
+ 'version' => '10.0.1.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => 'f44cce5a9db4b8da410215d992110482c931232f',
+ 'dev-requirement' => false,
+ ),
+ 'thecodingmachine/safe' =>
+ array (
+ 'pretty_version' => 'v1.3.3',
+ 'version' => '1.3.3.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => 'a8ab0876305a4cdaef31b2350fcb9811b5608dbc',
+ 'dev-requirement' => false,
+ ),
+ ),
+);
+private static $canGetVendors;
+private static $installedByVendor = array();
+
+
+
+
+
+
+
+public static function getInstalledPackages()
+{
+$packages = array();
+foreach (self::getInstalled() as $installed) {
+$packages[] = array_keys($installed['versions']);
+}
+
+if (1 === \count($packages)) {
+return $packages[0];
+}
+
+return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
+}
+
+
+
+
+
+
+
+
+
+
+public static function isInstalled($packageName, $includeDevRequirements = true)
+{
+foreach (self::getInstalled() as $installed) {
+if (isset($installed['versions'][$packageName])) {
+return $includeDevRequirements || empty($installed['versions'][$packageName]['dev-requirement']);
+}
+}
+
+return false;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+public static function satisfies(VersionParser $parser, $packageName, $constraint)
+{
+$constraint = $parser->parseConstraints($constraint);
+$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
+
+return $provided->matches($constraint);
+}
+
+
+
+
+
+
+
+
+
+
+public static function getVersionRanges($packageName)
+{
+foreach (self::getInstalled() as $installed) {
+if (!isset($installed['versions'][$packageName])) {
+continue;
+}
+
+$ranges = array();
+if (isset($installed['versions'][$packageName]['pretty_version'])) {
+$ranges[] = $installed['versions'][$packageName]['pretty_version'];
+}
+if (array_key_exists('aliases', $installed['versions'][$packageName])) {
+$ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
+}
+if (array_key_exists('replaced', $installed['versions'][$packageName])) {
+$ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
+}
+if (array_key_exists('provided', $installed['versions'][$packageName])) {
+$ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
+}
+
+return implode(' || ', $ranges);
+}
+
+throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+}
+
+
+
+
+
+public static function getVersion($packageName)
+{
+foreach (self::getInstalled() as $installed) {
+if (!isset($installed['versions'][$packageName])) {
+continue;
+}
+
+if (!isset($installed['versions'][$packageName]['version'])) {
+return null;
+}
+
+return $installed['versions'][$packageName]['version'];
+}
+
+throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+}
+
+
+
+
+
+public static function getPrettyVersion($packageName)
+{
+foreach (self::getInstalled() as $installed) {
+if (!isset($installed['versions'][$packageName])) {
+continue;
+}
+
+if (!isset($installed['versions'][$packageName]['pretty_version'])) {
+return null;
+}
+
+return $installed['versions'][$packageName]['pretty_version'];
+}
+
+throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+}
+
+
+
+
+
+public static function getReference($packageName)
+{
+foreach (self::getInstalled() as $installed) {
+if (!isset($installed['versions'][$packageName])) {
+continue;
+}
+
+if (!isset($installed['versions'][$packageName]['reference'])) {
+return null;
+}
+
+return $installed['versions'][$packageName]['reference'];
+}
+
+throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+}
+
+
+
+
+
+public static function getRootPackage()
+{
+$installed = self::getInstalled();
+
+return $installed[0]['root'];
+}
+
+
+
+
+
+
+
+public static function getRawData()
+{
+return self::$installed;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+public static function reload($data)
+{
+self::$installed = $data;
+self::$installedByVendor = array();
+}
+
+
+
+
+private static function getInstalled()
+{
+if (null === self::$canGetVendors) {
+self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
+}
+
+$installed = array();
+
+if (self::$canGetVendors) {
+foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
+if (isset(self::$installedByVendor[$vendorDir])) {
+$installed[] = self::$installedByVendor[$vendorDir];
+} elseif (is_file($vendorDir.'/composer/installed.php')) {
+$installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
+}
+}
+}
+
+$installed[] = self::$installed;
+
+return $installed;
+}
+}
diff --git a/vendor/composer/LICENSE b/vendor/composer/LICENSE
new file mode 100644
index 000000000..f27399a04
--- /dev/null
+++ b/vendor/composer/LICENSE
@@ -0,0 +1,21 @@
+
+Copyright (c) Nils Adermann, Jordi Boggiano
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php
new file mode 100644
index 000000000..429869e46
--- /dev/null
+++ b/vendor/composer/autoload_classmap.php
@@ -0,0 +1,15 @@
+<?php
+
+// autoload_classmap.php @generated by Composer
+
+$vendorDir = dirname(dirname(__FILE__));
+$baseDir = dirname($vendorDir);
+
+return array(
+ 'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
+ 'IdiormMethodMissingException' => $vendorDir . '/j4mie/idiorm/idiorm.php',
+ 'IdiormResultSet' => $vendorDir . '/j4mie/idiorm/idiorm.php',
+ 'IdiormString' => $vendorDir . '/j4mie/idiorm/idiorm.php',
+ 'IdiormStringException' => $vendorDir . '/j4mie/idiorm/idiorm.php',
+ 'ORM' => $vendorDir . '/j4mie/idiorm/idiorm.php',
+);
diff --git a/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php
new file mode 100644
index 000000000..a2686669c
--- /dev/null
+++ b/vendor/composer/autoload_files.php
@@ -0,0 +1,99 @@
+<?php
+
+// autoload_files.php @generated by Composer
+
+$vendorDir = dirname(dirname(__FILE__));
+$baseDir = dirname($vendorDir);
+
+return array(
+ 'a4ecaeafb8cfb009ad0e052c90355e98' => $vendorDir . '/beberlei/assert/lib/Assert/functions.php',
+ '51fcf4e06c07cc00c920b44bcd900e7a' => $vendorDir . '/thecodingmachine/safe/deprecated/apc.php',
+ '47f619d9197b36cf5ab70738d7743fe2' => $vendorDir . '/thecodingmachine/safe/deprecated/libevent.php',
+ 'ea6bb8a12ef9b68f6ada99058e530760' => $vendorDir . '/thecodingmachine/safe/deprecated/mssql.php',
+ '9a29089eb3ce41a446744c68a00f118c' => $vendorDir . '/thecodingmachine/safe/deprecated/stats.php',
+ '72243e5536b63e298acb6476f01f1aff' => $vendorDir . '/thecodingmachine/safe/lib/special_cases.php',
+ '3f648889e687f31c52f949ba8a9d0873' => $vendorDir . '/thecodingmachine/safe/generated/apache.php',
+ 'eeb4581d958421a4244aaa4167c6a575' => $vendorDir . '/thecodingmachine/safe/generated/apcu.php',
+ '04cb0b3c1dac5b5ddb23c14e3d66dbe9' => $vendorDir . '/thecodingmachine/safe/generated/array.php',
+ '450b332a74a9a21e043c5e953485a791' => $vendorDir . '/thecodingmachine/safe/generated/bzip2.php',
+ '6e9b7954ecfd7cbb9ca239319d1acdb6' => $vendorDir . '/thecodingmachine/safe/generated/calendar.php',
+ '2c6d7e8bd2de9a272a9d4d43b0a4304a' => $vendorDir . '/thecodingmachine/safe/generated/classobj.php',
+ '0b8231c1ad0865447c988a4c16b4001f' => $vendorDir . '/thecodingmachine/safe/generated/com.php',
+ '7643a71fe1c3256058c8fee234cb86e5' => $vendorDir . '/thecodingmachine/safe/generated/cubrid.php',
+ '68e1365710575942efc1d55000032cee' => $vendorDir . '/thecodingmachine/safe/generated/curl.php',
+ '02fd26bca803106c5b942a7197c3ad8b' => $vendorDir . '/thecodingmachine/safe/generated/datetime.php',
+ 'f4817dcbd956cd221b1c31f6fbd5749c' => $vendorDir . '/thecodingmachine/safe/generated/dir.php',
+ '51c3f2d10ca61a70dbcea0e38d8e902d' => $vendorDir . '/thecodingmachine/safe/generated/eio.php',
+ '1d34f34327ca3e81535963016e3be2c3' => $vendorDir . '/thecodingmachine/safe/generated/errorfunc.php',
+ '4fd0ba2d3717b0424d474bebfdafa2b4' => $vendorDir . '/thecodingmachine/safe/generated/exec.php',
+ '98f4dae054bc7fb19c13be14935cbdd3' => $vendorDir . '/thecodingmachine/safe/generated/fileinfo.php',
+ '5530ae063ba88323eaf0a07904efdf85' => $vendorDir . '/thecodingmachine/safe/generated/filesystem.php',
+ '633f4f134975d70e97bddad83348e91a' => $vendorDir . '/thecodingmachine/safe/generated/filter.php',
+ 'fbd163fc68c5faf73d5ed4002ffd836d' => $vendorDir . '/thecodingmachine/safe/generated/fpm.php',
+ '21b511999d61411fab0692ff8795bbed' => $vendorDir . '/thecodingmachine/safe/generated/ftp.php',
+ '85fbd73fc92365cd90526b0ea03cae3a' => $vendorDir . '/thecodingmachine/safe/generated/funchand.php',
+ '51df9c146e0b7dcbdf358d8abd24dbdc' => $vendorDir . '/thecodingmachine/safe/generated/gmp.php',
+ '93bb7fe678d7dcfb1322f8e3475a48b0' => $vendorDir . '/thecodingmachine/safe/generated/gnupg.php',
+ 'c171ba99cf316379ff66468392bf4950' => $vendorDir . '/thecodingmachine/safe/generated/hash.php',
+ '5ab4aad4c28e468209fbfcceb2e5e6a5' => $vendorDir . '/thecodingmachine/safe/generated/ibase.php',
+ '4d57409c5e8e576b0c64c08d9d731cfb' => $vendorDir . '/thecodingmachine/safe/generated/ibmDb2.php',
+ 'eeb246d5403972a9d62106e4a4883496' => $vendorDir . '/thecodingmachine/safe/generated/iconv.php',
+ 'c28a05f498c01b810a714f7214b7a8da' => $vendorDir . '/thecodingmachine/safe/generated/image.php',
+ '8063cd92acdf00fd978b5599eb7cc142' => $vendorDir . '/thecodingmachine/safe/generated/imap.php',
+ '8bd26dbe768e9c9599edad7b198e5446' => $vendorDir . '/thecodingmachine/safe/generated/info.php',
+ '0c577fe603b029d4b65c84376b15dbd5' => $vendorDir . '/thecodingmachine/safe/generated/ingres-ii.php',
+ 'd4362910bde43c0f956b52527effd7d4' => $vendorDir . '/thecodingmachine/safe/generated/inotify.php',
+ '696ba49197d9b55f0428a12bb5a818e1' => $vendorDir . '/thecodingmachine/safe/generated/json.php',
+ '9818aaa99c8647c63f8ef62b7a368160' => $vendorDir . '/thecodingmachine/safe/generated/ldap.php',
+ 'bcf523ff2a195eb08e0fbb668ed784d0' => $vendorDir . '/thecodingmachine/safe/generated/libxml.php',
+ '68be68a9a8b95bb56cab6109ff03bc88' => $vendorDir . '/thecodingmachine/safe/generated/lzf.php',
+ 'bdca804bb0904ea9f53f328dfc0bb8a5' => $vendorDir . '/thecodingmachine/safe/generated/mailparse.php',
+ 'b0a3fcac3eaf55445796d6af26b89366' => $vendorDir . '/thecodingmachine/safe/generated/mbstring.php',
+ '98de16b8db03eb0cb4d318b4402215a6' => $vendorDir . '/thecodingmachine/safe/generated/misc.php',
+ 'c112440003b56e243b192c11fa9d836e' => $vendorDir . '/thecodingmachine/safe/generated/msql.php',
+ '7cefd81607cd21b8b3a15656eb6465f5' => $vendorDir . '/thecodingmachine/safe/generated/mysql.php',
+ 'aaf438b080089c6d0686679cd34aa72e' => $vendorDir . '/thecodingmachine/safe/generated/mysqli.php',
+ 'df0ef890e9afbf95f3924feb1c7a89f3' => $vendorDir . '/thecodingmachine/safe/generated/mysqlndMs.php',
+ 'db595fee5972867e45c5327010d78735' => $vendorDir . '/thecodingmachine/safe/generated/mysqlndQc.php',
+ 'cbac956836b72483dcff1ac39d5c0a0f' => $vendorDir . '/thecodingmachine/safe/generated/network.php',
+ '6c8f89dfbdc117d7871f572269363f25' => $vendorDir . '/thecodingmachine/safe/generated/oci8.php',
+ '169a669966a45c06bf55ed029122729b' => $vendorDir . '/thecodingmachine/safe/generated/opcache.php',
+ 'def61bf4fecd4d4bca7354919cd69302' => $vendorDir . '/thecodingmachine/safe/generated/openssl.php',
+ '26bb010649a6d32d4120181458aa6ef2' => $vendorDir . '/thecodingmachine/safe/generated/outcontrol.php',
+ '1212c201fe43c7492a085b2c71505e0f' => $vendorDir . '/thecodingmachine/safe/generated/password.php',
+ '002ebcb842e2c0d5b7f67fe64cc93158' => $vendorDir . '/thecodingmachine/safe/generated/pcntl.php',
+ '86df38612982dade72c7085ce7eca81f' => $vendorDir . '/thecodingmachine/safe/generated/pcre.php',
+ '1cacc3e65f82a473fbd5507c7ce4385d' => $vendorDir . '/thecodingmachine/safe/generated/pdf.php',
+ '1fc22f445c69ea8706e82fce301c0831' => $vendorDir . '/thecodingmachine/safe/generated/pgsql.php',
+ 'c70b42561584f7144bff38cd63c4eef3' => $vendorDir . '/thecodingmachine/safe/generated/posix.php',
+ '9923214639c32ca5173db03a177d3b63' => $vendorDir . '/thecodingmachine/safe/generated/ps.php',
+ '7e9c3f8eae2b5bf42205c4f1295cb7a7' => $vendorDir . '/thecodingmachine/safe/generated/pspell.php',
+ '91aa91f6245c349c2e2e88bd0025f199' => $vendorDir . '/thecodingmachine/safe/generated/readline.php',
+ 'd43773cacb9e5e8e897aa255e32007d1' => $vendorDir . '/thecodingmachine/safe/generated/rpminfo.php',
+ 'f053a3849e9e8383762b34b91db0320b' => $vendorDir . '/thecodingmachine/safe/generated/rrd.php',
+ '775b964f72f827a1bf87c65ab5b10800' => $vendorDir . '/thecodingmachine/safe/generated/sem.php',
+ '816428bd69c29ab5e1ed622af5dca0cd' => $vendorDir . '/thecodingmachine/safe/generated/session.php',
+ '5093e233bedbefaef0df262bfbab0a5c' => $vendorDir . '/thecodingmachine/safe/generated/shmop.php',
+ '01352920b0151f17e671266e44b52536' => $vendorDir . '/thecodingmachine/safe/generated/simplexml.php',
+ 'b080617b1d949683c2e37f8f01dc0e15' => $vendorDir . '/thecodingmachine/safe/generated/sockets.php',
+ '2708aa182ddcfe6ce27c96acaaa40f69' => $vendorDir . '/thecodingmachine/safe/generated/sodium.php',
+ 'f1b96cb260a5baeea9a7285cda82a1ec' => $vendorDir . '/thecodingmachine/safe/generated/solr.php',
+ '3fd8853757d0fe3557c179efb807afeb' => $vendorDir . '/thecodingmachine/safe/generated/spl.php',
+ '9312ce96a51c846913fcda5f186d58dd' => $vendorDir . '/thecodingmachine/safe/generated/sqlsrv.php',
+ 'd3eb383ad0b8b962b29dc4afd29d6715' => $vendorDir . '/thecodingmachine/safe/generated/ssdeep.php',
+ '42a09bc448f441a0b9f9367ea975c0bf' => $vendorDir . '/thecodingmachine/safe/generated/ssh2.php',
+ 'ef711077d356d1b33ca0b10b67b0be8f' => $vendorDir . '/thecodingmachine/safe/generated/stream.php',
+ '764b09f6df081cbb2807b97c6ace3866' => $vendorDir . '/thecodingmachine/safe/generated/strings.php',
+ 'ef241678769fee4a44aaa288f3b78aa1' => $vendorDir . '/thecodingmachine/safe/generated/swoole.php',
+ '0efc8f6778cba932b9e2a89e28de2452' => $vendorDir . '/thecodingmachine/safe/generated/uodbc.php',
+ 'd383d32907b98af53ee9208c62204fd0' => $vendorDir . '/thecodingmachine/safe/generated/uopz.php',
+ '2fd2e4060f7fe772660f002ce38f0b71' => $vendorDir . '/thecodingmachine/safe/generated/url.php',
+ '782249e03deebeaf57b9991ff5493aa0' => $vendorDir . '/thecodingmachine/safe/generated/var.php',
+ '344440cd1cd7200fdb4f12af0d3c587f' => $vendorDir . '/thecodingmachine/safe/generated/xdiff.php',
+ '3599f369219c658a5fb6c4fe66832f62' => $vendorDir . '/thecodingmachine/safe/generated/xml.php',
+ '7fcd313da9fae337051b091b3492c21b' => $vendorDir . '/thecodingmachine/safe/generated/xmlrpc.php',
+ 'd668c74cfa92d893b582356733d9a80e' => $vendorDir . '/thecodingmachine/safe/generated/yaml.php',
+ '4af1dca6db8c527c6eed27bff85ff0e5' => $vendorDir . '/thecodingmachine/safe/generated/yaz.php',
+ 'fe43ca06499ac37bc2dedd823af71eb5' => $vendorDir . '/thecodingmachine/safe/generated/zip.php',
+ '356736db98a6834f0a886b8d509b0ecd' => $vendorDir . '/thecodingmachine/safe/generated/zlib.php',
+);
diff --git a/vendor/composer/autoload_namespaces.php b/vendor/composer/autoload_namespaces.php
new file mode 100644
index 000000000..b7fc0125d
--- /dev/null
+++ b/vendor/composer/autoload_namespaces.php
@@ -0,0 +1,9 @@
+<?php
+
+// autoload_namespaces.php @generated by Composer
+
+$vendorDir = dirname(dirname(__FILE__));
+$baseDir = dirname($vendorDir);
+
+return array(
+);
diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php
new file mode 100644
index 000000000..b739220a2
--- /dev/null
+++ b/vendor/composer/autoload_psr4.php
@@ -0,0 +1,15 @@
+<?php
+
+// autoload_psr4.php @generated by Composer
+
+$vendorDir = dirname(dirname(__FILE__));
+$baseDir = dirname($vendorDir);
+
+return array(
+ 'chillerlan\\Settings\\' => array($vendorDir . '/chillerlan/php-settings-container/src'),
+ 'chillerlan\\QRCode\\' => array($vendorDir . '/chillerlan/php-qrcode/src'),
+ 'Safe\\' => array($vendorDir . '/thecodingmachine/safe/lib', $vendorDir . '/thecodingmachine/safe/deprecated', $vendorDir . '/thecodingmachine/safe/generated'),
+ 'ParagonIE\\ConstantTime\\' => array($vendorDir . '/paragonie/constant_time_encoding/src'),
+ 'OTPHP\\' => array($vendorDir . '/spomky-labs/otphp/src'),
+ 'Assert\\' => array($vendorDir . '/beberlei/assert/lib/Assert'),
+);
diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php
new file mode 100644
index 000000000..34b3b7ad0
--- /dev/null
+++ b/vendor/composer/autoload_real.php
@@ -0,0 +1,75 @@
+<?php
+
+// autoload_real.php @generated by Composer
+
+class ComposerAutoloaderInit19fc2ff1c0f9a92279c7979386bb2056
+{
+ private static $loader;
+
+ public static function loadClassLoader($class)
+ {
+ if ('Composer\Autoload\ClassLoader' === $class) {
+ require __DIR__ . '/ClassLoader.php';
+ }
+ }
+
+ /**
+ * @return \Composer\Autoload\ClassLoader
+ */
+ public static function getLoader()
+ {
+ if (null !== self::$loader) {
+ return self::$loader;
+ }
+
+ require __DIR__ . '/platform_check.php';
+
+ spl_autoload_register(array('ComposerAutoloaderInit19fc2ff1c0f9a92279c7979386bb2056', 'loadClassLoader'), true, true);
+ self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
+ spl_autoload_unregister(array('ComposerAutoloaderInit19fc2ff1c0f9a92279c7979386bb2056', 'loadClassLoader'));
+
+ $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
+ if ($useStaticLoader) {
+ require __DIR__ . '/autoload_static.php';
+
+ call_user_func(\Composer\Autoload\ComposerStaticInit19fc2ff1c0f9a92279c7979386bb2056::getInitializer($loader));
+ } else {
+ $map = require __DIR__ . '/autoload_namespaces.php';
+ foreach ($map as $namespace => $path) {
+ $loader->set($namespace, $path);
+ }
+
+ $map = require __DIR__ . '/autoload_psr4.php';
+ foreach ($map as $namespace => $path) {
+ $loader->setPsr4($namespace, $path);
+ }
+
+ $classMap = require __DIR__ . '/autoload_classmap.php';
+ if ($classMap) {
+ $loader->addClassMap($classMap);
+ }
+ }
+
+ $loader->register(true);
+
+ if ($useStaticLoader) {
+ $includeFiles = Composer\Autoload\ComposerStaticInit19fc2ff1c0f9a92279c7979386bb2056::$files;
+ } else {
+ $includeFiles = require __DIR__ . '/autoload_files.php';
+ }
+ foreach ($includeFiles as $fileIdentifier => $file) {
+ composerRequire19fc2ff1c0f9a92279c7979386bb2056($fileIdentifier, $file);
+ }
+
+ return $loader;
+ }
+}
+
+function composerRequire19fc2ff1c0f9a92279c7979386bb2056($fileIdentifier, $file)
+{
+ if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
+ require $file;
+
+ $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
+ }
+}
diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php
new file mode 100644
index 000000000..6f1c238b1
--- /dev/null
+++ b/vendor/composer/autoload_static.php
@@ -0,0 +1,173 @@
+<?php
+
+// autoload_static.php @generated by Composer
+
+namespace Composer\Autoload;
+
+class ComposerStaticInit19fc2ff1c0f9a92279c7979386bb2056
+{
+ public static $files = array (
+ 'a4ecaeafb8cfb009ad0e052c90355e98' => __DIR__ . '/..' . '/beberlei/assert/lib/Assert/functions.php',
+ '51fcf4e06c07cc00c920b44bcd900e7a' => __DIR__ . '/..' . '/thecodingmachine/safe/deprecated/apc.php',
+ '47f619d9197b36cf5ab70738d7743fe2' => __DIR__ . '/..' . '/thecodingmachine/safe/deprecated/libevent.php',
+ 'ea6bb8a12ef9b68f6ada99058e530760' => __DIR__ . '/..' . '/thecodingmachine/safe/deprecated/mssql.php',
+ '9a29089eb3ce41a446744c68a00f118c' => __DIR__ . '/..' . '/thecodingmachine/safe/deprecated/stats.php',
+ '72243e5536b63e298acb6476f01f1aff' => __DIR__ . '/..' . '/thecodingmachine/safe/lib/special_cases.php',
+ '3f648889e687f31c52f949ba8a9d0873' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/apache.php',
+ 'eeb4581d958421a4244aaa4167c6a575' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/apcu.php',
+ '04cb0b3c1dac5b5ddb23c14e3d66dbe9' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/array.php',
+ '450b332a74a9a21e043c5e953485a791' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/bzip2.php',
+ '6e9b7954ecfd7cbb9ca239319d1acdb6' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/calendar.php',
+ '2c6d7e8bd2de9a272a9d4d43b0a4304a' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/classobj.php',
+ '0b8231c1ad0865447c988a4c16b4001f' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/com.php',
+ '7643a71fe1c3256058c8fee234cb86e5' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/cubrid.php',
+ '68e1365710575942efc1d55000032cee' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/curl.php',
+ '02fd26bca803106c5b942a7197c3ad8b' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/datetime.php',
+ 'f4817dcbd956cd221b1c31f6fbd5749c' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/dir.php',
+ '51c3f2d10ca61a70dbcea0e38d8e902d' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/eio.php',
+ '1d34f34327ca3e81535963016e3be2c3' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/errorfunc.php',
+ '4fd0ba2d3717b0424d474bebfdafa2b4' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/exec.php',
+ '98f4dae054bc7fb19c13be14935cbdd3' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/fileinfo.php',
+ '5530ae063ba88323eaf0a07904efdf85' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/filesystem.php',
+ '633f4f134975d70e97bddad83348e91a' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/filter.php',
+ 'fbd163fc68c5faf73d5ed4002ffd836d' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/fpm.php',
+ '21b511999d61411fab0692ff8795bbed' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/ftp.php',
+ '85fbd73fc92365cd90526b0ea03cae3a' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/funchand.php',
+ '51df9c146e0b7dcbdf358d8abd24dbdc' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/gmp.php',
+ '93bb7fe678d7dcfb1322f8e3475a48b0' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/gnupg.php',
+ 'c171ba99cf316379ff66468392bf4950' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/hash.php',
+ '5ab4aad4c28e468209fbfcceb2e5e6a5' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/ibase.php',
+ '4d57409c5e8e576b0c64c08d9d731cfb' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/ibmDb2.php',
+ 'eeb246d5403972a9d62106e4a4883496' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/iconv.php',
+ 'c28a05f498c01b810a714f7214b7a8da' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/image.php',
+ '8063cd92acdf00fd978b5599eb7cc142' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/imap.php',
+ '8bd26dbe768e9c9599edad7b198e5446' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/info.php',
+ '0c577fe603b029d4b65c84376b15dbd5' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/ingres-ii.php',
+ 'd4362910bde43c0f956b52527effd7d4' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/inotify.php',
+ '696ba49197d9b55f0428a12bb5a818e1' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/json.php',
+ '9818aaa99c8647c63f8ef62b7a368160' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/ldap.php',
+ 'bcf523ff2a195eb08e0fbb668ed784d0' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/libxml.php',
+ '68be68a9a8b95bb56cab6109ff03bc88' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/lzf.php',
+ 'bdca804bb0904ea9f53f328dfc0bb8a5' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/mailparse.php',
+ 'b0a3fcac3eaf55445796d6af26b89366' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/mbstring.php',
+ '98de16b8db03eb0cb4d318b4402215a6' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/misc.php',
+ 'c112440003b56e243b192c11fa9d836e' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/msql.php',
+ '7cefd81607cd21b8b3a15656eb6465f5' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/mysql.php',
+ 'aaf438b080089c6d0686679cd34aa72e' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/mysqli.php',
+ 'df0ef890e9afbf95f3924feb1c7a89f3' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/mysqlndMs.php',
+ 'db595fee5972867e45c5327010d78735' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/mysqlndQc.php',
+ 'cbac956836b72483dcff1ac39d5c0a0f' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/network.php',
+ '6c8f89dfbdc117d7871f572269363f25' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/oci8.php',
+ '169a669966a45c06bf55ed029122729b' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/opcache.php',
+ 'def61bf4fecd4d4bca7354919cd69302' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/openssl.php',
+ '26bb010649a6d32d4120181458aa6ef2' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/outcontrol.php',
+ '1212c201fe43c7492a085b2c71505e0f' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/password.php',
+ '002ebcb842e2c0d5b7f67fe64cc93158' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/pcntl.php',
+ '86df38612982dade72c7085ce7eca81f' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/pcre.php',
+ '1cacc3e65f82a473fbd5507c7ce4385d' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/pdf.php',
+ '1fc22f445c69ea8706e82fce301c0831' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/pgsql.php',
+ 'c70b42561584f7144bff38cd63c4eef3' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/posix.php',
+ '9923214639c32ca5173db03a177d3b63' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/ps.php',
+ '7e9c3f8eae2b5bf42205c4f1295cb7a7' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/pspell.php',
+ '91aa91f6245c349c2e2e88bd0025f199' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/readline.php',
+ 'd43773cacb9e5e8e897aa255e32007d1' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/rpminfo.php',
+ 'f053a3849e9e8383762b34b91db0320b' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/rrd.php',
+ '775b964f72f827a1bf87c65ab5b10800' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/sem.php',
+ '816428bd69c29ab5e1ed622af5dca0cd' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/session.php',
+ '5093e233bedbefaef0df262bfbab0a5c' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/shmop.php',
+ '01352920b0151f17e671266e44b52536' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/simplexml.php',
+ 'b080617b1d949683c2e37f8f01dc0e15' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/sockets.php',
+ '2708aa182ddcfe6ce27c96acaaa40f69' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/sodium.php',
+ 'f1b96cb260a5baeea9a7285cda82a1ec' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/solr.php',
+ '3fd8853757d0fe3557c179efb807afeb' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/spl.php',
+ '9312ce96a51c846913fcda5f186d58dd' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/sqlsrv.php',
+ 'd3eb383ad0b8b962b29dc4afd29d6715' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/ssdeep.php',
+ '42a09bc448f441a0b9f9367ea975c0bf' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/ssh2.php',
+ 'ef711077d356d1b33ca0b10b67b0be8f' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/stream.php',
+ '764b09f6df081cbb2807b97c6ace3866' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/strings.php',
+ 'ef241678769fee4a44aaa288f3b78aa1' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/swoole.php',
+ '0efc8f6778cba932b9e2a89e28de2452' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/uodbc.php',
+ 'd383d32907b98af53ee9208c62204fd0' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/uopz.php',
+ '2fd2e4060f7fe772660f002ce38f0b71' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/url.php',
+ '782249e03deebeaf57b9991ff5493aa0' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/var.php',
+ '344440cd1cd7200fdb4f12af0d3c587f' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/xdiff.php',
+ '3599f369219c658a5fb6c4fe66832f62' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/xml.php',
+ '7fcd313da9fae337051b091b3492c21b' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/xmlrpc.php',
+ 'd668c74cfa92d893b582356733d9a80e' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/yaml.php',
+ '4af1dca6db8c527c6eed27bff85ff0e5' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/yaz.php',
+ 'fe43ca06499ac37bc2dedd823af71eb5' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/zip.php',
+ '356736db98a6834f0a886b8d509b0ecd' => __DIR__ . '/..' . '/thecodingmachine/safe/generated/zlib.php',
+ );
+
+ public static $prefixLengthsPsr4 = array (
+ 'c' =>
+ array (
+ 'chillerlan\\Settings\\' => 20,
+ 'chillerlan\\QRCode\\' => 18,
+ ),
+ 'S' =>
+ array (
+ 'Safe\\' => 5,
+ ),
+ 'P' =>
+ array (
+ 'ParagonIE\\ConstantTime\\' => 23,
+ ),
+ 'O' =>
+ array (
+ 'OTPHP\\' => 6,
+ ),
+ 'A' =>
+ array (
+ 'Assert\\' => 7,
+ ),
+ );
+
+ public static $prefixDirsPsr4 = array (
+ 'chillerlan\\Settings\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/chillerlan/php-settings-container/src',
+ ),
+ 'chillerlan\\QRCode\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/chillerlan/php-qrcode/src',
+ ),
+ 'Safe\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/thecodingmachine/safe/lib',
+ 1 => __DIR__ . '/..' . '/thecodingmachine/safe/deprecated',
+ 2 => __DIR__ . '/..' . '/thecodingmachine/safe/generated',
+ ),
+ 'ParagonIE\\ConstantTime\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/paragonie/constant_time_encoding/src',
+ ),
+ 'OTPHP\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/spomky-labs/otphp/src',
+ ),
+ 'Assert\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/beberlei/assert/lib/Assert',
+ ),
+ );
+
+ public static $classMap = array (
+ 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
+ 'IdiormMethodMissingException' => __DIR__ . '/..' . '/j4mie/idiorm/idiorm.php',
+ 'IdiormResultSet' => __DIR__ . '/..' . '/j4mie/idiorm/idiorm.php',
+ 'IdiormString' => __DIR__ . '/..' . '/j4mie/idiorm/idiorm.php',
+ 'IdiormStringException' => __DIR__ . '/..' . '/j4mie/idiorm/idiorm.php',
+ 'ORM' => __DIR__ . '/..' . '/j4mie/idiorm/idiorm.php',
+ );
+
+ public static function getInitializer(ClassLoader $loader)
+ {
+ return \Closure::bind(function () use ($loader) {
+ $loader->prefixLengthsPsr4 = ComposerStaticInit19fc2ff1c0f9a92279c7979386bb2056::$prefixLengthsPsr4;
+ $loader->prefixDirsPsr4 = ComposerStaticInit19fc2ff1c0f9a92279c7979386bb2056::$prefixDirsPsr4;
+ $loader->classMap = ComposerStaticInit19fc2ff1c0f9a92279c7979386bb2056::$classMap;
+
+ }, null, ClassLoader::class);
+ }
+}
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
new file mode 100644
index 000000000..7de696894
--- /dev/null
+++ b/vendor/composer/installed.json
@@ -0,0 +1,615 @@
+{
+ "packages": [
+ {
+ "name": "beberlei/assert",
+ "version": "v3.2.7",
+ "version_normalized": "3.2.7.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/beberlei/assert.git",
+ "reference": "d63a6943fc4fd1a2aedb65994e3548715105abcf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/beberlei/assert/zipball/d63a6943fc4fd1a2aedb65994e3548715105abcf",
+ "reference": "d63a6943fc4fd1a2aedb65994e3548715105abcf",
+ "shasum": ""
+ },
+ "require": {
+ "ext-ctype": "*",
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "ext-simplexml": "*",
+ "php": "^7"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "*",
+ "phpstan/phpstan-shim": "*",
+ "phpunit/phpunit": ">=6.0.0 <8"
+ },
+ "suggest": {
+ "ext-intl": "Needed to allow Assertion::count(), Assertion::isCountable(), Assertion::minCount(), and Assertion::maxCount() to operate on ResourceBundles"
+ },
+ "time": "2019-12-19T17:51:41+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Assert\\": "lib/Assert"
+ },
+ "files": [
+ "lib/Assert/functions.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-2-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Benjamin Eberlei",
+ "email": "[email protected]",
+ "role": "Lead Developer"
+ },
+ {
+ "name": "Richard Quadling",
+ "email": "[email protected]",
+ "role": "Collaborator"
+ }
+ ],
+ "description": "Thin assertion library for input validation in business models.",
+ "keywords": [
+ "assert",
+ "assertion",
+ "validation"
+ ],
+ "support": {
+ "issues": "https://github.com/beberlei/assert/issues",
+ "source": "https://github.com/beberlei/assert/tree/v3"
+ },
+ "install-path": "../beberlei/assert"
+ },
+ {
+ "name": "chillerlan/php-qrcode",
+ "version": "3.4.0",
+ "version_normalized": "3.4.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/chillerlan/php-qrcode.git",
+ "reference": "d8bf297e6843a53aeaa8f3285ce04fc349d133d6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/chillerlan/php-qrcode/zipball/d8bf297e6843a53aeaa8f3285ce04fc349d133d6",
+ "reference": "d8bf297e6843a53aeaa8f3285ce04fc349d133d6",
+ "shasum": ""
+ },
+ "require": {
+ "chillerlan/php-settings-container": "^1.2",
+ "ext-mbstring": "*",
+ "php": "^7.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.5",
+ "setasign/fpdf": "^1.8.2"
+ },
+ "suggest": {
+ "chillerlan/php-authenticator": "Yet another Google authenticator! Also creates URIs for mobile apps.",
+ "setasign/fpdf": "Required to use the QR FPDF output."
+ },
+ "time": "2020-11-18T20:51:41+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "chillerlan\\QRCode\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Kazuhiko Arase",
+ "homepage": "https://github.com/kazuhikoarase"
+ },
+ {
+ "name": "Smiley",
+ "email": "[email protected]",
+ "homepage": "https://github.com/codemasher"
+ },
+ {
+ "name": "Contributors",
+ "homepage": "https://github.com/chillerlan/php-qrcode/graphs/contributors"
+ }
+ ],
+ "description": "A QR code generator. PHP 7.2+",
+ "homepage": "https://github.com/chillerlan/php-qrcode",
+ "keywords": [
+ "phpqrcode",
+ "qr",
+ "qr code",
+ "qrcode",
+ "qrcode-generator"
+ ],
+ "support": {
+ "issues": "https://github.com/chillerlan/php-qrcode/issues",
+ "source": "https://github.com/chillerlan/php-qrcode/tree/3.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://www.paypal.com/donate?hosted_button_id=WLYUNAT9ZTJZ4",
+ "type": "custom"
+ },
+ {
+ "url": "https://ko-fi.com/codemasher",
+ "type": "ko_fi"
+ }
+ ],
+ "install-path": "../chillerlan/php-qrcode"
+ },
+ {
+ "name": "chillerlan/php-settings-container",
+ "version": "1.2.1",
+ "version_normalized": "1.2.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/chillerlan/php-settings-container.git",
+ "reference": "b9b0431dffd74102ee92348a63b4c33fc8ba639b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/chillerlan/php-settings-container/zipball/b9b0431dffd74102ee92348a63b4c33fc8ba639b",
+ "reference": "b9b0431dffd74102ee92348a63b4c33fc8ba639b",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "php": "^7.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.3"
+ },
+ "time": "2019-09-10T00:09:44+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "chillerlan\\Settings\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Smiley",
+ "email": "[email protected]",
+ "homepage": "https://github.com/codemasher"
+ }
+ ],
+ "description": "A container class for immutable settings objects. Not a DI container. PHP 7.2+",
+ "homepage": "https://github.com/chillerlan/php-settings-container",
+ "keywords": [
+ "PHP7",
+ "Settings",
+ "container",
+ "helper"
+ ],
+ "support": {
+ "issues": "https://github.com/chillerlan/php-settings-container/issues",
+ "source": "https://github.com/chillerlan/php-settings-container"
+ },
+ "install-path": "../chillerlan/php-settings-container"
+ },
+ {
+ "name": "j4mie/idiorm",
+ "version": "v1.5.7",
+ "version_normalized": "1.5.7.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/j4mie/idiorm.git",
+ "reference": "d23f97053ef5d0b988a02c6a71eb5c6118b2f5b4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/j4mie/idiorm/zipball/d23f97053ef5d0b988a02c6a71eb5c6118b2f5b4",
+ "reference": "d23f97053ef5d0b988a02c6a71eb5c6118b2f5b4",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.2.0"
+ },
+ "require-dev": {
+ "ext-pdo_sqlite": "*",
+ "phpunit/phpunit": "^4.8"
+ },
+ "time": "2020-04-29T00:37:09+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "idiorm.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-2-Clause",
+ "BSD-3-Clause",
+ "BSD-4-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Jamie Matthews",
+ "email": "[email protected]",
+ "homepage": "http://j4mie.org",
+ "role": "Developer"
+ },
+ {
+ "name": "Simon Holywell",
+ "email": "[email protected]",
+ "homepage": "http://simonholywell.com",
+ "role": "Maintainer"
+ },
+ {
+ "name": "Durham Hale",
+ "email": "[email protected]",
+ "homepage": "http://durhamhale.com",
+ "role": "Maintainer"
+ }
+ ],
+ "description": "A lightweight nearly-zero-configuration object-relational mapper and fluent query builder for PHP5",
+ "homepage": "http://j4mie.github.com/idiormandparis",
+ "keywords": [
+ "idiorm",
+ "orm",
+ "query builder"
+ ],
+ "support": {
+ "issues": "https://github.com/j4mie/idiorm/issues",
+ "source": "https://github.com/j4mie/idiorm"
+ },
+ "install-path": "../j4mie/idiorm"
+ },
+ {
+ "name": "mervick/material-design-icons",
+ "version": "2.2.0",
+ "version_normalized": "2.2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/mervick/material-design-icons.git",
+ "reference": "635435c8d3df3a6da3241648caf8a65d1c07cc1a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/mervick/material-design-icons/zipball/635435c8d3df3a6da3241648caf8a65d1c07cc1a",
+ "reference": "635435c8d3df3a6da3241648caf8a65d1c07cc1a",
+ "shasum": ""
+ },
+ "time": "2016-02-22T01:05:40+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT",
+ "CC-BY-4.0"
+ ],
+ "authors": [
+ {
+ "name": "Andrey Izman",
+ "email": "[email protected]"
+ }
+ ],
+ "description": "Google Material Design Icons For Using With Bootstrap",
+ "homepage": "http://github.com/mervick/material-design-icons",
+ "keywords": [
+ "bootstrap",
+ "google",
+ "icons",
+ "icons-web-font",
+ "material",
+ "material-design",
+ "web-font"
+ ],
+ "support": {
+ "issues": "https://github.com/mervick/material-design-icons/issues",
+ "source": "http://github.com/mervick/material-design-icons"
+ },
+ "install-path": "../mervick/material-design-icons"
+ },
+ {
+ "name": "paragonie/constant_time_encoding",
+ "version": "v2.4.0",
+ "version_normalized": "2.4.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/paragonie/constant_time_encoding.git",
+ "reference": "f34c2b11eb9d2c9318e13540a1dbc2a3afbd939c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/f34c2b11eb9d2c9318e13540a1dbc2a3afbd939c",
+ "reference": "f34c2b11eb9d2c9318e13540a1dbc2a3afbd939c",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7|^8"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^6|^7|^8|^9",
+ "vimeo/psalm": "^1|^2|^3|^4"
+ },
+ "time": "2020-12-06T15:14:20+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "ParagonIE\\ConstantTime\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Paragon Initiative Enterprises",
+ "email": "[email protected]",
+ "homepage": "https://paragonie.com",
+ "role": "Maintainer"
+ },
+ {
+ "name": "Steve 'Sc00bz' Thomas",
+ "email": "[email protected]",
+ "homepage": "https://www.tobtu.com",
+ "role": "Original Developer"
+ }
+ ],
+ "description": "Constant-time Implementations of RFC 4648 Encoding (Base-64, Base-32, Base-16)",
+ "keywords": [
+ "base16",
+ "base32",
+ "base32_decode",
+ "base32_encode",
+ "base64",
+ "base64_decode",
+ "base64_encode",
+ "bin2hex",
+ "encoding",
+ "hex",
+ "hex2bin",
+ "rfc4648"
+ ],
+ "support": {
+ "email": "[email protected]",
+ "issues": "https://github.com/paragonie/constant_time_encoding/issues",
+ "source": "https://github.com/paragonie/constant_time_encoding"
+ },
+ "install-path": "../paragonie/constant_time_encoding"
+ },
+ {
+ "name": "spomky-labs/otphp",
+ "version": "v10.0.1",
+ "version_normalized": "10.0.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Spomky-Labs/otphp.git",
+ "reference": "f44cce5a9db4b8da410215d992110482c931232f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Spomky-Labs/otphp/zipball/f44cce5a9db4b8da410215d992110482c931232f",
+ "reference": "f44cce5a9db4b8da410215d992110482c931232f",
+ "shasum": ""
+ },
+ "require": {
+ "beberlei/assert": "^3.0",
+ "ext-mbstring": "*",
+ "paragonie/constant_time_encoding": "^2.0",
+ "php": "^7.2|^8.0",
+ "thecodingmachine/safe": "^0.1.14|^1.0"
+ },
+ "require-dev": {
+ "php-coveralls/php-coveralls": "^2.0",
+ "phpstan/phpstan": "^0.12",
+ "phpstan/phpstan-beberlei-assert": "^0.12",
+ "phpstan/phpstan-deprecation-rules": "^0.12",
+ "phpstan/phpstan-phpunit": "^0.12",
+ "phpstan/phpstan-strict-rules": "^0.12",
+ "phpunit/phpunit": "^8.0",
+ "thecodingmachine/phpstan-safe-rule": "^1.0"
+ },
+ "time": "2020-01-28T09:24:19+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "v10.0": "10.0.x-dev",
+ "v9.0": "9.0.x-dev",
+ "v8.3": "8.3.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "OTPHP\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Florent Morselli",
+ "homepage": "https://github.com/Spomky"
+ },
+ {
+ "name": "All contributors",
+ "homepage": "https://github.com/Spomky-Labs/otphp/contributors"
+ }
+ ],
+ "description": "A PHP library for generating one time passwords according to RFC 4226 (HOTP Algorithm) and the RFC 6238 (TOTP Algorithm) and compatible with Google Authenticator",
+ "homepage": "https://github.com/Spomky-Labs/otphp",
+ "keywords": [
+ "FreeOTP",
+ "RFC 4226",
+ "RFC 6238",
+ "google authenticator",
+ "hotp",
+ "otp",
+ "totp"
+ ],
+ "support": {
+ "issues": "https://github.com/Spomky-Labs/otphp/issues",
+ "source": "https://github.com/Spomky-Labs/otphp/tree/v10.0.1"
+ },
+ "install-path": "../spomky-labs/otphp"
+ },
+ {
+ "name": "thecodingmachine/safe",
+ "version": "v1.3.3",
+ "version_normalized": "1.3.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thecodingmachine/safe.git",
+ "reference": "a8ab0876305a4cdaef31b2350fcb9811b5608dbc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/a8ab0876305a4cdaef31b2350fcb9811b5608dbc",
+ "reference": "a8ab0876305a4cdaef31b2350fcb9811b5608dbc",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^0.12",
+ "squizlabs/php_codesniffer": "^3.2",
+ "thecodingmachine/phpstan-strict-rules": "^0.12"
+ },
+ "time": "2020-10-28T17:51:34+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "0.1-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Safe\\": [
+ "lib/",
+ "deprecated/",
+ "generated/"
+ ]
+ },
+ "files": [
+ "deprecated/apc.php",
+ "deprecated/libevent.php",
+ "deprecated/mssql.php",
+ "deprecated/stats.php",
+ "lib/special_cases.php",
+ "generated/apache.php",
+ "generated/apcu.php",
+ "generated/array.php",
+ "generated/bzip2.php",
+ "generated/calendar.php",
+ "generated/classobj.php",
+ "generated/com.php",
+ "generated/cubrid.php",
+ "generated/curl.php",
+ "generated/datetime.php",
+ "generated/dir.php",
+ "generated/eio.php",
+ "generated/errorfunc.php",
+ "generated/exec.php",
+ "generated/fileinfo.php",
+ "generated/filesystem.php",
+ "generated/filter.php",
+ "generated/fpm.php",
+ "generated/ftp.php",
+ "generated/funchand.php",
+ "generated/gmp.php",
+ "generated/gnupg.php",
+ "generated/hash.php",
+ "generated/ibase.php",
+ "generated/ibmDb2.php",
+ "generated/iconv.php",
+ "generated/image.php",
+ "generated/imap.php",
+ "generated/info.php",
+ "generated/ingres-ii.php",
+ "generated/inotify.php",
+ "generated/json.php",
+ "generated/ldap.php",
+ "generated/libxml.php",
+ "generated/lzf.php",
+ "generated/mailparse.php",
+ "generated/mbstring.php",
+ "generated/misc.php",
+ "generated/msql.php",
+ "generated/mysql.php",
+ "generated/mysqli.php",
+ "generated/mysqlndMs.php",
+ "generated/mysqlndQc.php",
+ "generated/network.php",
+ "generated/oci8.php",
+ "generated/opcache.php",
+ "generated/openssl.php",
+ "generated/outcontrol.php",
+ "generated/password.php",
+ "generated/pcntl.php",
+ "generated/pcre.php",
+ "generated/pdf.php",
+ "generated/pgsql.php",
+ "generated/posix.php",
+ "generated/ps.php",
+ "generated/pspell.php",
+ "generated/readline.php",
+ "generated/rpminfo.php",
+ "generated/rrd.php",
+ "generated/sem.php",
+ "generated/session.php",
+ "generated/shmop.php",
+ "generated/simplexml.php",
+ "generated/sockets.php",
+ "generated/sodium.php",
+ "generated/solr.php",
+ "generated/spl.php",
+ "generated/sqlsrv.php",
+ "generated/ssdeep.php",
+ "generated/ssh2.php",
+ "generated/stream.php",
+ "generated/strings.php",
+ "generated/swoole.php",
+ "generated/uodbc.php",
+ "generated/uopz.php",
+ "generated/url.php",
+ "generated/var.php",
+ "generated/xdiff.php",
+ "generated/xml.php",
+ "generated/xmlrpc.php",
+ "generated/yaml.php",
+ "generated/yaz.php",
+ "generated/zip.php",
+ "generated/zlib.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "PHP core functions that throw exceptions instead of returning FALSE on error",
+ "support": {
+ "issues": "https://github.com/thecodingmachine/safe/issues",
+ "source": "https://github.com/thecodingmachine/safe/tree/v1.3.3"
+ },
+ "install-path": "../thecodingmachine/safe"
+ }
+ ],
+ "dev": true,
+ "dev-package-names": []
+}
diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php
new file mode 100644
index 000000000..59d40508a
--- /dev/null
+++ b/vendor/composer/installed.php
@@ -0,0 +1,106 @@
+<?php return array (
+ 'root' =>
+ array (
+ 'pretty_version' => 'dev-master',
+ 'version' => 'dev-master',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => 'f96abd2b52b9de5eac3651594ca32c6a4023c3e3',
+ 'dev-requirement' => true,
+ 'name' => '__root__',
+ ),
+ 'versions' =>
+ array (
+ '__root__' =>
+ array (
+ 'pretty_version' => 'dev-master',
+ 'version' => 'dev-master',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => 'f96abd2b52b9de5eac3651594ca32c6a4023c3e3',
+ 'dev-requirement' => false,
+ ),
+ 'beberlei/assert' =>
+ array (
+ 'pretty_version' => 'v3.2.7',
+ 'version' => '3.2.7.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => 'd63a6943fc4fd1a2aedb65994e3548715105abcf',
+ 'dev-requirement' => false,
+ ),
+ 'chillerlan/php-qrcode' =>
+ array (
+ 'pretty_version' => '3.4.0',
+ 'version' => '3.4.0.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => 'd8bf297e6843a53aeaa8f3285ce04fc349d133d6',
+ 'dev-requirement' => false,
+ ),
+ 'chillerlan/php-settings-container' =>
+ array (
+ 'pretty_version' => '1.2.1',
+ 'version' => '1.2.1.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => 'b9b0431dffd74102ee92348a63b4c33fc8ba639b',
+ 'dev-requirement' => false,
+ ),
+ 'j4mie/idiorm' =>
+ array (
+ 'pretty_version' => 'v1.5.7',
+ 'version' => '1.5.7.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => 'd23f97053ef5d0b988a02c6a71eb5c6118b2f5b4',
+ 'dev-requirement' => false,
+ ),
+ 'mervick/material-design-icons' =>
+ array (
+ 'pretty_version' => '2.2.0',
+ 'version' => '2.2.0.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '635435c8d3df3a6da3241648caf8a65d1c07cc1a',
+ 'dev-requirement' => false,
+ ),
+ 'paragonie/constant_time_encoding' =>
+ array (
+ 'pretty_version' => 'v2.4.0',
+ 'version' => '2.4.0.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => 'f34c2b11eb9d2c9318e13540a1dbc2a3afbd939c',
+ 'dev-requirement' => false,
+ ),
+ 'spomky-labs/otphp' =>
+ array (
+ 'pretty_version' => 'v10.0.1',
+ 'version' => '10.0.1.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => 'f44cce5a9db4b8da410215d992110482c931232f',
+ 'dev-requirement' => false,
+ ),
+ 'thecodingmachine/safe' =>
+ array (
+ 'pretty_version' => 'v1.3.3',
+ 'version' => '1.3.3.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => 'a8ab0876305a4cdaef31b2350fcb9811b5608dbc',
+ 'dev-requirement' => false,
+ ),
+ ),
+);
diff --git a/vendor/composer/platform_check.php b/vendor/composer/platform_check.php
new file mode 100644
index 000000000..589e9e770
--- /dev/null
+++ b/vendor/composer/platform_check.php
@@ -0,0 +1,26 @@
+<?php
+
+// platform_check.php @generated by Composer
+
+$issues = array();
+
+if (!(PHP_VERSION_ID >= 70200)) {
+ $issues[] = 'Your Composer dependencies require a PHP version ">= 7.2.0". You are running ' . PHP_VERSION . '.';
+}
+
+if ($issues) {
+ if (!headers_sent()) {
+ header('HTTP/1.1 500 Internal Server Error');
+ }
+ if (!ini_get('display_errors')) {
+ if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
+ fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL);
+ } elseif (!headers_sent()) {
+ echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL;
+ }
+ }
+ trigger_error(
+ 'Composer detected issues in your platform: ' . implode(' ', $issues),
+ E_USER_ERROR
+ );
+}
diff --git a/vendor/j4mie/idiorm/CONTRIBUTING.md b/vendor/j4mie/idiorm/CONTRIBUTING.md
new file mode 100644
index 000000000..914737217
--- /dev/null
+++ b/vendor/j4mie/idiorm/CONTRIBUTING.md
@@ -0,0 +1,16 @@
+---
+### Feature complete
+
+Idiorm is now considered to be feature complete as of version 1.5.0. Whilst it will continue to be maintained with bug fixes there will be no further new features added.
+
+**Please do not submit feature requests or pull requests adding new features as they will be closed without ceremony.**
+
+---
+
+When making a pull request please include the following aspects:
+
+- Update the changelog in the README.markdown file to include details of the pull request
+- If the documentation in the README or Sphinx docs needs to be amended please do so in the pull request
+- Include unit tests for any changes - if it is a bug include at least one regression test
+
+
diff --git a/vendor/j4mie/idiorm/README.markdown b/vendor/j4mie/idiorm/README.markdown
new file mode 100644
index 000000000..eebb1a2d0
--- /dev/null
+++ b/vendor/j4mie/idiorm/README.markdown
@@ -0,0 +1,239 @@
+Idiorm
+======
+
+[![Build Status](https://travis-ci.org/j4mie/idiorm.png?branch=master)](https://travis-ci.org/j4mie/idiorm) [![Latest Stable Version](https://poser.pugx.org/j4mie/idiorm/v/stable.png)](https://packagist.org/packages/j4mie/idiorm) [![Total Downloads](https://poser.pugx.org/j4mie/idiorm/downloads.png)](https://packagist.org/packages/j4mie/idiorm) [![Code Climate](https://codeclimate.com/github/j4mie/idiorm/badges/gpa.svg)](https://codeclimate.com/github/j4mie/idiorm)
+
+[http://j4mie.github.com/idiormandparis/](http://j4mie.github.com/idiormandparis/)
+
+---
+### Feature/API complete
+
+Idiorm is now considered to be feature complete as of version 1.5.0. Whilst it will continue to be maintained with bug fixes there will be no further new features added from this point on. This means that if a pull request makes breaking changes to the API or requires anything other than a patch version bump of the library then it will not be merged.
+
+**Please do not submit feature requests or API breaking changes as they will be closed without ceremony.**
+
+---
+
+A lightweight nearly-zero-configuration object-relational mapper and fluent query builder for PHP5 and above.
+
+Tested on PHP 5.2.0+ - may work on earlier versions with PDO and the correct database drivers.
+
+Released under a [BSD license](http://en.wikipedia.org/wiki/BSD_licenses).
+
+**See Also: [Paris](http://github.com/j4mie/paris), an Active Record implementation built on top of Idiorm.**
+
+Features
+--------
+
+* Makes simple queries and simple CRUD operations completely painless.
+* Gets out of the way when more complex SQL is required.
+* Built on top of [PDO](http://php.net/pdo).
+* Uses [prepared statements](http://uk.php.net/manual/en/pdo.prepared-statements.php) throughout to protect against [SQL injection](http://en.wikipedia.org/wiki/SQL_injection) attacks.
+* Requires no model classes, no XML configuration and no code generation: works out of the box, given only a connection string.
+* Consists of one main class called `ORM`. Additional classes are prefixed with `Idiorm`. Minimal global namespace pollution.
+* Database agnostic. Currently supports SQLite, MySQL, Firebird and PostgreSQL. May support others, please give it a try!
+* Supports collections of models with method chaining to filter or apply actions to multiple results at once.
+* Multiple connections supported
+* PSR-1 compliant methods (any method can be called in camelCase instead of underscores eg. `find_many()` becomes `findMany()`) - you'll need PHP 5.3+
+
+Documentation
+-------------
+
+The documentation is hosted on Read the Docs: [idiorm.rtfd.org](http://idiorm.rtfd.org)
+
+### Building the Docs ###
+
+You will need to install [Sphinx](http://sphinx-doc.org/) and then in the docs folder run:
+
+ make html
+
+The documentation will now be in docs/_build/html/index.html
+
+Let's See Some Code
+-------------------
+
+```php
+$user = ORM::for_table('user')
+ ->where_equal('username', 'j4mie')
+ ->find_one();
+
+$user->first_name = 'Jamie';
+$user->save();
+
+$tweets = ORM::for_table('tweet')
+ ->select('tweet.*')
+ ->join('user', array(
+ 'user.id', '=', 'tweet.user_id'
+ ))
+ ->where_equal('user.username', 'j4mie')
+ ->find_many();
+
+foreach ($tweets as $tweet) {
+ echo $tweet->text;
+}
+```
+
+Tests
+-----
+
+Tests are written with PHPUnit and be run through composer
+
+ composer test
+
+To make testing on PHP 5.2 (Idiorm maintains support back to this version of PHP) there
+is a Docker setup in `./test/docker_for_php52` - check the readme in there for more.
+
+Changelog
+---------
+
+#### 1.5.7 - released 2020-04-29
+
+* Fix argument order in call to join() [[CatalinFrancu](https://github.com/CatalinFrancu)] - [issue #357](https://github.com/j4mie/idiorm/pull/357)
+
+#### 1.5.6 - released 2018-05-31
+
+* Assign `null` to `self::$_db` on `reset_db()` to ensure PDO closes the connections [[bleakgadfly](https://github.com/bleakgadfly)] - [issue #338](https://github.com/j4mie/idiorm/issues/338)
+
+#### 1.5.5 - released 2018-01-05
+
+* Add a docker setup for testing with PHP 5.2 (uses PHPUnit 3.6.12, which is the last version released compatible with PHP 5.2) [[Treffynnon](https://github.com/treffynnon)]
+
+#### 1.5.4 - released 2018-01-04
+
+* Reset Idiorm state when a cached result is returned [[fayland](https://github.com/fayland) (and [Treffynnon](https://github.com/treffynnon))] - [issue #319](https://github.com/j4mie/idiorm/issues/319)
+* Fix travis builds for PHP 5.2+ (adding 7.0 and 7.1) and document support for newer PHP versions [[Treffynnon](https://github.com/treffynnon)]
+* Correct PHPDoc comments for `selectMany()` [[kawausokun](https://github.com/kawausokun)] - [issue #325](github.com/j4mie/idiorm/issues/325)
+* Add pdo_sqlite to the composer require-dev dependencies [[qyanu](https://github.com/qyanu)] - [issue #328](github.com/j4mie/idiorm/issues/328)
+
+#### 1.5.3 - released 2017-03-21
+
+* Document the `raw_execute()` method and add a note for `get_db()` in the querying documentation - [[Treffynnon](https://github.com/treffynnon)]
+
+#### 1.5.2 - released 2016-12-14
+
+* Fix autoincremented compound keys inserts [[lrlopez](https://github.com/lrlopez)] - [issue #233](https://github.com/j4mie/idiorm/issues/233) and [pull #235](https://github.com/j4mie/idiorm/pull/235)
+* Add @method tags for magic methods [[stellis](https://github.com/stellis)] - [issue #237](https://github.com/j4mie/idiorm/issues/237)
+* Ensure `is_dirty()` returns correctly when fed null or an empty string [[tentwofour](https://github.com/tentwofour)] - [issue #268](https://github.com/j4mie/idiorm/issues/268)
+* Adding Code Climate badge to the readme file [[e3betht](https://github.com/e3betht)] - [issue #260](https://github.com/j4mie/idiorm/issues/260)
+* Typo in navigation [[leongersen](https://github.com/leongersen)] - [issue #257](https://github.com/j4mie/idiorm/issues/257)
+* Support named placeholders logging and test [[m92o](https://github.com/m92o)] - [issue #223](https://github.com/j4mie/idiorm/issues/223)
+* `having_id_is()` reference undefined variable `$value` [[Treffynnon](https://github.com/treffynnon)] - [issue #224](https://github.com/j4mie/idiorm/issues/224)
+* Documentation fix - ORM query output for `where_any_is()` [[uovidiu](https://github.com/uovidiu)] - [issue #306](https://github.com/j4mie/idiorm/issues/306)
+* Code style fix preventing nested loops from using the same variable names [[mkkeck](https://github.com/mkkeck)] - [issue #301](https://github.com/j4mie/idiorm/issues/301)
+* Document shortcomings of the built in query logger [[Treffynnon](https://github.com/treffynnon)] - [issue #307](https://github.com/j4mie/idiorm/issues/307)
+* Add phpunit to dev dependencies, add `composer test` script shortcut and fix PDO mock in test bootstrap [[Treffynnon](https://github.com/treffynnon)]
+* New test for multiple raw where clauses [[Treffynnon](https://github.com/treffynnon)] - [issue #236](https://github.com/j4mie/idiorm/issues/236)
+* Remove PHP 5.2 from travis-ci containers to test against (**note** Idiorm still supports PHP 5.2 despite this) [[Treffynnon](https://github.com/treffynnon)]
+
+#### 1.5.1 - released 2014-06-23
+
+* Binding of named parameters was broken [[cainmi](https://github.com/cainmi)] - [issue #221](https://github.com/j4mie/idiorm/pull/221)
+
+#### 1.5.0 - released 2014-06-22
+
+* Multiple OR'ed conditions support [[lrlopez](https://github.com/lrlopez)] - [issue #201](https://github.com/j4mie/idiorm/issues/201)
+* `where_id_in()` for selecting multiple records by primary key [[lrlopez](https://github.com/lrlopez)] - [issue #202](https://github.com/j4mie/idiorm/issues/202)
+* Add compound primary key support [[lrlopez](https://github.com/lrlopez)] - [issue #171](https://github.com/j4mie/idiorm/issues/171)
+* Add a RAW JOIN source to the query [[moiseevigor](https://github.com/moiseevigor)] - [issue #163](https://github.com/j4mie/idiorm/issues/163)
+* offsetExists() should return true for null values, resolves [#181](https://github.com/j4mie/idiorm/issues/181) [[cainmi](https://github.com/cainmi)] - [issue #214](https://github.com/j4mie/idiorm/pull/214)
+* Custom cache callback functions [[peter-mw](https://github.com/peter-mw)] - [issue #216](https://github.com/j4mie/idiorm/pull/216)
+* Restrict null primary keys on update/delete, resolves [#203](https://github.com/j4mie/idiorm/issues/203) [[cainmi](https://github.com/cainmi)] - [issue #205](https://github.com/j4mie/idiorm/issues/205)
+* Ensure parameters treated by type correctly [[charsleysa](https://github.com/charsleysa)] & [[SneakyBobito](https://github.com/SneakyBobito)] - [issue #206](https://github.com/j4mie/idiorm/issues/206) & [issue #208](https://github.com/j4mie/idiorm/issues/208)
+* Reduce the type casting on aggregate functions to allow characters [[herroffizier](https://github.com/herroffizier)] - [issue #150](https://github.com/j4mie/idiorm/issues/150)
+* Prevent invalid method calls from triggering infinite recursion [[michaelward82](https://github.com/michaelward82)] - [issue #152](https://github.com/j4mie/idiorm/issues/152)
+* Add time to query logging - adds query time parameter to external logger callback function [[AgelxNash](https://github.com/AgelxNash)] - [issue #180](https://github.com/j4mie/idiorm/issues/180)
+* Changed database array access to ensure it's always properly setup [[falmp](https://github.com/falmp)] - [issue #159](https://github.com/j4mie/idiorm/issues/159)
+* Allow unsetting the db (`ORM::set_db(null)`) to make the test work again [[borrel](https://github.com/borrel)] - [issue #160](https://github.com/j4mie/idiorm/issues/160)
+* Correct [issue #176](https://github.com/j4mie/idiorm/issues/176): Ensure database setup before building select [[kendru](https://github.com/kendru)] - [issue #197](https://github.com/j4mie/idiorm/issues/197)
+* Add HHVM to travis-ci build matrix [[ptarjan](https://github.com/ptarjan)] - [issue #168](https://github.com/j4mie/idiorm/issues/168)
+* Improve where statement precendence documentation [[thomasahle](https://github.com/thomasahle)] - [issue #190](https://github.com/j4mie/idiorm/issues/190)
+* Improve testing checks [[charsleysa](https://github.com/charsleysa)] - [issue #173](https://github.com/j4mie/idiorm/issues/173)
+
+#### 1.4.1 - released 2013-12-12
+
+**Patch update to remove a broken pull request** - may have consequences for users of 1.4.0 that exploited the "`find_many()` now returns an associative array with the databases primary ID as the array keys" change that was merged in 1.4.0.
+
+* Back out pull request/issue [#133](https://github.com/j4mie/idiorm/pull/133) as it breaks backwards compatibility in previously unexpected ways (see [#162](https://github.com/j4mie/idiorm/pull/162), [#156](https://github.com/j4mie/idiorm/issues/156) and [#133](https://github.com/j4mie/idiorm/pull/133#issuecomment-29063108)) - sorry for merging this change into Idiorm - closes [issue 156](https://github.com/j4mie/idiorm/issues/156)
+
+#### 1.4.0 - released 2013-09-05
+
+* `find_many()` now returns an associative array with the databases primary ID as the array keys [[Surt](https://github.com/Surt)] - [issue #133](https://github.com/j4mie/idiorm/issues/133)
+* Calls to `set()` and `set_expr()` return `$this` allowing them to be chained [[Surt](https://github.com/Surt)]
+* Add PSR-1 compliant camelCase method calls to Idiorm (PHP 5.3+ required) [[crhayes](https://github.com/crhayes)] - [issue #108](https://github.com/j4mie/idiorm/issues/108)
+* Add static method `get_config()` to access current configuration [[javierd](https://github.com/mikejestes)] - [issue #141](https://github.com/j4mie/idiorm/issues/141)
+* Add logging callback functionality [[lalop](https://github.com/lalop)] - [issue #130](https://github.com/j4mie/idiorm/issues/130)
+* Add support for MS SQL ``TOP`` limit style (automatically used for PDO drivers: sqlsrv, dblib and mssql) [[numkem](https://github.com/numkem)] - [issue #116](https://github.com/j4mie/idiorm/issues/116)
+* Uses table aliases in `WHERE` clauses [[vicvicvic](https://github.com/vicvicvic)] - [issue #140](https://github.com/j4mie/idiorm/issues/140)
+* Ignore result columns when calling an aggregate function [[tassoevan](https://github.com/tassoevan)] - [issue #120](https://github.com/j4mie/idiorm/issues/120)
+* Improve documentation [[bruston](https://github.com/bruston)] - [issue #111](https://github.com/j4mie/idiorm/issues/111)
+* Improve PHPDoc on `get_db()` [[mailopl](https://github.com/mailopl)] - [issue #106](https://github.com/j4mie/idiorm/issues/106)
+* Improve documentation [[sjparsons](https://github.com/sjparsons)] - [issue #103](https://github.com/j4mie/idiorm/issues/103)
+* Make tests/bootstrap.php HHVM compatible [[JoelMarcey](https://github.com/JoelMarcey)] - [issue #143](https://github.com/j4mie/idiorm/issues/143)
+* Fix docblock [[ulrikjohansson](https://github.com/ulrikjohansson)] - [issue #147](https://github.com/j4mie/idiorm/issues/147)
+* Fix incorrect variable name in querying documentation [[fridde](https://github.com/fridde)] - [issue #146](https://github.com/j4mie/idiorm/issues/146)
+
+#### 1.3.0 - released 2013-01-31
+
+* Documentation moved to [idiorm.rtfd.org](http://idiorm.rtfd.org) and now built using [Sphinx](http://sphinx-doc.org/)
+* Add support for multiple database connections - closes [issue #15](https://github.com/j4mie/idiorm/issues/15) [[tag](https://github.com/tag)]
+* Add in raw_execute - closes [issue #40](https://github.com/j4mie/idiorm/issues/40) [[tag](https://github.com/tag)]
+* Add `get_last_statement()` - closes [issue #84](https://github.com/j4mie/idiorm/issues/84) [[tag](https://github.com/tag)]
+* Add HAVING clause functionality - closes [issue #50](https://github.com/j4mie/idiorm/issues/50)
+* Add `is_new` method - closes [issue #85](https://github.com/j4mie/idiorm/issues/85)
+* Add `ArrayAccess` support to the model instances allowing property access via `$model['field']` as well as `$model->field` - [issue #51](https://github.com/j4mie/idiorm/issues/51)
+* Add a result set object for collections of models that can support method chains to filter or apply actions to multiple results at once - issue [#51](https://github.com/j4mie/idiorm/issues/51) and [#22](https://github.com/j4mie/idiorm/issues/22)
+* Add support for [Firebird](http://www.firebirdsql.org) with `ROWS` and `TO` result set limiting and identifier quoting [[mapner](https://github.com/mapner)] - [issue #98](https://github.com/j4mie/idiorm/issues/98)
+* Fix last insert ID for PostgreSQL using RETURNING - closes issues [#62](https://github.com/j4mie/idiorm/issues/62) and [#89](https://github.com/j4mie/idiorm/issues/89) [[laacz](https://github.com/laacz)]
+* Reset Idiorm after performing a query to allow for calling `count()` and then `find_many()` [[fayland](https://github.com/fayland)] - [issue #97](https://github.com/j4mie/idiorm/issues/97)
+* Change Composer to use a classmap so that autoloading is better supported [[javierd](https://github.com/javiervd)] - [issue #96](https://github.com/j4mie/idiorm/issues/96)
+* Add query logging to `delete_many` [[tag](https://github.com/tag)]
+* Fix when using `set_expr` alone it doesn't trigger query creation - closes [issue #90](https://github.com/j4mie/idiorm/issues/90)
+* Escape quote symbols in "_quote_identifier_part" - close [issue #74](https://github.com/j4mie/idiorm/issues/74)
+* Fix issue with aggregate functions always returning `int` when is `float` sometimes required - closes [issue #92](https://github.com/j4mie/idiorm/issues/92)
+* Move testing into PHPUnit to unify method testing and query generation testing
+
+#### 1.2.3 - released 2012-11-28
+
+* Fix [issue #78](https://github.com/j4mie/idiorm/issues/78) - remove use of PHP 5.3 static call
+
+#### 1.2.2 - released 2012-11-15
+
+* Fix bug where input parameters were sent as part-indexed, part associative
+
+#### 1.2.1 - released 2012-11-15
+
+* Fix minor bug caused by IdiormStringException not extending Exception
+
+#### 1.2.0 - released 2012-11-14
+
+* Setup composer for installation via packagist (j4mie/idiorm)
+* Add `order_by_expr` method [[sandermarechal](http://github.com/sandermarechal)]
+* Add support for raw queries without parameters argument [[sandermarechal](http://github.com/sandermarechal)]
+* Add support to set multiple properties at once by passing an associative array to `set` method [[sandermarechal](http://github.com/sandermarechal)]
+* Allow an associative array to be passed to `configure` method [[jordanlev](http://github.com/jordanlev)]
+* Patch to allow empty Paris models to be saved ([[j4mie/paris](http://github.com/j4mie/paris)]) - [issue #58](https://github.com/j4mie/idiorm/issues/58)
+* Add `select_many` and `select_many_expr` - closing issues [#49](https://github.com/j4mie/idiorm/issues/49) and [#69](https://github.com/j4mie/idiorm/issues/69)
+* Add support for `MIN`, `AVG`, `MAX` and `SUM` - closes [issue #16](https://github.com/j4mie/idiorm/issues/16)
+* Add `group_by_expr` - closes [issue #24](https://github.com/j4mie/idiorm/issues/24)
+* Add `set_expr` to allow database expressions to be set as ORM properties - closes issues [#59](https://github.com/j4mie/idiorm/issues/59) and [#43](https://github.com/j4mie/idiorm/issues/43) [[brianherbert](https://github.com/brianherbert)]
+* Prevent ambiguous column names when joining tables - [issue #66](https://github.com/j4mie/idiorm/issues/66) [[hellogerard](https://github.com/hellogerard)]
+* Add `delete_many` method [[CBeerta](https://github.com/CBeerta)]
+* Allow unsetting of ORM parameters [[CBeerta](https://github.com/CBeerta)]
+* Add `find_array` to get the records as associative arrays [[Surt](https://github.com/Surt)] - closes [issue #17](https://github.com/j4mie/idiorm/issues/17)
+* Fix bug in `_log_query` with `?` and `%` supplied in raw where statements etc. - closes [issue #57](https://github.com/j4mie/idiorm/issues/57) [[ridgerunner](https://github.com/ridgerunner)]
+
+#### 1.1.1 - released 2011-01-30
+
+* Fix bug in quoting column wildcard. j4mie/paris#12
+* Small documentation improvements
+
+#### 1.1.0 - released 2011-01-24
+
+* Add `is_dirty` method
+* Add basic query caching
+* Add `distinct` method
+* Add `group_by` method
+
+#### 1.0.0 - released 2010-12-01
+
+* Initial release
diff --git a/vendor/j4mie/idiorm/composer.json b/vendor/j4mie/idiorm/composer.json
new file mode 100644
index 000000000..8e19087ba
--- /dev/null
+++ b/vendor/j4mie/idiorm/composer.json
@@ -0,0 +1,49 @@
+{
+ "name": "j4mie/idiorm",
+ "type": "library",
+ "description": "A lightweight nearly-zero-configuration object-relational mapper and fluent query builder for PHP5",
+ "keywords": ["idiorm", "orm", "query builder"],
+ "homepage": "http://j4mie.github.com/idiormandparis",
+ "support": {
+ "issues": "https://github.com/j4mie/idiorm/issues",
+ "source": "https://github.com/j4mie/idiorm"
+ },
+ "authors": [
+ {
+ "name": "Jamie Matthews",
+ "email": "[email protected]",
+ "homepage": "http://j4mie.org",
+ "role": "Developer"
+ },
+ {
+ "name": "Simon Holywell",
+ "email": "[email protected]",
+ "homepage": "http://simonholywell.com",
+ "role": "Maintainer"
+ },
+ {
+ "name": "Durham Hale",
+ "email": "[email protected]",
+ "homepage": "http://durhamhale.com",
+ "role": "Maintainer"
+ }
+ ],
+ "scripts": {
+ "test": "phpunit -c ./phpunit.xml"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8",
+ "ext-pdo_sqlite": "*"
+ },
+ "license": [
+ "BSD-2-Clause",
+ "BSD-3-Clause",
+ "BSD-4-Clause"
+ ],
+ "require": {
+ "php": ">=5.2.0"
+ },
+ "autoload": {
+ "classmap": ["idiorm.php"]
+ }
+}
diff --git a/vendor/j4mie/idiorm/demo.php b/vendor/j4mie/idiorm/demo.php
new file mode 100644
index 000000000..771f48a2e
--- /dev/null
+++ b/vendor/j4mie/idiorm/demo.php
@@ -0,0 +1,81 @@
+<?php
+
+ // ------------------- //
+ // --- Idiorm Demo --- //
+ // ------------------- //
+
+ // Note: This is just about the simplest database-driven webapp it's possible to create
+ // and is designed only for the purpose of demonstrating how Idiorm works.
+
+ // In case it's not obvious: this is not the correct way to build web applications!
+
+ // Require the idiorm file
+ require_once("idiorm.php");
+
+ // Connect to the demo database file
+ ORM::configure('sqlite:./demo.sqlite');
+
+ // This grabs the raw database connection from the ORM
+ // class and creates the table if it doesn't already exist.
+ // Wouldn't normally be needed if the table is already there.
+ $db = ORM::get_db();
+ $db->exec("
+ CREATE TABLE IF NOT EXISTS contact (
+ id INTEGER PRIMARY KEY,
+ name TEXT,
+ email TEXT
+ );"
+ );
+
+ // Handle POST submission
+ if (!empty($_POST)) {
+
+ // Create a new contact object
+ $contact = ORM::for_table('contact')->create();
+
+ // SHOULD BE MORE ERROR CHECKING HERE!
+
+ // Set the properties of the object
+ $contact->name = $_POST['name'];
+ $contact->email = $_POST['email'];
+
+ // Save the object to the database
+ $contact->save();
+
+ // Redirect to self.
+ header('Location: ' . basename(__FILE__));
+ exit;
+ }
+
+ // Get a list of all contacts from the database
+ $count = ORM::for_table('contact')->count();
+ $contact_list = ORM::for_table('contact')->find_many();
+?>
+
+<html>
+ <head>
+ <title>Idiorm Demo</title>
+ </head>
+
+ <body>
+
+ <h1>Idiorm Demo</h1>
+
+ <h2>Contact List (<?php echo $count; ?> contacts)</h2>
+ <ul>
+ <?php foreach ($contact_list as $contact): ?>
+ <li>
+ <strong><?php echo $contact->name ?></strong>
+ <a href="mailto:<?php echo $contact->email; ?>"><?php echo $contact->email; ?></a>
+ </li>
+ <?php endforeach; ?>
+ </ul>
+
+ <form method="post" action="">
+ <h2>Add Contact</h2>
+ <p><label for="name">Name:</label> <input type="text" name="name" /></p>
+ <p><label for="email">Email:</label> <input type="email" name="email" /></p>
+ <input type="submit" value="Create" />
+ </form>
+ </body>
+</html>
diff --git a/vendor/j4mie/idiorm/docs/Makefile b/vendor/j4mie/idiorm/docs/Makefile
new file mode 100644
index 000000000..4dbea877c
--- /dev/null
+++ b/vendor/j4mie/idiorm/docs/Makefile
@@ -0,0 +1,153 @@
+# Makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line.
+SPHINXOPTS =
+SPHINXBUILD = sphinx-build
+PAPER =
+BUILDDIR = _build
+
+# Internal variables.
+PAPEROPT_a4 = -D latex_paper_size=a4
+PAPEROPT_letter = -D latex_paper_size=letter
+ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
+# the i18n builder cannot share the environment and doctrees with the others
+I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
+
+.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
+
+help:
+ @echo "Please use \`make <target>' where <target> is one of"
+ @echo " html to make standalone HTML files"
+ @echo " dirhtml to make HTML files named index.html in directories"
+ @echo " singlehtml to make a single large HTML file"
+ @echo " pickle to make pickle files"
+ @echo " json to make JSON files"
+ @echo " htmlhelp to make HTML files and a HTML help project"
+ @echo " qthelp to make HTML files and a qthelp project"
+ @echo " devhelp to make HTML files and a Devhelp project"
+ @echo " epub to make an epub"
+ @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
+ @echo " latexpdf to make LaTeX files and run them through pdflatex"
+ @echo " text to make text files"
+ @echo " man to make manual pages"
+ @echo " texinfo to make Texinfo files"
+ @echo " info to make Texinfo files and run them through makeinfo"
+ @echo " gettext to make PO message catalogs"
+ @echo " changes to make an overview of all changed/added/deprecated items"
+ @echo " linkcheck to check all external links for integrity"
+ @echo " doctest to run all doctests embedded in the documentation (if enabled)"
+
+clean:
+ -rm -rf $(BUILDDIR)/*
+
+html:
+ $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
+ @echo
+ @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
+
+dirhtml:
+ $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
+ @echo
+ @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
+
+singlehtml:
+ $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
+ @echo
+ @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
+
+pickle:
+ $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
+ @echo
+ @echo "Build finished; now you can process the pickle files."
+
+json:
+ $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
+ @echo
+ @echo "Build finished; now you can process the JSON files."
+
+htmlhelp:
+ $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
+ @echo
+ @echo "Build finished; now you can run HTML Help Workshop with the" \
+ ".hhp project file in $(BUILDDIR)/htmlhelp."
+
+qthelp:
+ $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
+ @echo
+ @echo "Build finished; now you can run "qcollectiongenerator" with the" \
+ ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
+ @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Idiorm.qhcp"
+ @echo "To view the help file:"
+ @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Idiorm.qhc"
+
+devhelp:
+ $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
+ @echo
+ @echo "Build finished."
+ @echo "To view the help file:"
+ @echo "# mkdir -p $$HOME/.local/share/devhelp/Idiorm"
+ @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Idiorm"
+ @echo "# devhelp"
+
+epub:
+ $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
+ @echo
+ @echo "Build finished. The epub file is in $(BUILDDIR)/epub."
+
+latex:
+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+ @echo
+ @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
+ @echo "Run \`make' in that directory to run these through (pdf)latex" \
+ "(use \`make latexpdf' here to do that automatically)."
+
+latexpdf:
+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+ @echo "Running LaTeX files through pdflatex..."
+ $(MAKE) -C $(BUILDDIR)/latex all-pdf
+ @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
+
+text:
+ $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
+ @echo
+ @echo "Build finished. The text files are in $(BUILDDIR)/text."
+
+man:
+ $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
+ @echo
+ @echo "Build finished. The manual pages are in $(BUILDDIR)/man."
+
+texinfo:
+ $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
+ @echo
+ @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
+ @echo "Run \`make' in that directory to run these through makeinfo" \
+ "(use \`make info' here to do that automatically)."
+
+info:
+ $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
+ @echo "Running Texinfo files through makeinfo..."
+ make -C $(BUILDDIR)/texinfo info
+ @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
+
+gettext:
+ $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
+ @echo
+ @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
+
+changes:
+ $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
+ @echo
+ @echo "The overview file is in $(BUILDDIR)/changes."
+
+linkcheck:
+ $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
+ @echo
+ @echo "Link check complete; look for any errors in the above output " \
+ "or in $(BUILDDIR)/linkcheck/output.txt."
+
+doctest:
+ $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
+ @echo "Testing of doctests in the sources finished, look at the " \
+ "results in $(BUILDDIR)/doctest/output.txt."
diff --git a/vendor/j4mie/idiorm/docs/conf.py b/vendor/j4mie/idiorm/docs/conf.py
new file mode 100644
index 000000000..87e17925f
--- /dev/null
+++ b/vendor/j4mie/idiorm/docs/conf.py
@@ -0,0 +1,242 @@
+# -*- coding: utf-8 -*-
+#
+# Idiorm documentation build configuration file, created by
+# sphinx-quickstart on Wed Nov 28 15:39:16 2012.
+#
+# This file is execfile()d with the current directory set to its containing dir.
+#
+# Note that not all possible configuration values are present in this
+# autogenerated file.
+#
+# All configuration values have a default; values that are commented out
+# serve to show the default.
+
+import sys, os
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#sys.path.insert(0, os.path.abspath('.'))
+
+# -- General configuration -----------------------------------------------------
+
+# If your documentation needs a minimal Sphinx version, state it here.
+#needs_sphinx = '1.0'
+
+# Add any Sphinx extension module names here, as strings. They can be extensions
+# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
+extensions = []
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# The suffix of source filenames.
+source_suffix = '.rst'
+
+# The encoding of source files.
+#source_encoding = 'utf-8-sig'
+
+# The master toctree document.
+master_doc = 'index'
+
+# General information about the project.
+project = u'Idiorm'
+copyright = u'2014, Jamie Matthews and Simon Holywell'
+
+# The version info for the project you're documenting, acts as replacement for
+# |version| and |release|, also used in various other places throughout the
+# built documents.
+#
+# The short X.Y version.
+version = ''
+# The full version, including alpha/beta/rc tags.
+release = ''
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+#language = None
+
+# There are two options for replacing |today|: either, you set today to some
+# non-false value, then it is used:
+#today = ''
+# Else, today_fmt is used as the format for a strftime call.
+#today_fmt = '%B %d, %Y'
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+exclude_patterns = ['_build']
+
+# The reST default role (used for this markup: `text`) to use for all documents.
+#default_role = None
+
+# If true, '()' will be appended to :func: etc. cross-reference text.
+#add_function_parentheses = True
+
+# If true, the current module name will be prepended to all description
+# unit titles (such as .. function::).
+#add_module_names = True
+
+# If true, sectionauthor and moduleauthor directives will be shown in the
+# output. They are ignored by default.
+#show_authors = False
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = 'sphinx'
+
+# A list of ignored prefixes for module index sorting.
+#modindex_common_prefix = []
+
+
+# -- Options for HTML output ---------------------------------------------------
+
+# The theme to use for HTML and HTML Help pages. See the documentation for
+# a list of builtin themes.
+html_theme = 'default'
+
+# Theme options are theme-specific and customize the look and feel of a theme
+# further. For a list of options available for each theme, see the
+# documentation.
+#html_theme_options = {}
+
+# Add any paths that contain custom themes here, relative to this directory.
+#html_theme_path = []
+
+# The name for this set of Sphinx documents. If None, it defaults to
+# "<project> v<release> documentation".
+#html_title = None
+
+# A shorter title for the navigation bar. Default is the same as html_title.
+#html_short_title = None
+
+# The name of an image file (relative to this directory) to place at the top
+# of the sidebar.
+#html_logo = None
+
+# The name of an image file (within the static path) to use as favicon of the
+# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
+# pixels large.
+#html_favicon = None
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
+
+# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
+# using the given strftime format.
+#html_last_updated_fmt = '%b %d, %Y'
+
+# If true, SmartyPants will be used to convert quotes and dashes to
+# typographically correct entities.
+#html_use_smartypants = True
+
+# Custom sidebar templates, maps document names to template names.
+#html_sidebars = {}
+
+# Additional templates that should be rendered to pages, maps page names to
+# template names.
+#html_additional_pages = {}
+
+# If false, no module index is generated.
+#html_domain_indices = True
+
+# If false, no index is generated.
+#html_use_index = True
+
+# If true, the index is split into individual pages for each letter.
+#html_split_index = False
+
+# If true, links to the reST sources are added to the pages.
+#html_show_sourcelink = True
+
+# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
+#html_show_sphinx = True
+
+# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
+#html_show_copyright = True
+
+# If true, an OpenSearch description file will be output, and all pages will
+# contain a <link> tag referring to it. The value of this option must be the
+# base URL from which the finished HTML is served.
+#html_use_opensearch = ''
+
+# This is the file name suffix for HTML files (e.g. ".xhtml").
+#html_file_suffix = None
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'Idiormdoc'
+
+
+# -- Options for LaTeX output --------------------------------------------------
+
+latex_elements = {
+# The paper size ('letterpaper' or 'a4paper').
+#'papersize': 'letterpaper',
+
+# The font size ('10pt', '11pt' or '12pt').
+#'pointsize': '10pt',
+
+# Additional stuff for the LaTeX preamble.
+#'preamble': '',
+}
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title, author, documentclass [howto/manual]).
+latex_documents = [
+ ('index', 'Idiorm.tex', u'Idiorm Documentation',
+ u'Jamie Matthews and Simon Holywell', 'manual'),
+]
+
+# The name of an image file (relative to this directory) to place at the top of
+# the title page.
+#latex_logo = None
+
+# For "manual" documents, if this is true, then toplevel headings are parts,
+# not chapters.
+#latex_use_parts = False
+
+# If true, show page references after internal links.
+#latex_show_pagerefs = False
+
+# If true, show URL addresses after external links.
+#latex_show_urls = False
+
+# Documents to append as an appendix to all manuals.
+#latex_appendices = []
+
+# If false, no module index is generated.
+#latex_domain_indices = True
+
+
+# -- Options for manual page output --------------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+ ('index', 'idiorm', u'Idiorm Documentation',
+ [u'Jamie Matthews and Simon Holywell'], 1)
+]
+
+# If true, show URL addresses after external links.
+#man_show_urls = False
+
+
+# -- Options for Texinfo output ------------------------------------------------
+
+# Grouping the document tree into Texinfo files. List of tuples
+# (source start file, target name, title, author,
+# dir menu entry, description, category)
+texinfo_documents = [
+ ('index', 'Idiorm', u'Idiorm Documentation',
+ u'Jamie Matthews and Simon Holywell', 'Idiorm', 'One line description of project.',
+ 'Miscellaneous'),
+]
+
+# Documents to append as an appendix to all manuals.
+#texinfo_appendices = []
+
+# If false, no module index is generated.
+#texinfo_domain_indices = True
+
+# How to display URL addresses: 'footnote', 'no', or 'inline'.
+#texinfo_show_urls = 'footnote'
diff --git a/vendor/j4mie/idiorm/docs/configuration.rst b/vendor/j4mie/idiorm/docs/configuration.rst
new file mode 100644
index 000000000..fb90dfa0f
--- /dev/null
+++ b/vendor/j4mie/idiorm/docs/configuration.rst
@@ -0,0 +1,378 @@
+Configuration
+=============
+
+The first thing you need to know about Idiorm is that *you don’t need to
+define any model classes to use it*. With almost every other ORM, the
+first thing to do is set up your models and map them to database tables
+(through configuration variables, XML files or similar). With Idiorm,
+you can start using the ORM straight away.
+
+Setup
+~~~~~
+
+First, ``require`` the Idiorm source file:
+
+.. code-block:: php
+
+ <?php
+ require_once 'idiorm.php';
+
+Then, pass a *Data Source Name* connection string to the ``configure``
+method of the ORM class. This is used by PDO to connect to your
+database. For more information, see the `PDO documentation`_.
+
+.. code-block:: php
+
+ <?php
+ ORM::configure('sqlite:./example.db');
+
+You may also need to pass a username and password to your database
+driver, using the ``username`` and ``password`` configuration options.
+For example, if you are using MySQL:
+
+.. code-block:: php
+
+ <?php
+ ORM::configure('mysql:host=localhost;dbname=my_database');
+ ORM::configure('username', 'database_user');
+ ORM::configure('password', 'top_secret');
+
+Also see “Configuration” section below.
+
+Configuration
+~~~~~~~~~~~~~
+
+Other than setting the DSN string for the database connection (see
+above), the ``configure`` method can be used to set some other simple
+options on the ORM class. Modifying settings involves passing a
+key/value pair to the ``configure`` method, representing the setting you
+wish to modify and the value you wish to set it to.
+
+.. code-block:: php
+
+ <?php
+ ORM::configure('setting_name', 'value_for_setting');
+
+A shortcut is provided to allow passing multiple key/value pairs at
+once.
+
+.. code-block:: php
+
+ <?php
+ ORM::configure(array(
+ 'setting_name_1' => 'value_for_setting_1',
+ 'setting_name_2' => 'value_for_setting_2',
+ 'etc' => 'etc'
+ ));
+
+Use the ``get_config`` method to read current settings.
+
+.. code-block:: php
+
+ <?php
+ $isLoggingEnabled = ORM::get_config('logging');
+ ORM::configure('logging', false);
+ // some crazy loop we don't want to log
+ ORM::configure('logging', $isLoggingEnabled);
+
+Database authentication details
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Settings: ``username`` and ``password``
+
+Some database adapters (such as MySQL) require a username and password
+to be supplied separately to the DSN string. These settings allow you to
+provide these values. A typical MySQL connection setup might look like
+this:
+
+.. code-block:: php
+
+ <?php
+ ORM::configure('mysql:host=localhost;dbname=my_database');
+ ORM::configure('username', 'database_user');
+ ORM::configure('password', 'top_secret');
+
+Or you can combine the connection setup into a single line using the
+configuration array shortcut:
+
+.. code-block:: php
+
+ <?php
+ ORM::configure(array(
+ 'connection_string' => 'mysql:host=localhost;dbname=my_database',
+ 'username' => 'database_user',
+ 'password' => 'top_secret'
+ ));
+
+Result sets
+^^^^^^^^^^^
+
+Setting: ``return_result_sets``
+
+Collections of results can be returned as an array (default) or as a result set.
+See the `find_result_set()` documentation for more information.
+
+.. code-block:: php
+
+ <?php
+ ORM::configure('return_result_sets', true); // returns result sets
+
+
+.. note::
+
+ It is recommended that you setup your projects to use result sets as they
+ are more flexible.
+
+PDO Driver Options
+^^^^^^^^^^^^^^^^^^
+
+Setting: ``driver_options``
+
+Some database adapters require (or allow) an array of driver-specific
+configuration options. This setting allows you to pass these options
+through to the PDO constructor. For more information, see `the PDO
+documentation`_. For example, to force the MySQL driver to use UTF-8 for
+the connection:
+
+.. code-block:: php
+
+ <?php
+ ORM::configure('driver_options', array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
+
+PDO Error Mode
+^^^^^^^^^^^^^^
+
+Setting: ``error_mode``
+
+This can be used to set the ``PDO::ATTR_ERRMODE`` setting on the
+database connection class used by Idiorm. It should be passed one of the
+class constants defined by PDO. For example:
+
+.. code-block:: php
+
+ <?php
+ ORM::configure('error_mode', PDO::ERRMODE_WARNING);
+
+The default setting is ``PDO::ERRMODE_EXCEPTION``. For full details of
+the error modes available, see `the PDO set attribute documentation`_.
+
+PDO object access
+^^^^^^^^^^^^^^^^^
+
+Should it ever be necessary, the PDO object used by Idiorm may be
+accessed directly through ``ORM::get_db()``, or set directly via
+``ORM::set_db()``. This should be an unusual occurance.
+
+After a statement has been executed by any means, such as ``::save()``
+or ``::raw_execute()``, the ``PDOStatement`` instance used may be
+accessed via ``ORM::get_last_statement()``. This may be useful in order
+to access ``PDOStatement::errorCode()``, if PDO exceptions are turned
+off, or to access the ``PDOStatement::rowCount()`` method, which returns
+differing results based on the underlying database. For more
+information, see the `PDOStatement documentation`_.
+
+Identifier quote character
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Setting: ``identifier_quote_character``
+
+Set the character used to quote identifiers (eg table name, column
+name). If this is not set, it will be autodetected based on the database
+driver being used by PDO.
+
+ID Column
+^^^^^^^^^
+
+By default, the ORM assumes that all your tables have a primary key
+column called ``id``. There are two ways to override this: for all
+tables in the database, or on a per-table basis.
+
+Setting: ``id_column``
+
+This setting is used to configure the name of the primary key column for
+all tables. If your ID column is called ``primary_key``, use:
+
+.. code-block:: php
+
+ <?php
+ ORM::configure('id_column', 'primary_key');
+
+You can specify a compound primary key using an array:
+
+.. code-block:: php
+
+ <?php
+ ORM::configure('id_column', array('pk_1', 'pk_2'));
+
+Note: If you use a auto-increment column in the compound primary key then it
+should be the first one defined into the array.
+
+Setting: ``id_column_overrides``
+
+This setting is used to specify the primary key column name for each
+table separately. It takes an associative array mapping table names to
+column names. If, for example, your ID column names include the name of
+the table, you can use the following configuration:
+
+.. code-block:: php
+
+ <?php
+ ORM::configure('id_column_overrides', array(
+ 'person' => 'person_id',
+ 'role' => 'role_id',
+ ));
+
+As with ``id_column`` setting, you can specify a compound primary key
+using an array.
+
+Limit clause style
+^^^^^^^^^^^^^^^^^^
+
+Setting: ``limit_clause_style``
+
+You can specify the limit clause style in the configuration. This is to facilitate
+a MS SQL style limit clause that uses the ``TOP`` syntax.
+
+Acceptable values are ``ORM::LIMIT_STYLE_TOP_N`` and ``ORM::LIMIT_STYLE_LIMIT``.
+
+.. note::
+
+ If the PDO driver you are using is one of sqlsrv, dblib or mssql then Idiorm
+ will automatically select the ``ORM::LIMIT_STYLE_TOP_N`` for you unless you
+ override the setting.
+
+Query logging
+^^^^^^^^^^^^^
+
+Setting: ``logging``
+
+Idiorm can log all queries it executes. To enable query logging, set the
+``logging`` option to ``true`` (it is ``false`` by default).
+
+When query logging is enabled, you can use two static methods to access
+the log. ``ORM::get_last_query()`` returns the most recent query
+executed. ``ORM::get_query_log()`` returns an array of all queries
+executed.
+
+.. note::
+
+ The code that does the query log is an approximation of that provided by PDO/the
+ database (see the Idiorm source code for detail). The actual query isn't even available
+ to idiorm to log as the database/PDO handles the binding outside of idiorm's reach and
+ doesn't pass it back.
+
+ This means that you might come across some inconsistencies between what is logged and
+ what is actually run. In these case you'll need to look at the query log provided by
+ your database vendor (eg. MySQL).
+
+Query logger
+^^^^^^^^^^^^
+
+Setting: ``logger``
+
+.. note::
+
+ You must enable ``logging`` for this setting to have any effect.
+
+It is possible to supply a ``callable`` to this configuration setting, which will
+be executed for every query that idiorm executes. In PHP a ``callable`` is anything
+that can be executed as if it were a function. Most commonly this will take the
+form of a anonymous function.
+
+This setting is useful if you wish to log queries with an external library as it
+allows you too whatever you would like from inside the callback function.
+
+.. code-block:: php
+
+ <?php
+ ORM::configure('logger', function($log_string, $query_time) {
+ echo $log_string . ' in ' . $query_time;
+ });
+
+Query caching
+^^^^^^^^^^^^^
+
+Setting: ``caching``
+
+Idiorm can cache the queries it executes during a request. To enable
+query caching, set the ``caching`` option to ``true`` (it is ``false``
+by default).
+
+.. code-block:: php
+
+ <?php
+ ORM::configure('caching', true);
+
+
+Setting: ``caching_auto_clear``
+
+Idiorm's cache is never cleared by default. If you wish to automatically clear it on save, set ``caching_auto_clear`` to ``true``
+
+.. code-block:: php
+
+ <?php
+ ORM::configure('caching_auto_clear', true);
+
+When query caching is enabled, Idiorm will cache the results of every
+``SELECT`` query it executes. If Idiorm encounters a query that has
+already been run, it will fetch the results directly from its cache and
+not perform a database query.
+
+Warnings and gotchas
+''''''''''''''''''''
+
+- Note that this is an in-memory cache that only persists data for the
+ duration of a single request. This is *not* a replacement for a
+ persistent cache such as `Memcached`_.
+
+- Idiorm’s cache is very simple, and does not attempt to invalidate
+ itself when data changes. This means that if you run a query to
+ retrieve some data, modify and save it, and then run the same query
+ again, the results will be stale (ie, they will not reflect your
+ modifications). This could potentially cause subtle bugs in your
+ application. If you have caching enabled and you are experiencing odd
+ behaviour, disable it and try again. If you do need to perform such
+ operations but still wish to use the cache, you can call the
+ ``ORM::clear_cache()`` to clear all existing cached queries.
+
+- Enabling the cache will increase the memory usage of your
+ application, as all database rows that are fetched during each
+ request are held in memory. If you are working with large quantities
+ of data, you may wish to disable the cache.
+
+Custom caching
+''''''''''''''
+
+If you wish to use custom caching functions, you can set them from the configure options.
+
+.. code-block:: php
+
+ <?php
+ $my_cache = array();
+ ORM::configure('cache_query_result', function ($cache_key, $value, $table_name, $connection_name) use (&$my_cache) {
+ $my_cache[$cache_key] = $value;
+ });
+ ORM::configure('check_query_cache', function ($cache_key, $table_name, $connection_name) use (&$my_cache) {
+ if(isset($my_cache[$cache_key])){
+ return $my_cache[$cache_key];
+ } else {
+ return false;
+ }
+ });
+ ORM::configure('clear_cache', function ($table_name, $connection_name) use (&$my_cache) {
+ $my_cache = array();
+ });
+
+ ORM::configure('create_cache_key', function ($query, $parameters, $table_name, $connection_name) {
+ $parameter_string = join(',', $parameters);
+ $key = $query . ':' . $parameter_string;
+ $my_key = 'my-prefix'.crc32($key);
+ return $my_key;
+ });
+
+
+.. _PDO documentation: http://php.net/manual/en/pdo.construct.php
+.. _the PDO documentation: http://php.net/manual/en/pdo.construct.php
+.. _the PDO set attribute documentation: http://php.net/manual/en/pdo.setattribute.php
+.. _PDOStatement documentation: http://php.net/manual/en/class.pdostatement.php
+.. _Memcached: http://www.memcached.org/
diff --git a/vendor/j4mie/idiorm/docs/connections.rst b/vendor/j4mie/idiorm/docs/connections.rst
new file mode 100644
index 000000000..20fb08f0e
--- /dev/null
+++ b/vendor/j4mie/idiorm/docs/connections.rst
@@ -0,0 +1,80 @@
+Multiple Connections
+====================
+Idiorm now works with multiple conections. Most of the static functions
+work with an optional connection name as an extra parameter. For the
+``ORM::configure`` method, this means that when passing connection
+strings for a new connection, the second parameter, which is typically
+omitted, should be ``null``. In all cases, if a connection name is not
+provided, it defaults to ``ORM::DEFAULT_CONNECTION``.
+
+When chaining, once ``for_table()`` has been used in the chain, remaining
+calls in the chain use the correct connection.
+
+.. code-block:: php
+
+ <?php
+ // Default connection
+ ORM::configure('sqlite:./example.db');
+
+ // A named connection, where 'remote' is an arbitrary key name
+ ORM::configure('mysql:host=localhost;dbname=my_database', null, 'remote');
+ ORM::configure('username', 'database_user', 'remote');
+ ORM::configure('password', 'top_secret', 'remote');
+
+ // Using default connection
+ $person = ORM::for_table('person')->find_one(5);
+
+ // Using default connection, explicitly
+ $person = ORM::for_table('person', ORM::DEFAULT_CONNECTION)->find_one(5);
+
+ // Using named connection
+ $person = ORM::for_table('different_person', 'remote')->find_one(5);
+
+
+
+Supported Methods
+^^^^^^^^^^^^^^^^^
+In each of these cases, the ``$connection_name`` parameter is optional, and is
+an arbitrary key identifying the named connection.
+
+* ``ORM::configure($key, $value, $connection_name)``
+* ``ORM::for_table($table_name, $connection_name)``
+* ``ORM::set_db($pdo, $connection_name)``
+* ``ORM::get_db($connection_name)``
+* ``ORM::raw_execute($query, $parameters, $connection_name)``
+* ``ORM::get_last_query($connection_name)``
+* ``ORM::get_query_log($connection_name)``
+
+Of these methods, only ``ORM::get_last_query($connection_name)`` does *not*
+fallback to the default connection when no connection name is passed.
+Instead, passing no connection name (or ``null``) returns the most recent
+query on *any* connection.
+
+.. code-block:: php
+
+ <?php
+ // Using default connection, explicitly
+ $person = ORM::for_table('person')->find_one(5);
+
+ // Using named connection
+ $person = ORM::for_table('different_person', 'remote')->find_one(5);
+
+ // Last query on *any* connection
+ ORM::get_last_query(); // returns query on 'different_person' using 'remote'
+
+ // returns query on 'person' using default by passing in the connection name
+ ORM::get_last_query(ORM::DEFAULT_CONNECTION);
+
+Notes
+~~~~~
+* **There is no support for joins across connections**
+* Multiple connections do not share configuration settings. This means if
+ one connection has logging set to ``true`` and the other does not, only
+ queries from the logged connection will be available via
+ ``ORM::get_last_query()`` and ``ORM::get_query_log()``.
+* A new method has been added, ``ORM::get_connection_names()``, which returns
+ an array of connection names.
+* Caching *should* work with multiple connections (remember to turn caching
+ on for each connection), but the unit tests are not robust. Please report
+ any errors.
+
diff --git a/vendor/j4mie/idiorm/docs/index.rst b/vendor/j4mie/idiorm/docs/index.rst
new file mode 100644
index 000000000..d4e4bb97b
--- /dev/null
+++ b/vendor/j4mie/idiorm/docs/index.rst
@@ -0,0 +1,29 @@
+.. Idiorm documentation master file, created by
+ sphinx-quickstart on Wed Nov 28 15:39:16 2012.
+ You can adapt this file completely to your liking, but it should at least
+ contain the root `toctree` directive.
+
+Welcome to Idiorm's documentation!
+==================================
+
+Contents:
+
+.. toctree::
+ :maxdepth: 2
+
+ philosophy
+ installation
+ configuration
+ querying
+ models
+ transactions
+ connections
+
+
+Indices and tables
+==================
+
+* :ref:`genindex`
+* :ref:`modindex`
+* :ref:`search`
+
diff --git a/vendor/j4mie/idiorm/docs/installation.rst b/vendor/j4mie/idiorm/docs/installation.rst
new file mode 100644
index 000000000..255ea62a8
--- /dev/null
+++ b/vendor/j4mie/idiorm/docs/installation.rst
@@ -0,0 +1,19 @@
+Installation
+============
+
+Packagist
+~~~~~~~~~
+
+This library is available through Packagist with the vendor and package
+identifier of ``j4mie/idiorm``
+
+Please see the `Packagist documentation`_ for further information.
+
+Download
+~~~~~~~~
+
+You can clone the git repository, download idiorm.php or a release tag
+and then drop the idiorm.php file in the vendors/3rd party/libs
+directory of your project.
+
+.. _Packagist documentation: http://packagist.org/ \ No newline at end of file
diff --git a/vendor/j4mie/idiorm/docs/make.bat b/vendor/j4mie/idiorm/docs/make.bat
new file mode 100644
index 000000000..c09073569
--- /dev/null
+++ b/vendor/j4mie/idiorm/docs/make.bat
@@ -0,0 +1,190 @@
+@ECHO OFF
+
+REM Command file for Sphinx documentation
+
+if "%SPHINXBUILD%" == "" (
+ set SPHINXBUILD=sphinx-build
+)
+set BUILDDIR=_build
+set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% .
+set I18NSPHINXOPTS=%SPHINXOPTS% .
+if NOT "%PAPER%" == "" (
+ set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS%
+ set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS%
+)
+
+if "%1" == "" goto help
+
+if "%1" == "help" (
+ :help
+ echo.Please use `make ^<target^>` where ^<target^> is one of
+ echo. html to make standalone HTML files
+ echo. dirhtml to make HTML files named index.html in directories
+ echo. singlehtml to make a single large HTML file
+ echo. pickle to make pickle files
+ echo. json to make JSON files
+ echo. htmlhelp to make HTML files and a HTML help project
+ echo. qthelp to make HTML files and a qthelp project
+ echo. devhelp to make HTML files and a Devhelp project
+ echo. epub to make an epub
+ echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter
+ echo. text to make text files
+ echo. man to make manual pages
+ echo. texinfo to make Texinfo files
+ echo. gettext to make PO message catalogs
+ echo. changes to make an overview over all changed/added/deprecated items
+ echo. linkcheck to check all external links for integrity
+ echo. doctest to run all doctests embedded in the documentation if enabled
+ goto end
+)
+
+if "%1" == "clean" (
+ for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i
+ del /q /s %BUILDDIR%\*
+ goto end
+)
+
+if "%1" == "html" (
+ %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished. The HTML pages are in %BUILDDIR%/html.
+ goto end
+)
+
+if "%1" == "dirhtml" (
+ %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml.
+ goto end
+)
+
+if "%1" == "singlehtml" (
+ %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml.
+ goto end
+)
+
+if "%1" == "pickle" (
+ %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished; now you can process the pickle files.
+ goto end
+)
+
+if "%1" == "json" (
+ %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished; now you can process the JSON files.
+ goto end
+)
+
+if "%1" == "htmlhelp" (
+ %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished; now you can run HTML Help Workshop with the ^
+.hhp project file in %BUILDDIR%/htmlhelp.
+ goto end
+)
+
+if "%1" == "qthelp" (
+ %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished; now you can run "qcollectiongenerator" with the ^
+.qhcp project file in %BUILDDIR%/qthelp, like this:
+ echo.^> qcollectiongenerator %BUILDDIR%\qthelp\Idiorm.qhcp
+ echo.To view the help file:
+ echo.^> assistant -collectionFile %BUILDDIR%\qthelp\Idiorm.ghc
+ goto end
+)
+
+if "%1" == "devhelp" (
+ %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished.
+ goto end
+)
+
+if "%1" == "epub" (
+ %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished. The epub file is in %BUILDDIR%/epub.
+ goto end
+)
+
+if "%1" == "latex" (
+ %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished; the LaTeX files are in %BUILDDIR%/latex.
+ goto end
+)
+
+if "%1" == "text" (
+ %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished. The text files are in %BUILDDIR%/text.
+ goto end
+)
+
+if "%1" == "man" (
+ %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished. The manual pages are in %BUILDDIR%/man.
+ goto end
+)
+
+if "%1" == "texinfo" (
+ %SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo.
+ goto end
+)
+
+if "%1" == "gettext" (
+ %SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished. The message catalogs are in %BUILDDIR%/locale.
+ goto end
+)
+
+if "%1" == "changes" (
+ %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.The overview file is in %BUILDDIR%/changes.
+ goto end
+)
+
+if "%1" == "linkcheck" (
+ %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Link check complete; look for any errors in the above output ^
+or in %BUILDDIR%/linkcheck/output.txt.
+ goto end
+)
+
+if "%1" == "doctest" (
+ %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Testing of doctests in the sources finished, look at the ^
+results in %BUILDDIR%/doctest/output.txt.
+ goto end
+)
+
+:end
diff --git a/vendor/j4mie/idiorm/docs/models.rst b/vendor/j4mie/idiorm/docs/models.rst
new file mode 100644
index 000000000..d72e27d7d
--- /dev/null
+++ b/vendor/j4mie/idiorm/docs/models.rst
@@ -0,0 +1,161 @@
+Models
+======
+
+Getting data from objects
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Once you've got a set of records (objects) back from a query, you can
+access properties on those objects (the values stored in the columns in
+its corresponding table) in two ways: by using the ``get`` method, or
+simply by accessing the property on the object directly:
+
+.. code-block:: php
+
+ <?php
+ $person = ORM::for_table('person')->find_one(5);
+
+ // The following two forms are equivalent
+ $name = $person->get('name');
+ $name = $person->name;
+
+You can also get the all the data wrapped by an ORM instance using the
+``as_array`` method. This will return an associative array mapping
+column names (keys) to their values.
+
+The ``as_array`` method takes column names as optional arguments. If one
+or more of these arguments is supplied, only matching column names will
+be returned.
+
+.. code-block:: php
+
+ <?php
+ $person = ORM::for_table('person')->create();
+
+ $person->first_name = 'Fred';
+ $person->surname = 'Bloggs';
+ $person->age = 50;
+
+ // Returns array('first_name' => 'Fred', 'surname' => 'Bloggs', 'age' => 50)
+ $data = $person->as_array();
+
+ // Returns array('first_name' => 'Fred', 'age' => 50)
+ $data = $person->as_array('first_name', 'age');
+
+Updating records
+~~~~~~~~~~~~~~~~
+
+To update the database, change one or more of the properties of the
+object, then call the ``save`` method to commit the changes to the
+database. Again, you can change the values of the object's properties
+either by using the ``set`` method or by setting the value of the
+property directly. By using the ``set`` method it is also possible to
+update multiple properties at once, by passing in an associative array:
+
+.. code-block:: php
+
+ <?php
+ $person = ORM::for_table('person')->find_one(5);
+
+ // The following two forms are equivalent
+ $person->set('name', 'Bob Smith');
+ $person->age = 20;
+
+ // This is equivalent to the above two assignments
+ $person->set(array(
+ 'name' => 'Bob Smith',
+ 'age' => 20
+ ));
+
+ // Syncronise the object with the database
+ $person->save();
+
+Properties containing expressions
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+It is possible to set properties on the model that contain database
+expressions using the ``set_expr`` method.
+
+.. code-block:: php
+
+ <?php
+ $person = ORM::for_table('person')->find_one(5);
+ $person->set('name', 'Bob Smith');
+ $person->age = 20;
+ $person->set_expr('updated', 'NOW()');
+ $person->save();
+
+The ``updated`` column's value will be inserted into query in its raw
+form therefore allowing the database to execute any functions referenced
+- such as ``NOW()`` in this case.
+
+Creating new records
+~~~~~~~~~~~~~~~~~~~~
+
+To add a new record, you need to first create an "empty" object
+instance. You then set values on the object as normal, and save it.
+
+.. code-block:: php
+
+ <?php
+ $person = ORM::for_table('person')->create();
+
+ $person->name = 'Joe Bloggs';
+ $person->age = 40;
+
+ $person->save();
+
+After the object has been saved, you can call its ``id()`` method to
+find the autogenerated primary key value that the database assigned to
+it.
+
+Properties containing expressions
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+It is possible to set properties on the model that contain database
+expressions using the ``set_expr`` method.
+
+.. code-block:: php
+
+ <?php
+ $person = ORM::for_table('person')->create();
+ $person->set('name', 'Bob Smith');
+ $person->age = 20;
+ $person->set_expr('added', 'NOW()');
+ $person->save();
+
+The ``added`` column's value will be inserted into query in its raw form
+therefore allowing the database to execute any functions referenced -
+such as ``NOW()`` in this case.
+
+Checking whether a property has been modified
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+To check whether a property has been changed since the object was
+created (or last saved), call the ``is_dirty`` method:
+
+.. code-block:: php
+
+ <?php
+ $name_has_changed = $person->is_dirty('name'); // Returns true or false
+
+Deleting records
+~~~~~~~~~~~~~~~~
+
+To delete an object from the database, simply call its ``delete``
+method.
+
+.. code-block:: php
+
+ <?php
+ $person = ORM::for_table('person')->find_one(5);
+ $person->delete();
+
+To delete more than one object from the database, build a query:
+
+.. code-block:: php
+
+ <?php
+ $person = ORM::for_table('person')
+ ->where_equal('zipcode', 55555)
+ ->delete_many();
+
diff --git a/vendor/j4mie/idiorm/docs/philosophy.rst b/vendor/j4mie/idiorm/docs/philosophy.rst
new file mode 100644
index 000000000..a11d4210f
--- /dev/null
+++ b/vendor/j4mie/idiorm/docs/philosophy.rst
@@ -0,0 +1,34 @@
+Philosophy
+==========
+
+The `Pareto Principle`_ states that *roughly 80% of the effects come
+from 20% of the causes.* In software development terms, this could be
+translated into something along the lines of *80% of the results come
+from 20% of the complexity*. In other words, you can get pretty far by
+being pretty stupid.
+
+**Idiorm is deliberately simple**. Where other ORMs consist of dozens of
+classes with complex inheritance hierarchies, Idiorm has only one class,
+``ORM``, which functions as both a fluent ``SELECT`` query API and a
+simple CRUD model class. If my hunch is correct, this should be quite
+enough for many real-world applications. Let’s face it: most of us
+aren’t building Facebook. We’re working on small-to-medium-sized
+projects, where the emphasis is on simplicity and rapid development
+rather than infinite flexibility and features.
+
+You might think of **Idiorm** as a *micro-ORM*. It could, perhaps, be
+“the tie to go along with `Slim`_\ ’s tux” (to borrow a turn of phrase
+from `DocumentCloud`_). Or it could be an effective bit of spring
+cleaning for one of those horrendous SQL-littered legacy PHP apps you
+have to support.
+
+**Idiorm** might also provide a good base upon which to build
+higher-level, more complex database abstractions. For example, `Paris`_
+is an implementation of the `Active Record pattern`_ built on top of
+Idiorm.
+
+.. _Pareto Principle: http://en.wikipedia.org/wiki/Pareto_principle
+.. _Slim: http://github.com/codeguy/slim/
+.. _DocumentCloud: http://github.com/documentcloud/underscore
+.. _Paris: http://github.com/j4mie/paris
+.. _Active Record pattern: http://martinfowler.com/eaaCatalog/activeRecord.html \ No newline at end of file
diff --git a/vendor/j4mie/idiorm/docs/querying.rst b/vendor/j4mie/idiorm/docs/querying.rst
new file mode 100644
index 000000000..1ea5a2549
--- /dev/null
+++ b/vendor/j4mie/idiorm/docs/querying.rst
@@ -0,0 +1,896 @@
+Querying
+========
+
+Idiorm provides a `*fluent
+interface* <http://en.wikipedia.org/wiki/Fluent_interface>`_ to enable
+simple queries to be built without writing a single character of SQL. If
+you've used `jQuery <http://jquery.com>`_ at all, you'll be familiar
+with the concept of a fluent interface. It just means that you can
+*chain* method calls together, one after another. This can make your
+code more readable, as the method calls strung together in order can
+start to look a bit like a sentence.
+
+All Idiorm queries start with a call to the ``for_table`` static method
+on the ORM class. This tells the ORM which table to use when making the
+query.
+
+*Note that this method **does not** escape its query parameter and so
+the table name should **not** be passed directly from user input.*
+
+Method calls which add filters and constraints to your query are then
+strung together. Finally, the chain is finished by calling either
+``find_one()`` or ``find_many()``, which executes the query and returns
+the result.
+
+Let's start with a simple example. Say we have a table called ``person``
+which contains the columns ``id`` (the primary key of the record -
+Idiorm assumes the primary key column is called ``id`` but this is
+configurable, see below), ``name``, ``age`` and ``gender``.
+
+A note on PSR-1 and camelCase
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+All the methods detailed in the documentation can also be called in a PSR-1 way:
+underscores (_) become camelCase. Here follows an example of one query chain
+being converted to a PSR-1 compliant style.
+
+.. code-block:: php
+
+ <?php
+ // documented and default style
+ $person = ORM::for_table('person')->where('name', 'Fred Bloggs')->find_one();
+
+ // PSR-1 compliant style
+ $person = ORM::forTable('person')->where('name', 'Fred Bloggs')->findOne();
+
+As you can see any method can be changed from the documented underscore (_) format
+to that of a camelCase method name.
+
+.. note::
+
+ In the background the PSR-1 compliant style uses the `__call()` and
+ `__callStatic()` magic methods to map the camelCase method name you supply
+ to the original underscore method name. It then uses `call_user_func_array()`
+ to apply the arguments to the method. If this minimal overhead is too great
+ then you can simply revert to using the underscore methods to avoid it. In
+ general this will not be a bottle neck in any application however and should
+ be considered a micro-optimisation.
+
+ As `__callStatic()` was added in PHP 5.3.0 you will need at least that version
+ of PHP to use this feature in any meaningful way.
+
+Single records
+^^^^^^^^^^^^^^
+
+Any method chain that ends in ``find_one()`` will return either a
+*single* instance of the ORM class representing the database row you
+requested, or ``false`` if no matching record was found.
+
+To find a single record where the ``name`` column has the value "Fred
+Bloggs":
+
+.. code-block:: php
+
+ <?php
+ $person = ORM::for_table('person')->where('name', 'Fred Bloggs')->find_one();
+
+This roughly translates into the following SQL:
+``SELECT * FROM person WHERE name = "Fred Bloggs"``
+
+To find a single record by ID, you can pass the ID directly to the
+``find_one`` method:
+
+.. code-block:: php
+
+ <?php
+ $person = ORM::for_table('person')->find_one(5);
+
+If you are using a compound primary key, you can find the records
+using an array as the parameter:
+
+.. code-block:: php
+
+ <?php
+ $person = ORM::for_table('user_role')->find_one(array(
+ 'user_id' => 34,
+ 'role_id' => 10
+ ));
+
+
+Multiple records
+^^^^^^^^^^^^^^^^
+
+.. note::
+
+ It is recommended that you use results sets over arrays - see `As a result set`
+ below.
+
+Any method chain that ends in ``find_many()`` will return an *array* of
+ORM class instances, one for each row matched by your query. If no rows
+were found, an empty array will be returned.
+
+To find all records in the table:
+
+.. code-block:: php
+
+ <?php
+ $people = ORM::for_table('person')->find_many();
+
+To find all records where the ``gender`` is ``female``:
+
+.. code-block:: php
+
+ <?php
+ $females = ORM::for_table('person')->where('gender', 'female')->find_many();
+
+As a result set
+'''''''''''''''
+
+.. note::
+
+ There is a configuration setting ``return_result_sets`` that will cause
+ ``find_many()`` to return result sets by default. It is recommended that you
+ turn this setting on:
+
+ ::
+
+ ORM::configure('return_result_sets', true);
+
+You can also find many records as a result set instead of an array of Idiorm
+instances. This gives you the advantage that you can run batch operations on a
+set of results.
+
+So for example instead of running this:
+
+.. code-block:: php
+
+ <?php
+ $people = ORM::for_table('person')->find_many();
+ foreach ($people as $person) {
+ $person->age = 50;
+ $person->save();
+ }
+
+You can simply do this instead:
+
+.. code-block:: php
+
+ <?php
+ ORM::for_table('person')->find_result_set()
+ ->set('age', 50)
+ ->save();
+
+To do this substitute any call to ``find_many()`` with
+``find_result_set()``.
+
+A result set will also behave like an array so you can `count()` it and `foreach`
+over it just like an array.
+
+.. code-block:: php
+
+ <?php
+ foreach(ORM::for_table('person')->find_result_set() as $record) {
+ echo $record->name;
+ }
+
+.. code-block:: php
+
+ <?php
+ echo count(ORM::for_table('person')->find_result_set());
+
+.. note::
+
+ For deleting many records it is recommended that you use `delete_many()` as it
+ is more efficient than calling `delete()` on a result set.
+
+As an associative array
+'''''''''''''''''''''''
+
+You can also find many records as an associative array instead of Idiorm
+instances. To do this substitute any call to ``find_many()`` with
+``find_array()``.
+
+.. code-block:: php
+
+ <?php
+ $females = ORM::for_table('person')->where('gender', 'female')->find_array();
+
+This is useful if you need to serialise the the query output into a
+format like JSON and you do not need the ability to update the returned
+records.
+
+Counting results
+^^^^^^^^^^^^^^^^
+
+To return a count of the number of rows that would be returned by a
+query, call the ``count()`` method.
+
+.. code-block:: php
+
+ <?php
+ $number_of_people = ORM::for_table('person')->count();
+
+Filtering results
+^^^^^^^^^^^^^^^^^
+
+Idiorm provides a family of methods to extract only records which
+satisfy some condition or conditions. These methods may be called
+multiple times to build up your query, and Idiorm's fluent interface
+allows method calls to be *chained* to create readable and
+simple-to-understand queries.
+
+*Caveats*
+'''''''''
+
+Only a subset of the available conditions supported by SQL are available
+when using Idiorm. Additionally, all the ``WHERE`` clauses will be
+``AND``\ ed together when the query is run. Support for ``OR``\ ing
+``WHERE`` clauses is not currently present.
+
+These limits are deliberate: these are by far the most commonly used
+criteria, and by avoiding support for very complex queries, the Idiorm
+codebase can remain small and simple.
+
+Some support for more complex conditions and queries is provided by the
+``where_raw`` and ``raw_query`` methods (see below). If you find
+yourself regularly requiring more functionality than Idiorm can provide,
+it may be time to consider using a more full-featured ORM.
+
+Equality: ``where``, ``where_equal``, ``where_not_equal``
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+By default, calling ``where`` with two parameters (the column name and
+the value) will combine them using an equals operator (``=``). For
+example, calling ``where('name', 'Fred')`` will result in the clause
+``WHERE name = "Fred"``.
+
+If your coding style favours clarity over brevity, you may prefer to use
+the ``where_equal`` method: this is identical to ``where``.
+
+The ``where_not_equal`` method adds a ``WHERE column != "value"`` clause
+to your query.
+
+You can specify multiple columns and their values in the same call. In this
+case you should pass an associative array as the first parameter. The array
+notation uses keys as column names.
+
+.. code-block:: php
+
+ <?php
+ $people = ORM::for_table('person')
+ ->where(array(
+ 'name' => 'Fred',
+ 'age' => 20
+ ))
+ ->find_many();
+
+ // Creates SQL:
+ SELECT * FROM `person` WHERE `name` = "Fred" AND `age` = "20";
+
+Shortcut: ``where_id_is``
+'''''''''''''''''''''''''
+
+This is a simple helper method to query the table by primary key.
+Respects the ID column specified in the config. If you are using a compound
+primary key, you must pass an array where the key is the column name. Columns
+that don't belong to the key will be ignored.
+
+Shortcut: ``where_id_in``
+'''''''''''''''''''''''''
+
+This helper method is similar to ``where_id_is`, but it expects an array of
+primary keys to be selected. It is compound primary keys aware.
+
+Less than / greater than: ``where_lt``, ``where_gt``, ``where_lte``, ``where_gte``
+''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+There are four methods available for inequalities:
+
+- Less than:
+ ``$people = ORM::for_table('person')->where_lt('age', 10)->find_many();``
+- Greater than:
+ ``$people = ORM::for_table('person')->where_gt('age', 5)->find_many();``
+- Less than or equal:
+ ``$people = ORM::for_table('person')->where_lte('age', 10)->find_many();``
+- Greater than or equal:
+ ``$people = ORM::for_table('person')->where_gte('age', 5)->find_many();``
+
+String comparision: ``where_like`` and ``where_not_like``
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+To add a ``WHERE ... LIKE`` clause, use:
+
+.. code-block:: php
+
+ <?php
+ $people = ORM::for_table('person')->where_like('name', '%fred%')->find_many();
+
+Similarly, to add a ``WHERE ... NOT LIKE`` clause, use:
+
+.. code-block:: php
+
+ <?php
+ $people = ORM::for_table('person')->where_not_like('name', '%bob%')->find_many();
+
+Multiple OR'ed conditions
+'''''''''''''''''''''''''
+
+You can add simple OR'ed conditions to the same WHERE clause using ``where_any_is``. You
+should specify multiple conditions using an array of items. Each item will be an
+associative array that contains a multiple conditions.
+
+.. code-block:: php
+
+ <?php
+ $people = ORM::for_table('person')
+ ->where_any_is(array(
+ array('name' => 'Joe', 'age' => 10),
+ array('name' => 'Fred', 'age' => 20)))
+ ->find_many();
+
+ // Creates SQL:
+ SELECT * FROM `widget` WHERE (( `name` = 'Joe' AND `age` = '10' ) OR ( `name` = 'Fred' AND `age` = '20' ));
+
+By default, it uses the equal operator for every column, but it can be overriden for any
+column using a second parameter:
+
+.. code-block:: php
+
+ <?php
+ $people = ORM::for_table('person')
+ ->where_any_is(array(
+ array('name' => 'Joe', 'age' => 10),
+ array('name' => 'Fred', 'age' => 20)), array('age' => '>'))
+ ->find_many();
+
+ // Creates SQL:
+ SELECT * FROM `widget` WHERE (( `name` = 'Joe' AND `age` = '10' ) OR ( `name` = 'Fred' AND `age` > '20' ));
+
+If you want to set the default operator for all the columns, just pass it as the second parameter:
+
+.. code-block:: php
+
+ <?php
+ $people = ORM::for_table('person')
+ ->where_any_is(array(
+ array('score' => '5', 'age' => 10),
+ array('score' => '15', 'age' => 20)), '>')
+ ->find_many();
+
+ // Creates SQL:
+ SELECT * FROM `widget` WHERE (( `score` > '5' AND `age` > '10' ) OR ( `score` > '15' AND `age` > '20' ));
+
+Set membership: ``where_in`` and ``where_not_in``
+'''''''''''''''''''''''''''''''''''''''''''''''''
+
+To add a ``WHERE ... IN ()`` or ``WHERE ... NOT IN ()`` clause, use the
+``where_in`` and ``where_not_in`` methods respectively.
+
+Both methods accept two arguments. The first is the column name to
+compare against. The second is an *array* of possible values. As all the
+``where_`` methods, you can specify multiple columns using an associative
+*array* as the only parameter.
+
+.. code-block:: php
+
+ <?php
+ $people = ORM::for_table('person')->where_in('name', array('Fred', 'Joe', 'John'))->find_many();
+
+Working with ``NULL`` values: ``where_null`` and ``where_not_null``
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+To add a ``WHERE column IS NULL`` or ``WHERE column IS NOT NULL``
+clause, use the ``where_null`` and ``where_not_null`` methods
+respectively. Both methods accept a single parameter: the column name to
+test.
+
+Raw WHERE clauses
+'''''''''''''''''
+
+If you require a more complex query, you can use the ``where_raw``
+method to specify the SQL fragment for the WHERE clause exactly. This
+method takes two arguments: the string to add to the query, and an
+(optional) array of parameters which will be bound to the string. If
+parameters are supplied, the string should contain question mark
+characters (``?``) to represent the values to be bound, and the
+parameter array should contain the values to be substituted into the
+string in the correct order.
+
+This method may be used in a method chain alongside other ``where_*``
+methods as well as methods such as ``offset``, ``limit`` and
+``order_by_*``. The contents of the string you supply will be connected
+with preceding and following WHERE clauses with AND.
+
+.. code-block:: php
+
+ <?php
+ $people = ORM::for_table('person')
+ ->where('name', 'Fred')
+ ->where_raw('(`age` = ? OR `age` = ?)', array(20, 25))
+ ->order_by_asc('name')
+ ->find_many();
+
+ // Creates SQL:
+ SELECT * FROM `person` WHERE `name` = "Fred" AND (`age` = 20 OR `age` = 25) ORDER BY `name` ASC;
+
+.. note::
+
+ You must wrap your expression in parentheses when using any of ``ALL``,
+ ``ANY``, ``BETWEEN``, ``IN``, ``LIKE``, ``OR`` and ``SOME``. Otherwise
+ the precedence of ``AND`` will bind stronger and in the above example
+ you would effectively get ``WHERE (`name` = "Fred" AND `age` = 20) OR `age` = 25``
+
+Note that this method only supports "question mark placeholder" syntax,
+and NOT "named placeholder" syntax. This is because PDO does not allow
+queries that contain a mixture of placeholder types. Also, you should
+ensure that the number of question mark placeholders in the string
+exactly matches the number of elements in the array.
+
+If you require yet more flexibility, you can manually specify the entire
+query. See *Raw queries* below.
+
+Limits and offsets
+''''''''''''''''''
+
+*Note that these methods **do not** escape their query parameters and so
+these should **not** be passed directly from user input.*
+
+The ``limit`` and ``offset`` methods map pretty closely to their SQL
+equivalents.
+
+.. code-block:: php
+
+ <?php
+ $people = ORM::for_table('person')->where('gender', 'female')->limit(5)->offset(10)->find_many();
+
+Ordering
+''''''''
+
+*Note that these methods **do not** escape their query parameters and so
+these should **not** be passed directly from user input.*
+
+Two methods are provided to add ``ORDER BY`` clauses to your query.
+These are ``order_by_desc`` and ``order_by_asc``, each of which takes a
+column name to sort by. The column names will be quoted.
+
+.. code-block:: php
+
+ <?php
+ $people = ORM::for_table('person')->order_by_asc('gender')->order_by_desc('name')->find_many();
+
+If you want to order by something other than a column name, then use the
+``order_by_expr`` method to add an unquoted SQL expression as an
+``ORDER BY`` clause.
+
+.. code-block:: php
+
+ <?php
+ $people = ORM::for_table('person')->order_by_expr('SOUNDEX(`name`)')->find_many();
+
+Grouping
+^^^^^^^^
+
+*Note that this method **does not** escape it query parameter and so
+this should **not** by passed directly from user input.*
+
+To add a ``GROUP BY`` clause to your query, call the ``group_by``
+method, passing in the column name. You can call this method multiple
+times to add further columns.
+
+.. code-block:: php
+
+ <?php
+ $people = ORM::for_table('person')->where('gender', 'female')->group_by('name')->find_many();
+
+It is also possible to ``GROUP BY`` a database expression:
+
+.. code-block:: php
+
+ <?php
+ $people = ORM::for_table('person')->where('gender', 'female')->group_by_expr("FROM_UNIXTIME(`time`, '%Y-%m')")->find_many();
+
+Having
+^^^^^^
+
+When using aggregate functions in combination with a ``GROUP BY`` you can use
+``HAVING`` to filter based on those values.
+
+``HAVING`` works in exactly the same way as all of the ``where*`` functions in Idiorm.
+Substitute ``where_`` for ``having_`` to make use of these functions.
+
+For example:
+
+.. code-block:: php
+
+ <?php
+ $people = ORM::for_table('person')->group_by('name')->having_not_like('name', '%bob%')->find_many();
+
+Result columns
+^^^^^^^^^^^^^^
+
+By default, all columns in the ``SELECT`` statement are returned from
+your query. That is, calling:
+
+.. code-block:: php
+
+ <?php
+ $people = ORM::for_table('person')->find_many();
+
+Will result in the query:
+
+.. code-block:: php
+
+ <?php
+ SELECT * FROM `person`;
+
+The ``select`` method gives you control over which columns are returned.
+Call ``select`` multiple times to specify columns to return or use
+```select_many`` <#shortcuts-for-specifying-many-columns>`_ to specify
+many columns at once.
+
+.. code-block:: php
+
+ <?php
+ $people = ORM::for_table('person')->select('name')->select('age')->find_many();
+
+Will result in the query:
+
+.. code-block:: php
+
+ <?php
+ SELECT `name`, `age` FROM `person`;
+
+Optionally, you may also supply a second argument to ``select`` to
+specify an alias for the column:
+
+.. code-block:: php
+
+ <?php
+ $people = ORM::for_table('person')->select('name', 'person_name')->find_many();
+
+Will result in the query:
+
+.. code-block:: php
+
+ <?php
+ SELECT `name` AS `person_name` FROM `person`;
+
+Column names passed to ``select`` are quoted automatically, even if they
+contain ``table.column``-style identifiers:
+
+.. code-block:: php
+
+ <?php
+ $people = ORM::for_table('person')->select('person.name', 'person_name')->find_many();
+
+Will result in the query:
+
+.. code-block:: php
+
+ <?php
+ SELECT `person`.`name` AS `person_name` FROM `person`;
+
+If you wish to override this behaviour (for example, to supply a
+database expression) you should instead use the ``select_expr`` method.
+Again, this takes the alias as an optional second argument. You can
+specify multiple expressions by calling ``select_expr`` multiple times
+or use ```select_many_expr`` <#shortcuts-for-specifying-many-columns>`_
+to specify many expressions at once.
+
+.. code-block:: php
+
+ <?php
+ // NOTE: For illustrative purposes only. To perform a count query, use the count() method.
+ $people_count = ORM::for_table('person')->select_expr('COUNT(*)', 'count')->find_many();
+
+Will result in the query:
+
+.. code-block:: php
+
+ <?php
+ SELECT COUNT(*) AS `count` FROM `person`;
+
+Shortcuts for specifying many columns
+'''''''''''''''''''''''''''''''''''''
+
+``select_many`` and ``select_many_expr`` are very similar, but they
+allow you to specify more than one column at once. For example:
+
+.. code-block:: php
+
+ <?php
+ $people = ORM::for_table('person')->select_many('name', 'age')->find_many();
+
+Will result in the query:
+
+.. code-block:: php
+
+ <?php
+ SELECT `name`, `age` FROM `person`;
+
+To specify aliases you need to pass in an array (aliases are set as the
+key in an associative array):
+
+.. code-block:: php
+
+ <?php
+ $people = ORM::for_table('person')->select_many(array('first_name' => 'name'), 'age', 'height')->find_many();
+
+Will result in the query:
+
+.. code-block:: php
+
+ <?php
+ SELECT `name` AS `first_name`, `age`, `height` FROM `person`;
+
+You can pass the the following styles into ``select_many`` and
+``select_many_expr`` by mixing and matching arrays and parameters:
+
+.. code-block:: php
+
+ <?php
+ select_many(array('alias' => 'column', 'column2', 'alias2' => 'column3'), 'column4', 'column5')
+ select_many('column', 'column2', 'column3')
+ select_many(array('column', 'column2', 'column3'), 'column4', 'column5')
+
+All the select methods can also be chained with each other so you could
+do the following to get a neat select query including an expression:
+
+.. code-block:: php
+
+ <?php
+ $people = ORM::for_table('person')->select_many('name', 'age', 'height')->select_expr('NOW()', 'timestamp')->find_many();
+
+Will result in the query:
+
+.. code-block:: php
+
+ <?php
+ SELECT `name`, `age`, `height`, NOW() AS `timestamp` FROM `person`;
+
+DISTINCT
+^^^^^^^^
+
+To add a ``DISTINCT`` keyword before the list of result columns in your
+query, add a call to ``distinct()`` to your query chain.
+
+.. code-block:: php
+
+ <?php
+ $distinct_names = ORM::for_table('person')->distinct()->select('name')->find_many();
+
+This will result in the query:
+
+.. code-block:: php
+
+ <?php
+ SELECT DISTINCT `name` FROM `person`;
+
+Joins
+^^^^^
+
+Idiorm has a family of methods for adding different types of ``JOIN``\ s
+to the queries it constructs:
+
+Methods: ``join``, ``inner_join``, ``left_outer_join``,
+``right_outer_join``, ``full_outer_join``.
+
+Each of these methods takes the same set of arguments. The following
+description will use the basic ``join`` method as an example, but the
+same applies to each method.
+
+The first two arguments are mandatory. The first is the name of the
+table to join, and the second supplies the conditions for the join. The
+recommended way to specify the conditions is as an *array* containing
+three components: the first column, the operator, and the second column.
+The table and column names will be automatically quoted. For example:
+
+.. code-block:: php
+
+ <?php
+ $results = ORM::for_table('person')->join('person_profile', array('person.id', '=', 'person_profile.person_id'))->find_many();
+
+It is also possible to specify the condition as a string, which will be
+inserted as-is into the query. However, in this case the column names
+will **not** be escaped, and so this method should be used with caution.
+
+.. code-block:: php
+
+ <?php
+ // Not recommended because the join condition will not be escaped.
+ $results = ORM::for_table('person')->join('person_profile', 'person.id = person_profile.person_id')->find_many();
+
+The ``join`` methods also take an optional third parameter, which is an
+``alias`` for the table in the query. This is useful if you wish to join
+the table to *itself* to create a hierarchical structure. In this case,
+it is best combined with the ``table_alias`` method, which will add an
+alias to the *main* table associated with the ORM, and the ``select``
+method to control which columns get returned.
+
+.. code-block:: php
+
+ <?php
+ $results = ORM::for_table('person')
+ ->table_alias('p1')
+ ->select('p1.*')
+ ->select('p2.name', 'parent_name')
+ ->join('person', array('p1.parent', '=', 'p2.id'), 'p2')
+ ->find_many();
+
+Raw JOIN clauses
+'''''''''''''''''
+
+If you need to construct a more complex query, you can use the ``raw_join``
+method to specify the SQL fragment for the JOIN clause exactly. This
+method takes four required arguments: the string to add to the query,
+the conditions is as an *array* containing three components:
+the first column, the operator, and the second column, the table alias and
+(optional) the parameters array. If parameters are supplied,
+the string should contain question mark characters (``?``) to represent
+the values to be bound, and the parameter array should contain the values
+to be substituted into the string in the correct order.
+
+This method may be used in a method chain alongside other ``*_join``
+methods as well as methods such as ``offset``, ``limit`` and
+``order_by_*``. The contents of the string you supply will be connected
+with preceding and following JOIN clauses.
+
+.. code-block:: php
+
+ <?php
+ $people = ORM::for_table('person')
+ ->raw_join(
+ 'JOIN (SELECT * FROM role WHERE role.name = ?)',
+ array('person.role_id', '=', 'role.id'),
+ 'role',
+ array('role' => 'janitor'))
+ ->order_by_asc('person.name')
+ ->find_many();
+
+ // Creates SQL:
+ SELECT * FROM `person` JOIN (SELECT * FROM role WHERE role.name = 'janitor') `role` ON `person`.`role_id` = `role`.`id` ORDER BY `person`.`name` ASC
+
+Note that this method only supports "question mark placeholder" syntax,
+and NOT "named placeholder" syntax. This is because PDO does not allow
+queries that contain a mixture of placeholder types. Also, you should
+ensure that the number of question mark placeholders in the string
+exactly matches the number of elements in the array.
+
+If you require yet more flexibility, you can manually specify the entire
+query. See *Raw queries* below.
+
+
+Aggregate functions
+^^^^^^^^^^^^^^^^^^^
+
+There is support for ``MIN``, ``AVG``, ``MAX`` and ``SUM`` in addition
+to ``COUNT`` (documented earlier).
+
+To return a minimum value of column, call the ``min()`` method.
+
+.. code-block:: php
+
+ <?php
+ $min = ORM::for_table('person')->min('height');
+
+The other functions (``AVG``, ``MAX`` and ``SUM``) work in exactly the
+same manner. Supply a column name to perform the aggregate function on
+and it will return an integer.
+
+Raw queries
+^^^^^^^^^^^
+
+If you need to perform more complex queries, you can completely specify
+the query to execute by using the ``raw_query`` method. This method
+takes a string and optionally an array of parameters. The string can
+contain placeholders, either in question mark or named placeholder
+syntax, which will be used to bind the parameters to the query.
+
+.. code-block:: php
+
+ <?php
+ $people = ORM::for_table('person')->raw_query('SELECT p.* FROM person p JOIN role r ON p.role_id = r.id WHERE r.name = :role', array('role' => 'janitor'))->find_many();
+
+The ORM class instance(s) returned will contain data for all the columns
+returned by the query. Note that you still must call ``for_table`` to
+bind the instances to a particular table, even though there is nothing
+to stop you from specifying a completely different table in the query.
+This is because if you wish to later called ``save``, the ORM will need
+to know which table to update.
+
+.. note::
+
+ Using ``raw_query`` is advanced and possibly dangerous, and
+ Idiorm does not make any attempt to protect you from making errors when
+ using this method. If you find yourself calling ``raw_query`` often, you
+ may have misunderstood the purpose of using an ORM, or your application
+ may be too complex for Idiorm. Consider using a more full-featured
+ database abstraction system.
+
+Raw SQL execution using PDO
+'''''''''''''''''''''''''''
+
+.. warning::
+
+ By using this function you're dropping down to PHPs PDO directly. Idiorm
+ does not make any attempt to protect you from making errors when using this
+ method.
+
+ You're essentially just using Idiorm to manage the connection and configuration
+ when you implement ``raw_execute()``.
+
+It can be handy, in some instances, to make use of the PDO instance underneath
+Idiorm to make advanced queries. These can be things like dropping a table from
+the database that Idiorm doesn't support and will not support in the future. These
+are operations that fall outside the 80/20 philosophy of Idiorm. That said there is
+a lot of interest in this function and quite a lot of support requests related to
+it.
+
+This method directly maps to `PDOStatement::execute()`_ underneath so please
+familiarise yourself with it's documentation.
+
+Dropping tables
+~~~~~~~~~~~~~~~
+
+This can be done very simply using ``raw_execute()``.
+
+.. code-block:: php
+
+ <?php
+ if (ORM::raw_execute('DROP TABLE my_table')) {
+ echo "Table dropped";
+ } else {
+ echo "Drop query failed";
+ }
+
+Selecting rows
+~~~~~~~~~~~~~~
+
+.. warning::
+
+ You really, should not be doing this, use Idiorm with ``raw_query()`` instead
+ where possible.
+
+Here is a simple query implemented using ``raw_execute()`` - note the call to
+``ORM::get_last_statement()`` as ``raw_execute()`` returns a boolean as per the
+`PDOStatement::execute()`_ underneath.
+
+.. code-block:: php
+
+ <?php
+ $res = ORM::raw_execute('SHOW TABLES');
+ $statement = ORM::get_last_statement();
+ $rows = array();
+ while ($row = $statement->fetch(PDO::FETCH_ASSOC)) {
+ var_dump($row);
+ }
+
+It is also worth noting that ``$statement`` is a ``PDOStatement`` instance so calling
+its ``fetch()`` method is the same as if you had called against PDO without Idiorm.
+
+Getting the PDO instance
+''''''''''''''''''''''''
+
+.. warning::
+
+ By using this function you're dropping down to PHPs PDO directly. Idiorm
+ does not make any attempt to protect you from making errors when using this
+ method.
+
+ You're essentially just using Idiorm to manage the connection and configuration
+ when you implement against ``get_db()``.
+
+If none of the preceeding methods suit your purposes then you can also get direct
+access to the PDO instance underneath Idiorm using ``ORM::get_db()``. This will
+return a configured instance of `PDO`_.
+
+.. code-block:: php
+
+ <?php
+ $pdo = ORM::get_db();
+ foreach($pdo->query('SHOW TABLES') as $row) {
+ var_dump($row);
+ }
+
+.. _PDOStatement::execute(): https://secure.php.net/manual/en/pdostatement.execute.php
+.. _PDO: https://secure.php.net/manual/en/class.pdo.php
diff --git a/vendor/j4mie/idiorm/docs/transactions.rst b/vendor/j4mie/idiorm/docs/transactions.rst
new file mode 100644
index 000000000..23e6e3178
--- /dev/null
+++ b/vendor/j4mie/idiorm/docs/transactions.rst
@@ -0,0 +1,21 @@
+Transactions
+============
+
+Idiorm doesn’t supply any extra methods to deal with transactions, but
+it’s very easy to use PDO’s built-in methods:
+
+.. code-block:: php
+
+ <?php
+ // Start a transaction
+ ORM::get_db()->beginTransaction();
+
+ // Commit a transaction
+ ORM::get_db()->commit();
+
+ // Roll back a transaction
+ ORM::get_db()->rollBack();
+
+For more details, see `the PDO documentation on Transactions`_.
+
+.. _the PDO documentation on Transactions: https://secure.php.net/manual/en/pdo.transactions.php \ No newline at end of file
diff --git a/vendor/j4mie/idiorm/idiorm.php b/vendor/j4mie/idiorm/idiorm.php
new file mode 100644
index 000000000..2b1f38ca0
--- /dev/null
+++ b/vendor/j4mie/idiorm/idiorm.php
@@ -0,0 +1,2539 @@
+<?php
+
+ /**
+ *
+ * Idiorm
+ *
+ * http://github.com/j4mie/idiorm/
+ *
+ * A single-class super-simple database abstraction layer for PHP.
+ * Provides (nearly) zero-configuration object-relational mapping
+ * and a fluent interface for building basic, commonly-used queries.
+ *
+ * BSD Licensed.
+ *
+ * Copyright (c) 2010, Jamie Matthews
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *
+ * The methods documented below are magic methods that conform to PSR-1.
+ * This documentation exposes these methods to doc generators and IDEs.
+ * @see http://www.php-fig.org/psr/psr-1/
+ *
+ * @method static array|string getConfig($key = null, $connection_name = self::DEFAULT_CONNECTION)
+ * @method static null resetConfig()
+ * @method static \ORM forTable($table_name, $connection_name = self::DEFAULT_CONNECTION)
+ * @method static null setDb($db, $connection_name = self::DEFAULT_CONNECTION)
+ * @method static null resetDb()
+ * @method static null setupLimitClauseStyle($connection_name)
+ * @method static \PDO getDb($connection_name = self::DEFAULT_CONNECTION)
+ * @method static bool rawExecute($query, $parameters = array())
+ * @method static \PDOStatement getLastStatement()
+ * @method static string getLastQuery($connection_name = null)
+ * @method static array getQueryLog($connection_name = self::DEFAULT_CONNECTION)
+ * @method array getConnectionNames()
+ * @method $this useIdColumn($id_column)
+ * @method \ORM|bool findOne($id=null)
+ * @method array|\IdiormResultSet findMany()
+ * @method \IdiormResultSet findResultSet()
+ * @method array findArray()
+ * @method $this forceAllDirty()
+ * @method $this rawQuery($query, $parameters = array())
+ * @method $this tableAlias($alias)
+ * @method int countNullIdColumns()
+ * @method $this selectExpr($expr, $alias=null)
+ * @method \ORM selectMany($values)
+ * @method \ORM selectManyExpr($values)
+ * @method $this rawJoin($table, $constraint, $table_alias, $parameters = array())
+ * @method $this innerJoin($table, $constraint, $table_alias=null)
+ * @method $this leftOuterJoin($table, $constraint, $table_alias=null)
+ * @method $this rightOuterJoin($table, $constraint, $table_alias=null)
+ * @method $this fullOuterJoin($table, $constraint, $table_alias=null)
+ * @method $this whereEqual($column_name, $value=null)
+ * @method $this whereNotEqual($column_name, $value=null)
+ * @method $this whereIdIs($id)
+ * @method $this whereAnyIs($values, $operator='=')
+ * @method array|string whereIdIn($ids)
+ * @method $this whereLike($column_name, $value=null)
+ * @method $this whereNotLike($column_name, $value=null)
+ * @method $this whereGt($column_name, $value=null)
+ * @method $this whereLt($column_name, $value=null)
+ * @method $this whereGte($column_name, $value=null)
+ * @method $this whereLte($column_name, $value=null)
+ * @method $this whereIn($column_name, $values)
+ * @method $this whereNotIn($column_name, $values)
+ * @method $this whereNull($column_name)
+ * @method $this whereNotNull($column_name)
+ * @method $this whereRaw($clause, $parameters=array())
+ * @method $this orderByDesc($column_name)
+ * @method $this orderByAsc($column_name)
+ * @method $this orderByExpr($clause)
+ * @method $this groupBy($column_name)
+ * @method $this groupByExpr($expr)
+ * @method $this havingEqual($column_name, $value=null)
+ * @method $this havingNotEqual($column_name, $value=null)
+ * @method $this havingIdIs($id)
+ * @method $this havingLike($column_name, $value=null)
+ * @method $this havingNotLike($column_name, $value=null)
+ * @method $this havingGt($column_name, $value=null)
+ * @method $this havingLt($column_name, $value=null)
+ * @method $this havingGte($column_name, $value=null)
+ * @method $this havingLte($column_name, $value=null)
+ * @method $this havingIn($column_name, $values=null)
+ * @method $this havingNotIn($column_name, $values=null)
+ * @method $this havingNull($column_name)
+ * @method $this havingNotNull($column_name)
+ * @method $this havingRaw($clause, $parameters=array())
+ * @method static this clearCache($table_name = null, $connection_name = self::DEFAULT_CONNECTION)
+ * @method array asArray()
+ * @method bool setExpr($key, $value = null)
+ * @method bool isDirty($key)
+ * @method bool isNew()
+ */
+
+ class ORM implements ArrayAccess {
+
+ // ----------------------- //
+ // --- CLASS CONSTANTS --- //
+ // ----------------------- //
+
+ // WHERE and HAVING condition array keys
+ const CONDITION_FRAGMENT = 0;
+ const CONDITION_VALUES = 1;
+
+ const DEFAULT_CONNECTION = 'default';
+
+ // Limit clause style
+ const LIMIT_STYLE_TOP_N = "top";
+ const LIMIT_STYLE_LIMIT = "limit";
+
+ // ------------------------ //
+ // --- CLASS PROPERTIES --- //
+ // ------------------------ //
+
+ // Class configuration
+ protected static $_default_config = array(
+ 'connection_string' => 'sqlite::memory:',
+ 'id_column' => 'id',
+ 'id_column_overrides' => array(),
+ 'error_mode' => PDO::ERRMODE_EXCEPTION,
+ 'username' => null,
+ 'password' => null,
+ 'driver_options' => null,
+ 'identifier_quote_character' => null, // if this is null, will be autodetected
+ 'limit_clause_style' => null, // if this is null, will be autodetected
+ 'logging' => false,
+ 'logger' => null,
+ 'caching' => false,
+ 'caching_auto_clear' => false,
+ 'return_result_sets' => false,
+ );
+
+ // Map of configuration settings
+ protected static $_config = array();
+
+ // Map of database connections, instances of the PDO class
+ protected static $_db = array();
+
+ // Last query run, only populated if logging is enabled
+ protected static $_last_query;
+
+ // Log of all queries run, mapped by connection key, only populated if logging is enabled
+ protected static $_query_log = array();
+
+ // Query cache, only used if query caching is enabled
+ protected static $_query_cache = array();
+
+ // Reference to previously used PDOStatement object to enable low-level access, if needed
+ protected static $_last_statement = null;
+
+ // --------------------------- //
+ // --- INSTANCE PROPERTIES --- //
+ // --------------------------- //
+
+ // Key name of the connections in self::$_db used by this instance
+ protected $_connection_name;
+
+ // The name of the table the current ORM instance is associated with
+ protected $_table_name;
+
+ // Alias for the table to be used in SELECT queries
+ protected $_table_alias = null;
+
+ // Values to be bound to the query
+ protected $_values = array();
+
+ // Columns to select in the result
+ protected $_result_columns = array('*');
+
+ // Are we using the default result column or have these been manually changed?
+ protected $_using_default_result_columns = true;
+
+ // Join sources
+ protected $_join_sources = array();
+
+ // Should the query include a DISTINCT keyword?
+ protected $_distinct = false;
+
+ // Is this a raw query?
+ protected $_is_raw_query = false;
+
+ // The raw query
+ protected $_raw_query = '';
+
+ // The raw query parameters
+ protected $_raw_parameters = array();
+
+ // Array of WHERE clauses
+ protected $_where_conditions = array();
+
+ // LIMIT
+ protected $_limit = null;
+
+ // OFFSET
+ protected $_offset = null;
+
+ // ORDER BY
+ protected $_order_by = array();
+
+ // GROUP BY
+ protected $_group_by = array();
+
+ // HAVING
+ protected $_having_conditions = array();
+
+ // The data for a hydrated instance of the class
+ protected $_data = array();
+
+ // Fields that have been modified during the
+ // lifetime of the object
+ protected $_dirty_fields = array();
+
+ // Fields that are to be inserted in the DB raw
+ protected $_expr_fields = array();
+
+ // Is this a new object (has create() been called)?
+ protected $_is_new = false;
+
+ // Name of the column to use as the primary key for
+ // this instance only. Overrides the config settings.
+ protected $_instance_id_column = null;
+
+ // ---------------------- //
+ // --- STATIC METHODS --- //
+ // ---------------------- //
+
+ /**
+ * Pass configuration settings to the class in the form of
+ * key/value pairs. As a shortcut, if the second argument
+ * is omitted and the key is a string, the setting is
+ * assumed to be the DSN string used by PDO to connect
+ * to the database (often, this will be the only configuration
+ * required to use Idiorm). If you have more than one setting
+ * you wish to configure, another shortcut is to pass an array
+ * of settings (and omit the second argument).
+ * @param string|array $key
+ * @param mixed $value
+ * @param string $connection_name Which connection to use
+ */
+ public static function configure($key, $value = null, $connection_name = self::DEFAULT_CONNECTION) {
+ self::_setup_db_config($connection_name); //ensures at least default config is set
+
+ if (is_array($key)) {
+ // Shortcut: If only one array argument is passed,
+ // assume it's an array of configuration settings
+ foreach ($key as $conf_key => $conf_value) {
+ self::configure($conf_key, $conf_value, $connection_name);
+ }
+ } else {
+ if (is_null($value)) {
+ // Shortcut: If only one string argument is passed,
+ // assume it's a connection string
+ $value = $key;
+ $key = 'connection_string';
+ }
+ self::$_config[$connection_name][$key] = $value;
+ }
+ }
+
+ /**
+ * Retrieve configuration options by key, or as whole array.
+ * @param string $key
+ * @param string $connection_name Which connection to use
+ */
+ public static function get_config($key = null, $connection_name = self::DEFAULT_CONNECTION) {
+ if ($key) {
+ return self::$_config[$connection_name][$key];
+ } else {
+ return self::$_config[$connection_name];
+ }
+ }
+
+ /**
+ * Delete all configs in _config array.
+ */
+ public static function reset_config() {
+ self::$_config = array();
+ }
+
+ /**
+ * Despite its slightly odd name, this is actually the factory
+ * method used to acquire instances of the class. It is named
+ * this way for the sake of a readable interface, ie
+ * ORM::for_table('table_name')->find_one()-> etc. As such,
+ * this will normally be the first method called in a chain.
+ * @param string $table_name
+ * @param string $connection_name Which connection to use
+ * @return ORM
+ */
+ public static function for_table($table_name, $connection_name = self::DEFAULT_CONNECTION) {
+ self::_setup_db($connection_name);
+ return new self($table_name, array(), $connection_name);
+ }
+
+ /**
+ * Set up the database connection used by the class
+ * @param string $connection_name Which connection to use
+ */
+ protected static function _setup_db($connection_name = self::DEFAULT_CONNECTION) {
+ if (!array_key_exists($connection_name, self::$_db) ||
+ !is_object(self::$_db[$connection_name])) {
+ self::_setup_db_config($connection_name);
+
+ $db = new PDO(
+ self::$_config[$connection_name]['connection_string'],
+ self::$_config[$connection_name]['username'],
+ self::$_config[$connection_name]['password'],
+ self::$_config[$connection_name]['driver_options']
+ );
+
+ $db->setAttribute(PDO::ATTR_ERRMODE, self::$_config[$connection_name]['error_mode']);
+ self::set_db($db, $connection_name);
+ }
+ }
+
+ /**
+ * Ensures configuration (multiple connections) is at least set to default.
+ * @param string $connection_name Which connection to use
+ */
+ protected static function _setup_db_config($connection_name) {
+ if (!array_key_exists($connection_name, self::$_config)) {
+ self::$_config[$connection_name] = self::$_default_config;
+ }
+ }
+
+ /**
+ * Set the PDO object used by Idiorm to communicate with the database.
+ * This is public in case the ORM should use a ready-instantiated
+ * PDO object as its database connection. Accepts an optional string key
+ * to identify the connection if multiple connections are used.
+ * @param PDO $db
+ * @param string $connection_name Which connection to use
+ */
+ public static function set_db($db, $connection_name = self::DEFAULT_CONNECTION) {
+ self::_setup_db_config($connection_name);
+ self::$_db[$connection_name] = $db;
+ if(!is_null(self::$_db[$connection_name])) {
+ self::_setup_identifier_quote_character($connection_name);
+ self::_setup_limit_clause_style($connection_name);
+ }
+ }
+
+ /**
+ * Close and delete all registered PDO objects in _db array.
+ */
+ public static function reset_db() {
+ self::$_db = null;
+
+ self::$_db = array();
+ }
+
+ /**
+ * Detect and initialise the character used to quote identifiers
+ * (table names, column names etc). If this has been specified
+ * manually using ORM::configure('identifier_quote_character', 'some-char'),
+ * this will do nothing.
+ * @param string $connection_name Which connection to use
+ */
+ protected static function _setup_identifier_quote_character($connection_name) {
+ if (is_null(self::$_config[$connection_name]['identifier_quote_character'])) {
+ self::$_config[$connection_name]['identifier_quote_character'] =
+ self::_detect_identifier_quote_character($connection_name);
+ }
+ }
+
+ /**
+ * Detect and initialise the limit clause style ("SELECT TOP 5" /
+ * "... LIMIT 5"). If this has been specified manually using
+ * ORM::configure('limit_clause_style', 'top'), this will do nothing.
+ * @param string $connection_name Which connection to use
+ */
+ public static function _setup_limit_clause_style($connection_name) {
+ if (is_null(self::$_config[$connection_name]['limit_clause_style'])) {
+ self::$_config[$connection_name]['limit_clause_style'] =
+ self::_detect_limit_clause_style($connection_name);
+ }
+ }
+
+ /**
+ * Return the correct character used to quote identifiers (table
+ * names, column names etc) by looking at the driver being used by PDO.
+ * @param string $connection_name Which connection to use
+ * @return string
+ */
+ protected static function _detect_identifier_quote_character($connection_name) {
+ switch(self::get_db($connection_name)->getAttribute(PDO::ATTR_DRIVER_NAME)) {
+ case 'pgsql':
+ case 'sqlsrv':
+ case 'dblib':
+ case 'mssql':
+ case 'sybase':
+ case 'firebird':
+ return '"';
+ case 'mysql':
+ case 'sqlite':
+ case 'sqlite2':
+ default:
+ return '`';
+ }
+ }
+
+ /**
+ * Returns a constant after determining the appropriate limit clause
+ * style
+ * @param string $connection_name Which connection to use
+ * @return string Limit clause style keyword/constant
+ */
+ protected static function _detect_limit_clause_style($connection_name) {
+ switch(self::get_db($connection_name)->getAttribute(PDO::ATTR_DRIVER_NAME)) {
+ case 'sqlsrv':
+ case 'dblib':
+ case 'mssql':
+ return ORM::LIMIT_STYLE_TOP_N;
+ default:
+ return ORM::LIMIT_STYLE_LIMIT;
+ }
+ }
+
+ /**
+ * Returns the PDO instance used by the the ORM to communicate with
+ * the database. This can be called if any low-level DB access is
+ * required outside the class. If multiple connections are used,
+ * accepts an optional key name for the connection.
+ * @param string $connection_name Which connection to use
+ * @return PDO
+ */
+ public static function get_db($connection_name = self::DEFAULT_CONNECTION) {
+ self::_setup_db($connection_name); // required in case this is called before Idiorm is instantiated
+ return self::$_db[$connection_name];
+ }
+
+ /**
+ * Executes a raw query as a wrapper for PDOStatement::execute.
+ * Useful for queries that can't be accomplished through Idiorm,
+ * particularly those using engine-specific features.
+ * @example raw_execute('SELECT `name`, AVG(`order`) FROM `customer` GROUP BY `name` HAVING AVG(`order`) > 10')
+ * @example raw_execute('INSERT OR REPLACE INTO `widget` (`id`, `name`) SELECT `id`, `name` FROM `other_table`')
+ * @param string $query The raw SQL query
+ * @param array $parameters Optional bound parameters
+ * @param string $connection_name Which connection to use
+ * @return bool Success
+ */
+ public static function raw_execute($query, $parameters = array(), $connection_name = self::DEFAULT_CONNECTION) {
+ self::_setup_db($connection_name);
+ return self::_execute($query, $parameters, $connection_name);
+ }
+
+ /**
+ * Returns the PDOStatement instance last used by any connection wrapped by the ORM.
+ * Useful for access to PDOStatement::rowCount() or error information
+ * @return PDOStatement
+ */
+ public static function get_last_statement() {
+ return self::$_last_statement;
+ }
+
+ /**
+ * Internal helper method for executing statments. Logs queries, and
+ * stores statement object in ::_last_statment, accessible publicly
+ * through ::get_last_statement()
+ * @param string $query
+ * @param array $parameters An array of parameters to be bound in to the query
+ * @param string $connection_name Which connection to use
+ * @return bool Response of PDOStatement::execute()
+ */
+ protected static function _execute($query, $parameters = array(), $connection_name = self::DEFAULT_CONNECTION) {
+ $statement = self::get_db($connection_name)->prepare($query);
+ self::$_last_statement = $statement;
+ $time = microtime(true);
+
+ foreach ($parameters as $key => &$param) {
+ if (is_null($param)) {
+ $type = PDO::PARAM_NULL;
+ } else if (is_bool($param)) {
+ $type = PDO::PARAM_BOOL;
+ } else if (is_int($param)) {
+ $type = PDO::PARAM_INT;
+ } else {
+ $type = PDO::PARAM_STR;
+ }
+
+ $statement->bindParam(is_int($key) ? ++$key : $key, $param, $type);
+ }
+
+ $q = $statement->execute();
+ self::_log_query($query, $parameters, $connection_name, (microtime(true)-$time));
+
+ return $q;
+ }
+
+ /**
+ * Add a query to the internal query log. Only works if the
+ * 'logging' config option is set to true.
+ *
+ * This works by manually binding the parameters to the query - the
+ * query isn't executed like this (PDO normally passes the query and
+ * parameters to the database which takes care of the binding) but
+ * doing it this way makes the logged queries more readable.
+ * @param string $query
+ * @param array $parameters An array of parameters to be bound in to the query
+ * @param string $connection_name Which connection to use
+ * @param float $query_time Query time
+ * @return bool
+ */
+ protected static function _log_query($query, $parameters, $connection_name, $query_time) {
+ // If logging is not enabled, do nothing
+ if (!self::$_config[$connection_name]['logging']) {
+ return false;
+ }
+
+ if (!isset(self::$_query_log[$connection_name])) {
+ self::$_query_log[$connection_name] = array();
+ }
+
+ if (empty($parameters)) {
+ $bound_query = $query;
+ } else {
+ // Escape the parameters
+ $parameters = array_map(array(self::get_db($connection_name), 'quote'), $parameters);
+
+ if (array_values($parameters) === $parameters) {
+ // ? placeholders
+ // Avoid %format collision for vsprintf
+ $query = str_replace("%", "%%", $query);
+
+ // Replace placeholders in the query for vsprintf
+ if(false !== strpos($query, "'") || false !== strpos($query, '"')) {
+ $query = IdiormString::str_replace_outside_quotes("?", "%s", $query);
+ } else {
+ $query = str_replace("?", "%s", $query);
+ }
+
+ // Replace the question marks in the query with the parameters
+ $bound_query = vsprintf($query, $parameters);
+ } else {
+ // named placeholders
+ foreach ($parameters as $key => $val) {
+ $query = str_replace($key, $val, $query);
+ }
+ $bound_query = $query;
+ }
+ }
+
+ self::$_last_query = $bound_query;
+ self::$_query_log[$connection_name][] = $bound_query;
+
+
+ if(is_callable(self::$_config[$connection_name]['logger'])){
+ $logger = self::$_config[$connection_name]['logger'];
+ $logger($bound_query, $query_time);
+ }
+
+ return true;
+ }
+
+ /**
+ * Get the last query executed. Only works if the
+ * 'logging' config option is set to true. Otherwise
+ * this will return null. Returns last query from all connections if
+ * no connection_name is specified
+ * @param null|string $connection_name Which connection to use
+ * @return string
+ */
+ public static function get_last_query($connection_name = null) {
+ if ($connection_name === null) {
+ return self::$_last_query;
+ }
+ if (!isset(self::$_query_log[$connection_name])) {
+ return '';
+ }
+
+ return end(self::$_query_log[$connection_name]);
+ }
+
+ /**
+ * Get an array containing all the queries run on a
+ * specified connection up to now.
+ * Only works if the 'logging' config option is
+ * set to true. Otherwise, returned array will be empty.
+ * @param string $connection_name Which connection to use
+ */
+ public static function get_query_log($connection_name = self::DEFAULT_CONNECTION) {
+ if (isset(self::$_query_log[$connection_name])) {
+ return self::$_query_log[$connection_name];
+ }
+ return array();
+ }
+
+ /**
+ * Get a list of the available connection names
+ * @return array
+ */
+ public static function get_connection_names() {
+ return array_keys(self::$_db);
+ }
+
+ // ------------------------ //
+ // --- INSTANCE METHODS --- //
+ // ------------------------ //
+
+ /**
+ * "Private" constructor; shouldn't be called directly.
+ * Use the ORM::for_table factory method instead.
+ */
+ protected function __construct($table_name, $data = array(), $connection_name = self::DEFAULT_CONNECTION) {
+ $this->_table_name = $table_name;
+ $this->_data = $data;
+
+ $this->_connection_name = $connection_name;
+ self::_setup_db_config($connection_name);
+ }
+
+ /**
+ * Create a new, empty instance of the class. Used
+ * to add a new row to your database. May optionally
+ * be passed an associative array of data to populate
+ * the instance. If so, all fields will be flagged as
+ * dirty so all will be saved to the database when
+ * save() is called.
+ */
+ public function create($data=null) {
+ $this->_is_new = true;
+ if (!is_null($data)) {
+ return $this->hydrate($data)->force_all_dirty();
+ }
+ return $this;
+ }
+
+ /**
+ * Specify the ID column to use for this instance or array of instances only.
+ * This overrides the id_column and id_column_overrides settings.
+ *
+ * This is mostly useful for libraries built on top of Idiorm, and will
+ * not normally be used in manually built queries. If you don't know why
+ * you would want to use this, you should probably just ignore it.
+ */
+ public function use_id_column($id_column) {
+ $this->_instance_id_column = $id_column;
+ return $this;
+ }
+
+ /**
+ * Create an ORM instance from the given row (an associative
+ * array of data fetched from the database)
+ */
+ protected function _create_instance_from_row($row) {
+ $instance = self::for_table($this->_table_name, $this->_connection_name);
+ $instance->use_id_column($this->_instance_id_column);
+ $instance->hydrate($row);
+ return $instance;
+ }
+
+ /**
+ * Tell the ORM that you are expecting a single result
+ * back from your query, and execute it. Will return
+ * a single instance of the ORM class, or false if no
+ * rows were returned.
+ * As a shortcut, you may supply an ID as a parameter
+ * to this method. This will perform a primary key
+ * lookup on the table.
+ */
+ public function find_one($id=null) {
+ if (!is_null($id)) {
+ $this->where_id_is($id);
+ }
+ $this->limit(1);
+ $rows = $this->_run();
+
+ if (empty($rows)) {
+ return false;
+ }
+
+ return $this->_create_instance_from_row($rows[0]);
+ }
+
+ /**
+ * Tell the ORM that you are expecting multiple results
+ * from your query, and execute it. Will return an array
+ * of instances of the ORM class, or an empty array if
+ * no rows were returned.
+ * @return array|\IdiormResultSet
+ */
+ public function find_many() {
+ if(self::$_config[$this->_connection_name]['return_result_sets']) {
+ return $this->find_result_set();
+ }
+ return $this->_find_many();
+ }
+
+ /**
+ * Tell the ORM that you are expecting multiple results
+ * from your query, and execute it. Will return an array
+ * of instances of the ORM class, or an empty array if
+ * no rows were returned.
+ * @return array
+ */
+ protected function _find_many() {
+ $rows = $this->_run();
+ return array_map(array($this, '_create_instance_from_row'), $rows);
+ }
+
+ /**
+ * Tell the ORM that you are expecting multiple results
+ * from your query, and execute it. Will return a result set object
+ * containing instances of the ORM class.
+ * @return \IdiormResultSet
+ */
+ public function find_result_set() {
+ return new IdiormResultSet($this->_find_many());
+ }
+
+ /**
+ * Tell the ORM that you are expecting multiple results
+ * from your query, and execute it. Will return an array,
+ * or an empty array if no rows were returned.
+ * @return array
+ */
+ public function find_array() {
+ return $this->_run();
+ }
+
+ /**
+ * Tell the ORM that you wish to execute a COUNT query.
+ * Will return an integer representing the number of
+ * rows returned.
+ */
+ public function count($column = '*') {
+ return $this->_call_aggregate_db_function(__FUNCTION__, $column);
+ }
+
+ /**
+ * Tell the ORM that you wish to execute a MAX query.
+ * Will return the max value of the choosen column.
+ */
+ public function max($column) {
+ return $this->_call_aggregate_db_function(__FUNCTION__, $column);
+ }
+
+ /**
+ * Tell the ORM that you wish to execute a MIN query.
+ * Will return the min value of the choosen column.
+ */
+ public function min($column) {
+ return $this->_call_aggregate_db_function(__FUNCTION__, $column);
+ }
+
+ /**
+ * Tell the ORM that you wish to execute a AVG query.
+ * Will return the average value of the choosen column.
+ */
+ public function avg($column) {
+ return $this->_call_aggregate_db_function(__FUNCTION__, $column);
+ }
+
+ /**
+ * Tell the ORM that you wish to execute a SUM query.
+ * Will return the sum of the choosen column.
+ */
+ public function sum($column) {
+ return $this->_call_aggregate_db_function(__FUNCTION__, $column);
+ }
+
+ /**
+ * Execute an aggregate query on the current connection.
+ * @param string $sql_function The aggregate function to call eg. MIN, COUNT, etc
+ * @param string $column The column to execute the aggregate query against
+ * @return int
+ */
+ protected function _call_aggregate_db_function($sql_function, $column) {
+ $alias = strtolower($sql_function);
+ $sql_function = strtoupper($sql_function);
+ if('*' != $column) {
+ $column = $this->_quote_identifier($column);
+ }
+ $result_columns = $this->_result_columns;
+ $this->_result_columns = array();
+ $this->select_expr("$sql_function($column)", $alias);
+ $result = $this->find_one();
+ $this->_result_columns = $result_columns;
+
+ $return_value = 0;
+ if($result !== false && isset($result->$alias)) {
+ if (!is_numeric($result->$alias)) {
+ $return_value = $result->$alias;
+ }
+ elseif((int) $result->$alias == (float) $result->$alias) {
+ $return_value = (int) $result->$alias;
+ } else {
+ $return_value = (float) $result->$alias;
+ }
+ }
+ return $return_value;
+ }
+
+ /**
+ * This method can be called to hydrate (populate) this
+ * instance of the class from an associative array of data.
+ * This will usually be called only from inside the class,
+ * but it's public in case you need to call it directly.
+ */
+ public function hydrate($data=array()) {
+ $this->_data = $data;
+ return $this;
+ }
+
+ /**
+ * Force the ORM to flag all the fields in the $data array
+ * as "dirty" and therefore update them when save() is called.
+ */
+ public function force_all_dirty() {
+ $this->_dirty_fields = $this->_data;
+ return $this;
+ }
+
+ /**
+ * Perform a raw query. The query can contain placeholders in
+ * either named or question mark style. If placeholders are
+ * used, the parameters should be an array of values which will
+ * be bound to the placeholders in the query. If this method
+ * is called, all other query building methods will be ignored.
+ */
+ public function raw_query($query, $parameters = array()) {
+ $this->_is_raw_query = true;
+ $this->_raw_query = $query;
+ $this->_raw_parameters = $parameters;
+ return $this;
+ }
+
+ /**
+ * Add an alias for the main table to be used in SELECT queries
+ */
+ public function table_alias($alias) {
+ $this->_table_alias = $alias;
+ return $this;
+ }
+
+ /**
+ * Internal method to add an unquoted expression to the set
+ * of columns returned by the SELECT query. The second optional
+ * argument is the alias to return the expression as.
+ */
+ protected function _add_result_column($expr, $alias=null) {
+ if (!is_null($alias)) {
+ $expr .= " AS " . $this->_quote_identifier($alias);
+ }
+
+ if ($this->_using_default_result_columns) {
+ $this->_result_columns = array($expr);
+ $this->_using_default_result_columns = false;
+ } else {
+ $this->_result_columns[] = $expr;
+ }
+ return $this;
+ }
+
+ /**
+ * Counts the number of columns that belong to the primary
+ * key and their value is null.
+ */
+ public function count_null_id_columns() {
+ if (is_array($this->_get_id_column_name())) {
+ return count(array_filter($this->id(), 'is_null'));
+ } else {
+ return is_null($this->id()) ? 1 : 0;
+ }
+ }
+
+ /**
+ * Add a column to the list of columns returned by the SELECT
+ * query. This defaults to '*'. The second optional argument is
+ * the alias to return the column as.
+ */
+ public function select($column, $alias=null) {
+ $column = $this->_quote_identifier($column);
+ return $this->_add_result_column($column, $alias);
+ }
+
+ /**
+ * Add an unquoted expression to the list of columns returned
+ * by the SELECT query. The second optional argument is
+ * the alias to return the column as.
+ */
+ public function select_expr($expr, $alias=null) {
+ return $this->_add_result_column($expr, $alias);
+ }
+
+ /**
+ * Add columns to the list of columns returned by the SELECT
+ * query. This defaults to '*'. Many columns can be supplied
+ * as either an array or as a list of parameters to the method.
+ *
+ * Note that the alias must not be numeric - if you want a
+ * numeric alias then prepend it with some alpha chars. eg. a1
+ *
+ * @example select_many(array('alias' => 'column', 'column2', 'alias2' => 'column3'), 'column4', 'column5');
+ * @example select_many('column', 'column2', 'column3');
+ * @example select_many(array('column', 'column2', 'column3'), 'column4', 'column5');
+ *
+ * @return \ORM
+ */
+ public function select_many() {
+ $columns = func_get_args();
+ if(!empty($columns)) {
+ $columns = $this->_normalise_select_many_columns($columns);
+ foreach($columns as $alias => $column) {
+ if(is_numeric($alias)) {
+ $alias = null;
+ }
+ $this->select($column, $alias);
+ }
+ }
+ return $this;
+ }
+
+ /**
+ * Add an unquoted expression to the list of columns returned
+ * by the SELECT query. Many columns can be supplied as either
+ * an array or as a list of parameters to the method.
+ *
+ * Note that the alias must not be numeric - if you want a
+ * numeric alias then prepend it with some alpha chars. eg. a1
+ *
+ * @example select_many_expr(array('alias' => 'column', 'column2', 'alias2' => 'column3'), 'column4', 'column5')
+ * @example select_many_expr('column', 'column2', 'column3')
+ * @example select_many_expr(array('column', 'column2', 'column3'), 'column4', 'column5')
+ *
+ * @return \ORM
+ */
+ public function select_many_expr() {
+ $columns = func_get_args();
+ if(!empty($columns)) {
+ $columns = $this->_normalise_select_many_columns($columns);
+ foreach($columns as $alias => $column) {
+ if(is_numeric($alias)) {
+ $alias = null;
+ }
+ $this->select_expr($column, $alias);
+ }
+ }
+ return $this;
+ }
+
+ /**
+ * Take a column specification for the select many methods and convert it
+ * into a normalised array of columns and aliases.
+ *
+ * It is designed to turn the following styles into a normalised array:
+ *
+ * array(array('alias' => 'column', 'column2', 'alias2' => 'column3'), 'column4', 'column5'))
+ *
+ * @param array $columns
+ * @return array
+ */
+ protected function _normalise_select_many_columns($columns) {
+ $return = array();
+ foreach($columns as $column) {
+ if(is_array($column)) {
+ foreach($column as $key => $value) {
+ if(!is_numeric($key)) {
+ $return[$key] = $value;
+ } else {
+ $return[] = $value;
+ }
+ }
+ } else {
+ $return[] = $column;
+ }
+ }
+ return $return;
+ }
+
+ /**
+ * Add a DISTINCT keyword before the list of columns in the SELECT query
+ */
+ public function distinct() {
+ $this->_distinct = true;
+ return $this;
+ }
+
+ /**
+ * Internal method to add a JOIN source to the query.
+ *
+ * The join_operator should be one of INNER, LEFT OUTER, CROSS etc - this
+ * will be prepended to JOIN.
+ *
+ * The table should be the name of the table to join to.
+ *
+ * The constraint may be either a string or an array with three elements. If it
+ * is a string, it will be compiled into the query as-is, with no escaping. The
+ * recommended way to supply the constraint is as an array with three elements:
+ *
+ * first_column, operator, second_column
+ *
+ * Example: array('user.id', '=', 'profile.user_id')
+ *
+ * will compile to
+ *
+ * ON `user`.`id` = `profile`.`user_id`
+ *
+ * The final (optional) argument specifies an alias for the joined table.
+ */
+ protected function _add_join_source($join_operator, $table, $constraint, $table_alias=null) {
+
+ $join_operator = trim("{$join_operator} JOIN");
+
+ $table = $this->_quote_identifier($table);
+
+ // Add table alias if present
+ if (!is_null($table_alias)) {
+ $table_alias = $this->_quote_identifier($table_alias);
+ $table .= " {$table_alias}";
+ }
+
+ // Build the constraint
+ if (is_array($constraint)) {
+ list($first_column, $operator, $second_column) = $constraint;
+ $first_column = $this->_quote_identifier($first_column);
+ $second_column = $this->_quote_identifier($second_column);
+ $constraint = "{$first_column} {$operator} {$second_column}";
+ }
+
+ $this->_join_sources[] = "{$join_operator} {$table} ON {$constraint}";
+ return $this;
+ }
+
+ /**
+ * Add a RAW JOIN source to the query
+ */
+ public function raw_join($table, $constraint, $table_alias, $parameters = array()) {
+ // Add table alias if present
+ if (!is_null($table_alias)) {
+ $table_alias = $this->_quote_identifier($table_alias);
+ $table .= " {$table_alias}";
+ }
+
+ $this->_values = array_merge($this->_values, $parameters);
+
+ // Build the constraint
+ if (is_array($constraint)) {
+ list($first_column, $operator, $second_column) = $constraint;
+ $first_column = $this->_quote_identifier($first_column);
+ $second_column = $this->_quote_identifier($second_column);
+ $constraint = "{$first_column} {$operator} {$second_column}";
+ }
+
+ $this->_join_sources[] = "{$table} ON {$constraint}";
+ return $this;
+ }
+
+ /**
+ * Add a simple JOIN source to the query
+ */
+ public function join($table, $constraint, $table_alias=null) {
+ return $this->_add_join_source("", $table, $constraint, $table_alias);
+ }
+
+ /**
+ * Add an INNER JOIN souce to the query
+ */
+ public function inner_join($table, $constraint, $table_alias=null) {
+ return $this->_add_join_source("INNER", $table, $constraint, $table_alias);
+ }
+
+ /**
+ * Add a LEFT OUTER JOIN souce to the query
+ */
+ public function left_outer_join($table, $constraint, $table_alias=null) {
+ return $this->_add_join_source("LEFT OUTER", $table, $constraint, $table_alias);
+ }
+
+ /**
+ * Add an RIGHT OUTER JOIN souce to the query
+ */
+ public function right_outer_join($table, $constraint, $table_alias=null) {
+ return $this->_add_join_source("RIGHT OUTER", $table, $constraint, $table_alias);
+ }
+
+ /**
+ * Add an FULL OUTER JOIN souce to the query
+ */
+ public function full_outer_join($table, $constraint, $table_alias=null) {
+ return $this->_add_join_source("FULL OUTER", $table, $constraint, $table_alias);
+ }
+
+ /**
+ * Internal method to add a HAVING condition to the query
+ */
+ protected function _add_having($fragment, $values=array()) {
+ return $this->_add_condition('having', $fragment, $values);
+ }
+
+ /**
+ * Internal method to add a HAVING condition to the query
+ */
+ protected function _add_simple_having($column_name, $separator, $value) {
+ return $this->_add_simple_condition('having', $column_name, $separator, $value);
+ }
+
+ /**
+ * Internal method to add a HAVING clause with multiple values (like IN and NOT IN)
+ */
+ public function _add_having_placeholder($column_name, $separator, $values) {
+ if (!is_array($column_name)) {
+ $data = array($column_name => $values);
+ } else {
+ $data = $column_name;
+ }
+ $result = $this;
+ foreach ($data as $key => $val) {
+ $column = $result->_quote_identifier($key);
+ $placeholders = $result->_create_placeholders($val);
+ $result = $result->_add_having("{$column} {$separator} ({$placeholders})", $val);
+ }
+ return $result;
+ }
+
+ /**
+ * Internal method to add a HAVING clause with no parameters(like IS NULL and IS NOT NULL)
+ */
+ public function _add_having_no_value($column_name, $operator) {
+ $conditions = (is_array($column_name)) ? $column_name : array($column_name);
+ $result = $this;
+ foreach($conditions as $column) {
+ $column = $this->_quote_identifier($column);
+ $result = $result->_add_having("{$column} {$operator}");
+ }
+ return $result;
+ }
+
+ /**
+ * Internal method to add a WHERE condition to the query
+ */
+ protected function _add_where($fragment, $values=array()) {
+ return $this->_add_condition('where', $fragment, $values);
+ }
+
+ /**
+ * Internal method to add a WHERE condition to the query
+ */
+ protected function _add_simple_where($column_name, $separator, $value) {
+ return $this->_add_simple_condition('where', $column_name, $separator, $value);
+ }
+
+ /**
+ * Add a WHERE clause with multiple values (like IN and NOT IN)
+ */
+ public function _add_where_placeholder($column_name, $separator, $values) {
+ if (!is_array($column_name)) {
+ $data = array($column_name => $values);
+ } else {
+ $data = $column_name;
+ }
+ $result = $this;
+ foreach ($data as $key => $val) {
+ $column = $result->_quote_identifier($key);
+ $placeholders = $result->_create_placeholders($val);
+ $result = $result->_add_where("{$column} {$separator} ({$placeholders})", $val);
+ }
+ return $result;
+ }
+
+ /**
+ * Add a WHERE clause with no parameters(like IS NULL and IS NOT NULL)
+ */
+ public function _add_where_no_value($column_name, $operator) {
+ $conditions = (is_array($column_name)) ? $column_name : array($column_name);
+ $result = $this;
+ foreach($conditions as $column) {
+ $column = $this->_quote_identifier($column);
+ $result = $result->_add_where("{$column} {$operator}");
+ }
+ return $result;
+ }
+
+ /**
+ * Internal method to add a HAVING or WHERE condition to the query
+ */
+ protected function _add_condition($type, $fragment, $values=array()) {
+ $conditions_class_property_name = "_{$type}_conditions";
+ if (!is_array($values)) {
+ $values = array($values);
+ }
+ array_push($this->$conditions_class_property_name, array(
+ self::CONDITION_FRAGMENT => $fragment,
+ self::CONDITION_VALUES => $values,
+ ));
+ return $this;
+ }
+
+ /**
+ * Helper method to compile a simple COLUMN SEPARATOR VALUE
+ * style HAVING or WHERE condition into a string and value ready to
+ * be passed to the _add_condition method. Avoids duplication
+ * of the call to _quote_identifier
+ *
+ * If column_name is an associative array, it will add a condition for each column
+ */
+ protected function _add_simple_condition($type, $column_name, $separator, $value) {
+ $multiple = is_array($column_name) ? $column_name : array($column_name => $value);
+ $result = $this;
+
+ foreach($multiple as $key => $val) {
+ // Add the table name in case of ambiguous columns
+ if (count($result->_join_sources) > 0 && strpos($key, '.') === false) {
+ $table = $result->_table_name;
+ if (!is_null($result->_table_alias)) {
+ $table = $result->_table_alias;
+ }
+
+ $key = "{$table}.{$key}";
+ }
+ $key = $result->_quote_identifier($key);
+ $result = $result->_add_condition($type, "{$key} {$separator} ?", $val);
+ }
+ return $result;
+ }
+
+ /**
+ * Return a string containing the given number of question marks,
+ * separated by commas. Eg "?, ?, ?"
+ */
+ protected function _create_placeholders($fields) {
+ if(!empty($fields)) {
+ $db_fields = array();
+ foreach($fields as $key => $value) {
+ // Process expression fields directly into the query
+ if(array_key_exists($key, $this->_expr_fields)) {
+ $db_fields[] = $value;
+ } else {
+ $db_fields[] = '?';
+ }
+ }
+ return implode(', ', $db_fields);
+ }
+ }
+
+ /**
+ * Helper method that filters a column/value array returning only those
+ * columns that belong to a compound primary key.
+ *
+ * If the key contains a column that does not exist in the given array,
+ * a null value will be returned for it.
+ */
+ protected function _get_compound_id_column_values($value) {
+ $filtered = array();
+ foreach($this->_get_id_column_name() as $key) {
+ $filtered[$key] = isset($value[$key]) ? $value[$key] : null;
+ }
+ return $filtered;
+ }
+
+ /**
+ * Helper method that filters an array containing compound column/value
+ * arrays.
+ */
+ protected function _get_compound_id_column_values_array($values) {
+ $filtered = array();
+ foreach($values as $value) {
+ $filtered[] = $this->_get_compound_id_column_values($value);
+ }
+ return $filtered;
+ }
+
+ /**
+ * Add a WHERE column = value clause to your query. Each time
+ * this is called in the chain, an additional WHERE will be
+ * added, and these will be ANDed together when the final query
+ * is built.
+ *
+ * If you use an array in $column_name, a new clause will be
+ * added for each element. In this case, $value is ignored.
+ */
+ public function where($column_name, $value=null) {
+ return $this->where_equal($column_name, $value);
+ }
+
+ /**
+ * More explicitly named version of for the where() method.
+ * Can be used if preferred.
+ */
+ public function where_equal($column_name, $value=null) {
+ return $this->_add_simple_where($column_name, '=', $value);
+ }
+
+ /**
+ * Add a WHERE column != value clause to your query.
+ */
+ public function where_not_equal($column_name, $value=null) {
+ return $this->_add_simple_where($column_name, '!=', $value);
+ }
+
+ /**
+ * Special method to query the table by its primary key
+ *
+ * If primary key is compound, only the columns that
+ * belong to they key will be used for the query
+ */
+ public function where_id_is($id) {
+ return (is_array($this->_get_id_column_name())) ?
+ $this->where($this->_get_compound_id_column_values($id), null) :
+ $this->where($this->_get_id_column_name(), $id);
+ }
+
+ /**
+ * Allows adding a WHERE clause that matches any of the conditions
+ * specified in the array. Each element in the associative array will
+ * be a different condition, where the key will be the column name.
+ *
+ * By default, an equal operator will be used against all columns, but
+ * it can be overriden for any or every column using the second parameter.
+ *
+ * Each condition will be ORed together when added to the final query.
+ */
+ public function where_any_is($values, $operator='=') {
+ $data = array();
+ $query = array("((");
+ $first = true;
+ foreach ($values as $value) {
+ if ($first) {
+ $first = false;
+ } else {
+ $query[] = ") OR (";
+ }
+ $firstsub = true;
+ foreach($value as $key => $item) {
+ $op = is_string($operator) ? $operator : (isset($operator[$key]) ? $operator[$key] : '=');
+ if ($firstsub) {
+ $firstsub = false;
+ } else {
+ $query[] = "AND";
+ }
+ $query[] = $this->_quote_identifier($key);
+ $data[] = $item;
+ $query[] = $op . " ?";
+ }
+ }
+ $query[] = "))";
+ return $this->where_raw(join(' ', $query), $data);
+ }
+
+ /**
+ * Similar to where_id_is() but allowing multiple primary keys.
+ *
+ * If primary key is compound, only the columns that
+ * belong to they key will be used for the query
+ */
+ public function where_id_in($ids) {
+ return (is_array($this->_get_id_column_name())) ?
+ $this->where_any_is($this->_get_compound_id_column_values_array($ids)) :
+ $this->where_in($this->_get_id_column_name(), $ids);
+ }
+
+ /**
+ * Add a WHERE ... LIKE clause to your query.
+ */
+ public function where_like($column_name, $value=null) {
+ return $this->_add_simple_where($column_name, 'LIKE', $value);
+ }
+
+ /**
+ * Add where WHERE ... NOT LIKE clause to your query.
+ */
+ public function where_not_like($column_name, $value=null) {
+ return $this->_add_simple_where($column_name, 'NOT LIKE', $value);
+ }
+
+ /**
+ * Add a WHERE ... > clause to your query
+ */
+ public function where_gt($column_name, $value=null) {
+ return $this->_add_simple_where($column_name, '>', $value);
+ }
+
+ /**
+ * Add a WHERE ... < clause to your query
+ */
+ public function where_lt($column_name, $value=null) {
+ return $this->_add_simple_where($column_name, '<', $value);
+ }
+
+ /**
+ * Add a WHERE ... >= clause to your query
+ */
+ public function where_gte($column_name, $value=null) {
+ return $this->_add_simple_where($column_name, '>=', $value);
+ }
+
+ /**
+ * Add a WHERE ... <= clause to your query
+ */
+ public function where_lte($column_name, $value=null) {
+ return $this->_add_simple_where($column_name, '<=', $value);
+ }
+
+ /**
+ * Add a WHERE ... IN clause to your query
+ */
+ public function where_in($column_name, $values) {
+ return $this->_add_where_placeholder($column_name, 'IN', $values);
+ }
+
+ /**
+ * Add a WHERE ... NOT IN clause to your query
+ */
+ public function where_not_in($column_name, $values) {
+ return $this->_add_where_placeholder($column_name, 'NOT IN', $values);
+ }
+
+ /**
+ * Add a WHERE column IS NULL clause to your query
+ */
+ public function where_null($column_name) {
+ return $this->_add_where_no_value($column_name, "IS NULL");
+ }
+
+ /**
+ * Add a WHERE column IS NOT NULL clause to your query
+ */
+ public function where_not_null($column_name) {
+ return $this->_add_where_no_value($column_name, "IS NOT NULL");
+ }
+
+ /**
+ * Add a raw WHERE clause to the query. The clause should
+ * contain question mark placeholders, which will be bound
+ * to the parameters supplied in the second argument.
+ */
+ public function where_raw($clause, $parameters=array()) {
+ return $this->_add_where($clause, $parameters);
+ }
+
+ /**
+ * Add a LIMIT to the query
+ */
+ public function limit($limit) {
+ $this->_limit = $limit;
+ return $this;
+ }
+
+ /**
+ * Add an OFFSET to the query
+ */
+ public function offset($offset) {
+ $this->_offset = $offset;
+ return $this;
+ }
+
+ /**
+ * Add an ORDER BY clause to the query
+ */
+ protected function _add_order_by($column_name, $ordering) {
+ $column_name = $this->_quote_identifier($column_name);
+ $this->_order_by[] = "{$column_name} {$ordering}";
+ return $this;
+ }
+
+ /**
+ * Add an ORDER BY column DESC clause
+ */
+ public function order_by_desc($column_name) {
+ return $this->_add_order_by($column_name, 'DESC');
+ }
+
+ /**
+ * Add an ORDER BY column ASC clause
+ */
+ public function order_by_asc($column_name) {
+ return $this->_add_order_by($column_name, 'ASC');
+ }
+
+ /**
+ * Add an unquoted expression as an ORDER BY clause
+ */
+ public function order_by_expr($clause) {
+ $this->_order_by[] = $clause;
+ return $this;
+ }
+
+ /**
+ * Add a column to the list of columns to GROUP BY
+ */
+ public function group_by($column_name) {
+ $column_name = $this->_quote_identifier($column_name);
+ $this->_group_by[] = $column_name;
+ return $this;
+ }
+
+ /**
+ * Add an unquoted expression to the list of columns to GROUP BY
+ */
+ public function group_by_expr($expr) {
+ $this->_group_by[] = $expr;
+ return $this;
+ }
+
+ /**
+ * Add a HAVING column = value clause to your query. Each time
+ * this is called in the chain, an additional HAVING will be
+ * added, and these will be ANDed together when the final query
+ * is built.
+ *
+ * If you use an array in $column_name, a new clause will be
+ * added for each element. In this case, $value is ignored.
+ */
+ public function having($column_name, $value=null) {
+ return $this->having_equal($column_name, $value);
+ }
+
+ /**
+ * More explicitly named version of for the having() method.
+ * Can be used if preferred.
+ */
+ public function having_equal($column_name, $value=null) {
+ return $this->_add_simple_having($column_name, '=', $value);
+ }
+
+ /**
+ * Add a HAVING column != value clause to your query.
+ */
+ public function having_not_equal($column_name, $value=null) {
+ return $this->_add_simple_having($column_name, '!=', $value);
+ }
+
+ /**
+ * Special method to query the table by its primary key.
+ *
+ * If primary key is compound, only the columns that
+ * belong to they key will be used for the query
+ */
+ public function having_id_is($id) {
+ return (is_array($this->_get_id_column_name())) ?
+ $this->having($this->_get_compound_id_column_values($id), null) :
+ $this->having($this->_get_id_column_name(), $id);
+ }
+
+ /**
+ * Add a HAVING ... LIKE clause to your query.
+ */
+ public function having_like($column_name, $value=null) {
+ return $this->_add_simple_having($column_name, 'LIKE', $value);
+ }
+
+ /**
+ * Add where HAVING ... NOT LIKE clause to your query.
+ */
+ public function having_not_like($column_name, $value=null) {
+ return $this->_add_simple_having($column_name, 'NOT LIKE', $value);
+ }
+
+ /**
+ * Add a HAVING ... > clause to your query
+ */
+ public function having_gt($column_name, $value=null) {
+ return $this->_add_simple_having($column_name, '>', $value);
+ }
+
+ /**
+ * Add a HAVING ... < clause to your query
+ */
+ public function having_lt($column_name, $value=null) {
+ return $this->_add_simple_having($column_name, '<', $value);
+ }
+
+ /**
+ * Add a HAVING ... >= clause to your query
+ */
+ public function having_gte($column_name, $value=null) {
+ return $this->_add_simple_having($column_name, '>=', $value);
+ }
+
+ /**
+ * Add a HAVING ... <= clause to your query
+ */
+ public function having_lte($column_name, $value=null) {
+ return $this->_add_simple_having($column_name, '<=', $value);
+ }
+
+ /**
+ * Add a HAVING ... IN clause to your query
+ */
+ public function having_in($column_name, $values=null) {
+ return $this->_add_having_placeholder($column_name, 'IN', $values);
+ }
+
+ /**
+ * Add a HAVING ... NOT IN clause to your query
+ */
+ public function having_not_in($column_name, $values=null) {
+ return $this->_add_having_placeholder($column_name, 'NOT IN', $values);
+ }
+
+ /**
+ * Add a HAVING column IS NULL clause to your query
+ */
+ public function having_null($column_name) {
+ return $this->_add_having_no_value($column_name, 'IS NULL');
+ }
+
+ /**
+ * Add a HAVING column IS NOT NULL clause to your query
+ */
+ public function having_not_null($column_name) {
+ return $this->_add_having_no_value($column_name, 'IS NOT NULL');
+ }
+
+ /**
+ * Add a raw HAVING clause to the query. The clause should
+ * contain question mark placeholders, which will be bound
+ * to the parameters supplied in the second argument.
+ */
+ public function having_raw($clause, $parameters=array()) {
+ return $this->_add_having($clause, $parameters);
+ }
+
+ /**
+ * Build a SELECT statement based on the clauses that have
+ * been passed to this instance by chaining method calls.
+ */
+ protected function _build_select() {
+ // If the query is raw, just set the $this->_values to be
+ // the raw query parameters and return the raw query
+ if ($this->_is_raw_query) {
+ $this->_values = $this->_raw_parameters;
+ return $this->_raw_query;
+ }
+
+ // Build and return the full SELECT statement by concatenating
+ // the results of calling each separate builder method.
+ return $this->_join_if_not_empty(" ", array(
+ $this->_build_select_start(),
+ $this->_build_join(),
+ $this->_build_where(),
+ $this->_build_group_by(),
+ $this->_build_having(),
+ $this->_build_order_by(),
+ $this->_build_limit(),
+ $this->_build_offset(),
+ ));
+ }
+
+ /**
+ * Build the start of the SELECT statement
+ */
+ protected function _build_select_start() {
+ $fragment = 'SELECT ';
+ $result_columns = join(', ', $this->_result_columns);
+
+ if (!is_null($this->_limit) &&
+ self::$_config[$this->_connection_name]['limit_clause_style'] === ORM::LIMIT_STYLE_TOP_N) {
+ $fragment .= "TOP {$this->_limit} ";
+ }
+
+ if ($this->_distinct) {
+ $result_columns = 'DISTINCT ' . $result_columns;
+ }
+
+ $fragment .= "{$result_columns} FROM " . $this->_quote_identifier($this->_table_name);
+
+ if (!is_null($this->_table_alias)) {
+ $fragment .= " " . $this->_quote_identifier($this->_table_alias);
+ }
+ return $fragment;
+ }
+
+ /**
+ * Build the JOIN sources
+ */
+ protected function _build_join() {
+ if (count($this->_join_sources) === 0) {
+ return '';
+ }
+
+ return join(" ", $this->_join_sources);
+ }
+
+ /**
+ * Build the WHERE clause(s)
+ */
+ protected function _build_where() {
+ return $this->_build_conditions('where');
+ }
+
+ /**
+ * Build the HAVING clause(s)
+ */
+ protected function _build_having() {
+ return $this->_build_conditions('having');
+ }
+
+ /**
+ * Build GROUP BY
+ */
+ protected function _build_group_by() {
+ if (count($this->_group_by) === 0) {
+ return '';
+ }
+ return "GROUP BY " . join(", ", $this->_group_by);
+ }
+
+ /**
+ * Build a WHERE or HAVING clause
+ * @param string $type
+ * @return string
+ */
+ protected function _build_conditions($type) {
+ $conditions_class_property_name = "_{$type}_conditions";
+ // If there are no clauses, return empty string
+ if (count($this->$conditions_class_property_name) === 0) {
+ return '';
+ }
+
+ $conditions = array();
+ foreach ($this->$conditions_class_property_name as $condition) {
+ $conditions[] = $condition[self::CONDITION_FRAGMENT];
+ $this->_values = array_merge($this->_values, $condition[self::CONDITION_VALUES]);
+ }
+
+ return strtoupper($type) . " " . join(" AND ", $conditions);
+ }
+
+ /**
+ * Build ORDER BY
+ */
+ protected function _build_order_by() {
+ if (count($this->_order_by) === 0) {
+ return '';
+ }
+ return "ORDER BY " . join(", ", $this->_order_by);
+ }
+
+ /**
+ * Build LIMIT
+ */
+ protected function _build_limit() {
+ $fragment = '';
+ if (!is_null($this->_limit) &&
+ self::$_config[$this->_connection_name]['limit_clause_style'] == ORM::LIMIT_STYLE_LIMIT) {
+ if (self::get_db($this->_connection_name)->getAttribute(PDO::ATTR_DRIVER_NAME) == 'firebird') {
+ $fragment = 'ROWS';
+ } else {
+ $fragment = 'LIMIT';
+ }
+ $fragment .= " {$this->_limit}";
+ }
+ return $fragment;
+ }
+
+ /**
+ * Build OFFSET
+ */
+ protected function _build_offset() {
+ if (!is_null($this->_offset)) {
+ $clause = 'OFFSET';
+ if (self::get_db($this->_connection_name)->getAttribute(PDO::ATTR_DRIVER_NAME) == 'firebird') {
+ $clause = 'TO';
+ }
+ return "$clause " . $this->_offset;
+ }
+ return '';
+ }
+
+ /**
+ * Wrapper around PHP's join function which
+ * only adds the pieces if they are not empty.
+ */
+ protected function _join_if_not_empty($glue, $pieces) {
+ $filtered_pieces = array();
+ foreach ($pieces as $piece) {
+ if (is_string($piece)) {
+ $piece = trim($piece);
+ }
+ if (!empty($piece)) {
+ $filtered_pieces[] = $piece;
+ }
+ }
+ return join($glue, $filtered_pieces);
+ }
+
+ /**
+ * Quote a string that is used as an identifier
+ * (table names, column names etc). This method can
+ * also deal with dot-separated identifiers eg table.column
+ */
+ protected function _quote_one_identifier($identifier) {
+ $parts = explode('.', $identifier);
+ $parts = array_map(array($this, '_quote_identifier_part'), $parts);
+ return join('.', $parts);
+ }
+
+ /**
+ * Quote a string that is used as an identifier
+ * (table names, column names etc) or an array containing
+ * multiple identifiers. This method can also deal with
+ * dot-separated identifiers eg table.column
+ */
+ protected function _quote_identifier($identifier) {
+ if (is_array($identifier)) {
+ $result = array_map(array($this, '_quote_one_identifier'), $identifier);
+ return join(', ', $result);
+ } else {
+ return $this->_quote_one_identifier($identifier);
+ }
+ }
+
+ /**
+ * This method performs the actual quoting of a single
+ * part of an identifier, using the identifier quote
+ * character specified in the config (or autodetected).
+ */
+ protected function _quote_identifier_part($part) {
+ if ($part === '*') {
+ return $part;
+ }
+
+ $quote_character = self::$_config[$this->_connection_name]['identifier_quote_character'];
+ // double up any identifier quotes to escape them
+ return $quote_character .
+ str_replace($quote_character,
+ $quote_character . $quote_character,
+ $part
+ ) . $quote_character;
+ }
+
+ /**
+ * Create a cache key for the given query and parameters.
+ */
+ protected static function _create_cache_key($query, $parameters, $table_name = null, $connection_name = self::DEFAULT_CONNECTION) {
+ if(isset(self::$_config[$connection_name]['create_cache_key']) and is_callable(self::$_config[$connection_name]['create_cache_key'])){
+ return call_user_func_array(self::$_config[$connection_name]['create_cache_key'], array($query, $parameters, $table_name, $connection_name));
+ }
+ $parameter_string = join(',', $parameters);
+ $key = $query . ':' . $parameter_string;
+ return sha1($key);
+ }
+
+ /**
+ * Check the query cache for the given cache key. If a value
+ * is cached for the key, return the value. Otherwise, return false.
+ */
+ protected static function _check_query_cache($cache_key, $table_name = null, $connection_name = self::DEFAULT_CONNECTION) {
+ if(isset(self::$_config[$connection_name]['check_query_cache']) and is_callable(self::$_config[$connection_name]['check_query_cache'])){
+ return call_user_func_array(self::$_config[$connection_name]['check_query_cache'], array($cache_key, $table_name, $connection_name));
+ } elseif (isset(self::$_query_cache[$connection_name][$cache_key])) {
+ return self::$_query_cache[$connection_name][$cache_key];
+ }
+ return false;
+ }
+
+ /**
+ * Clear the query cache
+ */
+ public static function clear_cache($table_name = null, $connection_name = self::DEFAULT_CONNECTION) {
+ self::$_query_cache = array();
+ if(isset(self::$_config[$connection_name]['clear_cache']) and is_callable(self::$_config[$connection_name]['clear_cache'])){
+ return call_user_func_array(self::$_config[$connection_name]['clear_cache'], array($table_name, $connection_name));
+ }
+ }
+
+ /**
+ * Add the given value to the query cache.
+ */
+ protected static function _cache_query_result($cache_key, $value, $table_name = null, $connection_name = self::DEFAULT_CONNECTION) {
+ if(isset(self::$_config[$connection_name]['cache_query_result']) and is_callable(self::$_config[$connection_name]['cache_query_result'])){
+ return call_user_func_array(self::$_config[$connection_name]['cache_query_result'], array($cache_key, $value, $table_name, $connection_name));
+ } elseif (!isset(self::$_query_cache[$connection_name])) {
+ self::$_query_cache[$connection_name] = array();
+ }
+ self::$_query_cache[$connection_name][$cache_key] = $value;
+ }
+
+ /**
+ * Execute the SELECT query that has been built up by chaining methods
+ * on this class. Return an array of rows as associative arrays.
+ */
+ protected function _run() {
+ $query = $this->_build_select();
+ $caching_enabled = self::$_config[$this->_connection_name]['caching'];
+
+ if ($caching_enabled) {
+ $cache_key = self::_create_cache_key($query, $this->_values, $this->_table_name, $this->_connection_name);
+ $cached_result = self::_check_query_cache($cache_key, $this->_table_name, $this->_connection_name);
+
+ if ($cached_result !== false) {
+ $this->_reset_idiorm_state();
+ return $cached_result;
+ }
+ }
+
+ self::_execute($query, $this->_values, $this->_connection_name);
+ $statement = self::get_last_statement();
+
+ $rows = array();
+ while ($row = $statement->fetch(PDO::FETCH_ASSOC)) {
+ $rows[] = $row;
+ }
+
+ if ($caching_enabled) {
+ self::_cache_query_result($cache_key, $rows, $this->_table_name, $this->_connection_name);
+ }
+
+ $this->_reset_idiorm_state();
+ return $rows;
+ }
+
+ /**
+ * Reset the Idiorm instance state
+ */
+ private function _reset_idiorm_state() {
+ $this->_values = array();
+ $this->_result_columns = array('*');
+ $this->_using_default_result_columns = true;
+ }
+
+ /**
+ * Return the raw data wrapped by this ORM
+ * instance as an associative array. Column
+ * names may optionally be supplied as arguments,
+ * if so, only those keys will be returned.
+ */
+ public function as_array() {
+ if (func_num_args() === 0) {
+ return $this->_data;
+ }
+ $args = func_get_args();
+ return array_intersect_key($this->_data, array_flip($args));
+ }
+
+ /**
+ * Return the value of a property of this object (database row)
+ * or null if not present.
+ *
+ * If a column-names array is passed, it will return a associative array
+ * with the value of each column or null if it is not present.
+ */
+ public function get($key) {
+ if (is_array($key)) {
+ $result = array();
+ foreach($key as $column) {
+ $result[$column] = isset($this->_data[$column]) ? $this->_data[$column] : null;
+ }
+ return $result;
+ } else {
+ return isset($this->_data[$key]) ? $this->_data[$key] : null;
+ }
+ }
+
+ /**
+ * Return the name of the column in the database table which contains
+ * the primary key ID of the row.
+ */
+ protected function _get_id_column_name() {
+ if (!is_null($this->_instance_id_column)) {
+ return $this->_instance_id_column;
+ }
+ if (isset(self::$_config[$this->_connection_name]['id_column_overrides'][$this->_table_name])) {
+ return self::$_config[$this->_connection_name]['id_column_overrides'][$this->_table_name];
+ }
+ return self::$_config[$this->_connection_name]['id_column'];
+ }
+
+ /**
+ * Get the primary key ID of this object.
+ */
+ public function id($disallow_null = false) {
+ $id = $this->get($this->_get_id_column_name());
+
+ if ($disallow_null) {
+ if (is_array($id)) {
+ foreach ($id as $id_part) {
+ if ($id_part === null) {
+ throw new Exception('Primary key ID contains null value(s)');
+ }
+ }
+ } else if ($id === null) {
+ throw new Exception('Primary key ID missing from row or is null');
+ }
+ }
+
+ return $id;
+ }
+
+ /**
+ * Set a property to a particular value on this object.
+ * To set multiple properties at once, pass an associative array
+ * as the first parameter and leave out the second parameter.
+ * Flags the properties as 'dirty' so they will be saved to the
+ * database when save() is called.
+ */
+ public function set($key, $value = null) {
+ return $this->_set_orm_property($key, $value);
+ }
+
+ /**
+ * Set a property to a particular value on this object.
+ * To set multiple properties at once, pass an associative array
+ * as the first parameter and leave out the second parameter.
+ * Flags the properties as 'dirty' so they will be saved to the
+ * database when save() is called.
+ * @param string|array $key
+ * @param string|null $value
+ */
+ public function set_expr($key, $value = null) {
+ return $this->_set_orm_property($key, $value, true);
+ }
+
+ /**
+ * Set a property on the ORM object.
+ * @param string|array $key
+ * @param string|null $value
+ * @param bool $raw Whether this value should be treated as raw or not
+ */
+ protected function _set_orm_property($key, $value = null, $expr = false) {
+ if (!is_array($key)) {
+ $key = array($key => $value);
+ }
+ foreach ($key as $field => $value) {
+ $this->_data[$field] = $value;
+ $this->_dirty_fields[$field] = $value;
+ if (false === $expr and isset($this->_expr_fields[$field])) {
+ unset($this->_expr_fields[$field]);
+ } else if (true === $expr) {
+ $this->_expr_fields[$field] = true;
+ }
+ }
+ return $this;
+ }
+
+ /**
+ * Check whether the given field has been changed since this
+ * object was saved.
+ */
+ public function is_dirty($key) {
+ return array_key_exists($key, $this->_dirty_fields);
+ }
+
+ /**
+ * Check whether the model was the result of a call to create() or not
+ * @return bool
+ */
+ public function is_new() {
+ return $this->_is_new;
+ }
+
+ /**
+ * Save any fields which have been modified on this object
+ * to the database.
+ */
+ public function save() {
+ $query = array();
+
+ // remove any expression fields as they are already baked into the query
+ $values = array_values(array_diff_key($this->_dirty_fields, $this->_expr_fields));
+
+ if (!$this->_is_new) { // UPDATE
+ // If there are no dirty values, do nothing
+ if (empty($values) && empty($this->_expr_fields)) {
+ return true;
+ }
+ $query = $this->_build_update();
+ $id = $this->id(true);
+ if (is_array($id)) {
+ $values = array_merge($values, array_values($id));
+ } else {
+ $values[] = $id;
+ }
+ } else { // INSERT
+ $query = $this->_build_insert();
+ }
+
+ $success = self::_execute($query, $values, $this->_connection_name);
+ $caching_auto_clear_enabled = self::$_config[$this->_connection_name]['caching_auto_clear'];
+ if($caching_auto_clear_enabled){
+ self::clear_cache($this->_table_name, $this->_connection_name);
+ }
+ // If we've just inserted a new record, set the ID of this object
+ if ($this->_is_new) {
+ $this->_is_new = false;
+ if ($this->count_null_id_columns() != 0) {
+ $db = self::get_db($this->_connection_name);
+ if($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'pgsql') {
+ // it may return several columns if a compound primary
+ // key is used
+ $row = self::get_last_statement()->fetch(PDO::FETCH_ASSOC);
+ foreach($row as $key => $value) {
+ $this->_data[$key] = $value;
+ }
+ } else {
+ $column = $this->_get_id_column_name();
+ // if the primary key is compound, assign the last inserted id
+ // to the first column
+ if (is_array($column)) {
+ $column = reset($column);
+ }
+ $this->_data[$column] = $db->lastInsertId();
+ }
+ }
+ }
+
+ $this->_dirty_fields = $this->_expr_fields = array();
+ return $success;
+ }
+
+ /**
+ * Add a WHERE clause for every column that belongs to the primary key
+ */
+ public function _add_id_column_conditions(&$query) {
+ $query[] = "WHERE";
+ $keys = is_array($this->_get_id_column_name()) ? $this->_get_id_column_name() : array( $this->_get_id_column_name() );
+ $first = true;
+ foreach($keys as $key) {
+ if ($first) {
+ $first = false;
+ }
+ else {
+ $query[] = "AND";
+ }
+ $query[] = $this->_quote_identifier($key);
+ $query[] = "= ?";
+ }
+ }
+
+ /**
+ * Build an UPDATE query
+ */
+ protected function _build_update() {
+ $query = array();
+ $query[] = "UPDATE {$this->_quote_identifier($this->_table_name)} SET";
+
+ $field_list = array();
+ foreach ($this->_dirty_fields as $key => $value) {
+ if(!array_key_exists($key, $this->_expr_fields)) {
+ $value = '?';
+ }
+ $field_list[] = "{$this->_quote_identifier($key)} = $value";
+ }
+ $query[] = join(", ", $field_list);
+ $this->_add_id_column_conditions($query);
+ return join(" ", $query);
+ }
+
+ /**
+ * Build an INSERT query
+ */
+ protected function _build_insert() {
+ $query[] = "INSERT INTO";
+ $query[] = $this->_quote_identifier($this->_table_name);
+ $field_list = array_map(array($this, '_quote_identifier'), array_keys($this->_dirty_fields));
+ $query[] = "(" . join(", ", $field_list) . ")";
+ $query[] = "VALUES";
+
+ $placeholders = $this->_create_placeholders($this->_dirty_fields);
+ $query[] = "({$placeholders})";
+
+ if (self::get_db($this->_connection_name)->getAttribute(PDO::ATTR_DRIVER_NAME) == 'pgsql') {
+ $query[] = 'RETURNING ' . $this->_quote_identifier($this->_get_id_column_name());
+ }
+
+ return join(" ", $query);
+ }
+
+ /**
+ * Delete this record from the database
+ */
+ public function delete() {
+ $query = array(
+ "DELETE FROM",
+ $this->_quote_identifier($this->_table_name)
+ );
+ $this->_add_id_column_conditions($query);
+ return self::_execute(join(" ", $query), is_array($this->id(true)) ? array_values($this->id(true)) : array($this->id(true)), $this->_connection_name);
+ }
+
+ /**
+ * Delete many records from the database
+ */
+ public function delete_many() {
+ // Build and return the full DELETE statement by concatenating
+ // the results of calling each separate builder method.
+ $query = $this->_join_if_not_empty(" ", array(
+ "DELETE FROM",
+ $this->_quote_identifier($this->_table_name),
+ $this->_build_where(),
+ ));
+
+ return self::_execute($query, $this->_values, $this->_connection_name);
+ }
+
+ // --------------------- //
+ // --- ArrayAccess --- //
+ // --------------------- //
+
+ public function offsetExists($key) {
+ return array_key_exists($key, $this->_data);
+ }
+
+ public function offsetGet($key) {
+ return $this->get($key);
+ }
+
+ public function offsetSet($key, $value) {
+ if(is_null($key)) {
+ throw new InvalidArgumentException('You must specify a key/array index.');
+ }
+ $this->set($key, $value);
+ }
+
+ public function offsetUnset($key) {
+ unset($this->_data[$key]);
+ unset($this->_dirty_fields[$key]);
+ }
+
+ // --------------------- //
+ // --- MAGIC METHODS --- //
+ // --------------------- //
+ public function __get($key) {
+ return $this->offsetGet($key);
+ }
+
+ public function __set($key, $value) {
+ $this->offsetSet($key, $value);
+ }
+
+ public function __unset($key) {
+ $this->offsetUnset($key);
+ }
+
+
+ public function __isset($key) {
+ return $this->offsetExists($key);
+ }
+
+ /**
+ * Magic method to capture calls to undefined class methods.
+ * In this case we are attempting to convert camel case formatted
+ * methods into underscore formatted methods.
+ *
+ * This allows us to call ORM methods using camel case and remain
+ * backwards compatible.
+ *
+ * @param string $name
+ * @param array $arguments
+ * @return ORM
+ */
+ public function __call($name, $arguments)
+ {
+ $method = strtolower(preg_replace('/([a-z])([A-Z])/', '$1_$2', $name));
+
+ if (method_exists($this, $method)) {
+ return call_user_func_array(array($this, $method), $arguments);
+ } else {
+ throw new IdiormMethodMissingException("Method $name() does not exist in class " . get_class($this));
+ }
+ }
+
+ /**
+ * Magic method to capture calls to undefined static class methods.
+ * In this case we are attempting to convert camel case formatted
+ * methods into underscore formatted methods.
+ *
+ * This allows us to call ORM methods using camel case and remain
+ * backwards compatible.
+ *
+ * @param string $name
+ * @param array $arguments
+ * @return ORM
+ */
+ public static function __callStatic($name, $arguments)
+ {
+ $method = strtolower(preg_replace('/([a-z])([A-Z])/', '$1_$2', $name));
+
+ return call_user_func_array(array('ORM', $method), $arguments);
+ }
+ }
+
+ /**
+ * A class to handle str_replace operations that involve quoted strings
+ * @example IdiormString::str_replace_outside_quotes('?', '%s', 'columnA = "Hello?" AND columnB = ?');
+ * @example IdiormString::value('columnA = "Hello?" AND columnB = ?')->replace_outside_quotes('?', '%s');
+ * @author Jeff Roberson <[email protected]>
+ * @author Simon Holywell <[email protected]>
+ * @link http://stackoverflow.com/a/13370709/461813 StackOverflow answer
+ */
+ class IdiormString {
+ protected $subject;
+ protected $search;
+ protected $replace;
+
+ /**
+ * Get an easy to use instance of the class
+ * @param string $subject
+ * @return \self
+ */
+ public static function value($subject) {
+ return new self($subject);
+ }
+
+ /**
+ * Shortcut method: Replace all occurrences of the search string with the replacement
+ * string where they appear outside quotes.
+ * @param string $search
+ * @param string $replace
+ * @param string $subject
+ * @return string
+ */
+ public static function str_replace_outside_quotes($search, $replace, $subject) {
+ return self::value($subject)->replace_outside_quotes($search, $replace);
+ }
+
+ /**
+ * Set the base string object
+ * @param string $subject
+ */
+ public function __construct($subject) {
+ $this->subject = (string) $subject;
+ }
+
+ /**
+ * Replace all occurrences of the search string with the replacement
+ * string where they appear outside quotes
+ * @param string $search
+ * @param string $replace
+ * @return string
+ */
+ public function replace_outside_quotes($search, $replace) {
+ $this->search = $search;
+ $this->replace = $replace;
+ return $this->_str_replace_outside_quotes();
+ }
+
+ /**
+ * Validate an input string and perform a replace on all ocurrences
+ * of $this->search with $this->replace
+ * @author Jeff Roberson <[email protected]>
+ * @link http://stackoverflow.com/a/13370709/461813 StackOverflow answer
+ * @return string
+ */
+ protected function _str_replace_outside_quotes(){
+ $re_valid = '/
+ # Validate string having embedded quoted substrings.
+ ^ # Anchor to start of string.
+ (?: # Zero or more string chunks.
+ "[^"\\\\]*(?:\\\\.[^"\\\\]*)*" # Either a double quoted chunk,
+ | \'[^\'\\\\]*(?:\\\\.[^\'\\\\]*)*\' # or a single quoted chunk,
+ | [^\'"\\\\]+ # or an unquoted chunk (no escapes).
+ )* # Zero or more string chunks.
+ \z # Anchor to end of string.
+ /sx';
+ if (!preg_match($re_valid, $this->subject)) {
+ throw new IdiormStringException("Subject string is not valid in the replace_outside_quotes context.");
+ }
+ $re_parse = '/
+ # Match one chunk of a valid string having embedded quoted substrings.
+ ( # Either $1: Quoted chunk.
+ "[^"\\\\]*(?:\\\\.[^"\\\\]*)*" # Either a double quoted chunk,
+ | \'[^\'\\\\]*(?:\\\\.[^\'\\\\]*)*\' # or a single quoted chunk.
+ ) # End $1: Quoted chunk.
+ | ([^\'"\\\\]+) # or $2: an unquoted chunk (no escapes).
+ /sx';
+ return preg_replace_callback($re_parse, array($this, '_str_replace_outside_quotes_cb'), $this->subject);
+ }
+
+ /**
+ * Process each matching chunk from preg_replace_callback replacing
+ * each occurrence of $this->search with $this->replace
+ * @author Jeff Roberson <[email protected]>
+ * @link http://stackoverflow.com/a/13370709/461813 StackOverflow answer
+ * @param array $matches
+ * @return string
+ */
+ protected function _str_replace_outside_quotes_cb($matches) {
+ // Return quoted string chunks (in group $1) unaltered.
+ if ($matches[1]) return $matches[1];
+ // Process only unquoted chunks (in group $2).
+ return preg_replace('/'. preg_quote($this->search, '/') .'/',
+ $this->replace, $matches[2]);
+ }
+ }
+
+ /**
+ * A result set class for working with collections of model instances
+ * @author Simon Holywell <[email protected]>
+ * @method null setResults(array $results)
+ * @method array getResults()
+ */
+ class IdiormResultSet implements Countable, IteratorAggregate, ArrayAccess, Serializable {
+ /**
+ * The current result set as an array
+ * @var array
+ */
+ protected $_results = array();
+
+ /**
+ * Optionally set the contents of the result set by passing in array
+ * @param array $results
+ */
+ public function __construct(array $results = array()) {
+ $this->set_results($results);
+ }
+
+ /**
+ * Set the contents of the result set by passing in array
+ * @param array $results
+ */
+ public function set_results(array $results) {
+ $this->_results = $results;
+ }
+
+ /**
+ * Get the current result set as an array
+ * @return array
+ */
+ public function get_results() {
+ return $this->_results;
+ }
+
+ /**
+ * Get the current result set as an array
+ * @return array
+ */
+ public function as_array() {
+ return $this->get_results();
+ }
+
+ /**
+ * Get the number of records in the result set
+ * @return int
+ */
+ public function count() {
+ return count($this->_results);
+ }
+
+ /**
+ * Get an iterator for this object. In this case it supports foreaching
+ * over the result set.
+ * @return \ArrayIterator
+ */
+ public function getIterator() {
+ return new ArrayIterator($this->_results);
+ }
+
+ /**
+ * ArrayAccess
+ * @param int|string $offset
+ * @return bool
+ */
+ public function offsetExists($offset) {
+ return isset($this->_results[$offset]);
+ }
+
+ /**
+ * ArrayAccess
+ * @param int|string $offset
+ * @return mixed
+ */
+ public function offsetGet($offset) {
+ return $this->_results[$offset];
+ }
+
+ /**
+ * ArrayAccess
+ * @param int|string $offset
+ * @param mixed $value
+ */
+ public function offsetSet($offset, $value) {
+ $this->_results[$offset] = $value;
+ }
+
+ /**
+ * ArrayAccess
+ * @param int|string $offset
+ */
+ public function offsetUnset($offset) {
+ unset($this->_results[$offset]);
+ }
+
+ /**
+ * Serializable
+ * @return string
+ */
+ public function serialize() {
+ return serialize($this->_results);
+ }
+
+ /**
+ * Serializable
+ * @param string $serialized
+ * @return array
+ */
+ public function unserialize($serialized) {
+ return unserialize($serialized);
+ }
+
+ /**
+ * Call a method on all models in a result set. This allows for method
+ * chaining such as setting a property on all models in a result set or
+ * any other batch operation across models.
+ * @example ORM::for_table('Widget')->find_many()->set('field', 'value')->save();
+ * @param string $method
+ * @param array $params
+ * @return \IdiormResultSet
+ */
+ public function __call($method, $params = array()) {
+ foreach($this->_results as $model) {
+ if (method_exists($model, $method)) {
+ call_user_func_array(array($model, $method), $params);
+ } else {
+ throw new IdiormMethodMissingException("Method $method() does not exist in class " . get_class($this));
+ }
+ }
+ return $this;
+ }
+ }
+
+ /**
+ * A placeholder for exceptions eminating from the IdiormString class
+ */
+ class IdiormStringException extends Exception {}
+
+ class IdiormMethodMissingException extends Exception {}
diff --git a/vendor/mervick/material-design-icons/.gitignore b/vendor/mervick/material-design-icons/.gitignore
new file mode 100644
index 000000000..2b9b3875f
--- /dev/null
+++ b/vendor/mervick/material-design-icons/.gitignore
@@ -0,0 +1,28 @@
+# phpstorm project files
+.idea
+
+# netbeans project files
+nbproject
+
+# zend studio for eclipse project files
+.buildpath
+.project
+.settings
+
+# windows thumbnail cache
+Thumbs.db
+
+# Mac DS_Store Files
+.DS_Store
+
+# Compass config
+config.rb
+
+# Sass cache
+.sass-cache
+
+# Node modules
+node_modules
+
+# Vendors
+vendor
diff --git a/vendor/mervick/material-design-icons/Gruntfile.js b/vendor/mervick/material-design-icons/Gruntfile.js
new file mode 100644
index 000000000..d70e7305d
--- /dev/null
+++ b/vendor/mervick/material-design-icons/Gruntfile.js
@@ -0,0 +1,63 @@
+/* jshint nod: true */
+"use strict";
+
+var livereload = {
+ host: 'localhost',
+ port: 35729,
+};
+
+module.exports = function(grunt) {
+ grunt.initConfig({
+ pkg: grunt.file.readJSON('package.json'),
+ sass: {
+ dist: {
+ options: {
+ sourcemap: 'none',
+ unixNewlines: true,
+ compass: true,
+ lineNumbers: false,
+ },
+ files: {
+ 'css/material-icons.css' : 'scss/material-icons.scss'
+ }
+ },
+ demo: {
+ options: {
+ sourcemap: 'none',
+ unixNewlines: true,
+ compass: true,
+ lineNumbers: true,
+ },
+ files: {
+ 'demo/style/main.css' : 'demo/style/main.scss'
+ }
+ },
+ },
+ cssmin: {
+ options: {
+ sourceMap: true
+ },
+ target: {
+ files: {
+ 'css/material-icons.min.css': ['css/material-icons.css']
+ }
+ }
+ },
+ watch: {
+ css: {
+ files: [
+ 'scss/*.scss',
+ 'demo/style/*.scss'
+ ],
+ tasks: ['sass'],
+ options: {
+ livereload: livereload
+ }
+ }
+ }
+ });
+ grunt.loadNpmTasks('grunt-contrib-sass');
+ grunt.loadNpmTasks('grunt-contrib-cssmin');
+ grunt.loadNpmTasks('grunt-contrib-watch');
+ grunt.registerTask('default', ['sass', 'watch']);
+} \ No newline at end of file
diff --git a/vendor/mervick/material-design-icons/Gulpfile.js b/vendor/mervick/material-design-icons/Gulpfile.js
new file mode 100644
index 000000000..df47545d1
--- /dev/null
+++ b/vendor/mervick/material-design-icons/Gulpfile.js
@@ -0,0 +1,141 @@
+/* jshint node: true */
+"use strict";
+
+var _ = require('lodash'),
+ fs = require('fs'),
+ gulp = require('gulp'),
+ gutil = require('gulp-util'),
+ changed = require('gulp-changed'),
+ File = require('vinyl'),
+ path = require('path'),
+ through2 = require('through2');
+
+
+var sassClassPrefix = 'md-css-prefix',
+ modulePath = './node_modules/material-design-icons',
+ srcCodepoints = modulePath + '/iconfont/codepoints',
+ fontsPath = './fonts',
+ dstCodepoints = fontsPath + '/codepoints',
+ sassFile = 'scss/_icons.scss',
+ sassHeader = '@import "variables";\n\n',
+ demoDataFile = 'demo/js/data.js'
+
+
+function generateSassCodepoints(filepath) {
+ return through2.obj(function(codepointsFile, encoding, callback) {
+ function codepointsToSass(codepoints) {
+ return _(codepoints)
+ .split('\n')
+ .reject(_.isEmpty)
+ .reduce(function(file, line) {
+ let codepoint = line.split(' ');
+ file += '.#{$' + sassClassPrefix + '}-' + codepoint[0].replace(/_/g, '-') +
+ ':before { content: "\\' + codepoint[1] + '"; }\n';
+ return file;
+ }, sassHeader);
+ }
+ callback(null, new File({
+ path: filepath,
+ contents: new Buffer(codepointsToSass(codepointsFile.contents), 'utf8')
+ }));
+ });
+}
+
+
+gulp.task('update-sass', function() {
+ gulp.src(srcCodepoints)
+ .pipe(changed(fontsPath, {hasChanged: changed.compareSha1Digest}))
+ .pipe(generateSassCodepoints(sassFile))
+ .pipe(gulp.dest('.'));
+});
+
+function generateDataCodepoints(filepath) {
+ return through2.obj(function(codepointsFile, encoding, callback) {
+ var countIcons = 0,
+ newIcons = 0;
+
+ function codepoints2obj(codepoints) {
+ return _(codepoints)
+ .split('\n')
+ .reject(_.isEmpty)
+ .reduce(function(obj, line) {
+ let codepoint = line.split(' ');
+ obj[codepoint[0]] = codepoint[1];
+ return obj;
+ }, {});
+ }
+
+ function scanCategories(dir, codes) {
+ var categories = {};
+ fs.readdirSync(dir)
+ .filter(function (file) {
+ return fs.statSync(path.join(dir, file)).isDirectory()
+ && fs.existsSync(path.join(dir, file, "svg/production"));
+ })
+ .forEach(function (category) {
+ categories[category] = {};
+ let catPath = path.join(dir, category, "svg/production");
+ fs.readdirSync(catPath)
+ .filter(function(file) {
+ return file.match(/^ic_(.+?)_\d+px\.svg$/);
+ })
+ .forEach(function(file) {
+ let matches;
+ if (matches = /^ic_(.+?)_\d+px\.svg$/.exec(file)) {
+ let icon = matches[1];
+ if (codes[icon]) {
+ if (!categories[category][icon]) {
+ categories[category][icon] = codes[icon];
+ countIcons ++;
+ }
+ }
+ }
+ });
+ });
+ return categories;
+ }
+
+ function calculateNewIcons(categories, codes, old) {
+ var cats = categories;
+ Object.keys(categories).forEach(function(name) {
+ let category = categories[name];
+ Object.keys(category).forEach(function(icon) {
+ let code = category[icon];
+ cats[name][icon] = [code, !old[icon]];
+ if (!old[icon]) {
+ newIcons ++;
+ }
+ });
+ });
+ return cats;
+ }
+
+ var codes = codepoints2obj(codepointsFile.contents);
+ var categories = scanCategories(modulePath, codes);
+ categories = calculateNewIcons(categories, codes,
+ codepoints2obj(fs.readFileSync(dstCodepoints).toString()));
+
+ gutil.log('Was found', gutil.colors.red(newIcons), 'new icons');
+ gutil.log('Total found', gutil.colors.red(countIcons), 'icons.');
+
+ callback(null, new File({
+ path: filepath,
+ contents: new Buffer(
+ 'window.data = ' + JSON.stringify(categories) + ';', 'utf8')
+ }));
+ });
+}
+
+gulp.task('update-demo-data', function() {
+ gulp.src(srcCodepoints)
+ .pipe(changed(fontsPath, {hasChanged: changed.compareSha1Digest}))
+ .pipe(generateDataCodepoints(demoDataFile))
+ .pipe(gulp.dest('.'));
+});
+
+gulp.task('update-codepoints', function() {
+ gulp.src(srcCodepoints)
+ .pipe(gulp.dest(fontsPath));
+})
+
+gulp.task('default', ['update-sass', 'update-demo-data']);
diff --git a/vendor/mervick/material-design-icons/LICENSE b/vendor/mervick/material-design-icons/LICENSE
new file mode 100644
index 000000000..b110c636d
--- /dev/null
+++ b/vendor/mervick/material-design-icons/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 Andrey Izman <[email protected]>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/vendor/mervick/material-design-icons/README.md b/vendor/mervick/material-design-icons/README.md
new file mode 100644
index 000000000..7db6ed662
--- /dev/null
+++ b/vendor/mervick/material-design-icons/README.md
@@ -0,0 +1,91 @@
+# Material Design Icons
+[mervick.github.io/material-design-icons](http://mervick.github.io/material-design-icons/)
+
+Material design icons are the official [icon set](http://www.google.com/design/spec/style/icons.html#icons-system-icons)
+from Google that are designed under the [material design guidelines](http://www.google.com/design/spec).
+
+In the official package the icons uses a typographic feature called [ligatures](http://alistapart.com/article/the-era-of-symbol-fonts),
+which allows rendering of an icon glyph simply by using its textual name.
+
+In this repository also implemented the ability to use the icons in the bootstrap-style,
+like in `glyphicon`, `font-awesome` or `ionicons`.
+
+## Installation
+
+You may install this package using Component, Composer, Bower or npm:
+- Component: `component install mervick/material-design-icons`
+- Composer: `composer require mervick/material-design-icons`
+- Bower: `bower install bootstrap-material-design-icons`
+- npm: `npm install bootstrap-material-design-icons`
+
+## Usage
+
+Add to your html page in the `head` area
+```html
+<link rel="stylesheet" href="css/material-icons.css">
+```
+
+#### Where are two ways to use:
+
+- Ligature, this one is awesome but have some troubles
+```html
+<i class="material-icons">accessibility</i>
+<i class="material-icons">3d_rotation</i>
+<i class="material-icons">airline_seat_legroom_reduced</i>
+```
+
+- Bootstrap-style,
+```html
+<i class="mdi mdi-accessibility"></i>
+<i class="mdi mdi-3d-rotation"></i>
+<i class="mdi mdi-airline-seat-legroom-reduced"></i>
+```
+
+Using bootstrap-style, you can also use additional features such as in Font Awesome:
+```html
+<!-- Inverse -->
+<i class="mdi mdi-attachment mdi-inverse"></i>
+
+<!-- Animated -->
+<i class="mdi mdi-attachment mdi-spin"></i>
+<i class="mdi mdi-attachment mdi-pulse"></i>
+
+<!-- Fixed width -->
+<i class="mdi mdi-attachment mdi-fw"></i>
+
+<!-- Bordered -->
+<i class="mdi mdi-attachment mdi-border"></i>
+
+<!-- Pulled -->
+<i class="mdi mdi-attachment pull-left"></i>
+<i class="mdi mdi-attachment pull-right"></i>
+
+<!-- Sizes -->
+<i class="mdi mdi-attachment mdi-lg"></i>
+<i class="mdi mdi-attachment mdi-2x"></i>
+<i class="mdi mdi-attachment mdi-3x"></i>
+<i class="mdi mdi-attachment mdi-4x"></i>
+<i class="mdi mdi-attachment mdi-5x"></i>
+
+<!-- Rotations -->
+<i class="mdi mdi-attachment mdi-rotate-90"></i>
+<i class="mdi mdi-attachment mdi-rotate-180"></i>
+<i class="mdi mdi-attachment mdi-rotate-270"></i>
+
+<!-- Flips -->
+<i class="mdi mdi-attachment mdi-flip-horizontal"></i>
+<i class="mdi mdi-attachment mdi-flip-vertical"></i>
+
+<!-- In lists -->
+<ul class="mdi-ul">
+ <li><i class="mdi-li mdi mdi-keyboard-arrow-right"></i>Lorem ipsum dolor ...</li>
+</ul>
+```
+
+
+##License
+
+- Google Material Design Icons fonts is licensed under the CC-BY-4.0:
+ - https://github.com/google/material-design-icons/blob/master/LICENSE
+- Bootstrap Material Icons CSS and Sass files are licensed under the MIT License:
+ - http://opensource.org/licenses/mit-license.html
diff --git a/vendor/mervick/material-design-icons/bower.json b/vendor/mervick/material-design-icons/bower.json
new file mode 100644
index 000000000..84e228fe7
--- /dev/null
+++ b/vendor/mervick/material-design-icons/bower.json
@@ -0,0 +1,33 @@
+{
+ "name": "bootstrap-material-design-icons",
+ "version": "2.2.0",
+ "authors": [
+ {
+ "name": "Andrey Izman",
+ "email": "[email protected]"
+ }
+ ],
+ "description": "Google Material Design Icons For Using With Bootstrap",
+ "keywords": [
+ "icons",
+ "material",
+ "material-design",
+ "google",
+ "icons-web-font",
+ "web-font",
+ "bootstrap"
+ ],
+ "license": ["MIT", "CC-BY-4.0"],
+ "main": [
+ "./css/material-icons.*",
+ "./fonts/MaterialIcons-Regular.*"
+ ],
+ "ignore": [
+ ".gitignore",
+ "*.json",
+ "*.md"
+ ],
+ "dependencies": {},
+ "devDependencies": {},
+ "homepage": "http://github.com/mervick/material-design-icons"
+} \ No newline at end of file
diff --git a/vendor/mervick/material-design-icons/component.json b/vendor/mervick/material-design-icons/component.json
new file mode 100644
index 000000000..6c3d840c2
--- /dev/null
+++ b/vendor/mervick/material-design-icons/component.json
@@ -0,0 +1,37 @@
+{
+ "name": "material-design-icons",
+ "version": "2.2.0",
+ "repo": "mervick/material-design-icons",
+ "description": "Google Material Design Icons For Using With Bootstrap",
+ "authors": [
+ {
+ "name": "Andrey Izman",
+ "email": "[email protected]"
+ }
+ ],
+ "keywords": [
+ "icons",
+ "material",
+ "material-design",
+ "google",
+ "icons-web-font",
+ "web-font",
+ "bootstrap"
+ ],
+ "dependencies": {},
+ "development": {},
+ "license": "MIT, CC-BY-4.0",
+ "homepage": "http://github.com/mervick/material-design-icons",
+ "support": {
+ "source": "http://github.com/mervick/material-design-icons"
+ },
+ "styles": [
+ "css/material-icons.css"
+ ],
+ "fonts": [
+ "fonts/MaterialIcons-Regular.eot",
+ "fonts/MaterialIcons-Regular.ttf",
+ "fonts/MaterialIcons-Regular.woff",
+ "fonts/MaterialIcons-Regular.woff2"
+ ]
+} \ No newline at end of file
diff --git a/vendor/mervick/material-design-icons/composer.json b/vendor/mervick/material-design-icons/composer.json
new file mode 100644
index 000000000..0cf444534
--- /dev/null
+++ b/vendor/mervick/material-design-icons/composer.json
@@ -0,0 +1,25 @@
+{
+ "name": "mervick/material-design-icons",
+ "version": "2.2.0",
+ "description": "Google Material Design Icons For Using With Bootstrap",
+ "authors": [
+ {
+ "name": "Andrey Izman",
+ "email": "[email protected]"
+ }
+ ],
+ "keywords": [
+ "icons",
+ "material",
+ "material-design",
+ "google",
+ "icons-web-font",
+ "web-font",
+ "bootstrap"
+ ],
+ "homepage": "http://github.com/mervick/material-design-icons",
+ "license": ["MIT", "CC-BY-4.0"],
+ "support": {
+ "source": "http://github.com/mervick/material-design-icons"
+ }
+}
diff --git a/vendor/mervick/material-design-icons/css/material-icons.css b/vendor/mervick/material-design-icons/css/material-icons.css
new file mode 100644
index 000000000..19dc74aae
--- /dev/null
+++ b/vendor/mervick/material-design-icons/css/material-icons.css
@@ -0,0 +1,2963 @@
+/* FONT PATH
+ * -------------------------- */
+@font-face {
+ font-family: "Material Design Icons";
+ font-style: normal;
+ font-weight: 400;
+ src: url("../fonts/MaterialIcons-Regular.eot?v=2.2.1");
+ src: url("../fonts/MaterialIcons-Regular.eot?v=2.2.1#iefix") format("embedded-opentype"), url("../fonts/MaterialIcons-Regular.woff2?v=2.2.1") format("woff2"), url("../fonts/MaterialIcons-Regular.woff?v=2.2.1") format("woff"), url("../fonts/MaterialIcons-Regular.ttf?v=2.2.1") format("truetype"), url("../fonts/MaterialIcons-Regular.svg?v=2.2.1#materialiconsregular") format("svg"); }
+.mdi, .material-icons {
+ font: normal normal normal 14px/1 "Material Design Icons";
+ font-size: inherit;
+ display: inline-block;
+ text-transform: none;
+ letter-spacing: normal;
+ line-height: 1;
+ position: relative;
+ word-wrap: normal;
+ top: 1px;
+ /* Support for all WebKit browsers. */
+ -webkit-font-smoothing: antialiased;
+ /* Support for Firefox. */
+ -moz-osx-font-smoothing: grayscale;
+ transform: translate(0, 0); }
+
+.material-icons {
+ width: 1em;
+ height: 1em;
+ /* Support for Safari and Chrome. */
+ text-rendering: optimizeLegibility;
+ /* Support for IE. */
+ font-feature-settings: 'liga'; }
+
+/* makes the font 33% larger relative to the icon container */
+.mdi-lg, .mdi-size-lg {
+ font-size: 1.33333em;
+ line-height: 0.75em;
+ vertical-align: -15%; }
+
+.mdi-2x, .mdi-size-2x {
+ font-size: 2em; }
+
+.mdi-3x, .mdi-size-3x {
+ font-size: 3em; }
+
+.mdi-4x, .mdi-size-4x {
+ font-size: 4em; }
+
+.mdi-5x, .mdi-size-5x {
+ font-size: 5em; }
+
+.mdi-fw {
+ width: 1.28571em;
+ text-align: center; }
+
+.mdi-ul {
+ padding-left: 0;
+ margin-left: 2.14286em;
+ list-style-type: none; }
+ .mdi-ul > li {
+ position: relative; }
+
+.mdi-li {
+ position: absolute;
+ left: -2.14286em;
+ width: 2.14286em;
+ top: 0.14286em;
+ text-align: center; }
+ .mdi-li.mdi-lg {
+ left: -1.85714em; }
+
+.mdi-border {
+ padding: .2em .25em .15em;
+ border: solid 0.08em #eee;
+ border-radius: .1em; }
+
+.pull-right {
+ float: right; }
+
+.pull-left {
+ float: left; }
+
+.mdi.pull-left {
+ margin-right: .3em; }
+.mdi.pull-right {
+ margin-left: .3em; }
+
+.mdi-spin {
+ -webkit-animation: md-spin 2s infinite linear;
+ animation: md-spin 2s infinite linear; }
+
+.mdi-pulse {
+ -webkit-animation: md-spin 1s infinite steps(8);
+ animation: md-spin 1s infinite steps(8); }
+
+@-webkit-keyframes md-spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg); }
+ 100% {
+ -webkit-transform: rotate(359deg);
+ transform: rotate(359deg); } }
+@keyframes md-spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg); }
+ 100% {
+ -webkit-transform: rotate(359deg);
+ transform: rotate(359deg); } }
+.mdi-rotate-90 {
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
+ -webkit-transform: rotate(90deg);
+ -ms-transform: rotate(90deg);
+ transform: rotate(90deg); }
+
+.mdi-rotate-180 {
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
+ -webkit-transform: rotate(180deg);
+ -ms-transform: rotate(180deg);
+ transform: rotate(180deg); }
+
+.mdi-rotate-270 {
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
+ -webkit-transform: rotate(270deg);
+ -ms-transform: rotate(270deg);
+ transform: rotate(270deg); }
+
+.mdi-flip-horizontal {
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0);
+ -webkit-transform: scale(-1, 1);
+ -ms-transform: scale(-1, 1);
+ transform: scale(-1, 1); }
+
+.mdi-flip-vertical {
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
+ -webkit-transform: scale(1, -1);
+ -ms-transform: scale(1, -1);
+ transform: scale(1, -1); }
+
+:root .mdi-rotate-90,
+:root .mdi-rotate-180,
+:root .mdi-rotate-270,
+:root .mdi-flip-horizontal,
+:root .mdi-flip-vertical {
+ filter: none; }
+
+.mdi-stack {
+ position: relative;
+ display: inline-block;
+ width: 2em;
+ height: 2em;
+ line-height: 2em;
+ vertical-align: middle; }
+
+.mdi-stack-1x, .mdi-stack-2x {
+ position: absolute;
+ left: 0;
+ width: 100%;
+ text-align: center; }
+
+.mdi-stack-1x {
+ line-height: inherit; }
+
+.mdi-stack-2x {
+ font-size: 2em; }
+
+.mdi-inverse {
+ color: #fff; }
+
+.mdi-3d-rotation:before {
+ content: "\e84d"; }
+
+.mdi-ac-unit:before {
+ content: "\eb3b"; }
+
+.mdi-access-alarm:before {
+ content: "\e190"; }
+
+.mdi-access-alarms:before {
+ content: "\e191"; }
+
+.mdi-access-time:before {
+ content: "\e192"; }
+
+.mdi-accessibility:before {
+ content: "\e84e"; }
+
+.mdi-accessible:before {
+ content: "\e914"; }
+
+.mdi-account-balance:before {
+ content: "\e84f"; }
+
+.mdi-account-balance-wallet:before {
+ content: "\e850"; }
+
+.mdi-account-box:before {
+ content: "\e851"; }
+
+.mdi-account-circle:before {
+ content: "\e853"; }
+
+.mdi-adb:before {
+ content: "\e60e"; }
+
+.mdi-add:before {
+ content: "\e145"; }
+
+.mdi-add-a-photo:before {
+ content: "\e439"; }
+
+.mdi-add-alarm:before {
+ content: "\e193"; }
+
+.mdi-add-alert:before {
+ content: "\e003"; }
+
+.mdi-add-box:before {
+ content: "\e146"; }
+
+.mdi-add-circle:before {
+ content: "\e147"; }
+
+.mdi-add-circle-outline:before {
+ content: "\e148"; }
+
+.mdi-add-location:before {
+ content: "\e567"; }
+
+.mdi-add-shopping-cart:before {
+ content: "\e854"; }
+
+.mdi-add-to-photos:before {
+ content: "\e39d"; }
+
+.mdi-add-to-queue:before {
+ content: "\e05c"; }
+
+.mdi-adjust:before {
+ content: "\e39e"; }
+
+.mdi-airline-seat-flat:before {
+ content: "\e630"; }
+
+.mdi-airline-seat-flat-angled:before {
+ content: "\e631"; }
+
+.mdi-airline-seat-individual-suite:before {
+ content: "\e632"; }
+
+.mdi-airline-seat-legroom-extra:before {
+ content: "\e633"; }
+
+.mdi-airline-seat-legroom-normal:before {
+ content: "\e634"; }
+
+.mdi-airline-seat-legroom-reduced:before {
+ content: "\e635"; }
+
+.mdi-airline-seat-recline-extra:before {
+ content: "\e636"; }
+
+.mdi-airline-seat-recline-normal:before {
+ content: "\e637"; }
+
+.mdi-airplanemode-active:before {
+ content: "\e195"; }
+
+.mdi-airplanemode-inactive:before {
+ content: "\e194"; }
+
+.mdi-airplay:before {
+ content: "\e055"; }
+
+.mdi-airport-shuttle:before {
+ content: "\eb3c"; }
+
+.mdi-alarm:before {
+ content: "\e855"; }
+
+.mdi-alarm-add:before {
+ content: "\e856"; }
+
+.mdi-alarm-off:before {
+ content: "\e857"; }
+
+.mdi-alarm-on:before {
+ content: "\e858"; }
+
+.mdi-album:before {
+ content: "\e019"; }
+
+.mdi-all-inclusive:before {
+ content: "\eb3d"; }
+
+.mdi-all-out:before {
+ content: "\e90b"; }
+
+.mdi-android:before {
+ content: "\e859"; }
+
+.mdi-announcement:before {
+ content: "\e85a"; }
+
+.mdi-apps:before {
+ content: "\e5c3"; }
+
+.mdi-archive:before {
+ content: "\e149"; }
+
+.mdi-arrow-back:before {
+ content: "\e5c4"; }
+
+.mdi-arrow-downward:before {
+ content: "\e5db"; }
+
+.mdi-arrow-drop-down:before {
+ content: "\e5c5"; }
+
+.mdi-arrow-drop-down-circle:before {
+ content: "\e5c6"; }
+
+.mdi-arrow-drop-up:before {
+ content: "\e5c7"; }
+
+.mdi-arrow-forward:before {
+ content: "\e5c8"; }
+
+.mdi-arrow-upward:before {
+ content: "\e5d8"; }
+
+.mdi-art-track:before {
+ content: "\e060"; }
+
+.mdi-aspect-ratio:before {
+ content: "\e85b"; }
+
+.mdi-assessment:before {
+ content: "\e85c"; }
+
+.mdi-assignment:before {
+ content: "\e85d"; }
+
+.mdi-assignment-ind:before {
+ content: "\e85e"; }
+
+.mdi-assignment-late:before {
+ content: "\e85f"; }
+
+.mdi-assignment-return:before {
+ content: "\e860"; }
+
+.mdi-assignment-returned:before {
+ content: "\e861"; }
+
+.mdi-assignment-turned-in:before {
+ content: "\e862"; }
+
+.mdi-assistant:before {
+ content: "\e39f"; }
+
+.mdi-assistant-photo:before {
+ content: "\e3a0"; }
+
+.mdi-attach-file:before {
+ content: "\e226"; }
+
+.mdi-attach-money:before {
+ content: "\e227"; }
+
+.mdi-attachment:before {
+ content: "\e2bc"; }
+
+.mdi-audiotrack:before {
+ content: "\e3a1"; }
+
+.mdi-autorenew:before {
+ content: "\e863"; }
+
+.mdi-av-timer:before {
+ content: "\e01b"; }
+
+.mdi-backspace:before {
+ content: "\e14a"; }
+
+.mdi-backup:before {
+ content: "\e864"; }
+
+.mdi-battery-alert:before {
+ content: "\e19c"; }
+
+.mdi-battery-charging-full:before {
+ content: "\e1a3"; }
+
+.mdi-battery-full:before {
+ content: "\e1a4"; }
+
+.mdi-battery-std:before {
+ content: "\e1a5"; }
+
+.mdi-battery-unknown:before {
+ content: "\e1a6"; }
+
+.mdi-beach-access:before {
+ content: "\eb3e"; }
+
+.mdi-beenhere:before {
+ content: "\e52d"; }
+
+.mdi-block:before {
+ content: "\e14b"; }
+
+.mdi-bluetooth:before {
+ content: "\e1a7"; }
+
+.mdi-bluetooth-audio:before {
+ content: "\e60f"; }
+
+.mdi-bluetooth-connected:before {
+ content: "\e1a8"; }
+
+.mdi-bluetooth-disabled:before {
+ content: "\e1a9"; }
+
+.mdi-bluetooth-searching:before {
+ content: "\e1aa"; }
+
+.mdi-blur-circular:before {
+ content: "\e3a2"; }
+
+.mdi-blur-linear:before {
+ content: "\e3a3"; }
+
+.mdi-blur-off:before {
+ content: "\e3a4"; }
+
+.mdi-blur-on:before {
+ content: "\e3a5"; }
+
+.mdi-book:before {
+ content: "\e865"; }
+
+.mdi-bookmark:before {
+ content: "\e866"; }
+
+.mdi-bookmark-border:before {
+ content: "\e867"; }
+
+.mdi-border-all:before {
+ content: "\e228"; }
+
+.mdi-border-bottom:before {
+ content: "\e229"; }
+
+.mdi-border-clear:before {
+ content: "\e22a"; }
+
+.mdi-border-color:before {
+ content: "\e22b"; }
+
+.mdi-border-horizontal:before {
+ content: "\e22c"; }
+
+.mdi-border-inner:before {
+ content: "\e22d"; }
+
+.mdi-border-left:before {
+ content: "\e22e"; }
+
+.mdi-border-outer:before {
+ content: "\e22f"; }
+
+.mdi-border-right:before {
+ content: "\e230"; }
+
+.mdi-border-style:before {
+ content: "\e231"; }
+
+.mdi-border-top:before {
+ content: "\e232"; }
+
+.mdi-border-vertical:before {
+ content: "\e233"; }
+
+.mdi-branding-watermark:before {
+ content: "\e06b"; }
+
+.mdi-brightness-1:before {
+ content: "\e3a6"; }
+
+.mdi-brightness-2:before {
+ content: "\e3a7"; }
+
+.mdi-brightness-3:before {
+ content: "\e3a8"; }
+
+.mdi-brightness-4:before {
+ content: "\e3a9"; }
+
+.mdi-brightness-5:before {
+ content: "\e3aa"; }
+
+.mdi-brightness-6:before {
+ content: "\e3ab"; }
+
+.mdi-brightness-7:before {
+ content: "\e3ac"; }
+
+.mdi-brightness-auto:before {
+ content: "\e1ab"; }
+
+.mdi-brightness-high:before {
+ content: "\e1ac"; }
+
+.mdi-brightness-low:before {
+ content: "\e1ad"; }
+
+.mdi-brightness-medium:before {
+ content: "\e1ae"; }
+
+.mdi-broken-image:before {
+ content: "\e3ad"; }
+
+.mdi-brush:before {
+ content: "\e3ae"; }
+
+.mdi-bubble-chart:before {
+ content: "\e6dd"; }
+
+.mdi-bug-report:before {
+ content: "\e868"; }
+
+.mdi-build:before {
+ content: "\e869"; }
+
+.mdi-burst-mode:before {
+ content: "\e43c"; }
+
+.mdi-business:before {
+ content: "\e0af"; }
+
+.mdi-business-center:before {
+ content: "\eb3f"; }
+
+.mdi-cached:before {
+ content: "\e86a"; }
+
+.mdi-cake:before {
+ content: "\e7e9"; }
+
+.mdi-call:before {
+ content: "\e0b0"; }
+
+.mdi-call-end:before {
+ content: "\e0b1"; }
+
+.mdi-call-made:before {
+ content: "\e0b2"; }
+
+.mdi-call-merge:before {
+ content: "\e0b3"; }
+
+.mdi-call-missed:before {
+ content: "\e0b4"; }
+
+.mdi-call-missed-outgoing:before {
+ content: "\e0e4"; }
+
+.mdi-call-received:before {
+ content: "\e0b5"; }
+
+.mdi-call-split:before {
+ content: "\e0b6"; }
+
+.mdi-call-to-action:before {
+ content: "\e06c"; }
+
+.mdi-camera:before {
+ content: "\e3af"; }
+
+.mdi-camera-alt:before {
+ content: "\e3b0"; }
+
+.mdi-camera-enhance:before {
+ content: "\e8fc"; }
+
+.mdi-camera-front:before {
+ content: "\e3b1"; }
+
+.mdi-camera-rear:before {
+ content: "\e3b2"; }
+
+.mdi-camera-roll:before {
+ content: "\e3b3"; }
+
+.mdi-cancel:before {
+ content: "\e5c9"; }
+
+.mdi-card-giftcard:before {
+ content: "\e8f6"; }
+
+.mdi-card-membership:before {
+ content: "\e8f7"; }
+
+.mdi-card-travel:before {
+ content: "\e8f8"; }
+
+.mdi-casino:before {
+ content: "\eb40"; }
+
+.mdi-cast:before {
+ content: "\e307"; }
+
+.mdi-cast-connected:before {
+ content: "\e308"; }
+
+.mdi-center-focus-strong:before {
+ content: "\e3b4"; }
+
+.mdi-center-focus-weak:before {
+ content: "\e3b5"; }
+
+.mdi-change-history:before {
+ content: "\e86b"; }
+
+.mdi-chat:before {
+ content: "\e0b7"; }
+
+.mdi-chat-bubble:before {
+ content: "\e0ca"; }
+
+.mdi-chat-bubble-outline:before {
+ content: "\e0cb"; }
+
+.mdi-check:before {
+ content: "\e5ca"; }
+
+.mdi-check-box:before {
+ content: "\e834"; }
+
+.mdi-check-box-outline-blank:before {
+ content: "\e835"; }
+
+.mdi-check-circle:before {
+ content: "\e86c"; }
+
+.mdi-chevron-left:before {
+ content: "\e5cb"; }
+
+.mdi-chevron-right:before {
+ content: "\e5cc"; }
+
+.mdi-child-care:before {
+ content: "\eb41"; }
+
+.mdi-child-friendly:before {
+ content: "\eb42"; }
+
+.mdi-chrome-reader-mode:before {
+ content: "\e86d"; }
+
+.mdi-class:before {
+ content: "\e86e"; }
+
+.mdi-clear:before {
+ content: "\e14c"; }
+
+.mdi-clear-all:before {
+ content: "\e0b8"; }
+
+.mdi-close:before {
+ content: "\e5cd"; }
+
+.mdi-closed-caption:before {
+ content: "\e01c"; }
+
+.mdi-cloud:before {
+ content: "\e2bd"; }
+
+.mdi-cloud-circle:before {
+ content: "\e2be"; }
+
+.mdi-cloud-done:before {
+ content: "\e2bf"; }
+
+.mdi-cloud-download:before {
+ content: "\e2c0"; }
+
+.mdi-cloud-off:before {
+ content: "\e2c1"; }
+
+.mdi-cloud-queue:before {
+ content: "\e2c2"; }
+
+.mdi-cloud-upload:before {
+ content: "\e2c3"; }
+
+.mdi-code:before {
+ content: "\e86f"; }
+
+.mdi-collections:before {
+ content: "\e3b6"; }
+
+.mdi-collections-bookmark:before {
+ content: "\e431"; }
+
+.mdi-color-lens:before {
+ content: "\e3b7"; }
+
+.mdi-colorize:before {
+ content: "\e3b8"; }
+
+.mdi-comment:before {
+ content: "\e0b9"; }
+
+.mdi-compare:before {
+ content: "\e3b9"; }
+
+.mdi-compare-arrows:before {
+ content: "\e915"; }
+
+.mdi-computer:before {
+ content: "\e30a"; }
+
+.mdi-confirmation-number:before {
+ content: "\e638"; }
+
+.mdi-contact-mail:before {
+ content: "\e0d0"; }
+
+.mdi-contact-phone:before {
+ content: "\e0cf"; }
+
+.mdi-contacts:before {
+ content: "\e0ba"; }
+
+.mdi-content-copy:before {
+ content: "\e14d"; }
+
+.mdi-content-cut:before {
+ content: "\e14e"; }
+
+.mdi-content-paste:before {
+ content: "\e14f"; }
+
+.mdi-control-point:before {
+ content: "\e3ba"; }
+
+.mdi-control-point-duplicate:before {
+ content: "\e3bb"; }
+
+.mdi-copyright:before {
+ content: "\e90c"; }
+
+.mdi-create:before {
+ content: "\e150"; }
+
+.mdi-create-new-folder:before {
+ content: "\e2cc"; }
+
+.mdi-credit-card:before {
+ content: "\e870"; }
+
+.mdi-crop:before {
+ content: "\e3be"; }
+
+.mdi-crop-16-9:before {
+ content: "\e3bc"; }
+
+.mdi-crop-3-2:before {
+ content: "\e3bd"; }
+
+.mdi-crop-5-4:before {
+ content: "\e3bf"; }
+
+.mdi-crop-7-5:before {
+ content: "\e3c0"; }
+
+.mdi-crop-din:before {
+ content: "\e3c1"; }
+
+.mdi-crop-free:before {
+ content: "\e3c2"; }
+
+.mdi-crop-landscape:before {
+ content: "\e3c3"; }
+
+.mdi-crop-original:before {
+ content: "\e3c4"; }
+
+.mdi-crop-portrait:before {
+ content: "\e3c5"; }
+
+.mdi-crop-rotate:before {
+ content: "\e437"; }
+
+.mdi-crop-square:before {
+ content: "\e3c6"; }
+
+.mdi-dashboard:before {
+ content: "\e871"; }
+
+.mdi-data-usage:before {
+ content: "\e1af"; }
+
+.mdi-date-range:before {
+ content: "\e916"; }
+
+.mdi-dehaze:before {
+ content: "\e3c7"; }
+
+.mdi-delete:before {
+ content: "\e872"; }
+
+.mdi-delete-forever:before {
+ content: "\e92b"; }
+
+.mdi-delete-sweep:before {
+ content: "\e16c"; }
+
+.mdi-description:before {
+ content: "\e873"; }
+
+.mdi-desktop-mac:before {
+ content: "\e30b"; }
+
+.mdi-desktop-windows:before {
+ content: "\e30c"; }
+
+.mdi-details:before {
+ content: "\e3c8"; }
+
+.mdi-developer-board:before {
+ content: "\e30d"; }
+
+.mdi-developer-mode:before {
+ content: "\e1b0"; }
+
+.mdi-device-hub:before {
+ content: "\e335"; }
+
+.mdi-devices:before {
+ content: "\e1b1"; }
+
+.mdi-devices-other:before {
+ content: "\e337"; }
+
+.mdi-dialer-sip:before {
+ content: "\e0bb"; }
+
+.mdi-dialpad:before {
+ content: "\e0bc"; }
+
+.mdi-directions:before {
+ content: "\e52e"; }
+
+.mdi-directions-bike:before {
+ content: "\e52f"; }
+
+.mdi-directions-boat:before {
+ content: "\e532"; }
+
+.mdi-directions-bus:before {
+ content: "\e530"; }
+
+.mdi-directions-car:before {
+ content: "\e531"; }
+
+.mdi-directions-railway:before {
+ content: "\e534"; }
+
+.mdi-directions-run:before {
+ content: "\e566"; }
+
+.mdi-directions-subway:before {
+ content: "\e533"; }
+
+.mdi-directions-transit:before {
+ content: "\e535"; }
+
+.mdi-directions-walk:before {
+ content: "\e536"; }
+
+.mdi-disc-full:before {
+ content: "\e610"; }
+
+.mdi-dns:before {
+ content: "\e875"; }
+
+.mdi-do-not-disturb:before {
+ content: "\e612"; }
+
+.mdi-do-not-disturb-alt:before {
+ content: "\e611"; }
+
+.mdi-do-not-disturb-off:before {
+ content: "\e643"; }
+
+.mdi-do-not-disturb-on:before {
+ content: "\e644"; }
+
+.mdi-dock:before {
+ content: "\e30e"; }
+
+.mdi-domain:before {
+ content: "\e7ee"; }
+
+.mdi-done:before {
+ content: "\e876"; }
+
+.mdi-done-all:before {
+ content: "\e877"; }
+
+.mdi-donut-large:before {
+ content: "\e917"; }
+
+.mdi-donut-small:before {
+ content: "\e918"; }
+
+.mdi-drafts:before {
+ content: "\e151"; }
+
+.mdi-drag-handle:before {
+ content: "\e25d"; }
+
+.mdi-drive-eta:before {
+ content: "\e613"; }
+
+.mdi-dvr:before {
+ content: "\e1b2"; }
+
+.mdi-edit:before {
+ content: "\e3c9"; }
+
+.mdi-edit-location:before {
+ content: "\e568"; }
+
+.mdi-eject:before {
+ content: "\e8fb"; }
+
+.mdi-email:before {
+ content: "\e0be"; }
+
+.mdi-enhanced-encryption:before {
+ content: "\e63f"; }
+
+.mdi-equalizer:before {
+ content: "\e01d"; }
+
+.mdi-error:before {
+ content: "\e000"; }
+
+.mdi-error-outline:before {
+ content: "\e001"; }
+
+.mdi-euro-symbol:before {
+ content: "\e926"; }
+
+.mdi-ev-station:before {
+ content: "\e56d"; }
+
+.mdi-event:before {
+ content: "\e878"; }
+
+.mdi-event-available:before {
+ content: "\e614"; }
+
+.mdi-event-busy:before {
+ content: "\e615"; }
+
+.mdi-event-note:before {
+ content: "\e616"; }
+
+.mdi-event-seat:before {
+ content: "\e903"; }
+
+.mdi-exit-to-app:before {
+ content: "\e879"; }
+
+.mdi-expand-less:before {
+ content: "\e5ce"; }
+
+.mdi-expand-more:before {
+ content: "\e5cf"; }
+
+.mdi-explicit:before {
+ content: "\e01e"; }
+
+.mdi-explore:before {
+ content: "\e87a"; }
+
+.mdi-exposure:before {
+ content: "\e3ca"; }
+
+.mdi-exposure-neg-1:before {
+ content: "\e3cb"; }
+
+.mdi-exposure-neg-2:before {
+ content: "\e3cc"; }
+
+.mdi-exposure-plus-1:before {
+ content: "\e3cd"; }
+
+.mdi-exposure-plus-2:before {
+ content: "\e3ce"; }
+
+.mdi-exposure-zero:before {
+ content: "\e3cf"; }
+
+.mdi-extension:before {
+ content: "\e87b"; }
+
+.mdi-face:before {
+ content: "\e87c"; }
+
+.mdi-fast-forward:before {
+ content: "\e01f"; }
+
+.mdi-fast-rewind:before {
+ content: "\e020"; }
+
+.mdi-favorite:before {
+ content: "\e87d"; }
+
+.mdi-favorite-border:before {
+ content: "\e87e"; }
+
+.mdi-featured-play-list:before {
+ content: "\e06d"; }
+
+.mdi-featured-video:before {
+ content: "\e06e"; }
+
+.mdi-feedback:before {
+ content: "\e87f"; }
+
+.mdi-fiber-dvr:before {
+ content: "\e05d"; }
+
+.mdi-fiber-manual-record:before {
+ content: "\e061"; }
+
+.mdi-fiber-new:before {
+ content: "\e05e"; }
+
+.mdi-fiber-pin:before {
+ content: "\e06a"; }
+
+.mdi-fiber-smart-record:before {
+ content: "\e062"; }
+
+.mdi-file-download:before {
+ content: "\e2c4"; }
+
+.mdi-file-upload:before {
+ content: "\e2c6"; }
+
+.mdi-filter:before {
+ content: "\e3d3"; }
+
+.mdi-filter-1:before {
+ content: "\e3d0"; }
+
+.mdi-filter-2:before {
+ content: "\e3d1"; }
+
+.mdi-filter-3:before {
+ content: "\e3d2"; }
+
+.mdi-filter-4:before {
+ content: "\e3d4"; }
+
+.mdi-filter-5:before {
+ content: "\e3d5"; }
+
+.mdi-filter-6:before {
+ content: "\e3d6"; }
+
+.mdi-filter-7:before {
+ content: "\e3d7"; }
+
+.mdi-filter-8:before {
+ content: "\e3d8"; }
+
+.mdi-filter-9:before {
+ content: "\e3d9"; }
+
+.mdi-filter-9-plus:before {
+ content: "\e3da"; }
+
+.mdi-filter-b-and-w:before {
+ content: "\e3db"; }
+
+.mdi-filter-center-focus:before {
+ content: "\e3dc"; }
+
+.mdi-filter-drama:before {
+ content: "\e3dd"; }
+
+.mdi-filter-frames:before {
+ content: "\e3de"; }
+
+.mdi-filter-hdr:before {
+ content: "\e3df"; }
+
+.mdi-filter-list:before {
+ content: "\e152"; }
+
+.mdi-filter-none:before {
+ content: "\e3e0"; }
+
+.mdi-filter-tilt-shift:before {
+ content: "\e3e2"; }
+
+.mdi-filter-vintage:before {
+ content: "\e3e3"; }
+
+.mdi-find-in-page:before {
+ content: "\e880"; }
+
+.mdi-find-replace:before {
+ content: "\e881"; }
+
+.mdi-fingerprint:before {
+ content: "\e90d"; }
+
+.mdi-first-page:before {
+ content: "\e5dc"; }
+
+.mdi-fitness-center:before {
+ content: "\eb43"; }
+
+.mdi-flag:before {
+ content: "\e153"; }
+
+.mdi-flare:before {
+ content: "\e3e4"; }
+
+.mdi-flash-auto:before {
+ content: "\e3e5"; }
+
+.mdi-flash-off:before {
+ content: "\e3e6"; }
+
+.mdi-flash-on:before {
+ content: "\e3e7"; }
+
+.mdi-flight:before {
+ content: "\e539"; }
+
+.mdi-flight-land:before {
+ content: "\e904"; }
+
+.mdi-flight-takeoff:before {
+ content: "\e905"; }
+
+.mdi-flip:before {
+ content: "\e3e8"; }
+
+.mdi-flip-to-back:before {
+ content: "\e882"; }
+
+.mdi-flip-to-front:before {
+ content: "\e883"; }
+
+.mdi-folder:before {
+ content: "\e2c7"; }
+
+.mdi-folder-open:before {
+ content: "\e2c8"; }
+
+.mdi-folder-shared:before {
+ content: "\e2c9"; }
+
+.mdi-folder-special:before {
+ content: "\e617"; }
+
+.mdi-font-download:before {
+ content: "\e167"; }
+
+.mdi-format-align-center:before {
+ content: "\e234"; }
+
+.mdi-format-align-justify:before {
+ content: "\e235"; }
+
+.mdi-format-align-left:before {
+ content: "\e236"; }
+
+.mdi-format-align-right:before {
+ content: "\e237"; }
+
+.mdi-format-bold:before {
+ content: "\e238"; }
+
+.mdi-format-clear:before {
+ content: "\e239"; }
+
+.mdi-format-color-fill:before {
+ content: "\e23a"; }
+
+.mdi-format-color-reset:before {
+ content: "\e23b"; }
+
+.mdi-format-color-text:before {
+ content: "\e23c"; }
+
+.mdi-format-indent-decrease:before {
+ content: "\e23d"; }
+
+.mdi-format-indent-increase:before {
+ content: "\e23e"; }
+
+.mdi-format-italic:before {
+ content: "\e23f"; }
+
+.mdi-format-line-spacing:before {
+ content: "\e240"; }
+
+.mdi-format-list-bulleted:before {
+ content: "\e241"; }
+
+.mdi-format-list-numbered:before {
+ content: "\e242"; }
+
+.mdi-format-paint:before {
+ content: "\e243"; }
+
+.mdi-format-quote:before {
+ content: "\e244"; }
+
+.mdi-format-shapes:before {
+ content: "\e25e"; }
+
+.mdi-format-size:before {
+ content: "\e245"; }
+
+.mdi-format-strikethrough:before {
+ content: "\e246"; }
+
+.mdi-format-textdirection-l-to-r:before {
+ content: "\e247"; }
+
+.mdi-format-textdirection-r-to-l:before {
+ content: "\e248"; }
+
+.mdi-format-underlined:before {
+ content: "\e249"; }
+
+.mdi-forum:before {
+ content: "\e0bf"; }
+
+.mdi-forward:before {
+ content: "\e154"; }
+
+.mdi-forward-10:before {
+ content: "\e056"; }
+
+.mdi-forward-30:before {
+ content: "\e057"; }
+
+.mdi-forward-5:before {
+ content: "\e058"; }
+
+.mdi-free-breakfast:before {
+ content: "\eb44"; }
+
+.mdi-fullscreen:before {
+ content: "\e5d0"; }
+
+.mdi-fullscreen-exit:before {
+ content: "\e5d1"; }
+
+.mdi-functions:before {
+ content: "\e24a"; }
+
+.mdi-g-translate:before {
+ content: "\e927"; }
+
+.mdi-gamepad:before {
+ content: "\e30f"; }
+
+.mdi-games:before {
+ content: "\e021"; }
+
+.mdi-gavel:before {
+ content: "\e90e"; }
+
+.mdi-gesture:before {
+ content: "\e155"; }
+
+.mdi-get-app:before {
+ content: "\e884"; }
+
+.mdi-gif:before {
+ content: "\e908"; }
+
+.mdi-golf-course:before {
+ content: "\eb45"; }
+
+.mdi-gps-fixed:before {
+ content: "\e1b3"; }
+
+.mdi-gps-not-fixed:before {
+ content: "\e1b4"; }
+
+.mdi-gps-off:before {
+ content: "\e1b5"; }
+
+.mdi-grade:before {
+ content: "\e885"; }
+
+.mdi-gradient:before {
+ content: "\e3e9"; }
+
+.mdi-grain:before {
+ content: "\e3ea"; }
+
+.mdi-graphic-eq:before {
+ content: "\e1b8"; }
+
+.mdi-grid-off:before {
+ content: "\e3eb"; }
+
+.mdi-grid-on:before {
+ content: "\e3ec"; }
+
+.mdi-group:before {
+ content: "\e7ef"; }
+
+.mdi-group-add:before {
+ content: "\e7f0"; }
+
+.mdi-group-work:before {
+ content: "\e886"; }
+
+.mdi-hd:before {
+ content: "\e052"; }
+
+.mdi-hdr-off:before {
+ content: "\e3ed"; }
+
+.mdi-hdr-on:before {
+ content: "\e3ee"; }
+
+.mdi-hdr-strong:before {
+ content: "\e3f1"; }
+
+.mdi-hdr-weak:before {
+ content: "\e3f2"; }
+
+.mdi-headset:before {
+ content: "\e310"; }
+
+.mdi-headset-mic:before {
+ content: "\e311"; }
+
+.mdi-healing:before {
+ content: "\e3f3"; }
+
+.mdi-hearing:before {
+ content: "\e023"; }
+
+.mdi-help:before {
+ content: "\e887"; }
+
+.mdi-help-outline:before {
+ content: "\e8fd"; }
+
+.mdi-high-quality:before {
+ content: "\e024"; }
+
+.mdi-highlight:before {
+ content: "\e25f"; }
+
+.mdi-highlight-off:before {
+ content: "\e888"; }
+
+.mdi-history:before {
+ content: "\e889"; }
+
+.mdi-home:before {
+ content: "\e88a"; }
+
+.mdi-hot-tub:before {
+ content: "\eb46"; }
+
+.mdi-hotel:before {
+ content: "\e53a"; }
+
+.mdi-hourglass-empty:before {
+ content: "\e88b"; }
+
+.mdi-hourglass-full:before {
+ content: "\e88c"; }
+
+.mdi-http:before {
+ content: "\e902"; }
+
+.mdi-https:before {
+ content: "\e88d"; }
+
+.mdi-image:before {
+ content: "\e3f4"; }
+
+.mdi-image-aspect-ratio:before {
+ content: "\e3f5"; }
+
+.mdi-import-contacts:before {
+ content: "\e0e0"; }
+
+.mdi-import-export:before {
+ content: "\e0c3"; }
+
+.mdi-important-devices:before {
+ content: "\e912"; }
+
+.mdi-inbox:before {
+ content: "\e156"; }
+
+.mdi-indeterminate-check-box:before {
+ content: "\e909"; }
+
+.mdi-info:before {
+ content: "\e88e"; }
+
+.mdi-info-outline:before {
+ content: "\e88f"; }
+
+.mdi-input:before {
+ content: "\e890"; }
+
+.mdi-insert-chart:before {
+ content: "\e24b"; }
+
+.mdi-insert-comment:before {
+ content: "\e24c"; }
+
+.mdi-insert-drive-file:before {
+ content: "\e24d"; }
+
+.mdi-insert-emoticon:before {
+ content: "\e24e"; }
+
+.mdi-insert-invitation:before {
+ content: "\e24f"; }
+
+.mdi-insert-link:before {
+ content: "\e250"; }
+
+.mdi-insert-photo:before {
+ content: "\e251"; }
+
+.mdi-invert-colors:before {
+ content: "\e891"; }
+
+.mdi-invert-colors-off:before {
+ content: "\e0c4"; }
+
+.mdi-iso:before {
+ content: "\e3f6"; }
+
+.mdi-keyboard:before {
+ content: "\e312"; }
+
+.mdi-keyboard-arrow-down:before {
+ content: "\e313"; }
+
+.mdi-keyboard-arrow-left:before {
+ content: "\e314"; }
+
+.mdi-keyboard-arrow-right:before {
+ content: "\e315"; }
+
+.mdi-keyboard-arrow-up:before {
+ content: "\e316"; }
+
+.mdi-keyboard-backspace:before {
+ content: "\e317"; }
+
+.mdi-keyboard-capslock:before {
+ content: "\e318"; }
+
+.mdi-keyboard-hide:before {
+ content: "\e31a"; }
+
+.mdi-keyboard-return:before {
+ content: "\e31b"; }
+
+.mdi-keyboard-tab:before {
+ content: "\e31c"; }
+
+.mdi-keyboard-voice:before {
+ content: "\e31d"; }
+
+.mdi-kitchen:before {
+ content: "\eb47"; }
+
+.mdi-label:before {
+ content: "\e892"; }
+
+.mdi-label-outline:before {
+ content: "\e893"; }
+
+.mdi-landscape:before {
+ content: "\e3f7"; }
+
+.mdi-language:before {
+ content: "\e894"; }
+
+.mdi-laptop:before {
+ content: "\e31e"; }
+
+.mdi-laptop-chromebook:before {
+ content: "\e31f"; }
+
+.mdi-laptop-mac:before {
+ content: "\e320"; }
+
+.mdi-laptop-windows:before {
+ content: "\e321"; }
+
+.mdi-last-page:before {
+ content: "\e5dd"; }
+
+.mdi-launch:before {
+ content: "\e895"; }
+
+.mdi-layers:before {
+ content: "\e53b"; }
+
+.mdi-layers-clear:before {
+ content: "\e53c"; }
+
+.mdi-leak-add:before {
+ content: "\e3f8"; }
+
+.mdi-leak-remove:before {
+ content: "\e3f9"; }
+
+.mdi-lens:before {
+ content: "\e3fa"; }
+
+.mdi-library-add:before {
+ content: "\e02e"; }
+
+.mdi-library-books:before {
+ content: "\e02f"; }
+
+.mdi-library-music:before {
+ content: "\e030"; }
+
+.mdi-lightbulb-outline:before {
+ content: "\e90f"; }
+
+.mdi-line-style:before {
+ content: "\e919"; }
+
+.mdi-line-weight:before {
+ content: "\e91a"; }
+
+.mdi-linear-scale:before {
+ content: "\e260"; }
+
+.mdi-link:before {
+ content: "\e157"; }
+
+.mdi-linked-camera:before {
+ content: "\e438"; }
+
+.mdi-list:before {
+ content: "\e896"; }
+
+.mdi-live-help:before {
+ content: "\e0c6"; }
+
+.mdi-live-tv:before {
+ content: "\e639"; }
+
+.mdi-local-activity:before {
+ content: "\e53f"; }
+
+.mdi-local-airport:before {
+ content: "\e53d"; }
+
+.mdi-local-atm:before {
+ content: "\e53e"; }
+
+.mdi-local-bar:before {
+ content: "\e540"; }
+
+.mdi-local-cafe:before {
+ content: "\e541"; }
+
+.mdi-local-car-wash:before {
+ content: "\e542"; }
+
+.mdi-local-convenience-store:before {
+ content: "\e543"; }
+
+.mdi-local-dining:before {
+ content: "\e556"; }
+
+.mdi-local-drink:before {
+ content: "\e544"; }
+
+.mdi-local-florist:before {
+ content: "\e545"; }
+
+.mdi-local-gas-station:before {
+ content: "\e546"; }
+
+.mdi-local-grocery-store:before {
+ content: "\e547"; }
+
+.mdi-local-hospital:before {
+ content: "\e548"; }
+
+.mdi-local-hotel:before {
+ content: "\e549"; }
+
+.mdi-local-laundry-service:before {
+ content: "\e54a"; }
+
+.mdi-local-library:before {
+ content: "\e54b"; }
+
+.mdi-local-mall:before {
+ content: "\e54c"; }
+
+.mdi-local-movies:before {
+ content: "\e54d"; }
+
+.mdi-local-offer:before {
+ content: "\e54e"; }
+
+.mdi-local-parking:before {
+ content: "\e54f"; }
+
+.mdi-local-pharmacy:before {
+ content: "\e550"; }
+
+.mdi-local-phone:before {
+ content: "\e551"; }
+
+.mdi-local-pizza:before {
+ content: "\e552"; }
+
+.mdi-local-play:before {
+ content: "\e553"; }
+
+.mdi-local-post-office:before {
+ content: "\e554"; }
+
+.mdi-local-printshop:before {
+ content: "\e555"; }
+
+.mdi-local-see:before {
+ content: "\e557"; }
+
+.mdi-local-shipping:before {
+ content: "\e558"; }
+
+.mdi-local-taxi:before {
+ content: "\e559"; }
+
+.mdi-location-city:before {
+ content: "\e7f1"; }
+
+.mdi-location-disabled:before {
+ content: "\e1b6"; }
+
+.mdi-location-off:before {
+ content: "\e0c7"; }
+
+.mdi-location-on:before {
+ content: "\e0c8"; }
+
+.mdi-location-searching:before {
+ content: "\e1b7"; }
+
+.mdi-lock:before {
+ content: "\e897"; }
+
+.mdi-lock-open:before {
+ content: "\e898"; }
+
+.mdi-lock-outline:before {
+ content: "\e899"; }
+
+.mdi-looks:before {
+ content: "\e3fc"; }
+
+.mdi-looks-3:before {
+ content: "\e3fb"; }
+
+.mdi-looks-4:before {
+ content: "\e3fd"; }
+
+.mdi-looks-5:before {
+ content: "\e3fe"; }
+
+.mdi-looks-6:before {
+ content: "\e3ff"; }
+
+.mdi-looks-one:before {
+ content: "\e400"; }
+
+.mdi-looks-two:before {
+ content: "\e401"; }
+
+.mdi-loop:before {
+ content: "\e028"; }
+
+.mdi-loupe:before {
+ content: "\e402"; }
+
+.mdi-low-priority:before {
+ content: "\e16d"; }
+
+.mdi-loyalty:before {
+ content: "\e89a"; }
+
+.mdi-mail:before {
+ content: "\e158"; }
+
+.mdi-mail-outline:before {
+ content: "\e0e1"; }
+
+.mdi-map:before {
+ content: "\e55b"; }
+
+.mdi-markunread:before {
+ content: "\e159"; }
+
+.mdi-markunread-mailbox:before {
+ content: "\e89b"; }
+
+.mdi-memory:before {
+ content: "\e322"; }
+
+.mdi-menu:before {
+ content: "\e5d2"; }
+
+.mdi-merge-type:before {
+ content: "\e252"; }
+
+.mdi-message:before {
+ content: "\e0c9"; }
+
+.mdi-mic:before {
+ content: "\e029"; }
+
+.mdi-mic-none:before {
+ content: "\e02a"; }
+
+.mdi-mic-off:before {
+ content: "\e02b"; }
+
+.mdi-mms:before {
+ content: "\e618"; }
+
+.mdi-mode-comment:before {
+ content: "\e253"; }
+
+.mdi-mode-edit:before {
+ content: "\e254"; }
+
+.mdi-monetization-on:before {
+ content: "\e263"; }
+
+.mdi-money-off:before {
+ content: "\e25c"; }
+
+.mdi-monochrome-photos:before {
+ content: "\e403"; }
+
+.mdi-mood:before {
+ content: "\e7f2"; }
+
+.mdi-mood-bad:before {
+ content: "\e7f3"; }
+
+.mdi-more:before {
+ content: "\e619"; }
+
+.mdi-more-horiz:before {
+ content: "\e5d3"; }
+
+.mdi-more-vert:before {
+ content: "\e5d4"; }
+
+.mdi-motorcycle:before {
+ content: "\e91b"; }
+
+.mdi-mouse:before {
+ content: "\e323"; }
+
+.mdi-move-to-inbox:before {
+ content: "\e168"; }
+
+.mdi-movie:before {
+ content: "\e02c"; }
+
+.mdi-movie-creation:before {
+ content: "\e404"; }
+
+.mdi-movie-filter:before {
+ content: "\e43a"; }
+
+.mdi-multiline-chart:before {
+ content: "\e6df"; }
+
+.mdi-music-note:before {
+ content: "\e405"; }
+
+.mdi-music-video:before {
+ content: "\e063"; }
+
+.mdi-my-location:before {
+ content: "\e55c"; }
+
+.mdi-nature:before {
+ content: "\e406"; }
+
+.mdi-nature-people:before {
+ content: "\e407"; }
+
+.mdi-navigate-before:before {
+ content: "\e408"; }
+
+.mdi-navigate-next:before {
+ content: "\e409"; }
+
+.mdi-navigation:before {
+ content: "\e55d"; }
+
+.mdi-near-me:before {
+ content: "\e569"; }
+
+.mdi-network-cell:before {
+ content: "\e1b9"; }
+
+.mdi-network-check:before {
+ content: "\e640"; }
+
+.mdi-network-locked:before {
+ content: "\e61a"; }
+
+.mdi-network-wifi:before {
+ content: "\e1ba"; }
+
+.mdi-new-releases:before {
+ content: "\e031"; }
+
+.mdi-next-week:before {
+ content: "\e16a"; }
+
+.mdi-nfc:before {
+ content: "\e1bb"; }
+
+.mdi-no-encryption:before {
+ content: "\e641"; }
+
+.mdi-no-sim:before {
+ content: "\e0cc"; }
+
+.mdi-not-interested:before {
+ content: "\e033"; }
+
+.mdi-note:before {
+ content: "\e06f"; }
+
+.mdi-note-add:before {
+ content: "\e89c"; }
+
+.mdi-notifications:before {
+ content: "\e7f4"; }
+
+.mdi-notifications-active:before {
+ content: "\e7f7"; }
+
+.mdi-notifications-none:before {
+ content: "\e7f5"; }
+
+.mdi-notifications-off:before {
+ content: "\e7f6"; }
+
+.mdi-notifications-paused:before {
+ content: "\e7f8"; }
+
+.mdi-offline-pin:before {
+ content: "\e90a"; }
+
+.mdi-ondemand-video:before {
+ content: "\e63a"; }
+
+.mdi-opacity:before {
+ content: "\e91c"; }
+
+.mdi-open-in-browser:before {
+ content: "\e89d"; }
+
+.mdi-open-in-new:before {
+ content: "\e89e"; }
+
+.mdi-open-with:before {
+ content: "\e89f"; }
+
+.mdi-pages:before {
+ content: "\e7f9"; }
+
+.mdi-pageview:before {
+ content: "\e8a0"; }
+
+.mdi-palette:before {
+ content: "\e40a"; }
+
+.mdi-pan-tool:before {
+ content: "\e925"; }
+
+.mdi-panorama:before {
+ content: "\e40b"; }
+
+.mdi-panorama-fish-eye:before {
+ content: "\e40c"; }
+
+.mdi-panorama-horizontal:before {
+ content: "\e40d"; }
+
+.mdi-panorama-vertical:before {
+ content: "\e40e"; }
+
+.mdi-panorama-wide-angle:before {
+ content: "\e40f"; }
+
+.mdi-party-mode:before {
+ content: "\e7fa"; }
+
+.mdi-pause:before {
+ content: "\e034"; }
+
+.mdi-pause-circle-filled:before {
+ content: "\e035"; }
+
+.mdi-pause-circle-outline:before {
+ content: "\e036"; }
+
+.mdi-payment:before {
+ content: "\e8a1"; }
+
+.mdi-people:before {
+ content: "\e7fb"; }
+
+.mdi-people-outline:before {
+ content: "\e7fc"; }
+
+.mdi-perm-camera-mic:before {
+ content: "\e8a2"; }
+
+.mdi-perm-contact-calendar:before {
+ content: "\e8a3"; }
+
+.mdi-perm-data-setting:before {
+ content: "\e8a4"; }
+
+.mdi-perm-device-information:before {
+ content: "\e8a5"; }
+
+.mdi-perm-identity:before {
+ content: "\e8a6"; }
+
+.mdi-perm-media:before {
+ content: "\e8a7"; }
+
+.mdi-perm-phone-msg:before {
+ content: "\e8a8"; }
+
+.mdi-perm-scan-wifi:before {
+ content: "\e8a9"; }
+
+.mdi-person:before {
+ content: "\e7fd"; }
+
+.mdi-person-add:before {
+ content: "\e7fe"; }
+
+.mdi-person-outline:before {
+ content: "\e7ff"; }
+
+.mdi-person-pin:before {
+ content: "\e55a"; }
+
+.mdi-person-pin-circle:before {
+ content: "\e56a"; }
+
+.mdi-personal-video:before {
+ content: "\e63b"; }
+
+.mdi-pets:before {
+ content: "\e91d"; }
+
+.mdi-phone:before {
+ content: "\e0cd"; }
+
+.mdi-phone-android:before {
+ content: "\e324"; }
+
+.mdi-phone-bluetooth-speaker:before {
+ content: "\e61b"; }
+
+.mdi-phone-forwarded:before {
+ content: "\e61c"; }
+
+.mdi-phone-in-talk:before {
+ content: "\e61d"; }
+
+.mdi-phone-iphone:before {
+ content: "\e325"; }
+
+.mdi-phone-locked:before {
+ content: "\e61e"; }
+
+.mdi-phone-missed:before {
+ content: "\e61f"; }
+
+.mdi-phone-paused:before {
+ content: "\e620"; }
+
+.mdi-phonelink:before {
+ content: "\e326"; }
+
+.mdi-phonelink-erase:before {
+ content: "\e0db"; }
+
+.mdi-phonelink-lock:before {
+ content: "\e0dc"; }
+
+.mdi-phonelink-off:before {
+ content: "\e327"; }
+
+.mdi-phonelink-ring:before {
+ content: "\e0dd"; }
+
+.mdi-phonelink-setup:before {
+ content: "\e0de"; }
+
+.mdi-photo:before {
+ content: "\e410"; }
+
+.mdi-photo-album:before {
+ content: "\e411"; }
+
+.mdi-photo-camera:before {
+ content: "\e412"; }
+
+.mdi-photo-filter:before {
+ content: "\e43b"; }
+
+.mdi-photo-library:before {
+ content: "\e413"; }
+
+.mdi-photo-size-select-actual:before {
+ content: "\e432"; }
+
+.mdi-photo-size-select-large:before {
+ content: "\e433"; }
+
+.mdi-photo-size-select-small:before {
+ content: "\e434"; }
+
+.mdi-picture-as-pdf:before {
+ content: "\e415"; }
+
+.mdi-picture-in-picture:before {
+ content: "\e8aa"; }
+
+.mdi-picture-in-picture-alt:before {
+ content: "\e911"; }
+
+.mdi-pie-chart:before {
+ content: "\e6c4"; }
+
+.mdi-pie-chart-outlined:before {
+ content: "\e6c5"; }
+
+.mdi-pin-drop:before {
+ content: "\e55e"; }
+
+.mdi-place:before {
+ content: "\e55f"; }
+
+.mdi-play-arrow:before {
+ content: "\e037"; }
+
+.mdi-play-circle-filled:before {
+ content: "\e038"; }
+
+.mdi-play-circle-outline:before {
+ content: "\e039"; }
+
+.mdi-play-for-work:before {
+ content: "\e906"; }
+
+.mdi-playlist-add:before {
+ content: "\e03b"; }
+
+.mdi-playlist-add-check:before {
+ content: "\e065"; }
+
+.mdi-playlist-play:before {
+ content: "\e05f"; }
+
+.mdi-plus-one:before {
+ content: "\e800"; }
+
+.mdi-poll:before {
+ content: "\e801"; }
+
+.mdi-polymer:before {
+ content: "\e8ab"; }
+
+.mdi-pool:before {
+ content: "\eb48"; }
+
+.mdi-portable-wifi-off:before {
+ content: "\e0ce"; }
+
+.mdi-portrait:before {
+ content: "\e416"; }
+
+.mdi-power:before {
+ content: "\e63c"; }
+
+.mdi-power-input:before {
+ content: "\e336"; }
+
+.mdi-power-settings-new:before {
+ content: "\e8ac"; }
+
+.mdi-pregnant-woman:before {
+ content: "\e91e"; }
+
+.mdi-present-to-all:before {
+ content: "\e0df"; }
+
+.mdi-print:before {
+ content: "\e8ad"; }
+
+.mdi-priority-high:before {
+ content: "\e645"; }
+
+.mdi-public:before {
+ content: "\e80b"; }
+
+.mdi-publish:before {
+ content: "\e255"; }
+
+.mdi-query-builder:before {
+ content: "\e8ae"; }
+
+.mdi-question-answer:before {
+ content: "\e8af"; }
+
+.mdi-queue:before {
+ content: "\e03c"; }
+
+.mdi-queue-music:before {
+ content: "\e03d"; }
+
+.mdi-queue-play-next:before {
+ content: "\e066"; }
+
+.mdi-radio:before {
+ content: "\e03e"; }
+
+.mdi-radio-button-checked:before {
+ content: "\e837"; }
+
+.mdi-radio-button-unchecked:before {
+ content: "\e836"; }
+
+.mdi-rate-review:before {
+ content: "\e560"; }
+
+.mdi-receipt:before {
+ content: "\e8b0"; }
+
+.mdi-recent-actors:before {
+ content: "\e03f"; }
+
+.mdi-record-voice-over:before {
+ content: "\e91f"; }
+
+.mdi-redeem:before {
+ content: "\e8b1"; }
+
+.mdi-redo:before {
+ content: "\e15a"; }
+
+.mdi-refresh:before {
+ content: "\e5d5"; }
+
+.mdi-remove:before {
+ content: "\e15b"; }
+
+.mdi-remove-circle:before {
+ content: "\e15c"; }
+
+.mdi-remove-circle-outline:before {
+ content: "\e15d"; }
+
+.mdi-remove-from-queue:before {
+ content: "\e067"; }
+
+.mdi-remove-red-eye:before {
+ content: "\e417"; }
+
+.mdi-remove-shopping-cart:before {
+ content: "\e928"; }
+
+.mdi-reorder:before {
+ content: "\e8fe"; }
+
+.mdi-repeat:before {
+ content: "\e040"; }
+
+.mdi-repeat-one:before {
+ content: "\e041"; }
+
+.mdi-replay:before {
+ content: "\e042"; }
+
+.mdi-replay-10:before {
+ content: "\e059"; }
+
+.mdi-replay-30:before {
+ content: "\e05a"; }
+
+.mdi-replay-5:before {
+ content: "\e05b"; }
+
+.mdi-reply:before {
+ content: "\e15e"; }
+
+.mdi-reply-all:before {
+ content: "\e15f"; }
+
+.mdi-report:before {
+ content: "\e160"; }
+
+.mdi-report-problem:before {
+ content: "\e8b2"; }
+
+.mdi-restaurant:before {
+ content: "\e56c"; }
+
+.mdi-restaurant-menu:before {
+ content: "\e561"; }
+
+.mdi-restore:before {
+ content: "\e8b3"; }
+
+.mdi-restore-page:before {
+ content: "\e929"; }
+
+.mdi-ring-volume:before {
+ content: "\e0d1"; }
+
+.mdi-room:before {
+ content: "\e8b4"; }
+
+.mdi-room-service:before {
+ content: "\eb49"; }
+
+.mdi-rotate-90-degrees-ccw:before {
+ content: "\e418"; }
+
+.mdi-rotate-left:before {
+ content: "\e419"; }
+
+.mdi-rotate-right:before {
+ content: "\e41a"; }
+
+.mdi-rounded-corner:before {
+ content: "\e920"; }
+
+.mdi-router:before {
+ content: "\e328"; }
+
+.mdi-rowing:before {
+ content: "\e921"; }
+
+.mdi-rss-feed:before {
+ content: "\e0e5"; }
+
+.mdi-rv-hookup:before {
+ content: "\e642"; }
+
+.mdi-satellite:before {
+ content: "\e562"; }
+
+.mdi-save:before {
+ content: "\e161"; }
+
+.mdi-scanner:before {
+ content: "\e329"; }
+
+.mdi-schedule:before {
+ content: "\e8b5"; }
+
+.mdi-school:before {
+ content: "\e80c"; }
+
+.mdi-screen-lock-landscape:before {
+ content: "\e1be"; }
+
+.mdi-screen-lock-portrait:before {
+ content: "\e1bf"; }
+
+.mdi-screen-lock-rotation:before {
+ content: "\e1c0"; }
+
+.mdi-screen-rotation:before {
+ content: "\e1c1"; }
+
+.mdi-screen-share:before {
+ content: "\e0e2"; }
+
+.mdi-sd-card:before {
+ content: "\e623"; }
+
+.mdi-sd-storage:before {
+ content: "\e1c2"; }
+
+.mdi-search:before {
+ content: "\e8b6"; }
+
+.mdi-security:before {
+ content: "\e32a"; }
+
+.mdi-select-all:before {
+ content: "\e162"; }
+
+.mdi-send:before {
+ content: "\e163"; }
+
+.mdi-sentiment-dissatisfied:before {
+ content: "\e811"; }
+
+.mdi-sentiment-neutral:before {
+ content: "\e812"; }
+
+.mdi-sentiment-satisfied:before {
+ content: "\e813"; }
+
+.mdi-sentiment-very-dissatisfied:before {
+ content: "\e814"; }
+
+.mdi-sentiment-very-satisfied:before {
+ content: "\e815"; }
+
+.mdi-settings:before {
+ content: "\e8b8"; }
+
+.mdi-settings-applications:before {
+ content: "\e8b9"; }
+
+.mdi-settings-backup-restore:before {
+ content: "\e8ba"; }
+
+.mdi-settings-bluetooth:before {
+ content: "\e8bb"; }
+
+.mdi-settings-brightness:before {
+ content: "\e8bd"; }
+
+.mdi-settings-cell:before {
+ content: "\e8bc"; }
+
+.mdi-settings-ethernet:before {
+ content: "\e8be"; }
+
+.mdi-settings-input-antenna:before {
+ content: "\e8bf"; }
+
+.mdi-settings-input-component:before {
+ content: "\e8c0"; }
+
+.mdi-settings-input-composite:before {
+ content: "\e8c1"; }
+
+.mdi-settings-input-hdmi:before {
+ content: "\e8c2"; }
+
+.mdi-settings-input-svideo:before {
+ content: "\e8c3"; }
+
+.mdi-settings-overscan:before {
+ content: "\e8c4"; }
+
+.mdi-settings-phone:before {
+ content: "\e8c5"; }
+
+.mdi-settings-power:before {
+ content: "\e8c6"; }
+
+.mdi-settings-remote:before {
+ content: "\e8c7"; }
+
+.mdi-settings-system-daydream:before {
+ content: "\e1c3"; }
+
+.mdi-settings-voice:before {
+ content: "\e8c8"; }
+
+.mdi-share:before {
+ content: "\e80d"; }
+
+.mdi-shop:before {
+ content: "\e8c9"; }
+
+.mdi-shop-two:before {
+ content: "\e8ca"; }
+
+.mdi-shopping-basket:before {
+ content: "\e8cb"; }
+
+.mdi-shopping-cart:before {
+ content: "\e8cc"; }
+
+.mdi-short-text:before {
+ content: "\e261"; }
+
+.mdi-show-chart:before {
+ content: "\e6e1"; }
+
+.mdi-shuffle:before {
+ content: "\e043"; }
+
+.mdi-signal-cellular-4-bar:before {
+ content: "\e1c8"; }
+
+.mdi-signal-cellular-connected-no-internet-4-bar:before {
+ content: "\e1cd"; }
+
+.mdi-signal-cellular-no-sim:before {
+ content: "\e1ce"; }
+
+.mdi-signal-cellular-null:before {
+ content: "\e1cf"; }
+
+.mdi-signal-cellular-off:before {
+ content: "\e1d0"; }
+
+.mdi-signal-wifi-4-bar:before {
+ content: "\e1d8"; }
+
+.mdi-signal-wifi-4-bar-lock:before {
+ content: "\e1d9"; }
+
+.mdi-signal-wifi-off:before {
+ content: "\e1da"; }
+
+.mdi-sim-card:before {
+ content: "\e32b"; }
+
+.mdi-sim-card-alert:before {
+ content: "\e624"; }
+
+.mdi-skip-next:before {
+ content: "\e044"; }
+
+.mdi-skip-previous:before {
+ content: "\e045"; }
+
+.mdi-slideshow:before {
+ content: "\e41b"; }
+
+.mdi-slow-motion-video:before {
+ content: "\e068"; }
+
+.mdi-smartphone:before {
+ content: "\e32c"; }
+
+.mdi-smoke-free:before {
+ content: "\eb4a"; }
+
+.mdi-smoking-rooms:before {
+ content: "\eb4b"; }
+
+.mdi-sms:before {
+ content: "\e625"; }
+
+.mdi-sms-failed:before {
+ content: "\e626"; }
+
+.mdi-snooze:before {
+ content: "\e046"; }
+
+.mdi-sort:before {
+ content: "\e164"; }
+
+.mdi-sort-by-alpha:before {
+ content: "\e053"; }
+
+.mdi-spa:before {
+ content: "\eb4c"; }
+
+.mdi-space-bar:before {
+ content: "\e256"; }
+
+.mdi-speaker:before {
+ content: "\e32d"; }
+
+.mdi-speaker-group:before {
+ content: "\e32e"; }
+
+.mdi-speaker-notes:before {
+ content: "\e8cd"; }
+
+.mdi-speaker-notes-off:before {
+ content: "\e92a"; }
+
+.mdi-speaker-phone:before {
+ content: "\e0d2"; }
+
+.mdi-spellcheck:before {
+ content: "\e8ce"; }
+
+.mdi-star:before {
+ content: "\e838"; }
+
+.mdi-star-border:before {
+ content: "\e83a"; }
+
+.mdi-star-half:before {
+ content: "\e839"; }
+
+.mdi-stars:before {
+ content: "\e8d0"; }
+
+.mdi-stay-current-landscape:before {
+ content: "\e0d3"; }
+
+.mdi-stay-current-portrait:before {
+ content: "\e0d4"; }
+
+.mdi-stay-primary-landscape:before {
+ content: "\e0d5"; }
+
+.mdi-stay-primary-portrait:before {
+ content: "\e0d6"; }
+
+.mdi-stop:before {
+ content: "\e047"; }
+
+.mdi-stop-screen-share:before {
+ content: "\e0e3"; }
+
+.mdi-storage:before {
+ content: "\e1db"; }
+
+.mdi-store:before {
+ content: "\e8d1"; }
+
+.mdi-store-mall-directory:before {
+ content: "\e563"; }
+
+.mdi-straighten:before {
+ content: "\e41c"; }
+
+.mdi-streetview:before {
+ content: "\e56e"; }
+
+.mdi-strikethrough-s:before {
+ content: "\e257"; }
+
+.mdi-style:before {
+ content: "\e41d"; }
+
+.mdi-subdirectory-arrow-left:before {
+ content: "\e5d9"; }
+
+.mdi-subdirectory-arrow-right:before {
+ content: "\e5da"; }
+
+.mdi-subject:before {
+ content: "\e8d2"; }
+
+.mdi-subscriptions:before {
+ content: "\e064"; }
+
+.mdi-subtitles:before {
+ content: "\e048"; }
+
+.mdi-subway:before {
+ content: "\e56f"; }
+
+.mdi-supervisor-account:before {
+ content: "\e8d3"; }
+
+.mdi-surround-sound:before {
+ content: "\e049"; }
+
+.mdi-swap-calls:before {
+ content: "\e0d7"; }
+
+.mdi-swap-horiz:before {
+ content: "\e8d4"; }
+
+.mdi-swap-vert:before {
+ content: "\e8d5"; }
+
+.mdi-swap-vertical-circle:before {
+ content: "\e8d6"; }
+
+.mdi-switch-camera:before {
+ content: "\e41e"; }
+
+.mdi-switch-video:before {
+ content: "\e41f"; }
+
+.mdi-sync:before {
+ content: "\e627"; }
+
+.mdi-sync-disabled:before {
+ content: "\e628"; }
+
+.mdi-sync-problem:before {
+ content: "\e629"; }
+
+.mdi-system-update:before {
+ content: "\e62a"; }
+
+.mdi-system-update-alt:before {
+ content: "\e8d7"; }
+
+.mdi-tab:before {
+ content: "\e8d8"; }
+
+.mdi-tab-unselected:before {
+ content: "\e8d9"; }
+
+.mdi-tablet:before {
+ content: "\e32f"; }
+
+.mdi-tablet-android:before {
+ content: "\e330"; }
+
+.mdi-tablet-mac:before {
+ content: "\e331"; }
+
+.mdi-tag-faces:before {
+ content: "\e420"; }
+
+.mdi-tap-and-play:before {
+ content: "\e62b"; }
+
+.mdi-terrain:before {
+ content: "\e564"; }
+
+.mdi-text-fields:before {
+ content: "\e262"; }
+
+.mdi-text-format:before {
+ content: "\e165"; }
+
+.mdi-textsms:before {
+ content: "\e0d8"; }
+
+.mdi-texture:before {
+ content: "\e421"; }
+
+.mdi-theaters:before {
+ content: "\e8da"; }
+
+.mdi-thumb-down:before {
+ content: "\e8db"; }
+
+.mdi-thumb-up:before {
+ content: "\e8dc"; }
+
+.mdi-thumbs-up-down:before {
+ content: "\e8dd"; }
+
+.mdi-time-to-leave:before {
+ content: "\e62c"; }
+
+.mdi-timelapse:before {
+ content: "\e422"; }
+
+.mdi-timeline:before {
+ content: "\e922"; }
+
+.mdi-timer:before {
+ content: "\e425"; }
+
+.mdi-timer-10:before {
+ content: "\e423"; }
+
+.mdi-timer-3:before {
+ content: "\e424"; }
+
+.mdi-timer-off:before {
+ content: "\e426"; }
+
+.mdi-title:before {
+ content: "\e264"; }
+
+.mdi-toc:before {
+ content: "\e8de"; }
+
+.mdi-today:before {
+ content: "\e8df"; }
+
+.mdi-toll:before {
+ content: "\e8e0"; }
+
+.mdi-tonality:before {
+ content: "\e427"; }
+
+.mdi-touch-app:before {
+ content: "\e913"; }
+
+.mdi-toys:before {
+ content: "\e332"; }
+
+.mdi-track-changes:before {
+ content: "\e8e1"; }
+
+.mdi-traffic:before {
+ content: "\e565"; }
+
+.mdi-train:before {
+ content: "\e570"; }
+
+.mdi-tram:before {
+ content: "\e571"; }
+
+.mdi-transfer-within-a-station:before {
+ content: "\e572"; }
+
+.mdi-transform:before {
+ content: "\e428"; }
+
+.mdi-translate:before {
+ content: "\e8e2"; }
+
+.mdi-trending-down:before {
+ content: "\e8e3"; }
+
+.mdi-trending-flat:before {
+ content: "\e8e4"; }
+
+.mdi-trending-up:before {
+ content: "\e8e5"; }
+
+.mdi-tune:before {
+ content: "\e429"; }
+
+.mdi-turned-in:before {
+ content: "\e8e6"; }
+
+.mdi-turned-in-not:before {
+ content: "\e8e7"; }
+
+.mdi-tv:before {
+ content: "\e333"; }
+
+.mdi-unarchive:before {
+ content: "\e169"; }
+
+.mdi-undo:before {
+ content: "\e166"; }
+
+.mdi-unfold-less:before {
+ content: "\e5d6"; }
+
+.mdi-unfold-more:before {
+ content: "\e5d7"; }
+
+.mdi-update:before {
+ content: "\e923"; }
+
+.mdi-usb:before {
+ content: "\e1e0"; }
+
+.mdi-verified-user:before {
+ content: "\e8e8"; }
+
+.mdi-vertical-align-bottom:before {
+ content: "\e258"; }
+
+.mdi-vertical-align-center:before {
+ content: "\e259"; }
+
+.mdi-vertical-align-top:before {
+ content: "\e25a"; }
+
+.mdi-vibration:before {
+ content: "\e62d"; }
+
+.mdi-video-call:before {
+ content: "\e070"; }
+
+.mdi-video-label:before {
+ content: "\e071"; }
+
+.mdi-video-library:before {
+ content: "\e04a"; }
+
+.mdi-videocam:before {
+ content: "\e04b"; }
+
+.mdi-videocam-off:before {
+ content: "\e04c"; }
+
+.mdi-videogame-asset:before {
+ content: "\e338"; }
+
+.mdi-view-agenda:before {
+ content: "\e8e9"; }
+
+.mdi-view-array:before {
+ content: "\e8ea"; }
+
+.mdi-view-carousel:before {
+ content: "\e8eb"; }
+
+.mdi-view-column:before {
+ content: "\e8ec"; }
+
+.mdi-view-comfy:before {
+ content: "\e42a"; }
+
+.mdi-view-compact:before {
+ content: "\e42b"; }
+
+.mdi-view-day:before {
+ content: "\e8ed"; }
+
+.mdi-view-headline:before {
+ content: "\e8ee"; }
+
+.mdi-view-list:before {
+ content: "\e8ef"; }
+
+.mdi-view-module:before {
+ content: "\e8f0"; }
+
+.mdi-view-quilt:before {
+ content: "\e8f1"; }
+
+.mdi-view-stream:before {
+ content: "\e8f2"; }
+
+.mdi-view-week:before {
+ content: "\e8f3"; }
+
+.mdi-vignette:before {
+ content: "\e435"; }
+
+.mdi-visibility:before {
+ content: "\e8f4"; }
+
+.mdi-visibility-off:before {
+ content: "\e8f5"; }
+
+.mdi-voice-chat:before {
+ content: "\e62e"; }
+
+.mdi-voicemail:before {
+ content: "\e0d9"; }
+
+.mdi-volume-down:before {
+ content: "\e04d"; }
+
+.mdi-volume-mute:before {
+ content: "\e04e"; }
+
+.mdi-volume-off:before {
+ content: "\e04f"; }
+
+.mdi-volume-up:before {
+ content: "\e050"; }
+
+.mdi-vpn-key:before {
+ content: "\e0da"; }
+
+.mdi-vpn-lock:before {
+ content: "\e62f"; }
+
+.mdi-wallpaper:before {
+ content: "\e1bc"; }
+
+.mdi-warning:before {
+ content: "\e002"; }
+
+.mdi-watch:before {
+ content: "\e334"; }
+
+.mdi-watch-later:before {
+ content: "\e924"; }
+
+.mdi-wb-auto:before {
+ content: "\e42c"; }
+
+.mdi-wb-cloudy:before {
+ content: "\e42d"; }
+
+.mdi-wb-incandescent:before {
+ content: "\e42e"; }
+
+.mdi-wb-iridescent:before {
+ content: "\e436"; }
+
+.mdi-wb-sunny:before {
+ content: "\e430"; }
+
+.mdi-wc:before {
+ content: "\e63d"; }
+
+.mdi-web:before {
+ content: "\e051"; }
+
+.mdi-web-asset:before {
+ content: "\e069"; }
+
+.mdi-weekend:before {
+ content: "\e16b"; }
+
+.mdi-whatshot:before {
+ content: "\e80e"; }
+
+.mdi-widgets:before {
+ content: "\e1bd"; }
+
+.mdi-wifi:before {
+ content: "\e63e"; }
+
+.mdi-wifi-lock:before {
+ content: "\e1e1"; }
+
+.mdi-wifi-tethering:before {
+ content: "\e1e2"; }
+
+.mdi-work:before {
+ content: "\e8f9"; }
+
+.mdi-wrap-text:before {
+ content: "\e25b"; }
+
+.mdi-youtube-searched-for:before {
+ content: "\e8fa"; }
+
+.mdi-zoom-in:before {
+ content: "\e8ff"; }
+
+.mdi-zoom-out:before {
+ content: "\e900"; }
+
+.mdi-zoom-out-map:before {
+ content: "\e56b"; }
diff --git a/vendor/mervick/material-design-icons/css/material-icons.min.css b/vendor/mervick/material-design-icons/css/material-icons.min.css
new file mode 100644
index 000000000..1aa7df4a9
--- /dev/null
+++ b/vendor/mervick/material-design-icons/css/material-icons.min.css
@@ -0,0 +1,2 @@
+.mdi-fw,.mdi-li{text-align:center}@font-face{font-family:"Material Design Icons";font-style:normal;font-weight:400;src:url(../fonts/MaterialIcons-Regular.eot?v=2.2.1);src:url(../fonts/MaterialIcons-Regular.eot?v=2.2.1#iefix) format("embedded-opentype"),url(../fonts/MaterialIcons-Regular.woff2?v=2.2.1) format("woff2"),url(../fonts/MaterialIcons-Regular.woff?v=2.2.1) format("woff"),url(../fonts/MaterialIcons-Regular.ttf?v=2.2.1) format("truetype"),url(../fonts/MaterialIcons-Regular.svg?v=2.2.1#materialiconsregular) format("svg")}.material-icons,.mdi{font:normal normal normal 14px/1 "Material Design Icons";font-size:inherit;display:inline-block;text-transform:none;letter-spacing:normal;line-height:1;position:relative;word-wrap:normal;top:1px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0,0)}.material-icons{width:1em;height:1em;text-rendering:optimizeLegibility;font-feature-settings:'liga'}.mdi-lg,.mdi-size-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.mdi-2x,.mdi-size-2x{font-size:2em}.mdi-3x,.mdi-size-3x{font-size:3em}.mdi-4x,.mdi-size-4x{font-size:4em}.mdi-5x,.mdi-size-5x{font-size:5em}.mdi-fw{width:1.28571em}.mdi-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.mdi-ul>li{position:relative}.mdi-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em}.mdi-li.mdi-lg{left:-1.85714em}.mdi-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.mdi.pull-left{margin-right:.3em}.mdi.pull-right{margin-left:.3em}.mdi-spin{-webkit-animation:md-spin 2s infinite linear;animation:md-spin 2s infinite linear}.mdi-pulse{-webkit-animation:md-spin 1s infinite steps(8);animation:md-spin 1s infinite steps(8)}@-webkit-keyframes md-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes md-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.mdi-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.mdi-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.mdi-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.mdi-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0);-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.mdi-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}:root .mdi-flip-horizontal,:root .mdi-flip-vertical,:root .mdi-rotate-180,:root .mdi-rotate-270,:root .mdi-rotate-90{filter:none}.mdi-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.mdi-stack-1x,.mdi-stack-2x{position:absolute;left:0;width:100%;text-align:center}.mdi-stack-1x{line-height:inherit}.mdi-stack-2x{font-size:2em}.mdi-inverse{color:#fff}.mdi-3d-rotation:before{content:"\e84d"}.mdi-ac-unit:before{content:"\eb3b"}.mdi-access-alarm:before{content:"\e190"}.mdi-access-alarms:before{content:"\e191"}.mdi-access-time:before{content:"\e192"}.mdi-accessibility:before{content:"\e84e"}.mdi-accessible:before{content:"\e914"}.mdi-account-balance:before{content:"\e84f"}.mdi-account-balance-wallet:before{content:"\e850"}.mdi-account-box:before{content:"\e851"}.mdi-account-circle:before{content:"\e853"}.mdi-adb:before{content:"\e60e"}.mdi-add:before{content:"\e145"}.mdi-add-a-photo:before{content:"\e439"}.mdi-add-alarm:before{content:"\e193"}.mdi-add-alert:before{content:"\e003"}.mdi-add-box:before{content:"\e146"}.mdi-add-circle:before{content:"\e147"}.mdi-add-circle-outline:before{content:"\e148"}.mdi-add-location:before{content:"\e567"}.mdi-add-shopping-cart:before{content:"\e854"}.mdi-add-to-photos:before{content:"\e39d"}.mdi-add-to-queue:before{content:"\e05c"}.mdi-adjust:before{content:"\e39e"}.mdi-airline-seat-flat:before{content:"\e630"}.mdi-airline-seat-flat-angled:before{content:"\e631"}.mdi-airline-seat-individual-suite:before{content:"\e632"}.mdi-airline-seat-legroom-extra:before{content:"\e633"}.mdi-airline-seat-legroom-normal:before{content:"\e634"}.mdi-airline-seat-legroom-reduced:before{content:"\e635"}.mdi-airline-seat-recline-extra:before{content:"\e636"}.mdi-airline-seat-recline-normal:before{content:"\e637"}.mdi-airplanemode-active:before{content:"\e195"}.mdi-airplanemode-inactive:before{content:"\e194"}.mdi-airplay:before{content:"\e055"}.mdi-airport-shuttle:before{content:"\eb3c"}.mdi-alarm:before{content:"\e855"}.mdi-alarm-add:before{content:"\e856"}.mdi-alarm-off:before{content:"\e857"}.mdi-alarm-on:before{content:"\e858"}.mdi-album:before{content:"\e019"}.mdi-all-inclusive:before{content:"\eb3d"}.mdi-all-out:before{content:"\e90b"}.mdi-android:before{content:"\e859"}.mdi-announcement:before{content:"\e85a"}.mdi-apps:before{content:"\e5c3"}.mdi-archive:before{content:"\e149"}.mdi-arrow-back:before{content:"\e5c4"}.mdi-arrow-downward:before{content:"\e5db"}.mdi-arrow-drop-down:before{content:"\e5c5"}.mdi-arrow-drop-down-circle:before{content:"\e5c6"}.mdi-arrow-drop-up:before{content:"\e5c7"}.mdi-arrow-forward:before{content:"\e5c8"}.mdi-arrow-upward:before{content:"\e5d8"}.mdi-art-track:before{content:"\e060"}.mdi-aspect-ratio:before{content:"\e85b"}.mdi-assessment:before{content:"\e85c"}.mdi-assignment:before{content:"\e85d"}.mdi-assignment-ind:before{content:"\e85e"}.mdi-assignment-late:before{content:"\e85f"}.mdi-assignment-return:before{content:"\e860"}.mdi-assignment-returned:before{content:"\e861"}.mdi-assignment-turned-in:before{content:"\e862"}.mdi-assistant:before{content:"\e39f"}.mdi-assistant-photo:before{content:"\e3a0"}.mdi-attach-file:before{content:"\e226"}.mdi-attach-money:before{content:"\e227"}.mdi-attachment:before{content:"\e2bc"}.mdi-audiotrack:before{content:"\e3a1"}.mdi-autorenew:before{content:"\e863"}.mdi-av-timer:before{content:"\e01b"}.mdi-backspace:before{content:"\e14a"}.mdi-backup:before{content:"\e864"}.mdi-battery-alert:before{content:"\e19c"}.mdi-battery-charging-full:before{content:"\e1a3"}.mdi-battery-full:before{content:"\e1a4"}.mdi-battery-std:before{content:"\e1a5"}.mdi-battery-unknown:before{content:"\e1a6"}.mdi-beach-access:before{content:"\eb3e"}.mdi-beenhere:before{content:"\e52d"}.mdi-block:before{content:"\e14b"}.mdi-bluetooth:before{content:"\e1a7"}.mdi-bluetooth-audio:before{content:"\e60f"}.mdi-bluetooth-connected:before{content:"\e1a8"}.mdi-bluetooth-disabled:before{content:"\e1a9"}.mdi-bluetooth-searching:before{content:"\e1aa"}.mdi-blur-circular:before{content:"\e3a2"}.mdi-blur-linear:before{content:"\e3a3"}.mdi-blur-off:before{content:"\e3a4"}.mdi-blur-on:before{content:"\e3a5"}.mdi-book:before{content:"\e865"}.mdi-bookmark:before{content:"\e866"}.mdi-bookmark-border:before{content:"\e867"}.mdi-border-all:before{content:"\e228"}.mdi-border-bottom:before{content:"\e229"}.mdi-border-clear:before{content:"\e22a"}.mdi-border-color:before{content:"\e22b"}.mdi-border-horizontal:before{content:"\e22c"}.mdi-border-inner:before{content:"\e22d"}.mdi-border-left:before{content:"\e22e"}.mdi-border-outer:before{content:"\e22f"}.mdi-border-right:before{content:"\e230"}.mdi-border-style:before{content:"\e231"}.mdi-border-top:before{content:"\e232"}.mdi-border-vertical:before{content:"\e233"}.mdi-branding-watermark:before{content:"\e06b"}.mdi-brightness-1:before{content:"\e3a6"}.mdi-brightness-2:before{content:"\e3a7"}.mdi-brightness-3:before{content:"\e3a8"}.mdi-brightness-4:before{content:"\e3a9"}.mdi-brightness-5:before{content:"\e3aa"}.mdi-brightness-6:before{content:"\e3ab"}.mdi-brightness-7:before{content:"\e3ac"}.mdi-brightness-auto:before{content:"\e1ab"}.mdi-brightness-high:before{content:"\e1ac"}.mdi-brightness-low:before{content:"\e1ad"}.mdi-brightness-medium:before{content:"\e1ae"}.mdi-broken-image:before{content:"\e3ad"}.mdi-brush:before{content:"\e3ae"}.mdi-bubble-chart:before{content:"\e6dd"}.mdi-bug-report:before{content:"\e868"}.mdi-build:before{content:"\e869"}.mdi-burst-mode:before{content:"\e43c"}.mdi-business:before{content:"\e0af"}.mdi-business-center:before{content:"\eb3f"}.mdi-cached:before{content:"\e86a"}.mdi-cake:before{content:"\e7e9"}.mdi-call:before{content:"\e0b0"}.mdi-call-end:before{content:"\e0b1"}.mdi-call-made:before{content:"\e0b2"}.mdi-call-merge:before{content:"\e0b3"}.mdi-call-missed:before{content:"\e0b4"}.mdi-call-missed-outgoing:before{content:"\e0e4"}.mdi-call-received:before{content:"\e0b5"}.mdi-call-split:before{content:"\e0b6"}.mdi-call-to-action:before{content:"\e06c"}.mdi-camera:before{content:"\e3af"}.mdi-camera-alt:before{content:"\e3b0"}.mdi-camera-enhance:before{content:"\e8fc"}.mdi-camera-front:before{content:"\e3b1"}.mdi-camera-rear:before{content:"\e3b2"}.mdi-camera-roll:before{content:"\e3b3"}.mdi-cancel:before{content:"\e5c9"}.mdi-card-giftcard:before{content:"\e8f6"}.mdi-card-membership:before{content:"\e8f7"}.mdi-card-travel:before{content:"\e8f8"}.mdi-casino:before{content:"\eb40"}.mdi-cast:before{content:"\e307"}.mdi-cast-connected:before{content:"\e308"}.mdi-center-focus-strong:before{content:"\e3b4"}.mdi-center-focus-weak:before{content:"\e3b5"}.mdi-change-history:before{content:"\e86b"}.mdi-chat:before{content:"\e0b7"}.mdi-chat-bubble:before{content:"\e0ca"}.mdi-chat-bubble-outline:before{content:"\e0cb"}.mdi-check:before{content:"\e5ca"}.mdi-check-box:before{content:"\e834"}.mdi-check-box-outline-blank:before{content:"\e835"}.mdi-check-circle:before{content:"\e86c"}.mdi-chevron-left:before{content:"\e5cb"}.mdi-chevron-right:before{content:"\e5cc"}.mdi-child-care:before{content:"\eb41"}.mdi-child-friendly:before{content:"\eb42"}.mdi-chrome-reader-mode:before{content:"\e86d"}.mdi-class:before{content:"\e86e"}.mdi-clear:before{content:"\e14c"}.mdi-clear-all:before{content:"\e0b8"}.mdi-close:before{content:"\e5cd"}.mdi-closed-caption:before{content:"\e01c"}.mdi-cloud:before{content:"\e2bd"}.mdi-cloud-circle:before{content:"\e2be"}.mdi-cloud-done:before{content:"\e2bf"}.mdi-cloud-download:before{content:"\e2c0"}.mdi-cloud-off:before{content:"\e2c1"}.mdi-cloud-queue:before{content:"\e2c2"}.mdi-cloud-upload:before{content:"\e2c3"}.mdi-code:before{content:"\e86f"}.mdi-collections:before{content:"\e3b6"}.mdi-collections-bookmark:before{content:"\e431"}.mdi-color-lens:before{content:"\e3b7"}.mdi-colorize:before{content:"\e3b8"}.mdi-comment:before{content:"\e0b9"}.mdi-compare:before{content:"\e3b9"}.mdi-compare-arrows:before{content:"\e915"}.mdi-computer:before{content:"\e30a"}.mdi-confirmation-number:before{content:"\e638"}.mdi-contact-mail:before{content:"\e0d0"}.mdi-contact-phone:before{content:"\e0cf"}.mdi-contacts:before{content:"\e0ba"}.mdi-content-copy:before{content:"\e14d"}.mdi-content-cut:before{content:"\e14e"}.mdi-content-paste:before{content:"\e14f"}.mdi-control-point:before{content:"\e3ba"}.mdi-control-point-duplicate:before{content:"\e3bb"}.mdi-copyright:before{content:"\e90c"}.mdi-create:before{content:"\e150"}.mdi-create-new-folder:before{content:"\e2cc"}.mdi-credit-card:before{content:"\e870"}.mdi-crop:before{content:"\e3be"}.mdi-crop-16-9:before{content:"\e3bc"}.mdi-crop-3-2:before{content:"\e3bd"}.mdi-crop-5-4:before{content:"\e3bf"}.mdi-crop-7-5:before{content:"\e3c0"}.mdi-crop-din:before{content:"\e3c1"}.mdi-crop-free:before{content:"\e3c2"}.mdi-crop-landscape:before{content:"\e3c3"}.mdi-crop-original:before{content:"\e3c4"}.mdi-crop-portrait:before{content:"\e3c5"}.mdi-crop-rotate:before{content:"\e437"}.mdi-crop-square:before{content:"\e3c6"}.mdi-dashboard:before{content:"\e871"}.mdi-data-usage:before{content:"\e1af"}.mdi-date-range:before{content:"\e916"}.mdi-dehaze:before{content:"\e3c7"}.mdi-delete:before{content:"\e872"}.mdi-delete-forever:before{content:"\e92b"}.mdi-delete-sweep:before{content:"\e16c"}.mdi-description:before{content:"\e873"}.mdi-desktop-mac:before{content:"\e30b"}.mdi-desktop-windows:before{content:"\e30c"}.mdi-details:before{content:"\e3c8"}.mdi-developer-board:before{content:"\e30d"}.mdi-developer-mode:before{content:"\e1b0"}.mdi-device-hub:before{content:"\e335"}.mdi-devices:before{content:"\e1b1"}.mdi-devices-other:before{content:"\e337"}.mdi-dialer-sip:before{content:"\e0bb"}.mdi-dialpad:before{content:"\e0bc"}.mdi-directions:before{content:"\e52e"}.mdi-directions-bike:before{content:"\e52f"}.mdi-directions-boat:before{content:"\e532"}.mdi-directions-bus:before{content:"\e530"}.mdi-directions-car:before{content:"\e531"}.mdi-directions-railway:before{content:"\e534"}.mdi-directions-run:before{content:"\e566"}.mdi-directions-subway:before{content:"\e533"}.mdi-directions-transit:before{content:"\e535"}.mdi-directions-walk:before{content:"\e536"}.mdi-disc-full:before{content:"\e610"}.mdi-dns:before{content:"\e875"}.mdi-do-not-disturb:before{content:"\e612"}.mdi-do-not-disturb-alt:before{content:"\e611"}.mdi-do-not-disturb-off:before{content:"\e643"}.mdi-do-not-disturb-on:before{content:"\e644"}.mdi-dock:before{content:"\e30e"}.mdi-domain:before{content:"\e7ee"}.mdi-done:before{content:"\e876"}.mdi-done-all:before{content:"\e877"}.mdi-donut-large:before{content:"\e917"}.mdi-donut-small:before{content:"\e918"}.mdi-drafts:before{content:"\e151"}.mdi-drag-handle:before{content:"\e25d"}.mdi-drive-eta:before{content:"\e613"}.mdi-dvr:before{content:"\e1b2"}.mdi-edit:before{content:"\e3c9"}.mdi-edit-location:before{content:"\e568"}.mdi-eject:before{content:"\e8fb"}.mdi-email:before{content:"\e0be"}.mdi-enhanced-encryption:before{content:"\e63f"}.mdi-equalizer:before{content:"\e01d"}.mdi-error:before{content:"\e000"}.mdi-error-outline:before{content:"\e001"}.mdi-euro-symbol:before{content:"\e926"}.mdi-ev-station:before{content:"\e56d"}.mdi-event:before{content:"\e878"}.mdi-event-available:before{content:"\e614"}.mdi-event-busy:before{content:"\e615"}.mdi-event-note:before{content:"\e616"}.mdi-event-seat:before{content:"\e903"}.mdi-exit-to-app:before{content:"\e879"}.mdi-expand-less:before{content:"\e5ce"}.mdi-expand-more:before{content:"\e5cf"}.mdi-explicit:before{content:"\e01e"}.mdi-explore:before{content:"\e87a"}.mdi-exposure:before{content:"\e3ca"}.mdi-exposure-neg-1:before{content:"\e3cb"}.mdi-exposure-neg-2:before{content:"\e3cc"}.mdi-exposure-plus-1:before{content:"\e3cd"}.mdi-exposure-plus-2:before{content:"\e3ce"}.mdi-exposure-zero:before{content:"\e3cf"}.mdi-extension:before{content:"\e87b"}.mdi-face:before{content:"\e87c"}.mdi-fast-forward:before{content:"\e01f"}.mdi-fast-rewind:before{content:"\e020"}.mdi-favorite:before{content:"\e87d"}.mdi-favorite-border:before{content:"\e87e"}.mdi-featured-play-list:before{content:"\e06d"}.mdi-featured-video:before{content:"\e06e"}.mdi-feedback:before{content:"\e87f"}.mdi-fiber-dvr:before{content:"\e05d"}.mdi-fiber-manual-record:before{content:"\e061"}.mdi-fiber-new:before{content:"\e05e"}.mdi-fiber-pin:before{content:"\e06a"}.mdi-fiber-smart-record:before{content:"\e062"}.mdi-file-download:before{content:"\e2c4"}.mdi-file-upload:before{content:"\e2c6"}.mdi-filter:before{content:"\e3d3"}.mdi-filter-1:before{content:"\e3d0"}.mdi-filter-2:before{content:"\e3d1"}.mdi-filter-3:before{content:"\e3d2"}.mdi-filter-4:before{content:"\e3d4"}.mdi-filter-5:before{content:"\e3d5"}.mdi-filter-6:before{content:"\e3d6"}.mdi-filter-7:before{content:"\e3d7"}.mdi-filter-8:before{content:"\e3d8"}.mdi-filter-9:before{content:"\e3d9"}.mdi-filter-9-plus:before{content:"\e3da"}.mdi-filter-b-and-w:before{content:"\e3db"}.mdi-filter-center-focus:before{content:"\e3dc"}.mdi-filter-drama:before{content:"\e3dd"}.mdi-filter-frames:before{content:"\e3de"}.mdi-filter-hdr:before{content:"\e3df"}.mdi-filter-list:before{content:"\e152"}.mdi-filter-none:before{content:"\e3e0"}.mdi-filter-tilt-shift:before{content:"\e3e2"}.mdi-filter-vintage:before{content:"\e3e3"}.mdi-find-in-page:before{content:"\e880"}.mdi-find-replace:before{content:"\e881"}.mdi-fingerprint:before{content:"\e90d"}.mdi-first-page:before{content:"\e5dc"}.mdi-fitness-center:before{content:"\eb43"}.mdi-flag:before{content:"\e153"}.mdi-flare:before{content:"\e3e4"}.mdi-flash-auto:before{content:"\e3e5"}.mdi-flash-off:before{content:"\e3e6"}.mdi-flash-on:before{content:"\e3e7"}.mdi-flight:before{content:"\e539"}.mdi-flight-land:before{content:"\e904"}.mdi-flight-takeoff:before{content:"\e905"}.mdi-flip:before{content:"\e3e8"}.mdi-flip-to-back:before{content:"\e882"}.mdi-flip-to-front:before{content:"\e883"}.mdi-folder:before{content:"\e2c7"}.mdi-folder-open:before{content:"\e2c8"}.mdi-folder-shared:before{content:"\e2c9"}.mdi-folder-special:before{content:"\e617"}.mdi-font-download:before{content:"\e167"}.mdi-format-align-center:before{content:"\e234"}.mdi-format-align-justify:before{content:"\e235"}.mdi-format-align-left:before{content:"\e236"}.mdi-format-align-right:before{content:"\e237"}.mdi-format-bold:before{content:"\e238"}.mdi-format-clear:before{content:"\e239"}.mdi-format-color-fill:before{content:"\e23a"}.mdi-format-color-reset:before{content:"\e23b"}.mdi-format-color-text:before{content:"\e23c"}.mdi-format-indent-decrease:before{content:"\e23d"}.mdi-format-indent-increase:before{content:"\e23e"}.mdi-format-italic:before{content:"\e23f"}.mdi-format-line-spacing:before{content:"\e240"}.mdi-format-list-bulleted:before{content:"\e241"}.mdi-format-list-numbered:before{content:"\e242"}.mdi-format-paint:before{content:"\e243"}.mdi-format-quote:before{content:"\e244"}.mdi-format-shapes:before{content:"\e25e"}.mdi-format-size:before{content:"\e245"}.mdi-format-strikethrough:before{content:"\e246"}.mdi-format-textdirection-l-to-r:before{content:"\e247"}.mdi-format-textdirection-r-to-l:before{content:"\e248"}.mdi-format-underlined:before{content:"\e249"}.mdi-forum:before{content:"\e0bf"}.mdi-forward:before{content:"\e154"}.mdi-forward-10:before{content:"\e056"}.mdi-forward-30:before{content:"\e057"}.mdi-forward-5:before{content:"\e058"}.mdi-free-breakfast:before{content:"\eb44"}.mdi-fullscreen:before{content:"\e5d0"}.mdi-fullscreen-exit:before{content:"\e5d1"}.mdi-functions:before{content:"\e24a"}.mdi-g-translate:before{content:"\e927"}.mdi-gamepad:before{content:"\e30f"}.mdi-games:before{content:"\e021"}.mdi-gavel:before{content:"\e90e"}.mdi-gesture:before{content:"\e155"}.mdi-get-app:before{content:"\e884"}.mdi-gif:before{content:"\e908"}.mdi-golf-course:before{content:"\eb45"}.mdi-gps-fixed:before{content:"\e1b3"}.mdi-gps-not-fixed:before{content:"\e1b4"}.mdi-gps-off:before{content:"\e1b5"}.mdi-grade:before{content:"\e885"}.mdi-gradient:before{content:"\e3e9"}.mdi-grain:before{content:"\e3ea"}.mdi-graphic-eq:before{content:"\e1b8"}.mdi-grid-off:before{content:"\e3eb"}.mdi-grid-on:before{content:"\e3ec"}.mdi-group:before{content:"\e7ef"}.mdi-group-add:before{content:"\e7f0"}.mdi-group-work:before{content:"\e886"}.mdi-hd:before{content:"\e052"}.mdi-hdr-off:before{content:"\e3ed"}.mdi-hdr-on:before{content:"\e3ee"}.mdi-hdr-strong:before{content:"\e3f1"}.mdi-hdr-weak:before{content:"\e3f2"}.mdi-headset:before{content:"\e310"}.mdi-headset-mic:before{content:"\e311"}.mdi-healing:before{content:"\e3f3"}.mdi-hearing:before{content:"\e023"}.mdi-help:before{content:"\e887"}.mdi-help-outline:before{content:"\e8fd"}.mdi-high-quality:before{content:"\e024"}.mdi-highlight:before{content:"\e25f"}.mdi-highlight-off:before{content:"\e888"}.mdi-history:before{content:"\e889"}.mdi-home:before{content:"\e88a"}.mdi-hot-tub:before{content:"\eb46"}.mdi-hotel:before{content:"\e53a"}.mdi-hourglass-empty:before{content:"\e88b"}.mdi-hourglass-full:before{content:"\e88c"}.mdi-http:before{content:"\e902"}.mdi-https:before{content:"\e88d"}.mdi-image:before{content:"\e3f4"}.mdi-image-aspect-ratio:before{content:"\e3f5"}.mdi-import-contacts:before{content:"\e0e0"}.mdi-import-export:before{content:"\e0c3"}.mdi-important-devices:before{content:"\e912"}.mdi-inbox:before{content:"\e156"}.mdi-indeterminate-check-box:before{content:"\e909"}.mdi-info:before{content:"\e88e"}.mdi-info-outline:before{content:"\e88f"}.mdi-input:before{content:"\e890"}.mdi-insert-chart:before{content:"\e24b"}.mdi-insert-comment:before{content:"\e24c"}.mdi-insert-drive-file:before{content:"\e24d"}.mdi-insert-emoticon:before{content:"\e24e"}.mdi-insert-invitation:before{content:"\e24f"}.mdi-insert-link:before{content:"\e250"}.mdi-insert-photo:before{content:"\e251"}.mdi-invert-colors:before{content:"\e891"}.mdi-invert-colors-off:before{content:"\e0c4"}.mdi-iso:before{content:"\e3f6"}.mdi-keyboard:before{content:"\e312"}.mdi-keyboard-arrow-down:before{content:"\e313"}.mdi-keyboard-arrow-left:before{content:"\e314"}.mdi-keyboard-arrow-right:before{content:"\e315"}.mdi-keyboard-arrow-up:before{content:"\e316"}.mdi-keyboard-backspace:before{content:"\e317"}.mdi-keyboard-capslock:before{content:"\e318"}.mdi-keyboard-hide:before{content:"\e31a"}.mdi-keyboard-return:before{content:"\e31b"}.mdi-keyboard-tab:before{content:"\e31c"}.mdi-keyboard-voice:before{content:"\e31d"}.mdi-kitchen:before{content:"\eb47"}.mdi-label:before{content:"\e892"}.mdi-label-outline:before{content:"\e893"}.mdi-landscape:before{content:"\e3f7"}.mdi-language:before{content:"\e894"}.mdi-laptop:before{content:"\e31e"}.mdi-laptop-chromebook:before{content:"\e31f"}.mdi-laptop-mac:before{content:"\e320"}.mdi-laptop-windows:before{content:"\e321"}.mdi-last-page:before{content:"\e5dd"}.mdi-launch:before{content:"\e895"}.mdi-layers:before{content:"\e53b"}.mdi-layers-clear:before{content:"\e53c"}.mdi-leak-add:before{content:"\e3f8"}.mdi-leak-remove:before{content:"\e3f9"}.mdi-lens:before{content:"\e3fa"}.mdi-library-add:before{content:"\e02e"}.mdi-library-books:before{content:"\e02f"}.mdi-library-music:before{content:"\e030"}.mdi-lightbulb-outline:before{content:"\e90f"}.mdi-line-style:before{content:"\e919"}.mdi-line-weight:before{content:"\e91a"}.mdi-linear-scale:before{content:"\e260"}.mdi-link:before{content:"\e157"}.mdi-linked-camera:before{content:"\e438"}.mdi-list:before{content:"\e896"}.mdi-live-help:before{content:"\e0c6"}.mdi-live-tv:before{content:"\e639"}.mdi-local-activity:before{content:"\e53f"}.mdi-local-airport:before{content:"\e53d"}.mdi-local-atm:before{content:"\e53e"}.mdi-local-bar:before{content:"\e540"}.mdi-local-cafe:before{content:"\e541"}.mdi-local-car-wash:before{content:"\e542"}.mdi-local-convenience-store:before{content:"\e543"}.mdi-local-dining:before{content:"\e556"}.mdi-local-drink:before{content:"\e544"}.mdi-local-florist:before{content:"\e545"}.mdi-local-gas-station:before{content:"\e546"}.mdi-local-grocery-store:before{content:"\e547"}.mdi-local-hospital:before{content:"\e548"}.mdi-local-hotel:before{content:"\e549"}.mdi-local-laundry-service:before{content:"\e54a"}.mdi-local-library:before{content:"\e54b"}.mdi-local-mall:before{content:"\e54c"}.mdi-local-movies:before{content:"\e54d"}.mdi-local-offer:before{content:"\e54e"}.mdi-local-parking:before{content:"\e54f"}.mdi-local-pharmacy:before{content:"\e550"}.mdi-local-phone:before{content:"\e551"}.mdi-local-pizza:before{content:"\e552"}.mdi-local-play:before{content:"\e553"}.mdi-local-post-office:before{content:"\e554"}.mdi-local-printshop:before{content:"\e555"}.mdi-local-see:before{content:"\e557"}.mdi-local-shipping:before{content:"\e558"}.mdi-local-taxi:before{content:"\e559"}.mdi-location-city:before{content:"\e7f1"}.mdi-location-disabled:before{content:"\e1b6"}.mdi-location-off:before{content:"\e0c7"}.mdi-location-on:before{content:"\e0c8"}.mdi-location-searching:before{content:"\e1b7"}.mdi-lock:before{content:"\e897"}.mdi-lock-open:before{content:"\e898"}.mdi-lock-outline:before{content:"\e899"}.mdi-looks:before{content:"\e3fc"}.mdi-looks-3:before{content:"\e3fb"}.mdi-looks-4:before{content:"\e3fd"}.mdi-looks-5:before{content:"\e3fe"}.mdi-looks-6:before{content:"\e3ff"}.mdi-looks-one:before{content:"\e400"}.mdi-looks-two:before{content:"\e401"}.mdi-loop:before{content:"\e028"}.mdi-loupe:before{content:"\e402"}.mdi-low-priority:before{content:"\e16d"}.mdi-loyalty:before{content:"\e89a"}.mdi-mail:before{content:"\e158"}.mdi-mail-outline:before{content:"\e0e1"}.mdi-map:before{content:"\e55b"}.mdi-markunread:before{content:"\e159"}.mdi-markunread-mailbox:before{content:"\e89b"}.mdi-memory:before{content:"\e322"}.mdi-menu:before{content:"\e5d2"}.mdi-merge-type:before{content:"\e252"}.mdi-message:before{content:"\e0c9"}.mdi-mic:before{content:"\e029"}.mdi-mic-none:before{content:"\e02a"}.mdi-mic-off:before{content:"\e02b"}.mdi-mms:before{content:"\e618"}.mdi-mode-comment:before{content:"\e253"}.mdi-mode-edit:before{content:"\e254"}.mdi-monetization-on:before{content:"\e263"}.mdi-money-off:before{content:"\e25c"}.mdi-monochrome-photos:before{content:"\e403"}.mdi-mood:before{content:"\e7f2"}.mdi-mood-bad:before{content:"\e7f3"}.mdi-more:before{content:"\e619"}.mdi-more-horiz:before{content:"\e5d3"}.mdi-more-vert:before{content:"\e5d4"}.mdi-motorcycle:before{content:"\e91b"}.mdi-mouse:before{content:"\e323"}.mdi-move-to-inbox:before{content:"\e168"}.mdi-movie:before{content:"\e02c"}.mdi-movie-creation:before{content:"\e404"}.mdi-movie-filter:before{content:"\e43a"}.mdi-multiline-chart:before{content:"\e6df"}.mdi-music-note:before{content:"\e405"}.mdi-music-video:before{content:"\e063"}.mdi-my-location:before{content:"\e55c"}.mdi-nature:before{content:"\e406"}.mdi-nature-people:before{content:"\e407"}.mdi-navigate-before:before{content:"\e408"}.mdi-navigate-next:before{content:"\e409"}.mdi-navigation:before{content:"\e55d"}.mdi-near-me:before{content:"\e569"}.mdi-network-cell:before{content:"\e1b9"}.mdi-network-check:before{content:"\e640"}.mdi-network-locked:before{content:"\e61a"}.mdi-network-wifi:before{content:"\e1ba"}.mdi-new-releases:before{content:"\e031"}.mdi-next-week:before{content:"\e16a"}.mdi-nfc:before{content:"\e1bb"}.mdi-no-encryption:before{content:"\e641"}.mdi-no-sim:before{content:"\e0cc"}.mdi-not-interested:before{content:"\e033"}.mdi-note:before{content:"\e06f"}.mdi-note-add:before{content:"\e89c"}.mdi-notifications:before{content:"\e7f4"}.mdi-notifications-active:before{content:"\e7f7"}.mdi-notifications-none:before{content:"\e7f5"}.mdi-notifications-off:before{content:"\e7f6"}.mdi-notifications-paused:before{content:"\e7f8"}.mdi-offline-pin:before{content:"\e90a"}.mdi-ondemand-video:before{content:"\e63a"}.mdi-opacity:before{content:"\e91c"}.mdi-open-in-browser:before{content:"\e89d"}.mdi-open-in-new:before{content:"\e89e"}.mdi-open-with:before{content:"\e89f"}.mdi-pages:before{content:"\e7f9"}.mdi-pageview:before{content:"\e8a0"}.mdi-palette:before{content:"\e40a"}.mdi-pan-tool:before{content:"\e925"}.mdi-panorama:before{content:"\e40b"}.mdi-panorama-fish-eye:before{content:"\e40c"}.mdi-panorama-horizontal:before{content:"\e40d"}.mdi-panorama-vertical:before{content:"\e40e"}.mdi-panorama-wide-angle:before{content:"\e40f"}.mdi-party-mode:before{content:"\e7fa"}.mdi-pause:before{content:"\e034"}.mdi-pause-circle-filled:before{content:"\e035"}.mdi-pause-circle-outline:before{content:"\e036"}.mdi-payment:before{content:"\e8a1"}.mdi-people:before{content:"\e7fb"}.mdi-people-outline:before{content:"\e7fc"}.mdi-perm-camera-mic:before{content:"\e8a2"}.mdi-perm-contact-calendar:before{content:"\e8a3"}.mdi-perm-data-setting:before{content:"\e8a4"}.mdi-perm-device-information:before{content:"\e8a5"}.mdi-perm-identity:before{content:"\e8a6"}.mdi-perm-media:before{content:"\e8a7"}.mdi-perm-phone-msg:before{content:"\e8a8"}.mdi-perm-scan-wifi:before{content:"\e8a9"}.mdi-person:before{content:"\e7fd"}.mdi-person-add:before{content:"\e7fe"}.mdi-person-outline:before{content:"\e7ff"}.mdi-person-pin:before{content:"\e55a"}.mdi-person-pin-circle:before{content:"\e56a"}.mdi-personal-video:before{content:"\e63b"}.mdi-pets:before{content:"\e91d"}.mdi-phone:before{content:"\e0cd"}.mdi-phone-android:before{content:"\e324"}.mdi-phone-bluetooth-speaker:before{content:"\e61b"}.mdi-phone-forwarded:before{content:"\e61c"}.mdi-phone-in-talk:before{content:"\e61d"}.mdi-phone-iphone:before{content:"\e325"}.mdi-phone-locked:before{content:"\e61e"}.mdi-phone-missed:before{content:"\e61f"}.mdi-phone-paused:before{content:"\e620"}.mdi-phonelink:before{content:"\e326"}.mdi-phonelink-erase:before{content:"\e0db"}.mdi-phonelink-lock:before{content:"\e0dc"}.mdi-phonelink-off:before{content:"\e327"}.mdi-phonelink-ring:before{content:"\e0dd"}.mdi-phonelink-setup:before{content:"\e0de"}.mdi-photo:before{content:"\e410"}.mdi-photo-album:before{content:"\e411"}.mdi-photo-camera:before{content:"\e412"}.mdi-photo-filter:before{content:"\e43b"}.mdi-photo-library:before{content:"\e413"}.mdi-photo-size-select-actual:before{content:"\e432"}.mdi-photo-size-select-large:before{content:"\e433"}.mdi-photo-size-select-small:before{content:"\e434"}.mdi-picture-as-pdf:before{content:"\e415"}.mdi-picture-in-picture:before{content:"\e8aa"}.mdi-picture-in-picture-alt:before{content:"\e911"}.mdi-pie-chart:before{content:"\e6c4"}.mdi-pie-chart-outlined:before{content:"\e6c5"}.mdi-pin-drop:before{content:"\e55e"}.mdi-place:before{content:"\e55f"}.mdi-play-arrow:before{content:"\e037"}.mdi-play-circle-filled:before{content:"\e038"}.mdi-play-circle-outline:before{content:"\e039"}.mdi-play-for-work:before{content:"\e906"}.mdi-playlist-add:before{content:"\e03b"}.mdi-playlist-add-check:before{content:"\e065"}.mdi-playlist-play:before{content:"\e05f"}.mdi-plus-one:before{content:"\e800"}.mdi-poll:before{content:"\e801"}.mdi-polymer:before{content:"\e8ab"}.mdi-pool:before{content:"\eb48"}.mdi-portable-wifi-off:before{content:"\e0ce"}.mdi-portrait:before{content:"\e416"}.mdi-power:before{content:"\e63c"}.mdi-power-input:before{content:"\e336"}.mdi-power-settings-new:before{content:"\e8ac"}.mdi-pregnant-woman:before{content:"\e91e"}.mdi-present-to-all:before{content:"\e0df"}.mdi-print:before{content:"\e8ad"}.mdi-priority-high:before{content:"\e645"}.mdi-public:before{content:"\e80b"}.mdi-publish:before{content:"\e255"}.mdi-query-builder:before{content:"\e8ae"}.mdi-question-answer:before{content:"\e8af"}.mdi-queue:before{content:"\e03c"}.mdi-queue-music:before{content:"\e03d"}.mdi-queue-play-next:before{content:"\e066"}.mdi-radio:before{content:"\e03e"}.mdi-radio-button-checked:before{content:"\e837"}.mdi-radio-button-unchecked:before{content:"\e836"}.mdi-rate-review:before{content:"\e560"}.mdi-receipt:before{content:"\e8b0"}.mdi-recent-actors:before{content:"\e03f"}.mdi-record-voice-over:before{content:"\e91f"}.mdi-redeem:before{content:"\e8b1"}.mdi-redo:before{content:"\e15a"}.mdi-refresh:before{content:"\e5d5"}.mdi-remove:before{content:"\e15b"}.mdi-remove-circle:before{content:"\e15c"}.mdi-remove-circle-outline:before{content:"\e15d"}.mdi-remove-from-queue:before{content:"\e067"}.mdi-remove-red-eye:before{content:"\e417"}.mdi-remove-shopping-cart:before{content:"\e928"}.mdi-reorder:before{content:"\e8fe"}.mdi-repeat:before{content:"\e040"}.mdi-repeat-one:before{content:"\e041"}.mdi-replay:before{content:"\e042"}.mdi-replay-10:before{content:"\e059"}.mdi-replay-30:before{content:"\e05a"}.mdi-replay-5:before{content:"\e05b"}.mdi-reply:before{content:"\e15e"}.mdi-reply-all:before{content:"\e15f"}.mdi-report:before{content:"\e160"}.mdi-report-problem:before{content:"\e8b2"}.mdi-restaurant:before{content:"\e56c"}.mdi-restaurant-menu:before{content:"\e561"}.mdi-restore:before{content:"\e8b3"}.mdi-restore-page:before{content:"\e929"}.mdi-ring-volume:before{content:"\e0d1"}.mdi-room:before{content:"\e8b4"}.mdi-room-service:before{content:"\eb49"}.mdi-rotate-90-degrees-ccw:before{content:"\e418"}.mdi-rotate-left:before{content:"\e419"}.mdi-rotate-right:before{content:"\e41a"}.mdi-rounded-corner:before{content:"\e920"}.mdi-router:before{content:"\e328"}.mdi-rowing:before{content:"\e921"}.mdi-rss-feed:before{content:"\e0e5"}.mdi-rv-hookup:before{content:"\e642"}.mdi-satellite:before{content:"\e562"}.mdi-save:before{content:"\e161"}.mdi-scanner:before{content:"\e329"}.mdi-schedule:before{content:"\e8b5"}.mdi-school:before{content:"\e80c"}.mdi-screen-lock-landscape:before{content:"\e1be"}.mdi-screen-lock-portrait:before{content:"\e1bf"}.mdi-screen-lock-rotation:before{content:"\e1c0"}.mdi-screen-rotation:before{content:"\e1c1"}.mdi-screen-share:before{content:"\e0e2"}.mdi-sd-card:before{content:"\e623"}.mdi-sd-storage:before{content:"\e1c2"}.mdi-search:before{content:"\e8b6"}.mdi-security:before{content:"\e32a"}.mdi-select-all:before{content:"\e162"}.mdi-send:before{content:"\e163"}.mdi-sentiment-dissatisfied:before{content:"\e811"}.mdi-sentiment-neutral:before{content:"\e812"}.mdi-sentiment-satisfied:before{content:"\e813"}.mdi-sentiment-very-dissatisfied:before{content:"\e814"}.mdi-sentiment-very-satisfied:before{content:"\e815"}.mdi-settings:before{content:"\e8b8"}.mdi-settings-applications:before{content:"\e8b9"}.mdi-settings-backup-restore:before{content:"\e8ba"}.mdi-settings-bluetooth:before{content:"\e8bb"}.mdi-settings-brightness:before{content:"\e8bd"}.mdi-settings-cell:before{content:"\e8bc"}.mdi-settings-ethernet:before{content:"\e8be"}.mdi-settings-input-antenna:before{content:"\e8bf"}.mdi-settings-input-component:before{content:"\e8c0"}.mdi-settings-input-composite:before{content:"\e8c1"}.mdi-settings-input-hdmi:before{content:"\e8c2"}.mdi-settings-input-svideo:before{content:"\e8c3"}.mdi-settings-overscan:before{content:"\e8c4"}.mdi-settings-phone:before{content:"\e8c5"}.mdi-settings-power:before{content:"\e8c6"}.mdi-settings-remote:before{content:"\e8c7"}.mdi-settings-system-daydream:before{content:"\e1c3"}.mdi-settings-voice:before{content:"\e8c8"}.mdi-share:before{content:"\e80d"}.mdi-shop:before{content:"\e8c9"}.mdi-shop-two:before{content:"\e8ca"}.mdi-shopping-basket:before{content:"\e8cb"}.mdi-shopping-cart:before{content:"\e8cc"}.mdi-short-text:before{content:"\e261"}.mdi-show-chart:before{content:"\e6e1"}.mdi-shuffle:before{content:"\e043"}.mdi-signal-cellular-4-bar:before{content:"\e1c8"}.mdi-signal-cellular-connected-no-internet-4-bar:before{content:"\e1cd"}.mdi-signal-cellular-no-sim:before{content:"\e1ce"}.mdi-signal-cellular-null:before{content:"\e1cf"}.mdi-signal-cellular-off:before{content:"\e1d0"}.mdi-signal-wifi-4-bar:before{content:"\e1d8"}.mdi-signal-wifi-4-bar-lock:before{content:"\e1d9"}.mdi-signal-wifi-off:before{content:"\e1da"}.mdi-sim-card:before{content:"\e32b"}.mdi-sim-card-alert:before{content:"\e624"}.mdi-skip-next:before{content:"\e044"}.mdi-skip-previous:before{content:"\e045"}.mdi-slideshow:before{content:"\e41b"}.mdi-slow-motion-video:before{content:"\e068"}.mdi-smartphone:before{content:"\e32c"}.mdi-smoke-free:before{content:"\eb4a"}.mdi-smoking-rooms:before{content:"\eb4b"}.mdi-sms:before{content:"\e625"}.mdi-sms-failed:before{content:"\e626"}.mdi-snooze:before{content:"\e046"}.mdi-sort:before{content:"\e164"}.mdi-sort-by-alpha:before{content:"\e053"}.mdi-spa:before{content:"\eb4c"}.mdi-space-bar:before{content:"\e256"}.mdi-speaker:before{content:"\e32d"}.mdi-speaker-group:before{content:"\e32e"}.mdi-speaker-notes:before{content:"\e8cd"}.mdi-speaker-notes-off:before{content:"\e92a"}.mdi-speaker-phone:before{content:"\e0d2"}.mdi-spellcheck:before{content:"\e8ce"}.mdi-star:before{content:"\e838"}.mdi-star-border:before{content:"\e83a"}.mdi-star-half:before{content:"\e839"}.mdi-stars:before{content:"\e8d0"}.mdi-stay-current-landscape:before{content:"\e0d3"}.mdi-stay-current-portrait:before{content:"\e0d4"}.mdi-stay-primary-landscape:before{content:"\e0d5"}.mdi-stay-primary-portrait:before{content:"\e0d6"}.mdi-stop:before{content:"\e047"}.mdi-stop-screen-share:before{content:"\e0e3"}.mdi-storage:before{content:"\e1db"}.mdi-store:before{content:"\e8d1"}.mdi-store-mall-directory:before{content:"\e563"}.mdi-straighten:before{content:"\e41c"}.mdi-streetview:before{content:"\e56e"}.mdi-strikethrough-s:before{content:"\e257"}.mdi-style:before{content:"\e41d"}.mdi-subdirectory-arrow-left:before{content:"\e5d9"}.mdi-subdirectory-arrow-right:before{content:"\e5da"}.mdi-subject:before{content:"\e8d2"}.mdi-subscriptions:before{content:"\e064"}.mdi-subtitles:before{content:"\e048"}.mdi-subway:before{content:"\e56f"}.mdi-supervisor-account:before{content:"\e8d3"}.mdi-surround-sound:before{content:"\e049"}.mdi-swap-calls:before{content:"\e0d7"}.mdi-swap-horiz:before{content:"\e8d4"}.mdi-swap-vert:before{content:"\e8d5"}.mdi-swap-vertical-circle:before{content:"\e8d6"}.mdi-switch-camera:before{content:"\e41e"}.mdi-switch-video:before{content:"\e41f"}.mdi-sync:before{content:"\e627"}.mdi-sync-disabled:before{content:"\e628"}.mdi-sync-problem:before{content:"\e629"}.mdi-system-update:before{content:"\e62a"}.mdi-system-update-alt:before{content:"\e8d7"}.mdi-tab:before{content:"\e8d8"}.mdi-tab-unselected:before{content:"\e8d9"}.mdi-tablet:before{content:"\e32f"}.mdi-tablet-android:before{content:"\e330"}.mdi-tablet-mac:before{content:"\e331"}.mdi-tag-faces:before{content:"\e420"}.mdi-tap-and-play:before{content:"\e62b"}.mdi-terrain:before{content:"\e564"}.mdi-text-fields:before{content:"\e262"}.mdi-text-format:before{content:"\e165"}.mdi-textsms:before{content:"\e0d8"}.mdi-texture:before{content:"\e421"}.mdi-theaters:before{content:"\e8da"}.mdi-thumb-down:before{content:"\e8db"}.mdi-thumb-up:before{content:"\e8dc"}.mdi-thumbs-up-down:before{content:"\e8dd"}.mdi-time-to-leave:before{content:"\e62c"}.mdi-timelapse:before{content:"\e422"}.mdi-timeline:before{content:"\e922"}.mdi-timer:before{content:"\e425"}.mdi-timer-10:before{content:"\e423"}.mdi-timer-3:before{content:"\e424"}.mdi-timer-off:before{content:"\e426"}.mdi-title:before{content:"\e264"}.mdi-toc:before{content:"\e8de"}.mdi-today:before{content:"\e8df"}.mdi-toll:before{content:"\e8e0"}.mdi-tonality:before{content:"\e427"}.mdi-touch-app:before{content:"\e913"}.mdi-toys:before{content:"\e332"}.mdi-track-changes:before{content:"\e8e1"}.mdi-traffic:before{content:"\e565"}.mdi-train:before{content:"\e570"}.mdi-tram:before{content:"\e571"}.mdi-transfer-within-a-station:before{content:"\e572"}.mdi-transform:before{content:"\e428"}.mdi-translate:before{content:"\e8e2"}.mdi-trending-down:before{content:"\e8e3"}.mdi-trending-flat:before{content:"\e8e4"}.mdi-trending-up:before{content:"\e8e5"}.mdi-tune:before{content:"\e429"}.mdi-turned-in:before{content:"\e8e6"}.mdi-turned-in-not:before{content:"\e8e7"}.mdi-tv:before{content:"\e333"}.mdi-unarchive:before{content:"\e169"}.mdi-undo:before{content:"\e166"}.mdi-unfold-less:before{content:"\e5d6"}.mdi-unfold-more:before{content:"\e5d7"}.mdi-update:before{content:"\e923"}.mdi-usb:before{content:"\e1e0"}.mdi-verified-user:before{content:"\e8e8"}.mdi-vertical-align-bottom:before{content:"\e258"}.mdi-vertical-align-center:before{content:"\e259"}.mdi-vertical-align-top:before{content:"\e25a"}.mdi-vibration:before{content:"\e62d"}.mdi-video-call:before{content:"\e070"}.mdi-video-label:before{content:"\e071"}.mdi-video-library:before{content:"\e04a"}.mdi-videocam:before{content:"\e04b"}.mdi-videocam-off:before{content:"\e04c"}.mdi-videogame-asset:before{content:"\e338"}.mdi-view-agenda:before{content:"\e8e9"}.mdi-view-array:before{content:"\e8ea"}.mdi-view-carousel:before{content:"\e8eb"}.mdi-view-column:before{content:"\e8ec"}.mdi-view-comfy:before{content:"\e42a"}.mdi-view-compact:before{content:"\e42b"}.mdi-view-day:before{content:"\e8ed"}.mdi-view-headline:before{content:"\e8ee"}.mdi-view-list:before{content:"\e8ef"}.mdi-view-module:before{content:"\e8f0"}.mdi-view-quilt:before{content:"\e8f1"}.mdi-view-stream:before{content:"\e8f2"}.mdi-view-week:before{content:"\e8f3"}.mdi-vignette:before{content:"\e435"}.mdi-visibility:before{content:"\e8f4"}.mdi-visibility-off:before{content:"\e8f5"}.mdi-voice-chat:before{content:"\e62e"}.mdi-voicemail:before{content:"\e0d9"}.mdi-volume-down:before{content:"\e04d"}.mdi-volume-mute:before{content:"\e04e"}.mdi-volume-off:before{content:"\e04f"}.mdi-volume-up:before{content:"\e050"}.mdi-vpn-key:before{content:"\e0da"}.mdi-vpn-lock:before{content:"\e62f"}.mdi-wallpaper:before{content:"\e1bc"}.mdi-warning:before{content:"\e002"}.mdi-watch:before{content:"\e334"}.mdi-watch-later:before{content:"\e924"}.mdi-wb-auto:before{content:"\e42c"}.mdi-wb-cloudy:before{content:"\e42d"}.mdi-wb-incandescent:before{content:"\e42e"}.mdi-wb-iridescent:before{content:"\e436"}.mdi-wb-sunny:before{content:"\e430"}.mdi-wc:before{content:"\e63d"}.mdi-web:before{content:"\e051"}.mdi-web-asset:before{content:"\e069"}.mdi-weekend:before{content:"\e16b"}.mdi-whatshot:before{content:"\e80e"}.mdi-widgets:before{content:"\e1bd"}.mdi-wifi:before{content:"\e63e"}.mdi-wifi-lock:before{content:"\e1e1"}.mdi-wifi-tethering:before{content:"\e1e2"}.mdi-work:before{content:"\e8f9"}.mdi-wrap-text:before{content:"\e25b"}.mdi-youtube-searched-for:before{content:"\e8fa"}.mdi-zoom-in:before{content:"\e8ff"}.mdi-zoom-out:before{content:"\e900"}.mdi-zoom-out-map:before{content:"\e56b"}
+/*# sourceMappingURL=material-icons.min.css.map */ \ No newline at end of file
diff --git a/vendor/mervick/material-design-icons/css/material-icons.min.css.map b/vendor/mervick/material-design-icons/css/material-icons.min.css.map
new file mode 100644
index 000000000..a5d8aa1ed
--- /dev/null
+++ b/vendor/mervick/material-design-icons/css/material-icons.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["css/material-icons.css"],"names":[],"mappings":"AAkDA,QAWA,QAgGE,WAAY,OA3Jd,WACE,YAAa,wBACb,WAAY,OACZ,YAAa,IACb,IAAK,gDACL,IAAK,sDAAuD,4BAA6B,kDAAmD,gBAAiB,iDAAkD,eAAgB,gDAAiD,mBAAoB,qEAAsE,cACtW,gBAAN,KACE,KAAM,OAAO,OAAO,OAAO,KAAM,EAAE,wBACnC,UAAW,QACX,QAAS,aACT,eAAgB,KAChB,eAAgB,OAChB,YAAa,EACb,SAAU,SACV,UAAW,OACX,IAAK,IAEL,uBAA+F,YAE/F,wBAA2H,UAC3H,UAAW,eAEb,gBACE,MAAO,IACP,OAAQ,IAER,eAAuJ,mBAEvJ,sBAAoL,OAGtL,QAAS,aACP,UAAW,UACX,YAAa,MACb,eAAgB,KAElB,QAAS,aACP,UAAW,IAEb,QAAS,aACP,UAAW,IAEb,QAAS,aACP,UAAW,IAEb,QAAS,aACP,UAAW,IAEb,QACE,MAAO,UAGT,QACE,aAAc,EACd,YAAa,UACb,gBAAiB,KACjB,WACE,SAAU,SAEd,QACE,SAAU,SACV,KAAM,WACN,MAAO,UACP,IAAK,SAEL,eACE,KAAM,WAEV,YACE,QAAS,KAAK,MAAM,MACpB,OAAc,MAAN,MAAa,KACrB,cAAe,KAEjB,YACE,MAAO,MAET,WACE,MAAO,KAET,eACE,aAAc,KAChB,gBACE,YAAa,KAEf,UACE,kBAAmB,QAAQ,GAAG,SAAS,OACvC,UAAW,QAAQ,GAAG,SAAS,OAEjC,WACE,kBAAmB,QAAQ,GAAG,SAAS,SACvC,UAAW,QAAQ,GAAG,SAAS,SAEjC,2BACE,GACE,kBAAmB,UACnB,UAAW,UACb,KACE,kBAAmB,eACnB,UAAW,gBACf,mBACE,GACE,kBAAmB,UACnB,UAAW,UACb,KACE,kBAAmB,eACnB,UAAW,gBACf,eACE,OAAQ,yDACR,kBAAmB,cACnB,cAAe,cACf,UAAW,cAEb,gBACE,OAAQ,yDACR,kBAAmB,eACnB,cAAe,eACf,UAAW,eAEb,gBACE,OAAQ,yDACR,kBAAmB,eACnB,cAAe,eACf,UAAW,eAEb,qBACE,OAAQ,yDACR,kBAAmB,YACnB,cAAe,YACf,UAAW,YAEb,mBACE,OAAQ,yDACR,kBAAmB,YACnB,cAAe,YACf,UAAW,YAKb,2BACA,yBAHA,sBACA,sBAFA,qBAKE,OAAQ,KAEV,WACE,SAAU,SACV,QAAS,aACT,MAAO,IACP,OAAQ,IACR,YAAa,IACb,eAAgB,OAElB,cAAe,cACb,SAAU,SACV,KAAM,EACN,MAAO,KACP,WAAY,OAEd,cACE,YAAa,QAEf,cACE,UAAW,IAEb,aACE,MAAO,KAET,wBACE,QAAS,QAEX,oBACE,QAAS,QAEX,yBACE,QAAS,QAEX,0BACE,QAAS,QAEX,wBACE,QAAS,QAEX,0BACE,QAAS,QAEX,uBACE,QAAS,QAEX,4BACE,QAAS,QAEX,mCACE,QAAS,QAEX,wBACE,QAAS,QAEX,2BACE,QAAS,QAEX,gBACE,QAAS,QAEX,gBACE,QAAS,QAEX,wBACE,QAAS,QAEX,sBACE,QAAS,QAEX,sBACE,QAAS,QAEX,oBACE,QAAS,QAEX,uBACE,QAAS,QAEX,+BACE,QAAS,QAEX,yBACE,QAAS,QAEX,8BACE,QAAS,QAEX,0BACE,QAAS,QAEX,yBACE,QAAS,QAEX,mBACE,QAAS,QAEX,8BACE,QAAS,QAEX,qCACE,QAAS,QAEX,0CACE,QAAS,QAEX,uCACE,QAAS,QAEX,wCACE,QAAS,QAEX,yCACE,QAAS,QAEX,uCACE,QAAS,QAEX,wCACE,QAAS,QAEX,gCACE,QAAS,QAEX,kCACE,QAAS,QAEX,oBACE,QAAS,QAEX,4BACE,QAAS,QAEX,kBACE,QAAS,QAEX,sBACE,QAAS,QAEX,sBACE,QAAS,QAEX,qBACE,QAAS,QAEX,kBACE,QAAS,QAEX,0BACE,QAAS,QAEX,oBACE,QAAS,QAEX,oBACE,QAAS,QAEX,yBACE,QAAS,QAEX,iBACE,QAAS,QAEX,oBACE,QAAS,QAEX,uBACE,QAAS,QAEX,2BACE,QAAS,QAEX,4BACE,QAAS,QAEX,mCACE,QAAS,QAEX,0BACE,QAAS,QAEX,0BACE,QAAS,QAEX,yBACE,QAAS,QAEX,sBACE,QAAS,QAEX,yBACE,QAAS,QAEX,uBACE,QAAS,QAEX,uBACE,QAAS,QAEX,2BACE,QAAS,QAEX,4BACE,QAAS,QAEX,8BACE,QAAS,QAEX,gCACE,QAAS,QAEX,iCACE,QAAS,QAEX,sBACE,QAAS,QAEX,4BACE,QAAS,QAEX,wBACE,QAAS,QAEX,yBACE,QAAS,QAEX,uBACE,QAAS,QAEX,uBACE,QAAS,QAEX,sBACE,QAAS,QAEX,qBACE,QAAS,QAEX,sBACE,QAAS,QAEX,mBACE,QAAS,QAEX,0BACE,QAAS,QAEX,kCACE,QAAS,QAEX,yBACE,QAAS,QAEX,wBACE,QAAS,QAEX,4BACE,QAAS,QAEX,yBACE,QAAS,QAEX,qBACE,QAAS,QAEX,kBACE,QAAS,QAEX,sBACE,QAAS,QAEX,4BACE,QAAS,QAEX,gCACE,QAAS,QAEX,+BACE,QAAS,QAEX,gCACE,QAAS,QAEX,0BACE,QAAS,QAEX,wBACE,QAAS,QAEX,qBACE,QAAS,QAEX,oBACE,QAAS,QAEX,iBACE,QAAS,QAEX,qBACE,QAAS,QAEX,4BACE,QAAS,QAEX,uBACE,QAAS,QAEX,0BACE,QAAS,QAEX,yBACE,QAAS,QAEX,yBACE,QAAS,QAEX,8BACE,QAAS,QAEX,yBACE,QAAS,QAEX,wBACE,QAAS,QAEX,yBACE,QAAS,QAEX,yBACE,QAAS,QAEX,yBACE,QAAS,QAEX,uBACE,QAAS,QAEX,4BACE,QAAS,QAEX,+BACE,QAAS,QAEX,yBACE,QAAS,QAEX,yBACE,QAAS,QAEX,yBACE,QAAS,QAEX,yBACE,QAAS,QAEX,yBACE,QAAS,QAEX,yBACE,QAAS,QAEX,yBACE,QAAS,QAEX,4BACE,QAAS,QAEX,4BACE,QAAS,QAEX,2BACE,QAAS,QAEX,8BACE,QAAS,QAEX,yBACE,QAAS,QAEX,kBACE,QAAS,QAEX,yBACE,QAAS,QAEX,uBACE,QAAS,QAEX,kBACE,QAAS,QAEX,uBACE,QAAS,QAEX,qBACE,QAAS,QAEX,4BACE,QAAS,QAEX,mBACE,QAAS,QAEX,iBACE,QAAS,QAEX,iBACE,QAAS,QAEX,qBACE,QAAS,QAEX,sBACE,QAAS,QAEX,uBACE,QAAS,QAEX,wBACE,QAAS,QAEX,iCACE,QAAS,QAEX,0BACE,QAAS,QAEX,uBACE,QAAS,QAEX,2BACE,QAAS,QAEX,mBACE,QAAS,QAEX,uBACE,QAAS,QAEX,2BACE,QAAS,QAEX,yBACE,QAAS,QAEX,wBACE,QAAS,QAEX,wBACE,QAAS,QAEX,mBACE,QAAS,QAEX,0BACE,QAAS,QAEX,4BACE,QAAS,QAEX,wBACE,QAAS,QAEX,mBACE,QAAS,QAEX,iBACE,QAAS,QAEX,2BACE,QAAS,QAEX,gCACE,QAAS,QAEX,8BACE,QAAS,QAEX,2BACE,QAAS,QAEX,iBACE,QAAS,QAEX,wBACE,QAAS,QAEX,gCACE,QAAS,QAEX,kBACE,QAAS,QAEX,sBACE,QAAS,QAEX,oCACE,QAAS,QAEX,yBACE,QAAS,QAEX,yBACE,QAAS,QAEX,0BACE,QAAS,QAEX,uBACE,QAAS,QAEX,2BACE,QAAS,QAEX,+BACE,QAAS,QAEX,kBACE,QAAS,QAEX,kBACE,QAAS,QAEX,sBACE,QAAS,QAEX,kBACE,QAAS,QAEX,2BACE,QAAS,QAEX,kBACE,QAAS,QAEX,yBACE,QAAS,QAEX,uBACE,QAAS,QAEX,2BACE,QAAS,QAEX,sBACE,QAAS,QAEX,wBACE,QAAS,QAEX,yBACE,QAAS,QAEX,iBACE,QAAS,QAEX,wBACE,QAAS,QAEX,iCACE,QAAS,QAEX,uBACE,QAAS,QAEX,qBACE,QAAS,QAEX,oBACE,QAAS,QAEX,oBACE,QAAS,QAEX,2BACE,QAAS,QAEX,qBACE,QAAS,QAEX,gCACE,QAAS,QAEX,yBACE,QAAS,QAEX,0BACE,QAAS,QAEX,qBACE,QAAS,QAEX,yBACE,QAAS,QAEX,wBACE,QAAS,QAEX,0BACE,QAAS,QAEX,0BACE,QAAS,QAEX,oCACE,QAAS,QAEX,sBACE,QAAS,QAEX,mBACE,QAAS,QAEX,8BACE,QAAS,QAEX,wBACE,QAAS,QAEX,iBACE,QAAS,QAEX,sBACE,QAAS,QAEX,qBACE,QAAS,QAEX,qBACE,QAAS,QAEX,qBACE,QAAS,QAEX,qBACE,QAAS,QAEX,sBACE,QAAS,QAEX,2BACE,QAAS,QAEX,0BACE,QAAS,QAEX,0BACE,QAAS,QAEX,wBACE,QAAS,QAEX,wBACE,QAAS,QAEX,sBACE,QAAS,QAEX,uBACE,QAAS,QAEX,uBACE,QAAS,QAEX,mBACE,QAAS,QAEX,mBACE,QAAS,QAEX,2BACE,QAAS,QAEX,yBACE,QAAS,QAEX,wBACE,QAAS,QAEX,wBACE,QAAS,QAEX,4BACE,QAAS,QAEX,oBACE,QAAS,QAEX,4BACE,QAAS,QAEX,2BACE,QAAS,QAEX,uBACE,QAAS,QAEX,oBACE,QAAS,QAEX,0BACE,QAAS,QAEX,uBACE,QAAS,QAEX,oBACE,QAAS,QAEX,uBACE,QAAS,QAEX,4BACE,QAAS,QAEX,4BACE,QAAS,QAEX,2BACE,QAAS,QAEX,2BACE,QAAS,QAEX,+BACE,QAAS,QAEX,2BACE,QAAS,QAEX,8BACE,QAAS,QAEX,+BACE,QAAS,QAEX,4BACE,QAAS,QAEX,sBACE,QAAS,QAEX,gBACE,QAAS,QAEX,2BACE,QAAS,QAEX,+BACE,QAAS,QAEX,+BACE,QAAS,QAEX,8BACE,QAAS,QAEX,iBACE,QAAS,QAEX,mBACE,QAAS,QAEX,iBACE,QAAS,QAEX,qBACE,QAAS,QAEX,wBACE,QAAS,QAEX,wBACE,QAAS,QAEX,mBACE,QAAS,QAEX,wBACE,QAAS,QAEX,sBACE,QAAS,QAEX,gBACE,QAAS,QAEX,iBACE,QAAS,QAEX,0BACE,QAAS,QAEX,kBACE,QAAS,QAEX,kBACE,QAAS,QAEX,gCACE,QAAS,QAEX,sBACE,QAAS,QAEX,kBACE,QAAS,QAEX,0BACE,QAAS,QAEX,wBACE,QAAS,QAEX,uBACE,QAAS,QAEX,kBACE,QAAS,QAEX,4BACE,QAAS,QAEX,uBACE,QAAS,QAEX,uBACE,QAAS,QAEX,uBACE,QAAS,QAEX,wBACE,QAAS,QAEX,wBACE,QAAS,QAEX,wBACE,QAAS,QAEX,qBACE,QAAS,QAEX,oBACE,QAAS,QAEX,qBACE,QAAS,QAEX,2BACE,QAAS,QAEX,2BACE,QAAS,QAEX,4BACE,QAAS,QAEX,4BACE,QAAS,QAEX,0BACE,QAAS,QAEX,sBACE,QAAS,QAEX,iBACE,QAAS,QAEX,yBACE,QAAS,QAEX,wBACE,QAAS,QAEX,qBACE,QAAS,QAEX,4BACE,QAAS,QAEX,+BACE,QAAS,QAEX,2BACE,QAAS,QAEX,qBACE,QAAS,QAEX,sBACE,QAAS,QAEX,gCACE,QAAS,QAEX,sBACE,QAAS,QAEX,sBACE,QAAS,QAEX,+BACE,QAAS,QAEX,0BACE,QAAS,QAEX,wBACE,QAAS,QAEX,mBACE,QAAS,QAEX,qBACE,QAAS,QAEX,qBACE,QAAS,QAEX,qBACE,QAAS,QAEX,qBACE,QAAS,QAEX,qBACE,QAAS,QAEX,qBACE,QAAS,QAEX,qBACE,QAAS,QAEX,qBACE,QAAS,QAEX,qBACE,QAAS,QAEX,0BACE,QAAS,QAEX,2BACE,QAAS,QAEX,gCACE,QAAS,QAEX,yBACE,QAAS,QAEX,0BACE,QAAS,QAEX,uBACE,QAAS,QAEX,wBACE,QAAS,QAEX,wBACE,QAAS,QAEX,8BACE,QAAS,QAEX,2BACE,QAAS,QAEX,yBACE,QAAS,QAEX,yBACE,QAAS,QAEX,wBACE,QAAS,QAEX,uBACE,QAAS,QAEX,2BACE,QAAS,QAEX,iBACE,QAAS,QAEX,kBACE,QAAS,QAEX,uBACE,QAAS,QAEX,sBACE,QAAS,QAEX,qBACE,QAAS,QAEX,mBACE,QAAS,QAEX,wBACE,QAAS,QAEX,2BACE,QAAS,QAEX,iBACE,QAAS,QAEX,yBACE,QAAS,QAEX,0BACE,QAAS,QAEX,mBACE,QAAS,QAEX,wBACE,QAAS,QAEX,0BACE,QAAS,QAEX,2BACE,QAAS,QAEX,0BACE,QAAS,QAEX,gCACE,QAAS,QAEX,iCACE,QAAS,QAEX,8BACE,QAAS,QAEX,+BACE,QAAS,QAEX,wBACE,QAAS,QAEX,yBACE,QAAS,QAEX,8BACE,QAAS,QAEX,+BACE,QAAS,QAEX,8BACE,QAAS,QAEX,mCACE,QAAS,QAEX,mCACE,QAAS,QAEX,0BACE,QAAS,QAEX,gCACE,QAAS,QAEX,iCACE,QAAS,QAEX,iCACE,QAAS,QAEX,yBACE,QAAS,QAEX,yBACE,QAAS,QAEX,0BACE,QAAS,QAEX,wBACE,QAAS,QAEX,iCACE,QAAS,QAEX,wCACE,QAAS,QAEX,wCACE,QAAS,QAEX,8BACE,QAAS,QAEX,kBACE,QAAS,QAEX,oBACE,QAAS,QAEX,uBACE,QAAS,QAEX,uBACE,QAAS,QAEX,sBACE,QAAS,QAEX,2BACE,QAAS,QAEX,uBACE,QAAS,QAEX,4BACE,QAAS,QAEX,sBACE,QAAS,QAEX,wBACE,QAAS,QAEX,oBACE,QAAS,QAEX,kBACE,QAAS,QAEX,kBACE,QAAS,QAEX,oBACE,QAAS,QAEX,oBACE,QAAS,QAEX,gBACE,QAAS,QAEX,wBACE,QAAS,QAEX,sBACE,QAAS,QAEX,0BACE,QAAS,QAEX,oBACE,QAAS,QAEX,kBACE,QAAS,QAEX,qBACE,QAAS,QAEX,kBACE,QAAS,QAEX,uBACE,QAAS,QAEX,qBACE,QAAS,QAEX,oBACE,QAAS,QAEX,kBACE,QAAS,QAEX,sBACE,QAAS,QAEX,uBACE,QAAS,QAEX,eACE,QAAS,QAEX,oBACE,QAAS,QAEX,mBACE,QAAS,QAEX,uBACE,QAAS,QAEX,qBACE,QAAS,QAEX,oBACE,QAAS,QAEX,wBACE,QAAS,QAEX,oBACE,QAAS,QAEX,oBACE,QAAS,QAEX,iBACE,QAAS,QAEX,yBACE,QAAS,QAEX,yBACE,QAAS,QAEX,sBACE,QAAS,QAEX,0BACE,QAAS,QAEX,oBACE,QAAS,QAEX,iBACE,QAAS,QAEX,oBACE,QAAS,QAEX,kBACE,QAAS,QAEX,4BACE,QAAS,QAEX,2BACE,QAAS,QAEX,iBACE,QAAS,QAEX,kBACE,QAAS,QAEX,kBACE,QAAS,QAEX,+BACE,QAAS,QAEX,4BACE,QAAS,QAEX,0BACE,QAAS,QAEX,8BACE,QAAS,QAEX,kBACE,QAAS,QAEX,oCACE,QAAS,QAEX,iBACE,QAAS,QAEX,yBACE,QAAS,QAEX,kBACE,QAAS,QAEX,yBACE,QAAS,QAEX,2BACE,QAAS,QAEX,8BACE,QAAS,QAEX,4BACE,QAAS,QAEX,8BACE,QAAS,QAEX,wBACE,QAAS,QAEX,yBACE,QAAS,QAEX,0BACE,QAAS,QAEX,8BACE,QAAS,QAEX,gBACE,QAAS,QAEX,qBACE,QAAS,QAEX,gCACE,QAAS,QAEX,gCACE,QAAS,QAEX,iCACE,QAAS,QAEX,8BACE,QAAS,QAEX,+BACE,QAAS,QAEX,8BACE,QAAS,QAEX,0BACE,QAAS,QAEX,4BACE,QAAS,QAEX,yBACE,QAAS,QAEX,2BACE,QAAS,QAEX,oBACE,QAAS,QAEX,kBACE,QAAS,QAEX,0BACE,QAAS,QAEX,sBACE,QAAS,QAEX,qBACE,QAAS,QAEX,mBACE,QAAS,QAEX,8BACE,QAAS,QAEX,uBACE,QAAS,QAEX,2BACE,QAAS,QAEX,sBACE,QAAS,QAEX,mBACE,QAAS,QAEX,mBACE,QAAS,QAEX,yBACE,QAAS,QAEX,qBACE,QAAS,QAEX,wBACE,QAAS,QAEX,iBACE,QAAS,QAEX,wBACE,QAAS,QAEX,0BACE,QAAS,QAEX,0BACE,QAAS,QAEX,8BACE,QAAS,QAEX,uBACE,QAAS,QAEX,wBACE,QAAS,QAEX,yBACE,QAAS,QAEX,iBACE,QAAS,QAEX,0BACE,QAAS,QAEX,iBACE,QAAS,QAEX,sBACE,QAAS,QAEX,oBACE,QAAS,QAEX,2BACE,QAAS,QAEX,0BACE,QAAS,QAEX,sBACE,QAAS,QAEX,sBACE,QAAS,QAEX,uBACE,QAAS,QAEX,2BACE,QAAS,QAEX,oCACE,QAAS,QAEX,yBACE,QAAS,QAEX,wBACE,QAAS,QAEX,0BACE,QAAS,QAEX,8BACE,QAAS,QAEX,gCACE,QAAS,QAEX,2BACE,QAAS,QAEX,wBACE,QAAS,QAEX,kCACE,QAAS,QAEX,0BACE,QAAS,QAEX,uBACE,QAAS,QAEX,yBACE,QAAS,QAEX,wBACE,QAAS,QAEX,0BACE,QAAS,QAEX,2BACE,QAAS,QAEX,wBACE,QAAS,QAEX,wBACE,QAAS,QAEX,uBACE,QAAS,QAEX,8BACE,QAAS,QAEX,4BACE,QAAS,QAEX,sBACE,QAAS,QAEX,2BACE,QAAS,QAEX,uBACE,QAAS,QAEX,0BACE,QAAS,QAEX,8BACE,QAAS,QAEX,yBACE,QAAS,QAEX,wBACE,QAAS,QAEX,+BACE,QAAS,QAEX,iBACE,QAAS,QAEX,sBACE,QAAS,QAEX,yBACE,QAAS,QAEX,kBACE,QAAS,QAEX,oBACE,QAAS,QAEX,oBACE,QAAS,QAEX,oBACE,QAAS,QAEX,oBACE,QAAS,QAEX,sBACE,QAAS,QAEX,sBACE,QAAS,QAEX,iBACE,QAAS,QAEX,kBACE,QAAS,QAEX,yBACE,QAAS,QAEX,oBACE,QAAS,QAEX,iBACE,QAAS,QAEX,yBACE,QAAS,QAEX,gBACE,QAAS,QAEX,uBACE,QAAS,QAEX,+BACE,QAAS,QAEX,mBACE,QAAS,QAEX,iBACE,QAAS,QAEX,uBACE,QAAS,QAEX,oBACE,QAAS,QAEX,gBACE,QAAS,QAEX,qBACE,QAAS,QAEX,oBACE,QAAS,QAEX,gBACE,QAAS,QAEX,yBACE,QAAS,QAEX,sBACE,QAAS,QAEX,4BACE,QAAS,QAEX,sBACE,QAAS,QAEX,8BACE,QAAS,QAEX,iBACE,QAAS,QAEX,qBACE,QAAS,QAEX,iBACE,QAAS,QAEX,uBACE,QAAS,QAEX,sBACE,QAAS,QAEX,uBACE,QAAS,QAEX,kBACE,QAAS,QAEX,0BACE,QAAS,QAEX,kBACE,QAAS,QAEX,2BACE,QAAS,QAEX,yBACE,QAAS,QAEX,4BACE,QAAS,QAEX,uBACE,QAAS,QAEX,wBACE,QAAS,QAEX,wBACE,QAAS,QAEX,mBACE,QAAS,QAEX,0BACE,QAAS,QAEX,4BACE,QAAS,QAEX,0BACE,QAAS,QAEX,uBACE,QAAS,QAEX,oBACE,QAAS,QAEX,yBACE,QAAS,QAEX,0BACE,QAAS,QAEX,2BACE,QAAS,QAEX,yBACE,QAAS,QAEX,yBACE,QAAS,QAEX,sBACE,QAAS,QAEX,gBACE,QAAS,QAEX,0BACE,QAAS,QAEX,mBACE,QAAS,QAEX,2BACE,QAAS,QAEX,iBACE,QAAS,QAEX,qBACE,QAAS,QAEX,0BACE,QAAS,QAEX,iCACE,QAAS,QAEX,+BACE,QAAS,QAEX,8BACE,QAAS,QAEX,iCACE,QAAS,QAEX,wBACE,QAAS,QAEX,2BACE,QAAS,QAEX,oBACE,QAAS,QAEX,4BACE,QAAS,QAEX,wBACE,QAAS,QAEX,sBACE,QAAS,QAEX,kBACE,QAAS,QAEX,qBACE,QAAS,QAEX,oBACE,QAAS,QAEX,qBACE,QAAS,QAEX,qBACE,QAAS,QAEX,8BACE,QAAS,QAEX,gCACE,QAAS,QAEX,8BACE,QAAS,QAEX,gCACE,QAAS,QAEX,uBACE,QAAS,QAEX,kBACE,QAAS,QAEX,gCACE,QAAS,QAEX,iCACE,QAAS,QAEX,oBACE,QAAS,QAEX,mBACE,QAAS,QAEX,2BACE,QAAS,QAEX,4BACE,QAAS,QAEX,kCACE,QAAS,QAEX,8BACE,QAAS,QAEX,oCACE,QAAS,QAEX,0BACE,QAAS,QAEX,uBACE,QAAS,QAEX,2BACE,QAAS,QAEX,2BACE,QAAS,QAEX,mBACE,QAAS,QAEX,uBACE,QAAS,QAEX,2BACE,QAAS,QAEX,uBACE,QAAS,QAEX,8BACE,QAAS,QAEX,2BACE,QAAS,QAEX,iBACE,QAAS,QAEX,kBACE,QAAS,QAEX,0BACE,QAAS,QAEX,oCACE,QAAS,QAEX,4BACE,QAAS,QAEX,0BACE,QAAS,QAEX,yBACE,QAAS,QAEX,yBACE,QAAS,QAEX,yBACE,QAAS,QAEX,yBACE,QAAS,QAEX,sBACE,QAAS,QAEX,4BACE,QAAS,QAEX,2BACE,QAAS,QAEX,0BACE,QAAS,QAEX,2BACE,QAAS,QAEX,4BACE,QAAS,QAEX,kBACE,QAAS,QAEX,wBACE,QAAS,QAEX,yBACE,QAAS,QAEX,yBACE,QAAS,QAEX,0BACE,QAAS,QAEX,qCACE,QAAS,QAEX,oCACE,QAAS,QAEX,oCACE,QAAS,QAEX,2BACE,QAAS,QAEX,+BACE,QAAS,QAEX,mCACE,QAAS,QAEX,sBACE,QAAS,QAEX,+BACE,QAAS,QAEX,qBACE,QAAS,QAEX,kBACE,QAAS,QAEX,uBACE,QAAS,QAEX,+BACE,QAAS,QAEX,gCACE,QAAS,QAEX,0BACE,QAAS,QAEX,yBACE,QAAS,QAEX,+BACE,QAAS,QAEX,0BACE,QAAS,QAEX,qBACE,QAAS,QAEX,iBACE,QAAS,QAEX,oBACE,QAAS,QAEX,iBACE,QAAS,QAEX,8BACE,QAAS,QAEX,qBACE,QAAS,QAEX,kBACE,QAAS,QAEX,wBACE,QAAS,QAEX,+BACE,QAAS,QAEX,2BACE,QAAS,QAEX,2BACE,QAAS,QAEX,kBACE,QAAS,QAEX,0BACE,QAAS,QAEX,mBACE,QAAS,QAEX,oBACE,QAAS,QAEX,0BACE,QAAS,QAEX,4BACE,QAAS,QAEX,kBACE,QAAS,QAEX,wBACE,QAAS,QAEX,4BACE,QAAS,QAEX,kBACE,QAAS,QAEX,iCACE,QAAS,QAEX,mCACE,QAAS,QAEX,wBACE,QAAS,QAEX,oBACE,QAAS,QAEX,0BACE,QAAS,QAEX,8BACE,QAAS,QAEX,mBACE,QAAS,QAEX,iBACE,QAAS,QAEX,oBACE,QAAS,QAEX,mBACE,QAAS,QAEX,0BACE,QAAS,QAEX,kCACE,QAAS,QAEX,8BACE,QAAS,QAEX,2BACE,QAAS,QAEX,iCACE,QAAS,QAEX,oBACE,QAAS,QAEX,mBACE,QAAS,QAEX,uBACE,QAAS,QAEX,mBACE,QAAS,QAEX,sBACE,QAAS,QAEX,sBACE,QAAS,QAEX,qBACE,QAAS,QAEX,kBACE,QAAS,QAEX,sBACE,QAAS,QAEX,mBACE,QAAS,QAEX,2BACE,QAAS,QAEX,uBACE,QAAS,QAEX,4BACE,QAAS,QAEX,oBACE,QAAS,QAEX,yBACE,QAAS,QAEX,wBACE,QAAS,QAEX,iBACE,QAAS,QAEX,yBACE,QAAS,QAEX,kCACE,QAAS,QAEX,wBACE,QAAS,QAEX,yBACE,QAAS,QAEX,2BACE,QAAS,QAEX,mBACE,QAAS,QAEX,mBACE,QAAS,QAEX,qBACE,QAAS,QAEX,sBACE,QAAS,QAEX,sBACE,QAAS,QAEX,iBACE,QAAS,QAEX,oBACE,QAAS,QAEX,qBACE,QAAS,QAEX,mBACE,QAAS,QAEX,kCACE,QAAS,QAEX,iCACE,QAAS,QAEX,iCACE,QAAS,QAEX,4BACE,QAAS,QAEX,yBACE,QAAS,QAEX,oBACE,QAAS,QAEX,uBACE,QAAS,QAEX,mBACE,QAAS,QAEX,qBACE,QAAS,QAEX,uBACE,QAAS,QAEX,iBACE,QAAS,QAEX,mCACE,QAAS,QAEX,8BACE,QAAS,QAEX,gCACE,QAAS,QAEX,wCACE,QAAS,QAEX,qCACE,QAAS,QAEX,qBACE,QAAS,QAEX,kCACE,QAAS,QAEX,oCACE,QAAS,QAEX,+BACE,QAAS,QAEX,gCACE,QAAS,QAEX,0BACE,QAAS,QAEX,8BACE,QAAS,QAEX,mCACE,QAAS,QAEX,qCACE,QAAS,QAEX,qCACE,QAAS,QAEX,gCACE,QAAS,QAEX,kCACE,QAAS,QAEX,8BACE,QAAS,QAEX,2BACE,QAAS,QAEX,2BACE,QAAS,QAEX,4BACE,QAAS,QAEX,qCACE,QAAS,QAEX,2BACE,QAAS,QAEX,kBACE,QAAS,QAEX,iBACE,QAAS,QAEX,qBACE,QAAS,QAEX,4BACE,QAAS,QAEX,0BACE,QAAS,QAEX,uBACE,QAAS,QAEX,uBACE,QAAS,QAEX,oBACE,QAAS,QAEX,kCACE,QAAS,QAEX,wDACE,QAAS,QAEX,mCACE,QAAS,QAEX,iCACE,QAAS,QAEX,gCACE,QAAS,QAEX,8BACE,QAAS,QAEX,mCACE,QAAS,QAEX,4BACE,QAAS,QAEX,qBACE,QAAS,QAEX,2BACE,QAAS,QAEX,sBACE,QAAS,QAEX,0BACE,QAAS,QAEX,sBACE,QAAS,QAEX,8BACE,QAAS,QAEX,uBACE,QAAS,QAEX,uBACE,QAAS,QAEX,0BACE,QAAS,QAEX,gBACE,QAAS,QAEX,uBACE,QAAS,QAEX,mBACE,QAAS,QAEX,iBACE,QAAS,QAEX,0BACE,QAAS,QAEX,gBACE,QAAS,QAEX,sBACE,QAAS,QAEX,oBACE,QAAS,QAEX,0BACE,QAAS,QAEX,0BACE,QAAS,QAEX,8BACE,QAAS,QAEX,0BACE,QAAS,QAEX,uBACE,QAAS,QAEX,iBACE,QAAS,QAEX,wBACE,QAAS,QAEX,sBACE,QAAS,QAEX,kBACE,QAAS,QAEX,mCACE,QAAS,QAEX,kCACE,QAAS,QAEX,mCACE,QAAS,QAEX,kCACE,QAAS,QAEX,iBACE,QAAS,QAEX,8BACE,QAAS,QAEX,oBACE,QAAS,QAEX,kBACE,QAAS,QAEX,iCACE,QAAS,QAEX,uBACE,QAAS,QAEX,uBACE,QAAS,QAEX,4BACE,QAAS,QAEX,kBACE,QAAS,QAEX,oCACE,QAAS,QAEX,qCACE,QAAS,QAEX,oBACE,QAAS,QAEX,0BACE,QAAS,QAEX,sBACE,QAAS,QAEX,mBACE,QAAS,QAEX,+BACE,QAAS,QAEX,2BACE,QAAS,QAEX,uBACE,QAAS,QAEX,uBACE,QAAS,QAEX,sBACE,QAAS,QAEX,iCACE,QAAS,QAEX,0BACE,QAAS,QAEX,yBACE,QAAS,QAEX,iBACE,QAAS,QAEX,0BACE,QAAS,QAEX,yBACE,QAAS,QAEX,0BACE,QAAS,QAEX,8BACE,QAAS,QAEX,gBACE,QAAS,QAEX,2BACE,QAAS,QAEX,mBACE,QAAS,QAEX,2BACE,QAAS,QAEX,uBACE,QAAS,QAEX,sBACE,QAAS,QAEX,yBACE,QAAS,QAEX,oBACE,QAAS,QAEX,wBACE,QAAS,QAEX,wBACE,QAAS,QAEX,oBACE,QAAS,QAEX,oBACE,QAAS,QAEX,qBACE,QAAS,QAEX,uBACE,QAAS,QAEX,qBACE,QAAS,QAEX,2BACE,QAAS,QAEX,0BACE,QAAS,QAEX,sBACE,QAAS,QAEX,qBACE,QAAS,QAEX,kBACE,QAAS,QAEX,qBACE,QAAS,QAEX,oBACE,QAAS,QAEX,sBACE,QAAS,QAEX,kBACE,QAAS,QAEX,gBACE,QAAS,QAEX,kBACE,QAAS,QAEX,iBACE,QAAS,QAEX,qBACE,QAAS,QAEX,sBACE,QAAS,QAEX,iBACE,QAAS,QAEX,0BACE,QAAS,QAEX,oBACE,QAAS,QAEX,kBACE,QAAS,QAEX,iBACE,QAAS,QAEX,sCACE,QAAS,QAEX,sBACE,QAAS,QAEX,sBACE,QAAS,QAEX,0BACE,QAAS,QAEX,0BACE,QAAS,QAEX,wBACE,QAAS,QAEX,iBACE,QAAS,QAEX,sBACE,QAAS,QAEX,0BACE,QAAS,QAEX,eACE,QAAS,QAEX,sBACE,QAAS,QAEX,iBACE,QAAS,QAEX,wBACE,QAAS,QAEX,wBACE,QAAS,QAEX,mBACE,QAAS,QAEX,gBACE,QAAS,QAEX,0BACE,QAAS,QAEX,kCACE,QAAS,QAEX,kCACE,QAAS,QAEX,+BACE,QAAS,QAEX,sBACE,QAAS,QAEX,uBACE,QAAS,QAEX,wBACE,QAAS,QAEX,0BACE,QAAS,QAEX,qBACE,QAAS,QAEX,yBACE,QAAS,QAEX,4BACE,QAAS,QAEX,wBACE,QAAS,QAEX,uBACE,QAAS,QAEX,0BACE,QAAS,QAEX,wBACE,QAAS,QAEX,uBACE,QAAS,QAEX,yBACE,QAAS,QAEX,qBACE,QAAS,QAEX,0BACE,QAAS,QAEX,sBACE,QAAS,QAEX,wBACE,QAAS,QAEX,uBACE,QAAS,QAEX,wBACE,QAAS,QAEX,sBACE,QAAS,QAEX,qBACE,QAAS,QAEX,uBACE,QAAS,QAEX,2BACE,QAAS,QAEX,uBACE,QAAS,QAEX,sBACE,QAAS,QAEX,wBACE,QAAS,QAEX,wBACE,QAAS,QAEX,uBACE,QAAS,QAEX,sBACE,QAAS,QAEX,oBACE,QAAS,QAEX,qBACE,QAAS,QAEX,sBACE,QAAS,QAEX,oBACE,QAAS,QAEX,kBACE,QAAS,QAEX,wBACE,QAAS,QAEX,oBACE,QAAS,QAEX,sBACE,QAAS,QAEX,4BACE,QAAS,QAEX,0BACE,QAAS,QAEX,qBACE,QAAS,QAEX,eACE,QAAS,QAEX,gBACE,QAAS,QAEX,sBACE,QAAS,QAEX,oBACE,QAAS,QAEX,qBACE,QAAS,QAEX,oBACE,QAAS,QAEX,iBACE,QAAS,QAEX,sBACE,QAAS,QAEX,2BACE,QAAS,QAEX,iBACE,QAAS,QAEX,sBACE,QAAS,QAEX,iCACE,QAAS,QAEX,oBACE,QAAS,QAEX,qBACE,QAAS,QAEX,yBACE,QAAS"} \ No newline at end of file
diff --git a/vendor/mervick/material-design-icons/demo/index.html b/vendor/mervick/material-design-icons/demo/index.html
new file mode 100644
index 000000000..e46163157
--- /dev/null
+++ b/vendor/mervick/material-design-icons/demo/index.html
@@ -0,0 +1,121 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="UTF-8">
+ <title>Bootstrap Material Design Icons</title>
+ <link href="https://fonts.googleapis.com/css?family=Roboto+Mono:400,500,700" rel="stylesheet">
+ <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/3.0.3/normalize.min.css"/>
+ <link rel="stylesheet" type="text/css" href="style/main.css?v18"/>
+ <link rel="stylesheet" type="text/css" href="../css/material-icons.min.css?v1.1.2"/>
+</head>
+<body>
+ <div class="wrap">
+
+ <header>
+ <div id="head-panel">
+ <div class="container">
+ <h1>Bootstrap Material Design Icons</h1>
+ <div class="buttons">
+ <a class="github-button" href="https://github.com/mervick/material-design-icons" data-style="mega" data-count-href="/mervick/material-design-icons/stargazers" data-count-api="/repos/mervick/material-design-icons#stargazers_count" data-count-aria-label="# stargazers on GitHub" aria-label="Star mervick/material-design-icons on GitHub">Star</a>
+ <a class="github-button" href="https://github.com/mervick/material-design-icons/archive/master.zip" data-icon="octicon-cloud-download" data-style="mega" aria-label="Download mervick/material-design-icons on GitHub">Download</a>
+ </div>
+ </div>
+ </div>
+ <div id="search-panel">
+ <div class="container">
+ <div class="search-icon">
+ <i class="mdi mdi-search"></i>
+ </div>
+ <input type="text" id="search" placeholder="Search" aria-label="Search"/>
+ <div class="search-icon clear-icon" style="display: none;">
+ <i class="mdi mdi-close"></i>
+ </div>
+ </div>
+ </div>
+ </header>
+
+ <div class="container">
+ <div class="content">
+
+ <p>Material design icons are the <a href="http://www.google.com/design/spec/style/icons.html#icons-system-icons">official icon</a>
+ set from Google that are designed under the <a href="http://www.google.com/design/spec">material design guidelines</a>.</p>
+ <p>In the official package the icons uses a typographic feature called <a href="http://alistapart.com/article/the-era-of-symbol-fonts">ligatures</a>,
+ which allows rendering of an icon glyph simply by using its textual name.</p>
+ <p><a href="https://github.com/mervick/material-design-icons">Bootstrap Material Design Icons</a> implements the ability to use the icons in the <code>bootstrap-style</code>, like in
+ <code>glyphicon</code>, <code>font-awesome</code> or <code>ionicons</code>.</p>
+
+ <div id="grid-container"></div>
+
+ </div>
+ </div>
+
+ <div id="snackbar"></div>
+
+ </div>
+
+ <footer>
+ <div id="footer">
+ <div class="container">
+ <p><a href="https://github.com/google/material-design-icons">Google Material Design Icons</a> fonts files are
+ licensed under the <a href="https://github.com/google/material-design-icons/blob/master/LICENSE">CC-BY-4.0</a>,
+ maintained by <a href="https://github.com/google">Google</a>.</p>
+ <p><a href="https://github.com/mervick/material-design-icons">Bootstrap Material Design Icons</a> css and sass files are
+ licensed under the <a href="http://opensource.org/licenses/mit-license.html">MIT License</a>,
+ maintained by <a href="https://github.com/mervick">mervick</a>.</p>
+ </div>
+ </div>
+ </footer>
+
+ <script id="empty-grid" type="text/template">
+ <div class="no-results">No matches found</div>
+ </script>
+
+ <script id="grid-item" type="text/template">
+ <div class="item">
+ <% if (is_new) { %>
+ <div class="new-badge">New</div>
+ <% } %>
+ <i class="mdi mdi-<%= className %>"></i>
+ <div class="caption"><%= caption %></div>
+ </div>
+ </script>
+
+ <script id="snackbar-template" type="text/template">
+ <div class="container">
+ <div class="snackbar-header">
+ <i class="mdi mdi-<%= className %>"></i>
+ <span class="caption"><%= caption %></span>
+ <div class="right-side">
+ <i class="mdi mdi-code"></i>
+ <span class="caption">ICON FONT</span>
+ </div>
+ </div>
+ <div class="snackbar-content flex">
+ <div class="col">
+ <h2>STEP 1: Setup Icon Font</h2>
+ <p>Follow the <a href="https://github.com/mervick/material-design-icons">instructions</a> to embed the icon
+ font in your site and learn how to style your icons using CSS.</p>
+ </div>
+ <div class="col">
+ <h2>STEP 2: Use Icon in Your Site</h2>
+ <p class="code comment">&lt;!-- Bootstrap style, for modern browsers, IE &gt; 8. --&gt;</p>
+ <textarea class="code" readonly>&lt;i class=&quot;mdi mdi-<%= className %>&quot;&gt;&lt;/i&gt;</textarea>
+ <p class="code comment">&lt;!-- Ligature style, for modern browsers, IE &gt; 9. --&gt;</p>
+ <textarea class="code" readonly>&lt;i class=&quot;material-icons&quot;&gt;<%= content %>&lt;/i&gt;</textarea>
+ <p class="code comment">&lt;!-- For IE9 or below. --&gt;</p>
+ <textarea class="code" readonly>&lt;i class=&quot;material-icons&quot;&gt;&amp;#x<%= code %>;&lt;/i&gt;</textarea>
+ <p></p>
+ </div>
+ </div>
+ </div>
+ </script>
+
+ <script async defer id="github-bjs" src="https://buttons.github.io/buttons.js"></script>
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.2.3/backbone-min.js"></script>
+ <script src="js/data.js?v1.1.2"></script>
+ <script src="js/main.js?v1.1.2"></script>
+
+</body>
+</html> \ No newline at end of file
diff --git a/vendor/mervick/material-design-icons/demo/js/data.js b/vendor/mervick/material-design-icons/demo/js/data.js
new file mode 100644
index 000000000..6457256c3
--- /dev/null
+++ b/vendor/mervick/material-design-icons/demo/js/data.js
@@ -0,0 +1 @@
+window.data = {"action":{"3d_rotation":["e84d",false],"accessibility":["e84e",false],"accessible":["e914",false],"account_balance":["e84f",false],"account_balance_wallet":["e850",false],"account_box":["e851",false],"account_circle":["e853",false],"add_shopping_cart":["e854",false],"alarm":["e855",false],"alarm_add":["e856",false],"alarm_off":["e857",false],"alarm_on":["e858",false],"all_out":["e90b",false],"android":["e859",false],"announcement":["e85a",false],"aspect_ratio":["e85b",false],"assessment":["e85c",false],"assignment":["e85d",false],"assignment_ind":["e85e",false],"assignment_late":["e85f",false],"assignment_return":["e860",false],"assignment_returned":["e861",false],"assignment_turned_in":["e862",false],"autorenew":["e863",false],"backup":["e864",false],"book":["e865",false],"bookmark":["e866",false],"bookmark_border":["e867",false],"bug_report":["e868",false],"build":["e869",false],"cached":["e86a",false],"camera_enhance":["e8fc",false],"card_giftcard":["e8f6",false],"card_membership":["e8f7",false],"card_travel":["e8f8",false],"change_history":["e86b",false],"check_circle":["e86c",false],"chrome_reader_mode":["e86d",false],"class":["e86e",false],"code":["e86f",false],"compare_arrows":["e915",false],"copyright":["e90c",false],"credit_card":["e870",false],"dashboard":["e871",false],"date_range":["e916",false],"delete":["e872",false],"delete_forever":["e92b",true],"description":["e873",false],"dns":["e875",false],"done":["e876",false],"done_all":["e877",false],"donut_large":["e917",false],"donut_small":["e918",false],"eject":["e8fb",false],"euro_symbol":["e926",true],"event":["e878",false],"event_seat":["e903",false],"exit_to_app":["e879",false],"explore":["e87a",false],"extension":["e87b",false],"face":["e87c",false],"favorite":["e87d",false],"favorite_border":["e87e",false],"feedback":["e87f",false],"find_in_page":["e880",false],"find_replace":["e881",false],"fingerprint":["e90d",false],"flight_land":["e904",false],"flight_takeoff":["e905",false],"flip_to_back":["e882",false],"flip_to_front":["e883",false],"g_translate":["e927",true],"gavel":["e90e",false],"get_app":["e884",false],"gif":["e908",false],"grade":["e885",false],"group_work":["e886",false],"help":["e887",false],"help_outline":["e8fd",false],"highlight_off":["e888",false],"history":["e889",false],"home":["e88a",false],"hourglass_empty":["e88b",false],"hourglass_full":["e88c",false],"http":["e902",false],"https":["e88d",false],"important_devices":["e912",false],"info":["e88e",false],"info_outline":["e88f",false],"input":["e890",false],"invert_colors":["e891",false],"label":["e892",false],"label_outline":["e893",false],"language":["e894",false],"launch":["e895",false],"lightbulb_outline":["e90f",false],"line_style":["e919",false],"line_weight":["e91a",false],"list":["e896",false],"lock":["e897",false],"lock_open":["e898",false],"lock_outline":["e899",false],"loyalty":["e89a",false],"markunread_mailbox":["e89b",false],"motorcycle":["e91b",false],"note_add":["e89c",false],"offline_pin":["e90a",false],"opacity":["e91c",false],"open_in_browser":["e89d",false],"open_in_new":["e89e",false],"open_with":["e89f",false],"pageview":["e8a0",false],"pan_tool":["e925",false],"payment":["e8a1",false],"perm_camera_mic":["e8a2",false],"perm_contact_calendar":["e8a3",false],"perm_data_setting":["e8a4",false],"perm_device_information":["e8a5",false],"perm_identity":["e8a6",false],"perm_media":["e8a7",false],"perm_phone_msg":["e8a8",false],"perm_scan_wifi":["e8a9",false],"pets":["e91d",false],"picture_in_picture":["e8aa",false],"picture_in_picture_alt":["e911",false],"play_for_work":["e906",false],"polymer":["e8ab",false],"power_settings_new":["e8ac",false],"pregnant_woman":["e91e",false],"print":["e8ad",false],"query_builder":["e8ae",false],"question_answer":["e8af",false],"receipt":["e8b0",false],"record_voice_over":["e91f",false],"redeem":["e8b1",false],"remove_shopping_cart":["e928",true],"reorder":["e8fe",false],"report_problem":["e8b2",false],"restore":["e8b3",false],"restore_page":["e929",true],"room":["e8b4",false],"rounded_corner":["e920",false],"rowing":["e921",false],"schedule":["e8b5",false],"search":["e8b6",false],"settings":["e8b8",false],"settings_applications":["e8b9",false],"settings_backup_restore":["e8ba",false],"settings_bluetooth":["e8bb",false],"settings_brightness":["e8bd",false],"settings_cell":["e8bc",false],"settings_ethernet":["e8be",false],"settings_input_antenna":["e8bf",false],"settings_input_component":["e8c0",false],"settings_input_composite":["e8c1",false],"settings_input_hdmi":["e8c2",false],"settings_input_svideo":["e8c3",false],"settings_overscan":["e8c4",false],"settings_phone":["e8c5",false],"settings_power":["e8c6",false],"settings_remote":["e8c7",false],"settings_voice":["e8c8",false],"shop":["e8c9",false],"shop_two":["e8ca",false],"shopping_basket":["e8cb",false],"shopping_cart":["e8cc",false],"speaker_notes":["e8cd",false],"speaker_notes_off":["e92a",true],"spellcheck":["e8ce",false],"stars":["e8d0",false],"store":["e8d1",false],"subject":["e8d2",false],"supervisor_account":["e8d3",false],"swap_horiz":["e8d4",false],"swap_vert":["e8d5",false],"swap_vertical_circle":["e8d6",false],"system_update_alt":["e8d7",false],"tab":["e8d8",false],"tab_unselected":["e8d9",false],"theaters":["e8da",false],"thumb_down":["e8db",false],"thumb_up":["e8dc",false],"thumbs_up_down":["e8dd",false],"timeline":["e922",false],"toc":["e8de",false],"today":["e8df",false],"toll":["e8e0",false],"touch_app":["e913",false],"track_changes":["e8e1",false],"translate":["e8e2",false],"trending_down":["e8e3",false],"trending_flat":["e8e4",false],"trending_up":["e8e5",false],"turned_in":["e8e6",false],"turned_in_not":["e8e7",false],"update":["e923",false],"verified_user":["e8e8",false],"view_agenda":["e8e9",false],"view_array":["e8ea",false],"view_carousel":["e8eb",false],"view_column":["e8ec",false],"view_day":["e8ed",false],"view_headline":["e8ee",false],"view_list":["e8ef",false],"view_module":["e8f0",false],"view_quilt":["e8f1",false],"view_stream":["e8f2",false],"view_week":["e8f3",false],"visibility":["e8f4",false],"visibility_off":["e8f5",false],"watch_later":["e924",false],"work":["e8f9",false],"youtube_searched_for":["e8fa",false],"zoom_in":["e8ff",false],"zoom_out":["e900",false]},"alert":{"add_alert":["e003",false],"error":["e000",false],"error_outline":["e001",false],"warning":["e002",false]},"av":{"add_to_queue":["e05c",false],"airplay":["e055",false],"album":["e019",false],"art_track":["e060",false],"av_timer":["e01b",false],"branding_watermark":["e06b",true],"call_to_action":["e06c",true],"closed_caption":["e01c",false],"equalizer":["e01d",false],"explicit":["e01e",false],"fast_forward":["e01f",false],"fast_rewind":["e020",false],"featured_play_list":["e06d",true],"featured_video":["e06e",true],"fiber_dvr":["e05d",false],"fiber_manual_record":["e061",false],"fiber_new":["e05e",false],"fiber_pin":["e06a",false],"fiber_smart_record":["e062",false],"forward_10":["e056",false],"forward_30":["e057",false],"forward_5":["e058",false],"games":["e021",false],"hd":["e052",false],"hearing":["e023",false],"high_quality":["e024",false],"library_add":["e02e",false],"library_books":["e02f",false],"library_music":["e030",false],"loop":["e028",false],"mic":["e029",false],"mic_none":["e02a",false],"mic_off":["e02b",false],"movie":["e02c",false],"music_video":["e063",false],"new_releases":["e031",false],"not_interested":["e033",false],"note":["e06f",true],"pause":["e034",false],"pause_circle_filled":["e035",false],"pause_circle_outline":["e036",false],"play_arrow":["e037",false],"play_circle_filled":["e038",false],"play_circle_outline":["e039",false],"playlist_add":["e03b",false],"playlist_add_check":["e065",false],"playlist_play":["e05f",false],"queue":["e03c",false],"queue_music":["e03d",false],"queue_play_next":["e066",false],"radio":["e03e",false],"recent_actors":["e03f",false],"remove_from_queue":["e067",false],"repeat":["e040",false],"repeat_one":["e041",false],"replay_10":["e059",false],"replay":["e042",false],"replay_30":["e05a",false],"replay_5":["e05b",false],"shuffle":["e043",false],"skip_next":["e044",false],"skip_previous":["e045",false],"slow_motion_video":["e068",false],"snooze":["e046",false],"sort_by_alpha":["e053",false],"stop":["e047",false],"subscriptions":["e064",false],"subtitles":["e048",false],"surround_sound":["e049",false],"video_call":["e070",true],"video_label":["e071",true],"video_library":["e04a",false],"videocam":["e04b",false],"videocam_off":["e04c",false],"volume_down":["e04d",false],"volume_mute":["e04e",false],"volume_off":["e04f",false],"volume_up":["e050",false],"web":["e051",false],"web_asset":["e069",false]},"communication":{"business":["e0af",false],"call":["e0b0",false],"call_end":["e0b1",false],"call_made":["e0b2",false],"call_merge":["e0b3",false],"call_missed":["e0b4",false],"call_missed_outgoing":["e0e4",false],"call_received":["e0b5",false],"call_split":["e0b6",false],"chat":["e0b7",false],"chat_bubble":["e0ca",false],"chat_bubble_outline":["e0cb",false],"clear_all":["e0b8",false],"comment":["e0b9",false],"contact_mail":["e0d0",false],"contact_phone":["e0cf",false],"contacts":["e0ba",false],"dialer_sip":["e0bb",false],"dialpad":["e0bc",false],"email":["e0be",false],"forum":["e0bf",false],"import_contacts":["e0e0",false],"import_export":["e0c3",false],"invert_colors_off":["e0c4",false],"live_help":["e0c6",false],"location_off":["e0c7",false],"location_on":["e0c8",false],"mail_outline":["e0e1",false],"message":["e0c9",false],"no_sim":["e0cc",false],"phone":["e0cd",false],"phonelink_erase":["e0db",false],"phonelink_lock":["e0dc",false],"phonelink_ring":["e0dd",false],"phonelink_setup":["e0de",false],"portable_wifi_off":["e0ce",false],"present_to_all":["e0df",false],"ring_volume":["e0d1",false],"rss_feed":["e0e5",true],"screen_share":["e0e2",false],"speaker_phone":["e0d2",false],"stay_current_landscape":["e0d3",false],"stay_current_portrait":["e0d4",false],"stay_primary_landscape":["e0d5",false],"stay_primary_portrait":["e0d6",false],"stop_screen_share":["e0e3",false],"swap_calls":["e0d7",false],"textsms":["e0d8",false],"voicemail":["e0d9",false],"vpn_key":["e0da",false]},"content":{"add":["e145",false],"add_box":["e146",false],"add_circle":["e147",false],"add_circle_outline":["e148",false],"archive":["e149",false],"backspace":["e14a",false],"block":["e14b",false],"clear":["e14c",false],"content_copy":["e14d",false],"content_cut":["e14e",false],"content_paste":["e14f",false],"create":["e150",false],"delete_sweep":["e16c",true],"drafts":["e151",false],"filter_list":["e152",false],"flag":["e153",false],"font_download":["e167",false],"forward":["e154",false],"gesture":["e155",false],"inbox":["e156",false],"link":["e157",false],"low_priority":["e16d",true],"mail":["e158",false],"markunread":["e159",false],"move_to_inbox":["e168",false],"next_week":["e16a",false],"redo":["e15a",false],"remove":["e15b",false],"remove_circle":["e15c",false],"remove_circle_outline":["e15d",false],"reply":["e15e",false],"reply_all":["e15f",false],"report":["e160",false],"save":["e161",false],"select_all":["e162",false],"send":["e163",false],"sort":["e164",false],"text_format":["e165",false],"unarchive":["e169",false],"undo":["e166",false],"weekend":["e16b",false]},"device":{"access_alarm":["e190",false],"access_alarms":["e191",false],"access_time":["e192",false],"add_alarm":["e193",false],"airplanemode_active":["e195",false],"airplanemode_inactive":["e194",false],"battery_alert":["e19c",false],"battery_charging_full":["e1a3",false],"battery_full":["e1a4",false],"battery_std":["e1a5",false],"battery_unknown":["e1a6",false],"bluetooth":["e1a7",false],"bluetooth_connected":["e1a8",false],"bluetooth_disabled":["e1a9",false],"bluetooth_searching":["e1aa",false],"brightness_auto":["e1ab",false],"brightness_high":["e1ac",false],"brightness_low":["e1ad",false],"brightness_medium":["e1ae",false],"data_usage":["e1af",false],"developer_mode":["e1b0",false],"devices":["e1b1",false],"dvr":["e1b2",false],"gps_fixed":["e1b3",false],"gps_not_fixed":["e1b4",false],"gps_off":["e1b5",false],"graphic_eq":["e1b8",false],"location_disabled":["e1b6",false],"location_searching":["e1b7",false],"network_cell":["e1b9",false],"network_wifi":["e1ba",false],"nfc":["e1bb",false],"screen_lock_landscape":["e1be",false],"screen_lock_portrait":["e1bf",false],"screen_lock_rotation":["e1c0",false],"screen_rotation":["e1c1",false],"sd_storage":["e1c2",false],"settings_system_daydream":["e1c3",false],"signal_cellular_4_bar":["e1c8",false],"signal_cellular_connected_no_internet_4_bar":["e1cd",false],"signal_cellular_no_sim":["e1ce",false],"signal_cellular_null":["e1cf",false],"signal_cellular_off":["e1d0",false],"signal_wifi_4_bar":["e1d8",false],"signal_wifi_4_bar_lock":["e1d9",false],"signal_wifi_off":["e1da",false],"storage":["e1db",false],"usb":["e1e0",false],"wallpaper":["e1bc",false],"widgets":["e1bd",false],"wifi_lock":["e1e1",false],"wifi_tethering":["e1e2",false]},"editor":{"attach_file":["e226",false],"attach_money":["e227",false],"border_all":["e228",false],"border_bottom":["e229",false],"border_clear":["e22a",false],"border_color":["e22b",false],"border_horizontal":["e22c",false],"border_inner":["e22d",false],"border_left":["e22e",false],"border_outer":["e22f",false],"border_right":["e230",false],"border_style":["e231",false],"border_top":["e232",false],"border_vertical":["e233",false],"bubble_chart":["e6dd",true],"drag_handle":["e25d",false],"format_align_center":["e234",false],"format_align_justify":["e235",false],"format_align_left":["e236",false],"format_align_right":["e237",false],"format_bold":["e238",false],"format_clear":["e239",false],"format_color_fill":["e23a",false],"format_color_reset":["e23b",false],"format_color_text":["e23c",false],"format_indent_decrease":["e23d",false],"format_indent_increase":["e23e",false],"format_italic":["e23f",false],"format_line_spacing":["e240",false],"format_list_bulleted":["e241",false],"format_list_numbered":["e242",false],"format_paint":["e243",false],"format_quote":["e244",false],"format_shapes":["e25e",false],"format_size":["e245",false],"format_strikethrough":["e246",false],"format_textdirection_l_to_r":["e247",false],"format_textdirection_r_to_l":["e248",false],"format_underlined":["e249",false],"functions":["e24a",false],"highlight":["e25f",false],"insert_chart":["e24b",false],"insert_comment":["e24c",false],"insert_drive_file":["e24d",false],"insert_emoticon":["e24e",false],"insert_invitation":["e24f",false],"insert_link":["e250",false],"insert_photo":["e251",false],"linear_scale":["e260",false],"merge_type":["e252",false],"mode_comment":["e253",false],"mode_edit":["e254",false],"monetization_on":["e263",true],"money_off":["e25c",false],"multiline_chart":["e6df",true],"pie_chart":["e6c4",true],"pie_chart_outlined":["e6c5",true],"publish":["e255",false],"short_text":["e261",false],"show_chart":["e6e1",true],"space_bar":["e256",false],"strikethrough_s":["e257",false],"text_fields":["e262",false],"title":["e264",true],"vertical_align_bottom":["e258",false],"vertical_align_center":["e259",false],"vertical_align_top":["e25a",false],"wrap_text":["e25b",false]},"file":{"attachment":["e2bc",false],"cloud":["e2bd",false],"cloud_circle":["e2be",false],"cloud_done":["e2bf",false],"cloud_download":["e2c0",false],"cloud_off":["e2c1",false],"cloud_queue":["e2c2",false],"cloud_upload":["e2c3",false],"create_new_folder":["e2cc",false],"file_download":["e2c4",false],"file_upload":["e2c6",false],"folder":["e2c7",false],"folder_open":["e2c8",false],"folder_shared":["e2c9",false]},"hardware":{"cast":["e307",false],"cast_connected":["e308",false],"computer":["e30a",false],"desktop_mac":["e30b",false],"desktop_windows":["e30c",false],"developer_board":["e30d",false],"device_hub":["e335",false],"devices_other":["e337",false],"dock":["e30e",false],"gamepad":["e30f",false],"headset":["e310",false],"headset_mic":["e311",false],"keyboard":["e312",false],"keyboard_arrow_down":["e313",false],"keyboard_arrow_left":["e314",false],"keyboard_arrow_right":["e315",false],"keyboard_arrow_up":["e316",false],"keyboard_backspace":["e317",false],"keyboard_capslock":["e318",false],"keyboard_hide":["e31a",false],"keyboard_return":["e31b",false],"keyboard_tab":["e31c",false],"keyboard_voice":["e31d",false],"laptop":["e31e",false],"laptop_chromebook":["e31f",false],"laptop_mac":["e320",false],"laptop_windows":["e321",false],"memory":["e322",false],"mouse":["e323",false],"phone_android":["e324",false],"phone_iphone":["e325",false],"phonelink":["e326",false],"phonelink_off":["e327",false],"power_input":["e336",false],"router":["e328",false],"scanner":["e329",false],"security":["e32a",false],"sim_card":["e32b",false],"smartphone":["e32c",false],"speaker":["e32d",false],"speaker_group":["e32e",false],"tablet":["e32f",false],"tablet_android":["e330",false],"tablet_mac":["e331",false],"toys":["e332",false],"tv":["e333",false],"videogame_asset":["e338",false],"watch":["e334",false]},"image":{"add_a_photo":["e439",false],"add_to_photos":["e39d",false],"adjust":["e39e",false],"assistant":["e39f",false],"assistant_photo":["e3a0",false],"audiotrack":["e3a1",false],"blur_circular":["e3a2",false],"blur_linear":["e3a3",false],"blur_off":["e3a4",false],"blur_on":["e3a5",false],"brightness_1":["e3a6",false],"brightness_2":["e3a7",false],"brightness_3":["e3a8",false],"brightness_4":["e3a9",false],"brightness_5":["e3aa",false],"brightness_6":["e3ab",false],"brightness_7":["e3ac",false],"broken_image":["e3ad",false],"brush":["e3ae",false],"burst_mode":["e43c",true],"camera":["e3af",false],"camera_alt":["e3b0",false],"camera_front":["e3b1",false],"camera_rear":["e3b2",false],"camera_roll":["e3b3",false],"center_focus_strong":["e3b4",false],"center_focus_weak":["e3b5",false],"collections":["e3b6",false],"collections_bookmark":["e431",false],"color_lens":["e3b7",false],"colorize":["e3b8",false],"compare":["e3b9",false],"control_point":["e3ba",false],"control_point_duplicate":["e3bb",false],"crop_16_9":["e3bc",false],"crop":["e3be",false],"crop_3_2":["e3bd",false],"crop_5_4":["e3bf",false],"crop_7_5":["e3c0",false],"crop_din":["e3c1",false],"crop_free":["e3c2",false],"crop_landscape":["e3c3",false],"crop_original":["e3c4",false],"crop_portrait":["e3c5",false],"crop_rotate":["e437",false],"crop_square":["e3c6",false],"dehaze":["e3c7",false],"details":["e3c8",false],"edit":["e3c9",false],"exposure":["e3ca",false],"exposure_neg_1":["e3cb",false],"exposure_neg_2":["e3cc",false],"exposure_plus_1":["e3cd",false],"exposure_plus_2":["e3ce",false],"exposure_zero":["e3cf",false],"filter_1":["e3d0",false],"filter":["e3d3",false],"filter_2":["e3d1",false],"filter_3":["e3d2",false],"filter_4":["e3d4",false],"filter_5":["e3d5",false],"filter_6":["e3d6",false],"filter_7":["e3d7",false],"filter_8":["e3d8",false],"filter_9":["e3d9",false],"filter_9_plus":["e3da",false],"filter_b_and_w":["e3db",false],"filter_center_focus":["e3dc",false],"filter_drama":["e3dd",false],"filter_frames":["e3de",false],"filter_hdr":["e3df",false],"filter_none":["e3e0",false],"filter_tilt_shift":["e3e2",false],"filter_vintage":["e3e3",false],"flare":["e3e4",false],"flash_auto":["e3e5",false],"flash_off":["e3e6",false],"flash_on":["e3e7",false],"flip":["e3e8",false],"gradient":["e3e9",false],"grain":["e3ea",false],"grid_off":["e3eb",false],"grid_on":["e3ec",false],"hdr_off":["e3ed",false],"hdr_on":["e3ee",false],"hdr_strong":["e3f1",false],"hdr_weak":["e3f2",false],"healing":["e3f3",false],"image":["e3f4",false],"image_aspect_ratio":["e3f5",false],"iso":["e3f6",false],"landscape":["e3f7",false],"leak_add":["e3f8",false],"leak_remove":["e3f9",false],"lens":["e3fa",false],"linked_camera":["e438",false],"looks":["e3fc",false],"looks_3":["e3fb",false],"looks_4":["e3fd",false],"looks_5":["e3fe",false],"looks_6":["e3ff",false],"looks_one":["e400",false],"looks_two":["e401",false],"loupe":["e402",false],"monochrome_photos":["e403",false],"movie_creation":["e404",false],"movie_filter":["e43a",false],"music_note":["e405",false],"nature":["e406",false],"nature_people":["e407",false],"navigate_before":["e408",false],"navigate_next":["e409",false],"palette":["e40a",false],"panorama":["e40b",false],"panorama_fish_eye":["e40c",false],"panorama_horizontal":["e40d",false],"panorama_vertical":["e40e",false],"panorama_wide_angle":["e40f",false],"photo":["e410",false],"photo_album":["e411",false],"photo_camera":["e412",false],"photo_filter":["e43b",false],"photo_library":["e413",false],"photo_size_select_actual":["e432",false],"photo_size_select_large":["e433",false],"photo_size_select_small":["e434",false],"picture_as_pdf":["e415",false],"portrait":["e416",false],"remove_red_eye":["e417",false],"rotate_90_degrees_ccw":["e418",false],"rotate_left":["e419",false],"rotate_right":["e41a",false],"slideshow":["e41b",false],"straighten":["e41c",false],"style":["e41d",false],"switch_camera":["e41e",false],"switch_video":["e41f",false],"tag_faces":["e420",false],"texture":["e421",false],"timelapse":["e422",false],"timer_10":["e423",false],"timer":["e425",false],"timer_3":["e424",false],"timer_off":["e426",false],"tonality":["e427",false],"transform":["e428",false],"tune":["e429",false],"view_comfy":["e42a",false],"view_compact":["e42b",false],"vignette":["e435",false],"wb_auto":["e42c",false],"wb_cloudy":["e42d",false],"wb_incandescent":["e42e",false],"wb_iridescent":["e436",false],"wb_sunny":["e430",false]},"maps":{"add_location":["e567",false],"beenhere":["e52d",false],"directions":["e52e",false],"directions_bike":["e52f",false],"directions_boat":["e532",false],"directions_bus":["e530",false],"directions_car":["e531",false],"directions_railway":["e534",false],"directions_run":["e566",false],"directions_subway":["e533",false],"directions_transit":["e535",false],"directions_walk":["e536",false],"edit_location":["e568",false],"ev_station":["e56d",true],"flight":["e539",false],"hotel":["e53a",false],"layers":["e53b",false],"layers_clear":["e53c",false],"local_activity":["e53f",false],"local_airport":["e53d",false],"local_atm":["e53e",false],"local_bar":["e540",false],"local_cafe":["e541",false],"local_car_wash":["e542",false],"local_convenience_store":["e543",false],"local_dining":["e556",false],"local_drink":["e544",false],"local_florist":["e545",false],"local_gas_station":["e546",false],"local_grocery_store":["e547",false],"local_hospital":["e548",false],"local_hotel":["e549",false],"local_laundry_service":["e54a",false],"local_library":["e54b",false],"local_mall":["e54c",false],"local_movies":["e54d",false],"local_offer":["e54e",false],"local_parking":["e54f",false],"local_pharmacy":["e550",false],"local_phone":["e551",false],"local_pizza":["e552",false],"local_play":["e553",false],"local_post_office":["e554",false],"local_printshop":["e555",false],"local_see":["e557",false],"local_shipping":["e558",false],"local_taxi":["e559",false],"map":["e55b",false],"my_location":["e55c",false],"navigation":["e55d",false],"near_me":["e569",false],"person_pin":["e55a",false],"person_pin_circle":["e56a",false],"pin_drop":["e55e",false],"place":["e55f",false],"rate_review":["e560",false],"restaurant":["e56c",true],"restaurant_menu":["e561",false],"satellite":["e562",false],"store_mall_directory":["e563",false],"streetview":["e56e",true],"subway":["e56f",true],"terrain":["e564",false],"traffic":["e565",false],"train":["e570",true],"tram":["e571",true],"transfer_within_a_station":["e572",true],"zoom_out_map":["e56b",false]},"navigation":{"apps":["e5c3",false],"arrow_back":["e5c4",false],"arrow_downward":["e5db",false],"arrow_drop_down":["e5c5",false],"arrow_drop_down_circle":["e5c6",false],"arrow_drop_up":["e5c7",false],"arrow_forward":["e5c8",false],"arrow_upward":["e5d8",false],"cancel":["e5c9",false],"check":["e5ca",false],"chevron_left":["e5cb",false],"chevron_right":["e5cc",false],"close":["e5cd",false],"expand_less":["e5ce",false],"expand_more":["e5cf",false],"first_page":["e5dc",true],"fullscreen":["e5d0",false],"fullscreen_exit":["e5d1",false],"last_page":["e5dd",true],"menu":["e5d2",false],"more_horiz":["e5d3",false],"more_vert":["e5d4",false],"refresh":["e5d5",false],"subdirectory_arrow_left":["e5d9",false],"subdirectory_arrow_right":["e5da",false],"unfold_less":["e5d6",false],"unfold_more":["e5d7",false]},"notification":{"adb":["e60e",false],"airline_seat_flat":["e630",false],"airline_seat_flat_angled":["e631",false],"airline_seat_individual_suite":["e632",false],"airline_seat_legroom_extra":["e633",false],"airline_seat_legroom_normal":["e634",false],"airline_seat_legroom_reduced":["e635",false],"airline_seat_recline_extra":["e636",false],"airline_seat_recline_normal":["e637",false],"bluetooth_audio":["e60f",false],"confirmation_number":["e638",false],"disc_full":["e610",false],"do_not_disturb":["e612",false],"do_not_disturb_alt":["e611",false],"do_not_disturb_off":["e643",true],"do_not_disturb_on":["e644",true],"drive_eta":["e613",false],"enhanced_encryption":["e63f",false],"event_available":["e614",false],"event_busy":["e615",false],"event_note":["e616",false],"folder_special":["e617",false],"live_tv":["e639",false],"mms":["e618",false],"more":["e619",false],"network_check":["e640",false],"network_locked":["e61a",false],"no_encryption":["e641",false],"ondemand_video":["e63a",false],"personal_video":["e63b",false],"phone_bluetooth_speaker":["e61b",false],"phone_forwarded":["e61c",false],"phone_in_talk":["e61d",false],"phone_locked":["e61e",false],"phone_missed":["e61f",false],"phone_paused":["e620",false],"power":["e63c",false],"priority_high":["e645",true],"rv_hookup":["e642",false],"sd_card":["e623",false],"sim_card_alert":["e624",false],"sms":["e625",false],"sms_failed":["e626",false],"sync":["e627",false],"sync_disabled":["e628",false],"sync_problem":["e629",false],"system_update":["e62a",false],"tap_and_play":["e62b",false],"time_to_leave":["e62c",false],"vibration":["e62d",false],"voice_chat":["e62e",false],"vpn_lock":["e62f",false],"wc":["e63d",false],"wifi":["e63e",false]},"places":{"ac_unit":["eb3b",false],"airport_shuttle":["eb3c",false],"all_inclusive":["eb3d",false],"beach_access":["eb3e",false],"business_center":["eb3f",false],"casino":["eb40",false],"child_care":["eb41",false],"child_friendly":["eb42",false],"fitness_center":["eb43",false],"free_breakfast":["eb44",false],"golf_course":["eb45",false],"hot_tub":["eb46",false],"kitchen":["eb47",false],"pool":["eb48",false],"room_service":["eb49",false],"rv_hookup":["e642",false],"smoke_free":["eb4a",false],"smoking_rooms":["eb4b",false],"spa":["eb4c",false]},"social":{"cake":["e7e9",false],"domain":["e7ee",false],"group":["e7ef",false],"group_add":["e7f0",false],"location_city":["e7f1",false],"mood":["e7f2",false],"mood_bad":["e7f3",false],"notifications":["e7f4",false],"notifications_active":["e7f7",false],"notifications_none":["e7f5",false],"notifications_off":["e7f6",false],"notifications_paused":["e7f8",false],"pages":["e7f9",false],"party_mode":["e7fa",false],"people":["e7fb",false],"people_outline":["e7fc",false],"person":["e7fd",false],"person_add":["e7fe",false],"person_outline":["e7ff",false],"plus_one":["e800",false],"poll":["e801",false],"public":["e80b",false],"school":["e80c",false],"sentiment_dissatisfied":["e811",true],"sentiment_neutral":["e812",true],"sentiment_satisfied":["e813",true],"sentiment_very_dissatisfied":["e814",true],"sentiment_very_satisfied":["e815",true],"share":["e80d",false],"whatshot":["e80e",false]},"toggle":{"check_box":["e834",false],"check_box_outline_blank":["e835",false],"indeterminate_check_box":["e909",false],"radio_button_checked":["e837",false],"radio_button_unchecked":["e836",false],"star":["e838",false],"star_border":["e83a",false],"star_half":["e839",false]}}; \ No newline at end of file
diff --git a/vendor/mervick/material-design-icons/demo/js/main.js b/vendor/mervick/material-design-icons/demo/js/main.js
new file mode 100644
index 000000000..ed13d5cbc
--- /dev/null
+++ b/vendor/mervick/material-design-icons/demo/js/main.js
@@ -0,0 +1,194 @@
+(function($, Backbone) {
+
+ var models = {},
+ views = {},
+ renderData = function (data) {
+ var icons = [],
+ categories = [];
+ $.each(data, function (category, items) {
+ $.each(items, function (content, d) {
+ categories.push(category);
+ icons.push({
+ category: category,
+ caption: content.replace(/_/g, ' '),
+ className: content.replace(/_/g, '-'),
+ content: content,
+ code: d[0].toUpperCase(),
+ is_new: d[1] && true
+ });
+ });
+ });
+ var view = new views.Icons({collection: new models.Icons(icons)});
+ view.render();
+ };
+
+ models.Icon = Backbone.Model.extend();
+
+ models.Icons = Backbone.Collection.extend({
+ model: models.Icon
+ });
+
+ views.Icon = Backbone.View.extend({
+ tagName: 'div',
+ className: 'item-container',
+ template: _.template($('#grid-item').html()),
+ events : {
+ "click" : "showSnackBar"
+ },
+ initialize: function (options) {
+ this.listenTo(this.model, 'hideSnackBar', this.hideSnackBar);
+ _.bindAll(this, 'render', 'hideSnackBar');
+ },
+ render: function () {
+ $(this.el).html(this.template(this.model.attributes));
+ return this;
+ },
+ showSnackBar: function() {
+ $("body").click();
+ this.model.trigger('hideSnackBar');
+ $(this.el).addClass("selected");
+ var view = new views.snackbarView({model: this.model});
+ view.render();
+ return false;
+ },
+ hideSnackBar: function() {
+ $(this.el).removeClass("selected");
+ }
+ });
+
+ views.snackbarView = Backbone.View.extend({
+ container: $('#snackbar'),
+ template: _.template($('#snackbar-template').html()),
+ initialize: function (options) {
+ this.collection = options.collection;
+ $("body").on("click focus", $.proxy(this.hide, this));
+ },
+ render: function () {
+ var hidden = !this.container.children(".container:not(:hidden)").length;
+ this.container.empty();
+ this.container.append(this.template(this.model.attributes));
+ if (hidden) {
+ this.container.children(".container").hide().slideDown('fast');
+ } else {
+ this.container.children(".container").stop(0, 0).slideDown('fast');
+ }
+ },
+ hide: function() {
+ this.model.trigger('hideSnackBar');
+ this.container.children(".container").slideUp('fast');
+ }
+ });
+
+ views.Icons = Backbone.View.extend({
+ container: $('#grid-container'),
+ empty_content: $('#empty-grid').html(),
+ search_input: $('#search'),
+ search_clear: $('#search-panel .clear-icon'),
+ initialize: function (options) {
+ this.collection = options.collection;
+ this.search_input.bind('keyup', $.proxy(this.search, this));
+ this.search_clear.bind('click', $.proxy(this.clear_search, this));
+ _.bindAll(this, 'render');
+ },
+ clear_search : function() {
+ this.search_input.val('');
+ this.search_input.focus();
+ this.search();
+ return this;
+ },
+ search: function () {
+ var str = this.search_input.val();
+ if (str.length > 0) {
+ this.search_clear.show();
+ } else {
+ this.search_clear.hide();
+ }
+ str = str.replace(/[\-_]+/g, ' ').replace(/\s+/, ' ').trim();
+ if (str.length > 0) {
+ var models = this.collection.filter(function (item) {
+ return item.get("caption").indexOf(str) > -1
+ });
+ this.render(models);
+ } else {
+ this.render();
+ }
+ $('body, html').animate({scrollTop: this.container.offset().top - 64}, 0);
+ return this;
+ },
+ render: function (searchCollection) {
+ var container = this.container,
+ category = null,
+ grid = $("<div/>", {"class" : "grid"}),
+ self = this,
+ models = searchCollection || this.collection;
+ container.empty();
+ models.forEach(function (item) {
+ var itemView = new views.Icon({model: item});
+ if (category === null) {
+ category = item.get('category');
+ }
+ if (category !== item.get('category')) {
+ $("<h2/>").html(category.charAt(0).toUpperCase() + category.slice(1)).
+ appendTo(self.container);
+ grid.appendTo(self.container);
+
+ category = item.get('category');
+ grid = $("<div/>", {"class" : "grid"});
+ grid.append(itemView.render().el);
+ } else {
+ grid.append(itemView.render().el);
+ }
+ });
+ if (category !== null) {
+ $("<h2/>").html(category.charAt(0).toUpperCase() + category.slice(1)).
+ appendTo(self.container);
+ grid.appendTo(self.container);
+ } else {
+ container.html(self.empty_content);
+ }
+ return this;
+ }
+ });
+
+ $(document).ready(function () {
+ var is_fixed_search = false,
+ $win = $(window),
+ search_panel = $("#search-panel"),
+ header_panel = $("#head-panel");
+
+ $win.on("scroll resize", function () {
+ if ($win.scrollTop() > header_panel.outerHeight()) {
+ if (!is_fixed_search) {
+ is_fixed_search = true;
+ search_panel.addClass("top-fixed");
+ }
+ } else {
+ if (is_fixed_search) {
+ is_fixed_search = false;
+ search_panel.removeClass("top-fixed");
+ }
+ }
+ });
+
+ renderData(window.data);
+
+ $("body").on("focus", "textarea.code", function() {
+ var $this = $(this);
+ $this.select();
+ window.setTimeout(function() {
+ $this.select();
+ }, 1);
+ function mouseUpHandler() {
+ $this.off("mouseup", mouseUpHandler);
+ return false;
+ }
+ $this.mouseup(mouseUpHandler);
+ });
+
+ $("#snackbar").on("click focus", function(e) {
+ e.preventDefault();
+ return false;
+ });
+
+ });
+}) (jQuery, Backbone);
diff --git a/vendor/mervick/material-design-icons/demo/style/main.css b/vendor/mervick/material-design-icons/demo/style/main.css
new file mode 100644
index 000000000..5a5563309
--- /dev/null
+++ b/vendor/mervick/material-design-icons/demo/style/main.css
@@ -0,0 +1,385 @@
+/* line 3, main.scss */
+html, body {
+ background-color: #f9f9f9;
+ border: 0;
+ padding: 0;
+ margin: 0;
+ height: 100%;
+ width: 100%;
+ color: #444;
+ font-family: RobotoDraft, Roboto, sans-serif;
+ font-size: 14px;
+ -webkit-font-smoothing: antialiased; }
+
+/* line 16, main.scss */
+*, *:before, *:after {
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box; }
+
+/* line 20, main.scss */
+* {
+ font-family: RobotoDraft, Roboto, sans-serif; }
+
+/* line 24, main.scss */
+a {
+ color: #02a8f3;
+ text-decoration: none; }
+ /* line 27, main.scss */
+ a:hover {
+ text-decoration: underline; }
+ /* line 30, main.scss */
+ a, a:hover {
+ outline: 0; }
+
+/* line 35, main.scss */
+#head-panel {
+ background-color: #03a9f4;
+ padding: 30px 0 20px; }
+ /* line 38, main.scss */
+ #head-panel h1 {
+ color: #fff;
+ font-size: 50px;
+ font-weight: normal;
+ margin: 0 0 10px 0;
+ display: inline-block; }
+ /* line 44, main.scss */
+ #head-panel h1:after {
+ letter-spacing: 0.5em;
+ content: "\00a0"; }
+ /* line 49, main.scss */
+ #head-panel .buttons {
+ display: inline-block;
+ color: transparent; }
+
+/* line 55, main.scss */
+.container {
+ width: 100%;
+ padding: 0 20px;
+ height: 100%; }
+
+/* line 61, main.scss */
+.wrap {
+ min-height: 100%;
+ height: auto;
+ margin: 0 auto -120px;
+ padding: 0 0 160px; }
+
+/* line 68, main.scss */
+.content {
+ margin: 120px 0 40px; }
+ /* line 70, main.scss */
+ .content p {
+ line-height: 36px;
+ font-size: 20px;
+ margin-top: 2px;
+ margin-bottom: 10px; }
+ /* line 76, main.scss */
+ .content code {
+ padding: 0;
+ padding-top: 0.2em;
+ padding-bottom: 0.2em;
+ margin: 0;
+ font-size: 85%;
+ background-color: rgba(0, 0, 0, 0.04);
+ border-radius: 3px; }
+ /* line 84, main.scss */
+ .content code:before, .content code:after {
+ letter-spacing: -0.2em;
+ content: "\00a0"; }
+
+/* line 91, main.scss */
+#search-panel {
+ height: 64px;
+ width: 100%;
+ background-color: #ffffff;
+ box-shadow: 0 0 2px rgba(0, 0, 0, 0.2);
+ position: absolute;
+ z-index: 7; }
+ /* line 98, main.scss */
+ #search-panel.top-fixed {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.2); }
+ /* line 105, main.scss */
+ #search-panel .container {
+ display: -ms-flexbox;
+ display: -webkit-flex;
+ display: flex;
+ -ms-flex-direction: row;
+ -webkit-flex-direction: row;
+ flex-direction: row;
+ -ms-flex-align: center;
+ -webkit-align-items: center;
+ align-items: center;
+ height: 100%; }
+ /* line 117, main.scss */
+ #search-panel .search-icon {
+ display: inline-block;
+ vertical-align: middle;
+ background-repeat: no-repeat;
+ fill: currentcolor;
+ position: relative;
+ opacity: 0.5; }
+ /* line 124, main.scss */
+ #search-panel .search-icon, #search-panel .search-icon .mdi {
+ height: 24px;
+ width: 24px;
+ font-size: 24px; }
+ /* line 129, main.scss */
+ #search-panel .search-icon.clear-icon {
+ cursor: pointer; }
+ /* line 131, main.scss */
+ #search-panel .search-icon.clear-icon:hover {
+ opacity: 1; }
+ /* line 136, main.scss */
+ #search-panel #search {
+ color: #434343;
+ font-size: 20px;
+ margin-left: 16px;
+ padding: 8px 0;
+ width: auto;
+ border: none;
+ outline: none;
+ -ms-flex: 1 1 0.000000001px;
+ -webkit-flex: 1;
+ flex: 1;
+ -webkit-flex-basis: 0.000000001px;
+ flex-basis: 0.000000001px; }
+
+/* line 152, main.scss */
+#grid-container {
+ padding: 0 0 70px;
+ min-height: 900px;
+ margin-top: 67px; }
+ /* line 156, main.scss */
+ #grid-container .grid {
+ margin: 20px -15px 0 -15px; }
+ /* line 158, main.scss */
+ #grid-container .grid:after {
+ clear: both;
+ display: table;
+ content: " "; }
+ /* line 164, main.scss */
+ #grid-container:after {
+ clear: both;
+ display: table;
+ content: " "; }
+ /* line 169, main.scss */
+ #grid-container h2 {
+ color: #a2a2a2;
+ font-size: 16px;
+ font-weight: normal;
+ display: block;
+ border-top: 1px solid rgba(0, 0, 0, 0.08);
+ padding: 67px 0 0;
+ margin: 47px 0 10px; }
+ /* line 178, main.scss */
+ #grid-container .no-results {
+ text-align: center;
+ color: #909090;
+ font-size: 24px;
+ padding: 150px 0; }
+ /* line 184, main.scss */
+ #grid-container .item-container {
+ display: block;
+ width: 112px;
+ height: 120px;
+ margin: 0 10px 5px;
+ padding: 20px 0 0;
+ cursor: pointer;
+ background: transparent;
+ float: left;
+ transition: background 200ms ease-out;
+ border-radius: 2px; }
+ /* line 195, main.scss */
+ #grid-container .item-container:hover {
+ background: #f2f2f2; }
+ /* line 198, main.scss */
+ #grid-container .item-container.selected {
+ background: #e0e0e0; }
+ /* line 201, main.scss */
+ #grid-container .item-container .item {
+ -ms-flex-align: center;
+ -webkit-align-items: center;
+ align-items: center;
+ -ms-flex-direction: column;
+ -webkit-flex-direction: column;
+ flex-direction: column;
+ display: -ms-flexbox;
+ display: -webkit-flex;
+ display: flex;
+ position: relative; }
+ /* line 212, main.scss */
+ #grid-container .item-container .item .new-badge {
+ position: absolute;
+ right: 8px;
+ top: -12px;
+ padding: 2px 3px;
+ border-radius: 2px;
+ background: #fe6363;
+ color: #fff;
+ font-size: 10px;
+ font-weight: 500; }
+ /* line 223, main.scss */
+ #grid-container .item-container .item .mdi {
+ font-size: 48px;
+ width: 48px;
+ height: 48px;
+ color: #757575; }
+ /* line 229, main.scss */
+ #grid-container .item-container .item .caption {
+ color: #757575;
+ font-size: 11px;
+ margin-top: 16px;
+ overflow: hidden;
+ text-align: center;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ width: 100px;
+ z-index: 1; }
+
+/* line 244, main.scss */
+#snackbar {
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ z-index: 5; }
+ /* line 250, main.scss */
+ #snackbar .snackbar-header {
+ color: #fff;
+ height: 64px;
+ background-color: #03a9f4;
+ padding: 19px 20px 20px;
+ line-height: 26px;
+ overflow: hidden; }
+ /* line 257, main.scss */
+ #snackbar .snackbar-header .mdi {
+ width: 24px;
+ height: 24px;
+ font-size: 24px;
+ float: left; }
+ /* line 263, main.scss */
+ #snackbar .snackbar-header .caption {
+ font-size: 16px;
+ margin-left: 15px; }
+ /* line 267, main.scss */
+ #snackbar .snackbar-header .right-side {
+ display: none;
+ float: right; }
+ /* line 270, main.scss */
+ #snackbar .snackbar-header .right-side .mdi {
+ font-size: 22px;
+ margin-top: 1px; }
+ /* line 274, main.scss */
+ #snackbar .snackbar-header .right-side .caption {
+ font-weight: 500;
+ margin-left: 10px;
+ text-transform: uppercase;
+ font-size: 14px; }
+ /* line 282, main.scss */
+ #snackbar p, #snackbar p a, #snackbar .code {
+ font-family: 'Roboto Mono', monospace;
+ font-size: 13px;
+ line-height: 24px;
+ background-color: #eee; }
+ /* line 288, main.scss */
+ #snackbar .code {
+ color: #434343;
+ border: 0;
+ cursor: default;
+ display: block;
+ outline: none;
+ padding: 0;
+ height: 24px;
+ resize: none;
+ width: 100%;
+ white-space: nowrap;
+ overflow: hidden; }
+ /* line 300, main.scss */
+ #snackbar .code.comment {
+ opacity: 0.5; }
+ /* line 304, main.scss */
+ #snackbar .snackbar-content {
+ background-color: #eee;
+ padding: 8px 24px;
+ overflow: hidden;
+ -webkit-transition: -webkit-transform 200ms cubic-bezier(0.4, 0, 0.2, 1);
+ transition: transform 200ms cubic-bezier(0.4, 0, 0.2, 1);
+ box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.1); }
+ /* line 311, main.scss */
+ #snackbar .snackbar-content h2, #snackbar .snackbar-content p {
+ font-size: 13px;
+ line-height: 24px;
+ font-family: 'Roboto Mono', monospace; }
+ /* line 316, main.scss */
+ #snackbar .snackbar-content h2 {
+ color: #02a8f3;
+ display: inline-block;
+ font-weight: 500;
+ margin: 0; }
+ /* line 322, main.scss */
+ #snackbar .snackbar-content p {
+ margin: 0;
+ color: #434343; }
+ /* line 326, main.scss */
+ #snackbar .snackbar-content .col {
+ margin: 16px 0; }
+ /* line 330, main.scss */
+ #snackbar .snackbar-header, #snackbar .snackbar-content {
+ margin: 0 -20px 0; }
+
+/* line 335, main.scss */
+#footer {
+ background: #EEE;
+ padding: 20px 0;
+ min-height: 120px; }
+
+@media (min-width: 500px) {
+ /* line 343, main.scss */
+ #snackbar .snackbar-content .col {
+ margin: 16px 40px 16px 0; }
+ /* line 346, main.scss */
+ #snackbar .snackbar-header .right-side {
+ display: block; } }
+@media (min-width: 800px) {
+ /* line 353, main.scss */
+ .flex {
+ -ms-flex-direction: row;
+ -webkit-flex-direction: row;
+ flex-direction: row;
+ display: -ms-flexbox;
+ display: -webkit-flex;
+ display: flex; }
+
+ /* line 361, main.scss */
+ .col {
+ width: 50%; }
+
+ /* line 364, main.scss */
+ .container {
+ padding: 0 35px;
+ margin: 0 auto; }
+
+ /* line 368, main.scss */
+ .snackbar-header, .snackbar-content {
+ margin: 0 -10px 0; }
+
+ /* line 371, main.scss */
+ #grid-container .grid {
+ margin: 20px -30px 0 -15px; } }
+@media (min-width: 950px) {
+ /* line 377, main.scss */
+ .col {
+ width: 45%; } }
+@media (min-width: 1100px) {
+ /* line 383, main.scss */
+ .col {
+ width: 40%; } }
+@media (min-width: 1240px) {
+ /* line 389, main.scss */
+ .container {
+ width: 1226px; } }
diff --git a/vendor/mervick/material-design-icons/demo/style/main.scss b/vendor/mervick/material-design-icons/demo/style/main.scss
new file mode 100644
index 000000000..15e1484b3
--- /dev/null
+++ b/vendor/mervick/material-design-icons/demo/style/main.scss
@@ -0,0 +1,392 @@
+@import "compass/css3";
+
+html, body {
+ background-color: #f9f9f9;
+ border: 0;
+ padding: 0;
+ margin: 0;
+ height: 100%;
+ width: 100%;
+ color: #444;
+ font-family: RobotoDraft, Roboto, sans-serif;
+ font-size: 14px;
+ -webkit-font-smoothing: antialiased;
+}
+
+*, *:before, *:after {
+ @include box-sizing(border-box);
+}
+
+* {
+ font-family: RobotoDraft, Roboto, sans-serif;
+}
+
+a {
+ color: #02a8f3;
+ text-decoration: none;
+ &:hover {
+ text-decoration: underline;
+ }
+ &, &:hover {
+ outline: 0;
+ }
+}
+
+#head-panel {
+ background-color: #03a9f4;
+ padding: 30px 0 20px;
+ h1 {
+ color: #fff;
+ font-size: 50px;
+ font-weight: normal;
+ margin: 0 0 10px 0;
+ display: inline-block;
+ &:after {
+ letter-spacing: 0.5em;
+ content: "\00a0";
+ }
+ }
+ .buttons {
+ display: inline-block;
+ color: transparent;
+ }
+}
+
+.container {
+ width: 100%;
+ padding: 0 20px;
+ height: 100%;
+}
+
+.wrap {
+ min-height: 100%;
+ height: auto;
+ margin: 0 auto -120px;
+ padding: 0 0 160px;
+}
+
+.content {
+ margin: 120px 0 40px;
+ p {
+ line-height: 36px;
+ font-size: 20px;
+ margin-top: 2px;
+ margin-bottom: 10px;
+ }
+ code {
+ padding: 0;
+ padding-top: 0.2em;
+ padding-bottom: 0.2em;
+ margin: 0;
+ font-size: 85%;
+ background-color: rgba(0,0,0,0.04);
+ border-radius: 3px;
+ &:before, &:after {
+ letter-spacing: -0.2em;
+ content: "\00a0";
+ }
+ }
+}
+
+#search-panel {
+ height: 64px;
+ width: 100%;
+ background-color: #ffffff;
+ box-shadow: 0 0 2px rgba(0,0,0,.2);
+ position: absolute;
+ z-index: 7;
+ &.top-fixed {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.2);;
+ }
+ .container {
+ display: -ms-flexbox;
+ display: -webkit-flex;
+ display: flex;
+ -ms-flex-direction: row;
+ -webkit-flex-direction: row;
+ flex-direction: row;
+ -ms-flex-align: center;
+ -webkit-align-items: center;
+ align-items: center;
+ height: 100%;
+ }
+ .search-icon {
+ display: inline-block;
+ vertical-align: middle;
+ background-repeat: no-repeat;
+ fill: currentcolor;
+ position: relative;
+ opacity: 0.5;
+ &, .mdi {
+ height: 24px;
+ width: 24px;
+ font-size: 24px;
+ }
+ &.clear-icon {
+ cursor: pointer;
+ &:hover {
+ opacity: 1;
+ }
+ }
+ }
+ #search {
+ color: #434343;
+ font-size: 20px;
+ margin-left: 16px;
+ padding: 8px 0;
+ width: auto;
+ border: none;
+ outline: none;
+ -ms-flex: 1 1 0.000000001px;
+ -webkit-flex: 1;
+ flex: 1;
+ -webkit-flex-basis: 0.000000001px;
+ flex-basis: 0.000000001px;
+ }
+}
+
+#grid-container {
+ padding: 0 0 70px;
+ min-height: 900px;
+ margin-top: 67px;
+ .grid {
+ margin: 20px -15px 0 -15px;
+ &:after {
+ clear: both;
+ display: table;
+ content: " ";
+ }
+ }
+ &:after {
+ clear: both;
+ display: table;
+ content: " ";
+ }
+ h2 {
+ color: #a2a2a2;
+ font-size: 16px;
+ font-weight: normal;
+ display: block;
+ border-top: 1px solid rgba(0, 0, 0, 0.08);
+ padding: 67px 0 0;
+ margin: 47px 0 10px;
+ }
+ .no-results {
+ text-align: center;
+ color: #909090;
+ font-size: 24px;
+ padding: 150px 0;
+ }
+ .item-container {
+ display: block;
+ width: 112px;
+ height: 120px;
+ margin: 0 10px 5px;
+ padding: 20px 0 0;
+ cursor: pointer;
+ background: transparent;
+ float: left;
+ transition: background 200ms ease-out;
+ border-radius: 2px;
+ &:hover {
+ background: #f2f2f2;
+ }
+ &.selected {
+ background: #e0e0e0;
+ }
+ .item {
+ -ms-flex-align: center;
+ -webkit-align-items: center;
+ align-items: center;
+ -ms-flex-direction: column;
+ -webkit-flex-direction: column;
+ flex-direction: column;
+ display: -ms-flexbox;
+ display: -webkit-flex;
+ display: flex;
+ position: relative;
+ .new-badge {
+ position: absolute;
+ right: 8px;
+ top: -12px;
+ padding: 2px 3px;
+ border-radius: 2px;
+ background: #fe6363;
+ color: #fff;
+ font-size: 10px;
+ font-weight: 500;
+ }
+ .mdi {
+ font-size: 48px;
+ width: 48px;
+ height: 48px;
+ color: #757575;
+ }
+ .caption {
+ color: #757575;
+ font-size: 11px;
+ margin-top: 16px;
+ overflow: hidden;
+ text-align: center;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ width: 100px;
+ z-index: 1;
+ }
+ }
+ }
+}
+
+#snackbar {
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ z-index: 5;
+ .snackbar-header {
+ color: #fff;
+ height: 64px;
+ background-color: #03a9f4;
+ padding: 19px 20px 20px;
+ line-height: 26px;
+ overflow: hidden;
+ .mdi {
+ width: 24px;
+ height: 24px;
+ font-size: 24px;
+ float: left;
+ }
+ .caption {
+ font-size: 16px;
+ margin-left: 15px;
+ }
+ .right-side {
+ display: none;
+ float: right;
+ .mdi {
+ font-size: 22px;
+ margin-top: 1px;
+ }
+ .caption {
+ font-weight: 500;
+ margin-left: 10px;
+ text-transform: uppercase;
+ font-size: 14px;
+ }
+ }
+ }
+ p, p a, .code {
+ font-family: 'Roboto Mono', monospace;
+ font-size: 13px;
+ line-height: 24px;
+ background-color: #eee;
+ }
+ .code {
+ color: #434343;
+ border: 0;
+ cursor: default;
+ display: block;
+ outline: none;
+ padding: 0;
+ height: 24px;
+ resize: none;
+ width: 100%;
+ white-space: nowrap;
+ overflow: hidden;
+ &.comment {
+ opacity: 0.5;
+ }
+ }
+ .snackbar-content {
+ background-color: #eee;
+ padding: 8px 24px;
+ overflow: hidden;
+ -webkit-transition: -webkit-transform 200ms cubic-bezier(0.4, 0, 0.2, 1);
+ transition: transform 200ms cubic-bezier(0.4, 0, 0.2, 1);
+ box-shadow: 0 -2px 5px rgba(0,0,0,.1);
+ h2, p {
+ font-size: 13px;
+ line-height: 24px;
+ font-family: 'Roboto Mono', monospace;
+ }
+ h2 {
+ color: #02a8f3;
+ display: inline-block;
+ font-weight: 500;
+ margin: 0;
+ }
+ p {
+ margin: 0;
+ color: #434343;
+ }
+ .col {
+ margin: 16px 0;
+ }
+ }
+ .snackbar-header, .snackbar-content {
+ margin: 0 -20px 0;
+ }
+}
+
+#footer {
+ background: #EEE;
+ padding: 20px 0;
+ min-height: 120px;
+}
+
+@media (min-width: 500px) {
+ #snackbar {
+ .snackbar-content .col {
+ margin: 16px 40px 16px 0;
+ }
+ .snackbar-header .right-side {
+ display: block;
+ }
+ }
+}
+
+@media (min-width: 800px) {
+ .flex {
+ -ms-flex-direction: row;
+ -webkit-flex-direction: row;
+ flex-direction: row;
+ display: -ms-flexbox;
+ display: -webkit-flex;
+ display: flex;
+ }
+ .col {
+ width: 50%;
+ }
+ .container {
+ padding: 0 35px;
+ margin: 0 auto;
+ }
+ .snackbar-header, .snackbar-content {
+ margin: 0 -10px 0;
+ }
+ #grid-container .grid {
+ margin: 20px -30px 0 -15px;
+ }
+}
+
+@media (min-width: 950px) {
+ .col {
+ width: 45%;
+ }
+}
+
+@media (min-width: 1100px) {
+ .col {
+ width: 40%;
+ }
+}
+
+@media (min-width: 1240px) {
+ .container {
+ width: 1226px;
+ }
+} \ No newline at end of file
diff --git a/vendor/mervick/material-design-icons/fonts/LICENSE.txt b/vendor/mervick/material-design-icons/fonts/LICENSE.txt
new file mode 100644
index 000000000..dc8853a70
--- /dev/null
+++ b/vendor/mervick/material-design-icons/fonts/LICENSE.txt
@@ -0,0 +1,393 @@
+Attribution 4.0 International
+
+=======================================================================
+
+Creative Commons Corporation ("Creative Commons") is not a law firm and
+does not provide legal services or legal advice. Distribution of
+Creative Commons public licenses does not create a lawyer-client or
+other relationship. Creative Commons makes its licenses and related
+information available on an "as-is" basis. Creative Commons gives no
+warranties regarding its licenses, any material licensed under their
+terms and conditions, or any related information. Creative Commons
+disclaims all liability for damages resulting from their use to the
+fullest extent possible.
+
+Using Creative Commons Public Licenses
+
+Creative Commons public licenses provide a standard set of terms and
+conditions that creators and other rights holders may use to share
+original works of authorship and other material subject to copyright
+and certain other rights specified in the public license below. The
+following considerations are for informational purposes only, are not
+exhaustive, and do not form part of our licenses.
+
+ Considerations for licensors: Our public licenses are
+ intended for use by those authorized to give the public
+ permission to use material in ways otherwise restricted by
+ copyright and certain other rights. Our licenses are
+ irrevocable. Licensors should read and understand the terms
+ and conditions of the license they choose before applying it.
+ Licensors should also secure all rights necessary before
+ applying our licenses so that the public can reuse the
+ material as expected. Licensors should clearly mark any
+ material not subject to the license. This includes other CC-
+ licensed material, or material used under an exception or
+ limitation to copyright. More considerations for licensors:
+ wiki.creativecommons.org/Considerations_for_licensors
+
+ Considerations for the public: By using one of our public
+ licenses, a licensor grants the public permission to use the
+ licensed material under specified terms and conditions. If
+ the licensor's permission is not necessary for any reason--for
+ example, because of any applicable exception or limitation to
+ copyright--then that use is not regulated by the license. Our
+ licenses grant only permissions under copyright and certain
+ other rights that a licensor has authority to grant. Use of
+ the licensed material may still be restricted for other
+ reasons, including because others have copyright or other
+ rights in the material. A licensor may make special requests,
+ such as asking that all changes be marked or described.
+ Although not required by our licenses, you are encouraged to
+ respect those requests where reasonable. More_considerations
+ for the public:
+ wiki.creativecommons.org/Considerations_for_licensees
+
+=======================================================================
+
+Creative Commons Attribution 4.0 International Public License
+
+By exercising the Licensed Rights (defined below), You accept and agree
+to be bound by the terms and conditions of this Creative Commons
+Attribution 4.0 International Public License ("Public License"). To the
+extent this Public License may be interpreted as a contract, You are
+granted the Licensed Rights in consideration of Your acceptance of
+these terms and conditions, and the Licensor grants You such rights in
+consideration of benefits the Licensor receives from making the
+Licensed Material available under these terms and conditions.
+
+
+Section 1 -- Definitions.
+
+ a. Adapted Material means material subject to Copyright and Similar
+ Rights that is derived from or based upon the Licensed Material
+ and in which the Licensed Material is translated, altered,
+ arranged, transformed, or otherwise modified in a manner requiring
+ permission under the Copyright and Similar Rights held by the
+ Licensor. For purposes of this Public License, where the Licensed
+ Material is a musical work, performance, or sound recording,
+ Adapted Material is always produced where the Licensed Material is
+ synched in timed relation with a moving image.
+
+ b. Adapter's License means the license You apply to Your Copyright
+ and Similar Rights in Your contributions to Adapted Material in
+ accordance with the terms and conditions of this Public License.
+
+ c. Copyright and Similar Rights means copyright and/or similar rights
+ closely related to copyright including, without limitation,
+ performance, broadcast, sound recording, and Sui Generis Database
+ Rights, without regard to how the rights are labeled or
+ categorized. For purposes of this Public License, the rights
+ specified in Section 2(b)(1)-(2) are not Copyright and Similar
+ Rights.
+
+ d. Effective Technological Measures means those measures that, in the
+ absence of proper authority, may not be circumvented under laws
+ fulfilling obligations under Article 11 of the WIPO Copyright
+ Treaty adopted on December 20, 1996, and/or similar international
+ agreements.
+
+ e. Exceptions and Limitations means fair use, fair dealing, and/or
+ any other exception or limitation to Copyright and Similar Rights
+ that applies to Your use of the Licensed Material.
+
+ f. Licensed Material means the artistic or literary work, database,
+ or other material to which the Licensor applied this Public
+ License.
+
+ g. Licensed Rights means the rights granted to You subject to the
+ terms and conditions of this Public License, which are limited to
+ all Copyright and Similar Rights that apply to Your use of the
+ Licensed Material and that the Licensor has authority to license.
+
+ h. Licensor means the individual(s) or entity(ies) granting rights
+ under this Public License.
+
+ i. Share means to provide material to the public by any means or
+ process that requires permission under the Licensed Rights, such
+ as reproduction, public display, public performance, distribution,
+ dissemination, communication, or importation, and to make material
+ available to the public including in ways that members of the
+ public may access the material from a place and at a time
+ individually chosen by them.
+
+ j. Sui Generis Database Rights means rights other than copyright
+ resulting from Directive 96/9/EC of the European Parliament and of
+ the Council of 11 March 1996 on the legal protection of databases,
+ as amended and/or succeeded, as well as other essentially
+ equivalent rights anywhere in the world.
+
+ k. You means the individual or entity exercising the Licensed Rights
+ under this Public License. Your has a corresponding meaning.
+
+
+Section 2 -- Scope.
+
+ a. License grant.
+
+ 1. Subject to the terms and conditions of this Public License,
+ the Licensor hereby grants You a worldwide, royalty-free,
+ non-sublicensable, non-exclusive, irrevocable license to
+ exercise the Licensed Rights in the Licensed Material to:
+
+ a. reproduce and Share the Licensed Material, in whole or
+ in part; and
+
+ b. produce, reproduce, and Share Adapted Material.
+
+ 2. Exceptions and Limitations. For the avoidance of doubt, where
+ Exceptions and Limitations apply to Your use, this Public
+ License does not apply, and You do not need to comply with
+ its terms and conditions.
+
+ 3. Term. The term of this Public License is specified in Section
+ 6(a).
+
+ 4. Media and formats; technical modifications allowed. The
+ Licensor authorizes You to exercise the Licensed Rights in
+ all media and formats whether now known or hereafter created,
+ and to make technical modifications necessary to do so. The
+ Licensor waives and/or agrees not to assert any right or
+ authority to forbid You from making technical modifications
+ necessary to exercise the Licensed Rights, including
+ technical modifications necessary to circumvent Effective
+ Technological Measures. For purposes of this Public License,
+ simply making modifications authorized by this Section 2(a)
+ (4) never produces Adapted Material.
+
+ 5. Downstream recipients.
+
+ a. Offer from the Licensor -- Licensed Material. Every
+ recipient of the Licensed Material automatically
+ receives an offer from the Licensor to exercise the
+ Licensed Rights under the terms and conditions of this
+ Public License.
+
+ b. No downstream restrictions. You may not offer or impose
+ any additional or different terms or conditions on, or
+ apply any Effective Technological Measures to, the
+ Licensed Material if doing so restricts exercise of the
+ Licensed Rights by any recipient of the Licensed
+ Material.
+
+ 6. No endorsement. Nothing in this Public License constitutes or
+ may be construed as permission to assert or imply that You
+ are, or that Your use of the Licensed Material is, connected
+ with, or sponsored, endorsed, or granted official status by,
+ the Licensor or others designated to receive attribution as
+ provided in Section 3(a)(1)(A)(i).
+
+ b. Other rights.
+
+ 1. Moral rights, such as the right of integrity, are not
+ licensed under this Public License, nor are publicity,
+ privacy, and/or other similar personality rights; however, to
+ the extent possible, the Licensor waives and/or agrees not to
+ assert any such rights held by the Licensor to the limited
+ extent necessary to allow You to exercise the Licensed
+ Rights, but not otherwise.
+
+ 2. Patent and trademark rights are not licensed under this
+ Public License.
+
+ 3. To the extent possible, the Licensor waives any right to
+ collect royalties from You for the exercise of the Licensed
+ Rights, whether directly or through a collecting society
+ under any voluntary or waivable statutory or compulsory
+ licensing scheme. In all other cases the Licensor expressly
+ reserves any right to collect such royalties.
+
+
+Section 3 -- License Conditions.
+
+Your exercise of the Licensed Rights is expressly made subject to the
+following conditions.
+
+ a. Attribution.
+
+ 1. If You Share the Licensed Material (including in modified
+ form), You must:
+
+ a. retain the following if it is supplied by the Licensor
+ with the Licensed Material:
+
+ i. identification of the creator(s) of the Licensed
+ Material and any others designated to receive
+ attribution, in any reasonable manner requested by
+ the Licensor (including by pseudonym if
+ designated);
+
+ ii. a copyright notice;
+
+ iii. a notice that refers to this Public License;
+
+ iv. a notice that refers to the disclaimer of
+ warranties;
+
+ v. a URI or hyperlink to the Licensed Material to the
+ extent reasonably practicable;
+
+ b. indicate if You modified the Licensed Material and
+ retain an indication of any previous modifications; and
+
+ c. indicate the Licensed Material is licensed under this
+ Public License, and include the text of, or the URI or
+ hyperlink to, this Public License.
+
+ 2. You may satisfy the conditions in Section 3(a)(1) in any
+ reasonable manner based on the medium, means, and context in
+ which You Share the Licensed Material. For example, it may be
+ reasonable to satisfy the conditions by providing a URI or
+ hyperlink to a resource that includes the required
+ information.
+
+ 3. If requested by the Licensor, You must remove any of the
+ information required by Section 3(a)(1)(A) to the extent
+ reasonably practicable.
+
+ 4. If You Share Adapted Material You produce, the Adapter's
+ License You apply must not prevent recipients of the Adapted
+ Material from complying with this Public License.
+
+
+Section 4 -- Sui Generis Database Rights.
+
+Where the Licensed Rights include Sui Generis Database Rights that
+apply to Your use of the Licensed Material:
+
+ a. for the avoidance of doubt, Section 2(a)(1) grants You the right
+ to extract, reuse, reproduce, and Share all or a substantial
+ portion of the contents of the database;
+
+ b. if You include all or a substantial portion of the database
+ contents in a database in which You have Sui Generis Database
+ Rights, then the database in which You have Sui Generis Database
+ Rights (but not its individual contents) is Adapted Material; and
+
+ c. You must comply with the conditions in Section 3(a) if You Share
+ all or a substantial portion of the contents of the database.
+
+For the avoidance of doubt, this Section 4 supplements and does not
+replace Your obligations under this Public License where the Licensed
+Rights include other Copyright and Similar Rights.
+
+
+Section 5 -- Disclaimer of Warranties and Limitation of Liability.
+
+ a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
+ EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
+ AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
+ ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
+ IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
+ WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
+ ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
+ KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
+ ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
+
+ b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
+ TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
+ NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
+ INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
+ COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
+ USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
+ ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
+ DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
+ IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
+
+ c. The disclaimer of warranties and limitation of liability provided
+ above shall be interpreted in a manner that, to the extent
+ possible, most closely approximates an absolute disclaimer and
+ waiver of all liability.
+
+
+Section 6 -- Term and Termination.
+
+ a. This Public License applies for the term of the Copyright and
+ Similar Rights licensed here. However, if You fail to comply with
+ this Public License, then Your rights under this Public License
+ terminate automatically.
+
+ b. Where Your right to use the Licensed Material has terminated under
+ Section 6(a), it reinstates:
+
+ 1. automatically as of the date the violation is cured, provided
+ it is cured within 30 days of Your discovery of the
+ violation; or
+
+ 2. upon express reinstatement by the Licensor.
+
+ For the avoidance of doubt, this Section 6(b) does not affect any
+ right the Licensor may have to seek remedies for Your violations
+ of this Public License.
+
+ c. For the avoidance of doubt, the Licensor may also offer the
+ Licensed Material under separate terms or conditions or stop
+ distributing the Licensed Material at any time; however, doing so
+ will not terminate this Public License.
+
+ d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
+ License.
+
+
+Section 7 -- Other Terms and Conditions.
+
+ a. The Licensor shall not be bound by any additional or different
+ terms or conditions communicated by You unless expressly agreed.
+
+ b. Any arrangements, understandings, or agreements regarding the
+ Licensed Material not stated herein are separate from and
+ independent of the terms and conditions of this Public License.
+
+
+Section 8 -- Interpretation.
+
+ a. For the avoidance of doubt, this Public License does not, and
+ shall not be interpreted to, reduce, limit, restrict, or impose
+ conditions on any use of the Licensed Material that could lawfully
+ be made without permission under this Public License.
+
+ b. To the extent possible, if any provision of this Public License is
+ deemed unenforceable, it shall be automatically reformed to the
+ minimum extent necessary to make it enforceable. If the provision
+ cannot be reformed, it shall be severed from this Public License
+ without affecting the enforceability of the remaining terms and
+ conditions.
+
+ c. No term or condition of this Public License will be waived and no
+ failure to comply consented to unless expressly agreed to by the
+ Licensor.
+
+ d. Nothing in this Public License constitutes or may be interpreted
+ as a limitation upon, or waiver of, any privileges and immunities
+ that apply to the Licensor or You, including from the legal
+ processes of any jurisdiction or authority.
+
+
+=======================================================================
+
+Creative Commons is not a party to its public licenses.
+Notwithstanding, Creative Commons may elect to apply one of its public
+licenses to material it publishes and in those instances will be
+considered the "Licensor." Except for the limited purpose of indicating
+that material is shared under a Creative Commons public license or as
+otherwise permitted by the Creative Commons policies published at
+creativecommons.org/policies, Creative Commons does not authorize the
+use of the trademark "Creative Commons" or any other trademark or logo
+of Creative Commons without its prior written consent including,
+without limitation, in connection with any unauthorized modifications
+to any of its public licenses or any other arrangements,
+understandings, or agreements concerning use of licensed material. For
+the avoidance of doubt, this paragraph does not form part of the public
+licenses.
+
+Creative Commons may be contacted at creativecommons.org.
diff --git a/lib/iconfont/MaterialIcons-Regular.eot b/vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.eot
index 70508ebab..70508ebab 100644
--- a/lib/iconfont/MaterialIcons-Regular.eot
+++ b/vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.eot
Binary files differ
diff --git a/lib/iconfont/MaterialIcons-Regular.svg b/vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.svg
index a449327e2..a449327e2 100644
--- a/lib/iconfont/MaterialIcons-Regular.svg
+++ b/vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.svg
diff --git a/lib/iconfont/MaterialIcons-Regular.ttf b/vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.ttf
index 7015564ad..7015564ad 100644
--- a/lib/iconfont/MaterialIcons-Regular.ttf
+++ b/vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.ttf
Binary files differ
diff --git a/vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.woff b/vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.woff
new file mode 100644
index 000000000..a0bfd17e7
--- /dev/null
+++ b/vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.woff
Binary files differ
diff --git a/vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.woff2 b/vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.woff2
new file mode 100644
index 000000000..c91d24334
--- /dev/null
+++ b/vendor/mervick/material-design-icons/fonts/MaterialIcons-Regular.woff2
Binary files differ
diff --git a/lib/iconfont/codepoints b/vendor/mervick/material-design-icons/fonts/codepoints
index 3c8b07507..3c8b07507 100644
--- a/lib/iconfont/codepoints
+++ b/vendor/mervick/material-design-icons/fonts/codepoints
diff --git a/vendor/mervick/material-design-icons/index.js b/vendor/mervick/material-design-icons/index.js
new file mode 100644
index 000000000..4a1d90117
--- /dev/null
+++ b/vendor/mervick/material-design-icons/index.js
@@ -0,0 +1,3 @@
+module.exports = {
+ STATIC_PATH: __dirname,
+};
diff --git a/vendor/mervick/material-design-icons/package.json b/vendor/mervick/material-design-icons/package.json
new file mode 100644
index 000000000..c35ad8c21
--- /dev/null
+++ b/vendor/mervick/material-design-icons/package.json
@@ -0,0 +1,44 @@
+{
+ "name": "bootstrap-material-icons",
+ "version": "2.2.0",
+ "description": "Google Material Design Icons For Using With Bootstrap",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/mervick/material-design-icons"
+ },
+ "main": "index.js",
+ "authors": [
+ {
+ "name": "Andrey Izman",
+ "email": "[email protected]"
+ }
+ ],
+ "keywords": [
+ "icons",
+ "material",
+ "material-design",
+ "google",
+ "icons-web-font",
+ "web-font",
+ "bootstrap"
+ ],
+ "style": "css/material-icons.min.css",
+ "license": "(MIT AND CC-BY-4.0)",
+ "bugs": {
+ "url": "http://github.com/mervick/material-design-icons/issues"
+ },
+ "homepage": "http://github.com/mervick/material-design-icons",
+ "devDependencies": {
+ "grunt": "^0.4.5",
+ "grunt-contrib-cssmin": "^0.14.0",
+ "grunt-contrib-sass": "^0.9.2",
+ "grunt-contrib-watch": "^0.6.1",
+ "gulp": "^3.9.0",
+ "gulp-changed": "^1.3.0",
+ "gulp-util": "^3.0.7",
+ "lodash": "^4.5.0",
+ "material-design-icons": "^2.2.0",
+ "through2": "^2.0.1",
+ "vinyl": "^1.1.1"
+ }
+}
diff --git a/vendor/mervick/material-design-icons/scripts/codepoints2scss.sh b/vendor/mervick/material-design-icons/scripts/codepoints2scss.sh
new file mode 100644
index 000000000..e89e68eed
--- /dev/null
+++ b/vendor/mervick/material-design-icons/scripts/codepoints2scss.sh
@@ -0,0 +1,30 @@
+#!/usr/bin/env bash
+
+pushd `dirname dirname $0` > /dev/null
+path=`pwd`
+popd > /dev/null
+
+codepoints_file="${path}/bower_components/material-design-icons/iconfont/codepoints"
+icons_scss_file="${path}/scss/_icons.scss"
+
+# default css prefix
+prefix_var_name="md-css-prefix"
+
+# clear the scss
+> "${icons_scss_file}"
+
+i=0
+while IFS='' read -r line || [[ -n "$line" ]]; do
+ IFS=' ' read -r -a icon <<< "$line"
+ if [ "${#icon[@]}" == 2 ] && [ -n "${icon}" ] && [ -n "${icon[1]}" ]; then
+ echo ".#{\$${prefix_var_name}}-$(echo ${icon} | sed -e 's/_/\-/g'):before { content: "'"'"\\${icon[1]}"'"'"; }" \
+ >> "${icons_scss_file}"
+ else
+ echo "ERROR: The file ${codepoints_file} has the invalid format on line $((i+1))" 1>&2
+ exit 1
+ fi
+ ((i++))
+done < "${codepoints_file}"
+
+echo "Successfully imported ${i} icons"
+exit 0 \ No newline at end of file
diff --git a/vendor/mervick/material-design-icons/scripts/updatedemo.php b/vendor/mervick/material-design-icons/scripts/updatedemo.php
new file mode 100644
index 000000000..bc7411467
--- /dev/null
+++ b/vendor/mervick/material-design-icons/scripts/updatedemo.php
@@ -0,0 +1,61 @@
+<?php
+
+$path = __DIR__ . '/../bower_components/material-design-icons';
+$out = __DIR__ . '/../demo/js/data.js';
+$codepoints = __DIR__ . '/../bower_components/material-design-icons/iconfont/codepoints';
+$oldcodepoints = __DIR__ . '/../fonts/codepoints';
+
+$start_js = 'window.data = ';
+$end_js = ';';
+
+//$categories = file_get_contents($out);
+//$categories = substr(substr($categories, strlen($start_js)), 0, - strlen($end_js));
+//$categories = json_decode($categories, true);
+//$categories = $categories ?: [];
+
+$categories = $icons = $old_icons = [];
+$count = $count_cats = 0;
+
+foreach (file($codepoints, FILE_IGNORE_NEW_LINES) as $code) {
+ $code = explode(' ', $code, 2);
+ $icons[$code[0]] = $code[1];
+}
+foreach (file($oldcodepoints, FILE_IGNORE_NEW_LINES) as $code) {
+ $code = explode(' ', $code, 2);
+ $old_icons[$code[0]] = $code[1];
+}
+
+foreach (array_diff(scandir($path), ['.', '..']) as $category) {
+ if (is_dir("$path/$category/svg/production")) {
+ $count_cats ++;
+ $categories[$category] = [];
+ foreach (array_diff(scandir("$path/$category/svg/production"), ['.', '..']) as $file) {
+ if (preg_match('/^ic_(.+?)_\d+px\.svg$/', $file, $match)) {
+ $icon = $match[1];
+ if (isset($icons[$icon])) {
+ if (!in_array($icons[$icon], $categories[$category])) {
+ $categories[$category][$icon] = $icons[$icon];
+ $count ++;
+ }
+ }
+ }
+ }
+ }
+}
+
+$new = 0;
+
+foreach ($categories as &$category) {
+ foreach ($category as $icon => &$code) {
+ $c = $code;
+ $code = [$c, !isset($old_icons[$icon])];
+ if (!isset($old_icons[$icon])) {
+ $new ++;
+ }
+ }
+}
+
+
+file_put_contents($out, $start_js . json_encode($categories) . $end_js);
+
+echo "Found $count icons, ($new new) in $count_cats categories\n"; \ No newline at end of file
diff --git a/vendor/mervick/material-design-icons/scss/_animated.scss b/vendor/mervick/material-design-icons/scss/_animated.scss
new file mode 100644
index 000000000..60476c2d8
--- /dev/null
+++ b/vendor/mervick/material-design-icons/scss/_animated.scss
@@ -0,0 +1,36 @@
+@import "variables";
+
+// Spinning Icons
+// --------------------------
+
+.#{$md-css-prefix}-spin {
+ -webkit-animation: md-spin 2s infinite linear;
+ animation: md-spin 2s infinite linear;
+}
+
+.#{$md-css-prefix}-pulse {
+ -webkit-animation: md-spin 1s infinite steps(8);
+ animation: md-spin 1s infinite steps(8);
+}
+
+@-webkit-keyframes md-spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(359deg);
+ transform: rotate(359deg);
+ }
+}
+
+@keyframes md-spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(359deg);
+ transform: rotate(359deg);
+ }
+}
diff --git a/vendor/mervick/material-design-icons/scss/_bordered-pulled.scss b/vendor/mervick/material-design-icons/scss/_bordered-pulled.scss
new file mode 100644
index 000000000..ad307fd39
--- /dev/null
+++ b/vendor/mervick/material-design-icons/scss/_bordered-pulled.scss
@@ -0,0 +1,18 @@
+@import "variables";
+
+// Bordered & Pulled
+// -------------------------
+
+.#{$md-css-prefix}-border {
+ padding: .2em .25em .15em;
+ border: solid .08em $md-border-color;
+ border-radius: .1em;
+}
+
+.pull-right { float: right; }
+.pull-left { float: left; }
+
+.#{$md-css-prefix} {
+ &.pull-left { margin-right: .3em; }
+ &.pull-right { margin-left: .3em; }
+}
diff --git a/vendor/mervick/material-design-icons/scss/_core.scss b/vendor/mervick/material-design-icons/scss/_core.scss
new file mode 100644
index 000000000..caeebdc34
--- /dev/null
+++ b/vendor/mervick/material-design-icons/scss/_core.scss
@@ -0,0 +1,30 @@
+@import "variables";
+
+// Base Class Definition
+// -------------------------
+
+.#{$md-css-prefix}, .material-icons {
+ font: normal normal normal #{$md-font-size-base}/1 $md-font-family; // shortening font declaration
+ font-size: inherit; // can't have font-size inherit on line above, so need to override
+ display: inline-block;
+ text-transform: none;
+ letter-spacing: normal;
+ line-height: 1;
+ position: relative;
+ word-wrap: normal;
+ top: 1px;
+ /* Support for all WebKit browsers. */
+ -webkit-font-smoothing: antialiased;
+ /* Support for Firefox. */
+ -moz-osx-font-smoothing: grayscale;
+ transform: translate(0, 0); // ensures no half-pixel rendering in firefox
+}
+
+.material-icons {
+ width: 1em;
+ height: 1em;
+ /* Support for Safari and Chrome. */
+ text-rendering: optimizeLegibility;
+ /* Support for IE. */
+ font-feature-settings: 'liga';
+} \ No newline at end of file
diff --git a/vendor/mervick/material-design-icons/scss/_fixed-width.scss b/vendor/mervick/material-design-icons/scss/_fixed-width.scss
new file mode 100644
index 000000000..078727c95
--- /dev/null
+++ b/vendor/mervick/material-design-icons/scss/_fixed-width.scss
@@ -0,0 +1,9 @@
+@import "variables";
+
+// Fixed Width Icons
+// -------------------------
+
+.#{$md-css-prefix}-fw {
+ width: (18em / 14);
+ text-align: center;
+}
diff --git a/vendor/mervick/material-design-icons/scss/_icons.scss b/vendor/mervick/material-design-icons/scss/_icons.scss
new file mode 100644
index 000000000..c8713b92e
--- /dev/null
+++ b/vendor/mervick/material-design-icons/scss/_icons.scss
@@ -0,0 +1,934 @@
+@import "variables";
+
+.#{$md-css-prefix}-3d-rotation:before { content: "\e84d"; }
+.#{$md-css-prefix}-ac-unit:before { content: "\eb3b"; }
+.#{$md-css-prefix}-access-alarm:before { content: "\e190"; }
+.#{$md-css-prefix}-access-alarms:before { content: "\e191"; }
+.#{$md-css-prefix}-access-time:before { content: "\e192"; }
+.#{$md-css-prefix}-accessibility:before { content: "\e84e"; }
+.#{$md-css-prefix}-accessible:before { content: "\e914"; }
+.#{$md-css-prefix}-account-balance:before { content: "\e84f"; }
+.#{$md-css-prefix}-account-balance-wallet:before { content: "\e850"; }
+.#{$md-css-prefix}-account-box:before { content: "\e851"; }
+.#{$md-css-prefix}-account-circle:before { content: "\e853"; }
+.#{$md-css-prefix}-adb:before { content: "\e60e"; }
+.#{$md-css-prefix}-add:before { content: "\e145"; }
+.#{$md-css-prefix}-add-a-photo:before { content: "\e439"; }
+.#{$md-css-prefix}-add-alarm:before { content: "\e193"; }
+.#{$md-css-prefix}-add-alert:before { content: "\e003"; }
+.#{$md-css-prefix}-add-box:before { content: "\e146"; }
+.#{$md-css-prefix}-add-circle:before { content: "\e147"; }
+.#{$md-css-prefix}-add-circle-outline:before { content: "\e148"; }
+.#{$md-css-prefix}-add-location:before { content: "\e567"; }
+.#{$md-css-prefix}-add-shopping-cart:before { content: "\e854"; }
+.#{$md-css-prefix}-add-to-photos:before { content: "\e39d"; }
+.#{$md-css-prefix}-add-to-queue:before { content: "\e05c"; }
+.#{$md-css-prefix}-adjust:before { content: "\e39e"; }
+.#{$md-css-prefix}-airline-seat-flat:before { content: "\e630"; }
+.#{$md-css-prefix}-airline-seat-flat-angled:before { content: "\e631"; }
+.#{$md-css-prefix}-airline-seat-individual-suite:before { content: "\e632"; }
+.#{$md-css-prefix}-airline-seat-legroom-extra:before { content: "\e633"; }
+.#{$md-css-prefix}-airline-seat-legroom-normal:before { content: "\e634"; }
+.#{$md-css-prefix}-airline-seat-legroom-reduced:before { content: "\e635"; }
+.#{$md-css-prefix}-airline-seat-recline-extra:before { content: "\e636"; }
+.#{$md-css-prefix}-airline-seat-recline-normal:before { content: "\e637"; }
+.#{$md-css-prefix}-airplanemode-active:before { content: "\e195"; }
+.#{$md-css-prefix}-airplanemode-inactive:before { content: "\e194"; }
+.#{$md-css-prefix}-airplay:before { content: "\e055"; }
+.#{$md-css-prefix}-airport-shuttle:before { content: "\eb3c"; }
+.#{$md-css-prefix}-alarm:before { content: "\e855"; }
+.#{$md-css-prefix}-alarm-add:before { content: "\e856"; }
+.#{$md-css-prefix}-alarm-off:before { content: "\e857"; }
+.#{$md-css-prefix}-alarm-on:before { content: "\e858"; }
+.#{$md-css-prefix}-album:before { content: "\e019"; }
+.#{$md-css-prefix}-all-inclusive:before { content: "\eb3d"; }
+.#{$md-css-prefix}-all-out:before { content: "\e90b"; }
+.#{$md-css-prefix}-android:before { content: "\e859"; }
+.#{$md-css-prefix}-announcement:before { content: "\e85a"; }
+.#{$md-css-prefix}-apps:before { content: "\e5c3"; }
+.#{$md-css-prefix}-archive:before { content: "\e149"; }
+.#{$md-css-prefix}-arrow-back:before { content: "\e5c4"; }
+.#{$md-css-prefix}-arrow-downward:before { content: "\e5db"; }
+.#{$md-css-prefix}-arrow-drop-down:before { content: "\e5c5"; }
+.#{$md-css-prefix}-arrow-drop-down-circle:before { content: "\e5c6"; }
+.#{$md-css-prefix}-arrow-drop-up:before { content: "\e5c7"; }
+.#{$md-css-prefix}-arrow-forward:before { content: "\e5c8"; }
+.#{$md-css-prefix}-arrow-upward:before { content: "\e5d8"; }
+.#{$md-css-prefix}-art-track:before { content: "\e060"; }
+.#{$md-css-prefix}-aspect-ratio:before { content: "\e85b"; }
+.#{$md-css-prefix}-assessment:before { content: "\e85c"; }
+.#{$md-css-prefix}-assignment:before { content: "\e85d"; }
+.#{$md-css-prefix}-assignment-ind:before { content: "\e85e"; }
+.#{$md-css-prefix}-assignment-late:before { content: "\e85f"; }
+.#{$md-css-prefix}-assignment-return:before { content: "\e860"; }
+.#{$md-css-prefix}-assignment-returned:before { content: "\e861"; }
+.#{$md-css-prefix}-assignment-turned-in:before { content: "\e862"; }
+.#{$md-css-prefix}-assistant:before { content: "\e39f"; }
+.#{$md-css-prefix}-assistant-photo:before { content: "\e3a0"; }
+.#{$md-css-prefix}-attach-file:before { content: "\e226"; }
+.#{$md-css-prefix}-attach-money:before { content: "\e227"; }
+.#{$md-css-prefix}-attachment:before { content: "\e2bc"; }
+.#{$md-css-prefix}-audiotrack:before { content: "\e3a1"; }
+.#{$md-css-prefix}-autorenew:before { content: "\e863"; }
+.#{$md-css-prefix}-av-timer:before { content: "\e01b"; }
+.#{$md-css-prefix}-backspace:before { content: "\e14a"; }
+.#{$md-css-prefix}-backup:before { content: "\e864"; }
+.#{$md-css-prefix}-battery-alert:before { content: "\e19c"; }
+.#{$md-css-prefix}-battery-charging-full:before { content: "\e1a3"; }
+.#{$md-css-prefix}-battery-full:before { content: "\e1a4"; }
+.#{$md-css-prefix}-battery-std:before { content: "\e1a5"; }
+.#{$md-css-prefix}-battery-unknown:before { content: "\e1a6"; }
+.#{$md-css-prefix}-beach-access:before { content: "\eb3e"; }
+.#{$md-css-prefix}-beenhere:before { content: "\e52d"; }
+.#{$md-css-prefix}-block:before { content: "\e14b"; }
+.#{$md-css-prefix}-bluetooth:before { content: "\e1a7"; }
+.#{$md-css-prefix}-bluetooth-audio:before { content: "\e60f"; }
+.#{$md-css-prefix}-bluetooth-connected:before { content: "\e1a8"; }
+.#{$md-css-prefix}-bluetooth-disabled:before { content: "\e1a9"; }
+.#{$md-css-prefix}-bluetooth-searching:before { content: "\e1aa"; }
+.#{$md-css-prefix}-blur-circular:before { content: "\e3a2"; }
+.#{$md-css-prefix}-blur-linear:before { content: "\e3a3"; }
+.#{$md-css-prefix}-blur-off:before { content: "\e3a4"; }
+.#{$md-css-prefix}-blur-on:before { content: "\e3a5"; }
+.#{$md-css-prefix}-book:before { content: "\e865"; }
+.#{$md-css-prefix}-bookmark:before { content: "\e866"; }
+.#{$md-css-prefix}-bookmark-border:before { content: "\e867"; }
+.#{$md-css-prefix}-border-all:before { content: "\e228"; }
+.#{$md-css-prefix}-border-bottom:before { content: "\e229"; }
+.#{$md-css-prefix}-border-clear:before { content: "\e22a"; }
+.#{$md-css-prefix}-border-color:before { content: "\e22b"; }
+.#{$md-css-prefix}-border-horizontal:before { content: "\e22c"; }
+.#{$md-css-prefix}-border-inner:before { content: "\e22d"; }
+.#{$md-css-prefix}-border-left:before { content: "\e22e"; }
+.#{$md-css-prefix}-border-outer:before { content: "\e22f"; }
+.#{$md-css-prefix}-border-right:before { content: "\e230"; }
+.#{$md-css-prefix}-border-style:before { content: "\e231"; }
+.#{$md-css-prefix}-border-top:before { content: "\e232"; }
+.#{$md-css-prefix}-border-vertical:before { content: "\e233"; }
+.#{$md-css-prefix}-branding-watermark:before { content: "\e06b"; }
+.#{$md-css-prefix}-brightness-1:before { content: "\e3a6"; }
+.#{$md-css-prefix}-brightness-2:before { content: "\e3a7"; }
+.#{$md-css-prefix}-brightness-3:before { content: "\e3a8"; }
+.#{$md-css-prefix}-brightness-4:before { content: "\e3a9"; }
+.#{$md-css-prefix}-brightness-5:before { content: "\e3aa"; }
+.#{$md-css-prefix}-brightness-6:before { content: "\e3ab"; }
+.#{$md-css-prefix}-brightness-7:before { content: "\e3ac"; }
+.#{$md-css-prefix}-brightness-auto:before { content: "\e1ab"; }
+.#{$md-css-prefix}-brightness-high:before { content: "\e1ac"; }
+.#{$md-css-prefix}-brightness-low:before { content: "\e1ad"; }
+.#{$md-css-prefix}-brightness-medium:before { content: "\e1ae"; }
+.#{$md-css-prefix}-broken-image:before { content: "\e3ad"; }
+.#{$md-css-prefix}-brush:before { content: "\e3ae"; }
+.#{$md-css-prefix}-bubble-chart:before { content: "\e6dd"; }
+.#{$md-css-prefix}-bug-report:before { content: "\e868"; }
+.#{$md-css-prefix}-build:before { content: "\e869"; }
+.#{$md-css-prefix}-burst-mode:before { content: "\e43c"; }
+.#{$md-css-prefix}-business:before { content: "\e0af"; }
+.#{$md-css-prefix}-business-center:before { content: "\eb3f"; }
+.#{$md-css-prefix}-cached:before { content: "\e86a"; }
+.#{$md-css-prefix}-cake:before { content: "\e7e9"; }
+.#{$md-css-prefix}-call:before { content: "\e0b0"; }
+.#{$md-css-prefix}-call-end:before { content: "\e0b1"; }
+.#{$md-css-prefix}-call-made:before { content: "\e0b2"; }
+.#{$md-css-prefix}-call-merge:before { content: "\e0b3"; }
+.#{$md-css-prefix}-call-missed:before { content: "\e0b4"; }
+.#{$md-css-prefix}-call-missed-outgoing:before { content: "\e0e4"; }
+.#{$md-css-prefix}-call-received:before { content: "\e0b5"; }
+.#{$md-css-prefix}-call-split:before { content: "\e0b6"; }
+.#{$md-css-prefix}-call-to-action:before { content: "\e06c"; }
+.#{$md-css-prefix}-camera:before { content: "\e3af"; }
+.#{$md-css-prefix}-camera-alt:before { content: "\e3b0"; }
+.#{$md-css-prefix}-camera-enhance:before { content: "\e8fc"; }
+.#{$md-css-prefix}-camera-front:before { content: "\e3b1"; }
+.#{$md-css-prefix}-camera-rear:before { content: "\e3b2"; }
+.#{$md-css-prefix}-camera-roll:before { content: "\e3b3"; }
+.#{$md-css-prefix}-cancel:before { content: "\e5c9"; }
+.#{$md-css-prefix}-card-giftcard:before { content: "\e8f6"; }
+.#{$md-css-prefix}-card-membership:before { content: "\e8f7"; }
+.#{$md-css-prefix}-card-travel:before { content: "\e8f8"; }
+.#{$md-css-prefix}-casino:before { content: "\eb40"; }
+.#{$md-css-prefix}-cast:before { content: "\e307"; }
+.#{$md-css-prefix}-cast-connected:before { content: "\e308"; }
+.#{$md-css-prefix}-center-focus-strong:before { content: "\e3b4"; }
+.#{$md-css-prefix}-center-focus-weak:before { content: "\e3b5"; }
+.#{$md-css-prefix}-change-history:before { content: "\e86b"; }
+.#{$md-css-prefix}-chat:before { content: "\e0b7"; }
+.#{$md-css-prefix}-chat-bubble:before { content: "\e0ca"; }
+.#{$md-css-prefix}-chat-bubble-outline:before { content: "\e0cb"; }
+.#{$md-css-prefix}-check:before { content: "\e5ca"; }
+.#{$md-css-prefix}-check-box:before { content: "\e834"; }
+.#{$md-css-prefix}-check-box-outline-blank:before { content: "\e835"; }
+.#{$md-css-prefix}-check-circle:before { content: "\e86c"; }
+.#{$md-css-prefix}-chevron-left:before { content: "\e5cb"; }
+.#{$md-css-prefix}-chevron-right:before { content: "\e5cc"; }
+.#{$md-css-prefix}-child-care:before { content: "\eb41"; }
+.#{$md-css-prefix}-child-friendly:before { content: "\eb42"; }
+.#{$md-css-prefix}-chrome-reader-mode:before { content: "\e86d"; }
+.#{$md-css-prefix}-class:before { content: "\e86e"; }
+.#{$md-css-prefix}-clear:before { content: "\e14c"; }
+.#{$md-css-prefix}-clear-all:before { content: "\e0b8"; }
+.#{$md-css-prefix}-close:before { content: "\e5cd"; }
+.#{$md-css-prefix}-closed-caption:before { content: "\e01c"; }
+.#{$md-css-prefix}-cloud:before { content: "\e2bd"; }
+.#{$md-css-prefix}-cloud-circle:before { content: "\e2be"; }
+.#{$md-css-prefix}-cloud-done:before { content: "\e2bf"; }
+.#{$md-css-prefix}-cloud-download:before { content: "\e2c0"; }
+.#{$md-css-prefix}-cloud-off:before { content: "\e2c1"; }
+.#{$md-css-prefix}-cloud-queue:before { content: "\e2c2"; }
+.#{$md-css-prefix}-cloud-upload:before { content: "\e2c3"; }
+.#{$md-css-prefix}-code:before { content: "\e86f"; }
+.#{$md-css-prefix}-collections:before { content: "\e3b6"; }
+.#{$md-css-prefix}-collections-bookmark:before { content: "\e431"; }
+.#{$md-css-prefix}-color-lens:before { content: "\e3b7"; }
+.#{$md-css-prefix}-colorize:before { content: "\e3b8"; }
+.#{$md-css-prefix}-comment:before { content: "\e0b9"; }
+.#{$md-css-prefix}-compare:before { content: "\e3b9"; }
+.#{$md-css-prefix}-compare-arrows:before { content: "\e915"; }
+.#{$md-css-prefix}-computer:before { content: "\e30a"; }
+.#{$md-css-prefix}-confirmation-number:before { content: "\e638"; }
+.#{$md-css-prefix}-contact-mail:before { content: "\e0d0"; }
+.#{$md-css-prefix}-contact-phone:before { content: "\e0cf"; }
+.#{$md-css-prefix}-contacts:before { content: "\e0ba"; }
+.#{$md-css-prefix}-content-copy:before { content: "\e14d"; }
+.#{$md-css-prefix}-content-cut:before { content: "\e14e"; }
+.#{$md-css-prefix}-content-paste:before { content: "\e14f"; }
+.#{$md-css-prefix}-control-point:before { content: "\e3ba"; }
+.#{$md-css-prefix}-control-point-duplicate:before { content: "\e3bb"; }
+.#{$md-css-prefix}-copyright:before { content: "\e90c"; }
+.#{$md-css-prefix}-create:before { content: "\e150"; }
+.#{$md-css-prefix}-create-new-folder:before { content: "\e2cc"; }
+.#{$md-css-prefix}-credit-card:before { content: "\e870"; }
+.#{$md-css-prefix}-crop:before { content: "\e3be"; }
+.#{$md-css-prefix}-crop-16-9:before { content: "\e3bc"; }
+.#{$md-css-prefix}-crop-3-2:before { content: "\e3bd"; }
+.#{$md-css-prefix}-crop-5-4:before { content: "\e3bf"; }
+.#{$md-css-prefix}-crop-7-5:before { content: "\e3c0"; }
+.#{$md-css-prefix}-crop-din:before { content: "\e3c1"; }
+.#{$md-css-prefix}-crop-free:before { content: "\e3c2"; }
+.#{$md-css-prefix}-crop-landscape:before { content: "\e3c3"; }
+.#{$md-css-prefix}-crop-original:before { content: "\e3c4"; }
+.#{$md-css-prefix}-crop-portrait:before { content: "\e3c5"; }
+.#{$md-css-prefix}-crop-rotate:before { content: "\e437"; }
+.#{$md-css-prefix}-crop-square:before { content: "\e3c6"; }
+.#{$md-css-prefix}-dashboard:before { content: "\e871"; }
+.#{$md-css-prefix}-data-usage:before { content: "\e1af"; }
+.#{$md-css-prefix}-date-range:before { content: "\e916"; }
+.#{$md-css-prefix}-dehaze:before { content: "\e3c7"; }
+.#{$md-css-prefix}-delete:before { content: "\e872"; }
+.#{$md-css-prefix}-delete-forever:before { content: "\e92b"; }
+.#{$md-css-prefix}-delete-sweep:before { content: "\e16c"; }
+.#{$md-css-prefix}-description:before { content: "\e873"; }
+.#{$md-css-prefix}-desktop-mac:before { content: "\e30b"; }
+.#{$md-css-prefix}-desktop-windows:before { content: "\e30c"; }
+.#{$md-css-prefix}-details:before { content: "\e3c8"; }
+.#{$md-css-prefix}-developer-board:before { content: "\e30d"; }
+.#{$md-css-prefix}-developer-mode:before { content: "\e1b0"; }
+.#{$md-css-prefix}-device-hub:before { content: "\e335"; }
+.#{$md-css-prefix}-devices:before { content: "\e1b1"; }
+.#{$md-css-prefix}-devices-other:before { content: "\e337"; }
+.#{$md-css-prefix}-dialer-sip:before { content: "\e0bb"; }
+.#{$md-css-prefix}-dialpad:before { content: "\e0bc"; }
+.#{$md-css-prefix}-directions:before { content: "\e52e"; }
+.#{$md-css-prefix}-directions-bike:before { content: "\e52f"; }
+.#{$md-css-prefix}-directions-boat:before { content: "\e532"; }
+.#{$md-css-prefix}-directions-bus:before { content: "\e530"; }
+.#{$md-css-prefix}-directions-car:before { content: "\e531"; }
+.#{$md-css-prefix}-directions-railway:before { content: "\e534"; }
+.#{$md-css-prefix}-directions-run:before { content: "\e566"; }
+.#{$md-css-prefix}-directions-subway:before { content: "\e533"; }
+.#{$md-css-prefix}-directions-transit:before { content: "\e535"; }
+.#{$md-css-prefix}-directions-walk:before { content: "\e536"; }
+.#{$md-css-prefix}-disc-full:before { content: "\e610"; }
+.#{$md-css-prefix}-dns:before { content: "\e875"; }
+.#{$md-css-prefix}-do-not-disturb:before { content: "\e612"; }
+.#{$md-css-prefix}-do-not-disturb-alt:before { content: "\e611"; }
+.#{$md-css-prefix}-do-not-disturb-off:before { content: "\e643"; }
+.#{$md-css-prefix}-do-not-disturb-on:before { content: "\e644"; }
+.#{$md-css-prefix}-dock:before { content: "\e30e"; }
+.#{$md-css-prefix}-domain:before { content: "\e7ee"; }
+.#{$md-css-prefix}-done:before { content: "\e876"; }
+.#{$md-css-prefix}-done-all:before { content: "\e877"; }
+.#{$md-css-prefix}-donut-large:before { content: "\e917"; }
+.#{$md-css-prefix}-donut-small:before { content: "\e918"; }
+.#{$md-css-prefix}-drafts:before { content: "\e151"; }
+.#{$md-css-prefix}-drag-handle:before { content: "\e25d"; }
+.#{$md-css-prefix}-drive-eta:before { content: "\e613"; }
+.#{$md-css-prefix}-dvr:before { content: "\e1b2"; }
+.#{$md-css-prefix}-edit:before { content: "\e3c9"; }
+.#{$md-css-prefix}-edit-location:before { content: "\e568"; }
+.#{$md-css-prefix}-eject:before { content: "\e8fb"; }
+.#{$md-css-prefix}-email:before { content: "\e0be"; }
+.#{$md-css-prefix}-enhanced-encryption:before { content: "\e63f"; }
+.#{$md-css-prefix}-equalizer:before { content: "\e01d"; }
+.#{$md-css-prefix}-error:before { content: "\e000"; }
+.#{$md-css-prefix}-error-outline:before { content: "\e001"; }
+.#{$md-css-prefix}-euro-symbol:before { content: "\e926"; }
+.#{$md-css-prefix}-ev-station:before { content: "\e56d"; }
+.#{$md-css-prefix}-event:before { content: "\e878"; }
+.#{$md-css-prefix}-event-available:before { content: "\e614"; }
+.#{$md-css-prefix}-event-busy:before { content: "\e615"; }
+.#{$md-css-prefix}-event-note:before { content: "\e616"; }
+.#{$md-css-prefix}-event-seat:before { content: "\e903"; }
+.#{$md-css-prefix}-exit-to-app:before { content: "\e879"; }
+.#{$md-css-prefix}-expand-less:before { content: "\e5ce"; }
+.#{$md-css-prefix}-expand-more:before { content: "\e5cf"; }
+.#{$md-css-prefix}-explicit:before { content: "\e01e"; }
+.#{$md-css-prefix}-explore:before { content: "\e87a"; }
+.#{$md-css-prefix}-exposure:before { content: "\e3ca"; }
+.#{$md-css-prefix}-exposure-neg-1:before { content: "\e3cb"; }
+.#{$md-css-prefix}-exposure-neg-2:before { content: "\e3cc"; }
+.#{$md-css-prefix}-exposure-plus-1:before { content: "\e3cd"; }
+.#{$md-css-prefix}-exposure-plus-2:before { content: "\e3ce"; }
+.#{$md-css-prefix}-exposure-zero:before { content: "\e3cf"; }
+.#{$md-css-prefix}-extension:before { content: "\e87b"; }
+.#{$md-css-prefix}-face:before { content: "\e87c"; }
+.#{$md-css-prefix}-fast-forward:before { content: "\e01f"; }
+.#{$md-css-prefix}-fast-rewind:before { content: "\e020"; }
+.#{$md-css-prefix}-favorite:before { content: "\e87d"; }
+.#{$md-css-prefix}-favorite-border:before { content: "\e87e"; }
+.#{$md-css-prefix}-featured-play-list:before { content: "\e06d"; }
+.#{$md-css-prefix}-featured-video:before { content: "\e06e"; }
+.#{$md-css-prefix}-feedback:before { content: "\e87f"; }
+.#{$md-css-prefix}-fiber-dvr:before { content: "\e05d"; }
+.#{$md-css-prefix}-fiber-manual-record:before { content: "\e061"; }
+.#{$md-css-prefix}-fiber-new:before { content: "\e05e"; }
+.#{$md-css-prefix}-fiber-pin:before { content: "\e06a"; }
+.#{$md-css-prefix}-fiber-smart-record:before { content: "\e062"; }
+.#{$md-css-prefix}-file-download:before { content: "\e2c4"; }
+.#{$md-css-prefix}-file-upload:before { content: "\e2c6"; }
+.#{$md-css-prefix}-filter:before { content: "\e3d3"; }
+.#{$md-css-prefix}-filter-1:before { content: "\e3d0"; }
+.#{$md-css-prefix}-filter-2:before { content: "\e3d1"; }
+.#{$md-css-prefix}-filter-3:before { content: "\e3d2"; }
+.#{$md-css-prefix}-filter-4:before { content: "\e3d4"; }
+.#{$md-css-prefix}-filter-5:before { content: "\e3d5"; }
+.#{$md-css-prefix}-filter-6:before { content: "\e3d6"; }
+.#{$md-css-prefix}-filter-7:before { content: "\e3d7"; }
+.#{$md-css-prefix}-filter-8:before { content: "\e3d8"; }
+.#{$md-css-prefix}-filter-9:before { content: "\e3d9"; }
+.#{$md-css-prefix}-filter-9-plus:before { content: "\e3da"; }
+.#{$md-css-prefix}-filter-b-and-w:before { content: "\e3db"; }
+.#{$md-css-prefix}-filter-center-focus:before { content: "\e3dc"; }
+.#{$md-css-prefix}-filter-drama:before { content: "\e3dd"; }
+.#{$md-css-prefix}-filter-frames:before { content: "\e3de"; }
+.#{$md-css-prefix}-filter-hdr:before { content: "\e3df"; }
+.#{$md-css-prefix}-filter-list:before { content: "\e152"; }
+.#{$md-css-prefix}-filter-none:before { content: "\e3e0"; }
+.#{$md-css-prefix}-filter-tilt-shift:before { content: "\e3e2"; }
+.#{$md-css-prefix}-filter-vintage:before { content: "\e3e3"; }
+.#{$md-css-prefix}-find-in-page:before { content: "\e880"; }
+.#{$md-css-prefix}-find-replace:before { content: "\e881"; }
+.#{$md-css-prefix}-fingerprint:before { content: "\e90d"; }
+.#{$md-css-prefix}-first-page:before { content: "\e5dc"; }
+.#{$md-css-prefix}-fitness-center:before { content: "\eb43"; }
+.#{$md-css-prefix}-flag:before { content: "\e153"; }
+.#{$md-css-prefix}-flare:before { content: "\e3e4"; }
+.#{$md-css-prefix}-flash-auto:before { content: "\e3e5"; }
+.#{$md-css-prefix}-flash-off:before { content: "\e3e6"; }
+.#{$md-css-prefix}-flash-on:before { content: "\e3e7"; }
+.#{$md-css-prefix}-flight:before { content: "\e539"; }
+.#{$md-css-prefix}-flight-land:before { content: "\e904"; }
+.#{$md-css-prefix}-flight-takeoff:before { content: "\e905"; }
+.#{$md-css-prefix}-flip:before { content: "\e3e8"; }
+.#{$md-css-prefix}-flip-to-back:before { content: "\e882"; }
+.#{$md-css-prefix}-flip-to-front:before { content: "\e883"; }
+.#{$md-css-prefix}-folder:before { content: "\e2c7"; }
+.#{$md-css-prefix}-folder-open:before { content: "\e2c8"; }
+.#{$md-css-prefix}-folder-shared:before { content: "\e2c9"; }
+.#{$md-css-prefix}-folder-special:before { content: "\e617"; }
+.#{$md-css-prefix}-font-download:before { content: "\e167"; }
+.#{$md-css-prefix}-format-align-center:before { content: "\e234"; }
+.#{$md-css-prefix}-format-align-justify:before { content: "\e235"; }
+.#{$md-css-prefix}-format-align-left:before { content: "\e236"; }
+.#{$md-css-prefix}-format-align-right:before { content: "\e237"; }
+.#{$md-css-prefix}-format-bold:before { content: "\e238"; }
+.#{$md-css-prefix}-format-clear:before { content: "\e239"; }
+.#{$md-css-prefix}-format-color-fill:before { content: "\e23a"; }
+.#{$md-css-prefix}-format-color-reset:before { content: "\e23b"; }
+.#{$md-css-prefix}-format-color-text:before { content: "\e23c"; }
+.#{$md-css-prefix}-format-indent-decrease:before { content: "\e23d"; }
+.#{$md-css-prefix}-format-indent-increase:before { content: "\e23e"; }
+.#{$md-css-prefix}-format-italic:before { content: "\e23f"; }
+.#{$md-css-prefix}-format-line-spacing:before { content: "\e240"; }
+.#{$md-css-prefix}-format-list-bulleted:before { content: "\e241"; }
+.#{$md-css-prefix}-format-list-numbered:before { content: "\e242"; }
+.#{$md-css-prefix}-format-paint:before { content: "\e243"; }
+.#{$md-css-prefix}-format-quote:before { content: "\e244"; }
+.#{$md-css-prefix}-format-shapes:before { content: "\e25e"; }
+.#{$md-css-prefix}-format-size:before { content: "\e245"; }
+.#{$md-css-prefix}-format-strikethrough:before { content: "\e246"; }
+.#{$md-css-prefix}-format-textdirection-l-to-r:before { content: "\e247"; }
+.#{$md-css-prefix}-format-textdirection-r-to-l:before { content: "\e248"; }
+.#{$md-css-prefix}-format-underlined:before { content: "\e249"; }
+.#{$md-css-prefix}-forum:before { content: "\e0bf"; }
+.#{$md-css-prefix}-forward:before { content: "\e154"; }
+.#{$md-css-prefix}-forward-10:before { content: "\e056"; }
+.#{$md-css-prefix}-forward-30:before { content: "\e057"; }
+.#{$md-css-prefix}-forward-5:before { content: "\e058"; }
+.#{$md-css-prefix}-free-breakfast:before { content: "\eb44"; }
+.#{$md-css-prefix}-fullscreen:before { content: "\e5d0"; }
+.#{$md-css-prefix}-fullscreen-exit:before { content: "\e5d1"; }
+.#{$md-css-prefix}-functions:before { content: "\e24a"; }
+.#{$md-css-prefix}-g-translate:before { content: "\e927"; }
+.#{$md-css-prefix}-gamepad:before { content: "\e30f"; }
+.#{$md-css-prefix}-games:before { content: "\e021"; }
+.#{$md-css-prefix}-gavel:before { content: "\e90e"; }
+.#{$md-css-prefix}-gesture:before { content: "\e155"; }
+.#{$md-css-prefix}-get-app:before { content: "\e884"; }
+.#{$md-css-prefix}-gif:before { content: "\e908"; }
+.#{$md-css-prefix}-golf-course:before { content: "\eb45"; }
+.#{$md-css-prefix}-gps-fixed:before { content: "\e1b3"; }
+.#{$md-css-prefix}-gps-not-fixed:before { content: "\e1b4"; }
+.#{$md-css-prefix}-gps-off:before { content: "\e1b5"; }
+.#{$md-css-prefix}-grade:before { content: "\e885"; }
+.#{$md-css-prefix}-gradient:before { content: "\e3e9"; }
+.#{$md-css-prefix}-grain:before { content: "\e3ea"; }
+.#{$md-css-prefix}-graphic-eq:before { content: "\e1b8"; }
+.#{$md-css-prefix}-grid-off:before { content: "\e3eb"; }
+.#{$md-css-prefix}-grid-on:before { content: "\e3ec"; }
+.#{$md-css-prefix}-group:before { content: "\e7ef"; }
+.#{$md-css-prefix}-group-add:before { content: "\e7f0"; }
+.#{$md-css-prefix}-group-work:before { content: "\e886"; }
+.#{$md-css-prefix}-hd:before { content: "\e052"; }
+.#{$md-css-prefix}-hdr-off:before { content: "\e3ed"; }
+.#{$md-css-prefix}-hdr-on:before { content: "\e3ee"; }
+.#{$md-css-prefix}-hdr-strong:before { content: "\e3f1"; }
+.#{$md-css-prefix}-hdr-weak:before { content: "\e3f2"; }
+.#{$md-css-prefix}-headset:before { content: "\e310"; }
+.#{$md-css-prefix}-headset-mic:before { content: "\e311"; }
+.#{$md-css-prefix}-healing:before { content: "\e3f3"; }
+.#{$md-css-prefix}-hearing:before { content: "\e023"; }
+.#{$md-css-prefix}-help:before { content: "\e887"; }
+.#{$md-css-prefix}-help-outline:before { content: "\e8fd"; }
+.#{$md-css-prefix}-high-quality:before { content: "\e024"; }
+.#{$md-css-prefix}-highlight:before { content: "\e25f"; }
+.#{$md-css-prefix}-highlight-off:before { content: "\e888"; }
+.#{$md-css-prefix}-history:before { content: "\e889"; }
+.#{$md-css-prefix}-home:before { content: "\e88a"; }
+.#{$md-css-prefix}-hot-tub:before { content: "\eb46"; }
+.#{$md-css-prefix}-hotel:before { content: "\e53a"; }
+.#{$md-css-prefix}-hourglass-empty:before { content: "\e88b"; }
+.#{$md-css-prefix}-hourglass-full:before { content: "\e88c"; }
+.#{$md-css-prefix}-http:before { content: "\e902"; }
+.#{$md-css-prefix}-https:before { content: "\e88d"; }
+.#{$md-css-prefix}-image:before { content: "\e3f4"; }
+.#{$md-css-prefix}-image-aspect-ratio:before { content: "\e3f5"; }
+.#{$md-css-prefix}-import-contacts:before { content: "\e0e0"; }
+.#{$md-css-prefix}-import-export:before { content: "\e0c3"; }
+.#{$md-css-prefix}-important-devices:before { content: "\e912"; }
+.#{$md-css-prefix}-inbox:before { content: "\e156"; }
+.#{$md-css-prefix}-indeterminate-check-box:before { content: "\e909"; }
+.#{$md-css-prefix}-info:before { content: "\e88e"; }
+.#{$md-css-prefix}-info-outline:before { content: "\e88f"; }
+.#{$md-css-prefix}-input:before { content: "\e890"; }
+.#{$md-css-prefix}-insert-chart:before { content: "\e24b"; }
+.#{$md-css-prefix}-insert-comment:before { content: "\e24c"; }
+.#{$md-css-prefix}-insert-drive-file:before { content: "\e24d"; }
+.#{$md-css-prefix}-insert-emoticon:before { content: "\e24e"; }
+.#{$md-css-prefix}-insert-invitation:before { content: "\e24f"; }
+.#{$md-css-prefix}-insert-link:before { content: "\e250"; }
+.#{$md-css-prefix}-insert-photo:before { content: "\e251"; }
+.#{$md-css-prefix}-invert-colors:before { content: "\e891"; }
+.#{$md-css-prefix}-invert-colors-off:before { content: "\e0c4"; }
+.#{$md-css-prefix}-iso:before { content: "\e3f6"; }
+.#{$md-css-prefix}-keyboard:before { content: "\e312"; }
+.#{$md-css-prefix}-keyboard-arrow-down:before { content: "\e313"; }
+.#{$md-css-prefix}-keyboard-arrow-left:before { content: "\e314"; }
+.#{$md-css-prefix}-keyboard-arrow-right:before { content: "\e315"; }
+.#{$md-css-prefix}-keyboard-arrow-up:before { content: "\e316"; }
+.#{$md-css-prefix}-keyboard-backspace:before { content: "\e317"; }
+.#{$md-css-prefix}-keyboard-capslock:before { content: "\e318"; }
+.#{$md-css-prefix}-keyboard-hide:before { content: "\e31a"; }
+.#{$md-css-prefix}-keyboard-return:before { content: "\e31b"; }
+.#{$md-css-prefix}-keyboard-tab:before { content: "\e31c"; }
+.#{$md-css-prefix}-keyboard-voice:before { content: "\e31d"; }
+.#{$md-css-prefix}-kitchen:before { content: "\eb47"; }
+.#{$md-css-prefix}-label:before { content: "\e892"; }
+.#{$md-css-prefix}-label-outline:before { content: "\e893"; }
+.#{$md-css-prefix}-landscape:before { content: "\e3f7"; }
+.#{$md-css-prefix}-language:before { content: "\e894"; }
+.#{$md-css-prefix}-laptop:before { content: "\e31e"; }
+.#{$md-css-prefix}-laptop-chromebook:before { content: "\e31f"; }
+.#{$md-css-prefix}-laptop-mac:before { content: "\e320"; }
+.#{$md-css-prefix}-laptop-windows:before { content: "\e321"; }
+.#{$md-css-prefix}-last-page:before { content: "\e5dd"; }
+.#{$md-css-prefix}-launch:before { content: "\e895"; }
+.#{$md-css-prefix}-layers:before { content: "\e53b"; }
+.#{$md-css-prefix}-layers-clear:before { content: "\e53c"; }
+.#{$md-css-prefix}-leak-add:before { content: "\e3f8"; }
+.#{$md-css-prefix}-leak-remove:before { content: "\e3f9"; }
+.#{$md-css-prefix}-lens:before { content: "\e3fa"; }
+.#{$md-css-prefix}-library-add:before { content: "\e02e"; }
+.#{$md-css-prefix}-library-books:before { content: "\e02f"; }
+.#{$md-css-prefix}-library-music:before { content: "\e030"; }
+.#{$md-css-prefix}-lightbulb-outline:before { content: "\e90f"; }
+.#{$md-css-prefix}-line-style:before { content: "\e919"; }
+.#{$md-css-prefix}-line-weight:before { content: "\e91a"; }
+.#{$md-css-prefix}-linear-scale:before { content: "\e260"; }
+.#{$md-css-prefix}-link:before { content: "\e157"; }
+.#{$md-css-prefix}-linked-camera:before { content: "\e438"; }
+.#{$md-css-prefix}-list:before { content: "\e896"; }
+.#{$md-css-prefix}-live-help:before { content: "\e0c6"; }
+.#{$md-css-prefix}-live-tv:before { content: "\e639"; }
+.#{$md-css-prefix}-local-activity:before { content: "\e53f"; }
+.#{$md-css-prefix}-local-airport:before { content: "\e53d"; }
+.#{$md-css-prefix}-local-atm:before { content: "\e53e"; }
+.#{$md-css-prefix}-local-bar:before { content: "\e540"; }
+.#{$md-css-prefix}-local-cafe:before { content: "\e541"; }
+.#{$md-css-prefix}-local-car-wash:before { content: "\e542"; }
+.#{$md-css-prefix}-local-convenience-store:before { content: "\e543"; }
+.#{$md-css-prefix}-local-dining:before { content: "\e556"; }
+.#{$md-css-prefix}-local-drink:before { content: "\e544"; }
+.#{$md-css-prefix}-local-florist:before { content: "\e545"; }
+.#{$md-css-prefix}-local-gas-station:before { content: "\e546"; }
+.#{$md-css-prefix}-local-grocery-store:before { content: "\e547"; }
+.#{$md-css-prefix}-local-hospital:before { content: "\e548"; }
+.#{$md-css-prefix}-local-hotel:before { content: "\e549"; }
+.#{$md-css-prefix}-local-laundry-service:before { content: "\e54a"; }
+.#{$md-css-prefix}-local-library:before { content: "\e54b"; }
+.#{$md-css-prefix}-local-mall:before { content: "\e54c"; }
+.#{$md-css-prefix}-local-movies:before { content: "\e54d"; }
+.#{$md-css-prefix}-local-offer:before { content: "\e54e"; }
+.#{$md-css-prefix}-local-parking:before { content: "\e54f"; }
+.#{$md-css-prefix}-local-pharmacy:before { content: "\e550"; }
+.#{$md-css-prefix}-local-phone:before { content: "\e551"; }
+.#{$md-css-prefix}-local-pizza:before { content: "\e552"; }
+.#{$md-css-prefix}-local-play:before { content: "\e553"; }
+.#{$md-css-prefix}-local-post-office:before { content: "\e554"; }
+.#{$md-css-prefix}-local-printshop:before { content: "\e555"; }
+.#{$md-css-prefix}-local-see:before { content: "\e557"; }
+.#{$md-css-prefix}-local-shipping:before { content: "\e558"; }
+.#{$md-css-prefix}-local-taxi:before { content: "\e559"; }
+.#{$md-css-prefix}-location-city:before { content: "\e7f1"; }
+.#{$md-css-prefix}-location-disabled:before { content: "\e1b6"; }
+.#{$md-css-prefix}-location-off:before { content: "\e0c7"; }
+.#{$md-css-prefix}-location-on:before { content: "\e0c8"; }
+.#{$md-css-prefix}-location-searching:before { content: "\e1b7"; }
+.#{$md-css-prefix}-lock:before { content: "\e897"; }
+.#{$md-css-prefix}-lock-open:before { content: "\e898"; }
+.#{$md-css-prefix}-lock-outline:before { content: "\e899"; }
+.#{$md-css-prefix}-looks:before { content: "\e3fc"; }
+.#{$md-css-prefix}-looks-3:before { content: "\e3fb"; }
+.#{$md-css-prefix}-looks-4:before { content: "\e3fd"; }
+.#{$md-css-prefix}-looks-5:before { content: "\e3fe"; }
+.#{$md-css-prefix}-looks-6:before { content: "\e3ff"; }
+.#{$md-css-prefix}-looks-one:before { content: "\e400"; }
+.#{$md-css-prefix}-looks-two:before { content: "\e401"; }
+.#{$md-css-prefix}-loop:before { content: "\e028"; }
+.#{$md-css-prefix}-loupe:before { content: "\e402"; }
+.#{$md-css-prefix}-low-priority:before { content: "\e16d"; }
+.#{$md-css-prefix}-loyalty:before { content: "\e89a"; }
+.#{$md-css-prefix}-mail:before { content: "\e158"; }
+.#{$md-css-prefix}-mail-outline:before { content: "\e0e1"; }
+.#{$md-css-prefix}-map:before { content: "\e55b"; }
+.#{$md-css-prefix}-markunread:before { content: "\e159"; }
+.#{$md-css-prefix}-markunread-mailbox:before { content: "\e89b"; }
+.#{$md-css-prefix}-memory:before { content: "\e322"; }
+.#{$md-css-prefix}-menu:before { content: "\e5d2"; }
+.#{$md-css-prefix}-merge-type:before { content: "\e252"; }
+.#{$md-css-prefix}-message:before { content: "\e0c9"; }
+.#{$md-css-prefix}-mic:before { content: "\e029"; }
+.#{$md-css-prefix}-mic-none:before { content: "\e02a"; }
+.#{$md-css-prefix}-mic-off:before { content: "\e02b"; }
+.#{$md-css-prefix}-mms:before { content: "\e618"; }
+.#{$md-css-prefix}-mode-comment:before { content: "\e253"; }
+.#{$md-css-prefix}-mode-edit:before { content: "\e254"; }
+.#{$md-css-prefix}-monetization-on:before { content: "\e263"; }
+.#{$md-css-prefix}-money-off:before { content: "\e25c"; }
+.#{$md-css-prefix}-monochrome-photos:before { content: "\e403"; }
+.#{$md-css-prefix}-mood:before { content: "\e7f2"; }
+.#{$md-css-prefix}-mood-bad:before { content: "\e7f3"; }
+.#{$md-css-prefix}-more:before { content: "\e619"; }
+.#{$md-css-prefix}-more-horiz:before { content: "\e5d3"; }
+.#{$md-css-prefix}-more-vert:before { content: "\e5d4"; }
+.#{$md-css-prefix}-motorcycle:before { content: "\e91b"; }
+.#{$md-css-prefix}-mouse:before { content: "\e323"; }
+.#{$md-css-prefix}-move-to-inbox:before { content: "\e168"; }
+.#{$md-css-prefix}-movie:before { content: "\e02c"; }
+.#{$md-css-prefix}-movie-creation:before { content: "\e404"; }
+.#{$md-css-prefix}-movie-filter:before { content: "\e43a"; }
+.#{$md-css-prefix}-multiline-chart:before { content: "\e6df"; }
+.#{$md-css-prefix}-music-note:before { content: "\e405"; }
+.#{$md-css-prefix}-music-video:before { content: "\e063"; }
+.#{$md-css-prefix}-my-location:before { content: "\e55c"; }
+.#{$md-css-prefix}-nature:before { content: "\e406"; }
+.#{$md-css-prefix}-nature-people:before { content: "\e407"; }
+.#{$md-css-prefix}-navigate-before:before { content: "\e408"; }
+.#{$md-css-prefix}-navigate-next:before { content: "\e409"; }
+.#{$md-css-prefix}-navigation:before { content: "\e55d"; }
+.#{$md-css-prefix}-near-me:before { content: "\e569"; }
+.#{$md-css-prefix}-network-cell:before { content: "\e1b9"; }
+.#{$md-css-prefix}-network-check:before { content: "\e640"; }
+.#{$md-css-prefix}-network-locked:before { content: "\e61a"; }
+.#{$md-css-prefix}-network-wifi:before { content: "\e1ba"; }
+.#{$md-css-prefix}-new-releases:before { content: "\e031"; }
+.#{$md-css-prefix}-next-week:before { content: "\e16a"; }
+.#{$md-css-prefix}-nfc:before { content: "\e1bb"; }
+.#{$md-css-prefix}-no-encryption:before { content: "\e641"; }
+.#{$md-css-prefix}-no-sim:before { content: "\e0cc"; }
+.#{$md-css-prefix}-not-interested:before { content: "\e033"; }
+.#{$md-css-prefix}-note:before { content: "\e06f"; }
+.#{$md-css-prefix}-note-add:before { content: "\e89c"; }
+.#{$md-css-prefix}-notifications:before { content: "\e7f4"; }
+.#{$md-css-prefix}-notifications-active:before { content: "\e7f7"; }
+.#{$md-css-prefix}-notifications-none:before { content: "\e7f5"; }
+.#{$md-css-prefix}-notifications-off:before { content: "\e7f6"; }
+.#{$md-css-prefix}-notifications-paused:before { content: "\e7f8"; }
+.#{$md-css-prefix}-offline-pin:before { content: "\e90a"; }
+.#{$md-css-prefix}-ondemand-video:before { content: "\e63a"; }
+.#{$md-css-prefix}-opacity:before { content: "\e91c"; }
+.#{$md-css-prefix}-open-in-browser:before { content: "\e89d"; }
+.#{$md-css-prefix}-open-in-new:before { content: "\e89e"; }
+.#{$md-css-prefix}-open-with:before { content: "\e89f"; }
+.#{$md-css-prefix}-pages:before { content: "\e7f9"; }
+.#{$md-css-prefix}-pageview:before { content: "\e8a0"; }
+.#{$md-css-prefix}-palette:before { content: "\e40a"; }
+.#{$md-css-prefix}-pan-tool:before { content: "\e925"; }
+.#{$md-css-prefix}-panorama:before { content: "\e40b"; }
+.#{$md-css-prefix}-panorama-fish-eye:before { content: "\e40c"; }
+.#{$md-css-prefix}-panorama-horizontal:before { content: "\e40d"; }
+.#{$md-css-prefix}-panorama-vertical:before { content: "\e40e"; }
+.#{$md-css-prefix}-panorama-wide-angle:before { content: "\e40f"; }
+.#{$md-css-prefix}-party-mode:before { content: "\e7fa"; }
+.#{$md-css-prefix}-pause:before { content: "\e034"; }
+.#{$md-css-prefix}-pause-circle-filled:before { content: "\e035"; }
+.#{$md-css-prefix}-pause-circle-outline:before { content: "\e036"; }
+.#{$md-css-prefix}-payment:before { content: "\e8a1"; }
+.#{$md-css-prefix}-people:before { content: "\e7fb"; }
+.#{$md-css-prefix}-people-outline:before { content: "\e7fc"; }
+.#{$md-css-prefix}-perm-camera-mic:before { content: "\e8a2"; }
+.#{$md-css-prefix}-perm-contact-calendar:before { content: "\e8a3"; }
+.#{$md-css-prefix}-perm-data-setting:before { content: "\e8a4"; }
+.#{$md-css-prefix}-perm-device-information:before { content: "\e8a5"; }
+.#{$md-css-prefix}-perm-identity:before { content: "\e8a6"; }
+.#{$md-css-prefix}-perm-media:before { content: "\e8a7"; }
+.#{$md-css-prefix}-perm-phone-msg:before { content: "\e8a8"; }
+.#{$md-css-prefix}-perm-scan-wifi:before { content: "\e8a9"; }
+.#{$md-css-prefix}-person:before { content: "\e7fd"; }
+.#{$md-css-prefix}-person-add:before { content: "\e7fe"; }
+.#{$md-css-prefix}-person-outline:before { content: "\e7ff"; }
+.#{$md-css-prefix}-person-pin:before { content: "\e55a"; }
+.#{$md-css-prefix}-person-pin-circle:before { content: "\e56a"; }
+.#{$md-css-prefix}-personal-video:before { content: "\e63b"; }
+.#{$md-css-prefix}-pets:before { content: "\e91d"; }
+.#{$md-css-prefix}-phone:before { content: "\e0cd"; }
+.#{$md-css-prefix}-phone-android:before { content: "\e324"; }
+.#{$md-css-prefix}-phone-bluetooth-speaker:before { content: "\e61b"; }
+.#{$md-css-prefix}-phone-forwarded:before { content: "\e61c"; }
+.#{$md-css-prefix}-phone-in-talk:before { content: "\e61d"; }
+.#{$md-css-prefix}-phone-iphone:before { content: "\e325"; }
+.#{$md-css-prefix}-phone-locked:before { content: "\e61e"; }
+.#{$md-css-prefix}-phone-missed:before { content: "\e61f"; }
+.#{$md-css-prefix}-phone-paused:before { content: "\e620"; }
+.#{$md-css-prefix}-phonelink:before { content: "\e326"; }
+.#{$md-css-prefix}-phonelink-erase:before { content: "\e0db"; }
+.#{$md-css-prefix}-phonelink-lock:before { content: "\e0dc"; }
+.#{$md-css-prefix}-phonelink-off:before { content: "\e327"; }
+.#{$md-css-prefix}-phonelink-ring:before { content: "\e0dd"; }
+.#{$md-css-prefix}-phonelink-setup:before { content: "\e0de"; }
+.#{$md-css-prefix}-photo:before { content: "\e410"; }
+.#{$md-css-prefix}-photo-album:before { content: "\e411"; }
+.#{$md-css-prefix}-photo-camera:before { content: "\e412"; }
+.#{$md-css-prefix}-photo-filter:before { content: "\e43b"; }
+.#{$md-css-prefix}-photo-library:before { content: "\e413"; }
+.#{$md-css-prefix}-photo-size-select-actual:before { content: "\e432"; }
+.#{$md-css-prefix}-photo-size-select-large:before { content: "\e433"; }
+.#{$md-css-prefix}-photo-size-select-small:before { content: "\e434"; }
+.#{$md-css-prefix}-picture-as-pdf:before { content: "\e415"; }
+.#{$md-css-prefix}-picture-in-picture:before { content: "\e8aa"; }
+.#{$md-css-prefix}-picture-in-picture-alt:before { content: "\e911"; }
+.#{$md-css-prefix}-pie-chart:before { content: "\e6c4"; }
+.#{$md-css-prefix}-pie-chart-outlined:before { content: "\e6c5"; }
+.#{$md-css-prefix}-pin-drop:before { content: "\e55e"; }
+.#{$md-css-prefix}-place:before { content: "\e55f"; }
+.#{$md-css-prefix}-play-arrow:before { content: "\e037"; }
+.#{$md-css-prefix}-play-circle-filled:before { content: "\e038"; }
+.#{$md-css-prefix}-play-circle-outline:before { content: "\e039"; }
+.#{$md-css-prefix}-play-for-work:before { content: "\e906"; }
+.#{$md-css-prefix}-playlist-add:before { content: "\e03b"; }
+.#{$md-css-prefix}-playlist-add-check:before { content: "\e065"; }
+.#{$md-css-prefix}-playlist-play:before { content: "\e05f"; }
+.#{$md-css-prefix}-plus-one:before { content: "\e800"; }
+.#{$md-css-prefix}-poll:before { content: "\e801"; }
+.#{$md-css-prefix}-polymer:before { content: "\e8ab"; }
+.#{$md-css-prefix}-pool:before { content: "\eb48"; }
+.#{$md-css-prefix}-portable-wifi-off:before { content: "\e0ce"; }
+.#{$md-css-prefix}-portrait:before { content: "\e416"; }
+.#{$md-css-prefix}-power:before { content: "\e63c"; }
+.#{$md-css-prefix}-power-input:before { content: "\e336"; }
+.#{$md-css-prefix}-power-settings-new:before { content: "\e8ac"; }
+.#{$md-css-prefix}-pregnant-woman:before { content: "\e91e"; }
+.#{$md-css-prefix}-present-to-all:before { content: "\e0df"; }
+.#{$md-css-prefix}-print:before { content: "\e8ad"; }
+.#{$md-css-prefix}-priority-high:before { content: "\e645"; }
+.#{$md-css-prefix}-public:before { content: "\e80b"; }
+.#{$md-css-prefix}-publish:before { content: "\e255"; }
+.#{$md-css-prefix}-query-builder:before { content: "\e8ae"; }
+.#{$md-css-prefix}-question-answer:before { content: "\e8af"; }
+.#{$md-css-prefix}-queue:before { content: "\e03c"; }
+.#{$md-css-prefix}-queue-music:before { content: "\e03d"; }
+.#{$md-css-prefix}-queue-play-next:before { content: "\e066"; }
+.#{$md-css-prefix}-radio:before { content: "\e03e"; }
+.#{$md-css-prefix}-radio-button-checked:before { content: "\e837"; }
+.#{$md-css-prefix}-radio-button-unchecked:before { content: "\e836"; }
+.#{$md-css-prefix}-rate-review:before { content: "\e560"; }
+.#{$md-css-prefix}-receipt:before { content: "\e8b0"; }
+.#{$md-css-prefix}-recent-actors:before { content: "\e03f"; }
+.#{$md-css-prefix}-record-voice-over:before { content: "\e91f"; }
+.#{$md-css-prefix}-redeem:before { content: "\e8b1"; }
+.#{$md-css-prefix}-redo:before { content: "\e15a"; }
+.#{$md-css-prefix}-refresh:before { content: "\e5d5"; }
+.#{$md-css-prefix}-remove:before { content: "\e15b"; }
+.#{$md-css-prefix}-remove-circle:before { content: "\e15c"; }
+.#{$md-css-prefix}-remove-circle-outline:before { content: "\e15d"; }
+.#{$md-css-prefix}-remove-from-queue:before { content: "\e067"; }
+.#{$md-css-prefix}-remove-red-eye:before { content: "\e417"; }
+.#{$md-css-prefix}-remove-shopping-cart:before { content: "\e928"; }
+.#{$md-css-prefix}-reorder:before { content: "\e8fe"; }
+.#{$md-css-prefix}-repeat:before { content: "\e040"; }
+.#{$md-css-prefix}-repeat-one:before { content: "\e041"; }
+.#{$md-css-prefix}-replay:before { content: "\e042"; }
+.#{$md-css-prefix}-replay-10:before { content: "\e059"; }
+.#{$md-css-prefix}-replay-30:before { content: "\e05a"; }
+.#{$md-css-prefix}-replay-5:before { content: "\e05b"; }
+.#{$md-css-prefix}-reply:before { content: "\e15e"; }
+.#{$md-css-prefix}-reply-all:before { content: "\e15f"; }
+.#{$md-css-prefix}-report:before { content: "\e160"; }
+.#{$md-css-prefix}-report-problem:before { content: "\e8b2"; }
+.#{$md-css-prefix}-restaurant:before { content: "\e56c"; }
+.#{$md-css-prefix}-restaurant-menu:before { content: "\e561"; }
+.#{$md-css-prefix}-restore:before { content: "\e8b3"; }
+.#{$md-css-prefix}-restore-page:before { content: "\e929"; }
+.#{$md-css-prefix}-ring-volume:before { content: "\e0d1"; }
+.#{$md-css-prefix}-room:before { content: "\e8b4"; }
+.#{$md-css-prefix}-room-service:before { content: "\eb49"; }
+.#{$md-css-prefix}-rotate-90-degrees-ccw:before { content: "\e418"; }
+.#{$md-css-prefix}-rotate-left:before { content: "\e419"; }
+.#{$md-css-prefix}-rotate-right:before { content: "\e41a"; }
+.#{$md-css-prefix}-rounded-corner:before { content: "\e920"; }
+.#{$md-css-prefix}-router:before { content: "\e328"; }
+.#{$md-css-prefix}-rowing:before { content: "\e921"; }
+.#{$md-css-prefix}-rss-feed:before { content: "\e0e5"; }
+.#{$md-css-prefix}-rv-hookup:before { content: "\e642"; }
+.#{$md-css-prefix}-satellite:before { content: "\e562"; }
+.#{$md-css-prefix}-save:before { content: "\e161"; }
+.#{$md-css-prefix}-scanner:before { content: "\e329"; }
+.#{$md-css-prefix}-schedule:before { content: "\e8b5"; }
+.#{$md-css-prefix}-school:before { content: "\e80c"; }
+.#{$md-css-prefix}-screen-lock-landscape:before { content: "\e1be"; }
+.#{$md-css-prefix}-screen-lock-portrait:before { content: "\e1bf"; }
+.#{$md-css-prefix}-screen-lock-rotation:before { content: "\e1c0"; }
+.#{$md-css-prefix}-screen-rotation:before { content: "\e1c1"; }
+.#{$md-css-prefix}-screen-share:before { content: "\e0e2"; }
+.#{$md-css-prefix}-sd-card:before { content: "\e623"; }
+.#{$md-css-prefix}-sd-storage:before { content: "\e1c2"; }
+.#{$md-css-prefix}-search:before { content: "\e8b6"; }
+.#{$md-css-prefix}-security:before { content: "\e32a"; }
+.#{$md-css-prefix}-select-all:before { content: "\e162"; }
+.#{$md-css-prefix}-send:before { content: "\e163"; }
+.#{$md-css-prefix}-sentiment-dissatisfied:before { content: "\e811"; }
+.#{$md-css-prefix}-sentiment-neutral:before { content: "\e812"; }
+.#{$md-css-prefix}-sentiment-satisfied:before { content: "\e813"; }
+.#{$md-css-prefix}-sentiment-very-dissatisfied:before { content: "\e814"; }
+.#{$md-css-prefix}-sentiment-very-satisfied:before { content: "\e815"; }
+.#{$md-css-prefix}-settings:before { content: "\e8b8"; }
+.#{$md-css-prefix}-settings-applications:before { content: "\e8b9"; }
+.#{$md-css-prefix}-settings-backup-restore:before { content: "\e8ba"; }
+.#{$md-css-prefix}-settings-bluetooth:before { content: "\e8bb"; }
+.#{$md-css-prefix}-settings-brightness:before { content: "\e8bd"; }
+.#{$md-css-prefix}-settings-cell:before { content: "\e8bc"; }
+.#{$md-css-prefix}-settings-ethernet:before { content: "\e8be"; }
+.#{$md-css-prefix}-settings-input-antenna:before { content: "\e8bf"; }
+.#{$md-css-prefix}-settings-input-component:before { content: "\e8c0"; }
+.#{$md-css-prefix}-settings-input-composite:before { content: "\e8c1"; }
+.#{$md-css-prefix}-settings-input-hdmi:before { content: "\e8c2"; }
+.#{$md-css-prefix}-settings-input-svideo:before { content: "\e8c3"; }
+.#{$md-css-prefix}-settings-overscan:before { content: "\e8c4"; }
+.#{$md-css-prefix}-settings-phone:before { content: "\e8c5"; }
+.#{$md-css-prefix}-settings-power:before { content: "\e8c6"; }
+.#{$md-css-prefix}-settings-remote:before { content: "\e8c7"; }
+.#{$md-css-prefix}-settings-system-daydream:before { content: "\e1c3"; }
+.#{$md-css-prefix}-settings-voice:before { content: "\e8c8"; }
+.#{$md-css-prefix}-share:before { content: "\e80d"; }
+.#{$md-css-prefix}-shop:before { content: "\e8c9"; }
+.#{$md-css-prefix}-shop-two:before { content: "\e8ca"; }
+.#{$md-css-prefix}-shopping-basket:before { content: "\e8cb"; }
+.#{$md-css-prefix}-shopping-cart:before { content: "\e8cc"; }
+.#{$md-css-prefix}-short-text:before { content: "\e261"; }
+.#{$md-css-prefix}-show-chart:before { content: "\e6e1"; }
+.#{$md-css-prefix}-shuffle:before { content: "\e043"; }
+.#{$md-css-prefix}-signal-cellular-4-bar:before { content: "\e1c8"; }
+.#{$md-css-prefix}-signal-cellular-connected-no-internet-4-bar:before { content: "\e1cd"; }
+.#{$md-css-prefix}-signal-cellular-no-sim:before { content: "\e1ce"; }
+.#{$md-css-prefix}-signal-cellular-null:before { content: "\e1cf"; }
+.#{$md-css-prefix}-signal-cellular-off:before { content: "\e1d0"; }
+.#{$md-css-prefix}-signal-wifi-4-bar:before { content: "\e1d8"; }
+.#{$md-css-prefix}-signal-wifi-4-bar-lock:before { content: "\e1d9"; }
+.#{$md-css-prefix}-signal-wifi-off:before { content: "\e1da"; }
+.#{$md-css-prefix}-sim-card:before { content: "\e32b"; }
+.#{$md-css-prefix}-sim-card-alert:before { content: "\e624"; }
+.#{$md-css-prefix}-skip-next:before { content: "\e044"; }
+.#{$md-css-prefix}-skip-previous:before { content: "\e045"; }
+.#{$md-css-prefix}-slideshow:before { content: "\e41b"; }
+.#{$md-css-prefix}-slow-motion-video:before { content: "\e068"; }
+.#{$md-css-prefix}-smartphone:before { content: "\e32c"; }
+.#{$md-css-prefix}-smoke-free:before { content: "\eb4a"; }
+.#{$md-css-prefix}-smoking-rooms:before { content: "\eb4b"; }
+.#{$md-css-prefix}-sms:before { content: "\e625"; }
+.#{$md-css-prefix}-sms-failed:before { content: "\e626"; }
+.#{$md-css-prefix}-snooze:before { content: "\e046"; }
+.#{$md-css-prefix}-sort:before { content: "\e164"; }
+.#{$md-css-prefix}-sort-by-alpha:before { content: "\e053"; }
+.#{$md-css-prefix}-spa:before { content: "\eb4c"; }
+.#{$md-css-prefix}-space-bar:before { content: "\e256"; }
+.#{$md-css-prefix}-speaker:before { content: "\e32d"; }
+.#{$md-css-prefix}-speaker-group:before { content: "\e32e"; }
+.#{$md-css-prefix}-speaker-notes:before { content: "\e8cd"; }
+.#{$md-css-prefix}-speaker-notes-off:before { content: "\e92a"; }
+.#{$md-css-prefix}-speaker-phone:before { content: "\e0d2"; }
+.#{$md-css-prefix}-spellcheck:before { content: "\e8ce"; }
+.#{$md-css-prefix}-star:before { content: "\e838"; }
+.#{$md-css-prefix}-star-border:before { content: "\e83a"; }
+.#{$md-css-prefix}-star-half:before { content: "\e839"; }
+.#{$md-css-prefix}-stars:before { content: "\e8d0"; }
+.#{$md-css-prefix}-stay-current-landscape:before { content: "\e0d3"; }
+.#{$md-css-prefix}-stay-current-portrait:before { content: "\e0d4"; }
+.#{$md-css-prefix}-stay-primary-landscape:before { content: "\e0d5"; }
+.#{$md-css-prefix}-stay-primary-portrait:before { content: "\e0d6"; }
+.#{$md-css-prefix}-stop:before { content: "\e047"; }
+.#{$md-css-prefix}-stop-screen-share:before { content: "\e0e3"; }
+.#{$md-css-prefix}-storage:before { content: "\e1db"; }
+.#{$md-css-prefix}-store:before { content: "\e8d1"; }
+.#{$md-css-prefix}-store-mall-directory:before { content: "\e563"; }
+.#{$md-css-prefix}-straighten:before { content: "\e41c"; }
+.#{$md-css-prefix}-streetview:before { content: "\e56e"; }
+.#{$md-css-prefix}-strikethrough-s:before { content: "\e257"; }
+.#{$md-css-prefix}-style:before { content: "\e41d"; }
+.#{$md-css-prefix}-subdirectory-arrow-left:before { content: "\e5d9"; }
+.#{$md-css-prefix}-subdirectory-arrow-right:before { content: "\e5da"; }
+.#{$md-css-prefix}-subject:before { content: "\e8d2"; }
+.#{$md-css-prefix}-subscriptions:before { content: "\e064"; }
+.#{$md-css-prefix}-subtitles:before { content: "\e048"; }
+.#{$md-css-prefix}-subway:before { content: "\e56f"; }
+.#{$md-css-prefix}-supervisor-account:before { content: "\e8d3"; }
+.#{$md-css-prefix}-surround-sound:before { content: "\e049"; }
+.#{$md-css-prefix}-swap-calls:before { content: "\e0d7"; }
+.#{$md-css-prefix}-swap-horiz:before { content: "\e8d4"; }
+.#{$md-css-prefix}-swap-vert:before { content: "\e8d5"; }
+.#{$md-css-prefix}-swap-vertical-circle:before { content: "\e8d6"; }
+.#{$md-css-prefix}-switch-camera:before { content: "\e41e"; }
+.#{$md-css-prefix}-switch-video:before { content: "\e41f"; }
+.#{$md-css-prefix}-sync:before { content: "\e627"; }
+.#{$md-css-prefix}-sync-disabled:before { content: "\e628"; }
+.#{$md-css-prefix}-sync-problem:before { content: "\e629"; }
+.#{$md-css-prefix}-system-update:before { content: "\e62a"; }
+.#{$md-css-prefix}-system-update-alt:before { content: "\e8d7"; }
+.#{$md-css-prefix}-tab:before { content: "\e8d8"; }
+.#{$md-css-prefix}-tab-unselected:before { content: "\e8d9"; }
+.#{$md-css-prefix}-tablet:before { content: "\e32f"; }
+.#{$md-css-prefix}-tablet-android:before { content: "\e330"; }
+.#{$md-css-prefix}-tablet-mac:before { content: "\e331"; }
+.#{$md-css-prefix}-tag-faces:before { content: "\e420"; }
+.#{$md-css-prefix}-tap-and-play:before { content: "\e62b"; }
+.#{$md-css-prefix}-terrain:before { content: "\e564"; }
+.#{$md-css-prefix}-text-fields:before { content: "\e262"; }
+.#{$md-css-prefix}-text-format:before { content: "\e165"; }
+.#{$md-css-prefix}-textsms:before { content: "\e0d8"; }
+.#{$md-css-prefix}-texture:before { content: "\e421"; }
+.#{$md-css-prefix}-theaters:before { content: "\e8da"; }
+.#{$md-css-prefix}-thumb-down:before { content: "\e8db"; }
+.#{$md-css-prefix}-thumb-up:before { content: "\e8dc"; }
+.#{$md-css-prefix}-thumbs-up-down:before { content: "\e8dd"; }
+.#{$md-css-prefix}-time-to-leave:before { content: "\e62c"; }
+.#{$md-css-prefix}-timelapse:before { content: "\e422"; }
+.#{$md-css-prefix}-timeline:before { content: "\e922"; }
+.#{$md-css-prefix}-timer:before { content: "\e425"; }
+.#{$md-css-prefix}-timer-10:before { content: "\e423"; }
+.#{$md-css-prefix}-timer-3:before { content: "\e424"; }
+.#{$md-css-prefix}-timer-off:before { content: "\e426"; }
+.#{$md-css-prefix}-title:before { content: "\e264"; }
+.#{$md-css-prefix}-toc:before { content: "\e8de"; }
+.#{$md-css-prefix}-today:before { content: "\e8df"; }
+.#{$md-css-prefix}-toll:before { content: "\e8e0"; }
+.#{$md-css-prefix}-tonality:before { content: "\e427"; }
+.#{$md-css-prefix}-touch-app:before { content: "\e913"; }
+.#{$md-css-prefix}-toys:before { content: "\e332"; }
+.#{$md-css-prefix}-track-changes:before { content: "\e8e1"; }
+.#{$md-css-prefix}-traffic:before { content: "\e565"; }
+.#{$md-css-prefix}-train:before { content: "\e570"; }
+.#{$md-css-prefix}-tram:before { content: "\e571"; }
+.#{$md-css-prefix}-transfer-within-a-station:before { content: "\e572"; }
+.#{$md-css-prefix}-transform:before { content: "\e428"; }
+.#{$md-css-prefix}-translate:before { content: "\e8e2"; }
+.#{$md-css-prefix}-trending-down:before { content: "\e8e3"; }
+.#{$md-css-prefix}-trending-flat:before { content: "\e8e4"; }
+.#{$md-css-prefix}-trending-up:before { content: "\e8e5"; }
+.#{$md-css-prefix}-tune:before { content: "\e429"; }
+.#{$md-css-prefix}-turned-in:before { content: "\e8e6"; }
+.#{$md-css-prefix}-turned-in-not:before { content: "\e8e7"; }
+.#{$md-css-prefix}-tv:before { content: "\e333"; }
+.#{$md-css-prefix}-unarchive:before { content: "\e169"; }
+.#{$md-css-prefix}-undo:before { content: "\e166"; }
+.#{$md-css-prefix}-unfold-less:before { content: "\e5d6"; }
+.#{$md-css-prefix}-unfold-more:before { content: "\e5d7"; }
+.#{$md-css-prefix}-update:before { content: "\e923"; }
+.#{$md-css-prefix}-usb:before { content: "\e1e0"; }
+.#{$md-css-prefix}-verified-user:before { content: "\e8e8"; }
+.#{$md-css-prefix}-vertical-align-bottom:before { content: "\e258"; }
+.#{$md-css-prefix}-vertical-align-center:before { content: "\e259"; }
+.#{$md-css-prefix}-vertical-align-top:before { content: "\e25a"; }
+.#{$md-css-prefix}-vibration:before { content: "\e62d"; }
+.#{$md-css-prefix}-video-call:before { content: "\e070"; }
+.#{$md-css-prefix}-video-label:before { content: "\e071"; }
+.#{$md-css-prefix}-video-library:before { content: "\e04a"; }
+.#{$md-css-prefix}-videocam:before { content: "\e04b"; }
+.#{$md-css-prefix}-videocam-off:before { content: "\e04c"; }
+.#{$md-css-prefix}-videogame-asset:before { content: "\e338"; }
+.#{$md-css-prefix}-view-agenda:before { content: "\e8e9"; }
+.#{$md-css-prefix}-view-array:before { content: "\e8ea"; }
+.#{$md-css-prefix}-view-carousel:before { content: "\e8eb"; }
+.#{$md-css-prefix}-view-column:before { content: "\e8ec"; }
+.#{$md-css-prefix}-view-comfy:before { content: "\e42a"; }
+.#{$md-css-prefix}-view-compact:before { content: "\e42b"; }
+.#{$md-css-prefix}-view-day:before { content: "\e8ed"; }
+.#{$md-css-prefix}-view-headline:before { content: "\e8ee"; }
+.#{$md-css-prefix}-view-list:before { content: "\e8ef"; }
+.#{$md-css-prefix}-view-module:before { content: "\e8f0"; }
+.#{$md-css-prefix}-view-quilt:before { content: "\e8f1"; }
+.#{$md-css-prefix}-view-stream:before { content: "\e8f2"; }
+.#{$md-css-prefix}-view-week:before { content: "\e8f3"; }
+.#{$md-css-prefix}-vignette:before { content: "\e435"; }
+.#{$md-css-prefix}-visibility:before { content: "\e8f4"; }
+.#{$md-css-prefix}-visibility-off:before { content: "\e8f5"; }
+.#{$md-css-prefix}-voice-chat:before { content: "\e62e"; }
+.#{$md-css-prefix}-voicemail:before { content: "\e0d9"; }
+.#{$md-css-prefix}-volume-down:before { content: "\e04d"; }
+.#{$md-css-prefix}-volume-mute:before { content: "\e04e"; }
+.#{$md-css-prefix}-volume-off:before { content: "\e04f"; }
+.#{$md-css-prefix}-volume-up:before { content: "\e050"; }
+.#{$md-css-prefix}-vpn-key:before { content: "\e0da"; }
+.#{$md-css-prefix}-vpn-lock:before { content: "\e62f"; }
+.#{$md-css-prefix}-wallpaper:before { content: "\e1bc"; }
+.#{$md-css-prefix}-warning:before { content: "\e002"; }
+.#{$md-css-prefix}-watch:before { content: "\e334"; }
+.#{$md-css-prefix}-watch-later:before { content: "\e924"; }
+.#{$md-css-prefix}-wb-auto:before { content: "\e42c"; }
+.#{$md-css-prefix}-wb-cloudy:before { content: "\e42d"; }
+.#{$md-css-prefix}-wb-incandescent:before { content: "\e42e"; }
+.#{$md-css-prefix}-wb-iridescent:before { content: "\e436"; }
+.#{$md-css-prefix}-wb-sunny:before { content: "\e430"; }
+.#{$md-css-prefix}-wc:before { content: "\e63d"; }
+.#{$md-css-prefix}-web:before { content: "\e051"; }
+.#{$md-css-prefix}-web-asset:before { content: "\e069"; }
+.#{$md-css-prefix}-weekend:before { content: "\e16b"; }
+.#{$md-css-prefix}-whatshot:before { content: "\e80e"; }
+.#{$md-css-prefix}-widgets:before { content: "\e1bd"; }
+.#{$md-css-prefix}-wifi:before { content: "\e63e"; }
+.#{$md-css-prefix}-wifi-lock:before { content: "\e1e1"; }
+.#{$md-css-prefix}-wifi-tethering:before { content: "\e1e2"; }
+.#{$md-css-prefix}-work:before { content: "\e8f9"; }
+.#{$md-css-prefix}-wrap-text:before { content: "\e25b"; }
+.#{$md-css-prefix}-youtube-searched-for:before { content: "\e8fa"; }
+.#{$md-css-prefix}-zoom-in:before { content: "\e8ff"; }
+.#{$md-css-prefix}-zoom-out:before { content: "\e900"; }
+.#{$md-css-prefix}-zoom-out-map:before { content: "\e56b"; }
diff --git a/vendor/mervick/material-design-icons/scss/_larger.scss b/vendor/mervick/material-design-icons/scss/_larger.scss
new file mode 100644
index 000000000..7ab8a8742
--- /dev/null
+++ b/vendor/mervick/material-design-icons/scss/_larger.scss
@@ -0,0 +1,15 @@
+@import "variables";
+
+// Icon Sizes
+// -------------------------
+
+/* makes the font 33% larger relative to the icon container */
+.#{$md-css-prefix}-lg, .#{$md-css-prefix}-size-lg {
+ font-size: (4em / 3);
+ line-height: (3em / 4);
+ vertical-align: -15%;
+}
+.#{$md-css-prefix}-2x, .#{$md-css-prefix}-size-2x { font-size: 2em; }
+.#{$md-css-prefix}-3x, .#{$md-css-prefix}-size-3x { font-size: 3em; }
+.#{$md-css-prefix}-4x, .#{$md-css-prefix}-size-4x { font-size: 4em; }
+.#{$md-css-prefix}-5x, .#{$md-css-prefix}-size-5x { font-size: 5em; }
diff --git a/vendor/mervick/material-design-icons/scss/_list.scss b/vendor/mervick/material-design-icons/scss/_list.scss
new file mode 100644
index 000000000..9418cb1f1
--- /dev/null
+++ b/vendor/mervick/material-design-icons/scss/_list.scss
@@ -0,0 +1,21 @@
+@import "variables";
+
+// List Icons
+// -------------------------
+
+.#{$md-css-prefix}-ul {
+ padding-left: 0;
+ margin-left: $md-li-width;
+ list-style-type: none;
+ > li { position: relative; }
+}
+.#{$md-css-prefix}-li {
+ position: absolute;
+ left: -$md-li-width;
+ width: $md-li-width;
+ top: (2em / 14);
+ text-align: center;
+ &.#{$md-css-prefix}-lg {
+ left: -$md-li-width + (4em / 14);
+ }
+}
diff --git a/vendor/mervick/material-design-icons/scss/_mixins.scss b/vendor/mervick/material-design-icons/scss/_mixins.scss
new file mode 100644
index 000000000..77ef55403
--- /dev/null
+++ b/vendor/mervick/material-design-icons/scss/_mixins.scss
@@ -0,0 +1,16 @@
+// Mixins
+// --------------------------
+
+@mixin md-icon-rotate($degrees, $rotation) {
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation});
+ -webkit-transform: rotate($degrees);
+ -ms-transform: rotate($degrees);
+ transform: rotate($degrees);
+}
+
+@mixin md-icon-flip($horiz, $vert, $rotation) {
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation});
+ -webkit-transform: scale($horiz, $vert);
+ -ms-transform: scale($horiz, $vert);
+ transform: scale($horiz, $vert);
+}
diff --git a/vendor/mervick/material-design-icons/scss/_path.scss b/vendor/mervick/material-design-icons/scss/_path.scss
new file mode 100644
index 000000000..7753970d6
--- /dev/null
+++ b/vendor/mervick/material-design-icons/scss/_path.scss
@@ -0,0 +1,18 @@
+@import "variables";
+
+/* FONT PATH
+ * -------------------------- */
+
+@font-face {
+ font-family: $md-font-family;
+ font-style: normal;
+ font-weight: 400;
+ src: url('#{$md-font-path}/MaterialIcons-Regular.eot?v=#{$md-version}');
+ src: url('#{$md-font-path}/MaterialIcons-Regular.eot?v=#{$md-version}#iefix') format('embedded-opentype'),
+ //local('Material Icons'),
+ //local('MaterialIcons-Regular'),
+ url('#{$md-font-path}/MaterialIcons-Regular.woff2?v=#{$md-version}') format('woff2'),
+ url('#{$md-font-path}/MaterialIcons-Regular.woff?v=#{$md-version}') format('woff'),
+ url('#{$md-font-path}/MaterialIcons-Regular.ttf?v=#{$md-version}') format('truetype'),
+ url('#{$md-font-path}/MaterialIcons-Regular.svg?v=#{$md-version}#materialiconsregular') format('svg');
+} \ No newline at end of file
diff --git a/vendor/mervick/material-design-icons/scss/_rotated-flipped.scss b/vendor/mervick/material-design-icons/scss/_rotated-flipped.scss
new file mode 100644
index 000000000..0bac9e1a8
--- /dev/null
+++ b/vendor/mervick/material-design-icons/scss/_rotated-flipped.scss
@@ -0,0 +1,22 @@
+@import "variables";
+
+// Rotated & Flipped Icons
+// -------------------------
+
+.#{$md-css-prefix}-rotate-90 { @include md-icon-rotate(90deg, 1); }
+.#{$md-css-prefix}-rotate-180 { @include md-icon-rotate(180deg, 2); }
+.#{$md-css-prefix}-rotate-270 { @include md-icon-rotate(270deg, 3); }
+
+.#{$md-css-prefix}-flip-horizontal { @include md-icon-flip(-1, 1, 0); }
+.#{$md-css-prefix}-flip-vertical { @include md-icon-flip(1, -1, 2); }
+
+// Hook for IE8-9
+// -------------------------
+
+:root .#{$md-css-prefix}-rotate-90,
+:root .#{$md-css-prefix}-rotate-180,
+:root .#{$md-css-prefix}-rotate-270,
+:root .#{$md-css-prefix}-flip-horizontal,
+:root .#{$md-css-prefix}-flip-vertical {
+ filter: none;
+}
diff --git a/vendor/mervick/material-design-icons/scss/_stacked.scss b/vendor/mervick/material-design-icons/scss/_stacked.scss
new file mode 100644
index 000000000..ae2879c20
--- /dev/null
+++ b/vendor/mervick/material-design-icons/scss/_stacked.scss
@@ -0,0 +1,22 @@
+@import "variables";
+
+// Stacked Icons
+// -------------------------
+
+.#{$md-css-prefix}-stack {
+ position: relative;
+ display: inline-block;
+ width: 2em;
+ height: 2em;
+ line-height: 2em;
+ vertical-align: middle;
+}
+.#{$md-css-prefix}-stack-1x, .#{$md-css-prefix}-stack-2x {
+ position: absolute;
+ left: 0;
+ width: 100%;
+ text-align: center;
+}
+.#{$md-css-prefix}-stack-1x { line-height: inherit; }
+.#{$md-css-prefix}-stack-2x { font-size: 2em; }
+.#{$md-css-prefix}-inverse { color: $md-inverse; }
diff --git a/vendor/mervick/material-design-icons/scss/_variables.scss b/vendor/mervick/material-design-icons/scss/_variables.scss
new file mode 100644
index 000000000..546dbe217
--- /dev/null
+++ b/vendor/mervick/material-design-icons/scss/_variables.scss
@@ -0,0 +1,11 @@
+// Variables
+// --------------------------
+
+$md-font-family: "Material Design Icons" !default;
+$md-font-path: "../fonts" !default;
+$md-font-size-base: 14px !default;
+$md-css-prefix: mdi !default;
+$md-border-color: #eee !default;
+$md-inverse: #fff !default;
+$md-li-width: (30em / 14) !default;
+$md-version: "2.2.1" !default; \ No newline at end of file
diff --git a/vendor/mervick/material-design-icons/scss/material-icons.scss b/vendor/mervick/material-design-icons/scss/material-icons.scss
new file mode 100644
index 000000000..8a45f956e
--- /dev/null
+++ b/vendor/mervick/material-design-icons/scss/material-icons.scss
@@ -0,0 +1,12 @@
+@import "variables";
+@import "mixins";
+@import "path";
+@import "core";
+@import "larger";
+@import "fixed-width";
+@import "list";
+@import "bordered-pulled";
+@import "animated";
+@import "rotated-flipped";
+@import "stacked";
+@import "icons";
diff --git a/vendor/paragonie/constant_time_encoding/.gitignore b/vendor/paragonie/constant_time_encoding/.gitignore
new file mode 100644
index 000000000..e0caea8fc
--- /dev/null
+++ b/vendor/paragonie/constant_time_encoding/.gitignore
@@ -0,0 +1,2 @@
+.idea/
+vendor/ \ No newline at end of file
diff --git a/vendor/paragonie/constant_time_encoding/.travis.yml b/vendor/paragonie/constant_time_encoding/.travis.yml
new file mode 100644
index 000000000..117c114a1
--- /dev/null
+++ b/vendor/paragonie/constant_time_encoding/.travis.yml
@@ -0,0 +1,24 @@
+language: php
+sudo: false
+
+matrix:
+ fast_finish: true
+ include:
+ - php: "7.1"
+ - php: "7.2"
+ - php: "7.3"
+ - php: "7.4"
+ - php: "8.0"
+ - php: "nightly"
+ allow_failures:
+ - php: "nightly"
+ - php: "7.4"
+ - php: "8.0"
+
+install:
+ - composer self-update
+ - composer update
+
+script:
+ - vendor/bin/phpunit
+ - vendor/bin/psalm
diff --git a/vendor/paragonie/constant_time_encoding/LICENSE.txt b/vendor/paragonie/constant_time_encoding/LICENSE.txt
new file mode 100644
index 000000000..f424f5ecc
--- /dev/null
+++ b/vendor/paragonie/constant_time_encoding/LICENSE.txt
@@ -0,0 +1,48 @@
+The MIT License (MIT)
+
+Copyright (c) 2016 - 2020 Paragon Initiative Enterprises
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+------------------------------------------------------------------------------
+This library was based on the work of Steve "Sc00bz" Thomas.
+------------------------------------------------------------------------------
+
+The MIT License (MIT)
+
+Copyright (c) 2014 Steve Thomas
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
diff --git a/vendor/paragonie/constant_time_encoding/README.md b/vendor/paragonie/constant_time_encoding/README.md
new file mode 100644
index 000000000..d7db2a2d0
--- /dev/null
+++ b/vendor/paragonie/constant_time_encoding/README.md
@@ -0,0 +1,84 @@
+# Constant-Time Encoding
+
+[![Build Status](https://travis-ci.org/paragonie/constant_time_encoding.svg?branch=master)](https://travis-ci.org/paragonie/constant_time_encoding)
+[![Latest Stable Version](https://poser.pugx.org/paragonie/constant_time_encoding/v/stable)](https://packagist.org/packages/paragonie/constant_time_encoding)
+[![Latest Unstable Version](https://poser.pugx.org/paragonie/constant_time_encoding/v/unstable)](https://packagist.org/packages/paragonie/constant_time_encoding)
+[![License](https://poser.pugx.org/paragonie/constant_time_encoding/license)](https://packagist.org/packages/paragonie/constant_time_encoding)
+[![Downloads](https://img.shields.io/packagist/dt/paragonie/constant_time_encoding.svg)](https://packagist.org/packages/paragonie/constant_time_encoding)
+
+Based on the [constant-time base64 implementation made by Steve "Sc00bz" Thomas](https://github.com/Sc00bz/ConstTimeEncoding),
+this library aims to offer character encoding functions that do not leak
+information about what you are encoding/decoding via processor cache
+misses. Further reading on [cache-timing attacks](http://blog.ircmaxell.com/2014/11/its-all-about-time.html).
+
+Our fork offers the following enchancements:
+
+* `mbstring.func_overload` resistance
+* Unit tests
+* Composer- and Packagist-ready
+* Base16 encoding
+* Base32 encoding
+* Uses `pack()` and `unpack()` instead of `chr()` and `ord()`
+
+## PHP Version Requirements
+
+Version 2 of this library should work on **PHP 7** or newer. For PHP 5
+support, see [the v1.x branch](https://github.com/paragonie/constant_time_encoding/tree/v1.x).
+
+If you are adding this as a dependency to a project intended to work on both PHP 5 and PHP 7, please set the required version to `^1|^2` instead of just `^1` or `^2`.
+
+## How to Install
+
+```sh
+composer require paragonie/constant_time_encoding
+```
+
+## How to Use
+
+```php
+use \ParagonIE\ConstantTime\Encoding;
+
+// possibly (if applicable):
+// require 'vendor/autoload.php';
+
+$data = random_bytes(32);
+echo Encoding::base64Encode($data), "\n";
+echo Encoding::base32EncodeUpper($data), "\n";
+echo Encoding::base32Encode($data), "\n";
+echo Encoding::hexEncode($data), "\n";
+echo Encoding::hexEncodeUpper($data), "\n";
+```
+
+Example output:
+
+```
+1VilPkeVqirlPifk5scbzcTTbMT2clp+Zkyv9VFFasE=
+2VMKKPSHSWVCVZJ6E7SONRY3ZXCNG3GE6ZZFU7TGJSX7KUKFNLAQ====
+2vmkkpshswvcvzj6e7sonry3zxcng3ge6zzfu7tgjsx7kukfnlaq====
+d558a53e4795aa2ae53e27e4e6c71bcdc4d36cc4f6725a7e664caff551456ac1
+D558A53E4795AA2AE53E27E4E6C71BDCC4D36CC4F6725A7E664CAFF551456AC1
+```
+
+If you only need a particular variant, you can just reference the
+required class like so:
+
+```php
+use \ParagonIE\ConstantTime\Base64;
+use \ParagonIE\ConstantTime\Base32;
+
+$data = random_bytes(32);
+echo Base64::encode($data), "\n";
+echo Base32::encode($data), "\n";
+```
+
+Example output:
+
+```
+1VilPkeVqirlPifk5scbzcTTbMT2clp+Zkyv9VFFasE=
+2vmkkpshswvcvzj6e7sonry3zxcng3ge6zzfu7tgjsx7kukfnlaq====
+```
+
+## Support Contracts
+
+If your company uses this library in their products or services, you may be
+interested in [purchasing a support contract from Paragon Initiative Enterprises](https://paragonie.com/enterprise).
diff --git a/vendor/paragonie/constant_time_encoding/composer.json b/vendor/paragonie/constant_time_encoding/composer.json
new file mode 100644
index 000000000..583fe366f
--- /dev/null
+++ b/vendor/paragonie/constant_time_encoding/composer.json
@@ -0,0 +1,51 @@
+{
+ "name": "paragonie/constant_time_encoding",
+ "description": "Constant-time Implementations of RFC 4648 Encoding (Base-64, Base-32, Base-16)",
+ "keywords": [
+ "base64",
+ "encoding",
+ "rfc4648",
+ "base32",
+ "base16",
+ "hex",
+ "bin2hex",
+ "hex2bin",
+ "base64_encode",
+ "base64_decode",
+ "base32_encode",
+ "base32_decode"
+ ],
+ "license": "MIT",
+ "type": "library",
+ "authors": [
+ {
+ "name": "Paragon Initiative Enterprises",
+ "email": "[email protected]",
+ "homepage": "https://paragonie.com",
+ "role": "Maintainer"
+ },
+ {
+ "name": "Steve 'Sc00bz' Thomas",
+ "email": "[email protected]",
+ "homepage": "https://www.tobtu.com",
+ "role": "Original Developer"
+ }
+ ],
+ "support": {
+ "issues": "https://github.com/paragonie/constant_time_encoding/issues",
+ "email": "[email protected]",
+ "source": "https://github.com/paragonie/constant_time_encoding"
+ },
+ "require": {
+ "php": "^7|^8"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^6|^7|^8|^9",
+ "vimeo/psalm": "^1|^2|^3|^4"
+ },
+ "autoload": {
+ "psr-4": {
+ "ParagonIE\\ConstantTime\\": "src/"
+ }
+ }
+}
diff --git a/vendor/paragonie/constant_time_encoding/phpunit.xml.dist b/vendor/paragonie/constant_time_encoding/phpunit.xml.dist
new file mode 100644
index 000000000..4d090343e
--- /dev/null
+++ b/vendor/paragonie/constant_time_encoding/phpunit.xml.dist
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" backupGlobals="true" backupStaticAttributes="false" bootstrap="vendor/autoload.php" colors="true" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" processIsolation="false" stopOnError="false" stopOnFailure="false" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd">
+ <coverage processUncoveredFiles="true">
+ <include>
+ <directory suffix=".php">./src</directory>
+ </include>
+ </coverage>
+ <testsuites>
+ <testsuite name="Constant Time Encoding Test Suite">
+ <directory suffix="Test.php">./tests</directory>
+ </testsuite>
+ </testsuites>
+</phpunit>
diff --git a/vendor/paragonie/constant_time_encoding/psalm.xml b/vendor/paragonie/constant_time_encoding/psalm.xml
new file mode 100644
index 000000000..0a17264b0
--- /dev/null
+++ b/vendor/paragonie/constant_time_encoding/psalm.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<psalm
+ useDocblockTypes="true"
+ totallyTyped="true"
+>
+ <projectFiles>
+ <directory name="src" />
+ </projectFiles>
+</psalm>
diff --git a/vendor/paragonie/constant_time_encoding/src/Base32.php b/vendor/paragonie/constant_time_encoding/src/Base32.php
new file mode 100644
index 000000000..7784bafbf
--- /dev/null
+++ b/vendor/paragonie/constant_time_encoding/src/Base32.php
@@ -0,0 +1,471 @@
+<?php
+declare(strict_types=1);
+namespace ParagonIE\ConstantTime;
+
+/**
+ * Copyright (c) 2016 - 2018 Paragon Initiative Enterprises.
+ * Copyright (c) 2014 Steve "Sc00bz" Thomas (steve at tobtu dot com)
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+/**
+ * Class Base32
+ * [A-Z][2-7]
+ *
+ * @package ParagonIE\ConstantTime
+ */
+abstract class Base32 implements EncoderInterface
+{
+ /**
+ * Decode a Base32-encoded string into raw binary
+ *
+ * @param string $encodedString
+ * @param bool $strictPadding
+ * @return string
+ */
+ public static function decode(string $encodedString, bool $strictPadding = false): string
+ {
+ return static::doDecode($encodedString, false, $strictPadding);
+ }
+
+ /**
+ * Decode an uppercase Base32-encoded string into raw binary
+ *
+ * @param string $src
+ * @param bool $strictPadding
+ * @return string
+ */
+ public static function decodeUpper(string $src, bool $strictPadding = false): string
+ {
+ return static::doDecode($src, true, $strictPadding);
+ }
+
+ /**
+ * Encode into Base32 (RFC 4648)
+ *
+ * @param string $src
+ * @return string
+ * @throws \TypeError
+ */
+ public static function encode(string $src): string
+ {
+ return static::doEncode($src, false, true);
+ }
+ /**
+ * Encode into Base32 (RFC 4648)
+ *
+ * @param string $src
+ * @return string
+ * @throws \TypeError
+ */
+ public static function encodeUnpadded(string $src): string
+ {
+ return static::doEncode($src, false, false);
+ }
+
+ /**
+ * Encode into uppercase Base32 (RFC 4648)
+ *
+ * @param string $src
+ * @return string
+ * @throws \TypeError
+ */
+ public static function encodeUpper(string $src): string
+ {
+ return static::doEncode($src, true, true);
+ }
+
+ /**
+ * Encode into uppercase Base32 (RFC 4648)
+ *
+ * @param string $src
+ * @return string
+ * @throws \TypeError
+ */
+ public static function encodeUpperUnpadded(string $src): string
+ {
+ return static::doEncode($src, true, false);
+ }
+
+ /**
+ * Uses bitwise operators instead of table-lookups to turn 5-bit integers
+ * into 8-bit integers.
+ *
+ * @param int $src
+ * @return int
+ */
+ protected static function decode5Bits(int $src): int
+ {
+ $ret = -1;
+
+ // if ($src > 96 && $src < 123) $ret += $src - 97 + 1; // -64
+ $ret += (((0x60 - $src) & ($src - 0x7b)) >> 8) & ($src - 96);
+
+ // if ($src > 0x31 && $src < 0x38) $ret += $src - 24 + 1; // -23
+ $ret += (((0x31 - $src) & ($src - 0x38)) >> 8) & ($src - 23);
+
+ return $ret;
+ }
+
+ /**
+ * Uses bitwise operators instead of table-lookups to turn 5-bit integers
+ * into 8-bit integers.
+ *
+ * Uppercase variant.
+ *
+ * @param int $src
+ * @return int
+ */
+ protected static function decode5BitsUpper(int $src): int
+ {
+ $ret = -1;
+
+ // if ($src > 64 && $src < 91) $ret += $src - 65 + 1; // -64
+ $ret += (((0x40 - $src) & ($src - 0x5b)) >> 8) & ($src - 64);
+
+ // if ($src > 0x31 && $src < 0x38) $ret += $src - 24 + 1; // -23
+ $ret += (((0x31 - $src) & ($src - 0x38)) >> 8) & ($src - 23);
+
+ return $ret;
+ }
+
+ /**
+ * Uses bitwise operators instead of table-lookups to turn 8-bit integers
+ * into 5-bit integers.
+ *
+ * @param int $src
+ * @return string
+ */
+ protected static function encode5Bits(int $src): string
+ {
+ $diff = 0x61;
+
+ // if ($src > 25) $ret -= 72;
+ $diff -= ((25 - $src) >> 8) & 73;
+
+ return \pack('C', $src + $diff);
+ }
+
+ /**
+ * Uses bitwise operators instead of table-lookups to turn 8-bit integers
+ * into 5-bit integers.
+ *
+ * Uppercase variant.
+ *
+ * @param int $src
+ * @return string
+ */
+ protected static function encode5BitsUpper(int $src): string
+ {
+ $diff = 0x41;
+
+ // if ($src > 25) $ret -= 40;
+ $diff -= ((25 - $src) >> 8) & 41;
+
+ return \pack('C', $src + $diff);
+ }
+
+
+ /**
+ * Base32 decoding
+ *
+ * @param string $src
+ * @param bool $upper
+ * @param bool $strictPadding
+ * @return string
+ * @throws \TypeError
+ * @psalm-suppress RedundantCondition
+ */
+ protected static function doDecode(string $src, bool $upper = false, bool $strictPadding = false): string
+ {
+ // We do this to reduce code duplication:
+ $method = $upper
+ ? 'decode5BitsUpper'
+ : 'decode5Bits';
+
+ // Remove padding
+ $srcLen = Binary::safeStrlen($src);
+ if ($srcLen === 0) {
+ return '';
+ }
+ if ($strictPadding) {
+ if (($srcLen & 7) === 0) {
+ for ($j = 0; $j < 7; ++$j) {
+ if ($src[$srcLen - 1] === '=') {
+ $srcLen--;
+ } else {
+ break;
+ }
+ }
+ }
+ if (($srcLen & 7) === 1) {
+ throw new \RangeException(
+ 'Incorrect padding'
+ );
+ }
+ } else {
+ $src = \rtrim($src, '=');
+ $srcLen = Binary::safeStrlen($src);
+ }
+
+ $err = 0;
+ $dest = '';
+ // Main loop (no padding):
+ for ($i = 0; $i + 8 <= $srcLen; $i += 8) {
+ /** @var array<int, int> $chunk */
+ $chunk = \unpack('C*', Binary::safeSubstr($src, $i, 8));
+ /** @var int $c0 */
+ $c0 = static::$method($chunk[1]);
+ /** @var int $c1 */
+ $c1 = static::$method($chunk[2]);
+ /** @var int $c2 */
+ $c2 = static::$method($chunk[3]);
+ /** @var int $c3 */
+ $c3 = static::$method($chunk[4]);
+ /** @var int $c4 */
+ $c4 = static::$method($chunk[5]);
+ /** @var int $c5 */
+ $c5 = static::$method($chunk[6]);
+ /** @var int $c6 */
+ $c6 = static::$method($chunk[7]);
+ /** @var int $c7 */
+ $c7 = static::$method($chunk[8]);
+
+ $dest .= \pack(
+ 'CCCCC',
+ (($c0 << 3) | ($c1 >> 2) ) & 0xff,
+ (($c1 << 6) | ($c2 << 1) | ($c3 >> 4)) & 0xff,
+ (($c3 << 4) | ($c4 >> 1) ) & 0xff,
+ (($c4 << 7) | ($c5 << 2) | ($c6 >> 3)) & 0xff,
+ (($c6 << 5) | ($c7 ) ) & 0xff
+ );
+ $err |= ($c0 | $c1 | $c2 | $c3 | $c4 | $c5 | $c6 | $c7) >> 8;
+ }
+ // The last chunk, which may have padding:
+ if ($i < $srcLen) {
+ /** @var array<int, int> $chunk */
+ $chunk = \unpack('C*', Binary::safeSubstr($src, $i, $srcLen - $i));
+ /** @var int $c0 */
+ $c0 = static::$method($chunk[1]);
+
+ if ($i + 6 < $srcLen) {
+ /** @var int $c1 */
+ $c1 = static::$method($chunk[2]);
+ /** @var int $c2 */
+ $c2 = static::$method($chunk[3]);
+ /** @var int $c3 */
+ $c3 = static::$method($chunk[4]);
+ /** @var int $c4 */
+ $c4 = static::$method($chunk[5]);
+ /** @var int $c5 */
+ $c5 = static::$method($chunk[6]);
+ /** @var int $c6 */
+ $c6 = static::$method($chunk[7]);
+
+ $dest .= \pack(
+ 'CCCC',
+ (($c0 << 3) | ($c1 >> 2) ) & 0xff,
+ (($c1 << 6) | ($c2 << 1) | ($c3 >> 4)) & 0xff,
+ (($c3 << 4) | ($c4 >> 1) ) & 0xff,
+ (($c4 << 7) | ($c5 << 2) | ($c6 >> 3)) & 0xff
+ );
+ $err |= ($c0 | $c1 | $c2 | $c3 | $c4 | $c5 | $c6) >> 8;
+ } elseif ($i + 5 < $srcLen) {
+ /** @var int $c1 */
+ $c1 = static::$method($chunk[2]);
+ /** @var int $c2 */
+ $c2 = static::$method($chunk[3]);
+ /** @var int $c3 */
+ $c3 = static::$method($chunk[4]);
+ /** @var int $c4 */
+ $c4 = static::$method($chunk[5]);
+ /** @var int $c5 */
+ $c5 = static::$method($chunk[6]);
+
+ $dest .= \pack(
+ 'CCCC',
+ (($c0 << 3) | ($c1 >> 2) ) & 0xff,
+ (($c1 << 6) | ($c2 << 1) | ($c3 >> 4)) & 0xff,
+ (($c3 << 4) | ($c4 >> 1) ) & 0xff,
+ (($c4 << 7) | ($c5 << 2) ) & 0xff
+ );
+ $err |= ($c0 | $c1 | $c2 | $c3 | $c4 | $c5) >> 8;
+ } elseif ($i + 4 < $srcLen) {
+ /** @var int $c1 */
+ $c1 = static::$method($chunk[2]);
+ /** @var int $c2 */
+ $c2 = static::$method($chunk[3]);
+ /** @var int $c3 */
+ $c3 = static::$method($chunk[4]);
+ /** @var int $c4 */
+ $c4 = static::$method($chunk[5]);
+
+ $dest .= \pack(
+ 'CCC',
+ (($c0 << 3) | ($c1 >> 2) ) & 0xff,
+ (($c1 << 6) | ($c2 << 1) | ($c3 >> 4)) & 0xff,
+ (($c3 << 4) | ($c4 >> 1) ) & 0xff
+ );
+ $err |= ($c0 | $c1 | $c2 | $c3 | $c4) >> 8;
+ } elseif ($i + 3 < $srcLen) {
+ /** @var int $c1 */
+ $c1 = static::$method($chunk[2]);
+ /** @var int $c2 */
+ $c2 = static::$method($chunk[3]);
+ /** @var int $c3 */
+ $c3 = static::$method($chunk[4]);
+
+ $dest .= \pack(
+ 'CC',
+ (($c0 << 3) | ($c1 >> 2) ) & 0xff,
+ (($c1 << 6) | ($c2 << 1) | ($c3 >> 4)) & 0xff
+ );
+ $err |= ($c0 | $c1 | $c2 | $c3) >> 8;
+ } elseif ($i + 2 < $srcLen) {
+ /** @var int $c1 */
+ $c1 = static::$method($chunk[2]);
+ /** @var int $c2 */
+ $c2 = static::$method($chunk[3]);
+
+ $dest .= \pack(
+ 'CC',
+ (($c0 << 3) | ($c1 >> 2) ) & 0xff,
+ (($c1 << 6) | ($c2 << 1) ) & 0xff
+ );
+ $err |= ($c0 | $c1 | $c2) >> 8;
+ } elseif ($i + 1 < $srcLen) {
+ /** @var int $c1 */
+ $c1 = static::$method($chunk[2]);
+
+ $dest .= \pack(
+ 'C',
+ (($c0 << 3) | ($c1 >> 2) ) & 0xff
+ );
+ $err |= ($c0 | $c1) >> 8;
+ } else {
+ $dest .= \pack(
+ 'C',
+ (($c0 << 3) ) & 0xff
+ );
+ $err |= ($c0) >> 8;
+ }
+ }
+ /** @var bool $check */
+ $check = ($err === 0);
+ if (!$check) {
+ throw new \RangeException(
+ 'Base32::doDecode() only expects characters in the correct base32 alphabet'
+ );
+ }
+ return $dest;
+ }
+
+ /**
+ * Base32 Encoding
+ *
+ * @param string $src
+ * @param bool $upper
+ * @param bool $pad
+ * @return string
+ * @throws \TypeError
+ */
+ protected static function doEncode(string $src, bool $upper = false, $pad = true): string
+ {
+ // We do this to reduce code duplication:
+ $method = $upper
+ ? 'encode5BitsUpper'
+ : 'encode5Bits';
+
+ $dest = '';
+ $srcLen = Binary::safeStrlen($src);
+
+ // Main loop (no padding):
+ for ($i = 0; $i + 5 <= $srcLen; $i += 5) {
+ /** @var array<int, int> $chunk */
+ $chunk = \unpack('C*', Binary::safeSubstr($src, $i, 5));
+ $b0 = $chunk[1];
+ $b1 = $chunk[2];
+ $b2 = $chunk[3];
+ $b3 = $chunk[4];
+ $b4 = $chunk[5];
+ $dest .=
+ static::$method( ($b0 >> 3) & 31) .
+ static::$method((($b0 << 2) | ($b1 >> 6)) & 31) .
+ static::$method((($b1 >> 1) ) & 31) .
+ static::$method((($b1 << 4) | ($b2 >> 4)) & 31) .
+ static::$method((($b2 << 1) | ($b3 >> 7)) & 31) .
+ static::$method((($b3 >> 2) ) & 31) .
+ static::$method((($b3 << 3) | ($b4 >> 5)) & 31) .
+ static::$method( $b4 & 31);
+ }
+ // The last chunk, which may have padding:
+ if ($i < $srcLen) {
+ /** @var array<int, int> $chunk */
+ $chunk = \unpack('C*', Binary::safeSubstr($src, $i, $srcLen - $i));
+ $b0 = $chunk[1];
+ if ($i + 3 < $srcLen) {
+ $b1 = $chunk[2];
+ $b2 = $chunk[3];
+ $b3 = $chunk[4];
+ $dest .=
+ static::$method( ($b0 >> 3) & 31) .
+ static::$method((($b0 << 2) | ($b1 >> 6)) & 31) .
+ static::$method((($b1 >> 1) ) & 31) .
+ static::$method((($b1 << 4) | ($b2 >> 4)) & 31) .
+ static::$method((($b2 << 1) | ($b3 >> 7)) & 31) .
+ static::$method((($b3 >> 2) ) & 31) .
+ static::$method((($b3 << 3) ) & 31);
+ if ($pad) {
+ $dest .= '=';
+ }
+ } elseif ($i + 2 < $srcLen) {
+ $b1 = $chunk[2];
+ $b2 = $chunk[3];
+ $dest .=
+ static::$method( ($b0 >> 3) & 31) .
+ static::$method((($b0 << 2) | ($b1 >> 6)) & 31) .
+ static::$method((($b1 >> 1) ) & 31) .
+ static::$method((($b1 << 4) | ($b2 >> 4)) & 31) .
+ static::$method((($b2 << 1) ) & 31);
+ if ($pad) {
+ $dest .= '===';
+ }
+ } elseif ($i + 1 < $srcLen) {
+ $b1 = $chunk[2];
+ $dest .=
+ static::$method( ($b0 >> 3) & 31) .
+ static::$method((($b0 << 2) | ($b1 >> 6)) & 31) .
+ static::$method((($b1 >> 1) ) & 31) .
+ static::$method((($b1 << 4) ) & 31);
+ if ($pad) {
+ $dest .= '====';
+ }
+ } else {
+ $dest .=
+ static::$method( ($b0 >> 3) & 31) .
+ static::$method( ($b0 << 2) & 31);
+ if ($pad) {
+ $dest .= '======';
+ }
+ }
+ }
+ return $dest;
+ }
+}
diff --git a/vendor/paragonie/constant_time_encoding/src/Base32Hex.php b/vendor/paragonie/constant_time_encoding/src/Base32Hex.php
new file mode 100644
index 000000000..68fdad52c
--- /dev/null
+++ b/vendor/paragonie/constant_time_encoding/src/Base32Hex.php
@@ -0,0 +1,111 @@
+<?php
+declare(strict_types=1);
+namespace ParagonIE\ConstantTime;
+
+/**
+ * Copyright (c) 2016 - 2018 Paragon Initiative Enterprises.
+ * Copyright (c) 2014 Steve "Sc00bz" Thomas (steve at tobtu dot com)
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+/**
+ * Class Base32Hex
+ * [0-9][A-V]
+ *
+ * @package ParagonIE\ConstantTime
+ */
+abstract class Base32Hex extends Base32
+{
+ /**
+ * Uses bitwise operators instead of table-lookups to turn 5-bit integers
+ * into 8-bit integers.
+ *
+ * @param int $src
+ * @return int
+ */
+ protected static function decode5Bits(int $src): int
+ {
+ $ret = -1;
+
+ // if ($src > 0x30 && $src < 0x3a) ret += $src - 0x2e + 1; // -47
+ $ret += (((0x2f - $src) & ($src - 0x3a)) >> 8) & ($src - 47);
+
+ // if ($src > 0x60 && $src < 0x77) ret += $src - 0x61 + 10 + 1; // -86
+ $ret += (((0x60 - $src) & ($src - 0x77)) >> 8) & ($src - 86);
+
+ return $ret;
+ }
+
+ /**
+ * Uses bitwise operators instead of table-lookups to turn 5-bit integers
+ * into 8-bit integers.
+ *
+ * @param int $src
+ * @return int
+ */
+ protected static function decode5BitsUpper(int $src): int
+ {
+ $ret = -1;
+
+ // if ($src > 0x30 && $src < 0x3a) ret += $src - 0x2e + 1; // -47
+ $ret += (((0x2f - $src) & ($src - 0x3a)) >> 8) & ($src - 47);
+
+ // if ($src > 0x40 && $src < 0x57) ret += $src - 0x41 + 10 + 1; // -54
+ $ret += (((0x40 - $src) & ($src - 0x57)) >> 8) & ($src - 54);
+
+ return $ret;
+ }
+
+ /**
+ * Uses bitwise operators instead of table-lookups to turn 8-bit integers
+ * into 5-bit integers.
+ *
+ * @param int $src
+ * @return string
+ */
+ protected static function encode5Bits(int $src): string
+ {
+ $src += 0x30;
+
+ // if ($src > 0x39) $src += 0x61 - 0x3a; // 39
+ $src += ((0x39 - $src) >> 8) & 39;
+
+ return \pack('C', $src);
+ }
+
+ /**
+ * Uses bitwise operators instead of table-lookups to turn 8-bit integers
+ * into 5-bit integers.
+ *
+ * Uppercase variant.
+ *
+ * @param int $src
+ * @return string
+ */
+ protected static function encode5BitsUpper(int $src): string
+ {
+ $src += 0x30;
+
+ // if ($src > 0x39) $src += 0x41 - 0x3a; // 7
+ $src += ((0x39 - $src) >> 8) & 7;
+
+ return \pack('C', $src);
+ }
+} \ No newline at end of file
diff --git a/vendor/paragonie/constant_time_encoding/src/Base64.php b/vendor/paragonie/constant_time_encoding/src/Base64.php
new file mode 100644
index 000000000..4739e4895
--- /dev/null
+++ b/vendor/paragonie/constant_time_encoding/src/Base64.php
@@ -0,0 +1,271 @@
+<?php
+declare(strict_types=1);
+namespace ParagonIE\ConstantTime;
+
+/**
+ * Copyright (c) 2016 - 2018 Paragon Initiative Enterprises.
+ * Copyright (c) 2014 Steve "Sc00bz" Thomas (steve at tobtu dot com)
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+/**
+ * Class Base64
+ * [A-Z][a-z][0-9]+/
+ *
+ * @package ParagonIE\ConstantTime
+ */
+abstract class Base64 implements EncoderInterface
+{
+ /**
+ * Encode into Base64
+ *
+ * Base64 character set "[A-Z][a-z][0-9]+/"
+ *
+ * @param string $src
+ * @return string
+ * @throws \TypeError
+ */
+ public static function encode(string $src): string
+ {
+ return static::doEncode($src, true);
+ }
+
+ /**
+ * Encode into Base64, no = padding
+ *
+ * Base64 character set "[A-Z][a-z][0-9]+/"
+ *
+ * @param string $src
+ * @return string
+ * @throws \TypeError
+ */
+ public static function encodeUnpadded(string $src): string
+ {
+ return static::doEncode($src, false);
+ }
+
+ /**
+ * @param string $src
+ * @param bool $pad Include = padding?
+ * @return string
+ * @throws \TypeError
+ */
+ protected static function doEncode(string $src, bool $pad = true): string
+ {
+ $dest = '';
+ $srcLen = Binary::safeStrlen($src);
+ // Main loop (no padding):
+ for ($i = 0; $i + 3 <= $srcLen; $i += 3) {
+ /** @var array<int, int> $chunk */
+ $chunk = \unpack('C*', Binary::safeSubstr($src, $i, 3));
+ $b0 = $chunk[1];
+ $b1 = $chunk[2];
+ $b2 = $chunk[3];
+
+ $dest .=
+ static::encode6Bits( $b0 >> 2 ) .
+ static::encode6Bits((($b0 << 4) | ($b1 >> 4)) & 63) .
+ static::encode6Bits((($b1 << 2) | ($b2 >> 6)) & 63) .
+ static::encode6Bits( $b2 & 63);
+ }
+ // The last chunk, which may have padding:
+ if ($i < $srcLen) {
+ /** @var array<int, int> $chunk */
+ $chunk = \unpack('C*', Binary::safeSubstr($src, $i, $srcLen - $i));
+ $b0 = $chunk[1];
+ if ($i + 1 < $srcLen) {
+ $b1 = $chunk[2];
+ $dest .=
+ static::encode6Bits($b0 >> 2) .
+ static::encode6Bits((($b0 << 4) | ($b1 >> 4)) & 63) .
+ static::encode6Bits(($b1 << 2) & 63);
+ if ($pad) {
+ $dest .= '=';
+ }
+ } else {
+ $dest .=
+ static::encode6Bits( $b0 >> 2) .
+ static::encode6Bits(($b0 << 4) & 63);
+ if ($pad) {
+ $dest .= '==';
+ }
+ }
+ }
+ return $dest;
+ }
+
+ /**
+ * decode from base64 into binary
+ *
+ * Base64 character set "./[A-Z][a-z][0-9]"
+ *
+ * @param string $encodedString
+ * @param bool $strictPadding
+ * @return string
+ * @throws \RangeException
+ * @throws \TypeError
+ * @psalm-suppress RedundantCondition
+ */
+ public static function decode(string $encodedString, bool $strictPadding = false): string
+ {
+ // Remove padding
+ $srcLen = Binary::safeStrlen($encodedString);
+ if ($srcLen === 0) {
+ return '';
+ }
+
+ if ($strictPadding) {
+ if (($srcLen & 3) === 0) {
+ if ($encodedString[$srcLen - 1] === '=') {
+ $srcLen--;
+ if ($encodedString[$srcLen - 1] === '=') {
+ $srcLen--;
+ }
+ }
+ }
+ if (($srcLen & 3) === 1) {
+ throw new \RangeException(
+ 'Incorrect padding'
+ );
+ }
+ if ($encodedString[$srcLen - 1] === '=') {
+ throw new \RangeException(
+ 'Incorrect padding'
+ );
+ }
+ } else {
+ $encodedString = \rtrim($encodedString, '=');
+ $srcLen = Binary::safeStrlen($encodedString);
+ }
+
+ $err = 0;
+ $dest = '';
+ // Main loop (no padding):
+ for ($i = 0; $i + 4 <= $srcLen; $i += 4) {
+ /** @var array<int, int> $chunk */
+ $chunk = \unpack('C*', Binary::safeSubstr($encodedString, $i, 4));
+ $c0 = static::decode6Bits($chunk[1]);
+ $c1 = static::decode6Bits($chunk[2]);
+ $c2 = static::decode6Bits($chunk[3]);
+ $c3 = static::decode6Bits($chunk[4]);
+
+ $dest .= \pack(
+ 'CCC',
+ ((($c0 << 2) | ($c1 >> 4)) & 0xff),
+ ((($c1 << 4) | ($c2 >> 2)) & 0xff),
+ ((($c2 << 6) | $c3 ) & 0xff)
+ );
+ $err |= ($c0 | $c1 | $c2 | $c3) >> 8;
+ }
+ // The last chunk, which may have padding:
+ if ($i < $srcLen) {
+ /** @var array<int, int> $chunk */
+ $chunk = \unpack('C*', Binary::safeSubstr($encodedString, $i, $srcLen - $i));
+ $c0 = static::decode6Bits($chunk[1]);
+
+ if ($i + 2 < $srcLen) {
+ $c1 = static::decode6Bits($chunk[2]);
+ $c2 = static::decode6Bits($chunk[3]);
+ $dest .= \pack(
+ 'CC',
+ ((($c0 << 2) | ($c1 >> 4)) & 0xff),
+ ((($c1 << 4) | ($c2 >> 2)) & 0xff)
+ );
+ $err |= ($c0 | $c1 | $c2) >> 8;
+ } elseif ($i + 1 < $srcLen) {
+ $c1 = static::decode6Bits($chunk[2]);
+ $dest .= \pack(
+ 'C',
+ ((($c0 << 2) | ($c1 >> 4)) & 0xff)
+ );
+ $err |= ($c0 | $c1) >> 8;
+ } elseif ($i < $srcLen && $strictPadding) {
+ $err |= 1;
+ }
+ }
+ /** @var bool $check */
+ $check = ($err === 0);
+ if (!$check) {
+ throw new \RangeException(
+ 'Base64::decode() only expects characters in the correct base64 alphabet'
+ );
+ }
+ return $dest;
+ }
+
+ /**
+ * Uses bitwise operators instead of table-lookups to turn 6-bit integers
+ * into 8-bit integers.
+ *
+ * Base64 character set:
+ * [A-Z] [a-z] [0-9] + /
+ * 0x41-0x5a, 0x61-0x7a, 0x30-0x39, 0x2b, 0x2f
+ *
+ * @param int $src
+ * @return int
+ */
+ protected static function decode6Bits(int $src): int
+ {
+ $ret = -1;
+
+ // if ($src > 0x40 && $src < 0x5b) $ret += $src - 0x41 + 1; // -64
+ $ret += (((0x40 - $src) & ($src - 0x5b)) >> 8) & ($src - 64);
+
+ // if ($src > 0x60 && $src < 0x7b) $ret += $src - 0x61 + 26 + 1; // -70
+ $ret += (((0x60 - $src) & ($src - 0x7b)) >> 8) & ($src - 70);
+
+ // if ($src > 0x2f && $src < 0x3a) $ret += $src - 0x30 + 52 + 1; // 5
+ $ret += (((0x2f - $src) & ($src - 0x3a)) >> 8) & ($src + 5);
+
+ // if ($src == 0x2b) $ret += 62 + 1;
+ $ret += (((0x2a - $src) & ($src - 0x2c)) >> 8) & 63;
+
+ // if ($src == 0x2f) ret += 63 + 1;
+ $ret += (((0x2e - $src) & ($src - 0x30)) >> 8) & 64;
+
+ return $ret;
+ }
+
+ /**
+ * Uses bitwise operators instead of table-lookups to turn 8-bit integers
+ * into 6-bit integers.
+ *
+ * @param int $src
+ * @return string
+ */
+ protected static function encode6Bits(int $src): string
+ {
+ $diff = 0x41;
+
+ // if ($src > 25) $diff += 0x61 - 0x41 - 26; // 6
+ $diff += ((25 - $src) >> 8) & 6;
+
+ // if ($src > 51) $diff += 0x30 - 0x61 - 26; // -75
+ $diff -= ((51 - $src) >> 8) & 75;
+
+ // if ($src > 61) $diff += 0x2b - 0x30 - 10; // -15
+ $diff -= ((61 - $src) >> 8) & 15;
+
+ // if ($src > 62) $diff += 0x2f - 0x2b - 1; // 3
+ $diff += ((62 - $src) >> 8) & 3;
+
+ return \pack('C', $src + $diff);
+ }
+}
diff --git a/vendor/paragonie/constant_time_encoding/src/Base64DotSlash.php b/vendor/paragonie/constant_time_encoding/src/Base64DotSlash.php
new file mode 100644
index 000000000..8ad2e2bf1
--- /dev/null
+++ b/vendor/paragonie/constant_time_encoding/src/Base64DotSlash.php
@@ -0,0 +1,88 @@
+<?php
+declare(strict_types=1);
+namespace ParagonIE\ConstantTime;
+
+/**
+ * Copyright (c) 2016 - 2018 Paragon Initiative Enterprises.
+ * Copyright (c) 2014 Steve "Sc00bz" Thomas (steve at tobtu dot com)
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+/**
+ * Class Base64DotSlash
+ * ./[A-Z][a-z][0-9]
+ *
+ * @package ParagonIE\ConstantTime
+ */
+abstract class Base64DotSlash extends Base64
+{
+ /**
+ * Uses bitwise operators instead of table-lookups to turn 6-bit integers
+ * into 8-bit integers.
+ *
+ * Base64 character set:
+ * ./ [A-Z] [a-z] [0-9]
+ * 0x2e-0x2f, 0x41-0x5a, 0x61-0x7a, 0x30-0x39
+ *
+ * @param int $src
+ * @return int
+ */
+ protected static function decode6Bits(int $src): int
+ {
+ $ret = -1;
+
+ // if ($src > 0x2d && $src < 0x30) ret += $src - 0x2e + 1; // -45
+ $ret += (((0x2d - $src) & ($src - 0x30)) >> 8) & ($src - 45);
+
+ // if ($src > 0x40 && $src < 0x5b) ret += $src - 0x41 + 2 + 1; // -62
+ $ret += (((0x40 - $src) & ($src - 0x5b)) >> 8) & ($src - 62);
+
+ // if ($src > 0x60 && $src < 0x7b) ret += $src - 0x61 + 28 + 1; // -68
+ $ret += (((0x60 - $src) & ($src - 0x7b)) >> 8) & ($src - 68);
+
+ // if ($src > 0x2f && $src < 0x3a) ret += $src - 0x30 + 54 + 1; // 7
+ $ret += (((0x2f - $src) & ($src - 0x3a)) >> 8) & ($src + 7);
+
+ return $ret;
+ }
+
+ /**
+ * Uses bitwise operators instead of table-lookups to turn 8-bit integers
+ * into 6-bit integers.
+ *
+ * @param int $src
+ * @return string
+ */
+ protected static function encode6Bits(int $src): string
+ {
+ $src += 0x2e;
+
+ // if ($src > 0x2f) $src += 0x41 - 0x30; // 17
+ $src += ((0x2f - $src) >> 8) & 17;
+
+ // if ($src > 0x5a) $src += 0x61 - 0x5b; // 6
+ $src += ((0x5a - $src) >> 8) & 6;
+
+ // if ($src > 0x7a) $src += 0x30 - 0x7b; // -75
+ $src -= ((0x7a - $src) >> 8) & 75;
+
+ return \pack('C', $src);
+ }
+}
diff --git a/vendor/paragonie/constant_time_encoding/src/Base64DotSlashOrdered.php b/vendor/paragonie/constant_time_encoding/src/Base64DotSlashOrdered.php
new file mode 100644
index 000000000..dd1459e85
--- /dev/null
+++ b/vendor/paragonie/constant_time_encoding/src/Base64DotSlashOrdered.php
@@ -0,0 +1,82 @@
+<?php
+declare(strict_types=1);
+namespace ParagonIE\ConstantTime;
+
+/**
+ * Copyright (c) 2016 - 2018 Paragon Initiative Enterprises.
+ * Copyright (c) 2014 Steve "Sc00bz" Thomas (steve at tobtu dot com)
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+/**
+ * Class Base64DotSlashOrdered
+ * ./[0-9][A-Z][a-z]
+ *
+ * @package ParagonIE\ConstantTime
+ */
+abstract class Base64DotSlashOrdered extends Base64
+{
+ /**
+ * Uses bitwise operators instead of table-lookups to turn 6-bit integers
+ * into 8-bit integers.
+ *
+ * Base64 character set:
+ * [.-9] [A-Z] [a-z]
+ * 0x2e-0x39, 0x41-0x5a, 0x61-0x7a
+ *
+ * @param int $src
+ * @return int
+ */
+ protected static function decode6Bits(int $src): int
+ {
+ $ret = -1;
+
+ // if ($src > 0x2d && $src < 0x3a) ret += $src - 0x2e + 1; // -45
+ $ret += (((0x2d - $src) & ($src - 0x3a)) >> 8) & ($src - 45);
+
+ // if ($src > 0x40 && $src < 0x5b) ret += $src - 0x41 + 12 + 1; // -52
+ $ret += (((0x40 - $src) & ($src - 0x5b)) >> 8) & ($src - 52);
+
+ // if ($src > 0x60 && $src < 0x7b) ret += $src - 0x61 + 38 + 1; // -58
+ $ret += (((0x60 - $src) & ($src - 0x7b)) >> 8) & ($src - 58);
+
+ return $ret;
+ }
+
+ /**
+ * Uses bitwise operators instead of table-lookups to turn 8-bit integers
+ * into 6-bit integers.
+ *
+ * @param int $src
+ * @return string
+ */
+ protected static function encode6Bits(int $src): string
+ {
+ $src += 0x2e;
+
+ // if ($src > 0x39) $src += 0x41 - 0x3a; // 7
+ $src += ((0x39 - $src) >> 8) & 7;
+
+ // if ($src > 0x5a) $src += 0x61 - 0x5b; // 6
+ $src += ((0x5a - $src) >> 8) & 6;
+
+ return \pack('C', $src);
+ }
+}
diff --git a/vendor/paragonie/constant_time_encoding/src/Base64UrlSafe.php b/vendor/paragonie/constant_time_encoding/src/Base64UrlSafe.php
new file mode 100644
index 000000000..1a4107527
--- /dev/null
+++ b/vendor/paragonie/constant_time_encoding/src/Base64UrlSafe.php
@@ -0,0 +1,95 @@
+<?php
+declare(strict_types=1);
+namespace ParagonIE\ConstantTime;
+
+/**
+ * Copyright (c) 2016 - 2018 Paragon Initiative Enterprises.
+ * Copyright (c) 2014 Steve "Sc00bz" Thomas (steve at tobtu dot com)
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+/**
+ * Class Base64UrlSafe
+ * [A-Z][a-z][0-9]\-_
+ *
+ * @package ParagonIE\ConstantTime
+ */
+abstract class Base64UrlSafe extends Base64
+{
+
+ /**
+ * Uses bitwise operators instead of table-lookups to turn 6-bit integers
+ * into 8-bit integers.
+ *
+ * Base64 character set:
+ * [A-Z] [a-z] [0-9] - _
+ * 0x41-0x5a, 0x61-0x7a, 0x30-0x39, 0x2d, 0x5f
+ *
+ * @param int $src
+ * @return int
+ */
+ protected static function decode6Bits(int $src): int
+ {
+ $ret = -1;
+
+ // if ($src > 0x40 && $src < 0x5b) $ret += $src - 0x41 + 1; // -64
+ $ret += (((0x40 - $src) & ($src - 0x5b)) >> 8) & ($src - 64);
+
+ // if ($src > 0x60 && $src < 0x7b) $ret += $src - 0x61 + 26 + 1; // -70
+ $ret += (((0x60 - $src) & ($src - 0x7b)) >> 8) & ($src - 70);
+
+ // if ($src > 0x2f && $src < 0x3a) $ret += $src - 0x30 + 52 + 1; // 5
+ $ret += (((0x2f - $src) & ($src - 0x3a)) >> 8) & ($src + 5);
+
+ // if ($src == 0x2c) $ret += 62 + 1;
+ $ret += (((0x2c - $src) & ($src - 0x2e)) >> 8) & 63;
+
+ // if ($src == 0x5f) ret += 63 + 1;
+ $ret += (((0x5e - $src) & ($src - 0x60)) >> 8) & 64;
+
+ return $ret;
+ }
+
+ /**
+ * Uses bitwise operators instead of table-lookups to turn 8-bit integers
+ * into 6-bit integers.
+ *
+ * @param int $src
+ * @return string
+ */
+ protected static function encode6Bits(int $src): string
+ {
+ $diff = 0x41;
+
+ // if ($src > 25) $diff += 0x61 - 0x41 - 26; // 6
+ $diff += ((25 - $src) >> 8) & 6;
+
+ // if ($src > 51) $diff += 0x30 - 0x61 - 26; // -75
+ $diff -= ((51 - $src) >> 8) & 75;
+
+ // if ($src > 61) $diff += 0x2d - 0x30 - 10; // -13
+ $diff -= ((61 - $src) >> 8) & 13;
+
+ // if ($src > 62) $diff += 0x5f - 0x2b - 1; // 3
+ $diff += ((62 - $src) >> 8) & 49;
+
+ return \pack('C', $src + $diff);
+ }
+}
diff --git a/vendor/paragonie/constant_time_encoding/src/Binary.php b/vendor/paragonie/constant_time_encoding/src/Binary.php
new file mode 100644
index 000000000..38dbc4e66
--- /dev/null
+++ b/vendor/paragonie/constant_time_encoding/src/Binary.php
@@ -0,0 +1,85 @@
+<?php
+declare(strict_types=1);
+namespace ParagonIE\ConstantTime;
+
+/**
+ * Copyright (c) 2016 - 2018 Paragon Initiative Enterprises.
+ * Copyright (c) 2014 Steve "Sc00bz" Thomas (steve at tobtu dot com)
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+/**
+ * Class Binary
+ *
+ * Binary string operators that don't choke on
+ * mbstring.func_overload
+ *
+ * @package ParagonIE\ConstantTime
+ */
+abstract class Binary
+{
+ /**
+ * Safe string length
+ *
+ * @ref mbstring.func_overload
+ *
+ * @param string $str
+ * @return int
+ */
+ public static function safeStrlen(string $str): int
+ {
+ if (\function_exists('mb_strlen')) {
+ return (int) \mb_strlen($str, '8bit');
+ } else {
+ return \strlen($str);
+ }
+ }
+
+ /**
+ * Safe substring
+ *
+ * @ref mbstring.func_overload
+ *
+ * @staticvar boolean $exists
+ * @param string $str
+ * @param int $start
+ * @param int $length
+ * @return string
+ * @throws \TypeError
+ */
+ public static function safeSubstr(
+ string $str,
+ int $start = 0,
+ $length = null
+ ): string {
+ if ($length === 0) {
+ return '';
+ }
+ if (\function_exists('mb_substr')) {
+ return \mb_substr($str, $start, $length, '8bit');
+ }
+ // Unlike mb_substr(), substr() doesn't accept NULL for length
+ if ($length !== null) {
+ return \substr($str, $start, $length);
+ } else {
+ return \substr($str, $start);
+ }
+ }
+}
diff --git a/vendor/paragonie/constant_time_encoding/src/EncoderInterface.php b/vendor/paragonie/constant_time_encoding/src/EncoderInterface.php
new file mode 100644
index 000000000..7aeee55a8
--- /dev/null
+++ b/vendor/paragonie/constant_time_encoding/src/EncoderInterface.php
@@ -0,0 +1,52 @@
+<?php
+declare(strict_types=1);
+namespace ParagonIE\ConstantTime;
+
+/**
+ * Copyright (c) 2016 - 2018 Paragon Initiative Enterprises.
+ * Copyright (c) 2014 Steve "Sc00bz" Thomas (steve at tobtu dot com)
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+/**
+ * Interface EncoderInterface
+ * @package ParagonIE\ConstantTime
+ */
+interface EncoderInterface
+{
+ /**
+ * Convert a binary string into a hexadecimal string without cache-timing
+ * leaks
+ *
+ * @param string $binString (raw binary)
+ * @return string
+ */
+ public static function encode(string $binString): string;
+
+ /**
+ * Convert a binary string into a hexadecimal string without cache-timing
+ * leaks
+ *
+ * @param string $encodedString
+ * @param bool $strictPadding Error on invalid padding
+ * @return string (raw binary)
+ */
+ public static function decode(string $encodedString, bool $strictPadding = false): string;
+}
diff --git a/vendor/paragonie/constant_time_encoding/src/Encoding.php b/vendor/paragonie/constant_time_encoding/src/Encoding.php
new file mode 100644
index 000000000..896a66841
--- /dev/null
+++ b/vendor/paragonie/constant_time_encoding/src/Encoding.php
@@ -0,0 +1,260 @@
+<?php
+declare(strict_types=1);
+namespace ParagonIE\ConstantTime;
+
+/**
+ * Copyright (c) 2016 - 2018 Paragon Initiative Enterprises.
+ * Copyright (c) 2014 Steve "Sc00bz" Thomas (steve at tobtu dot com)
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+/**
+ * Class Encoding
+ * @package ParagonIE\ConstantTime
+ */
+abstract class Encoding
+{
+ /**
+ * RFC 4648 Base32 encoding
+ *
+ * @param string $str
+ * @return string
+ * @throws \TypeError
+ */
+ public static function base32Encode(string $str): string
+ {
+ return Base32::encode($str);
+ }
+
+ /**
+ * RFC 4648 Base32 encoding
+ *
+ * @param string $str
+ * @return string
+ * @throws \TypeError
+ */
+ public static function base32EncodeUpper(string $str): string
+ {
+ return Base32::encodeUpper($str);
+ }
+
+ /**
+ * RFC 4648 Base32 decoding
+ *
+ * @param string $str
+ * @return string
+ * @throws \TypeError
+ */
+ public static function base32Decode(string $str): string
+ {
+ return Base32::decode($str);
+ }
+
+ /**
+ * RFC 4648 Base32 decoding
+ *
+ * @param string $str
+ * @return string
+ * @throws \TypeError
+ */
+ public static function base32DecodeUpper(string $str): string
+ {
+ return Base32::decodeUpper($str);
+ }
+
+ /**
+ * RFC 4648 Base32 encoding
+ *
+ * @param string $str
+ * @return string
+ * @throws \TypeError
+ */
+ public static function base32HexEncode(string $str): string
+ {
+ return Base32Hex::encode($str);
+ }
+
+ /**
+ * RFC 4648 Base32Hex encoding
+ *
+ * @param string $str
+ * @return string
+ * @throws \TypeError
+ */
+ public static function base32HexEncodeUpper(string $str): string
+ {
+ return Base32Hex::encodeUpper($str);
+ }
+
+ /**
+ * RFC 4648 Base32Hex decoding
+ *
+ * @param string $str
+ * @return string
+ * @throws \TypeError
+ */
+ public static function base32HexDecode(string $str): string
+ {
+ return Base32Hex::decode($str);
+ }
+
+ /**
+ * RFC 4648 Base32Hex decoding
+ *
+ * @param string $str
+ * @return string
+ * @throws \TypeError
+ */
+ public static function base32HexDecodeUpper(string $str): string
+ {
+ return Base32Hex::decodeUpper($str);
+ }
+
+ /**
+ * RFC 4648 Base64 encoding
+ *
+ * @param string $str
+ * @return string
+ * @throws \TypeError
+ */
+ public static function base64Encode(string $str): string
+ {
+ return Base64::encode($str);
+ }
+
+ /**
+ * RFC 4648 Base64 decoding
+ *
+ * @param string $str
+ * @return string
+ * @throws \TypeError
+ */
+ public static function base64Decode(string $str): string
+ {
+ return Base64::decode($str);
+ }
+
+ /**
+ * Encode into Base64
+ *
+ * Base64 character set "./[A-Z][a-z][0-9]"
+ * @param string $str
+ * @return string
+ * @throws \TypeError
+ */
+ public static function base64EncodeDotSlash(string $str): string
+ {
+ return Base64DotSlash::encode($str);
+ }
+
+ /**
+ * Decode from base64 to raw binary
+ *
+ * Base64 character set "./[A-Z][a-z][0-9]"
+ *
+ * @param string $str
+ * @return string
+ * @throws \RangeException
+ * @throws \TypeError
+ */
+ public static function base64DecodeDotSlash(string $str): string
+ {
+ return Base64DotSlash::decode($str);
+ }
+
+ /**
+ * Encode into Base64
+ *
+ * Base64 character set "[.-9][A-Z][a-z]" or "./[0-9][A-Z][a-z]"
+ * @param string $str
+ * @return string
+ * @throws \TypeError
+ */
+ public static function base64EncodeDotSlashOrdered(string $str): string
+ {
+ return Base64DotSlashOrdered::encode($str);
+ }
+
+ /**
+ * Decode from base64 to raw binary
+ *
+ * Base64 character set "[.-9][A-Z][a-z]" or "./[0-9][A-Z][a-z]"
+ *
+ * @param string $str
+ * @return string
+ * @throws \RangeException
+ * @throws \TypeError
+ */
+ public static function base64DecodeDotSlashOrdered(string $str): string
+ {
+ return Base64DotSlashOrdered::decode($str);
+ }
+
+ /**
+ * Convert a binary string into a hexadecimal string without cache-timing
+ * leaks
+ *
+ * @param string $bin_string (raw binary)
+ * @return string
+ * @throws \TypeError
+ */
+ public static function hexEncode(string $bin_string): string
+ {
+ return Hex::encode($bin_string);
+ }
+
+ /**
+ * Convert a hexadecimal string into a binary string without cache-timing
+ * leaks
+ *
+ * @param string $hex_string
+ * @return string (raw binary)
+ * @throws \RangeException
+ */
+ public static function hexDecode(string $hex_string): string
+ {
+ return Hex::decode($hex_string);
+ }
+
+ /**
+ * Convert a binary string into a hexadecimal string without cache-timing
+ * leaks
+ *
+ * @param string $bin_string (raw binary)
+ * @return string
+ * @throws \TypeError
+ */
+ public static function hexEncodeUpper(string $bin_string): string
+ {
+ return Hex::encodeUpper($bin_string);
+ }
+
+ /**
+ * Convert a binary string into a hexadecimal string without cache-timing
+ * leaks
+ *
+ * @param string $bin_string (raw binary)
+ * @return string
+ */
+ public static function hexDecodeUpper(string $bin_string): string
+ {
+ return Hex::decode($bin_string);
+ }
+}
diff --git a/vendor/paragonie/constant_time_encoding/src/Hex.php b/vendor/paragonie/constant_time_encoding/src/Hex.php
new file mode 100644
index 000000000..b1b05a098
--- /dev/null
+++ b/vendor/paragonie/constant_time_encoding/src/Hex.php
@@ -0,0 +1,159 @@
+<?php
+declare(strict_types=1);
+namespace ParagonIE\ConstantTime;
+
+/**
+ * Copyright (c) 2016 - 2018 Paragon Initiative Enterprises.
+ * Copyright (c) 2014 Steve "Sc00bz" Thomas (steve at tobtu dot com)
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+/**
+ * Class Hex
+ * @package ParagonIE\ConstantTime
+ */
+abstract class Hex implements EncoderInterface
+{
+ /**
+ * Convert a binary string into a hexadecimal string without cache-timing
+ * leaks
+ *
+ * @param string $binString (raw binary)
+ * @return string
+ * @throws \TypeError
+ */
+ public static function encode(string $binString): string
+ {
+ /** @var string $hex */
+ $hex = '';
+ $len = Binary::safeStrlen($binString);
+ for ($i = 0; $i < $len; ++$i) {
+ /** @var array<int, int> $chunk */
+ $chunk = \unpack('C', Binary::safeSubstr($binString, $i, 1));
+ /** @var int $c */
+ $c = $chunk[1] & 0xf;
+ /** @var int $b */
+ $b = $chunk[1] >> 4;
+
+ $hex .= pack(
+ 'CC',
+ (87 + $b + ((($b - 10) >> 8) & ~38)),
+ (87 + $c + ((($c - 10) >> 8) & ~38))
+ );
+ }
+ return $hex;
+ }
+
+ /**
+ * Convert a binary string into a hexadecimal string without cache-timing
+ * leaks, returning uppercase letters (as per RFC 4648)
+ *
+ * @param string $binString (raw binary)
+ * @return string
+ * @throws \TypeError
+ */
+ public static function encodeUpper(string $binString): string
+ {
+ /** @var string $hex */
+ $hex = '';
+ /** @var int $len */
+ $len = Binary::safeStrlen($binString);
+
+ for ($i = 0; $i < $len; ++$i) {
+ /** @var array<int, int> $chunk */
+ $chunk = \unpack('C', Binary::safeSubstr($binString, $i, 2));
+ /** @var int $c */
+ $c = $chunk[1] & 0xf;
+ /** @var int $b */
+ $b = $chunk[1] >> 4;
+
+ $hex .= pack(
+ 'CC',
+ (55 + $b + ((($b - 10) >> 8) & ~6)),
+ (55 + $c + ((($c - 10) >> 8) & ~6))
+ );
+ }
+ return $hex;
+ }
+
+ /**
+ * Convert a hexadecimal string into a binary string without cache-timing
+ * leaks
+ *
+ * @param string $encodedString
+ * @param bool $strictPadding
+ * @return string (raw binary)
+ * @throws \RangeException
+ */
+ public static function decode(string $encodedString, bool $strictPadding = false): string
+ {
+ /** @var int $hex_pos */
+ $hex_pos = 0;
+ /** @var string $bin */
+ $bin = '';
+ /** @var int $c_acc */
+ $c_acc = 0;
+ /** @var int $hex_len */
+ $hex_len = Binary::safeStrlen($encodedString);
+ /** @var int $state */
+ $state = 0;
+ if (($hex_len & 1) !== 0) {
+ if ($strictPadding) {
+ throw new \RangeException(
+ 'Expected an even number of hexadecimal characters'
+ );
+ } else {
+ $encodedString = '0' . $encodedString;
+ ++$hex_len;
+ }
+ }
+
+ /** @var array<int, int> $chunk */
+ $chunk = \unpack('C*', $encodedString);
+ while ($hex_pos < $hex_len) {
+ ++$hex_pos;
+ /** @var int $c */
+ $c = $chunk[$hex_pos];
+ /** @var int $c_num */
+ $c_num = $c ^ 48;
+ /** @var int $c_num0 */
+ $c_num0 = ($c_num - 10) >> 8;
+ /** @var int $c_alpha */
+ $c_alpha = ($c & ~32) - 55;
+ /** @var int $c_alpha0 */
+ $c_alpha0 = (($c_alpha - 10) ^ ($c_alpha - 16)) >> 8;
+
+ if (($c_num0 | $c_alpha0) === 0) {
+ throw new \RangeException(
+ 'Expected hexadecimal character'
+ );
+ }
+ /** @var int $c_val */
+ $c_val = ($c_num0 & $c_num) | ($c_alpha & $c_alpha0);
+ if ($state === 0) {
+ $c_acc = $c_val * 16;
+ } else {
+ $bin .= \pack('C', $c_acc | $c_val);
+ }
+ $state ^= 1;
+ }
+ return $bin;
+ }
+}
diff --git a/vendor/paragonie/constant_time_encoding/src/RFC4648.php b/vendor/paragonie/constant_time_encoding/src/RFC4648.php
new file mode 100644
index 000000000..492cad00e
--- /dev/null
+++ b/vendor/paragonie/constant_time_encoding/src/RFC4648.php
@@ -0,0 +1,175 @@
+<?php
+declare(strict_types=1);
+namespace ParagonIE\ConstantTime;
+
+/**
+ * Copyright (c) 2016 - 2018 Paragon Initiative Enterprises.
+ * Copyright (c) 2014 Steve "Sc00bz" Thomas (steve at tobtu dot com)
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+/**
+ * Class RFC4648
+ *
+ * This class conforms strictly to the RFC
+ *
+ * @package ParagonIE\ConstantTime
+ */
+abstract class RFC4648
+{
+ /**
+ * RFC 4648 Base64 encoding
+ *
+ * "foo" -> "Zm9v"
+ *
+ * @param string $str
+ * @return string
+ * @throws \TypeError
+ */
+ public static function base64Encode(string $str): string
+ {
+ return Base64::encode($str);
+ }
+
+ /**
+ * RFC 4648 Base64 decoding
+ *
+ * "Zm9v" -> "foo"
+ *
+ * @param string $str
+ * @return string
+ * @throws \TypeError
+ */
+ public static function base64Decode(string $str): string
+ {
+ return Base64::decode($str, true);
+ }
+
+ /**
+ * RFC 4648 Base64 (URL Safe) encoding
+ *
+ * "foo" -> "Zm9v"
+ *
+ * @param string $str
+ * @return string
+ * @throws \TypeError
+ */
+ public static function base64UrlSafeEncode(string $str): string
+ {
+ return Base64UrlSafe::encode($str);
+ }
+
+ /**
+ * RFC 4648 Base64 (URL Safe) decoding
+ *
+ * "Zm9v" -> "foo"
+ *
+ * @param string $str
+ * @return string
+ * @throws \TypeError
+ */
+ public static function base64UrlSafeDecode(string $str): string
+ {
+ return Base64UrlSafe::decode($str, true);
+ }
+
+ /**
+ * RFC 4648 Base32 encoding
+ *
+ * "foo" -> "MZXW6==="
+ *
+ * @param string $str
+ * @return string
+ * @throws \TypeError
+ */
+ public static function base32Encode(string $str): string
+ {
+ return Base32::encodeUpper($str);
+ }
+
+ /**
+ * RFC 4648 Base32 encoding
+ *
+ * "MZXW6===" -> "foo"
+ *
+ * @param string $str
+ * @return string
+ * @throws \TypeError
+ */
+ public static function base32Decode(string $str): string
+ {
+ return Base32::decodeUpper($str, true);
+ }
+
+ /**
+ * RFC 4648 Base32-Hex encoding
+ *
+ * "foo" -> "CPNMU==="
+ *
+ * @param string $str
+ * @return string
+ * @throws \TypeError
+ */
+ public static function base32HexEncode(string $str): string
+ {
+ return Base32::encodeUpper($str);
+ }
+
+ /**
+ * RFC 4648 Base32-Hex decoding
+ *
+ * "CPNMU===" -> "foo"
+ *
+ * @param string $str
+ * @return string
+ * @throws \TypeError
+ */
+ public static function base32HexDecode(string $str): string
+ {
+ return Base32::decodeUpper($str, true);
+ }
+
+ /**
+ * RFC 4648 Base16 decoding
+ *
+ * "foo" -> "666F6F"
+ *
+ * @param string $str
+ * @return string
+ * @throws \TypeError
+ */
+ public static function base16Encode(string $str): string
+ {
+ return Hex::encodeUpper($str);
+ }
+
+ /**
+ * RFC 4648 Base16 decoding
+ *
+ * "666F6F" -> "foo"
+ *
+ * @param string $str
+ * @return string
+ */
+ public static function base16Decode(string $str): string
+ {
+ return Hex::decode($str, true);
+ }
+} \ No newline at end of file
diff --git a/vendor/paragonie/constant_time_encoding/tests/Base32HexTest.php b/vendor/paragonie/constant_time_encoding/tests/Base32HexTest.php
new file mode 100644
index 000000000..ed19f336f
--- /dev/null
+++ b/vendor/paragonie/constant_time_encoding/tests/Base32HexTest.php
@@ -0,0 +1,49 @@
+<?php
+use \ParagonIE\ConstantTime\Base32Hex;
+
+class Base32HexTest extends PHPUnit\Framework\TestCase
+{
+ /**
+ * @covers Base32Hex::encode()
+ * @covers Base32Hex::decode()
+ * @covers Base32Hex::encodeUpper()
+ * @covers Base32Hex::decodeUpper()
+ */
+ public function testRandom()
+ {
+ for ($i = 1; $i < 32; ++$i) {
+ for ($j = 0; $j < 50; ++$j) {
+ $random = \random_bytes($i);
+
+ $enc = Base32Hex::encode($random);
+ $this->assertSame(
+ $random,
+ Base32Hex::decode($enc)
+ );
+ $unpadded = \rtrim($enc, '=');
+ $this->assertSame(
+ $unpadded,
+ Base32Hex::encodeUnpadded($random)
+ );
+ $this->assertSame(
+ $random,
+ Base32Hex::decode($unpadded)
+ );
+
+ $enc = Base32Hex::encodeUpper($random);
+ $this->assertSame(
+ $random,
+ Base32Hex::decodeUpper($enc)
+ ); $unpadded = \rtrim($enc, '=');
+ $this->assertSame(
+ $unpadded,
+ Base32Hex::encodeUpperUnpadded($random)
+ );
+ $this->assertSame(
+ $random,
+ Base32Hex::decodeUpper($unpadded)
+ );
+ }
+ }
+ }
+}
diff --git a/vendor/paragonie/constant_time_encoding/tests/Base32Test.php b/vendor/paragonie/constant_time_encoding/tests/Base32Test.php
new file mode 100644
index 000000000..65e8e7c56
--- /dev/null
+++ b/vendor/paragonie/constant_time_encoding/tests/Base32Test.php
@@ -0,0 +1,50 @@
+<?php
+use \ParagonIE\ConstantTime\Base32;
+
+class Base32Test extends PHPUnit\Framework\TestCase
+{
+ /**
+ * @covers Base32::encode()
+ * @covers Base32::decode()
+ * @covers Base32::encodeUpper()
+ * @covers Base32::decodeUpper()
+ */
+ public function testRandom()
+ {
+ for ($i = 1; $i < 32; ++$i) {
+ for ($j = 0; $j < 50; ++$j) {
+ $random = \random_bytes($i);
+
+ $enc = Base32::encode($random);
+ $this->assertSame(
+ $random,
+ Base32::decode($enc)
+ );
+ $unpadded = \rtrim($enc, '=');
+ $this->assertSame(
+ $unpadded,
+ Base32::encodeUnpadded($random)
+ );
+ $this->assertSame(
+ $random,
+ Base32::decode($unpadded)
+ );
+
+ $enc = Base32::encodeUpper($random);
+ $this->assertSame(
+ $random,
+ Base32::decodeUpper($enc)
+ );
+ $unpadded = \rtrim($enc, '=');
+ $this->assertSame(
+ $unpadded,
+ Base32::encodeUpperUnpadded($random)
+ );
+ $this->assertSame(
+ $random,
+ Base32::decodeUpper($unpadded)
+ );
+ }
+ }
+ }
+}
diff --git a/vendor/paragonie/constant_time_encoding/tests/Base64DotSlashOrderedTest.php b/vendor/paragonie/constant_time_encoding/tests/Base64DotSlashOrderedTest.php
new file mode 100644
index 000000000..f7dc828b1
--- /dev/null
+++ b/vendor/paragonie/constant_time_encoding/tests/Base64DotSlashOrderedTest.php
@@ -0,0 +1,34 @@
+<?php
+use \ParagonIE\ConstantTime\Base64DotSlashOrdered;
+
+class Base64DotSlashOrderedTest extends PHPUnit\Framework\TestCase
+{
+ /**
+ * @covers Base64DotSlashOrdered::encode()
+ * @covers Base64DotSlashOrdered::decode()
+ */
+ public function testRandom()
+ {
+ for ($i = 1; $i < 32; ++$i) {
+ for ($j = 0; $j < 50; ++$j) {
+ $random = \random_bytes($i);
+
+ $enc = Base64DotSlashOrdered::encode($random);
+ $this->assertSame(
+ $random,
+ Base64DotSlashOrdered::decode($enc)
+ );
+
+ $unpadded = \rtrim($enc, '=');
+ $this->assertSame(
+ $random,
+ Base64DotSlashOrdered::decode($unpadded)
+ );
+ $this->assertSame(
+ $random,
+ Base64DotSlashOrdered::decode($unpadded)
+ );
+ }
+ }
+ }
+}
diff --git a/vendor/paragonie/constant_time_encoding/tests/Base64DotSlashTest.php b/vendor/paragonie/constant_time_encoding/tests/Base64DotSlashTest.php
new file mode 100644
index 000000000..257a3d549
--- /dev/null
+++ b/vendor/paragonie/constant_time_encoding/tests/Base64DotSlashTest.php
@@ -0,0 +1,34 @@
+<?php
+use \ParagonIE\ConstantTime\Base64DotSlash;
+
+class Base64DotSlashTest extends PHPUnit\Framework\TestCase
+{
+ /**
+ * @covers Base64DotSlash::encode()
+ * @covers Base64DotSlash::decode()
+ */
+ public function testRandom()
+ {
+ for ($i = 1; $i < 32; ++$i) {
+ for ($j = 0; $j < 50; ++$j) {
+ $random = \random_bytes($i);
+
+ $enc = Base64DotSlash::encode($random);
+ $this->assertSame(
+ $random,
+ Base64DotSlash::decode($enc)
+ );
+
+ $unpadded = \rtrim($enc, '=');
+ $this->assertSame(
+ $random,
+ Base64DotSlash::decode($unpadded)
+ );
+ $this->assertSame(
+ $random,
+ Base64DotSlash::decode($unpadded)
+ );
+ }
+ }
+ }
+}
diff --git a/vendor/paragonie/constant_time_encoding/tests/Base64Test.php b/vendor/paragonie/constant_time_encoding/tests/Base64Test.php
new file mode 100644
index 000000000..16ab47da0
--- /dev/null
+++ b/vendor/paragonie/constant_time_encoding/tests/Base64Test.php
@@ -0,0 +1,79 @@
+<?php
+use \ParagonIE\ConstantTime\Base64;
+
+class Base64Test extends PHPUnit\Framework\TestCase
+{
+ /**
+ * @covers Base64::encode()
+ * @covers Base64::decode()
+ */
+ public function testRandom()
+ {
+ for ($i = 1; $i < 32; ++$i) {
+ for ($j = 0; $j < 50; ++$j) {
+ $random = \random_bytes($i);
+
+ $enc = Base64::encode($random);
+ $this->assertSame(
+ $random,
+ Base64::decode($enc)
+ );
+ $this->assertSame(
+ \base64_encode($random),
+ $enc
+ );
+
+ $unpadded = \rtrim($enc, '=');
+ $this->assertSame(
+ $random,
+ Base64::decode($unpadded)
+ );
+ $this->assertSame(
+ $random,
+ Base64::decode($unpadded)
+ );
+ }
+ }
+ $str = 'MIIFzzCCBLegAwIBAgIDAfdlMA0GCSqGSIb3DQEBBQUAMHMxCzAJBgNVBAYTAlBM' .
+ 'MSgwJgYDVQQKDB9LcmFqb3dhIEl6YmEgUm96bGljemVuaW93YSBTLkEuMSQwIgYDVQQ' .
+ 'DDBtDT1BFIFNaQUZJUiAtIEt3YWxpZmlrb3dhbnkxFDASBgNVBAUTC05yIHdwaXN1Oi' .
+ 'A2MB4XDTExMTEwOTA2MDAwMFoXDTEzMTEwOTA2MDAwMFowgdkxCzAJBgNVBAYTAlBMM' .
+ 'RwwGgYDVQQKDBNVcnrEhWQgTWlhc3RhIEdkeW5pMRswGQYDVQQFExJQRVNFTDogNjEw' .
+ 'NjA2MDMxMTgxGTAXBgNVBAMMEEplcnp5IFByemV3b3Jza2kxTzBNBgNVBBAwRgwiQWw' .
+ 'uIE1hcnN6YcWCa2EgUGnFgnN1ZHNraWVnbyA1Mi81NAwNODEtMzgyIEdkeW5pYQwGUG' .
+ '9sc2thDAlwb21vcnNraWUxDjAMBgNVBCoMBUplcnp5MRMwEQYDVQQEDApQcnpld29yc' .
+ '2tpMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCMm5vjGqHPthJCMqKpqssSISRo' .
+ 's0PYDTcEQzyyurfX67EJWKtZj6HNwuDMEGJ02iBNZfjUl7r8dIi28bSKhNlsfycXZKY' .
+ 'RcIjp0+r5RqtR2auo9GQ6veKb61DEAGIqaR+uLLcJVTHCu0w9oXLGbRlGth5eNoj03C' .
+ 'xXVAH2IfhbNwIDAQABo4IChzCCAoMwDAYDVR0TAQH/BAIwADCCAUgGA1UdIAEB/wSCA' .
+ 'TwwggE4MIIBNAYJKoRoAYb3IwEBMIIBJTCB3QYIKwYBBQUHAgIwgdAMgc1EZWtsYXJh' .
+ 'Y2phIHRhIGplc3Qgb8Wbd2lhZGN6ZW5pZW0gd3lkYXdjeSwgxbxlIHRlbiBjZXJ0eWZ' .
+ 'pa2F0IHpvc3RhxYIgd3lkYW55IGpha28gY2VydHlmaWthdCBrd2FsaWZpa293YW55IH' .
+ 'pnb2RuaWUgeiB3eW1hZ2FuaWFtaSB1c3Rhd3kgbyBwb2RwaXNpZSBlbGVrdHJvbmlje' .
+ 'm55bSBvcmF6IHRvd2FyenlzesSFY3ltaSBqZWogcm96cG9yesSFZHplbmlhbWkuMEMG' .
+ 'CCsGAQUFBwIBFjdodHRwOi8vd3d3Lmtpci5jb20ucGwvY2VydHlmaWthY2phX2tsdWN' .
+ '6eS9wb2xpdHlrYS5odG1sMAkGA1UdCQQCMAAwIQYDVR0RBBowGIEWai5wcnpld29yc2' .
+ 'tpQGdkeW5pYS5wbDAOBgNVHQ8BAf8EBAMCBkAwgZ4GA1UdIwSBljCBk4AU3TGldJXip' .
+ 'N4oGS3ZYmnBDMFs8gKhd6R1MHMxCzAJBgNVBAYTAlBMMSgwJgYDVQQKDB9LcmFqb3dh' .
+ 'IEl6YmEgUm96bGljemVuaW93YSBTLkEuMSQwIgYDVQQDDBtDT1BFIFNaQUZJUiAtIEt' .
+ '3YWxpZmlrb3dhbnkxFDASBgNVBAUTC05yIHdwaXN1OiA2ggJb9jBIBgNVHR8EQTA/MD' .
+ '2gO6A5hjdodHRwOi8vd3d3Lmtpci5jb20ucGwvY2VydHlmaWthY2phX2tsdWN6eS9DU' .
+ 'kxfT1pLMzIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQBYPIqnAreyeql7/opJjcar/qWZ' .
+ 'y9ruhB2q0lZFsJOhwgMnbQXzp/4vv93YJqcHGAXdHP6EO8FQX47mjo2ZKQmi+cIHJHL' .
+ 'ONdX/3Im+M17V0iNAh7Z1lOSfTRT+iiwe/F8phcEaD5q2RmvYusR7zXZq/cLL0If0hX' .
+ 'oPZ/EHQxjN8pxzxiUx6bJAgturnIMEfRNesxwghdr1dkUjOhGLf3kHVzgM6j3VAM7oF' .
+ 'mMUb5y5s96Bzl10DodWitjOEH0vvnIcsppSxH1C1dCAi0o9f/1y2XuLNhBNHMAyTqpY' .
+ 'PX8Yvav1c+Z50OMaSXHAnTa20zv8UtiHbaAhwlifCelUMj93S';
+
+ try {
+ Base64::decode($str, true);
+ $this->fail('Strict padding not enforced');
+ } catch (\Exception $ex) {
+
+ $this->assertSame(
+ Base64::decode($str),
+ \base64_decode($str)
+ );
+ }
+ }
+}
diff --git a/vendor/paragonie/constant_time_encoding/tests/Base64UrlSafeTest.php b/vendor/paragonie/constant_time_encoding/tests/Base64UrlSafeTest.php
new file mode 100644
index 000000000..136ed611c
--- /dev/null
+++ b/vendor/paragonie/constant_time_encoding/tests/Base64UrlSafeTest.php
@@ -0,0 +1,58 @@
+<?php
+
+use ParagonIE\ConstantTime\Base64UrlSafe;
+use ParagonIE\ConstantTime\Binary;
+
+/**
+ * Class Base64UrlSafeTest
+ */
+class Base64UrlSafeTest extends PHPUnit\Framework\TestCase
+{
+ /**
+ * @covers Base64UrlSafe::encode()
+ * @covers Base64UrlSafe::decode()
+ *
+ * @throws Exception
+ * @throws TypeError
+ */
+ public function testRandom()
+ {
+ for ($i = 1; $i < 32; ++$i) {
+ for ($j = 0; $j < 50; ++$j) {
+ $random = \random_bytes($i);
+
+ $enc = Base64UrlSafe::encode($random);
+ $this->assertSame(
+ $random,
+ Base64UrlSafe::decode($enc)
+ );
+ $this->assertSame(
+ \strtr(\base64_encode($random), '+/', '-_'),
+ $enc
+ );
+
+ $unpadded = \rtrim($enc, '=');
+ $this->assertSame(
+ $unpadded,
+ Base64UrlSafe::encodeUnpadded($random)
+ );
+ $this->assertSame(
+ $random,
+ Base64UrlSafe::decode($unpadded)
+ );
+ }
+ }
+
+ $random = \random_bytes(1 << 20);
+ $enc = Base64UrlSafe::encode($random);
+ $this->assertTrue(Binary::safeStrlen($enc) > 65536);
+ $this->assertSame(
+ $random,
+ Base64UrlSafe::decode($enc)
+ );
+ $this->assertSame(
+ \strtr(\base64_encode($random), '+/', '-_'),
+ $enc
+ );
+ }
+}
diff --git a/vendor/paragonie/constant_time_encoding/tests/EncodingTest.php b/vendor/paragonie/constant_time_encoding/tests/EncodingTest.php
new file mode 100644
index 000000000..6f774d8c0
--- /dev/null
+++ b/vendor/paragonie/constant_time_encoding/tests/EncodingTest.php
@@ -0,0 +1,307 @@
+<?php
+use \ParagonIE\ConstantTime\Base32;
+use \ParagonIE\ConstantTime\Base32Hex;
+use \ParagonIE\ConstantTime\Base64;
+use \ParagonIE\ConstantTime\Base64DotSlash;
+use \ParagonIE\ConstantTime\Base64DotSlashOrdered;
+use \ParagonIE\ConstantTime\Base64UrlSafe;
+use \ParagonIE\ConstantTime\Encoding;
+use \ParagonIE\ConstantTime\Hex;
+
+class EncodingTest extends PHPUnit\Framework\TestCase
+{
+ public function testBase32Encode()
+ {
+ $this->assertSame(
+ Encoding::base32Encode("\x00"),
+ 'aa======'
+ );
+ $this->assertSame(
+ Encoding::base32Encode("\x00\x00"),
+ 'aaaa===='
+ );
+ $this->assertSame(
+ Encoding::base32Encode("\x00\x00\x00"),
+ 'aaaaa==='
+ );
+ $this->assertSame(
+ Encoding::base32Encode("\x00\x00\x00\x00"),
+ 'aaaaaaa='
+ );
+ $this->assertSame(
+ Encoding::base32Encode("\x00\x00\x00\x00\x00"),
+ 'aaaaaaaa'
+ );
+ $this->assertSame(
+ Encoding::base32Encode("\x00\x00\x0F\xFF\xFF"),
+ 'aaaa7777'
+ );
+ $this->assertSame(
+ Encoding::base32Encode("\xFF\xFF\xF0\x00\x00"),
+ '7777aaaa'
+ );
+
+ $this->assertSame(
+ Encoding::base32Encode("\xce\x73\x9c\xe7\x39"),
+ 'zzzzzzzz'
+ );
+ $this->assertSame(
+ Encoding::base32Encode("\xd6\xb5\xad\x6b\x5a"),
+ '22222222'
+ );
+ $this->assertSame(
+ Base32::encodeUpper("\x00"),
+ 'AA======'
+ );
+ $this->assertSame(
+ Base32::encodeUpper("\x00\x00"),
+ 'AAAA===='
+ );
+ $this->assertSame(
+ Base32::encodeUpper("\x00\x00\x00"),
+ 'AAAAA==='
+ );
+ $this->assertSame(
+ Base32::encodeUpper("\x00\x00\x00\x00"),
+ 'AAAAAAA='
+ );
+ $this->assertSame(
+ Base32::encodeUpper("\x00\x00\x00\x00\x00"),
+ 'AAAAAAAA'
+ );
+ $this->assertSame(
+ Base32::encodeUpper("\x00\x00\x0F\xFF\xFF"),
+ 'AAAA7777'
+ );
+ $this->assertSame(
+ Base32::encodeUpper("\xFF\xFF\xF0\x00\x00"),
+ '7777AAAA'
+ );
+
+ $this->assertSame(
+ Base32::encodeUpper("\xce\x73\x9c\xe7\x39"),
+ 'ZZZZZZZZ'
+ );
+ $this->assertSame(
+ Base32::encodeUpper("\xd6\xb5\xad\x6b\x5a"),
+ '22222222'
+ );
+ }
+
+ public function testBase32Hex()
+ {
+ $this->assertSame(
+ Base32Hex::encode("\x00"),
+ '00======'
+ );
+ $this->assertSame(
+ Base32Hex::encode("\x00\x00"),
+ '0000===='
+ );
+ $this->assertSame(
+ Base32Hex::encode("\x00\x00\x00"),
+ '00000==='
+ );
+ $this->assertSame(
+ Base32Hex::encode("\x00\x00\x00\x00"),
+ '0000000='
+ );
+ $this->assertSame(
+ Base32Hex::encode("\x00\x00\x00\x00\x00"),
+ '00000000'
+ );
+ $this->assertSame(
+ Base32Hex::encode("\x00\x00\x0F\xFF\xFF"),
+ '0000vvvv'
+ );
+ $this->assertSame(
+ Base32Hex::encode("\xFF\xFF\xF0\x00\x00"),
+ 'vvvv0000'
+ );
+
+
+ }
+
+ /**
+ * Based on test vectors from RFC 4648
+ */
+ public function testBase32Decode()
+ {
+ $this->assertSame(
+ "\x00\x00\x00\x00\x00\x00",
+ Encoding::base32Decode('aaaaaaaaaa======')
+ );
+ $this->assertSame(
+ "\x00\x00\x00\x00\x00\x00\x00",
+ Encoding::base32Decode('aaaaaaaaaaaa====')
+ );
+ $this->assertSame(
+ "\x00\x00\x00\x00\x00\x00\x00\x00",
+ Encoding::base32Decode('aaaaaaaaaaaaa===')
+ );
+ $this->assertSame(
+ "\x00\x00\x00\x00\x00\x00\x00\x00\x00",
+ Encoding::base32Decode('aaaaaaaaaaaaaaa=')
+ );
+ $this->assertSame(
+ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
+ Encoding::base32Decode('aaaaaaaaaaaaaaaa')
+ );
+ $this->assertSame(
+ "\x00",
+ Encoding::base32Decode('aa======')
+ );
+ $this->assertSame(
+ "\x00\x00",
+ Encoding::base32Decode('aaaa====')
+ );
+ $this->assertSame(
+ "\x00\x00\x00",
+ Encoding::base32Decode('aaaaa===')
+ );
+ $this->assertSame(
+ "\x00\x00\x00\x00",
+ Encoding::base32Decode('aaaaaaa=')
+ );
+ $this->assertSame(
+ "\x00\x00\x00\x00\x00",
+ Encoding::base32Decode('aaaaaaaa')
+ );
+ $this->assertSame(
+ "\x00\x00\x0F\xFF\xFF",
+ Encoding::base32Decode('aaaa7777')
+ );
+ $this->assertSame(
+ "\xFF\xFF\xF0\x00\x00",
+ Encoding::base32Decode('7777aaaa')
+ );
+ $this->assertSame(
+ "\xce\x73\x9c\xe7\x39",
+ Encoding::base32Decode('zzzzzzzz')
+ );
+ $this->assertSame(
+ "\xd6\xb5\xad\x6b\x5a",
+ Encoding::base32Decode('22222222')
+ );
+ $this->assertSame(
+ 'foobar',
+ Encoding::base32Decode('mzxw6ytboi======')
+ );
+
+ $rand = random_bytes(9);
+ $enc = Encoding::base32Encode($rand);
+
+ $this->assertSame(
+ Encoding::base32Encode($rand),
+ Encoding::base32Encode(Encoding::base32Decode($enc))
+ );
+ $this->assertSame(
+ $rand,
+ Encoding::base32Decode($enc)
+ );
+ }
+
+ /**
+ * @covers Encoding::hexDecode()
+ * @covers Encoding::hexEncode()
+ * @covers Encoding::base32Decode()
+ * @covers Encoding::base32Encode()
+ * @covers Encoding::base64Decode()
+ * @covers Encoding::base64Encode()
+ * @covers Encoding::base64DotSlashDecode()
+ * @covers Encoding::base64DotSlashEncode()
+ * @covers Encoding::base64DotSlashOrderedDecode()
+ * @covers Encoding::base64DotSlashOrderedEncode()
+ */
+ public function testBasicEncoding()
+ {
+ // Re-run the test at least 3 times for each length
+ for ($j = 0; $j < 3; ++$j) {
+ for ($i = 1; $i < 84; ++$i) {
+ $rand = random_bytes($i);
+ $enc = Encoding::hexEncode($rand);
+ $this->assertSame(
+ \bin2hex($rand),
+ $enc,
+ "Hex Encoding - Length: " . $i
+ );
+ $this->assertSame(
+ $rand,
+ Encoding::hexDecode($enc),
+ "Hex Encoding - Length: " . $i
+ );
+
+ // Uppercase variant:
+ $enc = Hex::encodeUpper($rand);
+ $this->assertSame(
+ \strtoupper(\bin2hex($rand)),
+ $enc,
+ "Hex Encoding - Length: " . $i
+ );
+ $this->assertSame(
+ $rand,
+ Hex::decode($enc),
+ "HexUpper Encoding - Length: " . $i
+ );
+
+ $enc = Encoding::base32Encode($rand);
+ $this->assertSame(
+ $rand,
+ Encoding::base32Decode($enc),
+ "Base32 Encoding - Length: " . $i
+ );
+
+ $enc = Encoding::base32EncodeUpper($rand);
+ $this->assertSame(
+ $rand,
+ Encoding::base32DecodeUpper($enc),
+ "Base32Upper Encoding - Length: " . $i
+ );
+
+ $enc = Encoding::base32HexEncode($rand);
+ $this->assertSame(
+ bin2hex($rand),
+ bin2hex(Encoding::base32HexDecode($enc)),
+ "Base32Hex Encoding - Length: " . $i
+ );
+
+ $enc = Encoding::base32HexEncodeUpper($rand);
+ $this->assertSame(
+ bin2hex($rand),
+ bin2hex(Encoding::base32HexDecodeUpper($enc)),
+ "Base32HexUpper Encoding - Length: " . $i
+ );
+
+ $enc = Encoding::base64Encode($rand);
+ $this->assertSame(
+ $rand,
+ Encoding::base64Decode($enc),
+ "Base64 Encoding - Length: " . $i
+ );
+
+ $enc = Encoding::base64EncodeDotSlash($rand);
+ $this->assertSame(
+ $rand,
+ Encoding::base64DecodeDotSlash($enc),
+ "Base64 DotSlash Encoding - Length: " . $i
+ );
+ $enc = Encoding::base64EncodeDotSlashOrdered($rand);
+ $this->assertSame(
+ $rand,
+ Encoding::base64DecodeDotSlashOrdered($enc),
+ "Base64 Ordered DotSlash Encoding - Length: " . $i
+ );
+
+ $enc = Base64UrlSafe::encode($rand);
+ $this->assertSame(
+ \strtr(\base64_encode($rand), '+/', '-_'),
+ $enc
+ );
+ $this->assertSame(
+ $rand,
+ Base64UrlSafe::decode($enc)
+ );
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/vendor/paragonie/constant_time_encoding/tests/HexTest.php b/vendor/paragonie/constant_time_encoding/tests/HexTest.php
new file mode 100644
index 000000000..5c31f6d15
--- /dev/null
+++ b/vendor/paragonie/constant_time_encoding/tests/HexTest.php
@@ -0,0 +1,39 @@
+<?php
+use \ParagonIE\ConstantTime\Hex;
+
+class HexTest extends PHPUnit\Framework\TestCase
+{
+ /**
+ * @covers Hex::encode()
+ * @covers Hex::decode()
+ * @covers Hex::encodeUpper()
+ */
+ public function testRandom()
+ {
+ for ($i = 1; $i < 32; ++$i) {
+ for ($j = 0; $j < 50; ++$j) {
+ $random = \random_bytes($i);
+
+ $enc = Hex::encode($random);
+ $this->assertSame(
+ $random,
+ Hex::decode($enc)
+ );
+ $this->assertSame(
+ \bin2hex($random),
+ $enc
+ );
+
+ $enc = Hex::encodeUpper($random);
+ $this->assertSame(
+ $random,
+ Hex::decode($enc)
+ );
+ $this->assertSame(
+ \strtoupper(\bin2hex($random)),
+ $enc
+ );
+ }
+ }
+ }
+}
diff --git a/vendor/paragonie/constant_time_encoding/tests/RFC4648Test.php b/vendor/paragonie/constant_time_encoding/tests/RFC4648Test.php
new file mode 100644
index 000000000..a6653de88
--- /dev/null
+++ b/vendor/paragonie/constant_time_encoding/tests/RFC4648Test.php
@@ -0,0 +1,84 @@
+<?php
+use \ParagonIE\ConstantTime\Base32;
+use \ParagonIE\ConstantTime\Base32Hex;
+use \ParagonIE\ConstantTime\Base64;
+use \ParagonIE\ConstantTime\Base64DotSlash;
+use \ParagonIE\ConstantTime\Base64DotSlashOrdered;
+use \ParagonIE\ConstantTime\Encoding;
+use \ParagonIE\ConstantTime\Hex;
+
+/**
+ * Class RFC4648Test
+ *
+ * @ref https://tools.ietf.org/html/rfc4648#section-10
+ */
+class RFC4648Test extends PHPUnit\Framework\TestCase
+{
+ public function testVectorBase64()
+ {
+ $this->assertSame(Base64::encode(''), '');
+ $this->assertSame(Base64::encode('f'), 'Zg==');
+ $this->assertSame(Base64::encode('fo'), 'Zm8=');
+ $this->assertSame(Base64::encode('foo'), 'Zm9v');
+ $this->assertSame(Base64::encode('foob'), 'Zm9vYg==');
+ $this->assertSame(Base64::encode('fooba'), 'Zm9vYmE=');
+ $this->assertSame(Base64::encode('foobar'), 'Zm9vYmFy');
+ }
+
+ public function testVectorBase32()
+ {
+ $this->assertSame(Base32::encode(''), '');
+ $this->assertSame(Base32::encode('f'), 'my======');
+ $this->assertSame(Base32::encode('fo'), 'mzxq====');
+ $this->assertSame(Base32::encode('foo'), 'mzxw6===');
+ $this->assertSame(Base32::encode('foob'), 'mzxw6yq=');
+ $this->assertSame(Base32::encode('fooba'), 'mzxw6ytb');
+ $this->assertSame(Base32::encode('foobar'), 'mzxw6ytboi======');
+
+ $this->assertSame(Base32::encodeUpper(''), '');
+ $this->assertSame(Base32::encodeUpper('f'), 'MY======');
+ $this->assertSame(Base32::encodeUpper('fo'), 'MZXQ====');
+ $this->assertSame(Base32::encodeUpper('foo'), 'MZXW6===');
+ $this->assertSame(Base32::encodeUpper('foob'), 'MZXW6YQ=');
+ $this->assertSame(Base32::encodeUpper('fooba'), 'MZXW6YTB');
+ $this->assertSame(Base32::encodeUpper('foobar'), 'MZXW6YTBOI======');
+ }
+
+ public function testVectorBase32Hex()
+ {
+ $this->assertSame(Base32Hex::encode(''), '');
+ $this->assertSame(Base32Hex::encode('f'), 'co======');
+ $this->assertSame(Base32Hex::encode('fo'), 'cpng====');
+ $this->assertSame(Base32Hex::encode('foo'), 'cpnmu===');
+ $this->assertSame(Base32Hex::encode('foob'), 'cpnmuog=');
+ $this->assertSame(Base32Hex::encode('fooba'), 'cpnmuoj1');
+ $this->assertSame(Base32Hex::encode('foobar'), 'cpnmuoj1e8======');
+
+ $this->assertSame(Base32Hex::encodeUpper(''), '');
+ $this->assertSame(Base32Hex::encodeUpper('f'), 'CO======');
+ $this->assertSame(Base32Hex::encodeUpper('fo'), 'CPNG====');
+ $this->assertSame(Base32Hex::encodeUpper('foo'), 'CPNMU===');
+ $this->assertSame(Base32Hex::encodeUpper('foob'), 'CPNMUOG=');
+ $this->assertSame(Base32Hex::encodeUpper('fooba'), 'CPNMUOJ1');
+ $this->assertSame(Base32Hex::encodeUpper('foobar'), 'CPNMUOJ1E8======');
+ }
+
+ public function testVectorBase16()
+ {
+ $this->assertSame(Hex::encode(''), '');
+ $this->assertSame(Hex::encode('f'), '66');
+ $this->assertSame(Hex::encode('fo'), '666f');
+ $this->assertSame(Hex::encode('foo'), '666f6f');
+ $this->assertSame(Hex::encode('foob'), '666f6f62');
+ $this->assertSame(Hex::encode('fooba'), '666f6f6261');
+ $this->assertSame(Hex::encode('foobar'), '666f6f626172');
+
+ $this->assertSame(Hex::encodeUpper(''), '');
+ $this->assertSame(Hex::encodeUpper('f'), '66');
+ $this->assertSame(Hex::encodeUpper('fo'), '666F');
+ $this->assertSame(Hex::encodeUpper('foo'), '666F6F');
+ $this->assertSame(Hex::encodeUpper('foob'), '666F6F62');
+ $this->assertSame(Hex::encodeUpper('fooba'), '666F6F6261');
+ $this->assertSame(Hex::encodeUpper('foobar'), '666F6F626172');
+ }
+}
diff --git a/vendor/spomky-labs/otphp/.github/CONTRIBUTING.md b/vendor/spomky-labs/otphp/.github/CONTRIBUTING.md
new file mode 100644
index 000000000..871735ad1
--- /dev/null
+++ b/vendor/spomky-labs/otphp/.github/CONTRIBUTING.md
@@ -0,0 +1,25 @@
+# Contributing
+
+First of all, **thank you** for contributing.
+
+Bugs or feature requests can be posted online on the GitHub issues section of the project.
+
+Few rules to ease code reviews and merges:
+
+- You MUST follow the [PSR-1](http://www.php-fig.org/psr/psr-1/), [PSR-2](http://www.php-fig.org/psr/psr-2/) and [PSR-4](http://www.php-fig.org/psr/psr-4/) coding standards.
+- You MUST run the test suite.
+- You MUST write (or update) unit tests when bugs are fixed or features are added.
+- You SHOULD write documentation.
+
+We use [Git-Flow](http://jeffkreeftmeijer.com/2010/why-arent-you-using-git-flow/) to automate our git branching workflow.
+
+To contribute use [Pull Requests](https://help.github.com/articles/using-pull-requests), please, write commit messages that make sense, and rebase your branch before submitting your PR.
+
+May be asked to squash your commits too. This is used to "clean" your Pull Request before merging it, avoiding commits such as fix tests, fix 2, fix 3, etc.
+
+Run test suite
+------------
+
+* install composer: `curl -s http://getcomposer.org/installer | php`
+* install dependencies: `php composer.phar install`
+* run tests: `vendor/bin/phpunit`
diff --git a/vendor/spomky-labs/otphp/.github/ISSUE_TEMPLATE.md b/vendor/spomky-labs/otphp/.github/ISSUE_TEMPLATE.md
new file mode 100644
index 000000000..2ceb8da6a
--- /dev/null
+++ b/vendor/spomky-labs/otphp/.github/ISSUE_TEMPLATE.md
@@ -0,0 +1,16 @@
+| Q | A
+| -------------------- | -----
+| Bug report? | yes/no
+| Feature request? | yes/no
+| BC Break report? | yes/no
+| RFC? / Specification | yes/no
+| Library version | x.y(.z)
+
+<!--
+Fill in this template according to your issue.
+Otherwise, replace this comment by the description of your issue.
+
+Please consider the following requirements
+* You MUST never send security issues here. If you think that your issue is a security one then contact Spomky in private at https://gitter.im/Spomky/
+* You should not post many lines of source code or console logs. Small inputs (approx 5 lines) are acceptable otherwize you should use a third party service (e.g. Pastebin, Chop...).
+-->
diff --git a/vendor/spomky-labs/otphp/.github/PULL_REQUEST_TEMPLATE.md b/vendor/spomky-labs/otphp/.github/PULL_REQUEST_TEMPLATE.md
new file mode 100644
index 000000000..acd0be9fc
--- /dev/null
+++ b/vendor/spomky-labs/otphp/.github/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,21 @@
+| Q | A
+| ------------- | ---
+| Branch? | master
+| Bug fix? | yes/no
+| New feature? | yes/no
+| BC breaks? | yes/no
+| Deprecations? | yes/no
+| Tests pass? | yes/no
+| Fixed tickets | #... <!-- #-prefixed issue number(s), if any -->
+| License | MIT
+| Tests added | <!--highly recommended for new features-->
+| Doc PR | <!--highly recommended for new features-->
+
+<!--
+Fill in this template according to the PR you're about to submit.
+Replace this comment by a description of what your PR is solving.
+
+Please consider the following requirement:
+* Modification of existing tests should be avoided unless deemed necessary.
+* You MUST never open a PR related to a security issue. Contact Spomky in private at https://gitter.im/Spomky/
+-->
diff --git a/vendor/spomky-labs/otphp/.github/stale.yml b/vendor/spomky-labs/otphp/.github/stale.yml
new file mode 100644
index 000000000..dc90e5a1c
--- /dev/null
+++ b/vendor/spomky-labs/otphp/.github/stale.yml
@@ -0,0 +1,17 @@
+# Number of days of inactivity before an issue becomes stale
+daysUntilStale: 60
+# Number of days of inactivity before a stale issue is closed
+daysUntilClose: 7
+# Issues with these labels will never be considered stale
+exemptLabels:
+ - pinned
+ - security
+# Label to use when marking an issue as stale
+staleLabel: wontfix
+# Comment to post when marking an issue as stale. Set to `false` to disable
+markComment: >
+ This issue has been automatically marked as stale because it has not had
+ recent activity. It will be closed if no further activity occurs. Thank you
+ for your contributions.
+# Comment to post when closing a stale issue. Set to `false` to disable
+closeComment: false
diff --git a/vendor/spomky-labs/otphp/.php_cs.dist b/vendor/spomky-labs/otphp/.php_cs.dist
new file mode 100644
index 000000000..7410dff65
--- /dev/null
+++ b/vendor/spomky-labs/otphp/.php_cs.dist
@@ -0,0 +1,61 @@
+<?php
+
+$header = 'The MIT License (MIT)
+
+Copyright (c) 2014-2019 Spomky-Labs
+
+This software may be modified and distributed under the terms
+of the MIT license. See the LICENSE file for details.';
+
+$finder = PhpCsFixer\Finder::create()
+ ->in(__DIR__.'/src')
+ ->in(__DIR__.'/tests')
+;
+
+return PhpCsFixer\Config::create()
+ ->setRules([
+ '@PSR1' => true,
+ '@PSR2' => true,
+ '@Symfony' => true,
+ '@DoctrineAnnotation' => true,
+ '@PHP70Migration' => true,
+ '@PHP71Migration' => true,
+ 'strict_param' => true,
+ 'strict_comparison' => true,
+ 'array_syntax' => ['syntax' => 'short'],
+ 'array_indentation' => true,
+ 'ordered_imports' => true,
+ 'protected_to_private' => true,
+ 'declare_strict_types' => true,
+ 'native_function_invocation' => [
+ 'include' => ['@compiler_optimized'],
+ 'scope' => 'namespaced',
+ ],
+ 'mb_str_functions' => true,
+ 'method_chaining_indentation' => true,
+ 'linebreak_after_opening_tag' => true,
+ 'combine_consecutive_issets' => true,
+ 'combine_consecutive_unsets' => true,
+ 'compact_nullable_typehint' => true,
+ 'no_superfluous_phpdoc_tags' => true,
+ 'no_superfluous_elseif' => true,
+ 'phpdoc_trim_consecutive_blank_line_separation' => true,
+ 'phpdoc_order' => true,
+ 'pow_to_exponentiation' => true,
+ 'simplified_null_return' => true,
+ 'header_comment' => [
+ 'header' => $header,
+ ],
+ 'align_multiline_comment' => [
+ 'comment_type' => 'all_multiline',
+ ],
+ 'php_unit_test_annotation' => [
+ 'case' => 'snake',
+ 'style' => 'annotation',
+ ],
+ 'php_unit_test_case_static_method_calls' => true,
+ ])
+ ->setRiskyAllowed(true)
+ ->setUsingCache(true)
+ ->setFinder($finder)
+ ;
diff --git a/vendor/spomky-labs/otphp/CODE_OF_CONDUCT.md b/vendor/spomky-labs/otphp/CODE_OF_CONDUCT.md
new file mode 100644
index 000000000..4ec12c72b
--- /dev/null
+++ b/vendor/spomky-labs/otphp/CODE_OF_CONDUCT.md
@@ -0,0 +1,46 @@
+# Contributor Covenant Code of Conduct
+
+## Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
+
+## Our Standards
+
+Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+## Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
+
+## Scope
+
+This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
+
+## Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [email protected]. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
+
+## Attribution
+
+This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
+
+[homepage]: http://contributor-covenant.org
+[version]: http://contributor-covenant.org/version/1/4/
diff --git a/vendor/spomky-labs/otphp/LICENSE b/vendor/spomky-labs/otphp/LICENSE
new file mode 100644
index 000000000..e6a673e34
--- /dev/null
+++ b/vendor/spomky-labs/otphp/LICENSE
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) 2014-2016 Florent Morselli
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/vendor/spomky-labs/otphp/composer.json b/vendor/spomky-labs/otphp/composer.json
new file mode 100644
index 000000000..8979e8f06
--- /dev/null
+++ b/vendor/spomky-labs/otphp/composer.json
@@ -0,0 +1,50 @@
+{
+ "name": "spomky-labs/otphp",
+ "type": "library",
+ "description": "A PHP library for generating one time passwords according to RFC 4226 (HOTP Algorithm) and the RFC 6238 (TOTP Algorithm) and compatible with Google Authenticator",
+ "license": "MIT",
+ "keywords": ["otp", "hotp", "totp", "RFC 4226", "RFC 6238", "Google Authenticator", "FreeOTP"],
+ "homepage": "https://github.com/Spomky-Labs/otphp",
+ "authors": [
+ {
+ "name": "Florent Morselli",
+ "homepage": "https://github.com/Spomky"
+ },
+ {
+ "name": "All contributors",
+ "homepage": "https://github.com/Spomky-Labs/otphp/contributors"
+ }
+ ],
+ "require": {
+ "php": "^7.2|^8.0",
+ "ext-mbstring": "*",
+ "paragonie/constant_time_encoding": "^2.0",
+ "beberlei/assert": "^3.0",
+ "thecodingmachine/safe": "^0.1.14|^1.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.0",
+ "php-coveralls/php-coveralls": "^2.0",
+ "phpstan/phpstan": "^0.12",
+ "phpstan/phpstan-beberlei-assert": "^0.12",
+ "phpstan/phpstan-deprecation-rules": "^0.12",
+ "phpstan/phpstan-phpunit": "^0.12",
+ "phpstan/phpstan-strict-rules": "^0.12",
+ "thecodingmachine/phpstan-safe-rule": "^1.0"
+ },
+ "suggest": {
+ },
+ "autoload": {
+ "psr-4": { "OTPHP\\": "src/" }
+ },
+ "autoload-dev": {
+ "psr-4": { "OTPHP\\Test\\": "tests/" }
+ },
+ "extra": {
+ "branch-alias": {
+ "v10.0": "10.0.x-dev",
+ "v9.0": "9.0.x-dev",
+ "v8.3": "8.3.x-dev"
+ }
+ }
+}
diff --git a/vendor/spomky-labs/otphp/phpstan.neon b/vendor/spomky-labs/otphp/phpstan.neon
new file mode 100644
index 000000000..c9be89623
--- /dev/null
+++ b/vendor/spomky-labs/otphp/phpstan.neon
@@ -0,0 +1,13 @@
+parameters:
+ level: 7
+ paths:
+ - src
+ - tests
+ ignoreErrors:
+ - '#Variable property access on \$this\(OTPHP\\OTP\)\.#'
+includes:
+ - vendor/phpstan/phpstan-strict-rules/rules.neon
+ - vendor/phpstan/phpstan-phpunit/extension.neon
+ - vendor/phpstan/phpstan-deprecation-rules/rules.neon
+ - vendor/thecodingmachine/phpstan-safe-rule/phpstan-safe-rule.neon
+ - vendor/phpstan/phpstan-beberlei-assert/extension.neon
diff --git a/vendor/spomky-labs/otphp/src/Factory.php b/vendor/spomky-labs/otphp/src/Factory.php
new file mode 100644
index 000000000..70df63945
--- /dev/null
+++ b/vendor/spomky-labs/otphp/src/Factory.php
@@ -0,0 +1,115 @@
+<?php
+
+declare(strict_types=1);
+
+/*
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2014-2019 Spomky-Labs
+ *
+ * This software may be modified and distributed under the terms
+ * of the MIT license. See the LICENSE file for details.
+ */
+
+namespace OTPHP;
+
+use Assert\Assertion;
+use InvalidArgumentException;
+use function Safe\parse_url;
+use function Safe\sprintf;
+use Throwable;
+
+/**
+ * This class is used to load OTP object from a provisioning Uri.
+ */
+final class Factory implements FactoryInterface
+{
+ public static function loadFromProvisioningUri(string $uri): OTPInterface
+ {
+ try {
+ $parsed_url = parse_url($uri);
+ } catch (Throwable $throwable) {
+ throw new InvalidArgumentException('Not a valid OTP provisioning URI', $throwable->getCode(), $throwable);
+ }
+ Assertion::isArray($parsed_url, 'Not a valid OTP provisioning URI');
+ self::checkData($parsed_url);
+
+ $otp = self::createOTP($parsed_url);
+
+ self::populateOTP($otp, $parsed_url);
+
+ return $otp;
+ }
+
+ /**
+ * @param array<string, mixed> $data
+ */
+ private static function populateParameters(OTPInterface &$otp, array $data): void
+ {
+ foreach ($data['query'] as $key => $value) {
+ $otp->setParameter($key, $value);
+ }
+ }
+
+ /**
+ * @param array<string, mixed> $data
+ */
+ private static function populateOTP(OTPInterface &$otp, array $data): void
+ {
+ self::populateParameters($otp, $data);
+ $result = explode(':', rawurldecode(mb_substr($data['path'], 1)));
+
+ if (2 > \count($result)) {
+ $otp->setIssuerIncludedAsParameter(false);
+
+ return;
+ }
+
+ if (null !== $otp->getIssuer()) {
+ Assertion::eq($result[0], $otp->getIssuer(), 'Invalid OTP: invalid issuer in parameter');
+ $otp->setIssuerIncludedAsParameter(true);
+ }
+ $otp->setIssuer($result[0]);
+ }
+
+ /**
+ * @param array<string, mixed> $data
+ */
+ private static function checkData(array &$data): void
+ {
+ foreach (['scheme', 'host', 'path', 'query'] as $key) {
+ Assertion::keyExists($data, $key, 'Not a valid OTP provisioning URI');
+ }
+ Assertion::eq('otpauth', $data['scheme'], 'Not a valid OTP provisioning URI');
+ parse_str($data['query'], $data['query']);
+ Assertion::keyExists($data['query'], 'secret', 'Not a valid OTP provisioning URI');
+ }
+
+ /**
+ * @param array<string, mixed> $parsed_url
+ */
+ private static function createOTP(array $parsed_url): OTPInterface
+ {
+ switch ($parsed_url['host']) {
+ case 'totp':
+ $totp = TOTP::create($parsed_url['query']['secret']);
+ $totp->setLabel(self::getLabel($parsed_url['path']));
+
+ return $totp;
+ case 'hotp':
+ $hotp = HOTP::create($parsed_url['query']['secret']);
+ $hotp->setLabel(self::getLabel($parsed_url['path']));
+
+ return $hotp;
+ default:
+ throw new InvalidArgumentException(sprintf('Unsupported "%s" OTP type', $parsed_url['host']));
+ }
+ }
+
+ private static function getLabel(string $data): string
+ {
+ $result = explode(':', rawurldecode(mb_substr($data, 1)));
+
+ return 2 === \count($result) ? $result[1] : $result[0];
+ }
+}
diff --git a/vendor/spomky-labs/otphp/src/FactoryInterface.php b/vendor/spomky-labs/otphp/src/FactoryInterface.php
new file mode 100644
index 000000000..00acc2d04
--- /dev/null
+++ b/vendor/spomky-labs/otphp/src/FactoryInterface.php
@@ -0,0 +1,23 @@
+<?php
+
+declare(strict_types=1);
+
+/*
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2014-2019 Spomky-Labs
+ *
+ * This software may be modified and distributed under the terms
+ * of the MIT license. See the LICENSE file for details.
+ */
+
+namespace OTPHP;
+
+interface FactoryInterface
+{
+ /**
+ * This method is the unique public method of the class.
+ * It can load a provisioning Uri and convert it into an OTP object.
+ */
+ public static function loadFromProvisioningUri(string $uri): OTPInterface;
+}
diff --git a/vendor/spomky-labs/otphp/src/HOTP.php b/vendor/spomky-labs/otphp/src/HOTP.php
new file mode 100644
index 000000000..a2f4a2395
--- /dev/null
+++ b/vendor/spomky-labs/otphp/src/HOTP.php
@@ -0,0 +1,103 @@
+<?php
+
+declare(strict_types=1);
+
+/*
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2014-2019 Spomky-Labs
+ *
+ * This software may be modified and distributed under the terms
+ * of the MIT license. See the LICENSE file for details.
+ */
+
+namespace OTPHP;
+
+use Assert\Assertion;
+
+final class HOTP extends OTP implements HOTPInterface
+{
+ protected function __construct(?string $secret, int $counter, string $digest, int $digits)
+ {
+ parent::__construct($secret, $digest, $digits);
+ $this->setCounter($counter);
+ }
+
+ public static function create(?string $secret = null, int $counter = 0, string $digest = 'sha1', int $digits = 6): HOTPInterface
+ {
+ return new self($secret, $counter, $digest, $digits);
+ }
+
+ protected function setCounter(int $counter): void
+ {
+ $this->setParameter('counter', $counter);
+ }
+
+ public function getCounter(): int
+ {
+ return $this->getParameter('counter');
+ }
+
+ private function updateCounter(int $counter): void
+ {
+ $this->setCounter($counter);
+ }
+
+ public function getProvisioningUri(): string
+ {
+ return $this->generateURI('hotp', ['counter' => $this->getCounter()]);
+ }
+
+ /**
+ * If the counter is not provided, the OTP is verified at the actual counter.
+ */
+ public function verify(string $otp, ?int $counter = null, ?int $window = null): bool
+ {
+ Assertion::greaterOrEqualThan($counter, 0, 'The counter must be at least 0.');
+
+ if (null === $counter) {
+ $counter = $this->getCounter();
+ } elseif ($counter < $this->getCounter()) {
+ return false;
+ }
+
+ return $this->verifyOtpWithWindow($otp, $counter, $window);
+ }
+
+ private function getWindow(?int $window): int
+ {
+ return abs($window ?? 0);
+ }
+
+ private function verifyOtpWithWindow(string $otp, int $counter, ?int $window): bool
+ {
+ $window = $this->getWindow($window);
+
+ for ($i = $counter; $i <= $counter + $window; ++$i) {
+ if ($this->compareOTP($this->at($i), $otp)) {
+ $this->updateCounter($i + 1);
+
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * @return array<string, mixed>
+ */
+ protected function getParameterMap(): array
+ {
+ $v = array_merge(
+ parent::getParameterMap(),
+ ['counter' => function ($value): int {
+ Assertion::greaterOrEqualThan((int) $value, 0, 'Counter must be at least 0.');
+
+ return (int) $value;
+ }]
+ );
+
+ return $v;
+ }
+}
diff --git a/vendor/spomky-labs/otphp/src/HOTPInterface.php b/vendor/spomky-labs/otphp/src/HOTPInterface.php
new file mode 100644
index 000000000..336ce1055
--- /dev/null
+++ b/vendor/spomky-labs/otphp/src/HOTPInterface.php
@@ -0,0 +1,29 @@
+<?php
+
+declare(strict_types=1);
+
+/*
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2014-2019 Spomky-Labs
+ *
+ * This software may be modified and distributed under the terms
+ * of the MIT license. See the LICENSE file for details.
+ */
+
+namespace OTPHP;
+
+interface HOTPInterface extends OTPInterface
+{
+ /**
+ * The initial counter (a positive integer).
+ */
+ public function getCounter(): int;
+
+ /**
+ * Create a new TOTP object.
+ *
+ * If the secret is null, a random 64 bytes secret will be generated.
+ */
+ public static function create(?string $secret = null, int $counter = 0, string $digest = 'sha1', int $digits = 6): self;
+}
diff --git a/vendor/spomky-labs/otphp/src/OTP.php b/vendor/spomky-labs/otphp/src/OTP.php
new file mode 100644
index 000000000..932bcf97e
--- /dev/null
+++ b/vendor/spomky-labs/otphp/src/OTP.php
@@ -0,0 +1,114 @@
+<?php
+
+declare(strict_types=1);
+
+/*
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2014-2019 Spomky-Labs
+ *
+ * This software may be modified and distributed under the terms
+ * of the MIT license. See the LICENSE file for details.
+ */
+
+namespace OTPHP;
+
+use Assert\Assertion;
+use ParagonIE\ConstantTime\Base32;
+use RuntimeException;
+use function Safe\ksort;
+use function Safe\sprintf;
+
+abstract class OTP implements OTPInterface
+{
+ use ParameterTrait;
+
+ protected function __construct(?string $secret, string $digest, int $digits)
+ {
+ $this->setSecret($secret);
+ $this->setDigest($digest);
+ $this->setDigits($digits);
+ }
+
+ public function getQrCodeUri(string $uri, string $placeholder): string
+ {
+ $provisioning_uri = urlencode($this->getProvisioningUri());
+
+ return str_replace($placeholder, $provisioning_uri, $uri);
+ }
+
+ /**
+ * The OTP at the specified input.
+ */
+ protected function generateOTP(int $input): string
+ {
+ $hash = hash_hmac($this->getDigest(), $this->intToByteString($input), $this->getDecodedSecret(), true);
+
+ $hmac = array_values(unpack('C*', $hash));
+
+ $offset = ($hmac[\count($hmac) - 1] & 0xF);
+ $code = ($hmac[$offset + 0] & 0x7F) << 24 | ($hmac[$offset + 1] & 0xFF) << 16 | ($hmac[$offset + 2] & 0xFF) << 8 | ($hmac[$offset + 3] & 0xFF);
+ $otp = $code % (10 ** $this->getDigits());
+
+ return str_pad((string) $otp, $this->getDigits(), '0', STR_PAD_LEFT);
+ }
+
+ public function at(int $timestamp): string
+ {
+ return $this->generateOTP($timestamp);
+ }
+
+ /**
+ * @param array<string, mixed> $options
+ */
+ protected function filterOptions(array &$options): void
+ {
+ foreach (['algorithm' => 'sha1', 'period' => 30, 'digits' => 6] as $key => $default) {
+ if (isset($options[$key]) && $default === $options[$key]) {
+ unset($options[$key]);
+ }
+ }
+
+ ksort($options);
+ }
+
+ /**
+ * @param array<string, mixed> $options
+ */
+ protected function generateURI(string $type, array $options): string
+ {
+ $label = $this->getLabel();
+ Assertion::string($label, 'The label is not set.');
+ Assertion::false($this->hasColon($label), 'Label must not contain a colon.');
+ $options = array_merge($options, $this->getParameters());
+ $this->filterOptions($options);
+ $params = str_replace(['+', '%7E'], ['%20', '~'], http_build_query($options));
+
+ return sprintf('otpauth://%s/%s?%s', $type, rawurlencode((null !== $this->getIssuer() ? $this->getIssuer().':' : '').$label), $params);
+ }
+
+ private function getDecodedSecret(): string
+ {
+ try {
+ return Base32::decodeUpper($this->getSecret());
+ } catch (\Exception $e) {
+ throw new RuntimeException('Unable to decode the secret. Is it correctly base32 encoded?');
+ }
+ }
+
+ private function intToByteString(int $int): string
+ {
+ $result = [];
+ while (0 !== $int) {
+ $result[] = \chr($int & 0xFF);
+ $int >>= 8;
+ }
+
+ return str_pad(implode(array_reverse($result)), 8, "\000", STR_PAD_LEFT);
+ }
+
+ protected function compareOTP(string $safe, string $user): bool
+ {
+ return hash_equals($safe, $user);
+ }
+}
diff --git a/vendor/spomky-labs/otphp/src/OTPInterface.php b/vendor/spomky-labs/otphp/src/OTPInterface.php
new file mode 100644
index 000000000..66e163d5d
--- /dev/null
+++ b/vendor/spomky-labs/otphp/src/OTPInterface.php
@@ -0,0 +1,97 @@
+<?php
+
+declare(strict_types=1);
+
+/*
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2014-2019 Spomky-Labs
+ *
+ * This software may be modified and distributed under the terms
+ * of the MIT license. See the LICENSE file for details.
+ */
+
+namespace OTPHP;
+
+interface OTPInterface
+{
+ /**
+ * @return string Return the OTP at the specified timestamp
+ */
+ public function at(int $timestamp): string;
+
+ /**
+ * Verify that the OTP is valid with the specified input.
+ * If no input is provided, the input is set to a default value or false is returned.
+ */
+ public function verify(string $otp, ?int $input = null, ?int $window = null): bool;
+
+ /**
+ * @return string The secret of the OTP
+ */
+ public function getSecret(): string;
+
+ /**
+ * @param string $label The label of the OTP
+ */
+ public function setLabel(string $label): void;
+
+ /**
+ * @return string|null The label of the OTP
+ */
+ public function getLabel(): ?string;
+
+ /**
+ * @return string|null The issuer
+ */
+ public function getIssuer(): ?string;
+
+ public function setIssuer(string $issuer): void;
+
+ /**
+ * @return bool If true, the issuer will be added as a parameter in the provisioning URI
+ */
+ public function isIssuerIncludedAsParameter(): bool;
+
+ public function setIssuerIncludedAsParameter(bool $issuer_included_as_parameter): void;
+
+ /**
+ * @return int Number of digits in the OTP
+ */
+ public function getDigits(): int;
+
+ /**
+ * @return string Digest algorithm used to calculate the OTP. Possible values are 'md5', 'sha1', 'sha256' and 'sha512'
+ */
+ public function getDigest(): string;
+
+ /**
+ * @return mixed|null
+ */
+ public function getParameter(string $parameter);
+
+ public function hasParameter(string $parameter): bool;
+
+ /**
+ * @return array<string, mixed>
+ */
+ public function getParameters(): array;
+
+ /**
+ * @param mixed|null $value
+ */
+ public function setParameter(string $parameter, $value): void;
+
+ /**
+ * Get the provisioning URI.
+ */
+ public function getProvisioningUri(): string;
+
+ /**
+ * Get the provisioning URI.
+ *
+ * @param string $uri The Uri of the QRCode generator with all parameters. This Uri MUST contain a placeholder that will be replaced by the method.
+ * @param string $placeholder the placeholder to be replaced in the QR Code generator URI
+ */
+ public function getQrCodeUri(string $uri, string $placeholder): string;
+}
diff --git a/vendor/spomky-labs/otphp/src/ParameterTrait.php b/vendor/spomky-labs/otphp/src/ParameterTrait.php
new file mode 100644
index 000000000..69fa774db
--- /dev/null
+++ b/vendor/spomky-labs/otphp/src/ParameterTrait.php
@@ -0,0 +1,196 @@
+<?php
+
+declare(strict_types=1);
+
+/*
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2014-2019 Spomky-Labs
+ *
+ * This software may be modified and distributed under the terms
+ * of the MIT license. See the LICENSE file for details.
+ */
+
+namespace OTPHP;
+
+use Assert\Assertion;
+use InvalidArgumentException;
+use ParagonIE\ConstantTime\Base32;
+use function Safe\sprintf;
+
+trait ParameterTrait
+{
+ /**
+ * @var array<string, mixed>
+ */
+ private $parameters = [];
+
+ /**
+ * @var string|null
+ */
+ private $issuer;
+
+ /**
+ * @var string|null
+ */
+ private $label;
+
+ /**
+ * @var bool
+ */
+ private $issuer_included_as_parameter = true;
+
+ /**
+ * @return array<string, mixed>
+ */
+ public function getParameters(): array
+ {
+ $parameters = $this->parameters;
+
+ if (null !== $this->getIssuer() && true === $this->isIssuerIncludedAsParameter()) {
+ $parameters['issuer'] = $this->getIssuer();
+ }
+
+ return $parameters;
+ }
+
+ public function getSecret(): string
+ {
+ return $this->getParameter('secret');
+ }
+
+ private function setSecret(?string $secret): void
+ {
+ $this->setParameter('secret', $secret);
+ }
+
+ public function getLabel(): ?string
+ {
+ return $this->label;
+ }
+
+ public function setLabel(string $label): void
+ {
+ $this->setParameter('label', $label);
+ }
+
+ public function getIssuer(): ?string
+ {
+ return $this->issuer;
+ }
+
+ public function setIssuer(string $issuer): void
+ {
+ $this->setParameter('issuer', $issuer);
+ }
+
+ public function isIssuerIncludedAsParameter(): bool
+ {
+ return $this->issuer_included_as_parameter;
+ }
+
+ public function setIssuerIncludedAsParameter(bool $issuer_included_as_parameter): void
+ {
+ $this->issuer_included_as_parameter = $issuer_included_as_parameter;
+ }
+
+ public function getDigits(): int
+ {
+ return $this->getParameter('digits');
+ }
+
+ private function setDigits(int $digits): void
+ {
+ $this->setParameter('digits', $digits);
+ }
+
+ public function getDigest(): string
+ {
+ return $this->getParameter('algorithm');
+ }
+
+ private function setDigest(string $digest): void
+ {
+ $this->setParameter('algorithm', $digest);
+ }
+
+ public function hasParameter(string $parameter): bool
+ {
+ return \array_key_exists($parameter, $this->parameters);
+ }
+
+ public function getParameter(string $parameter)
+ {
+ if ($this->hasParameter($parameter)) {
+ return $this->getParameters()[$parameter];
+ }
+
+ throw new InvalidArgumentException(sprintf('Parameter "%s" does not exist', $parameter));
+ }
+
+ public function setParameter(string $parameter, $value): void
+ {
+ $map = $this->getParameterMap();
+
+ if (true === \array_key_exists($parameter, $map)) {
+ $callback = $map[$parameter];
+ $value = $callback($value);
+ }
+
+ if (property_exists($this, $parameter)) {
+ $this->$parameter = $value;
+ } else {
+ $this->parameters[$parameter] = $value;
+ }
+ }
+
+ /**
+ * @return array<string, mixed>
+ */
+ protected function getParameterMap(): array
+ {
+ return [
+ 'label' => function ($value) {
+ Assertion::false($this->hasColon($value), 'Label must not contain a colon.');
+
+ return $value;
+ },
+ 'secret' => function ($value): string {
+ if (null === $value) {
+ $value = Base32::encodeUpper(random_bytes(64));
+ }
+ $value = trim(mb_strtoupper($value), '=');
+
+ return $value;
+ },
+ 'algorithm' => function ($value): string {
+ $value = mb_strtolower($value);
+ Assertion::inArray($value, hash_algos(), sprintf('The "%s" digest is not supported.', $value));
+
+ return $value;
+ },
+ 'digits' => function ($value): int {
+ Assertion::greaterThan($value, 0, 'Digits must be at least 1.');
+
+ return (int) $value;
+ },
+ 'issuer' => function ($value) {
+ Assertion::false($this->hasColon($value), 'Issuer must not contain a colon.');
+
+ return $value;
+ },
+ ];
+ }
+
+ private function hasColon(string $value): bool
+ {
+ $colons = [':', '%3A', '%3a'];
+ foreach ($colons as $colon) {
+ if (false !== mb_strpos($value, $colon)) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+}
diff --git a/vendor/spomky-labs/otphp/src/TOTP.php b/vendor/spomky-labs/otphp/src/TOTP.php
new file mode 100644
index 000000000..588b37f17
--- /dev/null
+++ b/vendor/spomky-labs/otphp/src/TOTP.php
@@ -0,0 +1,159 @@
+<?php
+
+declare(strict_types=1);
+
+/*
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2014-2019 Spomky-Labs
+ *
+ * This software may be modified and distributed under the terms
+ * of the MIT license. See the LICENSE file for details.
+ */
+
+namespace OTPHP;
+
+use Assert\Assertion;
+use function Safe\ksort;
+
+final class TOTP extends OTP implements TOTPInterface
+{
+ protected function __construct(?string $secret, int $period, string $digest, int $digits, int $epoch = 0)
+ {
+ parent::__construct($secret, $digest, $digits);
+ $this->setPeriod($period);
+ $this->setEpoch($epoch);
+ }
+
+ public static function create(?string $secret = null, int $period = 30, string $digest = 'sha1', int $digits = 6, int $epoch = 0): TOTPInterface
+ {
+ return new self($secret, $period, $digest, $digits, $epoch);
+ }
+
+ protected function setPeriod(int $period): void
+ {
+ $this->setParameter('period', $period);
+ }
+
+ public function getPeriod(): int
+ {
+ return $this->getParameter('period');
+ }
+
+ private function setEpoch(int $epoch): void
+ {
+ $this->setParameter('epoch', $epoch);
+ }
+
+ public function getEpoch(): int
+ {
+ return $this->getParameter('epoch');
+ }
+
+ public function at(int $timestamp): string
+ {
+ return $this->generateOTP($this->timecode($timestamp));
+ }
+
+ public function now(): string
+ {
+ return $this->at(time());
+ }
+
+ /**
+ * If no timestamp is provided, the OTP is verified at the actual timestamp.
+ */
+ public function verify(string $otp, ?int $timestamp = null, ?int $window = null): bool
+ {
+ $timestamp = $this->getTimestamp($timestamp);
+
+ if (null === $window) {
+ return $this->compareOTP($this->at($timestamp), $otp);
+ }
+
+ return $this->verifyOtpWithWindow($otp, $timestamp, $window);
+ }
+
+ private function verifyOtpWithWindow(string $otp, int $timestamp, int $window): bool
+ {
+ $window = abs($window);
+
+ for ($i = 0; $i <= $window; ++$i) {
+ $next = $i * $this->getPeriod() + $timestamp;
+ $previous = -$i * $this->getPeriod() + $timestamp;
+ $valid = $this->compareOTP($this->at($next), $otp) ||
+ $this->compareOTP($this->at($previous), $otp);
+
+ if ($valid) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ private function getTimestamp(?int $timestamp): int
+ {
+ $timestamp = $timestamp ?? time();
+ Assertion::greaterOrEqualThan($timestamp, 0, 'Timestamp must be at least 0.');
+
+ return $timestamp;
+ }
+
+ public function getProvisioningUri(): string
+ {
+ $params = [];
+ if (30 !== $this->getPeriod()) {
+ $params['period'] = $this->getPeriod();
+ }
+
+ if (0 !== $this->getEpoch()) {
+ $params['epoch'] = $this->getEpoch();
+ }
+
+ return $this->generateURI('totp', $params);
+ }
+
+ private function timecode(int $timestamp): int
+ {
+ return (int) floor(($timestamp - $this->getEpoch()) / $this->getPeriod());
+ }
+
+ /**
+ * @return array<string, mixed>
+ */
+ protected function getParameterMap(): array
+ {
+ $v = array_merge(
+ parent::getParameterMap(),
+ [
+ 'period' => function ($value): int {
+ Assertion::greaterThan((int) $value, 0, 'Period must be at least 1.');
+
+ return (int) $value;
+ },
+ 'epoch' => function ($value): int {
+ Assertion::greaterOrEqualThan((int) $value, 0, 'Epoch must be greater than or equal to 0.');
+
+ return (int) $value;
+ },
+ ]
+ );
+
+ return $v;
+ }
+
+ /**
+ * @param array<string, mixed> $options
+ */
+ protected function filterOptions(array &$options): void
+ {
+ parent::filterOptions($options);
+
+ if (isset($options['epoch']) && 0 === $options['epoch']) {
+ unset($options['epoch']);
+ }
+
+ ksort($options);
+ }
+}
diff --git a/vendor/spomky-labs/otphp/src/TOTPInterface.php b/vendor/spomky-labs/otphp/src/TOTPInterface.php
new file mode 100644
index 000000000..a19fe7c0b
--- /dev/null
+++ b/vendor/spomky-labs/otphp/src/TOTPInterface.php
@@ -0,0 +1,36 @@
+<?php
+
+declare(strict_types=1);
+
+/*
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2014-2019 Spomky-Labs
+ *
+ * This software may be modified and distributed under the terms
+ * of the MIT license. See the LICENSE file for details.
+ */
+
+namespace OTPHP;
+
+interface TOTPInterface extends OTPInterface
+{
+ /**
+ * Create a new TOTP object.
+ *
+ * If the secret is null, a random 64 bytes secret will be generated.
+ */
+ public static function create(?string $secret = null, int $period = 30, string $digest = 'sha1', int $digits = 6): self;
+
+ /**
+ * Return the TOTP at the current time.
+ */
+ public function now(): string;
+
+ /**
+ * Get the period of time for OTP generation (a non-null positive integer, in second).
+ */
+ public function getPeriod(): int;
+
+ public function getEpoch(): int;
+}
diff --git a/vendor/thecodingmachine/safe/LICENSE b/vendor/thecodingmachine/safe/LICENSE
new file mode 100644
index 000000000..4188a9bbd
--- /dev/null
+++ b/vendor/thecodingmachine/safe/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2018 TheCodingMachine
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE. \ No newline at end of file
diff --git a/vendor/thecodingmachine/safe/README.md b/vendor/thecodingmachine/safe/README.md
new file mode 100644
index 000000000..3c2ee624f
--- /dev/null
+++ b/vendor/thecodingmachine/safe/README.md
@@ -0,0 +1,178 @@
+[![Latest Stable Version](https://poser.pugx.org/thecodingmachine/safe/v/stable.svg)](https://packagist.org/packages/thecodingmachine/safe)
+[![Total Downloads](https://poser.pugx.org/thecodingmachine/safe/downloads.svg)](https://packagist.org/packages/thecodingmachine/safe)
+[![Latest Unstable Version](https://poser.pugx.org/thecodingmachine/safe/v/unstable.svg)](https://packagist.org/packages/thecodingmachine/safe)
+[![License](https://poser.pugx.org/thecodingmachine/safe/license.svg)](https://packagist.org/packages/thecodingmachine/safe)
+[![Build Status](https://travis-ci.org/thecodingmachine/safe.svg?branch=master)](https://travis-ci.org/thecodingmachine/safe)
+[![Continuous Integration](https://github.com/thecodingmachine/safe/workflows/Continuous%20Integration/badge.svg)](https://github.com/thecodingmachine/safe/actions)
+[![codecov](https://codecov.io/gh/thecodingmachine/safe/branch/master/graph/badge.svg)](https://codecov.io/gh/thecodingmachine/safe)
+
+Safe PHP
+========
+
+**Work in progress**
+
+A set of core PHP functions rewritten to throw exceptions instead of returning `false` when an error is encountered.
+
+## The problem
+
+Most PHP core functions were written before exception handling was added to the language. Therefore, most PHP functions
+do not throw exceptions. Instead, they return `false` in case of error.
+
+But most of us are too lazy to check explicitly for every single return of every core PHP function.
+
+```php
+// This code is incorrect. Twice.
+// "file_get_contents" can return false if the file does not exists
+// "json_decode" can return false if the file content is not valid JSON
+$content = file_get_contents('foobar.json');
+$foobar = json_decode($content);
+```
+
+The correct version of this code would be:
+
+```php
+$content = file_get_contents('foobar.json');
+if ($content === false) {
+ throw new FileLoadingException('Could not load file foobar.json');
+}
+$foobar = json_decode($content);
+if (json_last_error() !== JSON_ERROR_NONE) {
+ throw new FileLoadingException('foobar.json does not contain valid JSON: '.json_last_error_msg());
+}
+```
+
+Obviously, while this snippet is correct, it is less easy to read.
+
+## The solution
+
+Enter *thecodingmachine/safe* aka Safe-PHP.
+
+Safe-PHP redeclares all core PHP functions. The new PHP functions act exactly as the old ones, except they
+throw exceptions properly when an error is encountered. The "safe" functions have the same name as the core PHP
+functions, except they are in the `Safe` namespace.
+
+```php
+use function Safe\file_get_contents;
+use function Safe\json_decode;
+
+// This code is both safe and simple!
+$content = file_get_contents('foobar.json');
+$foobar = json_decode($content);
+```
+
+All PHP functions that can return `false` on error are part of Safe.
+In addition, Safe also provide 2 'Safe' classes: `Safe\DateTime` and `Safe\DateTimeImmutable` whose methods will throw exceptions instead of returning false.
+
+## PHPStan integration
+
+> Yeah... but I must explicitly think about importing the "safe" variant of the function, for each and every file of my application.
+> I'm sure I will forget some "use function" statements!
+
+Fear not! thecodingmachine/safe comes with a PHPStan rule.
+
+Never heard of [PHPStan](https://github.com/phpstan/phpstan) before?
+Check it out, it's an amazing code analyzer for PHP.
+
+Simply install the Safe rule in your PHPStan setup (explained in the "Installation" section) and PHPStan will let you know each time you are using an "unsafe" function.
+
+The code below will trigger this warning:
+
+```php
+$content = file_get_contents('foobar.json');
+```
+
+> Function file_get_contents is unsafe to use. It can return FALSE instead of throwing an exception. Please add 'use function Safe\\file_get_contents;' at the beginning of the file to use the variant provided by the 'thecodingmachine/safe' library.
+
+## Installation
+
+Use composer to install Safe-PHP:
+
+```bash
+$ composer require thecodingmachine/safe
+```
+
+*Highly recommended*: install PHPStan and PHPStan extension:
+
+```bash
+$ composer require --dev thecodingmachine/phpstan-safe-rule
+```
+
+Now, edit your `phpstan.neon` file and add these rules:
+
+```yml
+includes:
+ - vendor/thecodingmachine/phpstan-safe-rule/phpstan-safe-rule.neon
+```
+
+## Automated refactoring
+
+You have a large legacy codebase and want to use "Safe-PHP" functions throughout your project? PHPStan will help you
+find these functions but changing the namespace of the functions one function at a time might be a tedious task.
+
+Fortunately, Safe comes bundled with a "Rector" configuration file. [Rector](https://github.com/rectorphp/rector) is a command-line
+tool that performs instant refactoring of your application.
+
+Run
+
+```bash
+$ composer require --dev rector/rector:^0.7
+```
+
+to install `rector/rector`.
+
+Run
+
+```bash
+vendor/bin/rector process src/ --config vendor/thecodingmachine/safe/rector-migrate-0.7.php
+```
+
+to run `rector/rector`.
+
+*Note:* do not forget to replace "src/" with the path to your source directory.
+
+**Important:** the refactoring only performs a "dumb" replacement of functions. It will not modify the way
+"false" return values are handled. So if your code was already performing error handling, you will have to deal
+with it manually.
+
+Especially, you should look for error handling that was already performed, like:
+
+```php
+if (!mkdir($dirPath)) {
+ // Do something on error
+}
+```
+
+This code will be refactored by Rector to:
+
+```php
+if (!\Safe\mkdir($dirPath)) {
+ // Do something on error
+}
+```
+
+You should then (manually) refactor it to:
+
+```php
+try {
+ \Safe\mkdir($dirPath));
+} catch (\Safe\FilesystemException $e) {
+ // Do something on error
+}
+```
+
+## Performance impact
+
+Safe is loading 1000+ functions from ~85 files on each request. Yet, the performance impact of this loading is quite low.
+
+In case you worry, using Safe will "cost" you ~700µs on each request. The [performance section](performance/README.md)
+contains more information regarding the way we tested the performance impact of Safe.
+
+## Learn more
+
+Read [the release article on TheCodingMachine's blog](https://thecodingmachine.io/introducing-safe-php) if you want to
+learn more about what triggered the development of Safe-PHP.
+
+## Contributing
+
+The files that contain all the functions are auto-generated from the PHP doc.
+Read the [CONTRIBUTING.md](CONTRIBUTING.md) file to learn how to regenerate these files and to contribute to this library.
diff --git a/vendor/thecodingmachine/safe/composer.json b/vendor/thecodingmachine/safe/composer.json
new file mode 100644
index 000000000..2cd03fcc8
--- /dev/null
+++ b/vendor/thecodingmachine/safe/composer.json
@@ -0,0 +1,123 @@
+{
+ "name": "thecodingmachine/safe",
+ "description": "PHP core functions that throw exceptions instead of returning FALSE on error",
+ "license": "MIT",
+ "autoload": {
+ "psr-4": {
+ "Safe\\": [
+ "lib/",
+ "deprecated/",
+ "generated/"
+ ]
+ },
+ "files": [
+ "deprecated/apc.php",
+ "deprecated/libevent.php",
+ "deprecated/mssql.php",
+ "deprecated/stats.php",
+ "lib/special_cases.php",
+ "generated/apache.php",
+ "generated/apcu.php",
+ "generated/array.php",
+ "generated/bzip2.php",
+ "generated/calendar.php",
+ "generated/classobj.php",
+ "generated/com.php",
+ "generated/cubrid.php",
+ "generated/curl.php",
+ "generated/datetime.php",
+ "generated/dir.php",
+ "generated/eio.php",
+ "generated/errorfunc.php",
+ "generated/exec.php",
+ "generated/fileinfo.php",
+ "generated/filesystem.php",
+ "generated/filter.php",
+ "generated/fpm.php",
+ "generated/ftp.php",
+ "generated/funchand.php",
+ "generated/gmp.php",
+ "generated/gnupg.php",
+ "generated/hash.php",
+ "generated/ibase.php",
+ "generated/ibmDb2.php",
+ "generated/iconv.php",
+ "generated/image.php",
+ "generated/imap.php",
+ "generated/info.php",
+ "generated/ingres-ii.php",
+ "generated/inotify.php",
+ "generated/json.php",
+ "generated/ldap.php",
+ "generated/libxml.php",
+ "generated/lzf.php",
+ "generated/mailparse.php",
+ "generated/mbstring.php",
+ "generated/misc.php",
+ "generated/msql.php",
+ "generated/mysql.php",
+ "generated/mysqli.php",
+ "generated/mysqlndMs.php",
+ "generated/mysqlndQc.php",
+ "generated/network.php",
+ "generated/oci8.php",
+ "generated/opcache.php",
+ "generated/openssl.php",
+ "generated/outcontrol.php",
+ "generated/password.php",
+ "generated/pcntl.php",
+ "generated/pcre.php",
+ "generated/pdf.php",
+ "generated/pgsql.php",
+ "generated/posix.php",
+ "generated/ps.php",
+ "generated/pspell.php",
+ "generated/readline.php",
+ "generated/rpminfo.php",
+ "generated/rrd.php",
+ "generated/sem.php",
+ "generated/session.php",
+ "generated/shmop.php",
+ "generated/simplexml.php",
+ "generated/sockets.php",
+ "generated/sodium.php",
+ "generated/solr.php",
+ "generated/spl.php",
+ "generated/sqlsrv.php",
+ "generated/ssdeep.php",
+ "generated/ssh2.php",
+ "generated/stream.php",
+ "generated/strings.php",
+ "generated/swoole.php",
+ "generated/uodbc.php",
+ "generated/uopz.php",
+ "generated/url.php",
+ "generated/var.php",
+ "generated/xdiff.php",
+ "generated/xml.php",
+ "generated/xmlrpc.php",
+ "generated/yaml.php",
+ "generated/yaz.php",
+ "generated/zip.php",
+ "generated/zlib.php"
+ ]
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^0.12",
+ "thecodingmachine/phpstan-strict-rules": "^0.12",
+ "squizlabs/php_codesniffer": "^3.2"
+ },
+ "scripts": {
+ "phpstan": "phpstan analyse lib -c phpstan.neon --level=max --no-progress -vvv",
+ "cs-fix": "phpcbf",
+ "cs-check": "phpcs"
+ },
+ "extra": {
+ "branch-alias": {
+ "dev-master": "0.1-dev"
+ }
+ }
+} \ No newline at end of file
diff --git a/vendor/thecodingmachine/safe/deprecated/Exceptions/ApcException.php b/vendor/thecodingmachine/safe/deprecated/Exceptions/ApcException.php
new file mode 100644
index 000000000..f344490d8
--- /dev/null
+++ b/vendor/thecodingmachine/safe/deprecated/Exceptions/ApcException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class ApcException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/deprecated/Exceptions/LibeventException.php b/vendor/thecodingmachine/safe/deprecated/Exceptions/LibeventException.php
new file mode 100644
index 000000000..e1df31b77
--- /dev/null
+++ b/vendor/thecodingmachine/safe/deprecated/Exceptions/LibeventException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class LibeventException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/deprecated/Exceptions/MssqlException.php b/vendor/thecodingmachine/safe/deprecated/Exceptions/MssqlException.php
new file mode 100644
index 000000000..814bd4e0b
--- /dev/null
+++ b/vendor/thecodingmachine/safe/deprecated/Exceptions/MssqlException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class MssqlException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/deprecated/Exceptions/StatsException.php b/vendor/thecodingmachine/safe/deprecated/Exceptions/StatsException.php
new file mode 100644
index 000000000..f8a7f45c2
--- /dev/null
+++ b/vendor/thecodingmachine/safe/deprecated/Exceptions/StatsException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class StatsException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/deprecated/apc.php b/vendor/thecodingmachine/safe/deprecated/apc.php
new file mode 100644
index 000000000..7930432c6
--- /dev/null
+++ b/vendor/thecodingmachine/safe/deprecated/apc.php
@@ -0,0 +1,238 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\ApcException;
+
+/**
+ * Retrieves cached information and meta-data from APC's data store.
+ *
+ * @param string $cache_type If cache_type is "user",
+ * information about the user cache will be returned.
+ *
+ * If cache_type is "filehits",
+ * information about which files have been served from the bytecode cache
+ * for the current request will be returned. This feature must be enabled at
+ * compile time using --enable-filehits.
+ *
+ * If an invalid or no cache_type is specified, information about
+ * the system cache (cached files) will be returned.
+ * @param bool $limited If limited is TRUE, the
+ * return value will exclude the individual list of cache entries. This
+ * is useful when trying to optimize calls for statistics gathering.
+ * @return array Array of cached data (and meta-data)
+ * @throws ApcException
+ *
+ */
+function apc_cache_info(string $cache_type = '', bool $limited = false): array
+{
+ error_clear_last();
+ $result = \apc_cache_info($cache_type, $limited);
+ if ($result === false) {
+ throw ApcException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * apc_cas updates an already existing integer value if the
+ * old parameter matches the currently stored value
+ * with the value of the new parameter.
+ *
+ * @param string $key The key of the value being updated.
+ * @param int $old The old value (the value currently stored).
+ * @param int $new The new value to update to.
+ * @throws ApcException
+ *
+ */
+function apc_cas(string $key, int $old, int $new): void
+{
+ error_clear_last();
+ $result = \apc_cas($key, $old, $new);
+ if ($result === false) {
+ throw ApcException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Stores a file in the bytecode cache, bypassing all filters.
+ *
+ * @param string $filename Full or relative path to a PHP file that will be compiled and stored in
+ * the bytecode cache.
+ * @param bool $atomic
+ * @return mixed Returns TRUE on success.
+ * @throws ApcException
+ *
+ */
+function apc_compile_file(string $filename, bool $atomic = true)
+{
+ error_clear_last();
+ $result = \apc_compile_file($filename, $atomic);
+ if ($result === false) {
+ throw ApcException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Decreases a stored integer value.
+ *
+ * @param string $key The key of the value being decreased.
+ * @param int $step The step, or value to decrease.
+ * @param bool|null $success Optionally pass the success or fail boolean value to
+ * this referenced variable.
+ * @return int Returns the current value of key's value on success
+ * @throws ApcException
+ *
+ */
+function apc_dec(string $key, int $step = 1, ?bool &$success = null): int
+{
+ error_clear_last();
+ $result = \apc_dec($key, $step, $success);
+ if ($result === false) {
+ throw ApcException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * define is notoriously slow. Since the main benefit of
+ * APC is to increase the performance of scripts/applications, this mechanism
+ * is provided to streamline the process of mass constant definition. However,
+ * this function does not perform as well as anticipated.
+ *
+ * For a better-performing solution, try the
+ * hidef extension from PECL.
+ *
+ * @param string $key The key serves as the name of the constant set
+ * being stored. This key is used to retrieve the
+ * stored constants in apc_load_constants.
+ * @param array $constants An associative array of constant_name =&gt; value
+ * pairs. The constant_name must follow the normal
+ * constant naming rules.
+ * value must evaluate to a scalar value.
+ * @param bool $case_sensitive The default behaviour for constants is to be declared case-sensitive;
+ * i.e. CONSTANT and Constant
+ * represent different values. If this parameter evaluates to FALSE the
+ * constants will be declared as case-insensitive symbols.
+ * @throws ApcException
+ *
+ */
+function apc_define_constants(string $key, array $constants, bool $case_sensitive = true): void
+{
+ error_clear_last();
+ $result = \apc_define_constants($key, $constants, $case_sensitive);
+ if ($result === false) {
+ throw ApcException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Deletes the given files from the opcode cache.
+ *
+ * @param mixed $keys The files to be deleted. Accepts a string,
+ * array of strings, or an APCIterator
+ * object.
+ * @return mixed Returns TRUE on success.
+ * Or if keys is an array, then
+ * an empty array is returned on success, or an array of failed files
+ * is returned.
+ * @throws ApcException
+ *
+ */
+function apc_delete_file($keys)
+{
+ error_clear_last();
+ $result = \apc_delete_file($keys);
+ if ($result === false) {
+ throw ApcException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Removes a stored variable from the cache.
+ *
+ * @param string|string[]|\APCIterator $key The key used to store the value (with
+ * apc_store).
+ * @throws ApcException
+ *
+ */
+function apc_delete($key): void
+{
+ error_clear_last();
+ $result = \apc_delete($key);
+ if ($result === false) {
+ throw ApcException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Increases a stored number.
+ *
+ * @param string $key The key of the value being increased.
+ * @param int $step The step, or value to increase.
+ * @param bool|null $success Optionally pass the success or fail boolean value to
+ * this referenced variable.
+ * @return int Returns the current value of key's value on success
+ * @throws ApcException
+ *
+ */
+function apc_inc(string $key, int $step = 1, ?bool &$success = null): int
+{
+ error_clear_last();
+ $result = \apc_inc($key, $step, $success);
+ if ($result === false) {
+ throw ApcException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Loads a set of constants from the cache.
+ *
+ * @param string $key The name of the constant set (that was stored with
+ * apc_define_constants) to be retrieved.
+ * @param bool $case_sensitive The default behaviour for constants is to be declared case-sensitive;
+ * i.e. CONSTANT and Constant
+ * represent different values. If this parameter evaluates to FALSE the
+ * constants will be declared as case-insensitive symbols.
+ * @throws ApcException
+ *
+ */
+function apc_load_constants(string $key, bool $case_sensitive = true): void
+{
+ error_clear_last();
+ $result = \apc_load_constants($key, $case_sensitive);
+ if ($result === false) {
+ throw ApcException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Retrieves APC's Shared Memory Allocation information.
+ *
+ * @param bool $limited When set to FALSE (default) apc_sma_info will
+ * return a detailed information about each segment.
+ * @return array Array of Shared Memory Allocation data; FALSE on failure.
+ * @throws ApcException
+ *
+ */
+function apc_sma_info(bool $limited = false): array
+{
+ error_clear_last();
+ $result = \apc_sma_info($limited);
+ if ($result === false) {
+ throw ApcException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/deprecated/functionsList.php b/vendor/thecodingmachine/safe/deprecated/functionsList.php
new file mode 100644
index 000000000..e430cd3b9
--- /dev/null
+++ b/vendor/thecodingmachine/safe/deprecated/functionsList.php
@@ -0,0 +1,56 @@
+<?php
+
+return [
+ 'apc_cache_info',
+ 'apc_cas',
+ 'apc_compile_file',
+ 'apc_dec',
+ 'apc_define_constants',
+ 'apc_delete',
+ 'apc_delete_file',
+ 'apc_inc',
+ 'apc_load_constants',
+ 'apc_sma_info',
+ 'event_add',
+ 'event_base_loopbreak',
+ 'event_base_loopexit',
+ 'event_base_new',
+ 'event_base_priority_init',
+ 'event_base_reinit',
+ 'event_base_set',
+ 'event_buffer_base_set',
+ 'event_buffer_disable',
+ 'event_buffer_enable',
+ 'event_buffer_new',
+ 'event_buffer_priority_set',
+ 'event_buffer_set_callback',
+ 'event_buffer_write',
+ 'event_del',
+ 'event_new',
+ 'event_priority_set',
+ 'event_set',
+ 'event_timer_set',
+ 'imagepsencodefont',
+ 'imagepsextendfont',
+ 'imagepsfreefont',
+ 'imagepsslantfont',
+ 'mssql_bind',
+ 'mssql_close',
+ 'mssql_connect',
+ 'mssql_data_seek',
+ 'mssql_field_length',
+ 'mssql_field_name',
+ 'mssql_field_seek',
+ 'mssql_field_type',
+ 'mssql_free_result',
+ 'mssql_free_statement',
+ 'mssql_init',
+ 'mssql_pconnect',
+ 'mssql_query',
+ 'mssql_select_db',
+ 'stats_covariance',
+ 'stats_standard_deviation',
+ 'stats_stat_correlation',
+ 'stats_stat_innerproduct',
+ 'stats_variance',
+];
diff --git a/vendor/thecodingmachine/safe/deprecated/libevent.php b/vendor/thecodingmachine/safe/deprecated/libevent.php
new file mode 100644
index 000000000..574f0a67b
--- /dev/null
+++ b/vendor/thecodingmachine/safe/deprecated/libevent.php
@@ -0,0 +1,496 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\LibeventException;
+
+/**
+ * event_add schedules the execution of the event
+ * when the event specified in event_set occurs or in at least the time
+ * specified by the timeout argument. If
+ * timeout was not specified, not timeout is set. The
+ * event must be already initalized by event_set
+ * and event_base_set functions. If the
+ * event already has a timeout set, it is replaced by
+ * the new one.
+ *
+ * @param resource $event Valid event resource.
+ * @param int $timeout Optional timeout (in microseconds).
+ * @throws LibeventException
+ *
+ */
+function event_add($event, int $timeout = -1): void
+{
+ error_clear_last();
+ $result = \event_add($event, $timeout);
+ if ($result === false) {
+ throw LibeventException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Abort the active event loop immediately. The behaviour is similar to
+ * break statement.
+ *
+ * @param resource $event_base Valid event base resource.
+ * @throws LibeventException
+ *
+ */
+function event_base_loopbreak($event_base): void
+{
+ error_clear_last();
+ $result = \event_base_loopbreak($event_base);
+ if ($result === false) {
+ throw LibeventException::createFromPhpError();
+ }
+}
+
+
+/**
+ * The next event loop iteration after the given timer expires will complete
+ * normally, then exit without blocking for events again.
+ *
+ * @param resource $event_base Valid event base resource.
+ * @param int $timeout Optional timeout parameter (in microseconds).
+ * @throws LibeventException
+ *
+ */
+function event_base_loopexit($event_base, int $timeout = -1): void
+{
+ error_clear_last();
+ $result = \event_base_loopexit($event_base, $timeout);
+ if ($result === false) {
+ throw LibeventException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Returns new event base, which can be used later in event_base_set,
+ * event_base_loop and other functions.
+ *
+ * @return resource event_base_new returns valid event base resource on
+ * success.
+ * @throws LibeventException
+ *
+ */
+function event_base_new()
+{
+ error_clear_last();
+ $result = \event_base_new();
+ if ($result === false) {
+ throw LibeventException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Sets the number of different event priority levels.
+ *
+ * By default all events are scheduled with the same priority
+ * (npriorities/2).
+ * Using event_base_priority_init you can change the number
+ * of event priority levels and then set a desired priority for each event.
+ *
+ * @param resource $event_base Valid event base resource.
+ * @param int $npriorities The number of event priority levels.
+ * @throws LibeventException
+ *
+ */
+function event_base_priority_init($event_base, int $npriorities): void
+{
+ error_clear_last();
+ $result = \event_base_priority_init($event_base, $npriorities);
+ if ($result === false) {
+ throw LibeventException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Some event mechanisms do not survive across fork. The
+ * event_base needs to be reinitialized with this
+ * function.
+ *
+ * @param resource $event_base Valid event base resource that needs to be re-initialized.
+ * @throws LibeventException
+ *
+ */
+function event_base_reinit($event_base): void
+{
+ error_clear_last();
+ $result = \event_base_reinit($event_base);
+ if ($result === false) {
+ throw LibeventException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Associates the event_base with the
+ * event.
+ *
+ * @param resource $event Valid event resource.
+ * @param resource $event_base Valid event base resource.
+ * @throws LibeventException
+ *
+ */
+function event_base_set($event, $event_base): void
+{
+ error_clear_last();
+ $result = \event_base_set($event, $event_base);
+ if ($result === false) {
+ throw LibeventException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Assign the specified bevent to the
+ * event_base.
+ *
+ * @param resource $bevent Valid buffered event resource.
+ * @param resource $event_base Valid event base resource.
+ * @throws LibeventException
+ *
+ */
+function event_buffer_base_set($bevent, $event_base): void
+{
+ error_clear_last();
+ $result = \event_buffer_base_set($bevent, $event_base);
+ if ($result === false) {
+ throw LibeventException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Disables the specified buffered event.
+ *
+ * @param resource $bevent Valid buffered event resource.
+ * @param int $events Any combination of EV_READ and
+ * EV_WRITE.
+ * @throws LibeventException
+ *
+ */
+function event_buffer_disable($bevent, int $events): void
+{
+ error_clear_last();
+ $result = \event_buffer_disable($bevent, $events);
+ if ($result === false) {
+ throw LibeventException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Enables the specified buffered event.
+ *
+ * @param resource $bevent Valid buffered event resource.
+ * @param int $events Any combination of EV_READ and
+ * EV_WRITE.
+ * @throws LibeventException
+ *
+ */
+function event_buffer_enable($bevent, int $events): void
+{
+ error_clear_last();
+ $result = \event_buffer_enable($bevent, $events);
+ if ($result === false) {
+ throw LibeventException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Libevent provides an abstraction layer on top of the regular event API.
+ * Using buffered event you don't need to deal with the I/O manually, instead
+ * it provides input and output buffers that get filled and drained
+ * automatically.
+ *
+ * @param resource $stream Valid PHP stream resource. Must be castable to file descriptor.
+ * @param mixed $readcb Callback to invoke where there is data to read, or NULL if
+ * no callback is desired.
+ * @param mixed $writecb Callback to invoke where the descriptor is ready for writing,
+ * or NULL if no callback is desired.
+ * @param mixed $errorcb Callback to invoke where there is an error on the descriptor, cannot be
+ * NULL.
+ * @param mixed $arg An argument that will be passed to each of the callbacks (optional).
+ * @return resource event_buffer_new returns new buffered event resource
+ * on success.
+ * @throws LibeventException
+ *
+ */
+function event_buffer_new($stream, $readcb, $writecb, $errorcb, $arg = null)
+{
+ error_clear_last();
+ if ($arg !== null) {
+ $result = \event_buffer_new($stream, $readcb, $writecb, $errorcb, $arg);
+ } else {
+ $result = \event_buffer_new($stream, $readcb, $writecb, $errorcb);
+ }
+ if ($result === false) {
+ throw LibeventException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Assign a priority to the bevent.
+ *
+ * @param resource $bevent Valid buffered event resource.
+ * @param int $priority Priority level. Cannot be less than zero and cannot exceed maximum
+ * priority level of the event base (see event_base_priority_init).
+ * @throws LibeventException
+ *
+ */
+function event_buffer_priority_set($bevent, int $priority): void
+{
+ error_clear_last();
+ $result = \event_buffer_priority_set($bevent, $priority);
+ if ($result === false) {
+ throw LibeventException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets or changes existing callbacks for the buffered event.
+ *
+ * @param resource $event Valid buffered event resource.
+ * @param mixed $readcb Callback to invoke where there is data to read, or NULL if
+ * no callback is desired.
+ * @param mixed $writecb Callback to invoke where the descriptor is ready for writing,
+ * or NULL if no callback is desired.
+ * @param mixed $errorcb Callback to invoke where there is an error on the descriptor, cannot be
+ * NULL.
+ * @param mixed $arg An argument that will be passed to each of the callbacks (optional).
+ * @throws LibeventException
+ *
+ */
+function event_buffer_set_callback($event, $readcb, $writecb, $errorcb, $arg = null): void
+{
+ error_clear_last();
+ if ($arg !== null) {
+ $result = \event_buffer_set_callback($event, $readcb, $writecb, $errorcb, $arg);
+ } else {
+ $result = \event_buffer_set_callback($event, $readcb, $writecb, $errorcb);
+ }
+ if ($result === false) {
+ throw LibeventException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Writes data to the specified buffered event. The data is appended to the
+ * output buffer and written to the descriptor when it becomes available for
+ * writing.
+ *
+ * @param resource $bevent Valid buffered event resource.
+ * @param string $data The data to be written.
+ * @param int $data_size Optional size parameter. event_buffer_write writes
+ * all the data by default.
+ * @throws LibeventException
+ *
+ */
+function event_buffer_write($bevent, string $data, int $data_size = -1): void
+{
+ error_clear_last();
+ $result = \event_buffer_write($bevent, $data, $data_size);
+ if ($result === false) {
+ throw LibeventException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Cancels the event.
+ *
+ * @param resource $event Valid event resource.
+ * @throws LibeventException
+ *
+ */
+function event_del($event): void
+{
+ error_clear_last();
+ $result = \event_del($event);
+ if ($result === false) {
+ throw LibeventException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Creates and returns a new event resource.
+ *
+ * @return resource event_new returns a new event resource on success.
+ * @throws LibeventException
+ *
+ */
+function event_new()
+{
+ error_clear_last();
+ $result = \event_new();
+ if ($result === false) {
+ throw LibeventException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Assign a priority to the event.
+ *
+ * @param resource $event Valid event resource.
+ * @param int $priority Priority level. Cannot be less than zero and cannot exceed maximum
+ * priority level of the event base (see
+ * event_base_priority_init).
+ * @throws LibeventException
+ *
+ */
+function event_priority_set($event, int $priority): void
+{
+ error_clear_last();
+ $result = \event_priority_set($event, $priority);
+ if ($result === false) {
+ throw LibeventException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Prepares the event to be used in event_add. The event
+ * is prepared to call the function specified by the callback
+ * on the events specified in parameter events, which
+ * is a set of the following flags: EV_TIMEOUT,
+ * EV_SIGNAL, EV_READ,
+ * EV_WRITE and EV_PERSIST.
+ *
+ * If EV_SIGNAL bit is set in parameter events,
+ * the fd is interpreted as signal number.
+ *
+ * After initializing the event, use event_base_set to
+ * associate the event with its event base.
+ *
+ * In case of matching event, these three arguments are passed to the
+ * callback function:
+ *
+ *
+ * fd
+ *
+ *
+ * Signal number or resource indicating the stream.
+ *
+ *
+ *
+ *
+ * events
+ *
+ *
+ * A flag indicating the event. Consists of the following flags:
+ * EV_TIMEOUT, EV_SIGNAL,
+ * EV_READ, EV_WRITE
+ * and EV_PERSIST.
+ *
+ *
+ *
+ *
+ * arg
+ *
+ *
+ * Optional parameter, previously passed to event_set
+ * as arg.
+ *
+ *
+ *
+ *
+ *
+ * @param resource $event Valid event resource.
+ * @param mixed $fd Valid PHP stream resource. The stream must be castable to file
+ * descriptor, so you most likely won't be able to use any of filtered
+ * streams.
+ * @param int $events A set of flags indicating the desired event, can be
+ * EV_READ and/or EV_WRITE.
+ * The additional flag EV_PERSIST makes the event
+ * to persist until event_del is called, otherwise
+ * the callback is invoked only once.
+ * @param mixed $callback Callback function to be called when the matching event occurs.
+ * @param mixed $arg Optional callback parameter.
+ * @throws LibeventException
+ *
+ */
+function event_set($event, $fd, int $events, $callback, $arg = null): void
+{
+ error_clear_last();
+ if ($arg !== null) {
+ $result = \event_set($event, $fd, $events, $callback, $arg);
+ } else {
+ $result = \event_set($event, $fd, $events, $callback);
+ }
+ if ($result === false) {
+ throw LibeventException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Prepares the timer event to be used in event_add. The
+ * event is prepared to call the function specified by the
+ * callback when the event timeout elapses.
+ *
+ * After initializing the event, use event_base_set to
+ * associate the event with its event base.
+ *
+ * In case of matching event, these three arguments are passed to the
+ * callback function:
+ *
+ *
+ * fd
+ *
+ *
+ * Signal number or resource indicating the stream.
+ *
+ *
+ *
+ *
+ * events
+ *
+ *
+ * A flag indicating the event. This will always be
+ * EV_TIMEOUT for timer events.
+ *
+ *
+ *
+ *
+ * arg
+ *
+ *
+ * Optional parameter, previously passed to
+ * event_timer_set as arg.
+ *
+ *
+ *
+ *
+ *
+ * @param resource $event Valid event resource.
+ * @param callable $callback Callback function to be called when the matching event occurs.
+ * @param mixed $arg Optional callback parameter.
+ * @throws LibeventException
+ *
+ */
+function event_timer_set($event, callable $callback, $arg = null): void
+{
+ error_clear_last();
+ if ($arg !== null) {
+ $result = \event_timer_set($event, $callback, $arg);
+ } else {
+ $result = \event_timer_set($event, $callback);
+ }
+ if ($result === false) {
+ throw LibeventException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/deprecated/mssql.php b/vendor/thecodingmachine/safe/deprecated/mssql.php
new file mode 100644
index 000000000..234ef56b1
--- /dev/null
+++ b/vendor/thecodingmachine/safe/deprecated/mssql.php
@@ -0,0 +1,426 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\MssqlException;
+
+/**
+ * Binds a parameter to a stored procedure or a remote stored procedure.
+ *
+ * @param resource $stmt Statement resource, obtained with mssql_init.
+ * @param string $param_name The parameter name, as a string.
+ *
+ * You have to include the @ character, like in the
+ * T-SQL syntax. See the explanation included in
+ * mssql_execute.
+ * @param mixed $var The PHP variable you'll bind the MSSQL parameter to. It is passed by
+ * reference, to retrieve OUTPUT and RETVAL values after
+ * the procedure execution.
+ * @param int $type One of: SQLTEXT,
+ * SQLVARCHAR, SQLCHAR,
+ * SQLINT1, SQLINT2,
+ * SQLINT4, SQLBIT,
+ * SQLFLT4, SQLFLT8,
+ * SQLFLTN.
+ * @param bool $is_output Whether the value is an OUTPUT parameter or not. If it's an OUTPUT
+ * parameter and you don't mention it, it will be treated as a normal
+ * input parameter and no error will be thrown.
+ * @param bool $is_null Whether the parameter is NULL or not. Passing the NULL value as
+ * var will not do the job.
+ * @param int $maxlen Used with char/varchar values. You have to indicate the length of the
+ * data so if the parameter is a varchar(50), the type must be
+ * SQLVARCHAR and this value 50.
+ * @throws MssqlException
+ *
+ */
+function mssql_bind($stmt, string $param_name, &$var, int $type, bool $is_output = false, bool $is_null = false, int $maxlen = -1): void
+{
+ error_clear_last();
+ $result = \mssql_bind($stmt, $param_name, $var, $type, $is_output, $is_null, $maxlen);
+ if ($result === false) {
+ throw MssqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Closes the link to a MS SQL Server database that's associated with the
+ * specified link identifier. If the link identifier isn't specified, the
+ * last opened link is assumed.
+ *
+ * Note that this isn't usually necessary, as non-persistent open
+ * links are automatically closed at the end of the script's
+ * execution.
+ *
+ * @param resource $link_identifier A MS SQL link identifier, returned by
+ * mssql_connect.
+ *
+ * This function will not close persistent links generated by
+ * mssql_pconnect.
+ * @throws MssqlException
+ *
+ */
+function mssql_close($link_identifier = null): void
+{
+ error_clear_last();
+ if ($link_identifier !== null) {
+ $result = \mssql_close($link_identifier);
+ } else {
+ $result = \mssql_close();
+ }
+ if ($result === false) {
+ throw MssqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * mssql_connect establishes a connection to a
+ * MS SQL server.
+ *
+ * The link to the server will be closed as soon as the execution of
+ * the script ends, unless it's closed earlier by explicitly calling
+ * mssql_close.
+ *
+ * @param string $servername The MS SQL server. It can also include a port number, e.g.
+ * hostname:port (Linux), or
+ * hostname,port (Windows).
+ * @param string $username The username.
+ * @param string $password The password.
+ * @param bool $new_link If a second call is made to mssql_connect with the
+ * same arguments, no new link will be established, but instead, the link
+ * identifier of the already opened link will be returned. This parameter
+ * modifies this behavior and makes mssql_connect
+ * always open a new link, even if mssql_connect was
+ * called before with the same parameters.
+ * @return resource Returns a MS SQL link identifier on success.
+ * @throws MssqlException
+ *
+ */
+function mssql_connect(string $servername = null, string $username = null, string $password = null, bool $new_link = false)
+{
+ error_clear_last();
+ if ($new_link !== false) {
+ $result = \mssql_connect($servername, $username, $password, $new_link);
+ } elseif ($password !== null) {
+ $result = \mssql_connect($servername, $username, $password);
+ } elseif ($username !== null) {
+ $result = \mssql_connect($servername, $username);
+ } elseif ($servername !== null) {
+ $result = \mssql_connect($servername);
+ } else {
+ $result = \mssql_connect();
+ }
+ if ($result === false) {
+ throw MssqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * mssql_data_seek moves the internal row
+ * pointer of the MS SQL result associated with the specified result
+ * identifier to point to the specified row number, first row being
+ * number 0. The next call to mssql_fetch_row
+ * would return that row.
+ *
+ * @param resource $result_identifier The result resource that is being evaluated.
+ * @param int $row_number The desired row number of the new result pointer.
+ * @throws MssqlException
+ *
+ */
+function mssql_data_seek($result_identifier, int $row_number): void
+{
+ error_clear_last();
+ $result = \mssql_data_seek($result_identifier, $row_number);
+ if ($result === false) {
+ throw MssqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Returns the length of field no. offset in
+ * result.
+ *
+ * @param resource $result The result resource that is being evaluated. This result comes from a
+ * call to mssql_query.
+ * @param int $offset The field offset, starts at 0. If omitted, the current field is used.
+ * @return int The length of the specified field index on success.
+ * @throws MssqlException
+ *
+ */
+function mssql_field_length($result, int $offset = -1): int
+{
+ error_clear_last();
+ $result = \mssql_field_length($result, $offset);
+ if ($result === false) {
+ throw MssqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Returns the name of field no. offset in
+ * result.
+ *
+ * @param resource $result The result resource that is being evaluated. This result comes from a
+ * call to mssql_query.
+ * @param int $offset The field offset, starts at 0. If omitted, the current field is used.
+ * @return string The name of the specified field index on success.
+ * @throws MssqlException
+ *
+ */
+function mssql_field_name($result, int $offset = -1): string
+{
+ error_clear_last();
+ $result = \mssql_field_name($result, $offset);
+ if ($result === false) {
+ throw MssqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Seeks to the specified field offset. If the next call to
+ * mssql_fetch_field won't include a field
+ * offset, this field would be returned.
+ *
+ * @param resource $result The result resource that is being evaluated. This result comes from a
+ * call to mssql_query.
+ * @param int $field_offset The field offset, starts at 0.
+ * @throws MssqlException
+ *
+ */
+function mssql_field_seek($result, int $field_offset): void
+{
+ error_clear_last();
+ $result = \mssql_field_seek($result, $field_offset);
+ if ($result === false) {
+ throw MssqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Returns the type of field no. offset in
+ * result.
+ *
+ * @param resource $result The result resource that is being evaluated. This result comes from a
+ * call to mssql_query.
+ * @param int $offset The field offset, starts at 0. If omitted, the current field is used.
+ * @return string The type of the specified field index on success.
+ * @throws MssqlException
+ *
+ */
+function mssql_field_type($result, int $offset = -1): string
+{
+ error_clear_last();
+ $result = \mssql_field_type($result, $offset);
+ if ($result === false) {
+ throw MssqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * mssql_free_result only needs to be called
+ * if you are worried about using too much memory while your script
+ * is running. All result memory will automatically be freed when
+ * the script ends. You may call mssql_free_result
+ * with the result identifier as an argument and the associated
+ * result memory will be freed.
+ *
+ * @param resource $result The result resource that is being freed. This result comes from a
+ * call to mssql_query.
+ * @throws MssqlException
+ *
+ */
+function mssql_free_result($result): void
+{
+ error_clear_last();
+ $result = \mssql_free_result($result);
+ if ($result === false) {
+ throw MssqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * mssql_free_statement only needs to be called
+ * if you are worried about using too much memory while your script
+ * is running. All statement memory will automatically be freed when
+ * the script ends. You may call mssql_free_statement
+ * with the statement identifier as an argument and the associated
+ * statement memory will be freed.
+ *
+ * @param resource $stmt Statement resource, obtained with mssql_init.
+ * @throws MssqlException
+ *
+ */
+function mssql_free_statement($stmt): void
+{
+ error_clear_last();
+ $result = \mssql_free_statement($stmt);
+ if ($result === false) {
+ throw MssqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Initializes a stored procedure or a remote stored procedure.
+ *
+ * @param string $sp_name Stored procedure name, like ownew.sp_name or
+ * otherdb.owner.sp_name.
+ * @param resource $link_identifier A MS SQL link identifier, returned by
+ * mssql_connect.
+ * @return resource Returns a resource identifier "statement", used in subsequent calls to
+ * mssql_bind and mssql_executes.
+ * @throws MssqlException
+ *
+ */
+function mssql_init(string $sp_name, $link_identifier = null)
+{
+ error_clear_last();
+ if ($link_identifier !== null) {
+ $result = \mssql_init($sp_name, $link_identifier);
+ } else {
+ $result = \mssql_init($sp_name);
+ }
+ if ($result === false) {
+ throw MssqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * mssql_pconnect acts very much like
+ * mssql_connect with two major differences.
+ *
+ * First, when connecting, the function would first try to find a
+ * (persistent) link that's already open with the same host,
+ * username and password. If one is found, an identifier for it
+ * will be returned instead of opening a new connection.
+ *
+ * Second, the connection to the SQL server will not be closed when
+ * the execution of the script ends. Instead, the link will remain
+ * open for future use (mssql_close will not
+ * close links established by mssql_pconnect).
+ *
+ * This type of links is therefore called 'persistent'.
+ *
+ * @param string $servername The MS SQL server. It can also include a port number. e.g.
+ * hostname:port.
+ * @param string $username The username.
+ * @param string $password The password.
+ * @param bool $new_link If a second call is made to mssql_pconnect with
+ * the same arguments, no new link will be established, but instead, the
+ * link identifier of the already opened link will be returned. This
+ * parameter modifies this behavior and makes
+ * mssql_pconnect always open a new link, even if
+ * mssql_pconnect was called before with the same
+ * parameters.
+ * @return resource Returns a positive MS SQL persistent link identifier on success.
+ * @throws MssqlException
+ *
+ */
+function mssql_pconnect(string $servername = null, string $username = null, string $password = null, bool $new_link = false)
+{
+ error_clear_last();
+ if ($new_link !== false) {
+ $result = \mssql_pconnect($servername, $username, $password, $new_link);
+ } elseif ($password !== null) {
+ $result = \mssql_pconnect($servername, $username, $password);
+ } elseif ($username !== null) {
+ $result = \mssql_pconnect($servername, $username);
+ } elseif ($servername !== null) {
+ $result = \mssql_pconnect($servername);
+ } else {
+ $result = \mssql_pconnect();
+ }
+ if ($result === false) {
+ throw MssqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * mssql_query sends a query to the currently active
+ * database on the server that's associated with the specified link
+ * identifier.
+ *
+ * @param string $query An SQL query.
+ * @param resource $link_identifier A MS SQL link identifier, returned by
+ * mssql_connect or
+ * mssql_pconnect.
+ *
+ * If the link identifier isn't specified, the last opened link is
+ * assumed. If no link is open, the function tries to establish a link
+ * as if mssql_connect was called, and use it.
+ * @param int $batch_size The number of records to batch in the buffer.
+ * @return mixed Returns a MS SQL result resource on success, TRUE if no rows were
+ * returned.
+ * @throws MssqlException
+ *
+ */
+function mssql_query(string $query, $link_identifier = null, int $batch_size = 0)
+{
+ error_clear_last();
+ if ($batch_size !== 0) {
+ $result = \mssql_query($query, $link_identifier, $batch_size);
+ } elseif ($link_identifier !== null) {
+ $result = \mssql_query($query, $link_identifier);
+ } else {
+ $result = \mssql_query($query);
+ }
+ if ($result === false) {
+ throw MssqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * mssql_select_db sets the current active
+ * database on the server that's associated with the specified link
+ * identifier.
+ *
+ * Every subsequent call to mssql_query will be
+ * made on the active database.
+ *
+ * @param string $database_name The database name.
+ *
+ * To escape the name of a database that contains spaces, hyphens ("-"),
+ * or any other exceptional characters, the database name must be
+ * enclosed in brackets, as is shown in the example, below. This
+ * technique must also be applied when selecting a database name that is
+ * also a reserved word (such as primary).
+ * @param resource $link_identifier A MS SQL link identifier, returned by
+ * mssql_connect or
+ * mssql_pconnect.
+ *
+ * If no link identifier is specified, the last opened link is assumed.
+ * If no link is open, the function will try to establish a link as if
+ * mssql_connect was called, and use it.
+ * @throws MssqlException
+ *
+ */
+function mssql_select_db(string $database_name, $link_identifier = null): void
+{
+ error_clear_last();
+ if ($link_identifier !== null) {
+ $result = \mssql_select_db($database_name, $link_identifier);
+ } else {
+ $result = \mssql_select_db($database_name);
+ }
+ if ($result === false) {
+ throw MssqlException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/deprecated/stats.php b/vendor/thecodingmachine/safe/deprecated/stats.php
new file mode 100644
index 000000000..aca984859
--- /dev/null
+++ b/vendor/thecodingmachine/safe/deprecated/stats.php
@@ -0,0 +1,108 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\StatsException;
+
+/**
+ * Returns the covariance of a and b.
+ *
+ * @param array $a The first array
+ * @param array $b The second array
+ * @return float Returns the covariance of a and b.
+ * @throws StatsException
+ *
+ */
+function stats_covariance(array $a, array $b): float
+{
+ error_clear_last();
+ $result = \stats_covariance($a, $b);
+ if ($result === false) {
+ throw StatsException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Returns the standard deviation of the values in a.
+ *
+ * @param array $a The array of data to find the standard deviation for. Note that all
+ * values of the array will be cast to float.
+ * @param bool $sample Indicates if a represents a sample of the
+ * population; defaults to FALSE.
+ * @return float Returns the standard deviation on success; FALSE on failure.
+ * @throws StatsException
+ *
+ */
+function stats_standard_deviation(array $a, bool $sample = false): float
+{
+ error_clear_last();
+ $result = \stats_standard_deviation($a, $sample);
+ if ($result === false) {
+ throw StatsException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Returns the Pearson correlation coefficient between arr1 and arr2.
+ *
+ * @param array $arr1 The first array
+ * @param array $arr2 The second array
+ * @return float Returns the Pearson correlation coefficient between arr1 and arr2.
+ * @throws StatsException
+ *
+ */
+function stats_stat_correlation(array $arr1, array $arr2): float
+{
+ error_clear_last();
+ $result = \stats_stat_correlation($arr1, $arr2);
+ if ($result === false) {
+ throw StatsException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Returns the inner product of arr1 and arr2.
+ *
+ * @param array $arr1 The first array
+ * @param array $arr2 The second array
+ * @return float Returns the inner product of arr1 and arr2.
+ * @throws StatsException
+ *
+ */
+function stats_stat_innerproduct(array $arr1, array $arr2): float
+{
+ error_clear_last();
+ $result = \stats_stat_innerproduct($arr1, $arr2);
+ if ($result === false) {
+ throw StatsException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Returns the variance of the values in a.
+ *
+ * @param array $a The array of data to find the standard deviation for. Note that all
+ * values of the array will be cast to float.
+ * @param bool $sample Indicates if a represents a sample of the
+ * population; defaults to FALSE.
+ * @return float Returns the variance on success; FALSE on failure.
+ * @throws StatsException
+ *
+ */
+function stats_variance(array $a, bool $sample = false): float
+{
+ error_clear_last();
+ $result = \stats_variance($a, $sample);
+ if ($result === false) {
+ throw StatsException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/.gitkeep b/vendor/thecodingmachine/safe/generated/Exceptions/.gitkeep
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/.gitkeep
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/ApacheException.php b/vendor/thecodingmachine/safe/generated/Exceptions/ApacheException.php
new file mode 100644
index 000000000..5d69236fa
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/ApacheException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class ApacheException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/ApcuException.php b/vendor/thecodingmachine/safe/generated/Exceptions/ApcuException.php
new file mode 100644
index 000000000..a9fc893e5
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/ApcuException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class ApcuException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/ArrayException.php b/vendor/thecodingmachine/safe/generated/Exceptions/ArrayException.php
new file mode 100644
index 000000000..154800c32
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/ArrayException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class ArrayException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/Bzip2Exception.php b/vendor/thecodingmachine/safe/generated/Exceptions/Bzip2Exception.php
new file mode 100644
index 000000000..dd4ab83f3
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/Bzip2Exception.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class Bzip2Exception extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/CalendarException.php b/vendor/thecodingmachine/safe/generated/Exceptions/CalendarException.php
new file mode 100644
index 000000000..66ba58842
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/CalendarException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class CalendarException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/ClassobjException.php b/vendor/thecodingmachine/safe/generated/Exceptions/ClassobjException.php
new file mode 100644
index 000000000..1c377b516
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/ClassobjException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class ClassobjException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/ComException.php b/vendor/thecodingmachine/safe/generated/Exceptions/ComException.php
new file mode 100644
index 000000000..154213436
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/ComException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class ComException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/CubridException.php b/vendor/thecodingmachine/safe/generated/Exceptions/CubridException.php
new file mode 100644
index 000000000..853c8d258
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/CubridException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class CubridException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/DatetimeException.php b/vendor/thecodingmachine/safe/generated/Exceptions/DatetimeException.php
new file mode 100644
index 000000000..63d5f9388
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/DatetimeException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class DatetimeException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/DirException.php b/vendor/thecodingmachine/safe/generated/Exceptions/DirException.php
new file mode 100644
index 000000000..100308e60
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/DirException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class DirException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/EioException.php b/vendor/thecodingmachine/safe/generated/Exceptions/EioException.php
new file mode 100644
index 000000000..f4e121ab7
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/EioException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class EioException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/ErrorfuncException.php b/vendor/thecodingmachine/safe/generated/Exceptions/ErrorfuncException.php
new file mode 100644
index 000000000..bf412400d
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/ErrorfuncException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class ErrorfuncException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/ExecException.php b/vendor/thecodingmachine/safe/generated/Exceptions/ExecException.php
new file mode 100644
index 000000000..f7c503c8c
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/ExecException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class ExecException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/FileinfoException.php b/vendor/thecodingmachine/safe/generated/Exceptions/FileinfoException.php
new file mode 100644
index 000000000..b9e3abbee
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/FileinfoException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class FileinfoException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/FilesystemException.php b/vendor/thecodingmachine/safe/generated/Exceptions/FilesystemException.php
new file mode 100644
index 000000000..3c1c70e30
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/FilesystemException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class FilesystemException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/FilterException.php b/vendor/thecodingmachine/safe/generated/Exceptions/FilterException.php
new file mode 100644
index 000000000..a2c1b5c88
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/FilterException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class FilterException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/FpmException.php b/vendor/thecodingmachine/safe/generated/Exceptions/FpmException.php
new file mode 100644
index 000000000..0017b4c2c
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/FpmException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class FpmException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/FtpException.php b/vendor/thecodingmachine/safe/generated/Exceptions/FtpException.php
new file mode 100644
index 000000000..0e2b7dded
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/FtpException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class FtpException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/FunchandException.php b/vendor/thecodingmachine/safe/generated/Exceptions/FunchandException.php
new file mode 100644
index 000000000..1ee4a2113
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/FunchandException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class FunchandException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/GmpException.php b/vendor/thecodingmachine/safe/generated/Exceptions/GmpException.php
new file mode 100644
index 000000000..a13c11a6e
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/GmpException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class GmpException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/GnupgException.php b/vendor/thecodingmachine/safe/generated/Exceptions/GnupgException.php
new file mode 100644
index 000000000..cf3a1e74a
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/GnupgException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class GnupgException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/HashException.php b/vendor/thecodingmachine/safe/generated/Exceptions/HashException.php
new file mode 100644
index 000000000..1dc09763d
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/HashException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class HashException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/IbaseException.php b/vendor/thecodingmachine/safe/generated/Exceptions/IbaseException.php
new file mode 100644
index 000000000..0346ec3c2
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/IbaseException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class IbaseException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/IbmDb2Exception.php b/vendor/thecodingmachine/safe/generated/Exceptions/IbmDb2Exception.php
new file mode 100644
index 000000000..4843f8521
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/IbmDb2Exception.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class IbmDb2Exception extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/IconvException.php b/vendor/thecodingmachine/safe/generated/Exceptions/IconvException.php
new file mode 100644
index 000000000..0dd163709
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/IconvException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class IconvException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/ImageException.php b/vendor/thecodingmachine/safe/generated/Exceptions/ImageException.php
new file mode 100644
index 000000000..c49880346
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/ImageException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class ImageException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/ImapException.php b/vendor/thecodingmachine/safe/generated/Exceptions/ImapException.php
new file mode 100644
index 000000000..6b6bbc7fe
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/ImapException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class ImapException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/InfoException.php b/vendor/thecodingmachine/safe/generated/Exceptions/InfoException.php
new file mode 100644
index 000000000..5221e1fd8
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/InfoException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class InfoException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/IngresiiException.php b/vendor/thecodingmachine/safe/generated/Exceptions/IngresiiException.php
new file mode 100644
index 000000000..ca40822e9
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/IngresiiException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class IngresiiException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/InotifyException.php b/vendor/thecodingmachine/safe/generated/Exceptions/InotifyException.php
new file mode 100644
index 000000000..64048dca9
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/InotifyException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class InotifyException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/LdapException.php b/vendor/thecodingmachine/safe/generated/Exceptions/LdapException.php
new file mode 100644
index 000000000..5c142cb08
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/LdapException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class LdapException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/LibxmlException.php b/vendor/thecodingmachine/safe/generated/Exceptions/LibxmlException.php
new file mode 100644
index 000000000..b2772da0a
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/LibxmlException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class LibxmlException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/LzfException.php b/vendor/thecodingmachine/safe/generated/Exceptions/LzfException.php
new file mode 100644
index 000000000..82352faa7
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/LzfException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class LzfException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/MailparseException.php b/vendor/thecodingmachine/safe/generated/Exceptions/MailparseException.php
new file mode 100644
index 000000000..1f3d73708
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/MailparseException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class MailparseException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/MbstringException.php b/vendor/thecodingmachine/safe/generated/Exceptions/MbstringException.php
new file mode 100644
index 000000000..2f7913a3e
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/MbstringException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class MbstringException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/MiscException.php b/vendor/thecodingmachine/safe/generated/Exceptions/MiscException.php
new file mode 100644
index 000000000..2fd1475dc
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/MiscException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class MiscException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/MsqlException.php b/vendor/thecodingmachine/safe/generated/Exceptions/MsqlException.php
new file mode 100644
index 000000000..c67314ea8
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/MsqlException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class MsqlException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/MysqlException.php b/vendor/thecodingmachine/safe/generated/Exceptions/MysqlException.php
new file mode 100644
index 000000000..bd6904383
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/MysqlException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class MysqlException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/MysqliException.php b/vendor/thecodingmachine/safe/generated/Exceptions/MysqliException.php
new file mode 100644
index 000000000..4cadf6ca1
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/MysqliException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class MysqliException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/MysqlndMsException.php b/vendor/thecodingmachine/safe/generated/Exceptions/MysqlndMsException.php
new file mode 100644
index 000000000..5e9b55944
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/MysqlndMsException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class MysqlndMsException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/MysqlndQcException.php b/vendor/thecodingmachine/safe/generated/Exceptions/MysqlndQcException.php
new file mode 100644
index 000000000..4db9f4911
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/MysqlndQcException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class MysqlndQcException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/NetworkException.php b/vendor/thecodingmachine/safe/generated/Exceptions/NetworkException.php
new file mode 100644
index 000000000..e740ca19c
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/NetworkException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class NetworkException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/Oci8Exception.php b/vendor/thecodingmachine/safe/generated/Exceptions/Oci8Exception.php
new file mode 100644
index 000000000..b1d93b21a
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/Oci8Exception.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class Oci8Exception extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/OpcacheException.php b/vendor/thecodingmachine/safe/generated/Exceptions/OpcacheException.php
new file mode 100644
index 000000000..03309e77d
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/OpcacheException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class OpcacheException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/OutcontrolException.php b/vendor/thecodingmachine/safe/generated/Exceptions/OutcontrolException.php
new file mode 100644
index 000000000..ffc91f7bc
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/OutcontrolException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class OutcontrolException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/PasswordException.php b/vendor/thecodingmachine/safe/generated/Exceptions/PasswordException.php
new file mode 100644
index 000000000..f0edba123
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/PasswordException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class PasswordException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/PcntlException.php b/vendor/thecodingmachine/safe/generated/Exceptions/PcntlException.php
new file mode 100644
index 000000000..00d51f131
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/PcntlException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class PcntlException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/PdfException.php b/vendor/thecodingmachine/safe/generated/Exceptions/PdfException.php
new file mode 100644
index 000000000..bcf36b3ce
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/PdfException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class PdfException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/PgsqlException.php b/vendor/thecodingmachine/safe/generated/Exceptions/PgsqlException.php
new file mode 100644
index 000000000..5d264c2f0
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/PgsqlException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class PgsqlException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/PosixException.php b/vendor/thecodingmachine/safe/generated/Exceptions/PosixException.php
new file mode 100644
index 000000000..3eec244c6
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/PosixException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class PosixException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/PsException.php b/vendor/thecodingmachine/safe/generated/Exceptions/PsException.php
new file mode 100644
index 000000000..7571ebf57
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/PsException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class PsException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/PspellException.php b/vendor/thecodingmachine/safe/generated/Exceptions/PspellException.php
new file mode 100644
index 000000000..7645cc910
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/PspellException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class PspellException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/ReadlineException.php b/vendor/thecodingmachine/safe/generated/Exceptions/ReadlineException.php
new file mode 100644
index 000000000..b6bb37082
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/ReadlineException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class ReadlineException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/RpminfoException.php b/vendor/thecodingmachine/safe/generated/Exceptions/RpminfoException.php
new file mode 100644
index 000000000..7596451d3
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/RpminfoException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class RpminfoException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/RrdException.php b/vendor/thecodingmachine/safe/generated/Exceptions/RrdException.php
new file mode 100644
index 000000000..45793e804
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/RrdException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class RrdException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/SemException.php b/vendor/thecodingmachine/safe/generated/Exceptions/SemException.php
new file mode 100644
index 000000000..dd97ea5fa
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/SemException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class SemException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/SessionException.php b/vendor/thecodingmachine/safe/generated/Exceptions/SessionException.php
new file mode 100644
index 000000000..9c1be7975
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/SessionException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class SessionException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/ShmopException.php b/vendor/thecodingmachine/safe/generated/Exceptions/ShmopException.php
new file mode 100644
index 000000000..0673848a7
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/ShmopException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class ShmopException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/SimplexmlException.php b/vendor/thecodingmachine/safe/generated/Exceptions/SimplexmlException.php
new file mode 100644
index 000000000..67804e133
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/SimplexmlException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class SimplexmlException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/SocketsException.php b/vendor/thecodingmachine/safe/generated/Exceptions/SocketsException.php
new file mode 100644
index 000000000..172f5d78f
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/SocketsException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class SocketsException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/SodiumException.php b/vendor/thecodingmachine/safe/generated/Exceptions/SodiumException.php
new file mode 100644
index 000000000..f33ec049e
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/SodiumException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class SodiumException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/SolrException.php b/vendor/thecodingmachine/safe/generated/Exceptions/SolrException.php
new file mode 100644
index 000000000..2431870f7
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/SolrException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class SolrException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/SplException.php b/vendor/thecodingmachine/safe/generated/Exceptions/SplException.php
new file mode 100644
index 000000000..cae8dbc25
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/SplException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class SplException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/SqlsrvException.php b/vendor/thecodingmachine/safe/generated/Exceptions/SqlsrvException.php
new file mode 100644
index 000000000..6015cd263
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/SqlsrvException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class SqlsrvException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/SsdeepException.php b/vendor/thecodingmachine/safe/generated/Exceptions/SsdeepException.php
new file mode 100644
index 000000000..209017945
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/SsdeepException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class SsdeepException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/Ssh2Exception.php b/vendor/thecodingmachine/safe/generated/Exceptions/Ssh2Exception.php
new file mode 100644
index 000000000..72ca90fd7
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/Ssh2Exception.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class Ssh2Exception extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/StreamException.php b/vendor/thecodingmachine/safe/generated/Exceptions/StreamException.php
new file mode 100644
index 000000000..24624749f
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/StreamException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class StreamException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/StringsException.php b/vendor/thecodingmachine/safe/generated/Exceptions/StringsException.php
new file mode 100644
index 000000000..9e7b356da
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/StringsException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class StringsException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/SwooleException.php b/vendor/thecodingmachine/safe/generated/Exceptions/SwooleException.php
new file mode 100644
index 000000000..088c0de87
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/SwooleException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class SwooleException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/UodbcException.php b/vendor/thecodingmachine/safe/generated/Exceptions/UodbcException.php
new file mode 100644
index 000000000..92f94a52f
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/UodbcException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class UodbcException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/UopzException.php b/vendor/thecodingmachine/safe/generated/Exceptions/UopzException.php
new file mode 100644
index 000000000..16e1ab5d7
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/UopzException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class UopzException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/UrlException.php b/vendor/thecodingmachine/safe/generated/Exceptions/UrlException.php
new file mode 100644
index 000000000..770125017
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/UrlException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class UrlException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/VarException.php b/vendor/thecodingmachine/safe/generated/Exceptions/VarException.php
new file mode 100644
index 000000000..b2427c9fc
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/VarException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class VarException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/XdiffException.php b/vendor/thecodingmachine/safe/generated/Exceptions/XdiffException.php
new file mode 100644
index 000000000..c6adcd574
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/XdiffException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class XdiffException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/XmlException.php b/vendor/thecodingmachine/safe/generated/Exceptions/XmlException.php
new file mode 100644
index 000000000..ebca08f36
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/XmlException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class XmlException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/XmlrpcException.php b/vendor/thecodingmachine/safe/generated/Exceptions/XmlrpcException.php
new file mode 100644
index 000000000..70e12d67a
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/XmlrpcException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class XmlrpcException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/YamlException.php b/vendor/thecodingmachine/safe/generated/Exceptions/YamlException.php
new file mode 100644
index 000000000..f1c2e60a3
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/YamlException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class YamlException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/YazException.php b/vendor/thecodingmachine/safe/generated/Exceptions/YazException.php
new file mode 100644
index 000000000..22a174f5c
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/YazException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class YazException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/ZipException.php b/vendor/thecodingmachine/safe/generated/Exceptions/ZipException.php
new file mode 100644
index 000000000..fb6ba54f5
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/ZipException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class ZipException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/Exceptions/ZlibException.php b/vendor/thecodingmachine/safe/generated/Exceptions/ZlibException.php
new file mode 100644
index 000000000..35f81b019
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/Exceptions/ZlibException.php
@@ -0,0 +1,11 @@
+<?php
+namespace Safe\Exceptions;
+
+class ZlibException extends \ErrorException implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $error = error_get_last();
+ return new self($error['message'] ?? 'An error occured', 0, $error['type'] ?? 1);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/apache.php b/vendor/thecodingmachine/safe/generated/apache.php
new file mode 100644
index 000000000..e71c32d7b
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/apache.php
@@ -0,0 +1,177 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\ApacheException;
+
+/**
+ * Fetch the Apache version.
+ *
+ * @return string Returns the Apache version on success.
+ * @throws ApacheException
+ *
+ */
+function apache_get_version(): string
+{
+ error_clear_last();
+ $result = \apache_get_version();
+ if ($result === false) {
+ throw ApacheException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Retrieve an Apache environment variable specified by
+ * variable.
+ *
+ * This function requires Apache 2 otherwise it's undefined.
+ *
+ * @param string $variable The Apache environment variable
+ * @param bool $walk_to_top Whether to get the top-level variable available to all Apache layers.
+ * @return string The value of the Apache environment variable on success
+ * @throws ApacheException
+ *
+ */
+function apache_getenv(string $variable, bool $walk_to_top = false): string
+{
+ error_clear_last();
+ $result = \apache_getenv($variable, $walk_to_top);
+ if ($result === false) {
+ throw ApacheException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Fetches all HTTP request headers from the current request. Works in the
+ * Apache, FastCGI, CLI, FPM and NSAPI server module
+ * in Netscape/iPlanet/SunONE webservers.
+ *
+ * @return array An associative array of all the HTTP headers in the current request.
+ * @throws ApacheException
+ *
+ */
+function apache_request_headers(): array
+{
+ error_clear_last();
+ $result = \apache_request_headers();
+ if ($result === false) {
+ throw ApacheException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * apache_reset_timeout resets the Apache write timer,
+ * which defaults to 300 seconds. With set_time_limit(0);
+ * ignore_user_abort(true) and periodic
+ * apache_reset_timeout calls, Apache can theoretically
+ * run forever.
+ *
+ * This function requires Apache 1.
+ *
+ * @throws ApacheException
+ *
+ */
+function apache_reset_timeout(): void
+{
+ error_clear_last();
+ $result = \apache_reset_timeout();
+ if ($result === false) {
+ throw ApacheException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Fetch all HTTP response headers. Works in the
+ * Apache, FastCGI, CLI, FPM and NSAPI server module
+ * in Netscape/iPlanet/SunONE webservers.
+ *
+ * @return array An array of all Apache response headers on success.
+ * @throws ApacheException
+ *
+ */
+function apache_response_headers(): array
+{
+ error_clear_last();
+ $result = \apache_response_headers();
+ if ($result === false) {
+ throw ApacheException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * apache_setenv sets the value of the Apache
+ * environment variable specified by
+ * variable.
+ *
+ * @param string $variable The environment variable that's being set.
+ * @param string $value The new variable value.
+ * @param bool $walk_to_top Whether to set the top-level variable available to all Apache layers.
+ * @throws ApacheException
+ *
+ */
+function apache_setenv(string $variable, string $value, bool $walk_to_top = false): void
+{
+ error_clear_last();
+ $result = \apache_setenv($variable, $value, $walk_to_top);
+ if ($result === false) {
+ throw ApacheException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Fetches all HTTP headers from the current request.
+ *
+ * This function is an alias for apache_request_headers.
+ * Please read the apache_request_headers
+ * documentation for more information on how this function works.
+ *
+ * @return array An associative array of all the HTTP headers in the current request.
+ * @throws ApacheException
+ *
+ */
+function getallheaders(): array
+{
+ error_clear_last();
+ $result = \getallheaders();
+ if ($result === false) {
+ throw ApacheException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * virtual is an Apache-specific function which
+ * is similar to &lt;!--#include virtual...--&gt; in
+ * mod_include.
+ * It performs an Apache sub-request. It is useful for including
+ * CGI scripts or .shtml files, or anything else that you would
+ * parse through Apache. Note that for a CGI script, the script
+ * must generate valid CGI headers. At the minimum that means it
+ * must generate a Content-Type header.
+ *
+ * To run the sub-request, all buffers are terminated and flushed to the
+ * browser, pending headers are sent too.
+ *
+ * @param string $filename The file that the virtual command will be performed on.
+ * @throws ApacheException
+ *
+ */
+function virtual(string $filename): void
+{
+ error_clear_last();
+ $result = \virtual($filename);
+ if ($result === false) {
+ throw ApacheException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/apcu.php b/vendor/thecodingmachine/safe/generated/apcu.php
new file mode 100644
index 000000000..733b24360
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/apcu.php
@@ -0,0 +1,112 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\ApcuException;
+
+/**
+ * Retrieves cached information and meta-data from APC's data store.
+ *
+ * @param bool $limited If limited is TRUE, the
+ * return value will exclude the individual list of cache entries. This
+ * is useful when trying to optimize calls for statistics gathering.
+ * @return array Array of cached data (and meta-data)
+ * @throws ApcuException
+ *
+ */
+function apcu_cache_info(bool $limited = false): array
+{
+ error_clear_last();
+ $result = \apcu_cache_info($limited);
+ if ($result === false) {
+ throw ApcuException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * apcu_cas updates an already existing integer value if the
+ * old parameter matches the currently stored value
+ * with the value of the new parameter.
+ *
+ * @param string $key The key of the value being updated.
+ * @param int $old The old value (the value currently stored).
+ * @param int $new The new value to update to.
+ * @throws ApcuException
+ *
+ */
+function apcu_cas(string $key, int $old, int $new): void
+{
+ error_clear_last();
+ $result = \apcu_cas($key, $old, $new);
+ if ($result === false) {
+ throw ApcuException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Decreases a stored integer value.
+ *
+ * @param string $key The key of the value being decreased.
+ * @param int $step The step, or value to decrease.
+ * @param bool|null $success Optionally pass the success or fail boolean value to
+ * this referenced variable.
+ * @param int $ttl TTL to use if the operation inserts a new value (rather than decrementing an existing one).
+ * @return int Returns the current value of key's value on success
+ * @throws ApcuException
+ *
+ */
+function apcu_dec(string $key, int $step = 1, ?bool &$success = null, int $ttl = 0): int
+{
+ error_clear_last();
+ $result = \apcu_dec($key, $step, $success, $ttl);
+ if ($result === false) {
+ throw ApcuException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Increases a stored number.
+ *
+ * @param string $key The key of the value being increased.
+ * @param int $step The step, or value to increase.
+ * @param bool|null $success Optionally pass the success or fail boolean value to
+ * this referenced variable.
+ * @param int $ttl TTL to use if the operation inserts a new value (rather than incrementing an existing one).
+ * @return int Returns the current value of key's value on success
+ * @throws ApcuException
+ *
+ */
+function apcu_inc(string $key, int $step = 1, ?bool &$success = null, int $ttl = 0): int
+{
+ error_clear_last();
+ $result = \apcu_inc($key, $step, $success, $ttl);
+ if ($result === false) {
+ throw ApcuException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Retrieves APCu Shared Memory Allocation information.
+ *
+ * @param bool $limited When set to FALSE (default) apcu_sma_info will
+ * return a detailed information about each segment.
+ * @return array Array of Shared Memory Allocation data; FALSE on failure.
+ * @throws ApcuException
+ *
+ */
+function apcu_sma_info(bool $limited = false): array
+{
+ error_clear_last();
+ $result = \apcu_sma_info($limited);
+ if ($result === false) {
+ throw ApcuException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/array.php b/vendor/thecodingmachine/safe/generated/array.php
new file mode 100644
index 000000000..80c90ff81
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/array.php
@@ -0,0 +1,464 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\ArrayException;
+
+/**
+ * Creates an array by using the values from the
+ * keys array as keys and the values from the
+ * values array as the corresponding values.
+ *
+ * @param array $keys Array of keys to be used. Illegal values for key will be
+ * converted to string.
+ * @param array $values Array of values to be used
+ * @return array Returns the combined array, FALSE if the number of elements
+ * for each array isn't equal.
+ * @throws ArrayException
+ *
+ */
+function array_combine(array $keys, array $values): array
+{
+ error_clear_last();
+ $result = \array_combine($keys, $values);
+ if ($result === false) {
+ throw ArrayException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * array_flip returns an array in flip
+ * order, i.e. keys from array become values and values
+ * from array become keys.
+ *
+ * Note that the values of array need to be valid
+ * keys, i.e. they need to be either integer or
+ * string. A warning will be emitted if a value has the wrong
+ * type, and the key/value pair in question will not be included
+ * in the result.
+ *
+ * If a value has several occurrences, the latest key will be
+ * used as its value, and all others will be lost.
+ *
+ * @param array $array An array of key/value pairs to be flipped.
+ * @return array Returns the flipped array on success.
+ * @throws ArrayException
+ *
+ */
+function array_flip(array $array): array
+{
+ error_clear_last();
+ $result = \array_flip($array);
+ if ($result === null) {
+ throw ArrayException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * array_replace_recursive replaces the values of
+ * array1 with the same values from all the following
+ * arrays. If a key from the first array exists in the second array, its value
+ * will be replaced by the value from the second array. If the key exists in the
+ * second array, and not the first, it will be created in the first array.
+ * If a key only exists in the first array, it will be left as is.
+ * If several arrays are passed for replacement, they will be processed
+ * in order, the later array overwriting the previous values.
+ *
+ * array_replace_recursive is recursive : it will recurse into
+ * arrays and apply the same process to the inner value.
+ *
+ * When the value in the first array is scalar, it will be replaced
+ * by the value in the second array, may it be scalar or array.
+ * When the value in the first array and the second array
+ * are both arrays, array_replace_recursive will replace
+ * their respective value recursively.
+ *
+ * @param array $array1 The array in which elements are replaced.
+ * @param array $params Optional. Arrays from which elements will be extracted.
+ * @return array Returns an array.
+ * @throws ArrayException
+ *
+ */
+function array_replace_recursive(array $array1, array ...$params): array
+{
+ error_clear_last();
+ if ($params !== []) {
+ $result = \array_replace_recursive($array1, ...$params);
+ } else {
+ $result = \array_replace_recursive($array1);
+ }
+ if ($result === null) {
+ throw ArrayException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * array_replace replaces the values of
+ * array1 with values having the same keys in each of the following
+ * arrays. If a key from the first array exists in the second array, its value
+ * will be replaced by the value from the second array. If the key exists in the
+ * second array, and not the first, it will be created in the first array.
+ * If a key only exists in the first array, it will be left as is.
+ * If several arrays are passed for replacement, they will be processed
+ * in order, the later arrays overwriting the previous values.
+ *
+ * array_replace is not recursive : it will replace
+ * values in the first array by whatever type is in the second array.
+ *
+ * @param array $array1 The array in which elements are replaced.
+ * @param array $params Arrays from which elements will be extracted.
+ * Values from later arrays overwrite the previous values.
+ * @return array Returns an array.
+ * @throws ArrayException
+ *
+ */
+function array_replace(array $array1, array ...$params): array
+{
+ error_clear_last();
+ if ($params !== []) {
+ $result = \array_replace($array1, ...$params);
+ } else {
+ $result = \array_replace($array1);
+ }
+ if ($result === null) {
+ throw ArrayException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Applies the user-defined callback function to each
+ * element of the array. This function will recurse
+ * into deeper arrays.
+ *
+ * @param array $array The input array.
+ * @param callable $callback Typically, callback takes on two parameters.
+ * The array parameter's value being the first, and
+ * the key/index second.
+ *
+ * If callback needs to be working with the
+ * actual values of the array, specify the first parameter of
+ * callback as a
+ * reference. Then,
+ * any changes made to those elements will be made in the
+ * original array itself.
+ * @param mixed $userdata If the optional userdata parameter is supplied,
+ * it will be passed as the third parameter to the
+ * callback.
+ * @throws ArrayException
+ *
+ */
+function array_walk_recursive(array &$array, callable $callback, $userdata = null): void
+{
+ error_clear_last();
+ $result = \array_walk_recursive($array, $callback, $userdata);
+ if ($result === false) {
+ throw ArrayException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function sorts an array such that array indices maintain their
+ * correlation with the array elements they are associated with.
+ *
+ * This is used mainly when sorting associative arrays where the actual
+ * element order is significant.
+ *
+ * @param array $array The input array.
+ * @param int $sort_flags You may modify the behavior of the sort using the optional parameter
+ * sort_flags, for details see
+ * sort.
+ * @throws ArrayException
+ *
+ */
+function arsort(array &$array, int $sort_flags = SORT_REGULAR): void
+{
+ error_clear_last();
+ $result = \arsort($array, $sort_flags);
+ if ($result === false) {
+ throw ArrayException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function sorts an array such that array indices maintain
+ * their correlation with the array elements they are associated
+ * with. This is used mainly when sorting associative arrays where
+ * the actual element order is significant.
+ *
+ * @param array $array The input array.
+ * @param int $sort_flags You may modify the behavior of the sort using the optional
+ * parameter sort_flags, for details
+ * see sort.
+ * @throws ArrayException
+ *
+ */
+function asort(array &$array, int $sort_flags = SORT_REGULAR): void
+{
+ error_clear_last();
+ $result = \asort($array, $sort_flags);
+ if ($result === false) {
+ throw ArrayException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sorts an array by key in reverse order, maintaining key to data
+ * correlations. This is useful mainly for associative arrays.
+ *
+ * @param array $array The input array.
+ * @param int $sort_flags You may modify the behavior of the sort using the optional parameter
+ * sort_flags, for details see
+ * sort.
+ * @throws ArrayException
+ *
+ */
+function krsort(array &$array, int $sort_flags = SORT_REGULAR): void
+{
+ error_clear_last();
+ $result = \krsort($array, $sort_flags);
+ if ($result === false) {
+ throw ArrayException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sorts an array by key, maintaining key to data correlations. This is
+ * useful mainly for associative arrays.
+ *
+ * @param array $array The input array.
+ * @param int $sort_flags You may modify the behavior of the sort using the optional
+ * parameter sort_flags, for details
+ * see sort.
+ * @throws ArrayException
+ *
+ */
+function ksort(array &$array, int $sort_flags = SORT_REGULAR): void
+{
+ error_clear_last();
+ $result = \ksort($array, $sort_flags);
+ if ($result === false) {
+ throw ArrayException::createFromPhpError();
+ }
+}
+
+
+/**
+ * natcasesort is a case insensitive version of
+ * natsort.
+ *
+ * This function implements a sort algorithm that orders
+ * alphanumeric strings in the way a human being would while maintaining
+ * key/value associations. This is described as a "natural ordering".
+ *
+ * @param array $array The input array.
+ * @throws ArrayException
+ *
+ */
+function natcasesort(array &$array): void
+{
+ error_clear_last();
+ $result = \natcasesort($array);
+ if ($result === false) {
+ throw ArrayException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function implements a sort algorithm that orders alphanumeric strings
+ * in the way a human being would while maintaining key/value associations.
+ * This is described as a "natural ordering". An example of the difference
+ * between this algorithm and the regular computer string sorting algorithms
+ * (used in sort) can be seen in the example below.
+ *
+ * @param array $array The input array.
+ * @throws ArrayException
+ *
+ */
+function natsort(array &$array): void
+{
+ error_clear_last();
+ $result = \natsort($array);
+ if ($result === false) {
+ throw ArrayException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function sorts an array in reverse order (highest to lowest).
+ *
+ * @param array $array The input array.
+ * @param int $sort_flags You may modify the behavior of the sort using the optional
+ * parameter sort_flags, for details see
+ * sort.
+ * @throws ArrayException
+ *
+ */
+function rsort(array &$array, int $sort_flags = SORT_REGULAR): void
+{
+ error_clear_last();
+ $result = \rsort($array, $sort_flags);
+ if ($result === false) {
+ throw ArrayException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function shuffles (randomizes the order of the elements in) an array.
+ * It uses a pseudo random number generator that is not suitable for
+ * cryptographic purposes.
+ *
+ * @param array $array The array.
+ * @throws ArrayException
+ *
+ */
+function shuffle(array &$array): void
+{
+ error_clear_last();
+ $result = \shuffle($array);
+ if ($result === false) {
+ throw ArrayException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function sorts an array. Elements will be arranged from
+ * lowest to highest when this function has completed.
+ *
+ * @param array $array The input array.
+ * @param int $sort_flags The optional second parameter sort_flags
+ * may be used to modify the sorting behavior using these values:
+ *
+ * Sorting type flags:
+ *
+ *
+ * SORT_REGULAR - compare items normally;
+ * the details are described in the comparison operators section
+ *
+ *
+ * SORT_NUMERIC - compare items numerically
+ *
+ *
+ * SORT_STRING - compare items as strings
+ *
+ *
+ *
+ * SORT_LOCALE_STRING - compare items as
+ * strings, based on the current locale. It uses the locale,
+ * which can be changed using setlocale
+ *
+ *
+ *
+ *
+ * SORT_NATURAL - compare items as strings
+ * using "natural ordering" like natsort
+ *
+ *
+ *
+ *
+ * SORT_FLAG_CASE - can be combined
+ * (bitwise OR) with
+ * SORT_STRING or
+ * SORT_NATURAL to sort strings case-insensitively
+ *
+ *
+ *
+ * @throws ArrayException
+ *
+ */
+function sort(array &$array, int $sort_flags = SORT_REGULAR): void
+{
+ error_clear_last();
+ $result = \sort($array, $sort_flags);
+ if ($result === false) {
+ throw ArrayException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function sorts an array such that array indices maintain their
+ * correlation with the array elements they are associated with, using a
+ * user-defined comparison function.
+ *
+ * This is used mainly when sorting associative arrays where the actual
+ * element order is significant.
+ *
+ * @param array $array The input array.
+ * @param callable $value_compare_func See usort and uksort for
+ * examples of user-defined comparison functions.
+ * @throws ArrayException
+ *
+ */
+function uasort(array &$array, callable $value_compare_func): void
+{
+ error_clear_last();
+ $result = \uasort($array, $value_compare_func);
+ if ($result === false) {
+ throw ArrayException::createFromPhpError();
+ }
+}
+
+
+/**
+ * uksort will sort the keys of an array using a
+ * user-supplied comparison function. If the array you wish to sort
+ * needs to be sorted by some non-trivial criteria, you should use
+ * this function.
+ *
+ * @param array $array The input array.
+ * @param callable $key_compare_func The comparison function must return an integer less than, equal to, or greater than zero if the first argument is considered to be respectively less than, equal to, or greater than the second.
+ * Note that before PHP 7.0.0 this integer had to be in the range from -2147483648 to 2147483647.
+ * @throws ArrayException
+ *
+ */
+function uksort(array &$array, callable $key_compare_func): void
+{
+ error_clear_last();
+ $result = \uksort($array, $key_compare_func);
+ if ($result === false) {
+ throw ArrayException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function will sort an array by its values using a user-supplied
+ * comparison function. If the array you wish to sort needs to be sorted by
+ * some non-trivial criteria, you should use this function.
+ *
+ * @param array $array The input array.
+ * @param callable $value_compare_func The comparison function must return an integer less than, equal to, or greater than zero if the first argument is considered to be respectively less than, equal to, or greater than the second.
+ * Note that before PHP 7.0.0 this integer had to be in the range from -2147483648 to 2147483647.
+ *
+ * Returning non-integer values from the comparison
+ * function, such as float, will result in an internal cast to
+ * integer of the callback's return value. So values such as
+ * 0.99 and 0.1 will both be cast to an integer value of 0, which will
+ * compare such values as equal.
+ * @throws ArrayException
+ *
+ */
+function usort(array &$array, callable $value_compare_func): void
+{
+ error_clear_last();
+ $result = \usort($array, $value_compare_func);
+ if ($result === false) {
+ throw ArrayException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/bzip2.php b/vendor/thecodingmachine/safe/generated/bzip2.php
new file mode 100644
index 000000000..77302aa00
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/bzip2.php
@@ -0,0 +1,96 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\Bzip2Exception;
+
+/**
+ * Closes the given bzip2 file pointer.
+ *
+ * @param resource $bz The file pointer. It must be valid and must point to a file
+ * successfully opened by bzopen.
+ * @throws Bzip2Exception
+ *
+ */
+function bzclose($bz): void
+{
+ error_clear_last();
+ $result = \bzclose($bz);
+ if ($result === false) {
+ throw Bzip2Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Forces a write of all buffered bzip2 data for the file pointer
+ * bz.
+ *
+ * @param resource $bz The file pointer. It must be valid and must point to a file
+ * successfully opened by bzopen.
+ * @throws Bzip2Exception
+ *
+ */
+function bzflush($bz): void
+{
+ error_clear_last();
+ $result = \bzflush($bz);
+ if ($result === false) {
+ throw Bzip2Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * bzread reads from the given bzip2 file pointer.
+ *
+ * Reading stops when length (uncompressed) bytes have
+ * been read or EOF is reached, whichever comes first.
+ *
+ * @param resource $bz The file pointer. It must be valid and must point to a file
+ * successfully opened by bzopen.
+ * @param int $length If not specified, bzread will read 1024
+ * (uncompressed) bytes at a time. A maximum of 8192
+ * uncompressed bytes will be read at a time.
+ * @return string Returns the uncompressed data.
+ * @throws Bzip2Exception
+ *
+ */
+function bzread($bz, int $length = 1024): string
+{
+ error_clear_last();
+ $result = \bzread($bz, $length);
+ if ($result === false) {
+ throw Bzip2Exception::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * bzwrite writes a string into the given bzip2 file
+ * stream.
+ *
+ * @param resource $bz The file pointer. It must be valid and must point to a file
+ * successfully opened by bzopen.
+ * @param string $data The written data.
+ * @param int $length If supplied, writing will stop after length
+ * (uncompressed) bytes have been written or the end of
+ * data is reached, whichever comes first.
+ * @return int Returns the number of bytes written.
+ * @throws Bzip2Exception
+ *
+ */
+function bzwrite($bz, string $data, int $length = null): int
+{
+ error_clear_last();
+ if ($length !== null) {
+ $result = \bzwrite($bz, $data, $length);
+ } else {
+ $result = \bzwrite($bz, $data);
+ }
+ if ($result === false) {
+ throw Bzip2Exception::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/calendar.php b/vendor/thecodingmachine/safe/generated/calendar.php
new file mode 100644
index 000000000..aae699923
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/calendar.php
@@ -0,0 +1,27 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\CalendarException;
+
+/**
+ * This function will return a Unix timestamp corresponding to the
+ * Julian Day given in jday or FALSE if
+ * jday is outside of the allowed range. The time returned is
+ * UTC.
+ *
+ * @param int $jday A julian day number between 2440588 and 106751993607888
+ * on 64bit systems, or between 2440588 and 2465443 on 32bit systems.
+ * @return int The unix timestamp for the start (midnight, not noon) of the given Julian day.
+ * @throws CalendarException
+ *
+ */
+function jdtounix(int $jday): int
+{
+ error_clear_last();
+ $result = \jdtounix($jday);
+ if ($result === false) {
+ throw CalendarException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/classobj.php b/vendor/thecodingmachine/safe/generated/classobj.php
new file mode 100644
index 000000000..98147ac26
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/classobj.php
@@ -0,0 +1,25 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\ClassobjException;
+
+/**
+ * Creates an alias named alias
+ * based on the user defined class original.
+ * The aliased class is exactly the same as the original class.
+ *
+ * @param string $original The original class.
+ * @param string $alias The alias name for the class.
+ * @param bool $autoload Whether to autoload if the original class is not found.
+ * @throws ClassobjException
+ *
+ */
+function class_alias(string $original, string $alias, bool $autoload = true): void
+{
+ error_clear_last();
+ $result = \class_alias($original, $alias, $autoload);
+ if ($result === false) {
+ throw ClassobjException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/com.php b/vendor/thecodingmachine/safe/generated/com.php
new file mode 100644
index 000000000..53643f9d7
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/com.php
@@ -0,0 +1,127 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\ComException;
+
+/**
+ * Instructs COM to sink events generated by
+ * comobject into the PHP object
+ * sinkobject.
+ *
+ * Be careful how you use this feature; if you are doing something similar
+ * to the example below, then it doesn't really make sense to run it in a
+ * web server context.
+ *
+ * @param object $comobject
+ * @param object $sinkobject sinkobject should be an instance of a class with
+ * methods named after those of the desired dispinterface; you may use
+ * com_print_typeinfo to help generate a template class
+ * for this purpose.
+ * @param mixed $sinkinterface PHP will attempt to use the default dispinterface type specified by
+ * the typelibrary associated with comobject, but
+ * you may override this choice by setting
+ * sinkinterface to the name of the dispinterface
+ * that you want to use.
+ * @throws ComException
+ *
+ */
+function com_event_sink(object $comobject, object $sinkobject, $sinkinterface = null): void
+{
+ error_clear_last();
+ if ($sinkinterface !== null) {
+ $result = \com_event_sink($comobject, $sinkobject, $sinkinterface);
+ } else {
+ $result = \com_event_sink($comobject, $sinkobject);
+ }
+ if ($result === false) {
+ throw ComException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Loads a type-library and registers its constants in the engine, as though
+ * they were defined using define.
+ *
+ * Note that it is much more efficient to use the configuration setting to pre-load and
+ * register the constants, although not so flexible.
+ *
+ * If you have turned on , then
+ * PHP will attempt to automatically register the constants associated with a
+ * COM object when you instantiate it. This depends on the interfaces
+ * provided by the COM object itself, and may not always be possible.
+ *
+ * @param string $typelib_name typelib_name can be one of the following:
+ *
+ *
+ *
+ * The filename of a .tlb file or the executable module
+ * that contains the type library.
+ *
+ *
+ *
+ *
+ * The type library GUID, followed by its version number, for example
+ * {00000200-0000-0010-8000-00AA006D2EA4},2,0.
+ *
+ *
+ *
+ *
+ * The type library name, e.g. Microsoft OLE DB ActiveX Data
+ * Objects 1.0 Library.
+ *
+ *
+ *
+ * PHP will attempt to resolve the type library in this order, as the
+ * process gets more and more expensive as you progress down the list;
+ * searching for the type library by name is handled by physically
+ * enumerating the registry until we find a match.
+ *
+ * The filename of a .tlb file or the executable module
+ * that contains the type library.
+ *
+ * The type library GUID, followed by its version number, for example
+ * {00000200-0000-0010-8000-00AA006D2EA4},2,0.
+ *
+ * The type library name, e.g. Microsoft OLE DB ActiveX Data
+ * Objects 1.0 Library.
+ * @param bool $case_sensitive The case_sensitive behaves inversely to
+ * the parameter $case_insensitive in the define
+ * function.
+ * @throws ComException
+ *
+ */
+function com_load_typelib(string $typelib_name, bool $case_sensitive = true): void
+{
+ error_clear_last();
+ $result = \com_load_typelib($typelib_name, $case_sensitive);
+ if ($result === false) {
+ throw ComException::createFromPhpError();
+ }
+}
+
+
+/**
+ * The purpose of this function is to help generate a skeleton class for use
+ * as an event sink. You may also use it to generate a dump of any COM
+ * object, provided that it supports enough of the introspection interfaces,
+ * and that you know the name of the interface you want to display.
+ *
+ * @param object $comobject comobject should be either an instance of a COM
+ * object, or be the name of a typelibrary (which will be resolved according
+ * to the rules set out in com_load_typelib).
+ * @param string $dispinterface The name of an IDispatch descendant interface that you want to display.
+ * @param bool $wantsink If set to TRUE, the corresponding sink interface will be displayed
+ * instead.
+ * @throws ComException
+ *
+ */
+function com_print_typeinfo(object $comobject, string $dispinterface = null, bool $wantsink = false): void
+{
+ error_clear_last();
+ $result = \com_print_typeinfo($comobject, $dispinterface, $wantsink);
+ if ($result === false) {
+ throw ComException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/cubrid.php b/vendor/thecodingmachine/safe/generated/cubrid.php
new file mode 100644
index 000000000..f19f2d56e
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/cubrid.php
@@ -0,0 +1,395 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\CubridException;
+
+/**
+ * This function frees the memory occupied by the result data. It returns
+ * TRUE on success. Note that it can only frees the
+ * client fetch buffer now, and if you want free all memory, use function
+ * cubrid_close_request.
+ *
+ * @param resource $req_identifier This is the request identifier.
+ * @throws CubridException
+ *
+ */
+function cubrid_free_result($req_identifier): void
+{
+ error_clear_last();
+ $result = \cubrid_free_result($req_identifier);
+ if ($result === false) {
+ throw CubridException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function returns the current CUBRID connection charset and is similar
+ * to the CUBRID MySQL compatible function
+ * cubrid_client_encoding.
+ *
+ * @param resource $conn_identifier The CUBRID connection.
+ * @return string A string that represents the CUBRID connection charset; on success.
+ *
+ * FALSE on failure.
+ * @throws CubridException
+ *
+ */
+function cubrid_get_charset($conn_identifier): string
+{
+ error_clear_last();
+ $result = \cubrid_get_charset($conn_identifier);
+ if ($result === false) {
+ throw CubridException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * This function returns a string that represents the client library version.
+ *
+ * @return string A string that represents the client library version; on success.
+ *
+ * FALSE on failure.
+ * @throws CubridException
+ *
+ */
+function cubrid_get_client_info(): string
+{
+ error_clear_last();
+ $result = \cubrid_get_client_info();
+ if ($result === false) {
+ throw CubridException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * This function returns the CUBRID database parameters or it returns FALSE on
+ * failure. It returns an associative array with the values for the following
+ * parameters:
+ *
+ *
+ * PARAM_ISOLATION_LEVEL
+ * PARAM_LOCK_TIMEOUT
+ * PARAM_MAX_STRING_LENGTH
+ * PARAM_AUTO_COMMIT
+ *
+ *
+ *
+ * Database parameters
+ *
+ *
+ *
+ * Parameter
+ * Description
+ *
+ *
+ *
+ *
+ * PARAM_ISOLATION_LEVEL
+ * The transaction isolation level.
+ *
+ *
+ * LOCK_TIMEOUT
+ * CUBRID provides the lock timeout feature, which sets the waiting
+ * time (in seconds) for the lock until the transaction lock setting is
+ * allowed. The default value of the lock_timeout_in_secs parameter is
+ * -1, which means the application client will wait indefinitely until
+ * the transaction lock is allowed.
+ *
+ *
+ *
+ * PARAM_AUTO_COMMIT
+ * In CUBRID PHP, auto-commit mode is disabled by default for
+ * transaction management. It can be set by using
+ * cubrid_set_autocommit.
+ *
+ *
+ *
+ *
+ *
+ *
+ * The following table shows the isolation levels from 1 to 6. It consists of
+ * table schema (row) and isolation level:
+ *
+ * Levels of Isolation Supported by CUBRID
+ *
+ *
+ *
+ * Name
+ * Description
+ *
+ *
+ *
+ *
+ * SERIALIZABLE (6)
+ * In this isolation level, problems concerning concurrency (e.g.
+ * dirty read, non-repeatable read, phantom read, etc.) do not
+ * occur.
+ *
+ *
+ * REPEATABLE READ CLASS with REPEATABLE READ INSTANCES (5)
+ * Another transaction T2 cannot update the schema of table A while
+ * transaction T1 is viewing table A.
+ * Transaction T1 may experience phantom read for the record R that was
+ * inserted by another transaction T2 when it is repeatedly retrieving a
+ * specific record.
+ *
+ *
+ * REPEATABLE READ CLASS with READ COMMITTED INSTANCES (or CURSOR STABILITY) (4)
+ * Another transaction T2 cannot update the schema of table A while
+ * transaction T1 is viewing table A.
+ * Transaction T1 may experience R read (non-repeatable read) that was
+ * updated and committed by another transaction T2 when it is repeatedly
+ * retrieving the record R.
+ *
+ *
+ * REPEATABLE READ CLASS with READ UNCOMMITTED INSTANCES (3)
+ * Default isolation level. Another transaction T2 cannot update
+ * the schema of table A while transaction T1 is viewing table A.
+ * Transaction T1 may experience R' read (dirty read) for the record that
+ * was updated but not committed by another transaction T2.
+ *
+ *
+ * READ COMMITTED CLASS with READ COMMITTED INSTANCES (2)
+ * Transaction T1 may experience A' read (non-repeatable read) for
+ * the table that was updated and committed by another transaction T2
+ * while it is viewing table A repeatedly. Transaction T1 may experience
+ * R' read (non-repeatable read) for the record that was updated and
+ * committed by another transaction T2 while it is retrieving the record
+ * R repeatedly.
+ *
+ *
+ * READ COMMITTED CLASS with READ UNCOMMITTED INSTANCES (1)
+ * Transaction T1 may experience A' read (non-repeatable read) for
+ * the table that was updated and committed by another transaction T2
+ * while it is repeatedly viewing table A. Transaction T1 may experience
+ * R' read (dirty read) for the record that was updated but not committed
+ * by another transaction T2.
+ *
+ *
+ *
+ *
+ *
+ * @param resource $conn_identifier The CUBRID connection. If the connection identifier is not specified,
+ * the last link opened by cubrid_connect is assumed.
+ * @return array An associative array with CUBRID database parameters; on success.
+ *
+ * FALSE on failure.
+ * @throws CubridException
+ *
+ */
+function cubrid_get_db_parameter($conn_identifier): array
+{
+ error_clear_last();
+ $result = \cubrid_get_db_parameter($conn_identifier);
+ if ($result === false) {
+ throw CubridException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * This function returns a string that represents the CUBRID server version.
+ *
+ * @param resource $conn_identifier The CUBRID connection.
+ * @return string A string that represents the CUBRID server version; on success.
+ *
+ * FALSE on failure.
+ * @throws CubridException
+ *
+ */
+function cubrid_get_server_info($conn_identifier): string
+{
+ error_clear_last();
+ $result = \cubrid_get_server_info($conn_identifier);
+ if ($result === false) {
+ throw CubridException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * The cubrid_insert_id function retrieves the ID
+ * generated for the AUTO_INCREMENT column which is updated by the previous
+ * INSERT query. It returns 0 if the previous query does not generate new
+ * rows.
+ *
+ * @param resource $conn_identifier The connection identifier previously obtained by a call to
+ * cubrid_connect.
+ * @return string A string representing the ID generated for an AUTO_INCREMENT column by the
+ * previous query, on success.
+ *
+ * 0, if the previous query does not generate new rows.
+ *
+ * FALSE on failure.
+ * @throws CubridException
+ *
+ */
+function cubrid_insert_id($conn_identifier = null): string
+{
+ error_clear_last();
+ if ($conn_identifier !== null) {
+ $result = \cubrid_insert_id($conn_identifier);
+ } else {
+ $result = \cubrid_insert_id();
+ }
+ if ($result === false) {
+ throw CubridException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * The cubrid_lob2_new function is used to create a lob object (both BLOB and CLOB).
+ * This function should be used before you bind a lob object.
+ *
+ * @param resource $conn_identifier Connection identifier. If the connection identifier is not specified,
+ * the last connection opened by cubrid_connect or
+ * cubrid_connect_with_url is assumed.
+ * @param string $type It may be "BLOB" or "CLOB", it won't be case-sensitive. The default value is "BLOB".
+ * @return resource Lob identifier when it is successful.
+ *
+ * FALSE on failure.
+ * @throws CubridException
+ *
+ */
+function cubrid_lob2_new($conn_identifier = null, string $type = "BLOB")
+{
+ error_clear_last();
+ if ($type !== "BLOB") {
+ $result = \cubrid_lob2_new($conn_identifier, $type);
+ } elseif ($conn_identifier !== null) {
+ $result = \cubrid_lob2_new($conn_identifier);
+ } else {
+ $result = \cubrid_lob2_new();
+ }
+ if ($result === false) {
+ throw CubridException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * The cubrid_lob2_size function is used to get the size of a lob object.
+ *
+ * @param resource $lob_identifier Lob identifier as a result of cubrid_lob2_new or get from the result set.
+ * @return int It will return the size of the LOB object when it processes successfully.
+ *
+ * FALSE on failure.
+ * @throws CubridException
+ *
+ */
+function cubrid_lob2_size($lob_identifier): int
+{
+ error_clear_last();
+ $result = \cubrid_lob2_size($lob_identifier);
+ if ($result === false) {
+ throw CubridException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * The cubrid_lob2_size64 function is used to get the
+ * size of a lob object. If the size of a lob object is larger than an
+ * integer data can be stored, you can use this function and it will return
+ * the size as a string.
+ *
+ * @param resource $lob_identifier Lob identifier as a result of cubrid_lob2_new or get from the result set.
+ * @return string It will return the size of the LOB object as a string when it processes successfully.
+ *
+ * FALSE on failure.
+ * @throws CubridException
+ *
+ */
+function cubrid_lob2_size64($lob_identifier): string
+{
+ error_clear_last();
+ $result = \cubrid_lob2_size64($lob_identifier);
+ if ($result === false) {
+ throw CubridException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * The cubrid_lob2_tell function is used to tell the cursor position of the LOB object.
+ *
+ * @param resource $lob_identifier Lob identifier as a result of cubrid_lob2_new or get from the result set.
+ * @return int It will return the cursor position on the LOB object when it processes successfully.
+ *
+ * FALSE on failure.
+ * @throws CubridException
+ *
+ */
+function cubrid_lob2_tell($lob_identifier): int
+{
+ error_clear_last();
+ $result = \cubrid_lob2_tell($lob_identifier);
+ if ($result === false) {
+ throw CubridException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * The cubrid_lob2_tell64 function is used to tell the
+ * cursor position of the LOB object. If the size of a lob object is larger
+ * than an integer data can be stored, you can use this function and it will
+ * return the position information as a string.
+ *
+ * @param resource $lob_identifier Lob identifier as a result of cubrid_lob2_new or get from the result set.
+ * @return string It will return the cursor position on the LOB object as a string when it processes successfully.
+ *
+ * FALSE on failure.
+ * @throws CubridException
+ *
+ */
+function cubrid_lob2_tell64($lob_identifier): string
+{
+ error_clear_last();
+ $result = \cubrid_lob2_tell64($lob_identifier);
+ if ($result === false) {
+ throw CubridException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * The cubrid_set_db_parameter function is used to set
+ * the CUBRID database parameters. It can set the following CUBRID database
+ * parameters:
+ *
+ *
+ * PARAM_ISOLATION_LEVEL
+ * PARAM_LOCK_TIMEOUT
+ *
+ *
+ * @param resource $conn_identifier The CUBRID connection. If the connection identifier is not specified,
+ * the last link opened by cubrid_connect is assumed.
+ * @param int $param_type Database parameter type.
+ * @param int $param_value Isolation level value (1-6) or lock timeout (in seconds) value.
+ * @throws CubridException
+ *
+ */
+function cubrid_set_db_parameter($conn_identifier, int $param_type, int $param_value): void
+{
+ error_clear_last();
+ $result = \cubrid_set_db_parameter($conn_identifier, $param_type, $param_value);
+ if ($result === false) {
+ throw CubridException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/curl.php b/vendor/thecodingmachine/safe/generated/curl.php
new file mode 100644
index 000000000..53f925536
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/curl.php
@@ -0,0 +1,3156 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\CurlException;
+
+/**
+ * This function URL encodes the given string according to RFC 3986.
+ *
+ * @param resource $ch A cURL handle returned by
+ * curl_init.
+ * @param string $str The string to be encoded.
+ * @return string Returns escaped string.
+ * @throws CurlException
+ *
+ */
+function curl_escape($ch, string $str): string
+{
+ error_clear_last();
+ $result = \curl_escape($ch, $str);
+ if ($result === false) {
+ throw CurlException::createFromCurlResource($ch);
+ }
+ return $result;
+}
+
+
+/**
+ * Execute the given cURL session.
+ *
+ * This function should be called after initializing a cURL session and all
+ * the options for the session are set.
+ *
+ * @param resource $ch A cURL handle returned by
+ * curl_init.
+ * @return bool|string Returns TRUE on success. However, if the CURLOPT_RETURNTRANSFER
+ * option is set, it will return
+ * the result on success, FALSE on failure.
+ * @throws CurlException
+ *
+ */
+function curl_exec($ch)
+{
+ error_clear_last();
+ $result = \curl_exec($ch);
+ if ($result === false) {
+ throw CurlException::createFromCurlResource($ch);
+ }
+ return $result;
+}
+
+
+/**
+ * Gets information about the last transfer.
+ *
+ * @param resource $ch A cURL handle returned by
+ * curl_init.
+ * @param int $opt This may be one of the following constants:
+ *
+ *
+ *
+ * CURLINFO_EFFECTIVE_URL - Last effective URL
+ *
+ *
+ *
+ *
+ * CURLINFO_HTTP_CODE - The last response code.
+ * As of PHP 5.5.0 and cURL 7.10.8, this is a legacy alias of
+ * CURLINFO_RESPONSE_CODE
+ *
+ *
+ *
+ *
+ * CURLINFO_FILETIME - Remote time of the retrieved document, with the CURLOPT_FILETIME enabled; if -1 is returned the time of the document is unknown
+ *
+ *
+ *
+ *
+ * CURLINFO_TOTAL_TIME - Total transaction time in seconds for last transfer
+ *
+ *
+ *
+ *
+ * CURLINFO_NAMELOOKUP_TIME - Time in seconds until name resolving was complete
+ *
+ *
+ *
+ *
+ * CURLINFO_CONNECT_TIME - Time in seconds it took to establish the connection
+ *
+ *
+ *
+ *
+ * CURLINFO_PRETRANSFER_TIME - Time in seconds from start until just before file transfer begins
+ *
+ *
+ *
+ *
+ * CURLINFO_STARTTRANSFER_TIME - Time in seconds until the first byte is about to be transferred
+ *
+ *
+ *
+ *
+ * CURLINFO_REDIRECT_COUNT - Number of redirects, with the CURLOPT_FOLLOWLOCATION option enabled
+ *
+ *
+ *
+ *
+ * CURLINFO_REDIRECT_TIME - Time in seconds of all redirection steps before final transaction was started, with the CURLOPT_FOLLOWLOCATION option enabled
+ *
+ *
+ *
+ *
+ * CURLINFO_REDIRECT_URL - With the CURLOPT_FOLLOWLOCATION option disabled: redirect URL found in the last transaction, that should be requested manually next. With the CURLOPT_FOLLOWLOCATION option enabled: this is empty. The redirect URL in this case is available in CURLINFO_EFFECTIVE_URL
+ *
+ *
+ *
+ *
+ * CURLINFO_PRIMARY_IP - IP address of the most recent connection
+ *
+ *
+ *
+ *
+ * CURLINFO_PRIMARY_PORT - Destination port of the most recent connection
+ *
+ *
+ *
+ *
+ * CURLINFO_LOCAL_IP - Local (source) IP address of the most recent connection
+ *
+ *
+ *
+ *
+ * CURLINFO_LOCAL_PORT - Local (source) port of the most recent connection
+ *
+ *
+ *
+ *
+ * CURLINFO_SIZE_UPLOAD - Total number of bytes uploaded
+ *
+ *
+ *
+ *
+ * CURLINFO_SIZE_DOWNLOAD - Total number of bytes downloaded
+ *
+ *
+ *
+ *
+ * CURLINFO_SPEED_DOWNLOAD - Average download speed
+ *
+ *
+ *
+ *
+ * CURLINFO_SPEED_UPLOAD - Average upload speed
+ *
+ *
+ *
+ *
+ * CURLINFO_HEADER_SIZE - Total size of all headers received
+ *
+ *
+ *
+ *
+ * CURLINFO_HEADER_OUT - The request string sent. For this to
+ * work, add the CURLINFO_HEADER_OUT option to the handle by calling
+ * curl_setopt
+ *
+ *
+ *
+ *
+ * CURLINFO_REQUEST_SIZE - Total size of issued requests, currently only for HTTP requests
+ *
+ *
+ *
+ *
+ * CURLINFO_SSL_VERIFYRESULT - Result of SSL certification verification requested by setting CURLOPT_SSL_VERIFYPEER
+ *
+ *
+ *
+ *
+ * CURLINFO_CONTENT_LENGTH_DOWNLOAD - Content length of download, read from Content-Length: field
+ *
+ *
+ *
+ *
+ * CURLINFO_CONTENT_LENGTH_UPLOAD - Specified size of upload
+ *
+ *
+ *
+ *
+ * CURLINFO_CONTENT_TYPE - Content-Type: of the requested document. NULL indicates server did not send valid Content-Type: header
+ *
+ *
+ *
+ *
+ * CURLINFO_PRIVATE - Private data associated with this cURL handle, previously set with the CURLOPT_PRIVATE option of curl_setopt
+ *
+ *
+ *
+ *
+ * CURLINFO_RESPONSE_CODE - The last response code
+ *
+ *
+ *
+ *
+ * CURLINFO_HTTP_CONNECTCODE - The CONNECT response code
+ *
+ *
+ *
+ *
+ * CURLINFO_HTTPAUTH_AVAIL - Bitmask indicating the authentication method(s) available according to the previous response
+ *
+ *
+ *
+ *
+ * CURLINFO_PROXYAUTH_AVAIL - Bitmask indicating the proxy authentication method(s) available according to the previous response
+ *
+ *
+ *
+ *
+ * CURLINFO_OS_ERRNO - Errno from a connect failure. The number is OS and system specific.
+ *
+ *
+ *
+ *
+ * CURLINFO_NUM_CONNECTS - Number of connections curl had to create to achieve the previous transfer
+ *
+ *
+ *
+ *
+ * CURLINFO_SSL_ENGINES - OpenSSL crypto-engines supported
+ *
+ *
+ *
+ *
+ * CURLINFO_COOKIELIST - All known cookies
+ *
+ *
+ *
+ *
+ * CURLINFO_FTP_ENTRY_PATH - Entry path in FTP server
+ *
+ *
+ *
+ *
+ * CURLINFO_APPCONNECT_TIME - Time in seconds it took from the start until the SSL/SSH connect/handshake to the remote host was completed
+ *
+ *
+ *
+ *
+ * CURLINFO_CERTINFO - TLS certificate chain
+ *
+ *
+ *
+ *
+ * CURLINFO_CONDITION_UNMET - Info on unmet time conditional
+ *
+ *
+ *
+ *
+ * CURLINFO_RTSP_CLIENT_CSEQ - Next RTSP client CSeq
+ *
+ *
+ *
+ *
+ * CURLINFO_RTSP_CSEQ_RECV - Recently received CSeq
+ *
+ *
+ *
+ *
+ * CURLINFO_RTSP_SERVER_CSEQ - Next RTSP server CSeq
+ *
+ *
+ *
+ *
+ * CURLINFO_RTSP_SESSION_ID - RTSP session ID
+ *
+ *
+ *
+ *
+ * CURLINFO_CONTENT_LENGTH_DOWNLOAD_T - The content-length of the download. This is the value read from the Content-Type: field. -1 if the size isn't known
+ *
+ *
+ *
+ *
+ * CURLINFO_CONTENT_LENGTH_UPLOAD_T - The specified size of the upload. -1 if the size isn't known
+ *
+ *
+ *
+ *
+ * CURLINFO_HTTP_VERSION - The version used in the last HTTP connection. The return value will be one of the defined CURL_HTTP_VERSION_* constants or 0 if the version can't be determined
+ *
+ *
+ *
+ *
+ * CURLINFO_PROTOCOL - The protocol used in the last HTTP connection. The returned value will be exactly one of the CURLPROTO_* values
+ *
+ *
+ *
+ *
+ * CURLINFO_PROXY_SSL_VERIFYRESULT - The result of the certificate verification that was requested (using the CURLOPT_PROXY_SSL_VERIFYPEER option). Only used for HTTPS proxies
+ *
+ *
+ *
+ *
+ * CURLINFO_SCHEME - The URL scheme used for the most recent connection
+ *
+ *
+ *
+ *
+ * CURLINFO_SIZE_DOWNLOAD_T - Total number of bytes that were downloaded. The number is only for the latest transfer and will be reset again for each new transfer
+ *
+ *
+ *
+ *
+ * CURLINFO_SIZE_UPLOAD_T - Total number of bytes that were uploaded
+ *
+ *
+ *
+ *
+ * CURLINFO_SPEED_DOWNLOAD_T - The average download speed in bytes/second that curl measured for the complete download
+ *
+ *
+ *
+ *
+ * CURLINFO_SPEED_UPLOAD_T - The average upload speed in bytes/second that curl measured for the complete upload
+ *
+ *
+ *
+ *
+ * CURLINFO_APPCONNECT_TIME_T - Time, in microseconds, it took from the start until the SSL/SSH connect/handshake to the remote host was completed
+ *
+ *
+ *
+ *
+ * CURLINFO_CONNECT_TIME_T - Total time taken, in microseconds, from the start until the connection to the remote host (or proxy) was completed
+ *
+ *
+ *
+ *
+ * CURLINFO_FILETIME_T - Remote time of the retrieved document (as Unix timestamp), an alternative to CURLINFO_FILETIME to allow systems with 32 bit long variables to extract dates outside of the 32bit timestamp range
+ *
+ *
+ *
+ *
+ * CURLINFO_NAMELOOKUP_TIME_T - Time in microseconds from the start until the name resolving was completed
+ *
+ *
+ *
+ *
+ * CURLINFO_PRETRANSFER_TIME_T - Time taken from the start until the file transfer is just about to begin, in microseconds
+ *
+ *
+ *
+ *
+ * CURLINFO_REDIRECT_TIME_T - Total time, in microseconds, it took for all redirection steps include name lookup, connect, pretransfer and transfer before final transaction was started
+ *
+ *
+ *
+ *
+ * CURLINFO_STARTTRANSFER_TIME_T - Time, in microseconds, it took from the start until the first byte is received
+ *
+ *
+ *
+ *
+ * CURLINFO_TOTAL_TIME_T - Total time in microseconds for the previous transfer, including name resolving, TCP connect etc.
+ *
+ *
+ *
+ * @return mixed If opt is given, returns its value.
+ * Otherwise, returns an associative array with the following elements
+ * (which correspond to opt):
+ *
+ *
+ *
+ * "url"
+ *
+ *
+ *
+ *
+ * "content_type"
+ *
+ *
+ *
+ *
+ * "http_code"
+ *
+ *
+ *
+ *
+ * "header_size"
+ *
+ *
+ *
+ *
+ * "request_size"
+ *
+ *
+ *
+ *
+ * "filetime"
+ *
+ *
+ *
+ *
+ * "ssl_verify_result"
+ *
+ *
+ *
+ *
+ * "redirect_count"
+ *
+ *
+ *
+ *
+ * "total_time"
+ *
+ *
+ *
+ *
+ * "namelookup_time"
+ *
+ *
+ *
+ *
+ * "connect_time"
+ *
+ *
+ *
+ *
+ * "pretransfer_time"
+ *
+ *
+ *
+ *
+ * "size_upload"
+ *
+ *
+ *
+ *
+ * "size_download"
+ *
+ *
+ *
+ *
+ * "speed_download"
+ *
+ *
+ *
+ *
+ * "speed_upload"
+ *
+ *
+ *
+ *
+ * "download_content_length"
+ *
+ *
+ *
+ *
+ * "upload_content_length"
+ *
+ *
+ *
+ *
+ * "starttransfer_time"
+ *
+ *
+ *
+ *
+ * "redirect_time"
+ *
+ *
+ *
+ *
+ * "certinfo"
+ *
+ *
+ *
+ *
+ * "primary_ip"
+ *
+ *
+ *
+ *
+ * "primary_port"
+ *
+ *
+ *
+ *
+ * "local_ip"
+ *
+ *
+ *
+ *
+ * "local_port"
+ *
+ *
+ *
+ *
+ * "redirect_url"
+ *
+ *
+ *
+ *
+ * "request_header" (This is only set if the CURLINFO_HEADER_OUT
+ * is set by a previous call to curl_setopt)
+ *
+ *
+ *
+ * Note that private data is not included in the associative array and must be retrieved individually with the CURLINFO_PRIVATE option.
+ * @throws CurlException
+ *
+ */
+function curl_getinfo($ch, int $opt = null)
+{
+ error_clear_last();
+ if ($opt !== null) {
+ $result = \curl_getinfo($ch, $opt);
+ } else {
+ $result = \curl_getinfo($ch);
+ }
+ if ($result === false) {
+ throw CurlException::createFromCurlResource($ch);
+ }
+ return $result;
+}
+
+
+/**
+ * Initializes a new session and return a cURL handle for use with the
+ * curl_setopt, curl_exec,
+ * and curl_close functions.
+ *
+ * @param string $url If provided, the CURLOPT_URL option will be set
+ * to its value. You can manually set this using the
+ * curl_setopt function.
+ *
+ * The file protocol is disabled by cURL if
+ * open_basedir is set.
+ * @return resource Returns a cURL handle on success, FALSE on errors.
+ * @throws CurlException
+ *
+ */
+function curl_init(string $url = null)
+{
+ error_clear_last();
+ $result = \curl_init($url);
+ if ($result === false) {
+ throw CurlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Return an integer containing the last multi curl error number.
+ *
+ * @param resource $mh A cURL multi handle returned by
+ * curl_multi_init.
+ * @return int Return an integer containing the last multi curl error number.
+ * @throws CurlException
+ *
+ */
+function curl_multi_errno($mh): int
+{
+ error_clear_last();
+ $result = \curl_multi_errno($mh);
+ if ($result === false) {
+ throw CurlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Ask the multi handle if there are any messages or information from the individual transfers.
+ * Messages may include information such as an error code from the transfer or just the fact
+ * that a transfer is completed.
+ *
+ * Repeated calls to this function will return a new result each time, until a FALSE is returned
+ * as a signal that there is no more to get at this point. The integer pointed to with
+ * msgs_in_queue will contain the number of remaining messages after this
+ * function was called.
+ *
+ * @param resource $mh A cURL multi handle returned by
+ * curl_multi_init.
+ * @param int|null $msgs_in_queue Number of messages that are still in the queue
+ * @return array On success, returns an associative array for the message, FALSE on failure.
+ *
+ *
+ * Contents of the returned array
+ *
+ *
+ *
+ * Key:
+ * Value:
+ *
+ *
+ *
+ *
+ * msg
+ * The CURLMSG_DONE constant. Other return values
+ * are currently not available.
+ *
+ *
+ * result
+ * One of the CURLE_* constants. If everything is
+ * OK, the CURLE_OK will be the result.
+ *
+ *
+ * handle
+ * Resource of type curl indicates the handle which it concerns.
+ *
+ *
+ *
+ *
+ * @throws CurlException
+ *
+ */
+function curl_multi_info_read($mh, ?int &$msgs_in_queue = null): array
+{
+ error_clear_last();
+ $result = \curl_multi_info_read($mh, $msgs_in_queue);
+ if ($result === false) {
+ throw CurlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Allows the processing of multiple cURL handles asynchronously.
+ *
+ * @return resource Returns a cURL multi handle resource on success, FALSE on failure.
+ * @throws CurlException
+ *
+ */
+function curl_multi_init()
+{
+ error_clear_last();
+ $result = \curl_multi_init();
+ if ($result === false) {
+ throw CurlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Sets an option on the given cURL session handle.
+ *
+ * @param resource $ch A cURL handle returned by
+ * curl_init.
+ * @param int $option The CURLOPT_XXX option to set.
+ * @param mixed $value The value to be set on option.
+ *
+ * value should be a bool for the
+ * following values of the option parameter:
+ *
+ *
+ *
+ *
+ * Option
+ * Set value to
+ * Notes
+ *
+ *
+ *
+ *
+ * CURLOPT_AUTOREFERER
+ *
+ * TRUE to automatically set the Referer: field in
+ * requests where it follows a Location: redirect.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_BINARYTRANSFER
+ *
+ * TRUE to return the raw output when
+ * CURLOPT_RETURNTRANSFER is used.
+ *
+ *
+ * From PHP 5.1.3, this option has no effect: the raw output will
+ * always be returned when
+ * CURLOPT_RETURNTRANSFER is used.
+ *
+ *
+ *
+ * CURLOPT_COOKIESESSION
+ *
+ * TRUE to mark this as a new cookie "session". It will force libcurl
+ * to ignore all cookies it is about to load that are "session cookies"
+ * from the previous session. By default, libcurl always stores and
+ * loads all cookies, independent if they are session cookies or not.
+ * Session cookies are cookies without expiry date and they are meant
+ * to be alive and existing for this "session" only.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_CERTINFO
+ *
+ * TRUE to output SSL certification information to STDERR
+ * on secure transfers.
+ *
+ *
+ * Added in cURL 7.19.1.
+ * Available since PHP 5.3.2.
+ * Requires CURLOPT_VERBOSE to be on to have an effect.
+ *
+ *
+ *
+ * CURLOPT_CONNECT_ONLY
+ *
+ * TRUE tells the library to perform all the required proxy authentication
+ * and connection setup, but no data transfer. This option is implemented for
+ * HTTP, SMTP and POP3.
+ *
+ *
+ * Added in 7.15.2.
+ * Available since PHP 5.5.0.
+ *
+ *
+ *
+ * CURLOPT_CRLF
+ *
+ * TRUE to convert Unix newlines to CRLF newlines
+ * on transfers.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_DISALLOW_USERNAME_IN_URL
+ *
+ * TRUE to not allow URLs that include a username. Usernames are allowed by default (0).
+ *
+ *
+ * Added in cURL 7.61.0. Available since PHP 7.3.0.
+ *
+ *
+ *
+ * CURLOPT_DNS_SHUFFLE_ADDRESSES
+ *
+ * TRUE to shuffle the order of all returned addresses so that they will be used
+ * in a random order, when a name is resolved and more than one IP address is returned.
+ * This may cause IPv4 to be used before IPv6 or vice versa.
+ *
+ *
+ * Added in cURL 7.60.0. Available since PHP 7.3.0.
+ *
+ *
+ *
+ * CURLOPT_HAPROXYPROTOCOL
+ *
+ * TRUE to send an HAProxy PROXY protocol v1 header at the start of the connection.
+ * The default action is not to send this header.
+ *
+ *
+ * Added in cURL 7.60.0. Available since PHP 7.3.0.
+ *
+ *
+ *
+ * CURLOPT_SSH_COMPRESSION
+ *
+ * TRUE to enable built-in SSH compression. This is a request, not an order;
+ * the server may or may not do it.
+ *
+ *
+ * Added in cURL 7.56.0. Available since PHP 7.3.0.
+ *
+ *
+ *
+ * CURLOPT_DNS_USE_GLOBAL_CACHE
+ *
+ * TRUE to use a global DNS cache. This option is not thread-safe.
+ * It is conditionally enabled by default if PHP is built for non-threaded use
+ * (CLI, FCGI, Apache2-Prefork, etc.).
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_FAILONERROR
+ *
+ * TRUE to fail verbosely if the HTTP code returned
+ * is greater than or equal to 400. The default behavior is to return
+ * the page normally, ignoring the code.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_SSL_FALSESTART
+ *
+ * TRUE to enable TLS false start.
+ *
+ *
+ * Added in cURL 7.42.0. Available since PHP 7.0.7.
+ *
+ *
+ *
+ * CURLOPT_FILETIME
+ *
+ * TRUE to attempt to retrieve the modification
+ * date of the remote document. This value can be retrieved using
+ * the CURLINFO_FILETIME option with
+ * curl_getinfo.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_FOLLOWLOCATION
+ *
+ * TRUE to follow any
+ * "Location: " header that the server sends as
+ * part of the HTTP header (note this is recursive, PHP will follow as
+ * many "Location: " headers that it is sent,
+ * unless CURLOPT_MAXREDIRS is set).
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_FORBID_REUSE
+ *
+ * TRUE to force the connection to explicitly
+ * close when it has finished processing, and not be pooled for reuse.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_FRESH_CONNECT
+ *
+ * TRUE to force the use of a new connection
+ * instead of a cached one.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_FTP_USE_EPRT
+ *
+ * TRUE to use EPRT (and LPRT) when doing active
+ * FTP downloads. Use FALSE to disable EPRT and LPRT and use PORT
+ * only.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_FTP_USE_EPSV
+ *
+ * TRUE to first try an EPSV command for FTP
+ * transfers before reverting back to PASV. Set to FALSE
+ * to disable EPSV.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_FTP_CREATE_MISSING_DIRS
+ *
+ * TRUE to create missing directories when an FTP operation
+ * encounters a path that currently doesn't exist.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_FTPAPPEND
+ *
+ * TRUE to append to the remote file instead of
+ * overwriting it.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_TCP_NODELAY
+ *
+ * TRUE to disable TCP's Nagle algorithm, which tries to minimize
+ * the number of small packets on the network.
+ *
+ *
+ * Available since PHP 5.2.1 for versions compiled with libcurl 7.11.2 or
+ * greater.
+ *
+ *
+ *
+ * CURLOPT_FTPASCII
+ *
+ * An alias of
+ * CURLOPT_TRANSFERTEXT. Use that instead.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_FTPLISTONLY
+ *
+ * TRUE to only list the names of an FTP
+ * directory.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_HEADER
+ *
+ * TRUE to include the header in the output.
+ *
+ *
+ *
+ *
+ *
+ * CURLINFO_HEADER_OUT
+ *
+ * TRUE to track the handle's request string.
+ *
+ *
+ * Available since PHP 5.1.3. The CURLINFO_
+ * prefix is intentional.
+ *
+ *
+ *
+ * CURLOPT_HTTP09_ALLOWED
+ *
+ * Whether to allow HTTP/0.9 responses. Defaults to FALSE as of libcurl 7.66.0;
+ * formerly it defaulted to TRUE.
+ *
+ *
+ * Available since PHP 7.3.15 and 7.4.3, respectively, if built against libcurl &gt;= 7.64.0
+ *
+ *
+ *
+ * CURLOPT_HTTPGET
+ *
+ * TRUE to reset the HTTP request method to GET.
+ * Since GET is the default, this is only necessary if the request
+ * method has been changed.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_HTTPPROXYTUNNEL
+ *
+ * TRUE to tunnel through a given HTTP proxy.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_HTTP_CONTENT_DECODING
+ *
+ * FALSE to get the raw HTTP response body.
+ *
+ *
+ * Available as of PHP 5.5.0 if built against libcurl &gt;= 7.16.2.
+ *
+ *
+ *
+ * CURLOPT_KEEP_SENDING_ON_ERROR
+ *
+ * TRUE to keep sending the request body if the HTTP code returned is
+ * equal to or larger than 300. The default action would be to stop sending
+ * and close the stream or connection. Suitable for manual NTLM authentication.
+ * Most applications do not need this option.
+ *
+ *
+ * Available as of PHP 7.3.0 if built against libcurl &gt;= 7.51.0.
+ *
+ *
+ *
+ * CURLOPT_MUTE
+ *
+ * TRUE to be completely silent with regards to
+ * the cURL functions.
+ *
+ *
+ * Removed in cURL 7.15.5 (You can use CURLOPT_RETURNTRANSFER instead)
+ *
+ *
+ *
+ * CURLOPT_NETRC
+ *
+ * TRUE to scan the ~/.netrc
+ * file to find a username and password for the remote site that
+ * a connection is being established with.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_NOBODY
+ *
+ * TRUE to exclude the body from the output.
+ * Request method is then set to HEAD. Changing this to FALSE does
+ * not change it to GET.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_NOPROGRESS
+ *
+ * TRUE to disable the progress meter for cURL transfers.
+ *
+ *
+ * PHP automatically sets this option to TRUE, this should only be
+ * changed for debugging purposes.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_NOSIGNAL
+ *
+ * TRUE to ignore any cURL function that causes a
+ * signal to be sent to the PHP process. This is turned on by default
+ * in multi-threaded SAPIs so timeout options can still be used.
+ *
+ *
+ * Added in cURL 7.10.
+ *
+ *
+ *
+ * CURLOPT_PATH_AS_IS
+ *
+ * TRUE to not handle dot dot sequences.
+ *
+ *
+ * Added in cURL 7.42.0. Available since PHP 7.0.7.
+ *
+ *
+ *
+ * CURLOPT_PIPEWAIT
+ *
+ * TRUE to wait for pipelining/multiplexing.
+ *
+ *
+ * Added in cURL 7.43.0. Available since PHP 7.0.7.
+ *
+ *
+ *
+ * CURLOPT_POST
+ *
+ * TRUE to do a regular HTTP POST. This POST is the
+ * normal application/x-www-form-urlencoded kind,
+ * most commonly used by HTML forms.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_PUT
+ *
+ * TRUE to HTTP PUT a file. The file to PUT must
+ * be set with CURLOPT_INFILE and
+ * CURLOPT_INFILESIZE.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_RETURNTRANSFER
+ *
+ * TRUE to return the transfer as a string of the
+ * return value of curl_exec instead of outputting
+ * it directly.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_SAFE_UPLOAD
+ *
+ * TRUE to disable support for the @ prefix for
+ * uploading files in CURLOPT_POSTFIELDS, which
+ * means that values starting with @ can be safely
+ * passed as fields. CURLFile may be used for
+ * uploads instead.
+ *
+ *
+ * Added in PHP 5.5.0 with FALSE as the default value. PHP 5.6.0
+ * changes the default value to TRUE. PHP 7 removes this option;
+ * the CURLFile interface must be used to upload files.
+ *
+ *
+ *
+ * CURLOPT_SASL_IR
+ *
+ * TRUE to enable sending the initial response in the first packet.
+ *
+ *
+ * Added in cURL 7.31.10. Available since PHP 7.0.7.
+ *
+ *
+ *
+ * CURLOPT_SSL_ENABLE_ALPN
+ *
+ * FALSE to disable ALPN in the SSL handshake (if the SSL backend
+ * libcurl is built to use supports it), which can be used to
+ * negotiate http2.
+ *
+ *
+ * Added in cURL 7.36.0. Available since PHP 7.0.7.
+ *
+ *
+ *
+ * CURLOPT_SSL_ENABLE_NPN
+ *
+ * FALSE to disable NPN in the SSL handshake (if the SSL backend
+ * libcurl is built to use supports it), which can be used to
+ * negotiate http2.
+ *
+ *
+ * Added in cURL 7.36.0. Available since PHP 7.0.7.
+ *
+ *
+ *
+ * CURLOPT_SSL_VERIFYPEER
+ *
+ * FALSE to stop cURL from verifying the peer's
+ * certificate. Alternate certificates to verify against can be
+ * specified with the CURLOPT_CAINFO option
+ * or a certificate directory can be specified with the
+ * CURLOPT_CAPATH option.
+ *
+ *
+ * TRUE by default as of cURL 7.10. Default bundle installed as of
+ * cURL 7.10.
+ *
+ *
+ *
+ * CURLOPT_SSL_VERIFYSTATUS
+ *
+ * TRUE to verify the certificate's status.
+ *
+ *
+ * Added in cURL 7.41.0. Available since PHP 7.0.7.
+ *
+ *
+ *
+ * CURLOPT_PROXY_SSL_VERIFYPEER
+ *
+ * FALSE to stop cURL from verifying the peer's certificate.
+ * Alternate certificates to verify against can be
+ * specified with the CURLOPT_CAINFO option
+ * or a certificate directory can be specified with the
+ * CURLOPT_CAPATH option.
+ * When set to false, the peer certificate verification succeeds regardless.
+ *
+ *
+ * TRUE by default. Available since PHP 7.3.0 and libcurl &gt;= cURL 7.52.0.
+ *
+ *
+ *
+ * CURLOPT_SUPPRESS_CONNECT_HEADERS
+ *
+ * TRUE to suppress proxy CONNECT response headers from the user callback functions
+ * CURLOPT_HEADERFUNCTION and CURLOPT_WRITEFUNCTION,
+ * when CURLOPT_HTTPPROXYTUNNEL is used and a CONNECT request is made.
+ *
+ *
+ * Added in cURL 7.54.0. Available since PHP 7.3.0.
+ *
+ *
+ *
+ * CURLOPT_TCP_FASTOPEN
+ *
+ * TRUE to enable TCP Fast Open.
+ *
+ *
+ * Added in cURL 7.49.0. Available since PHP 7.0.7.
+ *
+ *
+ *
+ * CURLOPT_TFTP_NO_OPTIONS
+ *
+ * TRUE to not send TFTP options requests.
+ *
+ *
+ * Added in cURL 7.48.0. Available since PHP 7.0.7.
+ *
+ *
+ *
+ * CURLOPT_TRANSFERTEXT
+ *
+ * TRUE to use ASCII mode for FTP transfers.
+ * For LDAP, it retrieves data in plain text instead of HTML. On
+ * Windows systems, it will not set STDOUT to binary
+ * mode.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_UNRESTRICTED_AUTH
+ *
+ * TRUE to keep sending the username and password
+ * when following locations (using
+ * CURLOPT_FOLLOWLOCATION), even when the
+ * hostname has changed.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_UPLOAD
+ *
+ * TRUE to prepare for an upload.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_VERBOSE
+ *
+ * TRUE to output verbose information. Writes
+ * output to STDERR, or the file specified using
+ * CURLOPT_STDERR.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * TRUE to disable the progress meter for cURL transfers.
+ *
+ *
+ * PHP automatically sets this option to TRUE, this should only be
+ * changed for debugging purposes.
+ *
+ *
+ *
+ * PHP automatically sets this option to TRUE, this should only be
+ * changed for debugging purposes.
+ *
+ * value should be an integer for the
+ * following values of the option parameter:
+ *
+ *
+ *
+ *
+ * Option
+ * Set value to
+ * Notes
+ *
+ *
+ *
+ *
+ * CURLOPT_BUFFERSIZE
+ *
+ * The size of the buffer to use for each read. There is no guarantee
+ * this request will be fulfilled, however.
+ *
+ *
+ * Added in cURL 7.10.
+ *
+ *
+ *
+ * CURLOPT_CLOSEPOLICY
+ *
+ * One of the CURLCLOSEPOLICY_* values.
+ *
+ *
+ * This option is deprecated, as it was never implemented in cURL and
+ * never had any effect.
+ *
+ *
+ *
+ *
+ * Removed in PHP 5.6.0.
+ *
+ *
+ *
+ * CURLOPT_CONNECTTIMEOUT
+ *
+ * The number of seconds to wait while trying to connect. Use 0 to
+ * wait indefinitely.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_CONNECTTIMEOUT_MS
+ *
+ * The number of milliseconds to wait while trying to connect. Use 0 to
+ * wait indefinitely.
+ *
+ * If libcurl is built to use the standard system name resolver, that
+ * portion of the connect will still use full-second resolution for
+ * timeouts with a minimum timeout allowed of one second.
+ *
+ *
+ * Added in cURL 7.16.2. Available since PHP 5.2.3.
+ *
+ *
+ *
+ * CURLOPT_DNS_CACHE_TIMEOUT
+ *
+ * The number of seconds to keep DNS entries in memory. This
+ * option is set to 120 (2 minutes) by default.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_EXPECT_100_TIMEOUT_MS
+ *
+ * The timeout for Expect: 100-continue responses in milliseconds.
+ * Defaults to 1000 milliseconds.
+ *
+ *
+ * Added in cURL 7.36.0. Available since PHP 7.0.7.
+ *
+ *
+ *
+ * CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS
+ *
+ * Head start for ipv6 for the happy eyeballs algorithm. Happy eyeballs attempts
+ * to connect to both IPv4 and IPv6 addresses for dual-stack hosts,
+ * preferring IPv6 first for timeout milliseconds.
+ * Defaults to CURL_HET_DEFAULT, which is currently 200 milliseconds.
+ *
+ *
+ * Added in cURL 7.59.0. Available since PHP 7.3.0.
+ *
+ *
+ *
+ * CURLOPT_FTPSSLAUTH
+ *
+ * The FTP authentication method (when is activated):
+ * CURLFTPAUTH_SSL (try SSL first),
+ * CURLFTPAUTH_TLS (try TLS first), or
+ * CURLFTPAUTH_DEFAULT (let cURL decide).
+ *
+ *
+ * Added in cURL 7.12.2.
+ *
+ *
+ *
+ * CURLOPT_HEADEROPT
+ *
+ * How to deal with headers. One of the following constants:
+ *
+ * CURLHEADER_UNIFIED: the headers specified in
+ * CURLOPT_HTTPHEADER will be used in requests
+ * both to servers and proxies. With this option enabled,
+ * CURLOPT_PROXYHEADER will not have any effect.
+ *
+ *
+ * CURLHEADER_SEPARATE: makes
+ * CURLOPT_HTTPHEADER headers only get sent to
+ * a server and not to a proxy. Proxy headers must be set with
+ * CURLOPT_PROXYHEADER to get used. Note that if
+ * a non-CONNECT request is sent to a proxy, libcurl will send both
+ * server headers and proxy headers. When doing CONNECT, libcurl will
+ * send CURLOPT_PROXYHEADER headers only to the
+ * proxy and then CURLOPT_HTTPHEADER headers
+ * only to the server.
+ *
+ *
+ * Defaults to CURLHEADER_SEPARATE as of cURL
+ * 7.42.1, and CURLHEADER_UNIFIED before.
+ *
+ *
+ *
+ * Added in cURL 7.37.0. Available since PHP 7.0.7.
+ *
+ *
+ *
+ * CURLOPT_HTTP_VERSION
+ *
+ * CURL_HTTP_VERSION_NONE (default, lets CURL
+ * decide which version to use),
+ * CURL_HTTP_VERSION_1_0 (forces HTTP/1.0),
+ * CURL_HTTP_VERSION_1_1 (forces HTTP/1.1),
+ * CURL_HTTP_VERSION_2_0 (attempts HTTP 2),
+ * CURL_HTTP_VERSION_2 (alias of CURL_HTTP_VERSION_2_0),
+ * CURL_HTTP_VERSION_2TLS (attempts HTTP 2 over TLS (HTTPS) only) or
+ * CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE (issues non-TLS HTTP requests using HTTP/2 without HTTP/1.1 Upgrade).
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_HTTPAUTH
+ *
+ *
+ * The HTTP authentication method(s) to use. The options are:
+ * CURLAUTH_BASIC,
+ * CURLAUTH_DIGEST,
+ * CURLAUTH_GSSNEGOTIATE,
+ * CURLAUTH_NTLM,
+ * CURLAUTH_ANY, and
+ * CURLAUTH_ANYSAFE.
+ *
+ *
+ * The bitwise | (or) operator can be used to combine
+ * more than one method. If this is done, cURL will poll the server to see
+ * what methods it supports and pick the best one.
+ *
+ *
+ * CURLAUTH_ANY is an alias for
+ * CURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.
+ *
+ *
+ * CURLAUTH_ANYSAFE is an alias for
+ * CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.
+ *
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_INFILESIZE
+ *
+ * The expected size, in bytes, of the file when uploading a file to
+ * a remote site. Note that using this option will not stop libcurl
+ * from sending more data, as exactly what is sent depends on
+ * CURLOPT_READFUNCTION.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_LOW_SPEED_LIMIT
+ *
+ * The transfer speed, in bytes per second, that the transfer should be
+ * below during the count of CURLOPT_LOW_SPEED_TIME
+ * seconds before PHP considers the transfer too slow and aborts.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_LOW_SPEED_TIME
+ *
+ * The number of seconds the transfer speed should be below
+ * CURLOPT_LOW_SPEED_LIMIT before PHP considers
+ * the transfer too slow and aborts.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_MAXCONNECTS
+ *
+ * The maximum amount of persistent connections that are allowed.
+ * When the limit is reached,
+ * CURLOPT_CLOSEPOLICY is used to determine
+ * which connection to close.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_MAXREDIRS
+ *
+ * The maximum amount of HTTP redirections to follow. Use this option
+ * alongside CURLOPT_FOLLOWLOCATION.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_PORT
+ *
+ * An alternative port number to connect to.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_POSTREDIR
+ *
+ * A bitmask of 1 (301 Moved Permanently), 2 (302 Found)
+ * and 4 (303 See Other) if the HTTP POST method should be maintained
+ * when CURLOPT_FOLLOWLOCATION is set and a
+ * specific type of redirect occurs.
+ *
+ *
+ * Added in cURL 7.19.1. Available since PHP 5.3.2.
+ *
+ *
+ *
+ * CURLOPT_PROTOCOLS
+ *
+ *
+ * Bitmask of CURLPROTO_* values. If used, this bitmask
+ * limits what protocols libcurl may use in the transfer. This allows you to have
+ * a libcurl built to support a wide range of protocols but still limit specific
+ * transfers to only be allowed to use a subset of them. By default libcurl will
+ * accept all protocols it supports.
+ * See also CURLOPT_REDIR_PROTOCOLS.
+ *
+ *
+ * Valid protocol options are:
+ * CURLPROTO_HTTP,
+ * CURLPROTO_HTTPS,
+ * CURLPROTO_FTP,
+ * CURLPROTO_FTPS,
+ * CURLPROTO_SCP,
+ * CURLPROTO_SFTP,
+ * CURLPROTO_TELNET,
+ * CURLPROTO_LDAP,
+ * CURLPROTO_LDAPS,
+ * CURLPROTO_DICT,
+ * CURLPROTO_FILE,
+ * CURLPROTO_TFTP,
+ * CURLPROTO_ALL
+ *
+ *
+ *
+ * Added in cURL 7.19.4.
+ *
+ *
+ *
+ * CURLOPT_PROXYAUTH
+ *
+ * The HTTP authentication method(s) to use for the proxy connection.
+ * Use the same bitmasks as described in
+ * CURLOPT_HTTPAUTH. For proxy authentication,
+ * only CURLAUTH_BASIC and
+ * CURLAUTH_NTLM are currently supported.
+ *
+ *
+ * Added in cURL 7.10.7.
+ *
+ *
+ *
+ * CURLOPT_PROXYPORT
+ *
+ * The port number of the proxy to connect to. This port number can
+ * also be set in CURLOPT_PROXY.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_PROXYTYPE
+ *
+ * Either CURLPROXY_HTTP (default),
+ * CURLPROXY_SOCKS4,
+ * CURLPROXY_SOCKS5,
+ * CURLPROXY_SOCKS4A or
+ * CURLPROXY_SOCKS5_HOSTNAME.
+ *
+ *
+ * Added in cURL 7.10.
+ *
+ *
+ *
+ * CURLOPT_REDIR_PROTOCOLS
+ *
+ * Bitmask of CURLPROTO_* values. If used, this bitmask
+ * limits what protocols libcurl may use in a transfer that it follows to in
+ * a redirect when CURLOPT_FOLLOWLOCATION is enabled.
+ * This allows you to limit specific transfers to only be allowed to use a subset
+ * of protocols in redirections. By default libcurl will allow all protocols
+ * except for FILE and SCP. This is a difference compared to pre-7.19.4 versions
+ * which unconditionally would follow to all protocols supported.
+ * See also CURLOPT_PROTOCOLS for protocol constant values.
+ *
+ *
+ * Added in cURL 7.19.4.
+ *
+ *
+ *
+ * CURLOPT_RESUME_FROM
+ *
+ * The offset, in bytes, to resume a transfer from.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_SOCKS5_AUTH
+ *
+ *
+ * The SOCKS5 authentication method(s) to use. The options are:
+ * CURLAUTH_BASIC,
+ * CURLAUTH_GSSAPI,
+ * CURLAUTH_NONE.
+ *
+ *
+ * The bitwise | (or) operator can be used to combine
+ * more than one method. If this is done, cURL will poll the server to see
+ * what methods it supports and pick the best one.
+ *
+ *
+ * CURLAUTH_BASIC allows username/password authentication.
+ *
+ *
+ * CURLAUTH_GSSAPI allows GSS-API authentication.
+ *
+ *
+ * CURLAUTH_NONE allows no authentication.
+ *
+ *
+ * Defaults to CURLAUTH_BASIC|CURLAUTH_GSSAPI.
+ * Set the actual username and password with the CURLOPT_PROXYUSERPWD option.
+ *
+ *
+ *
+ * Available as of 7.3.0 and curl &gt;= 7.55.0.
+ *
+ *
+ *
+ * CURLOPT_SSL_OPTIONS
+ *
+ * Set SSL behavior options, which is a bitmask of any of the following constants:
+ *
+ * CURLSSLOPT_ALLOW_BEAST: do not attempt to use
+ * any workarounds for a security flaw in the SSL3 and TLS1.0 protocols.
+ *
+ *
+ * CURLSSLOPT_NO_REVOKE: disable certificate
+ * revocation checks for those SSL backends where such behavior is
+ * present.
+ *
+ *
+ *
+ * Added in cURL 7.25.0. Available since PHP 7.0.7.
+ *
+ *
+ *
+ * CURLOPT_SSL_VERIFYHOST
+ *
+ * 1 to check the existence of a common name in the
+ * SSL peer certificate. 2 to check the existence of
+ * a common name and also verify that it matches the hostname
+ * provided. 0 to not check the names. In production environments the value of this option
+ * should be kept at 2 (default value).
+ *
+ *
+ * Support for value 1 removed in cURL 7.28.1.
+ *
+ *
+ *
+ * CURLOPT_SSLVERSION
+ *
+ * One of CURL_SSLVERSION_DEFAULT (0),
+ * CURL_SSLVERSION_TLSv1 (1),
+ * CURL_SSLVERSION_SSLv2 (2),
+ * CURL_SSLVERSION_SSLv3 (3),
+ * CURL_SSLVERSION_TLSv1_0 (4),
+ * CURL_SSLVERSION_TLSv1_1 (5) or
+ * CURL_SSLVERSION_TLSv1_2 (6).
+ * The maximum TLS version can be set by using one of the CURL_SSLVERSION_MAX_*
+ * constants. It is also possible to OR one of the CURL_SSLVERSION_*
+ * constants with one of the CURL_SSLVERSION_MAX_* constants.
+ * CURL_SSLVERSION_MAX_DEFAULT (the maximum version supported by the library),
+ * CURL_SSLVERSION_MAX_TLSv1_0,
+ * CURL_SSLVERSION_MAX_TLSv1_1,
+ * CURL_SSLVERSION_MAX_TLSv1_2, or
+ * CURL_SSLVERSION_MAX_TLSv1_3.
+ *
+ *
+ * Your best bet is to not set this and let it use the default.
+ * Setting it to 2 or 3 is very dangerous given the known
+ * vulnerabilities in SSLv2 and SSLv3.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_PROXY_SSL_OPTIONS
+ *
+ * Set proxy SSL behavior options, which is a bitmask of any of the following constants:
+ *
+ * CURLSSLOPT_ALLOW_BEAST: do not attempt to use
+ * any workarounds for a security flaw in the SSL3 and TLS1.0 protocols.
+ *
+ *
+ * CURLSSLOPT_NO_REVOKE: disable certificate
+ * revocation checks for those SSL backends where such behavior is
+ * present. (curl &gt;= 7.44.0)
+ *
+ *
+ * CURLSSLOPT_NO_PARTIALCHAIN: do not accept "partial"
+ * certificate chains, which it otherwise does by default. (curl &gt;= 7.68.0)
+ *
+ *
+ *
+ * Available since PHP 7.3.0 and libcurl &gt;= cURL 7.52.0.
+ *
+ *
+ *
+ * CURLOPT_PROXY_SSL_VERIFYHOST
+ *
+ * Set to 2 to verify in the HTTPS proxy's certificate name fields against the proxy name.
+ * When set to 0 the connection succeeds regardless of the names used in the certificate.
+ * Use that ability with caution!
+ * 1 treated as a debug option in curl 7.28.0 and earlier.
+ * From curl 7.28.1 to 7.65.3 CURLE_BAD_FUNCTION_ARGUMENT is returned.
+ * From curl 7.66.0 onwards 1 and 2 is treated as the same value.
+ * In production environments the value of this option should be kept at 2 (default value).
+ *
+ *
+ * Available since PHP 7.3.0 and libcurl &gt;= cURL 7.52.0.
+ *
+ *
+ *
+ * CURLOPT_PROXY_SSLVERSION
+ *
+ * One of CURL_SSLVERSION_DEFAULT,
+ * CURL_SSLVERSION_TLSv1,
+ * CURL_SSLVERSION_TLSv1_0,
+ * CURL_SSLVERSION_TLSv1_1,
+ * CURL_SSLVERSION_TLSv1_2,
+ * CURL_SSLVERSION_TLSv1_3,
+ * CURL_SSLVERSION_MAX_DEFAULT,
+ * CURL_SSLVERSION_MAX_TLSv1_0,
+ * CURL_SSLVERSION_MAX_TLSv1_1,
+ * CURL_SSLVERSION_MAX_TLSv1_2,
+ * CURL_SSLVERSION_MAX_TLSv1_3 or
+ * CURL_SSLVERSION_SSLv3.
+ *
+ *
+ * Your best bet is to not set this and let it use the default CURL_SSLVERSION_DEFAULT
+ * which will attempt to figure out the remote SSL protocol version.
+ *
+ *
+ *
+ *
+ * Available since PHP 7.3.0 and libcurl &gt;= cURL 7.52.0.
+ *
+ *
+ *
+ * CURLOPT_STREAM_WEIGHT
+ *
+ * Set the numerical stream weight (a number between 1 and 256).
+ *
+ *
+ * Added in cURL 7.46.0. Available since PHP 7.0.7.
+ *
+ *
+ *
+ * CURLOPT_TCP_KEEPALIVE
+ *
+ * If set to 1, TCP keepalive probes will be sent. The delay and
+ * frequency of these probes can be controlled by the CURLOPT_TCP_KEEPIDLE
+ * and CURLOPT_TCP_KEEPINTVL options, provided the operating system
+ * supports them. If set to 0 (default) keepalive probes are disabled.
+ *
+ *
+ * Added in cURL 7.25.0. Available since PHP 5.5.0.
+ *
+ *
+ *
+ * CURLOPT_TCP_KEEPIDLE
+ *
+ * Sets the delay, in seconds, that the operating system will wait while the connection is
+ * idle before sending keepalive probes, if CURLOPT_TCP_KEEPALIVE is
+ * enabled. Not all operating systems support this option.
+ * The default is 60.
+ *
+ *
+ * Added in cURL 7.25.0. Available since PHP 5.5.0.
+ *
+ *
+ *
+ * CURLOPT_TCP_KEEPINTVL
+ *
+ * Sets the interval, in seconds, that the operating system will wait between sending
+ * keepalive probes, if CURLOPT_TCP_KEEPALIVE is enabled.
+ * Not all operating systems support this option.
+ * The default is 60.
+ *
+ *
+ * Added in cURL 7.25.0. Available since PHP 5.5.0.
+ *
+ *
+ *
+ * CURLOPT_TIMECONDITION
+ *
+ * How CURLOPT_TIMEVALUE is treated.
+ * Use CURL_TIMECOND_IFMODSINCE to return the
+ * page only if it has been modified since the time specified in
+ * CURLOPT_TIMEVALUE. If it hasn't been modified,
+ * a "304 Not Modified" header will be returned
+ * assuming CURLOPT_HEADER is TRUE.
+ * Use CURL_TIMECOND_IFUNMODSINCE for the reverse
+ * effect. CURL_TIMECOND_IFMODSINCE is the
+ * default.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_TIMEOUT
+ *
+ * The maximum number of seconds to allow cURL functions to execute.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_TIMEOUT_MS
+ *
+ * The maximum number of milliseconds to allow cURL functions to
+ * execute.
+ *
+ * If libcurl is built to use the standard system name resolver, that
+ * portion of the connect will still use full-second resolution for
+ * timeouts with a minimum timeout allowed of one second.
+ *
+ *
+ * Added in cURL 7.16.2. Available since PHP 5.2.3.
+ *
+ *
+ *
+ * CURLOPT_TIMEVALUE
+ *
+ * The time in seconds since January 1st, 1970. The time will be used
+ * by CURLOPT_TIMECONDITION. By default,
+ * CURL_TIMECOND_IFMODSINCE is used.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_TIMEVALUE_LARGE
+ *
+ * The time in seconds since January 1st, 1970. The time will be used
+ * by CURLOPT_TIMECONDITION. Defaults to zero.
+ * The difference between this option and CURLOPT_TIMEVALUE
+ * is the type of the argument. On systems where 'long' is only 32 bit wide,
+ * this option has to be used to set dates beyond the year 2038.
+ *
+ *
+ * Added in cURL 7.59.0. Available since PHP 7.3.0.
+ *
+ *
+ *
+ * CURLOPT_MAX_RECV_SPEED_LARGE
+ *
+ * If a download exceeds this speed (counted in bytes per second) on
+ * cumulative average during the transfer, the transfer will pause to
+ * keep the average rate less than or equal to the parameter value.
+ * Defaults to unlimited speed.
+ *
+ *
+ * Added in cURL 7.15.5. Available since PHP 5.4.0.
+ *
+ *
+ *
+ * CURLOPT_MAX_SEND_SPEED_LARGE
+ *
+ * If an upload exceeds this speed (counted in bytes per second) on
+ * cumulative average during the transfer, the transfer will pause to
+ * keep the average rate less than or equal to the parameter value.
+ * Defaults to unlimited speed.
+ *
+ *
+ * Added in cURL 7.15.5. Available since PHP 5.4.0.
+ *
+ *
+ *
+ * CURLOPT_SSH_AUTH_TYPES
+ *
+ * A bitmask consisting of one or more of
+ * CURLSSH_AUTH_PUBLICKEY,
+ * CURLSSH_AUTH_PASSWORD,
+ * CURLSSH_AUTH_HOST,
+ * CURLSSH_AUTH_KEYBOARD. Set to
+ * CURLSSH_AUTH_ANY to let libcurl pick one.
+ *
+ *
+ * Added in cURL 7.16.1.
+ *
+ *
+ *
+ * CURLOPT_IPRESOLVE
+ *
+ * Allows an application to select what kind of IP addresses to use when
+ * resolving host names. This is only interesting when using host names that
+ * resolve addresses using more than one version of IP, possible values are
+ * CURL_IPRESOLVE_WHATEVER,
+ * CURL_IPRESOLVE_V4,
+ * CURL_IPRESOLVE_V6, by default
+ * CURL_IPRESOLVE_WHATEVER.
+ *
+ *
+ * Added in cURL 7.10.8.
+ *
+ *
+ *
+ * CURLOPT_FTP_FILEMETHOD
+ *
+ * Tell curl which method to use to reach a file on a FTP(S) server. Possible values are
+ * CURLFTPMETHOD_MULTICWD,
+ * CURLFTPMETHOD_NOCWD and
+ * CURLFTPMETHOD_SINGLECWD.
+ *
+ *
+ * Added in cURL 7.15.1. Available since PHP 5.3.0.
+ *
+ *
+ *
+ *
+ *
+ *
+ * This option is deprecated, as it was never implemented in cURL and
+ * never had any effect.
+ *
+ * The HTTP authentication method(s) to use. The options are:
+ * CURLAUTH_BASIC,
+ * CURLAUTH_DIGEST,
+ * CURLAUTH_GSSNEGOTIATE,
+ * CURLAUTH_NTLM,
+ * CURLAUTH_ANY, and
+ * CURLAUTH_ANYSAFE.
+ *
+ * The bitwise | (or) operator can be used to combine
+ * more than one method. If this is done, cURL will poll the server to see
+ * what methods it supports and pick the best one.
+ *
+ * CURLAUTH_ANY is an alias for
+ * CURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.
+ *
+ * CURLAUTH_ANYSAFE is an alias for
+ * CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.
+ *
+ * Bitmask of CURLPROTO_* values. If used, this bitmask
+ * limits what protocols libcurl may use in the transfer. This allows you to have
+ * a libcurl built to support a wide range of protocols but still limit specific
+ * transfers to only be allowed to use a subset of them. By default libcurl will
+ * accept all protocols it supports.
+ * See also CURLOPT_REDIR_PROTOCOLS.
+ *
+ * Valid protocol options are:
+ * CURLPROTO_HTTP,
+ * CURLPROTO_HTTPS,
+ * CURLPROTO_FTP,
+ * CURLPROTO_FTPS,
+ * CURLPROTO_SCP,
+ * CURLPROTO_SFTP,
+ * CURLPROTO_TELNET,
+ * CURLPROTO_LDAP,
+ * CURLPROTO_LDAPS,
+ * CURLPROTO_DICT,
+ * CURLPROTO_FILE,
+ * CURLPROTO_TFTP,
+ * CURLPROTO_ALL
+ *
+ * The SOCKS5 authentication method(s) to use. The options are:
+ * CURLAUTH_BASIC,
+ * CURLAUTH_GSSAPI,
+ * CURLAUTH_NONE.
+ *
+ * The bitwise | (or) operator can be used to combine
+ * more than one method. If this is done, cURL will poll the server to see
+ * what methods it supports and pick the best one.
+ *
+ * CURLAUTH_BASIC allows username/password authentication.
+ *
+ * CURLAUTH_GSSAPI allows GSS-API authentication.
+ *
+ * CURLAUTH_NONE allows no authentication.
+ *
+ * Defaults to CURLAUTH_BASIC|CURLAUTH_GSSAPI.
+ * Set the actual username and password with the CURLOPT_PROXYUSERPWD option.
+ *
+ * Your best bet is to not set this and let it use the default.
+ * Setting it to 2 or 3 is very dangerous given the known
+ * vulnerabilities in SSLv2 and SSLv3.
+ *
+ * Your best bet is to not set this and let it use the default CURL_SSLVERSION_DEFAULT
+ * which will attempt to figure out the remote SSL protocol version.
+ *
+ * value should be a string for the
+ * following values of the option parameter:
+ *
+ *
+ *
+ *
+ * Option
+ * Set value to
+ * Notes
+ *
+ *
+ *
+ *
+ * CURLOPT_ABSTRACT_UNIX_SOCKET
+ *
+ * Enables the use of an abstract Unix domain socket instead of
+ * establishing a TCP connection to a host and sets the path to
+ * the given string. This option shares the same semantics
+ * as CURLOPT_UNIX_SOCKET_PATH. These two options
+ * share the same storage and therefore only one of them can be set
+ * per handle.
+ *
+ *
+ * Available since PHP 7.3.0 and cURL 7.53.0
+ *
+ *
+ *
+ * CURLOPT_CAINFO
+ *
+ * The name of a file holding one or more certificates to verify the
+ * peer with. This only makes sense when used in combination with
+ * CURLOPT_SSL_VERIFYPEER.
+ *
+ *
+ * Might require an absolute path.
+ *
+ *
+ *
+ * CURLOPT_CAPATH
+ *
+ * A directory that holds multiple CA certificates. Use this option
+ * alongside CURLOPT_SSL_VERIFYPEER.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_COOKIE
+ *
+ * The contents of the "Cookie: " header to be
+ * used in the HTTP request.
+ * Note that multiple cookies are separated with a semicolon followed
+ * by a space (e.g., "fruit=apple; colour=red")
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_COOKIEFILE
+ *
+ * The name of the file containing the cookie data. The cookie file can
+ * be in Netscape format, or just plain HTTP-style headers dumped into
+ * a file.
+ * If the name is an empty string, no cookies are loaded, but cookie
+ * handling is still enabled.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_COOKIEJAR
+ *
+ * The name of a file to save all internal cookies to when the handle is closed,
+ * e.g. after a call to curl_close.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_COOKIELIST
+ *
+ * A cookie string (i.e. a single line in Netscape/Mozilla format, or a regular
+ * HTTP-style Set-Cookie header) adds that single cookie to the internal cookie store.
+ * "ALL" erases all cookies held in memory.
+ * "SESS" erases all session cookies held in memory.
+ * "FLUSH" writes all known cookies to the file specified by CURLOPT_COOKIEJAR.
+ * "RELOAD" loads all cookies from the files specified by CURLOPT_COOKIEFILE.
+ *
+ *
+ * Available since PHP 5.5.0 and cURL 7.14.1.
+ *
+ *
+ *
+ * CURLOPT_CUSTOMREQUEST
+ *
+ * A custom request method to use instead of
+ * "GET" or "HEAD" when doing
+ * a HTTP request. This is useful for doing
+ * "DELETE" or other, more obscure HTTP requests.
+ * Valid values are things like "GET",
+ * "POST", "CONNECT" and so on;
+ * i.e. Do not enter a whole HTTP request line here. For instance,
+ * entering "GET /index.html HTTP/1.0\r\n\r\n"
+ * would be incorrect.
+ *
+ *
+ * Don't do this without making sure the server supports the custom
+ * request method first.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_DEFAULT_PROTOCOL
+ *
+ * The default protocol to use if the URL is missing a scheme name.
+ *
+ *
+ * Added in cURL 7.45.0. Available since PHP 7.0.7.
+ *
+ *
+ *
+ * CURLOPT_DNS_INTERFACE
+ *
+ * Set the name of the network interface that the DNS resolver should bind to.
+ * This must be an interface name (not an address).
+ *
+ *
+ * Added in cURL 7.33.0. Available since PHP 7.0.7.
+ *
+ *
+ *
+ * CURLOPT_DNS_LOCAL_IP4
+ *
+ * Set the local IPv4 address that the resolver should bind to. The argument
+ * should contain a single numerical IPv4 address as a string.
+ *
+ *
+ * Added in cURL 7.33.0. Available since PHP 7.0.7.
+ *
+ *
+ *
+ * CURLOPT_DNS_LOCAL_IP6
+ *
+ * Set the local IPv6 address that the resolver should bind to. The argument
+ * should contain a single numerical IPv6 address as a string.
+ *
+ *
+ * Added in cURL 7.33.0. Available since PHP 7.0.7.
+ *
+ *
+ *
+ * CURLOPT_EGDSOCKET
+ *
+ * Like CURLOPT_RANDOM_FILE, except a filename
+ * to an Entropy Gathering Daemon socket.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_ENCODING
+ *
+ * The contents of the "Accept-Encoding: " header.
+ * This enables decoding of the response. Supported encodings are
+ * "identity", "deflate", and
+ * "gzip". If an empty string, "",
+ * is set, a header containing all supported encoding types is sent.
+ *
+ *
+ * Added in cURL 7.10.
+ *
+ *
+ *
+ * CURLOPT_FTPPORT
+ *
+ * The value which will be used to get the IP address to use
+ * for the FTP "PORT" instruction. The "PORT" instruction tells
+ * the remote server to connect to our specified IP address. The
+ * string may be a plain IP address, a hostname, a network
+ * interface name (under Unix), or just a plain '-' to use the
+ * systems default IP address.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_INTERFACE
+ *
+ * The name of the outgoing network interface to use. This can be an
+ * interface name, an IP address or a host name.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_KEYPASSWD
+ *
+ * The password required to use the CURLOPT_SSLKEY
+ * or CURLOPT_SSH_PRIVATE_KEYFILE private key.
+ *
+ *
+ * Added in cURL 7.16.1.
+ *
+ *
+ *
+ * CURLOPT_KRB4LEVEL
+ *
+ * The KRB4 (Kerberos 4) security level. Any of the following values
+ * (in order from least to most powerful) are valid:
+ * "clear",
+ * "safe",
+ * "confidential",
+ * "private"..
+ * If the string does not match one of these,
+ * "private" is used. Setting this option to NULL
+ * will disable KRB4 security. Currently KRB4 security only works
+ * with FTP transactions.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_LOGIN_OPTIONS
+ *
+ * Can be used to set protocol specific login options, such as the
+ * preferred authentication mechanism via "AUTH=NTLM" or "AUTH=*",
+ * and should be used in conjunction with the
+ * CURLOPT_USERNAME option.
+ *
+ *
+ * Added in cURL 7.34.0. Available since PHP 7.0.7.
+ *
+ *
+ *
+ * CURLOPT_PINNEDPUBLICKEY
+ *
+ * Set the pinned public key.
+ * The string can be the file name of your pinned public key. The file
+ * format expected is "PEM" or "DER". The string can also be any
+ * number of base64 encoded sha256 hashes preceded by "sha256//" and
+ * separated by ";".
+ *
+ *
+ * Added in cURL 7.39.0. Available since PHP 7.0.7.
+ *
+ *
+ *
+ * CURLOPT_POSTFIELDS
+ *
+ *
+ * The full data to post in a HTTP "POST" operation.
+ * To post a file, prepend a filename with @ and
+ * use the full path. The filetype can be explicitly specified by
+ * following the filename with the type in the format
+ * ';type=mimetype'. This parameter can either be
+ * passed as a urlencoded string like 'para1=val1&amp;para2=val2&amp;...'
+ * or as an array with the field name as key and field data as value.
+ * If value is an array, the
+ * Content-Type header will be set to
+ * multipart/form-data.
+ *
+ *
+ * As of PHP 5.2.0, value must be an array if
+ * files are passed to this option with the @ prefix.
+ *
+ *
+ * As of PHP 5.5.0, the @ prefix is deprecated and
+ * files can be sent using CURLFile. The
+ * @ prefix can be disabled for safe passing of
+ * values beginning with @ by setting the
+ * CURLOPT_SAFE_UPLOAD option to TRUE.
+ *
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_PRIVATE
+ *
+ * Any data that should be associated with this cURL handle. This data
+ * can subsequently be retrieved with the
+ * CURLINFO_PRIVATE option of
+ * curl_getinfo. cURL does nothing with this data.
+ * When using a cURL multi handle, this private data is typically a
+ * unique key to identify a standard cURL handle.
+ *
+ *
+ * Added in cURL 7.10.3.
+ *
+ *
+ *
+ * CURLOPT_PRE_PROXY
+ *
+ * Set a string holding the host name or dotted numerical
+ * IP address to be used as the preproxy that curl connects to before
+ * it connects to the HTTP(S) proxy specified in the
+ * CURLOPT_PROXY option for the upcoming request.
+ * The preproxy can only be a SOCKS proxy and it should be prefixed with
+ * [scheme]:// to specify which kind of socks is used.
+ * A numerical IPv6 address must be written within [brackets].
+ * Setting the preproxy to an empty string explicitly disables the use of a preproxy.
+ * To specify port number in this string, append :[port]
+ * to the end of the host name. The proxy's port number may optionally be
+ * specified with the separate option CURLOPT_PROXYPORT.
+ * Defaults to using port 1080 for proxies if a port is not specified.
+ *
+ *
+ * Available since PHP 7.3.0 and libcurl &gt;= cURL 7.52.0.
+ *
+ *
+ *
+ * CURLOPT_PROXY
+ *
+ * The HTTP proxy to tunnel requests through.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_PROXY_SERVICE_NAME
+ *
+ * The proxy authentication service name.
+ *
+ *
+ * Added in cURL 7.34.0. Available since PHP 7.0.7.
+ *
+ *
+ *
+ * CURLOPT_PROXY_CAINFO
+ *
+ * The path to proxy Certificate Authority (CA) bundle. Set the path as a
+ * string naming a file holding one or more certificates to
+ * verify the HTTPS proxy with.
+ * This option is for connecting to an HTTPS proxy, not an HTTPS server.
+ * Defaults set to the system path where libcurl's cacert bundle is assumed
+ * to be stored.
+ *
+ *
+ * Available since PHP 7.3.0 and libcurl &gt;= cURL 7.52.0.
+ *
+ *
+ *
+ * CURLOPT_PROXY_CAPATH
+ *
+ * The directory holding multiple CA certificates to verify the HTTPS proxy with.
+ *
+ *
+ * Available since PHP 7.3.0 and libcurl &gt;= cURL 7.52.0.
+ *
+ *
+ *
+ * CURLOPT_PROXY_CRLFILE
+ *
+ * Set the file name with the concatenation of CRL (Certificate Revocation List)
+ * in PEM format to use in the certificate validation that occurs during
+ * the SSL exchange.
+ *
+ *
+ * Available since PHP 7.3.0 and libcurl &gt;= cURL 7.52.0.
+ *
+ *
+ *
+ * CURLOPT_PROXY_KEYPASSWD
+ *
+ * Set the string be used as the password required to use the
+ * CURLOPT_PROXY_SSLKEY private key. You never needed a
+ * passphrase to load a certificate but you need one to load your private key.
+ * This option is for connecting to an HTTPS proxy, not an HTTPS server.
+ *
+ *
+ * Available since PHP 7.3.0 and libcurl &gt;= cURL 7.52.0.
+ *
+ *
+ *
+ * CURLOPT_PROXY_PINNEDPUBLICKEY
+ *
+ * Set the pinned public key for HTTPS proxy. The string can be the file name
+ * of your pinned public key. The file format expected is "PEM" or "DER".
+ * The string can also be any number of base64 encoded sha256 hashes preceded by
+ * "sha256//" and separated by ";"
+ *
+ *
+ * Available since PHP 7.3.0 and libcurl &gt;= cURL 7.52.0.
+ *
+ *
+ *
+ * CURLOPT_PROXY_SSLCERT
+ *
+ * The file name of your client certificate used to connect to the HTTPS proxy.
+ * The default format is "P12" on Secure Transport and "PEM" on other engines,
+ * and can be changed with CURLOPT_PROXY_SSLCERTTYPE.
+ * With NSS or Secure Transport, this can also be the nickname of the certificate
+ * you wish to authenticate with as it is named in the security database.
+ * If you want to use a file from the current directory, please precede it with
+ * "./" prefix, in order to avoid confusion with a nickname.
+ *
+ *
+ * Available since PHP 7.3.0 and libcurl &gt;= cURL 7.52.0.
+ *
+ *
+ *
+ * CURLOPT_PROXY_SSLCERTTYPE
+ *
+ * The format of your client certificate used when connecting to an HTTPS proxy.
+ * Supported formats are "PEM" and "DER", except with Secure Transport.
+ * OpenSSL (versions 0.9.3 and later) and Secure Transport
+ * (on iOS 5 or later, or OS X 10.7 or later) also support "P12" for
+ * PKCS#12-encoded files. Defaults to "PEM".
+ *
+ *
+ * Available since PHP 7.3.0 and libcurl &gt;= cURL 7.52.0.
+ *
+ *
+ *
+ * CURLOPT_PROXY_SSL_CIPHER_LIST
+ *
+ * The list of ciphers to use for the connection to the HTTPS proxy.
+ * The list must be syntactically correct, it consists of one or more cipher
+ * strings separated by colons. Commas or spaces are also acceptable separators
+ * but colons are normally used, !, - and + can be used as operators.
+ *
+ *
+ * Available since PHP 7.3.0 and libcurl &gt;= cURL 7.52.0.
+ *
+ *
+ *
+ * CURLOPT_PROXY_TLS13_CIPHERS
+ *
+ * The list of cipher suites to use for the TLS 1.3 connection to a proxy.
+ * The list must be syntactically correct, it consists of one or more
+ * cipher suite strings separated by colons. This option is currently used
+ * only when curl is built to use OpenSSL 1.1.1 or later.
+ * If you are using a different SSL backend you can try setting
+ * TLS 1.3 cipher suites by using the CURLOPT_PROXY_SSL_CIPHER_LIST option.
+ *
+ *
+ * Available since PHP 7.3.0 and libcurl &gt;= cURL 7.61.0. Available when built with OpenSSL &gt;= 1.1.1.
+ *
+ *
+ *
+ * CURLOPT_PROXY_SSLKEY
+ *
+ * The file name of your private key used for connecting to the HTTPS proxy.
+ * The default format is "PEM" and can be changed with
+ * CURLOPT_PROXY_SSLKEYTYPE.
+ * (iOS and Mac OS X only) This option is ignored if curl was built against Secure Transport.
+ *
+ *
+ * Available since PHP 7.3.0 and libcurl &gt;= cURL 7.52.0. Available if built TLS enabled.
+ *
+ *
+ *
+ * CURLOPT_PROXY_SSLKEYTYPE
+ *
+ * The format of your private key. Supported formats are "PEM", "DER" and "ENG".
+ *
+ *
+ * Available since PHP 7.3.0 and libcurl &gt;= cURL 7.52.0.
+ *
+ *
+ *
+ * CURLOPT_PROXY_TLSAUTH_PASSWORD
+ *
+ * The password to use for the TLS authentication method specified with the
+ * CURLOPT_PROXY_TLSAUTH_TYPE option. Requires that the
+ * CURLOPT_PROXY_TLSAUTH_USERNAME option to also be set.
+ *
+ *
+ * Available since PHP 7.3.0 and libcurl &gt;= cURL 7.52.0.
+ *
+ *
+ *
+ * CURLOPT_PROXY_TLSAUTH_TYPE
+ *
+ * The method of the TLS authentication used for the HTTPS connection. Supported method is "SRP".
+ *
+ *
+ * Secure Remote Password (SRP) authentication for TLS provides mutual authentication
+ * if both sides have a shared secret. To use TLS-SRP, you must also set the
+ * CURLOPT_PROXY_TLSAUTH_USERNAME and
+ * CURLOPT_PROXY_TLSAUTH_PASSWORD options.
+ *
+ *
+ *
+ *
+ * Available since PHP 7.3.0 and libcurl &gt;= cURL 7.52.0.
+ *
+ *
+ *
+ * CURLOPT_PROXY_TLSAUTH_USERNAME
+ *
+ * Tusername to use for the HTTPS proxy TLS authentication method specified with the
+ * CURLOPT_PROXY_TLSAUTH_TYPE option. Requires that the
+ * CURLOPT_PROXY_TLSAUTH_PASSWORD option to also be set.
+ *
+ *
+ * Available since PHP 7.3.0 and libcurl &gt;= cURL 7.52.0.
+ *
+ *
+ *
+ * CURLOPT_PROXYUSERPWD
+ *
+ * A username and password formatted as
+ * "[username]:[password]" to use for the
+ * connection to the proxy.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_RANDOM_FILE
+ *
+ * A filename to be used to seed the random number generator for SSL.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_RANGE
+ *
+ * Range(s) of data to retrieve in the format
+ * "X-Y" where X or Y are optional. HTTP transfers
+ * also support several intervals, separated with commas in the format
+ * "X-Y,N-M".
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_REFERER
+ *
+ * The contents of the "Referer: " header to be used
+ * in a HTTP request.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_SERVICE_NAME
+ *
+ * The authentication service name.
+ *
+ *
+ * Added in cURL 7.43.0. Available since PHP 7.0.7.
+ *
+ *
+ *
+ * CURLOPT_SSH_HOST_PUBLIC_KEY_MD5
+ *
+ * A string containing 32 hexadecimal digits. The string should be the
+ * MD5 checksum of the remote host's public key, and libcurl will reject
+ * the connection to the host unless the md5sums match.
+ * This option is only for SCP and SFTP transfers.
+ *
+ *
+ * Added in cURL 7.17.1.
+ *
+ *
+ *
+ * CURLOPT_SSH_PUBLIC_KEYFILE
+ *
+ * The file name for your public key. If not used, libcurl defaults to
+ * $HOME/.ssh/id_dsa.pub if the HOME environment variable is set,
+ * and just "id_dsa.pub" in the current directory if HOME is not set.
+ *
+ *
+ * Added in cURL 7.16.1.
+ *
+ *
+ *
+ * CURLOPT_SSH_PRIVATE_KEYFILE
+ *
+ * The file name for your private key. If not used, libcurl defaults to
+ * $HOME/.ssh/id_dsa if the HOME environment variable is set,
+ * and just "id_dsa" in the current directory if HOME is not set.
+ * If the file is password-protected, set the password with
+ * CURLOPT_KEYPASSWD.
+ *
+ *
+ * Added in cURL 7.16.1.
+ *
+ *
+ *
+ * CURLOPT_SSL_CIPHER_LIST
+ *
+ * A list of ciphers to use for SSL. For example,
+ * RC4-SHA and TLSv1 are valid
+ * cipher lists.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_SSLCERT
+ *
+ * The name of a file containing a PEM formatted certificate.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_SSLCERTPASSWD
+ *
+ * The password required to use the
+ * CURLOPT_SSLCERT certificate.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_SSLCERTTYPE
+ *
+ * The format of the certificate. Supported formats are
+ * "PEM" (default), "DER",
+ * and "ENG".
+ * As of OpenSSL 0.9.3, "P12" (for PKCS#12-encoded files)
+ * is also supported.
+ *
+ *
+ * Added in cURL 7.9.3.
+ *
+ *
+ *
+ * CURLOPT_SSLENGINE
+ *
+ * The identifier for the crypto engine of the private SSL key
+ * specified in CURLOPT_SSLKEY.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_SSLENGINE_DEFAULT
+ *
+ * The identifier for the crypto engine used for asymmetric crypto
+ * operations.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_SSLKEY
+ *
+ * The name of a file containing a private SSL key.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_SSLKEYPASSWD
+ *
+ * The secret password needed to use the private SSL key specified in
+ * CURLOPT_SSLKEY.
+ *
+ *
+ * Since this option contains a sensitive password, remember to keep
+ * the PHP script it is contained within safe.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_SSLKEYTYPE
+ *
+ * The key type of the private SSL key specified in
+ * CURLOPT_SSLKEY. Supported key types are
+ * "PEM" (default), "DER",
+ * and "ENG".
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_TLS13_CIPHERS
+ *
+ * The list of cipher suites to use for the TLS 1.3 connection. The list must be
+ * syntactically correct, it consists of one or more cipher suite strings separated by colons.
+ * This option is currently used only when curl is built to use OpenSSL 1.1.1 or later.
+ * If you are using a different SSL backend you can try setting
+ * TLS 1.3 cipher suites by using the CURLOPT_SSL_CIPHER_LIST option.
+ *
+ *
+ * Available since PHP 7.3.0 and libcurl &gt;= cURL 7.61.0. Available when built with OpenSSL &gt;= 1.1.1.
+ *
+ *
+ *
+ * CURLOPT_UNIX_SOCKET_PATH
+ *
+ * Enables the use of Unix domain sockets as connection endpoint and
+ * sets the path to the given string.
+ *
+ *
+ * Added in cURL 7.40.0. Available since PHP 7.0.7.
+ *
+ *
+ *
+ * CURLOPT_URL
+ *
+ * The URL to fetch. This can also be set when initializing a
+ * session with curl_init.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_USERAGENT
+ *
+ * The contents of the "User-Agent: " header to be
+ * used in a HTTP request.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_USERNAME
+ *
+ * The user name to use in authentication.
+ *
+ *
+ * Added in cURL 7.19.1. Available since PHP 5.5.0.
+ *
+ *
+ *
+ * CURLOPT_USERPWD
+ *
+ * A username and password formatted as
+ * "[username]:[password]" to use for the
+ * connection.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_XOAUTH2_BEARER
+ *
+ * Specifies the OAuth 2.0 access token.
+ *
+ *
+ * Added in cURL 7.33.0. Available since PHP 7.0.7.
+ *
+ *
+ *
+ *
+ *
+ *
+ * A custom request method to use instead of
+ * "GET" or "HEAD" when doing
+ * a HTTP request. This is useful for doing
+ * "DELETE" or other, more obscure HTTP requests.
+ * Valid values are things like "GET",
+ * "POST", "CONNECT" and so on;
+ * i.e. Do not enter a whole HTTP request line here. For instance,
+ * entering "GET /index.html HTTP/1.0\r\n\r\n"
+ * would be incorrect.
+ *
+ *
+ * Don't do this without making sure the server supports the custom
+ * request method first.
+ *
+ *
+ *
+ * Don't do this without making sure the server supports the custom
+ * request method first.
+ *
+ * The default protocol to use if the URL is missing a scheme name.
+ *
+ * Set the name of the network interface that the DNS resolver should bind to.
+ * This must be an interface name (not an address).
+ *
+ * Set the local IPv4 address that the resolver should bind to. The argument
+ * should contain a single numerical IPv4 address as a string.
+ *
+ * Set the local IPv6 address that the resolver should bind to. The argument
+ * should contain a single numerical IPv6 address as a string.
+ *
+ * Secure Remote Password (SRP) authentication for TLS provides mutual authentication
+ * if both sides have a shared secret. To use TLS-SRP, you must also set the
+ * CURLOPT_PROXY_TLSAUTH_USERNAME and
+ * CURLOPT_PROXY_TLSAUTH_PASSWORD options.
+ *
+ * The secret password needed to use the private SSL key specified in
+ * CURLOPT_SSLKEY.
+ *
+ *
+ * Since this option contains a sensitive password, remember to keep
+ * the PHP script it is contained within safe.
+ *
+ *
+ *
+ * Since this option contains a sensitive password, remember to keep
+ * the PHP script it is contained within safe.
+ *
+ * value should be an array for the
+ * following values of the option parameter:
+ *
+ *
+ *
+ *
+ * Option
+ * Set value to
+ * Notes
+ *
+ *
+ *
+ *
+ * CURLOPT_CONNECT_TO
+ *
+ * Connect to a specific host and port instead of the URL's host and port.
+ * Accepts an array of strings with the format
+ * HOST:PORT:CONNECT-TO-HOST:CONNECT-TO-PORT.
+ *
+ *
+ * Added in cURL 7.49.0. Available since PHP 7.0.7.
+ *
+ *
+ *
+ * CURLOPT_HTTP200ALIASES
+ *
+ * An array of HTTP 200 responses that will be treated as valid
+ * responses and not as errors.
+ *
+ *
+ * Added in cURL 7.10.3.
+ *
+ *
+ *
+ * CURLOPT_HTTPHEADER
+ *
+ * An array of HTTP header fields to set, in the format
+ *
+ * array('Content-type: text/plain', 'Content-length: 100')
+ *
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_POSTQUOTE
+ *
+ * An array of FTP commands to execute on the server after the FTP
+ * request has been performed.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_PROXYHEADER
+ *
+ * An array of custom HTTP headers to pass to proxies.
+ *
+ *
+ * Added in cURL 7.37.0. Available since PHP 7.0.7.
+ *
+ *
+ *
+ * CURLOPT_QUOTE
+ *
+ * An array of FTP commands to execute on the server prior to the FTP
+ * request.
+ *
+ *
+ *
+ *
+ *
+ * CURLOPT_RESOLVE
+ *
+ * Provide a custom address for a specific host and port pair. An array
+ * of hostname, port, and IP address strings, each element separated by
+ * a colon. In the format:
+ *
+ * array("example.com:80:127.0.0.1")
+ *
+ *
+ *
+ * Added in cURL 7.21.3. Available since PHP 5.5.0.
+ *
+ *
+ *
+ *
+ *
+ *
+ * value should be a stream resource (using
+ * fopen, for example) for the following values of the
+ * option parameter:
+ *
+ *
+ *
+ *
+ * Option
+ * Set value to
+ *
+ *
+ *
+ *
+ * CURLOPT_FILE
+ *
+ * The file that the transfer should be written to. The default
+ * is STDOUT (the browser window).
+ *
+ *
+ *
+ * CURLOPT_INFILE
+ *
+ * The file that the transfer should be read from when uploading.
+ *
+ *
+ *
+ * CURLOPT_STDERR
+ *
+ * An alternative location to output errors to instead of
+ * STDERR.
+ *
+ *
+ *
+ * CURLOPT_WRITEHEADER
+ *
+ * The file that the header part of the transfer is written to.
+ *
+ *
+ *
+ *
+ *
+ *
+ * value should be the name of a valid function or a Closure
+ * for the following values of the option parameter:
+ *
+ *
+ *
+ *
+ * Option
+ * Set value to
+ *
+ *
+ *
+ *
+ * CURLOPT_HEADERFUNCTION
+ *
+ * A callback accepting two parameters.
+ * The first is the cURL resource, the second is a
+ * string with the header data to be written. The header data must
+ * be written by this callback. Return the number of
+ * bytes written.
+ *
+ *
+ *
+ * CURLOPT_PASSWDFUNCTION
+ *
+ * A callback accepting three parameters.
+ * The first is the cURL resource, the second is a
+ * string containing a password prompt, and the third is the maximum
+ * password length. Return the string containing the password.
+ *
+ *
+ *
+ * CURLOPT_PROGRESSFUNCTION
+ *
+ *
+ * A callback accepting five parameters.
+ * The first is the cURL resource, the second is the total number of
+ * bytes expected to be downloaded in this transfer, the third is
+ * the number of bytes downloaded so far, the fourth is the total
+ * number of bytes expected to be uploaded in this transfer, and the
+ * fifth is the number of bytes uploaded so far.
+ *
+ *
+ *
+ * The callback is only called when the CURLOPT_NOPROGRESS
+ * option is set to FALSE.
+ *
+ *
+ *
+ * Return a non-zero value to abort the transfer. In which case, the
+ * transfer will set a CURLE_ABORTED_BY_CALLBACK
+ * error.
+ *
+ *
+ *
+ *
+ * CURLOPT_READFUNCTION
+ *
+ * A callback accepting three parameters.
+ * The first is the cURL resource, the second is a
+ * stream resource provided to cURL through the option
+ * CURLOPT_INFILE, and the third is the maximum
+ * amount of data to be read. The callback must return a string
+ * with a length equal or smaller than the amount of data requested,
+ * typically by reading it from the passed stream resource. It should
+ * return an empty string to signal EOF.
+ *
+ *
+ *
+ * CURLOPT_WRITEFUNCTION
+ *
+ * A callback accepting two parameters.
+ * The first is the cURL resource, and the second is a
+ * string with the data to be written. The data must be saved by
+ * this callback. It must return the exact number of bytes written
+ * or the transfer will be aborted with an error.
+ *
+ *
+ *
+ *
+ *
+ *
+ * A callback accepting five parameters.
+ * The first is the cURL resource, the second is the total number of
+ * bytes expected to be downloaded in this transfer, the third is
+ * the number of bytes downloaded so far, the fourth is the total
+ * number of bytes expected to be uploaded in this transfer, and the
+ * fifth is the number of bytes uploaded so far.
+ *
+ * The callback is only called when the CURLOPT_NOPROGRESS
+ * option is set to FALSE.
+ *
+ * Return a non-zero value to abort the transfer. In which case, the
+ * transfer will set a CURLE_ABORTED_BY_CALLBACK
+ * error.
+ *
+ * Other values:
+ *
+ *
+ *
+ *
+ * Option
+ * Set value to
+ *
+ *
+ *
+ *
+ * CURLOPT_SHARE
+ *
+ * A result of curl_share_init. Makes the cURL
+ * handle to use the data from the shared handle.
+ *
+ *
+ *
+ *
+ *
+ * @throws CurlException
+ *
+ */
+function curl_setopt($ch, int $option, $value): void
+{
+ error_clear_last();
+ $result = \curl_setopt($ch, $option, $value);
+ if ($result === false) {
+ throw CurlException::createFromCurlResource($ch);
+ }
+}
+
+
+/**
+ * Return an integer containing the last share curl error number.
+ *
+ * @param resource $sh A cURL share handle returned by curl_share_init.
+ * @return int Returns an integer containing the last share curl error number.
+ * @throws CurlException
+ *
+ */
+function curl_share_errno($sh): int
+{
+ error_clear_last();
+ $result = \curl_share_errno($sh);
+ if ($result === false) {
+ throw CurlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Sets an option on the given cURL share handle.
+ *
+ * @param resource $sh A cURL share handle returned by curl_share_init.
+ * @param int $option
+ *
+ *
+ *
+ * Option
+ * Description
+ *
+ *
+ *
+ *
+ * CURLSHOPT_SHARE
+ *
+ * Specifies a type of data that should be shared.
+ *
+ *
+ *
+ * CURLSHOPT_UNSHARE
+ *
+ * Specifies a type of data that will be no longer shared.
+ *
+ *
+ *
+ *
+ *
+ * @param string $value
+ *
+ *
+ *
+ * Value
+ * Description
+ *
+ *
+ *
+ *
+ * CURL_LOCK_DATA_COOKIE
+ *
+ * Shares cookie data.
+ *
+ *
+ *
+ * CURL_LOCK_DATA_DNS
+ *
+ * Shares DNS cache. Note that when you use cURL multi handles,
+ * all handles added to the same multi handle will share DNS cache
+ * by default.
+ *
+ *
+ *
+ * CURL_LOCK_DATA_SSL_SESSION
+ *
+ * Shares SSL session IDs, reducing the time spent on the SSL
+ * handshake when reconnecting to the same server. Note that SSL
+ * session IDs are reused within the same handle by default.
+ *
+ *
+ *
+ *
+ *
+ * @throws CurlException
+ *
+ */
+function curl_share_setopt($sh, int $option, string $value): void
+{
+ error_clear_last();
+ $result = \curl_share_setopt($sh, $option, $value);
+ if ($result === false) {
+ throw CurlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function decodes the given URL encoded string.
+ *
+ * @param resource $ch A cURL handle returned by
+ * curl_init.
+ * @param string $str The URL encoded string to be decoded.
+ * @return string Returns decoded string.
+ * @throws CurlException
+ *
+ */
+function curl_unescape($ch, string $str): string
+{
+ error_clear_last();
+ $result = \curl_unescape($ch, $str);
+ if ($result === false) {
+ throw CurlException::createFromCurlResource($ch);
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/datetime.php b/vendor/thecodingmachine/safe/generated/datetime.php
new file mode 100644
index 000000000..01bfa9364
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/datetime.php
@@ -0,0 +1,631 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\DatetimeException;
+
+/**
+ * Returns associative array with detailed info about given date/time.
+ *
+ * @param string $format Format accepted by DateTime::createFromFormat.
+ * @param string $datetime String representing the date/time.
+ * @return array Returns associative array with detailed info about given date/time.
+ * @throws DatetimeException
+ *
+ */
+function date_parse_from_format(string $format, string $datetime): array
+{
+ error_clear_last();
+ $result = \date_parse_from_format($format, $datetime);
+ if ($result === false) {
+ throw DatetimeException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ *
+ *
+ * @param string $datetime Date/time in format accepted by
+ * DateTimeImmutable::__construct.
+ * @return array Returns array with information about the parsed date/time
+ * on success.
+ * @throws DatetimeException
+ *
+ */
+function date_parse(string $datetime): array
+{
+ error_clear_last();
+ $result = \date_parse($datetime);
+ if ($result === false) {
+ throw DatetimeException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ *
+ *
+ * @param int $timestamp Unix timestamp.
+ * @param float $latitude Latitude in degrees.
+ * @param float $longitude Longitude in degrees.
+ * @return array Returns array on success.
+ * The structure of the array is detailed in the following list:
+ *
+ *
+ *
+ * sunrise
+ *
+ *
+ * The timestamp of the sunrise (zenith angle = 90°35').
+ *
+ *
+ *
+ *
+ * sunset
+ *
+ *
+ * The timestamp of the sunset (zenith angle = 90°35').
+ *
+ *
+ *
+ *
+ * transit
+ *
+ *
+ * The timestamp when the sun is at its zenith, i.e. has reached its topmost
+ * point.
+ *
+ *
+ *
+ *
+ * civil_twilight_begin
+ *
+ *
+ * The start of the civil dawn (zenith angle = 96°). It ends at sunrise.
+ *
+ *
+ *
+ *
+ * civil_twilight_end
+ *
+ *
+ * The end of the civil dusk (zenith angle = 96°). It starts at sunset.
+ *
+ *
+ *
+ *
+ * nautical_twilight_begin
+ *
+ *
+ * The start of the nautical dawn (zenith angle = 102°). It ends at
+ * civil_twilight_begin.
+ *
+ *
+ *
+ *
+ * nautical_twilight_end
+ *
+ *
+ * The end of the nautical dusk (zenith angle = 102°). It starts at
+ * civil_twilight_end.
+ *
+ *
+ *
+ *
+ * astronomical_twilight_begin
+ *
+ *
+ * The start of the astronomical dawn (zenith angle = 108°). It ends at
+ * nautical_twilight_begin.
+ *
+ *
+ *
+ *
+ * astronomical_twilight_end
+ *
+ *
+ * The end of the astronomical dusk (zenith angle = 108°). It starts at
+ * nautical_twilight_end.
+ *
+ *
+ *
+ *
+ *
+ * The values of the array elements are either UNIX timestamps, FALSE if the
+ * sun is below the respective zenith for the whole day, or TRUE if the sun is
+ * above the respective zenith for the whole day.
+ * @throws DatetimeException
+ *
+ */
+function date_sun_info(int $timestamp, float $latitude, float $longitude): array
+{
+ error_clear_last();
+ $result = \date_sun_info($timestamp, $latitude, $longitude);
+ if ($result === false) {
+ throw DatetimeException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * date_sunrise returns the sunrise time for a given
+ * day (specified as a timestamp) and location.
+ *
+ * @param int $timestamp The timestamp of the day from which the sunrise
+ * time is taken.
+ * @param int $returnFormat
+ * returnFormat constants
+ *
+ *
+ *
+ * constant
+ * description
+ * example
+ *
+ *
+ *
+ *
+ * SUNFUNCS_RET_STRING
+ * returns the result as string
+ * 16:46
+ *
+ *
+ * SUNFUNCS_RET_DOUBLE
+ * returns the result as float
+ * 16.78243132
+ *
+ *
+ * SUNFUNCS_RET_TIMESTAMP
+ * returns the result as integer (timestamp)
+ * 1095034606
+ *
+ *
+ *
+ *
+ * @param float $latitude Defaults to North, pass in a negative value for South.
+ * See also: date.default_latitude
+ * @param float $longitude Defaults to East, pass in a negative value for West.
+ * See also: date.default_longitude
+ * @param float $zenith zenith is the angle between the center of the sun
+ * and a line perpendicular to earth's surface. It defaults to
+ * date.sunrise_zenith
+ *
+ * Common zenith angles
+ *
+ *
+ *
+ * Angle
+ * Description
+ *
+ *
+ *
+ *
+ * 90°50'
+ * Sunrise: the point where the sun becomes visible.
+ *
+ *
+ * 96°
+ * Civil twilight: conventionally used to signify the start of dawn.
+ *
+ *
+ * 102°
+ * Nautical twilight: the point at which the horizon starts being visible at sea.
+ *
+ *
+ * 108°
+ * Astronomical twilight: the point at which the sun starts being the source of any illumination.
+ *
+ *
+ *
+ *
+ * @param float $utcOffset Specified in hours.
+ * The utcOffset is ignored, if
+ * returnFormat is
+ * SUNFUNCS_RET_TIMESTAMP.
+ * @return mixed Returns the sunrise time in a specified returnFormat on
+ * success. One potential reason for failure is that the
+ * sun does not rise at all, which happens inside the polar circles for part of
+ * the year.
+ * @throws DatetimeException
+ *
+ */
+function date_sunrise(int $timestamp, int $returnFormat = SUNFUNCS_RET_STRING, float $latitude = null, float $longitude = null, float $zenith = null, float $utcOffset = 0)
+{
+ error_clear_last();
+ if ($utcOffset !== 0) {
+ $result = \date_sunrise($timestamp, $returnFormat, $latitude, $longitude, $zenith, $utcOffset);
+ } elseif ($zenith !== null) {
+ $result = \date_sunrise($timestamp, $returnFormat, $latitude, $longitude, $zenith);
+ } elseif ($longitude !== null) {
+ $result = \date_sunrise($timestamp, $returnFormat, $latitude, $longitude);
+ } elseif ($latitude !== null) {
+ $result = \date_sunrise($timestamp, $returnFormat, $latitude);
+ } else {
+ $result = \date_sunrise($timestamp, $returnFormat);
+ }
+ if ($result === false) {
+ throw DatetimeException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * date_sunset returns the sunset time for a given
+ * day (specified as a timestamp) and location.
+ *
+ * @param int $timestamp The timestamp of the day from which the sunset
+ * time is taken.
+ * @param int $returnFormat
+ * returnFormat constants
+ *
+ *
+ *
+ * constant
+ * description
+ * example
+ *
+ *
+ *
+ *
+ * SUNFUNCS_RET_STRING
+ * returns the result as string
+ * 16:46
+ *
+ *
+ * SUNFUNCS_RET_DOUBLE
+ * returns the result as float
+ * 16.78243132
+ *
+ *
+ * SUNFUNCS_RET_TIMESTAMP
+ * returns the result as integer (timestamp)
+ * 1095034606
+ *
+ *
+ *
+ *
+ * @param float $latitude Defaults to North, pass in a negative value for South.
+ * See also: date.default_latitude
+ * @param float $longitude Defaults to East, pass in a negative value for West.
+ * See also: date.default_longitude
+ * @param float $zenith zenith is the angle between the center of the sun
+ * and a line perpendicular to earth's surface. It defaults to
+ * date.sunset_zenith
+ *
+ * Common zenith angles
+ *
+ *
+ *
+ * Angle
+ * Description
+ *
+ *
+ *
+ *
+ * 90°50'
+ * Sunset: the point where the sun becomes invisible.
+ *
+ *
+ * 96°
+ * Civil twilight: conventionally used to signify the end of dusk.
+ *
+ *
+ * 102°
+ * Nautical twilight: the point at which the horizon ends being visible at sea.
+ *
+ *
+ * 108°
+ * Astronomical twilight: the point at which the sun ends being the source of any illumination.
+ *
+ *
+ *
+ *
+ * @param float $utcOffset Specified in hours.
+ * The utcOffset is ignored, if
+ * returnFormat is
+ * SUNFUNCS_RET_TIMESTAMP.
+ * @return mixed Returns the sunset time in a specified returnFormat on
+ * success. One potential reason for failure is that the
+ * sun does not set at all, which happens inside the polar circles for part of
+ * the year.
+ * @throws DatetimeException
+ *
+ */
+function date_sunset(int $timestamp, int $returnFormat = SUNFUNCS_RET_STRING, float $latitude = null, float $longitude = null, float $zenith = null, float $utcOffset = 0)
+{
+ error_clear_last();
+ if ($utcOffset !== 0) {
+ $result = \date_sunset($timestamp, $returnFormat, $latitude, $longitude, $zenith, $utcOffset);
+ } elseif ($zenith !== null) {
+ $result = \date_sunset($timestamp, $returnFormat, $latitude, $longitude, $zenith);
+ } elseif ($longitude !== null) {
+ $result = \date_sunset($timestamp, $returnFormat, $latitude, $longitude);
+ } elseif ($latitude !== null) {
+ $result = \date_sunset($timestamp, $returnFormat, $latitude);
+ } else {
+ $result = \date_sunset($timestamp, $returnFormat);
+ }
+ if ($result === false) {
+ throw DatetimeException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Returns a string formatted according to the given format string using the
+ * given integer timestamp or the current time
+ * if no timestamp is given. In other words, timestamp
+ * is optional and defaults to the value of time.
+ *
+ * @param string $format Format accepted by DateTimeInterface::format.
+ * @param int $timestamp The optional timestamp parameter is an
+ * integer Unix timestamp that defaults to the current
+ * local time if a timestamp is not given. In other
+ * words, it defaults to the value of time.
+ * @return string Returns a formatted date string. If a non-numeric value is used for
+ * timestamp, FALSE is returned and an
+ * E_WARNING level error is emitted.
+ * @throws DatetimeException
+ *
+ */
+function date(string $format, int $timestamp = null): string
+{
+ error_clear_last();
+ if ($timestamp !== null) {
+ $result = \date($format, $timestamp);
+ } else {
+ $result = \date($format);
+ }
+ if ($result === false) {
+ throw DatetimeException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Identical to the date function except that
+ * the time returned is Greenwich Mean Time (GMT).
+ *
+ * @param string $format The format of the outputted date string. See the formatting
+ * options for the date function.
+ * @param int $timestamp The optional timestamp parameter is an
+ * integer Unix timestamp that defaults to the current
+ * local time if a timestamp is not given. In other
+ * words, it defaults to the value of time.
+ * @return string Returns a formatted date string. If a non-numeric value is used for
+ * timestamp, FALSE is returned and an
+ * E_WARNING level error is emitted.
+ * @throws DatetimeException
+ *
+ */
+function gmdate(string $format, int $timestamp = null): string
+{
+ error_clear_last();
+ if ($timestamp !== null) {
+ $result = \gmdate($format, $timestamp);
+ } else {
+ $result = \gmdate($format);
+ }
+ if ($result === false) {
+ throw DatetimeException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Returns the Unix timestamp corresponding to the arguments
+ * given. This timestamp is a long integer containing the number of
+ * seconds between the Unix Epoch (January 1 1970 00:00:00 GMT) and the time
+ * specified.
+ *
+ * Arguments may be left out in order from right to left; any
+ * arguments thus omitted will be set to the current value according
+ * to the local date and time.
+ *
+ * @param int $hour The number of the hour relative to the start of the day determined by
+ * month, day and year.
+ * Negative values reference the hour before midnight of the day in question.
+ * Values greater than 23 reference the appropriate hour in the following day(s).
+ * @param int $minute The number of the minute relative to the start of the hour.
+ * Negative values reference the minute in the previous hour.
+ * Values greater than 59 reference the appropriate minute in the following hour(s).
+ * @param int $second The number of seconds relative to the start of the minute.
+ * Negative values reference the second in the previous minute.
+ * Values greater than 59 reference the appropriate second in the following minute(s).
+ * @param int $month The number of the month relative to the end of the previous year.
+ * Values 1 to 12 reference the normal calendar months of the year in question.
+ * Values less than 1 (including negative values) reference the months in the previous year in reverse order, so 0 is December, -1 is November, etc.
+ * Values greater than 12 reference the appropriate month in the following year(s).
+ * @param int $day The number of the day relative to the end of the previous month.
+ * Values 1 to 28, 29, 30 or 31 (depending upon the month) reference the normal days in the relevant month.
+ * Values less than 1 (including negative values) reference the days in the previous month, so 0 is the last day of the previous month, -1 is the day before that, etc.
+ * Values greater than the number of days in the relevant month reference the appropriate day in the following month(s).
+ * @param int $year The number of the year, may be a two or four digit value,
+ * with values between 0-69 mapping to 2000-2069 and 70-100 to
+ * 1970-2000. On systems where time_t is a 32bit signed integer, as
+ * most common today, the valid range for year
+ * is somewhere between 1901 and 2038. However, before PHP 5.1.0 this
+ * range was limited from 1970 to 2038 on some systems (e.g. Windows).
+ * @return int mktime returns the Unix timestamp of the arguments
+ * given.
+ * If the arguments are invalid, the function returns FALSE (before PHP 5.1
+ * it returned -1).
+ * @throws DatetimeException
+ *
+ */
+function mktime(int $hour = null, int $minute = null, int $second = null, int $month = null, int $day = null, int $year = null): int
+{
+ error_clear_last();
+ if ($year !== null) {
+ $result = \mktime($hour, $minute, $second, $month, $day, $year);
+ } elseif ($day !== null) {
+ $result = \mktime($hour, $minute, $second, $month, $day);
+ } elseif ($month !== null) {
+ $result = \mktime($hour, $minute, $second, $month);
+ } elseif ($second !== null) {
+ $result = \mktime($hour, $minute, $second);
+ } elseif ($minute !== null) {
+ $result = \mktime($hour, $minute);
+ } elseif ($hour !== null) {
+ $result = \mktime($hour);
+ } else {
+ $result = \mktime();
+ }
+ if ($result === false) {
+ throw DatetimeException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * strptime returns an array with the
+ * date parsed.
+ *
+ * Month and weekday names and other language dependent strings respect the
+ * current locale set with setlocale (LC_TIME).
+ *
+ * @param string $date The string to parse (e.g. returned from strftime).
+ * @param string $format The format used in date (e.g. the same as
+ * used in strftime). Note that some of the format
+ * options available to strftime may not have any
+ * effect within strptime; the exact subset that are
+ * supported will vary based on the operating system and C library in
+ * use.
+ *
+ * For more information about the format options, read the
+ * strftime page.
+ * @return array Returns an array.
+ *
+ *
+ * The following parameters are returned in the array
+ *
+ *
+ *
+ * parameters
+ * Description
+ *
+ *
+ *
+ *
+ * "tm_sec"
+ * Seconds after the minute (0-61)
+ *
+ *
+ * "tm_min"
+ * Minutes after the hour (0-59)
+ *
+ *
+ * "tm_hour"
+ * Hour since midnight (0-23)
+ *
+ *
+ * "tm_mday"
+ * Day of the month (1-31)
+ *
+ *
+ * "tm_mon"
+ * Months since January (0-11)
+ *
+ *
+ * "tm_year"
+ * Years since 1900
+ *
+ *
+ * "tm_wday"
+ * Days since Sunday (0-6)
+ *
+ *
+ * "tm_yday"
+ * Days since January 1 (0-365)
+ *
+ *
+ * "unparsed"
+ * the date part which was not
+ * recognized using the specified format
+ *
+ *
+ *
+ *
+ * @throws DatetimeException
+ *
+ */
+function strptime(string $date, string $format): array
+{
+ error_clear_last();
+ $result = \strptime($date, $format);
+ if ($result === false) {
+ throw DatetimeException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Each parameter of this function uses the default time zone unless a
+ * time zone is specified in that parameter. Be careful not to use
+ * different time zones in each parameter unless that is intended.
+ * See date_default_timezone_get on the various
+ * ways to define the default time zone.
+ *
+ * @param string $datetime A date/time string. Valid formats are explained in Date and Time Formats.
+ * @param int $now The timestamp which is used as a base for the calculation of relative
+ * dates.
+ * @return int Returns a timestamp on success, FALSE otherwise. Previous to PHP 5.1.0,
+ * this function would return -1 on failure.
+ * @throws DatetimeException
+ *
+ */
+function strtotime(string $datetime, int $now = null): int
+{
+ error_clear_last();
+ if ($now !== null) {
+ $result = \strtotime($datetime, $now);
+ } else {
+ $result = \strtotime($datetime);
+ }
+ if ($result === false) {
+ throw DatetimeException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ *
+ *
+ * @param string $abbr Time zone abbreviation.
+ * @param int $utcOffset Offset from GMT in seconds. Defaults to -1 which means that first found
+ * time zone corresponding to abbr is returned.
+ * Otherwise exact offset is searched and only if not found then the first
+ * time zone with any offset is returned.
+ * @param int $isDST Daylight saving time indicator. Defaults to -1, which means that
+ * whether the time zone has daylight saving or not is not taken into
+ * consideration when searching. If this is set to 1, then the
+ * utcOffset is assumed to be an offset with
+ * daylight saving in effect; if 0, then utcOffset
+ * is assumed to be an offset without daylight saving in effect. If
+ * abbr doesn't exist then the time zone is
+ * searched solely by the utcOffset and
+ * isDST.
+ * @return string Returns time zone name on success.
+ * @throws DatetimeException
+ *
+ */
+function timezone_name_from_abbr(string $abbr, int $utcOffset = -1, int $isDST = -1): string
+{
+ error_clear_last();
+ $result = \timezone_name_from_abbr($abbr, $utcOffset, $isDST);
+ if ($result === false) {
+ throw DatetimeException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/dir.php b/vendor/thecodingmachine/safe/generated/dir.php
new file mode 100644
index 000000000..628dec537
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/dir.php
@@ -0,0 +1,157 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\DirException;
+
+/**
+ * Changes PHP's current directory to
+ * directory.
+ *
+ * @param string $directory The new current directory
+ * @throws DirException
+ *
+ */
+function chdir(string $directory): void
+{
+ error_clear_last();
+ $result = \chdir($directory);
+ if ($result === false) {
+ throw DirException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Changes the root directory of the current process to
+ * directory, and changes the current
+ * working directory to "/".
+ *
+ * This function is only available to GNU and BSD systems, and
+ * only when using the CLI, CGI or Embed SAPI. Also, this function
+ * requires root privileges.
+ *
+ * @param string $directory The path to change the root directory to.
+ * @throws DirException
+ *
+ */
+function chroot(string $directory): void
+{
+ error_clear_last();
+ $result = \chroot($directory);
+ if ($result === false) {
+ throw DirException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Gets the current working directory.
+ *
+ * @return string Returns the current working directory on success.
+ *
+ * On some Unix variants, getcwd will return
+ * FALSE if any one of the parent directories does not have the
+ * readable or search mode set, even if the current directory
+ * does. See chmod for more information on
+ * modes and permissions.
+ * @throws DirException
+ *
+ */
+function getcwd(): string
+{
+ error_clear_last();
+ $result = \getcwd();
+ if ($result === false) {
+ throw DirException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Opens up a directory handle to be used in subsequent
+ * closedir, readdir, and
+ * rewinddir calls.
+ *
+ * @param string $path The directory path that is to be opened
+ * @param resource $context For a description of the context parameter,
+ * refer to the streams section of
+ * the manual.
+ * @return resource Returns a directory handle resource on success
+ * @throws DirException
+ *
+ */
+function opendir(string $path, $context = null)
+{
+ error_clear_last();
+ if ($context !== null) {
+ $result = \opendir($path, $context);
+ } else {
+ $result = \opendir($path);
+ }
+ if ($result === false) {
+ throw DirException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Resets the directory stream indicated by
+ * dir_handle to the beginning of the
+ * directory.
+ *
+ * @param resource $dir_handle The directory handle resource previously opened
+ * with opendir. If the directory handle is
+ * not specified, the last link opened by opendir
+ * is assumed.
+ * @throws DirException
+ *
+ */
+function rewinddir($dir_handle = null): void
+{
+ error_clear_last();
+ if ($dir_handle !== null) {
+ $result = \rewinddir($dir_handle);
+ } else {
+ $result = \rewinddir();
+ }
+ if ($result === false) {
+ throw DirException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Returns an array of files and directories from the
+ * directory.
+ *
+ * @param string $directory The directory that will be scanned.
+ * @param int $sorting_order By default, the sorted order is alphabetical in ascending order. If
+ * the optional sorting_order is set to
+ * SCANDIR_SORT_DESCENDING, then the sort order is
+ * alphabetical in descending order. If it is set to
+ * SCANDIR_SORT_NONE then the result is unsorted.
+ * @param resource $context For a description of the context parameter,
+ * refer to the streams section of
+ * the manual.
+ * @return array Returns an array of filenames on success. If directory is not a directory, then
+ * boolean FALSE is returned, and an error of level
+ * E_WARNING is generated.
+ * @throws DirException
+ *
+ */
+function scandir(string $directory, int $sorting_order = SCANDIR_SORT_ASCENDING, $context = null): array
+{
+ error_clear_last();
+ if ($context !== null) {
+ $result = \scandir($directory, $sorting_order, $context);
+ } else {
+ $result = \scandir($directory, $sorting_order);
+ }
+ if ($result === false) {
+ throw DirException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/eio.php b/vendor/thecodingmachine/safe/generated/eio.php
new file mode 100644
index 000000000..8d2f538e8
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/eio.php
@@ -0,0 +1,2071 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\EioException;
+
+/**
+ * eio_busy artificially increases load taking
+ * delay seconds to execute. May be used for debugging,
+ * or benchmarking.
+ *
+ * @param int $delay Delay in seconds
+ * @param int $pri The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or NULL.
+ * If NULL passed, pri internally is set to
+ * EIO_PRI_DEFAULT.
+ * @param callable $callback This callback is called when all the group requests are done.
+ * @param mixed $data Arbitrary variable passed to callback.
+ * @return resource eio_busy returns request resource on success.
+ * @throws EioException
+ *
+ */
+function eio_busy(int $delay, int $pri = EIO_PRI_DEFAULT, callable $callback = null, $data = null)
+{
+ error_clear_last();
+ $result = \eio_busy($delay, $pri, $callback, $data);
+ if ($result === false) {
+ throw EioException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * eio_chmod changes file, or directory permissions. The
+ * new permissions are specified by mode.
+ *
+ * @param string $path Path to the target file or directory
+ * Avoid relative
+ * paths
+ * @param int $mode The new permissions. E.g. 0644.
+ * @param int $pri The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or NULL.
+ * If NULL passed, pri internally is set to
+ * EIO_PRI_DEFAULT.
+ * @param callable $callback
+ * callback function is called when the request is done.
+ * It should match the following prototype:
+ *
+ *
+ * data
+ * is custom data passed to the request.
+ *
+ *
+ * result
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ *
+ * req
+ * is optional request resource which can be used with functions like eio_get_last_error
+ *
+ *
+ *
+ * is custom data passed to the request.
+ *
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ * is optional request resource which can be used with functions like eio_get_last_error
+ * @param mixed $data is custom data passed to the request.
+ * @return resource eio_chmod returns request resource on success.
+ * @throws EioException
+ *
+ */
+function eio_chmod(string $path, int $mode, int $pri = EIO_PRI_DEFAULT, callable $callback = null, $data = null)
+{
+ error_clear_last();
+ $result = \eio_chmod($path, $mode, $pri, $callback, $data);
+ if ($result === false) {
+ throw EioException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Changes file, or directory permissions.
+ *
+ * @param string $path Path to file or directory.
+ * Avoid relative
+ * paths
+ * @param int $uid User ID. Is ignored when equal to -1.
+ * @param int $gid Group ID. Is ignored when equal to -1.
+ * @param int $pri The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or NULL.
+ * If NULL passed, pri internally is set to
+ * EIO_PRI_DEFAULT.
+ * @param callable $callback
+ * callback function is called when the request is done.
+ * It should match the following prototype:
+ *
+ *
+ * data
+ * is custom data passed to the request.
+ *
+ *
+ * result
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ *
+ * req
+ * is optional request resource which can be used with functions like eio_get_last_error
+ *
+ *
+ *
+ * is custom data passed to the request.
+ *
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ * is optional request resource which can be used with functions like eio_get_last_error
+ * @param mixed $data is custom data passed to the request.
+ * @return resource eio_chown returns request resource on success.
+ * @throws EioException
+ *
+ */
+function eio_chown(string $path, int $uid, int $gid = -1, int $pri = EIO_PRI_DEFAULT, callable $callback = null, $data = null)
+{
+ error_clear_last();
+ $result = \eio_chown($path, $uid, $gid, $pri, $callback, $data);
+ if ($result === false) {
+ throw EioException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * eio_close closes file specified by
+ * fd.
+ *
+ * @param mixed $fd Stream, Socket resource, or numeric file descriptor
+ * @param int $pri The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or NULL.
+ * If NULL passed, pri internally is set to
+ * EIO_PRI_DEFAULT.
+ * @param callable $callback
+ * callback function is called when the request is done.
+ * It should match the following prototype:
+ *
+ *
+ * data
+ * is custom data passed to the request.
+ *
+ *
+ * result
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ *
+ * req
+ * is optional request resource which can be used with functions like eio_get_last_error
+ *
+ *
+ *
+ * is custom data passed to the request.
+ *
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ * is optional request resource which can be used with functions like eio_get_last_error
+ * @param mixed $data is custom data passed to the request.
+ * @return resource eio_close returns request resource on success.
+ * @throws EioException
+ *
+ */
+function eio_close($fd, int $pri = EIO_PRI_DEFAULT, callable $callback = null, $data = null)
+{
+ error_clear_last();
+ $result = \eio_close($fd, $pri, $callback, $data);
+ if ($result === false) {
+ throw EioException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * eio_custom executes custom function specified by
+ * execute processing it just like any other eio_* call.
+ *
+ * @param callable $execute Specifies the request function that should match the following prototype:
+ *
+ *
+ * callback is event completion callback that should match the following
+ * prototype:
+ *
+ *
+ * data is the data passed to
+ * execute via data argument
+ * without modifications
+ * result value returned by execute
+ * @param int $pri The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or NULL.
+ * If NULL passed, pri internally is set to
+ * EIO_PRI_DEFAULT.
+ * @param callable $callback
+ * callback function is called when the request is done.
+ * It should match the following prototype:
+ *
+ *
+ * data
+ * is custom data passed to the request.
+ *
+ *
+ * result
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ *
+ * req
+ * is optional request resource which can be used with functions like eio_get_last_error
+ *
+ *
+ *
+ * is custom data passed to the request.
+ *
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ * is optional request resource which can be used with functions like eio_get_last_error
+ * @param mixed $data is custom data passed to the request.
+ * @return resource eio_custom returns request resource on success.
+ * @throws EioException
+ *
+ */
+function eio_custom(callable $execute, int $pri, callable $callback, $data = null)
+{
+ error_clear_last();
+ $result = \eio_custom($execute, $pri, $callback, $data);
+ if ($result === false) {
+ throw EioException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * eio_dup2 duplicates file descriptor.
+ *
+ * @param mixed $fd Source stream, Socket resource, or numeric file descriptor
+ * @param mixed $fd2 Target stream, Socket resource, or numeric file descriptor
+ * @param int $pri The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or NULL.
+ * If NULL passed, pri internally is set to
+ * EIO_PRI_DEFAULT.
+ * @param callable $callback
+ * callback function is called when the request is done.
+ * It should match the following prototype:
+ *
+ *
+ * data
+ * is custom data passed to the request.
+ *
+ *
+ * result
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ *
+ * req
+ * is optional request resource which can be used with functions like eio_get_last_error
+ *
+ *
+ *
+ * is custom data passed to the request.
+ *
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ * is optional request resource which can be used with functions like eio_get_last_error
+ * @param mixed $data is custom data passed to the request.
+ * @return resource eio_dup2 returns request resource on success.
+ * @throws EioException
+ *
+ */
+function eio_dup2($fd, $fd2, int $pri = EIO_PRI_DEFAULT, callable $callback = null, $data = null)
+{
+ error_clear_last();
+ $result = \eio_dup2($fd, $fd2, $pri, $callback, $data);
+ if ($result === false) {
+ throw EioException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * eio_event_loop polls libeio until all requests proceeded.
+ *
+ * @throws EioException
+ *
+ */
+function eio_event_loop(): void
+{
+ error_clear_last();
+ $result = \eio_event_loop();
+ if ($result === false) {
+ throw EioException::createFromPhpError();
+ }
+}
+
+
+/**
+ * eio_fallocate allows the caller to directly manipulate the allocated disk space for the
+ * file specified by fd file descriptor for the byte
+ * range starting at offset and continuing for
+ * length bytes.
+ *
+ * @param mixed $fd Stream, Socket resource, or numeric file descriptor, e.g. returned by eio_open.
+ * @param int $mode Currently only one flag is supported for mode:
+ * EIO_FALLOC_FL_KEEP_SIZE (the same as POSIX constant
+ * FALLOC_FL_KEEP_SIZE).
+ * @param int $offset Specifies start of the byte range.
+ * @param int $length Specifies length the byte range.
+ * @param int $pri The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or NULL.
+ * If NULL passed, pri internally is set to
+ * EIO_PRI_DEFAULT.
+ * @param callable $callback
+ * callback function is called when the request is done.
+ * It should match the following prototype:
+ *
+ *
+ * data
+ * is custom data passed to the request.
+ *
+ *
+ * result
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ *
+ * req
+ * is optional request resource which can be used with functions like eio_get_last_error
+ *
+ *
+ *
+ * is custom data passed to the request.
+ *
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ * is optional request resource which can be used with functions like eio_get_last_error
+ * @param mixed $data is custom data passed to the request.
+ * @return resource eio_fallocate returns request resource on success.
+ * @throws EioException
+ *
+ */
+function eio_fallocate($fd, int $mode, int $offset, int $length, int $pri = EIO_PRI_DEFAULT, callable $callback = null, $data = null)
+{
+ error_clear_last();
+ $result = \eio_fallocate($fd, $mode, $offset, $length, $pri, $callback, $data);
+ if ($result === false) {
+ throw EioException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * eio_fchmod changes permissions for the file specified
+ * by fd file descriptor.
+ *
+ * @param mixed $fd Stream, Socket resource, or numeric file descriptor, e.g. returned by eio_open.
+ * @param int $mode The new permissions. E.g. 0644.
+ * @param int $pri The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or NULL.
+ * If NULL passed, pri internally is set to
+ * EIO_PRI_DEFAULT.
+ * @param callable $callback
+ * callback function is called when the request is done.
+ * It should match the following prototype:
+ *
+ *
+ * data
+ * is custom data passed to the request.
+ *
+ *
+ * result
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ *
+ * req
+ * is optional request resource which can be used with functions like eio_get_last_error
+ *
+ *
+ *
+ * is custom data passed to the request.
+ *
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ * is optional request resource which can be used with functions like eio_get_last_error
+ * @param mixed $data is custom data passed to the request.
+ * @return resource eio_fchmod returns request resource on success.
+ * @throws EioException
+ *
+ */
+function eio_fchmod($fd, int $mode, int $pri = EIO_PRI_DEFAULT, callable $callback = null, $data = null)
+{
+ error_clear_last();
+ $result = \eio_fchmod($fd, $mode, $pri, $callback, $data);
+ if ($result === false) {
+ throw EioException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * eio_fdatasync synchronizes a file's in-core state with storage device.
+ *
+ * @param mixed $fd Stream, Socket resource, or numeric file descriptor, e.g. returned by eio_open.
+ * @param int $pri The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or NULL.
+ * If NULL passed, pri internally is set to
+ * EIO_PRI_DEFAULT.
+ * @param callable $callback
+ * callback function is called when the request is done.
+ * It should match the following prototype:
+ *
+ *
+ * data
+ * is custom data passed to the request.
+ *
+ *
+ * result
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ *
+ * req
+ * is optional request resource which can be used with functions like eio_get_last_error
+ *
+ *
+ *
+ * is custom data passed to the request.
+ *
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ * is optional request resource which can be used with functions like eio_get_last_error
+ * @param mixed $data is custom data passed to the request.
+ * @return resource eio_fdatasync returns request resource on success.
+ * @throws EioException
+ *
+ */
+function eio_fdatasync($fd, int $pri = EIO_PRI_DEFAULT, callable $callback = null, $data = null)
+{
+ error_clear_last();
+ $result = \eio_fdatasync($fd, $pri, $callback, $data);
+ if ($result === false) {
+ throw EioException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * eio_fstat returns file status information in
+ * result argument of callback
+ *
+ * @param mixed $fd Stream, Socket resource, or numeric file descriptor.
+ * @param int $pri The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or NULL.
+ * If NULL passed, pri internally is set to
+ * EIO_PRI_DEFAULT.
+ * @param callable $callback
+ * callback function is called when the request is done.
+ * It should match the following prototype:
+ *
+ *
+ * data
+ * is custom data passed to the request.
+ *
+ *
+ * result
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ *
+ * req
+ * is optional request resource which can be used with functions like eio_get_last_error
+ *
+ *
+ *
+ * is custom data passed to the request.
+ *
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ * is optional request resource which can be used with functions like eio_get_last_error
+ * @param mixed $data is custom data passed to the request.
+ * @return resource eio_busy returns request resource on success.
+ * @throws EioException
+ *
+ */
+function eio_fstat($fd, int $pri, callable $callback, $data = null)
+{
+ error_clear_last();
+ if ($data !== null) {
+ $result = \eio_fstat($fd, $pri, $callback, $data);
+ } else {
+ $result = \eio_fstat($fd, $pri, $callback);
+ }
+ if ($result === false) {
+ throw EioException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * eio_fstatvfs returns file system statistics in
+ * result of callback.
+ *
+ * @param mixed $fd A file descriptor of a file within the mounted file system.
+ * @param int $pri The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or NULL.
+ * If NULL passed, pri internally is set to
+ * EIO_PRI_DEFAULT.
+ * @param callable $callback
+ * callback function is called when the request is done.
+ * It should match the following prototype:
+ *
+ *
+ * data
+ * is custom data passed to the request.
+ *
+ *
+ * result
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ *
+ * req
+ * is optional request resource which can be used with functions like eio_get_last_error
+ *
+ *
+ *
+ * is custom data passed to the request.
+ *
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ * is optional request resource which can be used with functions like eio_get_last_error
+ * @param mixed $data is custom data passed to the request.
+ * @return resource eio_fstatvfs returns request resource on success.
+ * @throws EioException
+ *
+ */
+function eio_fstatvfs($fd, int $pri, callable $callback, $data = null)
+{
+ error_clear_last();
+ if ($data !== null) {
+ $result = \eio_fstatvfs($fd, $pri, $callback, $data);
+ } else {
+ $result = \eio_fstatvfs($fd, $pri, $callback);
+ }
+ if ($result === false) {
+ throw EioException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Synchronize a file's in-core state with storage device
+ *
+ * @param mixed $fd Stream, Socket resource, or numeric file descriptor.
+ * @param int $pri The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or NULL.
+ * If NULL passed, pri internally is set to
+ * EIO_PRI_DEFAULT.
+ * @param callable $callback
+ * callback function is called when the request is done.
+ * It should match the following prototype:
+ *
+ *
+ * data
+ * is custom data passed to the request.
+ *
+ *
+ * result
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ *
+ * req
+ * is optional request resource which can be used with functions like eio_get_last_error
+ *
+ *
+ *
+ * is custom data passed to the request.
+ *
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ * is optional request resource which can be used with functions like eio_get_last_error
+ * @param mixed $data is custom data passed to the request.
+ * @return resource eio_fsync returns request resource on success.
+ * @throws EioException
+ *
+ */
+function eio_fsync($fd, int $pri = EIO_PRI_DEFAULT, callable $callback = null, $data = null)
+{
+ error_clear_last();
+ $result = \eio_fsync($fd, $pri, $callback, $data);
+ if ($result === false) {
+ throw EioException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * eio_ftruncate causes a regular file referenced by
+ * fd file descriptor to be truncated to precisely
+ * length bytes.
+ *
+ * @param mixed $fd Stream, Socket resource, or numeric file descriptor.
+ * @param int $offset Offset from beginning of the file
+ * @param int $pri The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or NULL.
+ * If NULL passed, pri internally is set to
+ * EIO_PRI_DEFAULT.
+ * @param callable $callback
+ * callback function is called when the request is done.
+ * It should match the following prototype:
+ *
+ *
+ * data
+ * is custom data passed to the request.
+ *
+ *
+ * result
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ *
+ * req
+ * is optional request resource which can be used with functions like eio_get_last_error
+ *
+ *
+ *
+ * is custom data passed to the request.
+ *
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ * is optional request resource which can be used with functions like eio_get_last_error
+ * @param mixed $data is custom data passed to the request.
+ * @return resource eio_ftruncate returns request resource on success.
+ * @throws EioException
+ *
+ */
+function eio_ftruncate($fd, int $offset = 0, int $pri = EIO_PRI_DEFAULT, callable $callback = null, $data = null)
+{
+ error_clear_last();
+ $result = \eio_ftruncate($fd, $offset, $pri, $callback, $data);
+ if ($result === false) {
+ throw EioException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * eio_futime changes file last access and modification
+ * times.
+ *
+ * @param mixed $fd Stream, Socket resource, or numeric file descriptor, e.g. returned by eio_open
+ * @param float $atime Access time
+ * @param float $mtime Modification time
+ * @param int $pri The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or NULL.
+ * If NULL passed, pri internally is set to
+ * EIO_PRI_DEFAULT.
+ * @param callable $callback
+ * callback function is called when the request is done.
+ * It should match the following prototype:
+ *
+ *
+ * data
+ * is custom data passed to the request.
+ *
+ *
+ * result
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ *
+ * req
+ * is optional request resource which can be used with functions like eio_get_last_error
+ *
+ *
+ *
+ * is custom data passed to the request.
+ *
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ * is optional request resource which can be used with functions like eio_get_last_error
+ * @param mixed $data is custom data passed to the request.
+ * @return resource eio_futime returns request resource on success.
+ * @throws EioException
+ *
+ */
+function eio_futime($fd, float $atime, float $mtime, int $pri = EIO_PRI_DEFAULT, callable $callback = null, $data = null)
+{
+ error_clear_last();
+ $result = \eio_futime($fd, $atime, $mtime, $pri, $callback, $data);
+ if ($result === false) {
+ throw EioException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * eio_grp creates a request group.
+ *
+ * @param callable $callback
+ * callback function is called when the request is done.
+ * It should match the following prototype:
+ *
+ *
+ * data
+ * is custom data passed to the request.
+ *
+ *
+ * result
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ *
+ * req
+ * is optional request resource which can be used with functions like eio_get_last_error
+ *
+ *
+ *
+ * is custom data passed to the request.
+ *
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ * is optional request resource which can be used with functions like eio_get_last_error
+ * @param string $data is custom data passed to the request.
+ * @return resource eio_grp returns request group resource on success.
+ * @throws EioException
+ *
+ */
+function eio_grp(callable $callback, string $data = null)
+{
+ error_clear_last();
+ $result = \eio_grp($callback, $data);
+ if ($result === false) {
+ throw EioException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * eio_lstat returns file status information in
+ * result argument of callback
+ *
+ * @param string $path The file path
+ * @param int $pri The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or NULL.
+ * If NULL passed, pri internally is set to
+ * EIO_PRI_DEFAULT.
+ * @param callable $callback
+ * callback function is called when the request is done.
+ * It should match the following prototype:
+ *
+ *
+ * data
+ * is custom data passed to the request.
+ *
+ *
+ * result
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ *
+ * req
+ * is optional request resource which can be used with functions like eio_get_last_error
+ *
+ *
+ *
+ * is custom data passed to the request.
+ *
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ * is optional request resource which can be used with functions like eio_get_last_error
+ * @param mixed $data is custom data passed to the request.
+ * @return resource eio_lstat returns request resource on success.
+ * @throws EioException
+ *
+ */
+function eio_lstat(string $path, int $pri, callable $callback, $data = null)
+{
+ error_clear_last();
+ $result = \eio_lstat($path, $pri, $callback, $data);
+ if ($result === false) {
+ throw EioException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * eio_mkdir creates directory with specified access
+ * mode.
+ *
+ * @param string $path Path for the new directory.
+ * @param int $mode Access mode, e.g. 0755
+ * @param int $pri The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or NULL.
+ * If NULL passed, pri internally is set to
+ * EIO_PRI_DEFAULT.
+ * @param callable $callback
+ * callback function is called when the request is done.
+ * It should match the following prototype:
+ *
+ *
+ * data
+ * is custom data passed to the request.
+ *
+ *
+ * result
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ *
+ * req
+ * is optional request resource which can be used with functions like eio_get_last_error
+ *
+ *
+ *
+ * is custom data passed to the request.
+ *
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ * is optional request resource which can be used with functions like eio_get_last_error
+ * @param mixed $data is custom data passed to the request.
+ * @return resource eio_mkdir returns request resource on success.
+ * @throws EioException
+ *
+ */
+function eio_mkdir(string $path, int $mode, int $pri = EIO_PRI_DEFAULT, callable $callback = null, $data = null)
+{
+ error_clear_last();
+ $result = \eio_mkdir($path, $mode, $pri, $callback, $data);
+ if ($result === false) {
+ throw EioException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * eio_mknod creates ordinary or special(often) file.
+ *
+ * @param string $path Path for the new node(file).
+ * @param int $mode Specifies both the permissions to use and the type of node to be
+ * created. It should be a combination (using bitwise OR) of one of the
+ * file types listed below and the permissions for the new node(e.g. 0640).
+ *
+ * Possible file types are: EIO_S_IFREG(regular file),
+ * EIO_S_IFCHR(character file),
+ * EIO_S_IFBLK(block special file),
+ * EIO_S_IFIFO(FIFO - named pipe) and
+ * EIO_S_IFSOCK(UNIX domain socket).
+ *
+ * To specify permissions EIO_S_I* constants could be
+ * used.
+ * @param int $dev If the file type is EIO_S_IFCHR or
+ * EIO_S_IFBLK then dev specifies the major and minor
+ * numbers of the newly created device special file. Otherwise
+ * dev ignored. See mknod(2) man page for
+ * details.
+ * @param int $pri The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or NULL.
+ * If NULL passed, pri internally is set to
+ * EIO_PRI_DEFAULT.
+ * @param callable $callback
+ * callback function is called when the request is done.
+ * It should match the following prototype:
+ *
+ *
+ * data
+ * is custom data passed to the request.
+ *
+ *
+ * result
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ *
+ * req
+ * is optional request resource which can be used with functions like eio_get_last_error
+ *
+ *
+ *
+ * is custom data passed to the request.
+ *
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ * is optional request resource which can be used with functions like eio_get_last_error
+ * @param mixed $data is custom data passed to the request.
+ * @return resource eio_mknod returns request resource on success.
+ * @throws EioException
+ *
+ */
+function eio_mknod(string $path, int $mode, int $dev, int $pri = EIO_PRI_DEFAULT, callable $callback = null, $data = null)
+{
+ error_clear_last();
+ $result = \eio_mknod($path, $mode, $dev, $pri, $callback, $data);
+ if ($result === false) {
+ throw EioException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * eio_nop does nothing, except go through the whole
+ * request cycle. Could be useful in debugging.
+ *
+ * @param int $pri The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or NULL.
+ * If NULL passed, pri internally is set to
+ * EIO_PRI_DEFAULT.
+ * @param callable $callback
+ * callback function is called when the request is done.
+ * It should match the following prototype:
+ *
+ *
+ * data
+ * is custom data passed to the request.
+ *
+ *
+ * result
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ *
+ * req
+ * is optional request resource which can be used with functions like eio_get_last_error
+ *
+ *
+ *
+ * is custom data passed to the request.
+ *
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ * is optional request resource which can be used with functions like eio_get_last_error
+ * @param mixed $data is custom data passed to the request.
+ * @return resource eio_nop returns request resource on success.
+ * @throws EioException
+ *
+ */
+function eio_nop(int $pri = EIO_PRI_DEFAULT, callable $callback = null, $data = null)
+{
+ error_clear_last();
+ $result = \eio_nop($pri, $callback, $data);
+ if ($result === false) {
+ throw EioException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * eio_readahead populates the page cache with data from a file so that subsequent reads from
+ * that file will not block on disk I/O. See READAHEAD(2) man page for details.
+ *
+ * @param mixed $fd Stream, Socket resource, or numeric file descriptor
+ * @param int $offset Starting point from which data is to be read.
+ * @param int $length Number of bytes to be read.
+ * @param int $pri The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or NULL.
+ * If NULL passed, pri internally is set to
+ * EIO_PRI_DEFAULT.
+ * @param callable $callback
+ * callback function is called when the request is done.
+ * It should match the following prototype:
+ *
+ *
+ * data
+ * is custom data passed to the request.
+ *
+ *
+ * result
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ *
+ * req
+ * is optional request resource which can be used with functions like eio_get_last_error
+ *
+ *
+ *
+ * is custom data passed to the request.
+ *
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ * is optional request resource which can be used with functions like eio_get_last_error
+ * @param mixed $data is custom data passed to the request.
+ * @return resource eio_readahead returns request resource on success.
+ * @throws EioException
+ *
+ */
+function eio_readahead($fd, int $offset, int $length, int $pri = EIO_PRI_DEFAULT, callable $callback = null, $data = null)
+{
+ error_clear_last();
+ $result = \eio_readahead($fd, $offset, $length, $pri, $callback, $data);
+ if ($result === false) {
+ throw EioException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Reads through a whole directory(via the opendir, readdir and
+ * closedir system calls) and returns either the names or an array in
+ * result argument of callback
+ * function, depending on the flags argument.
+ *
+ * @param string $path Directory path.
+ * @param int $flags Combination of EIO_READDIR_* constants.
+ * @param int $pri The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or NULL.
+ * If NULL passed, pri internally is set to
+ * EIO_PRI_DEFAULT.
+ * @param callable $callback
+ * callback function is called when the request is done.
+ * It should match the following prototype:
+ *
+ *
+ * data
+ * is custom data passed to the request.
+ *
+ *
+ * result
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ *
+ * req
+ * is optional request resource which can be used with functions like eio_get_last_error
+ *
+ *
+ *
+ * is custom data passed to the request.
+ *
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ * is optional request resource which can be used with functions like eio_get_last_error
+ * @param string $data is custom data passed to the request.
+ * @return resource eio_readdir returns request resource on success. Sets result argument of
+ * callback function according to
+ * flags:
+ *
+ *
+ *
+ *
+ *
+ *
+ * EIO_READDIR_DENTS
+ * (integer)
+ *
+ *
+ *
+ * eio_readdir flag. If specified, the result argument of the callback
+ * becomes an array with the following keys:
+ * 'names' - array of directory names
+ * 'dents' - array of struct
+ * eio_dirent-like arrays having the following keys each:
+ * 'name' - the directory name;
+ * 'type' - one of EIO_DT_*
+ * constants;
+ * 'inode' - the inode number, if available, otherwise
+ * unspecified;
+ *
+ *
+ *
+ *
+ *
+ * EIO_READDIR_DIRS_FIRST
+ * (integer)
+ *
+ *
+ *
+ * When this flag is specified, the names will be returned in an order
+ * where likely directories come first, in optimal stat order.
+ *
+ *
+ *
+ *
+ *
+ * EIO_READDIR_STAT_ORDER
+ * (integer)
+ *
+ *
+ *
+ * When this flag is specified, then the names will be returned in an order
+ * suitable for stat'ing each one. When planning to
+ * stat all files in the given directory, the
+ * returned order will likely be
+ * fastest.
+ *
+ *
+ *
+ *
+ *
+ * EIO_READDIR_FOUND_UNKNOWN
+ * (integer)
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * Node types:
+ *
+ *
+ *
+ *
+ *
+ * EIO_DT_UNKNOWN
+ * (integer)
+ *
+ *
+ *
+ * Unknown node type(very common). Further stat needed.
+ *
+ *
+ *
+ *
+ *
+ * EIO_DT_FIFO
+ * (integer)
+ *
+ *
+ *
+ * FIFO node type
+ *
+ *
+ *
+ *
+ *
+ * EIO_DT_CHR
+ * (integer)
+ *
+ *
+ *
+ * Node type
+ *
+ *
+ *
+ *
+ *
+ * EIO_DT_MPC
+ * (integer)
+ *
+ *
+ *
+ * Multiplexed char device (v7+coherent) node type
+ *
+ *
+ *
+ *
+ *
+ * EIO_DT_DIR
+ * (integer)
+ *
+ *
+ *
+ * Directory node type
+ *
+ *
+ *
+ *
+ *
+ * EIO_DT_NAM
+ * (integer)
+ *
+ *
+ *
+ * Xenix special named file node type
+ *
+ *
+ *
+ *
+ *
+ * EIO_DT_BLK
+ * (integer)
+ *
+ *
+ *
+ * Node type
+ *
+ *
+ *
+ *
+ *
+ * EIO_DT_MPB
+ * (integer)
+ *
+ *
+ *
+ * Multiplexed block device (v7+coherent)
+ *
+ *
+ *
+ *
+ *
+ * EIO_DT_REG
+ * (integer)
+ *
+ *
+ *
+ * Node type
+ *
+ *
+ *
+ *
+ *
+ * EIO_DT_NWK
+ * (integer)
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * EIO_DT_CMP
+ * (integer)
+ *
+ *
+ *
+ * HP-UX network special node type
+ *
+ *
+ *
+ *
+ *
+ * EIO_DT_LNK
+ * (integer)
+ *
+ *
+ *
+ * Link node type
+ *
+ *
+ *
+ *
+ *
+ * EIO_DT_SOCK
+ * (integer)
+ *
+ *
+ *
+ * Socket node type
+ *
+ *
+ *
+ *
+ *
+ * EIO_DT_DOOR
+ * (integer)
+ *
+ *
+ *
+ * Solaris door node type
+ *
+ *
+ *
+ *
+ *
+ * EIO_DT_WHT
+ * (integer)
+ *
+ *
+ *
+ * Node type
+ *
+ *
+ *
+ *
+ *
+ * EIO_DT_MAX
+ * (integer)
+ *
+ *
+ *
+ * Highest node type value
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * @throws EioException
+ *
+ */
+function eio_readdir(string $path, int $flags, int $pri, callable $callback, string $data = null)
+{
+ error_clear_last();
+ $result = \eio_readdir($path, $flags, $pri, $callback, $data);
+ if ($result === false) {
+ throw EioException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ *
+ *
+ * @param string $path Source symbolic link path
+ * @param int $pri The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or NULL.
+ * If NULL passed, pri internally is set to
+ * EIO_PRI_DEFAULT.
+ * @param callable $callback
+ * callback function is called when the request is done.
+ * It should match the following prototype:
+ *
+ *
+ * data
+ * is custom data passed to the request.
+ *
+ *
+ * result
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ *
+ * req
+ * is optional request resource which can be used with functions like eio_get_last_error
+ *
+ *
+ *
+ * is custom data passed to the request.
+ *
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ * is optional request resource which can be used with functions like eio_get_last_error
+ * @param string $data is custom data passed to the request.
+ * @return resource eio_readlink returns request resource on success.
+ * @throws EioException
+ *
+ */
+function eio_readlink(string $path, int $pri, callable $callback, string $data = null)
+{
+ error_clear_last();
+ $result = \eio_readlink($path, $pri, $callback, $data);
+ if ($result === false) {
+ throw EioException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * eio_rename renames or moves a file to new location.
+ *
+ * @param string $path Source path
+ * @param string $new_path Target path
+ * @param int $pri The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or NULL.
+ * If NULL passed, pri internally is set to
+ * EIO_PRI_DEFAULT.
+ * @param callable $callback
+ * callback function is called when the request is done.
+ * It should match the following prototype:
+ *
+ *
+ * data
+ * is custom data passed to the request.
+ *
+ *
+ * result
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ *
+ * req
+ * is optional request resource which can be used with functions like eio_get_last_error
+ *
+ *
+ *
+ * is custom data passed to the request.
+ *
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ * is optional request resource which can be used with functions like eio_get_last_error
+ * @param mixed $data is custom data passed to the request.
+ * @return resource eio_rename returns request resource on success.
+ * @throws EioException
+ *
+ */
+function eio_rename(string $path, string $new_path, int $pri = EIO_PRI_DEFAULT, callable $callback = null, $data = null)
+{
+ error_clear_last();
+ $result = \eio_rename($path, $new_path, $pri, $callback, $data);
+ if ($result === false) {
+ throw EioException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * eio_rmdir removes a directory.
+ *
+ * @param string $path Directory path
+ * @param int $pri The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or NULL.
+ * If NULL passed, pri internally is set to
+ * EIO_PRI_DEFAULT.
+ * @param callable $callback
+ * callback function is called when the request is done.
+ * It should match the following prototype:
+ *
+ *
+ * data
+ * is custom data passed to the request.
+ *
+ *
+ * result
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ *
+ * req
+ * is optional request resource which can be used with functions like eio_get_last_error
+ *
+ *
+ *
+ * is custom data passed to the request.
+ *
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ * is optional request resource which can be used with functions like eio_get_last_error
+ * @param mixed $data is custom data passed to the request.
+ * @return resource eio_rmdir returns request resource on success.
+ * @throws EioException
+ *
+ */
+function eio_rmdir(string $path, int $pri = EIO_PRI_DEFAULT, callable $callback = null, $data = null)
+{
+ error_clear_last();
+ $result = \eio_rmdir($path, $pri, $callback, $data);
+ if ($result === false) {
+ throw EioException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * eio_seek repositions the offset of the open file associated with
+ * stream, Socket resource, or file descriptor specified by fd to the argument offset according to the directive whence as follows:
+ *
+ * EIO_SEEK_SET - Set position equal to offset bytes.
+ * EIO_SEEK_CUR - Set position to current location plus offset.
+ * EIO_SEEK_END - Set position to end-of-file plus offset.
+ *
+ *
+ * @param mixed $fd Stream, Socket resource, or numeric file descriptor
+ * @param int $offset Starting point from which data is to be read.
+ * @param int $whence Number of bytes to be read.
+ * @param int $pri The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or NULL.
+ * If NULL passed, pri internally is set to
+ * EIO_PRI_DEFAULT.
+ * @param callable $callback
+ * callback function is called when the request is done.
+ * It should match the following prototype:
+ *
+ *
+ * data
+ * is custom data passed to the request.
+ *
+ *
+ * result
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ *
+ * req
+ * is optional request resource which can be used with functions like eio_get_last_error
+ *
+ *
+ *
+ * is custom data passed to the request.
+ *
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ * is optional request resource which can be used with functions like eio_get_last_error
+ * @param mixed $data is custom data passed to the request.
+ * @return resource eio_seek returns request resource on success.
+ * @throws EioException
+ *
+ */
+function eio_seek($fd, int $offset, int $whence, int $pri = EIO_PRI_DEFAULT, callable $callback = null, $data = null)
+{
+ error_clear_last();
+ $result = \eio_seek($fd, $offset, $whence, $pri, $callback, $data);
+ if ($result === false) {
+ throw EioException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * eio_sendfile copies data between one file descriptor
+ * and another. See SENDFILE(2) man page for details.
+ *
+ * @param mixed $out_fd Output stream, Socket resource, or file descriptor. Should be opened for writing.
+ * @param mixed $in_fd Input stream, Socket resource, or file descriptor. Should be opened for reading.
+ * @param int $offset Offset within the source file.
+ * @param int $length Number of bytes to copy.
+ * @param int $pri The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or NULL.
+ * If NULL passed, pri internally is set to
+ * EIO_PRI_DEFAULT.
+ * @param callable $callback
+ * callback function is called when the request is done.
+ * It should match the following prototype:
+ *
+ *
+ * data
+ * is custom data passed to the request.
+ *
+ *
+ * result
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ *
+ * req
+ * is optional request resource which can be used with functions like eio_get_last_error
+ *
+ *
+ *
+ * is custom data passed to the request.
+ *
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ * is optional request resource which can be used with functions like eio_get_last_error
+ * @param string $data is custom data passed to the request.
+ * @return resource eio_sendfile returns request resource on success.
+ * @throws EioException
+ *
+ */
+function eio_sendfile($out_fd, $in_fd, int $offset, int $length, int $pri = null, callable $callback = null, string $data = null)
+{
+ error_clear_last();
+ if ($data !== null) {
+ $result = \eio_sendfile($out_fd, $in_fd, $offset, $length, $pri, $callback, $data);
+ } elseif ($callback !== null) {
+ $result = \eio_sendfile($out_fd, $in_fd, $offset, $length, $pri, $callback);
+ } elseif ($pri !== null) {
+ $result = \eio_sendfile($out_fd, $in_fd, $offset, $length, $pri);
+ } else {
+ $result = \eio_sendfile($out_fd, $in_fd, $offset, $length);
+ }
+ if ($result === false) {
+ throw EioException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * eio_stat returns file status information in
+ * result argument of callback
+ *
+ * @param string $path The file path
+ * @param int $pri The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or NULL.
+ * If NULL passed, pri internally is set to
+ * EIO_PRI_DEFAULT.
+ * @param callable $callback
+ * callback function is called when the request is done.
+ * It should match the following prototype:
+ *
+ *
+ * data
+ * is custom data passed to the request.
+ *
+ *
+ * result
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ *
+ * req
+ * is optional request resource which can be used with functions like eio_get_last_error
+ *
+ *
+ *
+ * is custom data passed to the request.
+ *
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ * is optional request resource which can be used with functions like eio_get_last_error
+ * @param mixed $data is custom data passed to the request.
+ * @return resource eio_stat returns request resource on success. On success assigns result argument of
+ * callback to an array.
+ * @throws EioException
+ *
+ */
+function eio_stat(string $path, int $pri, callable $callback, $data = null)
+{
+ error_clear_last();
+ $result = \eio_stat($path, $pri, $callback, $data);
+ if ($result === false) {
+ throw EioException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * eio_statvfs returns file system statistics information in
+ * result argument of callback
+ *
+ * @param string $path Pathname of any file within the mounted file system
+ * @param int $pri The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or NULL.
+ * If NULL passed, pri internally is set to
+ * EIO_PRI_DEFAULT.
+ * @param callable $callback
+ * callback function is called when the request is done.
+ * It should match the following prototype:
+ *
+ *
+ * data
+ * is custom data passed to the request.
+ *
+ *
+ * result
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ *
+ * req
+ * is optional request resource which can be used with functions like eio_get_last_error
+ *
+ *
+ *
+ * is custom data passed to the request.
+ *
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ * is optional request resource which can be used with functions like eio_get_last_error
+ * @param mixed $data is custom data passed to the request.
+ * @return resource eio_statvfs returns request resource on success. On success assigns result argument of
+ * callback to an array.
+ * @throws EioException
+ *
+ */
+function eio_statvfs(string $path, int $pri, callable $callback, $data = null)
+{
+ error_clear_last();
+ if ($data !== null) {
+ $result = \eio_statvfs($path, $pri, $callback, $data);
+ } else {
+ $result = \eio_statvfs($path, $pri, $callback);
+ }
+ if ($result === false) {
+ throw EioException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * eio_symlink creates a symbolic link
+ * new_path to path.
+ *
+ * @param string $path Source path
+ * @param string $new_path Target path
+ * @param int $pri The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or NULL.
+ * If NULL passed, pri internally is set to
+ * EIO_PRI_DEFAULT.
+ * @param callable $callback
+ * callback function is called when the request is done.
+ * It should match the following prototype:
+ *
+ *
+ * data
+ * is custom data passed to the request.
+ *
+ *
+ * result
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ *
+ * req
+ * is optional request resource which can be used with functions like eio_get_last_error
+ *
+ *
+ *
+ * is custom data passed to the request.
+ *
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ * is optional request resource which can be used with functions like eio_get_last_error
+ * @param mixed $data is custom data passed to the request.
+ * @return resource eio_symlink returns request resource on success.
+ * @throws EioException
+ *
+ */
+function eio_symlink(string $path, string $new_path, int $pri = EIO_PRI_DEFAULT, callable $callback = null, $data = null)
+{
+ error_clear_last();
+ $result = \eio_symlink($path, $new_path, $pri, $callback, $data);
+ if ($result === false) {
+ throw EioException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * eio_sync_file_range permits fine control when synchronizing the open file referred to by the file
+ * descriptor fd with disk.
+ *
+ * @param mixed $fd File descriptor
+ * @param int $offset The starting byte of the file range to be synchronized
+ * @param int $nbytes Specifies the length of the range to be synchronized, in bytes. If
+ * nbytes is zero, then all bytes from offset through
+ * to the end of file are synchronized.
+ * @param int $flags A bit-mask. Can include any of the following values:
+ * EIO_SYNC_FILE_RANGE_WAIT_BEFORE,
+ * EIO_SYNC_FILE_RANGE_WRITE,
+ * EIO_SYNC_FILE_RANGE_WAIT_AFTER. These flags have
+ * the same meaning as their SYNC_FILE_RANGE_*
+ * counterparts(see SYNC_FILE_RANGE(2) man page).
+ * @param int $pri The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or NULL.
+ * If NULL passed, pri internally is set to
+ * EIO_PRI_DEFAULT.
+ * @param callable $callback
+ * callback function is called when the request is done.
+ * It should match the following prototype:
+ *
+ *
+ * data
+ * is custom data passed to the request.
+ *
+ *
+ * result
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ *
+ * req
+ * is optional request resource which can be used with functions like eio_get_last_error
+ *
+ *
+ *
+ * is custom data passed to the request.
+ *
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ * is optional request resource which can be used with functions like eio_get_last_error
+ * @param mixed $data is custom data passed to the request.
+ * @return resource eio_sync_file_range returns request resource on success.
+ * @throws EioException
+ *
+ */
+function eio_sync_file_range($fd, int $offset, int $nbytes, int $flags, int $pri = EIO_PRI_DEFAULT, callable $callback = null, $data = null)
+{
+ error_clear_last();
+ $result = \eio_sync_file_range($fd, $offset, $nbytes, $flags, $pri, $callback, $data);
+ if ($result === false) {
+ throw EioException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ *
+ *
+ * @param int $pri
+ * @param callable $callback
+ * @param mixed $data
+ * @return resource eio_sync returns request resource on success.
+ * @throws EioException
+ *
+ */
+function eio_sync(int $pri = EIO_PRI_DEFAULT, callable $callback = null, $data = null)
+{
+ error_clear_last();
+ $result = \eio_sync($pri, $callback, $data);
+ if ($result === false) {
+ throw EioException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ *
+ *
+ * @param mixed $fd File descriptor
+ * @param int $pri The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or NULL.
+ * If NULL passed, pri internally is set to
+ * EIO_PRI_DEFAULT.
+ * @param callable $callback
+ * callback function is called when the request is done.
+ * It should match the following prototype:
+ *
+ *
+ * data
+ * is custom data passed to the request.
+ *
+ *
+ * result
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ *
+ * req
+ * is optional request resource which can be used with functions like eio_get_last_error
+ *
+ *
+ *
+ * is custom data passed to the request.
+ *
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ * is optional request resource which can be used with functions like eio_get_last_error
+ * @param mixed $data is custom data passed to the request.
+ * @return resource eio_syncfs returns request resource on success.
+ * @throws EioException
+ *
+ */
+function eio_syncfs($fd, int $pri = EIO_PRI_DEFAULT, callable $callback = null, $data = null)
+{
+ error_clear_last();
+ $result = \eio_syncfs($fd, $pri, $callback, $data);
+ if ($result === false) {
+ throw EioException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * eio_truncate causes the regular file named by path to be truncated to
+ * a size of precisely length bytes
+ *
+ * @param string $path File path
+ * @param int $offset Offset from beginning of the file.
+ * @param int $pri The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or NULL.
+ * If NULL passed, pri internally is set to
+ * EIO_PRI_DEFAULT.
+ * @param callable $callback
+ * callback function is called when the request is done.
+ * It should match the following prototype:
+ *
+ *
+ * data
+ * is custom data passed to the request.
+ *
+ *
+ * result
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ *
+ * req
+ * is optional request resource which can be used with functions like eio_get_last_error
+ *
+ *
+ *
+ * is custom data passed to the request.
+ *
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ * is optional request resource which can be used with functions like eio_get_last_error
+ * @param mixed $data is custom data passed to the request.
+ * @return resource eio_busy returns request resource on success.
+ * @throws EioException
+ *
+ */
+function eio_truncate(string $path, int $offset = 0, int $pri = EIO_PRI_DEFAULT, callable $callback = null, $data = null)
+{
+ error_clear_last();
+ $result = \eio_truncate($path, $offset, $pri, $callback, $data);
+ if ($result === false) {
+ throw EioException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * eio_unlink deletes a name from the file system.
+ *
+ * @param string $path Path to file
+ * @param int $pri The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or NULL.
+ * If NULL passed, pri internally is set to
+ * EIO_PRI_DEFAULT.
+ * @param callable $callback
+ * callback function is called when the request is done.
+ * It should match the following prototype:
+ *
+ *
+ * data
+ * is custom data passed to the request.
+ *
+ *
+ * result
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ *
+ * req
+ * is optional request resource which can be used with functions like eio_get_last_error
+ *
+ *
+ *
+ * is custom data passed to the request.
+ *
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ * is optional request resource which can be used with functions like eio_get_last_error
+ * @param mixed $data is custom data passed to the request.
+ * @return resource eio_unlink returns request resource on success.
+ * @throws EioException
+ *
+ */
+function eio_unlink(string $path, int $pri = EIO_PRI_DEFAULT, callable $callback = null, $data = null)
+{
+ error_clear_last();
+ $result = \eio_unlink($path, $pri, $callback, $data);
+ if ($result === false) {
+ throw EioException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ *
+ *
+ * @param string $path Path to the file.
+ * @param float $atime Access time
+ * @param float $mtime Modification time
+ * @param int $pri The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or NULL.
+ * If NULL passed, pri internally is set to
+ * EIO_PRI_DEFAULT.
+ * @param callable $callback
+ * callback function is called when the request is done.
+ * It should match the following prototype:
+ *
+ *
+ * data
+ * is custom data passed to the request.
+ *
+ *
+ * result
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ *
+ * req
+ * is optional request resource which can be used with functions like eio_get_last_error
+ *
+ *
+ *
+ * is custom data passed to the request.
+ *
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ * is optional request resource which can be used with functions like eio_get_last_error
+ * @param mixed $data is custom data passed to the request.
+ * @return resource eio_utime returns request resource on success.
+ * @throws EioException
+ *
+ */
+function eio_utime(string $path, float $atime, float $mtime, int $pri = EIO_PRI_DEFAULT, callable $callback = null, $data = null)
+{
+ error_clear_last();
+ $result = \eio_utime($path, $atime, $mtime, $pri, $callback, $data);
+ if ($result === false) {
+ throw EioException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * eio_write writes up to length
+ * bytes from str at offset
+ * offset from the beginning of the file.
+ *
+ * @param mixed $fd Stream, Socket resource, or numeric file descriptor, e.g. returned by eio_open
+ * @param string $str Source string
+ * @param int $length Maximum number of bytes to write.
+ * @param int $offset Offset from the beginning of file.
+ * @param int $pri The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or NULL.
+ * If NULL passed, pri internally is set to
+ * EIO_PRI_DEFAULT.
+ * @param callable $callback
+ * callback function is called when the request is done.
+ * It should match the following prototype:
+ *
+ *
+ * data
+ * is custom data passed to the request.
+ *
+ *
+ * result
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ *
+ * req
+ * is optional request resource which can be used with functions like eio_get_last_error
+ *
+ *
+ *
+ * is custom data passed to the request.
+ *
+ * request-specific result value; basically, the value returned by corresponding
+ * system call.
+ *
+ * is optional request resource which can be used with functions like eio_get_last_error
+ * @param mixed $data is custom data passed to the request.
+ * @return resource eio_write returns request resource on success.
+ * @throws EioException
+ *
+ */
+function eio_write($fd, string $str, int $length = 0, int $offset = 0, int $pri = EIO_PRI_DEFAULT, callable $callback = null, $data = null)
+{
+ error_clear_last();
+ $result = \eio_write($fd, $str, $length, $offset, $pri, $callback, $data);
+ if ($result === false) {
+ throw EioException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/errorfunc.php b/vendor/thecodingmachine/safe/generated/errorfunc.php
new file mode 100644
index 000000000..ac64a7d8b
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/errorfunc.php
@@ -0,0 +1,82 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\ErrorfuncException;
+
+/**
+ * Sends an error message to the web server's error log or to a file.
+ *
+ * @param string $message The error message that should be logged.
+ * @param int $message_type Says where the error should go. The possible message types are as
+ * follows:
+ *
+ *
+ * error_log log types
+ *
+ *
+ *
+ * 0
+ *
+ * message is sent to PHP's system logger, using
+ * the Operating System's system logging mechanism or a file, depending
+ * on what the error_log
+ * configuration directive is set to. This is the default option.
+ *
+ *
+ *
+ * 1
+ *
+ * message is sent by email to the address in
+ * the destination parameter. This is the only
+ * message type where the fourth parameter,
+ * extra_headers is used.
+ *
+ *
+ *
+ * 2
+ *
+ * No longer an option.
+ *
+ *
+ *
+ * 3
+ *
+ * message is appended to the file
+ * destination. A newline is not automatically
+ * added to the end of the message string.
+ *
+ *
+ *
+ * 4
+ *
+ * message is sent directly to the SAPI logging
+ * handler.
+ *
+ *
+ *
+ *
+ *
+ * @param string $destination The destination. Its meaning depends on the
+ * message_type parameter as described above.
+ * @param string $extra_headers The extra headers. It's used when the message_type
+ * parameter is set to 1.
+ * This message type uses the same internal function as
+ * mail does.
+ * @throws ErrorfuncException
+ *
+ */
+function error_log(string $message, int $message_type = 0, string $destination = null, string $extra_headers = null): void
+{
+ error_clear_last();
+ if ($extra_headers !== null) {
+ $result = \error_log($message, $message_type, $destination, $extra_headers);
+ } elseif ($destination !== null) {
+ $result = \error_log($message, $message_type, $destination);
+ } else {
+ $result = \error_log($message, $message_type);
+ }
+ if ($result === false) {
+ throw ErrorfuncException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/exec.php b/vendor/thecodingmachine/safe/generated/exec.php
new file mode 100644
index 000000000..e9a40e08b
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/exec.php
@@ -0,0 +1,159 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\ExecException;
+
+/**
+ * proc_get_status fetches data about a
+ * process opened using proc_open.
+ *
+ * @param resource $process The proc_open resource that will
+ * be evaluated.
+ * @return array An array of collected information on success. The returned array contains the following elements:
+ *
+ *
+ *
+ *
+ * elementtypedescription
+ *
+ *
+ *
+ * command
+ * string
+ *
+ * The command string that was passed to proc_open.
+ *
+ *
+ *
+ * pid
+ * int
+ * process id
+ *
+ *
+ * running
+ * bool
+ *
+ * TRUE if the process is still running, FALSE if it has
+ * terminated.
+ *
+ *
+ *
+ * signaled
+ * bool
+ *
+ * TRUE if the child process has been terminated by
+ * an uncaught signal. Always set to FALSE on Windows.
+ *
+ *
+ *
+ * stopped
+ * bool
+ *
+ * TRUE if the child process has been stopped by a
+ * signal. Always set to FALSE on Windows.
+ *
+ *
+ *
+ * exitcode
+ * int
+ *
+ * The exit code returned by the process (which is only
+ * meaningful if running is FALSE).
+ * Only first call of this function return real value, next calls return
+ * -1.
+ *
+ *
+ *
+ * termsig
+ * int
+ *
+ * The number of the signal that caused the child process to terminate
+ * its execution (only meaningful if signaled is TRUE).
+ *
+ *
+ *
+ * stopsig
+ * int
+ *
+ * The number of the signal that caused the child process to stop its
+ * execution (only meaningful if stopped is TRUE).
+ *
+ *
+ *
+ *
+ *
+ * @throws ExecException
+ *
+ */
+function proc_get_status($process): array
+{
+ error_clear_last();
+ $result = \proc_get_status($process);
+ if ($result === false) {
+ throw ExecException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * proc_nice changes the priority of the current
+ * process by the amount specified in increment. A
+ * positive increment will lower the priority of the
+ * current process, whereas a negative increment
+ * will raise the priority.
+ *
+ * proc_nice is not related to
+ * proc_open and its associated functions in any way.
+ *
+ * @param int $increment The new priority value, the value of this may differ on platforms.
+ *
+ * On Unix, a low value, such as -20 means high priority
+ * wheras a positive value have a lower priority.
+ *
+ * For Windows the increment parameter have the
+ * following meanings:
+ * @throws ExecException
+ *
+ */
+function proc_nice(int $increment): void
+{
+ error_clear_last();
+ $result = \proc_nice($increment);
+ if ($result === false) {
+ throw ExecException::createFromPhpError();
+ }
+}
+
+
+/**
+ * system is just like the C version of the
+ * function in that it executes the given
+ * command and outputs the result.
+ *
+ * The system call also tries to automatically
+ * flush the web server's output buffer after each line of output if
+ * PHP is running as a server module.
+ *
+ * If you need to execute a command and have all the data from the
+ * command passed directly back without any interference, use the
+ * passthru function.
+ *
+ * @param string $command The command that will be executed.
+ * @param int $return_var If the return_var argument is present, then the
+ * return status of the executed command will be written to this
+ * variable.
+ * @return string Returns the last line of the command output on success.
+ * @throws ExecException
+ *
+ */
+function system(string $command, int &$return_var = null): string
+{
+ error_clear_last();
+ $result = \system($command, $return_var);
+ if ($result === false) {
+ throw ExecException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/fileinfo.php b/vendor/thecodingmachine/safe/generated/fileinfo.php
new file mode 100644
index 000000000..50345b67c
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/fileinfo.php
@@ -0,0 +1,75 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\FileinfoException;
+
+/**
+ * This function closes the resource opened by finfo_open.
+ *
+ * @param resource $finfo Fileinfo resource returned by finfo_open.
+ * @throws FileinfoException
+ *
+ */
+function finfo_close($finfo): void
+{
+ error_clear_last();
+ $result = \finfo_close($finfo);
+ if ($result === false) {
+ throw FileinfoException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Procedural style
+ *
+ * Object oriented style (constructor):
+ *
+ * This function opens a magic database and returns its resource.
+ *
+ * @param int $options One or disjunction of more Fileinfo
+ * constants.
+ * @param string $magic_file Name of a magic database file, usually something like
+ * /path/to/magic.mime. If not specified, the
+ * MAGIC environment variable is used. If the
+ * environment variable isn't set, then PHP's bundled magic database will
+ * be used.
+ *
+ * Passing NULL or an empty string will be equivalent to the default
+ * value.
+ * @return resource (Procedural style only)
+ * Returns a magic database resource on success.
+ * @throws FileinfoException
+ *
+ */
+function finfo_open(int $options = FILEINFO_NONE, string $magic_file = "")
+{
+ error_clear_last();
+ $result = \finfo_open($options, $magic_file);
+ if ($result === false) {
+ throw FileinfoException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Returns the MIME content type for a file as determined by using
+ * information from the magic.mime file.
+ *
+ * @param string $filename Path to the tested file.
+ * @return string Returns the content type in MIME format, like
+ * text/plain or application/octet-stream.
+ * @throws FileinfoException
+ *
+ */
+function mime_content_type(string $filename): string
+{
+ error_clear_last();
+ $result = \mime_content_type($filename);
+ if ($result === false) {
+ throw FileinfoException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/filesystem.php b/vendor/thecodingmachine/safe/generated/filesystem.php
new file mode 100644
index 000000000..ee0a4bdf1
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/filesystem.php
@@ -0,0 +1,1488 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\FilesystemException;
+
+/**
+ * Attempts to change the group of the file filename
+ * to group.
+ *
+ * Only the superuser may change the group of a file arbitrarily; other users
+ * may change the group of a file to any group of which that user is a member.
+ *
+ * @param string $filename Path to the file.
+ * @param string|int $group A group name or number.
+ * @throws FilesystemException
+ *
+ */
+function chgrp(string $filename, $group): void
+{
+ error_clear_last();
+ $result = \chgrp($filename, $group);
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Attempts to change the mode of the specified file to that given in
+ * mode.
+ *
+ * @param string $filename Path to the file.
+ * @param int $mode Note that mode is not automatically
+ * assumed to be an octal value, so to ensure the expected operation,
+ * you need to prefix mode with a zero (0).
+ * Strings such as "g+w" will not work properly.
+ *
+ *
+ *
+ *
+ * ]]>
+ *
+ *
+ *
+ * The mode parameter consists of three octal
+ * number components specifying access restrictions for the owner,
+ * the user group in which the owner is in, and to everybody else in
+ * this order. One component can be computed by adding up the needed
+ * permissions for that target user base. Number 1 means that you
+ * grant execute rights, number 2 means that you make the file
+ * writeable, number 4 means that you make the file readable. Add
+ * up these numbers to specify needed rights. You can also read more
+ * about modes on Unix systems with 'man 1 chmod'
+ * and 'man 2 chmod'.
+ *
+ *
+ *
+ *
+ */
+function chmod(string $filename, int $mode): void
+{
+ error_clear_last();
+ $result = \chmod($filename, $mode);
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Attempts to change the owner of the file filename
+ * to user user. Only the superuser may change the
+ * owner of a file.
+ *
+ * @param string $filename Path to the file.
+ * @param string|int $user A user name or number.
+ * @throws FilesystemException
+ *
+ */
+function chown(string $filename, $user): void
+{
+ error_clear_last();
+ $result = \chown($filename, $user);
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Makes a copy of the file source to
+ * dest.
+ *
+ * If you wish to move a file, use the rename function.
+ *
+ * @param string $source Path to the source file.
+ * @param string $dest The destination path. If dest is a URL, the
+ * copy operation may fail if the wrapper does not support overwriting of
+ * existing files.
+ *
+ * If the destination file already exists, it will be overwritten.
+ * @param resource $context A valid context resource created with
+ * stream_context_create.
+ * @throws FilesystemException
+ *
+ */
+function copy(string $source, string $dest, $context = null): void
+{
+ error_clear_last();
+ if ($context !== null) {
+ $result = \copy($source, $dest, $context);
+ } else {
+ $result = \copy($source, $dest);
+ }
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Given a string containing a directory, this function will return the
+ * number of bytes available on the corresponding filesystem or disk
+ * partition.
+ *
+ * @param string $directory A directory of the filesystem or disk partition.
+ *
+ * Given a file name instead of a directory, the behaviour of the
+ * function is unspecified and may differ between operating systems and
+ * PHP versions.
+ * @return float Returns the number of available bytes as a float.
+ * @throws FilesystemException
+ *
+ */
+function disk_free_space(string $directory): float
+{
+ error_clear_last();
+ $result = \disk_free_space($directory);
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Given a string containing a directory, this function will return the total
+ * number of bytes on the corresponding filesystem or disk partition.
+ *
+ * @param string $directory A directory of the filesystem or disk partition.
+ * @return float Returns the total number of bytes as a float.
+ * @throws FilesystemException
+ *
+ */
+function disk_total_space(string $directory): float
+{
+ error_clear_last();
+ $result = \disk_total_space($directory);
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * The file pointed to by handle is closed.
+ *
+ * @param resource $handle The file pointer must be valid, and must point to a file successfully
+ * opened by fopen or fsockopen.
+ * @throws FilesystemException
+ *
+ */
+function fclose($handle): void
+{
+ error_clear_last();
+ $result = \fclose($handle);
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function forces a write of all buffered output to the resource
+ * pointed to by the file handle.
+ *
+ * @param resource $handle The file pointer must be valid, and must point to
+ * a file successfully opened by fopen or
+ * fsockopen (and not yet closed by
+ * fclose).
+ * @throws FilesystemException
+ *
+ */
+function fflush($handle): void
+{
+ error_clear_last();
+ $result = \fflush($handle);
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function is similar to file, except that
+ * file_get_contents returns the file in a
+ * string, starting at the specified offset
+ * up to maxlen bytes. On failure,
+ * file_get_contents will return FALSE.
+ *
+ * file_get_contents is the preferred way to read the
+ * contents of a file into a string. It will use memory mapping techniques if
+ * supported by your OS to enhance performance.
+ *
+ * @param string $filename Name of the file to read.
+ * @param bool $use_include_path The FILE_USE_INCLUDE_PATH constant can be used
+ * to trigger include path
+ * search.
+ * This is not possible if strict typing
+ * is enabled, since FILE_USE_INCLUDE_PATH is an
+ * int. Use TRUE instead.
+ * @param resource|null $context A valid context resource created with
+ * stream_context_create. If you don't need to use a
+ * custom context, you can skip this parameter by NULL.
+ * @param int $offset The offset where the reading starts on the original stream.
+ * Negative offsets count from the end of the stream.
+ *
+ * Seeking (offset) is not supported with remote files.
+ * Attempting to seek on non-local files may work with small offsets, but this
+ * is unpredictable because it works on the buffered stream.
+ * @param int $maxlen Maximum length of data read. The default is to read until end
+ * of file is reached. Note that this parameter is applied to the
+ * stream processed by the filters.
+ * @return string The function returns the read data.
+ * @throws FilesystemException
+ *
+ */
+function file_get_contents(string $filename, bool $use_include_path = false, $context = null, int $offset = 0, int $maxlen = null): string
+{
+ error_clear_last();
+ if ($maxlen !== null) {
+ $result = \file_get_contents($filename, $use_include_path, $context, $offset, $maxlen);
+ } elseif ($offset !== 0) {
+ $result = \file_get_contents($filename, $use_include_path, $context, $offset);
+ } elseif ($context !== null) {
+ $result = \file_get_contents($filename, $use_include_path, $context);
+ } else {
+ $result = \file_get_contents($filename, $use_include_path);
+ }
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * This function is identical to calling fopen,
+ * fwrite and fclose successively
+ * to write data to a file.
+ *
+ * If filename does not exist, the file is created.
+ * Otherwise, the existing file is overwritten, unless the
+ * FILE_APPEND flag is set.
+ *
+ * @param string $filename Path to the file where to write the data.
+ * @param mixed $data The data to write. Can be either a string, an
+ * array or a stream resource.
+ *
+ * If data is a stream resource, the
+ * remaining buffer of that stream will be copied to the specified file.
+ * This is similar with using stream_copy_to_stream.
+ *
+ * You can also specify the data parameter as a single
+ * dimension array. This is equivalent to
+ * file_put_contents($filename, implode('', $array)).
+ * @param int $flags The value of flags can be any combination of
+ * the following flags, joined with the binary OR (|)
+ * operator.
+ *
+ *
+ * Available flags
+ *
+ *
+ *
+ * Flag
+ * Description
+ *
+ *
+ *
+ *
+ *
+ * FILE_USE_INCLUDE_PATH
+ *
+ *
+ * Search for filename in the include directory.
+ * See include_path for more
+ * information.
+ *
+ *
+ *
+ *
+ * FILE_APPEND
+ *
+ *
+ * If file filename already exists, append
+ * the data to the file instead of overwriting it.
+ *
+ *
+ *
+ *
+ * LOCK_EX
+ *
+ *
+ * Acquire an exclusive lock on the file while proceeding to the
+ * writing. In other words, a flock call happens
+ * between the fopen call and the
+ * fwrite call. This is not identical to an
+ * fopen call with mode "x".
+ *
+ *
+ *
+ *
+ *
+ * @param resource $context A valid context resource created with
+ * stream_context_create.
+ * @return int This function returns the number of bytes that were written to the file.
+ * @throws FilesystemException
+ *
+ */
+function file_put_contents(string $filename, $data, int $flags = 0, $context = null): int
+{
+ error_clear_last();
+ if ($context !== null) {
+ $result = \file_put_contents($filename, $data, $flags, $context);
+ } else {
+ $result = \file_put_contents($filename, $data, $flags);
+ }
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Reads an entire file into an array.
+ *
+ * @param string $filename Path to the file.
+ * @param int $flags The optional parameter flags can be one, or
+ * more, of the following constants:
+ *
+ *
+ *
+ * FILE_USE_INCLUDE_PATH
+ *
+ *
+ *
+ * Search for the file in the include_path.
+ *
+ *
+ *
+ *
+ *
+ * FILE_IGNORE_NEW_LINES
+ *
+ *
+ *
+ * Omit newline at the end of each array element
+ *
+ *
+ *
+ *
+ *
+ * FILE_SKIP_EMPTY_LINES
+ *
+ *
+ *
+ * Skip empty lines
+ *
+ *
+ *
+ *
+ * @param resource $context
+ * @return array Returns the file in an array. Each element of the array corresponds to a
+ * line in the file, with the newline still attached. Upon failure,
+ * file returns FALSE.
+ * @throws FilesystemException
+ *
+ */
+function file(string $filename, int $flags = 0, $context = null): array
+{
+ error_clear_last();
+ if ($context !== null) {
+ $result = \file($filename, $flags, $context);
+ } else {
+ $result = \file($filename, $flags);
+ }
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ *
+ *
+ * @param string $filename Path to the file.
+ * @return int Returns the time the file was last accessed.
+ * The time is returned as a Unix timestamp.
+ * @throws FilesystemException
+ *
+ */
+function fileatime(string $filename): int
+{
+ error_clear_last();
+ $result = \fileatime($filename);
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Gets the inode change time of a file.
+ *
+ * @param string $filename Path to the file.
+ * @return int Returns the time the file was last changed.
+ * The time is returned as a Unix timestamp.
+ * @throws FilesystemException
+ *
+ */
+function filectime(string $filename): int
+{
+ error_clear_last();
+ $result = \filectime($filename);
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Gets the file inode.
+ *
+ * @param string $filename Path to the file.
+ * @return int Returns the inode number of the file.
+ * @throws FilesystemException
+ *
+ */
+function fileinode(string $filename): int
+{
+ error_clear_last();
+ $result = \fileinode($filename);
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * This function returns the time when the data blocks of a file were being
+ * written to, that is, the time when the content of the file was changed.
+ *
+ * @param string $filename Path to the file.
+ * @return int Returns the time the file was last modified.
+ * The time is returned as a Unix timestamp, which is
+ * suitable for the date function.
+ * @throws FilesystemException
+ *
+ */
+function filemtime(string $filename): int
+{
+ error_clear_last();
+ $result = \filemtime($filename);
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Gets the file owner.
+ *
+ * @param string $filename Path to the file.
+ * @return int Returns the user ID of the owner of the file.
+ * The user ID is returned in numerical format, use
+ * posix_getpwuid to resolve it to a username.
+ * @throws FilesystemException
+ *
+ */
+function fileowner(string $filename): int
+{
+ error_clear_last();
+ $result = \fileowner($filename);
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Gets the size for the given file.
+ *
+ * @param string $filename Path to the file.
+ * @return int Returns the size of the file in bytes, or FALSE (and generates an error
+ * of level E_WARNING) in case of an error.
+ * @throws FilesystemException
+ *
+ */
+function filesize(string $filename): int
+{
+ error_clear_last();
+ $result = \filesize($filename);
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * flock allows you to perform a simple reader/writer
+ * model which can be used on virtually every platform (including most Unix
+ * derivatives and even Windows).
+ *
+ * On versions of PHP before 5.3.2, the lock is released also by
+ * fclose (which is also called automatically when script
+ * finished).
+ *
+ * PHP supports a portable way of locking complete files in an advisory way
+ * (which means all accessing programs have to use the same way of locking
+ * or it will not work). By default, this function will block until the
+ * requested lock is acquired; this may be controlled with the LOCK_NB option documented below.
+ *
+ * @param resource $handle A file system pointer resource
+ * that is typically created using fopen.
+ * @param int $operation operation is one of the following:
+ *
+ *
+ *
+ * LOCK_SH to acquire a shared lock (reader).
+ *
+ *
+ *
+ *
+ * LOCK_EX to acquire an exclusive lock (writer).
+ *
+ *
+ *
+ *
+ * LOCK_UN to release a lock (shared or exclusive).
+ *
+ *
+ *
+ *
+ * It is also possible to add LOCK_NB as a bitmask to one
+ * of the above operations, if flock should not
+ * block during the locking attempt.
+ * @param int|null $wouldblock The optional third argument is set to 1 if the lock would block
+ * (EWOULDBLOCK errno condition).
+ * @throws FilesystemException
+ *
+ */
+function flock($handle, int $operation, ?int &$wouldblock = null): void
+{
+ error_clear_last();
+ $result = \flock($handle, $operation, $wouldblock);
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+}
+
+
+/**
+ * fopen binds a named resource, specified by
+ * filename, to a stream.
+ *
+ * @param string $filename If filename is of the form "scheme://...", it
+ * is assumed to be a URL and PHP will search for a protocol handler
+ * (also known as a wrapper) for that scheme. If no wrappers for that
+ * protocol are registered, PHP will emit a notice to help you track
+ * potential problems in your script and then continue as though
+ * filename specifies a regular file.
+ *
+ * If PHP has decided that filename specifies
+ * a local file, then it will try to open a stream on that file.
+ * The file must be accessible to PHP, so you need to ensure that
+ * the file access permissions allow this access.
+ * If you have enabled
+ * open_basedir further
+ * restrictions may apply.
+ *
+ * If PHP has decided that filename specifies
+ * a registered protocol, and that protocol is registered as a
+ * network URL, PHP will check to make sure that
+ * allow_url_fopen is
+ * enabled. If it is switched off, PHP will emit a warning and
+ * the fopen call will fail.
+ *
+ * The list of supported protocols can be found in . Some protocols (also referred to as
+ * wrappers) support context
+ * and/or php.ini options. Refer to the specific page for the
+ * protocol in use for a list of options which can be set. (e.g.
+ * php.ini value user_agent used by the
+ * http wrapper).
+ *
+ * On the Windows platform, be careful to escape any backslashes
+ * used in the path to the file, or use forward slashes.
+ *
+ *
+ *
+ * ]]>
+ *
+ *
+ * @param string $mode The mode parameter specifies the type of access
+ * you require to the stream. It may be any of the following:
+ *
+ *
+ * A list of possible modes for fopen
+ * using mode
+ *
+ *
+ *
+ *
+ * mode
+ * Description
+ *
+ *
+ *
+ *
+ * 'r'
+ *
+ * Open for reading only; place the file pointer at the
+ * beginning of the file.
+ *
+ *
+ *
+ * 'r+'
+ *
+ * Open for reading and writing; place the file pointer at
+ * the beginning of the file.
+ *
+ *
+ *
+ * 'w'
+ *
+ * Open for writing only; place the file pointer at the
+ * beginning of the file and truncate the file to zero length.
+ * If the file does not exist, attempt to create it.
+ *
+ *
+ *
+ * 'w+'
+ *
+ * Open for reading and writing; place the file pointer at
+ * the beginning of the file and truncate the file to zero
+ * length. If the file does not exist, attempt to create it.
+ *
+ *
+ *
+ * 'a'
+ *
+ * Open for writing only; place the file pointer at the end of
+ * the file. If the file does not exist, attempt to create it.
+ * In this mode, fseek has no effect, writes are always appended.
+ *
+ *
+ *
+ * 'a+'
+ *
+ * Open for reading and writing; place the file pointer at
+ * the end of the file. If the file does not exist, attempt to
+ * create it. In this mode, fseek only affects
+ * the reading position, writes are always appended.
+ *
+ *
+ *
+ * 'x'
+ *
+ * Create and open for writing only; place the file pointer at the
+ * beginning of the file. If the file already exists, the
+ * fopen call will fail by returning FALSE and
+ * generating an error of level E_WARNING. If
+ * the file does not exist, attempt to create it. This is equivalent
+ * to specifying O_EXCL|O_CREAT flags for the
+ * underlying open(2) system call.
+ *
+ *
+ *
+ * 'x+'
+ *
+ * Create and open for reading and writing; otherwise it has the
+ * same behavior as 'x'.
+ *
+ *
+ *
+ * 'c'
+ *
+ * Open the file for writing only. If the file does not exist, it is
+ * created. If it exists, it is neither truncated (as opposed to
+ * 'w'), nor the call to this function fails (as is
+ * the case with 'x'). The file pointer is
+ * positioned on the beginning of the file. This may be useful if it's
+ * desired to get an advisory lock (see flock)
+ * before attempting to modify the file, as using
+ * 'w' could truncate the file before the lock
+ * was obtained (if truncation is desired,
+ * ftruncate can be used after the lock is
+ * requested).
+ *
+ *
+ *
+ * 'c+'
+ *
+ * Open the file for reading and writing; otherwise it has the same
+ * behavior as 'c'.
+ *
+ *
+ *
+ * 'e'
+ *
+ * Set close-on-exec flag on the opened file descriptor. Only
+ * available in PHP compiled on POSIX.1-2008 conform systems.
+ *
+ *
+ *
+ *
+ *
+ *
+ * Different operating system families have different line-ending
+ * conventions. When you write a text file and want to insert a line
+ * break, you need to use the correct line-ending character(s) for your
+ * operating system. Unix based systems use \n as the
+ * line ending character, Windows based systems use \r\n
+ * as the line ending characters and Macintosh based systems (Mac OS Classic) used
+ * \r as the line ending character.
+ *
+ * If you use the wrong line ending characters when writing your files, you
+ * might find that other applications that open those files will "look
+ * funny".
+ *
+ * Windows offers a text-mode translation flag ('t')
+ * which will transparently translate \n to
+ * \r\n when working with the file. In contrast, you
+ * can also use 'b' to force binary mode, which will not
+ * translate your data. To use these flags, specify either
+ * 'b' or 't' as the last character
+ * of the mode parameter.
+ *
+ * The default translation mode is 'b'.
+ * You can use the 't'
+ * mode if you are working with plain-text files and you use
+ * \n to delimit your line endings in your script, but
+ * expect your files to be readable with applications such as old versions of notepad. You
+ * should use the 'b' in all other cases.
+ *
+ * If you specify the 't' flag when working with binary files, you
+ * may experience strange problems with your data, including broken image
+ * files and strange problems with \r\n characters.
+ *
+ * For portability, it is also strongly recommended that
+ * you re-write code that uses or relies upon the 't'
+ * mode so that it uses the correct line endings and
+ * 'b' mode instead.
+ * @param bool $use_include_path The optional third use_include_path parameter
+ * can be set to '1' or TRUE if you want to search for the file in the
+ * include_path, too.
+ * @param resource $context
+ * @return resource Returns a file pointer resource on success
+ * @throws FilesystemException
+ *
+ */
+function fopen(string $filename, string $mode, bool $use_include_path = false, $context = null)
+{
+ error_clear_last();
+ if ($context !== null) {
+ $result = \fopen($filename, $mode, $use_include_path, $context);
+ } else {
+ $result = \fopen($filename, $mode, $use_include_path);
+ }
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * fputcsv formats a line (passed as a
+ * fields array) as CSV and writes it (terminated by a
+ * newline) to the specified file handle.
+ *
+ * @param resource $handle The file pointer must be valid, and must point to
+ * a file successfully opened by fopen or
+ * fsockopen (and not yet closed by
+ * fclose).
+ * @param array $fields An array of strings.
+ * @param string $delimiter The optional delimiter parameter sets the field
+ * delimiter (one character only).
+ * @param string $enclosure The optional enclosure parameter sets the field
+ * enclosure (one character only).
+ * @param string $escape_char The optional escape_char parameter sets the
+ * escape character (at most one character).
+ * An empty string ("") disables the proprietary escape mechanism.
+ * @return int Returns the length of the written string.
+ * @throws FilesystemException
+ *
+ */
+function fputcsv($handle, array $fields, string $delimiter = ",", string $enclosure = '"', string $escape_char = "\\"): int
+{
+ error_clear_last();
+ $result = \fputcsv($handle, $fields, $delimiter, $enclosure, $escape_char);
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * fread reads up to
+ * length bytes from the file pointer
+ * referenced by handle. Reading stops as soon as one
+ * of the following conditions is met:
+ *
+ *
+ *
+ * length bytes have been read
+ *
+ *
+ *
+ *
+ * EOF (end of file) is reached
+ *
+ *
+ *
+ *
+ * a packet becomes available or the
+ * socket timeout occurs (for network streams)
+ *
+ *
+ *
+ *
+ * if the stream is read buffered and it does not represent a plain file, at
+ * most one read of up to a number of bytes equal to the chunk size (usually
+ * 8192) is made; depending on the previously buffered data, the size of the
+ * returned data may be larger than the chunk size.
+ *
+ *
+ *
+ *
+ * @param resource $handle A file system pointer resource
+ * that is typically created using fopen.
+ * @param int $length Up to length number of bytes read.
+ * @return string Returns the read string.
+ * @throws FilesystemException
+ *
+ */
+function fread($handle, int $length): string
+{
+ error_clear_last();
+ $result = \fread($handle, $length);
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Takes the filepointer, handle, and truncates the file to
+ * length, size.
+ *
+ * @param resource $handle The file pointer.
+ *
+ * The handle must be open for writing.
+ * @param int $size The size to truncate to.
+ *
+ * If size is larger than the file then the file
+ * is extended with null bytes.
+ *
+ * If size is smaller than the file then the file
+ * is truncated to that size.
+ * @throws FilesystemException
+ *
+ */
+function ftruncate($handle, int $size): void
+{
+ error_clear_last();
+ $result = \ftruncate($handle, $size);
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+}
+
+
+/**
+ *
+ *
+ * @param resource $handle A file system pointer resource
+ * that is typically created using fopen.
+ * @param string $string The string that is to be written.
+ * @param int $length If the length argument is given, writing will
+ * stop after length bytes have been written or
+ * the end of string is reached, whichever comes
+ * first.
+ *
+ * Note that if the length argument is given,
+ * then the magic_quotes_runtime
+ * configuration option will be ignored and no slashes will be
+ * stripped from string.
+ * @return int
+ * @throws FilesystemException
+ *
+ */
+function fwrite($handle, string $string, int $length = null): int
+{
+ error_clear_last();
+ if ($length !== null) {
+ $result = \fwrite($handle, $string, $length);
+ } else {
+ $result = \fwrite($handle, $string);
+ }
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * The glob function searches for all the pathnames
+ * matching pattern according to the rules used by
+ * the libc glob() function, which is similar to the rules used by common
+ * shells.
+ *
+ * @param string $pattern The pattern. No tilde expansion or parameter substitution is done.
+ *
+ * Special characters:
+ *
+ *
+ *
+ * * - Matches zero or more characters.
+ *
+ *
+ *
+ *
+ * ? - Matches exactly one character (any character).
+ *
+ *
+ *
+ *
+ * [...] - Matches one character from a group of
+ * characters. If the first character is !,
+ * matches any character not in the group.
+ *
+ *
+ *
+ *
+ * \ - Escapes the following character,
+ * except when the GLOB_NOESCAPE flag is used.
+ *
+ *
+ *
+ * @param int $flags Valid flags:
+ *
+ *
+ *
+ * GLOB_MARK - Adds a slash (a backslash on Windows) to each directory returned
+ *
+ *
+ *
+ *
+ * GLOB_NOSORT - Return files as they appear in the
+ * directory (no sorting). When this flag is not used, the pathnames are
+ * sorted alphabetically
+ *
+ *
+ *
+ *
+ * GLOB_NOCHECK - Return the search pattern if no
+ * files matching it were found
+ *
+ *
+ *
+ *
+ * GLOB_NOESCAPE - Backslashes do not quote
+ * metacharacters
+ *
+ *
+ *
+ *
+ * GLOB_BRACE - Expands {a,b,c} to match 'a', 'b',
+ * or 'c'
+ *
+ *
+ *
+ *
+ * GLOB_ONLYDIR - Return only directory entries
+ * which match the pattern
+ *
+ *
+ *
+ *
+ * GLOB_ERR - Stop on read errors (like unreadable
+ * directories), by default errors are ignored.
+ *
+ *
+ *
+ * @return array Returns an array containing the matched files/directories, an empty array
+ * if no file matched.
+ * @throws FilesystemException
+ *
+ */
+function glob(string $pattern, int $flags = 0): array
+{
+ error_clear_last();
+ $result = \glob($pattern, $flags);
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Attempts to change the group of the symlink filename
+ * to group.
+ *
+ * Only the superuser may change the group of a symlink arbitrarily; other
+ * users may change the group of a symlink to any group of which that user is
+ * a member.
+ *
+ * @param string $filename Path to the symlink.
+ * @param string|int $group The group specified by name or number.
+ * @throws FilesystemException
+ *
+ */
+function lchgrp(string $filename, $group): void
+{
+ error_clear_last();
+ $result = \lchgrp($filename, $group);
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Attempts to change the owner of the symlink filename
+ * to user user.
+ *
+ * Only the superuser may change the owner of a symlink.
+ *
+ * @param string $filename Path to the file.
+ * @param string|int $user User name or number.
+ * @throws FilesystemException
+ *
+ */
+function lchown(string $filename, $user): void
+{
+ error_clear_last();
+ $result = \lchown($filename, $user);
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+}
+
+
+/**
+ * link creates a hard link.
+ *
+ * @param string $target Target of the link.
+ * @param string $link The link name.
+ * @throws FilesystemException
+ *
+ */
+function link(string $target, string $link): void
+{
+ error_clear_last();
+ $result = \link($target, $link);
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Attempts to create the directory specified by pathname.
+ *
+ * @param string $pathname The directory path.
+ * @param int $mode The mode is 0777 by default, which means the widest possible
+ * access. For more information on modes, read the details
+ * on the chmod page.
+ *
+ * mode is ignored on Windows.
+ *
+ * Note that you probably want to specify the mode as an octal number,
+ * which means it should have a leading zero. The mode is also modified
+ * by the current umask, which you can change using
+ * umask.
+ * @param bool $recursive Allows the creation of nested directories specified in the
+ * pathname.
+ * @param resource $context
+ * @throws FilesystemException
+ *
+ */
+function mkdir(string $pathname, int $mode = 0777, bool $recursive = false, $context = null): void
+{
+ error_clear_last();
+ if ($context !== null) {
+ $result = \mkdir($pathname, $mode, $recursive, $context);
+ } else {
+ $result = \mkdir($pathname, $mode, $recursive);
+ }
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+}
+
+
+/**
+ * parse_ini_file loads in the
+ * ini file specified in filename,
+ * and returns the settings in it in an associative array.
+ *
+ * The structure of the ini file is the same as the php.ini's.
+ *
+ * @param string $filename The filename of the ini file being parsed. If a relative path is used,
+ * it is evaluated relative to the current working directory, then the
+ * include_path.
+ * @param bool $process_sections By setting the process_sections
+ * parameter to TRUE, you get a multidimensional array, with
+ * the section names and settings included. The default
+ * for process_sections is FALSE
+ * @param int $scanner_mode Can either be INI_SCANNER_NORMAL (default) or
+ * INI_SCANNER_RAW. If INI_SCANNER_RAW
+ * is supplied, then option values will not be parsed.
+ *
+ *
+ * As of PHP 5.6.1 can also be specified as INI_SCANNER_TYPED.
+ * In this mode boolean, null and integer types are preserved when possible.
+ * String values "true", "on" and "yes"
+ * are converted to TRUE. "false", "off", "no"
+ * and "none" are considered FALSE. "null" is converted to NULL
+ * in typed mode. Also, all numeric strings are converted to integer type if it is possible.
+ * @return array The settings are returned as an associative array on success.
+ * @throws FilesystemException
+ *
+ */
+function parse_ini_file(string $filename, bool $process_sections = false, int $scanner_mode = INI_SCANNER_NORMAL): array
+{
+ error_clear_last();
+ $result = \parse_ini_file($filename, $process_sections, $scanner_mode);
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * parse_ini_string returns the settings in string
+ * ini in an associative array.
+ *
+ * The structure of the ini string is the same as the php.ini's.
+ *
+ * @param string $ini The contents of the ini file being parsed.
+ * @param bool $process_sections By setting the process_sections
+ * parameter to TRUE, you get a multidimensional array, with
+ * the section names and settings included. The default
+ * for process_sections is FALSE
+ * @param int $scanner_mode Can either be INI_SCANNER_NORMAL (default) or
+ * INI_SCANNER_RAW. If INI_SCANNER_RAW
+ * is supplied, then option values will not be parsed.
+ *
+ *
+ * As of PHP 5.6.1 can also be specified as INI_SCANNER_TYPED.
+ * In this mode boolean, null and integer types are preserved when possible.
+ * String values "true", "on" and "yes"
+ * are converted to TRUE. "false", "off", "no"
+ * and "none" are considered FALSE. "null" is converted to NULL
+ * in typed mode. Also, all numeric strings are converted to integer type if it is possible.
+ * @return array The settings are returned as an associative array on success.
+ * @throws FilesystemException
+ *
+ */
+function parse_ini_string(string $ini, bool $process_sections = false, int $scanner_mode = INI_SCANNER_NORMAL): array
+{
+ error_clear_last();
+ $result = \parse_ini_string($ini, $process_sections, $scanner_mode);
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Reads a file and writes it to the output buffer.
+ *
+ * @param string $filename The filename being read.
+ * @param bool $use_include_path You can use the optional second parameter and set it to TRUE, if
+ * you want to search for the file in the include_path, too.
+ * @param resource $context A context stream resource.
+ * @return int Returns the number of bytes read from the file on success
+ * @throws FilesystemException
+ *
+ */
+function readfile(string $filename, bool $use_include_path = false, $context = null): int
+{
+ error_clear_last();
+ if ($context !== null) {
+ $result = \readfile($filename, $use_include_path, $context);
+ } else {
+ $result = \readfile($filename, $use_include_path);
+ }
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * readlink does the same as the readlink C function.
+ *
+ * @param string $path The symbolic link path.
+ * @return string Returns the contents of the symbolic link path.
+ * @throws FilesystemException
+ *
+ */
+function readlink(string $path): string
+{
+ error_clear_last();
+ $result = \readlink($path);
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * realpath expands all symbolic links and
+ * resolves references to /./, /../ and extra / characters in
+ * the input path and returns the canonicalized
+ * absolute pathname.
+ *
+ * @param string $path The path being checked.
+ *
+ *
+ * Whilst a path must be supplied, the value can be an empty string.
+ * In this case, the value is interpreted as the current directory.
+ *
+ *
+ *
+ * Whilst a path must be supplied, the value can be an empty string.
+ * In this case, the value is interpreted as the current directory.
+ * @return string Returns the canonicalized absolute pathname on success. The resulting path
+ * will have no symbolic link, /./ or /../ components. Trailing delimiters,
+ * such as \ and /, are also removed.
+ *
+ * realpath returns FALSE on failure, e.g. if
+ * the file does not exist.
+ * @throws FilesystemException
+ *
+ */
+function realpath(string $path): string
+{
+ error_clear_last();
+ $result = \realpath($path);
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Attempts to rename oldname to
+ * newname, moving it between directories if necessary.
+ * If renaming a file and newname exists,
+ * it will be overwritten. If renaming a directory and
+ * newname exists,
+ * this function will emit a warning.
+ *
+ * @param string $oldname The old name.
+ *
+ * The wrapper used in oldname
+ * must match the wrapper used in
+ * newname.
+ * @param string $newname The new name.
+ * @param resource $context
+ * @throws FilesystemException
+ *
+ */
+function rename(string $oldname, string $newname, $context = null): void
+{
+ error_clear_last();
+ if ($context !== null) {
+ $result = \rename($oldname, $newname, $context);
+ } else {
+ $result = \rename($oldname, $newname);
+ }
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the file position indicator for handle
+ * to the beginning of the file stream.
+ *
+ * @param resource $handle The file pointer must be valid, and must point to a file
+ * successfully opened by fopen.
+ * @throws FilesystemException
+ *
+ */
+function rewind($handle): void
+{
+ error_clear_last();
+ $result = \rewind($handle);
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Attempts to remove the directory named by dirname.
+ * The directory must be empty, and the relevant permissions must permit this.
+ * A E_WARNING level error will be generated on failure.
+ *
+ * @param string $dirname Path to the directory.
+ * @param resource $context
+ * @throws FilesystemException
+ *
+ */
+function rmdir(string $dirname, $context = null): void
+{
+ error_clear_last();
+ if ($context !== null) {
+ $result = \rmdir($dirname, $context);
+ } else {
+ $result = \rmdir($dirname);
+ }
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+}
+
+
+/**
+ * symlink creates a symbolic link to the existing
+ * target with the specified name
+ * link.
+ *
+ * @param string $target Target of the link.
+ * @param string $link The link name.
+ * @throws FilesystemException
+ *
+ */
+function symlink(string $target, string $link): void
+{
+ error_clear_last();
+ $result = \symlink($target, $link);
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Creates a file with a unique filename, with access permission set to 0600, in the specified directory.
+ * If the directory does not exist or is not writable, tempnam may
+ * generate a file in the system's temporary directory, and return
+ * the full path to that file, including its name.
+ *
+ * @param string $dir The directory where the temporary filename will be created.
+ * @param string $prefix The prefix of the generated temporary filename.
+ * @return string Returns the new temporary filename (with path).
+ * @throws FilesystemException
+ *
+ */
+function tempnam(string $dir, string $prefix): string
+{
+ error_clear_last();
+ $result = \tempnam($dir, $prefix);
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Creates a temporary file with a unique name in read-write (w+) mode and
+ * returns a file handle.
+ *
+ * The file is automatically removed when closed (for example, by calling
+ * fclose, or when there are no remaining references to
+ * the file handle returned by tmpfile), or when the
+ * script ends.
+ *
+ * @return resource Returns a file handle, similar to the one returned by
+ * fopen, for the new file.
+ * @throws FilesystemException
+ *
+ */
+function tmpfile()
+{
+ error_clear_last();
+ $result = \tmpfile();
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Attempts to set the access and modification times of the file named in the
+ * filename parameter to the value given in
+ * time.
+ * Note that the access time is always modified, regardless of the number
+ * of parameters.
+ *
+ * If the file does not exist, it will be created.
+ *
+ * @param string $filename The name of the file being touched.
+ * @param int $time The touch time. If time is not supplied,
+ * the current system time is used.
+ * @param int $atime If present, the access time of the given filename is set to
+ * the value of atime. Otherwise, it is set to
+ * the value passed to the time parameter.
+ * If neither are present, the current system time is used.
+ * @throws FilesystemException
+ *
+ */
+function touch(string $filename, int $time = null, int $atime = null): void
+{
+ error_clear_last();
+ if ($atime !== null) {
+ $result = \touch($filename, $time, $atime);
+ } elseif ($time !== null) {
+ $result = \touch($filename, $time);
+ } else {
+ $result = \touch($filename);
+ }
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Deletes filename. Similar to the Unix C unlink()
+ * function. An E_WARNING level error will be generated on
+ * failure.
+ *
+ * @param string $filename Path to the file.
+ * @param resource $context
+ * @throws FilesystemException
+ *
+ */
+function unlink(string $filename, $context = null): void
+{
+ error_clear_last();
+ if ($context !== null) {
+ $result = \unlink($filename, $context);
+ } else {
+ $result = \unlink($filename);
+ }
+ if ($result === false) {
+ throw FilesystemException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/filter.php b/vendor/thecodingmachine/safe/generated/filter.php
new file mode 100644
index 000000000..2d836c6c9
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/filter.php
@@ -0,0 +1,93 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\FilterException;
+
+/**
+ * This function is useful for retrieving many values without
+ * repetitively calling filter_input.
+ *
+ * @param int $type One of INPUT_GET, INPUT_POST,
+ * INPUT_COOKIE, INPUT_SERVER, or
+ * INPUT_ENV.
+ * @param int|array $definition An array defining the arguments. A valid key is a string
+ * containing a variable name and a valid value is either a filter type, or an array
+ * optionally specifying the filter, flags and options. If the value is an
+ * array, valid keys are filter which specifies the
+ * filter type,
+ * flags which specifies any flags that apply to the
+ * filter, and options which specifies any options that
+ * apply to the filter. See the example below for a better understanding.
+ *
+ * This parameter can be also an integer holding a filter constant. Then all values in the
+ * input array are filtered by this filter.
+ * @param bool $add_empty Add missing keys as NULL to the return value.
+ * @return mixed An array containing the values of the requested variables on success.
+ * If the input array designated by type is not populated,
+ * the function returns NULL if the FILTER_NULL_ON_FAILURE
+ * flag is not given, or FALSE otherwise. For other failures, FALSE is returned.
+ *
+ * An array value will be FALSE if the filter fails, or NULL if
+ * the variable is not set. Or if the flag FILTER_NULL_ON_FAILURE
+ * is used, it returns FALSE if the variable is not set and NULL if the filter
+ * fails. If the add_empty parameter is FALSE, no array
+ * element will be added for unset variables.
+ * @throws FilterException
+ *
+ */
+function filter_input_array(int $type, $definition = null, bool $add_empty = true)
+{
+ error_clear_last();
+ if ($add_empty !== true) {
+ $result = \filter_input_array($type, $definition, $add_empty);
+ } elseif ($definition !== null) {
+ $result = \filter_input_array($type, $definition);
+ } else {
+ $result = \filter_input_array($type);
+ }
+ if ($result === false) {
+ throw FilterException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * This function is useful for retrieving many values without
+ * repetitively calling filter_var.
+ *
+ * @param array $data An array with string keys containing the data to filter.
+ * @param mixed $definition An array defining the arguments. A valid key is a string
+ * containing a variable name and a valid value is either a
+ * filter type, or an
+ * array optionally specifying the filter, flags and options.
+ * If the value is an array, valid keys are filter
+ * which specifies the filter type,
+ * flags which specifies any flags that apply to the
+ * filter, and options which specifies any options that
+ * apply to the filter. See the example below for a better understanding.
+ *
+ * This parameter can be also an integer holding a filter constant. Then all values in the
+ * input array are filtered by this filter.
+ * @param bool $add_empty Add missing keys as NULL to the return value.
+ * @return mixed An array containing the values of the requested variables on success. An array value will be FALSE if the filter fails, or NULL if
+ * the variable is not set.
+ * @throws FilterException
+ *
+ */
+function filter_var_array(array $data, $definition = null, bool $add_empty = true)
+{
+ error_clear_last();
+ if ($add_empty !== true) {
+ $result = \filter_var_array($data, $definition, $add_empty);
+ } elseif ($definition !== null) {
+ $result = \filter_var_array($data, $definition);
+ } else {
+ $result = \filter_var_array($data);
+ }
+ if ($result === false) {
+ throw FilterException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/fpm.php b/vendor/thecodingmachine/safe/generated/fpm.php
new file mode 100644
index 000000000..08b394107
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/fpm.php
@@ -0,0 +1,22 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\FpmException;
+
+/**
+ * This function flushes all response data to the client and finishes the
+ * request. This allows for time consuming tasks to be performed without
+ * leaving the connection to the client open.
+ *
+ * @throws FpmException
+ *
+ */
+function fastcgi_finish_request(): void
+{
+ error_clear_last();
+ $result = \fastcgi_finish_request();
+ if ($result === false) {
+ throw FpmException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/ftp.php b/vendor/thecodingmachine/safe/generated/ftp.php
new file mode 100644
index 000000000..174882657
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/ftp.php
@@ -0,0 +1,496 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\FtpException;
+
+/**
+ * Sends an ALLO command to the remote FTP server to
+ * allocate space for a file to be uploaded.
+ *
+ * @param resource $ftp_stream The link identifier of the FTP connection.
+ * @param int $filesize The number of bytes to allocate.
+ * @param string $result A textual representation of the servers response will be returned by
+ * reference in result if a variable is provided.
+ * @throws FtpException
+ *
+ */
+function ftp_alloc($ftp_stream, int $filesize, string &$result = null): void
+{
+ error_clear_last();
+ $result = \ftp_alloc($ftp_stream, $filesize, $result);
+ if ($result === false) {
+ throw FtpException::createFromPhpError();
+ }
+}
+
+
+/**
+ *
+ *
+ * @param resource $ftp
+ * @param string $remote_file
+ * @param string $local_file
+ * @param int $mode
+ * @throws FtpException
+ *
+ */
+function ftp_append($ftp, string $remote_file, string $local_file, int $mode = FTP_BINARY): void
+{
+ error_clear_last();
+ $result = \ftp_append($ftp, $remote_file, $local_file, $mode);
+ if ($result === false) {
+ throw FtpException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Changes to the parent directory.
+ *
+ * @param resource $ftp_stream The link identifier of the FTP connection.
+ * @throws FtpException
+ *
+ */
+function ftp_cdup($ftp_stream): void
+{
+ error_clear_last();
+ $result = \ftp_cdup($ftp_stream);
+ if ($result === false) {
+ throw FtpException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Changes the current directory to the specified one.
+ *
+ * @param resource $ftp_stream The link identifier of the FTP connection.
+ * @param string $directory The target directory.
+ * @throws FtpException
+ *
+ */
+function ftp_chdir($ftp_stream, string $directory): void
+{
+ error_clear_last();
+ $result = \ftp_chdir($ftp_stream, $directory);
+ if ($result === false) {
+ throw FtpException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the permissions on the specified remote file to
+ * mode.
+ *
+ * @param resource $ftp_stream The link identifier of the FTP connection.
+ * @param int $mode The new permissions, given as an octal value.
+ * @param string $filename The remote file.
+ * @return int Returns the new file permissions on success.
+ * @throws FtpException
+ *
+ */
+function ftp_chmod($ftp_stream, int $mode, string $filename): int
+{
+ error_clear_last();
+ $result = \ftp_chmod($ftp_stream, $mode, $filename);
+ if ($result === false) {
+ throw FtpException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * ftp_close closes the given link identifier
+ * and releases the resource.
+ *
+ * @param resource $ftp_stream The link identifier of the FTP connection.
+ * @throws FtpException
+ *
+ */
+function ftp_close($ftp_stream): void
+{
+ error_clear_last();
+ $result = \ftp_close($ftp_stream);
+ if ($result === false) {
+ throw FtpException::createFromPhpError();
+ }
+}
+
+
+/**
+ * ftp_connect opens an FTP connection to the
+ * specified host.
+ *
+ * @param string $host The FTP server address. This parameter shouldn't have any trailing
+ * slashes and shouldn't be prefixed with ftp://.
+ * @param int $port This parameter specifies an alternate port to connect to. If it is
+ * omitted or set to zero, then the default FTP port, 21, will be used.
+ * @param int $timeout This parameter specifies the timeout in seconds for all subsequent network operations.
+ * If omitted, the default value is 90 seconds. The timeout can be changed and
+ * queried at any time with ftp_set_option and
+ * ftp_get_option.
+ * @return resource Returns a FTP stream on success.
+ * @throws FtpException
+ *
+ */
+function ftp_connect(string $host, int $port = 21, int $timeout = 90)
+{
+ error_clear_last();
+ $result = \ftp_connect($host, $port, $timeout);
+ if ($result === false) {
+ throw FtpException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * ftp_delete deletes the file specified by
+ * path from the FTP server.
+ *
+ * @param resource $ftp_stream The link identifier of the FTP connection.
+ * @param string $path The file to delete.
+ * @throws FtpException
+ *
+ */
+function ftp_delete($ftp_stream, string $path): void
+{
+ error_clear_last();
+ $result = \ftp_delete($ftp_stream, $path);
+ if ($result === false) {
+ throw FtpException::createFromPhpError();
+ }
+}
+
+
+/**
+ * ftp_fget retrieves remote_file
+ * from the FTP server, and writes it to the given file pointer.
+ *
+ * @param resource $ftp_stream The link identifier of the FTP connection.
+ * @param resource $handle An open file pointer in which we store the data.
+ * @param string $remote_file The remote file path.
+ * @param int $mode The transfer mode. Must be either FTP_ASCII or
+ * FTP_BINARY.
+ * @param int $resumepos The position in the remote file to start downloading from.
+ * @throws FtpException
+ *
+ */
+function ftp_fget($ftp_stream, $handle, string $remote_file, int $mode = FTP_BINARY, int $resumepos = 0): void
+{
+ error_clear_last();
+ $result = \ftp_fget($ftp_stream, $handle, $remote_file, $mode, $resumepos);
+ if ($result === false) {
+ throw FtpException::createFromPhpError();
+ }
+}
+
+
+/**
+ * ftp_fput uploads the data from a file pointer
+ * to a remote file on the FTP server.
+ *
+ * @param resource $ftp_stream The link identifier of the FTP connection.
+ * @param string $remote_file The remote file path.
+ * @param resource $handle An open file pointer on the local file. Reading stops at end of file.
+ * @param int $mode The transfer mode. Must be either FTP_ASCII or
+ * FTP_BINARY.
+ * @param int $startpos The position in the remote file to start uploading to.
+ * @throws FtpException
+ *
+ */
+function ftp_fput($ftp_stream, string $remote_file, $handle, int $mode = FTP_BINARY, int $startpos = 0): void
+{
+ error_clear_last();
+ $result = \ftp_fput($ftp_stream, $remote_file, $handle, $mode, $startpos);
+ if ($result === false) {
+ throw FtpException::createFromPhpError();
+ }
+}
+
+
+/**
+ * ftp_get retrieves a remote file from the FTP server,
+ * and saves it into a local file.
+ *
+ * @param resource $ftp_stream The link identifier of the FTP connection.
+ * @param string $local_file The local file path (will be overwritten if the file already exists).
+ * @param string $remote_file The remote file path.
+ * @param int $mode The transfer mode. Must be either FTP_ASCII or
+ * FTP_BINARY.
+ * @param int $resumepos The position in the remote file to start downloading from.
+ * @throws FtpException
+ *
+ */
+function ftp_get($ftp_stream, string $local_file, string $remote_file, int $mode = FTP_BINARY, int $resumepos = 0): void
+{
+ error_clear_last();
+ $result = \ftp_get($ftp_stream, $local_file, $remote_file, $mode, $resumepos);
+ if ($result === false) {
+ throw FtpException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Logs in to the given FTP stream.
+ *
+ * @param resource $ftp_stream The link identifier of the FTP connection.
+ * @param string $username The username (USER).
+ * @param string $password The password (PASS).
+ * @throws FtpException
+ *
+ */
+function ftp_login($ftp_stream, string $username, string $password): void
+{
+ error_clear_last();
+ $result = \ftp_login($ftp_stream, $username, $password);
+ if ($result === false) {
+ throw FtpException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Creates the specified directory on the FTP server.
+ *
+ * @param resource $ftp_stream The link identifier of the FTP connection.
+ * @param string $directory The name of the directory that will be created.
+ * @return string Returns the newly created directory name on success.
+ * @throws FtpException
+ *
+ */
+function ftp_mkdir($ftp_stream, string $directory): string
+{
+ error_clear_last();
+ $result = \ftp_mkdir($ftp_stream, $directory);
+ if ($result === false) {
+ throw FtpException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ *
+ *
+ * @param resource $ftp_stream The link identifier of the FTP connection.
+ * @param string $directory The directory to be listed.
+ * @return array Returns an array of arrays with file infos from the specified directory on success.
+ * @throws FtpException
+ *
+ */
+function ftp_mlsd($ftp_stream, string $directory): array
+{
+ error_clear_last();
+ $result = \ftp_mlsd($ftp_stream, $directory);
+ if ($result === false) {
+ throw FtpException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ *
+ *
+ * @param resource $ftp_stream The link identifier of the FTP connection.
+ * @param string $directory The directory to be listed. This parameter can also include arguments, eg.
+ * ftp_nlist($conn_id, "-la /your/dir");
+ * Note that this parameter isn't escaped so there may be some issues with
+ * filenames containing spaces and other characters.
+ * @return array Returns an array of filenames from the specified directory on success.
+ * @throws FtpException
+ *
+ */
+function ftp_nlist($ftp_stream, string $directory): array
+{
+ error_clear_last();
+ $result = \ftp_nlist($ftp_stream, $directory);
+ if ($result === false) {
+ throw FtpException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * ftp_pasv turns on or off passive mode. In
+ * passive mode, data connections are initiated by the client,
+ * rather than by the server.
+ * It may be needed if the client is behind firewall.
+ *
+ * Please note that ftp_pasv can only be called after a
+ * successful login or otherwise it will fail.
+ *
+ * @param resource $ftp_stream The link identifier of the FTP connection.
+ * @param bool $pasv If TRUE, the passive mode is turned on, else it's turned off.
+ * @throws FtpException
+ *
+ */
+function ftp_pasv($ftp_stream, bool $pasv): void
+{
+ error_clear_last();
+ $result = \ftp_pasv($ftp_stream, $pasv);
+ if ($result === false) {
+ throw FtpException::createFromPhpError();
+ }
+}
+
+
+/**
+ * ftp_put stores a local file on the FTP server.
+ *
+ * @param resource $ftp_stream The link identifier of the FTP connection.
+ * @param string $remote_file The remote file path.
+ * @param string $local_file The local file path.
+ * @param int $mode The transfer mode. Must be either FTP_ASCII or
+ * FTP_BINARY.
+ * @param int $startpos The position in the remote file to start uploading to.
+ * @throws FtpException
+ *
+ */
+function ftp_put($ftp_stream, string $remote_file, string $local_file, int $mode = FTP_BINARY, int $startpos = 0): void
+{
+ error_clear_last();
+ $result = \ftp_put($ftp_stream, $remote_file, $local_file, $mode, $startpos);
+ if ($result === false) {
+ throw FtpException::createFromPhpError();
+ }
+}
+
+
+/**
+ *
+ *
+ * @param resource $ftp_stream The link identifier of the FTP connection.
+ * @return string Returns the current directory name.
+ * @throws FtpException
+ *
+ */
+function ftp_pwd($ftp_stream): string
+{
+ error_clear_last();
+ $result = \ftp_pwd($ftp_stream);
+ if ($result === false) {
+ throw FtpException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * ftp_rename renames a file or a directory on the FTP
+ * server.
+ *
+ * @param resource $ftp_stream The link identifier of the FTP connection.
+ * @param string $oldname The old file/directory name.
+ * @param string $newname The new name.
+ * @throws FtpException
+ *
+ */
+function ftp_rename($ftp_stream, string $oldname, string $newname): void
+{
+ error_clear_last();
+ $result = \ftp_rename($ftp_stream, $oldname, $newname);
+ if ($result === false) {
+ throw FtpException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Removes the specified directory on the FTP server.
+ *
+ * @param resource $ftp_stream The link identifier of the FTP connection.
+ * @param string $directory The directory to delete. This must be either an absolute or relative
+ * path to an empty directory.
+ * @throws FtpException
+ *
+ */
+function ftp_rmdir($ftp_stream, string $directory): void
+{
+ error_clear_last();
+ $result = \ftp_rmdir($ftp_stream, $directory);
+ if ($result === false) {
+ throw FtpException::createFromPhpError();
+ }
+}
+
+
+/**
+ * ftp_site sends the given SITE
+ * command to the FTP server.
+ *
+ * SITE commands are not standardized, and vary from server
+ * to server. They are useful for handling such things as file permissions and
+ * group membership.
+ *
+ * @param resource $ftp_stream The link identifier of the FTP connection.
+ * @param string $command The SITE command. Note that this parameter isn't escaped so there may
+ * be some issues with filenames containing spaces and other characters.
+ * @throws FtpException
+ *
+ */
+function ftp_site($ftp_stream, string $command): void
+{
+ error_clear_last();
+ $result = \ftp_site($ftp_stream, $command);
+ if ($result === false) {
+ throw FtpException::createFromPhpError();
+ }
+}
+
+
+/**
+ * ftp_ssl_connect opens an explicit SSL-FTP connection to the
+ * specified host. That implies that
+ * ftp_ssl_connect will succeed even if the server is not
+ * configured for SSL-FTP, or its certificate is invalid. Only when
+ * ftp_login is called, the client will send the
+ * appropriate AUTH FTP command, so ftp_login will fail in
+ * the mentioned cases.
+ *
+ * @param string $host The FTP server address. This parameter shouldn't have any trailing
+ * slashes and shouldn't be prefixed with ftp://.
+ * @param int $port This parameter specifies an alternate port to connect to. If it is
+ * omitted or set to zero, then the default FTP port, 21, will be used.
+ * @param int $timeout This parameter specifies the timeout for all subsequent network operations.
+ * If omitted, the default value is 90 seconds. The timeout can be changed and
+ * queried at any time with ftp_set_option and
+ * ftp_get_option.
+ * @return resource Returns a SSL-FTP stream on success.
+ * @throws FtpException
+ *
+ */
+function ftp_ssl_connect(string $host, int $port = 21, int $timeout = 90)
+{
+ error_clear_last();
+ $result = \ftp_ssl_connect($host, $port, $timeout);
+ if ($result === false) {
+ throw FtpException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Returns the system type identifier of the remote FTP server.
+ *
+ * @param resource $ftp_stream The link identifier of the FTP connection.
+ * @return string Returns the remote system type.
+ * @throws FtpException
+ *
+ */
+function ftp_systype($ftp_stream): string
+{
+ error_clear_last();
+ $result = \ftp_systype($ftp_stream);
+ if ($result === false) {
+ throw FtpException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/funchand.php b/vendor/thecodingmachine/safe/generated/funchand.php
new file mode 100644
index 000000000..64654526e
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/funchand.php
@@ -0,0 +1,47 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\FunchandException;
+
+/**
+ * Creates an anonymous function from the parameters passed, and
+ * returns a unique name for it.
+ *
+ * @param string $args The function arguments.
+ * @param string $code The function code.
+ * @return string Returns a unique function name as a string.
+ * @throws FunchandException
+ *
+ */
+function create_function(string $args, string $code): string
+{
+ error_clear_last();
+ $result = \create_function($args, $code);
+ if ($result === false) {
+ throw FunchandException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ *
+ *
+ * @param callable(): void $function The function to register.
+ * @param mixed $params
+ * @throws FunchandException
+ *
+ */
+function register_tick_function(callable $function, ...$params): void
+{
+ error_clear_last();
+ if ($params !== []) {
+ $result = \register_tick_function($function, ...$params);
+ } else {
+ $result = \register_tick_function($function);
+ }
+ if ($result === false) {
+ throw FunchandException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/functionsList.php b/vendor/thecodingmachine/safe/generated/functionsList.php
new file mode 100644
index 000000000..a43e7efa6
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/functionsList.php
@@ -0,0 +1,1070 @@
+<?php
+
+return [
+ 'apache_getenv',
+ 'apache_get_version',
+ 'apache_request_headers',
+ 'apache_reset_timeout',
+ 'apache_response_headers',
+ 'apache_setenv',
+ 'apcu_cache_info',
+ 'apcu_cas',
+ 'apcu_dec',
+ 'apcu_fetch',
+ 'apcu_inc',
+ 'apcu_sma_info',
+ 'apc_fetch',
+ 'array_combine',
+ 'array_flip',
+ 'array_replace',
+ 'array_replace_recursive',
+ 'array_walk_recursive',
+ 'arsort',
+ 'asort',
+ 'base64_decode',
+ 'bzclose',
+ 'bzflush',
+ 'bzread',
+ 'bzwrite',
+ 'chdir',
+ 'chgrp',
+ 'chmod',
+ 'chown',
+ 'chroot',
+ 'class_alias',
+ 'class_implements',
+ 'class_parents',
+ 'class_uses',
+ 'cli_set_process_title',
+ 'closelog',
+ 'com_event_sink',
+ 'com_load_typelib',
+ 'com_print_typeinfo',
+ 'convert_uudecode',
+ 'convert_uuencode',
+ 'copy',
+ 'create_function',
+ 'cubrid_free_result',
+ 'cubrid_get_charset',
+ 'cubrid_get_client_info',
+ 'cubrid_get_db_parameter',
+ 'cubrid_get_server_info',
+ 'cubrid_insert_id',
+ 'cubrid_lob2_new',
+ 'cubrid_lob2_size',
+ 'cubrid_lob2_size64',
+ 'cubrid_lob2_tell',
+ 'cubrid_lob2_tell64',
+ 'cubrid_set_db_parameter',
+ 'curl_escape',
+ 'curl_exec',
+ 'curl_getinfo',
+ 'curl_init',
+ 'curl_multi_errno',
+ 'curl_multi_info_read',
+ 'curl_multi_init',
+ 'curl_setopt',
+ 'curl_share_errno',
+ 'curl_share_setopt',
+ 'curl_unescape',
+ 'date',
+ 'date_parse',
+ 'date_parse_from_format',
+ 'date_sunrise',
+ 'date_sunset',
+ 'date_sun_info',
+ 'db2_autocommit',
+ 'db2_bind_param',
+ 'db2_client_info',
+ 'db2_close',
+ 'db2_commit',
+ 'db2_execute',
+ 'db2_free_result',
+ 'db2_free_stmt',
+ 'db2_get_option',
+ 'db2_pclose',
+ 'db2_rollback',
+ 'db2_server_info',
+ 'db2_set_option',
+ 'define',
+ 'deflate_add',
+ 'deflate_init',
+ 'disk_free_space',
+ 'disk_total_space',
+ 'dl',
+ 'dns_get_record',
+ 'eio_busy',
+ 'eio_chmod',
+ 'eio_chown',
+ 'eio_close',
+ 'eio_custom',
+ 'eio_dup2',
+ 'eio_event_loop',
+ 'eio_fallocate',
+ 'eio_fchmod',
+ 'eio_fdatasync',
+ 'eio_fstat',
+ 'eio_fstatvfs',
+ 'eio_fsync',
+ 'eio_ftruncate',
+ 'eio_futime',
+ 'eio_grp',
+ 'eio_lstat',
+ 'eio_mkdir',
+ 'eio_mknod',
+ 'eio_nop',
+ 'eio_readahead',
+ 'eio_readdir',
+ 'eio_readlink',
+ 'eio_rename',
+ 'eio_rmdir',
+ 'eio_seek',
+ 'eio_sendfile',
+ 'eio_stat',
+ 'eio_statvfs',
+ 'eio_symlink',
+ 'eio_sync',
+ 'eio_syncfs',
+ 'eio_sync_file_range',
+ 'eio_truncate',
+ 'eio_unlink',
+ 'eio_utime',
+ 'eio_write',
+ 'error_log',
+ 'fastcgi_finish_request',
+ 'fbird_blob_cancel',
+ 'fclose',
+ 'fflush',
+ 'file',
+ 'fileatime',
+ 'filectime',
+ 'fileinode',
+ 'filemtime',
+ 'fileowner',
+ 'filesize',
+ 'file_get_contents',
+ 'file_put_contents',
+ 'filter_input_array',
+ 'filter_var_array',
+ 'finfo_close',
+ 'finfo_open',
+ 'flock',
+ 'fopen',
+ 'fputcsv',
+ 'fread',
+ 'fsockopen',
+ 'ftp_alloc',
+ 'ftp_append',
+ 'ftp_cdup',
+ 'ftp_chdir',
+ 'ftp_chmod',
+ 'ftp_close',
+ 'ftp_connect',
+ 'ftp_delete',
+ 'ftp_fget',
+ 'ftp_fput',
+ 'ftp_get',
+ 'ftp_login',
+ 'ftp_mkdir',
+ 'ftp_mlsd',
+ 'ftp_nlist',
+ 'ftp_pasv',
+ 'ftp_put',
+ 'ftp_pwd',
+ 'ftp_rename',
+ 'ftp_rmdir',
+ 'ftp_site',
+ 'ftp_ssl_connect',
+ 'ftp_systype',
+ 'ftruncate',
+ 'fwrite',
+ 'getallheaders',
+ 'getcwd',
+ 'gethostname',
+ 'getimagesize',
+ 'getlastmod',
+ 'getmygid',
+ 'getmyinode',
+ 'getmypid',
+ 'getmyuid',
+ 'getopt',
+ 'getprotobyname',
+ 'getprotobynumber',
+ 'get_headers',
+ 'glob',
+ 'gmdate',
+ 'gmp_binomial',
+ 'gmp_export',
+ 'gmp_import',
+ 'gmp_random_seed',
+ 'gnupg_adddecryptkey',
+ 'gnupg_addencryptkey',
+ 'gnupg_addsignkey',
+ 'gnupg_cleardecryptkeys',
+ 'gnupg_clearencryptkeys',
+ 'gnupg_clearsignkeys',
+ 'gnupg_setarmor',
+ 'gnupg_setsignmode',
+ 'gzclose',
+ 'gzcompress',
+ 'gzdecode',
+ 'gzdeflate',
+ 'gzencode',
+ 'gzgets',
+ 'gzgetss',
+ 'gzinflate',
+ 'gzpassthru',
+ 'gzrewind',
+ 'gzuncompress',
+ 'hash_hkdf',
+ 'hash_update_file',
+ 'header_register_callback',
+ 'hex2bin',
+ 'highlight_file',
+ 'highlight_string',
+ 'ibase_add_user',
+ 'ibase_backup',
+ 'ibase_blob_cancel',
+ 'ibase_blob_create',
+ 'ibase_blob_get',
+ 'ibase_close',
+ 'ibase_commit',
+ 'ibase_commit_ret',
+ 'ibase_connect',
+ 'ibase_delete_user',
+ 'ibase_drop_db',
+ 'ibase_free_event_handler',
+ 'ibase_free_query',
+ 'ibase_free_result',
+ 'ibase_maintain_db',
+ 'ibase_modify_user',
+ 'ibase_name_result',
+ 'ibase_pconnect',
+ 'ibase_restore',
+ 'ibase_rollback',
+ 'ibase_rollback_ret',
+ 'ibase_service_attach',
+ 'ibase_service_detach',
+ 'iconv',
+ 'iconv_get_encoding',
+ 'iconv_set_encoding',
+ 'image2wbmp',
+ 'imageaffine',
+ 'imageaffinematrixconcat',
+ 'imageaffinematrixget',
+ 'imagealphablending',
+ 'imageantialias',
+ 'imagearc',
+ 'imagebmp',
+ 'imagechar',
+ 'imagecharup',
+ 'imagecolorat',
+ 'imagecolordeallocate',
+ 'imagecolormatch',
+ 'imageconvolution',
+ 'imagecopy',
+ 'imagecopymerge',
+ 'imagecopymergegray',
+ 'imagecopyresampled',
+ 'imagecopyresized',
+ 'imagecreate',
+ 'imagecreatefrombmp',
+ 'imagecreatefromgd',
+ 'imagecreatefromgd2',
+ 'imagecreatefromgd2part',
+ 'imagecreatefromgif',
+ 'imagecreatefromjpeg',
+ 'imagecreatefrompng',
+ 'imagecreatefromwbmp',
+ 'imagecreatefromwebp',
+ 'imagecreatefromxbm',
+ 'imagecreatefromxpm',
+ 'imagecreatetruecolor',
+ 'imagecrop',
+ 'imagecropauto',
+ 'imagedashedline',
+ 'imagedestroy',
+ 'imageellipse',
+ 'imagefill',
+ 'imagefilledarc',
+ 'imagefilledellipse',
+ 'imagefilledpolygon',
+ 'imagefilledrectangle',
+ 'imagefilltoborder',
+ 'imagefilter',
+ 'imageflip',
+ 'imagegammacorrect',
+ 'imagegd',
+ 'imagegd2',
+ 'imagegif',
+ 'imagegrabscreen',
+ 'imagegrabwindow',
+ 'imagejpeg',
+ 'imagelayereffect',
+ 'imageline',
+ 'imageloadfont',
+ 'imageopenpolygon',
+ 'imagepng',
+ 'imagepolygon',
+ 'imagerectangle',
+ 'imagerotate',
+ 'imagesavealpha',
+ 'imagescale',
+ 'imagesetbrush',
+ 'imagesetclip',
+ 'imagesetinterpolation',
+ 'imagesetpixel',
+ 'imagesetstyle',
+ 'imagesetthickness',
+ 'imagesettile',
+ 'imagestring',
+ 'imagestringup',
+ 'imagesx',
+ 'imagesy',
+ 'imagetruecolortopalette',
+ 'imagettfbbox',
+ 'imagettftext',
+ 'imagewbmp',
+ 'imagewebp',
+ 'imagexbm',
+ 'imap_append',
+ 'imap_check',
+ 'imap_clearflag_full',
+ 'imap_close',
+ 'imap_createmailbox',
+ 'imap_deletemailbox',
+ 'imap_fetchstructure',
+ 'imap_gc',
+ 'imap_headerinfo',
+ 'imap_mail',
+ 'imap_mailboxmsginfo',
+ 'imap_mail_compose',
+ 'imap_mail_copy',
+ 'imap_mail_move',
+ 'imap_mutf7_to_utf8',
+ 'imap_num_msg',
+ 'imap_open',
+ 'imap_renamemailbox',
+ 'imap_savebody',
+ 'imap_setacl',
+ 'imap_setflag_full',
+ 'imap_set_quota',
+ 'imap_sort',
+ 'imap_subscribe',
+ 'imap_thread',
+ 'imap_timeout',
+ 'imap_undelete',
+ 'imap_unsubscribe',
+ 'imap_utf8_to_mutf7',
+ 'inet_ntop',
+ 'inflate_add',
+ 'inflate_get_read_len',
+ 'inflate_get_status',
+ 'inflate_init',
+ 'ingres_autocommit',
+ 'ingres_close',
+ 'ingres_commit',
+ 'ingres_connect',
+ 'ingres_execute',
+ 'ingres_field_name',
+ 'ingres_field_type',
+ 'ingres_free_result',
+ 'ingres_pconnect',
+ 'ingres_result_seek',
+ 'ingres_rollback',
+ 'ingres_set_environment',
+ 'ini_get',
+ 'ini_set',
+ 'inotify_init',
+ 'inotify_rm_watch',
+ 'iptcembed',
+ 'iptcparse',
+ 'jdtounix',
+ 'jpeg2wbmp',
+ 'json_decode',
+ 'json_encode',
+ 'json_last_error_msg',
+ 'krsort',
+ 'ksort',
+ 'lchgrp',
+ 'lchown',
+ 'ldap_add',
+ 'ldap_add_ext',
+ 'ldap_bind',
+ 'ldap_bind_ext',
+ 'ldap_control_paged_result',
+ 'ldap_control_paged_result_response',
+ 'ldap_count_entries',
+ 'ldap_delete',
+ 'ldap_delete_ext',
+ 'ldap_exop',
+ 'ldap_exop_passwd',
+ 'ldap_exop_whoami',
+ 'ldap_explode_dn',
+ 'ldap_first_attribute',
+ 'ldap_first_entry',
+ 'ldap_free_result',
+ 'ldap_get_attributes',
+ 'ldap_get_dn',
+ 'ldap_get_entries',
+ 'ldap_get_option',
+ 'ldap_get_values',
+ 'ldap_get_values_len',
+ 'ldap_list',
+ 'ldap_modify_batch',
+ 'ldap_mod_add',
+ 'ldap_mod_add_ext',
+ 'ldap_mod_del',
+ 'ldap_mod_del_ext',
+ 'ldap_mod_replace',
+ 'ldap_mod_replace_ext',
+ 'ldap_next_attribute',
+ 'ldap_parse_exop',
+ 'ldap_parse_result',
+ 'ldap_read',
+ 'ldap_rename',
+ 'ldap_rename_ext',
+ 'ldap_sasl_bind',
+ 'ldap_search',
+ 'ldap_set_option',
+ 'ldap_unbind',
+ 'libxml_get_last_error',
+ 'libxml_set_external_entity_loader',
+ 'link',
+ 'lzf_compress',
+ 'lzf_decompress',
+ 'mailparse_msg_extract_part_file',
+ 'mailparse_msg_free',
+ 'mailparse_msg_parse',
+ 'mailparse_msg_parse_file',
+ 'mailparse_stream_encode',
+ 'mb_chr',
+ 'mb_detect_order',
+ 'mb_encoding_aliases',
+ 'mb_eregi_replace',
+ 'mb_ereg_replace',
+ 'mb_ereg_replace_callback',
+ 'mb_ereg_search_getregs',
+ 'mb_ereg_search_init',
+ 'mb_ereg_search_regs',
+ 'mb_ereg_search_setpos',
+ 'mb_http_output',
+ 'mb_internal_encoding',
+ 'mb_ord',
+ 'mb_parse_str',
+ 'mb_regex_encoding',
+ 'mb_send_mail',
+ 'mb_split',
+ 'mb_str_split',
+ 'md5_file',
+ 'metaphone',
+ 'mime_content_type',
+ 'mkdir',
+ 'mktime',
+ 'msg_queue_exists',
+ 'msg_receive',
+ 'msg_remove_queue',
+ 'msg_send',
+ 'msg_set_queue',
+ 'msql_affected_rows',
+ 'msql_close',
+ 'msql_connect',
+ 'msql_create_db',
+ 'msql_data_seek',
+ 'msql_db_query',
+ 'msql_drop_db',
+ 'msql_field_len',
+ 'msql_field_name',
+ 'msql_field_seek',
+ 'msql_field_table',
+ 'msql_field_type',
+ 'msql_free_result',
+ 'msql_pconnect',
+ 'msql_query',
+ 'msql_select_db',
+ 'mysqli_get_cache_stats',
+ 'mysqli_get_client_stats',
+ 'mysqlnd_ms_dump_servers',
+ 'mysqlnd_ms_fabric_select_global',
+ 'mysqlnd_ms_fabric_select_shard',
+ 'mysqlnd_ms_get_last_used_connection',
+ 'mysqlnd_qc_clear_cache',
+ 'mysqlnd_qc_set_is_select',
+ 'mysqlnd_qc_set_storage_handler',
+ 'mysql_close',
+ 'mysql_connect',
+ 'mysql_create_db',
+ 'mysql_data_seek',
+ 'mysql_db_name',
+ 'mysql_db_query',
+ 'mysql_drop_db',
+ 'mysql_fetch_lengths',
+ 'mysql_field_flags',
+ 'mysql_field_len',
+ 'mysql_field_name',
+ 'mysql_field_seek',
+ 'mysql_free_result',
+ 'mysql_get_host_info',
+ 'mysql_get_proto_info',
+ 'mysql_get_server_info',
+ 'mysql_info',
+ 'mysql_list_dbs',
+ 'mysql_list_fields',
+ 'mysql_list_processes',
+ 'mysql_list_tables',
+ 'mysql_num_fields',
+ 'mysql_num_rows',
+ 'mysql_query',
+ 'mysql_real_escape_string',
+ 'mysql_result',
+ 'mysql_select_db',
+ 'mysql_set_charset',
+ 'mysql_tablename',
+ 'mysql_thread_id',
+ 'mysql_unbuffered_query',
+ 'natcasesort',
+ 'natsort',
+ 'ob_end_clean',
+ 'ob_end_flush',
+ 'oci_bind_array_by_name',
+ 'oci_bind_by_name',
+ 'oci_cancel',
+ 'oci_close',
+ 'oci_commit',
+ 'oci_connect',
+ 'oci_define_by_name',
+ 'oci_execute',
+ 'oci_fetch_all',
+ 'oci_field_name',
+ 'oci_field_precision',
+ 'oci_field_scale',
+ 'oci_field_size',
+ 'oci_field_type',
+ 'oci_field_type_raw',
+ 'oci_free_descriptor',
+ 'oci_free_statement',
+ 'oci_new_collection',
+ 'oci_new_connect',
+ 'oci_new_cursor',
+ 'oci_new_descriptor',
+ 'oci_num_fields',
+ 'oci_num_rows',
+ 'oci_parse',
+ 'oci_pconnect',
+ 'oci_result',
+ 'oci_rollback',
+ 'oci_server_version',
+ 'oci_set_action',
+ 'oci_set_call_timeout',
+ 'oci_set_client_identifier',
+ 'oci_set_client_info',
+ 'oci_set_db_operation',
+ 'oci_set_edition',
+ 'oci_set_module_name',
+ 'oci_set_prefetch',
+ 'oci_statement_type',
+ 'oci_unregister_taf_callback',
+ 'odbc_autocommit',
+ 'odbc_binmode',
+ 'odbc_columnprivileges',
+ 'odbc_columns',
+ 'odbc_commit',
+ 'odbc_data_source',
+ 'odbc_exec',
+ 'odbc_execute',
+ 'odbc_fetch_into',
+ 'odbc_field_len',
+ 'odbc_field_name',
+ 'odbc_field_num',
+ 'odbc_field_scale',
+ 'odbc_field_type',
+ 'odbc_foreignkeys',
+ 'odbc_gettypeinfo',
+ 'odbc_longreadlen',
+ 'odbc_prepare',
+ 'odbc_primarykeys',
+ 'odbc_result',
+ 'odbc_result_all',
+ 'odbc_rollback',
+ 'odbc_setoption',
+ 'odbc_specialcolumns',
+ 'odbc_statistics',
+ 'odbc_tableprivileges',
+ 'odbc_tables',
+ 'opcache_compile_file',
+ 'opcache_get_status',
+ 'opendir',
+ 'openlog',
+ 'openssl_cipher_iv_length',
+ 'openssl_csr_export',
+ 'openssl_csr_export_to_file',
+ 'openssl_csr_get_subject',
+ 'openssl_csr_new',
+ 'openssl_csr_sign',
+ 'openssl_decrypt',
+ 'openssl_dh_compute_key',
+ 'openssl_digest',
+ 'openssl_encrypt',
+ 'openssl_open',
+ 'openssl_pbkdf2',
+ 'openssl_pkcs7_decrypt',
+ 'openssl_pkcs7_encrypt',
+ 'openssl_pkcs7_read',
+ 'openssl_pkcs7_sign',
+ 'openssl_pkcs12_export',
+ 'openssl_pkcs12_export_to_file',
+ 'openssl_pkcs12_read',
+ 'openssl_pkey_export',
+ 'openssl_pkey_export_to_file',
+ 'openssl_pkey_get_private',
+ 'openssl_pkey_get_public',
+ 'openssl_pkey_new',
+ 'openssl_private_decrypt',
+ 'openssl_private_encrypt',
+ 'openssl_public_decrypt',
+ 'openssl_public_encrypt',
+ 'openssl_random_pseudo_bytes',
+ 'openssl_seal',
+ 'openssl_sign',
+ 'openssl_x509_export',
+ 'openssl_x509_export_to_file',
+ 'openssl_x509_fingerprint',
+ 'openssl_x509_read',
+ 'output_add_rewrite_var',
+ 'output_reset_rewrite_vars',
+ 'pack',
+ 'parse_ini_file',
+ 'parse_ini_string',
+ 'parse_url',
+ 'password_hash',
+ 'pcntl_exec',
+ 'pcntl_getpriority',
+ 'pcntl_setpriority',
+ 'pcntl_signal_dispatch',
+ 'pcntl_sigprocmask',
+ 'pcntl_strerror',
+ 'PDF_activate_item',
+ 'PDF_add_locallink',
+ 'PDF_add_nameddest',
+ 'PDF_add_note',
+ 'PDF_add_pdflink',
+ 'PDF_add_thumbnail',
+ 'PDF_add_weblink',
+ 'PDF_attach_file',
+ 'PDF_begin_layer',
+ 'PDF_begin_page',
+ 'PDF_begin_page_ext',
+ 'PDF_circle',
+ 'PDF_clip',
+ 'PDF_close',
+ 'PDF_closepath',
+ 'PDF_closepath_fill_stroke',
+ 'PDF_closepath_stroke',
+ 'PDF_close_pdi',
+ 'PDF_close_pdi_page',
+ 'PDF_concat',
+ 'PDF_continue_text',
+ 'PDF_curveto',
+ 'PDF_delete',
+ 'PDF_end_layer',
+ 'PDF_end_page',
+ 'PDF_end_page_ext',
+ 'PDF_end_pattern',
+ 'PDF_end_template',
+ 'PDF_fill',
+ 'PDF_fill_stroke',
+ 'PDF_fit_image',
+ 'PDF_fit_pdi_page',
+ 'PDF_fit_textline',
+ 'PDF_initgraphics',
+ 'PDF_lineto',
+ 'PDF_makespotcolor',
+ 'PDF_moveto',
+ 'PDF_open_file',
+ 'PDF_place_image',
+ 'PDF_place_pdi_page',
+ 'PDF_rect',
+ 'PDF_restore',
+ 'PDF_rotate',
+ 'PDF_save',
+ 'PDF_scale',
+ 'PDF_setcolor',
+ 'PDF_setdash',
+ 'PDF_setdashpattern',
+ 'PDF_setflat',
+ 'PDF_setfont',
+ 'PDF_setgray',
+ 'PDF_setgray_fill',
+ 'PDF_setgray_stroke',
+ 'PDF_setlinejoin',
+ 'PDF_setlinewidth',
+ 'PDF_setmatrix',
+ 'PDF_setmiterlimit',
+ 'PDF_setrgbcolor',
+ 'PDF_setrgbcolor_fill',
+ 'PDF_setrgbcolor_stroke',
+ 'PDF_set_border_color',
+ 'PDF_set_border_dash',
+ 'PDF_set_border_style',
+ 'PDF_set_info',
+ 'PDF_set_layer_dependency',
+ 'PDF_set_parameter',
+ 'PDF_set_text_pos',
+ 'PDF_set_value',
+ 'PDF_show',
+ 'PDF_show_xy',
+ 'PDF_skew',
+ 'PDF_stroke',
+ 'pg_cancel_query',
+ 'pg_client_encoding',
+ 'pg_close',
+ 'pg_connect',
+ 'pg_connection_reset',
+ 'pg_convert',
+ 'pg_copy_from',
+ 'pg_copy_to',
+ 'pg_dbname',
+ 'pg_delete',
+ 'pg_end_copy',
+ 'pg_execute',
+ 'pg_field_name',
+ 'pg_field_table',
+ 'pg_field_type',
+ 'pg_flush',
+ 'pg_free_result',
+ 'pg_host',
+ 'pg_insert',
+ 'pg_last_error',
+ 'pg_last_notice',
+ 'pg_last_oid',
+ 'pg_lo_close',
+ 'pg_lo_export',
+ 'pg_lo_import',
+ 'pg_lo_open',
+ 'pg_lo_read',
+ 'pg_lo_read_all',
+ 'pg_lo_seek',
+ 'pg_lo_truncate',
+ 'pg_lo_unlink',
+ 'pg_lo_write',
+ 'pg_meta_data',
+ 'pg_options',
+ 'pg_parameter_status',
+ 'pg_pconnect',
+ 'pg_ping',
+ 'pg_port',
+ 'pg_prepare',
+ 'pg_put_line',
+ 'pg_query',
+ 'pg_query_params',
+ 'pg_result_error_field',
+ 'pg_result_seek',
+ 'pg_select',
+ 'pg_send_execute',
+ 'pg_send_prepare',
+ 'pg_send_query',
+ 'pg_send_query_params',
+ 'pg_socket',
+ 'pg_trace',
+ 'pg_tty',
+ 'pg_update',
+ 'pg_version',
+ 'phpcredits',
+ 'phpinfo',
+ 'png2wbmp',
+ 'posix_access',
+ 'posix_getgrnam',
+ 'posix_getpgid',
+ 'posix_initgroups',
+ 'posix_kill',
+ 'posix_mkfifo',
+ 'posix_mknod',
+ 'posix_setegid',
+ 'posix_seteuid',
+ 'posix_setgid',
+ 'posix_setpgid',
+ 'posix_setrlimit',
+ 'posix_setuid',
+ 'preg_match',
+ 'preg_match_all',
+ 'preg_replace',
+ 'preg_split',
+ 'proc_get_status',
+ 'proc_nice',
+ 'pspell_add_to_personal',
+ 'pspell_add_to_session',
+ 'pspell_clear_session',
+ 'pspell_config_create',
+ 'pspell_config_data_dir',
+ 'pspell_config_dict_dir',
+ 'pspell_config_ignore',
+ 'pspell_config_mode',
+ 'pspell_config_personal',
+ 'pspell_config_repl',
+ 'pspell_config_runtogether',
+ 'pspell_config_save_repl',
+ 'pspell_new',
+ 'pspell_new_config',
+ 'pspell_save_wordlist',
+ 'pspell_store_replacement',
+ 'ps_add_launchlink',
+ 'ps_add_locallink',
+ 'ps_add_note',
+ 'ps_add_pdflink',
+ 'ps_add_weblink',
+ 'ps_arc',
+ 'ps_arcn',
+ 'ps_begin_page',
+ 'ps_begin_pattern',
+ 'ps_begin_template',
+ 'ps_circle',
+ 'ps_clip',
+ 'ps_close',
+ 'ps_closepath',
+ 'ps_closepath_stroke',
+ 'ps_close_image',
+ 'ps_continue_text',
+ 'ps_curveto',
+ 'ps_delete',
+ 'ps_end_page',
+ 'ps_end_pattern',
+ 'ps_end_template',
+ 'ps_fill',
+ 'ps_fill_stroke',
+ 'ps_get_parameter',
+ 'ps_hyphenate',
+ 'ps_include_file',
+ 'ps_lineto',
+ 'ps_moveto',
+ 'ps_new',
+ 'ps_open_file',
+ 'ps_place_image',
+ 'ps_rect',
+ 'ps_restore',
+ 'ps_rotate',
+ 'ps_save',
+ 'ps_scale',
+ 'ps_setcolor',
+ 'ps_setdash',
+ 'ps_setflat',
+ 'ps_setfont',
+ 'ps_setgray',
+ 'ps_setlinecap',
+ 'ps_setlinejoin',
+ 'ps_setlinewidth',
+ 'ps_setmiterlimit',
+ 'ps_setoverprintmode',
+ 'ps_setpolydash',
+ 'ps_set_border_color',
+ 'ps_set_border_dash',
+ 'ps_set_border_style',
+ 'ps_set_info',
+ 'ps_set_parameter',
+ 'ps_set_text_pos',
+ 'ps_set_value',
+ 'ps_shading',
+ 'ps_shading_pattern',
+ 'ps_shfill',
+ 'ps_show',
+ 'ps_show2',
+ 'ps_show_xy',
+ 'ps_show_xy2',
+ 'ps_stroke',
+ 'ps_symbol',
+ 'ps_translate',
+ 'putenv',
+ 'readfile',
+ 'readgzfile',
+ 'readline_add_history',
+ 'readline_callback_handler_install',
+ 'readline_clear_history',
+ 'readline_completion_function',
+ 'readline_read_history',
+ 'readline_write_history',
+ 'readlink',
+ 'realpath',
+ 'register_tick_function',
+ 'rename',
+ 'rewind',
+ 'rewinddir',
+ 'rmdir',
+ 'rpmaddtag',
+ 'rrd_create',
+ 'rsort',
+ 'sapi_windows_cp_conv',
+ 'sapi_windows_cp_set',
+ 'sapi_windows_generate_ctrl_event',
+ 'sapi_windows_vt100_support',
+ 'scandir',
+ 'sem_acquire',
+ 'sem_get',
+ 'sem_release',
+ 'sem_remove',
+ 'session_abort',
+ 'session_decode',
+ 'session_destroy',
+ 'session_regenerate_id',
+ 'session_reset',
+ 'session_unset',
+ 'session_write_close',
+ 'settype',
+ 'set_include_path',
+ 'set_time_limit',
+ 'sha1_file',
+ 'shmop_delete',
+ 'shmop_read',
+ 'shmop_write',
+ 'shm_put_var',
+ 'shm_remove',
+ 'shm_remove_var',
+ 'shuffle',
+ 'simplexml_import_dom',
+ 'simplexml_load_file',
+ 'simplexml_load_string',
+ 'sleep',
+ 'socket_accept',
+ 'socket_addrinfo_bind',
+ 'socket_addrinfo_connect',
+ 'socket_bind',
+ 'socket_connect',
+ 'socket_create',
+ 'socket_create_listen',
+ 'socket_create_pair',
+ 'socket_export_stream',
+ 'socket_getpeername',
+ 'socket_getsockname',
+ 'socket_get_option',
+ 'socket_import_stream',
+ 'socket_listen',
+ 'socket_read',
+ 'socket_send',
+ 'socket_sendmsg',
+ 'socket_sendto',
+ 'socket_set_block',
+ 'socket_set_nonblock',
+ 'socket_set_option',
+ 'socket_shutdown',
+ 'socket_write',
+ 'socket_wsaprotocol_info_export',
+ 'socket_wsaprotocol_info_import',
+ 'socket_wsaprotocol_info_release',
+ 'sodium_crypto_pwhash',
+ 'sodium_crypto_pwhash_str',
+ 'solr_get_version',
+ 'sort',
+ 'soundex',
+ 'spl_autoload_register',
+ 'spl_autoload_unregister',
+ 'sprintf',
+ 'sqlsrv_begin_transaction',
+ 'sqlsrv_cancel',
+ 'sqlsrv_client_info',
+ 'sqlsrv_close',
+ 'sqlsrv_commit',
+ 'sqlsrv_configure',
+ 'sqlsrv_execute',
+ 'sqlsrv_free_stmt',
+ 'sqlsrv_get_field',
+ 'sqlsrv_next_result',
+ 'sqlsrv_num_fields',
+ 'sqlsrv_num_rows',
+ 'sqlsrv_prepare',
+ 'sqlsrv_query',
+ 'sqlsrv_rollback',
+ 'ssdeep_fuzzy_compare',
+ 'ssdeep_fuzzy_hash',
+ 'ssdeep_fuzzy_hash_filename',
+ 'ssh2_auth_agent',
+ 'ssh2_auth_hostbased_file',
+ 'ssh2_auth_password',
+ 'ssh2_auth_pubkey_file',
+ 'ssh2_connect',
+ 'ssh2_disconnect',
+ 'ssh2_exec',
+ 'ssh2_publickey_add',
+ 'ssh2_publickey_init',
+ 'ssh2_publickey_remove',
+ 'ssh2_scp_recv',
+ 'ssh2_scp_send',
+ 'ssh2_sftp',
+ 'ssh2_sftp_chmod',
+ 'ssh2_sftp_mkdir',
+ 'ssh2_sftp_rename',
+ 'ssh2_sftp_rmdir',
+ 'ssh2_sftp_symlink',
+ 'ssh2_sftp_unlink',
+ 'stream_context_set_params',
+ 'stream_copy_to_stream',
+ 'stream_filter_append',
+ 'stream_filter_prepend',
+ 'stream_filter_register',
+ 'stream_filter_remove',
+ 'stream_get_contents',
+ 'stream_isatty',
+ 'stream_resolve_include_path',
+ 'stream_set_blocking',
+ 'stream_set_timeout',
+ 'stream_socket_accept',
+ 'stream_socket_client',
+ 'stream_socket_pair',
+ 'stream_socket_server',
+ 'stream_socket_shutdown',
+ 'stream_supports_lock',
+ 'stream_wrapper_register',
+ 'stream_wrapper_restore',
+ 'stream_wrapper_unregister',
+ 'strptime',
+ 'strtotime',
+ 'substr',
+ 'swoole_async_write',
+ 'swoole_async_writefile',
+ 'swoole_event_defer',
+ 'swoole_event_del',
+ 'swoole_event_write',
+ 'symlink',
+ 'syslog',
+ 'system',
+ 'tempnam',
+ 'timezone_name_from_abbr',
+ 'time_nanosleep',
+ 'time_sleep_until',
+ 'tmpfile',
+ 'touch',
+ 'uasort',
+ 'uksort',
+ 'unlink',
+ 'unpack',
+ 'uopz_extend',
+ 'uopz_implement',
+ 'usort',
+ 'virtual',
+ 'vsprintf',
+ 'xdiff_file_bdiff',
+ 'xdiff_file_bpatch',
+ 'xdiff_file_diff',
+ 'xdiff_file_diff_binary',
+ 'xdiff_file_patch_binary',
+ 'xdiff_file_rabdiff',
+ 'xdiff_string_bpatch',
+ 'xdiff_string_patch',
+ 'xdiff_string_patch_binary',
+ 'xmlrpc_set_type',
+ 'xml_parser_create',
+ 'xml_parser_create_ns',
+ 'xml_set_object',
+ 'yaml_parse',
+ 'yaml_parse_file',
+ 'yaml_parse_url',
+ 'yaz_ccl_parse',
+ 'yaz_close',
+ 'yaz_connect',
+ 'yaz_database',
+ 'yaz_element',
+ 'yaz_present',
+ 'yaz_search',
+ 'yaz_wait',
+ 'zip_entry_close',
+ 'zip_entry_open',
+ 'zip_entry_read',
+ 'zlib_decode',
+];
diff --git a/vendor/thecodingmachine/safe/generated/gmp.php b/vendor/thecodingmachine/safe/generated/gmp.php
new file mode 100644
index 000000000..dae15975d
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/gmp.php
@@ -0,0 +1,87 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\GmpException;
+
+/**
+ * Calculates the binomial coefficient C(n, k).
+ *
+ * @param \GMP|string|int $n Either a GMP number resource in PHP 5.5 and earlier, a GMP object in PHP 5.6 and later, or a numeric string provided that it is possible to convert the latter to a number.
+ * @param int $k
+ * @return \GMP Returns the binomial coefficient C(n, k).
+ * @throws GmpException
+ *
+ */
+function gmp_binomial($n, int $k): \GMP
+{
+ error_clear_last();
+ $result = \gmp_binomial($n, $k);
+ if ($result === false) {
+ throw GmpException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Export a GMP number to a binary string
+ *
+ * @param \GMP|string|int $gmpnumber The GMP number being exported
+ * @param int $word_size Default value is 1. The number of bytes in each chunk of binary data. This is mainly used in conjunction with the options parameter.
+ * @param int $options Default value is GMP_MSW_FIRST | GMP_NATIVE_ENDIAN.
+ * @return string Returns a string.
+ * @throws GmpException
+ *
+ */
+function gmp_export($gmpnumber, int $word_size = 1, int $options = GMP_MSW_FIRST | GMP_NATIVE_ENDIAN): string
+{
+ error_clear_last();
+ $result = \gmp_export($gmpnumber, $word_size, $options);
+ if ($result === false) {
+ throw GmpException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Import a GMP number from a binary string
+ *
+ * @param string $data The binary string being imported
+ * @param int $word_size Default value is 1. The number of bytes in each chunk of binary data. This is mainly used in conjunction with the options parameter.
+ * @param int $options Default value is GMP_MSW_FIRST | GMP_NATIVE_ENDIAN.
+ * @return \GMP Returns a GMP number.
+ * @throws GmpException
+ *
+ */
+function gmp_import(string $data, int $word_size = 1, int $options = GMP_MSW_FIRST | GMP_NATIVE_ENDIAN): \GMP
+{
+ error_clear_last();
+ $result = \gmp_import($data, $word_size, $options);
+ if ($result === false) {
+ throw GmpException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ *
+ *
+ * @param \GMP|string|int $seed The seed to be set for the gmp_random,
+ * gmp_random_bits, and
+ * gmp_random_range functions.
+ *
+ * Either a GMP number resource in PHP 5.5 and earlier, a GMP object in PHP 5.6 and later, or a numeric string provided that it is possible to convert the latter to a number.
+ * @throws GmpException
+ *
+ */
+function gmp_random_seed($seed): void
+{
+ error_clear_last();
+ $result = \gmp_random_seed($seed);
+ if ($result === false) {
+ throw GmpException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/gnupg.php b/vendor/thecodingmachine/safe/generated/gnupg.php
new file mode 100644
index 000000000..b5d85ca3a
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/gnupg.php
@@ -0,0 +1,168 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\GnupgException;
+
+/**
+ *
+ *
+ * @param resource $identifier The gnupg identifier, from a call to
+ * gnupg_init or gnupg.
+ * @param string $fingerprint The fingerprint key.
+ * @param string $passphrase The pass phrase.
+ * @throws GnupgException
+ *
+ */
+function gnupg_adddecryptkey($identifier, string $fingerprint, string $passphrase): void
+{
+ error_clear_last();
+ $result = \gnupg_adddecryptkey($identifier, $fingerprint, $passphrase);
+ if ($result === false) {
+ throw GnupgException::createFromPhpError();
+ }
+}
+
+
+/**
+ *
+ *
+ * @param resource $identifier The gnupg identifier, from a call to
+ * gnupg_init or gnupg.
+ * @param string $fingerprint The fingerprint key.
+ * @throws GnupgException
+ *
+ */
+function gnupg_addencryptkey($identifier, string $fingerprint): void
+{
+ error_clear_last();
+ $result = \gnupg_addencryptkey($identifier, $fingerprint);
+ if ($result === false) {
+ throw GnupgException::createFromPhpError();
+ }
+}
+
+
+/**
+ *
+ *
+ * @param resource $identifier The gnupg identifier, from a call to
+ * gnupg_init or gnupg.
+ * @param string $fingerprint The fingerprint key.
+ * @param string $passphrase The pass phrase.
+ * @throws GnupgException
+ *
+ */
+function gnupg_addsignkey($identifier, string $fingerprint, string $passphrase = null): void
+{
+ error_clear_last();
+ if ($passphrase !== null) {
+ $result = \gnupg_addsignkey($identifier, $fingerprint, $passphrase);
+ } else {
+ $result = \gnupg_addsignkey($identifier, $fingerprint);
+ }
+ if ($result === false) {
+ throw GnupgException::createFromPhpError();
+ }
+}
+
+
+/**
+ *
+ *
+ * @param resource $identifier The gnupg identifier, from a call to
+ * gnupg_init or gnupg.
+ * @throws GnupgException
+ *
+ */
+function gnupg_cleardecryptkeys($identifier): void
+{
+ error_clear_last();
+ $result = \gnupg_cleardecryptkeys($identifier);
+ if ($result === false) {
+ throw GnupgException::createFromPhpError();
+ }
+}
+
+
+/**
+ *
+ *
+ * @param resource $identifier The gnupg identifier, from a call to
+ * gnupg_init or gnupg.
+ * @throws GnupgException
+ *
+ */
+function gnupg_clearencryptkeys($identifier): void
+{
+ error_clear_last();
+ $result = \gnupg_clearencryptkeys($identifier);
+ if ($result === false) {
+ throw GnupgException::createFromPhpError();
+ }
+}
+
+
+/**
+ *
+ *
+ * @param resource $identifier The gnupg identifier, from a call to
+ * gnupg_init or gnupg.
+ * @throws GnupgException
+ *
+ */
+function gnupg_clearsignkeys($identifier): void
+{
+ error_clear_last();
+ $result = \gnupg_clearsignkeys($identifier);
+ if ($result === false) {
+ throw GnupgException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Toggle the armored output.
+ *
+ * @param resource $identifier The gnupg identifier, from a call to
+ * gnupg_init or gnupg.
+ * @param int $armor Pass a non-zero integer-value to this function to enable armored-output
+ * (default).
+ * Pass 0 to disable armored output.
+ * @throws GnupgException
+ *
+ */
+function gnupg_setarmor($identifier, int $armor): void
+{
+ error_clear_last();
+ $result = \gnupg_setarmor($identifier, $armor);
+ if ($result === false) {
+ throw GnupgException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the mode for signing.
+ *
+ * @param resource $identifier The gnupg identifier, from a call to
+ * gnupg_init or gnupg.
+ * @param int $signmode The mode for signing.
+ *
+ * signmode takes a constant indicating what type of
+ * signature should be produced. The possible values are
+ * GNUPG_SIG_MODE_NORMAL,
+ * GNUPG_SIG_MODE_DETACH and
+ * GNUPG_SIG_MODE_CLEAR.
+ * By default GNUPG_SIG_MODE_CLEAR is used.
+ * @throws GnupgException
+ *
+ */
+function gnupg_setsignmode($identifier, int $signmode): void
+{
+ error_clear_last();
+ $result = \gnupg_setsignmode($identifier, $signmode);
+ if ($result === false) {
+ throw GnupgException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/hash.php b/vendor/thecodingmachine/safe/generated/hash.php
new file mode 100644
index 000000000..2c327c0e3
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/hash.php
@@ -0,0 +1,61 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\HashException;
+
+/**
+ *
+ *
+ * @param string $algo Name of selected hashing algorithm (i.e. "sha256", "sha512", "haval160,4", etc..)
+ * See hash_algos for a list of supported algorithms.
+ *
+ *
+ * Non-cryptographic hash functions are not allowed.
+ *
+ *
+ *
+ * Non-cryptographic hash functions are not allowed.
+ * @param string $ikm Input keying material (raw binary). Cannot be empty.
+ * @param int $length Desired output length in bytes.
+ * Cannot be greater than 255 times the chosen hash function size.
+ *
+ * If length is 0, the output length
+ * will default to the chosen hash function size.
+ * @param string $info Application/context-specific info string.
+ * @param string $salt Salt to use during derivation.
+ *
+ * While optional, adding random salt significantly improves the strength of HKDF.
+ * @return string Returns a string containing a raw binary representation of the derived key
+ * (also known as output keying material - OKM);.
+ * @throws HashException
+ *
+ */
+function hash_hkdf(string $algo, string $ikm, int $length = 0, string $info = '', string $salt = ''): string
+{
+ error_clear_last();
+ $result = \hash_hkdf($algo, $ikm, $length, $info, $salt);
+ if ($result === false) {
+ throw HashException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ *
+ *
+ * @param \HashContext $hcontext Hashing context returned by hash_init.
+ * @param string $filename URL describing location of file to be hashed; Supports fopen wrappers.
+ * @param \HashContext|null $scontext Stream context as returned by stream_context_create.
+ * @throws HashException
+ *
+ */
+function hash_update_file(\HashContext $hcontext, string $filename, ?\HashContext $scontext = null): void
+{
+ error_clear_last();
+ $result = \hash_update_file($hcontext, $filename, $scontext);
+ if ($result === false) {
+ throw HashException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/ibase.php b/vendor/thecodingmachine/safe/generated/ibase.php
new file mode 100644
index 000000000..49697400d
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/ibase.php
@@ -0,0 +1,633 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\IbaseException;
+
+/**
+ * This function will discard a BLOB if it has not yet been closed by
+ * fbird_blob_close.
+ *
+ * @param resource $blob_handle A BLOB handle opened with fbird_blob_create.
+ * @throws IbaseException
+ *
+ */
+function fbird_blob_cancel($blob_handle): void
+{
+ error_clear_last();
+ $result = \fbird_blob_cancel($blob_handle);
+ if ($result === false) {
+ throw IbaseException::createFromPhpError();
+ }
+}
+
+
+/**
+ *
+ *
+ * @param resource $service_handle The handle on the database server service.
+ * @param string $user_name The login name of the new database user.
+ * @param string $password The password of the new user.
+ * @param string $first_name The first name of the new database user.
+ * @param string $middle_name The middle name of the new database user.
+ * @param string $last_name The last name of the new database user.
+ * @throws IbaseException
+ *
+ */
+function ibase_add_user($service_handle, string $user_name, string $password, string $first_name = null, string $middle_name = null, string $last_name = null): void
+{
+ error_clear_last();
+ if ($last_name !== null) {
+ $result = \ibase_add_user($service_handle, $user_name, $password, $first_name, $middle_name, $last_name);
+ } elseif ($middle_name !== null) {
+ $result = \ibase_add_user($service_handle, $user_name, $password, $first_name, $middle_name);
+ } elseif ($first_name !== null) {
+ $result = \ibase_add_user($service_handle, $user_name, $password, $first_name);
+ } else {
+ $result = \ibase_add_user($service_handle, $user_name, $password);
+ }
+ if ($result === false) {
+ throw IbaseException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function passes the arguments to the (remote) database server. There it starts a new backup process. Therefore you
+ * won't get any responses.
+ *
+ * @param resource $service_handle A previously opened connection to the database server.
+ * @param string $source_db The absolute file path to the database on the database server. You can also use a database alias.
+ * @param string $dest_file The path to the backup file on the database server.
+ * @param int $options Additional options to pass to the database server for backup.
+ * The options parameter can be a combination
+ * of the following constants:
+ * IBASE_BKP_IGNORE_CHECKSUMS,
+ * IBASE_BKP_IGNORE_LIMBO,
+ * IBASE_BKP_METADATA_ONLY,
+ * IBASE_BKP_NO_GARBAGE_COLLECT,
+ * IBASE_BKP_OLD_DESCRIPTIONS,
+ * IBASE_BKP_NON_TRANSPORTABLE or
+ * IBASE_BKP_CONVERT.
+ * Read the section about for further information.
+ * @param bool $verbose Since the backup process is done on the database server, you don't have any chance
+ * to get its output. This argument is useless.
+ * @return mixed Returns TRUE on success.
+ *
+ * Since the backup process is done on the (remote) server, this function just passes the arguments to it.
+ * While the arguments are legal, you won't get FALSE.
+ * @throws IbaseException
+ *
+ */
+function ibase_backup($service_handle, string $source_db, string $dest_file, int $options = 0, bool $verbose = false)
+{
+ error_clear_last();
+ $result = \ibase_backup($service_handle, $source_db, $dest_file, $options, $verbose);
+ if ($result === false) {
+ throw IbaseException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * This function will discard a BLOB if it has not yet been closed by
+ * ibase_blob_close.
+ *
+ * @param resource $blob_handle A BLOB handle opened with ibase_blob_create.
+ * @throws IbaseException
+ *
+ */
+function ibase_blob_cancel($blob_handle): void
+{
+ error_clear_last();
+ $result = \ibase_blob_cancel($blob_handle);
+ if ($result === false) {
+ throw IbaseException::createFromPhpError();
+ }
+}
+
+
+/**
+ * ibase_blob_create creates a new BLOB for filling with
+ * data.
+ *
+ * @param resource $link_identifier An InterBase link identifier. If omitted, the last opened link is
+ * assumed.
+ * @return resource Returns a BLOB handle for later use with
+ * ibase_blob_add.
+ * @throws IbaseException
+ *
+ */
+function ibase_blob_create($link_identifier = null)
+{
+ error_clear_last();
+ $result = \ibase_blob_create($link_identifier);
+ if ($result === false) {
+ throw IbaseException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * This function returns at most len bytes from a BLOB
+ * that has been opened for reading by ibase_blob_open.
+ *
+ * @param resource $blob_handle A BLOB handle opened with ibase_blob_open.
+ * @param int $len Size of returned data.
+ * @return string Returns at most len bytes from the BLOB.
+ * @throws IbaseException
+ *
+ */
+function ibase_blob_get($blob_handle, int $len): string
+{
+ error_clear_last();
+ $result = \ibase_blob_get($blob_handle, $len);
+ if ($result === false) {
+ throw IbaseException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Closes the link to an InterBase database that's associated with
+ * a connection id returned from ibase_connect.
+ * Default transaction on link is committed, other transactions are
+ * rolled back.
+ *
+ * @param resource $connection_id An InterBase link identifier returned from
+ * ibase_connect. If omitted, the last opened link
+ * is assumed.
+ * @throws IbaseException
+ *
+ */
+function ibase_close($connection_id = null): void
+{
+ error_clear_last();
+ $result = \ibase_close($connection_id);
+ if ($result === false) {
+ throw IbaseException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Commits a transaction without closing it.
+ *
+ * @param resource $link_or_trans_identifier If called without an argument, this function commits the default
+ * transaction of the default link. If the argument is a connection
+ * identifier, the default transaction of the corresponding connection
+ * will be committed. If the argument is a transaction identifier, the
+ * corresponding transaction will be committed. The transaction context
+ * will be retained, so statements executed from within this transaction
+ * will not be invalidated.
+ * @throws IbaseException
+ *
+ */
+function ibase_commit_ret($link_or_trans_identifier = null): void
+{
+ error_clear_last();
+ $result = \ibase_commit_ret($link_or_trans_identifier);
+ if ($result === false) {
+ throw IbaseException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Commits a transaction.
+ *
+ * @param resource $link_or_trans_identifier If called without an argument, this function commits the default
+ * transaction of the default link. If the argument is a connection
+ * identifier, the default transaction of the corresponding connection
+ * will be committed. If the argument is a transaction identifier, the
+ * corresponding transaction will be committed.
+ * @throws IbaseException
+ *
+ */
+function ibase_commit($link_or_trans_identifier = null): void
+{
+ error_clear_last();
+ $result = \ibase_commit($link_or_trans_identifier);
+ if ($result === false) {
+ throw IbaseException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Establishes a connection to an Firebird/InterBase server.
+ *
+ * In case a second call is made to ibase_connect with
+ * the same arguments, no new link will be established, but instead, the link
+ * identifier of the already opened link will be returned. The link to the
+ * server will be closed as soon as the execution of the script ends, unless
+ * it's closed earlier by explicitly calling ibase_close.
+ *
+ * @param string $database The database argument has to be a valid path to
+ * database file on the server it resides on. If the server is not local,
+ * it must be prefixed with either 'hostname:' (TCP/IP), 'hostname/port:'
+ * (TCP/IP with interbase server on custom TCP port), '//hostname/'
+ * (NetBEUI), depending on the connection
+ * protocol used.
+ * @param string $username The user name. Can be set with the
+ * ibase.default_user php.ini directive.
+ * @param string $password The password for username. Can be set with the
+ * ibase.default_password php.ini directive.
+ * @param string $charset charset is the default character set for a
+ * database.
+ * @param int $buffers buffers is the number of database buffers to
+ * allocate for the server-side cache. If 0 or omitted, server chooses
+ * its own default.
+ * @param int $dialect dialect selects the default SQL dialect for any
+ * statement executed within a connection, and it defaults to the highest
+ * one supported by client libraries.
+ * @param string $role Functional only with InterBase 5 and up.
+ * @param int $sync
+ * @return resource Returns an Firebird/InterBase link identifier on success.
+ * @throws IbaseException
+ *
+ */
+function ibase_connect(string $database = null, string $username = null, string $password = null, string $charset = null, int $buffers = null, int $dialect = null, string $role = null, int $sync = null)
+{
+ error_clear_last();
+ if ($sync !== null) {
+ $result = \ibase_connect($database, $username, $password, $charset, $buffers, $dialect, $role, $sync);
+ } elseif ($role !== null) {
+ $result = \ibase_connect($database, $username, $password, $charset, $buffers, $dialect, $role);
+ } elseif ($dialect !== null) {
+ $result = \ibase_connect($database, $username, $password, $charset, $buffers, $dialect);
+ } elseif ($buffers !== null) {
+ $result = \ibase_connect($database, $username, $password, $charset, $buffers);
+ } elseif ($charset !== null) {
+ $result = \ibase_connect($database, $username, $password, $charset);
+ } elseif ($password !== null) {
+ $result = \ibase_connect($database, $username, $password);
+ } elseif ($username !== null) {
+ $result = \ibase_connect($database, $username);
+ } elseif ($database !== null) {
+ $result = \ibase_connect($database);
+ } else {
+ $result = \ibase_connect();
+ }
+ if ($result === false) {
+ throw IbaseException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ *
+ *
+ * @param resource $service_handle The handle on the database server service.
+ * @param string $user_name The login name of the user you want to delete from the database.
+ * @throws IbaseException
+ *
+ */
+function ibase_delete_user($service_handle, string $user_name): void
+{
+ error_clear_last();
+ $result = \ibase_delete_user($service_handle, $user_name);
+ if ($result === false) {
+ throw IbaseException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This functions drops a database that was opened by either ibase_connect
+ * or ibase_pconnect. The database is closed and deleted from the server.
+ *
+ * @param resource $connection An InterBase link identifier. If omitted, the last opened link is
+ * assumed.
+ * @throws IbaseException
+ *
+ */
+function ibase_drop_db($connection = null): void
+{
+ error_clear_last();
+ $result = \ibase_drop_db($connection);
+ if ($result === false) {
+ throw IbaseException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function causes the registered event handler specified by
+ * event to be cancelled. The callback function will
+ * no longer be called for the events it was registered to handle.
+ *
+ * @param resource $event An event resource, created by
+ * ibase_set_event_handler.
+ * @throws IbaseException
+ *
+ */
+function ibase_free_event_handler($event): void
+{
+ error_clear_last();
+ $result = \ibase_free_event_handler($event);
+ if ($result === false) {
+ throw IbaseException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Frees a prepared query.
+ *
+ * @param resource $query A query prepared with ibase_prepare.
+ * @throws IbaseException
+ *
+ */
+function ibase_free_query($query): void
+{
+ error_clear_last();
+ $result = \ibase_free_query($query);
+ if ($result === false) {
+ throw IbaseException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Frees a result set.
+ *
+ * @param resource $result_identifier A result set created by ibase_query or
+ * ibase_execute.
+ * @throws IbaseException
+ *
+ */
+function ibase_free_result($result_identifier): void
+{
+ error_clear_last();
+ $result = \ibase_free_result($result_identifier);
+ if ($result === false) {
+ throw IbaseException::createFromPhpError();
+ }
+}
+
+
+/**
+ *
+ *
+ * @param resource $service_handle
+ * @param string $db
+ * @param int $action
+ * @param int $argument
+ * @throws IbaseException
+ *
+ */
+function ibase_maintain_db($service_handle, string $db, int $action, int $argument = 0): void
+{
+ error_clear_last();
+ $result = \ibase_maintain_db($service_handle, $db, $action, $argument);
+ if ($result === false) {
+ throw IbaseException::createFromPhpError();
+ }
+}
+
+
+/**
+ *
+ *
+ * @param resource $service_handle The handle on the database server service.
+ * @param string $user_name The login name of the database user to modify.
+ * @param string $password The user's new password.
+ * @param string $first_name The user's new first name.
+ * @param string $middle_name The user's new middle name.
+ * @param string $last_name The user's new last name.
+ * @throws IbaseException
+ *
+ */
+function ibase_modify_user($service_handle, string $user_name, string $password, string $first_name = null, string $middle_name = null, string $last_name = null): void
+{
+ error_clear_last();
+ if ($last_name !== null) {
+ $result = \ibase_modify_user($service_handle, $user_name, $password, $first_name, $middle_name, $last_name);
+ } elseif ($middle_name !== null) {
+ $result = \ibase_modify_user($service_handle, $user_name, $password, $first_name, $middle_name);
+ } elseif ($first_name !== null) {
+ $result = \ibase_modify_user($service_handle, $user_name, $password, $first_name);
+ } else {
+ $result = \ibase_modify_user($service_handle, $user_name, $password);
+ }
+ if ($result === false) {
+ throw IbaseException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function assigns a name to a result set. This name can be used later in
+ * UPDATE|DELETE ... WHERE CURRENT OF name statements.
+ *
+ * @param resource $result An InterBase result set.
+ * @param string $name The name to be assigned.
+ * @throws IbaseException
+ *
+ */
+function ibase_name_result($result, string $name): void
+{
+ error_clear_last();
+ $result = \ibase_name_result($result, $name);
+ if ($result === false) {
+ throw IbaseException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Opens a persistent connection to an InterBase database.
+ *
+ * ibase_pconnect acts very much like
+ * ibase_connect with two major differences.
+ *
+ * First, when connecting, the function will first try to find a (persistent)
+ * link that's already opened with the same parameters. If one is found, an
+ * identifier for it will be returned instead of opening a new connection.
+ *
+ * Second, the connection to the InterBase server will not be closed when the
+ * execution of the script ends. Instead, the link will remain open for
+ * future use (ibase_close will not close links
+ * established by ibase_pconnect). This type of link is
+ * therefore called 'persistent'.
+ *
+ * @param string $database The database argument has to be a valid path to
+ * database file on the server it resides on. If the server is not local,
+ * it must be prefixed with either 'hostname:' (TCP/IP), '//hostname/'
+ * (NetBEUI) or 'hostname@' (IPX/SPX), depending on the connection
+ * protocol used.
+ * @param string $username The user name. Can be set with the
+ * ibase.default_user php.ini directive.
+ * @param string $password The password for username. Can be set with the
+ * ibase.default_password php.ini directive.
+ * @param string $charset charset is the default character set for a
+ * database.
+ * @param int $buffers buffers is the number of database buffers to
+ * allocate for the server-side cache. If 0 or omitted, server chooses
+ * its own default.
+ * @param int $dialect dialect selects the default SQL dialect for any
+ * statement executed within a connection, and it defaults to the highest
+ * one supported by client libraries. Functional only with InterBase 6
+ * and up.
+ * @param string $role Functional only with InterBase 5 and up.
+ * @param int $sync
+ * @return resource Returns an InterBase link identifier on success.
+ * @throws IbaseException
+ *
+ */
+function ibase_pconnect(string $database = null, string $username = null, string $password = null, string $charset = null, int $buffers = null, int $dialect = null, string $role = null, int $sync = null)
+{
+ error_clear_last();
+ if ($sync !== null) {
+ $result = \ibase_pconnect($database, $username, $password, $charset, $buffers, $dialect, $role, $sync);
+ } elseif ($role !== null) {
+ $result = \ibase_pconnect($database, $username, $password, $charset, $buffers, $dialect, $role);
+ } elseif ($dialect !== null) {
+ $result = \ibase_pconnect($database, $username, $password, $charset, $buffers, $dialect);
+ } elseif ($buffers !== null) {
+ $result = \ibase_pconnect($database, $username, $password, $charset, $buffers);
+ } elseif ($charset !== null) {
+ $result = \ibase_pconnect($database, $username, $password, $charset);
+ } elseif ($password !== null) {
+ $result = \ibase_pconnect($database, $username, $password);
+ } elseif ($username !== null) {
+ $result = \ibase_pconnect($database, $username);
+ } elseif ($database !== null) {
+ $result = \ibase_pconnect($database);
+ } else {
+ $result = \ibase_pconnect();
+ }
+ if ($result === false) {
+ throw IbaseException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * This function passes the arguments to the (remote) database server. There it starts a new restore process. Therefore you
+ * won't get any responses.
+ *
+ * @param resource $service_handle A previously opened connection to the database server.
+ * @param string $source_file The absolute path on the server where the backup file is located.
+ * @param string $dest_db The path to create the new database on the server. You can also use database alias.
+ * @param int $options Additional options to pass to the database server for restore.
+ * The options parameter can be a combination
+ * of the following constants:
+ * IBASE_RES_DEACTIVATE_IDX,
+ * IBASE_RES_NO_SHADOW,
+ * IBASE_RES_NO_VALIDITY,
+ * IBASE_RES_ONE_AT_A_TIME,
+ * IBASE_RES_REPLACE,
+ * IBASE_RES_CREATE,
+ * IBASE_RES_USE_ALL_SPACE,
+ * IBASE_PRP_PAGE_BUFFERS,
+ * IBASE_PRP_SWEEP_INTERVAL,
+ * IBASE_RES_CREATE.
+ * Read the section about for further information.
+ * @param bool $verbose Since the restore process is done on the database server, you don't have any chance
+ * to get its output. This argument is useless.
+ * @return mixed Returns TRUE on success.
+ *
+ * Since the restore process is done on the (remote) server, this function just passes the arguments to it.
+ * While the arguments are legal, you won't get FALSE.
+ * @throws IbaseException
+ *
+ */
+function ibase_restore($service_handle, string $source_file, string $dest_db, int $options = 0, bool $verbose = false)
+{
+ error_clear_last();
+ $result = \ibase_restore($service_handle, $source_file, $dest_db, $options, $verbose);
+ if ($result === false) {
+ throw IbaseException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Rolls back a transaction without closing it.
+ *
+ * @param resource $link_or_trans_identifier If called without an argument, this function rolls back the default
+ * transaction of the default link. If the argument is a connection
+ * identifier, the default transaction of the corresponding connection
+ * will be rolled back. If the argument is a transaction identifier, the
+ * corresponding transaction will be rolled back. The transaction context
+ * will be retained, so statements executed from within this transaction
+ * will not be invalidated.
+ * @throws IbaseException
+ *
+ */
+function ibase_rollback_ret($link_or_trans_identifier = null): void
+{
+ error_clear_last();
+ $result = \ibase_rollback_ret($link_or_trans_identifier);
+ if ($result === false) {
+ throw IbaseException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Rolls back a transaction.
+ *
+ * @param resource $link_or_trans_identifier If called without an argument, this function rolls back the default
+ * transaction of the default link. If the argument is a connection
+ * identifier, the default transaction of the corresponding connection
+ * will be rolled back. If the argument is a transaction identifier, the
+ * corresponding transaction will be rolled back.
+ * @throws IbaseException
+ *
+ */
+function ibase_rollback($link_or_trans_identifier = null): void
+{
+ error_clear_last();
+ $result = \ibase_rollback($link_or_trans_identifier);
+ if ($result === false) {
+ throw IbaseException::createFromPhpError();
+ }
+}
+
+
+/**
+ *
+ *
+ * @param string $host The name or ip address of the database host. You can define the port by adding
+ * '/' and port number. If no port is specified, port 3050 will be used.
+ * @param string $dba_username The name of any valid user.
+ * @param string $dba_password The user's password.
+ * @return resource Returns a Interbase / Firebird link identifier on success.
+ * @throws IbaseException
+ *
+ */
+function ibase_service_attach(string $host, string $dba_username, string $dba_password)
+{
+ error_clear_last();
+ $result = \ibase_service_attach($host, $dba_username, $dba_password);
+ if ($result === false) {
+ throw IbaseException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ *
+ *
+ * @param resource $service_handle A previously created connection to the database server.
+ * @throws IbaseException
+ *
+ */
+function ibase_service_detach($service_handle): void
+{
+ error_clear_last();
+ $result = \ibase_service_detach($service_handle);
+ if ($result === false) {
+ throw IbaseException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/ibmDb2.php b/vendor/thecodingmachine/safe/generated/ibmDb2.php
new file mode 100644
index 000000000..f97e7b086
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/ibmDb2.php
@@ -0,0 +1,1221 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\IbmDb2Exception;
+
+/**
+ * Sets or gets the AUTOCOMMIT behavior of the specified connection resource.
+ *
+ * @param resource $connection A valid database connection resource variable as returned from
+ * db2_connect or db2_pconnect.
+ * @param int $value One of the following constants:
+ *
+ *
+ * DB2_AUTOCOMMIT_OFF
+ *
+ *
+ * Turns AUTOCOMMIT off.
+ *
+ *
+ *
+ *
+ * DB2_AUTOCOMMIT_ON
+ *
+ *
+ * Turns AUTOCOMMIT on.
+ *
+ *
+ *
+ *
+ *
+ * Turns AUTOCOMMIT off.
+ *
+ * Turns AUTOCOMMIT on.
+ * @return mixed When db2_autocommit receives only the
+ * connection parameter, it returns the current state
+ * of AUTOCOMMIT for the requested connection as an integer value. A value of
+ * DB2_AUTOCOMMIT_OFF indicates that AUTOCOMMIT is off, while a value of DB2_AUTOCOMMIT_ON indicates that
+ * AUTOCOMMIT is on.
+ *
+ * When db2_autocommit receives both the
+ * connection parameter and
+ * autocommit parameter, it attempts to set the
+ * AUTOCOMMIT state of the requested connection to the corresponding state.
+ * Returns TRUE on success.
+ * @throws IbmDb2Exception
+ *
+ */
+function db2_autocommit($connection, int $value = null)
+{
+ error_clear_last();
+ if ($value !== null) {
+ $result = \db2_autocommit($connection, $value);
+ } else {
+ $result = \db2_autocommit($connection);
+ }
+ if ($result === false) {
+ throw IbmDb2Exception::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Binds a PHP variable to an SQL statement parameter in a statement resource
+ * returned by db2_prepare. This function gives you more
+ * control over the parameter type, data type, precision, and scale for the
+ * parameter than simply passing the variable as part of the optional input
+ * array to db2_execute.
+ *
+ * @param resource $stmt A prepared statement returned from db2_prepare.
+ * @param int $parameter_number Specifies the 1-indexed position of the parameter in the prepared
+ * statement.
+ * @param string $variable_name A string specifying the name of the PHP variable to bind to the
+ * parameter specified by parameter_number.
+ * @param int $parameter_type A constant specifying whether the PHP variable should be bound to the
+ * SQL parameter as an input parameter (DB2_PARAM_IN),
+ * an output parameter (DB2_PARAM_OUT), or as a
+ * parameter that accepts input and returns output
+ * (DB2_PARAM_INOUT). To avoid memory overhead, you can
+ * also specify DB2_PARAM_FILE to bind the PHP variable
+ * to the name of a file that contains large object (BLOB, CLOB, or DBCLOB)
+ * data.
+ * @param int $data_type A constant specifying the SQL data type that the PHP variable should be
+ * bound as: one of DB2_BINARY,
+ * DB2_CHAR, DB2_DOUBLE, or
+ * DB2_LONG .
+ * @param int $precision Specifies the precision with which the variable should be bound to the
+ * database. This parameter can also be used for retrieving XML output values
+ * from stored procedures. A non-negative value specifies the maximum size of
+ * the XML data that will be retrieved from the database. If this parameter
+ * is not used, a default of 1MB will be assumed for retrieving the XML
+ * output value from the stored procedure.
+ * @param int $scale Specifies the scale with which the variable should be bound to the
+ * database.
+ * @throws IbmDb2Exception
+ *
+ */
+function db2_bind_param($stmt, int $parameter_number, string $variable_name, int $parameter_type = null, int $data_type = 0, int $precision = -1, int $scale = 0): void
+{
+ error_clear_last();
+ if ($scale !== 0) {
+ $result = \db2_bind_param($stmt, $parameter_number, $variable_name, $parameter_type, $data_type, $precision, $scale);
+ } elseif ($precision !== -1) {
+ $result = \db2_bind_param($stmt, $parameter_number, $variable_name, $parameter_type, $data_type, $precision);
+ } elseif ($data_type !== 0) {
+ $result = \db2_bind_param($stmt, $parameter_number, $variable_name, $parameter_type, $data_type);
+ } elseif ($parameter_type !== null) {
+ $result = \db2_bind_param($stmt, $parameter_number, $variable_name, $parameter_type);
+ } else {
+ $result = \db2_bind_param($stmt, $parameter_number, $variable_name);
+ }
+ if ($result === false) {
+ throw IbmDb2Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function returns an object with read-only properties that return
+ * information about the DB2 database client. The following table lists
+ * the DB2 client properties:
+ *
+ * DB2 client properties
+ *
+ *
+ *
+ * Property name
+ * Return type
+ * Description
+ *
+ *
+ *
+ *
+ * APPL_CODEPAGE
+ * int
+ * The application code page.
+ *
+ *
+ * CONN_CODEPAGE
+ * int
+ * The code page for the current connection.
+ *
+ *
+ * DATA_SOURCE_NAME
+ * string
+ * The data source name (DSN) used to create the current connection
+ * to the database.
+ *
+ *
+ * DRIVER_NAME
+ * string
+ * The name of the library that implements the DB2 Call
+ * Level Interface (CLI) specification.
+ *
+ *
+ * DRIVER_ODBC_VER
+ * string
+ * The version of ODBC that the DB2 client supports. This returns a
+ * string "MM.mm" where MM is the major version and
+ * mm is the minor version. The DB2 client always
+ * returns "03.51".
+ *
+ *
+ *
+ * DRIVER_VER
+ * string
+ * The version of the client, in the form of a string "MM.mm.uuuu" where
+ * MM is the major version,
+ * mm is the minor version,
+ * and uuuu is the update. For example, "08.02.0001"
+ * represents major version 8, minor version 2, update 1.
+ *
+ *
+ *
+ * ODBC_SQL_CONFORMANCE
+ * string
+ *
+ * The level of ODBC SQL grammar supported by the client:
+ *
+ *
+ * MINIMUM
+ *
+ *
+ * Supports the minimum ODBC SQL grammar.
+ *
+ *
+ *
+ *
+ * CORE
+ *
+ *
+ * Supports the core ODBC SQL grammar.
+ *
+ *
+ *
+ *
+ * EXTENDED
+ *
+ *
+ * Supports extended ODBC SQL grammar.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * ODBC_VER
+ * string
+ * The version of ODBC that the ODBC driver manager supports. This
+ * returns a string "MM.mm.rrrr" where MM is the major
+ * version, mm is the minor version, and
+ * rrrr is the release. The DB2 client always returns
+ * "03.01.0000".
+ *
+ *
+ *
+ *
+ *
+ *
+ * @param resource $connection Specifies an active DB2 client connection.
+ * @return object Returns an object on a successful call. Returns FALSE on failure.
+ * @throws IbmDb2Exception
+ *
+ */
+function db2_client_info($connection): object
+{
+ error_clear_last();
+ $result = \db2_client_info($connection);
+ if ($result === false) {
+ throw IbmDb2Exception::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * This function closes a DB2 client connection created with
+ * db2_connect and returns the corresponding
+ * resources to the database server.
+ *
+ * If you attempt to close a persistent DB2 client connection created with
+ * db2_pconnect, the close request is ignored and the
+ * persistent DB2 client connection remains available for the next caller.
+ *
+ * @param resource $connection Specifies an active DB2 client connection.
+ * @throws IbmDb2Exception
+ *
+ */
+function db2_close($connection): void
+{
+ error_clear_last();
+ $result = \db2_close($connection);
+ if ($result === false) {
+ throw IbmDb2Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Commits an in-progress transaction on the specified connection resource and
+ * begins a new transaction. PHP applications normally default to AUTOCOMMIT
+ * mode, so db2_commit is not necessary unless AUTOCOMMIT
+ * has been turned off for the connection resource.
+ *
+ * @param resource $connection A valid database connection resource variable as returned from
+ * db2_connect or db2_pconnect.
+ * @throws IbmDb2Exception
+ *
+ */
+function db2_commit($connection): void
+{
+ error_clear_last();
+ $result = \db2_commit($connection);
+ if ($result === false) {
+ throw IbmDb2Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * db2_execute executes an SQL statement that was
+ * prepared by db2_prepare.
+ *
+ * If the SQL statement returns a result set, for example, a SELECT statement
+ * or a CALL to a stored procedure that returns one or more result sets, you
+ * can retrieve a row as an array from the stmt resource
+ * using db2_fetch_assoc,
+ * db2_fetch_both, or
+ * db2_fetch_array. Alternatively, you can use
+ * db2_fetch_row to move the result set pointer to the
+ * next row and fetch a column at a time from that row with
+ * db2_result.
+ *
+ * Refer to db2_prepare for a brief discussion of the
+ * advantages of using db2_prepare and
+ * db2_execute rather than db2_exec.
+ *
+ * @param resource $stmt A prepared statement returned from db2_prepare.
+ * @param array $parameters An array of input parameters matching any parameter markers contained
+ * in the prepared statement.
+ * @throws IbmDb2Exception
+ *
+ */
+function db2_execute($stmt, array $parameters = null): void
+{
+ error_clear_last();
+ if ($parameters !== null) {
+ $result = \db2_execute($stmt, $parameters);
+ } else {
+ $result = \db2_execute($stmt);
+ }
+ if ($result === false) {
+ throw IbmDb2Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Frees the system and database resources that are associated with a result
+ * set. These resources are freed implicitly when a script finishes, but you
+ * can call db2_free_result to explicitly free the result
+ * set resources before the end of the script.
+ *
+ * @param resource $stmt A valid statement resource.
+ * @throws IbmDb2Exception
+ *
+ */
+function db2_free_result($stmt): void
+{
+ error_clear_last();
+ $result = \db2_free_result($stmt);
+ if ($result === false) {
+ throw IbmDb2Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Frees the system and database resources that are associated with a statement
+ * resource. These resources are freed implicitly when a script finishes, but
+ * you can call db2_free_stmt to explicitly free the
+ * statement resources before the end of the script.
+ *
+ * @param resource $stmt A valid statement resource.
+ * @throws IbmDb2Exception
+ *
+ */
+function db2_free_stmt($stmt): void
+{
+ error_clear_last();
+ $result = \db2_free_stmt($stmt);
+ if ($result === false) {
+ throw IbmDb2Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Retrieves the value of a specified option value for a statement resource
+ * or a connection resource.
+ *
+ * @param resource $resource A valid statement resource as returned from
+ * db2_prepare or a valid connection resource as
+ * returned from db2_connect or
+ * db2_pconnect.
+ * @param string $option A valid statement or connection options. The following new options are available
+ * as of ibm_db2 version 1.6.0. They provide useful tracking information
+ * that can be set during execution with db2_get_option.
+ *
+ *
+ * Prior versions of ibm_db2 do not support these new options.
+ *
+ *
+ * When the value in each option is being set, some servers might not handle
+ * the entire length provided and might truncate the value.
+ *
+ *
+ * To ensure that the data specified in each option is converted correctly
+ * when transmitted to a host system, use only the characters A through Z,
+ * 0 through 9, and the underscore (_) or period (.).
+ *
+ *
+ *
+ *
+ * userid
+ *
+ *
+ * SQL_ATTR_INFO_USERID - A pointer to a null-terminated
+ * character string used to identify the client user ID sent to the host
+ * database server when using DB2 Connect.
+ *
+ *
+ * DB2 for z/OS and OS/390 servers support up to a length of 16 characters.
+ * This user-id is not to be confused with the authentication user-id, it is for
+ * identification purposes only and is not used for any authorization.
+ *
+ *
+ *
+ *
+ *
+ *
+ * acctstr
+ *
+ *
+ * SQL_ATTR_INFO_ACCTSTR - A pointer to a null-terminated
+ * character string used to identify the client accounting string sent to the
+ * host database server when using DB2 Connect.
+ *
+ *
+ * DB2 for z/OS and OS/390 servers support up to a length of 200 characters.
+ *
+ *
+ *
+ *
+ *
+ *
+ * applname
+ *
+ *
+ * SQL_ATTR_INFO_APPLNAME - A pointer to a null-terminated
+ * character string used to identify the client application name sent to the
+ * host database server when using DB2 Connect.
+ *
+ *
+ * DB2 for z/OS and OS/390 servers support up to a length of 32 characters.
+ *
+ *
+ *
+ *
+ *
+ *
+ * wrkstnname
+ *
+ *
+ * SQL_ATTR_INFO_WRKSTNNAME - A pointer to a null-terminated
+ * character string used to identify the client workstation name sent to the
+ * host database server when using DB2 Connect.
+ *
+ *
+ * DB2 for z/OS and OS/390 servers support up to a length of 18 characters.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * Prior versions of ibm_db2 do not support these new options.
+ *
+ * When the value in each option is being set, some servers might not handle
+ * the entire length provided and might truncate the value.
+ *
+ * To ensure that the data specified in each option is converted correctly
+ * when transmitted to a host system, use only the characters A through Z,
+ * 0 through 9, and the underscore (_) or period (.).
+ *
+ * SQL_ATTR_INFO_USERID - A pointer to a null-terminated
+ * character string used to identify the client user ID sent to the host
+ * database server when using DB2 Connect.
+ *
+ *
+ * DB2 for z/OS and OS/390 servers support up to a length of 16 characters.
+ * This user-id is not to be confused with the authentication user-id, it is for
+ * identification purposes only and is not used for any authorization.
+ *
+ *
+ *
+ * DB2 for z/OS and OS/390 servers support up to a length of 16 characters.
+ * This user-id is not to be confused with the authentication user-id, it is for
+ * identification purposes only and is not used for any authorization.
+ *
+ * SQL_ATTR_INFO_ACCTSTR - A pointer to a null-terminated
+ * character string used to identify the client accounting string sent to the
+ * host database server when using DB2 Connect.
+ *
+ *
+ * DB2 for z/OS and OS/390 servers support up to a length of 200 characters.
+ *
+ *
+ *
+ * DB2 for z/OS and OS/390 servers support up to a length of 200 characters.
+ *
+ * SQL_ATTR_INFO_APPLNAME - A pointer to a null-terminated
+ * character string used to identify the client application name sent to the
+ * host database server when using DB2 Connect.
+ *
+ *
+ * DB2 for z/OS and OS/390 servers support up to a length of 32 characters.
+ *
+ *
+ *
+ * DB2 for z/OS and OS/390 servers support up to a length of 32 characters.
+ *
+ * SQL_ATTR_INFO_WRKSTNNAME - A pointer to a null-terminated
+ * character string used to identify the client workstation name sent to the
+ * host database server when using DB2 Connect.
+ *
+ *
+ * DB2 for z/OS and OS/390 servers support up to a length of 18 characters.
+ *
+ *
+ *
+ * DB2 for z/OS and OS/390 servers support up to a length of 18 characters.
+ * @return string Returns the current setting of the connection attribute provided on success.
+ * @throws IbmDb2Exception
+ *
+ */
+function db2_get_option($resource, string $option): string
+{
+ error_clear_last();
+ $result = \db2_get_option($resource, $option);
+ if ($result === false) {
+ throw IbmDb2Exception::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * This function closes a DB2 client connection created with
+ * db2_pconnect and returns the corresponding resources
+ * to the database server.
+ *
+ *
+ * This function is only available on i5/OS in response to i5/OS system
+ * administration requests.
+ *
+ *
+ *
+ * If you have a persistent DB2 client connection created with
+ * db2_pconnect, you may use this function to close the
+ * connection. To avoid substantial connection performance penalties, this
+ * function should only be used in rare cases when the persistent connection
+ * has become unresponsive or the persistent connection will not be needed for
+ * a long period of time.
+ *
+ * @param resource $resource Specifies an active DB2 client connection.
+ * @throws IbmDb2Exception
+ *
+ */
+function db2_pclose($resource): void
+{
+ error_clear_last();
+ $result = \db2_pclose($resource);
+ if ($result === false) {
+ throw IbmDb2Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Rolls back an in-progress transaction on the specified connection resource and
+ * begins a new transaction. PHP applications normally default to AUTOCOMMIT
+ * mode, so db2_rollback normally has no effect unless
+ * AUTOCOMMIT has been turned off for the connection resource.
+ *
+ * @param resource $connection A valid database connection resource variable as returned from
+ * db2_connect or db2_pconnect.
+ * @throws IbmDb2Exception
+ *
+ */
+function db2_rollback($connection): void
+{
+ error_clear_last();
+ $result = \db2_rollback($connection);
+ if ($result === false) {
+ throw IbmDb2Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function returns an object with read-only properties that return
+ * information about the IBM DB2, Cloudscape, or Apache Derby database server.
+ * The following table lists the database server properties:
+ *
+ * Database server properties
+ *
+ *
+ *
+ * Property name
+ * Return type
+ * Description
+ *
+ *
+ *
+ *
+ * DBMS_NAME
+ * string
+ * The name of the database server to which you are
+ * connected. For DB2 servers this is a combination of
+ * DB2 followed by the operating system on which
+ * the database server is running.
+ *
+ *
+ * DBMS_VER
+ * string
+ * The version of the database server, in the form of a string
+ * "MM.mm.uuuu" where MM is the major version,
+ * mm is the minor version,
+ * and uuuu is the update. For example, "08.02.0001"
+ * represents major version 8, minor version 2, update 1.
+ *
+ *
+ *
+ * DB_CODEPAGE
+ * int
+ * The code page of the database to which you are connected.
+ *
+ *
+ * DB_NAME
+ * string
+ * The name of the database to which you are connected.
+ *
+ *
+ * DFT_ISOLATION
+ * string
+ *
+ * The default transaction isolation level supported by the
+ * server:
+ *
+ *
+ * UR
+ *
+ *
+ * Uncommitted read: changes are immediately visible by all
+ * concurrent transactions.
+ *
+ *
+ *
+ *
+ * CS
+ *
+ *
+ * Cursor stability: a row read by one transaction can be altered and
+ * committed by a second concurrent transaction.
+ *
+ *
+ *
+ *
+ * RS
+ *
+ *
+ * Read stability: a transaction can add or remove rows matching a
+ * search condition or a pending transaction.
+ *
+ *
+ *
+ *
+ * RR
+ *
+ *
+ * Repeatable read: data affected by pending transaction is not
+ * available to other transactions.
+ *
+ *
+ *
+ *
+ * NC
+ *
+ *
+ * No commit: any changes are visible at the end of a successful
+ * operation. Explicit commits and rollbacks are not allowed.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * IDENTIFIER_QUOTE_CHAR
+ * string
+ * The character used to delimit an identifier.
+ *
+ *
+ * INST_NAME
+ * string
+ * The instance on the database server that contains the
+ * database.
+ *
+ *
+ * ISOLATION_OPTION
+ * array
+ * An array of the isolation options supported by the
+ * database server. The isolation options are described in
+ * the DFT_ISOLATION property.
+ *
+ *
+ * KEYWORDS
+ * array
+ * An array of the keywords reserved by the database
+ * server.
+ *
+ *
+ * LIKE_ESCAPE_CLAUSE
+ * bool
+ * TRUE if the database server supports the
+ * use of % and _ wildcard
+ * characters. FALSE if the database server does not
+ * support these wildcard characters.
+ *
+ *
+ * MAX_COL_NAME_LEN
+ * int
+ * Maximum length of a column name supported by the database
+ * server, expressed in bytes.
+ *
+ *
+ * MAX_IDENTIFIER_LEN
+ * int
+ * Maximum length of an SQL identifier supported by the database
+ * server, expressed in characters.
+ *
+ *
+ * MAX_INDEX_SIZE
+ * int
+ * Maximum size of columns combined in an index supported by the
+ * database server, expressed in bytes.
+ *
+ *
+ * MAX_PROC_NAME_LEN
+ * int
+ * Maximum length of a procedure name supported by the database
+ * server, expressed in bytes.
+ *
+ *
+ * MAX_ROW_SIZE
+ * int
+ * Maximum length of a row in a base table supported by the
+ * database server, expressed in bytes.
+ *
+ *
+ * MAX_SCHEMA_NAME_LEN
+ * int
+ * Maximum length of a schema name supported by the database
+ * server, expressed in bytes.
+ *
+ *
+ * MAX_STATEMENT_LEN
+ * int
+ * Maximum length of an SQL statement supported by the database
+ * server, expressed in bytes.
+ *
+ *
+ * MAX_TABLE_NAME_LEN
+ * int
+ * Maximum length of a table name supported by the database
+ * server, expressed in bytes.
+ *
+ *
+ * NON_NULLABLE_COLUMNS
+ * bool
+ * TRUE if the database server supports columns that can be
+ * defined as NOT NULL, FALSE if the database server does not support
+ * columns defined as NOT NULL.
+ *
+ *
+ * PROCEDURES
+ * bool
+ * TRUE if the database server supports the use of the CALL
+ * statement to call stored procedures, FALSE if the database
+ * server does not support the CALL statement.
+ *
+ *
+ * SPECIAL_CHARS
+ * string
+ * A string containing all of the characters other than
+ * a-Z, 0-9, and underscore that can be used in an identifier name.
+ *
+ *
+ * SQL_CONFORMANCE
+ * string
+ *
+ * The level of conformance to the ANSI/ISO SQL-92 specification
+ * offered by the database server:
+ *
+ *
+ * ENTRY
+ *
+ *
+ * Entry-level SQL-92 compliance.
+ *
+ *
+ *
+ *
+ * FIPS127
+ *
+ *
+ * FIPS-127-2 transitional compliance.
+ *
+ *
+ *
+ *
+ * FULL
+ *
+ *
+ * Full level SQL-92 compliance.
+ *
+ *
+ *
+ *
+ * INTERMEDIATE
+ *
+ *
+ * Intermediate level SQL-92 compliance.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * @param resource $connection Specifies an active DB2 client connection.
+ * @return object Returns an object on a successful call. Returns FALSE on failure.
+ * @throws IbmDb2Exception
+ *
+ */
+function db2_server_info($connection): object
+{
+ error_clear_last();
+ $result = \db2_server_info($connection);
+ if ($result === false) {
+ throw IbmDb2Exception::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Sets options for a statement resource or a connection resource. You
+ * cannot set options for result set resources.
+ *
+ * @param resource $resource A valid statement resource as returned from
+ * db2_prepare or a valid connection resource as
+ * returned from db2_connect or
+ * db2_pconnect.
+ * @param array $options An associative array containing valid statement or connection
+ * options. This parameter can be used to change autocommit values,
+ * cursor types (scrollable or forward), and to specify the case of
+ * the column names (lower, upper, or natural) that will appear in a
+ * result set.
+ *
+ *
+ * autocommit
+ *
+ *
+ * Passing DB2_AUTOCOMMIT_ON turns
+ * autocommit on for the specified connection resource.
+ *
+ *
+ * Passing DB2_AUTOCOMMIT_OFF turns
+ * autocommit off for the specified connection resource.
+ *
+ *
+ *
+ *
+ * cursor
+ *
+ *
+ * Passing DB2_FORWARD_ONLY specifies a
+ * forward-only cursor for a statement resource. This is the
+ * default cursor type, and is supported by all database
+ * servers.
+ *
+ *
+ * Passing DB2_SCROLLABLE specifies a
+ * scrollable cursor for a statement resource. Scrollable
+ * cursors enable result set rows to be accessed in
+ * non-sequential order, but are only supported by
+ * IBM DB2 Universal Database databases.
+ *
+ *
+ *
+ *
+ * binmode
+ *
+ *
+ * Passing DB2_BINARY specifies that
+ * binary data will be returned as is. This is the default
+ * mode. This is the equivalent of setting
+ * ibm_db2.binmode=1 in php.ini.
+ *
+ *
+ * Passing DB2_CONVERT specifies that
+ * binary data will be converted to hexadecimal encoding,
+ * and will be returned as such. This is the equivalent of
+ * setting ibm_db2.binmode=2 in php.ini.
+ *
+ *
+ * Passing DB2_PASSTHRU specifies that
+ * binary data will be converted to NULL. This is the
+ * equivalent of setting ibm_db2.binmode=3
+ * in php.ini.
+ *
+ *
+ *
+ *
+ * db2_attr_case
+ *
+ *
+ * Passing DB2_CASE_LOWER specifies that
+ * column names of the result set are returned in lower case.
+ *
+ *
+ * Passing DB2_CASE_UPPER specifies that
+ * column names of the result set are returned in upper case.
+ *
+ *
+ * Passing DB2_CASE_NATURAL specifies that
+ * column names of the result set are returned in natural
+ * case.
+ *
+ *
+ *
+ *
+ * deferred_prepare
+ *
+ *
+ * Passing DB2_DEFERRED_PREPARE_ON turns deferred
+ * prepare on for the specified statement resource.
+ *
+ *
+ * Passing DB2_DEFERRED_PREPARE_OFF turns deferred
+ * prepare off for the specified statement resource.
+ *
+ *
+ *
+ *
+ *
+ * Passing DB2_AUTOCOMMIT_ON turns
+ * autocommit on for the specified connection resource.
+ *
+ * Passing DB2_AUTOCOMMIT_OFF turns
+ * autocommit off for the specified connection resource.
+ *
+ * Passing DB2_FORWARD_ONLY specifies a
+ * forward-only cursor for a statement resource. This is the
+ * default cursor type, and is supported by all database
+ * servers.
+ *
+ * Passing DB2_SCROLLABLE specifies a
+ * scrollable cursor for a statement resource. Scrollable
+ * cursors enable result set rows to be accessed in
+ * non-sequential order, but are only supported by
+ * IBM DB2 Universal Database databases.
+ *
+ * Passing DB2_BINARY specifies that
+ * binary data will be returned as is. This is the default
+ * mode. This is the equivalent of setting
+ * ibm_db2.binmode=1 in php.ini.
+ *
+ * Passing DB2_CONVERT specifies that
+ * binary data will be converted to hexadecimal encoding,
+ * and will be returned as such. This is the equivalent of
+ * setting ibm_db2.binmode=2 in php.ini.
+ *
+ * Passing DB2_PASSTHRU specifies that
+ * binary data will be converted to NULL. This is the
+ * equivalent of setting ibm_db2.binmode=3
+ * in php.ini.
+ *
+ * Passing DB2_CASE_LOWER specifies that
+ * column names of the result set are returned in lower case.
+ *
+ * Passing DB2_CASE_UPPER specifies that
+ * column names of the result set are returned in upper case.
+ *
+ * Passing DB2_CASE_NATURAL specifies that
+ * column names of the result set are returned in natural
+ * case.
+ *
+ * Passing DB2_DEFERRED_PREPARE_ON turns deferred
+ * prepare on for the specified statement resource.
+ *
+ * Passing DB2_DEFERRED_PREPARE_OFF turns deferred
+ * prepare off for the specified statement resource.
+ *
+ * The following new i5/OS options are available in ibm_db2 version 1.5.1
+ * and later. These options apply only when running PHP and ibm_db2 natively on i5 systems.
+ *
+ *
+ * i5_fetch_only
+ *
+ *
+ * DB2_I5_FETCH_ON - Cursors are read-only
+ * and cannot be used for positioned updates or deletes. This
+ * is the default unless SQL_ATTR_FOR_FETCH_ONLY
+ * environment has been set to SQL_FALSE.
+ *
+ *
+ * DB2_I5_FETCH_OFF - Cursors can be used
+ * for positioned updates and deletes.
+ *
+ *
+ *
+ *
+ *
+ * DB2_I5_FETCH_ON - Cursors are read-only
+ * and cannot be used for positioned updates or deletes. This
+ * is the default unless SQL_ATTR_FOR_FETCH_ONLY
+ * environment has been set to SQL_FALSE.
+ *
+ * DB2_I5_FETCH_OFF - Cursors can be used
+ * for positioned updates and deletes.
+ *
+ * The following new option is available in ibm_db2 version 1.8.0 and later.
+ *
+ *
+ * rowcount
+ *
+ *
+ * DB2_ROWCOUNT_PREFETCH_ON - Client can request
+ * the full row count prior to fetching, which means that
+ * db2_num_rows returns the number of rows selected
+ * even when a ROLLFORWARD_ONLY cursor is used.
+ *
+ *
+ * DB2_ROWCOUNT_PREFETCH_OFF - Client cannot request
+ * the full row count prior to fetching.
+ *
+ *
+ *
+ *
+ *
+ * DB2_ROWCOUNT_PREFETCH_ON - Client can request
+ * the full row count prior to fetching, which means that
+ * db2_num_rows returns the number of rows selected
+ * even when a ROLLFORWARD_ONLY cursor is used.
+ *
+ * DB2_ROWCOUNT_PREFETCH_OFF - Client cannot request
+ * the full row count prior to fetching.
+ *
+ * The following new options are available in ibm_db2 version 1.7.0 and later.
+ *
+ *
+ * trusted_user
+ *
+ *
+ * To switch the user to a trusted user, pass the User ID (String)
+ * of the trusted user as the value of this key. This option can
+ * be set on a connection resource only. To use this option, trusted
+ * context must be enabled on the connection resource.
+ *
+ *
+ *
+ *
+ * trusted_password
+ *
+ *
+ * The password (String) that corresponds to the user specified
+ * by the trusted_user key.
+ *
+ *
+ *
+ *
+ *
+ * To switch the user to a trusted user, pass the User ID (String)
+ * of the trusted user as the value of this key. This option can
+ * be set on a connection resource only. To use this option, trusted
+ * context must be enabled on the connection resource.
+ *
+ * The password (String) that corresponds to the user specified
+ * by the trusted_user key.
+ *
+ * The following new options are available in ibm_db2 version 1.6.0 and later.
+ * These options provide useful tracking information that can be accessed during
+ * execution with db2_get_option.
+ *
+ *
+ * When the value in each option is being set, some servers might not handle
+ * the entire length provided and might truncate the value.
+ *
+ *
+ * To ensure that the data specified in each option is converted correctly
+ * when transmitted to a host system, use only the characters A through Z,
+ * 0 through 9, and the underscore (_) or period (.).
+ *
+ *
+ *
+ *
+ * userid
+ *
+ *
+ * SQL_ATTR_INFO_USERID - A pointer to a null-terminated
+ * character string used to identify the client user ID sent to the host
+ * database server when using DB2 Connect.
+ *
+ *
+ * DB2 for z/OS and OS/390 servers support up to a length of 16 characters.
+ * This user-id is not to be confused with the authentication user-id, it is for
+ * identification purposes only and is not used for any authorization.
+ *
+ *
+ *
+ *
+ *
+ *
+ * acctstr
+ *
+ *
+ * SQL_ATTR_INFO_ACCTSTR - A pointer to a null-terminated
+ * character string used to identify the client accounting string sent to the
+ * host database server when using DB2 Connect.
+ *
+ *
+ * DB2 for z/OS and OS/390 servers support up to a length of 200 characters.
+ *
+ *
+ *
+ *
+ *
+ *
+ * applname
+ *
+ *
+ * SQL_ATTR_INFO_APPLNAME - A pointer to a null-terminated
+ * character string used to identify the client application name sent to the
+ * host database server when using DB2 Connect.
+ *
+ *
+ * DB2 for z/OS and OS/390 servers support up to a length of 32 characters.
+ *
+ *
+ *
+ *
+ *
+ *
+ * wrkstnname
+ *
+ *
+ * SQL_ATTR_INFO_WRKSTNNAME - A pointer to a null-terminated
+ * character string used to identify the client workstation name sent to the
+ * host database server when using DB2 Connect.
+ *
+ *
+ * DB2 for z/OS and OS/390 servers support up to a length of 18 characters.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * When the value in each option is being set, some servers might not handle
+ * the entire length provided and might truncate the value.
+ *
+ * To ensure that the data specified in each option is converted correctly
+ * when transmitted to a host system, use only the characters A through Z,
+ * 0 through 9, and the underscore (_) or period (.).
+ *
+ * SQL_ATTR_INFO_USERID - A pointer to a null-terminated
+ * character string used to identify the client user ID sent to the host
+ * database server when using DB2 Connect.
+ *
+ *
+ * DB2 for z/OS and OS/390 servers support up to a length of 16 characters.
+ * This user-id is not to be confused with the authentication user-id, it is for
+ * identification purposes only and is not used for any authorization.
+ *
+ *
+ *
+ * DB2 for z/OS and OS/390 servers support up to a length of 16 characters.
+ * This user-id is not to be confused with the authentication user-id, it is for
+ * identification purposes only and is not used for any authorization.
+ *
+ * SQL_ATTR_INFO_ACCTSTR - A pointer to a null-terminated
+ * character string used to identify the client accounting string sent to the
+ * host database server when using DB2 Connect.
+ *
+ *
+ * DB2 for z/OS and OS/390 servers support up to a length of 200 characters.
+ *
+ *
+ *
+ * DB2 for z/OS and OS/390 servers support up to a length of 200 characters.
+ *
+ * SQL_ATTR_INFO_APPLNAME - A pointer to a null-terminated
+ * character string used to identify the client application name sent to the
+ * host database server when using DB2 Connect.
+ *
+ *
+ * DB2 for z/OS and OS/390 servers support up to a length of 32 characters.
+ *
+ *
+ *
+ * DB2 for z/OS and OS/390 servers support up to a length of 32 characters.
+ *
+ * SQL_ATTR_INFO_WRKSTNNAME - A pointer to a null-terminated
+ * character string used to identify the client workstation name sent to the
+ * host database server when using DB2 Connect.
+ *
+ *
+ * DB2 for z/OS and OS/390 servers support up to a length of 18 characters.
+ *
+ *
+ *
+ * DB2 for z/OS and OS/390 servers support up to a length of 18 characters.
+ * @param int $type Passing DB2_AUTOCOMMIT_ON turns
+ * autocommit on for the specified connection resource.
+ *
+ * Passing DB2_AUTOCOMMIT_OFF turns
+ * autocommit off for the specified connection resource.
+ * @throws IbmDb2Exception
+ *
+ */
+function db2_set_option($resource, array $options, int $type): void
+{
+ error_clear_last();
+ $result = \db2_set_option($resource, $options, $type);
+ if ($result === false) {
+ throw IbmDb2Exception::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/iconv.php b/vendor/thecodingmachine/safe/generated/iconv.php
new file mode 100644
index 000000000..44cf96ab8
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/iconv.php
@@ -0,0 +1,96 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\IconvException;
+
+/**
+ * Retrieve internal configuration variables of iconv extension.
+ *
+ * @param string $type The value of the optional type can be:
+ *
+ * all
+ * input_encoding
+ * output_encoding
+ * internal_encoding
+ *
+ * @return mixed Returns the current value of the internal configuration variable if
+ * successful.
+ *
+ * If type is omitted or set to "all",
+ * iconv_get_encoding returns an array that
+ * stores all these variables.
+ * @throws IconvException
+ *
+ */
+function iconv_get_encoding(string $type = "all")
+{
+ error_clear_last();
+ $result = \iconv_get_encoding($type);
+ if ($result === false) {
+ throw IconvException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Changes the value of the internal configuration variable specified by
+ * type to charset.
+ *
+ * @param string $type The value of type can be any one of these:
+ *
+ * input_encoding
+ * output_encoding
+ * internal_encoding
+ *
+ * @param string $charset The character set.
+ * @throws IconvException
+ *
+ */
+function iconv_set_encoding(string $type, string $charset): void
+{
+ error_clear_last();
+ $result = \iconv_set_encoding($type, $charset);
+ if ($result === false) {
+ throw IconvException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Performs a character set conversion on the string
+ * str from in_charset
+ * to out_charset.
+ *
+ * @param string $in_charset The input charset.
+ * @param string $out_charset The output charset.
+ *
+ * If you append the string //TRANSLIT to
+ * out_charset transliteration is activated. This
+ * means that when a character can't be represented in the target charset,
+ * it can be approximated through one or several similarly looking
+ * characters. If you append the string //IGNORE,
+ * characters that cannot be represented in the target charset are silently
+ * discarded. Otherwise, E_NOTICE is generated and the function
+ * will return FALSE.
+ *
+ * If and how //TRANSLIT works exactly depends on the
+ * system's iconv() implementation (cf. ICONV_IMPL).
+ * Some implementations are known to ignore //TRANSLIT,
+ * so the conversion is likely to fail for characters which are illegal for
+ * the out_charset.
+ * @param string $str The string to be converted.
+ * @return string Returns the converted string.
+ * @throws IconvException
+ *
+ */
+function iconv(string $in_charset, string $out_charset, string $str): string
+{
+ error_clear_last();
+ $result = \iconv($in_charset, $out_charset, $str);
+ if ($result === false) {
+ throw IconvException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/image.php b/vendor/thecodingmachine/safe/generated/image.php
new file mode 100644
index 000000000..f1dc2183c
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/image.php
@@ -0,0 +1,2704 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\ImageException;
+
+/**
+ * The getimagesize function will determine the
+ * size of any supported given image file and return the dimensions along with
+ * the file type and a height/width text string to be used inside a
+ * normal HTML IMG tag and the
+ * correspondent HTTP content type.
+ *
+ * getimagesize can also return some more information
+ * in imageinfo parameter.
+ *
+ * @param string $filename This parameter specifies the file you wish to retrieve information
+ * about. It can reference a local file or (configuration permitting) a
+ * remote file using one of the supported streams.
+ * @param array $imageinfo This optional parameter allows you to extract some extended
+ * information from the image file. Currently, this will return the
+ * different JPG APP markers as an associative array.
+ * Some programs use these APP markers to embed text information in
+ * images. A very common one is to embed
+ * IPTC information in the APP13 marker.
+ * You can use the iptcparse function to parse the
+ * binary APP13 marker into something readable.
+ *
+ * The imageinfo only supports
+ * JFIF files.
+ * @return array Returns an array with up to 7 elements. Not all image types will include
+ * the channels and bits elements.
+ *
+ * Index 0 and 1 contains respectively the width and the height of the image.
+ *
+ * Index 2 is one of the IMAGETYPE_XXX constants indicating
+ * the type of the image.
+ *
+ * Index 3 is a text string with the correct
+ * height="yyy" width="xxx" string that can be used
+ * directly in an IMG tag.
+ *
+ * mime is the correspondant MIME type of the image.
+ * This information can be used to deliver images with the correct HTTP
+ * Content-type header:
+ *
+ * getimagesize and MIME types
+ *
+ *
+ * ]]>
+ *
+ *
+ *
+ * channels will be 3 for RGB pictures and 4 for CMYK
+ * pictures.
+ *
+ * bits is the number of bits for each color.
+ *
+ * For some image types, the presence of channels and
+ * bits values can be a bit
+ * confusing. As an example, GIF always uses 3 channels
+ * per pixel, but the number of bits per pixel cannot be calculated for an
+ * animated GIF with a global color table.
+ *
+ * On failure, FALSE is returned.
+ * @throws ImageException
+ *
+ */
+function getimagesize(string $filename, array &$imageinfo = null): array
+{
+ error_clear_last();
+ $result = \getimagesize($filename, $imageinfo);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * image2wbmp outputs or save a WBMP
+ * version of the given image.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param string|null $filename Path to the saved file. If not given, the raw image stream will be
+ * output directly.
+ * @param int $foreground You can set the foreground color with this parameter by setting an
+ * identifier obtained from imagecolorallocate.
+ * The default foreground color is black.
+ * @throws ImageException
+ *
+ */
+function image2wbmp($image, ?string $filename = null, int $foreground = null): void
+{
+ error_clear_last();
+ if ($foreground !== null) {
+ $result = \image2wbmp($image, $filename, $foreground);
+ } elseif ($filename !== null) {
+ $result = \image2wbmp($image, $filename);
+ } else {
+ $result = \image2wbmp($image);
+ }
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ *
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param array $affine Array with keys 0 to 5.
+ * @param array $clip Array with keys "x", "y", "width" and "height".
+ * @return resource Return affined image resource on success.
+ * @throws ImageException
+ *
+ */
+function imageaffine($image, array $affine, array $clip = null)
+{
+ error_clear_last();
+ if ($clip !== null) {
+ $result = \imageaffine($image, $affine, $clip);
+ } else {
+ $result = \imageaffine($image, $affine);
+ }
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Returns the concatenation of two affine transformation matrices,
+ * what is useful if multiple transformations should be applied to the same
+ * image in one go.
+ *
+ * @param array $m1 An affine transformation matrix (an array with keys
+ * 0 to 5 and float values).
+ * @param array $m2 An affine transformation matrix (an array with keys
+ * 0 to 5 and float values).
+ * @return array{0:float,1:float,2:float,3:float,4:float,5:float} An affine transformation matrix (an array with keys
+ * 0 to 5 and float values).
+ * @throws ImageException
+ *
+ */
+function imageaffinematrixconcat(array $m1, array $m2): array
+{
+ error_clear_last();
+ $result = \imageaffinematrixconcat($m1, $m2);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Returns an affine transformation matrix.
+ *
+ * @param int $type One of the IMG_AFFINE_* constants.
+ * @param array|float $options If type is IMG_AFFINE_TRANSLATE
+ * or IMG_AFFINE_SCALE,
+ * options has to be an array with keys x
+ * and y, both having float values.
+ *
+ * If type is IMG_AFFINE_ROTATE,
+ * IMG_AFFINE_SHEAR_HORIZONTAL or IMG_AFFINE_SHEAR_VERTICAL,
+ * options has to be a float specifying the angle.
+ * @return array{0:float,1:float,2:float,3:float,4:float,5:float} An affine transformation matrix (an array with keys
+ * 0 to 5 and float values).
+ * @throws ImageException
+ *
+ */
+function imageaffinematrixget(int $type, $options = null): array
+{
+ error_clear_last();
+ if ($options !== null) {
+ $result = \imageaffinematrixget($type, $options);
+ } else {
+ $result = \imageaffinematrixget($type);
+ }
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * imagealphablending allows for two different
+ * modes of drawing on truecolor images. In blending mode, the
+ * alpha channel component of the color supplied to all drawing function,
+ * such as imagesetpixel determines how much of the
+ * underlying color should be allowed to shine through. As a result, gd
+ * automatically blends the existing color at that point with the drawing color,
+ * and stores the result in the image. The resulting pixel is opaque. In
+ * non-blending mode, the drawing color is copied literally with its alpha channel
+ * information, replacing the destination pixel. Blending mode is not available
+ * when drawing on palette images.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param bool $blendmode Whether to enable the blending mode or not. On true color images
+ * the default value is TRUE otherwise the default value is FALSE
+ * @throws ImageException
+ *
+ */
+function imagealphablending($image, bool $blendmode): void
+{
+ error_clear_last();
+ $result = \imagealphablending($image, $blendmode);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Activate the fast drawing antialiased methods for lines and wired polygons.
+ * It does not support alpha components. It works using a direct blend
+ * operation. It works only with truecolor images.
+ *
+ * Thickness and styled are not supported.
+ *
+ * Using antialiased primitives with transparent background color can end with
+ * some unexpected results. The blend method uses the background color as any
+ * other colors. The lack of alpha component support does not allow an alpha
+ * based antialiasing method.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param bool $enabled Whether to enable antialiasing or not.
+ * @throws ImageException
+ *
+ */
+function imageantialias($image, bool $enabled): void
+{
+ error_clear_last();
+ $result = \imageantialias($image, $enabled);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * imagearc draws an arc of circle centered at the given
+ * coordinates.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param int $cx x-coordinate of the center.
+ * @param int $cy y-coordinate of the center.
+ * @param int $width The arc width.
+ * @param int $height The arc height.
+ * @param int $start The arc start angle, in degrees.
+ * @param int $end The arc end angle, in degrees.
+ * 0° is located at the three-o'clock position, and the arc is drawn
+ * clockwise.
+ * @param int $color A color identifier created with imagecolorallocate.
+ * @throws ImageException
+ *
+ */
+function imagearc($image, int $cx, int $cy, int $width, int $height, int $start, int $end, int $color): void
+{
+ error_clear_last();
+ $result = \imagearc($image, $cx, $cy, $width, $height, $start, $end, $color);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Outputs or saves a BMP version of the given image.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param mixed $to The path or an open stream resource (which is automatically being closed after this function returns) to save the file to. If not set or NULL, the raw image stream will be outputted directly.
+ *
+ * NULL is invalid if the compressed arguments is
+ * not used.
+ * @param bool $compressed Whether the BMP should be compressed with run-length encoding (RLE), or not.
+ * @throws ImageException
+ *
+ */
+function imagebmp($image, $to = null, bool $compressed = true): void
+{
+ error_clear_last();
+ $result = \imagebmp($image, $to, $compressed);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * imagechar draws the first character of
+ * c in the image identified by
+ * image with its upper-left at
+ * x,y (top left is 0,
+ * 0) with the color color.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param int $font Can be 1, 2, 3, 4, 5 for built-in
+ * fonts in latin2 encoding (where higher numbers corresponding to larger fonts) or any of your
+ * own font identifiers registered with imageloadfont.
+ * @param int $x x-coordinate of the start.
+ * @param int $y y-coordinate of the start.
+ * @param string $c The character to draw.
+ * @param int $color A color identifier created with imagecolorallocate.
+ * @throws ImageException
+ *
+ */
+function imagechar($image, int $font, int $x, int $y, string $c, int $color): void
+{
+ error_clear_last();
+ $result = \imagechar($image, $font, $x, $y, $c, $color);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Draws the character c vertically at the specified
+ * coordinate on the given image.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param int $font Can be 1, 2, 3, 4, 5 for built-in
+ * fonts in latin2 encoding (where higher numbers corresponding to larger fonts) or any of your
+ * own font identifiers registered with imageloadfont.
+ * @param int $x x-coordinate of the start.
+ * @param int $y y-coordinate of the start.
+ * @param string $c The character to draw.
+ * @param int $color A color identifier created with imagecolorallocate.
+ * @throws ImageException
+ *
+ */
+function imagecharup($image, int $font, int $x, int $y, string $c, int $color): void
+{
+ error_clear_last();
+ $result = \imagecharup($image, $font, $x, $y, $c, $color);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Returns the index of the color of the pixel at the
+ * specified location in the image specified by image.
+ *
+ * If the image is a
+ * truecolor image, this function returns the RGB value of that pixel as
+ * integer. Use bitshifting and masking to access the distinct red, green and blue
+ * component values:
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param int $x x-coordinate of the point.
+ * @param int $y y-coordinate of the point.
+ * @return int Returns the index of the color.
+ * @throws ImageException
+ *
+ */
+function imagecolorat($image, int $x, int $y): int
+{
+ error_clear_last();
+ $result = \imagecolorat($image, $x, $y);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * De-allocates a color previously allocated with
+ * imagecolorallocate or
+ * imagecolorallocatealpha.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param int $color The color identifier.
+ * @throws ImageException
+ *
+ */
+function imagecolordeallocate($image, int $color): void
+{
+ error_clear_last();
+ $result = \imagecolordeallocate($image, $color);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Makes the colors of the palette version of an image more closely match the true color version.
+ *
+ * @param resource $image1 A truecolor image resource.
+ * @param resource $image2 A palette image resource pointing to an image that has the same
+ * size as image1.
+ * @throws ImageException
+ *
+ */
+function imagecolormatch($image1, $image2): void
+{
+ error_clear_last();
+ $result = \imagecolormatch($image1, $image2);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Applies a convolution matrix on the image, using the given coefficient and
+ * offset.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param array $matrix A 3x3 matrix: an array of three arrays of three floats.
+ * @param float $div The divisor of the result of the convolution, used for normalization.
+ * @param float $offset Color offset.
+ * @throws ImageException
+ *
+ */
+function imageconvolution($image, array $matrix, float $div, float $offset): void
+{
+ error_clear_last();
+ $result = \imageconvolution($image, $matrix, $div, $offset);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Copy a part of src_im onto
+ * dst_im starting at the x,y coordinates
+ * src_x, src_y with
+ * a width of src_w and a height of
+ * src_h. The portion defined will be copied
+ * onto the x,y coordinates, dst_x and
+ * dst_y.
+ *
+ * @param resource $dst_im Destination image resource.
+ * @param resource $src_im Source image resource.
+ * @param int $dst_x x-coordinate of destination point.
+ * @param int $dst_y y-coordinate of destination point.
+ * @param int $src_x x-coordinate of source point.
+ * @param int $src_y y-coordinate of source point.
+ * @param int $src_w Source width.
+ * @param int $src_h Source height.
+ * @throws ImageException
+ *
+ */
+function imagecopy($dst_im, $src_im, int $dst_x, int $dst_y, int $src_x, int $src_y, int $src_w, int $src_h): void
+{
+ error_clear_last();
+ $result = \imagecopy($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Copy a part of src_im onto
+ * dst_im starting at the x,y coordinates
+ * src_x, src_y with
+ * a width of src_w and a height of
+ * src_h. The portion defined will be copied
+ * onto the x,y coordinates, dst_x and
+ * dst_y.
+ *
+ * @param resource $dst_im Destination image resource.
+ * @param resource $src_im Source image resource.
+ * @param int $dst_x x-coordinate of destination point.
+ * @param int $dst_y y-coordinate of destination point.
+ * @param int $src_x x-coordinate of source point.
+ * @param int $src_y y-coordinate of source point.
+ * @param int $src_w Source width.
+ * @param int $src_h Source height.
+ * @param int $pct The two images will be merged according to pct
+ * which can range from 0 to 100. When pct = 0,
+ * no action is taken, when 100 this function behaves identically
+ * to imagecopy for pallete images, except for
+ * ignoring alpha components, while it implements alpha transparency
+ * for true colour images.
+ * @throws ImageException
+ *
+ */
+function imagecopymerge($dst_im, $src_im, int $dst_x, int $dst_y, int $src_x, int $src_y, int $src_w, int $src_h, int $pct): void
+{
+ error_clear_last();
+ $result = \imagecopymerge($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $pct);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * imagecopymergegray copy a part of src_im onto
+ * dst_im starting at the x,y coordinates
+ * src_x, src_y with
+ * a width of src_w and a height of
+ * src_h. The portion defined will be copied
+ * onto the x,y coordinates, dst_x and
+ * dst_y.
+ *
+ * This function is identical to imagecopymerge except
+ * that when merging it preserves the hue of the source by converting
+ * the destination pixels to gray scale before the copy operation.
+ *
+ * @param resource $dst_im Destination image resource.
+ * @param resource $src_im Source image resource.
+ * @param int $dst_x x-coordinate of destination point.
+ * @param int $dst_y y-coordinate of destination point.
+ * @param int $src_x x-coordinate of source point.
+ * @param int $src_y y-coordinate of source point.
+ * @param int $src_w Source width.
+ * @param int $src_h Source height.
+ * @param int $pct The src_im will be changed to grayscale according
+ * to pct where 0 is fully grayscale and 100 is
+ * unchanged. When pct = 100 this function behaves
+ * identically to imagecopy for pallete images, except for
+ * ignoring alpha components, while
+ * it implements alpha transparency for true colour images.
+ * @throws ImageException
+ *
+ */
+function imagecopymergegray($dst_im, $src_im, int $dst_x, int $dst_y, int $src_x, int $src_y, int $src_w, int $src_h, int $pct): void
+{
+ error_clear_last();
+ $result = \imagecopymergegray($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $pct);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * imagecopyresampled copies a rectangular
+ * portion of one image to another image, smoothly interpolating pixel
+ * values so that, in particular, reducing the size of an image still
+ * retains a great deal of clarity.
+ *
+ * In other words, imagecopyresampled will take a
+ * rectangular area from src_image of width
+ * src_w and height src_h at
+ * position (src_x,src_y)
+ * and place it in a rectangular area of dst_image
+ * of width dst_w and height dst_h
+ * at position (dst_x,dst_y).
+ *
+ * If the source and destination coordinates and width and heights
+ * differ, appropriate stretching or shrinking of the image fragment
+ * will be performed. The coordinates refer to the upper left
+ * corner. This function can be used to copy regions within the
+ * same image (if dst_image is the same as
+ * src_image) but if the regions overlap the
+ * results will be unpredictable.
+ *
+ * @param resource $dst_image Destination image resource.
+ * @param resource $src_image Source image resource.
+ * @param int $dst_x x-coordinate of destination point.
+ * @param int $dst_y y-coordinate of destination point.
+ * @param int $src_x x-coordinate of source point.
+ * @param int $src_y y-coordinate of source point.
+ * @param int $dst_w Destination width.
+ * @param int $dst_h Destination height.
+ * @param int $src_w Source width.
+ * @param int $src_h Source height.
+ * @throws ImageException
+ *
+ */
+function imagecopyresampled($dst_image, $src_image, int $dst_x, int $dst_y, int $src_x, int $src_y, int $dst_w, int $dst_h, int $src_w, int $src_h): void
+{
+ error_clear_last();
+ $result = \imagecopyresampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * imagecopyresized copies a rectangular
+ * portion of one image to another image.
+ * dst_image is the destination image,
+ * src_image is the source image identifier.
+ *
+ * In other words, imagecopyresized will take a
+ * rectangular area from src_image of width
+ * src_w and height src_h at
+ * position (src_x,src_y)
+ * and place it in a rectangular area of dst_image
+ * of width dst_w and height dst_h
+ * at position (dst_x,dst_y).
+ *
+ * If the source and destination coordinates and width and heights
+ * differ, appropriate stretching or shrinking of the image fragment
+ * will be performed. The coordinates refer to the upper left
+ * corner. This function can be used to copy regions within the
+ * same image (if dst_image is the same as
+ * src_image) but if the regions overlap the
+ * results will be unpredictable.
+ *
+ * @param resource $dst_image Destination image resource.
+ * @param resource $src_image Source image resource.
+ * @param int $dst_x x-coordinate of destination point.
+ * @param int $dst_y y-coordinate of destination point.
+ * @param int $src_x x-coordinate of source point.
+ * @param int $src_y y-coordinate of source point.
+ * @param int $dst_w Destination width.
+ * @param int $dst_h Destination height.
+ * @param int $src_w Source width.
+ * @param int $src_h Source height.
+ * @throws ImageException
+ *
+ */
+function imagecopyresized($dst_image, $src_image, int $dst_x, int $dst_y, int $src_x, int $src_y, int $dst_w, int $dst_h, int $src_w, int $src_h): void
+{
+ error_clear_last();
+ $result = \imagecopyresized($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * imagecreate returns an image identifier
+ * representing a blank image of specified size.
+ *
+ * In general, we recommend the use of
+ * imagecreatetruecolor instead of
+ * imagecreate so that image processing occurs on the
+ * highest quality image possible. If you want to output a palette image, then
+ * imagetruecolortopalette should be called immediately
+ * before saving the image with imagepng or
+ * imagegif.
+ *
+ * @param int $width The image width.
+ * @param int $height The image height.
+ * @return resource Returns an image resource identifier on success, FALSE on errors.
+ * @throws ImageException
+ *
+ */
+function imagecreate(int $width, int $height)
+{
+ error_clear_last();
+ $result = \imagecreate($width, $height);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * imagecreatefrombmp returns an image identifier
+ * representing the image obtained from the given filename.
+ *
+ * @param string $filename Path to the BMP image.
+ * @return resource Returns an image resource identifier on success, FALSE on errors.
+ * @throws ImageException
+ *
+ */
+function imagecreatefrombmp(string $filename)
+{
+ error_clear_last();
+ $result = \imagecreatefrombmp($filename);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Create a new image from GD file or URL.
+ *
+ * @param string $filename Path to the GD file.
+ * @return resource Returns an image resource identifier on success, FALSE on errors.
+ * @throws ImageException
+ *
+ */
+function imagecreatefromgd(string $filename)
+{
+ error_clear_last();
+ $result = \imagecreatefromgd($filename);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Create a new image from GD2 file or URL.
+ *
+ * @param string $filename Path to the GD2 image.
+ * @return resource Returns an image resource identifier on success, FALSE on errors.
+ * @throws ImageException
+ *
+ */
+function imagecreatefromgd2(string $filename)
+{
+ error_clear_last();
+ $result = \imagecreatefromgd2($filename);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Create a new image from a given part of GD2 file or URL.
+ *
+ * @param string $filename Path to the GD2 image.
+ * @param int $srcX x-coordinate of source point.
+ * @param int $srcY y-coordinate of source point.
+ * @param int $width Source width.
+ * @param int $height Source height.
+ * @return resource Returns an image resource identifier on success, FALSE on errors.
+ * @throws ImageException
+ *
+ */
+function imagecreatefromgd2part(string $filename, int $srcX, int $srcY, int $width, int $height)
+{
+ error_clear_last();
+ $result = \imagecreatefromgd2part($filename, $srcX, $srcY, $width, $height);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * imagecreatefromgif returns an image identifier
+ * representing the image obtained from the given filename.
+ *
+ * @param string $filename Path to the GIF image.
+ * @return resource Returns an image resource identifier on success, FALSE on errors.
+ * @throws ImageException
+ *
+ */
+function imagecreatefromgif(string $filename)
+{
+ error_clear_last();
+ $result = \imagecreatefromgif($filename);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * imagecreatefromjpeg returns an image identifier
+ * representing the image obtained from the given filename.
+ *
+ * @param string $filename Path to the JPEG image.
+ * @return resource Returns an image resource identifier on success, FALSE on errors.
+ * @throws ImageException
+ *
+ */
+function imagecreatefromjpeg(string $filename)
+{
+ error_clear_last();
+ $result = \imagecreatefromjpeg($filename);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * imagecreatefrompng returns an image identifier
+ * representing the image obtained from the given filename.
+ *
+ * @param string $filename Path to the PNG image.
+ * @return resource Returns an image resource identifier on success, FALSE on errors.
+ * @throws ImageException
+ *
+ */
+function imagecreatefrompng(string $filename)
+{
+ error_clear_last();
+ $result = \imagecreatefrompng($filename);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * imagecreatefromwbmp returns an image identifier
+ * representing the image obtained from the given filename.
+ *
+ * @param string $filename Path to the WBMP image.
+ * @return resource Returns an image resource identifier on success, FALSE on errors.
+ * @throws ImageException
+ *
+ */
+function imagecreatefromwbmp(string $filename)
+{
+ error_clear_last();
+ $result = \imagecreatefromwbmp($filename);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * imagecreatefromwebp returns an image identifier
+ * representing the image obtained from the given filename.
+ *
+ * @param string $filename Path to the WebP image.
+ * @return resource Returns an image resource identifier on success, FALSE on errors.
+ * @throws ImageException
+ *
+ */
+function imagecreatefromwebp(string $filename)
+{
+ error_clear_last();
+ $result = \imagecreatefromwebp($filename);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * imagecreatefromxbm returns an image identifier
+ * representing the image obtained from the given filename.
+ *
+ * @param string $filename Path to the XBM image.
+ * @return resource Returns an image resource identifier on success, FALSE on errors.
+ * @throws ImageException
+ *
+ */
+function imagecreatefromxbm(string $filename)
+{
+ error_clear_last();
+ $result = \imagecreatefromxbm($filename);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * imagecreatefromxpm returns an image identifier
+ * representing the image obtained from the given filename.
+ *
+ * @param string $filename Path to the XPM image.
+ * @return resource Returns an image resource identifier on success, FALSE on errors.
+ * @throws ImageException
+ *
+ */
+function imagecreatefromxpm(string $filename)
+{
+ error_clear_last();
+ $result = \imagecreatefromxpm($filename);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * imagecreatetruecolor returns an image identifier
+ * representing a black image of the specified size.
+ *
+ * @param int $width Image width.
+ * @param int $height Image height.
+ * @return resource Returns an image resource identifier on success, FALSE on errors.
+ * @throws ImageException
+ *
+ */
+function imagecreatetruecolor(int $width, int $height)
+{
+ error_clear_last();
+ $result = \imagecreatetruecolor($width, $height);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Crops an image to the given rectangular area and returns the resulting image.
+ * The given image is not modified.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param array $rect The cropping rectangle as array with keys
+ * x, y, width and
+ * height.
+ * @return resource Return cropped image resource on success.
+ * @throws ImageException
+ *
+ */
+function imagecrop($image, array $rect)
+{
+ error_clear_last();
+ $result = \imagecrop($image, $rect);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Automatically crops an image according to the given
+ * mode.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param int $mode One of the following constants:
+ * @param float $threshold
+ * @param int $color
+ * @return resource Returns a cropped image resource on success.
+ * If the complete image was cropped, imagecrop returns FALSE.
+ * @throws ImageException
+ *
+ */
+function imagecropauto($image, int $mode = IMG_CROP_DEFAULT, float $threshold = .5, int $color = -1)
+{
+ error_clear_last();
+ $result = \imagecropauto($image, $mode, $threshold, $color);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * This function is deprecated. Use combination of
+ * imagesetstyle and imageline
+ * instead.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param int $x1 Upper left x coordinate.
+ * @param int $y1 Upper left y coordinate 0, 0 is the top left corner of the image.
+ * @param int $x2 Bottom right x coordinate.
+ * @param int $y2 Bottom right y coordinate.
+ * @param int $color The fill color. A color identifier created with imagecolorallocate.
+ * @throws ImageException
+ *
+ */
+function imagedashedline($image, int $x1, int $y1, int $x2, int $y2, int $color): void
+{
+ error_clear_last();
+ $result = \imagedashedline($image, $x1, $y1, $x2, $y2, $color);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * imagedestroy frees any memory associated
+ * with image image.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @throws ImageException
+ *
+ */
+function imagedestroy($image): void
+{
+ error_clear_last();
+ $result = \imagedestroy($image);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Draws an ellipse centered at the specified coordinates.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param int $cx x-coordinate of the center.
+ * @param int $cy y-coordinate of the center.
+ * @param int $width The ellipse width.
+ * @param int $height The ellipse height.
+ * @param int $color The color of the ellipse. A color identifier created with imagecolorallocate.
+ * @throws ImageException
+ *
+ */
+function imageellipse($image, int $cx, int $cy, int $width, int $height, int $color): void
+{
+ error_clear_last();
+ $result = \imageellipse($image, $cx, $cy, $width, $height, $color);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Performs a flood fill starting at the given coordinate (top left is 0, 0)
+ * with the given color in the
+ * image.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param int $x x-coordinate of start point.
+ * @param int $y y-coordinate of start point.
+ * @param int $color The fill color. A color identifier created with imagecolorallocate.
+ * @throws ImageException
+ *
+ */
+function imagefill($image, int $x, int $y, int $color): void
+{
+ error_clear_last();
+ $result = \imagefill($image, $x, $y, $color);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Draws a partial arc centered at the specified coordinate in the
+ * given image.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param int $cx x-coordinate of the center.
+ * @param int $cy y-coordinate of the center.
+ * @param int $width The arc width.
+ * @param int $height The arc height.
+ * @param int $start The arc start angle, in degrees.
+ * @param int $end The arc end angle, in degrees.
+ * 0° is located at the three-o'clock position, and the arc is drawn
+ * clockwise.
+ * @param int $color A color identifier created with imagecolorallocate.
+ * @param int $style A bitwise OR of the following possibilities:
+ *
+ * IMG_ARC_PIE
+ * IMG_ARC_CHORD
+ * IMG_ARC_NOFILL
+ * IMG_ARC_EDGED
+ *
+ * IMG_ARC_PIE and IMG_ARC_CHORD are
+ * mutually exclusive; IMG_ARC_CHORD just
+ * connects the starting and ending angles with a straight line, while
+ * IMG_ARC_PIE produces a rounded edge.
+ * IMG_ARC_NOFILL indicates that the arc
+ * or chord should be outlined, not filled. IMG_ARC_EDGED,
+ * used together with IMG_ARC_NOFILL, indicates that the
+ * beginning and ending angles should be connected to the center - this is a
+ * good way to outline (rather than fill) a 'pie slice'.
+ * @throws ImageException
+ *
+ */
+function imagefilledarc($image, int $cx, int $cy, int $width, int $height, int $start, int $end, int $color, int $style): void
+{
+ error_clear_last();
+ $result = \imagefilledarc($image, $cx, $cy, $width, $height, $start, $end, $color, $style);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Draws an ellipse centered at the specified coordinate on the given
+ * image.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param int $cx x-coordinate of the center.
+ * @param int $cy y-coordinate of the center.
+ * @param int $width The ellipse width.
+ * @param int $height The ellipse height.
+ * @param int $color The fill color. A color identifier created with imagecolorallocate.
+ * @throws ImageException
+ *
+ */
+function imagefilledellipse($image, int $cx, int $cy, int $width, int $height, int $color): void
+{
+ error_clear_last();
+ $result = \imagefilledellipse($image, $cx, $cy, $width, $height, $color);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * imagefilledpolygon creates a filled polygon
+ * in the given image.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param array $points An array containing the x and y
+ * coordinates of the polygons vertices consecutively.
+ * @param int $num_points Total number of points (vertices), which must be at least 3.
+ * @param int $color A color identifier created with imagecolorallocate.
+ * @throws ImageException
+ *
+ */
+function imagefilledpolygon($image, array $points, int $num_points, int $color): void
+{
+ error_clear_last();
+ $result = \imagefilledpolygon($image, $points, $num_points, $color);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Creates a rectangle filled with color in the given
+ * image starting at point 1 and ending at point 2.
+ * 0, 0 is the top left corner of the image.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param int $x1 x-coordinate for point 1.
+ * @param int $y1 y-coordinate for point 1.
+ * @param int $x2 x-coordinate for point 2.
+ * @param int $y2 y-coordinate for point 2.
+ * @param int $color The fill color. A color identifier created with imagecolorallocate.
+ * @throws ImageException
+ *
+ */
+function imagefilledrectangle($image, int $x1, int $y1, int $x2, int $y2, int $color): void
+{
+ error_clear_last();
+ $result = \imagefilledrectangle($image, $x1, $y1, $x2, $y2, $color);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * imagefilltoborder performs a flood fill
+ * whose border color is defined by border.
+ * The starting point for the fill is x,
+ * y (top left is 0, 0) and the region is
+ * filled with color color.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param int $x x-coordinate of start.
+ * @param int $y y-coordinate of start.
+ * @param int $border The border color. A color identifier created with imagecolorallocate.
+ * @param int $color The fill color. A color identifier created with imagecolorallocate.
+ * @throws ImageException
+ *
+ */
+function imagefilltoborder($image, int $x, int $y, int $border, int $color): void
+{
+ error_clear_last();
+ $result = \imagefilltoborder($image, $x, $y, $border, $color);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * imagefilter applies the given filter
+ * filtertype on the image.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param int $filtertype filtertype can be one of the following:
+ *
+ *
+ *
+ * IMG_FILTER_NEGATE: Reverses all colors of
+ * the image.
+ *
+ *
+ *
+ *
+ * IMG_FILTER_GRAYSCALE: Converts the image into
+ * grayscale by changing the red, green and blue components to their
+ * weighted sum using the same coefficients as the REC.601 luma (Y')
+ * calculation. The alpha components are retained. For palette images the
+ * result may differ due to palette limitations.
+ *
+ *
+ *
+ *
+ * IMG_FILTER_BRIGHTNESS: Changes the brightness
+ * of the image. Use arg1 to set the level of
+ * brightness. The range for the brightness is -255 to 255.
+ *
+ *
+ *
+ *
+ * IMG_FILTER_CONTRAST: Changes the contrast of
+ * the image. Use arg1 to set the level of
+ * contrast.
+ *
+ *
+ *
+ *
+ * IMG_FILTER_COLORIZE: Like
+ * IMG_FILTER_GRAYSCALE, except you can specify the
+ * color. Use arg1, arg2 and
+ * arg3 in the form of
+ * red, green,
+ * blue and arg4 for the
+ * alpha channel. The range for each color is 0 to 255.
+ *
+ *
+ *
+ *
+ * IMG_FILTER_EDGEDETECT: Uses edge detection to
+ * highlight the edges in the image.
+ *
+ *
+ *
+ *
+ * IMG_FILTER_EMBOSS: Embosses the image.
+ *
+ *
+ *
+ *
+ * IMG_FILTER_GAUSSIAN_BLUR: Blurs the image using
+ * the Gaussian method.
+ *
+ *
+ *
+ *
+ * IMG_FILTER_SELECTIVE_BLUR: Blurs the image.
+ *
+ *
+ *
+ *
+ * IMG_FILTER_MEAN_REMOVAL: Uses mean removal to
+ * achieve a "sketchy" effect.
+ *
+ *
+ *
+ *
+ * IMG_FILTER_SMOOTH: Makes the image smoother.
+ * Use arg1 to set the level of smoothness.
+ *
+ *
+ *
+ *
+ * IMG_FILTER_PIXELATE: Applies pixelation effect
+ * to the image, use arg1 to set the block size
+ * and arg2 to set the pixelation effect mode.
+ *
+ *
+ *
+ *
+ * IMG_FILTER_SCATTER: Applies scatter effect
+ * to the image, use arg1 and
+ * arg2 to define the effect strength and
+ * additionally arg3 to only apply the
+ * on select pixel colors.
+ *
+ *
+ *
+ * @param int $arg1
+ *
+ *
+ * IMG_FILTER_BRIGHTNESS: Brightness level.
+ *
+ *
+ *
+ *
+ * IMG_FILTER_CONTRAST: Contrast level.
+ *
+ *
+ *
+ *
+ * IMG_FILTER_COLORIZE: Value of red component.
+ *
+ *
+ *
+ *
+ * IMG_FILTER_SMOOTH: Smoothness level.
+ *
+ *
+ *
+ *
+ * IMG_FILTER_PIXELATE: Block size in pixels.
+ *
+ *
+ *
+ *
+ * IMG_FILTER_SCATTER: Effect substraction level.
+ * This must not be higher or equal to the addition level set with
+ * arg2.
+ *
+ *
+ *
+ * @param int $arg2
+ *
+ *
+ * IMG_FILTER_COLORIZE: Value of green component.
+ *
+ *
+ *
+ *
+ * IMG_FILTER_PIXELATE: Whether to use advanced pixelation
+ * effect or not (defaults to FALSE).
+ *
+ *
+ *
+ *
+ * IMG_FILTER_SCATTER: Effect addition level.
+ *
+ *
+ *
+ * @param int $arg3
+ *
+ *
+ * IMG_FILTER_COLORIZE: Value of blue component.
+ *
+ *
+ *
+ *
+ * IMG_FILTER_SCATTER: Optional array indexed color values
+ * to apply effect at.
+ *
+ *
+ *
+ * @param int $arg4
+ *
+ *
+ * IMG_FILTER_COLORIZE: Alpha channel, A value
+ * between 0 and 127. 0 indicates completely opaque while 127 indicates
+ * completely transparent.
+ *
+ *
+ *
+ * @throws ImageException
+ *
+ */
+function imagefilter($image, int $filtertype, int $arg1 = null, int $arg2 = null, int $arg3 = null, int $arg4 = null): void
+{
+ error_clear_last();
+ if ($arg4 !== null) {
+ $result = \imagefilter($image, $filtertype, $arg1, $arg2, $arg3, $arg4);
+ } elseif ($arg3 !== null) {
+ $result = \imagefilter($image, $filtertype, $arg1, $arg2, $arg3);
+ } elseif ($arg2 !== null) {
+ $result = \imagefilter($image, $filtertype, $arg1, $arg2);
+ } elseif ($arg1 !== null) {
+ $result = \imagefilter($image, $filtertype, $arg1);
+ } else {
+ $result = \imagefilter($image, $filtertype);
+ }
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Flips the image image using the given
+ * mode.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param int $mode Flip mode, this can be one of the IMG_FLIP_* constants:
+ *
+ *
+ *
+ *
+ *
+ * Constant
+ * Meaning
+ *
+ *
+ *
+ *
+ * IMG_FLIP_HORIZONTAL
+ *
+ * Flips the image horizontally.
+ *
+ *
+ *
+ * IMG_FLIP_VERTICAL
+ *
+ * Flips the image vertically.
+ *
+ *
+ *
+ * IMG_FLIP_BOTH
+ *
+ * Flips the image both horizontally and vertically.
+ *
+ *
+ *
+ *
+ *
+ * @throws ImageException
+ *
+ */
+function imageflip($image, int $mode): void
+{
+ error_clear_last();
+ $result = \imageflip($image, $mode);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Applies gamma correction to the given gd image
+ * given an input and an output gamma.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param float $inputgamma The input gamma.
+ * @param float $outputgamma The output gamma.
+ * @throws ImageException
+ *
+ */
+function imagegammacorrect($image, float $inputgamma, float $outputgamma): void
+{
+ error_clear_last();
+ $result = \imagegammacorrect($image, $inputgamma, $outputgamma);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Outputs a GD image to the given to.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param mixed $to The path or an open stream resource (which is automatically being closed after this function returns) to save the file to. If not set or NULL, the raw image stream will be outputted directly.
+ * @throws ImageException
+ *
+ */
+function imagegd($image, $to = null): void
+{
+ error_clear_last();
+ $result = \imagegd($image, $to);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Outputs a GD2 image to the given to.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param mixed $to The path or an open stream resource (which is automatically being closed after this function returns) to save the file to. If not set or NULL, the raw image stream will be outputted directly.
+ * @param int $chunk_size Chunk size.
+ * @param int $type Either IMG_GD2_RAW or
+ * IMG_GD2_COMPRESSED. Default is
+ * IMG_GD2_RAW.
+ * @throws ImageException
+ *
+ */
+function imagegd2($image, $to = null, int $chunk_size = 128, int $type = IMG_GD2_RAW): void
+{
+ error_clear_last();
+ $result = \imagegd2($image, $to, $chunk_size, $type);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * imagegif creates the GIF
+ * file in to from the image image. The
+ * image argument is the return from the
+ * imagecreate or imagecreatefrom*
+ * function.
+ *
+ * The image format will be GIF87a unless the
+ * image has been made transparent with
+ * imagecolortransparent, in which case the
+ * image format will be GIF89a.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param mixed $to The path or an open stream resource (which is automatically being closed after this function returns) to save the file to. If not set or NULL, the raw image stream will be outputted directly.
+ * @throws ImageException
+ *
+ */
+function imagegif($image, $to = null): void
+{
+ error_clear_last();
+ $result = \imagegif($image, $to);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Grabs a screenshot of the whole screen.
+ *
+ * @return resource Returns an image resource identifier on success, FALSE on failure.
+ * @throws ImageException
+ *
+ */
+function imagegrabscreen()
+{
+ error_clear_last();
+ $result = \imagegrabscreen();
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Grabs a window or its client area using a windows handle (HWND property in COM instance)
+ *
+ * @param int $window_handle The HWND window ID.
+ * @param int $client_area Include the client area of the application window.
+ * @return resource Returns an image resource identifier on success, FALSE on failure.
+ * @throws ImageException
+ *
+ */
+function imagegrabwindow(int $window_handle, int $client_area = 0)
+{
+ error_clear_last();
+ $result = \imagegrabwindow($window_handle, $client_area);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * imagejpeg creates a JPEG file from
+ * the given image.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param mixed $to The path or an open stream resource (which is automatically being closed after this function returns) to save the file to. If not set or NULL, the raw image stream will be outputted directly.
+ * @param int $quality quality is optional, and ranges from 0 (worst
+ * quality, smaller file) to 100 (best quality, biggest file). The
+ * default (-1) uses the default IJG quality value (about 75).
+ * @throws ImageException
+ *
+ */
+function imagejpeg($image, $to = null, int $quality = -1): void
+{
+ error_clear_last();
+ $result = \imagejpeg($image, $to, $quality);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Set the alpha blending flag to use layering effects.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param int $effect One of the following constants:
+ *
+ *
+ * IMG_EFFECT_REPLACE
+ *
+ *
+ * Use pixel replacement (equivalent of passing TRUE to
+ * imagealphablending)
+ *
+ *
+ *
+ *
+ * IMG_EFFECT_ALPHABLEND
+ *
+ *
+ * Use normal pixel blending (equivalent of passing FALSE to
+ * imagealphablending)
+ *
+ *
+ *
+ *
+ * IMG_EFFECT_NORMAL
+ *
+ *
+ * Same as IMG_EFFECT_ALPHABLEND.
+ *
+ *
+ *
+ *
+ * IMG_EFFECT_OVERLAY
+ *
+ *
+ * Overlay has the effect that black background pixels will remain
+ * black, white background pixels will remain white, but grey
+ * background pixels will take the colour of the foreground pixel.
+ *
+ *
+ *
+ *
+ * IMG_EFFECT_MULTIPLY
+ *
+ *
+ * Overlays with a multiply effect.
+ *
+ *
+ *
+ *
+ * @throws ImageException
+ *
+ */
+function imagelayereffect($image, int $effect): void
+{
+ error_clear_last();
+ $result = \imagelayereffect($image, $effect);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Draws a line between the two given points.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param int $x1 x-coordinate for first point.
+ * @param int $y1 y-coordinate for first point.
+ * @param int $x2 x-coordinate for second point.
+ * @param int $y2 y-coordinate for second point.
+ * @param int $color The line color. A color identifier created with imagecolorallocate.
+ * @throws ImageException
+ *
+ */
+function imageline($image, int $x1, int $y1, int $x2, int $y2, int $color): void
+{
+ error_clear_last();
+ $result = \imageline($image, $x1, $y1, $x2, $y2, $color);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * imageloadfont loads a user-defined bitmap and returns
+ * its identifier.
+ *
+ * @param string $file The font file format is currently binary and architecture
+ * dependent. This means you should generate the font files on the
+ * same type of CPU as the machine you are running PHP on.
+ *
+ *
+ * Font file format
+ *
+ *
+ *
+ * byte position
+ * C data type
+ * description
+ *
+ *
+ *
+ *
+ * byte 0-3
+ * int
+ * number of characters in the font
+ *
+ *
+ * byte 4-7
+ * int
+ *
+ * value of first character in the font (often 32 for space)
+ *
+ *
+ *
+ * byte 8-11
+ * int
+ * pixel width of each character
+ *
+ *
+ * byte 12-15
+ * int
+ * pixel height of each character
+ *
+ *
+ * byte 16-
+ * char
+ *
+ * array with character data, one byte per pixel in each
+ * character, for a total of (nchars*width*height) bytes.
+ *
+ *
+ *
+ *
+ *
+ * @return int The font identifier which is always bigger than 5 to avoid conflicts with
+ * built-in fontss.
+ * @throws ImageException
+ *
+ */
+function imageloadfont(string $file): int
+{
+ error_clear_last();
+ $result = \imageloadfont($file);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * imageopenpolygon draws an open polygon on the given
+ * image. Contrary to imagepolygon,
+ * no line is drawn between the last and the first point.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param array $points An array containing the polygon's vertices, e.g.:
+ *
+ *
+ *
+ *
+ * points[0]
+ * = x0
+ *
+ *
+ * points[1]
+ * = y0
+ *
+ *
+ * points[2]
+ * = x1
+ *
+ *
+ * points[3]
+ * = y1
+ *
+ *
+ *
+ *
+ * @param int $num_points Total number of points (vertices), which must be at least 3.
+ * @param int $color A color identifier created with imagecolorallocate.
+ * @throws ImageException
+ *
+ */
+function imageopenpolygon($image, array $points, int $num_points, int $color): void
+{
+ error_clear_last();
+ $result = \imageopenpolygon($image, $points, $num_points, $color);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Outputs or saves a PNG image from the given
+ * image.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param mixed $to The path or an open stream resource (which is automatically being closed after this function returns) to save the file to. If not set or NULL, the raw image stream will be outputted directly.
+ *
+ * NULL is invalid if the quality and
+ * filters arguments are not used.
+ * @param int $quality Compression level: from 0 (no compression) to 9.
+ * The default (-1) uses the zlib compression default.
+ * For more information see the zlib manual.
+ * @param int $filters Allows reducing the PNG file size. It is a bitmask field which may be
+ * set to any combination of the PNG_FILTER_XXX
+ * constants. PNG_NO_FILTER or
+ * PNG_ALL_FILTERS may also be used to respectively
+ * disable or activate all filters.
+ * The default value (-1) disables filtering.
+ * @throws ImageException
+ *
+ */
+function imagepng($image, $to = null, int $quality = -1, int $filters = -1): void
+{
+ error_clear_last();
+ $result = \imagepng($image, $to, $quality, $filters);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * imagepolygon creates a polygon in the given
+ * image.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param array $points An array containing the polygon's vertices, e.g.:
+ *
+ *
+ *
+ *
+ * points[0]
+ * = x0
+ *
+ *
+ * points[1]
+ * = y0
+ *
+ *
+ * points[2]
+ * = x1
+ *
+ *
+ * points[3]
+ * = y1
+ *
+ *
+ *
+ *
+ * @param int $num_points Total number of points (vertices), which must be at least 3.
+ * @param int $color A color identifier created with imagecolorallocate.
+ * @throws ImageException
+ *
+ */
+function imagepolygon($image, array $points, int $num_points, int $color): void
+{
+ error_clear_last();
+ $result = \imagepolygon($image, $points, $num_points, $color);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * imagerectangle creates a rectangle starting at
+ * the specified coordinates.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param int $x1 Upper left x coordinate.
+ * @param int $y1 Upper left y coordinate
+ * 0, 0 is the top left corner of the image.
+ * @param int $x2 Bottom right x coordinate.
+ * @param int $y2 Bottom right y coordinate.
+ * @param int $color A color identifier created with imagecolorallocate.
+ * @throws ImageException
+ *
+ */
+function imagerectangle($image, int $x1, int $y1, int $x2, int $y2, int $color): void
+{
+ error_clear_last();
+ $result = \imagerectangle($image, $x1, $y1, $x2, $y2, $color);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Rotates the image image using the given
+ * angle in degrees.
+ *
+ * The center of rotation is the center of the image, and the rotated
+ * image may have different dimensions than the original image.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param float $angle Rotation angle, in degrees. The rotation angle is interpreted as the
+ * number of degrees to rotate the image anticlockwise.
+ * @param int $bgd_color Specifies the color of the uncovered zone after the rotation
+ * @param int $dummy This parameter is unused.
+ * @return resource Returns an image resource for the rotated image.
+ * @throws ImageException
+ *
+ */
+function imagerotate($image, float $angle, int $bgd_color, int $dummy = 0)
+{
+ error_clear_last();
+ $result = \imagerotate($image, $angle, $bgd_color, $dummy);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * imagesavealpha sets the flag which determines whether to retain
+ * full alpha channel information (as opposed to single-color transparency)
+ * when saving PNG images.
+ *
+ * Alphablending has to be disabled (imagealphablending($im, false))
+ * to retain the alpha-channel in the first place.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param bool $saveflag Whether to save the alpha channel or not. Defaults to FALSE.
+ * @throws ImageException
+ *
+ */
+function imagesavealpha($image, bool $saveflag): void
+{
+ error_clear_last();
+ $result = \imagesavealpha($image, $saveflag);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * imagescale scales an image using the given
+ * interpolation algorithm.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param int $new_width The width to scale the image to.
+ * @param int $new_height The height to scale the image to. If omitted or negative, the aspect
+ * ratio will be preserved.
+ * @param int $mode One of IMG_NEAREST_NEIGHBOUR,
+ * IMG_BILINEAR_FIXED,
+ * IMG_BICUBIC,
+ * IMG_BICUBIC_FIXED or anything else (will use two
+ * pass).
+ *
+ *
+ * IMG_WEIGHTED4 is not yet supported.
+ *
+ *
+ * @return resource Return the scaled image resource on success.
+ * @throws ImageException
+ *
+ */
+function imagescale($image, int $new_width, int $new_height = -1, int $mode = IMG_BILINEAR_FIXED)
+{
+ error_clear_last();
+ $result = \imagescale($image, $new_width, $new_height, $mode);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * imagesetbrush sets the brush image to be
+ * used by all line drawing functions (such as imageline
+ * and imagepolygon) when drawing with the special
+ * colors IMG_COLOR_BRUSHED or
+ * IMG_COLOR_STYLEDBRUSHED.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param resource $brush An image resource.
+ * @throws ImageException
+ *
+ */
+function imagesetbrush($image, $brush): void
+{
+ error_clear_last();
+ $result = \imagesetbrush($image, $brush);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * imagesetclip sets the current clipping rectangle, i.e.
+ * the area beyond which no pixels will be drawn.
+ *
+ * @param resource $im An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param int $x1 The x-coordinate of the upper left corner.
+ * @param int $y1 The y-coordinate of the upper left corner.
+ * @param int $x2 The x-coordinate of the lower right corner.
+ * @param int $y2 The y-coordinate of the lower right corner.
+ * @throws ImageException
+ *
+ */
+function imagesetclip($im, int $x1, int $y1, int $x2, int $y2): void
+{
+ error_clear_last();
+ $result = \imagesetclip($im, $x1, $y1, $x2, $y2);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the interpolation method, setting an interpolation method affects the rendering
+ * of various functions in GD, such as the imagerotate function.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param int $method The interpolation method, which can be one of the following:
+ *
+ *
+ *
+ * IMG_BELL: Bell filter.
+ *
+ *
+ *
+ *
+ * IMG_BESSEL: Bessel filter.
+ *
+ *
+ *
+ *
+ * IMG_BICUBIC: Bicubic interpolation.
+ *
+ *
+ *
+ *
+ * IMG_BICUBIC_FIXED: Fixed point implementation of the bicubic interpolation.
+ *
+ *
+ *
+ *
+ * IMG_BILINEAR_FIXED: Fixed point implementation of the bilinear interpolation (default (also on image creation)).
+ *
+ *
+ *
+ *
+ * IMG_BLACKMAN: Blackman window function.
+ *
+ *
+ *
+ *
+ * IMG_BOX: Box blur filter.
+ *
+ *
+ *
+ *
+ * IMG_BSPLINE: Spline interpolation.
+ *
+ *
+ *
+ *
+ * IMG_CATMULLROM: Cubic Hermite spline interpolation.
+ *
+ *
+ *
+ *
+ * IMG_GAUSSIAN: Gaussian function.
+ *
+ *
+ *
+ *
+ * IMG_GENERALIZED_CUBIC: Generalized cubic spline fractal interpolation.
+ *
+ *
+ *
+ *
+ * IMG_HERMITE: Hermite interpolation.
+ *
+ *
+ *
+ *
+ * IMG_HAMMING: Hamming filter.
+ *
+ *
+ *
+ *
+ * IMG_HANNING: Hanning filter.
+ *
+ *
+ *
+ *
+ * IMG_MITCHELL: Mitchell filter.
+ *
+ *
+ *
+ *
+ * IMG_POWER: Power interpolation.
+ *
+ *
+ *
+ *
+ * IMG_QUADRATIC: Inverse quadratic interpolation.
+ *
+ *
+ *
+ *
+ * IMG_SINC: Sinc function.
+ *
+ *
+ *
+ *
+ * IMG_NEAREST_NEIGHBOUR: Nearest neighbour interpolation.
+ *
+ *
+ *
+ *
+ * IMG_WEIGHTED4: Weighting filter.
+ *
+ *
+ *
+ *
+ * IMG_TRIANGLE: Triangle interpolation.
+ *
+ *
+ *
+ * @throws ImageException
+ *
+ */
+function imagesetinterpolation($image, int $method = IMG_BILINEAR_FIXED): void
+{
+ error_clear_last();
+ $result = \imagesetinterpolation($image, $method);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * imagesetpixel draws a pixel at the specified
+ * coordinate.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param int $x x-coordinate.
+ * @param int $y y-coordinate.
+ * @param int $color A color identifier created with imagecolorallocate.
+ * @throws ImageException
+ *
+ */
+function imagesetpixel($image, int $x, int $y, int $color): void
+{
+ error_clear_last();
+ $result = \imagesetpixel($image, $x, $y, $color);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * imagesetstyle sets the style to be used by all
+ * line drawing functions (such as imageline
+ * and imagepolygon) when drawing with the special
+ * color IMG_COLOR_STYLED or lines of images with color
+ * IMG_COLOR_STYLEDBRUSHED.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param array $style An array of pixel colors. You can use the
+ * IMG_COLOR_TRANSPARENT constant to add a
+ * transparent pixel.
+ * Note that style must not be an empty array.
+ * @throws ImageException
+ *
+ */
+function imagesetstyle($image, array $style): void
+{
+ error_clear_last();
+ $result = \imagesetstyle($image, $style);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * imagesetthickness sets the thickness of the lines
+ * drawn when drawing rectangles, polygons, arcs etc. to
+ * thickness pixels.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param int $thickness Thickness, in pixels.
+ * @throws ImageException
+ *
+ */
+function imagesetthickness($image, int $thickness): void
+{
+ error_clear_last();
+ $result = \imagesetthickness($image, $thickness);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * imagesettile sets the tile image to be
+ * used by all region filling functions (such as imagefill
+ * and imagefilledpolygon) when filling with the special
+ * color IMG_COLOR_TILED.
+ *
+ * A tile is an image used to fill an area with a repeated pattern. Any
+ * GD image can be used as a tile, and by setting the transparent color index of the tile
+ * image with imagecolortransparent, a tile allows certain parts
+ * of the underlying area to shine through can be created.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param resource $tile The image resource to be used as a tile.
+ * @throws ImageException
+ *
+ */
+function imagesettile($image, $tile): void
+{
+ error_clear_last();
+ $result = \imagesettile($image, $tile);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Draws a string at the given coordinates.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param int $font Can be 1, 2, 3, 4, 5 for built-in
+ * fonts in latin2 encoding (where higher numbers corresponding to larger fonts) or any of your
+ * own font identifiers registered with imageloadfont.
+ * @param int $x x-coordinate of the upper left corner.
+ * @param int $y y-coordinate of the upper left corner.
+ * @param string $string The string to be written.
+ * @param int $color A color identifier created with imagecolorallocate.
+ * @throws ImageException
+ *
+ */
+function imagestring($image, int $font, int $x, int $y, string $string, int $color): void
+{
+ error_clear_last();
+ $result = \imagestring($image, $font, $x, $y, $string, $color);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Draws a string vertically at the given
+ * coordinates.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param int $font Can be 1, 2, 3, 4, 5 for built-in
+ * fonts in latin2 encoding (where higher numbers corresponding to larger fonts) or any of your
+ * own font identifiers registered with imageloadfont.
+ * @param int $x x-coordinate of the bottom left corner.
+ * @param int $y y-coordinate of the bottom left corner.
+ * @param string $string The string to be written.
+ * @param int $color A color identifier created with imagecolorallocate.
+ * @throws ImageException
+ *
+ */
+function imagestringup($image, int $font, int $x, int $y, string $string, int $color): void
+{
+ error_clear_last();
+ $result = \imagestringup($image, $font, $x, $y, $string, $color);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Returns the width of the given image resource.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @return int Return the width of the images.
+ * @throws ImageException
+ *
+ */
+function imagesx($image): int
+{
+ error_clear_last();
+ $result = \imagesx($image);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Returns the height of the given image resource.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @return int Return the height of the images.
+ * @throws ImageException
+ *
+ */
+function imagesy($image): int
+{
+ error_clear_last();
+ $result = \imagesy($image);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * imagetruecolortopalette converts a truecolor image
+ * to a palette image. The code for this function was originally drawn from
+ * the Independent JPEG Group library code, which is excellent. The code
+ * has been modified to preserve as much alpha channel information as
+ * possible in the resulting palette, in addition to preserving colors as
+ * well as possible. This does not work as well as might be hoped. It is
+ * usually best to simply produce a truecolor output image instead, which
+ * guarantees the highest output quality.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param bool $dither Indicates if the image should be dithered - if it is TRUE then
+ * dithering will be used which will result in a more speckled image but
+ * with better color approximation.
+ * @param int $ncolors Sets the maximum number of colors that should be retained in the palette.
+ * @throws ImageException
+ *
+ */
+function imagetruecolortopalette($image, bool $dither, int $ncolors): void
+{
+ error_clear_last();
+ $result = \imagetruecolortopalette($image, $dither, $ncolors);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function calculates and returns the bounding box in pixels
+ * for a TrueType text.
+ *
+ * @param float $size The font size in points.
+ * @param float $angle Angle in degrees in which text will be measured.
+ * @param string $fontfile The path to the TrueType font you wish to use.
+ *
+ * Depending on which version of the GD library PHP is using, when
+ * fontfile does not begin with a leading
+ * / then .ttf will be appended
+ * to the filename and the library will attempt to search for that
+ * filename along a library-defined font path.
+ *
+ * When using versions of the GD library lower than 2.0.18, a space character,
+ * rather than a semicolon, was used as the 'path separator' for different font files.
+ * Unintentional use of this feature will result in the warning message:
+ * Warning: Could not find/open font. For these affected versions, the
+ * only solution is moving the font to a path which does not contain spaces.
+ *
+ * In many cases where a font resides in the same directory as the script using it
+ * the following trick will alleviate any include problems.
+ *
+ *
+ * ]]>
+ *
+ *
+ * Note that open_basedir does
+ * not apply to fontfile.
+ * @param string $text The string to be measured.
+ * @return array imagettfbbox returns an array with 8
+ * elements representing four points making the bounding box of the
+ * text on success and FALSE on error.
+ *
+ *
+ *
+ *
+ * key
+ * contents
+ *
+ *
+ *
+ *
+ * 0
+ * lower left corner, X position
+ *
+ *
+ * 1
+ * lower left corner, Y position
+ *
+ *
+ * 2
+ * lower right corner, X position
+ *
+ *
+ * 3
+ * lower right corner, Y position
+ *
+ *
+ * 4
+ * upper right corner, X position
+ *
+ *
+ * 5
+ * upper right corner, Y position
+ *
+ *
+ * 6
+ * upper left corner, X position
+ *
+ *
+ * 7
+ * upper left corner, Y position
+ *
+ *
+ *
+ *
+ *
+ * The points are relative to the text regardless of the
+ * angle, so "upper left" means in the top left-hand
+ * corner seeing the text horizontally.
+ * @throws ImageException
+ *
+ */
+function imagettfbbox(float $size, float $angle, string $fontfile, string $text): array
+{
+ error_clear_last();
+ $result = \imagettfbbox($size, $angle, $fontfile, $text);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Writes the given text into the image using TrueType
+ * fonts.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param float $size The font size in points.
+ * @param float $angle The angle in degrees, with 0 degrees being left-to-right reading text.
+ * Higher values represent a counter-clockwise rotation. For example, a
+ * value of 90 would result in bottom-to-top reading text.
+ * @param int $x The coordinates given by x and
+ * y will define the basepoint of the first
+ * character (roughly the lower-left corner of the character). This
+ * is different from the imagestring, where
+ * x and y define the
+ * upper-left corner of the first character. For example, "top left"
+ * is 0, 0.
+ * @param int $y The y-ordinate. This sets the position of the fonts baseline, not the
+ * very bottom of the character.
+ * @param int $color The color index. Using the negative of a color index has the effect of
+ * turning off antialiasing. See imagecolorallocate.
+ * @param string $fontfile The path to the TrueType font you wish to use.
+ *
+ * Depending on which version of the GD library PHP is using, when
+ * fontfile does not begin with a leading
+ * / then .ttf will be appended
+ * to the filename and the library will attempt to search for that
+ * filename along a library-defined font path.
+ *
+ * When using versions of the GD library lower than 2.0.18, a space character,
+ * rather than a semicolon, was used as the 'path separator' for different font files.
+ * Unintentional use of this feature will result in the warning message:
+ * Warning: Could not find/open font. For these affected versions, the
+ * only solution is moving the font to a path which does not contain spaces.
+ *
+ * In many cases where a font resides in the same directory as the script using it
+ * the following trick will alleviate any include problems.
+ *
+ *
+ * ]]>
+ *
+ *
+ * Note that open_basedir does
+ * not apply to fontfile.
+ * @param string $text The text string in UTF-8 encoding.
+ *
+ * May include decimal numeric character references (of the form:
+ * &amp;#8364;) to access characters in a font beyond position 127.
+ * The hexadecimal format (like &amp;#xA9;) is supported.
+ * Strings in UTF-8 encoding can be passed directly.
+ *
+ * Named entities, such as &amp;copy;, are not supported. Consider using
+ * html_entity_decode
+ * to decode these named entities into UTF-8 strings.
+ *
+ * If a character is used in the string which is not supported by the
+ * font, a hollow rectangle will replace the character.
+ * @return array Returns an array with 8 elements representing four points making the
+ * bounding box of the text. The order of the points is lower left, lower
+ * right, upper right, upper left. The points are relative to the text
+ * regardless of the angle, so "upper left" means in the top left-hand
+ * corner when you see the text horizontally.
+ * @throws ImageException
+ *
+ */
+function imagettftext($image, float $size, float $angle, int $x, int $y, int $color, string $fontfile, string $text): array
+{
+ error_clear_last();
+ $result = \imagettftext($image, $size, $angle, $x, $y, $color, $fontfile, $text);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * imagewbmp outputs or save a WBMP
+ * version of the given image.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param mixed $to The path or an open stream resource (which is automatically being closed after this function returns) to save the file to. If not set or NULL, the raw image stream will be outputted directly.
+ * @param int $foreground You can set the foreground color with this parameter by setting an
+ * identifier obtained from imagecolorallocate.
+ * The default foreground color is black.
+ * @throws ImageException
+ *
+ */
+function imagewbmp($image, $to = null, int $foreground = null): void
+{
+ error_clear_last();
+ if ($foreground !== null) {
+ $result = \imagewbmp($image, $to, $foreground);
+ } else {
+ $result = \imagewbmp($image, $to);
+ }
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Outputs or saves a WebP version of the given image.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param mixed $to The path or an open stream resource (which is automatically being closed after this function returns) to save the file to. If not set or NULL, the raw image stream will be outputted directly.
+ * @param int $quality quality ranges from 0 (worst
+ * quality, smaller file) to 100 (best quality, biggest file).
+ * @throws ImageException
+ *
+ */
+function imagewebp($image, $to = null, int $quality = 80): void
+{
+ error_clear_last();
+ $result = \imagewebp($image, $to, $quality);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Outputs or save an XBM version of the given
+ * image.
+ *
+ * @param resource $image An image resource, returned by one of the image creation functions,
+ * such as imagecreatetruecolor.
+ * @param string|null $filename The path to save the file to, given as string. If NULL, the raw image stream will be output directly.
+ *
+ * The filename (without the .xbm extension) is also
+ * used for the C identifiers of the XBM, whereby non
+ * alphanumeric characters of the current locale are substituted by
+ * underscores. If filename is set to NULL,
+ * image is used to build the C identifiers.
+ * @param int $foreground You can set the foreground color with this parameter by setting an
+ * identifier obtained from imagecolorallocate.
+ * The default foreground color is black. All other colors are treated as
+ * background.
+ * @throws ImageException
+ *
+ */
+function imagexbm($image, ?string $filename, int $foreground = null): void
+{
+ error_clear_last();
+ if ($foreground !== null) {
+ $result = \imagexbm($image, $filename, $foreground);
+ } else {
+ $result = \imagexbm($image, $filename);
+ }
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Embeds binary IPTC data into a JPEG image.
+ *
+ * @param string $iptcdata The data to be written.
+ * @param string $jpeg_file_name Path to the JPEG image.
+ * @param int $spool Spool flag. If the spool flag is less than 2 then the JPEG will be
+ * returned as a string. Otherwise the JPEG will be printed to STDOUT.
+ * @return string|bool If spool is less than 2, the JPEG will be returned. Otherwise returns TRUE on success.
+ * @throws ImageException
+ *
+ */
+function iptcembed(string $iptcdata, string $jpeg_file_name, int $spool = 0)
+{
+ error_clear_last();
+ $result = \iptcembed($iptcdata, $jpeg_file_name, $spool);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Parses an IPTC block into its single tags.
+ *
+ * @param string $iptcblock A binary IPTC block.
+ * @return array Returns an array using the tagmarker as an index and the value as the
+ * value. It returns FALSE on error or if no IPTC data was found.
+ * @throws ImageException
+ *
+ */
+function iptcparse(string $iptcblock): array
+{
+ error_clear_last();
+ $result = \iptcparse($iptcblock);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Converts a JPEG file into a WBMP file.
+ *
+ * @param string $jpegname Path to JPEG file.
+ * @param string $wbmpname Path to destination WBMP file.
+ * @param int $dest_height Destination image height.
+ * @param int $dest_width Destination image width.
+ * @param int $threshold Threshold value, between 0 and 8 (inclusive).
+ * @throws ImageException
+ *
+ */
+function jpeg2wbmp(string $jpegname, string $wbmpname, int $dest_height, int $dest_width, int $threshold): void
+{
+ error_clear_last();
+ $result = \jpeg2wbmp($jpegname, $wbmpname, $dest_height, $dest_width, $threshold);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Converts a PNG file into a WBMP file.
+ *
+ * @param string $pngname Path to PNG file.
+ * @param string $wbmpname Path to destination WBMP file.
+ * @param int $dest_height Destination image height.
+ * @param int $dest_width Destination image width.
+ * @param int $threshold Threshold value, between 0 and 8 (inclusive).
+ * @throws ImageException
+ *
+ */
+function png2wbmp(string $pngname, string $wbmpname, int $dest_height, int $dest_width, int $threshold): void
+{
+ error_clear_last();
+ $result = \png2wbmp($pngname, $wbmpname, $dest_height, $dest_width, $threshold);
+ if ($result === false) {
+ throw ImageException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/imap.php b/vendor/thecodingmachine/safe/generated/imap.php
new file mode 100644
index 000000000..acd8672c6
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/imap.php
@@ -0,0 +1,1481 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\ImapException;
+
+/**
+ * Appends a string message to the specified mailbox.
+ *
+ * @param resource $imap_stream An IMAP stream returned by
+ * imap_open.
+ * @param string $mailbox The mailbox name, see imap_open for more
+ * information
+ * @param string $message The message to be append, as a string
+ *
+ * When talking to the Cyrus IMAP server, you must use "\r\n" as
+ * your end-of-line terminator instead of "\n" or the operation will
+ * fail
+ * @param string $options If provided, the options will also be written
+ * to the mailbox
+ * @param string $internal_date If this parameter is set, it will set the INTERNALDATE on the appended message. The parameter should be a date string that conforms to the rfc2060 specifications for a date_time value.
+ * @throws ImapException
+ *
+ */
+function imap_append($imap_stream, string $mailbox, string $message, string $options = null, string $internal_date = null): void
+{
+ error_clear_last();
+ $result = \imap_append($imap_stream, $mailbox, $message, $options, $internal_date);
+ if ($result === false) {
+ throw ImapException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Checks information about the current mailbox.
+ *
+ * @param resource $imap_stream An IMAP stream returned by
+ * imap_open.
+ * @return \stdClass Returns the information in an object with following properties:
+ *
+ *
+ *
+ * Date - current system time formatted according to RFC2822
+ *
+ *
+ *
+ *
+ * Driver - protocol used to access this mailbox:
+ * POP3, IMAP, NNTP
+ *
+ *
+ *
+ *
+ * Mailbox - the mailbox name
+ *
+ *
+ *
+ *
+ * Nmsgs - number of messages in the mailbox
+ *
+ *
+ *
+ *
+ * Recent - number of recent messages in the mailbox
+ *
+ *
+ *
+ *
+ * Returns FALSE on failure.
+ * @throws ImapException
+ *
+ */
+function imap_check($imap_stream): \stdClass
+{
+ error_clear_last();
+ $result = \imap_check($imap_stream);
+ if ($result === false) {
+ throw ImapException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * This function causes a store to delete the specified
+ * flag to the flags set for the
+ * messages in the specified sequence.
+ *
+ * @param resource $imap_stream An IMAP stream returned by
+ * imap_open.
+ * @param string $sequence A sequence of message numbers. You can enumerate desired messages
+ * with the X,Y syntax, or retrieve all messages
+ * within an interval with the X:Y syntax
+ * @param string $flag The flags which you can unset are "\\Seen", "\\Answered", "\\Flagged",
+ * "\\Deleted", and "\\Draft" (as defined by RFC2060)
+ * @param int $options options are a bit mask and may contain
+ * the single option:
+ *
+ *
+ *
+ * ST_UID - The sequence argument contains UIDs
+ * instead of sequence numbers
+ *
+ *
+ *
+ * @throws ImapException
+ *
+ */
+function imap_clearflag_full($imap_stream, string $sequence, string $flag, int $options = 0): void
+{
+ error_clear_last();
+ $result = \imap_clearflag_full($imap_stream, $sequence, $flag, $options);
+ if ($result === false) {
+ throw ImapException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Closes the imap stream.
+ *
+ * @param resource $imap_stream An IMAP stream returned by
+ * imap_open.
+ * @param int $flag If set to CL_EXPUNGE, the function will silently
+ * expunge the mailbox before closing, removing all messages marked for
+ * deletion. You can achieve the same thing by using
+ * imap_expunge
+ * @throws ImapException
+ *
+ */
+function imap_close($imap_stream, int $flag = 0): void
+{
+ error_clear_last();
+ $result = \imap_close($imap_stream, $flag);
+ if ($result === false) {
+ throw ImapException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Creates a new mailbox specified by mailbox.
+ *
+ * @param resource $imap_stream An IMAP stream returned by
+ * imap_open.
+ * @param string $mailbox The mailbox name, see imap_open for more
+ * information. Names containing international characters should be
+ * encoded by imap_utf7_encode
+ * @throws ImapException
+ *
+ */
+function imap_createmailbox($imap_stream, string $mailbox): void
+{
+ error_clear_last();
+ $result = \imap_createmailbox($imap_stream, $mailbox);
+ if ($result === false) {
+ throw ImapException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Deletes the specified mailbox.
+ *
+ * @param resource $imap_stream An IMAP stream returned by
+ * imap_open.
+ * @param string $mailbox The mailbox name, see imap_open for more
+ * information
+ * @throws ImapException
+ *
+ */
+function imap_deletemailbox($imap_stream, string $mailbox): void
+{
+ error_clear_last();
+ $result = \imap_deletemailbox($imap_stream, $mailbox);
+ if ($result === false) {
+ throw ImapException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Fetches all the structured information for a given message.
+ *
+ * @param resource $imap_stream An IMAP stream returned by
+ * imap_open.
+ * @param int $msg_number The message number
+ * @param int $options This optional parameter only has a single option,
+ * FT_UID, which tells the function to treat the
+ * msg_number argument as a
+ * UID.
+ * @return \stdClass Returns an object with properties listed in the table below.
+ *
+ *
+ *
+ * Returned Object for imap_fetchstructure
+ *
+ *
+ *
+ *
+ * type
+ * Primary body type
+ *
+ *
+ * encoding
+ * Body transfer encoding
+ *
+ *
+ * ifsubtype
+ * TRUE if there is a subtype string
+ *
+ *
+ * subtype
+ * MIME subtype
+ *
+ *
+ * ifdescription
+ * TRUE if there is a description string
+ *
+ *
+ * description
+ * Content description string
+ *
+ *
+ * ifid
+ * TRUE if there is an identification string
+ *
+ *
+ * id
+ * Identification string
+ *
+ *
+ * lines
+ * Number of lines
+ *
+ *
+ * bytes
+ * Number of bytes
+ *
+ *
+ * ifdisposition
+ * TRUE if there is a disposition string
+ *
+ *
+ * disposition
+ * Disposition string
+ *
+ *
+ * ifdparameters
+ * TRUE if the dparameters array exists
+ *
+ *
+ * dparameters
+ * An array of objects where each object has an
+ * "attribute" and a "value"
+ * property corresponding to the parameters on the
+ * Content-disposition MIME
+ * header.
+ *
+ *
+ * ifparameters
+ * TRUE if the parameters array exists
+ *
+ *
+ * parameters
+ * An array of objects where each object has an
+ * "attribute" and a "value"
+ * property.
+ *
+ *
+ * parts
+ * An array of objects identical in structure to the top-level
+ * object, each of which corresponds to a MIME body
+ * part.
+ *
+ *
+ *
+ *
+ *
+ *
+ * Primary body type (value may vary with used library, use of constants is recommended)
+ *
+ *
+ * ValueTypeConstant
+ *
+ *
+ * 0textTYPETEXT
+ * 1multipartTYPEMULTIPART
+ * 2messageTYPEMESSAGE
+ * 3applicationTYPEAPPLICATION
+ * 4audioTYPEAUDIO
+ * 5imageTYPEIMAGE
+ * 6videoTYPEVIDEO
+ * 7modelTYPEMODEL
+ * 8otherTYPEOTHER
+ *
+ *
+ *
+ *
+ *
+ * Transfer encodings (value may vary with used library, use of constants is recommended)
+ *
+ *
+ * ValueTypeConstant
+ *
+ *
+ * 07bitENC7BIT
+ * 18bitENC8BIT
+ * 2BinaryENCBINARY
+ * 3Base64ENCBASE64
+ * 4Quoted-PrintableENCQUOTEDPRINTABLE
+ * 5otherENCOTHER
+ *
+ *
+ *
+ * @throws ImapException
+ *
+ */
+function imap_fetchstructure($imap_stream, int $msg_number, int $options = 0): \stdClass
+{
+ error_clear_last();
+ $result = \imap_fetchstructure($imap_stream, $msg_number, $options);
+ if ($result === false) {
+ throw ImapException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Purges the cache of entries of a specific type.
+ *
+ * @param resource $imap_stream An IMAP stream returned by
+ * imap_open.
+ * @param int $caches Specifies the cache to purge. It may one or a combination
+ * of the following constants:
+ * IMAP_GC_ELT (message cache elements),
+ * IMAP_GC_ENV (envelope and bodies),
+ * IMAP_GC_TEXTS (texts).
+ * @throws ImapException
+ *
+ */
+function imap_gc($imap_stream, int $caches): void
+{
+ error_clear_last();
+ $result = \imap_gc($imap_stream, $caches);
+ if ($result === false) {
+ throw ImapException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Gets information about the given message number by reading its headers.
+ *
+ * @param resource $imap_stream An IMAP stream returned by
+ * imap_open.
+ * @param int $msg_number The message number
+ * @param int $fromlength Number of characters for the fetchfrom property.
+ * Must be greater than or equal to zero.
+ * @param int $subjectlength Number of characters for the fetchsubject property
+ * Must be greater than or equal to zero.
+ * @param string $defaulthost
+ * @return \stdClass Returns FALSE on error or, if successful, the information in an object with following properties:
+ *
+ *
+ *
+ * toaddress - full to: line, up to 1024 characters
+ *
+ *
+ *
+ *
+ * to - an array of objects from the To: line, with the following
+ * properties: personal, adl,
+ * mailbox, and host
+ *
+ *
+ *
+ *
+ * fromaddress - full from: line, up to 1024 characters
+ *
+ *
+ *
+ *
+ * from - an array of objects from the From: line, with the following
+ * properties: personal, adl,
+ * mailbox, and host
+ *
+ *
+ *
+ *
+ * ccaddress - full cc: line, up to 1024 characters
+ *
+ *
+ *
+ *
+ * cc - an array of objects from the Cc: line, with the following
+ * properties: personal, adl,
+ * mailbox, and host
+ *
+ *
+ *
+ *
+ * bccaddress - full bcc: line, up to 1024 characters
+ *
+ *
+ *
+ *
+ * bcc - an array of objects from the Bcc: line, with the following
+ * properties: personal, adl,
+ * mailbox, and host
+ *
+ *
+ *
+ *
+ * reply_toaddress - full Reply-To: line, up to 1024 characters
+ *
+ *
+ *
+ *
+ * reply_to - an array of objects from the Reply-To: line, with the following
+ * properties: personal, adl,
+ * mailbox, and host
+ *
+ *
+ *
+ *
+ * senderaddress - full sender: line, up to 1024 characters
+ *
+ *
+ *
+ *
+ * sender - an array of objects from the Sender: line, with the following
+ * properties: personal, adl,
+ * mailbox, and host
+ *
+ *
+ *
+ *
+ * return_pathaddress - full Return-Path: line, up to 1024 characters
+ *
+ *
+ *
+ *
+ * return_path - an array of objects from the Return-Path: line, with the
+ * following properties: personal,
+ * adl, mailbox, and
+ * host
+ *
+ *
+ *
+ *
+ * remail -
+ *
+ *
+ *
+ *
+ * date - The message date as found in its headers
+ *
+ *
+ *
+ *
+ * Date - Same as date
+ *
+ *
+ *
+ *
+ * subject - The message subject
+ *
+ *
+ *
+ *
+ * Subject - Same as subject
+ *
+ *
+ *
+ *
+ * in_reply_to -
+ *
+ *
+ *
+ *
+ * message_id -
+ *
+ *
+ *
+ *
+ * newsgroups -
+ *
+ *
+ *
+ *
+ * followup_to -
+ *
+ *
+ *
+ *
+ * references -
+ *
+ *
+ *
+ *
+ * Recent - R if recent and seen, N
+ * if recent and not seen, ' ' if not recent.
+ *
+ *
+ *
+ *
+ * Unseen - U if not seen AND not recent, ' ' if seen
+ * OR not seen and recent
+ *
+ *
+ *
+ *
+ * Flagged - F if flagged, ' ' if not flagged
+ *
+ *
+ *
+ *
+ * Answered - A if answered, ' ' if unanswered
+ *
+ *
+ *
+ *
+ * Deleted - D if deleted, ' ' if not deleted
+ *
+ *
+ *
+ *
+ * Draft - X if draft, ' ' if not draft
+ *
+ *
+ *
+ *
+ * Msgno - The message number
+ *
+ *
+ *
+ *
+ * MailDate -
+ *
+ *
+ *
+ *
+ * Size - The message size
+ *
+ *
+ *
+ *
+ * udate - mail message date in Unix time
+ *
+ *
+ *
+ *
+ * fetchfrom - from line formatted to fit fromlength
+ * characters
+ *
+ *
+ *
+ *
+ * fetchsubject - subject line formatted to fit
+ * subjectlength characters
+ *
+ *
+ *
+ * @throws ImapException
+ *
+ */
+function imap_headerinfo($imap_stream, int $msg_number, int $fromlength = 0, int $subjectlength = 0, string $defaulthost = null): \stdClass
+{
+ error_clear_last();
+ $result = \imap_headerinfo($imap_stream, $msg_number, $fromlength, $subjectlength, $defaulthost);
+ if ($result === false) {
+ throw ImapException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Create a MIME message based on the given envelope
+ * and body sections.
+ *
+ * @param array $envelope An associative array of header fields. Valid keys are: "remail",
+ * "return_path", "date", "from", "reply_to", "in_reply_to", "subject",
+ * "to", "cc", "bcc" and "message_id", which set the respective message headers to the given string.
+ * To set additional headers, the key "custom_headers" is supported, which expects
+ * an array of those headers, e.g. ["User-Agent: My Mail Client"].
+ * @param array $body An indexed array of bodies. The first body is the main body of the message;
+ * only if it has a type of TYPEMULTIPART, further bodies
+ * are processed; these bodies constitute the bodies of the parts.
+ *
+ *
+ * Body Array Structure
+ *
+ *
+ *
+ * Key
+ * Type
+ * Description
+ *
+ *
+ *
+ *
+ * type
+ * int
+ *
+ * The MIME type.
+ * One of TYPETEXT (default), TYPEMULTIPART,
+ * TYPEMESSAGE, TYPEAPPLICATION,
+ * TYPEAUDIO, TYPEIMAGE,
+ * TYPEMODEL or TYPEOTHER.
+ *
+ *
+ *
+ * encoding
+ * int
+ *
+ * The Content-Transfer-Encoding.
+ * One of ENC7BIT (default), ENC8BIT,
+ * ENCBINARY, ENCBASE64,
+ * ENCQUOTEDPRINTABLE or ENCOTHER.
+ *
+ *
+ *
+ * charset
+ * string
+ * The charset parameter of the MIME type.
+ *
+ *
+ * type.parameters
+ * array
+ * An associative array of Content-Type parameter names and their values.
+ *
+ *
+ * subtype
+ * string
+ * The MIME subtype, e.g. 'jpeg' for TYPEIMAGE.
+ *
+ *
+ * id
+ * string
+ * The Content-ID.
+ *
+ *
+ * description
+ * string
+ * The Content-Description.
+ *
+ *
+ * disposition.type
+ * string
+ * The Content-Disposition, e.g. 'attachment'.
+ *
+ *
+ * disposition
+ * array
+ * An associative array of Content-Disposition parameter names and values.
+ *
+ *
+ * contents.data
+ * string
+ * The payload.
+ *
+ *
+ * lines
+ * int
+ * The size of the payload in lines.
+ *
+ *
+ * bytes
+ * int
+ * The size of the payload in bytes.
+ *
+ *
+ * md5
+ * string
+ * The MD5 checksum of the payload.
+ *
+ *
+ *
+ *
+ * @return string Returns the MIME message as string.
+ * @throws ImapException
+ *
+ */
+function imap_mail_compose(array $envelope, array $body): string
+{
+ error_clear_last();
+ $result = \imap_mail_compose($envelope, $body);
+ if ($result === false) {
+ throw ImapException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Copies mail messages specified by msglist
+ * to specified mailbox.
+ *
+ * @param resource $imap_stream An IMAP stream returned by
+ * imap_open.
+ * @param string $msglist msglist is a range not just message
+ * numbers (as described in RFC2060).
+ * @param string $mailbox The mailbox name, see imap_open for more
+ * information
+ * @param int $options options is a bitmask of one or more of
+ *
+ *
+ *
+ * CP_UID - the sequence numbers contain UIDS
+ *
+ *
+ *
+ *
+ * CP_MOVE - Delete the messages from
+ * the current mailbox after copying
+ *
+ *
+ *
+ * @throws ImapException
+ *
+ */
+function imap_mail_copy($imap_stream, string $msglist, string $mailbox, int $options = 0): void
+{
+ error_clear_last();
+ $result = \imap_mail_copy($imap_stream, $msglist, $mailbox, $options);
+ if ($result === false) {
+ throw ImapException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Moves mail messages specified by msglist to the
+ * specified mailbox.
+ *
+ * @param resource $imap_stream An IMAP stream returned by
+ * imap_open.
+ * @param string $msglist msglist is a range not just message numbers
+ * (as described in RFC2060).
+ * @param string $mailbox The mailbox name, see imap_open for more
+ * information
+ * @param int $options options is a bitmask and may contain the single option:
+ *
+ *
+ *
+ * CP_UID - the sequence numbers contain UIDS
+ *
+ *
+ *
+ * @throws ImapException
+ *
+ */
+function imap_mail_move($imap_stream, string $msglist, string $mailbox, int $options = 0): void
+{
+ error_clear_last();
+ $result = \imap_mail_move($imap_stream, $msglist, $mailbox, $options);
+ if ($result === false) {
+ throw ImapException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function allows sending of emails with correct handling of
+ * Cc and Bcc receivers.
+ *
+ * The parameters to, cc
+ * and bcc are all strings and are all parsed
+ * as RFC822 address lists.
+ *
+ * @param string $to The receiver
+ * @param string $subject The mail subject
+ * @param string $message The mail body, see imap_mail_compose
+ * @param string $additional_headers As string with additional headers to be set on the mail
+ * @param string $cc
+ * @param string $bcc The receivers specified in bcc will get the
+ * mail, but are excluded from the headers.
+ * @param string $rpath Use this parameter to specify return path upon mail delivery failure.
+ * This is useful when using PHP as a mail client for multiple users.
+ * @throws ImapException
+ *
+ */
+function imap_mail(string $to, string $subject, string $message, string $additional_headers = null, string $cc = null, string $bcc = null, string $rpath = null): void
+{
+ error_clear_last();
+ $result = \imap_mail($to, $subject, $message, $additional_headers, $cc, $bcc, $rpath);
+ if ($result === false) {
+ throw ImapException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Checks the current mailbox status on the server. It is similar to
+ * imap_status, but will additionally sum up the size of
+ * all messages in the mailbox, which will take some additional time to
+ * execute.
+ *
+ * @param resource $imap_stream An IMAP stream returned by
+ * imap_open.
+ * @return \stdClass Returns the information in an object with following properties:
+ *
+ * Mailbox properties
+ *
+ *
+ *
+ * Date
+ * date of last change (current datetime)
+ *
+ *
+ * Driver
+ * driver
+ *
+ *
+ * Mailbox
+ * name of the mailbox
+ *
+ *
+ * Nmsgs
+ * number of messages
+ *
+ *
+ * Recent
+ * number of recent messages
+ *
+ *
+ * Unread
+ * number of unread messages
+ *
+ *
+ * Deleted
+ * number of deleted messages
+ *
+ *
+ * Size
+ * mailbox size
+ *
+ *
+ *
+ *
+ *
+ * Returns FALSE on failure.
+ * @throws ImapException
+ *
+ */
+function imap_mailboxmsginfo($imap_stream): \stdClass
+{
+ error_clear_last();
+ $result = \imap_mailboxmsginfo($imap_stream);
+ if ($result === false) {
+ throw ImapException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Decode a modified UTF-7 (as specified in RFC 2060, section 5.1.3) string to UTF-8.
+ *
+ * @param string $in A string encoded in modified UTF-7.
+ * @return string Returns in converted to UTF-8.
+ * @throws ImapException
+ *
+ */
+function imap_mutf7_to_utf8(string $in): string
+{
+ error_clear_last();
+ $result = \imap_mutf7_to_utf8($in);
+ if ($result === false) {
+ throw ImapException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Gets the number of messages in the current mailbox.
+ *
+ * @param resource $imap_stream An IMAP stream returned by
+ * imap_open.
+ * @return int Return the number of messages in the current mailbox, as an integer.
+ * @throws ImapException
+ *
+ */
+function imap_num_msg($imap_stream): int
+{
+ error_clear_last();
+ $result = \imap_num_msg($imap_stream);
+ if ($result === false) {
+ throw ImapException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Opens an IMAP stream to a mailbox.
+ *
+ * This function can also be used to open streams to POP3 and
+ * NNTP servers, but some functions and features are only
+ * available on IMAP servers.
+ *
+ * @param string $mailbox A mailbox name consists of a server and a mailbox path on this server.
+ * The special name INBOX stands for the current users
+ * personal mailbox. Mailbox names that contain international characters
+ * besides those in the printable ASCII space have to be encoded with
+ * imap_utf7_encode.
+ *
+ * The server part, which is enclosed in '{' and '}', consists of the servers
+ * name or ip address, an optional port (prefixed by ':'), and an optional
+ * protocol specification (prefixed by '/').
+ *
+ * The server part is mandatory in all mailbox
+ * parameters.
+ *
+ * All names which start with { are remote names, and are
+ * in the form "{" remote_system_name [":" port] [flags] "}"
+ * [mailbox_name] where:
+ *
+ *
+ *
+ * remote_system_name - Internet domain name or
+ * bracketed IP address of server.
+ *
+ *
+ *
+ *
+ * port - optional TCP port number, default is the
+ * default port for that service
+ *
+ *
+ *
+ *
+ * flags - optional flags, see following table.
+ *
+ *
+ *
+ *
+ * mailbox_name - remote mailbox name, default is INBOX
+ *
+ *
+ *
+ *
+ *
+ * Optional flags for names
+ *
+ *
+ *
+ * Flag
+ * Description
+ *
+ *
+ *
+ *
+ * /service=service
+ * mailbox access service, default is "imap"
+ *
+ *
+ * /user=user
+ * remote user name for login on the server
+ *
+ *
+ * /authuser=user
+ * remote authentication user; if specified this is the user name
+ * whose password is used (e.g. administrator)
+ *
+ *
+ * /anonymous
+ * remote access as anonymous user
+ *
+ *
+ * /debug
+ * record protocol telemetry in application's debug log
+ *
+ *
+ * /secure
+ * do not transmit a plaintext password over the network
+ *
+ *
+ * /imap, /imap2,
+ * /imap2bis, /imap4,
+ * /imap4rev1
+ * equivalent to /service=imap
+ *
+ *
+ * /pop3
+ * equivalent to /service=pop3
+ *
+ *
+ * /nntp
+ * equivalent to /service=nntp
+ *
+ *
+ * /norsh
+ * do not use rsh or ssh to establish a preauthenticated IMAP
+ * session
+ *
+ *
+ * /ssl
+ * use the Secure Socket Layer to encrypt the session
+ *
+ *
+ * /validate-cert
+ * validate certificates from TLS/SSL server (this is the default
+ * behavior)
+ *
+ *
+ * /novalidate-cert
+ * do not validate certificates from TLS/SSL server, needed if
+ * server uses self-signed certificates
+ *
+ *
+ * /tls
+ * force use of start-TLS to encrypt the session, and reject
+ * connection to servers that do not support it
+ *
+ *
+ * /notls
+ * do not do start-TLS to encrypt the session, even with servers
+ * that support it
+ *
+ *
+ * /readonly
+ * request read-only mailbox open (IMAP only; ignored on NNTP, and
+ * an error with SMTP and POP3)
+ *
+ *
+ *
+ *
+ * @param string $username The user name
+ * @param string $password The password associated with the username
+ * @param int $options The options are a bit mask with one or more of
+ * the following:
+ *
+ *
+ *
+ * OP_READONLY - Open mailbox read-only
+ *
+ *
+ *
+ *
+ * OP_ANONYMOUS - Don't use or update a
+ * .newsrc for news (NNTP only)
+ *
+ *
+ *
+ *
+ * OP_HALFOPEN - For IMAP
+ * and NNTP names, open a connection but
+ * don't open a mailbox.
+ *
+ *
+ *
+ *
+ * CL_EXPUNGE - Expunge mailbox automatically upon mailbox close
+ * (see also imap_delete and
+ * imap_expunge)
+ *
+ *
+ *
+ *
+ * OP_DEBUG - Debug protocol negotiations
+ *
+ *
+ *
+ *
+ * OP_SHORTCACHE - Short (elt-only) caching
+ *
+ *
+ *
+ *
+ * OP_SILENT - Don't pass up events (internal use)
+ *
+ *
+ *
+ *
+ * OP_PROTOTYPE - Return driver prototype
+ *
+ *
+ *
+ *
+ * OP_SECURE - Don't do non-secure authentication
+ *
+ *
+ *
+ * @param int $n_retries Number of maximum connect attempts
+ * @param array|null $params Connection parameters, the following (string) keys maybe used
+ * to set one or more connection parameters:
+ *
+ *
+ *
+ * DISABLE_AUTHENTICATOR - Disable authentication properties
+ *
+ *
+ *
+ * @return resource Returns an IMAP stream on success.
+ * @throws ImapException
+ *
+ */
+function imap_open(string $mailbox, string $username, string $password, int $options = 0, int $n_retries = 0, ?array $params = null)
+{
+ error_clear_last();
+ $result = \imap_open($mailbox, $username, $password, $options, $n_retries, $params);
+ if ($result === false) {
+ throw ImapException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * This function renames on old mailbox to new mailbox (see
+ * imap_open for the format of
+ * mbox names).
+ *
+ * @param resource $imap_stream An IMAP stream returned by
+ * imap_open.
+ * @param string $old_mbox The old mailbox name, see imap_open for more
+ * information
+ * @param string $new_mbox The new mailbox name, see imap_open for more
+ * information
+ * @throws ImapException
+ *
+ */
+function imap_renamemailbox($imap_stream, string $old_mbox, string $new_mbox): void
+{
+ error_clear_last();
+ $result = \imap_renamemailbox($imap_stream, $old_mbox, $new_mbox);
+ if ($result === false) {
+ throw ImapException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Saves a part or the whole body of the specified message.
+ *
+ * @param resource $imap_stream An IMAP stream returned by
+ * imap_open.
+ * @param string|resource $file The path to the saved file as a string, or a valid file descriptor
+ * returned by fopen.
+ * @param int $msg_number The message number
+ * @param string $part_number The part number. It is a string of integers delimited by period which
+ * index into a body part list as per the IMAP4 specification
+ * @param int $options A bitmask with one or more of the following:
+ *
+ *
+ *
+ * FT_UID - The msg_number is a UID
+ *
+ *
+ *
+ *
+ * FT_PEEK - Do not set the \Seen flag if
+ * not already set
+ *
+ *
+ *
+ *
+ * FT_INTERNAL - The return string is in
+ * internal format, will not canonicalize to CRLF.
+ *
+ *
+ *
+ * @throws ImapException
+ *
+ */
+function imap_savebody($imap_stream, $file, int $msg_number, string $part_number = "", int $options = 0): void
+{
+ error_clear_last();
+ $result = \imap_savebody($imap_stream, $file, $msg_number, $part_number, $options);
+ if ($result === false) {
+ throw ImapException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets an upper limit quota on a per mailbox basis.
+ *
+ * @param resource $imap_stream An IMAP stream returned by
+ * imap_open.
+ * @param string $quota_root The mailbox to have a quota set. This should follow the IMAP standard
+ * format for a mailbox: user.name.
+ * @param int $quota_limit The maximum size (in KB) for the quota_root
+ * @throws ImapException
+ *
+ */
+function imap_set_quota($imap_stream, string $quota_root, int $quota_limit): void
+{
+ error_clear_last();
+ $result = \imap_set_quota($imap_stream, $quota_root, $quota_limit);
+ if ($result === false) {
+ throw ImapException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the ACL for a giving mailbox.
+ *
+ * @param resource $imap_stream An IMAP stream returned by
+ * imap_open.
+ * @param string $mailbox The mailbox name, see imap_open for more
+ * information
+ * @param string $id The user to give the rights to.
+ * @param string $rights The rights to give to the user. Passing an empty string will delete
+ * acl.
+ * @throws ImapException
+ *
+ */
+function imap_setacl($imap_stream, string $mailbox, string $id, string $rights): void
+{
+ error_clear_last();
+ $result = \imap_setacl($imap_stream, $mailbox, $id, $rights);
+ if ($result === false) {
+ throw ImapException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Causes a store to add the specified flag to the
+ * flags set for the messages in the specified
+ * sequence.
+ *
+ * @param resource $imap_stream An IMAP stream returned by
+ * imap_open.
+ * @param string $sequence A sequence of message numbers. You can enumerate desired messages
+ * with the X,Y syntax, or retrieve all messages
+ * within an interval with the X:Y syntax
+ * @param string $flag The flags which you can set are \Seen,
+ * \Answered, \Flagged,
+ * \Deleted, and \Draft as
+ * defined by RFC2060.
+ * @param int $options A bit mask that may contain the single option:
+ *
+ *
+ *
+ * ST_UID - The sequence argument contains UIDs
+ * instead of sequence numbers
+ *
+ *
+ *
+ * @throws ImapException
+ *
+ */
+function imap_setflag_full($imap_stream, string $sequence, string $flag, int $options = NIL): void
+{
+ error_clear_last();
+ $result = \imap_setflag_full($imap_stream, $sequence, $flag, $options);
+ if ($result === false) {
+ throw ImapException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Gets and sorts message numbers by the given parameters.
+ *
+ * @param resource $imap_stream An IMAP stream returned by
+ * imap_open.
+ * @param int $criteria Criteria can be one (and only one) of the following:
+ *
+ *
+ *
+ * SORTDATE - message Date
+ *
+ *
+ *
+ *
+ * SORTARRIVAL - arrival date
+ *
+ *
+ *
+ *
+ * SORTFROM - mailbox in first From address
+ *
+ *
+ *
+ *
+ * SORTSUBJECT - message subject
+ *
+ *
+ *
+ *
+ * SORTTO - mailbox in first To address
+ *
+ *
+ *
+ *
+ * SORTCC - mailbox in first cc address
+ *
+ *
+ *
+ *
+ * SORTSIZE - size of message in octets
+ *
+ *
+ *
+ * @param int $reverse Set this to 1 for reverse sorting
+ * @param int $options The options are a bitmask of one or more of the
+ * following:
+ *
+ *
+ *
+ * SE_UID - Return UIDs instead of sequence numbers
+ *
+ *
+ *
+ *
+ * SE_NOPREFETCH - Don't prefetch searched messages
+ *
+ *
+ *
+ * @param string $search_criteria IMAP2-format search criteria string. For details see
+ * imap_search.
+ * @param string $charset MIME character set to use when sorting strings.
+ * @return array Returns an array of message numbers sorted by the given
+ * parameters.
+ * @throws ImapException
+ *
+ */
+function imap_sort($imap_stream, int $criteria, int $reverse, int $options = 0, string $search_criteria = null, string $charset = null): array
+{
+ error_clear_last();
+ $result = \imap_sort($imap_stream, $criteria, $reverse, $options, $search_criteria, $charset);
+ if ($result === false) {
+ throw ImapException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Subscribe to a new mailbox.
+ *
+ * @param resource $imap_stream An IMAP stream returned by
+ * imap_open.
+ * @param string $mailbox The mailbox name, see imap_open for more
+ * information
+ * @throws ImapException
+ *
+ */
+function imap_subscribe($imap_stream, string $mailbox): void
+{
+ error_clear_last();
+ $result = \imap_subscribe($imap_stream, $mailbox);
+ if ($result === false) {
+ throw ImapException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Gets a tree of a threaded message.
+ *
+ * @param resource $imap_stream An IMAP stream returned by
+ * imap_open.
+ * @param int $options
+ * @return array imap_thread returns an associative array containing
+ * a tree of messages threaded by REFERENCES.
+ *
+ * Every message in the current mailbox will be represented by three entries
+ * in the resulting array:
+ *
+ *
+ * $thread["XX.num"] - current message number
+ *
+ *
+ * $thread["XX.next"]
+ *
+ *
+ * $thread["XX.branch"]
+ *
+ *
+ * @throws ImapException
+ *
+ */
+function imap_thread($imap_stream, int $options = SE_FREE): array
+{
+ error_clear_last();
+ $result = \imap_thread($imap_stream, $options);
+ if ($result === false) {
+ throw ImapException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Sets or fetches the imap timeout.
+ *
+ * @param int $timeout_type One of the following:
+ * IMAP_OPENTIMEOUT,
+ * IMAP_READTIMEOUT,
+ * IMAP_WRITETIMEOUT, or
+ * IMAP_CLOSETIMEOUT.
+ * @param int $timeout The timeout, in seconds.
+ * @return mixed If the timeout parameter is set, this function
+ * returns TRUE on success.
+ *
+ * If timeout is not provided or evaluates to -1,
+ * the current timeout value of timeout_type is
+ * returned as an integer.
+ * @throws ImapException
+ *
+ */
+function imap_timeout(int $timeout_type, int $timeout = -1)
+{
+ error_clear_last();
+ $result = \imap_timeout($timeout_type, $timeout);
+ if ($result === false) {
+ throw ImapException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Removes the deletion flag for a specified message, which is set by
+ * imap_delete or imap_mail_move.
+ *
+ * @param resource $imap_stream An IMAP stream returned by
+ * imap_open.
+ * @param int $msg_number The message number
+ * @param int $flags
+ * @throws ImapException
+ *
+ */
+function imap_undelete($imap_stream, int $msg_number, int $flags = 0): void
+{
+ error_clear_last();
+ $result = \imap_undelete($imap_stream, $msg_number, $flags);
+ if ($result === false) {
+ throw ImapException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Unsubscribe from the specified mailbox.
+ *
+ * @param resource $imap_stream An IMAP stream returned by
+ * imap_open.
+ * @param string $mailbox The mailbox name, see imap_open for more
+ * information
+ * @throws ImapException
+ *
+ */
+function imap_unsubscribe($imap_stream, string $mailbox): void
+{
+ error_clear_last();
+ $result = \imap_unsubscribe($imap_stream, $mailbox);
+ if ($result === false) {
+ throw ImapException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Encode a UTF-8 string to modified UTF-7 (as specified in RFC 2060, section 5.1.3).
+ *
+ * @param string $in A UTF-8 encoded string.
+ * @return string Returns in converted to modified UTF-7.
+ * @throws ImapException
+ *
+ */
+function imap_utf8_to_mutf7(string $in): string
+{
+ error_clear_last();
+ $result = \imap_utf8_to_mutf7($in);
+ if ($result === false) {
+ throw ImapException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/info.php b/vendor/thecodingmachine/safe/generated/info.php
new file mode 100644
index 000000000..1a76b406e
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/info.php
@@ -0,0 +1,511 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\InfoException;
+
+/**
+ * Sets the process title visible in tools such as top and
+ * ps. This function is available only in
+ * CLI mode.
+ *
+ * @param string $title The new title.
+ * @throws InfoException
+ *
+ */
+function cli_set_process_title(string $title): void
+{
+ error_clear_last();
+ $result = \cli_set_process_title($title);
+ if ($result === false) {
+ throw InfoException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Loads the PHP extension given by the parameter
+ * library.
+ *
+ * Use extension_loaded to test whether a given
+ * extension is already available or not. This works on both built-in
+ * extensions and dynamically loaded ones (either through php.ini or
+ * dl).
+ *
+ * @param string $library This parameter is only the filename of the
+ * extension to load which also depends on your platform. For example,
+ * the sockets extension (if compiled
+ * as a shared module, not the default!) would be called
+ * sockets.so on Unix platforms whereas it is called
+ * php_sockets.dll on the Windows platform.
+ *
+ * The directory where the extension is loaded from depends on your
+ * platform:
+ *
+ * Windows - If not explicitly set in the php.ini, the extension is
+ * loaded from C:\php5\ by default.
+ *
+ * Unix - If not explicitly set in the php.ini, the default extension
+ * directory depends on
+ *
+ *
+ *
+ * whether PHP has been built with --enable-debug
+ * or not
+ *
+ *
+ *
+ *
+ * whether PHP has been built with (experimental) ZTS (Zend Thread Safety)
+ * support or not
+ *
+ *
+ *
+ *
+ * the current internal ZEND_MODULE_API_NO (Zend
+ * internal module API number, which is basically the date on which a
+ * major module API change happened, e.g. 20010901)
+ *
+ *
+ *
+ * Taking into account the above, the directory then defaults to
+ * &lt;install-dir&gt;/lib/php/extensions/ &lt;debug-or-not&gt;-&lt;zts-or-not&gt;-ZEND_MODULE_API_NO,
+ * e.g.
+ * /usr/local/php/lib/php/extensions/debug-non-zts-20010901
+ * or
+ * /usr/local/php/lib/php/extensions/no-debug-zts-20010901.
+ * @throws InfoException
+ *
+ */
+function dl(string $library): void
+{
+ error_clear_last();
+ $result = \dl($library);
+ if ($result === false) {
+ throw InfoException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Gets the time of the last modification of the main script of execution.
+ *
+ * If you're interested in getting the last modification time
+ * of a different file, consider using filemtime.
+ *
+ * @return int Returns the time of the last modification of the current
+ * page. The value returned is a Unix timestamp, suitable for
+ * feeding to date.
+ * @throws InfoException
+ *
+ */
+function getlastmod(): int
+{
+ error_clear_last();
+ $result = \getlastmod();
+ if ($result === false) {
+ throw InfoException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ *
+ *
+ * @return int Returns the group ID of the current script.
+ * @throws InfoException
+ *
+ */
+function getmygid(): int
+{
+ error_clear_last();
+ $result = \getmygid();
+ if ($result === false) {
+ throw InfoException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Gets the inode of the current script.
+ *
+ * @return int Returns the current script's inode as an integer.
+ * @throws InfoException
+ *
+ */
+function getmyinode(): int
+{
+ error_clear_last();
+ $result = \getmyinode();
+ if ($result === false) {
+ throw InfoException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Gets the current PHP process ID.
+ *
+ * @return int Returns the current PHP process ID.
+ * @throws InfoException
+ *
+ */
+function getmypid(): int
+{
+ error_clear_last();
+ $result = \getmypid();
+ if ($result === false) {
+ throw InfoException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ *
+ *
+ * @return int Returns the user ID of the current script.
+ * @throws InfoException
+ *
+ */
+function getmyuid(): int
+{
+ error_clear_last();
+ $result = \getmyuid();
+ if ($result === false) {
+ throw InfoException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Parses options passed to the script.
+ *
+ * @param string $options
+ * @param array $longopts
+ * @param int|null $optind
+ * @return array|array|array This function will return an array of option / argument pairs.
+ * @throws InfoException
+ *
+ */
+function getopt(string $options, array $longopts = null, ?int &$optind = null): array
+{
+ error_clear_last();
+ if ($optind !== null) {
+ $result = \getopt($options, $longopts, $optind);
+ } elseif ($longopts !== null) {
+ $result = \getopt($options, $longopts);
+ } else {
+ $result = \getopt($options);
+ }
+ if ($result === false) {
+ throw InfoException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Returns the value of the configuration option on success.
+ *
+ * @param string $varname The configuration option name.
+ * @return string Returns the value of the configuration option as a string on success, or an
+ * empty string for null values. Returns FALSE if the
+ * configuration option doesn't exist.
+ * @throws InfoException
+ *
+ */
+function ini_get(string $varname): string
+{
+ error_clear_last();
+ $result = \ini_get($varname);
+ if ($result === false) {
+ throw InfoException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Sets the value of the given configuration option. The configuration option
+ * will keep this new value during the script's execution, and will be restored
+ * at the script's ending.
+ *
+ * @param string $varname Not all the available options can be changed using
+ * ini_set. There is a list of all available options
+ * in the appendix.
+ * @param string|int|float|bool $newvalue The new value for the option.
+ * @return string Returns the old value on success, FALSE on failure.
+ * @throws InfoException
+ *
+ */
+function ini_set(string $varname, $newvalue): string
+{
+ error_clear_last();
+ $result = \ini_set($varname, $newvalue);
+ if ($result === false) {
+ throw InfoException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * This function prints out the credits listing the PHP developers,
+ * modules, etc. It generates the appropriate HTML codes to insert
+ * the information in a page.
+ *
+ * @param int $flag To generate a custom credits page, you may want to use the
+ * flag parameter.
+ *
+ *
+ * Pre-defined phpcredits flags
+ *
+ *
+ *
+ * name
+ * description
+ *
+ *
+ *
+ *
+ * CREDITS_ALL
+ *
+ * All the credits, equivalent to using: CREDITS_DOCS +
+ * CREDITS_GENERAL + CREDITS_GROUP +
+ * CREDITS_MODULES + CREDITS_FULLPAGE.
+ * It generates a complete stand-alone HTML page with the appropriate tags.
+ *
+ *
+ *
+ * CREDITS_DOCS
+ * The credits for the documentation team
+ *
+ *
+ * CREDITS_FULLPAGE
+ *
+ * Usually used in combination with the other flags. Indicates
+ * that a complete stand-alone HTML page needs to be
+ * printed including the information indicated by the other
+ * flags.
+ *
+ *
+ *
+ * CREDITS_GENERAL
+ *
+ * General credits: Language design and concept, PHP authors
+ * and SAPI module.
+ *
+ *
+ *
+ * CREDITS_GROUP
+ * A list of the core developers
+ *
+ *
+ * CREDITS_MODULES
+ *
+ * A list of the extension modules for PHP, and their authors
+ *
+ *
+ *
+ * CREDITS_SAPI
+ *
+ * A list of the server API modules for PHP, and their authors
+ *
+ *
+ *
+ *
+ *
+ * @throws InfoException
+ *
+ */
+function phpcredits(int $flag = CREDITS_ALL): void
+{
+ error_clear_last();
+ $result = \phpcredits($flag);
+ if ($result === false) {
+ throw InfoException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Outputs a large amount of information about the current state of PHP.
+ * This includes information about PHP compilation options and extensions,
+ * the PHP version, server information and environment (if compiled as a
+ * module), the PHP environment, OS version information, paths, master and
+ * local values of configuration options, HTTP headers, and the PHP License.
+ *
+ * Because every system is setup differently, phpinfo is
+ * commonly used to check configuration settings and for available
+ * predefined variables
+ * on a given system.
+ *
+ * phpinfo is also a valuable debugging tool as it
+ * contains all EGPCS (Environment, GET, POST, Cookie, Server) data.
+ *
+ * @param int $what The output may be customized by passing one or more of the
+ * following constants bitwise values summed
+ * together in the optional what parameter.
+ * One can also combine the respective constants or bitwise values
+ * together with the bitwise or operator.
+ *
+ *
+ * phpinfo options
+ *
+ *
+ *
+ * Name (constant)
+ * Value
+ * Description
+ *
+ *
+ *
+ *
+ * INFO_GENERAL
+ * 1
+ *
+ * The configuration line, php.ini location, build date, Web
+ * Server, System and more.
+ *
+ *
+ *
+ * INFO_CREDITS
+ * 2
+ *
+ * PHP Credits. See also phpcredits.
+ *
+ *
+ *
+ * INFO_CONFIGURATION
+ * 4
+ *
+ * Current Local and Master values for PHP directives. See
+ * also ini_get.
+ *
+ *
+ *
+ * INFO_MODULES
+ * 8
+ *
+ * Loaded modules and their respective settings. See also
+ * get_loaded_extensions.
+ *
+ *
+ *
+ * INFO_ENVIRONMENT
+ * 16
+ *
+ * Environment Variable information that's also available in
+ * $_ENV.
+ *
+ *
+ *
+ * INFO_VARIABLES
+ * 32
+ *
+ * Shows all
+ * predefined variables from EGPCS (Environment, GET,
+ * POST, Cookie, Server).
+ *
+ *
+ *
+ * INFO_LICENSE
+ * 64
+ *
+ * PHP License information. See also the license FAQ.
+ *
+ *
+ *
+ * INFO_ALL
+ * -1
+ *
+ * Shows all of the above.
+ *
+ *
+ *
+ *
+ *
+ * @throws InfoException
+ *
+ */
+function phpinfo(int $what = INFO_ALL): void
+{
+ error_clear_last();
+ $result = \phpinfo($what);
+ if ($result === false) {
+ throw InfoException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Adds setting to the server environment. The
+ * environment variable will only exist for the duration of the current
+ * request. At the end of the request the environment is restored to its
+ * original state.
+ *
+ * @param string $setting The setting, like "FOO=BAR"
+ * @throws InfoException
+ *
+ */
+function putenv(string $setting): void
+{
+ error_clear_last();
+ $result = \putenv($setting);
+ if ($result === false) {
+ throw InfoException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the include_path
+ * configuration option for the duration of the script.
+ *
+ * @param string $new_include_path The new value for the include_path
+ * @return string Returns the old include_path on
+ * success.
+ * @throws InfoException
+ *
+ */
+function set_include_path(string $new_include_path): string
+{
+ error_clear_last();
+ $result = \set_include_path($new_include_path);
+ if ($result === false) {
+ throw InfoException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Set the number of seconds a script is allowed to run. If this is reached,
+ * the script returns a fatal error. The default limit is 30 seconds or, if
+ * it exists, the max_execution_time value defined in the
+ * php.ini.
+ *
+ * When called, set_time_limit restarts the timeout
+ * counter from zero. In other words, if the timeout is the default 30
+ * seconds, and 25 seconds into script execution a call such as
+ * set_time_limit(20) is made, the script will run for a
+ * total of 45 seconds before timing out.
+ *
+ * @param int $seconds The maximum execution time, in seconds. If set to zero, no time limit
+ * is imposed.
+ * @throws InfoException
+ *
+ */
+function set_time_limit(int $seconds): void
+{
+ error_clear_last();
+ $result = \set_time_limit($seconds);
+ if ($result === false) {
+ throw InfoException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/ingres-ii.php b/vendor/thecodingmachine/safe/generated/ingres-ii.php
new file mode 100644
index 000000000..9ea8b5f35
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/ingres-ii.php
@@ -0,0 +1,720 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\IngresiiException;
+
+/**
+ * ingres_autocommit is called before opening a
+ * transaction (before the first call to
+ * ingres_query or just after a call to
+ * ingres_rollback or
+ * ingres_commit) to switch the
+ * autocommit mode of the server on or off (when the script begins
+ * the autocommit mode is off).
+ *
+ * When autocommit mode is on, every query is automatically
+ * committed by the server, as if ingres_commit
+ * was called after every call to ingres_query.
+ * To see if autocommit is enabled use,
+ * ingres_autocommit_state.
+ *
+ * By default Ingres will rollback any uncommitted transactions at the end of
+ * a request. Use this function or ingres_commit to
+ * ensure your data is committed to the database.
+ *
+ * @param resource $link The connection link identifier
+ * @throws IngresiiException
+ *
+ */
+function ingres_autocommit($link): void
+{
+ error_clear_last();
+ $result = \ingres_autocommit($link);
+ if ($result === false) {
+ throw IngresiiException::createFromPhpError();
+ }
+}
+
+
+/**
+ * ingres_close closes the connection to
+ * the Ingres server that is associated with the specified link.
+ *
+ * ingres_close is usually unnecessary, as it
+ * will not close persistent connections and all non-persistent connections
+ * are automatically closed at the end of the script.
+ *
+ * @param resource $link The connection link identifier
+ * @throws IngresiiException
+ *
+ */
+function ingres_close($link): void
+{
+ error_clear_last();
+ $result = \ingres_close($link);
+ if ($result === false) {
+ throw IngresiiException::createFromPhpError();
+ }
+}
+
+
+/**
+ * ingres_commit commits the currently open
+ * transaction, making all changes made to the database permanent.
+ *
+ * This closes the transaction. A new transaction can be opened by sending a
+ * query with ingres_query.
+ *
+ * You can also have the server commit automatically after every
+ * query by calling ingres_autocommit before
+ * opening the transaction.
+ *
+ * By default Ingres will roll back any uncommitted transactions at the end of
+ * a request. Use this function or ingres_autocommit to
+ * ensure your that data is committed to the database.
+ *
+ * @param resource $link The connection link identifier
+ * @throws IngresiiException
+ *
+ */
+function ingres_commit($link): void
+{
+ error_clear_last();
+ $result = \ingres_commit($link);
+ if ($result === false) {
+ throw IngresiiException::createFromPhpError();
+ }
+}
+
+
+/**
+ * ingres_connect opens a connection with the
+ * given Ingres database.
+ *
+ * The connection is closed when the script ends or when
+ * ingres_close is called on this link.
+ *
+ * @param string $database The database name. Must follow the syntax:
+ *
+ * [vnode::]dbname[/svr_class]
+ * @param string $username The Ingres user name
+ * @param string $password The password associated with username
+ * @param array $options ingres_connect options
+ *
+ *
+ *
+ *
+ * Option name
+ * Option type
+ * Description
+ * Example
+ *
+ *
+ *
+ *
+ * date_century_boundary
+ * integer
+ * The threshold by which a 2-digit year is determined to be in
+ * the current century or in the next century. Equivalent to II_DATE_CENTURY_BOUNDARY.
+ * 50
+ *
+ *
+ * group
+ * string
+ * Specifies the group ID of the user, equivalent to the "-G"
+ * flag
+ * payroll
+ *
+ *
+ * role
+ * string
+ * The role ID of the application. If a role password is
+ * required, the parameter value should be specified as "role/password"
+ *
+ *
+ * effective_user
+ * string
+ * The ingres user account being impersonated, equivalent to the "-u" flag
+ * another_user
+ *
+ *
+ * dbms_password
+ * string
+ * The internal database password for the user connecting to Ingres
+ * s3cr3t
+ *
+ *
+ * table_structure
+ * string
+ *
+ * The default structure for new tables.
+ * Valid values for table_structure are:
+ *
+ * INGRES_STRUCTURE_BTREE
+ * INGRES_STRUCTURE_HASH
+ * INGRES_STRUCTURE_HEAP
+ * INGRES_STRUCTURE_ISAM
+ * INGRES_STRUCTURE_CBTREE
+ * INGRES_STRUCTURE_CISAM
+ * INGRES_STRUCTURE_CHASH
+ * INGRES_STRUCTURE_CHEAP
+ *
+ *
+ *
+ * INGRES_STRUCTURE_BTREE
+ *
+ *
+ * index_structure
+ * string
+ *
+ * The default structure for new secondary indexes. Valid values
+ * for index_structure are:
+ *
+ * INGRES_STRUCTURE_CBTREE
+ * INGRES_STRUCTURE_CISAM
+ * INGRES_STRUCTURE_CHASH
+ * INGRES_STRUCTURE_BTREE
+ * INGRES_STRUCTURE_HASH
+ * INGRES_STRUCTURE_ISAM
+ *
+ *
+ *
+ * INGRES_STRUCTURE_HASH
+ *
+ *
+ * login_local
+ * boolean
+ * Determines how the connection user ID and password are
+ * used when a VNODE is included in the target database string.
+ * If set to TRUE, the user ID and password are used to locally access
+ * the VNODE, and the VNODE login information is used to establish the DBMS
+ * connection. If set to FALSE, the process user ID is used to access
+ * the VNODE, and the connection user ID and password are used in place
+ * of the VNODE login information to establish the DBMS connection.
+ * This parameter is ignored if no VNODE is included in the target
+ * database string. The default is FALSE.
+ * TRUE
+ *
+ *
+ * timezone
+ * string
+ * Controls the timezone of the session. If not set it will
+ * default to the value defined by II_TIMEZONE_NAME. If
+ * II_TIMEZONE_NAME is not defined, NA-PACIFIC (GMT-8 with Daylight
+ * Savings) is used.
+ *
+ *
+ * date_format
+ * integer
+ * Sets the allowable input and output format for Ingres dates.
+ * Defaults to the value defined by II_DATE_FORMAT. If II_DATE_FORMAT is
+ * not set the default date format is US, e.g. mm/dd/yy. Valid values
+ * for date_format are:
+ *
+ * INGRES_DATE_DMY
+ * INGRES_DATE_FINISH
+ * INGRES_DATE_GERMAN
+ * INGRES_DATE_ISO
+ * INGRES_DATE_ISO4
+ * INGRES_DATE_MDY
+ * INGRES_DATE_MULTINATIONAL
+ * INGRES_DATE_MULTINATIONAL4
+ * INGRES_DATE_YMD
+ * INGRES_DATE_US
+ *
+ *
+ *
+ * INGRES_DATE_MULTINATIONAL4
+ *
+ *
+ * decimal_separator
+ * string
+ * The character identifier for decimal data
+ * ","
+ *
+ *
+ * money_lort
+ * integer
+ * Leading or trailing currency sign. Valid values for money_lort
+ * are:
+ *
+ * INGRES_MONEY_LEADING
+ * INGRES_MONEY_TRAILING
+ *
+ *
+ *
+ * INGRES_MONEY_TRAILING
+ *
+ *
+ * money_sign
+ * string
+ * The currency symbol to be used with the MONEY datatype
+ * €
+ *
+ *
+ * money_precision
+ * integer
+ * The precision of the MONEY datatype
+ * 3
+ *
+ *
+ * float4_precision
+ * integer
+ * Precision of the FLOAT4 datatype
+ * 10
+ *
+ *
+ * float8_precision
+ * integer
+ * Precision of the FLOAT8 data
+ * 10
+ *
+ *
+ * blob_segment_length
+ * integer
+ * The amount of data in bytes to fetch at a time when retrieving
+ * BLOB or CLOB data, defaults to 4096 bytes when not explicitly set
+ * 8192
+ *
+ *
+ *
+ *
+ *
+ * The default structure for new tables.
+ * Valid values for table_structure are:
+ *
+ * INGRES_STRUCTURE_BTREE
+ * INGRES_STRUCTURE_HASH
+ * INGRES_STRUCTURE_HEAP
+ * INGRES_STRUCTURE_ISAM
+ * INGRES_STRUCTURE_CBTREE
+ * INGRES_STRUCTURE_CISAM
+ * INGRES_STRUCTURE_CHASH
+ * INGRES_STRUCTURE_CHEAP
+ *
+ *
+ * The default structure for new secondary indexes. Valid values
+ * for index_structure are:
+ *
+ * INGRES_STRUCTURE_CBTREE
+ * INGRES_STRUCTURE_CISAM
+ * INGRES_STRUCTURE_CHASH
+ * INGRES_STRUCTURE_BTREE
+ * INGRES_STRUCTURE_HASH
+ * INGRES_STRUCTURE_ISAM
+ *
+ *
+ * Sets the allowable input and output format for Ingres dates.
+ * Defaults to the value defined by II_DATE_FORMAT. If II_DATE_FORMAT is
+ * not set the default date format is US, e.g. mm/dd/yy. Valid values
+ * for date_format are:
+ *
+ * INGRES_DATE_DMY
+ * INGRES_DATE_FINISH
+ * INGRES_DATE_GERMAN
+ * INGRES_DATE_ISO
+ * INGRES_DATE_ISO4
+ * INGRES_DATE_MDY
+ * INGRES_DATE_MULTINATIONAL
+ * INGRES_DATE_MULTINATIONAL4
+ * INGRES_DATE_YMD
+ * INGRES_DATE_US
+ *
+ *
+ * Leading or trailing currency sign. Valid values for money_lort
+ * are:
+ *
+ * INGRES_MONEY_LEADING
+ * INGRES_MONEY_TRAILING
+ *
+ * @return resource Returns a Ingres link resource on success
+ * @throws IngresiiException
+ *
+ */
+function ingres_connect(string $database = null, string $username = null, string $password = null, array $options = null)
+{
+ error_clear_last();
+ if ($options !== null) {
+ $result = \ingres_connect($database, $username, $password, $options);
+ } elseif ($password !== null) {
+ $result = \ingres_connect($database, $username, $password);
+ } elseif ($username !== null) {
+ $result = \ingres_connect($database, $username);
+ } elseif ($database !== null) {
+ $result = \ingres_connect($database);
+ } else {
+ $result = \ingres_connect();
+ }
+ if ($result === false) {
+ throw IngresiiException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Execute a query prepared using ingres_prepare.
+ *
+ * @param resource $result The result query identifier
+ * @param array $params An array of parameter values to be used with the query
+ * @param string $types A string containing a sequence of types for the parameter values
+ * passed. See the types parameter in
+ * ingres_query for the list of type codes.
+ * @throws IngresiiException
+ *
+ */
+function ingres_execute($result, array $params = null, string $types = null): void
+{
+ error_clear_last();
+ if ($types !== null) {
+ $result = \ingres_execute($result, $params, $types);
+ } elseif ($params !== null) {
+ $result = \ingres_execute($result, $params);
+ } else {
+ $result = \ingres_execute($result);
+ }
+ if ($result === false) {
+ throw IngresiiException::createFromPhpError();
+ }
+}
+
+
+/**
+ * ingres_field_name returns the name of a field
+ * in a query result.
+ *
+ * @param resource $result The query result identifier
+ * @param int $index index is the field whose name will be
+ * retrieved.
+ *
+ * The possible values of index depend upon
+ * the value
+ * of ingres.array_index_start.
+ * If ingres.array_index_start
+ * is 1 (the default)
+ * then index must be
+ * between 1 and the value returned
+ * by ingres_num_fields. If ingres.array_index_start
+ * is 0 then index must
+ * be between 0
+ * and ingres_num_fields -
+ * 1.
+ * @return string Returns the name of a field
+ * in a query result
+ * @throws IngresiiException
+ *
+ */
+function ingres_field_name($result, int $index): string
+{
+ error_clear_last();
+ $result = \ingres_field_name($result, $index);
+ if ($result === false) {
+ throw IngresiiException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Get the type of a field in a query result.
+ *
+ * @param resource $result The query result identifier
+ * @param int $index index is the field whose type will be
+ * retrieved.
+ *
+ * The possible values of index depend upon
+ * the value
+ * of ingres.array_index_start.
+ * If ingres.array_index_start
+ * is 1 (the default)
+ * then index must be
+ * between 1 and the value returned
+ * by ingres_num_fields. If ingres.array_index_start
+ * is 0 then index must
+ * be between 0
+ * and ingres_num_fields -
+ * 1.
+ * @return string ingres_field_type returns the type of a
+ * field in a query result. Examples of
+ * types returned are IIAPI_BYTE_TYPE,
+ * IIAPI_CHA_TYPE, IIAPI_DTE_TYPE,
+ * IIAPI_FLT_TYPE, IIAPI_INT_TYPE,
+ * IIAPI_VCH_TYPE. Some of these types can map to more
+ * than one SQL type depending on the length of the field (see
+ * ingres_field_length). For example
+ * IIAPI_FLT_TYPE can be a float4 or a float8. For detailed
+ * information, see the Ingres OpenAPI User Guide, Appendix
+ * "Data Types" in the Ingres documentation.
+ * @throws IngresiiException
+ *
+ */
+function ingres_field_type($result, int $index): string
+{
+ error_clear_last();
+ $result = \ingres_field_type($result, $index);
+ if ($result === false) {
+ throw IngresiiException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ *
+ *
+ * @param resource $result The query result identifier
+ * @throws IngresiiException
+ *
+ */
+function ingres_free_result($result): void
+{
+ error_clear_last();
+ $result = \ingres_free_result($result);
+ if ($result === false) {
+ throw IngresiiException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Open a persistent connection to an Ingres database.
+ *
+ * There are only two differences between this function and
+ * ingres_connect: First, when connecting, the
+ * function will initially try to find a (persistent) link that is
+ * already opened with the same parameters. If one is found, an
+ * identifier for it will be returned instead of opening a new
+ * connection. Second, the connection to the Ingres server will not
+ * be closed when the execution of the script ends. Instead, the
+ * link will remain open for future use
+ * (ingres_close will not close links
+ * established by ingres_pconnect). This type
+ * of link is therefore called "persistent".
+ *
+ * @param string $database The database name. Must follow the syntax:
+ *
+ * [vnode::]dbname[/svr_class]
+ * @param string $username The Ingres user name
+ * @param string $password The password associated with username
+ * @param array $options See ingres_connect for the list of options that
+ * can be passed
+ * @return resource Returns an Ingres link resource on success
+ * @throws IngresiiException
+ *
+ */
+function ingres_pconnect(string $database = null, string $username = null, string $password = null, array $options = null)
+{
+ error_clear_last();
+ if ($options !== null) {
+ $result = \ingres_pconnect($database, $username, $password, $options);
+ } elseif ($password !== null) {
+ $result = \ingres_pconnect($database, $username, $password);
+ } elseif ($username !== null) {
+ $result = \ingres_pconnect($database, $username);
+ } elseif ($database !== null) {
+ $result = \ingres_pconnect($database);
+ } else {
+ $result = \ingres_pconnect();
+ }
+ if ($result === false) {
+ throw IngresiiException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * This function is used to position the cursor associated with the result
+ * resource before issuing a fetch. If ingres.array_index_start
+ * is set to 0 then the first row is 0 else it is 1.
+ * ingres_result_seek can be used only with queries that
+ * make use of scrollable
+ * cursors. It cannot be used with
+ * ingres_unbuffered_query.
+ *
+ * @param resource $result The result identifier for a query
+ * @param int $position The row to position the cursor on. If ingres.array_index_start
+ * is set to 0, then the first row is 0, else it is 1
+ * @throws IngresiiException
+ *
+ */
+function ingres_result_seek($result, int $position): void
+{
+ error_clear_last();
+ $result = \ingres_result_seek($result, $position);
+ if ($result === false) {
+ throw IngresiiException::createFromPhpError();
+ }
+}
+
+
+/**
+ * ingres_rollback rolls back the currently
+ * open transaction, actually cancelling all changes made to the
+ * database during the transaction.
+ *
+ * This closes the transaction. A new transaction can be opened by sending a
+ * query with ingres_query.
+ *
+ * @param resource $link The connection link identifier
+ * @throws IngresiiException
+ *
+ */
+function ingres_rollback($link): void
+{
+ error_clear_last();
+ $result = \ingres_rollback($link);
+ if ($result === false) {
+ throw IngresiiException::createFromPhpError();
+ }
+}
+
+
+/**
+ * ingres_set_environment is called to set environmental
+ * options that affect the output of certain values from Ingres, such as the
+ * timezone, date format, decimal character separator, and float precision.
+ *
+ * @param resource $link The connection link identifier
+ * @param array $options An enumerated array of option name/value pairs. The following table
+ * lists the option name and the expected type
+ *
+ *
+ *
+ *
+ *
+ * Option name
+ * Option type
+ * Description
+ * Example
+ *
+ *
+ *
+ *
+ * date_century_boundary
+ * integer
+ * The threshold by which a 2-digit year is determined to be in
+ * the current century or in the next century. Equivalent to II_DATE_CENTURY_BOUNDARY
+ * 50
+ *
+ *
+ * timezone
+ * string
+ * Controls the timezone of the session. If not set, it will
+ * default the value defined by II_TIMEZONE_NAME. If
+ * II_TIMEZONE_NAME is not defined, NA-PACIFIC (GMT-8 with Daylight
+ * Savings) is used.
+ * UNITED-KINGDOM
+ *
+ *
+ * date_format
+ * integer
+ * Sets the allowable input and output format for Ingres dates.
+ * Defaults to the value defined by II_DATE_FORMAT. If II_DATE_FORMAT is
+ * not set, the default date format is US, for example mm/dd/yy. Valid values
+ * for date_format are:
+ *
+ * INGRES_DATE_DMY
+ * INGRES_DATE_FINISH
+ * INGRES_DATE_GERMAN
+ * INGRES_DATE_ISO
+ * INGRES_DATE_ISO4
+ * INGRES_DATE_MDY
+ * INGRES_DATE_MULTINATIONAL
+ * INGRES_DATE_MULTINATIONAL4
+ * INGRES_DATE_YMD
+ * INGRES_DATE_US
+ *
+ *
+ *
+ * INGRES_DATE_ISO4
+ *
+ *
+ * decimal_separator
+ * string
+ * The character identifier for decimal data
+ * ","
+ *
+ *
+ * money_lort
+ * integer
+ * Leading or trailing currency sign. Valid values for money_lort
+ * are:
+ *
+ * INGRES_MONEY_LEADING
+ * INGRES_MONEY_TRAILING
+ *
+ *
+ *
+ * INGRES_MONEY_LEADING
+ *
+ *
+ * money_sign
+ * string
+ * The currency symbol to be used with the MONEY datatype
+ * €
+ *
+ *
+ * money_precision
+ * integer
+ * The precision of the MONEY datatype
+ * 2
+ *
+ *
+ * float4_precision
+ * integer
+ * Precision of the FLOAT4 datatype
+ * 10
+ *
+ *
+ * float8_precision
+ * integer
+ * Precision of the FLOAT8 data
+ * 10
+ *
+ *
+ * blob_segment_length
+ * integer
+ * The amount of data in bytes to fetch at a time when retrieving
+ * BLOB or CLOB data. Defaults to 4096 bytes when not set explicitly
+ * 8192
+ *
+ *
+ *
+ *
+ *
+ * Sets the allowable input and output format for Ingres dates.
+ * Defaults to the value defined by II_DATE_FORMAT. If II_DATE_FORMAT is
+ * not set, the default date format is US, for example mm/dd/yy. Valid values
+ * for date_format are:
+ *
+ * INGRES_DATE_DMY
+ * INGRES_DATE_FINISH
+ * INGRES_DATE_GERMAN
+ * INGRES_DATE_ISO
+ * INGRES_DATE_ISO4
+ * INGRES_DATE_MDY
+ * INGRES_DATE_MULTINATIONAL
+ * INGRES_DATE_MULTINATIONAL4
+ * INGRES_DATE_YMD
+ * INGRES_DATE_US
+ *
+ *
+ * Leading or trailing currency sign. Valid values for money_lort
+ * are:
+ *
+ * INGRES_MONEY_LEADING
+ * INGRES_MONEY_TRAILING
+ *
+ * @throws IngresiiException
+ *
+ */
+function ingres_set_environment($link, array $options): void
+{
+ error_clear_last();
+ $result = \ingres_set_environment($link, $options);
+ if ($result === false) {
+ throw IngresiiException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/inotify.php b/vendor/thecodingmachine/safe/generated/inotify.php
new file mode 100644
index 000000000..2e0704159
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/inotify.php
@@ -0,0 +1,44 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\InotifyException;
+
+/**
+ * Initialize an inotify instance for use with
+ * inotify_add_watch
+ *
+ * @return resource A stream resource.
+ * @throws InotifyException
+ *
+ */
+function inotify_init()
+{
+ error_clear_last();
+ $result = \inotify_init();
+ if ($result === false) {
+ throw InotifyException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * inotify_rm_watch removes the watch
+ * watch_descriptor from the inotify instance
+ * inotify_instance.
+ *
+ * @param resource $inotify_instance Resource returned by
+ * inotify_init
+ * @param int $watch_descriptor Watch to remove from the instance
+ * @throws InotifyException
+ *
+ */
+function inotify_rm_watch($inotify_instance, int $watch_descriptor): void
+{
+ error_clear_last();
+ $result = \inotify_rm_watch($inotify_instance, $watch_descriptor);
+ if ($result === false) {
+ throw InotifyException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/json.php b/vendor/thecodingmachine/safe/generated/json.php
new file mode 100644
index 000000000..dad455ccd
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/json.php
@@ -0,0 +1,73 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\JsonException;
+
+/**
+ * Returns a string containing the JSON representation of the supplied
+ * value.
+ *
+ * The encoding is affected by the supplied options
+ * and additionally the encoding of float values depends on the value of
+ * serialize_precision.
+ *
+ * @param mixed $value The value being encoded. Can be any type except
+ * a resource.
+ *
+ * All string data must be UTF-8 encoded.
+ *
+ * PHP implements a superset of JSON as specified in the original
+ * RFC 7159.
+ * @param int $options Bitmask consisting of
+ * JSON_FORCE_OBJECT,
+ * JSON_HEX_QUOT,
+ * JSON_HEX_TAG,
+ * JSON_HEX_AMP,
+ * JSON_HEX_APOS,
+ * JSON_INVALID_UTF8_IGNORE,
+ * JSON_INVALID_UTF8_SUBSTITUTE,
+ * JSON_NUMERIC_CHECK,
+ * JSON_PARTIAL_OUTPUT_ON_ERROR,
+ * JSON_PRESERVE_ZERO_FRACTION,
+ * JSON_PRETTY_PRINT,
+ * JSON_UNESCAPED_LINE_TERMINATORS,
+ * JSON_UNESCAPED_SLASHES,
+ * JSON_UNESCAPED_UNICODE,
+ * JSON_THROW_ON_ERROR.
+ * The behaviour of these constants is described on the
+ * JSON constants page.
+ * @param int $depth Set the maximum depth. Must be greater than zero.
+ * @return string Returns a JSON encoded string on success.
+ * @throws JsonException
+ *
+ */
+function json_encode($value, int $options = 0, int $depth = 512): string
+{
+ error_clear_last();
+ $result = \json_encode($value, $options, $depth);
+ if ($result === false) {
+ throw JsonException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Returns the error string of the last json_encode or json_decode
+ * call, which did not specify JSON_THROW_ON_ERROR.
+ *
+ * @return string Returns the error message on success, "No error" if no
+ * error has occurred.
+ * @throws JsonException
+ *
+ */
+function json_last_error_msg(): string
+{
+ error_clear_last();
+ $result = \json_last_error_msg();
+ if ($result === false) {
+ throw JsonException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/ldap.php b/vendor/thecodingmachine/safe/generated/ldap.php
new file mode 100644
index 000000000..871f29580
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/ldap.php
@@ -0,0 +1,1603 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\LdapException;
+
+/**
+ * Does the same thing as ldap_add but returns the LDAP result resource to be parsed with ldap_parse_result.
+ *
+ * @param resource $link_identifier
+ * @param string $dn
+ * @param array $entry
+ * @param array $serverctrls
+ * @return resource Returns an LDAP result identifier.
+ * @throws LdapException
+ *
+ */
+function ldap_add_ext($link_identifier, string $dn, array $entry, array $serverctrls = null)
+{
+ error_clear_last();
+ $result = \ldap_add_ext($link_identifier, $dn, $entry, $serverctrls);
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Add entries in the LDAP directory.
+ *
+ * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect.
+ * @param string $dn The distinguished name of an LDAP entity.
+ * @param array $entry An array that specifies the information about the entry. The values in
+ * the entries are indexed by individual attributes.
+ * In case of multiple values for an attribute, they are indexed using
+ * integers starting with 0.
+ *
+ *
+ *
+ * ]]>
+ *
+ *
+ * @param array $serverctrls Array of LDAP Controls to send with the request.
+ * @throws LdapException
+ *
+ */
+function ldap_add($link_identifier, string $dn, array $entry, array $serverctrls = null): void
+{
+ error_clear_last();
+ $result = \ldap_add($link_identifier, $dn, $entry, $serverctrls);
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Does the same thing as ldap_bind but returns the LDAP result resource to be parsed with ldap_parse_result.
+ *
+ * @param resource $link_identifier
+ * @param string|null $bind_rdn
+ * @param string|null $bind_password
+ * @param array $serverctrls
+ * @return resource Returns an LDAP result identifier.
+ * @throws LdapException
+ *
+ */
+function ldap_bind_ext($link_identifier, ?string $bind_rdn = null, ?string $bind_password = null, array $serverctrls = null)
+{
+ error_clear_last();
+ $result = \ldap_bind_ext($link_identifier, $bind_rdn, $bind_password, $serverctrls);
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Binds to the LDAP directory with specified RDN and password.
+ *
+ * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect.
+ * @param string|null $bind_rdn
+ * @param string|null $bind_password
+ * @throws LdapException
+ *
+ */
+function ldap_bind($link_identifier, ?string $bind_rdn = null, ?string $bind_password = null): void
+{
+ error_clear_last();
+ $result = \ldap_bind($link_identifier, $bind_rdn, $bind_password);
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Retrieve the pagination information send by the server.
+ *
+ * @param resource $link An LDAP link identifier, returned by ldap_connect.
+ * @param resource $result
+ * @param string|null $cookie An opaque structure sent by the server.
+ * @param int|null $estimated The estimated number of entries to retrieve.
+ * @throws LdapException
+ *
+ */
+function ldap_control_paged_result_response($link, $result, ?string &$cookie = null, ?int &$estimated = null): void
+{
+ error_clear_last();
+ $result = \ldap_control_paged_result_response($link, $result, $cookie, $estimated);
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Enable LDAP pagination by sending the pagination control (page size, cookie...).
+ *
+ * @param resource $link An LDAP link identifier, returned by ldap_connect.
+ * @param int $pagesize The number of entries by page.
+ * @param bool $iscritical Indicates whether the pagination is critical or not.
+ * If true and if the server doesn't support pagination, the search
+ * will return no result.
+ * @param string $cookie An opaque structure sent by the server
+ * (ldap_control_paged_result_response).
+ * @throws LdapException
+ *
+ */
+function ldap_control_paged_result($link, int $pagesize, bool $iscritical = false, string $cookie = ""): void
+{
+ error_clear_last();
+ $result = \ldap_control_paged_result($link, $pagesize, $iscritical, $cookie);
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Returns the number of entries stored in the result of previous search
+ * operations.
+ *
+ * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect.
+ * @param resource $result_identifier The internal LDAP result.
+ * @return int Returns number of entries in the result.
+ * @throws LdapException
+ *
+ */
+function ldap_count_entries($link_identifier, $result_identifier): int
+{
+ error_clear_last();
+ $result = \ldap_count_entries($link_identifier, $result_identifier);
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Does the same thing as ldap_delete but returns the LDAP result resource to be parsed with ldap_parse_result.
+ *
+ * @param resource $link_identifier
+ * @param string $dn
+ * @param array $serverctrls
+ * @return resource Returns an LDAP result identifier.
+ * @throws LdapException
+ *
+ */
+function ldap_delete_ext($link_identifier, string $dn, array $serverctrls = null)
+{
+ error_clear_last();
+ $result = \ldap_delete_ext($link_identifier, $dn, $serverctrls);
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Deletes a particular entry in LDAP directory.
+ *
+ * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect.
+ * @param string $dn The distinguished name of an LDAP entity.
+ * @param array $serverctrls Array of LDAP Controls to send with the request.
+ * @throws LdapException
+ *
+ */
+function ldap_delete($link_identifier, string $dn, array $serverctrls = null): void
+{
+ error_clear_last();
+ $result = \ldap_delete($link_identifier, $dn, $serverctrls);
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Performs a PASSWD extended operation.
+ *
+ * @param resource $link An LDAP link identifier, returned by ldap_connect.
+ * @param string $user dn of the user to change the password of.
+ * @param string $oldpw The old password of this user. May be ommited depending of server configuration.
+ * @param string $newpw The new password for this user. May be omitted or empty to have a generated password.
+ * @param array $serverctrls If provided, a password policy request control is send with the request and this is
+ * filled with an array of LDAP Controls
+ * returned with the request.
+ * @return mixed Returns the generated password if newpw is empty or omitted.
+ * Otherwise returns TRUE on success.
+ * @throws LdapException
+ *
+ */
+function ldap_exop_passwd($link, string $user = "", string $oldpw = "", string $newpw = "", array &$serverctrls = null)
+{
+ error_clear_last();
+ $result = \ldap_exop_passwd($link, $user, $oldpw, $newpw, $serverctrls);
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Performs a WHOAMI extended operation and returns the data.
+ *
+ * @param resource $link An LDAP link identifier, returned by ldap_connect.
+ * @return string The data returned by the server.
+ * @throws LdapException
+ *
+ */
+function ldap_exop_whoami($link): string
+{
+ error_clear_last();
+ $result = \ldap_exop_whoami($link);
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Performs an extended operation on the specified link with
+ * reqoid the OID of the operation and
+ * reqdata the data.
+ *
+ * @param resource $link An LDAP link identifier, returned by ldap_connect.
+ * @param string $reqoid The extended operation request OID. You may use one of LDAP_EXOP_START_TLS, LDAP_EXOP_MODIFY_PASSWD, LDAP_EXOP_REFRESH, LDAP_EXOP_WHO_AM_I, LDAP_EXOP_TURN, or a string with the OID of the operation you want to send.
+ * @param string $reqdata The extended operation request data. May be NULL for some operations like LDAP_EXOP_WHO_AM_I, may also need to be BER encoded.
+ * @param array|null $serverctrls Array of LDAP Controls to send with the request.
+ * @param string|null $retdata Will be filled with the extended operation response data if provided.
+ * If not provided you may use ldap_parse_exop on the result object
+ * later to get this data.
+ * @param string|null $retoid Will be filled with the response OID if provided, usually equal to the request OID.
+ * @return mixed When used with retdata, returns TRUE on success.
+ * When used without retdata, returns a result identifier.
+ * @throws LdapException
+ *
+ */
+function ldap_exop($link, string $reqoid, string $reqdata = null, ?array $serverctrls = null, ?string &$retdata = null, ?string &$retoid = null)
+{
+ error_clear_last();
+ $result = \ldap_exop($link, $reqoid, $reqdata, $serverctrls, $retdata, $retoid);
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Splits the DN returned by ldap_get_dn and breaks it
+ * up into its component parts. Each part is known as Relative Distinguished
+ * Name, or RDN.
+ *
+ * @param string $dn The distinguished name of an LDAP entity.
+ * @param int $with_attrib Used to request if the RDNs are returned with only values or their
+ * attributes as well. To get RDNs with the attributes (i.e. in
+ * attribute=value format) set with_attrib to 0
+ * and to get only values set it to 1.
+ * @return array Returns an array of all DN components.
+ * The first element in the array has count key and
+ * represents the number of returned values, next elements are numerically
+ * indexed DN components.
+ * @throws LdapException
+ *
+ */
+function ldap_explode_dn(string $dn, int $with_attrib): array
+{
+ error_clear_last();
+ $result = \ldap_explode_dn($dn, $with_attrib);
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Gets the first attribute in the given entry. Remaining attributes are
+ * retrieved by calling ldap_next_attribute successively.
+ *
+ * Similar to reading entries, attributes are also read one by one from a
+ * particular entry.
+ *
+ * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect.
+ * @param resource $result_entry_identifier
+ * @return string Returns the first attribute in the entry on success and FALSE on
+ * error.
+ * @throws LdapException
+ *
+ */
+function ldap_first_attribute($link_identifier, $result_entry_identifier): string
+{
+ error_clear_last();
+ $result = \ldap_first_attribute($link_identifier, $result_entry_identifier);
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Returns the entry identifier for first entry in the result. This entry
+ * identifier is then supplied to ldap_next_entry
+ * routine to get successive entries from the result.
+ *
+ * Entries in the LDAP result are read sequentially using the
+ * ldap_first_entry and
+ * ldap_next_entry functions.
+ *
+ * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect.
+ * @param resource $result_identifier
+ * @return resource Returns the result entry identifier for the first entry on success and
+ * FALSE on error.
+ * @throws LdapException
+ *
+ */
+function ldap_first_entry($link_identifier, $result_identifier)
+{
+ error_clear_last();
+ $result = \ldap_first_entry($link_identifier, $result_identifier);
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Frees up the memory allocated internally to store the result. All result
+ * memory will be automatically freed when the script terminates.
+ *
+ * Typically all the memory allocated for the LDAP result gets freed at the
+ * end of the script. In case the script is making successive searches which
+ * return large result sets, ldap_free_result could be
+ * called to keep the runtime memory usage by the script low.
+ *
+ * @param resource $result_identifier
+ * @throws LdapException
+ *
+ */
+function ldap_free_result($result_identifier): void
+{
+ error_clear_last();
+ $result = \ldap_free_result($result_identifier);
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Reads attributes and values from an entry in the search result.
+ *
+ * Having located a specific entry in the directory, you can find out what
+ * information is held for that entry by using this call. You would use this
+ * call for an application which "browses" directory entries and/or where you
+ * do not know the structure of the directory entries. In many applications
+ * you will be searching for a specific attribute such as an email address or
+ * a surname, and won't care what other data is held.
+ *
+ *
+ *
+ *
+ *
+ *
+ * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect.
+ * @param resource $result_entry_identifier
+ * @return array Returns a complete entry information in a multi-dimensional array
+ * on success and FALSE on error.
+ * @throws LdapException
+ *
+ */
+function ldap_get_attributes($link_identifier, $result_entry_identifier): array
+{
+ error_clear_last();
+ $result = \ldap_get_attributes($link_identifier, $result_entry_identifier);
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Finds out the DN of an entry in the result.
+ *
+ * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect.
+ * @param resource $result_entry_identifier
+ * @return string Returns the DN of the result entry and FALSE on error.
+ * @throws LdapException
+ *
+ */
+function ldap_get_dn($link_identifier, $result_entry_identifier): string
+{
+ error_clear_last();
+ $result = \ldap_get_dn($link_identifier, $result_entry_identifier);
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Reads multiple entries from the given result, and then reading the
+ * attributes and multiple values.
+ *
+ * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect.
+ * @param resource $result_identifier
+ * @return array Returns a complete result information in a multi-dimensional array on
+ * success and FALSE on error.
+ *
+ * The structure of the array is as follows.
+ * The attribute index is converted to lowercase. (Attributes are
+ * case-insensitive for directory servers, but not when used as
+ * array indices.)
+ *
+ *
+ *
+ *
+ *
+ * @throws LdapException
+ *
+ */
+function ldap_get_entries($link_identifier, $result_identifier): array
+{
+ error_clear_last();
+ $result = \ldap_get_entries($link_identifier, $result_identifier);
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Sets retval to the value of the specified option.
+ *
+ * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect.
+ * @param int $option The parameter option can be one of:
+ *
+ *
+ *
+ *
+ * Option
+ * Type
+ * since
+ *
+ *
+ *
+ *
+ * LDAP_OPT_DEREF
+ * integer
+ *
+ *
+ *
+ * LDAP_OPT_SIZELIMIT
+ * integer
+ *
+ *
+ *
+ * LDAP_OPT_TIMELIMIT
+ * integer
+ *
+ *
+ *
+ * LDAP_OPT_NETWORK_TIMEOUT
+ * integer
+ *
+ *
+ *
+ * LDAP_OPT_PROTOCOL_VERSION
+ * integer
+ *
+ *
+ *
+ * LDAP_OPT_ERROR_NUMBER
+ * integer
+ *
+ *
+ *
+ * LDAP_OPT_DIAGNOSTIC_MESSAGE
+ * integer
+ *
+ *
+ *
+ * LDAP_OPT_REFERRALS
+ * bool
+ *
+ *
+ *
+ * LDAP_OPT_RESTART
+ * bool
+ *
+ *
+ *
+ * LDAP_OPT_HOST_NAME
+ * string
+ *
+ *
+ *
+ * LDAP_OPT_ERROR_STRING
+ * string
+ *
+ *
+ *
+ * LDAP_OPT_MATCHED_DN
+ * string
+ *
+ *
+ *
+ * LDAP_OPT_SERVER_CONTROLS
+ * array
+ *
+ *
+ *
+ * LDAP_OPT_CLIENT_CONTROLS
+ * array
+ *
+ *
+ *
+ * LDAP_OPT_X_KEEPALIVE_IDLE
+ * int
+ * 7.1
+ *
+ *
+ * LDAP_OPT_X_KEEPALIVE_PROBES
+ * int
+ * 7.1
+ *
+ *
+ * LDAP_OPT_X_KEEPALIVE_INTERVAL
+ * int
+ * 7.1
+ *
+ *
+ * LDAP_OPT_X_TLS_CACERTDIR
+ * string
+ * 7.1
+ *
+ *
+ * LDAP_OPT_X_TLS_CACERTFILE
+ * string
+ * 7.1
+ *
+ *
+ * LDAP_OPT_X_TLS_CERTFILE
+ * string
+ * 7.1
+ *
+ *
+ * LDAP_OPT_X_TLS_CIPHER_SUITE
+ * string
+ * 7.1
+ *
+ *
+ * LDAP_OPT_X_TLS_CRLCHECK
+ * integer
+ * 7.1
+ *
+ *
+ * LDAP_OPT_X_TLS_CRL_NONE
+ * integer
+ * 7.1
+ *
+ *
+ * LDAP_OPT_X_TLS_CRL_PEER
+ * integer
+ * 7.1
+ *
+ *
+ * LDAP_OPT_X_TLS_CRL_ALL
+ * integer
+ * 7.1
+ *
+ *
+ * LDAP_OPT_X_TLS_CRLFILE
+ * string
+ * 7.1
+ *
+ *
+ * LDAP_OPT_X_TLS_DHFILE
+ * string
+ * 7.1
+ *
+ *
+ * LDAP_OPT_X_TLS_KEYILE
+ * string
+ * 7.1
+ *
+ *
+ * LDAP_OPT_X_TLS_PACKAGE
+ * string
+ * 7.1
+ *
+ *
+ * LDAP_OPT_X_TLS_PROTOCOL_MIN
+ * integer
+ * 7.1
+ *
+ *
+ * LDAP_OPT_X_TLS_RANDOM_FILE
+ * string
+ * 7.1
+ *
+ *
+ * LDAP_OPT_X_TLS_REQUIRE_CERT
+ * integer
+ *
+ *
+ *
+ *
+ *
+ * @param mixed $retval This will be set to the option value.
+ * @throws LdapException
+ *
+ */
+function ldap_get_option($link_identifier, int $option, &$retval): void
+{
+ error_clear_last();
+ $result = \ldap_get_option($link_identifier, $option, $retval);
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Reads all the values of the attribute in the entry in the result.
+ *
+ * This function is used exactly like ldap_get_values
+ * except that it handles binary data and not string data.
+ *
+ * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect.
+ * @param resource $result_entry_identifier
+ * @param string $attribute
+ * @return array Returns an array of values for the attribute on success and FALSE on
+ * error. Individual values are accessed by integer index in the array. The
+ * first index is 0. The number of values can be found by indexing "count"
+ * in the resultant array.
+ * @throws LdapException
+ *
+ */
+function ldap_get_values_len($link_identifier, $result_entry_identifier, string $attribute): array
+{
+ error_clear_last();
+ $result = \ldap_get_values_len($link_identifier, $result_entry_identifier, $attribute);
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Reads all the values of the attribute in the entry in the result.
+ *
+ * This call needs a result_entry_identifier,
+ * so needs to be preceded by one of the ldap search calls and one
+ * of the calls to get an individual entry.
+ *
+ * You application will either be hard coded to look for certain
+ * attributes (such as "surname" or "mail") or you will have to use
+ * the ldap_get_attributes call to work out
+ * what attributes exist for a given entry.
+ *
+ * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect.
+ * @param resource $result_entry_identifier
+ * @param string $attribute
+ * @return array Returns an array of values for the attribute on success and FALSE on
+ * error. The number of values can be found by indexing "count" in the
+ * resultant array. Individual values are accessed by integer index in the
+ * array. The first index is 0.
+ *
+ * LDAP allows more than one entry for an attribute, so it can, for example,
+ * store a number of email addresses for one person's directory entry all
+ * labeled with the attribute "mail"
+ *
+ *
+ * return_value["count"] = number of values for attribute
+ * return_value[0] = first value of attribute
+ * return_value[i] = ith value of attribute
+ *
+ *
+ * @throws LdapException
+ *
+ */
+function ldap_get_values($link_identifier, $result_entry_identifier, string $attribute): array
+{
+ error_clear_last();
+ $result = \ldap_get_values($link_identifier, $result_entry_identifier, $attribute);
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Performs the search for a specified filter on the
+ * directory with the scope LDAP_SCOPE_ONELEVEL.
+ *
+ * LDAP_SCOPE_ONELEVEL means that the search should only
+ * return information that is at the level immediately below the
+ * base_dn given in the call.
+ * (Equivalent to typing "ls" and getting a list of files and folders in the
+ * current working directory.)
+ *
+ * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect.
+ * @param string $base_dn The base DN for the directory.
+ * @param string $filter
+ * @param array $attributes An array of the required attributes, e.g. array("mail", "sn", "cn").
+ * Note that the "dn" is always returned irrespective of which attributes
+ * types are requested.
+ *
+ * Using this parameter is much more efficient than the default action
+ * (which is to return all attributes and their associated values).
+ * The use of this parameter should therefore be considered good
+ * practice.
+ * @param int $attrsonly Should be set to 1 if only attribute types are wanted. If set to 0
+ * both attributes types and attribute values are fetched which is the
+ * default behaviour.
+ * @param int $sizelimit Enables you to limit the count of entries fetched. Setting this to 0
+ * means no limit.
+ *
+ * This parameter can NOT override server-side preset sizelimit. You can
+ * set it lower though.
+ *
+ * Some directory server hosts will be configured to return no more than
+ * a preset number of entries. If this occurs, the server will indicate
+ * that it has only returned a partial results set. This also occurs if
+ * you use this parameter to limit the count of fetched entries.
+ * @param int $timelimit Sets the number of seconds how long is spend on the search. Setting
+ * this to 0 means no limit.
+ *
+ * This parameter can NOT override server-side preset timelimit. You can
+ * set it lower though.
+ * @param int $deref Specifies how aliases should be handled during the search. It can be
+ * one of the following:
+ *
+ *
+ *
+ * LDAP_DEREF_NEVER - (default) aliases are never
+ * dereferenced.
+ *
+ *
+ *
+ *
+ * LDAP_DEREF_SEARCHING - aliases should be
+ * dereferenced during the search but not when locating the base object
+ * of the search.
+ *
+ *
+ *
+ *
+ * LDAP_DEREF_FINDING - aliases should be
+ * dereferenced when locating the base object but not during the search.
+ *
+ *
+ *
+ *
+ * LDAP_DEREF_ALWAYS - aliases should be dereferenced
+ * always.
+ *
+ *
+ *
+ * @param array $serverctrls Array of LDAP Controls to send with the request.
+ * @return resource Returns a search result identifier.
+ * @throws LdapException
+ *
+ */
+function ldap_list($link_identifier, string $base_dn, string $filter, array $attributes = null, int $attrsonly = 0, int $sizelimit = -1, int $timelimit = -1, int $deref = LDAP_DEREF_NEVER, array $serverctrls = null)
+{
+ error_clear_last();
+ if ($serverctrls !== null) {
+ $result = \ldap_list($link_identifier, $base_dn, $filter, $attributes, $attrsonly, $sizelimit, $timelimit, $deref, $serverctrls);
+ } elseif ($deref !== LDAP_DEREF_NEVER) {
+ $result = \ldap_list($link_identifier, $base_dn, $filter, $attributes, $attrsonly, $sizelimit, $timelimit, $deref);
+ } elseif ($timelimit !== -1) {
+ $result = \ldap_list($link_identifier, $base_dn, $filter, $attributes, $attrsonly, $sizelimit, $timelimit);
+ } elseif ($sizelimit !== -1) {
+ $result = \ldap_list($link_identifier, $base_dn, $filter, $attributes, $attrsonly, $sizelimit);
+ } elseif ($attrsonly !== 0) {
+ $result = \ldap_list($link_identifier, $base_dn, $filter, $attributes, $attrsonly);
+ } elseif ($attributes !== null) {
+ $result = \ldap_list($link_identifier, $base_dn, $filter, $attributes);
+ } else {
+ $result = \ldap_list($link_identifier, $base_dn, $filter);
+ }
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Does the same thing as ldap_mod_add but returns the LDAP result resource to be parsed with ldap_parse_result.
+ *
+ * @param resource $link_identifier
+ * @param string $dn
+ * @param array $entry
+ * @param array $serverctrls
+ * @return resource Returns an LDAP result identifier.
+ * @throws LdapException
+ *
+ */
+function ldap_mod_add_ext($link_identifier, string $dn, array $entry, array $serverctrls = null)
+{
+ error_clear_last();
+ $result = \ldap_mod_add_ext($link_identifier, $dn, $entry, $serverctrls);
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Adds one or more attribute values to the specified dn.
+ * To add a whole new object see ldap_add function.
+ *
+ * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect.
+ * @param string $dn The distinguished name of an LDAP entity.
+ * @param array $entry An associative array listing the attirbute values to add. If an attribute was not existing yet it will be added. If an attribute is existing you can only add values to it if it supports multiple values.
+ * @param array $serverctrls Array of LDAP Controls to send with the request.
+ * @throws LdapException
+ *
+ */
+function ldap_mod_add($link_identifier, string $dn, array $entry, array $serverctrls = null): void
+{
+ error_clear_last();
+ $result = \ldap_mod_add($link_identifier, $dn, $entry, $serverctrls);
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Does the same thing as ldap_mod_del but returns the LDAP result resource to be parsed with ldap_parse_result.
+ *
+ * @param resource $link_identifier
+ * @param string $dn
+ * @param array $entry
+ * @param array $serverctrls
+ * @return resource Returns an LDAP result identifier.
+ * @throws LdapException
+ *
+ */
+function ldap_mod_del_ext($link_identifier, string $dn, array $entry, array $serverctrls = null)
+{
+ error_clear_last();
+ $result = \ldap_mod_del_ext($link_identifier, $dn, $entry, $serverctrls);
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Removes one or more attribute values from the specified dn.
+ * Object deletions are done by the
+ * ldap_delete function.
+ *
+ * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect.
+ * @param string $dn The distinguished name of an LDAP entity.
+ * @param array $entry
+ * @param array $serverctrls Array of LDAP Controls to send with the request.
+ * @throws LdapException
+ *
+ */
+function ldap_mod_del($link_identifier, string $dn, array $entry, array $serverctrls = null): void
+{
+ error_clear_last();
+ $result = \ldap_mod_del($link_identifier, $dn, $entry, $serverctrls);
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Does the same thing as ldap_mod_replace but returns the LDAP result resource to be parsed with ldap_parse_result.
+ *
+ * @param resource $link_identifier
+ * @param string $dn
+ * @param array $entry
+ * @param array $serverctrls
+ * @return resource Returns an LDAP result identifier.
+ * @throws LdapException
+ *
+ */
+function ldap_mod_replace_ext($link_identifier, string $dn, array $entry, array $serverctrls = null)
+{
+ error_clear_last();
+ $result = \ldap_mod_replace_ext($link_identifier, $dn, $entry, $serverctrls);
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Replaces one or more attributes from the specified dn.
+ * It may also add or remove attributes.
+ *
+ * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect.
+ * @param string $dn The distinguished name of an LDAP entity.
+ * @param array $entry An associative array listing the attributes to replace. Sending an empty array as value will remove the attribute, while sending an attribute not existing yet on this entry will add it.
+ * @param array $serverctrls Array of LDAP Controls to send with the request.
+ * @throws LdapException
+ *
+ */
+function ldap_mod_replace($link_identifier, string $dn, array $entry, array $serverctrls = null): void
+{
+ error_clear_last();
+ $result = \ldap_mod_replace($link_identifier, $dn, $entry, $serverctrls);
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Modifies an existing entry in the LDAP directory. Allows detailed
+ * specification of the modifications to perform.
+ *
+ * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect.
+ * @param string $dn The distinguished name of an LDAP entity.
+ * @param array $entry An array that specifies the modifications to make. Each entry in this
+ * array is an associative array with two or three keys:
+ * attrib maps to the name of the attribute to modify,
+ * modtype maps to the type of modification to perform,
+ * and (depending on the type of modification) values
+ * maps to an array of attribute values relevant to the modification.
+ *
+ * Possible values for modtype include:
+ *
+ *
+ * LDAP_MODIFY_BATCH_ADD
+ *
+ *
+ * Each value specified through values is added (as
+ * an additional value) to the attribute named by
+ * attrib.
+ *
+ *
+ *
+ *
+ * LDAP_MODIFY_BATCH_REMOVE
+ *
+ *
+ * Each value specified through values is removed
+ * from the attribute named by attrib. Any value of
+ * the attribute not contained in the values array
+ * will remain untouched.
+ *
+ *
+ *
+ *
+ * LDAP_MODIFY_BATCH_REMOVE_ALL
+ *
+ *
+ * All values are removed from the attribute named by
+ * attrib. A values entry must
+ * not be provided.
+ *
+ *
+ *
+ *
+ * LDAP_MODIFY_BATCH_REPLACE
+ *
+ *
+ * All current values of the attribute named by
+ * attrib are replaced with the values specified
+ * through values.
+ *
+ *
+ *
+ *
+ *
+ * Each value specified through values is added (as
+ * an additional value) to the attribute named by
+ * attrib.
+ *
+ * Each value specified through values is removed
+ * from the attribute named by attrib. Any value of
+ * the attribute not contained in the values array
+ * will remain untouched.
+ *
+ * All values are removed from the attribute named by
+ * attrib. A values entry must
+ * not be provided.
+ *
+ * All current values of the attribute named by
+ * attrib are replaced with the values specified
+ * through values.
+ *
+ * Note that any value for attrib must be a string, any
+ * value for values must be an array of strings, and
+ * any value for modtype must be one of the
+ * LDAP_MODIFY_BATCH_* constants listed above.
+ * @param array $serverctrls Each value specified through values is added (as
+ * an additional value) to the attribute named by
+ * attrib.
+ * @throws LdapException
+ *
+ */
+function ldap_modify_batch($link_identifier, string $dn, array $entry, array $serverctrls = null): void
+{
+ error_clear_last();
+ $result = \ldap_modify_batch($link_identifier, $dn, $entry, $serverctrls);
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Retrieves the attributes in an entry. The first call to
+ * ldap_next_attribute is made with the
+ * result_entry_identifier returned from
+ * ldap_first_attribute.
+ *
+ * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect.
+ * @param resource $result_entry_identifier
+ * @return string Returns the next attribute in an entry on success and FALSE on
+ * error.
+ * @throws LdapException
+ *
+ */
+function ldap_next_attribute($link_identifier, $result_entry_identifier): string
+{
+ error_clear_last();
+ $result = \ldap_next_attribute($link_identifier, $result_entry_identifier);
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Parse LDAP extended operation data from result object result
+ *
+ * @param resource $link An LDAP link identifier, returned by ldap_connect.
+ * @param resource $result An LDAP result resource, returned by ldap_exop.
+ * @param string|null $retdata Will be filled by the response data.
+ * @param string|null $retoid Will be filled by the response OID.
+ * @throws LdapException
+ *
+ */
+function ldap_parse_exop($link, $result, ?string &$retdata = null, ?string &$retoid = null): void
+{
+ error_clear_last();
+ $result = \ldap_parse_exop($link, $result, $retdata, $retoid);
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Parses an LDAP search result.
+ *
+ * @param resource $link An LDAP link identifier, returned by ldap_connect.
+ * @param resource $result An LDAP result resource, returned by ldap_list or
+ * ldap_search.
+ * @param int|null $errcode A reference to a variable that will be set to the LDAP error code in
+ * the result, or 0 if no error occurred.
+ * @param string|null $matcheddn A reference to a variable that will be set to a matched DN if one was
+ * recognised within the request, otherwise it will be set to NULL.
+ * @param string|null $errmsg A reference to a variable that will be set to the LDAP error message in
+ * the result, or an empty string if no error occurred.
+ * @param array|null $referrals A reference to a variable that will be set to an array set
+ * to all of the referral strings in the result, or an empty array if no
+ * referrals were returned.
+ * @param array|null $serverctrls An array of LDAP Controls which have been sent with the response.
+ * @throws LdapException
+ *
+ */
+function ldap_parse_result($link, $result, ?int &$errcode, ?string &$matcheddn = null, ?string &$errmsg = null, ?array &$referrals = null, ?array &$serverctrls = null): void
+{
+ error_clear_last();
+ $result = \ldap_parse_result($link, $result, $errcode, $matcheddn, $errmsg, $referrals, $serverctrls);
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Performs the search for a specified filter on the
+ * directory with the scope LDAP_SCOPE_BASE. So it is
+ * equivalent to reading an entry from the directory.
+ *
+ * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect.
+ * @param string $base_dn The base DN for the directory.
+ * @param string $filter An empty filter is not allowed. If you want to retrieve absolutely all
+ * information for this entry, use a filter of
+ * objectClass=*. If you know which entry types are
+ * used on the directory server, you might use an appropriate filter such
+ * as objectClass=inetOrgPerson.
+ * @param array $attributes An array of the required attributes, e.g. array("mail", "sn", "cn").
+ * Note that the "dn" is always returned irrespective of which attributes
+ * types are requested.
+ *
+ * Using this parameter is much more efficient than the default action
+ * (which is to return all attributes and their associated values).
+ * The use of this parameter should therefore be considered good
+ * practice.
+ * @param int $attrsonly Should be set to 1 if only attribute types are wanted. If set to 0
+ * both attributes types and attribute values are fetched which is the
+ * default behaviour.
+ * @param int $sizelimit Enables you to limit the count of entries fetched. Setting this to 0
+ * means no limit.
+ *
+ * This parameter can NOT override server-side preset sizelimit. You can
+ * set it lower though.
+ *
+ * Some directory server hosts will be configured to return no more than
+ * a preset number of entries. If this occurs, the server will indicate
+ * that it has only returned a partial results set. This also occurs if
+ * you use this parameter to limit the count of fetched entries.
+ * @param int $timelimit Sets the number of seconds how long is spend on the search. Setting
+ * this to 0 means no limit.
+ *
+ * This parameter can NOT override server-side preset timelimit. You can
+ * set it lower though.
+ * @param int $deref Specifies how aliases should be handled during the search. It can be
+ * one of the following:
+ *
+ *
+ *
+ * LDAP_DEREF_NEVER - (default) aliases are never
+ * dereferenced.
+ *
+ *
+ *
+ *
+ * LDAP_DEREF_SEARCHING - aliases should be
+ * dereferenced during the search but not when locating the base object
+ * of the search.
+ *
+ *
+ *
+ *
+ * LDAP_DEREF_FINDING - aliases should be
+ * dereferenced when locating the base object but not during the search.
+ *
+ *
+ *
+ *
+ * LDAP_DEREF_ALWAYS - aliases should be dereferenced
+ * always.
+ *
+ *
+ *
+ * @param array $serverctrls Array of LDAP Controls to send with the request.
+ * @return resource Returns a search result identifier.
+ * @throws LdapException
+ *
+ */
+function ldap_read($link_identifier, string $base_dn, string $filter, array $attributes = null, int $attrsonly = 0, int $sizelimit = -1, int $timelimit = -1, int $deref = LDAP_DEREF_NEVER, array $serverctrls = null)
+{
+ error_clear_last();
+ if ($serverctrls !== null) {
+ $result = \ldap_read($link_identifier, $base_dn, $filter, $attributes, $attrsonly, $sizelimit, $timelimit, $deref, $serverctrls);
+ } elseif ($deref !== LDAP_DEREF_NEVER) {
+ $result = \ldap_read($link_identifier, $base_dn, $filter, $attributes, $attrsonly, $sizelimit, $timelimit, $deref);
+ } elseif ($timelimit !== -1) {
+ $result = \ldap_read($link_identifier, $base_dn, $filter, $attributes, $attrsonly, $sizelimit, $timelimit);
+ } elseif ($sizelimit !== -1) {
+ $result = \ldap_read($link_identifier, $base_dn, $filter, $attributes, $attrsonly, $sizelimit);
+ } elseif ($attrsonly !== 0) {
+ $result = \ldap_read($link_identifier, $base_dn, $filter, $attributes, $attrsonly);
+ } elseif ($attributes !== null) {
+ $result = \ldap_read($link_identifier, $base_dn, $filter, $attributes);
+ } else {
+ $result = \ldap_read($link_identifier, $base_dn, $filter);
+ }
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Does the same thing as ldap_rename but returns the LDAP result resource to be parsed with ldap_parse_result.
+ *
+ * @param resource $link_identifier
+ * @param string $dn
+ * @param string $newrdn
+ * @param string $newparent
+ * @param bool $deleteoldrdn
+ * @param array $serverctrls
+ * @return resource Returns an LDAP result identifier.
+ * @throws LdapException
+ *
+ */
+function ldap_rename_ext($link_identifier, string $dn, string $newrdn, string $newparent, bool $deleteoldrdn, array $serverctrls = null)
+{
+ error_clear_last();
+ $result = \ldap_rename_ext($link_identifier, $dn, $newrdn, $newparent, $deleteoldrdn, $serverctrls);
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * The entry specified by dn is renamed/moved.
+ *
+ * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect.
+ * @param string $dn The distinguished name of an LDAP entity.
+ * @param string $newrdn The new RDN.
+ * @param string $newparent The new parent/superior entry.
+ * @param bool $deleteoldrdn If TRUE the old RDN value(s) is removed, else the old RDN value(s)
+ * is retained as non-distinguished values of the entry.
+ * @param array $serverctrls Array of LDAP Controls to send with the request.
+ * @throws LdapException
+ *
+ */
+function ldap_rename($link_identifier, string $dn, string $newrdn, string $newparent, bool $deleteoldrdn, array $serverctrls = null): void
+{
+ error_clear_last();
+ $result = \ldap_rename($link_identifier, $dn, $newrdn, $newparent, $deleteoldrdn, $serverctrls);
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+}
+
+
+/**
+ *
+ *
+ * @param resource $link
+ * @param string $binddn
+ * @param string $password
+ * @param string $sasl_mech
+ * @param string $sasl_realm
+ * @param string $sasl_authc_id
+ * @param string $sasl_authz_id
+ * @param string $props
+ * @throws LdapException
+ *
+ */
+function ldap_sasl_bind($link, string $binddn = null, string $password = null, string $sasl_mech = null, string $sasl_realm = null, string $sasl_authc_id = null, string $sasl_authz_id = null, string $props = null): void
+{
+ error_clear_last();
+ $result = \ldap_sasl_bind($link, $binddn, $password, $sasl_mech, $sasl_realm, $sasl_authc_id, $sasl_authz_id, $props);
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Performs the search for a specified filter on the directory with the scope
+ * of LDAP_SCOPE_SUBTREE. This is equivalent to searching
+ * the entire directory.
+ *
+ * From 4.0.5 on it's also possible to do parallel searches. To do this
+ * you use an array of link identifiers, rather than a single identifier,
+ * as the first argument. If you don't want the same base DN and the
+ * same filter for all the searches, you can also use an array of base DNs
+ * and/or an array of filters. Those arrays must be of the same size as
+ * the link identifier array since the first entries of the arrays are
+ * used for one search, the second entries are used for another, and so
+ * on. When doing parallel searches an array of search result
+ * identifiers is returned, except in case of error, then the entry
+ * corresponding to the search will be FALSE. This is very much like
+ * the value normally returned, except that a result identifier is always
+ * returned when a search was made. There are some rare cases where the
+ * normal search returns FALSE while the parallel search returns an
+ * identifier.
+ *
+ * @param resource|array $link_identifier An LDAP link identifier, returned by ldap_connect.
+ * @param string $base_dn The base DN for the directory.
+ * @param string $filter The search filter can be simple or advanced, using boolean operators in
+ * the format described in the LDAP documentation (see the Netscape Directory SDK or
+ * RFC4515 for full
+ * information on filters).
+ * @param array $attributes An array of the required attributes, e.g. array("mail", "sn", "cn").
+ * Note that the "dn" is always returned irrespective of which attributes
+ * types are requested.
+ *
+ * Using this parameter is much more efficient than the default action
+ * (which is to return all attributes and their associated values).
+ * The use of this parameter should therefore be considered good
+ * practice.
+ * @param int $attrsonly Should be set to 1 if only attribute types are wanted. If set to 0
+ * both attributes types and attribute values are fetched which is the
+ * default behaviour.
+ * @param int $sizelimit Enables you to limit the count of entries fetched. Setting this to 0
+ * means no limit.
+ *
+ * This parameter can NOT override server-side preset sizelimit. You can
+ * set it lower though.
+ *
+ * Some directory server hosts will be configured to return no more than
+ * a preset number of entries. If this occurs, the server will indicate
+ * that it has only returned a partial results set. This also occurs if
+ * you use this parameter to limit the count of fetched entries.
+ * @param int $timelimit Sets the number of seconds how long is spend on the search. Setting
+ * this to 0 means no limit.
+ *
+ * This parameter can NOT override server-side preset timelimit. You can
+ * set it lower though.
+ * @param int $deref Specifies how aliases should be handled during the search. It can be
+ * one of the following:
+ *
+ *
+ *
+ * LDAP_DEREF_NEVER - (default) aliases are never
+ * dereferenced.
+ *
+ *
+ *
+ *
+ * LDAP_DEREF_SEARCHING - aliases should be
+ * dereferenced during the search but not when locating the base object
+ * of the search.
+ *
+ *
+ *
+ *
+ * LDAP_DEREF_FINDING - aliases should be
+ * dereferenced when locating the base object but not during the search.
+ *
+ *
+ *
+ *
+ * LDAP_DEREF_ALWAYS - aliases should be dereferenced
+ * always.
+ *
+ *
+ *
+ * @param array $serverctrls Array of LDAP Controls to send with the request.
+ * @return resource Returns a search result identifier.
+ * @throws LdapException
+ *
+ */
+function ldap_search($link_identifier, string $base_dn, string $filter, array $attributes = null, int $attrsonly = 0, int $sizelimit = -1, int $timelimit = -1, int $deref = LDAP_DEREF_NEVER, array $serverctrls = null)
+{
+ error_clear_last();
+ if ($serverctrls !== null) {
+ $result = \ldap_search($link_identifier, $base_dn, $filter, $attributes, $attrsonly, $sizelimit, $timelimit, $deref, $serverctrls);
+ } elseif ($deref !== LDAP_DEREF_NEVER) {
+ $result = \ldap_search($link_identifier, $base_dn, $filter, $attributes, $attrsonly, $sizelimit, $timelimit, $deref);
+ } elseif ($timelimit !== -1) {
+ $result = \ldap_search($link_identifier, $base_dn, $filter, $attributes, $attrsonly, $sizelimit, $timelimit);
+ } elseif ($sizelimit !== -1) {
+ $result = \ldap_search($link_identifier, $base_dn, $filter, $attributes, $attrsonly, $sizelimit);
+ } elseif ($attrsonly !== 0) {
+ $result = \ldap_search($link_identifier, $base_dn, $filter, $attributes, $attrsonly);
+ } elseif ($attributes !== null) {
+ $result = \ldap_search($link_identifier, $base_dn, $filter, $attributes);
+ } else {
+ $result = \ldap_search($link_identifier, $base_dn, $filter);
+ }
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Sets the value of the specified option to be newval.
+ *
+ * @param resource|null $link_identifier An LDAP link identifier, returned by ldap_connect.
+ * @param int $option The parameter option can be one of:
+ *
+ *
+ *
+ *
+ * Option
+ * Type
+ * Available since
+ *
+ *
+ *
+ *
+ * LDAP_OPT_DEREF
+ * integer
+ *
+ *
+ *
+ * LDAP_OPT_SIZELIMIT
+ * integer
+ *
+ *
+ *
+ * LDAP_OPT_TIMELIMIT
+ * integer
+ *
+ *
+ *
+ * LDAP_OPT_NETWORK_TIMEOUT
+ * integer
+ * PHP 5.3.0
+ *
+ *
+ * LDAP_OPT_PROTOCOL_VERSION
+ * integer
+ *
+ *
+ *
+ * LDAP_OPT_ERROR_NUMBER
+ * integer
+ *
+ *
+ *
+ * LDAP_OPT_REFERRALS
+ * bool
+ *
+ *
+ *
+ * LDAP_OPT_RESTART
+ * bool
+ *
+ *
+ *
+ * LDAP_OPT_HOST_NAME
+ * string
+ *
+ *
+ *
+ * LDAP_OPT_ERROR_STRING
+ * string
+ *
+ *
+ *
+ * LDAP_OPT_DIAGNOSTIC_MESSAGE
+ * string
+ *
+ *
+ *
+ * LDAP_OPT_MATCHED_DN
+ * string
+ *
+ *
+ *
+ * LDAP_OPT_SERVER_CONTROLS
+ * array
+ *
+ *
+ *
+ * LDAP_OPT_CLIENT_CONTROLS
+ * array
+ *
+ *
+ *
+ * LDAP_OPT_X_KEEPALIVE_IDLE
+ * int
+ * PHP 7.1.0
+ *
+ *
+ * LDAP_OPT_X_KEEPALIVE_PROBES
+ * int
+ * PHP 7.1.0
+ *
+ *
+ * LDAP_OPT_X_KEEPALIVE_INTERVAL
+ * int
+ * PHP 7.1.0
+ *
+ *
+ * LDAP_OPT_X_TLS_CACERTDIR
+ * string
+ * PHP 7.1.0
+ *
+ *
+ * LDAP_OPT_X_TLS_CACERTFILE
+ * string
+ * PHP 7.1.0
+ *
+ *
+ * LDAP_OPT_X_TLS_CERTFILE
+ * string
+ * PHP 7.1.0
+ *
+ *
+ * LDAP_OPT_X_TLS_CIPHER_SUITE
+ * string
+ * PHP 7.1.0
+ *
+ *
+ * LDAP_OPT_X_TLS_CRLCHECK
+ * integer
+ * PHP 7.1.0
+ *
+ *
+ * LDAP_OPT_X_TLS_CRLFILE
+ * string
+ * PHP 7.1.0
+ *
+ *
+ * LDAP_OPT_X_TLS_DHFILE
+ * string
+ * PHP 7.1.0
+ *
+ *
+ * LDAP_OPT_X_TLS_KEYFILE
+ * string
+ * PHP 7.1.0
+ *
+ *
+ * LDAP_OPT_X_TLS_PROTOCOL_MIN
+ * integer
+ * PHP 7.1.0
+ *
+ *
+ * LDAP_OPT_X_TLS_RANDOM_FILE
+ * string
+ * PHP 7.1.0
+ *
+ *
+ * LDAP_OPT_X_TLS_REQUIRE_CERT
+ * integer
+ * PHP 7.0.5
+ *
+ *
+ *
+ *
+ *
+ * LDAP_OPT_SERVER_CONTROLS and
+ * LDAP_OPT_CLIENT_CONTROLS require a list of
+ * controls, this means that the value must be an array of controls. A
+ * control consists of an oid identifying the control,
+ * an optional value, and an optional flag for
+ * criticality. In PHP a control is given by an
+ * array containing an element with the key oid
+ * and string value, and two optional elements. The optional
+ * elements are key value with string value
+ * and key iscritical with boolean value.
+ * iscritical defaults to FALSE
+ * if not supplied. See draft-ietf-ldapext-ldap-c-api-xx.txt
+ * for details. See also the second example below.
+ * @param mixed $newval The new value for the specified option.
+ * @throws LdapException
+ *
+ */
+function ldap_set_option($link_identifier, int $option, $newval): void
+{
+ error_clear_last();
+ $result = \ldap_set_option($link_identifier, $option, $newval);
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Unbinds from the LDAP directory.
+ *
+ * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect.
+ * @throws LdapException
+ *
+ */
+function ldap_unbind($link_identifier): void
+{
+ error_clear_last();
+ $result = \ldap_unbind($link_identifier);
+ if ($result === false) {
+ throw LdapException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/libxml.php b/vendor/thecodingmachine/safe/generated/libxml.php
new file mode 100644
index 000000000..cef784c42
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/libxml.php
@@ -0,0 +1,43 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\LibxmlException;
+
+/**
+ * Retrieve last error from libxml.
+ *
+ * @return \LibXMLError Returns a LibXMLError object if there is any error in the
+ * buffer, FALSE otherwise.
+ * @throws LibxmlException
+ *
+ */
+function libxml_get_last_error(): \LibXMLError
+{
+ error_clear_last();
+ $result = \libxml_get_last_error();
+ if ($result === false) {
+ throw LibxmlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Changes the default external entity loader.
+ *
+ * @param callable $resolver_function A callable that takes three arguments. Two strings, a public id
+ * and system id, and a context (an array with four keys) as the third argument.
+ * This callback should return a resource, a string from which a resource can be
+ * opened, or NULL.
+ * @throws LibxmlException
+ *
+ */
+function libxml_set_external_entity_loader(callable $resolver_function): void
+{
+ error_clear_last();
+ $result = \libxml_set_external_entity_loader($resolver_function);
+ if ($result === false) {
+ throw LibxmlException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/lzf.php b/vendor/thecodingmachine/safe/generated/lzf.php
new file mode 100644
index 000000000..7fce838a4
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/lzf.php
@@ -0,0 +1,44 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\LzfException;
+
+/**
+ * lzf_compress compresses the given
+ * data string using LZF encoding.
+ *
+ * @param string $data The string to compress.
+ * @return string Returns the compressed data.
+ * @throws LzfException
+ *
+ */
+function lzf_compress(string $data): string
+{
+ error_clear_last();
+ $result = \lzf_compress($data);
+ if ($result === false) {
+ throw LzfException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * lzf_compress decompresses the given
+ * data string containing lzf encoded data.
+ *
+ * @param string $data The compressed string.
+ * @return string Returns the decompressed data.
+ * @throws LzfException
+ *
+ */
+function lzf_decompress(string $data): string
+{
+ error_clear_last();
+ $result = \lzf_decompress($data);
+ if ($result === false) {
+ throw LzfException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/mailparse.php b/vendor/thecodingmachine/safe/generated/mailparse.php
new file mode 100644
index 000000000..1bae182a6
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/mailparse.php
@@ -0,0 +1,127 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\MailparseException;
+
+/**
+ * Extracts/decodes a message section from the supplied filename.
+ *
+ * The contents of the section will be decoded according to their transfer
+ * encoding - base64, quoted-printable and uuencoded text are supported.
+ *
+ * @param resource $mimemail A valid MIME resource, created with
+ * mailparse_msg_create.
+ * @param mixed $filename Can be a file name or a valid stream resource.
+ * @param callable $callbackfunc If set, this must be either a valid callback that will be passed the
+ * extracted section, or NULL to make this function return the
+ * extracted section.
+ *
+ * If not specified, the contents will be sent to "stdout".
+ * @return string If callbackfunc is not NULL returns TRUE on
+ * success.
+ *
+ * If callbackfunc is set to NULL, returns the
+ * extracted section as a string.
+ * @throws MailparseException
+ *
+ */
+function mailparse_msg_extract_part_file($mimemail, $filename, callable $callbackfunc = null): string
+{
+ error_clear_last();
+ if ($callbackfunc !== null) {
+ $result = \mailparse_msg_extract_part_file($mimemail, $filename, $callbackfunc);
+ } else {
+ $result = \mailparse_msg_extract_part_file($mimemail, $filename);
+ }
+ if ($result === false) {
+ throw MailparseException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Frees a MIME resource.
+ *
+ * @param resource $mimemail A valid MIME resource allocated by
+ * mailparse_msg_create or
+ * mailparse_msg_parse_file.
+ * @throws MailparseException
+ *
+ */
+function mailparse_msg_free($mimemail): void
+{
+ error_clear_last();
+ $result = \mailparse_msg_free($mimemail);
+ if ($result === false) {
+ throw MailparseException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Parses a file.
+ * This is the optimal way of parsing a mail file that you have on disk.
+ *
+ * @param string $filename Path to the file holding the message.
+ * The file is opened and streamed through the parser.
+ *
+ * The message contained in filename is supposed to end with a newline
+ * (CRLF); otherwise the last line of the message will not be parsed.
+ * @return resource Returns a MIME resource representing the structure.
+ * @throws MailparseException
+ *
+ */
+function mailparse_msg_parse_file(string $filename)
+{
+ error_clear_last();
+ $result = \mailparse_msg_parse_file($filename);
+ if ($result === false) {
+ throw MailparseException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Incrementally parse data into the supplied mime mail resource.
+ *
+ * This function allow you to stream portions of a file at a time, rather
+ * than read and parse the whole thing.
+ *
+ * @param resource $mimemail A valid MIME resource.
+ * @param string $data The final chunk of data is supposed to end with a newline
+ * (CRLF); otherwise the last line of the message will not be parsed.
+ * @throws MailparseException
+ *
+ */
+function mailparse_msg_parse($mimemail, string $data): void
+{
+ error_clear_last();
+ $result = \mailparse_msg_parse($mimemail, $data);
+ if ($result === false) {
+ throw MailparseException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Streams data from the source file pointer, apply
+ * encoding and write to the destination file pointer.
+ *
+ * @param resource $sourcefp A valid file handle. The file is streamed through the parser.
+ * @param resource $destfp The destination file handle in which the encoded data will be written.
+ * @param string $encoding One of the character encodings supported by the
+ * mbstring module.
+ * @throws MailparseException
+ *
+ */
+function mailparse_stream_encode($sourcefp, $destfp, string $encoding): void
+{
+ error_clear_last();
+ $result = \mailparse_stream_encode($sourcefp, $destfp, $encoding);
+ if ($result === false) {
+ throw MailparseException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/mbstring.php b/vendor/thecodingmachine/safe/generated/mbstring.php
new file mode 100644
index 000000000..fa0829438
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/mbstring.php
@@ -0,0 +1,526 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\MbstringException;
+
+/**
+ *
+ *
+ * @param int $cp
+ * @param string $encoding
+ * @return string Returns a specific character.
+ * @throws MbstringException
+ *
+ */
+function mb_chr(int $cp, string $encoding = null): string
+{
+ error_clear_last();
+ if ($encoding !== null) {
+ $result = \mb_chr($cp, $encoding);
+ } else {
+ $result = \mb_chr($cp);
+ }
+ if ($result === false) {
+ throw MbstringException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Sets the automatic character
+ * encoding detection order to encoding_list.
+ *
+ * @param mixed $encoding_list encoding_list is an array or
+ * comma separated list of character encoding. See supported encodings.
+ *
+ * If encoding_list is omitted, it returns
+ * the current character encoding detection order as array.
+ *
+ * This setting affects mb_detect_encoding and
+ * mb_send_mail.
+ *
+ * mbstring currently implements the following
+ * encoding detection filters. If there is an invalid byte sequence
+ * for the following encodings, encoding detection will fail.
+ *
+ * For ISO-8859-*, mbstring
+ * always detects as ISO-8859-*.
+ *
+ * For UTF-16, UTF-32,
+ * UCS2 and UCS4, encoding
+ * detection will fail always.
+ * @return bool|array When setting the encoding detection order, TRUE is returned on success.
+ *
+ * When getting the encoding detection order, an ordered array of the encodings is returned.
+ * @throws MbstringException
+ *
+ */
+function mb_detect_order($encoding_list = null)
+{
+ error_clear_last();
+ if ($encoding_list !== null) {
+ $result = \mb_detect_order($encoding_list);
+ } else {
+ $result = \mb_detect_order();
+ }
+ if ($result === false) {
+ throw MbstringException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Returns an array of aliases for a known encoding type.
+ *
+ * @param string $encoding The encoding type being checked, for aliases.
+ * @return array Returns a numerically indexed array of encoding aliases on success
+ * @throws MbstringException
+ *
+ */
+function mb_encoding_aliases(string $encoding): array
+{
+ error_clear_last();
+ $result = \mb_encoding_aliases($encoding);
+ if ($result === false) {
+ throw MbstringException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Scans string for matches to
+ * pattern, then replaces the matched text
+ * with the output of callback function.
+ *
+ * The behavior of this function is almost identical to mb_ereg_replace,
+ * except for the fact that instead of
+ * replacement parameter, one should specify a
+ * callback.
+ *
+ * @param string $pattern The regular expression pattern.
+ *
+ * Multibyte characters may be used in pattern.
+ * @param callable $callback A callback that will be called and passed an array of matched elements
+ * in the subject string. The callback should
+ * return the replacement string.
+ *
+ * You'll often need the callback function
+ * for a mb_ereg_replace_callback in just one place.
+ * In this case you can use an
+ * anonymous function to
+ * declare the callback within the call to
+ * mb_ereg_replace_callback. By doing it this way
+ * you have all information for the call in one place and do not
+ * clutter the function namespace with a callback function's name
+ * not used anywhere else.
+ * @param string $string The string being checked.
+ * @param string $option The search option. See mb_regex_set_options for explanation.
+ * @return string The resultant string on success.
+ * @throws MbstringException
+ *
+ */
+function mb_ereg_replace_callback(string $pattern, callable $callback, string $string, string $option = "msr"): string
+{
+ error_clear_last();
+ $result = \mb_ereg_replace_callback($pattern, $callback, $string, $option);
+ if ($result === false) {
+ throw MbstringException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ *
+ *
+ * @param string $pattern The regular expression pattern.
+ *
+ * Multibyte characters may be used in pattern.
+ * @param string $replacement The replacement text.
+ * @param string $string The string being checked.
+ * @param string $option
+ * @return string The resultant string on success.
+ * @throws MbstringException
+ *
+ */
+function mb_ereg_replace(string $pattern, string $replacement, string $string, string $option = "msr"): string
+{
+ error_clear_last();
+ $result = \mb_ereg_replace($pattern, $replacement, $string, $option);
+ if ($result === false) {
+ throw MbstringException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ *
+ *
+ * @return array
+ * @throws MbstringException
+ *
+ */
+function mb_ereg_search_getregs(): array
+{
+ error_clear_last();
+ $result = \mb_ereg_search_getregs();
+ if ($result === false) {
+ throw MbstringException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * mb_ereg_search_init sets
+ * string and pattern
+ * for a multibyte regular expression. These values are used for
+ * mb_ereg_search,
+ * mb_ereg_search_pos, and
+ * mb_ereg_search_regs.
+ *
+ * @param string $string The search string.
+ * @param string $pattern The search pattern.
+ * @param string $option The search option. See mb_regex_set_options for explanation.
+ * @throws MbstringException
+ *
+ */
+function mb_ereg_search_init(string $string, string $pattern = null, string $option = "msr"): void
+{
+ error_clear_last();
+ if ($option !== "msr") {
+ $result = \mb_ereg_search_init($string, $pattern, $option);
+ } elseif ($pattern !== null) {
+ $result = \mb_ereg_search_init($string, $pattern);
+ } else {
+ $result = \mb_ereg_search_init($string);
+ }
+ if ($result === false) {
+ throw MbstringException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Returns the matched part of a multibyte regular expression.
+ *
+ * @param string $pattern The search pattern.
+ * @param string $option The search option. See mb_regex_set_options for explanation.
+ * @return array
+ * @throws MbstringException
+ *
+ */
+function mb_ereg_search_regs(string $pattern = null, string $option = "ms"): array
+{
+ error_clear_last();
+ if ($option !== "ms") {
+ $result = \mb_ereg_search_regs($pattern, $option);
+ } elseif ($pattern !== null) {
+ $result = \mb_ereg_search_regs($pattern);
+ } else {
+ $result = \mb_ereg_search_regs();
+ }
+ if ($result === false) {
+ throw MbstringException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ *
+ *
+ * @param int $position The position to set. If it is negative, it counts from the end of the string.
+ * @throws MbstringException
+ *
+ */
+function mb_ereg_search_setpos(int $position): void
+{
+ error_clear_last();
+ $result = \mb_ereg_search_setpos($position);
+ if ($result === false) {
+ throw MbstringException::createFromPhpError();
+ }
+}
+
+
+/**
+ *
+ *
+ * @param string $pattern The regular expression pattern. Multibyte characters may be used. The case will be ignored.
+ * @param string $replace The replacement text.
+ * @param string $string The searched string.
+ * @param string $option
+ * @return string The resultant string.
+ * @throws MbstringException
+ *
+ */
+function mb_eregi_replace(string $pattern, string $replace, string $string, string $option = "msri"): string
+{
+ error_clear_last();
+ $result = \mb_eregi_replace($pattern, $replace, $string, $option);
+ if ($result === false) {
+ throw MbstringException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Set/Get the HTTP output character encoding.
+ * Output after this function is called will be converted from the set internal encoding to encoding.
+ *
+ * @param string $encoding If encoding is set,
+ * mb_http_output sets the HTTP output character
+ * encoding to encoding.
+ *
+ * If encoding is omitted,
+ * mb_http_output returns the current HTTP output
+ * character encoding.
+ * @return string|bool If encoding is omitted,
+ * mb_http_output returns the current HTTP output
+ * character encoding. Otherwise,
+ * Returns TRUE on success.
+ * @throws MbstringException
+ *
+ */
+function mb_http_output(string $encoding = null)
+{
+ error_clear_last();
+ if ($encoding !== null) {
+ $result = \mb_http_output($encoding);
+ } else {
+ $result = \mb_http_output();
+ }
+ if ($result === false) {
+ throw MbstringException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Set/Get the internal character encoding
+ *
+ * @param string $encoding encoding is the character encoding name
+ * used for the HTTP input character encoding conversion, HTTP output
+ * character encoding conversion, and the default character encoding
+ * for string functions defined by the mbstring module.
+ * You should notice that the internal encoding is totally different from the one for multibyte regex.
+ * @return string|bool If encoding is set, then
+ * Returns TRUE on success.
+ * In this case, the character encoding for multibyte regex is NOT changed.
+ * If encoding is omitted, then
+ * the current character encoding name is returned.
+ * @throws MbstringException
+ *
+ */
+function mb_internal_encoding(string $encoding = null)
+{
+ error_clear_last();
+ if ($encoding !== null) {
+ $result = \mb_internal_encoding($encoding);
+ } else {
+ $result = \mb_internal_encoding();
+ }
+ if ($result === false) {
+ throw MbstringException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ *
+ *
+ * @param string $str
+ * @param string $encoding
+ * @return int Returns a code point of character.
+ * @throws MbstringException
+ *
+ */
+function mb_ord(string $str, string $encoding = null): int
+{
+ error_clear_last();
+ if ($encoding !== null) {
+ $result = \mb_ord($str, $encoding);
+ } else {
+ $result = \mb_ord($str);
+ }
+ if ($result === false) {
+ throw MbstringException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Parses GET/POST/COOKIE data and
+ * sets global variables. Since PHP does not provide raw POST/COOKIE
+ * data, it can only be used for GET data for now. It parses URL
+ * encoded data, detects encoding, converts coding to internal
+ * encoding and set values to the result array or
+ * global variables.
+ *
+ * @param string $encoded_string The URL encoded data.
+ * @param array|null $result An array containing decoded and character encoded converted values.
+ * @throws MbstringException
+ *
+ */
+function mb_parse_str(string $encoded_string, ?array &$result): void
+{
+ error_clear_last();
+ $result = \mb_parse_str($encoded_string, $result);
+ if ($result === false) {
+ throw MbstringException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Set/Get character encoding for a multibyte regex.
+ *
+ * @param string $encoding The encoding
+ * parameter is the character encoding. If it is omitted, the internal character
+ * encoding value will be used.
+ * @return string|bool
+ * @throws MbstringException
+ *
+ */
+function mb_regex_encoding(string $encoding = null)
+{
+ error_clear_last();
+ if ($encoding !== null) {
+ $result = \mb_regex_encoding($encoding);
+ } else {
+ $result = \mb_regex_encoding();
+ }
+ if ($result === false) {
+ throw MbstringException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Sends email. Headers and messages are converted and encoded according
+ * to the mb_language setting. It's a wrapper function
+ * for mail, so see also mail for details.
+ *
+ * @param string $to The mail addresses being sent to. Multiple
+ * recipients may be specified by putting a comma between each
+ * address in to.
+ * This parameter is not automatically encoded.
+ * @param string $subject The subject of the mail.
+ * @param string $message The message of the mail.
+ * @param string|array|null $additional_headers String or array to be inserted at the end of the email header.
+ *
+ * This is typically used to add extra headers (From, Cc, and Bcc).
+ * Multiple extra headers should be separated with a CRLF (\r\n).
+ * Validate parameter not to be injected unwanted headers by attackers.
+ *
+ * If an array is passed, its keys are the header names and its
+ * values are the respective header values.
+ *
+ * When sending mail, the mail must contain
+ * a From header. This can be set with the
+ * additional_headers parameter, or a default
+ * can be set in php.ini.
+ *
+ * Failing to do this will result in an error
+ * message similar to Warning: mail(): "sendmail_from" not
+ * set in php.ini or custom "From:" header missing.
+ * The From header sets also
+ * Return-Path under Windows.
+ *
+ * If messages are not received, try using a LF (\n) only.
+ * Some Unix mail transfer agents (most notably
+ * qmail) replace LF by CRLF
+ * automatically (which leads to doubling CR if CRLF is used).
+ * This should be a last resort, as it does not comply with
+ * RFC 2822.
+ * @param string $additional_parameter additional_parameter is a MTA command line
+ * parameter. It is useful when setting the correct Return-Path
+ * header when using sendmail.
+ *
+ * This parameter is escaped by escapeshellcmd internally
+ * to prevent command execution. escapeshellcmd prevents
+ * command execution, but allows to add additional parameters. For security reason,
+ * this parameter should be validated.
+ *
+ * Since escapeshellcmd is applied automatically, some characters
+ * that are allowed as email addresses by internet RFCs cannot be used. Programs
+ * that are required to use these characters mail cannot be used.
+ *
+ * The user that the webserver runs as should be added as a trusted user to the
+ * sendmail configuration to prevent a 'X-Warning' header from being added
+ * to the message when the envelope sender (-f) is set using this method.
+ * For sendmail users, this file is /etc/mail/trusted-users.
+ * @throws MbstringException
+ *
+ */
+function mb_send_mail(string $to, string $subject, string $message, $additional_headers = null, string $additional_parameter = null): void
+{
+ error_clear_last();
+ $result = \mb_send_mail($to, $subject, $message, $additional_headers, $additional_parameter);
+ if ($result === false) {
+ throw MbstringException::createFromPhpError();
+ }
+}
+
+
+/**
+ *
+ *
+ * @param string $pattern The regular expression pattern.
+ * @param string $string The string being split.
+ * @param int $limit
+ * @return array The result as an array.
+ * @throws MbstringException
+ *
+ */
+function mb_split(string $pattern, string $string, int $limit = -1): array
+{
+ error_clear_last();
+ $result = \mb_split($pattern, $string, $limit);
+ if ($result === false) {
+ throw MbstringException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * This function will return an array of strings, it is a version of str_split with support for encodings of variable character size as well as fixed-size encodings of 1,2 or 4 byte characters.
+ * If the split_length parameter is specified, the string is broken down into chunks of the specified length in characters (not bytes).
+ * The encoding parameter can be optionally specified and it is good practice to do so.
+ *
+ * @param string $string The string to split into characters or chunks.
+ * @param int $split_length If specified, each element of the returned array will be composed of multiple characters instead of a single character.
+ * @param string $encoding The encoding
+ * parameter is the character encoding. If it is omitted, the internal character
+ * encoding value will be used.
+ *
+ * A string specifying one of the supported encodings.
+ * @return array mb_str_split returns an array of strings.
+ * @throws MbstringException
+ *
+ */
+function mb_str_split(string $string, int $split_length = 1, string $encoding = null): array
+{
+ error_clear_last();
+ if ($encoding !== null) {
+ $result = \mb_str_split($string, $split_length, $encoding);
+ } else {
+ $result = \mb_str_split($string, $split_length);
+ }
+ if ($result === false) {
+ throw MbstringException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/misc.php b/vendor/thecodingmachine/safe/generated/misc.php
new file mode 100644
index 000000000..ff636fd49
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/misc.php
@@ -0,0 +1,464 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\MiscException;
+
+/**
+ * Defines a named constant at runtime.
+ *
+ * @param string $name The name of the constant.
+ *
+ * It is possible to define constants with reserved or
+ * even invalid names, whose value can (only) be retrieved with
+ * constant. However, doing so is not recommended.
+ * @param mixed $value The value of the constant. In PHP 5, value must
+ * be a scalar value (integer,
+ * float, string, boolean, or
+ * NULL). In PHP 7, array values are also accepted.
+ *
+ * While it is possible to define resource constants, it is
+ * not recommended and may cause unpredictable behavior.
+ * @param bool $case_insensitive If set to TRUE, the constant will be defined case-insensitive.
+ * The default behavior is case-sensitive; i.e.
+ * CONSTANT and Constant represent
+ * different values.
+ *
+ * Case-insensitive constants are stored as lower-case.
+ * @throws MiscException
+ *
+ */
+function define(string $name, $value, bool $case_insensitive = false): void
+{
+ error_clear_last();
+ $result = \define($name, $value, $case_insensitive);
+ if ($result === false) {
+ throw MiscException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Prints out or returns a syntax highlighted version of the code contained
+ * in filename using the colors defined in the
+ * built-in syntax highlighter for PHP.
+ *
+ * Many servers are configured to automatically highlight files
+ * with a phps extension. For example,
+ * example.phps when viewed will show the
+ * syntax highlighted source of the file. To enable this, add this
+ * line to the httpd.conf:
+ *
+ * @param string $filename Path to the PHP file to be highlighted.
+ * @param bool $return Set this parameter to TRUE to make this function return the
+ * highlighted code.
+ * @return string|bool If return is set to TRUE, returns the highlighted
+ * code as a string instead of printing it out. Otherwise, it will return
+ * TRUE on success, FALSE on failure.
+ * @throws MiscException
+ *
+ */
+function highlight_file(string $filename, bool $return = false)
+{
+ error_clear_last();
+ $result = \highlight_file($filename, $return);
+ if ($result === false) {
+ throw MiscException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ *
+ *
+ * @param string $str The PHP code to be highlighted. This should include the opening tag.
+ * @param bool $return Set this parameter to TRUE to make this function return the
+ * highlighted code.
+ * @return string|bool If return is set to TRUE, returns the highlighted
+ * code as a string instead of printing it out. Otherwise, it will return
+ * TRUE on success, FALSE on failure.
+ * @throws MiscException
+ *
+ */
+function highlight_string(string $str, bool $return = false)
+{
+ error_clear_last();
+ $result = \highlight_string($str, $return);
+ if ($result === false) {
+ throw MiscException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Pack given arguments into a binary string according to
+ * format.
+ *
+ * The idea for this function was taken from Perl and all formatting codes
+ * work the same as in Perl. However, there are some formatting codes that are
+ * missing such as Perl's "u" format code.
+ *
+ * Note that the distinction between signed and unsigned values only
+ * affects the function unpack, where as
+ * function pack gives the same result for
+ * signed and unsigned format codes.
+ *
+ * @param string $format The format string consists of format codes
+ * followed by an optional repeater argument. The repeater argument can
+ * be either an integer value or * for repeating to
+ * the end of the input data. For a, A, h, H the repeat count specifies
+ * how many characters of one data argument are taken, for @ it is the
+ * absolute position where to put the next data, for everything else the
+ * repeat count specifies how many data arguments are consumed and packed
+ * into the resulting binary string.
+ *
+ * Currently implemented formats are:
+ *
+ * pack format characters
+ *
+ *
+ *
+ * Code
+ * Description
+ *
+ *
+ *
+ *
+ * a
+ * NUL-padded string
+ *
+ *
+ * A
+ * SPACE-padded string
+ *
+ * h
+ * Hex string, low nibble first
+ *
+ * H
+ * Hex string, high nibble first
+ * csigned char
+ *
+ * C
+ * unsigned char
+ *
+ * s
+ * signed short (always 16 bit, machine byte order)
+ *
+ *
+ * S
+ * unsigned short (always 16 bit, machine byte order)
+ *
+ *
+ * n
+ * unsigned short (always 16 bit, big endian byte order)
+ *
+ *
+ * v
+ * unsigned short (always 16 bit, little endian byte order)
+ *
+ *
+ * i
+ * signed integer (machine dependent size and byte order)
+ *
+ *
+ * I
+ * unsigned integer (machine dependent size and byte order)
+ *
+ *
+ * l
+ * signed long (always 32 bit, machine byte order)
+ *
+ *
+ * L
+ * unsigned long (always 32 bit, machine byte order)
+ *
+ *
+ * N
+ * unsigned long (always 32 bit, big endian byte order)
+ *
+ *
+ * V
+ * unsigned long (always 32 bit, little endian byte order)
+ *
+ *
+ * q
+ * signed long long (always 64 bit, machine byte order)
+ *
+ *
+ * Q
+ * unsigned long long (always 64 bit, machine byte order)
+ *
+ *
+ * J
+ * unsigned long long (always 64 bit, big endian byte order)
+ *
+ *
+ * P
+ * unsigned long long (always 64 bit, little endian byte order)
+ *
+ *
+ * f
+ * float (machine dependent size and representation)
+ *
+ *
+ * g
+ * float (machine dependent size, little endian byte order)
+ *
+ *
+ * G
+ * float (machine dependent size, big endian byte order)
+ *
+ *
+ * d
+ * double (machine dependent size and representation)
+ *
+ *
+ * e
+ * double (machine dependent size, little endian byte order)
+ *
+ *
+ * E
+ * double (machine dependent size, big endian byte order)
+ *
+ *
+ * x
+ * NUL byte
+ *
+ *
+ * X
+ * Back up one byte
+ *
+ *
+ * Z
+ * NUL-padded string (new in PHP 5.5)
+ *
+ *
+ * @
+ * NUL-fill to absolute position
+ *
+ *
+ *
+ *
+ * @param mixed $params
+ * @return string Returns a binary string containing data.
+ * @throws MiscException
+ *
+ */
+function pack(string $format, ...$params): string
+{
+ error_clear_last();
+ if ($params !== []) {
+ $result = \pack($format, ...$params);
+ } else {
+ $result = \pack($format);
+ }
+ if ($result === false) {
+ throw MiscException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Convert string from one codepage to another.
+ *
+ * @param int|string $in_codepage The codepage of the subject string.
+ * Either the codepage name or identifier.
+ * @param int|string $out_codepage The codepage to convert the subject string to.
+ * Either the codepage name or identifier.
+ * @param string $subject The string to convert.
+ * @return string The subject string converted to
+ * out_codepage.
+ * @throws MiscException
+ *
+ */
+function sapi_windows_cp_conv($in_codepage, $out_codepage, string $subject): string
+{
+ error_clear_last();
+ $result = \sapi_windows_cp_conv($in_codepage, $out_codepage, $subject);
+ if ($result === null) {
+ throw MiscException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Set the codepage of the current process.
+ *
+ * @param int $cp A codepage identifier.
+ * @throws MiscException
+ *
+ */
+function sapi_windows_cp_set(int $cp): void
+{
+ error_clear_last();
+ $result = \sapi_windows_cp_set($cp);
+ if ($result === false) {
+ throw MiscException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sends a CTRL event to another process in the same process group.
+ *
+ * @param int $event The CTRL even to send;
+ * either PHP_WINDOWS_EVENT_CTRL_C
+ * or PHP_WINDOWS_EVENT_CTRL_BREAK.
+ * @param int $pid The ID of the process to which to send the event to. If 0
+ * is given, the event is sent to all processes of the process group.
+ * @throws MiscException
+ *
+ */
+function sapi_windows_generate_ctrl_event(int $event, int $pid = 0): void
+{
+ error_clear_last();
+ $result = \sapi_windows_generate_ctrl_event($event, $pid);
+ if ($result === false) {
+ throw MiscException::createFromPhpError();
+ }
+}
+
+
+/**
+ * If enable is omitted, the function returns TRUE if the stream stream has VT100 control codes enabled, FALSE otherwise.
+ *
+ * If enable is specified, the function will try to enable or disable the VT100 features of the stream stream.
+ * If the feature has been successfully enabled (or disabled).
+ *
+ * At startup, PHP tries to enable the VT100 feature of the STDOUT/STDERR streams. By the way, if those streams are redirected to a file, the VT100 features may not be enabled.
+ *
+ * If VT100 support is enabled, it is possible to use control sequences as they are known from the VT100 terminal.
+ * They allow the modification of the terminal's output. On Windows these sequences are called Console Virtual Terminal Sequences.
+ *
+ * @param resource $stream The stream on which the function will operate.
+ * @param bool $enable If specified, the VT100 feature will be enabled (if TRUE) or disabled (if FALSE).
+ * @throws MiscException
+ *
+ */
+function sapi_windows_vt100_support($stream, bool $enable = null): void
+{
+ error_clear_last();
+ if ($enable !== null) {
+ $result = \sapi_windows_vt100_support($stream, $enable);
+ } else {
+ $result = \sapi_windows_vt100_support($stream);
+ }
+ if ($result === false) {
+ throw MiscException::createFromPhpError();
+ }
+}
+
+
+/**
+ *
+ *
+ * @param int $seconds Halt time in seconds.
+ * @return int Returns zero on success.
+ *
+ * If the call was interrupted by a signal, sleep returns
+ * a non-zero value. On Windows, this value will always be
+ * 192 (the value of the
+ * WAIT_IO_COMPLETION constant within the Windows API).
+ * On other platforms, the return value will be the number of seconds left to
+ * sleep.
+ * @throws MiscException
+ *
+ */
+function sleep(int $seconds): int
+{
+ error_clear_last();
+ $result = \sleep($seconds);
+ if ($result === false) {
+ throw MiscException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Delays program execution for the given number of
+ * seconds and nanoseconds.
+ *
+ * @param int $seconds Must be a non-negative integer.
+ * @param int $nanoseconds Must be a non-negative integer less than 1 billion.
+ * @return array{0:int,1:int}|bool Returns TRUE on success.
+ *
+ * If the delay was interrupted by a signal, an associative array will be
+ * returned with the components:
+ *
+ *
+ *
+ * seconds - number of seconds remaining in
+ * the delay
+ *
+ *
+ *
+ *
+ * nanoseconds - number of nanoseconds
+ * remaining in the delay
+ *
+ *
+ *
+ * @throws MiscException
+ *
+ */
+function time_nanosleep(int $seconds, int $nanoseconds)
+{
+ error_clear_last();
+ $result = \time_nanosleep($seconds, $nanoseconds);
+ if ($result === false) {
+ throw MiscException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Makes the script sleep until the specified
+ * timestamp.
+ *
+ * @param float $timestamp The timestamp when the script should wake.
+ * @throws MiscException
+ *
+ */
+function time_sleep_until(float $timestamp): void
+{
+ error_clear_last();
+ $result = \time_sleep_until($timestamp);
+ if ($result === false) {
+ throw MiscException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Unpacks from a binary string into an array according to the given
+ * format.
+ *
+ * The unpacked data is stored in an associative array. To
+ * accomplish this you have to name the different format codes and
+ * separate them by a slash /. If a repeater argument is present,
+ * then each of the array keys will have a sequence number behind
+ * the given name.
+ *
+ * @param string $format See pack for an explanation of the format codes.
+ * @param string $data The packed data.
+ * @param int $offset The offset to begin unpacking from.
+ * @return array Returns an associative array containing unpacked elements of binary
+ * string.
+ * @throws MiscException
+ *
+ */
+function unpack(string $format, string $data, int $offset = 0): array
+{
+ error_clear_last();
+ $result = \unpack($format, $data, $offset);
+ if ($result === false) {
+ throw MiscException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/msql.php b/vendor/thecodingmachine/safe/generated/msql.php
new file mode 100644
index 000000000..331c1b6cd
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/msql.php
@@ -0,0 +1,443 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\MsqlException;
+
+/**
+ * Returns number of affected rows by the last SELECT, UPDATE or DELETE
+ * query associated with result.
+ *
+ * @param resource $result The result resource that
+ * is being evaluated. This result comes from a call to
+ * msql_query.
+ * @return int Returns the number of affected rows on success.
+ * @throws MsqlException
+ *
+ */
+function msql_affected_rows($result): int
+{
+ error_clear_last();
+ $result = \msql_affected_rows($result);
+ if ($result === false) {
+ throw MsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * msql_close closes the non-persistent connection to
+ * the mSQL server that's associated with the specified link identifier.
+ *
+ * Using msql_close isn't usually necessary, as
+ * non-persistent open links are automatically closed at the end of the
+ * script's execution. See also freeing resources.
+ *
+ * @param resource|null $link_identifier The mSQL connection.
+ * If not specified, the last link opened by msql_connect
+ * is assumed. If no such link is found, the function will try to establish a
+ * link as if msql_connect was called, and use it.
+ * @throws MsqlException
+ *
+ */
+function msql_close($link_identifier = null): void
+{
+ error_clear_last();
+ if ($link_identifier !== null) {
+ $result = \msql_close($link_identifier);
+ } else {
+ $result = \msql_close();
+ }
+ if ($result === false) {
+ throw MsqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * msql_connect establishes a connection to a mSQL
+ * server.
+ *
+ * If a second call is made to msql_connect with
+ * the same arguments, no new link will be established, but instead, the
+ * link identifier of the already opened link will be returned.
+ *
+ * The link to the server will be closed as soon as the execution of the
+ * script ends, unless it's closed earlier by explicitly calling
+ * msql_close.
+ *
+ * @param string $hostname The hostname can also include a port number. e.g.
+ * hostname,port.
+ *
+ * If not specified, the connection is established by the means of a Unix
+ * domain socket, being then more efficient then a localhost TCP socket
+ * connection.
+ *
+ * While this function will accept a colon (:) as a
+ * host/port separator, a comma (,) is the preferred
+ * method.
+ * @return resource Returns a positive mSQL link identifier on success.
+ * @throws MsqlException
+ *
+ */
+function msql_connect(string $hostname = null)
+{
+ error_clear_last();
+ if ($hostname !== null) {
+ $result = \msql_connect($hostname);
+ } else {
+ $result = \msql_connect();
+ }
+ if ($result === false) {
+ throw MsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * msql_create_db attempts to create a new database on
+ * the mSQL server.
+ *
+ * @param string $database_name The name of the mSQL database.
+ * @param resource|null $link_identifier The mSQL connection.
+ * If not specified, the last link opened by msql_connect
+ * is assumed. If no such link is found, the function will try to establish a
+ * link as if msql_connect was called, and use it.
+ * @throws MsqlException
+ *
+ */
+function msql_create_db(string $database_name, $link_identifier = null): void
+{
+ error_clear_last();
+ if ($link_identifier !== null) {
+ $result = \msql_create_db($database_name, $link_identifier);
+ } else {
+ $result = \msql_create_db($database_name);
+ }
+ if ($result === false) {
+ throw MsqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * msql_data_seek moves the internal row
+ * pointer of the mSQL result associated with the specified query
+ * identifier to point to the specified row number. The next call
+ * to msql_fetch_row would return that
+ * row.
+ *
+ * @param resource $result The result resource that
+ * is being evaluated. This result comes from a call to
+ * msql_query.
+ * @param int $row_number The seeked row number.
+ * @throws MsqlException
+ *
+ */
+function msql_data_seek($result, int $row_number): void
+{
+ error_clear_last();
+ $result = \msql_data_seek($result, $row_number);
+ if ($result === false) {
+ throw MsqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * msql_db_query selects a database and executes a query
+ * on it.
+ *
+ * @param string $database The name of the mSQL database.
+ * @param string $query The SQL query.
+ * @param resource|null $link_identifier The mSQL connection.
+ * If not specified, the last link opened by msql_connect
+ * is assumed. If no such link is found, the function will try to establish a
+ * link as if msql_connect was called, and use it.
+ * @return resource Returns a positive mSQL query identifier to the query result.
+ * @throws MsqlException
+ *
+ */
+function msql_db_query(string $database, string $query, $link_identifier = null)
+{
+ error_clear_last();
+ if ($link_identifier !== null) {
+ $result = \msql_db_query($database, $query, $link_identifier);
+ } else {
+ $result = \msql_db_query($database, $query);
+ }
+ if ($result === false) {
+ throw MsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * msql_drop_db attempts to drop (remove) a database
+ * from the mSQL server.
+ *
+ * @param string $database_name The name of the database.
+ * @param resource|null $link_identifier The mSQL connection.
+ * If not specified, the last link opened by msql_connect
+ * is assumed. If no such link is found, the function will try to establish a
+ * link as if msql_connect was called, and use it.
+ * @throws MsqlException
+ *
+ */
+function msql_drop_db(string $database_name, $link_identifier = null): void
+{
+ error_clear_last();
+ if ($link_identifier !== null) {
+ $result = \msql_drop_db($database_name, $link_identifier);
+ } else {
+ $result = \msql_drop_db($database_name);
+ }
+ if ($result === false) {
+ throw MsqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * msql_field_len returns the length of the specified
+ * field.
+ *
+ * @param resource $result The result resource that
+ * is being evaluated. This result comes from a call to
+ * msql_query.
+ * @param int $field_offset The numerical field offset. The
+ * field_offset starts at 1.
+ * @return int Returns the length of the specified field.
+ * @throws MsqlException
+ *
+ */
+function msql_field_len($result, int $field_offset): int
+{
+ error_clear_last();
+ $result = \msql_field_len($result, $field_offset);
+ if ($result === false) {
+ throw MsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * msql_field_name gets the name of the specified field
+ * index.
+ *
+ * @param resource $result The result resource that
+ * is being evaluated. This result comes from a call to
+ * msql_query.
+ * @param int $field_offset The numerical field offset. The
+ * field_offset starts at 1.
+ * @return string The name of the field.
+ * @throws MsqlException
+ *
+ */
+function msql_field_name($result, int $field_offset): string
+{
+ error_clear_last();
+ $result = \msql_field_name($result, $field_offset);
+ if ($result === false) {
+ throw MsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Seeks to the specified field offset. If the next call to
+ * msql_fetch_field won't include a field offset, this
+ * field would be returned.
+ *
+ * @param resource $result The result resource that
+ * is being evaluated. This result comes from a call to
+ * msql_query.
+ * @param int $field_offset The numerical field offset. The
+ * field_offset starts at 1.
+ * @throws MsqlException
+ *
+ */
+function msql_field_seek($result, int $field_offset): void
+{
+ error_clear_last();
+ $result = \msql_field_seek($result, $field_offset);
+ if ($result === false) {
+ throw MsqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Returns the name of the table that the specified field is in.
+ *
+ * @param resource $result The result resource that
+ * is being evaluated. This result comes from a call to
+ * msql_query.
+ * @param int $field_offset The numerical field offset. The
+ * field_offset starts at 1.
+ * @return int The name of the table on success.
+ * @throws MsqlException
+ *
+ */
+function msql_field_table($result, int $field_offset): int
+{
+ error_clear_last();
+ $result = \msql_field_table($result, $field_offset);
+ if ($result === false) {
+ throw MsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * msql_field_type gets the type of the specified field
+ * index.
+ *
+ * @param resource $result The result resource that
+ * is being evaluated. This result comes from a call to
+ * msql_query.
+ * @param int $field_offset The numerical field offset. The
+ * field_offset starts at 1.
+ * @return string The type of the field. One of int,
+ * char, real, ident,
+ * null or unknown. This functions will
+ * return FALSE on failure.
+ * @throws MsqlException
+ *
+ */
+function msql_field_type($result, int $field_offset): string
+{
+ error_clear_last();
+ $result = \msql_field_type($result, $field_offset);
+ if ($result === false) {
+ throw MsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * msql_free_result frees the memory associated
+ * with query_identifier. When PHP completes a
+ * request, this memory is freed automatically, so you only need to
+ * call this function when you want to make sure you don't use too
+ * much memory while the script is running.
+ *
+ * @param resource $result The result resource that
+ * is being evaluated. This result comes from a call to
+ * msql_query.
+ * @throws MsqlException
+ *
+ */
+function msql_free_result($result): void
+{
+ error_clear_last();
+ $result = \msql_free_result($result);
+ if ($result === false) {
+ throw MsqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * msql_pconnect acts very much like
+ * msql_connect with two major differences.
+ *
+ * First, when connecting, the function would first try to find a
+ * (persistent) link that's already open with the same host.
+ * If one is found, an identifier for it will be returned instead of opening
+ * a new connection.
+ *
+ * Second, the connection to the SQL server will not be closed when the
+ * execution of the script ends. Instead, the link will remain open for
+ * future use (msql_close will not close links
+ * established by this function).
+ *
+ * @param string $hostname The hostname can also include a port number. e.g.
+ * hostname,port.
+ *
+ * If not specified, the connection is established by the means of a Unix
+ * domain socket, being more efficient than a localhost TCP socket
+ * connection.
+ * @return resource Returns a positive mSQL link identifier on success.
+ * @throws MsqlException
+ *
+ */
+function msql_pconnect(string $hostname = null)
+{
+ error_clear_last();
+ if ($hostname !== null) {
+ $result = \msql_pconnect($hostname);
+ } else {
+ $result = \msql_pconnect();
+ }
+ if ($result === false) {
+ throw MsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * msql_query sends a query to the currently active
+ * database on the server that's associated with the specified link
+ * identifier.
+ *
+ * @param string $query The SQL query.
+ * @param resource|null $link_identifier The mSQL connection.
+ * If not specified, the last link opened by msql_connect
+ * is assumed. If no such link is found, the function will try to establish a
+ * link as if msql_connect was called, and use it.
+ * @return resource Returns a positive mSQL query identifier on success.
+ * @throws MsqlException
+ *
+ */
+function msql_query(string $query, $link_identifier = null)
+{
+ error_clear_last();
+ if ($link_identifier !== null) {
+ $result = \msql_query($query, $link_identifier);
+ } else {
+ $result = \msql_query($query);
+ }
+ if ($result === false) {
+ throw MsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * msql_select_db sets the current active database on
+ * the server that's associated with the specified
+ * link_identifier.
+ *
+ * Subsequent calls to msql_query will be made on the
+ * active database.
+ *
+ * @param string $database_name The database name.
+ * @param resource|null $link_identifier The mSQL connection.
+ * If not specified, the last link opened by msql_connect
+ * is assumed. If no such link is found, the function will try to establish a
+ * link as if msql_connect was called, and use it.
+ * @throws MsqlException
+ *
+ */
+function msql_select_db(string $database_name, $link_identifier = null): void
+{
+ error_clear_last();
+ if ($link_identifier !== null) {
+ $result = \msql_select_db($database_name, $link_identifier);
+ } else {
+ $result = \msql_select_db($database_name);
+ }
+ if ($result === false) {
+ throw MsqlException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/mysql.php b/vendor/thecodingmachine/safe/generated/mysql.php
new file mode 100644
index 000000000..475c609c9
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/mysql.php
@@ -0,0 +1,938 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\MysqlException;
+
+/**
+ * mysql_close closes the non-persistent connection to
+ * the MySQL server that's associated with the specified link identifier. If
+ * link_identifier isn't specified, the last opened
+ * link is used.
+ *
+ *
+ * Open non-persistent MySQL connections and result sets are automatically destroyed when a
+ * PHP script finishes its execution. So, while explicitly closing open
+ * connections and freeing result sets is optional, doing so is recommended.
+ * This will immediately return resources to PHP and MySQL, which can
+ * improve performance. For related information, see
+ * freeing resources
+ *
+ * @param resource $link_identifier The MySQL connection. If the
+ * link identifier is not specified, the last link opened by
+ * mysql_connect is assumed. If no connection is found or
+ * established, an E_WARNING level error is
+ * generated.
+ * @throws MysqlException
+ *
+ */
+function mysql_close($link_identifier = null): void
+{
+ error_clear_last();
+ $result = \mysql_close($link_identifier);
+ if ($result === false) {
+ throw MysqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Opens or reuses a connection to a MySQL server.
+ *
+ * @param string $server The MySQL server. It can also include a port number. e.g.
+ * "hostname:port" or a path to a local socket e.g. ":/path/to/socket" for
+ * the localhost.
+ *
+ * If the PHP directive
+ * mysql.default_host is undefined (default), then the default
+ * value is 'localhost:3306'. In SQL safe mode, this parameter is ignored
+ * and value 'localhost:3306' is always used.
+ * @param string $username The username. Default value is defined by mysql.default_user. In
+ * SQL safe mode, this parameter is ignored and the name of the user that
+ * owns the server process is used.
+ * @param string $password The password. Default value is defined by mysql.default_password. In
+ * SQL safe mode, this parameter is ignored and empty password is used.
+ * @param bool $new_link If a second call is made to mysql_connect
+ * with the same arguments, no new link will be established, but
+ * instead, the link identifier of the already opened link will be
+ * returned. The new_link parameter modifies this
+ * behavior and makes mysql_connect always open
+ * a new link, even if mysql_connect was called
+ * before with the same parameters.
+ * In SQL safe mode, this parameter is ignored.
+ * @param int $client_flags The client_flags parameter can be a combination
+ * of the following constants:
+ * 128 (enable LOAD DATA LOCAL handling),
+ * MYSQL_CLIENT_SSL,
+ * MYSQL_CLIENT_COMPRESS,
+ * MYSQL_CLIENT_IGNORE_SPACE or
+ * MYSQL_CLIENT_INTERACTIVE.
+ * Read the section about for further information.
+ * In SQL safe mode, this parameter is ignored.
+ * @return resource Returns a MySQL link identifier on success.
+ * @throws MysqlException
+ *
+ */
+function mysql_connect(string $server = null, string $username = null, string $password = null, bool $new_link = false, int $client_flags = 0)
+{
+ error_clear_last();
+ if ($client_flags !== 0) {
+ $result = \mysql_connect($server, $username, $password, $new_link, $client_flags);
+ } elseif ($new_link !== false) {
+ $result = \mysql_connect($server, $username, $password, $new_link);
+ } elseif ($password !== null) {
+ $result = \mysql_connect($server, $username, $password);
+ } elseif ($username !== null) {
+ $result = \mysql_connect($server, $username);
+ } elseif ($server !== null) {
+ $result = \mysql_connect($server);
+ } else {
+ $result = \mysql_connect();
+ }
+ if ($result === false) {
+ throw MysqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * mysql_create_db attempts to create a new
+ * database on the server associated with the specified link
+ * identifier.
+ *
+ * @param string $database_name The name of the database being created.
+ * @param resource $link_identifier The MySQL connection. If the
+ * link identifier is not specified, the last link opened by
+ * mysql_connect is assumed. If no such link is found, it
+ * will try to create one as if mysql_connect had been called
+ * with no arguments. If no connection is found or established, an
+ * E_WARNING level error is generated.
+ * @throws MysqlException
+ *
+ */
+function mysql_create_db(string $database_name, $link_identifier = null): void
+{
+ error_clear_last();
+ $result = \mysql_create_db($database_name, $link_identifier);
+ if ($result === false) {
+ throw MysqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * mysql_data_seek moves the internal row
+ * pointer of the MySQL result associated with the specified result
+ * identifier to point to the specified row number. The next call
+ * to a MySQL fetch function, such as mysql_fetch_assoc,
+ * would return that row.
+ *
+ * row_number starts at 0. The
+ * row_number should be a value in the range from 0 to
+ * mysql_num_rows - 1. However if the result set
+ * is empty (mysql_num_rows == 0), a seek to 0 will
+ * fail with an E_WARNING and
+ * mysql_data_seek will return FALSE.
+ *
+ * @param resource $result The result resource that
+ * is being evaluated. This result comes from a call to
+ * mysql_query.
+ * @param int $row_number The desired row number of the new result pointer.
+ * @throws MysqlException
+ *
+ */
+function mysql_data_seek($result, int $row_number): void
+{
+ error_clear_last();
+ $result = \mysql_data_seek($result, $row_number);
+ if ($result === false) {
+ throw MysqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Retrieve the database name from a call to
+ * mysql_list_dbs.
+ *
+ * @param resource $result The result pointer from a call to mysql_list_dbs.
+ * @param int $row The index into the result set.
+ * @param mixed $field The field name.
+ * @return string Returns the database name on success. If FALSE
+ * is returned, use mysql_error to determine the nature
+ * of the error.
+ * @throws MysqlException
+ *
+ */
+function mysql_db_name($result, int $row, $field = null): string
+{
+ error_clear_last();
+ $result = \mysql_db_name($result, $row, $field);
+ if ($result === false) {
+ throw MysqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * mysql_db_query selects a database, and executes a
+ * query on it.
+ *
+ * @param string $database The name of the database that will be selected.
+ * @param string $query The MySQL query.
+ *
+ * Data inside the query should be properly escaped.
+ * @param resource $link_identifier The MySQL connection. If the
+ * link identifier is not specified, the last link opened by
+ * mysql_connect is assumed. If no such link is found, it
+ * will try to create one as if mysql_connect had been called
+ * with no arguments. If no connection is found or established, an
+ * E_WARNING level error is generated.
+ * @return resource|bool Returns a positive MySQL result resource to the query result. The function also returns TRUE/FALSE for
+ * INSERT/UPDATE/DELETE
+ * queries to indicate success/failure.
+ * @throws MysqlException
+ *
+ */
+function mysql_db_query(string $database, string $query, $link_identifier = null)
+{
+ error_clear_last();
+ $result = \mysql_db_query($database, $query, $link_identifier);
+ if ($result === false) {
+ throw MysqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * mysql_drop_db attempts to drop (remove) an
+ * entire database from the server associated with the specified
+ * link identifier. This function is deprecated, it is preferable to use
+ * mysql_query to issue an sql
+ * DROP DATABASE statement instead.
+ *
+ * @param string $database_name The name of the database that will be deleted.
+ * @param resource $link_identifier The MySQL connection. If the
+ * link identifier is not specified, the last link opened by
+ * mysql_connect is assumed. If no such link is found, it
+ * will try to create one as if mysql_connect had been called
+ * with no arguments. If no connection is found or established, an
+ * E_WARNING level error is generated.
+ * @throws MysqlException
+ *
+ */
+function mysql_drop_db(string $database_name, $link_identifier = null): void
+{
+ error_clear_last();
+ $result = \mysql_drop_db($database_name, $link_identifier);
+ if ($result === false) {
+ throw MysqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Returns an array that corresponds to the lengths of each field
+ * in the last row fetched by MySQL.
+ *
+ * mysql_fetch_lengths stores the lengths of
+ * each result column in the last row returned by
+ * mysql_fetch_row,
+ * mysql_fetch_assoc,
+ * mysql_fetch_array, and
+ * mysql_fetch_object in an array, starting at
+ * offset 0.
+ *
+ * @param resource $result The result resource that
+ * is being evaluated. This result comes from a call to
+ * mysql_query.
+ * @return array An array of lengths on success.
+ * @throws MysqlException
+ *
+ */
+function mysql_fetch_lengths($result): array
+{
+ error_clear_last();
+ $result = \mysql_fetch_lengths($result);
+ if ($result === false) {
+ throw MysqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * mysql_field_flags returns the field flags of
+ * the specified field. The flags are reported as a single word
+ * per flag separated by a single space, so that you can split the
+ * returned value using explode.
+ *
+ * @param resource $result The result resource that
+ * is being evaluated. This result comes from a call to
+ * mysql_query.
+ * @param int $field_offset The numerical field offset. The
+ * field_offset starts at 0. If
+ * field_offset does not exist, an error of level
+ * E_WARNING is also issued.
+ * @return string Returns a string of flags associated with the result.
+ *
+ * The following flags are reported, if your version of MySQL
+ * is current enough to support them: "not_null",
+ * "primary_key", "unique_key",
+ * "multiple_key", "blob",
+ * "unsigned", "zerofill",
+ * "binary", "enum",
+ * "auto_increment" and "timestamp".
+ * @throws MysqlException
+ *
+ */
+function mysql_field_flags($result, int $field_offset): string
+{
+ error_clear_last();
+ $result = \mysql_field_flags($result, $field_offset);
+ if ($result === false) {
+ throw MysqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * mysql_field_len returns the length of the
+ * specified field.
+ *
+ * @param resource $result The result resource that
+ * is being evaluated. This result comes from a call to
+ * mysql_query.
+ * @param int $field_offset The numerical field offset. The
+ * field_offset starts at 0. If
+ * field_offset does not exist, an error of level
+ * E_WARNING is also issued.
+ * @return int The length of the specified field index on success.
+ * @throws MysqlException
+ *
+ */
+function mysql_field_len($result, int $field_offset): int
+{
+ error_clear_last();
+ $result = \mysql_field_len($result, $field_offset);
+ if ($result === false) {
+ throw MysqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * mysql_field_name returns the name of the
+ * specified field index.
+ *
+ * @param resource $result The result resource that
+ * is being evaluated. This result comes from a call to
+ * mysql_query.
+ * @param int $field_offset The numerical field offset. The
+ * field_offset starts at 0. If
+ * field_offset does not exist, an error of level
+ * E_WARNING is also issued.
+ * @return string The name of the specified field index on success.
+ * @throws MysqlException
+ *
+ */
+function mysql_field_name($result, int $field_offset): string
+{
+ error_clear_last();
+ $result = \mysql_field_name($result, $field_offset);
+ if ($result === false) {
+ throw MysqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Seeks to the specified field offset. If the next call to
+ * mysql_fetch_field doesn't include a field
+ * offset, the field offset specified in
+ * mysql_field_seek will be returned.
+ *
+ * @param resource $result The result resource that
+ * is being evaluated. This result comes from a call to
+ * mysql_query.
+ * @param int $field_offset The numerical field offset. The
+ * field_offset starts at 0. If
+ * field_offset does not exist, an error of level
+ * E_WARNING is also issued.
+ * @throws MysqlException
+ *
+ */
+function mysql_field_seek($result, int $field_offset): void
+{
+ error_clear_last();
+ $result = \mysql_field_seek($result, $field_offset);
+ if ($result === false) {
+ throw MysqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * mysql_free_result will free all memory
+ * associated with the result identifier result.
+ *
+ * mysql_free_result only needs to be called if
+ * you are concerned about how much memory is being used for queries
+ * that return large result sets. All associated result memory is
+ * automatically freed at the end of the script's execution.
+ *
+ * @param resource $result The result resource that
+ * is being evaluated. This result comes from a call to
+ * mysql_query.
+ * @throws MysqlException
+ *
+ */
+function mysql_free_result($result): void
+{
+ error_clear_last();
+ $result = \mysql_free_result($result);
+ if ($result === false) {
+ throw MysqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Describes the type of connection in use for the connection, including the
+ * server host name.
+ *
+ * @param resource $link_identifier The MySQL connection. If the
+ * link identifier is not specified, the last link opened by
+ * mysql_connect is assumed. If no such link is found, it
+ * will try to create one as if mysql_connect had been called
+ * with no arguments. If no connection is found or established, an
+ * E_WARNING level error is generated.
+ * @return string Returns a string describing the type of MySQL connection in use for the
+ * connection.
+ * @throws MysqlException
+ *
+ */
+function mysql_get_host_info($link_identifier = null): string
+{
+ error_clear_last();
+ $result = \mysql_get_host_info($link_identifier);
+ if ($result === false) {
+ throw MysqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Retrieves the MySQL protocol.
+ *
+ * @param resource $link_identifier The MySQL connection. If the
+ * link identifier is not specified, the last link opened by
+ * mysql_connect is assumed. If no such link is found, it
+ * will try to create one as if mysql_connect had been called
+ * with no arguments. If no connection is found or established, an
+ * E_WARNING level error is generated.
+ * @return int Returns the MySQL protocol on success.
+ * @throws MysqlException
+ *
+ */
+function mysql_get_proto_info($link_identifier = null): int
+{
+ error_clear_last();
+ $result = \mysql_get_proto_info($link_identifier);
+ if ($result === false) {
+ throw MysqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Retrieves the MySQL server version.
+ *
+ * @param resource $link_identifier The MySQL connection. If the
+ * link identifier is not specified, the last link opened by
+ * mysql_connect is assumed. If no such link is found, it
+ * will try to create one as if mysql_connect had been called
+ * with no arguments. If no connection is found or established, an
+ * E_WARNING level error is generated.
+ * @return string Returns the MySQL server version on success.
+ * @throws MysqlException
+ *
+ */
+function mysql_get_server_info($link_identifier = null): string
+{
+ error_clear_last();
+ $result = \mysql_get_server_info($link_identifier);
+ if ($result === false) {
+ throw MysqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Returns detailed information about the last query.
+ *
+ * @param resource $link_identifier The MySQL connection. If the
+ * link identifier is not specified, the last link opened by
+ * mysql_connect is assumed. If no such link is found, it
+ * will try to create one as if mysql_connect had been called
+ * with no arguments. If no connection is found or established, an
+ * E_WARNING level error is generated.
+ * @return string Returns information about the statement on success. See the example below for which statements provide information,
+ * and what the returned value may look like. Statements that are not listed
+ * will return FALSE.
+ * @throws MysqlException
+ *
+ */
+function mysql_info($link_identifier = null): string
+{
+ error_clear_last();
+ $result = \mysql_info($link_identifier);
+ if ($result === false) {
+ throw MysqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Returns a result pointer containing the databases available from the
+ * current mysql daemon.
+ *
+ * @param resource $link_identifier The MySQL connection. If the
+ * link identifier is not specified, the last link opened by
+ * mysql_connect is assumed. If no such link is found, it
+ * will try to create one as if mysql_connect had been called
+ * with no arguments. If no connection is found or established, an
+ * E_WARNING level error is generated.
+ * @return resource Returns a result pointer resource on success. Use the mysql_tablename function to traverse
+ * this result pointer, or any function for result tables, such as
+ * mysql_fetch_array.
+ * @throws MysqlException
+ *
+ */
+function mysql_list_dbs($link_identifier = null)
+{
+ error_clear_last();
+ $result = \mysql_list_dbs($link_identifier);
+ if ($result === false) {
+ throw MysqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Retrieves information about the given table name.
+ *
+ * This function is deprecated. It is preferable to use
+ * mysql_query to issue an SQL SHOW COLUMNS FROM
+ * table [LIKE 'name'] statement instead.
+ *
+ * @param string $database_name The name of the database that's being queried.
+ * @param string $table_name The name of the table that's being queried.
+ * @param resource $link_identifier The MySQL connection. If the
+ * link identifier is not specified, the last link opened by
+ * mysql_connect is assumed. If no such link is found, it
+ * will try to create one as if mysql_connect had been called
+ * with no arguments. If no connection is found or established, an
+ * E_WARNING level error is generated.
+ * @return resource A result pointer resource on success.
+ *
+ * The returned result can be used with mysql_field_flags,
+ * mysql_field_len,
+ * mysql_field_name and
+ * mysql_field_type.
+ * @throws MysqlException
+ *
+ */
+function mysql_list_fields(string $database_name, string $table_name, $link_identifier = null)
+{
+ error_clear_last();
+ $result = \mysql_list_fields($database_name, $table_name, $link_identifier);
+ if ($result === false) {
+ throw MysqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Retrieves the current MySQL server threads.
+ *
+ * @param resource $link_identifier The MySQL connection. If the
+ * link identifier is not specified, the last link opened by
+ * mysql_connect is assumed. If no such link is found, it
+ * will try to create one as if mysql_connect had been called
+ * with no arguments. If no connection is found or established, an
+ * E_WARNING level error is generated.
+ * @return resource A result pointer resource on success.
+ * @throws MysqlException
+ *
+ */
+function mysql_list_processes($link_identifier = null)
+{
+ error_clear_last();
+ $result = \mysql_list_processes($link_identifier);
+ if ($result === false) {
+ throw MysqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Retrieves a list of table names from a MySQL database.
+ *
+ * This function is deprecated. It is preferable to use
+ * mysql_query to issue an SQL SHOW TABLES
+ * [FROM db_name] [LIKE 'pattern'] statement instead.
+ *
+ * @param string $database The name of the database
+ * @param resource $link_identifier The MySQL connection. If the
+ * link identifier is not specified, the last link opened by
+ * mysql_connect is assumed. If no such link is found, it
+ * will try to create one as if mysql_connect had been called
+ * with no arguments. If no connection is found or established, an
+ * E_WARNING level error is generated.
+ * @return resource A result pointer resource on success.
+ *
+ * Use the mysql_tablename function to
+ * traverse this result pointer, or any function for result tables,
+ * such as mysql_fetch_array.
+ * @throws MysqlException
+ *
+ */
+function mysql_list_tables(string $database, $link_identifier = null)
+{
+ error_clear_last();
+ $result = \mysql_list_tables($database, $link_identifier);
+ if ($result === false) {
+ throw MysqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Retrieves the number of fields from a query.
+ *
+ * @param resource $result The result resource that
+ * is being evaluated. This result comes from a call to
+ * mysql_query.
+ * @return int Returns the number of fields in the result set resource on
+ * success.
+ * @throws MysqlException
+ *
+ */
+function mysql_num_fields($result): int
+{
+ error_clear_last();
+ $result = \mysql_num_fields($result);
+ if ($result === false) {
+ throw MysqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Retrieves the number of rows from a result set. This command is only valid
+ * for statements like SELECT or SHOW that return an actual result set.
+ * To retrieve the number of rows affected by a INSERT, UPDATE, REPLACE or
+ * DELETE query, use mysql_affected_rows.
+ *
+ * @param resource $result The result resource that
+ * is being evaluated. This result comes from a call to
+ * mysql_query.
+ * @return int The number of rows in a result set on success.
+ * @throws MysqlException
+ *
+ */
+function mysql_num_rows($result): int
+{
+ error_clear_last();
+ $result = \mysql_num_rows($result);
+ if ($result === false) {
+ throw MysqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * mysql_query sends a unique query (multiple queries
+ * are not supported) to the currently
+ * active database on the server that's associated with the
+ * specified link_identifier.
+ *
+ * @param string $query An SQL query
+ *
+ * The query string should not end with a semicolon.
+ * Data inside the query should be properly escaped.
+ * @param resource $link_identifier The MySQL connection. If the
+ * link identifier is not specified, the last link opened by
+ * mysql_connect is assumed. If no such link is found, it
+ * will try to create one as if mysql_connect had been called
+ * with no arguments. If no connection is found or established, an
+ * E_WARNING level error is generated.
+ * @return resource|bool For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning resultset,
+ * mysql_query
+ * returns a resource on success.
+ *
+ * For other type of SQL statements, INSERT, UPDATE, DELETE, DROP, etc,
+ * mysql_query returns TRUE on success.
+ *
+ * The returned result resource should be passed to
+ * mysql_fetch_array, and other
+ * functions for dealing with result tables, to access the returned data.
+ *
+ * Use mysql_num_rows to find out how many rows
+ * were returned for a SELECT statement or
+ * mysql_affected_rows to find out how many
+ * rows were affected by a DELETE, INSERT, REPLACE, or UPDATE
+ * statement.
+ *
+ * mysql_query will also fail and return FALSE
+ * if the user does not have permission to access the table(s) referenced by
+ * the query.
+ * @throws MysqlException
+ *
+ */
+function mysql_query(string $query, $link_identifier = null)
+{
+ error_clear_last();
+ $result = \mysql_query($query, $link_identifier);
+ if ($result === false) {
+ throw MysqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Escapes special characters in the unescaped_string,
+ * taking into account the current character set of the connection so that it
+ * is safe to place it in a mysql_query. If binary data
+ * is to be inserted, this function must be used.
+ *
+ * mysql_real_escape_string calls MySQL's library function
+ * mysql_real_escape_string, which prepends backslashes to the following characters:
+ * \x00, \n,
+ * \r, \, ',
+ * " and \x1a.
+ *
+ * This function must always (with few exceptions) be used to make data
+ * safe before sending a query to MySQL.
+ *
+ * @param string $unescaped_string The string that is to be escaped.
+ * @param resource $link_identifier The MySQL connection. If the
+ * link identifier is not specified, the last link opened by
+ * mysql_connect is assumed. If no such link is found, it
+ * will try to create one as if mysql_connect had been called
+ * with no arguments. If no connection is found or established, an
+ * E_WARNING level error is generated.
+ * @return string Returns the escaped string.
+ * @throws MysqlException
+ *
+ */
+function mysql_real_escape_string(string $unescaped_string, $link_identifier = null): string
+{
+ error_clear_last();
+ $result = \mysql_real_escape_string($unescaped_string, $link_identifier);
+ if ($result === false) {
+ throw MysqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Retrieves the contents of one cell from a MySQL result set.
+ *
+ * When working on large result sets, you should consider using one
+ * of the functions that fetch an entire row (specified below). As
+ * these functions return the contents of multiple cells in one
+ * function call, they're MUCH quicker than
+ * mysql_result. Also, note that specifying a
+ * numeric offset for the field argument is much quicker than
+ * specifying a fieldname or tablename.fieldname argument.
+ *
+ * @param resource $result The result resource that
+ * is being evaluated. This result comes from a call to
+ * mysql_query.
+ * @param int $row The row number from the result that's being retrieved. Row numbers
+ * start at 0.
+ * @param mixed $field The name or offset of the field being retrieved.
+ *
+ * It can be the field's offset, the field's name, or the field's table
+ * dot field name (tablename.fieldname). If the column name has been
+ * aliased ('select foo as bar from...'), use the alias instead of the
+ * column name. If undefined, the first field is retrieved.
+ * @return string The contents of one cell from a MySQL result set on success.
+ * @throws MysqlException
+ *
+ */
+function mysql_result($result, int $row, $field = 0): string
+{
+ error_clear_last();
+ $result = \mysql_result($result, $row, $field);
+ if ($result === false) {
+ throw MysqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Sets the current active database on the server that's associated with the
+ * specified link identifier. Every subsequent call to
+ * mysql_query will be made on the active database.
+ *
+ * @param string $database_name The name of the database that is to be selected.
+ * @param resource $link_identifier The MySQL connection. If the
+ * link identifier is not specified, the last link opened by
+ * mysql_connect is assumed. If no such link is found, it
+ * will try to create one as if mysql_connect had been called
+ * with no arguments. If no connection is found or established, an
+ * E_WARNING level error is generated.
+ * @throws MysqlException
+ *
+ */
+function mysql_select_db(string $database_name, $link_identifier = null): void
+{
+ error_clear_last();
+ $result = \mysql_select_db($database_name, $link_identifier);
+ if ($result === false) {
+ throw MysqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the default character set for the current connection.
+ *
+ * @param string $charset A valid character set name.
+ * @param resource $link_identifier The MySQL connection. If the
+ * link identifier is not specified, the last link opened by
+ * mysql_connect is assumed. If no such link is found, it
+ * will try to create one as if mysql_connect had been called
+ * with no arguments. If no connection is found or established, an
+ * E_WARNING level error is generated.
+ * @throws MysqlException
+ *
+ */
+function mysql_set_charset(string $charset, $link_identifier = null): void
+{
+ error_clear_last();
+ $result = \mysql_set_charset($charset, $link_identifier);
+ if ($result === false) {
+ throw MysqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Retrieves the table name from a result.
+ *
+ * This function is deprecated. It is preferable to use
+ * mysql_query to issue an SQL SHOW TABLES
+ * [FROM db_name] [LIKE 'pattern'] statement instead.
+ *
+ * @param resource $result A result pointer resource that's returned from
+ * mysql_list_tables.
+ * @param int $i The integer index (row/table number)
+ * @return string The name of the table on success.
+ *
+ * Use the mysql_tablename function to
+ * traverse this result pointer, or any function for result tables,
+ * such as mysql_fetch_array.
+ * @throws MysqlException
+ *
+ */
+function mysql_tablename($result, int $i): string
+{
+ error_clear_last();
+ $result = \mysql_tablename($result, $i);
+ if ($result === false) {
+ throw MysqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Retrieves the current thread ID. If the connection is lost, and a reconnect
+ * with mysql_ping is executed, the thread ID will
+ * change. This means only retrieve the thread ID when needed.
+ *
+ * @param resource $link_identifier The MySQL connection. If the
+ * link identifier is not specified, the last link opened by
+ * mysql_connect is assumed. If no such link is found, it
+ * will try to create one as if mysql_connect had been called
+ * with no arguments. If no connection is found or established, an
+ * E_WARNING level error is generated.
+ * @return int The thread ID on success.
+ * @throws MysqlException
+ *
+ */
+function mysql_thread_id($link_identifier = null): int
+{
+ error_clear_last();
+ $result = \mysql_thread_id($link_identifier);
+ if ($result === false) {
+ throw MysqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * mysql_unbuffered_query sends the SQL query
+ * query to MySQL without automatically
+ * fetching and buffering the result rows as
+ * mysql_query does. This saves a considerable
+ * amount of memory with SQL queries that produce large result sets,
+ * and you can start working on the result set immediately after the
+ * first row has been retrieved as you don't have to wait until the
+ * complete SQL query has been performed. To use
+ * mysql_unbuffered_query while multiple database
+ * connections are open, you must specify the optional parameter
+ * link_identifier to identify which connection
+ * you want to use.
+ *
+ * @param string $query The SQL query to execute.
+ *
+ * Data inside the query should be properly escaped.
+ * @param resource $link_identifier The MySQL connection. If the
+ * link identifier is not specified, the last link opened by
+ * mysql_connect is assumed. If no such link is found, it
+ * will try to create one as if mysql_connect had been called
+ * with no arguments. If no connection is found or established, an
+ * E_WARNING level error is generated.
+ * @return resource|bool For SELECT, SHOW, DESCRIBE or EXPLAIN statements,
+ * mysql_unbuffered_query
+ * returns a resource on success.
+ *
+ * For other type of SQL statements, UPDATE, DELETE, DROP, etc,
+ * mysql_unbuffered_query returns TRUE on success.
+ * @throws MysqlException
+ *
+ */
+function mysql_unbuffered_query(string $query, $link_identifier = null)
+{
+ error_clear_last();
+ $result = \mysql_unbuffered_query($query, $link_identifier);
+ if ($result === false) {
+ throw MysqlException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/mysqli.php b/vendor/thecodingmachine/safe/generated/mysqli.php
new file mode 100644
index 000000000..c8807af4a
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/mysqli.php
@@ -0,0 +1,42 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\MysqliException;
+
+/**
+ * Returns an empty array.
+ * Available only with mysqlnd.
+ *
+ * @return array Returns an empty array on success, FALSE otherwise.
+ * @throws MysqliException
+ *
+ */
+function mysqli_get_cache_stats(): array
+{
+ error_clear_last();
+ $result = \mysqli_get_cache_stats();
+ if ($result === false) {
+ throw MysqliException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Returns client per-process statistics.
+ * Available only with mysqlnd.
+ *
+ * @return array Returns an array with client stats if success, FALSE otherwise.
+ * @throws MysqliException
+ *
+ */
+function mysqli_get_client_stats(): array
+{
+ error_clear_last();
+ $result = \mysqli_get_client_stats();
+ if ($result === false) {
+ throw MysqliException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/mysqlndMs.php b/vendor/thecodingmachine/safe/generated/mysqlndMs.php
new file mode 100644
index 000000000..2fd4f32a2
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/mysqlndMs.php
@@ -0,0 +1,119 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\MysqlndMsException;
+
+/**
+ * Returns a list of currently configured servers.
+ *
+ * @param mixed $connection A MySQL connection handle obtained from any of the
+ * connect functions of the mysqli,
+ * mysql or
+ * PDO_MYSQL extensions.
+ * @return array FALSE on error. Otherwise, returns an array with two entries
+ * masters and slaves each of which contains
+ * an array listing all corresponding servers.
+ *
+ * The function can be used to check and debug the list of servers currently
+ * used by the plugin. It is mostly useful when the list of servers changes at
+ * runtime, for example, when using MySQL Fabric.
+ *
+ * masters and slaves server entries
+ * @throws MysqlndMsException
+ *
+ */
+function mysqlnd_ms_dump_servers($connection): array
+{
+ error_clear_last();
+ $result = \mysqlnd_ms_dump_servers($connection);
+ if ($result === false) {
+ throw MysqlndMsException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * MySQL Fabric related.
+ *
+ * Switch the connection to the nodes handling global sharding queries
+ * for the given table name.
+ *
+ * @param mixed $connection A MySQL connection handle obtained from any of the
+ * connect functions of the mysqli,
+ * mysql or
+ * PDO_MYSQL extensions.
+ * @param mixed $table_name The table name to ask Fabric about.
+ * @return array FALSE on error. Otherwise, TRUE
+ * @throws MysqlndMsException
+ *
+ */
+function mysqlnd_ms_fabric_select_global($connection, $table_name): array
+{
+ error_clear_last();
+ $result = \mysqlnd_ms_fabric_select_global($connection, $table_name);
+ if ($result === false) {
+ throw MysqlndMsException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * MySQL Fabric related.
+ *
+ * Switch the connection to the shards responsible for the
+ * given table name and shard key.
+ *
+ * @param mixed $connection A MySQL connection handle obtained from any of the
+ * connect functions of the mysqli,
+ * mysql or
+ * PDO_MYSQL extensions.
+ * @param mixed $table_name The table name to ask Fabric about.
+ * @param mixed $shard_key The shard key to ask Fabric about.
+ * @return array FALSE on error. Otherwise, TRUE
+ * @throws MysqlndMsException
+ *
+ */
+function mysqlnd_ms_fabric_select_shard($connection, $table_name, $shard_key): array
+{
+ error_clear_last();
+ $result = \mysqlnd_ms_fabric_select_shard($connection, $table_name, $shard_key);
+ if ($result === false) {
+ throw MysqlndMsException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Returns an array which describes the last used connection from the plugins
+ * connection pool currently pointed to by the user connection handle. If using the
+ * plugin, a user connection handle represents a pool of database connections.
+ * It is not possible to tell from the user connection handles properties to which
+ * database server from the pool the user connection handle points.
+ *
+ * The function can be used to debug or monitor PECL mysqlnd_ms.
+ *
+ * @param mixed $connection A MySQL connection handle obtained from any of the
+ * connect functions of the mysqli,
+ * mysql or
+ * PDO_MYSQL extensions.
+ * @return array FALSE on error. Otherwise, an
+ * array which describes the connection used to
+ * execute the last statement on.
+ *
+ * Array which describes the connection.
+ * @throws MysqlndMsException
+ *
+ */
+function mysqlnd_ms_get_last_used_connection($connection): array
+{
+ error_clear_last();
+ $result = \mysqlnd_ms_get_last_used_connection($connection);
+ if ($result === false) {
+ throw MysqlndMsException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/mysqlndQc.php b/vendor/thecodingmachine/safe/generated/mysqlndQc.php
new file mode 100644
index 000000000..9a99a379c
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/mysqlndQc.php
@@ -0,0 +1,103 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\MysqlndQcException;
+
+/**
+ * Flush all cache contents.
+ *
+ * Flushing the cache is a storage handler responsibility.
+ * All built-in storage handler but the
+ * memcache storage
+ * handler support flushing the cache. The
+ * memcache
+ * storage handler cannot flush its cache contents.
+ *
+ * User-defined storage handler may or may not support the operation.
+ *
+ * @throws MysqlndQcException
+ *
+ */
+function mysqlnd_qc_clear_cache(): void
+{
+ error_clear_last();
+ $result = \mysqlnd_qc_clear_cache();
+ if ($result === false) {
+ throw MysqlndQcException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Installs a callback which decides whether a statement is cached.
+ *
+ * There are several ways of hinting PELC/mysqlnd_qc to cache a query.
+ * By default, PECL/mysqlnd_qc attempts to cache a if caching of all statements
+ * is enabled or the query string begins with a certain SQL hint.
+ * The plugin internally calls a function named is_select()
+ * to find out. This internal function can be replaced with a user-defined callback.
+ * Then, the user-defined callback is responsible to decide whether the plugin
+ * attempts to cache a statement. Because the internal function is replaced
+ * with the callback, the callback gains full control. The callback is free
+ * to ignore the configuration setting mysqlnd_qc.cache_by_default
+ * and SQL hints.
+ *
+ * The callback is invoked for every statement inspected by the plugin.
+ * It is given the statements string as a parameter. The callback returns
+ * FALSE if the statement shall not be cached. It returns TRUE to
+ * make the plugin attempt to cache the statements result set, if any.
+ * A so-created cache entry is given the default TTL set with the
+ * PHP configuration directive mysqlnd_qc.ttl.
+ * If a different TTL shall be used, the callback returns a numeric
+ * value to be used as the TTL.
+ *
+ * The internal is_select function is part of the internal
+ * cache storage handler interface. Thus, a user-defined storage handler
+ * offers the same capabilities.
+ *
+ * @param string $callback
+ * @return mixed Returns TRUE on success.
+ * @throws MysqlndQcException
+ *
+ */
+function mysqlnd_qc_set_is_select(string $callback)
+{
+ error_clear_last();
+ $result = \mysqlnd_qc_set_is_select($callback);
+ if ($result === false) {
+ throw MysqlndQcException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Sets the storage handler used by the query cache. A list of available
+ * storage handler can be obtained from
+ * mysqlnd_qc_get_available_handlers.
+ * Which storage are available depends on the compile time
+ * configuration of the query cache plugin. The
+ * default storage handler is always available.
+ * All other storage handler must be enabled explicitly when building the
+ * extension.
+ *
+ * @param string $handler Handler can be of type string representing the name of a
+ * built-in storage handler or an object of type
+ * mysqlnd_qc_handler_default.
+ * The names of the built-in storage handler are
+ * default,
+ * APC,
+ * MEMCACHE,
+ * sqlite.
+ * @throws MysqlndQcException
+ *
+ */
+function mysqlnd_qc_set_storage_handler(string $handler): void
+{
+ error_clear_last();
+ $result = \mysqlnd_qc_set_storage_handler($handler);
+ if ($result === false) {
+ throw MysqlndQcException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/network.php b/vendor/thecodingmachine/safe/generated/network.php
new file mode 100644
index 000000000..6d46b6ce3
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/network.php
@@ -0,0 +1,639 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\NetworkException;
+
+/**
+ * closelog closes the descriptor being used to write to
+ * the system logger. The use of closelog is optional.
+ *
+ * @throws NetworkException
+ *
+ */
+function closelog(): void
+{
+ error_clear_last();
+ $result = \closelog();
+ if ($result === false) {
+ throw NetworkException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Fetch DNS Resource Records associated with the given
+ * hostname.
+ *
+ * @param string $hostname hostname should be a valid DNS hostname such
+ * as "www.example.com". Reverse lookups can be generated
+ * using in-addr.arpa notation, but
+ * gethostbyaddr is more suitable for
+ * the majority of reverse lookups.
+ *
+ * Per DNS standards, email addresses are given in user.host format (for
+ * example: hostmaster.example.com as opposed to [email protected]),
+ * be sure to check this value and modify if necessary before using it
+ * with a functions such as mail.
+ * @param int $type By default, dns_get_record will search for any
+ * resource records associated with hostname.
+ * To limit the query, specify the optional type
+ * parameter. May be any one of the following:
+ * DNS_A, DNS_CNAME,
+ * DNS_HINFO, DNS_CAA,
+ * DNS_MX, DNS_NS,
+ * DNS_PTR, DNS_SOA,
+ * DNS_TXT, DNS_AAAA,
+ * DNS_SRV, DNS_NAPTR,
+ * DNS_A6, DNS_ALL
+ * or DNS_ANY.
+ *
+ * Because of eccentricities in the performance of libresolv
+ * between platforms, DNS_ANY will not
+ * always return every record, the slower DNS_ALL
+ * will collect all records more reliably.
+ *
+ * DNS_CAA is not supported on Windows.
+ * @param array|null $authns Passed by reference and, if given, will be populated with Resource
+ * Records for the Authoritative Name Servers.
+ * @param array|null $addtl Passed by reference and, if given, will be populated with any
+ * Additional Records.
+ * @param bool $raw The type will be interpreted as a raw DNS type ID
+ * (the DNS_* constants cannot be used).
+ * The return value will contain a data key, which needs
+ * to be manually parsed.
+ * @return array This function returns an array of associative arrays. Each associative array contains
+ * at minimum the following keys:
+ *
+ * Basic DNS attributes
+ *
+ *
+ *
+ * Attribute
+ * Meaning
+ *
+ *
+ *
+ *
+ * host
+ *
+ * The record in the DNS namespace to which the rest of the associated data refers.
+ *
+ *
+ *
+ * class
+ *
+ * dns_get_record only returns Internet class records and as
+ * such this parameter will always return IN.
+ *
+ *
+ *
+ * type
+ *
+ * String containing the record type. Additional attributes will also be contained
+ * in the resulting array dependant on the value of type. See table below.
+ *
+ *
+ *
+ * ttl
+ *
+ * "Time To Live" remaining for this record. This will not equal
+ * the record's original ttl, but will rather equal the original ttl minus whatever
+ * length of time has passed since the authoritative name server was queried.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * Other keys in associative arrays dependant on 'type'
+ *
+ *
+ *
+ * Type
+ * Extra Columns
+ *
+ *
+ *
+ *
+ * A
+ *
+ * ip: An IPv4 addresses in dotted decimal notation.
+ *
+ *
+ *
+ * MX
+ *
+ * pri: Priority of mail exchanger.
+ * Lower numbers indicate greater priority.
+ * target: FQDN of the mail exchanger.
+ * See also dns_get_mx.
+ *
+ *
+ *
+ * CNAME
+ *
+ * target: FQDN of location in DNS namespace to which
+ * the record is aliased.
+ *
+ *
+ *
+ * NS
+ *
+ * target: FQDN of the name server which is authoritative
+ * for this hostname.
+ *
+ *
+ *
+ * PTR
+ *
+ * target: Location within the DNS namespace to which
+ * this record points.
+ *
+ *
+ *
+ * TXT
+ *
+ * txt: Arbitrary string data associated with this record.
+ *
+ *
+ *
+ * HINFO
+ *
+ * cpu: IANA number designating the CPU of the machine
+ * referenced by this record.
+ * os: IANA number designating the Operating System on
+ * the machine referenced by this record.
+ * See IANA's Operating System
+ * Names for the meaning of these values.
+ *
+ *
+ *
+ * CAA
+ *
+ * flags: A one-byte bitfield; currently only bit 0 is defined,
+ * meaning 'critical'; other bits are reserved and should be ignored.
+ * tag: The CAA tag name (alphanumeric ASCII string).
+ * value: The CAA tag value (binary string, may use subformats).
+ * For additional information see: RFC 6844
+ *
+ *
+ *
+ * SOA
+ *
+ * mname: FQDN of the machine from which the resource
+ * records originated.
+ * rname: Email address of the administrative contact
+ * for this domain.
+ * serial: Serial # of this revision of the requested
+ * domain.
+ * refresh: Refresh interval (seconds) secondary name
+ * servers should use when updating remote copies of this domain.
+ * retry: Length of time (seconds) to wait after a
+ * failed refresh before making a second attempt.
+ * expire: Maximum length of time (seconds) a secondary
+ * DNS server should retain remote copies of the zone data without a
+ * successful refresh before discarding.
+ * minimum-ttl: Minimum length of time (seconds) a
+ * client can continue to use a DNS resolution before it should request
+ * a new resolution from the server. Can be overridden by individual
+ * resource records.
+ *
+ *
+ *
+ * AAAA
+ *
+ * ipv6: IPv6 address
+ *
+ *
+ *
+ * A6(PHP &gt;= 5.1.0)
+ *
+ * masklen: Length (in bits) to inherit from the target
+ * specified by chain.
+ * ipv6: Address for this specific record to merge with
+ * chain.
+ * chain: Parent record to merge with
+ * ipv6 data.
+ *
+ *
+ *
+ * SRV
+ *
+ * pri: (Priority) lowest priorities should be used first.
+ * weight: Ranking to weight which of commonly prioritized
+ * targets should be chosen at random.
+ * target and port: hostname and port
+ * where the requested service can be found.
+ * For additional information see: RFC 2782
+ *
+ *
+ *
+ * NAPTR
+ *
+ * order and pref: Equivalent to
+ * pri and weight above.
+ * flags, services, regex,
+ * and replacement: Parameters as defined by
+ * RFC 2915.
+ *
+ *
+ *
+ *
+ *
+ * @throws NetworkException
+ *
+ */
+function dns_get_record(string $hostname, int $type = DNS_ANY, ?array &$authns = null, ?array &$addtl = null, bool $raw = false): array
+{
+ error_clear_last();
+ $result = \dns_get_record($hostname, $type, $authns, $addtl, $raw);
+ if ($result === false) {
+ throw NetworkException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Initiates a socket connection to the resource specified by
+ * hostname.
+ *
+ * PHP supports targets in the Internet and Unix domains as described in
+ * . A list of supported transports can also be
+ * retrieved using stream_get_transports.
+ *
+ * The socket will by default be opened in blocking mode. You can
+ * switch it to non-blocking mode by using
+ * stream_set_blocking.
+ *
+ * The function stream_socket_client is similar but
+ * provides a richer set of options, including non-blocking connection and the
+ * ability to provide a stream context.
+ *
+ * @param string $hostname If OpenSSL support is
+ * installed, you may prefix the hostname
+ * with either ssl:// or tls:// to
+ * use an SSL or TLS client connection over TCP/IP to connect to the
+ * remote host.
+ * @param int $port The port number. This can be omitted and skipped with
+ * -1 for transports that do not use ports, such as
+ * unix://.
+ * @param int|null $errno If provided, holds the system level error number that occurred in the
+ * system-level connect() call.
+ *
+ * If the value returned in errno is
+ * 0 and the function returned FALSE, it is an
+ * indication that the error occurred before the
+ * connect() call. This is most likely due to a
+ * problem initializing the socket.
+ * @param string|null $errstr The error message as a string.
+ * @param float $timeout The connection timeout, in seconds.
+ *
+ * If you need to set a timeout for reading/writing data over the
+ * socket, use stream_set_timeout, as the
+ * timeout parameter to
+ * fsockopen only applies while connecting the
+ * socket.
+ * @return resource fsockopen returns a file pointer which may be used
+ * together with the other file functions (such as
+ * fgets, fgetss,
+ * fwrite, fclose, and
+ * feof). If the call fails, it will return FALSE
+ * @throws NetworkException
+ *
+ */
+function fsockopen(string $hostname, int $port = -1, ?int &$errno = null, ?string &$errstr = null, float $timeout = null)
+{
+ error_clear_last();
+ if ($timeout !== null) {
+ $result = \fsockopen($hostname, $port, $errno, $errstr, $timeout);
+ } else {
+ $result = \fsockopen($hostname, $port, $errno, $errstr);
+ }
+ if ($result === false) {
+ throw NetworkException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * gethostname gets the standard host name for
+ * the local machine.
+ *
+ * @return string Returns a string with the hostname on success, otherwise FALSE is
+ * returned.
+ * @throws NetworkException
+ *
+ */
+function gethostname(): string
+{
+ error_clear_last();
+ $result = \gethostname();
+ if ($result === false) {
+ throw NetworkException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * getprotobyname returns the protocol number
+ * associated with the protocol name as per
+ * /etc/protocols.
+ *
+ * @param string $name The protocol name.
+ * @return int Returns the protocol number.
+ * @throws NetworkException
+ *
+ */
+function getprotobyname(string $name): int
+{
+ error_clear_last();
+ $result = \getprotobyname($name);
+ if ($result === false) {
+ throw NetworkException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * getprotobynumber returns the protocol name
+ * associated with protocol number as per
+ * /etc/protocols.
+ *
+ * @param int $number The protocol number.
+ * @return string Returns the protocol name as a string.
+ * @throws NetworkException
+ *
+ */
+function getprotobynumber(int $number): string
+{
+ error_clear_last();
+ $result = \getprotobynumber($number);
+ if ($result === false) {
+ throw NetworkException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Registers a function that will be called when PHP starts sending output.
+ *
+ * The callback is executed just after PHP prepares all
+ * headers to be sent, and before any other output is sent, creating a window
+ * to manipulate the outgoing headers before being sent.
+ *
+ * @param callable $callback Function called just before the headers are sent. It gets no parameters
+ * and the return value is ignored.
+ * @throws NetworkException
+ *
+ */
+function header_register_callback(callable $callback): void
+{
+ error_clear_last();
+ $result = \header_register_callback($callback);
+ if ($result === false) {
+ throw NetworkException::createFromPhpError();
+ }
+}
+
+
+/**
+ *
+ *
+ * @param string $in_addr A 32bit IPv4, or 128bit IPv6 address.
+ * @return string Returns a string representation of the address.
+ * @throws NetworkException
+ *
+ */
+function inet_ntop(string $in_addr): string
+{
+ error_clear_last();
+ $result = \inet_ntop($in_addr);
+ if ($result === false) {
+ throw NetworkException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * openlog opens a connection to the system
+ * logger for a program.
+ *
+ * The use of openlog is optional. It
+ * will automatically be called by syslog if
+ * necessary, in which case ident will default
+ * to FALSE.
+ *
+ * @param string $ident The string ident is added to each message.
+ * @param int $option The option argument is used to indicate
+ * what logging options will be used when generating a log message.
+ *
+ * openlog Options
+ *
+ *
+ *
+ * Constant
+ * Description
+ *
+ *
+ *
+ *
+ * LOG_CONS
+ *
+ * if there is an error while sending data to the system logger,
+ * write directly to the system console
+ *
+ *
+ *
+ * LOG_NDELAY
+ *
+ * open the connection to the logger immediately
+ *
+ *
+ *
+ * LOG_ODELAY
+ *
+ * (default) delay opening the connection until the first
+ * message is logged
+ *
+ *
+ *
+ * LOG_PERROR
+ * print log message also to standard error
+ *
+ *
+ * LOG_PID
+ * include PID with each message
+ *
+ *
+ *
+ *
+ * You can use one or more of these options. When using multiple options
+ * you need to OR them, i.e. to open the connection
+ * immediately, write to the console and include the PID in each message,
+ * you will use: LOG_CONS | LOG_NDELAY | LOG_PID
+ * @param int $facility The facility argument is used to specify what
+ * type of program is logging the message. This allows you to specify
+ * (in your machine's syslog configuration) how messages coming from
+ * different facilities will be handled.
+ *
+ * openlog Facilities
+ *
+ *
+ *
+ * Constant
+ * Description
+ *
+ *
+ *
+ *
+ * LOG_AUTH
+ *
+ * security/authorization messages (use
+ * LOG_AUTHPRIV instead
+ * in systems where that constant is defined)
+ *
+ *
+ *
+ * LOG_AUTHPRIV
+ * security/authorization messages (private)
+ *
+ *
+ * LOG_CRON
+ * clock daemon (cron and at)
+ *
+ *
+ * LOG_DAEMON
+ * other system daemons
+ *
+ *
+ * LOG_KERN
+ * kernel messages
+ *
+ *
+ * LOG_LOCAL0 ... LOG_LOCAL7
+ * reserved for local use, these are not available in Windows
+ *
+ *
+ * LOG_LPR
+ * line printer subsystem
+ *
+ *
+ * LOG_MAIL
+ * mail subsystem
+ *
+ *
+ * LOG_NEWS
+ * USENET news subsystem
+ *
+ *
+ * LOG_SYSLOG
+ * messages generated internally by syslogd
+ *
+ *
+ * LOG_USER
+ * generic user-level messages
+ *
+ *
+ * LOG_UUCP
+ * UUCP subsystem
+ *
+ *
+ *
+ *
+ *
+ * LOG_USER is the only valid log type under Windows
+ * operating systems
+ * @throws NetworkException
+ *
+ */
+function openlog(string $ident, int $option, int $facility): void
+{
+ error_clear_last();
+ $result = \openlog($ident, $option, $facility);
+ if ($result === false) {
+ throw NetworkException::createFromPhpError();
+ }
+}
+
+
+/**
+ * syslog generates a log message that will be
+ * distributed by the system logger.
+ *
+ * For information on setting up a user defined log handler, see the
+ * syslog.conf
+ * 5 Unix manual page. More
+ * information on the syslog facilities and option can be found in the man
+ * pages for syslog
+ * 3 on Unix machines.
+ *
+ * @param int $priority priority is a combination of the facility and
+ * the level. Possible values are:
+ *
+ * syslog Priorities (in descending order)
+ *
+ *
+ *
+ * Constant
+ * Description
+ *
+ *
+ *
+ *
+ * LOG_EMERG
+ * system is unusable
+ *
+ *
+ * LOG_ALERT
+ * action must be taken immediately
+ *
+ *
+ * LOG_CRIT
+ * critical conditions
+ *
+ *
+ * LOG_ERR
+ * error conditions
+ *
+ *
+ * LOG_WARNING
+ * warning conditions
+ *
+ *
+ * LOG_NOTICE
+ * normal, but significant, condition
+ *
+ *
+ * LOG_INFO
+ * informational message
+ *
+ *
+ * LOG_DEBUG
+ * debug-level message
+ *
+ *
+ *
+ *
+ * @param string $message The message to send, except that the two characters
+ * %m will be replaced by the error message string
+ * (strerror) corresponding to the present value of
+ * errno.
+ * @throws NetworkException
+ *
+ */
+function syslog(int $priority, string $message): void
+{
+ error_clear_last();
+ $result = \syslog($priority, $message);
+ if ($result === false) {
+ throw NetworkException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/oci8.php b/vendor/thecodingmachine/safe/generated/oci8.php
new file mode 100644
index 000000000..f2bac2781
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/oci8.php
@@ -0,0 +1,1721 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\Oci8Exception;
+
+/**
+ * Binds the PHP array var_array to the Oracle
+ * placeholder name, which points to an Oracle PL/SQL
+ * array. Whether it will be used for input or output will be determined at
+ * run-time.
+ *
+ * @param resource $statement A valid OCI statement identifier.
+ * @param string $name The Oracle placeholder.
+ * @param array $var_array An array.
+ * @param int $max_table_length Sets the maximum length both for incoming and result arrays.
+ * @param int $max_item_length Sets maximum length for array items. If not specified or equals to -1,
+ * oci_bind_array_by_name will find the longest
+ * element in the incoming array and will use it as the maximum length.
+ * @param int $type Should be used to set the type of PL/SQL array items. See list of
+ * available types below:
+ *
+ *
+ *
+ *
+ * SQLT_NUM - for arrays of NUMBER.
+ *
+ *
+ *
+ *
+ * SQLT_INT - for arrays of INTEGER (Note: INTEGER
+ * it is actually a synonym for NUMBER(38), but
+ * SQLT_NUM type won't work in this case even
+ * though they are synonyms).
+ *
+ *
+ *
+ *
+ * SQLT_FLT - for arrays of FLOAT.
+ *
+ *
+ *
+ *
+ * SQLT_AFC - for arrays of CHAR.
+ *
+ *
+ *
+ *
+ * SQLT_CHR - for arrays of VARCHAR2.
+ *
+ *
+ *
+ *
+ * SQLT_VCS - for arrays of VARCHAR.
+ *
+ *
+ *
+ *
+ * SQLT_AVC - for arrays of CHARZ.
+ *
+ *
+ *
+ *
+ * SQLT_STR - for arrays of STRING.
+ *
+ *
+ *
+ *
+ * SQLT_LVC - for arrays of LONG VARCHAR.
+ *
+ *
+ *
+ *
+ * SQLT_ODT - for arrays of DATE.
+ *
+ *
+ *
+ *
+ * SQLT_NUM - for arrays of NUMBER.
+ *
+ * SQLT_INT - for arrays of INTEGER (Note: INTEGER
+ * it is actually a synonym for NUMBER(38), but
+ * SQLT_NUM type won't work in this case even
+ * though they are synonyms).
+ *
+ * SQLT_FLT - for arrays of FLOAT.
+ *
+ * SQLT_AFC - for arrays of CHAR.
+ *
+ * SQLT_CHR - for arrays of VARCHAR2.
+ *
+ * SQLT_VCS - for arrays of VARCHAR.
+ *
+ * SQLT_AVC - for arrays of CHARZ.
+ *
+ * SQLT_STR - for arrays of STRING.
+ *
+ * SQLT_LVC - for arrays of LONG VARCHAR.
+ *
+ * SQLT_ODT - for arrays of DATE.
+ * @throws Oci8Exception
+ *
+ */
+function oci_bind_array_by_name($statement, string $name, array &$var_array, int $max_table_length, int $max_item_length = -1, int $type = SQLT_AFC): void
+{
+ error_clear_last();
+ $result = \oci_bind_array_by_name($statement, $name, $var_array, $max_table_length, $max_item_length, $type);
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Binds a PHP variable variable to the Oracle
+ * bind variable placeholder bv_name. Binding
+ * is important for Oracle database performance and also as a way to
+ * avoid SQL Injection security issues.
+ *
+ * Binding allows the database to reuse the statement context and
+ * caches from previous executions of the statement, even if another
+ * user or process originally executed it. Binding reduces SQL
+ * Injection concerns because the data associated with a bind
+ * variable is never treated as part of the SQL statement. It does
+ * not need quoting or escaping.
+ *
+ * PHP variables that have been bound can be changed and the
+ * statement re-executed without needing to re-parse the statement or
+ * re-bind.
+ *
+ * In Oracle, bind variables are commonly divided
+ * into IN binds for values that are passed into
+ * the database, and OUT binds for values that are
+ * returned to PHP. A bind variable may be
+ * both IN and OUT. Whether a
+ * bind variable will be used for input or output is determined at
+ * run-time.
+ *
+ * You must specify maxlength when using
+ * an OUT bind so that PHP allocates enough memory
+ * to hold the returned value.
+ *
+ * For IN binds it is recommended to set
+ * the maxlength length if the statement is
+ * re-executed multiple times with different values for the PHP
+ * variable. Otherwise Oracle may truncate data to the length of the
+ * initial PHP variable value. If you don't know what the maximum
+ * length will be, then re-call oci_bind_by_name
+ * with the current data size prior to
+ * each oci_execute call. Binding an
+ * unnecessarily large length will have an impact on process memory
+ * in the database.
+ *
+ * A bind call tells Oracle which memory address to read data from.
+ * For IN binds that address needs to contain
+ * valid data when oci_execute is called. This
+ * means that the variable bound must remain in scope until
+ * execution. If it doesn't, unexpected results or errors such as
+ * "ORA-01460: unimplemented or unreasonable conversion requested"
+ * may occur. For OUT binds one symptom is no
+ * value being set in the PHP variable.
+ *
+ * For a statement that is repeatedly executed, binding values that
+ * never change may reduce the ability of the Oracle optimizer to
+ * choose the best statement execution plan. Long running statements
+ * that are rarely re-executed may not benefit from binding. However
+ * in both cases, binding might be safer than joining strings into a
+ * SQL statement, as this can be a security risk if unfiltered user
+ * text is concatenated.
+ *
+ * @param resource $statement A valid OCI8 statement identifer.
+ * @param string $bv_name The colon-prefixed bind variable placeholder used in the
+ * statement. The colon is optional
+ * in bv_name. Oracle does not use question
+ * marks for placeholders.
+ * @param mixed $variable The PHP variable to be associated with bv_name
+ * @param int $maxlength Sets the maximum length for the data. If you set it to -1, this
+ * function will use the current length
+ * of variable to set the maximum
+ * length. In this case the variable must
+ * exist and contain data
+ * when oci_bind_by_name is called.
+ * @param int $type The datatype that Oracle will treat the data as. The
+ * default type used
+ * is SQLT_CHR. Oracle will convert the data
+ * between this type and the database column (or PL/SQL variable
+ * type), when possible.
+ *
+ * If you need to bind an abstract datatype (LOB/ROWID/BFILE) you
+ * need to allocate it first using the
+ * oci_new_descriptor function. The
+ * length is not used for abstract datatypes
+ * and should be set to -1.
+ *
+ * Possible values for type are:
+ *
+ *
+ *
+ * SQLT_BFILEE or OCI_B_BFILE
+ * - for BFILEs;
+ *
+ *
+ *
+ *
+ * SQLT_CFILEE or OCI_B_CFILEE
+ * - for CFILEs;
+ *
+ *
+ *
+ *
+ * SQLT_CLOB or OCI_B_CLOB
+ * - for CLOBs;
+ *
+ *
+ *
+ *
+ * SQLT_BLOB or OCI_B_BLOB
+ * - for BLOBs;
+ *
+ *
+ *
+ *
+ * SQLT_RDD or OCI_B_ROWID
+ * - for ROWIDs;
+ *
+ *
+ *
+ *
+ * SQLT_NTY or OCI_B_NTY
+ * - for named datatypes;
+ *
+ *
+ *
+ *
+ * SQLT_INT or OCI_B_INT - for integers;
+ *
+ *
+ *
+ *
+ * SQLT_CHR - for VARCHARs;
+ *
+ *
+ *
+ *
+ * SQLT_BIN or OCI_B_BIN
+ * - for RAW columns;
+ *
+ *
+ *
+ *
+ * SQLT_LNG - for LONG columns;
+ *
+ *
+ *
+ *
+ * SQLT_LBI - for LONG RAW columns;
+ *
+ *
+ *
+ *
+ * SQLT_RSET - for cursors created
+ * with oci_new_cursor;
+ *
+ *
+ *
+ *
+ * SQLT_BOL or OCI_B_BOL
+ * - for PL/SQL BOOLEANs (Requires OCI8 2.0.7 and Oracle Database 12c)
+ *
+ *
+ *
+ *
+ * SQLT_BFILEE or OCI_B_BFILE
+ * - for BFILEs;
+ *
+ * SQLT_CFILEE or OCI_B_CFILEE
+ * - for CFILEs;
+ *
+ * SQLT_CLOB or OCI_B_CLOB
+ * - for CLOBs;
+ *
+ * SQLT_BLOB or OCI_B_BLOB
+ * - for BLOBs;
+ *
+ * SQLT_RDD or OCI_B_ROWID
+ * - for ROWIDs;
+ *
+ * SQLT_NTY or OCI_B_NTY
+ * - for named datatypes;
+ *
+ * SQLT_INT or OCI_B_INT - for integers;
+ *
+ * SQLT_CHR - for VARCHARs;
+ *
+ * SQLT_BIN or OCI_B_BIN
+ * - for RAW columns;
+ *
+ * SQLT_LNG - for LONG columns;
+ *
+ * SQLT_LBI - for LONG RAW columns;
+ *
+ * SQLT_RSET - for cursors created
+ * with oci_new_cursor;
+ *
+ * SQLT_BOL or OCI_B_BOL
+ * - for PL/SQL BOOLEANs (Requires OCI8 2.0.7 and Oracle Database 12c)
+ * @throws Oci8Exception
+ *
+ */
+function oci_bind_by_name($statement, string $bv_name, &$variable, int $maxlength = -1, int $type = SQLT_CHR): void
+{
+ error_clear_last();
+ $result = \oci_bind_by_name($statement, $bv_name, $variable, $maxlength, $type);
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Invalidates a cursor, freeing all associated resources and cancels the
+ * ability to read from it.
+ *
+ * @param resource $statement An OCI statement.
+ * @throws Oci8Exception
+ *
+ */
+function oci_cancel($statement): void
+{
+ error_clear_last();
+ $result = \oci_cancel($statement);
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Unsets connection. The underlying database
+ * connection is closed if no other resources are using it and if it
+ * was created with oci_connect
+ * or oci_new_connect.
+ *
+ * It is recommended to close connections that are no longer needed
+ * because this makes database resources available for other users.
+ *
+ * @param resource $connection An Oracle connection identifier returned by
+ * oci_connect, oci_pconnect,
+ * or oci_new_connect.
+ * @throws Oci8Exception
+ *
+ */
+function oci_close($connection): void
+{
+ error_clear_last();
+ $result = \oci_close($connection);
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Commits the outstanding transaction for the
+ * Oracle connection. A commit ends the
+ * current transaction and makes permanent all changes. It releases
+ * all locks held.
+ *
+ * A transaction begins when the first SQL statement that changes data
+ * is executed with oci_execute using
+ * the OCI_NO_AUTO_COMMIT flag. Further data
+ * changes made by other statements become part of the same
+ * transaction. Data changes made in a transaction are temporary
+ * until the transaction is committed or rolled back. Other users of
+ * the database will not see the changes until they are committed.
+ *
+ * When inserting or updating data, using transactions is recommended
+ * for relational data consistency and for performance reasons.
+ *
+ * @param resource $connection An Oracle connection identifier, returned by
+ * oci_connect, oci_pconnect, or oci_new_connect.
+ * @throws Oci8Exception
+ *
+ */
+function oci_commit($connection): void
+{
+ error_clear_last();
+ $result = \oci_commit($connection);
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Returns a connection identifier needed for most other OCI8 operations.
+ *
+ * See Connection Handling for
+ * general information on connection management and connection
+ * pooling.
+ *
+ * From PHP 5.1.2 (PECL OCI8 1.1) oci_close can
+ * be used to close the connection.
+ *
+ * The second and subsequent calls to oci_connect
+ * with the same parameters will return the connection handle returned
+ * from the first call. This means that transactions in one handle are
+ * also in the other handles, because they use the
+ * same underlying database connection. If two
+ * handles need to be transactionally isolated from each other, use
+ * oci_new_connect instead.
+ *
+ * @param string $username The Oracle user name.
+ * @param string $password The password for username.
+ * @param string $connection_string Contains
+ * the Oracle instance to connect to. It can be
+ * an Easy Connect
+ * string, or a Connect Name from
+ * the tnsnames.ora file, or the name of a local
+ * Oracle instance.
+ *
+ * If not specified, PHP uses
+ * environment variables such as TWO_TASK (on Linux)
+ * or LOCAL (on Windows)
+ * and ORACLE_SID to determine the
+ * Oracle instance to connect to.
+ *
+ *
+ * To use the Easy Connect naming method, PHP must be linked with Oracle
+ * 10g or greater Client libraries. The Easy Connect string for Oracle
+ * 10g is of the form:
+ * [//]host_name[:port][/service_name]. From Oracle
+ * 11g, the syntax is:
+ * [//]host_name[:port][/service_name][:server_type][/instance_name].
+ * Service names can be found by running the Oracle
+ * utility lsnrctl status on the database server
+ * machine.
+ *
+ *
+ * The tnsnames.ora file can be in the Oracle Net
+ * search path, which
+ * includes $ORACLE_HOME/network/admin
+ * and /etc. Alternatively
+ * set TNS_ADMIN so
+ * that $TNS_ADMIN/tnsnames.ora is read. Make sure
+ * the web daemon has read access to the file.
+ * @param string $character_set Determines
+ * the character set used by the Oracle Client libraries. The character
+ * set does not need to match the character set used by the database. If
+ * it doesn't match, Oracle will do its best to convert data to and from
+ * the database character set. Depending on the character sets this may
+ * not give usable results. Conversion also adds some time overhead.
+ *
+ * If not specified, the
+ * Oracle Client libraries determine a character set from
+ * the NLS_LANG environment variable.
+ *
+ * Passing this parameter can
+ * reduce the time taken to connect.
+ * @param int $session_mode This
+ * parameter is available since version PHP 5 (PECL OCI8 1.1) and accepts the
+ * following values: OCI_DEFAULT,
+ * OCI_SYSOPER and OCI_SYSDBA.
+ * If either OCI_SYSOPER or
+ * OCI_SYSDBA were specified, this function will try
+ * to establish privileged connection using external credentials.
+ * Privileged connections are disabled by default. To enable them you
+ * need to set oci8.privileged_connect
+ * to On.
+ *
+ *
+ * PHP 5.3 (PECL OCI8 1.3.4) introduced the
+ * OCI_CRED_EXT mode value. This tells Oracle to use
+ * External or OS authentication, which must be configured in the
+ * database. The OCI_CRED_EXT flag can only be used
+ * with username of "/" and a empty password.
+ * oci8.privileged_connect
+ * may be On or Off.
+ *
+ *
+ * OCI_CRED_EXT may be combined with the
+ * OCI_SYSOPER or
+ * OCI_SYSDBA modes.
+ *
+ *
+ * OCI_CRED_EXT is not supported on Windows for
+ * security reasons.
+ * @return resource Returns a connection identifier.
+ * @throws Oci8Exception
+ *
+ */
+function oci_connect(string $username, string $password, string $connection_string = null, string $character_set = null, int $session_mode = null)
+{
+ error_clear_last();
+ if ($session_mode !== null) {
+ $result = \oci_connect($username, $password, $connection_string, $character_set, $session_mode);
+ } elseif ($character_set !== null) {
+ $result = \oci_connect($username, $password, $connection_string, $character_set);
+ } elseif ($connection_string !== null) {
+ $result = \oci_connect($username, $password, $connection_string);
+ } else {
+ $result = \oci_connect($username, $password);
+ }
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Associates a PHP variable with a column for query fetches using oci_fetch.
+ *
+ * The oci_define_by_name call must occur before
+ * executing oci_execute.
+ *
+ * @param resource $statement A valid OCI8 statement
+ * identifier created by oci_parse and executed
+ * by oci_execute, or a REF
+ * CURSOR statement identifier.
+ * @param string $column_name The column name used in the query.
+ *
+ * Use uppercase for Oracle's default, non-case sensitive column
+ * names. Use the exact column name case for case-sensitive
+ * column names.
+ * @param mixed $variable The PHP variable that will contain the returned column value.
+ * @param int $type The data type to be returned. Generally not needed. Note that
+ * Oracle-style data conversions are not performed. For example,
+ * SQLT_INT will be ignored and the returned
+ * data type will still be SQLT_CHR.
+ *
+ * You can optionally use oci_new_descriptor
+ * to allocate LOB/ROWID/BFILE descriptors.
+ * @throws Oci8Exception
+ *
+ */
+function oci_define_by_name($statement, string $column_name, &$variable, int $type = SQLT_CHR): void
+{
+ error_clear_last();
+ $result = \oci_define_by_name($statement, $column_name, $variable, $type);
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Executes a statement previously returned
+ * from oci_parse.
+ *
+ * After execution, statements like INSERT will
+ * have data committed to the database by default. For statements
+ * like SELECT, execution performs the logic of the
+ * query. Query results can subsequently be fetched in PHP with
+ * functions like oci_fetch_array.
+ *
+ * Each parsed statement may be executed multiple times, saving the
+ * cost of re-parsing. This is commonly used
+ * for INSERT statements when data is bound
+ * with oci_bind_by_name.
+ *
+ * @param resource $statement A valid OCI statement identifier.
+ * @param int $mode An optional second parameter can be one of the following constants:
+ *
+ * Execution Modes
+ *
+ *
+ *
+ * Constant
+ * Description
+ *
+ *
+ *
+ *
+ * OCI_COMMIT_ON_SUCCESS
+ * Automatically commit all outstanding changes for
+ * this connection when the statement has succeeded. This
+ * is the default.
+ *
+ *
+ * OCI_DESCRIBE_ONLY
+ * Make query meta data available to functions
+ * like oci_field_name but do not
+ * create a result set. Any subsequent fetch call such
+ * as oci_fetch_array will
+ * fail.
+ *
+ *
+ * OCI_NO_AUTO_COMMIT
+ * Do not automatically commit changes. Prior to PHP
+ * 5.3.2 (PECL OCI8 1.4)
+ * use OCI_DEFAULT which is equivalent
+ * to OCI_NO_AUTO_COMMIT.
+ *
+ *
+ *
+ *
+ *
+ * Using OCI_NO_AUTO_COMMIT mode starts or continues a
+ * transaction. Transactions are automatically rolled back when
+ * the connection is closed, or when the script ends. Explicitly
+ * call oci_commit to commit a transaction,
+ * or oci_rollback to abort it.
+ *
+ * When inserting or updating data, using transactions is
+ * recommended for relational data consistency and for performance
+ * reasons.
+ *
+ * If OCI_NO_AUTO_COMMIT mode is used for any
+ * statement including queries, and
+ * oci_commit
+ * or oci_rollback is not subsequently
+ * called, then OCI8 will perform a rollback at the end of the
+ * script even if no data was changed. To avoid an unnecessary
+ * rollback, many scripts do not
+ * use OCI_NO_AUTO_COMMIT mode for queries or
+ * PL/SQL. Be careful to ensure the appropriate transactional
+ * consistency for the application when
+ * using oci_execute with different modes in
+ * the same script.
+ * @throws Oci8Exception
+ *
+ */
+function oci_execute($statement, int $mode = OCI_COMMIT_ON_SUCCESS): void
+{
+ error_clear_last();
+ $result = \oci_execute($statement, $mode);
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Fetches multiple rows from a query into a two-dimensional array.
+ * By default, all rows are returned.
+ *
+ * This function can be called only once for each query executed
+ * with oci_execute.
+ *
+ * @param resource $statement A valid OCI8 statement
+ * identifier created by oci_parse and executed
+ * by oci_execute, or a REF
+ * CURSOR statement identifier.
+ * @param array|null $output The variable to contain the returned rows.
+ *
+ * LOB columns are returned as strings, where Oracle supports
+ * conversion.
+ *
+ * See oci_fetch_array for more information
+ * on how data and types are fetched.
+ * @param int $skip The number of initial rows to discard when fetching the
+ * result. The default value is 0, so the first row onwards is
+ * returned.
+ * @param int $maxrows The number of rows to return. The default is -1 meaning return
+ * all the rows from skip + 1 onwards.
+ * @param int $flags Parameter flags indicates the array
+ * structure and whether associative arrays should be used.
+ *
+ * oci_fetch_all Array Structure Modes
+ *
+ *
+ *
+ * Constant
+ * Description
+ *
+ *
+ *
+ *
+ * OCI_FETCHSTATEMENT_BY_ROW
+ * The outer array will contain one sub-array per query
+ * row.
+ *
+ *
+ * OCI_FETCHSTATEMENT_BY_COLUMN
+ * The outer array will contain one sub-array per query
+ * column. This is the default.
+ *
+ *
+ *
+ *
+ *
+ * Arrays can be indexed either by column heading or numerically.
+ * Only one index mode will be returned.
+ *
+ * oci_fetch_all Array Index Modes
+ *
+ *
+ *
+ * Constant
+ * Description
+ *
+ *
+ *
+ *
+ * OCI_NUM
+ * Numeric indexes are used for each column's array.
+ *
+ *
+ * OCI_ASSOC
+ * Associative indexes are used for each column's
+ * array. This is the default.
+ *
+ *
+ *
+ *
+ *
+ * Use the addition operator "+" to choose a combination
+ * of array structure and index modes.
+ *
+ * Oracle's default, non-case sensitive column names will have
+ * uppercase array keys. Case-sensitive column names will have
+ * array keys using the exact column case.
+ * Use var_dump
+ * on output to verify the appropriate case
+ * to use for each query.
+ *
+ * Queries that have more than one column with the same name
+ * should use column aliases. Otherwise only one of the columns
+ * will appear in an associative array.
+ * @return int Returns the number of rows in output, which
+ * may be 0 or more.
+ * @throws Oci8Exception
+ *
+ */
+function oci_fetch_all($statement, ?array &$output, int $skip = 0, int $maxrows = -1, int $flags = OCI_FETCHSTATEMENT_BY_COLUMN + OCI_ASSOC): int
+{
+ error_clear_last();
+ $result = \oci_fetch_all($statement, $output, $skip, $maxrows, $flags);
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Returns the name of the field.
+ *
+ * @param resource $statement A valid OCI statement identifier.
+ * @param mixed $field Can be the field's index (1-based) or name.
+ * @return string Returns the name as a strings.
+ * @throws Oci8Exception
+ *
+ */
+function oci_field_name($statement, $field): string
+{
+ error_clear_last();
+ $result = \oci_field_name($statement, $field);
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Returns precision of the field.
+ *
+ * For FLOAT columns, precision is nonzero and scale is -127.
+ * If precision is 0, then column is NUMBER. Else it's
+ * NUMBER(precision, scale).
+ *
+ * @param resource $statement A valid OCI statement identifier.
+ * @param mixed $field Can be the field's index (1-based) or name.
+ * @return int Returns the precision as an integers.
+ * @throws Oci8Exception
+ *
+ */
+function oci_field_precision($statement, $field): int
+{
+ error_clear_last();
+ $result = \oci_field_precision($statement, $field);
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Returns the scale of the column with field index.
+ *
+ * For FLOAT columns, precision is nonzero and scale is -127.
+ * If precision is 0, then column is NUMBER. Else it's
+ * NUMBER(precision, scale).
+ *
+ * @param resource $statement A valid OCI statement identifier.
+ * @param mixed $field Can be the field's index (1-based) or name.
+ * @return int Returns the scale as an integers.
+ * @throws Oci8Exception
+ *
+ */
+function oci_field_scale($statement, $field): int
+{
+ error_clear_last();
+ $result = \oci_field_scale($statement, $field);
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Returns the size of a field.
+ *
+ * @param resource $statement A valid OCI statement identifier.
+ * @param mixed $field Can be the field's index (1-based) or name.
+ * @return int Returns the size of a field in bytess.
+ * @throws Oci8Exception
+ *
+ */
+function oci_field_size($statement, $field): int
+{
+ error_clear_last();
+ $result = \oci_field_size($statement, $field);
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Returns Oracle's raw "SQLT" data type of the field.
+ *
+ * If you want a field's type name, then use oci_field_type instead.
+ *
+ * @param resource $statement A valid OCI statement identifier.
+ * @param mixed $field Can be the field's index (1-based) or name.
+ * @return int Returns Oracle's raw data type as a numbers.
+ * @throws Oci8Exception
+ *
+ */
+function oci_field_type_raw($statement, $field): int
+{
+ error_clear_last();
+ $result = \oci_field_type_raw($statement, $field);
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Returns a field's data type name.
+ *
+ * @param resource $statement A valid OCI statement identifier.
+ * @param mixed $field Can be the field's index (1-based) or name.
+ * @return mixed Returns the field data type as a strings.
+ * @throws Oci8Exception
+ *
+ */
+function oci_field_type($statement, $field)
+{
+ error_clear_last();
+ $result = \oci_field_type($statement, $field);
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Frees a descriptor allocated by oci_new_descriptor.
+ *
+ * @param resource $descriptor
+ * @throws Oci8Exception
+ *
+ */
+function oci_free_descriptor($descriptor): void
+{
+ error_clear_last();
+ $result = \oci_free_descriptor($descriptor);
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Frees resources associated with Oracle's cursor or statement, which was
+ * received from as a result of oci_parse or obtained
+ * from Oracle.
+ *
+ * @param resource $statement A valid OCI statement identifier.
+ * @throws Oci8Exception
+ *
+ */
+function oci_free_statement($statement): void
+{
+ error_clear_last();
+ $result = \oci_free_statement($statement);
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Allocates a new collection object.
+ *
+ * @param resource $connection An Oracle connection identifier, returned by
+ * oci_connect or oci_pconnect.
+ * @param string $tdo Should be a valid named type (uppercase).
+ * @param string $schema Should point to the scheme, where the named type was created. The name
+ * of the current user is the default value.
+ * @return \OCI-Collection Returns a new OCICollection object.
+ * @throws Oci8Exception
+ *
+ */
+function oci_new_collection($connection, string $tdo, string $schema = null)
+{
+ error_clear_last();
+ $result = \oci_new_collection($connection, $tdo, $schema);
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Establishes a new connection to an Oracle server and logs on.
+ *
+ * Unlike oci_connect and
+ * oci_pconnect, oci_new_connect
+ * does not cache connections and will always return a brand-new freshly
+ * opened connection handle. This is useful if your application needs
+ * transactional isolation between two sets of queries.
+ *
+ * @param string $username The Oracle user name.
+ * @param string $password The password for username.
+ * @param string $connection_string Contains
+ * the Oracle instance to connect to. It can be
+ * an Easy Connect
+ * string, or a Connect Name from
+ * the tnsnames.ora file, or the name of a local
+ * Oracle instance.
+ *
+ * If not specified, PHP uses
+ * environment variables such as TWO_TASK (on Linux)
+ * or LOCAL (on Windows)
+ * and ORACLE_SID to determine the
+ * Oracle instance to connect to.
+ *
+ *
+ * To use the Easy Connect naming method, PHP must be linked with Oracle
+ * 10g or greater Client libraries. The Easy Connect string for Oracle
+ * 10g is of the form:
+ * [//]host_name[:port][/service_name]. From Oracle
+ * 11g, the syntax is:
+ * [//]host_name[:port][/service_name][:server_type][/instance_name].
+ * Service names can be found by running the Oracle
+ * utility lsnrctl status on the database server
+ * machine.
+ *
+ *
+ * The tnsnames.ora file can be in the Oracle Net
+ * search path, which
+ * includes $ORACLE_HOME/network/admin
+ * and /etc. Alternatively
+ * set TNS_ADMIN so
+ * that $TNS_ADMIN/tnsnames.ora is read. Make sure
+ * the web daemon has read access to the file.
+ * @param string $character_set Determines
+ * the character set used by the Oracle Client libraries. The character
+ * set does not need to match the character set used by the database. If
+ * it doesn't match, Oracle will do its best to convert data to and from
+ * the database character set. Depending on the character sets this may
+ * not give usable results. Conversion also adds some time overhead.
+ *
+ * If not specified, the
+ * Oracle Client libraries determine a character set from
+ * the NLS_LANG environment variable.
+ *
+ * Passing this parameter can
+ * reduce the time taken to connect.
+ * @param int $session_mode This
+ * parameter is available since version PHP 5 (PECL OCI8 1.1) and accepts the
+ * following values: OCI_DEFAULT,
+ * OCI_SYSOPER and OCI_SYSDBA.
+ * If either OCI_SYSOPER or
+ * OCI_SYSDBA were specified, this function will try
+ * to establish privileged connection using external credentials.
+ * Privileged connections are disabled by default. To enable them you
+ * need to set oci8.privileged_connect
+ * to On.
+ *
+ *
+ * PHP 5.3 (PECL OCI8 1.3.4) introduced the
+ * OCI_CRED_EXT mode value. This tells Oracle to use
+ * External or OS authentication, which must be configured in the
+ * database. The OCI_CRED_EXT flag can only be used
+ * with username of "/" and a empty password.
+ * oci8.privileged_connect
+ * may be On or Off.
+ *
+ *
+ * OCI_CRED_EXT may be combined with the
+ * OCI_SYSOPER or
+ * OCI_SYSDBA modes.
+ *
+ *
+ * OCI_CRED_EXT is not supported on Windows for
+ * security reasons.
+ * @return resource Returns a connection identifier.
+ * @throws Oci8Exception
+ *
+ */
+function oci_new_connect(string $username, string $password, string $connection_string = null, string $character_set = null, int $session_mode = null)
+{
+ error_clear_last();
+ if ($session_mode !== null) {
+ $result = \oci_new_connect($username, $password, $connection_string, $character_set, $session_mode);
+ } elseif ($character_set !== null) {
+ $result = \oci_new_connect($username, $password, $connection_string, $character_set);
+ } elseif ($connection_string !== null) {
+ $result = \oci_new_connect($username, $password, $connection_string);
+ } else {
+ $result = \oci_new_connect($username, $password);
+ }
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Allocates a new statement handle on the specified connection.
+ *
+ * @param resource $connection An Oracle connection identifier, returned by
+ * oci_connect or oci_pconnect.
+ * @return resource Returns a new statement handle.
+ * @throws Oci8Exception
+ *
+ */
+function oci_new_cursor($connection)
+{
+ error_clear_last();
+ $result = \oci_new_cursor($connection);
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Allocates resources to hold descriptor or LOB locator.
+ *
+ * @param resource $connection An Oracle connection identifier, returned by
+ * oci_connect or oci_pconnect.
+ * @param int $type Valid values for type are:
+ * OCI_DTYPE_FILE, OCI_DTYPE_LOB and
+ * OCI_DTYPE_ROWID.
+ * @return \OCI-Lob Returns a new LOB or FILE descriptor on success, FALSE on error.
+ * @throws Oci8Exception
+ *
+ */
+function oci_new_descriptor($connection, int $type = OCI_DTYPE_LOB)
+{
+ error_clear_last();
+ $result = \oci_new_descriptor($connection, $type);
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Gets the number of columns in the given statement.
+ *
+ * @param resource $statement A valid OCI statement identifier.
+ * @return int Returns the number of columns as an integers.
+ * @throws Oci8Exception
+ *
+ */
+function oci_num_fields($statement): int
+{
+ error_clear_last();
+ $result = \oci_num_fields($statement);
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Gets the number of rows affected during statement execution.
+ *
+ * @param resource $statement A valid OCI statement identifier.
+ * @return int Returns the number of rows affected as an integers.
+ * @throws Oci8Exception
+ *
+ */
+function oci_num_rows($statement): int
+{
+ error_clear_last();
+ $result = \oci_num_rows($statement);
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Prepares sql_text using
+ * connection and returns the statement identifier,
+ * which can be used with oci_bind_by_name,
+ * oci_execute and other functions.
+ *
+ * Statement identifiers can be freed
+ * with oci_free_statement or by setting the
+ * variable to NULL.
+ *
+ * @param resource $connection An Oracle connection identifier, returned by
+ * oci_connect, oci_pconnect, or oci_new_connect.
+ * @param string $sql_text The SQL or PL/SQL statement.
+ *
+ * SQL statements should not end with a
+ * semi-colon (";"). PL/SQL
+ * statements should end with a semi-colon
+ * (";").
+ * @return resource Returns a statement handle on success.
+ * @throws Oci8Exception
+ *
+ */
+function oci_parse($connection, string $sql_text)
+{
+ error_clear_last();
+ $result = \oci_parse($connection, $sql_text);
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Creates a persistent connection to an Oracle server and logs on.
+ *
+ * Persistent connections are cached and re-used between requests, resulting
+ * in reduced overhead on each page load; a typical PHP application will have
+ * a single persistent connection open against an Oracle server per Apache
+ * child process (or PHP FastCGI/CGI process). See the Persistent Database
+ * Connections section for more information.
+ *
+ * @param string $username The Oracle user name.
+ * @param string $password The password for username.
+ * @param string $connection_string Contains
+ * the Oracle instance to connect to. It can be
+ * an Easy Connect
+ * string, or a Connect Name from
+ * the tnsnames.ora file, or the name of a local
+ * Oracle instance.
+ *
+ * If not specified, PHP uses
+ * environment variables such as TWO_TASK (on Linux)
+ * or LOCAL (on Windows)
+ * and ORACLE_SID to determine the
+ * Oracle instance to connect to.
+ *
+ *
+ * To use the Easy Connect naming method, PHP must be linked with Oracle
+ * 10g or greater Client libraries. The Easy Connect string for Oracle
+ * 10g is of the form:
+ * [//]host_name[:port][/service_name]. From Oracle
+ * 11g, the syntax is:
+ * [//]host_name[:port][/service_name][:server_type][/instance_name].
+ * Service names can be found by running the Oracle
+ * utility lsnrctl status on the database server
+ * machine.
+ *
+ *
+ * The tnsnames.ora file can be in the Oracle Net
+ * search path, which
+ * includes $ORACLE_HOME/network/admin
+ * and /etc. Alternatively
+ * set TNS_ADMIN so
+ * that $TNS_ADMIN/tnsnames.ora is read. Make sure
+ * the web daemon has read access to the file.
+ * @param string $character_set Determines
+ * the character set used by the Oracle Client libraries. The character
+ * set does not need to match the character set used by the database. If
+ * it doesn't match, Oracle will do its best to convert data to and from
+ * the database character set. Depending on the character sets this may
+ * not give usable results. Conversion also adds some time overhead.
+ *
+ * If not specified, the
+ * Oracle Client libraries determine a character set from
+ * the NLS_LANG environment variable.
+ *
+ * Passing this parameter can
+ * reduce the time taken to connect.
+ * @param int $session_mode This
+ * parameter is available since version PHP 5 (PECL OCI8 1.1) and accepts the
+ * following values: OCI_DEFAULT,
+ * OCI_SYSOPER and OCI_SYSDBA.
+ * If either OCI_SYSOPER or
+ * OCI_SYSDBA were specified, this function will try
+ * to establish privileged connection using external credentials.
+ * Privileged connections are disabled by default. To enable them you
+ * need to set oci8.privileged_connect
+ * to On.
+ *
+ *
+ * PHP 5.3 (PECL OCI8 1.3.4) introduced the
+ * OCI_CRED_EXT mode value. This tells Oracle to use
+ * External or OS authentication, which must be configured in the
+ * database. The OCI_CRED_EXT flag can only be used
+ * with username of "/" and a empty password.
+ * oci8.privileged_connect
+ * may be On or Off.
+ *
+ *
+ * OCI_CRED_EXT may be combined with the
+ * OCI_SYSOPER or
+ * OCI_SYSDBA modes.
+ *
+ *
+ * OCI_CRED_EXT is not supported on Windows for
+ * security reasons.
+ * @return resource Returns a connection identifier.
+ * @throws Oci8Exception
+ *
+ */
+function oci_pconnect(string $username, string $password, string $connection_string = null, string $character_set = null, int $session_mode = null)
+{
+ error_clear_last();
+ if ($session_mode !== null) {
+ $result = \oci_pconnect($username, $password, $connection_string, $character_set, $session_mode);
+ } elseif ($character_set !== null) {
+ $result = \oci_pconnect($username, $password, $connection_string, $character_set);
+ } elseif ($connection_string !== null) {
+ $result = \oci_pconnect($username, $password, $connection_string);
+ } else {
+ $result = \oci_pconnect($username, $password);
+ }
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Returns the data from field in the current row,
+ * fetched by oci_fetch.
+ *
+ * For details on the data type mapping performed by
+ * the OCI8 extension, see the datatypes
+ * supported by the driver
+ *
+ * @param resource $statement
+ * @param mixed $field Can be either use the column number (1-based) or the column name.
+ * The case of the column name must be the case that Oracle meta data
+ * describes the column as, which is uppercase for columns created
+ * case insensitively.
+ * @return string Returns everything as strings except for abstract types (ROWIDs, LOBs and
+ * FILEs).
+ * @throws Oci8Exception
+ *
+ */
+function oci_result($statement, $field): string
+{
+ error_clear_last();
+ $result = \oci_result($statement, $field);
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Reverts all uncommitted changes for the Oracle
+ * connection and ends the transaction. It
+ * releases all locks held. All Oracle SAVEPOINTS
+ * are erased.
+ *
+ * A transaction begins when the first SQL statement that changes data
+ * is executed with oci_execute using
+ * the OCI_NO_AUTO_COMMIT flag. Further data
+ * changes made by other statements become part of the same
+ * transaction. Data changes made in a transaction are temporary
+ * until the transaction is committed or rolled back. Other users of
+ * the database will not see the changes until they are committed.
+ *
+ * When inserting or updating data, using transactions is recommended
+ * for relational data consistency and for performance reasons.
+ *
+ * @param resource $connection An Oracle connection identifier, returned by
+ * oci_connect, oci_pconnect
+ * or oci_new_connect.
+ * @throws Oci8Exception
+ *
+ */
+function oci_rollback($connection): void
+{
+ error_clear_last();
+ $result = \oci_rollback($connection);
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Returns a string with the Oracle Database version and available options
+ *
+ * @param resource $connection
+ * @return string Returns the version information as a string.
+ * @throws Oci8Exception
+ *
+ */
+function oci_server_version($connection): string
+{
+ error_clear_last();
+ $result = \oci_server_version($connection);
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Sets the action name for Oracle tracing.
+ *
+ * The action name is registered with the database when the next
+ * 'round-trip' from PHP to the database occurs, typically when an SQL
+ * statement is executed.
+ *
+ * The action name can subsequently be queried from database administration
+ * views such as V$SESSION. It can be used for
+ * tracing and monitoring such as with V$SQLAREA
+ * and DBMS_MONITOR.SERV_MOD_ACT_STAT_ENABLE.
+ *
+ * The value may be retained across persistent connections.
+ *
+ * @param resource $connection An Oracle connection identifier,
+ * returned by oci_connect, oci_pconnect,
+ * or oci_new_connect.
+ * @param string $action_name User chosen string up to 32 bytes long.
+ * @throws Oci8Exception
+ *
+ */
+function oci_set_action($connection, string $action_name): void
+{
+ error_clear_last();
+ $result = \oci_set_action($connection, $action_name);
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets a timeout limiting the maxium time a database round-trip using this connection may take.
+ *
+ * Each OCI8 operation may make zero or more calls to Oracle's client
+ * library. These internal calls may then may make zero or more
+ * round-trips to Oracle Database. If any one of those round-trips
+ * takes more than time_out milliseconds, then the
+ * operation is cancelled and an error is returned to the application.
+ *
+ * The time_out value applies to each round-trip
+ * individually, not to the sum of all round-trips. Time spent
+ * processing in PHP OCI8 before or after the completion of each
+ * round-trip is not counted.
+ *
+ * When a call is interrupted, Oracle will attempt to clean up the
+ * connection for reuse. This operation is allowed to run for
+ * another time_out period. Depending on the
+ * outcome of the cleanup, the connection may or may not be reusable.
+ *
+ * When persistent connections are used, the timeout value will be
+ * retained across PHP requests.
+ *
+ * The oci_set_call_timeout function is available
+ * when OCI8 uses Oracle 18 (or later) Client libraries.
+ *
+ * @param resource $connection An Oracle connection identifier,
+ * returned by oci_connect, oci_pconnect,
+ * or oci_new_connect.
+ * @param int $time_out The maximum time in milliseconds that any single round-trip between PHP and Oracle Database may take.
+ * @throws Oci8Exception
+ *
+ */
+function oci_set_call_timeout($connection, int $time_out): void
+{
+ error_clear_last();
+ $result = \oci_set_call_timeout($connection, $time_out);
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the client identifier used by various database components to
+ * identify lightweight application users who authenticate as the same
+ * database user.
+ *
+ * The client identifier is registered with the database when the next
+ * 'round-trip' from PHP to the database occurs, typically when an SQL
+ * statement is executed.
+ *
+ * The identifier can subsequently be queried, for example
+ * with SELECT SYS_CONTEXT('USERENV','CLIENT_IDENTIFIER')
+ * FROM DUAL. Database administration views such
+ * as V$SESSION will also contain the value. It
+ * can be used with DBMS_MONITOR.CLIENT_ID_TRACE_ENABLE
+ * for tracing and can also be used for auditing.
+ *
+ * The value may be retained across page requests that use the same persistent connection.
+ *
+ * @param resource $connection An Oracle connection identifier,
+ * returned by oci_connect, oci_pconnect,
+ * or oci_new_connect.
+ * @param string $client_identifier User chosen string up to 64 bytes long.
+ * @throws Oci8Exception
+ *
+ */
+function oci_set_client_identifier($connection, string $client_identifier): void
+{
+ error_clear_last();
+ $result = \oci_set_client_identifier($connection, $client_identifier);
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the client information for Oracle tracing.
+ *
+ * The client information is registered with the database when the next
+ * 'round-trip' from PHP to the database occurs, typically when an SQL
+ * statement is executed.
+ *
+ * The client information can subsequently be queried from database
+ * administration views such as V$SESSION.
+ *
+ * The value may be retained across persistent connections.
+ *
+ * @param resource $connection An Oracle connection identifier,
+ * returned by oci_connect, oci_pconnect,
+ * or oci_new_connect.
+ * @param string $client_info User chosen string up to 64 bytes long.
+ * @throws Oci8Exception
+ *
+ */
+function oci_set_client_info($connection, string $client_info): void
+{
+ error_clear_last();
+ $result = \oci_set_client_info($connection, $client_info);
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the DBOP for Oracle tracing.
+ *
+ * The database operation name is registered with the database when the next
+ * 'round-trip' from PHP to the database occurs, typically when a SQL
+ * statement is executed.
+ *
+ * The database operation can subsequently be queried from database administration
+ * views such as V$SQL_MONITOR.
+ *
+ * The oci_set_db_operation function is available
+ * when OCI8 uses Oracle 12 (or later) Client libraries and Oracle Database 12 (or later).
+ *
+ * @param resource $connection An Oracle connection identifier,
+ * returned by oci_connect, oci_pconnect,
+ * or oci_new_connect.
+ * @param string $dbop User chosen string.
+ * @throws Oci8Exception
+ *
+ */
+function oci_set_db_operation($connection, string $dbop): void
+{
+ error_clear_last();
+ $result = \oci_set_db_operation($connection, $dbop);
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the database "edition" of objects to be used by a subsequent
+ * connections.
+ *
+ * Oracle Editions allow concurrent versions of applications to run
+ * using the same schema and object names. This is useful for
+ * upgrading live systems.
+ *
+ * Call oci_set_edition before calling
+ * oci_connect, oci_pconnect
+ * or oci_new_connect.
+ *
+ * If an edition is set that is not valid in the database, connection
+ * will fail even if oci_set_edition returns success.
+ *
+ * When using persistent connections, if a connection with the
+ * requested edition setting already exists, it is reused. Otherwise,
+ * a different persistent connection is created
+ *
+ * @param string $edition Oracle Database edition name previously created with the SQL
+ * "CREATE EDITION" command.
+ * @throws Oci8Exception
+ *
+ */
+function oci_set_edition(string $edition): void
+{
+ error_clear_last();
+ $result = \oci_set_edition($edition);
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the module name for Oracle tracing.
+ *
+ * The module name is registered with the database when the next
+ * 'round-trip' from PHP to the database occurs, typically when an SQL
+ * statement is executed.
+ *
+ * The name can subsequently be queried from database administration
+ * views such as V$SESSION. It can be used for
+ * tracing and monitoring such as with V$SQLAREA
+ * and DBMS_MONITOR.SERV_MOD_ACT_STAT_ENABLE.
+ *
+ * The value may be retained across persistent connections.
+ *
+ * @param resource $connection An Oracle connection identifier,
+ * returned by oci_connect, oci_pconnect,
+ * or oci_new_connect.
+ * @param string $module_name User chosen string up to 48 bytes long.
+ * @throws Oci8Exception
+ *
+ */
+function oci_set_module_name($connection, string $module_name): void
+{
+ error_clear_last();
+ $result = \oci_set_module_name($connection, $module_name);
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the number of rows to be buffered by the Oracle Client
+ * libraries after a successful query call
+ * to oci_execute and for each subsequent
+ * internal fetch request to the database. For queries returning a
+ * large number of rows, performance can be significantly improved by
+ * increasing the prefetch count above the
+ * default oci8.default_prefetch
+ * value.
+ *
+ * Prefetching is Oracle's efficient way of returning more than one
+ * data row from the database in each network request. This can
+ * result in better network and CPU utilization. The buffering of
+ * rows is internal to OCI8 and the behavior of OCI8 fetching
+ * functions is unchanged regardless of the prefetch count. For
+ * example, oci_fetch_row will always return one
+ * row. The prefetch buffer is per-statement and is not used by
+ * re-executed statements or by other connections.
+ *
+ * Call oci_set_prefetch before
+ * calling oci_execute.
+ *
+ * A tuning goal is to set the prefetch value to a reasonable size for
+ * the network and database to handle. For queries returning a very
+ * large number of rows, overall system efficiency might be better if
+ * rows are retrieved from the database in several chunks (i.e set the
+ * prefetch value smaller than the number of rows). This allows the
+ * database to handle other users' statements while the PHP script is
+ * processing the current set of rows.
+ *
+ * Query prefetching was introduced in Oracle 8i. REF CURSOR
+ * prefetching was introduced in Oracle 11gR2 and occurs when PHP is
+ * linked with Oracle 11gR2 (or later) Client libraries.
+ * Nested cursor prefetching was
+ * introduced in Oracle 11gR2 and requires both the Oracle Client
+ * libraries and the database to be version 11gR2 or greater.
+ *
+ * Prefetching is not supported when queries contain LONG or LOB
+ * columns. The prefetch value is ignored and single-row fetches will
+ * be used in all the situations when prefetching is not supported.
+ *
+ * When using Oracle Database 12c, the prefetch
+ * value set by PHP can be overridden by Oracle's
+ * client oraaccess.xml configuration file. Refer
+ * to Oracle documentation for more detail.
+ *
+ * @param resource $statement A valid OCI8 statement
+ * identifier created by oci_parse and executed
+ * by oci_execute, or a REF
+ * CURSOR statement identifier.
+ * @param int $rows The number of rows to be prefetched, &gt;= 0
+ * @throws Oci8Exception
+ *
+ */
+function oci_set_prefetch($statement, int $rows): void
+{
+ error_clear_last();
+ $result = \oci_set_prefetch($statement, $rows);
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Returns a keyword identifying the type of the
+ * OCI8 statement.
+ *
+ * @param resource $statement A valid OCI8 statement identifier from oci_parse.
+ * @return string Returns the type of statement as one of the
+ * following strings.
+ *
+ * Statement type
+ *
+ *
+ *
+ * Return String
+ * Notes
+ *
+ *
+ *
+ *
+ * ALTER
+ *
+ *
+ *
+ * BEGIN
+ *
+ *
+ *
+ * CALL
+ * Introduced in PHP 5.2.1 (PECL OCI8 1.2.3)
+ *
+ *
+ * CREATE
+ *
+ *
+ *
+ * DECLARE
+ *
+ *
+ *
+ * DELETE
+ *
+ *
+ *
+ * DROP
+ *
+ *
+ *
+ * INSERT
+ *
+ *
+ *
+ * SELECT
+ *
+ *
+ *
+ * UPDATE
+ *
+ *
+ *
+ * UNKNOW.
+ * @throws Oci8Exception
+ *
+ */
+function oci_statement_type($statement): string
+{
+ error_clear_last();
+ $result = \oci_statement_type($statement);
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Unregister the user-defined callback function registered to connection
+ * by oci_register_taf_callback. See
+ * OCI8 Transparent Application Failover (TAF) Support
+ * for information.
+ *
+ * @param resource $connection An Oracle connection identifier.
+ * @throws Oci8Exception
+ *
+ */
+function oci_unregister_taf_callback($connection): void
+{
+ error_clear_last();
+ $result = \oci_unregister_taf_callback($connection);
+ if ($result === false) {
+ throw Oci8Exception::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/opcache.php b/vendor/thecodingmachine/safe/generated/opcache.php
new file mode 100644
index 000000000..04a58205f
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/opcache.php
@@ -0,0 +1,42 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\OpcacheException;
+
+/**
+ * This function compiles a PHP script and adds it to the opcode cache without
+ * executing it. This can be used to prime the cache after a Web server
+ * restart by pre-caching files that will be included in later requests.
+ *
+ * @param string $file The path to the PHP script to be compiled.
+ * @throws OpcacheException
+ *
+ */
+function opcache_compile_file(string $file): void
+{
+ error_clear_last();
+ $result = \opcache_compile_file($file);
+ if ($result === false) {
+ throw OpcacheException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function returns state information about the cache instance
+ *
+ * @param bool $get_scripts Include script specific state information
+ * @return array Returns an array of information, optionally containing script specific state information.
+ * @throws OpcacheException
+ *
+ */
+function opcache_get_status(bool $get_scripts = true): array
+{
+ error_clear_last();
+ $result = \opcache_get_status($get_scripts);
+ if ($result === false) {
+ throw OpcacheException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/openssl.php b/vendor/thecodingmachine/safe/generated/openssl.php
new file mode 100644
index 000000000..117b53d6a
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/openssl.php
@@ -0,0 +1,1088 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\OpensslException;
+
+/**
+ * Gets the cipher initialization vector (iv) length.
+ *
+ * @param string $method The cipher method, see openssl_get_cipher_methods for a list of potential values.
+ * @return int Returns the cipher length on success.
+ * @throws OpensslException
+ *
+ */
+function openssl_cipher_iv_length(string $method): int
+{
+ error_clear_last();
+ $result = \openssl_cipher_iv_length($method);
+ if ($result === false) {
+ throw OpensslException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * openssl_csr_export_to_file takes the Certificate
+ * Signing Request represented by csr and saves it
+ * in PEM format into the file named by outfilename.
+ *
+ * @param string|resource $csr See CSR parameters for a list of valid values.
+ * @param string $outfilename Path to the output file.
+ * @param bool $notext
+ * The optional parameter notext affects
+ * the verbosity of the output; if it is FALSE, then additional human-readable
+ * information is included in the output. The default value of
+ * notext is TRUE.
+ * @throws OpensslException
+ *
+ */
+function openssl_csr_export_to_file($csr, string $outfilename, bool $notext = true): void
+{
+ error_clear_last();
+ $result = \openssl_csr_export_to_file($csr, $outfilename, $notext);
+ if ($result === false) {
+ throw OpensslException::createFromPhpError();
+ }
+}
+
+
+/**
+ * openssl_csr_export takes the Certificate Signing
+ * Request represented by csr and stores it in
+ * PEM format in out, which is passed by
+ * reference.
+ *
+ * @param string|resource $csr See CSR parameters for a list of valid values.
+ * @param string|null $out on success, this string will contain the PEM encoded CSR
+ * @param bool $notext
+ * The optional parameter notext affects
+ * the verbosity of the output; if it is FALSE, then additional human-readable
+ * information is included in the output. The default value of
+ * notext is TRUE.
+ * @throws OpensslException
+ *
+ */
+function openssl_csr_export($csr, ?string &$out, bool $notext = true): void
+{
+ error_clear_last();
+ $result = \openssl_csr_export($csr, $out, $notext);
+ if ($result === false) {
+ throw OpensslException::createFromPhpError();
+ }
+}
+
+
+/**
+ * openssl_csr_get_subject returns subject
+ * distinguished name information encoded in the csr
+ * including fields commonName (CN), organizationName (O), countryName (C) etc.
+ *
+ * @param string|resource $csr See CSR parameters for a list of valid values.
+ * @param bool $use_shortnames shortnames controls how the data is indexed in the
+ * array - if shortnames is TRUE (the default) then
+ * fields will be indexed with the short name form, otherwise, the long name
+ * form will be used - e.g.: CN is the shortname form of commonName.
+ * @return array Returns an associative array with subject description.
+ * @throws OpensslException
+ *
+ */
+function openssl_csr_get_subject($csr, bool $use_shortnames = true): array
+{
+ error_clear_last();
+ $result = \openssl_csr_get_subject($csr, $use_shortnames);
+ if ($result === false) {
+ throw OpensslException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * openssl_csr_new generates a new CSR (Certificate Signing Request)
+ * based on the information provided by dn.
+ *
+ * @param array $dn The Distinguished Name or subject fields to be used in the certificate.
+ * @param resource $privkey privkey should be set to a private key that was
+ * previously generated by openssl_pkey_new (or
+ * otherwise obtained from the other openssl_pkey family of functions).
+ * The corresponding public portion of the key will be used to sign the
+ * CSR.
+ * @param array $configargs By default, the information in your system openssl.conf
+ * is used to initialize the request; you can specify a configuration file
+ * section by setting the config_section_section key of
+ * configargs. You can also specify an alternative
+ * openssl configuration file by setting the value of the
+ * config key to the path of the file you want to use.
+ * The following keys, if present in configargs
+ * behave as their equivalents in the openssl.conf, as
+ * listed in the table below.
+ *
+ * Configuration overrides
+ *
+ *
+ *
+ * configargs key
+ * type
+ * openssl.conf equivalent
+ * description
+ *
+ *
+ *
+ *
+ * digest_alg
+ * string
+ * default_md
+ * Digest method or signature hash, usually one of openssl_get_md_methods
+ *
+ *
+ * x509_extensions
+ * string
+ * x509_extensions
+ * Selects which extensions should be used when creating an x509
+ * certificate
+ *
+ *
+ * req_extensions
+ * string
+ * req_extensions
+ * Selects which extensions should be used when creating a CSR
+ *
+ *
+ * private_key_bits
+ * integer
+ * default_bits
+ * Specifies how many bits should be used to generate a private
+ * key
+ *
+ *
+ * private_key_type
+ * integer
+ * none
+ * Specifies the type of private key to create. This can be one
+ * of OPENSSL_KEYTYPE_DSA,
+ * OPENSSL_KEYTYPE_DH,
+ * OPENSSL_KEYTYPE_RSA or
+ * OPENSSL_KEYTYPE_EC.
+ * The default value is OPENSSL_KEYTYPE_RSA.
+ *
+ *
+ *
+ * encrypt_key
+ * boolean
+ * encrypt_key
+ * Should an exported key (with passphrase) be encrypted?
+ *
+ *
+ * encrypt_key_cipher
+ * integer
+ * none
+ *
+ * One of cipher constants.
+ *
+ *
+ *
+ * curve_name
+ * string
+ * none
+ *
+ * One of openssl_get_curve_names.
+ *
+ *
+ *
+ * config
+ * string
+ * N/A
+ *
+ * Path to your own alternative openssl.conf file.
+ *
+ *
+ *
+ *
+ *
+ * @param array $extraattribs extraattribs is used to specify additional
+ * configuration options for the CSR. Both dn and
+ * extraattribs are associative arrays whose keys are
+ * converted to OIDs and applied to the relevant part of the request.
+ * @return resource Returns the CSR.
+ * @throws OpensslException
+ *
+ */
+function openssl_csr_new(array $dn, &$privkey, array $configargs = null, array $extraattribs = null)
+{
+ error_clear_last();
+ if ($extraattribs !== null) {
+ $result = \openssl_csr_new($dn, $privkey, $configargs, $extraattribs);
+ } elseif ($configargs !== null) {
+ $result = \openssl_csr_new($dn, $privkey, $configargs);
+ } else {
+ $result = \openssl_csr_new($dn, $privkey);
+ }
+ if ($result === false) {
+ throw OpensslException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * openssl_csr_sign generates an x509 certificate
+ * resource from the given CSR.
+ *
+ * @param string|resource $csr A CSR previously generated by openssl_csr_new.
+ * It can also be the path to a PEM encoded CSR when specified as
+ * file://path/to/csr or an exported string generated
+ * by openssl_csr_export.
+ * @param mixed $cacert The generated certificate will be signed by cacert.
+ * If cacert is NULL, the generated certificate
+ * will be a self-signed certificate.
+ * @param string|resource|array $priv_key priv_key is the private key that corresponds to
+ * cacert.
+ * @param int $days days specifies the length of time for which the
+ * generated certificate will be valid, in days.
+ * @param array $configargs You can finetune the CSR signing by configargs.
+ * See openssl_csr_new for more information about
+ * configargs.
+ * @param int $serial An optional the serial number of issued certificate. If not specified
+ * it will default to 0.
+ * @return resource Returns an x509 certificate resource on success, FALSE on failure.
+ * @throws OpensslException
+ *
+ */
+function openssl_csr_sign($csr, $cacert, $priv_key, int $days, array $configargs = null, int $serial = 0)
+{
+ error_clear_last();
+ if ($serial !== 0) {
+ $result = \openssl_csr_sign($csr, $cacert, $priv_key, $days, $configargs, $serial);
+ } elseif ($configargs !== null) {
+ $result = \openssl_csr_sign($csr, $cacert, $priv_key, $days, $configargs);
+ } else {
+ $result = \openssl_csr_sign($csr, $cacert, $priv_key, $days);
+ }
+ if ($result === false) {
+ throw OpensslException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Takes a raw or base64 encoded string and decrypts it using a given method and key.
+ *
+ * @param string $data The encrypted message to be decrypted.
+ * @param string $method The cipher method. For a list of available cipher methods, use
+ * openssl_get_cipher_methods.
+ * @param string $key The key.
+ * @param int $options options can be one of
+ * OPENSSL_RAW_DATA,
+ * OPENSSL_ZERO_PADDING.
+ * @param string $iv A non-NULL Initialization Vector.
+ * @param string $tag The authentication tag in AEAD cipher mode. If it is incorrect, the authentication fails and the function returns FALSE.
+ * @param string $aad Additional authentication data.
+ * @return string The decrypted string on success.
+ * @throws OpensslException
+ *
+ */
+function openssl_decrypt(string $data, string $method, string $key, int $options = 0, string $iv = "", string $tag = "", string $aad = ""): string
+{
+ error_clear_last();
+ $result = \openssl_decrypt($data, $method, $key, $options, $iv, $tag, $aad);
+ if ($result === false) {
+ throw OpensslException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * The shared secret returned by openssl_dh_compute_key is
+ * often used as an encryption key to secretly communicate with a remote party.
+ * This is known as the Diffie-Hellman key exchange.
+ *
+ * @param string $pub_key DH Public key of the remote party.
+ * @param resource $dh_key A local DH private key, corresponding to the public key to be shared with the remote party.
+ * @return string Returns shared secret on success.
+ * @throws OpensslException
+ *
+ */
+function openssl_dh_compute_key(string $pub_key, $dh_key): string
+{
+ error_clear_last();
+ $result = \openssl_dh_compute_key($pub_key, $dh_key);
+ if ($result === false) {
+ throw OpensslException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Computes a digest hash value for the given data using a given method,
+ * and returns a raw or binhex encoded string.
+ *
+ * @param string $data The data.
+ * @param string $method The digest method to use, e.g. "sha256", see openssl_get_md_methods for a list of available digest methods.
+ * @param bool $raw_output Setting to TRUE will return as raw output data, otherwise the return
+ * value is binhex encoded.
+ * @return string Returns the digested hash value on success.
+ * @throws OpensslException
+ *
+ */
+function openssl_digest(string $data, string $method, bool $raw_output = false): string
+{
+ error_clear_last();
+ $result = \openssl_digest($data, $method, $raw_output);
+ if ($result === false) {
+ throw OpensslException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * openssl_open opens (decrypts)
+ * sealed_data using the private key associated with
+ * the key identifier priv_key_id and the envelope key
+ * env_key, and fills
+ * open_data with the decrypted data.
+ * The envelope key is generated when the
+ * data are sealed and can only be used by one specific private key. See
+ * openssl_seal for more information.
+ *
+ * @param string $sealed_data
+ * @param string|null $open_data If the call is successful the opened data is returned in this
+ * parameter.
+ * @param string $env_key
+ * @param string|array|resource $priv_key_id
+ * @param string $method The cipher method.
+ * @param string $iv The initialization vector.
+ * @throws OpensslException
+ *
+ */
+function openssl_open(string $sealed_data, ?string &$open_data, string $env_key, $priv_key_id, string $method = "RC4", string $iv = null): void
+{
+ error_clear_last();
+ if ($iv !== null) {
+ $result = \openssl_open($sealed_data, $open_data, $env_key, $priv_key_id, $method, $iv);
+ } else {
+ $result = \openssl_open($sealed_data, $open_data, $env_key, $priv_key_id, $method);
+ }
+ if ($result === false) {
+ throw OpensslException::createFromPhpError();
+ }
+}
+
+
+/**
+ * openssl_pbkdf2 computes PBKDF2 (Password-Based Key Derivation Function 2),
+ * a key derivation function defined in PKCS5 v2.
+ *
+ * @param string $password Password from which the derived key is generated.
+ * @param string $salt PBKDF2 recommends a crytographic salt of at least 64 bits (8 bytes).
+ * @param int $key_length Length of desired output key.
+ * @param int $iterations The number of iterations desired. NIST
+ * recommends at least 10,000.
+ * @param string $digest_algorithm Optional hash or digest algorithm from openssl_get_md_methods. Defaults to SHA-1.
+ * @return string Returns raw binary string.
+ * @throws OpensslException
+ *
+ */
+function openssl_pbkdf2(string $password, string $salt, int $key_length, int $iterations, string $digest_algorithm = "sha1"): string
+{
+ error_clear_last();
+ $result = \openssl_pbkdf2($password, $salt, $key_length, $iterations, $digest_algorithm);
+ if ($result === false) {
+ throw OpensslException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * openssl_pkcs12_export_to_file stores
+ * x509 into a file named by
+ * filename in a PKCS#12 file format.
+ *
+ * @param string|resource $x509 See Key/Certificate parameters for a list of valid values.
+ * @param string $filename Path to the output file.
+ * @param string|array|resource $priv_key Private key component of PKCS#12 file.
+ * See Public/Private Key parameters for a list of valid values.
+ * @param string $pass Encryption password for unlocking the PKCS#12 file.
+ * @param array $args Optional array, other keys will be ignored.
+ *
+ *
+ *
+ *
+ * Key
+ * Description
+ *
+ *
+ *
+ *
+ * "extracerts"
+ * array of extra certificates or a single certificate to be included in the PKCS#12 file.
+ *
+ *
+ * "friendlyname"
+ * string to be used for the supplied certificate and key
+ *
+ *
+ *
+ *
+ * @throws OpensslException
+ *
+ */
+function openssl_pkcs12_export_to_file($x509, string $filename, $priv_key, string $pass, array $args = null): void
+{
+ error_clear_last();
+ if ($args !== null) {
+ $result = \openssl_pkcs12_export_to_file($x509, $filename, $priv_key, $pass, $args);
+ } else {
+ $result = \openssl_pkcs12_export_to_file($x509, $filename, $priv_key, $pass);
+ }
+ if ($result === false) {
+ throw OpensslException::createFromPhpError();
+ }
+}
+
+
+/**
+ * openssl_pkcs12_export stores
+ * x509 into a string named by
+ * out in a PKCS#12 file format.
+ *
+ * @param string|resource $x509 See Key/Certificate parameters for a list of valid values.
+ * @param string|null $out On success, this will hold the PKCS#12.
+ * @param string|array|resource $priv_key Private key component of PKCS#12 file.
+ * See Public/Private Key parameters for a list of valid values.
+ * @param string $pass Encryption password for unlocking the PKCS#12 file.
+ * @param array $args Optional array, other keys will be ignored.
+ *
+ *
+ *
+ *
+ * Key
+ * Description
+ *
+ *
+ *
+ *
+ * "extracerts"
+ * array of extra certificates or a single certificate to be included in the PKCS#12 file.
+ *
+ *
+ * "friendlyname"
+ * string to be used for the supplied certificate and key
+ *
+ *
+ *
+ *
+ * @throws OpensslException
+ *
+ */
+function openssl_pkcs12_export($x509, ?string &$out, $priv_key, string $pass, array $args = null): void
+{
+ error_clear_last();
+ if ($args !== null) {
+ $result = \openssl_pkcs12_export($x509, $out, $priv_key, $pass, $args);
+ } else {
+ $result = \openssl_pkcs12_export($x509, $out, $priv_key, $pass);
+ }
+ if ($result === false) {
+ throw OpensslException::createFromPhpError();
+ }
+}
+
+
+/**
+ * openssl_pkcs12_read parses the PKCS#12 certificate store supplied by
+ * pkcs12 into a array named
+ * certs.
+ *
+ * @param string $pkcs12 The certificate store contents, not its file name.
+ * @param array|null $certs On success, this will hold the Certificate Store Data.
+ * @param string $pass Encryption password for unlocking the PKCS#12 file.
+ * @throws OpensslException
+ *
+ */
+function openssl_pkcs12_read(string $pkcs12, ?array &$certs, string $pass): void
+{
+ error_clear_last();
+ $result = \openssl_pkcs12_read($pkcs12, $certs, $pass);
+ if ($result === false) {
+ throw OpensslException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Decrypts the S/MIME encrypted message contained in the file specified by
+ * infilename using the certificate and its
+ * associated private key specified by recipcert and
+ * recipkey.
+ *
+ * @param string $infilename
+ * @param string $outfilename The decrypted message is written to the file specified by
+ * outfilename.
+ * @param string|resource $recipcert
+ * @param string|resource|array $recipkey
+ * @throws OpensslException
+ *
+ */
+function openssl_pkcs7_decrypt(string $infilename, string $outfilename, $recipcert, $recipkey = null): void
+{
+ error_clear_last();
+ if ($recipkey !== null) {
+ $result = \openssl_pkcs7_decrypt($infilename, $outfilename, $recipcert, $recipkey);
+ } else {
+ $result = \openssl_pkcs7_decrypt($infilename, $outfilename, $recipcert);
+ }
+ if ($result === false) {
+ throw OpensslException::createFromPhpError();
+ }
+}
+
+
+/**
+ * openssl_pkcs7_encrypt takes the contents of the
+ * file named infile and encrypts them using an RC2
+ * 40-bit cipher so that they can only be read by the intended recipients
+ * specified by recipcerts.
+ *
+ * @param string $infile
+ * @param string $outfile
+ * @param string|resource|array $recipcerts Either a lone X.509 certificate, or an array of X.509 certificates.
+ * @param array $headers headers is an array of headers that
+ * will be prepended to the data after it has been encrypted.
+ *
+ * headers can be either an associative array
+ * keyed by header name, or an indexed array, where each element contains
+ * a single header line.
+ * @param int $flags flags can be used to specify options that affect
+ * the encoding process - see PKCS7
+ * constants.
+ * @param int $cipherid One of cipher constants.
+ * @throws OpensslException
+ *
+ */
+function openssl_pkcs7_encrypt(string $infile, string $outfile, $recipcerts, array $headers, int $flags = 0, int $cipherid = OPENSSL_CIPHER_RC2_40): void
+{
+ error_clear_last();
+ $result = \openssl_pkcs7_encrypt($infile, $outfile, $recipcerts, $headers, $flags, $cipherid);
+ if ($result === false) {
+ throw OpensslException::createFromPhpError();
+ }
+}
+
+
+/**
+ *
+ *
+ * @param string $infilename
+ * @param array|null $certs
+ * @throws OpensslException
+ *
+ */
+function openssl_pkcs7_read(string $infilename, ?array &$certs): void
+{
+ error_clear_last();
+ $result = \openssl_pkcs7_read($infilename, $certs);
+ if ($result === false) {
+ throw OpensslException::createFromPhpError();
+ }
+}
+
+
+/**
+ * openssl_pkcs7_sign takes the contents of the file
+ * named infilename and signs them using the
+ * certificate and its matching private key specified by
+ * signcert and privkey
+ * parameters.
+ *
+ * @param string $infilename The input file you are intending to digitally sign.
+ * @param string $outfilename The file which the digital signature will be written to.
+ * @param string|resource $signcert The X.509 certificate used to digitally sign infilename.
+ * See Key/Certificate parameters for a list of valid values.
+ * @param string|resource|array $privkey privkey is the private key corresponding to signcert.
+ * See Public/Private Key parameters for a list of valid values.
+ * @param array $headers headers is an array of headers that
+ * will be prepended to the data after it has been signed (see
+ * openssl_pkcs7_encrypt for more information about
+ * the format of this parameter).
+ * @param int $flags flags can be used to alter the output - see PKCS7 constants.
+ * @param string $extracerts extracerts specifies the name of a file containing
+ * a bunch of extra certificates to include in the signature which can for
+ * example be used to help the recipient to verify the certificate that you used.
+ * @throws OpensslException
+ *
+ */
+function openssl_pkcs7_sign(string $infilename, string $outfilename, $signcert, $privkey, array $headers, int $flags = PKCS7_DETACHED, string $extracerts = null): void
+{
+ error_clear_last();
+ if ($extracerts !== null) {
+ $result = \openssl_pkcs7_sign($infilename, $outfilename, $signcert, $privkey, $headers, $flags, $extracerts);
+ } else {
+ $result = \openssl_pkcs7_sign($infilename, $outfilename, $signcert, $privkey, $headers, $flags);
+ }
+ if ($result === false) {
+ throw OpensslException::createFromPhpError();
+ }
+}
+
+
+/**
+ * openssl_pkey_export_to_file saves an ascii-armoured
+ * (PEM encoded) rendition of key into the file named
+ * by outfilename.
+ *
+ * @param resource|string|array $key
+ * @param string $outfilename Path to the output file.
+ * @param string $passphrase The key can be optionally protected by a
+ * passphrase.
+ * @param array $configargs configargs can be used to fine-tune the export
+ * process by specifying and/or overriding options for the openssl
+ * configuration file. See openssl_csr_new for more
+ * information about configargs.
+ * @throws OpensslException
+ *
+ */
+function openssl_pkey_export_to_file($key, string $outfilename, string $passphrase = null, array $configargs = null): void
+{
+ error_clear_last();
+ if ($configargs !== null) {
+ $result = \openssl_pkey_export_to_file($key, $outfilename, $passphrase, $configargs);
+ } elseif ($passphrase !== null) {
+ $result = \openssl_pkey_export_to_file($key, $outfilename, $passphrase);
+ } else {
+ $result = \openssl_pkey_export_to_file($key, $outfilename);
+ }
+ if ($result === false) {
+ throw OpensslException::createFromPhpError();
+ }
+}
+
+
+/**
+ * openssl_pkey_export exports
+ * key as a PEM encoded string and stores it into
+ * out (which is passed by reference).
+ *
+ * @param resource $key
+ * @param string|null $out
+ * @param string $passphrase The key is optionally protected by passphrase.
+ * @param array $configargs configargs can be used to fine-tune the export
+ * process by specifying and/or overriding options for the openssl
+ * configuration file. See openssl_csr_new for more
+ * information about configargs.
+ * @throws OpensslException
+ *
+ */
+function openssl_pkey_export($key, ?string &$out, string $passphrase = null, array $configargs = null): void
+{
+ error_clear_last();
+ if ($configargs !== null) {
+ $result = \openssl_pkey_export($key, $out, $passphrase, $configargs);
+ } elseif ($passphrase !== null) {
+ $result = \openssl_pkey_export($key, $out, $passphrase);
+ } else {
+ $result = \openssl_pkey_export($key, $out);
+ }
+ if ($result === false) {
+ throw OpensslException::createFromPhpError();
+ }
+}
+
+
+/**
+ * openssl_pkey_get_private parses
+ * key and prepares it for use by other functions.
+ *
+ * @param string $key key can be one of the following:
+ *
+ * a string having the format
+ * file://path/to/file.pem. The named file must
+ * contain a PEM encoded certificate/private key (it may contain both).
+ *
+ *
+ * A PEM formatted private key.
+ *
+ * @param string $passphrase The optional parameter passphrase must be used
+ * if the specified key is encrypted (protected by a passphrase).
+ * @return resource Returns a positive key resource identifier on success.
+ * @throws OpensslException
+ *
+ */
+function openssl_pkey_get_private(string $key, string $passphrase = "")
+{
+ error_clear_last();
+ $result = \openssl_pkey_get_private($key, $passphrase);
+ if ($result === false) {
+ throw OpensslException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * openssl_pkey_get_public extracts the public key from
+ * certificate and prepares it for use by other
+ * functions.
+ *
+ * @param resource|string $certificate certificate can be one of the following:
+ *
+ * an X.509 certificate resource
+ * a string having the format
+ * file://path/to/file.pem. The named file must
+ * contain a PEM encoded certificate/public key (it may contain both).
+ *
+ *
+ * A PEM formatted public key.
+ *
+ * @return resource Returns a positive key resource identifier on success.
+ * @throws OpensslException
+ *
+ */
+function openssl_pkey_get_public($certificate)
+{
+ error_clear_last();
+ $result = \openssl_pkey_get_public($certificate);
+ if ($result === false) {
+ throw OpensslException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * openssl_pkey_new generates a new private and public
+ * key pair. The public component of the key can be obtained using
+ * openssl_pkey_get_public.
+ *
+ * @param array $configargs You can finetune the key generation (such as specifying the number of
+ * bits) using configargs. See
+ * openssl_csr_new for more information about
+ * configargs.
+ * @return resource Returns a resource identifier for the pkey on success.
+ * @throws OpensslException
+ *
+ */
+function openssl_pkey_new(array $configargs = null)
+{
+ error_clear_last();
+ if ($configargs !== null) {
+ $result = \openssl_pkey_new($configargs);
+ } else {
+ $result = \openssl_pkey_new();
+ }
+ if ($result === false) {
+ throw OpensslException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * openssl_private_decrypt decrypts
+ * data that was previously encrypted via
+ * openssl_public_encrypt and stores the result into
+ * decrypted.
+ *
+ * You can use this function e.g. to decrypt data which is supposed to only be available to you.
+ *
+ * @param string $data
+ * @param string|null $decrypted
+ * @param string|resource|array $key key must be the private key corresponding that
+ * was used to encrypt the data.
+ * @param int $padding padding can be one of
+ * OPENSSL_PKCS1_PADDING,
+ * OPENSSL_SSLV23_PADDING,
+ * OPENSSL_PKCS1_OAEP_PADDING,
+ * OPENSSL_NO_PADDING.
+ * @throws OpensslException
+ *
+ */
+function openssl_private_decrypt(string $data, ?string &$decrypted, $key, int $padding = OPENSSL_PKCS1_PADDING): void
+{
+ error_clear_last();
+ $result = \openssl_private_decrypt($data, $decrypted, $key, $padding);
+ if ($result === false) {
+ throw OpensslException::createFromPhpError();
+ }
+}
+
+
+/**
+ * openssl_private_encrypt encrypts data
+ * with private key and stores the result into
+ * crypted. Encrypted data can be decrypted via
+ * openssl_public_decrypt.
+ *
+ * This function can be used e.g. to sign data (or its hash) to prove that it
+ * is not written by someone else.
+ *
+ * @param string $data
+ * @param string|null $crypted
+ * @param string|resource|array $key
+ * @param int $padding padding can be one of
+ * OPENSSL_PKCS1_PADDING,
+ * OPENSSL_NO_PADDING.
+ * @throws OpensslException
+ *
+ */
+function openssl_private_encrypt(string $data, ?string &$crypted, $key, int $padding = OPENSSL_PKCS1_PADDING): void
+{
+ error_clear_last();
+ $result = \openssl_private_encrypt($data, $crypted, $key, $padding);
+ if ($result === false) {
+ throw OpensslException::createFromPhpError();
+ }
+}
+
+
+/**
+ * openssl_public_decrypt decrypts
+ * data that was previous encrypted via
+ * openssl_private_encrypt and stores the result into
+ * decrypted.
+ *
+ * You can use this function e.g. to check if the message was written by the
+ * owner of the private key.
+ *
+ * @param string $data
+ * @param string|null $decrypted
+ * @param string|resource $key key must be the public key corresponding that
+ * was used to encrypt the data.
+ * @param int $padding padding can be one of
+ * OPENSSL_PKCS1_PADDING,
+ * OPENSSL_NO_PADDING.
+ * @throws OpensslException
+ *
+ */
+function openssl_public_decrypt(string $data, ?string &$decrypted, $key, int $padding = OPENSSL_PKCS1_PADDING): void
+{
+ error_clear_last();
+ $result = \openssl_public_decrypt($data, $decrypted, $key, $padding);
+ if ($result === false) {
+ throw OpensslException::createFromPhpError();
+ }
+}
+
+
+/**
+ * openssl_public_encrypt encrypts data
+ * with public key and stores the result into
+ * crypted. Encrypted data can be decrypted via
+ * openssl_private_decrypt.
+ *
+ * This function can be used e.g. to encrypt message which can be then read
+ * only by owner of the private key. It can be also used to store secure data
+ * in database.
+ *
+ * @param string $data
+ * @param string|null $crypted This will hold the result of the encryption.
+ * @param string|resource $key The public key.
+ * @param int $padding padding can be one of
+ * OPENSSL_PKCS1_PADDING,
+ * OPENSSL_SSLV23_PADDING,
+ * OPENSSL_PKCS1_OAEP_PADDING,
+ * OPENSSL_NO_PADDING.
+ * @throws OpensslException
+ *
+ */
+function openssl_public_encrypt(string $data, ?string &$crypted, $key, int $padding = OPENSSL_PKCS1_PADDING): void
+{
+ error_clear_last();
+ $result = \openssl_public_encrypt($data, $crypted, $key, $padding);
+ if ($result === false) {
+ throw OpensslException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Generates a string of pseudo-random bytes, with the number of bytes
+ * determined by the length parameter.
+ *
+ * It also indicates if a cryptographically strong algorithm was used to produce the
+ * pseudo-random bytes, and does this via the optional crypto_strong
+ * parameter. It's rare for this to be FALSE, but some systems may be broken or old.
+ *
+ * @param int $length The length of the desired string of bytes. Must be a positive integer. PHP will
+ * try to cast this parameter to a non-null integer to use it.
+ * @param bool|null $crypto_strong If passed into the function, this will hold a boolean value that determines
+ * if the algorithm used was "cryptographically strong", e.g., safe for usage with GPG,
+ * passwords, etc. TRUE if it did, otherwise FALSE
+ * @return string Returns the generated string of bytes on success.
+ * @throws OpensslException
+ *
+ */
+function openssl_random_pseudo_bytes(int $length, ?bool &$crypto_strong = null): string
+{
+ error_clear_last();
+ $result = \openssl_random_pseudo_bytes($length, $crypto_strong);
+ if ($result === false) {
+ throw OpensslException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * openssl_seal seals (encrypts)
+ * data by using the given method with a randomly generated
+ * secret key. The key is encrypted with each of the public keys
+ * associated with the identifiers in pub_key_ids
+ * and each encrypted key is returned
+ * in env_keys. This means that one can send
+ * sealed data to multiple recipients (provided one has obtained their
+ * public keys). Each recipient must receive both the sealed data and
+ * the envelope key that was encrypted with the recipient's public key.
+ *
+ * @param string $data The data to seal.
+ * @param string|null $sealed_data The sealed data.
+ * @param array $env_keys Array of encrypted keys.
+ * @param array $pub_key_ids Array of public key resource identifiers.
+ * @param string $method The cipher method.
+ * @param string $iv The initialization vector.
+ * @return int Returns the length of the sealed data on success.
+ * If successful the sealed data is returned in
+ * sealed_data, and the envelope keys in
+ * env_keys.
+ * @throws OpensslException
+ *
+ */
+function openssl_seal(string $data, ?string &$sealed_data, array &$env_keys, array $pub_key_ids, string $method = "RC4", string &$iv = null): int
+{
+ error_clear_last();
+ $result = \openssl_seal($data, $sealed_data, $env_keys, $pub_key_ids, $method, $iv);
+ if ($result === false) {
+ throw OpensslException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * openssl_sign computes a signature for the
+ * specified data by generating a cryptographic
+ * digital signature using the private key associated with
+ * priv_key_id. Note that the data itself is
+ * not encrypted.
+ *
+ * @param string $data The string of data you wish to sign
+ * @param string|null $signature If the call was successful the signature is returned in
+ * signature.
+ * @param resource|string $priv_key_id resource - a key, returned by openssl_get_privatekey
+ *
+ * string - a PEM formatted key
+ * @param int|string $signature_alg int - one of these Signature Algorithms.
+ *
+ * string - a valid string returned by openssl_get_md_methods example, "sha256WithRSAEncryption" or "sha384".
+ * @throws OpensslException
+ *
+ */
+function openssl_sign(string $data, ?string &$signature, $priv_key_id, $signature_alg = OPENSSL_ALGO_SHA1): void
+{
+ error_clear_last();
+ $result = \openssl_sign($data, $signature, $priv_key_id, $signature_alg);
+ if ($result === false) {
+ throw OpensslException::createFromPhpError();
+ }
+}
+
+
+/**
+ * openssl_x509_export_to_file stores
+ * x509 into a file named by
+ * outfilename in a PEM encoded format.
+ *
+ * @param string|resource $x509 See Key/Certificate parameters for a list of valid values.
+ * @param string $outfilename Path to the output file.
+ * @param bool $notext
+ * The optional parameter notext affects
+ * the verbosity of the output; if it is FALSE, then additional human-readable
+ * information is included in the output. The default value of
+ * notext is TRUE.
+ * @throws OpensslException
+ *
+ */
+function openssl_x509_export_to_file($x509, string $outfilename, bool $notext = true): void
+{
+ error_clear_last();
+ $result = \openssl_x509_export_to_file($x509, $outfilename, $notext);
+ if ($result === false) {
+ throw OpensslException::createFromPhpError();
+ }
+}
+
+
+/**
+ * openssl_x509_export stores
+ * x509 into a string named by
+ * output in a PEM encoded format.
+ *
+ * @param string|resource $x509 See Key/Certificate parameters for a list of valid values.
+ * @param string|null $output On success, this will hold the PEM.
+ * @param bool $notext
+ * The optional parameter notext affects
+ * the verbosity of the output; if it is FALSE, then additional human-readable
+ * information is included in the output. The default value of
+ * notext is TRUE.
+ * @throws OpensslException
+ *
+ */
+function openssl_x509_export($x509, ?string &$output, bool $notext = true): void
+{
+ error_clear_last();
+ $result = \openssl_x509_export($x509, $output, $notext);
+ if ($result === false) {
+ throw OpensslException::createFromPhpError();
+ }
+}
+
+
+/**
+ * openssl_x509_fingerprint returns the digest of
+ * x509 as a string.
+ *
+ * @param string|resource $x509 See Key/Certificate parameters for a list of valid values.
+ * @param string $hash_algorithm The digest method or hash algorithm to use, e.g. "sha256", one of openssl_get_md_methods.
+ * @param bool $raw_output When set to TRUE, outputs raw binary data. FALSE outputs lowercase hexits.
+ * @return string Returns a string containing the calculated certificate fingerprint as lowercase hexits unless raw_output is set to TRUE in which case the raw binary representation of the message digest is returned.
+ *
+ * Returns FALSE on failure.
+ * @throws OpensslException
+ *
+ */
+function openssl_x509_fingerprint($x509, string $hash_algorithm = "sha1", bool $raw_output = false): string
+{
+ error_clear_last();
+ $result = \openssl_x509_fingerprint($x509, $hash_algorithm, $raw_output);
+ if ($result === false) {
+ throw OpensslException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * openssl_x509_read parses the certificate supplied by
+ * x509certdata and returns a resource identifier for
+ * it.
+ *
+ * @param string|resource $x509certdata X509 certificate. See Key/Certificate parameters for a list of valid values.
+ * @return resource Returns a resource identifier on success.
+ * @throws OpensslException
+ *
+ */
+function openssl_x509_read($x509certdata)
+{
+ error_clear_last();
+ $result = \openssl_x509_read($x509certdata);
+ if ($result === false) {
+ throw OpensslException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/outcontrol.php b/vendor/thecodingmachine/safe/generated/outcontrol.php
new file mode 100644
index 000000000..fce7c6dd8
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/outcontrol.php
@@ -0,0 +1,100 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\OutcontrolException;
+
+/**
+ * This function discards the contents of the topmost output buffer and turns
+ * off this output buffering. If you want to further process the buffer's
+ * contents you have to call ob_get_contents before
+ * ob_end_clean as the buffer contents are discarded
+ * when ob_end_clean is called.
+ *
+ * The output buffer must be started by
+ * ob_start with PHP_OUTPUT_HANDLER_CLEANABLE
+ * and PHP_OUTPUT_HANDLER_REMOVABLE
+ * flags. Otherwise ob_end_clean will not work.
+ *
+ * @throws OutcontrolException
+ *
+ */
+function ob_end_clean(): void
+{
+ error_clear_last();
+ $result = \ob_end_clean();
+ if ($result === false) {
+ throw OutcontrolException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function will send the contents of the topmost output buffer (if
+ * any) and turn this output buffer off. If you want to further
+ * process the buffer's contents you have to call
+ * ob_get_contents before
+ * ob_end_flush as the buffer contents are
+ * discarded after ob_end_flush is called.
+ *
+ * The output buffer must be started by
+ * ob_start with PHP_OUTPUT_HANDLER_FLUSHABLE
+ * and PHP_OUTPUT_HANDLER_REMOVABLE
+ * flags. Otherwise ob_end_flush will not work.
+ *
+ * @throws OutcontrolException
+ *
+ */
+function ob_end_flush(): void
+{
+ error_clear_last();
+ $result = \ob_end_flush();
+ if ($result === false) {
+ throw OutcontrolException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function adds another name/value pair to the URL rewrite mechanism.
+ * The name and value will be added to URLs (as GET parameter) and forms
+ * (as hidden input fields) the same way as the session ID when transparent
+ * URL rewriting is enabled with session.use_trans_sid.
+ *
+ * This function's behaviour is controlled by the url_rewriter.tags and
+ * url_rewriter.hosts php.ini
+ * parameters.
+ *
+ * Note that this function can be successfully called at most once per request.
+ *
+ * @param string $name The variable name.
+ * @param string $value The variable value.
+ * @throws OutcontrolException
+ *
+ */
+function output_add_rewrite_var(string $name, string $value): void
+{
+ error_clear_last();
+ $result = \output_add_rewrite_var($name, $value);
+ if ($result === false) {
+ throw OutcontrolException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function resets the URL rewriter and removes all rewrite
+ * variables previously set by the output_add_rewrite_var
+ * function.
+ *
+ * @throws OutcontrolException
+ *
+ */
+function output_reset_rewrite_vars(): void
+{
+ error_clear_last();
+ $result = \output_reset_rewrite_vars();
+ if ($result === false) {
+ throw OutcontrolException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/password.php b/vendor/thecodingmachine/safe/generated/password.php
new file mode 100644
index 000000000..3808e02b9
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/password.php
@@ -0,0 +1,126 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\PasswordException;
+
+/**
+ * password_hash creates a new password hash using a strong one-way hashing
+ * algorithm. password_hash is compatible with crypt.
+ * Therefore, password hashes created by crypt can be used with
+ * password_hash.
+ *
+ *
+ *
+ *
+ * PASSWORD_DEFAULT - Use the bcrypt algorithm (default as of PHP 5.5.0).
+ * Note that this constant is designed to change over time as new and stronger algorithms are added
+ * to PHP. For that reason, the length of the result from using this identifier can change over
+ * time. Therefore, it is recommended to store the result in a database column that can expand
+ * beyond 60 characters (255 characters would be a good choice).
+ *
+ *
+ *
+ *
+ * PASSWORD_BCRYPT - Use the CRYPT_BLOWFISH algorithm to
+ * create the hash. This will produce a standard crypt compatible hash using
+ * the "$2y$" identifier. The result will always be a 60 character string.
+ *
+ *
+ *
+ *
+ * PASSWORD_ARGON2I - Use the Argon2i hashing algorithm to create the hash.
+ * This algorithm is only available if PHP has been compiled with Argon2 support.
+ *
+ *
+ *
+ *
+ * PASSWORD_ARGON2ID - Use the Argon2id hashing algorithm to create the hash.
+ * This algorithm is only available if PHP has been compiled with Argon2 support.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * salt (string) - to manually provide a salt to use when hashing the password.
+ * Note that this will override and prevent a salt from being automatically generated.
+ *
+ *
+ * If omitted, a random salt will be generated by password_hash for
+ * each password hashed. This is the intended mode of operation.
+ *
+ *
+ *
+ * The salt option has been deprecated as of PHP 7.0.0. It is now
+ * preferred to simply use the salt that is generated by default.
+ *
+ *
+ *
+ *
+ *
+ * cost (integer) - which denotes the algorithmic cost that should be used.
+ * Examples of these values can be found on the crypt page.
+ *
+ *
+ * If omitted, a default value of 10 will be used. This is a good
+ * baseline cost, but you may want to consider increasing it depending on your hardware.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * memory_cost (integer) - Maximum memory (in kibibytes) that may
+ * be used to compute the Argon2 hash. Defaults to PASSWORD_ARGON2_DEFAULT_MEMORY_COST.
+ *
+ *
+ *
+ *
+ * time_cost (integer) - Maximum amount of time it may
+ * take to compute the Argon2 hash. Defaults to PASSWORD_ARGON2_DEFAULT_TIME_COST.
+ *
+ *
+ *
+ *
+ * threads (integer) - Number of threads to use for computing
+ * the Argon2 hash. Defaults to PASSWORD_ARGON2_DEFAULT_THREADS.
+ *
+ *
+ *
+ *
+ * @param string $password The user's password.
+ *
+ * Using the PASSWORD_BCRYPT as the
+ * algorithm, will result
+ * in the password parameter being truncated to a
+ * maximum length of 72 characters.
+ * @param int|string|null $algo A password algorithm constant denoting the algorithm to use when hashing the password.
+ * @param array $options An associative array containing options. See the password algorithm constants for documentation on the supported options for each algorithm.
+ *
+ * If omitted, a random salt will be created and the default cost will be
+ * used.
+ * @return string Returns the hashed password.
+ *
+ * The used algorithm, cost and salt are returned as part of the hash. Therefore,
+ * all information that's needed to verify the hash is included in it. This allows
+ * the password_verify function to verify the hash without
+ * needing separate storage for the salt or algorithm information.
+ * @throws PasswordException
+ *
+ */
+function password_hash(string $password, $algo, array $options = null): string
+{
+ error_clear_last();
+ if ($options !== null) {
+ $result = \password_hash($password, $algo, $options);
+ } else {
+ $result = \password_hash($password, $algo);
+ }
+ if ($result === false) {
+ throw PasswordException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/pcntl.php b/vendor/thecodingmachine/safe/generated/pcntl.php
new file mode 100644
index 000000000..1cb721e22
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/pcntl.php
@@ -0,0 +1,166 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\PcntlException;
+
+/**
+ * Executes the program with the given arguments.
+ *
+ * @param string $path path must be the path to a binary executable or a
+ * script with a valid path pointing to an executable in the shebang (
+ * #!/usr/local/bin/perl for example) as the first line. See your system's
+ * man execve(2) page for additional information.
+ * @param array $args args is an array of argument strings passed to the
+ * program.
+ * @param array $envs envs is an array of strings which are passed as
+ * environment to the program. The array is in the format of name =&gt; value,
+ * the key being the name of the environmental variable and the value being
+ * the value of that variable.
+ * @throws PcntlException
+ *
+ */
+function pcntl_exec(string $path, array $args = null, array $envs = null): void
+{
+ error_clear_last();
+ if ($envs !== null) {
+ $result = \pcntl_exec($path, $args, $envs);
+ } elseif ($args !== null) {
+ $result = \pcntl_exec($path, $args);
+ } else {
+ $result = \pcntl_exec($path);
+ }
+ if ($result === false) {
+ throw PcntlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * pcntl_getpriority gets the priority of
+ * pid. Because priority levels can differ between
+ * system types and kernel versions, please see your system's getpriority(2)
+ * man page for specific details.
+ *
+ * @param int $pid If not specified, the pid of the current process is used.
+ * @param int $process_identifier One of PRIO_PGRP, PRIO_USER
+ * or PRIO_PROCESS.
+ * @return int pcntl_getpriority returns the priority of the process. A lower numerical value causes more favorable
+ * scheduling.
+ * @throws PcntlException
+ *
+ */
+function pcntl_getpriority(int $pid = null, int $process_identifier = PRIO_PROCESS): int
+{
+ error_clear_last();
+ if ($process_identifier !== PRIO_PROCESS) {
+ $result = \pcntl_getpriority($pid, $process_identifier);
+ } elseif ($pid !== null) {
+ $result = \pcntl_getpriority($pid);
+ } else {
+ $result = \pcntl_getpriority();
+ }
+ if ($result === false) {
+ throw PcntlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * pcntl_setpriority sets the priority of
+ * pid.
+ *
+ * @param int $priority priority is generally a value in the range
+ * -20 to 20. The default priority
+ * is 0 while a lower numerical value causes more
+ * favorable scheduling. Because priority levels can differ between
+ * system types and kernel versions, please see your system's setpriority(2)
+ * man page for specific details.
+ * @param int $pid If not specified, the pid of the current process is used.
+ * @param int $process_identifier One of PRIO_PGRP, PRIO_USER
+ * or PRIO_PROCESS.
+ * @throws PcntlException
+ *
+ */
+function pcntl_setpriority(int $priority, int $pid = null, int $process_identifier = PRIO_PROCESS): void
+{
+ error_clear_last();
+ if ($process_identifier !== PRIO_PROCESS) {
+ $result = \pcntl_setpriority($priority, $pid, $process_identifier);
+ } elseif ($pid !== null) {
+ $result = \pcntl_setpriority($priority, $pid);
+ } else {
+ $result = \pcntl_setpriority($priority);
+ }
+ if ($result === false) {
+ throw PcntlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * The pcntl_signal_dispatch function calls the signal
+ * handlers installed by pcntl_signal for each pending
+ * signal.
+ *
+ * @throws PcntlException
+ *
+ */
+function pcntl_signal_dispatch(): void
+{
+ error_clear_last();
+ $result = \pcntl_signal_dispatch();
+ if ($result === false) {
+ throw PcntlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * The pcntl_sigprocmask function adds, removes or sets blocked
+ * signals, depending on the how parameter.
+ *
+ * @param int $how Sets the behavior of pcntl_sigprocmask. Possible
+ * values:
+ *
+ * SIG_BLOCK: Add the signals to the
+ * currently blocked signals.
+ * SIG_UNBLOCK: Remove the signals from the
+ * currently blocked signals.
+ * SIG_SETMASK: Replace the currently
+ * blocked signals by the given list of signals.
+ *
+ * @param array $set List of signals.
+ * @param array|null $oldset The oldset parameter is set to an array
+ * containing the list of the previously blocked signals.
+ * @throws PcntlException
+ *
+ */
+function pcntl_sigprocmask(int $how, array $set, ?array &$oldset = null): void
+{
+ error_clear_last();
+ $result = \pcntl_sigprocmask($how, $set, $oldset);
+ if ($result === false) {
+ throw PcntlException::createFromPhpError();
+ }
+}
+
+
+/**
+ *
+ *
+ * @param int $errno
+ * @return string Returns error description on success.
+ * @throws PcntlException
+ *
+ */
+function pcntl_strerror(int $errno): string
+{
+ error_clear_last();
+ $result = \pcntl_strerror($errno);
+ if ($result === false) {
+ throw PcntlException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/pcre.php b/vendor/thecodingmachine/safe/generated/pcre.php
new file mode 100644
index 000000000..c40f14cc2
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/pcre.php
@@ -0,0 +1,659 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\PcreException;
+
+/**
+ * Searches subject for all matches to the regular
+ * expression given in pattern and puts them in
+ * matches in the order specified by
+ * flags.
+ *
+ * After the first match is found, the subsequent searches are continued
+ * on from end of the last match.
+ *
+ * @param string $pattern The pattern to search for, as a string.
+ * @param string $subject The input string.
+ * @param array $matches Array of all matches in multi-dimensional array ordered according to
+ * flags.
+ * @param int $flags Can be a combination of the following flags (note that it doesn't make
+ * sense to use PREG_PATTERN_ORDER together with
+ * PREG_SET_ORDER):
+ *
+ *
+ * PREG_PATTERN_ORDER
+ *
+ *
+ * Orders results so that $matches[0] is an array of full
+ * pattern matches, $matches[1] is an array of strings matched by
+ * the first parenthesized subpattern, and so on.
+ *
+ *
+ *
+ *
+ *
+ * ]]>
+ *
+ * The above example will output:
+ *
+ * example: , this is a test
+ * example: , this is a test
+ * ]]>
+ *
+ *
+ * So, $out[0] contains array of strings that matched full pattern,
+ * and $out[1] contains array of strings enclosed by tags.
+ *
+ *
+ *
+ *
+ * If the pattern contains named subpatterns, $matches
+ * additionally contains entries for keys with the subpattern name.
+ *
+ *
+ * If the pattern contains duplicate named subpatterns, only the rightmost
+ * subpattern is stored in $matches[NAME].
+ *
+ *
+ *
+ * ]]>
+ *
+ * The above example will output:
+ *
+ *
+ * [1] => bar
+ * )
+ * ]]>
+ *
+ *
+ *
+ *
+ *
+ *
+ * PREG_SET_ORDER
+ *
+ *
+ * Orders results so that $matches[0] is an array of first set
+ * of matches, $matches[1] is an array of second set of matches,
+ * and so on.
+ *
+ *
+ *
+ * ]]>
+ *
+ * The above example will output:
+ *
+ * example: , example:
+ * this is a test, this is a test
+ * ]]>
+ *
+ *
+ *
+ *
+ *
+ *
+ * PREG_OFFSET_CAPTURE
+ *
+ *
+ * If this flag is passed, for every occurring match the appendant string
+ * offset (in bytes) will also be returned. Note that this changes the value of
+ * matches into an array of arrays where every element is an
+ * array consisting of the matched string at offset 0
+ * and its string offset into subject at offset
+ * 1.
+ *
+ *
+ *
+ * ]]>
+ *
+ * The above example will output:
+ *
+ * Array
+ * (
+ * [0] => Array
+ * (
+ * [0] => foobarbaz
+ * [1] => 0
+ * )
+ *
+ * )
+ *
+ * [1] => Array
+ * (
+ * [0] => Array
+ * (
+ * [0] => foo
+ * [1] => 0
+ * )
+ *
+ * )
+ *
+ * [2] => Array
+ * (
+ * [0] => Array
+ * (
+ * [0] => bar
+ * [1] => 3
+ * )
+ *
+ * )
+ *
+ * [3] => Array
+ * (
+ * [0] => Array
+ * (
+ * [0] => baz
+ * [1] => 6
+ * )
+ *
+ * )
+ *
+ * )
+ * ]]>
+ *
+ *
+ *
+ *
+ *
+ *
+ * PREG_UNMATCHED_AS_NULL
+ *
+ *
+ * If this flag is passed, unmatched subpatterns are reported as NULL;
+ * otherwise they are reported as an empty string.
+ *
+ *
+ *
+ *
+ *
+ * Orders results so that $matches[0] is an array of full
+ * pattern matches, $matches[1] is an array of strings matched by
+ * the first parenthesized subpattern, and so on.
+ *
+ *
+ *
+ *
+ * ]]>
+ *
+ * The above example will output:
+ *
+ * example: , this is a test
+ * example: , this is a test
+ * ]]>
+ *
+ *
+ * So, $out[0] contains array of strings that matched full pattern,
+ * and $out[1] contains array of strings enclosed by tags.
+ *
+ *
+ *
+ * The above example will output:
+ *
+ * So, $out[0] contains array of strings that matched full pattern,
+ * and $out[1] contains array of strings enclosed by tags.
+ *
+ * If the pattern contains named subpatterns, $matches
+ * additionally contains entries for keys with the subpattern name.
+ *
+ * If the pattern contains duplicate named subpatterns, only the rightmost
+ * subpattern is stored in $matches[NAME].
+ *
+ *
+ *
+ * ]]>
+ *
+ * The above example will output:
+ *
+ *
+ * [1] => bar
+ * )
+ * ]]>
+ *
+ *
+ *
+ * The above example will output:
+ *
+ * Orders results so that $matches[0] is an array of first set
+ * of matches, $matches[1] is an array of second set of matches,
+ * and so on.
+ *
+ *
+ *
+ * ]]>
+ *
+ * The above example will output:
+ *
+ * example: , example:
+ * this is a test, this is a test
+ * ]]>
+ *
+ *
+ *
+ * The above example will output:
+ *
+ * If this flag is passed, for every occurring match the appendant string
+ * offset (in bytes) will also be returned. Note that this changes the value of
+ * matches into an array of arrays where every element is an
+ * array consisting of the matched string at offset 0
+ * and its string offset into subject at offset
+ * 1.
+ *
+ *
+ *
+ * ]]>
+ *
+ * The above example will output:
+ *
+ * Array
+ * (
+ * [0] => Array
+ * (
+ * [0] => foobarbaz
+ * [1] => 0
+ * )
+ *
+ * )
+ *
+ * [1] => Array
+ * (
+ * [0] => Array
+ * (
+ * [0] => foo
+ * [1] => 0
+ * )
+ *
+ * )
+ *
+ * [2] => Array
+ * (
+ * [0] => Array
+ * (
+ * [0] => bar
+ * [1] => 3
+ * )
+ *
+ * )
+ *
+ * [3] => Array
+ * (
+ * [0] => Array
+ * (
+ * [0] => baz
+ * [1] => 6
+ * )
+ *
+ * )
+ *
+ * )
+ * ]]>
+ *
+ *
+ *
+ * The above example will output:
+ *
+ * If this flag is passed, unmatched subpatterns are reported as NULL;
+ * otherwise they are reported as an empty string.
+ *
+ * If no order flag is given, PREG_PATTERN_ORDER is
+ * assumed.
+ * @param int $offset Orders results so that $matches[0] is an array of full
+ * pattern matches, $matches[1] is an array of strings matched by
+ * the first parenthesized subpattern, and so on.
+ *
+ *
+ *
+ *
+ * ]]>
+ *
+ * The above example will output:
+ *
+ * example: , this is a test
+ * example: , this is a test
+ * ]]>
+ *
+ *
+ * So, $out[0] contains array of strings that matched full pattern,
+ * and $out[1] contains array of strings enclosed by tags.
+ *
+ *
+ *
+ * The above example will output:
+ *
+ * So, $out[0] contains array of strings that matched full pattern,
+ * and $out[1] contains array of strings enclosed by tags.
+ *
+ * If the pattern contains named subpatterns, $matches
+ * additionally contains entries for keys with the subpattern name.
+ *
+ * If the pattern contains duplicate named subpatterns, only the rightmost
+ * subpattern is stored in $matches[NAME].
+ *
+ *
+ *
+ * ]]>
+ *
+ * The above example will output:
+ *
+ *
+ * [1] => bar
+ * )
+ * ]]>
+ *
+ *
+ *
+ * The above example will output:
+ * @return int Returns the number of full pattern matches (which might be zero).
+ * @throws PcreException
+ *
+ */
+function preg_match_all(string $pattern, string $subject, array &$matches = null, int $flags = PREG_PATTERN_ORDER, int $offset = 0): int
+{
+ error_clear_last();
+ $result = \preg_match_all($pattern, $subject, $matches, $flags, $offset);
+ if ($result === false) {
+ throw PcreException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Searches subject for a match to the regular
+ * expression given in pattern.
+ *
+ * @param string $pattern The pattern to search for, as a string.
+ * @param string $subject The input string.
+ * @param array $matches If matches is provided, then it is filled with
+ * the results of search. $matches[0] will contain the
+ * text that matched the full pattern, $matches[1]
+ * will have the text that matched the first captured parenthesized
+ * subpattern, and so on.
+ * @param int $flags flags can be a combination of the following flags:
+ *
+ *
+ * PREG_OFFSET_CAPTURE
+ *
+ *
+ * If this flag is passed, for every occurring match the appendant string
+ * offset (in bytes) will also be returned. Note that this changes the value of
+ * matches into an array where every element is an
+ * array consisting of the matched string at offset 0
+ * and its string offset into subject at offset
+ * 1.
+ *
+ *
+ *
+ * ]]>
+ *
+ * The above example will output:
+ *
+ * Array
+ * (
+ * [0] => foobarbaz
+ * [1] => 0
+ * )
+ *
+ * [1] => Array
+ * (
+ * [0] => foo
+ * [1] => 0
+ * )
+ *
+ * [2] => Array
+ * (
+ * [0] => bar
+ * [1] => 3
+ * )
+ *
+ * [3] => Array
+ * (
+ * [0] => baz
+ * [1] => 6
+ * )
+ *
+ * )
+ * ]]>
+ *
+ *
+ *
+ *
+ *
+ *
+ * PREG_UNMATCHED_AS_NULL
+ *
+ *
+ * If this flag is passed, unmatched subpatterns are reported as NULL;
+ * otherwise they are reported as an empty string.
+ *
+ *
+ *
+ * ]]>
+ *
+ * The above example will output:
+ *
+ *
+ * string(2) "ac"
+ * [1]=>
+ * string(1) "a"
+ * [2]=>
+ * string(0) ""
+ * [3]=>
+ * string(1) "c"
+ * }
+ * array(4) {
+ * [0]=>
+ * string(2) "ac"
+ * [1]=>
+ * string(1) "a"
+ * [2]=>
+ * NULL
+ * [3]=>
+ * string(1) "c"
+ * }
+ * ]]>
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * If this flag is passed, for every occurring match the appendant string
+ * offset (in bytes) will also be returned. Note that this changes the value of
+ * matches into an array where every element is an
+ * array consisting of the matched string at offset 0
+ * and its string offset into subject at offset
+ * 1.
+ *
+ *
+ *
+ * ]]>
+ *
+ * The above example will output:
+ *
+ * Array
+ * (
+ * [0] => foobarbaz
+ * [1] => 0
+ * )
+ *
+ * [1] => Array
+ * (
+ * [0] => foo
+ * [1] => 0
+ * )
+ *
+ * [2] => Array
+ * (
+ * [0] => bar
+ * [1] => 3
+ * )
+ *
+ * [3] => Array
+ * (
+ * [0] => baz
+ * [1] => 6
+ * )
+ *
+ * )
+ * ]]>
+ *
+ *
+ *
+ * The above example will output:
+ *
+ * If this flag is passed, unmatched subpatterns are reported as NULL;
+ * otherwise they are reported as an empty string.
+ *
+ *
+ *
+ * ]]>
+ *
+ * The above example will output:
+ *
+ *
+ * string(2) "ac"
+ * [1]=>
+ * string(1) "a"
+ * [2]=>
+ * string(0) ""
+ * [3]=>
+ * string(1) "c"
+ * }
+ * array(4) {
+ * [0]=>
+ * string(2) "ac"
+ * [1]=>
+ * string(1) "a"
+ * [2]=>
+ * NULL
+ * [3]=>
+ * string(1) "c"
+ * }
+ * ]]>
+ *
+ *
+ *
+ * The above example will output:
+ * @param int $offset If this flag is passed, for every occurring match the appendant string
+ * offset (in bytes) will also be returned. Note that this changes the value of
+ * matches into an array where every element is an
+ * array consisting of the matched string at offset 0
+ * and its string offset into subject at offset
+ * 1.
+ *
+ *
+ *
+ * ]]>
+ *
+ * The above example will output:
+ *
+ * Array
+ * (
+ * [0] => foobarbaz
+ * [1] => 0
+ * )
+ *
+ * [1] => Array
+ * (
+ * [0] => foo
+ * [1] => 0
+ * )
+ *
+ * [2] => Array
+ * (
+ * [0] => bar
+ * [1] => 3
+ * )
+ *
+ * [3] => Array
+ * (
+ * [0] => baz
+ * [1] => 6
+ * )
+ *
+ * )
+ * ]]>
+ *
+ *
+ *
+ * The above example will output:
+ * @return int preg_match returns 1 if the pattern
+ * matches given subject, 0 if it does not.
+ * @throws PcreException
+ *
+ */
+function preg_match(string $pattern, string $subject, array &$matches = null, int $flags = 0, int $offset = 0): int
+{
+ error_clear_last();
+ $result = \preg_match($pattern, $subject, $matches, $flags, $offset);
+ if ($result === false) {
+ throw PcreException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Split the given string by a regular expression.
+ *
+ * @param string $pattern The pattern to search for, as a string.
+ * @param string $subject The input string.
+ * @param int|null $limit If specified, then only substrings up to limit
+ * are returned with the rest of the string being placed in the last
+ * substring. A limit of -1 or 0 means "no limit".
+ * @param int $flags flags can be any combination of the following
+ * flags (combined with the | bitwise operator):
+ *
+ *
+ * PREG_SPLIT_NO_EMPTY
+ *
+ *
+ * If this flag is set, only non-empty pieces will be returned by
+ * preg_split.
+ *
+ *
+ *
+ *
+ * PREG_SPLIT_DELIM_CAPTURE
+ *
+ *
+ * If this flag is set, parenthesized expression in the delimiter pattern
+ * will be captured and returned as well.
+ *
+ *
+ *
+ *
+ * PREG_SPLIT_OFFSET_CAPTURE
+ *
+ *
+ * If this flag is set, for every occurring match the appendant string
+ * offset will also be returned. Note that this changes the return
+ * value in an array where every element is an array consisting of the
+ * matched string at offset 0 and its string offset
+ * into subject at offset 1.
+ *
+ *
+ *
+ *
+ *
+ * If this flag is set, for every occurring match the appendant string
+ * offset will also be returned. Note that this changes the return
+ * value in an array where every element is an array consisting of the
+ * matched string at offset 0 and its string offset
+ * into subject at offset 1.
+ * @return array Returns an array containing substrings of subject
+ * split along boundaries matched by pattern.
+ * @throws PcreException
+ *
+ */
+function preg_split(string $pattern, string $subject, ?int $limit = -1, int $flags = 0): array
+{
+ error_clear_last();
+ $result = \preg_split($pattern, $subject, $limit, $flags);
+ if ($result === false) {
+ throw PcreException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/pdf.php b/vendor/thecodingmachine/safe/generated/pdf.php
new file mode 100644
index 000000000..d039b27a9
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/pdf.php
@@ -0,0 +1,1553 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\PdfException;
+
+/**
+ * Activates a previously created structure element or other content item.
+ * Returns TRUE on success.
+ *
+ * @param resource $pdfdoc
+ * @param int $id
+ * @throws PdfException
+ *
+ */
+function PDF_activate_item($pdfdoc, int $id): void
+{
+ error_clear_last();
+ $result = \PDF_activate_item($pdfdoc, $id);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Add a link annotation to a target within the current PDF file.
+ * Returns TRUE on success.
+ *
+ * This function is deprecated since PDFlib version 6, use
+ * PDF_create_action with type=GoTo
+ * and PDF_create_annotation with
+ * type=Link instead.
+ *
+ * @param resource $pdfdoc
+ * @param float $lowerleftx
+ * @param float $lowerlefty
+ * @param float $upperrightx
+ * @param float $upperrighty
+ * @param int $page
+ * @param string $dest
+ * @throws PdfException
+ *
+ */
+function PDF_add_locallink($pdfdoc, float $lowerleftx, float $lowerlefty, float $upperrightx, float $upperrighty, int $page, string $dest): void
+{
+ error_clear_last();
+ $result = \PDF_add_locallink($pdfdoc, $lowerleftx, $lowerlefty, $upperrightx, $upperrighty, $page, $dest);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Creates a named destination on an arbitrary page in the current document.
+ * Returns TRUE on success.
+ *
+ * @param resource $pdfdoc
+ * @param string $name
+ * @param string $optlist
+ * @throws PdfException
+ *
+ */
+function PDF_add_nameddest($pdfdoc, string $name, string $optlist): void
+{
+ error_clear_last();
+ $result = \PDF_add_nameddest($pdfdoc, $name, $optlist);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets an annotation for the current page. Returns TRUE on success.
+ *
+ * This function is deprecated since PDFlib version 6, use
+ * PDF_create_annotation with
+ * type=Text instead.
+ *
+ * @param resource $pdfdoc
+ * @param float $llx
+ * @param float $lly
+ * @param float $urx
+ * @param float $ury
+ * @param string $contents
+ * @param string $title
+ * @param string $icon
+ * @param int $open
+ * @throws PdfException
+ *
+ */
+function PDF_add_note($pdfdoc, float $llx, float $lly, float $urx, float $ury, string $contents, string $title, string $icon, int $open): void
+{
+ error_clear_last();
+ $result = \PDF_add_note($pdfdoc, $llx, $lly, $urx, $ury, $contents, $title, $icon, $open);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Add a file link annotation to a PDF target.
+ * Returns TRUE on success.
+ *
+ * This function is deprecated since PDFlib version 6, use
+ * PDF_create_action with
+ * type=GoToR and
+ * PDF_create_annotation with
+ * type=Link instead.
+ *
+ * @param resource $pdfdoc
+ * @param float $bottom_left_x
+ * @param float $bottom_left_y
+ * @param float $up_right_x
+ * @param float $up_right_y
+ * @param string $filename
+ * @param int $page
+ * @param string $dest
+ * @throws PdfException
+ *
+ */
+function PDF_add_pdflink($pdfdoc, float $bottom_left_x, float $bottom_left_y, float $up_right_x, float $up_right_y, string $filename, int $page, string $dest): void
+{
+ error_clear_last();
+ $result = \PDF_add_pdflink($pdfdoc, $bottom_left_x, $bottom_left_y, $up_right_x, $up_right_y, $filename, $page, $dest);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Adds an existing image as thumbnail for the current page.
+ * Returns TRUE on success.
+ *
+ * @param resource $pdfdoc
+ * @param int $image
+ * @throws PdfException
+ *
+ */
+function PDF_add_thumbnail($pdfdoc, int $image): void
+{
+ error_clear_last();
+ $result = \PDF_add_thumbnail($pdfdoc, $image);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Adds a weblink annotation to a target url on the Web.
+ * Returns TRUE on success.
+ *
+ * This function is deprecated since PDFlib version 6, use
+ * PDF_create_action with type=URI
+ * and PDF_create_annotation with
+ * type=Link instead.
+ *
+ * @param resource $pdfdoc
+ * @param float $lowerleftx
+ * @param float $lowerlefty
+ * @param float $upperrightx
+ * @param float $upperrighty
+ * @param string $url
+ * @throws PdfException
+ *
+ */
+function PDF_add_weblink($pdfdoc, float $lowerleftx, float $lowerlefty, float $upperrightx, float $upperrighty, string $url): void
+{
+ error_clear_last();
+ $result = \PDF_add_weblink($pdfdoc, $lowerleftx, $lowerlefty, $upperrightx, $upperrighty, $url);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Adds a file attachment annotation. Returns TRUE on success.
+ *
+ * This function is deprecated since PDFlib version 6, use
+ * PDF_create_annotation with
+ * type=FileAttachment instead.
+ *
+ * @param resource $pdfdoc
+ * @param float $llx
+ * @param float $lly
+ * @param float $urx
+ * @param float $ury
+ * @param string $filename
+ * @param string $description
+ * @param string $author
+ * @param string $mimetype
+ * @param string $icon
+ * @throws PdfException
+ *
+ */
+function PDF_attach_file($pdfdoc, float $llx, float $lly, float $urx, float $ury, string $filename, string $description, string $author, string $mimetype, string $icon): void
+{
+ error_clear_last();
+ $result = \PDF_attach_file($pdfdoc, $llx, $lly, $urx, $ury, $filename, $description, $author, $mimetype, $icon);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Starts a layer for subsequent output on the page. Returns TRUE on success.
+ *
+ * This function requires PDF 1.5.
+ *
+ * @param resource $pdfdoc
+ * @param int $layer
+ * @throws PdfException
+ *
+ */
+function PDF_begin_layer($pdfdoc, int $layer): void
+{
+ error_clear_last();
+ $result = \PDF_begin_layer($pdfdoc, $layer);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Adds a new page to the document, and specifies various options.
+ * The parameters width and height
+ * are the dimensions of the new page in points. Returns TRUE on success.
+ *
+ *
+ * Common Page Sizes in Points
+ *
+ *
+ *
+ * name
+ * size
+ *
+ *
+ *
+ *
+ * A0
+ * 2380 x 3368
+ *
+ *
+ * A1
+ * 1684 x 2380
+ *
+ *
+ * A2
+ * 1190 x 1684
+ *
+ *
+ * A3
+ * 842 x 1190
+ *
+ *
+ * A4
+ * 595 x 842
+ *
+ *
+ * A5
+ * 421 x 595
+ *
+ *
+ * A6
+ * 297 x 421
+ *
+ *
+ * B5
+ * 501 x 709
+ *
+ *
+ * letter (8.5" x 11")
+ * 612 x 792
+ *
+ *
+ * legal (8.5" x 14")
+ * 612 x 1008
+ *
+ *
+ * ledger (17" x 11")
+ * 1224 x 792
+ *
+ *
+ * 11" x 17"
+ * 792 x 1224
+ *
+ *
+ *
+ *
+ *
+ * @param resource $pdfdoc
+ * @param float $width
+ * @param float $height
+ * @param string $optlist
+ * @throws PdfException
+ *
+ */
+function PDF_begin_page_ext($pdfdoc, float $width, float $height, string $optlist): void
+{
+ error_clear_last();
+ $result = \PDF_begin_page_ext($pdfdoc, $width, $height, $optlist);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Adds a new page to the document. Returns TRUE on success.
+ *
+ * This function is deprecated since PDFlib version 6, use
+ * PDF_begin_page_ext instead.
+ *
+ * @param resource $pdfdoc
+ * @param float $width
+ * @param float $height
+ * @throws PdfException
+ *
+ */
+function PDF_begin_page($pdfdoc, float $width, float $height): void
+{
+ error_clear_last();
+ $result = \PDF_begin_page($pdfdoc, $width, $height);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Adds a circle. Returns TRUE on success.
+ *
+ * @param resource $pdfdoc
+ * @param float $x
+ * @param float $y
+ * @param float $r
+ * @throws PdfException
+ *
+ */
+function PDF_circle($pdfdoc, float $x, float $y, float $r): void
+{
+ error_clear_last();
+ $result = \PDF_circle($pdfdoc, $x, $y, $r);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Uses the current path as clipping path, and terminate the path. Returns TRUE on success.
+ *
+ * @param resource $p
+ * @throws PdfException
+ *
+ */
+function PDF_clip($p): void
+{
+ error_clear_last();
+ $result = \PDF_clip($p);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Closes the page handle, and frees all page-related resources. Returns TRUE on success.
+ *
+ * @param resource $p
+ * @param int $page
+ * @throws PdfException
+ *
+ */
+function PDF_close_pdi_page($p, int $page): void
+{
+ error_clear_last();
+ $result = \PDF_close_pdi_page($p, $page);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Closes all open page handles, and closes the input PDF document. Returns TRUE on success.
+ *
+ * This function is deprecated since PDFlib version 7,
+ * use PDF_close_pdi_document instead.
+ *
+ * @param resource $p
+ * @param int $doc
+ * @throws PdfException
+ *
+ */
+function PDF_close_pdi($p, int $doc): void
+{
+ error_clear_last();
+ $result = \PDF_close_pdi($p, $doc);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Closes the generated PDF file, and frees all document-related resources.
+ * Returns TRUE on success.
+ *
+ * This function is deprecated since PDFlib version 6, use
+ * PDF_end_document instead.
+ *
+ * @param resource $p
+ * @throws PdfException
+ *
+ */
+function PDF_close($p): void
+{
+ error_clear_last();
+ $result = \PDF_close($p);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Closes the path, fills, and strokes it. Returns TRUE on success.
+ *
+ * @param resource $p
+ * @throws PdfException
+ *
+ */
+function PDF_closepath_fill_stroke($p): void
+{
+ error_clear_last();
+ $result = \PDF_closepath_fill_stroke($p);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Closes the path, and strokes it. Returns TRUE on success.
+ *
+ * @param resource $p
+ * @throws PdfException
+ *
+ */
+function PDF_closepath_stroke($p): void
+{
+ error_clear_last();
+ $result = \PDF_closepath_stroke($p);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Closes the current path. Returns TRUE on success.
+ *
+ * @param resource $p
+ * @throws PdfException
+ *
+ */
+function PDF_closepath($p): void
+{
+ error_clear_last();
+ $result = \PDF_closepath($p);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Concatenates a matrix to the current transformation matrix (CTM). Returns TRUE on success.
+ *
+ * @param resource $p
+ * @param float $a
+ * @param float $b
+ * @param float $c
+ * @param float $d
+ * @param float $e
+ * @param float $f
+ * @throws PdfException
+ *
+ */
+function PDF_concat($p, float $a, float $b, float $c, float $d, float $e, float $f): void
+{
+ error_clear_last();
+ $result = \PDF_concat($p, $a, $b, $c, $d, $e, $f);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Prints text at the next line. Returns TRUE on success.
+ *
+ * @param resource $p
+ * @param string $text
+ * @throws PdfException
+ *
+ */
+function PDF_continue_text($p, string $text): void
+{
+ error_clear_last();
+ $result = \PDF_continue_text($p, $text);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Draws a Bezier curve from the current point, using 3 more control points.
+ * Returns TRUE on success.
+ *
+ * @param resource $p
+ * @param float $x1
+ * @param float $y1
+ * @param float $x2
+ * @param float $y2
+ * @param float $x3
+ * @param float $y3
+ * @throws PdfException
+ *
+ */
+function PDF_curveto($p, float $x1, float $y1, float $x2, float $y2, float $x3, float $y3): void
+{
+ error_clear_last();
+ $result = \PDF_curveto($p, $x1, $y1, $x2, $y2, $x3, $y3);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Deletes a PDFlib object, and frees all internal resources. Returns TRUE on success.
+ *
+ * @param resource $pdfdoc
+ * @throws PdfException
+ *
+ */
+function PDF_delete($pdfdoc): void
+{
+ error_clear_last();
+ $result = \PDF_delete($pdfdoc);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Deactivates all active layers. Returns TRUE on success.
+ *
+ * This function requires PDF 1.5.
+ *
+ * @param resource $pdfdoc
+ * @throws PdfException
+ *
+ */
+function PDF_end_layer($pdfdoc): void
+{
+ error_clear_last();
+ $result = \PDF_end_layer($pdfdoc);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Finishes a page, and applies various options. Returns TRUE on success.
+ *
+ * @param resource $pdfdoc
+ * @param string $optlist
+ * @throws PdfException
+ *
+ */
+function PDF_end_page_ext($pdfdoc, string $optlist): void
+{
+ error_clear_last();
+ $result = \PDF_end_page_ext($pdfdoc, $optlist);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Finishes the page. Returns TRUE on success.
+ *
+ * @param resource $p
+ * @throws PdfException
+ *
+ */
+function PDF_end_page($p): void
+{
+ error_clear_last();
+ $result = \PDF_end_page($p);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Finishes the pattern definition. Returns TRUE on success.
+ *
+ * @param resource $p
+ * @throws PdfException
+ *
+ */
+function PDF_end_pattern($p): void
+{
+ error_clear_last();
+ $result = \PDF_end_pattern($p);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Finishes a template definition. Returns TRUE on success.
+ *
+ * @param resource $p
+ * @throws PdfException
+ *
+ */
+function PDF_end_template($p): void
+{
+ error_clear_last();
+ $result = \PDF_end_template($p);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Fills and strokes the current path with the current fill and stroke color.
+ * Returns TRUE on success.
+ *
+ * @param resource $p
+ * @throws PdfException
+ *
+ */
+function PDF_fill_stroke($p): void
+{
+ error_clear_last();
+ $result = \PDF_fill_stroke($p);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Fills the interior of the current path with the current fill color.
+ * Returns TRUE on success.
+ *
+ * @param resource $p
+ * @throws PdfException
+ *
+ */
+function PDF_fill($p): void
+{
+ error_clear_last();
+ $result = \PDF_fill($p);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Places an image or template on the page, subject to various options.
+ * Returns TRUE on success.
+ *
+ * @param resource $pdfdoc
+ * @param int $image
+ * @param float $x
+ * @param float $y
+ * @param string $optlist
+ * @throws PdfException
+ *
+ */
+function PDF_fit_image($pdfdoc, int $image, float $x, float $y, string $optlist): void
+{
+ error_clear_last();
+ $result = \PDF_fit_image($pdfdoc, $image, $x, $y, $optlist);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Places an imported PDF page on the page, subject to various options.
+ * Returns TRUE on success.
+ *
+ * @param resource $pdfdoc
+ * @param int $page
+ * @param float $x
+ * @param float $y
+ * @param string $optlist
+ * @throws PdfException
+ *
+ */
+function PDF_fit_pdi_page($pdfdoc, int $page, float $x, float $y, string $optlist): void
+{
+ error_clear_last();
+ $result = \PDF_fit_pdi_page($pdfdoc, $page, $x, $y, $optlist);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Places a single line of text on the page, subject to various options. Returns TRUE on success.
+ *
+ * @param resource $pdfdoc
+ * @param string $text
+ * @param float $x
+ * @param float $y
+ * @param string $optlist
+ * @throws PdfException
+ *
+ */
+function PDF_fit_textline($pdfdoc, string $text, float $x, float $y, string $optlist): void
+{
+ error_clear_last();
+ $result = \PDF_fit_textline($pdfdoc, $text, $x, $y, $optlist);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Reset all color and graphics state parameters to their defaults.
+ * Returns TRUE on success.
+ *
+ * @param resource $p
+ * @throws PdfException
+ *
+ */
+function PDF_initgraphics($p): void
+{
+ error_clear_last();
+ $result = \PDF_initgraphics($p);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Draws a line from the current point to another point. Returns TRUE on success.
+ *
+ * @param resource $p
+ * @param float $x
+ * @param float $y
+ * @throws PdfException
+ *
+ */
+function PDF_lineto($p, float $x, float $y): void
+{
+ error_clear_last();
+ $result = \PDF_lineto($p, $x, $y);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Finds a built-in spot color name, or makes a named spot color from the
+ * current fill color. Returns TRUE on success.
+ *
+ * @param resource $p
+ * @param string $spotname
+ * @return int
+ * @throws PdfException
+ *
+ */
+function PDF_makespotcolor($p, string $spotname): int
+{
+ error_clear_last();
+ $result = \PDF_makespotcolor($p, $spotname);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Sets the current point for graphics output. Returns TRUE on success.
+ *
+ * @param resource $p
+ * @param float $x
+ * @param float $y
+ * @throws PdfException
+ *
+ */
+function PDF_moveto($p, float $x, float $y): void
+{
+ error_clear_last();
+ $result = \PDF_moveto($p, $x, $y);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Creates a new PDF file using the supplied file name.
+ * Returns TRUE on success.
+ *
+ * This function is deprecated since PDFlib version 6, use
+ * PDF_begin_document instead.
+ *
+ * @param resource $p
+ * @param string $filename
+ * @throws PdfException
+ *
+ */
+function PDF_open_file($p, string $filename): void
+{
+ error_clear_last();
+ $result = \PDF_open_file($p, $filename);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Places an image and scales it. Returns TRUE on success.
+ *
+ * This function is deprecated since PDFlib version 5, use
+ * PDF_fit_image instead.
+ *
+ * @param resource $pdfdoc
+ * @param int $image
+ * @param float $x
+ * @param float $y
+ * @param float $scale
+ * @throws PdfException
+ *
+ */
+function PDF_place_image($pdfdoc, int $image, float $x, float $y, float $scale): void
+{
+ error_clear_last();
+ $result = \PDF_place_image($pdfdoc, $image, $x, $y, $scale);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Places a PDF page and scales it. Returns TRUE on success.
+ *
+ * This function is deprecated since PDFlib version 5, use
+ * PDF_fit_pdi_page instead.
+ *
+ * @param resource $pdfdoc
+ * @param int $page
+ * @param float $x
+ * @param float $y
+ * @param float $sx
+ * @param float $sy
+ * @throws PdfException
+ *
+ */
+function PDF_place_pdi_page($pdfdoc, int $page, float $x, float $y, float $sx, float $sy): void
+{
+ error_clear_last();
+ $result = \PDF_place_pdi_page($pdfdoc, $page, $x, $y, $sx, $sy);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Draws a rectangle. Returns TRUE on success.
+ *
+ * @param resource $p
+ * @param float $x
+ * @param float $y
+ * @param float $width
+ * @param float $height
+ * @throws PdfException
+ *
+ */
+function PDF_rect($p, float $x, float $y, float $width, float $height): void
+{
+ error_clear_last();
+ $result = \PDF_rect($p, $x, $y, $width, $height);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Restores the most recently saved graphics state. Returns TRUE on success.
+ *
+ * @param resource $p
+ * @throws PdfException
+ *
+ */
+function PDF_restore($p): void
+{
+ error_clear_last();
+ $result = \PDF_restore($p);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Rotates the coordinate system. Returns TRUE on success.
+ *
+ * @param resource $p
+ * @param float $phi
+ * @throws PdfException
+ *
+ */
+function PDF_rotate($p, float $phi): void
+{
+ error_clear_last();
+ $result = \PDF_rotate($p, $phi);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Saves the current graphics state. Returns TRUE on success.
+ *
+ * @param resource $p
+ * @throws PdfException
+ *
+ */
+function PDF_save($p): void
+{
+ error_clear_last();
+ $result = \PDF_save($p);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Scales the coordinate system. Returns TRUE on success.
+ *
+ * @param resource $p
+ * @param float $sx
+ * @param float $sy
+ * @throws PdfException
+ *
+ */
+function PDF_scale($p, float $sx, float $sy): void
+{
+ error_clear_last();
+ $result = \PDF_scale($p, $sx, $sy);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the border color for all kinds of annotations. Returns TRUE on success.
+ *
+ * This function is deprecated since PDFlib version 6, use
+ * the option annotcolor in
+ * PDF_create_annotation instead.
+ *
+ * @param resource $p
+ * @param float $red
+ * @param float $green
+ * @param float $blue
+ * @throws PdfException
+ *
+ */
+function PDF_set_border_color($p, float $red, float $green, float $blue): void
+{
+ error_clear_last();
+ $result = \PDF_set_border_color($p, $red, $green, $blue);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the border dash style for all kinds of annotations. Returns TRUE on success.
+ *
+ * This function is deprecated since PDFlib version 6, use
+ * the option dasharray in
+ * PDF_create_annotation instead.
+ *
+ * @param resource $pdfdoc
+ * @param float $black
+ * @param float $white
+ * @throws PdfException
+ *
+ */
+function PDF_set_border_dash($pdfdoc, float $black, float $white): void
+{
+ error_clear_last();
+ $result = \PDF_set_border_dash($pdfdoc, $black, $white);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the border style for all kinds of annotations. Returns TRUE on success.
+ *
+ * This function is deprecated since PDFlib version 6, use
+ * the options borderstyle and
+ * linewidth in
+ * PDF_create_annotation instead.
+ *
+ * @param resource $pdfdoc
+ * @param string $style
+ * @param float $width
+ * @throws PdfException
+ *
+ */
+function PDF_set_border_style($pdfdoc, string $style, float $width): void
+{
+ error_clear_last();
+ $result = \PDF_set_border_style($pdfdoc, $style, $width);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Fill document information field key with
+ * value. Returns TRUE on success.
+ *
+ * @param resource $p
+ * @param string $key
+ * @param string $value
+ * @throws PdfException
+ *
+ */
+function PDF_set_info($p, string $key, string $value): void
+{
+ error_clear_last();
+ $result = \PDF_set_info($p, $key, $value);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Defines hierarchical and group relationships among layers. Returns TRUE on success.
+ *
+ * This function requires PDF 1.5.
+ *
+ * @param resource $pdfdoc
+ * @param string $type
+ * @param string $optlist
+ * @throws PdfException
+ *
+ */
+function PDF_set_layer_dependency($pdfdoc, string $type, string $optlist): void
+{
+ error_clear_last();
+ $result = \PDF_set_layer_dependency($pdfdoc, $type, $optlist);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets some PDFlib parameter with string type. Returns TRUE on success.
+ *
+ * @param resource $p
+ * @param string $key
+ * @param string $value
+ * @throws PdfException
+ *
+ */
+function PDF_set_parameter($p, string $key, string $value): void
+{
+ error_clear_last();
+ $result = \PDF_set_parameter($p, $key, $value);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the position for text output on the page. Returns TRUE on success.
+ *
+ * @param resource $p
+ * @param float $x
+ * @param float $y
+ * @throws PdfException
+ *
+ */
+function PDF_set_text_pos($p, float $x, float $y): void
+{
+ error_clear_last();
+ $result = \PDF_set_text_pos($p, $x, $y);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the value of some PDFlib parameter with numerical type. Returns TRUE on success.
+ *
+ * @param resource $p
+ * @param string $key
+ * @param float $value
+ * @throws PdfException
+ *
+ */
+function PDF_set_value($p, string $key, float $value): void
+{
+ error_clear_last();
+ $result = \PDF_set_value($p, $key, $value);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the current color space and color. Returns TRUE on success.
+ *
+ * @param resource $p
+ * @param string $fstype
+ * @param string $colorspace
+ * @param float $c1
+ * @param float $c2
+ * @param float $c3
+ * @param float $c4
+ * @throws PdfException
+ *
+ */
+function PDF_setcolor($p, string $fstype, string $colorspace, float $c1, float $c2, float $c3, float $c4): void
+{
+ error_clear_last();
+ $result = \PDF_setcolor($p, $fstype, $colorspace, $c1, $c2, $c3, $c4);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the current dash pattern to b black
+ * and w white units. Returns TRUE on success.
+ *
+ * @param resource $pdfdoc
+ * @param float $b
+ * @param float $w
+ * @throws PdfException
+ *
+ */
+function PDF_setdash($pdfdoc, float $b, float $w): void
+{
+ error_clear_last();
+ $result = \PDF_setdash($pdfdoc, $b, $w);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets a dash pattern defined by an option list. Returns TRUE on success.
+ *
+ * @param resource $pdfdoc
+ * @param string $optlist
+ * @throws PdfException
+ *
+ */
+function PDF_setdashpattern($pdfdoc, string $optlist): void
+{
+ error_clear_last();
+ $result = \PDF_setdashpattern($pdfdoc, $optlist);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the flatness parameter. Returns TRUE on success.
+ *
+ * @param resource $pdfdoc
+ * @param float $flatness
+ * @throws PdfException
+ *
+ */
+function PDF_setflat($pdfdoc, float $flatness): void
+{
+ error_clear_last();
+ $result = \PDF_setflat($pdfdoc, $flatness);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the current font in the specified fontsize, using a
+ * font handle returned by PDF_load_font.
+ * Returns TRUE on success.
+ *
+ * @param resource $pdfdoc
+ * @param int $font
+ * @param float $fontsize
+ * @throws PdfException
+ *
+ */
+function PDF_setfont($pdfdoc, int $font, float $fontsize): void
+{
+ error_clear_last();
+ $result = \PDF_setfont($pdfdoc, $font, $fontsize);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the current fill color to a gray value between 0 and 1 inclusive.
+ * Returns TRUE on success.
+ *
+ * This function is deprecated since PDFlib version 4, use
+ * PDF_setcolor instead.
+ *
+ * @param resource $p
+ * @param float $g
+ * @throws PdfException
+ *
+ */
+function PDF_setgray_fill($p, float $g): void
+{
+ error_clear_last();
+ $result = \PDF_setgray_fill($p, $g);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the current stroke color to a gray value between 0 and 1 inclusive.
+ * Returns TRUE on success.
+ *
+ * This function is deprecated since PDFlib version 4, use
+ * PDF_setcolor instead.
+ *
+ * @param resource $p
+ * @param float $g
+ * @throws PdfException
+ *
+ */
+function PDF_setgray_stroke($p, float $g): void
+{
+ error_clear_last();
+ $result = \PDF_setgray_stroke($p, $g);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the current fill and stroke color to a gray value between 0 and 1 inclusive. Returns TRUE on success.
+ *
+ * This function is deprecated since PDFlib version 4, use
+ * PDF_setcolor instead.
+ *
+ * @param resource $p
+ * @param float $g
+ * @throws PdfException
+ *
+ */
+function PDF_setgray($p, float $g): void
+{
+ error_clear_last();
+ $result = \PDF_setgray($p, $g);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the linejoin parameter to specify the shape
+ * at the corners of paths that are stroked. Returns TRUE on success.
+ *
+ * @param resource $p
+ * @param int $value
+ * @throws PdfException
+ *
+ */
+function PDF_setlinejoin($p, int $value): void
+{
+ error_clear_last();
+ $result = \PDF_setlinejoin($p, $value);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the current line width. Returns TRUE on success.
+ *
+ * @param resource $p
+ * @param float $width
+ * @throws PdfException
+ *
+ */
+function PDF_setlinewidth($p, float $width): void
+{
+ error_clear_last();
+ $result = \PDF_setlinewidth($p, $width);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Explicitly sets the current transformation matrix. Returns TRUE on success.
+ *
+ * @param resource $p
+ * @param float $a
+ * @param float $b
+ * @param float $c
+ * @param float $d
+ * @param float $e
+ * @param float $f
+ * @throws PdfException
+ *
+ */
+function PDF_setmatrix($p, float $a, float $b, float $c, float $d, float $e, float $f): void
+{
+ error_clear_last();
+ $result = \PDF_setmatrix($p, $a, $b, $c, $d, $e, $f);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the miter limit.Returns TRUE on success.
+ *
+ * @param resource $pdfdoc
+ * @param float $miter
+ * @throws PdfException
+ *
+ */
+function PDF_setmiterlimit($pdfdoc, float $miter): void
+{
+ error_clear_last();
+ $result = \PDF_setmiterlimit($pdfdoc, $miter);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the current fill color to the supplied RGB values. Returns TRUE on success.
+ *
+ * This function is deprecated since PDFlib version 4, use
+ * PDF_setcolor instead.
+ *
+ * @param resource $p
+ * @param float $red
+ * @param float $green
+ * @param float $blue
+ * @throws PdfException
+ *
+ */
+function PDF_setrgbcolor_fill($p, float $red, float $green, float $blue): void
+{
+ error_clear_last();
+ $result = \PDF_setrgbcolor_fill($p, $red, $green, $blue);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the current stroke color to the supplied RGB values. Returns TRUE on success.
+ *
+ * This function is deprecated since PDFlib version 4, use
+ * PDF_setcolor instead.
+ *
+ * @param resource $p
+ * @param float $red
+ * @param float $green
+ * @param float $blue
+ * @throws PdfException
+ *
+ */
+function PDF_setrgbcolor_stroke($p, float $red, float $green, float $blue): void
+{
+ error_clear_last();
+ $result = \PDF_setrgbcolor_stroke($p, $red, $green, $blue);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the current fill and stroke color to the supplied RGB values.
+ * Returns TRUE on success.
+ *
+ * This function is deprecated since PDFlib version 4, use
+ * PDF_setcolor instead.
+ *
+ * @param resource $p
+ * @param float $red
+ * @param float $green
+ * @param float $blue
+ * @throws PdfException
+ *
+ */
+function PDF_setrgbcolor($p, float $red, float $green, float $blue): void
+{
+ error_clear_last();
+ $result = \PDF_setrgbcolor($p, $red, $green, $blue);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Prints text in the current font. Returns TRUE on success.
+ *
+ * @param resource $p
+ * @param string $text
+ * @param float $x
+ * @param float $y
+ * @throws PdfException
+ *
+ */
+function PDF_show_xy($p, string $text, float $x, float $y): void
+{
+ error_clear_last();
+ $result = \PDF_show_xy($p, $text, $x, $y);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Prints text in the current font and size at
+ * the current position. Returns TRUE on success.
+ *
+ * @param resource $pdfdoc
+ * @param string $text
+ * @throws PdfException
+ *
+ */
+function PDF_show($pdfdoc, string $text): void
+{
+ error_clear_last();
+ $result = \PDF_show($pdfdoc, $text);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Skews the coordinate system in x and y direction by alpha
+ * and beta degrees, respectively. Returns TRUE on success.
+ *
+ * @param resource $p
+ * @param float $alpha
+ * @param float $beta
+ * @throws PdfException
+ *
+ */
+function PDF_skew($p, float $alpha, float $beta): void
+{
+ error_clear_last();
+ $result = \PDF_skew($p, $alpha, $beta);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Strokes the path with the current color and line width, and clear it.
+ * Returns TRUE on success.
+ *
+ * @param resource $p
+ * @throws PdfException
+ *
+ */
+function PDF_stroke($p): void
+{
+ error_clear_last();
+ $result = \PDF_stroke($p);
+ if ($result === false) {
+ throw PdfException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/pgsql.php b/vendor/thecodingmachine/safe/generated/pgsql.php
new file mode 100644
index 000000000..007faacbb
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/pgsql.php
@@ -0,0 +1,1878 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\PgsqlException;
+
+/**
+ * pg_cancel_query cancels an asynchronous query sent with
+ * pg_send_query, pg_send_query_params
+ * or pg_send_execute. You cannot cancel a query executed using
+ * pg_query.
+ *
+ * @param resource $connection PostgreSQL database connection resource.
+ * @throws PgsqlException
+ *
+ */
+function pg_cancel_query($connection): void
+{
+ error_clear_last();
+ $result = \pg_cancel_query($connection);
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * PostgreSQL supports automatic character set conversion between
+ * server and client for certain character sets.
+ * pg_client_encoding returns the client
+ * encoding as a string. The returned string will be one of the
+ * standard PostgreSQL encoding identifiers.
+ *
+ * @param resource $connection PostgreSQL database connection resource. When
+ * connection is not present, the default connection
+ * is used. The default connection is the last connection made by
+ * pg_connect or pg_pconnect.
+ * @return string The client encoding.
+ * @throws PgsqlException
+ *
+ */
+function pg_client_encoding($connection = null): string
+{
+ error_clear_last();
+ if ($connection !== null) {
+ $result = \pg_client_encoding($connection);
+ } else {
+ $result = \pg_client_encoding();
+ }
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * pg_close closes the non-persistent
+ * connection to a PostgreSQL database associated with the given
+ * connection resource.
+ *
+ * If there is open large object resource on the connection, do not
+ * close the connection before closing all large object resources.
+ *
+ * @param resource $connection PostgreSQL database connection resource. When
+ * connection is not present, the default connection
+ * is used. The default connection is the last connection made by
+ * pg_connect or pg_pconnect.
+ * @throws PgsqlException
+ *
+ */
+function pg_close($connection = null): void
+{
+ error_clear_last();
+ if ($connection !== null) {
+ $result = \pg_close($connection);
+ } else {
+ $result = \pg_close();
+ }
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * pg_connect opens a connection to a
+ * PostgreSQL database specified by the
+ * connection_string.
+ *
+ * If a second call is made to pg_connect with
+ * the same connection_string as an existing connection, the
+ * existing connection will be returned unless you pass
+ * PGSQL_CONNECT_FORCE_NEW as
+ * connect_type.
+ *
+ * The old syntax with multiple parameters
+ * $conn = pg_connect("host", "port", "options", "tty", "dbname")
+ * has been deprecated.
+ *
+ * @param string $connection_string The connection_string can be empty to use all default parameters, or it
+ * can contain one or more parameter settings separated by whitespace.
+ * Each parameter setting is in the form keyword = value. Spaces around
+ * the equal sign are optional. To write an empty value or a value
+ * containing spaces, surround it with single quotes, e.g., keyword =
+ * 'a value'. Single quotes and backslashes within the value must be
+ * escaped with a backslash, i.e., \' and \\.
+ *
+ * The currently recognized parameter keywords are:
+ * host, hostaddr, port,
+ * dbname (defaults to value of user),
+ * user,
+ * password, connect_timeout,
+ * options, tty (ignored), sslmode,
+ * requiressl (deprecated in favor of sslmode), and
+ * service. Which of these arguments exist depends
+ * on your PostgreSQL version.
+ *
+ * The options parameter can be used to set command line parameters
+ * to be invoked by the server.
+ * @param int $connect_type If PGSQL_CONNECT_FORCE_NEW is passed, then a new connection
+ * is created, even if the connection_string is identical to
+ * an existing connection.
+ *
+ * If PGSQL_CONNECT_ASYNC is given, then the
+ * connection is established asynchronously. The state of the connection
+ * can then be checked via pg_connect_poll or
+ * pg_connection_status.
+ * @return resource PostgreSQL connection resource on success, FALSE on failure.
+ * @throws PgsqlException
+ *
+ */
+function pg_connect(string $connection_string, int $connect_type = null)
+{
+ error_clear_last();
+ if ($connect_type !== null) {
+ $result = \pg_connect($connection_string, $connect_type);
+ } else {
+ $result = \pg_connect($connection_string);
+ }
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * pg_connection_reset resets the connection.
+ * It is useful for error recovery.
+ *
+ * @param resource $connection PostgreSQL database connection resource.
+ * @throws PgsqlException
+ *
+ */
+function pg_connection_reset($connection): void
+{
+ error_clear_last();
+ $result = \pg_connection_reset($connection);
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * pg_convert checks and converts the values in
+ * assoc_array into suitable values for use in an SQL
+ * statement. Precondition for pg_convert is the
+ * existence of a table table_name which has at least
+ * as many columns as assoc_array has elements. The
+ * fieldnames in table_name must match the indices in
+ * assoc_array and the corresponding datatypes must be
+ * compatible. Returns an array with the converted values on success, FALSE
+ * otherwise.
+ *
+ * @param resource $connection PostgreSQL database connection resource.
+ * @param string $table_name Name of the table against which to convert types.
+ * @param array $assoc_array Data to be converted.
+ * @param int $options Any number of PGSQL_CONV_IGNORE_DEFAULT,
+ * PGSQL_CONV_FORCE_NULL or
+ * PGSQL_CONV_IGNORE_NOT_NULL, combined.
+ * @return array An array of converted values.
+ * @throws PgsqlException
+ *
+ */
+function pg_convert($connection, string $table_name, array $assoc_array, int $options = 0): array
+{
+ error_clear_last();
+ $result = \pg_convert($connection, $table_name, $assoc_array, $options);
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * pg_copy_from inserts records into a table from
+ * rows. It issues a COPY FROM SQL command
+ * internally to insert records.
+ *
+ * @param resource $connection PostgreSQL database connection resource.
+ * @param string $table_name Name of the table into which to copy the rows.
+ * @param array $rows An array of data to be copied into table_name.
+ * Each value in rows becomes a row in table_name.
+ * Each value in rows should be a delimited string of the values
+ * to insert into each field. Values should be linefeed terminated.
+ * @param string $delimiter The token that separates values for each field in each element of
+ * rows. Default is TAB.
+ * @param string $null_as How SQL NULL values are represented in the
+ * rows. Default is \N ("\\N").
+ * @throws PgsqlException
+ *
+ */
+function pg_copy_from($connection, string $table_name, array $rows, string $delimiter = null, string $null_as = null): void
+{
+ error_clear_last();
+ if ($null_as !== null) {
+ $result = \pg_copy_from($connection, $table_name, $rows, $delimiter, $null_as);
+ } elseif ($delimiter !== null) {
+ $result = \pg_copy_from($connection, $table_name, $rows, $delimiter);
+ } else {
+ $result = \pg_copy_from($connection, $table_name, $rows);
+ }
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * pg_copy_to copies a table to an array. It
+ * issues COPY TO SQL command internally to
+ * retrieve records.
+ *
+ * @param resource $connection PostgreSQL database connection resource.
+ * @param string $table_name Name of the table from which to copy the data into rows.
+ * @param string $delimiter The token that separates values for each field in each element of
+ * rows. Default is TAB.
+ * @param string $null_as How SQL NULL values are represented in the
+ * rows. Default is \N ("\\N").
+ * @return array An array with one element for each line of COPY data.
+ * It returns FALSE on failure.
+ * @throws PgsqlException
+ *
+ */
+function pg_copy_to($connection, string $table_name, string $delimiter = null, string $null_as = null): array
+{
+ error_clear_last();
+ if ($null_as !== null) {
+ $result = \pg_copy_to($connection, $table_name, $delimiter, $null_as);
+ } elseif ($delimiter !== null) {
+ $result = \pg_copy_to($connection, $table_name, $delimiter);
+ } else {
+ $result = \pg_copy_to($connection, $table_name);
+ }
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * pg_dbname returns the name of the database
+ * that the given PostgreSQL connection
+ * resource.
+ *
+ * @param resource $connection PostgreSQL database connection resource. When
+ * connection is not present, the default connection
+ * is used. The default connection is the last connection made by
+ * pg_connect or pg_pconnect.
+ * @return string A string containing the name of the database the
+ * connection is to.
+ * @throws PgsqlException
+ *
+ */
+function pg_dbname($connection = null): string
+{
+ error_clear_last();
+ if ($connection !== null) {
+ $result = \pg_dbname($connection);
+ } else {
+ $result = \pg_dbname();
+ }
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * pg_delete deletes records from a table
+ * specified by the keys and values
+ * in assoc_array. If options
+ * is specified, pg_convert is applied
+ * to assoc_array with the specified options.
+ *
+ * If options is specified,
+ * pg_convert is applied to
+ * assoc_array with the specified flags.
+ *
+ * By default pg_delete passes raw values. Values
+ * must be escaped or PGSQL_DML_ESCAPE option must be
+ * specified. PGSQL_DML_ESCAPE quotes and escapes
+ * parameters/identifiers. Therefore, table/column names became case
+ * sensitive.
+ *
+ * Note that neither escape nor prepared query can protect LIKE query,
+ * JSON, Array, Regex, etc. These parameters should be handled
+ * according to their contexts. i.e. Escape/validate values.
+ *
+ * @param resource $connection PostgreSQL database connection resource.
+ * @param string $table_name Name of the table from which to delete rows.
+ * @param array $assoc_array An array whose keys are field names in the table table_name,
+ * and whose values are the values of those fields that are to be deleted.
+ * @param int $options Any number of PGSQL_CONV_FORCE_NULL,
+ * PGSQL_DML_NO_CONV,
+ * PGSQL_DML_ESCAPE,
+ * PGSQL_DML_EXEC,
+ * PGSQL_DML_ASYNC or
+ * PGSQL_DML_STRING combined. If PGSQL_DML_STRING is part of the
+ * options then query string is returned. When PGSQL_DML_NO_CONV
+ * or PGSQL_DML_ESCAPE is set, it does not call pg_convert internally.
+ * @return mixed Returns TRUE on success. Returns string if PGSQL_DML_STRING is passed
+ * via options.
+ * @throws PgsqlException
+ *
+ */
+function pg_delete($connection, string $table_name, array $assoc_array, int $options = PGSQL_DML_EXEC)
+{
+ error_clear_last();
+ $result = \pg_delete($connection, $table_name, $assoc_array, $options);
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * pg_end_copy syncs the PostgreSQL frontend
+ * (usually a web server process) with the PostgreSQL server after
+ * doing a copy operation performed by
+ * pg_put_line. pg_end_copy
+ * must be issued, otherwise the PostgreSQL server may get out of
+ * sync with the frontend and will report an error.
+ *
+ * @param resource $connection PostgreSQL database connection resource. When
+ * connection is not present, the default connection
+ * is used. The default connection is the last connection made by
+ * pg_connect or pg_pconnect.
+ * @throws PgsqlException
+ *
+ */
+function pg_end_copy($connection = null): void
+{
+ error_clear_last();
+ if ($connection !== null) {
+ $result = \pg_end_copy($connection);
+ } else {
+ $result = \pg_end_copy();
+ }
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sends a request to execute a prepared statement with given parameters, and
+ * waits for the result.
+ *
+ * pg_execute is like pg_query_params,
+ * but the command to be executed is
+ * specified by naming a previously-prepared statement, instead of giving a
+ * query string. This feature allows commands that will be used repeatedly to
+ * be parsed and planned just once, rather than each time they are executed.
+ * The statement must have been prepared previously in the current session.
+ * pg_execute is supported only against PostgreSQL 7.4 or
+ * higher connections; it will fail when using earlier versions.
+ *
+ * The parameters are identical to pg_query_params, except that the name of a
+ * prepared statement is given instead of a query string.
+ *
+ * @param resource $connection PostgreSQL database connection resource. When
+ * connection is not present, the default connection
+ * is used. The default connection is the last connection made by
+ * pg_connect or pg_pconnect.
+ * @param string $stmtname The name of the prepared statement to execute. if
+ * "" is specified, then the unnamed statement is executed. The name must have
+ * been previously prepared using pg_prepare,
+ * pg_send_prepare or a PREPARE SQL
+ * command.
+ * @param array $params An array of parameter values to substitute for the $1, $2, etc. placeholders
+ * in the original prepared query string. The number of elements in the array
+ * must match the number of placeholders.
+ *
+ * Elements are converted to strings by calling this function.
+ * @return resource A query result resource on success.
+ * @throws PgsqlException
+ *
+ */
+function pg_execute($connection = null, string $stmtname = null, array $params = null)
+{
+ error_clear_last();
+ if ($params !== null) {
+ $result = \pg_execute($connection, $stmtname, $params);
+ } elseif ($stmtname !== null) {
+ $result = \pg_execute($connection, $stmtname);
+ } elseif ($connection !== null) {
+ $result = \pg_execute($connection);
+ } else {
+ $result = \pg_execute();
+ }
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * pg_field_name returns the name of the field
+ * occupying the given field_number in the
+ * given PostgreSQL result resource. Field
+ * numbering starts from 0.
+ *
+ * @param resource $result PostgreSQL query result resource, returned by pg_query,
+ * pg_query_params or pg_execute
+ * (among others).
+ * @param int $field_number Field number, starting from 0.
+ * @return string The field name.
+ * @throws PgsqlException
+ *
+ */
+function pg_field_name($result, int $field_number): string
+{
+ error_clear_last();
+ $result = \pg_field_name($result, $field_number);
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * pg_field_table returns the name of the table that field
+ * belongs to, or the table's oid if oid_only is TRUE.
+ *
+ * @param resource $result PostgreSQL query result resource, returned by pg_query,
+ * pg_query_params or pg_execute
+ * (among others).
+ * @param int $field_number Field number, starting from 0.
+ * @param bool $oid_only By default the tables name that field belongs to is returned but
+ * if oid_only is set to TRUE, then the
+ * oid will instead be returned.
+ * @return mixed On success either the fields table name or oid. Or, FALSE on failure.
+ * @throws PgsqlException
+ *
+ */
+function pg_field_table($result, int $field_number, bool $oid_only = false)
+{
+ error_clear_last();
+ $result = \pg_field_table($result, $field_number, $oid_only);
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * pg_field_type returns a string containing the
+ * base type name of the given field_number in the
+ * given PostgreSQL result resource.
+ *
+ * @param resource $result PostgreSQL query result resource, returned by pg_query,
+ * pg_query_params or pg_execute
+ * (among others).
+ * @param int $field_number Field number, starting from 0.
+ * @return string A string containing the base name of the field's type.
+ * @throws PgsqlException
+ *
+ */
+function pg_field_type($result, int $field_number): string
+{
+ error_clear_last();
+ $result = \pg_field_type($result, $field_number);
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * pg_flush flushes any outbound query data waiting to be
+ * sent on the connection.
+ *
+ * @param resource $connection PostgreSQL database connection resource.
+ * @return mixed Returns TRUE if the flush was successful or no data was waiting to be
+ * flushed, 0 if part of the pending data was flushed but
+ * more remains.
+ * @throws PgsqlException
+ *
+ */
+function pg_flush($connection)
+{
+ error_clear_last();
+ $result = \pg_flush($connection);
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * pg_free_result frees the memory and data associated with the
+ * specified PostgreSQL query result resource.
+ *
+ * This function need only be called if memory
+ * consumption during script execution is a problem. Otherwise, all result memory will
+ * be automatically freed when the script ends.
+ *
+ * @param resource $result PostgreSQL query result resource, returned by pg_query,
+ * pg_query_params or pg_execute
+ * (among others).
+ * @throws PgsqlException
+ *
+ */
+function pg_free_result($result): void
+{
+ error_clear_last();
+ $result = \pg_free_result($result);
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * pg_host returns the host name of the given
+ * PostgreSQL connection resource is
+ * connected to.
+ *
+ * @param resource $connection PostgreSQL database connection resource. When
+ * connection is not present, the default connection
+ * is used. The default connection is the last connection made by
+ * pg_connect or pg_pconnect.
+ * @return string A string containing the name of the host the
+ * connection is to.
+ * @throws PgsqlException
+ *
+ */
+function pg_host($connection = null): string
+{
+ error_clear_last();
+ if ($connection !== null) {
+ $result = \pg_host($connection);
+ } else {
+ $result = \pg_host();
+ }
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * pg_insert inserts the values
+ * of assoc_array into the table specified
+ * by table_name. If options
+ * is specified, pg_convert is applied
+ * to assoc_array with the specified options.
+ *
+ * If options is specified,
+ * pg_convert is applied to
+ * assoc_array with the specified flags.
+ *
+ * By default pg_insert passes raw values. Values
+ * must be escaped or PGSQL_DML_ESCAPE option must be
+ * specified. PGSQL_DML_ESCAPE quotes and escapes
+ * parameters/identifiers. Therefore, table/column names became case
+ * sensitive.
+ *
+ * Note that neither escape nor prepared query can protect LIKE query,
+ * JSON, Array, Regex, etc. These parameters should be handled
+ * according to their contexts. i.e. Escape/validate values.
+ *
+ * @param resource $connection PostgreSQL database connection resource.
+ * @param string $table_name Name of the table into which to insert rows. The table table_name must at least
+ * have as many columns as assoc_array has elements.
+ * @param array $assoc_array An array whose keys are field names in the table table_name,
+ * and whose values are the values of those fields that are to be inserted.
+ * @param int $options Any number of PGSQL_CONV_OPTS,
+ * PGSQL_DML_NO_CONV,
+ * PGSQL_DML_ESCAPE,
+ * PGSQL_DML_EXEC,
+ * PGSQL_DML_ASYNC or
+ * PGSQL_DML_STRING combined. If PGSQL_DML_STRING is part of the
+ * options then query string is returned. When PGSQL_DML_NO_CONV
+ * or PGSQL_DML_ESCAPE is set, it does not call pg_convert internally.
+ * @return mixed Returns the connection resource on success. Returns string if PGSQL_DML_STRING is passed
+ * via options.
+ * @throws PgsqlException
+ *
+ */
+function pg_insert($connection, string $table_name, array $assoc_array, int $options = PGSQL_DML_EXEC)
+{
+ error_clear_last();
+ $result = \pg_insert($connection, $table_name, $assoc_array, $options);
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * pg_last_error returns the last error message
+ * for a given connection.
+ *
+ * Error messages may be overwritten by internal PostgreSQL (libpq)
+ * function calls. It may not return an appropriate error message if
+ * multiple errors occur inside a PostgreSQL module function.
+ *
+ * Use pg_result_error, pg_result_error_field,
+ * pg_result_status and
+ * pg_connection_status for better error handling.
+ *
+ * @param resource $connection PostgreSQL database connection resource. When
+ * connection is not present, the default connection
+ * is used. The default connection is the last connection made by
+ * pg_connect or pg_pconnect.
+ * @return string A string containing the last error message on the
+ * given connection.
+ * @throws PgsqlException
+ *
+ */
+function pg_last_error($connection = null): string
+{
+ error_clear_last();
+ if ($connection !== null) {
+ $result = \pg_last_error($connection);
+ } else {
+ $result = \pg_last_error();
+ }
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * pg_last_notice returns the last notice
+ * message from the PostgreSQL server on the specified
+ * connection. The PostgreSQL server sends notice
+ * messages in several cases, for instance when creating a SERIAL
+ * column in a table.
+ *
+ * With pg_last_notice, you can avoid issuing useless
+ * queries by checking whether or not the notice is related to your transaction.
+ *
+ * Notice message tracking can be set to optional by setting 1 for
+ * pgsql.ignore_notice in php.ini.
+ *
+ * Notice message logging can be set to optional by setting 0 for
+ * pgsql.log_notice in php.ini.
+ * Unless pgsql.ignore_notice is set
+ * to 0, notice message cannot be logged.
+ *
+ * @param resource $connection PostgreSQL database connection resource.
+ * @param int $option One of PGSQL_NOTICE_LAST (to return last notice),
+ * PGSQL_NOTICE_ALL (to return all notices),
+ * or PGSQL_NOTICE_CLEAR (to clear notices).
+ * @return string A string containing the last notice on the
+ * given connection with
+ * PGSQL_NOTICE_LAST,
+ * an array with PGSQL_NOTICE_ALL,
+ * a boolean with PGSQL_NOTICE_CLEAR.
+ * @throws PgsqlException
+ *
+ */
+function pg_last_notice($connection, int $option = PGSQL_NOTICE_LAST): string
+{
+ error_clear_last();
+ $result = \pg_last_notice($connection, $option);
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * pg_last_oid is used to retrieve the
+ * OID assigned to an inserted row.
+ *
+ * OID field became an optional field from PostgreSQL 7.2 and will
+ * not be present by default in PostgreSQL 8.1. When the
+ * OID field is not present in a table, the programmer must use
+ * pg_result_status to check for successful
+ * insertion.
+ *
+ * To get the value of a SERIAL field in an inserted
+ * row, it is necessary to use the PostgreSQL CURRVAL
+ * function, naming the sequence whose last value is required. If the
+ * name of the sequence is unknown, the pg_get_serial_sequence
+ * PostgreSQL 8.0 function is necessary.
+ *
+ * PostgreSQL 8.1 has a function LASTVAL that returns
+ * the value of the most recently used sequence in the session. This avoids
+ * the need for naming the sequence, table or column altogether.
+ *
+ * @param resource $result PostgreSQL query result resource, returned by pg_query,
+ * pg_query_params or pg_execute
+ * (among others).
+ * @return string A string containing the OID assigned to the most recently inserted
+ * row in the specified connection or
+ * no available OID.
+ * @throws PgsqlException
+ *
+ */
+function pg_last_oid($result): string
+{
+ error_clear_last();
+ $result = \pg_last_oid($result);
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * pg_lo_close closes a large
+ * object. large_object is a resource for the
+ * large object from pg_lo_open.
+ *
+ * To use the large object interface, it is necessary to
+ * enclose it within a transaction block.
+ *
+ * @param resource $large_object PostgreSQL large object (LOB) resource, returned by pg_lo_open.
+ * @throws PgsqlException
+ *
+ */
+function pg_lo_close($large_object): void
+{
+ error_clear_last();
+ $result = \pg_lo_close($large_object);
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * pg_lo_export takes a large object in a
+ * PostgreSQL database and saves its contents to a file on the local
+ * filesystem.
+ *
+ * To use the large object interface, it is necessary to
+ * enclose it within a transaction block.
+ *
+ * @param resource $connection PostgreSQL database connection resource. When
+ * connection is not present, the default connection
+ * is used. The default connection is the last connection made by
+ * pg_connect or pg_pconnect.
+ * @param int $oid The OID of the large object in the database.
+ * @param string $pathname The full path and file name of the file in which to write the
+ * large object on the client filesystem.
+ * @throws PgsqlException
+ *
+ */
+function pg_lo_export($connection = null, int $oid = null, string $pathname = null): void
+{
+ error_clear_last();
+ if ($pathname !== null) {
+ $result = \pg_lo_export($connection, $oid, $pathname);
+ } elseif ($oid !== null) {
+ $result = \pg_lo_export($connection, $oid);
+ } elseif ($connection !== null) {
+ $result = \pg_lo_export($connection);
+ } else {
+ $result = \pg_lo_export();
+ }
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * pg_lo_import creates a new large object
+ * in the database using a file on the filesystem as its data
+ * source.
+ *
+ * To use the large object interface, it is necessary to
+ * enclose it within a transaction block.
+ *
+ * @param resource $connection PostgreSQL database connection resource. When
+ * connection is not present, the default connection
+ * is used. The default connection is the last connection made by
+ * pg_connect or pg_pconnect.
+ * @param string $pathname The full path and file name of the file on the client
+ * filesystem from which to read the large object data.
+ * @param mixed $object_id If an object_id is given the function
+ * will try to create a large object with this id, else a free
+ * object id is assigned by the server. The parameter
+ * was added in PHP 5.3 and relies on functionality that first
+ * appeared in PostgreSQL 8.1.
+ * @return int The OID of the newly created large object.
+ * @throws PgsqlException
+ *
+ */
+function pg_lo_import($connection = null, string $pathname = null, $object_id = null): int
+{
+ error_clear_last();
+ if ($object_id !== null) {
+ $result = \pg_lo_import($connection, $pathname, $object_id);
+ } elseif ($pathname !== null) {
+ $result = \pg_lo_import($connection, $pathname);
+ } elseif ($connection !== null) {
+ $result = \pg_lo_import($connection);
+ } else {
+ $result = \pg_lo_import();
+ }
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * pg_lo_open opens a large object in the database
+ * and returns large object resource so that it can be manipulated.
+ *
+ * To use the large object interface, it is necessary to
+ * enclose it within a transaction block.
+ *
+ * @param resource $connection PostgreSQL database connection resource. When
+ * connection is not present, the default connection
+ * is used. The default connection is the last connection made by
+ * pg_connect or pg_pconnect.
+ * @param int $oid The OID of the large object in the database.
+ * @param string $mode Can be either "r" for read-only, "w" for write only or "rw" for read and
+ * write.
+ * @return resource A large object resource.
+ * @throws PgsqlException
+ *
+ */
+function pg_lo_open($connection, int $oid, string $mode)
+{
+ error_clear_last();
+ $result = \pg_lo_open($connection, $oid, $mode);
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * pg_lo_read_all reads a large object and passes
+ * it straight through to the browser after sending all pending
+ * headers. Mainly intended for sending binary data like images or
+ * sound.
+ *
+ * To use the large object interface, it is necessary to
+ * enclose it within a transaction block.
+ *
+ * @param resource $large_object PostgreSQL large object (LOB) resource, returned by pg_lo_open.
+ * @return int Number of bytes read.
+ * @throws PgsqlException
+ *
+ */
+function pg_lo_read_all($large_object): int
+{
+ error_clear_last();
+ $result = \pg_lo_read_all($large_object);
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * pg_lo_read reads at most
+ * len bytes from a large object and
+ * returns it as a string.
+ *
+ * To use the large object interface, it is necessary to
+ * enclose it within a transaction block.
+ *
+ * @param resource $large_object PostgreSQL large object (LOB) resource, returned by pg_lo_open.
+ * @param int $len An optional maximum number of bytes to return.
+ * @return string A string containing len bytes from the
+ * large object.
+ * @throws PgsqlException
+ *
+ */
+function pg_lo_read($large_object, int $len = 8192): string
+{
+ error_clear_last();
+ $result = \pg_lo_read($large_object, $len);
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * pg_lo_seek seeks a position within a large object
+ * resource.
+ *
+ * To use the large object interface, it is necessary to
+ * enclose it within a transaction block.
+ *
+ * @param resource $large_object PostgreSQL large object (LOB) resource, returned by pg_lo_open.
+ * @param int $offset The number of bytes to seek.
+ * @param int $whence One of the constants PGSQL_SEEK_SET (seek from object start),
+ * PGSQL_SEEK_CUR (seek from current position)
+ * or PGSQL_SEEK_END (seek from object end) .
+ * @throws PgsqlException
+ *
+ */
+function pg_lo_seek($large_object, int $offset, int $whence = PGSQL_SEEK_CUR): void
+{
+ error_clear_last();
+ $result = \pg_lo_seek($large_object, $offset, $whence);
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * pg_lo_truncate truncates a large object
+ * resource.
+ *
+ * To use the large object interface, it is necessary to
+ * enclose it within a transaction block.
+ *
+ * @param resource $large_object PostgreSQL large object (LOB) resource, returned by pg_lo_open.
+ * @param int $size The number of bytes to truncate.
+ * @throws PgsqlException
+ *
+ */
+function pg_lo_truncate($large_object, int $size): void
+{
+ error_clear_last();
+ $result = \pg_lo_truncate($large_object, $size);
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * pg_lo_unlink deletes a large object with the
+ * oid. Returns TRUE on success.
+ *
+ * To use the large object interface, it is necessary to
+ * enclose it within a transaction block.
+ *
+ * @param resource $connection PostgreSQL database connection resource. When
+ * connection is not present, the default connection
+ * is used. The default connection is the last connection made by
+ * pg_connect or pg_pconnect.
+ * @param int $oid The OID of the large object in the database.
+ * @throws PgsqlException
+ *
+ */
+function pg_lo_unlink($connection, int $oid): void
+{
+ error_clear_last();
+ $result = \pg_lo_unlink($connection, $oid);
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * pg_lo_write writes data into a large object
+ * at the current seek position.
+ *
+ * To use the large object interface, it is necessary to
+ * enclose it within a transaction block.
+ *
+ * @param resource $large_object PostgreSQL large object (LOB) resource, returned by pg_lo_open.
+ * @param string $data The data to be written to the large object. If len is
+ * specified and is less than the length of data, only
+ * len bytes will be written.
+ * @param int $len An optional maximum number of bytes to write. Must be greater than zero
+ * and no greater than the length of data. Defaults to
+ * the length of data.
+ * @return int The number of bytes written to the large object.
+ * @throws PgsqlException
+ *
+ */
+function pg_lo_write($large_object, string $data, int $len = null): int
+{
+ error_clear_last();
+ if ($len !== null) {
+ $result = \pg_lo_write($large_object, $data, $len);
+ } else {
+ $result = \pg_lo_write($large_object, $data);
+ }
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * pg_meta_data returns table definition for
+ * table_name as an array.
+ *
+ * @param resource $connection PostgreSQL database connection resource.
+ * @param string $table_name The name of the table.
+ * @param bool $extended Flag for returning extended meta data. Default to FALSE.
+ * @return array An array of the table definition.
+ * @throws PgsqlException
+ *
+ */
+function pg_meta_data($connection, string $table_name, bool $extended = false): array
+{
+ error_clear_last();
+ $result = \pg_meta_data($connection, $table_name, $extended);
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * pg_options will return a string containing
+ * the options specified on the given PostgreSQL
+ * connection resource.
+ *
+ * @param resource $connection PostgreSQL database connection resource. When
+ * connection is not present, the default connection
+ * is used. The default connection is the last connection made by
+ * pg_connect or pg_pconnect.
+ * @return string A string containing the connection
+ * options.
+ * @throws PgsqlException
+ *
+ */
+function pg_options($connection = null): string
+{
+ error_clear_last();
+ if ($connection !== null) {
+ $result = \pg_options($connection);
+ } else {
+ $result = \pg_options();
+ }
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Looks up a current parameter setting of the server.
+ *
+ * Certain parameter values are reported by the server automatically at
+ * connection startup or whenever their values change. pg_parameter_status can be
+ * used to interrogate these settings. It returns the current value of a
+ * parameter if known, or FALSE if the parameter is not known.
+ *
+ * Parameters reported as of PostgreSQL 8.0 include server_version,
+ * server_encoding, client_encoding,
+ * is_superuser, session_authorization,
+ * DateStyle, TimeZone, and integer_datetimes.
+ * (server_encoding, TimeZone, and
+ * integer_datetimes were not reported by releases before 8.0.) Note that
+ * server_version, server_encoding and integer_datetimes
+ * cannot change after PostgreSQL startup.
+ *
+ * PostgreSQL 7.3 or lower servers do not report parameter settings,
+ * pg_parameter_status
+ * includes logic to obtain values for server_version and
+ * client_encoding
+ * anyway. Applications are encouraged to use pg_parameter_status rather than ad
+ * hoc code to determine these values.
+ *
+ * @param resource $connection PostgreSQL database connection resource. When
+ * connection is not present, the default connection
+ * is used. The default connection is the last connection made by
+ * pg_connect or pg_pconnect.
+ * @param string $param_name Possible param_name values include server_version,
+ * server_encoding, client_encoding,
+ * is_superuser, session_authorization,
+ * DateStyle, TimeZone, and
+ * integer_datetimes. Note that this value is case-sensitive.
+ * @return string A string containing the value of the parameter, FALSE on failure or invalid
+ * param_name.
+ * @throws PgsqlException
+ *
+ */
+function pg_parameter_status($connection = null, string $param_name = null): string
+{
+ error_clear_last();
+ if ($param_name !== null) {
+ $result = \pg_parameter_status($connection, $param_name);
+ } elseif ($connection !== null) {
+ $result = \pg_parameter_status($connection);
+ } else {
+ $result = \pg_parameter_status();
+ }
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * pg_pconnect opens a connection to a
+ * PostgreSQL database. It returns a connection resource that is
+ * needed by other PostgreSQL functions.
+ *
+ * If a second call is made to pg_pconnect with
+ * the same connection_string as an existing connection, the
+ * existing connection will be returned unless you pass
+ * PGSQL_CONNECT_FORCE_NEW as
+ * connect_type.
+ *
+ * To enable persistent connection, the pgsql.allow_persistent
+ * php.ini directive must be set to "On" (which is the default).
+ * The maximum number of persistent connection can be defined with the pgsql.max_persistent
+ * php.ini directive (defaults to -1 for no limit). The total number
+ * of connections can be set with the pgsql.max_links
+ * php.ini directive.
+ *
+ * pg_close will not close persistent links
+ * generated by pg_pconnect.
+ *
+ * @param string $connection_string The connection_string can be empty to use all default parameters, or it
+ * can contain one or more parameter settings separated by whitespace.
+ * Each parameter setting is in the form keyword = value. Spaces around
+ * the equal sign are optional. To write an empty value or a value
+ * containing spaces, surround it with single quotes, e.g., keyword =
+ * 'a value'. Single quotes and backslashes within the value must be
+ * escaped with a backslash, i.e., \' and \\.
+ *
+ * The currently recognized parameter keywords are:
+ * host, hostaddr, port,
+ * dbname, user,
+ * password, connect_timeout,
+ * options, tty (ignored), sslmode,
+ * requiressl (deprecated in favor of sslmode), and
+ * service. Which of these arguments exist depends
+ * on your PostgreSQL version.
+ * @param int $connect_type If PGSQL_CONNECT_FORCE_NEW is passed, then a new connection
+ * is created, even if the connection_string is identical to
+ * an existing connection.
+ * @return resource PostgreSQL connection resource on success, FALSE on failure.
+ * @throws PgsqlException
+ *
+ */
+function pg_pconnect(string $connection_string, int $connect_type = null)
+{
+ error_clear_last();
+ if ($connect_type !== null) {
+ $result = \pg_pconnect($connection_string, $connect_type);
+ } else {
+ $result = \pg_pconnect($connection_string);
+ }
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * pg_ping pings a database connection and tries to
+ * reconnect it if it is broken.
+ *
+ * @param resource $connection PostgreSQL database connection resource. When
+ * connection is not present, the default connection
+ * is used. The default connection is the last connection made by
+ * pg_connect or pg_pconnect.
+ * @throws PgsqlException
+ *
+ */
+function pg_ping($connection = null): void
+{
+ error_clear_last();
+ if ($connection !== null) {
+ $result = \pg_ping($connection);
+ } else {
+ $result = \pg_ping();
+ }
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * pg_port returns the port number that the
+ * given PostgreSQL connection resource is
+ * connected to.
+ *
+ * @param resource $connection PostgreSQL database connection resource. When
+ * connection is not present, the default connection
+ * is used. The default connection is the last connection made by
+ * pg_connect or pg_pconnect.
+ * @return int An int containing the port number of the database
+ * server the connection is to.
+ * @throws PgsqlException
+ *
+ */
+function pg_port($connection = null): int
+{
+ error_clear_last();
+ if ($connection !== null) {
+ $result = \pg_port($connection);
+ } else {
+ $result = \pg_port();
+ }
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * pg_prepare creates a prepared statement for later execution with
+ * pg_execute or pg_send_execute.
+ * This feature allows commands that will be used repeatedly to
+ * be parsed and planned just once, rather than each time they are executed.
+ * pg_prepare is supported only against PostgreSQL 7.4 or
+ * higher connections; it will fail when using earlier versions.
+ *
+ * The function creates a prepared statement named stmtname from the query
+ * string, which must contain a single SQL command. stmtname may be "" to
+ * create an unnamed statement, in which case any pre-existing unnamed
+ * statement is automatically replaced; otherwise it is an error if the
+ * statement name is already defined in the current session. If any parameters
+ * are used, they are referred to in the query as $1, $2, etc.
+ *
+ * Prepared statements for use with pg_prepare can also be created by
+ * executing SQL PREPARE statements. (But pg_prepare is more flexible since it
+ * does not require parameter types to be pre-specified.) Also, although there
+ * is no PHP function for deleting a prepared statement, the SQL DEALLOCATE
+ * statement can be used for that purpose.
+ *
+ * @param resource $connection PostgreSQL database connection resource. When
+ * connection is not present, the default connection
+ * is used. The default connection is the last connection made by
+ * pg_connect or pg_pconnect.
+ * @param string $stmtname The name to give the prepared statement. Must be unique per-connection. If
+ * "" is specified, then an unnamed statement is created, overwriting any
+ * previously defined unnamed statement.
+ * @param string $query The parameterized SQL statement. Must contain only a single statement.
+ * (multiple statements separated by semi-colons are not allowed.) If any parameters
+ * are used, they are referred to as $1, $2, etc.
+ * @return resource A query result resource on success.
+ * @throws PgsqlException
+ *
+ */
+function pg_prepare($connection = null, string $stmtname = null, string $query = null)
+{
+ error_clear_last();
+ if ($query !== null) {
+ $result = \pg_prepare($connection, $stmtname, $query);
+ } elseif ($stmtname !== null) {
+ $result = \pg_prepare($connection, $stmtname);
+ } elseif ($connection !== null) {
+ $result = \pg_prepare($connection);
+ } else {
+ $result = \pg_prepare();
+ }
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * pg_put_line sends a NULL-terminated string
+ * to the PostgreSQL backend server. This is needed in conjunction
+ * with PostgreSQL's COPY FROM command.
+ *
+ * COPY is a high-speed data loading interface
+ * supported by PostgreSQL. Data is passed in without being parsed,
+ * and in a single transaction.
+ *
+ * An alternative to using raw pg_put_line commands
+ * is to use pg_copy_from. This is a far simpler
+ * interface.
+ *
+ * @param resource $connection PostgreSQL database connection resource. When
+ * connection is not present, the default connection
+ * is used. The default connection is the last connection made by
+ * pg_connect or pg_pconnect.
+ * @param string $data A line of text to be sent directly to the PostgreSQL backend. A NULL
+ * terminator is added automatically.
+ * @throws PgsqlException
+ *
+ */
+function pg_put_line($connection = null, string $data = null): void
+{
+ error_clear_last();
+ if ($data !== null) {
+ $result = \pg_put_line($connection, $data);
+ } elseif ($connection !== null) {
+ $result = \pg_put_line($connection);
+ } else {
+ $result = \pg_put_line();
+ }
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Submits a command to the server and waits for the result, with the ability
+ * to pass parameters separately from the SQL command text.
+ *
+ * pg_query_params is like pg_query,
+ * but offers additional functionality: parameter
+ * values can be specified separately from the command string proper.
+ * pg_query_params is supported only against PostgreSQL 7.4 or
+ * higher connections; it will fail when using earlier versions.
+ *
+ * If parameters are used, they are referred to in the
+ * query string as $1, $2, etc. The same parameter may
+ * appear more than once in the query; the same value
+ * will be used in that case. params specifies the
+ * actual values of the parameters. A NULL value in this array means the
+ * corresponding parameter is SQL NULL.
+ *
+ * The primary advantage of pg_query_params over pg_query
+ * is that parameter values
+ * may be separated from the query string, thus avoiding the need for tedious
+ * and error-prone quoting and escaping. Unlike pg_query,
+ * pg_query_params allows at
+ * most one SQL command in the given string. (There can be semicolons in it,
+ * but not more than one nonempty command.)
+ *
+ * @param resource $connection PostgreSQL database connection resource. When
+ * connection is not present, the default connection
+ * is used. The default connection is the last connection made by
+ * pg_connect or pg_pconnect.
+ * @param string $query The parameterized SQL statement. Must contain only a single statement.
+ * (multiple statements separated by semi-colons are not allowed.) If any parameters
+ * are used, they are referred to as $1, $2, etc.
+ *
+ * User-supplied values should always be passed as parameters, not
+ * interpolated into the query string, where they form possible
+ * SQL injection
+ * attack vectors and introduce bugs when handling data containing quotes.
+ * If for some reason you cannot use a parameter, ensure that interpolated
+ * values are properly escaped.
+ * @param array $params An array of parameter values to substitute for the $1, $2, etc. placeholders
+ * in the original prepared query string. The number of elements in the array
+ * must match the number of placeholders.
+ *
+ * Values intended for bytea fields are not supported as
+ * parameters. Use pg_escape_bytea instead, or use the
+ * large object functions.
+ * @return resource A query result resource on success.
+ * @throws PgsqlException
+ *
+ */
+function pg_query_params($connection = null, string $query = null, array $params = null)
+{
+ error_clear_last();
+ if ($params !== null) {
+ $result = \pg_query_params($connection, $query, $params);
+ } elseif ($query !== null) {
+ $result = \pg_query_params($connection, $query);
+ } elseif ($connection !== null) {
+ $result = \pg_query_params($connection);
+ } else {
+ $result = \pg_query_params();
+ }
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * pg_query executes the query
+ * on the specified database connection.
+ * pg_query_params should be preferred
+ * in most cases.
+ *
+ * If an error occurs, and FALSE is returned, details of the error can
+ * be retrieved using the pg_last_error
+ * function if the connection is valid.
+ *
+ *
+ *
+ * Although connection can be omitted, it
+ * is not recommended, since it can be the cause of hard to find
+ * bugs in scripts.
+ *
+ *
+ *
+ * @param resource $connection PostgreSQL database connection resource. When
+ * connection is not present, the default connection
+ * is used. The default connection is the last connection made by
+ * pg_connect or pg_pconnect.
+ * @param string $query The SQL statement or statements to be executed. When multiple statements are passed to the function,
+ * they are automatically executed as one transaction, unless there are explicit BEGIN/COMMIT commands
+ * included in the query string. However, using multiple transactions in one function call is not recommended.
+ *
+ * String interpolation of user-supplied data is extremely dangerous and is
+ * likely to lead to SQL
+ * injection vulnerabilities. In most cases
+ * pg_query_params should be preferred, passing
+ * user-supplied values as parameters rather than substituting them into
+ * the query string.
+ *
+ * Any user-supplied data substituted directly into a query string should
+ * be properly escaped.
+ * @return resource A query result resource on success.
+ * @throws PgsqlException
+ *
+ */
+function pg_query($connection = null, string $query = null)
+{
+ error_clear_last();
+ if ($query !== null) {
+ $result = \pg_query($connection, $query);
+ } elseif ($connection !== null) {
+ $result = \pg_query($connection);
+ } else {
+ $result = \pg_query();
+ }
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * pg_result_error_field returns one of the detailed error message
+ * fields associated with result resource. It is only available
+ * against a PostgreSQL 7.4 or above server. The error field is specified by
+ * the fieldcode.
+ *
+ * Because pg_query and pg_query_params return FALSE if the query fails,
+ * you must use pg_send_query and
+ * pg_get_result to get the result handle.
+ *
+ * If you need to get additional error information from failed pg_query queries,
+ * use pg_set_error_verbosity and pg_last_error
+ * and then parse the result.
+ *
+ * @param resource $result A PostgreSQL query result resource from a previously executed
+ * statement.
+ * @param int $fieldcode Possible fieldcode values are: PGSQL_DIAG_SEVERITY,
+ * PGSQL_DIAG_SQLSTATE, PGSQL_DIAG_MESSAGE_PRIMARY,
+ * PGSQL_DIAG_MESSAGE_DETAIL,
+ * PGSQL_DIAG_MESSAGE_HINT, PGSQL_DIAG_STATEMENT_POSITION,
+ * PGSQL_DIAG_INTERNAL_POSITION (PostgreSQL 8.0+ only),
+ * PGSQL_DIAG_INTERNAL_QUERY (PostgreSQL 8.0+ only),
+ * PGSQL_DIAG_CONTEXT, PGSQL_DIAG_SOURCE_FILE,
+ * PGSQL_DIAG_SOURCE_LINE or
+ * PGSQL_DIAG_SOURCE_FUNCTION.
+ * @return string|null A string containing the contents of the error field, NULL if the field does not exist.
+ * @throws PgsqlException
+ *
+ */
+function pg_result_error_field($result, int $fieldcode): ?string
+{
+ error_clear_last();
+ $result = \pg_result_error_field($result, $fieldcode);
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * pg_result_seek sets the internal row offset in
+ * a result resource.
+ *
+ * @param resource $result PostgreSQL query result resource, returned by pg_query,
+ * pg_query_params or pg_execute
+ * (among others).
+ * @param int $offset Row to move the internal offset to in the result resource.
+ * Rows are numbered starting from zero.
+ * @throws PgsqlException
+ *
+ */
+function pg_result_seek($result, int $offset): void
+{
+ error_clear_last();
+ $result = \pg_result_seek($result, $offset);
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * pg_select selects records specified by
+ * assoc_array which has
+ * field=&gt;value. For a successful query, it returns an
+ * array containing all records and fields that match the condition
+ * specified by assoc_array.
+ *
+ * If options is specified,
+ * pg_convert is applied to
+ * assoc_array with the specified flags.
+ *
+ * By default pg_select passes raw values. Values
+ * must be escaped or PGSQL_DML_ESCAPE option must be
+ * specified. PGSQL_DML_ESCAPE quotes and escapes
+ * parameters/identifiers. Therefore, table/column names became case
+ * sensitive.
+ *
+ * Note that neither escape nor prepared query can protect LIKE query,
+ * JSON, Array, Regex, etc. These parameters should be handled
+ * according to their contexts. i.e. Escape/validate values.
+ *
+ * @param resource $connection PostgreSQL database connection resource.
+ * @param string $table_name Name of the table from which to select rows.
+ * @param array $assoc_array An array whose keys are field names in the table table_name,
+ * and whose values are the conditions that a row must meet to be retrieved.
+ * @param int $options Any number of PGSQL_CONV_FORCE_NULL,
+ * PGSQL_DML_NO_CONV,
+ * PGSQL_DML_ESCAPE,
+ * PGSQL_DML_EXEC,
+ * PGSQL_DML_ASYNC or
+ * PGSQL_DML_STRING combined. If PGSQL_DML_STRING is part of the
+ * options then query string is returned. When PGSQL_DML_NO_CONV
+ * or PGSQL_DML_ESCAPE is set, it does not call pg_convert internally.
+ * @param int $result_type
+ * @return mixed Returns TRUE on success. Returns string if PGSQL_DML_STRING is passed
+ * via options.
+ * @throws PgsqlException
+ *
+ */
+function pg_select($connection, string $table_name, array $assoc_array, int $options = PGSQL_DML_EXEC, int $result_type = PGSQL_ASSOC)
+{
+ error_clear_last();
+ $result = \pg_select($connection, $table_name, $assoc_array, $options, $result_type);
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Sends a request to execute a prepared statement with given parameters,
+ * without waiting for the result(s).
+ *
+ * This is similar to pg_send_query_params, but the command to be executed is specified
+ * by naming a previously-prepared statement, instead of giving a query string. The
+ * function's parameters are handled identically to pg_execute.
+ * Like pg_execute, it will not work on pre-7.4 versions of
+ * PostgreSQL.
+ *
+ * @param resource $connection PostgreSQL database connection resource. When
+ * connection is not present, the default connection
+ * is used. The default connection is the last connection made by
+ * pg_connect or pg_pconnect.
+ * @param string $stmtname The name of the prepared statement to execute. if
+ * "" is specified, then the unnamed statement is executed. The name must have
+ * been previously prepared using pg_prepare,
+ * pg_send_prepare or a PREPARE SQL
+ * command.
+ * @param array $params An array of parameter values to substitute for the $1, $2, etc. placeholders
+ * in the original prepared query string. The number of elements in the array
+ * must match the number of placeholders.
+ * @throws PgsqlException
+ *
+ */
+function pg_send_execute($connection, string $stmtname, array $params): void
+{
+ error_clear_last();
+ $result = \pg_send_execute($connection, $stmtname, $params);
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sends a request to create a prepared statement with the given parameters,
+ * without waiting for completion.
+ *
+ * This is an asynchronous version of pg_prepare: it returns TRUE if it was able to
+ * dispatch the request, and FALSE if not. After a successful call, call
+ * pg_get_result to determine whether the server successfully created the
+ * prepared statement. The function's parameters are handled identically to
+ * pg_prepare. Like pg_prepare, it will not work
+ * on pre-7.4 versions of PostgreSQL.
+ *
+ * @param resource $connection PostgreSQL database connection resource. When
+ * connection is not present, the default connection
+ * is used. The default connection is the last connection made by
+ * pg_connect or pg_pconnect.
+ * @param string $stmtname The name to give the prepared statement. Must be unique per-connection. If
+ * "" is specified, then an unnamed statement is created, overwriting any
+ * previously defined unnamed statement.
+ * @param string $query The parameterized SQL statement. Must contain only a single statement.
+ * (multiple statements separated by semi-colons are not allowed.) If any parameters
+ * are used, they are referred to as $1, $2, etc.
+ * @throws PgsqlException
+ *
+ */
+function pg_send_prepare($connection, string $stmtname, string $query): void
+{
+ error_clear_last();
+ $result = \pg_send_prepare($connection, $stmtname, $query);
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Submits a command and separate parameters to the server without
+ * waiting for the result(s).
+ *
+ * This is equivalent to pg_send_query except that query
+ * parameters can be specified separately from the
+ * query string. The function's parameters are
+ * handled identically to pg_query_params. Like
+ * pg_query_params, it will not work on pre-7.4 PostgreSQL
+ * connections, and it allows only one command in the query string.
+ *
+ * @param resource $connection PostgreSQL database connection resource.
+ * @param string $query The parameterized SQL statement. Must contain only a single statement.
+ * (multiple statements separated by semi-colons are not allowed.) If any parameters
+ * are used, they are referred to as $1, $2, etc.
+ * @param array $params An array of parameter values to substitute for the $1, $2, etc. placeholders
+ * in the original prepared query string. The number of elements in the array
+ * must match the number of placeholders.
+ * @throws PgsqlException
+ *
+ */
+function pg_send_query_params($connection, string $query, array $params): void
+{
+ error_clear_last();
+ $result = \pg_send_query_params($connection, $query, $params);
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * pg_send_query sends a query or queries asynchronously to the
+ * connection. Unlike
+ * pg_query, it can send multiple queries at once to
+ * PostgreSQL and get the results one by one using
+ * pg_get_result.
+ *
+ * Script execution is not blocked while the queries are executing. Use
+ * pg_connection_busy to check if the connection is
+ * busy (i.e. the query is executing). Queries may be cancelled using
+ * pg_cancel_query.
+ *
+ * Although the user can send multiple queries at once, multiple queries
+ * cannot be sent over a busy connection. If a query is sent while
+ * the connection is busy, it waits until the last query is finished and
+ * discards all its results.
+ *
+ * @param resource $connection PostgreSQL database connection resource.
+ * @param string $query The SQL statement or statements to be executed.
+ *
+ * Data inside the query should be properly escaped.
+ * @throws PgsqlException
+ *
+ */
+function pg_send_query($connection, string $query): void
+{
+ error_clear_last();
+ $result = \pg_send_query($connection, $query);
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * pg_socket returns a read only resource
+ * corresponding to the socket underlying the given PostgreSQL connection.
+ *
+ * @param resource $connection PostgreSQL database connection resource.
+ * @return resource A socket resource on success.
+ * @throws PgsqlException
+ *
+ */
+function pg_socket($connection)
+{
+ error_clear_last();
+ $result = \pg_socket($connection);
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * pg_trace enables tracing of the PostgreSQL
+ * frontend/backend communication to a file. To fully understand the results,
+ * one needs to be familiar with the internals of PostgreSQL
+ * communication protocol.
+ *
+ * For those who are not, it can still be
+ * useful for tracing errors in queries sent to the server, you
+ * could do for example grep '^To backend'
+ * trace.log and see what queries actually were sent to the
+ * PostgreSQL server. For more information, refer to the
+ * PostgreSQL Documentation.
+ *
+ * @param string $pathname The full path and file name of the file in which to write the
+ * trace log. Same as in fopen.
+ * @param string $mode An optional file access mode, same as for fopen.
+ * @param resource $connection PostgreSQL database connection resource. When
+ * connection is not present, the default connection
+ * is used. The default connection is the last connection made by
+ * pg_connect or pg_pconnect.
+ * @throws PgsqlException
+ *
+ */
+function pg_trace(string $pathname, string $mode = "w", $connection = null): void
+{
+ error_clear_last();
+ if ($connection !== null) {
+ $result = \pg_trace($pathname, $mode, $connection);
+ } else {
+ $result = \pg_trace($pathname, $mode);
+ }
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+}
+
+
+/**
+ * pg_tty returns the TTY name that server
+ * side debugging output is sent to on the given PostgreSQL
+ * connection resource.
+ *
+ * @param resource $connection PostgreSQL database connection resource. When
+ * connection is not present, the default connection
+ * is used. The default connection is the last connection made by
+ * pg_connect or pg_pconnect.
+ * @return string A string containing the debug TTY of
+ * the connection.
+ * @throws PgsqlException
+ *
+ */
+function pg_tty($connection = null): string
+{
+ error_clear_last();
+ if ($connection !== null) {
+ $result = \pg_tty($connection);
+ } else {
+ $result = \pg_tty();
+ }
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * pg_update updates records that matches
+ * condition with data. If
+ * options is specified,
+ * pg_convert is applied to
+ * data with specified options.
+ *
+ * pg_update updates records specified by
+ * assoc_array which has
+ * field=&gt;value.
+ *
+ * If options is specified,
+ * pg_convert is applied to
+ * assoc_array with the specified flags.
+ *
+ * By default pg_update passes raw values. Values
+ * must be escaped or PGSQL_DML_ESCAPE option must be
+ * specified. PGSQL_DML_ESCAPE quotes and escapes
+ * parameters/identifiers. Therefore, table/column names became case
+ * sensitive.
+ *
+ * Note that neither escape nor prepared query can protect LIKE query,
+ * JSON, Array, Regex, etc. These parameters should be handled
+ * according to their contexts. i.e. Escape/validate values.
+ *
+ * @param resource $connection PostgreSQL database connection resource.
+ * @param string $table_name Name of the table into which to update rows.
+ * @param array $data An array whose keys are field names in the table table_name,
+ * and whose values are what matched rows are to be updated to.
+ * @param array $condition An array whose keys are field names in the table table_name,
+ * and whose values are the conditions that a row must meet to be updated.
+ * @param int $options Any number of PGSQL_CONV_FORCE_NULL,
+ * PGSQL_DML_NO_CONV,
+ * PGSQL_DML_ESCAPE,
+ * PGSQL_DML_EXEC,
+ * PGSQL_DML_ASYNC or
+ * PGSQL_DML_STRING combined. If PGSQL_DML_STRING is part of the
+ * options then query string is returned. When PGSQL_DML_NO_CONV
+ * or PGSQL_DML_ESCAPE is set, it does not call pg_convert internally.
+ * @return mixed Returns TRUE on success. Returns string if PGSQL_DML_STRING is passed
+ * via options.
+ * @throws PgsqlException
+ *
+ */
+function pg_update($connection, string $table_name, array $data, array $condition, int $options = PGSQL_DML_EXEC)
+{
+ error_clear_last();
+ $result = \pg_update($connection, $table_name, $data, $condition, $options);
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * pg_version returns an array with the client, protocol
+ * and server version. Protocol and server versions are only available if PHP
+ * was compiled with PostgreSQL 7.4 or later.
+ *
+ * For more detailed server information, use pg_parameter_status.
+ *
+ * @param resource $connection PostgreSQL database connection resource. When
+ * connection is not present, the default connection
+ * is used. The default connection is the last connection made by
+ * pg_connect or pg_pconnect.
+ * @return array Returns an array with client, protocol
+ * and server keys and values (if available) or invalid connection.
+ * @throws PgsqlException
+ *
+ */
+function pg_version($connection = null): array
+{
+ error_clear_last();
+ if ($connection !== null) {
+ $result = \pg_version($connection);
+ } else {
+ $result = \pg_version();
+ }
+ if ($result === false) {
+ throw PgsqlException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/posix.php b/vendor/thecodingmachine/safe/generated/posix.php
new file mode 100644
index 000000000..6ae99d88c
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/posix.php
@@ -0,0 +1,329 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\PosixException;
+
+/**
+ * posix_access checks the user's permission of a file.
+ *
+ * @param string $file The name of the file to be tested.
+ * @param int $mode A mask consisting of one or more of POSIX_F_OK,
+ * POSIX_R_OK, POSIX_W_OK and
+ * POSIX_X_OK.
+ *
+ * POSIX_R_OK, POSIX_W_OK and
+ * POSIX_X_OK request checking whether the file
+ * exists and has read, write and execute permissions, respectively.
+ * POSIX_F_OK just requests checking for the
+ * existence of the file.
+ * @throws PosixException
+ *
+ */
+function posix_access(string $file, int $mode = POSIX_F_OK): void
+{
+ error_clear_last();
+ $result = \posix_access($file, $mode);
+ if ($result === false) {
+ throw PosixException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Gets information about a group provided its name.
+ *
+ * @param string $name The name of the group
+ * @return array Returns an array on success.
+ * The array elements returned are:
+ *
+ * The group information array
+ *
+ *
+ *
+ * Element
+ * Description
+ *
+ *
+ *
+ *
+ * name
+ *
+ * The name element contains the name of the group. This is
+ * a short, usually less than 16 character "handle" of the
+ * group, not the real, full name. This should be the same as
+ * the name parameter used when
+ * calling the function, and hence redundant.
+ *
+ *
+ *
+ * passwd
+ *
+ * The passwd element contains the group's password in an
+ * encrypted format. Often, for example on a system employing
+ * "shadow" passwords, an asterisk is returned instead.
+ *
+ *
+ *
+ * gid
+ *
+ * Group ID of the group in numeric form.
+ *
+ *
+ *
+ * members
+ *
+ * This consists of an array of
+ * string's for all the members in the group.
+ *
+ *
+ *
+ *
+ *
+ * @throws PosixException
+ *
+ */
+function posix_getgrnam(string $name): array
+{
+ error_clear_last();
+ $result = \posix_getgrnam($name);
+ if ($result === false) {
+ throw PosixException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Returns the process group identifier of the process
+ * pid.
+ *
+ * @param int $pid The process id.
+ * @return int Returns the identifier, as an integer.
+ * @throws PosixException
+ *
+ */
+function posix_getpgid(int $pid): int
+{
+ error_clear_last();
+ $result = \posix_getpgid($pid);
+ if ($result === false) {
+ throw PosixException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Calculates the group access list for the user specified in name.
+ *
+ * @param string $name The user to calculate the list for.
+ * @param int $base_group_id Typically the group number from the password file.
+ * @throws PosixException
+ *
+ */
+function posix_initgroups(string $name, int $base_group_id): void
+{
+ error_clear_last();
+ $result = \posix_initgroups($name, $base_group_id);
+ if ($result === false) {
+ throw PosixException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Send the signal sig to the process with
+ * the process identifier pid.
+ *
+ * @param int $pid The process identifier.
+ * @param int $sig One of the PCNTL signals constants.
+ * @throws PosixException
+ *
+ */
+function posix_kill(int $pid, int $sig): void
+{
+ error_clear_last();
+ $result = \posix_kill($pid, $sig);
+ if ($result === false) {
+ throw PosixException::createFromPhpError();
+ }
+}
+
+
+/**
+ * posix_mkfifo creates a special
+ * FIFO file which exists in the file system and acts as
+ * a bidirectional communication endpoint for processes.
+ *
+ * @param string $pathname Path to the FIFO file.
+ * @param int $mode The second parameter mode has to be given in
+ * octal notation (e.g. 0644). The permission of the newly created
+ * FIFO also depends on the setting of the current
+ * umask. The permissions of the created file are
+ * (mode &amp; ~umask).
+ * @throws PosixException
+ *
+ */
+function posix_mkfifo(string $pathname, int $mode): void
+{
+ error_clear_last();
+ $result = \posix_mkfifo($pathname, $mode);
+ if ($result === false) {
+ throw PosixException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Creates a special or ordinary file.
+ *
+ * @param string $pathname The file to create
+ * @param int $mode This parameter is constructed by a bitwise OR between file type (one of
+ * the following constants: POSIX_S_IFREG,
+ * POSIX_S_IFCHR, POSIX_S_IFBLK,
+ * POSIX_S_IFIFO or
+ * POSIX_S_IFSOCK) and permissions.
+ * @param int $major The major device kernel identifier (required to pass when using
+ * S_IFCHR or S_IFBLK).
+ * @param int $minor The minor device kernel identifier.
+ * @throws PosixException
+ *
+ */
+function posix_mknod(string $pathname, int $mode, int $major = 0, int $minor = 0): void
+{
+ error_clear_last();
+ $result = \posix_mknod($pathname, $mode, $major, $minor);
+ if ($result === false) {
+ throw PosixException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Set the effective group ID of the current process. This is a
+ * privileged function and needs appropriate privileges (usually
+ * root) on the system to be able to perform this function.
+ *
+ * @param int $gid The group id.
+ * @throws PosixException
+ *
+ */
+function posix_setegid(int $gid): void
+{
+ error_clear_last();
+ $result = \posix_setegid($gid);
+ if ($result === false) {
+ throw PosixException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Set the effective user ID of the current process. This is a privileged
+ * function and needs appropriate privileges (usually root) on
+ * the system to be able to perform this function.
+ *
+ * @param int $uid The user id.
+ * @throws PosixException
+ *
+ */
+function posix_seteuid(int $uid): void
+{
+ error_clear_last();
+ $result = \posix_seteuid($uid);
+ if ($result === false) {
+ throw PosixException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Set the real group ID of the current process. This is a
+ * privileged function and needs appropriate privileges (usually
+ * root) on the system to be able to perform this function. The
+ * appropriate order of function calls is
+ * posix_setgid first,
+ * posix_setuid last.
+ *
+ * @param int $gid The group id.
+ * @throws PosixException
+ *
+ */
+function posix_setgid(int $gid): void
+{
+ error_clear_last();
+ $result = \posix_setgid($gid);
+ if ($result === false) {
+ throw PosixException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Let the process pid join the process group
+ * pgid.
+ *
+ * @param int $pid The process id.
+ * @param int $pgid The process group id.
+ * @throws PosixException
+ *
+ */
+function posix_setpgid(int $pid, int $pgid): void
+{
+ error_clear_last();
+ $result = \posix_setpgid($pid, $pgid);
+ if ($result === false) {
+ throw PosixException::createFromPhpError();
+ }
+}
+
+
+/**
+ * posix_setrlimit sets the soft and hard limits for a
+ * given system resource.
+ *
+ *
+ * Each resource has an associated soft and hard limit. The soft
+ * limit is the value that the kernel enforces for the corresponding
+ * resource. The hard limit acts as a ceiling for the soft limit.
+ * An unprivileged process may only set its soft limit to a value
+ * from 0 to the hard limit, and irreversibly lower its hard limit.
+ *
+ * @param int $resource The
+ * resource limit constant
+ * corresponding to the limit that is being set.
+ * @param int $softlimit The soft limit, in whatever unit the resource limit requires, or
+ * POSIX_RLIMIT_INFINITY.
+ * @param int $hardlimit The hard limit, in whatever unit the resource limit requires, or
+ * POSIX_RLIMIT_INFINITY.
+ * @throws PosixException
+ *
+ */
+function posix_setrlimit(int $resource, int $softlimit, int $hardlimit): void
+{
+ error_clear_last();
+ $result = \posix_setrlimit($resource, $softlimit, $hardlimit);
+ if ($result === false) {
+ throw PosixException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Set the real user ID of the current process. This is a privileged
+ * function that needs appropriate privileges (usually root) on
+ * the system to be able to perform this function.
+ *
+ * @param int $uid The user id.
+ * @throws PosixException
+ *
+ */
+function posix_setuid(int $uid): void
+{
+ error_clear_last();
+ $result = \posix_setuid($uid);
+ if ($result === false) {
+ throw PosixException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/ps.php b/vendor/thecodingmachine/safe/generated/ps.php
new file mode 100644
index 000000000..a66667aa9
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/ps.php
@@ -0,0 +1,1812 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\PsException;
+
+/**
+ * Places a hyperlink at the given position pointing to a file program
+ * which is being started when clicked on. The hyperlink's source position
+ * is a rectangle
+ * with its lower left corner at (llx, lly) and its upper right corner at
+ * (urx, ury). The rectangle has by default a thin blue border.
+ *
+ * The note will not be visible if the document
+ * is printed or viewed but it will show up if the document is converted to
+ * pdf by either Acrobat Distiller™ or Ghostview.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param float $llx The x-coordinate of the lower left corner.
+ * @param float $lly The y-coordinate of the lower left corner.
+ * @param float $urx The x-coordinate of the upper right corner.
+ * @param float $ury The y-coordinate of the upper right corner.
+ * @param string $filename The path of the program to be started, when the link is clicked on.
+ * @throws PsException
+ *
+ */
+function ps_add_launchlink($psdoc, float $llx, float $lly, float $urx, float $ury, string $filename): void
+{
+ error_clear_last();
+ $result = \ps_add_launchlink($psdoc, $llx, $lly, $urx, $ury, $filename);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Places a hyperlink at the given position pointing to a page in the same
+ * document. Clicking on the link will jump to the given page. The first page
+ * in a document has number 1.
+ *
+ * The hyperlink's source position is a rectangle with its lower left corner at
+ * (llx, lly) and its upper
+ * right corner at (urx, ury).
+ * The rectangle has by default a thin blue border.
+ *
+ * The note will not be visible if the document
+ * is printed or viewed but it will show up if the document is converted to
+ * pdf by either Acrobat Distiller™ or Ghostview.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param float $llx The x-coordinate of the lower left corner.
+ * @param float $lly The y-coordinate of the lower left corner.
+ * @param float $urx The x-coordinate of the upper right corner.
+ * @param float $ury The y-coordinate of the upper right corner.
+ * @param int $page The number of the page displayed when clicking on the link.
+ * @param string $dest The parameter dest determines how the document
+ * is being viewed. It can be fitpage,
+ * fitwidth, fitheight, or
+ * fitbbox.
+ * @throws PsException
+ *
+ */
+function ps_add_locallink($psdoc, float $llx, float $lly, float $urx, float $ury, int $page, string $dest): void
+{
+ error_clear_last();
+ $result = \ps_add_locallink($psdoc, $llx, $lly, $urx, $ury, $page, $dest);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Adds a note at a certain position on the page. Notes are like little
+ * rectangular sheets with text on it, which can be placed anywhere on
+ * a page. They
+ * are shown either folded or unfolded. If folded, the specified icon
+ * is used as a placeholder.
+ *
+ * The note will not be visible if the document
+ * is printed or viewed but it will show up if the document is converted to
+ * pdf by either Acrobat Distiller™ or Ghostview.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param float $llx The x-coordinate of the lower left corner.
+ * @param float $lly The y-coordinate of the lower left corner.
+ * @param float $urx The x-coordinate of the upper right corner.
+ * @param float $ury The y-coordinate of the upper right corner.
+ * @param string $contents The text of the note.
+ * @param string $title The title of the note as displayed in the header of the note.
+ * @param string $icon The icon shown if the note is folded. This parameter can be set
+ * to comment, insert,
+ * note, paragraph,
+ * newparagraph, key, or
+ * help.
+ * @param int $open If open is unequal to zero the note will
+ * be shown unfolded after opening the document with a pdf viewer.
+ * @throws PsException
+ *
+ */
+function ps_add_note($psdoc, float $llx, float $lly, float $urx, float $ury, string $contents, string $title, string $icon, int $open): void
+{
+ error_clear_last();
+ $result = \ps_add_note($psdoc, $llx, $lly, $urx, $ury, $contents, $title, $icon, $open);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Places a hyperlink at the given position pointing to a second pdf document.
+ * Clicking on the link will branch to the document at the given page. The
+ * first page in a document has number 1.
+ *
+ * The hyperlink's source position is a rectangle with its lower left corner at
+ * (llx, lly) and its upper
+ * right corner at (urx, ury).
+ * The rectangle has by default a thin blue border.
+ *
+ * The note will not be visible if the document
+ * is printed or viewed but it will show up if the document is converted to
+ * pdf by either Acrobat Distiller™ or Ghostview.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param float $llx The x-coordinate of the lower left corner.
+ * @param float $lly The y-coordinate of the lower left corner.
+ * @param float $urx The x-coordinate of the upper right corner.
+ * @param float $ury The y-coordinate of the upper right corner.
+ * @param string $filename The name of the pdf document to be opened when clicking on
+ * this link.
+ * @param int $page The page number of the destination pdf document
+ * @param string $dest The parameter dest determines how the document
+ * is being viewed. It can be fitpage,
+ * fitwidth, fitheight, or
+ * fitbbox.
+ * @throws PsException
+ *
+ */
+function ps_add_pdflink($psdoc, float $llx, float $lly, float $urx, float $ury, string $filename, int $page, string $dest): void
+{
+ error_clear_last();
+ $result = \ps_add_pdflink($psdoc, $llx, $lly, $urx, $ury, $filename, $page, $dest);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Places a hyperlink at the given position pointing to a web page. The
+ * hyperlink's source position is a rectangle with its lower left corner at
+ * (llx, lly) and
+ * its upper right corner at (urx,
+ * ury). The rectangle has by default a thin
+ * blue border.
+ *
+ * The note will not be visible if the document
+ * is printed or viewed but it will show up if the document is converted to
+ * pdf by either Acrobat Distiller™ or Ghostview.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param float $llx The x-coordinate of the lower left corner.
+ * @param float $lly The y-coordinate of the lower left corner.
+ * @param float $urx The x-coordinate of the upper right corner.
+ * @param float $ury The y-coordinate of the upper right corner.
+ * @param string $url The url of the hyperlink to be opened when clicking on
+ * this link, e.g. http://www.php.net.
+ * @throws PsException
+ *
+ */
+function ps_add_weblink($psdoc, float $llx, float $lly, float $urx, float $ury, string $url): void
+{
+ error_clear_last();
+ $result = \ps_add_weblink($psdoc, $llx, $lly, $urx, $ury, $url);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Draws a portion of a circle with at middle point at
+ * (x, y). The arc starts at an
+ * angle of alpha and ends at an angle of
+ * beta. It is drawn counterclockwise (use
+ * ps_arcn to draw clockwise). The subpath added
+ * to the current path starts on the arc at angle alpha
+ * and ends on the arc at angle beta.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param float $x The x-coordinate of the circle's middle point.
+ * @param float $y The y-coordinate of the circle's middle point.
+ * @param float $radius The radius of the circle
+ * @param float $alpha The start angle given in degrees.
+ * @param float $beta The end angle given in degrees.
+ * @throws PsException
+ *
+ */
+function ps_arc($psdoc, float $x, float $y, float $radius, float $alpha, float $beta): void
+{
+ error_clear_last();
+ $result = \ps_arc($psdoc, $x, $y, $radius, $alpha, $beta);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Draws a portion of a circle with at middle point at
+ * (x, y). The arc starts at an
+ * angle of alpha and ends at an angle of
+ * beta. It is drawn clockwise (use
+ * ps_arc to draw counterclockwise). The subpath added to
+ * the current path starts on the arc at angle beta and
+ * ends on the arc at angle alpha.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param float $x The x-coordinate of the circle's middle point.
+ * @param float $y The y-coordinate of the circle's middle point.
+ * @param float $radius The radius of the circle
+ * @param float $alpha The starting angle given in degrees.
+ * @param float $beta The end angle given in degrees.
+ * @throws PsException
+ *
+ */
+function ps_arcn($psdoc, float $x, float $y, float $radius, float $alpha, float $beta): void
+{
+ error_clear_last();
+ $result = \ps_arcn($psdoc, $x, $y, $radius, $alpha, $beta);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Starts a new page. Although the parameters width
+ * and height imply a different page size for each
+ * page, this is not possible in PostScript. The first call of
+ * ps_begin_page will set the page size for the whole
+ * document. Consecutive calls will have no effect, except for creating a new
+ * page. The situation is different if you intent to convert the PostScript
+ * document into PDF. This function places pdfmarks into the document which
+ * can set the size for each page indiviually. The resulting PDF document will
+ * have different page sizes.
+ *
+ * Though PostScript does not know different page sizes, pslib places
+ * a bounding box for each page into the document. This size is evaluated
+ * by some PostScript viewers and will have precedence over the BoundingBox
+ * in the Header of the document. This can lead to unexpected results when
+ * you set a BoundingBox whose lower left corner is not (0, 0), because the
+ * bounding box of the page will always have a lower left corner (0, 0)
+ * and overwrites the global setting.
+ *
+ * Each page is encapsulated into save/restore. This means, that most of the
+ * settings made on one page will not be retained on the next page.
+ *
+ * If there is up to the first call of ps_begin_page no
+ * call of ps_findfont, then the header of the PostScript
+ * document will be output and the bounding box will be set to the size of
+ * the first page. The lower left corner of the bounding box is set to (0, 0).
+ * If ps_findfont was called before, then the
+ * header has been output already, and the document will not have a valid
+ * bounding box. In order to prevent this, one should call
+ * ps_set_info to set the info field
+ * BoundingBox and possibly Orientation
+ * before any ps_findfont or
+ * ps_begin_page calls.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param float $width The width of the page in pixel, e.g. 596 for A4 format.
+ * @param float $height The height of the page in pixel, e.g. 842 for A4 format.
+ * @throws PsException
+ *
+ */
+function ps_begin_page($psdoc, float $width, float $height): void
+{
+ error_clear_last();
+ $result = \ps_begin_page($psdoc, $width, $height);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Starts a new pattern. A pattern is like a page containing e.g. a drawing
+ * which can be used for filling areas. It is used like a color by calling
+ * ps_setcolor and setting the color space to
+ * pattern.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param float $width The width of the pattern in pixel.
+ * @param float $height The height of the pattern in pixel.
+ * @param float $xstep The distance in pixel of placements of the pattern in
+ * horizontal direction.
+ * @param float $ystep The distance in pixel of placements of the pattern in
+ * vertical direction.
+ * @param int $painttype Must be 1 or 2.
+ * @return int The identifier of the pattern.
+ * @throws PsException
+ *
+ */
+function ps_begin_pattern($psdoc, float $width, float $height, float $xstep, float $ystep, int $painttype): int
+{
+ error_clear_last();
+ $result = \ps_begin_pattern($psdoc, $width, $height, $xstep, $ystep, $painttype);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Starts a new template. A template is called a form in the postscript
+ * language. It is created similar to a pattern but used like an image.
+ * Templates are often used for drawings which are placed several times
+ * through out the document, e.g. like a company logo. All drawing functions
+ * may be used within a template. The template will not be drawn until
+ * it is placed by ps_place_image.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param float $width The width of the template in pixel.
+ * @param float $height The height of the template in pixel.
+ * @return int Returns TRUE on success.
+ * @throws PsException
+ *
+ */
+function ps_begin_template($psdoc, float $width, float $height): int
+{
+ error_clear_last();
+ $result = \ps_begin_template($psdoc, $width, $height);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Draws a circle with its middle point at (x,
+ * y). The circle starts and ends at position
+ * (x+radius,
+ * y). If this function is called outside a path it
+ * will start a new path. If it is called within a path it will add the circle
+ * as a subpath. If the last drawing operation does not end in point
+ * (x+radius,
+ * y) then there will be a gap in the path.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param float $x The x-coordinate of the circle's middle point.
+ * @param float $y The y-coordinate of the circle's middle point.
+ * @param float $radius The radius of the circle
+ * @throws PsException
+ *
+ */
+function ps_circle($psdoc, float $x, float $y, float $radius): void
+{
+ error_clear_last();
+ $result = \ps_circle($psdoc, $x, $y, $radius);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Takes the current path and uses it to define the border of a clipping area.
+ * Everything drawn outside of that area will not be visible.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @throws PsException
+ *
+ */
+function ps_clip($psdoc): void
+{
+ error_clear_last();
+ $result = \ps_clip($psdoc);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Closes an image and frees its resources. Once an image is closed
+ * it cannot be used anymore.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param int $imageid Resource identifier of the image as returned by
+ * ps_open_image or
+ * ps_open_image_file.
+ * @throws PsException
+ *
+ */
+function ps_close_image($psdoc, int $imageid): void
+{
+ error_clear_last();
+ $result = \ps_close_image($psdoc, $imageid);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Closes the PostScript document.
+ *
+ * This function writes the trailer of the PostScript document.
+ * It also writes the bookmark tree. ps_close does
+ * not free any resources, which is done by ps_delete.
+ *
+ * This function is also called by ps_delete if it
+ * has not been called before.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @throws PsException
+ *
+ */
+function ps_close($psdoc): void
+{
+ error_clear_last();
+ $result = \ps_close($psdoc);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Connects the last point with first point of a path and draws the resulting
+ * closed line.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @throws PsException
+ *
+ */
+function ps_closepath_stroke($psdoc): void
+{
+ error_clear_last();
+ $result = \ps_closepath_stroke($psdoc);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Connects the last point with the first point of a path. The resulting
+ * path can be used for stroking, filling, clipping, etc..
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @throws PsException
+ *
+ */
+function ps_closepath($psdoc): void
+{
+ error_clear_last();
+ $result = \ps_closepath($psdoc);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Output a text one line below the last line. The line spacing is
+ * taken from the value "leading" which must be set with
+ * ps_set_value. The actual position of the
+ * text is determined by the values "textx" and "texty" which can be requested
+ * with ps_get_value
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param string $text The text to output.
+ * @throws PsException
+ *
+ */
+function ps_continue_text($psdoc, string $text): void
+{
+ error_clear_last();
+ $result = \ps_continue_text($psdoc, $text);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Add a section of a cubic Bézier curve described by the three given control
+ * points to the current path.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param float $x1 x-coordinate of first control point.
+ * @param float $y1 y-coordinate of first control point.
+ * @param float $x2 x-coordinate of second control point.
+ * @param float $y2 y-coordinate of second control point.
+ * @param float $x3 x-coordinate of third control point.
+ * @param float $y3 y-coordinate of third control point.
+ * @throws PsException
+ *
+ */
+function ps_curveto($psdoc, float $x1, float $y1, float $x2, float $y2, float $x3, float $y3): void
+{
+ error_clear_last();
+ $result = \ps_curveto($psdoc, $x1, $y1, $x2, $y2, $x3, $y3);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Mainly frees memory used by the document. Also closes a file, if it was not
+ * closed before with ps_close. You should in any case
+ * close the file with ps_close before, because
+ * ps_close not just closes the file but also outputs a
+ * trailor containing PostScript comments like the number of pages in the
+ * document and adding the bookmark hierarchy.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @throws PsException
+ *
+ */
+function ps_delete($psdoc): void
+{
+ error_clear_last();
+ $result = \ps_delete($psdoc);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Ends a page which was started with ps_begin_page.
+ * Ending a page will leave the current drawing context, which e.g. requires
+ * to reload fonts if they were loading within the page, and to set many
+ * other drawing parameters like the line width, or color..
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @throws PsException
+ *
+ */
+function ps_end_page($psdoc): void
+{
+ error_clear_last();
+ $result = \ps_end_page($psdoc);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Ends a pattern which was started with ps_begin_pattern.
+ * Once a pattern has been ended, it can be used like a color to fill
+ * areas.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @throws PsException
+ *
+ */
+function ps_end_pattern($psdoc): void
+{
+ error_clear_last();
+ $result = \ps_end_pattern($psdoc);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Ends a template which was started with ps_begin_template.
+ * Once a template has been ended, it can be used like an image.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @throws PsException
+ *
+ */
+function ps_end_template($psdoc): void
+{
+ error_clear_last();
+ $result = \ps_end_template($psdoc);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Fills and draws the path constructed with previously called drawing
+ * functions like ps_lineto.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @throws PsException
+ *
+ */
+function ps_fill_stroke($psdoc): void
+{
+ error_clear_last();
+ $result = \ps_fill_stroke($psdoc);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Fills the path constructed with previously called drawing functions like
+ * ps_lineto.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @throws PsException
+ *
+ */
+function ps_fill($psdoc): void
+{
+ error_clear_last();
+ $result = \ps_fill($psdoc);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Gets several parameters which were directly set by
+ * ps_set_parameter or indirectly by one of the other
+ * functions. Parameters are by definition string
+ * values. This function cannot be used to retrieve resources which were also
+ * set by ps_set_parameter.
+ *
+ * The parameter name can have the following values.
+ *
+ *
+ *
+ * fontname
+ *
+ *
+ * The name of the currently active font or the font whose
+ * identifier is passed in parameter modifier.
+ *
+ *
+ *
+ *
+ * fontencoding
+ *
+ *
+ * The encoding of the currently active font.
+ *
+ *
+ *
+ *
+ * dottedversion
+ *
+ *
+ * The version of the underlying pslib library in the format
+ * &lt;major&gt;.&lt;minor&gt;.&lt;subminor&gt;
+ *
+ *
+ *
+ *
+ * scope
+ *
+ *
+ * The current drawing scope. Can be object, document, null, page,
+ * pattern, path, template, prolog, font, glyph.
+ *
+ *
+ *
+ *
+ * ligaturedisolvechar
+ *
+ *
+ * The character which dissolves a ligature. If your are using a font
+ * which contains the ligature `ff' and `|' is the char to dissolve the
+ * ligature, then `f|f' will result in two `f' instead of the ligature `ff'.
+ *
+ *
+ *
+ *
+ * imageencoding
+ *
+ *
+ * The encoding used for encoding images. Can be either
+ * hex or 85. hex encoding
+ * uses two bytes in the postscript file each byte in the image.
+ * 85 stand for Ascii85 encoding.
+ *
+ *
+ *
+ *
+ * linenumbermode
+ *
+ *
+ * Set to paragraph if lines are numbered
+ * within a paragraph or box if they are
+ * numbered within the surrounding box.
+ *
+ *
+ *
+ *
+ * linebreak
+ *
+ *
+ * Only used if text is output with ps_show_boxed.
+ * If set to TRUE a carriage return will add a line
+ * break.
+ *
+ *
+ *
+ *
+ * parbreak
+ *
+ *
+ * Only used if text is output with ps_show_boxed.
+ * If set to TRUE a carriage return will start
+ * a new paragraph.
+ *
+ *
+ *
+ *
+ * hyphenation
+ *
+ *
+ * Only used if text is output with ps_show_boxed.
+ * If set to TRUE the paragraph will be hyphenated
+ * if a hypen dictionary is set and exists.
+ *
+ *
+ *
+ *
+ * hyphendict
+ *
+ *
+ * Filename of the dictionary used for hyphenation pattern.
+ *
+ *
+ *
+ *
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param string $name Name of the parameter.
+ * @param float $modifier An identifier needed if a parameter of a resource is requested,
+ * e.g. the size of an image. In such a case the resource id is
+ * passed.
+ * @return string Returns the value of the parameter.
+ * @throws PsException
+ *
+ */
+function ps_get_parameter($psdoc, string $name, float $modifier = null): string
+{
+ error_clear_last();
+ if ($modifier !== null) {
+ $result = \ps_get_parameter($psdoc, $name, $modifier);
+ } else {
+ $result = \ps_get_parameter($psdoc, $name);
+ }
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Hyphenates the passed word. ps_hyphenate evaluates the
+ * value hyphenminchars (set by ps_set_value) and
+ * the parameter hyphendict (set by ps_set_parameter).
+ * hyphendict must be set before calling this function.
+ *
+ * This function requires the locale category LC_CTYPE to be set properly.
+ * This is done when the extension is initialized by using the environment
+ * variables. On Unix systems read the man page of locale for more information.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param string $text text should not contain any non alpha
+ * characters. Possible positions for breaks are returned in an array of
+ * interger numbers. Each number is the position of the char in
+ * text after which a hyphenation can take place.
+ * @return array An array of integers indicating the position of possible breaks in
+ * the text.
+ * @throws PsException
+ *
+ */
+function ps_hyphenate($psdoc, string $text): array
+{
+ error_clear_last();
+ $result = \ps_hyphenate($psdoc, $text);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * This function is
+ * currently not documented; only its argument list is available.
+ *
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param string $file
+ * @throws PsException
+ *
+ */
+function ps_include_file($psdoc, string $file): void
+{
+ error_clear_last();
+ $result = \ps_include_file($psdoc, $file);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Adds a straight line from the current point to the given coordinates to the
+ * current path. Use ps_moveto to set the starting point
+ * of the line.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param float $x x-coordinate of the end point of the line.
+ * @param float $y y-coordinate of the end point of the line.
+ * @throws PsException
+ *
+ */
+function ps_lineto($psdoc, float $x, float $y): void
+{
+ error_clear_last();
+ $result = \ps_lineto($psdoc, $x, $y);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the current point to new coordinates. If this is the first call of
+ * ps_moveto after a previous path has been ended then it
+ * will start a new path. If this function is called in the middle of a path
+ * it will just set the current point and start a subpath.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param float $x x-coordinate of the point to move to.
+ * @param float $y y-coordinate of the point to move to.
+ * @throws PsException
+ *
+ */
+function ps_moveto($psdoc, float $x, float $y): void
+{
+ error_clear_last();
+ $result = \ps_moveto($psdoc, $x, $y);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Creates a new document instance. It does not create the file on disk or in
+ * memory, it just sets up everything. ps_new is usually
+ * followed by a call of ps_open_file to actually create
+ * the postscript document.
+ *
+ * @return resource Resource of PostScript document. The return value
+ * is passed to all other functions as the first argument.
+ * @throws PsException
+ *
+ */
+function ps_new()
+{
+ error_clear_last();
+ $result = \ps_new();
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Creates a new file on disk and writes the PostScript document into it. The
+ * file will be closed when ps_close is called.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param string $filename The name of the postscript file.
+ * If filename is not passed the document will be
+ * created in memory and all output will go straight to the browser.
+ * @throws PsException
+ *
+ */
+function ps_open_file($psdoc, string $filename = null): void
+{
+ error_clear_last();
+ if ($filename !== null) {
+ $result = \ps_open_file($psdoc, $filename);
+ } else {
+ $result = \ps_open_file($psdoc);
+ }
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Places a formerly loaded image on the page. The image can be scaled.
+ * If the image shall be rotated as well, you will have to rotate the
+ * coordinate system before with ps_rotate.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param int $imageid The resource identifier of the image as returned by
+ * ps_open_image or
+ * ps_open_image_file.
+ * @param float $x x-coordinate of the lower left corner of the image.
+ * @param float $y y-coordinate of the lower left corner of the image.
+ * @param float $scale The scaling factor for the image. A scale of 1.0 will result
+ * in a resolution of 72 dpi, because each pixel is equivalent to
+ * 1 point.
+ * @throws PsException
+ *
+ */
+function ps_place_image($psdoc, int $imageid, float $x, float $y, float $scale): void
+{
+ error_clear_last();
+ $result = \ps_place_image($psdoc, $imageid, $x, $y, $scale);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Draws a rectangle with its lower left corner at (x,
+ * y). The rectangle starts and ends in its lower left
+ * corner. If this function is called outside a path it will start a new path.
+ * If it is called within a path it will add the rectangle as a subpath. If
+ * the last drawing operation does not end in the lower left corner then there
+ * will be a gap in the path.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param float $x x-coordinate of the lower left corner of the rectangle.
+ * @param float $y y-coordinate of the lower left corner of the rectangle.
+ * @param float $width The width of the image.
+ * @param float $height The height of the image.
+ * @throws PsException
+ *
+ */
+function ps_rect($psdoc, float $x, float $y, float $width, float $height): void
+{
+ error_clear_last();
+ $result = \ps_rect($psdoc, $x, $y, $width, $height);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Restores a previously saved graphics context. Any call of
+ * ps_save must be accompanied by a call to
+ * ps_restore. All coordinate transformations, line
+ * style settings, color settings, etc. are being restored to the state
+ * before the call of ps_save.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @throws PsException
+ *
+ */
+function ps_restore($psdoc): void
+{
+ error_clear_last();
+ $result = \ps_restore($psdoc);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the rotation of the coordinate system.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param float $rot Angle of rotation in degree.
+ * @throws PsException
+ *
+ */
+function ps_rotate($psdoc, float $rot): void
+{
+ error_clear_last();
+ $result = \ps_rotate($psdoc, $rot);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Saves the current graphics context, containing colors, translation and
+ * rotation settings and some more. A saved context can be restored with
+ * ps_restore.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @throws PsException
+ *
+ */
+function ps_save($psdoc): void
+{
+ error_clear_last();
+ $result = \ps_save($psdoc);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets horizontal and vertical scaling of the coordinate system.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param float $x Scaling factor in horizontal direction.
+ * @param float $y Scaling factor in vertical direction.
+ * @throws PsException
+ *
+ */
+function ps_scale($psdoc, float $x, float $y): void
+{
+ error_clear_last();
+ $result = \ps_scale($psdoc, $x, $y);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Links added with one of the functions ps_add_weblink,
+ * ps_add_pdflink, etc. will be displayed with a
+ * surounded rectangle when the postscript document is converted to
+ * pdf and viewed in a pdf viewer. This rectangle is not visible in
+ * the postscript document.
+ * This function sets the color of the rectangle's border line.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param float $red The red component of the border color.
+ * @param float $green The green component of the border color.
+ * @param float $blue The blue component of the border color.
+ * @throws PsException
+ *
+ */
+function ps_set_border_color($psdoc, float $red, float $green, float $blue): void
+{
+ error_clear_last();
+ $result = \ps_set_border_color($psdoc, $red, $green, $blue);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Links added with one of the functions ps_add_weblink,
+ * ps_add_pdflink, etc. will be displayed with a
+ * surounded rectangle when the postscript document is converted to
+ * pdf and viewed in a pdf viewer. This rectangle is not visible in
+ * the postscript document.
+ * This function sets the length of the black and white portion of a
+ * dashed border line.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param float $black The length of the dash.
+ * @param float $white The length of the gap between dashes.
+ * @throws PsException
+ *
+ */
+function ps_set_border_dash($psdoc, float $black, float $white): void
+{
+ error_clear_last();
+ $result = \ps_set_border_dash($psdoc, $black, $white);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Links added with one of the functions ps_add_weblink,
+ * ps_add_pdflink, etc. will be displayed with a
+ * surounded rectangle when the postscript document is converted to
+ * pdf and viewed in a pdf viewer. This rectangle is not visible in
+ * the postscript document.
+ * This function sets the appearance and width of the border line.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param string $style style can be solid or
+ * dashed.
+ * @param float $width The line width of the border.
+ * @throws PsException
+ *
+ */
+function ps_set_border_style($psdoc, string $style, float $width): void
+{
+ error_clear_last();
+ $result = \ps_set_border_style($psdoc, $style, $width);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets certain information fields of the document. This fields will be shown
+ * as a comment in the header of the PostScript file. If the document is
+ * converted to pdf this fields will also be used for the document
+ * information.
+ *
+ * The BoundingBox is usually set to the value given to the
+ * first page. This only works if ps_findfont has not
+ * been called before. In such cases the BoundingBox would be left unset
+ * unless you set it explicitly with this function.
+ *
+ * This function will have no effect anymore when the header of the postscript
+ * file has been already written. It must be called before the first page
+ * or the first call of ps_findfont.
+ *
+ * @param resource $p Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param string $key The name of the information field to set. The values which can be
+ * set are Keywords, Subject,
+ * Title, Creator,
+ * Author, BoundingBox, and
+ * Orientation. Be aware that some of them has a
+ * meaning to PostScript viewers.
+ * @param string $val The value of the information field. The field
+ * Orientation can be set to either
+ * Portrait or Landscape. The
+ * BoundingBox is a string consisting of four numbers.
+ * The first two numbers are the coordinates of the lower left corner of
+ * the page. The last two numbers are the coordinates of the upper
+ * right corner.
+ *
+ * Up to version 0.2.6 of pslib, the BoundingBox and Orientation
+ * will be overwritten by ps_begin_page,
+ * unless ps_findfont has been called before.
+ * @throws PsException
+ *
+ */
+function ps_set_info($p, string $key, string $val): void
+{
+ error_clear_last();
+ $result = \ps_set_info($p, $key, $val);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets several parameters which are used by many functions. Parameters are by
+ * definition string values.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param string $name For a list of possible names see ps_get_parameter.
+ * @param string $value The value of the parameter.
+ * @throws PsException
+ *
+ */
+function ps_set_parameter($psdoc, string $name, string $value): void
+{
+ error_clear_last();
+ $result = \ps_set_parameter($psdoc, $name, $value);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Set the position for the next text output. You may alternatively set the x
+ * and y value separately by calling ps_set_value and
+ * choosing textx respectively texty as
+ * the value name.
+ *
+ * If you want to output text at a certain position it is more convenient
+ * to use ps_show_xy instead of setting the text position
+ * and calling ps_show.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param float $x x-coordinate of the new text position.
+ * @param float $y y-coordinate of the new text position.
+ * @throws PsException
+ *
+ */
+function ps_set_text_pos($psdoc, float $x, float $y): void
+{
+ error_clear_last();
+ $result = \ps_set_text_pos($psdoc, $x, $y);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets several values which are used by many functions. Parameters are by
+ * definition float values.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param string $name The name can be one of the following:
+ *
+ *
+ * textrendering
+ *
+ *
+ * The way how text is shown.
+ *
+ *
+ *
+ *
+ * textx
+ *
+ *
+ * The x coordinate for text output.
+ *
+ *
+ *
+ *
+ * texty
+ *
+ *
+ * The y coordinate for text output.
+ *
+ *
+ *
+ *
+ * wordspacing
+ *
+ *
+ * The distance between words relative to the width of a space.
+ *
+ *
+ *
+ *
+ * leading
+ *
+ *
+ * The distance between lines in pixels.
+ *
+ *
+ *
+ *
+ *
+ * The way how text is shown.
+ *
+ * The x coordinate for text output.
+ *
+ * The y coordinate for text output.
+ *
+ * The distance between words relative to the width of a space.
+ *
+ * The distance between lines in pixels.
+ * @param float $value The way how text is shown.
+ * @throws PsException
+ *
+ */
+function ps_set_value($psdoc, string $name, float $value): void
+{
+ error_clear_last();
+ $result = \ps_set_value($psdoc, $name, $value);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the color for drawing, filling, or both.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param string $type The parameter type can be
+ * both, fill, or
+ * fillstroke.
+ * @param string $colorspace The colorspace should be one of gray,
+ * rgb, cmyk,
+ * spot, pattern. Depending on the
+ * colorspace either only the first, the first three or all parameters
+ * will be used.
+ * @param float $c1 Depending on the colorspace this is either the red component (rgb),
+ * the cyan component (cmyk), the gray value (gray), the identifier of
+ * the spot color or the identifier of the pattern.
+ * @param float $c2 Depending on the colorspace this is either the green component (rgb),
+ * the magenta component (cmyk).
+ * @param float $c3 Depending on the colorspace this is either the blue component (rgb),
+ * the yellow component (cmyk).
+ * @param float $c4 This must only be set in cmyk colorspace and specifies the black
+ * component.
+ * @throws PsException
+ *
+ */
+function ps_setcolor($psdoc, string $type, string $colorspace, float $c1, float $c2, float $c3, float $c4): void
+{
+ error_clear_last();
+ $result = \ps_setcolor($psdoc, $type, $colorspace, $c1, $c2, $c3, $c4);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the length of the black and white portions of a dashed line.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param float $on The length of the dash.
+ * @param float $off The length of the gap between dashes.
+ * @throws PsException
+ *
+ */
+function ps_setdash($psdoc, float $on, float $off): void
+{
+ error_clear_last();
+ $result = \ps_setdash($psdoc, $on, $off);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function is
+ * currently not documented; only its argument list is available.
+ *
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param float $value The value must be between 0.2 and 1.
+ * @throws PsException
+ *
+ */
+function ps_setflat($psdoc, float $value): void
+{
+ error_clear_last();
+ $result = \ps_setflat($psdoc, $value);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets a font, which has to be loaded before with
+ * ps_findfont. Outputting text without setting a font
+ * results in an error.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param int $fontid The font identifier as returned by ps_findfont.
+ * @param float $size The size of the font.
+ * @throws PsException
+ *
+ */
+function ps_setfont($psdoc, int $fontid, float $size): void
+{
+ error_clear_last();
+ $result = \ps_setfont($psdoc, $fontid, $size);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the gray value for all following drawing operations.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param float $gray The value must be between 0 (white) and 1 (black).
+ * @throws PsException
+ *
+ */
+function ps_setgray($psdoc, float $gray): void
+{
+ error_clear_last();
+ $result = \ps_setgray($psdoc, $gray);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets how line ends look like.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param int $type The type of line ends. Possible values are
+ * PS_LINECAP_BUTT,
+ * PS_LINECAP_ROUND, or
+ * PS_LINECAP_SQUARED.
+ * @throws PsException
+ *
+ */
+function ps_setlinecap($psdoc, int $type): void
+{
+ error_clear_last();
+ $result = \ps_setlinecap($psdoc, $type);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets how lines are joined.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param int $type The way lines are joined. Possible values are
+ * PS_LINEJOIN_MITER,
+ * PS_LINEJOIN_ROUND, or
+ * PS_LINEJOIN_BEVEL.
+ * @throws PsException
+ *
+ */
+function ps_setlinejoin($psdoc, int $type): void
+{
+ error_clear_last();
+ $result = \ps_setlinejoin($psdoc, $type);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the line width for all following drawing operations.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param float $width The width of lines in points.
+ * @throws PsException
+ *
+ */
+function ps_setlinewidth($psdoc, float $width): void
+{
+ error_clear_last();
+ $result = \ps_setlinewidth($psdoc, $width);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * If two lines join in a small angle and the line join is set to
+ * PS_LINEJOIN_MITER, then
+ * the resulting spike will be very long. The miter limit is the maximum
+ * ratio of the miter length (the length of the spike) and the line width.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param float $value The maximum ratio between the miter length and the line width. Larger
+ * values (&gt; 10) will result in very long spikes when two lines meet
+ * in a small angle. Keep the default unless you know what you are doing.
+ * @throws PsException
+ *
+ */
+function ps_setmiterlimit($psdoc, float $value): void
+{
+ error_clear_last();
+ $result = \ps_setmiterlimit($psdoc, $value);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function is
+ * currently not documented; only its argument list is available.
+ *
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param int $mode
+ * @throws PsException
+ *
+ */
+function ps_setoverprintmode($psdoc, int $mode): void
+{
+ error_clear_last();
+ $result = \ps_setoverprintmode($psdoc, $mode);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the length of the black and white portions of a dashed line.
+ * ps_setpolydash is used to set more complicated dash
+ * patterns.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param float $arr arr is a list of length elements alternately for
+ * the black and white portion.
+ * @throws PsException
+ *
+ */
+function ps_setpolydash($psdoc, float $arr): void
+{
+ error_clear_last();
+ $result = \ps_setpolydash($psdoc, $arr);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Creates a pattern based on a shading, which has to be created before with
+ * ps_shading. Shading patterns can be used like regular
+ * patterns.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param int $shadingid The identifier of a shading previously created with
+ * ps_shading.
+ * @param string $optlist This argument is not currently used.
+ * @return int The identifier of the pattern.
+ * @throws PsException
+ *
+ */
+function ps_shading_pattern($psdoc, int $shadingid, string $optlist): int
+{
+ error_clear_last();
+ $result = \ps_shading_pattern($psdoc, $shadingid, $optlist);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Creates a shading, which can be used by ps_shfill or
+ * ps_shading_pattern.
+ *
+ * The color of the shading can be in any color space except for
+ * pattern.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param string $type The type of shading can be either radial or
+ * axial. Each shading starts with the current fill
+ * color and ends with the given color values passed in the parameters
+ * c1 to c4
+ * (see ps_setcolor for their meaning).
+ * @param float $x0 The coordinates x0, y0,
+ * x1, y1 are the start and
+ * end point of the shading. If the type of shading is
+ * radial the two points are the middle points of
+ * a starting and ending circle.
+ * @param float $y0 See ps_setcolor for their meaning.
+ * @param float $x1 If the shading is of type radial the
+ * optlist must also contain the parameters
+ * r0 and r1 with the radius of the
+ * start and end circle.
+ * @param float $y1
+ * @param float $c1
+ * @param float $c2
+ * @param float $c3
+ * @param float $c4
+ * @param string $optlist
+ * @return int Returns the identifier of the pattern.
+ * @throws PsException
+ *
+ */
+function ps_shading($psdoc, string $type, float $x0, float $y0, float $x1, float $y1, float $c1, float $c2, float $c3, float $c4, string $optlist): int
+{
+ error_clear_last();
+ $result = \ps_shading($psdoc, $type, $x0, $y0, $x1, $y1, $c1, $c2, $c3, $c4, $optlist);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Fills an area with a shading, which has to be created before with
+ * ps_shading. This is an alternative way to creating
+ * a pattern from a shading ps_shading_pattern and using
+ * the pattern as the filling color.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param int $shadingid The identifier of a shading previously created with
+ * ps_shading.
+ * @throws PsException
+ *
+ */
+function ps_shfill($psdoc, int $shadingid): void
+{
+ error_clear_last();
+ $result = \ps_shfill($psdoc, $shadingid);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Output a text at the given text position.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param string $text The text to be output.
+ * @param float $x x-coordinate of the lower left corner of the box surrounding the text.
+ * @param float $y y-coordinate of the lower left corner of the box surrounding the text.
+ * @throws PsException
+ *
+ */
+function ps_show_xy($psdoc, string $text, float $x, float $y): void
+{
+ error_clear_last();
+ $result = \ps_show_xy($psdoc, $text, $x, $y);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function is
+ * currently not documented; only its argument list is available.
+ *
+ *
+ * @param resource $psdoc
+ * @param string $text
+ * @param int $len
+ * @param float $xcoor
+ * @param float $ycoor
+ * @throws PsException
+ *
+ */
+function ps_show_xy2($psdoc, string $text, int $len, float $xcoor, float $ycoor): void
+{
+ error_clear_last();
+ $result = \ps_show_xy2($psdoc, $text, $len, $xcoor, $ycoor);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Output a text at the current text position. The text position can be set
+ * by storing the x and y coordinates into the values textx
+ * and texty with the function
+ * ps_set_value. The function will issue an
+ * error if a font was not set before with ps_setfont.
+ *
+ * ps_show evaluates the following parameters and values
+ * as set by ps_set_parameter and
+ * ps_set_value.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param string $text The text to be output.
+ * @throws PsException
+ *
+ */
+function ps_show($psdoc, string $text): void
+{
+ error_clear_last();
+ $result = \ps_show($psdoc, $text);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Output text at the current position. Do not print more than len characters.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param string $text The text to be output.
+ * @param int $len The maximum number of characters to print.
+ * @throws PsException
+ *
+ */
+function ps_show2($psdoc, string $text, int $len): void
+{
+ error_clear_last();
+ $result = \ps_show2($psdoc, $text, $len);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Draws the path constructed with previously called drawing functions like
+ * ps_lineto.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @throws PsException
+ *
+ */
+function ps_stroke($psdoc): void
+{
+ error_clear_last();
+ $result = \ps_stroke($psdoc);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Output the glyph at position ord in the font
+ * encoding vector of the current font. The font encoding for a font can be
+ * set when loading the font with ps_findfont.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param int $ord The position of the glyph in the font encoding vector.
+ * @throws PsException
+ *
+ */
+function ps_symbol($psdoc, int $ord): void
+{
+ error_clear_last();
+ $result = \ps_symbol($psdoc, $ord);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets a new initial point of the coordinate system.
+ *
+ * @param resource $psdoc Resource identifier of the postscript file
+ * as returned by ps_new.
+ * @param float $x x-coordinate of the origin of the translated coordinate system.
+ * @param float $y y-coordinate of the origin of the translated coordinate system.
+ * @throws PsException
+ *
+ */
+function ps_translate($psdoc, float $x, float $y): void
+{
+ error_clear_last();
+ $result = \ps_translate($psdoc, $x, $y);
+ if ($result === false) {
+ throw PsException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/pspell.php b/vendor/thecodingmachine/safe/generated/pspell.php
new file mode 100644
index 000000000..4cf4c36a6
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/pspell.php
@@ -0,0 +1,451 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\PspellException;
+
+/**
+ *
+ *
+ * @param int $dictionary_link
+ * @param string $word The added word.
+ * @throws PspellException
+ *
+ */
+function pspell_add_to_personal(int $dictionary_link, string $word): void
+{
+ error_clear_last();
+ $result = \pspell_add_to_personal($dictionary_link, $word);
+ if ($result === false) {
+ throw PspellException::createFromPhpError();
+ }
+}
+
+
+/**
+ *
+ *
+ * @param int $dictionary_link
+ * @param string $word The added word.
+ * @throws PspellException
+ *
+ */
+function pspell_add_to_session(int $dictionary_link, string $word): void
+{
+ error_clear_last();
+ $result = \pspell_add_to_session($dictionary_link, $word);
+ if ($result === false) {
+ throw PspellException::createFromPhpError();
+ }
+}
+
+
+/**
+ *
+ *
+ * @param int $dictionary_link
+ * @throws PspellException
+ *
+ */
+function pspell_clear_session(int $dictionary_link): void
+{
+ error_clear_last();
+ $result = \pspell_clear_session($dictionary_link);
+ if ($result === false) {
+ throw PspellException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Create a config used to open a dictionary.
+ *
+ * pspell_config_create has a very similar syntax to
+ * pspell_new. In fact, using
+ * pspell_config_create immediately followed by
+ * pspell_new_config will produce the exact same result.
+ * However, after creating a new config, you can also use
+ * pspell_config_* functions before calling
+ * pspell_new_config to take advantage of some
+ * advanced functionality.
+ *
+ * For more information and examples, check out inline manual pspell
+ * website:http://aspell.net/.
+ *
+ * @param string $language The language parameter is the language code which consists of the
+ * two letter ISO 639 language code and an optional two letter ISO
+ * 3166 country code after a dash or underscore.
+ * @param string $spelling The spelling parameter is the requested spelling for languages
+ * with more than one spelling such as English. Known values are
+ * 'american', 'british', and 'canadian'.
+ * @param string $jargon The jargon parameter contains extra information to distinguish
+ * two different words lists that have the same language and
+ * spelling parameters.
+ * @param string $encoding The encoding parameter is the encoding that words are expected to
+ * be in. Valid values are 'utf-8', 'iso8859-*', 'koi8-r',
+ * 'viscii', 'cp1252', 'machine unsigned 16', 'machine unsigned
+ * 32'. This parameter is largely untested, so be careful when
+ * using.
+ * @return int Returns a pspell config identifier.
+ * @throws PspellException
+ *
+ */
+function pspell_config_create(string $language, string $spelling = null, string $jargon = null, string $encoding = null): int
+{
+ error_clear_last();
+ if ($encoding !== null) {
+ $result = \pspell_config_create($language, $spelling, $jargon, $encoding);
+ } elseif ($jargon !== null) {
+ $result = \pspell_config_create($language, $spelling, $jargon);
+ } elseif ($spelling !== null) {
+ $result = \pspell_config_create($language, $spelling);
+ } else {
+ $result = \pspell_config_create($language);
+ }
+ if ($result === false) {
+ throw PspellException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * This function is
+ * currently not documented; only its argument list is available.
+ *
+ *
+ * @param int $conf
+ * @param string $directory
+ * @throws PspellException
+ *
+ */
+function pspell_config_data_dir(int $conf, string $directory): void
+{
+ error_clear_last();
+ $result = \pspell_config_data_dir($conf, $directory);
+ if ($result === false) {
+ throw PspellException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function is
+ * currently not documented; only its argument list is available.
+ *
+ *
+ * @param int $conf
+ * @param string $directory
+ * @throws PspellException
+ *
+ */
+function pspell_config_dict_dir(int $conf, string $directory): void
+{
+ error_clear_last();
+ $result = \pspell_config_dict_dir($conf, $directory);
+ if ($result === false) {
+ throw PspellException::createFromPhpError();
+ }
+}
+
+
+/**
+ *
+ *
+ * @param int $dictionary_link
+ * @param int $n Words less than n characters will be skipped.
+ * @throws PspellException
+ *
+ */
+function pspell_config_ignore(int $dictionary_link, int $n): void
+{
+ error_clear_last();
+ $result = \pspell_config_ignore($dictionary_link, $n);
+ if ($result === false) {
+ throw PspellException::createFromPhpError();
+ }
+}
+
+
+/**
+ *
+ *
+ * @param int $dictionary_link
+ * @param int $mode The mode parameter is the mode in which spellchecker will work.
+ * There are several modes available:
+ *
+ *
+ *
+ * PSPELL_FAST - Fast mode (least number of
+ * suggestions)
+ *
+ *
+ *
+ *
+ * PSPELL_NORMAL - Normal mode (more suggestions)
+ *
+ *
+ *
+ *
+ * PSPELL_BAD_SPELLERS - Slow mode (a lot of
+ * suggestions)
+ *
+ *
+ *
+ * @throws PspellException
+ *
+ */
+function pspell_config_mode(int $dictionary_link, int $mode): void
+{
+ error_clear_last();
+ $result = \pspell_config_mode($dictionary_link, $mode);
+ if ($result === false) {
+ throw PspellException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Set a file that contains personal wordlist. The personal wordlist will be
+ * loaded and used in addition to the standard one after you call
+ * pspell_new_config. The file is also the file where
+ * pspell_save_wordlist will save personal wordlist to.
+ *
+ * pspell_config_personal should be used on a config
+ * before calling pspell_new_config.
+ *
+ * @param int $dictionary_link
+ * @param string $file The personal wordlist. If the file does not exist, it will be created.
+ * The file should be writable by whoever PHP runs as (e.g. nobody).
+ * @throws PspellException
+ *
+ */
+function pspell_config_personal(int $dictionary_link, string $file): void
+{
+ error_clear_last();
+ $result = \pspell_config_personal($dictionary_link, $file);
+ if ($result === false) {
+ throw PspellException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Set a file that contains replacement pairs.
+ *
+ * The replacement pairs improve the quality of the spellchecker. When a word
+ * is misspelled, and a proper suggestion was not found in the list,
+ * pspell_store_replacement can be used to store a
+ * replacement pair and then pspell_save_wordlist to
+ * save the wordlist along with the replacement pairs.
+ *
+ * pspell_config_repl should be used on a config
+ * before calling pspell_new_config.
+ *
+ * @param int $dictionary_link
+ * @param string $file The file should be writable by whoever PHP runs as (e.g. nobody).
+ * @throws PspellException
+ *
+ */
+function pspell_config_repl(int $dictionary_link, string $file): void
+{
+ error_clear_last();
+ $result = \pspell_config_repl($dictionary_link, $file);
+ if ($result === false) {
+ throw PspellException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function determines whether run-together words will be treated as
+ * legal compounds. That is, "thecat" will be a legal compound, although
+ * there should be a space between the two words. Changing this setting only
+ * affects the results returned by pspell_check;
+ * pspell_suggest will still return suggestions.
+ *
+ * pspell_config_runtogether should be used on a config
+ * before calling pspell_new_config.
+ *
+ * @param int $dictionary_link
+ * @param bool $flag TRUE if run-together words should be treated as legal compounds,
+ * FALSE otherwise.
+ * @throws PspellException
+ *
+ */
+function pspell_config_runtogether(int $dictionary_link, bool $flag): void
+{
+ error_clear_last();
+ $result = \pspell_config_runtogether($dictionary_link, $flag);
+ if ($result === false) {
+ throw PspellException::createFromPhpError();
+ }
+}
+
+
+/**
+ * pspell_config_save_repl determines whether
+ * pspell_save_wordlist will save the replacement pairs
+ * along with the wordlist. Usually there is no need to use this function
+ * because if pspell_config_repl is used, the
+ * replacement pairs will be saved by
+ * pspell_save_wordlist anyway, and if it is not,
+ * the replacement pairs will not be saved.
+ *
+ * pspell_config_save_repl should be used on a config
+ * before calling pspell_new_config.
+ *
+ * @param int $dictionary_link
+ * @param bool $flag TRUE if replacement pairs should be saved, FALSE otherwise.
+ * @throws PspellException
+ *
+ */
+function pspell_config_save_repl(int $dictionary_link, bool $flag): void
+{
+ error_clear_last();
+ $result = \pspell_config_save_repl($dictionary_link, $flag);
+ if ($result === false) {
+ throw PspellException::createFromPhpError();
+ }
+}
+
+
+/**
+ *
+ *
+ * @param int $config The config parameter is the one returned by
+ * pspell_config_create when the config was created.
+ * @return int Returns a dictionary link identifier on success.
+ * @throws PspellException
+ *
+ */
+function pspell_new_config(int $config): int
+{
+ error_clear_last();
+ $result = \pspell_new_config($config);
+ if ($result === false) {
+ throw PspellException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * pspell_new opens up a new dictionary and
+ * returns the dictionary link identifier for use in other pspell
+ * functions.
+ *
+ * For more information and examples, check out inline manual pspell
+ * website:http://aspell.net/.
+ *
+ * @param string $language The language parameter is the language code which consists of the
+ * two letter ISO 639 language code and an optional two letter ISO
+ * 3166 country code after a dash or underscore.
+ * @param string $spelling The spelling parameter is the requested spelling for languages
+ * with more than one spelling such as English. Known values are
+ * 'american', 'british', and 'canadian'.
+ * @param string $jargon The jargon parameter contains extra information to distinguish
+ * two different words lists that have the same language and
+ * spelling parameters.
+ * @param string $encoding The encoding parameter is the encoding that words are expected to
+ * be in. Valid values are 'utf-8', 'iso8859-*', 'koi8-r',
+ * 'viscii', 'cp1252', 'machine unsigned 16', 'machine unsigned
+ * 32'. This parameter is largely untested, so be careful when
+ * using.
+ * @param int $mode The mode parameter is the mode in which spellchecker will work.
+ * There are several modes available:
+ *
+ *
+ *
+ * PSPELL_FAST - Fast mode (least number of
+ * suggestions)
+ *
+ *
+ *
+ *
+ * PSPELL_NORMAL - Normal mode (more suggestions)
+ *
+ *
+ *
+ *
+ * PSPELL_BAD_SPELLERS - Slow mode (a lot of
+ * suggestions)
+ *
+ *
+ *
+ *
+ * PSPELL_RUN_TOGETHER - Consider run-together words
+ * as legal compounds. That is, "thecat" will be a legal compound,
+ * although there should be a space between the two words. Changing this
+ * setting only affects the results returned by
+ * pspell_check; pspell_suggest
+ * will still return suggestions.
+ *
+ *
+ *
+ * Mode is a bitmask constructed from different constants listed above.
+ * However, PSPELL_FAST,
+ * PSPELL_NORMAL and
+ * PSPELL_BAD_SPELLERS are mutually exclusive, so you
+ * should select only one of them.
+ * @return int Returns the dictionary link identifier on success.
+ * @throws PspellException
+ *
+ */
+function pspell_new(string $language, string $spelling = null, string $jargon = null, string $encoding = null, int $mode = 0): int
+{
+ error_clear_last();
+ if ($mode !== 0) {
+ $result = \pspell_new($language, $spelling, $jargon, $encoding, $mode);
+ } elseif ($encoding !== null) {
+ $result = \pspell_new($language, $spelling, $jargon, $encoding);
+ } elseif ($jargon !== null) {
+ $result = \pspell_new($language, $spelling, $jargon);
+ } elseif ($spelling !== null) {
+ $result = \pspell_new($language, $spelling);
+ } else {
+ $result = \pspell_new($language);
+ }
+ if ($result === false) {
+ throw PspellException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ *
+ *
+ * @param int $dictionary_link A dictionary link identifier opened with
+ * pspell_new_personal.
+ * @throws PspellException
+ *
+ */
+function pspell_save_wordlist(int $dictionary_link): void
+{
+ error_clear_last();
+ $result = \pspell_save_wordlist($dictionary_link);
+ if ($result === false) {
+ throw PspellException::createFromPhpError();
+ }
+}
+
+
+/**
+ *
+ *
+ * @param int $dictionary_link A dictionary link identifier, opened with
+ * pspell_new_personal
+ * @param string $misspelled The misspelled word.
+ * @param string $correct The fixed spelling for the misspelled word.
+ * @throws PspellException
+ *
+ */
+function pspell_store_replacement(int $dictionary_link, string $misspelled, string $correct): void
+{
+ error_clear_last();
+ $result = \pspell_store_replacement($dictionary_link, $misspelled, $correct);
+ if ($result === false) {
+ throw PspellException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/readline.php b/vendor/thecodingmachine/safe/generated/readline.php
new file mode 100644
index 000000000..a1c52c755
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/readline.php
@@ -0,0 +1,157 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\ReadlineException;
+
+/**
+ * This function adds a line to the command line history.
+ *
+ * @param string $line The line to be added in the history.
+ * @throws ReadlineException
+ *
+ */
+function readline_add_history(string $line): void
+{
+ error_clear_last();
+ $result = \readline_add_history($line);
+ if ($result === false) {
+ throw ReadlineException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets up a readline callback interface then prints
+ * prompt and immediately returns.
+ * Calling this function twice without removing the previous
+ * callback interface will automatically and conveniently overwrite the old
+ * interface.
+ *
+ * The callback feature is useful when combined with
+ * stream_select as it allows interleaving of IO and
+ * user input, unlike readline.
+ *
+ *
+ * Readline Callback Interface Example
+ *
+ * 10) {
+ * $prompting = false;
+ * readline_callback_handler_remove();
+ * } else {
+ * readline_callback_handler_install("[$c] Enter something: ", 'rl_callback');
+ * }
+ * }
+ *
+ * $c = 1;
+ * $prompting = true;
+ *
+ * readline_callback_handler_install("[$c] Enter something: ", 'rl_callback');
+ *
+ * while ($prompting) {
+ * $w = NULL;
+ * $e = NULL;
+ * $n = stream_select($r = array(STDIN), $w, $e, null);
+ * if ($n && in_array(STDIN, $r)) {
+ * // read a character, will call the callback when a newline is entered
+ * readline_callback_read_char();
+ * }
+ * }
+ *
+ * echo "Prompting disabled. All done.\n";
+ * ?>
+ * ]]>
+ *
+ *
+ *
+ * @param string $prompt The prompt message.
+ * @param callable $callback The callback function takes one parameter; the
+ * user input returned.
+ * @throws ReadlineException
+ *
+ */
+function readline_callback_handler_install(string $prompt, callable $callback): void
+{
+ error_clear_last();
+ $result = \readline_callback_handler_install($prompt, $callback);
+ if ($result === false) {
+ throw ReadlineException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function clears the entire command line history.
+ *
+ * @throws ReadlineException
+ *
+ */
+function readline_clear_history(): void
+{
+ error_clear_last();
+ $result = \readline_clear_history();
+ if ($result === false) {
+ throw ReadlineException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function registers a completion function. This is the same kind of
+ * functionality you'd get if you hit your tab key while using Bash.
+ *
+ * @param callable $function You must supply the name of an existing function which accepts a
+ * partial command line and returns an array of possible matches.
+ * @throws ReadlineException
+ *
+ */
+function readline_completion_function(callable $function): void
+{
+ error_clear_last();
+ $result = \readline_completion_function($function);
+ if ($result === false) {
+ throw ReadlineException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function reads a command history from a file.
+ *
+ * @param string $filename Path to the filename containing the command history.
+ * @throws ReadlineException
+ *
+ */
+function readline_read_history(string $filename = null): void
+{
+ error_clear_last();
+ if ($filename !== null) {
+ $result = \readline_read_history($filename);
+ } else {
+ $result = \readline_read_history();
+ }
+ if ($result === false) {
+ throw ReadlineException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function writes the command history to a file.
+ *
+ * @param string $filename Path to the saved file.
+ * @throws ReadlineException
+ *
+ */
+function readline_write_history(string $filename = null): void
+{
+ error_clear_last();
+ if ($filename !== null) {
+ $result = \readline_write_history($filename);
+ } else {
+ $result = \readline_write_history();
+ }
+ if ($result === false) {
+ throw ReadlineException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/rpminfo.php b/vendor/thecodingmachine/safe/generated/rpminfo.php
new file mode 100644
index 000000000..44de1ce23
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/rpminfo.php
@@ -0,0 +1,21 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\RpminfoException;
+
+/**
+ * Add an additional retrieved tag in subsequent queries.
+ *
+ * @param int $tag One of RPMTAG_* constant, see the rpminfo constants page.
+ * @throws RpminfoException
+ *
+ */
+function rpmaddtag(int $tag): void
+{
+ error_clear_last();
+ $result = \rpmaddtag($tag);
+ if ($result === false) {
+ throw RpminfoException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/rrd.php b/vendor/thecodingmachine/safe/generated/rrd.php
new file mode 100644
index 000000000..9bb3b5c52
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/rrd.php
@@ -0,0 +1,23 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\RrdException;
+
+/**
+ * Creates the rdd database file.
+ *
+ * @param string $filename Filename for newly created rrd file.
+ * @param array $options Options for rrd create - list of strings. See man page of rrd create
+ * for whole list of options.
+ * @throws RrdException
+ *
+ */
+function rrd_create(string $filename, array $options): void
+{
+ error_clear_last();
+ $result = \rrd_create($filename, $options);
+ if ($result === false) {
+ throw RrdException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/sem.php b/vendor/thecodingmachine/safe/generated/sem.php
new file mode 100644
index 000000000..739e8b389
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/sem.php
@@ -0,0 +1,367 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\SemException;
+
+/**
+ * Checks whether the message queue key exists.
+ *
+ * @param int $key Queue key.
+ * @throws SemException
+ *
+ */
+function msg_queue_exists(int $key): void
+{
+ error_clear_last();
+ $result = \msg_queue_exists($key);
+ if ($result === false) {
+ throw SemException::createFromPhpError();
+ }
+}
+
+
+/**
+ * msg_receive will receive the first message from the
+ * specified queue of the type specified by
+ * desiredmsgtype.
+ *
+ * @param resource $queue Message queue resource handle
+ * @param int $desiredmsgtype If desiredmsgtype is 0, the message from the front
+ * of the queue is returned. If desiredmsgtype is
+ * greater than 0, then the first message of that type is returned.
+ * If desiredmsgtype is less than 0, the first
+ * message on the queue with a type less than or equal to the
+ * absolute value of desiredmsgtype will be read.
+ * If no messages match the criteria, your script will wait until a suitable
+ * message arrives on the queue. You can prevent the script from blocking
+ * by specifying MSG_IPC_NOWAIT in the
+ * flags parameter.
+ * @param int|null $msgtype The type of the message that was received will be stored in this
+ * parameter.
+ * @param int $maxsize The maximum size of message to be accepted is specified by the
+ * maxsize; if the message in the queue is larger
+ * than this size the function will fail (unless you set
+ * flags as described below).
+ * @param mixed $message The received message will be stored in message,
+ * unless there were errors receiving the message.
+ * @param bool $unserialize If set to
+ * TRUE, the message is treated as though it was serialized using the
+ * same mechanism as the session module. The message will be unserialized
+ * and then returned to your script. This allows you to easily receive
+ * arrays or complex object structures from other PHP scripts, or if you
+ * are using the WDDX serializer, from any WDDX compatible source.
+ *
+ * If unserialize is FALSE, the message will be
+ * returned as a binary-safe string.
+ * @param int $flags The optional flags allows you to pass flags to the
+ * low-level msgrcv system call. It defaults to 0, but you may specify one
+ * or more of the following values (by adding or ORing them together).
+ *
+ * Flag values for msg_receive
+ *
+ *
+ *
+ * MSG_IPC_NOWAIT
+ * If there are no messages of the
+ * desiredmsgtype, return immediately and do not
+ * wait. The function will fail and return an integer value
+ * corresponding to MSG_ENOMSG.
+ *
+ *
+ *
+ * MSG_EXCEPT
+ * Using this flag in combination with a
+ * desiredmsgtype greater than 0 will cause the
+ * function to receive the first message that is not equal to
+ * desiredmsgtype.
+ *
+ *
+ * MSG_NOERROR
+ *
+ * If the message is longer than maxsize,
+ * setting this flag will truncate the message to
+ * maxsize and will not signal an error.
+ *
+ *
+ *
+ *
+ *
+ * @param int|null $errorcode If the function fails, the optional errorcode
+ * will be set to the value of the system errno variable.
+ * @throws SemException
+ *
+ */
+function msg_receive($queue, int $desiredmsgtype, ?int &$msgtype, int $maxsize, &$message, bool $unserialize = true, int $flags = 0, ?int &$errorcode = null): void
+{
+ error_clear_last();
+ $result = \msg_receive($queue, $desiredmsgtype, $msgtype, $maxsize, $message, $unserialize, $flags, $errorcode);
+ if ($result === false) {
+ throw SemException::createFromPhpError();
+ }
+}
+
+
+/**
+ * msg_remove_queue destroys the message queue specified
+ * by the queue. Only use this function when all
+ * processes have finished working with the message queue and you need to
+ * release the system resources held by it.
+ *
+ * @param resource $queue Message queue resource handle
+ * @throws SemException
+ *
+ */
+function msg_remove_queue($queue): void
+{
+ error_clear_last();
+ $result = \msg_remove_queue($queue);
+ if ($result === false) {
+ throw SemException::createFromPhpError();
+ }
+}
+
+
+/**
+ * msg_send sends a message of type
+ * msgtype (which MUST be greater than 0) to
+ * the message queue specified by queue.
+ *
+ * @param resource $queue Message queue resource handle
+ * @param int $msgtype The type of the message (MUST be greater than 0)
+ * @param mixed $message The body of the message.
+ *
+ * If serialize set to FALSE is supplied,
+ * MUST be of type: string, integer, float
+ * or bool. In other case a warning will be issued.
+ * @param bool $serialize The optional serialize controls how the
+ * message is sent. serialize
+ * defaults to TRUE which means that the message is
+ * serialized using the same mechanism as the session module before being
+ * sent to the queue. This allows complex arrays and objects to be sent to
+ * other PHP scripts, or if you are using the WDDX serializer, to any WDDX
+ * compatible client.
+ * @param bool $blocking If the message is too large to fit in the queue, your script will wait
+ * until another process reads messages from the queue and frees enough
+ * space for your message to be sent.
+ * This is called blocking; you can prevent blocking by setting the
+ * optional blocking parameter to FALSE, in which
+ * case msg_send will immediately return FALSE if the
+ * message is too big for the queue, and set the optional
+ * errorcode to MSG_EAGAIN,
+ * indicating that you should try to send your message again a little
+ * later on.
+ * @param int|null $errorcode If the function fails, the optional errorcode will be set to the value of the system errno variable.
+ * @throws SemException
+ *
+ */
+function msg_send($queue, int $msgtype, $message, bool $serialize = true, bool $blocking = true, ?int &$errorcode = null): void
+{
+ error_clear_last();
+ $result = \msg_send($queue, $msgtype, $message, $serialize, $blocking, $errorcode);
+ if ($result === false) {
+ throw SemException::createFromPhpError();
+ }
+}
+
+
+/**
+ * msg_set_queue allows you to change the values of the
+ * msg_perm.uid, msg_perm.gid, msg_perm.mode and msg_qbytes fields of the
+ * underlying message queue data structure.
+ *
+ * Changing the data structure will require that PHP be running as the same
+ * user that created the queue, owns the queue (as determined by the
+ * existing msg_perm.xxx fields), or be running with root privileges.
+ * root privileges are required to raise the msg_qbytes values above the
+ * system defined limit.
+ *
+ * @param resource $queue Message queue resource handle
+ * @param array $data You specify the values you require by setting the value of the keys
+ * that you require in the data array.
+ * @throws SemException
+ *
+ */
+function msg_set_queue($queue, array $data): void
+{
+ error_clear_last();
+ $result = \msg_set_queue($queue, $data);
+ if ($result === false) {
+ throw SemException::createFromPhpError();
+ }
+}
+
+
+/**
+ * sem_acquire by default blocks (if necessary) until the
+ * semaphore can be acquired. A process attempting to acquire a semaphore which
+ * it has already acquired will block forever if acquiring the semaphore would
+ * cause its maximum number of semaphore to be exceeded.
+ *
+ * After processing a request, any semaphores acquired by the process but not
+ * explicitly released will be released automatically and a warning will be
+ * generated.
+ *
+ * @param resource $sem_identifier sem_identifier is a semaphore resource,
+ * obtained from sem_get.
+ * @param bool $nowait Specifies if the process shouldn't wait for the semaphore to be acquired.
+ * If set to true, the call will return
+ * false immediately if a semaphore cannot be immediately
+ * acquired.
+ * @throws SemException
+ *
+ */
+function sem_acquire($sem_identifier, bool $nowait = false): void
+{
+ error_clear_last();
+ $result = \sem_acquire($sem_identifier, $nowait);
+ if ($result === false) {
+ throw SemException::createFromPhpError();
+ }
+}
+
+
+/**
+ * sem_get returns an id that can be used to
+ * access the System V semaphore with the given key.
+ *
+ * A second call to sem_get for the same key
+ * will return a different semaphore identifier, but both
+ * identifiers access the same underlying semaphore.
+ *
+ * If key is 0, a new private semaphore
+ * is created for each call to sem_get.
+ *
+ * @param int $key
+ * @param int $max_acquire The number of processes that can acquire the semaphore simultaneously
+ * is set to max_acquire.
+ * @param int $perm The semaphore permissions. Actually this value is
+ * set only if the process finds it is the only process currently
+ * attached to the semaphore.
+ * @param int $auto_release Specifies if the semaphore should be automatically released on request
+ * shutdown.
+ * @return resource Returns a positive semaphore identifier on success.
+ * @throws SemException
+ *
+ */
+function sem_get(int $key, int $max_acquire = 1, int $perm = 0666, int $auto_release = 1)
+{
+ error_clear_last();
+ $result = \sem_get($key, $max_acquire, $perm, $auto_release);
+ if ($result === false) {
+ throw SemException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * sem_release releases the semaphore if it
+ * is currently acquired by the calling process, otherwise
+ * a warning is generated.
+ *
+ * After releasing the semaphore, sem_acquire
+ * may be called to re-acquire it.
+ *
+ * @param resource $sem_identifier A Semaphore resource handle as returned by
+ * sem_get.
+ * @throws SemException
+ *
+ */
+function sem_release($sem_identifier): void
+{
+ error_clear_last();
+ $result = \sem_release($sem_identifier);
+ if ($result === false) {
+ throw SemException::createFromPhpError();
+ }
+}
+
+
+/**
+ * sem_remove removes the given semaphore.
+ *
+ * After removing the semaphore, it is no longer accessible.
+ *
+ * @param resource $sem_identifier A semaphore resource identifier as returned
+ * by sem_get.
+ * @throws SemException
+ *
+ */
+function sem_remove($sem_identifier): void
+{
+ error_clear_last();
+ $result = \sem_remove($sem_identifier);
+ if ($result === false) {
+ throw SemException::createFromPhpError();
+ }
+}
+
+
+/**
+ * shm_put_var inserts or updates the
+ * variable with the given
+ * variable_key.
+ *
+ * Warnings (E_WARNING level) will be issued if
+ * shm_identifier is not a valid SysV shared memory
+ * index or if there was not enough shared memory remaining to complete your
+ * request.
+ *
+ * @param resource $shm_identifier A shared memory resource handle as returned by
+ * shm_attach
+ * @param int $variable_key The variable key.
+ * @param mixed $variable The variable. All variable types
+ * that serialize supports may be used: generally
+ * this means all types except for resources and some internal objects
+ * that cannot be serialized.
+ * @throws SemException
+ *
+ */
+function shm_put_var($shm_identifier, int $variable_key, $variable): void
+{
+ error_clear_last();
+ $result = \shm_put_var($shm_identifier, $variable_key, $variable);
+ if ($result === false) {
+ throw SemException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Removes a variable with a given variable_key
+ * and frees the occupied memory.
+ *
+ * @param resource $shm_identifier The shared memory identifier as returned by
+ * shm_attach
+ * @param int $variable_key The variable key.
+ * @throws SemException
+ *
+ */
+function shm_remove_var($shm_identifier, int $variable_key): void
+{
+ error_clear_last();
+ $result = \shm_remove_var($shm_identifier, $variable_key);
+ if ($result === false) {
+ throw SemException::createFromPhpError();
+ }
+}
+
+
+/**
+ * shm_remove removes the shared memory
+ * shm_identifier. All data will be destroyed.
+ *
+ * @param resource $shm_identifier The shared memory identifier as returned by
+ * shm_attach
+ * @throws SemException
+ *
+ */
+function shm_remove($shm_identifier): void
+{
+ error_clear_last();
+ $result = \shm_remove($shm_identifier);
+ if ($result === false) {
+ throw SemException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/session.php b/vendor/thecodingmachine/safe/generated/session.php
new file mode 100644
index 000000000..7b8c9478d
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/session.php
@@ -0,0 +1,153 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\SessionException;
+
+/**
+ * session_abort finishes session without saving
+ * data. Thus the original values in session data are kept.
+ *
+ * @throws SessionException
+ *
+ */
+function session_abort(): void
+{
+ error_clear_last();
+ $result = \session_abort();
+ if ($result === false) {
+ throw SessionException::createFromPhpError();
+ }
+}
+
+
+/**
+ * session_decode decodes the serialized session data provided in
+ * $data, and populates the $_SESSION superglobal
+ * with the result.
+ *
+ * By default, the unserialization method used is internal to PHP, and is not the same as unserialize.
+ * The serialization method can be set using session.serialize_handler.
+ *
+ * @param string $data The encoded data to be stored.
+ * @throws SessionException
+ *
+ */
+function session_decode(string $data): void
+{
+ error_clear_last();
+ $result = \session_decode($data);
+ if ($result === false) {
+ throw SessionException::createFromPhpError();
+ }
+}
+
+
+/**
+ * In order to kill the session altogether, the
+ * session ID must also be unset. If a cookie is used to propagate the
+ * session ID (default behavior), then the session cookie must be deleted.
+ * setcookie may be used for that.
+ *
+ * When session.use_strict_mode
+ * is enabled. You do not have to remove obsolete session ID cookie because
+ * session module will not accept session ID cookie when there is no
+ * data associated to the session ID and set new session ID cookie.
+ * Enabling session.use_strict_mode
+ * is recommended for all sites.
+ *
+ * @throws SessionException
+ *
+ */
+function session_destroy(): void
+{
+ error_clear_last();
+ $result = \session_destroy();
+ if ($result === false) {
+ throw SessionException::createFromPhpError();
+ }
+}
+
+
+/**
+ * session_regenerate_id will replace the current
+ * session id with a new one, and keep the current session information.
+ *
+ * When session.use_trans_sid
+ * is enabled, output must be started after session_regenerate_id
+ * call. Otherwise, old session ID is used.
+ *
+ * @param bool $delete_old_session Whether to delete the old associated session file or not.
+ * You should not delete old session if you need to avoid
+ * races caused by deletion or detect/avoid session hijack
+ * attacks.
+ * @throws SessionException
+ *
+ */
+function session_regenerate_id(bool $delete_old_session = false): void
+{
+ error_clear_last();
+ $result = \session_regenerate_id($delete_old_session);
+ if ($result === false) {
+ throw SessionException::createFromPhpError();
+ }
+}
+
+
+/**
+ * session_reset reinitializes a session with
+ * original values stored in session storage. This function requires an active session and
+ * discards changes in $_SESSION.
+ *
+ * @throws SessionException
+ *
+ */
+function session_reset(): void
+{
+ error_clear_last();
+ $result = \session_reset();
+ if ($result === false) {
+ throw SessionException::createFromPhpError();
+ }
+}
+
+
+/**
+ * The session_unset function frees all session variables
+ * currently registered.
+ *
+ * @throws SessionException
+ *
+ */
+function session_unset(): void
+{
+ error_clear_last();
+ $result = \session_unset();
+ if ($result === false) {
+ throw SessionException::createFromPhpError();
+ }
+}
+
+
+/**
+ * End the current session and store session data.
+ *
+ * Session data is usually stored after your script terminated without the
+ * need to call session_write_close, but as session data
+ * is locked to prevent concurrent writes only one script may operate on a
+ * session at any time. When using framesets together with sessions you will
+ * experience the frames loading one by one due to this locking. You can
+ * reduce the time needed to load all the frames by ending the session as
+ * soon as all changes to session variables are done.
+ *
+ * @throws SessionException
+ *
+ */
+function session_write_close(): void
+{
+ error_clear_last();
+ $result = \session_write_close();
+ if ($result === false) {
+ throw SessionException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/shmop.php b/vendor/thecodingmachine/safe/generated/shmop.php
new file mode 100644
index 000000000..04ba57cb5
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/shmop.php
@@ -0,0 +1,68 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\ShmopException;
+
+/**
+ * shmop_delete is used to delete a shared memory block.
+ *
+ * @param resource $shmid The shared memory block resource created by
+ * shmop_open
+ * @throws ShmopException
+ *
+ */
+function shmop_delete($shmid): void
+{
+ error_clear_last();
+ $result = \shmop_delete($shmid);
+ if ($result === false) {
+ throw ShmopException::createFromPhpError();
+ }
+}
+
+
+/**
+ * shmop_read will read a string from shared memory block.
+ *
+ * @param resource $shmid The shared memory block identifier created by
+ * shmop_open
+ * @param int $start Offset from which to start reading
+ * @param int $count The number of bytes to read.
+ * 0 reads shmop_size($shmid) - $start bytes.
+ * @return string Returns the data.
+ * @throws ShmopException
+ *
+ */
+function shmop_read($shmid, int $start, int $count): string
+{
+ error_clear_last();
+ $result = \shmop_read($shmid, $start, $count);
+ if ($result === false) {
+ throw ShmopException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * shmop_write will write a string into shared memory block.
+ *
+ * @param resource $shmid The shared memory block identifier created by
+ * shmop_open
+ * @param string $data A string to write into shared memory block
+ * @param int $offset Specifies where to start writing data inside the shared memory
+ * segment.
+ * @return int The size of the written data.
+ * @throws ShmopException
+ *
+ */
+function shmop_write($shmid, string $data, int $offset): int
+{
+ error_clear_last();
+ $result = \shmop_write($shmid, $data, $offset);
+ if ($result === false) {
+ throw ShmopException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/simplexml.php b/vendor/thecodingmachine/safe/generated/simplexml.php
new file mode 100644
index 000000000..118de4432
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/simplexml.php
@@ -0,0 +1,94 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\SimplexmlException;
+
+/**
+ * This function takes a node of a DOM
+ * document and makes it into a SimpleXML node. This new object can
+ * then be used as a native SimpleXML element.
+ *
+ * @param \DOMNode $node A DOM Element node
+ * @param string $class_name You may use this optional parameter so that
+ * simplexml_import_dom will return an object of
+ * the specified class. That class should extend the
+ * SimpleXMLElement class.
+ * @return \SimpleXMLElement Returns a SimpleXMLElement.
+ * @throws SimplexmlException
+ *
+ */
+function simplexml_import_dom(\DOMNode $node, string $class_name = "SimpleXMLElement"): \SimpleXMLElement
+{
+ error_clear_last();
+ $result = \simplexml_import_dom($node, $class_name);
+ if ($result === false) {
+ throw SimplexmlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Convert the well-formed XML document in the given file to an object.
+ *
+ * @param string $filename Path to the XML file
+ *
+ * Libxml 2 unescapes the URI, so if you want to pass e.g.
+ * b&amp;c as the URI parameter a,
+ * you have to call
+ * simplexml_load_file(rawurlencode('http://example.com/?a=' .
+ * urlencode('b&amp;c'))). Since PHP 5.1.0 you don't need to do
+ * this because PHP will do it for you.
+ * @param string $class_name You may use this optional parameter so that
+ * simplexml_load_file will return an object of
+ * the specified class. That class should extend the
+ * SimpleXMLElement class.
+ * @param int $options Since PHP 5.1.0 and Libxml 2.6.0, you may also use the
+ * options parameter to specify additional Libxml parameters.
+ * @param string $ns Namespace prefix or URI.
+ * @param bool $is_prefix TRUE if ns is a prefix, FALSE if it's a URI;
+ * defaults to FALSE.
+ * @return \SimpleXMLElement Returns an object of class SimpleXMLElement with
+ * properties containing the data held within the XML document.
+ * @throws SimplexmlException
+ *
+ */
+function simplexml_load_file(string $filename, string $class_name = "SimpleXMLElement", int $options = 0, string $ns = "", bool $is_prefix = false): \SimpleXMLElement
+{
+ error_clear_last();
+ $result = \simplexml_load_file($filename, $class_name, $options, $ns, $is_prefix);
+ if ($result === false) {
+ throw SimplexmlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Takes a well-formed XML string and returns it as an object.
+ *
+ * @param string $data A well-formed XML string
+ * @param string $class_name You may use this optional parameter so that
+ * simplexml_load_string will return an object of
+ * the specified class. That class should extend the
+ * SimpleXMLElement class.
+ * @param int $options Since PHP 5.1.0 and Libxml 2.6.0, you may also use the
+ * options parameter to specify additional Libxml parameters.
+ * @param string $ns Namespace prefix or URI.
+ * @param bool $is_prefix TRUE if ns is a prefix, FALSE if it's a URI;
+ * defaults to FALSE.
+ * @return \SimpleXMLElement Returns an object of class SimpleXMLElement with
+ * properties containing the data held within the xml document.
+ * @throws SimplexmlException
+ *
+ */
+function simplexml_load_string(string $data, string $class_name = "SimpleXMLElement", int $options = 0, string $ns = "", bool $is_prefix = false): \SimpleXMLElement
+{
+ error_clear_last();
+ $result = \simplexml_load_string($data, $class_name, $options, $ns, $is_prefix);
+ if ($result === false) {
+ throw SimplexmlException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/sockets.php b/vendor/thecodingmachine/safe/generated/sockets.php
new file mode 100644
index 000000000..d6cc892b4
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/sockets.php
@@ -0,0 +1,813 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\SocketsException;
+
+/**
+ * After the socket socket has been created
+ * using socket_create, bound to a name with
+ * socket_bind, and told to listen for connections
+ * with socket_listen, this function will accept
+ * incoming connections on that socket. Once a successful connection
+ * is made, a new socket resource is returned, which may be used
+ * for communication. If there are multiple connections queued on
+ * the socket, the first will be used. If there are no pending
+ * connections, socket_accept will block until
+ * a connection becomes present. If socket
+ * has been made non-blocking using
+ * socket_set_blocking or
+ * socket_set_nonblock, FALSE will be returned.
+ *
+ * The socket resource returned by
+ * socket_accept may not be used to accept new
+ * connections. The original listening socket
+ * socket, however, remains open and may be
+ * reused.
+ *
+ * @param resource $socket A valid socket resource created with socket_create.
+ * @return resource Returns a new socket resource on success. The actual
+ * error code can be retrieved by calling
+ * socket_last_error. This error code may be passed to
+ * socket_strerror to get a textual explanation of the
+ * error.
+ * @throws SocketsException
+ *
+ */
+function socket_accept($socket)
+{
+ error_clear_last();
+ $result = \socket_accept($socket);
+ if ($result === false) {
+ throw SocketsException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Create a Socket resource, and bind it to the provided AddrInfo resource. The return
+ * value of this function may be used with socket_listen.
+ *
+ * @param resource $addr Resource created from socket_addrinfo_lookup.
+ * @return resource Returns a Socket resource on success.
+ * @throws SocketsException
+ *
+ */
+function socket_addrinfo_bind($addr)
+{
+ error_clear_last();
+ $result = \socket_addrinfo_bind($addr);
+ if ($result === null) {
+ throw SocketsException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Create a Socket resource, and connect it to the provided AddrInfo resource. The return
+ * value of this function may be used with the rest of the socket functions.
+ *
+ * @param resource $addr Resource created from socket_addrinfo_lookup
+ * @return resource Returns a Socket resource on success.
+ * @throws SocketsException
+ *
+ */
+function socket_addrinfo_connect($addr)
+{
+ error_clear_last();
+ $result = \socket_addrinfo_connect($addr);
+ if ($result === null) {
+ throw SocketsException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Binds the name given in address to the socket
+ * described by socket. This has to be done before
+ * a connection is be established using socket_connect
+ * or socket_listen.
+ *
+ * @param resource $socket A valid socket resource created with socket_create.
+ * @param string $address If the socket is of the AF_INET family, the
+ * address is an IP in dotted-quad notation
+ * (e.g. 127.0.0.1).
+ *
+ * If the socket is of the AF_UNIX family, the
+ * address is the path of a
+ * Unix-domain socket (e.g. /tmp/my.sock).
+ * @param int $port The port parameter is only used when
+ * binding an AF_INET socket, and designates
+ * the port on which to listen for connections.
+ * @throws SocketsException
+ *
+ */
+function socket_bind($socket, string $address, int $port = 0): void
+{
+ error_clear_last();
+ $result = \socket_bind($socket, $address, $port);
+ if ($result === false) {
+ throw SocketsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Initiate a connection to address using the socket resource
+ * socket, which must be a valid socket
+ * resource created with socket_create.
+ *
+ * @param resource $socket
+ * @param string $address The address parameter is either an IPv4 address
+ * in dotted-quad notation (e.g. 127.0.0.1) if
+ * socket is AF_INET, a valid
+ * IPv6 address (e.g. ::1) if IPv6 support is enabled and
+ * socket is AF_INET6
+ * or the pathname of a Unix domain socket, if the socket family is
+ * AF_UNIX.
+ * @param int $port The port parameter is only used and is mandatory
+ * when connecting to an AF_INET or an
+ * AF_INET6 socket, and designates
+ * the port on the remote host to which a connection should be made.
+ * @throws SocketsException
+ *
+ */
+function socket_connect($socket, string $address, int $port = 0): void
+{
+ error_clear_last();
+ $result = \socket_connect($socket, $address, $port);
+ if ($result === false) {
+ throw SocketsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * socket_create_listen creates a new socket resource of
+ * type AF_INET listening on all
+ * local interfaces on the given port waiting for new connections.
+ *
+ * This function is meant to ease the task of creating a new socket which
+ * only listens to accept new connections.
+ *
+ * @param int $port The port on which to listen on all interfaces.
+ * @param int $backlog The backlog parameter defines the maximum length
+ * the queue of pending connections may grow to.
+ * SOMAXCONN may be passed as
+ * backlog parameter, see
+ * socket_listen for more information.
+ * @return resource socket_create_listen returns a new socket resource
+ * on success. The error code can be retrieved with
+ * socket_last_error. This code may be passed to
+ * socket_strerror to get a textual explanation of the
+ * error.
+ * @throws SocketsException
+ *
+ */
+function socket_create_listen(int $port, int $backlog = 128)
+{
+ error_clear_last();
+ $result = \socket_create_listen($port, $backlog);
+ if ($result === false) {
+ throw SocketsException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * socket_create_pair creates two connected and
+ * indistinguishable sockets, and stores them in fd.
+ * This function is commonly used in IPC (InterProcess Communication).
+ *
+ * @param int $domain The domain parameter specifies the protocol
+ * family to be used by the socket. See socket_create
+ * for the full list.
+ * @param int $type The type parameter selects the type of communication
+ * to be used by the socket. See socket_create for the
+ * full list.
+ * @param int $protocol The protocol parameter sets the specific
+ * protocol within the specified domain to be used
+ * when communicating on the returned socket. The proper value can be retrieved by
+ * name by using getprotobyname. If
+ * the desired protocol is TCP, or UDP the corresponding constants
+ * SOL_TCP, and SOL_UDP
+ * can also be used.
+ *
+ * See socket_create for the full list of supported
+ * protocols.
+ * @param resource[]|null $fd Reference to an array in which the two socket resources will be inserted.
+ * @throws SocketsException
+ *
+ */
+function socket_create_pair(int $domain, int $type, int $protocol, ?iterable &$fd): void
+{
+ error_clear_last();
+ $result = \socket_create_pair($domain, $type, $protocol, $fd);
+ if ($result === false) {
+ throw SocketsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Creates and returns a socket resource, also referred to as an endpoint
+ * of communication. A typical network connection is made up of 2 sockets, one
+ * performing the role of the client, and another performing the role of the server.
+ *
+ * @param int $domain The domain parameter specifies the protocol
+ * family to be used by the socket.
+ * @param int $type The type parameter selects the type of communication
+ * to be used by the socket.
+ * @param int $protocol The protocol parameter sets the specific
+ * protocol within the specified domain to be used
+ * when communicating on the returned socket. The proper value can be
+ * retrieved by name by using getprotobyname. If
+ * the desired protocol is TCP, or UDP the corresponding constants
+ * SOL_TCP, and SOL_UDP
+ * can also be used.
+ * @return resource socket_create returns a socket resource on success. The actual error code can be retrieved by calling
+ * socket_last_error. This error code may be passed to
+ * socket_strerror to get a textual explanation of the
+ * error.
+ * @throws SocketsException
+ *
+ */
+function socket_create(int $domain, int $type, int $protocol)
+{
+ error_clear_last();
+ $result = \socket_create($domain, $type, $protocol);
+ if ($result === false) {
+ throw SocketsException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ *
+ *
+ * @param resource $socket
+ * @return resource Return resource.
+ * @throws SocketsException
+ *
+ */
+function socket_export_stream($socket)
+{
+ error_clear_last();
+ $result = \socket_export_stream($socket);
+ if ($result === false) {
+ throw SocketsException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * The socket_get_option function retrieves the value for
+ * the option specified by the optname parameter for the
+ * specified socket.
+ *
+ * @param resource $socket A valid socket resource created with socket_create
+ * or socket_accept.
+ * @param int $level The level parameter specifies the protocol
+ * level at which the option resides. For example, to retrieve options at
+ * the socket level, a level parameter of
+ * SOL_SOCKET would be used. Other levels, such as
+ * TCP, can be used by
+ * specifying the protocol number of that level. Protocol numbers can be
+ * found by using the getprotobyname function.
+ * @param int $optname Reports whether the socket lingers on
+ * socket_close if data is present. By default,
+ * when the socket is closed, it attempts to send all unsent data.
+ * In the case of a connection-oriented socket,
+ * socket_close will wait for its peer to
+ * acknowledge the data.
+ *
+ * If l_onoff is non-zero and
+ * l_linger is zero, all the
+ * unsent data will be discarded and RST (reset) is sent to the
+ * peer in the case of a connection-oriented socket.
+ *
+ * On the other hand, if l_onoff is
+ * non-zero and l_linger is non-zero,
+ * socket_close will block until all the data
+ * is sent or the time specified in l_linger
+ * elapses. If the socket is non-blocking,
+ * socket_close will fail and return an error.
+ * @return mixed Returns the value of the given options.
+ * @throws SocketsException
+ *
+ */
+function socket_get_option($socket, int $level, int $optname)
+{
+ error_clear_last();
+ $result = \socket_get_option($socket, $level, $optname);
+ if ($result === false) {
+ throw SocketsException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Queries the remote side of the given socket which may either result in
+ * host/port or in a Unix filesystem path, dependent on its type.
+ *
+ * @param resource $socket A valid socket resource created with socket_create
+ * or socket_accept.
+ * @param string $address If the given socket is of type AF_INET or
+ * AF_INET6, socket_getpeername
+ * will return the peers (remote) IP address in
+ * appropriate notation (e.g. 127.0.0.1 or
+ * fe80::1) in the address
+ * parameter and, if the optional port parameter is
+ * present, also the associated port.
+ *
+ * If the given socket is of type AF_UNIX,
+ * socket_getpeername will return the Unix filesystem
+ * path (e.g. /var/run/daemon.sock) in the
+ * address parameter.
+ * @param int|null $port If given, this will hold the port associated to
+ * address.
+ * @throws SocketsException
+ *
+ */
+function socket_getpeername($socket, string &$address, ?int &$port = null): void
+{
+ error_clear_last();
+ $result = \socket_getpeername($socket, $address, $port);
+ if ($result === false) {
+ throw SocketsException::createFromPhpError();
+ }
+}
+
+
+/**
+ *
+ *
+ * @param resource $socket A valid socket resource created with socket_create
+ * or socket_accept.
+ * @param string|null $addr If the given socket is of type AF_INET
+ * or AF_INET6, socket_getsockname
+ * will return the local IP address in appropriate notation (e.g.
+ * 127.0.0.1 or fe80::1) in the
+ * address parameter and, if the optional
+ * port parameter is present, also the associated port.
+ *
+ * If the given socket is of type AF_UNIX,
+ * socket_getsockname will return the Unix filesystem
+ * path (e.g. /var/run/daemon.sock) in the
+ * address parameter.
+ * @param int|null $port If provided, this will hold the associated port.
+ * @throws SocketsException
+ *
+ */
+function socket_getsockname($socket, ?string &$addr, ?int &$port = null): void
+{
+ error_clear_last();
+ $result = \socket_getsockname($socket, $addr, $port);
+ if ($result === false) {
+ throw SocketsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Imports a stream that encapsulates a socket into a socket extension resource.
+ *
+ * @param resource $stream The stream resource to import.
+ * @return resource|false Returns FALSE.
+ * @throws SocketsException
+ *
+ */
+function socket_import_stream($stream)
+{
+ error_clear_last();
+ $result = \socket_import_stream($stream);
+ if ($result === null) {
+ throw SocketsException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * After the socket socket has been created
+ * using socket_create and bound to a name with
+ * socket_bind, it may be told to listen for incoming
+ * connections on socket.
+ *
+ * socket_listen is applicable only to sockets of
+ * type SOCK_STREAM or
+ * SOCK_SEQPACKET.
+ *
+ * @param resource $socket A valid socket resource created with socket_create
+ * or socket_addrinfo_bind
+ * @param int $backlog A maximum of backlog incoming connections will be
+ * queued for processing. If a connection request arrives with the queue
+ * full the client may receive an error with an indication of
+ * ECONNREFUSED, or, if the underlying protocol supports
+ * retransmission, the request may be ignored so that retries may succeed.
+ *
+ * The maximum number passed to the backlog
+ * parameter highly depends on the underlying platform. On Linux, it is
+ * silently truncated to SOMAXCONN. On win32, if
+ * passed SOMAXCONN, the underlying service provider
+ * responsible for the socket will set the backlog to a maximum
+ * reasonable value. There is no standard provision to
+ * find out the actual backlog value on this platform.
+ * @throws SocketsException
+ *
+ */
+function socket_listen($socket, int $backlog = 0): void
+{
+ error_clear_last();
+ $result = \socket_listen($socket, $backlog);
+ if ($result === false) {
+ throw SocketsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * The function socket_read reads from the socket
+ * resource socket created by the
+ * socket_create or
+ * socket_accept functions.
+ *
+ * @param resource $socket A valid socket resource created with socket_create
+ * or socket_accept.
+ * @param int $length The maximum number of bytes read is specified by the
+ * length parameter. Otherwise you can use
+ * \r, \n,
+ * or \0 to end reading (depending on the type
+ * parameter, see below).
+ * @param int $type Optional type parameter is a named constant:
+ *
+ *
+ *
+ * PHP_BINARY_READ (Default) - use the system
+ * recv() function. Safe for reading binary data.
+ *
+ *
+ *
+ *
+ * PHP_NORMAL_READ - reading stops at
+ * \n or \r.
+ *
+ *
+ *
+ * @return string socket_read returns the data as a string on success (including if the remote host has closed the
+ * connection). The error code can be retrieved with
+ * socket_last_error. This code may be passed to
+ * socket_strerror to get a textual representation of
+ * the error.
+ * @throws SocketsException
+ *
+ */
+function socket_read($socket, int $length, int $type = PHP_BINARY_READ): string
+{
+ error_clear_last();
+ $result = \socket_read($socket, $length, $type);
+ if ($result === false) {
+ throw SocketsException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * The function socket_send sends
+ * len bytes to the socket
+ * socket from buf.
+ *
+ * @param resource $socket A valid socket resource created with socket_create
+ * or socket_accept.
+ * @param string $buf A buffer containing the data that will be sent to the remote host.
+ * @param int $len The number of bytes that will be sent to the remote host from
+ * buf.
+ * @param int $flags The value of flags can be any combination of
+ * the following flags, joined with the binary OR (|)
+ * operator.
+ *
+ * Possible values for flags
+ *
+ *
+ *
+ * MSG_OOB
+ *
+ * Send OOB (out-of-band) data.
+ *
+ *
+ *
+ * MSG_EOR
+ *
+ * Indicate a record mark. The sent data completes the record.
+ *
+ *
+ *
+ * MSG_EOF
+ *
+ * Close the sender side of the socket and include an appropriate
+ * notification of this at the end of the sent data. The sent data
+ * completes the transaction.
+ *
+ *
+ *
+ * MSG_DONTROUTE
+ *
+ * Bypass routing, use direct interface.
+ *
+ *
+ *
+ *
+ *
+ * @return int socket_send returns the number of bytes sent.
+ * @throws SocketsException
+ *
+ */
+function socket_send($socket, string $buf, int $len, int $flags): int
+{
+ error_clear_last();
+ $result = \socket_send($socket, $buf, $len, $flags);
+ if ($result === false) {
+ throw SocketsException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ *
+ *
+ * @param resource $socket
+ * @param array $message
+ * @param int $flags
+ * @return int Returns the number of bytes sent.
+ * @throws SocketsException
+ *
+ */
+function socket_sendmsg($socket, array $message, int $flags = 0): int
+{
+ error_clear_last();
+ $result = \socket_sendmsg($socket, $message, $flags);
+ if ($result === false) {
+ throw SocketsException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * The function socket_sendto sends
+ * len bytes from buf
+ * through the socket socket to the
+ * port at the address addr.
+ *
+ * @param resource $socket A valid socket resource created using socket_create.
+ * @param string $buf The sent data will be taken from buffer buf.
+ * @param int $len len bytes from buf will be
+ * sent.
+ * @param int $flags The value of flags can be any combination of
+ * the following flags, joined with the binary OR (|)
+ * operator.
+ *
+ * Possible values for flags
+ *
+ *
+ *
+ * MSG_OOB
+ *
+ * Send OOB (out-of-band) data.
+ *
+ *
+ *
+ * MSG_EOR
+ *
+ * Indicate a record mark. The sent data completes the record.
+ *
+ *
+ *
+ * MSG_EOF
+ *
+ * Close the sender side of the socket and include an appropriate
+ * notification of this at the end of the sent data. The sent data
+ * completes the transaction.
+ *
+ *
+ *
+ * MSG_DONTROUTE
+ *
+ * Bypass routing, use direct interface.
+ *
+ *
+ *
+ *
+ *
+ * @param string $addr IP address of the remote host.
+ * @param int $port port is the remote port number at which the data
+ * will be sent.
+ * @return int socket_sendto returns the number of bytes sent to the
+ * remote host.
+ * @throws SocketsException
+ *
+ */
+function socket_sendto($socket, string $buf, int $len, int $flags, string $addr, int $port = 0): int
+{
+ error_clear_last();
+ $result = \socket_sendto($socket, $buf, $len, $flags, $addr, $port);
+ if ($result === false) {
+ throw SocketsException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * The socket_set_block function removes the
+ * O_NONBLOCK flag on the socket specified by the
+ * socket parameter.
+ *
+ * When an operation (e.g. receive, send, connect, accept, ...) is performed on
+ * a blocking socket, the script will pause its execution until it receives
+ * a signal or it can perform the operation.
+ *
+ * @param resource $socket A valid socket resource created with socket_create
+ * or socket_accept.
+ * @throws SocketsException
+ *
+ */
+function socket_set_block($socket): void
+{
+ error_clear_last();
+ $result = \socket_set_block($socket);
+ if ($result === false) {
+ throw SocketsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * The socket_set_nonblock function sets the
+ * O_NONBLOCK flag on the socket specified by
+ * the socket parameter.
+ *
+ * When an operation (e.g. receive, send, connect, accept, ...) is performed on
+ * a non-blocking socket, the script will not pause its execution until it receives a
+ * signal or it can perform the operation. Rather, if the operation would result
+ * in a block, the called function will fail.
+ *
+ * @param resource $socket A valid socket resource created with socket_create
+ * or socket_accept.
+ * @throws SocketsException
+ *
+ */
+function socket_set_nonblock($socket): void
+{
+ error_clear_last();
+ $result = \socket_set_nonblock($socket);
+ if ($result === false) {
+ throw SocketsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * The socket_set_option function sets the option
+ * specified by the optname parameter, at the
+ * specified protocol level, to the value pointed to
+ * by the optval parameter for the
+ * socket.
+ *
+ * @param resource $socket A valid socket resource created with socket_create
+ * or socket_accept.
+ * @param int $level The level parameter specifies the protocol
+ * level at which the option resides. For example, to retrieve options at
+ * the socket level, a level parameter of
+ * SOL_SOCKET would be used. Other levels, such as
+ * TCP, can be used by specifying the protocol number of that level.
+ * Protocol numbers can be found by using the
+ * getprotobyname function.
+ * @param int $optname The available socket options are the same as those for the
+ * socket_get_option function.
+ * @param int|string|array $optval The option value.
+ * @throws SocketsException
+ *
+ */
+function socket_set_option($socket, int $level, int $optname, $optval): void
+{
+ error_clear_last();
+ $result = \socket_set_option($socket, $level, $optname, $optval);
+ if ($result === false) {
+ throw SocketsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * The socket_shutdown function allows you to stop
+ * incoming, outgoing or all data (the default) from being sent through the
+ * socket
+ *
+ * @param resource $socket A valid socket resource created with socket_create.
+ * @param int $how The value of how can be one of the following:
+ *
+ * possible values for how
+ *
+ *
+ *
+ * 0
+ *
+ * Shutdown socket reading
+ *
+ *
+ *
+ * 1
+ *
+ * Shutdown socket writing
+ *
+ *
+ *
+ * 2
+ *
+ * Shutdown socket reading and writing
+ *
+ *
+ *
+ *
+ *
+ * @throws SocketsException
+ *
+ */
+function socket_shutdown($socket, int $how = 2): void
+{
+ error_clear_last();
+ $result = \socket_shutdown($socket, $how);
+ if ($result === false) {
+ throw SocketsException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Exports the WSAPROTOCOL_INFO structure into shared memory and returns
+ * an identifier to be used with socket_wsaprotocol_info_import. The
+ * exported ID is only valid for the given target_pid.
+ *
+ * @param resource $socket A valid socket resource.
+ * @param int $target_pid The ID of the process which will import the socket.
+ * @return string Returns an identifier to be used for the import
+ * @throws SocketsException
+ *
+ */
+function socket_wsaprotocol_info_export($socket, int $target_pid): string
+{
+ error_clear_last();
+ $result = \socket_wsaprotocol_info_export($socket, $target_pid);
+ if ($result === false) {
+ throw SocketsException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Imports a socket which has formerly been exported from another process.
+ *
+ * @param string $info_id The ID which has been returned by a former call to
+ * socket_wsaprotocol_info_export.
+ * @return resource Returns the socket resource
+ * @throws SocketsException
+ *
+ */
+function socket_wsaprotocol_info_import(string $info_id)
+{
+ error_clear_last();
+ $result = \socket_wsaprotocol_info_import($info_id);
+ if ($result === false) {
+ throw SocketsException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Releases the shared memory corresponding to the given info_id.
+ *
+ * @param string $info_id The ID which has been returned by a former call to
+ * socket_wsaprotocol_info_export.
+ * @throws SocketsException
+ *
+ */
+function socket_wsaprotocol_info_release(string $info_id): void
+{
+ error_clear_last();
+ $result = \socket_wsaprotocol_info_release($info_id);
+ if ($result === false) {
+ throw SocketsException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/sodium.php b/vendor/thecodingmachine/safe/generated/sodium.php
new file mode 100644
index 000000000..6cb378adb
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/sodium.php
@@ -0,0 +1,58 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\SodiumException;
+
+/**
+ * Uses a CPU- and memory-hard hash algorithm along with a randomly-generated salt, and memory and CPU limits to generate an ASCII-encoded hash suitable for password storage.
+ *
+ * @param string $password string; The password to generate a hash for.
+ * @param int $opslimit Represents a maximum amount of computations to perform. Raising this number will make the function require more CPU cycles to compute a key. There are constants available to set the operations limit to appropriate values depending on intended use, in order of strength: SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE, SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE and SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE.
+ * @param int $memlimit The maximum amount of RAM that the function will use, in bytes. There are constants to help you choose an appropriate value, in order of size: SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE, SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE, and SODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE. Typically these should be paired with the matching opslimit values.
+ * @return string Returns the hashed password.
+ *
+ * In order to produce the same password hash from the same password, the same values for opslimit and memlimit must be used. These are embedded within the generated hash, so
+ * everything that's needed to verify the hash is included. This allows
+ * the sodium_crypto_pwhash_str_verify function to verify the hash without
+ * needing separate storage for the other parameters.
+ * @throws SodiumException
+ *
+ */
+function sodium_crypto_pwhash_str(string $password, int $opslimit, int $memlimit): string
+{
+ error_clear_last();
+ $result = \sodium_crypto_pwhash_str($password, $opslimit, $memlimit);
+ if ($result === false) {
+ throw SodiumException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * This function provides low-level access to libsodium's crypto_pwhash key derivation function. Unless you have specific reason to use this function, you should use sodium_crypto_pwhash_str or password_hash functions instead.
+ *
+ * @param int $length integer; The length of the password hash to generate, in bytes.
+ * @param string $password string; The password to generate a hash for.
+ * @param string $salt string A salt to add to the password before hashing. The salt should be unpredictable, ideally generated from a good random mumber source such as random_bytes, and have a length of at least SODIUM_CRYPTO_PWHASH_SALTBYTES bytes.
+ * @param int $opslimit Represents a maximum amount of computations to perform. Raising this number will make the function require more CPU cycles to compute a key. There are some constants available to set the operations limit to appropriate values depending on intended use, in order of strength: SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE, SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE and SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE.
+ * @param int $memlimit The maximum amount of RAM that the function will use, in bytes. There are constants to help you choose an appropriate value, in order of size: SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE, SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE, and SODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE. Typically these should be paired with the matching opslimit values.
+ * @param int $alg integer A number indicating the hash algorithm to use. By default SODIUM_CRYPTO_PWHASH_ALG_DEFAULT (the currently recommended algorithm, which can change from one version of libsodium to another), or explicitly using SODIUM_CRYPTO_PWHASH_ALG_ARGON2ID13, representing the Argon2id algorithm version 1.3.
+ * @return string Returns the derived key. The return value is a binary string of the hash, not an ASCII-encoded representation, and does not contain additional information about the parameters used to create the hash, so you will need to keep that information if you are ever going to verify the password in future. Use sodium_crypto_pwhash_str to avoid needing to do all that.
+ * @throws SodiumException
+ *
+ */
+function sodium_crypto_pwhash(int $length, string $password, string $salt, int $opslimit, int $memlimit, int $alg = null): string
+{
+ error_clear_last();
+ if ($alg !== null) {
+ $result = \sodium_crypto_pwhash($length, $password, $salt, $opslimit, $memlimit, $alg);
+ } else {
+ $result = \sodium_crypto_pwhash($length, $password, $salt, $opslimit, $memlimit);
+ }
+ if ($result === false) {
+ throw SodiumException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/solr.php b/vendor/thecodingmachine/safe/generated/solr.php
new file mode 100644
index 000000000..4d4e0418a
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/solr.php
@@ -0,0 +1,22 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\SolrException;
+
+/**
+ * This function returns the current version of the extension as a string.
+ *
+ * @return string It returns a string on success.
+ * @throws SolrException
+ *
+ */
+function solr_get_version(): string
+{
+ error_clear_last();
+ $result = \solr_get_version();
+ if ($result === false) {
+ throw SolrException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/spl.php b/vendor/thecodingmachine/safe/generated/spl.php
new file mode 100644
index 000000000..679e68991
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/spl.php
@@ -0,0 +1,139 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\SplException;
+
+/**
+ * This function returns an array with the names of the interfaces that the
+ * given class and its parents implement.
+ *
+ * @param mixed $class An object (class instance) or a string (class or interface name).
+ * @param bool $autoload Whether to allow this function to load the class automatically through
+ * the __autoload magic method.
+ * @return array An array on success.
+ * @throws SplException
+ *
+ */
+function class_implements($class, bool $autoload = true): array
+{
+ error_clear_last();
+ $result = \class_implements($class, $autoload);
+ if ($result === false) {
+ throw SplException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * This function returns an array with the name of the parent classes of
+ * the given class.
+ *
+ * @param mixed $class An object (class instance) or a string (class name).
+ * @param bool $autoload Whether to allow this function to load the class automatically through
+ * the __autoload magic method.
+ * @return array An array on success.
+ * @throws SplException
+ *
+ */
+function class_parents($class, bool $autoload = true): array
+{
+ error_clear_last();
+ $result = \class_parents($class, $autoload);
+ if ($result === false) {
+ throw SplException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * This function returns an array with the names of the traits that the
+ * given class uses. This does however not include
+ * any traits used by a parent class.
+ *
+ * @param mixed $class An object (class instance) or a string (class name).
+ * @param bool $autoload Whether to allow this function to load the class automatically through
+ * the __autoload magic method.
+ * @return array An array on success.
+ * @throws SplException
+ *
+ */
+function class_uses($class, bool $autoload = true): array
+{
+ error_clear_last();
+ $result = \class_uses($class, $autoload);
+ if ($result === false) {
+ throw SplException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Register a function with the spl provided __autoload queue. If the queue
+ * is not yet activated it will be activated.
+ *
+ * If your code has an existing __autoload function then
+ * this function must be explicitly registered on the __autoload queue. This
+ * is because spl_autoload_register will effectively
+ * replace the engine cache for the __autoload function
+ * by either spl_autoload or
+ * spl_autoload_call.
+ *
+ * If there must be multiple autoload functions, spl_autoload_register
+ * allows for this. It effectively creates a queue of autoload functions, and
+ * runs through each of them in the order they are defined. By contrast,
+ * __autoload may only be defined once.
+ *
+ * @param callable(string):void $autoload_function The autoload function being registered.
+ * If no parameter is provided, then the default implementation of
+ * spl_autoload will be registered.
+ * @param bool $throw This parameter specifies whether
+ * spl_autoload_register should throw
+ * exceptions when the autoload_function
+ * cannot be registered.
+ * @param bool $prepend If true, spl_autoload_register will prepend
+ * the autoloader on the autoload queue instead of appending it.
+ * @throws SplException
+ *
+ */
+function spl_autoload_register(callable $autoload_function = null, bool $throw = true, bool $prepend = false): void
+{
+ error_clear_last();
+ if ($prepend !== false) {
+ $result = \spl_autoload_register($autoload_function, $throw, $prepend);
+ } elseif ($throw !== true) {
+ $result = \spl_autoload_register($autoload_function, $throw);
+ } elseif ($autoload_function !== null) {
+ $result = \spl_autoload_register($autoload_function);
+ } else {
+ $result = \spl_autoload_register();
+ }
+ if ($result === false) {
+ throw SplException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Removes a function from the autoload queue. If the queue
+ * is activated and empty after removing the given function then it will
+ * be deactivated.
+ *
+ * When this function results in the queue being deactivated, any
+ * __autoload function that previously existed will not be reactivated.
+ *
+ * @param mixed $autoload_function The autoload function being unregistered.
+ * @throws SplException
+ *
+ */
+function spl_autoload_unregister($autoload_function): void
+{
+ error_clear_last();
+ $result = \spl_autoload_unregister($autoload_function);
+ if ($result === false) {
+ throw SplException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/sqlsrv.php b/vendor/thecodingmachine/safe/generated/sqlsrv.php
new file mode 100644
index 000000000..e93aa37af
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/sqlsrv.php
@@ -0,0 +1,429 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\SqlsrvException;
+
+/**
+ * The transaction begun by sqlsrv_begin_transaction includes
+ * all statements that were executed after the call to
+ * sqlsrv_begin_transaction and before calls to
+ * sqlsrv_rollback or sqlsrv_commit.
+ * Explicit transactions should be started and committed or rolled back using
+ * these functions instead of executing SQL statements that begin and commit/roll
+ * back transactions. For more information, see
+ * SQLSRV Transactions.
+ *
+ * @param resource $conn The connection resource returned by a call to sqlsrv_connect.
+ * @throws SqlsrvException
+ *
+ */
+function sqlsrv_begin_transaction($conn): void
+{
+ error_clear_last();
+ $result = \sqlsrv_begin_transaction($conn);
+ if ($result === false) {
+ throw SqlsrvException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Cancels a statement. Any results associated with the statement that have not
+ * been consumed are deleted. After sqlsrv_cancel has been
+ * called, the specified statement can be re-executed if it was created with
+ * sqlsrv_prepare. Calling sqlsrv_cancel
+ * is not necessary if all the results associated with the statement have been
+ * consumed.
+ *
+ * @param resource $stmt The statement resource to be cancelled.
+ * @throws SqlsrvException
+ *
+ */
+function sqlsrv_cancel($stmt): void
+{
+ error_clear_last();
+ $result = \sqlsrv_cancel($stmt);
+ if ($result === false) {
+ throw SqlsrvException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Returns information about the client and specified connection
+ *
+ * @param resource $conn The connection about which information is returned.
+ * @return array Returns an associative array with keys described in the table below.
+ *
+ * Array returned by sqlsrv_client_info
+ *
+ *
+ *
+ * Key
+ * Description
+ *
+ *
+ *
+ *
+ * DriverDllName
+ * SQLNCLI10.DLL
+ *
+ *
+ * DriverODBCVer
+ * ODBC version (xx.yy)
+ *
+ *
+ * DriverVer
+ * SQL Server Native Client DLL version (10.5.xxx)
+ *
+ *
+ * ExtensionVer
+ * php_sqlsrv.dll version (2.0.xxx.x)
+ *
+ *
+ *
+ *
+ * @throws SqlsrvException
+ *
+ */
+function sqlsrv_client_info($conn): array
+{
+ error_clear_last();
+ $result = \sqlsrv_client_info($conn);
+ if ($result === false) {
+ throw SqlsrvException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Closes an open connection and releases resourses associated with the connection.
+ *
+ * @param resource $conn The connection to be closed.
+ * @throws SqlsrvException
+ *
+ */
+function sqlsrv_close($conn): void
+{
+ error_clear_last();
+ $result = \sqlsrv_close($conn);
+ if ($result === false) {
+ throw SqlsrvException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Commits a transaction that was begun with sqlsrv_begin_transaction.
+ * The connection is returned to auto-commit mode after sqlsrv_commit
+ * is called. The transaction that is committed includes all statements that were
+ * executed after the call to sqlsrv_begin_transaction.
+ * Explicit transactions should be started and committed or rolled back using these
+ * functions instead of executing SQL statements that begin and commit/roll back
+ * transactions. For more information, see
+ * SQLSRV Transactions.
+ *
+ * @param resource $conn The connection on which the transaction is to be committed.
+ * @throws SqlsrvException
+ *
+ */
+function sqlsrv_commit($conn): void
+{
+ error_clear_last();
+ $result = \sqlsrv_commit($conn);
+ if ($result === false) {
+ throw SqlsrvException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Changes the driver error handling and logging configurations.
+ *
+ * @param string $setting The name of the setting to set. The possible values are
+ * "WarningsReturnAsErrors", "LogSubsystems", and "LogSeverity".
+ * @param mixed $value The value of the specified setting. The following table shows possible values:
+ *
+ * Error and Logging Setting Options
+ *
+ *
+ *
+ * Setting
+ * Options
+ *
+ *
+ *
+ *
+ * WarningsReturnAsErrors
+ * 1 (TRUE) or 0 (FALSE)
+ *
+ *
+ * LogSubsystems
+ * SQLSRV_LOG_SYSTEM_ALL (-1)
+ * SQLSRV_LOG_SYSTEM_CONN (2)
+ * SQLSRV_LOG_SYSTEM_INIT (1)
+ * SQLSRV_LOG_SYSTEM_OFF (0)
+ * SQLSRV_LOG_SYSTEM_STMT (4)
+ * SQLSRV_LOG_SYSTEM_UTIL (8)
+ *
+ *
+ * LogSeverity
+ * SQLSRV_LOG_SEVERITY_ALL (-1)
+ * SQLSRV_LOG_SEVERITY_ERROR (1)
+ * SQLSRV_LOG_SEVERITY_NOTICE (4)
+ * SQLSRV_LOG_SEVERITY_WARNING (2)
+ *
+ *
+ *
+ *
+ * @throws SqlsrvException
+ *
+ */
+function sqlsrv_configure(string $setting, $value): void
+{
+ error_clear_last();
+ $result = \sqlsrv_configure($setting, $value);
+ if ($result === false) {
+ throw SqlsrvException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Executes a statement prepared with sqlsrv_prepare. This
+ * function is ideal for executing a prepared statement multiple times with
+ * different parameter values.
+ *
+ * @param resource $stmt A statement resource returned by sqlsrv_prepare.
+ * @throws SqlsrvException
+ *
+ */
+function sqlsrv_execute($stmt): void
+{
+ error_clear_last();
+ $result = \sqlsrv_execute($stmt);
+ if ($result === false) {
+ throw SqlsrvException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Frees all resources for the specified statement. The statement cannot be used
+ * after sqlsrv_free_stmt has been called on it. If
+ * sqlsrv_free_stmt is called on an in-progress statement
+ * that alters server state, statement execution is terminated and the statement
+ * is rolled back.
+ *
+ * @param resource $stmt The statement for which resources are freed.
+ * Note that NULL is a valid parameter value. This allows the function to be
+ * called multiple times in a script.
+ * @throws SqlsrvException
+ *
+ */
+function sqlsrv_free_stmt($stmt): void
+{
+ error_clear_last();
+ $result = \sqlsrv_free_stmt($stmt);
+ if ($result === false) {
+ throw SqlsrvException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Gets field data from the currently selected row. Fields must be accessed in
+ * order. Field indices start at 0.
+ *
+ * @param resource $stmt A statement resource returned by sqlsrv_query or
+ * sqlsrv_execute.
+ * @param int $fieldIndex The index of the field to be retrieved. Field indices start at 0. Fields
+ * must be accessed in order. i.e. If you access field index 1, then field
+ * index 0 will not be available.
+ * @param int $getAsType The PHP data type for the returned field data. If this parameter is not
+ * set, the field data will be returned as its default PHP data type.
+ * For information about default PHP data types, see
+ * Default PHP Data Types
+ * in the Microsoft SQLSRV documentation.
+ * @return mixed Returns data from the specified field on success.
+ * @throws SqlsrvException
+ *
+ */
+function sqlsrv_get_field($stmt, int $fieldIndex, int $getAsType = null)
+{
+ error_clear_last();
+ if ($getAsType !== null) {
+ $result = \sqlsrv_get_field($stmt, $fieldIndex, $getAsType);
+ } else {
+ $result = \sqlsrv_get_field($stmt, $fieldIndex);
+ }
+ if ($result === false) {
+ throw SqlsrvException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Makes the next result of the specified statement active. Results include result
+ * sets, row counts, and output parameters.
+ *
+ * @param resource $stmt The statement on which the next result is being called.
+ * @return bool|null Returns TRUE if the next result was successfully retrieved, FALSE if an error
+ * occurred, and NULL if there are no more results to retrieve.
+ * @throws SqlsrvException
+ *
+ */
+function sqlsrv_next_result($stmt): ?bool
+{
+ error_clear_last();
+ $result = \sqlsrv_next_result($stmt);
+ if ($result === false) {
+ throw SqlsrvException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Retrieves the number of fields (columns) on a statement.
+ *
+ * @param resource $stmt The statement for which the number of fields is returned.
+ * sqlsrv_num_fields can be called on a statement before
+ * or after statement execution.
+ * @return int Returns the number of fields on success.
+ * @throws SqlsrvException
+ *
+ */
+function sqlsrv_num_fields($stmt): int
+{
+ error_clear_last();
+ $result = \sqlsrv_num_fields($stmt);
+ if ($result === false) {
+ throw SqlsrvException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Retrieves the number of rows in a result set. This function requires that the
+ * statement resource be created with a static or keyset cursor. For more information,
+ * see sqlsrv_query, sqlsrv_prepare,
+ * or Specifying a Cursor Type and Selecting Rows
+ * in the Microsoft SQLSRV documentation.
+ *
+ * @param resource $stmt The statement for which the row count is returned. The statement resource
+ * must be created with a static or keyset cursor. For more information, see
+ * sqlsrv_query, sqlsrv_prepare, or
+ * Specifying a Cursor Type and Selecting Rows
+ * in the Microsoft SQLSRV documentation.
+ * @return int Returns the number of rows retrieved on success.
+ * If a forward cursor (the default) or dynamic cursor is used, FALSE is returned.
+ * @throws SqlsrvException
+ *
+ */
+function sqlsrv_num_rows($stmt): int
+{
+ error_clear_last();
+ $result = \sqlsrv_num_rows($stmt);
+ if ($result === false) {
+ throw SqlsrvException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Prepares a query for execution. This function is ideal for preparing a query
+ * that will be executed multiple times with different parameter values.
+ *
+ * @param resource $conn A connection resource returned by sqlsrv_connect.
+ * @param string $sql The string that defines the query to be prepared and executed.
+ * @param array $params An array specifying parameter information when executing a parameterized
+ * query. Array elements can be any of the following:
+ *
+ * A literal value
+ * A PHP variable
+ * An array with this structure:
+ * array($value [, $direction [, $phpType [, $sqlType]]])
+ *
+ * The following table describes the elements in the array structure above:
+ * @param array $options An array specifying query property options. The supported keys are described
+ * in the following table:
+ * @return resource Returns a statement resource on success.
+ * @throws SqlsrvException
+ *
+ */
+function sqlsrv_prepare($conn, string $sql, array $params = null, array $options = null)
+{
+ error_clear_last();
+ if ($options !== null) {
+ $result = \sqlsrv_prepare($conn, $sql, $params, $options);
+ } elseif ($params !== null) {
+ $result = \sqlsrv_prepare($conn, $sql, $params);
+ } else {
+ $result = \sqlsrv_prepare($conn, $sql);
+ }
+ if ($result === false) {
+ throw SqlsrvException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Prepares and executes a query.
+ *
+ * @param resource $conn A connection resource returned by sqlsrv_connect.
+ * @param string $sql The string that defines the query to be prepared and executed.
+ * @param array $params An array specifying parameter information when executing a parameterized query.
+ * Array elements can be any of the following:
+ *
+ * A literal value
+ * A PHP variable
+ * An array with this structure:
+ * array($value [, $direction [, $phpType [, $sqlType]]])
+ *
+ * The following table describes the elements in the array structure above:
+ * @param array $options An array specifying query property options. The supported keys are described
+ * in the following table:
+ * @return resource Returns a statement resource on success.
+ * @throws SqlsrvException
+ *
+ */
+function sqlsrv_query($conn, string $sql, array $params = null, array $options = null)
+{
+ error_clear_last();
+ if ($options !== null) {
+ $result = \sqlsrv_query($conn, $sql, $params, $options);
+ } elseif ($params !== null) {
+ $result = \sqlsrv_query($conn, $sql, $params);
+ } else {
+ $result = \sqlsrv_query($conn, $sql);
+ }
+ if ($result === false) {
+ throw SqlsrvException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Rolls back a transaction that was begun with sqlsrv_begin_transaction
+ * and returns the connection to auto-commit mode.
+ *
+ * @param resource $conn The connection resource returned by a call to sqlsrv_connect.
+ * @throws SqlsrvException
+ *
+ */
+function sqlsrv_rollback($conn): void
+{
+ error_clear_last();
+ $result = \sqlsrv_rollback($conn);
+ if ($result === false) {
+ throw SqlsrvException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/ssdeep.php b/vendor/thecodingmachine/safe/generated/ssdeep.php
new file mode 100644
index 000000000..662fc9b94
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/ssdeep.php
@@ -0,0 +1,70 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\SsdeepException;
+
+/**
+ * Calculates the match score between signature1
+ * and signature2 using
+ * context-triggered piecewise hashing, and returns the match
+ * score.
+ *
+ * @param string $signature1 The first fuzzy hash signature string.
+ * @param string $signature2 The second fuzzy hash signature string.
+ * @return int Returns an integer from 0 to 100 on success, FALSE otherwise.
+ * @throws SsdeepException
+ *
+ */
+function ssdeep_fuzzy_compare(string $signature1, string $signature2): int
+{
+ error_clear_last();
+ $result = \ssdeep_fuzzy_compare($signature1, $signature2);
+ if ($result === false) {
+ throw SsdeepException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * ssdeep_fuzzy_hash_filename calculates the hash
+ * of the file specified by file_name using
+ * context-triggered piecewise
+ * hashing, and returns that hash.
+ *
+ * @param string $file_name The filename of the file to hash.
+ * @return string Returns a string on success, FALSE otherwise.
+ * @throws SsdeepException
+ *
+ */
+function ssdeep_fuzzy_hash_filename(string $file_name): string
+{
+ error_clear_last();
+ $result = \ssdeep_fuzzy_hash_filename($file_name);
+ if ($result === false) {
+ throw SsdeepException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * ssdeep_fuzzy_hash calculates the hash of
+ * to_hash using
+ * context-triggered piecewise hashing, and returns that hash.
+ *
+ * @param string $to_hash The input string.
+ * @return string Returns a string on success, FALSE otherwise.
+ * @throws SsdeepException
+ *
+ */
+function ssdeep_fuzzy_hash(string $to_hash): string
+{
+ error_clear_last();
+ $result = \ssdeep_fuzzy_hash($to_hash);
+ if ($result === false) {
+ throw SsdeepException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/ssh2.php b/vendor/thecodingmachine/safe/generated/ssh2.php
new file mode 100644
index 000000000..96af9df32
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/ssh2.php
@@ -0,0 +1,641 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\Ssh2Exception;
+
+/**
+ * Authenticate over SSH using the ssh agent
+ *
+ * @param resource $session An SSH connection link identifier, obtained from a call to
+ * ssh2_connect.
+ * @param string $username Remote user name.
+ * @throws Ssh2Exception
+ *
+ */
+function ssh2_auth_agent($session, string $username): void
+{
+ error_clear_last();
+ $result = \ssh2_auth_agent($session, $username);
+ if ($result === false) {
+ throw Ssh2Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Authenticate using a public hostkey read from a file.
+ *
+ * @param resource $session An SSH connection link identifier, obtained from a call to
+ * ssh2_connect.
+ * @param string $username
+ * @param string $hostname
+ * @param string $pubkeyfile
+ * @param string $privkeyfile
+ * @param string $passphrase If privkeyfile is encrypted (which it should
+ * be), the passphrase must be provided.
+ * @param string $local_username If local_username is omitted, then the value
+ * for username will be used for it.
+ * @throws Ssh2Exception
+ *
+ */
+function ssh2_auth_hostbased_file($session, string $username, string $hostname, string $pubkeyfile, string $privkeyfile, string $passphrase = null, string $local_username = null): void
+{
+ error_clear_last();
+ if ($local_username !== null) {
+ $result = \ssh2_auth_hostbased_file($session, $username, $hostname, $pubkeyfile, $privkeyfile, $passphrase, $local_username);
+ } elseif ($passphrase !== null) {
+ $result = \ssh2_auth_hostbased_file($session, $username, $hostname, $pubkeyfile, $privkeyfile, $passphrase);
+ } else {
+ $result = \ssh2_auth_hostbased_file($session, $username, $hostname, $pubkeyfile, $privkeyfile);
+ }
+ if ($result === false) {
+ throw Ssh2Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Authenticate over SSH using a plain password. Since version 0.12 this function
+ * also supports keyboard_interactive method.
+ *
+ * @param resource $session An SSH connection link identifier, obtained from a call to
+ * ssh2_connect.
+ * @param string $username Remote user name.
+ * @param string $password Password for username
+ * @throws Ssh2Exception
+ *
+ */
+function ssh2_auth_password($session, string $username, string $password): void
+{
+ error_clear_last();
+ $result = \ssh2_auth_password($session, $username, $password);
+ if ($result === false) {
+ throw Ssh2Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Authenticate using a public key read from a file.
+ *
+ * @param resource $session An SSH connection link identifier, obtained from a call to
+ * ssh2_connect.
+ * @param string $username
+ * @param string $pubkeyfile The public key file needs to be in OpenSSH's format. It should look something like:
+ *
+ * ssh-rsa AAAAB3NzaC1yc2EAAA....NX6sqSnHA8= rsa-key-20121110
+ * @param string $privkeyfile
+ * @param string $passphrase If privkeyfile is encrypted (which it should
+ * be), the passphrase must be provided.
+ * @throws Ssh2Exception
+ *
+ */
+function ssh2_auth_pubkey_file($session, string $username, string $pubkeyfile, string $privkeyfile, string $passphrase = null): void
+{
+ error_clear_last();
+ if ($passphrase !== null) {
+ $result = \ssh2_auth_pubkey_file($session, $username, $pubkeyfile, $privkeyfile, $passphrase);
+ } else {
+ $result = \ssh2_auth_pubkey_file($session, $username, $pubkeyfile, $privkeyfile);
+ }
+ if ($result === false) {
+ throw Ssh2Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Establish a connection to a remote SSH server.
+ *
+ * Once connected, the client should verify the server's hostkey using
+ * ssh2_fingerprint, then authenticate using either
+ * password or public key.
+ *
+ * @param string $host
+ * @param int $port
+ * @param array $methods methods may be an associative array with up to four parameters
+ * as described below.
+ *
+ *
+ * methods may be an associative array
+ * with any or all of the following parameters.
+ *
+ *
+ *
+ * Index
+ * Meaning
+ * Supported Values*
+ *
+ *
+ *
+ *
+ * kex
+ *
+ * List of key exchange methods to advertise, comma separated
+ * in order of preference.
+ *
+ *
+ * diffie-hellman-group1-sha1,
+ * diffie-hellman-group14-sha1, and
+ * diffie-hellman-group-exchange-sha1
+ *
+ *
+ *
+ * hostkey
+ *
+ * List of hostkey methods to advertise, comma separated
+ * in order of preference.
+ *
+ *
+ * ssh-rsa and
+ * ssh-dss
+ *
+ *
+ *
+ * client_to_server
+ *
+ * Associative array containing crypt, compression, and
+ * message authentication code (MAC) method preferences
+ * for messages sent from client to server.
+ *
+ *
+ *
+ *
+ * server_to_client
+ *
+ * Associative array containing crypt, compression, and
+ * message authentication code (MAC) method preferences
+ * for messages sent from server to client.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * * - Supported Values are dependent on methods supported by underlying library.
+ * See libssh2 documentation for additional
+ * information.
+ *
+ *
+ *
+ * client_to_server and
+ * server_to_client may be an associative array
+ * with any or all of the following parameters.
+ *
+ *
+ *
+ *
+ * Index
+ * Meaning
+ * Supported Values*
+ *
+ *
+ *
+ *
+ * crypt
+ * List of crypto methods to advertise, comma separated
+ * in order of preference.
+ *
+ * aes256-cbc,
+ * aes192-cbc,
+ * aes128-cbc,
+ * 3des-cbc,
+ * blowfish-cbc,
+ * cast128-cbc,
+ * arcfour, and
+ * none**
+ *
+ *
+ *
+ * comp
+ * List of compression methods to advertise, comma separated
+ * in order of preference.
+ *
+ * zlib and
+ * none
+ *
+ *
+ *
+ * mac
+ * List of MAC methods to advertise, comma separated
+ * in order of preference.
+ *
+ * hmac-sha1,
+ * hmac-sha1-96,
+ * hmac-ripemd160,
+ * none**
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * Crypt and MAC method "none"
+ *
+ * For security reasons, none is disabled by the underlying
+ * libssh2 library unless explicitly enabled
+ * during build time by using the appropriate ./configure options. See documentation
+ * for the underlying library for more information.
+ *
+ *
+ *
+ * For security reasons, none is disabled by the underlying
+ * libssh2 library unless explicitly enabled
+ * during build time by using the appropriate ./configure options. See documentation
+ * for the underlying library for more information.
+ * @param array $callbacks callbacks may be an associative array with any
+ * or all of the following parameters.
+ *
+ *
+ * Callbacks parameters
+ *
+ *
+ *
+ *
+ * Index
+ * Meaning
+ * Prototype
+ *
+ *
+ *
+ *
+ * ignore
+ *
+ * Name of function to call when an
+ * SSH2_MSG_IGNORE packet is received
+ *
+ * void ignore_cb($message)
+ *
+ *
+ * debug
+ *
+ * Name of function to call when an
+ * SSH2_MSG_DEBUG packet is received
+ *
+ * void debug_cb($message, $language, $always_display)
+ *
+ *
+ * macerror
+ *
+ * Name of function to call when a packet is received but the
+ * message authentication code failed. If the callback returns
+ * TRUE, the mismatch will be ignored, otherwise the connection
+ * will be terminated.
+ *
+ * bool macerror_cb($packet)
+ *
+ *
+ * disconnect
+ *
+ * Name of function to call when an
+ * SSH2_MSG_DISCONNECT packet is received
+ *
+ * void disconnect_cb($reason, $message, $language)
+ *
+ *
+ *
+ *
+ * @return resource Returns a resource on success.
+ * @throws Ssh2Exception
+ *
+ */
+function ssh2_connect(string $host, int $port = 22, array $methods = null, array $callbacks = null)
+{
+ error_clear_last();
+ if ($callbacks !== null) {
+ $result = \ssh2_connect($host, $port, $methods, $callbacks);
+ } elseif ($methods !== null) {
+ $result = \ssh2_connect($host, $port, $methods);
+ } else {
+ $result = \ssh2_connect($host, $port);
+ }
+ if ($result === false) {
+ throw Ssh2Exception::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Close a connection to a remote SSH server.
+ *
+ * @param resource $session An SSH connection link identifier, obtained from a call to
+ * ssh2_connect.
+ * @throws Ssh2Exception
+ *
+ */
+function ssh2_disconnect($session): void
+{
+ error_clear_last();
+ $result = \ssh2_disconnect($session);
+ if ($result === false) {
+ throw Ssh2Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Execute a command at the remote end and allocate a channel for it.
+ *
+ * @param resource $session An SSH connection link identifier, obtained from a call to
+ * ssh2_connect.
+ * @param string $command
+ * @param string $pty
+ * @param array $env env may be passed as an associative array of
+ * name/value pairs to set in the target environment.
+ * @param int $width Width of the virtual terminal.
+ * @param int $height Height of the virtual terminal.
+ * @param int $width_height_type width_height_type should be one of
+ * SSH2_TERM_UNIT_CHARS or
+ * SSH2_TERM_UNIT_PIXELS.
+ * @return resource Returns a stream on success.
+ * @throws Ssh2Exception
+ *
+ */
+function ssh2_exec($session, string $command, string $pty = null, array $env = null, int $width = 80, int $height = 25, int $width_height_type = SSH2_TERM_UNIT_CHARS)
+{
+ error_clear_last();
+ if ($width_height_type !== SSH2_TERM_UNIT_CHARS) {
+ $result = \ssh2_exec($session, $command, $pty, $env, $width, $height, $width_height_type);
+ } elseif ($height !== 25) {
+ $result = \ssh2_exec($session, $command, $pty, $env, $width, $height);
+ } elseif ($width !== 80) {
+ $result = \ssh2_exec($session, $command, $pty, $env, $width);
+ } elseif ($env !== null) {
+ $result = \ssh2_exec($session, $command, $pty, $env);
+ } elseif ($pty !== null) {
+ $result = \ssh2_exec($session, $command, $pty);
+ } else {
+ $result = \ssh2_exec($session, $command);
+ }
+ if ($result === false) {
+ throw Ssh2Exception::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ *
+ *
+ * @param resource $pkey Publickey Subsystem resource created by ssh2_publickey_init.
+ * @param string $algoname Publickey algorithm (e.g.): ssh-dss, ssh-rsa
+ * @param string $blob Publickey blob as raw binary data
+ * @param bool $overwrite If the specified key already exists, should it be overwritten?
+ * @param array $attributes Associative array of attributes to assign to this public key.
+ * Refer to ietf-secsh-publickey-subsystem for a list of supported attributes.
+ * To mark an attribute as mandatory, precede its name with an asterisk.
+ * If the server is unable to support an attribute marked mandatory,
+ * it will abort the add process.
+ * @throws Ssh2Exception
+ *
+ */
+function ssh2_publickey_add($pkey, string $algoname, string $blob, bool $overwrite = false, array $attributes = null): void
+{
+ error_clear_last();
+ if ($attributes !== null) {
+ $result = \ssh2_publickey_add($pkey, $algoname, $blob, $overwrite, $attributes);
+ } else {
+ $result = \ssh2_publickey_add($pkey, $algoname, $blob, $overwrite);
+ }
+ if ($result === false) {
+ throw Ssh2Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Request the Publickey subsystem from an already connected SSH2 server.
+ *
+ * The publickey subsystem allows an already connected and authenticated
+ * client to manage the list of authorized public keys stored on the
+ * target server in an implementation agnostic manner.
+ * If the remote server does not support the publickey subsystem,
+ * the ssh2_publickey_init function will return FALSE.
+ *
+ * @param resource $session
+ * @return resource Returns an SSH2 Publickey Subsystem resource for use
+ * with all other ssh2_publickey_*() methods.
+ * @throws Ssh2Exception
+ *
+ */
+function ssh2_publickey_init($session)
+{
+ error_clear_last();
+ $result = \ssh2_publickey_init($session);
+ if ($result === false) {
+ throw Ssh2Exception::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Removes an authorized publickey.
+ *
+ * @param resource $pkey Publickey Subsystem Resource
+ * @param string $algoname Publickey algorithm (e.g.): ssh-dss, ssh-rsa
+ * @param string $blob Publickey blob as raw binary data
+ * @throws Ssh2Exception
+ *
+ */
+function ssh2_publickey_remove($pkey, string $algoname, string $blob): void
+{
+ error_clear_last();
+ $result = \ssh2_publickey_remove($pkey, $algoname, $blob);
+ if ($result === false) {
+ throw Ssh2Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Copy a file from the remote server to the local filesystem using the SCP protocol.
+ *
+ * @param resource $session An SSH connection link identifier, obtained from a call to
+ * ssh2_connect.
+ * @param string $remote_file Path to the remote file.
+ * @param string $local_file Path to the local file.
+ * @throws Ssh2Exception
+ *
+ */
+function ssh2_scp_recv($session, string $remote_file, string $local_file): void
+{
+ error_clear_last();
+ $result = \ssh2_scp_recv($session, $remote_file, $local_file);
+ if ($result === false) {
+ throw Ssh2Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Copy a file from the local filesystem to the remote server using the SCP protocol.
+ *
+ * @param resource $session An SSH connection link identifier, obtained from a call to
+ * ssh2_connect.
+ * @param string $local_file Path to the local file.
+ * @param string $remote_file Path to the remote file.
+ * @param int $create_mode The file will be created with the mode specified by
+ * create_mode.
+ * @throws Ssh2Exception
+ *
+ */
+function ssh2_scp_send($session, string $local_file, string $remote_file, int $create_mode = 0644): void
+{
+ error_clear_last();
+ $result = \ssh2_scp_send($session, $local_file, $remote_file, $create_mode);
+ if ($result === false) {
+ throw Ssh2Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Attempts to change the mode of the specified file to that given in
+ * mode.
+ *
+ * @param resource $sftp An SSH2 SFTP resource opened by ssh2_sftp.
+ * @param string $filename Path to the file.
+ * @param int $mode Permissions on the file. See the chmod for more details on this parameter.
+ * @throws Ssh2Exception
+ *
+ */
+function ssh2_sftp_chmod($sftp, string $filename, int $mode): void
+{
+ error_clear_last();
+ $result = \ssh2_sftp_chmod($sftp, $filename, $mode);
+ if ($result === false) {
+ throw Ssh2Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Creates a directory on the remote file server with permissions set to
+ * mode.
+ *
+ * This function is similar to using mkdir with the
+ * ssh2.sftp:// wrapper.
+ *
+ * @param resource $sftp An SSH2 SFTP resource opened by ssh2_sftp.
+ * @param string $dirname Path of the new directory.
+ * @param int $mode Permissions on the new directory.
+ * @param bool $recursive If recursive is TRUE any parent directories
+ * required for dirname will be automatically created as well.
+ * @throws Ssh2Exception
+ *
+ */
+function ssh2_sftp_mkdir($sftp, string $dirname, int $mode = 0777, bool $recursive = false): void
+{
+ error_clear_last();
+ $result = \ssh2_sftp_mkdir($sftp, $dirname, $mode, $recursive);
+ if ($result === false) {
+ throw Ssh2Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Renames a file on the remote filesystem.
+ *
+ * @param resource $sftp An SSH2 SFTP resource opened by ssh2_sftp.
+ * @param string $from The current file that is being renamed.
+ * @param string $to The new file name that replaces from.
+ * @throws Ssh2Exception
+ *
+ */
+function ssh2_sftp_rename($sftp, string $from, string $to): void
+{
+ error_clear_last();
+ $result = \ssh2_sftp_rename($sftp, $from, $to);
+ if ($result === false) {
+ throw Ssh2Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Removes a directory from the remote file server.
+ *
+ * This function is similar to using rmdir with the
+ * ssh2.sftp:// wrapper.
+ *
+ * @param resource $sftp An SSH2 SFTP resource opened by ssh2_sftp.
+ * @param string $dirname
+ * @throws Ssh2Exception
+ *
+ */
+function ssh2_sftp_rmdir($sftp, string $dirname): void
+{
+ error_clear_last();
+ $result = \ssh2_sftp_rmdir($sftp, $dirname);
+ if ($result === false) {
+ throw Ssh2Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Creates a symbolic link named link on the remote
+ * filesystem pointing to target.
+ *
+ * @param resource $sftp An SSH2 SFTP resource opened by ssh2_sftp.
+ * @param string $target Target of the symbolic link.
+ * @param string $link
+ * @throws Ssh2Exception
+ *
+ */
+function ssh2_sftp_symlink($sftp, string $target, string $link): void
+{
+ error_clear_last();
+ $result = \ssh2_sftp_symlink($sftp, $target, $link);
+ if ($result === false) {
+ throw Ssh2Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Deletes a file on the remote filesystem.
+ *
+ * @param resource $sftp An SSH2 SFTP resource opened by ssh2_sftp.
+ * @param string $filename
+ * @throws Ssh2Exception
+ *
+ */
+function ssh2_sftp_unlink($sftp, string $filename): void
+{
+ error_clear_last();
+ $result = \ssh2_sftp_unlink($sftp, $filename);
+ if ($result === false) {
+ throw Ssh2Exception::createFromPhpError();
+ }
+}
+
+
+/**
+ * Request the SFTP subsystem from an already connected SSH2 server.
+ *
+ * @param resource $session An SSH connection link identifier, obtained from a call to
+ * ssh2_connect.
+ * @return resource This method returns an SSH2 SFTP resource for use with
+ * all other ssh2_sftp_*() methods and the
+ * ssh2.sftp:// fopen wrapper.
+ * @throws Ssh2Exception
+ *
+ */
+function ssh2_sftp($session)
+{
+ error_clear_last();
+ $result = \ssh2_sftp($session);
+ if ($result === false) {
+ throw Ssh2Exception::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/stream.php b/vendor/thecodingmachine/safe/generated/stream.php
new file mode 100644
index 000000000..573d0295a
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/stream.php
@@ -0,0 +1,609 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\StreamException;
+
+/**
+ * Sets parameters on the specified context.
+ *
+ * @param resource $stream_or_context The stream or context to apply the parameters too.
+ * @param array $params An array of parameters to set.
+ *
+ * params should be an associative array of the structure:
+ * $params['paramname'] = "paramvalue";.
+ * @throws StreamException
+ *
+ */
+function stream_context_set_params($stream_or_context, array $params): void
+{
+ error_clear_last();
+ $result = \stream_context_set_params($stream_or_context, $params);
+ if ($result === false) {
+ throw StreamException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Makes a copy of up to maxlength bytes
+ * of data from the current position (or from the
+ * offset position, if specified) in
+ * source to dest. If
+ * maxlength is not specified, all remaining content in
+ * source will be copied.
+ *
+ * @param resource $source The source stream
+ * @param resource $dest The destination stream
+ * @param int $maxlength Maximum bytes to copy
+ * @param int $offset The offset where to start to copy data
+ * @return int Returns the total count of bytes copied.
+ * @throws StreamException
+ *
+ */
+function stream_copy_to_stream($source, $dest, int $maxlength = -1, int $offset = 0): int
+{
+ error_clear_last();
+ $result = \stream_copy_to_stream($source, $dest, $maxlength, $offset);
+ if ($result === false) {
+ throw StreamException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Adds filtername to the list of filters
+ * attached to stream.
+ *
+ * @param resource $stream The target stream.
+ * @param string $filtername The filter name.
+ * @param int $read_write By default, stream_filter_append will
+ * attach the filter to the read filter chain
+ * if the file was opened for reading (i.e. File Mode:
+ * r, and/or +). The filter
+ * will also be attached to the write filter chain
+ * if the file was opened for writing (i.e. File Mode:
+ * w, a, and/or +).
+ * STREAM_FILTER_READ,
+ * STREAM_FILTER_WRITE, and/or
+ * STREAM_FILTER_ALL can also be passed to the
+ * read_write parameter to override this behavior.
+ * @param mixed $params This filter will be added with the specified
+ * params to the end of
+ * the list and will therefore be called last during stream operations.
+ * To add a filter to the beginning of the list, use
+ * stream_filter_prepend.
+ * @return resource Returns a resource on success. The resource can be
+ * used to refer to this filter instance during a call to
+ * stream_filter_remove.
+ *
+ * FALSE is returned if stream is not a resource or
+ * if filtername cannot be located.
+ * @throws StreamException
+ *
+ */
+function stream_filter_append($stream, string $filtername, int $read_write = null, $params = null)
+{
+ error_clear_last();
+ if ($params !== null) {
+ $result = \stream_filter_append($stream, $filtername, $read_write, $params);
+ } elseif ($read_write !== null) {
+ $result = \stream_filter_append($stream, $filtername, $read_write);
+ } else {
+ $result = \stream_filter_append($stream, $filtername);
+ }
+ if ($result === false) {
+ throw StreamException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Adds filtername to the list of filters
+ * attached to stream.
+ *
+ * @param resource $stream The target stream.
+ * @param string $filtername The filter name.
+ * @param int $read_write By default, stream_filter_prepend will
+ * attach the filter to the read filter chain
+ * if the file was opened for reading (i.e. File Mode:
+ * r, and/or +). The filter
+ * will also be attached to the write filter chain
+ * if the file was opened for writing (i.e. File Mode:
+ * w, a, and/or +).
+ * STREAM_FILTER_READ,
+ * STREAM_FILTER_WRITE, and/or
+ * STREAM_FILTER_ALL can also be passed to the
+ * read_write parameter to override this behavior.
+ * See stream_filter_append for an example of
+ * using this parameter.
+ * @param mixed $params This filter will be added with the specified params
+ * to the beginning of the list and will therefore be
+ * called first during stream operations. To add a filter to the end of the
+ * list, use stream_filter_append.
+ * @return resource Returns a resource on success. The resource can be
+ * used to refer to this filter instance during a call to
+ * stream_filter_remove.
+ *
+ * FALSE is returned if stream is not a resource or
+ * if filtername cannot be located.
+ * @throws StreamException
+ *
+ */
+function stream_filter_prepend($stream, string $filtername, int $read_write = null, $params = null)
+{
+ error_clear_last();
+ if ($params !== null) {
+ $result = \stream_filter_prepend($stream, $filtername, $read_write, $params);
+ } elseif ($read_write !== null) {
+ $result = \stream_filter_prepend($stream, $filtername, $read_write);
+ } else {
+ $result = \stream_filter_prepend($stream, $filtername);
+ }
+ if ($result === false) {
+ throw StreamException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * stream_filter_register allows you to implement
+ * your own filter on any registered stream used with all the other
+ * filesystem functions (such as fopen,
+ * fread etc.).
+ *
+ * @param string $filtername The filter name to be registered.
+ * @param string $classname To implement a filter, you need to define a class as an extension of
+ * php_user_filter with a number of member
+ * functions. When performing read/write operations on the stream
+ * to which your filter is attached, PHP will pass the data through your
+ * filter (and any other filters attached to that stream) so that the
+ * data may be modified as desired. You must implement the methods
+ * exactly as described in php_user_filter - doing
+ * otherwise will lead to undefined behaviour.
+ * @throws StreamException
+ *
+ */
+function stream_filter_register(string $filtername, string $classname): void
+{
+ error_clear_last();
+ $result = \stream_filter_register($filtername, $classname);
+ if ($result === false) {
+ throw StreamException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Removes a stream filter previously added to a stream with
+ * stream_filter_prepend or
+ * stream_filter_append. Any data remaining in the
+ * filter's internal buffer will be flushed through to the next filter before
+ * removing it.
+ *
+ * @param resource $stream_filter The stream filter to be removed.
+ * @throws StreamException
+ *
+ */
+function stream_filter_remove($stream_filter): void
+{
+ error_clear_last();
+ $result = \stream_filter_remove($stream_filter);
+ if ($result === false) {
+ throw StreamException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Identical to file_get_contents, except that
+ * stream_get_contents operates on an already open
+ * stream resource and returns the remaining contents in a string, up to
+ * maxlength bytes and starting at the specified
+ * offset.
+ *
+ * @param resource $handle A stream resource (e.g. returned from fopen)
+ * @param int $maxlength The maximum bytes to read. Defaults to -1 (read all the remaining
+ * buffer).
+ * @param int $offset Seek to the specified offset before reading. If this number is negative,
+ * no seeking will occur and reading will start from the current position.
+ * @return string Returns a string.
+ * @throws StreamException
+ *
+ */
+function stream_get_contents($handle, int $maxlength = -1, int $offset = -1): string
+{
+ error_clear_last();
+ $result = \stream_get_contents($handle, $maxlength, $offset);
+ if ($result === false) {
+ throw StreamException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Determines if stream stream refers to a valid terminal type device.
+ * This is a more portable version of posix_isatty, since it works on Windows systems too.
+ *
+ * @param resource $stream
+ * @throws StreamException
+ *
+ */
+function stream_isatty($stream): void
+{
+ error_clear_last();
+ $result = \stream_isatty($stream);
+ if ($result === false) {
+ throw StreamException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Resolve filename against the include path according to the same rules as fopen/include.
+ *
+ * @param string $filename The filename to resolve.
+ * @return string Returns a string containing the resolved absolute filename.
+ * @throws StreamException
+ *
+ */
+function stream_resolve_include_path(string $filename): string
+{
+ error_clear_last();
+ $result = \stream_resolve_include_path($filename);
+ if ($result === false) {
+ throw StreamException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Sets blocking or non-blocking mode on a stream.
+ *
+ * This function works for any stream that supports non-blocking mode
+ * (currently, regular files and socket streams).
+ *
+ * @param resource $stream The stream.
+ * @param bool $mode If mode is FALSE, the given stream
+ * will be switched to non-blocking mode, and if TRUE, it
+ * will be switched to blocking mode. This affects calls like
+ * fgets and fread
+ * that read from the stream. In non-blocking mode an
+ * fgets call will always return right away
+ * while in blocking mode it will wait for data to become available
+ * on the stream.
+ * @throws StreamException
+ *
+ */
+function stream_set_blocking($stream, bool $mode): void
+{
+ error_clear_last();
+ $result = \stream_set_blocking($stream, $mode);
+ if ($result === false) {
+ throw StreamException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Sets the timeout value on stream,
+ * expressed in the sum of seconds and
+ * microseconds.
+ *
+ * When the stream times out, the 'timed_out' key of the array returned by
+ * stream_get_meta_data is set to TRUE, although no
+ * error/warning is generated.
+ *
+ * @param resource $stream The target stream.
+ * @param int $seconds The seconds part of the timeout to be set.
+ * @param int $microseconds The microseconds part of the timeout to be set.
+ * @throws StreamException
+ *
+ */
+function stream_set_timeout($stream, int $seconds, int $microseconds = 0): void
+{
+ error_clear_last();
+ $result = \stream_set_timeout($stream, $seconds, $microseconds);
+ if ($result === false) {
+ throw StreamException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Accept a connection on a socket previously created by
+ * stream_socket_server.
+ *
+ * @param resource $server_socket The server socket to accept a connection from.
+ * @param float $timeout Override the default socket accept timeout. Time should be given in
+ * seconds.
+ * @param string|null $peername Will be set to the name (address) of the client which connected, if
+ * included and available from the selected transport.
+ *
+ * Can also be determined later using
+ * stream_socket_get_name.
+ * @return resource Returns a stream to the accepted socket connection.
+ * @throws StreamException
+ *
+ */
+function stream_socket_accept($server_socket, float $timeout = null, ?string &$peername = null)
+{
+ error_clear_last();
+ if ($peername !== null) {
+ $result = \stream_socket_accept($server_socket, $timeout, $peername);
+ } elseif ($timeout !== null) {
+ $result = \stream_socket_accept($server_socket, $timeout);
+ } else {
+ $result = \stream_socket_accept($server_socket);
+ }
+ if ($result === false) {
+ throw StreamException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Initiates a stream or datagram connection to the destination specified
+ * by remote_socket. The type of socket created
+ * is determined by the transport specified using standard URL formatting:
+ * transport://target. For Internet Domain sockets
+ * (AF_INET) such as TCP and UDP, the target portion
+ * of the remote_socket parameter should consist of
+ * a hostname or IP address followed by a colon and a port number. For Unix
+ * domain sockets, the target portion should point
+ * to the socket file on the filesystem.
+ *
+ * @param string $remote_socket Address to the socket to connect to.
+ * @param int $errno Will be set to the system level error number if connection fails.
+ * @param string $errstr Will be set to the system level error message if the connection fails.
+ * @param float $timeout Number of seconds until the connect() system call
+ * should timeout.
+ *
+ *
+ * This parameter only applies when not making asynchronous
+ * connection attempts.
+ *
+ *
+ *
+ *
+ * To set a timeout for reading/writing data over the socket, use the
+ * stream_set_timeout, as the
+ * timeout only applies while making connecting
+ * the socket.
+ *
+ *
+ *
+ * To set a timeout for reading/writing data over the socket, use the
+ * stream_set_timeout, as the
+ * timeout only applies while making connecting
+ * the socket.
+ * @param int $flags Bitmask field which may be set to any combination of connection flags.
+ * Currently the select of connection flags is limited to
+ * STREAM_CLIENT_CONNECT (default),
+ * STREAM_CLIENT_ASYNC_CONNECT and
+ * STREAM_CLIENT_PERSISTENT.
+ * @param resource $context A valid context resource created with stream_context_create.
+ * @return resource On success a stream resource is returned which may
+ * be used together with the other file functions (such as
+ * fgets, fgetss,
+ * fwrite, fclose, and
+ * feof), FALSE on failure.
+ * @throws StreamException
+ *
+ */
+function stream_socket_client(string $remote_socket, int &$errno = null, string &$errstr = null, float $timeout = null, int $flags = STREAM_CLIENT_CONNECT, $context = null)
+{
+ error_clear_last();
+ if ($context !== null) {
+ $result = \stream_socket_client($remote_socket, $errno, $errstr, $timeout, $flags, $context);
+ } elseif ($flags !== STREAM_CLIENT_CONNECT) {
+ $result = \stream_socket_client($remote_socket, $errno, $errstr, $timeout, $flags);
+ } elseif ($timeout !== null) {
+ $result = \stream_socket_client($remote_socket, $errno, $errstr, $timeout);
+ } else {
+ $result = \stream_socket_client($remote_socket, $errno, $errstr);
+ }
+ if ($result === false) {
+ throw StreamException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * stream_socket_pair creates a pair of connected,
+ * indistinguishable socket streams. This function is commonly used in IPC
+ * (Inter-Process Communication).
+ *
+ * @param int $domain The protocol family to be used: STREAM_PF_INET,
+ * STREAM_PF_INET6 or
+ * STREAM_PF_UNIX
+ * @param int $type The type of communication to be used:
+ * STREAM_SOCK_DGRAM,
+ * STREAM_SOCK_RAW,
+ * STREAM_SOCK_RDM,
+ * STREAM_SOCK_SEQPACKET or
+ * STREAM_SOCK_STREAM
+ * @param int $protocol The protocol to be used: STREAM_IPPROTO_ICMP,
+ * STREAM_IPPROTO_IP,
+ * STREAM_IPPROTO_RAW,
+ * STREAM_IPPROTO_TCP or
+ * STREAM_IPPROTO_UDP
+ * @return resource[] Returns an array with the two socket resources on success.
+ * @throws StreamException
+ *
+ */
+function stream_socket_pair(int $domain, int $type, int $protocol): iterable
+{
+ error_clear_last();
+ $result = \stream_socket_pair($domain, $type, $protocol);
+ if ($result === false) {
+ throw StreamException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Creates a stream or datagram socket on the specified
+ * local_socket.
+ *
+ * This function only creates a socket, to begin accepting connections
+ * use stream_socket_accept.
+ *
+ * @param string $local_socket The type of socket created is determined by the transport specified
+ * using standard URL formatting: transport://target.
+ *
+ * For Internet Domain sockets (AF_INET) such as TCP and UDP, the
+ * target portion of the
+ * remote_socket parameter should consist of a
+ * hostname or IP address followed by a colon and a port number. For
+ * Unix domain sockets, the target portion should
+ * point to the socket file on the filesystem.
+ *
+ * Depending on the environment, Unix domain sockets may not be available.
+ * A list of available transports can be retrieved using
+ * stream_get_transports. See
+ * for a list of bulitin transports.
+ * @param int $errno If the optional errno and errstr
+ * arguments are present they will be set to indicate the actual system
+ * level error that occurred in the system-level socket(),
+ * bind(), and listen() calls. If
+ * the value returned in errno is
+ * 0 and the function returned FALSE, it is an
+ * indication that the error occurred before the bind()
+ * call. This is most likely due to a problem initializing the socket.
+ * Note that the errno and
+ * errstr arguments will always be passed by reference.
+ * @param string $errstr See errno description.
+ * @param int $flags A bitmask field which may be set to any combination of socket creation
+ * flags.
+ *
+ * For UDP sockets, you must use STREAM_SERVER_BIND as
+ * the flags parameter.
+ * @param resource $context
+ * @return resource Returns the created stream.
+ * @throws StreamException
+ *
+ */
+function stream_socket_server(string $local_socket, int &$errno = null, string &$errstr = null, int $flags = STREAM_SERVER_BIND | STREAM_SERVER_LISTEN, $context = null)
+{
+ error_clear_last();
+ if ($context !== null) {
+ $result = \stream_socket_server($local_socket, $errno, $errstr, $flags, $context);
+ } else {
+ $result = \stream_socket_server($local_socket, $errno, $errstr, $flags);
+ }
+ if ($result === false) {
+ throw StreamException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Shutdowns (partially or not) a full-duplex connection.
+ *
+ * @param resource $stream An open stream (opened with stream_socket_client,
+ * for example)
+ * @param int $how One of the following constants: STREAM_SHUT_RD
+ * (disable further receptions), STREAM_SHUT_WR
+ * (disable further transmissions) or
+ * STREAM_SHUT_RDWR (disable further receptions and
+ * transmissions).
+ * @throws StreamException
+ *
+ */
+function stream_socket_shutdown($stream, int $how): void
+{
+ error_clear_last();
+ $result = \stream_socket_shutdown($stream, $how);
+ if ($result === false) {
+ throw StreamException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Tells whether the stream supports locking through
+ * flock.
+ *
+ * @param resource $stream The stream to check.
+ * @throws StreamException
+ *
+ */
+function stream_supports_lock($stream): void
+{
+ error_clear_last();
+ $result = \stream_supports_lock($stream);
+ if ($result === false) {
+ throw StreamException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Allows you to implement your own protocol handlers and streams for use
+ * with all the other filesystem functions (such as fopen,
+ * fread etc.).
+ *
+ * @param string $protocol The wrapper name to be registered.
+ * @param string $classname The classname which implements the protocol.
+ * @param int $flags Should be set to STREAM_IS_URL if
+ * protocol is a URL protocol. Default is 0, local
+ * stream.
+ * @throws StreamException
+ *
+ */
+function stream_wrapper_register(string $protocol, string $classname, int $flags = 0): void
+{
+ error_clear_last();
+ $result = \stream_wrapper_register($protocol, $classname, $flags);
+ if ($result === false) {
+ throw StreamException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Restores a built-in wrapper previously unregistered with
+ * stream_wrapper_unregister.
+ *
+ * @param string $protocol
+ * @throws StreamException
+ *
+ */
+function stream_wrapper_restore(string $protocol): void
+{
+ error_clear_last();
+ $result = \stream_wrapper_restore($protocol);
+ if ($result === false) {
+ throw StreamException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Allows you to disable an already defined stream wrapper. Once the wrapper
+ * has been disabled you may override it with a user-defined wrapper using
+ * stream_wrapper_register or reenable it later on with
+ * stream_wrapper_restore.
+ *
+ * @param string $protocol
+ * @throws StreamException
+ *
+ */
+function stream_wrapper_unregister(string $protocol): void
+{
+ error_clear_last();
+ $result = \stream_wrapper_unregister($protocol);
+ if ($result === false) {
+ throw StreamException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/strings.php b/vendor/thecodingmachine/safe/generated/strings.php
new file mode 100644
index 000000000..9bc728415
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/strings.php
@@ -0,0 +1,846 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\StringsException;
+
+/**
+ * convert_uudecode decodes a uuencoded string.
+ *
+ * @param string $data The uuencoded data.
+ * @return string Returns the decoded data as a string.
+ * @throws StringsException
+ *
+ */
+function convert_uudecode(string $data): string
+{
+ error_clear_last();
+ $result = \convert_uudecode($data);
+ if ($result === false) {
+ throw StringsException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * convert_uuencode encodes a string using the uuencode
+ * algorithm.
+ *
+ * Uuencode translates all strings (including binary data) into printable
+ * characters, making them safe for network transmissions. Uuencoded data is
+ * about 35% larger than the original.
+ *
+ * @param string $data The data to be encoded.
+ * @return string Returns the uuencoded data.
+ * @throws StringsException
+ *
+ */
+function convert_uuencode(string $data): string
+{
+ error_clear_last();
+ $result = \convert_uuencode($data);
+ if ($result === false) {
+ throw StringsException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Decodes a hexadecimally encoded binary string.
+ *
+ * @param string $data Hexadecimal representation of data.
+ * @return string Returns the binary representation of the given data.
+ * @throws StringsException
+ *
+ */
+function hex2bin(string $data): string
+{
+ error_clear_last();
+ $result = \hex2bin($data);
+ if ($result === false) {
+ throw StringsException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Calculates the MD5 hash of the file specified by the
+ * filename parameter using the
+ * RSA Data Security, Inc.
+ * MD5 Message-Digest Algorithm, and returns that hash.
+ * The hash is a 32-character hexadecimal number.
+ *
+ * @param string $filename The filename
+ * @param bool $raw_output When TRUE, returns the digest in raw binary format with a length of
+ * 16.
+ * @return string Returns a string on success, FALSE otherwise.
+ * @throws StringsException
+ *
+ */
+function md5_file(string $filename, bool $raw_output = false): string
+{
+ error_clear_last();
+ $result = \md5_file($filename, $raw_output);
+ if ($result === false) {
+ throw StringsException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Calculates the metaphone key of str.
+ *
+ * Similar to soundex metaphone creates the same key for
+ * similar sounding words. It's more accurate than
+ * soundex as it knows the basic rules of English
+ * pronunciation. The metaphone generated keys are of variable length.
+ *
+ * Metaphone was developed by Lawrence Philips
+ * &lt;lphilips at verity dot com&gt;. It is described in ["Practical
+ * Algorithms for Programmers", Binstock &amp; Rex, Addison Wesley,
+ * 1995].
+ *
+ * @param string $str The input string.
+ * @param int $phonemes This parameter restricts the returned metaphone key to
+ * phonemes characters in length.
+ * The default value of 0 means no restriction.
+ * @return string Returns the metaphone key as a string.
+ * @throws StringsException
+ *
+ */
+function metaphone(string $str, int $phonemes = 0): string
+{
+ error_clear_last();
+ $result = \metaphone($str, $phonemes);
+ if ($result === false) {
+ throw StringsException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ *
+ *
+ * @param string $filename The filename of the file to hash.
+ * @param bool $raw_output When TRUE, returns the digest in raw binary format with a length of
+ * 20.
+ * @return string Returns a string on success, FALSE otherwise.
+ * @throws StringsException
+ *
+ */
+function sha1_file(string $filename, bool $raw_output = false): string
+{
+ error_clear_last();
+ $result = \sha1_file($filename, $raw_output);
+ if ($result === false) {
+ throw StringsException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Calculates the soundex key of str.
+ *
+ * Soundex keys have the property that words pronounced similarly
+ * produce the same soundex key, and can thus be used to simplify
+ * searches in databases where you know the pronunciation but not
+ * the spelling. This soundex function returns a string 4 characters
+ * long, starting with a letter.
+ *
+ * This particular soundex function is one described by Donald Knuth
+ * in "The Art Of Computer Programming, vol. 3: Sorting And
+ * Searching", Addison-Wesley (1973), pp. 391-392.
+ *
+ * @param string $str The input string.
+ * @return string Returns the soundex key as a string.
+ * @throws StringsException
+ *
+ */
+function soundex(string $str): string
+{
+ error_clear_last();
+ $result = \soundex($str);
+ if ($result === false) {
+ throw StringsException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Returns a string produced according to the formatting string
+ * format.
+ *
+ * @param string $format The format string is composed of zero or more directives:
+ * ordinary characters (excluding %) that are
+ * copied directly to the result and conversion
+ * specifications, each of which results in fetching its
+ * own parameter.
+ *
+ * A conversion specification follows this prototype:
+ * %[argnum$][flags][width][.precision]specifier.
+ *
+ * An integer followed by a dollar sign $,
+ * to specify which number argument to treat in the conversion.
+ *
+ *
+ * Flags
+ *
+ *
+ *
+ * Flag
+ * Description
+ *
+ *
+ *
+ *
+ * -
+ *
+ * Left-justify within the given field width;
+ * Right justification is the default
+ *
+ *
+ *
+ * +
+ *
+ * Prefix positive numbers with a plus sign
+ * +; Default only negative
+ * are prefixed with a negative sign.
+ *
+ *
+ *
+ * (space)
+ *
+ * Pads the result with spaces.
+ * This is the default.
+ *
+ *
+ *
+ * 0
+ *
+ * Only left-pads numbers with zeros.
+ * With s specifiers this can
+ * also right-pad with zeros.
+ *
+ *
+ *
+ * '(char)
+ *
+ * Pads the result with the character (char).
+ *
+ *
+ *
+ *
+ *
+ *
+ * An integer that says how many characters (minimum)
+ * this conversion should result in.
+ *
+ * A period . followed by an integer
+ * who's meaning depends on the specifier:
+ *
+ *
+ *
+ * For e, E,
+ * f and F
+ * specifiers: this is the number of digits to be printed
+ * after the decimal point (by default, this is 6).
+ *
+ *
+ *
+ *
+ * For g and G
+ * specifiers: this is the maximum number of significant
+ * digits to be printed.
+ *
+ *
+ *
+ *
+ * For s specifier: it acts as a cutoff point,
+ * setting a maximum character limit to the string.
+ *
+ *
+ *
+ *
+ *
+ * If the period is specified without an explicit value for precision,
+ * 0 is assumed.
+ *
+ *
+ *
+ *
+ * Specifiers
+ *
+ *
+ *
+ * Specifier
+ * Description
+ *
+ *
+ *
+ *
+ * %
+ *
+ * A literal percent character. No argument is required.
+ *
+ *
+ *
+ * b
+ *
+ * The argument is treated as an integer and presented
+ * as a binary number.
+ *
+ *
+ *
+ * c
+ *
+ * The argument is treated as an integer and presented
+ * as the character with that ASCII.
+ *
+ *
+ *
+ * d
+ *
+ * The argument is treated as an integer and presented
+ * as a (signed) decimal number.
+ *
+ *
+ *
+ * e
+ *
+ * The argument is treated as scientific notation (e.g. 1.2e+2).
+ * The precision specifier stands for the number of digits after the
+ * decimal point since PHP 5.2.1. In earlier versions, it was taken as
+ * number of significant digits (one less).
+ *
+ *
+ *
+ * E
+ *
+ * Like the e specifier but uses
+ * uppercase letter (e.g. 1.2E+2).
+ *
+ *
+ *
+ * f
+ *
+ * The argument is treated as a float and presented
+ * as a floating-point number (locale aware).
+ *
+ *
+ *
+ * F
+ *
+ * The argument is treated as a float and presented
+ * as a floating-point number (non-locale aware).
+ * Available as of PHP 5.0.3.
+ *
+ *
+ *
+ * g
+ *
+ *
+ * General format.
+ *
+ *
+ * Let P equal the precision if nonzero, 6 if the precision is omitted,
+ * or 1 if the precision is zero.
+ * Then, if a conversion with style E would have an exponent of X:
+ *
+ *
+ * If P &gt; X ≥ −4, the conversion is with style f and precision P − (X + 1).
+ * Otherwise, the conversion is with style e and precision P − 1.
+ *
+ *
+ *
+ *
+ * G
+ *
+ * Like the g specifier but uses
+ * E and f.
+ *
+ *
+ *
+ * o
+ *
+ * The argument is treated as an integer and presented
+ * as an octal number.
+ *
+ *
+ *
+ * s
+ *
+ * The argument is treated and presented as a string.
+ *
+ *
+ *
+ * u
+ *
+ * The argument is treated as an integer and presented
+ * as an unsigned decimal number.
+ *
+ *
+ *
+ * x
+ *
+ * The argument is treated as an integer and presented
+ * as a hexadecimal number (with lowercase letters).
+ *
+ *
+ *
+ * X
+ *
+ * The argument is treated as an integer and presented
+ * as a hexadecimal number (with uppercase letters).
+ *
+ *
+ *
+ *
+ *
+ *
+ * General format.
+ *
+ * Let P equal the precision if nonzero, 6 if the precision is omitted,
+ * or 1 if the precision is zero.
+ * Then, if a conversion with style E would have an exponent of X:
+ *
+ * If P &gt; X ≥ −4, the conversion is with style f and precision P − (X + 1).
+ * Otherwise, the conversion is with style e and precision P − 1.
+ *
+ * The c type specifier ignores padding and width
+ *
+ * Attempting to use a combination of the string and width specifiers with character sets that require more than one byte per character may result in unexpected results
+ *
+ * Variables will be co-erced to a suitable type for the specifier:
+ *
+ * Type Handling
+ *
+ *
+ *
+ * Type
+ * Specifiers
+ *
+ *
+ *
+ *
+ * string
+ * s
+ *
+ *
+ * integer
+ *
+ * d,
+ * u,
+ * c,
+ * o,
+ * x,
+ * X,
+ * b
+ *
+ *
+ *
+ * double
+ *
+ * g,
+ * G,
+ * e,
+ * E,
+ * f,
+ * F
+ *
+ *
+ *
+ *
+ *
+ * @param mixed $params
+ * @return string Returns a string produced according to the formatting string
+ * format.
+ * @throws StringsException
+ *
+ */
+function sprintf(string $format, ...$params): string
+{
+ error_clear_last();
+ if ($params !== []) {
+ $result = \sprintf($format, ...$params);
+ } else {
+ $result = \sprintf($format);
+ }
+ if ($result === false) {
+ throw StringsException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Returns the portion of string specified by the
+ * start and length parameters.
+ *
+ * @param string $string The input string.
+ * @param int $start If start is non-negative, the returned string
+ * will start at the start'th position in
+ * string, counting from zero. For instance,
+ * in the string 'abcdef', the character at
+ * position 0 is 'a', the
+ * character at position 2 is
+ * 'c', and so forth.
+ *
+ * If start is negative, the returned string
+ * will start at the start'th character
+ * from the end of string.
+ *
+ * If string is less than
+ * start characters long, FALSE will be returned.
+ *
+ *
+ * Using a negative start
+ *
+ *
+ * ]]>
+ *
+ *
+ * @param int $length If length is given and is positive, the string
+ * returned will contain at most length characters
+ * beginning from start (depending on the length of
+ * string).
+ *
+ * If length is given and is negative, then that many
+ * characters will be omitted from the end of string
+ * (after the start position has been calculated when a
+ * start is negative). If
+ * start denotes the position of this truncation or
+ * beyond, FALSE will be returned.
+ *
+ * If length is given and is 0,
+ * FALSE or NULL, an empty string will be returned.
+ *
+ * If length is omitted, the substring starting from
+ * start until the end of the string will be
+ * returned.
+ * @return string Returns the extracted part of string;, or
+ * an empty string.
+ * @throws StringsException
+ *
+ */
+function substr(string $string, int $start, int $length = null): string
+{
+ error_clear_last();
+ if ($length !== null) {
+ $result = \substr($string, $start, $length);
+ } else {
+ $result = \substr($string, $start);
+ }
+ if ($result === false) {
+ throw StringsException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Operates as sprintf but accepts an array of
+ * arguments, rather than a variable number of arguments.
+ *
+ * @param string $format The format string is composed of zero or more directives:
+ * ordinary characters (excluding %) that are
+ * copied directly to the result and conversion
+ * specifications, each of which results in fetching its
+ * own parameter.
+ *
+ * A conversion specification follows this prototype:
+ * %[argnum$][flags][width][.precision]specifier.
+ *
+ * An integer followed by a dollar sign $,
+ * to specify which number argument to treat in the conversion.
+ *
+ *
+ * Flags
+ *
+ *
+ *
+ * Flag
+ * Description
+ *
+ *
+ *
+ *
+ * -
+ *
+ * Left-justify within the given field width;
+ * Right justification is the default
+ *
+ *
+ *
+ * +
+ *
+ * Prefix positive numbers with a plus sign
+ * +; Default only negative
+ * are prefixed with a negative sign.
+ *
+ *
+ *
+ * (space)
+ *
+ * Pads the result with spaces.
+ * This is the default.
+ *
+ *
+ *
+ * 0
+ *
+ * Only left-pads numbers with zeros.
+ * With s specifiers this can
+ * also right-pad with zeros.
+ *
+ *
+ *
+ * '(char)
+ *
+ * Pads the result with the character (char).
+ *
+ *
+ *
+ *
+ *
+ *
+ * An integer that says how many characters (minimum)
+ * this conversion should result in.
+ *
+ * A period . followed by an integer
+ * who's meaning depends on the specifier:
+ *
+ *
+ *
+ * For e, E,
+ * f and F
+ * specifiers: this is the number of digits to be printed
+ * after the decimal point (by default, this is 6).
+ *
+ *
+ *
+ *
+ * For g and G
+ * specifiers: this is the maximum number of significant
+ * digits to be printed.
+ *
+ *
+ *
+ *
+ * For s specifier: it acts as a cutoff point,
+ * setting a maximum character limit to the string.
+ *
+ *
+ *
+ *
+ *
+ * If the period is specified without an explicit value for precision,
+ * 0 is assumed.
+ *
+ *
+ *
+ *
+ * Specifiers
+ *
+ *
+ *
+ * Specifier
+ * Description
+ *
+ *
+ *
+ *
+ * %
+ *
+ * A literal percent character. No argument is required.
+ *
+ *
+ *
+ * b
+ *
+ * The argument is treated as an integer and presented
+ * as a binary number.
+ *
+ *
+ *
+ * c
+ *
+ * The argument is treated as an integer and presented
+ * as the character with that ASCII.
+ *
+ *
+ *
+ * d
+ *
+ * The argument is treated as an integer and presented
+ * as a (signed) decimal number.
+ *
+ *
+ *
+ * e
+ *
+ * The argument is treated as scientific notation (e.g. 1.2e+2).
+ * The precision specifier stands for the number of digits after the
+ * decimal point since PHP 5.2.1. In earlier versions, it was taken as
+ * number of significant digits (one less).
+ *
+ *
+ *
+ * E
+ *
+ * Like the e specifier but uses
+ * uppercase letter (e.g. 1.2E+2).
+ *
+ *
+ *
+ * f
+ *
+ * The argument is treated as a float and presented
+ * as a floating-point number (locale aware).
+ *
+ *
+ *
+ * F
+ *
+ * The argument is treated as a float and presented
+ * as a floating-point number (non-locale aware).
+ * Available as of PHP 5.0.3.
+ *
+ *
+ *
+ * g
+ *
+ *
+ * General format.
+ *
+ *
+ * Let P equal the precision if nonzero, 6 if the precision is omitted,
+ * or 1 if the precision is zero.
+ * Then, if a conversion with style E would have an exponent of X:
+ *
+ *
+ * If P &gt; X ≥ −4, the conversion is with style f and precision P − (X + 1).
+ * Otherwise, the conversion is with style e and precision P − 1.
+ *
+ *
+ *
+ *
+ * G
+ *
+ * Like the g specifier but uses
+ * E and f.
+ *
+ *
+ *
+ * o
+ *
+ * The argument is treated as an integer and presented
+ * as an octal number.
+ *
+ *
+ *
+ * s
+ *
+ * The argument is treated and presented as a string.
+ *
+ *
+ *
+ * u
+ *
+ * The argument is treated as an integer and presented
+ * as an unsigned decimal number.
+ *
+ *
+ *
+ * x
+ *
+ * The argument is treated as an integer and presented
+ * as a hexadecimal number (with lowercase letters).
+ *
+ *
+ *
+ * X
+ *
+ * The argument is treated as an integer and presented
+ * as a hexadecimal number (with uppercase letters).
+ *
+ *
+ *
+ *
+ *
+ *
+ * General format.
+ *
+ * Let P equal the precision if nonzero, 6 if the precision is omitted,
+ * or 1 if the precision is zero.
+ * Then, if a conversion with style E would have an exponent of X:
+ *
+ * If P &gt; X ≥ −4, the conversion is with style f and precision P − (X + 1).
+ * Otherwise, the conversion is with style e and precision P − 1.
+ *
+ * The c type specifier ignores padding and width
+ *
+ * Attempting to use a combination of the string and width specifiers with character sets that require more than one byte per character may result in unexpected results
+ *
+ * Variables will be co-erced to a suitable type for the specifier:
+ *
+ * Type Handling
+ *
+ *
+ *
+ * Type
+ * Specifiers
+ *
+ *
+ *
+ *
+ * string
+ * s
+ *
+ *
+ * integer
+ *
+ * d,
+ * u,
+ * c,
+ * o,
+ * x,
+ * X,
+ * b
+ *
+ *
+ *
+ * double
+ *
+ * g,
+ * G,
+ * e,
+ * E,
+ * f,
+ * F
+ *
+ *
+ *
+ *
+ *
+ * @param array $args
+ * @return string Return array values as a formatted string according to
+ * format.
+ * @throws StringsException
+ *
+ */
+function vsprintf(string $format, array $args): string
+{
+ error_clear_last();
+ $result = \vsprintf($format, $args);
+ if ($result === false) {
+ throw StringsException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/swoole.php b/vendor/thecodingmachine/safe/generated/swoole.php
new file mode 100644
index 000000000..334d96bd9
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/swoole.php
@@ -0,0 +1,108 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\SwooleException;
+
+/**
+ *
+ *
+ * @param string $filename The filename being written.
+ * @param string $content The content writing to the file.
+ * @param int $offset The offset.
+ * @param callable $callback
+ * @throws SwooleException
+ *
+ */
+function swoole_async_write(string $filename, string $content, int $offset = null, callable $callback = null): void
+{
+ error_clear_last();
+ if ($callback !== null) {
+ $result = \swoole_async_write($filename, $content, $offset, $callback);
+ } elseif ($offset !== null) {
+ $result = \swoole_async_write($filename, $content, $offset);
+ } else {
+ $result = \swoole_async_write($filename, $content);
+ }
+ if ($result === false) {
+ throw SwooleException::createFromPhpError();
+ }
+}
+
+
+/**
+ *
+ *
+ * @param string $filename The filename being written.
+ * @param string $content The content writing to the file.
+ * @param callable $callback
+ * @param int $flags
+ * @throws SwooleException
+ *
+ */
+function swoole_async_writefile(string $filename, string $content, callable $callback = null, int $flags = 0): void
+{
+ error_clear_last();
+ if ($flags !== 0) {
+ $result = \swoole_async_writefile($filename, $content, $callback, $flags);
+ } elseif ($callback !== null) {
+ $result = \swoole_async_writefile($filename, $content, $callback);
+ } else {
+ $result = \swoole_async_writefile($filename, $content);
+ }
+ if ($result === false) {
+ throw SwooleException::createFromPhpError();
+ }
+}
+
+
+/**
+ *
+ *
+ * @param callable $callback
+ * @throws SwooleException
+ *
+ */
+function swoole_event_defer(callable $callback): void
+{
+ error_clear_last();
+ $result = \swoole_event_defer($callback);
+ if ($result === false) {
+ throw SwooleException::createFromPhpError();
+ }
+}
+
+
+/**
+ *
+ *
+ * @param int $fd
+ * @throws SwooleException
+ *
+ */
+function swoole_event_del(int $fd): void
+{
+ error_clear_last();
+ $result = \swoole_event_del($fd);
+ if ($result === false) {
+ throw SwooleException::createFromPhpError();
+ }
+}
+
+
+/**
+ *
+ *
+ * @param int $fd
+ * @param string $data
+ * @throws SwooleException
+ *
+ */
+function swoole_event_write(int $fd, string $data): void
+{
+ error_clear_last();
+ $result = \swoole_event_write($fd, $data);
+ if ($result === false) {
+ throw SwooleException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/uodbc.php b/vendor/thecodingmachine/safe/generated/uodbc.php
new file mode 100644
index 000000000..89775c825
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/uodbc.php
@@ -0,0 +1,1009 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\UodbcException;
+
+/**
+ * Toggles autocommit behaviour.
+ *
+ * By default, auto-commit is on for a connection. Disabling
+ * auto-commit is equivalent with starting a transaction.
+ *
+ * @param resource $connection_id The ODBC connection identifier,
+ * see odbc_connect for details.
+ * @param bool $OnOff If OnOff is TRUE, auto-commit is enabled, if
+ * it is FALSE auto-commit is disabled.
+ * @return mixed Without the OnOff parameter, this function returns
+ * auto-commit status for connection_id. Non-zero is
+ * returned if auto-commit is on, 0 if it is off, or FALSE if an error
+ * occurs.
+ *
+ * If OnOff is set, this function returns TRUE on
+ * success.
+ * @throws UodbcException
+ *
+ */
+function odbc_autocommit($connection_id, bool $OnOff = false)
+{
+ error_clear_last();
+ $result = \odbc_autocommit($connection_id, $OnOff);
+ if ($result === false) {
+ throw UodbcException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Controls handling of binary column data. ODBC SQL types affected are
+ * BINARY, VARBINARY, and
+ * LONGVARBINARY.
+ * The default mode can be set using the
+ * uodbc.defaultbinmode php.ini directive.
+ *
+ * When binary SQL data is converted to character C data (ODBC_BINMODE_CONVERT), each byte
+ * (8 bits) of source data is represented as two ASCII characters.
+ * These characters are the ASCII character representation of the
+ * number in its hexadecimal form. For example, a binary
+ * 00000001 is converted to
+ * "01" and a binary 11111111
+ * is converted to "FF".
+ *
+ * While the handling of BINARY and VARBINARY
+ * columns only depend on the binmode, the handling of LONGVARBINARY
+ * columns also depends on the longreadlen as well:
+ *
+ * LONGVARBINARY handling
+ *
+ *
+ *
+ * binmode
+ * longreadlen
+ * result
+ *
+ *
+ *
+ *
+ * ODBC_BINMODE_PASSTHRU
+ * 0
+ * passthru
+ *
+ *
+ * ODBC_BINMODE_RETURN
+ * 0
+ * passthru
+ *
+ *
+ * ODBC_BINMODE_CONVERT
+ * 0
+ * passthru
+ *
+ *
+ * ODBC_BINMODE_PASSTHRU
+ * &gt;0
+ * passthru
+ *
+ *
+ * ODBC_BINMODE_RETURN
+ * &gt;0
+ * return as is
+ *
+ *
+ * ODBC_BINMODE_CONVERT
+ * &gt;0
+ * return as char
+ *
+ *
+ *
+ *
+ *
+ * If odbc_fetch_into is used, passthru means that an
+ * empty string is returned for these columns.
+ * If odbc_result is used, passthru means that the data are
+ * sent directly to the client (i.e. printed).
+ *
+ * @param int $result_id The result identifier.
+ *
+ * If result_id is 0, the
+ * settings apply as default for new results.
+ * @param int $mode Possible values for mode are:
+ *
+ *
+ *
+ * ODBC_BINMODE_PASSTHRU: Passthru BINARY data
+ *
+ *
+ *
+ *
+ * ODBC_BINMODE_RETURN: Return as is
+ *
+ *
+ *
+ *
+ * ODBC_BINMODE_CONVERT: Convert to char and return
+ *
+ *
+ *
+ *
+ *
+ * Handling of binary long
+ * columns is also affected by odbc_longreadlen.
+ *
+ *
+ * @throws UodbcException
+ *
+ */
+function odbc_binmode(int $result_id, int $mode): void
+{
+ error_clear_last();
+ $result = \odbc_binmode($result_id, $mode);
+ if ($result === false) {
+ throw UodbcException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Lists columns and associated privileges for the given table.
+ *
+ * @param resource $connection_id The ODBC connection identifier,
+ * see odbc_connect for details.
+ * @param string $catalog The catalog ('qualifier' in ODBC 2 parlance).
+ * @param string $schema The schema ('owner' in ODBC 2 parlance).
+ * This parameter accepts the following search patterns:
+ * % to match zero or more characters,
+ * and _ to match a single character.
+ * @param string $table_name The table name.
+ * This parameter accepts the following search patterns:
+ * % to match zero or more characters,
+ * and _ to match a single character.
+ * @param string $column_name The column name.
+ * This parameter accepts the following search patterns:
+ * % to match zero or more characters,
+ * and _ to match a single character.
+ * @return resource Returns an ODBC result identifier.
+ * This result identifier can be used to fetch a list of columns and
+ * associated privileges.
+ *
+ * The result set has the following columns:
+ *
+ * TABLE_CAT
+ * TABLE_SCHEM
+ * TABLE_NAME
+ * COLUMN_NAME
+ * GRANTOR
+ * GRANTEE
+ * PRIVILEGE
+ * IS_GRANTABLE
+ *
+ * Drivers can report additional columns.
+ * @throws UodbcException
+ *
+ */
+function odbc_columnprivileges($connection_id, string $catalog, string $schema, string $table_name, string $column_name)
+{
+ error_clear_last();
+ $result = \odbc_columnprivileges($connection_id, $catalog, $schema, $table_name, $column_name);
+ if ($result === false) {
+ throw UodbcException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Lists all columns in the requested range.
+ *
+ * @param resource $connection_id The ODBC connection identifier,
+ * see odbc_connect for details.
+ * @param string $catalog The catalog ('qualifier' in ODBC 2 parlance).
+ * @param string $schema The schema ('owner' in ODBC 2 parlance).
+ * This parameter accepts the following search patterns:
+ * % to match zero or more characters,
+ * and _ to match a single character.
+ * @param string $table_name The table name.
+ * This parameter accepts the following search patterns:
+ * % to match zero or more characters,
+ * and _ to match a single character.
+ * @param string $column_name The column name.
+ * This parameter accepts the following search patterns:
+ * % to match zero or more characters,
+ * and _ to match a single character.
+ * @return resource Returns an ODBC result identifier.
+ *
+ * The result set has the following columns:
+ *
+ * TABLE_CAT
+ * TABLE_SCHEM
+ * TABLE_NAME
+ * COLUMN_NAME
+ * DATA_TYPE
+ * TYPE_NAME
+ * COLUMN_SIZE
+ * BUFFER_LENGTH
+ * DECIMAL_DIGITS
+ * NUM_PREC_RADIX
+ * NULLABLE
+ * REMARKS
+ * COLUMN_DEF
+ * SQL_DATA_TYPE
+ * SQL_DATETIME_SUB
+ * CHAR_OCTET_LENGTH
+ * ORDINAL_POSITION
+ * IS_NULLABLE
+ *
+ * Drivers can report additional columns.
+ * @throws UodbcException
+ *
+ */
+function odbc_columns($connection_id, string $catalog = null, string $schema = null, string $table_name = null, string $column_name = null)
+{
+ error_clear_last();
+ if ($column_name !== null) {
+ $result = \odbc_columns($connection_id, $catalog, $schema, $table_name, $column_name);
+ } elseif ($table_name !== null) {
+ $result = \odbc_columns($connection_id, $catalog, $schema, $table_name);
+ } elseif ($schema !== null) {
+ $result = \odbc_columns($connection_id, $catalog, $schema);
+ } elseif ($catalog !== null) {
+ $result = \odbc_columns($connection_id, $catalog);
+ } else {
+ $result = \odbc_columns($connection_id);
+ }
+ if ($result === false) {
+ throw UodbcException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Commits all pending transactions on the connection.
+ *
+ * @param resource $connection_id The ODBC connection identifier,
+ * see odbc_connect for details.
+ * @throws UodbcException
+ *
+ */
+function odbc_commit($connection_id): void
+{
+ error_clear_last();
+ $result = \odbc_commit($connection_id);
+ if ($result === false) {
+ throw UodbcException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function will return the list of available DSN (after calling it
+ * several times).
+ *
+ * @param resource $connection_id The ODBC connection identifier,
+ * see odbc_connect for details.
+ * @param int $fetch_type The fetch_type can be one of two constant types:
+ * SQL_FETCH_FIRST, SQL_FETCH_NEXT.
+ * Use SQL_FETCH_FIRST the first time this function is
+ * called, thereafter use the SQL_FETCH_NEXT.
+ * @return array Returns FALSE on error, an array upon success, and NULL after fetching
+ * the last available DSN.
+ * @throws UodbcException
+ *
+ */
+function odbc_data_source($connection_id, int $fetch_type): array
+{
+ error_clear_last();
+ $result = \odbc_data_source($connection_id, $fetch_type);
+ if ($result === false) {
+ throw UodbcException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Sends an SQL statement to the database server.
+ *
+ * @param resource $connection_id The ODBC connection identifier,
+ * see odbc_connect for details.
+ * @param string $query_string The SQL statement.
+ * @param int $flags This parameter is currently not used.
+ * @return resource Returns an ODBC result identifier if the SQL command was executed
+ * successfully.
+ * @throws UodbcException
+ *
+ */
+function odbc_exec($connection_id, string $query_string, int $flags = null)
+{
+ error_clear_last();
+ if ($flags !== null) {
+ $result = \odbc_exec($connection_id, $query_string, $flags);
+ } else {
+ $result = \odbc_exec($connection_id, $query_string);
+ }
+ if ($result === false) {
+ throw UodbcException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Executes a statement prepared with odbc_prepare.
+ *
+ * @param resource $result_id The result id resource, from odbc_prepare.
+ * @param array $parameters_array Parameters in parameter_array will be
+ * substituted for placeholders in the prepared statement in order.
+ * Elements of this array will be converted to strings by calling this
+ * function.
+ *
+ * Any parameters in parameter_array which
+ * start and end with single quotes will be taken as the name of a
+ * file to read and send to the database server as the data for the
+ * appropriate placeholder.
+ * @throws UodbcException
+ *
+ */
+function odbc_execute($result_id, array $parameters_array = null): void
+{
+ error_clear_last();
+ if ($parameters_array !== null) {
+ $result = \odbc_execute($result_id, $parameters_array);
+ } else {
+ $result = \odbc_execute($result_id);
+ }
+ if ($result === false) {
+ throw UodbcException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Fetch one result row into array.
+ *
+ * @param resource $result_id The result resource.
+ * @param array|null $result_array The result array
+ * that can be of any type since it will be converted to type
+ * array. The array will contain the column values starting at array
+ * index 0.
+ * @param int $rownumber The row number.
+ * @return int Returns the number of columns in the result;
+ * FALSE on error.
+ * @throws UodbcException
+ *
+ */
+function odbc_fetch_into($result_id, ?array &$result_array, int $rownumber = null): int
+{
+ error_clear_last();
+ if ($rownumber !== null) {
+ $result = \odbc_fetch_into($result_id, $result_array, $rownumber);
+ } else {
+ $result = \odbc_fetch_into($result_id, $result_array);
+ }
+ if ($result === false) {
+ throw UodbcException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Gets the length of the field referenced by number in the given result
+ * identifier.
+ *
+ * @param resource $result_id The result identifier.
+ * @param int $field_number The field number. Field numbering starts at 1.
+ * @return int Returns the field length.
+ * @throws UodbcException
+ *
+ */
+function odbc_field_len($result_id, int $field_number): int
+{
+ error_clear_last();
+ $result = \odbc_field_len($result_id, $field_number);
+ if ($result === false) {
+ throw UodbcException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Gets the name of the field occupying the given column number in the given
+ * result identifier.
+ *
+ * @param resource $result_id The result identifier.
+ * @param int $field_number The field number. Field numbering starts at 1.
+ * @return string Returns the field name as a string.
+ * @throws UodbcException
+ *
+ */
+function odbc_field_name($result_id, int $field_number): string
+{
+ error_clear_last();
+ $result = \odbc_field_name($result_id, $field_number);
+ if ($result === false) {
+ throw UodbcException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Gets the number of the column slot that corresponds to the named field in
+ * the given result identifier.
+ *
+ * @param resource $result_id The result identifier.
+ * @param string $field_name The field name.
+ * @return int Returns the field number as a integer.
+ * Field numbering starts at 1.
+ * @throws UodbcException
+ *
+ */
+function odbc_field_num($result_id, string $field_name): int
+{
+ error_clear_last();
+ $result = \odbc_field_num($result_id, $field_name);
+ if ($result === false) {
+ throw UodbcException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Gets the scale of the field referenced by number in the given result
+ * identifier.
+ *
+ * @param resource $result_id The result identifier.
+ * @param int $field_number The field number. Field numbering starts at 1.
+ * @return int Returns the field scale as a integer.
+ * @throws UodbcException
+ *
+ */
+function odbc_field_scale($result_id, int $field_number): int
+{
+ error_clear_last();
+ $result = \odbc_field_scale($result_id, $field_number);
+ if ($result === false) {
+ throw UodbcException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Gets the SQL type of the field referenced by number in the given result
+ * identifier.
+ *
+ * @param resource $result_id The result identifier.
+ * @param int $field_number The field number. Field numbering starts at 1.
+ * @return string Returns the field type as a string.
+ * @throws UodbcException
+ *
+ */
+function odbc_field_type($result_id, int $field_number): string
+{
+ error_clear_last();
+ $result = \odbc_field_type($result_id, $field_number);
+ if ($result === false) {
+ throw UodbcException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Retrieves a list of foreign keys in the specified table or a list of
+ * foreign keys in other tables that refer to the primary key in the
+ * specified table
+ *
+ * @param resource $connection_id The ODBC connection identifier,
+ * see odbc_connect for details.
+ * @param string $pk_catalog The catalog ('qualifier' in ODBC 2 parlance) of the primary key table.
+ * @param string $pk_schema The schema ('owner' in ODBC 2 parlance) of the primary key table.
+ * @param string $pk_table The primary key table.
+ * @param string $fk_catalog The catalog ('qualifier' in ODBC 2 parlance) of the foreign key table.
+ * @param string $fk_schema The schema ('owner' in ODBC 2 parlance) of the foreign key table.
+ * @param string $fk_table The foreign key table.
+ * @return resource Returns an ODBC result identifier.
+ *
+ * The result set has the following columns:
+ *
+ * PKTABLE_CAT
+ * PKTABLE_SCHEM
+ * PKTABLE_NAME
+ * PKCOLUMN_NAME
+ * FKTABLE_CAT
+ * FKTABLE_SCHEM
+ * FKTABLE_NAME
+ * FKCOLUMN_NAME
+ * KEY_SEQ
+ * UPDATE_RULE
+ * DELETE_RULE
+ * FK_NAME
+ * PK_NAME
+ * DEFERRABILITY
+ *
+ * Drivers can report additional columns.
+ * @throws UodbcException
+ *
+ */
+function odbc_foreignkeys($connection_id, string $pk_catalog, string $pk_schema, string $pk_table, string $fk_catalog, string $fk_schema, string $fk_table)
+{
+ error_clear_last();
+ $result = \odbc_foreignkeys($connection_id, $pk_catalog, $pk_schema, $pk_table, $fk_catalog, $fk_schema, $fk_table);
+ if ($result === false) {
+ throw UodbcException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Retrieves information about data types supported by the data source.
+ *
+ * @param resource $connection_id The ODBC connection identifier,
+ * see odbc_connect for details.
+ * @param int $data_type The data type, which can be used to restrict the information to a
+ * single data type.
+ * @return resource Returns an ODBC result identifier.
+ *
+ * The result set has the following columns:
+ *
+ * TYPE_NAME
+ * DATA_TYPE
+ * PRECISION
+ * LITERAL_PREFIX
+ * LITERAL_SUFFIX
+ * CREATE_PARAMS
+ * NULLABLE
+ * CASE_SENSITIVE
+ * SEARCHABLE
+ * UNSIGNED_ATTRIBUTE
+ * MONEY
+ * AUTO_INCREMENT
+ * LOCAL_TYPE_NAME
+ * MINIMUM_SCALE
+ * MAXIMUM_SCALE
+ *
+ *
+ * The result set is ordered by DATA_TYPE and TYPE_NAME.
+ * @throws UodbcException
+ *
+ */
+function odbc_gettypeinfo($connection_id, int $data_type = null)
+{
+ error_clear_last();
+ if ($data_type !== null) {
+ $result = \odbc_gettypeinfo($connection_id, $data_type);
+ } else {
+ $result = \odbc_gettypeinfo($connection_id);
+ }
+ if ($result === false) {
+ throw UodbcException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Controls handling of LONG, LONGVARCHAR and LONGVARBINARY columns.
+ * The default length can be set using the
+ * uodbc.defaultlrl php.ini directive.
+ *
+ * @param resource $result_id The result identifier.
+ * @param int $length The number of bytes returned to PHP is controlled by the parameter
+ * length. If it is set to 0, long column data is passed through to the
+ * client (i.e. printed) when retrieved with odbc_result.
+ * @throws UodbcException
+ *
+ */
+function odbc_longreadlen($result_id, int $length): void
+{
+ error_clear_last();
+ $result = \odbc_longreadlen($result_id, $length);
+ if ($result === false) {
+ throw UodbcException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Prepares a statement for execution. The result identifier can be used
+ * later to execute the statement with odbc_execute.
+ *
+ * Some databases (such as IBM DB2, MS SQL Server, and Oracle) support
+ * stored procedures that accept parameters of type IN, INOUT, and OUT as
+ * defined by the ODBC specification. However, the Unified ODBC driver
+ * currently only supports parameters of type IN to stored procedures.
+ *
+ * @param resource $connection_id The ODBC connection identifier,
+ * see odbc_connect for details.
+ * @param string $query_string The query string statement being prepared.
+ * @return resource Returns an ODBC result identifier if the SQL command was prepared
+ * successfully.
+ * @throws UodbcException
+ *
+ */
+function odbc_prepare($connection_id, string $query_string)
+{
+ error_clear_last();
+ $result = \odbc_prepare($connection_id, $query_string);
+ if ($result === false) {
+ throw UodbcException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Returns a result identifier that can be used to fetch the column names
+ * that comprise the primary key for a table.
+ *
+ * @param resource $connection_id The ODBC connection identifier,
+ * see odbc_connect for details.
+ * @param string $catalog The catalog ('qualifier' in ODBC 2 parlance).
+ * @param string $schema The schema ('owner' in ODBC 2 parlance).
+ * @param string $table
+ * @return resource Returns an ODBC result identifier.
+ *
+ * The result set has the following columns:
+ *
+ * TABLE_CAT
+ * TABLE_SCHEM
+ * TABLE_NAME
+ * COLUMN_NAME
+ * KEY_SEQ
+ * PK_NAME
+ *
+ * Drivers can report additional columns.
+ * @throws UodbcException
+ *
+ */
+function odbc_primarykeys($connection_id, string $catalog, string $schema, string $table)
+{
+ error_clear_last();
+ $result = \odbc_primarykeys($connection_id, $catalog, $schema, $table);
+ if ($result === false) {
+ throw UodbcException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Prints all rows from a result identifier produced by
+ * odbc_exec. The result is printed in HTML table format.
+ * The data is not escaped.
+ *
+ * This function is not supposed to be used in production environments; it is
+ * merely meant for development purposes, to get a result set quickly rendered.
+ *
+ * @param resource $result_id The result identifier.
+ * @param string $format Additional overall table formatting.
+ * @return int Returns the number of rows in the result.
+ * @throws UodbcException
+ *
+ */
+function odbc_result_all($result_id, string $format = null): int
+{
+ error_clear_last();
+ if ($format !== null) {
+ $result = \odbc_result_all($result_id, $format);
+ } else {
+ $result = \odbc_result_all($result_id);
+ }
+ if ($result === false) {
+ throw UodbcException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Get result data
+ *
+ * @param resource $result_id The ODBC resource.
+ * @param mixed $field The field name being retrieved. It can either be an integer containing
+ * the column number of the field you want; or it can be a string
+ * containing the name of the field.
+ * @return mixed Returns the string contents of the field, FALSE on error, NULL for
+ * NULL data, or TRUE for binary data.
+ * @throws UodbcException
+ *
+ */
+function odbc_result($result_id, $field)
+{
+ error_clear_last();
+ $result = \odbc_result($result_id, $field);
+ if ($result === false) {
+ throw UodbcException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Rolls back all pending statements on the connection.
+ *
+ * @param resource $connection_id The ODBC connection identifier,
+ * see odbc_connect for details.
+ * @throws UodbcException
+ *
+ */
+function odbc_rollback($connection_id): void
+{
+ error_clear_last();
+ $result = \odbc_rollback($connection_id);
+ if ($result === false) {
+ throw UodbcException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function allows fiddling with the ODBC options for a
+ * particular connection or query result. It was written to help
+ * find work around to problems in quirky ODBC drivers. You should
+ * probably only use this function if you are an ODBC programmer and
+ * understand the effects the various options will have. You will
+ * certainly need a good ODBC reference to explain all the different
+ * options and values that can be used. Different driver versions
+ * support different options.
+ *
+ * Because the effects may vary depending on the ODBC driver, use of
+ * this function in scripts to be made publicly available is
+ * strongly discouraged. Also, some ODBC options are not available
+ * to this function because they must be set before the connection
+ * is established or the query is prepared. However, if on a
+ * particular job it can make PHP work so your boss doesn't tell you
+ * to use a commercial product, that's all that really
+ * matters.
+ *
+ * @param resource $id Is a connection id or result id on which to change the settings.
+ * For SQLSetConnectOption(), this is a connection id.
+ * For SQLSetStmtOption(), this is a result id.
+ * @param int $function Is the ODBC function to use. The value should be
+ * 1 for SQLSetConnectOption() and
+ * 2 for SQLSetStmtOption().
+ * @param int $option The option to set.
+ * @param int $param The value for the given option.
+ * @throws UodbcException
+ *
+ */
+function odbc_setoption($id, int $function, int $option, int $param): void
+{
+ error_clear_last();
+ $result = \odbc_setoption($id, $function, $option, $param);
+ if ($result === false) {
+ throw UodbcException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Retrieves either the optimal set of columns that uniquely identifies a
+ * row in the table, or columns that are automatically updated when any
+ * value in the row is updated by a transaction.
+ *
+ * @param resource $connection_id The ODBC connection identifier,
+ * see odbc_connect for details.
+ * @param int $type
+ * @param string $catalog The catalog ('qualifier' in ODBC 2 parlance).
+ * @param string $schema The schema ('owner' in ODBC 2 parlance).
+ * @param string $table The table.
+ * @param int $scope The scope, which orders the result set.
+ * One of SQL_SCOPE_CURROW, SQL_SCOPE_TRANSACTION
+ * or SQL_SCOPE_SESSION.
+ * @param int $nullable Determines whether to return special columns that can have a NULL value.
+ * One of SQL_NO_NULLS or SQL_NULLABLE .
+ * @return resource Returns an ODBC result identifier.
+ *
+ * The result set has the following columns:
+ *
+ * SCOPE
+ * COLUMN_NAME
+ * DATA_TYPE
+ * TYPE_NAME
+ * COLUMN_SIZE
+ * BUFFER_LENGTH
+ * DECIMAL_DIGITS
+ * PSEUDO_COLUMN
+ *
+ * Drivers can report additional columns.
+ * @throws UodbcException
+ *
+ */
+function odbc_specialcolumns($connection_id, int $type, string $catalog, string $schema, string $table, int $scope, int $nullable)
+{
+ error_clear_last();
+ $result = \odbc_specialcolumns($connection_id, $type, $catalog, $schema, $table, $scope, $nullable);
+ if ($result === false) {
+ throw UodbcException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Get statistics about a table and its indexes.
+ *
+ * @param resource $connection_id The ODBC connection identifier,
+ * see odbc_connect for details.
+ * @param string $catalog The catalog ('qualifier' in ODBC 2 parlance).
+ * @param string $schema The schema ('owner' in ODBC 2 parlance).
+ * @param string $table_name The table name.
+ * @param int $unique The type of the index.
+ * One of SQL_INDEX_UNIQUE or SQL_INDEX_ALL.
+ * @param int $accuracy One of SQL_ENSURE or SQL_QUICK.
+ * The latter requests that the driver retrieve the CARDINALITY and
+ * PAGES only if they are readily available from the server.
+ * @return resource Returns an ODBC result identifier.
+ *
+ * The result set has the following columns:
+ *
+ * TABLE_CAT
+ * TABLE_SCHEM
+ * TABLE_NAME
+ * NON_UNIQUE
+ * INDEX_QUALIFIER
+ * INDEX_NAME
+ * TYPE
+ * ORDINAL_POSITION
+ * COLUMN_NAME
+ * ASC_OR_DESC
+ * CARDINALITY
+ * PAGES
+ * FILTER_CONDITION
+ *
+ * Drivers can report additional columns.
+ * @throws UodbcException
+ *
+ */
+function odbc_statistics($connection_id, string $catalog, string $schema, string $table_name, int $unique, int $accuracy)
+{
+ error_clear_last();
+ $result = \odbc_statistics($connection_id, $catalog, $schema, $table_name, $unique, $accuracy);
+ if ($result === false) {
+ throw UodbcException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Lists tables in the requested range and the privileges associated
+ * with each table.
+ *
+ * @param resource $connection_id The ODBC connection identifier,
+ * see odbc_connect for details.
+ * @param string $catalog The catalog ('qualifier' in ODBC 2 parlance).
+ * @param string $schema The schema ('owner' in ODBC 2 parlance).
+ * This parameter accepts the following search patterns:
+ * % to match zero or more characters,
+ * and _ to match a single character.
+ * @param string $name The name.
+ * This parameter accepts the following search patterns:
+ * % to match zero or more characters,
+ * and _ to match a single character.
+ * @return resource An ODBC result identifier.
+ *
+ * The result set has the following columns:
+ *
+ * TABLE_CAT
+ * TABLE_SCHEM
+ * TABLE_NAME
+ * GRANTOR
+ * GRANTEE
+ * PRIVILEGE
+ * IS_GRANTABLE
+ *
+ * Drivers can report additional columns.
+ * @throws UodbcException
+ *
+ */
+function odbc_tableprivileges($connection_id, string $catalog, string $schema, string $name)
+{
+ error_clear_last();
+ $result = \odbc_tableprivileges($connection_id, $catalog, $schema, $name);
+ if ($result === false) {
+ throw UodbcException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Lists all tables in the requested range.
+ *
+ * To support enumeration of qualifiers, owners, and table types,
+ * the following special semantics for the
+ * catalog, schema,
+ * name, and
+ * table_type are available:
+ *
+ *
+ *
+ * If catalog is a single percent
+ * character (%) and schema and
+ * name are empty strings, then the result
+ * set contains a list of valid qualifiers for the data
+ * source. (All columns except the TABLE_QUALIFIER column contain
+ * NULLs.)
+ *
+ *
+ *
+ *
+ * If schema is a single percent character
+ * (%) and catalog and
+ * name are empty strings, then the result
+ * set contains a list of valid owners for the data source. (All
+ * columns except the TABLE_OWNER column contain
+ * NULLs.)
+ *
+ *
+ *
+ *
+ * If table_type is a single percent
+ * character (%) and catalog,
+ * schema and name
+ * are empty strings, then the result set contains a list of
+ * valid table types for the data source. (All columns except the
+ * TABLE_TYPE column contain NULLs.)
+ *
+ *
+ *
+ *
+ * @param resource $connection_id The ODBC connection identifier,
+ * see odbc_connect for details.
+ * @param string $catalog The catalog ('qualifier' in ODBC 2 parlance).
+ * @param string $schema The schema ('owner' in ODBC 2 parlance).
+ * This parameter accepts the following search patterns:
+ * % to match zero or more characters,
+ * and _ to match a single character.
+ * @param string $name The name.
+ * This parameter accepts the following search patterns:
+ * % to match zero or more characters,
+ * and _ to match a single character.
+ * @param string $types If table_type is not an empty string, it
+ * must contain a list of comma-separated values for the types of
+ * interest; each value may be enclosed in single quotes (') or
+ * unquoted. For example, 'TABLE','VIEW' or TABLE, VIEW. If the
+ * data source does not support a specified table type,
+ * odbc_tables does not return any results for
+ * that type.
+ * @return resource Returns an ODBC result identifier containing the information.
+ *
+ * The result set has the following columns:
+ *
+ * TABLE_CAT
+ * TABLE_SCHEM
+ * TABLE_NAME
+ * TABLE_TYPE
+ * REMARKS
+ *
+ * Drivers can report additional columns.
+ * @throws UodbcException
+ *
+ */
+function odbc_tables($connection_id, string $catalog = null, string $schema = null, string $name = null, string $types = null)
+{
+ error_clear_last();
+ if ($types !== null) {
+ $result = \odbc_tables($connection_id, $catalog, $schema, $name, $types);
+ } elseif ($name !== null) {
+ $result = \odbc_tables($connection_id, $catalog, $schema, $name);
+ } elseif ($schema !== null) {
+ $result = \odbc_tables($connection_id, $catalog, $schema);
+ } elseif ($catalog !== null) {
+ $result = \odbc_tables($connection_id, $catalog);
+ } else {
+ $result = \odbc_tables($connection_id);
+ }
+ if ($result === false) {
+ throw UodbcException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/uopz.php b/vendor/thecodingmachine/safe/generated/uopz.php
new file mode 100644
index 000000000..ae0ee8f89
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/uopz.php
@@ -0,0 +1,40 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\UopzException;
+
+/**
+ * Makes class extend parent
+ *
+ * @param string $class The name of the class to extend
+ * @param string $parent The name of the class to inherit
+ * @throws UopzException
+ *
+ */
+function uopz_extend(string $class, string $parent): void
+{
+ error_clear_last();
+ $result = \uopz_extend($class, $parent);
+ if ($result === false) {
+ throw UopzException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Makes class implement interface
+ *
+ * @param string $class
+ * @param string $interface
+ * @throws UopzException
+ *
+ */
+function uopz_implement(string $class, string $interface): void
+{
+ error_clear_last();
+ $result = \uopz_implement($class, $interface);
+ if ($result === false) {
+ throw UopzException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/url.php b/vendor/thecodingmachine/safe/generated/url.php
new file mode 100644
index 000000000..56c08b551
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/url.php
@@ -0,0 +1,144 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\UrlException;
+
+/**
+ * Decodes a base64 encoded data.
+ *
+ * @param string $data The encoded data.
+ * @param bool $strict If the strict parameter is set to TRUE
+ * then the base64_decode function will return
+ * FALSE if the input contains character from outside the base64
+ * alphabet. Otherwise invalid characters will be silently discarded.
+ * @return string Returns the decoded data. The returned data may be
+ * binary.
+ * @throws UrlException
+ *
+ */
+function base64_decode(string $data, bool $strict = false): string
+{
+ error_clear_last();
+ $result = \base64_decode($data, $strict);
+ if ($result === false) {
+ throw UrlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * get_headers returns an array with the headers sent
+ * by the server in response to a HTTP request.
+ *
+ * @param string $url The target URL.
+ * @param int $format If the optional format parameter is set to non-zero,
+ * get_headers parses the response and sets the
+ * array's keys.
+ * @param resource $context A valid context resource created with
+ * stream_context_create.
+ * @return array Returns an indexed or associative array with the headers.
+ * @throws UrlException
+ *
+ */
+function get_headers(string $url, int $format = 0, $context = null): array
+{
+ error_clear_last();
+ if ($context !== null) {
+ $result = \get_headers($url, $format, $context);
+ } else {
+ $result = \get_headers($url, $format);
+ }
+ if ($result === false) {
+ throw UrlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * This function parses a URL and returns an associative array containing any
+ * of the various components of the URL that are present.
+ * The values of the array elements are not URL decoded.
+ *
+ * This function is not meant to validate
+ * the given URL, it only breaks it up into the above listed parts. Partial
+ * URLs are also accepted, parse_url tries its best to
+ * parse them correctly.
+ *
+ * @param string $url The URL to parse. Invalid characters are replaced by
+ * _.
+ * @param int $component Specify one of PHP_URL_SCHEME,
+ * PHP_URL_HOST, PHP_URL_PORT,
+ * PHP_URL_USER, PHP_URL_PASS,
+ * PHP_URL_PATH, PHP_URL_QUERY
+ * or PHP_URL_FRAGMENT to retrieve just a specific
+ * URL component as a string (except when
+ * PHP_URL_PORT is given, in which case the return
+ * value will be an integer).
+ * @return mixed On seriously malformed URLs, parse_url.
+ *
+ * If the component parameter is omitted, an
+ * associative array is returned. At least one element will be
+ * present within the array. Potential keys within this array are:
+ *
+ *
+ *
+ * scheme - e.g. http
+ *
+ *
+ *
+ *
+ * host
+ *
+ *
+ *
+ *
+ * port
+ *
+ *
+ *
+ *
+ * user
+ *
+ *
+ *
+ *
+ * pass
+ *
+ *
+ *
+ *
+ * path
+ *
+ *
+ *
+ *
+ * query - after the question mark ?
+ *
+ *
+ *
+ *
+ * fragment - after the hashmark #
+ *
+ *
+ *
+ *
+ * If the component parameter is specified,
+ * parse_url returns a string (or an
+ * integer, in the case of PHP_URL_PORT)
+ * instead of an array. If the requested component doesn't exist
+ * within the given URL, NULL will be returned.
+ * @throws UrlException
+ *
+ */
+function parse_url(string $url, int $component = -1)
+{
+ error_clear_last();
+ $result = \parse_url($url, $component);
+ if ($result === false) {
+ throw UrlException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/var.php b/vendor/thecodingmachine/safe/generated/var.php
new file mode 100644
index 000000000..14609f22d
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/var.php
@@ -0,0 +1,60 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\VarException;
+
+/**
+ * Set the type of variable var to
+ * type.
+ *
+ * @param mixed $var The variable being converted.
+ * @param string $type Possibles values of type are:
+ *
+ *
+ *
+ * "boolean" or "bool"
+ *
+ *
+ *
+ *
+ * "integer" or "int"
+ *
+ *
+ *
+ *
+ * "float" or "double"
+ *
+ *
+ *
+ *
+ * "string"
+ *
+ *
+ *
+ *
+ * "array"
+ *
+ *
+ *
+ *
+ * "object"
+ *
+ *
+ *
+ *
+ * "null"
+ *
+ *
+ *
+ * @throws VarException
+ *
+ */
+function settype(&$var, string $type): void
+{
+ error_clear_last();
+ $result = \settype($var, $type);
+ if ($result === false) {
+ throw VarException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/xdiff.php b/vendor/thecodingmachine/safe/generated/xdiff.php
new file mode 100644
index 000000000..27feef39f
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/xdiff.php
@@ -0,0 +1,236 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\XdiffException;
+
+/**
+ * Makes a binary diff of two files and stores the result in a patch file.
+ * This function works with both text and binary files. Resulting patch
+ * file can be later applied using xdiff_file_bpatch/xdiff_string_bpatch.
+ *
+ * @param string $old_file Path to the first file. This file acts as "old" file.
+ * @param string $new_file Path to the second file. This file acts as "new" file.
+ * @param string $dest Path of the resulting patch file. Resulting file contains differences
+ * between "old" and "new" files. It is in binary format and is human-unreadable.
+ * @throws XdiffException
+ *
+ */
+function xdiff_file_bdiff(string $old_file, string $new_file, string $dest): void
+{
+ error_clear_last();
+ $result = \xdiff_file_bdiff($old_file, $new_file, $dest);
+ if ($result === false) {
+ throw XdiffException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Patches a file with a binary
+ * patch and stores the result in a file dest.
+ * This function accepts patches created both via xdiff_file_bdiff
+ * and xdiff_file_rabdiff functions or their string counterparts.
+ *
+ * @param string $file The original file.
+ * @param string $patch The binary patch file.
+ * @param string $dest Path of the resulting file.
+ * @throws XdiffException
+ *
+ */
+function xdiff_file_bpatch(string $file, string $patch, string $dest): void
+{
+ error_clear_last();
+ $result = \xdiff_file_bpatch($file, $patch, $dest);
+ if ($result === false) {
+ throw XdiffException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Makes a binary diff of two files and stores the result in a patch file.
+ * This function works with both text and binary files. Resulting patch
+ * file can be later applied using xdiff_file_bpatch.
+ *
+ * Starting with version 1.5.0 this function is an alias of xdiff_file_bdiff.
+ *
+ * @param string $old_file Path to the first file. This file acts as "old" file.
+ * @param string $new_file Path to the second file. This file acts as "new" file.
+ * @param string $dest Path of the resulting patch file. Resulting file contains differences
+ * between "old" and "new" files. It is in binary format and is human-unreadable.
+ * @throws XdiffException
+ *
+ */
+function xdiff_file_diff_binary(string $old_file, string $new_file, string $dest): void
+{
+ error_clear_last();
+ $result = \xdiff_file_diff_binary($old_file, $new_file, $dest);
+ if ($result === false) {
+ throw XdiffException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Makes an unified diff containing differences between old_file and
+ * new_file and stores it in dest file. The
+ * resulting file is human-readable. An optional context parameter
+ * specifies how many lines of context should be added around each change.
+ * Setting minimal parameter to true will result in outputting the shortest
+ * patch file possible (can take a long time).
+ *
+ * @param string $old_file Path to the first file. This file acts as "old" file.
+ * @param string $new_file Path to the second file. This file acts as "new" file.
+ * @param string $dest Path of the resulting patch file.
+ * @param int $context Indicates how many lines of context you want to include in diff
+ * result.
+ * @param bool $minimal Set this parameter to TRUE if you want to minimalize size of the result
+ * (can take a long time).
+ * @throws XdiffException
+ *
+ */
+function xdiff_file_diff(string $old_file, string $new_file, string $dest, int $context = 3, bool $minimal = false): void
+{
+ error_clear_last();
+ $result = \xdiff_file_diff($old_file, $new_file, $dest, $context, $minimal);
+ if ($result === false) {
+ throw XdiffException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Patches a file with a binary
+ * patch and stores the result in a file dest.
+ * This function accepts patches created both via xdiff_file_bdiff
+ * or xdiff_file_rabdiff functions or their string counterparts.
+ *
+ * Starting with version 1.5.0 this function is an alias of xdiff_file_bpatch.
+ *
+ * @param string $file The original file.
+ * @param string $patch The binary patch file.
+ * @param string $dest Path of the resulting file.
+ * @throws XdiffException
+ *
+ */
+function xdiff_file_patch_binary(string $file, string $patch, string $dest): void
+{
+ error_clear_last();
+ $result = \xdiff_file_patch_binary($file, $patch, $dest);
+ if ($result === false) {
+ throw XdiffException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Makes a binary diff of two files and stores the result in a patch file.
+ * The difference between this function and xdiff_file_bdiff is different
+ * algorithm used which should result in faster execution and smaller diff produced.
+ * This function works with both text and binary files. Resulting patch
+ * file can be later applied using xdiff_file_bpatch/xdiff_string_bpatch.
+ *
+ * For more details about differences between algorithm used please check libxdiff
+ * website.
+ *
+ * @param string $old_file Path to the first file. This file acts as "old" file.
+ * @param string $new_file Path to the second file. This file acts as "new" file.
+ * @param string $dest Path of the resulting patch file. Resulting file contains differences
+ * between "old" and "new" files. It is in binary format and is human-unreadable.
+ * @throws XdiffException
+ *
+ */
+function xdiff_file_rabdiff(string $old_file, string $new_file, string $dest): void
+{
+ error_clear_last();
+ $result = \xdiff_file_rabdiff($old_file, $new_file, $dest);
+ if ($result === false) {
+ throw XdiffException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Patches a string str with a binary patch.
+ * This function accepts patches created both via xdiff_string_bdiff
+ * and xdiff_string_rabdiff functions or their file counterparts.
+ *
+ * @param string $str The original binary string.
+ * @param string $patch The binary patch string.
+ * @return string Returns the patched string.
+ * @throws XdiffException
+ *
+ */
+function xdiff_string_bpatch(string $str, string $patch): string
+{
+ error_clear_last();
+ $result = \xdiff_string_bpatch($str, $patch);
+ if ($result === false) {
+ throw XdiffException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Patches a string str with a binary patch.
+ * This function accepts patches created both via xdiff_string_bdiff
+ * and xdiff_string_rabdiff functions or their file counterparts.
+ *
+ * Starting with version 1.5.0 this function is an alias of xdiff_string_bpatch.
+ *
+ * @param string $str The original binary string.
+ * @param string $patch The binary patch string.
+ * @return string Returns the patched string.
+ * @throws XdiffException
+ *
+ */
+function xdiff_string_patch_binary(string $str, string $patch): string
+{
+ error_clear_last();
+ $result = \xdiff_string_patch_binary($str, $patch);
+ if ($result === false) {
+ throw XdiffException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Patches a str string with an unified patch in patch parameter
+ * and returns the result. patch has to be an unified diff created by
+ * xdiff_file_diff/xdiff_string_diff function.
+ * An optional flags parameter specifies mode of operation. Any
+ * rejected parts of the patch will be stored inside error variable if
+ * it is provided.
+ *
+ * @param string $str The original string.
+ * @param string $patch The unified patch string. It has to be created using xdiff_string_diff,
+ * xdiff_file_diff functions or compatible tools.
+ * @param int $flags flags can be either
+ * XDIFF_PATCH_NORMAL (default mode, normal patch)
+ * or XDIFF_PATCH_REVERSE (reversed patch).
+ *
+ * Starting from version 1.5.0, you can also use binary OR to enable
+ * XDIFF_PATCH_IGNORESPACE flag.
+ * @param string|null $error If provided then rejected parts are stored inside this variable.
+ * @return string Returns the patched string.
+ * @throws XdiffException
+ *
+ */
+function xdiff_string_patch(string $str, string $patch, int $flags = null, ?string &$error = null): string
+{
+ error_clear_last();
+ if ($error !== null) {
+ $result = \xdiff_string_patch($str, $patch, $flags, $error);
+ } elseif ($flags !== null) {
+ $result = \xdiff_string_patch($str, $patch, $flags);
+ } else {
+ $result = \xdiff_string_patch($str, $patch);
+ }
+ if ($result === false) {
+ throw XdiffException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/xml.php b/vendor/thecodingmachine/safe/generated/xml.php
new file mode 100644
index 000000000..4f9f6606c
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/xml.php
@@ -0,0 +1,95 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\XmlException;
+
+/**
+ * xml_parser_create_ns creates a new XML parser
+ * with XML namespace support and returns a resource handle referencing
+ * it to be used by the other XML functions.
+ *
+ * @param string $encoding The input encoding is automatically detected, so that the
+ * encoding parameter specifies only the output
+ * encoding. In PHP 5.0.0 and 5.0.1, the default output charset is
+ * ISO-8859-1, while in PHP 5.0.2 and upper is UTF-8. The supported
+ * encodings are ISO-8859-1, UTF-8 and
+ * US-ASCII.
+ * @param string $separator With a namespace aware parser tag parameters passed to the various
+ * handler functions will consist of namespace and tag name separated by
+ * the string specified in separator.
+ * @return resource Returns a resource handle for the new XML parser.
+ * @throws XmlException
+ *
+ */
+function xml_parser_create_ns(string $encoding = null, string $separator = ":")
+{
+ error_clear_last();
+ if ($separator !== ":") {
+ $result = \xml_parser_create_ns($encoding, $separator);
+ } elseif ($encoding !== null) {
+ $result = \xml_parser_create_ns($encoding);
+ } else {
+ $result = \xml_parser_create_ns();
+ }
+ if ($result === false) {
+ throw XmlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * xml_parser_create creates a new XML parser
+ * and returns a resource handle referencing it to be used by the
+ * other XML functions.
+ *
+ * @param string $encoding The optional encoding specifies the character
+ * encoding for the input/output in PHP 4. Starting from PHP 5, the input
+ * encoding is automatically detected, so that the
+ * encoding parameter specifies only the output
+ * encoding. In PHP 4, the default output encoding is the same as the
+ * input charset. If empty string is passed, the parser attempts to identify
+ * which encoding the document is encoded in by looking at the heading 3 or
+ * 4 bytes. In PHP 5.0.0 and 5.0.1, the default output charset is
+ * ISO-8859-1, while in PHP 5.0.2 and upper is UTF-8. The supported
+ * encodings are ISO-8859-1, UTF-8 and
+ * US-ASCII.
+ * @return resource Returns a resource handle for the new XML parser.
+ * @throws XmlException
+ *
+ */
+function xml_parser_create(string $encoding = null)
+{
+ error_clear_last();
+ if ($encoding !== null) {
+ $result = \xml_parser_create($encoding);
+ } else {
+ $result = \xml_parser_create();
+ }
+ if ($result === false) {
+ throw XmlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * This function allows to use parser inside
+ * object. All callback functions could be set with
+ * xml_set_element_handler etc and assumed to be
+ * methods of object.
+ *
+ * @param resource $parser A reference to the XML parser to use inside the object.
+ * @param object $object The object where to use the XML parser.
+ * @throws XmlException
+ *
+ */
+function xml_set_object($parser, object &$object): void
+{
+ error_clear_last();
+ $result = \xml_set_object($parser, $object);
+ if ($result === false) {
+ throw XmlException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/xmlrpc.php b/vendor/thecodingmachine/safe/generated/xmlrpc.php
new file mode 100644
index 000000000..15364fb4a
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/xmlrpc.php
@@ -0,0 +1,22 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\XmlrpcException;
+
+/**
+ * Sets xmlrpc type, base64 or datetime, for a PHP string value.
+ *
+ * @param string|\DateTime $value Value to set the type
+ * @param string $type 'base64' or 'datetime'
+ * @throws XmlrpcException
+ *
+ */
+function xmlrpc_set_type(&$value, string $type): void
+{
+ error_clear_last();
+ $result = \xmlrpc_set_type($value, $type);
+ if ($result === false) {
+ throw XmlrpcException::createFromPhpError();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/generated/yaml.php b/vendor/thecodingmachine/safe/generated/yaml.php
new file mode 100644
index 000000000..38daaf759
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/yaml.php
@@ -0,0 +1,97 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\YamlException;
+
+/**
+ * Convert all or part of a YAML document stream read from a file to a PHP variable.
+ *
+ * @param string $filename Path to the file.
+ * @param int $pos Document to extract from stream (-1 for all
+ * documents, 0 for first document, ...).
+ * @param int|null $ndocs If ndocs is provided, then it is filled with the
+ * number of documents found in stream.
+ * @param array $callbacks Content handlers for YAML nodes. Associative array of YAML
+ * tag =&gt; callable mappings. See
+ * parse callbacks for more
+ * details.
+ * @return mixed Returns the value encoded in input in appropriate
+ * PHP type. If pos is -1 an
+ * array will be returned with one entry for each document found
+ * in the stream.
+ * @throws YamlException
+ *
+ */
+function yaml_parse_file(string $filename, int $pos = 0, ?int &$ndocs = null, array $callbacks = null)
+{
+ error_clear_last();
+ $result = \yaml_parse_file($filename, $pos, $ndocs, $callbacks);
+ if ($result === false) {
+ throw YamlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Convert all or part of a YAML document stream read from a URL to a PHP variable.
+ *
+ * @param string $url url should be of the form "scheme://...". PHP
+ * will search for a protocol handler (also known as a wrapper) for that
+ * scheme. If no wrappers for that protocol are registered, PHP will emit
+ * a notice to help you track potential problems in your script and then
+ * continue as though filename specifies a regular file.
+ * @param int $pos Document to extract from stream (-1 for all
+ * documents, 0 for first document, ...).
+ * @param int|null $ndocs If ndocs is provided, then it is filled with the
+ * number of documents found in stream.
+ * @param array $callbacks Content handlers for YAML nodes. Associative array of YAML
+ * tag =&gt; callable mappings. See
+ * parse callbacks for more
+ * @return mixed Returns the value encoded in input in appropriate
+ * PHP type. If pos is
+ * -1 an array will be returned with one entry
+ * for each document found in the stream.
+ * @throws YamlException
+ *
+ */
+function yaml_parse_url(string $url, int $pos = 0, ?int &$ndocs = null, array $callbacks = null)
+{
+ error_clear_last();
+ $result = \yaml_parse_url($url, $pos, $ndocs, $callbacks);
+ if ($result === false) {
+ throw YamlException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Convert all or part of a YAML document stream to a PHP variable.
+ *
+ * @param string $input The string to parse as a YAML document stream.
+ * @param int $pos Document to extract from stream (-1 for all
+ * documents, 0 for first document, ...).
+ * @param int|null $ndocs If ndocs is provided, then it is filled with the
+ * number of documents found in stream.
+ * @param array $callbacks Content handlers for YAML nodes. Associative array of YAML
+ * tag =&gt; callable mappings. See
+ * parse callbacks for more
+ * details.
+ * @return mixed Returns the value encoded in input in appropriate
+ * PHP type. If pos is -1 an
+ * array will be returned with one entry for each document found
+ * in the stream.
+ * @throws YamlException
+ *
+ */
+function yaml_parse(string $input, int $pos = 0, ?int &$ndocs = null, array $callbacks = null)
+{
+ error_clear_last();
+ $result = \yaml_parse($input, $pos, $ndocs, $callbacks);
+ if ($result === false) {
+ throw YamlException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/yaz.php b/vendor/thecodingmachine/safe/generated/yaz.php
new file mode 100644
index 000000000..29c1d33c4
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/yaz.php
@@ -0,0 +1,438 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\YazException;
+
+/**
+ * This function invokes a CCL parser. It converts a given CCL FIND query to
+ * an RPN query which may be passed to the yaz_search
+ * function to perform a search.
+ *
+ * To define a set of valid CCL fields call yaz_ccl_conf
+ * prior to this function.
+ *
+ * @param resource $id The connection resource returned by yaz_connect.
+ * @param string $query The CCL FIND query.
+ * @param array|null $result If the function was executed successfully, this will be an array
+ * containing the valid RPN query under the key rpn.
+ *
+ * Upon failure, three indexes are set in this array to indicate the cause
+ * of failure:
+ *
+ *
+ *
+ * errorcode - the CCL error code (integer)
+ *
+ *
+ *
+ *
+ * errorstring - the CCL error string
+ *
+ *
+ *
+ *
+ * errorpos - approximate position in query of failure
+ * (integer is character position)
+ *
+ *
+ *
+ *
+ * errorcode - the CCL error code (integer)
+ *
+ * errorstring - the CCL error string
+ *
+ * errorpos - approximate position in query of failure
+ * (integer is character position)
+ * @throws YazException
+ *
+ */
+function yaz_ccl_parse($id, string $query, ?array &$result): void
+{
+ error_clear_last();
+ $result = \yaz_ccl_parse($id, $query, $result);
+ if ($result === false) {
+ throw YazException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Closes the connection given by parameter id.
+ *
+ * @param resource $id The connection resource returned by yaz_connect.
+ * @throws YazException
+ *
+ */
+function yaz_close($id): void
+{
+ error_clear_last();
+ $result = \yaz_close($id);
+ if ($result === false) {
+ throw YazException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function returns a connection resource on success, zero on
+ * failure.
+ *
+ * yaz_connect prepares for a connection to a
+ * Z39.50 server.
+ * This function is non-blocking and does not attempt to establish
+ * a connection - it merely prepares a connect to be performed later when
+ * yaz_wait is called.
+ *
+ * @param string $zurl A string that takes the form host[:port][/database].
+ * If port is omitted, port 210 is used. If database is omitted
+ * Default is used.
+ * @param mixed $options If given as a string, it is treated as the Z39.50 V2 authentication
+ * string (OpenAuth).
+ *
+ * If given as an array, the contents of the array serves as options.
+ *
+ *
+ * user
+ *
+ *
+ * Username for authentication.
+ *
+ *
+ *
+ *
+ * group
+ *
+ *
+ * Group for authentication.
+ *
+ *
+ *
+ *
+ * password
+ *
+ *
+ * Password for authentication.
+ *
+ *
+ *
+ *
+ * cookie
+ *
+ *
+ * Cookie for session (YAZ proxy).
+ *
+ *
+ *
+ *
+ * proxy
+ *
+ *
+ * Proxy for connection (YAZ proxy).
+ *
+ *
+ *
+ *
+ * persistent
+ *
+ *
+ * A boolean. If TRUE the connection is persistent; If FALSE the
+ * connection is not persistent. By default connections are persistent.
+ *
+ *
+ *
+ * If you open a persistent connection, you won't be able to close
+ * it later with yaz_close.
+ *
+ *
+ *
+ *
+ *
+ * piggyback
+ *
+ *
+ * A boolean. If TRUE piggyback is enabled for searches; If FALSE
+ * piggyback is disabled. By default piggyback is enabled.
+ *
+ *
+ * Enabling piggyback is more efficient and usually saves a
+ * network-round-trip for first time fetches of records. However, a
+ * few Z39.50 servers do not support piggyback or they ignore element
+ * set names. For those, piggyback should be disabled.
+ *
+ *
+ *
+ *
+ * charset
+ *
+ *
+ * A string that specifies character set to be used in Z39.50
+ * language and character set negotiation. Use strings such as:
+ * ISO-8859-1, UTF-8,
+ * UTF-16.
+ *
+ *
+ * Most Z39.50 servers do not support this feature (and thus, this is
+ * ignored). Many servers use the ISO-8859-1 encoding for queries and
+ * messages. MARC21/USMARC records are not affected by this setting.
+ *
+ *
+ *
+ *
+ *
+ * preferredMessageSize
+ *
+ *
+ * An integer that specifies the maximum byte size of all records
+ * to be returned by a target during retrieval. See the
+ * Z39.50 standard for more
+ * information.
+ *
+ *
+ *
+ * This option is supported in PECL YAZ 1.0.5 or later.
+ *
+ *
+ *
+ *
+ *
+ *
+ * maximumRecordSize
+ *
+ *
+ * An integer that specifies the maximum byte size of a single record
+ * to be returned by a target during retrieval. This
+ * entity is referred to as Exceptional-record-size in the
+ * Z39.50 standard.
+ *
+ *
+ *
+ * This option is supported in PECL YAZ 1.0.5 or later.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * Username for authentication.
+ *
+ * Group for authentication.
+ *
+ * Password for authentication.
+ *
+ * Cookie for session (YAZ proxy).
+ *
+ * Proxy for connection (YAZ proxy).
+ *
+ * A boolean. If TRUE the connection is persistent; If FALSE the
+ * connection is not persistent. By default connections are persistent.
+ *
+ * If you open a persistent connection, you won't be able to close
+ * it later with yaz_close.
+ *
+ * A boolean. If TRUE piggyback is enabled for searches; If FALSE
+ * piggyback is disabled. By default piggyback is enabled.
+ *
+ * Enabling piggyback is more efficient and usually saves a
+ * network-round-trip for first time fetches of records. However, a
+ * few Z39.50 servers do not support piggyback or they ignore element
+ * set names. For those, piggyback should be disabled.
+ *
+ * A string that specifies character set to be used in Z39.50
+ * language and character set negotiation. Use strings such as:
+ * ISO-8859-1, UTF-8,
+ * UTF-16.
+ *
+ * Most Z39.50 servers do not support this feature (and thus, this is
+ * ignored). Many servers use the ISO-8859-1 encoding for queries and
+ * messages. MARC21/USMARC records are not affected by this setting.
+ *
+ * An integer that specifies the maximum byte size of all records
+ * to be returned by a target during retrieval. See the
+ * Z39.50 standard for more
+ * information.
+ *
+ * This option is supported in PECL YAZ 1.0.5 or later.
+ *
+ * An integer that specifies the maximum byte size of a single record
+ * to be returned by a target during retrieval. This
+ * entity is referred to as Exceptional-record-size in the
+ * Z39.50 standard.
+ *
+ * This option is supported in PECL YAZ 1.0.5 or later.
+ * @return mixed A connection resource on success, FALSE on error.
+ * @throws YazException
+ *
+ */
+function yaz_connect(string $zurl, $options = null)
+{
+ error_clear_last();
+ if ($options !== null) {
+ $result = \yaz_connect($zurl, $options);
+ } else {
+ $result = \yaz_connect($zurl);
+ }
+ if ($result === false) {
+ throw YazException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * This function allows you to change databases within a session by
+ * specifying one or more databases to be used in search, retrieval, etc.
+ * - overriding databases specified in call to
+ * yaz_connect.
+ *
+ * @param resource $id The connection resource returned by yaz_connect.
+ * @param string $databases A string containing one or more databases. Multiple databases are
+ * separated by a plus sign +.
+ * @throws YazException
+ *
+ */
+function yaz_database($id, string $databases): void
+{
+ error_clear_last();
+ $result = \yaz_database($id, $databases);
+ if ($result === false) {
+ throw YazException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function sets the element set name for retrieval.
+ *
+ * Call this function before yaz_search or
+ * yaz_present to specify the element set name for
+ * records to be retrieved.
+ *
+ * @param resource $id The connection resource returned by yaz_connect.
+ * @param string $elementset Most servers support F (for full records) and
+ * B (for brief records).
+ * @throws YazException
+ *
+ */
+function yaz_element($id, string $elementset): void
+{
+ error_clear_last();
+ $result = \yaz_element($id, $elementset);
+ if ($result === false) {
+ throw YazException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function prepares for retrieval of records after a successful search.
+ *
+ * The yaz_range function should be called prior to this
+ * function to specify the range of records to be retrieved.
+ *
+ * @param resource $id The connection resource returned by yaz_connect.
+ * @throws YazException
+ *
+ */
+function yaz_present($id): void
+{
+ error_clear_last();
+ $result = \yaz_present($id);
+ if ($result === false) {
+ throw YazException::createFromPhpError();
+ }
+}
+
+
+/**
+ * yaz_search prepares for a search on the given
+ * connection.
+ *
+ * Like yaz_connect this function is non-blocking and
+ * only prepares for a search to be executed later when
+ * yaz_wait is called.
+ *
+ * @param resource $id The connection resource returned by yaz_connect.
+ * @param string $type This parameter represents the query type - only "rpn"
+ * is supported now in which case the third argument specifies a Type-1
+ * query in prefix query notation.
+ * @param string $query The RPN query is a textual representation of the Type-1 query as
+ * defined by the Z39.50 standard. However, in the text representation
+ * as used by YAZ a prefix notation is used, that is the operator
+ * precedes the operands. The query string is a sequence of tokens where
+ * white space is ignored unless surrounded by double quotes. Tokens beginning
+ * with an at-character (@) are considered operators,
+ * otherwise they are treated as search terms.
+ *
+ * You can find information about attributes at the
+ * Z39.50 Maintenance Agency
+ * site.
+ *
+ * If you would like to use a more friendly notation,
+ * use the CCL parser - functions yaz_ccl_conf and
+ * yaz_ccl_parse.
+ * @throws YazException
+ *
+ */
+function yaz_search($id, string $type, string $query): void
+{
+ error_clear_last();
+ $result = \yaz_search($id, $type, $query);
+ if ($result === false) {
+ throw YazException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function carries out networked (blocked) activity for outstanding
+ * requests which have been prepared by the functions
+ * yaz_connect, yaz_search,
+ * yaz_present, yaz_scan and
+ * yaz_itemorder.
+ *
+ * yaz_wait returns when all servers have either
+ * completed all requests or aborted (in case of errors).
+ *
+ * @param array $options An associative array of options:
+ *
+ *
+ * timeout
+ *
+ *
+ * Sets timeout in seconds. If a server has not responded within the
+ * timeout it is considered dead and yaz_wait
+ * returns. The default value for timeout is 15 seconds.
+ *
+ *
+ *
+ *
+ * event
+ *
+ *
+ * A boolean.
+ *
+ *
+ *
+ *
+ *
+ * Sets timeout in seconds. If a server has not responded within the
+ * timeout it is considered dead and yaz_wait
+ * returns. The default value for timeout is 15 seconds.
+ *
+ * A boolean.
+ * @return mixed Returns TRUE on success.
+ * In event mode, returns resource.
+ * @throws YazException
+ *
+ */
+function yaz_wait(array &$options = null)
+{
+ error_clear_last();
+ $result = \yaz_wait($options);
+ if ($result === false) {
+ throw YazException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/zip.php b/vendor/thecodingmachine/safe/generated/zip.php
new file mode 100644
index 000000000..8fd22bb9a
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/zip.php
@@ -0,0 +1,71 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\ZipException;
+
+/**
+ * Closes the specified directory entry.
+ *
+ * @param resource $zip_entry A directory entry previously opened zip_entry_open.
+ * @throws ZipException
+ *
+ */
+function zip_entry_close($zip_entry): void
+{
+ error_clear_last();
+ $result = \zip_entry_close($zip_entry);
+ if ($result === false) {
+ throw ZipException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Opens a directory entry in a zip file for reading.
+ *
+ * @param resource $zip A valid resource handle returned by zip_open.
+ * @param resource $zip_entry A directory entry returned by zip_read.
+ * @param string $mode Any of the modes specified in the documentation of
+ * fopen.
+ *
+ * Currently, mode is ignored and is always
+ * "rb". This is due to the fact that zip support
+ * in PHP is read only access.
+ * @throws ZipException
+ *
+ */
+function zip_entry_open($zip, $zip_entry, string $mode = null): void
+{
+ error_clear_last();
+ if ($mode !== null) {
+ $result = \zip_entry_open($zip, $zip_entry, $mode);
+ } else {
+ $result = \zip_entry_open($zip, $zip_entry);
+ }
+ if ($result === false) {
+ throw ZipException::createFromPhpError();
+ }
+}
+
+
+/**
+ * Reads from an open directory entry.
+ *
+ * @param resource $zip_entry A directory entry returned by zip_read.
+ * @param int $length The number of bytes to return.
+ *
+ * This should be the uncompressed length you wish to read.
+ * @return string Returns the data read, empty string on end of a file.
+ * @throws ZipException
+ *
+ */
+function zip_entry_read($zip_entry, int $length = 1024): string
+{
+ error_clear_last();
+ $result = \zip_entry_read($zip_entry, $length);
+ if ($result === false) {
+ throw ZipException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/generated/zlib.php b/vendor/thecodingmachine/safe/generated/zlib.php
new file mode 100644
index 000000000..4dc3ca94f
--- /dev/null
+++ b/vendor/thecodingmachine/safe/generated/zlib.php
@@ -0,0 +1,611 @@
+<?php
+
+namespace Safe;
+
+use Safe\Exceptions\ZlibException;
+
+/**
+ * Incrementally deflates data in the specified context.
+ *
+ * @param resource $context A context created with deflate_init.
+ * @param string $data A chunk of data to compress.
+ * @param int $flush_mode One of ZLIB_BLOCK,
+ * ZLIB_NO_FLUSH,
+ * ZLIB_PARTIAL_FLUSH,
+ * ZLIB_SYNC_FLUSH (default),
+ * ZLIB_FULL_FLUSH, ZLIB_FINISH.
+ * Normally you will want to set ZLIB_NO_FLUSH to
+ * maximize compression, and ZLIB_FINISH to terminate
+ * with the last chunk of data. See the zlib manual for a
+ * detailed description of these constants.
+ * @return string Returns a chunk of compressed data.
+ * @throws ZlibException
+ *
+ */
+function deflate_add($context, string $data, int $flush_mode = ZLIB_SYNC_FLUSH): string
+{
+ error_clear_last();
+ $result = \deflate_add($context, $data, $flush_mode);
+ if ($result === false) {
+ throw ZlibException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Initializes an incremental deflate context using the specified
+ * encoding.
+ *
+ * Note that the window option here only sets the window size
+ * of the algorithm, differently from the zlib filters where the same parameter
+ * also sets the encoding to use; the encoding must be set with the
+ * encoding parameter.
+ *
+ * Limitation: there is currently no way to set the header information on a GZIP
+ * compressed stream, which are set as follows: GZIP signature
+ * (\x1f\x8B); compression method (\x08
+ * == DEFLATE); 6 zero bytes; the operating system set to the current system
+ * (\x00 = Windows, \x03 = Unix, etc.)
+ *
+ * @param int $encoding One of the ZLIB_ENCODING_* constants.
+ * @param array $options An associative array which may contain the following elements:
+ *
+ *
+ * level
+ *
+ *
+ * The compression level in range -1..9; defaults to -1.
+ *
+ *
+ *
+ *
+ * memory
+ *
+ *
+ * The compression memory level in range 1..9; defaults to 8.
+ *
+ *
+ *
+ *
+ * window
+ *
+ *
+ * The zlib window size (logarithmic) in range 8..15; defaults to 15.
+ *
+ *
+ *
+ *
+ * strategy
+ *
+ *
+ * One of ZLIB_FILTERED,
+ * ZLIB_HUFFMAN_ONLY, ZLIB_RLE,
+ * ZLIB_FIXED or
+ * ZLIB_DEFAULT_STRATEGY (the default).
+ *
+ *
+ *
+ *
+ * dictionary
+ *
+ *
+ * A string or an array of strings
+ * of the preset dictionary (default: no preset dictionary).
+ *
+ *
+ *
+ *
+ *
+ * The compression level in range -1..9; defaults to -1.
+ *
+ * The compression memory level in range 1..9; defaults to 8.
+ *
+ * The zlib window size (logarithmic) in range 8..15; defaults to 15.
+ *
+ * One of ZLIB_FILTERED,
+ * ZLIB_HUFFMAN_ONLY, ZLIB_RLE,
+ * ZLIB_FIXED or
+ * ZLIB_DEFAULT_STRATEGY (the default).
+ *
+ * A string or an array of strings
+ * of the preset dictionary (default: no preset dictionary).
+ * @return resource Returns a deflate context resource (zlib.deflate) on
+ * success.
+ * @throws ZlibException
+ *
+ */
+function deflate_init(int $encoding, array $options = null)
+{
+ error_clear_last();
+ $result = \deflate_init($encoding, $options);
+ if ($result === false) {
+ throw ZlibException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Closes the given gz-file pointer.
+ *
+ * @param resource $zp The gz-file pointer. It must be valid, and must point to a file
+ * successfully opened by gzopen.
+ * @throws ZlibException
+ *
+ */
+function gzclose($zp): void
+{
+ error_clear_last();
+ $result = \gzclose($zp);
+ if ($result === false) {
+ throw ZlibException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function compresses the given string using the ZLIB
+ * data format.
+ *
+ * For details on the ZLIB compression algorithm see the document
+ * "ZLIB Compressed Data Format
+ * Specification version 3.3" (RFC 1950).
+ *
+ * @param string $data The data to compress.
+ * @param int $level The level of compression. Can be given as 0 for no compression up to 9
+ * for maximum compression.
+ *
+ * If -1 is used, the default compression of the zlib library is used which is 6.
+ * @param int $encoding One of ZLIB_ENCODING_* constants.
+ * @return string The compressed string.
+ * @throws ZlibException
+ *
+ */
+function gzcompress(string $data, int $level = -1, int $encoding = ZLIB_ENCODING_DEFLATE): string
+{
+ error_clear_last();
+ $result = \gzcompress($data, $level, $encoding);
+ if ($result === false) {
+ throw ZlibException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * This function returns a decoded version of the input
+ * data.
+ *
+ * @param string $data The data to decode, encoded by gzencode.
+ * @param int $length The maximum length of data to decode.
+ * @return string The decoded string.
+ * @throws ZlibException
+ *
+ */
+function gzdecode(string $data, int $length = null): string
+{
+ error_clear_last();
+ if ($length !== null) {
+ $result = \gzdecode($data, $length);
+ } else {
+ $result = \gzdecode($data);
+ }
+ if ($result === false) {
+ throw ZlibException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * This function compresses the given string using the DEFLATE
+ * data format.
+ *
+ * For details on the DEFLATE compression algorithm see the document
+ * "DEFLATE Compressed Data Format
+ * Specification version 1.3" (RFC 1951).
+ *
+ * @param string $data The data to deflate.
+ * @param int $level The level of compression. Can be given as 0 for no compression up to 9
+ * for maximum compression. If not given, the default compression level will
+ * be the default compression level of the zlib library.
+ * @param int $encoding One of ZLIB_ENCODING_* constants.
+ * @return string The deflated string.
+ * @throws ZlibException
+ *
+ */
+function gzdeflate(string $data, int $level = -1, int $encoding = ZLIB_ENCODING_RAW): string
+{
+ error_clear_last();
+ $result = \gzdeflate($data, $level, $encoding);
+ if ($result === false) {
+ throw ZlibException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * This function returns a compressed version of the input
+ * data compatible with the output of the
+ * gzip program.
+ *
+ * For more information on the GZIP file format, see the document:
+ * GZIP file format specification
+ * version 4.3 (RFC 1952).
+ *
+ * @param string $data The data to encode.
+ * @param int $level The level of compression. Can be given as 0 for no compression up to 9
+ * for maximum compression. If not given, the default compression level will
+ * be the default compression level of the zlib library.
+ * @param int $encoding_mode The encoding mode. Can be FORCE_GZIP (the default)
+ * or FORCE_DEFLATE.
+ *
+ * Prior to PHP 5.4.0, using FORCE_DEFLATE results in
+ * a standard zlib deflated string (inclusive zlib headers) after a gzip
+ * file header but without the trailing crc32 checksum.
+ *
+ * In PHP 5.4.0 and later, FORCE_DEFLATE generates
+ * RFC 1950 compliant output, consisting of a zlib header, the deflated
+ * data, and an Adler checksum.
+ * @return string The encoded string.
+ * @throws ZlibException
+ *
+ */
+function gzencode(string $data, int $level = -1, int $encoding_mode = FORCE_GZIP): string
+{
+ error_clear_last();
+ $result = \gzencode($data, $level, $encoding_mode);
+ if ($result === false) {
+ throw ZlibException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Gets a (uncompressed) string of up to length - 1 bytes read from the given
+ * file pointer. Reading ends when length - 1 bytes have been read, on a
+ * newline, or on EOF (whichever comes first).
+ *
+ * @param resource $zp The gz-file pointer. It must be valid, and must point to a file
+ * successfully opened by gzopen.
+ * @param int $length The length of data to get.
+ * @return string The uncompressed string.
+ * @throws ZlibException
+ *
+ */
+function gzgets($zp, int $length = null): string
+{
+ error_clear_last();
+ if ($length !== null) {
+ $result = \gzgets($zp, $length);
+ } else {
+ $result = \gzgets($zp);
+ }
+ if ($result === false) {
+ throw ZlibException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Identical to gzgets, except that
+ * gzgetss attempts to strip any HTML and PHP
+ * tags from the text it reads.
+ *
+ * @param resource $zp The gz-file pointer. It must be valid, and must point to a file
+ * successfully opened by gzopen.
+ * @param int $length The length of data to get.
+ * @param string $allowable_tags You can use this optional parameter to specify tags which should not
+ * be stripped.
+ * @return string The uncompressed and stripped string.
+ * @throws ZlibException
+ *
+ */
+function gzgetss($zp, int $length, string $allowable_tags = null): string
+{
+ error_clear_last();
+ if ($allowable_tags !== null) {
+ $result = \gzgetss($zp, $length, $allowable_tags);
+ } else {
+ $result = \gzgetss($zp, $length);
+ }
+ if ($result === false) {
+ throw ZlibException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * This function inflates a deflated string.
+ *
+ * @param string $data The data compressed by gzdeflate.
+ * @param int $length The maximum length of data to decode.
+ * @return string The original uncompressed data.
+ *
+ * The function will return an error if the uncompressed data is more than
+ * 32768 times the length of the compressed input data
+ * or more than the optional parameter length.
+ * @throws ZlibException
+ *
+ */
+function gzinflate(string $data, int $length = 0): string
+{
+ error_clear_last();
+ $result = \gzinflate($data, $length);
+ if ($result === false) {
+ throw ZlibException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Reads to EOF on the given gz-file pointer from the current position and
+ * writes the (uncompressed) results to standard output.
+ *
+ * @param resource $zp The gz-file pointer. It must be valid, and must point to a file
+ * successfully opened by gzopen.
+ * @return int The number of uncompressed characters read from gz
+ * and passed through to the input.
+ * @throws ZlibException
+ *
+ */
+function gzpassthru($zp): int
+{
+ error_clear_last();
+ $result = \gzpassthru($zp);
+ if ($result === false) {
+ throw ZlibException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Sets the file position indicator of the given gz-file pointer to the
+ * beginning of the file stream.
+ *
+ * @param resource $zp The gz-file pointer. It must be valid, and must point to a file
+ * successfully opened by gzopen.
+ * @throws ZlibException
+ *
+ */
+function gzrewind($zp): void
+{
+ error_clear_last();
+ $result = \gzrewind($zp);
+ if ($result === false) {
+ throw ZlibException::createFromPhpError();
+ }
+}
+
+
+/**
+ * This function uncompress a compressed string.
+ *
+ * @param string $data The data compressed by gzcompress.
+ * @param int $length The maximum length of data to decode.
+ * @return string The original uncompressed data.
+ *
+ * The function will return an error if the uncompressed data is more than
+ * 32768 times the length of the compressed input data
+ * or more than the optional parameter length.
+ * @throws ZlibException
+ *
+ */
+function gzuncompress(string $data, int $length = 0): string
+{
+ error_clear_last();
+ $result = \gzuncompress($data, $length);
+ if ($result === false) {
+ throw ZlibException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ *
+ *
+ * @param resource $resource
+ * @return int Returns number of bytes read so far.
+ * @throws ZlibException
+ *
+ */
+function inflate_get_read_len($resource): int
+{
+ error_clear_last();
+ $result = \inflate_get_read_len($resource);
+ if ($result === false) {
+ throw ZlibException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Usually returns either ZLIB_OK or ZLIB_STREAM_END.
+ *
+ * @param resource $resource
+ * @return int Returns decompression status.
+ * @throws ZlibException
+ *
+ */
+function inflate_get_status($resource): int
+{
+ error_clear_last();
+ $result = \inflate_get_status($resource);
+ if ($result === false) {
+ throw ZlibException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Incrementally inflates encoded data in the specified context.
+ *
+ * Limitation: header information from GZIP compressed data are not made
+ * available.
+ *
+ * @param resource $context A context created with inflate_init.
+ * @param string $encoded_data A chunk of compressed data.
+ * @param int $flush_mode One of ZLIB_BLOCK,
+ * ZLIB_NO_FLUSH,
+ * ZLIB_PARTIAL_FLUSH,
+ * ZLIB_SYNC_FLUSH (default),
+ * ZLIB_FULL_FLUSH, ZLIB_FINISH.
+ * Normally you will want to set ZLIB_NO_FLUSH to
+ * maximize compression, and ZLIB_FINISH to terminate
+ * with the last chunk of data. See the zlib manual for a
+ * detailed description of these constants.
+ * @return string Returns a chunk of uncompressed data.
+ * @throws ZlibException
+ *
+ */
+function inflate_add($context, string $encoded_data, int $flush_mode = ZLIB_SYNC_FLUSH): string
+{
+ error_clear_last();
+ $result = \inflate_add($context, $encoded_data, $flush_mode);
+ if ($result === false) {
+ throw ZlibException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Initialize an incremental inflate context with the specified
+ * encoding.
+ *
+ * @param int $encoding One of the ZLIB_ENCODING_* constants.
+ * @param array $options An associative array which may contain the following elements:
+ *
+ *
+ * level
+ *
+ *
+ * The compression level in range -1..9; defaults to -1.
+ *
+ *
+ *
+ *
+ * memory
+ *
+ *
+ * The compression memory level in range 1..9; defaults to 8.
+ *
+ *
+ *
+ *
+ * window
+ *
+ *
+ * The zlib window size (logarithmic) in range 8..15; defaults to 15.
+ *
+ *
+ *
+ *
+ * strategy
+ *
+ *
+ * One of ZLIB_FILTERED,
+ * ZLIB_HUFFMAN_ONLY, ZLIB_RLE,
+ * ZLIB_FIXED or
+ * ZLIB_DEFAULT_STRATEGY (the default).
+ *
+ *
+ *
+ *
+ * dictionary
+ *
+ *
+ * A string or an array of strings
+ * of the preset dictionary (default: no preset dictionary).
+ *
+ *
+ *
+ *
+ *
+ * The compression level in range -1..9; defaults to -1.
+ *
+ * The compression memory level in range 1..9; defaults to 8.
+ *
+ * The zlib window size (logarithmic) in range 8..15; defaults to 15.
+ *
+ * One of ZLIB_FILTERED,
+ * ZLIB_HUFFMAN_ONLY, ZLIB_RLE,
+ * ZLIB_FIXED or
+ * ZLIB_DEFAULT_STRATEGY (the default).
+ *
+ * A string or an array of strings
+ * of the preset dictionary (default: no preset dictionary).
+ * @return resource Returns an inflate context resource (zlib.inflate) on
+ * success.
+ * @throws ZlibException
+ *
+ */
+function inflate_init(int $encoding, array $options = null)
+{
+ error_clear_last();
+ $result = \inflate_init($encoding, $options);
+ if ($result === false) {
+ throw ZlibException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Reads a file, decompresses it and writes it to standard output.
+ *
+ * readgzfile can be used to read a file which is not in
+ * gzip format; in this case readgzfile will directly
+ * read from the file without decompression.
+ *
+ * @param string $filename The file name. This file will be opened from the filesystem and its
+ * contents written to standard output.
+ * @param int $use_include_path You can set this optional parameter to 1, if you
+ * want to search for the file in the include_path too.
+ * @return int Returns the number of (uncompressed) bytes read from the file on success
+ * @throws ZlibException
+ *
+ */
+function readgzfile(string $filename, int $use_include_path = 0): int
+{
+ error_clear_last();
+ $result = \readgzfile($filename, $use_include_path);
+ if ($result === false) {
+ throw ZlibException::createFromPhpError();
+ }
+ return $result;
+}
+
+
+/**
+ * Uncompress any raw/gzip/zlib encoded data.
+ *
+ * @param string $data
+ * @param int $max_decoded_len
+ * @return string Returns the uncompressed data.
+ * @throws ZlibException
+ *
+ */
+function zlib_decode(string $data, int $max_decoded_len = null): string
+{
+ error_clear_last();
+ if ($max_decoded_len !== null) {
+ $result = \zlib_decode($data, $max_decoded_len);
+ } else {
+ $result = \zlib_decode($data);
+ }
+ if ($result === false) {
+ throw ZlibException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/lib/DateTime.php b/vendor/thecodingmachine/safe/lib/DateTime.php
new file mode 100644
index 000000000..581ef35c0
--- /dev/null
+++ b/vendor/thecodingmachine/safe/lib/DateTime.php
@@ -0,0 +1,81 @@
+<?php
+
+namespace Safe;
+
+use DateInterval;
+use DateTimeInterface;
+use DateTimeZone;
+use Safe\Exceptions\DatetimeException;
+
+/** this class implements a safe version of the Datetime class */
+class DateTime extends \DateTime
+{
+ //switch from regular datetime to safe version
+ private static function createFromRegular(\DateTime $datetime): self
+ {
+ return new self($datetime->format('Y-m-d H:i:s.u'), $datetime->getTimezone());
+ }
+
+ /**
+ * @param string $format
+ * @param string $time
+ * @param DateTimeZone|null $timezone
+ * @throws DatetimeException
+ */
+ public static function createFromFormat($format, $time, $timezone = null): self
+ {
+ $datetime = parent::createFromFormat($format, $time, $timezone);
+ if ($datetime === false) {
+ throw DatetimeException::createFromPhpError();
+ }
+ return self::createFromRegular($datetime);
+ }
+
+ /**
+ * @param DateTimeInterface $datetime2 The date to compare to.
+ * @param boolean $absolute [optional] Whether to return absolute difference.
+ * @return DateInterval The DateInterval object representing the difference between the two dates.
+ * @throws DatetimeException
+ */
+ public function diff($datetime2, $absolute = false): DateInterval
+ {
+ /** @var \DateInterval|false $result */
+ $result = parent::diff($datetime2, $absolute);
+ if ($result === false) {
+ throw DatetimeException::createFromPhpError();
+ }
+ return $result;
+ }
+
+ /**
+ * @param string $modify A date/time string. Valid formats are explained in <a href="https://secure.php.net/manual/en/datetime.formats.php">Date and Time Formats</a>.
+ * @return DateTime Returns the DateTime object for method chaining.
+ * @throws DatetimeException
+ */
+ public function modify($modify): self
+ {
+ /** @var DateTime|false $result */
+ $result = parent::modify($modify);
+ if ($result === false) {
+ throw DatetimeException::createFromPhpError();
+ }
+ return $result;
+ }
+
+ /**
+ * @param int $year
+ * @param int $month
+ * @param int $day
+ * @return DateTime
+ * @throws DatetimeException
+ */
+ public function setDate($year, $month, $day): self
+ {
+ /** @var DateTime|false $result */
+ $result = parent::setDate($year, $month, $day);
+ if ($result === false) {
+ throw DatetimeException::createFromPhpError();
+ }
+ return $result;
+ }
+}
diff --git a/vendor/thecodingmachine/safe/lib/DateTimeImmutable.php b/vendor/thecodingmachine/safe/lib/DateTimeImmutable.php
new file mode 100644
index 000000000..114ec3a3d
--- /dev/null
+++ b/vendor/thecodingmachine/safe/lib/DateTimeImmutable.php
@@ -0,0 +1,262 @@
+<?php
+
+namespace Safe;
+
+use DateInterval;
+use DateTime;
+use DateTimeInterface;
+use DateTimeZone;
+use Safe\Exceptions\DatetimeException;
+
+/**
+ * This class is used to implement a safe version of the DatetimeImmutable class.
+ * While it technically overloads \DateTimeImmutable for typehint compatibility,
+ * it is actually used as a wrapper of \DateTimeImmutable, mostly to be able to overwrite functions like getTimestamp() while still being able to edit milliseconds via setTime().
+ */
+class DateTimeImmutable extends \DateTimeImmutable
+{
+ /**
+ * @var \DateTimeImmutable
+ */
+ private $innerDateTime;
+
+ /**
+ * DateTimeImmutable constructor.
+ * @param string $time
+ * @param DateTimeZone|null $timezone
+ * @throws \Exception
+ */
+ public function __construct($time = 'now', $timezone = null)
+ {
+ parent::__construct($time, $timezone);
+ $this->innerDateTime = new parent($time, $timezone);
+ }
+
+ //switch between regular datetime and safe version
+ public static function createFromRegular(\DateTimeImmutable $datetime): self
+ {
+ $safeDatetime = new self($datetime->format('Y-m-d H:i:s.u'), $datetime->getTimezone()); //we need to also update the wrapper to not break the operators '<' and '>'
+ $safeDatetime->innerDateTime = $datetime; //to make sure we don't lose information because of the format().
+ return $safeDatetime;
+ }
+
+ //usefull if you need to switch back to regular DateTimeImmutable (for example when using DatePeriod)
+ public function getInnerDateTime(): \DateTimeImmutable
+ {
+ return $this->innerDateTime;
+ }
+
+ /////////////////////////////////////////////////////////////////////////////
+ // overload functions with false errors
+
+ /**
+ * @param string $format
+ * @param string $time
+ * @param DateTimeZone|null $timezone
+ * @throws DatetimeException
+ */
+ public static function createFromFormat($format, $time, $timezone = null): self
+ {
+ $datetime = parent::createFromFormat($format, $time, $timezone);
+ if ($datetime === false) {
+ throw DatetimeException::createFromPhpError();
+ }
+ return self::createFromRegular($datetime);
+ }
+
+ /**
+ * @param string $format
+ * @return string
+ * @throws DatetimeException
+ */
+ public function format($format): string
+ {
+ /** @var string|false $result */
+ $result = $this->innerDateTime->format($format);
+ if ($result === false) {
+ throw DatetimeException::createFromPhpError();
+ }
+ return $result;
+ }
+
+ /**
+ * @param DateTimeInterface $datetime2
+ * @param bool $absolute
+ * @return DateInterval
+ * @throws DatetimeException
+ */
+ public function diff($datetime2, $absolute = false): DateInterval
+ {
+ /** @var \DateInterval|false $result */
+ $result = $this->innerDateTime->diff($datetime2, $absolute);
+ if ($result === false) {
+ throw DatetimeException::createFromPhpError();
+ }
+ return $result;
+ }
+
+ /**
+ * @param string $modify
+ * @return DateTimeImmutable
+ * @throws DatetimeException
+ */
+ public function modify($modify): self
+ {
+ /** @var \DateTimeImmutable|false $result */
+ $result = $this->innerDateTime->modify($modify);
+ if ($result === false) {
+ throw DatetimeException::createFromPhpError();
+ }
+ return self::createFromRegular($result); //we have to recreate a safe datetime because modify create a new instance of \DateTimeImmutable
+ }
+
+ /**
+ * @param int $year
+ * @param int $month
+ * @param int $day
+ * @return DateTimeImmutable
+ * @throws DatetimeException
+ */
+ public function setDate($year, $month, $day): self
+ {
+ /** @var \DateTimeImmutable|false $result */
+ $result = $this->innerDateTime->setDate($year, $month, $day);
+ if ($result === false) {
+ throw DatetimeException::createFromPhpError();
+ }
+ return self::createFromRegular($result); //we have to recreate a safe datetime because modify create a new instance of \DateTimeImmutable
+ }
+
+ /**
+ * @param int $year
+ * @param int $week
+ * @param int $day
+ * @return DateTimeImmutable
+ * @throws DatetimeException
+ */
+ public function setISODate($year, $week, $day = 1): self
+ {
+ /** @var \DateTimeImmutable|false $result */
+ $result = $this->innerDateTime->setISODate($year, $week, $day);
+ if ($result === false) {
+ throw DatetimeException::createFromPhpError();
+ }
+ return self::createFromRegular($result); //we have to recreate a safe datetime because modify create a new instance of \DateTimeImmutable
+ }
+
+ /**
+ * @param int $hour
+ * @param int $minute
+ * @param int $second
+ * @param int $microseconds
+ * @return DateTimeImmutable
+ * @throws DatetimeException
+ */
+ public function setTime($hour, $minute, $second = 0, $microseconds = 0): self
+ {
+ /** @var \DateTimeImmutable|false $result */
+ $result = $this->innerDateTime->setTime($hour, $minute, $second, $microseconds);
+ if ($result === false) {
+ throw DatetimeException::createFromPhpError();
+ }
+ return self::createFromRegular($result);
+ }
+
+ /**
+ * @param int $unixtimestamp
+ * @return DateTimeImmutable
+ * @throws DatetimeException
+ */
+ public function setTimestamp($unixtimestamp): self
+ {
+ /** @var \DateTimeImmutable|false $result */
+ $result = $this->innerDateTime->setTimestamp($unixtimestamp);
+ if ($result === false) {
+ throw DatetimeException::createFromPhpError();
+ }
+ return self::createFromRegular($result);
+ }
+
+ /**
+ * @param DateTimeZone $timezone
+ * @return DateTimeImmutable
+ * @throws DatetimeException
+ */
+ public function setTimezone($timezone): self
+ {
+ /** @var \DateTimeImmutable|false $result */
+ $result = $this->innerDateTime->setTimezone($timezone);
+ if ($result === false) {
+ throw DatetimeException::createFromPhpError();
+ }
+ return self::createFromRegular($result);
+ }
+
+ /**
+ * @param DateInterval $interval
+ * @return DateTimeImmutable
+ * @throws DatetimeException
+ */
+ public function sub($interval): self
+ {
+ /** @var \DateTimeImmutable|false $result */
+ $result = $this->innerDateTime->sub($interval);
+ if ($result === false) {
+ throw DatetimeException::createFromPhpError();
+ }
+ return self::createFromRegular($result);
+ }
+
+ /**
+ * @throws DatetimeException
+ */
+ public function getOffset(): int
+ {
+ /** @var int|false $result */
+ $result = $this->innerDateTime->getOffset();
+ if ($result === false) {
+ throw DatetimeException::createFromPhpError();
+ }
+ return $result;
+ }
+
+ //////////////////////////////////////////////////////////////////////////////////////////
+ //overload getters to use the inner datetime immutable instead of itself
+
+ /**
+ * @param DateInterval $interval
+ * @return DateTimeImmutable
+ */
+ public function add($interval): self
+ {
+ return self::createFromRegular($this->innerDateTime->add($interval));
+ }
+
+ /**
+ * @param DateTime $dateTime
+ * @return DateTimeImmutable
+ */
+ public static function createFromMutable($dateTime): self
+ {
+ return self::createFromRegular(parent::createFromMutable($dateTime));
+ }
+
+ /**
+ * @param mixed[] $array
+ * @return DateTimeImmutable
+ */
+ public static function __set_state($array): self
+ {
+ return self::createFromRegular(parent::__set_state($array));
+ }
+
+ public function getTimezone(): DateTimeZone
+ {
+ return $this->innerDateTime->getTimezone();
+ }
+
+ public function getTimestamp(): int
+ {
+ return $this->innerDateTime->getTimestamp();
+ }
+}
diff --git a/vendor/thecodingmachine/safe/lib/Exceptions/CurlException.php b/vendor/thecodingmachine/safe/lib/Exceptions/CurlException.php
new file mode 100644
index 000000000..2814066b0
--- /dev/null
+++ b/vendor/thecodingmachine/safe/lib/Exceptions/CurlException.php
@@ -0,0 +1,15 @@
+<?php
+
+
+namespace Safe\Exceptions;
+
+class CurlException extends \Exception implements SafeExceptionInterface
+{
+ /**
+ * @param resource $ch
+ */
+ public static function createFromCurlResource($ch): self
+ {
+ return new self(\curl_error($ch), \curl_errno($ch));
+ }
+}
diff --git a/vendor/thecodingmachine/safe/lib/Exceptions/JsonException.php b/vendor/thecodingmachine/safe/lib/Exceptions/JsonException.php
new file mode 100644
index 000000000..4300d29e9
--- /dev/null
+++ b/vendor/thecodingmachine/safe/lib/Exceptions/JsonException.php
@@ -0,0 +1,12 @@
+<?php
+
+
+namespace Safe\Exceptions;
+
+class JsonException extends \Exception implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ return new self(\json_last_error_msg(), \json_last_error());
+ }
+}
diff --git a/vendor/thecodingmachine/safe/lib/Exceptions/OpensslException.php b/vendor/thecodingmachine/safe/lib/Exceptions/OpensslException.php
new file mode 100644
index 000000000..5f424af2d
--- /dev/null
+++ b/vendor/thecodingmachine/safe/lib/Exceptions/OpensslException.php
@@ -0,0 +1,12 @@
+<?php
+
+
+namespace Safe\Exceptions;
+
+class OpensslException extends \Exception implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ return new self(\openssl_error_string() ?: '', 0);
+ }
+}
diff --git a/vendor/thecodingmachine/safe/lib/Exceptions/PcreException.php b/vendor/thecodingmachine/safe/lib/Exceptions/PcreException.php
new file mode 100644
index 000000000..ee6367ef6
--- /dev/null
+++ b/vendor/thecodingmachine/safe/lib/Exceptions/PcreException.php
@@ -0,0 +1,21 @@
+<?php
+
+
+namespace Safe\Exceptions;
+
+class PcreException extends \Exception implements SafeExceptionInterface
+{
+ public static function createFromPhpError(): self
+ {
+ $errorMap = [
+ PREG_INTERNAL_ERROR => 'PREG_INTERNAL_ERROR: Internal error',
+ PREG_BACKTRACK_LIMIT_ERROR => 'PREG_BACKTRACK_LIMIT_ERROR: Backtrack limit reached',
+ PREG_RECURSION_LIMIT_ERROR => 'PREG_RECURSION_LIMIT_ERROR: Recursion limit reached',
+ PREG_BAD_UTF8_ERROR => 'PREG_BAD_UTF8_ERROR: Invalid UTF8 character',
+ PREG_BAD_UTF8_OFFSET_ERROR => 'PREG_BAD_UTF8_OFFSET_ERROR',
+ PREG_JIT_STACKLIMIT_ERROR => 'PREG_JIT_STACKLIMIT_ERROR',
+ ];
+ $errMsg = $errorMap[preg_last_error()] ?? 'Unknown PCRE error: '.preg_last_error();
+ return new self($errMsg, \preg_last_error());
+ }
+}
diff --git a/vendor/thecodingmachine/safe/lib/Exceptions/SafeExceptionInterface.php b/vendor/thecodingmachine/safe/lib/Exceptions/SafeExceptionInterface.php
new file mode 100644
index 000000000..fbea6ad25
--- /dev/null
+++ b/vendor/thecodingmachine/safe/lib/Exceptions/SafeExceptionInterface.php
@@ -0,0 +1,9 @@
+<?php
+
+
+namespace Safe\Exceptions;
+
+interface SafeExceptionInterface extends \Throwable
+{
+
+}
diff --git a/vendor/thecodingmachine/safe/lib/special_cases.php b/vendor/thecodingmachine/safe/lib/special_cases.php
new file mode 100644
index 000000000..d18e2118b
--- /dev/null
+++ b/vendor/thecodingmachine/safe/lib/special_cases.php
@@ -0,0 +1,241 @@
+<?php
+/**
+ * This file contains all the functions that could not be dealt with automatically using the code generator.
+ * If you add a function in this list, do not forget to add it in the generator/config/specialCasesFunctions.php
+ *
+ */
+
+namespace Safe;
+
+use Safe\Exceptions\SocketsException;
+use const PREG_NO_ERROR;
+use Safe\Exceptions\ApcException;
+use Safe\Exceptions\ApcuException;
+use Safe\Exceptions\JsonException;
+use Safe\Exceptions\OpensslException;
+use Safe\Exceptions\PcreException;
+
+/**
+ * Wrapper for json_decode that throws when an error occurs.
+ *
+ * @param string $json JSON data to parse
+ * @param bool $assoc When true, returned objects will be converted
+ * into associative arrays.
+ * @param int $depth User specified recursion depth.
+ * @param int $options Bitmask of JSON decode options.
+ *
+ * @return mixed
+ * @throws JsonException if the JSON cannot be decoded.
+ * @link http://www.php.net/manual/en/function.json-decode.php
+ */
+function json_decode(string $json, bool $assoc = false, int $depth = 512, int $options = 0)
+{
+ $data = \json_decode($json, $assoc, $depth, $options);
+ if (JSON_ERROR_NONE !== json_last_error()) {
+ throw JsonException::createFromPhpError();
+ }
+ return $data;
+}
+
+
+/**
+ * Fetchs a stored variable from the cache.
+ *
+ * @param mixed $key The key used to store the value (with
+ * apc_store). If an array is passed then each
+ * element is fetched and returned.
+ * @return mixed The stored variable or array of variables on success; FALSE on failure
+ * @throws ApcException
+ *
+ */
+function apc_fetch($key)
+{
+ error_clear_last();
+ $result = \apc_fetch($key, $success);
+ if ($success === false) {
+ throw ApcException::createFromPhpError();
+ }
+ return $result;
+}
+
+/**
+ * Fetchs an entry from the cache.
+ *
+ * @param string|string[] $key The key used to store the value (with
+ * apcu_store). If an array is passed then each
+ * element is fetched and returned.
+ * @return mixed The stored variable or array of variables on success
+ * @throws ApcuException
+ *
+ */
+function apcu_fetch($key)
+{
+ error_clear_last();
+ $result = \apcu_fetch($key, $success);
+ if ($success === false) {
+ throw ApcuException::createFromPhpError();
+ }
+ return $result;
+}
+
+/**
+ * Searches subject for matches to
+ * pattern and replaces them with
+ * replacement.
+ *
+ * @param mixed $pattern The pattern to search for. It can be either a string or an array with
+ * strings.
+ *
+ * Several PCRE modifiers
+ * are also available.
+ * @param mixed $replacement The string or an array with strings to replace. If this parameter is a
+ * string and the pattern parameter is an array,
+ * all patterns will be replaced by that string. If both
+ * pattern and replacement
+ * parameters are arrays, each pattern will be
+ * replaced by the replacement counterpart. If
+ * there are fewer elements in the replacement
+ * array than in the pattern array, any extra
+ * patterns will be replaced by an empty string.
+ *
+ * replacement may contain references of the form
+ * \\n or
+ * $n, with the latter form
+ * being the preferred one. Every such reference will be replaced by the text
+ * captured by the n'th parenthesized pattern.
+ * n can be from 0 to 99, and
+ * \\0 or $0 refers to the text matched
+ * by the whole pattern. Opening parentheses are counted from left to right
+ * (starting from 1) to obtain the number of the capturing subpattern.
+ * To use backslash in replacement, it must be doubled
+ * ("\\\\" PHP string).
+ *
+ * When working with a replacement pattern where a backreference is
+ * immediately followed by another number (i.e.: placing a literal number
+ * immediately after a matched pattern), you cannot use the familiar
+ * \\1 notation for your backreference.
+ * \\11, for example, would confuse
+ * preg_replace since it does not know whether you
+ * want the \\1 backreference followed by a literal
+ * 1, or the \\11 backreference
+ * followed by nothing. In this case the solution is to use
+ * ${1}1. This creates an isolated
+ * $1 backreference, leaving the 1
+ * as a literal.
+ *
+ * When using the deprecated e modifier, this function escapes
+ * some characters (namely ', ",
+ * \ and NULL) in the strings that replace the
+ * backreferences. This is done to ensure that no syntax errors arise
+ * from backreference usage with either single or double quotes (e.g.
+ * 'strlen(\'$1\')+strlen("$2")'). Make sure you are
+ * aware of PHP's string
+ * syntax to know exactly how the interpreted string will look.
+ * @param string|array|string[] $subject The string or an array with strings to search and replace.
+ *
+ * If subject is an array, then the search and
+ * replace is performed on every entry of subject,
+ * and the return value is an array as well.
+ * @param int $limit The maximum possible replacements for each pattern in each
+ * subject string. Defaults to
+ * -1 (no limit).
+ * @param int $count If specified, this variable will be filled with the number of
+ * replacements done.
+ * @return string|array|string[] preg_replace returns an array if the
+ * subject parameter is an array, or a string
+ * otherwise.
+ *
+ * If matches are found, the new subject will
+ * be returned, otherwise subject will be
+ * returned unchanged.
+ *
+ * @throws PcreException
+ *
+ */
+function preg_replace($pattern, $replacement, $subject, int $limit = -1, int &$count = null)
+{
+ error_clear_last();
+ $result = \preg_replace($pattern, $replacement, $subject, $limit, $count);
+ if (preg_last_error() !== PREG_NO_ERROR || $result === null) {
+ throw PcreException::createFromPhpError();
+ }
+ return $result;
+}
+
+/**
+ * @param resource|null $dir_handle
+ * @return string|false
+ * @deprecated
+ * This function is only in safe because the php documentation is wrong
+ */
+function readdir($dir_handle = null)
+{
+ if ($dir_handle !== null) {
+ $result = \readdir($dir_handle);
+ } else {
+ $result = \readdir();
+ }
+ return $result;
+}
+
+/**
+ * Encrypts given data with given method and key, returns a raw
+ * or base64 encoded string
+ *
+ * @param string $data The plaintext message data to be encrypted.
+ * @param string $method The cipher method. For a list of available cipher methods, use openssl_get_cipher_methods.
+ * @param string $key The key.
+ * @param int $options options is a bitwise disjunction of the flags
+ * OPENSSL_RAW_DATA and
+ * OPENSSL_ZERO_PADDING.
+ * @param string $iv A non-NULL Initialization Vector.
+ * @param string $tag The authentication tag passed by reference when using AEAD cipher mode (GCM or CCM).
+ * @param string $aad Additional authentication data.
+ * @param int $tag_length The length of the authentication tag. Its value can be between 4 and 16 for GCM mode.
+ * @return string Returns the encrypted string.
+ * @throws OpensslException
+ *
+ */
+function openssl_encrypt(string $data, string $method, string $key, int $options = 0, string $iv = "", string &$tag = "", string $aad = "", int $tag_length = 16): string
+{
+ error_clear_last();
+ // The $tag parameter is handled in a weird way by openssl_encrypt. It cannot be provided unless encoding is AEAD
+ if (func_num_args() <= 5) {
+ $result = \openssl_encrypt($data, $method, $key, $options, $iv);
+ } else {
+ $result = \openssl_encrypt($data, $method, $key, $options, $iv, $tag, $aad, $tag_length);
+ }
+ if ($result === false) {
+ throw OpensslException::createFromPhpError();
+ }
+ return $result;
+}
+
+/**
+ * The function socket_write writes to the
+ * socket from the given
+ * buffer.
+ *
+ * @param resource $socket
+ * @param string $buffer The buffer to be written.
+ * @param int $length The optional parameter length can specify an
+ * alternate length of bytes written to the socket. If this length is
+ * greater than the buffer length, it is silently truncated to the length
+ * of the buffer.
+ * @return int Returns the number of bytes successfully written to the socket.
+ * The error code can be retrieved with
+ * socket_last_error. This code may be passed to
+ * socket_strerror to get a textual explanation of the
+ * error.
+ * @throws SocketsException
+ *
+ */
+function socket_write($socket, string $buffer, int $length = 0): int
+{
+ error_clear_last();
+ $result = $length === 0 ? \socket_write($socket, $buffer) : \socket_write($socket, $buffer, $length);
+ if ($result === false) {
+ throw SocketsException::createFromPhpError();
+ }
+ return $result;
+}
diff --git a/vendor/thecodingmachine/safe/rector-migrate-0.7.php b/vendor/thecodingmachine/safe/rector-migrate-0.7.php
new file mode 100644
index 000000000..d1c599700
--- /dev/null
+++ b/vendor/thecodingmachine/safe/rector-migrate-0.7.php
@@ -0,0 +1,1081 @@
+<?php
+
+declare(strict_types=1);
+
+use Rector\Renaming\Rector\FuncCall\RenameFunctionRector;
+use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
+
+# This file configures rector/rector:~0.7.0 to replace all PHP functions with their equivalent "safe" functions
+return static function (ContainerConfigurator $containerConfigurator): void {
+ $services = $containerConfigurator->services();
+
+ $services->set(RenameFunctionRector::class)
+ ->call('configure', [[ RenameFunctionRector::OLD_FUNCTION_TO_NEW_FUNCTION => [
+ 'apache_getenv' => 'Safe\apache_getenv',
+ 'apache_get_version' => 'Safe\apache_get_version',
+ 'apache_request_headers' => 'Safe\apache_request_headers',
+ 'apache_reset_timeout' => 'Safe\apache_reset_timeout',
+ 'apache_response_headers' => 'Safe\apache_response_headers',
+ 'apache_setenv' => 'Safe\apache_setenv',
+ 'apcu_cache_info' => 'Safe\apcu_cache_info',
+ 'apcu_cas' => 'Safe\apcu_cas',
+ 'apcu_dec' => 'Safe\apcu_dec',
+ 'apcu_fetch' => 'Safe\apcu_fetch',
+ 'apcu_inc' => 'Safe\apcu_inc',
+ 'apcu_sma_info' => 'Safe\apcu_sma_info',
+ 'apc_fetch' => 'Safe\apc_fetch',
+ 'array_combine' => 'Safe\array_combine',
+ 'array_flip' => 'Safe\array_flip',
+ 'array_replace' => 'Safe\array_replace',
+ 'array_replace_recursive' => 'Safe\array_replace_recursive',
+ 'array_walk_recursive' => 'Safe\array_walk_recursive',
+ 'arsort' => 'Safe\arsort',
+ 'asort' => 'Safe\asort',
+ 'base64_decode' => 'Safe\base64_decode',
+ 'bzclose' => 'Safe\bzclose',
+ 'bzflush' => 'Safe\bzflush',
+ 'bzread' => 'Safe\bzread',
+ 'bzwrite' => 'Safe\bzwrite',
+ 'chdir' => 'Safe\chdir',
+ 'chgrp' => 'Safe\chgrp',
+ 'chmod' => 'Safe\chmod',
+ 'chown' => 'Safe\chown',
+ 'chroot' => 'Safe\chroot',
+ 'class_alias' => 'Safe\class_alias',
+ 'class_implements' => 'Safe\class_implements',
+ 'class_parents' => 'Safe\class_parents',
+ 'class_uses' => 'Safe\class_uses',
+ 'cli_set_process_title' => 'Safe\cli_set_process_title',
+ 'closelog' => 'Safe\closelog',
+ 'com_event_sink' => 'Safe\com_event_sink',
+ 'com_load_typelib' => 'Safe\com_load_typelib',
+ 'com_print_typeinfo' => 'Safe\com_print_typeinfo',
+ 'convert_uudecode' => 'Safe\convert_uudecode',
+ 'convert_uuencode' => 'Safe\convert_uuencode',
+ 'copy' => 'Safe\copy',
+ 'create_function' => 'Safe\create_function',
+ 'cubrid_free_result' => 'Safe\cubrid_free_result',
+ 'cubrid_get_charset' => 'Safe\cubrid_get_charset',
+ 'cubrid_get_client_info' => 'Safe\cubrid_get_client_info',
+ 'cubrid_get_db_parameter' => 'Safe\cubrid_get_db_parameter',
+ 'cubrid_get_server_info' => 'Safe\cubrid_get_server_info',
+ 'cubrid_insert_id' => 'Safe\cubrid_insert_id',
+ 'cubrid_lob2_new' => 'Safe\cubrid_lob2_new',
+ 'cubrid_lob2_size' => 'Safe\cubrid_lob2_size',
+ 'cubrid_lob2_size64' => 'Safe\cubrid_lob2_size64',
+ 'cubrid_lob2_tell' => 'Safe\cubrid_lob2_tell',
+ 'cubrid_lob2_tell64' => 'Safe\cubrid_lob2_tell64',
+ 'cubrid_set_db_parameter' => 'Safe\cubrid_set_db_parameter',
+ 'curl_escape' => 'Safe\curl_escape',
+ 'curl_exec' => 'Safe\curl_exec',
+ 'curl_getinfo' => 'Safe\curl_getinfo',
+ 'curl_init' => 'Safe\curl_init',
+ 'curl_multi_errno' => 'Safe\curl_multi_errno',
+ 'curl_multi_info_read' => 'Safe\curl_multi_info_read',
+ 'curl_multi_init' => 'Safe\curl_multi_init',
+ 'curl_setopt' => 'Safe\curl_setopt',
+ 'curl_share_errno' => 'Safe\curl_share_errno',
+ 'curl_share_setopt' => 'Safe\curl_share_setopt',
+ 'curl_unescape' => 'Safe\curl_unescape',
+ 'date' => 'Safe\date',
+ 'date_parse' => 'Safe\date_parse',
+ 'date_parse_from_format' => 'Safe\date_parse_from_format',
+ 'date_sunrise' => 'Safe\date_sunrise',
+ 'date_sunset' => 'Safe\date_sunset',
+ 'date_sun_info' => 'Safe\date_sun_info',
+ 'db2_autocommit' => 'Safe\db2_autocommit',
+ 'db2_bind_param' => 'Safe\db2_bind_param',
+ 'db2_client_info' => 'Safe\db2_client_info',
+ 'db2_close' => 'Safe\db2_close',
+ 'db2_commit' => 'Safe\db2_commit',
+ 'db2_execute' => 'Safe\db2_execute',
+ 'db2_free_result' => 'Safe\db2_free_result',
+ 'db2_free_stmt' => 'Safe\db2_free_stmt',
+ 'db2_get_option' => 'Safe\db2_get_option',
+ 'db2_pclose' => 'Safe\db2_pclose',
+ 'db2_rollback' => 'Safe\db2_rollback',
+ 'db2_server_info' => 'Safe\db2_server_info',
+ 'db2_set_option' => 'Safe\db2_set_option',
+ 'define' => 'Safe\define',
+ 'deflate_add' => 'Safe\deflate_add',
+ 'deflate_init' => 'Safe\deflate_init',
+ 'disk_free_space' => 'Safe\disk_free_space',
+ 'disk_total_space' => 'Safe\disk_total_space',
+ 'dl' => 'Safe\dl',
+ 'dns_get_record' => 'Safe\dns_get_record',
+ 'eio_busy' => 'Safe\eio_busy',
+ 'eio_chmod' => 'Safe\eio_chmod',
+ 'eio_chown' => 'Safe\eio_chown',
+ 'eio_close' => 'Safe\eio_close',
+ 'eio_custom' => 'Safe\eio_custom',
+ 'eio_dup2' => 'Safe\eio_dup2',
+ 'eio_event_loop' => 'Safe\eio_event_loop',
+ 'eio_fallocate' => 'Safe\eio_fallocate',
+ 'eio_fchmod' => 'Safe\eio_fchmod',
+ 'eio_fdatasync' => 'Safe\eio_fdatasync',
+ 'eio_fstat' => 'Safe\eio_fstat',
+ 'eio_fstatvfs' => 'Safe\eio_fstatvfs',
+ 'eio_fsync' => 'Safe\eio_fsync',
+ 'eio_ftruncate' => 'Safe\eio_ftruncate',
+ 'eio_futime' => 'Safe\eio_futime',
+ 'eio_grp' => 'Safe\eio_grp',
+ 'eio_lstat' => 'Safe\eio_lstat',
+ 'eio_mkdir' => 'Safe\eio_mkdir',
+ 'eio_mknod' => 'Safe\eio_mknod',
+ 'eio_nop' => 'Safe\eio_nop',
+ 'eio_readahead' => 'Safe\eio_readahead',
+ 'eio_readdir' => 'Safe\eio_readdir',
+ 'eio_readlink' => 'Safe\eio_readlink',
+ 'eio_rename' => 'Safe\eio_rename',
+ 'eio_rmdir' => 'Safe\eio_rmdir',
+ 'eio_seek' => 'Safe\eio_seek',
+ 'eio_sendfile' => 'Safe\eio_sendfile',
+ 'eio_stat' => 'Safe\eio_stat',
+ 'eio_statvfs' => 'Safe\eio_statvfs',
+ 'eio_symlink' => 'Safe\eio_symlink',
+ 'eio_sync' => 'Safe\eio_sync',
+ 'eio_syncfs' => 'Safe\eio_syncfs',
+ 'eio_sync_file_range' => 'Safe\eio_sync_file_range',
+ 'eio_truncate' => 'Safe\eio_truncate',
+ 'eio_unlink' => 'Safe\eio_unlink',
+ 'eio_utime' => 'Safe\eio_utime',
+ 'eio_write' => 'Safe\eio_write',
+ 'error_log' => 'Safe\error_log',
+ 'fastcgi_finish_request' => 'Safe\fastcgi_finish_request',
+ 'fbird_blob_cancel' => 'Safe\fbird_blob_cancel',
+ 'fclose' => 'Safe\fclose',
+ 'fflush' => 'Safe\fflush',
+ 'file' => 'Safe\file',
+ 'fileatime' => 'Safe\fileatime',
+ 'filectime' => 'Safe\filectime',
+ 'fileinode' => 'Safe\fileinode',
+ 'filemtime' => 'Safe\filemtime',
+ 'fileowner' => 'Safe\fileowner',
+ 'filesize' => 'Safe\filesize',
+ 'file_get_contents' => 'Safe\file_get_contents',
+ 'file_put_contents' => 'Safe\file_put_contents',
+ 'filter_input_array' => 'Safe\filter_input_array',
+ 'filter_var_array' => 'Safe\filter_var_array',
+ 'finfo_close' => 'Safe\finfo_close',
+ 'finfo_open' => 'Safe\finfo_open',
+ 'flock' => 'Safe\flock',
+ 'fopen' => 'Safe\fopen',
+ 'fputcsv' => 'Safe\fputcsv',
+ 'fread' => 'Safe\fread',
+ 'fsockopen' => 'Safe\fsockopen',
+ 'ftp_alloc' => 'Safe\ftp_alloc',
+ 'ftp_append' => 'Safe\ftp_append',
+ 'ftp_cdup' => 'Safe\ftp_cdup',
+ 'ftp_chdir' => 'Safe\ftp_chdir',
+ 'ftp_chmod' => 'Safe\ftp_chmod',
+ 'ftp_close' => 'Safe\ftp_close',
+ 'ftp_connect' => 'Safe\ftp_connect',
+ 'ftp_delete' => 'Safe\ftp_delete',
+ 'ftp_fget' => 'Safe\ftp_fget',
+ 'ftp_fput' => 'Safe\ftp_fput',
+ 'ftp_get' => 'Safe\ftp_get',
+ 'ftp_login' => 'Safe\ftp_login',
+ 'ftp_mkdir' => 'Safe\ftp_mkdir',
+ 'ftp_mlsd' => 'Safe\ftp_mlsd',
+ 'ftp_nlist' => 'Safe\ftp_nlist',
+ 'ftp_pasv' => 'Safe\ftp_pasv',
+ 'ftp_put' => 'Safe\ftp_put',
+ 'ftp_pwd' => 'Safe\ftp_pwd',
+ 'ftp_rename' => 'Safe\ftp_rename',
+ 'ftp_rmdir' => 'Safe\ftp_rmdir',
+ 'ftp_site' => 'Safe\ftp_site',
+ 'ftp_ssl_connect' => 'Safe\ftp_ssl_connect',
+ 'ftp_systype' => 'Safe\ftp_systype',
+ 'ftruncate' => 'Safe\ftruncate',
+ 'fwrite' => 'Safe\fwrite',
+ 'getallheaders' => 'Safe\getallheaders',
+ 'getcwd' => 'Safe\getcwd',
+ 'gethostname' => 'Safe\gethostname',
+ 'getimagesize' => 'Safe\getimagesize',
+ 'getlastmod' => 'Safe\getlastmod',
+ 'getmygid' => 'Safe\getmygid',
+ 'getmyinode' => 'Safe\getmyinode',
+ 'getmypid' => 'Safe\getmypid',
+ 'getmyuid' => 'Safe\getmyuid',
+ 'getopt' => 'Safe\getopt',
+ 'getprotobyname' => 'Safe\getprotobyname',
+ 'getprotobynumber' => 'Safe\getprotobynumber',
+ 'get_headers' => 'Safe\get_headers',
+ 'glob' => 'Safe\glob',
+ 'gmdate' => 'Safe\gmdate',
+ 'gmp_binomial' => 'Safe\gmp_binomial',
+ 'gmp_export' => 'Safe\gmp_export',
+ 'gmp_import' => 'Safe\gmp_import',
+ 'gmp_random_seed' => 'Safe\gmp_random_seed',
+ 'gnupg_adddecryptkey' => 'Safe\gnupg_adddecryptkey',
+ 'gnupg_addencryptkey' => 'Safe\gnupg_addencryptkey',
+ 'gnupg_addsignkey' => 'Safe\gnupg_addsignkey',
+ 'gnupg_cleardecryptkeys' => 'Safe\gnupg_cleardecryptkeys',
+ 'gnupg_clearencryptkeys' => 'Safe\gnupg_clearencryptkeys',
+ 'gnupg_clearsignkeys' => 'Safe\gnupg_clearsignkeys',
+ 'gnupg_setarmor' => 'Safe\gnupg_setarmor',
+ 'gnupg_setsignmode' => 'Safe\gnupg_setsignmode',
+ 'gzclose' => 'Safe\gzclose',
+ 'gzcompress' => 'Safe\gzcompress',
+ 'gzdecode' => 'Safe\gzdecode',
+ 'gzdeflate' => 'Safe\gzdeflate',
+ 'gzencode' => 'Safe\gzencode',
+ 'gzgets' => 'Safe\gzgets',
+ 'gzgetss' => 'Safe\gzgetss',
+ 'gzinflate' => 'Safe\gzinflate',
+ 'gzpassthru' => 'Safe\gzpassthru',
+ 'gzrewind' => 'Safe\gzrewind',
+ 'gzuncompress' => 'Safe\gzuncompress',
+ 'hash_hkdf' => 'Safe\hash_hkdf',
+ 'hash_update_file' => 'Safe\hash_update_file',
+ 'header_register_callback' => 'Safe\header_register_callback',
+ 'hex2bin' => 'Safe\hex2bin',
+ 'highlight_file' => 'Safe\highlight_file',
+ 'highlight_string' => 'Safe\highlight_string',
+ 'ibase_add_user' => 'Safe\ibase_add_user',
+ 'ibase_backup' => 'Safe\ibase_backup',
+ 'ibase_blob_cancel' => 'Safe\ibase_blob_cancel',
+ 'ibase_blob_create' => 'Safe\ibase_blob_create',
+ 'ibase_blob_get' => 'Safe\ibase_blob_get',
+ 'ibase_close' => 'Safe\ibase_close',
+ 'ibase_commit' => 'Safe\ibase_commit',
+ 'ibase_commit_ret' => 'Safe\ibase_commit_ret',
+ 'ibase_connect' => 'Safe\ibase_connect',
+ 'ibase_delete_user' => 'Safe\ibase_delete_user',
+ 'ibase_drop_db' => 'Safe\ibase_drop_db',
+ 'ibase_free_event_handler' => 'Safe\ibase_free_event_handler',
+ 'ibase_free_query' => 'Safe\ibase_free_query',
+ 'ibase_free_result' => 'Safe\ibase_free_result',
+ 'ibase_maintain_db' => 'Safe\ibase_maintain_db',
+ 'ibase_modify_user' => 'Safe\ibase_modify_user',
+ 'ibase_name_result' => 'Safe\ibase_name_result',
+ 'ibase_pconnect' => 'Safe\ibase_pconnect',
+ 'ibase_restore' => 'Safe\ibase_restore',
+ 'ibase_rollback' => 'Safe\ibase_rollback',
+ 'ibase_rollback_ret' => 'Safe\ibase_rollback_ret',
+ 'ibase_service_attach' => 'Safe\ibase_service_attach',
+ 'ibase_service_detach' => 'Safe\ibase_service_detach',
+ 'iconv' => 'Safe\iconv',
+ 'iconv_get_encoding' => 'Safe\iconv_get_encoding',
+ 'iconv_set_encoding' => 'Safe\iconv_set_encoding',
+ 'image2wbmp' => 'Safe\image2wbmp',
+ 'imageaffine' => 'Safe\imageaffine',
+ 'imageaffinematrixconcat' => 'Safe\imageaffinematrixconcat',
+ 'imageaffinematrixget' => 'Safe\imageaffinematrixget',
+ 'imagealphablending' => 'Safe\imagealphablending',
+ 'imageantialias' => 'Safe\imageantialias',
+ 'imagearc' => 'Safe\imagearc',
+ 'imagebmp' => 'Safe\imagebmp',
+ 'imagechar' => 'Safe\imagechar',
+ 'imagecharup' => 'Safe\imagecharup',
+ 'imagecolorat' => 'Safe\imagecolorat',
+ 'imagecolordeallocate' => 'Safe\imagecolordeallocate',
+ 'imagecolormatch' => 'Safe\imagecolormatch',
+ 'imageconvolution' => 'Safe\imageconvolution',
+ 'imagecopy' => 'Safe\imagecopy',
+ 'imagecopymerge' => 'Safe\imagecopymerge',
+ 'imagecopymergegray' => 'Safe\imagecopymergegray',
+ 'imagecopyresampled' => 'Safe\imagecopyresampled',
+ 'imagecopyresized' => 'Safe\imagecopyresized',
+ 'imagecreate' => 'Safe\imagecreate',
+ 'imagecreatefrombmp' => 'Safe\imagecreatefrombmp',
+ 'imagecreatefromgd' => 'Safe\imagecreatefromgd',
+ 'imagecreatefromgd2' => 'Safe\imagecreatefromgd2',
+ 'imagecreatefromgd2part' => 'Safe\imagecreatefromgd2part',
+ 'imagecreatefromgif' => 'Safe\imagecreatefromgif',
+ 'imagecreatefromjpeg' => 'Safe\imagecreatefromjpeg',
+ 'imagecreatefrompng' => 'Safe\imagecreatefrompng',
+ 'imagecreatefromwbmp' => 'Safe\imagecreatefromwbmp',
+ 'imagecreatefromwebp' => 'Safe\imagecreatefromwebp',
+ 'imagecreatefromxbm' => 'Safe\imagecreatefromxbm',
+ 'imagecreatefromxpm' => 'Safe\imagecreatefromxpm',
+ 'imagecreatetruecolor' => 'Safe\imagecreatetruecolor',
+ 'imagecrop' => 'Safe\imagecrop',
+ 'imagecropauto' => 'Safe\imagecropauto',
+ 'imagedashedline' => 'Safe\imagedashedline',
+ 'imagedestroy' => 'Safe\imagedestroy',
+ 'imageellipse' => 'Safe\imageellipse',
+ 'imagefill' => 'Safe\imagefill',
+ 'imagefilledarc' => 'Safe\imagefilledarc',
+ 'imagefilledellipse' => 'Safe\imagefilledellipse',
+ 'imagefilledpolygon' => 'Safe\imagefilledpolygon',
+ 'imagefilledrectangle' => 'Safe\imagefilledrectangle',
+ 'imagefilltoborder' => 'Safe\imagefilltoborder',
+ 'imagefilter' => 'Safe\imagefilter',
+ 'imageflip' => 'Safe\imageflip',
+ 'imagegammacorrect' => 'Safe\imagegammacorrect',
+ 'imagegd' => 'Safe\imagegd',
+ 'imagegd2' => 'Safe\imagegd2',
+ 'imagegif' => 'Safe\imagegif',
+ 'imagegrabscreen' => 'Safe\imagegrabscreen',
+ 'imagegrabwindow' => 'Safe\imagegrabwindow',
+ 'imagejpeg' => 'Safe\imagejpeg',
+ 'imagelayereffect' => 'Safe\imagelayereffect',
+ 'imageline' => 'Safe\imageline',
+ 'imageloadfont' => 'Safe\imageloadfont',
+ 'imageopenpolygon' => 'Safe\imageopenpolygon',
+ 'imagepng' => 'Safe\imagepng',
+ 'imagepolygon' => 'Safe\imagepolygon',
+ 'imagerectangle' => 'Safe\imagerectangle',
+ 'imagerotate' => 'Safe\imagerotate',
+ 'imagesavealpha' => 'Safe\imagesavealpha',
+ 'imagescale' => 'Safe\imagescale',
+ 'imagesetbrush' => 'Safe\imagesetbrush',
+ 'imagesetclip' => 'Safe\imagesetclip',
+ 'imagesetinterpolation' => 'Safe\imagesetinterpolation',
+ 'imagesetpixel' => 'Safe\imagesetpixel',
+ 'imagesetstyle' => 'Safe\imagesetstyle',
+ 'imagesetthickness' => 'Safe\imagesetthickness',
+ 'imagesettile' => 'Safe\imagesettile',
+ 'imagestring' => 'Safe\imagestring',
+ 'imagestringup' => 'Safe\imagestringup',
+ 'imagesx' => 'Safe\imagesx',
+ 'imagesy' => 'Safe\imagesy',
+ 'imagetruecolortopalette' => 'Safe\imagetruecolortopalette',
+ 'imagettfbbox' => 'Safe\imagettfbbox',
+ 'imagettftext' => 'Safe\imagettftext',
+ 'imagewbmp' => 'Safe\imagewbmp',
+ 'imagewebp' => 'Safe\imagewebp',
+ 'imagexbm' => 'Safe\imagexbm',
+ 'imap_append' => 'Safe\imap_append',
+ 'imap_check' => 'Safe\imap_check',
+ 'imap_clearflag_full' => 'Safe\imap_clearflag_full',
+ 'imap_close' => 'Safe\imap_close',
+ 'imap_createmailbox' => 'Safe\imap_createmailbox',
+ 'imap_deletemailbox' => 'Safe\imap_deletemailbox',
+ 'imap_fetchstructure' => 'Safe\imap_fetchstructure',
+ 'imap_gc' => 'Safe\imap_gc',
+ 'imap_headerinfo' => 'Safe\imap_headerinfo',
+ 'imap_mail' => 'Safe\imap_mail',
+ 'imap_mailboxmsginfo' => 'Safe\imap_mailboxmsginfo',
+ 'imap_mail_compose' => 'Safe\imap_mail_compose',
+ 'imap_mail_copy' => 'Safe\imap_mail_copy',
+ 'imap_mail_move' => 'Safe\imap_mail_move',
+ 'imap_mutf7_to_utf8' => 'Safe\imap_mutf7_to_utf8',
+ 'imap_num_msg' => 'Safe\imap_num_msg',
+ 'imap_open' => 'Safe\imap_open',
+ 'imap_renamemailbox' => 'Safe\imap_renamemailbox',
+ 'imap_savebody' => 'Safe\imap_savebody',
+ 'imap_setacl' => 'Safe\imap_setacl',
+ 'imap_setflag_full' => 'Safe\imap_setflag_full',
+ 'imap_set_quota' => 'Safe\imap_set_quota',
+ 'imap_sort' => 'Safe\imap_sort',
+ 'imap_subscribe' => 'Safe\imap_subscribe',
+ 'imap_thread' => 'Safe\imap_thread',
+ 'imap_timeout' => 'Safe\imap_timeout',
+ 'imap_undelete' => 'Safe\imap_undelete',
+ 'imap_unsubscribe' => 'Safe\imap_unsubscribe',
+ 'imap_utf8_to_mutf7' => 'Safe\imap_utf8_to_mutf7',
+ 'inet_ntop' => 'Safe\inet_ntop',
+ 'inflate_add' => 'Safe\inflate_add',
+ 'inflate_get_read_len' => 'Safe\inflate_get_read_len',
+ 'inflate_get_status' => 'Safe\inflate_get_status',
+ 'inflate_init' => 'Safe\inflate_init',
+ 'ingres_autocommit' => 'Safe\ingres_autocommit',
+ 'ingres_close' => 'Safe\ingres_close',
+ 'ingres_commit' => 'Safe\ingres_commit',
+ 'ingres_connect' => 'Safe\ingres_connect',
+ 'ingres_execute' => 'Safe\ingres_execute',
+ 'ingres_field_name' => 'Safe\ingres_field_name',
+ 'ingres_field_type' => 'Safe\ingres_field_type',
+ 'ingres_free_result' => 'Safe\ingres_free_result',
+ 'ingres_pconnect' => 'Safe\ingres_pconnect',
+ 'ingres_result_seek' => 'Safe\ingres_result_seek',
+ 'ingres_rollback' => 'Safe\ingres_rollback',
+ 'ingres_set_environment' => 'Safe\ingres_set_environment',
+ 'ini_get' => 'Safe\ini_get',
+ 'ini_set' => 'Safe\ini_set',
+ 'inotify_init' => 'Safe\inotify_init',
+ 'inotify_rm_watch' => 'Safe\inotify_rm_watch',
+ 'iptcembed' => 'Safe\iptcembed',
+ 'iptcparse' => 'Safe\iptcparse',
+ 'jdtounix' => 'Safe\jdtounix',
+ 'jpeg2wbmp' => 'Safe\jpeg2wbmp',
+ 'json_decode' => 'Safe\json_decode',
+ 'json_encode' => 'Safe\json_encode',
+ 'json_last_error_msg' => 'Safe\json_last_error_msg',
+ 'krsort' => 'Safe\krsort',
+ 'ksort' => 'Safe\ksort',
+ 'lchgrp' => 'Safe\lchgrp',
+ 'lchown' => 'Safe\lchown',
+ 'ldap_add' => 'Safe\ldap_add',
+ 'ldap_add_ext' => 'Safe\ldap_add_ext',
+ 'ldap_bind' => 'Safe\ldap_bind',
+ 'ldap_bind_ext' => 'Safe\ldap_bind_ext',
+ 'ldap_control_paged_result' => 'Safe\ldap_control_paged_result',
+ 'ldap_control_paged_result_response' => 'Safe\ldap_control_paged_result_response',
+ 'ldap_count_entries' => 'Safe\ldap_count_entries',
+ 'ldap_delete' => 'Safe\ldap_delete',
+ 'ldap_delete_ext' => 'Safe\ldap_delete_ext',
+ 'ldap_exop' => 'Safe\ldap_exop',
+ 'ldap_exop_passwd' => 'Safe\ldap_exop_passwd',
+ 'ldap_exop_whoami' => 'Safe\ldap_exop_whoami',
+ 'ldap_explode_dn' => 'Safe\ldap_explode_dn',
+ 'ldap_first_attribute' => 'Safe\ldap_first_attribute',
+ 'ldap_first_entry' => 'Safe\ldap_first_entry',
+ 'ldap_free_result' => 'Safe\ldap_free_result',
+ 'ldap_get_attributes' => 'Safe\ldap_get_attributes',
+ 'ldap_get_dn' => 'Safe\ldap_get_dn',
+ 'ldap_get_entries' => 'Safe\ldap_get_entries',
+ 'ldap_get_option' => 'Safe\ldap_get_option',
+ 'ldap_get_values' => 'Safe\ldap_get_values',
+ 'ldap_get_values_len' => 'Safe\ldap_get_values_len',
+ 'ldap_list' => 'Safe\ldap_list',
+ 'ldap_modify_batch' => 'Safe\ldap_modify_batch',
+ 'ldap_mod_add' => 'Safe\ldap_mod_add',
+ 'ldap_mod_add_ext' => 'Safe\ldap_mod_add_ext',
+ 'ldap_mod_del' => 'Safe\ldap_mod_del',
+ 'ldap_mod_del_ext' => 'Safe\ldap_mod_del_ext',
+ 'ldap_mod_replace' => 'Safe\ldap_mod_replace',
+ 'ldap_mod_replace_ext' => 'Safe\ldap_mod_replace_ext',
+ 'ldap_next_attribute' => 'Safe\ldap_next_attribute',
+ 'ldap_parse_exop' => 'Safe\ldap_parse_exop',
+ 'ldap_parse_result' => 'Safe\ldap_parse_result',
+ 'ldap_read' => 'Safe\ldap_read',
+ 'ldap_rename' => 'Safe\ldap_rename',
+ 'ldap_rename_ext' => 'Safe\ldap_rename_ext',
+ 'ldap_sasl_bind' => 'Safe\ldap_sasl_bind',
+ 'ldap_search' => 'Safe\ldap_search',
+ 'ldap_set_option' => 'Safe\ldap_set_option',
+ 'ldap_unbind' => 'Safe\ldap_unbind',
+ 'libxml_get_last_error' => 'Safe\libxml_get_last_error',
+ 'libxml_set_external_entity_loader' => 'Safe\libxml_set_external_entity_loader',
+ 'link' => 'Safe\link',
+ 'lzf_compress' => 'Safe\lzf_compress',
+ 'lzf_decompress' => 'Safe\lzf_decompress',
+ 'mailparse_msg_extract_part_file' => 'Safe\mailparse_msg_extract_part_file',
+ 'mailparse_msg_free' => 'Safe\mailparse_msg_free',
+ 'mailparse_msg_parse' => 'Safe\mailparse_msg_parse',
+ 'mailparse_msg_parse_file' => 'Safe\mailparse_msg_parse_file',
+ 'mailparse_stream_encode' => 'Safe\mailparse_stream_encode',
+ 'mb_chr' => 'Safe\mb_chr',
+ 'mb_detect_order' => 'Safe\mb_detect_order',
+ 'mb_encoding_aliases' => 'Safe\mb_encoding_aliases',
+ 'mb_eregi_replace' => 'Safe\mb_eregi_replace',
+ 'mb_ereg_replace' => 'Safe\mb_ereg_replace',
+ 'mb_ereg_replace_callback' => 'Safe\mb_ereg_replace_callback',
+ 'mb_ereg_search_getregs' => 'Safe\mb_ereg_search_getregs',
+ 'mb_ereg_search_init' => 'Safe\mb_ereg_search_init',
+ 'mb_ereg_search_regs' => 'Safe\mb_ereg_search_regs',
+ 'mb_ereg_search_setpos' => 'Safe\mb_ereg_search_setpos',
+ 'mb_http_output' => 'Safe\mb_http_output',
+ 'mb_internal_encoding' => 'Safe\mb_internal_encoding',
+ 'mb_ord' => 'Safe\mb_ord',
+ 'mb_parse_str' => 'Safe\mb_parse_str',
+ 'mb_regex_encoding' => 'Safe\mb_regex_encoding',
+ 'mb_send_mail' => 'Safe\mb_send_mail',
+ 'mb_split' => 'Safe\mb_split',
+ 'mb_str_split' => 'Safe\mb_str_split',
+ 'md5_file' => 'Safe\md5_file',
+ 'metaphone' => 'Safe\metaphone',
+ 'mime_content_type' => 'Safe\mime_content_type',
+ 'mkdir' => 'Safe\mkdir',
+ 'mktime' => 'Safe\mktime',
+ 'msg_queue_exists' => 'Safe\msg_queue_exists',
+ 'msg_receive' => 'Safe\msg_receive',
+ 'msg_remove_queue' => 'Safe\msg_remove_queue',
+ 'msg_send' => 'Safe\msg_send',
+ 'msg_set_queue' => 'Safe\msg_set_queue',
+ 'msql_affected_rows' => 'Safe\msql_affected_rows',
+ 'msql_close' => 'Safe\msql_close',
+ 'msql_connect' => 'Safe\msql_connect',
+ 'msql_create_db' => 'Safe\msql_create_db',
+ 'msql_data_seek' => 'Safe\msql_data_seek',
+ 'msql_db_query' => 'Safe\msql_db_query',
+ 'msql_drop_db' => 'Safe\msql_drop_db',
+ 'msql_field_len' => 'Safe\msql_field_len',
+ 'msql_field_name' => 'Safe\msql_field_name',
+ 'msql_field_seek' => 'Safe\msql_field_seek',
+ 'msql_field_table' => 'Safe\msql_field_table',
+ 'msql_field_type' => 'Safe\msql_field_type',
+ 'msql_free_result' => 'Safe\msql_free_result',
+ 'msql_pconnect' => 'Safe\msql_pconnect',
+ 'msql_query' => 'Safe\msql_query',
+ 'msql_select_db' => 'Safe\msql_select_db',
+ 'mysqli_get_cache_stats' => 'Safe\mysqli_get_cache_stats',
+ 'mysqli_get_client_stats' => 'Safe\mysqli_get_client_stats',
+ 'mysqlnd_ms_dump_servers' => 'Safe\mysqlnd_ms_dump_servers',
+ 'mysqlnd_ms_fabric_select_global' => 'Safe\mysqlnd_ms_fabric_select_global',
+ 'mysqlnd_ms_fabric_select_shard' => 'Safe\mysqlnd_ms_fabric_select_shard',
+ 'mysqlnd_ms_get_last_used_connection' => 'Safe\mysqlnd_ms_get_last_used_connection',
+ 'mysqlnd_qc_clear_cache' => 'Safe\mysqlnd_qc_clear_cache',
+ 'mysqlnd_qc_set_is_select' => 'Safe\mysqlnd_qc_set_is_select',
+ 'mysqlnd_qc_set_storage_handler' => 'Safe\mysqlnd_qc_set_storage_handler',
+ 'mysql_close' => 'Safe\mysql_close',
+ 'mysql_connect' => 'Safe\mysql_connect',
+ 'mysql_create_db' => 'Safe\mysql_create_db',
+ 'mysql_data_seek' => 'Safe\mysql_data_seek',
+ 'mysql_db_name' => 'Safe\mysql_db_name',
+ 'mysql_db_query' => 'Safe\mysql_db_query',
+ 'mysql_drop_db' => 'Safe\mysql_drop_db',
+ 'mysql_fetch_lengths' => 'Safe\mysql_fetch_lengths',
+ 'mysql_field_flags' => 'Safe\mysql_field_flags',
+ 'mysql_field_len' => 'Safe\mysql_field_len',
+ 'mysql_field_name' => 'Safe\mysql_field_name',
+ 'mysql_field_seek' => 'Safe\mysql_field_seek',
+ 'mysql_free_result' => 'Safe\mysql_free_result',
+ 'mysql_get_host_info' => 'Safe\mysql_get_host_info',
+ 'mysql_get_proto_info' => 'Safe\mysql_get_proto_info',
+ 'mysql_get_server_info' => 'Safe\mysql_get_server_info',
+ 'mysql_info' => 'Safe\mysql_info',
+ 'mysql_list_dbs' => 'Safe\mysql_list_dbs',
+ 'mysql_list_fields' => 'Safe\mysql_list_fields',
+ 'mysql_list_processes' => 'Safe\mysql_list_processes',
+ 'mysql_list_tables' => 'Safe\mysql_list_tables',
+ 'mysql_num_fields' => 'Safe\mysql_num_fields',
+ 'mysql_num_rows' => 'Safe\mysql_num_rows',
+ 'mysql_query' => 'Safe\mysql_query',
+ 'mysql_real_escape_string' => 'Safe\mysql_real_escape_string',
+ 'mysql_result' => 'Safe\mysql_result',
+ 'mysql_select_db' => 'Safe\mysql_select_db',
+ 'mysql_set_charset' => 'Safe\mysql_set_charset',
+ 'mysql_tablename' => 'Safe\mysql_tablename',
+ 'mysql_thread_id' => 'Safe\mysql_thread_id',
+ 'mysql_unbuffered_query' => 'Safe\mysql_unbuffered_query',
+ 'natcasesort' => 'Safe\natcasesort',
+ 'natsort' => 'Safe\natsort',
+ 'ob_end_clean' => 'Safe\ob_end_clean',
+ 'ob_end_flush' => 'Safe\ob_end_flush',
+ 'oci_bind_array_by_name' => 'Safe\oci_bind_array_by_name',
+ 'oci_bind_by_name' => 'Safe\oci_bind_by_name',
+ 'oci_cancel' => 'Safe\oci_cancel',
+ 'oci_close' => 'Safe\oci_close',
+ 'oci_commit' => 'Safe\oci_commit',
+ 'oci_connect' => 'Safe\oci_connect',
+ 'oci_define_by_name' => 'Safe\oci_define_by_name',
+ 'oci_execute' => 'Safe\oci_execute',
+ 'oci_fetch_all' => 'Safe\oci_fetch_all',
+ 'oci_field_name' => 'Safe\oci_field_name',
+ 'oci_field_precision' => 'Safe\oci_field_precision',
+ 'oci_field_scale' => 'Safe\oci_field_scale',
+ 'oci_field_size' => 'Safe\oci_field_size',
+ 'oci_field_type' => 'Safe\oci_field_type',
+ 'oci_field_type_raw' => 'Safe\oci_field_type_raw',
+ 'oci_free_descriptor' => 'Safe\oci_free_descriptor',
+ 'oci_free_statement' => 'Safe\oci_free_statement',
+ 'oci_new_collection' => 'Safe\oci_new_collection',
+ 'oci_new_connect' => 'Safe\oci_new_connect',
+ 'oci_new_cursor' => 'Safe\oci_new_cursor',
+ 'oci_new_descriptor' => 'Safe\oci_new_descriptor',
+ 'oci_num_fields' => 'Safe\oci_num_fields',
+ 'oci_num_rows' => 'Safe\oci_num_rows',
+ 'oci_parse' => 'Safe\oci_parse',
+ 'oci_pconnect' => 'Safe\oci_pconnect',
+ 'oci_result' => 'Safe\oci_result',
+ 'oci_rollback' => 'Safe\oci_rollback',
+ 'oci_server_version' => 'Safe\oci_server_version',
+ 'oci_set_action' => 'Safe\oci_set_action',
+ 'oci_set_call_timeout' => 'Safe\oci_set_call_timeout',
+ 'oci_set_client_identifier' => 'Safe\oci_set_client_identifier',
+ 'oci_set_client_info' => 'Safe\oci_set_client_info',
+ 'oci_set_db_operation' => 'Safe\oci_set_db_operation',
+ 'oci_set_edition' => 'Safe\oci_set_edition',
+ 'oci_set_module_name' => 'Safe\oci_set_module_name',
+ 'oci_set_prefetch' => 'Safe\oci_set_prefetch',
+ 'oci_statement_type' => 'Safe\oci_statement_type',
+ 'oci_unregister_taf_callback' => 'Safe\oci_unregister_taf_callback',
+ 'odbc_autocommit' => 'Safe\odbc_autocommit',
+ 'odbc_binmode' => 'Safe\odbc_binmode',
+ 'odbc_columnprivileges' => 'Safe\odbc_columnprivileges',
+ 'odbc_columns' => 'Safe\odbc_columns',
+ 'odbc_commit' => 'Safe\odbc_commit',
+ 'odbc_data_source' => 'Safe\odbc_data_source',
+ 'odbc_exec' => 'Safe\odbc_exec',
+ 'odbc_execute' => 'Safe\odbc_execute',
+ 'odbc_fetch_into' => 'Safe\odbc_fetch_into',
+ 'odbc_field_len' => 'Safe\odbc_field_len',
+ 'odbc_field_name' => 'Safe\odbc_field_name',
+ 'odbc_field_num' => 'Safe\odbc_field_num',
+ 'odbc_field_scale' => 'Safe\odbc_field_scale',
+ 'odbc_field_type' => 'Safe\odbc_field_type',
+ 'odbc_foreignkeys' => 'Safe\odbc_foreignkeys',
+ 'odbc_gettypeinfo' => 'Safe\odbc_gettypeinfo',
+ 'odbc_longreadlen' => 'Safe\odbc_longreadlen',
+ 'odbc_prepare' => 'Safe\odbc_prepare',
+ 'odbc_primarykeys' => 'Safe\odbc_primarykeys',
+ 'odbc_result' => 'Safe\odbc_result',
+ 'odbc_result_all' => 'Safe\odbc_result_all',
+ 'odbc_rollback' => 'Safe\odbc_rollback',
+ 'odbc_setoption' => 'Safe\odbc_setoption',
+ 'odbc_specialcolumns' => 'Safe\odbc_specialcolumns',
+ 'odbc_statistics' => 'Safe\odbc_statistics',
+ 'odbc_tableprivileges' => 'Safe\odbc_tableprivileges',
+ 'odbc_tables' => 'Safe\odbc_tables',
+ 'opcache_compile_file' => 'Safe\opcache_compile_file',
+ 'opcache_get_status' => 'Safe\opcache_get_status',
+ 'opendir' => 'Safe\opendir',
+ 'openlog' => 'Safe\openlog',
+ 'openssl_cipher_iv_length' => 'Safe\openssl_cipher_iv_length',
+ 'openssl_csr_export' => 'Safe\openssl_csr_export',
+ 'openssl_csr_export_to_file' => 'Safe\openssl_csr_export_to_file',
+ 'openssl_csr_get_subject' => 'Safe\openssl_csr_get_subject',
+ 'openssl_csr_new' => 'Safe\openssl_csr_new',
+ 'openssl_csr_sign' => 'Safe\openssl_csr_sign',
+ 'openssl_decrypt' => 'Safe\openssl_decrypt',
+ 'openssl_dh_compute_key' => 'Safe\openssl_dh_compute_key',
+ 'openssl_digest' => 'Safe\openssl_digest',
+ 'openssl_encrypt' => 'Safe\openssl_encrypt',
+ 'openssl_open' => 'Safe\openssl_open',
+ 'openssl_pbkdf2' => 'Safe\openssl_pbkdf2',
+ 'openssl_pkcs7_decrypt' => 'Safe\openssl_pkcs7_decrypt',
+ 'openssl_pkcs7_encrypt' => 'Safe\openssl_pkcs7_encrypt',
+ 'openssl_pkcs7_read' => 'Safe\openssl_pkcs7_read',
+ 'openssl_pkcs7_sign' => 'Safe\openssl_pkcs7_sign',
+ 'openssl_pkcs12_export' => 'Safe\openssl_pkcs12_export',
+ 'openssl_pkcs12_export_to_file' => 'Safe\openssl_pkcs12_export_to_file',
+ 'openssl_pkcs12_read' => 'Safe\openssl_pkcs12_read',
+ 'openssl_pkey_export' => 'Safe\openssl_pkey_export',
+ 'openssl_pkey_export_to_file' => 'Safe\openssl_pkey_export_to_file',
+ 'openssl_pkey_get_private' => 'Safe\openssl_pkey_get_private',
+ 'openssl_pkey_get_public' => 'Safe\openssl_pkey_get_public',
+ 'openssl_pkey_new' => 'Safe\openssl_pkey_new',
+ 'openssl_private_decrypt' => 'Safe\openssl_private_decrypt',
+ 'openssl_private_encrypt' => 'Safe\openssl_private_encrypt',
+ 'openssl_public_decrypt' => 'Safe\openssl_public_decrypt',
+ 'openssl_public_encrypt' => 'Safe\openssl_public_encrypt',
+ 'openssl_random_pseudo_bytes' => 'Safe\openssl_random_pseudo_bytes',
+ 'openssl_seal' => 'Safe\openssl_seal',
+ 'openssl_sign' => 'Safe\openssl_sign',
+ 'openssl_x509_export' => 'Safe\openssl_x509_export',
+ 'openssl_x509_export_to_file' => 'Safe\openssl_x509_export_to_file',
+ 'openssl_x509_fingerprint' => 'Safe\openssl_x509_fingerprint',
+ 'openssl_x509_read' => 'Safe\openssl_x509_read',
+ 'output_add_rewrite_var' => 'Safe\output_add_rewrite_var',
+ 'output_reset_rewrite_vars' => 'Safe\output_reset_rewrite_vars',
+ 'pack' => 'Safe\pack',
+ 'parse_ini_file' => 'Safe\parse_ini_file',
+ 'parse_ini_string' => 'Safe\parse_ini_string',
+ 'parse_url' => 'Safe\parse_url',
+ 'password_hash' => 'Safe\password_hash',
+ 'pcntl_exec' => 'Safe\pcntl_exec',
+ 'pcntl_getpriority' => 'Safe\pcntl_getpriority',
+ 'pcntl_setpriority' => 'Safe\pcntl_setpriority',
+ 'pcntl_signal_dispatch' => 'Safe\pcntl_signal_dispatch',
+ 'pcntl_sigprocmask' => 'Safe\pcntl_sigprocmask',
+ 'pcntl_strerror' => 'Safe\pcntl_strerror',
+ 'PDF_activate_item' => 'Safe\PDF_activate_item',
+ 'PDF_add_locallink' => 'Safe\PDF_add_locallink',
+ 'PDF_add_nameddest' => 'Safe\PDF_add_nameddest',
+ 'PDF_add_note' => 'Safe\PDF_add_note',
+ 'PDF_add_pdflink' => 'Safe\PDF_add_pdflink',
+ 'PDF_add_thumbnail' => 'Safe\PDF_add_thumbnail',
+ 'PDF_add_weblink' => 'Safe\PDF_add_weblink',
+ 'PDF_attach_file' => 'Safe\PDF_attach_file',
+ 'PDF_begin_layer' => 'Safe\PDF_begin_layer',
+ 'PDF_begin_page' => 'Safe\PDF_begin_page',
+ 'PDF_begin_page_ext' => 'Safe\PDF_begin_page_ext',
+ 'PDF_circle' => 'Safe\PDF_circle',
+ 'PDF_clip' => 'Safe\PDF_clip',
+ 'PDF_close' => 'Safe\PDF_close',
+ 'PDF_closepath' => 'Safe\PDF_closepath',
+ 'PDF_closepath_fill_stroke' => 'Safe\PDF_closepath_fill_stroke',
+ 'PDF_closepath_stroke' => 'Safe\PDF_closepath_stroke',
+ 'PDF_close_pdi' => 'Safe\PDF_close_pdi',
+ 'PDF_close_pdi_page' => 'Safe\PDF_close_pdi_page',
+ 'PDF_concat' => 'Safe\PDF_concat',
+ 'PDF_continue_text' => 'Safe\PDF_continue_text',
+ 'PDF_curveto' => 'Safe\PDF_curveto',
+ 'PDF_delete' => 'Safe\PDF_delete',
+ 'PDF_end_layer' => 'Safe\PDF_end_layer',
+ 'PDF_end_page' => 'Safe\PDF_end_page',
+ 'PDF_end_page_ext' => 'Safe\PDF_end_page_ext',
+ 'PDF_end_pattern' => 'Safe\PDF_end_pattern',
+ 'PDF_end_template' => 'Safe\PDF_end_template',
+ 'PDF_fill' => 'Safe\PDF_fill',
+ 'PDF_fill_stroke' => 'Safe\PDF_fill_stroke',
+ 'PDF_fit_image' => 'Safe\PDF_fit_image',
+ 'PDF_fit_pdi_page' => 'Safe\PDF_fit_pdi_page',
+ 'PDF_fit_textline' => 'Safe\PDF_fit_textline',
+ 'PDF_initgraphics' => 'Safe\PDF_initgraphics',
+ 'PDF_lineto' => 'Safe\PDF_lineto',
+ 'PDF_makespotcolor' => 'Safe\PDF_makespotcolor',
+ 'PDF_moveto' => 'Safe\PDF_moveto',
+ 'PDF_open_file' => 'Safe\PDF_open_file',
+ 'PDF_place_image' => 'Safe\PDF_place_image',
+ 'PDF_place_pdi_page' => 'Safe\PDF_place_pdi_page',
+ 'PDF_rect' => 'Safe\PDF_rect',
+ 'PDF_restore' => 'Safe\PDF_restore',
+ 'PDF_rotate' => 'Safe\PDF_rotate',
+ 'PDF_save' => 'Safe\PDF_save',
+ 'PDF_scale' => 'Safe\PDF_scale',
+ 'PDF_setcolor' => 'Safe\PDF_setcolor',
+ 'PDF_setdash' => 'Safe\PDF_setdash',
+ 'PDF_setdashpattern' => 'Safe\PDF_setdashpattern',
+ 'PDF_setflat' => 'Safe\PDF_setflat',
+ 'PDF_setfont' => 'Safe\PDF_setfont',
+ 'PDF_setgray' => 'Safe\PDF_setgray',
+ 'PDF_setgray_fill' => 'Safe\PDF_setgray_fill',
+ 'PDF_setgray_stroke' => 'Safe\PDF_setgray_stroke',
+ 'PDF_setlinejoin' => 'Safe\PDF_setlinejoin',
+ 'PDF_setlinewidth' => 'Safe\PDF_setlinewidth',
+ 'PDF_setmatrix' => 'Safe\PDF_setmatrix',
+ 'PDF_setmiterlimit' => 'Safe\PDF_setmiterlimit',
+ 'PDF_setrgbcolor' => 'Safe\PDF_setrgbcolor',
+ 'PDF_setrgbcolor_fill' => 'Safe\PDF_setrgbcolor_fill',
+ 'PDF_setrgbcolor_stroke' => 'Safe\PDF_setrgbcolor_stroke',
+ 'PDF_set_border_color' => 'Safe\PDF_set_border_color',
+ 'PDF_set_border_dash' => 'Safe\PDF_set_border_dash',
+ 'PDF_set_border_style' => 'Safe\PDF_set_border_style',
+ 'PDF_set_info' => 'Safe\PDF_set_info',
+ 'PDF_set_layer_dependency' => 'Safe\PDF_set_layer_dependency',
+ 'PDF_set_parameter' => 'Safe\PDF_set_parameter',
+ 'PDF_set_text_pos' => 'Safe\PDF_set_text_pos',
+ 'PDF_set_value' => 'Safe\PDF_set_value',
+ 'PDF_show' => 'Safe\PDF_show',
+ 'PDF_show_xy' => 'Safe\PDF_show_xy',
+ 'PDF_skew' => 'Safe\PDF_skew',
+ 'PDF_stroke' => 'Safe\PDF_stroke',
+ 'pg_cancel_query' => 'Safe\pg_cancel_query',
+ 'pg_client_encoding' => 'Safe\pg_client_encoding',
+ 'pg_close' => 'Safe\pg_close',
+ 'pg_connect' => 'Safe\pg_connect',
+ 'pg_connection_reset' => 'Safe\pg_connection_reset',
+ 'pg_convert' => 'Safe\pg_convert',
+ 'pg_copy_from' => 'Safe\pg_copy_from',
+ 'pg_copy_to' => 'Safe\pg_copy_to',
+ 'pg_dbname' => 'Safe\pg_dbname',
+ 'pg_delete' => 'Safe\pg_delete',
+ 'pg_end_copy' => 'Safe\pg_end_copy',
+ 'pg_execute' => 'Safe\pg_execute',
+ 'pg_field_name' => 'Safe\pg_field_name',
+ 'pg_field_table' => 'Safe\pg_field_table',
+ 'pg_field_type' => 'Safe\pg_field_type',
+ 'pg_flush' => 'Safe\pg_flush',
+ 'pg_free_result' => 'Safe\pg_free_result',
+ 'pg_host' => 'Safe\pg_host',
+ 'pg_insert' => 'Safe\pg_insert',
+ 'pg_last_error' => 'Safe\pg_last_error',
+ 'pg_last_notice' => 'Safe\pg_last_notice',
+ 'pg_last_oid' => 'Safe\pg_last_oid',
+ 'pg_lo_close' => 'Safe\pg_lo_close',
+ 'pg_lo_export' => 'Safe\pg_lo_export',
+ 'pg_lo_import' => 'Safe\pg_lo_import',
+ 'pg_lo_open' => 'Safe\pg_lo_open',
+ 'pg_lo_read' => 'Safe\pg_lo_read',
+ 'pg_lo_read_all' => 'Safe\pg_lo_read_all',
+ 'pg_lo_seek' => 'Safe\pg_lo_seek',
+ 'pg_lo_truncate' => 'Safe\pg_lo_truncate',
+ 'pg_lo_unlink' => 'Safe\pg_lo_unlink',
+ 'pg_lo_write' => 'Safe\pg_lo_write',
+ 'pg_meta_data' => 'Safe\pg_meta_data',
+ 'pg_options' => 'Safe\pg_options',
+ 'pg_parameter_status' => 'Safe\pg_parameter_status',
+ 'pg_pconnect' => 'Safe\pg_pconnect',
+ 'pg_ping' => 'Safe\pg_ping',
+ 'pg_port' => 'Safe\pg_port',
+ 'pg_prepare' => 'Safe\pg_prepare',
+ 'pg_put_line' => 'Safe\pg_put_line',
+ 'pg_query' => 'Safe\pg_query',
+ 'pg_query_params' => 'Safe\pg_query_params',
+ 'pg_result_error_field' => 'Safe\pg_result_error_field',
+ 'pg_result_seek' => 'Safe\pg_result_seek',
+ 'pg_select' => 'Safe\pg_select',
+ 'pg_send_execute' => 'Safe\pg_send_execute',
+ 'pg_send_prepare' => 'Safe\pg_send_prepare',
+ 'pg_send_query' => 'Safe\pg_send_query',
+ 'pg_send_query_params' => 'Safe\pg_send_query_params',
+ 'pg_socket' => 'Safe\pg_socket',
+ 'pg_trace' => 'Safe\pg_trace',
+ 'pg_tty' => 'Safe\pg_tty',
+ 'pg_update' => 'Safe\pg_update',
+ 'pg_version' => 'Safe\pg_version',
+ 'phpcredits' => 'Safe\phpcredits',
+ 'phpinfo' => 'Safe\phpinfo',
+ 'png2wbmp' => 'Safe\png2wbmp',
+ 'posix_access' => 'Safe\posix_access',
+ 'posix_getgrnam' => 'Safe\posix_getgrnam',
+ 'posix_getpgid' => 'Safe\posix_getpgid',
+ 'posix_initgroups' => 'Safe\posix_initgroups',
+ 'posix_kill' => 'Safe\posix_kill',
+ 'posix_mkfifo' => 'Safe\posix_mkfifo',
+ 'posix_mknod' => 'Safe\posix_mknod',
+ 'posix_setegid' => 'Safe\posix_setegid',
+ 'posix_seteuid' => 'Safe\posix_seteuid',
+ 'posix_setgid' => 'Safe\posix_setgid',
+ 'posix_setpgid' => 'Safe\posix_setpgid',
+ 'posix_setrlimit' => 'Safe\posix_setrlimit',
+ 'posix_setuid' => 'Safe\posix_setuid',
+ 'preg_match' => 'Safe\preg_match',
+ 'preg_match_all' => 'Safe\preg_match_all',
+ 'preg_replace' => 'Safe\preg_replace',
+ 'preg_split' => 'Safe\preg_split',
+ 'proc_get_status' => 'Safe\proc_get_status',
+ 'proc_nice' => 'Safe\proc_nice',
+ 'pspell_add_to_personal' => 'Safe\pspell_add_to_personal',
+ 'pspell_add_to_session' => 'Safe\pspell_add_to_session',
+ 'pspell_clear_session' => 'Safe\pspell_clear_session',
+ 'pspell_config_create' => 'Safe\pspell_config_create',
+ 'pspell_config_data_dir' => 'Safe\pspell_config_data_dir',
+ 'pspell_config_dict_dir' => 'Safe\pspell_config_dict_dir',
+ 'pspell_config_ignore' => 'Safe\pspell_config_ignore',
+ 'pspell_config_mode' => 'Safe\pspell_config_mode',
+ 'pspell_config_personal' => 'Safe\pspell_config_personal',
+ 'pspell_config_repl' => 'Safe\pspell_config_repl',
+ 'pspell_config_runtogether' => 'Safe\pspell_config_runtogether',
+ 'pspell_config_save_repl' => 'Safe\pspell_config_save_repl',
+ 'pspell_new' => 'Safe\pspell_new',
+ 'pspell_new_config' => 'Safe\pspell_new_config',
+ 'pspell_save_wordlist' => 'Safe\pspell_save_wordlist',
+ 'pspell_store_replacement' => 'Safe\pspell_store_replacement',
+ 'ps_add_launchlink' => 'Safe\ps_add_launchlink',
+ 'ps_add_locallink' => 'Safe\ps_add_locallink',
+ 'ps_add_note' => 'Safe\ps_add_note',
+ 'ps_add_pdflink' => 'Safe\ps_add_pdflink',
+ 'ps_add_weblink' => 'Safe\ps_add_weblink',
+ 'ps_arc' => 'Safe\ps_arc',
+ 'ps_arcn' => 'Safe\ps_arcn',
+ 'ps_begin_page' => 'Safe\ps_begin_page',
+ 'ps_begin_pattern' => 'Safe\ps_begin_pattern',
+ 'ps_begin_template' => 'Safe\ps_begin_template',
+ 'ps_circle' => 'Safe\ps_circle',
+ 'ps_clip' => 'Safe\ps_clip',
+ 'ps_close' => 'Safe\ps_close',
+ 'ps_closepath' => 'Safe\ps_closepath',
+ 'ps_closepath_stroke' => 'Safe\ps_closepath_stroke',
+ 'ps_close_image' => 'Safe\ps_close_image',
+ 'ps_continue_text' => 'Safe\ps_continue_text',
+ 'ps_curveto' => 'Safe\ps_curveto',
+ 'ps_delete' => 'Safe\ps_delete',
+ 'ps_end_page' => 'Safe\ps_end_page',
+ 'ps_end_pattern' => 'Safe\ps_end_pattern',
+ 'ps_end_template' => 'Safe\ps_end_template',
+ 'ps_fill' => 'Safe\ps_fill',
+ 'ps_fill_stroke' => 'Safe\ps_fill_stroke',
+ 'ps_get_parameter' => 'Safe\ps_get_parameter',
+ 'ps_hyphenate' => 'Safe\ps_hyphenate',
+ 'ps_include_file' => 'Safe\ps_include_file',
+ 'ps_lineto' => 'Safe\ps_lineto',
+ 'ps_moveto' => 'Safe\ps_moveto',
+ 'ps_new' => 'Safe\ps_new',
+ 'ps_open_file' => 'Safe\ps_open_file',
+ 'ps_place_image' => 'Safe\ps_place_image',
+ 'ps_rect' => 'Safe\ps_rect',
+ 'ps_restore' => 'Safe\ps_restore',
+ 'ps_rotate' => 'Safe\ps_rotate',
+ 'ps_save' => 'Safe\ps_save',
+ 'ps_scale' => 'Safe\ps_scale',
+ 'ps_setcolor' => 'Safe\ps_setcolor',
+ 'ps_setdash' => 'Safe\ps_setdash',
+ 'ps_setflat' => 'Safe\ps_setflat',
+ 'ps_setfont' => 'Safe\ps_setfont',
+ 'ps_setgray' => 'Safe\ps_setgray',
+ 'ps_setlinecap' => 'Safe\ps_setlinecap',
+ 'ps_setlinejoin' => 'Safe\ps_setlinejoin',
+ 'ps_setlinewidth' => 'Safe\ps_setlinewidth',
+ 'ps_setmiterlimit' => 'Safe\ps_setmiterlimit',
+ 'ps_setoverprintmode' => 'Safe\ps_setoverprintmode',
+ 'ps_setpolydash' => 'Safe\ps_setpolydash',
+ 'ps_set_border_color' => 'Safe\ps_set_border_color',
+ 'ps_set_border_dash' => 'Safe\ps_set_border_dash',
+ 'ps_set_border_style' => 'Safe\ps_set_border_style',
+ 'ps_set_info' => 'Safe\ps_set_info',
+ 'ps_set_parameter' => 'Safe\ps_set_parameter',
+ 'ps_set_text_pos' => 'Safe\ps_set_text_pos',
+ 'ps_set_value' => 'Safe\ps_set_value',
+ 'ps_shading' => 'Safe\ps_shading',
+ 'ps_shading_pattern' => 'Safe\ps_shading_pattern',
+ 'ps_shfill' => 'Safe\ps_shfill',
+ 'ps_show' => 'Safe\ps_show',
+ 'ps_show2' => 'Safe\ps_show2',
+ 'ps_show_xy' => 'Safe\ps_show_xy',
+ 'ps_show_xy2' => 'Safe\ps_show_xy2',
+ 'ps_stroke' => 'Safe\ps_stroke',
+ 'ps_symbol' => 'Safe\ps_symbol',
+ 'ps_translate' => 'Safe\ps_translate',
+ 'putenv' => 'Safe\putenv',
+ 'readfile' => 'Safe\readfile',
+ 'readgzfile' => 'Safe\readgzfile',
+ 'readline_add_history' => 'Safe\readline_add_history',
+ 'readline_callback_handler_install' => 'Safe\readline_callback_handler_install',
+ 'readline_clear_history' => 'Safe\readline_clear_history',
+ 'readline_completion_function' => 'Safe\readline_completion_function',
+ 'readline_read_history' => 'Safe\readline_read_history',
+ 'readline_write_history' => 'Safe\readline_write_history',
+ 'readlink' => 'Safe\readlink',
+ 'realpath' => 'Safe\realpath',
+ 'register_tick_function' => 'Safe\register_tick_function',
+ 'rename' => 'Safe\rename',
+ 'rewind' => 'Safe\rewind',
+ 'rewinddir' => 'Safe\rewinddir',
+ 'rmdir' => 'Safe\rmdir',
+ 'rpmaddtag' => 'Safe\rpmaddtag',
+ 'rrd_create' => 'Safe\rrd_create',
+ 'rsort' => 'Safe\rsort',
+ 'sapi_windows_cp_conv' => 'Safe\sapi_windows_cp_conv',
+ 'sapi_windows_cp_set' => 'Safe\sapi_windows_cp_set',
+ 'sapi_windows_generate_ctrl_event' => 'Safe\sapi_windows_generate_ctrl_event',
+ 'sapi_windows_vt100_support' => 'Safe\sapi_windows_vt100_support',
+ 'scandir' => 'Safe\scandir',
+ 'sem_acquire' => 'Safe\sem_acquire',
+ 'sem_get' => 'Safe\sem_get',
+ 'sem_release' => 'Safe\sem_release',
+ 'sem_remove' => 'Safe\sem_remove',
+ 'session_abort' => 'Safe\session_abort',
+ 'session_decode' => 'Safe\session_decode',
+ 'session_destroy' => 'Safe\session_destroy',
+ 'session_regenerate_id' => 'Safe\session_regenerate_id',
+ 'session_reset' => 'Safe\session_reset',
+ 'session_unset' => 'Safe\session_unset',
+ 'session_write_close' => 'Safe\session_write_close',
+ 'settype' => 'Safe\settype',
+ 'set_include_path' => 'Safe\set_include_path',
+ 'set_time_limit' => 'Safe\set_time_limit',
+ 'sha1_file' => 'Safe\sha1_file',
+ 'shmop_delete' => 'Safe\shmop_delete',
+ 'shmop_read' => 'Safe\shmop_read',
+ 'shmop_write' => 'Safe\shmop_write',
+ 'shm_put_var' => 'Safe\shm_put_var',
+ 'shm_remove' => 'Safe\shm_remove',
+ 'shm_remove_var' => 'Safe\shm_remove_var',
+ 'shuffle' => 'Safe\shuffle',
+ 'simplexml_import_dom' => 'Safe\simplexml_import_dom',
+ 'simplexml_load_file' => 'Safe\simplexml_load_file',
+ 'simplexml_load_string' => 'Safe\simplexml_load_string',
+ 'sleep' => 'Safe\sleep',
+ 'socket_accept' => 'Safe\socket_accept',
+ 'socket_addrinfo_bind' => 'Safe\socket_addrinfo_bind',
+ 'socket_addrinfo_connect' => 'Safe\socket_addrinfo_connect',
+ 'socket_bind' => 'Safe\socket_bind',
+ 'socket_connect' => 'Safe\socket_connect',
+ 'socket_create' => 'Safe\socket_create',
+ 'socket_create_listen' => 'Safe\socket_create_listen',
+ 'socket_create_pair' => 'Safe\socket_create_pair',
+ 'socket_export_stream' => 'Safe\socket_export_stream',
+ 'socket_getpeername' => 'Safe\socket_getpeername',
+ 'socket_getsockname' => 'Safe\socket_getsockname',
+ 'socket_get_option' => 'Safe\socket_get_option',
+ 'socket_import_stream' => 'Safe\socket_import_stream',
+ 'socket_listen' => 'Safe\socket_listen',
+ 'socket_read' => 'Safe\socket_read',
+ 'socket_send' => 'Safe\socket_send',
+ 'socket_sendmsg' => 'Safe\socket_sendmsg',
+ 'socket_sendto' => 'Safe\socket_sendto',
+ 'socket_set_block' => 'Safe\socket_set_block',
+ 'socket_set_nonblock' => 'Safe\socket_set_nonblock',
+ 'socket_set_option' => 'Safe\socket_set_option',
+ 'socket_shutdown' => 'Safe\socket_shutdown',
+ 'socket_write' => 'Safe\socket_write',
+ 'socket_wsaprotocol_info_export' => 'Safe\socket_wsaprotocol_info_export',
+ 'socket_wsaprotocol_info_import' => 'Safe\socket_wsaprotocol_info_import',
+ 'socket_wsaprotocol_info_release' => 'Safe\socket_wsaprotocol_info_release',
+ 'sodium_crypto_pwhash' => 'Safe\sodium_crypto_pwhash',
+ 'sodium_crypto_pwhash_str' => 'Safe\sodium_crypto_pwhash_str',
+ 'solr_get_version' => 'Safe\solr_get_version',
+ 'sort' => 'Safe\sort',
+ 'soundex' => 'Safe\soundex',
+ 'spl_autoload_register' => 'Safe\spl_autoload_register',
+ 'spl_autoload_unregister' => 'Safe\spl_autoload_unregister',
+ 'sprintf' => 'Safe\sprintf',
+ 'sqlsrv_begin_transaction' => 'Safe\sqlsrv_begin_transaction',
+ 'sqlsrv_cancel' => 'Safe\sqlsrv_cancel',
+ 'sqlsrv_client_info' => 'Safe\sqlsrv_client_info',
+ 'sqlsrv_close' => 'Safe\sqlsrv_close',
+ 'sqlsrv_commit' => 'Safe\sqlsrv_commit',
+ 'sqlsrv_configure' => 'Safe\sqlsrv_configure',
+ 'sqlsrv_execute' => 'Safe\sqlsrv_execute',
+ 'sqlsrv_free_stmt' => 'Safe\sqlsrv_free_stmt',
+ 'sqlsrv_get_field' => 'Safe\sqlsrv_get_field',
+ 'sqlsrv_next_result' => 'Safe\sqlsrv_next_result',
+ 'sqlsrv_num_fields' => 'Safe\sqlsrv_num_fields',
+ 'sqlsrv_num_rows' => 'Safe\sqlsrv_num_rows',
+ 'sqlsrv_prepare' => 'Safe\sqlsrv_prepare',
+ 'sqlsrv_query' => 'Safe\sqlsrv_query',
+ 'sqlsrv_rollback' => 'Safe\sqlsrv_rollback',
+ 'ssdeep_fuzzy_compare' => 'Safe\ssdeep_fuzzy_compare',
+ 'ssdeep_fuzzy_hash' => 'Safe\ssdeep_fuzzy_hash',
+ 'ssdeep_fuzzy_hash_filename' => 'Safe\ssdeep_fuzzy_hash_filename',
+ 'ssh2_auth_agent' => 'Safe\ssh2_auth_agent',
+ 'ssh2_auth_hostbased_file' => 'Safe\ssh2_auth_hostbased_file',
+ 'ssh2_auth_password' => 'Safe\ssh2_auth_password',
+ 'ssh2_auth_pubkey_file' => 'Safe\ssh2_auth_pubkey_file',
+ 'ssh2_connect' => 'Safe\ssh2_connect',
+ 'ssh2_disconnect' => 'Safe\ssh2_disconnect',
+ 'ssh2_exec' => 'Safe\ssh2_exec',
+ 'ssh2_publickey_add' => 'Safe\ssh2_publickey_add',
+ 'ssh2_publickey_init' => 'Safe\ssh2_publickey_init',
+ 'ssh2_publickey_remove' => 'Safe\ssh2_publickey_remove',
+ 'ssh2_scp_recv' => 'Safe\ssh2_scp_recv',
+ 'ssh2_scp_send' => 'Safe\ssh2_scp_send',
+ 'ssh2_sftp' => 'Safe\ssh2_sftp',
+ 'ssh2_sftp_chmod' => 'Safe\ssh2_sftp_chmod',
+ 'ssh2_sftp_mkdir' => 'Safe\ssh2_sftp_mkdir',
+ 'ssh2_sftp_rename' => 'Safe\ssh2_sftp_rename',
+ 'ssh2_sftp_rmdir' => 'Safe\ssh2_sftp_rmdir',
+ 'ssh2_sftp_symlink' => 'Safe\ssh2_sftp_symlink',
+ 'ssh2_sftp_unlink' => 'Safe\ssh2_sftp_unlink',
+ 'stream_context_set_params' => 'Safe\stream_context_set_params',
+ 'stream_copy_to_stream' => 'Safe\stream_copy_to_stream',
+ 'stream_filter_append' => 'Safe\stream_filter_append',
+ 'stream_filter_prepend' => 'Safe\stream_filter_prepend',
+ 'stream_filter_register' => 'Safe\stream_filter_register',
+ 'stream_filter_remove' => 'Safe\stream_filter_remove',
+ 'stream_get_contents' => 'Safe\stream_get_contents',
+ 'stream_isatty' => 'Safe\stream_isatty',
+ 'stream_resolve_include_path' => 'Safe\stream_resolve_include_path',
+ 'stream_set_blocking' => 'Safe\stream_set_blocking',
+ 'stream_set_timeout' => 'Safe\stream_set_timeout',
+ 'stream_socket_accept' => 'Safe\stream_socket_accept',
+ 'stream_socket_client' => 'Safe\stream_socket_client',
+ 'stream_socket_pair' => 'Safe\stream_socket_pair',
+ 'stream_socket_server' => 'Safe\stream_socket_server',
+ 'stream_socket_shutdown' => 'Safe\stream_socket_shutdown',
+ 'stream_supports_lock' => 'Safe\stream_supports_lock',
+ 'stream_wrapper_register' => 'Safe\stream_wrapper_register',
+ 'stream_wrapper_restore' => 'Safe\stream_wrapper_restore',
+ 'stream_wrapper_unregister' => 'Safe\stream_wrapper_unregister',
+ 'strptime' => 'Safe\strptime',
+ 'strtotime' => 'Safe\strtotime',
+ 'substr' => 'Safe\substr',
+ 'swoole_async_write' => 'Safe\swoole_async_write',
+ 'swoole_async_writefile' => 'Safe\swoole_async_writefile',
+ 'swoole_event_defer' => 'Safe\swoole_event_defer',
+ 'swoole_event_del' => 'Safe\swoole_event_del',
+ 'swoole_event_write' => 'Safe\swoole_event_write',
+ 'symlink' => 'Safe\symlink',
+ 'syslog' => 'Safe\syslog',
+ 'system' => 'Safe\system',
+ 'tempnam' => 'Safe\tempnam',
+ 'timezone_name_from_abbr' => 'Safe\timezone_name_from_abbr',
+ 'time_nanosleep' => 'Safe\time_nanosleep',
+ 'time_sleep_until' => 'Safe\time_sleep_until',
+ 'tmpfile' => 'Safe\tmpfile',
+ 'touch' => 'Safe\touch',
+ 'uasort' => 'Safe\uasort',
+ 'uksort' => 'Safe\uksort',
+ 'unlink' => 'Safe\unlink',
+ 'unpack' => 'Safe\unpack',
+ 'uopz_extend' => 'Safe\uopz_extend',
+ 'uopz_implement' => 'Safe\uopz_implement',
+ 'usort' => 'Safe\usort',
+ 'virtual' => 'Safe\virtual',
+ 'vsprintf' => 'Safe\vsprintf',
+ 'xdiff_file_bdiff' => 'Safe\xdiff_file_bdiff',
+ 'xdiff_file_bpatch' => 'Safe\xdiff_file_bpatch',
+ 'xdiff_file_diff' => 'Safe\xdiff_file_diff',
+ 'xdiff_file_diff_binary' => 'Safe\xdiff_file_diff_binary',
+ 'xdiff_file_patch_binary' => 'Safe\xdiff_file_patch_binary',
+ 'xdiff_file_rabdiff' => 'Safe\xdiff_file_rabdiff',
+ 'xdiff_string_bpatch' => 'Safe\xdiff_string_bpatch',
+ 'xdiff_string_patch' => 'Safe\xdiff_string_patch',
+ 'xdiff_string_patch_binary' => 'Safe\xdiff_string_patch_binary',
+ 'xmlrpc_set_type' => 'Safe\xmlrpc_set_type',
+ 'xml_parser_create' => 'Safe\xml_parser_create',
+ 'xml_parser_create_ns' => 'Safe\xml_parser_create_ns',
+ 'xml_set_object' => 'Safe\xml_set_object',
+ 'yaml_parse' => 'Safe\yaml_parse',
+ 'yaml_parse_file' => 'Safe\yaml_parse_file',
+ 'yaml_parse_url' => 'Safe\yaml_parse_url',
+ 'yaz_ccl_parse' => 'Safe\yaz_ccl_parse',
+ 'yaz_close' => 'Safe\yaz_close',
+ 'yaz_connect' => 'Safe\yaz_connect',
+ 'yaz_database' => 'Safe\yaz_database',
+ 'yaz_element' => 'Safe\yaz_element',
+ 'yaz_present' => 'Safe\yaz_present',
+ 'yaz_search' => 'Safe\yaz_search',
+ 'yaz_wait' => 'Safe\yaz_wait',
+ 'zip_entry_close' => 'Safe\zip_entry_close',
+ 'zip_entry_open' => 'Safe\zip_entry_open',
+ 'zip_entry_read' => 'Safe\zip_entry_read',
+ 'zlib_decode' => 'Safe\zlib_decode',
+]]]);
+};